The only positive practical difference I've seen between ASDF 1 and ASDF 2 is the automatic FASL segregation.
Which to work everywhere correctly by default requires non-trivial runtime support, configuration file support, pathname support, implementation-specific compilation support.
Oh yeah, did you notice that specifying either unix namestrings or relative pathnames in your system definitions just works, portably, on all implementations and all operating systems?
And did you notice that inter-module dependencies were propagated? (thanks to rpgoldman for the initial fix)
Did you notice that ASDF can be require'd out of the box on nine different implementations, and works on 14 plus variants, on four vastly different operating systems (though only two may really matter)?
Actually, the less you noticed about these issues, the better.
But it sometimes requires massive amount of work for users not to notice breakage that was inevitable in previous versions.
Hopefully, with ASDF 2.27 you won't notice the lack of weird failures as dependencies do not fail to be propagated anymore in the many cases that previous versions of ASDF could not conceivably cover due to deep conceptual bugs.
Also, Quicklisp is just a subset of the CL code out there; not breaking stuff in Quicklisp is good, but not breaking anything at all is good
Of course, but not always possible, when massive refactoring is due. If I break a never-exported feature that isn't used in quicklisp, and that I was never contacted about using, I feel that the failed user bears some responsibility.
Please keep an audience like me in mind when documenting feature updates.
I just send a quick summary of user-visible changes so far. I'll answer any questions about it.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Reason wins in the long run, because irrational memes fight each other, whereas rational memes add up.