Faré wrote:
Dear Robert,
I saw you had another question in the syntax-control.txt document, about what breaks if you try to work around a readtable conflict by somehow forcing load order. I replied in the document.
You say that you had a system that was broken by my branch — did it indeed have a readtable conflict while somehow changing the readtable e.g. in a .asd file itself?
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.
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.
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.
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.
Best, r