object.ops
Parrot's library of object ops
- callmethodcc(invar PMC,
in STR)
- Call method $2 with invocant $1 and generate a new return continuation.
The invocant ($1) is used for method lookup.
The object is passed as the first argument in set_args.
- Throws a Method_Not_Found_Exception for a non-existent method.
- callmethodcc(invar PMC,
invar PMC)
- Like above but use the Sub object $2 as method.
- callmethod(invar PMC,
in STR,
invar PMC)
- callmethod(invar PMC,
invar PMC,
invar PMC)
- Like above,
but use continuation $3 instead of creating a new continuation.
- tailcallmethod(invar PMC,
in STR)
- tailcallmethod(invar PMC,
invar PMC)
- Make a tailcall to method $2 with invocant $1.
- fetchmethod(out PMC,
invar PMC,
in STR)
- Find the method $3 for object $2 and put it in $1.
Throws a Method_Not_Found_Exception for a non-existent method.
The returned PMC may be outdated,
when the call is actually performed and changes to the underlying classes where made.
- addmethod(invar PMC,
in STR,
invar PMC)
- Adds $3 as a method named $2 to $1.
- can(out INT,
invar PMC,
in STR)
- Sets $1 to true or false,
depending on whether $2 ->can the method in $3.
- does(out INT,
invar PMC,
in STR)
- Sets $1 to true or false,
depending on whether $2 ->does the interface in $3.
- See "build/pmc2c.pl" in tools for a list of available interfaces.
- isa(out INT,
invar PMC,
in STR)
- isa(out INT,
invar PMC,
in PMC)
- Sets $1 to true or false,
depending on whether $2 isa $3.
- newclass(out PMC,
in STR)
- Creates a new Parrot-style class,
named $2,
and puts the new PMC for it into $1.
- newclass(out PMC,
in PMC)
- Create a new Parrot-style class,
with the hierachical name given in $2.
- subclass(out PMC,
invar PMC)
- subclass(out PMC,
invar PMC,
in STR)
- subclass(out PMC,
invar PMC,
in PMC)
- KLUDGE ALERT - OPCODE NAME SHOULD DIFFER FROM BELOW - XXX FIXME
- Create a new class,
put in $1,
that is a subclass of $2.
$3,
if available and not null,
is the name of the new class--if not,
the subclass is an anonymous subclass.
- subclass(out PMC,
inconst PMC)
- subclass(out PMC,
inconst PMC,
in STR)
- subclass(out PMC,
inconst PMC,
in PMC)
- subclass(out PMC,
in STR)
- subclass(out PMC,
in STR,
in STR)
- subclass(out PMC,
in STR,
in PMC)
- KLUDGE ALERT - OPCODE NAME SHOULD DIFFER FROM ABOVE - XXX FIXME
- Create a new class,
put in $1,
that is a subclass of the class named $2.
$3,
if available and not null,
is the name of the new class--if not,
the subclass is an anonymous subclass.
- getclass(out PMC,
in STR)
- getclass(out PMC,
in PMC)
- Find the PMC for a class,
by name.
- singleton(invar PMC) (unimplemented)
- Take the object in $1 and put it into its own singleton class,
which is an anonymous subclass of the object's current class.
- class(out PMC,
invar PMC)
- Get the class PMC for the object in $2 and put it in $1.
- classname(out STR,
invar PMC)
- Get the class name for the class in $2 and put it in $1.
- addparent(invar PMC,
invar PMC)
- Add class $2 to the list of parent classes for $1.
- removeparent(invar PMC,
invar PMC)
- Remove class $2 from class $1's list of parents.
- addattribute(invar PMC,
in STR)
- Add the attribute named $2 to the class $1.
- removeattribute(invar PMC,
in STR) (unimplemented)
- removeattribute(invar PMC,
in INT) (unimplemented)
- Remove attribute $2 from class $1,
specified either by name or offset.
- getattribute(out PMC,
invar PMC,
in INT)
- getattribute(out PMC,
invar PMC,
in STR)
- Get attribute number $3 from object $2 and put the result in $1.
String attribute names have to be fully qualified.
- setattribute(invar PMC,
in INT,
invar PMC)
- setattribute(invar PMC,
in STR,
invar PMC)
- Set attribute $2 of object $1 to $3
- classoffset(out INT,
invar PMC,
in STR)
- Returns the offset of the first attribute for class $3 in object $2.
Throws an exception if $3 isn't in $2's hierarchy.
- adddoes(invar PMC,
in STR) (unimplemented)
- Add $2 to the list of interfaces that this class claims to implement.
- removedoes(invar PMC,
in STR) (unimplemented)
- Remove $2 from the list of interfaces that this class claims to implement.
Copyright (C) 2001-2004,
The Perl Foundation.
This program is free software.
It is subject to the same license as the Parrot interpreter itself.