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 <adam@westernsemico.com>
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7088
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This commit is contained in:
Adam Joseph 2022-10-25 02:16:59 -07:00
parent 8240b2959e
commit c096152953
4 changed files with 7 additions and 7 deletions

View file

@ -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);
}
}

View file

@ -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),

View file

@ -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<Formals>,
}

View file

@ -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,
}))),
}))
}