[Openmcl-devel] local special on symbol-macro
Daniel Weinreb
dlw at itasoftware.com
Thu Oct 22 11:10:43 PDT 2009
Gary Byers wrote:
> On Mon, 19 Oct 2009, Tobias C. Rittweiler wrote:
>
>
>> I think the following
>>
>> (let ((x :special))
>> (declare (special x))
>> (symbol-macrolet ((x :symbol-macro))
>> (values x (locally (declare (special x)) x))))
>>
>> should return
>>
>> :SYMBOL-MACRO, :SPECIAL
>>
>> It currently returns
>>
>> :SYMBOL-MACRO, :SYMBOL-MACRO
>>
>
> Section 3.1.2.1.1 (everyone's favorite section !) uses some
> unfortunate language which seems to suggest that symbol-macro
> definitions aren't subject to shadowing - "... if there is a binding of
> the symbol as a symbol-macro ..." rather than something like "... if
> there is an unshadowed binding ..." - but the dictionary entry for
> SYMBOL-MACROLET explictly discusses the notion that bindings established
> by SYMBOL-MACROLET are indeed subject to shadowing amd are visible whenever
> lexical bindings of the symbol would be visible (e.g., not visible in cases
> like your example). That seeming contradiction leaves a little bit of
> somewhat reasonable doubt as to what the spec actually says, but I think
> that I agree with you based on a preponderance of evidence.
>
+1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20091022/96cfc4f9/attachment.htm>
More information about the Openmcl-devel
mailing list