Author: larry
Date: Sat May 19 09:06:10 2007
New Revision: 14394

Modified:
   doc/trunk/design/syn/S12.pod

Log:
"basal" was not intuitive, changed to "super"
"use optimize" is too long and not specific enough
now turn on class closing and finalization with "use oo :closed :final"


Modified: doc/trunk/design/syn/S12.pod
==============================================================================
--- doc/trunk/design/syn/S12.pod        (original)
+++ doc/trunk/design/syn/S12.pod        Sat May 19 09:06:10 2007
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall <[EMAIL PROTECTED]>
   Date: 27 Oct 2004
-  Last Modified: 14 May 2007
+  Last Modified: 19 May 2007
   Number: 12
-  Version: 50
+  Version: 51
 
 =head1 Overview
 
@@ -1649,9 +1649,10 @@
 
 =head1 Open vs Closed Classes
 
-By default, all classes in Perl are non-final, which means you can derive
-from them.  They are also open, which means you can add more methods
-to them, though you have to be explicit that that is what you're doing:
+By default, all classes in Perl are non-final ("super"), which means
+you can potentially derive from them.  They are also open, which means
+you can add more methods to them, though you have to be explicit that
+that is what you're doing:
 
     class Object is also {
         method wow () { say "Wow, I'm an object." }
@@ -1662,24 +1663,25 @@
 don't do that.)
 
 For optimization purposes, PerlĀ 6 gives the top-level application the
-right to close and finalize classes.
+right to close and finalize classes by the use of C<oo>, a pragma for
+selecting global semantics of the underlying object-oriented engine:
 
-    use optimize :classes<close finalize>;
+    use oo :closed :final;
 
 This merely changes the application's default to closed and final,
 which means that at the end of the main compilation (C<CHECK> time)
 the optimizer is allowed to look for candidate classes to close or
 finalize.  But anyone (including the main application) can request
-that any class stay open or basal, and the class closer/finalizer
+that any class stay open or super, and the class closer/finalizer
 must honor that.
 
-    use class :open<Mammal Insect> :basal<Str>
+    use class :open<Mammal Insect> :super<Str>
 
 These properties may also be specified on the class definition:
 
     class Mammal is open {...}
     class Insect is open {...}
-    class Str is basal {...}
+    class Str is super {...}
 
 or by lexically scoped pragma around the class definition:
 
@@ -1689,7 +1691,7 @@
         class Insect {...}
     }
     {
-        use class :basal;
+        use class :super;
         class Str {...}
     }
 

Reply via email to