Anton Vodonosov avodonosov@yandex.ru writes:
08.07.2013, 01:34, "Zach Beane" xach@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