| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
|
|
|
| |
Total build time is also relevant.
The costs of StartEdge and EndEdge turned out to be quite surprising.
Especially if multiple targets are specified on edges.
(I've tried declaring depfiles targets explicitly)
|
|
|
|
|
|
| |
No functional change.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
For %o, remove a superfluous + 0.5: snprintf("%f") rounds already.
Remove some unnecessary code.
For %c, fix a TODO to add a sliding window and update after every
completed edge. Else, with -j50 and several files that take 3s to
compile each, this number would only update every 150s. Also give
the number one decimal place so that this can measure steps slower
than 1s.
|
| |
|
|
|
|
|
|
|
| |
The build log is needed in computing whether an edge is
dirty, so I think it belongs here. (It's a bit weird
that Builder needs to reach into it to record completed
commands, maybe it will become cleaner with more thought.)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Rather than passing States and DiskInterfaces through all the calls,
put the necessary ambient information in a new DependencyScan object
and move the code accordingly.
Note: I didn't move the source location of the functions to preserve
history, though this does result in a sort of weird order for the
functions in graph.cc.
|
|
|
|
|
|
|
|
|
|
| |
Fixes issue #392 (didn't handle creating nested build dirs right).
Moves MakeDir out of util.h; all code should go through
DiskInterface to simplify testing. Moves ownership of the
DiskInterface into the client of the Builder, which also allows
removing some code that reached inside the object as well as
a minor leak.
|
| |
|
| |
|
|\
| |
| | |
print edges per second
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
prints the rate of finished edges per second to the console,
for instance with NINJA_STATUS="[%s/%t %o(%c)/s] ":
[132/1922 16.1(14)/s]
16.1 is the average for all processed files (here 132 since start)
14 is the average of the last n files while n is the number specifies by
-j (or its default)
|
|/ |
|
| |
|
|\
| |
| | |
Do not reset restat_mtime if an input is missing
|
| | |
|
| |
| |
| |
| |
| | |
total_time was always -1, because it computed a pointer difference,
not a time difference (should've been |*end_time - *start_time|).
|
|\ \
| | |
| | | |
Remove unused variable last_update_millis_.
|
| |/ |
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| | |
Max load average
|
| |
| |
| |
| |
| |
| |
| | |
This is similar to GNU make -l/--load-average option. It limits the number
of job started if the load average exceed the given value. It can be very
useful when running ninja on a continuous integration server where we want
to use parallelism as much as possible without overloading the server.
|
| | |
|
| |
| |
| |
| |
| | |
Elsewhere in the code I avoid sstream and manual buffer management,
so switch this code to behave similarly. Sorry for being OCD.
|
|\ \ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Some people may want to display different relevant information about
the progress of the build. Also it can be usefull to debug jobs
allocation.
|
| |/ |
|
|\ \
| | |
| | | |
add support for -d explain to help debug why rules are running
|
| |/ |
|
|\ \
| |/
|/| |
Lazily create the CommandRunner in Builder::Build
|
| |
| |
| |
| |
| | |
This allows the user to interrupt the build (i.e. using Ctrl-C)
while the build plan is being computed.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Specifically, only delete if the file was modified or if the rule uses
a depfile.
Fixes issue #226.
|
|/ |
|
|\
| |
| | |
Response files
|
| | |
|
| | |
|
|\ \
| |/
|/| |
Implement cleanup-on-interrupt
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, if a command fails, the fate of the other child processes
running in parallel was inadequately controlled. On POSIX platforms,
the processes were orphaned. Normally they would run to completion,
but were liable to being killed by a SIGPIPE. On Windows, the child
processes would terminate with the parent. The cleanup-on-interrupt
patch caused the SubprocessSet and Builder destructors to clean
up after themselves by killing any running child processes and
deleting their output files, making the behaviour more predictable
and consistent across platforms.
If the build is interrupted by the user, this is correct behaviour.
But in the case where the build is stopped by a failed command, this
would be inconsistent with user expectations. In the latter case,
we now let any remaining child processes run to completion before
leaving the main loop in Builder::Build.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This causes us to clean up by deleting any output files belonging
to currently-running commands before we quit if we are interrupted
(either by Ctrl-C or by a command failing).
Fixes issue #110.
|
| | |
|
|/ |
|
|
|
|
| |
Rather than mixing use of WIN32 and _WIN32.
|