Go to the first, previous, next, last section, table of contents.


Loop Stacks

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.