| parrotcode sub PMC | |
| Docs | FAQ | Download | Examples | Talks | Resources | Perl 6 | Languages | Who's Who | Donors | Cage Cleaners | Wiki | |
src/pmc/sub.pmc - Subroutine
These are the vtable functions for the Sub (subroutine) base class
void init()Initializes the subroutine.
void destroy()Destroys the subroutine.
STRING *get_string()Returns the name of the subroutine.
void set_string_native(STRING *subname)Sets the name of the subroutine.
void set_pointer(void *value)Sets the pointer to the actual subroutine.
*** Don't use that - use .Sub constants instead ***
void *get_pointer()Returns the address of the actual subroutine.
INTVAL get_integer_keyed(PMC *key)This just unconditionally returns the start of bytecode. It's wrong, wrong, wrong, *WRONG*. And there's no other good way, so it's here for now. -DRS
INTVAL defined()
INTVAL get_bool()Returns True.
opcode_t *invoke(void *next)Invokes the subroutine.
PMC *clone()Creates and returns a clone of the subroutine.
void assign_pmc(PMC *other)Set SELF to the data in other.
void mark()Marks the sub as live.
INTVAL is_equal(PMC *value)Returns whether the two subroutines are equal.
void visit(visit_info *info)This is used by freeze/thaw to visit the contents of the sub.
void freeze(visit_info *info)Archives the subroutine.
void thaw(visit_info *info)Unarchives the subroutine.
PMC *inspect()Returns the full set of meta-data about the sub.
PMC *inspect_str(STRING *what)Returns the specified item of metadata about the sub. Allowable values are:
The number of required positional arguments
The number of optional positional arguments
The number of required named arguments
The number of optional named arguments
1 if it takes slurpy positional arguments, 0 if not
1 if it takes slurpy named arguments, 0 if not
PMC *get_namespace()Return the namespace PMC, where the Sub is defined.
TODO return namespace_stash instead.
INTVAL __get_regs_used(char *kind)Return amount of used registers for register kinds "I", "S", "P", "N".
PMC *get_lexinfo()Return the LexInfo PMC, if any or a Null PMC.
PMC *get_multisig()Return the MMD signature PMC, if any or a Null PMC.
PMC *get_outer()Gets the sub that is the outer of this one, if any or a Null PMC.
void set_outer(PMC *outer)Sets the sub that is the outer of this one.
INTVAL arity()Return the arity of the Sub (the number of arugments, excluding optional and slurpy arguments).
|
Perl.org sites
: bugs
| dev
| history
| jobs
| learn
| lists
| use
Site Information and Contacts |
|