summaryrefslogtreecommitdiff
path: root/pod/perl5279delta.pod
diff options
context:
space:
mode:
Diffstat (limited to 'pod/perl5279delta.pod')
-rw-r--r--pod/perl5279delta.pod376
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