TITLE ^

Object - Perl 6 Object class

DESCRIPTION ^

This file sets up the base classes and methods for Perl 6's object system. Differences (and conflicts) between Parrot's object model and the Perl 6 model means we have to do a little name and method trickery here and there, and this file takes care of much of that.

Functions ^

onload()

Perform initializations and create the base classes.

make_proto(class [, 'name'=>name] )

Create protoobjects and mappings for class, using name as the Perl 6 name for the class. The class argument can be a Parrot Class object, or anything that will obtain a Parrot class via the get_class opcode.

Object methods ^

new()

Create a new object having the same class as the invocant.

isa($class)

Returns true if the invocant is of type $class.

WHAT()

Return the invocant's protoobject.

HOW()

Return the invocant's metaclass object (in Parrot, this is the class object for the invocant).

Protoobject methods ^

Protoobjects are described in Synopsis 12, these are objects that are "empty" instances that differ in definedness and how they respond to certain methods.

get_string() (vtable method)

Returns the short name of the class (prototype objects stringify to the short name).

defined() (vtable method)

Returns false (prototype objects evaluate as undef).

HOW()

Returns the metaclass (Parrot class) of the protoobject.

WHAT()

Returns the invocant's protoobject, which in the case of a protoobject is just itself.


parrot