summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-07-05ResultMapTargetMap: support looking up an action by identifierKlaus Aehlig
2022-07-05Fix wrong output pipe for version info in mainPaul Cristian Sarbu
2022-07-04Main: Fix typo in include guardsOliver Reiche
2022-07-04Drop copy constructor from atomic valueOliver Reiche
2022-07-04Drop copy constructor from linked mapsOliver Reiche
2022-07-04Drop copy constructor for expressionsOliver Reiche
2022-07-04Improve move semantics with smart pointersOliver Reiche
2022-06-29Error reporting: also abbreviate the expression in the stack traceKlaus Aehlig
... to the same limit as the values occuring in the stack.
2022-06-29rename private member in compliance with the used code styleAlberto Sartori
2022-06-29Use a more meaningful abbreviation of expression valuesKlaus Aehlig
... in error messages. The outer structure is usually more important than the the details of the first element.
2022-06-29util: support abbreviating jsonKlaus Aehlig
To an intended number of characters by leaving out the parts after a given depth. As the correct depths has to be determined, the JSON value is serialized several times; hence the method is slow, but acceptable for the generation of error messages.
2022-06-28Support more verbose error reportingKlaus Aehlig
2022-06-28Generic: add support for out_dirsAlberto Sartori
Before this patch, the built-in "generic" type allowed for just output files, listed in the field "outs". Now, the type also supports output directories, listed in the "out_dirs" field. The output directories are created before the command is executed.
2022-06-28sort and deduplicate outputs before creating the actionAlberto Sartori
2022-06-28define new header-only library for vector manipulationAlberto Sartori
2022-06-28improve error message when outpus are not disjointAlberto Sartori
2022-06-28add parenthesis to emphasize the order of evaluationAlberto Sartori
2022-06-27just version information: support VERSION_EXTRA_SUFFIXKlaus Aehlig
... which, if defined, is appended to the suffix string. In this way, versions can be forked, e.g., if non-upstream changes are included.
2022-06-24Add a version subcommandKlaus Aehlig
To also allow identifying snapshot versions in a meaningful way, we support embedding SOURCE_DATE_EPOCH which ought to be set to the commit time of the commit used.
2022-06-24action deserialisation: accept null for "may_fail"Klaus Aehlig
In that way, we are consistent with all other values in that there is a way to positively state that the default value should be taken. While there, fix a wrong error message.
2022-06-22RemoteExecutionClient: Check and log execution statusOliver Reiche
2022-06-20Correctly serialize and deserialize results and nodesKlaus Aehlig
So far, our serialisation and deserialisation assumed that no node or result values are included contained in the given value. However, for nodes (and hence ressults, given our implementation of value nodes) there is a legitimate use case. An abstract interface specification, given by provided nodes, can well be a meaningful target to be exported. Implement serialisation for those values. Also, avoid tree-unfolding the value when deserialising the value by appropriately caching the corresponding expression pointers. Moreover, avoid the quadratic overhead through linearly searching through the list of artifacts.
2022-06-20Repository representation: also use string as name in bindingsKlaus Aehlig
In this way, we keep the repsitory description more close to a normal multi-repository configuration. The only difference remaining is the absence of repository locations for git-tree roots.
2022-06-20analysed targets: artifacts can also be contained in nodes and resultsKlaus Aehlig
2022-06-20Disallow comparison of namesKlaus Aehlig
In our semantics, it was always intended that names are completely opaque and only used by passing them to functions providing information about a target. However, we never enforced that they not be compared for equality, even though we always had this in mind, and the computation of the target-level cache key was designed with this semantics in mind. Enforce this restriction now.
2022-06-20expression: cache the cacheability propertyKlaus Aehlig
2022-06-20Crypto: Refactor hash computationOliver Reiche
... by renaming HashGenerator to (incremental) Hasher and dropping support for Git/MD5 hashes. The Hasher does not expose the actual hash implementation.
2022-06-20Crypto: Add and use set of globally used hash functionsOliver Reiche
2022-06-20Executor: Fix printing artifact idsOliver Reiche
2022-06-14fix handling of workspace root for the main repositoryAlberto Sartori
commit fd58a5eb429d4a9db51f73c06137f1a4ebe41c08 introduced a bug. If the main workspace root is a git repo, it will be overwritten by a std::optional<std::filesystem::path> storing std::nullopt. This patch fixes this wrong behaviour.
2022-06-13Fix target cache key: Use repository-local target nameOliver Reiche
2022-06-13Main: Print statistics for export targetsOliver Reiche
2022-06-13ExportRule: Compute target cache key use target cacheOliver Reiche
2022-06-13Statistics: Add counters for export targetsOliver Reiche
2022-06-13Logging: Extend logger by level for PerformanceOliver Reiche
2022-06-13Main: Collect cache artifacts and Write target cache entriesOliver Reiche
2022-06-13ResultMap: Keep track of targets to cacheOliver Reiche
2022-06-13AnalysedTarget: Add getter to obtain non-known artifactsOliver Reiche
2022-06-13TargetCache: Initial implementationOliver Reiche
2022-06-13TargetResult: Add support for JSON (de)serializationOliver Reiche
2022-06-13GraphTraverser: Add support for extra artifactsOliver Reiche
2022-06-13ArtifactDescription: Add ref getter for id and C++ hashOliver Reiche
2022-06-13RemoteExecutionConfig: Keep global platform propertiesOliver Reiche
... and cache endpoint address for rebuilding.
2022-06-13RepoConfig: Compute repository keyOliver Reiche
2022-06-13LocalCAS: Add singleton patternOliver Reiche
2022-06-13multithreading: Add AtomicValue to atomically set/get valueOliver Reiche
... and use it to replace the commonly used pattern in Expression, LinkedMap, and GitTreeEntry. Furthermore, remove assignment operators for Expression and LinkedMap as those are considered to be used in an immutable manner anyway.
2022-06-13utils: Add DFAMinimizer for computing bisimulationsOliver Reiche
2022-06-13HashGenerator: Add global function for obtaining digestOliver Reiche
2022-06-13FileRoot: support content descriptionKlaus Aehlig
For some file roots, in particular git trees, we can give a complete selfcontained description of the content without accessing any external resources. For those, add a method to return such a complete description that will be used to compute the keys of content-defined repositories.
2022-06-13Include raw identifier to GitTreeKlaus Aehlig
In this way, we have it available when needed, e.g., to get identifers for file roots or to get whole trees as source artifacts.