NAME

src/pmc/eval.pmc - Dynamic code evaluation

DESCRIPTION

Eval extends Sub to provide eval-like dynamic code evaluation and execution.

Vtable functions

void init()
Initializes a new empty Eval.
void destroy()
Destroy the Eval and its associated bytecode.
void mark()
Mark this Eval.
void *get_pointer()
Returns the address of the associated packfile.
opcode_t *invoke(void *next)
Invokes the first subroutine in the eval code.
STRING *get_string
Get a STRING representing the bytecode for this code segment, suitable for writing to disc and later loading via load_bytecode.
PMC *get_pmc_keyed_int(INTVAL key)
Returns the Sub PMC of the element at index key or PMCNULL.
void freeze(PMC *info)
Archives the evaled code
void thaw(PMC *info)
Unarchives the code.

Methods

get_main()
Return the main sub, if any, null PMC otherwise.

Auxiliar functions

static PMC* get_sub(PARROT_INTERP, PMC *self, int idx)
static void mark_ct(PARROT_INTERP, PMC *self)