We've tagged a new release of Ninja, version v1.8.2!
(We've also tagged v1.8.0, v1.8.1, but don't use that.)
This is a major release after v1.7.2, mainly for performance improvements, support for more path components, and several bugfixes.
== Release notes.
Behavior changes related to build edges
Detect build graph cycles as early as possible. Cycles containing single phony edges are now detected and warned about. The new flag `-w phonycycle=err` upgrades the warning to an error, while `-w phonycycle=warn` explicitly makes this a warning. Future versions of ninja will default to phonycycle=err. In a few years, we hope to make this an error unconditionally. CMake 2.8-3.0 produces ninja files that trigger this warning. #1111, #1323
Always re-run edges that exit with non-zero exit code, even if they successfully write their output #1281
Support restat when rebuilding manifest #1237
Support mtime of 0 on input files #1292
Allow more path components #1181
Windows-specific changes
replace deprecated GetVersionEx with recommended replacement #1206
Add clparser_perftest #1267
Faster clparser, speeds up full builds by up to 20% #1271
Write subprocess output to stdout in binary mode #1156
Remove path component limit from input of CanonicalizePath in windows #1314
POSIX-specific changes
Use POSIX_SPAWN_USEVFORK with glibc, makes some full builds twice as fast #1182
Close original pipe fd in subprocesses #1226
Changes to building ninja itself
Fix build with uclibc #1220
Suppress warning 4244 to bootstrap on vs2017 #1235
Add support for DragonFly BSD. #1287
Changes to scripts
Make zsh completion use explicitly specified ninja files #1280
Bugfixes and minor changes
This release brought to you by:
$ git shortlog -s --no-merges v1.7.2..v1.8.2
7 Brad King
1 Brendan McCarthy
7 Colin Cross
1 Colin D Bennett
1 Dan Willemsen
2 Daniel Weber
1 Imre Vadász
1 Mathias Stearn
11 Nico Weber
1 Nicolas Despres
2 Nikolaus Wittenstein
1 Patrick Griffis
1 Pawel Hajdan, Jr
1 Refael Ackermann
10 Takuto Ikuta
1 Tej Chajed
1 Tomasz Śniatowski
1 malc
1 tikuta
Changes from v1.7.2
== Getting this release
To build this release, clone the repository as follows:
git clone git://github.com/ninja-build/ninja.git
cd ninja
git checkout v1.8.2
or grab a tarball from https://github.com/ninja-build/ninja/releases
Once you have the code, run `./configure.py --bootstrap` to build and then
./ninja --version will print the version number.
https://github.com/ninja-build/ninja/releases will have precompiled binaries for Linux (64bit), Mac OS X (10.6+, 64bit), and Windows (64bit) soon.