In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/9b1bcf24cc1d223ccff3dc5419dee83dbfcd64c1?hp=bdd099cdd1e6439fffa775fda5961e71d032366c>

- Log -----------------------------------------------------------------
commit 9b1bcf24cc1d223ccff3dc5419dee83dbfcd64c1
Merge: fc82b82 de1edec
Author: Ricardo Signes <[email protected]>
Date:   Sun Apr 10 20:49:39 2016 -0400

    Merge branch 'release-5.24' into blead
    
    This commit is just prep, turning blead into the branch from which
    v5.24.0 will be released, after suitable testing.

commit de1edec79312f19875b9df8046973bcbf44f4658
Author: Ricardo Signes <[email protected]>
Date:   Thu Apr 7 09:33:41 2016 -0400

    CoreList: update for v5.24.0

M       dist/Module-CoreList/lib/Module/CoreList.pm
M       dist/Module-CoreList/lib/Module/CoreList/Utils.pm

commit 417c6066faee6af64a2503ccc95c28c9f97ed0ae
Author: Ricardo Signes <[email protected]>
Date:   Thu Apr 7 08:47:52 2016 -0400

    fix versions of generated perldelta

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 f3ed8cbf4370a4d22345bef0e4d1f5614133cf0b
Author: Ricardo Signes <[email protected]>
Date:   Thu Apr 7 08:39:20 2016 -0400

    put perl5240delta into place

D       Porting/perl5240delta.pod
M       pod/perldelta.pod

commit ac96e11d353e84778fd73e5cb2fe4a7f22b58f5f
Author: Ricardo Signes <[email protected]>
Date:   Thu Apr 7 08:37:06 2016 -0400

    regen META.json for v5.24.0-RC

M       META.json

commit 39ca16228e023d9d221553da6a33c0bcff3a367f
Author: Ricardo Signes <[email protected]>
Date:   Thu Apr 7 08:28:18 2016 -0400

    regen: B::Op_private and uconfig.h

M       lib/B/Op_private.pm
M       uconfig.h

commit d0e2a40203b752aa0fc40a2adb029ce793ff0f62
Author: Ricardo Signes <[email protected]>
Date:   Thu Apr 7 08:27:26 2016 -0400

    version bump: this is now v5.24.0-RC0!

M       Cross/config.sh-arm-linux
M       Cross/config.sh-arm-linux-n770
M       INSTALL
M       META.json
M       META.yml
M       NetWare/Makefile
M       NetWare/config_H.wc
M       Porting/config.sh
M       Porting/config_H
M       Porting/perldelta_template.pod
M       Porting/todo.pod
M       README.haiku
M       README.macosx
M       README.os2
M       README.vms
M       README.win32
M       hints/catamount.sh
M       patchlevel.h
M       plan9/config.plan9
M       plan9/config_sh.sample
M       uconfig.h
M       uconfig.sh
M       uconfig64.sh
M       win32/GNUmakefile
M       win32/Makefile
M       win32/Makefile.ce
M       win32/makefile.mk

commit 276861fa3fbe1db0d7db262ff56709e58754bc58
Author: Ricardo Signes <[email protected]>
Date:   Thu Apr 7 08:20:49 2016 -0400

    perldelta: merge in perl5239delta

M       Porting/perl5240delta.pod

commit 803c4bd5792ab2d8abdeb3b2b36cb280f43316a5
Author: Ricardo Signes <[email protected]>
Date:   Sun Mar 13 20:17:10 2016 -0400

    perldelta: remove unneeded entries, do more merge and sort

M       Porting/perl5240delta.pod

commit 957eb5eda34e343cfacd85d01cb4355460901228
Author: Ricardo Signes <[email protected]>
Date:   Sun Mar 13 19:22:56 2016 -0400

    perldelta: merge in changes from perl5238delta

M       Porting/perl5240delta.pod

commit d8c1164880e88f2d7a7e2a827ea7e4e2a4f9485d
Author: Ricardo Signes <[email protected]>
Date:   Sun Mar 13 18:36:39 2016 -0400

    perldelta: merge in changes from perl5237delta

M       Porting/perl5240delta.pod

commit fad43af8db34b859922dd200c635cb342f6ba6d2
Author: Ricardo Signes <[email protected]>
Date:   Sun Mar 13 18:27:34 2016 -0400

    perldelta: merge in changes from perl5236delta

M       Porting/perl5240delta.pod

commit 94bfc135f764d242eec47d202f366ab8f19ff145
Author: Ricardo Signes <[email protected]>
Date:   Thu Mar 10 20:03:27 2016 -0500

    perldelta: merge in changes from perl5235delta

M       Porting/perl5240delta.pod

commit 600da8a5aa309e454a3bed808ace1b67f8d4154e
Author: Ricardo Signes <[email protected]>
Date:   Thu Mar 10 19:50:06 2016 -0500

    perldelta: merge in changes from perl5234delta

M       Porting/perl5240delta.pod

commit d6c96a3de952873ddfb2d8ca575f67535857bf0f
Author: Ricardo Signes <[email protected]>
Date:   Thu Mar 10 19:30:11 2016 -0500

    perldelta: merge in changes from perl5233delta

M       Porting/perl5240delta.pod

commit 3ffc03028fd877f956529c203e459a37cefd1c0e
Author: Ricardo Signes <[email protected]>
Date:   Thu Mar 10 19:24:33 2016 -0500

    perldelta: merge in changes from perl5232delta

M       Porting/perl5240delta.pod

commit c1e1945767c8b2852182772f7596407e92233e6e
Author: Ricardo Signes <[email protected]>
Date:   Thu Mar 10 19:19:43 2016 -0500

    perldelta: merge in changes from perl5231delta

M       Porting/perl5240delta.pod

commit 125f17fedfceed02f0ae40fceca04ac03fab6bd7
Author: Ricardo Signes <[email protected]>
Date:   Thu Mar 10 19:12:50 2016 -0500

    perldelta: bootstrap perl5240delta with perl5230delta

A       Porting/perl5240delta.pod
-----------------------------------------------------------------------

Summary of changes:
 Cross/config.sh-arm-linux                         |   46 +-
 Cross/config.sh-arm-linux-n770                    |   46 +-
 INSTALL                                           |   30 +-
 META.json                                         |    4 +-
 META.yml                                          |    2 +-
 Makefile.SH                                       |    8 +-
 NetWare/Makefile                                  |    4 +-
 NetWare/config_H.wc                               |   10 +-
 Porting/config.sh                                 |   48 +-
 Porting/config_H                                  |   18 +-
 Porting/perldelta_template.pod                    |    2 +-
 Porting/todo.pod                                  |    4 +-
 README.haiku                                      |    4 +-
 README.macosx                                     |    8 +-
 README.os2                                        |    2 +-
 README.vms                                        |    4 +-
 README.win32                                      |    2 +-
 dist/Module-CoreList/lib/Module/CoreList.pm       |   25 +-
 dist/Module-CoreList/lib/Module/CoreList/Utils.pm |    2 +-
 hints/catamount.sh                                |    4 +-
 lib/B/Op_private.pm                               |    2 +-
 patchlevel.h                                      |    9 +-
 plan9/config.plan9                                |   10 +-
 plan9/config_sh.sample                            |   44 +-
 pod/.gitignore                                    |    2 +-
 pod/perldelta.pod                                 | 1675 ++++++++++++++++++---
 uconfig.h                                         |   18 +-
 uconfig.sh                                        |   16 +-
 uconfig64.sh                                      |   16 +-
 vms/descrip_mms.template                          |    2 +-
 win32/GNUmakefile                                 |   26 +-
 win32/Makefile                                    |   16 +-
 win32/Makefile.ce                                 |    2 +-
 win32/makefile.mk                                 |   22 +-
 win32/pod.mak                                     |    8 +-
 35 files changed, 1734 insertions(+), 407 deletions(-)

diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux
index 7c4de32..4857806 100644
--- a/Cross/config.sh-arm-linux
+++ b/Cross/config.sh-arm-linux
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='10'
-api_version='23'
-api_versionstring='5.23.10'
+api_subversion='0'
+api_version='24'
+api_versionstring='5.24.0'
 ar='ar'
-archlib='/usr/lib/perl5/5.23.10/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.23.10/armv4l-linux'
+archlib='/usr/lib/perl5/5.24.0/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.24.0/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -56,7 +56,7 @@ castflags='0'
 cat='cat'
 cc='cc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.23.10/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.0/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -808,7 +808,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.23.10/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.24.0/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -816,13 +816,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.23.10'
+installprivlib='./install_me_here/usr/lib/perl5/5.24.0'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.23.10/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.0/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.23.10'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.0'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -956,8 +956,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.23.10'
-privlibexp='/usr/lib/perl5/5.23.10'
+privlib='/usr/lib/perl5/5.24.0'
+privlibexp='/usr/lib/perl5/5.24.0'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -1022,17 +1022,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 
38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, ... [78 chars truncated]
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.23.10/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.23.10/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.24.0/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.24.0/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.23.10'
+sitelib='/usr/lib/perl5/site_perl/5.24.0'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.23.10'
+sitelibexp='/usr/lib/perl5/site_perl/5.24.0'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -1071,7 +1071,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='10'
+subversion='0'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1163,8 +1163,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.23.10'
-version_patchlevel_string='version 23 subversion 10'
+version='5.24.0'
+version_patchlevel_string='version 24 subversion 0'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1177,10 +1177,10 @@ config_arg0='Configure'
 config_args=''
 config_argc=0
 PERL_REVISION=5
-PERL_VERSION=23
-PERL_SUBVERSION=10
+PERL_VERSION=24
+PERL_SUBVERSION=0
 PERL_API_REVISION=5
-PERL_API_VERSION=23
-PERL_API_SUBVERSION=10
+PERL_API_VERSION=24
+PERL_API_SUBVERSION=0
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770
index 0a71e53..a1f4603 100644
--- a/Cross/config.sh-arm-linux-n770
+++ b/Cross/config.sh-arm-linux-n770
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='10'
-api_version='23'
-api_versionstring='5.23.10'
+api_subversion='0'
+api_version='24'
+api_versionstring='5.24.0'
 ar='ar'
-archlib='/usr/lib/perl5/5.23.10/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.23.10/armv4l-linux'
+archlib='/usr/lib/perl5/5.24.0/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.24.0/armv4l-linux'
 archname64=''
 archname='armv4l-linux'
 archobjs=''
@@ -55,7 +55,7 @@ castflags='0'
 cat='cat'
 cc='arm-none-linux-gnueabi-gcc'
 cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.23.10/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.24.0/armv4l-linux/CORE'
 ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64'
 ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
 ccname='arm-linux-gcc'
@@ -699,7 +699,7 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.23.10/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.24.0/armv4l-linux'
 installbin='./install_me_here/usr/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -707,13 +707,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
 installman3dir='./install_me_here/usr/share/man/man3'
 installprefix='./install_me_here/usr'
 installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.23.10'
+installprivlib='./install_me_here/usr/lib/perl5/5.24.0'
 installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.23.10/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.24.0/armv4l-linux'
 installsitebin='./install_me_here/usr/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.23.10'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.24.0'
 installsiteman1dir='./install_me_here/usr/share/man/man1'
 installsiteman3dir='./install_me_here/usr/share/man/man3'
 installsitescript='./install_me_here/usr/bin'
@@ -841,8 +841,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/usr/lib/perl5/5.23.10'
-privlibexp='/usr/lib/perl5/5.23.10'
+privlib='/usr/lib/perl5/5.24.0'
+privlibexp='/usr/lib/perl5/5.24.0'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -903,17 +903,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 
38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, ... [78 chars truncated]
 sig_size='68'
 signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.23.10/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.23.10/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.24.0/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.24.0/armv4l-linux'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.23.10'
+sitelib='/usr/lib/perl5/site_perl/5.24.0'
 sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.23.10'
+sitelibexp='/usr/lib/perl5/site_perl/5.24.0'
 siteman1dir='/usr/share/man/man1'
 siteman1direxp='/usr/share/man/man1'
 siteman3dir='/usr/share/man/man3'
@@ -950,7 +950,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='10'
+subversion='0'
 sysman='/usr/share/man/man1'
 tail=''
 tar=''
@@ -1035,8 +1035,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.23.10'
-version_patchlevel_string='version 23 subversion 10'
+version='5.24.0'
+version_patchlevel_string='version 24 subversion 0'
 versiononly='undef'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1049,10 +1049,10 @@ config_arg0='Configure'
 config_args=''
 config_argc=0
 PERL_REVISION=5
-PERL_VERSION=23
-PERL_SUBVERSION=10
+PERL_VERSION=24
+PERL_SUBVERSION=0
 PERL_API_REVISION=5
-PERL_API_VERSION=23
-PERL_API_SUBVERSION=10
+PERL_API_VERSION=24
+PERL_API_SUBVERSION=0
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/INSTALL b/INSTALL
index ec92352..affc9a8 100644
--- a/INSTALL
+++ b/INSTALL
@@ -581,7 +581,7 @@ The directories set up by Configure fall into three broad 
categories.
 
 =item Directories for the perl distribution
 
-By default, Configure will use the following directories for 5.23.10.
+By default, Configure will use the following directories for 5.24.0.
 $version is the full perl version number, including subversion, e.g.
 5.12.3, and $archname is a string like sun4-sunos,
 determined by Configure.  The full definitions of all Configure
@@ -2437,7 +2437,7 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
 
 =head1 Coexistence with earlier versions of perl 5
 
-Perl 5.23.10 is not binary compatible with earlier versions of Perl.
+Perl 5.24.0 is not binary compatible with earlier versions of Perl.
 In other words, you will have to recompile your XS modules.
 
 In general, you can usually safely upgrade from one version of Perl
@@ -2512,9 +2512,9 @@ won't interfere with another version.  (The defaults 
guarantee this for
 libraries after 5.6.0, but not for executables. TODO?)  One convenient
 way to do this is by using a separate prefix for each version, such as
 
-       sh Configure -Dprefix=/opt/perl5.23.10
+       sh Configure -Dprefix=/opt/perl5.24.0
 
-and adding /opt/perl5.23.10/bin to the shell PATH variable.  Such users
+and adding /opt/perl5.24.0/bin to the shell PATH variable.  Such users
 may also wish to add a symbolic link /usr/local/bin/perl so that
 scripts can still start with #!/usr/local/bin/perl.
 
@@ -2527,13 +2527,13 @@ seriously consider using a separate directory, since 
development
 subversions may not have all the compatibility wrinkles ironed out
 yet.
 
-=head2 Upgrading from 5.23.9 or earlier
+=head2 Upgrading from v5.22 or earlier
 
-B<Perl 5.23.10 may not be binary compatible with Perl 5.23.9 or
+B<Perl 5.24.0 may not be binary compatible with Perl v5.22 or
 earlier Perl releases.>  Perl modules having binary parts
 (meaning that a C compiler is used) will have to be recompiled to be
-used with 5.23.10.  If you find you do need to rebuild an extension with
-5.23.10, you may safely do so without disturbing the older
+used with 5.24.0.  If you find you do need to rebuild an extension with
+5.24.0, you may safely do so without disturbing the older
 installations.  (See L<"Coexistence with earlier versions of perl 5">
 above.)
 
@@ -2566,15 +2566,15 @@ Firstly, the bare minimum to run this script
      print("$f\n");
   }
 
-in Linux with perl-5.23.10 is as follows (under $Config{prefix}):
+in Linux with perl-5.24.0 is as follows (under $Config{prefix}):
 
   ./bin/perl
-  ./lib/perl5/5.23.10/strict.pm
-  ./lib/perl5/5.23.10/warnings.pm
-  ./lib/perl5/5.23.10/i686-linux/File/Glob.pm
-  ./lib/perl5/5.23.10/feature.pm
-  ./lib/perl5/5.23.10/XSLoader.pm
-  ./lib/perl5/5.23.10/i686-linux/auto/File/Glob/Glob.so
+  ./lib/perl5/5.24.0/strict.pm
+  ./lib/perl5/5.24.0/warnings.pm
+  ./lib/perl5/5.24.0/i686-linux/File/Glob.pm
+  ./lib/perl5/5.24.0/feature.pm
+  ./lib/perl5/5.24.0/XSLoader.pm
+  ./lib/perl5/5.24.0/i686-linux/auto/File/Glob/Glob.so
 
 Secondly, for perl-5.10.1, the Debian perl-base package contains 591
 files, (of which 510 are for lib/unicore) totaling about 3.5MB in its
diff --git a/META.json b/META.json
index 5e55ef6..c06141e 100644
--- a/META.json
+++ b/META.json
@@ -111,7 +111,7 @@
          "vxs.inc"
       ]
    },
-   "release_status" : "unstable",
+   "release_status" : "testing",
    "resources" : {
       "bugtracker" : {
          "web" : "https://rt.perl.org/";
@@ -124,6 +124,6 @@
          "url" : "http://perl5.git.perl.org/";
       }
    },
-   "version" : "5.023010",
+   "version" : "5.024000",
    "x_serialization_backend" : "JSON::PP version 2.27300"
 }
diff --git a/META.yml b/META.yml
index 3ecaa0a..13a2bb3 100644
--- a/META.yml
+++ b/META.yml
@@ -111,5 +111,5 @@ resources:
   homepage: http://www.perl.org/
   license: http://dev.perl.org/licenses/
   repository: http://perl5.git.perl.org/
-version: '5.023010'
+version: '5.024000'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/Makefile.SH b/Makefile.SH
index e03a349..916b332 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -522,7 +522,7 @@ miniperl_objs = $(miniperl_objs_nodt) $(DTRACE_MINI_O)
 perllib_objs  = $(perllib_objs_nodt) $(DTRACE_PERLLIB_O)
 perlmain_objs = perlmain$(OBJ_EXT) $(DTRACE_MAIN_O)
 
-perltoc_pod_prereqs = extra.pods pod/perl52310delta.pod pod/perlapi.pod 
pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl5240delta.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
 
@@ -1085,9 +1085,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/perl52310delta.pod: pod/perldelta.pod
-       $(RMS) pod/perl52310delta.pod
-       $(LNS) perldelta.pod pod/perl52310delta.pod
+pod/perl5240delta.pod: pod/perldelta.pod
+       $(RMS) pod/perl5240delta.pod
+       $(LNS) perldelta.pod pod/perl5240delta.pod
 
 extra.pods: $(MINIPERL_EXE)
        -@test ! -f extra.pods || rm -f `cat extra.pods`
diff --git a/NetWare/Makefile b/NetWare/Makefile
index 07234f6..327cb8a 100644
--- a/NetWare/Makefile
+++ b/NetWare/Makefile
@@ -86,7 +86,7 @@ NLM_VERSION    = 3,20,0
 
 
 # Here comes the CW tools - TO BE FILLED TO BUILD WITH CW -
-MODULE_DESC     = "Perl 5.23.10 for NetWare"
+MODULE_DESC     = "Perl 5.24.0 for NetWare"
 CCTYPE          = CodeWarrior
 C_COMPILER             = mwccnlm -c
 CPP_COMPILER   = mwccnlm
@@ -462,7 +462,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl
 # versioned installation can be obtained by setting INST_TOP above to a
 # path that includes an arbitrary version string.
 #
-INST_VER       = \5.23.10
+INST_VER       = \5.24.0
 
 #
 # Comment this out if you DON'T want your perl installation to have
diff --git a/NetWare/config_H.wc b/NetWare/config_H.wc
index 97313a3..7414310 100644
--- a/NetWare/config_H.wc
+++ b/NetWare/config_H.wc
@@ -1042,7 +1042,7 @@
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "c:\\perl\\5.23.10\\lib\\NetWare-x86-multi-thread"             
/**/
+#define ARCHLIB "c:\\perl\\5.24.0\\lib\\NetWare-x86-multi-thread"              
/**/
 /*#define ARCHLIB_EXP ""       /**/
 
 /* ARCHNAME:
@@ -1073,8 +1073,8 @@
  *     This symbol is the filename expanded version of the BIN symbol, for
  *     programs that do not want to deal with that at run-time.
  */
-#define BIN "c:\\perl\\5.23.10\\bin\\NetWare-x86-multi-thread" /**/
-#define BIN_EXP "c:\\perl\\5.23.10\\bin\\NetWare-x86-multi-thread"     /**/
+#define BIN "c:\\perl\\5.24.0\\bin\\NetWare-x86-multi-thread"  /**/
+#define BIN_EXP "c:\\perl\\5.24.0\\bin\\NetWare-x86-multi-thread"      /**/
 
 /* BYTEORDER:
  *     This symbol holds the hexadecimal constant defined in byteorder,
@@ -3047,7 +3047,7 @@
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "c:\\perl\\site\\5.23.10\\lib\\NetWare-x86-multi-thread"      
        /**/
+#define SITEARCH "c:\\perl\\site\\5.24.0\\lib\\NetWare-x86-multi-thread"       
        /**/
 /*#define SITEARCH_EXP ""      /**/
 
 /* SITELIB:
@@ -3070,7 +3070,7 @@
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to 
search.
  */
-#define SITELIB "c:\\perl\\site\\5.23.10\\lib"         /**/
+#define SITELIB "c:\\perl\\site\\5.24.0\\lib"          /**/
 /*#define SITELIB_EXP ""       /**/
 #define SITELIB_STEM ""                /**/
 
diff --git a/Porting/config.sh b/Porting/config.sh
index b433b50..aee9550 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -39,12 +39,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/hostname'
 api_revision='5'
-api_subversion='10'
-api_version='23'
-api_versionstring='5.23.10'
+api_subversion='0'
+api_version='24'
+api_versionstring='5.24.0'
 ar='ar'
-archlib='/pro/lib/perl5/5.23.10/i686-linux-64int'
-archlibexp='/pro/lib/perl5/5.23.10/i686-linux-64int'
+archlib='/pro/lib/perl5/5.24.0/i686-linux-64int'
+archlibexp='/pro/lib/perl5/5.24.0/i686-linux-64int'
 archname64='64int'
 archname='i686-linux-64int'
 archobjs=''
@@ -825,7 +825,7 @@ incpath=''
 incpth='/usr/lib/gcc/i586-suse-linux/4.8/include /usr/local/include 
/usr/lib/gcc/i586-suse-linux/4.8/include-fixed 
/usr/lib/gcc/i586-suse-linux/4.8/../../../../i586-suse-linux/include 
/usr/include'
 inews=''
 initialinstalllocation='/pro/bin'
-installarchlib='/pro/lib/perl5/5.23.10/i686-linux-64int'
+installarchlib='/pro/lib/perl5/5.24.0/i686-linux-64int'
 installbin='/pro/bin'
 installhtml1dir=''
 installhtml3dir=''
@@ -833,13 +833,13 @@ installman1dir='/pro/local/man/man1'
 installman3dir='/pro/local/man/man3'
 installprefix='/pro'
 installprefixexp='/pro'
-installprivlib='/pro/lib/perl5/5.23.10'
+installprivlib='/pro/lib/perl5/5.24.0'
 installscript='/pro/bin'
-installsitearch='/pro/lib/perl5/site_perl/5.23.10/i686-linux-64int'
+installsitearch='/pro/lib/perl5/site_perl/5.24.0/i686-linux-64int'
 installsitebin='/pro/bin'
 installsitehtml1dir=''
 installsitehtml3dir=''
-installsitelib='/pro/lib/perl5/site_perl/5.23.10'
+installsitelib='/pro/lib/perl5/site_perl/5.24.0'
 installsiteman1dir='/pro/local/man/man1'
 installsiteman3dir='/pro/local/man/man3'
 installsitescript='/pro/bin'
@@ -965,7 +965,7 @@ perl_patchlevel=''
 perl_static_inline='static __inline__'
 perladmin='[email protected]'
 perllibs='-lnsl -ldl -lm -lcrypt -lutil -lc'
-perlpath='/pro/bin/perl5.23.10'
+perlpath='/pro/bin/perl5.24.0'
 pg='pg'
 phostname='hostname'
 pidtype='pid_t'
@@ -974,8 +974,8 @@ pmake=''
 pr=''
 prefix='/pro'
 prefixexp='/pro'
-privlib='/pro/lib/perl5/5.23.10'
-privlibexp='/pro/lib/perl5/5.23.10'
+privlib='/pro/lib/perl5/5.24.0'
+privlibexp='/pro/lib/perl5/5.24.0'
 procselfexe='"/proc/self/exe"'
 prototype='define'
 ptrsize='4'
@@ -1041,17 +1041,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 
38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, ... [82 chars truncated]
 sig_size='69'
 signal_t='void'
-sitearch='/pro/lib/perl5/site_perl/5.23.10/i686-linux-64int'
-sitearchexp='/pro/lib/perl5/site_perl/5.23.10/i686-linux-64int'
+sitearch='/pro/lib/perl5/site_perl/5.24.0/i686-linux-64int'
+sitearchexp='/pro/lib/perl5/site_perl/5.24.0/i686-linux-64int'
 sitebin='/pro/bin'
 sitebinexp='/pro/bin'
 sitehtml1dir=''
 sitehtml1direxp=''
 sitehtml3dir=''
 sitehtml3direxp=''
-sitelib='/pro/lib/perl5/site_perl/5.23.10'
+sitelib='/pro/lib/perl5/site_perl/5.24.0'
 sitelib_stem='/pro/lib/perl5/site_perl'
-sitelibexp='/pro/lib/perl5/site_perl/5.23.10'
+sitelibexp='/pro/lib/perl5/site_perl/5.24.0'
 siteman1dir='/pro/local/man/man1'
 siteman1direxp='/pro/local/man/man1'
 siteman3dir='/pro/local/man/man3'
@@ -1077,7 +1077,7 @@ src='.'
 ssizetype='ssize_t'
 st_ino_sign='1'
 st_ino_size='8'
-startperl='#!/pro/bin/perl5.23.10'
+startperl='#!/pro/bin/perl5.24.0'
 startsh='#!/bin/sh'
 static_ext=' '
 stdchar='char'
@@ -1090,7 +1090,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/usr/include/string.h'
 submit=''
-subversion='10'
+subversion='0'
 sysman='/usr/share/man/man1'
 sysroot=''
 tail=''
@@ -1189,8 +1189,8 @@ vendorprefix=''
 vendorprefixexp=''
 vendorscript=''
 vendorscriptexp=''
-version='5.23.10'
-version_patchlevel_string='version 23 subversion 10'
+version='5.24.0'
+version_patchlevel_string='version 24 subversion 0'
 versiononly='define'
 vi=''
 xlibpth='/usr/lib/386 /lib/386'
@@ -1199,11 +1199,11 @@ yaccflags=''
 zcat=''
 zip='zip'
 PERL_REVISION=5
-PERL_VERSION=23
-PERL_SUBVERSION=10
+PERL_VERSION=24
+PERL_SUBVERSION=0
 PERL_API_REVISION=5
-PERL_API_VERSION=23
-PERL_API_SUBVERSION=10
+PERL_API_VERSION=24
+PERL_API_SUBVERSION=0
 PERL_PATCHLEVEL=''
 PERL_CONFIG_SH=true
 : Variables propagated from previous config.sh file.
diff --git a/Porting/config_H b/Porting/config_H
index ac08cb0..12b23f6 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -960,8 +960,8 @@
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "/pro/lib/perl5/5.23.10/i686-linux-64int-ld"           /**/
-#define ARCHLIB_EXP "/pro/lib/perl5/5.23.10/i686-linux-64int-ld"               
/**/
+#define ARCHLIB "/pro/lib/perl5/5.24.0/i686-linux-64int-ld"            /**/
+#define ARCHLIB_EXP "/pro/lib/perl5/5.24.0/i686-linux-64int-ld"                
/**/
 
 /* ARCHNAME:
  *     This symbol holds a string representing the architecture name.
@@ -2068,8 +2068,8 @@
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/pro/lib/perl5/5.23.10"               /**/
-#define PRIVLIB_EXP "/pro/lib/perl5/5.23.10"           /**/
+#define PRIVLIB "/pro/lib/perl5/5.24.0"                /**/
+#define PRIVLIB_EXP "/pro/lib/perl5/5.24.0"            /**/
 
 /* PTRSIZE:
  *     This symbol contains the size of a pointer, so that the C preprocessor
@@ -2119,8 +2119,8 @@
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/pro/lib/perl5/site_perl/5.23.10/i686-linux-64int-ld"        
        /**/
-#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.23.10/i686-linux-64int-ld"    
        /**/
+#define SITEARCH "/pro/lib/perl5/site_perl/5.24.0/i686-linux-64int-ld"         
/**/
+#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.24.0/i686-linux-64int-ld"     
        /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
@@ -2142,8 +2142,8 @@
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to 
search.
  */
-#define SITELIB "/pro/lib/perl5/site_perl/5.23.10"             /**/
-#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.23.10"         /**/
+#define SITELIB "/pro/lib/perl5/site_perl/5.24.0"              /**/
+#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.24.0"          /**/
 #define SITELIB_STEM "/pro/lib/perl5/site_perl"                /**/
 
 /* SSize_t:
@@ -4282,7 +4282,7 @@
  *     script to make sure (one hopes) that it runs with perl and not
  *     some shell.
  */
-#define STARTPERL "#!/pro/bin/perl5.23.10"             /**/
+#define STARTPERL "#!/pro/bin/perl5.24.0"              /**/
 
 /* HAS_STDIO_STREAM_ARRAY:
  *     This symbol, if defined, tells that there is an array
diff --git a/Porting/perldelta_template.pod b/Porting/perldelta_template.pod
index cd912cb..8167bb1 100644
--- a/Porting/perldelta_template.pod
+++ b/Porting/perldelta_template.pod
@@ -378,7 +378,7 @@ here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.23.10..HEAD
+  perl Porting/acknowledgements.pl v5.24.0..HEAD
 
 =head1 Reporting Bugs
 
diff --git a/Porting/todo.pod b/Porting/todo.pod
index fc018fb..aab7691 100644
--- a/Porting/todo.pod
+++ b/Porting/todo.pod
@@ -467,7 +467,7 @@ Natively 64-bit systems need neither -Duse64bitint nor 
-Duse64bitall.
 On these systems, it might be the default compilation mode, and there
 is currently no guarantee that passing no use64bitall option to the
 Configure process will build a 32bit perl. Implementing -Duse32bit*
-options would be nice for perl 5.23.10.
+options would be nice for perl 5.24.0.
 
 =head2 Profile Perl - am I hot or not?
 
@@ -1170,7 +1170,7 @@ 
L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-01/msg00339.html>
 =head1 Big projects
 
 Tasks that will get your name mentioned in the description of the "Highlights
-of 5.23.10"
+of 5.24.0"
 
 =head2 make ithreads more robust
 
diff --git a/README.haiku b/README.haiku
index ec12d6c..95efcb4 100644
--- a/README.haiku
+++ b/README.haiku
@@ -22,9 +22,9 @@ The build procedure is completely standard:
 Make perl executable and create a symlink for libperl:
 
   chmod a+x /boot/common/bin/perl
-  cd /boot/common/lib; ln -s perl5/5.23.10/BePC-haiku/CORE/libperl.so .
+  cd /boot/common/lib; ln -s perl5/5.24.0/BePC-haiku/CORE/libperl.so .
 
-Replace C<5.23.10> with your respective version of Perl.
+Replace C<5.24.0> with your respective version of Perl.
 
 =head1 KNOWN PROBLEMS
 
diff --git a/README.macosx b/README.macosx
index 8f99798..f07fd87 100644
--- a/README.macosx
+++ b/README.macosx
@@ -10,9 +10,9 @@ perlmacosx - Perl under Mac OS X
 
 This document briefly describes Perl under Mac OS X.
 
-  curl -O http://www.cpan.org/src/perl-5.23.10.tar.gz
-  tar -xzf perl-5.23.10.tar.gz
-  cd perl-5.23.10
+  curl -O http://www.cpan.org/src/perl-5.24.0.tar.gz
+  tar -xzf perl-5.24.0.tar.gz
+  cd perl-5.24.0
   ./Configure -des -Dprefix=/usr/local/
   make
   make test
@@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X.
 
 =head1 DESCRIPTION
 
-The latest Perl release (5.23.10 as of this writing) builds without changes
+The latest Perl release (5.24.0 as of this writing) builds without changes
 under all versions of Mac OS X from 10.3 "Panther" onwards. 
 
 In order to build your own version of Perl you will need 'make',
diff --git a/README.os2 b/README.os2
index 58bd0c3..d27f1d2 100644
--- a/README.os2
+++ b/README.os2
@@ -619,7 +619,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, see 
L<"PERLLIB_PREFIX">.
 
 =item Additional Perl modules
 
-  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.23.10/
+  unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.24.0/
 
 Same remark as above applies.  Additionally, if this directory is not
 one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you
diff --git a/README.vms b/README.vms
index 00396c0..1ad082a 100644
--- a/README.vms
+++ b/README.vms
@@ -142,11 +142,11 @@ You may need to set up a foreign symbol for the unpacking 
utility of
 choice.  Once you have done so, use a command like the following to
 unpack the archive:
 
-    vmstar -xvf perl-5^.23^.10.tar
+    vmstar -xvf perl-5^.24^.0.tar
 
 Then set default to the top-level source directory like so:
 
-    set default [.perl-5^.23^.10]
+    set default [.perl-5^.24^.0]
 
 and proceed with configuration as described in the next section.
 
diff --git a/README.win32 b/README.win32
index 46efd62..df41702 100644
--- a/README.win32
+++ b/README.win32
@@ -393,7 +393,7 @@ Be sure to read the instructions near the top of the 
makefiles carefully.
 Type "dmake" (or "nmake" if you are using that make).
 
 This should build everything.  Specifically, it will create perl.exe,
-perl523.dll at the perl toplevel, and various other extension dll's
+perl524.dll at the perl toplevel, and various other extension dll's
 under the lib\auto directory.  If the build fails for any reason, make
 sure you have done the previous steps correctly.
 
diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm 
b/dist/Module-CoreList/lib/Module/CoreList.pm
index fa721e1..8b8fc9e 100644
--- a/dist/Module-CoreList/lib/Module/CoreList.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -291,7 +291,7 @@ sub changes_between {
     5.023007 => '2016-01-20',
     5.023008 => '2016-02-20',
     5.023009 => '2016-03-20',
-    5.023010 => '????-??-??',
+    5.024000 => '????-??-??',
   );
 
 for my $version ( sort { $a <=> $b } keys %released ) {
@@ -12360,14 +12360,21 @@ for my $version ( sort { $a <=> $b } keys %released ) 
{
             'Win32API::File::ExtUtils::Myconst2perl'=> 1,
         }
     },
-    5.023010 => {
+    5.024000 => {
         delta_from => 5.023009,
         changed => {
-            'B::Op_private'         => '5.023010',
-            'Config'                => '5.02301',
-            'Module::CoreList'      => '5.20160420',
-            'Module::CoreList::TieHashDelta'=> '5.20160420',
-            'Module::CoreList::Utils'=> '5.20160420',
+            'B::Op_private'         => '5.024000',
+            'Config'                => '5.024',
+            'File::Path'            => '2.12_01',
+            'File::Spec::AmigaOS'   => '3.64',
+            'ODBM_File'             => '1.14',
+            'POSIX'                 => '1.65',
+            'Pod::Man'              => '4.07',
+            'Pod::ParseLink'        => '4.07',
+            'Pod::Text'             => '4.07',
+            'Pod::Text::Color'      => '4.07',
+            'Pod::Text::Overstrike' => '4.07',
+            'Pod::Text::Termcap'    => '4.07',
         },
         removed => {
         }
@@ -13012,7 +13019,7 @@ for my $version (sort { $a <=> $b } keys %delta) {
         removed => {
         }
     },
-    5.023010 => {
+    5.024000 => {
         delta_from => 5.023009,
         changed => {
         },
@@ -13789,7 +13796,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
     'TAP::Parser::SourceHandler::RawTAP'=> 
'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness',
     'TAP::Parser::YAMLish::Reader'=> 
'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness',
     'TAP::Parser::YAMLish::Writer'=> 
'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness',
-    'Term::ANSIColor'       => 
'https://rt.cpan.org/Public/Dist/Display.html?Name=Term::ANSIColor',
+    'Term::ANSIColor'       => 
'https://rt.cpan.org/Dist/Display.html?Name=Term-ANSIColor',
     'Term::Cap'             => undef,
     'Test::Builder'         => 'http://github.com/Test-More/test-more/issues/',
     'Test::Builder::IO::Scalar'=> 
'http://github.com/Test-More/test-more/issues/',
diff --git a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm 
b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
index 5c2d6c9..72b230a 100644
--- a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
@@ -1136,7 +1136,7 @@ my %delta = (
         removed => {
         }
     },
-    5.023010 => {
+    5.024000 => {
         delta_from => 5.023009,
         changed => {
         },
diff --git a/hints/catamount.sh b/hints/catamount.sh
index e66d684..b7ea2ff 100644
--- a/hints/catamount.sh
+++ b/hints/catamount.sh
@@ -31,11 +31,11 @@
 # mkdir -p /opt/perl-catamount
 # mkdir -p /opt/perl-catamount/include
 # mkdir -p /opt/perl-catamount/lib
-# mkdir -p /opt/perl-catamount/lib/perl5/5.23.10
+# mkdir -p /opt/perl-catamount/lib/perl5/5.24.0
 # mkdir -p /opt/perl-catamount/bin
 # cp *.h /opt/perl-catamount/include
 # cp libperl.a /opt/perl-catamount/lib
-# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.23.10
+# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.24.0
 # cp miniperl perl run.sh cc.sh /opt/perl-catamount/lib
 #
 # With the headers and the libperl.a you can embed Perl to your Catamount
diff --git a/lib/B/Op_private.pm b/lib/B/Op_private.pm
index d78a663..237cad8 100644
--- a/lib/B/Op_private.pm
+++ b/lib/B/Op_private.pm
@@ -118,7 +118,7 @@ package B::Op_private;
 our %bits;
 
 
-our $VERSION = "5.023010";
+our $VERSION = "5.024000";
 
 $bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
 $bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
diff --git a/patchlevel.h b/patchlevel.h
index e5bd147..f94d151 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -14,8 +14,8 @@
  * exactly on the third column */
 
 #define PERL_REVISION  5               /* age */
-#define PERL_VERSION   23              /* epoch */
-#define PERL_SUBVERSION        10              /* generation */
+#define PERL_VERSION   24              /* epoch */
+#define PERL_SUBVERSION        0               /* generation */
 
 /* The following numbers describe the earliest compatible version of
    Perl ("compatibility" here being defined as sufficient binary/API
@@ -35,8 +35,8 @@
    changing them should not be necessary.
 */
 #define PERL_API_REVISION      5
-#define PERL_API_VERSION       23
-#define PERL_API_SUBVERSION    10
+#define PERL_API_VERSION       24
+#define PERL_API_SUBVERSION    0
 /*
    XXX Note:  The selection of non-default Configure options, such
    as -Duselonglong may invalidate these settings.  Currently, Configure
@@ -133,6 +133,7 @@ hunk.
 #  endif
 static const char * const local_patches[] = {
        NULL
+  ,"RC0"
 #ifdef PERL_GIT_UNCOMMITTED_CHANGES
        ,"uncommitted-changes"
 #endif
diff --git a/plan9/config.plan9 b/plan9/config.plan9
index e1672bf..74b353f 100644
--- a/plan9/config.plan9
+++ b/plan9/config.plan9
@@ -3329,8 +3329,8 @@
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/sys/lib/perl/5.23.10"                /**/
-#define PRIVLIB_EXP "/sys/lib/perl/5.23.10"            /**/
+#define PRIVLIB "/sys/lib/perl/5.24.0"         /**/
+#define PRIVLIB_EXP "/sys/lib/perl/5.24.0"             /**/
 
 /* PTRSIZE:
  *     This symbol contains the size of a pointer, so that the C preprocessor
@@ -3457,9 +3457,9 @@
  *     removed.  The elements in inc_version_list (inc_version_list.U) can
  *     be tacked onto this variable to generate a list of directories to 
search.
  */
-#define SITELIB "/sys/lib/perl/5.23.10/site_perl"              /**/
-#define SITELIB_EXP "/sys/lib/perl/5.23.10/site_perl"          /**/
-#define SITELIB_STEM "/sys/lib/perl/5.23.10/site_perl"         /**/
+#define SITELIB "/sys/lib/perl/5.24.0/site_perl"               /**/
+#define SITELIB_EXP "/sys/lib/perl/5.24.0/site_perl"           /**/
+#define SITELIB_STEM "/sys/lib/perl/5.24.0/site_perl"          /**/
 
 /* Size_t_size:
  *     This symbol holds the size of a Size_t in bytes.
diff --git a/plan9/config_sh.sample b/plan9/config_sh.sample
index 06a369b..fef2205 100644
--- a/plan9/config_sh.sample
+++ b/plan9/config_sh.sample
@@ -32,12 +32,12 @@ alignbytes='4'
 ansi2knr=''
 aphostname='/bin/uname -n'
 api_revision='5'
-api_subversion='10'
-api_version='23'
-api_versionstring='5.23.10'
+api_subversion='0'
+api_version='24'
+api_versionstring='5.24.0'
 ar='ar'
-archlib='/sys/lib/perl5/5.23.10/386'
-archlibexp='/sys/lib/perl5/5.23.10/386'
+archlib='/sys/lib/perl5/5.24.0/386'
+archlibexp='/sys/lib/perl5/5.24.0/386'
 archname64=''
 archname='386'
 archobjs=''
@@ -802,17 +802,17 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='/sys/lib/perl/5.23.10/386'
+installarchlib='/sys/lib/perl/5.24.0/386'
 installbin='/usr/bin'
 installman1dir='/sys/man/1pub'
 installman3dir='/sys/man/2pub'
 installprefix='/usr'
 installprefixexp='/usr'
-installprivlib='/sys/lib/perl/5.23.10'
+installprivlib='/sys/lib/perl/5.24.0'
 installscript='/usr/bin'
-installsitearch='/sys/lib/perl/5.23.10/site_perl/386'
+installsitearch='/sys/lib/perl/5.24.0/site_perl/386'
 installsitebin='/usr/bin'
-installsitelib='/sys/lib/perl/5.23.10/site_perl'
+installsitelib='/sys/lib/perl/5.24.0/site_perl'
 installstyle='lib/perl5'
 installusrbinperl='undef'
 installvendorarch=''
@@ -937,8 +937,8 @@ pmake=''
 pr=''
 prefix='/usr'
 prefixexp='/usr'
-privlib='/sys/lib/perl/5.23.10'
-privlibexp='/sys/lib/perl/5.23.10'
+privlib='/sys/lib/perl/5.24.0'
+privlibexp='/sys/lib/perl/5.24.0'
 procselfexe=''
 prototype='define'
 ptrsize='4'
@@ -1003,13 +1003,13 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
19 20 21 22 23 24 25 26
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 
38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, ... [7 chars truncated]
 sig_size='50'
 signal_t='void'
-sitearch='/sys/lib/perl/5.23.10/site_perl/386'
+sitearch='/sys/lib/perl/5.24.0/site_perl/386'
 sitearchexp='/sys/lib/perl/site_perl/386'
 sitebin='/usr/bin'
 sitebinexp='/usr/bin'
-sitelib='/sys/lib/perl/5.23.10/site_perl'
-sitelib_stem='/sys/lib/perl/5.23.10/site_perl'
-sitelibexp='/sys/lib/perl/5.23.10/site_perl'
+sitelib='/sys/lib/perl/5.24.0/site_perl'
+sitelib_stem='/sys/lib/perl/5.24.0/site_perl'
+sitelibexp='/sys/lib/perl/5.24.0/site_perl'
 siteprefix='/usr'
 siteprefixexp='/usr'
 sizesize='4'
@@ -1042,7 +1042,7 @@ stdio_stream_array=''
 strerror_r_proto='0'
 strings='/sys/include/ape/string.h'
 submit=''
-subversion='10'
+subversion='0'
 sysman='/sys/man/1pub'
 tail=''
 tar=''
@@ -1124,8 +1124,8 @@ vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.23.10'
-version_patchlevel_string='version 23 subversion 10'
+version='5.24.0'
+version_patchlevel_string='version 24 subversion 0'
 versiononly='undef'
 vi=''
 xlibpth=''
@@ -1138,10 +1138,10 @@ config_arg0='./Configure'
 config_args=''
 config_argc=0
 PERL_REVISION=5
-PERL_VERSION=23
-PERL_SUBVERSION=10
+PERL_VERSION=24
+PERL_SUBVERSION=0
 PERL_API_REVISION=5
-PERL_API_VERSION=23
-PERL_API_SUBVERSION=10
+PERL_API_VERSION=24
+PERL_API_SUBVERSION=0
 PERL_PATCHLEVEL=
 PERL_CONFIG_SH=true
diff --git a/pod/.gitignore b/pod/.gitignore
index 7b84df3..cd6539f 100644
--- a/pod/.gitignore
+++ b/pod/.gitignore
@@ -53,7 +53,7 @@
 /roffitall
 
 # generated
-/perl52310delta.pod
+/perl5240delta.pod
 /perlapi.pod
 /perlintern.pod
 *.html
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 4dcc7af..e0ae30f 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -2,396 +2,1715 @@
 
 =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.23.10
+perldelta - what is new for perl v5.24.0
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.23.9 release and the 5.23.10
-release.
+This document describes the differences between the 5.22.0 release and the
+5.24.0 release.
+
+=head1 Core Enhancements
 
-If you are upgrading from an earlier release such as 5.23.8, first read
-L<perl5239delta>, which describes differences between 5.23.8 and 5.23.9.
+=head2 Postfix dereferencing is no longer experimental
 
-=head1 Notice
+Using the C<postderef> and C<postderef_qq> features no longer emits a
+warning. Existing code that disables the C<experimental::postderef> warning
+category that they previously used will continue to work. The C<postderef>
+feature has no effect; all Perl code can use postfix dereferencing,
+regardless of what feature declarations are in scope. The C<5.24> feature
+bundle now includes the C<postderef_qq> feature.
 
-XXX Any important notices here
+=head2 Unicode 8.0 is now supported
 
-=head1 Core Enhancements
+For details on what is in this release, see
+L<http://www.unicode.org/versions/Unicode8.0.0/>.
+
+=head2 perl will now croak when closing an in-place output file fails
+
+Until now, failure to close the output file for an in-place edit was not
+detected, meaning that the input file could be clobbered without the edit being
+successfully completed.  Now, when the output file cannot be closed
+successfully, an exception is raised.
+
+=head2 New C<\b{lb}> boundary in regular expressions
+
+C<lb> stands for Line Break.  It is a Unicode property
+that determines where a line of text is suitable to break (typically so
+that it can be output without overflowing the available horizontal
+space).  This capability has long been furnished by the
+L<Unicode::LineBreak> module, but now a light-weight, non-customizable
+version that is suitable for many purposes is in core Perl.
+
+=head2 C<qr/(?[ ])/> now works in UTF-8 locales
+
+L<Extended Bracketed Character Classes|perlrecharclass/Extended Bracketed 
Character Classes>
+now will successfully compile when S<C<use locale>> is in effect.  The compiled
+pattern will use standard Unicode rules.  If the runtime locale is not a
+UTF-8 one, a warning is raised and standard Unicode rules are used
+anyway.  No tainting is done since the outcome does not actually depend
+on the locale.
+
+=head2 Integer shift (C<< << >> and C<< >> >>) now more explicitly defined
+
+Negative shifts are reverse shifts: left shift becomes right shift,
+and right shift becomes left shift.
+
+Shifting by the number of bits in a native integer (or more) is zero,
+except when the "overshift" is right shifting a negative value under
+C<use integer>, in which case the result is -1 (arithmetic shift).
+
+Until now negative shifting and overshifting have been undefined
+because they have relied on whatever the C implementation happens
+to do.  For example, for the overshift a common C behavior is
+"modulo shift":
+
+  1 >> 64 == 1 >> (64 % 64) == 1 >> 0 == 1  # Common C behavior.
+
+  # And the same for <<, while Perl now produces 0 for both.
 
-XXX New core language features go here.  Summarize user-visible core language
-enhancements.  Particularly prominent performance optimisations could go
-here, but most should go in the L</Performance Enhancements> section.
+Now these behaviors are well-defined under Perl, regardless of what
+the underlying C implementation does.  Note, however, that you cannot
+escape the native integer width, you need to know how far left you
+can go.  You can use for example:
 
-[ List each enhancement as a =head2 entry ]
+  use Config;
+  my $wordbits = $Config{uvsize} * 8;  # Or $Config{uvsize} << 3.
+
+If you need a more bits on the left shift, you can use for example
+the C<bigint> pragma, or the C<Bit::Vector> module from CPAN.
+
+=head2 printf and sprintf now allow reordered precision arguments
+
+That is, C<< sprintf '|%.*2$|', 2, 3 >> now returns C<|002|>. This extends
+the existing reordering mechanism (which allows reordering for arguments
+that are used as format fields, widths, and vector separators).
+
+=head2 More fields provided to C<sigaction> callback with C<SA_SIGINFO>
+
+When passing the C<SA_SIGINFO> flag to L<sigaction|POSIX/sigaction>, the
+C<errno>, C<status>, C<uid>, C<pid>, C<addr> and C<band> fields are now
+included in the hash passed to the handler, if supported by the
+platform.
 
 =head1 Security
 
-XXX Any security-related notices go here.  In particular, any security
-vulnerabilities closed should be noted here rather than in the
-L</Selected Bug Fixes> section.
+=head2 Set proper umask before calling C<mkstemp(3)>
+
+In 5.22 perl started setting umask to 0600 before calling C<mkstemp(3)>
+and restoring it afterwards. This wrongfully tells open(2) to strip
+the owner read and write bits from the given mode before applying it,
+rather than the intended negation of leaving only those bits in place.
+
+Systems that use mode 0666 in C<mkstemp(3)> (like old versions of
+glibc) create a file with permissions 0066, leaving world read and
+write permissions regardless of current umask.
+
+This has been fixed by using umask 0177 instead. [perl #127322]
+
+=head2 fix out of boundary access in Win32 path handling
+
+This is CVE-2015-8608.  For more information see
+L<[perl #126755]|https://rt.perl.org/Ticket/Display.html?id=126755>
+
+=head2 fix loss of taint in canonpath
+
+This is CVE-2015-8607.  For more information see
+L<[perl #126862]|https://rt.perl.org/Ticket/Display.html?id=126862>
+
+=head2 Avoid accessing uninitialized memory in win32 C<crypt()>
+
+Added validation that will detect both a short salt and invalid characters
+in the salt.
+L<[perl #126922]|https://rt.perl.org/Ticket/Display.html?id=126922>
+
+=head2 Remove duplicate environment variables from C<environ>
+
+Previously, if an environment variable appeared more than once in
+C<environ[]>, C<%ENV> would contain the last entry for that name,
+while a typical C<getenv()> would return the first entry. We now
+make sure C<%ENV> contains the same as what C<getenv> returns.
 
-[ List each security issue as a =head2 entry ]
+Second, we remove duplicates from C<environ[]>, so if a setting
+with that name is set in C<%ENV> we won't pass an unsafe value
+to a child process.
+
+[CVE-2016-2381]
 
 =head1 Incompatible Changes
 
-XXX For a release on a stable branch, this section aspires to be:
+=head2 The C<autoderef> feature has been removed
 
-    There are no changes intentionally incompatible with 5.XXX.XXX
-    If any exist, they are bugs, and we request that you submit a
-    report.  See L</Reporting Bugs> below.
+The experimental C<autoderef> feature (which allowed calling C<push>,
+C<pop>, C<shift>, C<unshift>, C<splice>, C<keys>, C<values>, and C<each> on
+a scalar argument) has been deemed unsuccessful. It has now been removed;
+trying to use the feature (or to disable the C<experimental::autoderef>
+warning it previously triggered) now yields an exception.
 
-[ List each incompatible change as a =head2 entry ]
+=head2 Lexical $_ has been removed
 
-=head1 Deprecations
+C<my $_> was introduced in Perl 5.10, and subsequently caused much confusion
+with no obvious solution.  In Perl 5.18.0, it was made experimental on the
+theory that it would either be removed or redesigned in a less confusing (but
+backward-incompatible) way.  Over the following years, no alternatives were
+proposed.  The feature has now been removed and will fail to compile.
 
-=head2 \N{} with nothing between the braces is deprecated
+=head2 C<qr/\b{wb}/> is now tailored to Perl expectations
 
-This had been illegal until v5.22, and will be illegal again in a future
-Perl version.
+This is now more suited to be a drop-in replacement for plain C<\b>, but
+giving better results for parsing natural language.  Previously it
+strictly followed the current Unicode rules which calls for it to match
+between each white space character.  Now it doesn't generally match
+within spans of white space, behaving like C<\b> does.  See
+L<perlrebackslash/\b{wb}>
 
-=head2 Module removals
+=head2 Regular expression compilation errors
 
-XXX Remove this section if inapplicable.
+Some regular expression patterns that had runtime errors now
+don't compile at all.
 
-The following modules will be removed from the core distribution in a
-future release, and will at that time need to be installed from CPAN.
-Distributions on CPAN which require these modules will need to list them as
-prerequisites.
+Almost all Unicode properties using the C<\p{}> and C<\P{}> regular
+expression pattern constructs are now checked for validity at pattern
+compilation time, and invalid ones will cause the program to not
+compile.  In earlier releases, this check was often deferred until run
+time.  Whenever an error check is moved from run- to compile time,
+erroneous code is caught 100% of the time, whereas before it would only
+get caught if and when the offending portion actually gets executed,
+which for unreachable code might be never.
 
-The core versions of these modules will now issue C<"deprecated">-category
-warnings to alert you to this fact.  To silence these deprecation warnings,
-install the modules in question from CPAN.
+=head2 C<qr/\N{}/> now disallowed under C<use re "strict">
 
-Note that these are (with rare exceptions) fine modules that you are encouraged
-to continue to use.  Their disinclusion from core primarily hinges on their
-necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
-not usually on concerns over their design.
+An empty C<\N{}> makes no sense, but for backwards compatibility is
+silently accepted as doing nothing.  But now this is a fatal error under
+the experimental feature L<re/'strict' mode>.
 
-=over
+=head2 Nested declarations are now disallowed
 
-=item XXX
+A C<my>, C<our>, or C<state> declaration is no longer allowed inside
+of another C<my>, C<our>, or C<state> declaration.
 
-XXX Note that deprecated modules should be listed here even if they are listed
-as an updated module in the L</Modules and Pragmata> section.
+For example, these are now fatal:
 
-=back
+   my ($x, my($y));
+   our (my $x);
 
-[ List each other deprecation as a =head2 entry ]
+L<[perl #125587]|https://rt.perl.org/Ticket/Display.html?id=125587>
 
-=head1 Performance Enhancements
+L<[perl #121058]|https://rt.perl.org/Ticket/Display.html?id=121058>
+
+=head2 The C</\C/> character class has been removed.
+
+This regular expression character class was deprecated in v5.20.0 and has
+produced a deprecation warning since v5.22.0. It is now a compile-time
+error. If you need to examine the individual bytes that make up a
+UTF8-encoded character, then use C<utf8::encode()> on the string (or a
+copy) first.
+
+=head2 C<chdir('')> no longer chdirs home
+
+Using C<chdir('')> or C<chdir(undef)> to chdir home has been deprecated since
+perl v5.8, and will now fail.  Use C<chdir()> instead.
+
+=head2 ASCII characters in variable names must now be all visible
+
+It was legal until now on ASCII platforms for variable names to contain
+non-graphical ASCII control characters (ordinals 0 through 31, and 127,
+which are the C0 controls and C<DELETE>).  This usage has been
+deprecated since v5.20, and as of now causes a syntax error.  The
+variables these names referred to are special, reserved by Perl for
+whatever use it may choose, now, or in the future.  Each such variable
+has an alternative way of spelling it.  Instead of the single
+non-graphic control character, a two character sequence beginning with a
+caret is used, like C<$^]> and C<${^GLOBAL_PHASE}>.  Details are at
+L<perlvar>.   It remains legal, though unwise and deprecated (raising a
+deprecation warning), to use certain non-graphic non-ASCII characters in
+variables names when not under S<C<use utf8>>.  No code should do this,
+as all such variables are reserved by Perl, and Perl doesn't currently
+define any of them (but could at any time, without notice).
+
+=head2 An off by one issue in C<$Carp::MaxArgNums> has been fixed
+
+C<$Carp::MaxArgNums> is supposed to be the number of arguments to display.
+Prior to this version, it was instead showing C<$Carp::MaxArgNums> + 1 
arguments,
+contrary to the documentation.
+
+=head2 Only blanks and tabs are now allowed within C<[...]> within C<(?[...])>.
+
+The experimental Extended Bracketed Character Classes can contain regular
+bracketed character classes within them.  These differ from regular ones in
+that white space is generally ignored, unless escaped by preceding it with a
+backslash.  The white space that is ignored is now limited to just tab C<\t>
+and SPACE characters.  Previously, it was any white space.  See
+L<perlrecharclass/Extended Bracketed Character Classes>.
+
+=head1 Deprecations
 
-XXX Changes which enhance performance without changing behaviour go here.
-There may well be none in a stable release.
+=head2 Using code points above the platform's C<IV_MAX> is now deprecated
+
+Unicode defines code points in the range C<0..0x10FFFF>.  Some standards
+at one time defined them up to 2**31 - 1, but Perl has allowed them to
+be as high as anything that will fit in a word on the platform being
+used.  However, use of those above the platform's C<IV_MAX> is broken in
+some constructs, notably C<tr///>, regular expression patterns involving
+quantifiers, and in some arithmetic and comparison operations, such as
+being the upper limit of a loop.  Now the use of such code points raises
+a deprecation warning, unless that warning category is turned off.
+C<IV_MAX> is typically 2**31 -1 on 32-bit platforms, and 2**63-1 on
+64-bit ones.
+
+=head2 Doing bitwise operations on strings containing code points above
+0xFF is deprecated
+
+The string bitwise operators treat their operands as strings of bytes,
+and values beyond 0xFF are nonsensical in this context.  To operate on
+encoded bytes, first encode the strings.  To operate on code points'
+numeric values, use C<split> and C<map ord>.  In the future, this
+warning will be replaced by an exception.
+
+=head2 sysread(), syswrite(), recv() and send() are deprecated on
+:utf8 handles
+
+The sysread(), recv(), syswrite() and send() operators
+are deprecated on handles that have the C<:utf8> layer, either
+explicitly, or implicitly, eg., with the C<:encoding(UTF-16LE)> layer.
+
+Both sysread() and recv() currently use only the C<:utf8> flag for the
+stream, ignoring the actual layers.  Since sysread() and recv() do no
+UTF-8 validation they can end up creating invalidly encoded scalars.
+
+Similarly, syswrite() and send() use only the C<:utf8> flag, otherwise
+ignoring any layers.  If the flag is set, both write the value UTF-8
+encoded, even if the layer is some different encoding, such as the
+example above.
+
+Ideally, all of these operators would completely ignore the C<:utf8>
+state, working only with bytes, but this would result in silently
+breaking existing code.  To avoid this a future version of perl will
+throw an exception when any of sysread(), recv(), syswrite() or send()
+are called on handle with the C<:utf8> layer.
 
-[ List each enhancement as a =item entry ]
+=head1 Performance Enhancements
 
 =over 4
 
 =item *
 
-XXX
+The overhead of scope entry and exit has been considerably reduced, so
+for example subroutine calls, loops and basic blocks are all faster now.
+This empty function call now takes about a third less time to execute:
 
-=back
+    sub f{} f();
 
-=head1 Modules and Pragmata
+=item *
+
+Many languages, such as Chinese, are caseless.  Perl now knows about
+most modern commercially important ones, and skips much of the work when
+a program tries to change case in them (like C<ucfirst()>) or match
+caselessly (C<qr//i>).  This will speed up a program, such as a web
+server, that can operate on multiple languages, while operating on a
+caseless one.
 
-XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
-go here.  If Module::CoreList is updated, generate an initial draft of the
-following sections using F<Porting/corelist-perldelta.pl>.  A paragraph summary
-for important changes should then be added by hand.  In an ideal world,
-dual-life modules would have a F<Changes> file that could be cribbed.
+=item *
 
-[ Within each section, list entries as a =item entry ]
+C</fixed-substr/> has been made much faster.
 
-=head2 New Modules and Pragmata
+On platforms with a libc memchr() implementation which makes good use of
+underlying hardware support, patterns which include fixed substrings will now
+often be much faster; for example with glibc on a recent x86_64 CPU, this:
 
-=over 4
+    $s = "a" x 1000 . "wxyz";
+    $s =~ /wxyz/ for 1..30000
+
+is now about 7 times faster.  On systems with slow memchr(), e.g. 32-bit ARM
+Raspberry Pi, there will be a small or little speedup.  Conversely, some
+pathological cases, such as C<"ab" x 1000 =~ /aa/> will be slower now; up to 3
+times slower on the rPi, 1.5x slower on x86_64.
+
+=item *
+
+Faster addition, subtraction and multiplication.
+
+Since 5.8.0, arithmetic became slower due to the need to support
+64-bit integers. To deal with 64-bit integers, a lot more corner
+cases need to be checked, which adds time. We now detect common
+cases where there is no need to check for those corner cases,
+and special-case them.
+
+=item *
+
+Preincrement, predecrement, postincrement, and postdecrement have been
+made faster by internally splitting the functions which handled multiple
+cases into different functions.
 
 =item *
 
-XXX
+Creating Perl debugger data structures (see L<perldebguts/"Debugger 
Internals">)
+for XSUBs and const subs has been removed.  This removed one glob/scalar combo
+for each unique C<.c> file that XSUBs and const subs came from.  On startup
+(C<perl -e"0">) about half a dozen glob/scalar debugger combos were created.
+Loading XS modules created more glob/scalar combos.  These things were created
+regardless if the perl debugger was being used or not, unlike for pure perl
+subs, and ignores that the perl debugger can not debug C code.
+
+=item *
+
+On Win32, C<stat>ing or C<-X>ing a path, if the file or directory does not
+exist, is now 3.5x faster than before.
+
+=item *
+
+Single arguments in list assign are now slightly faster:
+
+  ($x) = (...);
+  (...) = ($x);
+
+=item *
+
+Less peak memory is now used when compiling regular expression patterns.
 
 =back
 
+=head1 Modules and Pragmata
+
 =head2 Updated Modules and Pragmata
 
+XXX: todo
+
+=head1 Documentation
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perlapi>
+
 =over 4
 
 =item *
 
-L<XXX> has been upgraded from version A.xx to B.yy.
+The process of using undocumented globals has been documented, namely, that one
+should send email to L<[email protected]|mailto:[email protected]>
+first to get the go-ahead for documenting and using an undocumented function or
+global variable.
 
 =back
 
-=head2 Removed Modules and Pragmata
+=head3 L<perlcall>
 
 =over 4
 
 =item *
 
-XXX
+A number of cleanups have been made to perlcall, including:
 
-=back
+=over 4
 
-=head1 Documentation
+=item *
+
+use EXTEND(SP, n) and PUSHs() instead of XPUSHs() where applicable
+and update prose to match
+
+=item *
 
-XXX Changes to files in F<pod/> go here.  Consider grouping entries by
-file and be sure to link to the appropriate page, e.g. L<perlfunc>.
+add POPu, POPul and POPpbytex to the "complete list of POP macros"
+and clarify the documentation for some of the existing entries, and
+a note about side-effects
 
-=head2 New Documentation
+=item *
 
-XXX Changes which create B<new> files in F<pod/> go here.
+add API documentation for POPu and POPul
 
-=head3 L<XXX>
+=item *
 
-XXX Description of the purpose of the new file here
+use ERRSV more efficiently
 
-=head2 Changes to Existing Documentation
+=item *
+
+approaches to thread-safety storage of SVs.
+
+=back
 
-XXX Changes which significantly change existing files in F<pod/> go here.
-However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
-section.
+=back
 
-=head3 L<XXX>
+=head3 L<perlfunc>
 
 =over 4
 
 =item *
 
-XXX Description of the change here
+The documentation of C<hex> has been revised to clarify valid inputs.
+
+=item *
+
+Better explain meaning of negative PIDs in C<waitpid>.
+L<[perl #127080]|https://rt.perl.org/Ticket/Display.html?id=127080>
+
+=item *
+
+General cleanup: there's more consistency now (in POD usage, grammar, code
+examples), better practices in code examples (use of C<my>, removal of bareword
+filehandles, dropped usage of C<&> when calling subroutines, ...), etc.
 
 =back
 
-=head1 Diagnostics
+=head3 L<perlguts>
 
-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>.
+=over 4
 
-XXX New or changed warnings emitted by the core's C<C> code go here.  Also
-include any changes in L<perldiag> that reconcile it to the C<C> code.
+=item *
 
-=head2 New Diagnostics
+A new section has been added, L<perlguts/"Dynamic Scope and the Context
+Stack">, which explains how the perl context stack works.
 
-XXX Newly added diagnostic messages go under here, separated into New Errors
-and New Warnings
+=back
 
-=head3 New Errors
+=head3 L<perlmodlib>
 
 =over 4
 
 =item *
 
-XXX L<message|perldiag/"message">
+We now recommend contacting the module-authors list or PAUSE in seeking
+guidance on the naming of modules.
 
 =back
 
-=head3 New Warnings
+=head3 L<perlop>
 
 =over 4
 
 =item *
 
-XXX L<message|perldiag/"message">
+The documentation of C<qx//> now describes how C<$?> is affected.
 
 =back
 
-=head2 Changes to Existing Diagnostics
-
-XXX Changes (i.e. rewording) of diagnostic messages go here
+=head3 L<perlpolicy>
 
 =over 4
 
 =item *
 
-XXX Describe change here
+This note has been added to perlpolicy:
+
+  While civility is required, kindness is encouraged; if you have any doubt
+  about whether you are being civil, simply ask yourself, "Am I being kind?"
+  and aspire to that.
 
 =back
 
-=head1 Utility Changes
+=head3 L<perlreftut>
+
+=over 4
+
+=item *
 
-XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
-Most of these are built within the directory F<utils>.
+Fix some examples to be L<strict> clean.
 
-[ List utility changes as a =head2 entry for each utility and =item
-entries for each change
-Use L<XXX> with program names to get proper documentation linking. ]
+=back
 
-=head2 L<XXX>
+=head3 L<perlrebackslash>
 
 =over 4
 
 =item *
 
-XXX
+Clarify that in languages like Japanese and Thai, dictionary lookup
+is required to determine word boundaries.
 
 =back
 
-=head1 Configuration and Compilation
+=head3 L<perlsub>
+
+=over 4
 
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here.  Any other changes to the Perl build process should be listed here.
-However, any platform-specific changes should be listed in the
-L</Platform Support> section, instead.
+=item *
+
+Updated to note that anonymous subroutines can have signatures.
+
+=back
 
-[ List changes as a =item entry ].
+=head3 L<perlsyn>
 
 =over 4
 
 =item *
 
-XXX
+Fixed a broken example where C<=> was used instead of
+C<==> in conditional in do/while example.
 
 =back
 
-=head1 Testing
+=head3 L<perltie>
+
+=over 4
+
+=item *
+
+The usage of C<FIRSTKEY> and C<NEXTKEY> has been clarified.
 
-XXX Any significant changes to the testing of a freshly built perl should be
-listed here.  Changes which create B<new> files in F<t/> go here as do any
-large changes to the testing harness (e.g. when parallel testing was added).
-Changes to existing files in F<t/> aren't worth summarizing, although the bugs
-that they represent may be covered elsewhere.
+=back
 
-[ List each test improvement as a =item entry ]
+=head3 L<perlunicode>
 
 =over 4
 
 =item *
 
-XXX
+Discourage use of 'In' prefix for Unicode Block property.
 
 =back
 
-=head1 Platform Support
+=head3 L<perlvar>
 
-XXX Any changes to platform support should be listed in the sections below.
+=over 4
 
-[ Within the sections, list each platform as a =item entry with specific
-changes as paragraphs below it. ]
+=item *
 
-=head2 New Platforms
+The documentation of C<$@> was reworded to clarify that it is not just for
+syntax errors in C<eval>.
+L<[perl #124034]|https://rt.perl.org/Ticket/Display.html?id=124034>
 
-XXX List any platforms that this version of perl compiles on, that previous
-versions did not.  These will either be enabled by new files in the F<hints/>
-directories, or new subdirectories and F<README> files at the top level of the
-source tree.
+=item *
 
-=over 4
+The specific true value of C<$!{E...}> is now documented, noting that it is
+subject to change and not guaranteed.
 
-=item XXX-some-platform
+=item *
 
-XXX
+Use of C<$OLD_PERL_VERSION> is now discouraged.
 
 =back
 
-=head2 Discontinued Platforms
-
-XXX List any platforms that this version of perl no longer compiles on.
+=head3 L<perlxs>
 
 =over 4
 
-=item XXX-some-platform
+=item *
 
-XXX
+The documentation of C<PROTOTYPES> has been corrected; they are I<disabled>
+by default, not I<enabled>.
 
 =back
 
-=head2 Platform-Specific Notes
+=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
 
-XXX List any changes for specific platforms.  This could include configuration
-and compilation changes or changes in portability/compatibility.  However,
-changes within modules for platforms should generally be listed in the
-L</Modules and Pragmata> section.
+=head3 New Errors
 
 =over 4
 
-=item XXX-some-platform
+=item *
 
-XXX
+L<%s must not be a named sequence in transliteration operator|perldiag/"%s 
must not be a named sequence in transliteration operator">
 
-=back
+(F) Transliteration (C<tr///> and C<y///>) transliterates individual
+characters.  But a named sequence by definition is more than an
+individual charater, and hence doing this operation on it doesn't make
+sense.
 
-=head1 Internal Changes
+=item *
 
-XXX Changes which affect the interface available to C<XS> code go here.  Other
-significant internal changes for future core maintainers should be noted as
-well.
+L<Can't find Unicode property definition "%s" in regex;|perldiag/"Can't find 
Unicode property definition "%s" in regex; marked by <-- HERE in m/%s/">
 
-[ List each change as a =item entry ]
+=item *
 
-=over 4
+L<Can't redeclare "%s" in "%s"|perldiag/"Can't redeclare "%s" in "%s"">
+
+(F) A "my", "our" or "state" declaration was found within another declaration,
+such as C<my ($x, my($y), $z)> or C<our (my $x)>.
 
 =item *
 
-XXX
+L<Character following \p must be '{' or a single-character Unicode property 
name in regex;|perldiag/"Character following \%c must be '{' or a 
single-character Unicode property name in regex; marked b ... [21 chars 
truncated]
 
-=back
+=item *
 
-=head1 Selected Bug Fixes
+L<Empty \%c in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>
+|perldiag/"Empty \%c in regex; marked by <-- HERE in mE<sol>%sE<sol>">
+
+=item *
+
+L<Illegal user-defined property name|perldiag/"Illegal user-defined property 
name">
+
+=item *
+
+L<Invalid number '%s' for -C option.|perldiag/"Invalid number '%s' for -C 
option.">
+
+(F) You supplied a number to the -C option that either has extra leading
+zeroes or overflows perl's unsigned integer representation.
+
+=item *
+
+L<<< Sequence (?... not terminated in regex; marked by S<<-- HERE> in 
mE<sol>%sE<sol>|perldiag/"Sequence (?... not terminated in regex; marked by <-- 
HERE in mE<sol>%sE<sol>" >>>
+
+=item *
+
+L<<< Sequence (?PE<lt>... not terminated in regex; marked by E<lt>-- HERE in 
mE<sol>%sE<sol>
+|perldiag/"Sequence (?PE<lt>... not terminated in regex; marked by <-- HERE in 
mE<sol>%sE<sol>" >>>
+
+=item *
+
+L<Sequence (?PE<gt>... not terminated in regex; marked by E<lt>-- HERE in 
mE<sol>%sE<sol>
+|perldiag/"Sequence (?PE<gt>... not terminated in regex; marked by <-- HERE in 
mE<sol>%sE<sol>">
 
-XXX Important bug fixes in the core language are summarized here.  Bug fixes in
-files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
+=back
 
-[ List each fix as a =item entry ]
+=head3 New Warnings
 
 =over 4
 
 =item *
 
-A race condition which occurred when computing C<"$!"> with threads
-activated has been fixed.  This showed up only on Darwin platforms.  A
-related problem on Cygwin platforms involving UTF-8 strings has also
-been fixed.  [perl #127708]
+L<Assuming NOT a POSIX class since %s in regex; marked by E<lt>-- HERE in 
mE<sol>%sE<sol>|
+perldiag/Assuming NOT a POSIX class since %s in regex; marked by <-- HERE in 
mE<sol>%sE<sol>>
+
+=item *
+
+L<%s() is deprecated on :utf8 handles|perldiag/"%s() is deprecated on :utf8 
handles">
+
+(W deprecated) The sysread(), recv(), syswrite() and send() operators
+are deprecated on handles that have the C<:utf8> layer, either
+explicitly, or implicitly, eg., with the C<:encoding(UTF-16LE)> layer.
+
+Both sysread() and recv() currently use only the C<:utf8> flag for the
+stream, ignoring the actual layers.  Since sysread() and recv() do no
+UTF-8 validation they can end up creating invalidly encoded scalars.
+
+Similarly, syswrite() and send() use only the C<:utf8> flag, otherwise
+ignoring any layers.  If the flag is set, both write the value UTF-8
+encoded, even if the layer is some different encoding, such as the
+example above.
+
+Ideally, all of these operators would completely ignore the C<:utf8>
+state, working only with bytes, but this would result in silently
+breaking existing code.  To avoid this a future version of perl will
+throw an exception when any of sysread(), recv(), syswrite() or send()
+are called on handle with the C<:utf8> layer.
 
 =back
 
-=head1 Known Problems
+=head2 Changes to Existing Diagnostics
+
+=over 4
+
+=item *
+
+Accessing the C<IO> part of a glob as C<FILEHANDLE> instead of C<IO> is no
+longer deprecated.  It is discouraged to encourage uniformity (so that, for
+example, one can grep more easily) but it will not be removed.
+L<[perl #127060]|https://rt.perl.org/Ticket/Display.html?id=127060>
+
+=item *
+
+The diagnostic C<< Hexadecimal float: internal error >> has been changed to
+C<< Hexadecimal float: internal error (%s) >> to include more information.
+
+=item *
+
+L<Can't modify non-lvalue subroutine call of &%s|perldiag/"Can't modify 
non-lvalue subroutine call of &%s">
+
+This error now reports the name of the non-lvalue subroutine you attempted to
+use as an lvalue.
 
-XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
-tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
-platform specific bugs also go here.
+=item *
+
+When running out of memory during an attempt the increase the stack
+size, previously, perl would die using the cryptic message
+C<< panic: av_extend_guts() negative count (-9223372036854775681) >>.
+This has been fixed to show the prettier message:
+L<< Out of memory during stack extend|perldiag/"Out of memory during %s 
extend" >>
+
+=back
 
-[ List each fix as a =item entry ]
+=head1 Configuration and Compilation
 
 =over 4
 
 =item *
 
-XXX
+C<Configure> now acts as if the C<-O> option is always passed, allowing command
+line options to override saved configuration.  This should eliminate confusion
+when command line options are ignored for no obvious reason.  C<-O> is now
+permitted, but ignored.
+
+=item *
+
+Bison 3.0 is now supported.
+
+=item *
+
+F<Configure> no longer probes for F<libnm> by default.  Originally
+this was the "New Math" library, but the name has been re-used by the
+GNOME NetworkManager.
+L<[perl #127131]|https://rt.perl.org/Ticket/Display.html?id=127131>
+
+=item *
+
+Added F<Configure> probes for C<newlocale>, C<freelocale>, and C<uselocale>.
+
+=item *
+
+C<< PPPort.so/PPPort.dll >> no longer get installed, as they are
+not used by C<< PPPort.pm >>, only by its test files.
+
+=item *
+
+It is now possible to specify which compilation date to show on
+C<< perl -V >> output, by setting the macro C<< PERL_BUILD_DATE >>.
+
+=item *
+
+Using the C<NO_HASH_SEED> define in combination with the default hash algorithm
+C<PERL_HASH_FUNC_ONE_AT_A_TIME_HARD> resulted in a fatal error while compiling
+the interpreter, since Perl 5.17.10.  This has been fixed.
+
+=item *
+
+F<Configure> should handle spaces in paths a little better.
+
+=item *
+
+No longer generate EBCDIC POSIX-BC tables.  We don't believe anyone is
+using Perl and POSIX-BC at this time, and by not generating these tables
+it saves time during development, and makes the resulting tar ball smaller.
+
+=item *
+
+The GNU Make makefile for Win32 now supports parallel builds.  [perl #126632]
+
**** PATCH TRUNCATED AT 2000 LINES -- 1393 NOT SHOWN ****

--
Perl5 Master Repository

Reply via email to