Anton Vodonosov <[email protected]> writes: > 08.07.2013, 01:34, "Zach Beane" <[email protected]>: >> 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
