[Openmcl-devel] Side effects when redefining dispatching reader macro?
Gary Byers
gb at clozure.com
Thu Nov 12 14:27:57 PST 2015
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/
<http://www.lispworks.com/documentation/lw50/CLHS/Body/26_glo_c.htm#character>
in the dispatch table associated with the /char/ has an associated
function that signals an error of /type/
<http://www.lispworks.com/documentation/lw50/CLHS/Body/26_glo_t.htm#type> *reader-error*
<http://www.lispworks.com/documentation/lw50/CLHS/Body/e_rder_e.htm#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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20151112/6339d102/attachment.htm>
More information about the Openmcl-devel
mailing list