Front page | perl.perl6.language |
Postings from November 2009
r29061 - docs/Perl6/Spec
From:
pugs-commits
Date:
November 12, 2009 11:06
Subject:
r29061 - docs/Perl6/Spec
Message ID:
20091112190628.32465.qmail@feather.perl6.nl
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
-
r29061 - docs/Perl6/Spec
by pugs-commits