From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Ergus Newsgroups: gmane.emacs.help Subject: Re: Why is Elisp slow? Date: Fri, 3 May 2019 02:44:16 +0200 Message-ID: <20190503004416.xfuzzucflp6bxpuz@Ergus> References: <20190502075617.GA18331@tuxteam.de> <874l6d3ylg.fsf@mbork.pl> <20190502131827.GA28987@tuxteam.de> <83k1f8q39o.fsf@gnu.org> <87woj8bqho.fsf@telefonica.net> <83tvecocvv.fsf@gnu.org> <87sgtwboot.fsf@telefonica.net> <83muk4obfd.fsf@gnu.org> <20190502214006.4fdsinp7u5xuqvdv@Ergus> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="157955"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: NeoMutt/20180716 Cc: help-gnu-emacs@gnu.org To: =?utf-8?B?7KGw7ISx67mI?= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri May 03 02:59:56 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hMMYO-000exy-6X for geh-help-gnu-emacs@m.gmane.org; Fri, 03 May 2019 02:59:56 +0200 Original-Received: from localhost ([127.0.0.1]:60722 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hMMYN-0001KC-8c for geh-help-gnu-emacs@m.gmane.org; Thu, 02 May 2019 20:59:55 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:38616) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hMMJR-00062v-Al for help-gnu-emacs@gnu.org; Thu, 02 May 2019 20:44:30 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hMMJQ-000113-0d for help-gnu-emacs@gnu.org; Thu, 02 May 2019 20:44:29 -0400 Original-Received: from sonic302-21.consmr.mail.ir2.yahoo.com ([87.248.110.84]:40834) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hMMJP-0000zr-C6 for help-gnu-emacs@gnu.org; Thu, 02 May 2019 20:44:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1556844264; bh=k0qKkzXl+ST6RdFFgJj17Zfjs70qh77aSxNWS0NJP7k=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From:Subject; b=TU28Q19xihPIZIf/XD29PRQ3Giq6nP2KBrmWNaUDAy8NZSU9TRo7cwtcIRbukDDkl0sFGir73lpuE7tW8ANdOWlpMnm6MgdqpYAq17C+R7N4U7x8nJZashJ+Ho7z4ybhmAj+HExWfgavUhe3rsrdIUomDkSOUvMzKiby3EhVySGHwK9zPPelclOkeE1mvEO/CkwYwBxTBj4ROvn0LeDq58T07H611mv2XJeLi/xF+J3sdVF/wr+J8Dl2OhElWKR3UdAMuQ9AZ2g5tXqJLB6I4ZsL9fLRVeoaIzbrFm+03CTKk3xUnIN5lVF3rSOlYzpIs18lekzaCLgUnbbqU2Wjmg== X-YMail-OSG: ecGE5OQVM1mUeEgTsixKZ04yFBG.RICQ_EMk610FJPNuWnF1yEU.gPkcpS54GPR 1ayAvtQ78zm3cbzGy9Dvq1Jws2PfW.tHqth8CT00Op8fZ4tWxchKU7Ia50jKq25bLI36UGa8qgyn hR1ZCNBwXReIevkp1ZRw1mgsagJOqXslQadfZXq0xbHAILBTbv1v2l7IBzo.SCwyGMa1UzER0SFn OA3oWJWoCPyxm6IRf5CEjf5ys.bbEFnkzt8inD5EcpOwXtv50FC.53FF1_HeQOuN06.Q2xrVq5LD Xc7dz6NOQdHGP6UbgsftX3ns9Mf3SfmIgA3T7_TWK6vZbTx0BBv36XPIE6qBkMEFIuifHF7ee29h zYdZ0Zz6tLyau.tCZA17gQMFUUP8_QACjRSuBXPD9VoR.O7.I80dliUlYBl6T6099AXKh_evB6RP DR6RTuRHYj3KNdVwDxowluNSeuVY5uAn8e_NZOk5DqKCqLrRK6OzE9FH0qI5RtCewIJCk6BYBK4C 1Y_FSMaL4qXKakx3e5.l7Rh3uLYxL117kREwtl.YZz3NOdvp2F2xmzOiuBzEO5TrYDj0A3UXEv.P dftFAnHP.s4_noX90kQKz4yN0GNmCXmAp7jWCUms3g0HR32.GHC2bMqWWDfjT.WnvaRIg4SwKvZn 9NXOzW7qtLw8ptIx4t95dJNYUGxLyJ4YKcZB37iVmaWYJgWvhkSDmH7aWphC2Og_u0ApZjxoCcs_ ire8pEcP6tGqH.jf7qrPDisrqTHYffxNoa.iHasqbtcF_Rox32j2p5SDzzGIi3W5FlCL2k9t0aP3 1myuqZPf2pvTKFYQ5BAGHreD9Aw1JrlCZpS9F.2Sal Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.ir2.yahoo.com with HTTP; Fri, 3 May 2019 00:44:24 +0000 Original-Received: from 2.152.205.184.dyn.user.ono.com (EHLO Ergus) ([2.152.205.184]) by smtp411.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 164e0256928e6a6bb39c730d2b26e4d1; Fri, 03 May 2019 00:44:21 +0000 (UTC) Content-Disposition: inline In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 87.248.110.84 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:120145 Archived-At: WARNING: This email has plenty of personal opinions. On Fri, May 03, 2019 at 08:39:43AM +0900, ????????? wrote: > >> Probably (I have a dream) if someone decides to develop a new emacs in >> 2019 most of the functions and API will be made in pure and clear C (or >> any other compiled language), with a full C api that gives the same >> access level than what elisp gives in Emacs today (with C lists, arrays >> and structs), so it will be not only faster but also simpler to extend >> it with other languages like Scheme, Python, Lua, C++, rust and so >> on. (There are modules projects going in that direction) And the editor >> don't even need to provide a compiler or interpreter for them. (there >> will be Guile/gcc/python and so on for that) > >This, very much sounds like Guile Emacs. Anyone knows how Guile Emacs >is doing????? It???s very much looks like vaporware these days :-( Yes, that is the dream (at least the closest we have ever been) >Is upstream considering Guile Emacs as a valid solution? I made a similar question some time ago and the answer is that there is not action. :( In fact there is not too much action in Guile's development . Not many projects feel interested in Guile because the weak support it has so there are few users and few developers (But also because Lisp-like family languages (common Lisp, Scheme and the others) are a museum piece for young generations that are more used to Python, Ruby, javascript, and most of OOP (also because there are more jobs with that)) Actually I think that these days will be easier to find new C/C++ developers for emacs than Lisp developers. Lisp and Scheme are beautiful, but they require a different way of thinking and a lot of time (own experience, I am just starting with it.) One reason why I can't convince my friends to use Emacs is actually how Lisp scares them ((())()'()). >Is there any development ongoing? (Official or not?) > > I don't think so :( :( :(. It will require that some core emacs developers feel more interested in implementing this, because it is a lot of work... (specially to do it right and keeping the so sacred backward compatibility) These days only few people know the core parts of emacs for such a task. Having Guile as a dependency will grow emacs size significantly and using it as an external dependency (not usually the emacs way...) will require to port Guile to more systems (AFAIK). BUt such desition could benefit very much both projects. There are even some emacs ports to rust (remacs) but they still have the elisp as the core languaje. Because most of the code and functionalities are already in elisp so changing that will be like reimplementing all emacs from scratch. (Some time ago there was a lot of effort and time invested in porting C functions to Elisp in emacs) So with our actual emacs maybe the JIT or the Lisp->C source to source is actually the more reliable option in a possible (realistic) future. Personally I feel the Lisp->C compiler feels like the faster and more robust solution for me, but it will create a dependency with binutils... which is for multiple reasons undesired. The alternative JIT may be based in libJIT which is not very active either... and has serious issues/limitations that has not been solved in years. [1] https://tromey.com/blog/?p=982 [2] https://lists.gnu.org/archive/html/emacs-devel/2018-08/msg00393.html