Nico Weber [Tue, 16 Apr 2013 19:20:49 +0000 (12:20 -0700)]
Merge pull request #547 from nico/vim_cpo
Note that version 1.3 of the vim syntax file has been sent upstream.
Nico Weber [Tue, 16 Apr 2013 19:18:39 +0000 (12:18 -0700)]
Note that version 1.3 of the vim syntax file has been sent upstream.
Also fix an issue noticed by Bram during integration: Make sure to set "cpo"
correctly. This matches other vim syntax files and is required to make sure
that the backslash continuation works with all .vimrc files
(see `:help line-continuation`).
Evan Martin [Sat, 13 Apr 2013 19:37:16 +0000 (12:37 -0700)]
Merge pull request #541 from sgraham/fix-vs2012
try again on vs2012 build fixes
Evan Martin [Thu, 11 Apr 2013 21:05:13 +0000 (14:05 -0700)]
bootstrap: make --windows usable for cl.exe-on-wine
Evan Martin [Thu, 11 Apr 2013 20:50:36 +0000 (13:50 -0700)]
add HACKING note on cl.exe-via-wine
Evan Martin [Thu, 11 Apr 2013 19:46:34 +0000 (12:46 -0700)]
windows: always extract dependencies, even on compile failure
We always want to filter /showIncludes output.
Evan Martin [Thu, 11 Apr 2013 18:28:28 +0000 (11:28 -0700)]
fix test
I intentionally changed the semantics of the code that affected this
test, but didn't update the test. Oops.
Evan Martin [Thu, 11 Apr 2013 17:03:48 +0000 (10:03 -0700)]
windows build fix
How did this ever work?
Scott Graham [Thu, 11 Apr 2013 03:16:24 +0000 (20:16 -0700)]
try again on vs2012 build fixes
Evan Martin [Wed, 10 Apr 2013 19:51:04 +0000 (12:51 -0700)]
build ninja itself in deps mode
Hopefully will help flush out bugs.
Evan Martin [Wed, 10 Apr 2013 19:49:23 +0000 (12:49 -0700)]
always use output timestamp for deps
Using the timestamp of the .d file was wrong. It can be written
at a different time than the output, and it is immediately deleted
after parsing; only the output remains for subsequent timestamp
comparison purposes, so always use the output's timestamp. (This
is how the code worked on Windows already.)
Evan Martin [Wed, 10 Apr 2013 19:10:10 +0000 (12:10 -0700)]
include mtimes in deplog explain
Evan Martin [Wed, 10 Apr 2013 17:08:51 +0000 (10:08 -0700)]
slightly smaller subsections
Evan Martin [Wed, 10 Apr 2013 17:03:55 +0000 (10:03 -0700)]
move pool docs down under "more details"
The earlier section is a tutorial-style overview. The latter section
is for side features like phony rules and header dependencies. Pools
fit in with the latter.
Evan Martin [Wed, 10 Apr 2013 17:02:27 +0000 (10:02 -0700)]
more minor manual touchups
Evan Martin [Wed, 10 Apr 2013 16:43:25 +0000 (09:43 -0700)]
make unittest match module name
Evan Martin [Wed, 10 Apr 2013 16:43:07 +0000 (09:43 -0700)]
mention mtimes
Evan Martin [Wed, 10 Apr 2013 16:34:34 +0000 (09:34 -0700)]
monospace flags
Evan Martin [Wed, 10 Apr 2013 16:31:23 +0000 (09:31 -0700)]
more windows doc updates
Evan Martin [Tue, 9 Apr 2013 17:15:18 +0000 (10:15 -0700)]
update some windows references in the docs
Drop the timing info, it's too variable to commit to a manual.
Evan Martin [Tue, 9 Apr 2013 17:07:17 +0000 (10:07 -0700)]
bigger manual
Nico Weber [Tue, 9 Apr 2013 19:45:46 +0000 (12:45 -0700)]
Merge pull request #539 from nico/typo
fix typo in comment
Nico Weber [Tue, 9 Apr 2013 19:44:31 +0000 (12:44 -0700)]
fix typo in comment
Evan Martin [Tue, 9 Apr 2013 19:39:09 +0000 (12:39 -0700)]
Merge pull request #537 from yannicklm/master
ninja.vim: add deps as keyword
yannicklm [Tue, 9 Apr 2013 18:13:48 +0000 (20:13 +0200)]
ninja.vim: add deps as keyword
new in ninja 1.3
Evan Martin [Tue, 9 Apr 2013 18:02:53 +0000 (11:02 -0700)]
Merge pull request #535 from sgraham/fix-windows-depslog
fix windows build after depslog
Scott Graham [Tue, 9 Apr 2013 17:44:54 +0000 (10:44 -0700)]
fix test
Evan Martin [Tue, 9 Apr 2013 17:35:24 +0000 (10:35 -0700)]
Merge pull request #534 from nico/invalid_log
On invalid depslog header, restart build instead of showing an error.
Scott Graham [Tue, 9 Apr 2013 17:05:23 +0000 (10:05 -0700)]
add ifdef around console_
Scott Graham [Tue, 9 Apr 2013 17:03:46 +0000 (10:03 -0700)]
fix windows build after depslog
Nico Weber [Tue, 9 Apr 2013 16:58:54 +0000 (09:58 -0700)]
On invalid depslog header, restart build instead of showing an error.
Also add tests for invalid headers.
Evan Martin [Tue, 9 Apr 2013 16:33:35 +0000 (09:33 -0700)]
document deps
Evan Martin [Tue, 9 Apr 2013 15:57:02 +0000 (08:57 -0700)]
Merge branch 'dep-pipeless'
This merges a new mechanism for tracking "depfile" dependencies that
is faster on all platforms but dramatically so on Windows.
Evan Martin [Tue, 9 Apr 2013 04:57:45 +0000 (21:57 -0700)]
Merge pull request #532 from nico/sshhh_gtest
Make test runner less chatty.
Nico Weber [Tue, 9 Apr 2013 04:53:25 +0000 (21:53 -0700)]
Try to fix build on Linux more.
Nico Weber [Tue, 9 Apr 2013 04:48:51 +0000 (21:48 -0700)]
Try to fix build on Linux.
Evan Martin [Tue, 9 Apr 2013 04:43:49 +0000 (21:43 -0700)]
add a straightforward deps log test, fix the other one
The first test I wrote was wrong; write a simpler test that exercises
the "no failures" code paths, then fix the second test and the bugs it
exposed.
Nico Weber [Tue, 9 Apr 2013 04:41:50 +0000 (21:41 -0700)]
Make ninja_test output nicer.
Nico Weber [Tue, 9 Apr 2013 04:28:12 +0000 (21:28 -0700)]
Use LinePrinter in test runner.
Nico Weber [Tue, 9 Apr 2013 04:19:27 +0000 (21:19 -0700)]
Make LinePrinter members private, add comments.
Nico Weber [Tue, 9 Apr 2013 04:14:29 +0000 (21:14 -0700)]
move printing of new lines into LinePrinter.
Nico Weber [Tue, 9 Apr 2013 00:18:30 +0000 (17:18 -0700)]
Write the depslog version in binary instead of text.
This way, it doubles as a byte-order marker. The header is now exactly one
line in a hex editor, and it's still relatively easy to look at the version
in a text editor.
Nico Weber [Tue, 9 Apr 2013 04:11:34 +0000 (21:11 -0700)]
refactor; no intended functionality change
Nico Weber [Tue, 9 Apr 2013 03:54:28 +0000 (20:54 -0700)]
move single-line printing to new class
Nico Weber [Tue, 9 Apr 2013 04:08:19 +0000 (21:08 -0700)]
Make deps=gcc without depfile an error.
When I first played with depslog, I accidentally removed the depfile attribute
on my cc edges, which had the effect of ninja silently ignoring all depfiles.
Instead, let ninja complain about edges that have deps set to gcc and depfile
set to nothing.
This is done at edge build time, instead of at mainfest load time, because
adding this check to ParseEdge() regressed empty build time for target 'chrome'
by 30ms. The check is only useful for generator authors, regular users should
never see this.
Evan Martin [Mon, 8 Apr 2013 17:20:58 +0000 (10:20 -0700)]
add a test for the "deps out of date" case
It touched the various remaining XXXes in the code, hooray.
Nico Weber [Tue, 9 Apr 2013 01:02:05 +0000 (18:02 -0700)]
Make gtest output more silent, ninja issue #528.
This is just a proof-of-concept. The terminal printing logic should be
extracted from src/build.cc and then reused here.
Evan Martin [Fri, 5 Apr 2013 21:08:41 +0000 (14:08 -0700)]
add a test verifying build failure on bad deps
Evan Martin [Fri, 5 Apr 2013 17:27:22 +0000 (10:27 -0700)]
make it an error for now to have multiple outputs with depslog
Evan Martin [Tue, 19 Feb 2013 18:00:05 +0000 (10:00 -0800)]
only write deps log if edge is in deps log mode
Evan Martin [Sun, 17 Feb 2013 23:13:35 +0000 (15:13 -0800)]
use logged deps mtime in dirty calculation
The idea here is that it's possible for a build to complete (writing
its output) but then for Ninja to get interrupted before writing out
the updated dependency information. In that case the mtime stored in
the deps log (if any) will match the previous output, and we'll know
we need to rebuild the output just to get the deps updated.
Evan Martin [Sun, 17 Feb 2013 21:19:53 +0000 (13:19 -0800)]
don't call .front() on an empty vector
Fixes a gcc debug-mode assertion.
Evan Martin [Sun, 17 Feb 2013 20:53:40 +0000 (12:53 -0800)]
hook up depslog writing into build process
Evan Martin [Sun, 17 Feb 2013 20:09:54 +0000 (12:09 -0800)]
rename "special" to "deps"
Evan Martin [Sat, 16 Feb 2013 22:34:49 +0000 (14:34 -0800)]
missing header
Evan Martin [Tue, 15 Jan 2013 02:00:52 +0000 (18:00 -0800)]
remove depfiles files as they're parsed
Evan Martin [Wed, 9 Jan 2013 01:52:44 +0000 (17:52 -0800)]
depslog: track dead record count
Evan Martin [Tue, 8 Jan 2013 16:43:39 +0000 (08:43 -0800)]
add recompaction to depslog
Not done automatically yet, just an implementation and a test.
Evan Martin [Tue, 8 Jan 2013 16:20:56 +0000 (08:20 -0800)]
clarify depslog overview
Evan Martin [Tue, 8 Jan 2013 16:17:12 +0000 (08:17 -0800)]
make old deps format migration actually work
Evan Martin [Mon, 7 Jan 2013 19:04:24 +0000 (11:04 -0800)]
record and check depslog file version
Future-proofing against some change we may need to make later.
Evan Martin [Mon, 7 Jan 2013 18:59:27 +0000 (10:59 -0800)]
don't write out deps entries if nothing changed
Shortcuts a common case.
Evan Martin [Sun, 6 Jan 2013 23:33:46 +0000 (15:33 -0800)]
windows: drop use of msvc helper in build
Evan Martin [Sun, 6 Jan 2013 23:26:20 +0000 (15:26 -0800)]
use special=anything to trigger loading from depslog
Evan Martin [Sun, 6 Jan 2013 23:21:07 +0000 (15:21 -0800)]
windows: use CLParser to extract deps during build
Evan Martin [Sun, 6 Jan 2013 19:42:40 +0000 (11:42 -0800)]
refactor build-time deps-extraction
Evan Martin [Sun, 6 Jan 2013 19:36:17 +0000 (11:36 -0800)]
factor MSVC parsing out of CLWrapper into CLParser
Evan Martin [Sat, 5 Jan 2013 18:49:48 +0000 (10:49 -0800)]
windows: add uint16 casts in depslog
Evan Martin [Fri, 4 Jan 2013 17:39:01 +0000 (09:39 -0800)]
add "special=gcc" attribute, use to load depslog
Evan Martin [Sun, 30 Dec 2012 20:50:43 +0000 (12:50 -0800)]
track deps log load time in metrics
Evan Martin [Sun, 30 Dec 2012 20:48:44 +0000 (12:48 -0800)]
expand DepsLog test, fix two bugs it revealed
Evan Martin [Sun, 30 Dec 2012 18:15:49 +0000 (10:15 -0800)]
plumb DepsLog load through Builder
Evan Martin [Sun, 30 Dec 2012 18:11:13 +0000 (10:11 -0800)]
no error if deps log doesn't exist
Evan Martin [Sun, 30 Dec 2012 18:10:03 +0000 (10:10 -0800)]
load deps log at startup
Evan Martin [Sun, 30 Dec 2012 17:53:57 +0000 (09:53 -0800)]
factor out creation of build directory
Evan Martin [Sat, 29 Dec 2012 19:55:52 +0000 (11:55 -0800)]
use DepsLog in loading dependencies
WIP
Evan Martin [Sat, 29 Dec 2012 19:24:03 +0000 (11:24 -0800)]
factor out implicit dep loading
Evan Martin [Sat, 29 Dec 2012 18:53:59 +0000 (10:53 -0800)]
pass command results via a struct
WaitForCommand now passes all command output via a struct.
This will allow adding more output in a future change.
Evan Martin [Mon, 17 Dec 2012 17:08:15 +0000 (09:08 -0800)]
add DepsLog, a new data structure for dependency information
DepsLog is a compact serialization of dependency information.
It can be used to replace depfiles for faster loading.
Evan Martin [Mon, 8 Apr 2013 21:44:30 +0000 (14:44 -0700)]
sync version number in master with release
Update RELEASING with notes on how to not screw this up again.
Evan Martin [Mon, 8 Apr 2013 21:15:36 +0000 (14:15 -0700)]
split FakeCommandRunner out of BuildTest
Separating concerns to make a subsequent refactoring easier.
Evan Martin [Mon, 8 Apr 2013 21:05:27 +0000 (14:05 -0700)]
move test virtual time "now_" into VirtualFileSystem
It's the only piece that cares about the current time.
Evan Martin [Mon, 8 Apr 2013 21:17:27 +0000 (14:17 -0700)]
Merge pull request #527 from wang-bin/compile_fix
fix compile error about noreturn on windows
wang-bin [Sun, 7 Apr 2013 03:14:16 +0000 (11:14 +0800)]
fix compile error about noreturn on windows
Evan Martin [Sat, 6 Apr 2013 14:46:08 +0000 (07:46 -0700)]
Merge pull request #526 from RedX2501/improved_bash_completion
Improved bash completion when using tools like '-t clean'
Guilherme Bufolo [Sat, 6 Apr 2013 11:47:18 +0000 (13:47 +0200)]
Improved bash completion when using tools like '-t clean'
Evan Martin [Sun, 17 Feb 2013 23:02:31 +0000 (15:02 -0800)]
refactor some of the output mtime-handling code
Reduces duplicated explain output.
Evan Martin [Sun, 17 Feb 2013 20:59:23 +0000 (12:59 -0800)]
add noreturn attr on Fatal()
Evan Martin [Fri, 5 Apr 2013 17:07:48 +0000 (10:07 -0700)]
decided against using XXX in the manual for unknown versions
Evan Martin [Fri, 5 Apr 2013 16:27:06 +0000 (09:27 -0700)]
tag a feature with the right version number
Evan Martin [Tue, 2 Apr 2013 17:40:19 +0000 (10:40 -0700)]
Merge pull request #525 from nico/escapedollar
Dollar signs in depfiles are escaped as "$$", not "\$".
Nico Weber [Tue, 2 Apr 2013 16:39:05 +0000 (09:39 -0700)]
Dollar signs in depfiles are escaped as "$$", not "\$".
See http://llvm.org/PR15642. I checked that gcc does produce depfiles
containing "$$" for files with "$" signs in their name (and as of
r178540, so does clang). I also checked that .d files that escape dollar
signs with "\$" are not read correctly by make.
Evan Martin [Sat, 30 Mar 2013 23:36:47 +0000 (16:36 -0700)]
allow paths with '!' in depfiles
See funny paths in
https://github.com/google/libcxx/tree/master/test/iterators/stream.iterators/istreambuf.iterator/
Evan Martin [Thu, 28 Mar 2013 00:11:08 +0000 (17:11 -0700)]
Merge pull request #522 from nico/spelldebug
Add spell checking for debug flags.
Nico Weber [Wed, 27 Mar 2013 23:03:52 +0000 (16:03 -0700)]
Add spell checking for debug flags.
I just used `ninja -d stat` and it took me a bit to realize that I missed the
trailing 's'.
While here, move the message printing from printf() to Error(). This makes the
output consistent with other error outputs: The messages are now prefixed with
"ninja: error: " instead of just "ninja: " and they go to stderr instead of
stdout.
Evan Martin [Tue, 26 Mar 2013 17:40:08 +0000 (10:40 -0700)]
Merge pull request #521 from riannucci/ignore_duplicate_edges_in_shcedule_work
Fix duplicate edge Pool crash in the minimally invasive way
Robert Iannucci [Sat, 23 Mar 2013 21:35:10 +0000 (14:35 -0700)]
Add regression test
Robert Iannucci [Sat, 23 Mar 2013 21:31:05 +0000 (14:31 -0700)]
Fix debug build on linux (type strictness).
Robert Iannucci [Mon, 18 Mar 2013 17:36:23 +0000 (10:36 -0700)]
Fix Pool to use a set internally
Robert Iannucci [Mon, 18 Mar 2013 16:53:53 +0000 (09:53 -0700)]
Fix duplicate edge Pool crash in the minimally invasive way