[asdf-devel] Ordering of system :depends-on elements

Anton Vodonosov avodonosov at yandex.ru
Tue Jul 9 02:15:37 UTC 2013


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.



More information about the asdf-devel mailing list