This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5133delta.pod: Acknowledgements and code delta
[perl5.git] / pod / perl5133delta.pod
index b9b0c2d..0d6ae7b 100644 (file)
@@ -2,11 +2,10 @@
 
 =head1 NAME
 
-[ 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.3
 
+XXX Add links around modules throughout
+
 =head1 DESCRIPTION
 
 This document describes differences between the 5.13.3 release and
@@ -16,18 +15,8 @@ If you are upgrading from an earlier release such as 5.13.1, first read
 L<perl5132delta>, which describes differences between 5.13.1 and
 5.13.2.
 
-=head1 Notice
-
-XXX Any important notices here
-
 =head1 Core Enhancements
 
-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.
-
-[ List each enhancement as a =head2 entry ]
-
 =head2 \o{...}
 
 The escape sequence C<"\o"> in double-quotish contexts is now defined.  It
@@ -60,33 +49,19 @@ name will C<charnames::viacode()> return your custom one.
 
 See L<charnames> for details on all these changes.
 
-=head2 Other enhancements
-
-=over
-
-=item *
-
-Uppercase X/B allowed in hexadecimal/binary literals (RT#76296) (a674e8d)
-
-=back
-
-=head1 Security
+=head2 Uppercase X/B allowed in hexadecimal/binary literals
 
-XXX Any security-related notices go here.  In particular, any security
-vulnerabilities closed should be noted here rather than in the
-L</Selected Bug Fixes> section.
+Literals may now use either upper case C<0X...> or C<0B...> prefixes,
+in addition to the already supported C<0x...> and C<0b...>
+syntax. (RT#76296) (a674e8d, 333f87f)
 
-[ List each security issue as a =head2 entry ]
+C, Ruby, Python and PHP already supported this syntax, and it makes
+Perl more internally consistent. A round-trip with C<eval sprintf
+"%#X", 0x10> now returns C<16> in addition to C<eval sprintf "%#x",
+0x10>, which worked before.
 
 =head1 Incompatible Changes
 
-XXX For a release on a stable branch, this section aspires to be:
-
-    There are no changes intentionally incompatible with 5.XXX.XXX. If any
-    exist, they are bugs and reports are welcome.
-
-[ List each incompatible change as a =head2 entry ]
-
 =head2 \400 - \777
 
 Use of C<\400> - C<\777> in regexes in certain circumstances has given different,
@@ -97,16 +72,10 @@ C<\x{100}> - C<\x{1FF}>, with no deprecation warning. Use of these values in the
 command line option C<"-0"> retains the current meaning to slurp input files
 whole; previously, this was documented only for C<"-0777">.  It is recommended,
 however, because of various ambiguities, to use the new L</\o{...}> construct
-to represent characters in octal.
+to represent characters in octal (fa1639c..f6993e9).
 
 =head1 Deprecations
 
-XXX Any deprecated features, syntax, modules etc. should be listed here.
-In particular, deprecated modules should be listed here even if they are
-listed as an updated module in the L</Modules and Pragmata> section.
-
-[ List each deprecation as a =head2 entry ]
-
 =head2 Omitting a space between regular expression and subsequent word
 
 Omitting a space between a regex pattern or pattern modifiers and the
@@ -126,11 +95,6 @@ course, does not generate the warning. (0111154)
 
 =head1 Performance Enhancements
 
-XXX Changes which enhance performance without changing behaviour go here. There
-may well be none in a stable release.
-
-[ List each enhancement as a =item entry ]
-
 =over 4
 
 =item *
@@ -141,26 +105,6 @@ There are several small optimizations to improve CPU cache performance
 
 =head1 Modules and Pragmata
 
-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.
-
-[ Within each section, list entries as a =item entry ]
-
-=head2 New Modules and Pragmata
-
-=over 4
-
-=item *
-
-XXX
-
-=back
-
 =head2 Updated Modules and Pragmata
 
 XXX Make sure these get sorted, are phrased similarly and all version
@@ -255,6 +199,12 @@ ExtUtil-ParseXS updated to version 2.2206 (494e8c4)
 
 File::Copy skips suid tests on a nosuid partition (cae9400)
 
+These tests were being skipped on OpenBSD, but nosuid partitions can
+exist on other systems too. Now it just checks if it can create a suid
+directory, if not the tests are skipped.
+
+Perl builds without errors in a nosuid /tmp with this patch.
+
 =item *
 
 IO-Compress upated to CPAN version 2.027 (e8796d6)
@@ -282,68 +232,58 @@ Module-Load updated to CPAN version 0.18 (93eaa32)
 
 =item *
 
-Time-HiRes updated to CPAN version 1.9721 (68c5b4d)
+Term-ANSIColor to CPAN version 3.00 (2c33c76)
 
 =item *
 
-Time-Piece updated to CPAN version 1.20 (90d55c2)
+Test-Harness to CPAN version 3.21 (6d31366)
+
+The core update from Test-Harness 3.17 to 3.21 fixed some things, but
+also L<introduced a known problem|/"Known Problems">.
 
 =item *
 
-Unicode-Collate updated to CPAN version 0.53.  Includes Unicode Collation
-Algorithm 18 (74b94a7)
+Time-HiRes updated to CPAN version 1.9721 (68c5b4d)
 
 =item *
 
-Unicode-Normalize updated to CPAN release 1.06 (a96160d)
-
-=back
+Time-Piece updated to CPAN version 1.20 (90d55c2)
 
-=head2 Removed Modules and Pragmata
+=item *
 
-=over 4
+Unicode-Collate updated to CPAN version 0.53.  Includes Unicode Collation
+Algorithm 18 (74b94a7)
 
 =item *
 
-XXX
+Unicode-Normalize updated to CPAN release 1.06 (a96160d)
 
 =back
 
 =head1 Documentation
 
-XXX Changes to files in F<pod/> go here.  Consider grouping entries by
-file and be sure to link to the appropriate page, e.g. L<perlfunc>.
-
-[ Within each section, list entries as a =item entry ]
-
 =head2 New Documentation
 
-XXX Changes which create B<new> files in F<pod/> go here.
-
 =head3 L<perl5121delta>
 
 The Perl 5.12.1 perldelta file was added from the Perl maintenance branch
 
 =head2 Changes to Existing Documentation
 
-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 General changes
 
 =over
 
 =item *
 
-Octal character escapes in documentation now prefer either the C<\gDIGIT>
-escape or else a three-digit octal escape as they have less ambiguity than
-other forms of octal escapes.  (ce7b6f0) (d8b950d)
+Octal character escapes in documentation now prefer a three-digit octal 
+escape or the new C<\o{}> escape as they have more consistent behavior
+in different contexts than other forms. (ce7b6f0) (d8b950d) (e1f120a)
 
 =item *
 
 Documentation now standardizes on the term 'capture group' over 'buffer'
-in regular expression documentation(c27a5cf)
+in regular expression documentation (c27a5cf)
 
 =back
 
@@ -367,7 +307,12 @@ Add additional notes regarding srand and forking (d460397)
 
 =item *
 
-Improved documentation of unusual character escapes (bf82ca4)
+Improved documentation of unusual character escapes (4068718, 9644846)
+
+=item *
+
+Clarifies how hexadecimal escapes are interpreted, with particular
+attention to the treatment of invalid characters. (9644846)
 
 =back
 
@@ -392,56 +337,29 @@ terms like "deprecation" (70e4a83)
 
 =back
 
-=head3 L<perltie>
+=head3 L<perlre>
 
 =over
 
 =item *
 
-Some examples updated for modern Perl style (67d00dd)
+Added examples on the perils of not using \g{} when there are more
+than nine back-references (9d86067)
 
 =back
 
-=head1 Diagnostics
-
-The following additions or changes have been made to diagnostic output,
-including warnings and fatal error messages.  For the complete list of
-diagnostic messages, see L<perldiag>.
-
-XXX New or changed warnings emitted by the core's C<C> code go here. Also
-include any changes in L<perldiag> that reconcile it to the C<C> code.
-
-[ Within each section, list entries as a =item entry ]
-
-=head2 New Diagnostics
-
-XXX Newly added diagnostic messages go here
-
-=over 4
-
-=item *
-
-XXX
-
-=back
-
-=head2 Changes to Existing Diagnostics
-
-XXX Changes (i.e. rewording) of diagnostic messages go here
+=head3 L<perltie>
 
-=over 4
+=over
 
 =item *
 
-XXX
+Some examples updated for modern Perl style (67d00dd)
 
 =back
 
 =head1 Utility Changes
 
-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>.
-
 =head3 L<perldb>
 
 =over
@@ -457,16 +375,8 @@ Uses the less pager path from Config instead of searching for it (bf320d6)
 
 =back
 
-
 =head1 Configuration and Compilation
 
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here.  Any other changes to the Perl build process should be listed here.
-However, any platform-specific changes should be listed in the
-L</Platform Support> section, instead.
-
-[ List changes as a =item entry ].
-
 =over 4
 
 =item *
@@ -477,14 +387,6 @@ Adjusts 'make test.valgrind' to account for cpan/dist/ext separation. (e07ce2e)
 
 =head1 Testing
 
-XXX Any significant changes to the testing of a freshly built perl should be
-listed here.  Changes which create B<new> files in F<t/> go here as do any
-large changes to the testing harness (e.g. when parallel testing was added).
-Changes to existing files in F<t/> aren't worth summarising, although the bugs
-that they represent may be covered elsewhere.
-
-[ List each test improvement as a =item entry ]
-
 =over 4
 
 =item *
@@ -503,47 +405,20 @@ Several test files have been modernized to use Test::More
 
 =head1 Platform Support
 
-XXX Any changes to platform support should be listed in the sections below.
-
-[ Within the sections, list each platform as a =item entry with specific
-changes as paragraphs below it. ]
-
-=head2 New Platforms
-
-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.
-
-=over 4
-
-=item XXX-some-platform
-
-XXX
-
-=back
-
 =head2 Discontinued Platforms
 
-XXX List any platforms that this version of perl no longer compiles on.
-
 =over 4
 
 =item MacOS Classic
 
 Support for MacOS Classic within ExtUtils::MakeMaker was removed from Perl in
 December 2004.  Vestigial MacOS Classic specific code has now been removed
-from other core modules as well.
+from other core modules as well (8f8c2a4..c457df0).
 
 =back
 
 =head2 Platform-Specific Notes
 
-XXX List any changes for specific platforms. This could include configuration
-and compilation changes or changes in portability/compatibility.  However,
-changes within modules for platforms should generally be listed in the
-L</Modules and Pragmata> section.
-
 =over 4
 
 =item Win32
@@ -555,12 +430,6 @@ robustness. (5732108)
 
 =head1 Internal Changes
 
-XXX Changes which affect the interface available to C<XS> code go here.
-Other significant internal changes for future core maintainers should
-be noted as well.
-
-[ List each improvement as a =item entry ]
-
 =over 4
 
 =item *
@@ -570,7 +439,9 @@ counted. To ensure consistent behaviour, direct assignment to it, for
 example C<CvGV(cv) = gv> is now a compile-time error. A new macro,
 C<CvGV_set(cv,gv)> has been introduced to perform this operation safely.
 Note that modification of this field is not part of of the public API,
-regardless of this new macro.
+regardless of this new macro. This change caused some
+L<issues|/"Known Problems"> in modules that used the private C<GvGV()>
+field.
 
 =item *
 
@@ -598,12 +469,6 @@ variants that allow us to control this. (0d7d409)
 
 =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>.
-
-[ List each fix as a =item entry ]
-
 =over 4
 
 =item *
@@ -678,22 +543,29 @@ Fix pthread include error for Time::Piece (e9f284c)
 
 =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
 
-[ List each fix as a =item entry ]
+=item *
 
-=over 4
+Bug fixes involving CvGV reference counting break L<Sub::Name>.  A
+patch has been sent upstream to the maintainer.
 
 =item *
 
 readline() returns an empty string instead of undef when it is
 interrupted by a signal.
 
+=item *
+
+Test-Harness was updated from 3.17 to 3.21 for this release. A rewrite
+in how it handles non-Perl tests (in 3.17_01) broke argument passing
+to non-Perl tests with L<prove(1)> (RT #59186), and required that
+non-Perl tests be run as C<prove ./test.sh> instead of C<prove
+test.sh> (RT #59457).
+
+These issues are being solved upstream, but didn't make it into this
+release. They're expected to be fixed in time for perl v5.13.4.
+
 =back
 
 =head1 Errata
@@ -707,14 +579,37 @@ which was excluded in the original release (d1e2db0)
 
 =back
 
-=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.13.3 represents approximately one month of development since Perl
+5.13.2, and contains 12,184 lines of changes across 575 files from 104
+authors and committers.
+
+Thank you to the following for contributing to this release:
+
+Abhijit Menon-Sen, Abigail, Alex Davies, Alex Vandiver, Alexandr
+Ciornii, Andreas J. Koenig, Andrew Rodland, Andy Dougherty, Aristotle
+Pagaltzis, Arkturuz, Ben Morrow, Bo Borgerson, Bo Lindbergh, Brad
+Gilbert, Bram, Brian Phillips, Chas. Owens, Chip Salzenberg, Chris
+Williams, Craig A. Berry, Curtis Jewell, Dan Dascalescu, Daniel
+Frederick Crisman, Dave Rolsky, David Caldwell, David E. Wheeler, David
+Golden, David Leadbeater, David Mitchell, Dennis Kaarsemaker, Eric
+Brine, Father Chrysostomos, Florian Ragwitz, Frank Wiegand, Gene
+Sullivan, George Greer, Gerard Goossen, Gisle Aas, Goro Fuji, Graham
+Barr, H.Merijn Brand, Harmen, Hugo van der Sanden, James E Keenan, James
+Mastros, Jan Dubois, Jerry D. Hedden, Jesse Vincent, Jim Cromie, John
+Peacock, Jos Boumans, Josh ben Jore, Karl Williamson, Kevin Ryde, Leon
+Brocard, Lubomir Rintel, Maik Hentsche, Marcus Holland-Moritz, Matt
+Johnson, Matt S Trout, Max Maischein, Michael Breen, Michael G Schwern,
+Moritz Lenz, Nga Tang Chan, Nicholas Clark, Nick Cleaton, Nick Johnston,
+Niko Tyni, Offer Kaye, Paul Marquess, Philip Hazel, Philippe Bruhat,
+Rafael Garcia-Suarez, Rainer Tammer, Reini Urban, Ricardo Signes,
+Richard Soderberg, Robin Barker, Ruslan Zakirov, Salvador Fandino,
+Salvador Ortiz Garcia, Shlomi Fish, Sinan Unur, Sisyphus, Slaven Rezic,
+Steffen Mueller, Stepan Kasal, Steve Hay, Steve Peters, Sullivan Beck,
+Tim Bunce, Todd Rinaldo, Tom Christiansen, Tom Hukins, Tony Cook,
+Vincent Pit, Yuval Kogman, Yves Orton, Zefram, brian d foy, chromatic,
+kmx, Ævar Arnfjörð Bjarmason
 
 =head1 Reporting Bugs