platform/upstream/ninja.git
12 years agoconfigure.py: make CC='command with args' work
Craig Schlenter [Mon, 9 Jan 2012 15:57:20 +0000 (07:57 -0800)]
configure.py: make CC='command with args' work

12 years agodynamic metrics report width
Evan Martin [Fri, 6 Jan 2012 18:07:45 +0000 (10:07 -0800)]
dynamic metrics report width

12 years agotrack canonicalize metric
Evan Martin [Fri, 6 Jan 2012 18:05:28 +0000 (10:05 -0800)]
track canonicalize metric

12 years agomigrate tempdir code to test.cc
Evan Martin [Fri, 6 Jan 2012 19:34:10 +0000 (11:34 -0800)]
migrate tempdir code to test.cc

12 years agoadjust restat behavior around missing outputs
Evan Martin [Thu, 5 Jan 2012 23:20:07 +0000 (15:20 -0800)]
adjust restat behavior around missing outputs

If a restat rule claims to write an output but doesn't, consider it
"no change" (in the restat sense) if the output didn't exist beforehand.
I.e. if the output didn't exist before and the output doesn't exist after,
we don't need to run dependent rules.

12 years agoadd a '-d stats' flag for detailed timings
Evan Martin [Thu, 5 Jan 2012 21:35:47 +0000 (13:35 -0800)]
add a '-d stats' flag for detailed timings

1) Add a system for recording detailed timing info of functions.
2) Add a -d flag for requesting debug info at runtime, with the
   above as the first user.

12 years agowindows: don't use \e in string
Evan Martin [Thu, 5 Jan 2012 20:17:08 +0000 (12:17 -0800)]
windows: don't use \e in string

12 years agodrop some std:: prefixes
Evan Martin [Thu, 5 Jan 2012 17:25:37 +0000 (09:25 -0800)]
drop some std:: prefixes

12 years agoconvert all time_t to a new TimeStamp type
Evan Martin [Thu, 5 Jan 2012 17:24:30 +0000 (09:24 -0800)]
convert all time_t to a new TimeStamp type

12 years agofactor out the main builder call
Evan Martin [Thu, 5 Jan 2012 01:07:23 +0000 (17:07 -0800)]
factor out the main builder call

12 years agoMerge pull request #194 from evanj/newline_spaces
Evan Martin [Thu, 5 Jan 2012 15:55:56 +0000 (07:55 -0800)]
Merge pull request #194 from evanj/newline_spaces

Lexer: include leading spaces in the newline token.

12 years agoMerge pull request #193 from evanj/reparse_error
Evan Martin [Thu, 5 Jan 2012 15:54:04 +0000 (07:54 -0800)]
Merge pull request #193 from evanj/reparse_error

ninja.cc: Clear the rules/variables/state when reloading build.ninja

12 years agoMerge pull request #192 from evanj/master
Evan Martin [Thu, 5 Jan 2012 15:52:36 +0000 (07:52 -0800)]
Merge pull request #192 from evanj/master

Fix ninja_test by adding the change to lexer.cc to lexer.in.cc

12 years agoLexer: include leading spaces in the newline token.
Evan Jones [Thu, 5 Jan 2012 13:28:54 +0000 (08:28 -0500)]
Lexer: include leading spaces in the newline token.

This means that indented blank lines are skipped without causing errors.

12 years agoninja.cc: Clear the rules/variables/state when reloading build.ninja
Evan Jones [Thu, 5 Jan 2012 15:06:41 +0000 (10:06 -0500)]
ninja.cc: Clear the rules/variables/state when reloading build.ninja

This error was introduced in commit 4f6f015b. Previously, the reload goto
label created a new State. This now does the same, manually.

12 years agoLexer: Remove the trailing newline from lexer.in.cc not just lexer.cc
Evan Jones [Thu, 5 Jan 2012 13:58:41 +0000 (08:58 -0500)]
Lexer: Remove the trailing newline from lexer.in.cc not just lexer.cc

This probably should have been part of commit eeed7241

12 years agotest error message of ManifestParser::Load
Evan Martin [Thu, 5 Jan 2012 04:58:44 +0000 (20:58 -0800)]
test error message of ManifestParser::Load

Fixes the other half of issue #187.

12 years agomake Lexer::Error not emit trailing newline
Evan Martin [Thu, 5 Jan 2012 04:12:22 +0000 (20:12 -0800)]
make Lexer::Error not emit trailing newline

Now it's consistent with other errors.
Fixes part of issue #187.

12 years agomake my last change actually work
Evan Martin [Thu, 5 Jan 2012 04:10:15 +0000 (20:10 -0800)]
make my last change actually work

12 years agoremove build_log v1/v2 code
Evan Martin [Thu, 5 Jan 2012 04:03:37 +0000 (20:03 -0800)]
remove build_log v1/v2 code

12 years agowarn on accidental args to configure
Evan Martin [Thu, 5 Jan 2012 04:01:04 +0000 (20:01 -0800)]
warn on accidental args to configure

12 years agoLexer: include leading whitespace in the comment token.
Evan Jones [Thu, 5 Jan 2012 02:12:27 +0000 (21:12 -0500)]
Lexer: include leading whitespace in the comment token.

Indented comments are ignored rather than causing errors.

12 years agoMerge pull request #188 from nico/spacelog
Evan Martin [Thu, 5 Jan 2012 01:02:10 +0000 (17:02 -0800)]
Merge pull request #188 from nico/spacelog

Switch build log to use tabs as field separators, to support outputs wit...

12 years agoSwitch build log to use tabs as field separators, to support outputs with spaces.
Nico Weber [Thu, 5 Jan 2012 00:49:41 +0000 (16:49 -0800)]
Switch build log to use tabs as field separators, to support outputs with spaces.

12 years agoMerge pull request #185 from nico/vim
Evan Martin [Thu, 5 Jan 2012 00:46:42 +0000 (16:46 -0800)]
Merge pull request #185 from nico/vim

Add a ninja syntax file for vim.

12 years agoallow spellcheck to be used with a vector of strings
Evan Martin [Wed, 4 Jan 2012 23:47:29 +0000 (15:47 -0800)]
allow spellcheck to be used with a vector of strings

12 years agorefactor tool list into a table
Evan Martin [Wed, 4 Jan 2012 23:17:50 +0000 (15:17 -0800)]
refactor tool list into a table

12 years agodon't attempt to build browse.* in bootstrap mode
Evan Martin [Wed, 4 Jan 2012 23:36:53 +0000 (15:36 -0800)]
don't attempt to build browse.* in bootstrap mode

12 years agoMerge pull request #175 from nornagon/escape-in-out
Evan Martin [Wed, 4 Jan 2012 23:06:18 +0000 (15:06 -0800)]
Merge pull request #175 from nornagon/escape-in-out

When expanding $in and $out, wrap with quotes if the filename has a space.

12 years agoAdd a test for quoting spaces in expanded $in and $out.
Jeremy Apthorp [Wed, 4 Jan 2012 23:00:24 +0000 (10:00 +1100)]
Add a test for quoting spaces in expanded $in and $out.

12 years agoMerge pull request #186 from evanj/master
Evan Martin [Wed, 4 Jan 2012 22:41:03 +0000 (14:41 -0800)]
Merge pull request #186 from evanj/master

ninja_syntax.py: support passing variables as both dicts and lists.

12 years agoninja_syntax.py: Fix a bug when passing dict variables to Writer.build()
Evan Jones [Wed, 4 Jan 2012 19:58:42 +0000 (14:58 -0500)]
ninja_syntax.py: Fix a bug when passing dict variables to Writer.build()

Add a test to cover both dict and list variables.

12 years agoRevert "ninja_syntax.py: Fix a bug when passing variables to Writer.build()"
Evan Martin [Wed, 4 Jan 2012 22:33:53 +0000 (14:33 -0800)]
Revert "ninja_syntax.py: Fix a bug when passing variables to Writer.build()"

This reverts commit 95ab954.
The test was verifying the wrong behavior.  I reviewed too quickly. :(

12 years agowindows: more build fixes
Scott Graham [Wed, 4 Jan 2012 22:18:17 +0000 (14:18 -0800)]
windows: more build fixes

12 years agoMerge pull request #184 from evanj/master
Evan Martin [Wed, 4 Jan 2012 22:12:50 +0000 (14:12 -0800)]
Merge pull request #184 from evanj/master

ninja_syntax.py: Fix passing variables to Writer.build()

12 years agoAdd a ninja syntax file for vim.
Nico Weber [Wed, 4 Jan 2012 21:52:11 +0000 (13:52 -0800)]
Add a ninja syntax file for vim.

12 years agoninja_syntax.py: Fix a bug when passing variables to Writer.build()
Evan Jones [Wed, 4 Jan 2012 19:58:42 +0000 (14:58 -0500)]
ninja_syntax.py: Fix a bug when passing variables to Writer.build()

Add a test to cover this case.

12 years agoAdd a space to unexpected token errors.
Evan Jones [Wed, 4 Jan 2012 16:40:30 +0000 (11:40 -0500)]
Add a space to unexpected token errors.

12 years agoUse ExitProcess instead of exit in Fatal to allow extra cleanup for MSVC
Frances Buontempo [Wed, 4 Jan 2012 15:46:33 +0000 (07:46 -0800)]
Use ExitProcess instead of exit in Fatal to allow extra cleanup for MSVC

12 years agowindows: make bootstrap.py/configure.py work with MSVC
Scott Graham [Wed, 4 Jan 2012 01:04:49 +0000 (17:04 -0800)]
windows: make bootstrap.py/configure.py work with MSVC

12 years agoMerge pull request #180 from doctorlove/int64
Evan Martin [Tue, 3 Jan 2012 18:54:15 +0000 (10:54 -0800)]
Merge pull request #180 from doctorlove/int64

Int64

12 years agoAdd new line to new file
Frances Buontempo [Tue, 3 Jan 2012 16:48:02 +0000 (16:48 +0000)]
Add new line to new file

12 years agotypedef long long for MSVC
Frances Buontempo [Tue, 3 Jan 2012 16:45:16 +0000 (16:45 +0000)]
typedef long long for MSVC

12 years agoMerge pull request #179 from polrop/fix-clang-warning
Evan Martin [Tue, 3 Jan 2012 15:38:43 +0000 (07:38 -0800)]
Merge pull request #179 from polrop/fix-clang-warning

Fix warning about class previously declared as struct.

12 years agoMerge pull request #177 from doctorlove/msvc_changes
Evan Martin [Tue, 3 Jan 2012 15:36:38 +0000 (07:36 -0800)]
Merge pull request #177 from doctorlove/msvc_changes

Msvc changes

12 years agoFix warning about class previously declared as struct.
Nicolas Despres [Tue, 3 Jan 2012 13:51:17 +0000 (14:51 +0100)]
Fix warning about class previously declared as struct.

Reported by clang++.

12 years agostd::string(NULL,0) asserts in MSVC Debug
Frances Buontempo [Tue, 3 Jan 2012 12:06:24 +0000 (12:06 +0000)]
std::string(NULL,0) asserts in MSVC Debug

12 years agoChanges to hash_map to make it build with MSVC's version
Frances Buontempo [Tue, 3 Jan 2012 10:44:03 +0000 (10:44 +0000)]
Changes to hash_map to make it build with MSVC's version

12 years agoInclude <algorithm> for std::find in test.cc
Frances Buontempo [Tue, 3 Jan 2012 10:23:29 +0000 (10:23 +0000)]
Include <algorithm> for std::find in test.cc

12 years agoWhen expanding $in and $out, wrap with quotes if the filename has a space.
Jeremy Apthorp [Mon, 28 Nov 2011 02:54:35 +0000 (13:54 +1100)]
When expanding $in and $out, wrap with quotes if the filename has a space.

12 years agoallow hyphen in variable names
Evan Martin [Fri, 30 Dec 2011 23:15:17 +0000 (15:15 -0800)]
allow hyphen in variable names

12 years agomore private
Evan Martin [Fri, 30 Dec 2011 04:39:04 +0000 (20:39 -0800)]
more private

12 years agomake evalstring internals private
Evan Martin [Fri, 30 Dec 2011 04:37:07 +0000 (20:37 -0800)]
make evalstring internals private

12 years agoMerge pull request #173 from polrop/fix-typo-in-manual
Evan Martin [Fri, 30 Dec 2011 18:03:48 +0000 (10:03 -0800)]
Merge pull request #173 from polrop/fix-typo-in-manual

Fix typo in manual.

12 years agoFix typo in manual.
Nicolas Despres [Fri, 30 Dec 2011 13:39:01 +0000 (14:39 +0100)]
Fix typo in manual.

12 years agobuild fix
Evan Martin [Fri, 30 Dec 2011 04:35:39 +0000 (20:35 -0800)]
build fix

12 years agoswitch the core ninja parser to use re2c for the lexer
Evan Martin [Thu, 29 Dec 2011 21:00:27 +0000 (13:00 -0800)]
switch the core ninja parser to use re2c for the lexer

- Delete the old "Tokenizer" code.
- Write separate tests for the lexer distinct from the parser.
- Switch the parser to use the new code.
- New lexer error output has file:line numbers so e.g. Emacs can
  jump your editor to the syntax error.
- The EvalEnv ($-interpolation) code is now part of the lexer as well.

12 years agominor re2c cleanups
Evan Martin [Thu, 29 Dec 2011 20:48:25 +0000 (12:48 -0800)]
minor re2c cleanups

12 years agohandle nuls more carefully in re2c rules
Evan Martin [Thu, 29 Dec 2011 20:44:15 +0000 (12:44 -0800)]
handle nuls more carefully in re2c rules

- '.' in re2c matches anything except \n, which means it matches \000.
  Be more careful about which characters we match.
- The fallback rule [^] reads ahead another character, which means it
  can read past the trailing \000.  Add a separate rule to match it
  specifically.

This was found by Valgrind.

12 years agoadd script for measuring build performance
Evan Martin [Thu, 29 Dec 2011 19:57:02 +0000 (11:57 -0800)]
add script for measuring build performance

12 years agoninja_syntax: add restat attribute to rules
Evan Martin [Wed, 28 Dec 2011 21:52:47 +0000 (13:52 -0800)]
ninja_syntax: add restat attribute to rules

Patch from Ami Fischman <fischman@chromium.org>.

12 years agoadd bash completion based on zsh completion
Evan Martin [Wed, 28 Dec 2011 07:32:09 +0000 (23:32 -0800)]
add bash completion based on zsh completion

12 years agomove some docs to home page
Evan Martin [Wed, 28 Dec 2011 07:24:46 +0000 (23:24 -0800)]
move some docs to home page

12 years agolink to blog post in docs
Evan Martin [Wed, 28 Dec 2011 05:43:39 +0000 (21:43 -0800)]
link to blog post in docs

12 years agoadd an "all" target to build all binaries
Evan Martin [Wed, 28 Dec 2011 03:39:16 +0000 (19:39 -0800)]
add an "all" target to build all binaries

12 years agofix parser_perftest after depfile change
Evan Martin [Wed, 28 Dec 2011 03:36:02 +0000 (19:36 -0800)]
fix parser_perftest after depfile change

12 years agode-escape backslashes in depfiles while parsing
Evan Martin [Tue, 27 Dec 2011 23:45:30 +0000 (15:45 -0800)]
de-escape backslashes in depfiles while parsing

12 years agoadd (failing) test involving spaces in depfiles
Evan Martin [Tue, 27 Dec 2011 21:51:15 +0000 (13:51 -0800)]
add (failing) test involving spaces in depfiles

12 years agoswitch DepfileParser to take a string* to make memory clearer
Evan Martin [Tue, 27 Dec 2011 21:48:17 +0000 (13:48 -0800)]
switch DepfileParser to take a string* to make memory clearer

Add some comments as well.

12 years agofix depfile regex to not match empty strings
Evan Martin [Tue, 27 Dec 2011 21:39:09 +0000 (13:39 -0800)]
fix depfile regex to not match empty strings

From a patch from Allan Odgaard <github@simplit.com>.

12 years agoadapt parser_perftest to new depfile class
Evan Martin [Tue, 27 Dec 2011 21:27:31 +0000 (13:27 -0800)]
adapt parser_perftest to new depfile class

12 years agoremove huge indent from tools list
Evan Martin [Tue, 27 Dec 2011 21:25:45 +0000 (13:25 -0800)]
remove huge indent from tools list

12 years agorearrange the new bootstrap.py
Evan Martin [Tue, 27 Dec 2011 20:29:39 +0000 (12:29 -0800)]
rearrange the new bootstrap.py

(e.g. remove tabs)

12 years agoMerge branch 'master' of git://github.com/ehird/ninja
Evan Martin [Tue, 27 Dec 2011 20:15:32 +0000 (12:15 -0800)]
Merge branch 'master' of git://github.com/ehird/ninja

12 years agoMerge pull request #166 from tfarina/fix-commit
Evan Martin [Mon, 26 Dec 2011 19:46:08 +0000 (11:46 -0800)]
Merge pull request #166 from tfarina/fix-commit

Follow up fix to commit 32bf74f (Fix the TODO in Rule class.)

12 years agoFollow up fix to commit 32bf74f (Fix the TODO in Rule class.)
Thiago Farina [Sat, 24 Dec 2011 02:08:14 +0000 (00:08 -0200)]
Follow up fix to commit 32bf74f (Fix the TODO in Rule class.)

Signed-off-by: Thiago Farina <tfarina@chromium.org>
12 years agoMerge pull request #164 from tfarina/rule-private-members
Evan Martin [Sat, 24 Dec 2011 01:29:05 +0000 (17:29 -0800)]
Merge pull request #164 from tfarina/rule-private-members

Fix the TODO in Rule class.

12 years agoFix the TODO in Rule class.
Thiago Farina [Sat, 24 Dec 2011 01:03:57 +0000 (23:03 -0200)]
Fix the TODO in Rule class.

Move various data members to private section and provide accessors for them.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
12 years agowindows: handle ERROR_PATH_NOT_FOUND
Evan Martin [Fri, 23 Dec 2011 18:56:04 +0000 (10:56 -0800)]
windows: handle ERROR_PATH_NOT_FOUND

From Frances <frances.buontempo@gmail.com>.

12 years agoMerge pull request #163 from jsternberg/master
Evan Martin [Fri, 23 Dec 2011 17:00:16 +0000 (09:00 -0800)]
Merge pull request #163 from jsternberg/master

a fix for issue #162

12 years agoMatching the depfile_parser.in.cc file to properly generate the depfile_parser.cc...
Jonathan Sternberg [Fri, 23 Dec 2011 15:02:10 +0000 (10:02 -0500)]
Matching the depfile_parser.in.cc file to properly generate the depfile_parser.cc file that's in version control.

12 years agoMerge pull request #161 from nico/fix
Evan Martin [Thu, 22 Dec 2011 21:31:25 +0000 (13:31 -0800)]
Merge pull request #161 from nico/fix

Let ninja_syntax handle escaped spaces correctly.

12 years agoLet ninja_syntax handle escaped spaces correctly.
Nico Weber [Thu, 22 Dec 2011 20:21:12 +0000 (12:21 -0800)]
Let ninja_syntax handle escaped spaces correctly.

Revert the main loop changes made in 2e7ab7514207ea7faad40faedf3fc9d72b3adf7a,
and add just a few lines to the original main loop to make '$ ' escaping work.
Add several new tests, and make the existing tests pass again.

12 years agorevert part of c33b198 to fix build of ninja_test
Evan Martin [Thu, 22 Dec 2011 01:13:25 +0000 (17:13 -0800)]
revert part of c33b198 to fix build of ninja_test

12 years agoMerge pull request #160 from tfarina/upper-case-error
Evan Martin [Tue, 20 Dec 2011 23:29:35 +0000 (15:29 -0800)]
Merge pull request #160 from tfarina/upper-case-error

Capitalize "error" to match with the other utility functions.

12 years agoCapitalize "error" to match with the other utility functions.
Thiago Farina [Tue, 20 Dec 2011 23:14:33 +0000 (21:14 -0200)]
Capitalize "error" to match with the other utility functions.

Fatal and Warning functions already output their strings capitalized,
we were just missing the Error function. So capitalize it now.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
12 years agoMerge pull request #159 from tfarina/protect-build-log-vars
Evan Martin [Tue, 20 Dec 2011 21:59:00 +0000 (13:59 -0800)]
Merge pull request #159 from tfarina/protect-build-log-vars

Protect BuildLog data member variables by making them private.

12 years agoProtect BuildLog data member variables by making them private.
Thiago Farina [Tue, 20 Dec 2011 21:53:31 +0000 (19:53 -0200)]
Protect BuildLog data member variables by making them private.

They are not accessed outside of BuildLog and there is even a SetConfig function
to set the |config_| variable.

So better to make them private to BuildLog now while nobody is using it outside.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
12 years agoMerge pull request #158 from tfarina/alphabetize
Evan Martin [Tue, 20 Dec 2011 21:18:53 +0000 (13:18 -0800)]
Merge pull request #158 from tfarina/alphabetize

Put the list of core source files in alphabetical order.

12 years agoPut the list of core source files in alphabetical order.
Thiago Farina [Tue, 20 Dec 2011 21:06:01 +0000 (19:06 -0200)]
Put the list of core source files in alphabetical order.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
12 years agowindows: use GetFileAttributesEx instead of stat
Evan Martin [Tue, 20 Dec 2011 20:13:11 +0000 (12:13 -0800)]
windows: use GetFileAttributesEx instead of stat

From a Hacker News comment:
"Recent finding, that sped up our systems from 15->3sec on 300,000+ files
filestamp check was to move from _stat to GetFileAttributesEx."

I do recall reading that calls to stat() on Windows were one of the
potential reasons Subversion is so slow on Windows...

12 years agogitignore exe files
Evan Martin [Tue, 20 Dec 2011 19:44:08 +0000 (11:44 -0800)]
gitignore exe files

12 years agofactor out windows perror equivalent
Evan Martin [Tue, 20 Dec 2011 19:43:57 +0000 (11:43 -0800)]
factor out windows perror equivalent

12 years agoinline gtest to simplify windows build
Evan Martin [Tue, 20 Dec 2011 19:38:56 +0000 (11:38 -0800)]
inline gtest to simplify windows build

12 years agofix bad merge
Evan Martin [Tue, 20 Dec 2011 19:10:26 +0000 (11:10 -0800)]
fix bad merge

12 years agofix mingw cross-compile
Evan Martin [Tue, 20 Dec 2011 19:01:04 +0000 (11:01 -0800)]
fix mingw cross-compile

12 years agorearrange manual to centralize quoting rules
Evan Martin [Tue, 20 Dec 2011 18:54:10 +0000 (10:54 -0800)]
rearrange manual to centralize quoting rules

12 years agoremove weird accidental double-return
Evan Martin [Tue, 20 Dec 2011 18:40:40 +0000 (10:40 -0800)]
remove weird accidental double-return

Surprised this isn't a compiler warning.

12 years agoMerge pull request #146 from nornagon/escape-spaces
Evan Martin [Tue, 20 Dec 2011 18:33:42 +0000 (10:33 -0800)]
Merge pull request #146 from nornagon/escape-spaces

Escape spaces

12 years agoadjust depfile test now that parsing is more lax
Evan Martin [Mon, 19 Dec 2011 19:18:29 +0000 (11:18 -0800)]
adjust depfile test now that parsing is more lax