Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-04-27 | rebel-lang: Remove Clone from Scope and Context | Matthias Schiffer | |
2024-04-27 | rebel-lang: new crate | Matthias Schiffer | |
Handle a lot of typechecking and evaluation of expressions. | |||
2024-04-26 | rebel-parse: shorten type names | Matthias Schiffer | |
Make the names match the in-language identifiers. Also, avoid having a String type conflicting with the std one. | |||
2024-04-26 | rebel-parse: ast: store string kind again | Matthias Schiffer | |
We need the kind after all, as different string kinds will need different escaping for interpolation. | |||
2024-04-26 | rebel-parse: tokenize: allow escaping '{' characters | Matthias Schiffer | |
2024-04-25 | rebel-parse: tokenize: allow whitespae in interpolated expressions | Matthias Schiffer | |
2024-04-25 | rebel-parse: parse-string: print "µs" instead of "us" | Matthias Schiffer | |
2024-04-25 | rebel-parse: tokenize: add support for string interpolation | Matthias Schiffer | |
2024-04-25 | rebel-parse: tokenize: handle escapes in regular strings | Matthias Schiffer | |
2024-04-25 | rebel-parse: token: represent string tokens as a Vec as well | Matthias Schiffer | |
2024-04-25 | rebel-parse: ast: represent strings as a Vec of pieces | Matthias Schiffer | |
Pieces can be characters, escapes, or interpolated subexpressions. | |||
2024-04-25 | rebel-parse: add support for !Copy tokens | Matthias Schiffer | |
2024-04-25 | rebel-parse: use git version of peg | Matthias Schiffer | |
Use the development version for now to take advantage of the latest performance improvements. | |||
2024-04-25 | rebel-parse: ast: derive Eq for all types | Matthias Schiffer | |
2024-04-24 | rebel-parse: do not represent different string types in AST | Matthias Schiffer | |
2024-04-24 | rebel-parse: token: separate Number from String variants | Matthias Schiffer | |
2024-04-24 | rebel-parse: token: remove Ident struct | Matthias Schiffer | |
2024-04-23 | rebel-parse: use positional arguments for now | Matthias Schiffer | |
Keyword arguments need more design. | |||
2024-04-23 | rebel-parse: introduce method calls as an Expr variant | Matthias Schiffer | |
Methods and fields exist in separate namespaces. | |||
2024-04-22 | rebel-parse: add benchmark | Matthias Schiffer | |
2024-04-22 | rebel-parse: separate tokenization step | Matthias Schiffer | |
2024-04-22 | rebel-parse: Initial RecipeLang parser implementation | Matthias Schiffer | |
Parse a recipe into an AST. No span support yet. | |||
2024-04-20 | Move rebel-parse dependency from rebel-resolve to rebel | Matthias Schiffer | |
2024-04-20 | driver: parse: improve some rule and type names, order from high-level to ↵ | Matthias Schiffer | |
low-level | |||
2024-04-20 | Introduce rebel-resolve module | Matthias 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-20 | rebel: avoid thread-local for reading recipes | Matthias Schiffer | |
This also disentangles dependencies between modules a bit. | |||
2024-04-20 | Introduce TaskIDRef type | Matthias 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-20 | rebel: move parsing to a separate crate | Matthias Schiffer | |
2024-04-20 | Reference local packages by their actual names | Matthias Schiffer | |
2024-04-20 | Rename directories to match crate names | Matthias Schiffer | |
2024-04-20 | Replace recipe separator with :: | Matthias Schiffer | |
Make the single : usable for other syntax in the recipe language. | |||
2024-04-19 | driver: rename task_setup() to task_preamble(), improve code style | Matthias Schiffer | |
Less and consistent indentation by turning the strings into consts. | |||
2024-04-13 | Replace 'inherit' recipe field with 'parent' | Matthias Schiffer | |
All occurrences of 'inherit' in the code are replaced with 'parent' or 'ancestors'. | |||
2024-04-13 | driver: 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-07 | runner: task: print detailed CPU usage for finished tasks | Matthias Schiffer | |
2024-04-07 | driver: implement "soft" SIGINT handling | Matthias 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-07 | runner: detach from driver session/process group | Matthias Schiffer | |
We want signals like SIGINT to be handled by the driver process. | |||
2024-04-06 | driver: add --keep-going flag | Matthias Schiffer | |
2024-04-06 | driver: do not kill remaining tasks immediately on failure | Matthias Schiffer | |
2024-04-06 | driver: recipe: add comment regarding file sorting | Matthias Schiffer | |
2024-04-06 | driver: move RecipeMeta to recipe module | Matthias Schiffer | |
2024-04-06 | driver: recipe: use separate structs for recipe and subrecipe reading | Matthias Schiffer | |
Subrecipes don't have a meta section. | |||
2024-04-06 | driver: add overrideable recipe name variable | Matthias Schiffer | |
{{name}} defaults to {{basename}}, but can be overridden in the meta section. | |||
2024-04-06 | driver: refactor CompletionState::task_deps() | Matthias Schiffer | |
2024-04-05 | runner: task: do not pass INPUT_HASH in task environment | Matthias Schiffer | |
There is nothing useful that a task could do with the input hash that doesn't reduce reproducibility. | |||
2024-04-05 | driver: recipe: let subrecipes inherit meta from parent | Matthias Schiffer | |
2024-04-05 | driver: recipe: refactor recipe reading | Matthias Schiffer | |
Preparation for reusing recipe meta for subrecipes. | |||
2024-04-05 | driver: do not allow overriding basename, provide additional variables to tasks | Matthias 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-04 | driver: resolve: limit number of reported errors | Matthias 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-04 | driver: add support for build.<name>.yml subrecipes | Matthias Schiffer | |