In perl.git, the branch maint-5.20 has been updated <http://perl5.git.perl.org/perl.git/commitdiff/04dcc68d58eca8a2f846beeed00c3c493dc505bc?hp=0d2d96d8d075d2adc8d996a50fb81567b88f4eac>
- Log ----------------------------------------------------------------- commit 04dcc68d58eca8a2f846beeed00c3c493dc505bc Author: Steve Hay <[email protected]> Date: Thu Jan 15 14:20:45 2015 +0000 perldelta - Add links for rt.perl.org / rt.cpan.org tickets M pod/perldelta.pod commit 4c694a64773f078dfa45a68383567c70e633cdac Author: Steve Hay <[email protected]> Date: Thu Jan 15 14:19:00 2015 +0000 perldelta for 817b6ac6 (originally 512e01ab00) M pod/perldelta.pod commit 61135cd688f8795da86d989d0a2c599124bdd1be Author: Steve Hay <[email protected]> Date: Thu Jan 15 14:17:11 2015 +0000 perldelta - One new file in t/ M pod/perldelta.pod commit c2e233008ba6cbbd9df1d953310cad54a576725c Author: Steve Hay <[email protected]> Date: Thu Jan 15 14:16:27 2015 +0000 perldelta - Remaining documentation/diagnostics changes M pod/perldelta.pod commit 429fcd4bb9ec02306156997ea5154eccf763f780 Author: Steve Hay <[email protected]> Date: Thu Jan 15 14:14:39 2015 +0000 perldelta - Correction to perlsyn entry Manually backported from commit 8435afd1f5. M pod/perldelta.pod commit efeab263629358a88315465151cbdc91dcdc3214 Author: Steve Hay <[email protected]> Date: Thu Jan 15 14:09:28 2015 +0000 perldelta correction - IO::Socket has connected(), not isconnected() Manually backported from commit 0d90b86ec5. M pod/perldelta.pod commit 3c94eae13832a24242e60b21bca65e80c9e1c5f5 Author: Steve Hay <[email protected]> Date: Thu Jan 15 14:08:24 2015 +0000 perldelta - Remaining module upgrades M pod/perldelta.pod commit a800a5530e3a824529ea0b9f7b5dc6b127c49cd4 Author: Steve Hay <[email protected]> Date: Thu Jan 15 14:06:37 2015 +0000 perldelta - Data::Dumper and PathTools upgrades Manually backported from commit 5cfa0642e5. M pod/perldelta.pod commit 97af6d71dee5fed982a9c7c5b2482a09dcd1ebc5 Author: Steve Hay <[email protected]> Date: Thu Jan 15 14:01:21 2015 +0000 perldelta - Remove sections that never apply to maint releases M pod/perldelta.pod commit 07d7735bad3b280328bb1d5940c9b8bd3e8d3c40 Author: Karl Williamson <[email protected]> Date: Wed Jan 14 08:26:12 2015 +0000 perllocale: Nits (cherry picked from commit dbf3c4d788344c8d20eb2549c638ced519d3f0e8) M pod/perllocale.pod ----------------------------------------------------------------------- Summary of changes: pod/perldelta.pod | 236 +++++++++++++++++++++-------------------------------- pod/perllocale.pod | 19 +++-- 2 files changed, 104 insertions(+), 151 deletions(-) diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 96af1bf..5b10a5c 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -19,14 +19,6 @@ L<perl5201delta>, which describes differences between 5.20.0 and 5.20.1. XXX Any important notices here -=head1 Core Enhancements - -XXX New core language features go here. Summarize user-visible core language -enhancements. Particularly prominent performance optimisations could go -here, but most should go in the L</Performance Enhancements> section. - -[ List each enhancement as a =head2 entry ] - =head1 Security XXX Any security-related notices go here. In particular, any security @@ -37,46 +29,9 @@ L</Selected Bug Fixes> section. =head1 Incompatible Changes -XXX For a release on a stable branch, this section aspires to be: - - There are no changes intentionally incompatible with 5.XXX.XXX - If any exist, they are bugs, and we request that you submit a - report. See L</Reporting Bugs> below. - -[ List each incompatible change as a =head2 entry ] - -=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 - -=item XXX - -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 - -[ List each other deprecation as a =head2 entry ] +There are no changes intentionally incompatible with 5.20.1. If any exist, +they are bugs, and we request that you submit a report. See L</Reporting Bugs> +below. =head1 Performance Enhancements @@ -95,47 +50,59 @@ XXX =head1 Modules and Pragmata -XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> -go here. If Module::CoreList is updated, generate an initial draft of the -following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary -for important changes should then be added by hand. In an ideal world, -dual-life modules would have a F<Changes> file that could be cribbed. +=head2 Updated Modules and Pragmata -[ Within each section, list entries as a =item entry ] +=over 4 -=head2 New Modules and Pragmata +=item * -=over 4 +L<attributes> has been upgraded from version 0.22 to 0.23. + +The usage of C<memEQs> in the XS has been corrected. +L<[perl #122701]|https://rt.perl.org/Ticket/Display.html?id=122701> =item * -XXX +L<Data::Dumper> has been upgraded from version 2.151 to 2.151_01. -=back +Fixes CVE-2014-4330 by adding a configuration variable/option to limit +recursion when dumping deep data structures. -=head2 Updated Modules and Pragmata +=item * -=over 4 +L<Errno> has been upgraded from version 1.20_03 to 1.20_05. + +Warnings when building the XS on Windows with the Visual C++ compiler are now +avoided. =item * -L<attributes> has been upgraded from version 0.22 to 0.23. +L<feature> has been upgraded from version 1.36 to 1.36_01. -The usage of C<memEQs> in the XS has been corrected. -L<[perl #122701]|https://rt.perl.org/Ticket/Display.html?id=122701> +The C<postderef> feature has now been documented. This feature was actually +added in Perl 5.20.0 but was accidentally omitted from the feature +documentation until now. =item * L<IO::Socket> has been upgraded from version 1.37 to 1.38. -Document the limitations of the isconnected() method. [perl #123096] +Document the limitations of the connected() method. +L<[perl #123096]|https://rt.perl.org/Ticket/Display.html?id=123096> + +=item * + +PathTools has been upgraded from version 3.48 to 3.48_01. + +A warning from the B<gcc> compiler is now avoided when building the XS. =item * L<PerlIO::scalar> has been upgraded from version 0.18 to 0.18_01. Reading from a position well past the end of the scalar now correctly -returns end of file. [perl #123443] +returns end of file. +L<[perl #123443]|https://rt.perl.org/Ticket/Display.html?id=123443> Seeking to a negative position still fails, but no longer leaves the file position set to a negation location. @@ -143,15 +110,11 @@ file position set to a negation location. C<eof()> on a C<PerlIO::scalar> handle now properly returns true when the file position is past the 2GB mark on 32-bit systems. -=back - -=head2 Removed Modules and Pragmata - -=over 4 - =item * -XXX +L<Storable> has been upgraded from version 2.49 to 2.49_01. + +Minor grammatical change to the documentation only. =back @@ -174,55 +137,49 @@ XXX Changes which significantly change existing files in F<pod/> go here. However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> section. -=head3 L<XXX> +=head3 L<perlexperiment> =over 4 =item * -XXX Description of the change here - -=item * - -L<perlsyn>: An ambiguity in the documentation of the Ellipsis statement has -been corrected. [perl #122661] +Added reference to subroutine signatures. This feature was actually added in +Perl 5.20.0 but was accidentally omitted from the experimental feature +documentation until now. =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>. - -XXX New or changed warnings emitted by the core's C<C> code go here. Also -include any changes in L<perldiag> that reconcile it to the C<C> code. - -=head2 New Diagnostics - -XXX Newly added diagnostic messages go under here, separated into New Errors -and New Warnings - -=head3 New Errors +=head3 L<perlpolicy> =over 4 =item * -XXX L<message|perldiag/"message"> +The process whereby features may graduate from experimental status has now been +formally documented. =back -=head3 New Warnings +=head3 L<perlsyn> =over 4 =item * -XXX L<message|perldiag/"message"> +An ambiguity in the documentation of the Ellipsis statement has been corrected. +L<[perl #122661]|https://rt.perl.org/Ticket/Display.html?id=122661> =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>. + +XXX New or changed warnings emitted by the core's C<C> code go here. Also +include any changes in L<perldiag> that reconcile it to the C<C> code. + =head2 Changes to Existing Diagnostics XXX Changes (i.e. rewording) of diagnostic messages go here @@ -231,7 +188,8 @@ XXX Changes (i.e. rewording) of diagnostic messages go here =item * -XXX Describe change here +L<Missing right brace on \N{}|perldiag/"Missing right brace on \N{}"> is now +documented. This warning is not new, but was not previously documented here. =back @@ -285,7 +243,9 @@ that they represent may be covered elsewhere. =item * -XXX +The test script F<re/rt122747.t> has been added to verify that +L<perl #122747|https://rt.perl.org/Ticket/Display.html?id=122747> remains +fixed. =back @@ -296,33 +256,6 @@ XXX Any changes to platform support should be listed in the sections below. [ Within the sections, list each platform as a =item entry with specific changes as paragraphs below it. ] -=head2 New Platforms - -XXX List any platforms that this version of perl compiles on, that previous -versions did not. These will either be enabled by new files in the F<hints/> -directories, or new subdirectories and F<README> files at the top level of the -source tree. - -=over 4 - -=item XXX-some-platform - -XXX - -=back - -=head2 Discontinued Platforms - -XXX List any platforms that this version of perl no longer compiles on. - -=over 4 - -=item XXX-some-platform - -XXX - -=back - =head2 Platform-Specific Notes XXX List any changes for specific platforms. This could include configuration @@ -365,14 +298,17 @@ files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. =item * -AIX now sets the length in C<< getsockopt >> correctly. [perl #120835], -[rt.cpan.org #91183], [rt.cpan.org #85570]. +AIX now sets the length in C<< getsockopt >> correctly. +L<[perl #120835]|https://rt.perl.org/Ticket/Display.html?id=120835>, +L<[cpan #91183]|https://rt.cpan.org/Ticket/Display.html?id=91183>, +L<[cpan #85570]|https://rt.cpan.org/Ticket/Display.html?id=85570> =item * In Perl 5.20.0, C<$^N> accidentally had the internal UTF8 flag turned off if accessed from a code block within a regular expression, effectively -UTF8-encoding the value. This has been fixed. [perl #123135] +UTF8-encoding the value. This has been fixed. +L<[perl #123135]|https://rt.perl.org/Ticket/Display.html?id=123135> =item * @@ -382,13 +318,15 @@ messages) used to crash for lexical subs, but have been fixed. =item * An assertion failure when parsing C<sort> with debugging enabled has been -fixed. [perl #122771] +fixed. +L<[perl #122771]|https://rt.perl.org/Ticket/Display.html?id=122771> =item * Loading UTF8 tables during a regular expression match could cause assertion failures under debugging builds if the previous match used the very same -regular expression. [perl #122747] +regular expression. +L<[perl #122747]|https://rt.perl.org/Ticket/Display.html?id=122747> =item * @@ -396,37 +334,43 @@ Due to a mistake in the string-copying logic, copying the value of a state variable could instead steal the value and undefine the variable. This bug, introduced in 5.20, would happen mostly for long strings (1250 chars or more), but could happen for any strings under builds with copy-on-write -disabled. [perl #123029] +disabled. +L<[perl #123029]|https://rt.perl.org/Ticket/Display.html?id=123029> =item * Fixed a bug that could cause perl to execute an infite loop during -compilation. [perl #122995] +compilation. +L<[perl #122995]|https://rt.perl.org/Ticket/Display.html?id=122995> =item * On Win32, restoring in a child pseudo-process a variable that was C<local()>ed in a parent pseudo-process before the C<fork> happened caused memory corruption and a crash in the child pseudo-process (and therefore OS -process). [perl #40565] +process). +L<[perl #40565]|https://rt.perl.org/Ticket/Display.html?id=40565> =item * Tainted constants evaluated at compile time no longer cause unrelated -statements to become tainted. [perl #122669] +statements to become tainted. +L<[perl #122669]|https://rt.perl.org/Ticket/Display.html?id=122669> =item * Calling C<write> on a format with a C<^**> field could produce a panic in sv_chop() if there were insufficient arguments or if the variable -used to fill the field was empty. [perl #123245] +used to fill the field was empty. +L<[perl #123245]|https://rt.perl.org/Ticket/Display.html?id=123245> =item * In perl 5.20.0, C<sort CORE::fake> where 'fake' is anything other than a keyword started chopping of the last 6 characters and treating the result as a sort sub name. The previous behaviour of treating "CORE::fake" as a -sort sub name has been restored. [perl #123410] +sort sub name has been restored. +L<[perl #123410]|https://rt.perl.org/Ticket/Display.html?id=123410> =item * @@ -435,23 +379,30 @@ other crashes has been fixed. This occurred only in patterns compiled with C<"/i">, while taking into account the current POSIX locale (this usually means they have to be compiled within the scope of C<S<"use locale">>), and there must be a string of at least 128 consecutive bytes to match. -[perl #123539] +L<[perl #123539]|https://rt.perl.org/Ticket/Display.html?id=123539> =item * C<qr/@array(?{block})/> no longer dies with "Bizarre copy of ARRAY". -[#123344] +L<[perl #123344]|https://rt.perl.org/Ticket/Display.html?id=123344> =item * -C<gmtime> no longer crashes with not-a-number values. [perl #123495] +C<gmtime> no longer crashes with not-a-number values. +L<[perl #123495]|https://rt.perl.org/Ticket/Display.html?id=123495> =item * Certain syntax errors in substitutions, such as C<< s/${<>{})// >>, would crash, and had done so since Perl 5.10. (In some cases the crash did not start happening till 5.16.) The crash has, of course, been fixed. -[perl #123542] +L<[perl #123542]|https://rt.perl.org/Ticket/Display.html?id=123542> + +=item * + +A memory leak in some regular expressions, introduced in Perl 5.20.1, has been +fixed. +L<[perl #123198]|https://rt.perl.org/Ticket/Display.html?id=123198> =back @@ -480,7 +431,8 @@ XXX A regression has been fixed that was introduced in v5.20.0 (fixed in v5.20.1 as well as here) in which a UTF-8 encoded regular expression pattern that contains a single ASCII lowercase letter does not match its -uppercase counterpart. [perl #122655] +uppercase counterpart. +L<[perl #122655]|https://rt.perl.org/Ticket/Display.html?id=122655> =back diff --git a/pod/perllocale.pod b/pod/perllocale.pod index 46d2847..40fc3e6 100644 --- a/pod/perllocale.pod +++ b/pod/perllocale.pod @@ -716,7 +716,7 @@ alphabets, but where do "E<aacute>" and "E<aring>" belong? And while "color" follows "chocolate" in English, what about in traditional Spanish? The following collations all make sense and you may meet any of them -if you "use locale". +if you C<"use locale">. A B C D E a b c d e A a B b C c D d E e @@ -753,7 +753,7 @@ C<$equal_in_locale> will be true if the collation locale specifies a dictionary-like ordering that ignores space characters completely and which folds case. -Perl only supports single-byte locales for C<LC_COLLATE>. This means +Perl currently only supports single-byte locales for C<LC_COLLATE>. This means that a UTF-8 locale likely will just give you machine-native ordering. Use L<Unicode::Collate> for the full implementation of the Unicode Collation Algorithm. @@ -949,7 +949,7 @@ results. Here are a few possibilities: Regular expression checks for safe file names or mail addresses using C<\w> may be spoofed by an C<LC_CTYPE> locale that claims that -characters such as "E<gt>" and "|" are alphanumeric. +characters such as C<"E<gt>"> and C<"|"> are alphanumeric. =item * @@ -1406,9 +1406,10 @@ the characters in the upper half of the Latin-1 range (128 - 255) properly under C<LC_CTYPE>. To see if a character is a particular type under a locale, Perl uses the functions like C<isalnum()>. Your C library may not work for UTF-8 locales with those functions, instead -only working under the newer wide library functions like C<iswalnum()>. -However, they are treated like single-byte locales, and will have the -restrictions described below. +only working under the newer wide library functions like C<iswalnum()>, +which Perl does not use. +These multi-byte locales are treated like single-byte locales, and will +have the restrictions described below. For single-byte locales, Perl generally takes the tack to use locale rules on code points that can fit @@ -1428,7 +1429,7 @@ Unicode, C<\p{Alpha}> will never match it, regardless of locale. A similar issue occurs with C<\N{...}>. Prior to v5.20, It is therefore a bad idea to use C<\p{}> or C<\N{}> under plain C<use locale>--I<unless> you can guarantee that the -locale will be a ISO8859-1. Use POSIX character classes instead. +locale will be ISO8859-1. Use POSIX character classes instead. Another problem with this approach is that operations that cross the single byte/multiple byte boundary are not well-defined, and so are @@ -1481,8 +1482,8 @@ Pre-v5.12, it was somewhat haphazard; in v5.12 it was applied fairly consistently to regular expression matching except for bracketed character classes; in v5.14 it was extended to all regex matches; and in v5.16 to the casing operations such as C<\L> and C<uc()>. For -collation, in all releases, the system's C<strxfrm()> function is called, -and whatever it does is what you get. +collation, in all releases so far, the system's C<strxfrm()> function is +called, and whatever it does is what you get. =head1 BUGS -- Perl5 Master Repository
