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: stats say SBCL is 78 875 % faster than natively compiled Elisp Date: Sat, 18 Feb 2023 20:54:11 +0100 Message-ID: <87o7pq21i4.fsf@dataswamp.org> References: <87bklw7ka3.fsf@dataswamp.org> <878rgyjgcc.fsf@dataswamp.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="27234"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:XpiT2qV/4/0blr/5r5ZPGHh0SlI= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sat Feb 18 21:21:52 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 1pTTiR-0006rk-E6 for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 18 Feb 2023 21:21:51 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pTThh-0005zn-Py; Sat, 18 Feb 2023 15:21:05 -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 1pTTHr-0008Id-AL for help-gnu-emacs@gnu.org; Sat, 18 Feb 2023 14:54: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 1pTTHp-0008RK-GP for help-gnu-emacs@gnu.org; Sat, 18 Feb 2023 14:54:23 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1pTTHm-0003rn-Tc for help-gnu-emacs@gnu.org; Sat, 18 Feb 2023 20:54:18 +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: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 18 Feb 2023 15:21:05 -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:142773 Archived-At: Jean Louis wrote: >> However, compared to CL/SBCL our beloved Elisp/Emacs is >> still just a turtle on steroids ... > > Emacs Lisp is not designed for mission critical applications > such as controlling rockets in the orbit. I don't think that's the answer - Elisp and CL should be very close compared as two languages even in the Lisp family, so the difference in speed should be in the compiling part of it, as those digits exemplify. Again, see: https://dataswamp.org/~incal/emacs-init/fib.el ;; commands: [results] ;; $ 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] ;; ;; plain -> byte: +156% ;; plain -> native: +174% ;; plain -> sbcl: +216400% ;; ;; byte -> native: +7% ;; byte -> sbcl: +84550% ;; ;; native -> sbcl: +78875% So my questions are still: - Why is our native-compile/Elisp so much slower than their SBCL/CL? - Why is our native-compile just 7% faster than our byte-compile? I is still based on the byte-model, just now adopted for native hardware? - But 7% is still a good step forward, so: (1) Is all Elisp shipped with Emacs natively compiled? [1] (2) How do I compile all my own Elisp, optimally straight from a/the Makefile or still better, implicit/automated when/from byte-compiling? [2] > Speed does not matter for purposes I need, like sales, > handling people, communicating with people. Speed always matters in computing. >> But while I got it to work, the level of integration is >> still below what we have with Elisp. So I thought, with the >> native compile step, we could maybe ... but no. Need speed? >> Use CL. > > I used it, I am not satisfied with it due to lack > of integration. I think SLIME was intended in part to bridge that gap, and to some extent I think it succeeded, actually, given the increased complexity one can argue it succeeded quite well, but as for how one perceives it after being used to Elisp - then no, it doesn't feel like that ... [1] Installed like this: https://dataswamp.org/~incal/conf/.zsh/install-emacs [2} For example: https://dataswamp.org/~incal/emacs-init/Makefile -- underground experts united https://dataswamp.org/~incal