This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module-Load-Conditional to CPAN version 0.42
[perl5.git] / pod / perldelta.pod
index 7035257..a326ead 100644 (file)
@@ -5,16 +5,16 @@
 [ this is a template for a new perldelta file. Any text flagged as
 XXX needs to be processed before release. ]
 
-perldelta - what is new for perl v5.13.9
+perldelta - what is new for perl v5.13.10
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.13.8 release and
-the 5.13.9 release.
+This document describes differences between the 5.XXX.XXX release and
+the 5.XXX.XXX release.
 
-If you are upgrading from an earlier release such as 5.13.7, first read
-L<perl5138delta>, which describes differences between 5.13.7 and
-5.13.8.
+If you are upgrading from an earlier release such as 5.YYY.YYY, first read
+L<perl5YYYdelta>, which describes differences between 5.ZZZ.ZZZ and
+5.YYY.YYY.
 
 =head1 Notice
 
@@ -28,6 +28,12 @@ here, but most should go in the L</Performance Enhancements> section.
 
 [ List each enhancement as a =head2 entry ]
 
+=head2 Add C<\p{Titlecase}> as a synonym for C<\p{Title}>
+
+This synyom is added for symmetry with the Unicode property names
+C<\p{Uppercase}> and C<\p{Lowercase}>.
+
+
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -45,6 +51,30 @@ XXX For a release on a stable branch, this section aspires to be:
 
 [ List each incompatible change as a =head2 entry ]
 
+=head2 Most C<\p{}> properties are now immune from case-insensitive matching
+
+For most Unicode properties, it doesn't make sense to have them match
+differently under C</i> case-insensitive matching than not.  And doing
+so leads to unexpected results and potential security holes.  For
+example
+
+ m/\p{ASCII_Hex_Digit}+/i
+
+could previously match non-ASCII characters because of the Unicode
+matching rules.  There were a number of bugs in this feature until an
+earlier release in the 5.13 series.  Now this release reverts, and
+removes the feature completely except for the few properties where
+people have come to expect it, namely the ones where casing is an
+integral part of their functionality, such as C<m/\p{Uppercase}/i> and
+C<m/\p{Lowercase}/i>, both of which match the exact same code points,
+namely those matched by C<m/\p{Cased}/i>.  Details are in
+L<perlrecharclass/Unicode Properties>.
+
+User-defined property handlers that need to match differently under
+C</i> must change to read the new boolean parameter passed it which is
+non-zero if case-insensitive matching is in effect; 0 if not.  See
+L<perluniprops/User-Defined Character Properties>.
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
@@ -86,11 +116,7 @@ cribbed.
 
 =item *
 
-L<CPAN::Meta::YAML> 0.002 has been added as a dual-life module.  It supports a
-subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files
-included with CPAN distributions or generated by the module installation
-toolchain. It should not be used for any other general YAML parsing or
-generation task.
+XXX
 
 =back
 
@@ -100,15 +126,51 @@ generation task.
 
 =item *
 
-C<Encode> has been upgraded from version 2.40 to 2.41
+C<CGI> has been upgraded from version 3.51 to 3.52
+
+=item *
+
+C<IPC::Cmd> has been upgraded from version 0.68 to 0.70
+
+=item *
+
+C<HTTP::Tiny> has been upgraded from version 0.009 to 0.010
 
 =item *
 
-C<threads> has been upgraded from version 1.81_03 to 1.82
+C<Module::Build> has been upgraded from version 0.3607 to 0.3622.
+
+A notable change is the deprecation of several modules.
+Module::Build::Version has been deprecated and Module::Build now relies
+directly upon L<version>.  Module::Build::ModuleInfo has been deprecated in
+favor of a standalone copy of it called L<Module::Metadata>.
+Module::Build::YAML has been deprecated in favor of L<CPAN::Meta::YAML>.
 
 =item *
 
-C<threads::shared> has been upgraded from version 1.35 to 1.36
+C<Module::Load::Conditional> has been upgraded from version 0.40 to 0.42
+
+=item *
+
+C<Module::Metadata> has been upgraded from version 1.000003 to 1.000004.
+
+=item *
+
+C<Parse::CPAN::Meta> has been upgraded from version 1.40 to 1.4401.
+
+The latest Parse::CPAN::Meta can now read YAML or JSON files using
+L<CPAN::Meta::YAML> and L<JSON::PP>, which are now part of the Perl core.
+
+=item *
+
+C<Term::UI> has been upgraded from version 0.24 to 0.26
+
+=item *
+
+C<Unicode::Collate> has been upgraded from version 0.68 to 0.72
+
+This also sees the switch from using the pure-perl version of this
+module to the XS version.`
 
 =item *
 
@@ -145,13 +207,24 @@ XXX Changes which significantly change existing files in F<pod/> go here.
 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
 section.
 
-=head3 L<XXX>
+=head3 L<perlhack> and perlrepository
 
 =over 4
 
 =item *
 
-XXX Description of the change here
+The L<perlhack> and perlrepository documents have been heavily edited and
+split up into several new documents.
+
+The L<perlhack> document is now much shorter, and focuses on the Perl 5
+development process and submitting patches to Perl. The technical content has
+been moved to several new documents, L<perlsource>, L<perlinterp>,
+L<perlhacktut>, and L<perlhacktips>. This technical content has only been
+lightly edited.
+
+The perlrepository document has been renamed to L<perlgit>. This new document
+is just a how-to on using git with the Perl source code. Any other content
+that used to be in perlrepository has been moved to perlhack.
 
 =back
 
@@ -287,9 +360,16 @@ L</Modules and Pragmata> section.
 
 =over 4
 
-=item XXX-some-platform
+=item Windows
 
-XXX
+=over 4
+
+=item *
+
+The C<test-prep> build target now depends on F<pod/perltoc.pod> to allow the
+F<t/porting/buildtoc.t> test to run successfully.
+
+=back
 
 =back
 
@@ -305,12 +385,7 @@ be noted as well.
 
 =item *
 
-The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have
-been merged. The implementation functions C<Perl_do_chop()> and
-C<Perl_do_chomp()>, never part of the public API, have been merged and moved to
-a static function in F<pp.c>. This shrinks the perl binary slightly, and should
-not affect any code outside the core (unless it is relying on the order of side
-effects when C<chomp> is passed a I<list> of values).
+XXX
 
 =back
 
@@ -326,7 +401,8 @@ L</Modules and Pragmata>.
 
 =item *
 
-XXX
+A Unicode C<\p{}> property match in a regular rexpression pattern will
+now force Unicode rules for the rest of the regular expression
 
 =back