Age | Commit message (Collapse) | Author |
|
... that was accidentially replaced by a first-wins semantics in
62d204ff4cc94c12c1635f189255710901682825 which fortunately did not
make it to any release.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...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
|
|
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.
|
|
... allowing to select only the keys in a specific subdir,
and move the them to top-level.
|
|
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.
|
|
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.
|
|
|
|
|
|
Also update the classes documentation accordingly.
|
|
|
|
...instead of separate local and remote instances.
For tests, where different implementations of the IExecutionApi
interface are used, ApiBundle instances are created by explicitly
setting the struct fields instead of using ApiBundle::Create.
|
|
This will allow for ApiBundle to be used together with the TestApi
implementation of IExecutionApi in tests.
Also rename CreateRemote method to MakeRemote in order to remove
any semantical confusion.
|
|
|
|
|
|
|
|
It is passed as a not_null const pointer, to avoid binding to
temporaries, and stored as a const reference to be later passed
also to Executor/Rebuilder.
|
|
|
|
Also switch to using the fields from RemoteContext instances
instead of those from ApiBundle.
|
|
Also switch to using the fields from RemoteContext instances
instead of those from ApiBundle.
|
|
The CreateRemote method is also updated to receive all
remote-related information as arguments, such that it does not have
to rely on the ApiBundle internal fields which will eventually be
removed.
|
|
...for orchestrated builds.
As the dispatch list and execution properties need to be parsed,
place them in a proper RemoteExecutionConfig, to be passed to the
created ApiBundle instance.
|