> This resolve-dependency-spec returns the actual system objects for depended > on systems, doesn't it? Hence the possible side effects. > Yes.
> I was thinking of the much simpler expedient of traversing the dependency > s-expressions and using COERCE-NAME on all the system names. That gives us > something that is canonical, but that functions when there are missing > systems (e.g., this system weakly-depends-on <that>, but <that> isn't > present), and is computed without side-effects. > > I just felt like fixing this in ASDF would be better than requiring the > caller to do it. > You could do that in the common case, I suppose, but the user would still have to call resolve-dependency-spec in the general case, since the protocol is extensible. Making it appear like the name has been resolved when it hasn't been is probably a lure that will invite people to do the wrong thing and get bitten — more efforts for negative return on investment. —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Informal "design patterns" are the crutch of inexpressive programming systems. In a programmable programming system, the only design pattern needed is: use the system to refine and extend the system.