Richard M Kreuter wrote:
Gary King writes:
Perhaps a better solution would be to export OPERATION-FORCED and TRAVERSE, so that this could be deal with where-ever is needed -- especially in local initialization files for systems installed in read-only locations. The SBCL solution would look about the same -- it just would not reside inside asdf.lisp.
This seems like a reasonable solution.
I agree. There are probably two items here:
- Allowing a system definer to say "don't descend into this sub-
system" even when :force is t.
This sounds fishy to me. AFAIU, system definers aren't supposed to be able to make decisions about installation, at least in part because the author of a system can't really know what the user's installation requirements are. (Cf. the rationale for telling users to customize fasl location with a method on OUTPUT-FILES.)
-- Richard
Richard makes a good point here. The problem is that while ASDF says, and I think correctly, that system definers shouldn't make decisions about installation, it does not provide any hooks for installers to provide information about installation.
The upshot is that ASDF is also saying (unintentionally) that installers shouldn't make decisions about installation! ;-)
If we wish to keep this design principle, it seems that we should provide a facility for installers to annotate asdf system definitions. Presumably these annotations should be "on the side" and not in the system definition files themselves.
Best, R