From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel,gmane.emacs.w3m Subject: Re: bogus change(s) in cl-macs.el Date: Fri, 19 Nov 2004 15:04:34 -0500 Message-ID: References: <87d5yajs0c.fsf-monnier+emacs@gnu.org> Reply-To: rms@gnu.org NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1100894858 9261 80.91.229.6 (19 Nov 2004 20:07:38 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 19 Nov 2004 20:07:38 +0000 (UTC) Cc: miles@gnu.org, yamaoka@jpl.org, snogglethorpe@gmail.com, emacs-w3m@namazu.org, emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Nov 19 21:07:34 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1CVF2b-00042W-00 for ; Fri, 19 Nov 2004 21:07:33 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CVFBW-0001hO-Bt for ged-emacs-devel@m.gmane.org; Fri, 19 Nov 2004 15:16:46 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CVFAp-0001VL-Kn for emacs-devel@gnu.org; Fri, 19 Nov 2004 15:16:03 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CVFAm-0001UI-97 for emacs-devel@gnu.org; Fri, 19 Nov 2004 15:16:00 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CVFAl-0001Tz-MJ for emacs-devel@gnu.org; Fri, 19 Nov 2004 15:15:59 -0500 Original-Received: from [199.232.76.164] (helo=fencepost.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CVF1m-00070a-Sa for emacs-devel@gnu.org; Fri, 19 Nov 2004 15:06:43 -0500 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.34) id 1CVEzi-0001Bh-Ci; Fri, 19 Nov 2004 15:04:38 -0500 Original-To: Stefan Monnier In-reply-to: <87d5yajs0c.fsf-monnier+emacs@gnu.org> (message from Stefan Monnier on Fri, 19 Nov 2004 02:10:55 -0500) 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: main.gmane.org gmane.emacs.devel:30104 gmane.emacs.w3m:4557 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:30104 > (macroexpand > '(labels ((FOO nil FOO-BODY) > (BAR nil BAR-BODY)) > (FOO) > (BAR))) > (let ((--cl---cl-var---- nil) > (--cl---cl-var---- nil)) > (progn > (progn > (set '--cl---cl-var---- #'(lambda nil BAR-BODY)) > (set '--cl---cl-var---- #'(lambda nil FOO-BODY))) > (funcall (symbol-value '--cl---cl-var----)) > (funcall (symbol-value '--cl---cl-var----)))) > One of two functions FOO and BAR is disregarded as you see. Well, actually we can't see it here because you haven't used print-gensym to distinguish symbols with the same name. Using print-gensym is the right way to print such code, but there is some value in producing code that will run correctly (in most cases) even if it is printed and read without using print-gensym. Sure, if you print it that way, there's a danger that a gensym might share the name of some other symbol in the program, and cause incorrect shadowing; but that will essentially never happen in practice. It's not an improvement when something that nearly always worked now nearly always fails in an obscure way. So I think it is better to continue using something that produces different names, as gensym does. It could be defined all the time in Emacs, if that avoids some problems.