From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Emacs rewrite in a maintainable language Date: Tue, 13 Oct 2015 17:57:00 +0300 Message-ID: <83k2qqzuir.fsf@gnu.org> References: <561A19AB.5060001@cumego.com> <87io6dl0h0.fsf@wanadoo.es> <87lhb82qxc.fsf@gmail.com> <87oag4jk74.fsf@wanadoo.es> <87k2qrki45.fsf@wanadoo.es> <83mvvnooo4.fsf@gnu.org> <83lhb7oo4e.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1444748306 19531 80.91.229.3 (13 Oct 2015 14:58:26 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 13 Oct 2015 14:58:26 +0000 (UTC) Cc: emacs-devel@gnu.org To: John Wiegley Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 13 16:58:20 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 1Zm11s-0006z8-9s for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 16:58:16 +0200 Original-Received: from localhost ([::1]:36557 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zm11r-0000nS-Nh for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 10:58:15 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zm10X-0007kH-DT for emacs-devel@gnu.org; Tue, 13 Oct 2015 10:56:54 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zm10T-0002LI-AM for emacs-devel@gnu.org; Tue, 13 Oct 2015 10:56:53 -0400 Original-Received: from mtaout25.012.net.il ([80.179.55.181]:47166) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zm10S-0002L4-DB for emacs-devel@gnu.org; Tue, 13 Oct 2015 10:56:49 -0400 Original-Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NW500I00YJW2200@mtaout25.012.net.il> for emacs-devel@gnu.org; Tue, 13 Oct 2015 17:54:18 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([84.94.185.246]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NW50099CYQHKB90@mtaout25.012.net.il>; Tue, 13 Oct 2015 17:54:18 +0300 (IDT) In-reply-to: X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 80.179.55.181 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:191463 Archived-At: > From: John Wiegley > Date: Mon, 12 Oct 2015 13:11:30 -0700 > > > On second thought, I don't think I understand the idea at all. What does it > > mean "a Lispy language, easy to learn"? Is it a Lisp dialect, or is it C > > with a set of Lisp-like macros preprocessed into C? What exactly are the C > > aspects that we are trying to save the programmer from? And which part(s) of > > the core do we expect to be able to rewrite in this "Lispy" language? > > Picture what we currently write in C, but a Lisp syntax, and all the macros we > currently use removed. So, the essence of our C, written like it was Lisp. I did picture that. That's why I'm asking. Can we please see a couple of examples, as a kind of concept demonstration, just to feel the taste of this? For example, how would you write make_frame in this language? (This would be an example of creating a Lisp object which is backed up by a large C struct that has members not visible from Lisp.) Will we have some kind of 'defstruct' in this "subset"? How will we distinguish Lisp objects from C objects? Also, please try to answer the other questions I asked above. I think they are important for us to understand what exactly is being proposed and what do we try to accomplish. > If that Lisp can get close enough to Emacs Lisp, so that knowing one means > knowing the other, we've just made it easier for anyone to write what we now > have to write in C. Sorry, I came to the conclusion that I don't really understand what this means in practice. So I'm asking for examples. If this means we will have C code written in Lisp syntax, then are you saying the syntax of C is the main difficulty for understanding the C core code? E.g., let's imagine that we rewrote the display engine this "Lispy" language -- do we really believe it will be easier to understand and maintain? Or what about regex.c -- are we going to "lispify" that? > I can imagine that complex things, like type declarations, would be done with > anti-quoted blocks, or by direct support for inclusion of header files. So we will have a mixture of C and Lisp, or C blocks within Lisp code? How will that help readability and maintainability?