On Tue, Nov 10, 2009 at 3:04 AM, Faré fahree@gmail.com wrote:
The problem is that you'll find no one to bless your changes, as ASDF does not have a clearly defined dictator, the original author having left, our main maintainer not having the resources to become one, and a vast undefined community of users not being able to provide a clear permission wrt making incompatible changes since it's not clear what in the implementation or its documentation is binding for the future and what isn't.
Understood.
I propose you offer a patch, and convince people with lots of systems to try it. I'm volunteering to try your backwards-incompatible ASDF improvements on all the systems used at ITA. Possibly, the DWIM.hu guys will try it on all the systems they have, and so on. If no one complains (and why should they?) then your patch will be a strong candidate for inclusion. That automated test framework of yours is also a good thing to show that your changes are not harmful.
When I find time, in a week or so, I will try to produce a set of patches for the following things: - A new function that creates a sorted list of module dependencies wrapping around TRAVERSE This function should produce the same result irrespectively of what has been loaded or compiled. - Building on that, a new file, asdf-ecl.lisp that provides new operations for building standalone executables, fasls and other niceties with ECL. - A logging facility for ASDF, with a bit more cleaned up interface. - A test operation that builds on the logging facility and which can be completed by any test framework.
Note that my changes are *not* backwards incompatible and do *not* change TRAVERSE, but any further change that alters the TRAVERSE function and its output will break the first two add-ons.
Furthermore, in order to answer your question, what I expect of the test facility is that once every framework hooks in, one is able to write
(defsystem :my-package :components ((:file "my-package")) :in-order-to ((test-op (rt-test-op :my-package-test))))
In the mean time, one will have to resort to EQL specialized methods, though.
Juanjo