Global readtable leakage into ASDF-loaded projects
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ASDF |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
Execute the following in the REPL with Quicklisp installed:
(ql:quickload :qtools)
(named-
(asdf:load-system :esrap :force t)
Result on SBCL:
; file: /home/phoe/
; in: DEFUN EXPRESSION-EQUAL-P
; (DYNAMIC-EXTENT (CL+QT:FUNCTION ESRAP::REC))
;
; caught ERROR:
; DYNAMIC-EXTENT on a weird thing: (CL+QT:FUNCTION REC)
The Qtools readtable rebinds the #\# #\' macro to support dynamic loading of Qt functions.
It seems that ASDF allows the current value of the global readtable to poison the files being loaded, instead of assuming that they need to be loaded with the standard readtable. That should not happen.
This has been known for a long time, and the branch syntax-control is addressing this issue (that I wrote in 2015 or so). But this is a significant change enough that it warrants a new minor version of ASDF (so, 3.4), but we are still undermanned to release 3.3.3.