Dear friends,
let's please focus on the technical problem and drop the nagging. We all want the same thing: an ASDF that works for everyone, including ECL, and ECL is not to be considered a mere client, but an integral part of ASDF. And we all suffer from the same breakages that waste our time. And so let's talk about solutions rather than about blame.
From Juanjo's and Robert's descriptions, it seems to me that the
TRAVERSE API could be improved to satisfy everyone.
Maybe it's a matter of splitting TRAVERSE into parts, and allowing these parts to recurse or not on dependencies depending on various flags.
I think the main issue is being able to recurse within the scope of some system or module or not: we want to be able to tell TRAVERSE "here's a predicate or description that tells how far you go", maybe recording on the side a queue of things that haven't been traversed but need to be done nonetheless.
So, traverse would take as an additional argument some specifier for the scope of the traversal (system, module, predicate, etc.), and return multiple values: the list of inside ops (fully recursed into), and the list of outside ops (not recursed into).
Would something like that help?
PS: Juanjo, if you can write a script that exercises your features that we include in our test suite, we will be able to more easily detect errors and fix them early with less aggravation.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Past is important in as much as it affects the future and as such only. — Faré