tvl-depot/tvix/eval/src
Vincent Ambo 0f739cd944 feat(tvix/eval): implement scope poisoning for true/false/null
These tokens are optionally parsed as identifiers by Nix, which means
that within any scopes that resolve them the compiler needs to track
whether they have been overridden to know whether to emit the literal
instructions or resolve a variable.

This is implemented by a new concept of "scope poisoning", where the
compiler's scope structure tracks whether or not any builtin
identifiers have been overridden.

Change-Id: I3ab711146e229f843f6e1f0343385382ee0aecb6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6227
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
2022-08-31 22:42:48 +00:00
..
tests feat(tvix/eval): implement scope poisoning for true/false/null 2022-08-31 22:42:48 +00:00
value feat(tvix/eval): add Value::as_attrs method 2022-08-31 22:26:11 +00:00
chunk.rs feat(tvix/eval): implement chunk disassembler output 2022-08-30 16:53:40 +00:00
compiler.rs feat(tvix/eval): implement scope poisoning for true/false/null 2022-08-31 22:42:48 +00:00
disassembler.rs feat(tvix/eval): implement chunk disassembler output 2022-08-30 16:53:40 +00:00
errors.rs chore(tvix/eval): return parse errors out of eval::interpret 2022-08-31 22:42:48 +00:00
eval.rs chore(tvix/eval): return parse errors out of eval::interpret 2022-08-31 22:42:48 +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): Implement OpResolveWith instruction 2022-08-31 22:26:11 +00:00
vm.rs feat(tvix/eval): Implement OpResolveWith instruction 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