necessary ========= delete halfway-built output files when interrupted frosting ======== when we've been waiting for commands for more than a second with no output, print some "still waiting for xyz" text if command line for an output changed, no need to even stat the output, just mark it for rebuilding immediately. "explain" mode that shows why we're building a file "one file" mode that builds only outputs of a single file adjust to system load dynamically compute etas on builds using logged timing info how does parallelization fit in?