From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: un-deprecating CL Date: Mon, 17 Sep 2007 18:25:02 -0400 Message-ID: References: <864phxjj03.fsf@macs.hw.ac.uk> <87hclx834d.fsf@red-bean.com> <86ps0jiwfm.fsf@macs.hw.ac.uk> Reply-To: rms@gnu.org NNTP-Posting-Host: lo.gmane.org Content-Type: text/plain; charset=ISO-8859-15 X-Trace: sea.gmane.org 1190068169 14427 80.91.229.12 (17 Sep 2007 22:29:29 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 17 Sep 2007 22:29:29 +0000 (UTC) Cc: emacs-devel@gnu.org To: David O'Toole Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Sep 18 00:29:26 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IXP5n-00024G-Mu for ged-emacs-devel@m.gmane.org; Tue, 18 Sep 2007 00:29:23 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IXP5m-0006Sv-94 for ged-emacs-devel@m.gmane.org; Mon, 17 Sep 2007 18:29:22 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IXP27-0003Bi-Ty for emacs-devel@gnu.org; Mon, 17 Sep 2007 18:25:35 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IXP27-0003BF-20 for emacs-devel@gnu.org; Mon, 17 Sep 2007 18:25:35 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IXP26-0003Az-PZ for emacs-devel@gnu.org; Mon, 17 Sep 2007 18:25:34 -0400 Original-Received: from fencepost.gnu.org ([140.186.70.10]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IXP26-0000Ua-GZ for emacs-devel@gnu.org; Mon, 17 Sep 2007 18:25:34 -0400 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.60) (envelope-from ) id 1IXP1a-0003vn-EG; Mon, 17 Sep 2007 18:25:02 -0400 In-reply-to: (message from David O'Toole on Mon, 17 Sep 2007 00:35:28 -0400) X-Detected-Kernel: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:79142 Archived-At: > Adding `setf' really means adding `defstruct'. That might be a good > feature to add, but it is too complex because of all the structure > options. If we get rid of most of them, `defstruct' could be simple > enough to add. I don't understand---defstruct is already implemented in the CL package. Are you talking about copying that definition, removing many of the options, and then pasting it somewhere else? Yes, exactly. I would be glad to add a simple defstruct construct, but the complexity of the defstruct construct as now implemented in CL is too much. CL is a compatibility package, and it was written with a view towards supporting as much as possible of Common Lisp functionality. That is a fine goal for a compatibility package, but it is the wrong goal for designing Emacs Lisp, and I will not let it creep in merely because we would like to have some kind of defstruct. Thus, I am looking for a solution that adds a simple defstruct construct to Emacs Lisp. We could code it so that there is a stub for CL to redefine so as to implement all those structure options. Thus, programs which load CL could still use them, and we would not have much duplicated code. But they wouldn't be part of standard Emacs Lisp itself.