snix/tvix/eval/src
Vincent Ambo 7cfdedfdfb feat(tvix/eval): compile with expression
Adds an additional structure to the compiler's scope to track the
runtime "with stack", i.e. the stack of values through which
identifiers should be dynamically resolved within a with-scope.

When encountering a `with` expression, the value from which the
bindings should be resolved is pushed onto the stack and tracked by
the compiler in the "with stack", as well as with a "phantom value"
which indicates that the stack contains an additional slot which is
not available to users via identifiers.

Runtime handling of this is not yet implemented.

Change-Id: I5e96fb55b6378e8e2a59c20c8518caa6df83da1c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6217
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-08-31 22:26:11 +00:00
..
tests feat(tvix/eval): implement inherit in let expressions 2022-08-31 22:10:40 +00:00
value fix(tvix/eval): allow use of ? operator on non-set types 2022-08-30 17:13:27 +00:00
chunk.rs feat(tvix/eval): implement chunk disassembler output 2022-08-30 16:53:40 +00:00
compiler.rs feat(tvix/eval): compile with expression 2022-08-31 22:26:11 +00:00
disassembler.rs feat(tvix/eval): implement chunk disassembler output 2022-08-30 16:53:40 +00:00
errors.rs refactor(tvix/eval): remove Error::InvalidKeyType 2022-08-30 17:13:27 +00:00
eval.rs fix(tvix/eval): address various clippy lints 2022-08-30 16:53:40 +00:00
lib.rs feat(tvix/eval): implement optional runtime tracing 2022-08-30 16:53:40 +00:00
main.rs fix(tvix/eval): gently attempt to create state dir 2022-08-31 22:10:40 +00:00
opcode.rs feat(tvix/eval): compile with expression 2022-08-31 22:26:11 +00:00
vm.rs feat(tvix/eval): compile with expression 2022-08-31 22:26:11 +00:00
warnings.rs docs(tvix/eval): Use correct syntax for module doc comments 2022-08-30 17:13:27 +00:00