dep: Provide semantics for setting the value of a non-leaf dep.
authorMark Wooding <mdw@distorted.org.uk>
Mon, 9 Jun 2008 22:50:35 +0000 (23:50 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 9 Jun 2008 23:58:59 +0000 (00:58 +0100)
commit23bc61bdf1dd3d1bda9884eac836a603a96dd053
treebf1bc8aa822000ae73a6d27f68c036a9717ca089
parent2626af6648d844d428b3da1c12d1401e42405593
dep: Provide semantics for setting the value of a non-leaf dep.

The behaviour is that we recompute the rest of the system as usual, but
retain dependencies on the deps that the value-function examines.

We do more: it's now possible for cycles to occur in the dependency
graph, as long as a value is explicitly set somewhere in the cycle,
which effectively breaks it.  Cycles of purely computational deps are
still considered to be meaningless, and therefore forbidden.

Finally, we note that DELAY-RECOMPUTING-DEPS can be used to set
explicitly the values of a number of deps simultaneously, even if their
value functions would otherwise forbid it.
dep.lisp