Muq supports the following kinds of loop stack stackframes (so far):
JOB_STACKFRAME_THUNK , pushed when starting evaluation of a thunk. JOB_STACKFRAME_NORMAL , pushed by a normal CALL or EXECUTE; JOB_STACKFRAME_CATCH , pushed by a CATCH{ } command. JOB_STACKFRAME_TAG , pushed by a TAG{ } command. JOB_STACKFRAME_TAGTOP , pushed by a TAG{ } command. JOB_STACKFRAME_LOCK , pushed while running with-lock-do{ ... code. JOB_STACKFRAME_LOCK_CHILD, pushed while running with-child-lock-do{ ... code. JOB_STACKFRAME_NULL , unwanted LOCK frames get changed to this. JOB_STACKFRAME_USER , pushed while running as-me{...}/as-user{...} code. JOB_STACKFRAME_PRIVS , pushed while running omnipotently-do{...} code. JOB_STACKFRAME_PROTECT, pushed while running after{ ... clause code. JOB_STACKFRAME_PROTECT_CHILD, pushed while running after-child-does{ ... JOB_STACKFRAME_THROW , pushed while running }always_do{ ... code in throw. JOB_STACKFRAME_ENDJOB , pushed while running }always_do{ ... code in endjob. JOB_STACKFRAME_EXEC , pushed while running }always_do{ ... code in exec. JOB_STACKFRAME_GOTO , pushed while running }always_do{ ... code in goto. JOB_STACKFRAME_RETURN , pushed while running }always_do{ ... code in return. JOB_STACKFRAME_JUMP , pushed while running }always_do{ ... code in jump. JOB_STACKFRAME_VANILLA, pushed while running }always_do{ ... code normally. JOB_STACKFRAME_RESTART, pushed by a ]with-restart-do{...} command. JOB_STACKFRAME_TMP_USER,pushed while running handlers. JOB_STACKFRAME_FUN_BIND,pushed when binding a function to a symbol. JOB_STACKFRAME_VAR_BIND,pushed when binding a value to a symbol. JOB_STACKFRAME_EPHEMERAL_LIST, pushed when storing one on stack. JOB_STACKFRAME_EPHEMERAL_STRUCT, pushed when storing one on stack. JOB_STACKFRAME_EPHEMERAL_VECTOR, pushed when storing one on stack.
Be warned that the stackframe types and layouts are far from finalized in Muq v -1.13.0: Count on significant changes in future releases.
Go to the first, previous, next, last section, table of contents.