From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?=C3=93scar_Fuentes?= Newsgroups: gmane.emacs.help Subject: Re: Is Elisp really that slow? Date: Tue, 14 May 2019 17:09:09 +0200 Message-ID: <877eatt6ne.fsf@telefonica.net> References: <20190502214006.4fdsinp7u5xuqvdv@Ergus> <20190503004416.xfuzzucflp6bxpuz@Ergus> <8736lm30lz.fsf@web.de> <864l61j04d.fsf@zoho.eu> <20190511073254.GB29829@tuxteam.de> <04187AB9-AD7D-492D-A890-BCB01848370C@icloud.com> <20190511075712.GD29829@tuxteam.de> <86a7fsfv1m.fsf@zoho.eu> <20190512075448.GA11650@tuxteam.de> <346107E9-590D-4A18-9152-ECFF36FC4EDC@icloud.com> <83r293bvok.fsf@gnu.org> <87ef53vihw.fsf@telefonica.net> <83mujrbsk7.fsf@gnu.org> <87a7frvfo1.fsf@telefonica.net> <83h89zbndc.fsf@gnu.org> <875zqfv7sb.fsf@telefonica.net> <871s13uxdh.fsf@telefonica.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="93379"; mail-complaints-to="usenet@blaine.gmane.org" 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 Tue May 14 17:09:35 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hQZ3f-000OCo-LR for geh-help-gnu-emacs@m.gmane.org; Tue, 14 May 2019 17:09:35 +0200 Original-Received: from localhost ([127.0.0.1]:49602 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hQZ3e-0002r8-KK for geh-help-gnu-emacs@m.gmane.org; Tue, 14 May 2019 11:09:34 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:49617) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hQZ3U-0002qw-MS for help-gnu-emacs@gnu.org; Tue, 14 May 2019 11:09:25 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hQZ3S-0008Ro-Ra for help-gnu-emacs@gnu.org; Tue, 14 May 2019 11:09:24 -0400 Original-Received: from [195.159.176.226] (port=50340 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hQZ3Q-0008Ad-Uc for help-gnu-emacs@gnu.org; Tue, 14 May 2019 11:09:22 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1hQZ3L-000Nqk-Tj for help-gnu-emacs@gnu.org; Tue, 14 May 2019 17:09:15 +0200 X-Injected-Via-Gmane: http://gmane.org/ Cancel-Lock: sha1:niy3ih50gl1be8fB4WZrw/OTY0Y= 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:120369 Archived-At: Stefan Monnier writes: > Of course, there's the question of how what this language should look > like, but I think more importantly, there's the question of how its > compiler is used: > - can any random Emacs user download your elisp-ish-c code and run it > with the same ease as if it were written in Elisp? See below. > - I.e. does it require re-starting Emacs? I hope not. > Does it require installing a C compiler or some such external tool? No. Just LLVM as a library. > Does it work on all the architectures supported by Emacs? It would work on all architectures supported by LLVM. > - can incorrect elisp-ish-c code cause your Emacs to seg-fault? For code that the user can download or write himself, this is undesirable and therefore automatic checks must be added. For code written by the Emacs developers and meant to compete with C, explicit checks make sense. One thing that cannot be left out from this C-ish Elisp is garbage collection, else the language would have a very different runtime model. This is probably the most difficult part because GC is something that you must add on top of LLVM.