Perl 6
SMOP p6opaque Implementation: Revision 29

The p6opaque Responder Interface is the default responder for all Perl 6 objects, according to the SMOP OO API.

p6opaque Structure

I use 'repr' as class keyword here to indicate that this is not a real class, but the low-level reponder interface that intercepts the calls with the '^!' prefix. Everything else should be delegated to the metaclass instance.

repr p6opaque {
has $.^!instanceof is rw; # direct delegation of a single prototype, used by most object instances.
has $.^!WHENCE is rw; # autovivication closure, used by autovivification
has p6opaque_proto $!^!proto_storage handles *;
has Hash of Hash %.^!instance_storage is rw;
default ($ri, $identifier, $capture) {
$capture.invocant.^!how.dispatch($ri, $identifier, $capture);
}
bool method ^!defined {
self.^!instance_storage
}
}

repr p6opaque_proto {
has $.^!how is rw; # the metaclass instance in use
has $.^!who is rw; # the package implementing this prototype
has @.^!isa is rw; # an array of other protoypes
has @.^!does is rw; # an array of other prototypes
has %.^!storage is rw; # prototype storage (class variables)
has %.^!attributes is rw; # attribute definitions
has %.^!methods is rw; # methods by name
has %.^!submethods is rw; # submethods by name
has %.^!multimethods is rw; # hash of hash of method by name,capture
has %.^!multisubmethods is rw; # hash of hash of submethod by name,capture
}

Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

 
 
 
File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

 
 
 
Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.

Tag: 

Suggestions: