From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: Re: Emacs rewrite in a maintainable language Date: Mon, 12 Oct 2015 15:50:19 +0200 Message-ID: <878u78b3hg.fsf@fencepost.gnu.org> References: <561A19AB.5060001@cumego.com> <87io6dl0h0.fsf@wanadoo.es> <87lhb82qxc.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1444662061 5549 80.91.229.3 (12 Oct 2015 15:01:01 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 12 Oct 2015 15:01:01 +0000 (UTC) Cc: =?iso-8859-1?Q?=D3scar?= Fuentes , emacs-devel@gnu.org To: Oleh Krehel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 12 17:00:49 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 1Zleam-0002VS-AO for ged-emacs-devel@m.gmane.org; Mon, 12 Oct 2015 17:00:48 +0200 Original-Received: from localhost ([::1]:55924 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zleal-0005Eh-D6 for ged-emacs-devel@m.gmane.org; Mon, 12 Oct 2015 11:00:47 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45710) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZleaR-0005DG-8X for emacs-devel@gnu.org; Mon, 12 Oct 2015 11:00:32 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZleaQ-0007Jp-7P for emacs-devel@gnu.org; Mon, 12 Oct 2015 11:00:27 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:40799) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZleaL-0007HW-St; Mon, 12 Oct 2015 11:00:21 -0400 Original-Received: from localhost ([127.0.0.1]:54618 helo=lola) by fencepost.gnu.org with esmtp (Exim 4.82) (envelope-from ) id 1ZleaL-00060H-C3; Mon, 12 Oct 2015 11:00:21 -0400 Original-Received: by lola (Postfix, from userid 1000) id BA204E0F01; Mon, 12 Oct 2015 15:50:19 +0200 (CEST) In-Reply-To: <87lhb82qxc.fsf@gmail.com> (Oleh Krehel's message of "Mon, 12 Oct 2015 14:48:47 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e 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:191345 Archived-At: Oleh Krehel writes: > =D3scar Fuentes writes: > >> Replacing C with a language that helps people to write readable, >> safe, efficient and maintainable code without having to study the >> existing code base for months looks quite appealing to me. That >> replacement could be gradual (no "stopping the world while The Big >> Rewrite is underway.") If that language is not so popular as C, >> that's no big problem as long as it makes things less daunting for >> those willing to work on the Emacs core. As already said, there is no >> dramatic shortage of people who learn Elisp just for hacking Emacs. > > I think slowly moving the Emacs C core to C++ is a good idea. I don't, and the reasons are similar to why Linux on C++ crashed and burned. The theory is very nice, but C++ is not a stable basis. Every 5 years it gets completely redefined, and the Elisp semantics don't magically move with that. > I've been trying to get into understanding Emacs C core, but it's just > so hard with all those macros around. I think even replacing `#define` > with `const` would be a huge improvement, worthwhile of the switch. > The second step would be to replace some macros with type checked > template functions. "template functions"? Seriously? Template mechanisms are compile-time mechanisms. They would not correspond to anything in Elisp, ever. So they'd end up in parallel construction, with a construction on the C++ side of things that the C++ standard committee changes around every 5 years. --=20 David Kastrup