| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
All call sites have a node on which they call `in_edge()` to call
RecomputeDirty. Simplify call sites by taking the node directly and
calling `in_edge()` internally.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Remove a dependency cycle from the test case, as cycles are covered by
other tests. Ensure this case covers stat failure on a valid graph.
|
| |\ \ \ \
| | |/ / /
| |/| | | |
Work around mtime being set to 0 sometimes
|
| |/ / / |
|
| |\ \ \
| | | | |
| | | | | |
Fix segfault on edge with no inputs
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
PR #1281 added a deference of most_recent_input without checking
for NULL, which can occur if a build rule has no inputs.
Check it for null before dereferencing, and add a test.
Fixes #1290.
|
| |\ \ \
| | | | |
| | | | | |
Write subprocess output to stdout in binary mode
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Set stdout to binary mode while writing subprocess output, so that the
CR in a CR LF sequence is not replaced with CR LF itself, which would
result in CR CR LF.
Based on patch posted by nico in issue #773 comment.
|
| |\ \ \ \
| | | | | |
| | | | | | |
Add support for DragonFly BSD.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
DragonFly uses a fork of FreeBSD ports, and also uses the /usr/local prefix.
And ppoll is also available in DragonFly.
|
| |\ \ \ \ \
| | |/ / / /
| |/| | | | |
Rebuild edges that update their output file on error
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
https://groups.google.com/forum/#!msg/ninja-build/YQuGNrECI-4/ti-lAs9SPv8J
discusses a case where an rule updates its output file and then
fails. The next run of ninja considers the ouptut file clean
and doesn't rebuild it. Always stat output files after they are
built, and write the mtime into .ninja_log. Consider output files
dirty if the recorded mtime is older than the most recent input
file.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
https://groups.google.com/forum/#!msg/ninja-build/YQuGNrECI-4/ti-lAs9SPv8J
discusses a case where an rule updates its output file and then
fails. The next run of ninja considers the ouptut file clean
and doesn't rebuild it. Add a test for this case, which currently
fails.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Stat is not always used through Node::Stat, it is often used directly
through DiskInterface. THe next patches will cause it to be called
even more often through DiskInterface, so move the metrics to
DiskInterface.
|
| |\ \ \ \ \
| | |/ / / /
| |/| | | | |
Make zsh completion use explicitly specified ninja files
|
| |/ / / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These brackets are supposed to not be replaced here, but in the source files, see paragraph right above the changed line.
Fixes #1212 again.
|
| |\ \ \ \
| | | | | |
| | | | | | |
Faster clparser
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This patch improves perfromance of clparser.
* Reduce the number of calling GetFullPathName.
* Use StringPiece for Split and Join.
* Add EqualsCaseInsensitive for StringPiece not to generate new string
instance.
* Add some utility member in StringPiece class.
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Following functions are implemented for further performance
optimization.
* JoinStringPiece
* SplitStringPiece
* EqualsCaseInsensitiveASCII
* ToLowerASCII
To improve performance of CLParser, I will introduce above functions
into include_normalize-win32.cc.
|
| |\ \ \ \
| | |_|/ /
| |/| | | |
Add clparser_perftest
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |/ / / |
|
| |\ \ \
| | | | |
| | | | | |
browse: Bind to localhost by default
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously the browse server would bind to "", which is translated to
0.0.0.0 (all interfaces), and then the hostname as retrieved by
socket.gethostname() was presented to the user.
The hostname is now "localhost" by default and is configurable, so the
original behavior is achieved with `ninja -t browse -a ""`.
|
| |\ \ \
| | | | |
| | | | | |
Fix build in canon_perftest_fix
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Tell travis to build "all" instead of just "ninja_test". This would
have caught the breakage introduced by #1181.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
unsigned int*, make the same change in canon_perftest.
Fixes "./ninja all" build.
|
| |\ \ \ \
| | | | | |
| | | | | | |
Suppress warning 4244 to bootstrap on vs2017
|
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
.\src\clparser.cc(56): note: see reference to function template instantiation '_OutIt std::transform<std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,int(__cdecl *)(int)>(_InIt,_InIt,_OutIt,_Fn1)' being compiled
with
[
_OutIt=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,
_InIt=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,
_Fn1=int (__cdecl *)(int)
]
D:\bin\dev\VS\2017\BuildTools\VC\Tools\MSVC\14.10.24911\include\algorithm(946): warning C4244: '=': conversion from 'int' to 'char', possible loss of data
|
| |\ \ \ \
| | | | | |
| | | | | | |
Fix compilation error in canon_perftest.
|
| | |/ / /
| | | | |
| | | | |
| | | | | |
Introduced by 1cc730ddc27df52.
|
| |\ \ \ \
| | |/ / /
| |/| | | |
Support restat when rebuilding manifest
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As a fix for #874, we started reloading the entire manifest even if the
manifest was never rebuilt due to a restat rule. But this can be slow,
so call State::Reset instead, which also fixes the original crash.
Fixes #987
|
| |\ \ \
| | | | |
| | | | | |
Allow more path components
|
| | | | |
| | | | |
| | | | |
| | | | | |
The VS compiler complained about possible loss of data (and it was right!)
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- 60 instead of 30 path components
- 64 instead of 32 backslashes in a path (windows only)
Issue: 1161
|
| |\ \ \ \
| | | | | |
| | | | | | |
Close original pipe fd in subprocesses
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Non-console subprocesses have the write end of a pipe connected to fds
1 and 2 for stdout and stderr, but they also have the it connected to
whatever fd was assigned in the ninja process when the pipe was
created. Add a call to posix_spawn_file_actions_addclose after
the posix_spawn_file_actions_adddup2 calls to close the original fd
once it has been dup'd to stdout and stderr.
This fixes an issue seen in the Android build, where one of the
subprocesses is used to start a background helper process. The
background process attempts to close any inherited fds, but if ninja
used a very large fd number due to a high parallelism count the
background process would not close the fd and ninja would never
consider the subprocess finished.
|
| |\ \ \ \
| | | | | |
| | | | | | |
fix broken link in hacking.md
|
| |/ / / / |
|
| |\ \ \ \
| | | | | |
| | | | | | |
Fix build with uclibc
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Resolves #985
This is based on musl implementation,
http://git.musl-libc.org/cgit/musl/commit/?id=20cbd607759038dca57f84ef7e7b5d44a3088574
(thanks to jbergstroem@ for reference)
|
| |\ \ \ \
| | | | | |
| | | | | | |
replace copyright placeholder, fixes #1212
|
| |/ / / / |
|