summaryrefslogtreecommitdiffstats
path: root/crates
AgeCommit message (Collapse)Author
2024-04-27rebel-lang: Remove Clone from Scope and ContextMatthias Schiffer
2024-04-27rebel-lang: new crateMatthias Schiffer
Handle a lot of typechecking and evaluation of expressions.
2024-04-26rebel-parse: shorten type namesMatthias Schiffer
Make the names match the in-language identifiers. Also, avoid having a String type conflicting with the std one.
2024-04-26rebel-parse: ast: store string kind againMatthias Schiffer
We need the kind after all, as different string kinds will need different escaping for interpolation.
2024-04-26rebel-parse: tokenize: allow escaping '{' charactersMatthias Schiffer
2024-04-25rebel-parse: tokenize: allow whitespae in interpolated expressionsMatthias Schiffer
2024-04-25rebel-parse: parse-string: print "µs" instead of "us"Matthias Schiffer
2024-04-25rebel-parse: tokenize: add support for string interpolationMatthias Schiffer
2024-04-25rebel-parse: tokenize: handle escapes in regular stringsMatthias Schiffer
2024-04-25rebel-parse: token: represent string tokens as a Vec as wellMatthias Schiffer
2024-04-25rebel-parse: ast: represent strings as a Vec of piecesMatthias Schiffer
Pieces can be characters, escapes, or interpolated subexpressions.
2024-04-25rebel-parse: add support for !Copy tokensMatthias Schiffer
2024-04-25rebel-parse: use git version of pegMatthias Schiffer
Use the development version for now to take advantage of the latest performance improvements.
2024-04-25rebel-parse: ast: derive Eq for all typesMatthias Schiffer
2024-04-24rebel-parse: do not represent different string types in ASTMatthias Schiffer
2024-04-24rebel-parse: token: separate Number from String variantsMatthias Schiffer
2024-04-24rebel-parse: token: remove Ident structMatthias Schiffer
2024-04-23rebel-parse: use positional arguments for nowMatthias Schiffer
Keyword arguments need more design.
2024-04-23rebel-parse: introduce method calls as an Expr variantMatthias Schiffer
Methods and fields exist in separate namespaces.
2024-04-22rebel-parse: add benchmarkMatthias Schiffer
2024-04-22rebel-parse: separate tokenization stepMatthias Schiffer
2024-04-22rebel-parse: Initial RecipeLang parser implementationMatthias Schiffer
Parse a recipe into an AST. No span support yet.
2024-04-20Move rebel-parse dependency from rebel-resolve to rebelMatthias Schiffer
2024-04-20driver: parse: improve some rule and type names, order from high-level to ↵Matthias Schiffer
low-level
2024-04-20Introduce rebel-resolve moduleMatthias Schiffer
It would be nice to reduce the dependencies of the driver on the context further, so more of rebel-resolve can become private.
2024-04-20rebel: avoid thread-local for reading recipesMatthias Schiffer
This also disentangles dependencies between modules a bit.
2024-04-20Introduce TaskIDRef typeMatthias Schiffer
A borrowed version of a TaskID, allowing to avoid allocations in some places. Tasks are now stored in a two-level map in Context.
2024-04-20rebel: move parsing to a separate crateMatthias Schiffer
2024-04-20Reference local packages by their actual namesMatthias Schiffer
2024-04-20Rename directories to match crate namesMatthias Schiffer
2024-04-20Replace recipe separator with ::Matthias Schiffer
Make the single : usable for other syntax in the recipe language.
2024-04-19driver: rename task_setup() to task_preamble(), improve code styleMatthias Schiffer
Less and consistent indentation by turning the strings into consts.
2024-04-13Replace 'inherit' recipe field with 'parent'Matthias Schiffer
All occurrences of 'inherit' in the code are replaced with 'parent' or 'ancestors'.
2024-04-13driver: template: rename eval() to eval_sh(), eval_raw() to eval()Matthias Schiffer
Make eval() the simple version that doesn't perform any escaping.
2024-04-07runner: task: print detailed CPU usage for finished tasksMatthias Schiffer
2024-04-07driver: implement "soft" SIGINT handlingMatthias Schiffer
On the first SIGINT, spawning new tasks is disabled, but running tasks are allowed to finish. The second SIGINT will terminate the build immediately.
2024-04-07runner: detach from driver session/process groupMatthias Schiffer
We want signals like SIGINT to be handled by the driver process.
2024-04-06driver: add --keep-going flagMatthias Schiffer
2024-04-06driver: do not kill remaining tasks immediately on failureMatthias Schiffer
2024-04-06driver: recipe: add comment regarding file sortingMatthias Schiffer
2024-04-06driver: move RecipeMeta to recipe moduleMatthias Schiffer
2024-04-06driver: recipe: use separate structs for recipe and subrecipe readingMatthias Schiffer
Subrecipes don't have a meta section.
2024-04-06driver: add overrideable recipe name variableMatthias Schiffer
{{name}} defaults to {{basename}}, but can be overridden in the meta section.
2024-04-06driver: refactor CompletionState::task_deps()Matthias Schiffer
2024-04-05runner: task: do not pass INPUT_HASH in task environmentMatthias Schiffer
There is nothing useful that a task could do with the input hash that doesn't reduce reproducibility.
2024-04-05driver: recipe: let subrecipes inherit meta from parentMatthias Schiffer
2024-04-05driver: recipe: refactor recipe readingMatthias Schiffer
Preparation for reusing recipe meta for subrecipes.
2024-04-05driver: do not allow overriding basename, provide additional variables to tasksMatthias Schiffer
The variables {{recipename}} and {{recipe}} are now available in tasks. An overrideabe {{name}} (defaulting to {{basename}}) will be added in the future.
2024-04-04driver: resolve: limit number of reported errorsMatthias Schiffer
Reporting all dependency cycles may lead to a large number of errors in some cases, resulting in a long wait just for collecting the error data.
2024-04-04driver: add support for build.<name>.yml subrecipesMatthias Schiffer