NAME ^

src/sub.c - Subroutines

DESCRIPTION ^

Subroutines, continuations, co-routines and other fun stuff...

Functions ^

void mark_context

Marks the context *ctx.

Parrot_sub *new_sub

Returns a new Parrot_sub.

Parrot_sub *new_closure

Returns a new Parrot_sub with its own sctatchpad.

XXX: Need to document semantics in detail.

Parrot_cont *new_continuation

Returns a new Parrot_cont to the context of to with its own copy of the current interpreter context. If to is NULL, then the to_ctx is set to the current context.

Parrot_cont *new_ret_continuation

Returns a new Parrot_cont pointing to the current context.

Parrot_coro *new_coroutine

Returns a new Parrot_coro.

XXX: Need to document semantics in detail.

PMC *new_ret_continuation_pmc

Returns a new RetContinuation PMC. Uses one from the cache, if possible; otherwise, creates a new one.

void invalidate_retc_context

Make true Continuations from all RetContinuations up the call chain.

STRING *Parrot_full_sub_name

Return namespace, name, and location of subroutine.

int Parrot_Context_get_info

Takes pointers to a context and its information table. Populates the table and returns 0 or 1. XXX needs explanation Used by Parrot_Context_infostr.

STRING *Parrot_Context_infostr

Formats context information for display. Takes a context pointer and returns a pointer to the text. Used in debug.c and warnings.c

PMC *Parrot_find_pad

Locate the LexPad containing the given name. Return NULL on failure.

PMC *parrot_new_closure

Used where? XXX

Creates a new closure, saving the context information. Takes a pointer to a subroutine.

Returns a pointer to the closure, (or throws exceptions if invalid).

SEE ALSO ^

include/parrot/sub.h.

HISTORY ^

Initial version by Melvin on 2002/06/6.


parrot