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

Zach Beane xach at xach.com
Tue Jul 9 02:17:19 UTC 2013


Anton Vodonosov <avodonosov at yandex.ru> writes:

> 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.

Ooh, that is so delightfully dirty that even if it doesn't work, I
admire the twisted kind of mind that would come up with it. Nice!

I'll give it a try.

Zach





More information about the asdf-devel mailing list