Shinmera / qtools

Qtools is a collection of utilities to aid development with CommonQt
https://shinmera.github.io/qtools
zlib License
210 stars 17 forks source link

DYNAMIC-EXTENT on a weird thing when in Qtools readtable #36

Open phoe opened 5 years ago

phoe commented 5 years ago

Execute the following in the REPL:

(ql:quickload :qtools)
(named-readtables:in-readtable :qtools)
(asdf:load-system :esrap :force t)

Result on SBCL:

; file: /home/phoe/.roswell/lisp/quicklisp/dists/quicklisp/software/esrap-20190107-git/src/expressions.lisp
; in: DEFUN EXPRESSION-EQUAL-P
;     (DYNAMIC-EXTENT (CL+QT:FUNCTION ESRAP::REC))
; 
; caught ERROR:
;   DYNAMIC-EXTENT on a weird thing: (CL+QT:FUNCTION REC)

Is this something that should go to ASDF maintainers?

Shinmera commented 5 years ago

Either the package or the readtable is poisoning the load operation, causing #' to be read as q+' function wrapper. I don't know if ASDF is or is not supposed prevent this.

phoe commented 5 years ago

The package is CL-USER, I do not think it's that. I guess it's the readtable that is not set to the standard readtable by ASDF. I would expect that ASDF would reset the readtable to the standard one when it loads a system; otherwise, I can set an arbitrary readtable as the standard readtable (as it is with Qtools) and then break the build for any other systems (as it is with Qtools).

Shinmera commented 5 years ago

I don't know what's going on in ASDF and I frankly don't care to find out.

phoe commented 5 years ago

https://bugs.launchpad.net/asdf/+bug/1820910