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.
