NAME
src/sub.c - Subroutines
DESCRIPTION
Subroutines, continuations, co-routines and other fun stuff...
Functions
void mark_context_start
Indicate that a new round of context marking is about to take place.
void mark_context
Marks the context Parrot_sub *new_sub
Returns a new Parrot_sub *new_closure
Returns a new Parrot_cont *new_continuation
Returns a new Parrot_cont *new_ret_continuation
Returns a new Parrot_coro *new_coroutine
Returns a new PMC *new_ret_continuation_pmc
Returns a new 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.
void Parrot_capture_lex
Capture the current lexical environment of a sub.
PMC *parrot_new_closure
Used where?
XXXCreates a new closure,
saving the context information.
Takes a pointer to a subroutine.Returns a pointer to the closure,
(or throws exceptions if invalid).
void Parrot_continuation_check
Verifies that the provided continuation is sane.
void Parrot_continuation_rewind_environment
Restores the appropriate context for the continuation.
Parrot_sub *Parrot_get_sub_pmc_from_subclass
Gets a Parrot_sub structure from something that isn't a Sub PMC,
but rather a subclass.
*ctx
.
Parrot_sub
.
Parrot_sub
with its own sctatchpad.XXX: Need to document semantics in detail.
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
pointing to the current context.
Parrot_coro
.XXX: Need to document semantics in detail.
RetContinuation
PMC.
Uses one from the cache,
if possible; otherwise,
creates a new one.
SEE ALSO
include/parrot/sub.h.
HISTORY
Initial version by Melvin on 2002/06/6.