feat: lookup at downgrade time
works, but leaks memory
This commit is contained in:
@@ -16,6 +16,8 @@ pub enum OpCode {
|
||||
Const { idx: usize },
|
||||
/// load a dynamic var onto stack
|
||||
LookUp { sym: usize },
|
||||
/// load a var from let binding onto stack
|
||||
LookUpLet { level: usize, idx: usize },
|
||||
/// load a thunk lazily onto stack
|
||||
LoadThunk { idx: usize },
|
||||
/// load a thunk value onto stack
|
||||
@@ -31,6 +33,8 @@ pub enum OpCode {
|
||||
Call,
|
||||
/// make a function
|
||||
Func { idx: usize },
|
||||
/// load a function argument
|
||||
Arg { level: usize },
|
||||
|
||||
/// consume 1 element, assert TOS is true
|
||||
Assert,
|
||||
@@ -43,14 +47,14 @@ pub enum OpCode {
|
||||
/// push an empty attribute set onto stack
|
||||
AttrSet { cap: usize },
|
||||
/// finalize the recursive attribute set at TOS
|
||||
FinalizeRec,
|
||||
FinalizeLet,
|
||||
/// [ .. set value ] consume 1 element, push a static kv pair (`name`, `value`) into `set`
|
||||
PushStaticAttr { name: usize },
|
||||
/// [ .. set name value ] consume 2 elements, push a dynamic kv pair (`name`, `value`) in to `set`
|
||||
PushDynamicAttr,
|
||||
|
||||
/// push an empty list onto stack
|
||||
List,
|
||||
List { cap: usize },
|
||||
/// [ .. list elem ] consume 1 element, push `elem` into `list`
|
||||
PushElem,
|
||||
|
||||
@@ -75,8 +79,6 @@ pub enum OpCode {
|
||||
SelectDynamic,
|
||||
/// [ .. set sym default ] select `sym` from `set` or `default`
|
||||
SelectDynamicOrDefault,
|
||||
/// enter the let environment of the attribute set at TOS
|
||||
EnterLetEnv,
|
||||
/// enter the with environment of the attribute set at TOS
|
||||
EnterWithEnv,
|
||||
/// exit current envrironment
|
||||
|
||||
Reference in New Issue
Block a user