| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prior to introduction of depfile parser handling of multiple rules,
ninja silently accepted a depfile of the form:
out: in1 in2 in3
other: otherIn1 otherIn2 otherIn3
and incorrectly treated `other` and `otherIn*` as additional inputs to
`out`. Now we prefer to reject this just as we already do for a depfile
specifying multiple outputs on one line. However, this can break
existing cases where such a depfile was silently tolerated.
Add a `-w depfilemulti={err,warn}` option to control this behavior,
and make it just a warning by default.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we handle Makefile rules of the form:
out: in1 in2 in3
and the form:
out: in1 \
in2 \
in3
Teach the depfile parser to handle the additional form:
out: in1
out: in2
out: in3
This is also valid Makefile syntax and is the depfile format
generated by the Intel Compiler for Windows.
Note that the `gcc -MP` option adds empty phony rules to the generated
Makefile fragment:
out: in1 in2 in3
in1:
in2:
in3:
Previously we tolerated these because they were treated as inputs, which
was accidentally correct. Instead we must now tolerate these by
ignoring targets for which no dependencies are specified.
|
|
|
|
|
|
|
| |
Escape newlines for line continuation in the SpecialChars test case.
Otherwise the test does not cover valid Makefile syntax. The missing
line continuation was tolerated by our parser but is never (not)
produced by a real compiler.
|
|
|
|
|
| |
Re-arrange the existing logic to support later addition of post-token
code even for empty tokens.
|
| |
|
| |
|
|\
| |
| | |
Win32 invalid parameter help
|
| |
| |
| |
| |
| | |
This is generally associated with the command line being too long. Give
a hint to this case in the error message.
|
| |
| |
| |
| |
| | |
The callsite might have extra context which is helpful for interpreting
the error message.
|
|\ \
| | |
| | | |
Enable ANSI escape sequences on Windows 10 terminals
|
| | | |
|
|\ \ \
| | | |
| | | | |
browse.py: fix delay with multiple connections
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When Firefox opens two TCP connections and sends a request over the
second connection, it is not processed until the first one is closed.
Use a threaded server to solve this issue. Tested with Python 2.7.15 and
3.6.5. (Also tested with 2.6, but that failed due to lack of argparse.)
Link: https://bugs.python.org/issue31639
|
|\ \ \ \
| | | | |
| | | | | |
Optimize ReadFile allocations
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Instead of continuously reallocating the output string, call reserve()
up front to enlarge the string's buffer.
Also use feof() instead of an empty read to detect the end of the file.
This saves a syscall on <64kb files, which is about 5% (200ns) of the
time to read a file on my machine.
For our larger build.ninja files (~550MB), this saves about 500ms, which
is more than half the time spent in this function. (Measured by adding
METRICS_RECORD to this function during manifest_parser_perftest)
For the standard manifest_parser_perftest, this only saves ~20ms out of
~600ms for a full run.
|
| | | | |
| | | | |
| | | | |
| | | | | |
See #1306.
|
| | | | | |
|
| |_|/ /
|/| | | |
|
|\ \ \ \
| | | | |
| | | | | |
DirName's separators and their length are known at compile time
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
util: don't add ellipses width when deciding if they're necessary
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | | |
If the string fits, just use it. If we need the ellipses, *then* we need
to compute the width based on that.
|
|/ / / /
| | | |
| | | |
| | | |
| | | | |
Don't strip colors when CLICOLOR_FORCE is set to a non-zero value. This
environment variable is also used by CMake's Make back-end.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
GetFullPathName previously failed silently on long path names resulting
in uninitialized path result.
Signed-off-by: Fredrik Medley <fredrik.medley@autoliv.com>
|
|\ \ \ \
| | | | |
| | | | | |
Fix parsing some special chars in depfiles (take 2)
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This allows paths with "[", "]" and "%" to appear in depfiles.
Previously, only "[" would be handled properly.
Fixes #1227.
|
| | | | | |
|
|/ / / /
| | | |
| | | | |
Fixes #1411.
|
|\ \ \ \
| | | | |
| | | | | |
Query terminal width from STDOUT_FILENO
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Rather than 0 (stdin). So it will work even if ninja's stdin isn't connected to
the terminal for whatever reason.
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Two fixes for NetBSD
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Port to AIX platform
|
| | |/ / / /
| |/| | | |
| | | | | |
| | | | | | |
Taking care of printf format specifiers and large files using compiler macros in configure.py
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit 52c1d0c8f8545231581c4d51cb0a85f50564c415.
Fixes #1418.
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Flush stdout after printing "Cleaning..." message
|
| | | | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix testcase failure in docker environment
|
| | |/ / / / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
In our docker environment, the normal user does not have a name.
This results in the `whoami` command to fail which expects a name to print
Replace `whoami` with `id -u`, which print print the numeric id
I have no name!@7427761b8f4c:/tmp/d$ whoami
whoami: cannot find name for user ID 1000
I have no name!@7427761b8f4c:/tmp/d$ id
uid=1000 gid=0(root) groups=0(root)
Signed-off-by: Ritesh Raj Sarraf <ritesh.sarraf@collabora.com>
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix compilation on FreeBSD 11.2 (use st_mtim.tv_nsec)
|
| | |_|_|_|_|/
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
./src/disk_interface.cc: In member function 'virtual TimeStamp RealDiskInterface::Stat(const string&, std::__cxx11::string*) const':
./src/disk_interface.cc:216:51: error: 'struct stat' has no member named 'st_mtimensec'; did you mean 'st_mtim'?
return (int64_t)st.st_mtime * 1000000000LL + st.st_mtimensec;
^~~~~~~~~~~~
st_mtim
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
posix_spawn_* calls don't set errno, use the return value.
|
| | | | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Silence GCC -Wimplicit-fallthrough warnings
|