Faré wrote:
The user should use the same API as parse-component-form. And that's where I see that the way it filters weakly-depends-on is buggy, since it calls find-system and not resolve-dependency-spec. At this point, either it should call it and somehow catch a condition when the component is missing (but what if it's an indirect component while loading a .asd that raises the condition? This sucks — and locate-system won't suffice either for secondary systems), or you're right and we should restrict weakly-depends-on to system names and not generalized specs. In any case, ASDF is currently buggy.
Quick follow-up (sorry, lost track of this over many days).
The grammar /does/ specify that weakly-depends-on can only have system names, not general dependency specifications. I have documented the return type of SYSTEM-WEAKLY-DEPENDS-ON accordingly.
Cheers, r