[prev in list] [next in list] [prev in thread] [next in thread]
List: perl6-language
Subject: r25607 - docs/Perl6/Spec
From: pugs-commits () feather ! perl6 ! nl
Date: 2009-02-27 7:39:57
Message-ID: 20090227073957.30090.qmail () feather ! perl6 ! nl
[Download RAW message or body]
Author: lwall
Date: 2009-02-27 08:39:57 +0100 (Fri, 27 Feb 2009)
New Revision: 25607
Modified:
docs/Perl6/Spec/S06-routines.pod
docs/Perl6/Spec/S12-objects.pod
Log:
deprecate "is also" and "is instead" in favor of augment and supersede declarators
Modified: docs/Perl6/Spec/S06-routines.pod
===================================================================
--- docs/Perl6/Spec/S06-routines.pod 2009-02-27 07:03:18 UTC (rev 25606)
+++ docs/Perl6/Spec/S06-routines.pod 2009-02-27 07:39:57 UTC (rev 25607)
@@ -13,9 +13,9 @@
Maintainer: Larry Wall <larry@wall.org>
Date: 21 Mar 2003
- Last Modified: 24 Feb 2009
+ Last Modified: 26 Feb 2009
Number: 6
- Version: 103
+ Version: 104
This document summarizes Apocalypse 6, which covers subroutines and the
@@ -239,7 +239,8 @@
Redefining a stub subroutine does not produce an error, but redefining
an already-defined subroutine does. If you wish to redefine a defined sub,
-you must explicitly use the "C<is instead>" trait.
+you must explicitly use the "C<supersede>" declarator. (The compiler may
+refuse to do this if it has already commited to the previous definition.)
The C<...> is the "yadayadayada" operator, which is executable but returns
a failure. You can also use C<???> to produce a warning, or C<!!!> to
Modified: docs/Perl6/Spec/S12-objects.pod
===================================================================
--- docs/Perl6/Spec/S12-objects.pod 2009-02-27 07:03:18 UTC (rev 25606)
+++ docs/Perl6/Spec/S12-objects.pod 2009-02-27 07:39:57 UTC (rev 25607)
@@ -14,7 +14,7 @@
Date: 27 Oct 2004
Last Modified: 26 Feb 2009
Number: 12
- Version: 70
+ Version: 71
=head1 Overview
@@ -1463,15 +1463,16 @@
you can add more methods to them, though you have to be explicit that
that is what you're doing:
- class Object is also {
+ augment class Object {
method wow () { say "Wow, I'm an object." }
}
Otherwise you'll get a class redefinition error. (Also, to completely
-replace a definition, use "C<is instead>" instead of "C<is also>"...but
-don't do that.)
+replace a definition, use "C<supersede>" instead of "C<augment>"...but
+don't do that, since the compiler may have already committed to
+optimizations based on the old definition.)
-In order to discourage casual misuse of these traits, they are not
+In order to discourage casual misuse of these declarators, they are not
allowed on global classes unless you put a special declaration at the top:
use MONKEY_PATCHING;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic