Spaces:
Sleeping
Sleeping
=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 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 | |