Faré fahree@gmail.com writes:
On Thu, Nov 7, 2013 at 9:05 AM, Zach Beane xach@xach.com wrote:
A "userspace" implementation of that can currently be done by having a hook :before asdf:operate, that pushes the current operation to a list associated to the (uiop:load-pathname) when said file is a .asd.
Hmm. If I have a setup like this:
;;;; a.asd
(asdf:load-system "b")
(asdf:defsystem "a" ...)
And:
;;;; b.asd
(asdf:defsystem "b" :depends-on ("c") ...)
What will be the load pathname associated with the load operation of "c" when loading "a"?
There will be no direct loading of c via (operate 'load-op "c"); rather, loading c will be part of the plan performed during the (operate 'load-op "b") evaluated in a.asd. So if you hook :before operate, you still need to look at the regular dependencies of the systems that you detect were loaded.
Thanks. I started to implement this idea, but I'm concerned because ASDF already defines an unspecialized :before method on OPERATE. Is it safe to clobber it? If not, what should I do instead?
Zach