From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#15294: 24.3.50; js2-mode parser is several times slower in lexical-binding mode Date: Mon, 09 Sep 2013 22:04:38 -0400 Message-ID: References: <871u51ll93.fsf@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1378778722 29692 80.91.229.3 (10 Sep 2013 02:05:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 10 Sep 2013 02:05:22 +0000 (UTC) Cc: 15294@debbugs.gnu.org To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Sep 10 04:05:20 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1VJDKS-0001hy-9v for geb-bug-gnu-emacs@m.gmane.org; Tue, 10 Sep 2013 04:05:20 +0200 Original-Received: from localhost ([::1]:54378 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJDKR-00010X-Mz for geb-bug-gnu-emacs@m.gmane.org; Mon, 09 Sep 2013 22:05:19 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40194) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJDKI-00010N-Ap for bug-gnu-emacs@gnu.org; Mon, 09 Sep 2013 22:05:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJDKA-0004CE-Vf for bug-gnu-emacs@gnu.org; Mon, 09 Sep 2013 22:05:10 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:42879) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJDKA-0004Ac-Sw for bug-gnu-emacs@gnu.org; Mon, 09 Sep 2013 22:05:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1VJDKA-0007e5-1f for bug-gnu-emacs@gnu.org; Mon, 09 Sep 2013 22:05:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 10 Sep 2013 02:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 15294 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 15294-submit@debbugs.gnu.org id=B15294.137877869829379 (code B ref 15294); Tue, 10 Sep 2013 02:05:01 +0000 Original-Received: (at 15294) by debbugs.gnu.org; 10 Sep 2013 02:04:58 +0000 Original-Received: from localhost ([127.0.0.1]:51172 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJDK5-0007dl-7i for submit@debbugs.gnu.org; Mon, 09 Sep 2013 22:04:57 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.182]:31363) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VJDK2-0007dW-U7 for 15294@debbugs.gnu.org; Mon, 09 Sep 2013 22:04:55 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av8EABK/CFG4rxBo/2dsb2JhbABEuzWDWRdzgh4BAQQBViMFCwsOJhIUGA0kiB4GwS2OLoJcA6R6gV6Caik X-IPAS-Result: Av8EABK/CFG4rxBo/2dsb2JhbABEuzWDWRdzgh4BAQQBViMFCwsOJhIUGA0kiB4GwS2OLoJcA6R6gV6Caik X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="27059366" Original-Received: from 184-175-16-104.dsl.teksavvy.com (HELO pastel.home) ([184.175.16.104]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 09 Sep 2013 22:01:25 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id BEC5D63031; Mon, 9 Sep 2013 22:04:38 -0400 (EDT) In-Reply-To: <871u51ll93.fsf@yandex.ru> (Dmitry Gutov's message of "Fri, 06 Sep 2013 23:59:20 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:78160 Archived-At: > If I append -*- lexical-binding: t -*- to the first line of js2-mode.el > and eval the buffer, parsing a file takes several (3 to 4) times longer. [ I'm disregarding the interpreted time for now, since the issues are likely to be different. ] In the compiled case, loading js2-mode-lexical.elc and then redefining `js2-get-token' to the value it has in js2-mode-dynamic.elc brings me back the same speed as with js2-mode-dynamic.elc. IOW the slowdown is in js2-get-token. If it indeed comes from the handling of catch/throw, then there are two ways to fix it: - provide a new byte-code for catch which does not require wrapping the body in a closure. This should not be terribly difficult and would benefit all existing code, but it does require changes to the way catch is implemented. - improve the byte-compiler so it can compile away cl-block/cl-return. This should not require new byte-codes, but requires delving "deepish" into the byte-compiler. Stefan