Author: allison
Date: Sun Apr  1 19:55:18 2007
New Revision: 17940

Modified:
   trunk/docs/pdds/draft/pdd04_datatypes.pod
   trunk/docs/pdds/draft/pdd15_objects.pod

Log:
[pdd]: Add notes about subclassing low-level PMCs as high-level objects.


Modified: trunk/docs/pdds/draft/pdd04_datatypes.pod
==============================================================================
--- trunk/docs/pdds/draft/pdd04_datatypes.pod   (original)
+++ trunk/docs/pdds/draft/pdd04_datatypes.pod   Sun Apr  1 19:55:18 2007
@@ -199,7 +199,7 @@
 more) types of PMC, while particular Python datatypes will map onto different
 types of PMC.
 
-=head2 VTABLE OVERLOADING
+=head2 Vtable Overloading
 
 PMCs may declare vtable methods. The following list details the raw method 
names:
 
@@ -574,6 +574,11 @@
 =back
 
 
+=head2 Interaction between PMCs and high-level objects
+
+{{ Address the problem of high-level objects inheriting from low-level PMCs,
+and any structural changes to low-level PMCs that might require. }}
+
 
 =head1 ATTACHMENTS
 

Modified: trunk/docs/pdds/draft/pdd15_objects.pod
==============================================================================
--- trunk/docs/pdds/draft/pdd15_objects.pod     (original)
+++ trunk/docs/pdds/draft/pdd15_objects.pod     Sun Apr  1 19:55:18 2007
@@ -119,13 +119,15 @@
 
 =item - Objects can fetch their class
 
+=item - Objects can get an attribute by name
+
+=item - Objects can set an attribute by name
+
 =item - Objects can be subclassed (note that objects may not necessarily
 be able to have their classes changed arbitrarily, but making a subclass
 and moving the object to it is allowable)
 
-=item - Objects can get an attribute by name
-
-=item - Objects can set an attribute by name
+=item - High-level objects can subclass low-level PMCs
 
 =back
 
@@ -345,6 +347,12 @@
 required positional parameter, and the optional named parameters C<exclude>
 and C<alias>; see L<Role Conflict Resolution> for more details.
 
+=item subclass
+
+  $P1 = $P2.subclass($S3)
+
+Create a subclass of $P2 with name $S3 and return it in $P1.
+
 =item isa
 
   $I1 = $P2.isa($S3)
@@ -405,7 +413,6 @@
 and no Namespace object referencing it (to mark it as live). When a
 class is garbage collected, it should remove itself from the registry.
 
-
 =head2 Object PMC API
 
 C<Object> PMCs are the actual objects, and hold all the per-object
@@ -574,7 +581,7 @@
 implement them.
 
 When declaring a composed class, you can optionally supply an array of
-method names that will be supplied by the class because of a conflict in
+method names that will be defined by the class to resolve a conflict in
 its roles.  This is done using the named parameter C<resolve>. This
 feature supports composition conflict resolution in languages such as
 Perl 6.
@@ -663,7 +670,9 @@
 
   $P1 = subclass $P2, $S3
 
-Create a new class, named $S3, which has $P2 as its immediate parent.
+Create a new class, named $S3, which has $P2 as its immediate parent. $P2 may
+be either another high-level class based on the Class PMC, or it may be a
+low-level PMC such as C<Integer> or C<ResizablePMCArray>.
 
 =item get_class
 
@@ -1036,17 +1045,7 @@
 
 Should we have a super or next opcode?
 
-=head1 NOTES
-
-=head2 Interaction with PMCs
-
-The interaction between objects and PMCs is currently underspecified.
-
-{{ Question: Does anyone remember what this note was about? Was it the
-problem of high-level objects that inherit from low-level PMC objects?
-}}
-
-
+{{ Shouldn't that be a super or next method call instead? }}
 
 =head2 Translation
 

Reply via email to