summaryrefslogtreecommitdiff
path: root/pod/perldelta.pod
diff options
context:
space:
mode:
Diffstat (limited to 'pod/perldelta.pod')
-rw-r--r--pod/perldelta.pod362
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