summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #313 from wolfp/restat_missing_inputEvan Martin2012-07-032-7/+55
|\ | | | | Do not reset restat_mtime if an input is missing
| * Add a test for missing input files in restat ruleswolfp2012-06-271-0/+54
| |
| * Do not reset restat_mtime if an input is missing (issue #295)wolfp2012-06-271-7/+1
| |
* | Improving Edge::Dump, introducing Node::DumpMaxim Kalaev2012-06-282-6/+27
| | | | | | | | | | | | | | - Edge::Dump could crash if called while inputs_ is being extended - Node::Dump prints Node attributes, in-edge and lists of out-edges - Dump functions now accept "prefix" parameter, printed along with the object for easier orientation. For example, edge->Dump("Re-reading deps files").
* | switch build log to print hashes as hexEvan Martin2012-06-192-2/+3
| | | | | | | | | | | | Nico convinced me that it's safe to do this without revving the build log format: the old decimal values will still parse as hex (just as different numbers) and cause a superfluous rebuild.
* | add copyright headerEvan Martin2012-06-191-0/+14
| |
* | drop support of log formats < 4Evan Martin2012-06-182-23/+21
| | | | | | | | | | Log format 4 was introduced in January. There's been plenty of time to migrate.
* | use PRIu64 for printing 64-bit in, %d for printing intEvan Martin2012-06-182-2/+23
| | | | | | | | Fixes a warning.
* | make canon_perftest build, add licenseEvan Martin2012-06-181-0/+17
| |
* | no recompacting needed when log file is emptyPeter Kuemmel2012-06-181-3/+7
| |
* | Merge pull request #316 from tfarina/structEvan Martin2012-06-172-5/+6
|\ \ | | | | | | No need to write 'struct' before type name when declaraing variables in ...
| * | No need to write 'struct' before type name when declaraing variables in C++.Thiago Farina2012-05-232-5/+6
| |/ | | | | | | Signed-off-by: Thiago Farina <tfarina@chromium.org>
* | improve testScott Graham2012-06-151-8/+7
| |
* | add $in_newlineScott Graham2012-06-152-6/+28
| |
* | fix windows buildScott Graham2012-06-151-0/+1
| |
* | Add a hash collision benchmark.Nico Weber2012-06-151-0/+43
| |
* | Only store command hashes in the build log.Nico Weber2012-06-158-17/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | .build_log load time 350ms -> 17ms, filesize 197MB -> 1.6MB on Mac. On Windows, it's 500ms -> 20ms. Makes the build log a lot less useful for scripts, but there could be a tool for use cases that need log information. A prototype of such a tool is in https://github.com/nico/ninja/commit/1b243d311 The hash function is 64bit murmurhash2. Assuming that that different commands get the same hash only by chance, it's is very unlikely for two different commands to hash to the same value with a 64bit hash.
* | Merge pull request #328 from nico/canonperfEvan Martin2012-06-151-0/+38
|\ \ | | | | | | add canon_perftest
| * | add canon_perftestNico Weber2012-06-031-0/+38
| | |
* | | allow '(' and ')' in depfile pathsEvan Martin2012-06-123-7/+22
| | | | | | | | | | | | Fixes issue #327.
* | | fix a typo in a test nameEvan Martin2012-06-121-1/+1
| | |
* | | Merge pull request #311 from nico/cleanupsEvan Martin2012-06-041-1/+1
|\ \ \ | |/ / |/| | Cleanups
| * | comment fixNico Weber2012-05-131-1/+1
| |/
* | Remove code that was never executed.Nico Weber2012-06-021-9/+1
| | | | | | | | | | total_time was always -1, because it computed a pointer difference, not a time difference (should've been |*end_time - *start_time|).
* | Merge pull request #320 from nico/cleanupEvan Martin2012-06-022-4/+0
|\ \ | | | | | | Remove unused variable last_update_millis_.
| * | Remove unused variable last_update_millis_.Nico Weber2012-06-012-4/+0
| |/
* | Missing header file for "getenv".Jonathan Sternberg2012-05-311-0/+1
| |
* | Removing unused sys/termios.h header.Jonathan Sternberg2012-05-301-1/+0
| |
* | Header guards were missing from some header files.Jonathan Sternberg2012-05-304-0/+19
|/
* Merge pull request #310 from nico/landreaderEvan Martin2012-05-101-11/+64
|\ | | | | Speed up build log reading (0.5s on Win, 0.1s on Mac, 30ms on Linux)
| * Switch LineReader from fgets() to just fread().Nico Weber2012-05-101-5/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fgets() needs to search for a \n in the input, and LineReader's strstr() did the same work again. By using fread() directly, this duplicate work can be saved. (I tried using readline() / fgetln() for the same saving, but those functions are not standard, and were slower than the code in this CL.) Results from running build_log_perftest, on OS X: Before: min 369ms max 372ms avg 370.4ms After: min 243ms max 247ms avg 244.8ms On Windows: Before: min 796ms max 904ms avg 858.0ms After: min 359ms max 375ms avg 371.4ms On Linux: Before: min 161ms max 169ms avg 164.8ms Before: min 130ms max 137ms avg 132.6ms
| * Pull BuildLog line reading into its own class. No performance or behavior ↵Nico Weber2012-05-101-11/+36
| | | | | | | | change.
* | Add a BuildLog test that checks that very long command liens don't crash.Nico Weber2012-05-101-0/+28
| |
* | Add a BuildLog test that checks duplicate version headers don't crash.Nico Weber2012-05-101-0/+31
|/
* Merge pull request #307 from sgraham/nul-inputEvan Martin2012-05-091-5/+16
|\ | | | | pass subprocesses handle to nul device rather than null handle
| * pass subprocesses handle to nul device rather than null handleScott Graham2012-05-091-5/+16
| |
* | Add a BuildLog loading perftest.Nico Weber2012-05-082-1/+140
| |
* | include version numberEvan Martin2012-05-081-2/+10
| |
* | Don't write ninja log header to log on every build on Windows.Nico Weber2012-05-082-0/+35
|/
* Merge pull request #299 from tfarina/explicit-ctorsEvan Martin2012-05-074-6/+10
|\ | | | | views: Mark single-argument constructors as explicit.
| * views: Mark single-argument constructors as explicit.Thiago Farina2012-05-064-6/+10
| | | | | | | | | | | | | | | | This was reported by cpplint as: python ~/depot_tools/cpplint.py 2>&1 | grep -v "Done processing" | grep explicit Signed-off-by: Thiago Farina <tfarina@chromium.org>
* | No need to convert log_path to c-string. Two places.Thiago Farina2012-05-061-4/+3
|/ | | | Signed-off-by: Thiago Farina <tfarina@chromium.org>
* First check for string end, then dereference. (5ms more expensive, heh.)Nico Weber2012-05-041-2/+2
|
* Don't walk path components twice. Speeds up CanonicalizePath() 115ms (285ms ↵Nico Weber2012-05-041-6/+2
| | | | -> 170ms).
* Reorder a few lines, no functionality (or perf) change.Nico Weber2012-05-041-5/+4
|
* Skip single '/' characters earlier in the loop. 300ms -> 285ms.Nico Weber2012-05-041-8/+11
|
* Speed up CanonicalizePath() 6.8% (322ms -> 300ms for chrome empty build).Nico Weber2012-05-042-8/+35
|
* Merge pull request #290 from nico/metricsEvan Martin2012-05-021-0/+2
|\ | | | | Add .ninja_log load time to metrics.
| * Add .ninja_log load time to metrics.Nico Weber2012-05-011-0/+2
| | | | | | | | On my system, it takes 22% of the empty build time for chrome.
* | Merge pull request #284 from nico/fixwinbuildEvan Martin2012-05-022-1/+4
|\ \ | | | | | | Fix Windows build.