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 03:18:04 +0900 Message-ID: <84F2860D-523D-4F30-BD52-D6A915416167@icloud.com> 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 (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="206098"; mail-complaints-to="usenet@blaine.gmane.org" Cc: help-gnu-emacs@gnu.org To: Stefan Monnier Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon May 06 20:18:31 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 1hNiC7-000rXi-3M for geh-help-gnu-emacs@m.gmane.org; Mon, 06 May 2019 20:18:31 +0200 Original-Received: from localhost ([127.0.0.1]:60474 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNiC6-0004nq-3d for geh-help-gnu-emacs@m.gmane.org; Mon, 06 May 2019 14:18:30 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:53424) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNiBp-0004lo-Ic for help-gnu-emacs@gnu.org; Mon, 06 May 2019 14:18:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNiBn-0007iQ-7l for help-gnu-emacs@gnu.org; Mon, 06 May 2019 14:18:12 -0400 Original-Received: from pv50p00im-hyfv10011601.me.com ([17.58.6.43]:35037) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hNiBm-0007hI-ME for help-gnu-emacs@gnu.org; Mon, 06 May 2019 14:18:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com; s=04042017; t=1557166688; bh=o00xBJqrttdrSIwc9xk866vg87p0M77tRyKf+tPYe8Y=; h=Content-Type:Mime-Version:Subject:From:Date:Message-Id:To; b=qpWCsn8EyN2LycROI/Dw6YDW4pPNnzo3Sy6uXJTkYQ5luUu5ubiYGE542utPa4Kdc wRR0ghSHJ9uhHNonQRzW/DcB929g/XuZiWIM/c30iEPFozjfc61o4vpOxjOq7lvPGw X0Ee/YFplJ1Eo4kZ2S4wOVz7ZJcACiw/kJ6WXSsW4Kt5NXyhp4cs4DyOacbxJ3KMxK X2y3mmZSYNEdqcEtsbdq3kYYFPtBJm9hvey/w5avnrz9mYt3BhbOxcTREeg6IA9SyO qwZX39HGiZwQV/fc64bEw6RiQy50hgKBB1A8akCZL/zuZFuHnTOCTKFC/rNXYBxyUT ZdUwDqKMpXGAg== Original-Received: from [192.168.0.11] (unknown [1.230.108.64]) by pv50p00im-hyfv10011601.me.com (Postfix) with ESMTPSA id E32B8380E58; Mon, 6 May 2019 18:18:07 +0000 (UTC) In-Reply-To: X-Mailer: Apple Mail (2.3445.9.1) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-05-06_10:, , 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=698 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1812120000 definitions=main-1905060153 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 17.58.6.43 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:120235 Archived-At: > 2019. 5. 7. =EC=98=A4=EC=A0=84 3:08, Stefan Monnier = =EC=9E=91=EC=84=B1: >=20 >> I=E2=80=99m curious: How likely is this to happen? >=20 > As long as noone works on it, I'd say 0% likelihood. >=20 >> 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 before=E2=80=A6) >=20 > [ 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. ] Hmm=E2=80=A6? I can=E2=80=99t understand :-( Why can=E2=80=99t Emacs can include a specific version of SBCL=E2=80=99s = source (e.g. as a git module) and compile them all together?=CC=8A=CC=88 I=E2=80=99m pretty sure SBCL=E2=80=99s platform-specific code is = self-contained. >>> 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? >=20 > No idea. >=20 >> May I ask what part of elisp makes implementing in CL hard? >=20 > 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. >=20 >>> 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 >> 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. >=20 > 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. ] Ah, I was saying libraries in general; libraries like immutable.js or = left-pad :-) >=20 > Stefan