Author: lwall
Date: 2009-11-12 20:06:28 +0100 (Thu, 12 Nov 2009)
New Revision: 29061

Modified:
   docs/Perl6/Spec/S06-routines.pod
Log:
[S06] some phaser defossilization


Modified: docs/Perl6/Spec/S06-routines.pod
===================================================================
--- docs/Perl6/Spec/S06-routines.pod    2009-11-12 18:35:33 UTC (rev 29060)
+++ docs/Perl6/Spec/S06-routines.pod    2009-11-12 19:06:28 UTC (rev 29061)
@@ -16,8 +16,8 @@
 
     Created: 21 Mar 2003
 
-    Last Modified: 2 Nov 2009
-    Version: 122
+    Last Modified: 12 Nov 2009
+    Version: 123
 
 This document summarizes Apocalypse 6, which covers subroutines and the
 new type system.
@@ -1910,24 +1910,24 @@
 
 =item C<PRE>/C<POST>
 
-Mark blocks that are to be unconditionally executed before/after
-the subroutine's C<do> block. These blocks must return a true value,
-otherwise an exception is thrown.
+These phasers declare statements or blocks that are to be unconditionally
+executed before/after the subroutine's C<do> block. They must return
+a true value, otherwise an exception is thrown.
 
 When applied to a method, the semantics provide support for the
 "Design by Contract" style of OO programming: a precondition of
-a particular method is met if all the C<PRE> blocks associated
+a particular method is met if all the C<PRE> phasers associated
 with that method return true.  Otherwise, the precondition is met
 if C<all> of the parent classes' preconditions are met (which may
 include the preconditions of I<their> parent classes if they fail,
 and so on recursively.)
 
-In contrast, a method's postcondition is met if all the method's C<POST> blocks
+In contrast, a method's postcondition is met if all the method's C<POST> 
phasers
 return true I<and> all its parents' postconditions are also met recursively.
 
-C<POST> blocks (and "C<will post>" block traits) declared within a C<PRE>
+C<POST> phasers (and "C<will post>" phaser traits) declared within a C<PRE>
 or C<ENTER> block are automatically hoisted outward to be called at the
-same time as other C<POST> blocks.  This conveniently gives "circum"
+same time as other C<POST> phasers.  This conveniently gives "circum"
 semantics by virtue of wrapping the post lexical scope within the pre
 lexical scope.
 
@@ -1958,11 +1958,12 @@
 
 =item C<ENTER>/C<LEAVE>/C<KEEP>/C<UNDO>/etc.
 
-These supply closures that are to be conditionally executed before or
+These phasers supply code that is to be conditionally executed before or
 after the subroutine's C<do> block (only if used at the outermost level
-within the subroutine; technically, these are block traits on the C<do>
-block, not subroutine traits).  These blocks are generally used only
-for their side effects, since most return values will be ignored.
+within the subroutine; technically, these are added to the block traits on the 
C<do>
+block, not the subroutine object).  These phasers are generally used only
+for their side effects, since most return values will be ignored.  (Phasers
+that run before normal execution may be used for their values, however.)
 
 =back
 

Reply via email to