diff options
author | Ricardo Signes <rjbs@cpan.org> | 2014-02-18 08:38:44 -0500 |
---|---|---|
committer | Ricardo Signes <rjbs@cpan.org> | 2014-02-18 08:39:45 -0500 |
commit | 5a33c1159d9cfb778802024f1f7da507e22f8699 (patch) | |
tree | b638ed4e44da160f21e046d0f7dd3187374aa2c7 | |
parent | 67e5290591dd8971ce8427cb475b24cf69333c2f (diff) | |
download | perl-5a33c1159d9cfb778802024f1f7da507e22f8699.tar.gz |
re-import 5.19.8 delta form 5.19.8
-rw-r--r--[l---------] | pod/perl5198delta.pod | 504 |
1 files changed, 503 insertions, 1 deletions
diff --git a/pod/perl5198delta.pod b/pod/perl5198delta.pod index bb639d3f2b..6c6789d778 120000..100644 --- a/pod/perl5198delta.pod +++ b/pod/perl5198delta.pod @@ -1 +1,503 @@ -perldelta.pod
\ No newline at end of file +=encoding utf8 + +=head1 NAME + +perl5198delta - what is new for perl v5.19.8 + +=head1 DESCRIPTION + +This document describes differences between the 5.19.7 release and the 5.19.8 +release. + +If you are upgrading from an earlier release such as 5.19.6, first read +L<perl5197delta>, which describes differences between 5.19.6 and 5.19.7. + +=head1 Core Enhancements + +=head2 New C<\p{Unicode}> regular expression pattern property + +This is a synonym for C<\p{Any}> and matches the set of Unicode-defined +code points 0 - 0x10FFFF. + +=head1 Incompatible Changes + +=head2 C<do> can no longer be used to call subroutines + +The C<do SUBROUTINE(LIST)> form has resulted in a deprecation warning +since Perl v5.0.0, and is now a syntax error. + +=head2 C<\p{}>, C<\P{}> matching has changed for non-Unicode code +points. + +C<\p{}> and C<\P{}> are defined by Unicode only on Unicode-defined code +points (C<U+0000> through C<U+10FFFF>). Their behavior on matching +these legal Unicode code points is unchanged, but there are changes for +code points C<0x110000> and above. Previously, Perl treated the result +of matching C<\p{}> and C<\P{}> against these as C<undef>, which +translates into "false". For C<\P{}>, this was then complemented into +"true". A warning was supposed to be raised when this happened. +However, various optimizations could prevent the warning, and the +results were often counter-intuitive, with both a match and its seeming +complement being false. Now all non-Unicode code points are treated as +typical unassigned Unicode code points. This generally is more +Do-What-I-Mean. A warning is raised only if the results are arguably +different from a strict Unicode approach, and from what Perl used to do. +Code that needs to be strictly Unicode compliant can make this warning +fatal, and then Perl always raises the warning. + +Details are in L<perlunicode/Beyond Unicode code points>. + +=head2 C<\p{All}> has been expanded to match all possible code points + +The Perl-defined regular expression pattern element C<\p{All}>, unused +on CPAN, used to match just the Unicode code points; now it matches all +possible code points; that is, it is equivalent to C<qr/./s>. Thus +C<\p{All}> is no longer synonymous with C<\p{Any}>, which continues to +match just the Unicode code points, as Unicode says it should. + +=head1 Deprecations + +XXX Any deprecated features, syntax, modules etc. should be listed here. + +=head2 Module removals + +XXX Remove this section if inapplicable. + +The following modules will be removed from the core distribution in a +future release, and will at that time need to be installed from CPAN. +Distributions on CPAN which require these modules will need to list them as +prerequisites. + +The core versions of these modules will now issue C<"deprecated">-category +warnings to alert you to this fact. To silence these deprecation warnings, +install the modules in question from CPAN. + +Note that these are (with rare exceptions) fine modules that you are encouraged +to continue to use. Their disinclusion from core primarily hinges on their +necessity to bootstrapping a fully functional, CPAN-capable Perl installation, +not usually on concerns over their design. + +=over + +XXX Note that deprecated modules should be listed here even if they are listed +as an updated module in the L</Modules and Pragmata> section. + +=back + +=head1 Modules and Pragmata + +=head2 New Modules and Pragmata + +=over 4 + +=item * + +L<IO::Socket::IP> has been (tentatively) added to core at version 0.26. + +=back + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<perl5db.pl> has been upgraded from version 1.42 to 1.43 + +Fix a crash in tab completion, where available. [perl #120827] + +The debugger tests no longer open two handles to the same output file, +making them more robust. [perl #118817] + +=item * + +L<base> has been upgraded from version 2.20 to 2.21. + +The stricter load failure tests added in 2.20 now allow for +C<${^LAST_FH}> being set. + +=item * + +L<constant> has been upgraded from version 1.30 to 1.31. + +=item * + +L<DynaLoader> has been upgraded from version 1.22 to 1.24. + +=item * + +L<Encode> has been upgraded from version 2.55 to 2.57. + +UTF-8 is no longer used in the C source (which some compilers didn't like), and +some POD errors have been fixed in the documentation. + +=item * + +L<Errno> has been upgraded from version 1.20_01 to 1.20_02. + +=item * + +L<ExtUtils::CBuilder> has been upgraded from version 0.280212 to 0.280213. + +=item * + +L<ExtUtils::MakeMaker> has been upgraded from version 6.84 to 6.86. + +=item * + +L<File::Copy> has been upgraded from version 2.28 to 2.29. + +=item * + +L<Hash::Util::FieldHash> has been upgraded from version 1.13 to 1.14. + +=item * + +L<inc::latest> has been upgraded from version 0.4203 to 0.4204. +NOTE: L<inc::latest> is deprecated and may be removed from a future version of +Perl. + +=item * + +L<IO::Socket::UNIX> has been upgraded from version 1.25 to 1.26. + +Removed a warning about an ancient behaviour change and filled out the +SYNOPSIS. [perl #120981] + +=item * + +The libnet module collection has been upgraded from version 1.23 to 1.24. + +The handling of CRLF characters in L<Net::FTP> has been fixed. + +=item * + +L<List::Util> has been upgraded from version 1.35 to 1.36. + +=item * + +L<Module::Build> has been upgraded from version 0.4203 to 0.4204. +NOTE: L<Module::Build> is deprecated and may be removed from a future version +of Perl. + +=item * + +L<Module::CoreList> has been upgraded from version 3.02 to 3.04. + +=item * + +L<Module::Load> has been upgraded from version 0.24 to 0.28. + +=item * + +L<Module::Load::Conditional> has been upgraded from version 0.58 to 0.60. + +=item * + +L<Perl::OSType> has been upgraded from version 1.006 to 1.007. + +=item * + +L<PerlIO::encoding> has been upgraded from version 0.17 to 0.18. + +=item * + +L<Pod::Perldoc> has been upgraded from version 3.20 to 3.21. + +=item * + +L<POSIX> has been upgraded from version 1.37 to 1.38_01. + +=item * + +L<Scalar::Util> has been upgraded from version 1.35 to 1.36. + +=item * + +L<threads::shared> has been upgraded from version 1.45 to 1.46. + +=item * + +L<Time::Piece> has been upgraded from version 1.24 to 1.27. + +=item * + +L<Unicode::UCD> has been upgraded from version 0.55 to 0.57. + +=item * + +L<version> has been upgraded from version 0.9904 to 0.9907. + +=item * + +L<warnings> has been upgraded from version 1.20 to 1.21. + +=item * + +L<XSLoader> has been upgraded from version 0.16 to 0.17. + +=back + +=head1 Documentation + +=head2 Changes to Existing Documentation + +=over 4 + +=item * + +L<perlunicode> has been updated to reflect C<Bidi_Class> changes in Unicode +6.3. + +=back + +=head1 Diagnostics + +The following additions or changes have been made to diagnostic output, +including warnings and fatal error messages. For the complete list of +diagnostic messages, see L<perldiag>. + +=head3 New Warnings + +=over 4 + +=item * + +%s on a reference is now experimental + +The "auto-deref" feature is now experimental. + +Starting in v5.14.0, it was possible to use push, pop, keys, and other +built-in functions not only on aggregate types, but on references to +them. The feature was not deployed to its original intended +specification, and now may become redundant to postfix dereferencing. +It has always been categorized as an experimental feature, and in +v5.20.0 is carries a warning as such. + +Warnings will now be issued at compile time when these operations are +detected. + + no if $] >= 5.01908, warnings => "experimental::autoderef"; + +Consider, though, replacing the use of these features, as they may +change behavior again before becoming stable. + +=item * + +L<Matched non-Unicode code point 0x%X against Unicode property; may not be portable|perldiag/"Matched non-Unicode code point 0x%X against Unicode property; may not be portable">. +This replaces the message "Code point 0x%X is not Unicode, all \p{} +matches fail; all \P{} matches succeed". + +=back + +=head1 Utility Changes + +=head3 L<perlbug> + +=over 4 + +=item * + +F<perlbug> now has a C<-p> option for attaching patches with a bug report. + +=item * + +F<perlbug> now does input in the encoding of the current locale and +output raw. + +=back + +=head1 Configuration and Compilation + +=over 4 + +=item * + +Distinct library basenames with C<d_libname_unique>. + +When compiling perl with this option, the library files for XS modules are +named something "unique" -- for example, Hash/Util/Util.so becomes +Hash/Util/PL_Hash__Util.so. This behavior is similar to what currently +happens on VMS, and serves as groundwork for the Android port. + +=item * + +C<sysroot> option to indicate the logical root directory under gcc and clang. + +When building with this option set, both Configure and the compilers search +for all headers and libraries under this new sysroot, instead of /. + +This is a huge time saver if cross-compiling, but can also help +on native builds if your toolchain's files have non-standard locations. + +=back + +=head1 Platform Support + +=over 4 + +=item * + +Code related to supporting C<sfio> has been removed. + +Perl 5.004 added support to use the native API of C<sfio>, AT&T's Safe/Fast +I/O library. This code still built with v5.8.0, albeit with many regression +tests failing, but was inadvertently broken before the v5.8.1 release, +meaning that it has not worked on any version of Perl released since then. +In over a decade we have received no bug reports about this, hence it is clear +that no-one is using this functionality on any version of Perl that is still +supported to any degree. + +=back + +=head2 Platform-Specific Notes + +=over 4 + +=item Cygwin + +recv() on a connected handle would populate the returned sender +address with whatever happened to be in the working buffer. recv() +now uses a workaround similar to the Win32 recv() wrapper and returns +an empty string when recvfrom(2) doesn't modify the supplied address +length. [perl #118843] + +=back + +=head1 Internal Changes + +=over 4 + +=item newATTRSUB is now a macro + +The public API newATTRSUB was previously a macro to the private +function Perl_newATTRSUB. Function Perl_newATTRSUB has been removed. newATTRSUB +is now macro to a different internal function. + +=item Changes in warnings raised by C<utf8n_to_uvchr()> + +This bottom level function decodes the first character of a UTF-8 string +into a code point. It is accessible to C<XS> level code, but it's +discouraged from using it directly. There are higher level functions +that call this that should be used instead, such as +L<perlapi/utf8_to_uvchr_buf>. For completeness though, this documents +some changes to it. Now, tests for malformations are done before any +tests for other potential issues. One of those issues involves code +points so large that they have never appeared in any official standard +(the current standard has scaled back the highest acceptable code point +from earlier versions). It is possible (though not done in CPAN) to +warn and/or forbid these code points, while accepting smaller code +points that are still above the legal Unicode maximum. The warning +message for this now includes the code point if representable on the +machine. Previously it always displayed raw bytes, which is what it +still does for non-representable code points. + +=back + +=head1 Selected Bug Fixes + +=over 4 + +=item * + +In v5.19.6, C<do CORE()> was inadvertently changed from being interpreted +as do-file (i.e., C<do +CORE()>) to do-sub (i.e., C<&CORE()>). It has now +been changed back. + +=item * + +v5.19.7 inadvertently caused freed scalars to be passed to subroutines in +@INC if it contained multiple subs. This has been fixed. [perl #120657] + +=item * + +Individually-tied elements of @INC (as in C<tie $INC[0]...>) are now +handled correctly. Formerly, whether a sub returned by such a tied element +would be treated as a sub depended on whether a FETCH had occurred +previously. + +=item * + +C<getc> on a byte-sized handle after the same C<getc> operator had been +used on a utf8 handle used to treat the bytes as utf8, resulting in erratic +behavior (e.g., malformed UTF-8 warnings). + +=item * + +An initial C<{> at the beginning of a format argument line was always +interpreted as the beginning of a block prior to v5.18. In Perl v5.18, it +started being treated as an ambiguous token. The parser would guess +whether it was supposed to be an anonymous hash constructor or a block +based on the contents. Now the previous behavious has been restored. +[perl #119973] + +=item * + +In Perl v5.18 C<undef *_; goto &sub> and C<local *_; goto &sub> started +crashing. This has been fixed. [perl #119949] + +=back + +=head1 Acknowledgements + +Perl 5.19.8 represents approximately 4 weeks of development since Perl 5.19.7 +and contains approximately 38,000 lines of changes across 420 files from 26 +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.19.8: + +Abigail, Alan Hourihane, Brian Fraser, Brian Gottreu, Chris 'BinGOs' Williams, +Christian Millour, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan, +David Mitchell, Dominic Hargreaves, Father Chrysostomos, H.Merijn Brand, James +E Keenan, Jess Robinson, John Peacock, Karl Williamson, Martin McGrath, Matthew +Horsfall, Nicholas Clark, Ricardo Signes, Shlomi Fish, Steve Hay, Tobias Leich, +Tony Cook, Ævar Arnfjörð Bjarmason. + +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 |