[asdf-devel] Detecting non-defsystem dependencies
Zach Beane
xach at xach.com
Thu Nov 7 14:05:59 UTC 2013
Faré <fahree at gmail.com> writes:
> On Wed, Nov 6, 2013 at 2:48 PM, Zach Beane <xach at xach.com> wrote:
>> Robert Goldman <rpgoldman at sift.net> writes:
>>
>>> 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?
>>>>
>>> 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.
>>
>> I don't care about knowing in advance; I mean more instrumenting the
>> ASDF process somehow to detect what *has* happened after the fact. I've
>> already done this in a hacky way by adding methods to internal functions
>> and (ab)using *macroexpand-hook*. I'm looking for nicer, possibly even
>> supported/encouraged ways.
>>
> You could open a bug against ASDF if you feel there should be support
> for it builtin.
>
> 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"?
Zach
More information about the asdf-devel
mailing list