Also, note that this fails to find defsystem-depends-on systems, and, what is worse, that ASDF will fail to reload them then reload the .asd files that depend on it when these systems change. See https://bugs.launchpad.net/asdf/+bug/1500578
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Faith, n: That quality which enables us to believe what we know to be untrue. On Tue, Nov 17, 2015 at 4:10 PM, Faré <fah...@gmail.com> wrote: > On Tue, Nov 17, 2015 at 3:37 PM, Robert Goldman <rpgold...@sift.net> wrote: >> This seems like it might be a good FAQ, and we had some correspondence >> about a related query earlier. >> >> (sort (mapcar #'asdf:component-name >> (mapcar #'cdr >> (remove-if-not #'(lambda (x) (and (typep >> (cdr x) 'asdf/system:system) (typep (car x) 'asdf:load-op))) >> (asdf::traverse >> (make-instance 'asdf::load-op) (asdf:find-system "hunchentoot") :force >> :all)))) >> #'string-lessp) >> >> This requires knowing a bit about the internals of ASDF and relies on an >> obsoleted function (TRAVERSE). >> >> Maybe we should wrap this up and provide it as part of an ASDF query API? >> > I believe that this should work: > ((lambda (x) (sort (mapcar (lambda (a) (asdf:coerce-name (cdr a)) x 'string<) > (asdf::required-components :hunchentoot :keep-component 'asdf:system > :other-systems t)) > > Actually, it won't work if you have direct dependencies from > non-system components to systems, but that's strongly frowned upon and > should probably be prevented by some future ASDF. > > —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org > I'd rather write programs that write programs than write programs — Dick Sites