X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/3670aff5d822f9dfd3e8ec20a4d733566ec1132d..098b07d5cb1d6aa13b81a0f43ea5e151829ad26c:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index dfb3a90..722abf4 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -1,23 +1,19 @@ =encoding utf8 -=for comment -Stuff that needs to be done still: -e82485c davem [MERGE] refactor pp_match(), pp_subst(), regexec() - =head1 NAME [ 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.3 +perldelta - what is new for perl v5.19.4 =head1 DESCRIPTION -This document describes differences between the 5.19.2 release and the 5.19.3 +This document describes differences between the 5.19.3 release and the 5.19.4 release. -If you are upgrading from an earlier release such as 5.19.1, first read -L, which describes differences between 5.19.1 and 5.19.2. +If you are upgrading from an earlier release such as 5.19.2, first read +L, which describes differences between 5.19.2 and 5.19.3. =head1 Notice @@ -31,14 +27,6 @@ here, but most should go in the L section. [ List each enhancement as a =head2 entry ] -=head2 B<-F> now implies B<-a> and B<-a> implies B<-n> - -Previously B<-F> without B<-a> was a no-op, and B<-a> without B<-n> or -B<-p> was a no-op, with this change, if you supply B<-F> then both -B<-a> and B<-n> are implied and if you supply B<-a> then B<-n> is implied. - -You can still use B<-p> for its extra behaviour. [perl #116190] - =head1 Security XXX Any security-related notices go here. In particular, any security @@ -90,16 +78,12 @@ as an updated module in the L section. =head1 Performance Enhancements -XXX Changes which enhance performance without changing behaviour go here. -There may well be none in a stable release. - -[ List each enhancement as a =item entry ] - =over 4 =item * -XXX +The trie performance enhancement for regular expressions has now been +extended to those compiled under C. =back @@ -131,105 +115,161 @@ XXX =item * -L has been upgraded from version 1.44 to 1.45. +L has been upgraded from version 1.45 to 1.46. + +The fix for [perl #118525] introduced a regression in the behaviour of +C, changing the return value from a C object on +a C C to C. C again returns a +C object in this case. [perl #119351] + +=item * + +L has been upgraded from version 0.98 to 0.99. + +The handling of the C operator, broken since Perl 5.17.6, has been fixed. + +=item * + +L has been upgraded from version 1.31 to 1.32. + +=over 4 + +=item * + +In stack traces, subroutine arguments that are strings are now quoted +in a consistent manner, regardless of what characters they contain and +how they're internally represented. -Calling the C method on C objects created from a lexical -sub would return nonsense, possibly crashing perl. C now returns -C for lexical subs. [perl #118525] +=item * -Added the C method to return the name of a lexical sub. +C now won't vivify the C glob or subroutine or the +C stash. =item * -L has been upgraded from version 0.35 to 0.36. +C now avoids some unwanted Unicode warnings on older Perls. This +doesn't affect behaviour with current Perl. -L wasn't correctly updating an internal variable when Cd -with a C option. +=item * -L has been upgraded from 1.30 to 1.31 +C detects version mismatch with C, to give a good +error message if a current (stub) C gets loaded by an old +C that expects C to provide subroutines. -L now handles objects with string overloads. It also allows objects -to specify how they appear in the stack dump with a C method, -and also allows the user to specify their own formatter for objects without -C as well as other references. [perl #92446] +=back =item * -L has been upgraded from 2.061 to 2.062. +L has been upgraded from version 2.148 to 2.149. + +This upgrade is part of a larger change to make the array interface 64-bit safe +by using SSize_t instead of I32 for array indices. =item * -L has been upgraded from 2.061 to 2.062. +L has been upgraded from version 1.13 to 1.14. + +This upgrade is part of a larger change to preserve referential identity when +passing C to a subroutine by using NULL rather than &PL_sv_undef for +nonexistent array elements. =item * -L has been upgraded from version 0.18 to 0.19. +L has been upgraded from version 1.19 to 1.20. + +The documentation now makes it clear, as has always been the case, that +C is only called automatically to unload all loaded shared +objects if the perl interpreter was built with the C macro +DL_UNLOAD_ALL_AT_EXIT defined. =item * -L has been upgraded from version 2.147 to 2.148. +L has been upgraded from version 6.72 to 6.74. -The compatbility of the XS implementation with the pure perl version -under C has been improved. [perl #118933] +Numerous updates and bug fixes are incorporated. See the F file for +full details. =item * -L has been upgraded from version 1.12 to 1.13. +L has been upgraded from version 1.20 to 1.21. -The C and C functions have been -removed and C will now work on non-scalars. [perl #117793] +C now warns in the context of C if +the supplied pattern has an internal NUL (C<"\0">) character. =item * -L has been upgraded from version 5.68 to 5.69. +L has been upgraded from 1.15 to 1.16. -L would ignore custom C<$SIG{__WARN__}> handlers in -C. [perl #39739] +This upgrade is part of a larger change to preserve referential identity when +passing C to a subroutine by using NULL rather than &PL_sv_undef for +nonexistent array elements. =item * -The IO-Compress module collection has been upgraded from 2.061 to 2.062. +L has been upgraded from version 1.9992 to 1.9993. + +Cleaned up the L and L documentation to +be more consistent with other perl documentation. [perl #86686] + +Added a bint() method for rounding towards zero. [perl #85296] =item * -L has been upgraded from version 0.82 to 0.84. +L has been upgraded from version 0.30 to 0.31. -C has various fixes/improvements, L is only used where -needed and a regression introduced in 0.78 has been fixed. +This upgrade is part of a larger change to make the array interface 64-bit safe +by using SSize_t instead of I32 for array indices. =item * -The libnet module collection has been upgraded from version 1.22 to 1.23. +L has been upgraded from version 2.97 to 2.98. + +The list of Perl versions covered has been updated. =item * -L has been upgraded from version 1.27 to 1.30 +L has been upgraded from version 1.000014 to 1.000016. -L now includes C, C, C, C, -C and C functions that operate on even-sized lists of -pairs. +The module's DESCRIPTION has been re-worded regarding safety/security to +satisfy CVE-2013-1437. =item * -L has been upgraded from version 0.225 to 0.226. +L has been upgraded from 1.13 to 1.14. + +This upgrade is part of a larger change to make the array interface 64-bit safe +by using SSize_t instead of I32 for array indices. =item * -L has been upgraded from version 2.010 to 2.011. +L has been upgraded from version 1.003 to 1.004. -Handle FreeBSD (or other platforms) returning shorter AF_UNIX sockaddr -structures due to embedded sun_len. [cpan #86613] +The Unix OSType 'bitrig' has been added. =item * -L has been upgraded from version 2.45 to 2.46. +L has been upgraded from version 0.25 to 0.26. -Avoid creating temporary objects for STORABLE_attach when they aren't -required. [perl #118907] +A function signature has been corrected in the XS implementation. =item * -L has been upgraded from version 1.21 to 1.22. +L has been upgraded from version 2.46 to 2.47. + +This upgrade is part of a larger change to preserve referential identity when +passing C to a subroutine by using NULL rather than &PL_sv_undef for +nonexistent array elements. + +=item * + +L has been upgraded from version 1.18 to 1.19. + +The C warnings category has been added to check for embedded NUL +(C<"\0">) characters in pathnames and string arguments to other system calls. + +=item * + +L has been upgraded from version 0.10 to 0.11. =back @@ -262,19 +302,13 @@ 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 4 =item * -The C tutorial has been completely rewriten by Tom Christiansen, and now -focuses on covering only the basics, rather than providing a comprehensive -reference to all things openable. This rewrite came as the result of a -vigorous discussion on perl5-porters kicked off by a set of improvements -written by Alexander Hartmaier to the existing C. A "more than -you ever wanted to know about C" document may follow in subsequent -versions of perl. +XXX Description of the change here =back @@ -308,7 +342,11 @@ XXX L =item * -XXX L +L + +(W syscalls) Embedded \0 characters in pathnames or other system call arguments +produce a warning as of 5.20. The parts after the \0 were formerly ignored by +system calls. =back @@ -333,13 +371,13 @@ Most of these are built within the directories F and F. entries for each change Use L with program names to get proper documentation linking. ] -=head3 L +=head3 L =over 4 =item * -XXX +L now handles C wildcards correctly. [perl #113054] =back @@ -356,7 +394,16 @@ L section, instead. =item * -XXX +The F for C now generates a better F, +which avoids a race condition during parallel makes, which could cause the +build to fail. This is the last known parallel make problem (on *nix +platforms), and therefore we believe that a parallel make should now always +be error free. + +=for comment + +Strictly only for a build where build files such as F have not +been updated by C in an already configured and built tree. =back @@ -374,7 +421,23 @@ that they represent may be covered elsewhere. =item * -XXX +The test script F has been added to test that regular +expression matches on very large strings now succeed as expected. + +=item * + +Various cases of C, C, C and C triggering C are +now tested by the new test script F. + +=item * + +The new test script F tests that C<$!> and C<$^E> are now +preserved across signal handlers by the Win32 signal emulation code. + +=item * + +The test script F has been added to test the F +program on platforms where it is practical to do so. =back @@ -394,9 +457,9 @@ source tree. =over 4 -=item XXX-some-platform +=item Bitrig -XXX +Compile support has been added for Bitrig, a fork of OpenBSD =back @@ -421,9 +484,12 @@ L section. =over 4 -=item XXX-some-platform +=item WinCE -XXX +The building of XS modules has largely been restored. Several still cannot +(yet) be built but it is now possible to build Perl on WinCE with only a couple +of further patches (to L and L), hopefully to be +incorporated soon. =back @@ -439,8 +505,7 @@ well. =item * -C has been added to the API. It is similar to -C, but supports long strings on 64-bit platforms. +XXX =back @@ -455,55 +520,8 @@ files in F and F are best summarized in L. =item * -Autovivifying a subroutine stub via C<\&$glob> started causing crashes in -Perl 5.18.0 if the $glob was merely a copy of a real glob, i.e., a scalar -that had had a glob assigned to it. This has been fixed [perl #119051]. - -=item * - -On 64-bit platforms C can now be set to a value higher than 2**31-1 -[perl #72766]. - -=item * - -Perl used to leak an implementation detail when it came to referencing the -return values of certain operators. C -used to display two different memory addresses, because the C<\> operator -was copying the variable. Under threaded builds, it would also happen for -constants (C). This has been fixed [perl #21979, #78194, -#89188, #109746, #114838, #115388]. - -=item * - -The range operator C<..> was returning the same modifiable scalars with -each call, unless it was the only thing in a C loop header. This -meant that changes to values within the list returned would be visible the -next time the operator was executed [perl #3105]. - -=item * - -Constant folding and subroutine inlining no longer cause operations that -would normally return new modifiable scalars to return read-only values -instead. - -=item * - -Closures of the form C are no longer inlined, -causing changes to the variable to be ignored by callers of the subroutine -[perl #79908]. - -=item * - -Return values of certain operators such as C would sometimes be shared -between recursive calls to the same subroutine, causing the inner call to -modify the value returned by C in the outer call. This has been -fixed. - -=item * - -C<__PACKAGE__> and constants returning a package name or hash key are now -consistently read-only. In various previous Perl releases, they have -become mutable under certain circumstances. +The value of C<$^E> is now saved across signal handlers on +Win32. [perl #85104] =back @@ -532,7 +550,7 @@ here. XXX Generate this with: - perl Porting/acknowledgements.pl v5.19.2..HEAD + perl Porting/acknowledgements.pl v5.19.3..HEAD =head1 Reporting Bugs