From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "John Wiegley" Newsgroups: gmane.emacs.devel Subject: Re: Emacs rewrite in a maintainable language Date: Mon, 12 Oct 2015 11:24:08 -0700 Organization: New Artisans LLC Message-ID: References: <561A19AB.5060001@cumego.com> <87io6dl0h0.fsf@wanadoo.es> <87lhb82qxc.fsf@gmail.com> <87oag4jk74.fsf@wanadoo.es> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1444675679 6436 80.91.229.3 (12 Oct 2015 18:47:59 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 12 Oct 2015 18:47:59 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 12 20:47:54 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Zli8U-0006Kw-TW for ged-emacs-devel@m.gmane.org; Mon, 12 Oct 2015 20:47:51 +0200 Original-Received: from localhost ([::1]:58067 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zli8P-0004sp-F7 for ged-emacs-devel@m.gmane.org; Mon, 12 Oct 2015 14:47:45 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46545) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zlhlh-0004S4-Mh for emacs-devel@gnu.org; Mon, 12 Oct 2015 14:24:18 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zlhle-0003ds-Gt for emacs-devel@gnu.org; Mon, 12 Oct 2015 14:24:17 -0400 Original-Received: from mail-pa0-x22b.google.com ([2607:f8b0:400e:c03::22b]:36724) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zlhle-0003dm-AG for emacs-devel@gnu.org; Mon, 12 Oct 2015 14:24:14 -0400 Original-Received: by pacex6 with SMTP id ex6so6258700pac.3 for ; Mon, 12 Oct 2015 11:24:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:subject:in-reply-to:date:organization:message-id :references:user-agent:mail-followup-to:mime-version:content-type :content-transfer-encoding; bh=vJ81O0ULdUHpwG357pfNM8sOazcLkaEEqTR83E4Px/8=; b=b9I4TbRNpb1xdYcU+dLmCoe66BVdUzC6TS2bKo4tKCYVKPHh4kDCZKeJd/LJekLxie TSpgfqpDYzHE4dYCETP+bWBpdxs1rEFixhz+bPAqyx2Tad84QlIelvBswpvItB/Qm5oU iCZhtmoG0aX4Gsg8GUTlCkzK8acJbfDltAvPZwyTXhMkbcBf3t1amt+U29NFx+IPSH8k GSexAbYmr8c4bgCqwJdreaQzd7RYI4hEVGbIhyRON/HY1mxqmUwSr4ctBlrd2LCR9PC7 abOpH29zUvAWIQgH2ywN/0w86jTED9WwyOYbG/Qmwfn34EMcx/XXA9qbcN15+flkIwWN azcw== X-Received: by 10.66.227.230 with SMTP id sd6mr35424166pac.60.1444674253187; Mon, 12 Oct 2015 11:24:13 -0700 (PDT) Original-Received: from Hermes.local (76-234-68-79.lightspeed.frokca.sbcglobal.net. [76.234.68.79]) by smtp.gmail.com with ESMTPSA id pc8sm19632862pbc.27.2015.10.12.11.24.11 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Mon, 12 Oct 2015 11:24:11 -0700 (PDT) Original-Received: by Hermes.local (Postfix, from userid 501) id EFDDC4712712; Mon, 12 Oct 2015 11:24:10 -0700 (PDT) In-Reply-To: <87oag4jk74.fsf@wanadoo.es> (=?utf-8?Q?=22=C3=93scar?= Fuentes"'s message of "Mon, 12 Oct 2015 15:22:07 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (darwin) Mail-Followup-To: emacs-devel@gnu.org X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400e:c03::22b X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:191378 Archived-At: >>>>> =C3=93scar Fuentes writes: > Many times, while looking at the Emacs C sources, I thought "this would be > much simpler to understand and modify with C++." Furthermore, I would > volunteer to work on it. Please, not C++. I don't believe the result would be any easier to maintain overall. The difficulties would just be shifted. Further, our candidate contributor pool would shrink. One of my open source projects, Ledger, is in C++. Despite having many acti= ve users, the number of pull requests I've received for the C++ code can be counted on both hands. Meanwhile, pull requests for ledger-mode continue to come in, and I was able to find a full maintainer for that part of the code. The thought of an Elisp->C compiler that could produce well-performing code= is very interesting. I starting working on an LLVM JIT for Emacs bytecode at o= ne point -- got as far as hello world -- and it was not terribly difficult. The main reason I stopped is that it didn't help performance enough. The slowne= ss imposed by constantly looking up symbol names at global scope, due to dynam= ic binding, dominated the profiling results. A subset of Elisp that doesn't have dynamic binding might well produce code that could be of use to us, and wouldn't need any of the macros we currently use to communicate between the two languages. John