I think this is still true, but... we cannot be discussing ASDF 3.2.1 here. It was released almost 7 years ago, and for whatever reason Zach refuses to update. The current version is 3.3.7

Please get a more recent ASDF and try again. I believe that this behavior is still in place: Faré proposed the "syntax control" patch to fix this, but we decided we had no easy path to introducing it, because it would break other code (admittedly not of good style) that relies on the old behavior of having the readtable setting leak out of one file into another. See https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/86

Any non-backwards compatible modification to ASDF -- even to the extent of raising a deprecation warning -- has led to temper-tantrums in the CL community...

On 21 Feb 2024, at 22:14, Scott@sympoiesis.com wrote:

Hi all! I just ran into something surprising. This is with ASDF 3.2.1, packaged with Quicklisp. I am using Named-Readtables. I had '*readtable*' set to a nonstandard readtable, then did quickload of a system unrelated to the one that defines and uses that readtable. The compilation failed; after I did '(in-readtable :common-lisp)' and tried again, it succeeded.

A quick glance at the ASDF source code shows that it binds '*readtable*' to a standard readtable in some cases, such as to read a '.asd' file, but not in 'uiop/lisp-build/compile-file*', nor in 'asdf/lisp-action:perform-lisp-compilation'. Wouldn't it make sense to do that?


-- Scott