Global readtable leakage into ASDF-loaded projects

Bug #1820910 reported by Michał "phoe" Herda on 2019-03-19
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ASDF
Medium
Unassigned

Bug Description

Execute the following in the REPL with Quicklisp installed:

(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)

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.

Faré (fahree) wrote :

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.

Faré (fahree) wrote :

Thanks though for giving a real-life example of the issue being relevant.

Michał "phoe" Herda (phoe-krk) wrote :

Issue now tracked at https://gitlab.common-lisp.net/asdf/asdf/-/issues/31 - this one may be closed.

Faré (fahree) wrote :

Closing. See gitlab issue instead.

Changed in asdf:
importance: Undecided → Medium
milestone: none → 4.0
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.