From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 13 08:19:50 2016 Received: (at submit) by debbugs.gnu.org; 13 Jul 2016 12:19:50 +0000 Received: from localhost ([127.0.0.1]:49147 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNJ8o-0008Fx-0w for submit@debbugs.gnu.org; Wed, 13 Jul 2016 08:19:50 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43693) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNJ8l-0008Fk-Vo for submit@debbugs.gnu.org; Wed, 13 Jul 2016 08:19:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNJ8f-0004cz-CZ for submit@debbugs.gnu.org; Wed, 13 Jul 2016 08:19:42 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:59780) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNJ8f-0004cU-8v for submit@debbugs.gnu.org; Wed, 13 Jul 2016 08:19:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34626) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNJ8c-0000sD-HR for bug-gnu-emacs@gnu.org; Wed, 13 Jul 2016 08:19:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNJ8X-0004aC-Dj for bug-gnu-emacs@gnu.org; Wed, 13 Jul 2016 08:19:37 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:48439) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNJ8X-0004YG-2x for bug-gnu-emacs@gnu.org; Wed, 13 Jul 2016 08:19:33 -0400 Received: from cm-84.215.1.64.getinternet.no ([84.215.1.64] helo=stories) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1bNJ8M-00066M-Nc for bug-gnu-emacs@gnu.org; Wed, 13 Jul 2016 14:19:24 +0200 From: Lars Ingebrigtsen To: bug-gnu-emacs@gnu.org Subject: 25.1.50; Slow compilation of ns-win.el Date: Wed, 13 Jul 2016 14:19:21 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) I've been looking slightly at why "make -j8" isn't as parallel as you'd expect, and in my tests it's because one single .el compilation job is weirdly slow. To test: If I say "make bootstrap" (to get rid of everything) and then halt the compilation after it's made bootstrap-emacs [larsi@stories ~/src/emacs/trunk/lisp]$ time ../src/bootstrap-emacs -batch --no-site-file --no-site-lisp --eval "(setq load-prefer-newer t)" -l bytecomp -f byte-compile-refresh-preloaded -f batch-byte-compile ../lisp/term/ns-win.el real 0m44.097s user 0m44.156s sys 0m0.012s 44 seconds to compile it. From stracing, the thing it says before it ... doesn't say anything for half a minute is: readlinkat(AT_FDCWD, "/home/larsi/src/emacs/trunk/lisp/international/uni-decomposition.el", 0x7fff42af6240, 1024) = -1 EINVAL (Invalid argument) So... er... it has something to do with Unicode? This may not be a bug or anything, but it's perhaps something that should be looked at to speed up the initial Emacs compilation. In GNU Emacs 25.1.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.5) of 2016-07-12 built on stories Repository revision: df7774be39af76d3072a0278ef815a47bf50dfe9 Windowing system distributor 'The X.Org Foundation', version 11.0.11604000 System Description: Debian GNU/Linux 8.5 (jessie) Recent messages: Error reading dir-locals: (error "Invalid byte code in /home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-macs.elc") Eager macro-expansion failure: (error "Invalid byte code in /home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-macs.elc") [8 times] Error: (error "Invalid byte code in /home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-macs.elc") previous-line: Beginning of buffer Error reading dir-locals: (error "Invalid byte code in /home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-macs.elc") Eager macro-expansion failure: (error "Invalid byte code in /home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-macs.elc") [8 times] Error: (error "Invalid byte code in /home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-macs.elc") Mark saved where search started Mark set Making completion list... Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Emacs-Lisp Minor modes in effect: global-whitespace-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t Load-path shadows: /home/larsi/src/cddb.el/expect hides /home/larsi/lisp/expect /home/larsi/src/cddb.el/captitle hides /home/larsi/lisp/captitle /home/larsi/src/clock.el/clock hides /home/larsi/lisp/clock ~/pgnus/contrib/vcard hides /home/larsi/lisp/vcard /home/larsi/src/pvr.el/pvr hides /home/larsi/lisp/pvr ~/lisp/zenirc-2.112/src/zenirc-example hides /home/larsi/lisp/zenirc-example ~/pgnus/contrib/compface hides /home/larsi/src/emacs/trunk/lisp/image/compface Features: (shadow ecomplete emacsbug sendmail vc vc-dispatcher map pp misearch multi-isearch copyright vc-cvs shr-color color eww gnus-html help-fns radix-tree sort gnus-cite smiley ansi-color url-queue url-cache mm-archive gnus-async gnus-dup qp gnus-ml gmane spam-gmane dns mm-url disp-table gnus-fun gnus-mdrtn gnus-topic pop3 nndoc nnmbox utf-7 nnml nnfolder network-stream starttls nnir spam-report spam spam-stat gnus-uu yenc gnus-delay gnus-draft gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum nndraft nnmh gnus-group gnus-undo gnus-start gnus-cloud nnimap utf7 netrc nnoo parse-time gnus-spec gnus-win nnmail gnus-int gnus-range mail-source message format-spec rfc822 mml mml-sec epa epg mailabbrev gmm-utils mailheader gnus nnheader gnus-util rmail rmail-loaddefs mail-utils whitespace movie mkv shr svg imdb dom pvr debug debbugs-gnu easy-mmode derived debbugs soap-client mm-decode mm-bodies mm-encode url-http tls gnutls url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap warnings rng-xsd rng-dt rng-util xsd-regexp xml ido flyspell ispell benchmark w3m browse-url doc-view subr-x dired dired-loaddefs image-mode timezone w3m-hist w3m-fb w3m-ems wid-edit w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util add-log mail-extr jka-compr cl finder-inf package epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs pcase cl-lib time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 1045166 126768) (symbols 48 170836 0) (miscs 40 288 729) (strings 32 245855 17893) (string-bytes 1 14892431) (vectors 16 36358) (vector-slots 8 1122185 66612) (floats 8 6931 746) (intervals 56 60845 5795) (buffers 976 61) (heap 1024 184172 181041)) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 13 10:55:47 2016 Received: (at 23967) by debbugs.gnu.org; 13 Jul 2016 14:55:47 +0000 Received: from localhost ([127.0.0.1]:49951 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNLZi-0003gJ-TS for submit@debbugs.gnu.org; Wed, 13 Jul 2016 10:55:47 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35921) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNLZh-0003g3-R1 for 23967@debbugs.gnu.org; Wed, 13 Jul 2016 10:55:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNLZX-00011A-T6 for 23967@debbugs.gnu.org; Wed, 13 Jul 2016 10:55:40 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:55722) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNLZX-000116-Ot; Wed, 13 Jul 2016 10:55:35 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3848 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bNLZW-0007mL-FO; Wed, 13 Jul 2016 10:55:35 -0400 Date: Wed, 13 Jul 2016 17:55:17 +0300 Message-Id: <83bn21a8q2.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-reply-to: (message from Lars Ingebrigtsen on Wed, 13 Jul 2016 14:19:21 +0200) Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.3 (------) X-Debbugs-Envelope-To: 23967 Cc: 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.3 (------) > From: Lars Ingebrigtsen > Date: Wed, 13 Jul 2016 14:19:21 +0200 > > I've been looking slightly at why "make -j8" isn't as parallel as you'd > expect, and in my tests it's because one single .el compilation job is > weirdly slow. > > To test: > > If I say "make bootstrap" (to get rid of everything) and then halt the > compilation after it's made bootstrap-emacs > > [larsi@stories ~/src/emacs/trunk/lisp]$ time ../src/bootstrap-emacs -batch --no-site-file --no-site-lisp --eval "(setq load-prefer-newer t)" -l bytecomp -f byte-compile-refresh-preloaded -f batch-byte-compile ../lisp/term/ns-win.el > > real 0m44.097s > user 0m44.156s > sys 0m0.012s > > 44 seconds to compile it. From stracing, the thing it says before it > ... doesn't say anything for half a minute is: > > readlinkat(AT_FDCWD, "/home/larsi/src/emacs/trunk/lisp/international/uni-decomposition.el", 0x7fff42af6240, 1024) = -1 EINVAL (Invalid argument) > > So... er... it has something to do with Unicode? > > This may not be a bug or anything, but it's perhaps something that > should be looked at to speed up the initial Emacs compilation. 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. 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. From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 13 17:15:22 2016 Received: (at 23967) by debbugs.gnu.org; 13 Jul 2016 21:15:22 +0000 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 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 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) MIME-Version: 1.0 Received: by 10.157.4.197 with HTTP; Wed, 13 Jul 2016 14:15:15 -0700 (PDT) In-Reply-To: <83bn21a8q2.fsf@gnu.org> References: <83bn21a8q2.fsf@gnu.org> From: Noam Postavsky Date: Wed, 13 Jul 2016 17:15:15 -0400 X-Google-Sender-Auth: Fo9wWi7pgS0bILaOGmnlhrUZfcU Message-ID: Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el To: Eli Zaretskii Content-Type: multipart/mixed; boundary=001a11427116bdeecc05378ae155 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 23967 Cc: Lars Ingebrigtsen , 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --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-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 14 10:54:58 2016 Received: (at 23967) by debbugs.gnu.org; 14 Jul 2016 14:54:58 +0000 Received: from localhost ([127.0.0.1]:51558 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNi2Q-00032U-Uf for submit@debbugs.gnu.org; Thu, 14 Jul 2016 10:54:58 -0400 Received: from eggs.gnu.org ([208.118.235.92]:55764) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNi2L-000327-Hv for 23967@debbugs.gnu.org; Thu, 14 Jul 2016 10:54:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNi2C-0002O8-Ga for 23967@debbugs.gnu.org; Thu, 14 Jul 2016 10:54:44 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:44490) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNi2C-0002Ng-DI; Thu, 14 Jul 2016 10:54:40 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1750 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bNi2A-0007fC-7Y; Thu, 14 Jul 2016 10:54:38 -0400 Date: Thu, 14 Jul 2016 17:54:23 +0300 Message-Id: <83inw88e3k.fsf@gnu.org> From: Eli Zaretskii To: Noam Postavsky In-reply-to: (message from Noam Postavsky on Wed, 13 Jul 2016 17:15:15 -0400) Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el References: <83bn21a8q2.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.3 (------) X-Debbugs-Envelope-To: 23967 Cc: larsi@gnus.org, 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.3 (------) > From: Noam Postavsky > Date: Wed, 13 Jul 2016 17:15:15 -0400 > Cc: Lars Ingebrigtsen , 23967@debbugs.gnu.org > > 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. LGTM, thanks. However, I'm worried that we have no test for ucs-normalize, so it's hard to be sure the non-trivial functionality is unchanged, even though your changes are pretty straightforward. How about adding a test that uses the data in this file: http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt ucs-normalize claims to have passed an old version of this, but I see no existing way of re-running that test, did I miss something? I'd feel much safer if the tests all pass at least as they did with the old version. > Could we call `byte-compile' on the byte-compiler functions after loading them? Maybe, you will have to try. The bootstrap of the byte compiler is somewhat tricky, given all the dependencies (see COMPILE_FIRST in lisp/Makefile.in). Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 14 23:23:04 2016 Received: (at 23967) by debbugs.gnu.org; 15 Jul 2016 03:23:04 +0000 Received: from localhost ([127.0.0.1]:51915 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNtiR-0004Tb-P5 for submit@debbugs.gnu.org; Thu, 14 Jul 2016 23:23:03 -0400 Received: from mail-io0-f173.google.com ([209.85.223.173]:36225) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNtiP-0004Su-Uw for 23967@debbugs.gnu.org; Thu, 14 Jul 2016 23:23:02 -0400 Received: by mail-io0-f173.google.com with SMTP id b62so93458570iod.3 for <23967@debbugs.gnu.org>; Thu, 14 Jul 2016 20:23:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=dL67AMmKd9uaS/Zu0cfrltJB1p4Kd7A/IAZwzLVHu8o=; b=roq5OZz+sJ0oNvjeDkrfjsaoVJfFvlDwbkJgw/aPvyR5Qf69On7penI1FtPEDLiYG6 i8K82tpCFHpsRXZ8IPwM3Y6Aick0x3cZ7ANN2oS8v59N6PA8Gz6YJSmwfxMhzOkGqApa jN/c/3pDCcUFWMUz/JPRFTnB5xmahvNHqhnBuHoxprHGuo0oFI7Q8FZUMkuu1qWVjoDd ab8Ci13rd6v0jg9tYeSxLSAqymjaaxxgSPemOQkrWptK6PNmZdYJbSLqy1yJ9PxkqxgX c4Ol1xwkRIzH82a5kSIlWT+WfPvRV98PcYKm0xyqv825JZq4gYoHQOxR7Lwh+hTTD8JA /4iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=dL67AMmKd9uaS/Zu0cfrltJB1p4Kd7A/IAZwzLVHu8o=; b=ZgQ4FSWqSLsAWrVjQnWRoj0lfjHzKCNnipZyQRrPhfoFCiroX1IV8I9eUDwHuWl5Cv ntyKUKGUiGypuXH1PJS0jjxjGmD8hKPyRWBb6wxfqxjHTgwipxgvA3bs9mL5VhqCV8Lc p98e1OFhKqgKAIW1uWN2nG+TzBoQYHZWrMPfVMfQ7nShKe/NQjz0kl3Ez3IMeVK85SYA /2pEOl3P2ra9iq5gnCM3oT+idiRSpcBTxvcjwlLz942K1ILPzY5Wke1xJkR4bo0SgDJd tTFx8VuDzxxZOp0PhTmzUeR14W0u9LkIPlv6nZRu7Fj5mk6VEwQFqoHLzqRJWRmF/ECv Wp9g== X-Gm-Message-State: ALyK8tLRjzRdxGqRQItUjTvKiDtCh1khaFwDikLGZ+03Pfz+W420AsL1J2vLzJ7wlJqNZA== X-Received: by 10.107.149.82 with SMTP id x79mr17779152iod.141.1468552976227; Thu, 14 Jul 2016 20:22:56 -0700 (PDT) Received: from zony (206-188-64-44.cpe.distributel.net. [206.188.64.44]) by smtp.googlemail.com with ESMTPSA id o139sm728721ito.4.2016.07.14.20.22.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 14 Jul 2016 20:22:55 -0700 (PDT) From: npostavs@users.sourceforge.net To: Eli Zaretskii Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el References: <83bn21a8q2.fsf@gnu.org> <83inw88e3k.fsf@gnu.org> Date: Thu, 14 Jul 2016 23:22:54 -0400 In-Reply-To: <83inw88e3k.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 14 Jul 2016 17:54:23 +0300") Message-ID: <87poqfega9.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 23967 Cc: larsi@gnus.org, 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Eli Zaretskii writes: > However, I'm worried that we have no test for ucs-normalize, so it's > hard to be sure the non-trivial functionality is unchanged, even > though your changes are pretty straightforward. > > How about adding a test that uses the data in this file: > > http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt > > ucs-normalize claims to have passed an old version of this, but I see > no existing way of re-running that test, did I miss something? I don't see any evidence of an existing test. I stared writing a new one, and it's failing with the original ucs-normalize.el (or I'm misunderstanding the requirements). The first invariant to test is c2 =3D=3D toNFC(c1) =3D=3D toNFC(c2) =3D=3D toNFC(c3) (cX is column X, columns numbered from 1). Line 15131 of NormalizationTest.txt has # c1 c2 c3 1112E;1112E;11131 11127;1112E;11131 11127; # (=E2=97=8C=F0=91=84=AE; =E2=97= =8C=F0=91=84=AE; =E2=97=8C=F0=91=84=B1=E2=97=8C=F0=91=84=A7; =E2=97=8C=F0= =91=84=AE; =E2=97=8C=F0=91=84=B1=E2=97=8C=F0=91=84=A7; ) CHAKMA VOWEL SIGN O So I think toNFC(c3) =3D=3D c2 is equivalent to (equal (ucs-normalize-NFC-string (string #x11131 #x11127)) (string #x1112E)) which gives nil. Lines 15131 to 15139 and 16149 to 16289 are failing. To check invariants for a single line, load the attached ucs-normalize-tests.el, put point at the beginning of the line and evaluate (ucs-normalize-tests--invariants-hold-p (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column)) --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=ucs-normalize-tests.el Content-Transfer-Encoding: quoted-printable Content-Description: initial ucs-normalize.el file ;;; ucs-normalize --- tests for international/ucs-normalize.el -*- lexical-= binding: t -*- ;; Copyright (C) 2002-2016 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;;; Code: (eval-when-compile (require 'cl-lib)) (require 'ert) (require 'ucs-normalize) (defconst ucs-normalize-test-data-file (expand-file-name "test/data/NormalizationTest.txt" source-directory)) (defun ucs-normalize-tests--parse-column () (let ((chars nil) (term nil)) (while (and (not (equal term ";")) (looking-at "\\([[:xdigit:]]\\{4,6\\}\\)\\([; ]\\)")) (let ((code-point (match-string 1))) (setq term (match-string 2)) (goto-char (match-end 0)) (push (string-to-number code-point 16) chars))) (nreverse chars))) (defmacro ucs-normalize-tests--normalize (norm str) "Like `ucs-normalize-string' but reuse current buffer for efficiency. And NORM is one of the symbols `NFC', `NFD', `NFKC', `NFKD' for brevity." (let ((norm-alist '((NFC . ucs-normalize-NFC-region) (NFD . ucs-normalize-NFD-region) (NFKC . ucs-normalize-NFKC-region) (NFKD . ucs-normalize-NFKD-region)))) `(save-restriction (narrow-to-region (point) (point)) (insert ,str) (funcall #',(cdr (assq norm norm-alist)) (point-min) (point-max)) (delete-and-extract-region (point-min) (point-max))))) (defun ucs-normalize-tests--invariants-hold-p (&rest columns) (cl-destructuring-bind (source nfc nfd nfkc nfkd) (mapcar (lambda (c) (apply #'string c)) columns) (and (equal nfc (ucs-normalize-tests--normalize NFC source)) (equal nfc (ucs-normalize-tests--normalize NFC nfc)) (equal nfc (ucs-normalize-tests--normalize NFC nfd)) (equal nfkc (ucs-normalize-tests--normalize NFC nfkc)) (equal nfkc (ucs-normalize-tests--normalize NFC nfkd)) (equal nfd (ucs-normalize-tests--normalize NFD source)) (equal nfd (ucs-normalize-tests--normalize NFD nfc)) (equal nfd (ucs-normalize-tests--normalize NFD nfd)) (equal nfkd (ucs-normalize-tests--normalize NFD nfkc)) (equal nfkd (ucs-normalize-tests--normalize NFD nfkd)) (equal nfkc (ucs-normalize-tests--normalize NFKC source)) (equal nfkc (ucs-normalize-tests--normalize NFKC nfc)) (equal nfkc (ucs-normalize-tests--normalize NFKC nfd)) (equal nfkc (ucs-normalize-tests--normalize NFKC nfkc)) (equal nfkc (ucs-normalize-tests--normalize NFKC nfkd)) (equal nfkd (ucs-normalize-tests--normalize NFKD source)) (equal nfkd (ucs-normalize-tests--normalize NFKD nfc)) (equal nfkd (ucs-normalize-tests--normalize NFKD nfd)) (equal nfkd (ucs-normalize-tests--normalize NFKD nfkc)) (equal nfkd (ucs-normalize-tests--normalize NFKD nfkd))))) (ert-deftest ucs-normalize-part0 () (with-temp-buffer (insert-file-contents ucs-normalize-test-data-file) ;; Narrow to part. (let ((beg (progn (search-forward "@Part0") (forward-line) (point))) (end (progn (search-forward "@Part1") (match-beginning 0)))) (delete-region end (point-max)) ; Delete from end first, so as (delete-region (point-min) beg) ; not to ruin beg position. (goto-char (point-min))) (while (not (eobp)) (unless (=3D (following-char) ?#) ; Skip comments. (ucs-normalize-tests--invariants-hold-p (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column))) (forward-line)))) (ert-deftest ucs-normalize-part1 () (with-temp-buffer (insert-file-contents ucs-normalize-test-data-file) ;; Narrow to part. (narrow-to-region (progn (search-forward "@Part1") (forward-line) (poin= t)) (progn (search-forward "@Part2") (match-beginning 0))) (goto-char (point-min)) (let ((reporter (make-progress-reporter "UCS Normalize Test Part1" 0 (count-lines (point-min) (point-max)) 0 nil 0.5)) (line 0) (failed nil)) (while (not (eobp)) (unless (or (=3D (following-char) ?#) (ucs-normalize-tests--invariants-hold-p (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column) (ucs-normalize-tests--parse-column))) (push line failed)) (cl-incf line) (progress-reporter-update reporter line) (forward-line)) (progress-reporter-done reporter) (widen) (goto-char (point-min)) (search-forward "@Part1") (forward-line) (let* ((start-line (count-lines (point-min) (point))) (failed-lines (mapcar (lambda (lino) (+ lino 1 start-line)) (n= reverse failed)))) (should-not failed-lines))))) ;;; ucs-normalize-tests.el ends here --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 15 03:22:35 2016 Received: (at 23967) by debbugs.gnu.org; 15 Jul 2016 07:22:35 +0000 Received: from localhost ([127.0.0.1]:51966 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNxSC-0001tw-4P for submit@debbugs.gnu.org; Fri, 15 Jul 2016 03:22:35 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45957) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNxS7-0001tb-87 for 23967@debbugs.gnu.org; Fri, 15 Jul 2016 03:22:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNxRx-0001sS-HA for 23967@debbugs.gnu.org; Fri, 15 Jul 2016 03:22:22 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57167) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNxRl-0001p4-Ia; Fri, 15 Jul 2016 03:22:05 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2766 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bNxRj-0005ve-K3; Fri, 15 Jul 2016 03:22:04 -0400 Date: Fri, 15 Jul 2016 10:21:53 +0300 Message-Id: <83k2gn74dq.fsf@gnu.org> From: Eli Zaretskii To: npostavs@users.sourceforge.net In-reply-to: <87poqfega9.fsf@users.sourceforge.net> (npostavs@users.sourceforge.net) Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el References: <83bn21a8q2.fsf@gnu.org> <83inw88e3k.fsf@gnu.org> <87poqfega9.fsf@users.sourceforge.net> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.3 (------) X-Debbugs-Envelope-To: 23967 Cc: larsi@gnus.org, 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.3 (------) > From: npostavs@users.sourceforge.net > Cc: 23967@debbugs.gnu.org, larsi@gnus.org > Date: Thu, 14 Jul 2016 23:22:54 -0400 > > > How about adding a test that uses the data in this file: > > > > http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt > > > > ucs-normalize claims to have passed an old version of this, but I see > > no existing way of re-running that test, did I miss something? > > I don't see any evidence of an existing test. Right. > I stared writing a new one, and it's failing with the original > ucs-normalize.el (or I'm misunderstanding the requirements). If the failures are identical to the original ucs-normalize, let's for now just mark them as known failures, and look into them later. I don't want to delay this important change that speeds up the bootstrap due to problems unrelated to the change. > The first invariant to test is > > c2 == toNFC(c1) == toNFC(c2) == toNFC(c3) > > (cX is column X, columns numbered from 1). > > Line 15131 of NormalizationTest.txt has > # c1 c2 c3 > 1112E;1112E;11131 11127;1112E;11131 11127; # (◌𑄮; ◌𑄮; ◌𑄱◌𑄧; ◌𑄮; ◌𑄱◌𑄧; ) CHAKMA VOWEL SIGN O > > So I think toNFC(c3) == c2 is equivalent to > > (equal (ucs-normalize-NFC-string > (string #x11131 #x11127)) > (string #x1112E)) > > which gives nil. > > Lines 15131 to 15139 and 16149 to 16289 are failing. I will look into this later. Thanks for the footwork. From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 15 22:46:21 2016 Received: (at 23967) by debbugs.gnu.org; 16 Jul 2016 02:46:21 +0000 Received: from localhost ([127.0.0.1]:53388 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOFcS-0002UX-MR for submit@debbugs.gnu.org; Fri, 15 Jul 2016 22:46:20 -0400 Received: from mail-it0-f53.google.com ([209.85.214.53]:37354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOFcR-0002UE-0B for 23967@debbugs.gnu.org; Fri, 15 Jul 2016 22:46:20 -0400 Received: by mail-it0-f53.google.com with SMTP id f6so33613246ith.0 for <23967@debbugs.gnu.org>; Fri, 15 Jul 2016 19:46:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=Z5a/FInGr2ilLqgrBKn5xCW3T3geZOSo2hIIHS63/9I=; b=Q2s8oEtIN8RRedDMzvLOfxk17YzxUvizK+3aPGUe/COJjE/Kb+l0k8MXanT2y9/0e0 sKj2VH2PCTENy67TWTEdbVUQGNajlpyH2RoUr9EVeWtAk1HLQnH4EVf4Cmz+IeciXqtl kiwHZ/IwADRVFx9AW0ZoSMwvOmGL84b54zpDiEAydlV62927jJPp1zs76NwrJaf7iRFG 3wosxLyKQeIgLMA5XRWaUQTcWGwr9z1zZjre+dNaY5jPBSuVxhnKcHoVFRH3wY9sf+W9 q9yGpklmdGdzqr9/pwRBh3jiJsjlaRbNYeLFmXSSWLAJg6wtoN7hinuL79FJJMuXF64f 3iCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=Z5a/FInGr2ilLqgrBKn5xCW3T3geZOSo2hIIHS63/9I=; b=Hde12mMA9+Yq+ES4bbDiwo7jzK+THSVaYmGHXDgy7VJvFQNFjCjHFiI1mT4hU5KKQR p2noevnNoqzCvsd+ZL4HJrhz3vdU3KC2F95keNNSwWtToYWzScBrsoLu7V8QauS52R/x l2fm9R/nTU34cN20P/rrA1YqMyqW4PpgUrdKMAGsBTBj/Ys73z2kQI8Roec1XYqcLf4J 9cML/Pm4S1wimZq0NUrE51TTkjK0ApD8vWzo0tUpre1JrlDZalf24paWh9F+u8iM3Sgy O/ZlK8AAo5Ybx2Uhm5XiUl014U3tixqay/Q9iQHD/Q+md79OVc3xgR5WZRZex0oVGzFJ K1SQ== X-Gm-Message-State: ALyK8tL5a5eFTd7nM0RO87iOBUnKqbnGO5eiEsOo0zaP3yVYSIqabnCYGDJESejKsvXvBQ== X-Received: by 10.36.28.149 with SMTP id c143mr24560639itc.55.1468637173394; Fri, 15 Jul 2016 19:46:13 -0700 (PDT) Received: from zony (206-188-64-44.cpe.distributel.net. [206.188.64.44]) by smtp.googlemail.com with ESMTPSA id j5sm412189ith.1.2016.07.15.19.46.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Jul 2016 19:46:12 -0700 (PDT) From: npostavs@users.sourceforge.net To: Eli Zaretskii Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el References: <83bn21a8q2.fsf@gnu.org> <83inw88e3k.fsf@gnu.org> <87poqfega9.fsf@users.sourceforge.net> <83k2gn74dq.fsf@gnu.org> Date: Fri, 15 Jul 2016 22:46:12 -0400 In-Reply-To: <83k2gn74dq.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 15 Jul 2016 10:21:53 +0300") Message-ID: <87mvlie1vv.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 23967 Cc: larsi@gnus.org, 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> I stared writing a new one, and it's failing with the original >> ucs-normalize.el (or I'm misunderstanding the requirements). > > If the failures are identical to the original ucs-normalize, let's for > now just mark them as known failures, and look into them later. I > don't want to delay this important change that speeds up the bootstrap > due to problems unrelated to the change. >> >> Lines 15131 to 15139 and 16149 to 16289 are failing. I finished writing the tests. It does pass with http://www.unicode.org/Public/5.2.0/ucd/NormalizationTest.txt as was claimed in the ucs-normalize.el file (except that some of the rule 2 tests fail with that version, but that's only because version 5.2.0 has less code points listed in Part 1). Here are the patches, first adds the test (I elided the content of NormalizationTest.txt to save space), second is the optimization (same as before, except I dropped the change from mapc to dolist, because some benchmark-runs showed me that mapc is significantly faster when not compiled). --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=v1-0001-Add-tests-for-ucs-normalize.el.patch.gz Content-Transfer-Encoding: base64 Content-Description: patch 1, elided content H4sICJibiVcAA3YxLTAwMDEtQWRkLXRlc3RzLWZvci11Y3Mtbm9ybWFsaXplLmVsLnBhdGNoAN1a /3LbxhH+n0+xo0xjMBYo4giAIFW3ViUrcZXYHlmeOhNnJiBwFFGBAA2AktUfD9R/+hB5su5+IEhA oiRImU5nysQnAtj9dm93b2/3wOMsnZOtnb4eDSe2q4ZTV3me6jtqEngqVCrw3H4wmnjuwFf0Q5rQ e70ga0j9/hj/k+r3rc4xw4zpTerP6V2aF/5lfnFNv08W5feX53M/intBOv9D58gv9JiOs2iXLIf+ vIwZwHJJWWPLG/c9Mvt2v995v5z8VQfFmH56d3B2+B1dWmTtqZ/pIAyp0HmR0zTNaBnkZpJmcz+O /qZ7Ou503qdzvSLwM01zP7vQIfk56S8LxuPvRUpTUabT+QaEe6Ff+HtRUugs8YsoTfx4780KE9dn TNQrvhTjiiGO8sUNhoYiJuSzOmwQfVVq0+uYptl5nECif5DlDYdDer7903mkPoxHpBxFzKloGsU6 p2DmJ+c6ZGeM+mpEUZLrTEBy43m3Q0Gm2V00T0NNVr/v2vbjpnA3QmulO50wmk7JNM+jgvy9x1lw 8jj6TsL+ErvU9e1ESai/cLzj0+tpazCY+p44lPZCfbmXLOO4w+54tLSXLznady16bu269PJl5/lX dIvQHPX6/J+Q8+Ny8ciC4WXC/7PbrLFtjR2Hvv3hTCh+/Ve5nj4kUcBz+PXfu/Q6CXqdn3q93s9M IDSv3h5vMWr7MJo8kqGVWfv2yLKmwd1mbS+utGtf7CrRLpbd399vZgsSOZtMcg+uzNj8xqRYf4kC PzYnrHiUnI+pkNud5wJOh+niOovOZwUZh11JicqEG44zrel9Oi2uJB0dp8skhJCVV0rms1mUl/bh vws/Kyid0rdvPtCruR/kFdX6hlBNBTdf4Y7pOl1S4CeU6TDKiyyaLHnNiWuTcI9nx2aPptdA4Zus g86omEmizOa5CJMLwf9WJzrzY3q3nMRRQN9HgeaEIPlzIXfyGSfQSQkkLHfPTkf8PKNLneV8TYNK yApxl9IMKIZfiPIZpQth7LLG1xRzlK95t05/M8uQXQfkWbrgCc0Yj6d4FcUcppqWuZ4u410AMDX9 5fXZd28/nNHBmx/pLwenpwdvzn7cZ+pilvJTfalLrGi+iCOG5mllflJcs/aA+OHV6eF3zHPwp9ff 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 --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=v1-0002-Optimize-ucs-normalize.el-compilation.patch Content-Transfer-Encoding: quoted-printable Content-Description: patch 2 >From 821aa63d1efd763d42cf0ae8249727aa7cb692fc Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Fri, 15 Jul 2016 22:10:33 -0400 Subject: [PATCH v1 2/2] Optimize ucs-normalize.el compilation * lisp/international/ucs-normalize.el (ucs-normalize-combining-chars-regexp= ): (quick-check-list-to-regexp): Use regexp-opt-charset instead of regexp-opt. * lisp/international/ucs-normalize.el (quick-check-list): Reuse a single temp buffer for the whole loop. --- lisp/international/ucs-normalize.el | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-n= ormalize.el index 4b364ee..ac2a0d9 100644 --- a/lisp/international/ucs-normalize.el +++ b/lisp/international/ucs-normalize.el @@ -263,7 +263,7 @@ ucs-normalize-combining-chars (defvar ucs-normalize-combining-chars-regexp nil "Regular expression to match sequence of combining characters.") (setq ucs-normalize-combining-chars-regexp - (eval-when-compile (concat (regexp-opt (mapcar 'char-to-string combining= -chars)) "+"))) + (eval-when-compile (concat (regexp-opt-charset combining-chars) "+= "))) =20 (declare-function decomposition-translation-alist "ucs-normalize" (decomposition-function)) @@ -396,20 +396,22 @@ ucs-normalize-block-compose-chars It includes Singletons, CompositionExclusions, and Non-Starter decomposition." (let (entries decomposition composition) - (mapc - (lambda (start-end) - (cl-do ((i (car start-end) (+ i 1))) ((> i (cdr start-end))) - (setq decomposition - (string-to-list - (with-temp-buffer - (insert i) - (translate-region 1 2 decomposition-translation) - (buffer-string)))) - (setq composition - (ucs-normalize-block-compose-chars decomposition composit= ion-predicate)) - (when (not (equal composition (list i))) - (setq entries (cons i entries))))) - check-range) + (with-temp-buffer + (mapc + (lambda (start-end) + (cl-do ((i (car start-end) (+ i 1))) ((> i (cdr start-end))) + (setq decomposition + (string-to-list + (progn + (erase-buffer) + (insert i) + (translate-region 1 2 decomposition-translation) + (buffer-string)))) + (setq composition + (ucs-normalize-block-compose-chars decomposition compos= ition-predicate)) + (when (not (equal composition (list i))) + (setq entries (cons i entries))))) + check-range)) ;;(remove-duplicates (append entries ucs-normalize-composition-exclusions @@ -431,7 +433,7 @@ ucs-normalize-block-compose-chars (setq hfs-nfc-quick-check-list (quick-check-list 'ucs-normalize-hfs-nf= d-table t )) =20 (defun quick-check-list-to-regexp (quick-check-list) - (regexp-opt (mapcar 'char-to-string (append quick-check-list combining= -chars)))) + (regexp-opt-charset (append quick-check-list combining-chars))) =20 (defun quick-check-decomposition-list-to-regexp (quick-check-list) (concat (quick-check-list-to-regexp quick-check-list) "\\|[=EA=B0=80-= =ED=9E=A3]")) --=20 2.8.0 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 16 02:44:21 2016 Received: (at 23967) by debbugs.gnu.org; 16 Jul 2016 06:44:21 +0000 Received: from localhost ([127.0.0.1]:53440 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOJKk-0008NG-Bm for submit@debbugs.gnu.org; Sat, 16 Jul 2016 02:44:21 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56076) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOJKg-0008N0-5R for 23967@debbugs.gnu.org; Sat, 16 Jul 2016 02:44:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bOJKX-0000vd-0D for 23967@debbugs.gnu.org; Sat, 16 Jul 2016 02:44:08 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48494) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bOJKK-0000uN-DU; Sat, 16 Jul 2016 02:43:52 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4153 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bOJKI-0004cI-B2; Sat, 16 Jul 2016 02:43:50 -0400 Date: Sat, 16 Jul 2016 09:43:42 +0300 Message-Id: <83vb065bhd.fsf@gnu.org> From: Eli Zaretskii To: npostavs@users.sourceforge.net In-reply-to: <87mvlie1vv.fsf@users.sourceforge.net> (npostavs@users.sourceforge.net) Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el References: <83bn21a8q2.fsf@gnu.org> <83inw88e3k.fsf@gnu.org> <87poqfega9.fsf@users.sourceforge.net> <83k2gn74dq.fsf@gnu.org> <87mvlie1vv.fsf@users.sourceforge.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.3 (------) X-Debbugs-Envelope-To: 23967 Cc: larsi@gnus.org, 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.3 (------) > From: npostavs@users.sourceforge.net > Cc: 23967@debbugs.gnu.org, larsi@gnus.org > Date: Fri, 15 Jul 2016 22:46:12 -0400 > > I finished writing the tests. It does pass with > http://www.unicode.org/Public/5.2.0/ucd/NormalizationTest.txt as was > claimed in the ucs-normalize.el file (except that some of the rule 2 > tests fail with that version, but that's only because version 5.2.0 has > less code points listed in Part 1). > > Here are the patches, first adds the test (I elided the content of > NormalizationTest.txt to save space), second is the optimization (same > as before, except I dropped the change from mapc to dolist, because some > benchmark-runs showed me that mapc is significantly faster when not > compiled). Thanks. Please push this to master, and please also mention NormalizationTest.txt in admin/notes/unicode, as one more file that needs to be imported from each new Unicode standard, followed by running this particular test, to verify compliance. From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 16 13:03:31 2016 Received: (at 23967) by debbugs.gnu.org; 16 Jul 2016 17:03:31 +0000 Received: from localhost ([127.0.0.1]:53995 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOSzw-0001GX-3J for submit@debbugs.gnu.org; Sat, 16 Jul 2016 13:03:31 -0400 Received: from mail-io0-f176.google.com ([209.85.223.176]:35557) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOSzr-0001GD-D2 for 23967@debbugs.gnu.org; Sat, 16 Jul 2016 13:03:26 -0400 Received: by mail-io0-f176.google.com with SMTP id m101so128951452ioi.2 for <23967@debbugs.gnu.org>; Sat, 16 Jul 2016 10:03:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=b65+Co1KNqOOIoOgDMsIcgCCMhQpwMQC8gagaDmpVhE=; b=N3Lv0MD0yKmDKCdO4+aqAk/CrMLIH5nifLBcCK8+MGRY6g37VvQ/vhLHPEI8+1CDvd HnsDpjkyN1ZZrJqEvyV4XhBD2aHkbfH46Tmp3yJoWEJfgE3uHomlQUyHkFrNqDNTF95K 4oRUcuHeZtBhqEqi8YD5WsWQ64+OWVYQ2H1kLB1mBgjX9gyYlp3w3P4rcGOOmWG5UPRy ObLyFuq8MOSuCiVC3GDod2XyMul5btTMWvc0Kzufm4cQW+h0MSB28s9kQ7jPOQlAVcYI UrSH0ThJSXaeDENhqKaR5yvfQATssvKd8p+O812BraidSON5pEn7X74tFTucOT/vBNY3 B0yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=b65+Co1KNqOOIoOgDMsIcgCCMhQpwMQC8gagaDmpVhE=; b=EN7eCTM+0vjtECq04B4snGKdyAF6oI/y8ezeFs5qtSNXxwt2B5fNJkPUTVWXfVt4+I PcvnXrfyOcA240mdTl3aiG9bZHYfp1cWXJAPoZFiKd9xSi+kVZbWIIQpJOwSvHFpmvuJ HzIrge5FfO4W1yrdFwBprCdHU1kEKmMCKLTi5I4Vzo59mxFx8/pJzhQx2XOv+2wZJs4q PXol+x1kvGAA7LDT3VvJ116l/BtbEY7nAFqXyyDWNGa/4ZSM+cO2sEC8DeRxC9oDccxh M1t5EAec1XZwqOk+22lAjYspBD19JoTLam/aYkWKd57hTC+5pPtf7NSrYe3AKxJpQIBl a+Ug== X-Gm-Message-State: ALyK8tIbox2MqVJY2rZwDF1ghSSo+mQfY+3tkh2jGBWmGoICwbm1avIsNcLr6JTz2n31sg== X-Received: by 10.107.131.170 with SMTP id n42mr26791757ioi.126.1468688597939; Sat, 16 Jul 2016 10:03:17 -0700 (PDT) Received: from zony (206-188-64-44.cpe.distributel.net. [206.188.64.44]) by smtp.googlemail.com with ESMTPSA id w78sm1306841ita.3.2016.07.16.10.03.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Jul 2016 10:03:17 -0700 (PDT) From: npostavs@users.sourceforge.net To: Eli Zaretskii Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el References: <83bn21a8q2.fsf@gnu.org> <83inw88e3k.fsf@gnu.org> <87poqfega9.fsf@users.sourceforge.net> <83k2gn74dq.fsf@gnu.org> <87mvlie1vv.fsf@users.sourceforge.net> <83vb065bhd.fsf@gnu.org> Date: Sat, 16 Jul 2016 13:03:17 -0400 In-Reply-To: <83vb065bhd.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 16 Jul 2016 09:43:42 +0300") Message-ID: <87h9bpecru.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 23967 Cc: larsi@gnus.org, 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Eli Zaretskii writes: >> From: npostavs@users.sourceforge.net >> Cc: 23967@debbugs.gnu.org, larsi@gnus.org >> Date: Fri, 15 Jul 2016 22:46:12 -0400 >> >> I finished writing the tests. It does pass with >> http://www.unicode.org/Public/5.2.0/ucd/NormalizationTest.txt as was >> claimed in the ucs-normalize.el file (except that some of the rule 2 >> tests fail with that version, but that's only because version 5.2.0 has >> less code points listed in Part 1). >> >> Here are the patches, first adds the test (I elided the content of >> NormalizationTest.txt to save space), second is the optimization (same >> as before, except I dropped the change from mapc to dolist, because some >> benchmark-runs showed me that mapc is significantly faster when not >> compiled). > > Thanks. Please push this to master, and please also mention > NormalizationTest.txt in admin/notes/unicode, as one more file that > needs to be imported from each new Unicode standard, followed by > running this particular test, to verify compliance. Pushed as e333157, eed3b46. From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 16 13:20:45 2016 Received: (at 23967) by debbugs.gnu.org; 16 Jul 2016 17:20:45 +0000 Received: from localhost ([127.0.0.1]:54001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOTGe-0001eq-Rq for submit@debbugs.gnu.org; Sat, 16 Jul 2016 13:20:45 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:42427) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOTGc-0001eh-RY for 23967@debbugs.gnu.org; Sat, 16 Jul 2016 13:20:43 -0400 Received: from cm-84.215.1.64.getinternet.no ([84.215.1.64] helo=stories) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1bOTGY-0008DI-Cg; Sat, 16 Jul 2016 19:20:40 +0200 From: Lars Ingebrigtsen To: npostavs@users.sourceforge.net Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el References: <83bn21a8q2.fsf@gnu.org> <83inw88e3k.fsf@gnu.org> <87poqfega9.fsf@users.sourceforge.net> <83k2gn74dq.fsf@gnu.org> <87mvlie1vv.fsf@users.sourceforge.net> <83vb065bhd.fsf@gnu.org> <87h9bpecru.fsf@users.sourceforge.net> Face: Date: Sat, 16 Jul 2016 19:20:32 +0200 In-Reply-To: <87h9bpecru.fsf@users.sourceforge.net> (npostavs's message of "Sat, 16 Jul 2016 13:03:17 -0400") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 23967 Cc: Eli Zaretskii , 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) npostavs@users.sourceforge.net writes: > Pushed as e333157, eed3b46. Great! Thanks for fixing this stuff. A "time make bootstrap -j 8" on my super-spiffy new 4 Core 4GHz i7 machine went from real 2m48.326s user 13m4.340s sys 0m19.444s to real 2m19.142s user 11m55.004s sys 0m19.288s That's a 17% improvement on the time it takes for users to do the first build (and for developers to say "make bootstrap", of course), and is probably a whole lot more seconds on not quite so spiffy machines. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 12:20:22 2016 Received: (at 23967) by debbugs.gnu.org; 17 Jul 2016 16:20:22 +0000 Received: from localhost ([127.0.0.1]:54693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOonm-0000Qi-5G for submit@debbugs.gnu.org; Sun, 17 Jul 2016 12:20:22 -0400 Received: from mail-io0-f179.google.com ([209.85.223.179]:33139) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOonk-0000QS-El for 23967@debbugs.gnu.org; Sun, 17 Jul 2016 12:20:20 -0400 Received: by mail-io0-f179.google.com with SMTP id 38so142293839iol.0 for <23967@debbugs.gnu.org>; Sun, 17 Jul 2016 09:20:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=RzVRZxcDvBplRLfMzjjArGzZr8LPeD3l9f7sK8Nru6I=; b=clfd49VlPp9qmpHydz2frRaC4TWAd5IeBjzbD0iy2oWRS2Ta73CX4hOvhiAM8FUX7N SgO40Ci1Hpexx8rcXZV19WFJ2QtHbqDc9SG87VlWexWrS5M2QfulHGwD3bpj5B680//C mmOJPd7XjR/3Vc9ea96xiJ42TXz32Bhvo+LOzb0dlIh3+LgSpEAI1UpyeKQqox9/s2Kp hkc+qlvYjAOM8GDtVqqDQ+2cmA3PS/LvfErNCCUQgdJiKVsCOl6wyvoHsRmKHdWlUPvF ERuVUrmjOgXryXF0N2eeGR3iFILV8bQHq82EbTiKtZatnfoLHOStnxihO0e1dBmDE1b+ o8ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=RzVRZxcDvBplRLfMzjjArGzZr8LPeD3l9f7sK8Nru6I=; b=mzM8Fh0dFlp6tBa7MQB8L+ni3calsgY50ro+dmNaGFrH6W/KKMxk95iJaUXNRBDZ4E TfR2sw1d2wz40hZFoE58Bxr0GFFhTDLIQjE0bp7XlLe1RBa6WRmVITFLawylYDLz+m8Y k5tITfLUw+Vyg9BLd9LXu0vPSJQNWyNdJT7tVSR9nZtWwvk8QRZC4Pu3Z2UPWvtqWvRO oc/sKPEZm2cmFv7kixK/BIWQmNRow7gBT++HHXRW5EUwJAl9+Z79dFuObCXR9dMy5ePt j4+ShhW/tZASSLgi6UMj2VV0NnZlJdz31vTF7Ei+3hFwK4iMuo195n80i83ttVts6cq3 OqeQ== X-Gm-Message-State: ALyK8tKcFuuvFSlF+SRjpYUhYq05nN+6+MFPfmj1BJz46kuy/BcNxJ5LswF7uhKnpCVnDQ== X-Received: by 10.107.180.5 with SMTP id d5mr5712541iof.62.1468772414856; Sun, 17 Jul 2016 09:20:14 -0700 (PDT) Received: from zony (206-188-64-44.cpe.distributel.net. [206.188.64.44]) by smtp.googlemail.com with ESMTPSA id m203sm7258107iom.21.2016.07.17.09.20.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Jul 2016 09:20:14 -0700 (PDT) From: npostavs@users.sourceforge.net To: Eli Zaretskii Subject: Re: bug#23967: 25.1.50; Slow compilation of ns-win.el References: <83bn21a8q2.fsf@gnu.org> <83inw88e3k.fsf@gnu.org> Date: Sun, 17 Jul 2016 12:20:14 -0400 In-Reply-To: <83inw88e3k.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 14 Jul 2016 17:54:23 +0300") Message-ID: <87zipgck3l.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 23967 Cc: larsi@gnus.org, 23967@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> Could we call `byte-compile' on the byte-compiler functions after loading them? > > Maybe, you will have to try. The bootstrap of the byte compiler is > somewhat tricky, given all the dependencies (see COMPILE_FIRST in > lisp/Makefile.in). So I tried moving the COMPILE_FIRST into loadup.el, which does bring bootstrapping[1] down from 1m5s to 0m47s for me. But IIUC it reduces parallelism when compiling these files, so possibly it's actually a loss overall. [1]: Timed with compile-command = "rm -f bootstrap-emacs ../lisp/emacs-lisp/*.elc && time make bootstrap-emacs" --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: inline; filename=compile-1st-in-loadup.diff Content-Transfer-Encoding: quoted-printable Content-Description: diff diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 12bb9c7..e0d4522 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -100,20 +100,6 @@ AUTOGENEL =3D BYTE_COMPILE_FLAGS =3D \ --eval '(setq load-prefer-newer t)' $(BYTE_COMPILE_EXTRA_FLAGS) =20 -# Files to compile before others during a bootstrap. This is done to -# speed up the bootstrap process. They're ordered by size, so we use -# the slowest-compiler on the smallest file and move to larger files as the -# compiler gets faster. 'autoload.elc' comes last because it is not used = by -# the compiler (so its compilation does not speed up subsequent compilatio= ns), -# it's only placed here so as to speed up generation of the loaddefs.el fi= le. - -COMPILE_FIRST =3D \ - $(lisp)/emacs-lisp/macroexp.elc \ - $(lisp)/emacs-lisp/cconv.elc \ - $(lisp)/emacs-lisp/byte-opt.elc \ - $(lisp)/emacs-lisp/bytecomp.elc \ - $(lisp)/emacs-lisp/autoload.elc - # Prevent any settings in the user environment causing problems. unexport EMACSDATA EMACSDOC EMACSPATH =20 @@ -281,9 +267,7 @@ .SUFFIXES: .el.elc: $(AM_V_ELC)$(emacs) $(BYTE_COMPILE_FLAGS) -f batch-byte-compile $< =20 -.PHONY: compile-first compile-main compile compile-always - -compile-first: $(COMPILE_FIRST) +.PHONY: compile-main compile compile-always =20 # In 'compile-main' we could directly do # ... | xargs $(MAKE) @@ -336,7 +320,7 @@ semantic: # date. Some .el files don't get compiled because they set the # local variable no-byte-compile. # Calling make recursively because suffix rule cannot have prerequisites. -compile: $(LOADDEFS) autoloads compile-first +compile: $(LOADDEFS) autoloads $(MAKE) compile-main =20 # Compile all Lisp files. This is like 'compile' but compiles files @@ -375,7 +359,7 @@ compile-after-backup: # There is no reason to use this rule unless you only have a single # core and CPU time is an issue. .PHONY: compile-one-process -compile-one-process: $(LOADDEFS) compile-first +compile-one-process: $(LOADDEFS) $(emacs) $(BYTE_COMPILE_FLAGS) \ --eval "(batch-byte-recompile-directory 0)" $(lisp) =20 diff --git a/lisp/loadup.el b/lisp/loadup.el index 5c16464..183944b 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -245,6 +245,31 @@ (load "progmodes/elisp-mode") (load "textmodes/text-mode") (load "textmodes/fill") + +;; Compile the byte compiler. This is done to speed up the bootstrap +;; process. They're ordered by size, so we use the slowest-compiler +;; on the smallest file and move to larger files as the compiler gets +;; faster. 'autoload' comes last because it is not used by the +;; compiler (so its compilation does not speed up subsequent +;; compilations), it's only placed here so as to speed up generation +;; of the loaddefs.el file. +;; +;; The byte compiler requires elisp-mode for parsing, and fill +;; functions for printing warnings. +(if (equal (member "bootstrap" command-line-args) '("bootstrap")) + (let (;; $HOME is not defined(!?), so (expand-file-name "~") + ;; crashes (called from `abbreviate-file-name'). + (abbreviated-home-dir "/home/dir") + ;; dir locals needs time-date(?) + (enable-dir-local-variables nil)) + (message "byte compiling the byte compiler...") + (setq debug-on-error t) + (mapc (lambda (file) + (setq file (locate-file file load-path '(".elc" ".el"))) + (or (equal (substring file -4) ".elc") + (byte-compile-file file t))) + '("macroexp" "cconv" "byte-opt" "bytecomp" "autoload")))) + (load "newcomment") =20 (load "replace") diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index f360791..b8d1d51 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -235,7 +235,7 @@ emacs-lisp-mode (append '((?\` . ?\') (?=E2=80=98 . ?=E2=80=99)) electric-pa= ir-text-pairs)) (setq-local electric-quote-string t) (setq imenu-case-fold-search nil) - (add-function :before-until (local 'eldoc-documentation-function) + (add-function :before-until (local 'eldoc-documentation-functions) #'elisp-el --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 13 14:02:32 2018 Received: (at control) by debbugs.gnu.org; 13 Apr 2018 18:02:32 +0000 Received: from localhost ([127.0.0.1]:50890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f731s-000230-5E for submit@debbugs.gnu.org; Fri, 13 Apr 2018 14:02:32 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:43272) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f731q-00022s-Vn for control@debbugs.gnu.org; Fri, 13 Apr 2018 14:02:31 -0400 Received: from 46.67.12.60.tmi.telenormobil.no ([46.67.12.60] helo=corrigan) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1f731o-0001VP-He for control@debbugs.gnu.org; Fri, 13 Apr 2018 20:02:30 +0200 Received: from larsi by corrigan with local (Exim 4.89) (envelope-from ) id 1f731i-00024V-K3 for control@debbugs.gnu.org; Fri, 13 Apr 2018 20:02:22 +0200 To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #23967 Message-Id: Date: Fri, 13 Apr 2018 20:02:22 +0200 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) close 23967 From unknown Thu Aug 14 21:53:23 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 12 May 2018 11:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator