From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stephen J. Turnbull" Newsgroups: gmane.emacs.devel Subject: Re: Emacs rewrite in a maintainable language Date: Tue, 13 Oct 2015 15:49:41 +0900 Message-ID: <22044.43397.962909.949751@turnbull.sk.tsukuba.ac.jp> References: <561A19AB.5060001@cumego.com> <87io6dl0h0.fsf@wanadoo.es> <87lhb82qxc.fsf@gmail.com> <87oag4jk74.fsf@wanadoo.es> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1444719025 18117 80.91.229.3 (13 Oct 2015 06:50:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 13 Oct 2015 06:50:25 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 13 08:50:20 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 1ZltPe-0004aw-9S for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 08:50:18 +0200 Original-Received: from localhost ([::1]:60908 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZltPY-0000dG-No for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 02:50:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50242) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZltPC-0000Ys-WC for emacs-devel@gnu.org; Tue, 13 Oct 2015 02:49:51 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZltP7-0000wU-Sm for emacs-devel@gnu.org; Tue, 13 Oct 2015 02:49:50 -0400 Original-Received: from turnbull.sk.tsukuba.ac.jp ([130.158.96.25]:36088) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZltP7-0000w6-J9 for emacs-devel@gnu.org; Tue, 13 Oct 2015 02:49:45 -0400 Original-Received: from steve by turnbull.sk.tsukuba.ac.jp with local (Exim 4.86) (envelope-from ) id 1ZltP4-0006hL-4S for emacs-devel@gnu.org; Tue, 13 Oct 2015 15:49:42 +0900 In-Reply-To: X-Mailer: VM 8.0.12-devo-585 under 21.5 (beta34) "kale" 698a9aa86de4 XEmacs Lucid (x86_64-apple-darwin14.5.0) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: steve@turnbull.sk.tsukuba.ac.jp X-SA-Exim-Scanned: No (on turnbull.sk.tsukuba.ac.jp); SAEximRunCond expanded to false X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 130.158.96.25 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:191430 Archived-At: Ken Raeburn writes: > Do you think the introduction of lexical binding support changes > the balance much? FWIW, I was thinking that same thing but decided I am sufficiently inexpert that I'd add more noise than signal. Now that Ken's posted, I'll stick my neck out and propose an empirical definition of RELisp (that's not "Lisp with two problems", that's "restricted Emacs Lisp"). Specifically, have a Lisp-to-C (or even gcl-to-Evers-to-Chance-to-C, as somebody-whose-name-I-should-remember-mea-maxima-culpa suggested) compiler that just barfs on any non-lexical reference (and on defvar). Learning it would be really easy: Just learn Emacs Lisp and then by trial and error learn how to placate the compiler. :-) Of course, I suppose that lexical refs probably already use a different bytecode and an optimized code path, so compiling pure lexical code to C would buy only a small integer factor of speedup at best. But that could be enough to make some mildly annoying delays fall within human JND. And the idea could easily be weakened to a bytecompiler mode that refuses to emit dynamic refs, to teach people to avoid dynrefs on pain of a cranky compiler. ;-) Steve