From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: Native compilation by default?: Was [Re: stats say SBCL is 78 875 % faster than natively compiled Elisp Date: Tue, 21 Feb 2023 17:35:09 +0100 Message-ID: <871qmj7z9e.fsf@dataswamp.org> References: <87bklw7ka3.fsf@dataswamp.org> <878rgyjgcc.fsf@dataswamp.org> <87o7pq21i4.fsf@dataswamp.org> <87ilfy20jf.fsf@dataswamp.org> <83pma6yahj.fsf@gnu.org> <87fsb21z1n.fsf@dataswamp.org> <83ilfyxiw6.fsf@gnu.org> <83k00btcsl.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1111"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:2VpJwvY8hxn4ONnNDq7+T9xJBwU= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Feb 22 05:59:01 2023 Return-path: Envelope-to: geh-help-gnu-emacs@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 1pUhDY-00005q-7s for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 22 Feb 2023 05:59:00 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUhCo-000065-8d; Tue, 21 Feb 2023 23:58:14 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUVbv-00048B-3k for help-gnu-emacs@gnu.org; Tue, 21 Feb 2023 11:35:23 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUVbs-0005iI-MY for help-gnu-emacs@gnu.org; Tue, 21 Feb 2023 11:35:22 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1pUVbp-0008Jx-LH for help-gnu-emacs@gnu.org; Tue, 21 Feb 2023 17:35:17 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 21 Feb 2023 23:58:13 -0500 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:142800 Archived-At: Eli Zaretskii wrote: >> Is my understanding of the documentation - that native >> compilation is an automatic side effect of byte >> compiling, wrong? > > Yes, it's wrong. Native compilation happens automatically > when you _load_ a .elc file, not when you compile it. It doesn't happen when you byte-compile but it also don't happen when you load it, or that depends what you mean by "load"ing. To `load-file' an .elc does not trigger native compilation of as we have said in this thread (and it is correct), I know this because all my files are byte-compiled but not all of them are natively compiled. My theory was that it only happens when you `require' the .elc, possibly it also requires that the file you `require' from is also natively compiled? But then, again, I don't understand how it all starts? Madhu: For you to do the test on the natively compiled code, look in your dir of cached natively compiled files, ~/.emacs.d/eln-cache/ and run the file from there with the shell command: $ emacs -Q -batch -l fib.el [8.660 s] $ emacs -Q -batch -l fib.elc [3.386 s] $ emacs -Q -batch -l fib-54a44480-bad305eb.eln [3.159 s] $ sbcl -l fib.cl [0.004 s] Now, when looking at it, I'm unsure if I made a mistake in test #2, i.e. the fib.elc file, because maybe if the natively compiled file, the .eln, was present, in fact that was run there as well? I'll investigate this further God willing but that is a side show, the straightforward way is still to just natively compile everything - since we know that is the fastest way to run Elisp code anyway - and then compare that to SBCL/CL. All is in this file: https://dataswamp.org/~incal/emacs-init/fib.el -- underground experts united https://dataswamp.org/~incal