New features
- Now compatible with ninja 1.9.0 features.
dupbuild=err
is now the default.- Nanosecond resolution timestamps in
.ninja_deps
(version 4) and.ninja_log
. --verbose
is now a synonym for-v
.-j 0
is now handled by allowing unlimited jobs.
Performance
- Use
getc_unlocked
in scanner, improving parse time considerably for huge inputs such as chromium.
Bug fixes
- Paths in
default
lines weren't getting canonicalized, resulting in an error if the target was not in canonical form (for example,default $builddir/foo
, wherebuilddir = .
). - Escaped newlines weren't getting handled correctly when they appeared in between non-path tokens.
- Lookup variables in rule before parent environment, as documented in the ninja manual (ninja's actual behavior depends on whether an edge has any bindings).
Cleanups
- Rewrote
arg.h
to be simpler. - Updated
tree.c
implementation to new musl version (faster and smaller code). - Rewrote
htab.c
to be simpler and better tailored to our needs. - Simplified error handling a bit.