From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Daniel Colascione Newsgroups: gmane.emacs.devel Subject: Re: When should ralloc.c be used? Date: Thu, 27 Oct 2016 16:32:36 -0700 Message-ID: References: <7baa18d4-2b09-caa8-005e-29008a383ad1@cs.ucla.edu> <83mvhwrgd5.fsf@gnu.org> <8539f38f-9a11-44c3-4de7-bb974c96206c@cs.ucla.edu> <83d1iq5ib1.fsf@gnu.org> <83r3753c8j.fsf@gnu.org> <83r374wh32.fsf@gnu.org> <20161027093530.3e5be6cb@jabberwock.cb.piermont.com> <20161027110503.74141bc2@jabberwock.cb.piermont.com> <8337jhu0cu.fsf@gnu.org> <20161027170345.1f6c382d@jabberwock.cb.piermont.com> <484424c8-9b7c-35cf-34fb-d3ead0ef9235@dancol.org> <20161027192306.3a911af3@jabberwock.cb.piermont.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1477611193 30551 195.159.176.226 (27 Oct 2016 23:33:13 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 27 Oct 2016 23:33:13 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) Cc: eggert@cs.ucla.edu, rms@gnu.org, npostavs@users.sourceforge.net, fabrice.popineau@gmail.com, emacs-devel@gnu.org, Eli Zaretskii To: "Perry E. Metzger" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Oct 28 01:33:08 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bzuAG-0005o1-S6 for ged-emacs-devel@m.gmane.org; Fri, 28 Oct 2016 01:32:53 +0200 Original-Received: from localhost ([::1]:45088 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bzuAJ-0000NZ-A3 for ged-emacs-devel@m.gmane.org; Thu, 27 Oct 2016 19:32:55 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38164) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bzuAA-0000MF-Td for emacs-devel@gnu.org; Thu, 27 Oct 2016 19:32:47 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bzuAA-0005ZR-1G for emacs-devel@gnu.org; Thu, 27 Oct 2016 19:32:46 -0400 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:37738) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1bzuA8-0005Xy-8F; Thu, 27 Oct 2016 19:32:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From; bh=qvoaOHoT8neuLz0dWpJ1AubDQeDh0P54FbVDHN2Q4Vo=; b=IfkDZZqbtnRQuuOPdqA+gm3SD5rqu6rCc5jh+3XmAO84ERwfn7fsRt+6YmX7K/zUfcsBFIWdJwVDJwFIFoC30uCQKQQPB0+YFYyqSzFHTigNCuL6jcp8Szk7B+z326l7YYkEW6nCOMLtmRwlXQfwM0pdwo1UP8UOfLK1TgFBEmxWz1nitauX9L1xVn+93LDVEYPggEhDAshw5HFdNaYxa48ybt4FrF5P0F1IorZfCiprQPQdZqH4IcvIxkgfFQQ13jvah9mu3rI0cX6zmGnv8iDXbbgz8KK8gFpruRybg5xXnD+r07iQ1wELxkKwiCy3AfnrZUXJv+4y5cViFvJtrA==; Original-Received: from [2620:0:1008:100b:4ce4:3c3d:872:d836] (helo=dancol-glaptop0) by dancol.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.84_2) (envelope-from ) id 1bzuA6-000148-C0; Thu, 27 Oct 2016 16:32:42 -0700 In-Reply-To: <20161027192306.3a911af3@jabberwock.cb.piermont.com> (Perry E. Metzger's message of "Thu, 27 Oct 2016 19:23:06 -0400") X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2600:3c01::f03c:91ff:fedf:adf3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:208906 Archived-At: "Perry E. Metzger" writes: > On Thu, 27 Oct 2016 14:07:46 -0700 Daniel Colascione > wrote: >> If we need a compiler to make this happen, so be it. We'll just >> require libgcc, or hell, check it in to the repository, the way gcc >> checks in its dependencies. >> >> An additional benefit of integrating with a compiler at runtime is >> the potential to JIT elisp code. Both LLVM and GCC these days have >> usable JIT interfaces. We could even serialize JIT traces in these >> user Emacs dumps. > > Having a JIT for emacs bytecode (or some other IR) would be really > superb. I had no idea that GCC now had JIT support, but if it is as > easy to use as LLVM's, a prototype would not be a hard project. (I > presume RMS would insist on GCC as the basis.) GCC's interface isn't nearly as mature as LLVM's yet, but there's promise https://gcc.gnu.org/wiki/JIT > Of course, given that Emacs already byte compiles everything, maybe > going straight to machine code rather than the bytecode + JIT would > be good? Again, I don't know what GCC's infra is like, but if it is > as good as LLVM's that would be quite straightforward. AOT is all the rage right now (JEP 295), but I believe that tracing JITs are ultimately the right choice for code density and installation latency reasons. But this is one of those arguments that's never going to be solved.