[Openmcl-devel] Side effects when redefining dispatching reader macro?

Ron Garret ron at flownet.com
Fri Nov 13 01:25:27 PST 2015


On Nov 12, 2015, at 2:27 PM, Gary Byers <gb at clozure.com> wrote:

> On 11/12/2015 11:37 AM, Ron Garret wrote:
>> (MAKE-DISPATCH-MACRO-CHARACTER #\# NIL *readtable*)
> CLHS says (of MAKE-DISPATCH-MACRO-CHARACTER) that,
> 
> "Initially, every character in the dispatch table associated with the char has an associated function that signals an error of type reader-error."
> 
> In the body of your message, you seemed to expect #' to have retained its original definition.
> 
> If the term "... makes char be a dispatching-macro-character ..." is read as "does nothing if the character is already defined as a dispatching-macro, else ...",
> your expectation is reasonable. I am probably more accustomed to the behavior that that you said that you get in 1.10, but both expectations seem reasonable.
> 
> Portable code could avoid the issue by calling GET-DISPATCH-MACRO-CHARACTER and only calling MAKE-DISPATCH-MACRO-CHARACTER if the character is not already defined as a dispatching macro.  I don't know what the library that the original poster mentioned does. or what version of that library they are using.

That’s reasonable.  My point was mainly that this has nothing to do with named readtables.  It might not even be a bug at all.  One could argue that the OP should simply elide the (:macro-char #\# :dispatch) clause from his code.

rg

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20151113/954a47fc/attachment.htm>


More information about the Openmcl-devel mailing list