String bitwise operators will not accept code points > 0xFF in 5.28
authorAbigail <abigail@abigail.be>
Sat, 14 Jan 2017 21:13:54 +0000 (22:13 +0100)
committerAbigail <abigail@abigail.be>
Mon, 16 Jan 2017 18:18:16 +0000 (19:18 +0100)
op.h
pod/perldeprecation.pod
pod/perldiag.pod
t/lib/warnings/doop
t/lib/warnings/pp

diff --git a/op.h b/op.h
index c0e6386..90f63e3 100644 (file)
--- a/op.h
+++ b/op.h
@@ -1075,7 +1075,8 @@ C<sib> is non-null. For a higher-level interface, see C<L</op_sibling_splice>>.
 #if defined(PERL_IN_DOOP_C) || defined(PERL_IN_PP_C)
 static const char * const deprecated_above_ff_msg
     = "Use of strings with code points over 0xFF as arguments to "
-      "%s operator is deprecated";
+      "%s operator is deprecated. This will be a fatal error in "
+      "Perl 5.28";
 #endif
 
 
index 82f6975..31c9b57 100644 (file)
@@ -334,6 +334,13 @@ error in Perl 5.28. You're recommended to just write the intended
 character instead.
 
 
+=head3 Use of code points over 0xFF in string bitwise operators
+
+The string bitwise operators, C<&>, C<|>, C<^>, and C<~>, treat
+their operands as strings of bytes. As such, values above 0xFF 
+are nonsensical. Using such code points with these operators
+was deprecated in Perl 5.24, and will be fatal in Perl 5.28.
+
 
 =head2 Perl 5.26
 
index 657ea22..b407233 100644 (file)
@@ -7066,13 +7066,15 @@ its behavior may change or even be removed in any future release of perl.
 See the explanation under L<perlvar/$_>.
 
 =item Use of strings with code points over 0xFF as arguments to %s
-operator is deprecated
+operator is deprecated. This will be a fatal error in Perl 5.28
 
 (D deprecated) You tried to use one of the string bitwise operators
 (C<&> or C<|> or C<^> or C<~>) on a string containing a code point over
 0xFF.  The string bitwise operators treat their operands as strings of
 bytes, and values beyond 0xFF are nonsensical in this context.
 
+Such usage will be a fatal error in Perl 5.28.
+
 =item Use of tainted arguments in %s is deprecated
 
 (W taint, deprecated) You have supplied C<system()> or C<exec()> with multiple
index bcc85a3..a62bc23 100644 (file)
@@ -26,12 +26,12 @@ $_ = "\x{100}" & "\x{103}";
 $_ = "\x{101}" | "\x{104}";
 $_ = "\x{102}" ^ "\x{105}";
 EXPECT
-Use of strings with code points over 0xFF as arguments to bitwise and (&) operator is deprecated at - line 1.
-Use of strings with code points over 0xFF as arguments to bitwise or (|) operator is deprecated at - line 2.
-Use of strings with code points over 0xFF as arguments to bitwise xor (^) operator is deprecated at - line 3.
-Use of strings with code points over 0xFF as arguments to bitwise and (&) operator is deprecated at - line 4.
-Use of strings with code points over 0xFF as arguments to bitwise or (|) operator is deprecated at - line 5.
-Use of strings with code points over 0xFF as arguments to bitwise xor (^) operator is deprecated at - line 6.
-Use of strings with code points over 0xFF as arguments to bitwise and (&) operator is deprecated at - line 7.
-Use of strings with code points over 0xFF as arguments to bitwise or (|) operator is deprecated at - line 8.
-Use of strings with code points over 0xFF as arguments to bitwise xor (^) operator is deprecated at - line 9.
+Use of strings with code points over 0xFF as arguments to bitwise and (&) operator is deprecated. This will be a fatal error in Perl 5.28 at - line 1.
+Use of strings with code points over 0xFF as arguments to bitwise or (|) operator is deprecated. This will be a fatal error in Perl 5.28 at - line 2.
+Use of strings with code points over 0xFF as arguments to bitwise xor (^) operator is deprecated. This will be a fatal error in Perl 5.28 at - line 3.
+Use of strings with code points over 0xFF as arguments to bitwise and (&) operator is deprecated. This will be a fatal error in Perl 5.28 at - line 4.
+Use of strings with code points over 0xFF as arguments to bitwise or (|) operator is deprecated. This will be a fatal error in Perl 5.28 at - line 5.
+Use of strings with code points over 0xFF as arguments to bitwise xor (^) operator is deprecated. This will be a fatal error in Perl 5.28 at - line 6.
+Use of strings with code points over 0xFF as arguments to bitwise and (&) operator is deprecated. This will be a fatal error in Perl 5.28 at - line 7.
+Use of strings with code points over 0xFF as arguments to bitwise or (|) operator is deprecated. This will be a fatal error in Perl 5.28 at - line 8.
+Use of strings with code points over 0xFF as arguments to bitwise xor (^) operator is deprecated. This will be a fatal error in Perl 5.28 at - line 9.
index defa398..27629a7 100644 (file)
@@ -21,7 +21,7 @@
   Constant subroutine (anonymous) undefined
        $foo = sub () { 3 }; undef &$foo;
 
-  Use of strings with code points over 0xFF as arguments to 1's complement (~) operator is deprecated
+  Use of strings with code points over 0xFF as arguments to 1's complement (~) operator is deprecated. This will be a fatal error in Perl 5.28
 
   Invalid negative number (%s) in chr
 
@@ -138,7 +138,7 @@ $_ = ~ "\xff";
 $_ = ~ "\x{100}";
 EXPECT
 OPTION regex
-Use of strings with code points over 0xFF as arguments to 1's complement \(~\) operator is deprecated at - line \d+.
+Use of strings with code points over 0xFF as arguments to 1's complement \(~\) operator is deprecated. This will be a fatal error in Perl 5.28 at - line \d+.
 Use of code point 0xFF+EFF is deprecated; the permissible max is 0x7F+\. This will be fatal in Perl 5\.28 at - line \d+.
 ########
 # NAME chr -1