From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Tom Tromey Newsgroups: gmane.emacs.devel Subject: Re: Emacs rewrite in a maintainable language Date: Sun, 18 Oct 2015 21:55:54 -0600 Message-ID: <87a8rfo6k5.fsf@tromey.com> References: <561A19AB.5060001@cumego.com> <87io6dl0h0.fsf@wanadoo.es> <87lhb82qxc.fsf@gmail.com> <87oag4jk74.fsf@wanadoo.es> <87k2qrki45.fsf@wanadoo.es> <87k2qknmel.fsf@tromey.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1445227012 24459 80.91.229.3 (19 Oct 2015 03:56:52 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 19 Oct 2015 03:56:52 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 19 05:56:41 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Zo1Ys-0000NY-Jb for ged-emacs-devel@m.gmane.org; Mon, 19 Oct 2015 05:56:38 +0200 Original-Received: from localhost ([::1]:36354 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zo1Yr-0001yH-Qi for ged-emacs-devel@m.gmane.org; Sun, 18 Oct 2015 23:56:37 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40453) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zo1Yi-0001y5-NM for emacs-devel@gnu.org; Sun, 18 Oct 2015 23:56:29 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zo1Ye-00026o-LQ for emacs-devel@gnu.org; Sun, 18 Oct 2015 23:56:28 -0400 Original-Received: from gproxy7-pub.mail.unifiedlayer.com ([70.40.196.235]:51976) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1Zo1Ye-00026k-Bw for emacs-devel@gnu.org; Sun, 18 Oct 2015 23:56:24 -0400 Original-Received: (qmail 14494 invoked by uid 0); 19 Oct 2015 03:56:05 -0000 Original-Received: from unknown (HELO CMOut01) (10.0.90.82) by gproxy7.mail.unifiedlayer.com with SMTP; 19 Oct 2015 03:56:05 -0000 Original-Received: from box522.bluehost.com ([74.220.219.122]) by CMOut01 with id Wrvx1r0092f2jeq01rw0eU; Sun, 18 Oct 2015 21:56:04 -0600 X-Authority-Analysis: v=2.1 cv=VOBOwb/X c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=cNaOj0WVAAAA:8 a=f5113yIGAAAA:8 a=zstS-IiYAAAA:8 a=PnD2wP_eR3oA:10 a=_emWc-O_5N4A:10 a=5lJygRwiOn0A:10 a=Q68s3OCE4iKwtemmRdYA:9 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References:Subject:To:From; bh=nRhwK+Ea6I9iTTS1FPKG9IjmlyRval+ifhiCfUUOGN8=; b=b9LjiB5yVU/STWLzY0qAUTwSukMOnxlH9Go+mdRIWHhY+Mf3XBNrHAfqL633BQUTRtQUqtoftFF+HFS19tiVoKeC/iT38k6nvyU7rFFV0/e2rxJyTGMXCezjFR/yJTJ6; Original-Received: from [65.128.79.106] (port=48815 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:AES128-GCM-SHA256:128) (Exim 4.84) (envelope-from ) id 1Zo1YE-0005fv-0M; Sun, 18 Oct 2015 21:55:58 -0600 X-Attribution: Tom In-Reply-To: (John Wiegley's message of "Sun, 18 Oct 2015 10:40:58 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-Identified-User: {36111:box522.bluehost.com:elynrobi:tromey.com} {sentby:smtp auth 65.128.79.106 authed with tom+tromey.com} X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 70.40.196.235 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:192026 Archived-At: John> Ok, you've got the PL side of me rather excited now. :) Are you planning John> optimization passes during the transform from elisp to C? There are already a bunch of optimization passes. For translation to C specifically, I think the main thing of interest is type inference. That will enable unboxing optimizations. Type inference is working; but I haven't written the unboxing stuff yet. The reason I think this is particularly interesting is that the C compiler doesn't know much about the Lisp type system, so this is an area where the higher-level compiler helps out. John> I noticed your files lack a copyright or license. Is this John> something you would be willing to assign to the FSF once the bugs John> are worked out? Sure, though Richard's message makes me question whether this is even wanted. John> For it to be worth the complexity, however, I'd like to see some John> performance numbers, or examples of features it gains us that we John> can't have easily otherwise (like transparent FFI). The usual benefit of the translation approach is that you can automate drudgery. GCPRO is no longer needed, but there are still other things, like unboxing everything, and remembering to write "NILP" in an "if"; or even things that Emacs doesn't currently try to do, like "advice hygiene" -- the idea that the core should only make direct calls to a small set of functions and dispatch the rest via Ffuncall, which would, e.g., let people experiment with advising "read" and other things. I don't have performance numbers, but of course it will be faster, in the same way that Emacs C code is faster than the corresponding lisp. I know the bytecode/LLVM experiment was not; but I think that is because the Emacs bytecode is a particularly bad format. Tom