Initial Commit
This commit is contained in:
217
database/perl/lib/pods/perl5181delta.pod
Normal file
217
database/perl/lib/pods/perl5181delta.pod
Normal file
@@ -0,0 +1,217 @@
|
||||
=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
|
||||
Reference in New Issue
Block a user