NAME ^

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

DESCRIPTION ^

Various functions that call the run loop.

Functions ^

void runops(PARROT_INTERP, size_t offs)

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

PARROT_API PARROT_IGNORABLE_RESULT PARROT_CANNOT_RETURN_NULL parrot_context_t *Parrot_runops_fromc(PARROT_INTERP, NOTNULL(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.

PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL static parrot_context_t *runops_args(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(PMC *obj), SHIM(STRING *meth), NOTNULL(const char *sig), va_list ap)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT PARROT_CAN_RETURN_NULL void *Parrot_run_meth_fromc(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(PMC *obj), SHIM(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.

PARROT_API PARROT_IGNORABLE_RESULT PARROT_CAN_RETURN_NULL PMC *Parrot_runops_fromc_args(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(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*
PARROT_API PARROT_IGNORABLE_RESULT PARROT_CAN_RETURN_NULL void *Parrot_runops_fromc_args_event(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(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.

PARROT_API PARROT_IGNORABLE_RESULT INTVAL Parrot_runops_fromc_args_reti(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(const char *sig), ...)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT FLOATVAL Parrot_runops_fromc_args_retf(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(const char *sig), ...)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT PARROT_CAN_RETURN_NULL void *Parrot_run_meth_fromc_args(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(PMC *obj), NOTNULL(STRING *meth), NOTNULL(const char *sig), ...)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT INTVAL Parrot_run_meth_fromc_args_reti(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(PMC *obj), NOTNULL(STRING *meth), NOTNULL(const char *sig), ...)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT FLOATVAL Parrot_run_meth_fromc_args_retf(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(PMC *obj), NOTNULL(STRING *meth), NOTNULL(const char *sig), ...)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT PARROT_CAN_RETURN_NULL void *Parrot_runops_fromc_arglist(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(const char *sig), va_list args)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT INTVAL Parrot_runops_fromc_arglist_reti(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(const char *sig), va_list args)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT FLOATVAL Parrot_runops_fromc_arglist_retf(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(const char *sig), va_list args)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT PARROT_CAN_RETURN_NULL void *Parrot_run_meth_fromc_arglist(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(PMC *obj), NOTNULL(STRING *meth), NOTNULL(const char *sig), va_list args)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT PARROT_CAN_RETURN_NULL INTVAL Parrot_run_meth_fromc_arglist_reti(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(PMC *obj), NOTNULL(STRING *meth), NOTNULL(const char *sig), va_list args)

TODO: Not yet documented!!!

PARROT_API PARROT_IGNORABLE_RESULT FLOATVAL Parrot_run_meth_fromc_arglist_retf(PARROT_INTERP, NOTNULL(PMC *sub), NOTNULL(PMC *obj), NOTNULL(STRING *meth), NOTNULL(const char *sig), va_list args)

TODO: Not yet documented!!!

SEE ALSO ^

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


parrot