1. 11 Sep, 2017 1 commit
  2. 05 Sep, 2017 1 commit
    • Takuto Ikuta's avatar
      Update ninja to v1.8.0. · 372e0fdb
      Takuto Ikuta authored
      New binaries for Mac, Linux32, Linux64, Windows.  Also update shell script.
      See the bug for how these were built.
      The main "new" thing is performance improvement when building chrome with goma.
      
      After confirming the the behavior of ninja 1.8.0 on buildbot, I will roll ninja 1.8.1 includes fix for non-deterministic test.
      
      TBR=dpranke@chromium.org
      Bug: 761691, 738186
      Change-Id: I108996dccfdf5d95d8815d6cece5eba46f3e8178
      Reviewed-on: https://chromium-review.googlesource.com/648372
      Commit-Queue: Takuto Ikuta <tikuta@google.com>
      Reviewed-by: 's avatarNico Weber <thakis@chromium.org>
      372e0fdb
  3. 09 Nov, 2016 1 commit
  4. 28 Apr, 2016 1 commit
  5. 27 Apr, 2016 1 commit
  6. 29 Jun, 2015 1 commit
  7. 24 Nov, 2014 1 commit
  8. 28 Jun, 2014 1 commit
  9. 27 Jun, 2014 2 commits
  10. 27 Sep, 2013 1 commit
  11. 13 Sep, 2013 1 commit
  12. 04 Jun, 2013 1 commit
  13. 20 May, 2013 1 commit
  14. 02 Jan, 2013 1 commit
  15. 14 Sep, 2012 1 commit
    • thakis@chromium.org's avatar
      Update ninja to v1.0.0 on Mac and Linux. · 79b09c47
      thakis@chromium.org authored
      On both mac and linux, I ran:
      git checkout v1.0.0
      ninja
      ./ninja ninja_test
      ./ninja_test  # all passed
      strip ninja
      
      Changes since the last push:
      * NINJA_STATUS can now print rates via the o and c format chars
      * The version switch is now --version, -V no longer works
      * -t list now works without a build.ninja
      * Old .ninja_log files now trigger a rebuild instead of an error
      * Missing .d files make the corresponding .o file dirty
      * Allow @ and = in paths in depfiles
      * Ninja's output is now lower-case ("error:" instead of "ERROR:" etc)
      * Lots of Windows features (which doesn't affect Mac and Linux)
      
      On Linux, I switched from gcc4.4.3 to clang r163126. The clang-built
      binary is 125856 bytes (compared to 129944 bytes previously), and it does
      an empty 'chrome' build about 70ms faster (0.94s instead of 1.01s).
      
      The speed difference is almost completely in faster depfile parsing:
      
      clang-built (0.943s):
      $ time ../../ninja/ninja -C out/Release chrome -d stats
      ninja: Entering directory `out/Release'
      ninja: no work to do.
      metric                  count   avg (us)        total (ms)
      .ninja parse            716     507.8           363.6
      canonicalize str        113486  0.2             27.7
      canonicalize path       1305641 0.1             184.1
      lookup node             1305641 0.2             200.9
      .ninja_log load         1       11144.0         11.1
      node stat               37828   2.6             98.0
      depfile load            9266    80.9            749.3
      
      path->node hash load 0.98 (48241 entries / 49157 buckets)
      
      real    0m1.162s
      user    0m0.980s
      sys     0m0.170s
      
      
      gcc-built (1.013s):
      $ time ninja -C out/Release chrome -d stats
      ninja: Entering directory `out/Release'
      ninja: no work to do.
      metric                  count   avg (us)        total (ms)
      .ninja parse            716     516.4           369.7
      canonicalize str        113486  0.2             27.6
      canonicalize path       1305641 0.1             181.0
      lookup node             1305641 0.2             260.0
      .ninja_log load         1       11012.0         11.0
      node stat               37828   2.6             98.2
      depfile load            9266    86.3            799.3
      
      path->node hash load 0.98 (48241 entries / 49157 buckets)
      
      real    0m1.220s
      user    0m0.970s
      sys     0m0.240s
      
      
      
      On Mac, I alsow used clang r163126. The binary size stayed at 125104 bytes,
      performance didn't change. An empty build of chrome takes 1.26s. While
      node stat is a bit slower, and there are more defiles to parse compared
      to linux, most of the time difference is in slower .ninja parsing:
      
      mac (1.263s):
      $ time ../../ninja/ninja -C out/Release/ chrome -d stats
      ninja: Entering directory `out/Release/'
      ninja: no work to do.
      metric                  count   avg (us)        total (ms)
      .ninja parse            687     823.4           565.7
      canonicalize str        115002  0.3             31.1
      canonicalize path       1120853 0.2             175.6
      lookup node             1120853 0.2             202.9
      .ninja_log load         1       54126.0         54.1
      node stat               38860   4.1             160.4
      depfile load            9649    86.1            830.8
      
      path->node hash load 0.99 (48522 entries / 49157 buckets)
      
      real    0m1.478s
      user    0m1.121s
      sys     0m0.351s
      
      TBR=scottmg
      Review URL: https://codereview.chromium.org/10918242
      
      git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@156751 0039d316-1c4b-4281-b951-d872f2087c98
      79b09c47
  16. 19 Jul, 2012 1 commit
    • thakis@chromium.org's avatar
      Update ninja to v120715 · 45298e08
      thakis@chromium.org authored
      On both mac and linux, I ran:
      
      git checkout release-120715
      ninja
      ./ninja ninja_test
      ./ninja_test  # all passed
      strip ninja
      
      Changes since the last push:
      * ninja now has a functional -V flag that prints version information
      * ninja is a lot faster. On my MBP, empty builds go from 1.8s to 1.1s,
        on my linux box from 1.4s to 0.9s
      * ninja now has a -l N flag to do parallelsim based on load average
      
      On linux, the binary grew 24 bytes, from 129920 to 129944. I used
      gcc 4.4.3 to build ninja.
      
      On mac, it grew from 4200 byte from 120904 to 125104 (likely caused by me
      using a newer clang). I used clang r159409 to build ninja.
      
      TBR=maruel@chromium.org
      
      Review URL: https://chromiumcodereview.appspot.com/10810025
      
      git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@147557 0039d316-1c4b-4281-b951-d872f2087c98
      45298e08
  17. 27 Apr, 2012 1 commit
    • thakis@chromium.org's avatar
      Update ninja to 9b8e55d · f01196a6
      thakis@chromium.org authored
      On Linux, I did a full ninja checkout and then ran:
      python bootstrap.py
      ./configure.py --with-gtest=../chrome/src/testing/gtest
      ./ninja ninja_test
      ./ninja_test # (all tests passed)
      strip ninja
      
      I timed empty builds of 'chrome' with the old and the new version,
      both took 1.1s for that. Binary size comparison:
      121632 bytes old binary
      129920 bytes new binary
      I used gcc 4.4.3 to build ninja.
      
      
      On Mac, I updated an existing checkout to the latest version and then ran:
      CXX=../chrome-git/src/third_party/llvm-build/Release+Asserts/bin/clang++ \
      ./configure.py --with-gtest=../chrome-git/src/testing/gtest
      ./ninja
      ./ninja ninja_test # (all tests passed)
      strip ninja
      
      I timed empty builds of 'chrome' with the old and the new version,
      both took 1.1s for that. Binary size comparison:
      128976 bytes old binary
      120904 bytes new binary
      I used clang r155352 to build ninja. Last time I used gcc 4.2, which
      explains the size drop.
      
      
      The major new features in this update are:
      * ninja cleans up files when interrupted mid-build
      * NINJA_STATUS environment variable to tweak the status line
      (see ninja manual)
      
      
      Also set svn:mimetype to application/octet-stream on both files.
      Review URL: https://chromiumcodereview.appspot.com/10221020/
      
      
      
      git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@134307 0039d316-1c4b-4281-b951-d872f2087c98
      f01196a6
  18. 19 Jan, 2012 1 commit
  19. 13 Jan, 2012 1 commit