On Fri, Feb 21, 2014 at 3:46 PM, Robert P. Goldman rpgoldman@sift.info wrote:
The latest version of ASDF contains three functions:
SYSTEM-DEFSYSTEM-DEPENDS-ON SYSTEM-DEPENDS-ON and SYSTEM-WEAKLY-DEPENDS-ON
that return information about defined systems. The intention is to support introspection about sets of systems (I believe Quicklisp does this today).
Currently, ASDF does *not* put the return values into canonical form. So, equivalent forms like
:depends-on (foo) and :depends-on ("foo")
will yield different return values.
Similarly, :version specifications will not be resolved.
This seems wrong to me. I feel that the return values should be canonicalized. So all system names should be resolved down to lower-cased strings.
Does that sound like the right approach? It would support performing inference on the systems relatively straightforwardly. I can't imagine why people would want the exact, literal slot initforms, but I could be wrong.
I fear returning the raw data might be the right thing, because resolving can have side-effects that the caller may want to control, and/or resolve to NIL, etc. What is important, however, is to specify in the documentation how the entries are to be resolved, namely with (resolve-dependency-spec component dep-spec)
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The greatest productive force is human selfishness. — Robert Heinlein, "Time Enough For Love"