From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: Why is Elisp slow? Date: Mon, 06 May 2019 14:08:58 -0400 Message-ID: References: <83tvebn1we.fsf@gnu.org> <20190503125832.44ovncaxp3vyjsla@Ergus> <20190504133218.g3ysx3ksuyvlthg3@Ergus> <831BD780-F954-4E23-BF31-ED4E135C919B@icloud.com> <20190506125848.okei2qrib7m5p3vx@Ergus> <20190506161757.wg4wy3vr7emxnciv@Ergus> <443E6AB4-2478-4677-8A23-A0B04559E949@icloud.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="168614"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: help-gnu-emacs@gnu.org To: =?utf-8?B?7KGw7ISx67mI?= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon May 06 20:09:27 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 1hNi3L-000hmw-7d for geh-help-gnu-emacs@m.gmane.org; Mon, 06 May 2019 20:09:27 +0200 Original-Received: from localhost ([127.0.0.1]:60396 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNi3J-0002j3-Sz for geh-help-gnu-emacs@m.gmane.org; Mon, 06 May 2019 14:09:25 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:51119) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNi2x-0002ia-C2 for help-gnu-emacs@gnu.org; Mon, 06 May 2019 14:09:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNi2w-00014R-9A for help-gnu-emacs@gnu.org; Mon, 06 May 2019 14:09:03 -0400 Original-Received: from mail01.iro.umontreal.ca ([132.204.25.201]:39032) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hNi2w-00013w-1O for help-gnu-emacs@gnu.org; Mon, 06 May 2019 14:09:02 -0400 Original-Received: from mail01.iro.umontreal.ca (mail01.iro.umontreal.ca [127.0.0.1]) by mail01.iro.umontreal.ca (Postfix) with ESMTP id 0DB3288D0502 for ; Mon, 6 May 2019 14:09:01 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; h=content-transfer-encoding:content-type:content-type :mime-version:user-agent:in-reply-to:date:date:references :message-id:subject:subject:to:from:from; s=dkim; t=1557166140; x=1558030141; bh=SDFpIJ2F2nCPrzZ8AtRbcxEqxUixtXKkPMmz1kwZ/U8=; b= jsN9kPQSijDU7G1rliOuE5U1GHfJsx0wkXyWs0W6bo13DLo9zqLKsgFEMBqHsKQc pPQSxmejFJQBwUidHrRUpmGZfgG2lX2FBadBvPW9wyyB7p5Qev6Qx0wsMsyUHwnz Qv6Et9VJDFtYBV73IXtnem1cnOH6952UL/cDwSQKGePSWQBaq7HpM9Bt8h8RM/61 0nAu2Q92axLM/w7KqBzK+EfVOGJXj5zqojgXqIZEHZt/x94UA0YGzS0mM/rb9ph6 ulCHpRhYv8+AyEHLATkRVQDElOpxdcwC1d1S6QSZZFVMugzJKOHLTycu4VNwkxxB LMsQDcyZcCcRf7Z5bB9LlA== X-Virus-Scanned: amavisd-new at iro.umontreal.ca Original-Received: from mail01.iro.umontreal.ca ([127.0.0.1]) by mail01.iro.umontreal.ca (mail01.iro.umontreal.ca [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id liBiDatXrw5I for ; Mon, 6 May 2019 14:09:00 -0400 (EDT) Original-Received: from alfajor (modemcable157.163-203-24.mc.videotron.ca [24.203.163.157]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id EFE6588D04E4; Mon, 6 May 2019 14:08:59 -0400 (EDT) In-Reply-To: <443E6AB4-2478-4677-8A23-A0B04559E949@icloud.com> (=?utf-8?B?IuyhsOyEseu5iCIncw==?= message of "Tue, 7 May 2019 02:45:00 +0900") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 132.204.25.201 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:120234 Archived-At: > I=E2=80=99m curious: How likely is this to happen? As long as noone works on it, I'd say 0% likelihood. > I can confirm that SBCL works great on at least these platforms: > * Arch Linux(GNU userspace) on AMD64 (my friend=E2=80=99s confirmations) > * macOS(Darwin) on AMD64 (I=E2=80=99m currently using macOS) > * Windows 10 on AMD64 (my another friend=E2=80=99s confirmations) > * Raspbian(GNU userspace) on ARM (at least when using SBCL about a year b= efore=E2=80=A6) [ IIUC of the 4 cases above, at most 2 run the same version, so we'd need to make sure the same Emacs version can be compiled against all of those versions. No idea if it would impose a significant extra burden or not, but it's something to be considered. Also the fact that the latest release doesn't work on all those platforms is rather worrying. ] >> Of course, Guile has the advantage that someone has already spent a fair >> bit of time implementing support for Elisp, whereas for CLISP and SBCL >> that would be extra work (Elisp is close to a subset of CL but not >> quite). > Would that extra work outweigh than implementing Guile=E2=80=99s language > integration features? No idea. > May I ask what part of elisp makes implementing in CL hard? Haven't thought too much about it, so I don't even know if it would be hard (the elisp.lisp implementation I mentioned recently shows that large parts can be done easily enough). The obvious issue is buffer-local and terminal-local variables. >> Another approach would be to implement an Elisp-to-JS compiler and >> then use one of the heavily-optimized JIT-compilers for JS. >> Compiling Elisp to JS should be much easier than compiling to >> native code. > > If possible, this would be more than great as we would be able to use the > *big* number of JS packages in npm registry out there. Note that compiling to JS doesn't *directly* let you access random JS data-structures and functions any more than implementing Elisp in C lets you access random C functions and data-structures. [ language-interoperation, again. ] Stefan