Spaces:
Running
Running
| =encoding utf8 | |
| =head1 NAME | |
| perl5181delta - what is new for perl v5.18.1 | |
| =head1 DESCRIPTION | |
| This document describes differences between the 5.18.0 release and the 5.18.1 | |
| release. | |
| If you are upgrading from an earlier release such as 5.16.0, first read | |
| L<perl5180delta>, which describes differences between 5.16.0 and 5.18.0. | |
| =head1 Incompatible Changes | |
| There are no changes intentionally incompatible with 5.18.0 | |
| If any exist, they are bugs, and we request that you submit a | |
| report. See L</Reporting Bugs> below. | |
| =head1 Modules and Pragmata | |
| =head2 Updated Modules and Pragmata | |
| =over 4 | |
| =item * | |
| B has been upgraded from 1.42 to 1.42_01, fixing bugs related to lexical | |
| subroutines. | |
| =item * | |
| Digest::SHA has been upgraded from 5.84 to 5.84_01, fixing a crashing bug. | |
| [RT #118649] | |
| =item * | |
| Module::CoreList has been upgraded from 2.89 to 2.96. | |
| =back | |
| =head1 Platform Support | |
| =head2 Platform-Specific Notes | |
| =over 4 | |
| =item AIX | |
| A rarely-encountered configuration bug in the AIX hints file has been corrected. | |
| =item MidnightBSD | |
| After a patch to the relevant hints file, perl should now build correctly on | |
| MidnightBSD 0.4-RELEASE. | |
| =back | |
| =head1 Selected Bug Fixes | |
| =over 4 | |
| =item * | |
| Starting in v5.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 * | |
| A number of memory leaks related to the new, experimental regexp bracketed | |
| character class feature have been plugged. | |
| =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 * | |
| 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. | |
| [perl #117947] | |
| =item * | |
| Perl v5.18 inadvertently introduced a bug whereby dual-vars (i.e. | |
| variables with both string and numeric values, such as C<$!> ) where the | |
| truthness of the variable was determined by the numeric value rather than | |
| the string value. [RT #118159] | |
| =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/ | |
| [perl #118297]. | |
| =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 * | |
| The dtrace sub-entry probe now works with lexical subs, instead of | |
| crashing [perl #118305]. | |
| =item * | |
| Undefining an inlinable lexical subroutine (C<my sub foo() { 42 } undef | |
| &foo>) would result in a crash if warnings were turned on. | |
| =item * | |
| Deep recursion warnings no longer crash lexical subroutines. [RT #118521] | |
| =back | |
| =head1 Acknowledgements | |
| Perl 5.18.1 represents approximately 2 months of development since Perl 5.18.0 | |
| and contains approximately 8,400 lines of changes across 60 files from 12 | |
| 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.18.1: | |
| Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, David | |
| Mitchell, Father Chrysostomos, Karl Williamson, Lukas Mai, Nicholas Clark, | |
| Peter Martini, Ricardo Signes, Shlomi Fish, 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 [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 | |