This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Document getprotobynumber’s precedence
[perl5.git] / pod / perl5114delta.pod
index d6c5974..64ff10b 100644 (file)
@@ -1,6 +1,6 @@
 =head1 NAME
 
-perldelta - what is new for perl v5.11.4
+perl5114delta - what is new for perl v5.11.4
 
 =head1 DESCRIPTION
 
@@ -11,23 +11,30 @@ If you are upgrading from an earlier release such as 5.11.2, first read
 L<perl5113delta>, which describes differences between 5.11.2 and
 5.11.3.
 
-=head1 Notice
-
-XXX Any important notices here
-
 =head1 Incompatible Changes
 
-XXX For a release on a stable branch, this section aspires to be:
+=head2 Version number formats
 
-    There are no changes intentionally incompatible with 5.XXX.XXX. If any
-    exist, they are bugs and reports are welcome.
+Acceptable version number formats have been formalized into "strict" and
+"lax" rules.  C<package NAME VERSION> takes a strict version number.  C<use
+NAME VERSION> takes a lax version number.  C<UNIVERSAL::VERSION> and the
+L<version> object constructors take lax version numbers.  Providing an
+invalid version will result in a fatal error.
 
+These formats will be documented fully in the L<version> module in a
+subsequent release of Perl 5.11.  To a first approximation, a "strict"
+version number is a positive decimal number (integer or decimal-fraction)
+without exponentiation or else a dotted-decimal v-string with a leading 'v'
+character and at least three components.  A "lax" version number allows
+v-strings with fewer than three components or without a leading 'v'.  Under
+"lax" rules, both decimal and dotted-decimal versions may have a trailing
+"alpha" component separated by an underscore character after a fractional
+or dotted-decimal component.
 
-=head1 Core Enhancements
+The L<version> module adds C<version::is_strict> and C<version::is_lax>
+functions to check a scalar against these rules.
 
-XXX New core language features go here. Summarise user-visible core language
-enhancements. Particularly prominent performance optimisations could go
-here, but most should go in the L</Performance Enhancements> section.
+=head1 Core Enhancements
 
 =head2 Unicode properties
 
@@ -36,109 +43,123 @@ means that in addition to the characters it currently matches,
 C<[A-Fa-f0-9]>, it will also match their fullwidth equivalent forms, for
 example U+FF10: FULLWIDTH DIGIT ZERO.
 
-=head1 New Platforms
+=head1 Modules and Pragmata
 
-XXX List any platforms that this version of perl compiles on, that previous
-versions did not. These will either be enabled by new files in the F<hints/>
-directories, or new subdirectories and F<README> files at the top level of the
-source tree.
+=head2 Pragmata Changes
 
-=head1 Modules and Pragmata
+=over 4
 
-XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
-go here.  If Module::CoreList is updated, generate an initial draft of the
-following sections using F<Porting/corelist-perldelta.pl>, which prints stub
-entries to STDOUT.  Results can be pasted in place of the '=head2' entries
-below.  A paragraph summary for important changes should then be added by hand.
-In an ideal world, dual-life modules would have a F<Changes> file that could be
-cribbed.
+=item C<less>
 
-=head2 New Modules and Pragmata
+Upgraded from version 0.02 to 0.03.
 
-=head2 Pragmata Changes
+This version introduces the C<stash_name> method to allow subclasses of less to
+pick where in %^H to store their stash.
 
-=head2 Updated Modules
+=item C<version>
 
-=head2 Removed Modules and Pragmata
+Upgraded from version 0.77 to 0.81.
+
+This version adds support for L</Version number formats> as described earlier
+in this document and in its own documentation.
+
+=item C<warnings>
+
+Upgraded from version 1.08 to 1.09.
+
+This version adds the C<illegalproto> warning category.  See also L</New or
+Changed Diagnostics> for this change.
 
-=head1 Utility Changes
+=back
 
-XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
-here. Most of these are built within the directories F<utils> and F<x2p>.
+=head2 Updated Modules
 
 =over 4
 
-=item F<XXX>
+=item C<Archive::Extract>
 
-XXX
+Upgraded from version 0.36 to 0.38.
 
-=back
+=item C<B::Deparse>
 
-=head1 New Documentation
+Upgraded from version 0.93 to 0.94.
 
-XXX Changes which create B<new> files in F<pod/> go here.
+=item C<Compress::Raw::Bzip2>
 
-=over 4
+Upgraded from version 2.021 to 2.024.
 
-=item L<XXX>
+=item C<Compress::Raw::Zlib>
 
-XXX
+Upgraded from version 2.021 to 2.024.
 
-=back
+=item C<CPAN>
 
-=head1 Changes to Existing Documentation
+Upgraded from version 1.94_5301 to 1.94_54.
 
-XXX Changes which significantly change existing files in F<pod/> go here.
-Any changes to F<pod/perldiag.pod> should go in L</New or Changed Diagnostics>.
+=item C<File::Fetch>
 
+Upgraded from version 0.22 to 0.24.
 
-=head1 Performance Enhancements
+=item C<Module::Build>
 
-XXX Changes which enhance performance without changing behaviour go here. There
-may well be none in a stable release.
+Upgraded from version 0.36 to 0.3603.
 
-=over 4
+=item C<Safe>
 
-=item *
+Upgraded from version 2.20 to 2.21.
 
-XXX
+Anonymous coderefs created in Safe containers no longer get bogus
+arguments passed to them, fixing RT #72068.
 
 =back
 
-=head1 Installation and Configuration Improvements
+=head2 Removed Modules and Pragmata
+
+=over 4
 
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here.
+=item C<Devel::DProf::V>
 
-=head2 Configuration improvements
+Removed from the Perl core.  Prior version was 'undef'.
 
-XXX
+=back
+
+=head1 Changes to Existing Documentation
 
-=head2 Compilation improvements
+A significant fraction of the core documentation has been updated to clarify
+the behavior of Perl's Unicode handling.
 
-XXX
+Much of the remaining core documentation has been reviewed and edited
+for clarity, consistent use of language, and to fix the spelling of Tom
+Christiansen's name.
+
+=head2 Configuration improvements
+
+USE_ATTRIBUTES_FOR_PERLIO is now reported in the compile-time options
+listed by the C<-V> switch.
 
 =head2 Platform Specific Changes
 
 =over 4
 
-=item XXX-some-platform
+=item VMS
 
-XXX
+The default pipe buffer size on VMS has been updated to 8192 on 64-bit
+systems.
 
 =back
 
 =head1 Selected Bug Fixes
 
-XXX Important bug fixes in the core language are summarised here.
-Bug fixes in files in F<ext/> and F<lib/> are best summarised in
-L</Modules and Pragmata>.
-
 =over 4
 
 =item *
 
-XXX
+Tie::Hash::NamedCapture::* shouldn't abort if passed bad input (RT #71828)
+
+=item *
+
+@_ and $_ no longer leak under threads (RT #34342 and #41138, also
+#70602, #70974)
 
 =back
 
@@ -173,46 +194,19 @@ lvalue after it has been defined.
 
 =head1 Changed Internals
 
-XXX Changes which affect the interface available to C<XS> code go here.
-
 =over 4
 
 =item *
 
-XXX
-
-=back
-
-=head1 New Tests
-
-XXX Changes which create B<new> files in F<t/> go here. Changes to
-existing files in F<t/> aren't worth summarising, although the bugs that
-they represent may be.
-
-=over 4
-
-=item F<XXX>
-
-XXX
+Perl_magic_setmglob now knows about globs, fixing RT #71254.
 
 =back
 
 =head1 Known Problems
 
-XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
-tests that had to be C<TODO>ed for the release would be noted here, unless
-they were specific to a particular platform (see below).
-
-This is a list of some significant unfixed bugs, which are regressions
-from either 5.XXX.XXX or 5.XXX.XXX.
-
-=over 4
-
-=item *
-
-XXX
-
-=back
+Perl 5.11.4 is a development release leading up to Perl 5.12.0.
+Some notable known problems found in 5.11.4 are listed as dependencies
+of RT #69710, the Perl 5 version 12 meta-ticket.
 
 =head1 Deprecations
 
@@ -222,47 +216,49 @@ The following items are now deprecated.
 
 =item C<< UNIVERSAL-E<gt>import() >>
 
-The method C<< UNIVERSAL-E<gt>import() >> is now deprecated.
-Attempting to pass import arguments to a C<use UNIVERSAL>
-statement will result in a deprecation warning. (This is
-a less noisy version of the full deprecation warning
-added in 5.11.0.)
+The method C<< UNIVERSAL-E<gt>import() >> is now deprecated.  Attempting to
+pass import arguments to a C<use UNIVERSAL> statement will result in a
+deprecation warning. (This is a less noisy version of the full deprecation
+warning added in 5.11.0.)
 
 =back
 
-=head1 Platform Specific Notes
-
-XXX Any changes specific to a particular platform. VMS and Win32 are the usual
-stars here. It's probably best to group changes under the same section layout
-as the main perldelta
-
-=head1 Obituary
-
-XXX If any significant core contributor has died, we've added a short obituary
-here.
-
 =head1 Acknowledgements
 
-XXX The list of people to thank goes here.
+Perl 5.11.4 represents approximately one month of development since
+Perl 5.11.3 and contains 17682 lines of changes across 318 files
+from 40 authors and committers:
+
+Abigail, Andy Dougherty, brian d foy, Chris Williams, Craig A. Berry,
+David Golden, David Mitchell, Father Chrysostomos, Gerard Goossen,
+H.Merijn Brand, Jesse Vincent, Jim Cromie, Josh ben Jore, Karl
+Williamson, kmx, Matt S Trout, Nicholas Clark, Niko Tyni, Paul Marquess,
+Philip Hazel, Rafael Garcia-Suarez, Rainer Tammer, Reini Urban, Ricardo
+Signes, Shlomi Fish, Tim Bunce, Todd Rinaldo, Tom Christiansen, Tony
+Cook, Vincent Pit, and Zefram
 
+Many of the changes included in this version originated in the CPAN
+modules included in Perl's core. We're grateful to the entire CPAN
+community for helping Perl to flourish.
 
 =head1 Reporting Bugs
 
 If you find what you think is a bug, you might check the articles
 recently posted to the comp.lang.perl.misc newsgroup and the perl
-bug database at http://rt.perl.org/perlbug/ .  There may also be
-information at http://www.perl.org/ , the Perl Home Page.
+bug database at L<http://rt.perl.org/perlbug/>.  There may also be
+information at L<http://www.perl.org/>, the Perl Home Page.
 
 If you believe you have an unreported bug, please run the B<perlbug>
 program included with your release.  Be sure to trim your bug down
 to a tiny but sufficient test case.  Your bug report, along with the
 output of C<perl -V>, will be sent off to perlbug@perl.org to be
-analysed by the Perl porting team.
+analyzed by the Perl porting team.
 
 If the bug you are reporting has security implications, which make it
 inappropriate to send to a publicly archived mailing list, then please send
 it to perl5-security-report@perl.org. This points to a closed subscription
-unarchived mailing list, which includes all the core committers, who be able
+unarchived mailing list, which includes
+all the core committers, who will be able
 to help assess the impact of issues, figure out a resolution, and help
 co-ordinate the release of patches to mitigate or fix the problem across all
 platforms on which Perl is supported. Please only use this address for