diff options
author | Ricardo Signes <rjbs@cpan.org> | 2014-05-16 17:17:49 -0400 |
---|---|---|
committer | Ricardo Signes <rjbs@cpan.org> | 2014-05-16 17:17:49 -0400 |
commit | fa3ca71e52a1444e764e6d974b32d7006909a41b (patch) | |
tree | a8590b3f4517a1b6eae9c06ca1d35330fa93b1fd | |
parent | 24a38d90325f6eba2a0d0bcc533b6b8b38276ed0 (diff) | |
download | perl-fa3ca71e52a1444e764e6d974b32d7006909a41b.tar.gz |
remove the perl519*delta documents
-rw-r--r-- | MANIFEST | 12 | ||||
-rw-r--r-- | pod/perl.pod | 12 | ||||
-rw-r--r-- | pod/perl5190delta.pod | 139 | ||||
-rw-r--r-- | pod/perl51910delta.pod | 464 | ||||
-rw-r--r-- | pod/perl51911delta.pod | 353 | ||||
-rw-r--r-- | pod/perl5191delta.pod | 801 | ||||
-rw-r--r-- | pod/perl5192delta.pod | 661 | ||||
-rw-r--r-- | pod/perl5193delta.pod | 736 | ||||
-rw-r--r-- | pod/perl5194delta.pod | 1235 | ||||
-rw-r--r-- | pod/perl5195delta.pod | 525 | ||||
-rw-r--r-- | pod/perl5196delta.pod | 611 | ||||
-rw-r--r-- | pod/perl5197delta.pod | 414 | ||||
-rw-r--r-- | pod/perl5198delta.pod | 524 | ||||
-rw-r--r-- | pod/perl5199delta.pod | 779 | ||||
-rw-r--r-- | win32/pod.mak | 48 |
15 files changed, 0 insertions, 7314 deletions
@@ -4592,18 +4592,6 @@ pod/perl5163delta.pod Perl changes in version 5.16.3 pod/perl5180delta.pod Perl changes in version 5.18.0 pod/perl5181delta.pod Perl changes in version 5.18.1 pod/perl5182delta.pod Perl changes in version 5.18.2 -pod/perl5190delta.pod Perl changes in version 5.19.0 -pod/perl51910delta.pod Perl changes in version 5.19.10 -pod/perl51911delta.pod Perl changes in version 5.19.11 -pod/perl5191delta.pod Perl changes in version 5.19.1 -pod/perl5192delta.pod Perl changes in version 5.19.2 -pod/perl5193delta.pod Perl changes in version 5.19.3 -pod/perl5194delta.pod Perl changes in version 5.19.4 -pod/perl5195delta.pod Perl changes in version 5.19.5 -pod/perl5196delta.pod Perl changes in version 5.19.6 -pod/perl5197delta.pod Perl changes in version 5.19.7 -pod/perl5198delta.pod Perl changes in version 5.19.8 -pod/perl5199delta.pod Perl changes in version 5.19.9 pod/perl561delta.pod Perl changes in version 5.6.1 pod/perl56delta.pod Perl changes in version 5.6 pod/perl581delta.pod Perl changes in version 5.8.1 diff --git a/pod/perl.pod b/pod/perl.pod index 60be7941f9..2e8d0d8e6d 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -179,18 +179,6 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp perlhist Perl history records perldelta Perl changes since previous version - perl51911delta Perl changes in version 5.19.11 - perl51910delta Perl changes in version 5.19.10 - perl5199delta Perl changes in version 5.19.9 - perl5198delta Perl changes in version 5.19.8 - perl5197delta Perl changes in version 5.19.7 - perl5196delta Perl changes in version 5.19.6 - perl5195delta Perl changes in version 5.19.5 - perl5194delta Perl changes in version 5.19.4 - perl5193delta Perl changes in version 5.19.3 - perl5192delta Perl changes in version 5.19.2 - perl5191delta Perl changes in version 5.19.1 - perl5190delta Perl changes in version 5.19.0 perl5182delta Perl changes in version 5.18.2 perl5181delta Perl changes in version 5.18.1 perl5180delta Perl changes in version 5.18.0 diff --git a/pod/perl5190delta.pod b/pod/perl5190delta.pod deleted file mode 100644 index d6b3d76b65..0000000000 --- a/pod/perl5190delta.pod +++ /dev/null @@ -1,139 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5190delta - what is new for perl v5.19.0 - -=head1 DESCRIPTION - -This document describes differences between the 5.18.0 release and the 5.19.0 -release. - -If you are upgrading from an earlier release such as 5.17.0, first read -L<perl5180delta>, which describes differences between 5.17.0 and 5.18.0. - -=head1 Notice - -In v5.18.0, quite a few modules were marked for removal. They have now been -removed. See L<Removed Modules and Pragmata>, below. - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Getopt::Std> has been upgraded from version 1.07 to 1.08. - -=item * - -L<Module::CoreList> has been upgraded from version 2.90 to 2.91. - -=item * - -L<Storable> has been upgraded from version 2.41 to 2.42. - -=item * - -L<feature> has been upgraded from version 1.32 to 1.33. - -=item * - -L<utf8> has been upgraded from version 1.10 to 1.11. - -=back - -=head2 Removed Modules and Pragmata - -The distributions below have been removed from the core, but are still -available on the CPAN. In many cases, the named distribution includes -multiple modules, which are not listed individually. For a -comprehensive list of removals, consult: - - $ corelist --dif 5.18.0 5.19.0 | grep absent - -=over - -=item Archive-Extract - -=item B-Lint - -=item CPANPLUS - -=item File-CheckTree - -=item Log-Message - -=item Module-Pluggable - -=item Object-Accessor - -=item Pod-LaTeX - -=item Term-UI - -=item Text-Soundex - -=back - -=head1 Acknowledgements - -Perl 5.19.0 represents approximately 0.2857142857 weeks of development -since Perl 5.18.0 and contains approximately 52,000 lines of changes -across 310 files from 6 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.19.0: - -Brian Fraser, Chris 'BinGOs' Williams, Karl Williamson, Nicholas Clark, -Reuben Thomas, Ricardo Signes. - -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. - -Many of the changes included in this version are the removal of modules -no longer shipped with Perl's core. We thank those modules for their -service and wish them luck in their future endeavors. - -For a more complete list of all of Perl's historical contributors, -please see the F<AUTHORS> file in the Perl source distribution. - -=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. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl51910delta.pod b/pod/perl51910delta.pod deleted file mode 100644 index 530374ddba..0000000000 --- a/pod/perl51910delta.pod +++ /dev/null @@ -1,464 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl51910delta - what is new for perl v5.19.10 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.9 release and the 5.19.10 -release. - -If you are upgrading from an earlier release such as 5.19.8, first read -L<perl5199delta>, which describes differences between 5.19.8 and 5.19.9. - -=head1 Deprecations - -=head2 Discouraged features - -=over 4 - -=item * - -The "interpreter-based threads" provided by Perl are not the fast, lightweight -system for multitasking that one might expect or hope for. Threads are -implemented in a way that make them easy to misuse. Few people know how to -use them correctly or will be able to provide help. - -The use of interpreter-based threads in perl is officially -L<discouraged|perlpolicy/discouraged>. - -=back - -=head1 Performance Enhancements - -=over 4 - -=item * - -When doing a global regex match on a string that came from the C<readline> -or C<E<lt>E<gt>> operator, the data is no longer copied unnecessarily. -[perl #121259] - -=item * - -Executing a regex that contains the C<^> anchor (or its variant under the -C</m> flag) has been made much faster in several situations. - -=item * - -It is now faster to create certain sorts of lists, including array and hash -slices. - -=item * - -The optimisation for arrays indexed with a small constant integer is now -applied for integers in the range -128..127, rather than 0..255. This should -speed up Perl code using expressions like C<$x[-1]>, at the expense of -(presumably much rarer) code using expressions like C<$x[200]>. - -=item * - -Dereferencing (as in C<$obj-E<gt>[0]> or C<$obj-E<gt>{k}>) is now faster -when C<$obj> is an instance of a class that has overloaded methods, but -doesn't overload any of the dereferencing methods C<@{}>, C<%{}>, and so on. - -=item * - -The first iteration over a large hash (using C<keys> or C<each>) is now -faster. This is achieved by preallocating the hash's internal iterator -state, rather than lazily creating it when the hash is first iterated. (For -small hashes, the iterator is still created only when first needed. The -assumption is that small hashes are more likely to be used as objects, and -therefore never allocated. For large hashes, that's less likely to be true, -and the cost of allocating the iterator is swamped by the cost of allocating -space for the hash itself.) - -=item * - -Perl's optimiser no longer skips optimising code that follows certain -C<eval {}> expressions (including those with an apparent infinite loop). - -=item * - -The implementation now does a better job of avoiding meaningless work at -runtime. Internal effect-free "null" operations (created as a side-effect of -parsing Perl programs) are normally deleted during compilation. That -deletion is now applied in some situations that weren't previously handled. - -=item * - -A few micro-optimisations have been applied to performance-sensitive parts -of the implementation, including subroutine invocation and scope exit. - -=item * - -Perl now does less disk I/O when dealing with Unicode properties that cover -up to three ranges of consecutive code points. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Attribute::Handlers> has been upgraded from version 0.95 to 0.96. - -=item * - -L<autouse> has been upgraded from version 1.07 to 1.08. - -=item * - -L<B::Deparse> has been upgraded from version 1.25 to 1.26. - -=item * - -L<base> has been upgraded from version 2.21 to 2.22. - -Co-exist more gracefully with C<CORE::GLOBAL::require> -overrides. [perl #121196] - -=item * - -L<Carp> has been upgraded from version 1.32 to 1.33. - -=item * - -L<charnames> has been upgraded from version 1.39 to 1.40. - -=item * - -L<CPAN> has been upgraded from version 2.03 to 2.04. - -Fixes a bug preventing "force install" from working. [cpan #91706] - -Fixes an infinite-loop bug when using the C<make> command in the CPAN -shell. [cpan #86915] - -=item * - -L<CPAN::Meta> has been upgraded from version 2.133380 to 2.140640. - -Added a C<load_string()> method that guesses whether the string is YAML or JSON. - -=item * - -L<CPAN::Meta::YAML> has been upgraded from version 0.011 to 0.012. - -=item * - -L<Data::Dumper> has been upgraded from version 2.150 to 2.151. - -=item * - -L<Devel::PPPort> has been upgraded from version 3.21 to 3.22. - -=item * - -L<Digest::SHA> has been upgraded from version 5.87 to 5.88. - -=item * - -L<ExtUtils::Install> has been upgraded from version 1.62 to 1.63. - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from version 6.88 to 6.92. - -=item * - -L<ExtUtils::ParseXS> has been upgraded from version 3.23 to 3.24. - -=item * - -L<ExtUtils::Typemaps> has been upgraded from version 3.23 to 3.24. - -=item * - -L<feature> has been upgraded from version 1.35 to 1.36. - -=item * - -L<File::Find> has been upgraded from version 1.26 to 1.27. - -=item * - -L<Filter::Simple> has been upgraded from version 0.90 to 0.91. - -=item * - -L<Hash::Util::FieldHash> has been upgraded from version 1.14 to 1.15. - -=item * - -L<HTTP::Tiny> has been upgraded from version 0.042 to 0.043. - -No longer sends absolute request URI when tunneling SSL via proxy and fixes -regression in setting host name to verify SSL. - -=item * - -L<IO> has been upgraded from version 1.30 to 1.31. - -=item * - -L<IO::Socket::IP> has been upgraded from version 0.28 to 0.29. - -=item * - -L<Locale::Codes> has been upgraded from version 3.29 to 3.30. - -Fixed a problem that was preventing rename_* functions to work. [cpan #92680] - -=item * - -L<Module::CoreList> has been upgraded from version 3.06 to 3.09. - -=item * - -L<Module::Load> has been upgraded from version 0.30 to 0.32. - -Fix tests to support statically built perls. - -=item * - -L<mro> has been upgraded from version 1.15 to 1.16. - -=item * - -L<Parse::CPAN::Meta> has been upgraded from version 1.4413 to 1.4414. - -Added C<load_string>, which uses heuristics to guess YAML/JSON content. -C<load_file> will now attempt to detect YAML/JSON content if the suffix is not -.json, .yml or .yaml. - -=item * - -L<Pod::Perldoc> has been upgraded from version 3.21 to 3.23. - -=item * - -L<POSIX> has been upgraded from version 1.38_02 to 1.38_03. - -=item * - -L<Thread::Queue> has been upgraded from version 3.02 to 3.05. - -=item * - -L<threads> has been upgraded from version 1.92 to 1.93. - -=item * - -L<warnings> has been upgraded from version 1.22 to 1.23. - -=item * - -L<XS::Typemap> has been upgraded from version 0.12 to 0.13. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=over 4 - -=item * - -The L<perllexwarn> documentation used to describe the hierarchy of warning -categories understood by the L<warnings> pragma. That description has now -been moved to the L<warnings> documentation itself, leaving L<perllexwarn> -as a stub that points to it. This change consolidates all documentation for -lexical warnings in a single place. - -=back - -=head1 Diagnostics - -The following changes have been made to diagnostic output, -including warnings and fatal error messages. For the complete list of -diagnostic messages, see L<perldiag>. - -=head2 Changes to Existing Diagnostics - -=over 4 - -=item * - -When C<use re "debug"> executes a regex containing a backreference, the -debugging output now shows what string is being matched. - -=back - -=head1 Configuration and Compilation - -=over 4 - -=item * - -Where possible, the build now avoids recursive invocations of F<make> when -building pure-Perl extensions, without removing any parallelism from the -build. Currently around 80 extensions can be processed directly by the -F<make_ext.pl> tool, meaning that 80 invocations of F<make> and 160 -invocations of F<miniperl> are no longer made. - -=item * - -The build system now works correctly when compiling under GCC or Clang with -link-time optimization enabled (the C<-flto> option). [perl #113022] - -=back - -=head1 Testing - -=over 4 - -=item * - -The test suite no longer fails when the user's interactive shell maintains a -C<$PWD> environment variable, but the F</bin/sh> used for running tests -doesn't. - -=item * - -The C<test.valgrind> make target now allows tests to be run in parallel. -This target allows Perl's test suite to be run under Valgrind, which detects -certain sorts of C programming errors, though at significant cost in running -time. On suitable hardware, allowing parallel execution claws back a lot of -that additional cost. [perl #121431] - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item Linux - -The hints file now looks for C<libgdbm_compat> only if C<libgdbm> itself is -also wanted. The former is never useful without the latter, and in some -circumstances, including it could actually prevent building. - -=item Mac OS - -The build system now honours an C<ld> setting supplied by the user running -F<Configure>. - -=item Win32 - -Killing a process tree with L<perlfunc/kill> and a negative signal, was broken -starting in 5.18.0. In this bug, C<kill> always returned 0 for a negative -signal even for valid PIDs, and no processes were terminated. This has been -fixed [perl #121230]. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -The Perl core now consistently uses C<av_tindex()> ("the top index of an -array") as a more clearly-named synonym for C<av_len()>. - -=item * - -The obscure interpreter variable C<PL_timesbuf> is expected to be removed -early in the 5.21.x development series, so that Perl 5.22.0 will not provide -it to XS authors. While the variable still exists in 5.19.10 (and will -continue to exist in 5.20.0), we hope that this advance warning of the -deprecation will help anyone who is using that variable. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Static builds, as configured with C<-Uusedl> now build -correctly. [perl #121291] - -=item * - -Regexes with backreferences nested inside subpattern references now behave -more consistently: match variables are dynamically scoped during the -execution of the subpattern call. [perl #121299] - -=back - -=head1 Acknowledgements - -Perl 5.19.10 represents approximately 4 weeks of development since Perl 5.19.9 -and contains approximately 13,000 lines of changes across 330 files from 20 -authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 8,800 lines of changes to 220 .pm, .t, .c and .h files. - -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.19.10: - -Aaron Crane, Andy Dougherty, Aristotle Pagaltzis, Chris 'BinGOs' Williams, -Craig A. Berry, Daniel Dragan, David Mitchell, Father Chrysostomos, H.Merijn -Brand, Jerry D. Hedden, Karl Williamson, Matthew Horsfall, Nicholas Clark, Paul -Johnson, Peter Rabbitson, Ricardo Signes, Steffen Müller, Steve Hay, Tony -Cook, Yves Orton. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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 -https://rt.perl.org/ . There may also be information at -http://www.perl.org/ , the Perl Home Page. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl51911delta.pod b/pod/perl51911delta.pod deleted file mode 100644 index e8db50286f..0000000000 --- a/pod/perl51911delta.pod +++ /dev/null @@ -1,353 +0,0 @@ - -=encoding utf8 - -=head1 NAME - -perl51911delta - what is new for perl v5.19.11 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.10 release and the 5.19.11 -release. - -If you are upgrading from an earlier release such as 5.19.9, first read -L<perl51910delta>, which describes differences between 5.19.9 and 5.19.10. - -=head1 Modules and Pragmata - -=head2 New Modules and Pragmata - -=over 4 - -=item * - -L<experimental> version 0.007 has been added. - -This pragma provides an easy and convenient way to enable or disable -experimental features. - -=back - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Carp> has been upgraded from version 1.33 to 1.3301. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<CPAN> has been upgraded from version 2.04-TRIAL to 2.05. - -This fixes L<local::lib> shell variable string output and prevents an endless -loop when running "notest test Module" for some Module having dependencies. - -=item * - -L<DB> has been upgraded from version 1.43 to 1.44. - -The debugger now correctly restores its input and output filehandles after -using the pager command. -[L<perl #121456|https://rt.perl.org/Public/Bug/Display.html?id=121456>] - -=item * - -L<ExtUtils::Install> has been upgraded from version 1.63 to 1.67. - -When upgrading an already-installed file, L<ExtUtils::Install> could mess up -the permissions of files if the old versions of files were hard or symbolic -links. This has now been fixed. -[L<perl #72028|https://rt.perl.org/Public/Bug/Display.html?id=72028>] - -The MM_TEST_ROOT feature has been removed from the tests. - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from version 6.92 to 6.94. - -A regression in MM_Unix.pm has been resolved. -[L<Issue #96|https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/96>] - -=item * - -L<Module::CoreList> has been upgraded from version 3.09 to 3.10. - -The list of Perl versions covered has been updated. - -=item * - -L<PerlIO> has been upgraded from version 1.08 to 1.09. - -The warning about the use of the C<:utf8> layer has been made more prominent. - -=item * - -L<Storable> has been upgraded from version 2.48 to 2.49. - -Recognition of tied SVs has been tightened up. - -=item * - -L<Win32> has been upgraded from version 0.48 to 0.49. - -This fixes a problem when building with B<gcc> version 4.8.1 from -L<http://www.mingw.org>. -[L<cpan #94730|https://rt.cpan.org/Public/Bug/Display.html?id=94730>] - -=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>. - -=head2 Changes to Existing Diagnostics - -=over 4 - -=item * - -The now fatal error message C<Character following "\c" must be ASCII> has been -reworded as C<Character following "\c" must be printable ASCII> to emphasize -that in C<\cI<X>>, I<X> must be a I<printable (non-control)> ASCII character. - -=back - -=head1 Utility Changes - -=head2 L<perlbug> - -=over 4 - -=item * - -L<perlbug> has been modified to supply the report template with CRLF line -endings on Windows. -[L<perl #121277|https://rt.perl.org/Public/Bug/Display.html?id=121277>] - -=item * - -L<perlbug> now makes as few assumptions as possible about the encoding of the -report. This will likely change in the future to assume UTF-8 by default but -allow a user override. - -=back - -=head1 Configuration and Compilation - -=over 4 - -=item * - -By default, B<gcc> 4.9 does some optimizations that break perl. The B<-fwrapv> -option disables those optimizations (and probably others), so for B<gcc> 4.9 -(and later, since the optimizations probably won't go away), F<Configure> now -adds B<-fwrapv> unless the user requests B<-fno-wrapv>, which disables -B<-fwrapv>, or B<-fsanitize=undefined>, which turns the overflows B<-fwrapv> -ignores into runtime errors. (This is not done prior to B<gcc> 4.3, since -B<-fwrapv> was broken then.) -[L<perl #121505|https://rt.perl.org/Public/Bug/Display.html?id=121505>] - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item VMS - -On VMS only, a check for glob metacharacters in a path returned by the -L<C<glob()>|perlfunc/glob> operator has been replaced with a check for VMS -wildcard characters. This saves a significant number of unnecessary -L<C<lstat()>|perlfunc/lstat> calls such that some simple glob operations become -60-80% faster. - -=item Win32 - -The time taken to build perl on Windows has been reduced quite significantly -(time savings in the region of 30-40% are typically seen) by reducing the -number of, usually failing, I/O calls for each L<C<require()>|perlfunc/require> -(for B<miniperl.exe> only). -[L<perl #121119|https://rt.perl.org/Public/Bug/Display.html?id=121119>] - -About 15 minutes of idle sleeping was removed from running C<make test> due to -a bug in which the timeout monitor used for tests could not be cancelled once -the test completes, and the full timeout period elapsed before running the next -test file. -[L<perl #121395|https://rt.perl.org/Public/Bug/Display.html?id=121395>] - -On a perl built without pseudo-fork (pseudo-fork builds were not affected by -this bug), killing a process tree with L<C<kill()>|perlfunc/kill> and a negative -signal resulted in C<kill()> inverting the returned value. For example, if -C<kill()> killed 1 process tree PID then it returned 0 instead of 1, and if -C<kill()> was passed 2 invalid PIDs then it returned 2 instead of 0. This has -probably been the case since the process tree kill feature was implemented on -Win32. It has now been corrected to follow the documented behaviour. -[L<perl #121230|https://rt.perl.org/Public/Bug/Display.html?id=121230>] - -When building a 64-bit perl, an uninitialized memory read in B<miniperl.exe>, -used during the build process, could lead to a 4GB B<wperl.exe> being created. -This has now been fixed. (Note that B<perl.exe> itself was unaffected, but -obviously B<wperl.exe> would have been completely broken.) -[L<perl #121471|https://rt.perl.org/Public/Bug/Display.html?id=121471>] - -Perl can now be built with B<gcc> version 4.8.1 from L<http://www.mingw.org>. -This was previously broken due to an incorrect definition of DllMain() in one -of perl's source files. Earlier B<gcc> versions were also affected when using -version 4 of the w32api package. Versions of B<gcc> available from -L<http://mingw-w64.sourceforge.net/> were not affected. -[L<perl #121643|https://rt.perl.org/Public/Bug/Display.html?id=121643>] - -The test harness now has no failures when perl is built on a FAT drive with the -Windows OS on an NTFS drive. -[L<perl #21442|https://rt.perl.org/Public/Bug/Display.html?id=21442>] - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -C<LC_NUMERIC> is now initialized to the C locale. This affects only XS -modules, as the Perl core usages always make sure this locale category is -correctly set for their purposes. XS code remains vulnerable to other code -changing this category's locale. Further fixes are planned in Perl 5.22 to -reduce these long-standing vulnerabilities. -[L<perl #121317|https://rt.perl.org/Public/Bug/Display.html?id=121317>] - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -A regression involving the string value of L<C<$!>|perlvar/$!> introduced in -Perl 5.19.2 has been reverted for Perl 5.20. -[L<perl #119499|https://rt.perl.org/Public/Bug/Display.html?id=119499>] - -This re-breaks the bugs it fixed, -L<perl #112208|https://rt.perl.org/Public/Bug/Display.html?id=112208>, so an -alternative fix is planned for Perl 5.22 - -=item * - -A regression was introduced in Perl 5.19.10 that under some circumstances -caused C<//m> matches to falsely fail. Now fixed. -[L<perl #121484|https://rt.perl.org/Public/Bug/Display.html?id=121484>] - -=item * - -A regression was introduced in the fix for -L<perl #116192|https://rt.perl.org/Public/Bug/Display.html?id=116192> that -prevented C<perl -I /somedir/> (with a trailing slash) from finding .pmc files. -This has been fixed. -[L<perl #121512|https://rt.perl.org/Public/Bug/Display.html?id=121512>]. - -=item * - -Fixed a bug detected by valgrind where sv_pvn_force_flags() would check SvPVX() -even when the SV hadn't been upgraded to a SVt_PV. SvPVX() is only initialized -when the SV is upgraded to a SVt_PV or higher. -[L<perl #121366|https://rt.perl.org/Public/Bug/Display.html?id=121366>] - -=item * - -Fixed a bug in L<C<caller()>|perlfunc/caller> introduced in Perl 5.18.0. In -some circumstances when C<caller()> was called on an C<eval STRING> stack frame -it would attempt to allocate the limit of the address space minus one, which -would croak with an out of memory error, which would be caught by the eval. A -change in Perl 5.19.1 which increased allocation sizes to allow COW to operate -more often rounded that allocation size up and wrapped to a zero allocation -size, resulting in a crash when the source string was copied over. -[L<perl #120998|https://rt.perl.org/Public/Bug/Display.html?id=120998>]. - -=back - -=head1 Known Problems - -=over 4 - -=item * - -One test in F<ext/POSIX/t/time.t> is known to fail on Windows when building -with certain versions of B<gcc> from L<http://www.mingw.org> due to a known bug -in the MinGW build, which is logged here: -L<http://sourceforge.net/p/mingw/bugs/2152/>. - -=back - -=head1 Acknowledgements - -Perl 5.19.11 represents approximately 4 weeks of development since Perl 5.19.10 -and contains approximately 3,600 lines of changes across 140 files from 18 -authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 850 lines of changes to 72 .pm, .t, .c and .h files. - -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.19.11: - -Aaron Crane, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan, David -Golden, David Mitchell, H.Merijn Brand, Hiroo Hayashi, Karl Williamson, Matthew -Horsfall, Ricardo Signes, Shirakata Kentaro, Smylers, Steve Hay, Thomas Sibley, -Tony Cook, Zefram, Ævar Arnfjörð Bjarmason. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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 -https://rt.perl.org/ . There may also be information at http://www.perl.org/ , -the Perl Home Page. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl5191delta.pod b/pod/perl5191delta.pod deleted file mode 100644 index a806dc39bd..0000000000 --- a/pod/perl5191delta.pod +++ /dev/null @@ -1,801 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5191delta - what is new for perl v5.19.1 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.0 release and the 5.19.1 -release. - -=head1 Core Enhancements - -No new features have been added. - -=head1 Security - -There are no new security issues. - -=head1 Incompatible Changes - -=head2 Most regex engine global state eliminated - -As part of this series of fixes it was necessary to change the API of -Perl_re_intuit_start(). See L</Internal Changes> for more. - -=head2 Locale decimal point character no longer leaks outside of S<C<use locale>> scope - -This is actually a bug fix, but some code has come to rely on the bug -being present, so this change is listed here. The current locale that -the program is running under is not supposed to be visible to Perl code -except within the scope of a S<C<use locale>>. However, until now under -certain circumstances, the character used for a decimal point (often a -comma) leaked outside the scope. If your code is affected by this -change, simply add a S<C<use locale>>. - -=head1 Performance Enhancements - -=over 4 - -=item * - -Perl has a new copy-on-write mechanism that avoids the need to copy the -internal string buffer when assigning from one scalar to another. This -makes copying large strings appear much faster. Modifying one of the two -(or more) strings after an assignment will force a copy internally. This -makes it unnecessary to pass strings by reference for efficiency. - -This feature was already available in 5.18.0, but wasn't enabled by -default. It is the default now, and so you no longer need build perl with -the F<Configure> argument: - - -Accflags=PERL_NEW_COPY_ON_WRITE - -It can be disabled (for now) in a perl build with: - - -Accflags=PERL_NO_COW - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Archive::Tar> has been upgraded from version 1.90 to 1.92. - -=item * - -L<Attribute::Handlers> has been upgraded from version 0.94 to 0.95. - -=item * - -L<autodie> has been upgraded from version 2.13 to 2.19. - -=item * - -L<B> has been upgraded from version 1.42 to 1.43. - -=item * - -L<B::Concise> has been upgraded from version 0.95 to 0.96. - -=item * - -L<B::Deparse> has been upgraded from version 1.20 to 1.21. - -C<foreach my $lexical> is now deparsed correctly with the B<-p> option. -[RT #117081] - -The B<-l> option no longer puts form feeds in the middle of a line when -outputting C<map> and C<grep> blocks. [RT #117311] - -Elements of C<%#>, such as C<$# {foo}> and C<${#}{foo}> are now deparsed -correctly. [RT #117531] - -=item * - -L<Benchmark> has been upgraded from version 1.15 to 1.16. - -=item * - -L<Carp> has been upgraded from version 1.29 to 1.30. - -=item * - -L<Compress::Raw::Bzip2> has been upgraded from version 2.060 to 2.061. - -=item * - -L<Compress::Raw::Zlib> has been upgraded from version 2.060 to 2.061. - -=item * - -L<Config::Perl::V> has been upgraded from version 0.17 to 0.18. - -=item * - -L<CPAN::Meta> has been upgraded from version 2.120921 to 2.131560. - -=item * - -L<Data::Dumper> has been upgraded from version 2.145 to 2.146. - -=item * - -L<DB> has been updated from 1.05 to 1.06 and L<perl5db.pl> from 1.39_10 -to 1.40. - -The call depth allowed by default in the debugger is now 1000 -rather than 100. - -=item * - -L<DB_File> has been upgraded from version 1.827 to 1.828. - -=item * - -L<Encode> has been upgraded from version 2.49 to 2.51. - -=item * - -L<ExtUtils::Install> has been upgraded from version 1.59 to 1.60. - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from version 6.66 to 6.68. - -=item * - -L<ExtUtils::ParseXS> has been upgraded from version 3.18 to 3.19. - -=item * - -L<File::Copy> has been upgraded from version 2.26 to 2.27. - -=item * - -L<File::DosGlob> has been upgraded from version 1.10 to 1.11. - -=item * - -L<File::Fetch> has been upgraded from version 0.38 to 0.42. - -=item * - -L<File::Find> has been upgraded from version 1.23 to 1.24. - -=item * - -L<File::Spec> has been upgraded from version 3.40 to 3.41. - -C<tmpdir> now respects changes to environment variables from which the -temporary directory is derived. [RT #88940] - -=item * - -L<File::Temp> has been upgraded from version 0.23 to 0.2301. - -=item * - -L<Filter::Simple> has been upgraded from version 0.89 to 0.90. - -=item * - -L<Filter::Util::Call> has been upgraded from version 1.45 to 1.49. - -=item * - -L<Getopt::Long> has been upgraded from version 2.39 to 2.4. - -=item * - -L<Hash::Util::FieldHash> has been upgraded from version 1.10 to 1.11. - -=item * - -L<HTTP::Tiny> has been upgraded from version 0.025 to 0.031. - -=item * - -L<IPC::Open3> has been upgraded from version 1.13 to 1.14. - -=item * - -L<Locale::Maketext> has been upgraded from version 1.23 to 1.24. - -=item * - -L<Math::BigInt> has been upgraded from version 1.9991 to 1.9992. - -=item * - -L<Math::BigRat> has been upgraded from version 0.2604 to 0.2606. - -=item * - -L<Module::Build> has been upgraded from version 0.4003 to 0.4005. - -=item * - -L<Module::CoreList> has been upgraded from version 2.91 to 2.92. - -Adds L<Module::CoreList::Utils> which provides information on which core and -dual-life utilities shipped with each version of L<perl>. - -=item * - -L<Module::Metadata> has been upgraded from version 1.000011 to 1.000014. - -=item * - -L<mro> has been upgraded from version 1.11 to 1.12. - -=item * - -L<Net::Ping> has been upgraded from version 2.41 to 2.42. - -=item * - -L<perlfaq> has been upgraded from version 5.0150042 to 5.0150043. - -=item * - -L<Pod::Html> has been upgraded from version 1.18 to 1.19. - -=item * - -L<Pod::Parser> has been upgraded from version 1.60 to 1.61. - -=item * - -L<Pod::Perldoc> has been upgraded from version 3.19 to 3.20. - -=item * - -L<Pod::Usage> has been upgraded from version 1.61 to 1.63. - -=item * - -L<POSIX> has been upgraded from version 1.32 to 1.33. - -=item * - -L<re> has been upgraded from version 0.23 to 0.25. - -=item * - -L<Safe> has been upgraded from version 2.35 to 2.36. - -=item * - -L<Storable> has been upgraded from version 2.42 to 2.43. - -=item * - -L<Sys::Hostname> has been upgraded from version 1.17 to 1.18. - -=item * - -L<Sys::Syslog> has been upgraded from version 0.32 to 0.33. - -=item * - -L<Term::ReadLine> has been upgraded from version 1.12 to 1.13. - -=item * - -L<Test::Harness> has been upgraded from version 3.26 to 3.28 - -Memory usage is dramatically reduced. t/harness now uses about 10% of the -memory used by 3.26 and earlier. - -C<PERL5LIB> is always propagated to a test's C<@INC>, even under C<-T>. - -=item * - -L<threads> has been upgraded from version 1.86 to 1.87. - -=item * - -L<threads::shared> has been upgraded from version 1.43 to 1.44. - -=item * - -L<Tie::File> has been upgraded from version 0.99 to 1.00. - -=item * - -L<Time::Piece> has been upgraded from version 1.20_01 to 1.2002. - -=item * - -L<Unicode::Collate> has been upgraded from version 0.97 to 0.98. - -=item * - -L<Unicode::UCD> has been upgraded from version 0.51 to 0.52. - -A function, L<Unicode::UCD/search_invlist()> is now available to do -search an inversion list or map for a code point. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=head3 L<perlfunc> - -=over - -=item * - -C<goto EXPR> is now documented to handle an expression that evalutes to a -code reference as if it was C<goto &$coderef>. This behavior is at least ten -years old. - -=item * - -C<eval EXPR> now has caveats about expanding floating point numbers in some -locales - -=item * - -Noted that C<chop> and C<chomp> can reset the hash iterator - -=item * - -Improved C<fileno> example - -=back - -=head3 L<perlexperiment> - -=over - -=item * - -C<\s> matching C<\cK> is marked experimental - -=item * - -ithreads were accepted in 5.8.0 - -=item * - -Long doubles are not experimental - -=back - -=head3 L<perllocale> - -=over - -=item * - -Update to mention fc(), \F - -=back - -=head3 L<perltrap> - -=over 4 - -=item * - -There is now a L<JavaScript|perltrap/JavaScript Traps> section. - -=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>. - -=head3 New Warnings - -=over 4 - -=item * - -L<A sequence of multiple spaces in a charnames alias definition is deprecated|perldiag/"A sequence of multiple spaces in a charnames alias definition is deprecated"> - -L<Trailing white-space in a charnames alias definition is deprecated|perldiag/"Trailing white-space in a charnames alias definition is deprecated"> - -These two deprecation warnings involving C<\N{...}> were incorrectly -implemented. They did not warn by default (now they do) and could not be -made fatal via C<< use warnings FATAL => 'deprecated' >> (now they can). - -=back - -=head1 Utility Changes - -=head3 F<bisect.pl> enhancements - -The git bisection tool F<Porting/bisect.pl> has had many enhancements. - -=over 4 - -=item * - -Can optionally run the test case with a timeout. - -=item * - -Can now run in-place in a clean git checkout. - -=item * - -Can run the test case under C<valgrind>. - -=item * - -Can apply user supplied patches and fixes to the source checkout before -building. - -=item * - -Now has fixups to enable building several more historical ranges of bleadperl, -which can be useful for pinpointing the origins of bugs or behaviour changes. - -=back - -It is provided as part of the source distribution but not installed because -it is not self-contained as it relies on being run from within a git -checkout. Note also that it makes no attempt to fix tests, correct runtime -bugs or make something useful to install - its purpose is to make minimal -changes to get any historical revision of interest to build and run as close -as possible to "as-was", and thereby make C<git bisect> easy to use. - -=head1 Platform Support - -=head2 Discontinued Platforms - -=over 4 - -=item DG/UX - -DG/UX was a Unix sold by Data General. The last release was in April 2001. -It only runs on Data General's own hardware. - -=back - -=head2 Platform-Specific Notes - -=over 4 - -=item Mixed-endian platforms - -The code supporting C<pack> and C<unpack> operations on mixed endian -platforms has been removed. We believe that Perl has long been unable to -build on mixed endian architectures (such as PDP-11s), so we don't think -that this change will affect any platforms which are able to build v5.18.0. - -=item Windows - -The BUILD_STATIC and ALL_STATIC makefile options for linking some or (nearly) -all extensions statically (into perl519.dll, and into a separate -perl-static.exe too) were broken for MinGW builds. This has now been fixed. - -The ALL_STATIC option has also been improved to include the Encode and Win32 -extensions (for both VC++ and MinGW builds). - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -Perl's new copy-on-write mechanism (which is now enabled by default), -allows any C<SvPOK> scalar to be automatically upgraded to a copy-on-write -scalar when copied. A reference count on the string buffer is stored in -the string buffer itself. - -For example: - - $ perl -MDevel::Peek -e'$a="abc"; $b = $a; Dump $a; Dump $b' - SV = PV(0x260cd80) at 0x2620ad8 - REFCNT = 1 - FLAGS = (POK,IsCOW,pPOK) - PV = 0x2619bc0 "abc"\0 - CUR = 3 - LEN = 16 - COW_REFCNT = 1 - SV = PV(0x260ce30) at 0x2620b20 - REFCNT = 1 - FLAGS = (POK,IsCOW,pPOK) - PV = 0x2619bc0 "abc"\0 - CUR = 3 - LEN = 16 - COW_REFCNT = 1 - -Note that both scalars share the same PV buffer and have a COW_REFCNT -greater than zero. - -This means that XS code which wishes to modify the C<SvPVX()> buffer of an -SV should call C<SvPV_force()> or similar first, to ensure a valid (and -unshared) buffer, and to call C<SvSETMAGIC()> afterwards. This in fact has -always been the case (for example hash keys were already copy-on-write); -this change just spreads the COW behaviour to a wider variety of SVs. - -One important difference is that before 5.18.0, shared hash-key scalars -used to have the C<SvREADONLY> flag set; this is no longer the case. - -This new behaviour can still be disabled by running F<Configure> with -B<-Accflags=-DPERL_NO_COW>. This option will probably be removed in Perl -5.22. - -=item * - -C<PL_sawampersand> is now a constant. The switch this variable provided -(to enable/disable the pre-match copy depending on whether C<$&> had been -seen) has been removed and replaced with copy-on-write, eliminating a few -bugs. - -The previous behaviour can still be enabled by running F<Configure> with -B<-Accflags=-DPERL_SAWAMPERSAND>. - -=item * - -The functions C<my_swap>, C<my_htonl> and C<my_ntohl> have been removed. -It is unclear why these functions were ever marked as I<A>, part of the -API. XS code can't call them directly, as it can't rely on them being -compiled. Unsurprisingly, no code on CPAN references them. - -=item * - -The signature of the C<Perl_re_intuit_start()> regex function has changed; -the function pointer C<intuit> in the regex engine plugin structure -has also changed accordingly. A new parameter, C<strbeg> has been added; -this has the same meaning as the same-named parameter in -C<Perl_regexec_flags>. Previously intuit would try to guess the start of -the string from the passed SV (if any), and would sometimes get it wrong -(e.g. with an overloaded SV). - -=item * - -XS code may use various macros to change the case of a character or code -point (for example C<toLOWER_utf8()>). Only a couple of these were -documented until now; -and now they should be used in preference to calling the underlying -functions. See L<perlapi/Character case changing>. - -=item * - -The code dealt rather inconsistently with uids and gids. Some -places assumed that they could be safely stored in UVs, others -in IVs, others in ints. Four new macros are introduced: -SvUID(), sv_setuid(), SvGID(), and sv_setgid() - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -The OP allocation code now returns correctly aligned memory in all cases -for C<struct pmop>. Previously it could return memory only aligned to a -4-byte boundary, which is not correct for an ithreads build with 64 bit IVs -on some 32 bit platforms. Notably, this caused the build to fail completely -on sparc GNU/Linux. [RT #118055] - -=item * - -The debugger's C<man> command been fixed. It was broken in the v5.18.0 -release. The C<man> command is aliased to the names C<doc> and C<perldoc> - -all now work again. - -=item * - -C<@_> is now correctly visible in the debugger, fixing a regression -introduced in v5.18.0's debugger. [RT #118169] - -=item * - -Evaluating large hashes in scalar context is now much faster, as the number -of used chains in the hash is now cached for larger hashes. Smaller hashes -continue not to store it and calculate it when needed, as this saves one IV. -That would be 1 IV overhead for every object built from a hash. [RT #114576] - -=item * - -Fixed a small number of regexp constructions that could either fail to -match or crash perl when the string being matched against was -allocated above the 2GB line on 32-bit systems. [RT #118175] - -=item * - -Perl v5.16 inadvertently introduced a bug whereby calls to XSUBs that were -not visible at compile time were treated as lvalues and could be assigned -to, even when the subroutine was not an lvalue sub. This has been fixed. -[RT #117947] - -=item * - -In Perl v5.18.0 dualvars that had an empty string for the string part but a -non-zero number for the number part starting being treated as true. In -previous versions they were treated as false, the string representation -taking precedeence. The old behaviour has been restored. [RT #118159] - -=item * - -Since Perl v5.12, inlining of constants that override built-in keywords of -the same name had countermanded C<use subs>, causing subsequent mentions of -the constant to use the built-in keyword instead. This has been fixed. - -=item * - -Lexical constants (C<my sub a() { 42 }>) no longer crash when inlined. - -=item * - -Parameter prototypes attached to lexical subroutines are now respected when -compiling sub calls without parentheses. Previously, the prototypes were -honoured only for calls I<with> parentheses. [RT #116735] - -=item * - -Syntax errors in lexical subroutines in combination with calls to the same -subroutines no longer cause crashes at compile time. - -=item * - -Deep recursion warnings no longer crash lexical subroutines. [RT #118521] - -=item * - -The warning produced by C<-l $handle> now applies to IO refs and globs, not -just to glob refs. That warning is also now UTF8-clean. [RT #117595] - -=item * - -Various memory leaks involving the parsing of the C<(?[...])> regular -expression construct have been fixed. - -=item * - -C<(?[...])> now allows interpolation of precompiled patterns consisting of -C<(?[...])> with bracketed character classes inside (C<$pat = -S<qr/(?[ [a] ])/;> S</(?[ $pat ])/>>). Formerly, the brackets would -confuse the regular expression parser. - -=item * - -The "Quantifier unexpected on zero-length expression" warning message could -appear twice starting in Perl v5.10 for a regular expression also -containing alternations (e.g., "a|b") triggering the trie optimisation. - -=item * - -C<delete local $ENV{nonexistent_env_var}> no longer leaks memory. - -=item * - -C<sort> and C<require> followed by a keyword prefixed with C<CORE::> now -treat it as a keyword, and not as a subroutine or module name. [RT #24482] - -=item * - -Through certain conundrums, it is possible to cause the current package to -be freed. Certain operators (C<bless>, C<reset>, C<open>, C<eval>) could -not cope and would crash. They have been made more resilient. [RT #117941] - -=item * - -Aliasing filehandles through glob-to-glob assignment would not update -internal method caches properly if a package of the same name as the -filehandle existed, resulting in filehandle method calls going to the -package instead. This has been fixed. - -=item * - -C<./Configure -de -Dusevendorprefix> didn't default [RT #64126] - -=item * - -The C<Statement unlikely to be reached> warning was listed in -L<perldiag> as an C<exec>-category warning, but was enabled and disabled -by the C<syntax> category. On the other hand, the C<exec> category -controlled its fatal-ness. It is now entirely handled by the C<exec> -category. - -=item * - -The "Replacement list is longer that search list" warning for C<tr///> and -C<y///> no longer occurs in the presence of the C</c> flag. [RT #118047] - -=item * - -Perl v5.18 inadvertently introduced a bug whereby interpolating mixed up- -and down-graded UTF-8 strings in a regex could result in malformed UTF-8 -in the pattern: specifically if a downgraded character in the range -C<\x80..\xff> followed a UTF-8 string, e.g. - - utf8::upgrade( my $u = "\x{e5}"); - utf8::downgrade(my $d = "\x{e5}"); - /$u$d/ - -[RT #118297] - -=item * - -Stringification of NVs are not cached so that the lexical locale controls -stringification of the decimal point [perl #108378] [perl #115800] - -=back - -=head1 Acknowledgements - -Perl 5.19.1 represents approximately 4 weeks of development since Perl 5.19.0 -and contains approximately 26,000 lines of changes across 680 files from 37 -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.19.1: - -Alexandr Ciornii, Brian Fraser, Chris 'BinGOs' Williams, Craig A. Berry, -Dagfinn Ilmari Mannsåker, Daniel Dragan, David Golden, David Mitchell, David -Steinbrunner, Dominic Hargreaves, Eric Brine, Father Chrysostomos, H.Merijn -Brand, Heiko Eissfeldt, James E Keenan, Jerry D. Hedden, Kang-min Liu, Karl -Williamson, Leon Timmermans, Lukas Mai, Marcel Grünauer, Mark Jason Dominus, -Max Maischein, Mike Doherty, Nicholas Clark, Paul Green, Peter Martini, Petr -Písař, Ricardo Signes, Shirakata Kentaro, Shlomi Fish, Steffen Müller, Steve -Hay, Sullivan Beck, Tony Cook, Yves Orton, Zsbán Ambrus. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl5192delta.pod b/pod/perl5192delta.pod deleted file mode 100644 index 4b36f88415..0000000000 --- a/pod/perl5192delta.pod +++ /dev/null @@ -1,661 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5192delta - what is new for perl v5.19.2 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.1 release and the 5.19.2 -release. - -If you are upgrading from an earlier release such as 5.19.0, first read -L<perl5191delta>, which describes differences between 5.19.0 and 5.19.1. - -=head1 Core Enhancements - -=head2 More consistent prototype parsing - -Multiple semicolons in subroutine prototypes have long been tolerated and -treated as a single semicolon. There was one case where this did not -happen. A subroutine whose prototype begins with "*" or ";*" can affect -whether a bareword is considered a method name or sub call. This now -applies also to ";;;*". - -Whitespace has long been allowed inside subroutine prototypes, so -C<sub( $ $ )> is equivalent to C<sub($$)>, but until now it was stripped -when the subroutine was parsed. Hence, whitespace was I<not> allowed in -prototypes set by C<Scalar::Util::set_prototype>. Now it is permitted, -and the parser no longer strips whitespace. This means -C<prototype &mysub> returns the original prototype, whitespace and all. - -=head1 Performance Enhancements - -=over 4 - -=item * - -Precomputed hash values are now used in more places during method lookup. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<autodie> has been upgraded from version 2.19 to 2.20. - -=item * - -L<B> has been upgraded from version 1.43 to 1.44. - -=item * - -L<B::Concise> has been upgraded from version 0.96 to 0.98. - -=item * - -L<B::Deparse> has been upgraded from version 1.21 to 1.22. - -=item * - -L<base> has been upgraded from version 2.18 to 2.19. - -=item * - -L<Benchmark> has been upgraded from version 1.16 to 1.17. - -=item * - -L<Class::Struct> has been upgraded from version 0.64 to 0.65. - -=item * - -L<Data::Dumper> has been upgraded from version 2.146 to 2.147. - -=item * - -L<DB_File> has been upgraded from version 1.828 to 1.829. - -=item * - -L<DBM_Filter> has been upgraded from version 0.05 to 0.06. - -=item * - -L<Devel::Peek> has been upgraded from version 1.11 to 1.12. - -=item * - -L<Digest::MD5> has been upgraded from version 2.52 to 2.53. - -=item * - -L<Digest::SHA> has been upgraded from version 5.84 to 5.85. - -=item * - -L<English> has been upgraded from version 1.06 to 1.07. - -=item * - -L<Errno> has been upgraded from version 1.18 to 1.19. - -=item * - -L<ExtUtils::Embed> has been upgraded from version 1.30 to 1.31 - -The generated C<C> code now incorporates bug fixes present in -F<miniperlmain.c>, and has whitespace changes. It now uses -C<#include "..."> for header files instead of C<< #include <...> >>. -This should not make any difference, unless programs embedding C<libperl> -happen to have local and incompatible files named F<EXTERN.h>, F<XSUB.h> or -F<perl.h>, as these will now be picked up instead of the installed Perl -headers. - -The C<canon()> function now correctly handles packages with multiple C<::> -separators when the I<$as> parameter is not I</>. Given that it used to -generate strings which would likely be syntax errors or pathnames instead of -filenames, we infer that from the complete lack of bug reports no-one was -using this functionality. (C<ExtUtils::Miniperl> is now using it.) - -=item * - -L<ExtUtils::Miniperl> has been upgraded and given a version of 1. -Previously it did not have a version number. - -C<writemain()> now takes an optional first argument. A reference to a scalar -is treated as a filename to be opened and written to. Any other reference is -used as the filehandle to write to. Otherwise the existing default remains, -to write to C<STDOUT>. - -C<writemain()> has been refactored to use functions from L<ExtUtils::Embed>, -reducing code size and duplication. The internal function C<canon()> has been -deleted. - -=item * - -L<ExtUtils::ParseXS> has been upgraded from version 3.19 to 3.21. - -=item * - -L<File::Basename> has been upgraded from version 2.84 to 2.85. - -=item * - -L<Getopt::Long> has been upgraded from version 2.4 to 2.41. - -=item * - -L<Getopt::Std> has been upgraded from version 1.08 to 1.09. - -=item * - -L<Hash::Util::FieldHash> has been upgraded from version 1.11 to 1.12. - -=item * - -L<HTTP::Tiny> has been upgraded from version 0.031 to 0.034. - -=item * - -L<I18N::Langinfo> has been upgraded from version 0.10 to 0.11. - -=item * - -L<if> has been upgraded from version 0.0602 to 0.0603. - -=item * - -L<IPC::Cmd> has been upgraded from version 0.80 to 0.82. - -=item * - -L<MIME::Base64> has been upgraded from version 3.13 to 3.14. - -=item * - -L<Module::CoreList> has been upgraded from version 2.92 to 2.94. - -=item * - -L<Params::Check> has been upgraded from version 0.36 to 0.38. - -=item * - -L<Parse::CPAN::Meta> has been upgraded from version 1.4404 to 1.4405. - -=item * - -L<Pod::Functions> has been upgraded from version 1.06 to 1.07. - -=item * - -L<Pod::Html> has been upgraded from version 1.19 to 1.2. - -=item * - -L<POSIX> has been upgraded from version 1.33 to 1.34. - -C<POSIX::AUTOLOAD> will no longer infinitely recurse if the shared -object fails to load. - -=item * - -L<Safe> has been upgraded from version 2.36 to 2.37. - -=item * - -L<Socket> has been upgraded from version 2.009 to 2.010. - -=item * - -L<Storable> has been upgraded from version 2.43 to 2.45. - -Calling C<STORABLE_attach> hooks no longer leaks memory. [perl #118829] - -=item * - -L<Text::ParseWords> has been upgraded from version 3.28 to 3.29. - -=item * - -L<Tie::Hash> has been upgraded from version 1.04 to 1.05. - -=item * - -L<Time::Piece> has been upgraded from version 1.2002 to 1.21. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=head3 L<perlexperiment> - -=over 4 - -=item * - -Code in regular expressions, regular expression backtracking verbs, -and lvalue subroutines are no longer listed as experimental. (This -also affects L<perlre> and L<perlsub>.) - -=back - -=head3 L<perlfunc> - -=over 4 - -=item * - -Since Perl v5.10, it has been possible for subroutines in @INC to return -a reference to a scalar holding initial source code to prepend to the file. -This is now documented. - -=back - -=head3 L<perlop> - -=over 4 - -=item * - -The language design of Perl has always called for monomorphic operators. -This is now mentioned explicitly. - -=back - -=head3 L<perlre> - -=over 4 - -=item * - -The fact that the regexp engine makes no effort to call (?{}) and (??{}) -constructs any specified number of times (although it will basically DWIM -in case of a successful match) has been documented. - -=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>. - -=head2 New Diagnostics - -=head3 New Warnings - -=over 4 - -=item * - -L<Missing ']' in prototype for %s : %s|perldiag/"Missing ']' in prototype -for %s : %s"> - -(W illegalproto) A grouping was started with C<[> but never closed with -C<]>. - -=back - -=head2 Changes to Existing Diagnostics - -=over 4 - -=item * - -Under rare circumstances, one could get a "Can't coerce readonly REF to -string" instead of the customary "Modification of a read-only value". This -alternate error message has been removed. - -=item * - -"Ambiguous use of * resolved as operator *": This and similar warnings -about "%" and "&" used to occur in some circumstances where there was no -operator of the type cited, so the warning was completely wrong. This has -been fixed [perl #117535, #76910]. - -=item * - -Warnings about malformed subroutine prototypes are now more consistent in -how the prototypes are rendered. Some of these warnings would truncate -prototypes containing nulls. In other cases one warning would suppress -another. The warning about illegal characters in prototypes no longer says -"after '_'" if the bad character came before the underscore. - -=item * - -L<Perl folding rules are not up-to-date for 0x%X; please use the perlbug -utility to report; in regex; marked by <-- HERE in -mE<sol>%sE<sol>|perldiag/"Perl folding rules are not up-to-date for 0x%X; -please use the perlbug utility to report; in regex; marked by <-- HERE in -m/%s/"> - -This message is now only in the regexp category, and not in the deprecated -category. It is still a default (i.e., severe) warning [perl #89648]. - -=item * - -The debugger's "n" command now respects lvalue subroutines and steps over -them [perl #118839]. - -=back - -=head1 Configuration and Compilation - -=over 4 - -=item * - -F<installperl> and F<installman>'s option handling has been refactored to use -L<Getopt::Long>. Both are used by the F<Makefile> C<install> targets, and -are not installed, so these changes are only likely to affect custom -installation scripts. - -=over 4 - -=item * - -single letter options now also have long names - -=item * - -invalid options are now rejected - -=item * - -command line arguments that are not options are now rejected - -=item * - -Each now has a C<--help> option to display the usage message. - -=back - -The behaviour for all valid documented invocations is unchanged. - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item MidnightBSD - -C<objformat> was removed from version 0.4-RELEASE of MidnightBSD and had been -deprecated on earlier versions. This caused the build environment to be -erroneously configured for C<a.out> rather than C<elf>. This has been now -been corrected. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -The Makefile shortcut targets for many rarely (or never) used testing and -profiling targets have been removed, or merged into the only other Makefile -target that uses them. Specifically, these targets are gone, along with -documentation that referenced them or explained how to use them: - - check.third check.utf16 check.utf8 coretest minitest.prep - minitest.utf16 perl.config.dashg perl.config.dashpg - perl.config.gcov perl.gcov perl.gprof perl.gprof.config - perl.pixie perl.pixie.atom perl.pixie.config perl.pixie.irix - perl.third perl.third.config perl.valgrind.config purecovperl - pureperl quantperl test.deparse test.taintwarn test.third - test.torture test.utf16 test.utf8 test_notty.deparse - test_notty.third test_notty.valgrind test_prep.third - test_prep.valgrind torturetest ucheck ucheck.third ucheck.utf16 - ucheck.valgrind utest utest.third utest.utf16 utest.valgrind - -It's still possible to run the relevant commands by "hand" - no underlying -functionality has been removed. - -=item * - -It is now possible to keep Perl from initializing locale handling. -For the most part, Perl doesn't pay attention to locale. (See -L<perllocale>.) Nonetheless, until now, on startup, it has always -initialized locale handling to the system default, just in case the -program being executed ends up using locales. (This is one of the first -things a locale-aware program should do, long before Perl knows if it -will actually be needed or not.) This works well except when Perl is -embedded in another application which wants a locale that isn't the -system default. Now, if the environment variable -C<PERL_SKIP_LOCALE_INIT> is set at the time Perl is started, this -initialization step is skipped. Prior to this, on Windows platforms, -the only workaround for this deficiency was to use a hacked-up copy of -internal Perl code. Applications that need to use older Perls can -discover if the embedded Perl they are using needs the workaround by -testing that the C preprocessor symbol C<HAS_SKIP_LOCALE_INIT> is not -defined. (RT #38193) - -=item * - -C<BmRARE> and C<BmPREVIOUS> have been removed. They were not used anywhere -and are not part of the API. For XS modules, they are now #defined as 0. - -=item * - -C<sv_force_normal>, which usually croaks on read-only values, used to allow -read-only values to be modified at compile time. This has been changed to -croak on read-only values regardless. This change uncovered several core -bugs. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -There have been several fixes related to Perl's handling of locales. perl -#38193 was described above in L</Internal Changes>. -Also fixed is #112208 in which the error string in C<$!> displayed as -garbage in many UTF-8 locales; -#118197, where the radix (decimal point) character had to be an ASCII -character (which doesn't work for some non-Western languages); -and #115808, in which C<POSIX::setlocale()> on failure returned an -C<undef> which didn't warn about not being defined even if those -warnings were enabled. - -=item * - -The dtrace sub-entry probe now works with lexical subs, instead of -crashing [perl #118305]. - -=item * - -Compiling a C<split> operator whose third argument is a named constant -evaulating to 0 no longer causes the constant's value to change. - -=item * - -A named constant used as the second argument to C<index> no longer gets -coerced to a string if it is a reference, regular expression, dualvar, etc. - -=item * - -A named constant evaluating to the undefined value used as the second -argument to C<index> no longer produces "uninitialized" warnings at compile -time. It will still produce them at run time. - -=item * - -When a scalar was returned from a subroutine in @INC, the referenced scalar -was magically converted into an IO thingy, possibly resulting in "Bizarre -copy" errors if that scalar continued to be used elsewhere. Now Perl uses -an internal copy of the scalar instead. - -=item * - -Undefining an inlinable lexical subroutine (C<my sub foo() { 42 } undef -&foo>) would result in a crash if warnings were turned on. - -=item * - -Certain uses of the C<sort> operator are optimised to modify an array in -place, such as C<@a = sort @a>. During the sorting, the array is made -read-only. If a sort block should happen to die, then the array remained -read-only even outside the C<sort>. This has been fixed. - -=item * - -C<$a> and C<$b> inside a sort block are aliased to the actual arguments to -C<sort>, so they can be modified through those two variables. This did not -always work, e.g., for lvalue subs and C<$#ary>, and probably many other -operators. It works now. - -=item * - -The arguments to C<sort> are now all in list context. If the C<sort> -itself were called in void or scalar context, then I<some>, but not all, of -the arguments used to be in void or scalar context. - -=item * - -Subroutine prototypes with Unicode characters above U+00FF were getting -mangled during closure cloning. This would happen with subroutines closing -over lexical variables declared outside, and with lexical subs. - -=item * - -In regular expressions containing multiple code blocks, the values of -C<$1>, C<$2>, etc., set by nested regular expression calls would leak from -one block to the next. Now these variables always refer to the outer -regular expression at the start of an embedded block [perl #117917]. - -=item * - -C<UNIVERSAL::can> now treats its first argument the same way that method -calls do: Typeglobs and glob references with non-empty IO slots are treated -as handles, and strings are treated as filehandles, rather than packages, -if a handle with that name exists [perl #113932]. - -=item * - -Method calls on typeglobs (e.g., C<< *ARGV->getline >>) used to stringify -the typeglob and then look it up again. Combined with changes in Perl -5.18.0, this allowed C<< *foo->bar >> to call methods on the "foo" package -(like C<< foo->bar >>). In some cases it could cause the method to be -called on the wrong handle. Now a typeglob argument is treated as a -handle (just like C<< (\*foo)->bar >>), or, if its IO slot is empty, an -error is raised. - -=item * - -Under copy-on-write builds (the default as of 5.19.1) C<< ${'_<-e'}[0] >> -no longer gets mangled. This is the first line of input saved for the -debugger's use for one-liners [perl #118627]. - -=item * - -Assigning a vstring to a tied variable or to a subroutine argument aliased -to a nonexistent hash or array element now works, without flattening the -vstring into a regular string. - -=item * - -C<pos>, C<tie>, C<tied> and C<untie> did not work -properly on subroutine arguments aliased to nonexistent -hash and array elements [perl #77814, #27010]. - -=item * - -The C<< => >> fat arrow operator can now quote built-in keywords even if it -occurs on the next line, making it consistent with how it treats other -barewords. - -=back - -=head1 Known Problems - -=over 4 - -=item * - -One of the bug fixes has accidentally thrown line numbers off in rare -cases, causing test failures for some CPAN modules. This will hopefully be -fixed soon [perl #118931]. - -=back - -=head1 Acknowledgements - -Perl 5.19.2 represents approximately 4 weeks of development since Perl 5.19.1 -and contains approximately 15,000 lines of changes across 400 files from 40 -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.19.2: - -Abhijit Menon-Sen, Alexandr Ciornii, Andy Dougherty, Aristotle Pagaltzis, Brian -Fraser, Brian Gottreu, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari -Mannsåker, Daniel Dragan, David Golden, David Mitchell, Ed Avis, Father -Chrysostomos, Graham Knop, H.Merijn Brand, Hojung Youn, James E Keenan, Johan -Vromans, Karl Williamson, Keedi Kim, Kent Fredric, Lukas Mai, Moritz Lenz, -Nathan Trapuzzano, Neil Bowers, Nicholas Clark, Niels Thykier, Niko Tyni, -Olivier Mengué, Peter Martini, Petr Písař, Reini Urban, Ricardo Signes, -Ruslan Zakirov, Slaven Rezic, Steffen Müller, Tony Cook, Vladimir Timofeev, -Yves Orton. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl5193delta.pod b/pod/perl5193delta.pod deleted file mode 100644 index b6040f3544..0000000000 --- a/pod/perl5193delta.pod +++ /dev/null @@ -1,736 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5193delta - what is new for perl v5.19.3 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.2 release and the 5.19.3 -release. - -If you are upgrading from an earlier release such as 5.19.1, first read -L<perl5192delta>, which describes differences between 5.19.1 and 5.19.2. - -=head1 Core Enhancements - -=head2 B<-F> now implies B<-a> and B<-a> implies B<-n> - -Previously B<-F> without B<-a> was a no-op, and B<-a> without B<-n> or B<-p> -was a no-op, with this change, if you supply B<-F> then both B<-a> and B<-n> -are implied and if you supply B<-a> then B<-n> is implied. - -You can still use B<-p> for its extra behaviour. [perl #116190] - -=head1 Security - -=head2 Avoid possible read of free()d memory during parsing - -It was possible that free()d memory could be read during parsing in the unusual -circumstance of the Perl program ending with a heredoc and the last line of the -file on disk having no terminating newline character. This has now been fixed. - -=head1 Performance Enhancements - -=over 4 - -=item * - -A performance regression introduced in Perl 5.11.2 in non-Unicode -case-insensitive pattern matching has been largely resolved. In particular, -the disabled optimization is now restored for every ASCII-range character. -[perl #107816] - -=item * - -A performance regression introduced in Perl 5.11.2 in non-Unicode -case-insensitive pattern matching has been largely resolved. In particular, -the disabled optimization is now restored for every ASCII-range character. -[perl #107816] - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<B> has been upgraded from version 1.44 to 1.45. - -Calling the C<GV> method on C<B::CV> objects created from a lexical sub would -return nonsense, possibly crashing perl. C<GV> now returns C<undef> for -lexical subs. [perl #118525] - -Added the C<NAME_HEK> method to return the name of a lexical sub. - -=item * - -L<bignum> has been upgraded from version 0.33 to 0.36. - -L<bigrat> wasn't correctly updating an internal variable when C<use>d with a -C<lib> option. - -=item * - -L<Carp> has been upgraded from 1.30 to 1.31 - -L<Carp> now handles objects with string overloads. It also allows objects to -specify how they appear in the stack dump with a C<CARP_TRACE> method, and also -allows the user to specify their own formatter for objects without -C<CARP_TRACE> as well as other references. [perl #92446] - -=item * - -L<Compress::Raw::Bzip2> has been upgraded from 2.061 to 2.062. - -No changes have been made other than the version bump to keep in sync with -other related modules. - -=item * - -L<Compress::Raw::Zlib> has been upgraded from 2.061 to 2.062. - -A minor typo has been fixed in the documentation. - -=item * - -L<Config::Perl::V> has been upgraded from version 0.18 to 0.19. - -The list of build options has been updated. - -=item * - -L<constant> has been upgraded from version 1.27 to 1.28. - -Note that list constants will be inlined and may be read-only in future Perl -versions. - -=item * - -L<CPAN::Meta> has been upgraded from version 2.131560 to 2.132140. - -Some documentation typos have been fixed. - -=item * - -L<Data::Dumper> has been upgraded from version 2.147 to 2.148. - -The compatibility of the XS implementation with the pure perl version under -C<Useqq> has been improved. [perl #118933] - -=item * - -L<DB> has been upgraded from 1.41 to 1.42. - -The Perl debugger no longer crashes with C<PERLDB_OPTS="noTTY frame=2">. - -=item * - -L<Devel::Peek> has been upgraded from version 1.12 to 1.13. - -C<SvREFCNT_inc> and C<SvREFCNT_dec> have been removed and C<SvREFCNT> will now -work on non-scalars. [perl #117793] - -C<Dump> now checks its arguments at compile time. Both arguments are now -evaluated in scalar context, with exceptions for @arrays and %hashes, allowing -aggregates to be dumped directly. The first argument is evaluated in rvalue -scalar context, allowing rvalue C<pos> and C<substr> to be dumped. - -C<fill_mstats> no longer crashes if its argument is not already a string. -[perl #92260] - -=item * - -L<Devel::PPPort> has been upgraded from version 3.20 to 3.21. - -Numerous updates and bug fixes are incorporated. See the F<Changes> file for -full details. - -=item * - -L<diagnostics> has been upgraded from version 1.31 to 1.32. - -Wrapped links are no longer truncated. - -=item * - -L<DynaLoader> has been upgraded from version 1.18 to 1.19. - -The $dl_dlext variable is now documented. - -=item * - -L<Encode> has been upgraded from version 2.51 to 2.52. - -Encoding "0" with MIME-Headers no longer gets a blank string. - -=item * - -L<English> has been upgraded from version 1.07 to 1.08. - -The documentation of a performance fix has been corrected. - -=item * - -L<Exporter> has been upgraded from version 5.68 to 5.69. - -L<Exporter> would ignore custom $SIG{__WARN__} handlers in C<Exporter::Heavy>. -[perl #39739] - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from 6.68 to 6.72. - -The C<dist> target now reports the file created, an infinite loop in -C<clean_subdirs> has been fixed, an invisible interactive question is now -avoided when rebuilding Makefile, issues with F</cygdrive> on Cygwin have been -resolved, C<LD> and C<OPTIMIZE> are now used in recursive F<Makefile.PL> -invocations, C<VERSION> and C<VERSION_FROM> now handle v-strings correctly, and -control characters are now stripped from C<ABSTRACT>. - -=item * - -L<File::Spec> has been upgraded from 3.41 to 3.44. - -The module is now partly implemented in XS, for performance. - -=item * - -L<Getopt::Std> has been upgraded from version 1.09 to 1.10. - -Clarified documentation of what happens when a switch is expecting an argument -but fails to be provided with one. - -=item * - -The IO-Compress module collection has been upgraded from 2.061 to 2.062. - -Some documentation typos have been fixed. - -=item * - -L<IPC::Cmd> has been upgraded from version 0.82 to 0.84. - -C<run_forked> has various fixes/improvements, L<Socket> is only used where -needed and a regression introduced in 0.78 has been fixed. - -=item * - -L<IPC::Open3> has been upgraded from version 1.14 to 1.15. - -C<open3> would leak a zombie process if the child process I/O redirection or -C<exec> failed. [perl #114722] - -=item * - -L<IPC::SysV> has been upgraded from version 2.03 to 2.04. - -$EXPORT_TAGS{all} has been added and a couple of typos have been fixed. - -=item * - -The libnet module collection has been upgraded from version 1.22 to 1.23. - -Numerous bug fixes and documentation improvements have been made. See the -F<Changes> file for full details. - -=item * - -L<List::Util> has been upgraded from version 1.27 to 1.31. - -L<List::Util> now includes C<pairgrep>, C<pairmap>, C<pairs>, C<pairkeys>, -C<pairvalues> and C<pairfirst> functions that operate on even-sized lists of -pairs. - -=item * - -L<Module::Build> has been upgraded from 0.4005 to 0.4007. - -The test suite has been significantly sped up, Unicode man page support has -been enhanced and hash argument parsing in subclasses has been fixed. - -=item * - -L<Module::CoreList> has been upgraded from 2.92 to 2.97. - -The list of Perl versions covered has been updated. - -=item * - -L<mro> has been upgraded from version 1.12 to 1.13. - -A minor typo has been fixed in the documentation. - -=item * - -L<parent> has been upgraded from version 0.225 to 0.226. - -Internal changes only have been made to the test suite. - -=item * - -L<PerlIO> has been upgraded from version 1.07 to 1.08. - -Although not a security vulnerability, it was possible to inject code via -C<PerlIO-E<gt>import()>. This has now been fixed. [perl #119287] - -=item * - -L<Pod::Functions> has been upgraded from version 1.07 to 1.08. - -Internal changes only have been made to the test suite. - -=item * - -L<Socket> has been upgraded from version 2.010 to 2.011. - -Handle FreeBSD (or other platforms) returning shorter AF_UNIX sockaddr -structures due to embedded sun_len. [cpan #86613] - -=item * - -L<Storable> has been upgraded from version 2.45 to 2.46. - -Avoid creating temporary objects for STORABLE_attach when they aren't required. -[perl #118907] - -=item * - -L<Time::HiRes> has been upgraded from version 1.9725 to 1.9726. - -An C<lstat> function is now provided and various bugs have been fixed. See the -F<Changes> file for full details. - -=item * - -L<Time::Piece> has been upgraded from version 1.21 to 1.22. - -A minor documentation encoding problem has been fixed. - -=item * - -L<utf8> has been upgraded from version 1.12 to 1.13. - -A minor clarification has been made in the documentation. - -=item * - -L<version> has been upgraded from version 0.9902 to 0.9903. - -Various installation, testing and documentation changes have been made. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=head3 L<perlfunc> - -=over 4 - -=item * - -The documentation of C<ref> has been updated to recommend the use of -C<blessed>, C<isa> and C<reftype> when dealing with references to blessed -objects. - -=back - -=head3 L<perlguts> - -=over 4 - -=item * - -The explanation of the use of the C<SVs_PADMY> and C<SVs_PADTMP> flags in -determining whether an SV lives on a scratchpad has been clarified. - -=back - -=head3 L<perlopentut> - -=over 4 - -=item * - -The C<open> tutorial has been completely rewritten by Tom Christiansen, and now -focuses on covering only the basics, rather than providing a comprehensive -reference to all things openable. This rewrite came as the result of a -vigorous discussion on perl5-porters kicked off by a set of improvements -written by Alexander Hartmaier to the existing L<perlopentut>. A "more than -you ever wanted to know about C<open>" document may follow in subsequent -versions of perl. - -=back - -=head3 L<perlre> - -=over 4 - -=item * - -The C</r> modifier (for non-destructive substitution) is now documented. [perl -#119151] - -=back - -=head3 L<perlsub> - -=over 4 - -=item * - -The need to predeclare recursive functions with prototypes in order for the -prototype to be honoured in the recursive call is now documented. [perl #2726] - -=back - -=head3 L<perlvar> - -=over 4 - -=item * - -A new section explaining the performance issues of $`, $& and $', including -workarounds and changes in different versions of Perl, has been added. - -=back - -=head3 L<perlxs> - -=over 4 - -=item * - -Several problems in the C<MY_CXT> example have been fixed. - -=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>. - -=head2 New Diagnostics - -=head3 New Errors - -=over 4 - -=item * - -L<Magical list constants are not supported|perldiag/"Magical list constants are -not supported"> - -(F) You assigned a magical array to a stash element, and then tried to use the -subroutine from the same slot. You are asking Perl to do something it cannot -do, details subject to change between Perl versions. - -=back - -=head3 New Warnings - -=over 4 - -=item * - -L<Argument "%s" treated as 0 in increment (++)|perldiag/"Argument "%s" treated -as 0 in increment (++)"> - -(W numeric) The indicated string was fed as an argument to the C<++> operator -which expects either a number or a string matching C</^[a-zA-Z]*[0-9]*\z/>. -See L<perlop/Auto-increment and Auto-decrement> for details. - -=item * - -L<Unexpected exit %u|perldiag/"Unexpected exit %u"> - -(S) exit() was called or the script otherwise finished gracefully when -C<PERL_EXIT_WARN> was set in C<PL_exit_flags>. - -=item * - -L<Unexpected exit failure %u|perldiag/"Unexpected exit failure %u"> - -(S) An uncaught die() was called when C<PERL_EXIT_WARN> was set in -C<PL_exit_flags>. - -=back - -=head1 Testing - -=over 4 - -=item * - -The behaviour of C<pos> on very large strings is now tested in the new test -script F<t/bigmem/pos.t>. - -=item * - -The test script F<t/porting/ss_dup.t> has been created to test that ss_dup() -handles all savestack items. - -=item * - -The new behaviour of B<-F> and B<-a> (see the L</Core Enhancements> section) is -tested in the new test script F<t/run/switchF2.t>. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -C<sv_pos_b2u_flags> has been added to the API. It is similar to C<sv_pos_b2u>, -but supports long strings on 64-bit platforms. - -=item * - -C<PL_exit_flags> can now be used by perl embedders or other XS code to have -perl C<warn> or C<abort> on an attempted exit. [perl #52000] - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Autovivifying a subroutine stub via C<\&$glob> started causing crashes in Perl -5.18.0 if the $glob was merely a copy of a real glob, i.e., a scalar that had -had a glob assigned to it. This has been fixed. [perl #119051] - -=item * - -On 64-bit platforms C<pos> can now be set to a value higher than 2**31-1. -[perl #72766] - -=item * - -Perl used to leak an implementation detail when it came to referencing the -return values of certain operators. C<for ($a+$b) { warn \$_; warn \$_ }> used -to display two different memory addresses, because the C<\> operator was -copying the variable. Under threaded builds, it would also happen for -constants (C<for(1) { ... }>). This has been fixed. [perl #21979, #78194, -#89188, #109746, #114838, #115388] - -=item * - -The range operator C<..> was returning the same modifiable scalars with each -call, unless it was the only thing in a C<foreach> loop header. This meant -that changes to values within the list returned would be visible the next time -the operator was executed. [perl #3105] - -=item * - -Constant folding and subroutine inlining no longer cause operations that would -normally return new modifiable scalars to return read-only values instead. - -=item * - -Closures of the form C<sub () { $some_variable }> are no longer inlined, -causing changes to the variable to be ignored by callers of the subroutine. -[perl #79908] - -=item * - -Return values of certain operators such as C<ref> would sometimes be shared -between recursive calls to the same subroutine, causing the inner call to -modify the value returned by C<ref> in the outer call. This has been fixed. - -=item * - -C<__PACKAGE__> and constants returning a package name or hash key are now -consistently read-only. In various previous Perl releases, they have become -mutable under certain circumstances. - -=item * - -C</$qr/p> was broken in Perl 5.18.0; the C</p> flag was ignored. This has been -fixed. [perl #118213] - -=item * - -Starting in Perl 5.18.0, a construct like C</[#](?{})/x> would have its C<#> -incorrectly interpreted as a comment. The code block would be skipped, -unparsed. This has been corrected. - -=item * - -Starting in Perl 5.001, a regular expression like C</[#$a]/x> or C</[#]$a/x> -would have its C<#> incorrectly interpreted as a comment, so the variable would -not interpolate. This has been corrected. [perl #45667] - -=item * - -On non-threaded builds, setting C<${"_E<lt>filename"}> to a reference or -typeglob no longer causes C<__FILE__> and some error messages to produce a -corrupt string, and no longer prevents C<#line> directives in string evals from -providing the source lines to the debugger. Threaded builds were unaffected. - -=item * - -Enabling "used once" warnings no longer causes crashes on stash circularities -created at compile time (C<*Foo::Bar::Foo:: = *Foo::>). - -=item * - -Undef constants used in hash keys (C<use constant u =E<gt> undef; $h{+u}>) no -longer produce "uninitialized" warnings at compile time. - -=item * - -Modifying a substitution target inside the substitution replacement no longer -causes crashes. - -=item * - -The first statement inside a string eval used to use the wrong pragma setting -sometimes during constant folding. C<eval 'uc chr 0xe0'> would randomly choose -between Unicode, byte, and locale semantics. This has been fixed. - -=item * - -The handling of return values of @INC filters (subroutines returned by -subroutines in @INC) has been fixed in various ways. Previously tied variables -were mishandled, and setting $_ to a reference or typeglob could result in -crashes. - -=item * - -The C<SvPVbyte> XS function has been fixed to work with tied scalars returning -something other than a string. It used to return utf8 in those cases where -C<SvPV> would. - -=item * - -Perl 5.18.0 inadvertently made dereferenced regular expressions -S<(C<${ qr// }>)> false as booleans. This has been fixed. - -=item * - -Perl 5.18.0 inadvertently made C<--> and C<++> crash on dereferenced regular -expressions, and stopped C<++> from flattening vstrings. - -=item * - -C<bless> no longer dies with "Can't bless non-reference value" if its first -argument is a tied reference. - -=item * - -C<reset> with an argument no longer skips copy-on-write scalars, regular -expressions, typeglob copies, and vstrings. Also, when encountering those or -read-only values, it no longer skips any array or hash with the same name. - -=item * - -C<reset> with an argument now skips scalars aliased to typeglobs -(C<for $z (*foo) { reset "z" }>). Previously it would corrupt memory or crash. - -=item * - -C<ucfirst> and C<lcfirst> were not respecting the bytes pragma. This was a -regression from Perl 5.12. [perl #117355] - -=item * - -The use of C<\G> in regular expressions, where it's not at the start of the -pattern, is now slightly less buggy (although it is still somewhat -problematic). - -=item * - -Where a regular expression included code blocks (C</(?{...})/>), and where the -use of constant overloading triggered a re-compilation of the code block, the -second compilation didn't see its outer lexical scope. This was a regression -in Perl 5.18.0. - -=item * - -Changes to C<UNIVERSAL::DESTROY> now update DESTROY caches in all classes, -instead of causing classes that have already had objects destroyed to continue -using the old sub. This was a regression in Perl 5.18. [perl #114864] - -=item * - -All known false-positive occurrences of the deprecation warning "Useless use of -'\'; doesn't escape metacharacter '%c'", added in Perl 5.18.0, have been -removed. [perl #119101] - -=back - -=head1 Acknowledgements - -Perl 5.19.3 represents approximately 4 weeks of development since Perl 5.19.2 -and contains approximately 24,000 lines of changes across 710 files from 36 -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.19.3: - -Alexander Voronov, Andy Dougherty, Aristotle Pagaltzis, Brendan Byrd, Chris -'BinGOs' Williams, Colin Kuskie, Craig A. Berry, Daniel Dragan, Darin McBride, -David Mitchell, Father Chrysostomos, H.Merijn Brand, James E Keenan, John -Gardiner Myers, John Peacock, Karl Williamson, Lukas Mai, Marcus -Holland-Moritz, Nathan Trapuzzano, Neil Bowers, Nicholas Clark, Peter Martini, -Philip Boulain, Ricardo Signes, Sergey Alekseev, Shlomi Fish, Smylers, Steffen -Müller, Steve Hay, Tom Christiansen, Tony Cook, Victor Efimov, Viktor Turskyi, -Vladimir Timofeev, Yves Orton, Zefram. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl5194delta.pod b/pod/perl5194delta.pod deleted file mode 100644 index 7edad9a6ff..0000000000 --- a/pod/perl5194delta.pod +++ /dev/null @@ -1,1235 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5194delta - what is new for perl v5.19.4 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.3 release and the 5.19.4 -release. - -If you are upgrading from an earlier release such as 5.19.2, first read -L<perl5193delta>, which describes differences between 5.19.2 and 5.19.3. - -=head1 Core Enhancements - -=head2 C<rand> now uses a consistent random number generator - -Previously perl would use a platform specific random number generator, varying -between the libc rand(), random() or drand48(). - -This meant that the quality of perl's random numbers would vary from platform -to platform, from the 15 bits of rand() on Windows to 48-bits on POSIX -platforms such as Linux with drand48(). - -Perl now uses its own internal drand48() implementation on all platforms. This -does not make perl's C<rand> cryptographically secure. [perl #115928] - -=head2 Better 64-bit support - -On 64-bit platforms, the internal array functions now use 64-bit offsets, -allowing Perl arrays to hold more than 2**31 elements, if you have the memory -available. - -The regular expression engine now supports strings longer than 2**31 -characters. [perl #112790, #116907] - -The functions PerlIO_get_bufsiz, PerlIO_get_cnt, PerlIO_set_cnt and -PerlIO_set_ptrcnt now have SSize_t, rather than int, return values and -parameters. - -=head2 New slice syntax - -The new C<%hash{...}> and C<%array[...]> syntax returns a list of key/value (or -index/value) pairs. See L<perldata/"Key/Value Hash Slices">. - -=head2 EBCDIC support - -Core Perl now mostly works on EBCDIC platforms. This is not true of many -modules, including some which are shipped with this release. If you have -resources to help continue this process, including test machines, send email to -L<mailto:perl-mvs@perl.org>. - -As a result of this, certain XS functions are now deprecated; see L</Internal -Changes>. - -=head1 Incompatible Changes - -=head2 Locale decimal point character no longer leaks outside of -S<C<use locale>> scope (with the exception of $!) - -This is actually a bug fix, but some code has come to rely on the bug being -present, so this change is listed here. The current locale that the program is -running under is not supposed to be visible to Perl code except within the -scope of a S<C<use locale>>. However, until now under certain circumstances, -the character used for a decimal point (often a comma) leaked outside the -scope. - -This continues the work released in Perl 5.19.1. It turns out that that did -not catch all the leaks, including C<printf> and C<sprintf> not respecting -S<C<use locale>>. If your code is affected by this change, simply add a -S<C<use locale>>. - -Now, the only known place where S<C<use locale>> is not respected is in the -stringification of L<$!|perlvar/$!>. - -=head2 Assignments of Windows sockets error codes to $! now prefer F<errno.h> values over WSAGetLastError() values - -In previous versions of Perl, Windows sockets error codes as returned by -WSAGetLastError() were assigned to $!, and some constants such as ECONNABORTED, -not in F<errno.h> in VC++ (or the various Windows ports of gcc) were defined to -corresponding WSAE* values to allow $! to be tested against the E* constants -exported by L<Errno> and L<POSIX>. - -This worked well until VC++ 2010 and later, which introduced new E* constants -with values E<gt> 100 into F<errno.h>, including some being (re)defined by perl -to WSAE* values. That caused problems when linking XS code against other -libraries which used the original definitions of F<errno.h> constants. - -To avoid this incompatibility, perl now maps WSAE* error codes to E* values -where possible, and assigns those values to $!. The E* constants exported by -L<Errno> and L<POSIX> are updated to match so that testing $! against them, -wherever previously possible, will continue to work as expected, and all E* -constants found in F<errno.h> are now exported from those modules with their -original F<errno.h> values - -In order to avoid breakage in existing Perl code which assigns WSAE* values to -$!, perl now intercepts the assignment and performs the same mapping to E* -values as it uses internally when assigning to $! itself. - -However, one backwards-incompatibility remains: existing Perl code which -compares $! against the numeric values of the WSAE* error codes that were -previously assigned to $! will now be broken in those cases where a -corresponding E* value has been assigned instead. This is only an issue for -those E* values E<lt> 100, which were always exported from L<Errno> and -L<POSIX> with their original F<errno.h> values, and therefore could not be used -for WSAE* error code tests (e.g. WSAEINVAL is 10022, but the corresponding -EINVAL is 22). (E* values E<gt> 100, if present, were redefined to WSAE* -values anyway, so compatibility can be achieved by using the E* constants, -which will work both before and after this change, albeit using different -numeric values under the hood.) - -=head1 Deprecations - -=head2 Literal control characters in variable names - -This deprecation affects things like $\cT, where \cT is a literal control in -the source code. Surprisingly, it appears that originally this was intended as -the canonical way of accessing variables like $^T, with the caret form only -being added as an alternative. - -The literal control form is being deprecated for two main reasons. It has what -are likely unfixable bugs, such as $\cI not working as an alias for $^I, and -their usage not being portable to non-ASCII platforms: While $^T will work -everywhere, \cT is whitespace in EBCDIC. [perl #119123] - -=head1 Performance Enhancements - -=over 4 - -=item * - -The trie performance enhancement for regular expressions has now been extended -to those compiled under /iaa. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<autodie> has been upgraded from version 2.20 to 2.21. - -Numerous improvements have been made, many speed-related. See the F<Changes> -file in the CPAN distribution for full details. - -=item * - -L<B> has been upgraded from version 1.45 to 1.46. - -The fix for [perl #118525] introduced a regression in the behaviour of -C<B::CV::GV>, changing the return value from a C<B::SPECIAL> object on a -C<NULL> C<CvGV> to C<undef>. C<B::CV::GV> again returns a C<B::SPECIAL> object -in this case. [perl #119351] - -L<B> version 1.44 (Perl 5.19.2) introduced four new B::OP methods, C<slabbed>, -C<savefree>, C<static> and C<folded>, but these have never actually worked -until now. They used to croak. - -=item * - -L<B::Concise> has been upgraded from version 0.98 to 0.99. - -The handling of the C<glob> operator, broken since Perl 5.17.6, has been fixed -and handling of the new kvaslice and kvhslice operators have been added. - -=item * - -L<B::Deparse> has been upgraded from version 1.22 to 1.23. - -The new kvaslice and kvhslice operators have been added. - -=item * - -L<Carp> has been upgraded from version 1.31 to 1.32. - -=over 4 - -=item * - -In stack traces, subroutine arguments that are strings are now quoted in a -consistent manner, regardless of what characters they contain and how they're -internally represented. - -=item * - -L<Carp> also now shows subroutine arguments that are references to regexp -objects in a consistent manner in stack traces. - -=item * - -L<Carp> now takes care not to clobber the status variables $! and $^E. - -=item * - -L<Carp> now won't vivify the C<overload::StrVal> glob or subroutine or the -L<overload> stash. - -=item * - -L<Carp> now avoids some unwanted Unicode warnings on older Perls. This doesn't -affect behaviour with current Perls. - -=item * - -Carp::Heavy detects version mismatch with L<Carp>, to give a good error message -if a current (stub) Carp::Heavy gets loaded by an old L<Carp> that expects -Carp::Heavy to provide subroutines. - -=back - -=item * - -L<charnames> has been upgraded from version 1.38 to 1.39. - -This module now works on EBCDIC platforms. - -=item * - -L<CPAN> has been upgraded from version 2.00 to 2.03-TRIAL. - -Numerous updates and bug fixes are incorporated. See the F<Changes> file for -full details. - -=item * - -L<CPAN::Meta> has been upgraded from version 2.132140 to 2.132620. - -META validation no longer allows a scalar value when a list was required for a -field. - -=item * - -L<CPAN::Meta::Requirements> has been upgraded from version 2.122 to 2.123. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<Data::Dumper> has been upgraded from version 2.148 to 2.149. - -This upgrade is part of a larger change to make the array interface 64-bit safe -by using SSize_t instead of I32 for array indices. - -In addition, an EBCDIC fix has been applied. - -=item * - -L<Devel::Peek> has been upgraded from version 1.13 to 1.14. - -This upgrade is part of a larger change to preserve referential identity when -passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for -non-existent array elements. - -In addition, C<Dump> with no args was broken in Perl 5.19.3, but has now been -fixed. - -=item * - -L<diagnostics> has been upgraded from version 1.32 to 1.33. - -C<=back> is now treated as the end of a warning description, thus keeping any -trailing data in the file from showing up as part of the last warning's -description. [perl #119817] - -=item * - -L<DynaLoader> has been upgraded from version 1.19 to 1.20. - -The documentation now makes it clear, as has always been the case, that -C<dl_unload_file> is only called automatically to unload all loaded shared -objects if the perl interpreter was built with the C macro -DL_UNLOAD_ALL_AT_EXIT defined. Support for GNU DLD has also been removed. - -=item * - -L<Encode> has been upgraded from version 2.52 to 2.55. - -An erroneous early return in C<decode_utf8> has been removed, and a bug in -C<_utf8_on> under COW has been fixed. Encode also now uses L<parent> rather -than L<base> throughout. - -=item * - -L<Errno> has been upgraded from version 1.19 to 1.20. - -The list of E* constants exported on Windows has been updated to reflect the -changes made in the assignment of sockets error codes to $! (see -L</Incompatible Changes>). - -=item * - -L<Exporter> has been upgraded from version 5.69 to 5.70. - -A number of typos have been corrected in the documentation. - -=item * - -L<ExtUtils::CBuilder> has been upgraded from version 0.280210 to 0.280212. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<ExtUtils::Command> has been upgraded from version 1.17 to 1.18. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from version 6.72 to 6.76. - -Numerous updates and bug fixes are incorporated. See the F<Changes> file for -full details. - -=item * - -L<ExtUtils::ParseXS> has been upgraded from version 3.21 to 3.23. - -Unquoted "here-doc" markers for typemaps can now be optionally followed by a -semicolon, just like quoted markers. [perl #119761] - -=item * - -L<File::Copy> has been upgraded from version 2.27 to 2.28. - -The documentation of C<copy> now makes it clear that trying to copy a file into -a non-existent directory is not supported. [perl #119539] - -=item * - -L<File::Find> has been upgraded from version 1.24 to 1.25. - -Better diagnostics are now provided in the case of a failed C<chdir>. - -=item * - -L<File::Glob> has been upgraded from version 1.20 to 1.21. - -C<glob> now warns in the context of C<use warnings "syscalls";> if the supplied -pattern has an internal NUL (C<"\0">) character. - -=item * - -L<FileCache> has been upgraded from version 1.08 to 1.09. - -This upgrade is part of a larger change to use L<parent> rather than L<base>. - -=item * - -L<Hash::Util::FieldHash> has been upgraded from version 1.12 to 1.13. - -This upgrade is part of a larger change to use L<parent> rather than L<base>. - -=item * - -L<HTTP::Tiny> has been upgraded from version 0.034 to 0.035. - -Encoded data from C<post_form> now preserves term order if data is provided as -an array reference. (They are still sorted for consistency if provided as a -hash reference.) - -=item * - -L<I18N::LangTags> has been upgraded from version 0.39 to 0.40. - -Bosnian has now joined Croatian and Serbian in the lists of mutually -intelligible Slavic languages. [perl #72594] - -=item * - -L<IO> has been upgraded from version 1.28 to 1.29. - -A minor internals-only change has been made to the XS code. - -=item * - -L<IO::Socket> has been upgraded from version 1.36 to 1.37. - -The C<connect> method has been updated in the light of changes made in the -assignment of sockets error codes to $! on Windows (see L</Incompatible -Changes>). - -=item * - -L<IPC::Open3> has been upgraded from version 1.15 to 1.16. - -This upgrade is part of a larger change to preserve referential identity when -passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for -non-existent array elements. - -=item * - -L<JSON::PP> has been patched from version 2.27202 to 2.27202_01. - -A precedence issue has been fixed in the return value of a private subroutine. - -=item * - -L<Locale::Codes> has been upgraded from version 3.26 to 3.27. - -New codes have been added and the (deprecated) set of FIPS-10 country codes has -been removed. - -=item * - -L<Math::BigInt> has been upgraded from version 1.9992 to 1.9993. - -Cleaned up the L<Math::BigInt> and L<Math::BigFloat> documentation to be more -consistent with other Perl documentation. [perl #86686] - -Added a C<bint> method for rounding towards zero. [perl #85296] - -=item * - -L<Math::BigInt::FastCalc> has been upgraded from version 0.30 to 0.31. - -This upgrade is part of a larger change to make the array interface 64-bit safe -by using SSize_t instead of I32 for array indices. - -=item * - -L<Module::CoreList> has been upgraded from version 2.97 to 2.99. - -The list of Perl versions covered has been updated. - -A function C<is_core> has been added, which returns true if the specified -module was bundled with Perl. Optionally you can specify a minimum version of -the module, and the specific version of Perl you're interested in (defaults to -$^V, the running version of Perl). - -=item * - -L<Module::Load::Conditional> has been upgraded from version 0.54 to 0.58. - -C<requires> has been made more robust. [cpan #83728] - -=item * - -L<Module::Metadata> has been upgraded from version 1.000014 to 1.000018. - -The module's DESCRIPTION has been re-worded regarding safety/security to -satisfy CVE-2013-1437. Also, versions are now detainted if needed. [cpan -#88576] - -=item * - -L<mro> has been upgraded from version 1.13 to 1.14. - -This upgrade is part of a larger change to make the array interface 64-bit safe -by using SSize_t instead of I32 for array indices. - -=item * - -L<Opcode> has been upgraded from version 1.25 to 1.26. - -The new kvaslice and kvhslice operators have been added. - -=item * - -L<parent> has been upgraded from version 0.226 to 0.228. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<Parse::CPAN::Meta> has been upgraded from version 1.4405 to 1.4407. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<Perl::OSType> has been upgraded from version 1.003 to 1.005. - -The Unix OSType 'bitrig' has been added. - -=item * - -L<perlfaq> has been upgraded from version 5.0150043 to 5.0150044. - -The use of C<gensym> in a number of examples has been removed, the use of C<&> -in subroutine calls is now clarified and several new questions have been -answered. - -=item * - -L<Pod::Html> has been upgraded from version 1.20 to 1.21. - -This upgrade is part of a larger change to use L<parent> rather than L<base>. - -=item * - -L<POSIX> has been upgraded from version 1.34 to 1.35. - -The list of E* constants exported on Windows has been updated to reflect the -changes made in the assignment of sockets error codes to $! (see -L</Incompatible Changes>). - -=item * - -L<re> has been upgraded from version 0.25 to 0.26. - -This upgrade is part of a larger change to support 64-bit string lengths in the -regular expression engine. - -=item * - -L<Scalar::Util> has been upgraded from version 1.31 to 1.32. - -The documentation of C<blessed> has been improved to mention the fact that -package "0" is defined but false. - -=item * - -L<Socket> has been upgraded from version 2.011 to 2.012. - -Syntax errors when building on the WinCE platform have been fixed. [cpan -#87389] - -=item * - -L<Storable> has been upgraded from version 2.46 to 2.47. - -This upgrade is part of a larger change to preserve referential identity when -passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for -non-existent array elements. - -=item * - -L<Term::ReadLine> has been upgraded from version 1.13 to 1.14. - -Term::ReadLine::EditLine support has been added. - -=item * - -L<Test::Simple> has been patched from version 0.98 to 0.98_06. - -A precedence issue has been fixed in the return value of a private subroutine -in L<Test::Builder>. - -=item * - -L<Time::Piece> has been upgraded from version 1.22 to 1.23. - -Day of year parsing (like "%y%j") has been fixed. - -=item * - -L<Unicode::Collate> has been upgraded from version 0.98 to 0.99. - -By default, out-of-range values are replaced with U+FFFD (REPLACEMENT -CHARACTER) when C<UCA_Version> E<gt>= 22, or ignored when C<UCA_Version> E<lt>= -20. When C<UCA_Version> E<gt>= 22, the weights of out-of-range values can be -overridden. - -=item * - -L<Unicode::UCD> has been upgraded from version 0.53 to 0.54. - -This module now works on EBCDIC platforms. - -=item * - -L<version> has been upgraded from version 0.9903 to 0.9904. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<warnings> has been upgraded from version 1.18 to 1.19. - -The C<syscalls> warnings category has been added to check for embedded NUL -(C<"\0">) characters in pathnames and string arguments to other system calls. -[perl #117265] - -=item * - -L<XS::Typemap> has been upgraded from version 0.10 to 0.11. - -This upgrade is part of the change to remove the uninitialized warnings -exemption for uninitialized values returned by XSUBs (see the L</Selected Bug -Fixes> section). - -=back - -=head1 Documentation - -=head2 New Documentation - -=head3 L<perlrepository> - -This document was removed (actually, renamed L<perlgit> and given a major -overhaul) in Perl 5.13.10, causing Perl documentation websites to show the now -out of date version in Perl 5.12 as the latest version. It has now been -restored in stub form, directing readers to current information. - -=head2 Changes to Existing Documentation - -=head3 L<perldata> - -=over 4 - -=item * - -New sections have been added to document the new index/value array slice and -key/value hash slice syntax. - -=back - -=head3 L<perldebguts> - -=over 4 - -=item * - -The C<DB::goto> and C<DB::lsub> debugger subroutines are now documented. [perl -#77680] - -=back - -=head3 L<perlguts> - -=over 4 - -=item * - -Numerous minor changes have been made to reflect changes made to the perl -internals in this release. - -=back - -=head3 L<perlhack> - -=over 4 - -=item * - -The L<SUPER QUICK PATCH GUIDE|perlhack/SUPER QUICK PATCH GUIDE> section has -been updated. - -=back - -=head3 L<perlsub> - -=over 4 - -=item * - -A list of subroutine names used by the perl implementation is now included. -[perl #77680] - -=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>. - -=head2 New Diagnostics - -=head3 New Errors - -=over 4 - -=item * - -L<delete argument is indexE<sol>value array slice, use array slice|perldiag/"delete argument is index/value array slice, use array slice"> - -(F) You used index/value array slice syntax (C<%array[...]>) as the argument to -C<delete>. You probably meant C<@array[...]> with an @ symbol instead. - -=item * - -L<delete argument is keyE<sol>value hash slice, use hash slice|perldiag/"delete argument is key/value hash slice, use hash slice"> - -(F) You used key/value hash slice syntax (C<%hash{...}>) as the argument to -C<delete>. You probably meant C<@hash{...}> with an @ symbol instead. - -=back - -=head3 New Warnings - -=over 4 - -=item * - -L<Invalid \0 character in %s for %s: %s\0%s|perldiag/"Invalid \0 character in %s for %s: %s\0%s"> - -(W syscalls) Embedded \0 characters in pathnames or other system call arguments -produce a warning as of 5.20. The parts after the \0 were formerly ignored by -system calls. - -=item * - -L<Possible precedence issue with control flow operator|perldiag/"Possible precedence issue with control flow operator"> - -(W syntax) There is a possible problem with the mixing of a control flow -operator (e.g. C<return>) and a low-precedence operator like C<or>. Consider: - - sub { return $a or $b; } - -This is parsed as: - - sub { (return $a) or $b; } - -Which is effectively just: - - sub { return $a; } - -Either use parentheses or the high-precedence variant of the operator. - -Note this may be also triggered for constructs like: - - sub { 1 if die; } - -=item * - -L<Scalar value %%s[%s] better written as $%s[%s]|perldiag/"Scalar value %%s[%s] better written as $%s[%s]"> - -(W syntax) In scalar context, you've used an array index/value slice (indicated -by %) to select a single element of an array. Generally it's better to ask for -a scalar value (indicated by $). The difference is that C<$foo[&bar]> always -behaves like a scalar, both in the value it returns and when evaluating its -argument, while C<%foo[&bar]> provides a list context to its subscript, which -can do weird things if you're expecting only one subscript. When called in -list context, it also returns the index (what C<&bar> returns) in addition to -the value. - -=item * - -L<Scalar value %%s{%s} better written as $%s{%s}|perldiag/"Scalar value %%s{%s} better written as $%s{%s}"> - -(W syntax) In scalar context, you've used a hash key/value slice (indicated by -%) to select a single element of a hash. Generally it's better to ask for a -scalar value (indicated by $). The difference is that C<$foo{&bar}> always -behaves like a scalar, both in the value it returns and when evaluating its -argument, while C<@foo{&bar}> and provides a list context to its subscript, -which can do weird things if you're expecting only one subscript. When called -in list context, it also returns the key in addition to the value. - -=item * - -L<Use of literal control characters in variable names is deprecated|perldiag/"Use of literal control characters in variable names is deprecated"> - -(D deprecated) Using literal control characters in the source to refer to the -^FOO variables, like $^X and ${^GLOBAL_PHASE} is now deprecated. This only -affects code like $\cT, where \cT is a control in the source code: ${"\cT"} and -$^T remain valid. - -=back - -=head2 Changes to Existing Diagnostics - -=over 4 - -=item * - -Warnings and errors from the regexp engine are now UTF-8 clean - -=item * - -The "Unknown switch condition" error message has some slight changes. This -error triggers when there is an unknown condition in a C<(?(foo))> conditional. -The error message used to read: - - Unknown switch condition (?(%s in regex; - -But what %s could be was mostly up to luck. For C<(?(foobar))>, you might have -seen "fo" or "f". For Unicode characters, you would generally get a corrupted -string. The message has been changed to read: - - Unknown switch condition (?(...)) in regex; - -Additionally, the C<'E<lt>-- HERE'> marker in the error will now point to the -correct spot in the regex. - -=item * - -The "%s "\x%X" does not map to Unicode" warning is now correctly listed as a -severe warning rather than as a fatal error. - -=back - -=head1 Utility Changes - -=head3 L<find2perl> - -=over 4 - -=item * - -L<find2perl> now handles C<?> wildcards correctly. [perl #113054] - -=back - -=head1 Configuration and Compilation - -=over 4 - -=item * - -The F<Makefile.PL> for L<SDBM_File> now generates a better F<Makefile>, which -avoids a race condition during parallel makes, which could cause the build to -fail. This is the last known parallel make problem (on *nix platforms), and -therefore we believe that a parallel make should now always be error free. - -=for comment - -Strictly only for a build where build files such as F<Makefile.SH> have not -been updated by C<git> in an already configured and built tree. - -=back - -=head1 Testing - -=over 4 - -=item * - -The test script F<t/bigmem/regexp.t> has been added to test that regular -expression matches on very large strings now succeed as expected. - -=item * - -A bug that was fixed in Perl 5.15.4 is now tested by the new test script -F<t/io/eintr_print.t>. [perl #119097] - -=item * - -The new test scripts F<t/op/kvaslice.t> and F<t/op/kvhslice.t> test the new -index/value array slice and key/value hash slice syntax respectively. - -=item * - -Various cases of C<die>, C<last>, C<goto> and C<exit> triggering C<DESTROY> are -now tested by the new test script F<t/op/rt119311.t>. - -=item * - -The new test script F<t/op/waitpid.t> tests the fix for [perl #85228] (see -L</Selected Bug Fixes>). - -=item * - -The latest copyright years in the top-level F<README> file and the B<perl -v> -output are now tested as matching each other by the new test script -F<t/porting/copyright.t> - -=item * - -The new test script F<t/win32/signal.t> tests that $! and $^E are now preserved -across signal handlers by the Win32 signal emulation code. - -=item * - -The test script F<t/x2p/find2perl.t> has been added to test the F<find2perl> -program on platforms where it is practical to do so. - -=back - -=head1 Platform Support - -=head2 New Platforms - -=over 4 - -=item FreeMiNT - -Support has been added for FreeMiNT, a free open-source OS for the Atari ST -system and its successors, based on the original MiNT that was officially -adopted by Atari. - -=item Bitrig - -Compile support has been added for Bitrig, a fork of OpenBSD. - -=back - -=head2 Discontinued Platforms - -Configure hints and conditional code for several very old platforms has been -removed. We have not received reports for these in many years, typically not -since Perl 5.6.0. - -=over 4 - -=item AT&T 3b1 - -Configure support for the 3b1, also known as the AT&T Unix PC (and the similar -AT&T 7300), has been removed. - -=back - -=head2 Platform-Specific Notes - -=over 4 - -=item VMS - -The C<PERL_ENV_TABLES> feature to control the population of %ENV at perl -start-up was broken in Perl 5.16.0 but has now been fixed. - -=item Win32 - -C<rename> and C<link> on Win32 now set $! to ENOSPC and EDQUOT when -appropriate. [perl #119857] - -=item WinCE - -Perl now builds again on WinCE, following locale-related breakage (WinCE has -non-existent locale support) introduced around 5.19.1. [perl #119443] - -The building of XS modules has largely been restored. Several still cannot -(yet) be built but it is now possible to build Perl on WinCE with only a couple -of further patches (to L<Socket> and L<ExtUtils::MakeMaker>), hopefully to be -incorporated soon. - -=item GNU/Hurd - -The BSD compatibility library C<libbsd> is no longer required for builds. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -The internal representation has changed for the match variables $1, $2 etc., -$`, $&, $', ${^PREMATCH}, ${^MATCH} and ${^POSTMATCH}. It uses slightly less -memory, avoids string comparisons and numeric conversions during lookup, and -uses 23 fewer lines of C. This change should not affect any external code. - -=item * - -Arrays now use NULL internally to represent unused slots, instead of -&PL_sv_undef. &PL_sv_undef is no longer treated as a special value, so -av_store(av, 0, &PL_sv_undef) will cause element 0 of that array to hold a -read-only undefined scalar. C<$array[0] = anything> will croak and -C<\$array[0]> will compare equal to C<\undef>. - -=item * - -The SV returned by HeSVKEY_force() now correctly reflects the UTF8ness of the -underlying hash key when that key is not stored as a SV. [perl #79074] - -=item * - -Certain rarely used functions and macros available to XS code are now, or are -planned to be, deprecated. These are: -C<utf8n_to_uvuni> (use C<utf8_to_uvchr_buf> instead), -C<utf8_to_uni_buf> (use C<utf8_to_uvchr_buf> instead), -C<valid_utf8_to_uvuni> (use C<utf8_to_uvchr_buf> instead), -C<uvuni_to_utf8> (use C<uvchr_to_utf8> instead), -C<NATIVE_TO_NEED> (this did not work properly anyway), -and C<ASCII_TO_NEED> (this did not work properly anyway). - -Starting in this release, almost never does application code need to -distinguish between the platform's character set and Latin1, on which the -lowest 256 characters of Unicode are based. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -The value of $^E is now saved across signal handlers on Windows. [perl #85104] - -=item * - -A lexical filehandle (as in C<open my $fh...>) is usually given a name based on -the current package and the name of the variable, e.g. "main::$fh". Under -recursion, the filehandle was losing the "$fh" part of the name. This has been -fixed. - -=item * - -Perl 5.19.3 accidentally extended the previous bug to all closures, even when -not called recursively, i.e. lexical handles in closure would always be called -"main::" or "MyPackage::" etc. This has been fixed. - -=item * - -Uninitialized values returned by XSUBs are no longer exempt from uninitialized -warnings. [perl #118693] - -=item * - -C<elsif ("")> no longer erroneously produces a warning about void context. -[perl #118753] - -=item * - -Passing C<undef> to a subroutine now causes @_ to contain the same read-only -undefined scalar that C<undef> returns. Furthermore, C<exists $_[0]> will now -return true if C<undef> was the first argument. [perl #7508, #109726] - -=item * - -Passing a non-existent array element to a subroutine does not usually -autovivify it unless the subroutine modifies its argument. This did not work -correctly with negative indices and with non-existent elements within the -array. The element would be vivified immediately. The delayed vivification -has been extended to work with those. [perl #118691] - -=item * - -Assigning references or globs to the scalar returned by $#foo after the @foo -array has been freed no longer causes assertion failures on debugging builds -and memory leaks on regular builds. - -=item * - -Perl 5.19.2 threw line numbers off after some cases of line breaks following -keywords, such as - - 1 unless - 1; - -This has been fixed. [perl #118931] - -=item * - -On 64-bit platforms, large ranges like 1..1000000000000 no longer crash, but -eat up all your memory instead. [perl #119161] - -=item * - -C<__DATA__> now puts the C<DATA> handle in the right package, even if the -current package has been renamed through glob assignment. - -=item * - -The string position set by C<pos> could shift if the string changed -representation internally to or from utf8. This could happen, e.g., with -references to objects with string overloading. - -=item * - -Taking references to the return values of two C<pos> calls with the same -argument, and then assigning a reference to one and C<undef> to the other, -could result in assertion failures or memory leaks. - -=item * - -Elements of @- and @+ now update correctly when they refer to non-existent -captures. Previously, a referenced element (C<$ref = \$-[1]>) could refer to -the wrong match after subsequent matches. - -=item * - -When C<die>, C<last>, C<next>, C<redo>, C<goto> and C<exit> unwind the scope, -it is possible for C<DESTROY> recursively to call a subroutine or format that -is currently being exited. It that case, sometimes the lexical variables -inside the sub would start out having values from the outer call, instead of -being undefined as they should. This has been fixed. [perl #119311] - -=item * - -${^MPEN} is no longer treated as a synonym for ${^MATCH}. - -=item * - -Perl now tries a little harder to return the correct line number in -C<(caller)[2]>. [perl #115768] - -=item * - -Line numbers inside multiline quote-like operators are now reported correctly. -[perl #3643] - -=item * - -C<#line> directives inside code embedded in quote-like operators are now -respected. - -=item * - -Line numbers are now correct inside the second here-doc when two here-doc -markers occur on the same line. - -=item * - -Starting with Perl 5.12, line numbers were off by one if the B<-d> switch was -used on the #! line. Now they are correct. - -=item * - -Perl 5.19.2 inadvertently stopped some lines of code from being available to -the debugger if C<=E<gt>> occurred at the beginning of a line and the previous -line ended with a keyword. This is now fixed. - -=item * - -Perl 5.19.2 allowed the PERL5DB environment variable to contain multiple lines -of code, but those lines were not made available to the debugger. Now they are -all stuffed into line number 0, accessible via C<$dbline[0]> in the debugger. - -=item * - -An optimization in Perl 5.18 made incorrect assumptions causing a bad -interaction with the L<Devel::CallParser> CPAN module. If the module was -loaded then lexical variables declared in separate statements following a -C<my(...)> list might fail to be cleared on scope exit. - -=item * - -C<&xsub> and C<goto &xsub> calls now allow the called subroutine to autovivify -elements of @_. - -=item * - -C<&xsub> and C<goto &xsub> no longer crash if *_ has been undefined and has no -ARRAY entry (i.e. @_ does not exist). - -=item * - -C<&xsub> and C<goto &xsub> now work with tied @_. - -=item * - -Overlong identifiers no longer cause a buffer overflow (and a crash). They -started doing so in Perl 5.18. - -=item * - -The warning "Scalar value @hash{foo} better written as $hash{foo}" now produces -far fewer false positives. In particular, C<@hash{+function_returning_a_list}> -and C<@hash{ qw "foo bar baz" }> no longer warn. The same applies to array -slices. [perl #28380, #114024] - -=item * - -C<$! = EINVAL; waitpid(0, WNOHANG);> no longer goes into an internal infinite -loop. [perl #85228] - -=item * - -Perl 5.19.3 accidentally caused C<\(1+2)> to return a reference to the same -mutable scalar each time, so that modifications affect future evaluations. -This has been fixed. [perl #119501] - -=item * - -A possible segmentation fault in filehandle duplication has been fixed. - -=item * - -A subroutine in @INC can return a reference to a scalar containing the initial -contents of the file. However, that scalar was freed prematurely if not -referenced elsewhere, giving random results. - -=back - -=head1 Acknowledgements - -Perl 5.19.4 represents approximately 4 weeks of development since Perl 5.19.3 -and contains approximately 31,000 lines of changes across 580 files from 42 -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.19.4: - -Andy Dougherty, Brian Fraser, Chris 'BinGOs' Williams, Christian Millour, Craig -A. Berry, Daniel Dragan, David Golden, David Leadbeater, David Mitchell, Father -Chrysostomos, Florian Ragwitz, François Perrad, H.Merijn Brand, James E -Keenan, John Goodyear, John P. Linderman, John Peacock, Karl Williamson, kevin -dawson, Leon Timmermans, Marco Peereboom, Matthew Horsfall, Nathan Glenn, Neil -Bowers, Nicholas Clark, Niels Thykier, Niko Tyni, Owain G. Ainsworth, Peter -John Acklam, Reini Urban, Ricardo Signes, Ruslan Zakirov, Slaven Rezic, -Smylers, Steve Hay, Sullivan Beck, Toby Inkster, Tokuhiro Matsuno, Tony Cook, -Victor Efimov, Zefram, Zsbán Ambrus. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl5195delta.pod b/pod/perl5195delta.pod deleted file mode 100644 index 0bf844ccd1..0000000000 --- a/pod/perl5195delta.pod +++ /dev/null @@ -1,525 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5195delta - what is new for perl v5.19.5 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.4 release and the 5.19.5 -release. - -If you are upgrading from an earlier release such as 5.19.3, first read -L<perl5194delta>, which describes differences between 5.19.3 and 5.19.4. - -=head1 Core Enhancements - -=head2 Unicode 6.3 now supported - -Perl now supports and is shipped with Unicode 6.3 (though Perl may be -recompiled with any previous Unicode release as well). A detailed list of -Unicode 6.3 changes is at L<http://www.unicode.org/versions/Unicode6.3.0/>. - -=head2 Experimental Postfix Dereferencing - -When the C<postderef> feature is in effect, the following syntactical -equivalencies are set up: - - $sref->$*; # same as ${ $sref } # interpolates - $aref->@*; # same as @{ $aref } # interpolates - $href->%*; # same as %{ $href } - $cref->&*; # same as &{ $cref } - $gref->**; # same as *{ $gref } - - $gref->*{ $slot }; # same as *{ $gref }{ $slot } - - $aref->@[ ... ]; # same as @$aref[ ... ] # interpolates - $href->@{ ... }; # same as @$href{ ... } # interpolates - $aref->%[ ... ]; # same as %$aref[ ... ] - $href->%{ ... }; # same as %$href{ ... } - -Those marked as interpolating only interpolate if the associated -C<postderef_qq> feature is also enabled. This feature is B<experimental> and -will trigger C<experimental::postderef>-category warnings when used, unless -they are suppressed. - -For more information, consult L<the Postfix Dereference Syntax section of -perlref|perlref/Postfix Dereference Syntax>. - -=head2 C<sub>s now take a C<prototype> attribute - -When declaring or defining a C<sub>, the prototype can now be specified inside -of a C<prototype> attribute instead of in parens following the name. - -For example, C<sub foo($$){}> could be rewritten as -C<sub foo : prototype($$){}>. - -=head1 Incompatible Changes - -=head2 Functions C<PerlIO_vsprintf> and C<PerlIO_sprintf> have been removed - -These two functions, undocumented, unused in CPAN, and problematic, have been -removed. - -=head1 Performance Enhancements - -=over 4 - -=item * - -Perl has an optimizer for regular expression patterns. It analyzes the pattern -to find things such as the minimum length a string has to be to match, etc. It -now better handles code points that are above the Latin1 range. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<attributes> has been upgraded from version 0.21 to 0.22. - -Support has been added for the C<prototype> attribute. - -=item * - -L<autodie> has been upgraded from version 2.21 to 2.22. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<CPAN::Meta> has been upgraded from version 2.132620 to 2.132830. - -L<CPAN::Meta::Prereqs> now has a C<merged_requirements> method for combining -requirements across multiple phases and types, and an invalid 'meta-spec' is no -longer a fatal error. - -=item * - -L<CPAN::Meta::Requirements> has been upgraded from version 2.123 to 2.125. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<CPAN::Meta::YAML> has been upgraded from version 0.008 to 0.010. - -No material changes have been made to the installed code other than the version -bump to keep in sync with the latest CPAN release. - -=item * - -L<Cwd> has been upgraded from version 3.44 to 3.45. - -An obsolete #define has been removed from the XS code. - -=item * - -L<ExtUtils::Install> has been upgraded from version 1.60 to 1.61. - -Some POD formatting errors in the documentation have been corrected. - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from version 6.76 to 6.80. - -Numerous updates and bug fixes are incorporated. See the F<Changes> file in -the CPAN distribution for full details. - -=item * - -L<feature> has been upgraded from version 1.33 to 1.34. - -The new features C<postderef> and C<postderef_qq> have been added. - -=item * - -L<File::Fetch> has been upgraded from version 0.42 to 0.44. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<File::Glob> has been upgraded from version 1.21 to 1.22. - -Since Perl 5.16, code that used C<glob> inside a thread had been -unintentionally sharing state between threads. This has now been fixed. [perl -#119897/#117823] - -=item * - -L<File::Temp> has been upgraded from version 0.2301 to 0.2304. - -Required versions of other modules used are now listed more explicitly, L<base> -is now used instead of L<parent>, and L<Exporter> is no longer inherited from. - -=item * - -L<Getopt::Long> has been upgraded from version 2.41 to 2.42. - -The floating point specifier C<name=f> no longer erroneously accepts values -like 1.2.3. [cpan #88707] - -=item * - -L<HTTP::Tiny> has been upgraded from version 0.035 to 0.036. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<IPC::Cmd> has been upgraded from version 0.84 to 0.84_01. - -No changes have been made to the installed code, but a test script has been -fixed for Solaris (and potentially other SVR* variants). - -=item * - -L<JSON::PP> has been upgraded from version 2.27202_01 to 2.27203. - -A return/or precedence issue in C<_incr_parse> has been fixed. - -=item * - -L<List::Util> has been upgraded from version 1.32 to 1.35. - -The list functions C<any>, C<all>, C<none>, C<notall> and C<product> have been -added, and C<reduce> and C<first> are now implemented even in the absence of -MULTICALL. - -=item * - -L<Module::CoreList> has been upgraded from version 2.99 to 3.00. - -The list of Perl versions covered has been updated, %delta is now exported, and -a bug in C<is_core> whereby it wrongly assumed a linear list of releases has -been fixed. - -=item * - -L<Module::Metadata> has been upgraded from version 1.000018 to 1.000019. - -Warnings are now disabled during version evaluation. - -=item * - -L<Parse::CPAN::Meta> has been upgraded from version 1.4407 to 1.4409. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<Perl::OSType> has been upgraded from version 1.005 to 1.006. - -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. - -=item * - -L<PerlIO::scalar> has been upgraded from version 0.16 to 0.17. - -An infinite loop when reading from a filehandle opened from a reference has -been fixed by first stringifying the reference. [perl #119529] - -=item * - -The podlators modules have been upgraded from version 2.5.1 to 2.5.3. - -Numerous updates and bug fixes are incorporated. See the F<Changes> file in -the CPAN distribution for full details. - -=item * - -L<Test::Harness> has been upgraded from version 3.28 to 3.29. - -All modules now use C<our> rather than C<use vars>, have C<use warnings> -enabled and C<use parent> instead of @ISA. - -=item * - -L<Test::Simple> has been upgraded from version 0.98_06 to 0.99. - -Numerous updates and bug fixes are incorporated. See the F<Changes> file in -the CPAN distribution for full details. - -=item * - -L<threads> has been upgraded from version 1.87 to 1.89. - -The documentation of C<alarm> and C<_handle> has been updated. - -=item * - -L<Unicode::Normalize> has been upgraded from version 1.16 to 1.17. - -The module now C<die>s if it cannot get Unicode code points using C<unpack>. -(There is already a similar C<die> if Unicode code points cannot be stringified -using C<pack>.) - -=item * - -L<Unicode::UCD> has been upgraded from version 0.54 to 0.55. - -An internals-only change has been made to handle changes in format within some -character database tables. - -=item * - -L<warnings> has been upgraded from version 1.19 to 1.20. - -The new warnings category C<experimental::postderef> has been added. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=head3 L<perlref> - -=over 4 - -=item * - -Documentation of the new postfix dereference syntax has been added. - -=back - -=head3 L<perlreguts> - -=over 4 - -=item * - -The documentation has been updated in the light of recent changes to -F<regcomp.c>. - -=back - -=head3 L<perlvar> - -=over 4 - -=item * - -Three L<English> variable names which have long been documented but do not -actually exist have been removed from the documentation. - -=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>. - -=head2 New Diagnostics - -=head3 New Warnings - -=over 4 - -=item * - -L<Attribute prototype(%s) discards earlier prototype attribute in same sub|perldiag/"Attribute prototype(%s) discards earlier prototype attribute in same sub"> - -(W misc) A sub was declared as sub foo : prototype(A) : prototype(B) {}, for -example. Since each sub can only have one prototype, the earlier -declaration(s) are discarded while the last one is applied. - -=item * - -L<Postfix dereference is experimental|perldiag/"Postfix dereference is experimental"> - -(S experimental::postderef) This warning is emitted if you use the experimental -postfix dereference syntax. Simply suppress the warning if you want to use the -feature, but know that in doing so you are taking the risk of using an -experimental feature which may change or be removed in a future Perl version: - - no warnings "experimental::postderef"; - use feature "postderef", "postderef_qq"; - $ref->$*; - $aref->@*; - $aref->@[@indices]; - ... etc ... - -=item * - -L<Prototype '%s' overridden by attribute 'prototype(%s)' in %s|perldiag/"Prototype '%s' overridden by attribute 'prototype(%s)' in %s"> - -(W prototype) A prototype was declared in both the parentheses after the sub -name and via the prototype attribute. The prototype in parentheses is useless, -since it will be replaced by the prototype from the attribute before it's ever -used. - -=back - -=head1 Utility Changes - -=head3 L<a2p> - -=over 4 - -=item * - -A possible crash from an off-by-one error when trying to access before the -beginning of a buffer has been fixed. [perl #120244] - -=back - -=head1 Testing - -=over 4 - -=item * - -The new prototype attribute syntax is tested by a new test script, -F<t/op/attrproto.t>. - -=item * - -The new test script F<t/io/closepid.t> tests that C<close> on the original of a -popen handle dupped to a standard handle no longer blocks internally on -C<waitpid(0, ...)>. - -=item * - -The new postfix dereference syntax is tested by a new test script, -F<t/op/postfixderef.t>. - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item Windows - -The Windows MinGW/gcc build was broken in Perl 5.19.4 for some recent versions -of gcc-4.8, including those from http://mingw-w64.sourceforge.net/ . This has -now been fixed. [perl #120236] - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -C<last> no longer returns values that the same statement has accumulated so -far, fixing amongst other things the long-standing bug that C<push @a, last> -would try to return the @a, copying it like a scalar in the process and -resulting in the error, "Bizarre copy of ARRAY in last." [perl #3112] - -=item * - -An optimization in Perl 5.18 made incorrect assumptions causing a bad -interaction with the L<Devel::CallParser> CPAN module. This was partially -fixed in Perl 5.19.4, but the fix was not sufficient and another fault has now -been corrected. - -=item * - -In some cases, closing file handles opened to pipe to or from a process, which -had been duplicated into a standard handle, would call perl's internal waitpid -wrapper with a pid of zero. With the fix for [perl #85228] this zero pid was -passed to C<waitpid>, possibly blocking the process. This wait for process -zero no longer occurs. [perl #119893] - -=item * - -The code that parses regex backrefs (or ambiguous backref/octals) such as \123 -did a simple atoi(), which could wrap round to negative values on long digit -strings and cause segmentation faults. This has now been fixed. [perl -#119505] - -=item * - -C<select> used to ignore magic on the fourth (timeout) argument, leading to -effects such as C<select> blocking indefinitely rather than the expected sleep -time. This has now been fixed. [perl #120102] - -=item * - -The class name in C<for my class $foo> is now parsed correctly. In the case of -the second character of the class name being followed by a digit (e.g. 'a1b') -this used to give the error "Missing $ on loop variable". [perl #120112] - -=back - -=head1 Acknowledgements - -Perl 5.19.5 represents approximately 4 weeks of development since Perl 5.19.4 -and contains approximately 76,000 lines of changes across 710 files from 27 -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.19.5: - -Andy Dougherty, Brian Fraser, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn -Ilmari Mannsåker, Daniel Dragan, David Golden, David Mitchell, David Nicol, -Dominic Hargreaves, Eric Brine, Father Chrysostomos, Gideon Israel Dsouza, Hio, -James E Keenan, Jerry D. Hedden, Jesse Luehrs, Karl Williamson, Matthew -Horsfall, Max Maischein, Neil Bowers, Nicholas Clark, Peter Martini, Philip -Guenther, Ricardo Signes, Steve Hay, Tony Cook. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl5196delta.pod b/pod/perl5196delta.pod deleted file mode 100644 index 004d1a029a..0000000000 --- a/pod/perl5196delta.pod +++ /dev/null @@ -1,611 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5196delta - what is new for perl v5.19.6 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.5 release and the 5.19.6 -release. - -If you are upgrading from an earlier release such as 5.19.4, first read -L<perl5195delta>, which describes differences between 5.19.4 and 5.19.5. - -=head1 Core Enhancements - -=head2 $a and $b warnings exemption - -The special variables $a and $b, used in C<sort>, are now exempt from "used -once" warnings, even where C<sort> is not used. This makes it easier for -CPAN modules to provide functions using $a and $b for similar purposes. -[perl #120462] - -=head1 Deprecations - -=head2 Module removals - -The following modules will be removed from the core distribution in a -future release, and will at that time need to be installed from CPAN. -Distributions on CPAN which require these modules will need to list them as -prerequisites. - -The core versions of these modules will now issue C<"deprecated">-category -warnings to alert you to this fact. To silence these deprecation warnings, -install the modules in question from CPAN. - -Note that these are (with rare exceptions) fine modules that you are encouraged -to continue to use. Their disinclusion from core primarily hinges on their -necessity to bootstrapping a fully functional, CPAN-capable Perl installation, -not usually on concerns over their design. - -=over - -=item L<Package::Constants> - -=back - -=head1 Performance Enhancements - -=over 4 - -=item * - -Constant hash key lookups (C<$hash{key}> as opposed to C<$hash{$key}>) have -long had the internal hash value computed at compile time, to speed up -lookup. This optimisation has only now been applied to hash slices as -well. - -=item * - -Combined C<and> and C<or> operators in void context, like those -generated for C<< unless ($a && $b) >> and C<< if ($a || b) >> now -short circuit directly to the end of the statement. [perl #120128] - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Archive::Tar> has been upgraded from version 1.92 to 1.96. - -=item * - -L<AutoLoader> has been upgraded from version 5.73 to 5.74. - -=item * - -L<B> has been upgraded from version 1.46 to 1.47. - -C<< B::PMOP->precomp >> now preserves the internal UTF8 flag correctly, so -chr 256 remains chr 256, instead of turning into "\xc4\x80". This allows -L<B::Deparse> to deparse Unicode regular expression correctly. -[perl #120182] - -C<< B::HV->ARRAY >> now preserves the UTF8 flag on returned hash keys. -[perl #120535] - -=item * - -L<B::Concise> has been upgraded from version 0.99 to 0.991. - -B<-debug> output now includes C<op_other> pointers. - -=item * - -L<B::Deparse> has been upgraded from version 1.23 to 1.24. - -C<s//\(3)/e> is now deparsed in a way that does not issue warnings when -parsed again. [perl #119807] - -C<glob(my $x)> is now deparsed correctly, rather than as C<< <my $x> >> or -similar. - -C<CORE::glob> is now deparsed correctly with the CORE:: prefix when there -is a subroutine named "glob". - -=item * - -L<B::Debug> has been upgraded from version 1.18 to 1.19. - -=item * - -L<bignum> has been upgraded from version 0.36 to 0.37. - -=item * - -L<Compress::Raw::Bzip2> has been upgraded from version 2.062 to 2.063. - -=item * - -L<Compress::Raw::Zlib> has been upgraded from version 2.062 to 2.063. - -=item * - -L<constant> has been upgraded from version 1.28 to 1.29. - -=item * - -L<DB_File> has been upgraded from version 1.829 to 1.831. - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from version 6.80 to 6.82. - -=item * - -L<HTTP::Tiny> has been upgraded from version 0.036 to 0.038. - -=item * - -L<IO> has been upgraded from version 1.29 to 1.30. - -=item * - -L<IO::Select> has been upgraded from version 1.21 to 1.22. - -Removing a closed file handle from an IO::Select object now correctly -updates its internal state and returns the correct value. [perl #75156] - -=item * - -L<Locale::Maketext> has been upgraded from version 1.24 to 1.25. - -An issue with escaped backslashes if the literal is compiled as -function argument has been resolved. - -=item * - -L<IPC::Cmd> has been upgraded from version 0.84_01 to 0.90. - -=item * - -L<Module::Build> has been upgraded from version 0.4007 to 0.4202. - -NOTE: L<Module::Build> is deprecated and may be removed from a future version of Perl. - -=item * - -L<Module::CoreList> has been upgraded from version 3.00 to 3.01. - -The list of Perl versions covered has been updated. - -=item * - -L<Package::Constants> has been upgraded from version 0.02 to 0.04. - -NOTE: L<Package::Constants> is deprecated and may be removed from a future version of Perl. - -=item * - -L<PerlIO::scalar> has been upgraded from version 0.17 to 0.18. - -A bug fix in 0.17 caused references to be stringified as soon as a handle -to it was opened, even if it was opened only for reading. It also croaked -on read-only references. This has been fixed. [perl #119529] - -=item * - -L<Socket> has been upgraded from version 2.012 to 2.013. - -=item * - -L<Term::Cap> has been upgraded from version 1.13 to 1.15. - -=item * - -L<Test::Harness> has been upgraded from version 3.29 to 3.30. - -=item * - -L<Test::Simple> has been upgraded from version 0.99 to 1.001002. - -=item * - -L<Tie::StdHandle> has been upgraded from version 4.3 to 4.4. - -It no longer prints C<$\> twice. [perl #120202] - -It no longer ignores the offset passed to C<syswrite>. - -=item * - -L<threads> has been upgraded from version 1.89 to 1.90. - -=item * - -L<threads::shared> has been upgraded from version 1.44 to 1.45. - -=item * - -L<Unicode::Collate> has been upgraded from version 0.99 to 1.02. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=over 4 - -=item * - -L<perlhacktips> has been updated to include some more examples of C<gdb> usage. - -=item * - -L<perlfunc>: - -C<each>, clarify hash "modify while iterating". - -C<pack>, the documentation for verbatim tables has been clarified. - -=item * - -L<perlre>, the documentation for C</x> and C<(?# comment)> has been expanded and clarified. - -=item * - -L<perllexwarn>, a note has been added to users of C<FATAL> warnings of the risk of upgrades. - -=back - -=head1 Diagnostics - -=head2 Changes to Existing Diagnostics - -=over 4 - -=item * - -L<%%s[%s] in scalar context better written as $%s[%s]|perldiag/"%%s[%s] in scalar context better written as $%s[%s]">: - -This warning now occurs for any C<%array[$index]> or C<%hash{key}> known to -be in scalar context at compile time. Previously it was worded "Scalar -value %%s[%s] better written as $%s[%s]". - -=item * - -L<Switch condition not recognized in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Switch condition not recognized in regex; marked by <-- HERE in m/%s/">: - -The description for this diagnostic has been extended to cover all cases where the warning may occur. -Issues with the positioning of the arrow indicator have also been resolved. - -=back - -=head1 Testing - -=over 4 - -=item * - -F<ext/File-Find/t/find.t> has been converted from manual C<print> -statements to Test::More functions. Each test now has a description. -[perl #120503] - -=back - -=head1 Platform Support - -=head2 New Platforms - -=over 4 - -=item Synology - -Synology ships its NAS boxes with a lean Linux distribution (DSM) on relative -cheap CPU's (like the Marvell Kirkwood mv6282 - ARMv5tel or Freescale QorIQ -P1022 ppc - e500v2) not meant for workstations or development. These boxes -should build now. The basic problems are the non-standard location for tools. - -=back - -=head2 Platform-Specific Notes - -=over 4 - -=item Windows - -Support for building with Visual C++ 2013 has been added. There are currently -two possible test failures (see L<perlwin32/"Testing Perl on Windows">) which -will hopefully be resolved soon. - -Experimental support for building with Intel C++ Compiler has been added. Only -the nmake makefile (win32/Makefile) can be used. A "nmake test" will not pass -at this time due to "cpan/CGI/t/url.t". - -=item WinCE - -Perl can now be built in one shot with no user intervention on WinCE by running -C<nmake -f Makefile.ce all>. - -Support for building with EVC (Embedded Visual C++) 4 has been restored. Perl -can also be built using Smart Devices for Visual C++ 2005 or 2008. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -Compiling with C<-Accflags=-PERL_BOOL_AS_CHAR> now allows C99 and C++ -compilers to emulate the aliasing of C<bool> to C<char> that perl does for -C89 compilers. [perl #120314] - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Perl 5.18.0 accidentally disallowed C<-bareword> under C<use strict> and -C<use integer>. This has been fixed. [perl #120288] - -=item * - -C<-a> at the start of a line (or a hyphen with any single letter that is -not a filetest operator) no longer produces an erroneous 'Use of "-a" -without parentheses is ambiguous' warning. [perl #120288] - -=item * - -Lvalue context is now properly propagated into bare blocks and C<if> and -C<else> blocks in lvalue subroutines. Previously, arrays and hashes would -sometimes incorrectly be flattened when returned in lvalue list context, or -"Bizarre copy" errors could occur. [perl #119797] - -=item * - -Lvalue context is now propagated to the branches of C<||> and C<&&> (and -their alphabetic equivalents, C<or> and C<and>). This means -C<foreach (pos $x || pos $y) {...}> now allows C<pos> to be modified -through $_. - -=item * - -C<*DB::DB = sub {} if 0> no longer stops Perl's debugging mode from finding -C<DB::DB> subs declared thereafter. - -=item * - -C<stat> and C<readline> remember the last handle used; the former -for the special C<_> filehandle, the latter for C<${^LAST_FH}>. -C<eval "*foo if 0"> where *foo was the last handle passed to C<stat> -or C<readline> could cause that handle to be forgotten if the -handle were not opened yet. This has been fixed. - -=item * - -Various cases of C<delete $::{a}>, C<delete $::{ENV}> etc. causing a crash -have been fixed. [perl #54044] - -=item * - -Assigning another typeglob to C<*^R> no longer makes the regular expression -engine crash. - -=item * - -C<%{'_<...'}> hashes now set breakpoints on the corresponding C<@{'_<...'}> -rather than whichever array C<@DB::dbline> is aliased to. [perl #119799] - -=item * - -Setting C<$!> to EACCESS before calling C<require> could affect -C<require>'s behaviour. This has been fixed. - -=item * - -The "Can't use \1 to mean $1 in expression" warning message now only occurs -on the right-hand (replacement) part of a substitution. Formerly it could -happen in code embedded in the left-hand side, or in any other quote-like -operator. - -=item * - -The C<\N> regular expression escape, when used without the curly braces (to -mean C<[^\n]>), was ignoring a following C<*> if followed by whitespace -under /x. It had been this way since C<\N> to mean C<[^\n]> was introduced -in 5.12.0. - -=item * - -Blessing into a reference (C<bless $thisref, $thatref>) has long been -disallowed, but magical scalars for the second like C<$/> and those tied -were exempt. They no longer are. [perl #119809] - -=item * - -Blessing into a reference was accidentally allowed in 5.18 if the class -argument were a blessed reference with stale method caches (i.e., whose -class had had subs defined since the last method call). They are -disallowed once more, as in 5.16. - -=item * - -An undefined lexical sub used as an inherited method no longer crashes. - -=item * - -C<< $x->{key} >> where $x was declared as C<my Class $x> no longer crashes -if a Class::FIELDS subroutine stub has been declared. - -=item * - -C<@$obj{'key'}> and C<${$obj}{key}> used to be exempt from compile-time -field checking ("No such class field"; see L<fields>) but no longer are. - -=item * - -That compile-time field checking also applies now to the C<%$obj{'key'}> -syntax, added recently in Perl 5.19.4. - -=item * - -A nonexistent array element with a large index passed to a subroutine that -ties the array and then tries to access the element no longer results in a -crash. - -=item * - -Declaring a subroutine stub named NEGATIVE_INDICES no longer makes negative -array indices crash when the current package is a tied array class. - -=item * - -Declaring a C<require>, C<glob>, or C<do> subroutine stub in the -CORE::GLOBAL:: package no longer makes compilation of calls to the -corresponding functions crash. - -=item * - -Aliasing CORE::GLOBAL:: functions to constants stopped working in Perl 5.10 -but has now been fixed. - -=item * - -When C<`...`> or C<qx/.../> calls a C<readpipe> override, double-quotish -interpolation now happens, as is the case when there is no override. -Previously, the presence of an override would make these quote-like -operators act like C<q{}>, suppressing interpolation. [perl #115330] - -=item * - -C<<<`...`> here-docs (with backticks as the delimiters) now call -C<readpipe> overrides. [perl #119827] - -=item * - -The presence of a lexical sub named "CORE" no longer stops the CORE:: -prefix from working. - -=item * - -C<&CORE::exit()> and C<&CORE::die()> now respect L<vmsish> hints. - -=item * - -Undefining a glob that triggers a DESTROY method that undefines the same -glob is now safe. It used to produce "Attempt to free unreferenced glob -pointer" warnings and leak memory. - -=item * - -If subroutine redefinition (C<eval 'sub foo{}'> or C<newXS> for XS code) -triggers a DESTROY method on the sub that is being redefined, and that -method assigns a subroutine to the same slot (C<*foo = sub {}>), C<$_[0]> -is no longer left pointing to a freed scalar. Now DESTROY is delayed until -the new subroutine has been installed. - -=item * - -C<s///>, C<tr///> and C<y///> now work when a wide character is used as the -delimiter. [perl #120463] - -=item * - -On Windows, perl no longer calls CloseHandle() on a socket handle. This makes -debugging easier on Windows by removing certain irrelevant bad handle -exceptions. It also fixes a race condition that made socket functions randomly -fail in a Perl process with multiple OS threads, and possible test failures in -F<dist/IO/t/cachepropagate-tcp.t>. [perl #120091/118059] - -=item * - -Some cases of unterminated (?...) sequences in regular expressions (e.g., -C</(?</>) have been fixed to produce the proper error message instead of -"panic: memory wrap". Other cases (e.g., C</(?(/>) have yet to be fixed. - -=item * - -Strange vars like ties, overloads, or stringified refs (and in recent -perls, pure NOK vars) would generally do the wrong thing in formats -when the var is treated as a string and repeatedly chopped, as in -^<<<~~ and similar. This has now been resolved. - -=back - -=head1 Known Problems - -=over 4 - -=item * - -C<do CORE()> used to call a sub named "CORE" and treat its return value as -a file name to execute. A bug fix inadvertently caused it to be -interpreted as the deprecated "do-SUB" construct. (Yes, C<do -I<bareword>()> is inconsistent.) This will likely be changed back. - -=back - -=head1 Acknowledgements - -Perl 5.19.6 represents approximately 4 weeks of development since Perl 5.19.5 -and contains approximately 88,000 lines of changes across 630 files from 24 -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.19.6: - -Anno Siegel, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan, David -Mitchell, Father Chrysostomos, François Perrad, H.Merijn Brand, James E -Keenan, Jerry D. Hedden, Karen Etheridge, Karl Williamson, Kevin Falcone, Lukas -Mai, Marc Simpson, Matthew Horsfall, Peter Martini, Petr Písař, Reini Urban, -Steve Hay, Tom Hukins, Tony Cook, Victor Efimov, Yves Orton. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl5197delta.pod b/pod/perl5197delta.pod deleted file mode 100644 index 56f8d87ac3..0000000000 --- a/pod/perl5197delta.pod +++ /dev/null @@ -1,414 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5197delta - what is new for perl v5.19.7 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.6 release and the 5.19.7 -release. - -If you are upgrading from an earlier release such as 5.19.5, first read -L<perl5196delta>, which describes differences between 5.19.5 and 5.19.6. - -=head1 Core Enhancements - -=head2 Postfix syntax for maximum array index - -The postfix notation C<< ->$#* >> has been added, to match the similar -postfix operators added in 5.19.5. C<< $foo->$#* >> is equivalent to -C<$#$foo>. See L<perlref>. - -=head1 Incompatible Changes - -=head2 Data::Dumper's output may change - -Depending on the data structures dumped and the settings set for -Data::Dumper, the dumped output may have changed from previous -versions. - -If you have tests that depend on the exact output of Data::Dumper, -they may fail. - -To avoid this problem in your code, test against the data structure -from evaluating the dumped structure, instead of the dump itself. - -=head1 Deprecations - -=head2 C<< CGI.pm >> - -The C<< CGI.pm >> module has been deprecated since version 3.64. - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<base> has been upgraded from version 2.19 to 2.20. - -C<base> now only ignores load failure on the requested module. [perl -#120685] - -=item * - -L<CGI> has been upgraded from version 3.63 to 3.64. - -Avoids a warning about "undefined variable in user_agent" in some cases, and -updates L<CGI::Cookie> documentation to reflect that "HttpOnly" is widely -supported. - -NOTE: L<CGI> is deprecated and may be removed from a future version of Perl. - -=item * - -L<constant> has been upgraded from version 1.29 to 1.30. - -=item * - -L<CPAN::Meta> has been upgraded from version 2.132830 to 2.133380. - -=item * - -L<Data::Dumper> has been upgraded from version 2.149 to 2.150. - -Regular expression objects are now dumped in a form closer to their -original source, eg. C< qr/abc/i > is dumped as exactly that instead of -C< qr/(?^i:abc)/ >. [perl #82948] - -Dumping of hash keys is now more consistent between the XS and perl -implementations of L<Data::Dumper>, including how the C<quotekeys> -option behaves. This may make tests that depend on the exact output -of Data::Dumper to fail. [perl #120384] - -=item * - -L<DynaLoader> has been upgraded from version 1.21 to 1.22. - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from version 6.82 to 6.84. - -=item * - -L<File::Fetch> has been upgraded from version 0.44 to 0.46. - -Blacklists "ftp" on DragonflyBSD. - -=item * - -L<HTTP::Tiny> has been upgraded from version 0.038 to 0.039. - -=item * - -L<inc::latest> has been upgraded from version 0.4202 to 0.4203. -NOTE: L<inc::latest> is deprecated and may be removed from a future version of Perl. - -=item * - -L<Locale::Codes> has been upgraded from version 3.27 to 3.28. - -=item * - -L<Module::Build> has been upgraded from version 0.4202 to 0.4203. -NOTE: L<Module::Build> is deprecated and may be removed from a future version of Perl. - -=item * - -L<Module::CoreList> has been upgraded from version 3.01 to 3.02. - -=item * - -L<PerlIO::encoding> has been upgraded from version 0.16 to 0.17. - -=item * - -L<PerlIO::via> has been upgraded from version 0.13 to 0.14. - -=item * - -L<POSIX> has been upgraded from version 1.36 to 1.37. - -=item * - -L<SDBM_File> has been upgraded from 1.10 to 1.11. - -Added access to SDBM constants and to opening SDBM files with explicit -page and directory file names. [perl #114350] - -=item * - -L<Storable> has been upgraded from version 2.47 to 2.48. - -=item * - -L<threads> has been upgraded from version 1.90 to 1.91. - -=item * - -L<Time::Piece> has been upgraded from version 1.23 to 1.24. - -=item * - -L<Unicode::Collate> has been upgraded from version 1.02 to 1.04. - -=item * - -L<Win32> has been upgraded from version 0.47 to 0.48. - -=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>. - -=head2 New Diagnostics - -=head3 New Warnings - -=over 4 - -=item * - -L<Useless use of greediness modifier|perldiag/"Useless use of greediness modifier '%c' in regex; marked by <-- HERE in m/%s/"> - -This fixes [Perl #42957]. - -=back - -=head2 Changes to Existing Diagnostics - -=over 4 - -=item * - -The error messages for C<my($a?$b$c)> and C<my(do{})> now mention -"conditional expression" and "do block", respectively, instead of reading -'Can't declare null operation in "my"'. - -=back - -=head1 Utility Changes - -=head3 C<< Porting/corelist-perldelta.pl >> - -=over 4 - -=item * - -Ensure that the latest version of Module::CoreList is used when -running the script. - -=back - -=head1 Testing - -=over 4 - -=item * - -Various tests in F<t/porting/> are no longer skipped when the perl -F<.git> directory is outside the perl tree and pointed to by -C<$GIT_DIR>. [perl #120505] - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item Windows - -Experimental support for building with Intel C++ Compiler has been extended to -cover the dmake makefile (win32/makefile.mk) as well. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -The C<sv> argument in L<perlapi/sv_2pv_flags>, L<perlapi/sv_2iv_flags>, -L<perlapi/sv_2uv_flags>, and L<perlapi/sv_2nv_flags> and their older wrappers -sv_2pv, sv_2iv, sv_2uv, sv_2nv, is now non-NULL. Passing NULL now will crash. -When the non-NULL marker was introduced en masse in 5.9.3 the functions -were marked non-NULL, but since the creation of the SV API in 5.0 alpha 2, if -NULL was passed, the functions returned 0 or false-type values. The code that -supports C<sv> argument being non-NULL dates to 5.0 alpha 2 directly, and -indirectly to Perl 1.0 (pre 5.0 api). The lack of documentation that the -functions accepted a NULL C<sv> was corrected in 5.11.0 and between 5.11.0 -and 5.19.5 the functions were marked NULLOK. As an optimization the NULLOK code -has now been removed, and the functions became non-NULL marked again, because -core getter-type macros never pass NULL to these functions and would crash -before ever passing NULL. - -The only way a NULL C<sv> can be passed to sv_2*v* functions is if XS code -directly calls sv_2*v*. This is unlikely as XS code uses Sv*V* macros to get -the underlying value out of the SV. One possible situation which leads to -a NULL C<sv> being passed to sv_2*v* functions, is if XS code defines its own -getter type Sv*V* macros, which check for NULL B<before> dereferencing and -checking the SV's flags through public API Sv*OK* macros or directly using -private API C<SvFLAGS>, and if C<sv> is NULL, then calling the sv_2*v functions -with a NULL litteral or passing the C<sv> containing a NULL value. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -C<< semctl(..., SETVAL, ...) >> would set the semaphore to the top -32-bits of the supplied integer instead of the bottom 32-bits on -64-bit big-endian systems. [perl #120635] - -=item * - -A regression since v5.18.0 has been fixed in which C<qr/[[:^ascii:]]/d> -failed to match any character in the range C<\x80> - C<\xFF> if its -surrounding character class contained anything else. (That is, the bug -didn't happen if the C<[:^ascii:]> was the only element of the character -class.) [perl #120799] - -=item * - -C<< readdir() >> now only sets C<$!> on error. C<$!> is no longer set -to C<EBADF> when then terminating C<undef> is read from the directory -unless the system call sets C<$!>. [perl #118651] - -=item * - -C<&CORE::glob> no longer causes an intermittent crash due to perl's stack -getting corrupted. [perl #119993] - -=item * - -C<open> with layers that load modules (e.g., "<:encoding(utf8)") no longer -runs the risk of crashing due to stack corruption. - -=item * - -When a reference to a reference to an overloaded object was returned from -a regular expression C<(??{...})> code block, an incorrect implicit -dereference could take place if the inner reference had been returned by -a code block previously. - -=item * - -A tied variable returned from C<(??{...})> sees the inner values of match -variables (i.e., the $1 etc. from any matches inside the block) in its -FETCH method. This was not the case if a reference to an overloaded object -was the last thing assigned to the tied variable. Instead, the match -variables referred to the outer pattern during the FETCH call. - -=item * - -Perl 5.18 broke autoloading via C<< ->SUPER::foo >> method calls by looking -up AUTOLOAD from the current package rather than the current package's -superclass. This has been fixed. [perl #120694] - -=item * - -A longstanding bug causing C<do {} until CONSTANT>, where the constant -holds a true value, to read unallocated memory has been resolved. This -would usually happen after a syntax error. In past versions of Perl it has -crashed intermittently. [perl #72406] - -=item * - -Fix HP-UX $! failure. HP-UX strerror() returns an empty string for an -unknown error code. This caused an assertion to fail under DEBUGGING -builds. This patch removes the assertion and changes the return into -a non-empty string indicating the errno is for an unknown error. - -=item * - -Fix unexpected tainting via regexp using locale. Previously, under certain -conditions, the use of character classes could cause tainting when it -shouldn't. Some character classes are locale-dependent, but before this -patch, sometimes tainting was happening even for character classes that -don't depend on the locale. [perl #120675] - -=item * - -Under certain conditions, Perl would throw an error if in an lookbehind -assertion in a regexp, the assertion referred to a named subpattern, -complaining the lookbehind was variable when it wasn't. This has been -fixed. [perl #120600], [perl #120618]. The current fix may be improved -on in the future. - -=back - -=head1 Acknowledgements - -Perl 5.19.7 represents approximately 4 weeks of development since Perl 5.19.6 -and contains approximately 90,000 lines of changes across 390 files from 26 -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.19.7: - -Abigail, Abir Viqar, Brian Childs, Brian Fraser, Chris 'BinGOs' Williams, Craig -A. Berry, Dabrien 'Dabe' Murphy, Daniel Dragan, David Mitchell, Dennis -Kaarsemaker, Evan Zacks, Father Chrysostomos, François Perrad, Graham Knop, -James E Keenan, Jess Robinson, Karl Williamson, Kevin Ryde, Martin McGrath, -Matthew Horsfall, Nicholas Clark, Peter Martini, Ricardo Signes, Steve Hay, -Tony Cook, Yves Orton. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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 -https://rt.perl.org/ . There may also be information at -http://www.perl.org/ , the Perl Home Page. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl5198delta.pod b/pod/perl5198delta.pod deleted file mode 100644 index d32a7436e9..0000000000 --- a/pod/perl5198delta.pod +++ /dev/null @@ -1,524 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5198delta - what is new for perl v5.19.8 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.7 release and the 5.19.8 -release. - -If you are upgrading from an earlier release such as 5.19.6, first read -L<perl5197delta>, which describes differences between 5.19.6 and 5.19.7. - -=head1 Core Enhancements - -=head2 New C<\p{Unicode}> regular expression pattern property - -This is a synonym for C<\p{Any}> and matches the set of Unicode-defined -code points 0 - 0x10FFFF. - -=head1 Incompatible Changes - -=head2 C<do> can no longer be used to call subroutines - -The C<do SUBROUTINE(LIST)> form has resulted in a deprecation warning -since Perl v5.0.0, and is now a syntax error. - -=head2 C<\p{}>, C<\P{}> matching has changed for non-Unicode code -points. - -C<\p{}> and C<\P{}> are defined by Unicode only on Unicode-defined code -points (C<U+0000> through C<U+10FFFF>). Their behavior on matching -these legal Unicode code points is unchanged, but there are changes for -code points C<0x110000> and above. Previously, Perl treated the result -of matching C<\p{}> and C<\P{}> against these as C<undef>, which -translates into "false". For C<\P{}>, this was then complemented into -"true". A warning was supposed to be raised when this happened. -However, various optimizations could prevent the warning, and the -results were often counter-intuitive, with both a match and its seeming -complement being false. Now all non-Unicode code points are treated as -typical unassigned Unicode code points. This generally is more -Do-What-I-Mean. A warning is raised only if the results are arguably -different from a strict Unicode approach, and from what Perl used to do. -Code that needs to be strictly Unicode compliant can make this warning -fatal, and then Perl always raises the warning. - -Details are in L<perlunicode/Beyond Unicode code points>. - -=head2 C<\p{All}> has been expanded to match all possible code points - -The Perl-defined regular expression pattern element C<\p{All}>, unused -on CPAN, used to match just the Unicode code points; now it matches all -possible code points; that is, it is equivalent to C<qr/./s>. Thus -C<\p{All}> is no longer synonymous with C<\p{Any}>, which continues to -match just the Unicode code points, as Unicode says it should. - -=head1 Deprecations - -XXX Any deprecated features, syntax, modules etc. should be listed here. - -=head2 Module removals - -XXX Remove this section if inapplicable. - -The following modules will be removed from the core distribution in a -future release, and will at that time need to be installed from CPAN. -Distributions on CPAN which require these modules will need to list them as -prerequisites. - -The core versions of these modules will now issue C<"deprecated">-category -warnings to alert you to this fact. To silence these deprecation warnings, -install the modules in question from CPAN. - -Note that these are (with rare exceptions) fine modules that you are encouraged -to continue to use. Their disinclusion from core primarily hinges on their -necessity to bootstrapping a fully functional, CPAN-capable Perl installation, -not usually on concerns over their design. - -=over - -XXX Note that deprecated modules should be listed here even if they are listed -as an updated module in the L</Modules and Pragmata> section. - -=back - -=head1 Performance Enhancements - -=over 4 - -=item * - -In certain situations, when C<return> is the last statement in a subroutine's -main scope, it will be optimized out. This means code like: - - sub baz { return $cat; } - -will now behave like: - - sub baz { $cat; } - -which is notably faster. - -[perl #120765] - -=back - -=head1 Modules and Pragmata - -=head2 New Modules and Pragmata - -=over 4 - -=item * - -L<IO::Socket::IP> has been (tentatively) added to core at version 0.26. - -=back - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<perl5db.pl> has been upgraded from version 1.42 to 1.43 - -Fix a crash in tab completion, where available. [perl #120827] - -The debugger tests no longer open two handles to the same output file, -making them more robust. [perl #118817] - -=item * - -L<base> has been upgraded from version 2.20 to 2.21. - -The stricter load failure tests added in 2.20 now allow for -C<${^LAST_FH}> being set. - -=item * - -L<constant> has been upgraded from version 1.30 to 1.31. - -=item * - -L<DynaLoader> has been upgraded from version 1.22 to 1.24. - -=item * - -L<Encode> has been upgraded from version 2.55 to 2.57. - -UTF-8 is no longer used in the C source (which some compilers didn't like), and -some POD errors have been fixed in the documentation. - -=item * - -L<Errno> has been upgraded from version 1.20_01 to 1.20_02. - -=item * - -L<ExtUtils::CBuilder> has been upgraded from version 0.280212 to 0.280213. - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from version 6.84 to 6.86. - -=item * - -L<File::Copy> has been upgraded from version 2.28 to 2.29. - -=item * - -L<Hash::Util::FieldHash> has been upgraded from version 1.13 to 1.14. - -=item * - -L<inc::latest> has been upgraded from version 0.4203 to 0.4204. -NOTE: L<inc::latest> is deprecated and may be removed from a future version of -Perl. - -=item * - -L<IO::Socket::UNIX> has been upgraded from version 1.25 to 1.26. - -Removed a warning about an ancient behaviour change and filled out the -SYNOPSIS. [perl #120981] - -=item * - -The libnet module collection has been upgraded from version 1.23 to 1.24. - -The handling of CRLF characters in L<Net::FTP> has been fixed. - -=item * - -L<List::Util> has been upgraded from version 1.35 to 1.36. - -=item * - -L<Module::Build> has been upgraded from version 0.4203 to 0.4204. -NOTE: L<Module::Build> is deprecated and may be removed from a future version -of Perl. - -=item * - -L<Module::CoreList> has been upgraded from version 3.02 to 3.04. - -=item * - -L<Module::Load> has been upgraded from version 0.24 to 0.28. - -=item * - -L<Module::Load::Conditional> has been upgraded from version 0.58 to 0.60. - -=item * - -L<Perl::OSType> has been upgraded from version 1.006 to 1.007. - -=item * - -L<PerlIO::encoding> has been upgraded from version 0.17 to 0.18. - -=item * - -L<Pod::Perldoc> has been upgraded from version 3.20 to 3.21. - -=item * - -L<POSIX> has been upgraded from version 1.37 to 1.38_01. - -=item * - -L<Scalar::Util> has been upgraded from version 1.35 to 1.36. - -=item * - -L<threads::shared> has been upgraded from version 1.45 to 1.46. - -=item * - -L<Time::Piece> has been upgraded from version 1.24 to 1.27. - -=item * - -L<Unicode::UCD> has been upgraded from version 0.55 to 0.57. - -=item * - -L<version> has been upgraded from version 0.9904 to 0.9907. - -=item * - -L<warnings> has been upgraded from version 1.20 to 1.21. - -=item * - -L<XSLoader> has been upgraded from version 0.16 to 0.17. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=over 4 - -=item * - -L<perlunicode> has been updated to reflect C<Bidi_Class> changes in Unicode -6.3. - -=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>. - -=head3 New Warnings - -=over 4 - -=item * - -%s on a reference is now experimental - -The "auto-deref" feature is now experimental. - -Starting in v5.14.0, it was possible to use push, pop, keys, and other -built-in functions not only on aggregate types, but on references to -them. The feature was not deployed to its original intended -specification, and now may become redundant to postfix dereferencing. -It has always been categorized as an experimental feature, and in -v5.20.0 is carries a warning as such. - -Warnings will now be issued at compile time when these operations are -detected. - - no if $] >= 5.01908, warnings => "experimental::autoderef"; - -Consider, though, replacing the use of these features, as they may -change behavior again before becoming stable. - -=item * - -L<Matched non-Unicode code point 0x%X against Unicode property; may not be portable|perldiag/"Matched non-Unicode code point 0x%X against Unicode property; may not be portable">. -This replaces the message "Code point 0x%X is not Unicode, all \p{} -matches fail; all \P{} matches succeed". - -=back - -=head1 Utility Changes - -=head3 L<perlbug> - -=over 4 - -=item * - -F<perlbug> now has a C<-p> option for attaching patches with a bug report. - -=item * - -F<perlbug> now does input in the encoding of the current locale and -output raw. - -=back - -=head1 Configuration and Compilation - -=over 4 - -=item * - -Distinct library basenames with C<d_libname_unique>. - -When compiling perl with this option, the library files for XS modules are -named something "unique" -- for example, Hash/Util/Util.so becomes -Hash/Util/PL_Hash__Util.so. This behavior is similar to what currently -happens on VMS, and serves as groundwork for the Android port. - -=item * - -C<sysroot> option to indicate the logical root directory under gcc and clang. - -When building with this option set, both Configure and the compilers search -for all headers and libraries under this new sysroot, instead of /. - -This is a huge time saver if cross-compiling, but can also help -on native builds if your toolchain's files have non-standard locations. - -=back - -=head1 Platform Support - -=over 4 - -=item * - -Code related to supporting C<sfio> has been removed. - -Perl 5.004 added support to use the native API of C<sfio>, AT&T's Safe/Fast -I/O library. This code still built with v5.8.0, albeit with many regression -tests failing, but was inadvertently broken before the v5.8.1 release, -meaning that it has not worked on any version of Perl released since then. -In over a decade we have received no bug reports about this, hence it is clear -that no-one is using this functionality on any version of Perl that is still -supported to any degree. - -=back - -=head2 Platform-Specific Notes - -=over 4 - -=item Cygwin - -recv() on a connected handle would populate the returned sender -address with whatever happened to be in the working buffer. recv() -now uses a workaround similar to the Win32 recv() wrapper and returns -an empty string when recvfrom(2) doesn't modify the supplied address -length. [perl #118843] - -=back - -=head1 Internal Changes - -=over 4 - -=item newATTRSUB is now a macro - -The public API newATTRSUB was previously a macro to the private -function Perl_newATTRSUB. Function Perl_newATTRSUB has been removed. newATTRSUB -is now macro to a different internal function. - -=item Changes in warnings raised by C<utf8n_to_uvchr()> - -This bottom level function decodes the first character of a UTF-8 string -into a code point. It is accessible to C<XS> level code, but it's -discouraged from using it directly. There are higher level functions -that call this that should be used instead, such as -L<perlapi/utf8_to_uvchr_buf>. For completeness though, this documents -some changes to it. Now, tests for malformations are done before any -tests for other potential issues. One of those issues involves code -points so large that they have never appeared in any official standard -(the current standard has scaled back the highest acceptable code point -from earlier versions). It is possible (though not done in CPAN) to -warn and/or forbid these code points, while accepting smaller code -points that are still above the legal Unicode maximum. The warning -message for this now includes the code point if representable on the -machine. Previously it always displayed raw bytes, which is what it -still does for non-representable code points. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -In v5.19.6, C<do CORE()> was inadvertently changed from being interpreted -as do-file (i.e., C<do +CORE()>) to do-sub (i.e., C<&CORE()>). It has now -been changed back. - -=item * - -v5.19.7 inadvertently caused freed scalars to be passed to subroutines in -@INC if it contained multiple subs. This has been fixed. [perl #120657] - -=item * - -Individually-tied elements of @INC (as in C<tie $INC[0]...>) are now -handled correctly. Formerly, whether a sub returned by such a tied element -would be treated as a sub depended on whether a FETCH had occurred -previously. - -=item * - -C<getc> on a byte-sized handle after the same C<getc> operator had been -used on a utf8 handle used to treat the bytes as utf8, resulting in erratic -behavior (e.g., malformed UTF-8 warnings). - -=item * - -An initial C<{> at the beginning of a format argument line was always -interpreted as the beginning of a block prior to v5.18. In Perl v5.18, it -started being treated as an ambiguous token. The parser would guess -whether it was supposed to be an anonymous hash constructor or a block -based on the contents. Now the previous behavious has been restored. -[perl #119973] - -=item * - -In Perl v5.18 C<undef *_; goto &sub> and C<local *_; goto &sub> started -crashing. This has been fixed. [perl #119949] - -=back - -=head1 Acknowledgements - -Perl 5.19.8 represents approximately 4 weeks of development since Perl 5.19.7 -and contains approximately 38,000 lines of changes across 420 files from 26 -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.19.8: - -Abigail, Alan Hourihane, Brian Fraser, Brian Gottreu, Chris 'BinGOs' Williams, -Christian Millour, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan, -David Mitchell, Dominic Hargreaves, Father Chrysostomos, H.Merijn Brand, James -E Keenan, Jess Robinson, John Peacock, Karl Williamson, Martin McGrath, Matthew -Horsfall, Nicholas Clark, Ricardo Signes, Shlomi Fish, Steve Hay, Tobias Leich, -Tony Cook, Ævar Arnfjörð Bjarmason. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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 -https://rt.perl.org/ . There may also be information at -http://www.perl.org/ , the Perl Home Page. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/pod/perl5199delta.pod b/pod/perl5199delta.pod deleted file mode 100644 index c08c47ff3b..0000000000 --- a/pod/perl5199delta.pod +++ /dev/null @@ -1,779 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5199delta - what is new for perl v5.19.9 - -=head1 DESCRIPTION - -This document describes differences between the 5.19.8 release and the 5.19.9 -release. - -If you are upgrading from an earlier release such as 5.19.7, first read -L<perl5198delta>, which describes differences between 5.19.7 and 5.19.8. - -=head1 Core Enhancements - -=head2 UTF-8 locales now supported better under C<S<use locale>> - -A UTF-8 locale is one in which the character set is Unicode and the -encoding is UTF-8. Now, the POSIX C<LC_CTYPE> category operations under -such a locale (within the scope of C<S<use locale>>), which include case -changing (like C<lc()>, C<"\U">), and character classification (C<\w>, -C<\D>, C<qr/[[:punct:]]/> work just as if not under locale, except taint -rules are followed. Prior to this, Perl only handled single-byte -locales. This resolves [perl #56820]. - -=head2 C<S<use locale>> now compiles on systems without locale ability - -Previously doing this caused the program to not compile. Within its -scope the program behaves as if in the "C" locale. Thus programs -written for platforms that support locales can run on locale-less -platforms without change. Attempts to change the locale away from the -"C" locale will, of course, fail. - -=head2 PERL_DEBUG_READONLY_COW - -On some operating systems Perl can be compiled in such a way that any -attempt to modify string buffers shared by multiple SVs will crash. This -way XS authors can test that their modules handle copy-on-write scalars -correctly. See L<perlguts/"Copy on Write"> for detail. - -This feature was actually added in 5.19.8, but was unintentionally omitted -from its delta document. - -=head2 C<-DL> runtime option now added for tracing locale setting - -This is designed for Perl core developers to aid in field debugging bugs -regarding locales. - -=head2 Subroutine signatures - -Declarative syntax to unwrap argument list into lexical variables. -C<sub foo ($a,$b) {...}> checks the number of arguments and puts the -arguments into lexical variables. Signatures are not equivalent to -the existing idiom of C<sub foo { my($a,$b) = @_; ... }>. Signatures -are only available by enabling a non-default feature, and generate -warnings about being experimental. The syntactic clash with -prototypes is managed by disabling the short prototype syntax when -signatures are enabled. - -See L<perlsub/Signatures> for details. - -=head2 More locale initialization fallback options - -If there was an error with locales during Perl start-up, it immediately -gave up and tried to use the C<"C"> locale. Now it first tries using -other locales given by the environment variables, as detailed in -L<perllocale/ENVIRONMENT>. For example, if C<LC_ALL> and C<LANG> are -both set, and using the C<LC_ALL> locale fails, Perl will now try the -C<LANG> locale, and only if that fails, will it fall back to C<"C">. On -Windows machines, Perl will try, ahead of using C<"C">, the system -default locale if all the locales given by environment variables fail. - -=head1 Incompatible Changes - -=head2 Tainting happens under more circumstances; now conforms to documentation - -This affects regular expression matching and changing the case of a -string (C<lc>, C<"\U">, I<etc>.) within the scope of C<use locale>. -The result is now tainted based on the operation, no matter what the -contents of the string were, as the documentation (L<perlsec>, -L<perllocale/SECURITY>) indicates it should. Previously, for the case -change operation, if the string contained no characters whose case -change could be affected by the locale, the result would not be tainted. -For example, the result of C<uc()> on an empty string or one containing -only above-Latin1 code points is now tainted, and wasn't before. This -leads to more consistent tainting results. Regular expression patterns -taint their non-binary results (like C<$&>, C<$2>) if and only if the -pattern contains elements whose matching depends on the current -(potentially tainted) locale. Like the case changing functions, the -actual contents of the string being matched now do not matter, whereas -formerly it did. For example, if the pattern contains a C<\w>, the -results will be tainted even if the match did not have to use that -portion of the pattern to succeed or fail, because what a C<\w> matches -depends on locale. However, for example, a C<.> in a pattern will not -enable tainting, because the dot matches any single character, and what -the current locale is doesn't change in any way what matches and what -doesn't. - -=head2 Quote-like escape changes - -The character after C<\c> in a double-quoted string ("..." or qq(...)) -or regular expression must now be a printable character and may not be -C<{>. - -A literal C<{> after C<\B> or C<\b> is now fatal. - -These were deprecated in perl v5.14. - -=head1 Deprecations - -=over 4 - -=item * - -Setting C<$/> to a reference to zero or a reference to a negative integer is -now deprecated, and will behave B<exactly> as though it was set to C<undef>. -If you want slurp behavior set C<$/> to C<undef> explicitly. - -=item * - -Setting C<$/> to a reference to a non integer is now forbidden and will -throw an error. Perl has never documented what would happen in this -context and while it used to behave the same as setting C<$/> to -the address of the references in future it may behave differently, so we -have forbidden this usage. - -=item * - -Use of any of these functions in the C<POSIX> module is now deprecated: -C<isalnum>, C<isalpha>, C<iscntrl>, C<isdigit>, C<isgraph>, C<islower>, -C<isprint>, C<ispunct>, C<isspace>, C<isupper>, and C<isxdigit>. The -functions are buggy and don't work on UTF-8 encoded strings. See their -entries in L<POSIX> for more information. - -A warning is raised on the first call to any of them from each place in -the code that they are called. (Hence a repeated statement in a loop -will raise just the one warning.) - -=back - -=head1 Performance Enhancements - -=over 4 - -=item * - -Code like: - - my $x; # or @x, %x - my $y; - -is now optimized to: - - my ($x, $y); - -In combination with the padrange optimization, this means longer -uninitialized my variable statements are also optimized, so: - - my $x; my @y; my %z; - -becomes: - - my ($x, @y, %z); - -[perl #121077] - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<autodie> has been upgraded from version 2.22 to 2.23. - -C<autodie> no longer weakens strict by allowing undeclared variables -with the same name as built-ins. [cpan #74246] - -C<use autodie qw( foo ! foo);> now correctly insists that we have -hints for foo. - -=item * - -L<B> has been upgraded from version 1.47 to 1.48. - -Remove the obsolete C<DEREFed> flag from L<B::Concise>. - -=item * - -L<B::Deparse> has been upgraded from version 1.24 to 1.25. - -It now knows how to handle whitespace in prototypes. Previously, it could -loop infinitely. [perl #121050] - -=item * - -L<CGI> has been upgraded from version 3.64 to 3.65. - -=item * - -L<Compress::Raw::Bzip2> has been upgraded from version 2.063 to 2.064. - -Handle non-PVs better. [cpan #91558] - -=item * - -L<Compress::Raw::Zlib> has been upgraded from version 2.063 to 2.065. - -Handle non-PVs better. [cpan #91558] - -Z_OK instead of Z_BUF_ERROR. [cpan #92521] - -Resolve a C++ build failure in core. [cpan #92657] - -=item * - -L<Config::Perl::V> has been upgraded from version 0.19 to 0.20. - -Synchronize with blead (bincompat options) - -=item * - -L<CPAN::Meta::YAML> has been upgraded from version 0.010 to 0.011. - -=item * - -L<Devel::Peek> has been upgraded from version 1.15 to 1.16. - -Devel::Peek::SvREFCNT() now ensures it has been passed a reference, as -specified by its prototype. - -=item * - -L<diagnostics> has been upgraded from version 1.33 to 1.34. - -=item * - -L<Digest::SHA> has been upgraded from version 5.85 to 5.87. - -Improved the performance of hexadecimal output functions and simplified capture -of intermediate SHA states, which can now be done via strings (see -C<L<getstate()|Digest::SHA/getstate>>/C<L<putstate()|Digest::SHA/putstate($str)>>). - -=item * - -L<DynaLoader> has been upgraded from version 1.24 to 1.25. - -Android support. - -=item * - -L<English> has been upgraded from version 1.08 to 1.09. - -Added C<$OLD_PERL_VERSION> as an alias for C<$]>. - -=item * - -L<ExtUtils::CBuilder> has been upgraded from version 0.280213 to 0.280216. - -Android support. - -=item * - -L<ExtUtils::Embed> has been upgraded from version 1.31 to 1.32. - -Skip tests when cross-compiling and $Config{cc} isn't available. - -=item * - -L<ExtUtils::Install> has been upgraded from version 1.61 to 1.62. - -Skip tests when cross-compiler and make isn't available. - -=item * - -L<ExtUtils::MakeMaker> has been upgraded from version 6.86 to 6.88. - -Improved support for Android and other minor changes. - -=item * - -L<feature> has been upgraded from version 1.34 to 1.35. - -=item * - -L<File::Fetch> has been upgraded from version 0.46 to 0.48. - -Force curl to be IPv4 only during testing on NetBSD. - -=item * - -L<HTTP::Tiny> has been upgraded from version 0.039 to 0.042. - -Added support for keep-alive connections. - -If L<IO::Socket::IP> 0.25 or later is available, use that for -transparent IPv4 or IPv6 support. - -=item * - -L<inc::latest> has been upgraded from version 0.4204 to 0.4205. - -NOTE: L<inc::latest> is deprecated and may be removed from a future version of Perl. - -=item * - -The IO-Compress module collection has been upgraded from version 2.063 -to 2.064. - -Android support. - -=item * - -L<IO::Socket::IP>, tentatively introduced in L<Perl 5.19.8|perl5198delta>, -has been upgraded from 0.26 to 0.28. - -=item * - -L<IPC::Cmd> has been upgraded from version 0.90 to 0.92. - -=item * - -The libnet module collection has been upgraded from version 1.24 to 1.25. - -The creation of L<Net::FTP> dataconnections now honour the requested timeout, -errors from C<Net::Cmd::response()> are now handled in C<Net::FTP::pasv_wait()> -and a warning from C<Net::Domain::domainname()> on Android is now stopped. - -=item * - -L<locale> has been upgraded from version 1.02 to 1.03. - -Allow C<use locale;> on systems without locales, such as Android. - -=item * - -L<Locale::Codes> has been upgraded from version 3.28 to 3.29. - -=item * - -L<Module::Build> has been upgraded from version 0.4204 to 0.4205. - -Fix license code regression for artistic license. - -Don't swallow ExtUtils::CBuilder loading errors. - -Handle testing on cross-compile builds. - -Protect against platforms without getpw{nam,uid}. - -=item * - -L<Module::CoreList> has been upgraded from version 3.04 to 3.06. - -=item * - -L<Module::Load> has been upgraded from version 0.28 to 0.30. - -Prevent uninitialized warnings during testing. - -=item * - -L<Module::Load::Conditional> has been upgraded from version 0.60 to 0.62. - -=item * - -L<mro> has been upgraded from version 1.14 to 1.15. - -Use HEKfARG() instead of creating and throwing away SVs. - -=item * - -L<Net::Ping> has been upgraded from version 2.42 to 2.43. - -Handle getprotobyname() or getprotobynumber() not being available. - -=item * - -L<Parse::CPAN::Meta> has been upgraded from version 1.4409 to 1.4413. - -Invalid UTF-8 encoding in YAML files are now replaced with "PERLQQ" -quoting from the Encode module and without warnings. - -Removed legacy test modifications for testing with the perl core. - -=item * - -The PathTools module collection has been upgraded from version 3.45 to -3.46. - -Improved support for Android. - -C<< File::Spec::Unix->tmpdir >> now consistently returns an absolute -path, unless in taint mode. [perl #120593] - -=item * - -L<Pod::Escapes> has been upgraded from version 1.04 to 1.06. - -Now strict and warning clean. Several minor documentation updates. - -e2charnum() no longer treats non-ASCII Unicode digits as suitable for -an escape. [cpan #70246] - -=item * - -L<Pod::Parser> has been upgraded from version 1.61 to 1.62. - -=item * - -L<POSIX> has been upgraded from version 1.38_01 to 1.38_02. - -Deprecate use of isfoo() functions. - -=item * - -L<Scalar::Util> has been upgraded from version 1.36 to 1.38. - -A backwards-compatibility issue with older perls has been fixed. [cpan #92363] - -=item * - -L<threads> has been upgraded from version 1.91 to 1.92. - -Synchronization with CPAN release. - -=item * - -L<version> has been upgraded from version 0.9907 to 0.9908. - -=item * - -L<warnings> has been upgraded from version 1.21 to 1.22. - -C<< use warnings "FATAL"; >> now implies C<< "all" >>, and similarly -for C<< use warnings "NONFATAL" >>. [perl #120977] - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=head3 L<perlfunc> - -=over 4 - -=item * - -L<perlfunc/exec>'s handling of arguments is now more clearly -documented. - -=back - -=head3 L<perlguts> - -=over 4 - -=item * - -New sections on L<Read-Only Values|perlguts/"Read-Only Values"> and -L<Copy on Write|perlguts/"Copy on Write"> have been added. They were -actually added in 5.19.8 but accidentally omitted from its delta document. - -=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>. - -=head2 New Diagnostics - -=head3 New Errors - -=over 4 - -=item * - -Added L<Setting $E<sol> to a %s reference is forbidden|perldiag/"Setting $E<sol> to %s reference is forbidden"> - -=back - -=head3 New Warnings - -=over 4 - -=item * - -Added L<Setting $E<sol> to a reference to %s as a form of slurp is deprecated, treating as undef|perldiag/"Setting $E<sol> to a reference to %s as a form of slurp is deprecated, treating as undef"> - -=back - -=head1 Configuration and Compilation - -=over 4 - -=item * - -The cross-compilation model has been renovated. -There's several new options, and some backwards-incompatible changes: - -We now build binaries for miniperl and generate_uudmap to be used on the host, rather than running -every miniperl call on the target; this means that, short of 'make test', -we no longer need access to the target system once Configure is done. -You can provide already-built binaries through the C<hostperl> and -C<hostgenerate> options to Configure. - -Additionally, if targeting an EBCDIC platform from an ASCII host, -or viceversa, you'll need to run Configure with C<-Uhostgenerate>, to -indicate that generate_uudmap should be run on the target. - -Finally, there's also a way of having Configure end early, right after -building the host binaries, by cross-compiling without specifying a -C<targethost>. - -The incompatible changes include no longer using xconfig.h, xlib, or -Cross.pm, so canned config files and Makefiles will have to be updated. - -=item * - -Related to the above, there is now a way of specifying the location of sh -(or equivalent) on the target system: C<targetsh>. - -For example, Android has its sh in /system/bin/sh, so if cross-compiling -from a more normal Unixy system with sh in /bin/sh, "targetsh" would end -up as /system/bin/sh, and "sh" as /bin/sh. - -=back - -=head1 Platform Support - -=head2 New Platforms - -=over 4 - -=item Android - -Perl can now be built for Android, either natively or through -cross-compilation, for all three currently available architectures (ARM, -MIPS, and x86), on a wide range of versions. - -=back - -=head2 Platform-Specific Notes - -=over 4 - -=item VMS - -Skip access checks on remotes in opendir(). [perl #121002] - -=item Cygwin - -Fixed a build error in cygwin.c on Cygwin 1.7.28. - -Tests now handle the errors that occur when C<cygserver> isn't -running. - -=back - -=head1 Internal Changes - -=over 4 - -=item Regexp Engine Changes That Affect The Pluggable Regex Engine Interface - -Many flags that used to be exposed via regexp.h and used to populate the -extflags member of struct regexp have been removed. These fields were -technically private to Perl's own regexp engine and should not have been -exposed there in the first place. - -The affected flags are: - - RXf_NOSCAN - RXf_CANY_SEEN - RXf_GPOS_SEEN - RXf_GPOS_FLOAT - RXf_ANCH_BOL - RXf_ANCH_MBOL - RXf_ANCH_SBOL - RXf_ANCH_GPOS - -As well as the follow flag masks: - - RXf_ANCH_SINGLE - RXf_ANCH - -All have been renamed to PREGf_ equivalents and moved to regcomp.h. - -The behavior previously achieved by setting one or more of the RXf_ANCH_ -flags (via the RXf_ANCH mask) have now been replaced by a *single* flag bit -in extflags: - - RXf_IS_ANCHORED - -pluggable regex engines which previously used to set these flags should -now set this flag ALONE. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Backticks (C< `` > or C< qx// >) combined with multiple threads on -Win32 could result in output sent to stdout on one thread being -captured by backticks of an external command in another thread. - -This could occur for pseudo-forked processes too, as Win32's -pseudo-fork is implemented in terms of threads. [perl #77672] - -=item * - -C<< open $fh, ">+", undef >> no longer leaks memory when TMPDIR is set -but points to a directory a temporary file cannot be created in. [perl -#120951] - -=item * - -C<$^R> wasn't available outside of the regular expression that -initialized it. [perl #121070] - -=item * - -Fixed a regular expression bug introduced in 5.19.5 where \S, \W etc -could fail for above ASCII. [perl #121144] - -=item * - -A large set of fixes and refactoring for re_intuit_start() was merged, -the highlights are: - -=over - -=item * - -Fixed a panic when compiling the regular expression -C</\x{100}[xy]\x{100}{2}/>. - -=item * - -Fixed a performance regression when performing a global pattern match -against a UTF-8 string. [perl #120692] - -=item * - -Fixed another performance issue where matching a regular expression -like C</ab.{1,2}x/> against a long UTF-8 string would unnecessarily -calculate byte offsets for a large portion of the string. [perl -#120692] - -=back - -=item * - -C< for ( $h{k} || '' ) > no longer auto-vivifies C<$h{k}>. [perl -#120374] - -=item * - -On Windows machines, Perl now emulates the POSIX use of the environment -for locale initialization. Previously, the environment was ignored. -See L<perllocale/ENVIRONMENT>. - -=item * - -Fixed a crash when destroying a self-referencing GLOB. [perl #121242] - -=item * - -Call set-magic when setting $DB::sub. [perl #121255] - -=item * - -Fixed an alignment error when compiling regular expressions when built -with GCC on HP-UX 64-bit. - -=back - -=head1 Known Problems - -=over 4 - -=item * - -The F<lib/locale.t> test may fail rarely. - -=back - -=head1 Errata From Previous Releases - -=over 4 - -=item perl5180delta.pod - -This pod file contains a statement saying that C<RXf_SPLIT> (and its alias -C<RXf_PMf_SPLIT>) and C<RXf_SKIPWHITE> were no longer used and #defined -to 0. This was the case for a short period, but the change was reverted -before Perl 5.18 was released. As such it was not true in Perl 5.18.x, -and is also not true now. Both flags continue to be used. The incorrect -entry has been removed from C<perl5180delta.pod> in this release. - -=back - -=head1 Acknowledgements - -Perl 5.19.9 represents approximately 4 weeks of development since Perl 5.19.8 -and contains approximately 47,000 lines of changes across 610 files from 32 -authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 34,000 lines of changes to 420 .pm, .t, .c and .h files. - -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.19.9: - -Abigail, Alan Haggai Alavi, Brad Gilbert, Brian Fraser, Chris 'BinGOs' -Williams, Craig A. Berry, Daniel Dragan, David Golden, David Mitchell, Father -Chrysostomos, Gavin Shelley, H.Merijn Brand, Hauke D, James E Keenan, Jerry D. -Hedden, Jess Robinson, John Peacock, Karl Williamson, Matthew Horsfall, Neil -Williams, Peter Martini, Piotr Roszatycki, Rafael Garcia-Suarez, Reini Urban, -Ricardo Signes, Steffen Müller, Steve Hay, Sullivan Beck, Tom Hukins, Tony -Cook, Yves Orton, Zefram. - -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. - -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. - -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. - -=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 -https://rt.perl.org/ . There may also be information at -http://www.perl.org/ , the Perl Home Page. - -If you believe you have an unreported bug, please run the L<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. - -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 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 -security issues in the Perl core, not for modules independently distributed on -CPAN. - -=head1 SEE ALSO - -The F<Changes> file for an explanation of how to view exhaustive details on -what changed. - -The F<INSTALL> file for how to build Perl. - -The F<README> file for general stuff. - -The F<Artistic> and F<Copying> files for copyright information. - -=cut diff --git a/win32/pod.mak b/win32/pod.mak index 11482ded87..c995d2497e 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -35,18 +35,6 @@ POD = perl.pod \ perl5180delta.pod \ perl5181delta.pod \ perl5182delta.pod \ - perl5190delta.pod \ - perl51910delta.pod \ - perl51911delta.pod \ - perl5191delta.pod \ - perl5192delta.pod \ - perl5193delta.pod \ - perl5194delta.pod \ - perl5195delta.pod \ - perl5196delta.pod \ - perl5197delta.pod \ - perl5198delta.pod \ - perl5199delta.pod \ perl5200delta.pod \ perl561delta.pod \ perl56delta.pod \ @@ -176,18 +164,6 @@ MAN = perl.man \ perl5180delta.man \ perl5181delta.man \ perl5182delta.man \ - perl5190delta.man \ - perl51910delta.man \ - perl51911delta.man \ - perl5191delta.man \ - perl5192delta.man \ - perl5193delta.man \ - perl5194delta.man \ - perl5195delta.man \ - perl5196delta.man \ - perl5197delta.man \ - perl5198delta.man \ - perl5199delta.man \ perl5200delta.man \ perl561delta.man \ perl56delta.man \ @@ -317,18 +293,6 @@ HTML = perl.html \ perl5180delta.html \ perl5181delta.html \ perl5182delta.html \ - perl5190delta.html \ - perl51910delta.html \ - perl51911delta.html \ - perl5191delta.html \ - perl5192delta.html \ - perl5193delta.html \ - perl5194delta.html \ - perl5195delta.html \ - perl5196delta.html \ - perl5197delta.html \ - perl5198delta.html \ - perl5199delta.html \ perl5200delta.html \ perl561delta.html \ perl56delta.html \ @@ -458,18 +422,6 @@ TEX = perl.tex \ perl5180delta.tex \ perl5181delta.tex \ perl5182delta.tex \ - perl5190delta.tex \ - perl51910delta.tex \ - perl51911delta.tex \ - perl5191delta.tex \ - perl5192delta.tex \ - perl5193delta.tex \ - perl5194delta.tex \ - perl5195delta.tex \ - perl5196delta.tex \ - perl5197delta.tex \ - perl5198delta.tex \ - perl5199delta.tex \ perl5200delta.tex \ perl561delta.tex \ perl56delta.tex \ |