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


Reply via email to