From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: Re: Emacs rewrite in a maintainable language Date: Tue, 13 Oct 2015 12:13:24 +0200 Message-ID: <87y4f784aj.fsf@fencepost.gnu.org> 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 X-Trace: ger.gmane.org 1444731235 24831 80.91.229.3 (13 Oct 2015 10:13:55 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 13 Oct 2015 10:13:55 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 13 12:13:53 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 1Zlwad-0002Zx-Oe for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 12:13:51 +0200 Original-Received: from localhost ([::1]:33468 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zlwad-00082O-3g for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 06:13:51 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59633) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlwaG-0007oW-34 for emacs-devel@gnu.org; Tue, 13 Oct 2015 06:13:28 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZlwaF-0005E3-4X for emacs-devel@gnu.org; Tue, 13 Oct 2015 06:13:28 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59055) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlwaF-0005Dz-0r for emacs-devel@gnu.org; Tue, 13 Oct 2015 06:13:27 -0400 Original-Received: from localhost ([127.0.0.1]:44641 helo=lola) by fencepost.gnu.org with esmtp (Exim 4.82) (envelope-from ) id 1ZlwaD-0005S4-Cc for emacs-devel@gnu.org; Tue, 13 Oct 2015 06:13:25 -0400 Original-Received: by lola (Postfix, from userid 1000) id C7F54DF4F8; Tue, 13 Oct 2015 12:13:24 +0200 (CEST) In-Reply-To: (John Wiegley's message of "Mon, 12 Oct 2015 22:39:36 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e 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:191441 Archived-At: John Wiegley writes: >>>>>> Ken Raeburn writes: > >>> The main reason I stopped is that it didn't help performance enough. The >>> slowness imposed by constantly looking up symbol names at global scope, due >>> to dynamic binding, dominated the profiling results. > >> Do you think the introduction of lexical binding support changes the balance >> much? (Or was your work after lexical binding was added?) > > I think it should really help performance, but I haven't measured yet. I don't think it will really help performance all that much if you measure it now since the inescapable cost of establishing and resolving dynamic bindings at every let or function boundary has both made certain optimizations mostly pointless as well as lending preference to a programming style using iteration and setq rather than recursive techniques. Also, code like `(lambda (...) ...) does not magically rewrite itself into a compiled form just because Elisp now got closures. So there is a lot of trickle-down into the code base to wait for until one can really make a statement. And then the other reference point is gone. -- David Kastrup