X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/25fdf527591b902c99f699bb9d51d4f6ce49a6fc..b5adc3e5c5c4fa9a0d3b230a000a7644b71a169f:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 5ae7276..e64cc61 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -1,10 +1,3 @@ -=for todo - -b51c3e77db (craigb) - Reduce excessive stat calls in glob on VMS -869747506f/00051dd553 (merijn) - gcc 4.9 by default does some optimizations that break perl / -fwrapv is broken prior to gcc-4.3 (#121505) -fc6f6f37f8 (craigb) - Make perlbug encoding-agnostic in handling prepared reports. -7e6b9e3a66 (craigb) - Attempt to satisfy CRLF expectations in perlbug on Windows. - =encoding utf8 =head1 NAME @@ -12,15 +5,15 @@ fc6f6f37f8 (craigb) - Make perlbug encoding-agnostic in handling prepared report [ this is a template for a new perldelta file. Any text flagged as XXX needs to be processed before release. ] -perldelta - what is new for perl v5.19.11 +perldelta - what is new for perl v5.21.1 =head1 DESCRIPTION -This document describes differences between the 5.19.10 release and the 5.19.11 +This document describes differences between the 5.21.0 release and the 5.21.1 release. -If you are upgrading from an earlier release such as 5.19.9, first read -L, which describes differences between 5.19.9 and 5.19.10. +If you are upgrading from an earlier release such as 5.20.0, first read +L, which describes differences between 5.20.0 and 5.21.0. =head1 Notice @@ -34,6 +27,20 @@ here, but most should go in the L section. [ List each enhancement as a =head2 entry ] +=head2 C now ignores any Unicode pattern white space + +The C regular expression modifier allows the pattern to contain +white space and comments, both of which are ignored, for improved +readability. Until now, not all the white space characters that Unicode +designates for this purpose were handled. The additional ones now +recognized are +U+0085 NEXT LINE, +U+200E LEFT-TO-RIGHT MARK, +U+200F RIGHT-TO-LEFT MARK, +U+2028 LINE SEPARATOR, +and +U+2029 PARAGRAPH SEPARATOR. + =head1 Security XXX Any security-related notices go here. In particular, any security @@ -50,12 +57,50 @@ XXX For a release on a stable branch, this section aspires to be: If any exist, they are bugs, and we request that you submit a report. See L below. -[ List each incompatible change as a =head2 entry ] +=head2 In double-quotish C<\cI>, I must now be a printable ASCII character + +In prior releases, failure to do this raised a deprecation warning. + +=head2 Splitting the tokens C<(?> and C<(*> in regular expressions is +now a fatal compilation error. + +These had been deprecated since v5.18. + +=head2 5 additional characters are treated as white space under C in +regex patterns (unless escaped) + +The use of these characters with C outside bracketed character +classes and when not preceeded by a backslash has raised a deprecation +warning since v5.18. Now they will be ignored. See LfooEx> +for the list of the five characters. + +=head2 Comment lines within S> now are ended only by a C<\n> + +S> is an experimental feature, introduced in v5.18. It operates +as if C is always enabled. But there was a difference, comment +lines (following a C<#> character) were terminated by anything matching +C<\R> which includes all vertical whitespace, such as form feeds. For +consistency, this is now changed to match what terminates comment lines +outside S>, namely a C<\n> (even if escaped), which is the +same as what terminates a heredoc string and formats. + +=head2 Omitting % and @ on hash and array names is no longer permitted + +Really old Perl let you omit the @ on array names and the % on hash +names in some spots. This has issued a deprecation warning since Perl +5.0, and is no longer permitted. =head1 Deprecations XXX Any deprecated features, syntax, modules etc. should be listed here. +=head2 Using a NO-BREAK space in a character alias for C<\N{...}> is now +deprecated + +This non-graphic character is essentially indistinguishable from a +regular space, and so should not be allowed. See +L. + =head2 Module removals XXX Remove this section if inapplicable. @@ -126,60 +171,98 @@ XXX =item * -L has been upgraded from version 1.33 to 1.3301. +L has been upgraded from version 1.3301 to 1.34. + +Carp::Heavy now ignores version mismatches with Carp if Carp is newer +than 1.12, since Carp::Heavy's guts were merged into Carp at that +point. +L<[perl #121574]|https://rt.perl.org/Ticket/Display.html?id=121574> + +=item * + +L has been upgraded from version 2.60_01 to 2.62. -No changes have been made to the installed code other than the version bump to -keep in sync with the latest CPAN release. +B now has better error handling when the encoding name is nonexistent, +and a build breakage when upgrading L in perl-5.8.2 and earlier has +been fixed. + +=item * + +The libnet collection of modules has been upgraded from version 1.25 to 1.27. + +There are only whitespace changes to the installed files. =item * -L has been upgraded from version 2.04-TRIAL to 2.05-TRIAL. +The Locale-Codes collection of modules has been upgraded from vesion 3.30 to 3.31. -TODO +Fixed a bug in the scripts used to extract data from spreadsheets that +prevented the SHP currency code from being found. +L<[cpan #94229]|https://rt.cpan.org/Ticket/Display.html?id=94229> =item * -L has been upgraded from version 1.43 to 1.44. +L has been upgraded from version 1.9993 to 1.9994. + +Synchronize POD changes from the CPAN release. -The debugger now correctly restores its input and output filehandles after -using the pager command. -[L] +C<< Math::BigFloat->blog(x) >> would sometimes return blog(2*x) when +the accuracy was greater than 70 digits. + +The result of C<< Math::BigFloat->bdiv() >> in list context now +satisfies C<< x = quotient * divisor + remainder >>. =item * -L has been upgraded from version 1.63 to 1.64. +L has been upgraded from version 0.2606 to 0.2607. + +Synchronize POD changes from the CPAN release. + +=item * -When upgrading an already-installed file, L could mess up -the permissions of files if the old versions of files were hard or symbolic -links. This has now been fixed. -[L] +L has been upgraded from version 1.000022 to 1.000024. -The MM_TEST_ROOT feature has been removed from the tests. +Support installations on older perls with an L earlier +than 6.63_03 =item * -L has been upgraded from version 6.92 to 6.94. +L has been upgraded from version 1.44 to 1.45. -A regression in MM_Unix.pm has been resolved. -[L<#96|https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/96>] +=item * + +A mismatch between the documentation and the code in utf8::downgrade() +was fixed in favour of the documentation. The optional second argument +is now correctly treated as a perl boolean (true/false semantics) and +not as an integer. =item * -L has been upgraded from version 3.09 to 3.10. +fork() in the debugger under C will now create a new window for +the forked process. L<[perl +#121333]|https://rt.perl.org/Ticket/Display.html?id=121333> + +The debugger now saves the current working directory on startup and +restores it when you restart your program with C or . L<[perl +#121509]|https://rt.perl.org/Ticket/Display.html?id=121509> -The list of Perl versions covered has been updated. +L has been upgraded from version 1.04 to 1.07. + +Version 0.67's improved discontiguous contractions is invalidated by default +and is supported as a parameter 'long_contraction'. =item * -L has been upgraded from version 1.08 to 1.09. +L has been upgraded from version 1.17 to 1.18. -The warning about the use of the C<:utf8> layer has been made more prominent. +The XSUB implementation has been removed in favour of pure Perl. =item * -L has been upgraded from version 2.48 to 2.49. +L has been upgraded from version 0.16 to 0.17. + +Minor bug fixes and documentation fixes to Hash::Util::hash_stats() -Recognition of tied SVs has been tightened up. =back @@ -264,9 +347,10 @@ XXX Changes (i.e. rewording) of diagnostic messages go here =item * -The now fatal error message C has been -reworded as C to emphasize -that in C<\cI>, I must be a I ASCII character. +L + +This warning is now only produced when the newline is at the end of +the filename. =back @@ -275,11 +359,11 @@ that in C<\cI>, I must be a I ASCII character. XXX Changes to installed programs such as F and F go here. Most of these are built within the directories F and F. -[ List utility changes as a =head3 entry for each utility and =item +[ List utility changes as a =head2 entry for each utility and =item entries for each change Use L with program names to get proper documentation linking. ] -=head3 L +=head2 L =over 4 @@ -367,45 +451,9 @@ L section. =over 4 -=item Win32 - -The time taken to build perl on Windows has been reduced quite significantly -(time savings in the region of 30-40% are typically seen) by reducing the -number of, usually failing, I/O calls for each L (for -miniperl only). -[L] - -About 15 minutes of idle sleeping was removed from running C due to -a bug in which the timeout monitor used for tests could not be cancelled once -the test completes, and the full timeout period elapsed before running the next -test file. -[L] - -On a perl built without psuedo-fork (psuedo-fork builds were not affected by -this bug), killing a process tree with L and a negative signal -resulted in kill() inverting the returned value. For example, if kill() killed -1 process tree PID then it returned 0 instead of 1, and if kill() was passed 2 -invalid PIDs then it returned 2 instead of 0. This has probably been the case -since the process tree kill feature was implemented on Win32. It has now been -corrected to follow the documented behaviour. -[L] - -When building a 64-bit perl, an uninitialized memory read in B, -used during the build process, could lead to a 4GB B being created. -This has now been fixed. (Note that B itself was unaffected, but -obviously B would have been completely broken.) -[L] - -Perl can now be built with B version 4.8.1 from L. -This was previously broken due to an incorrect definition of C in -one of perl's source files. Earlier B versions were also affected when -using version 4 of the w32api package. Versions of B available from -L were not affected. -[L] - -The test harness now has no failures when perl is built on a FAT drive with the -Windows OS on an NTFS drive. -[L] +=item XXX-some-platform + +XXX =back @@ -415,18 +463,11 @@ XXX Changes which affect the interface available to C code go here. Other significant internal changes for future core maintainers should be noted as well. -[ List each change as a =item entry ] - =over 4 =item * -C is now initialized to the C locale. This affects only -C modules, as the Perl core usages always make sure this locale -category is correctly set for their purposes. C code remains -vulnerable to other code changing this category's locale. Further fixes -are planned in v5.22 to reduce these long-standing vulnerabilities. -[L] +The deprecated variable C has been removed. =back @@ -441,45 +482,15 @@ files in F and F are best summarized in L. =item * -A regression involving the string value of C<$!> introduced in v5.19.2 -has been reverted for v5.20. -[L] -This re-breaks the bugs it fixed, -L, so -an alternative fix is planned for v5.22 - -=item * - -A regression was introduced in v5.19.10 that under some circumstances -caused C matches to falsely fail. Now fixed. - -=item * - -A regression was introduced in the fix for -[L] that -prevented C (with a trailing slash) from finding .pmc files. This has -been fixed. -[L]. - -=item * - -Fixed a bug detected by valgrind where sv_pvn_force_flags() would -check SvPVX() even when the SV hadn't been upgraded to a C. -SvPVX() is only initialized when the SV is upgraded to a C or -higher. [L] +index() and rindex() no longer crash when used on strings over 2GB in +size. +L<[perl #121562]|https://rt.perl.org/Ticket/Display.html?id=121562>. =item * -Fixed a bug in caller() introduced in 5.18.0. In some circumstances -when caller() was called on an C stack frame it would -attempt to allocate the limit of the address space minus one, which -would croak with an out of memory error, which would be caught by the -eval. A change in 5.19.1 which increased allocation sizes to allow -COW to operate more often rounded that allocation size up and wrapped -to a zero allocation size, resulting in a crash when the source string -was copied over. [L]. +A small previously intentional memory leak in PERL_SYS_INIT/PERL_SYS_INIT3 on +Win32 builds was fixed. This might affect embedders who repeatedly create and +destroy perl engines within the same process. =back @@ -519,7 +530,7 @@ here. XXX Generate this with: - perl Porting/acknowledgements.pl v5.19.10..HEAD + perl Porting/acknowledgements.pl v5.21.1..HEAD =head1 Reporting Bugs