release: ninja v1.8.2

7,976 views
Skip to first unread message

Takuto Ikuta

unread,
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

https://github.com/ninja-build/ninja/compare/717b7b4a31db6027207588c0fb89c3ead384747b...253e94c1fa511704baeb61cf69995bbf09ba435e



== 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.


Reply all
Reply to author
Forward
0 new messages