anchor.diff:  * Rules can provide shorter descriptions of the command being run, so
     you can print e.g. `CC foo.o` instead of a long command line while
     building.
  +
  +* Builds are always run in parallel, based by defaulton the number of
  +  CPUs your system has.  Underspecified build dependencies will result
  +  in incorrect builds.
   
   * Command output is always buffered.  This means commands running in
     parallel don't interleave their output, and when a command fails we
  
positive.code: graph are not removed. This tool takes in account the +-v+ and the
  +-n+ options (note that +-n+ implies +-v+).
  
  Environment variables
  ---------------------
  
  Ninja supports various environment variables to control its behavior.
  
  `NINJA_STATUS`:: The progress status printed before the rule being run.
  Several placeholders are available:
  * `%s`: The number of started edges.
  * `%t`: The total number of edges that must be run to complete the build.
  * `%r`: The number of currently running edges.
  * `%u`: The number of remaining edges to start.
  * `%f`: The number of finished edges.
  * `%%`: A plain `%` character.
  * The default progress status is `"[%s/%t] "` (note the trailing space
  to separate from the build rule). Another example of possible progress status
  could be `"[%u/%r/%f] "`.
  
  Ninja file reference
  --------------------
  
negative.code: non-recursive Makefiles) can take ten seconds to start building after
  changing one file.  Ninja is under a second.
  
  Philosophical overview
  ~~~~~~~~~~~~~~~~~~~~~~
  
  Where other build systems are high-level languages, Ninja aims to be
  an assembler.
  
  Build systems get slow when they need to make decisions.  When you are
  in a edit-compile cycle you want it to be as fast as possible -- you
  