diff options
Diffstat (limited to 'pod/perldelta.pod')
-rw-r--r-- | pod/perldelta.pod | 362 |
1 files changed, 178 insertions, 184 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 5ffd9125a6..e3a9cbf1b2 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,367 +2,361 @@ =head1 NAME -perldelta - what is new for perl v5.15.9 +[ 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.15.10 =head1 DESCRIPTION -This document describes differences between the 5.15.8 release and -the 5.15.9 release. +This document describes differences between the 5.15.9 release and +the 5.15.10 release. -If you are upgrading from an earlier release such as 5.15.7, first read -L<perl5158delta>, which describes differences between 5.15.7 and -5.15.8. +If you are upgrading from an earlier release such as 5.15.8, first read +L<perl5159delta>, which describes differences between 5.15.8 and +5.15.9. =head1 Notice -This space intentionally left blank. +XXX Any important notices here =head1 Core Enhancements -=head2 C<< no feature; >> now means reset to default +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. -C<< no feature >> now resets to the default feature set. To disable all -features (which is likely to be a pretty special-purpose request, since -it presumably won't match any named set of semantics) you can now -write C<< no feature ':all' >>. +[ List each enhancement as a =head2 entry ] =head1 Security -=head2 Malformed UTF-8 input could cause attempts to read beyond the end of the buffer +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. -Two new XS-accessible functions, C<utf8_to_uvchr_buf()> and -C<utf8_to_uvuni_buf()> are now available to prevent this, and the Perl -core has been converted to use them. -See L</Internal Changes>. +[ List each security issue as a =head2 entry ] =head1 Incompatible Changes -=head2 C<< no feature; >> +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 we request that you submit a + report. See L</Reporting Bugs> below. -C<no feature;> now means reset to default. +[ List each incompatible change as a =head2 entry ] =head1 Deprecations -=head2 Literal C<< "{" >> characters in regular expressions. +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. -It has been documented that the current plans include requiring a -literal C<< "{" >> to be escaped: 5.18 will emit deprecation warnings, -and it will be required in 5.20. +[ List each deprecation as a =head2 entry ] -=head2 XS functions C<utf8_to_uvchr()> and C<utf8_to_uvuni()> +=head1 Performance Enhancements -Use C<utf8_to_uvchr_buf()> and C<utf8_to_uvuni_buf()> instead. -See L</Internal Changes>. +XXX Changes which enhance performance without changing behaviour go here. There +may well be none in a stable release. -=head1 Performance Enhancements +[ List each enhancement as a =item entry ] =over 4 =item * -Fix a slowdown in freeing nested hashes. This may speedup the exit of -certain programs. +XXX =back =head1 Modules and Pragmata -=head2 Updated 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. -=over 4 +[ Within each section, list entries as a =item entry ] -=item * +=head2 New Modules and Pragmata -C<attributes> has been upgraded from version 0.17 to 0.18. +=over 4 =item * -C<charnames> has been upgraded from version 1.29 to 1.30. +XXX -=item * +=back -C<feature> has been upgraded from version 1.26 to 1.27. +=head2 Updated Modules and Pragmata -C<no feature;> now means reset to default. The code has been refactored -to reduce duplication. +=over 4 =item * -C<B::Deparse> has been upgraded from version 1.12 to 1.13. +L<XXX> has been upgraded from version 0.69 to version 0.70. -=item * - -C<B::Lint> has been upgraded from version 1.13 to 1.14. +=back -=item * +=head2 Removed Modules and Pragmata -C<CPAN::Meta> has been upgraded from version 2.120351 to 2.120630. +=over 4 =item * -C<CPANPLUS> has been upgraded from version 0.9118 to 0.9121. +XXX -=item * +=back -C<Data::Dumper> has been upgraded from version 2.135_05 to 2.135_06. +=head1 Documentation -=item * +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>. -C<Digest::SHA> has been upgraded from version 5.70 to 5.71. +=head2 New Documentation -=item * +XXX Changes which create B<new> files in F<pod/> go here. -C<ExtUtils::CBuilder> has been upgraded from version 0.280205 to 0.280206. +=head3 L<XXX> -=item * +XXX Description of the purpose of the new file here -C<HTTP::Tiny> has been upgraded from version 0.016 to 0.017. +=head2 Changes to Existing Documentation -=item * +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> -C<Module::CoreList> has been upgraded from version 2.60 to 2.65. +=over 4 =item * -C<Pod::Html> has been upgraded from version 1.14 to 1.1501. +XXX Description of the change here -=item * +=back -C<Pod::Perldoc> has been upgraded from version 3.15_15 to 3.17. +=head1 Diagnostics -=item * +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>. -C<Pod::Simple> has been upgraded from version 3.19 to 3.20. +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. -=item * +[ Within each section, list entries as a =item entry that links to perldiag, + e.g. -C<Socket> has been upgraded from version 1.98 to 2.000. + =item * -=item * + L<Invalid version object|perldiag/"Invalid version object"> +] -C<Term::ReadLine> has been upgraded from version 1.08 to 1.09. +=head2 New Diagnostics -C<< Term::ReadLine >> now optionally integrates with event loops -other than C<< Tk >>. +XXX Newly added diagnostic messages go here -=item * +=head3 New Errors -C<Unicode::Collate> has been upgraded from version 0.87 to 0.89. +=over 4 =item * -C<Unicode::Normalize> has been upgraded from version 1.13 to 1.14. +XXX L<message|perldiag/"message"> -=item * +=back -C<Unicode::UCD> has been upgraded from version 0.41 to 0.42. +=head3 New Warnings + +=over 4 =item * -C<XS::APItest> has been upgraded from version 0.36 to 0.37. +XXX L<message|perldiag/"message"> =back +=head2 Changes to Existing Diagnostics -=head1 Documentation - -There has been no significant change in the documentation between -5.15.8 and 5.15.9. +XXX Changes (i.e. rewording) of diagnostic messages go here -=head1 Diagnostics +=over 4 -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>. +=item * -=head2 New Diagnostics +XXX Describe change here -=head3 New Errors +=back -Compared to 5.15.8, 5.15.9 does not introduce new errors. +=head1 Utility Changes -=head3 New Warnings +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>. -Compared to 5.15.8, 5.15.9 does not introduce new warnings, but see -L</Changes to Existing Diagnostics> +[ List utility changes as a =head3 entry for each utility and =item +entries for each change +Use L<XXX> with program names to get proper documentation linking. ] -=head2 Changes to Existing Diagnostics +=head3 L<XXX> =over 4 =item * -L<lvalue attribute %s already-defined subroutine|perldiag/"lvalue attribute %s already-defined subroutine">, which replaces -C<< lvalue attribute cannot be removed after the subroutine has been defined >>. +XXX =back -=head1 Utility Changes +=head1 Configuration and Compilation -No utilities changed between 5.15.8 and 5.15.9. +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. -=head1 Configuration and Compilation +[ List changes as a =item entry ]. =over 4 =item * -C<< perlfunc.html >> is now being generated again. [perl #107870] +XXX =back =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 * -F<< t/op/require_37033.t >> has been added, to test that C<require> -always closes the file handle that it opens. Previously, it had been -leaking the file handle if it happened to have file descriptor 0, which -would happen if C<require> was called (explicitly or implicitly) when -C<STDIN> had been closed. +XXX =back =head1 Platform Support -There have been no changes to Perl's support of various platforms between -5.15.8 and 5.15.9. +XXX Any changes to platform support should be listed in the sections below. -=head1 Internal Changes +[ Within the sections, list each platform as a =item entry with specific +changes as paragraphs below it. ] -=over 4 +=head2 New Platforms -=item * +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. -Two new functions C<utf8_to_uvchr_buf()> and C<utf8_to_uvuni_buf()> have -been added. These are the same as C<utf8_to_uvchr> and -C<utf8_to_uvuni> (which are now deprecated), but take an extra parameter -that is used to guard against reading beyond the end of the input -string. -See L<perlapi/utf8_to_uvchr_buf> and L<perlapi/utf8_to_uvuni_buf>. +=over 4 -=item * +=item XXX-some-platform -The regular expression engine now does TRIE case insensitive matches -under Unicode. This may change the output of C<< use re 'debug'; >>, -and will speed up various things. +XXX =back -=head1 Selected Bug Fixes +=head2 Discontinued Platforms -=over 4 +XXX List any platforms that this version of perl no longer compiles on. -=item * +=over 4 -I<Takri> now matches two more characters under the C<Script_Extensions> -property. This corrects a Unicode 6.1 omission. +=item XXX-some-platform -=item * +XXX -C<< perlfunc.html >> is now being generated again. [perl #107870] +=back -=item * +=head2 Platform-Specific Notes -C<< $$ >> is no longer tainted. Since this value comes directly from -C<< getpid() >>, it is always safe. +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. -=item * +=over 4 -Fix leaking a file handle. [perl #37033] +=item XXX-some-platform -=item * +XXX -An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to -unexpectedly match characters with code points above 255. This has been -rectified. [perl 111400]. +=back -=item * +=head1 Internal Changes -C<< (?foo: ...) >> no longer loses passed in character set. +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. -=item * +[ List each change as a =item entry ] -Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366]. +=over 4 =item * -C<< die; >> with a non-reference, non-string value in $@ now properly -propagates that value [perl #111654]. +XXX =back -=head1 Known Problems - -This is a list of some significant unfixed bugs, which need to be -resolved before 5.16.0 - -=over 4 - -=item F<< op/sigdispatch.t >> fails alarm test 14 and gets killed [perl #89718] +=head1 Selected Bug Fixes -E<32> +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>. -=item Perl crash due to wrong delimiter in C<< PATH >> environment [perl #94846] +[ List each fix as a =item entry ] -It's possible to crash perl under Win32 if the wrong delimiter is used. +=over 4 -=item Corrupt UTF8 [perl #79960, #100058] +=item * -It is possible to read an invalid UTF8 character, but have it marked valid, -or to incorrectly read UTF8 characters if C<< $/ >> is set to read fixed -length records. +XXX -=item UTF8 patches for 5.16 [perl #107008] +=back -Brian Fraser's work on UTF8 needs further integration. +=head1 Known Problems -=item C<eval { 'fork()' }> is broken on Windows [perl #109718] +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 known test failure to be fixed before 5.16.0. +This is a list of some significant unfixed bugs, which are regressions +from either 5.XXX.XXX or 5.XXX.XXX. -=item Warnings from cpan/IO-Compress [perl #110736] +[ List each fix as a =item entry ] -Some tests in F<< cpan/IO-Compress/t/cz-03zlib-v1.t >> issues a -"isn't numeric" warning in blead, but not in maint. +=over 4 -=item C<< Pod-Html >> test failures on Windows. +=item * -A number of tests for C<< Pod::Html >> fail under Windows, due to an -incorrect assumption by the test scripts about capitalization of the -network drive. +XXX =back -=head1 Acknowledgements - -Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8 -and contains approximately 79,000 lines of changes across 530 files from 23 -authors. - -Perl continues to flourish into its third decade thanks to a vibrant community -of users and developers. The following people are known to have contributed the -improvements that became Perl 5.15.9: +=head1 Obituary -Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky, -David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos, -Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green, -Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony -Cook, Yves Orton, Zefram. +XXX If any significant core contributor has died, we've added a short obituary +here. -The list above is almost certainly incomplete as it is automatically generated -from version control history. In particular, it does not include the names of -the (very much appreciated) contributors who reported issues to the Perl bug -tracker. +=head1 Acknowledgements -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. +XXX Generate this with: -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. + perl Porting/acknowledgements.pl v5.15.9..HEAD =head1 Reporting Bugs |