In perl.git, the branch abigail/deprecation has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/395d958ce6112333263a1dd16c0d7e111144105e?hp=fb847842d9aedf642a043677bf2b2a1af70f5646>

- Log -----------------------------------------------------------------
commit 395d958ce6112333263a1dd16c0d7e111144105e
Author: Abigail <[email protected]>
Date:   Wed Nov 23 19:06:51 2016 +0100

    Use of Unicode code points exceeding IV_MAX will be fatal in Perl 5.28
    
    Changed the warning to reflect the deadline of this deprecation.
    Update tests, perldiag.pod and added a section to perldeprecation.pod.
-----------------------------------------------------------------------

Summary of changes:
 pod/perldeprecation.pod | 17 +++++++++++++++++
 pod/perldiag.pod        |  5 ++++-
 t/lib/warnings/pp       |  2 +-
 t/lib/warnings/utf8     | 16 ++++++++--------
 utf8.c                  |  2 +-
 5 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/pod/perldeprecation.pod b/pod/perldeprecation.pod
index e91b6e9..cb41c2a 100644
--- a/pod/perldeprecation.pod
+++ b/pod/perldeprecation.pod
@@ -104,6 +104,23 @@ You are recommended to change your code to set C<$/> to 
C<undef> explicitly
 if you wish to slurp the file.
 
 
+=head3 Limit on the value of Unicode code points.
+
+Unicode only allows code points up to 0x10FFFF, but Perl allows much
+larger ones. However, using code points exceeding the maximum value
+of an integer (C<IV_MAX>) may break the perl interpreter in some constructs,
+including causing it to hang in a few cases.  The known problem areas
+are in C<tr///>, regular expression pattern matching using quantifiers,
+as quote delimiters in C<qI<X>...I<X>> (where I<X> is the C<chr()> of a large
+code point), and as the upper limits in loops.
+
+The use of out of range code points was deprecated in Perl 5.24, and
+it will be a fatal error in Perl 5.28.
+
+If your code is to run on various platforms, keep in mind that the upper
+limit depends on the platform.  It is much larger on 64-bit word sizes
+than 32-bit ones.
+
 
 =head3 Use of C<\N{}>
 
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index b454c5d..d97fe7e 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -6902,7 +6902,7 @@ modifier is not presently meaningful in substitutions.
 use the /g modifier.  Currently, /c is meaningful only when /g is
 used.  (This may change in the future.)
 
-=item Use of code point 0x%s is deprecated; the permissible max is 0x%s
+=item Use of code point 0x%s is deprecated; the permissible max is 0x%s. This 
will be fatal in Perl 5.28
 
 (D deprecated) You used a code point that will not be allowed in a
 future perl version, because it is too large.  Unicode only allows code
@@ -6919,6 +6919,9 @@ If your code is to run on various platforms, keep in mind 
that the upper
 limit depends on the platform.  It is much larger on 64-bit word sizes
 than 32-bit ones.
 
+The use of out of range code points was deprecated in Perl 5.24, and
+it will be a fatal error in Perl 5.28.
+
 =item Use of comma-less variable list is deprecated
 
 (D deprecated) The values you give to a format should be
diff --git a/t/lib/warnings/pp b/t/lib/warnings/pp
index 3eef12a..defa398 100644
--- a/t/lib/warnings/pp
+++ b/t/lib/warnings/pp
@@ -139,7 +139,7 @@ $_ = ~ "\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 code point 0xFF+EFF is deprecated; the permissible max is 0x7F+ 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
 use warnings 'utf8';
diff --git a/t/lib/warnings/utf8 b/t/lib/warnings/utf8
index dded118..e4fc411 100644
--- a/t/lib/warnings/utf8
+++ b/t/lib/warnings/utf8
@@ -746,17 +746,17 @@ print $fh $to_warn_char, "\n";
 close $fh;
 EXPECT
 OPTION regex
-Use of code point 0x80+ is deprecated; the permissible max is 0x7F+ at - line 
\d+.
-Use of code point 0x80+ is deprecated; the permissible max is 0x7F+ in pattern 
match \(m//\) at - line \d+.
-Use of code point 0x80+ is deprecated; the permissible max is 0x7F+ in regexp 
compilation at - line \d+.
-Use of code point 0x80+ is deprecated; the permissible max is 0x7F+ in regexp 
compilation at - line \d+.
-Use of code point 0x80+ is deprecated; the permissible max is 0x7F+ at - line 
\d+.
-Use of code point 0x80+ is deprecated; the permissible max is 0x7F+ in regexp 
compilation at - line \d+.
+Use of code point 0x80+ is deprecated; the permissible max is 0x7F+\. This 
will be fatal in Perl 5\.28 at - line \d+.
+Use of code point 0x80+ is deprecated; the permissible max is 0x7F+\. This 
will be fatal in Perl 5\.28 in pattern match \(m//\) at - line \d+.
+Use of code point 0x80+ is deprecated; the permissible max is 0x7F+\. This 
will be fatal in Perl 5\.28 in regexp compilation at - line \d+.
+Use of code point 0x80+ is deprecated; the permissible max is 0x7F+\. This 
will be fatal in Perl 5\.28 in regexp compilation at - line \d+.
+Use of code point 0x80+ is deprecated; the permissible max is 0x7F+\. This 
will be fatal in Perl 5\.28 at - line \d+.
+Use of code point 0x80+ is deprecated; the permissible max is 0x7F+\. This 
will be fatal in Perl 5\.28 in regexp compilation at - line \d+.
 Operation "uc" returns its argument for non-Unicode code point 0x7F+ at - line 
\d+.
-Use of code point 0x80+ is deprecated; the permissible max is 0x7F+ at - line 
\d+.
+Use of code point 0x80+ is deprecated; the permissible max is 0x7F+\. This 
will be fatal in Perl 5\.28 at - line \d+.
 Operation "uc" returns its argument for non-Unicode code point 0x80+ at - line 
\d+.
 Code point 0x7F+ is not Unicode, may not be portable in print at - line \d+.
-Use of code point 0x80+ is deprecated; the permissible max is 0x7F+ in print 
at - line \d+.
+Use of code point 0x80+ is deprecated; the permissible max is 0x7F+\. This 
will be fatal in Perl 5\.28 in print at - line \d+.
 ########
 # NAME  [perl #127262]
 BEGIN{
diff --git a/utf8.c b/utf8.c
index 4dbefe5..fe311be 100644
--- a/utf8.c
+++ b/utf8.c
@@ -37,7 +37,7 @@ static const char malformed_text[] = "Malformed UTF-8 
character";
 static const char unees[] =
                         "Malformed UTF-8 character (unexpected end of string)";
 static const char cp_above_legal_max[] =
- "Use of code point 0x%"UVXf" is deprecated; the permissible max is 0x%"UVXf"";
+ "Use of code point 0x%"UVXf" is deprecated; the permissible max is 0x%"UVXf". 
This will be fatal in Perl 5.28";
 
 #define MAX_NON_DEPRECATED_CP ((UV) (IV_MAX))
 

--
Perl5 Master Repository

Reply via email to