Zach Beane wrote:
Some system files look like this:
;;;; myproject.asd
(asdf:load-system "some-prerequisite")
(defsystem "myproject" ...)
Can you recommend a good way to detect that system "myproject" depends on system "some-prerequisite"? Are there any hooks or other features of ASDF that might make it straightforward?
Zach
I don't believe that this can actually be computable. There's no way to ask ASDF what would happen when it loads an asd file, nor really could there be. One could attempt to infer this by looking around for system-loading forms, but that would be prone to both false positives and false negatives.
If these calls to LOAD-SYSTEM are reducible to DEFSYSTEM-DEPENDS-ON, it might be better to modify the system definition to eliminate the calls to LOAD-SYSTEM, instead of working hard to infer them.
In my experience, many of these hang around because system definers don't understand that they can/must use keywords in their system definition to name symbols that have not yet been defined...