Author: lwall
Date: 2009-12-18 05:05:15 +0100 (Fri, 18 Dec 2009)
New Revision: 29365

Modified:
   docs/Perl6/Spec/S04-control.pod
   docs/Perl6/Spec/S29-functions.pod
Log:
[S04] rename break/nobreak to succeed/proceed


Modified: docs/Perl6/Spec/S04-control.pod
===================================================================
--- docs/Perl6/Spec/S04-control.pod     2009-12-18 02:57:14 UTC (rev 29364)
+++ docs/Perl6/Spec/S04-control.pod     2009-12-18 04:05:15 UTC (rev 29365)
@@ -14,7 +14,7 @@
     Created: 19 Aug 2004
 
     Last Modified: 17 Dec 2009
-    Version: 92
+    Version: 93
 
 This document summarizes Apocalypse 4, which covers the block and
 statement syntax of Perl.
@@ -849,7 +849,7 @@
 The value of the inner block is returned as the value of the outer
 block.
 
-If the smart match fails, control passes to the next statement
+If the smart match fails, control proceeds the next statement
 normally, which may or may not be a C<when> statement.  Since C<when>
 statements are presumed to be executed in order like normal statements,
 it's not required that all the statements in a switch block be C<when>
@@ -875,27 +875,29 @@
 of any C<when> statements within the loop.
 
 You can explicitly break out of a C<when> block (and its surrounding
-topicalizer block) early using the C<break> verb.  More precisely,
+topicalizer block) early using the C<succeed> verb.  More precisely,
 it first scans outward (lexically) for the innermost containing
 C<when> block.  From there it continues to scan outward to find the
 innermost block outside the C<when> that uses C<$_> as one of its
 formal parameters, either explicitly or implicitly.  (Note that
 both of these scans are done at compile time; if the scans fail,
 it's a compile-time semantic error.)  Typically, such an outer
-block will be a C<given> or a C<for> statement, but any block that
+block will be the block of a C<given> or a C<for> statement, but any block that
 sets the topic in its signature can be broken out of.  At run time,
-C<break> uses a control exception to scan up the dynamic chain to
+C<succeed> uses a control exception to scan up the dynamic chain to
 find the call frame belonging to that same outer block, and
 when it has found that frame, it does a C<.leave> on it to unwind
-the call frames.  If any arguments are supplied to the C<break> function,
+the call frames.  If any arguments are supplied to the C<succeed> function,
 they are passed out via the C<leave> method.  Since leaving a block is
-considered a successful return, breaking out of one is also considered
-a successful return.  (And in fact, the implicit break of a normal
+considered a successful return, breaking out of one with C<succeed> is also 
considered
+a successful return for the purposes of C<KEEP> and C<UNDO>.
+
+The implicit break of a normal
 C<when> block works the same way, returning the value of the entire
-block (normally from its last statement) via an implicit C<.leave>.)
+block (normally from its last statement) via an implicit C<succeed>.
 
 You can explicitly leave a C<when> block and go to the next statement
-following the C<when> by using C<nobreak>.  (Note that, unlike C's
+following the C<when> by using C<proceed>.  (Note that, unlike C's
 idea of "falling through", subsequent C<when> conditions are evaluated.
 To jump into the next C<when> block without testing its condition,
 you must use a C<goto>.  But generally that means you should refactor
@@ -908,15 +910,16 @@
 (or some more violent control exception such as C<return>) to break
 out of the entire loop early.  Of course, an explicit C<next> might
 be clearer than a C<break> if you really want to go directly to the
-next iteration.  On the other hand, C<break> can take an optional
+next iteration.  On the other hand, C<succeed> can take an optional
 argument giving the value for that iteration of the loop.  As with
-the C<.leave> method, there is also a C<.break> method to break from a
+the C<.leave> method, there is also a C<.succeed> method to break from a
 labelled block functioning as a switch:
 
-    OUTER.break($retval)
+    OUTER.succeed($retval)
 
 There is a C<when> statement modifier, but it does not have any
-break semantics.  That is,
+breakout semantics; it is merely a smartmatch against
+the current topic.  That is,
 
     doit() when 42;
 

Modified: docs/Perl6/Spec/S29-functions.pod
===================================================================
--- docs/Perl6/Spec/S29-functions.pod   2009-12-18 02:57:14 UTC (rev 29364)
+++ docs/Perl6/Spec/S29-functions.pod   2009-12-18 04:05:15 UTC (rev 29365)
@@ -953,8 +953,8 @@
 
 =item Flow control
 
-break
-continue
+succeed
+proceed
 redo
 
 =item Other

Reply via email to