tvl-depot/tvix/eval/docs
Vincent Ambo 2246a31e72 refactor(tvix/eval): return call frame result from VM::call
Previously, "calling" (setting up the VM run loop for executing a call
frame) and "running" (running this loop to completion) were separate
operations.

This was basically an attempt to avoid nesting `VM::run` invocations.
However, doing things this way introduced some tricky bugs for exiting
out of the call frames of thunks vs. builtins & closures.

For now, we unify the two operations and always return the value to
the caller directly. For now this makes calls a little less effective,
but it gives us a chance to nail down some other strange behaviours
and then re-optimise this afterwards.

To make sure we tackle this again further down I've added it to the
list of known possible optimisations.

Change-Id: I96828ab6a628136e0bac1bf03555faa4e6b74ece
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6415
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-09-08 12:53:20 +00:00
..
builtins.md docs(tvix/eval): pad pure column so it can fit "false" 2022-09-04 21:05:57 +00:00
known-optimisation-potential.md refactor(tvix/eval): return call frame result from VM::call 2022-09-08 12:53:20 +00:00
opcodes-attrsets.md docs(tvix/eval): add design documentation for attrset opcodes 2022-08-13 15:31:50 +00:00