[Asdf-devel] syntax-control branch

Faré fahree at gmail.com
Sat Jun 7 03:12:28 UTC 2014

On Fri, Jun 6, 2014 at 5:04 PM, Robert P. Goldman <rpgoldman at sift.info> wrote:
> My large system is broken, but I have not been able to diagnose the
> problem.  It is turning up *way* downstream.  I get a type error where a
> class is not getting the right METACLASS.
Is it possible to look at that system? With an NDA?

> I suspect it has to do with the fact that we have an ASDF extension that
> binds *READTABLE* in a PERFORM :AROUND method, but I have not been able
> to determine whether this is, in fact, the problem.
This kind of method should actually work cleanly.

> I can't imagine how anyone would guess that this error is a readtable
> fail, much less that it was caused by a modification to ASDF.  This
> problem will be even worse if the modification to ASDF is quietly given
> to the poor programmer through an update to his or her CL implementation.
> I pretty much *know* this is a readtable fail and I'm not having an easy
> time figuring out what went wrong.
> This is why I'm not enthusiastic about the syntax-control branch.  It's
> fail-obscure, and we can't count on programmers inferring that their
> code has suddenly gone pear-shaped because of a modification to ASDF,
> especially if it wasn't a modification to ASDF that they installed
> themselves.
I understand that this is important and requires investigation.

> Let's say one day I get a new SBCL or ACL, and all of a sudden I get an
> error like this.  I'm not an ASDF hacker.  I don't even know that the
> new CL version has updated the bundled ASDF. How would I begin to figure
> out what went wrong?
> Until I have an answer to that question, I cannot merge the
> syntax-control code.
On the other hand, we have made many changes that were
backward-incompatible in corner cases (e.g. the way component
pathnames are handled, introducing output-translations, making utf-8
the default, removing the crazy :if-component-dep-fails, etc.) for the
sake of sensible semantics and more robust behavior. Some of these
changes were otherwise silent indeed, and we fixed them by a
combination of proactively looking for misbehaving code, making
announcements, and documenting the new behavior.

Being able to support most code that change the readtable is worth it.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Please leave the State in the toilets where you found it.

More information about the asdf-devel mailing list