release: ninja v1.8.2

Skip to first unread message

Takuto Ikuta

Sep 12, 2017, 8:50:09 PM9/12/17
to ninja-build

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

    • Improve error message when a depfile contains a bad path #1194

    • fix a clang-cl -Wformat warning #1205

    • browse: Bind to localhost by default #1255

    • teach -t commands to optionally print only the final command #1201

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://

 cd ninja

 git checkout v1.8.2

or grab a tarball from

Once you have the code, run `./ --bootstrap` to build and then

./ninja --version will print the version number. will have precompiled binaries for Linux (64bit), Mac OS X (10.6+, 64bit), and Windows (64bit) soon.

Reply all
Reply to author
0 new messages