From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dave Goel Newsgroups: gmane.emacs.devel Subject: Re: Accepting and returning multiple values in 'cl Date: Thu, 12 Mar 2009 15:57:59 -0400 Message-ID: <87mybq8qew.fsf@marie.gnufans.net> References: <87prgnquvh.fsf@marie.gnufans.net> <87wsauiu8f.fsf@marie.gnufans.net> <87bps6ip3n.fsf@marie.gnufans.net> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1236888309 16322 80.91.229.12 (12 Mar 2009 20:05:09 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 12 Mar 2009 20:05:09 +0000 (UTC) Cc: Dave Goel , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Mar 12 21:06:25 2009 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 1LhrAA-0000va-2D for ged-emacs-devel@m.gmane.org; Thu, 12 Mar 2009 21:05:57 +0100 Original-Received: from localhost ([127.0.0.1]:49083 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lhr8o-0004pY-7R for ged-emacs-devel@m.gmane.org; Thu, 12 Mar 2009 16:04:30 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lhr2q-00039P-Vh for emacs-devel@gnu.org; Thu, 12 Mar 2009 15:58:21 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lhr2o-00039A-TK for emacs-devel@gnu.org; Thu, 12 Mar 2009 15:58:20 -0400 Original-Received: from [199.232.76.173] (port=59041 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lhr2o-000397-Mz for emacs-devel@gnu.org; Thu, 12 Mar 2009 15:58:18 -0400 Original-Received: from mta21.charter.net ([216.33.127.81]:43762) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Lhr2o-0003EL-Ao for emacs-devel@gnu.org; Thu, 12 Mar 2009 15:58:18 -0400 Original-Received: from imp11 ([10.20.200.11]) by mta21.charter.net (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090312195800.JSYB3344.mta21.charter.net@imp11>; Thu, 12 Mar 2009 15:58:00 -0400 Original-Received: from marie.gnufans.net ([24.197.155.76]) by imp11 with charter.net id SKy01b0041fAMNY05Ky0Li; Thu, 12 Mar 2009 15:58:00 -0400 Original-Received: from deego by marie.gnufans.net with local (Exim 3.36 #1 (Debian)) id 1Lhr2V-0000dk-00; Thu, 12 Mar 2009 15:57:59 -0400 X-Face: #5@=vrmx5t3mZaPY8(mR.n+V#:%4NW7j5A&^}@lGp2rK; CQ4%iH1v'gh/^A)w5*6c&R2(P' 4+seYDq8OK'LPI/C(C^A*w|f*t+8, 'T8b#_0~h3!A7GoVroE[cr0Fb'A0%SdU|Lk@gBV&1vA In-Reply-To: (Stefan Monnier's message of "Thu, 12 Mar 2009 15:35:48 -0400") User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux) X-detected-operating-system: by monty-python.gnu.org: Solaris 10 (1203?) 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:109591 Archived-At: > The reason why I'm not sure we should install it, is that I'm afraid >people got used to the current quirks of MRV, and the quirks of your >alternative implementations aren't obviously preferable: yes, if we >started cl.el now, I might choose your code over the current one, but >I'm not sure it's worth the potential breakage now. I do see your point. I see a very few places in emacs, but it is understandable. Actually, I discovered cl's authors's own cl-compat.el, which is already in emacs, which already seeks to do the right thing (just what my cl-multiple.el did), with the alternative names like Values, Multiple-value-*, etc. I grepped through the whole emacs, nothing uses these functions. I see problems with cl-compat though, for example: My code: (multiple-value-list (progn (values nil) (values))) nil (Multiple-value-list (progn (Values nil) (Values))) (nil) ^^ that is wrong. Its implementation is also a bit funny and convoluted. It depends on cl.el's multiple-value- implementations, which itself is hairy. Do you mind if I fix these bugs with cl-compat.el and reimplement its m-v functions? There, I also want to add a note to the user: any time they use forms that return m- values, the final form should invoke (Values ) as well. Keeping with cl-compat's usual terminology, cl-floor* and cl-truncate* should be defaliased to Floor*, and Truncate*... It seems like these changes won't affect the rest of emacs at all.