[asdf-devel] Ordering of system :depends-on elements
Anton Vodonosov
avodonosov at yandex.ru
Tue Jul 9 19:12:18 UTC 2013
09.07.2013, 06:17, "Anton Vodonosov" <avodonosov at yandex.ru>:
> 08.07.2013, 01:34, "Zach Beane" <xach at xach.com>:
>
>> A few projects in quicklisp work something like this:
>>
>> ;;; foo.asd
>>
>> (defsystem foo ...)
>>
>> (defsystem foo-extra ...)
>>
>> ;;; bar.asd
>>
>> (defsystem bar :depends-on (:foo-extra :foo))
>>
>> With asdf 2, (asdf:load-system "bar") seems to work fine, I guess
>> because asdf 2 does the equivalent of find-system on the elements from
>> right-to-left.
>>
>> With asdf 3, it doesn't seem to work fine, I guess because asdf 3 does
>> the equivalent of find-system on the elements from left-to-right.
>>
>> Are those guesses correct?
>>
>> What's the best way to have a system definition that works equally well
>> in asdf2 and asdf3 in this kind of situation?
>
> If we surround the non-findable system with the main system like this:
>
> (defsystem bar :depends-on (:foo :foo-extra :foo))
>
> will it work?
>
> :)
>
> It's a dirty workaround (worksurround), but the level of dirtiness is the same
> as the original: have a system not findable by asdf:find-system due to
> difference between the system name and it's .asd file name; solve it
> by relying on the order ASDF loads dependencies, having a findable
> system name first.
But the best solution is separation of these ASDF systems
into different .asd files. Right now everyone seems to prefer dealing
with systems written that way - separate .asd files per ASDF system.
More information about the asdf-devel
mailing list