In perl.git, the branch tonyc/133030-hires-utime has been updated

<https://perl5.git.perl.org/perl.git/commitdiff/c9cdee00bbe4a2d06f7322f191488df530e4e0f1?hp=b34727e1ced744dc7136818fb65989de92660fc0>

  discards  b34727e1ced744dc7136818fb65989de92660fc0 (commit)
- Log -----------------------------------------------------------------
commit c9cdee00bbe4a2d06f7322f191488df530e4e0f1
Author: Tony Cook <t...@develop-help.com>
Date:   Thu Apr 12 00:19:18 2018 +1000

    (perl #133030) probe for and use utimes() if utimensat() isn't available
    
    Older BSDs implement utimes() which can set times down to the microsecond.

commit e151966bc2237a3a65d597f520e2675f84ee64c2
Author: Tony Cook <t...@develop-help.com>
Date:   Thu Apr 12 21:11:12 2018 +1000

    (perl #133030) make utime() available only if we have both fd and name 
setting

-----------------------------------------------------------------------

Summary of changes:
 MANIFEST                                           |   5 +-
 Porting/Maintainers.pl                             |   2 +-
 Porting/epigraphs.pod                              |  31 +++
 Porting/release_schedule.pod                       |   4 +-
 .../t/{31_plv52511.t => 33_plv52711r.t}            |  68 +++---
 cpan/version/lib/version.pm                        |   2 +-
 cpan/version/lib/version.pod                       |   7 +-
 cpan/version/lib/version/regex.pm                  |   2 +-
 cpan/version/t/01base.t                            |   2 +-
 cpan/version/t/02derived.t                         |   2 +-
 cpan/version/t/03require.t                         |   2 +-
 cpan/version/t/05sigdie.t                          |   2 +-
 cpan/version/t/06noop.t                            |   2 +-
 cpan/version/t/07locale.t                          |   2 +-
 cpan/version/t/08_corelist.t                       |   2 +-
 cpan/version/t/09_list_util.t                      |   2 +-
 dist/Module-CoreList/Changes                       |   6 +
 dist/Module-CoreList/lib/Module/CoreList.pm        |  43 ++++
 dist/Module-CoreList/lib/Module/CoreList/Utils.pm  |  14 ++
 dist/Time-HiRes/Makefile.PL                        |  13 +-
 embed.fnc                                          | 168 +++++++-------
 embed.h                                            | 162 ++++++++++++++
 makedef.pl                                         |   4 +-
 mathoms.c                                          |  32 +--
 pod/perl.pod                                       |   2 +
 pod/perl5244delta.pod                              | 130 +++++++++++
 pod/perl5262delta.pod                              | 245 +++++++++++++++++++++
 pod/perlhist.pod                                   |   2 +
 pod/perlvar.pod                                    |  19 +-
 proto.h                                            | 178 ++++++++++++++-
 regcomp.c                                          |  33 ++-
 regexec.c                                          |  40 ++--
 t/porting/customized.dat                           |   4 +-
 utf8.c                                             |  46 +++-
 utils/perlbug.PL                                   |   4 +
 vutil.c                                            |  30 +--
 vutil.h                                            |  47 ++--
 vxs.inc                                            |   2 +-
 win32/GNUmakefile                                  |   3 +-
 win32/makefile.mk                                  |   3 +-
 win32/pod.mak                                      |   8 +
 win32/win32.h                                      |  43 +++-
 42 files changed, 1146 insertions(+), 272 deletions(-)
 copy cpan/Config-Perl-V/t/{31_plv52511.t => 33_plv52711r.t} (66%)
 create mode 100644 pod/perl5244delta.pod
 create mode 100644 pod/perl5262delta.pod

diff --git a/MANIFEST b/MANIFEST
index 7eb34a712d..ec02f29481 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -244,7 +244,8 @@ cpan/Config-Perl-V/t/28_plv52201w.t         Config::Perl::V
 cpan/Config-Perl-V/t/29_plv5235w.t             Config::Perl::V
 cpan/Config-Perl-V/t/30_plv5240.t              Config::Perl::V
 cpan/Config-Perl-V/t/31_plv52511.t             Config::Perl::V
-cpan/Config-Perl-V/t/32_plv5261rc1.t
+cpan/Config-Perl-V/t/32_plv5261rc1.t           Config::Perl::V
+cpan/Config-Perl-V/t/33_plv52711r.t            Config::Perl::V
 cpan/Config-Perl-V/V.pm                                Config::Perl::V
 cpan/CPAN/lib/App/Cpan.pm              helper package for CPAN.pm
 cpan/CPAN/lib/CPAN.pm                  Interface to Comprehensive Perl Archive 
Network
@@ -5063,8 +5064,10 @@ pod/perl5240delta.pod            Perl changes in version 
5.24.0
 pod/perl5241delta.pod          Perl changes in version 5.24.1
 pod/perl5242delta.pod          Perl changes in version 5.24.2
 pod/perl5243delta.pod          Perl changes in version 5.24.3
+pod/perl5244delta.pod          Perl changes in version 5.24.4
 pod/perl5260delta.pod          Perl changes in version 5.26.0
 pod/perl5261delta.pod          Perl changes in version 5.26.1
+pod/perl5262delta.pod          Perl changes in version 5.26.2
 pod/perl5270delta.pod          Perl changes in version 5.27.0
 pod/perl52710delta.pod         Perl changes in version 5.27.10
 pod/perl5271delta.pod          Perl changes in version 5.27.1
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 9e5afa2bfd..f24287a716 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -808,7 +808,7 @@ use File::Glob qw(:case);
     },
 
     'Module::CoreList' => {
-        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20180221.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20180414.tar.gz',
         'FILES'        => q[dist/Module-CoreList],
     },
 
diff --git a/Porting/epigraphs.pod b/Porting/epigraphs.pod
index a1dbdf8771..927290f77c 100644
--- a/Porting/epigraphs.pod
+++ b/Porting/epigraphs.pod
@@ -257,6 +257,22 @@ L<Announced on 2017-05-31 by Sawyer 
X|http://www.nntp.perl.org/group/perl.perl5.
 
     -- Bertrand Russell, The Road to Happiness
 
+=head2 v5.26.2 - Desmond Morris, "Catwatching: The Essential Guide to Cat 
Behaviour"
+
+L<Announced on 2018-04-14 by Steve 
Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2018/04/msg250440.html>
+
+How does a cat use its whiskers?  The usual answer is that the whiskers
+are feelers that enable a cat to tell whether a gap is wide enough for
+it to squeeze through, but the truth is more complicated and more
+remarkable.  In addition to their obvious role as feelers sensitive to
+touch, the whiskers also operate as air-current detectors.  As the cat
+moves along in the dark it needs to manoeuvre past solid objects without
+touching them.  Each solid object it approaches causes slight eddies in
+the air, minute disturbances in the currents of air movements, and the
+cat's whiskers are so amazingly sensitive that they can read these air
+changes and respond to the presence of solid obstacles even without
+touching them.
+
 =head2 v5.26.2-RC1 - Desmond Morris, "Catwatching: The Essential Guide to Cat 
Behaviour"
 
 L<Announced on 2018-03-24 by Steve 
Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2018/03/msg250103.html>
@@ -557,6 +573,21 @@ L<Announced on 2016-05-09 by Ricardo 
Signes|http://www.nntp.perl.org/group/perl.
   To find that the utmost reward
     Of daring should be still to dare.
 
+=head2 v5.24.4 - Desmond Morris, "Catwatching: The Essential Guide to Cat 
Behaviour"
+
+L<Announced on 2018-04-14 by Steve 
Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2018/04/msg250439.html>
+
+Cats hate doors.  Doors simply do not register in the evolutionary story
+of the cat family.  They constantly block patrolling activities and
+prevent cats from exploring their home range and then returning to their
+central, secure base at will.  Humans often do not understand that a cat
+needs to make only a brief survey of its territory before returning with
+all the necessary information about the activities of other cats in the
+vicinity.  It likes to make these tours of inspection at frequent
+intervals, but does not want to stay outside for very long, unless there
+has been some special and unexpected change in the condition of the
+local feline population.
+
 =head2 v5.24.4-RC1 - Desmond Morris, "Catwatching: The Essential Guide to Cat 
Behaviour"
 
 L<Announced on 2018-03-24 by Steve 
Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2018/03/msg250102.html>
diff --git a/Porting/release_schedule.pod b/Porting/release_schedule.pod
index 39cee52b52..5f958881bd 100644
--- a/Porting/release_schedule.pod
+++ b/Porting/release_schedule.pod
@@ -25,7 +25,7 @@ Code freezes (which happen in the 5.27.X series)
 
   2017-05-30  5.26.0 ✓        Sawyer X
   2017-09-22  5.26.1 ✓        Steve Hay
-  2018-04-14  5.26.2          Steve Hay
+  2018-04-14  5.26.2 ✓        Steve Hay
 
 =head2 Perl 5.24
 
@@ -33,7 +33,7 @@ Code freezes (which happen in the 5.27.X series)
   2017-01-14  5.24.1 ✓        Steve Hay
   2017-07-15  5.24.2 ✓        Steve Hay
   2017-09-22  5.24.3 ✓        Steve Hay
-  2018-04-14  5.24.4          Steve Hay
+  2018-04-14  5.24.4 ✓        Steve Hay
 
 =head2 Perl 5.22
 
diff --git a/cpan/Config-Perl-V/t/31_plv52511.t 
b/cpan/Config-Perl-V/t/33_plv52711r.t
similarity index 66%
copy from cpan/Config-Perl-V/t/31_plv52511.t
copy to cpan/Config-Perl-V/t/33_plv52711r.t
index 762a63d2e8..851c224bde 100644
--- a/cpan/Config-Perl-V/t/31_plv52511.t
+++ b/cpan/Config-Perl-V/t/33_plv52711r.t
@@ -21,8 +21,8 @@ ok (my $conf = Config::Perl::V::plv2hash (<DATA>), "Read perl 
-v block");
 ok (exists $conf->{$_}, "Has $_ entry") for qw( build environment config inc );
 
 is ($conf->{build}{osname}, $conf->{config}{osname}, "osname");
-is ($conf->{build}{stamp}, "Feb 27 2017 15:02:41", "Build time");
-is ($conf->{config}{version}, "5.25.11", "reconstructed \$Config{version}");
+is ($conf->{build}{stamp}, "Apr 12 2018 13:37:01", "Build time");
+is ($conf->{config}{version}, "5.27.11", "reconstructed \$Config{version}");
 
 my $opt = Config::Perl::V::plv2hash ("")->{build}{options};
 foreach my $o (sort qw(
@@ -42,53 +42,52 @@ foreach my $o (sort keys %$opt) {
     }
 
 eval { require Digest::MD5; };
-my $md5 = $@ ? "0" x 32 : "f0e463400e40ca35b67cec3834b5b9b7";
+my $md5 = $@ ? "0" x 32 : "bd9cf7a142ddbb434adea5b08eaefdc8";
 ok (my $sig = Config::Perl::V::signature ($conf), "Get signature");
 is ($sig, $md5, "MD5");
 
-is_deeply ($conf->{build}{patches},
-    [ "SMOKEaa9ac6cf00899a6f55881d4ca6c1214215dc83ee" ], "Local patches");
+is_deeply ($conf->{build}{patches}, [], "Local patches");
 
 my %check = (
     alignbytes      => 16,
-    api_version     => 25,
+    api_version     => 27,
     bincompat5005   => "undef",
     byteorder       => 12345678,
     cc              => "cc",
     cccdlflags      => "-fPIC",
     ccdlflags       => "-Wl,-E",
-    config_args     => "-des -Dusedevel -Duseithreads -Duse64bitall 
-Duselongdouble -DDEBUGGING",
-    gccversion      => "6.3.1 20170202 [gcc-6-branch revision 245119]",
-    gnulibc_version => "2.24",
+    config_args     => "-Dusedevel -Duse64bitall -Dusethreads -Duseithreads 
-Duselongdouble -des",
+    gccversion      => "7.3.1 20180307 [gcc-7-branch revision 258314]",
+    gnulibc_version => "2.27",
     ivsize          => 8,
     ivtype          => "long",
     ld              => "cc",
-    lddlflags       => "-shared -O2 -g -L/pro/local/lib 
-fstack-protector-strong",
+    lddlflags       => "-shared -O2 -L/pro/local/lib -fstack-protector-strong",
     ldflags         => "-L/pro/local/lib -fstack-protector-strong",
-    libc            => "libc-2.24.so",
+    libc            => "libc-2.27.so",
     lseektype       => "off_t",
-    osvers          => "4.10.0-1-default",
+    osvers          => "4.16.0-1-default",
     use64bitall     => "define",
     use64bitint     => "define",
     usemymalloc     => "n",
     default_inc_excludes_dot
-                   => "undef",
+                   => "define",
     );
 is ($conf->{config}{$_}, $check{$_}, "reconstructed \$Config{$_}") for sort 
keys %check;
 
 ok (my $info = summary ($conf), "A summary");
 ok (exists $info->{$_}, "Summary has $_") for qw( cc config_args usemymalloc 
default_inc_excludes_dot );
-is ($info->{default_inc_excludes_dot}, "undef", "This build has . in INC");
+is ($info->{default_inc_excludes_dot}, "define", "This build does not have . 
in INC");
 
 __END__
-Summary of my perl5 (revision 5 version 25 subversion 11) configuration:
-  Snapshot of: aa9ac6cf00899a6f55881d4ca6c1214215dc83ee
+Summary of my perl5 (revision 5 version 27 subversion 11) configuration:
+  Snapshot of: 5f6af817add6d2df3603e0e94b6eb27ba5fb3970
   Platform:
     osname=linux
-    osvers=4.10.0-1-default
+    osvers=4.16.0-1-default
     archname=x86_64-linux-thread-multi-ld
-    uname='linux lx09 4.10.0-1-default #1 smp preempt mon feb 20 16:47:26 utc 
2017 (81ace5a) x86_64 x86_64 x86_64 gnulinux '
-    config_args='-des -Dusedevel -Duseithreads -Duse64bitall -Duselongdouble 
-DDEBUGGING'
+    uname='linux lx09 4.16.0-1-default #1 smp preempt wed apr 4 13:35:56 utc 
2018 (e16f96d) x86_64 x86_64 x86_64 gnulinux '
+    config_args='-Dusedevel -Duse64bitall -Dusethreads -Duseithreads 
-Duselongdouble -des'
     hint=recommended
     useposix=true
     d_sigaction=define
@@ -98,15 +97,15 @@ Summary of my perl5 (revision 5 version 25 subversion 11) 
configuration:
     use64bitall=define
     uselongdouble=define
     usemymalloc=n
-    default_inc_excludes_dot=undef
+    default_inc_excludes_dot=define
     bincompat5005=undef
   Compiler:
     cc='cc'
-    ccflags ='-D_REENTRANT -D_GNU_SOURCE -fPIC -DDEBUGGING -fwrapv -DDEBUGGING 
-fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-    optimize='-O2 -g'
-    cppflags='-D_REENTRANT -D_GNU_SOURCE -fPIC -DDEBUGGING -fwrapv -DDEBUGGING 
-fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include'
+    ccflags ='-D_REENTRANT -D_GNU_SOURCE -fPIC -DDEBUGGING -fwrapv 
-fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
+    optimize='-O2'
+    cppflags='-D_REENTRANT -D_GNU_SOURCE -fPIC -DDEBUGGING -fwrapv 
-fno-strict-aliasing -pipe -fstack-protector-strong -I/pro/local/include'
     ccversion=''
-    gccversion='6.3.1 20170202 [gcc-6-branch revision 245119]'
+    gccversion='7.3.1 20180307 [gcc-7-branch revision 258314]'
     gccosandvers=''
     intsize=4
     longsize=8
@@ -130,21 +129,21 @@ Summary of my perl5 (revision 5 version 25 subversion 11) 
configuration:
   Linker and Libraries:
     ld='cc'
     ldflags ='-L/pro/local/lib -fstack-protector-strong'
-    libpth=/usr/local/lib /usr/lib64/gcc/x86_64-suse-linux/6/include-fixed 
/usr/lib64/gcc/x86_64-suse-linux/6/../../../../x86_64-suse-linux/lib /usr/lib 
/pro/local/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 
/usr/local/lib64
+    libpth=/usr/local/lib /usr/lib64/gcc/x86_64-suse-linux/7/include-fixed 
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/lib /usr/lib 
/pro/local/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 
/usr/local/lib64
     libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
     perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
-    libc=libc-2.24.so
+    libc=libc-2.27.so
     so=so
     useshrplib=false
     libperl=libperl.a
-    gnulibc_version='2.24'
+    gnulibc_version='2.27'
   Dynamic Linking:
     dlsrc=dl_dlopen.xs
     dlext=so
     d_dlsymun=undef
     ccdlflags='-Wl,-E'
     cccdlflags='-fPIC'
-    lddlflags='-shared -O2 -g -L/pro/local/lib -fstack-protector-strong'
+    lddlflags='-shared -O2 -L/pro/local/lib -fstack-protector-strong'
 
 
 Characteristics of this binary (from libperl):
@@ -174,14 +173,11 @@ Characteristics of this binary (from libperl):
     USE_PERLIO
     USE_PERL_ATOF
     USE_REENTRANT_API
-  Locally applied patches:
-    SMOKEaa9ac6cf00899a6f55881d4ca6c1214215dc83ee
   Built under linux
-  Compiled at Feb 27 2017 15:02:41
+  Compiled at Apr 12 2018 13:37:01
   @INC:
     lib
-    /pro/lib/perl5/site_perl/5.25.11/x86_64-linux-thread-multi-ld
-    /pro/lib/perl5/site_perl/5.25.11
-    /pro/lib/perl5/5.25.11/x86_64-linux-thread-multi-ld
-    /pro/lib/perl5/5.25.11
-    .
+    /pro/lib/perl5/site_perl/5.27.11/x86_64-linux-thread-multi-ld
+    /pro/lib/perl5/site_perl/5.27.11
+    /pro/lib/perl5/5.27.11/x86_64-linux-thread-multi-ld
+    /pro/lib/perl5/5.27.11
diff --git a/cpan/version/lib/version.pm b/cpan/version/lib/version.pm
index c85e8a029b..100bd03909 100644
--- a/cpan/version/lib/version.pm
+++ b/cpan/version/lib/version.pm
@@ -10,7 +10,7 @@ if ($] >= 5.015) {
 
 use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
 
-$VERSION = 0.9918;
+$VERSION = 0.9921;
 $CLASS = 'version';
 
 # avoid using Exporter
diff --git a/cpan/version/lib/version.pod b/cpan/version/lib/version.pod
index 42691b1e0c..9f3b27d0f4 100644
--- a/cpan/version/lib/version.pod
+++ b/cpan/version/lib/version.pod
@@ -266,10 +266,9 @@ leading-v and at least 3 components.
 
 =head2 numify()
 
-Returns a value representing the object in a pure decimal form without
-trailing zeroes.
+Returns a value representing the object in a pure decimal.
 
- version->declare('v1.2')->numify;  # 1.002
+ version->declare('v1.2')->numify;  # 1.002000
  version->parse('1.2')->numify;     # 1.200
 
 =head2 stringify()
@@ -280,7 +279,7 @@ way perl would normally represent it in a string.  This 
method is used whenever
 a version object is interpolated into a string.
 
  version->declare('v1.2')->stringify;    # v1.2
- version->parse('1.200')->stringify;     # 1.200
+ version->parse('1.200')->stringify;     # 1.2
  version->parse(1.02_30)->stringify;     # 1.023
 
 =head1 EXPORTED FUNCTIONS
diff --git a/cpan/version/lib/version/regex.pm 
b/cpan/version/lib/version/regex.pm
index 8d66e19c00..77d54512ed 100644
--- a/cpan/version/lib/version/regex.pm
+++ b/cpan/version/lib/version/regex.pm
@@ -8,7 +8,7 @@ use vars qw(
     $LAX_DECIMAL_VERSION $LAX_DOTTED_DECIMAL_VERSION
 );
 
-$VERSION = 0.9918;
+$VERSION = 0.9921;
 
 #--------------------------------------------------------------------------#
 # Version regexp components
diff --git a/cpan/version/t/01base.t b/cpan/version/t/01base.t
index df0f6f096e..608dc52f0b 100644
--- a/cpan/version/t/01base.t
+++ b/cpan/version/t/01base.t
@@ -14,7 +14,7 @@ BEGIN {
         )
     );
     require $coretests;
-    use_ok('version', 0.9918);
+    use_ok('version', 0.9921);
 }
 
 BaseTests("version","new","qv");
diff --git a/cpan/version/t/02derived.t b/cpan/version/t/02derived.t
index 3191c9ad1a..f3d3ffe173 100644
--- a/cpan/version/t/02derived.t
+++ b/cpan/version/t/02derived.t
@@ -15,7 +15,7 @@ BEGIN {
         )
     );
     require $coretests;
-    use_ok("version", 0.9918);
+    use_ok("version", 0.9921);
     # If we made it this far, we are ok.
 }
 
diff --git a/cpan/version/t/03require.t b/cpan/version/t/03require.t
index d4744867b4..4146d303c1 100644
--- a/cpan/version/t/03require.t
+++ b/cpan/version/t/03require.t
@@ -19,7 +19,7 @@ BEGIN {
 # Don't want to use, because we need to make sure that the import doesn't
 # fire just yet (some code does this to avoid importing qv() and delare()).
 require_ok("version");
-is $version::VERSION, 0.9918, "Make sure we have the correct class";
+is $version::VERSION, 0.9921, "Make sure we have the correct class";
 ok(!"main"->can("qv"), "We don't have the imported qv()");
 ok(!"main"->can("declare"), "We don't have the imported declare()");
 
diff --git a/cpan/version/t/05sigdie.t b/cpan/version/t/05sigdie.t
index 3801a35ad6..c9eecae766 100644
--- a/cpan/version/t/05sigdie.t
+++ b/cpan/version/t/05sigdie.t
@@ -14,7 +14,7 @@ BEGIN {
 }
 
 BEGIN {
-    use version 0.9918;
+    use version 0.9921;
 }
 
 pass "Didn't get caught by the wrong DIE handler, which is a good thing";
diff --git a/cpan/version/t/06noop.t b/cpan/version/t/06noop.t
index 6c6de7f4f3..25f12c6010 100644
--- a/cpan/version/t/06noop.t
+++ b/cpan/version/t/06noop.t
@@ -7,7 +7,7 @@
 use Test::More qw/no_plan/;
 
 BEGIN {
-    use_ok('version', 0.9918);
+    use_ok('version', 0.9921);
 }
 
 my $v1 = version->new('1.2');
diff --git a/cpan/version/t/07locale.t b/cpan/version/t/07locale.t
index a197bdcf16..8ac74a6e4f 100644
--- a/cpan/version/t/07locale.t
+++ b/cpan/version/t/07locale.t
@@ -11,7 +11,7 @@ use Test::More tests => 8;
 use Config;
 
 BEGIN {
-    use_ok('version', 0.9918);
+    use_ok('version', 0.9921);
 }
 
 SKIP: {
diff --git a/cpan/version/t/08_corelist.t b/cpan/version/t/08_corelist.t
index 92a76bdf78..88a3724693 100644
--- a/cpan/version/t/08_corelist.t
+++ b/cpan/version/t/08_corelist.t
@@ -5,7 +5,7 @@
 #########################
 
 use Test::More tests => 3;
-use_ok("version", 0.9918);
+use_ok("version", 0.9921);
 
 # do strict lax tests in a sub to isolate a package to test importing
 SKIP: {
diff --git a/cpan/version/t/09_list_util.t b/cpan/version/t/09_list_util.t
index a263c2d47f..6a420665d6 100644
--- a/cpan/version/t/09_list_util.t
+++ b/cpan/version/t/09_list_util.t
@@ -4,7 +4,7 @@
 #########################
 
 use strict;
-use_ok("version", 0.9918);
+use_ok("version", 0.9921);
 use Test::More;
 
 BEGIN {
diff --git a/dist/Module-CoreList/Changes b/dist/Module-CoreList/Changes
index f19640addb..c167a18d65 100644
--- a/dist/Module-CoreList/Changes
+++ b/dist/Module-CoreList/Changes
@@ -1,3 +1,9 @@
+5.20180414_26
+  - Updated for v5.26.2
+
+5.20180414_24
+  - Updated for v5.24.4
+
 5.20180221
   - Updated for v5.27.10
 
diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm 
b/dist/Module-CoreList/lib/Module/CoreList.pm
index e5106d6b31..01f5da3ebe 100644
--- a/dist/Module-CoreList/lib/Module/CoreList.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -330,6 +330,8 @@ sub changes_between {
     5.027008 => '2018-01-20',
     5.027009 => '2018-02-20',
     5.027010 => '2018-03-20',
+    5.024004 => '2018-04-14',
+    5.026002 => '2018-04-14',
     5.027011 => '2018-04-20',
   );
 
@@ -15367,6 +15369,33 @@ for my $version ( sort { $a <=> $b } keys %released ) {
         removed => {
         }
     },
+    5.024004 => {
+        delta_from => 5.024003,
+        changed => {
+            'B::Op_private'         => '5.024004',
+            'Config'                => '5.024004',
+            'Module::CoreList'      => '5.20180414_24',
+            'Module::CoreList::TieHashDelta'=> '5.20180414_24',
+            'Module::CoreList::Utils'=> '5.20180414_24',
+        },
+        removed => {
+        }
+    },
+    5.026002 => {
+        delta_from => 5.026001,
+        changed => {
+            'B::Op_private'         => '5.026002',
+            'Config'                => '5.026002',
+            'Module::CoreList'      => '5.20180414_26',
+            'Module::CoreList::TieHashDelta'=> '5.20180414_26',
+            'Module::CoreList::Utils'=> '5.20180414_26',
+            'PerlIO::via'           => '0.17',
+            'Term::ReadLine'        => '1.17',
+            'Unicode::UCD'          => '0.69',
+        },
+        removed => {
+        }
+    },
     5.027011 => {
         delta_from => 5.027010,
         changed => {
@@ -16242,6 +16271,20 @@ sub is_core
         removed => {
         }
     },
+    5.024004 => {
+        delta_from => 5.024003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+    5.026002 => {
+        delta_from => 5.026001,
+        changed => {
+        },
+        removed => {
+        }
+    },
     5.027011 => {
         delta_from => 5.027010,
         changed => {
diff --git a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm 
b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
index d8cc9d7bbd..1cbb727e98 100644
--- a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
@@ -1368,6 +1368,20 @@ my %delta = (
         removed => {
         }
     },
+    5.024004 => {
+        delta_from => 5.024003,
+        changed => {
+        },
+        removed => {
+        }
+    },
+    5.026002 => {
+        delta_from => 5.026001,
+        changed => {
+        },
+        removed => {
+        }
+    },
     5.027011 => {
         delta_from => 5.027010,
         changed => {
diff --git a/dist/Time-HiRes/Makefile.PL b/dist/Time-HiRes/Makefile.PL
index ca1fe5125f..7206869318 100644
--- a/dist/Time-HiRes/Makefile.PL
+++ b/dist/Time-HiRes/Makefile.PL
@@ -422,12 +422,11 @@ sub has_utimes {
     my ($natime, $nmtime, $nctime, $scale) = _stat_code()
       or return 0;
     return 1 if
-    try_compile_and_link(<<EOM);
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
+    try_compile_and_link(<<EOM, run => 1);
 #include <sys/time.h>
 #include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
 int main(int argc, char** argv)
 {
     int ret1, ret2;
@@ -455,12 +454,12 @@ int main(int argc, char** argv)
 
     /* (hopefully) restore the origina m/atimes */
     ts2[0].tv_sec = st1.st_atime;
-    ts2[0].tv_usec = st1.$natime;
+    ts2[0].tv_usec = st1.$natime / $scale;
     ts2[1].tv_sec = st1.st_mtime;
-    ts2[1].tv_usec = st1.$nmtime;
+    ts2[1].tv_usec = st1.$nmtime / $scale;
     utimes("Changes", ts2);
 
-    exit(1);
+    exit(0);
 }
 EOM
 }
diff --git a/embed.fnc b/embed.fnc
index 641377be08..581ca79ae9 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -358,8 +358,8 @@ Afnp        |void   |sv_catpvf_nocontext|NN SV *const sv|NN 
const char *const pat|...
 Afnp   |void   |sv_setpvf_nocontext|NN SV *const sv|NN const char *const 
pat|...
 Afnp   |void   |sv_catpvf_mg_nocontext|NN SV *const sv|NN const char *const 
pat|...
 Afnp   |void   |sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const 
pat|...
-Afnp   |int    |fprintf_nocontext|NN PerlIO *stream|NN const char *format|...
-Afnp   |int    |printf_nocontext|NN const char *format|...
+Abfnp  |int    |fprintf_nocontext|NN PerlIO *stream|NN const char *format|...
+Abfnp  |int    |printf_nocontext|NN const char *format|...
 #endif
 : Used in pp.c
 p      |SV *   |core_prototype |NULLOK SV *sv|NN const char *name \
@@ -418,7 +418,7 @@ Ap  |void   |dounwind       |I32 cxix
 pmb    |bool|do_aexec  |NULLOK SV* really|NN SV** mark|NN SV** sp
 : Used in pp_sys.c
 p      |bool|do_aexec5 |NULLOK SV* really|NN SV** mark|NN SV** sp|int fd|int 
do_report
-Ap     |int    |do_binmode     |NN PerlIO *fp|int iotype|int mode
+Abp    |int    |do_binmode     |NN PerlIO *fp|int iotype|int mode
 : Used in pp.c
 Ap     |bool   |do_close       |NULLOK GV* gv|bool not_implicit
 : Defined in doio.c, used only in pp_sys.c
@@ -462,7 +462,7 @@ Ap  |void   |do_join        |NN SV *sv|NN SV *delim|NN SV 
**mark|NN SV **sp
 pR     |I32    |do_ncmp        |NN SV *const left|NN SV *const right
 Apmb   |bool   |do_open        |NN GV* gv|NN const char* name|I32 len|int 
as_raw \
                                |int rawmode|int rawperm|NULLOK PerlIO* 
supplied_fp
-Ap     |bool   |do_open9       |NN GV *gv|NN const char *name|I32 len|int 
as_raw \
+Abp    |bool   |do_open9       |NN GV *gv|NN const char *name|I32 len|int 
as_raw \
                                |int rawmode|int rawperm|NULLOK PerlIO 
*supplied_fp \
                                |NN SV *svs|I32 num
 pn     |void   |setfd_cloexec|int fd
@@ -589,7 +589,7 @@ ApR |GV*    |gv_autoload_pv |NULLOK HV* stash|NN const 
char* namepv \
 ApR    |GV*    |gv_autoload_pvn        |NULLOK HV* stash|NN const char* name \
                                         |STRLEN len|U32 flags
 Ap     |void   |gv_check       |NN HV* stash
-Ap     |void   |gv_efullname   |NN SV* sv|NN const GV* gv
+Abp    |void   |gv_efullname   |NN SV* sv|NN const GV* gv
 Apmb   |void   |gv_efullname3  |NN SV* sv|NN const GV* gv|NULLOK const char* 
prefix
 Ap     |void   |gv_efullname4  |NN SV* sv|NN const GV* gv|NULLOK const char* 
prefix|bool keepmain
 Ap     |GV*    |gv_fetchfile   |NN const char* name
@@ -619,7 +619,7 @@ ApM |GV*    |gv_fetchmethod_pv_flags|NN HV* stash|NN const 
char* name \
 ApM    |GV*    |gv_fetchmethod_pvn_flags|NN HV* stash|NN const char* name \
                                |const STRLEN len|U32 flags
 Ap     |GV*    |gv_fetchpv     |NN const char *nambeg|I32 add|const svtype 
sv_type
-Ap     |void   |gv_fullname    |NN SV* sv|NN const GV* gv
+Abp    |void   |gv_fullname    |NN SV* sv|NN const GV* gv
 Apmb   |void   |gv_fullname3   |NN SV* sv|NN const GV* gv|NULLOK const char* 
prefix
 Ap     |void   |gv_fullname4   |NN SV* sv|NN const GV* gv|NULLOK const char* 
prefix|bool keepmain
 : Used in scope.c
@@ -745,28 +745,28 @@ ApR       |I32    |is_lvalue_sub
 : Used in cop.h
 XopR   |I32    |was_lvalue_sub
 ApMRnP |STRLEN |_is_utf8_char_helper|NN const U8 * const s|NN const U8 * 
e|const U32 flags
-ADMpR  |U32    |to_uni_upper_lc|U32 c
-ADMpR  |U32    |to_uni_title_lc|U32 c
-ADMpR  |U32    |to_uni_lower_lc|U32 c
-ADMpR  |bool   |is_uni_alnum   |UV c
-ADMpR  |bool   |is_uni_alnumc  |UV c
-ADMpR  |bool   |is_uni_idfirst |UV c
-ADMpR  |bool   |is_uni_alpha   |UV c
-ADMpPR |bool   |is_uni_ascii   |UV c
-ADMpPR |bool   |is_uni_blank   |UV c
-ADMpPR |bool   |is_uni_space   |UV c
-ADMpPR |bool   |is_uni_cntrl   |UV c
-ADMpR  |bool   |is_uni_graph   |UV c
-ADMpR  |bool   |is_uni_digit   |UV c
-ADMpR  |bool   |is_uni_upper   |UV c
-ADMpR  |bool   |is_uni_lower   |UV c
-ADMpR  |bool   |is_uni_print   |UV c
-ADMpR  |bool   |is_uni_punct   |UV c
-ADMpPR |bool   |is_uni_xdigit  |UV c
+AbDMpR |U32    |to_uni_upper_lc|U32 c
+AbDMpR |U32    |to_uni_title_lc|U32 c
+AbDMpR |U32    |to_uni_lower_lc|U32 c
+AbDMpR |bool   |is_uni_alnum   |UV c
+AbDMpR |bool   |is_uni_alnumc  |UV c
+AbDMpR |bool   |is_uni_idfirst |UV c
+AbDMpR |bool   |is_uni_alpha   |UV c
+AbDMpPR        |bool   |is_uni_ascii   |UV c
+AbDMpPR        |bool   |is_uni_blank   |UV c
+AbDMpPR        |bool   |is_uni_space   |UV c
+AbDMpPR        |bool   |is_uni_cntrl   |UV c
+AbDMpR |bool   |is_uni_graph   |UV c
+AbDMpR |bool   |is_uni_digit   |UV c
+AbDMpR |bool   |is_uni_upper   |UV c
+AbDMpR |bool   |is_uni_lower   |UV c
+AbDMpR |bool   |is_uni_print   |UV c
+AbDMpR |bool   |is_uni_punct   |UV c
+AbDMpPR        |bool   |is_uni_xdigit  |UV c
 AMp    |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
 AMp    |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
-ADMpR  |bool   |isIDFIRST_lazy |NN const char* p
-ADMpR  |bool   |isALNUM_lazy   |NN const char* p
+AbDMpR |bool   |isIDFIRST_lazy |NN const char* p
+AbDMpR |bool   |isALNUM_lazy   |NN const char* p
 #ifdef PERL_IN_UTF8_C
 snR    |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp  \
                |const char dummy
@@ -785,23 +785,23 @@ p |UV     |_to_upper_title_latin1|const U8 c|NN U8 *p|NN 
STRLEN *lenp|const char S_o
 AMp    |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
 AMmp   |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
 AMp    |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
-ADMpR  |bool   |is_uni_alnum_lc|UV c
-ADMpR  |bool   |is_uni_alnumc_lc|UV c
-ADMpR  |bool   |is_uni_idfirst_lc|UV c
+AbDMpR |bool   |is_uni_alnum_lc|UV c
+AbDMpR |bool   |is_uni_alnumc_lc|UV c
+AbDMpR |bool   |is_uni_idfirst_lc|UV c
 AMpR   |bool   |_is_uni_perl_idcont|UV c
 AMpR   |bool   |_is_uni_perl_idstart|UV c
-ADMpR  |bool   |is_uni_alpha_lc|UV c
-ADMpPR |bool   |is_uni_ascii_lc|UV c
-ADMpPR |bool   |is_uni_space_lc|UV c
-ADMpPR |bool   |is_uni_blank_lc|UV c
-ADMpPR |bool   |is_uni_cntrl_lc|UV c
-ADMpR  |bool   |is_uni_graph_lc|UV c
-ADMpR  |bool   |is_uni_digit_lc|UV c
-ADMpR  |bool   |is_uni_upper_lc|UV c
-ADMpR  |bool   |is_uni_lower_lc|UV c
-ADMpR  |bool   |is_uni_print_lc|UV c
-ADMpR  |bool   |is_uni_punct_lc|UV c
-ADMpPR |bool   |is_uni_xdigit_lc|UV c
+AbDMpR |bool   |is_uni_alpha_lc|UV c
+AbDMpPR        |bool   |is_uni_ascii_lc|UV c
+AbDMpPR        |bool   |is_uni_space_lc|UV c
+AbDMpPR        |bool   |is_uni_blank_lc|UV c
+AbDMpPR        |bool   |is_uni_cntrl_lc|UV c
+AbDMpR |bool   |is_uni_graph_lc|UV c
+AbDMpR |bool   |is_uni_digit_lc|UV c
+AbDMpR |bool   |is_uni_upper_lc|UV c
+AbDMpR |bool   |is_uni_lower_lc|UV c
+AbDMpR |bool   |is_uni_print_lc|UV c
+AbDMpR |bool   |is_uni_punct_lc|UV c
+AbDMpPR        |bool   |is_uni_xdigit_lc|UV c
 AndmoR |bool   |is_utf8_invariant_string|NN const U8* const s              \
                |STRLEN len
 AnidR  |bool   |is_utf8_invariant_string_loc|NN const U8* const s          \
@@ -820,7 +820,7 @@ AmnpdRP     |bool   |is_invariant_string|NN const U8* const 
s|STRLEN len
 EXnidR |bool   |is_utf8_non_invariant_string|NN const U8* const s          \
                |STRLEN len
 #endif
-AnpdD  |STRLEN |is_utf8_char   |NN const U8 *s
+AbnpdD |STRLEN |is_utf8_char   |NN const U8 *s
 Abmnpd |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
 AnmdpR |bool   |is_utf8_string |NN const U8 *s|STRLEN len
 AnidR  |bool   |is_utf8_string_flags                                       \
@@ -868,10 +868,10 @@ AMpR      |bool   |_is_utf8_FOO|U8 classnum|NN const U8 * 
const p             \
                |NN const char * const file|const unsigned line
 AMpR   |bool   |_is_utf8_FOO_with_len|const U8 classnum|NN const U8 *p     \
                |NN const U8 * const e
-ADMpR  |bool   |is_utf8_alnum  |NN const U8 *p
-ADMpR  |bool   |is_utf8_alnumc |NN const U8 *p
-ADMpR  |bool   |is_utf8_idfirst|NN const U8 *p
-ADMpR  |bool   |is_utf8_xidfirst|NN const U8 *p
+AbDMpR |bool   |is_utf8_alnum  |NN const U8 *p
+AbDMpR |bool   |is_utf8_alnumc |NN const U8 *p
+AbDMpR |bool   |is_utf8_idfirst|NN const U8 *p
+AbDMpR |bool   |is_utf8_xidfirst|NN const U8 *p
 AMpR   |bool   |_is_utf8_idcont|NN const U8 *p
 AMpR   |bool   |_is_utf8_idstart|NN const U8 *p
 AMpR   |bool   |_is_utf8_xidcont|NN const U8 *p
@@ -880,25 +880,25 @@ AMpR      |bool   |_is_utf8_perl_idcont_with_len|NN const 
U8 *p               \
                |NN const U8 * const e
 AMpR   |bool   |_is_utf8_perl_idstart_with_len|NN const U8 *p              \
                |NN const U8 * const e
-ADMpR  |bool   |is_utf8_idcont |NN const U8 *p
-ADMpR  |bool   |is_utf8_xidcont        |NN const U8 *p
-ADMpR  |bool   |is_utf8_alpha  |NN const U8 *p
-ADMpR  |bool   |is_utf8_ascii  |NN const U8 *p
-ADMpR  |bool   |is_utf8_blank  |NN const U8 *p
-ADMpR  |bool   |is_utf8_space  |NN const U8 *p
-ADMpR  |bool   |is_utf8_perl_space     |NN const U8 *p
-ADMpR  |bool   |is_utf8_perl_word      |NN const U8 *p
-ADMpR  |bool   |is_utf8_cntrl  |NN const U8 *p
-ADMpR  |bool   |is_utf8_digit  |NN const U8 *p
-ADMpR  |bool   |is_utf8_posix_digit    |NN const U8 *p
-ADMpR  |bool   |is_utf8_graph  |NN const U8 *p
-ADMpR  |bool   |is_utf8_upper  |NN const U8 *p
-ADMpR  |bool   |is_utf8_lower  |NN const U8 *p
-ADMpR  |bool   |is_utf8_print  |NN const U8 *p
-ADMpR  |bool   |is_utf8_punct  |NN const U8 *p
-ADMpR  |bool   |is_utf8_xdigit |NN const U8 *p
+AbDMpR |bool   |is_utf8_idcont |NN const U8 *p
+AbDMpR |bool   |is_utf8_xidcont        |NN const U8 *p
+AbDMpR |bool   |is_utf8_alpha  |NN const U8 *p
+AbDMpR |bool   |is_utf8_ascii  |NN const U8 *p
+AbDMpR |bool   |is_utf8_blank  |NN const U8 *p
+AbDMpR |bool   |is_utf8_space  |NN const U8 *p
+AbDMpR |bool   |is_utf8_perl_space     |NN const U8 *p
+AbDMpR |bool   |is_utf8_perl_word      |NN const U8 *p
+AbDMpR |bool   |is_utf8_cntrl  |NN const U8 *p
+AbDMpR |bool   |is_utf8_digit  |NN const U8 *p
+AbDMpR |bool   |is_utf8_posix_digit    |NN const U8 *p
+AbDMpR |bool   |is_utf8_graph  |NN const U8 *p
+AbDMpR |bool   |is_utf8_upper  |NN const U8 *p
+AbDMpR |bool   |is_utf8_lower  |NN const U8 *p
+AbDMpR |bool   |is_utf8_print  |NN const U8 *p
+AbDMpR |bool   |is_utf8_punct  |NN const U8 *p
+AbDMpR |bool   |is_utf8_xdigit |NN const U8 *p
 AMpR   |bool   |_is_utf8_mark  |NN const U8 *p
-ADMpR  |bool   |is_utf8_mark   |NN const U8 *p
+AbDMpR |bool   |is_utf8_mark   |NN const U8 *p
 #if defined(PERL_CORE) || defined(PERL_EXT)
 EXdpR  |bool   |isSCRIPT_RUN   |NN const U8 *s|NN const U8 *send   \
                                |const bool utf8_target
@@ -1306,7 +1306,7 @@ Ando      |const char*|Perl_langinfo|const nl_item item
 Ando   |const char*|Perl_langinfo|const int item
 #endif
 ApOM   |int    |init_i18nl10n  |int printwarn
-ApOM   |int    |init_i18nl14n  |int printwarn
+AbpOM  |int    |init_i18nl14n  |int printwarn
 p      |char*  |my_strerror    |const int errnum
 Xpn    |void   |_warn_problematic_locale
 Xp     |void   |set_numeric_underlying
@@ -1317,7 +1317,7 @@ Apdn      |bool   |sync_locale
 ApMn   |void   |thread_locale_init
 ApMn   |void   |thread_locale_term
 ApdO   |void   |require_pv     |NN const char* pv
-Apd    |void   |pack_cat       |NN SV *cat|NN const char *pat|NN const char 
*patend \
+Abpd   |void   |pack_cat       |NN SV *cat|NN const char *pat|NN const char 
*patend \
                                |NN SV **beglist|NN SV **endlist|NN SV 
***next_in_list|U32 flags
 Apd    |void   |packlist       |NN SV *cat|NN const char *pat|NN const char 
*patend|NN SV **beglist|NN SV **endlist
 #if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
@@ -1459,10 +1459,10 @@ Ap      |void   |save_I8        |NN I8* bytep
 Ap     |void   |save_int       |NN int* intp
 Ap     |void   |save_item      |NN SV* item
 Ap     |void   |save_iv        |NN IV *ivp
-Ap     |void   |save_list      |NN SV** sarg|I32 maxsarg
-Ap     |void   |save_long      |NN long* longp
+Abp    |void   |save_list      |NN SV** sarg|I32 maxsarg
+Abp    |void   |save_long      |NN long* longp
 Apmb   |void   |save_mortalizesv|NN SV* sv
-Ap     |void   |save_nogv      |NN GV* gv
+Abp    |void   |save_nogv      |NN GV* gv
 : Used in SAVEFREOP(), used in gv.c, op.c, perl.c, pp_ctl.c, pp_sort.c
 Apmb   |void   |save_op
 Ap     |SV*    |save_scalar    |NN GV* gv
@@ -1516,7 +1516,7 @@ Ap        |I32    |start_subparse |I32 is_format|U32 flags
 Xp     |void   |init_named_cv  |NN CV *cv|NN OP *nameop
 : Used in pp_ctl.c
 p      |void   |sub_crush_depth|NN CV* cv
-Amd    |bool   |sv_2bool       |NN SV *const sv
+Apbmd  |bool   |sv_2bool       |NN SV *const sv
 Apd    |bool   |sv_2bool_flags |NN SV *sv|I32 flags
 Apd    |CV*    |sv_2cv         |NULLOK SV* sv|NN HV **const st|NN GV **const 
gvp \
                                |const I32 lref
@@ -1534,15 +1534,15 @@ Apmb    |char*  |sv_2pv         |NN SV *sv|NULLOK 
STRLEN *lp
 Apd    |char*  |sv_2pv_flags   |NN SV *const sv|NULLOK STRLEN *const lp|const 
I32 flags
 Apd    |char*  |sv_2pvutf8     |NN SV *sv|NULLOK STRLEN *const lp
 Apd    |char*  |sv_2pvbyte     |NN SV *sv|NULLOK STRLEN *const lp
-Ap     |char*  |sv_pvn_nomg    |NN SV* sv|NULLOK STRLEN* lp
+Abp    |char*  |sv_pvn_nomg    |NN SV* sv|NULLOK STRLEN* lp
 Apmb   |UV     |sv_2uv         |NN SV *sv
 Apd    |UV     |sv_2uv_flags   |NN SV *const sv|const I32 flags
-Apd    |IV     |sv_iv          |NN SV* sv
-Apd    |UV     |sv_uv          |NN SV* sv
-Apd    |NV     |sv_nv          |NN SV* sv
-Apd    |char*  |sv_pvn         |NN SV *sv|NN STRLEN *lp
-Apd    |char*  |sv_pvutf8n     |NN SV *sv|NN STRLEN *lp
-Apd    |char*  |sv_pvbyten     |NN SV *sv|NN STRLEN *lp
+Abpd   |IV     |sv_iv          |NN SV* sv
+Abpd   |UV     |sv_uv          |NN SV* sv
+Abpd   |NV     |sv_nv          |NN SV* sv
+Abpd   |char*  |sv_pvn         |NN SV *sv|NN STRLEN *lp
+Abpd   |char*  |sv_pvutf8n     |NN SV *sv|NN STRLEN *lp
+Abpd   |char*  |sv_pvbyten     |NN SV *sv|NN STRLEN *lp
 Apd    |I32    |sv_true        |NULLOK SV *const sv
 #if defined(PERL_IN_SV_C)
 sd     |void   |sv_add_arena   |NN char *const ptr|const U32 size \
@@ -1578,7 +1578,7 @@ Aopd      |I32    |sv_cmp_locale  |NULLOK SV *const 
sv1|NULLOK SV *const sv2
 Apd    |I32    |sv_cmp_locale_flags    |NULLOK SV *const sv1 \
                                |NULLOK SV *const sv2|const U32 flags
 #if defined(USE_LOCALE_COLLATE)
-Amd    |char*  |sv_collxfrm    |NN SV *const sv|NN STRLEN *const nxp
+Apbmd  |char*  |sv_collxfrm    |NN SV *const sv|NN STRLEN *const nxp
 Apd    |char*  |sv_collxfrm_flags      |NN SV *const sv|NN STRLEN *const 
nxp|I32 const flags
 #endif
 Apd    |int    |getcwd_sv      |NN SV* sv
@@ -1595,7 +1595,7 @@ ApdR      |bool   |sv_does_sv     |NN SV* sv|NN SV* 
namesv|U32 flags
 ApdR   |bool   |sv_does_pv     |NN SV* sv|NN const char *const name|U32 flags
 ApdR   |bool   |sv_does_pvn    |NN SV* sv|NN const char *const name|const 
STRLEN len \
                                 |U32 flags
-Amd    |I32    |sv_eq          |NULLOK SV* sv1|NULLOK SV* sv2
+Apbmd  |I32    |sv_eq          |NULLOK SV* sv1|NULLOK SV* sv2
 Apd    |I32    |sv_eq_flags    |NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
 Apd    |void   |sv_free        |NULLOK SV *const sv
 poMX   |void   |sv_free2       |NN SV *const sv|const U32 refcnt
@@ -1826,7 +1826,7 @@ pn        |bool   |translate_substr_offsets|STRLEN 
curlen|IV pos1_iv \
 #if defined(UNLINK_ALL_VERSIONS)
 Ap     |I32    |unlnk          |NN const char* f
 #endif
-Apd    |SSize_t|unpack_str     |NN const char *pat|NN const char *patend|NN 
const char *s \
+Abpd   |SSize_t|unpack_str     |NN const char *pat|NN const char *patend|NN 
const char *s \
                                |NULLOK const char *strbeg|NN const char 
*strend|NULLOK char **new_s \
                                |I32 ocnt|U32 flags
 Apd    |SSize_t|unpackstring   |NN const char *pat|NN const char *patend|NN 
const char *s \
@@ -1857,8 +1857,8 @@ AMnp      |U8*    |bytes_from_utf8_loc|NN const U8 *s     
                    \
                                    |NULLOK const U8 ** first_unconverted
 ApMd   |U8*    |bytes_to_utf8  |NN const U8 *s|NN STRLEN *lenp
 ApdD   |UV     |utf8_to_uvchr  |NN const U8 *s|NULLOK STRLEN *retlen
-ApdD   |UV     |utf8_to_uvuni  |NN const U8 *s|NULLOK STRLEN *retlen
-ApMD   |UV     |valid_utf8_to_uvuni    |NN const U8 *s|NULLOK STRLEN *retlen
+AbpdD  |UV     |utf8_to_uvuni  |NN const U8 *s|NULLOK STRLEN *retlen
+AbpMD  |UV     |valid_utf8_to_uvuni    |NN const U8 *s|NULLOK STRLEN *retlen
 Aopd   |UV     |utf8_to_uvchr_buf      |NN const U8 *s|NN const U8 
*send|NULLOK STRLEN *retlen
 ApdD   |UV     |utf8_to_uvuni_buf      |NN const U8 *s|NN const U8 
*send|NULLOK STRLEN *retlen
 pM     |bool   |check_utf8_print       |NN const U8 *s|const STRLEN len
@@ -2095,8 +2095,8 @@ Ap        |void   |sys_intern_dup |NN struct 
interp_intern* src|NN struct interp_intern*
 #endif
 
 Amop   |const XOP *    |custom_op_xop  |NN const OP *o
-ApR    |const char *   |custom_op_name |NN const OP *o
-ApR    |const char *   |custom_op_desc |NN const OP *o
+AbpR   |const char *   |custom_op_name |NN const OP *o
+AbpR   |const char *   |custom_op_desc |NN const OP *o
 pRX    |XOPRETANY      |custom_op_get_field    |NN const OP *o|const 
xop_flags_enum field
 Aop    |void   |custom_op_register     |NN Perl_ppaddr_t ppaddr \
                        |NN const XOP *xop
diff --git a/embed.h b/embed.h
index cf7ec3e5e6..2a3f74dee3 100644
--- a/embed.h
+++ b/embed.h
@@ -98,8 +98,12 @@
 #define croak_no_modify                Perl_croak_no_modify
 #define croak_sv(a)            Perl_croak_sv(aTHX_ a)
 #define croak_xs_usage         Perl_croak_xs_usage
+#ifndef NO_MATHOMS
 #define custom_op_desc(a)      Perl_custom_op_desc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define custom_op_name(a)      Perl_custom_op_name(aTHX_ a)
+#endif
 #define cv_clone(a)            Perl_cv_clone(aTHX_ a)
 #define cv_const_sv            Perl_cv_const_sv
 #define cv_get_call_checker(a,b,c)     Perl_cv_get_call_checker(aTHX_ a,b,c)
@@ -123,7 +127,9 @@
 #define die                    Perl_die
 #endif
 #define die_sv(a)              Perl_die_sv(aTHX_ a)
+#ifndef NO_MATHOMS
 #define do_binmode(a,b,c)      Perl_do_binmode(aTHX_ a,b,c)
+#endif
 #define do_close(a,b)          Perl_do_close(aTHX_ a,b)
 #define do_gv_dump(a,b,c,d)    Perl_do_gv_dump(aTHX_ a,b,c,d)
 #define do_gvgv_dump(a,b,c,d)  Perl_do_gvgv_dump(aTHX_ a,b,c,d)
@@ -131,7 +137,9 @@
 #define do_join(a,b,c,d)       Perl_do_join(aTHX_ a,b,c,d)
 #define do_magic_dump(a,b,c,d,e,f,g)   Perl_do_magic_dump(aTHX_ a,b,c,d,e,f,g)
 #define do_op_dump(a,b,c)      Perl_do_op_dump(aTHX_ a,b,c)
+#ifndef NO_MATHOMS
 #define do_open9(a,b,c,d,e,f,g,h,i)    Perl_do_open9(aTHX_ a,b,c,d,e,f,g,h,i)
+#endif
 #define do_openn(a,b,c,d,e,f,g,h,i)    Perl_do_openn(aTHX_ a,b,c,d,e,f,g,h,i)
 #define do_pmop_dump(a,b,c)    Perl_do_pmop_dump(aTHX_ a,b,c)
 #define do_sprintf(a,b,c)      Perl_do_sprintf(aTHX_ a,b,c)
@@ -194,7 +202,9 @@
 #define gv_check(a)            Perl_gv_check(aTHX_ a)
 #define gv_const_sv(a)         Perl_gv_const_sv(aTHX_ a)
 #define gv_dump(a)             Perl_gv_dump(aTHX_ a)
+#ifndef NO_MATHOMS
 #define gv_efullname(a,b)      Perl_gv_efullname(aTHX_ a,b)
+#endif
 #define gv_efullname4(a,b,c,d) Perl_gv_efullname4(aTHX_ a,b,c,d)
 #define gv_fetchfile(a)                Perl_gv_fetchfile(aTHX_ a)
 #define gv_fetchfile_flags(a,b,c)      Perl_gv_fetchfile_flags(aTHX_ a,b,c)
@@ -211,7 +221,9 @@
 #define gv_fetchpv(a,b,c)      Perl_gv_fetchpv(aTHX_ a,b,c)
 #define gv_fetchpvn_flags(a,b,c,d)     Perl_gv_fetchpvn_flags(aTHX_ a,b,c,d)
 #define gv_fetchsv(a,b,c)      Perl_gv_fetchsv(aTHX_ a,b,c)
+#ifndef NO_MATHOMS
 #define gv_fullname(a,b)       Perl_gv_fullname(aTHX_ a,b)
+#endif
 #define gv_fullname4(a,b,c,d)  Perl_gv_fullname4(aTHX_ a,b,c,d)
 #define gv_handler(a,b)                Perl_gv_handler(aTHX_ a,b)
 #define gv_init_pv(a,b,c,d)    Perl_gv_init_pv(aTHX_ a,b,c,d)
@@ -240,75 +252,187 @@
 #define hv_rand_set(a,b)       Perl_hv_rand_set(aTHX_ a,b)
 #define hv_scalar(a)           Perl_hv_scalar(aTHX_ a)
 #define init_i18nl10n(a)       Perl_init_i18nl10n(aTHX_ a)
+#ifndef NO_MATHOMS
 #define init_i18nl14n(a)       Perl_init_i18nl14n(aTHX_ a)
+#endif
 #define init_stacks()          Perl_init_stacks(aTHX)
 #define init_tm(a)             Perl_init_tm(aTHX_ a)
 #define intro_my()             Perl_intro_my(aTHX)
+#ifndef NO_MATHOMS
 #define isALNUM_lazy(a)                Perl_isALNUM_lazy(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define isIDFIRST_lazy(a)      Perl_isIDFIRST_lazy(aTHX_ a)
+#endif
 #define is_c9strict_utf8_string_loclen S_is_c9strict_utf8_string_loclen
 #define is_lvalue_sub()                Perl_is_lvalue_sub(aTHX)
 #define is_safe_syscall(a,b,c,d)       S_is_safe_syscall(aTHX_ a,b,c,d)
 #define is_strict_utf8_string_loclen   S_is_strict_utf8_string_loclen
+#ifndef NO_MATHOMS
 #define is_uni_alnum(a)                Perl_is_uni_alnum(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_alnum_lc(a)     Perl_is_uni_alnum_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_alnumc(a)       Perl_is_uni_alnumc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_alnumc_lc(a)    Perl_is_uni_alnumc_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_alpha(a)                Perl_is_uni_alpha(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_alpha_lc(a)     Perl_is_uni_alpha_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_ascii(a)                Perl_is_uni_ascii(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_ascii_lc(a)     Perl_is_uni_ascii_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_blank(a)                Perl_is_uni_blank(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_blank_lc(a)     Perl_is_uni_blank_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_cntrl(a)                Perl_is_uni_cntrl(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_cntrl_lc(a)     Perl_is_uni_cntrl_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_digit(a)                Perl_is_uni_digit(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_digit_lc(a)     Perl_is_uni_digit_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_graph(a)                Perl_is_uni_graph(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_graph_lc(a)     Perl_is_uni_graph_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_idfirst(a)      Perl_is_uni_idfirst(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_idfirst_lc(a)   Perl_is_uni_idfirst_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_lower(a)                Perl_is_uni_lower(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_lower_lc(a)     Perl_is_uni_lower_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_print(a)                Perl_is_uni_print(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_print_lc(a)     Perl_is_uni_print_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_punct(a)                Perl_is_uni_punct(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_punct_lc(a)     Perl_is_uni_punct_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_space(a)                Perl_is_uni_space(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_space_lc(a)     Perl_is_uni_space_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_upper(a)                Perl_is_uni_upper(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_upper_lc(a)     Perl_is_uni_upper_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_xdigit(a)       Perl_is_uni_xdigit(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_uni_xdigit_lc(a)    Perl_is_uni_xdigit_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_alnum(a)       Perl_is_utf8_alnum(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_alnumc(a)      Perl_is_utf8_alnumc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_alpha(a)       Perl_is_utf8_alpha(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_ascii(a)       Perl_is_utf8_ascii(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_blank(a)       Perl_is_utf8_blank(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_char           Perl_is_utf8_char
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_cntrl(a)       Perl_is_utf8_cntrl(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_digit(a)       Perl_is_utf8_digit(aTHX_ a)
+#endif
 #define is_utf8_fixed_width_buf_loclen_flags   
S_is_utf8_fixed_width_buf_loclen_flags
+#ifndef NO_MATHOMS
 #define is_utf8_graph(a)       Perl_is_utf8_graph(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_idcont(a)      Perl_is_utf8_idcont(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_idfirst(a)     Perl_is_utf8_idfirst(aTHX_ a)
+#endif
 #define is_utf8_invariant_string_loc   S_is_utf8_invariant_string_loc
+#ifndef NO_MATHOMS
 #define is_utf8_lower(a)       Perl_is_utf8_lower(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_mark(a)                Perl_is_utf8_mark(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_perl_space(a)  Perl_is_utf8_perl_space(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_perl_word(a)   Perl_is_utf8_perl_word(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_posix_digit(a) Perl_is_utf8_posix_digit(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_print(a)       Perl_is_utf8_print(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_punct(a)       Perl_is_utf8_punct(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_space(a)       Perl_is_utf8_space(aTHX_ a)
+#endif
 #define is_utf8_string_flags   S_is_utf8_string_flags
 #define is_utf8_string_loclen  Perl_is_utf8_string_loclen
 #define is_utf8_string_loclen_flags    S_is_utf8_string_loclen_flags
+#ifndef NO_MATHOMS
 #define is_utf8_upper(a)       Perl_is_utf8_upper(aTHX_ a)
+#endif
 #define is_utf8_valid_partial_char_flags       
S_is_utf8_valid_partial_char_flags
+#ifndef NO_MATHOMS
 #define is_utf8_xdigit(a)      Perl_is_utf8_xdigit(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_xidcont(a)     Perl_is_utf8_xidcont(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define is_utf8_xidfirst(a)    Perl_is_utf8_xidfirst(aTHX_ a)
+#endif
 #define isinfnan               Perl_isinfnan
 #define leave_adjust_stacks(a,b,c,d)   Perl_leave_adjust_stacks(aTHX_ a,b,c,d)
 #define leave_scope(a)         Perl_leave_scope(aTHX_ a)
@@ -443,7 +567,9 @@
 #define op_refcnt_unlock()     Perl_op_refcnt_unlock(aTHX)
 #define op_scope(a)            Perl_op_scope(aTHX_ a)
 #define op_sibling_splice      Perl_op_sibling_splice
+#ifndef NO_MATHOMS
 #define pack_cat(a,b,c,d,e,f,g)        Perl_pack_cat(aTHX_ a,b,c,d,e,f,g)
+#endif
 #define packlist(a,b,c,d,e)    Perl_packlist(aTHX_ a,b,c,d,e)
 #define pad_add_anon(a,b)      Perl_pad_add_anon(aTHX_ a,b)
 #define pad_add_name_pv(a,b,c,d)       Perl_pad_add_name_pv(aTHX_ a,b,c,d)
@@ -542,9 +668,15 @@
 #define save_int(a)            Perl_save_int(aTHX_ a)
 #define save_item(a)           Perl_save_item(aTHX_ a)
 #define save_iv(a)             Perl_save_iv(aTHX_ a)
+#ifndef NO_MATHOMS
 #define save_list(a,b)         Perl_save_list(aTHX_ a,b)
+#endif
+#ifndef NO_MATHOMS
 #define save_long(a)           Perl_save_long(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define save_nogv(a)           Perl_save_nogv(aTHX_ a)
+#endif
 #define save_padsv_and_mortalize(a)    Perl_save_padsv_and_mortalize(aTHX_ a)
 #define save_pptr(a)           Perl_save_pptr(aTHX_ a)
 #define save_pushi32ptr(a,b,c) Perl_save_pushi32ptr(aTHX_ a,b,c)
@@ -630,7 +762,9 @@
 #define sv_insert_flags(a,b,c,d,e,f)   Perl_sv_insert_flags(aTHX_ a,b,c,d,e,f)
 #define sv_isa(a,b)            Perl_sv_isa(aTHX_ a,b)
 #define sv_isobject(a)         Perl_sv_isobject(aTHX_ a)
+#ifndef NO_MATHOMS
 #define sv_iv(a)               Perl_sv_iv(aTHX_ a)
+#endif
 #define sv_len(a)              Perl_sv_len(aTHX_ a)
 #define sv_len_utf8(a)         Perl_sv_len_utf8(aTHX_ a)
 #define sv_magic(a,b,c,d,e)    Perl_sv_magic(aTHX_ a,b,c,d,e)
@@ -641,18 +775,28 @@
 #ifndef NO_MATHOMS
 #define sv_nounlocking(a)      Perl_sv_nounlocking(aTHX_ a)
 #endif
+#ifndef NO_MATHOMS
 #define sv_nv(a)               Perl_sv_nv(aTHX_ a)
+#endif
 #define sv_peek(a)             Perl_sv_peek(aTHX_ a)
 #define sv_pos_b2u(a,b)                Perl_sv_pos_b2u(aTHX_ a,b)
 #define sv_pos_b2u_flags(a,b,c)        Perl_sv_pos_b2u_flags(aTHX_ a,b,c)
 #define sv_pos_u2b(a,b,c)      Perl_sv_pos_u2b(aTHX_ a,b,c)
 #define sv_pos_u2b_flags(a,b,c,d)      Perl_sv_pos_u2b_flags(aTHX_ a,b,c,d)
+#ifndef NO_MATHOMS
 #define sv_pvbyten(a,b)                Perl_sv_pvbyten(aTHX_ a,b)
+#endif
 #define sv_pvbyten_force(a,b)  Perl_sv_pvbyten_force(aTHX_ a,b)
+#ifndef NO_MATHOMS
 #define sv_pvn(a,b)            Perl_sv_pvn(aTHX_ a,b)
+#endif
 #define sv_pvn_force_flags(a,b,c)      Perl_sv_pvn_force_flags(aTHX_ a,b,c)
+#ifndef NO_MATHOMS
 #define sv_pvn_nomg(a,b)       Perl_sv_pvn_nomg(aTHX_ a,b)
+#endif
+#ifndef NO_MATHOMS
 #define sv_pvutf8n(a,b)                Perl_sv_pvutf8n(aTHX_ a,b)
+#endif
 #define sv_pvutf8n_force(a,b)  Perl_sv_pvutf8n_force(aTHX_ a,b)
 #define sv_recode_to_utf8(a,b) Perl_sv_recode_to_utf8(aTHX_ a,b)
 #define sv_ref(a,b,c)          Perl_sv_ref(aTHX_ a,b,c)
@@ -705,7 +849,9 @@
 #define sv_utf8_downgrade(a,b) Perl_sv_utf8_downgrade(aTHX_ a,b)
 #define sv_utf8_encode(a)      Perl_sv_utf8_encode(aTHX_ a)
 #define sv_utf8_upgrade_flags_grow(a,b,c)      
Perl_sv_utf8_upgrade_flags_grow(aTHX_ a,b,c)
+#ifndef NO_MATHOMS
 #define sv_uv(a)               Perl_sv_uv(aTHX_ a)
+#endif
 #define sv_vcatpvf(a,b,c)      Perl_sv_vcatpvf(aTHX_ a,b,c)
 #define sv_vcatpvf_mg(a,b,c)   Perl_sv_vcatpvf_mg(aTHX_ a,b,c)
 #define sv_vcatpvfn(a,b,c,d,e,f,g)     Perl_sv_vcatpvfn(aTHX_ a,b,c,d,e,f,g)
@@ -720,12 +866,20 @@
 #define thread_locale_init     Perl_thread_locale_init
 #define thread_locale_term     Perl_thread_locale_term
 #define to_uni_lower(a,b,c)    Perl_to_uni_lower(aTHX_ a,b,c)
+#ifndef NO_MATHOMS
 #define to_uni_lower_lc(a)     Perl_to_uni_lower_lc(aTHX_ a)
+#endif
 #define to_uni_title(a,b,c)    Perl_to_uni_title(aTHX_ a,b,c)
+#ifndef NO_MATHOMS
 #define to_uni_title_lc(a)     Perl_to_uni_title_lc(aTHX_ a)
+#endif
 #define to_uni_upper(a,b,c)    Perl_to_uni_upper(aTHX_ a,b,c)
+#ifndef NO_MATHOMS
 #define to_uni_upper_lc(a)     Perl_to_uni_upper_lc(aTHX_ a)
+#endif
+#ifndef NO_MATHOMS
 #define unpack_str(a,b,c,d,e,f,g,h)    Perl_unpack_str(aTHX_ a,b,c,d,e,f,g,h)
+#endif
 #define unpackstring(a,b,c,d,e)        Perl_unpackstring(aTHX_ a,b,c,d,e)
 #define unsharepvn(a,b,c)      Perl_unsharepvn(aTHX_ a,b,c)
 #define upg_version(a,b)       Perl_upg_version(aTHX_ a,b)
@@ -737,7 +891,9 @@
 #define utf8_length(a,b)       Perl_utf8_length(aTHX_ a,b)
 #define utf8_to_bytes(a,b)     Perl_utf8_to_bytes(aTHX_ a,b)
 #define utf8_to_uvchr(a,b)     Perl_utf8_to_uvchr(aTHX_ a,b)
+#ifndef NO_MATHOMS
 #define utf8_to_uvuni(a,b)     Perl_utf8_to_uvuni(aTHX_ a,b)
+#endif
 #define utf8_to_uvuni_buf(a,b,c)       Perl_utf8_to_uvuni_buf(aTHX_ a,b,c)
 #define utf8n_to_uvchr_msgs(a,b,c,d,e,f)       Perl_utf8n_to_uvchr_msgs(aTHX_ 
a,b,c,d,e,f)
 #define utf8n_to_uvuni(a,b,c,d)        Perl_utf8n_to_uvuni(aTHX_ a,b,c,d)
@@ -745,7 +901,9 @@
 #define uvuni_to_utf8(a,b)     Perl_uvuni_to_utf8(aTHX_ a,b)
 #define uvuni_to_utf8_flags(a,b,c)     Perl_uvuni_to_utf8_flags(aTHX_ a,b,c)
 #define valid_utf8_to_uvchr    Perl_valid_utf8_to_uvchr
+#ifndef NO_MATHOMS
 #define valid_utf8_to_uvuni(a,b)       Perl_valid_utf8_to_uvuni(aTHX_ a,b)
+#endif
 #define vcmp(a,b)              Perl_vcmp(aTHX_ a,b)
 #define vcroak(a,b)            Perl_vcroak(aTHX_ a,b)
 #define vdeb(a,b)              Perl_vdeb(aTHX_ a,b)
@@ -835,11 +993,15 @@
 #define deb_nocontext          Perl_deb_nocontext
 #define die_nocontext          Perl_die_nocontext
 #define form_nocontext         Perl_form_nocontext
+#ifndef NO_MATHOMS
 #define fprintf_nocontext      Perl_fprintf_nocontext
+#endif
 #define load_module_nocontext  Perl_load_module_nocontext
 #define mess_nocontext         Perl_mess_nocontext
 #define newSVpvf_nocontext     Perl_newSVpvf_nocontext
+#ifndef NO_MATHOMS
 #define printf_nocontext       Perl_printf_nocontext
+#endif
 #define sv_catpvf_mg_nocontext Perl_sv_catpvf_mg_nocontext
 #define sv_catpvf_nocontext    Perl_sv_catpvf_nocontext
 #define sv_setpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext
diff --git a/makedef.pl b/makedef.pl
index f2beb94020..daf6b400fc 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -731,12 +731,12 @@ unless ($define{'USE_QUADMATH'}) {
 {
     my %seen;
     my ($embed) = setup_embed($ARGS{TARG_DIR});
+    my $excludedre = $define{'NO_MATHOMS'} ? qr/[xmib]/ : qr/[xmi]/;
 
     foreach (@$embed) {
        my ($flags, $retval, $func, @args) = @$_;
        next unless $func;
-       if (   ($flags =~ /[AX]/ && $flags !~ /[xmi]/)
-            || ($flags =~ /b/ && ! $define{'NO_MATHOMS'}))
+       if ($flags =~ /[AX]/ && $flags !~ $excludedre)
         {
            # public API, so export
 
diff --git a/mathoms.c b/mathoms.c
index 295d8c4ea9..ed466c2c71 100644
--- a/mathoms.c
+++ b/mathoms.c
@@ -1081,6 +1081,7 @@ Perl_sv_eq(pTHX_ SV *sv1, SV *sv2)
 char *
 Perl_sv_collxfrm(pTHX_ SV *const sv, STRLEN *const nxp)
 {
+    PERL_ARGS_ASSERT_SV_COLLXFRM;
     return sv_collxfrm_flags(sv, nxp, SV_GMAGIC);
 }
 
@@ -1100,6 +1101,7 @@ Perl_mem_collxfrm(pTHX_ const char *input_string, STRLEN 
len, STRLEN *xlen)
 bool
 Perl_sv_2bool(pTHX_ SV *const sv)
 {
+    PERL_ARGS_ASSERT_SV_2BOOL;
     return sv_2bool_flags(sv, SV_GMAGIC);
 }
 
@@ -1692,36 +1694,6 @@ Perl_valid_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN 
*retlen)
     return NATIVE_TO_UNI(valid_utf8_to_uvchr(s, retlen));
 }
 
-/*
-=for apidoc utf8_to_uvchr
-
-Returns the native code point of the first character in the string C<s>
-which is assumed to be in UTF-8 encoding; C<retlen> will be set to the
-length, in bytes, of that character.
-
-Some, but not all, UTF-8 malformations are detected, and in fact, some
-malformed input could cause reading beyond the end of the input buffer, which
-is why this function is deprecated.  Use L</utf8_to_uvchr_buf> instead.
-
-If C<s> points to one of the detected malformations, and UTF8 warnings are
-enabled, zero is returned and C<*retlen> is set (if C<retlen> isn't
-C<NULL>) to -1.  If those warnings are off, the computed value if well-defined 
(or
-the Unicode REPLACEMENT CHARACTER, if not) is silently returned, and C<*retlen>
-is set (if C<retlen> isn't NULL) so that (S<C<s> + C<*retlen>>) is the
-next possible position in C<s> that could begin a non-malformed character.
-See L</utf8n_to_uvchr> for details on when the REPLACEMENT CHARACTER is 
returned.
-
-=cut
-*/
-
-UV
-Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
-{
-    PERL_ARGS_ASSERT_UTF8_TO_UVCHR;
-
-    return utf8_to_uvchr_buf(s, s + UTF8_MAXBYTES, retlen);
-}
-
 /*
 =for apidoc utf8_to_uvuni
 
diff --git a/pod/perl.pod b/pod/perl.pod
index 1264995bdb..29d88a6c89 100644
--- a/pod/perl.pod
+++ b/pod/perl.pod
@@ -192,8 +192,10 @@ aux h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp
     perl5272delta      Perl changes in version 5.27.2
     perl5271delta      Perl changes in version 5.27.1
     perl5270delta      Perl changes in version 5.27.0
+    perl5262delta      Perl changes in version 5.26.2
     perl5261delta      Perl changes in version 5.26.1
     perl5260delta      Perl changes in version 5.26.0
+    perl5244delta      Perl changes in version 5.24.4
     perl5243delta      Perl changes in version 5.24.3
     perl5242delta      Perl changes in version 5.24.2
     perl5241delta      Perl changes in version 5.24.1
diff --git a/pod/perl5244delta.pod b/pod/perl5244delta.pod
new file mode 100644
index 0000000000..502b0672b8
--- /dev/null
+++ b/pod/perl5244delta.pod
@@ -0,0 +1,130 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5244delta - what is new for perl v5.24.4
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.24.3 release and the 5.24.4
+release.
+
+If you are upgrading from an earlier release such as 5.24.2, first read
+L<perl5243delta>, which describes differences between 5.24.2 and 5.24.3.
+
+=head1 Security
+
+=head2 [CVE-2018-6797] heap-buffer-overflow (WRITE of size 1) in S_regatom 
(regcomp.c)
+
+A crafted regular expression could cause a heap buffer write overflow, with
+control over the bytes written.
+L<[perl #132227]|https://rt.perl.org/Public/Bug/Display.html?id=132227>
+
+=head2 [CVE-2018-6798] Heap-buffer-overflow in Perl__byte_dump_string (utf8.c)
+
+Matching a crafted locale dependent regular expression could cause a heap
+buffer read overflow and potentially information disclosure.
+L<[perl #132063]|https://rt.perl.org/Public/Bug/Display.html?id=132063>
+
+=head2 [CVE-2018-6913] heap-buffer-overflow in S_pack_rec
+
+C<pack()> could cause a heap buffer write overflow with a large item count.
+L<[perl #131844]|https://rt.perl.org/Public/Bug/Display.html?id=131844>
+
+=head2 Assertion failure in Perl__core_swash_init (utf8.c)
+
+Control characters in a supposed Unicode property name could cause perl to
+crash.  This has been fixed.
+L<[perl #132055]|https://rt.perl.org/Public/Bug/Display.html?id=132055>
+L<[perl #132553]|https://rt.perl.org/Public/Bug/Display.html?id=132553>
+L<[perl #132658]|https://rt.perl.org/Public/Bug/Display.html?id=132658>
+
+=head1 Incompatible Changes
+
+There are no changes intentionally incompatible with 5.24.3.  If any exist,
+they are bugs, and we request that you submit a report.  See L</Reporting
+Bugs> below.
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.20170922_24 to 
5.20180414_24.
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+The C<readpipe()> built-in function now checks at compile time that it has only
+one parameter expression, and puts it in scalar context, thus ensuring that it
+doesn't corrupt the stack at runtime.
+L<[perl #4574]|https://rt.perl.org/Public/Bug/Display.html?id=4574>
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.24.4 represents approximately 7 months of development since Perl 5.24.3
+and contains approximately 2,400 lines of changes across 49 files from 12
+authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 1,300 lines of changes to 12 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its third decade thanks to a vibrant community
+of users and developers.  The following people are known to have contributed
+the improvements that became Perl 5.24.4:
+
+Abigail, Chris 'BinGOs' Williams, John SJ Anderson, Karen Etheridge, Karl
+Williamson, Renee Baecker, Sawyer X, Steve Hay, Todd Rinaldo, Tony Cook, Yves
+Orton, Zefram.
+
+The list above is almost certainly incomplete as it is automatically generated
+from version control history.  In particular, it does not include the names of
+the (very much appreciated) contributors who reported issues to the Perl bug
+tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core.  We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please see
+the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the articles recently
+posted to the comp.lang.perl.misc newsgroup and the perl bug database at
+L<https://rt.perl.org/> .  There may also be information at
+L<http://www.perl.org/> , the Perl Home Page.
+
+If you believe you have an unreported bug, please run the L<perlbug> program
+included with your release.  Be sure to trim your bug down to a tiny but
+sufficient test case.  Your bug report, along with the output of C<perl -V>,
+will be sent off to perl...@perl.org to be analysed by the Perl porting team.
+
+If the bug you are reporting has security implications which make it
+inappropriate to send to a publicly archived mailing list, then see
+L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
+for details of how to report the issue.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
diff --git a/pod/perl5262delta.pod b/pod/perl5262delta.pod
new file mode 100644
index 0000000000..5e528ea89f
--- /dev/null
+++ b/pod/perl5262delta.pod
@@ -0,0 +1,245 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5262delta - what is new for perl v5.26.2
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.26.1 release and the 5.26.2
+release.
+
+If you are upgrading from an earlier release such as 5.26.0, first read
+L<perl5261delta>, which describes differences between 5.26.0 and 5.26.1.
+
+=head1 Security
+
+=head2 [CVE-2018-6797] heap-buffer-overflow (WRITE of size 1) in S_regatom 
(regcomp.c)
+
+A crafted regular expression could cause a heap buffer write overflow, with
+control over the bytes written.
+L<[perl #132227]|https://rt.perl.org/Public/Bug/Display.html?id=132227>
+
+=head2 [CVE-2018-6798] Heap-buffer-overflow in Perl__byte_dump_string (utf8.c)
+
+Matching a crafted locale dependent regular expression could cause a heap
+buffer read overflow and potentially information disclosure.
+L<[perl #132063]|https://rt.perl.org/Public/Bug/Display.html?id=132063>
+
+=head2 [CVE-2018-6913] heap-buffer-overflow in S_pack_rec
+
+C<pack()> could cause a heap buffer write overflow with a large item count.
+L<[perl #131844]|https://rt.perl.org/Public/Bug/Display.html?id=131844>
+
+=head2 Assertion failure in Perl__core_swash_init (utf8.c)
+
+Control characters in a supposed Unicode property name could cause perl to
+crash.  This has been fixed.
+L<[perl #132055]|https://rt.perl.org/Public/Bug/Display.html?id=132055>
+L<[perl #132553]|https://rt.perl.org/Public/Bug/Display.html?id=132553>
+L<[perl #132658]|https://rt.perl.org/Public/Bug/Display.html?id=132658>
+
+=head1 Incompatible Changes
+
+There are no changes intentionally incompatible with 5.26.1.  If any exist,
+they are bugs, and we request that you submit a report.  See L</Reporting
+Bugs> below.
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.20170922_26 to 
5.20180414_26.
+
+=item *
+
+L<PerlIO::via> has been upgraded from version 0.16 to 0.17.
+
+=item *
+
+L<Term::ReadLine> has been upgraded from version 1.16 to 1.17.
+
+=item *
+
+L<Unicode::UCD> has been upgraded from version 0.68 to 0.69.
+
+=back
+
+=head1 Documentation
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perluniprops>
+
+=over 4
+
+=item *
+
+This has been updated to note that C<\p{Word}> now includes code points
+matching the C<\p{Join_Control}> property.  The change to the property was made
+in Perl 5.18, but not documented until now.  There are currently only two code
+points that match this property: U+200C (ZERO WIDTH NON-JOINER) and U+200D
+(ZERO WIDTH JOINER).
+
+=back
+
+=head1 Platform Support
+
+=head2 Platform-Specific Notes
+
+=over 4
+
+=item Windows
+
+Visual C++ compiler version detection has been improved to work on non-English
+language systems.
+L<[perl #132421]|https://rt.perl.org/Public/Bug/Display.html?id=132421>
+
+We now set C<$Config{libpth}> correctly for 64-bit builds using Visual C++
+versions earlier than 14.1.
+L<[perl #132484]|https://rt.perl.org/Public/Bug/Display.html?id=132484>
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+The C<readpipe()> built-in function now checks at compile time that it has only
+one parameter expression, and puts it in scalar context, thus ensuring that it
+doesn't corrupt the stack at runtime.
+L<[perl #4574]|https://rt.perl.org/Public/Bug/Display.html?id=4574>
+
+=item *
+
+Fixed a use after free bug in C<pp_list> introduced in Perl 5.27.1.
+L<[perl #131954]|https://rt.perl.org/Public/Bug/Display.html?id=131954>
+
+=item *
+
+Parsing a C<sub> definition could cause a use after free if the C<sub> keyword
+was followed by whitespace including newlines (and comments).
+L<[perl #131836]|https://rt.perl.org/Public/Bug/Display.html?id=131836>
+
+=item *
+
+The tokenizer now correctly adjusts a parse pointer when skipping whitespace in
+an C< ${identifier} > construct.
+L<[perl #131949]|https://rt.perl.org/Public/Bug/Display.html?id=131949>
+
+=item *
+
+Accesses to C<${^LAST_FH}> no longer assert after using any of a variety of I/O
+operations on a non-glob.
+L<[perl #128263]|https://rt.perl.org/Public/Bug/Display.html?id=128263>
+
+=item *
+
+C<sort> now performs correct reference counting when aliasing C<$a> and C<$b>,
+thus avoiding premature destruction and leakage of scalars if they are
+re-aliased during execution of the sort comparator.
+L<[perl #92264]|https://rt.perl.org/Public/Bug/Display.html?id=92264>
+
+=item *
+
+Some convoluted kinds of regexp no longer cause an arithmetic overflow when
+compiled.
+L<[perl #131893]|https://rt.perl.org/Public/Bug/Display.html?id=131893>
+
+=item *
+
+Fixed a duplicate symbol failure with B<-flto -mieee-fp> builds.  F<pp.c>
+defined C<_LIB_VERSION> which B<-lieee> already defines.
+L<[perl #131786]|https://rt.perl.org/Public/Bug/Display.html?id=131786>
+
+=item *
+
+A NULL pointer dereference in the C<S_regmatch()> function has been fixed.
+L<[perl #132017]|https://rt.perl.org/Public/Bug/Display.html?id=132017>
+
+=item *
+
+Failures while compiling code within other constructs, such as with string
+interpolation and the right part of C<s///e> now cause compilation to abort
+earlier.
+
+Previously compilation could continue in order to report other errors, but the
+failed sub-parse could leave partly parsed constructs on the parser
+shift-reduce stack, confusing the parser, leading to perl crashes.
+L<[perl #125351]|https://rt.perl.org/Public/Bug/Display.html?id=125351>
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.26.2 represents approximately 7 months of development since Perl 5.26.1
+and contains approximately 3,300 lines of changes across 82 files from 17
+authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 1,800 lines of changes to 36 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its third decade thanks to a vibrant community
+of users and developers.  The following people are known to have contributed
+the improvements that became Perl 5.26.2:
+
+Aaron Crane, Abigail, Chris 'BinGOs' Williams, H.Merijn Brand, James E Keenan,
+Jarkko Hietaniemi, John SJ Anderson, Karen Etheridge, Karl Williamson, Lukas
+Mai, Renee Baecker, Sawyer X, Steve Hay, Todd Rinaldo, Tony Cook, Yves Orton,
+Zefram.
+
+The list above is almost certainly incomplete as it is automatically generated
+from version control history.  In particular, it does not include the names of
+the (very much appreciated) contributors who reported issues to the Perl bug
+tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core.  We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please see
+the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the perl bug database
+at L<https://rt.perl.org/> .  There may also be information at
+L<http://www.perl.org/> , the Perl Home Page.
+
+If you believe you have an unreported bug, please run the L<perlbug> program
+included with your release.  Be sure to trim your bug down to a tiny but
+sufficient test case.  Your bug report, along with the output of C<perl -V>,
+will be sent off to perl...@perl.org to be analysed by the Perl porting team.
+
+If the bug you are reporting has security implications which make it
+inappropriate to send to a publicly archived mailing list, then see
+L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
+for details of how to report the issue.
+
+=head1 Give Thanks
+
+If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
+you can do so by running the C<perlthanks> program:
+
+    perlthanks
+
+This will send an email to the Perl 5 Porters list with your show of thanks.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
diff --git a/pod/perlhist.pod b/pod/perlhist.pod
index 36a5d21c4e..453c68aa5e 100644
--- a/pod/perlhist.pod
+++ b/pod/perlhist.pod
@@ -605,6 +605,7 @@ the strings?).
  Steve     5.24.3-RC1   2017-Sep-10
  Steve     5.24.3       2017-Sep-22
  Steve     5.24.4-RC1   2018-Mar-24
+ Steve     5.24.4       2018-Apr-14
 
  Ricardo   5.25.0       2016-May-09     The 5.25 development track
  Sawyer X  5.25.1       2016-May-20
@@ -626,6 +627,7 @@ the strings?).
  Steve     5.26.1-RC1   2017-Sep-10
  Steve     5.26.1       2017-Sep-22
  Steve     5.26.2-RC1   2018-Mar-24
+ Steve     5.26.2       2018-Apr-14
 
  Sawyer X  5.27.0       2017-May-31     The 5.27 development track
  Eric      5.27.1       2017-Jun-20
diff --git a/pod/perlvar.pod b/pod/perlvar.pod
index df1d0ed68e..c7b77120ef 100644
--- a/pod/perlvar.pod
+++ b/pod/perlvar.pod
@@ -142,19 +142,12 @@ test.  Outside a C<while> test, this will not happen.
 
 =back
 
-C<$_> is by default a global variable.  However, as
-of perl v5.10.0, you can use a lexical version of
-C<$_> by declaring it in a file or in a block with C<my>.  Moreover,
-declaring C<our $_> restores the global C<$_> in the current scope.  Though
-this seemed like a good idea at the time it was introduced, lexical C<$_>
-actually causes more problems than it solves.  If you call a function that
-expects to be passed information via C<$_>, it may or may not work,
-depending on how the function is written, there not being any easy way to
-solve this.  Just avoid lexical C<$_>, unless you are feeling particularly
-masochistic.  For this reason lexical C<$_> is still experimental and will
-produce a warning unless warnings have been disabled.  As with other
-experimental features, the behavior of lexical C<$_> is subject to change
-without notice, including change into a fatal error.
+C<$_> is a global variable.
+
+However, between perl v5.10.0 and v5.24.0, it could be used lexically by
+writing C<my $_>.  Making C<$_> refer to the global C<$_> in the same scope
+was then possible with C<our $_>.  This experimental feature was removed and is
+now a fatal error, but you may encounter it in older code.
 
 Mnemonic: underline is understood in certain operations.
 
diff --git a/proto.h b/proto.h
index 3aae77fe0d..57970d697a 100644
--- a/proto.h
+++ b/proto.h
@@ -639,20 +639,24 @@ PERL_CALLCONV_NO_RET void Perl_croak_xs_usage(const CV 
*const cv, const char *co
        assert(cv); assert(params)
 
 PERL_CALLCONV regexp_engine const *    Perl_current_re_engine(pTHX);
+#ifndef NO_MATHOMS
 PERL_CALLCONV const char *     Perl_custom_op_desc(pTHX_ const OP *o)
                        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_CUSTOM_OP_DESC        \
        assert(o)
+#endif
 
 PERL_CALLCONV XOPRETANY        Perl_custom_op_get_field(pTHX_ const OP *o, 
const xop_flags_enum field)
                        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_CUSTOM_OP_GET_FIELD   \
        assert(o)
 
+#ifndef NO_MATHOMS
 PERL_CALLCONV const char *     Perl_custom_op_name(pTHX_ const OP *o)
                        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_CUSTOM_OP_NAME        \
        assert(o)
+#endif
 
 PERL_CALLCONV void     Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, 
const XOP *xop);
 #define PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER    \
@@ -757,9 +761,11 @@ PERL_CALLCONV bool Perl_do_aexec(pTHX_ SV* really, SV** 
mark, SV** sp);
 PERL_CALLCONV bool     Perl_do_aexec5(pTHX_ SV* really, SV** mark, SV** sp, 
int fd, int do_report);
 #define PERL_ARGS_ASSERT_DO_AEXEC5     \
        assert(mark); assert(sp)
+#ifndef NO_MATHOMS
 PERL_CALLCONV int      Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode);
 #define PERL_ARGS_ASSERT_DO_BINMODE    \
        assert(fp)
+#endif
 PERL_CALLCONV bool     Perl_do_close(pTHX_ GV* gv, bool not_implicit);
 PERL_CALLCONV void     Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST 
*padlist, int full);
 #define PERL_ARGS_ASSERT_DO_DUMP_PAD   \
@@ -798,9 +804,11 @@ PERL_CALLCONV bool Perl_do_open(pTHX_ GV* gv, const char* 
name, I32 len, int as_
 PERL_CALLCONV bool     Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN 
len, PerlIO *supplied_fp, SV **svp, U32 num);
 #define PERL_ARGS_ASSERT_DO_OPEN6      \
        assert(gv); assert(oname)
+#ifndef NO_MATHOMS
 PERL_CALLCONV bool     Perl_do_open9(pTHX_ GV *gv, const char *name, I32 len, 
int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV *svs, I32 num);
 #define PERL_ARGS_ASSERT_DO_OPEN9      \
        assert(gv); assert(name); assert(svs)
+#endif
 PERL_CALLCONV bool     Perl_do_open_raw(pTHX_ GV *gv, const char *oname, 
STRLEN len, int rawmode, int rawperm, Stat_t *statbufp);
 #define PERL_ARGS_ASSERT_DO_OPEN_RAW   \
        assert(gv); assert(oname)
@@ -1076,9 +1084,11 @@ PERL_CALLCONV SV*        Perl_gv_const_sv(pTHX_ GV* gv)
        assert(gv)
 
 PERL_CALLCONV void     Perl_gv_dump(pTHX_ GV* gv);
+#ifndef NO_MATHOMS
 PERL_CALLCONV void     Perl_gv_efullname(pTHX_ SV* sv, const GV* gv);
 #define PERL_ARGS_ASSERT_GV_EFULLNAME  \
        assert(sv); assert(gv)
+#endif
 #ifndef NO_MATHOMS
 PERL_CALLCONV void     Perl_gv_efullname3(pTHX_ SV* sv, const GV* gv, const 
char* prefix);
 #define PERL_ARGS_ASSERT_GV_EFULLNAME3 \
@@ -1139,9 +1149,11 @@ PERL_CALLCONV GV*        Perl_gv_fetchpvn_flags(pTHX_ 
const char* name, STRLEN len, I32
 PERL_CALLCONV GV*      Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype 
sv_type);
 #define PERL_ARGS_ASSERT_GV_FETCHSV    \
        assert(name)
+#ifndef NO_MATHOMS
 PERL_CALLCONV void     Perl_gv_fullname(pTHX_ SV* sv, const GV* gv);
 #define PERL_ARGS_ASSERT_GV_FULLNAME   \
        assert(sv); assert(gv)
+#endif
 #ifndef NO_MATHOMS
 PERL_CALLCONV void     Perl_gv_fullname3(pTHX_ SV* sv, const GV* gv, const 
char* prefix);
 #define PERL_ARGS_ASSERT_GV_FULLNAME3  \
@@ -1365,7 +1377,9 @@ PERL_CALLCONV void        Perl_init_constants(pTHX);
 PERL_CALLCONV void     Perl_init_dbargs(pTHX);
 PERL_CALLCONV void     Perl_init_debugger(pTHX);
 PERL_CALLCONV int      Perl_init_i18nl10n(pTHX_ int printwarn);
+#ifndef NO_MATHOMS
 PERL_CALLCONV int      Perl_init_i18nl14n(pTHX_ int printwarn);
+#endif
 PERL_CALLCONV void     Perl_init_named_cv(pTHX_ CV *cv, OP *nameop);
 #define PERL_ARGS_ASSERT_INIT_NAMED_CV \
        assert(cv); assert(nameop)
@@ -1388,17 +1402,21 @@ PERL_CALLCONV OP*       Perl_invert(pTHX_ OP* cmd)
 PERL_CALLCONV bool     Perl_io_close(pTHX_ IO* io, GV *gv, bool not_implicit, 
bool warn_on_fail);
 #define PERL_ARGS_ASSERT_IO_CLOSE      \
        assert(io)
+#ifndef NO_MATHOMS
 PERL_CALLCONV bool     Perl_isALNUM_lazy(pTHX_ const char* p)
                        __attribute__deprecated__
                        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_ISALNUM_LAZY  \
        assert(p)
+#endif
 
+#ifndef NO_MATHOMS
 PERL_CALLCONV bool     Perl_isIDFIRST_lazy(pTHX_ const char* p)
                        __attribute__deprecated__
                        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_ISIDFIRST_LAZY        \
        assert(p)
+#endif
 
 /* PERL_CALLCONV bool  Perl_is_ascii_string(const U8* const s, STRLEN len)
                        __attribute__warn_unused_result__
@@ -1436,187 +1454,263 @@ PERL_STATIC_INLINE bool       
S_is_strict_utf8_string_loclen(const U8 *s, STRLEN len,
 #define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOCLEN  \
        assert(s)
 #endif
+#ifndef NO_MATHOMS
 PERL_CALLCONV bool     Perl_is_uni_alnum(pTHX_ UV c)
                        __attribute__deprecated__
                        __attribute__warn_unused_result__;
+#endif
 
+#ifndef NO_MATHOMS
 PERL_CALLCONV bool     Perl_is_uni_alnum_lc(pTHX_ UV c)
                        __attribute__deprecated__
                        __attribute__warn_unused_result__;
+#endif
 
+#ifndef NO_MATHOMS
 PERL_CALLCONV bool     Perl_is_uni_alnumc(pTHX_ UV c)
                        __attribute__deprecated__
                        __attribute__warn_unused_result__;
+#endif
 
+#ifndef NO_MATHOMS
 PERL_CALLCONV bool     Perl_is_uni_alnumc_lc(pTHX_ UV c)
                        __attribute__deprecated__
                        __attribute__warn_unused_result__;
+#endif
 
+#ifndef NO_MATHOMS
 PERL_CALLCONV bool     Perl_is_uni_alpha(pTHX_ UV c)
                        __attribute__deprecated__
                        __attribute__warn_unused_result__;
+#endif
 
+#ifndef NO_MATHOMS
 PERL_CALLCONV bool     Perl_is_uni_alpha_lc(pTHX_ UV c)
                        __attribute__deprecated__
... 1269 lines suppressed ...

-- 
Perl5 Master Repository

Reply via email to