> 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.

Reply via email to