Initial Commit
This commit is contained in:
312
database/perl/lib/pods/perl5203delta.pod
Normal file
312
database/perl/lib/pods/perl5203delta.pod
Normal file
@@ -0,0 +1,312 @@
|
||||
=encoding utf8
|
||||
|
||||
=head1 NAME
|
||||
|
||||
perl5203delta - what is new for perl v5.20.3
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This document describes differences between the 5.20.2 release and the 5.20.3
|
||||
release.
|
||||
|
||||
If you are upgrading from an earlier release such as 5.20.1, first read
|
||||
L<perl5202delta>, which describes differences between 5.20.1 and 5.20.2.
|
||||
|
||||
=head1 Incompatible Changes
|
||||
|
||||
There are no changes intentionally incompatible with 5.20.2. 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 *
|
||||
|
||||
L<Errno> has been upgraded from version 1.20_05 to 1.20_06.
|
||||
|
||||
Add B<-P> to the pre-processor command-line on GCC 5. GCC added extra line
|
||||
directives, breaking parsing of error code definitions.
|
||||
L<[perl #123784]|https://rt.perl.org/Ticket/Display.html?id=123784>
|
||||
|
||||
=item *
|
||||
|
||||
L<Module::CoreList> has been upgraded from version 5.20150214 to 5.20150822.
|
||||
|
||||
Updated to cover the latest releases of Perl.
|
||||
|
||||
=item *
|
||||
|
||||
L<perl5db.pl> has been upgraded from 1.44 to 1.44_01.
|
||||
|
||||
The debugger would cause an assertion failure.
|
||||
L<[perl #124127]|https://rt.perl.org/Ticket/Display.html?id=124127>
|
||||
|
||||
=back
|
||||
|
||||
=head1 Documentation
|
||||
|
||||
=head2 Changes to Existing Documentation
|
||||
|
||||
=head3 L<perlfunc>
|
||||
|
||||
=over 4
|
||||
|
||||
=item *
|
||||
|
||||
Mention that L<C<study()>|perlfunc/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<perlpodspec>
|
||||
|
||||
=over 4
|
||||
|
||||
=item *
|
||||
|
||||
The specification of the POD language is changing so that the default encoding
|
||||
of PODs that aren't in UTF-8 (unless otherwise indicated) is CP1252 instead of
|
||||
ISO-8859-1 (Latin1).
|
||||
|
||||
=back
|
||||
|
||||
=head1 Utility Changes
|
||||
|
||||
=head2 L<h2ph>
|
||||
|
||||
=over 4
|
||||
|
||||
=item *
|
||||
|
||||
B<h2ph> now handles hexadecimal constants in the compiler's predefined macro
|
||||
definitions, as visible in C<$Config{cppsymbols}>.
|
||||
L<[perl #123784]|https://rt.perl.org/Ticket/Display.html?id=123784>
|
||||
|
||||
=back
|
||||
|
||||
=head1 Testing
|
||||
|
||||
=over 4
|
||||
|
||||
=item *
|
||||
|
||||
F<t/perf/taint.t> has been added to see if optimisations with taint issues are
|
||||
keeping things fast.
|
||||
|
||||
=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
|
||||
|
||||
=over 4
|
||||
|
||||
=item *
|
||||
|
||||
Previously, when compiling with a 64-bit Visual C++, every Perl XS module
|
||||
(including CPAN ones) and Perl aware C file would unconditionally have around a
|
||||
dozen warnings from F<hv_func.h>. These warnings have been silenced. GCC (all
|
||||
bitness) and 32-bit Visual C++ were not affected.
|
||||
|
||||
=item *
|
||||
|
||||
B<miniperl.exe> is now built with B<-fno-strict-aliasing>, allowing 64-bit
|
||||
builds to complete with GCC 4.8.
|
||||
L<[perl #123976]|https://rt.perl.org/Ticket/Display.html?id=123976>
|
||||
|
||||
=back
|
||||
|
||||
=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 *
|
||||
|
||||
The original visible value of L<C<$E<sol>>|perlvar/$E<sol>> is now preserved
|
||||
when it is set to an invalid value. Previously if you set C<$/> to a reference
|
||||
to an array, for example, perl would produce a runtime error and not set PL_rs,
|
||||
but Perl code that checked C<$/> would see the array reference.
|
||||
L<[perl #123218]|https://rt.perl.org/Ticket/Display.html?id=123218>
|
||||
|
||||
=item *
|
||||
|
||||
Perl 5.14.0 introduced a bug whereby C<eval { LABEL: }> would crash. This has
|
||||
been fixed.
|
||||
L<[perl #123652]|https://rt.perl.org/Ticket/Display.html?id=123652>
|
||||
|
||||
=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 *
|
||||
|
||||
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>
|
||||
|
||||
=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 *
|
||||
|
||||
A subtle bug introduced in Perl 5.20.2 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 *
|
||||
|
||||
Some patterns starting with C</.*..../> matched against long strings have been
|
||||
slow since Perl 5.8, and some of the form C</.*..../i> have been slow since
|
||||
Perl 5.18. They are now all fast again.
|
||||
L<[perl #123743]|https://rt.perl.org/Ticket/Display.html?id=123743>
|
||||
|
||||
=item *
|
||||
|
||||
Warning fatality is now ignored when rewinding the stack. This prevents
|
||||
infinite recursion when the now fatal error also causes rewinding of the stack.
|
||||
L<[perl #123398]|https://rt.perl.org/Ticket/Display.html?id=123398>
|
||||
|
||||
=item *
|
||||
|
||||
C<setpgrp($nonzero)> (with one argument) was accidentally changed in Perl 5.16
|
||||
to mean C<setpgrp(0)>. This has been fixed.
|
||||
|
||||
=item *
|
||||
|
||||
A crash with C<< %::=(); J->${\"::"} >> has been fixed.
|
||||
L<[perl #125541]|https://rt.perl.org/Ticket/Display.html?id=125541>
|
||||
|
||||
=item *
|
||||
|
||||
Regular expression possessive quantifier Perl 5.20 regression now fixed.
|
||||
C<qr/>I<PAT>C<{>I<min>,I<max>C<}+>C</> is supposed to behave identically to
|
||||
C<qr/(?E<gt>>I<PAT>C<{>I<min>,I<max>C<})/>. Since Perl 5.20, this didn't work
|
||||
if I<min> and I<max> were equal.
|
||||
L<[perl #125825]|https://rt.perl.org/Ticket/Display.html?id=125825>
|
||||
|
||||
=item *
|
||||
|
||||
Code like C</$a[/> used to read the next line of input and treat it as though
|
||||
it came immediately after the opening bracket. Some invalid code consequently
|
||||
would parse and run, but some code caused crashes, so this is now disallowed.
|
||||
L<[perl #123712]|https://rt.perl.org/Ticket/Display.html?id=123712>
|
||||
|
||||
=back
|
||||
|
||||
=head1 Acknowledgements
|
||||
|
||||
Perl 5.20.3 represents approximately 7 months of development since Perl 5.20.2
|
||||
and contains approximately 3,200 lines of changes across 99 files from 26
|
||||
authors.
|
||||
|
||||
Excluding auto-generated files, documentation and release tools, there were
|
||||
approximately 1,500 lines of changes to 43 .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.20.3:
|
||||
|
||||
Alex Vandiver, Andy Dougherty, Aristotle Pagaltzis, Chris 'BinGOs' Williams,
|
||||
Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan, David Mitchell,
|
||||
Father Chrysostomos, H.Merijn Brand, James E Keenan, James McCoy, Jarkko
|
||||
Hietaniemi, Karen Etheridge, Karl Williamson, kmx, Lajos Veres, Lukas Mai,
|
||||
Matthew Horsfall, Petr Písař, Randy Stauner, Ricardo Signes, Sawyer X, Steve
|
||||
Hay, Tony Cook, Yves Orton.
|
||||
|
||||
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 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