From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: master 289000e: Merge branch 'feature/native-comp' into trunk Date: Mon, 26 Apr 2021 14:54:11 +0000 Message-ID: References: <20210425182503.25223.81072@vcs0.savannah.gnu.org> <20210425182508.6CC7C2094D@vcs0.savannah.gnu.org> <831rayktot.fsf@gnu.org> <83v989jmuc.fsf@gnu.org> <83czuhjh0r.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9069"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org, akrl@sdf.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Apr 26 16:55:14 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lb2dm-00023I-CP for ged-emacs-devel@m.gmane-mx.org; Mon, 26 Apr 2021 16:55:14 +0200 Original-Received: from localhost ([::1]:36280 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lb2dl-0006V5-FB for ged-emacs-devel@m.gmane-mx.org; Mon, 26 Apr 2021 10:55:13 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57334) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lb2cr-0005s4-1f for emacs-devel@gnu.org; Mon, 26 Apr 2021 10:54:17 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:37792 helo=mail.muc.de) by eggs.gnu.org with smtp (Exim 4.90_1) (envelope-from ) id 1lb2co-0000yj-5n for emacs-devel@gnu.org; Mon, 26 Apr 2021 10:54:16 -0400 Original-Received: (qmail 69703 invoked by uid 3782); 26 Apr 2021 14:54:11 -0000 Original-Received: from acm.muc.de (p4fe15c82.dip0.t-ipconnect.de [79.225.92.130]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Mon, 26 Apr 2021 16:54:11 +0200 Original-Received: (qmail 7650 invoked by uid 1000); 26 Apr 2021 14:54:11 -0000 Content-Disposition: inline In-Reply-To: <83czuhjh0r.fsf@gnu.org> X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.1; envelope-from=acm@muc.de; helo=mail.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:268475 Archived-At: Hello, Eli. On Mon, Apr 26, 2021 at 16:45:56 +0300, Eli Zaretskii wrote: > > Date: Mon, 26 Apr 2021 13:21:25 +0000 > > Cc: akrl@sdf.org, emacs-devel@gnu.org > > From: Alan Mackenzie > > > My suggestion is to load and run the code you want to benchmark, but > > > after the benchmark finishes, leave Emacs running until 'ps' no longer > > > shows inferior Emacs processes run in the background -- those are the > > > subprocesses Emacs starts to natively-compile every .el file your > > > program loads. Once all the native-compilation subprocesses exit, > > > exit your interactive session, and then run the benchmark again; this > > > time it should show the full speedup of native-compilation. > > I've tried that, but I don't think the native compile versions of CC Mode > > got loaded. If they had been loaded, there would have been _some_ speed > > up. What I did was, in essence, > > M-: (load-file "~/emacs/emacs.git/master/lisp/progmodes/cc-defs.elc") > If you specify the .elc extension explicitly, Emacs won't load the > .eln file instead. Use "M-x load-library RET cc-defs RET" instead. OK, I've started emacs -Q, which should surely pick up the natively compiled files. But it doesn't seem to. load-history lists only .elc files, even for pre-loaded files. I'm seeing a speed-up of, perhaps 5% - 10%, but that's surely because of all the other natively compiled files, not the CC Mode ones. Surely there's a way to check that .eln files have actually been loaded? When I do M-x locate-library cc-mode, it lists the .el file inside the emacs-28 directory. OK, I've tried again with M-x load-library RET cc-mode RET, which gave me a message stating it was loading the native compiled file. I then did the same for cc-engine and cc-fonts. I still see only the 5% - 10% speed up. (CC Mode has already been converted to lexical binding.) > (And why do you need to load the CC mode files by hand? why not let > Emacs load them as needed?) My .emacs pushes several directories onto load-path, including my "normal" CC Mode directory. This would supersede the Emacs 28 version. I typically switch between CC Mode versions several times a session, sometimes many times. That's impractical with load-path. > > > We have a lot to do in the documentation department for this feature. > > > You can wait until we are done (which could take a while), or you > > > could ask questions (but in the latter case please be more specific, > > > so that the answers are useful for you). > > Sorry, I got the impression that, with the merge, the feature was almost > > ready for full time use in Emacs. > I think it's ready. There are people who use it for several months > already. I just didn't feel it would be justified to delay the merge > because of the documentation. I must be doing something differently from these people, but I can't identify what. Native compilation just doesn't seem to be working for me, yet. How much of a speed up should it give me? Surely more than 5% - 10%? -- Alan Mackenzie (Nuremberg, Germany).