| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix potential buffer overrun
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit rearranges record size comparison and fread() to make sure
fread() only reads the data that can fit into the buffer.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
escape usage examples
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
correction of location of binary
|
|/ / / / /
| | | | |
| | | | | |
original said "source root", but actual location is project root. Perhaps it is mean to be "src" parent, but that's a bit confusing.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
update RELEASING
|
|/ / / / |
|
| | | | |
|
|\ \ \ \
| |_|/ /
|/| | | |
Restore tolerance of self-referencing phony build statements
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since commit v1.8.0^2~3^2~1 (Teach RecomputeDirty to detect cycles in
the build graph, 2015-11-13) we correctly reject self-referencing phony
build statements like
build a: phony a
as cycles. Unfortunately this breaks support for CMake 2.8.12.x and
3.0.x because those versions incorrectly produce edges of this form
(that we used to tolerate). In order to preserve compatibility with
those CMake versions we need to restore tolerance of these edges.
Add a special case to the manifest parser to filter out self-referencing
inputs of phony edges of the form produced by those CMake versions.
Warn by default, but add a `-w phonycycle={err,warn}` option to make it
an error.
Fixes: #1322
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
This will allow more options to be added without updating everywhere
that constructs a ManifestParser. Also extend the AssertParse function
to take the options so tests can control them.
|
| | | |
|
|\ \ \
| | | |
| | | | |
fix normalizer test for _MAX_PATH
|
|/ / / |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Add `deps` and `recompact` tools to manual
|
| | | | |
|
| |/ /
| | |
| | | |
The `deps` tool in particular is very useful to know about.
|
|\ \ \
| |/ /
|/| | |
Remove path component limit from input of CanonicalizePath in windows
|
|/ / |
|
|\ \
| | |
| | | |
Detect build graph cycles as early as possible
|
| | |
| | |
| | |
| | |
| | | |
We now detect and reject cycles in DependencyScan::RecomputeDirty before
Plan::AddTarget is called so we can assume DAG input to the Plan.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
RecomputeDirty is the earliest traversal of the build graph complete
with depfile-loaded dependencies. Teach it to detect cycles and fail
immediately. This avoids the need to tolerate cycles in RecomputeDirty
only to diagnose them later. It also enables future simplification of
Plan and Builder logic because they will be able to assume DAG input.
When RecomputeDirty detects a cycle, reject it with an error message
like that previously produced by Plan::CheckDependencyCycle.
Previously we used the stat state of each node to determine whether
we reached it earlier in the walk. Retain this approach for leaf
nodes, but add an explicit walk state mark for each Edge so that
we can have a temporary mark to aid cycle detection.
|
| | |
| | |
| | |
| | | |
Store a mark in each `Edge` to be updated as it is encountered by a walk.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | | |
|
| | | |
|