Age | Commit message (Collapse) | Author |
|
While there, also properly transition "srcs" and "private-hdrs"
to the host version.
|
|
In case many "targets" are given, the field "lint" will contain
all the concatenation of the provider "lint" of the given targets.
There is, however, not need to lint the same file in the same
context twice, so deduplicate the targets first. While this does
not change the amount of lint actions carried out (as equal actions
are handled only once anyway), it keeps the summary clean by not
having dulicate entries.
|
|
Originally, the expression lanuage only contained a function to
deduplicate a list, keeping only the right-most occurence. The
reason was that this is the order needed for linking: a library
providing an open symbol has to come on the command line after the
library using that symbol (and hence making it an open symbol).
However, by now use cases have emerged that require a topological
sorting where definition comes before use; also, when composing
the value of PATH from fragments, we usually want to keep the first
occurrence in order for it to take precedence. Therefore, also
add "nub_left" as built-in function, allowing a more condense (and
slightly more efficient) description in rules instead of the
revserse-nub_right-reverse pattern.
|
|
... and, in particular, do not include headers of other libraries
that are not even needed.
|
|
|
|
|
|
If the configuration variable "LINT" is set, also provide information
on compile actions and header files (with preprocessing as described
command, in particular also providing the correct flags) in correct
dependency context. In this way, lint rules can request the needed
information for performing their checks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...and move the storing logic to Execute directly. There is no need to pass additional parameters to the method to just perform a check inside, and after this removal there is no need to preserve a one-line method.
|
|
|
|
|
|
1. In reading remove additional buffer field and reuse the response's buffer;
2. In writing preserve the file descriptor alive.
|
|
|
|
...and use this functionality in ExecutionServer
|
|
...and get it from LocalCAS.
|
|
|
|
|
|
Deserialization from json is used in a single test only
|
|
1. Remove NodeProperties from CreateDirectory;
2. Set digest in CreateFileNode, CreateDirectoryNode.
|
|
+ invoke it only if there are symlinks to check
+ remove the corresponding runtime check since it is replaced by a compile-time check
|
|
...since this is more readable. And adjust the LocalCAS's uplinker creator.
|
|
! => not; && => and, || => or
|
|
|
|
... instead of hard-coding ["cqs"].
|
|
When switching from a target to the artifacts that are the inputs
of a particular action, the provides map is also switched to provide
additional (besides the inputs) information about the action, in
particular the command. Extend this provides map with the remaining
information, in particular the working directory.
|
|
The existing rules allow a shell test script to explicitly 'keep'
created files in the resulting output directory, to be accessible
to any dependent target, thus allowing a chaining of data across
test scripts. This field however excludes directories, whose
content would need to be added one file at a time to the 'keep'
field.
Add instead also a 'keep-dirs' field to ["shell/test", "script"]
rule which allows the explicit staging of given directory paths the
test is expected to generate.
|
|
... allowing to select only the keys in a specific subdir,
and move the them to top-level.
|
|
... instead of having a custom quoting function in the tests.
|
|
For the user it is more useful to see the actual error message,
provided by strerror(), than the pure error code.
|
|
|
|
|
|
... right after having successfully finished analysing the target.
As a side effect, we also get the statistics of the export targets
reported on analysis requests. As cached export targets project
artifacts to known ones, that information is highly relevant there.
|
|
... and drop the corresponding design document as implemented.
|
|
... also ensuring that the implict empty tree is added as input.
|
|
While our local action execution implicitly creates the specified
cwd with the first output file or directory, this behaviour is
not mandated by the remote-execution protocol. There, an action
definition has to ensure that cwd is a directory implied by the
input files. Achieve this, by adding an empty input directory
at cwd if this can be done without creating tree conflicts.
|
|
|
|
|
|
|
|
... following the remote-execution standard that all output paths (but
none of the input paths) are relative to the working directory.
Therefore, the executor has to do the path translation. For our
implementation of the API interface
- the local API now handles cwd correctly,
- the remote API forwards cwd correctly, and
- the git API continues to report actions as not implemented.
|
|
... for the working directory inside the action directory.
|
|
|
|
|
|
This is implemented already, however as part of the tree-conflict check.
|
|
directory
... instead of always having to execute actions in the top-level directory.
|