[asdf-devel] standard io syntax woes

Faré fahree at gmail.com
Wed Feb 20 20:44:29 UTC 2013

Dear Common Lisp hackers,

Inspecting with Anton Vodonosov the latest batch of cl-test-grid issues
when running with asdf 2.29.x, we found an interesting case
that mirrors the previous failure of iolib 0.7.3 with 2.29.

In the hope of making the semantics of asd files more deterministic,
with an eye on eventually making .asd files a strict subset of Lisp,
I had put in 2.27 a with-standard-io-syntax around the loading of a .asd file.
However, this is specified to bind *readtable* and *print-pprint-dispatch*
to standard tables that are notionally read-only,
though this immutability is NOT enforced on most implementations,
instead there being unspecified bad consequences if you do mutate.

So, I could conceivably (copy-readtable nil) and (copy-pprint-dispatch nil)
every time, but that could be expensive on some implementations.
Or I could say "it's the programmer's responsibility to ensure a proper
table has been setup before he modifies it",
but that would be harsh and a notable backward incompatibility
(and there's no equivalent of named-readtables for pprint-dispatch).
Or I could preserve the current semantics of a global table
that everyone modifies causing "interesting" issues, by rebinding
*print-pprint-dispatch* as well as *readtable* within the w-s-i-s,
only ensuring that the other syntax variables are standard.
Or I could remove the with-standard-io-syntax altogether, and say
"yes, if you're doing any global modification, you suck and you're
going to break something for someone, but that's none of my business".

Anton leans for the latter.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
One can be so anxious to put his "best foot forward" that he doesn't even
notice that it isn't his own foot. — Harry Browne (HIFFIAUW)

More information about the asdf-devel mailing list