From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?B?7KGw7ISx67mI?= Newsgroups: gmane.emacs.help Subject: Re: Why is Elisp slow? Date: Tue, 7 May 2019 11:35:59 +0900 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> <87zhnz9uif.fsf@telefonica.net> Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) 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="93169"; mail-complaints-to="usenet@blaine.gmane.org" Cc: help-gnu-emacs@gnu.org To: =?utf-8?Q?=C3=93scar_Fuentes?= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue May 07 04:36:17 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 1hNpxp-000NzR-9D for geh-help-gnu-emacs@m.gmane.org; Tue, 07 May 2019 04:36:17 +0200 Original-Received: from localhost ([127.0.0.1]:37014 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNpxo-0002K3-8t for geh-help-gnu-emacs@m.gmane.org; Mon, 06 May 2019 22:36:16 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:53986) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNpxd-0002Jo-N0 for help-gnu-emacs@gnu.org; Mon, 06 May 2019 22:36:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNpxc-0000iM-Kg for help-gnu-emacs@gnu.org; Mon, 06 May 2019 22:36:05 -0400 Original-Received: from pv50p00im-zteg10021401.me.com ([17.58.6.47]:46615) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hNpxc-0000gf-CG for help-gnu-emacs@gnu.org; Mon, 06 May 2019 22:36:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com; s=04042017; t=1557196563; bh=RxkOjNTAbV2J4yehBJF9khW9MSs56TRGYyj+Gei/MaQ=; h=Content-Type:Mime-Version:Subject:From:Date:Message-Id:To; b=mV8EECFF3b1d4NEWBF5wDT9sgw/FDzDUuDi3XzVFUdIY8m3KMlXl8ocqgE3i6sqcB XauoyL0YuIQ8lw6Z1PagCY3A3XXtKMNTMczKO9jKQcZa1/ESgwHg4pTmzr3iC81bu0 H6CeWWrnGTBpO5rBlraPfsen13euz9SMkY2HLO5wY1Fjf1kHVcFHdjTmGe9Mfj2sDN boWmY14X2bueGarlFvSoEoQMz4syKKspkX8j5xKCEbf79Q/yWKdjvlVRBIS9slBA6t evM76sSCx+mBoQP38G2Ca8MIy5yp2604cOnDZpywgQ4f2/1b4OZnJrZGpKvGl/sU91 GWpIqAkReiKxQ== Original-Received: from [10.56.218.59] (unknown [128.134.203.66]) by pv50p00im-zteg10021401.me.com (Postfix) with ESMTPSA id 62B8F48042F; Tue, 7 May 2019 02:36:02 +0000 (UTC) In-Reply-To: <87zhnz9uif.fsf@telefonica.net> X-Mailer: Apple Mail (2.3445.9.1) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-05-07_01:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 mlxscore=0 mlxlogscore=905 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1812120000 definitions=main-1905070015 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 17.58.6.47 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:120244 Archived-At: > 2019. 5. 7. =EC=98=A4=EC=A0=84 5:51, =C3=93scar Fuentes = =EC=9E=91=EC=84=B1: >=20 > Stefan Monnier writes: >=20 >> I totally agree with the sentiment; we'd benefit from "out-sourcing" = the >> maintenance of the language implementation, but we can't just replace >> Elisp with something else, so we need to find another well-maintained >> Elisp implementation that's at least as good as that we have now. >>=20 >> AFAIK the options are: >> - Keep what we have >> - Move to Guile >> - Move to CLISP >> - Move to SBCL >=20 > - Pick an Elisp subset that can be compiled to efficient machine code > and has a runtime model that is amenable to C. You retain much of the > benefits of Elisp but gain fast execution and the possibility of = using > a miriad of libraries. Of course, do not replace Elisp with this, use > it just when it matters. >=20 > There are several C-with-a-Lisp-coat implementations out there. I have > one (not public) and know that this method works. Does this have a solution to interfacing the Elisp subset translated to = C and usual Elisp? It feels like there=E2=80=99s almost no gains compared to using Guile, = except that it would be marginally faster... >> 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. >=20 > Javascript's JITs seem fast because the interpreters are so slow. = Those > JITs only provide near-C code efficiency only on selected cases. > Translating Elisp to JS does not inspire much confidence about the > efficiency of the resulting machine code, not to mention the required > work to interface with current Emacs C base and external libraries. Yeah, and the slow interpreters are what Emacs has in itself.