release: ninja v1.3.0

1,117 views
Skip to first unread message

Evan Martin

unread,
May 16, 2013, 7:36:54 PM5/16/13
to ninja-build
I've tagged a new release of Ninja, version v1.3.0.

== Release notes

New feature:
- A new "deps" attribute on build rules changes how Ninja manages header dependencies.  For gcc (or clang) -based builds, adding "deps = gcc" to your existing rules should produce significantly faster builds.  On Windows, adding "deps = msvc" makes Ninja parse the /showIncludes output of cl.exe directly for a similar gain, so you'll need to remove any intermediate tool (such as the "-t msvc" mode of Ninja itself, or cmake's cmcldeps) that previously processed this output.
I recall Nico saying this roughly doubles no-op build performance on OS X; on Windows, the impact should be even larger.  However, this code is new, so there may yet be some bugs.
See the new manual section on header dependencies, and in particular the "deps" subsection:

Bug fixes:
- Running in -n (dry run mode) no longer (unintentionally) updates header dependencies.

- Ninja should now build on OpenBSD.

This release brought to you by:
    73  Evan Martin
     1  Guilherme Bufolo
     2  Matthew Dempsky
    28  Nico Weber
     2  Patrick von Reth
     1  Robert Iannucci
     6  Scott Graham
     1  wang-bin
     1  yannicklm

== 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.3.0
or grab a tarball from https://github.com/martine/ninja/tags .

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

See the home page for more about Ninja:

Nicolas Desprès

unread,
May 17, 2013, 8:46:54 AM5/17/13
to Evan Martin, ninja-build
Wouhaou! That's great. Thx!


--
You received this message because you are subscribed to the Google Groups "ninja-build" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ninja-build...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Nicolas Desprès

Evan Martin

unread,
May 20, 2013, 1:32:42 PM5/20/13
to ninja-build
This release has become v1.3.3, with some Windows-only changes.

== Release notes
- Fix a compilation error on Windows in a test.
- Minor adjustments to newline handling on Windows to make Chrome's build work.

Nico Weber

unread,
Jun 4, 2013, 12:50:33 PM6/4/13
to Evan Martin, ninja-build
We've been using ninja 1.3.3 in the Chromium project for two weeks now. It seems to work well.

We did run into two issues.

1. One is in `ninja -t msvc` and has existed in all ninja releases that had `-t msvc` support (so it's windows-only, only a problem if you use -t msvc, not a regression, and even then only a problem if you have build rules that generate .h files with uppercase characters in their filename). This was fixed by https://github.com/martine/ninja/commit/02d51b3f3d3058411a06bb08d5b773f60848fec4

2. One is related to the new "deps" feature, which doesn't work right with restat rules that generate .h files. This was fixed by https://github.com/martine/ninja/commit/d2d0429489a77f8a61f4fb082e74db11f0bdfc43

Since the main new feature in 1.3 is the deps feature, does it make sense to tag a 1.3.4 at d2d0429489a77f8a61f4fb082e74db11f0bdfc43 so that builds using restat can use deps mode? Looking through https://github.com/martine/ninja/commits/master , changes since 1.3.3 were relatively minor (error checking for '-j' flag, a configure.py flag to force pselect instead of ppoll, a change to remove PATH_MAX with code growing a buffer dynamically, an improvement to `-t browse`, a mingw build fix, debian/kfreebsd build support, and some refactoring in main).

Thanks,
Nico


Evan Martin

unread,
Jun 4, 2013, 2:54:01 PM6/4/13
to Nico Weber, ninja-build
I've tagged v1.3.4 as Nico suggested.  See his mail for the change summary.  :)

Thiago Farina

unread,
Jul 1, 2013, 12:32:23 AM7/1/13
to Evan Martin, Nico Weber, ninja-build
On Tue, Jun 4, 2013 at 3:54 PM, Evan Martin <mar...@danga.com> wrote:
> I've tagged v1.3.4 as Nico suggested. See his mail for the change summary.
> :)
>
Evan, do we need to update src/version.cc:kNinjaVersion? It still
reads 1.3.0.git

--
Thiago
Reply all
Reply to author
Forward
0 new messages