In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/26fc922ea7af4f13e213f3cc21eca8c18ea88db6?hp=db5fc40ad7d6da4fbefa4e5d97b5d964fea172d9>

- Log -----------------------------------------------------------------
commit 26fc922ea7af4f13e213f3cc21eca8c18ea88db6
Merge: db5fc40ad7 8bb33ba630
Author: Sawyer X <[email protected]>
Date:   Thu May 11 19:22:49 2017 +0200

    Merge branch 'release/5.26.0-RC1' into blead

commit 8bb33ba6307a695fab9acbf283002425ac1a1398
Author: Sawyer X <[email protected]>
Date:   Thu May 11 19:07:23 2017 +0200

    disarm RCnnn bump

M       patchlevel.h

commit c2948cede0ea855128028a060fd05ca82187b290
Author: Sawyer X <[email protected]>
Date:   Thu May 11 17:20:16 2017 +0200

    Regenerate last-second acknowledgements

M       pod/perldelta.pod

commit 93df3445d2fd56674a2fa6b74e41d6bb2f41a484
Author: David H. Gutteridge <[email protected]>
Date:   Thu May 11 09:01:52 2017 -0600

    Add missing commas to perlfunc

M       AUTHORS
M       pod/perlfunc.pod

commit 54ffa6b04e7c773f76c2c0ebb69e864c6222e358
Author: Karl Williamson <[email protected]>
Date:   Tue May 9 22:28:15 2017 -0600

    perldeprecation: Add imminent XS deprecations
    
    The deprecated XS functions that have been scheduled to be removed did
    not make it into this pod.

M       pod/perldeprecation.pod

commit 1321976324309857fccd768d0a2ccf69ca2cdf73
Author: Sawyer X <[email protected]>
Date:   Thu May 11 15:03:58 2017 +0200

    Update META files

M       META.json

commit f23d5d4a4c0d8f1710a7267455eebb609106ce68
Author: Sawyer X <[email protected]>
Date:   Thu May 11 15:03:12 2017 +0200

    bump version to RCnnn

M       patchlevel.h

commit 7cc8a67f9fa7687a79639ec6025cf697cbdef1ab
Author: Sawyer X <[email protected]>
Date:   Thu May 11 15:00:42 2017 +0200

    add new release to perlhist

M       pod/perlhist.pod

commit 601d9a87c1b2e45bb177a3c7103977821ba7f619
Author: Sawyer X <[email protected]>
Date:   Thu May 11 14:52:31 2017 +0200

    Fix link

M       pod/perldelta.pod

commit e6abae1cbb4538f15169837d4d9fa049f9a3348b
Author: Sawyer X <[email protected]>
Date:   Thu May 11 14:36:27 2017 +0200

    Pod fixes

M       pod/perldelta.pod

commit 0cc8c7463a5e366c4e8cdcef0f9ac0eb505473ce
Author: Sawyer X <[email protected]>
Date:   Thu May 11 14:33:54 2017 +0200

    Finalize perldelta with acknowledgements and updated modules

M       pod/perldelta.pod

commit ddb03b72f46eae3c278f28e8758e87b9c98c66a1
Author: David Mitchell <[email protected]>
Date:   Mon May 8 21:06:38 2017 +0100

    avoid a memory wrap in sv_vcatpvfn_flags()
    
    RT #131260
    
    When calculating the new size of PL_efloatbuf, avoid wrapping 'need'.

M       sv.c

commit 5262b86e37a551bf040a8337652cd53a13cae2cd
Author: Sawyer X <[email protected]>
Date:   Thu May 11 13:28:59 2017 +0200

    reorder

M       win32/pod.mak

commit 4f73c567abe24db2d525a302ca136a247d448092
Author: Sawyer X <[email protected]>
Date:   Thu May 11 13:28:51 2017 +0200

    Correct links

M       pod/perldelta.pod

commit f48549ebaf292e9219673c56fec459e8191033dc
Author: Sawyer X <[email protected]>
Date:   Thu May 11 13:01:16 2017 +0200

    Sorted with cool trickery help by arc

M       win32/pod.mak

commit 41f10909dc88756f00b3e8e5cd8b9da69548292f
Author: Sawyer X <[email protected]>
Date:   Thu May 11 12:59:11 2017 +0200

    Manually replace 52513 with 5260 perldelta filename

M       Makefile.SH
M       pod/.gitignore
M       vms/descrip_mms.template
M       win32/GNUmakefile
M       win32/Makefile
M       win32/makefile.mk
M       win32/pod.mak

commit 2c8edc250e4a89982c8afe0e6a0789ce1d3b4f66
Author: Sawyer X <[email protected]>
Date:   Thu May 11 12:40:10 2017 +0200

    For now it's just perldelta.pod

D       pod/perl5260delta.pod
M       pod/perldelta.pod

commit 3e890f485f24167a822bd830877c4c826ce8316f
Author: Sawyer X <[email protected]>
Date:   Thu May 11 12:35:57 2017 +0200

    Cleanups

M       pod/perl5260delta.pod

commit 7b4e5e3d295a283afe006a33ff9cfd2abb64d1f6
Author: Sawyer X <[email protected]>
Date:   Thu May 11 00:06:13 2017 +0200

    Reorder section

M       pod/perl5260delta.pod

commit d5d1c84a59453a6f4d264641d72223c433461d26
Author: Sawyer X <[email protected]>
Date:   Wed May 10 23:55:27 2017 +0200

    Merge perl52512delta.pod

M       pod/perl5260delta.pod

commit bab278fd4afa57d5779aab3f650186f8793e0c65
Author: Sawyer X <[email protected]>
Date:   Wed May 10 23:54:26 2017 +0200

    Merge perl52511delta.pod

M       pod/perl5260delta.pod

commit d731f5142c5014c5a171e7c9392beb30b9efe2b0
Author: Sawyer X <[email protected]>
Date:   Wed May 10 16:01:08 2017 +0200

    Merge perl52510delta.pod

M       pod/perl5260delta.pod

commit 92a139375e61b85e375e0406cbd46df1f887ae27
Author: Sawyer X <[email protected]>
Date:   Wed May 10 15:58:40 2017 +0200

    Merge perl5259delta.pod

M       pod/perl5260delta.pod

commit 56e718982b69faf5273784c9313926cc464a87cf
Author: Sawyer X <[email protected]>
Date:   Wed May 10 15:48:23 2017 +0200

    Merge perl5258delta.pod

M       pod/perl5260delta.pod

commit b7de773230e7f686eeb4007d8b5675c8f2f27600
Author: Sawyer X <[email protected]>
Date:   Wed May 10 14:59:33 2017 +0200

    Merge perl5257delta.pod

M       pod/perl5260delta.pod

commit 439a85d1606c70158e8d4b6cb67d21a786087522
Author: Sawyer X <[email protected]>
Date:   Wed May 10 14:20:38 2017 +0200

    Merge perl5256delta.pod

M       pod/perl5260delta.pod

commit da433f509cc50915c64dbe4a927cb33ed5e00ef0
Author: Sawyer X <[email protected]>
Date:   Wed May 10 14:16:17 2017 +0200

    Merge perl5255delta.pod

M       pod/perl5260delta.pod

commit 92bb567d2c88fc5e83d135a869f4eec649076b68
Author: Sawyer X <[email protected]>
Date:   Wed May 10 14:13:10 2017 +0200

    Merge perl5254delta.pod

M       pod/perl5260delta.pod

commit e092f94d57b4235033a8bdfdd74a920de87446c5
Author: Sawyer X <[email protected]>
Date:   Wed May 10 14:09:30 2017 +0200

    Merge perl5253delta.pod

M       pod/perl5260delta.pod

commit c59b6f48a7e18911a63e6bd42fcf1f8e224643b3
Author: Sawyer X <[email protected]>
Date:   Wed May 10 13:58:55 2017 +0200

    Merge perl5252delta.pod

M       pod/perl5260delta.pod

commit 18013bd117fb42703264c2bef220bb3539c8fe55
Author: Sawyer X <[email protected]>
Date:   Wed May 10 13:52:57 2017 +0200

    Merge perl5251delta.pod

M       pod/perl5260delta.pod

commit 0a541aca6cedf39f6295a2fd2528dbcf66a09521
Author: Sawyer X <[email protected]>
Date:   Wed May 10 13:48:22 2017 +0200

    Creating perl5260delta.pod from perl5250delta.pod

A       pod/perl5260delta.pod
-----------------------------------------------------------------------

Summary of changes:
 META.json                |    2 +-
 Makefile.SH              |    8 +-
 pod/.gitignore           |    2 +-
 pod/perldelta.pod        | 2916 +++++++++++++++++++++++++++++++++++++++++++---
 pod/perlhist.pod         |    6 +-
 vms/descrip_mms.template |    2 +-
 win32/GNUmakefile        |    4 +-
 win32/Makefile           |    4 +-
 win32/makefile.mk        |    4 +-
 win32/pod.mak            |    9 +-
 10 files changed, 2743 insertions(+), 214 deletions(-)

diff --git a/META.json b/META.json
index 8e5a6d2965..afd5c76987 100644
--- a/META.json
+++ b/META.json
@@ -113,7 +113,7 @@
          "vxs.inc"
       ]
    },
-   "release_status" : "stable",
+   "release_status" : "testing",
    "resources" : {
       "bugtracker" : {
          "web" : "https://rt.perl.org/";
diff --git a/Makefile.SH b/Makefile.SH
index 4f381087bb..75b506cd71 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -570,7 +570,7 @@ esac
 
 $spitshell >>$Makefile <<'!NO!SUBS!'
 
-perltoc_pod_prereqs = extra.pods pod/perl52513delta.pod pod/perlapi.pod 
pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl5260delta.pod pod/perlapi.pod 
pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
 generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
 generated_headers = uudmap.h bitcount.h mg_data.h
 
@@ -1120,9 +1120,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
 pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
        $(MINIPERL) pod/perlmodlib.PL -q
 
-pod/perl52513delta.pod: pod/perldelta.pod
-       $(RMS) pod/perl52513delta.pod
-       $(LNS) perldelta.pod pod/perl52513delta.pod
+pod/perl5260delta.pod: pod/perldelta.pod
+       $(RMS) pod/perl5260delta.pod
+       $(LNS) perldelta.pod pod/perl5260delta.pod
 
 extra.pods: $(MINIPERL_EXE)
        -@test ! -f extra.pods || rm -f `cat extra.pods`
diff --git a/pod/.gitignore b/pod/.gitignore
index a06b7f758f..65c3d4d9e7 100644
--- a/pod/.gitignore
+++ b/pod/.gitignore
@@ -50,7 +50,7 @@
 /roffitall
 
 # generated
-/perl52513delta.pod
+/perl5260delta.pod
 /perlapi.pod
 /perlintern.pod
 /perlmodlib.pod
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index d0c5bf6af5..ed13834024 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -2,359 +2,2829 @@
 
 =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.26.0
 
-perldelta - what is new for perl v5.25.13
+=head1 DESCRIPTION
+
+This document describes the differences between the 5.24.0 release and the
+5.26.0 release.
+
+=head1 Core Enhancements
+
+=head2 New regular expression modifier C</xx>
+
+Specifying two C<x> characters to modify a regular expression pattern
+does everything that a single one does, but additionally TAB and SPACE
+characters within a bracketed character class are generally ignored and
+can be added to improve readability, like
+S<C</[ ^ A-Z d-f p-x ]/xx>>.  Details are at
+L<perlre/E<sol>x and E<sol>xx>.
+
+=head2 New Hash Function For 64-bit Builds
+
+We have switched to a hybrid hash function to better balance
+performance for short and long keys.
+
+For short keys, 16 bytes and under, we use an optimised variant of
+One At A Time Hard, and for longer keys we use Siphash 1-3. For very
+long keys this is a big improvement in performance. For shorter keys
+there is a modest improvement.
+
+=head2 Indented Here-documents
+
+This adds a new modifier '~' to here-docs that tells the parser
+that it should look for /^\s*$DELIM\n/ as the closing delimiter.
+
+These syntaxes are all supported:
+
+    <<~EOF;
+    <<~\EOF;
+    <<~'EOF';
+    <<~"EOF";
+    <<~`EOF`;
+    <<~ 'EOF';
+    <<~ "EOF";
+    <<~ `EOF`;
+
+The '~' modifier will strip, from each line in the here-doc, the
+same whitespace that appears before the delimiter.
+
+Newlines will be copied as is, and lines that don't include the
+proper beginning whitespace will cause perl to croak.
+
+For example:
+
+    if (1) {
+      print <<~EOF;
+        Hello there
+        EOF
+    }
+
+prints "Hello there\n" with no leading whitespace.
+
+=head2 '.' and @INC
+
+Perl now provides a way to build perl without C<.> in @INC by default. If you
+want this feature, you can build with -Ddefault_inc_excludes_dot
+
+Because the testing / make process for perl modules do not function well with
+C<.> missing from @INC, Perl now supports the environment variable
+PERL_USE_UNSAFE_INC=1 which makes Perl behave as it previously did, returning
+C<.> to @INC in all child processes.
+
+WARNING: C<PERL_USE_UNSAFE_INC> has been provided during the perl 5.25
+development cycle and is not guaranteed to function in perl 5.26.
+
+=head2 create a safer utf8_hop() called utf8_hop_safe()
+
+Unlike utf8_hop(), utf8_hop_safe() won't navigate before the beginning or after
+the end of the supplied buffer.
+
+=head2 @{^CAPTURE}, %{^CAPTURE}, and %{^CAPTURE_ALL}
+
+C<@{^CAPTURE}> exposes the capture buffers of the last match as an
+array. So C<$1> is C<${^CAPTURE}[0]>.
+
+C<%{^CAPTURE}> is the equivalent to C<%+> (ie named captures)
+
+C<%{^CAPTURE_ALL}> is the equivalent to C<%-> (ie all named captures).
+
+=head2 Unicode 9.0 is now supported
+
+A list of changes is at L<http://www.unicode.org/versions/Unicode9.0.0/>.
+Modules that are shipped with core Perl but not maintained by p5p do not
+necessarily support Unicode 9.0.  L<Unicode::Normalize> does work on 9.0.
+
+=head2 Use of C<\p{I<script>}> uses the improved Script_Extensions property
+
+Unicode 6.0 introduced an improved form of the Script (C<sc>) property, and
+called it Script_Extensions (C<scx>).  As of now, Perl uses this improved
+version when a property is specified as just C<\p{I<script>}>.  The meaning of
+compound forms, like C<\p{sc=I<script>}> are unchanged.  This should make
+programs be more accurate when determining if a character is used in a given
+script, but there is a slight chance of breakage for programs that very
+specifically needed the old behavior.  See L<perlunicode/Scripts>.
+
+=head2 Declaring a reference to a variable
+
+As an experimental feature, Perl now allows the referencing operator to come
+after L<C<my()>|perlfunc/my>, L<C<state()>|perlfunc/state>,
+L<C<our()>|perlfunc/our>, or L<C<local()>|perlfunc/local>.  This syntax must
+be enabled with C<use feature 'declared_refs'>.  It is experimental, and will
+warn by default unless C<no warnings 'experimental::refaliasing'> is in effect.
+It is intended mainly for use in assignments to references.  For example:
+
+    use experimental 'refaliasing', 'declared_refs';
+    my \$a = \$b;
+
+See L<perlref/Assigning to References> for slightly more detail.
+
+=head2 Perl can now do default collation in UTF-8 locales on platforms
+that support it
+
+Some platforms natively do a reasonable job of collating and sorting in
+UTF-8 locales.  Perl now works with those.  For portability and full
+control, L<Unicode::Collate> is still recommended, but now you may
+not need to do anything special to get good-enough results, depending on
+your application.  See
+L<perllocale/Category C<LC_COLLATE>: Collation: Text Comparisons and Sorting>.
+
+=head2 Better locale collation of strings containing embedded C<NUL>
+characters
+
+In locales that have multi-level character weights, these are now
+ignored at the higher priority ones.  There are still some gotchas in
+some strings, though.  See
+L<perllocale/Collation of strings containing embedded C<NUL> characters>.
+
+=head2 Lexical subroutines are no longer experimental
+
+Using the C<lexical_subs> feature no longer emits a warning. Existing
+code that disables the C<experimental::lexical_subs> warning category
+that the feature previously used will continue to work. The
+C<lexical_subs> feature has no effect; all Perl code can use lexical
+subroutines, regardless of what feature declarations are in scope.
+
+=head2 C<CORE> subroutines for hash and array functions callable via
+reference
+
+The hash and array functions in the C<CORE> namespace--C<keys>, C<each>,
+C<values>, C<push>, C<pop>, C<shift>, C<unshift> and C<splice>--, can now
+be called with ampersand syntax (C<&CORE::keys(\%hash>) and via reference
+(C<< my $k = \&CORE::keys; $k-E<gt>(\%hash) >>).  Previously they could only be
+used when inlined.
+
+=head2 POSIX::tmpnam() has been removed
+
+The fundamentally unsafe C<tmpnam()> interface was deprecated in
+Perl 5.22.0 and has now been removed.  In its place you can use
+for example the L<File::Temp> interfaces.
+
+=head2 require ::Foo::Bar is now illegal.
+
+Formerly, C<require ::Foo::Bar> would try to read F</Foo/Bar.pm>. Now any
+bareword require which starts with a double colon dies instead.
+
+=head2 Unescaped literal C<"{"> characters in regular expression
+patterns are no longer permissible
+
+You have to now say something like C<"\{"> or C<"[{]"> to specify to
+match a LEFT CURLY BRACKET.  This will allow future extensions to the
+language.  This restriction is not enforced, nor are there current plans
+to enforce it, if the C<"{"> is the first character in the pattern.
+
+These have been deprecated since v5.16, with a deprecation message
+displayed starting in v5.22.
+
+=head2 Literal control character variable names are no longer permissible
+
+A variable name may no longer contain a literal control character under
+any circumstances.  These previously were allowed in single-character
+names on ASCII platforms, but have been deprecated there since Perl
+v5.20.  This affects things like C<$I<\cT>>, where I<\cT> is a literal
+control (such as a C<NAK> or C<NEGATIVE ACKNOWLEDGE> character) in the
+source code.
+
+=head2 C<NBSP> is no longer permissible in C<\N{...}>
+
+The name of a character may no longer contain non-breaking spaces.  It
+has been deprecated to do so since Perl v5.22.
+
+=head1 Security
+
+=head2 Remove current dir (C<.>) from C<@INC>
+
+For security reasons, C<@INC> no longer contains the default directory
+(C<.>).
+
+=head2 "Escaped" colons and relative paths in PATH
+
+On Unix systems, Perl treats any relative paths in the PATH environment
+variable as tainted when starting a new process.  Previously, it was
+allowing a backslash to escape a colon (unlike the OS), consequently
+allowing relative paths to be considered safe if the PATH was set to
+something like C</\:.>.  The check has been fixed to treat C<.> as tainted
+in that example.
+
+=head2 C<-Di> switch is now required for PerlIO debugging output
+
+Previously PerlIO debugging output would be sent to the file specified
+by the C<PERLIO_DEBUG> environment variable if perl wasn't running
+setuid and the C<-T> or C<-t> switches hadn't been parsed yet.
+
+If perl performed output at a point where it hadn't yet parsed its
+switches this could result in perl creating or overwriting the file
+named by C<PERLIO_DEBUG> even when the C<-T> switch had been supplied.
+
+Perl now requires the C<-Di> switch to produce PerlIO debugging
+output.  By default this is written to C<stderr>, but can optionally
+be redirected to a file by setting the C<PERLIO_DEBUG> environment
+variable.
+
+If perl is running setuid or the C<-T> switch has supplied
+C<PERLIO_DEBUG> is ignored and the debugging output is sent to
+C<stderr> as for any other C<-D> switch.
+
+=head1 Incompatible Changes
+
+=head2 C<${^ENCODING}> has been removed
+
+Consequently, the L<encoding> pragma's default mode is no longer supported.  If
+you still need to write your source code in encodings other than UTF-8, use a
+source filter such as L<Filter::Encoding> on CPAN or L<encoding>'s C<Filter>
+option.
+
+=head2 C<scalar(%hash)> return signature changed
+
+The value returned for C<scalar(%hash)> will no longer show information about
+the buckets allocated in the hash.  It will simply return the count of used
+keys.  It is thus equivalent to C<0+keys(%hash)>.
+
+A form of backwards compatibility is provided via C<Hash::Util::bucket_ratio()>
+which provides the same behavior as C<scalar(%hash)> provided prior to Perl
+5.25.
+
+=head2 C<keys> returned from an lvalue subroutine
+
+C<keys> returned from an lvalue subroutine can no longer be assigned
+to in list context.
+
+    sub foo : lvalue { keys(%INC) }
+    (foo) = 3; # death
+    sub bar : lvalue { keys(@_) }
+    (bar) = 3; # also an error
+
+This makes the lvalue sub case consistent with C<(keys %hash) = ...> and
+C<(keys @_) = ...>, which are also errors.  [perl #128187]
+
+=head1 Deprecations
+
+=head2 String delimiters that aren't stand-alone graphemes are now deprecated
+
+In order for Perl to eventually allow string delimiters to be Unicode
+grapheme clusters (which look like a single character, but may be
+a sequence of several ones), we have to stop allowing a single char
+delimiter that isn't a grapheme by itself.  These are unlikely to exist
+in actual code, as they would typically display as attached to the
+character in front of them.
+
+=head1 Performance Enhancements
+
+=over 4
+
+=item *
+
+A hash in boolean context is now sometimes faster, e.g.
+
+    if (!%h) { ... }
+
+This was already special-cased, but some cases were missed, and even the
+ones which weren't have been improved.
+
+=item *
+
+Several other ops may now also be faster in boolean context.
+
+=item * New Faster Hash Function on 64 bit builds
+
+We use a different hash function for short and long keys. This should
+improve performance and security, especially for long keys.
+
+=item * readline is faster
+
+Reading from a file line-by-line with C<readline()> or C<< E<lt>E<gt> >> should
+now typically be faster due to a better implementation of the code that
+searches for the next newline character.
+
+=item *
+
+Reduce cost of SvVALID().
+
+=item *
+
+C<$ref1 = $ref2> has been optimized.
+
+=item *
+
+Array and hash assignment are now faster, e.g.
+
+    (..., @a) = (...);
+    (..., %h) = (...);
+
+especially when the RHS is empty.
+
+=item *
+
+Reduce the number of odd special cases for the C<SvSCREAM> flag.
+
+=item *
+
+Avoid sv_catpvn() in do_vop() when unneeded.
+
+=item *
+
+Enhancements in Regex concat COW implementation.
+
+=item *
+
+Speed up C<AV> and C<HV> clearing/undeffing.
+
+=item *
+
+Better optimise array and hash assignment
+
+=item *
+
+Converting a single-digit string to a number is now substantially faster.
+
+=item *
+
+The internal op implementing the C<split> builtin has been simplified and
+sped up. Firstly, it no longer requires a subsidiary internal C<pushre> op
+to do its work. Secondly, code of the form C<my @x = split(...)> is now
+optimised in the same way as C<@x = split(...)>, and is therefore a few
+percent faster.
+
+=item *
+
+The rather slow implementation for the experimental subroutine signatures
+feature has been made much faster; it is now comparable in speed with the
+old-style C<my ($a, $b, @c) = @_>.
+
+=item *
+
+Bareword constant strings are now permitted to take part in constant
+folding. They were originally exempted from constant folding in August 1999,
+during the development of Perl 5.6, to ensure that C<use strict "subs">
+would still apply to bareword constants. That has now been accomplished a
+different way, so barewords, like other constants, now gain the performance
+benefits of constant folding.
+
+This also means that void-context warnings on constant expressions of
+barewords now report the folded constant operand, rather than the operation;
+this matches the behaviour for non-bareword constants.
+
+=back
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<Archive::Tar> has been upgraded from version 2.04 to 2.24.
+
+=item *
+
+L<arybase> has been upgraded from version 0.11 to 0.12.
+
+=item *
+
+L<attributes> has been upgraded from version 0.27 to 0.29.
+
+The deprecation message for the C<:unique> and C<:locked> attributes
+now mention they will disappear in Perl 5.28.
+
+=item *
+
+L<B> has been upgraded from version 1.62 to 1.68.
+
+=item *
+
+L<B::Concise> has been upgraded from version 0.996 to 0.999.
+
+Its output is now more descriptive for C<op_private> flags.
+
+=item *
+
+L<B::Debug> has been upgraded from version 1.23 to 1.24.
+
+=item *
+
+L<B::Deparse> has been upgraded from version 1.37 to 1.40.
+
+=item *
+
+L<B::Xref> has been upgraded from version 1.05 to 1.06.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<base> has been upgraded from version 2.23 to 2.25.
+
+=item *
+
+L<bignum> has been upgraded from version 0.42 to 0.47.
+
+=item *
+
+L<Carp> has been upgraded from version 1.40 to 1.42.
+
+=item *
+
+L<charnames> has been upgraded from version 1.43 to 1.44.
+
+=item *
+
+L<Compress::Raw::Bzip2> has been upgraded from version 2.069 to 2.074.
+
+=item *
+
+L<Compress::Raw::Zlib> has been upgraded from version 2.069 to 2.074.
+
+=item *
+
+L<Config::Perl::V> has been upgraded from version 0.25 to 0.28.
+
+=item *
+
+L<CPAN> has been upgraded from version 2.11 to 2.18.
+
+=item *
+
+L<CPAN::Meta> has been upgraded from version 2.150005 to 2.150010.
+
+=item *
+
+L<Data::Dumper> has been upgraded from version 2.160 to 2.167.
+
+The XS implementation now supports Deparse.
+
+This fixes a stack management bug. [perl #130487].
+
+=item *
+
+L<DB_File> has been upgraded from version 1.835 to 1.840.
+
+=item *
+
+L<Devel::Peek> has been upgraded from version 1.23 to 1.26.
+
+=item *
+
+L<Devel::PPPort> has been upgraded from version 3.32 to 3.35.
+
+=item *
+
+L<Devel::SelfStubber> has been upgraded from version 1.05 to 1.06.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<diagnostics> has been upgraded from version 1.34 to 1.36.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<Digest> has been upgraded from version 1.17 to 1.17_01.
+
+=item *
+
+L<Digest::MD5> has been upgraded from version 2.54 to 2.55.
+
+=item *
+
+L<Digest::SHA> has been upgraded from version 5.95 to 5.96.
+
+=item *
+
+L<DynaLoader> has been upgraded from version 1.38 to 1.42.
+
+=item *
+
+L<Encode> has been upgraded from version 2.80 to 2.88.
+
+=item *
+
+L<encoding> has been upgraded from version 2.17 to 2.19.
+
+This module's default mode is no longer supported as of Perl 5.25.3.  It now
+dies when imported, unless the C<Filter> option is being used.
+
+=item *
+
+L<encoding::warnings> has been upgraded from version 0.12 to 0.13.
+
+This module is no longer supported as of Perl 5.25.3.  It emits a warning to
+that effect and then does nothing.
+
+=item *
+
+L<Errno> has been upgraded from version 1.25 to 1.28.
+
+Document that using C<%!> loads Errno for you.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<ExtUtils::Embed> has been upgraded from version 1.33 to 1.34.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<ExtUtils::MakeMaker> has been upgraded from version 7.10_01 to 7.24.
+
+=item *
+
+L<ExtUtils::Miniperl> has been upgraded from version 1.05 to 1.06.
+
+=item *
+
+L<ExtUtils::ParseXS> has been upgraded from version 3.31 to 3.34.
+
+=item *
+
+L<ExtUtils::Typemaps> has been upgraded from version 3.31 to 3.34.
+
+=item *
+
+L<feature> has been upgraded from version 1.42 to 1.47.
+
+Fixes the Unicode Bug in the range operator.
+
+=item *
+
+L<File::Copy> has been upgraded from version 2.31 to 2.32.
+
+=item *
+
+L<File::Fetch> has been upgraded from version 0.48 to 0.52.
+
+=item *
+
+L<File::Glob> has been upgraded from version 1.26 to 1.28.
+
+Issue a deprecation message for C<File::Glob::glob()>.
+
+=item *
+
+L<File::Spec> has been upgraded from version 3.63 to 3.67.
+
+=item *
+
+L<FileHandle> has been upgraded from version 2.02 to 2.03.
+
+=item *
+
+L<Filter::Simple> has been upgraded from version 0.92 to 0.93.
+
+It no longer treats C<no MyFilter> immediately following C<use MyFilter> as
+end-of-file.  [perl #107726]
+
+=item *
+
+L<Getopt::Long> has been upgraded from version 2.48 to 2.49.
+
+=item *
+
+L<Getopt::Std> has been upgraded from version 1.11 to 1.12.
+
+=item *
+
+L<Hash::Util> has been upgraded from version 0.19 to 0.22.
+
+=item *
+
+L<HTTP::Tiny> has been upgraded from version 0.056 to 0.070.
+
+Internal 599-series errors now include the redirect history.
+
+=item *
+
+L<I18N::LangTags> has been upgraded from version 0.40 to 0.42.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<IO> has been upgraded from version 1.36 to 1.38.
+
+=item *
+
+IO-Compress has been upgraded from version 2.069 to 2.074.
+
+=item *
+
+L<IO::Socket::IP> has been upgraded from version 0.37 to 0.38.
+
+=item *
+
+L<IPC::Cmd> has been upgraded from version 0.92 to 0.96.
+
+=item *
+
+L<IPC::SysV> has been upgraded from version 2.06_01 to 2.07.
+
+=item *
+
+L<JSON::PP> has been upgraded from version 2.27300 to 2.27400_02.
+
+=item *
+
+L<lib> has been upgraded from version 0.63 to 0.64.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<List::Util> has been upgraded from version 1.42_02 to 1.46_02.
+
+=item *
+
+L<Locale::Codes> has been upgraded from version 3.37 to 3.42.
+
+=item *
+
+L<Locale::Maketext> has been upgraded from version 1.26 to 1.28.
+
+=item *
+
+L<Locale::Maketext::Simple> has been upgraded from version 0.21 to 0.21_01.
+
+=item *
+
+L<Math::BigInt> has been upgraded from version 1.999715 to 1.999806.
+
+There have also been some core customizations.
+
+=item *
+
+L<Math::BigInt::FastCalc> has been upgraded from version 0.40 to 0.5005.
+
+=item *
+
+L<Math::BigRat> has been upgraded from version 0.260802 to 0.2611.
+
+=item *
+
+L<Math::Complex> has been upgraded from version 1.59 to 1.5901.
+
+=item *
+
+L<Memoize> has been upgraded from version 1.03 to 1.03_01.
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.20170420 to 5.20170520.
+
+=item *
+
+L<Module::Load::Conditional> has been upgraded from version 0.64 to 0.68.
+
+=item *
+
+L<Module::Metadata> has been upgraded from version 1.000031 to 1.000033.
+
+=item *
+
+L<mro> has been upgraded from version 1.18 to 1.20.
+
+=item *
+
+L<Net::Ping> has been upgraded from version 2.43 to 2.55.
+
+IPv6 addresses and C<AF_INET6> sockets are now supported, along with several
+other enhancements.
+
+Remove sudo from 500_ping_icmp.t.
+
+Avoid stderr noise in tests
+
+Check for echo in new Net::Ping tests.
+
+=item *
+
+L<NEXT> has been upgraded from version 0.65 to 0.67.
+
+=item *
+
+L<Opcode> has been upgraded from version 1.34 to 1.39.
+
+=item *
+
+L<open> has been upgraded from version 1.10 to 1.11.
+
+=item *
+
+L<OS2::Process> has been upgraded from version 1.11 to 1.12.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<overload> has been upgraded from version 1.26 to 1.28.
+
+Its compilation speed has been improved slightly.
+
+=item *
+
+L<parent> has been upgraded from version 0.234 to 0.236.
+
+=item *
+
+L<perl5db.pl> has been upgraded from version 1.50 to 1.51.
+
+Ignore F</dev/tty> on non-Unix systems. [perl #113960]
+
+=item *
+
+L<Perl::OSType> has been upgraded from version 1.009 to 1.010.
+
+=item *
+
+L<perlfaq> has been upgraded from version 5.021010 to 5.021011.
+
+=item *
+
+L<PerlIO> has been upgraded from version 1.09 to 1.10.
+
+=item *
+
+L<PerlIO::encoding> has been upgraded from version 0.24 to 0.25.
+
+=item *
+
+L<PerlIO::scalar> has been upgraded from version 0.24 to 0.26.
+
+=item *
+
+L<Pod::Checker> has been upgraded from version 1.60 to 1.73.
+
+=item *
+
+L<Pod::Functions> has been upgraded from version 1.10 to 1.11.
+
+=item *
+
+L<Pod::Html> has been upgraded from version 1.22 to 1.2202.
+
+=item *
+
+L<Pod::Perldoc> has been upgraded from version 3.25_02 to 3.28.
+
+=item *
+
+L<Pod::Simple> has been upgraded from version 3.32 to 3.35.
+
+=item *
+
+L<Pod::Usage> has been upgraded from version 1.68 to 1.69.
+
+=item *
+
+L<POSIX> has been upgraded from version 1.65 to 1.76. This remedies several
+defects in making its symbols exportable. [perl #127821]
+The C<POSIX::tmpnam()> interface has been removed,
+see L</"POSIX::tmpnam() has been removed">.
+Trying to import POSIX subs that have no real implementations
+(like C<POSIX::atend()>) now fails at import time, instead of
+waiting until runtime.
+
+=item *
+
+L<re> has been upgraded from version 0.32 to 0.34
+
+This adds support for the new L<C<E<47>xx>|perlre/E<sol>x and E<sol>xx>
+regular expression pattern modifier, and a change to the L<S<C<use re
+'strict'>>|re/'strict' mode> experimental feature.  When S<C<re
+'strict'>> is enabled, a warning now will be generated for all
+unescaped uses of the two characters C<}> and C<]> in regular
+expression patterns (outside bracketed character classes) that are taken
+literally.  This brings them more in line with the C<)> character which
+is always a metacharacter unless escaped.  Being a metacharacter only
+sometimes, depending on action at a distance, can lead to silently
+having the pattern mean something quite different than was intended,
+which the S<C<re 'strict'>> mode is intended to minimize.
+
+=item *
+
+L<Safe> has been upgraded from version 2.39 to 2.40.
+
+=item *
+
+L<Scalar::Util> has been upgraded from version 1.42_02 to 1.46_02.
+
+=item *
+
+L<Storable> has been upgraded from version 2.56 to 2.62.
+
+Fixes [perl #130098].
+
+=item *
+
+L<Symbol> has been upgraded from version 1.07 to 1.08.
+
+=item *
+
+L<Sys::Syslog> has been upgraded from version 0.33 to 0.35.
+
+=item *
+
+L<Term::ANSIColor> has been upgraded from version 4.04 to 4.06.
+
+=item *
+
+L<Term::ReadLine> has been upgraded from version 1.15 to 1.16.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<Test> has been upgraded from version 1.28 to 1.30.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<Test::Harness> has been upgraded from version 3.36 to 3.38.
+
+=item *
+
+L<Test::Simple> has been upgraded from version 1.001014 to 1.302073.
+
+=item *
+
+L<Thread::Queue> has been upgraded from version 3.09 to 3.12.
+
+=item *
+
+L<Thread::Semaphore> has been upgraded from 2.12 to 2.13.
+
+Added the C<down_timed> method.
+
+=item *
+
+L<threads> has been upgraded from version 2.07 to 2.15.
+
+Compatibility with 5.8 has been restored.
+
+Fixes [perl #130469].
+
+=item *
+
+L<threads::shared> has been upgraded from version 1.51 to 1.56.
+
+This fixes [cpan #119529], [perl #130457]
+
+=item *
+
+L<Tie::Hash::NamedCapture> has been upgraded from version 0.09 to 0.10.
+
+=item *
+
+L<Time::HiRes> has been upgraded from version 1.9733 to 1.9741.
+
+It now builds on systems with C++11 compilers (such as G++ 6 and Clang++
+3.9).
+
+Now uses C<clockid_t>.
+
+=item *
+
+L<Time::Local> has been upgraded from version 1.2300 to 1.25.
+
+=item *
+
+L<Unicode::Collate> has been upgraded from version 1.14 to 1.19.
+
+=item *
+
+L<Unicode::UCD> has been upgraded from version 0.64 to 0.68.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<version> has been upgraded from version 0.9916 to 0.9917.
+
+=item *
+
+L<VMS::DCLsym> has been upgraded from version 1.06 to 1.08.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=item *
+
+L<warnings> has been upgraded from version 1.36 to 1.37.
+
+=item *
+
+L<XS::Typemap> has been upgraded from version 0.14 to 0.15.
+
+=item *
+
+L<XSLoader> has been upgraded from version 0.21 to 0.27.
+
+Fixed a security hole in which binary files could be loaded from a path
+outside of L<C<@INC>|perlvar/@INC>.
+
+It now uses 3-arg C<open()> instead of 2-arg C<open()>. [perl #130122]
+
+=back
+
+=head1 Documentation
+
+=head2 New Documentation
+
+=head3 L<perldeprecation>
+
+This file documents all upcoming deprecations, and some of the deprecations
+which already have been removed. The purpose of this documentation is
+two-fold: document what will disappear, and by which version, and serve
+as a guide for people dealing with code which has features that no longer
+work after an upgrade of their perl.
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perlcall>
+
+=over 4
+
+=item *
+
+Use of unassigned code point or non-standalone grapheme for a delimiter will 
be a fatal error starting in Perl 5.30
+
+This was changed to drop a leading C<v> in C<v5.30>, so it uses the same
+style as other deprecation messages.
+
+=item *
+
+"\c%c" is more clearly written simply as "%s".
+
+It was decided to undeprecate the use of C<\c%c>, see 
L<http://www.nntp.perl.org/group/perl.perl5.porters/2017/02/msg242944.html>
+
+=item *
+
+Removed redundant C<dSP> from an example.
+
+=back
+
+=head3 L<perlcommunity>
+
+=over 4
+
+=item *
+
+All references to Usenet have been removed.
+
+=back
+
+=head3 L<perldata>
+
+=over 4
+
+=item *
+
+Updated documentation of C<scalar(%hash)>.  See L</scalar(%hash) return
+signature changed> above.
+
+=item *
+
+Use of single character variables, with the variable name a non printable
+character in the range C<\x80>-C<\xFF> is no longer allowed. Update the docs to
+reflect this.
+
+=back
+
+=head3 L<perldelta>
+
+=over 4
+
+=item *
+
+All references to Usenet have been removed.
+
+=back
+
+=head3 L<perldiag>
+
+=over 4
+
+=item *
+
+Deprecations are to be marked with a D.
+C<"%s() is deprecated on :utf8 handles"> use a deprecation message, and as
+such, such be marked C<"(D deprecated)"> and not C<"(W deprecated)">.
+
+=back
+
+=head3 L<perlexperiment>
+
+=over 4
+
+=item *
+
+Documented new feature: See L</Declaring a reference to a variable> above.
+
+=back
+
+=head3 L<perlfunc>
+
+=over 4
+
+=item *
+
+Defined on aggregates is no longer allowed. Perlfunc was still reporting it as
+deprecated, and that it will be deleted in the future.
+
+=item *
+
+Clarified documentation of L<C<seek()>|perlfunc/seek>,
+L<C<tell()>|perlfunc/tell> and L<C<sysseek()>|perlfunc/sysseek>.
+L<[perl #128607]|https://rt.perl.org/Public/Bug/Display.html?id=128607>
+
+=item *
+
+Removed obsolete documentation of L<C<study()>|perlfunc/study>.
+
+=back
+
+=head3 L<perlguts>
+
+=over 4
+
+=item *
+
+Add C<pTHX_> to magic method examples.
+
+=back
+
+=head3 L<perlhack>
+
+=over 4
+
+=item *
+
+Document Tab VS Space.
+
+=back
+
+=head3 L<perlinterp>
+
+=over 4
+
+=item *
+
+L<perlinterp> has been expanded to give a more detailed example of how to
+hunt around in the parser for how a given operator is handled.
+
+=back
+
+=head3 L<perllocale>
+
+=over 4
+
+=item *
+
+Document C<NUL> collation handling.
+
+=item *
+
+Some locales aren't compatible with Perl.  Note the potential bad
+consequences of using them.
+
+=back
+
+=head3 L<perlmodinstall>
+
+=over 4
+
+=item *
+
+All references to Usenet have been removed.
+
+=back
+
+=head3 L<perlmodlib>
+
+=over 4
+
+=item *
+
+Updated the mirror list.
+
+=item *
+
+All references to Usenet have been removed.
+
+=back
+
+=head3 L<perlnewmod>
+
+=over 4
+
+=item *
+
+All references to Usenet have been removed.
+
+=back
+
+=head3 L<perlobj>
+
+=over 4
+
+=item *
+
+Added a section on calling methods using their fully qualified names.
+
+=item *
+
+Do not discourage manual @ISA.
+
+=back
+
+=head3 L<perlootut>
+
+=over 4
+
+=item *
+
+Tidy the document.
+
+=item *
+
+Mention C<Moo> more.
+
+=back
+
+=head3 L<perlop>
+
+=over 4
+
+=item *
+
+Clarify behavior single quote regexps.
+
+=back
+
+=head3 L<perlre>
+
+=over 4
+
+=item *
+
+Several minor enhancements to the documentation.
+
+=back
+
+=head3 L<perlsec>
+
+=over 4
+
+=item *
+
+Fixed link to Crosby paper on hash complexity attack.
+
+=back
+
+=head3 L<perlref>
+
+=over 4
+
+=item *
+
+Documented new feature: See L</Declaring a reference to a variable> above.
+
+=back
+
+=head3 L<perltie>
+
+=over 4
+
+=item *
+
+Updated documentation of C<scalar(%hash)>.  See L</scalar(%hash) return
+signature changed> above.
+
+=back
+
+=head3 L<perlunicode>
+
+=over 4
+
+=item *
+
+Documented change to C<\p{I<script>}> to now use the improved Script_Extensions
+property.  See L</Use of \p{script} uses the improved Script_Extensions
+property> above.
+
+=item *
+
+Updated the text to correspond with changes in Unicode UTS#18, concerning
+regular expressions, and Perl compatibility with what it says.
+
+=back
+
+=head3 L<perlvar>
+
+=over 4
+
+=item *
+
+Removed obsolete documentation of C<${^ENCODING}>.  See L</${^ENCODING} has
+been removed> above.
+
+=item *
+
+Document C<@ISA>. Was documented other places, not not in L<perlvar>.
+
+=back
+
+=head1 Diagnostics
+
+=head2 New Diagnostics
+
+=head3 New Errors
+
+=over 4
+
+=item *
+
+Since C<.> is now removed from C<@INC> by default, C<do> will now trigger
+a warning recommending to fix the C<do> statement:
+
+L<do "%s" failed, '.' is no longer in @INC|perldiag/do "%s" failed, '.' is no 
longer in @INC; did you mean do ".E<sol>%s"?>
+
+=item *
+
+Using the empty pattern (which re-executes the last successfully-matched
+pattern) inside a code block in another regex, as in C</(?{ s!!new! })/>, has
+always previously yielded a segfault. It now produces an error:
+L<Infinite recursion in regex|perldiag/"Infinite recursion in regex">.
+
+=item *
+
+L<The experimental declared_refs feature is not enabled|perldiag/"The 
experimental declared_refs feature is not enabled">
+
+(F) To declare references to variables, as in C<my \%x>, you must first enable
+the feature:
+
+    no warnings "experimental::declared_refs";
+    use feature "declared_refs";
+
+=item *
+
+L<Version control conflict marker|perldiag/"Version control conflict marker">
+
+(F) The parser found a line starting with 
C<E<lt>E<lt>E<lt>E<lt>E<lt>E<lt>E<lt>>,
+C<E<gt>E<gt>E<gt>E<gt>E<gt>E<gt>E<gt>>, or C<=======>. These may be left by a
+version control system to mark conflicts after a failed merge operation.
+
+=item *
+
+L<%s: command not found|perldiag/"%s: command not found">
+
+(A) You've accidentally run your script through B<bash> or another shell
+instead of Perl.  Check the #! line, or manually feed your script into
+Perl yourself.  The #! line at the top of your file could look like:
+
+  #!/usr/bin/perl
+
+=item *
+
+L<%s: command not found: %s|perldiag/"%s: command not found: %s">
+
+(A) You've accidentally run your script through B<zsh> or another shell
+instead of Perl.  Check the #! line, or manually feed your script into
+Perl yourself.  The #! line at the top of your file could look like:
+
+  #!/usr/bin/perl
+
+=item *
+
+L<Unescaped left brace in regex is deprecated here (and will be fatal in Perl 
5.30), passed through in regex; marked by S<E<lt>-- HERE> in 
mE<sol>%sE<sol>|perldiag/"Unescaped left brace in regex is d ... [106 chars 
truncated]
+
+Unescaped left braces are already illegal in some contexts in regular
+expression patterns, but, due to an oversight, no deprecation warning
+was raised in other contexts where they are intended to become illegal.
+This warning is now raised in these contexts.
+
+=item *
+
+L<Bareword in require contains "%s"|perldiag/"Bareword in require contains 
"%s"">
+
+=item *
+
+L<Bareword in require maps to empty filename|perldiag/"Bareword in require 
maps to empty filename">
+
+=item *
+
+L<Bareword in require maps to disallowed filename "%s"|perldiag/"Bareword in 
require maps to disallowed filename "%s"">
+
+=item *
+
+L<Bareword in require must not start with a double-colon: 
"%s"|perldiag/"Bareword in require must not start with a double-colon: "%s"">
+
+=back
+
+=head3 New Warnings
+
+=over 4
+
+=item *
+
+L<Use of unassigned code point or non-standalone grapheme for a delimiter will 
be a fatal error starting in Perl 5.30|perldiag/"Use of unassigned code point 
or non-standalone grapheme for a delimiter ... [46 chars truncated]
+
+See L</Deprecations>
+
+=item *
+
+L<Declaring references is experimental|perldiag/"Declaring references is 
experimental">
+
+(S experimental::declared_refs) This warning is emitted if you use a reference
+constructor on the right-hand side of C<my()>, C<state()>, C<our()>, or
+C<local()>.  Simply suppress the warning if you want to use the feature, but
+know that in doing so you are taking the risk of using an experimental feature
+which may change or be removed in a future Perl version:
+
+    no warnings "experimental::declared_refs";
+    use feature "declared_refs";
+    $fooref = my \$foo;
+
+=item *
+
+L<C<${^ENCODING}> is no longer supported. Its use will be fatal in Perl 
5.28|perldiag/"${^ENCODING} is no longer supported. Its use will be fatal in 
Perl 5.28">
+
+(D deprecated) The special variable C<${^ENCODING}>, formerly used to implement
+the C<encoding> pragma, is no longer supported as of Perl 5.26.0.
+
+=back
+
+=head2 Changes to Existing Diagnostics
+
+=over 4
+
+=item *
+
+When a C<require> fails, we now do not provide C<@INC> when the C<require>
+is for a file instead of a module.
+
+=item *
+
+When C<@INC> is not scanned for a C<require> call, we no longer display
+C<@INC> to avoid confusion.
+
+=item *
+
+Attribute "locked" is deprecated, and will disappear in Perl 5.28
+
+=item *
+
+Attribute "unique" is deprecated, and will disappear in Perl 5.28
+
+=item *
+
+Constants from lexical variables potentially modified elsewhere are
+deprecated. This will not be allowed in Perl 5.32
+
+=item *
+
+Deprecated use of my() in false conditional. This will be a fatal error
+in Perl 5.30
+
+=item *
+
+dump() better written as CORE::dump(). dump() will no longer be available
+in Perl 5.30
+
+=item *
+
+${^ENCODING} is no longer supported. Its use will be fatal in Perl 5.28
+
+=item *
+
+File::Glob::glob() will disappear in perl 5.30. Use File::Glob::bsd_glob()
+instead.
+
+=item *
+
+%s() is deprecated on :utf8 handles. This will be a fatal error in Perl 5.30
+
+=item *
+
+$* is no longer supported. Its use will be fatal in Perl 5.30
+
+=item *
+
+$* is no longer supported. Its use will be fatal in Perl 5.30
+
+=item *
+
+Opening dirhandle %s also as a file. This will be a fatal error in Perl 5.28
+
+=item *
+
+Opening filehandle %s also as a directory. This will be a fatal
+error in Perl 5.28
+
+=item *
+
+Setting $/ to a reference to %s as a form of slurp is deprecated,
+treating as undef. This will be fatal in Perl 5.28
+
+=item *
+
+Unescaped left brace in regex is deprecated here (and will be fatal
+in Perl 5.30), passed through in regex; marked by S<< E<lt>-- HERE >> in m/%s/
+
+=item *
+
+Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28
+
+=item *
+
+Use of bare E<lt>E<lt> to mean E<lt>E<lt>"" is deprecated. Its use will be 
fatal in Perl 5.28
+
+=item *
+
+Use of code point 0x%s is deprecated; the permissible max is 0x%s.
+This will be fatal in Perl 5.28
+
+=item *
+
+Use of comma-less variable list is deprecated. Its use will be fatal
+in Perl 5.28
+
+=item *
+
+Use of inherited AUTOLOAD for non-method %s() is deprecated. This
+will be fatal in Perl 5.28
+
+=item *
+
+Use of strings with code points over 0xFF as arguments to %s operator
+is deprecated. This will be a fatal error in Perl 5.28
+
+=item *
+
+Improve error for missing tie() package/method. This brings the error messages
+in line with the ones used for normal method calls, despite not using
+call_method().
+
+=item *
+
+Make the sysread()/syswrite/() etc :utf8 handle warnings default. These
+warnings were under 'deprecated' previously.
+
+=item *
+
+'do' errors now refer to 'do' (not 'require').
+
+=item *
+
+Details as to the exact problem have been added to the diagnostics that
+occur when malformed UTF-8 is encountered when trying to convert to a
+code point.
+
+=item *
+
+Executing C<undef $x> where C<$x> is tied or magical no longer incorrectly
+blames the variable for an uninitialized-value warning encountered by the
+tied/magical code.
+
+=item *
+
+L<Unescaped left brace in regex is illegal here in regex; marked by S<E<lt>-- 
HERE> in mE<sol>%sE<sol>|perldiag/"Unescaped left brace in regex is illegal 
here in regex; marked by S<<-- HERE> in m/%s/ ... [2 chars truncated]
+
+The word "here" has been added to the message that was raised in
+v5.25.1.  This is to indicate that there are contexts in which unescaped
+left braces are not (yet) illegal.
+
+=item *
+
+Code like C<$x = $x . "a"> was incorrectly failing to yield a
+L<use of uninitialized value|perldiag/"Use of uninitialized value%s">
+warning when C<$x> was a lexical variable with an undefined value. That has
+now been fixed. [perl #127877]
+
+=item *
+
+When the error "Experimental push on scalar is now forbidden" is raised for
+the hash functions C<keys>, C<each>, and C<values>, it is now followed by
+the more helpful message, "Type of arg 1 to whatever must be hash or
+array". [perl #127976]
+
+=item *
+
+C<undef *_; shift> or C<undef *_; pop> inside a subroutine, with no
+argument to C<shift> or C<pop>, began crashing in Perl 5.14.0, but has now
+been fixed.
+
+=item *
+
+C<< "string$scalar-E<gt>$*" >> now correctly prefers concat overloading to
+string overloading if C<< $scalar-E<gt>$* >> returns an overloaded object,
+bringing it into consistency with C<$$scalar>.
+
+=item *
+
+C<< /@0{0*-E<gt>@*/*0 >> and similar contortions used to crash, but no longer
+do, but merely produce a syntax error. [perl #128171]
+
+=item *
+
+C<do> or C<require> with a reference or typeglob which, when stringified,
+contains a null character started crashing in Perl 5.20.0, but has now been
+fixed. [perl #128182]
+
+=back
+
+=head1 Utility Changes
+
+=head2 F<c2ph> and F<pstruct>
+
+=over 4
+
+=item *
+
+These old utilities have long since superceded by L<h2xs>, and are
+now gone from the distribution.
+
+=back
+
+=head2 F<Porting/pod_lib.pl>
+
+=over 4
+
+=item *
+
+Removed spurious executable bit.
+
+=item *
+
+Account for possibility of DOS file endings.
+
+=back
+
+=head2 F<Porting/sync-with-cpan>
+
+=over 4
+
+=item *
+
+Many improvements
+
+=back
+
+=head2 F<perf/benchmarks>
+
+=over 4
+
+=item *
+
+Tidy file, rename some symbols.
+
+=back
+
+=head2 F<Porting/checkAUTHORS.pl>
+
+=over 4
+
+=item *
+
+Replace obscure character range with \w.
+
+=back
+
+=head2 F<t/porting/regen.t>
+
+=over 4
+
+=item *
+
+try to be more helpful when tests fail.
+
+=back
+
+=head2 F<utils/h2xs.PL>
+
+=over 4
+
+=item *
+
+Avoid infinite loop for enums.
+
+=back
+
+=head2 L<perlbug>
+
+=over 4
+
+=item *
+
+Long lines in the message body are now wrapped at 900 characters, to stay
+well within the 1000-character limit imposed by SMTP mail transfer agents.
+This is particularly likely to be important for the list of arguments to
+C<Configure>, which can readily exceed the limit if, for example, it names
+several non-default installation paths. This change also adds the first unit
+tests for perlbug. [perl #128020]
+
+=back
+
+=head1 Configuration and Compilation
+
+=over 4
+
+=item *
+
+C<DEFAULT_INC_EXCLUDES_DOT> has been turned on as default.
+
+=item *
+
+The C<dtrace> build process has further changes:
+
+=over
+
+=item *
+
+If the C<-xnolibs> is available, use that so a F<dtrace> perl can be
+built within a FreeBSD jail.
+
+=item *
+
+On systems that build a dtrace object file (FreeBSD, Solaris and
+SystemTap's dtrace emulation), copy the input objects to a separate
+directory and process them there, and use those objects in the link,
+since C<dtrace -G> also modifies these objects.
+
+=item *
+
+Add libelf to the build on FreeBSD 10.x, since dtrace adds references
+to libelf symbols.
+
+=item *
+
+Generate a dummy dtrace_main.o if C<dtrace -G> fails to build it.  A
+default build on Solaris generates probes from the unused inline
+functions, while they don't on FreeBSD, which causes C<dtrace -G> to
+fail.
+
+=back
+
+[perl #130108]
+
+=item *
+
+You can now disable perl's use of the PERL_HASH_SEED and
+PERL_PERTURB_KEYS environment variables by configuring perl with
+C<-Accflags=NO_PERL_HASH_ENV>.
+
+=item *
+
+You can now disable perl's use of the PERL_HASH_SEED_DEBUG environment
+variable by configuring perl with
+C<-Accflags=-DNO_PERL_HASH_SEED_DEBUG>.
+
+=item *
+
+Zero out the alignment bytes when calculating the bytes for 80-bit C<NaN>
+and C<Inf> to make builds more reproducible. [perl #130133]
+
+=item *
+
+Since 5.18 for testing purposes we have included support for
+building perl with a variety of non-standard, and non-recommended
+hash functions. Since we do not recommend the use of these functions
+we have removed them and their corresponding build options. Specifically
+this includes the following build options:
+
+    PERL_HASH_FUNC_SDBM
+    PERL_HASH_FUNC_DJB2
+    PERL_HASH_FUNC_SUPERFAST
+    PERL_HASH_FUNC_MURMUR3
+    PERL_HASH_FUNC_ONE_AT_A_TIME
+    PERL_HASH_FUNC_ONE_AT_A_TIME_OLD
+    PERL_HASH_FUNC_MURMUR_HASH_64A
+    PERL_HASH_FUNC_MURMUR_HASH_64B
+
+=item *
+
+Remove "Warning: perl appears in your path"
+
+This install warning is more or less obsolete, since most platforms already
+*will* have a /usr/bin/perl or similar provided by the OS.
+
+=item *
+
+Reduce verbosity of "make install.man"
+
+Previously, two progress messages were emitted for each manpage: one by
+installman itself, and one by the function in install_lib.pl that it calls to
+actually install the file. Disabling the second of those in each case saves
+over 750 lines of unhelpful output.
+
+=item *
+
+Cleanup for clang -Weverything support. [perl 129961]
+
+=item *
+
+Configure: signbit scan was assuming too much, stop assuming negative 0.
+
+=item *
+
+Various compiler warnings have been silenced.
+
+=item *
+
+Several smaller changes have been made to remove impediments to compiling under
+C++11.
+
+=item *
+
+Builds using C<USE_PAD_RESET> now work again; this configuration had
+bit-rotted.
+
+=item *
+
+A probe for C<gai_strerror> was added to F<Configure> that checks if the
+the gai_strerror() routine is available and can be used to
+translate error codes returned by getaddrinfo() into human
+readable strings.
+
+=item *
+
+F<Configure> now aborts if both "-Duselongdouble" and "-Dusequadmath" are
+requested.
+L<[perl #126203]|https://rt.perl.org/Public/Bug/Display.html?id=126203>
+
+=item *
+
+Fixed a bug in which F<Configure> could append "-quadmath" to the archname even
+if it was already present.
+L<[perl #128538]|https://rt.perl.org/Public/Bug/Display.html?id=128538>
+
+=item *
+
+Clang builds with "-DPERL_GLOBAL_STRUCT" or "-DPERL_GLOBAL_STRUCT_PRIVATE" have
+been fixed (by disabling Thread Safety Analysis for these configurations).
+
+=item *
+
+F<make_ext.pl> no longer updates a module's F<pm_to_blib> file when no
+files require updates.  This could cause dependencies, F<perlmain.c>
+in particular, to be rebuilt unnecessarily.  [perl #126710]
+
+=item *
+
+The output of C<perl -V> has been reformatted so that each configuration
+and compile-time option is now listed one per line, to improve
+readability.
+
+=item *
+
+C<Configure> now builds C<miniperl> and C<generate_uudmap> if you
+invoke it with C<-Dusecrosscompiler> but not C<-Dtargethost=somehost>.
+This means you can supply your target platform C<config.sh>, generate
+the headers and proceed to build your cross-target perl.  [perl #127234]
+
+=item *
+
+Builds with C<-Accflags=-DPERL_TRACE_OPS> now only dump the operator
+counts when the environment variable C<PERL_TRACE_OPS> to be set to a
+non-zero integer.  This allows C<make test> to pass on such a build.
+
+=item *
+
+When building with GCC 6 and link-time optimization (the C<-flto> option to
+C<gcc>), C<Configure> was treating all probed symbols as present on the
+system, regardless of whether they actually exist. This has been fixed.
+[perl #128131]
+
+=item *
+
+The F<t/test.pl> library is used for internal testing of Perl itself, and
+also copied by several CPAN modules. Some of those modules must work on
+older versions of Perl, so F<t/test.pl> must in turn avoid newer Perl
+features. Compatibility with Perl 5.8 was inadvertently removed some time
+ago; it has now been restored. [perl #128052]
+
+=item *
+
+The build process no longer emits an extra blank line before building each
+"simple" extension (those with only F<*.pm> and F<*.pod> files).
+
+=back
+
+=head1 Testing
+
+=over 4
+
+=item *
+
+F<XS-APItest/t/utf8.t>: Several small fixes and enhancements.
+
+=item *
+
+Tests for locales were erroneously using locales incompatible with Perl.
+
+=item *
+
+Some parts of the test suite that try to exhaustively test edge cases in the
+regex implementation have been restricted to running for a maximum of five
+minutes. On slow systems they could otherwise take several hours, without
+significantly improving our understanding of the correctness of the code
+under test.
+
+In addition, some of those test cases have been split into more files, to
+allow them to be run in parallel on suitable systems.
+
+=item *
+
+A new internal facility allows analysing the time taken by the individual
+tests in Perl's own test suite; see F<Porting/harness-timer-report.pl>.
+
+=item *
+
+F<t/re/regexp_nonull.t> has been added to test that the regular expression
+engine can handle scalars that do not have a null byte just past the end of
+the string.
+
+=item *
+
+A new test script, F<t/op/decl-refs.t>, has been added to test the new feature,
+"Declaring a reference to a variable".
+
+=item *
+
+A new test script, F<t/re/anyof.t>, has been added to test that the ANYOF nodes
+generated by bracketed character classes are as expected.
+
+=item *
+
+F<t/harness> now tries really hard not to run tests outside of the Perl
+source tree. [perl #124050]
+
+=back
+
+=head1 Platform Support
+
+=head2 New Platforms
+
+=over 4
+
+=item NetBSD/VAX
+
+Perl now compiles under NetBSD on VAX machines.  However, it's not
+possible for that platform to implement floating-point infinities and
+NaNs compatibly with most modern systems, which implement the IEEE-754
+floating point standard.  The hexadecimal floating point (C<0x...p[+-]n>
+literals, C<printf %a>) is not implemented, either.
+The C<make test> passes 98% of tests.
+
+=over 4
+
+=item *
+
+Test fixes and minor updates.
+
+=item *
+
+Account for lack of C<inf>, C<nan>, and C<-0.0> support.
+
+=back
+
+=back
+
+=head2 Platform-Specific Notes
+
+=over 4
+
+=item Darwin
+
+don't treat -Dprefix=/usr as special, instead require an extra option
+-Ddarwin_distribution to produce the same results.
+
+=item POSIX
+
+Finish removing POSIX deprecated functions.
+
+=item OS X
+
+OS X El Capitan doesn't implement the clock_gettime() or clock_getres() APIs,
+emulate them as necessary.
+
+=item macOS
+
+Deprecated syscall(2) on macOS 10.12.
+
+=item EBCDIC
+
+Several tests have been updated to work (or be skipped) on EBCDIC platforms.
+
+=item HP-UX
+
+L<Net::Ping> UDP test is skipped on HP-UX.
+
+=item Hurd
+
+The hints for Hurd have been improved enabling malloc wrap and reporting the
+GNU libc used (previously it was an empty string when reported).
+
+=item VAX
+
+VAX floating point formats are now supported.
+
+=item VMS
+
+=over 4
+
+=item *
+
+The path separator for the C<PERL5LIB> and C<PERLLIB> environment entries is
**** PATCH TRUNCATED AT 2000 LINES -- 1337 NOT SHOWN ****

--
Perl5 Master Repository

Reply via email to