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 <la...@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;