diff options
Diffstat (limited to 'pod/perl5279delta.pod')
-rw-r--r-- | pod/perl5279delta.pod | 376 |
1 files changed, 376 insertions, 0 deletions
diff --git a/pod/perl5279delta.pod b/pod/perl5279delta.pod new file mode 100644 index 0000000000..1faf4e7b8d --- /dev/null +++ b/pod/perl5279delta.pod @@ -0,0 +1,376 @@ +=encoding utf8 + +=head1 NAME + +perl5279delta - what is new for perl v5.27.9 + +=head1 DESCRIPTION + +This document describes differences between the 5.27.8 release and the 5.27.9 +release. + +If you are upgrading from an earlier release such as 5.27.7, first read +L<perl5278delta>, which describes differences between 5.27.7 and 5.27.8. + +=head1 Core Enhancements + +=head2 New read-only predefined variable C<${^SAFE_LOCALES}> + +This variable is 1 if the Perl interpreter is operating in an +environment where it is safe to use and change locales (see +L<perllocale>.) This variable is true when the perl is +unthreaded, or compiled in a platform that supports thread-safe locale +operation (see next item). + +=head2 Locales are now thread-safe on systems that support them + +These systems include Windows starting with Visual Studio 2005, and in +POSIX 2008 systems. + +The implication is that you are now free to use locales and changes them +in a threaded environment. Your changes affect only your thread. +See L<perllocale/Multi-threaded operation> + +=head2 Script runs now are specified with a different syntax + +This isn't really an enhancement, but is being put in this category +because it changes an enhancement from 5.27.8, and there is a new +abbreviated form for it. The syntax is now either of: + + (*script_run:...) + (*sr:...) + +Previously a C<"+"> was used instead of the C<"*">. + +=head2 There is a new form for script runs which combines with +C<(?E<gt>...)> (or C<*atomic:...)>) + +C<(*asr:...> is an easier way to write C<(*sr:(?E<gt>...))>, +which is expected to be a commonly used idiom. +C<(*atomic_script_run:...> is also available. See +L<perlre/Script Runs>. + +=head2 Experimentally, there are now alphabetic synonyms for some +regular expression assertions + +If you find it difficult to remember how to write certain of the pattern +assertions, there are now alphabetic synonyms. + + CURRENT NEW SYNONYMS + ------ ------------ + (?=...) (*pla:...) or (*positive_lookahead:...) + (?!...) (*nla:...) or (*negative_lookahead:...) + (?<=...) (*plb:...) or (*positive_lookbehind:...) + (?<!...) (*nlb:...) or (*negative_lookbehind:...) + (?>...) (*atomic:...) + +These are considered experimental, so using any of these will raise +(unless turned off) a warning in the C<experimental::alpha_assertions> +category. + +=head1 Performance Enhancements + +=over 4 + +=item * + +Various optimizations have been applied to matching regular expression +patterns, so under the right circumstances, significant performance +gains may be noticed. But in an application with many varied patterns, +little overall improvement likely will be seen. + +=item * + +Other optimizations have been applied to UTF-8 handling, but these are +not typically a major factor in most applications. + +=back + +=head1 Modules and Pragmata + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<bignum> has been upgraded from version 0.47 to 0.49. + +=item * + +L<Carp> has been upgraded from version 1.45 to 1.46. + +=item * + +L<Devel::PPPort> has been upgraded from version 3.38 to 3.39. + +=item * + +L<Encode> has been upgraded from version 2.94 to 2.96. + +=item * + +L<encoding> has been upgraded from version 2.21 to 2.22. + +=item * + +L<Errno> has been upgraded from version 1.28 to 1.29. + +=item * + +L<ExtUtils::MakeMaker> has been upgraded from version 7.30 to 7.32. + +=item * + +L<ExtUtils::ParseXS> has been upgraded from version 3.36 to 3.38. + +=item * + +L<ExtUtils::Typemaps> has been upgraded from version 3.37 to 3.38. + +=item * + +L<File::Spec> has been upgraded from version 3.72 to 3.74. + +=item * + +L<if> has been upgraded from version 0.0607 to 0.0608. + +=item * + +L<IPC::Cmd> has been upgraded from version 0.98 to 1.00. + +=item * + +L<Module::CoreList> has been upgraded from version 5.20180120 to 5.20180220. + +=item * + +L<mro> has been upgraded from version 1.21 to 1.22. + +=item * + +L<PerlIO::encoding> has been upgraded from version 0.25 to 0.26. + +=item * + +L<POSIX> has been upgraded from version 1.81 to 1.82. + +=item * + +L<Storable> has been upgraded from version 2.65 to 3.06. + +=item * + +L<Test::Simple> has been upgraded from version 1.302120 to 1.302122. + +=item * + +L<threads> has been upgraded from version 2.21 to 2.22. + +=item * + +L<Time::HiRes> has been upgraded from version 1.9752 to 1.9753. + +=item * + +L<warnings> has been upgraded from version 1.40 to 1.41. + +=item * + +L<XXX> has been upgraded from version A.xx to B.yy. + +If there was something important to note about this change, include that here. + +=back + +=head1 Documentation + + +=head2 Changes to Existing Documentation + +We have attempted to update the documentation to reflect the changes +listed in this document. If you find any we have missed, send email +to L<perlbug@perl.org|mailto:perlbug@perl.org>. + +=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>. + +=head2 New Diagnostics + +=head3 New Warnings + +=over 4 + +=item * + +L<Locale '%s' contains (at least) the following characters which have +non-standard meanings: %s The Perl program will use the standard +meanings|perldiag/"Locale '%s' contains (at least) the following +characters which have non-standard meanings: %s The Perl program will +use the standard meanings">. + +=back + +=head1 Testing + +Tests were added and changed to reflect the other additions and +changes in this release. Furthermore, these significant changes were +made: + +=over 4 + +=item * + +F<harness> no longer waits for 30 seconds when running +F<t/io/openpid.t>. [perl #121028][perl #132867] + +=back + +=head1 Platform Support + +=head2 New Platforms + +=over 4 + + +=item VMS + +CRTL features can now be set by embedders before invoking Perl by using the +C<decc$feature_set> and C<decc$feature_set_value> functions. Previously any attempt +to set features after image initialization were ignored. + +=back + +=head1 Internal Changes + +=over 4 + +=item * + +A new compiler C<#define>, C<dTHX_DEBUGGING>. has been added. This is +useful for XS or C code that only need the thread context because their +debugging statements that get compiled only under C<-DDEBUGGING> need +one. + +=item * + +A new API function L<perlapi/Perl_setlocale> has been added. + +=item * + +L<perlapi/sync_locale> has been revised to return a boolean as to +whether the system was using the global locale or not. + +=item * + +A new kind of magic scalar, called a "nonelem" scalar, has been introduced. +It is stored in an array to denote a nonexistent element, whenever such an +element is accessed in a potential lvalue context. It replaces the +existing "defelem" (deferred element) magic wherever this is possible, +being significantly more efficient. This means that +C<some_sub($sparse_array[$nonelem])> no longer has to create a new magic +defelem scalar each time, as long as the element is within the array. + +It partially fixes the rare bug of deferred elements getting out of synch +with their arrays when the array is shifted or unshifted. [perl #132729] + +=back + +=head1 Selected Bug Fixes + +=over 4 + +=item * + +Failures while compiling code within other constructs, such as with +string interpolation and the right part of C<s///e> now cause +compilation to abort earlier. + +Previously compilation could continue in order to report other errors, +but the failed sub-parse could leave partly parsed constructs on the +parser shift-reduce stack, confusing the parser, leading to perl +crashes. [perl #125351] + +=item * + +On threaded perls where the decimal point (radix) character is not a +dot, it has been possible for a race to occur between threads when one +needs to use the real radix character. This has now been fixed by use +of a mutex on systems without thread-safe locales, and the problem just +doesn't come up on those with thread-safe locales. + +=back + +=head1 Acknowledgements + +Perl 5.27.9 represents approximately 5 weeks of development since Perl +5.27.8 and contains approximately 29,000 lines of changes across 360 files +from 26 authors. + +Excluding auto-generated files, documentation and release tools, there were +approximately 13,000 lines of changes to 250 .pm, .t, .c and .h files. + +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.27.9: + +, Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn +Ilmari Mannsåker, David Mitchell, Father Chrysostomos, George Hartzell, +H.Merijn Brand, Hugo van der Sanden, James E Keenan, Jerry D. Hedden, Karl +Williamson, Matthew Horsfall, Pali, Reini Urban, Sawyer X, Slaven Rezic, +Steve Hay, Todd Rinaldo, Tomasz Konojacki, Tom Wyant, Tony Cook, Yves Orton, +Zefram. + +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 perl bug database +at L<https://rt.perl.org/> . There may also be information at +L<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 see +L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> +for details of how to report the issue. + +=head1 Give Thanks + +If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, +you can do so by running the C<perlthanks> program: + + perlthanks + +This will send an email to the Perl 5 Porters list with your show of thanks. + +=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 |