If I load a file more than once, and it contains a call to
make-dispatch-macro-character, the following error occurs on all loads
after the first:
* (make-dispatch-macro-character #\! t ytools-readtable*)
Error in function MAKE-DISPATCH-MACRO-CHARACTER:
Dispatch character already exists
Restarts:
0: [ABORT] Return to Top-Level.
Debug (type H for help)
(MAKE-DISPATCH-MACRO-CHARACTER #\! T #<READTABLE {48050BBD}>)
Source:
; File: target:code/reader.lisp
(ERROR "Dispatch character already exists")
0]
The Hyperspec seems to imply that there are no "exceptional
situations" associated with make-dispatch-macro-character. Allegro
doesn't signal an error in this situation.
One can work around this bug by wrapping the call to
make-dispatch-macro-character inside
(cond ((not (get-macro-character #\! ...) ...)))
-- Drew McDermott