This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mktables: Don't add exact duplicate to tables
[perl5.git] / pod / perldelta.pod
index 215be08..07a684a 100644 (file)
@@ -66,7 +66,7 @@ Full details are in L<perlfunc/fc>.
 The C<_> character in subroutine prototypes is now allowed before C<@> or
 C<%>.
 
-=head1 Supports (I<almost>) Unicode 6.1
+=head2 Supports (I<almost>) Unicode 6.1
 
 Besides the addition of whole new scripts, and new characters in
 existing scripts, this new version of Unicode, as always, makes some
@@ -130,6 +130,12 @@ and ZWNBSP for ZERO WIDTH NO-BREAK SPACE.
 More details on this version of Unicode are provided in
 L<http://www.unicode.org/versions/Unicode6.1.0/>.
 
+=head2 Added C<is_utf8_char_buf()>
+
+This function is designed to replace the deprecated L</is_utf8_char()>
+function.  It includes an extra parameter to make sure it doesn't read
+past the end of the input buffer.
+
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -138,6 +144,13 @@ L</Selected Bug Fixes> section.
 
 [ List each security issue as a =head2 entry ]
 
+=head2 Use C<is_utf8_char_buf()> and not C<is_utf8_char()>
+
+The latter function is now deprecated because its API is insufficient to
+guarantee that it doesn't read (up to 12 bytes in the worst case) beyond
+the end of its input string.  See
+L<is_utf8_char_buf()|/Added is_utf8_char_buf()>.
+
 =head1 Incompatible Changes
 
 XXX For a release on a stable branch, this section aspires to be:
@@ -171,6 +184,17 @@ in L<perlxstypemap>.
 
 These are detailed in L</Supports (almost) Unicode 6.1> above.
 
+=head2 Changed returns for some properties in C<Unicode::UCD::prop_invmap()>
+
+The return values for C<prop_invmap> have been changed for some
+properties to make the returned lists significantly smaller.  This
+allows those lists to be searched faster.
+
+This function was introduced earlier in the v5.15 series of releases,
+and the API will not be considered stable until v5.16.
+
+See L<Unicode::UCD/prop_invmap()> for details on the new interface.
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
@@ -179,6 +203,12 @@ listed as an updated module in the L</Modules and Pragmata> section.
 
 [ List each deprecation as a =head2 entry ]
 
+=head2 C<is_utf8_char()>
+
+This function is deprecated because it could read beyond the end of the
+input string.  Use the new L<is_utf8_char_buf()|/Added is_utf8_char_buf()>
+instead.
+
 =head1 Performance Enhancements
 
 XXX Changes which enhance performance without changing behaviour go here. There
@@ -262,6 +292,10 @@ Work around a memory leak bug involving version objects in boolean context.
 
 =item *
 
+L<CPAN::Meta::YAML> has been upgraded from version 0.005 to version 0.007.
+
+=item *
+
 L<DB_File> has been upgraded from version 1.824 to version 1.826.
 
 =item *
@@ -297,6 +331,17 @@ This avoids a new core warning.
 
 =item *
 
+L<Module::Metadata> has been upgraded from version 1.000007 to version 1.000009.
+
+Adds C<provides> method to generate a CPAN META provides data structure
+correctly; use of C<package_versions_from_directory> is discouraged.
+
+=item *
+
+L<Parse::CPAN::Meta> has been upgraded from version 1.4401 to version 1.4402.
+
+=item *
+
 L<Pod::Parser> has been upgraded from version 1.37 to version 1.51.
 
 =item *
@@ -323,6 +368,14 @@ The only change is to fix a formatting error in the Pod.
 
 L<Version::Requirements> has been upgraded from version 0.101021 to version 0.101022.
 
+=item *
+
+L<POSIX> has been upgraded from version 1.28 to version 1.29..
+
+It now has a wrapper for the C<strptime(3)> function, it's not
+exported on C<use POSIX;> due to backwards compatibility concerns, it
+has to be explicitly requested with C<use POSIX qw(strptime)>.
+
 =back
 
 =head2 Removed Modules and Pragmata
@@ -603,6 +656,13 @@ with "\n".  This has been fixed [perl #109206].
 
 =item *
 
+C<m/[[:ascii:]]/i> and C</\p{ASCII}/i> now match identically (when not
+under a differing locale).  This fixes a regression introduced in 5.14
+in which the first expression could match characters outside of ASCII,
+such as the KELVIN SIGN.
+
+=item *
+
 Method calls whose arguments were all surrounded with C<my()> or C<our()>
 (as in C<<$object->method(my($a,$b)) >>) used to force lvalue context on
 the subroutine.  This would prevent lvalue methods from returning certain
@@ -626,6 +686,12 @@ C<SvPVutf8> now works properly with magical variables.
 
 C<SvPVbyte> now works properly non-PVs.
 
+=item *
+
+C</[[:ascii:]]/> and C</[[:blank:]]/> now use locale rules under
+C<use locale> when the platform supports that.  Previously, they used
+the platform's native character set.
+
 =back
 
 =head1 Known Problems