about summary refs log tree commit diff
path: root/tvix/eval/src/vm.rs
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2022-11-24T08·35-0800
committerclbot <clbot@tvl.fyi>2022-11-26T11·44+0000
commit0616976f7c4be17d375aefaa3df9ba8088bd57a0 (patch)
tree7837abc552c82209d72178f904bf0f8060f9b994 /tvix/eval/src/vm.rs
parent5eabadf06ce3c07978fcd59b978be398964e30c5 (diff)
feat(tvix/eval): wrap Closure::upvalues in Rc r/5324
See cl/7372; Nix equality semantics require the ability to track
pointer equality of upvalue-sets.

Signed-off-by: Adam Joseph <adam@westernsemico.com>
Change-Id: I82ba517499cf370189a80355e4e46a5caaab7153
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7373
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/eval/src/vm.rs')
-rw-r--r--tvix/eval/src/vm.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/tvix/eval/src/vm.rs b/tvix/eval/src/vm.rs
index 400d85adac..1ae97908e5 100644
--- a/tvix/eval/src/vm.rs
+++ b/tvix/eval/src/vm.rs
@@ -694,7 +694,8 @@ impl<'o> VM<'o> {
                 let mut upvalues = Upvalues::with_capacity(blueprint.upvalue_count);
                 self.populate_upvalues(upvalue_count, &mut upvalues)?;
                 self.push(Value::Closure(Closure::new_with_upvalues(
-                    upvalues, blueprint,
+                    Rc::new(upvalues),
+                    blueprint,
                 )));
             }