From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: master 289000e: Merge branch 'feature/native-comp' into trunk Date: Mon, 26 Apr 2021 14:40:11 +0300 Message-ID: <83v989jmuc.fsf@gnu.org> References: <20210425182503.25223.81072@vcs0.savannah.gnu.org> <20210425182508.6CC7C2094D@vcs0.savannah.gnu.org> <831rayktot.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24746"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org, akrl@sdf.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Apr 26 13:42:57 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 1lazdh-00063L-0h for ged-emacs-devel@m.gmane-mx.org; Mon, 26 Apr 2021 13:42:57 +0200 Original-Received: from localhost ([::1]:47262 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lazdg-00069e-2K for ged-emacs-devel@m.gmane-mx.org; Mon, 26 Apr 2021 07:42:56 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38464) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lazbP-0005fS-UG for emacs-devel@gnu.org; Mon, 26 Apr 2021 07:40:36 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:53467) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lazbL-0002L6-6i; Mon, 26 Apr 2021 07:40:32 -0400 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2142 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1lazbK-0000rU-Fc; Mon, 26 Apr 2021 07:40:31 -0400 In-Reply-To: (message from Alan Mackenzie on Sun, 25 Apr 2021 21:55:29 +0000) 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:268453 Archived-At: > Date: Sun, 25 Apr 2021 21:55:29 +0000 > Cc: akrl@sdf.org, emacs-devel@gnu.org > From: Alan Mackenzie > > > > What else do I need to know, successfully to build and run the > > > native compilation feature? > > > Hopefully, nothing (just to build and run). > > This is sadly far from true. You need to know basic things like native > compile files are .eln. You need to know how to compile files. I > guessed that > > $ emacs -Q -batch -f batch-native-compile lisp/progmodes/cc-*.el > > would natively compile CC Mode. You originally said nothing about compiling any Lisp files, let alone measuring the performance of CC Mode as result of native-compilation. The answer I gave specifically said "just to build and run". Indeed, for your purpose, one needs to do more. > Well, it took several minutes of processing in which it did > something, but I don't know what. A find failed to find > '*cc-*.eln'. I believe they should be under your ~/.emacs.d/eln-cache/ directory. > On restarting Emacs, my favourite CC Mode benchmark was only > marginally (~4%) faster. I'm guessing that you didn't compile everything you need natively. It is quite hard to determine "by hand" which Lisp files will be needed, as CC Mode files use Lisp code from many other files, and they all need to be natively-compiled to see the full benefits. 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'm frustrated at the moment. I want to use this new feature, but don't > know how to, and can't find any documentation. "native compilation" > doesn't seem to appear in either the Emacs or the Elisp manual. 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).