about summary refs log tree commit diff
path: root/tvix/eval/src/compiler/scope.rs
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-09-06T20·13+0300
committertazjin <tazjin@tvl.su>2022-09-11T12·26+0000
commit07ea30370e887b16228af0dccbe126010cce9e25 (patch)
treead5c3920c489dc0720ea778a63d7bb971889a886 /tvix/eval/src/compiler/scope.rs
parentd75b207a63492cb120bcdd918fcc4178dca2bc36 (diff)
refactor(tvix/eval): capture entire with_stack in upvalues r/4801
This completely rewrites the handling of "dynamic upvalues" to,
instead of resolving them at thunk/closure instantiation time (which
forces some values too early), capture the entire with stack of parent
contexts if it exists.

There are a couple of things in here that could be written more
efficiently, but I'm first working through this to get to a bug
related to with + recursion and the code complexity of some of the
optimisations is distracting.

Change-Id: Ia538e06c9146e3bf8decb9adf02dd726d2c651cf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6486
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Diffstat (limited to 'tvix/eval/src/compiler/scope.rs')
-rw-r--r--tvix/eval/src/compiler/scope.rs13
1 files changed, 0 insertions, 13 deletions
diff --git a/tvix/eval/src/compiler/scope.rs b/tvix/eval/src/compiler/scope.rs
index ca8512d409..e69922a330 100644
--- a/tvix/eval/src/compiler/scope.rs
+++ b/tvix/eval/src/compiler/scope.rs
@@ -15,8 +15,6 @@ use std::{
     ops::Index,
 };
 
-use smol_str::SmolStr;
-
 use crate::opcode::{StackIdx, UpvalueIdx};
 
 #[derive(Debug)]
@@ -102,17 +100,6 @@ pub enum UpvalueKind {
 
     /// This upvalue captures an enclosing upvalue.
     Upvalue(UpvalueIdx),
-
-    /// This upvalue captures a dynamically resolved value (i.e.
-    /// `with`).
-    ///
-    /// It stores the identifier with which to perform a dynamic
-    /// lookup, as well as the optional upvalue index in the enclosing
-    /// function (if any).
-    Dynamic {
-        name: SmolStr,
-        up: Option<UpvalueIdx>,
-    },
 }
 
 #[derive(Clone, Debug)]