[svn:perl6-synopsis] r14394 - doc/trunk/design/syn
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.podSat 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 Coo, a pragma for +selecting global semantics of the underlying object-oriented engine: -use optimize :classesclose 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 (CCHECK 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 :openMammal Insect :basalStr +use class :openMammal Insect :superStr 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 {...} }
[svn:perl6-synopsis] r14395 - doc/trunk/design/syn
Author: larry Date: Sat May 19 09:45:24 2007 New Revision: 14395 Modified: doc/trunk/design/syn/S02.pod Log: Clarify type semantics of sigil bindability, requested by dduncan++. Modified: doc/trunk/design/syn/S02.pod == --- doc/trunk/design/syn/S02.pod(original) +++ doc/trunk/design/syn/S02.podSat May 19 09:45:24 2007 @@ -12,9 +12,9 @@ Maintainer: Larry Wall [EMAIL PROTECTED] Date: 10 Aug 2004 - Last Modified: 18 May 2007 + Last Modified: 19 May 2007 Number: 2 - Version: 104 + Version: 105 This document summarizes Apocalypse 2, which covers small-scale lexical items and typological issues. (These Synopses also contain @@ -1080,6 +1080,20 @@ =item * +Sigils indicate overall interface, not the exact type of the bound +object. Hence, C@x may be bound to an object of the CArray +class, but it may also be bound to any object that does the CArray +role, such as a CList, CSeq, CRange, CSet, CBag, CBuf, +CCapture, and so on. Likewise, C%x may be bound to a CPair, +CMapping, CSet, CBag, CKeyHash, CCapture, and so on. +And Cx may be bound to any kind of CBlock or CRoutine. +The implicit container type is checked at binding time. If you wish +to bind an object that doesn't yet do the appropriate role, you must +either stick with the generic C$ sigil, or mix in the appropriate +role before binding to a more specific sigil. + +=item * + Unlike in PerlĀ 5, you may no longer put whitespace between a sigil and its following name or construct.
[svn:perl6-synopsis] r14396 - doc/trunk/design/syn
Author: larry Date: Sat May 19 16:13:45 2007 New Revision: 14396 Modified: doc/trunk/design/syn/S11.pod Log: format bug noticed by renormalist++ Modified: doc/trunk/design/syn/S11.pod == --- doc/trunk/design/syn/S11.pod(original) +++ doc/trunk/design/syn/S11.podSat May 19 16:13:45 2007 @@ -246,6 +246,7 @@ class Dog:1.2.1 cpan:JRANDOM The pieces are interpreted as follows: + =over =item *