From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noam Postavsky Newsgroups: gmane.emacs.bugs Subject: bug#23967: 25.1.50; Slow compilation of ns-win.el Date: Wed, 13 Jul 2016 17:15:15 -0400 Message-ID: References: <83bn21a8q2.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11427116bdeecc05378ae155 X-Trace: ger.gmane.org 1468444908 18421 80.91.229.3 (13 Jul 2016 21:21:48 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 13 Jul 2016 21:21:48 +0000 (UTC) Cc: Lars Ingebrigtsen , 23967@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Jul 13 23:21:41 2016 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 1bNRb5-0003Qa-DI for geb-bug-gnu-emacs@m.gmane.org; Wed, 13 Jul 2016 23:21:35 +0200 Original-Received: from localhost ([::1]:50030 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNRb4-0006JQ-EB for geb-bug-gnu-emacs@m.gmane.org; Wed, 13 Jul 2016 17:21:34 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60758) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNRVm-0001Qd-Lq for bug-gnu-emacs@gnu.org; Wed, 13 Jul 2016 17:16:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNRVi-000482-Ci for bug-gnu-emacs@gnu.org; Wed, 13 Jul 2016 17:16:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:37883) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNRVi-00047r-7t for bug-gnu-emacs@gnu.org; Wed, 13 Jul 2016 17:16:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bNRVi-00083B-0n for bug-gnu-emacs@gnu.org; Wed, 13 Jul 2016 17:16:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 13 Jul 2016 21:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23967 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 23967-submit@debbugs.gnu.org id=B23967.146844452230900 (code B ref 23967); Wed, 13 Jul 2016 21:16:01 +0000 Original-Received: (at 23967) by debbugs.gnu.org; 13 Jul 2016 21:15:22 +0000 Original-Received: from localhost ([127.0.0.1]:50220 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNRV4-00082K-CX for submit@debbugs.gnu.org; Wed, 13 Jul 2016 17:15:22 -0400 Original-Received: from mail-oi0-f51.google.com ([209.85.218.51]:35961) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNRV3-000828-Gz for 23967@debbugs.gnu.org; Wed, 13 Jul 2016 17:15:21 -0400 Original-Received: by mail-oi0-f51.google.com with SMTP id w18so89514003oiw.3 for <23967@debbugs.gnu.org>; Wed, 13 Jul 2016 14:15:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=a/icgfXZ85ARKCHCCzABqDCuheoP62NQ5wKkI6naN8w=; b=VgGfBX4AUp5nSPgHWEeL5etEihXAM5Bd+Sdzqy5511dx2CvoeZXZDYymF9g5INYtoZ 6xKieMPNwzCBVE2tviFSx5FQCkMAigj3EfdH6QIIwfq21s423Dvdyo6kw13Q41wHeezU PM4QrFehQtdXpV3rXwUOkYGvioANpaQOwOIzJIvIRRAQFROQjA8A9zq1Q4wKyMhRrY7I e6jKYXf2Oxv6HG55uuOsVB/+m2xw44i5vcRY/eI4+tLGHHh0NAyAWOt3KYtNYLOLzALV NAmccv8zHIeRrTQRo10/T9low7BlAgI3AwIk9ddl2vQ46VaH6auaIuC72SD/HmGDLZO8 D0ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=a/icgfXZ85ARKCHCCzABqDCuheoP62NQ5wKkI6naN8w=; b=ahif4AHMOGbdd2xoh0hRE3t2SCRCrEjj5kMhniNDMkG8fZ3Op4l+Vv3nEQyugPpHMR YMtEB+mCLkuZ+YWd2WRwpkeR2cho+eUflhlbBZJdWvOYmuLUUDf+vy0eRxqbDa1l02oB ZviWcfMSg1cSLJCnes0lVmciXSjB14YQWOkuodEHiMgnzlgk/ifBN2NeCO9BZCXty8xp MaXnk9/OlldQgHaNPSB5k9s9zsOPAyIppiT8Rx2q42JGEd8AVdrNEXTqRR5G5LrIWy/v sPkC+1xOSlrA/KLo2GtgG6KQ2MJgiq6y0iHgI1zoo8YKhsRuwHO+xiVBC4ZJYyJXSmyz RGjw== X-Gm-Message-State: ALyK8tL/WjT9y4E2pDFJHzWS+Q97sL38GBEYcsTM5i1YbrZmNPHpa+Gm8yvv/vpwlTn7a3v4mbJz3qluMvOXvA== X-Received: by 10.157.38.246 with SMTP id i51mr6664012otd.112.1468444515881; Wed, 13 Jul 2016 14:15:15 -0700 (PDT) Original-Received: by 10.157.4.197 with HTTP; Wed, 13 Jul 2016 14:15:15 -0700 (PDT) In-Reply-To: <83bn21a8q2.fsf@gnu.org> X-Google-Sender-Auth: Fo9wWi7pgS0bILaOGmnlhrUZfcU X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.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" Xref: news.gmane.org gmane.emacs.bugs:121036 Archived-At: --001a11427116bdeecc05378ae155 Content-Type: text/plain; charset=UTF-8 On Wed, Jul 13, 2016 at 10:55 AM, Eli Zaretskii wrote: > This is a known problem. The culprit is ucs-normalize.el > (uni-decomposition is loaded when ucs-normalize is compiled). It > takes a long time to compile even with Emacs that already has the > byte-compiled byte-compiler loaded into it. I ran the profiler on a compilation of ucs-normalize.el and found 2 easy optimizations (ucs-normalize-block-compose-chars was using with-temp-buffer in a loop, so I lifted the it out of the loop; using regexp-opt-charset instead of regexp-opt saves some char-to-string conversion, sorting, and duplicate deletion). The attached patch brings the compilation down from 2.5 seconds to 0.8 seconds in my normal running Emacs, and using the bootstrap-emacs command posted by Lars (swapping ../lisp/international/ucs-normalize.el for ../lisp/term/ns-win.el) from 1m30s to 7s. > When compiling > ucs-normalize with an interpreted byte-compiler, it takes ages (11 min > on my Core i7). And since ucs-normalize is now preloaded on OS X, we > compile it with the interpreted byte-compiler, as we do with any other > file that is preloaded on _some_ platform. > > Patches to solve this conundrum in some way are welcome. Could we call `byte-compile' on the byte-compiler functions after loading them? --001a11427116bdeecc05378ae155 Content-Type: text/plain; charset=UTF-8; name="ucs-normalize.el.diff" Content-Disposition: attachment; filename="ucs-normalize.el.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iql9n5m30 ZGlmZiAtLWdpdCBpL2xpc3AvaW50ZXJuYXRpb25hbC91Y3Mtbm9ybWFsaXplLmVsIHcvbGlzcC9p bnRlcm5hdGlvbmFsL3Vjcy1ub3JtYWxpemUuZWwKaW5kZXggNGIzNjRlZS4uYzAzZWE1MCAxMDA2 NDQKLS0tIGkvbGlzcC9pbnRlcm5hdGlvbmFsL3Vjcy1ub3JtYWxpemUuZWwKKysrIHcvbGlzcC9p bnRlcm5hdGlvbmFsL3Vjcy1ub3JtYWxpemUuZWwKQEAgLTI2Myw3ICsyNjMsNyBAQCB1Y3Mtbm9y bWFsaXplLWNvbWJpbmluZy1jaGFycwogKGRlZnZhciB1Y3Mtbm9ybWFsaXplLWNvbWJpbmluZy1j aGFycy1yZWdleHAgbmlsCiAgICJSZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggc2VxdWVuY2Ug b2YgY29tYmluaW5nIGNoYXJhY3RlcnMuIikKICAgKHNldHEgdWNzLW5vcm1hbGl6ZS1jb21iaW5p bmctY2hhcnMtcmVnZXhwCi0gIChldmFsLXdoZW4tY29tcGlsZSAoY29uY2F0IChyZWdleHAtb3B0 IChtYXBjYXIgJ2NoYXItdG8tc3RyaW5nIGNvbWJpbmluZy1jaGFycykpICIrIikpKQorICAgICAg ICAoZXZhbC13aGVuLWNvbXBpbGUgKGNvbmNhdCAocmVnZXhwLW9wdC1jaGFyc2V0IGNvbWJpbmlu Zy1jaGFycykgIisiKSkpCiAKIChkZWNsYXJlLWZ1bmN0aW9uIGRlY29tcG9zaXRpb24tdHJhbnNs YXRpb24tYWxpc3QgInVjcy1ub3JtYWxpemUiCiAgICAgICAgICAgICAgICAgICAoZGVjb21wb3Np dGlvbi1mdW5jdGlvbikpCkBAIC0zOTYsMjAgKzM5NiwyMCBAQCB1Y3Mtbm9ybWFsaXplLWJsb2Nr LWNvbXBvc2UtY2hhcnMKIEl0IGluY2x1ZGVzIFNpbmdsZXRvbnMsIENvbXBvc2l0aW9uRXhjbHVz aW9ucywgYW5kIE5vbi1TdGFydGVyCiBkZWNvbXBvc2l0aW9uLiIKICAgICAobGV0IChlbnRyaWVz IGRlY29tcG9zaXRpb24gY29tcG9zaXRpb24pCi0gICAgICAobWFwYwotICAgICAgIChsYW1iZGEg KHN0YXJ0LWVuZCkKLSAgICAgICAgIChjbC1kbyAoKGkgKGNhciBzdGFydC1lbmQpICgrIGkgMSkp KSAoKD4gaSAoY2RyIHN0YXJ0LWVuZCkpKQotICAgICAgICAgICAoc2V0cSBkZWNvbXBvc2l0aW9u Ci0gICAgICAgICAgICAgICAgIChzdHJpbmctdG8tbGlzdAotICAgICAgICAgICAgICAgICAgKHdp dGgtdGVtcC1idWZmZXIKLSAgICAgICAgICAgICAgICAgICAgKGluc2VydCBpKQotICAgICAgICAg ICAgICAgICAgICAodHJhbnNsYXRlLXJlZ2lvbiAxIDIgZGVjb21wb3NpdGlvbi10cmFuc2xhdGlv bikKLSAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCi0gICAgICAgICAgIChz ZXRxIGNvbXBvc2l0aW9uCi0gICAgICAgICAgICAgICAgICh1Y3Mtbm9ybWFsaXplLWJsb2NrLWNv bXBvc2UtY2hhcnMgZGVjb21wb3NpdGlvbiBjb21wb3NpdGlvbi1wcmVkaWNhdGUpKQotICAgICAg ICAgICAod2hlbiAobm90IChlcXVhbCBjb21wb3NpdGlvbiAobGlzdCBpKSkpCi0gICAgICAgICAg ICAgKHNldHEgZW50cmllcyAoY29ucyBpIGVudHJpZXMpKSkpKQotICAgICAgIGNoZWNrLXJhbmdl KQorICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgKGRvbGlzdCAoc3RhcnQtZW5kIGNo ZWNrLXJhbmdlKQorICAgICAgICAgIChjbC1kbyAoKGkgKGNhciBzdGFydC1lbmQpICgrIGkgMSkp KSAoKD4gaSAoY2RyIHN0YXJ0LWVuZCkpKQorICAgICAgICAgICAgKHNldHEgZGVjb21wb3NpdGlv bgorICAgICAgICAgICAgICAgICAgKHN0cmluZy10by1saXN0CisgICAgICAgICAgICAgICAgICAg KHByb2duCisgICAgICAgICAgICAgICAgICAgICAoZXJhc2UtYnVmZmVyKQorICAgICAgICAgICAg ICAgICAgICAgKGluc2VydCBpKQorICAgICAgICAgICAgICAgICAgICAgKHRyYW5zbGF0ZS1yZWdp b24gMSAyIGRlY29tcG9zaXRpb24tdHJhbnNsYXRpb24pCisgICAgICAgICAgICAgICAgICAgICAo YnVmZmVyLXN0cmluZykpKSkKKyAgICAgICAgICAgIChzZXRxIGNvbXBvc2l0aW9uCisgICAgICAg ICAgICAgICAgICAodWNzLW5vcm1hbGl6ZS1ibG9jay1jb21wb3NlLWNoYXJzIGRlY29tcG9zaXRp b24gY29tcG9zaXRpb24tcHJlZGljYXRlKSkKKyAgICAgICAgICAgICh3aGVuIChub3QgKGVxdWFs IGNvbXBvc2l0aW9uIChsaXN0IGkpKSkKKyAgICAgICAgICAgICAgKHNldHEgZW50cmllcyAoY29u cyBpIGVudHJpZXMpKSkpKSkKICAgICAgIDs7KHJlbW92ZS1kdXBsaWNhdGVzCiAgICAgICAgKGFw cGVuZCBlbnRyaWVzCiAgICAgICAgICAgICAgICB1Y3Mtbm9ybWFsaXplLWNvbXBvc2l0aW9uLWV4 Y2x1c2lvbnMKQEAgLTQzMSw3ICs0MzEsNyBAQCB1Y3Mtbm9ybWFsaXplLWJsb2NrLWNvbXBvc2Ut Y2hhcnMKICAgICAoc2V0cSBoZnMtbmZjLXF1aWNrLWNoZWNrLWxpc3QgKHF1aWNrLWNoZWNrLWxp c3QgJ3Vjcy1ub3JtYWxpemUtaGZzLW5mZC10YWJsZSB0ICkpCiAKICAgKGRlZnVuIHF1aWNrLWNo ZWNrLWxpc3QtdG8tcmVnZXhwIChxdWljay1jaGVjay1saXN0KQotICAgIChyZWdleHAtb3B0ICht YXBjYXIgJ2NoYXItdG8tc3RyaW5nIChhcHBlbmQgcXVpY2stY2hlY2stbGlzdCBjb21iaW5pbmct Y2hhcnMpKSkpCisgICAgKHJlZ2V4cC1vcHQtY2hhcnNldCAoYXBwZW5kIHF1aWNrLWNoZWNrLWxp c3QgY29tYmluaW5nLWNoYXJzKSkpCiAKICAgKGRlZnVuIHF1aWNrLWNoZWNrLWRlY29tcG9zaXRp b24tbGlzdC10by1yZWdleHAgKHF1aWNrLWNoZWNrLWxpc3QpCiAgICAgKGNvbmNhdCAocXVpY2st Y2hlY2stbGlzdC10by1yZWdleHAgcXVpY2stY2hlY2stbGlzdCkgIlxcfFvqsIAt7Z6jXSIpKQo= --001a11427116bdeecc05378ae155--