From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel Subject: Re: pending branch: lexical-literals Date: Fri, 06 May 2011 19:39:34 +0200 Message-ID: References: <871v0cja5p.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1304703594 14896 80.91.229.12 (6 May 2011 17:39:54 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 6 May 2011 17:39:54 +0000 (UTC) Cc: guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri May 06 19:39:48 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QIP0F-0003Ru-Oc for guile-devel@m.gmane.org; Fri, 06 May 2011 19:39:47 +0200 Original-Received: from localhost ([::1]:33783 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QIP0E-0005Mz-W5 for guile-devel@m.gmane.org; Fri, 06 May 2011 13:39:47 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:42297) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QIP0C-0005Mt-9N for guile-devel@gnu.org; Fri, 06 May 2011 13:39:45 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QIP0A-00054i-P5 for guile-devel@gnu.org; Fri, 06 May 2011 13:39:44 -0400 Original-Received: from a-pb-sasl-sd.pobox.com ([64.74.157.62]:36455 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QIP0A-00054c-Ml; Fri, 06 May 2011 13:39:42 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id F0BDD444A; Fri, 6 May 2011 13:41:44 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=l/ACef2Zaa2B Erj7Jb9PnVb8Q7Q=; b=r8Bwyb+imVhx/5gK5uwaHlP9mJoGCLByPe47ssEjXx+k n9JENmAe3mWl0mRIBJXAOLHBGobCn2Ttk1WvYRIYyjnJmJNlT+To5cFvdpTuz1ov DEFfb3/RwluWNkUGY/aT1Fs/HYFl8hAYcle0ONz1XDgbg1FaRJPVBU+j08aUIPA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=sasl; b=ZiP1sa GYvi6wFl0qlI8Uc6+Nw6HEr9ycmCU+zeZL9p/cJErAKhQ1AaU5ZWB0Rxvez4TtcP u9y9DGMVOKghwvoc5d1+c6aU60PF/FtibQxy1My6ZTHIIFh+VR2kvMEwZ07/TnMB LDz8bbITVALZoRMqa254ZkZQ8g1wn0T8yFzXQ= Original-Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id DCCA34449; Fri, 6 May 2011 13:41:43 -0400 (EDT) Original-Received: from unquote.localdomain (unknown [95.21.57.144]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 22ACE4448; Fri, 6 May 2011 13:41:41 -0400 (EDT) In-Reply-To: <871v0cja5p.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Fri, 06 May 2011 14:17:22 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) X-Pobox-Relay-ID: 1B8ADF4A-7808-11E0-9A9E-90BEB0B5FC3A-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-Received-From: 64.74.157.62 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:12446 Archived-At: On Fri 06 May 2011 14:17, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Sorry for the late reply. No prob; thanks for thinking through it! > So, with this change, no top-level binding of =E2=80=98else=E2=80=99 is /= required/, but > /when/ there is one, it prevails over the literal, correct? Sorta? This language is imprecise. The real language is in R6RS:=20 The free-identifier=3D? procedure returns #t if and only if the two identifiers would resolve to the same binding if both were to appear in the output of a transformer outside of any bindings inserted by the transformer. (If neither of two like-named identifiers resolves to a binding, i.e., both are unbound, they are considered to resolve to the same binding.) Nothing changes in the case that `else' is unbound always. The change is if it is bound when the macro is defined, but not when it is used, or vice versa; or, also, if it is bound at both places, but to different lexical or toplevel variables. In these cases the lexical-literals branch causes the literals not to match. OTOH currently a keyword imported under a different name will not match itself; this branch allows renaming keywords. > But then I don=E2=80=99t understand how the story that you could import/r= ename > =E2=80=98else=E2=80=99 fits into this. I guess basically the summary is "compare literals by identity, not by name". Andy --=20 http://wingolog.org/