This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Delta entries for Configure related changes
[perl5.git] / pod / perldeprecation.pod
index 5efcbe9..781b151 100644 (file)
@@ -54,7 +54,7 @@ This usage has been deprecated, and will no longer be allowed in Perl 5.32.
 
 C<vec> views its string argument as a sequence of bits.  A string
 containing a code point over 0xFF is nonsensical.  This usage is
-deprecated in Perl 5.28, and will be removed in Perl 5.32.
+deprecated in Perl 5.28, and was removed in Perl 5.32.
 
 =head3 Use of code points over 0xFF in string bitwise operators
 
@@ -65,14 +65,14 @@ nonsensical. Some instances of these have been deprecated since Perl
 the wide characters did not affect the end result, no deprecation
 notice was raised, and so remain legal.  Now, all occurrences either are
 fatal or raise a deprecation warning, so that the remaining legal
-occurrences will be fatal in 5.32.
+occurrences became fatal in 5.32.
 
 An example of this is
 
  "" & "\x{100}"
 
 The wide character is not used in the C<&> operation because the left
-operand is shorter.  This now warns anyway.
+operand is shorter.  This now throws an exception.
 
 =head3 hostname() doesn't accept any arguments
 
@@ -100,15 +100,67 @@ Forcing literal C<{> characters to be escaped will enable the Perl
 language to be extended in various ways in future releases.  To avoid
 needlessly breaking existing code, the restriction is is not enforced in
 contexts where there are unlikely to ever be extensions that could
-conflict with the use there of C<{> as a literal.
+conflict with the use there of C<{> as a literal.  A non-deprecation
+warning that the left brace is being taken literally is raised in
+contexts where there could be confusion about it.
 
 Literal uses of C<{> were deprecated in Perl 5.20, and some uses of it
 started to give deprecation warnings since. These cases were made fatal
 in Perl 5.26. Due to an oversight, not all cases of a use of a literal
 C<{> got a deprecation warning.  Some cases started warning in Perl 5.26,
-and were made fatal in Perl 5.30.  Other case started in Perl 5.28,
+and were made fatal in Perl 5.30.  Other cases started in Perl 5.28,
 and will be made fatal in 5.32.
 
+=head3 In XS code, use of various macros dealing with UTF-8.
+
+The macros below now require an extra parameter than in versions prior
+to Perl 5.32.  The final parameter in each one is a pointer into the
+string supplied by the first parameter beyond which the input will not
+be read.  This prevents potential reading beyond the end of the buffer.
+C<isALPHANUMERIC_utf8>,
+C<isASCII_utf8>,
+C<isBLANK_utf8>,
+C<isCNTRL_utf8>,
+C<isDIGIT_utf8>,
+C<isIDFIRST_utf8>,
+C<isPSXSPC_utf8>,
+C<isSPACE_utf8>,
+C<isVERTWS_utf8>,
+C<isWORDCHAR_utf8>,
+C<isXDIGIT_utf8>,
+C<isALPHANUMERIC_LC_utf8>,
+C<isALPHA_LC_utf8>,
+C<isASCII_LC_utf8>,
+C<isBLANK_LC_utf8>,
+C<isCNTRL_LC_utf8>,
+C<isDIGIT_LC_utf8>,
+C<isGRAPH_LC_utf8>,
+C<isIDCONT_LC_utf8>,
+C<isIDFIRST_LC_utf8>,
+C<isLOWER_LC_utf8>,
+C<isPRINT_LC_utf8>,
+C<isPSXSPC_LC_utf8>,
+C<isPUNCT_LC_utf8>,
+C<isSPACE_LC_utf8>,
+C<isUPPER_LC_utf8>,
+C<isWORDCHAR_LC_utf8>,
+C<isXDIGIT_LC_utf8>,
+C<toFOLD_utf8>,
+C<toLOWER_utf8>,
+C<toTITLE_utf8>,
+and
+C<toUPPER_utf8>.
+
+Since Perl 5.26, this functionality with the extra parameter has been
+available by using a corresponding macro to each one of these, and whose
+name is formed by appending C<_safe> to the base name.  There is no
+change to the functionality of those.  For example, C<isDIGIT_utf8_safe>
+corresponds to C<isDIGIT_utf8>, and both now behave identically.  All
+are documented in L<perlapi/Character case changing> and
+L<perlapi/Character classification>.
+
+This change was originally scheduled for 5.30, but was delayed.
+
 =head2 Perl 5.30
 
 =head3 C<< $* >> is no longer supported
@@ -134,14 +186,14 @@ error in Perl 5.30.
 To specify how numbers are formatted when printed, one is advised
 to use C<< printf >> or C<< sprintf >> instead.
 
-=head3 Assigning non-zero to C<< $[ >> will be fatal
+=head3 Assigning non-zero to C<< $[ >> is fatal
 
 This variable (and the corresponding C<array_base> feature and
-L<arybase> module) allows changing the base for array and string
+L<arybase> module) allowed changing the base for array and string
 indexing operations.
 
 Setting this to a non-zero value has been deprecated since Perl 5.12 and
-will become fatal in Perl 5.30.
+throws a fatal error as of Perl 5.30.
 
 =head3 C<< File::Glob::glob() >> will disappear
 
@@ -237,63 +289,15 @@ As of Perl 5.30, use of delimiters which are non-standalone graphemes is
 fatal, in order to move the language to be able to accept
 multi-character graphemes as delimiters.
 
-Also, as of Perl 5.30, delimiters which which are unassigned code points
+Also, as of Perl 5.30, delimiters which are unassigned code points
 but that may someday become assigned are prohibited.  Otherwise, code
 that works today would fail to compile if the currently unassigned
 delimiter ends up being something that isn't a stand-alone grapheme.
 Because Unicode is never going to assign L<non-character code
 points|perlunicode/Noncharacter code points>, nor L<code points that are
-above the legal Unicode maximum| perlunicode/Beyond Unicode code
+above the legal Unicode maximum|perlunicode/Beyond Unicode code
 points>, those can be delimiters.
 
-=head3 In XS code, use of various macros dealing with UTF-8.
-
-These macros will require an extra parameter in Perl 5.30:
-C<isALPHANUMERIC_utf8>,
-C<isASCII_utf8>,
-C<isBLANK_utf8>,
-C<isCNTRL_utf8>,
-C<isDIGIT_utf8>,
-C<isIDFIRST_utf8>,
-C<isPSXSPC_utf8>,
-C<isSPACE_utf8>,
-C<isVERTWS_utf8>,
-C<isWORDCHAR_utf8>,
-C<isXDIGIT_utf8>,
-C<isALPHANUMERIC_LC_utf8>,
-C<isALPHA_LC_utf8>,
-C<isASCII_LC_utf8>,
-C<isBLANK_LC_utf8>,
-C<isCNTRL_LC_utf8>,
-C<isDIGIT_LC_utf8>,
-C<isGRAPH_LC_utf8>,
-C<isIDCONT_LC_utf8>,
-C<isIDFIRST_LC_utf8>,
-C<isLOWER_LC_utf8>,
-C<isPRINT_LC_utf8>,
-C<isPSXSPC_LC_utf8>,
-C<isPUNCT_LC_utf8>,
-C<isSPACE_LC_utf8>,
-C<isUPPER_LC_utf8>,
-C<isWORDCHAR_LC_utf8>,
-C<isXDIGIT_LC_utf8>,
-C<toFOLD_utf8>,
-C<toLOWER_utf8>,
-C<toTITLE_utf8>,
-and
-C<toUPPER_utf8>.
-
-There is now a macro that corresponds to each one of these, simply by
-appending C<_safe> to the name.  It takes the extra parameter.
-For example, C<isDIGIT_utf8_safe> corresponds to C<isDIGIT_utf8>, but
-takes the extra parameter, and its use doesn't generate a deprecation
-warning.  All are documented in L<perlapi/Character case changing> and
-L<perlapi/Character classification>.
-
-You can change to use these versions at any time, or, if you can live
-with the deprecation messages, wait until 5.30 and add the parameter to
-the existing calls, without changing the names.
-
 =head2 Perl 5.28
 
 =head3 Attributes C<< :locked >> and C<< :unique >>