218 lines
6.4 KiB
Plaintext
218 lines
6.4 KiB
Plaintext
=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
|