martine/ninja — pull request #190 by jsternberg (2012-01-05 04:36:07+00:00)
Title: Deletion of abandoned target outputs

If a target is removed from the build file but still exists in the build log,
it will be removed when building.

This is similar to what tup does as described in http://gittup.org/tup/build_system_rules_and_algorithms.pdf.

It's mentioned around page 17 why this is a failing of "alpha build systems".

Since the build log provides a form of persistence, it's possible to find the stray targets based on which entries exist in the build log, but haven't been added to the state.