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:
1. Allowing a system definer to say "don't descend into this sub- system" even when :force is t.
2. Allowing a system user to say "I want to force the recompilation of this system but not the systems on which it depends"
For #1, I'd suggest adding a slot to system that controls how force behaves. Ideas include
* read-only (to mean that the system cannot be edited or recompiled.) * ignore-force (to mean, well, ignore force).
For #2, I'd suggest using
* recompile everything
* :force t * :force :descend
* recompile only the current system
* :force :system-only
Both of these seem worthwhile to me. I'd even have to implement them tonight if people like the idea!? (he said optimistically).
P.S. I have a vague recollection about weakly dependent systems but don't remember ever really understanding them. Are they part of a solution to this problem.
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter