In perl.git, the branch maint-5.22 has been updated <http://perl5.git.perl.org/perl.git/commitdiff/fcec72c1e34238bcdafd034e46cebf3eab65c8ec?hp=7f29fa71d95f63288cc16496a8d6d7ea85811cc7>
- Log ----------------------------------------------------------------- commit fcec72c1e34238bcdafd034e46cebf3eab65c8ec Author: Jarkko Hietaniemi <[email protected]> Date: Thu Aug 27 09:05:31 2015 -0400 AUTHORS for 8c1ed856 (cherry picked from commit 748fa3f8bb685bab6f45701cded289a490712466) M AUTHORS commit cac951934e53cd00379ac150f8923b5291b36c57 Author: Tony Cook <[email protected]> Date: Wed Aug 5 15:51:20 2015 +1000 [perl #125467] mingw-w64 has moved (cherry picked from commit 2c3d35a4bbf08d71ed7e9a625c0e8262439abdfd) M README.win32 commit f5db5ac6b44e7e51415682b0e196b8c3a64c7f2a Author: Craig A. Berry <[email protected]> Date: Thu Aug 6 06:32:44 2015 -0500 Require civility; aspire to kindness. Suggestion that we "aspire to kindness" from the ever-kind Tim Bunce. Signed-off-by: Ricardo Signes <[email protected]> (cherry picked from commit 8764ee632ebcddc73e4e8d0f1cf1a48ac82ec87c) M pod/perlpolicy.pod commit a6faa0895c262281b55eb8fdbd0b2149e7e813a2 Author: Tony Cook <[email protected]> Date: Mon Aug 3 16:48:01 2015 +1000 [perl #120826] correct documentation of sv parameter of call_sv() (cherry picked from commit 078e2213d1e79935a637aef6d5b7bc38aa6954fe) M perl.c commit 15af69923e69080b7549ca3185443893f076a95b Author: Ricardo Signes <[email protected]> Date: Wed Sep 30 08:46:26 2015 +0100 drop the perldeltas for 5.21.* (cherry picked from commit 8ec6d14a3d59c51796132614e9538a4c62e20dad) M MANIFEST M pod/perl.pod D pod/perl5210delta.pod D pod/perl52110delta.pod D pod/perl52111delta.pod D pod/perl5211delta.pod D pod/perl5212delta.pod D pod/perl5213delta.pod D pod/perl5214delta.pod D pod/perl5215delta.pod D pod/perl5216delta.pod D pod/perl5217delta.pod D pod/perl5218delta.pod D pod/perl5219delta.pod M win32/pod.mak commit 262d6db154491df2b487214657f9c972f0c903ee Author: Jan Dubois <[email protected]> Date: Fri Jun 5 17:18:20 2015 -0700 sunmath.h is only used for builds using long doubles (cherry picked from commit 16ac183d95cef3f9028737e9949a7e78a750c9fe) M perl.h commit b53c26373f68aa966bcdec1aa6de341e8d04fb4f Author: Jarkko Hietaniemi <[email protected]> Date: Sun Jun 28 08:41:34 2015 -0400 Explicitly mention that even negative shiftees become UVs first. (cherry picked from commit 4943a717433fa4a342d031e05d80444da6cb0e11) M pod/perlop.pod commit d44091a438e946ea55c42a925cc5fcd06c541f7a Author: Jarkko Hietaniemi <[email protected]> Date: Sun Jun 7 17:42:57 2015 -0400 Link typo in last minute tweak. (cherry picked from commit ec610f8a9f2738d8a59ee84a3ec7ed858addea85) M pod/perl5220delta.pod commit 0419866b154eab563502b1ee7825591a0b97df47 Author: Jarkko Hietaniemi <[email protected]> Date: Sun Aug 2 08:39:32 2015 -0400 Remove uselongdoubles false claim. Missed this spot in 568793b6. (cherry picked from commit 938039404b03b2d310c7f1c1b4e38c24ef441679) M INSTALL commit 78120f01858b912ba69ab56409a03c90b8b415c7 Author: Jarkko Hietaniemi <[email protected]> Date: Sun Jun 7 17:42:10 2015 -0400 Forgot to adjust this: quadmath is not long doubles. (cherry picked from commit b7ce25dd7b9b021b485b5de41e6e19d6029ba22d) M INSTALL M pod/perl5220delta.pod commit 5f25da5579c8d4b60c379d9696f605f4243ac29e Author: Andy Broad <[email protected]> Date: Wed Sep 30 08:38:41 2015 +0100 The #ifdef NV_MIN_EXP straddled the if () braces. Though non-straddling, make the NV_MAX_EXP case identical. (cherry picked from commit 8c1ed856816d90f9c4ab9da34ff97b9caf4d29c4) M toke.c commit b98244df2e78c1b5a461ca2d53e91e78d716e916 Author: Sisyphus <[email protected]> Date: Thu Aug 20 07:28:33 2015 -0400 [perl #125669] op/pack.t failures with PPC long double (double double) builds unpack '%65...' failures, to be more exact. (cherry picked from commit 09b94b1f0efd8c107548a6fefcd471e9b06c2cdf) M pp_pack.c commit fd509070f69fcf205803014905a66f3246fab586 Author: Tony Cook <[email protected]> Date: Fri Aug 7 14:20:36 2015 +1000 remove the byte-order-mark introduced to sv.c by 5488d373 This causes the build to fail on NetBSD (cherry picked from commit 5356d32ec564e8c2e19758f66dbcbbc38327aa75) M sv.c commit a0b2cd1ca9f4dc23720b077af305f3b62477f3c8 Author: Sisyphus <[email protected]> Date: Wed Aug 5 16:53:38 2015 -0400 double-double long double %a fixes - reserve enough buffer space - name the two different errors differently - test around the problem spot (cherry picked from commit 5488d3733162ee806bb5f5c55694e8beaaf7b1cc) M pod/perldiag.pod M sv.c M t/op/sprintf2.t ----------------------------------------------------------------------- Summary of changes: AUTHORS | 1 + INSTALL | 7 +- MANIFEST | 12 - README.win32 | 8 +- perl.c | 18 +- perl.h | 2 +- pod/perl.pod | 12 - pod/perl5210delta.pod | 99 ----- pod/perl52110delta.pod | 482 ---------------------- pod/perl52111delta.pod | 432 -------------------- pod/perl5211delta.pod | 1042 ------------------------------------------------ pod/perl5212delta.pod | 377 ------------------ pod/perl5213delta.pod | 422 -------------------- pod/perl5214delta.pod | 781 ------------------------------------ pod/perl5215delta.pod | 655 ------------------------------ pod/perl5216delta.pod | 709 -------------------------------- pod/perl5217delta.pod | 579 --------------------------- pod/perl5218delta.pod | 676 ------------------------------- pod/perl5219delta.pod | 756 ----------------------------------- pod/perl5220delta.pod | 10 +- pod/perldiag.pod | 2 +- pod/perlop.pod | 2 +- pod/perlpolicy.pod | 10 +- pp_pack.c | 13 +- sv.c | 16 +- t/op/sprintf2.t | 21 +- toke.c | 18 +- win32/pod.mak | 48 --- 28 files changed, 88 insertions(+), 7122 deletions(-) delete mode 100644 pod/perl5210delta.pod delete mode 100644 pod/perl52110delta.pod delete mode 100644 pod/perl52111delta.pod delete mode 100644 pod/perl5211delta.pod delete mode 100644 pod/perl5212delta.pod delete mode 100644 pod/perl5213delta.pod delete mode 100644 pod/perl5214delta.pod delete mode 100644 pod/perl5215delta.pod delete mode 100644 pod/perl5216delta.pod delete mode 100644 pod/perl5217delta.pod delete mode 100644 pod/perl5218delta.pod delete mode 100644 pod/perl5219delta.pod diff --git a/AUTHORS b/AUTHORS index 38e0812..4386ae8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -102,6 +102,7 @@ Andrew Vignaux <[email protected]> Andrew Wilcox <[email protected]> Andrey Sapozhnikov <[email protected]> Andy Armstrong <[email protected]> +Andy Broad <[email protected]> Andy Bussey <[email protected]> Andy Dougherty <[email protected]> Andy Lester <[email protected]> diff --git a/INSTALL b/INSTALL index 017eefa..0a1b0c5 100644 --- a/INSTALL +++ b/INSTALL @@ -332,9 +332,6 @@ this support (if it is available). Note that the exact format and range of long doubles varies: the most common is the x86 80-bit (64 bits of mantissa) format, but there are others, with different mantissa and exponent ranges. -In fact, the type may not be called "long double" at C level, and -therefore the C<uselongdouble> means "using floating point larger -than double". =head3 "more bits" @@ -343,7 +340,7 @@ and the long double support. =head3 quadmath -One option for long doubles is that gcc 4.6 and later have a library +One option for more precision is that gcc 4.6 and later have a library called quadmath, which implements the IEEE 754 quadruple precision (128-bit, 113 bits of mantissa) floating point numbers. The library works at least on x86 and ia64 platforms. It may be part of your gcc @@ -352,7 +349,7 @@ installation, or you may need to install it separately. With "Configure -Dusequadmath" you can try enabling its use, but note the compiler dependency, you may need to also add "-Dcc=...". At C level the type is called C<__float128> (note, not "long double"), -but Perl source knows it as NV. +but Perl source knows it as NV. (This is not "long doubles".) =head3 Algorithmic Complexity Attacks on Hashes diff --git a/MANIFEST b/MANIFEST index e4c847f..1a81320 100644 --- a/MANIFEST +++ b/MANIFEST @@ -4565,18 +4565,6 @@ pod/perl5184delta.pod Perl changes in version 5.18.4 pod/perl5200delta.pod Perl changes in version 5.20.0 pod/perl5201delta.pod Perl changes in version 5.20.1 pod/perl5202delta.pod Perl changes in version 5.20.2 -pod/perl5210delta.pod Perl changes in version 5.21.0 -pod/perl52110delta.pod Perl changes in version 5.21.10 -pod/perl52111delta.pod Perl changes in version 5.21.11 -pod/perl5211delta.pod Perl changes in version 5.21.1 -pod/perl5212delta.pod Perl changes in version 5.21.2 -pod/perl5213delta.pod Perl changes in version 5.21.3 -pod/perl5214delta.pod Perl changes in version 5.21.4 -pod/perl5215delta.pod Perl changes in version 5.21.5 -pod/perl5216delta.pod Perl changes in version 5.21.6 -pod/perl5217delta.pod Perl changes in version 5.21.7 -pod/perl5218delta.pod Perl changes in version 5.21.8 -pod/perl5219delta.pod Perl changes in version 5.21.9 pod/perl5220delta.pod Perl changes in version 5.22.0 pod/perl561delta.pod Perl changes in version 5.6.1 pod/perl56delta.pod Perl changes in version 5.6 diff --git a/README.win32 b/README.win32 index 605f980..8621990 100644 --- a/README.win32 +++ b/README.win32 @@ -42,7 +42,7 @@ following compilers on the Intel x86 architecture: Microsoft Visual C++ version 6.0 or later Intel C++ Compiler (experimental) Gcc by mingw.org gcc version 3.4.5 or later - Gcc by mingw-w64.sf.net gcc version 4.4.3 or later + Gcc by mingw-w64.org gcc version 4.4.3 or later Note that the last two of these are actually competing projects both delivering complete gcc toolchain for MS Windows: @@ -53,7 +53,7 @@ delivering complete gcc toolchain for MS Windows: Delivers gcc toolchain targeting 32-bit Windows platform. -=item L<http://mingw-w64.sf.net> +=item L<http://mingw-w64.org> Delivers gcc toolchain targeting both 64-bit Windows and 32-bit Windows platforms (despite the project name "mingw-w64" they are not only 64-bit @@ -74,7 +74,7 @@ This port can also be built on IA64/AMD64 using: MinGW64 compiler (gcc version 4.4.3 or later) The Windows SDK can be downloaded from L<http://www.microsoft.com/>. -The MinGW64 compiler is available at L<http://sourceforge.net/projects/mingw-w64>. +The MinGW64 compiler is available at L<http://mingw-w64.org>. The latter is actually a cross-compiler targeting Win64. There's also a trimmed down compiler (no java, or gfortran) suitable for building perl available at: L<http://strawberryperl.com/package/kmx/64_gcctoolchain/> @@ -369,7 +369,7 @@ You will have to make sure that CCTYPE is set correctly and that CCHOME points to wherever you installed your compiler. If building with the cross-compiler provided by -mingw-w64.sourceforge.net you'll need to uncomment the line that sets +mingw-w64.org you'll need to uncomment the line that sets GCCCROSS in the makefile.mk. Do this only if it's the cross-compiler - ie only if the bin folder doesn't contain a gcc.exe. (The cross-compiler does not provide a gcc.exe, g++.exe, ar.exe, etc. Instead, all of these diff --git a/perl.c b/perl.c index 086645b..be0181f 100644 --- a/perl.c +++ b/perl.c @@ -2664,8 +2664,22 @@ Perl_call_method(pTHX_ const char *methname, I32 flags) /* =for apidoc p||call_sv -Performs a callback to the Perl sub whose name is in the SV. See -L<perlcall>. +Performs a callback to the Perl sub specified by the SV. + +If neither the C<G_METHOD> or C<G_METHOD_NAMED> flag is supplied, the +SV may be any of a CV, a GV, a reference to a CV, a reference to a GV +or C<SvPV(sv)> will be used as the name of the sub to call. + +If the C<G_METHOD> flag is supplied, the SV may be a reference to a CV or +C<SvPV(sv)> will be used as the name of the method to call. + +If the C<G_METHOD_NAMED> flag is supplied, C<SvPV(sv)> will be used as +the name of the method to call. + +Some other values are treated specially for internal use and should +not be depended on. + +See L<perlcall>. =cut */ diff --git a/perl.h b/perl.h index dcb184b..01455a5 100644 --- a/perl.h +++ b/perl.h @@ -4363,7 +4363,7 @@ static const union { unsigned int __i; float __f; } __PL_inf_u = #if !defined(NV_NAN) && defined(QNAN) # define NV_NAN (NV)QNAN #endif -#if !defined(NV_NAN) && defined(I_SUNMATH) +#if !defined(NV_NAN) && defined(USE_LONG_DOUBLE) && defined(I_SUNMATH) # define NV_NAN (NV)quiet_nan() #endif #if !defined(NV_NAN) diff --git a/pod/perl.pod b/pod/perl.pod index 67c144c..ee5213e 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -180,20 +180,8 @@ aux c2ph h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp perlhist Perl history records perldelta Perl changes since previous version - perl52111delta Perl changes in version 5.21.11 - perl52110delta Perl changes in version 5.21.10 - perl5219delta Perl changes in version 5.21.9 - perl5218delta Perl changes in version 5.21.8 - perl5217delta Perl changes in version 5.21.7 - perl5216delta Perl changes in version 5.21.6 - perl5215delta Perl changes in version 5.21.5 - perl5214delta Perl changes in version 5.21.4 - perl5213delta Perl changes in version 5.21.3 - perl5212delta Perl changes in version 5.21.2 - perl5211delta Perl changes in version 5.21.1 perl5221delta Perl changes in version 5.22.1 perl5220delta Perl changes in version 5.22.0 - perl5210delta Perl changes in version 5.21.0 perl5202delta Perl changes in version 5.20.2 perl5201delta Perl changes in version 5.20.1 perl5200delta Perl changes in version 5.20.0 diff --git a/pod/perl5210delta.pod b/pod/perl5210delta.pod deleted file mode 100644 index f609452..0000000 --- a/pod/perl5210delta.pod +++ /dev/null @@ -1,99 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5210delta - what is new for perl v5.21.0 - -=head1 DESCRIPTION - -This document describes differences between the 5.21.0 release and the 5.20.0 -release. - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<feature> has been upgraded from version 1.36 to 1.37. - -=item * - -L<Module::CoreList> has been upgraded from version 3.10 to 5.021001. - -=back - -=head2 Removed Modules and Pragmata - -=over 4 - -=item * - -L<CGI> has been removed from the core. It is still available on the CPAN. - -=item * - -L<Module::Build> has been removed from the core. It is still available on the -CPAN. - -=item * - -L<Package::Constants> has been removed from the core. It is still available on -the CPAN. - -=back - -=head1 Acknowledgements - -Perl 5.21.0 represents approximately 12 hours of development since Perl 5.20.0 -and contains approximately 44,000 lines of changes across 190 files from 1 -author. - -Excluding auto-generated files, documentation and release tools, there were -approximately 33,000 lines of changes to 140 .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.21.0: - -Nicholas Clark, Ricardo Signes. - -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 [email protected] 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 [email protected]. 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/perl52110delta.pod b/pod/perl52110delta.pod deleted file mode 100644 index d10e319..0000000 --- a/pod/perl52110delta.pod +++ /dev/null @@ -1,482 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl52110delta - what is new for perl v5.21.10 - -=head1 DESCRIPTION - -This document describes differences between the 5.21.9 release and the 5.21.10 -release. - -If you are upgrading from an earlier release such as 5.21.8, first read -L<perl5219delta>, which describes differences between 5.21.8 and 5.21.9. - -=head1 Incompatible Changes - -=head2 C<(?[...])> operators now follow standard Perl precedence - -This experimental feature allows set operations in regular expression patterns. -Prior to this, the intersection operator had the same precedence as the other -binary operators. Now it has higher precedence. This could lead to different -outcomes than existing code expects (though the documentation has always noted -that this change might happen, recommending fully parenthesizing the -expressions). See L<perlrecharclass/Extended Bracketed Character Classes>. - -=head1 Performance Enhancements - -=over 4 - -=item * - -The functions C<utf8::native_to_unicode()> and C<utf8::unicode_to_native()> -(see L<utf8>) are now optimized out on ASCII platforms. There is now not even -a minimal performance hit in writing code portable between ASCII and EBCDIC -platforms. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<B> has been upgraded from version 1.56 to 1.57. - -=item * - -L<B::Deparse> has been upgraded from version 1.33 to 1.34. - -Deparse C<$#_> as that instead of as C<$#{_}>. -L<[perl #123947]|https://rt.perl.org/Ticket/Display.html?id=123947> - -=item * - -L<Carp> has been upgraded from version 1.35 to 1.36. - -=item * - -L<CPAN> has been upgraded from version 2.05 to 2.10. - -=over 4 - -=item * - -Add support for C<Cwd::getdcwd()> and introduce workaround for a misbehaviour -seen on Strawberry Perl 5.20.1. - -=item * - -Fix C<chdir()> after building dependencies bug. - -=item * - -Introduce experimental support for plugins/hooks. - -=item * - -Integrate the App::Cpan sources. - -=item * - -Do not check recursion on optional dependencies. - -=item * - -Sanity check META.yml to contain a hash. -L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271> - -=back - -=item * - -L<CPAN::Meta> has been upgraded from version 2.143240 to 2.150001. - -=item * - -L<Data::Dumper> has been upgraded from version 2.157 to 2.158. - -=item * - -L<DB> has been upgraded from version 1.07 to 1.08. - -=item * - -L<Devel::PPPort> has been upgraded from version 3.28 to 3.31. - -=item * - -L<DynaLoader> has been upgraded from version 1.31 to 1.32. - -=item * - -L<Encode> has been upgraded from version 2.70 to 2.72. - -=item * - -L<encoding> has been upgraded from version 2.13 to 2.14. - -=item * - -L<Getopt::Long> has been upgraded from version 2.43 to 2.45. - -=item * - -L<locale> has been upgraded from version 1.05 to 1.06. - -=item * - -L<Locale::Codes> has been upgraded from version 3.33 to 3.34. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20150220 to 5.20150320. - -=item * - -L<parent> has been upgraded from version 0.228 to 0.232. - -No changes to installed files other than the version bump. - -=item * - -The PathTools modules have been upgraded from version 3.54 to 3.55. - -=item * - -L<Pod::Functions> has been upgraded from version 1.08 to 1.09. - -=item * - -L<POSIX> has been upgraded from version 1.51 to 1.52. - -=item * - -L<re> has been upgraded from version 0.31 to 0.32. - -=item * - -L<sigtrap> has been upgraded from version 1.07 to 1.08. - -=item * - -L<Term::Complete> has been upgraded from version 1.402 to 1.403. - -=item * - -L<Test::Simple> has been reverted from version 1.301001_098 to 1.001014. - -=item * - -L<Text::Balanced> has been upgraded from version 2.02 to 2.03. - -No changes to installed files other than the version bump. - -=item * - -L<Text::ParseWords> has been upgraded from version 3.29 to 3.30. - -=item * - -L<threads> has been upgraded from version 1.96_001 to 2.01. - -=item * - -L<Unicode::Collate> has been upgraded from version 1.11 to 1.12. - -=item * - -L<utf8> has been upgraded from version 1.14 to 1.15. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=head3 L<perldata> - -=over 4 - -=item * - -Documentation has been added regarding the special floating point values C<Inf> -and C<NaN>. - -=back - -=head3 L<perlexperiment> - -=over 4 - -=item * - -Removed note about C<\s> matching C<VT> now that it is no longer experimental. - -=item * - -Added note that C<use re 'strict'> has been introduced experimentally. - -=back - -=head3 L<perlpolicy> - -=over 4 - -=item * - -The documentation of what to expect to see in future maintenance releases has -been updated. Essentially the same types of changes will be included as before -but with fewer changes that don't affect the installation or execution of perl. - -=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<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/"> - -(F) The pattern looks like a {min,max} quantifier, but the min or max could not -be parsed as a valid number - either it has leading zeroes, or it represents -too big a number to cope with. The S<<-- HERE> shows where in the regular -expression the problem was discovered. See L<perlre>. - -=back - -=head1 Testing - -=over 4 - -=item * - -Tests for performance issues have been added in the file F<t/perf/taint.t>. - -=back - -=head1 Platform Support - -=head2 New Platforms - -=over 4 - -=item z/OS running EBCDIC Code Page 1047 - -Core perl now works on this EBCDIC platform. Early perls also worked, but, -even though support wasn't officially withdrawn, recent perls would not compile -and run well. Perl 5.20 would work, but had many bugs which have now been -fixed. Many CPAN modules that ship with Perl still fail tests, including -Pod::Simple. However the version of Pod::Simple currently on CPAN should work; -it was fixed too late to include in Perl 5.22. Work is under way to fix many -of the still-broken CPAN modules, which likely will be installed on CPAN when -completed, so that you may not have to wait until Perl 5.24 to get a working -version. - -=back - -=head2 Platform-Specific Notes - -=over 4 - -=item HP-UX - -The archname now distinguishes use64bitint from use64bitall. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -Macros have been created to allow XS code to better manipulate the POSIX locale -category C<LC_NUMERIC>. See L<perlapi/Locale-related functions and macros>. - -=item * - -The previous C<atoi> et al replacement function, C<grok_atou>, has now been -superseded by C<grok_atoUV>. See L<perlclib> for details. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Repeated global pattern matches in scalar context on large tainted strings were -exponentially slow depending on the current match position in the string. -L<[perl #123202]|https://rt.perl.org/Ticket/Display.html?id=123202> - -=item * - -Various crashes due to the parser getting confused by syntax errors have been -fixed. -L<[perl #123801]|https://rt.perl.org/Ticket/Display.html?id=123801> -L<[perl #123802]|https://rt.perl.org/Ticket/Display.html?id=123802> -L<[perl #123955]|https://rt.perl.org/Ticket/Display.html?id=123955> -L<[perl #123995]|https://rt.perl.org/Ticket/Display.html?id=123995> - -=item * - -C<split> in the scope of lexical $_ has been fixed not to fail assertions. -L<[perl #123763]|https://rt.perl.org/Ticket/Display.html?id=123763> - -=item * - -C<my $x : attr> syntax inside various list operators no longer fails -assertions. -L<[perl #123817]|https://rt.perl.org/Ticket/Display.html?id=123817> - -=item * - -An @ sign in quotes followed by a non-ASCII digit (which is not a valid -identifier) would cause the parser to crash, instead of simply trying the @ as -literal. This has been fixed. -L<[perl #123963]|https://rt.perl.org/Ticket/Display.html?id=123963> - -=item * - -C<*bar::=*foo::=*glob_with_hash> has been crashing since Perl 5.14, but no -longer does. -L<[perl #123847]|https://rt.perl.org/Ticket/Display.html?id=123847> - -=item * - -C<foreach> in scalar context was not pushing an item on to the stack, resulting -in bugs. (C<print 4, scalar do { foreach(@x){} } + 1> would print 5.) It has -been fixed to return C<undef>. -L<[perl #124004]|https://rt.perl.org/Ticket/Display.html?id=124004> - -=item * - -A memory leak introduced in Perl 5.21.6 has been fixed. -L<[perl #123922]|https://rt.perl.org/Ticket/Display.html?id=123922> - -=item * - -A regression in the behaviour of the C<readline> built-in function, caused by -the introduction of the C<< <<>> >> operator, has been fixed. -L<[perl #123990]|https://rt.perl.org/Ticket/Display.html?id=123990> - -=item * - -Several cases of data used to store environment variable contents in core C -code being potentially overwritten before being used have been fixed. -L<[perl #123748]|https://rt.perl.org/Ticket/Display.html?id=123748> - -=back - -=head1 Known Problems - -=over 4 - -=item * - -A goal is for Perl to be able to be recompiled to work reasonably well on any -Unicode version. In Perl 5.22, though, the earliest such version is Unicode -5.1 (current is 7.0). - -=item * - -EBCDIC platforms - -=over 4 - -=item * - -Encode and encoding are mostly broken. - -=item * - -Many cpan modules that are shipped with core show failing tests. - -=item * - -C<pack>/C<unpack> with C<"U0"> format may not work properly. - -=back - -=back - -=head1 Acknowledgements - -Perl 5.21.10 represents approximately 4 weeks of development since Perl 5.21.9 -and contains approximately 170,000 lines of changes across 860 files from 27 -authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 170,000 lines of changes to 610 .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.21.10: - -Chris 'BinGOs' Williams, David Golden, David Mitchell, David Wheeler, Father -Chrysostomos, H.Merijn Brand, Hugo van der Sanden, James E Keenan, Jarkko -Hietaniemi, Jasmine Ngan, Jerry D. Hedden, John Goodyear, Karen Etheridge, Karl -Williamson, Lukas Mai, Matthew Horsfall, Nicholas Clark, Petr PÃsaÅ, Rafael -Garcia-Suarez, Reini Urban, Ricardo Signes, Sawyer X, Steffen Müller, Steve -Hay, Sullivan Beck, Tony Cook, Vincent Pit. - -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 [email protected] 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 [email protected]. 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/perl52111delta.pod b/pod/perl52111delta.pod deleted file mode 100644 index 90c95dd..0000000 --- a/pod/perl52111delta.pod +++ /dev/null @@ -1,432 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl52111delta - what is new for perl v5.21.11 - -=head1 DESCRIPTION - -This document describes differences between the 5.21.10 release and the 5.21.11 -release. - -If you are upgrading from an earlier release such as 5.21.9, first read -L<perl52110delta>, which describes differences between 5.21.9 and 5.21.10. - -=head1 Deprecations - -=head2 Making all warnings fatal is discouraged - -The documentation for L<fatal warnings|warnings/Fatal Warnings> notes that -C<< use warnings FATAL => 'all' >> is discouraged and provides stronger -language about the risks of fatal warnings in general. - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<attributes> has been upgraded from version 0.26 to 0.27. - -=item * - -L<B> has been upgraded from version 1.57 to 1.58. - -=item * - -L<B::Deparse> has been upgraded from version 1.34 to 1.35. - -C<< <<>> >> is now correctly deparsed. - -=item * - -L<Config::Perl::V> has been upgraded from version 0.23 to 0.24. - -=item * - -L<CPAN> has been upgraded from version 2.10 to 2.11. - -=item * - -L<Cwd> has been upgraded from version 3.55 to 3.56. - -=item * - -L<ExtUtils::Miniperl> has been upgraded from version 1.04 to 1.05. - -=item * - -L<ExtUtils::ParseXS> has been upgraded from version 3.27 to 3.28. - -=item * - -L<ExtUtils::Typemaps> has been upgraded from version 3.25 to 3.28. - -=item * - -L<File::Spec> has been upgraded from version 3.55 to 3.56. - -=item * - -L<if> has been upgraded from version 0.0603 to 0.0604. - -The documentation now notes that this module also works with C<no>. - -=item * - -L<IO::Socket::IP> has been upgraded from version 0.36 to 0.37. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20150320 to 5.20150420. - -Updated to cover the latest releases of Perl. Also fixes a fencepost error in -is_core() and copes with versions that do not match x.yyyzzz. - -=item * - -L<perl5db.pl> has been upgraded from 1.48 to 1.49. - -The debugger would cause an assertion failure. -L<[perl #124127]|https://rt.perl.org/Ticket/Display.html?id=124127> - -=item * - -L<PerlIO::mmap> has been upgraded from version 0.013 to 0.014. - -=item * - -L<utf8> has been upgraded from version 1.15 to 1.16. - -Minor documentation update only. - -=item * - -L<warnings> has been upgraded from version 1.31 to 1.32. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=head3 L<perlebcdic> - -=over 4 - -=item * - -This document has been significantly updated in the light of recent -improvements to EBCDIC support. - -=back - -=head3 L<perlfunc> - -=over 4 - -=item * - -Mention that C<study()> is currently a no-op. - -=back - -=head3 L<perlguts> - -=over 4 - -=item * - -The OOK example has been updated to account for COW changes and a change in the -storage of the offset. - -=back - -=head3 L<perlhacktips> - -=over 4 - -=item * - -Documentation has been added illustrating the perils of assuming the contents -of static memory pointed to by the return values of Perl wrappers for C library -functions doesn't change. - -=back - -=head3 L<perlport> - -=over 4 - -=item * - -Out-of-date VMS-specific information has been fixed/simplified. - -=back - -=head3 L<perluniintro> - -=over 4 - -=item * - -Advice for how to make sure your strings and regular expression patterns are -interpreted as Unicode has been revised to account for the new Perl 5.22 EBCDIC -handling. - -=back - -=head3 L<perlvms> - -=over 4 - -=item * - -Out-of-date and/or incorrect material has been removed. - -=back - -=head1 Testing - -=over 4 - -=item * - -F<t/porting/re_context.t> has been added to test that L<utf8> and its -dependencies only use the subset of the C<$1..$n> capture vars that -Perl_save_re_context() is hard-coded to localize, because that function has no -efficient way of determining at runtime what vars to localize. - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item Win32 - -F<miniperl.exe> is now built with C<-fno-strict-aliasing>, allowing 64-bit -builds to complete on GCC 4.8. -L<[perl #123976]|https://rt.perl.org/Ticket/Display.html?id=123976> - -C<test-prep> again depends on C<test-prep-gcc> for GCC builds. -L<[perl #124221]|https://rt.perl.org/Ticket/Display.html?id=124221> - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -Perl 5.21.2 introduced a new build option, C<-DPERL_OP_PARENT>, which causes -the last C<op_sibling> pointer to refer back to the parent rather than being -C<NULL>, and where instead a new flag indicates the end of the chain. In this -release, the new implementation has been revised; in particular: - -=over 4 - -=item * - -On C<PERL_OP_PARENT> builds, the C<op_sibling> field has been renamed -C<op_sibparent> to reflect its new dual purpose. Since the intention is that -this field should primarily be accessed via macros, this change should be -transparent for code written to work under C<PERL_OP_PARENT>. - -=item * - -The newly-introduced C<op_lastsib> flag bit has been renamed C<op_moresib> and -its logic inverted; i.e. it is initialised to zero in a new op, and is changed -to 1 when an op gains a sibling. - -=item * - -The function C<Perl_op_parent> is now only available on C<PERL_OP_PARENT> -builds. Using it on a plain build will be a compile-timer error. - -=item * - -Three new macros, C<OpMORESIB_set>, C<OpLASTSIB_set>, C<OpMAYBESIB_set> have -been added, which are intended to be a low-level portable way to set -C<op_sibling> / C<op_sibparent> while also updating C<op_moresib>. The first -sets the sibling pointer to a new sibling, the second makes the op the last -sibling, and the third conditionally does the first or second action. The -C<op_sibling_splice()> function is retained as a higher-level interface that -can also maintain consistency in the parent at the same time (e.g. by updating -C<op_first> and C<op_last> where appropriate). - -=item * - -The macro C<OpSIBLING_set>, added in Perl 5.21.2, has been removed. It didn't -manipulate C<op_moresib> and has been superseded by C<OpMORESIB_set> et al. - -=item * - -The C<op_sibling_splice> function now accepts a null C<parent> argument where -the splicing doesn't affect the first or last ops in the sibling chain, and -thus where the parent doesn't need to be updated accordingly. - -=back - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -C<pack("D", $x)> and C<pack("F", $x)> now zero the padding on x86 long double -builds. GCC 4.8 and later, under some build options, would either overwrite -the zero-initialized padding, or bypass the initialized buffer entirely. This -caused F<op/pack.t> to fail. -L<[perl #123971]|https://rt.perl.org/Ticket/Display.html?id=123971> - -=item * - -Extending an array cloned from a parent thread could result in "Modification of -a read-only value attempted" errors when attempting to modify the new elements. -L<[perl #124127]|https://rt.perl.org/Ticket/Display.html?id=124127> - -=item * - -An assertion failure and subsequent crash with C<< *x=<y> >> has been fixed. -L<[perl #123790]|https://rt.perl.org/Ticket/Display.html?id=123790> - -=item * - -An optimization for state variable initialization introduced in Perl 5.21.6 has -been reverted because it was found to exacerbate some other existing buggy -behaviour. -L<[perl #124160]|https://rt.perl.org/Ticket/Display.html?id=124160> - -=item * - -The extension of another optimization to cover more ops in Perl 5.21 has also -been reverted to its Perl 5.20 state as a temporary fix for regression issues -that it caused. -L<[perl #123790]|https://rt.perl.org/Ticket/Display.html?id=123790> - -=item * - -New bitwise ops added in Perl 5.21.9 accidentally caused C<$^H |= 0x1c020000> -to enable all features. This has now been fixed. - -=item * - -A possible crashing/looping bug has been fixed. -L<[perl #124099]|https://rt.perl.org/Ticket/Display.html?id=124099> - -=item * - -UTF-8 variable names used in array indexes, unquoted UTF-8 HERE-document -terminators and UTF-8 function names all now work correctly. -L<[perl #124113]|https://rt.perl.org/Ticket/Display.html?id=124113> - -=item * - -Breakage in C<require(VERSION)> (with parentheses), introduced in Perl 5.21.6, -has been fixed. -L<[perl #124135]|https://rt.perl.org/Ticket/Display.html?id=124135> - -=item * - -Wide char warnings, wrongly raised in UTF-8 locales since Perl 5.21.8, are now -suppressed. -L<[perl #123527]|https://rt.perl.org/Ticket/Display.html?id=123527> - -=item * - -A subtle bug introduced in Perl 5.21.4 involving UTF-8 in regular expressions -and sometimes causing a crash has been fixed. A new test script has been added -to test this fix; see under L</Testing>. -L<[perl #124109]|https://rt.perl.org/Ticket/Display.html?id=124109> - -=item * - -A change introduced in Perl 5.21.10 that broke the autovivification CPAN module -has been reverted. - -=item * - -A bug whereby C<< 'FOO'->f() >> lost the read-only status of C<FOO>, introduced -in Perl 5.21.7, has been fixed. -L<[perl #123619]|https://rt.perl.org/Ticket/Display.html?id=123619> - -=item * - -A regression in Perl 5.21 in the matching of C</[A-Z]/ai> has been fixed. - -=back - -=head1 Acknowledgements - -Perl 5.21.11 represents approximately 4 weeks of development since Perl 5.21.10 -and contains approximately 5,800 lines of changes across 240 files from 24 -authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 1,700 lines of changes to 160 .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.21.11: - -Alex Vandiver, Andreas König, Craig A. Berry, Dagfinn Ilmari MannsÃ¥ker, Daniel -Dragan, David Golden, David Mitchell, Father Chrysostomos, H.Merijn Brand, -Herbert Breunung, Hugo van der Sanden, James E Keenan, James McCoy, Karl -Williamson, Matthew Horsfall, Max Maischein, Nicholas Clark, Rafael -Garcia-Suarez, Randy Stauner, Ricardo Signes, Shirakata Kentaro, Steffen -Müller, 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 -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 [email protected] 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 [email protected]. 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/perl5211delta.pod b/pod/perl5211delta.pod deleted file mode 100644 index 5ab17e5..0000000 --- a/pod/perl5211delta.pod +++ /dev/null @@ -1,1042 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5211delta - what is new for perl v5.21.1 - -=head1 DESCRIPTION - -This document describes differences between the 5.21.0 release and the 5.21.1 -release. - -If you are upgrading from an earlier release such as 5.20.0, first read -L<perl5210delta>, which describes differences between 5.20.0 and 5.21.0. - -=head1 Notice - -This release removes a number of previously deprecated constructs, many -that have been around for a long time. Please see L</"Incompatible Changes"> -for more information. - -=head1 Core Enhancements - -=head2 Unicode 7.0 is now supported - -For details on what is in this release, see -L<http://www.unicode.org/versions/Unicode7.0.0/>. - -=head2 Experimental C Backtrace API - -Starting from Perl 5.21.1, on some platforms Perl supports retrieving -the C level backtrace (similar to what symbolic debuggers like gdb do). - -The backtrace returns the stack trace of the C call frames, -with the symbol names (function names), the object names (like "perl"), -and if it can, also the source code locations (file:line). - -The supported platforms are Linux and OS X (some *BSD might work at -least partly, but they have not yet been tested). - -The feature needs to be enabled with C<Configure -Dusecbacktrace>. - -Also included is a C API to retrieve backtraces. - -See L<perlhacktips/"C backtrace"> for more information. - -=head2 C<qr/foo/x> now ignores any Unicode pattern white space - -The C</x> regular expression modifier allows the pattern to contain -white space and comments, both of which are ignored, for improved -readability. Until now, not all the white space characters that Unicode -designates for this purpose were handled. The additional ones now -recognized are -U+0085 NEXT LINE, -U+200E LEFT-TO-RIGHT MARK, -U+200F RIGHT-TO-LEFT MARK, -U+2028 LINE SEPARATOR, -and -U+2029 PARAGRAPH SEPARATOR. - -=head2 S<C<use locale>> can restrict which locale categories are affected - -It is now possible to pass a parameter to S<C<use locale>> to specify -a subset of locale categories to be locale-aware, with the remaining -ones unaffected. See L<perllocale/The "use locale" pragma> for details. - -=head1 Incompatible Changes - -=head2 C<\N{}> with a sequence of multiple spaces is now a fatal error. - -This has been deprecated since v5.18. - -=head2 In double-quotish C<\cI<X>>, I<X> must now be a printable ASCII character - -In prior releases, failure to do this raised a deprecation warning. - -=head2 Splitting the tokens C<(?> and C<(*> in regular expressions is -now a fatal compilation error. - -These had been deprecated since v5.18. - -=head2 5 additional characters are treated as white space under C</x> in -regex patterns (unless escaped) - -The use of these characters with C</x> outside bracketed character -classes and when not preceded by a backslash has raised a deprecation -warning since v5.18. Now they will be ignored. See L</"qr/foo/x"> -for the list of the five characters. - -=head2 Comment lines within S<C<(?[ ])>> now are ended only by a C<\n> - -S<C<(?[ ])>> is an experimental feature, introduced in v5.18. It operates -as if C</x> is always enabled. But there was a difference, comment -lines (following a C<#> character) were terminated by anything matching -C<\R> which includes all vertical whitespace, such as form feeds. For -consistency, this is now changed to match what terminates comment lines -outside S<C<(?[ ])>>, namely a C<\n> (even if escaped), which is the -same as what terminates a heredoc string and formats. - -=head2 Omitting % and @ on hash and array names is no longer permitted - -Really old Perl let you omit the @ on array names and the % on hash -names in some spots. This has issued a deprecation warning since Perl -5.0, and is no longer permitted. - -=head2 C<"$!"> text is now in English outside C<"use locale"> scope - -Previously, the text, unlike almost everything else, always came out -based on the current underlying locale of the program. (Also affected -on some systems is C<"$^E>".) For programs that are unprepared to -handle locale, this can cause garbage text to be displayed. It's better -to display text that is translatable via some tool than garbage text -which is much harder to figure out. - -=head2 C<"$!"> text will be returned in UTF-8 when appropriate - -The stringification of C<$!> and C<$^E> will have the UTF-8 flag set -when the text is actually non-ASCII UTF-8. This will enable programs -that are set up to be locale-aware to properly output messages in the -user's native language. Code that needs to continue the 5.20 and -earlier behavior can do the stringification within the scopes of both -'use bytes' and 'use locale ":messages". No other Perl operations will -be affected by locale; only C<$!> and C<$^E> stringification. The -'bytes' pragma causes the UTF-8 flag to not be set, just as in previous -Perl releases. This resolves [perl #112208]. - -=head2 Support for C<?PATTERN?> without explicit operator has been removed - -Starting regular expressions matching only once directly with the -question mark delimiter is now a syntax error, so that the question mark -can be available for use in new operators. Write C<m?PATTERN?> instead, -explicitly using the C<m> operator: the question mark delimiter still -invokes match-once behaviour. - -=head2 C<defined(@array)> and C<defined(%hash)> are now fatal errors - -These have been deprecated since v5.6.1 and have raised deprecation -warnings since v5.16. - -=head2 Using a hash or an array as a reference are now fatal errors. - -For example, C<%foo-E<gt>{"bar"}> now causes a fatal compilation -error. These have been deprecated since before v5.8, and have raised -deprecation warnings since then. - -=head1 Deprecations - -=head2 Using a NO-BREAK space in a character alias for C<\N{...}> is now -deprecated - -This non-graphic character is essentially indistinguishable from a -regular space, and so should not be allowed. See -L<charnames/CUSTOM ALIASES>. - -=head2 A literal C<"{"> should now be escaped in a pattern - -If you want a literal left curly bracket (also called a left brace) in a -regular expression pattern, you should now escape it by either -preceding it with a backslash (C<"\{">) or enclosing it within square -brackets C<"[{]">, or by using C<\Q>; otherwise a deprecation warning -will be raised. This was first announced as forthcoming in the v5.16 -release; it will allow future extensions to the language to happen. - -=head1 Performance Enhancements - -=over 4 - -=item * - -Many internal functions have been refactored to improve performance and reduce -their memory footprints. - -L<[perl #121436]|https://rt.perl.org/Ticket/Display.html?id=121436> -L<[perl #121906]|https://rt.perl.org/Ticket/Display.html?id=121906> -L<[perl #121969]|https://rt.perl.org/Ticket/Display.html?id=121969> - -=item * - -C<-T> and C<-B> filetests will return sooner when an empty file is detected. - -L<perl #121489|https://rt.perl.org/Ticket/Display.html?id=121489> - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -The libnet collection of modules has been upgraded from version 1.25 to 1.27. - -There are only whitespace changes to the installed files. - -=item * - -A mismatch between the documentation and the code in utf8::downgrade() -was fixed in favour of the documentation. The optional second argument -is now correctly treated as a perl boolean (true/false semantics) and -not as an integer. - -=item * - -The Locale-Codes collection of modules has been upgraded from version 3.30 to 3.31. - -Fixed a bug in the scripts used to extract data from spreadsheets that -prevented the SHP currency code from being found. -L<[cpan #94229]|https://rt.cpan.org/Ticket/Display.html?id=94229> - -=item * - -L<Archive::Tar> has been upgraded from version 1.96 to 2.00. - -=item * - -L<autodie> has been upgraded from version 2.23 to 2.25. - -=item * - -L<B> has been upgraded from version 1.48 to 1.49. - -=item * - -L<B::Deparse> has been upgraded from version 1.26 to 1.27. - -=item * - -L<Benchmark> has been upgraded from version 1.18 to 1.19. - -=item * - -L<Carp> has been upgraded from version 1.3301 to 1.34. - -Carp::Heavy now ignores version mismatches with Carp if Carp is newer -than 1.12, since Carp::Heavy's guts were merged into Carp at that -point. -L<[perl #121574]|https://rt.perl.org/Ticket/Display.html?id=121574> - -=item * - -L<charnames> has been upgraded from version 1.40 to 1.41. - -=item * - -L<CPAN::Meta> has been upgraded from version 2.140640 to 2.141520. - -=item * - -L<Data::Dumper> has been upgraded from version 2.151 to 2.152. - -Changes to resolve Coverity issues. - -XS dumps incorrectly stored the name of code references stored in a -GLOB. -L<[perl #122070]|https://rt.perl.org/Ticket/Display.html?id=122070> - -=item * - -L<Devel::Peek> has been upgraded from version 1.16 to 1.17. - -=item * - -L<Devel::PPPort> has been upgraded from version 3.21 to 3.24. - -=item * - -L<Digest::SHA> has been upgraded from version 5.88 to 5.92. - -=item * - -L<DynaLoader> has been upgraded from version 1.25 to 1.26. - -=item * - -L<Encode> has been upgraded from version 2.60 to 2.62. - -B<piconv> now has better error handling when the encoding name is nonexistent, -and a build breakage when upgrading L<Encode> in perl-5.8.2 and earlier has -been fixed. - -=item * - -L<Errno> has been upgraded from version 1.20_03 to 1.20_04. - -=item * - -L<Exporter> has been upgraded from version 5.70 to 5.71. - -=item * - -L<ExtUtils::Install> has been upgraded from version 1.67 to 1.68. - -=item * - -L<ExtUtils::Miniperl> has been upgraded from version 1.01 to 1.02. - -=item * - -L<ExtUtils::ParseXS> has been upgraded from version 3.24 to 3.25. - -=item * - -L<ExtUtils::Typemaps> has been upgraded from version 3.24 to 3.25. - -=item * - -L<File::Spec> has been upgraded from version 3.47 to 3.48. - -=item * - -L<Hash::Util> has been upgraded from version 0.16 to 0.17. - -Minor bug fixes and documentation fixes to Hash::Util::hash_stats() - -=item * - -L<IO> has been upgraded from version 1.31 to 1.32. - -=item * - -L<List::Util> has been upgraded from version 1.38 to 1.39. - -=item * - -L<locale> has been upgraded from version 1.03 to 1.04. - -=item * - -L<Locale::Codes> has been upgraded from version 3.30 to 3.31. - -=item * - -L<Math::BigInt> has been upgraded from version 1.9993 to 1.9995. - -Synchronize POD changes from the CPAN release. - -C<< Math::BigFloat->blog(x) >> would sometimes return blog(2*x) when -the accuracy was greater than 70 digits. - -The result of C<< Math::BigFloat->bdiv() >> in list context now -satisfies C<< x = quotient * divisor + remainder >>. - -=item * - -L<Math::BigRat> has been upgraded from version 0.2606 to 0.2608. - -Synchronize POD changes from the CPAN release. - -=item * - -L<Module::CoreList> has been upgraded from version 5.021001 to 5.021001_01. - -=item * - -L<Module::Metadata> has been upgraded from version 1.000019 to 1.000024. - -Support installations on older perls with an L<ExtUtils::MakeMaker> earlier -than 6.63_03 - -=item * - -L<NDBM_File> has been upgraded from version 1.12 to 1.13. - -=item * - -L<OS2::Process> has been upgraded from version 1.09 to 1.10. - -=item * - -L<perl5db.pl> has been upgraded from version 1.44 to 1.45. - -fork() in the debugger under C<tmux> will now create a new window for -the forked process. L<[perl -#121333]|https://rt.perl.org/Ticket/Display.html?id=121333> - -The debugger now saves the current working directory on startup and -restores it when you restart your program with C<R> or C<rerun>. L<[perl -#121509]|https://rt.perl.org/Ticket/Display.html?id=121509> - -=item * - -L<PerlIO::encoding> has been upgraded from version 0.18 to 0.19. - -No changes in behaviour. - -=item * - -L<PerlIO::mmap> has been upgraded from version 0.011 to 0.013. - -No changes in behaviour. - -=item * - -L<PerlIO::scalar> has been upgraded from version 0.18 to 0.19. - -No changes in behaviour. - -=item * - -L<PerlIO::via> has been upgraded from version 0.14 to 0.15. - -=item * - -L<Pod::Html> has been upgraded from version 1.21 to 1.22. - -=item * - -L<POSIX> has been upgraded from version 1.38_03 to 1.40. - -=item * - -L<Scalar::Util> has been upgraded from version 1.38 to 1.39. - -=item * - -L<SelfLoader> has been upgraded from version 1.21 to 1.22. - -=item * - -L<Socket> has been upgraded from version 2.013 to 2.014. - -=item * - -L<Storable> has been upgraded from version 2.49 to 2.51. - -=item * - -L<Term::ANSIColor> has been upgraded from version 4.02 to 4.03. - -=item * - -L<Test::Harness> has been upgraded from version 3.30 to 3.32. - -=item * - -L<Test::Simple> has been upgraded from version 1.001002 to 1.001003. - -=item * - -L<threads> has been upgraded from version 1.93 to 1.94. - -=item * - -L<Tie::File> has been upgraded from version 1.00 to 1.01. - -=item * - -L<Unicode::Collate> has been upgraded from version 1.04 to 1.07. - -Version 0.67's improved discontiguous contractions is invalidated by default -and is supported as a parameter 'long_contraction'. - -=item * - -L<Unicode::Normalize> has been upgraded from version 1.17 to 1.18. - -The XSUB implementation has been removed in favour of pure Perl. - -=item * - -L<Unicode::UCD> has been upgraded from version 0.57 to 0.58. - -=item * - -L<utf8> has been upgraded from version 1.13 to 1.14. - -=item * - -L<warnings> has been upgraded from version 1.23 to 1.24. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -=head3 L<perlfunc> - -=over 4 - -=item * - -C<-l> now notes that it will return false if symlinks aren't supported by the -file system. - -L<[perl #121523]|https://rt.perl.org/Ticket/Display.html?id=121523> - -=item * - -Note that C<exec LIST> and C<system LIST> may fall back to the shell on -Win32. Only C<exec PROGRAM LIST> and C<system PROGRAM LIST> indirect object -syntax will reliably avoid using the shell. - -This has also been noted in L<perlport>. - -L<[perl #122046]|https://rt.perl.org/Ticket/Display.html?id=122046> - -=back - -=head3 L<perlapi> - -=over 4 - -=item * - -Note that C<SvSetSV> doesn't do set magic. - -=item * - -C<sv_usepvn_flags> - Fix documentation to mention the use of C<NewX> instead of -C<malloc>. - -L<[perl #121869]|https://rt.perl.org/Ticket/Display.html?id=121869> - -=item * - -Clarify where C<NUL> may be embedded or is required to terminate a string. - -=item * - -Previously missing documentation due to formatting errors are now included. - -=item * - -Entries are now organized into groups rather than by file where they are found. - -=item * - -Alphabetical sorting of entries is now handled by the POD generator to make -entries easier to find when scanning. - -=back - -=head3 L<perlhacktips> - -=over 4 - -=item * - -Updated documentation for the C<test.valgrind> C<make> target. - -L<[perl #121431]|https://rt.perl.org/Ticket/Display.html?id=121431> - -=back - -=head3 L<perlre> - -=over 4 - -=item * - -The C</x> modifier has been clarified to note that comments cannot be continued -onto the next line by escaping them. - -=back - -=head3 L<Unicode::UCD> - -=over 4 - -=item * - -The documentation includes many clarifications and fixes. - -=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<In '(?...)', the '(' and '?' must be adjacent in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"In '(?...)', the '(' and '?' must be adjacent in regex; marked by <-- HERE in m/%s/"> - -(F) The two-character sequence C<"(?"> in -this context in a regular expression pattern should be an -indivisible token, with nothing intervening between the C<"("> -and the C<"?">, but you separated them. - -=item * - -L<In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"In '(*VERB...)', the '(' and '*' must be adjacent in regex; marked by <-- HERE in m/%s ... [3 chars truncated] - -(F) The two-character sequence C<"(*"> in -this context in a regular expression pattern should be an -indivisible token, with nothing intervening between the C<"("> -and the C<"*">, but you separated them. - -=item * - -L<charnames alias definitions may not contain a sequence of multiple spaces|perldiag/"charnames alias definitions may not contain a sequence of multiple spaces"> - -(F) You defined a character name which had multiple space - characters in a row. Change them to single spaces. Usually these - names are defined in the C<:alias> import argument to C<use charnames>, but - they could be defined by a translator installed into C<$^H{charnames}>. - See L<charnames/CUSTOM ALIASES>. - -=item * - -L<charnames alias definitions may not contain trailing white-space|perldiag/"charnames alias definitions may not contain trailing white-space"> - -(F) You defined a character name which ended in a space -character. Remove the trailing space(s). Usually these names are -defined in the C<:alias> import argument to C<use charnames>, but they -could be defined by a translator installed into C<$^H{charnames}>. -See L<charnames/CUSTOM ALIASES>. - -=item * - -L<Can't use a hash as a reference|perldiag/"Can't use a hash as a reference"> - -(F) You tried to use a hash as a reference, as in -C<< %foo->{"bar"} >> or C<< %$ref->{"hello"} >>. Versions of perl E<lt>= 5.6.1 -used to allow this syntax, but shouldn't have. - -=item * - -L<Can't use an array as a reference|perldiag/"Can't use an array as a reference"> - -(F) You tried to use an array as a reference, as in -C<< @foo->[23] >> or C<< @$ref->[99] >>. Versions of perl E<lt>= 5.6.1 used to -allow this syntax, but shouldn't have. - -=item * - -L<Can't use 'defined(@array)' (Maybe you should just omit the defined()?)|perldiag/"Can't use 'defined(@array)' (Maybe you should just omit the defined()?)"> - -(F) defined() is not useful on arrays because it -checks for an undefined I<scalar> value. If you want to see if the -array is empty, just use C<if (@array) { # not empty }> for example. - -=item * - -L<Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)|perldiag/"Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)"> - -(F) C<defined()> is not usually right on hashes. - -Although C<defined %hash> is false on a plain not-yet-used hash, it -becomes true in several non-obvious circumstances, including iterators, -weak references, stash names, even remaining true after C<undef %hash>. -These things make C<defined %hash> fairly useless in practice, so it now -generates a fatal error. - -If a check for non-empty is what you wanted then just put it in boolean -context (see L<perldata/Scalar values>): - - if (%hash) { - # not empty - } - -If you had C<defined %Foo::Bar::QUUX> to check whether such a package -variable exists then that's never really been reliable, and isn't -a good way to enquire about the features of a package, or whether -it's loaded, etc. - -=item * - -L<Illegal suidscript|perldiag/"Illegal suidscript"> - -(F) The script run under suidperl was somehow illegal. - -=back - -=head3 New Warnings - -=over 4 - -=item * - -L<Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Unescaped left brace in regex is deprecated, passed through in regex; marked by ... [20 chars truncated] - -(D deprecated, regexp) You used a literal C<"{"> character in a regular -expression pattern. You should change to use C<"\{"> instead, because a future -version of Perl (tentatively v5.26) will consider this to be a syntax error. If -the pattern delimiters are also braces, any matching right brace -(C<"}">) should also be escaped to avoid confusing the parser, for -example, - - qr{abc\{def\}ghi} - -=item * - -L<NO-BREAK SPACE in a charnames alias definition is deprecated|perldiag/"NO-BREAK SPACE in a charnames alias definition is deprecated"> - -(D deprecated) You defined a character name which contained a no-break -space character. Change it to a regular space. Usually these names are -defined in the C<:alias> import argument to C<use charnames>, but they -could be defined by a translator installed into C<$^H{charnames}>. See -L<charnames/CUSTOM ALIASES>. - -=item * - -L<PerlIO layer ':win32' is experimental|perldiag/"PerlIO layer ':win32' is experimental"> - -(S experimental::win32_perlio) The C<:win32> PerlIO layer is -experimental. If you want to take the risk of using this layer, -simply disable this warning: - - no warnings "experimental::win32_perlio"; - -=item * - -L<Negative repeat count does nothing|perldiag/"Negative repeat count does nothing"> - -(W numeric) You tried to execute the -L<C<x>|perlop/Multiplicative Operators> repetition operator fewer than 0 -times, which doesn't make sense. - -=item * - -L<localtime(%f) failed|perldiag/"localtime(%f) failed"> - -(W overflow) You called C<localtime> with a number that it could not handle: -too large, too small, or NaN. The returned value is C<undef>. - -=item * - -L<gmtime(%f) failed|perldiag/"gmtime(%f) failed"> - -(W overflow) You called C<gmtime> with a number that it could not handle: -too large, too small, or NaN. The returned value is C<undef>. - -=item * - -L<PerlIO layer ':win32' is experimental|perldiag/"PerlIO layer ':win32' is experimental">: - -(S experimental::win32_perlio) The C<:win32> PerlIO layer is -experimental. If you want to take the risk of using this layer, -simply disable this warning: - - no warnings "experimental::win32_perlio"; - -=item * - -L<Negative repeat count does nothing|perldiag/"Negative repeat count does nothing"> - -(W numeric) This warns when the repeat count of the -L<C<x>|perlop/Multiplicative Operators> repetition operator is -negative. - -This warning may be changed or removed if it turn out that it was -unwise to have added it. - -=back - -=head2 Changes to Existing Diagnostics - -=over 4 - -=item * - -L<Variable length lookbehind not implemented in regex mE<sol>%sE<sol>|perldiag/"Variable length lookbehind not implemented in regex m/%s/"> - -Information about Unicode behaviour has been added. - -=item * - -<> should be quotes - -This warning has been changed to -L<< <> at require-statement should be quotes|perldiag/"<> at require-statement should be quotes" >> -to make the issue more identifiable. - -=item * - -L<Unsuccessful %s on filename containing newline|perldiag/"Unsuccessful %s on filename containing newline"> - -This warning is now only produced when the newline is at the end of -the filename. - -=back - -=head1 Utility Changes - -=head2 F<x2p/> - -=over 4 - -=item * **** PATCH TRUNCATED AT 2000 LINES -- 5556 NOT SHOWN **** -- Perl5 Master Repository
