X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/daca484d698401314760ddb24f2669780bf9de12..040eaf4711b0a76debb90b5ec07ce2d13b5ea096:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 31fece1..0bc47fc 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -7,6 +7,9 @@ XXX needs to be processed before release. ] perldelta - what is new for perl v5.15.0 +=for comment +This has been completed up to 571f0e8. + =head1 DESCRIPTION This document describes differences between the 5.15.0 release and @@ -16,6 +19,11 @@ If you are upgrading from an earlier release such as 5.YYY.YYY, first read L, which describes differences between 5.ZZZ.ZZZ and 5.YYY.YYY. +Some of the changes have been included in Perl 5.14.1. These are +indicated with a "(5.14.1)" marker. + +XXX compare this perldelta to 5.14.1 and double check the notation + =head1 Notice XXX Any important notices here @@ -28,6 +36,44 @@ here, but most should go in the L section. [ List each enhancement as a =head2 entry ] +=head2 C works on all keywords + +The C prefix can now be used on keywords enabled by +L, even outside the scope of C. + +=head2 C no longer requires the "switch" feature + +The C keyword has two meanings. It can introduce a C +block after a loop, or it can exit the current C block. Up till now, +the latter meaning was only valid with the "switch" feature enabled, and +was a syntax error otherwise. Since the main purpose of feature.pm is to +avoid conflicts with user-defined subroutines, there is no reason for +C to depend on it. + +=head2 C<$$> can be assigned to + +C<$$> was made read-only in Perl 5.8.0. But only sometimes: C +would make it writable again. Some CPAN modules were using C or +XS code to bypass the read-only check, so there is no reason to keep C<$$> +read-only. (This change also allowed a bug to be fixed while maintaining +backward compatibility.) + +=head2 Features inside the debugger + +The current Perl's feature bundle is now enabled for commands entered in +the interactive debugger. + +=head2 C<\N{...}> can now have Unicode loose name matching + +This is described in the C item in +L below. + +=head2 Breakpoints with file names + +The debugger's "b" command for setting breakpoints now allows a line number +to be prefixed with a file name. See +L. + =head1 Security XXX Any security-related notices go here. In particular, any security @@ -40,6 +86,38 @@ L section. [ List each incompatible change as a =head2 entry ] +=head2 Tying scalars that hold typeglobs + +Attempting to tie a scalar after a typeglob was assigned to it would +instead tie the handle in the typeglob's IO slot. This meant that it was +impossible to tie the scalar itself. Similar problems affected C and +C: C would return false on a tied scalar if the last +thing returned was a typeglob, and C on such a tied scalar +would do nothing. + +We fixed this problem before Perl 5.14.0, but it caused problems with some +CPAN modules, so we put in a deprecation cycle instead. + +Now the deprecation has been removed and this bug has been fixed. So +C will always tie the scalar, not the handle it holds. To tie +the handle, use C (with an explicit asterisk). The same +applies to C and C. + +=head2 IPC::Open3 no longer provides C, C +and C + +All three functions were private, undocumented and unexported. They do +not appear to be used by any code on CPAN. Two have been inlined and one +deleted entirely. + +=head2 C<$$> no longer caches PID + +Previously, if one embeds Perl or uses XS and calls fork(3) from C, Perls +notion of C<$$> could go out of sync with what getpid() returns. By always +fetching the value of C<$$> via getpid(), this potential bug is eliminated. +Code that depends on the caching behavior will break. As describe in L, C<$$> is now writeable, but it will be reset during a fork. + =head1 Deprecations XXX Any deprecated features, syntax, modules etc. should be listed here. @@ -91,10 +169,202 @@ XXX =item * +L has been updated from version 1.21 to 1.22. + +=item * + +L has been upgraded from version 0.48 to version 0.52 + +Includes a fix for FreeBSD to only use C if it is located in +C, as FreeBSD 9.0 will ship with a limited C in +C. + +=item * + +L updated from version 0.88 to 0.91 + +=item * + L has been upgraded from version 1.29 to version 1.30. =item * +L has been upgraded from version 1.03 to 1.05. + +It addresses two regressions in Perl 5.14.0: + +=over + +=item * + +Deparsing of the C operator and its diamond (C<< <> >>) form now +works again [RT #90898] (5.14.1). + +=item * + +The presence of subroutines named C<::::> or C<::::::> no longer causes +B::Deparse to hang (5.14.1). + +=back + +Plus a few other bugs: + +=over + +=item * + +Deparsing of handle C, C and C with a scalar argument +now works [RT #91008]. + +=item * + +C followed by a complex expression (as opposed to a simple scalar +variable) now works. + +=item * + +It now puts C in front of overridable core keywords if they +conflict with user-defined subroutines. + +=item * + +Deparsing assignment to an lvalue method specified as a variable +(C<< $obj->$method = ... >>) used not to work [RT #62498]. + +=back + +=item * + +L has been upgraded from version 3.52 to version 3.54 + +The DELETE HTTP verb is now supported. + +=item * + +L has been upgraded from version 2.033 to version 2.035 + +=item * + +L has been upgraded from version 2.033 to version 2.035 + +=item * + +L has been upgraded from version 2.033 to version 2.035 + +=item * + +L has been upgraded from version 2.110440 to version 2.110930 + +=item * + +L has been upgraded from version 0.9103 to version 0.9105 + +Now understands specifying modules to install in the format 'Module/Type.pm' + +=item * + +L has been upgraded from version 0.54 to version 0.56 + +=item * + +L has been upgraded from version 2.128 to 2.131. + +=item * + +L has been upgraded from version 1.821 to version 1.822 + +Warnings are now in sync with perl's + +=item * + +L has been upgraded from version 5.61 to version 5.62 + +No longer loads L as this was unnecessary. + +=item * + +L has been upgraded from version 1.07 to 1.08. + +Its C function no longer refuses to write to copy-on-write +scalars. + +=item * + +L has been upgraded from version 2.42 to version 2.43 + +Missing aliases added, a deep recursion error fixed and various +documentation updates. + +=item * + +L updated from version 0.280203 to 0.280204. The new version +append CFLAGS and LDFLAGS to their Config.pm counterparts. + +=item * + +L has been upgraded from version 1.08 to version 1.39 + +C fixed to work with v5.14.0 + +=item * + +L updated from version 0.85 to 0.87 + +=item * + +L updated from version 1.50 to 1.51. + +It no longer returns a wrong result if a script of the same name as the +current one exists in the path and is executable. + +=item * + +L has been upgraded from version 2.27105 to version 2.27200 + +Fixed C decoding string more correctly. + +=item * + +L has been upgraded from version 0.35_01 to version 0.36. + +Fix broken URLs for RFCs. + +=item * + +L has been upgraded from version 1.10 to version 1.11. + +=over 4 + +=item * + +Fixes a bug which prevented use of open3 on Windows when *STDIN, *STDOUT or +*STDERR had been localized. + +=item * + +Fixes a bug which prevented duplicating numeric file descriptors on Windows. + +=back + +=item * + +L has been upgraded from version 1.993 to 1.994. + +The C method has been corrected to return a normalised Perl number +(the result of C<0 + $thing>), instead of a string [rt.cpan.org #66732]. + +=item * + +L has been upgraded from version 1.994 to 1.995. + +It provides a new C method that complements the C method. + +It fixes the internal C function's handling of "foreign objects" +so they are converted to the appropriate class (Math::BigInt or +Math::BigFloat). + +=item * + L has been upgraded from version 1.56 to version 1.57. Correct copy constructor usage. @@ -103,8 +373,64 @@ More stable C algorithm. =item * +L has been upgraded from version 2.49 to 2.50. + +Updated for v5.12.4. + +=item * + +L has been updated to remove two broken URLs in the documentation. + +=item * + +L has been upgraded from version 0.38 to version 0.42 + +Eliminated use of C on array elements which has been deprecated. + +=item * + +L has been upgraded from version 1.10 to version 1.11. + +The XS code is now compiled with C, which will aid +performance under ithreads. + +=item * + +L has been upgraded from version 0.14 to 0.15 + +=item * + +L has been upgraded from version 0.11 to 0.12. + +It fixes a problem with C<< open my $fh, ">", \$scalar >> not working if +C<$scalar> is a copy-on-write scalar. + +It also fixes a hang that occurs with C or C<< <$fh> >> if a +typeglob has been assigned to $scalar [RT #92258]. + +=item * + +XXX If any changes are made, the version will need to be bumped again. +What blead has is currently (as of a9d1f3db, 7th of June) identical to +5.14.1's version. + +L has been upgraded from version 3.15_03 to 3.15_04. + +It corrects the search paths on VMS [RT #90640]. + +=item * + L has been upgraded from version 2.27 to version 2.28. +It no longer turns copy-on-write scalars into read-only scalars when +freezing and thawing. + +=item * + +L has been upgraded from version 0.27 to version 0.29 + +Large number of Request Tickets resolved. + =item * L has been upgraded from version 1.9721_01 to version 1.9722. @@ -113,17 +439,51 @@ Portability fix, and avoiding some compiler warnings. =item * +L has been upgraded from version 0.73 to version 0.76 + +Updated to CLDR 1.9.1 + +=item * + +L has been upgraded from version 1.10 to version 1.12 + +Fixes for the removal of C from core. + +=item * + +L has been upgraded from version 0.13 to version 0.15 + +Integrated changes from bleadperl + +=item * + +L can now be invoked with a new option, C<:loose>, +which is like the existing C<:full> option, but enables Unicode loose +name matching. This means that instead of +having to get the name of the code point or sequence you want exactly right, +you can fudge things somewhat. This is especially useful when +you don't remember if the official Unicode name uses hyphens or +blanks between words. Details are in L. + XXX =back =head2 Removed Modules and Pragmata -=over 4 +As promised in Perl 5.14.0's release notes, the following modules have +been removed from the core distribution, and if needed should be installed +from CPAN instead. + +=over =item * -XXX +C has been removed from the Perl core. Prior version was 20110228.00. + +=item * + +C has been removed from the Perl core. Prior version was 0.72_01. =back @@ -146,13 +506,152 @@ XXX Changes which significantly change existing files in F go here. However, any changes to F should go in the L section. -=head3 L +=head3 L + +=over + +=item * + +Added portability caveats related to using kill on forked process. + +=back + +=head3 L + +=over + +=item * + +C, C and C are now listed in L (5.14.1). + +=item * + +The examples for the C