From c096152953d7178566f8ae53b63154b5f2bbb177 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Tue, 25 Oct 2022 02:16:59 -0700 Subject: refactor(tvix/eval): rename Opcode::DataLocalIdx to DataStackIdx It is very confusing that this opcode is called DataLocalIdx, but it carries a StackIdx rather than a LocalIdx. It seems like this really ought to be called DataStackIdx, but maybe I've misunderstood; if so please explain it to me. Change-Id: I91f6ffa759412beef0b91d3c19ec0d873fe51b99 Signed-off-by: Adam Joseph Reviewed-on: https://cl.tvl.fyi/c/depot/+/7088 Reviewed-by: tazjin Tested-by: BuildkiteCI --- tvix/eval/src/compiler/mod.rs | 2 +- tvix/eval/src/opcode.rs | 2 +- tvix/eval/src/value/function.rs | 2 +- tvix/eval/src/vm.rs | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'tvix') diff --git a/tvix/eval/src/compiler/mod.rs b/tvix/eval/src/compiler/mod.rs index db6031e0a4f8..5be582fb281e 100644 --- a/tvix/eval/src/compiler/mod.rs +++ b/tvix/eval/src/compiler/mod.rs @@ -1031,7 +1031,7 @@ impl Compiler<'_> { if slot == idx { self.scope_mut().mark_must_thunk(slot); } - self.push_op(OpCode::DataLocalIdx(stack_idx), &upvalue.span); + self.push_op(OpCode::DataStackIdx(stack_idx), &upvalue.span); } } diff --git a/tvix/eval/src/opcode.rs b/tvix/eval/src/opcode.rs index 9c7ccb8d19d0..e05e91087a6f 100644 --- a/tvix/eval/src/opcode.rs +++ b/tvix/eval/src/opcode.rs @@ -172,7 +172,7 @@ pub enum OpCode { // // It is illegal for a `Data*` opcode to appear anywhere else. /// Populate a static upvalue by copying from the stack immediately. - DataLocalIdx(StackIdx), + DataStackIdx(StackIdx), /// Populate a static upvalue of a thunk by copying it the stack, but do /// when the thunk is finalised (by OpFinalise) rather than immediately. DataDeferredLocal(StackIdx), diff --git a/tvix/eval/src/value/function.rs b/tvix/eval/src/value/function.rs index e543b1aafd44..c9664112f1cd 100644 --- a/tvix/eval/src/value/function.rs +++ b/tvix/eval/src/value/function.rs @@ -51,7 +51,7 @@ pub struct Lambda { /// Number of upvalues which the code in this Lambda closes /// over, and which need to be initialised at /// runtime. Information about the variables is emitted using - /// data-carrying opcodes (see [`OpCode::DataLocalIdx`]). + /// data-carrying opcodes (see [`OpCode::DataStackIdx`]). pub(crate) upvalue_count: usize, pub(crate) formals: Option, } diff --git a/tvix/eval/src/vm.rs b/tvix/eval/src/vm.rs index c9b96fa61c34..c67e9f6d8899 100644 --- a/tvix/eval/src/vm.rs +++ b/tvix/eval/src/vm.rs @@ -734,7 +734,7 @@ impl<'o> VM<'o> { // Data-carrying operands should never be executed, // that is a critical error in the VM. - OpCode::DataLocalIdx(_) + OpCode::DataStackIdx(_) | OpCode::DataDeferredLocal(_) | OpCode::DataUpvalueIdx(_) | OpCode::DataCaptureWith => { @@ -813,7 +813,7 @@ impl<'o> VM<'o> { ) -> EvalResult<()> { for _ in 0..count { match self.inc_ip() { - OpCode::DataLocalIdx(StackIdx(stack_idx)) => { + OpCode::DataStackIdx(StackIdx(stack_idx)) => { let idx = self.frame().stack_offset + stack_idx; let val = match self.stack.get(idx) { @@ -823,8 +823,8 @@ impl<'o> VM<'o> { msg: "upvalue to be captured was missing on stack", metadata: Some(Rc::new(json!({ "ip": format!("{:#x}", self.frame().ip.0 - 1), - "stack_idx": stack_idx, - "absolute stack position": idx, + "stack_idx(relative)": stack_idx, + "stack_idx(absolute)": idx, }))), })) } -- cgit 1.4.1