NAME ^

src/inter_run.c - Parrot Interpreter - Run Ops and Methods

DESCRIPTION ^

Various functions that call the run loop.

Functions ^

void runops(Interp *interp, size_t offset)

Run parrot ops. Set exception handler and/or resume after exception.

parrot_context_t *Parrot_runops_fromc(Parrot_Interp interp, PMC *sub)

Runs the Parrot ops, called from C code. The function arguments are already setup according to Parrot calling conventions, the sub argument is an invocable Sub PMC.

void *Parrot_run_meth_fromc(Parrot_Interp, PMC *sub, PMC *obj, STRING *meth)

Run a method sub from C. The function arguments are already setup according to Parrot calling conventions, the sub argument is an invocable Sub PMC.

If registers a PMC return values, it is returned.

void *Parrot_runops_fromc_args(Parrot_Interp interp, PMC *sub, const char *sig, ...)

INTVAL Parrot_runops_fromc_args_reti(Parrot_Interp interp, PMC *sub, const char *sig, ...)

FLOATVAL Parrot_runops_fromc_args_retf(Parrot_Interp interp, PMC *sub, const char *sig, ...)

void *Parrot_runops_fromc_arglist(Parrot_Interp interp, PMC *sub, const char *sig, va_list args)

void *Parrot_run_meth_fromc_args(Parrot_Interp interp, PMC *sub, PMC *obj, STRING *meth, const char *sig, ...)

INTVAL Parrot_run_meth_fromc_args_reti(Parrot_Interp interp, PMC *sub, PMC *obj, STRING *meth, const char *sig, ...)

FLOATVAL Parrot_run_meth_fromc_args_retf(Parrot_Interp interp, PMC *sub, PMC *obj, STRING *meth, const char *sig, ...)

Run parrot ops, called from C code, function arguments are passed as va_args according to the signature. The sub argument is an invocable Sub PMC.

Signatures are similar to NCI:

    v ... void return
    I ... INTVAL (not Interpreter)
    N ... NUMVAL
    S ... STRING*
    P ... PMC*
void *Parrot_runops_fromc_args_event(Parrot_Interp interp, PMC *sub, const char *sig, ...)

Run code from within event handlers. This variant deals with some reentrency issues. It also should do sanity checks, if e.g. the handler subroutine didn't return properly.

SEE ALSO ^

include/parrot/interpreter.h, src/interpreter.c.


parrot