release: ninja v1.6.0

2,976 views
Skip to first unread message

Nico Weber

unread,
Jun 29, 2015, 3:13:04 PM6/29/15
to ninja-build
I've tagged a new release of Ninja, version v1.6.0

== Release notes

* rules are now scoped to the subninja they're in. See thread
  "RFC: allow scoping rules via subninja"
  for discussion. (#921)
* dupe edges with multiple outputs now uses first edge
  instead of last (#867)
  + can make this warning optionally an error (-w dupbuild=err),
    which will hopefully become the default one day
    (this release is step 1 of #931)
* pools actually work now (#959)
* no longer print "Recompacting..." when recompacting –
  it's very fast in practice anyway
* generators can now run more often than twice if needed (#908)
* unexpected output names now cause a rebuild instead of
   a hard error (#417)

* POSIX-specific changes
  + child processes get detached from terminal (#909)
  + check for SIGINT after ppoll/pselect -> faster Ctrl-C (#893)
  + add an explicit SIGTERM signal handler (#743)

* Windows-specific changes
  + `-t graph` now produces working dot files on Windows
    when files contain backslashes
  + ninja now uses the full width in cmd.exe
    (it was one column short previously)
  + Ctrl-s (or pause key) in cmd.exe now pauses ninja
  + ninja now builds with MSVS2015
  + run more than 34 child processes if there are
    more than 32 cores. (#958)

* Ran ninja under afl-fuzz and fixed all crashes and bugs it found
  (see new afl-fuzz section in HACKING)
  + fix crashes on cyclic graphs with multiple outputs (#875, #867)
  + failing stat() now aborts build (#830, #904)
  + cyclic rule bindings no longer crash (#902)
  + dependency cycles with multiple outputs no longer get
    ninja into a stuck state (#934)

* Tweaks to configure.py
  (only relevant if you compile ninja itself)
  + configure.py now works with Python 3
  + configure.py now has a --verbose mode
  + configure.py now passes -fdiagnostics-color, so ninja's build
    is now colored with both new enough clangs (3.3+)
    and gccs (4.9+)

* Improvements to zsh completion to work better on OS X

* Documentation updates
+ the target^ syntax is now documented
+ the rule scoping change mentioned above is documented

This release brought to you by:
$ git shortlog -s --no-merges v1.5.3..v1.6.0
     1  Andrey Malets
     1  Ben Boeckel
     1  Beren Minor
     1  Brad King
     1  Colin Cross
     1  Fanael Linithien
     1  Fraser Cormack
     2  Jason Haslam
     1  Julien Tinnes
     2  Mohamed Bamakhrama
    45  Nico Weber
     2  Nicolas Despres
     1  Oliver Vinn
     1  Pierre Schweitzer
     1  Pino Toscano
     1  Rui Ueyama
     1  Ryan Gonzalez
     4  Scott Graham
     1  Spencer Judge
     1  Taiju Tsuiki
     1  Thiago Farina
     1  kwesolowski
     1  tzik

== Getting this release

To build this release, clone the repository as follows:
  git clone git://github.com/martine/ninja.git
  cd ninja
  git checkout v1.6.0

Once you have the code, run `./configure.py --bootstrap` to build and then
./ninja --version will print the version number.

binaries for Linux (64bit), Mac OS X (10.6+, 64bit), and Windows.

Reply all
Reply to author
Forward
0 new messages