| parrotcode: Parrot Interpreter | |
| Contents | PMCs |

src/pmc/parrotinterpreter.pmc - Parrot Interpreter

These are the vtable functions for the ParrotInterpreter base class
getinterp P0
set P1, P0[.IGLOBALS_*] # access interpreter globals
set I0, P0[x] # interpinfo I0, x
set I0, P0[-1] # get interpreter flags
set P0[-1], x # set flags on interpreter
# NOTE: this doesn't restart

void clone_interpreter(Parrot_Interp dest, const Parrot_Interp source, INTVAL flags)static void create_interp(PMC *self, Parrot_Interp parent)parent.
void class_init()void init()void init_pmc(PMC *parent)*parent if parent is a ParrotInterpreter instance. Otherwise takes the thread ID from parent and uses that thread.void set_pointer(void *value)struct_val to *value.void *get_pointer()struct_val.INTVAL get_integer()opcode_t *invoke(void *next)PMC *get_pmc_keyed_int(INTVAL key)key.PMC *get_pmc_keyed(PMC *key)key can be: "sub" ... return Sub object of this subroutine
"continuation" ... return Continuation PMC
"lexpad" ... return lexpad PMC for this sub
"namespace" ... return namespace PMC for this sub
"outer" ... return outer sub of this closure
"<item>"; level ... same for caller <level>
"outer"; "<item>" ... same for outer level 1
"outer"; "<item>"; level ... same for outer <level>
"globals" ... return global stash
INTVAL get_integer_keyed_int(INTVAL key)key.void set_integer_keyed_int(INTVAL key, INTVAL val)key to val.PMC *clone()Parrot_clone() and use freeze/thaw.INTVAL is_equal(PMC *val)*val.void visit(visit_info *info)*info is the visit info, (see include/parrot/pmc_freeze.h).void freeze(visit_info *info)void thaw(visit_info *info)void thawfinish(visit_info *info)
|
|
|