On 18 March 2010 16:41, Juan Jose Garcia-Ripoll juanjose.garciaripoll@googlemail.com wrote:
This is an idea that has been long floating in the back of my mind, and was brought back to life by these comments http://groups.google.com/group/comp.lang.lisp/msg/f99a69797eda1caf
The problem is that many people use *.asd files to do things like building up packages, creating operations, defining methods, etc. That makes it impossible to ship those libraries because the side effects are not recorded in the system itself. So if ECL traverses the system to build a standalone program it will know which sources are required, but those sources may for instance rely on a package that was created in the *.asd definition.
My suggestion is a gradual move towards enforcing that *.asd files become mere descriptions of the system and that side effects needed for building and loading are listed in the system itself.
What about instead investing in XCVB?
Such enforcement will necessarily introduce backward incompatibility and pain, which I think goes contrary to the goals of ASDF.
XCVB, on the other hand, is designed to pretty much do what you ask for: have system descriptions be pure information manipulated by an external process without uncontrolled side-effects.
As to systems that currently use weird ASDF extensions, you could either make XCVB's ASDF converter better, or just convert these systems by hand.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] The World owes you nothing. You owe everything to yourself.