![](https://secure.gravatar.com/avatar/65a3ad873dcbf1f1067974c28e2224ef.jpg?s=120&d=mm&r=g)
This is a bug report. I'm using puri as an example, but it's not a puri bug. With the latest version of asdf (3.3.0) puri no longer compiles. The following compiler error is thrown: SET-DISPATCH-MACRO-CHARACTER would modify the standard readtable. [Condition of type ASDF/FIND-SYSTEM:LOAD-SYSTEM-DEFINITION-ERROR] In: 0: (SET-DISPATCH-MACRO-CHARACTER #\# #\u #<FUNCTION PURI::SHARP-U> #<READTABLE {100002D6C3}>) The code: (defun sharp-u (stream chr arg) (declare (ignore chr arg)) (let ((arg (read stream nil nil t))) (if *read-suppress* nil (if* (stringp arg) then (parse-uri arg) else (internal-reader-error stream "#u takes a string or list argument: ~s" arg))))) (set-dispatch-macro-character #\# #\u #'puri::sharp-u) What puri is doing re: SET-DISPATCH-MACRO-CHARACTER is totally by the book. Why is this suddenly an error? Is there a workaround? Backing up to the next most recent release of asdf makes the problem go away: dev-lisp/asdf-3.2.1-r1:0/3.2.1-r1 dev-lisp/uiop-3.2.1:0 I tried to find the asdf changelog to see if this is a documented change. But the link is broken. https://common-lisp.net/project/asdf/Changelog uiop seems to be closely tied to asdf. Not sure which package is actually at fault. -- Carlos Konstanski