Expand description
Part: what a program builds, as a memo table — one node per step and
target it produces — and StepContext, what a step declares its
nodes through (StepContext::produce).
A make runs when its node is new, its arguments differ, or something it
read changed; nothing else ever runs. Each node keeps what it read
(Read); it is reused while its arguments are equal and every read
holds now. A node made again into a value equal to the last keeps its
version, so what read it is reused in turn. A node of a target that is
kept between processes is taken from what an earlier process kept, if
it was made so there, before it is made (see crate::kept).
Structs§
- Part
- What a program builds: a node per step and target it produced, the
order of the steps it last ran, and the inputs and state it ran with.
Read only through a
Reader:Part::current,Part::before,Part::after. - Step
Context - What a step is run with: the part, the runner running it, and its own
id — what everything it produces is named after. A step only declares
what it produces (
StepContext::produce); what takes work is done in the makes.
Constants§
- ACTIVE
- What the target a step’s
StepContext::activecomes to is named, before the step’s id.
Type Aliases§
- Make
- What makes a node’s value from its arguments and what it reads. A plain function, not a closure: what it makes may depend only on its arguments, which a reuse compares, and on what it reads, which is recorded. A value captured from outside would be neither, and the node would be reused after it changed: