about summary refs log tree commit diff
path: root/nix/sparseTree
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-09-03T00·20+0300
committertazjin <tazjin@tvl.su>2022-09-08T19·54+0000
commit23f248b530bedc556123033519514e03b1a8278f (patch)
tree351dccab6c26a46ee8b9344debc102e7c46783b3 /nix/sparseTree
parent4e24bd56b47b2b5d7bc588d536b881ccff9ed8aa (diff)
fix(tvix/eval): set up root stack slot in closures & thunks r/4759
Similar to setting up a phantom slot when compiling the root value of
a file, closures and thunks need to have a phantom stack slot for the
root of the expression yielded by their thunk to make all accounting
work correctly.

The tricky thing here is that closures & thunks *escape* their inner
lambda context (that's the point!), so the functions emitting them
need to know both the *inner* slot (to resolve everything correctly
while compiling the slot) and the *outer* slot (to correctly emit
instructions for closing over upvalues).

Change-Id: I62ac58e2f639c4b9e09cc702bdbfd2373e985d7f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6426
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Diffstat (limited to 'nix/sparseTree')
0 files changed, 0 insertions, 0 deletions