snix/tvix/eval/src
Vincent Ambo 80713f207e refactor(tvix/eval): encapsulate all thunk-forcing logic in module
The VM previously took care of repeatedly forcing a thunk until it
reached an evaluated state. This logic is now encapsulated inside of
the `Thunk::force` implementation.

In addition, force no longer returns a reference to the value by
default, leaving it up to callers to decide whether they want to
borrow the value or not (a helper is provided for this).

Change-Id: I2aa7da922058ad1c57fbf8bfc7785aab7971c02b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6365
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-09-07 15:25:59 +00:00
..
builtins fix(tvix/eval): address all current clippy lints 2022-09-03 00:47:58 +00:00
compiler feat(tvix/eval): construct attribute sets lazily 2022-09-07 15:25:59 +00:00
tests feat(tvix/eval): construct attribute sets lazily 2022-09-07 15:25:59 +00:00
value refactor(tvix/eval): encapsulate all thunk-forcing logic in module 2022-09-07 15:25:59 +00:00
chunk.rs refactor(tvix/eval): return a lambda from the compiler 2022-09-01 21:56:17 +00:00
disassembler.rs fix(tvix/eval): avoid recomputing width in disassemble_op constantly 2022-09-07 15:25:59 +00:00
errors.rs feat(tvix/eval): implement OpForce in VM 2022-09-07 15:25:59 +00:00
eval.rs chore(tvix/eval): print node representation for compiler errors 2022-09-03 21:55:04 +00:00
lib.rs refactor(tvix/eval): introduce UpvalueCarrier trait 2022-09-06 14:58:52 +00:00
main.rs refactor(tvix/eval): explicitly discard uninteresting results 2022-09-03 13:19:48 +00:00
opcode.rs feat(tvix/eval): implement OpForce in VM 2022-09-07 15:25:59 +00:00
upvalues.rs refactor(tvix/eval): introduce UpvalueCarrier trait 2022-09-06 14:58:52 +00:00
vm.rs refactor(tvix/eval): encapsulate all thunk-forcing logic in module 2022-09-07 15:25:59 +00:00
warnings.rs feat(tvix/eval): emit warnings when globals are being shadowed 2022-09-02 12:59:23 +00:00