Author: lwall
Date: 2009-10-01 18:53:43 +0200 (Thu, 01 Oct 2009)
New Revision: 28528
Modified:
docs/Perl6/Spec/S04-control.pod
docs/Perl6/Spec/S32-setting-library/Basics.pod
docs/Perl6/Spec/S32-setting-library/IO.pod
Log:
[S04] add statement_prefix:<quietly>
[IO] add "note" function as say to stderr
[Basics] clarify semantics of warning exceptions
Modified: docs/Perl6/Spec/S04-control.pod
===================================================================
--- docs/Perl6/Spec/S04-control.pod 2009-10-01 11:49:58 UTC (rev 28527)
+++ docs/Perl6/Spec/S04-control.pod 2009-10-01 16:53:43 UTC (rev 28528)
@@ -13,8 +13,8 @@
Created: 19 Aug 2004
- Last Modified: 4 Sep 2009
- Version: 82
+ Last Modified: 1 Oct 2009
+ Version: 83
This document summarizes Apocalypse 4, which covers the block and
statement syntax of Perl.
@@ -720,7 +720,7 @@
X<do>
Other similar forms, where a keyword is followed by code to be controlled by
it, may also take bare statements,
-including C<try>, C<contend>, C<async>, C<lazy>, and C<void>. These constructs
+including C<try>, C<quietly>, C<contend>, C<async>, C<lazy>, and C<void>.
These constructs
establish a dynamic scope without necessarily establishing a lexical
scope. (You can always establish a lexical scope explicitly by using
the block form of argument.) As statement introducers, all these
@@ -870,7 +870,7 @@
The Perl 6 equivalent to Perl 5's C<eval {...}> is C<try {...}>.
(Perl 6's C<eval> function only evaluates strings, not blocks.)
-A C<try> block by default has a C<CATCH> block that handles all
+A C<try> block by default has a C<CATCH> block that handles all fatal
exceptions by ignoring them. If you define a C<CATCH> block within
the C<try>, it replaces the default C<CATCH>. It also makes the C<try>
keyword redundant, because any block can function as a C<try> block
Modified: docs/Perl6/Spec/S32-setting-library/Basics.pod
===================================================================
--- docs/Perl6/Spec/S32-setting-library/Basics.pod 2009-10-01 11:49:58 UTC
(rev 28527)
+++ docs/Perl6/Spec/S32-setting-library/Basics.pod 2009-10-01 16:53:43 UTC
(rev 28528)
@@ -19,8 +19,8 @@
Created: 19 Mar 2009 extracted from S29-functions.pod
- Last Modified: 30 Apr 2009
- Version: 2
+ Last Modified: 1 Oct 2009
+ Version: 3
The document is a draft.
@@ -191,9 +191,20 @@
our multi method warn ( Object $o: ) is export
-Prints a warning to C<$*ERR>, which is usually finds C<$PROCESS::ERR>. See
-C<Synopsis 16: IPC / IO / Signals> for details.
+Throws a resumable warning exception, which is considered a control
+exception, and hence is invisible to most normal exception handlers.
+The outermost control handler will print the warning to C<$*ERR>
+(which is usually finds C<$PROCESS::ERR>; see C<Synopsis 16: IPC /
+IO / Signals> for details). After printing the warning, the exception
+is resumed where it was thrown. To override this behavior, catch the
+exception in a CONTROL block. A quietly {...} block is the opposite of a
+try {...} block in that it will suppress any warnings but pass fatal
+exceptions through.
+To simply print to C<$*ERR>, please use C<note> instead. C<warn>
+should be reserved for use in threatening situations when you don't
+quite want to throw an exception.
+
=back
=head2 Pattern
Modified: docs/Perl6/Spec/S32-setting-library/IO.pod
===================================================================
--- docs/Perl6/Spec/S32-setting-library/IO.pod 2009-10-01 11:49:58 UTC (rev
28527)
+++ docs/Perl6/Spec/S32-setting-library/IO.pod 2009-10-01 16:53:43 UTC (rev
28528)
@@ -22,8 +22,8 @@
Created: 19 Feb 2009 extracted from S29-functions.pod; added stuff from
S16-IO later
- Last Modified: 18 Aug 2009
- Version: 7
+ Last Modified: 1 Oct 2009
+ Version: 8
The document is a draft.
@@ -92,6 +92,13 @@
See below for details.
+=item note
+X<note>
+
+ multi note (*...@list --> Bool)
+
+See below for details.
+
=item printf
X<printf>
@@ -439,6 +446,10 @@
As with C<print>, it is a compiler error to use a bare C<say> without
arguments.
+=item multi note (*...@list --> Bool)
+
+Does a "say" to C<$*ERR>.
+
=item method printf ($self: Str $fmt, *...@list --> Bool)
=item multi printf (Str $fmt, *...@list --> Bool)