From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: Optimising Elisp code Date: Fri, 05 Oct 2018 15:40:26 -0400 Message-ID: References: <638fb7dc-6fc5-4645-8793-97a00038a3a8@googlegroups.com> <86r2h44fqg.fsf@zoho.com> <86in2g4eq6.fsf@zoho.com> <86d0so48a6.fsf@zoho.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1538768360 22355 195.159.176.226 (5 Oct 2018 19:39:20 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 5 Oct 2018 19:39:20 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Oct 05 21:39:16 2018 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g8VwS-0005iz-3F for geh-help-gnu-emacs@m.gmane.org; Fri, 05 Oct 2018 21:39:16 +0200 Original-Received: from localhost ([::1]:36704 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g8VyY-0002JO-MH for geh-help-gnu-emacs@m.gmane.org; Fri, 05 Oct 2018 15:41:26 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35099) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g8Vxq-0002I7-Vt for help-gnu-emacs@gnu.org; Fri, 05 Oct 2018 15:40:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g8Vxm-0005tb-TE for help-gnu-emacs@gnu.org; Fri, 05 Oct 2018 15:40:42 -0400 Original-Received: from [195.159.176.226] (port=35498 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g8Vxk-0005su-SN for help-gnu-emacs@gnu.org; Fri, 05 Oct 2018 15:40:37 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1g8Vvb-0004r4-FK for help-gnu-emacs@gnu.org; Fri, 05 Oct 2018 21:38:23 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 21 Original-X-Complaints-To: usenet@blaine.gmane.org Cancel-Lock: sha1:9/rYX2C4p5npRmTPy+54cxv/3CA= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 195.159.176.226 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:118139 Archived-At: >>> function. What this means is that when the >>> code is compiled into machine code, instead [...] >>> function is called, the machine code for the >>> inline function is placed, duplicated ^^ Maybe, maybe not: it's up to the compiler, because you won't be able to tell the difference without looking under the hood. And for the same reason the compiler can also decide to inline when you *don't* say `inline`, as long as it doesn't affect the behavior of the program. Similarly, the compiler may decide to "outline" a chunk of code (take a part of your function, move it to a new separate function, and replace it with a call to that new function), or do all kinds of other fun stuff, such as compile your C++ to Elisp code and combine it with an Elisp interpreter. Stefan