This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Devel-PPPort to CPAN version 3.21
authorMarcus Holland-Moritz <mhx-perl@gmx.net>
Sat, 17 Aug 2013 14:04:57 +0000 (15:04 +0100)
committerSteve Hay <steve.m.hay@googlemail.com>
Mon, 19 Aug 2013 01:09:32 +0000 (02:09 +0100)
[DELTA]

3.21 - 2013-08-17

    * Fix cpan #87870: Merge core perl commit 90b0dc0e2e
      (Thanks to Father Chrysostomos for the original patch and
       to Steve Hay for forwarding it)
    * Fix cpan #86975: Deterministically order API elements in POD
      (Thanks to Karl Williamson for providing a patch.)
    * Fix cpan #81796: my $_ is deprecated
      (Thanks to Nicholas Clark for providing a patch)
    * Fix cpan #81484: fix isASCII and isCNTRL for inputs > 255
      (Thanks to Karl Williamson for providing a patch)
    * Fix cpan #80314: make use of PERL_NO_GET_CONTEXT the default
    * Fix cpan #79814: Install to 'site' for perl 5.11+
      (Thanks to Robert Sedlacek for providing a patch)
    * Fix cpan #78271: Need SvPV_nomg_nolen
    * Adapt buildperl.pl for newer Perl releases
    * Update masked_versions regex for 5.005 thread builds
    * Some tweaks needed to support 5.003 on 64-bit platforms

175 files changed:
MANIFEST
cpan/Devel-PPPort/Changes
cpan/Devel-PPPort/HACKERS
cpan/Devel-PPPort/MANIFEST.SKIP
cpan/Devel-PPPort/Makefile.PL
cpan/Devel-PPPort/PPPort_pm.PL
cpan/Devel-PPPort/PPPort_xs.PL
cpan/Devel-PPPort/README
cpan/Devel-PPPort/README.md [new file with mode: 0644]
cpan/Devel-PPPort/TODO
cpan/Devel-PPPort/apicheck_c.PL
cpan/Devel-PPPort/devel/buildperl.pl
cpan/Devel-PPPort/devel/devtools.pl
cpan/Devel-PPPort/devel/mkapidoc.sh [changed mode: 0644->0755]
cpan/Devel-PPPort/devel/mktodo [changed mode: 0644->0755]
cpan/Devel-PPPort/devel/mktodo.pl
cpan/Devel-PPPort/devel/regenerate [changed mode: 0644->0755]
cpan/Devel-PPPort/devel/scanprov [changed mode: 0644->0755]
cpan/Devel-PPPort/mktests.PL
cpan/Devel-PPPort/module2.c
cpan/Devel-PPPort/module3.c
cpan/Devel-PPPort/parts/apicheck.pl
cpan/Devel-PPPort/parts/apidoc.fnc
cpan/Devel-PPPort/parts/base/5004000
cpan/Devel-PPPort/parts/base/5004050
cpan/Devel-PPPort/parts/base/5005000
cpan/Devel-PPPort/parts/base/5006000
cpan/Devel-PPPort/parts/base/5006001
cpan/Devel-PPPort/parts/base/5007002
cpan/Devel-PPPort/parts/base/5007003
cpan/Devel-PPPort/parts/base/5008001
cpan/Devel-PPPort/parts/base/5009003
cpan/Devel-PPPort/parts/base/5009005
cpan/Devel-PPPort/parts/base/5010000
cpan/Devel-PPPort/parts/base/5011000
cpan/Devel-PPPort/parts/base/5011002
cpan/Devel-PPPort/parts/base/5012004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5012005 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5013006
cpan/Devel-PPPort/parts/base/5013011
cpan/Devel-PPPort/parts/base/5014000
cpan/Devel-PPPort/parts/base/5014001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5014002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5014003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5014004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015005 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015006 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015007 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015008 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5015009 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5016000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5016001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5016002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5016003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017005 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017006 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017007 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017008 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017009 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017010 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5017011 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5018000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5018001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5019000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5019001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5019002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/base/5019003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/embed.fnc
cpan/Devel-PPPort/parts/inc/HvNAME
cpan/Devel-PPPort/parts/inc/MY_CXT
cpan/Devel-PPPort/parts/inc/SvPV
cpan/Devel-PPPort/parts/inc/SvREFCNT
cpan/Devel-PPPort/parts/inc/Sv_set
cpan/Devel-PPPort/parts/inc/call
cpan/Devel-PPPort/parts/inc/cop
cpan/Devel-PPPort/parts/inc/exception
cpan/Devel-PPPort/parts/inc/format
cpan/Devel-PPPort/parts/inc/grok
cpan/Devel-PPPort/parts/inc/gv
cpan/Devel-PPPort/parts/inc/limits
cpan/Devel-PPPort/parts/inc/mPUSH
cpan/Devel-PPPort/parts/inc/magic
cpan/Devel-PPPort/parts/inc/memory
cpan/Devel-PPPort/parts/inc/misc
cpan/Devel-PPPort/parts/inc/newCONSTSUB
cpan/Devel-PPPort/parts/inc/newRV
cpan/Devel-PPPort/parts/inc/newSV_type
cpan/Devel-PPPort/parts/inc/newSVpv
cpan/Devel-PPPort/parts/inc/podtest
cpan/Devel-PPPort/parts/inc/ppphbin
cpan/Devel-PPPort/parts/inc/ppphdoc
cpan/Devel-PPPort/parts/inc/ppphtest
cpan/Devel-PPPort/parts/inc/pv_tools
cpan/Devel-PPPort/parts/inc/pvs
cpan/Devel-PPPort/parts/inc/shared_pv
cpan/Devel-PPPort/parts/inc/snprintf
cpan/Devel-PPPort/parts/inc/sprintf
cpan/Devel-PPPort/parts/inc/strlfuncs
cpan/Devel-PPPort/parts/inc/sv_xpvf
cpan/Devel-PPPort/parts/inc/threads
cpan/Devel-PPPort/parts/inc/uv
cpan/Devel-PPPort/parts/inc/variables
cpan/Devel-PPPort/parts/inc/version
cpan/Devel-PPPort/parts/inc/warn
cpan/Devel-PPPort/parts/ppport.fnc
cpan/Devel-PPPort/parts/ppptools.pl
cpan/Devel-PPPort/parts/todo/5004000
cpan/Devel-PPPort/parts/todo/5004050
cpan/Devel-PPPort/parts/todo/5005000
cpan/Devel-PPPort/parts/todo/5006000
cpan/Devel-PPPort/parts/todo/5007001
cpan/Devel-PPPort/parts/todo/5007003
cpan/Devel-PPPort/parts/todo/5008001
cpan/Devel-PPPort/parts/todo/5009003
cpan/Devel-PPPort/parts/todo/5009005
cpan/Devel-PPPort/parts/todo/5010000
cpan/Devel-PPPort/parts/todo/5011000
cpan/Devel-PPPort/parts/todo/5011002
cpan/Devel-PPPort/parts/todo/5012004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5012005 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5013006
cpan/Devel-PPPort/parts/todo/5013007
cpan/Devel-PPPort/parts/todo/5013011
cpan/Devel-PPPort/parts/todo/5014000
cpan/Devel-PPPort/parts/todo/5014001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5014002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5014003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5014004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015005 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015006 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015007 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015008 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5015009 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5016000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5016001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5016002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5016003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017003 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017004 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017005 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017006 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017007 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017008 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017009 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017010 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5017011 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5018000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5018001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5019000 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5019001 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5019002 [new file with mode: 0644]
cpan/Devel-PPPort/parts/todo/5019003 [new file with mode: 0644]
cpan/Devel-PPPort/ppport_h.PL
cpan/Devel-PPPort/soak [changed mode: 0644->0755]
cpan/Devel-PPPort/t/SvPV.t
cpan/Devel-PPPort/t/misc.t
cpan/Devel-PPPort/typemap

index 9ab144e..ea98364 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -488,6 +488,8 @@ cpan/Devel-PPPort/parts/base/5012000        Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5012001   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5012002   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5012003   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5012004   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5012005   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5013000   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5013001   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5013002   Devel::PPPort baseline todo file
@@ -501,6 +503,42 @@ cpan/Devel-PPPort/parts/base/5013009       Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5013010   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5013011   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/base/5014000   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5014001   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5014002   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5014003   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5014004   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015000   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015001   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015002   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015003   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015004   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015005   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015006   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015007   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015008   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5015009   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5016000   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5016001   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5016002   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5016003   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017000   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017001   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017002   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017003   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017004   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017005   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017006   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017007   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017008   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017009   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017010   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5017011   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5018000   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5018001   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5019000   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5019001   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5019002   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/base/5019003   Devel::PPPort baseline todo file
 cpan/Devel-PPPort/parts/embed.fnc      Devel::PPPort Perl API listing
 cpan/Devel-PPPort/parts/inc/call       Devel::PPPort include
 cpan/Devel-PPPort/parts/inc/cop                Devel::PPPort include
@@ -567,7 +605,7 @@ cpan/Devel-PPPort/parts/todo/5008005        Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5008006   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5008007   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5008008   Devel::PPPort todo file
-cpan/Devel-PPPort/parts/todo/5008009   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/todo/5008009   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009000   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009001   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009002   Devel::PPPort todo file
@@ -575,35 +613,74 @@ cpan/Devel-PPPort/parts/todo/5009003      Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009004   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5009005   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5010000   Devel::PPPort todo file
-cpan/Devel-PPPort/parts/todo/5010001   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/todo/5010001   Devel::PPPort todo file
 cpan/Devel-PPPort/parts/todo/5011000   Devel::PPPort todo file
-cpan/Devel-PPPort/parts/todo/5011001   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5011002   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5011003   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5011004   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5011005   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5012000   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5012001   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5012002   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5012003   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013000   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013001   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013002   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013003   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013004   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013005   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013006   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013007   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013008   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013009   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013010   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5013011   Devel::PPPort baseline todo file
-cpan/Devel-PPPort/parts/todo/5014000   Devel::PPPort baseline todo file
+cpan/Devel-PPPort/parts/todo/5011001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5011002   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5011003   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5011004   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5011005   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5012000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5012001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5012002   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5012003   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5012004   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5012005   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013002   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013003   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013004   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013005   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013006   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013007   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013008   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013009   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013010   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5013011   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5014000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5014001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5014002   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5014003   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5014004   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015002   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015003   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015004   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015005   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015006   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015007   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015008   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5015009   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5016000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5016001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5016002   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5016003   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017002   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017003   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017004   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017005   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017006   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017007   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017008   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017009   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017010   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5017011   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5018000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5018001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5019000   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5019001   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5019002   Devel::PPPort todo file
+cpan/Devel-PPPort/parts/todo/5019003   Devel::PPPort todo file
 cpan/Devel-PPPort/ppport_h.PL          Devel::PPPort ppport.h writer
 cpan/Devel-PPPort/PPPort_pm.PL         Devel::PPPort PPPort.pm writer
 cpan/Devel-PPPort/PPPort.xs            Devel::PPPort dummy PPPort.xs
 cpan/Devel-PPPort/PPPort_xs.PL         Devel::PPPort RealPPPort.xs writer
 cpan/Devel-PPPort/README               Devel::PPPort Readme
+cpan/Devel-PPPort/README.md            Devel::PPPort GitHub Readme
 cpan/Devel-PPPort/soak                 Devel::PPPort Test Harness to run under various Perls
 cpan/Devel-PPPort/t/call.t             Devel::PPPort test file
 cpan/Devel-PPPort/t/cop.t              Devel::PPPort test file
index e4159f9..a9342e1 100644 (file)
@@ -1,3 +1,22 @@
+3.21 - 2013-08-17
+
+    * Fix cpan #87870: Merge core perl commit 90b0dc0e2e
+      (Thanks to Father Chrysostomos for the original patch and
+       to Steve Hay for forwarding it)
+    * Fix cpan #86975: Deterministically order API elements in POD
+      (Thanks to Karl Williamson for providing a patch.)
+    * Fix cpan #81796: my $_ is deprecated
+      (Thanks to Nicholas Clark for providing a patch)
+    * Fix cpan #81484: fix isASCII and isCNTRL for inputs > 255
+      (Thanks to Karl Williamson for providing a patch)
+    * Fix cpan #80314: make use of PERL_NO_GET_CONTEXT the default
+    * Fix cpan #79814: Install to 'site' for perl 5.11+
+      (Thanks to Robert Sedlacek for providing a patch)
+    * Fix cpan #78271: Need SvPV_nomg_nolen
+    * Adapt buildperl.pl for newer Perl releases
+    * Update masked_versions regex for 5.005 thread builds
+    * Some tweaks needed to support 5.003 on 64-bit platforms
+
 3.20 - 2011-09-10
 
     * fix CPAN #56749: isASCII and isCNTRL macros are buggy
index 4a620ba..c6918b9 100644 (file)
@@ -11,15 +11,15 @@ lying around in this distribution.
 
 =head1 DESCRIPTION
 
-=head2 How to build 136 versions of Perl
+=head2 How to build 366 versions of Perl
 
 C<Devel::PPPort> supports Perl versions between 5.003 and bleadperl.
 To guarantee this support, I need some of these versions on my
-machine. I currently have 136 different Perl version/configuration
+machine. I currently have 366 different Perl version/configuration
 combinations installed on my laptop.
 
 As many of the old Perl distributions need patching to compile
-cleanly on newer systems (and because building 136 Perls by hand
+cleanly on newer systems (and because building 366 Perls by hand
 just isn't fun), I wrote a tool to build all the different
 versions and configurations. You can find it in F<devel/buildperl.pl>.
 It can currently build the following Perl releases:
@@ -31,7 +31,7 @@ It can currently build the following Perl releases:
     5.7.x
     5.8.x
     5.9.x
-    5.10.x
+    5.1x.x
 
 =head2 Fully automatic API checks
 
@@ -256,7 +256,7 @@ form C<5.00x_yy>. Both are translated into the correct preprocessor
 statements. It is also possible to combine this with other statements:
 
   #if { VERSION >= 5.004 } && !defined(sv_vcatpvf)
-    /* a */ 
+    /* a */
   #elif { VERSION < 5.004_63 } && { VERSION != 5.004_05 }
     /* b */
   #endif
@@ -309,7 +309,7 @@ module in the core:
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
@@ -323,4 +323,3 @@ modify it under the same terms as Perl itself.
 See L<ppport.h> and L<devel/regenerate>.
 
 =cut
-
index 4df9284..c4fa267 100644 (file)
@@ -1,3 +1,5 @@
+^\.git
+^MYMETA.*$
 ^Makefile$
 ~$
 \.old(?:\..*)?$
index 8a77ae5..2353324 100644 (file)
@@ -4,13 +4,7 @@
 #
 ################################################################################
 #
-#  $Revision: 32 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:42 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -72,7 +66,12 @@ sub configure
   }
   else {
     # Devel::PPPort is in the core since 5.7.3
-    push @moreopts, INSTALLDIRS => ($] >= 5.007003 ? 'perl' : 'site');
+    # 5.11.0+ has site before perl
+    push @moreopts, INSTALLDIRS => (
+      ($] >= 5.007003 and $] < 5.011)
+        ? 'perl'
+        : 'site'
+    );
   }
 
   if ($opt{'apicheck'}) {
@@ -138,4 +137,3 @@ CO
 
   return $co;
 }
-
index e1118ca..23ffb6b 100644 (file)
@@ -4,13 +4,7 @@
 #
 ################################################################################
 #
-#  $Revision: 67 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:41 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -37,7 +31,7 @@ $data =~ s{^\%(include)\s+(\w+)((?:[^\S\r\n]+.*?)?)\s*$}
 
 $data = expand($data);
 
-my @api = sort { lc $a cmp lc $b } keys %provides;
+my @api = sort { lc $a cmp lc $b or $a cmp $b } keys %provides;
 
 $data =~ s{^(.*)__PROVIDED_API__(\s*?)^}
           {join '', map "$1$_\n", @api}gem;
@@ -372,13 +366,7 @@ __DATA__
 #
 ################################################################################
 #
-#  $Revision: 67 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:41 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -515,7 +503,7 @@ Version 3.x was ported back to CPAN by Marcus Holland-Moritz.
 
 =head1 COPYRIGHT
 
-Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 
@@ -535,7 +523,7 @@ package Devel::PPPort;
 use strict;
 use vars qw($VERSION $data);
 
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.20 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+$VERSION = '3.21';
 
 sub _init_data
 {
index f1921c8..5f18940 100644 (file)
@@ -4,13 +4,7 @@
 #
 ################################################################################
 #
-#  $Revision: 16 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:41 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -35,7 +29,7 @@ my %SECTION = (
 ENDHEADER
 );
 
-if (exists $ENV{PERL_NO_GET_CONTEXT} && $ENV{PERL_NO_GET_CONTEXT}) {
+if (not exists $ENV{PERL_NO_GET_CONTEXT} or $ENV{PERL_NO_GET_CONTEXT}) {
 $SECTION{xshead}{code} .= <<END;
 #define PERL_NO_GET_CONTEXT
 END
@@ -93,13 +87,7 @@ __DATA__
 *
 ********************************************************************************
 *
-*  $Revision: 16 $
-*  $Author: mhx $
-*  $Date: 2010/03/07 13:15:41 +0100 $
-*
-********************************************************************************
-*
-*  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+*  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 *  Version 2.x, Copyright (C) 2001, Paul Marquess.
 *  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 *
@@ -132,7 +120,7 @@ __XSMISC__
 
 /* =========== END XSMISC =================================================== */
 
-MODULE = Devel::PPPort         PACKAGE = Devel::PPPort
+MODULE = Devel::PPPort          PACKAGE = Devel::PPPort
 
 BOOT:
 __XSBOOT__
index 2ccd6af..29ea06f 100644 (file)
@@ -69,10 +69,9 @@ to create a ticket for the module.
 5. COPYRIGHT
 ------------
 
-Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
-
diff --git a/cpan/Devel-PPPort/README.md b/cpan/Devel-PPPort/README.md
new file mode 100644 (file)
index 0000000..318f7cf
--- /dev/null
@@ -0,0 +1,4 @@
+Devel-PPPort
+============
+
+Perl/Pollution/Portability
index 961acd9..a54a8c3 100644 (file)
@@ -30,13 +30,13 @@ TODO:
 
 * On 14/12/06, Nicholas Clark <nick@ccl4.org> wrote:
   > On Thu, Dec 14, 2006 at 05:03:24AM +0100, Andreas J. Koenig wrote:
-  >  
-  > > Params::Validate and Clone suffer from the same cold:  
+  >
+  > > Params::Validate and Clone suffer from the same cold:
   >
   > The same patch will make both compile and pass tests.
   > I'm wondering if it might be better to totally drop SVt_PBVM and let source
-  > code fail to compile.  
-  
+  > code fail to compile.
+
   I don't think so. Because :
   1. your redefinition of SVt_PBVM is probably what most XS modules want
   2. anyway, if we remove it from the core, it might appear in Devel::PPPort :)
@@ -344,4 +344,3 @@ TODO:
 
 * Resolve dependencies in Makefile.PL and remind of
   running 'make regen'
-
index 1abf66c..c9ff8a4 100644 (file)
@@ -4,13 +4,7 @@
 #
 ################################################################################
 #
-#  $Revision: 12 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:41 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -26,4 +20,3 @@ my @api = map { /^--api=(\w+)$/ ? ($1) : () } @ARGV;
 print "creating $out", (@api ? " (@api)" : ''), "\n";
 system $^X, 'parts/apicheck.pl', @api, $out
     and die "couldn't create $out\n";
-
index 3dd0c75..916ed8f 100644 (file)
@@ -5,13 +5,7 @@
 #
 ################################################################################
 #
-#  $Revision: 18 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:42 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -51,18 +45,18 @@ my %opt = (
 
 my %config = (
   default     => {
-                  config_args => '-des',
+                   config_args => '-des',
                  },
   thread      => {
-                  config_args     => '-des -Dusethreads',
-                  masked_versions => [ qr/^5\.00[01234]/ ],
+                   config_args     => '-des -Dusethreads',
+                   masked_versions => [ qr/^5\.00[01234]/ ],
                  },
   thread5005  => {
-                  config_args     => '-des -Duse5005threads',
-                  masked_versions => [ qr/^5\.00[012345]|^5.(9|\d\d)/ ],
+                   config_args     => '-des -Duse5005threads',
+                   masked_versions => [ qr/^5\.00[012345]|^5\.(9|\d\d)|^5\.8\.9/ ],
                  },
   debug       => {
-                  config_args => '-des -Doptimize=-g',
+                   config_args => '-des -Doptimize=-g',
                  },
 );
 
@@ -83,7 +77,7 @@ my @patch = (
   },
   {
     perl => [
-             qw/
+              qw/
                 5.6.0
                 5.6.1
                 5.7.0
@@ -91,7 +85,7 @@ my @patch = (
                 5.7.2
                 5.7.3
                 5.8.0
-             /,
+              /,
             ],
     subs => [
               [ \&patch_db, 3 ],
@@ -362,7 +356,9 @@ sub build_and_install
   print "building perl $perl->{version} ($current{config})\n";
 
   run_or_die("./Configure $config{$current{config}}{config_args} -Dusedevel -Uinstallusrbinperl -Dprefix=$prefix");
-  run_or_die("sed -i -e '/^.*<builtin>/d' -e '/^.*<built-in>/d' -e '/^.*<command line>/d' -e '/^.*<command-line>/d' makefile x2p/makefile");
+  if (-f "x2p/makefile") {
+    run_or_die("sed -i -e '/^.*<builtin>/d' -e '/^.*<built-in>/d' -e '/^.*<command line>/d' -e '/^.*<command-line>/d' makefile x2p/makefile");
+  }
   run_or_die("make all");
   run("make test") if $opt{test};
   if ($opt{install}) {
@@ -595,7 +591,7 @@ options, use:
 
 =head1 COPYRIGHT
 
-Copyright (c) 2004-2010, Marcus Holland-Moritz.
+Copyright (c) 2004-2013, Marcus Holland-Moritz.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
@@ -603,4 +599,3 @@ modify it under the same terms as Perl itself.
 =head1 SEE ALSO
 
 See L<Devel::PPPort> and L<HACKERS>.
-
index 65011d6..465c3cc 100644 (file)
@@ -4,13 +4,7 @@
 #
 ################################################################################
 #
-#  $Revision: 6 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:42 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
old mode 100644 (file)
new mode 100755 (executable)
index 1dd27f2..ff96ccc
@@ -5,13 +5,7 @@
 #
 ################################################################################
 #
-#  $Revision: 14 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:43 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
old mode 100644 (file)
new mode 100755 (executable)
index 4a2e394..ff42bd7
@@ -5,13 +5,7 @@
 #
 ################################################################################
 #
-#  $Revision: 18 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:43 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -30,7 +24,7 @@ our %opt = (
   check   => 1,
   verbose => 0,
   install => '/tmp/perl/install/default',
-  blead   => 'bleadperl',
+  blead   => 'bleadperl-debug',
 );
 
 GetOptions(\%opt, qw( base check! verbose install=s blead=s blead-version=s )) or die;
@@ -62,4 +56,3 @@ for (@perls) {
   push @args, '--nocheck' unless $opt{check};
   runperl('devel/mktodo.pl', @args) or die "error running mktodo.pl [$!] [$?]\n";
 }
-
index 22183f7..9345a23 100644 (file)
@@ -5,13 +5,7 @@
 #
 ################################################################################
 #
-#  $Revision: 18 $
-#  $Author: mhx $
-#  $Date: 2011/04/13 09:38:10 +0200 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -53,6 +47,22 @@ $ENV{SKIP_SLOW_TESTS} = 1;
 
 regen_all();
 
+my %stdsym = map { ($_ => 1) } qw (
+  strlen
+  snprintf
+  strcmp
+  memcpy
+  strncmp
+  memmove
+  memcmp
+  tolower
+  exit
+  memset
+  vsnprintf
+  siglongjmp
+  sprintf
+);
+
 my %sym;
 for (`$Config{nm} $fullperl`) {
   chomp;
@@ -154,35 +164,35 @@ retry:
 if ($opt{check}) {
   my $ifmt = '%' . length(scalar @recheck) . 'd';
   my $t0 = [gettimeofday];
-  
+
   RECHECK: for my $i (0 .. $#recheck) {
     my $sym = $recheck[$i];
     my $cur = delete $all{$sym};
-  
+
     sym('chk', $sym, $cur, sprintf(" [$ifmt/$ifmt, ETA %s]",
                $i + 1, scalar @recheck, eta($t0, $i, scalar @recheck)));
-  
+
     write_todo($opt{todo}, $opt{version}, \%all);
-  
+
     if ($cur eq "E (Perl_$sym)") {
       # we can try a shortcut here
       regen_apicheck($sym);
-  
+
       my $r = run(qw(make test));
-  
+
       if (!$r->{didnotrun} && $r->{status} == 0) {
         sym('del', $sym, $cur);
         next RECHECK;
       }
     }
-  
+
     # run the full test
     regen_all();
-  
+
     my $r = run(qw(make test));
-  
+
     $r->{didnotrun} and die "couldn't run make test: $!\n";
-  
+
     if ($r->{status} == 0) {
       sym('del', $sym, $cur);
     }
@@ -283,7 +293,7 @@ sub find_undefined_symbols
   for my $sym (keys %$ls) {
     unless (exists $ps->{$sym}) {
       if ($sym !~ /\@/ and $sym !~ /^_/) {
-        push @undefined, $sym;
+        push @undefined, $sym unless $stdsym{$sym};
       }
     }
   }
old mode 100644 (file)
new mode 100755 (executable)
index 1ab0053..41a65ac
@@ -5,13 +5,7 @@
 #
 ################################################################################
 #
-#  $Revision: 10 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:42 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -154,7 +148,7 @@ regenerate - Automatically regeneate Devel::PPPort's API information
 
 =head1 COPYRIGHT
 
-Copyright (c) 2006-2010, Marcus Holland-Moritz.
+Copyright (c) 2006-2013, Marcus Holland-Moritz.
 
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.
@@ -164,4 +158,3 @@ modify it under the same terms as Perl itself.
 See L<Devel::PPPort> and L<HACKERS>.
 
 =cut
-
old mode 100644 (file)
new mode 100755 (executable)
index b958eca..86910e4
@@ -5,13 +5,7 @@
 #
 ################################################################################
 #
-#  $Revision: 11 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:42 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
index 09fc71d..fe79313 100644 (file)
@@ -4,13 +4,7 @@
 #
 ################################################################################
 #
-#  $Revision: 33 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:41 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -35,30 +29,30 @@ sub generate_tests
   for $file (all_files_in_dir('parts/inc')) {
     my($testfile) = $file =~ /(\w+)\.?$/;  # VMS has a trailing dot
     $testfile = "t/$testfile.t";
-  
+
     my $spec = parse_partspec($file);
     my $plan = 0;
-  
+
     if (exists $spec->{tests}) {
       exists $spec->{OPTIONS}{tests} &&
       exists $spec->{OPTIONS}{tests}{plan}
           or die "No plan for tests in $file\n";
-  
+
       print "generating $testfile\n";
-  
+
       my $tmpl = $template;
       $tmpl =~ s/__SOURCE__/$file/mg;
       $tmpl =~ s/__PLAN__/$spec->{OPTIONS}{tests}{plan}/mg;
       $tmpl =~ s/^__TESTS__$/$spec->{tests}/mg;
-  
+
       open FH, ">$testfile" or die "$testfile: $!\n";
       print FH $tmpl;
       close FH;
-  
+
       push @tests, $testfile;
     }
   }
-  
+
   return @tests;
 }
 
index 1053017..a9a6f2a 100644 (file)
@@ -4,13 +4,7 @@
 *
 ********************************************************************************
 *
-*  $Revision: 13 $
-*  $Author: mhx $
-*  $Date: 2010/03/07 13:15:41 +0100 $
-*
-********************************************************************************
-*
-*  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+*  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 *  Version 2.x, Copyright (C) 2001, Paul Marquess.
 *  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 *
index 6a7e89a..417490e 100644 (file)
@@ -4,13 +4,7 @@
 *
 ********************************************************************************
 *
-*  $Revision: 13 $
-*  $Author: mhx $
-*  $Date: 2010/03/07 13:15:41 +0100 $
-*
-********************************************************************************
-*
-*  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+*  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 *  Version 2.x, Copyright (C) 2001, Paul Marquess.
 *  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 *
index e93fbe8..e11187f 100644 (file)
@@ -5,13 +5,7 @@
 #
 ################################################################################
 #
-#  $Revision: 37 $
-#  $Author: mhx $
-#  $Date: 2010/03/07 13:15:43 +0100 $
-#
-################################################################################
-#
-#  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+#  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 #  Version 2.x, Copyright (C) 2001, Paul Marquess.
 #  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 #
@@ -320,4 +314,3 @@ END
 }
 
 @ARGV and close OUT;
-
index f68bfd3..947cc48 100644 (file)
 : source code, but are not contained in F<embed.fnc>.
 :
 
-Ama|char*|savepvs|const char* s
-Ama|char*|savesharedpvs|const char* s
-Ama|SV*|newSVpvs|const char* s
+AmUx|Perl_keyword_plugin_t|PL_keyword_plugin
+AmU|Perl_check_t *|PL_check
+AmU|yy_parser *|PL_parser
+AmU||G_ARRAY
+AmU||G_DISCARD
+AmU||G_EVAL
+AmU||G_NOARGS
+AmU||G_SCALAR
+AmU||G_VOID
+AmU||HEf_SVKEY
+AmU||MARK
+AmU||Nullav
+AmU||Nullch
+AmU||Nullcv
+AmU||Nullhv
+AmU||Nullsv
+AmU||ORIGMARK
+AmU||SP
+AmU||SVt_INVLIST
+AmU||SVt_IV
+AmU||SVt_NULL
+AmU||SVt_NV
+AmU||SVt_PV
+AmU||SVt_PVAV
+AmU||SVt_PVCV
+AmU||SVt_PVFM
+AmU||SVt_PVGV
+AmU||SVt_PVHV
+AmU||SVt_PVIO
+AmU||SVt_PVIV
+AmU||SVt_PVLV
+AmU||SVt_PVMG
+AmU||SVt_PVNV
+AmU||SVt_REGEXP
+AmU||UNDERBAR
+AmU||XCPT_CATCH
+AmU||XCPT_TRY_END
+AmU||XCPT_TRY_START
+AmU||XS
+AmU||XS_EXTERNAL
+AmU||XS_INTERNAL
+AmU||XS_VERSION
+AmU||newXSproto|char* name|XSUBADDR_t f|char* filename|const char *proto
+AmU||svtype
 Ama|SV*|newSVpvs_flags|const char* s|U32 flags
 Ama|SV*|newSVpvs_share|const char* s
-Am|bool|isALPHA|char ch
-Am|bool|isASCII|char ch
-Am|bool|isDIGIT|char ch
-Am|bool|isLOWER|char ch
-Am|bool|isOCTAL|char ch
-Am|bool|isSPACE|char ch
-Am|bool|isUPPER|char ch
-Am|bool|isWORDCHAR|char ch
-Am|bool|isXDIGIT|char ch
-Am|bool|strEQ|char* s1|char* s2
-Am|bool|strGE|char* s1|char* s2
-Am|bool|strGT|char* s1|char* s2
-Am|bool|strLE|char* s1|char* s2
-Am|bool|strLT|char* s1|char* s2
-Am|bool|strNE|char* s1|char* s2
-Am|bool|strnEQ|char* s1|char* s2|STRLEN len
-Am|bool|strnNE|char* s1|char* s2|STRLEN len
-Am|bool|SvIOK_notUV|SV* sv
-Am|bool|SvIOK_UV|SV* sv
-Am|bool|SvIsCOW_shared_hash|SV* sv
-Am|bool|SvIsCOW|SV* sv
-Am|bool|SvRXOK|SV* sv
-Am|bool|SvTAINTED|SV* sv
-Am|bool|SvTRUE_nomg|SV* sv
-Am|bool|SvTRUE|SV* sv
-Am|bool|SvUOK|SV* sv
-Am|bool|SvVOK|SV* sv
-Am|char*|HePV|HE* he|STRLEN len
-Am|char*|HeUTF8|HE* he
-Am|char*|HvENAME|HV* stash
-Am|char*|HvNAME|HV* stash
-Am|char*|SvEND|SV* sv
-Am|char *|SvGROW|SV* sv|STRLEN len
-Am|char*|SvPVbyte_force|SV* sv|STRLEN len
-Am|char*|SvPVbyte_nolen|SV* sv
-Am|char*|SvPVbyte|SV* sv|STRLEN len
-Am|char*|SvPVbytex_force|SV* sv|STRLEN len
-Am|char*|SvPVbytex|SV* sv|STRLEN len
-Am|char*|SvPV_force_nomg|SV* sv|STRLEN len
-Am|char*|SvPV_force|SV* sv|STRLEN len
-Am|char*|SvPV_nolen|SV* sv
-Am|char*|SvPV_nomg_nolen|SV* sv
-Am|char*|SvPV_nomg|SV* sv|STRLEN len
-Am|char*|SvPV|SV* sv|STRLEN len
-Am|char*|SvPVutf8_force|SV* sv|STRLEN len
-Am|char*|SvPVutf8_nolen|SV* sv
-Am|char*|SvPVutf8|SV* sv|STRLEN len
-Am|char*|SvPVutf8x_force|SV* sv|STRLEN len
-Am|char*|SvPVutf8x|SV* sv|STRLEN len
-Am|char*|SvPVX|SV* sv
-Am|char*|SvPVx|SV* sv|STRLEN len
-Am|char|toLOWER|char ch
-Am|char|toUPPER|char ch
-Am|const char *|OP_DESC|OP *o
-Am|const char *|OP_NAME|OP *o
-Am|HV *|cop_hints_2hv|const COP *cop|U32 flags
-Am|HV*|CvSTASH|CV* cv
-Am|HV*|gv_stashpvs|const char* name|I32 create
-Am|HV*|SvSTASH|SV* sv
-Am|int|AvFILL|AV* av
-Am|IV|SvIV_nomg|SV* sv
-Am|IV|SvIV|SV* sv
-Am|IV|SvIVx|SV* sv
-Am|IV|SvIVX|SV* sv
-Amn|char*|CLASS
-Amn|char*|POPp
-Amn|char*|POPpbytex
-Amn|char*|POPpx
+Ama|SV*|newSVpvs|const char* s
+Ama|char*|savepvs|const char* s
+Ama|char*|savesharedpvs|const char* s
+Amn|(whatever)|RETVAL
+Amn|(whatever)|THIS
 Amn|HV*|PL_modglobal
 Amn|I32|ax
 Amn|I32|items
 Amn|I32|ix
 Amn|IV|POPi
-Amn|long|POPl
 Amn|NV|POPn
-Amn|peep_t|PL_peepp
-Amn|peep_t|PL_rpeepp
 Amn|Perl_ophook_t|PL_opfreehook
 Amn|STRLEN|PL_na
+Amn|SV*|POPs
 Amn|SV|PL_sv_no
 Amn|SV|PL_sv_undef
 Amn|SV|PL_sv_yes
-Amn|SV*|POPs
 Amn|U32|GIMME
 Amn|U32|GIMME_V
-Am|NV|SvNV_nomg|SV* sv
-Am|NV|SvNV|SV* sv
-Am|NV|SvNVx|SV* sv
-Am|NV|SvNVX|SV* sv
-Amn|(whatever)|RETVAL
-Amn|(whatever)|THIS
-Am|OP*|LINKLIST|OP *o
-Am|REGEXP *|SvRX|SV *sv
+Amn|char*|CLASS
+Amn|char*|POPp
+Amn|char*|POPpbytex
+Amn|char*|POPpx
+Amn|long|POPl
+Amn|peep_t|PL_peepp
+Amn|peep_t|PL_rpeepp
+Ams||ENTER
+Ams||FREETMPS
+Ams||LEAVE
+Ams||MULTICALL
+Ams||POP_MULTICALL
+Ams||PUSH_MULTICALL
+Ams||PUTBACK
+Ams||SAVETMPS
+Ams||SPAGAIN
+Ams||XCPT_RETHROW
+Ams||XSRETURN_EMPTY
+Ams||XSRETURN_NO
+Ams||XSRETURN_UNDEF
+Ams||XSRETURN_YES
+Ams||XS_APIVERSION_BOOTCHECK
+Ams||XS_VERSION_BOOTCHECK
 Ams||dAX
 Ams||dAXMARK
 Ams||dITEMS
@@ -122,46 +112,94 @@ Ams||dUNDERBAR
 Ams||dXCPT
 Ams||dXSARGS
 Ams||dXSI32
-Ams||ENTER
-Ams||FREETMPS
-Ams||LEAVE
-Ams||MULTICALL
-Ams||POP_MULTICALL
-Ams||PUSH_MULTICALL
-Ams||PUTBACK
-Ams||SAVETMPS
-Ams||SPAGAIN
+AmxU|PAD *|PL_comppad
+AmxU|PADNAMELIST *|PL_comppad_name
+AmxU|SV **|PL_curpad
+AmxU|SV *|PL_parser-E<gt>linestr
+AmxU|char *|PL_parser-E<gt>bufend
+AmxU|char *|PL_parser-E<gt>bufptr
+AmxU|char *|PL_parser-E<gt>linestart
+Amx|COPHH *|cophh_copy|COPHH *cophh
+Amx|COPHH *|cophh_delete_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
+Amx|COPHH *|cophh_delete_pvs|const COPHH *cophh|const char *key|U32 flags
+Amx|COPHH *|cophh_delete_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
+Amx|COPHH *|cophh_delete_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
+Amx|COPHH *|cophh_new_empty
+Amx|COPHH *|cophh_store_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|SV *value|U32 flags
+Amx|COPHH *|cophh_store_pvs|const COPHH *cophh|const char *key|SV *value|U32 flags
+Amx|COPHH *|cophh_store_pv|const COPHH *cophh|const char *key|U32 hash|SV *value|U32 flags
+Amx|COPHH *|cophh_store_sv|const COPHH *cophh|SV *key|U32 hash|SV *value|U32 flags
+Amx|HV *|cophh_2hv|const COPHH *cophh|U32 flags
+Amx|PAD **|PadlistARRAY|PADLIST padlist
+Amx|PADLIST *|CvPADLIST|CV *cv
+Amx|PADNAME **|PadlistNAMESARRAY|PADLIST padlist
+Amx|PADNAME **|PadnamelistARRAY|PADNAMELIST pnl
+Amx|PADNAMELIST *|PadlistNAMES|PADLIST padlist
+Amx|SSize_t|PadMAX|PAD pad
+Amx|SSize_t|PadlistMAX|PADLIST padlist
+Amx|SSize_t|PadlistNAMESMAX|PADLIST padlist
+Amx|SSize_t|PadnamelistMAX|PADNAMELIST pnl
+Amx|STRLEN|PadnameLEN|PADNAME pn
+Amx|SV **|PadARRAY|PAD pad
+Amx|SV *|PadnameSV|PADNAME pn
+Amx|SV *|cophh_fetch_pvn|const COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
+Amx|SV *|cophh_fetch_pvs|const COPHH *cophh|const char *key|U32 flags
+Amx|SV *|cophh_fetch_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
+Amx|SV *|cophh_fetch_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
+Amx|SV*|newSVpadname|PADNAME *pn
+Amx|U32|PadlistREFCNT|PADLIST padlist
+Amx|bool|PadnameUTF8|PADNAME pn
+Amx|char *|PadnamePV|PADNAME pn
+Amx|void|BhkDISABLE|BHK *hk|which
+Amx|void|BhkENABLE|BHK *hk|which
+Amx|void|BhkENTRY_set|BHK *hk|which|void *ptr
+Amx|void|cophh_free|COPHH *cophh
+Amx|void|lex_stuff_pvs|const char *pv|U32 flags
+Am|AV*|GvAV|GV* gv
+Am|CV*|GvCV|GV* gv
+Am|HV *|cop_hints_2hv|const COP *cop|U32 flags
+Am|HV*|CvSTASH|CV* cv
+Am|HV*|GvHV|GV* gv
+Am|HV*|SvSTASH|SV* sv
+Am|HV*|gv_stashpvs|const char* name|I32 create
+Am|IV|SvIVX|SV* sv
+Am|IV|SvIV_nomg|SV* sv
+Am|IV|SvIVx|SV* sv
+Am|IV|SvIV|SV* sv
+Am|NV|SvNVX|SV* sv
+Am|NV|SvNV_nomg|SV* sv
+Am|NV|SvNVx|SV* sv
+Am|NV|SvNV|SV* sv
+Am|OP*|LINKLIST|OP *o
+Am|PADOFFSET|pad_add_name_pvs|const char *name|U32 flags|HV *typestash|HV *ourstash
+Am|PADOFFSET|pad_findmy_pvs|const char *name|U32 flags
+Am|REGEXP *|SvRX|SV *sv
 Am|STRLEN|HeKLEN|HE* he
+Am|STRLEN|HvENAMELEN|HV *stash
+Am|STRLEN|HvNAMELEN|HV *stash
 Am|STRLEN|SvCUR|SV* sv
 Am|STRLEN|SvLEN|SV* sv
-Am|SV *|cop_hints_fetch_pv|const COP *cop|const char *key|U32 hash|U32 flags
+Am|SV *|boolSV|bool b
 Am|SV *|cop_hints_fetch_pvn|const COP *cop|const char *keypv|STRLEN keylen|U32 hash|U32 flags
 Am|SV *|cop_hints_fetch_pvs|const COP *cop|const char *key|U32 flags
+Am|SV *|cop_hints_fetch_pv|const COP *cop|const char *key|U32 hash|U32 flags
 Am|SV *|cop_hints_fetch_sv|const COP *cop|SV *key|U32 hash|U32 flags
+Am|SV *|sv_setref_pvs|const char* s
+Am|SV**|hv_fetchs|HV* tb|const char* key|I32 lval
+Am|SV**|hv_stores|HV* tb|const char* key|NULLOK SV* val
 Am|SV*|GvSV|GV* gv
 Am|SV*|HeSVKEY_force|HE* he
-Am|SV*|HeSVKEY|HE* he
 Am|SV*|HeSVKEY_set|HE* he|SV* sv
+Am|SV*|HeSVKEY|HE* he
 Am|SV*|HeVAL|HE* he
-Am|SV**|hv_fetchs|HV* tb|const char* key|I32 lval
-Am|SV**|hv_stores|HV* tb|const char* key|NULLOK SV* val
-Am|SV*|newRV_inc|SV* sv
-Am|SV*|newSVpvn_utf8|NULLOK const char* s|STRLEN len|U32 utf8
 Am|SV*|ST|int ix
 Am|SV*|SvREFCNT_inc_NN|SV* sv
 Am|SV*|SvREFCNT_inc_simple_NN|SV* sv
 Am|SV*|SvREFCNT_inc_simple|SV* sv
 Am|SV*|SvREFCNT_inc|SV* sv
 Am|SV*|SvRV|SV* sv
-Am|SV *|sv_setref_pvs|SV *rv|const char* classname|const char* s
-Am|svtype|SvTYPE|SV* sv
-Ams||XCPT_RETHROW
-Ams||XS_APIVERSION_BOOTCHECK
-Ams||XSRETURN_EMPTY
-Ams||XSRETURN_NO
-Ams||XSRETURN_UNDEF
-Ams||XSRETURN_YES
-Ams||XS_VERSION_BOOTCHECK
+Am|SV*|newRV_inc|SV* sv
+Am|SV*|newSVpvn_utf8|NULLOK const char* s|STRLEN len|U32 utf8
 Am|U32|HeHASH|HE* he
 Am|U32|OP_CLASS|OP *o
 Am|U32|SvGAMAGIC|SV* sv
@@ -179,91 +217,124 @@ Am|U32|SvREFCNT|SV* sv
 Am|U32|SvROK|SV* sv
 Am|U32|SvUTF8|SV* sv
 Am|U32|XopFLAGS|XOP *xop
-AmU||G_ARRAY
-AmU||G_DISCARD
-AmU||G_EVAL
-AmU||G_NOARGS
-AmU||G_SCALAR
-AmU||G_VOID
-AmU||HEf_SVKEY
-AmU||MARK
-AmU||newXSproto|char* name|XSUBADDR_t f|char* filename|const char *proto
-AmU||Nullav
-AmU||Nullch
-AmU||Nullcv
-AmU||Nullhv
-AmU||Nullsv
-AmU||ORIGMARK
-AmU||SP
-AmU||SVt_IV
-AmU||SVt_NV
-AmU||SVt_PV
-AmU||SVt_PVAV
-AmU||SVt_PVCV
-AmU||SVt_PVHV
-AmU||SVt_PVMG
-AmU||svtype
-AmU||UNDERBAR
+Am|U8|READ_XDIGIT|char str*
+Am|U8|toFOLD|U8 ch
+Am|U8|toLOWER_L1|U8 ch
+Am|U8|toLOWER_LC|U8 ch
+Am|U8|toLOWER|U8 ch
+Am|U8|toTITLE|U8 ch
+Am|U8|toUPPER|U8 ch
+Am|UV|SvUVX|SV* sv
 Am|UV|SvUV_nomg|SV* sv
-Am|UV|SvUV|SV* sv
 Am|UV|SvUVx|SV* sv
-Am|UV|SvUVX|SV* sv
-AmU||XCPT_CATCH
-AmU||XCPT_TRY_END
-AmU||XCPT_TRY_START
-AmUx|Perl_keyword_plugin_t|PL_keyword_plugin
-AmU||XS
-AmU||XS_VERSION
-AmU|yy_parser *|PL_parser
+Am|UV|SvUV|SV* sv
+Am|UV|toFOLD_uni|UV cp|U8* s|STRLEN* lenp
+Am|UV|toFOLD_utf8|U8* p|U8* s|STRLEN* lenp
+Am|UV|toLOWER_uni|UV cp|U8* s|STRLEN* lenp
+Am|UV|toLOWER_utf8|U8* p|U8* s|STRLEN* lenp
+Am|UV|toTITLE_uni|UV cp|U8* s|STRLEN* lenp
+Am|UV|toTITLE_utf8|U8* p|U8* s|STRLEN* lenp
+Am|UV|toUPPER_uni|UV cp|U8* s|STRLEN* lenp
+Am|UV|toUPPER_utf8|U8* p|U8* s|STRLEN* lenp
+Am|bool|SvIOK_UV|SV* sv
+Am|bool|SvIOK_notUV|SV* sv
+Am|bool|SvIsCOW_shared_hash|SV* sv
+Am|bool|SvIsCOW|SV* sv
+Am|bool|SvRXOK|SV* sv
+Am|bool|SvTAINTED|SV* sv
+Am|bool|SvTRUE_nomg|SV* sv
+Am|bool|SvTRUE|SV* sv
+Am|bool|SvUOK|SV* sv
+Am|bool|SvVOK|SV* sv
+Am|bool|isALPHANUMERIC|char ch
+Am|bool|isALPHA|char ch
+Am|bool|isASCII|char ch
+Am|bool|isBLANK|char ch
+Am|bool|isCNTRL|char ch
+Am|bool|isDIGIT|char ch
+Am|bool|isGRAPH|char ch
+Am|bool|isIDCONT|char ch
+Am|bool|isIDFIRST|char ch
+Am|bool|isLOWER|char ch
+Am|bool|isOCTAL|char ch
+Am|bool|isPRINT|char ch
+Am|bool|isPSXSPC|char ch
+Am|bool|isPUNCT|char ch
+Am|bool|isSPACE|char ch
+Am|bool|isUPPER|char ch
+Am|bool|isWORDCHAR|char ch
+Am|bool|isXDIGIT|char ch
+Am|bool|strEQ|char* s1|char* s2
+Am|bool|strGE|char* s1|char* s2
+Am|bool|strGT|char* s1|char* s2
+Am|bool|strLE|char* s1|char* s2
+Am|bool|strLT|char* s1|char* s2
+Am|bool|strNE|char* s1|char* s2
+Am|bool|strnEQ|char* s1|char* s2|STRLEN len
+Am|bool|strnNE|char* s1|char* s2|STRLEN len
+Am|char *|SvGROW|SV* sv|STRLEN len
+Am|char*|HePV|HE* he|STRLEN len
+Am|char*|HeUTF8|HE* he
+Am|char*|HvENAME|HV* stash
+Am|char*|HvNAME|HV* stash
+Am|char*|SvEND|SV* sv
+Am|char*|SvPVX|SV* sv
+Am|char*|SvPV_force_nomg|SV* sv|STRLEN len
+Am|char*|SvPV_force|SV* sv|STRLEN len
+Am|char*|SvPV_nolen|SV* sv
+Am|char*|SvPV_nomg_nolen|SV* sv
+Am|char*|SvPV_nomg|SV* sv|STRLEN len
+Am|char*|SvPVbyte_force|SV* sv|STRLEN len
+Am|char*|SvPVbyte_nolen|SV* sv
+Am|char*|SvPVbytex_force|SV* sv|STRLEN len
+Am|char*|SvPVbytex|SV* sv|STRLEN len
+Am|char*|SvPVbyte|SV* sv|STRLEN len
+Am|char*|SvPVutf8_force|SV* sv|STRLEN len
+Am|char*|SvPVutf8_nolen|SV* sv
+Am|char*|SvPVutf8x_force|SV* sv|STRLEN len
+Am|char*|SvPVutf8x|SV* sv|STRLEN len
+Am|char*|SvPVutf8|SV* sv|STRLEN len
+Am|char*|SvPVx|SV* sv|STRLEN len
+Am|char*|SvPV|SV* sv|STRLEN len
+Am|const char *|OP_DESC|OP *o
+Am|const char *|OP_NAME|OP *o
+Am|int|AvFILL|AV* av
+Am|svtype|SvTYPE|SV* sv
+Am|unsigned char|HvENAMEUTF8|HV *stash
+Am|unsigned char|HvNAMEUTF8|HV *stash
 Am|void *|CopyD|void* src|void* dest|int nitems|type
+Am|void *|MoveD|void* src|void* dest|int nitems|type
+Am|void *|ZeroD|void* dest|int nitems|type
+Am|void*|HeKEY|HE* he
 Am|void|Copy|void* src|void* dest|int nitems|type
 Am|void|EXTEND|SP|int nitems
-Am|void*|HeKEY|HE* he
-Am|void *|MoveD|void* src|void* dest|int nitems|type
 Am|void|Move|void* src|void* dest|int nitems|type
-Am|void|mPUSHi|IV iv
-Am|void|mPUSHn|NV nv
-Am|void|mPUSHp|char* str|STRLEN len
-Am|void|mPUSHs|SV* sv
-Am|void|mPUSHu|UV uv
-Am|void|mXPUSHi|IV iv
-Am|void|mXPUSHn|NV nv
-Am|void|mXPUSHp|char* str|STRLEN len
-Am|void|mXPUSHs|SV* sv
-Am|void|mXPUSHu|UV uv
 Am|void|Newxc|void* ptr|int nitems|type|cast
-Am|void|Newx|void* ptr|int nitems|type
 Am|void|Newxz|void* ptr|int nitems|type
-Am|void|PERL_SYS_INIT3|int argc|char** argv|char** env
-Am|void|PERL_SYS_INIT|int argc|char** argv
+Am|void|Newx|void* ptr|int nitems|type
+Am|void|PERL_SYS_INIT3|int *argc|char*** argv|char*** env
+Am|void|PERL_SYS_INIT|int *argc|char*** argv
 Am|void|PERL_SYS_TERM|
-Am|void|PoisonFree|void* dest|int nitems|type
-Am|void|PoisonNew|void* dest|int nitems|type
-Am|void|Poison|void* dest|int nitems|type
-Am|void|PoisonWith|void* dest|int nitems|type|U8 byte
-Am|void|PUSHi|IV iv
 Am|void|PUSHMARK|SP
+Am|void|PUSHi|IV iv
 Am|void|PUSHmortal
 Am|void|PUSHn|NV nv
 Am|void|PUSHp|char* str|STRLEN len
 Am|void|PUSHs|SV* sv
 Am|void|PUSHu|UV uv
+Am|void|PoisonFree|void* dest|int nitems|type
+Am|void|PoisonNew|void* dest|int nitems|type
+Am|void|PoisonWith|void* dest|int nitems|type|U8 byte
+Am|void|Poison|void* dest|int nitems|type
 Am|void|Renewc|void* ptr|int nitems|type|cast
 Am|void|Renew|void* ptr|int nitems|type
 Am|void|Safefree|void* ptr
-Am|void|StructCopy|type src|type dest|type
-Am|void|sv_catpvn_nomg|SV* sv|const char* ptr|STRLEN len
-Am|void|sv_catpv_nomg|SV* sv|const char* ptr
-Am|void|sv_catpvs_flags|SV* sv|const char* s|I32 flags
-Am|void|sv_catpvs_mg|SV* sv|const char* s
-Am|void|sv_catpvs_nomg|SV* sv|const char* s
-Am|void|sv_catpvs|SV* sv|const char* s
-Am|void|sv_catsv_nomg|SV* dsv|SV* ssv
+Am|void|StructCopy|type *src|type *dest|type
 Am|void|SvCUR_set|SV* sv|STRLEN len
 Am|void|SvGETMAGIC|SV* sv
 Am|void|SvIOK_off|SV* sv
-Am|void|SvIOK_only|SV* sv
 Am|void|SvIOK_only_UV|SV* sv
+Am|void|SvIOK_only|SV* sv
 Am|void|SvIOK_on|SV* sv
 Am|void|SvIV_set|SV* sv|IV val
 Am|void|SvLEN_set|SV* sv|STRLEN len
@@ -276,10 +347,11 @@ Am|void|SvNOK_on|SV* sv
 Am|void|SvNV_set|SV* sv|NV val
 Am|void|SvOOK_offset|NN SV*sv|STRLEN len
 Am|void|SvPOK_off|SV* sv
-Am|void|SvPOK_only|SV* sv
 Am|void|SvPOK_only_UTF8|SV* sv
+Am|void|SvPOK_only|SV* sv
 Am|void|SvPOK_on|SV* sv
 Am|void|SvPV_set|SV* sv|char* val
+Am|void|SvREFCNT_dec_NN|SV* sv
 Am|void|SvREFCNT_dec|SV* sv
 Am|void|SvREFCNT_inc_simple_void_NN|SV* sv
 Am|void|SvREFCNT_inc_simple_void|SV* sv
@@ -288,16 +360,13 @@ Am|void|SvREFCNT_inc_void|SV* sv
 Am|void|SvROK_off|SV* sv
 Am|void|SvROK_on|SV* sv
 Am|void|SvRV_set|SV* sv|SV* val
-Am|void|SvSetMagicSV_nosteal|SV* dsv|SV* ssv
 Am|void|SvSETMAGIC|SV* sv
+Am|void|SvSHARE|SV* sv
+Am|void|SvSTASH_set|SV* sv|HV* val
+Am|void|SvSetMagicSV_nosteal|SV* dsv|SV* ssv
 Am|void|SvSetMagicSV|SV* dsb|SV* ssv
-Am|void|sv_setpvs_mg|SV* sv|const char* s
-Am|void|sv_setpvs|SV* sv|const char* s
-Am|void|sv_setsv_nomg|SV* dsv|SV* ssv
 Am|void|SvSetSV_nosteal|SV* dsv|SV* ssv
 Am|void|SvSetSV|SV* dsb|SV* ssv
-Am|void|SvSHARE|SV* sv
-Am|void|SvSTASH_set|SV* sv|HV* val
 Am|void|SvTAINTED_off|SV* sv
 Am|void|SvTAINTED_on|SV* sv
 Am|void|SvTAINT|SV* sv
@@ -306,88 +375,87 @@ Am|void|SvUPGRADE|SV* sv|svtype type
 Am|void|SvUTF8_off|SV *sv
 Am|void|SvUTF8_on|SV *sv
 Am|void|SvUV_set|SV* sv|UV val
-Am|void|XopDISABLE|XOP *xop|which
-Am|void|XopENABLE|XOP *xop|which
-Am|void|XopENTRY_set|XOP *xop|which|value
 Am|void|XPUSHi|IV iv
 Am|void|XPUSHmortal
 Am|void|XPUSHn|NV nv
 Am|void|XPUSHp|char* str|STRLEN len
 Am|void|XPUSHs|SV* sv
 Am|void|XPUSHu|UV uv
-Am|void|XSRETURN|int nitems
 Am|void|XSRETURN_IV|IV iv
 Am|void|XSRETURN_NV|NV nv
 Am|void|XSRETURN_PV|char* str
 Am|void|XSRETURN_UV|IV uv
+Am|void|XSRETURN|int nitems
 Am|void|XST_mIV|int pos|IV iv
 Am|void|XST_mNO|int pos
 Am|void|XST_mNV|int pos|NV nv
 Am|void|XST_mPV|int pos|char* str
 Am|void|XST_mUNDEF|int pos
 Am|void|XST_mYES|int pos
-Am|void *|ZeroD|void* dest|int nitems|type
+Am|void|XopDISABLE|XOP *xop|which
+Am|void|XopENABLE|XOP *xop|which
+Am|void|XopENTRY_set|XOP *xop|which|value
 Am|void|Zero|void* dest|int nitems|type
-Amx|COPHH *|cophh_copy|COPHH *cophh
-Amx|COPHH *|cophh_delete_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
-Amx|COPHH *|cophh_delete_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
-Amx|COPHH *|cophh_delete_pvs|const COPHH *cophh|const char *key|U32 flags
-Amx|COPHH *|cophh_delete_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
-Amx|COPHH *|cophh_new_empty
-Amx|COPHH *|cophh_store_pv|const COPHH *cophh|const char *key|U32 hash|SV *value|U32 flags
-Amx|COPHH *|cophh_store_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|SV *value|U32 flags
-Amx|COPHH *|cophh_store_pvs|const COPHH *cophh|const char *key|SV *value|U32 flags
-Amx|COPHH *|cophh_store_sv|const COPHH *cophh|SV *key|U32 hash|SV *value|U32 flags
-Amx|HV *|cophh_2hv|const COPHH *cophh|U32 flags
+Am|void|mPUSHi|IV iv
+Am|void|mPUSHn|NV nv
+Am|void|mPUSHp|char* str|STRLEN len
+Am|void|mPUSHs|SV* sv
+Am|void|mPUSHu|UV uv
+Am|void|mXPUSHi|IV iv
+Am|void|mXPUSHn|NV nv
+Am|void|mXPUSHp|char* str|STRLEN len
+Am|void|mXPUSHs|SV* sv
+Am|void|mXPUSHu|UV uv
+Am|void|sv_catpv_nomg|SV* sv|const char* ptr
+Am|void|sv_catpvn_nomg|SV* sv|const char* ptr|STRLEN len
+Am|void|sv_catpvs_flags|SV* sv|const char* s|I32 flags
+Am|void|sv_catpvs_mg|SV* sv|const char* s
+Am|void|sv_catpvs_nomg|SV* sv|const char* s
+Am|void|sv_catpvs|SV* sv|const char* s
+Am|void|sv_catsv_nomg|SV* dsv|SV* ssv
+Am|void|sv_setpvs_mg|SV* sv|const char* s
+Am|void|sv_setpvs|SV* sv|const char* s
+Am|void|sv_setsv_nomg|SV* dsv|SV* ssv
 Am||XopENTRY|XOP *xop|which
-Amx|SV *|cophh_fetch_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
-Amx|SV *|cophh_fetch_pvn|const COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
-Amx|SV *|cophh_fetch_pvs|const COPHH *cophh|const char *key|U32 flags
-Amx|SV *|cophh_fetch_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
-AmxU|char *|PL_parser-E<gt>bufend
-AmxU|char *|PL_parser-E<gt>bufptr
-AmxU|char *|PL_parser-E<gt>linestart
-AmxU|SV *|PL_parser-E<gt>linestr
-Amx|void|BhkDISABLE|BHK *hk|which
-Amx|void|BhkENABLE|BHK *hk|which
-Amx|void|BhkENTRY_set|BHK *hk|which|void *ptr
-Amx|void|cophh_free|COPHH *cophh
-Amx|void|lex_stuff_pvs|const char *pv|U32 flags
-m|AV *|CvPADLIST|CV *cv
-m|bool|CvWEAKOUTSIDE|CV *cv
-m|char *|PAD_COMPNAME_PV|PADOFFSET po
-m|HV *|PAD_COMPNAME_OURSTASH|PADOFFSET po
-m|HV *|PAD_COMPNAME_TYPE|PADOFFSET po
-mn|bool|PL_dowarn
+mU||LVRET
 mn|GV *|PL_DBsub
 mn|GV*|PL_last_in_gv
 mn|GV*|PL_ofsgv
 mn|SV *|PL_DBsingle
 mn|SV *|PL_DBtrace
 mn|SV*|PL_rs
+mn|bool|PL_dowarn
 ms||djSP
-m|STRLEN|PAD_COMPNAME_GEN|PADOFFSET po
+mx|U32|BhkFLAGS|BHK *hk
+mx|void *|BhkENTRY|BHK *hk|which
+mx|void|CALL_BLOCK_HOOKS|which|arg
+m|HV *|PAD_COMPNAME_OURSTASH|PADOFFSET po
+m|HV *|PAD_COMPNAME_TYPE|PADOFFSET po
+m|HV *|PadnameOURSTASH
+m|HV *|PadnameTYPE|PADNAME pn
 m|STRLEN|PAD_COMPNAME_GEN_set|PADOFFSET po|int gen
-m|struct refcounted_he *|refcounted_he_new_pvs|struct refcounted_he *parent|const char *key|SV *value|U32 flags
+m|STRLEN|PAD_COMPNAME_GEN|PADOFFSET po
 m|SV *|CX_CURPAD_SV|struct context|PADOFFSET po
 m|SV *|PAD_BASE_SV     |PADLIST padlist|PADOFFSET po
 m|SV *|PAD_SETSV       |PADOFFSET po|SV* sv
 m|SV *|PAD_SVl |PADOFFSET po
 m|SV *|refcounted_he_fetch_pvs|const struct refcounted_he *chain|const char *key|U32 flags
 m|U32|PAD_COMPNAME_FLAGS|PADOFFSET po
-mU||LVRET
+m|U32|SvTHINKFIRST|SV *sv
+m|bool|CvWEAKOUTSIDE|CV *cv
+m|bool|PadnameIsOUR|PADNAME pn
+m|bool|PadnameIsSTATE|PADNAME pn
+m|bool|PadnameOUTER|PADNAME pn
+m|char *|PAD_COMPNAME_PV|PADOFFSET po
+m|struct refcounted_he *|refcounted_he_new_pvs|struct refcounted_he *parent|const char *key|SV *value|U32 flags
 m|void|CX_CURPAD_SAVE|struct context
 m|void|PAD_CLONE_VARS|PerlInterpreter *proto_perl|CLONE_PARAMS* param
-m|void|PAD_DUP|PADLIST dstpad|PADLIST srcpad|CLONE_PARAMS* param
 m|void|PAD_RESTORE_LOCAL|PAD *opad
 m|void|PAD_SAVE_LOCAL|PAD *opad|PAD *npad
 m|void|PAD_SAVE_SETNULLPAD
-m|void|PAD_SET_CUR_NOSAVE      |PADLIST padlist|I32 n
 m|void|PAD_SET_CUR     |PADLIST padlist|I32 n
+m|void|PAD_SET_CUR_NOSAVE      |PADLIST padlist|I32 n
 m|void|PAD_SV  |PADOFFSET po
 m|void|SAVECLEARSV     |SV **svp
 m|void|SAVECOMPPAD
 m|void|SAVEPADSV       |PADOFFSET po
-mx|U32|BhkFLAGS|BHK *hk
-mx|void *|BhkENTRY|BHK *hk|which
-mx|void|CALL_BLOCK_HOOKS|which|arg
index c16c360..fdfb875 100644 (file)
@@ -22,11 +22,12 @@ SvUVX                          # U
 SvUVx                          # U
 XPUSHu                         # U
 block_gimme                    # E
+boolSV                         # U
 call_list                      # E
 cv_const_sv                    # E
 delimcpy                       # U
 do_open                        # E (Perl_do_open)
-gv_autoload4                   # E
+gv_autoload4                   # U
 gv_efullname3                  # U
 gv_fetchmethod_autoload        # E
 gv_fullname3                   # U
@@ -40,8 +41,9 @@ hv_iterkeysv                   # E
 hv_ksplit                      # E
 hv_store_ent                   # U
 ibcmp_locale                   # U
+isPRINT                        # U
 my_failure_exit                # E
-my_memcmp                      # U
+my_memset                      # U
 my_pclose                      # E (Perl_my_pclose)
 my_popen                       # E (Perl_my_popen)
 newRV_inc                      # U
@@ -62,6 +64,8 @@ sv_tainted                     # E
 sv_untaint                     # E
 sv_vcatpvfn                    # E
 sv_vsetpvfn                    # E
+toLOWER_LC                     # U
+toUPPER                        # U
 unsharepvn                     # E
 PERL_HASH                      # added by devel/scanprov
 PERL_INT_MAX                   # added by devel/scanprov
@@ -83,7 +87,5 @@ PERL_UQUAD_MIN                 # added by devel/scanprov
 PERL_USHORT_MAX                # added by devel/scanprov
 PERL_USHORT_MIN                # added by devel/scanprov
 SvUVXx                         # added by devel/scanprov
-boolSV                         # added by devel/scanprov
-isPRINT                        # added by devel/scanprov
 memEQ                          # added by devel/scanprov
 memNE                          # added by devel/scanprov
index 82fdcf0..555e588 100644 (file)
@@ -1,4 +1,6 @@
 5.004050
+Copy                           # U
+Move                           # U
 PL_na                          # E
 PL_sv_no                       # E
 PL_sv_undef                    # E
index c41e3bb..cc5a690 100644 (file)
@@ -1,4 +1,5 @@
 5.005000
+PL_curpad                      # E
 PL_modglobal                   # E
 cx_dump                        # U
 debop                          # U
index 5c665b2..1a867c6 100644 (file)
@@ -1,5 +1,4 @@
 5.006000
-PERL_SYS_INIT3                 # U
 POPn                           # E
 PUSHn                          # E
 SvIOK_UV                       # U
@@ -67,6 +66,9 @@ gv_dump                        # E
 init_i18nl10n                  # E (perl_init_i18nl10n)
 init_i18nl14n                  # E (perl_init_i18nl14n)
 isASCII                        # U
+isCNTRL                        # U
+isGRAPH                        # U
+isPUNCT                        # U
 isXDIGIT                       # U
 is_uni_alnum                   # E
 is_uni_alnum_lc                # E
@@ -284,8 +286,5 @@ dTHXa                          # added by devel/scanprov
 dTHXoa                         # added by devel/scanprov
 dXSTARG                        # added by devel/scanprov
 isALNUMC                       # added by devel/scanprov
-isCNTRL                        # added by devel/scanprov
-isGRAPH                        # added by devel/scanprov
-isPUNCT                        # added by devel/scanprov
 pTHX                           # added by devel/scanprov
 pTHX_                          # added by devel/scanprov
index ed53af5..b3626c0 100644 (file)
@@ -4,6 +4,8 @@ apply_attrs_string             # U
 bytes_to_utf8                  # U
 gv_efullname4                  # U
 gv_fullname4                   # U
+isBLANK                        # U
+isPSXSPC                       # U
 is_utf8_string                 # U
 save_generic_pvref             # U
 utf16_to_utf8                  # E (Perl_utf16_to_utf8)
@@ -13,5 +15,3 @@ G_METHOD                       # added by devel/scanprov
 NVef                           # added by devel/scanprov
 NVff                           # added by devel/scanprov
 NVgf                           # added by devel/scanprov
-isBLANK                        # added by devel/scanprov
-isPSXSPC                       # added by devel/scanprov
index 148eef9..393fcf1 100644 (file)
@@ -49,8 +49,6 @@ PERL_MAGIC_fm                  # added by devel/scanprov
 PERL_MAGIC_isa                 # added by devel/scanprov
 PERL_MAGIC_isaelem             # added by devel/scanprov
 PERL_MAGIC_nkeys               # added by devel/scanprov
-PERL_MAGIC_overload            # added by devel/scanprov
-PERL_MAGIC_overload_elem       # added by devel/scanprov
 PERL_MAGIC_overload_table      # added by devel/scanprov
 PERL_MAGIC_pos                 # added by devel/scanprov
 PERL_MAGIC_qr                  # added by devel/scanprov
index c7a8770..9347217 100644 (file)
@@ -47,22 +47,21 @@ pv_uni_display                 # U
 save_shared_pvref              # U
 savesharedpv                   # U
 sortsv                         # U
-sv_copypv                      # U
 sv_magicext                    # U
 sv_nolocking                   # U
 sv_nosharing                   # U
 sv_pvn_nomg                    # U
 sv_recode_to_utf8              # U
 sv_uni_display                 # U
+toFOLD_uni                     # U
+toLOWER_uni                    # A
+toTITLE_uni                    # A
+toUPPER_uni                    # A
 to_uni_fold                    # U
 to_uni_lower                   # E (Perl_to_uni_lower)
 to_uni_title                   # E (Perl_to_uni_title)
 to_uni_upper                   # E (Perl_to_uni_upper)
 to_utf8_case                   # U
-to_utf8_fold                   # U
-to_utf8_lower                  # E (Perl_to_utf8_lower)
-to_utf8_title                  # E (Perl_to_utf8_title)
-to_utf8_upper                  # E (Perl_to_utf8_upper)
 unpack_str                     # U
 uvchr_to_utf8_flags            # U
 uvuni_to_utf8_flags            # U
index a389fd8..48a800a 100644 (file)
@@ -1,15 +1,19 @@
 5.008001
+CvPADLIST                      # E
+PL_comppad                     # E
 SvVOK                          # U
 XSRETURN_UV                    # U
 doing_taint                    # U
 find_runcv                     # U
 is_utf8_string_loc             # U
 packlist                       # U
+pad_add_anon                   # U
+pad_new                        # E
+pad_tidy                       # E
 save_bool                      # U
 savestack_grow_cnt             # U
 seed                           # U
 sv_cat_decode                  # U
-sv_compile_2op                 # E (Perl_sv_compile_2op)
 sv_setpviv                     # U
 sv_setpviv_mg                  # U
 unpackstring                   # U
index 15499c6..e8f1065 100644 (file)
@@ -2,6 +2,7 @@
 Newx                           # E
 Newxc                          # E
 Newxz                          # E
+PL_check                       # E
 SvMAGIC_set                    # U
 SvRV_set                       # U
 SvSTASH_set                    # U
@@ -20,7 +21,6 @@ hv_eiter_set                   # U
 hv_fetchs                      # U
 hv_name_set                    # U
 hv_placeholders_get            # U
-hv_placeholders_p              # U
 hv_placeholders_set            # U
 hv_riter_p                     # U
 hv_riter_set                   # U
@@ -31,6 +31,7 @@ newSVhek                       # U
 newSVpvs                       # U
 newSVpvs_share                 # U
 newWHENOP                      # U
+pad_compname_type              # U
 savepvs                        # U
 sortsv_flags                   # U
 sv_catpvs                      # U
index de29b9f..8ddae03 100644 (file)
@@ -20,7 +20,6 @@ ptr_table_new                  # U
 ptr_table_split                # U
 ptr_table_store                # U
 re_compile                     # U
-re_intuit_start                # E (Perl_re_intuit_start)
 reg_named_buff_all             # U
 reg_named_buff_exists          # U
 reg_named_buff_fetch           # U
index 922e614..48440b0 100644 (file)
@@ -1,4 +1,6 @@
 5.010000
+PERL_SYS_INIT                  # U
+PERL_SYS_INIT3                 # U
 hv_common                      # U
 hv_common_key_len              # U
 sv_destroyable                 # U
index 246315c..1f499d9 100644 (file)
@@ -1,11 +1,10 @@
 5.011000
 Gv_AMupdate                    # E (Perl_Gv_AMupdate)
 PL_opfreehook                  # E
+SVt_REGEXP                     # E
 SvOOK_offset                   # U
 av_iter_p                      # U
-fetch_cop_label                # U
 gv_add_by_type                 # U
-gv_fetchmethod_flags           # U
 is_ascii_string                # U
 pregfree2                      # U
 save_adelete                   # U
index 4e66714..df12d99 100644 (file)
@@ -11,4 +11,3 @@ lex_read_unichar               # U
 lex_stuff_pvn                  # U
 lex_stuff_sv                   # U
 lex_unstuff                    # U
-pad_findmy                     # E (Perl_pad_findmy)
diff --git a/cpan/Devel-PPPort/parts/base/5012004 b/cpan/Devel-PPPort/parts/base/5012004
new file mode 100644 (file)
index 0000000..e7319cd
--- /dev/null
@@ -0,0 +1 @@
+5.012004
diff --git a/cpan/Devel-PPPort/parts/base/5012005 b/cpan/Devel-PPPort/parts/base/5012005
new file mode 100644 (file)
index 0000000..5af0130
--- /dev/null
@@ -0,0 +1 @@
+5.012005
index 9b7d2a0..d145f36 100644 (file)
@@ -30,4 +30,3 @@ sv_cmp_locale_flags            # U
 sv_collxfrm_flags              # U
 sv_eq_flags                    # U
 sv_setpvs_mg                   # U
-sv_setref_pvs                  # U
index a33715f..dce5830 100644 (file)
@@ -1 +1,2 @@
 5.013011
+_to_uni_fold_flags             # U
index f348abe..cfe7822 100644 (file)
@@ -1,38 +1 @@
 5.014000
-BhkDISABLE                     # E
-BhkENABLE                      # E
-BhkENTRY_set                   # E
-MULTICALL                      # E
-PERL_SYS_TERM                  # E
-POP_MULTICALL                  # E
-PUSH_MULTICALL                 # E
-XopDISABLE                     # E
-XopENABLE                      # E
-XopENTRY                       # E
-XopENTRY_set                   # E
-cophh_new_empty                # E
-my_lstat                       # U (Perl_my_lstat)
-my_stat                        # U (Perl_my_stat)
-ref                            # U (Perl_ref)
-stashpv_hvname_match           # U
-sv_magic_portable              # U
-PERL_BCDVERSION                # added by devel/scanprov
-PERL_MAGIC_glob                # added by devel/scanprov
-PERL_MAGIC_mutex               # added by devel/scanprov
-PL_bufend                      # added by devel/scanprov
-PL_bufptr                      # added by devel/scanprov
-PL_copline                     # added by devel/scanprov
-PL_error_count                 # added by devel/scanprov
-PL_expect                      # added by devel/scanprov
-PL_in_my                       # added by devel/scanprov
-PL_in_my_stash                 # added by devel/scanprov
-PL_lex_state                   # added by devel/scanprov
-PL_lex_stuff                   # added by devel/scanprov
-PL_linestr                     # added by devel/scanprov
-PL_rsfp                        # added by devel/scanprov
-PL_rsfp_filters                # added by devel/scanprov
-PL_tokenbuf                    # added by devel/scanprov
-WARN_ASSERTIONS                # added by devel/scanprov
-aTHXR                          # added by devel/scanprov
-aTHXR_                         # added by devel/scanprov
-dTHXR                          # added by devel/scanprov
diff --git a/cpan/Devel-PPPort/parts/base/5014001 b/cpan/Devel-PPPort/parts/base/5014001
new file mode 100644 (file)
index 0000000..098fb03
--- /dev/null
@@ -0,0 +1 @@
+5.014001
diff --git a/cpan/Devel-PPPort/parts/base/5014002 b/cpan/Devel-PPPort/parts/base/5014002
new file mode 100644 (file)
index 0000000..f280bd0
--- /dev/null
@@ -0,0 +1 @@
+5.014002
diff --git a/cpan/Devel-PPPort/parts/base/5014003 b/cpan/Devel-PPPort/parts/base/5014003
new file mode 100644 (file)
index 0000000..333e50d
--- /dev/null
@@ -0,0 +1 @@
+5.014003
diff --git a/cpan/Devel-PPPort/parts/base/5014004 b/cpan/Devel-PPPort/parts/base/5014004
new file mode 100644 (file)
index 0000000..1618e36
--- /dev/null
@@ -0,0 +1 @@
+5.014004
diff --git a/cpan/Devel-PPPort/parts/base/5015000 b/cpan/Devel-PPPort/parts/base/5015000
new file mode 100644 (file)
index 0000000..d8c6546
--- /dev/null
@@ -0,0 +1 @@
+5.015000
diff --git a/cpan/Devel-PPPort/parts/base/5015001 b/cpan/Devel-PPPort/parts/base/5015001
new file mode 100644 (file)
index 0000000..144926b
--- /dev/null
@@ -0,0 +1,11 @@
+5.015001
+cop_fetch_label                # U
+cop_store_label                # U
+pad_add_name_pv                # U
+pad_add_name_pvn               # U
+pad_add_name_pvs               # U
+pad_add_name_sv                # U
+pad_findmy_pv                  # U
+pad_findmy_pvn                 # U
+pad_findmy_pvs                 # U
+pad_findmy_sv                  # U
diff --git a/cpan/Devel-PPPort/parts/base/5015002 b/cpan/Devel-PPPort/parts/base/5015002
new file mode 100644 (file)
index 0000000..0674128
--- /dev/null
@@ -0,0 +1 @@
+5.015002
diff --git a/cpan/Devel-PPPort/parts/base/5015003 b/cpan/Devel-PPPort/parts/base/5015003
new file mode 100644 (file)
index 0000000..7f33df7
--- /dev/null
@@ -0,0 +1 @@
+5.015003
diff --git a/cpan/Devel-PPPort/parts/base/5015004 b/cpan/Devel-PPPort/parts/base/5015004
new file mode 100644 (file)
index 0000000..e25404d
--- /dev/null
@@ -0,0 +1,31 @@
+5.015004
+HvENAMELEN                     # U
+HvENAMEUTF8                    # U
+HvNAMELEN                      # U
+HvNAMEUTF8                     # U
+gv_autoload_pv                 # U
+gv_autoload_pvn                # U
+gv_autoload_sv                 # U
+gv_fetchmeth_pv                # U
+gv_fetchmeth_pv_autoload       # U
+gv_fetchmeth_pvn               # U
+gv_fetchmeth_pvn_autoload      # U
+gv_fetchmeth_sv                # U
+gv_fetchmeth_sv_autoload       # U
+gv_fetchmethod_pv_flags        # U
+gv_fetchmethod_pvn_flags       # U
+gv_fetchmethod_sv_flags        # U
+gv_init_pv                     # U
+gv_init_pvn                    # U
+gv_init_sv                     # U
+newGVgen_flags                 # U
+sv_derived_from_pv             # U
+sv_derived_from_pvn            # U
+sv_derived_from_sv             # U
+sv_does_pv                     # U
+sv_does_pvn                    # U
+sv_does_sv                     # U
+whichsig_pv                    # U
+whichsig_pvn                   # U
+whichsig_sv                    # U
+WIDEST_UTYPE                   # added by devel/scanprov
diff --git a/cpan/Devel-PPPort/parts/base/5015005 b/cpan/Devel-PPPort/parts/base/5015005
new file mode 100644 (file)
index 0000000..1908a93
--- /dev/null
@@ -0,0 +1 @@
+5.015005
diff --git a/cpan/Devel-PPPort/parts/base/5015006 b/cpan/Devel-PPPort/parts/base/5015006
new file mode 100644 (file)
index 0000000..6e7f923
--- /dev/null
@@ -0,0 +1,6 @@
+5.015006
+_to_utf8_fold_flags            # A
+_to_utf8_lower_flags           # U
+_to_utf8_title_flags           # U
+_to_utf8_upper_flags           # U
+newCONSTSUB_flags              # A
diff --git a/cpan/Devel-PPPort/parts/base/5015007 b/cpan/Devel-PPPort/parts/base/5015007
new file mode 100644 (file)
index 0000000..ce90789
--- /dev/null
@@ -0,0 +1,8 @@
+5.015007
+toLOWER_utf8                   # U
+toTITLE_utf8                   # U
+toUPPER_utf8                   # U
+to_utf8_fold                   # U
+to_utf8_lower                  # U
+to_utf8_title                  # U
+to_utf8_upper                  # U
diff --git a/cpan/Devel-PPPort/parts/base/5015008 b/cpan/Devel-PPPort/parts/base/5015008
new file mode 100644 (file)
index 0000000..14c6403
--- /dev/null
@@ -0,0 +1,3 @@
+5.015008
+is_utf8_char_buf               # U
+wrap_op_checker                # U
diff --git a/cpan/Devel-PPPort/parts/base/5015009 b/cpan/Devel-PPPort/parts/base/5015009
new file mode 100644 (file)
index 0000000..0836f1f
--- /dev/null
@@ -0,0 +1,4 @@
+5.015009
+utf8_to_uvchr_buf              # U
+utf8_to_uvuni_buf              # U
+valid_utf8_to_uvuni            # U
diff --git a/cpan/Devel-PPPort/parts/base/5016000 b/cpan/Devel-PPPort/parts/base/5016000
new file mode 100644 (file)
index 0000000..3bd46b7
--- /dev/null
@@ -0,0 +1 @@
+5.016000
diff --git a/cpan/Devel-PPPort/parts/base/5016001 b/cpan/Devel-PPPort/parts/base/5016001
new file mode 100644 (file)
index 0000000..5e2b46c
--- /dev/null
@@ -0,0 +1 @@
+5.016001
diff --git a/cpan/Devel-PPPort/parts/base/5016002 b/cpan/Devel-PPPort/parts/base/5016002
new file mode 100644 (file)
index 0000000..dfd939f
--- /dev/null
@@ -0,0 +1 @@
+5.016002
diff --git a/cpan/Devel-PPPort/parts/base/5016003 b/cpan/Devel-PPPort/parts/base/5016003
new file mode 100644 (file)
index 0000000..88e54eb
--- /dev/null
@@ -0,0 +1 @@
+5.016003
diff --git a/cpan/Devel-PPPort/parts/base/5017000 b/cpan/Devel-PPPort/parts/base/5017000
new file mode 100644 (file)
index 0000000..bf56b9a
--- /dev/null
@@ -0,0 +1 @@
+5.017000
diff --git a/cpan/Devel-PPPort/parts/base/5017001 b/cpan/Devel-PPPort/parts/base/5017001
new file mode 100644 (file)
index 0000000..6c99943
--- /dev/null
@@ -0,0 +1 @@
+5.017001
diff --git a/cpan/Devel-PPPort/parts/base/5017002 b/cpan/Devel-PPPort/parts/base/5017002
new file mode 100644 (file)
index 0000000..fd825e1
--- /dev/null
@@ -0,0 +1,7 @@
+5.017002
+is_uni_blank                   # U
+is_uni_blank_lc                # U
+is_utf8_blank                  # U
+sv_copypv_flags                # U
+sv_copypv_nomg                 # U
+sv_vcatpvfn_flags              # U
diff --git a/cpan/Devel-PPPort/parts/base/5017003 b/cpan/Devel-PPPort/parts/base/5017003
new file mode 100644 (file)
index 0000000..5022764
--- /dev/null
@@ -0,0 +1 @@
+5.017003
diff --git a/cpan/Devel-PPPort/parts/base/5017004 b/cpan/Devel-PPPort/parts/base/5017004
new file mode 100644 (file)
index 0000000..0202125
--- /dev/null
@@ -0,0 +1,5 @@
+5.017004
+PL_comppad_name                # E
+PadlistREFCNT                  # U
+newMYSUB                       # E (Perl_newMYSUB)
+newSVpadname                   # E
diff --git a/cpan/Devel-PPPort/parts/base/5017005 b/cpan/Devel-PPPort/parts/base/5017005
new file mode 100644 (file)
index 0000000..31dfb1c
--- /dev/null
@@ -0,0 +1 @@
+5.017005
diff --git a/cpan/Devel-PPPort/parts/base/5017006 b/cpan/Devel-PPPort/parts/base/5017006
new file mode 100644 (file)
index 0000000..0bb2486
--- /dev/null
@@ -0,0 +1,2 @@
+5.017006
+READ_XDIGIT                    # U
diff --git a/cpan/Devel-PPPort/parts/base/5017007 b/cpan/Devel-PPPort/parts/base/5017007
new file mode 100644 (file)
index 0000000..c95c235
--- /dev/null
@@ -0,0 +1,7 @@
+5.017007
+SvREFCNT_dec_NN                # U
+_is_uni_perl_idstart           # U
+_is_utf8_perl_idstart          # U
+is_uni_alnumc                  # U
+is_uni_alnumc_lc               # U
+is_utf8_alnumc                 # U
diff --git a/cpan/Devel-PPPort/parts/base/5017008 b/cpan/Devel-PPPort/parts/base/5017008
new file mode 100644 (file)
index 0000000..9228a15
--- /dev/null
@@ -0,0 +1,8 @@
+5.017008
+_is_uni_FOO                    # U
+_is_uni_perl_idcont            # U
+_is_utf8_FOO                   # U
+_is_utf8_mark                  # U
+_is_utf8_perl_idcont           # U
+isALPHANUMERIC                 # U
+isIDCONT                       # U
diff --git a/cpan/Devel-PPPort/parts/base/5017009 b/cpan/Devel-PPPort/parts/base/5017009
new file mode 100644 (file)
index 0000000..fd72827
--- /dev/null
@@ -0,0 +1,3 @@
+5.017009
+av_tindex                      # U
+av_top_index                   # U
diff --git a/cpan/Devel-PPPort/parts/base/5017010 b/cpan/Devel-PPPort/parts/base/5017010
new file mode 100644 (file)
index 0000000..fed2762
--- /dev/null
@@ -0,0 +1 @@
+5.017010
diff --git a/cpan/Devel-PPPort/parts/base/5017011 b/cpan/Devel-PPPort/parts/base/5017011
new file mode 100644 (file)
index 0000000..1199629
--- /dev/null
@@ -0,0 +1,2 @@
+5.017011
+hv_rand_set                    # U
diff --git a/cpan/Devel-PPPort/parts/base/5018000 b/cpan/Devel-PPPort/parts/base/5018000
new file mode 100644 (file)
index 0000000..7edf9ef
--- /dev/null
@@ -0,0 +1 @@
+5.018000
diff --git a/cpan/Devel-PPPort/parts/base/5018001 b/cpan/Devel-PPPort/parts/base/5018001
new file mode 100644 (file)
index 0000000..5d4bb8f
--- /dev/null
@@ -0,0 +1 @@
+5.018001
diff --git a/cpan/Devel-PPPort/parts/base/5019000 b/cpan/Devel-PPPort/parts/base/5019000
new file mode 100644 (file)
index 0000000..a6e8e03
--- /dev/null
@@ -0,0 +1 @@
+5.019000
diff --git a/cpan/Devel-PPPort/parts/base/5019001 b/cpan/Devel-PPPort/parts/base/5019001
new file mode 100644 (file)
index 0000000..803ad9a
--- /dev/null
@@ -0,0 +1,6 @@
+5.019001
+re_intuit_start                # A
+toFOLD                         # U
+toFOLD_utf8                    # U
+toLOWER_L1                     # U
+toTITLE                        # U
diff --git a/cpan/Devel-PPPort/parts/base/5019002 b/cpan/Devel-PPPort/parts/base/5019002
new file mode 100644 (file)
index 0000000..070bde7
--- /dev/null
@@ -0,0 +1,24 @@
+5.019002
+SVt_INVLIST                    # E
+PERL_BCDVERSION                # added by devel/scanprov
+PERL_MAGIC_glob                # added by devel/scanprov
+PERL_MAGIC_mutex               # added by devel/scanprov
+PERL_MAGIC_overload            # added by devel/scanprov
+PERL_MAGIC_overload_elem       # added by devel/scanprov
+PL_bufend                      # added by devel/scanprov
+PL_bufptr                      # added by devel/scanprov
+PL_copline                     # added by devel/scanprov
+PL_error_count                 # added by devel/scanprov
+PL_expect                      # added by devel/scanprov
+PL_in_my                       # added by devel/scanprov
+PL_in_my_stash                 # added by devel/scanprov
+PL_lex_state                   # added by devel/scanprov
+PL_lex_stuff                   # added by devel/scanprov
+PL_linestr                     # added by devel/scanprov
+PL_rsfp                        # added by devel/scanprov
+PL_rsfp_filters                # added by devel/scanprov
+PL_tokenbuf                    # added by devel/scanprov
+WARN_ASSERTIONS                # added by devel/scanprov
+aTHXR                          # added by devel/scanprov
+aTHXR_                         # added by devel/scanprov
+dTHXR                          # added by devel/scanprov
diff --git a/cpan/Devel-PPPort/parts/base/5019003 b/cpan/Devel-PPPort/parts/base/5019003
new file mode 100644 (file)
index 0000000..146fcad
--- /dev/null
@@ -0,0 +1,39 @@
+5.019003
+BhkDISABLE                     # E
+BhkENABLE                      # E
+BhkENTRY_set                   # E
+MULTICALL                      # E
+PERL_SYS_TERM                  # E
+POP_MULTICALL                  # E
+PUSH_MULTICALL                 # E
+PadARRAY                       # E
+PadMAX                         # E
+PadlistARRAY                   # E
+PadlistMAX                     # E
+PadlistNAMES                   # E
+PadlistNAMESARRAY              # E
+PadlistNAMESMAX                # E
+PadnameLEN                     # E
+PadnamePV                      # E
+PadnameSV                      # E
+PadnameUTF8                    # E
+PadnamelistARRAY               # E
+PadnamelistMAX                 # E
+XS_EXTERNAL                    # E
+XS_INTERNAL                    # E
+XopDISABLE                     # E
+XopENABLE                      # E
+XopENTRY                       # E
+XopENTRY_set                   # E
+cophh_new_empty                # E
+croak_memory_wrap              # U (Perl_croak_memory_wrap)
+my_lstat                       # U (Perl_my_lstat)
+my_stat                        # U (Perl_my_stat)
+reentrant_free                 # U
+reentrant_init                 # U
+reentrant_retry                # U
+reentrant_size                 # U
+ref                            # U (Perl_ref)
+sv_magic_portable              # U
+sv_pos_b2u_flags               # U
+sv_setref_pvs                  # A
index b891b43..e076893 100644 (file)
 :
 : flags are single letters with following meanings:
 :
-:   A  Member of public API:
+:   A  Available fully everywhere (usually part of the public API):
 :
-:         add entry to global.sym (unless x or m);
-:         any doc entry goes in perlapi.pod rather than perlintern.pod
+:         add entry to the list of exported symbols (unless x or m);
+:         any doc entry goes in perlapi.pod rather than perlintern.pod.  If no
+:           documentation is furnished for this function, and M is also
+:           specified, the function is not listed as part of the public API.
+:           If M isn't specified, and no documentation is furnished, the
+:           function is listed in perlapi as existing and being undocumented
 :         makes '#define foo Perl_foo' scope not just for PERL_CORE/PERL_EXT
 :
+:      If the function is only exported for use in a public
+:      macro, see X.
+:
 :   a  Allocates memory a la malloc/calloc.  Also implies "R":
 :
 :         proto.h: add __attribute__malloc__
 :
 :   b  Binary backward compatibility; function is a macro
-:      but has also Perl_ implementation (which is exported):
+:      but has also Perl_ implementation (which is exported); often
+:      implemented in mathoms.c (whose compilation can be suppressed; see
+:      INSTALL):
 :
-:         add entry to global.sym;
+:         add entry to the list of exported symbols;
 :         don't define PERL_ARGS_ASSERT_FOO
 :
 :   D  Function is deprecated:
 :
 :         proto.h: add __attribute__deprecated__
 :
-:   d  Function has documentation with its source:
+:   d  Function has documentation (somewhere) in the source:
 :
 :         enables 'no docs for foo" warning in autodoc.pl
 :
 :         in embed.h, change "#ifdef PERL_CORE"
 :         into               "#if defined(PERL_CORE) || defined(PERL_EXT)"
 :
-:      Should always be combined with "X" to be usable from dynamically
-:      loaded extensions.
+:      To be usable from dynamically loaded extensions, either:
+:        1) must be static to its containing file ("i" or "s" flag); or
+:         2) be combined with the "X" flag.
 :
-:   f  Function takes printf style format string, varargs:
+:   f  Function takes printf style format string, varargs (hence any entry that
+:      would otherwise go in embed.h is suppressed):
 :
 :         proto.h: add __attribute__format__ (or ...null_ok__)
 :
@@ -59,7 +70,7 @@
 :   m  Implemented as a macro:
 :
 :         suppress proto.h entry
-:         suppress global.sym entry
+:         suppress entry in the list of exported symbols
 :         suppress embed.h entry
 :
 :   n  Has no implicit interpreter/thread context argument:
@@ -73,7 +84,7 @@
 :
 :      The really OLD name for API funcs
 :
-:   o  Has no Perl_foo compatibility macro:
+:   o  Has no Perl_foo or S_foo compatibility macro:
 :
 :         embed.h: suppress "#define foo Perl_foo"
 :
 :
 :   X  Explicitly exported:
 :
-:         add entry to global.sym, unless x or m
+:         add entry to the list of exported symbols, unless x or m
+:
+:      This is often used for private functions that are used by public
+:      macros.  In those cases the macros must use the long form of the
+:      name (Perl_blah(aTHX_ ...)).
 :
 :   x  Not exported
 :
-:         suppress entry in global.sym
+:         suppress entry in the list of exported symbols
 :
 : (see also L<perlguts/Internal Functions> for those flags.)
 :
@@ -170,6 +185,9 @@ Anop        |Free_t |mfree          |Malloc_t where
 npR    |MEM_SIZE|malloced_size |NN void *p
 npR    |MEM_SIZE|malloc_good_size      |size_t nbytes
 #endif
+#if defined(PERL_IN_MALLOC_C)
+sn     |int    |adjust_size_and_find_bucket    |NN size_t *nbytes_p
+#endif
 
 AnpR   |void*  |get_context
 Anp    |void   |set_context    |NN void *t
@@ -178,6 +196,7 @@ XEop        |bool   |try_amagic_bin |int method|int flags
 XEop   |bool   |try_amagic_un  |int method|int flags
 Ap     |SV*    |amagic_call    |NN SV* left|NN SV* right|int method|int dir
 Ap     |SV *   |amagic_deref_call|NN SV *ref|int method
+p      |bool   |amagic_is_enabled|int method
 Ap     |int    |Gv_AMupdate    |NN HV* stash|bool destructing
 ApR    |CV*    |gv_handler     |NULLOK HV* stash|I32 id
 Apd    |OP*    |op_append_elem |I32 optype|NULLOK OP* first|NULLOK OP* last
@@ -191,6 +210,8 @@ Apd |void   |av_clear       |NN AV *av
 Apd    |SV*    |av_delete      |NN AV *av|I32 key|I32 flags
 ApdR   |bool   |av_exists      |NN AV *av|I32 key
 Apd    |void   |av_extend      |NN AV *av|I32 key
+p      |void   |av_extend_guts |NULLOK AV *av|I32 key|NN SSize_t *maxp \
+                               |NN SV ***allocp|NN SV ***arrayp
 ApdR   |SV**   |av_fetch       |NN AV *av|I32 key|I32 lval
 Apd    |void   |av_fill        |NN AV *av|I32 fill
 ApdR   |I32    |av_len         |NN AV *av
@@ -202,6 +223,8 @@ Apd |void   |av_push        |NN AV *av|NN SV *val
 EXp    |void   |av_reify       |NN AV *av
 ApdR   |SV*    |av_shift       |NN AV *av
 Apd    |SV**   |av_store       |NN AV *av|I32 key|NULLOK SV *val
+AidR   |I32    |av_top_index   |NN AV *av
+AmpdR  |I32    |av_tindex      |NN AV *av
 Apd    |void   |av_undef       |NN AV *av
 ApdoxM |SV**   |av_create_and_unshift_one|NN AV **const avp|NN SV *const val
 Apd    |void   |av_unshift     |NN AV *av|I32 num
@@ -242,10 +265,14 @@ Aprd      |void   |croak_sv       |NN SV *baseex
 : croak()'s first parm can be NULL.  Otherwise, mod_perl breaks.
 Afprd  |void   |croak          |NULLOK const char* pat|...
 Aprd   |void   |vcroak         |NULLOK const char* pat|NULLOK va_list* args
-Aprd   |void   |croak_no_modify
-Aprd   |void   |croak_xs_usage |NN const CV *const cv \
+Anprd  |void   |croak_no_modify
+Anprd  |void   |croak_xs_usage |NN const CV *const cv \
                                |NN const char *const params
-
+npr    |void   |croak_no_mem
+nprX   |void   |croak_popstack
+#if defined(WIN32)
+norx   |void   |win32_croak_not_implemented|NN const char * fname
+#endif
 #if defined(PERL_IMPLICIT_CONTEXT)
 Afnrp  |void   |croak_nocontext|NULLOK const char* pat|...
 Afnp   |OP*    |die_nocontext  |NULLOK const char* pat|...
@@ -263,16 +290,24 @@ 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|...
 #endif
+: Used in pp.c
+p      |SV *   |core_prototype |NULLOK SV *sv|NN const char *name \
+                               |const int code|NULLOK int * const opnum
+: Used in gv.c
+p      |OP *   |coresub_op     |NN SV *const coreargssv|const int code \
+                               |const int opnum
 : Used in sv.c
-p      |void   |cv_ckproto_len |NN const CV* cv|NULLOK const GV* gv\
-                               |NULLOK const char* p|const STRLEN len
+p      |void   |cv_ckproto_len_flags   |NN const CV* cv|NULLOK const GV* gv\
+                               |NULLOK const char* p|const STRLEN len \
+                                |const U32 flags
 : Used in pp.c and pp_sys.c
-pd     |CV*    |cv_clone       |NN CV* proto
 ApdR   |SV*    |gv_const_sv    |NN GV* gv
 ApdR   |SV*    |cv_const_sv    |NULLOK const CV *const cv
+pR     |SV*    |cv_const_sv_or_av|NULLOK const CV *const cv
 : Used in pad.c
-pR     |SV*    |op_const_sv    |NULLOK const OP* o|NULLOK CV* cv
+pR     |SV*    |op_const_sv    |NULLOK const OP* o
 Apd    |void   |cv_undef       |NN CV* cv
+p      |void   |cv_forget_slab |NN CV *cv
 Ap     |void   |cx_dump        |NN PERL_CONTEXT* cx
 Ap     |SV*    |filter_add     |NULLOK filter_t funcp|NULLOK SV* datasv
 Ap     |void   |filter_del     |NN filter_t funcp
@@ -292,6 +327,7 @@ Ap  |void   |debprofdump
 Ap     |I32    |debop          |NN const OP* o
 Ap     |I32    |debstack
 Ap     |I32    |debstackptrs
+pR     |SV *   |defelem_target |NN SV *sv|NULLOK MAGIC *mg
 Anp    |char*  |delimcpy       |NN char* to|NN const char* toend|NN const char* from \
                                |NN const char* fromend|int delim|NN I32* retlen
 : Used in op.c, perl.c
@@ -312,7 +348,7 @@ Ap  |bool   |do_close       |NULLOK GV* gv|bool not_implicit
 p      |bool   |do_eof         |NN GV* gv
 
 #ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-pmb    |bool   |do_exec        |NN const char* cmd
+pm     |bool   |do_exec        |NN const char* cmd
 #else
 p      |bool   |do_exec        |NN const char* cmd
 #endif
@@ -346,6 +382,8 @@ p   |I32    |do_shmio       |I32 optype|NN SV** mark|NN SV** sp
 Ap     |void   |do_join        |NN SV *sv|NN SV *delim|NN SV **mark|NN SV **sp
 : Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl
 : p    |OP*    |do_kv
+: used in pp.c, pp_hot.c
+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 \
@@ -369,7 +407,7 @@ pR  |Off_t  |do_tell        |NN GV* gv
 : Defined in doop.c, used only in pp.c
 p      |I32    |do_trans       |NN SV* sv
 : Used in my.c and pp.c
-p      |UV     |do_vecget      |NN SV* sv|I32 offset|I32 size
+p      |UV     |do_vecget      |NN SV* sv|SSize_t offset|int size
 : Defined in doop.c, used only in mg.c (with /* XXX slurp this routine */)
 p      |void   |do_vecset      |NN SV* sv
 : Defined in doop.c, used only in pp.c
@@ -394,11 +432,14 @@ p |void   |dump_sub_perl  |NN const GV* gv|bool justperl
 Apd    |void   |fbm_compile    |NN SV* sv|U32 flags
 ApdR   |char*  |fbm_instr      |NN unsigned char* big|NN unsigned char* bigend \
                                |NN SV* littlestr|U32 flags
+p      |CV *   |find_lexical_cv|PADOFFSET off
 : Defined in util.c, used only in perl.c
 p      |char*  |find_script    |NN const char *scriptname|bool dosearch \
                                |NULLOK const char *const *const search_ext|I32 flags
 #if defined(PERL_IN_OP_C)
 s      |OP*    |force_list     |NULLOK OP* arg
+i      |OP*    |op_integerize  |NN OP *o
+i      |OP*    |op_std_init    |NN OP *o
 : FIXME
 s      |OP*    |fold_constants |NN OP *o
 #endif
@@ -420,21 +461,43 @@ Ap        |GV*    |gv_add_by_type |NULLOK GV *gv|svtype type
 Apmb   |GV*    |gv_AVadd       |NULLOK GV *gv
 Apmb   |GV*    |gv_HVadd       |NULLOK GV *gv
 Apmb   |GV*    |gv_IOadd       |NULLOK GV* gv
-ApR    |GV*    |gv_autoload4   |NULLOK HV* stash|NN const char* name|STRLEN len|I32 method
-Ap     |void   |gv_check       |NN const HV* stash
+AmR    |GV*    |gv_autoload4   |NULLOK HV* stash|NN const char* name \
+                               |STRLEN len|I32 method
+ApR    |GV*    |gv_autoload_sv |NULLOK HV* stash|NN SV* namesv|U32 flags
+ApR    |GV*    |gv_autoload_pv |NULLOK HV* stash|NN const char* namepv \
+                                |U32 flags
+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
 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
 Ap     |GV*    |gv_fetchfile_flags|NN const char *const name|const STRLEN len\
                                |const U32 flags
-Apd    |GV*    |gv_fetchmeth   |NULLOK HV* stash|NN const char* name|STRLEN len|I32 level
-Apd    |GV*    |gv_fetchmeth_autoload  |NULLOK HV* stash|NN const char* name|STRLEN len|I32 level
+Amd    |GV*    |gv_fetchmeth   |NULLOK HV* stash|NN const char* name \
+                               |STRLEN len|I32 level
+Apd    |GV*    |gv_fetchmeth_sv        |NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
+Apd    |GV*    |gv_fetchmeth_pv        |NULLOK HV* stash|NN const char* name \
+                                        |I32 level|U32 flags
+Apd    |GV*    |gv_fetchmeth_pvn       |NULLOK HV* stash|NN const char* name \
+                                        |STRLEN len|I32 level|U32 flags
+Amd    |GV*    |gv_fetchmeth_autoload  |NULLOK HV* stash \
+                                       |NN const char* name|STRLEN len \
+                                       |I32 level
+Apd    |GV*    |gv_fetchmeth_sv_autoload       |NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
+Apd    |GV*    |gv_fetchmeth_pv_autoload       |NULLOK HV* stash|NN const char* name \
+                                        |I32 level|U32 flags
+Apd    |GV*    |gv_fetchmeth_pvn_autoload      |NULLOK HV* stash|NN const char* name \
+                                        |STRLEN len|I32 level|U32 flags
 Apdmb  |GV*    |gv_fetchmethod |NN HV* stash|NN const char* name
 Apd    |GV*    |gv_fetchmethod_autoload|NN HV* stash|NN const char* name \
                                |I32 autoload
-ApM    |GV*    |gv_fetchmethod_flags|NN HV* stash|NN const char* name \
-                               |U32 flags
+ApM    |GV*    |gv_fetchmethod_sv_flags|NN HV* stash|NN SV* namesv|U32 flags
+ApM    |GV*    |gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \
+                               |U32 flags
+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
 Apmb   |void   |gv_fullname3   |NN SV* sv|NN const GV* gv|NULLOK const char* prefix
@@ -443,7 +506,13 @@ Ap |void   |gv_fullname4   |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool
 pMox   |GP *   |newGP          |NN GV *const gv
 pX     |void   |cvgv_set       |NN CV* cv|NULLOK GV* gv
 pX     |void   |cvstash_set    |NN CV* cv|NULLOK HV* stash
-Ap     |void   |gv_init        |NN GV* gv|NULLOK HV* stash|NN const char* name|STRLEN len|int multi
+Amd    |void   |gv_init        |NN GV* gv|NULLOK HV* stash \
+                                |NN const char* name|STRLEN len|int multi
+Ap     |void   |gv_init_sv     |NN GV* gv|NULLOK HV* stash|NN SV* namesv|U32 flags
+Ap     |void   |gv_init_pv     |NN GV* gv|NULLOK HV* stash|NN const char* name \
+                                |U32 flags
+Ap     |void   |gv_init_pvn    |NN GV* gv|NULLOK HV* stash|NN const char* name \
+                                |STRLEN len|U32 flags
 Ap     |void   |gv_name_set    |NN GV* gv|NN const char *name|U32 len|U32 flags
 XMpd   |void   |gv_try_downgrade|NN GV* gv
 Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
@@ -467,8 +536,8 @@ Ap  |void*  |hv_common      |NULLOK HV *hv|NULLOK SV *keysv \
 Ap     |void*  |hv_common_key_len|NULLOK HV *hv|NN const char *key \
                                |I32 klen_i32|const int action|NULLOK SV *val \
                                |const U32 hash
-Apod   |STRLEN |hv_fill        |NN HV const *const hv
-Ap     |void   |hv_free_ent    |NN HV *hv|NULLOK HE *entryK
+Apod   |STRLEN |hv_fill        |NN HV *const hv
+Ap     |void   |hv_free_ent    |NN HV *hv|NULLOK HE *entry
 Apd    |I32    |hv_iterinit    |NN HV *hv
 ApdR   |char*  |hv_iterkey     |NN HE* entry|NN I32* retlen
 ApdR   |SV*    |hv_iterkeysv   |NN HE* entry
@@ -536,88 +605,104 @@ p        |void   |init_debugger
 Ap     |void   |init_stacks
 Ap     |void   |init_tm        |NN struct tm *ptm
 : Used in perly.y
-pd     |U32    |intro_my
 AnpPR  |char*  |instr          |NN const char* big|NN const char* little
 : Used in sv.c
 p      |bool   |io_close       |NN IO* io|bool not_implicit
 : Used in perly.y
 pR     |OP*    |invert         |NULLOK OP* cmd
 ApR    |I32    |is_lvalue_sub
-ApPR   |U32    |to_uni_upper_lc|U32 c
-ApPR   |U32    |to_uni_title_lc|U32 c
-ApPR   |U32    |to_uni_lower_lc|U32 c
-ApPR   |bool   |is_uni_alnum   |UV c
-ApPR   |bool   |is_uni_idfirst |UV c
-ApPR   |bool   |is_uni_alpha   |UV c
-ApPR   |bool   |is_uni_ascii   |UV c
-ApPR   |bool   |is_uni_space   |UV c
-ApPR   |bool   |is_uni_cntrl   |UV c
-ApPR   |bool   |is_uni_graph   |UV c
-ApPR   |bool   |is_uni_digit   |UV c
-ApPR   |bool   |is_uni_upper   |UV c
-ApPR   |bool   |is_uni_lower   |UV c
-ApPR   |bool   |is_uni_print   |UV c
-ApPR   |bool   |is_uni_punct   |UV c
-ApPR   |bool   |is_uni_xdigit  |UV c
-Ap     |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
-Ap     |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
-Ap     |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
-Ap     |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
-ApPR   |bool   |is_uni_alnum_lc|UV c
-ApPR   |bool   |is_uni_idfirst_lc|UV c
-ApPR   |bool   |is_uni_alpha_lc|UV c
-ApPR   |bool   |is_uni_ascii_lc|UV c
-ApPR   |bool   |is_uni_space_lc|UV c
-ApPR   |bool   |is_uni_cntrl_lc|UV c
-ApPR   |bool   |is_uni_graph_lc|UV c
-ApPR   |bool   |is_uni_digit_lc|UV c
-ApPR   |bool   |is_uni_upper_lc|UV c
-ApPR   |bool   |is_uni_lower_lc|UV c
-ApPR   |bool   |is_uni_print_lc|UV c
-ApPR   |bool   |is_uni_punct_lc|UV c
-ApPR   |bool   |is_uni_xdigit_lc|UV c
+: Used in cop.h
+XopR   |I32    |was_lvalue_sub
+ADMpPR |U32    |to_uni_upper_lc|U32 c
+ADMpPR |U32    |to_uni_title_lc|U32 c
+ADMpPR |U32    |to_uni_lower_lc|U32 c
+ADMpPR |bool   |is_uni_alnum   |UV c
+ADMpPR |bool   |is_uni_alnumc  |UV c
+ADMpPR |bool   |is_uni_idfirst |UV c
+ADMpPR |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
+ADMpPR |bool   |is_uni_graph   |UV c
+ADMpPR |bool   |is_uni_digit   |UV c
+ADMpPR |bool   |is_uni_upper   |UV c
+ADMpPR |bool   |is_uni_lower   |UV c
+ADMpPR |bool   |is_uni_print   |UV c
+ADMpPR |bool   |is_uni_punct   |UV c
+ADMpPR |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
+iDMPR  |bool   |isIDFIRST_lazy |NN const char* p
+iDMPR  |bool   |isALNUM_lazy   |NN const char* p
+#ifdef PERL_IN_UTF8_C
+sR     |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp
+#endif
+#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
+EXp        |UV        |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
+#endif
+#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
+p      |UV     |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s
+#endif
+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|const U8 flags
+ADMpPR |bool   |is_uni_alnum_lc|UV c
+ADMpPR |bool   |is_uni_alnumc_lc|UV c
+ADMpPR |bool   |is_uni_idfirst_lc|UV c
+AMpR   |bool   |_is_uni_perl_idcont|UV c
+AMpR   |bool   |_is_uni_perl_idstart|UV c
+ADMpPR |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
+ADMpPR |bool   |is_uni_graph_lc|UV c
+ADMpPR |bool   |is_uni_digit_lc|UV c
+ADMpPR |bool   |is_uni_upper_lc|UV c
+ADMpPR |bool   |is_uni_lower_lc|UV c
+ADMpPR |bool   |is_uni_print_lc|UV c
+ADMpPR |bool   |is_uni_punct_lc|UV c
+ADMpPR |bool   |is_uni_xdigit_lc|UV c
 Anpd   |bool   |is_ascii_string|NN const U8 *s|STRLEN len
-Anpd   |STRLEN |is_utf8_char   |NN const U8 *s
+AnpdD  |STRLEN |is_utf8_char   |NN const U8 *s
+Anpd   |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
 Anpd   |bool   |is_utf8_string |NN const U8 *s|STRLEN len
-Anpdmb |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **p
+Anpdmb |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **ep
 Anpd   |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
-ApR    |bool   |is_utf8_alnum  |NN const U8 *p
-ApR    |bool   |is_utf8_idfirst|NN const U8 *p
-ApR    |bool   |is_utf8_xidfirst|NN const U8 *p
-ApR    |bool   |is_utf8_idcont |NN const U8 *p
-ApR    |bool   |is_utf8_xidcont        |NN const U8 *p
-ApR    |bool   |is_utf8_alpha  |NN const U8 *p
-ApR    |bool   |is_utf8_ascii  |NN const U8 *p
-ApR    |bool   |is_utf8_space  |NN const U8 *p
-ApR    |bool   |is_utf8_perl_space     |NN const U8 *p
-ApR    |bool   |is_utf8_perl_word      |NN const U8 *p
-ApR    |bool   |is_utf8_cntrl  |NN const U8 *p
-ApR    |bool   |is_utf8_digit  |NN const U8 *p
-ApR    |bool   |is_utf8_posix_digit    |NN const U8 *p
-ApR    |bool   |is_utf8_graph  |NN const U8 *p
-ApR    |bool   |is_utf8_upper  |NN const U8 *p
-ApR    |bool   |is_utf8_lower  |NN const U8 *p
-ApR    |bool   |is_utf8_print  |NN const U8 *p
-ApR    |bool   |is_utf8_punct  |NN const U8 *p
-ApR    |bool   |is_utf8_xdigit |NN const U8 *p
-ApR    |bool   |is_utf8_mark   |NN const U8 *p
-EXpR   |bool   |is_utf8_X_begin        |NN const U8 *p
-EXpR   |bool   |is_utf8_X_extend       |NN const U8 *p
-EXpR   |bool   |is_utf8_X_prepend      |NN const U8 *p
-EXpR   |bool   |is_utf8_X_non_hangul   |NN const U8 *p
-EXpR   |bool   |is_utf8_X_L            |NN const U8 *p
-EXpR   |bool   |is_utf8_X_LV           |NN const U8 *p
-EXpR   |bool   |is_utf8_X_LVT          |NN const U8 *p
-EXpR   |bool   |is_utf8_X_LV_LVT_V     |NN const U8 *p
-EXpR   |bool   |is_utf8_X_T            |NN const U8 *p
-EXpR   |bool   |is_utf8_X_V            |NN const U8 *p
+AMpR   |bool   |_is_uni_FOO|const U8 classnum|const UV c
+AMpR   |bool   |_is_utf8_FOO|const U8 classnum|NN const U8 *p
+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
+AMpR   |bool   |_is_utf8_perl_idcont|NN const U8 *p
+AMpR   |bool   |_is_utf8_perl_idstart|NN const U8 *p
+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
+AMpR   |bool   |_is_utf8_mark  |NN const U8 *p
+ADMpR  |bool   |is_utf8_mark   |NN const U8 *p
 : Used in perly.y
 p      |OP*    |jmaybe         |NN OP *o
 : Used in pp.c 
 pP     |I32    |keyword        |NN const char *name|I32 len|bool all_keywords
 #if defined(PERL_IN_OP_C)
-s      |OP*    |opt_scalarhv   |NN OP* rep_op
-s      |OP*    |is_inplace_av  |NN OP* o|NULLOK OP* oright
+s      |void   |inplace_aassign        |NN OP* o
 #endif
 Ap     |void   |leave_scope    |I32 base
 : Public lexer API
@@ -661,9 +746,22 @@ Ap |void   |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
 p      |OP*    |localize       |NN OP *o|I32 lex
 ApdR   |I32    |looks_like_number|NN SV *const sv
 Apd    |UV     |grok_bin       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-#ifdef PERL_IN_DQUOTE_STATIC_C
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
 EMsR   |char   |grok_bslash_c  |const char source|const bool utf8|const bool output_warning
-EMsR   |bool   |grok_bslash_o  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
+EMsR   |bool   |grok_bslash_o  |NN char** s|NN UV* uv           \
+                               |NN const char** error_msg       \
+                               |const bool output_warning       \
+                               |const bool strict               \
+                               |const bool silence_non_portable \
+                               |const bool utf8
+EMiR   |bool   |grok_bslash_x  |NN char** s|NN UV* uv           \
+                               |NN const char** error_msg       \
+                               |const bool output_warning       \
+                               |const bool strict               \
+                               |const bool silence_non_portable \
+                               |const bool utf8
+EMsPR  |char*|form_short_octal_warning|NN const char * const s  \
+                               |const STRLEN len
 #endif
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
@@ -677,6 +775,8 @@ dp  |int    |magic_clearhints|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clearisa |NULLOK SV* sv|NN MAGIC* mg
 p      |int    |magic_clearpack|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clearsig |NN SV* sv|NN MAGIC* mg
+p      |int    |magic_copycallchecker|NN SV* sv|NN MAGIC *mg|NN SV *nsv \
+                                     |NULLOK const char *name|I32 namlen
 p      |int    |magic_existspack|NN SV* sv|NN const MAGIC* mg
 p      |int    |magic_freeovrld|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_get      |NN SV* sv|NN MAGIC* mg
@@ -690,14 +790,19 @@ p |int    |magic_getsubstr|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_gettaint |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_getuvar  |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_getvec   |NN SV* sv|NN MAGIC* mg
-p      |U32    |magic_len      |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_nextpack |NN SV *sv|NN MAGIC *mg|NN SV *key
 p      |U32    |magic_regdata_cnt|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_regdatum_get|NN SV* sv|NN MAGIC* mg
+:removing noreturn to silence a warning for this function resulted in no
+:change to the interpreter DLL image under VS 2003 -O1 -GL 32 bits
+#ifdef _MSC_VER
+p      |int    |magic_regdatum_set|NN SV* sv|NN MAGIC* mg
+#else
 pr     |int    |magic_regdatum_set|NN SV* sv|NN MAGIC* mg
+#endif
 p      |int    |magic_set      |NN SV* sv|NN MAGIC* mg
-p      |int    |magic_setamagic|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setarylen|NN SV* sv|NN MAGIC* mg
+p      |int    |magic_cleararylen_p|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_freearylen_p|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setdbline|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setdefelem|NN SV* sv|NN MAGIC* mg
@@ -719,7 +824,7 @@ p   |int    |magic_set_all_env|NN SV* sv|NN MAGIC* mg
 p      |U32    |magic_sizepack |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_wipepack |NN SV* sv|NN MAGIC* mg
 pod    |SV*    |magic_methcall |NN SV *sv|NN const MAGIC *mg \
-                               |NN const char *meth|U32 flags \
+                               |NN SV *meth|U32 flags \
                                |U32 argc|...
 Ap     |void   |markstack_grow
 #if defined(USE_LOCALE_COLLATE)
@@ -742,17 +847,22 @@ Apd       |int    |mg_copy        |NN SV *sv|NN SV *nsv|NULLOK const char *key \
 pd     |void   |mg_localize    |NN SV* sv|NN SV* nsv|bool setmagic
 ApdR   |MAGIC* |mg_find        |NULLOK const SV* sv|int type
 ApdR   |MAGIC* |mg_findext     |NULLOK const SV* sv|int type|NULLOK const MGVTBL *vtbl
+: exported for re.pm
+EXpR   |MAGIC* |mg_find_mglob  |NN SV* sv
 Apd    |int    |mg_free        |NN SV* sv
 Apd    |void   |mg_free_type   |NN SV* sv|int how
 Apd    |int    |mg_get         |NN SV* sv
-Apd    |U32    |mg_length      |NN SV* sv
+ApdD   |U32    |mg_length      |NN SV* sv
 Apd    |void   |mg_magical     |NN SV* sv
 Apd    |int    |mg_set         |NN SV* sv
 Ap     |I32    |mg_size        |NN SV* sv
 Ap     |void   |mini_mktime    |NN struct tm *ptm
-AMpd   |OP*    |op_lvalue      |NULLOK OP* o|I32 type
-: To be removed after 5.14 (see [perl #78908]):
-EXp    |OP*    |mod            |NULLOK OP* o|I32 type
+AMmd   |OP*    |op_lvalue      |NULLOK OP* o|I32 type
+poX    |OP*    |op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags
+p      |void   |finalize_optree                |NN OP* o
+#if defined(PERL_IN_OP_C)
+s      |void   |finalize_op    |NN OP* o
+#endif
 : Used in op.c and pp_sys.c
 p      |int    |mode_from_discipline|NULLOK const char* s|STRLEN len
 Ap     |const char*    |moreswitches   |NN const char* s
@@ -777,26 +887,29 @@ AnpP      |I32    |my_memcmp      |NN const char* s1|NN const char* s2|I32 len
 #if !defined(HAS_MEMSET)
 Anp    |void*  |my_memset      |NN char* loc|I32 ch|I32 len
 #endif
+#if !defined(PERL_IMPLICIT_SYS)
 Ap     |I32    |my_pclose      |NULLOK PerlIO* ptr
 Ap     |PerlIO*|my_popen       |NN const char* cmd|NN const char* mode
+#endif
 Ap     |PerlIO*|my_popen_list  |NN const char* mode|int n|NN SV ** args
 Ap     |void   |my_setenv      |NULLOK const char* nam|NULLOK const char* val
 Apmb   |I32    |my_stat
 pX     |I32    |my_stat_flags  |NULLOK const U32 flags
 Ap     |char * |my_strftime    |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
-#if defined(MYSWAP)
-ApPa   |short  |my_swap        |short s
-ApPa   |long   |my_htonl       |long l
-ApPa   |long   |my_ntohl       |long l
-#endif
 : Used in pp_ctl.c
 p      |void   |my_unexec
 Apa    |OP*    |newANONLIST    |NULLOK OP* o
 Apa    |OP*    |newANONHASH    |NULLOK OP* o
 Ap     |OP*    |newANONSUB     |I32 floor|NULLOK OP* proto|NULLOK OP* block
+#if defined(PERL_IN_OP_C)
+i      |bool   |aassign_common_vars    |NULLOK OP* o
+#endif
 Apda   |OP*    |newASSIGNOP    |I32 flags|NULLOK OP* left|I32 optype|NULLOK OP* right
 Apda   |OP*    |newCONDOP      |I32 flags|NN OP* first|NULLOK OP* trueop|NULLOK OP* falseop
 Apd    |CV*    |newCONSTSUB    |NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv
+Apd    |CV*    |newCONSTSUB_flags|NULLOK HV* stash \
+                                 |NULLOK const char* name|STRLEN len \
+                                 |U32 flags|NULLOK SV* sv
 #ifdef PERL_MAD
 Ap     |OP*    |newFORM        |I32 floor|NULLOK OP* o|NULLOK OP* block
 #else
@@ -815,6 +928,11 @@ Apda       |OP*    |newSLICEOP     |I32 flags|NULLOK OP* subscript|NULLOK OP* listop
 Apda   |OP*    |newSTATEOP     |I32 flags|NULLOK char* label|NULLOK OP* o
 Abm    |CV*    |newSUB         |I32 floor|NULLOK OP* o|NULLOK OP* proto \
                                |NULLOK OP* block
+p      |CV *   |newXS_len_flags|NULLOK const char *name|STRLEN len \
+                               |NN XSUBADDR_t subaddr\
+                               |NN const char *const filename \
+                               |NULLOK const char *const proto \
+                               |NULLOK SV **const_svp|U32 flags
 ApM    |CV *   |newXS_flags    |NULLOK const char *name|NN XSUBADDR_t subaddr\
                                |NN const char *const filename \
                                |NULLOK const char *const proto|U32 flags
@@ -825,7 +943,8 @@ Apa |OP*    |newAVREF       |NN OP* o
 Apda   |OP*    |newBINOP       |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
 Apa    |OP*    |newCVREF       |I32 flags|NULLOK OP* o
 Apda   |OP*    |newGVOP        |I32 type|I32 flags|NN GV* gv
-Apa    |GV*    |newGVgen       |NN const char* pack
+Am     |GV*    |newGVgen       |NN const char* pack
+Apa    |GV*    |newGVgen_flags |NN const char* pack|U32 flags
 Apa    |OP*    |newGVREF       |I32 type|NULLOK OP* o
 ApaR   |OP*    |newHVREF       |NN OP* o
 AmdbR  |HV*    |newHV
@@ -865,8 +984,11 @@ Apd        |CV*    |rv2cv_op_cv    |NN OP *cvop|U32 flags
 Apd    |OP*    |ck_entersub_args_list|NN OP *entersubop
 Apd    |OP*    |ck_entersub_args_proto|NN OP *entersubop|NN GV *namegv|NN SV *protosv
 Apd    |OP*    |ck_entersub_args_proto_or_list|NN OP *entersubop|NN GV *namegv|NN SV *protosv
+po     |OP*    |ck_entersub_args_core|NN OP *entersubop|NN GV *namegv \
+                                     |NN SV *protosv
 Apd    |void   |cv_get_call_checker|NN CV *cv|NN Perl_call_checker *ckfun_p|NN SV **ckobj_p
 Apd    |void   |cv_set_call_checker|NN CV *cv|NN Perl_call_checker ckfun|NN SV *ckobj
+Apd    |void   |wrap_op_checker|Optype opcode|NN Perl_check_t new_checker|NN Perl_check_t *old_checker_p
 Apa    |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
 Ap     |char*  |scan_vstring   |NN const char *s|NN const char *const e \
                                |NN SV *sv
@@ -886,6 +1008,12 @@ p |PerlIO*|nextargv       |NN GV* gv
 AnpP   |char*  |ninstr         |NN const char* big|NN const char* bigend \
                                |NN const char* little|NN const char* lend
 Ap     |void   |op_free        |NULLOK OP* arg
+Mp     |OP*    |op_unscope     |NULLOK OP* o
+#ifdef PERL_CORE
+p      |void   |opslab_free    |NN OPSLAB *slab
+p      |void   |opslab_free_nopad|NN OPSLAB *slab
+p      |void   |opslab_force_free|NN OPSLAB *slab
+#endif
 : Used in perly.y
 #ifdef PERL_MAD
 p      |OP*    |package        |NN OP* o
@@ -894,43 +1022,28 @@ p        |void   |package        |NN OP* o
 #endif
 : Used in perly.y
 p      |void   |package_version|NN OP* v
-: Used in op.c
-pd     |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
 : Used in toke.c and perly.y
 p      |PADOFFSET|allocmy      |NN const char *const name|const STRLEN len\
                                |const U32 flags
-: Used in op.c and toke.c
-AMpdR  |PADOFFSET|pad_findmy   |NN const char* name|STRLEN len|U32 flags
-ApD    |PADOFFSET|find_rundefsvoffset  |
-: Used in pp.c
-Ap     |SV*    |find_rundefsv  |
+#ifdef USE_ITHREADS
+AMp    |PADOFFSET|alloccopstash|NN HV *hv
+#endif
 : Used in perly.y
 pR     |OP*    |oopsAV         |NN OP* o
 : Used in perly.y
 pR     |OP*    |oopsHV         |NN OP* o
-: Defined in pad.c, used only in op.c
-pd     |void   |pad_leavemy
-#ifdef DEBUGGING
-Apd    |SV*    |pad_sv         |PADOFFSET po
-#endif
-: Defined in pad.c, used only in op.c
-pd     |void   |pad_free       |PADOFFSET po
-#if defined(PERL_IN_PAD_C)
-sd     |void   |pad_reset
-#endif
-: Used in op.c
-pd     |void   |pad_swipe      |PADOFFSET po|bool refadjust
+
 : peephole optimiser
 p      |void   |peep           |NULLOK OP* o
 p      |void   |rpeep          |NULLOK OP* o
 : Defined in doio.c, used only in pp_hot.c
 dopM   |PerlIO*|start_glob     |NN SV *tmpglob|NN IO *io
-#if defined(USE_REENTRANT_API)
+
 Ap     |void   |reentrant_size
 Ap     |void   |reentrant_init
 Ap     |void   |reentrant_free
 Anp    |void*  |reentrant_retry|NN const char *f|...
-#endif
+
 : "Very" special - can't use the O flag for this one:
 : (The rename from perl_atexit to Perl_call_atexit was in 864dbfa3ca8032ef)
 Ap     |void   |call_atexit    |ATEXIT_t fn|NULLOK void *ptr
@@ -963,7 +1076,7 @@ Apd        |void   |packlist       |NN SV *cat|NN const char *pat|NN const char *patend|NN SV
 s      |void   |pidgone        |Pid_t pid|int status
 #endif
 : Used in perly.y
-p      |OP*    |pmruntime      |NN OP *o|NN OP *expr|bool isreg
+p      |OP*    |pmruntime      |NN OP *o|NN OP *expr|bool isreg|I32 floor
 #if defined(PERL_IN_OP_C)
 s      |OP*    |pmtrans        |NN OP* o|NN OP* expr|NN OP* repl
 #endif
@@ -974,14 +1087,12 @@ Amb      |OP*    |ref            |NULLOK OP* o|I32 type
 s      |OP*    |refkids        |NULLOK OP* o|I32 type
 #endif
 Ap     |void   |regdump        |NN const regexp* r
-Ap     |void   |regdump        |NN const regexp* r
 Ap     |SV*    |regclass_swash |NULLOK const regexp *prog \
                                |NN const struct regnode *node|bool doinit \
                                |NULLOK SV **listsvp|NULLOK SV **altsvp
 #ifdef PERL_IN_REGCOMP_C
-EMi    |U8     |set_regclass_bit|NN struct RExC_state_t* pRExC_state|NN regnode* node|const U8 value|NN HV** invlist_ptr|NN AV** alternate_ptr
-EMs    |U8     |set_regclass_bit_fold|NN struct RExC_state_t *pRExC_state|NN regnode* node|const U8 value|NN HV** invlist_ptr|NN AV** alternate_ptr
-EMs    |void   |add_alternate  |NN AV** alternate_ptr|NN U8* string|STRLEN len
+EMsR   |SV*    |_new_invlist_C_array|NN const UV* const list
+: Not used currently: EXMs     |bool   |_invlistEQ     |NN SV* const a|NN SV* const b|const bool complement_b
 #endif
 Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
                                |NN char* strend|NN char* strbeg|I32 minend \
@@ -994,20 +1105,31 @@ Ap       |void   |regfree_internal|NN REGEXP *const rx
 #if defined(USE_ITHREADS)
 Ap     |void*  |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
 #endif
+EXp    |regexp_engine const *|current_re_engine
 Ap     |REGEXP*|pregcomp       |NN SV * const pattern|const U32 flags
-Ap     |REGEXP*|re_compile     |NN SV * const pattern|U32 flags
-Ap     |char*  |re_intuit_start|NN REGEXP * const rx|NULLOK SV* sv|NN char* strpos \
-                               |NN char* strend|const U32 flags \
+p      |REGEXP*|re_op_compile  |NULLOK SV ** const patternp \
+                               |int pat_count|NULLOK OP *expr \
+                               |NN const regexp_engine* eng \
+                               |NULLOK REGEXP *old_re \
+                               |NULLOK bool *is_bare_re \
+                               |U32 rx_flags|U32 pm_flags
+Ap     |REGEXP*|re_compile     |NN SV * const pattern|U32 orig_rx_flags
+Ap     |char*  |re_intuit_start|NN REGEXP * const rx \
+                               |NULLOK SV* sv \
+                               |NN const char* const strbeg \
+                               |NN char* strpos \
+                               |NN char* strend \
+                               |const U32 flags \
                                |NULLOK re_scream_pos_data *data
 Ap     |SV*    |re_intuit_string|NN REGEXP  *const r
-#if defined(PERL_IN_DQUOTE_STATIC_C)
-EiPR   |I32    |regcurly       |NN const char *s
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
+EiPR   |I32    |regcurly       |NN const char *s                   \
+                               |const bool rbrace_must_be_escaped
 #endif
 Ap     |I32    |regexec_flags  |NN REGEXP *const rx|NN char *stringarg \
                                |NN char *strend|NN char *strbeg|I32 minend \
                                |NN SV *sv|NULLOK void *data|U32 flags
 ApR    |regnode*|regnext       |NULLOK regnode* p
-
 EXp |SV*|reg_named_buff          |NN REGEXP * const rx|NULLOK SV * const key \
                                  |NULLOK SV * const value|const U32 flags
 EXp |SV*|reg_named_buff_iter     |NN REGEXP * const rx|NULLOK const SV * const lastkey \
@@ -1031,7 +1153,7 @@ EXp       |SV*|reg_qr_package|NN REGEXP * const rx
 
 : FIXME - why the E?
 Ep     |void   |regprop        |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o
-Anp    |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|I32 count
+Anp    |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|IV count
 AnpP   |char*  |rninstr        |NN const char* big|NN const char* bigend \
                                |NN const char* little|NN const char* lend
 Ap     |Sighandler_t|rsignal   |int i|Sighandler_t t
@@ -1053,7 +1175,10 @@ p        |I32    |same_dirent    |NN const char* a|NN const char* b
 Apda   |char*  |savepv         |NULLOK const char* pv
 Apda   |char*  |savepvn        |NULLOK const char* pv|I32 len
 Apda   |char*  |savesharedpv   |NULLOK const char* pv
-Apda   |char*  |savesharedpvn  |NN const char *const pv|const STRLEN len
+
+: NULLOK only to suppress a compiler warning
+Apda   |char*  |savesharedpvn  |NULLOK const char *const pv \
+                               |const STRLEN len
 Apda   |char*  |savesharedsvpv |NN SV *sv
 Apda   |char*  |savesvpv       |NN SV* sv
 Ap     |void   |savestack_grow
@@ -1103,7 +1228,6 @@ Ap        |void   |save_padsv_and_mortalize|PADOFFSET off
 Ap     |void   |save_sptr      |NN SV** sptr
 Ap     |SV*    |save_svref     |NN SV** sptr
 Ap     |void   |save_pushptr   |NULLOK void *const ptr|const int type
-: Used by SAVECOPARYBASE() in op.c
 Ap     |void   |save_pushi32ptr|const I32 i|NULLOK void *const ptr|const int type
 : Used by SAVESWITCHSTACK() in pp.c
 Ap     |void   |save_pushptrptr|NULLOK void *const ptr1 \
@@ -1130,7 +1254,7 @@ Apd       |NV     |scan_oct       |NN const char* start|STRLEN len|NN STRLEN* retlen
 AMpd   |OP*    |op_scope       |NULLOK OP* o
 Ap     |char*  |screaminstr    |NN SV *bigstr|NN SV *littlestr|I32 start_shift \
                                |I32 end_shift|NN I32 *old_posp|I32 last
-Apd    |void   |setdefout      |NULLOK GV* gv
+Apd    |void   |setdefout      |NN GV* gv
 Ap     |HEK*   |share_hek      |NN const char* str|I32 len|U32 hash
 #if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
 : Used in perl.c
@@ -1160,8 +1284,8 @@ Apd       |NV     |sv_2nv_flags   |NULLOK SV *const sv|const I32 flags
 pMd    |SV*    |sv_2num        |NN SV *const sv
 Amb    |char*  |sv_2pv         |NULLOK SV *sv|NULLOK STRLEN *lp
 Apd    |char*  |sv_2pv_flags   |NULLOK SV *const sv|NULLOK STRLEN *const lp|const I32 flags
-Apd    |char*  |sv_2pvutf8     |NN SV *const sv|NULLOK STRLEN *const lp
-Apd    |char*  |sv_2pvbyte     |NN SV *const sv|NULLOK STRLEN *const lp
+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
 Amb    |UV     |sv_2uv         |NULLOK SV *sv
 Apd    |UV     |sv_2uv_flags   |NULLOK SV *const sv|const I32 flags
@@ -1203,25 +1327,24 @@ Apd     |I32    |sv_cmp_locale_flags    |NULLOK SV *const sv1 \
 Amd    |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
-: Frustratingly, because regcomp.c is also compiled as ext/re/re_comp.c,
-: anything it needs has to be exported. So this has to be X. I'd rather it
-: wasn't.
-Xpo    |OP*    |sv_compile_2op_is_broken|NN SV *sv|NN OP **startop \
-                               |NN const char *code|NN PAD **padp
-ApD    |OP*    |sv_compile_2op |NN SV *sv|NN OP **startop \
-                               |NN const char *code|NN PAD **padp
 Apd    |int    |getcwd_sv      |NN SV* sv
 Apd    |void   |sv_dec         |NULLOK SV *const sv
 Apd    |void   |sv_dec_nomg    |NULLOK SV *const sv
 Ap     |void   |sv_dump        |NN SV* sv
 ApdR   |bool   |sv_derived_from|NN SV* sv|NN const char *const name
+ApdR   |bool   |sv_derived_from_sv|NN SV* sv|NN SV *namesv|U32 flags
+ApdR   |bool   |sv_derived_from_pv|NN SV* sv|NN const char *const name|U32 flags
+ApdR   |bool   |sv_derived_from_pvn|NN SV* sv|NN const char *const name \
+                                    |const STRLEN len|U32 flags
 ApdR   |bool   |sv_does        |NN SV* sv|NN const char *const name
+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
 Apd    |I32    |sv_eq_flags    |NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
 Apd    |void   |sv_free        |NULLOK SV *const sv
-: FIXME Used in SvREFCNT_dec() but only
-: if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
-poMX   |void   |sv_free2       |NN SV *const sv
+poMX   |void   |sv_free2       |NN SV *const sv|const U32 refcnt
 : Used only in perl.c
 pd     |void   |sv_free_arenas
 Apd    |char*  |sv_gets        |NN SV *const sv|NN PerlIO *const fp|I32 append
@@ -1237,12 +1360,16 @@ Apd     |int    |sv_isa         |NULLOK SV* sv|NN const char *const name
 Apd    |int    |sv_isobject    |NULLOK SV* sv
 Apd    |STRLEN |sv_len         |NULLOK SV *const sv
 Apd    |STRLEN |sv_len_utf8    |NULLOK SV *const sv
+p      |STRLEN |sv_len_utf8_nomg|NN SV *const sv
 Apd    |void   |sv_magic       |NN SV *const sv|NULLOK SV *const obj|const int how \
                                |NULLOK const char *const name|const I32 namlen
 Apd    |MAGIC *|sv_magicext    |NN SV *const sv|NULLOK SV *const obj|const int how \
                                |NULLOK const MGVTBL *const vtbl|NULLOK const char *const name \
                                |const I32 namlen
-ApdaR  |SV*    |sv_mortalcopy  |NULLOK SV *const oldsv
+: exported for re.pm
+EXp    |MAGIC *|sv_magicext_mglob|NN SV *sv
+ApdbamR        |SV*    |sv_mortalcopy  |NULLOK SV *const oldsv
+XpaR   |SV*    |sv_mortalcopy_flags|NULLOK SV *const oldsv|U32 flags
 ApdR   |SV*    |sv_newmortal
 Apd    |SV*    |sv_newref      |NULLOK SV *const sv
 Ap     |char*  |sv_peek        |NULLOK SV* sv
@@ -1250,6 +1377,8 @@ Apd       |void   |sv_pos_u2b     |NULLOK SV *const sv|NN I32 *const offsetp|NULLOK I32 *con
 Apd    |STRLEN |sv_pos_u2b_flags|NN SV *const sv|STRLEN uoffset \
                                |NULLOK STRLEN *const lenp|U32 flags
 Apd    |void   |sv_pos_b2u     |NULLOK SV *const sv|NN I32 *const offsetp
+Apd    |STRLEN |sv_pos_b2u_flags|NN SV *const sv|STRLEN const offset \
+                                |U32 flags
 Amdb   |char*  |sv_pvn_force   |NN SV* sv|NULLOK STRLEN* lp
 Apd    |char*  |sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp
 Apd    |char*  |sv_pvbyten_force|NN SV *const sv|NULLOK STRLEN *const lp
@@ -1257,9 +1386,12 @@ Apd      |char*  |sv_recode_to_utf8      |NN SV* sv|NN SV *encoding
 Apd    |bool   |sv_cat_decode  |NN SV* dsv|NN SV *encoding|NN SV *ssv|NN int *offset \
                                |NN char* tstr|int tlen
 ApdR   |const char*    |sv_reftype     |NN const SV *const sv|const int ob
+pd     |SV*    |sv_ref |NULLOK SV *dst|NN const SV *const sv|const int ob
 Apd    |void   |sv_replace     |NN SV *const sv|NN SV *const nsv
 Apd    |void   |sv_report_used
 Apd    |void   |sv_reset       |NN const char* s|NULLOK HV *const stash
+p      |void   |sv_resetpvn    |NULLOK const char* s|STRLEN len \
+                               |NULLOK HV *const stash
 Afpd   |void   |sv_setpvf      |NN SV *const sv|NN const char *const pat|...
 Apd    |void   |sv_vsetpvf     |NN SV *const sv|NN const char *const pat|NULLOK va_list *const args
 Apd    |void   |sv_setiv       |NN SV *const sv|const IV num
@@ -1275,6 +1407,7 @@ Apd       |SV*    |sv_setref_pvn  |NN SV *const rv|NULLOK const char *const classname \
                                |NN const char *const pv|const STRLEN n
 Apd    |void   |sv_setpv       |NN SV *const sv|NULLOK const char *const ptr
 Apd    |void   |sv_setpvn      |NN SV *const sv|NULLOK const char *const ptr|const STRLEN len
+Xp     |void   |sv_sethek      |NN SV *const sv|NULLOK const HEK *const hek
 Amdb   |void   |sv_setsv       |NN SV *dstr|NULLOK SV *sstr
 Amdb   |void   |sv_taint       |NN SV* sv
 ApdR   |bool   |sv_tainted     |NN SV *const sv
@@ -1290,39 +1423,89 @@ Apd     |void   |sv_usepvn_flags|NN SV *const sv|NULLOK char* ptr|const STRLEN len\
 Apd    |void   |sv_vcatpvfn    |NN SV *const sv|NN const char *const pat|const STRLEN patlen \
                                |NULLOK va_list *const args|NULLOK SV **const svargs|const I32 svmax \
                                |NULLOK bool *const maybe_tainted
+Apd    |void   |sv_vcatpvfn_flags|NN SV *const sv|NN const char *const pat|const STRLEN patlen \
+                               |NULLOK va_list *const args|NULLOK SV **const svargs|const I32 svmax \
+                               |NULLOK bool *const maybe_tainted|const U32 flags
 Apd    |void   |sv_vsetpvfn    |NN SV *const sv|NN const char *const pat|const STRLEN patlen \
                                |NULLOK va_list *const args|NULLOK SV **const svargs \
                                |const I32 svmax|NULLOK bool *const maybe_tainted
 ApR    |NV     |str_to_version |NN SV *sv
-Ap     |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
+ApR    |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
 Ap     |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
-EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
-EXMpR  |HV*    |_new_invlist   |IV initial_size
-EXMpR  |HV*    |_swash_to_invlist      |NN SV* const swash
-EXMp   |void   |_append_range_to_invlist   |NN HV* const invlist|const UV start|const UV end
 #ifdef PERL_IN_REGCOMP_C
-EiMR   |HV*    |add_cp_to_invlist      |NULLOK HV* invlist|const UV cp
-EsMR   |HV*    |add_range_to_invlist   |NULLOK HV* invlist|const UV start|const UV end
-EiMR   |UV*    |invlist_array  |NN HV* const invlist
-EiM    |void   |invlist_destroy        |NN HV* const invlist
-EsM    |void   |invlist_extend    |NN HV* const invlist|const UV len
-EsMR   |HV*    |invlist_intersection   |NN HV* const a|NN HV* const b
-EiMR   |UV     |invlist_len    |NN HV* const invlist
-EiMR   |UV     |invlist_max    |NN HV* const invlist
-EiM    |void   |invlist_set_array      |NN HV* const invlist|NN const UV* const array
-EiM    |void   |invlist_set_len        |NN HV* const invlist|const UV len
-EiM    |void   |invlist_set_max        |NN HV* const invlist|const UV max
-EiM    |void   |invlist_trim   |NN HV* const invlist
-EsMR   |HV*    |invlist_union  |NN HV* const a|NN HV* const b
+EiMR   |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
+EsM    |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
+EiMR   |UV*    |_invlist_array_init    |NN SV* const invlist|const bool will_have_0
+EiMR   |UV*    |invlist_array  |NN SV* const invlist
+EsM    |void   |invlist_extend    |NN SV* const invlist|const UV len
+EiMR   |UV     |invlist_max    |NN SV* const invlist
+EiM    |void   |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
+EiMR   |IV*    |get_invlist_previous_index_addr|NN SV* invlist
+EiMR   |IV     |invlist_previous_index|NN SV* const invlist
+EiM    |void   |invlist_set_previous_index|NN SV* const invlist|const IV index
+EiM    |void   |invlist_trim   |NN SV* const invlist
+EiMR   |SV*    |invlist_clone  |NN SV* const invlist
+EiMR   |bool   |invlist_is_iterating|NN SV* const invlist
+EiMR   |STRLEN*|get_invlist_iter_addr  |NN SV* invlist
+EiM    |void   |invlist_iterinit|NN SV* invlist
+EsMR   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
+EiM    |void   |invlist_iterfinish|NN SV* invlist
+EiMR   |UV     |invlist_highest|NN SV* const invlist
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
+EXmM   |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
+EXpM   |void   |_invlist_intersection_maybe_complement_2nd \
+               |NULLOK SV* const a|NN SV* const b          \
+               |const bool complement_b|NN SV** i
+EXmM   |void   |_invlist_union |NULLOK SV* const a|NN SV* const b|NN SV** output
+EXpM   |void   |_invlist_union_maybe_complement_2nd        \
+               |NULLOK SV* const a|NN SV* const b          \
+               |const bool complement_b|NN SV** output
+EXmM   |void   |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
+EXpM   |void   |_invlist_invert|NN SV* const invlist
+EXpM   |void   |_invlist_invert_prop|NN SV* const invlist
+EXMpR  |SV*    |_new_invlist   |IV initial_size
+EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
+EXMpR  |SV*    |_add_range_to_invlist  |NULLOK SV* invlist|const UV start|const UV end
+EXMp   |void   |_invlist_populate_swatch   |NN SV* const invlist|const UV start|const UV end|NN U8* swatch
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
+EXp    |SV*    |_core_swash_init|NN const char* pkg|NN const char* name \
+               |NN SV* listsv|I32 minbits|I32 none \
+               |NULLOK SV* invlist|NULLOK U8* const flags_p
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+EXMpR  |SV*    |_invlist_contents|NN SV* const invlist
+EiMR   |bool*  |get_invlist_offset_addr|NN SV* invlist
+EiMR   |UV     |_invlist_len   |NN SV* const invlist
+EMiR   |bool   |_invlist_contains_cp|NN SV* const invlist|const UV cp
+EXpMR  |IV     |_invlist_search        |NN SV* const invlist|const UV cp
+EXMpR  |SV*    |_get_swash_invlist|NN SV* const swash
+EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
+EXMp   |void   |_invlist_dump  |NN PerlIO *file|I32 level   \
+                               |NN const char* const indent \
+                               |NN SV* const invlist
 #endif
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
 Apd    |UV     |to_utf8_case   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp \
-                               |NN SV **swashp|NN const char *normal|NN const char *special
-Apd    |UV     |to_utf8_lower  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-Apd    |UV     |to_utf8_upper  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-Apd    |UV     |to_utf8_title  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-Apd    |UV     |to_utf8_fold   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+                               |NN SV **swashp|NN const char *normal|NULLOK const char *special
+Abmd   |UV     |to_utf8_lower  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+AMp    |UV     |_to_utf8_lower_flags   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp|const bool flags|NULLOK bool* tainted_ptr
+Abmd   |UV     |to_utf8_upper  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+AMp    |UV     |_to_utf8_upper_flags   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp|const bool flags|NULLOK bool* tainted_ptr
+Abmd   |UV     |to_utf8_title  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+AMp    |UV     |_to_utf8_title_flags   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp|const bool flags|NULLOK bool* tainted_ptr
+Abmd   |UV     |to_utf8_fold   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+AMp    |UV     |_to_utf8_fold_flags|NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp|U8 flags|NULLOK bool* tainted_ptr
+#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
+p      |bool   |translate_substr_offsets|STRLEN curlen|IV pos1_iv \
+                                        |bool pos1_is_uv|IV len_iv \
+                                        |bool len_is_uv|NN STRLEN *posp \
+                                        |NN STRLEN *lenp
+#endif
 #if defined(UNLINK_ALL_VERSIONS)
 Ap     |I32    |unlnk          |NN const char* f
 #endif
@@ -1351,14 +1534,19 @@ Apd     |int    |bytes_cmp_utf8 |NN const U8 *b|STRLEN blen|NN const U8 *u \
                                |STRLEN ulen
 ApMd   |U8*    |bytes_from_utf8|NN const U8 *s|NN STRLEN *len|NULLOK bool *is_utf8
 ApMd   |U8*    |bytes_to_utf8  |NN const U8 *s|NN STRLEN *len
-Apd    |UV     |utf8_to_uvchr  |NN const U8 *s|NULLOK STRLEN *retlen
-Apd    |UV     |utf8_to_uvuni  |NN const U8 *s|NULLOK STRLEN *retlen
+ApdD   |UV     |utf8_to_uvchr  |NN const U8 *s|NULLOK STRLEN *retlen
+ApdD   |UV     |utf8_to_uvuni  |NN const U8 *s|NULLOK STRLEN *retlen
+ApM    |UV     |valid_utf8_to_uvuni    |NN const U8 *s|NULLOK STRLEN *retlen
+Apd    |UV     |utf8_to_uvchr_buf      |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
+Apd    |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
 
 #ifdef EBCDIC
 Adp    |UV     |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+ApM    |UV     |valid_utf8_to_uvchr    |NN const U8 *s|NULLOK STRLEN *retlen
 #else
 Adpbm  |UV     |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+ApbmM  |UV     |valid_utf8_to_uvchr    |NN const U8 *s|NULLOK STRLEN *retlen
 #endif
 
 Adp    |UV     |utf8n_to_uvuni |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
@@ -1377,20 +1565,25 @@ ApdR    |char*  |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
 : Used by Data::Alias
 EXp    |void   |vivify_defelem |NN SV* sv
 : Used in pp.c
-p      |void   |vivify_ref     |NN SV* sv|U32 to_what
+pR     |SV*    |vivify_ref     |NN SV* sv|U32 to_what
 : Used in pp_sys.c
 p      |I32    |wait4pid       |Pid_t pid|NN int* statusp|int flags
 : Used in locale.c and perl.c
 p      |U32    |parse_unicode_opts|NN const char **popt
 Ap     |U32    |seed
 : Only used in perl.c
-pR     |UV     |get_hash_seed
+p        |void        |get_hash_seed        |NN unsigned char * const seed_buffer
 : Used in doio.c, pp_hot.c, pp_sys.c
 p      |void   |report_evil_fh |NULLOK const GV *gv
 : Used in doio.c, pp_hot.c, pp_sys.c
 p      |void   |report_wrongway_fh|NULLOK const GV *gv|const char have
 : Used in mg.c, pp.c, pp_hot.c, regcomp.c
 XEpd   |void   |report_uninit  |NULLOK const SV *uninit_sv
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
+p      |void   |report_redefined_cv|NN const SV *name \
+                                   |NN const CV *old_cv \
+                                   |NULLOK SV * const *new_const_svp
+#endif
 Apd    |void   |warn_sv        |NN SV *baseex
 Afpd   |void   |warn           |NN const char* pat|...
 Apd    |void   |vwarn          |NN const char* pat|NULLOK va_list* args
@@ -1400,11 +1593,16 @@ Afp     |void   |ck_warner_d    |U32 err|NN const char* pat|...
 Ap     |void   |vwarner        |U32 err|NN const char* pat|NULLOK va_list* args
 : FIXME
 p      |void   |watch          |NN char** addr
-Ap     |I32    |whichsig       |NN const char* sig
+Am     |I32    |whichsig       |NN const char* sig
+Ap     |I32    |whichsig_sv    |NN SV* sigsv
+Ap     |I32    |whichsig_pv    |NN const char* sig
+Ap     |I32    |whichsig_pvn   |NN const char* sig|STRLEN len
 : Used in pp_ctl.c
 p      |void   |write_to_stderr|NN SV* msv
 : Used in op.c
 p      |int    |yyerror        |NN const char *const s
+p      |int    |yyerror_pv     |NN const char *const s|U32 flags
+p      |int    |yyerror_pvn    |NN const char *const s|STRLEN len|U32 flags
 : Used in perly.y, and by Data::Alias
 EXp    |int    |yylex
 p      |void   |yyunlex
@@ -1412,8 +1610,12 @@ p        |void   |yyunlex
 p      |int    |yyparse        |int gramtype
 : Only used in scope.c
 p      |void   |parser_free    |NN const yy_parser *parser
+#ifdef PERL_CORE
+p      |void   |parser_free_nexttoke_ops|NN yy_parser *parser \
+                                        |NN OPSLAB *slab
+#endif
 #if defined(PERL_IN_TOKE_C)
-s      |int    |yywarn         |NN const char *const s
+s      |int    |yywarn         |NN const char *const s|U32 flags
 #endif
 #if defined(MYMALLOC)
 Ap     |void   |dump_mstats    |NN const char* s
@@ -1423,6 +1625,7 @@ Anpa      |Malloc_t|safesysmalloc |MEM_SIZE nbytes
 Anpa   |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
 Anpa   |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
 Anp    |Free_t |safesysfree    |Malloc_t where
+Asrnx  |void   |croak_memory_wrap
 #if defined(PERL_GLOBAL_STRUCT)
 Ap     |struct perl_vars *|GetVars
 Ap     |struct perl_vars*|init_global_struct
@@ -1495,12 +1698,12 @@ Apd     |SV*    |sv_rvweaken    |NN SV *const sv
 p      |int    |magic_killbackrefs|NN SV *sv|NN MAGIC *mg
 Ap     |OP*    |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
 Ap     |CV*    |newATTRSUB     |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
-#ifdef PERL_MAD
-Apr    |OP *   |newMYSUB       |I32 floor|NULLOK OP *o|NULLOK OP *proto \
+p      |CV*    |newATTRSUB_flags|I32 floor|NULLOK OP *o|NULLOK OP *proto \
+                                |NULLOK OP *attrs|NULLOK OP *block \
+                                |U32 flags
+Ap     |CV *   |newMYSUB       |I32 floor|NN OP *o|NULLOK OP *proto \
                                |NULLOK OP *attrs|NULLOK OP *block
-#else
-Apr    |void   |newMYSUB       |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
-#endif
+p      |CV*    |newSTUB        |NN GV *gv|bool fake
 : Used in perly.y
 p      |OP *   |my_attrs       |NN OP *o|NULLOK OP *attrs
 #if defined(USE_ITHREADS)
@@ -1519,8 +1722,6 @@ ApR       |MAGIC* |mg_dup         |NULLOK MAGIC *mg|NN CLONE_PARAMS *const param
 #if defined(PERL_IN_SV_C)
 s      |SV **  |sv_dup_inc_multiple|NN SV *const *source|NN SV **dest \
                                |SSize_t items|NN CLONE_PARAMS *const param
-#endif
-#if defined(PERL_IN_SV_C)
 sR     |SV*    |sv_dup_common  |NN const SV *const sstr \
                                |NN CLONE_PARAMS *const param
 #endif
@@ -1537,14 +1738,12 @@ Ap      |void   |ptr_table_store|NN PTR_TBL_t *const tbl|NULLOK const void *const oldsv
 Ap     |void   |ptr_table_split|NN PTR_TBL_t *const tbl
 ApD    |void   |ptr_table_clear|NULLOK PTR_TBL_t *const tbl
 Ap     |void   |ptr_table_free|NULLOK PTR_TBL_t *const tbl
-#if defined(USE_ITHREADS)
-#  if defined(HAVE_INTERP_INTERN)
-Ap     |void   |sys_intern_dup |NN struct interp_intern* src|NN struct interp_intern* dst
-#  endif
-#endif
 #if defined(HAVE_INTERP_INTERN)
 Ap     |void   |sys_intern_clear
 Ap     |void   |sys_intern_init
+#  if defined(USE_ITHREADS)
+Ap     |void   |sys_intern_dup |NN struct interp_intern* src|NN struct interp_intern* dst
+#  endif
 #endif
 
 AopP   |const XOP *    |custom_op_xop  |NN const OP *o
@@ -1562,6 +1761,7 @@ Adpbm     |void   |sv_nounlocking |NULLOK SV *sv
 Adpb   |void   |sv_nounlocking |NULLOK SV *sv
 #endif
 Adp    |int    |nothreadhook
+p      |void   |init_constants
 
 #if defined(PERL_IN_DOOP_C)
 sR     |I32    |do_trans_simple        |NN SV * const sv
@@ -1573,24 +1773,28 @@ sR      |I32    |do_trans_complex_utf8  |NN SV * const sv
 #endif
 
 #if defined(PERL_IN_GV_C)
-s      |void   |gv_init_sv     |NN GV *gv|const svtype sv_type
+s      |void   |gv_init_svtype |NN GV *gv|const svtype sv_type
 s      |void   |gv_magicalize_isa      |NN GV *gv
-s      |void   |gv_magicalize_overload |NN GV *gv
-s      |HV*    |gv_get_super_pkg|NN const char* name|I32 namelen
 s      |HV*    |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \
                                |NN const char *methpv|const U32 flags
 #endif
 
+#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
+po     |SV*    |hfree_next_entry       |NN HV *hv|NN STRLEN *indexp
+#endif
+
 #if defined(PERL_IN_HV_C)
-s      |void   |hsplit         |NN HV *hv
+s      |void   |hsplit         |NN HV *hv|STRLEN const oldsize|STRLEN newsize
 s      |void   |hfreeentries   |NN HV *hv
+s      |SV*    |hv_free_ent_ret|NN HV *hv|NN HE *entry
 sa     |HE*    |new_he
 sanR   |HEK*   |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
 sn     |void   |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
 s      |void   |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
 sR     |HEK*   |share_hek_flags|NN const char *str|I32 len|U32 hash|int flags
 rs     |void   |hv_notallowed  |int flags|NN const char *key|I32 klen|NN const char *msg
-sn     |struct xpvhv_aux*|hv_auxinit|NN HV *hv
+in     |U32|ptr_hash|PTRV u
+s      |struct xpvhv_aux*|hv_auxinit|NN HV *hv
 sM     |SV*    |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
                |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
                |U32 hash
@@ -1598,10 +1802,10 @@ sM      |void   |clear_placeholders     |NN HV *hv|U32 items
 #endif
 
 #if defined(PERL_IN_MG_C)
-s      |void   |save_magic     |I32 mgs_ix|NN SV *sv
--s     |int    |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN const char *meth
+s      |void   |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags
+-s     |int    |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth
 s      |SV*    |magic_methcall1|NN SV *sv|NN const MAGIC *mg \
-                               |NN const char *meth|U32 flags \
+                               |NN SV *meth|U32 flags \
                                |int n|NULLOK SV *val
 s      |void   |restore_magic  |NULLOK const void *p
 s      |void   |unwind_handler_stack|NULLOK const void *p
@@ -1611,11 +1815,7 @@ s        |void   |unwind_handler_stack|NULLOK const void *p
 #if defined(PERL_IN_OP_C)
 sRn    |bool   |is_handle_constructor|NN const OP *o|I32 numargs
 sR     |I32    |is_list_assignment|NULLOK const OP *o
-#  ifdef USE_ITHREADS
-so     |void   |forget_pmop    |NN PMOP *const o|U32 flags
-#  else
-so     |void   |forget_pmop    |NN PMOP *const o
-#  endif
+s      |void   |forget_pmop    |NN PMOP *const o
 s      |void   |find_and_forget_pmops  |NN OP *o
 s      |void   |cop_free       |NN COP *cop
 s      |OP*    |modkids        |NULLOK OP *o|I32 type
@@ -1624,39 +1824,40 @@ sR      |OP*    |newDEFSVOP
 sR     |OP*    |search_const   |NN OP *o
 sR     |OP*    |new_logop      |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
 s      |void   |simplify_sort  |NN OP *o
-s      |const char*    |gv_ename       |NN GV *gv
-sRn    |bool   |scalar_mod_type|NN const OP *o|I32 type
+s      |SV*    |gv_ename       |NN GV *gv
+sRn    |bool   |scalar_mod_type|NULLOK const OP *o|I32 type
 s      |OP *   |my_kid         |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
 s      |OP *   |dup_attrlist   |NN OP *o
-s      |void   |apply_attrs    |NN HV *stash|NN SV *target|NULLOK OP *attrs|bool for_my
+s      |void   |apply_attrs    |NN HV *stash|NN SV *target|NULLOK OP *attrs
 s      |void   |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
-s      |void   |bad_type       |I32 n|NN const char *t|NN const char *name|NN const OP *kid
-s      |void   |no_bareword_allowed|NN const OP *o
+s      |void   |bad_type_pv    |I32 n|NN const char *t|NN const char *name|U32 flags|NN const OP *kid
+s      |void   |bad_type_gv    |I32 n|NN const char *t|NN GV *gv|U32 flags|NN const OP *kid
+s      |void   |no_bareword_allowed|NN OP *o
 sR     |OP*    |no_fh_allowed|NN OP *o
-sR     |OP*    |too_few_arguments|NN OP *o|NN const char* name
-sR     |OP*    |too_many_arguments|NN OP *o|NN const char* name
+sR     |OP*    |too_few_arguments_sv|NN OP *o|NN SV* namesv|U32 flags
+sR     |OP*    |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
+s      |OP*    |too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags
+sR     |OP*    |too_many_arguments_sv|NN OP *o|NN SV* namesv|U32 flags
 s      |bool   |looks_like_bool|NN const OP* o
 s      |OP*    |newGIVWHENOP   |NULLOK OP* cond|NN OP *block \
                                |I32 enter_opcode|I32 leave_opcode \
                                |PADOFFSET entertarg
 s      |OP*    |ref_array_or_hash|NULLOK OP* cond
-s      |void   |process_special_blocks |NN const char *const fullname\
+s      |void   |process_special_blocks |I32 floor \
+                                       |NN const char *const fullname\
                                        |NN GV *const gv|NN CV *const cv
 #endif
-#if defined(PL_OP_SLAB_ALLOC)
-Apa    |void*  |Slab_Alloc     |size_t sz
-Ap     |void   |Slab_Free      |NN void *op
-#  if defined(PERL_DEBUG_READONLY_OPS)
-: Used in perl.c
-poxM   |void   |pending_Slabs_to_ro
+Xpa    |void*  |Slab_Alloc     |size_t sz
+Xp     |void   |Slab_Free      |NN void *op
+#if defined(PERL_DEBUG_READONLY_OPS)
+#    if defined(PERL_CORE)
+px     |void   |Slab_to_ro     |NN OPSLAB *slab
+px     |void   |Slab_to_rw     |NN OPSLAB *const slab
+#    endif
 : Used in OpREFCNT_inc() in sv.c
 poxM   |OP *   |op_refcnt_inc  |NULLOK OP *o
 : FIXME - can be static.
 poxM   |PADOFFSET      |op_refcnt_dec  |NN OP *o
-#    if defined(PERL_IN_OP_C)
-s      |void   |Slab_to_rw     |NN void *op
-#    endif
-#  endif
 #endif
 
 #if defined(PERL_IN_PERL_C)
@@ -1664,6 +1865,8 @@ s |void   |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp
 s      |void   |forbid_setid   |const char flag|const bool suidscript
 s      |void   |incpush        |NN const char *const dir|STRLEN len \
                                |U32 flags
+s      |SV*    |mayberelocate  |NN const char *const dir|STRLEN len \
+                               |U32 flags
 s      |void   |incpush_use_sep|NN const char *p|STRLEN len|U32 flags
 s      |void   |init_interp
 s      |void   |init_ids
@@ -1673,12 +1876,13 @@ s       |void   |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
 s      |void   |init_predump_symbols
 rs     |void   |my_exit_jump
 s      |void   |nuke_stacks
-s      |int    |open_script    |NN const char *scriptname|bool dosearch \
-                               |NN bool *suidscript|NN PerlIO **rsfpp
-s      |void   |usage          |NN const char *name
+s      |PerlIO *|open_script   |NN const char *scriptname|bool dosearch \
+                               |NN bool *suidscript
+sr     |void   |usage
 #ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
 so     |void   |validate_suid  |NN PerlIO *rsfp
 #endif
+sr     |void   |minus_v
 
 s      |void*  |parse_body     |NULLOK char **env|XSINIT_t xsinit
 rs     |void   |run_body       |I32 oldscope
@@ -1713,36 +1917,41 @@ sR      |const char *|get_num   |NN const char *patptr|NN I32 *lenptr
 ns     |bool   |need_utf8      |NN const char *pat|NN const char *patend
 ns     |char   |first_symbol   |NN const char *pat|NN const char *patend
 sR     |char * |sv_exp_grow    |NN SV *sv|STRLEN needed
-snR    |char * |bytes_to_uni   |NN const U8 *start|STRLEN len|NN char *dest
+snR    |char * |bytes_to_uni   |NN const U8 *start|STRLEN len|NN char *dest \
+                               |const bool needs_swap
 #endif
 
 #if defined(PERL_IN_PP_CTL_C)
 sR     |OP*    |docatch        |NULLOK OP *o
-sR     |OP*    |dofindlabel    |NN OP *o|NN const char *label|NN OP **opstack|NN OP **oplimit
-sR     |OP*    |doparseform    |NN SV *sv
+sR     |OP*    |dofindlabel    |NN OP *o|NN const char *label|STRLEN len \
+                                |U32 flags|NN OP **opstack|NN OP **oplimit
+s      |MAGIC *|doparseform    |NN SV *sv
 snR    |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
 sR     |I32    |dopoptoeval    |I32 startingblock
 sR     |I32    |dopoptogiven   |I32 startingblock
-sR     |I32    |dopoptolabel   |NN const char *label
+sR     |I32    |dopoptolabel   |NN const char *label|STRLEN len|U32 flags
 sR     |I32    |dopoptoloop    |I32 startingblock
 sR     |I32    |dopoptosub_at  |NN const PERL_CONTEXT* cxstk|I32 startingblock
 sR     |I32    |dopoptowhen    |I32 startingblock
 s      |void   |save_lines     |NULLOK AV *array|NN SV *sv
-s      |bool   |doeval         |int gimme|NULLOK OP** startop|NULLOK CV* outside|U32 seq
+s      |bool   |doeval         |int gimme \
+                               |NULLOK CV* outside|U32 seq|NULLOK HV* hh
 sR     |PerlIO *|check_type_and_open|NN SV *name
 #ifndef PERL_DISABLE_PMC
 sR     |PerlIO *|doopen_pm     |NN SV *name
 #endif
-sRn    |bool   |path_is_absolute|NN const char *name
+s      |SV **  |adjust_stack_on_leave|NN SV **newsp|NN SV **sp|NN SV **mark|I32 gimme|U32 flags
+iRn    |bool   |path_is_searchable|NN const char *name
 sR     |I32    |run_user_filter|int idx|NN SV *buf_sv|int maxlen
 sR     |PMOP*  |make_matcher   |NN REGEXP* re
 sR     |bool   |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
 s      |void   |destroy_matcher|NN PMOP* matcher
-s      |OP*    |do_smartmatch  |NULLOK HV* seen_this|NULLOK HV* seen_other
+s      |OP*    |do_smartmatch  |NULLOK HV* seen_this \
+                               |NULLOK HV* seen_other|const bool copied
 #endif
 
 #if defined(PERL_IN_PP_HOT_C)
-s      |void   |do_oddball     |NN HV *hash|NN SV **relem|NN SV **firstrelem
+s      |void   |do_oddball     |NN SV **oddkey|NN SV **firstkey
 sR     |SV*    |method_common  |NN SV* meth|NULLOK U32* hashp
 #endif
 
@@ -1766,7 +1975,7 @@ sR        |int    |dooneliner     |NN const char *cmd|NN const char *filename
 #  endif
 s      |SV *   |space_join_names_mortal|NN char *const *array
 #endif
-p      |OP *   |tied_method|NN const char *const methname|NN SV **sp \
+p      |OP *   |tied_method|NN SV *methname|NN SV **sp \
                                |NN SV *const sv|NN const MAGIC *const mg \
                                |const U32 flags|U32 argc|...
 
@@ -1781,13 +1990,25 @@ Es      |regnode*|regbranch     |NN struct RExC_state_t *pRExC_state \
                                |NN I32 *flagp|I32 first|U32 depth
 Es     |STRLEN |reguni         |NN const struct RExC_state_t *pRExC_state \
                                |UV uv|NN char *s
-Es     |regnode*|regclass      |NN struct RExC_state_t *pRExC_state|U32 depth
+Es     |regnode*|regclass      |NN struct RExC_state_t *pRExC_state \
+                               |NN I32 *flagp|U32 depth|const bool stop_at_1 \
+                               |bool allow_multi_fold                        \
+                               |const bool silence_non_portable              \
+                               |NULLOK SV** ret_invlist
+Es     |bool|could_it_be_a_POSIX_class|NN struct RExC_state_t *pRExC_state
+Es     |regnode*|handle_regex_sets|NN struct RExC_state_t *pRExC_state \
+                               |NULLOK SV ** return_invlist            \
+                               |NN I32 *flagp|U32 depth                \
+                               |NN char * const oregcomp_parse
+Es     |void|parse_lparen_question_flags|NN struct RExC_state_t *pRExC_state
 Es     |regnode*|reg_node      |NN struct RExC_state_t *pRExC_state|U8 op
 Es     |UV     |reg_recode     |const char value|NN SV **encp
 Es     |regnode*|regpiece      |NN struct RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth
-Es     |regnode*|reg_namedseq  |NN struct RExC_state_t *pRExC_state \
-                               |NULLOK UV *valuep|NULLOK I32 *flagp|U32 depth
+Es     |bool   |grok_bslash_N  |NN struct RExC_state_t *pRExC_state        \
+                               |NULLOK regnode** nodep|NULLOK UV *valuep   \
+                               |NN I32 *flagp|U32 depth|bool in_char_class \
+                               |const bool strict
 Es     |void   |reginsert      |NN struct RExC_state_t *pRExC_state \
                                |U8 op|NN regnode *opnd|U32 depth
 Es     |void   |regtail        |NN struct RExC_state_t *pRExC_state \
@@ -1795,9 +2016,17 @@ Es       |void   |regtail        |NN struct RExC_state_t *pRExC_state \
 Es     |SV *   |reg_scan_name  |NN struct RExC_state_t *pRExC_state \
                                |U32 flags
 Es     |U32    |join_exact     |NN struct RExC_state_t *pRExC_state \
-                               |NN regnode *scan|NN I32 *min|U32 flags|NULLOK regnode *val|U32 depth
+                               |NN regnode *scan|NN UV *min_subtract  \
+                               |NN bool *has_exactf_sharp_s  \
+                               |U32 flags|NULLOK regnode *val|U32 depth
 EsRn   |char * |regwhite       |NN struct RExC_state_t *pRExC_state \
                                |NN char *p
+EsRn   |char * |regpatws       |NN struct RExC_state_t *pRExC_state \
+                               |NN char *p|const bool recognize_comment
+Ei     |void   |alloc_maybe_populate_EXACT|NN struct RExC_state_t *pRExC_state \
+                               |NN regnode *node|NN I32 *flagp|STRLEN len \
+                               |UV code_point
+Ei     |U8   |compute_EXACTish|NN struct RExC_state_t *pRExC_state
 Es     |char * |nextchar       |NN struct RExC_state_t *pRExC_state
 Es     |bool   |reg_skipcomment|NN struct RExC_state_t *pRExC_state
 Es     |void   |scan_commit    |NN const struct RExC_state_t *pRExC_state \
@@ -1823,8 +2052,8 @@ Es        |I32    |study_chunk    |NN struct RExC_state_t *pRExC_state \
 EsRn   |U32    |add_data       |NN struct RExC_state_t *pRExC_state|U32 n \
                                |NN const char *s
 rs     |void   |re_croak2      |NN const char* pat1|NN const char* pat2|...
-Es     |I32    |regpposixcc    |NN struct RExC_state_t *pRExC_state|I32 value
-Es     |void   |checkposixcc   |NN struct RExC_state_t *pRExC_state
+Ei     |I32    |regpposixcc    |NN struct RExC_state_t *pRExC_state \
+                               |I32 value|const bool strict
 Es     |I32    |make_trie      |NN struct RExC_state_t *pRExC_state \
                                |NN regnode *startbranch|NN regnode *first \
                                |NN regnode *last|NN regnode *tail \
@@ -1833,6 +2062,7 @@ Es        |void   |make_trie_failtable    |NN struct RExC_state_t *pRExC_state \
                                 |NN regnode *source|NN regnode *stclass \
                                |U32 depth
 #  ifdef DEBUGGING
+Es        |void        |regdump_intflags|NULLOK const char *lead| const U32 flags
 Es     |void   |regdump_extflags|NULLOK const char *lead| const U32 flags
 Es     |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
                                |NN const regnode *node \
@@ -1840,6 +2070,7 @@ Es        |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
                                |NULLOK const regnode *plast \
                                |NN SV* sv|I32 indent|U32 depth
 Es     |void   |put_byte       |NN SV* sv|int c
+Es     |bool   |put_latin1_charclass_innards|NN SV* sv|NN char* bitmap
 Es     |void   |dump_trie      |NN const struct _reg_trie_data *trie\
                                |NULLOK HV* widecharmap|NN AV *revcharmap\
                                |U32 depth
@@ -1855,22 +2086,35 @@ Es      |U8     |regtail_study  |NN struct RExC_state_t *pRExC_state \
 #endif
 
 #if defined(PERL_IN_REGEXEC_C)
-ERs    |I32    |regmatch       |NN regmatch_info *reginfo|NN regnode *prog
-ERs    |I32    |regrepeat      |NN const regexp *prog|NN const regnode *p|I32 max|int depth
-ERs    |I32    |regtry         |NN regmatch_info *reginfo|NN char **startpos
-ERs    |bool   |reginclass     |NULLOK const regexp * const prog|NN const regnode * const n|NN const U8 * const p|NULLOK STRLEN *lenp\
-                               |bool const do_utf8sv_is_utf8
-Es     |CHECKPOINT|regcppush   |I32 parenfloor
-Es     |char*  |regcppop       |NN const regexp *rex
+ERs    |bool   |isFOO_lc       |const U8 classnum|const U8 character
+ERs    |bool   |isFOO_utf8_lc  |const U8 classnum|NN const U8* character
+ERs    |I32    |regmatch       |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
+ERs    |I32    |regrepeat      |NN regexp *prog|NN char **startposp \
+                               |NN const regnode *p \
+                               |NN regmatch_info *const reginfo \
+                               |I32 max \
+                               |int depth
+ERs    |I32    |regtry         |NN regmatch_info *reginfo|NN char **startposp
+ERs    |bool   |reginclass     |NULLOK regexp * const prog|NN const regnode * const n|NN const U8 * const p\
+                               |bool const utf8_target
+Es     |CHECKPOINT|regcppush   |NN const regexp *rex|I32 parenfloor\
+                               |U32 maxopenparen
+Es     |void   |regcppop       |NN regexp *rex\
+                               |NN U32 *maxopenparen_p
 ERsn   |U8*    |reghop3        |NN U8 *s|I32 off|NN const U8 *lim
+ERsM   |SV*    |core_regclass_swash|NULLOK const regexp *prog \
+                               |NN const struct regnode *node|bool doinit \
+                               |NULLOK SV **listsvp
 #ifdef XXX_dmq
 ERsn   |U8*    |reghop4        |NN U8 *s|I32 off|NN const U8 *llim \
                                |NN const U8 *rlim
 #endif
 ERsn   |U8*    |reghopmaybe3   |NN U8 *s|I32 off|NN const U8 *lim
-ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c|NN char *s|NN const char *strend|NULLOK regmatch_info *reginfo
+ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c \
+                               |NN char *s|NN const char *strend \
+                               |NULLOK regmatch_info *reginfo
 Es     |void   |to_utf8_substr |NN regexp * prog
-Es     |void   |to_byte_substr |NN regexp * prog
+Es     |bool   |to_byte_substr |NN regexp * prog
 ERs    |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
                                                |NN const regnode *scan
 #  ifdef DEBUGGING
@@ -1885,8 +2129,6 @@ Es        |void   |debug_start_match|NN const REGEXP *prog|const bool do_utf8\
 #if defined(PERL_IN_DUMP_C)
 s      |CV*    |deb_curcv      |const I32 ix
 s      |void   |debprof        |NN const OP *o
-s      |void   |sequence       |NULLOK const OP *o
-s      |void   |sequence_tail  |NULLOK const OP *o
 s      |UV     |sequence_num   |NULLOK const OP *o
 s      |SV*    |pm_description |NN const PMOP *pm
 #endif
@@ -1905,15 +2147,20 @@ po      |void   |sv_add_backref |NN SV *const tsv|NN SV *const sv
 poM    |void   |sv_kill_backrefs       |NN SV *const sv|NULLOK AV *const av
 #endif
 
+#if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
+pR     |SV *   |varname        |NULLOK const GV *const gv|const char gvtype \
+                               |PADOFFSET targ|NULLOK const SV *const keyname \
+                               |I32 aindex|int subscript_type
+#endif
+
 pX     |void   |sv_del_backref |NN SV *const tsv|NN SV *const sv
 #if defined(PERL_IN_SV_C)
 nsR    |char * |uiv_2buf       |NN char *const buf|const IV iv|UV uv|const int is_uv|NN char **const peob
-s      |void   |sv_unglob      |NN SV *const sv
+i      |void   |sv_unglob      |NN SV *const sv|U32 flags
+s      |const char *|sv_display        |NN SV *const sv|NN char *tmpbuf|STRLEN tmpbuf_size
 s      |void   |not_a_number   |NN SV *const sv
+s      |void   |not_incrementable      |NN SV *const sv
 s      |I32    |visit          |NN SVFUNC_t f|const U32 flags|const U32 mask
-sR     |SV *   |varname        |NULLOK const GV *const gv|const char gvtype \
-                               |PADOFFSET targ|NULLOK const SV *const keyname \
-                               |I32 aindex|int subscript_type
 #  ifdef DEBUGGING
 s      |void   |del_sv |NN SV *p
 #  endif
@@ -1964,24 +2211,28 @@ s       |void   |force_next     |I32 type
 s      |char*  |force_version  |NN char *s|int guessing
 s      |char*  |force_strict_version   |NN char *s
 s      |char*  |force_word     |NN char *start|int token|int check_keyword \
-                               |int allow_pack|int allow_tick
+                               |int allow_pack
 s      |SV*    |tokeq          |NN SV *sv
 s      |void   |readpipe_override|
 sR     |char*  |scan_const     |NN char *start
+iR     |SV*    |get_and_check_backslash_N_name|NN const char* s \
+                               |NN const char* const e
 sR     |char*  |scan_formline  |NN char *s
 sR     |char*  |scan_heredoc   |NN char *s
 s      |char*  |scan_ident     |NN char *s|NN const char *send|NN char *dest \
                                |STRLEN destlen|I32 ck_uni
 sR     |char*  |scan_inputsymbol|NN char *start
 sR     |char*  |scan_pat       |NN char *start|I32 type
-sR     |char*  |scan_str       |NN char *start|int keep_quoted|int keep_delims
+sR     |char*  |scan_str       |NN char *start|int keep_quoted \
+                               |int keep_delims|int re_reparse \
+                               |bool deprecate_escaped_matching
 sR     |char*  |scan_subst     |NN char *start
 sR     |char*  |scan_trans     |NN char *start
 s      |char*  |scan_word      |NN char *s|NN char *dest|STRLEN destlen \
                                |int allow_package|NN STRLEN *slp
 s      |void   |update_debugger_info|NULLOK SV *orig_sv \
                                |NULLOK const char *const buf|STRLEN len
-sR     |char*  |skipspace      |NN char *s
+sR     |char*  |skipspace_flags|NN char *s|U32 flags
 sR     |char*  |swallow_bom    |NN U8 *s
 #ifndef PERL_NO_UTF16_FILTER
 s      |I32    |utf16_textfilter|int idx|NN SV *sv|int maxlen
@@ -1990,12 +2241,14 @@ s       |U8*    |add_utf16_textfilter|NN U8 *const s|bool reversed
 s      |void   |checkcomma     |NN const char *s|NN const char *name \
                                |NN const char *what
 s      |void   |force_ident    |NN const char *s|int kind
+s      |void   |force_ident_maybe_lex|char pit
 s      |void   |incline        |NN const char *s
 s      |int    |intuit_method  |NN char *s|NULLOK GV *gv|NULLOK CV *cv
 s      |int    |intuit_more    |NN char *s
 s      |I32    |lop            |I32 f|int x|NN char *s
 rs     |void   |missingterm    |NULLOK char *s
 s      |void   |no_op          |NN const char *const what|NULLOK char *s
+s      |int    |pending_ident
 sR     |I32    |sublex_done
 sR     |I32    |sublex_push
 sR     |I32    |sublex_start
@@ -2008,6 +2261,9 @@ so        |SV*    |new_constant   |NULLOK const char *s|STRLEN len \
                                |STRLEN typelen
 s      |int    |deprecate_commaless_var_list
 s      |int    |ao             |int toketype
+s  |void|parse_ident|NN char **s|NN char **d \
+                     |NN char * const e|int allow_package \
+                     |bool is_utf8
 #  if defined(PERL_CR_FILTER)
 s      |I32    |cr_textfilter  |int idx|NULLOK SV *sv|int maxlen
 s      |void   |strip_return   |NN SV *sv
@@ -2017,14 +2273,17 @@ s       |int    |tokereport     |I32 rv|NN const YYSTYPE* lvalp
 s      |void   |printbuf       |NN const char *const fmt|NN const char *const s
 #  endif
 #endif
+EXMp   |bool   |validate_proto |NN SV *name|NULLOK SV *proto|bool warn
 
 #if defined(PERL_IN_UNIVERSAL_C)
-s      |bool|isa_lookup        |NN HV *stash|NN const char * const name
+s      |bool|isa_lookup        |NN HV *stash|NN const char * const name \
+                                        |STRLEN len|U32 flags
 #endif
 
 #if defined(PERL_IN_LOCALE_C)
 #if defined(USE_LOCALE_NUMERIC) || defined(USE_LOCALE_COLLATE)
 s      |char*  |stdize_locale  |NN char* locs
+s      |bool   |is_cur_LC_category_utf8|int category
 #endif
 #endif
 
@@ -2033,7 +2292,6 @@ s |const COP*|closest_cop |NN const COP *cop|NULLOK const OP *o
 s      |SV*    |mess_alloc
 s      |SV *|with_queued_errors|NN SV *ex
 s      |bool   |invoke_exception_hook|NULLOK SV *ex|bool warn
-sr     |char * |write_no_mem
 #if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
 sn     |void   |mem_log_common |enum mem_log_type mlt|const UV n|const UV typesize \
                                |NN const char *type_name|NULLOK const SV *sv \
@@ -2048,9 +2306,10 @@ sn       |NV|mulexp10    |NV value|I32 exponent
 #endif
 
 #if defined(PERL_IN_UTF8_C)
-sRn    |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len
-sR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname
-sR     |SV*    |swash_get      |NN SV* swash|UV start|UV span
+iRn    |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len
+sRM    |UV     |check_locale_boundary_crossing|NN const U8* const p|const UV result|NN U8* const ustrp|NN STRLEN *lenp
+iR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname
+sR     |SV*    |swatch_get     |NN SV* swash|UV start|UV span
 #endif
 
 Apd    |void   |sv_setsv_flags |NN SV *dstr|NULLOK SV *sstr|const I32 flags
@@ -2062,11 +2321,13 @@ Apd     |void   |sv_catsv_flags |NN SV *const dsv|NULLOK SV *const ssv|const I32 flags
 Apmd   |STRLEN |sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags
 Ap     |STRLEN |sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra
 Apd    |char*  |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
-Apd    |void   |sv_copypv      |NN SV *const dsv|NN SV *const ssv
+pmb    |void   |sv_copypv      |NN SV *const dsv|NN SV *const ssv
+Apmd   |void   |sv_copypv_nomg |NN SV *const dsv|NN SV *const ssv
+Apd    |void   |sv_copypv_flags        |NN SV *const dsv|NN SV *const ssv|const I32 flags
 Ap     |char*  |my_atof2       |NN const char *s|NN NV* value
 Apn    |int    |my_socketpair  |int family|int type|int protocol|int fd[2]
 Ap     |int    |my_dirfd       |NULLOK DIR* dir
-#ifdef PERL_OLD_COPY_ON_WRITE
+#ifdef PERL_ANY_COW
 : Used in pp_hot.c and regexec.c
 pMXE   |SV*    |sv_setsv_cow   |NULLOK SV* dstr|NN SV* sstr
 #endif
@@ -2111,52 +2372,76 @@ s       |void   |deb_stack_n    |NN SV** stack_base|I32 stack_min \
                                |I32 stack_max|I32 mark_min|I32 mark_max
 #endif
 
-: Used in perl.c, pp_ctl.c, toke.c
-pda    |PADLIST*|pad_new       |int flags
-: Only used in op.c
-Mpd    |PADOFFSET|pad_add_name |NN const char *name|const STRLEN len\
+: pad API
+#ifdef PERL_MAD
+Mnpd   |void   |pad_peg        |NN const char* s
+#endif
+Apda   |PADLIST*|pad_new       |int flags
+#if defined(PERL_IN_PAD_C)
+s      |PADOFFSET|pad_alloc_name|NN SV *namesv|U32 flags \
+                               |NULLOK HV *typestash|NULLOK HV *ourstash
+#endif
+Apd    |PADOFFSET|pad_add_name_pvn|NN const char *namepv|STRLEN namelen\
+                               |U32 flags|NULLOK HV *typestash\
+                               |NULLOK HV *ourstash
+Apd    |PADOFFSET|pad_add_name_pv|NN const char *name\
                                |const U32 flags|NULLOK HV *typestash\
                                |NULLOK HV *ourstash
-: Only used in op.c
-pd     |PADOFFSET|pad_add_anon |NN SV* sv|OPCODE op_type
+Apd    |PADOFFSET|pad_add_name_sv|NN SV *name\
+                               |U32 flags|NULLOK HV *typestash\
+                               |NULLOK HV *ourstash
+AMpd   |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
+Apd    |PADOFFSET|pad_add_anon |NN CV* func|I32 optype
+#if defined(PERL_IN_PAD_C)
+sd     |void   |pad_check_dup  |NN SV *name|U32 flags|NULLOK const HV *ourstash
+#endif
+Apd    |PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags
+Apd    |PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags
+Apd    |PADOFFSET|pad_findmy_sv|NN SV* name|U32 flags
+ApdD   |PADOFFSET|find_rundefsvoffset  |
+Apd    |SV*    |find_rundefsv  |
+: Used in pp.c
+p      |SV*    |find_rundefsv2 |NN CV *cv|U32 seq
 #if defined(PERL_IN_PAD_C)
-sd     |void   |pad_check_dup  |NN SV *name|const U32 flags \
-                               |NULLOK const HV *ourstash
+sd     |PADOFFSET|pad_findlex  |NN const char *namepv|STRLEN namelen|U32 flags \
+                               |NN const CV* cv|U32 seq|int warn \
+                               |NULLOK SV** out_capture|NN SV** out_name_sv \
+                               |NN int *out_flags
 #endif
 #ifdef DEBUGGING
-: Only used PAD_SETSV() in op.c
-pd     |void   |pad_setsv      |PADOFFSET po|NN SV* sv
+Apd    |SV*    |pad_sv         |PADOFFSET po
+Apd    |void   |pad_setsv      |PADOFFSET po|NN SV* sv
 #endif
-: Only used in op.c
 pd     |void   |pad_block_start|int full
-: Only used in op.c
-pd     |void   |pad_tidy       |padtidy_type type
-: Used in dump.c
-pd     |void   |do_dump_pad    |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
-: Only used in op.c
-pd     |void   |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
-
-: Used in pp_ctl.c, pp_hot.c, pp_sort.c
-pdX    |void   |pad_push       |NN PADLIST *padlist|int depth
-: Only used in PAD_COMPNAME_TYPE() in op.c
-pR     |HV*    |pad_compname_type|const PADOFFSET po
-: Used in sv.c
-#if defined(USE_ITHREADS)
-pR     |AV*    |padlist_dup    |NULLOK AV *const srcpad \
-                               |NN CLONE_PARAMS *const param
+pd     |U32    |intro_my
+pd     |OP *   |pad_leavemy
+pd     |void   |pad_swipe      |PADOFFSET po|bool refadjust
+#if defined(PERL_IN_PAD_C)
+sd     |void   |pad_reset
 #endif
-
+AMpd   |void   |pad_tidy       |padtidy_type type
+pd     |void   |pad_free       |PADOFFSET po
+pd     |void   |do_dump_pad    |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
 #if defined(PERL_IN_PAD_C)
-sd     |PADOFFSET|pad_findlex  |NN const char *name|NN const CV* cv|U32 seq|int warn \
-                               |NULLOK SV** out_capture|NN SV** out_name_sv \
-                               |NN int *out_flags
-s      |PADOFFSET|pad_add_name_sv|NN SV *namesv|const U32 flags \
-                               |NULLOK HV *typestash|NULLOK HV *ourstash
 #  if defined(DEBUGGING)
 sd     |void   |cv_dump        |NN const CV *cv|NN const char *title
 #  endif
 #endif
+Apd    |CV*    |cv_clone       |NN CV* proto
+p      |CV*    |cv_clone_into  |NN CV* proto|NN CV *target
+pd     |void   |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
+pdX    |void   |pad_push       |NN PADLIST *padlist|int depth
+ApdR   |HV*    |pad_compname_type|const PADOFFSET po
+#if defined(USE_ITHREADS)
+pdR    |PADLIST *|padlist_dup  |NULLOK PADLIST *srcpad \
+                               |NN CLONE_PARAMS *param
+#endif
+p      |PAD ** |padlist_store  |NN PADLIST *padlist|I32 key \
+                               |NULLOK PAD *val
+
 ApdR   |CV*    |find_runcv     |NULLOK U32 *db_seqp
+pR     |CV*    |find_runcv_where|U8 cond|IV arg \
+                                |NULLOK U32 *db_seqp
 : Only used in perl.c
 p      |void   |free_tied_hv_pool
 #if defined(DEBUGGING)
@@ -2173,6 +2458,7 @@ ApoR      |I32*   |hv_riter_p     |NN HV *hv
 ApoR   |HE**   |hv_eiter_p     |NN HV *hv
 Apo    |void   |hv_riter_set   |NN HV *hv|I32 riter
 Apo    |void   |hv_eiter_set   |NN HV *hv|NULLOK HE *eiter
+Ap      |void   |hv_rand_set    |NN HV *hv|U32 new_xhv_rand
 Ap     |void   |hv_name_set    |NN HV *hv|NULLOK const char *name|U32 len|U32 flags
 p      |void   |hv_ename_add   |NN HV *hv|NN const char *name|U32 len \
                                |U32 flags
@@ -2180,12 +2466,11 @@ p       |void   |hv_ename_delete|NN HV *hv|NN const char *name|U32 len \
                                |U32 flags
 : Used in dump.c and hv.c
 poM    |AV**   |hv_backreferences_p    |NN HV *hv
-#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
-: Only used in sv.c
+#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_SCOPE_C)
 poM    |void   |hv_kill_backrefs       |NN HV *hv
 #endif
 Apd    |void   |hv_clear_placeholders  |NN HV *hv
-ApoR   |I32*   |hv_placeholders_p      |NN HV *hv
+XpoR   |SSize_t*|hv_placeholders_p     |NN HV *hv
 ApoR   |I32    |hv_placeholders_get    |NN const HV *hv
 Apo    |void   |hv_placeholders_set    |NN HV *hv|I32 ph
 
@@ -2201,90 +2486,8 @@ sMd      |SV*    |find_uninit_var|NULLOK const OP *const obase \
                |NULLOK const SV *const uninit_sv|bool top
 #endif
 
-#ifdef PERL_NEED_MY_HTOLE16
-np     |U16    |my_htole16     |U16 n
-#endif
-#ifdef PERL_NEED_MY_LETOH16
-np     |U16    |my_letoh16     |U16 n
-#endif
-#ifdef PERL_NEED_MY_HTOBE16
-np     |U16    |my_htobe16     |U16 n
-#endif
-#ifdef PERL_NEED_MY_BETOH16
-np     |U16    |my_betoh16     |U16 n
-#endif
-#ifdef PERL_NEED_MY_HTOLE32
-np     |U32    |my_htole32     |U32 n
-#endif
-#ifdef PERL_NEED_MY_LETOH32
-np     |U32    |my_letoh32     |U32 n
-#endif
-#ifdef PERL_NEED_MY_HTOBE32
-np     |U32    |my_htobe32     |U32 n
-#endif
-#ifdef PERL_NEED_MY_BETOH32
-np     |U32    |my_betoh32     |U32 n
-#endif
-#ifdef PERL_NEED_MY_HTOLE64
-np     |U64    |my_htole64     |U64 n
-#endif
-#ifdef PERL_NEED_MY_LETOH64
-np     |U64    |my_letoh64     |U64 n
-#endif
-#ifdef PERL_NEED_MY_HTOBE64
-np     |U64    |my_htobe64     |U64 n
-#endif
-#ifdef PERL_NEED_MY_BETOH64
-np     |U64    |my_betoh64     |U64 n
-#endif
-
-#ifdef PERL_NEED_MY_HTOLES
-np     |short  |my_htoles      |short n
-#endif
-#ifdef PERL_NEED_MY_LETOHS
-np     |short  |my_letohs      |short n
-#endif
-#ifdef PERL_NEED_MY_HTOBES
-np     |short  |my_htobes      |short n
-#endif
-#ifdef PERL_NEED_MY_BETOHS
-np     |short  |my_betohs      |short n
-#endif
-#ifdef PERL_NEED_MY_HTOLEI
-np     |int    |my_htolei      |int n
-#endif
-#ifdef PERL_NEED_MY_LETOHI
-np     |int    |my_letohi      |int n
-#endif
-#ifdef PERL_NEED_MY_HTOBEI
-np     |int    |my_htobei      |int n
-#endif
-#ifdef PERL_NEED_MY_BETOHI
-np     |int    |my_betohi      |int n
-#endif
-#ifdef PERL_NEED_MY_HTOLEL
-np     |long   |my_htolel      |long n
-#endif
-#ifdef PERL_NEED_MY_LETOHL
-np     |long   |my_letohl      |long n
-#endif
-#ifdef PERL_NEED_MY_HTOBEL
-np     |long   |my_htobel      |long n
-#endif
-#ifdef PERL_NEED_MY_BETOHL
-np     |long   |my_betohl      |long n
-#endif
-
-: I think that these are only used by the above, which are macros, and in turn
-: currently they are only used in pp_pack.c, but this is in util.c
-np     |void   |my_swabn       |NN void* ptr|int n
-
 Ap     |GV*    |gv_fetchpvn_flags|NN const char* name|STRLEN len|I32 flags|const svtype sv_type
 Ap     |GV*    |gv_fetchsv|NN SV *name|I32 flags|const svtype sv_type
-: Only used in pp.c
-dpR    |bool   |is_gv_magical_sv|NN SV *const name_sv|U32 flags
-
-ApR    |bool   |stashpv_hvname_match|NN const COP *c|NN const HV *hv
 
 #ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
 : Used in sv.c
@@ -2340,7 +2543,6 @@ Apno     |Size_t |my_strlcpy     |NULLOK char *dst|NULLOK const char *src|Size_t
 #endif
 
 #ifdef PERL_MAD
-Mnp    |void   |pad_peg        |NN const char* s
 #if defined(PERL_IN_DUMP_C)
 sf     |void   |xmldump_attr   |I32 level|NN PerlIO *file|NN const char* pat \
                                |...
@@ -2422,7 +2624,7 @@ sd        |AV*    |mro_get_linear_isa_dfs|NN HV* stash|U32 level
 s      |void   |mro_clean_isarev|NN HV * const isa   \
                                 |NN const char * const name \
                                 |const STRLEN len \
-                                |NULLOK HV * const exceptions
+                                |NULLOK HV * const exceptions|U32 flags
 s      |void   |mro_gather_and_rename|NN HV * const stashes \
                                      |NN HV * const seen_stashes \
                                      |NULLOK HV *stash \
@@ -2438,15 +2640,13 @@ p       |void   |boot_core_mro
 Apon   |void   |sys_init       |NN int* argc|NN char*** argv
 Apon   |void   |sys_init3      |NN int* argc|NN char*** argv|NN char*** env
 Apon   |void   |sys_term
-ApoM   |const char *|fetch_cop_label|NN COP *const cop \
+ApoM   |const char *|cop_fetch_label|NN COP *const cop \
                |NULLOK STRLEN *len|NULLOK U32 *flags
-: Only used  in op.c
-xpoM   |void|store_cop_label \
+: Only used  in op.c and the perl compiler
+ApoM   |void|cop_store_label \
                |NN COP *const cop|NN const char *label|STRLEN len|U32 flags
 
 xpo    |int    |keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP** op_ptr
-: Used in perly.y
-xp     |void   |munge_qwlist_to_paren_list|NN OP* qwlist
 
 #if defined(USE_ITHREADS)
 #  if defined(PERL_IN_SV_C)
@@ -2461,6 +2661,7 @@ Anop      |void   |clone_params_del|NN CLONE_PARAMS *param
 op     |void   |populate_isa   |NN const char *name|STRLEN len|...
 
 : Used in keywords.c and toke.c
-op     |bool   |feature_is_enabled|NN const char *const name|STRLEN namelen
+Xop    |bool   |feature_is_enabled|NN const char *const name \
+               |STRLEN namelen
 
 : ex: set ts=8 sts=4 sw=4 noet:
index 4d7882c..9b8602b 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 2 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:44 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -29,11 +23,11 @@ __UNDEFINED__ HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) :
 
 char*
 HvNAME_get(hv)
-       HV *hv
+        HV *hv
 
 int
 HvNAMELEN_get(hv)
-       HV *hv
+        HV *hv
 
 =tests plan => 4
 
@@ -42,4 +36,3 @@ ok(Devel::PPPort::HvNAME_get({}), undef);
 
 ok(Devel::PPPort::HvNAMELEN_get(\%Devel::PPPort::), length('Devel::PPPort'));
 ok(Devel::PPPort::HvNAMELEN_get({}), 0);
-
index 8e1cb4f..efd8ca1 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 17 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:48 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -64,64 +58,64 @@ _aMY_CXT
 #if { VERSION < 5.004_68 }
 /* Fetches the SV that keeps the per-interpreter data. */
 #define dMY_CXT_SV \
-       SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE)
+        SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE)
 #else /* >= perl5.004_68 */
 #define dMY_CXT_SV \
-       SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY,             \
-                                 sizeof(MY_CXT_KEY)-1, TRUE)
+        SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY,             \
+                                  sizeof(MY_CXT_KEY)-1, TRUE)
 #endif /* < perl5.004_68 */
 
 /* This declaration should be used within all functions that use the
  * interpreter-local data. */
-#define dMY_CXT        \
-       dMY_CXT_SV;                                                     \
-       my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv))
+#define dMY_CXT \
+        dMY_CXT_SV;                                                     \
+        my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv))
 
 /* Creates and zeroes the per-interpreter data.
  * (We allocate my_cxtp in a Perl SV so that it will be released when
  * the interpreter goes away.) */
 #define MY_CXT_INIT \
-       dMY_CXT_SV;                                                     \
-       /* newSV() allocates one more than needed */                    \
-       my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
-       Zero(my_cxtp, 1, my_cxt_t);                                     \
-       sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
+        dMY_CXT_SV;                                                     \
+        /* newSV() allocates one more than needed */                    \
+        my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
+        Zero(my_cxtp, 1, my_cxt_t);                                     \
+        sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
 
 /* This macro must be used to access members of the my_cxt_t structure.
  * e.g. MYCXT.some_data */
-#define MY_CXT         (*my_cxtp)
+#define MY_CXT          (*my_cxtp)
 
 /* Judicious use of these macros can reduce the number of times dMY_CXT
  * is used.  Use is similar to pTHX, aTHX etc. */
-#define pMY_CXT                my_cxt_t *my_cxtp
-#define pMY_CXT_       pMY_CXT,
-#define _pMY_CXT       ,pMY_CXT
-#define aMY_CXT                my_cxtp
-#define aMY_CXT_       aMY_CXT,
-#define _aMY_CXT       ,aMY_CXT
+#define pMY_CXT         my_cxt_t *my_cxtp
+#define pMY_CXT_        pMY_CXT,
+#define _pMY_CXT        ,pMY_CXT
+#define aMY_CXT         my_cxtp
+#define aMY_CXT_        aMY_CXT,
+#define _aMY_CXT        ,aMY_CXT
 
 #endif /* START_MY_CXT */
 
 #ifndef MY_CXT_CLONE
 /* Clones the per-interpreter data. */
 #define MY_CXT_CLONE \
-       dMY_CXT_SV;                                                     \
-       my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
-       Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\
-       sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
+        dMY_CXT_SV;                                                     \
+        my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
+        Copy(INT2PTR(my_cxt_t*, SvUV(my_cxt_sv)), my_cxtp, 1, my_cxt_t);\
+        sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
 #endif
 
 #else /* single interpreter */
 
 #ifndef START_MY_CXT
 
-#define START_MY_CXT   static my_cxt_t my_cxt;
-#define dMY_CXT_SV     dNOOP
-#define dMY_CXT                dNOOP
-#define MY_CXT_INIT    NOOP
-#define MY_CXT         my_cxt
+#define START_MY_CXT    static my_cxt_t my_cxt;
+#define dMY_CXT_SV      dNOOP
+#define dMY_CXT         dNOOP
+#define MY_CXT_INIT     NOOP
+#define MY_CXT          my_cxt
 
-#define pMY_CXT                void
+#define pMY_CXT         void
 #define pMY_CXT_
 #define _pMY_CXT
 #define aMY_CXT
@@ -131,7 +125,7 @@ _aMY_CXT
 #endif /* START_MY_CXT */
 
 #ifndef MY_CXT_CLONE
-#define MY_CXT_CLONE   NOOP
+#define MY_CXT_CLONE    NOOP
 #endif
 
 #endif
@@ -161,32 +155,31 @@ START_MY_CXT
 
 int
 MY_CXT_1()
-       CODE:
-               dMY_CXT;
-               RETVAL = MY_CXT.dummy == 42;
-               ++MY_CXT.dummy;
-       OUTPUT:
-               RETVAL
+        CODE:
+                dMY_CXT;
+                RETVAL = MY_CXT.dummy == 42;
+                ++MY_CXT.dummy;
+        OUTPUT:
+                RETVAL
 
 int
 MY_CXT_2()
-       CODE:
-               dMY_CXT;
-               RETVAL = MY_CXT.dummy == 43;
-       OUTPUT:
-               RETVAL
+        CODE:
+                dMY_CXT;
+                RETVAL = MY_CXT.dummy == 43;
+        OUTPUT:
+                RETVAL
 
 int
 MY_CXT_CLONE()
-       CODE:
-               MY_CXT_CLONE;
-               RETVAL = 42;
-       OUTPUT:
-               RETVAL
+        CODE:
+                MY_CXT_CLONE;
+                RETVAL = 42;
+        OUTPUT:
+                RETVAL
 
 =tests plan => 3
 
 ok(&Devel::PPPort::MY_CXT_1());
 ok(&Devel::PPPort::MY_CXT_2());
 ok(&Devel::PPPort::MY_CXT_CLONE());
-
index 4894c3c..1034072 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 23 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:47 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -95,16 +89,16 @@ __UNDEFINED__  sv_2pvbyte_nolen(sv)  sv_2pv_nolen(sv)
  */
 
 /* If these are undefined, they're not handled by the core anyway */
-__UNDEFINED__  SV_IMMEDIATE_UNREF      0
-__UNDEFINED__  SV_GMAGIC               0
-__UNDEFINED__  SV_COW_DROP_PV          0
-__UNDEFINED__  SV_UTF8_NO_ENCODING     0
-__UNDEFINED__  SV_NOSTEAL              0
-__UNDEFINED__  SV_CONST_RETURN         0
-__UNDEFINED__  SV_MUTABLE_RETURN       0
-__UNDEFINED__  SV_SMAGIC               0
-__UNDEFINED__  SV_HAS_TRAILING_NUL     0
-__UNDEFINED__  SV_COW_SHARED_HASH_KEYS 0
+__UNDEFINED__  SV_IMMEDIATE_UNREF       0
+__UNDEFINED__  SV_GMAGIC                0
+__UNDEFINED__  SV_COW_DROP_PV           0
+__UNDEFINED__  SV_UTF8_NO_ENCODING      0
+__UNDEFINED__  SV_NOSTEAL               0
+__UNDEFINED__  SV_CONST_RETURN          0
+__UNDEFINED__  SV_MUTABLE_RETURN        0
+__UNDEFINED__  SV_SMAGIC                0
+__UNDEFINED__  SV_HAS_TRAILING_NUL      0
+__UNDEFINED__  SV_COW_SHARED_HASH_KEYS  0
 
 #if { VERSION < 5.7.2 }
 
@@ -190,6 +184,8 @@ __UNDEFINED__  SvPV_nolen_const(sv) \
 __UNDEFINED__  SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0)
 __UNDEFINED__  SvPV_nomg_const(sv, lp) SvPV_flags_const(sv, lp, 0)
 __UNDEFINED__  SvPV_nomg_const_nolen(sv) SvPV_flags_const_nolen(sv, 0)
+__UNDEFINED__  SvPV_nomg_nolen(sv) ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+                                    ? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, 0))
 
 __UNDEFINED__  SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \
                  SvPV_set((sv), (char *) saferealloc(          \
@@ -206,256 +202,268 @@ __UNDEFINED__  SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \
 
 IV
 SvPVbyte(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPVbyte(sv, len);
-               RETVAL = strEQ(str, "mhx") ? (IV) len : (IV) -1;
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPVbyte(sv, len);
+                RETVAL = strEQ(str, "mhx") ? (IV) len : (IV) -1;
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_nolen(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-       CODE:
-               str = SvPV_nolen(sv);
-               RETVAL = strEQ(str, "mhx") ? 42 : 0;
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+        CODE:
+                str = SvPV_nolen(sv);
+                RETVAL = strEQ(str, "mhx") ? 42 : 0;
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_const(sv)
-       SV *sv
-       PREINIT:
-               const char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_const(sv, len);
-               RETVAL = len + (strEQ(str, "mhx") ? 40 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                const char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_const(sv, len);
+                RETVAL = len + (strEQ(str, "mhx") ? 40 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_mutable(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_mutable(sv, len);
-               RETVAL = len + (strEQ(str, "mhx") ? 41 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_mutable(sv, len);
+                RETVAL = len + (strEQ(str, "mhx") ? 41 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_flags(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_flags(sv, len, SV_GMAGIC);
-               RETVAL = len + (strEQ(str, "mhx") ? 42 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_flags(sv, len, SV_GMAGIC);
+                RETVAL = len + (strEQ(str, "mhx") ? 42 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_flags_const(sv)
-       SV *sv
-       PREINIT:
-               const char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_flags_const(sv, len, SV_GMAGIC);
-               RETVAL = len + (strEQ(str, "mhx") ? 43 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                const char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_flags_const(sv, len, SV_GMAGIC);
+                RETVAL = len + (strEQ(str, "mhx") ? 43 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_flags_const_nolen(sv)
-       SV *sv
-       PREINIT:
-               const char *str;
-       CODE:
-               str = SvPV_flags_const_nolen(sv, SV_GMAGIC);
-               RETVAL = strEQ(str, "mhx") ? 47 : 0;
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                const char *str;
+        CODE:
+                str = SvPV_flags_const_nolen(sv, SV_GMAGIC);
+                RETVAL = strEQ(str, "mhx") ? 47 : 0;
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_flags_mutable(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_flags_mutable(sv, len, SV_GMAGIC);
-               RETVAL = len + (strEQ(str, "mhx") ? 45 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_flags_mutable(sv, len, SV_GMAGIC);
+                RETVAL = len + (strEQ(str, "mhx") ? 45 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_force(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_force(sv, len);
-               RETVAL = len + (strEQ(str, "mhx") ? 46 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_force(sv, len);
+                RETVAL = len + (strEQ(str, "mhx") ? 46 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_force_nolen(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-       CODE:
-               str = SvPV_force_nolen(sv);
-               RETVAL = strEQ(str, "mhx") ? 50 : 0;
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+        CODE:
+                str = SvPV_force_nolen(sv);
+                RETVAL = strEQ(str, "mhx") ? 50 : 0;
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_force_mutable(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_force_mutable(sv, len);
-               RETVAL = len + (strEQ(str, "mhx") ? 48 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_force_mutable(sv, len);
+                RETVAL = len + (strEQ(str, "mhx") ? 48 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_force_nomg(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_force_nomg(sv, len);
-               RETVAL = len + (strEQ(str, "mhx") ? 49 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_force_nomg(sv, len);
+                RETVAL = len + (strEQ(str, "mhx") ? 49 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_force_nomg_nolen(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-       CODE:
-               str = SvPV_force_nomg_nolen(sv);
-               RETVAL = strEQ(str, "mhx") ? 53 : 0;
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+        CODE:
+                str = SvPV_force_nomg_nolen(sv);
+                RETVAL = strEQ(str, "mhx") ? 53 : 0;
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_force_flags(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_force_flags(sv, len, SV_GMAGIC);
-               RETVAL = len + (strEQ(str, "mhx") ? 51 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_force_flags(sv, len, SV_GMAGIC);
+                RETVAL = len + (strEQ(str, "mhx") ? 51 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_force_flags_nolen(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-       CODE:
-               str = SvPV_force_flags_nolen(sv, SV_GMAGIC);
-               RETVAL = strEQ(str, "mhx") ? 55 : 0;
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+        CODE:
+                str = SvPV_force_flags_nolen(sv, SV_GMAGIC);
+                RETVAL = strEQ(str, "mhx") ? 55 : 0;
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_force_flags_mutable(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_force_flags_mutable(sv, len, SV_GMAGIC);
-               RETVAL = len + (strEQ(str, "mhx") ? 53 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_force_flags_mutable(sv, len, SV_GMAGIC);
+                RETVAL = len + (strEQ(str, "mhx") ? 53 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_nolen_const(sv)
-       SV *sv
-       PREINIT:
-               const char *str;
-       CODE:
-               str = SvPV_nolen_const(sv);
-               RETVAL = strEQ(str, "mhx") ? 57 : 0;
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                const char *str;
+        CODE:
+                str = SvPV_nolen_const(sv);
+                RETVAL = strEQ(str, "mhx") ? 57 : 0;
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_nomg(sv)
-       SV *sv
-       PREINIT:
-               char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_nomg(sv, len);
-               RETVAL = len + (strEQ(str, "mhx") ? 55 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_nomg(sv, len);
+                RETVAL = len + (strEQ(str, "mhx") ? 55 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_nomg_const(sv)
-       SV *sv
-       PREINIT:
-               const char *str;
-               STRLEN len;
-       CODE:
-               str = SvPV_nomg_const(sv, len);
-               RETVAL = len + (strEQ(str, "mhx") ? 56 : 0);
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                const char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_nomg_const(sv, len);
+                RETVAL = len + (strEQ(str, "mhx") ? 56 : 0);
+        OUTPUT:
+                RETVAL
 
 IV
 SvPV_nomg_const_nolen(sv)
-       SV *sv
-       PREINIT:
-               const char *str;
-       CODE:
-               str = SvPV_nomg_const_nolen(sv);
-               RETVAL = strEQ(str, "mhx") ? 60 : 0;
-       OUTPUT:
-               RETVAL
+        SV *sv
+        PREINIT:
+                const char *str;
+        CODE:
+                str = SvPV_nomg_const_nolen(sv);
+                RETVAL = strEQ(str, "mhx") ? 60 : 0;
+        OUTPUT:
+                RETVAL
+
+IV
+SvPV_nomg_nolen(sv)
+        SV *sv
+        PREINIT:
+                char *str;
+                STRLEN len;
+        CODE:
+                str = SvPV_nomg_nolen(sv);
+                RETVAL = strEQ(str, "mhx") ? 61 : 0;
+        OUTPUT:
+                RETVAL
 
 void
 SvPV_renew(sv, nlen, insv)
-       SV *sv
-       IV nlen
-       SV *insv
-       PREINIT:
-               STRLEN slen;
-               const char *str;
-       PPCODE:
-               str = SvPV_const(insv, slen);
-               XPUSHs(sv);
-               mXPUSHi(SvLEN(sv));
-               SvPV_renew(sv, nlen);
-               Copy(str, SvPVX(sv), slen + 1, char);
-               SvCUR_set(sv, slen);
-               mXPUSHi(SvLEN(sv));
-
-
-=tests plan => 47
+        SV *sv
+        IV nlen
+        SV *insv
+        PREINIT:
+                STRLEN slen;
+                const char *str;
+        PPCODE:
+                str = SvPV_const(insv, slen);
+                XPUSHs(sv);
+                mXPUSHi(SvLEN(sv));
+                SvPV_renew(sv, nlen);
+                Copy(str, SvPVX(sv), slen + 1, char);
+                SvCUR_set(sv, slen);
+                mXPUSHi(SvLEN(sv));
+
+
+=tests plan => 49
 
 my $mhx = "mhx";
 
@@ -485,6 +493,7 @@ ok(&Devel::PPPort::SvPV_nolen_const($mhx), $i++);
 ok(&Devel::PPPort::SvPV_nomg($mhx), $i++);
 ok(&Devel::PPPort::SvPV_nomg_const($mhx), $i++);
 ok(&Devel::PPPort::SvPV_nomg_const_nolen($mhx), $i++);
+ok(&Devel::PPPort::SvPV_nomg_nolen($mhx), $i++);
 
 $mhx = 42; ok(&Devel::PPPort::SvPV_nolen($mhx), 0);
 $mhx = 42; ok(&Devel::PPPort::SvPV_const($mhx), 2);
@@ -508,6 +517,7 @@ $mhx = 42; ok(&Devel::PPPort::SvPV_nolen_const($mhx), 0);
 $mhx = 42; ok(&Devel::PPPort::SvPV_nomg($mhx), 2);
 $mhx = 42; ok(&Devel::PPPort::SvPV_nomg_const($mhx), 2);
 $mhx = 42; ok(&Devel::PPPort::SvPV_nomg_const_nolen($mhx), 0);
+$mhx = 42; ok(&Devel::PPPort::SvPV_nomg_nolen($mhx), 0);
 
 my $str = "";
 &Devel::PPPort::SvPV_force($str);
index 3a2f849..422aa58 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 6 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:45 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -27,26 +21,26 @@ __UNDEFINED__
 
 #ifndef SvREFCNT_inc
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc(sv)           \
-      ({                               \
-          SV * const _sv = (SV*)(sv);  \
-          if (_sv)                     \
-               (SvREFCNT(_sv))++;      \
-          _sv;                         \
+#    define SvREFCNT_inc(sv)            \
+      ({                                \
+          SV * const _sv = (SV*)(sv);   \
+          if (_sv)                      \
+               (SvREFCNT(_sv))++;       \
+          _sv;                          \
       })
 #  else
-#    define SvREFCNT_inc(sv)   \
+#    define SvREFCNT_inc(sv)    \
           ((PL_Sv=(SV*)(sv)) ? (++(SvREFCNT(PL_Sv)),PL_Sv) : NULL)
 #  endif
 #endif
 
 #ifndef SvREFCNT_inc_simple
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc_simple(sv)    \
-      ({                                       \
-          if (sv)                              \
-               (SvREFCNT(sv))++;               \
-          (SV *)(sv);                          \
+#    define SvREFCNT_inc_simple(sv)     \
+      ({                                        \
+          if (sv)                               \
+               (SvREFCNT(sv))++;                \
+          (SV *)(sv);                           \
       })
 #  else
 #    define SvREFCNT_inc_simple(sv) \
@@ -56,11 +50,11 @@ __UNDEFINED__
 
 #ifndef SvREFCNT_inc_NN
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc_NN(sv)                \
-      ({                                       \
-          SV * const _sv = (SV*)(sv);  \
-          SvREFCNT(_sv)++;             \
-          _sv;                         \
+#    define SvREFCNT_inc_NN(sv)         \
+      ({                                        \
+          SV * const _sv = (SV*)(sv);   \
+          SvREFCNT(_sv)++;              \
+          _sv;                          \
       })
 #  else
 #    define SvREFCNT_inc_NN(sv) \
@@ -70,11 +64,11 @@ __UNDEFINED__
 
 #ifndef SvREFCNT_inc_void
 #  ifdef PERL_USE_GCC_BRACE_GROUPS
-#    define SvREFCNT_inc_void(sv)              \
-      ({                                       \
-          SV * const _sv = (SV*)(sv);  \
-          if (_sv)                     \
-              (void)(SvREFCNT(_sv)++); \
+#    define SvREFCNT_inc_void(sv)               \
+      ({                                        \
+          SV * const _sv = (SV*)(sv);   \
+          if (_sv)                      \
+              (void)(SvREFCNT(_sv)++);  \
       })
 #  else
 #    define SvREFCNT_inc_void(sv) \
@@ -82,49 +76,48 @@ __UNDEFINED__
 #  endif
 #endif
 
-__UNDEFINED__  SvREFCNT_inc_simple_void(sv)    STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END
-__UNDEFINED__  SvREFCNT_inc_simple_NN(sv)      (++SvREFCNT(sv), (SV*)(sv))
-__UNDEFINED__  SvREFCNT_inc_void_NN(sv)                (void)(++SvREFCNT((SV*)(sv)))
-__UNDEFINED__  SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv)))
+__UNDEFINED__  SvREFCNT_inc_simple_void(sv)     STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END
+__UNDEFINED__  SvREFCNT_inc_simple_NN(sv)       (++SvREFCNT(sv), (SV*)(sv))
+__UNDEFINED__  SvREFCNT_inc_void_NN(sv)         (void)(++SvREFCNT((SV*)(sv)))
+__UNDEFINED__  SvREFCNT_inc_simple_void_NN(sv)  (void)(++SvREFCNT((SV*)(sv)))
 
 =xsubs
 
 void
 SvREFCNT()
-       PREINIT:
-               SV *sv, *svr;
-       PPCODE:
-               sv = newSV(0);
-               mXPUSHi(SvREFCNT(sv) == 1);
-               svr = SvREFCNT_inc(sv);
-               mXPUSHi(sv == svr);
-               mXPUSHi(SvREFCNT(sv) == 2);
-               svr = SvREFCNT_inc_simple(sv);
-               mXPUSHi(sv == svr);
-               mXPUSHi(SvREFCNT(sv) == 3);
-               svr = SvREFCNT_inc_NN(sv);
-               mXPUSHi(sv == svr);
-               mXPUSHi(SvREFCNT(sv) == 4);
-               svr = SvREFCNT_inc_simple_NN(sv);
-               mXPUSHi(sv == svr);
-               mXPUSHi(SvREFCNT(sv) == 5);
-               SvREFCNT_inc_void(sv);
-               mXPUSHi(SvREFCNT(sv) == 6);
-               SvREFCNT_inc_simple_void(sv);
-               mXPUSHi(SvREFCNT(sv) == 7);
-               SvREFCNT_inc_void_NN(sv);
-               mXPUSHi(SvREFCNT(sv) == 8);
-               SvREFCNT_inc_simple_void_NN(sv);
-               mXPUSHi(SvREFCNT(sv) == 9);
-               while (SvREFCNT(sv) > 1)
-                 SvREFCNT_dec(sv);
-               mXPUSHi(SvREFCNT(sv) == 1);
-               SvREFCNT_dec(sv);
-               XSRETURN(14);
+        PREINIT:
+                SV *sv, *svr;
+        PPCODE:
+                sv = newSV(0);
+                mXPUSHi(SvREFCNT(sv) == 1);
+                svr = SvREFCNT_inc(sv);
+                mXPUSHi(sv == svr);
+                mXPUSHi(SvREFCNT(sv) == 2);
+                svr = SvREFCNT_inc_simple(sv);
+                mXPUSHi(sv == svr);
+                mXPUSHi(SvREFCNT(sv) == 3);
+                svr = SvREFCNT_inc_NN(sv);
+                mXPUSHi(sv == svr);
+                mXPUSHi(SvREFCNT(sv) == 4);
+                svr = SvREFCNT_inc_simple_NN(sv);
+                mXPUSHi(sv == svr);
+                mXPUSHi(SvREFCNT(sv) == 5);
+                SvREFCNT_inc_void(sv);
+                mXPUSHi(SvREFCNT(sv) == 6);
+                SvREFCNT_inc_simple_void(sv);
+                mXPUSHi(SvREFCNT(sv) == 7);
+                SvREFCNT_inc_void_NN(sv);
+                mXPUSHi(SvREFCNT(sv) == 8);
+                SvREFCNT_inc_simple_void_NN(sv);
+                mXPUSHi(SvREFCNT(sv) == 9);
+                while (SvREFCNT(sv) > 1)
+                  SvREFCNT_dec(sv);
+                mXPUSHi(SvREFCNT(sv) == 1);
+                SvREFCNT_dec(sv);
+                XSRETURN(14);
 
 =tests plan => 14
 
 for (Devel::PPPort::SvREFCNT()) {
   ok(defined $_ and $_);
 }
-
index 2c2ff44..30452ae 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 8 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:46 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -67,13 +61,13 @@ __UNDEFINED__ SvUV_set(sv, val) \
 
 IV
 TestSvUV_set(sv, val)
-       SV *sv
-       UV val
-       CODE:
-               SvUV_set(sv, val);
-               RETVAL = SvUVX(sv) == val ? 42 : -1;
-       OUTPUT:
-               RETVAL
+        SV *sv
+        UV val
+        CODE:
+                SvUV_set(sv, val);
+                RETVAL = SvUVX(sv) == val ? 42 : -1;
+        OUTPUT:
+                RETVAL
 
 IV
 TestSvPVX_const(sv)
@@ -94,10 +88,10 @@ TestSvPVX_mutable(sv)
 void
 TestSvSTASH_set(sv, name)
         SV *sv
-       char *name
+        char *name
         CODE:
-               sv = SvRV(sv);
-               SvREFCNT_dec(SvSTASH(sv));
+                sv = SvRV(sv);
+                SvREFCNT_dec(SvSTASH(sv));
                 SvSTASH_set(sv, (HV*) SvREFCNT_inc(gv_stashpv(name, 0)));
 
 =tests plan => 5
index d8f2046..6ccd9e7 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 20 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:46 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -38,21 +32,21 @@ __UNDEFINED__  call_method   perl_call_method
 __UNDEFINED__  eval_sv       perl_eval_sv
 /* Replace: 0 */
 
-__UNDEFINED__ PERL_LOADMOD_DENY                0x1
-__UNDEFINED__ PERL_LOADMOD_NOIMPORT    0x2
-__UNDEFINED__ PERL_LOADMOD_IMPORT_OPS  0x4
+__UNDEFINED__ PERL_LOADMOD_DENY         0x1
+__UNDEFINED__ PERL_LOADMOD_NOIMPORT     0x2
+__UNDEFINED__ PERL_LOADMOD_IMPORT_OPS   0x4
 
 #ifndef G_METHOD
-# define G_METHOD              64
+# define G_METHOD               64
 # ifdef call_sv
 #  undef call_sv
 # endif
 # if { VERSION < 5.6.0 }
 #  define call_sv(sv, flags)  ((flags) & G_METHOD ? perl_call_method((char *) SvPV_nolen_const(sv), \
-                               (flags) & ~G_METHOD) : perl_call_sv(sv, flags))
+                                (flags) & ~G_METHOD) : perl_call_sv(sv, flags))
 # else
 #  define call_sv(sv, flags)  ((flags) & G_METHOD ? Perl_call_method(aTHX_ (char *) SvPV_nolen_const(sv), \
-                               (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags))
+                                (flags) & ~G_METHOD) : Perl_call_sv(aTHX_ sv, flags))
 # endif
 #endif
 
@@ -76,7 +70,7 @@ eval_pv(char *p, I32 croak_on_error)
     PUTBACK;
 
     if (croak_on_error && SvTRUE(GvSV(errgv)))
-       croak(SvPVx(GvSV(errgv), na));
+        croak(SvPVx(GvSV(errgv), na));
 
     return sv;
 }
@@ -103,40 +97,40 @@ vload_module(U32 flags, SV *name, SV *ver, va_list *args)
     SvREADONLY_off(((SVOP*)modname)->op_sv);
     modname->op_private |= OPpCONST_BARE;
     if (ver) {
-       veop = newSVOP(OP_CONST, 0, ver);
+        veop = newSVOP(OP_CONST, 0, ver);
     }
     else
-       veop = NULL;
+        veop = NULL;
     if (flags & PERL_LOADMOD_NOIMPORT) {
-       imop = sawparens(newNULLLIST());
+        imop = sawparens(newNULLLIST());
     }
     else if (flags & PERL_LOADMOD_IMPORT_OPS) {
-       imop = va_arg(*args, OP*);
+        imop = va_arg(*args, OP*);
     }
     else {
-       SV *sv;
-       imop = NULL;
-       sv = va_arg(*args, SV*);
-       while (sv) {
-           imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv));
-           sv = va_arg(*args, SV*);
-       }
+        SV *sv;
+        imop = NULL;
+        sv = va_arg(*args, SV*);
+        while (sv) {
+            imop = append_elem(OP_LIST, imop, newSVOP(OP_CONST, 0, sv));
+            sv = va_arg(*args, SV*);
+        }
     }
     {
-       const line_t ocopline = PL_copline;
-       COP * const ocurcop = PL_curcop;
-       const int oexpect = PL_expect;
+        const line_t ocopline = PL_copline;
+        COP * const ocurcop = PL_curcop;
+        const int oexpect = PL_expect;
 
 #if { VERSION >= 5.004 }
-       utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
-               veop, modname, imop);
+        utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
+                veop, modname, imop);
 #else
-       utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
-               modname, imop);
+        utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(),
+                modname, imop);
 #endif
-       PL_expect = oexpect;
-       PL_copline = ocopline;
-       PL_curcop = ocurcop;
+        PL_expect = oexpect;
+        PL_copline = ocopline;
+        PL_curcop = ocurcop;
     }
 }
 
@@ -168,144 +162,144 @@ load_module(U32 flags, SV *name, SV *ver, ...)
 
 I32
 G_SCALAR()
-       CODE:
-               RETVAL = G_SCALAR;
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = G_SCALAR;
+        OUTPUT:
+                RETVAL
 
 I32
 G_ARRAY()
-       CODE:
-               RETVAL = G_ARRAY;
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = G_ARRAY;
+        OUTPUT:
+                RETVAL
 
 I32
 G_DISCARD()
-       CODE:
-               RETVAL = G_DISCARD;
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = G_DISCARD;
+        OUTPUT:
+                RETVAL
 
 void
 eval_sv(sv, flags)
-       SV* sv
-       I32 flags
-       PREINIT:
-               I32 i;
-       PPCODE:
-               PUTBACK;
-               i = eval_sv(sv, flags);
-               SPAGAIN;
-               EXTEND(SP, 1);
-               mPUSHi(i);
+        SV* sv
+        I32 flags
+        PREINIT:
+                I32 i;
+        PPCODE:
+                PUTBACK;
+                i = eval_sv(sv, flags);
+                SPAGAIN;
+                EXTEND(SP, 1);
+                mPUSHi(i);
 
 void
 eval_pv(p, croak_on_error)
-       char* p
-       I32 croak_on_error
-       PPCODE:
-               PUTBACK;
-               EXTEND(SP, 1);
-               PUSHs(eval_pv(p, croak_on_error));
+        char* p
+        I32 croak_on_error
+        PPCODE:
+                PUTBACK;
+                EXTEND(SP, 1);
+                PUSHs(eval_pv(p, croak_on_error));
 
 void
 call_sv(sv, flags, ...)
-       SV* sv
-       I32 flags
-       PREINIT:
-               I32 i;
-       PPCODE:
-               for (i=0; i<items-2; i++)
-                 ST(i) = ST(i+2); /* pop first two args */
-               PUSHMARK(SP);
-               SP += items - 2;
-               PUTBACK;
-               i = call_sv(sv, flags);
-               SPAGAIN;
-               EXTEND(SP, 1);
-               mPUSHi(i);
+        SV* sv
+        I32 flags
+        PREINIT:
+                I32 i;
+        PPCODE:
+                for (i=0; i<items-2; i++)
+                  ST(i) = ST(i+2); /* pop first two args */
+                PUSHMARK(SP);
+                SP += items - 2;
+                PUTBACK;
+                i = call_sv(sv, flags);
+                SPAGAIN;
+                EXTEND(SP, 1);
+                mPUSHi(i);
 
 void
 call_pv(subname, flags, ...)
-       char* subname
-       I32 flags
-       PREINIT:
-               I32 i;
-       PPCODE:
-               for (i=0; i<items-2; i++)
-                 ST(i) = ST(i+2); /* pop first two args */
-               PUSHMARK(SP);
-               SP += items - 2;
-               PUTBACK;
-               i = call_pv(subname, flags);
-               SPAGAIN;
-               EXTEND(SP, 1);
-               mPUSHi(i);
+        char* subname
+        I32 flags
+        PREINIT:
+                I32 i;
+        PPCODE:
+                for (i=0; i<items-2; i++)
+                  ST(i) = ST(i+2); /* pop first two args */
+                PUSHMARK(SP);
+                SP += items - 2;
+                PUTBACK;
+                i = call_pv(subname, flags);
+                SPAGAIN;
+                EXTEND(SP, 1);
+                mPUSHi(i);
 
 void
 call_argv(subname, flags, ...)
-       char* subname
-       I32 flags
-       PREINIT:
-               I32 i;
-               char *args[8];
-       PPCODE:
-               if (items > 8)  /* play safe */
-                 XSRETURN_UNDEF;
-               for (i=2; i<items; i++)
-                 args[i-2] = SvPV_nolen(ST(i));
-               args[items-2] = NULL;
-               PUTBACK;
-               i = call_argv(subname, flags, args);
-               SPAGAIN;
-               EXTEND(SP, 1);
-               mPUSHi(i);
+        char* subname
+        I32 flags
+        PREINIT:
+                I32 i;
+                char *args[8];
+        PPCODE:
+                if (items > 8)  /* play safe */
+                  XSRETURN_UNDEF;
+                for (i=2; i<items; i++)
+                  args[i-2] = SvPV_nolen(ST(i));
+                args[items-2] = NULL;
+                PUTBACK;
+                i = call_argv(subname, flags, args);
+                SPAGAIN;
+                EXTEND(SP, 1);
+                mPUSHi(i);
 
 void
 call_method(methname, flags, ...)
-       char* methname
-       I32 flags
-       PREINIT:
-               I32 i;
-       PPCODE:
-               for (i=0; i<items-2; i++)
-                 ST(i) = ST(i+2); /* pop first two args */
-               PUSHMARK(SP);
-               SP += items - 2;
-               PUTBACK;
-               i = call_method(methname, flags);
-               SPAGAIN;
-               EXTEND(SP, 1);
-               mPUSHi(i);
+        char* methname
+        I32 flags
+        PREINIT:
+                I32 i;
+        PPCODE:
+                for (i=0; i<items-2; i++)
+                  ST(i) = ST(i+2); /* pop first two args */
+                PUSHMARK(SP);
+                SP += items - 2;
+                PUTBACK;
+                i = call_method(methname, flags);
+                SPAGAIN;
+                EXTEND(SP, 1);
+                mPUSHi(i);
 
 void
 call_sv_G_METHOD(sv, flags, ...)
-       SV* sv
-       I32 flags
-       PREINIT:
-               I32 i;
-       PPCODE:
-               for (i=0; i<items-2; i++)
-                 ST(i) = ST(i+2); /* pop first two args */
-               PUSHMARK(SP);
-               SP += items - 2;
-               PUTBACK;
-               i = call_sv(sv, flags | G_METHOD);
-               SPAGAIN;
-               EXTEND(SP, 1);
-               mPUSHi(i);
+        SV* sv
+        I32 flags
+        PREINIT:
+                I32 i;
+        PPCODE:
+                for (i=0; i<items-2; i++)
+                  ST(i) = ST(i+2); /* pop first two args */
+                PUSHMARK(SP);
+                SP += items - 2;
+                PUTBACK;
+                i = call_sv(sv, flags | G_METHOD);
+                SPAGAIN;
+                EXTEND(SP, 1);
+                mPUSHi(i);
 
 void
 load_module(flags, name, version, ...)
-       U32 flags
-       SV *name
-       SV *version
-       CODE:
-               /* Both SV parameters are donated to the ops built inside
-                  load_module, so we need to bump the refcounts.  */
-               Perl_load_module(aTHX_ flags, SvREFCNT_inc_simple(name),
-                                SvREFCNT_inc_simple(version), NULL);
+        U32 flags
+        SV *name
+        SV *version
+        CODE:
+                /* Both SV parameters are donated to the ops built inside
+                   load_module, so we need to bump the refcounts.  */
+                Perl_load_module(aTHX_ flags, SvREFCNT_inc_simple(name),
+                                 SvREFCNT_inc_simple(version), NULL);
 
 =tests plan => 52
 
index a797109..72d8087 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 9 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:47 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -23,32 +17,32 @@ __UNDEFINED__
 
 #ifdef USE_ITHREADS
 
-__UNDEFINED__  CopFILE(c)              ((c)->cop_file)
-__UNDEFINED__  CopFILEGV(c)            (CopFILE(c) ? gv_fetchfile(CopFILE(c)) : Nullgv)
-__UNDEFINED__  CopFILE_set(c,pv)       ((c)->cop_file = savepv(pv))
-__UNDEFINED__  CopFILESV(c)            (CopFILE(c) ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv)
-__UNDEFINED__  CopFILEAV(c)            (CopFILE(c) ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav)
-__UNDEFINED__  CopSTASHPV(c)           ((c)->cop_stashpv)
-__UNDEFINED__  CopSTASHPV_set(c,pv)    ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch))
-__UNDEFINED__  CopSTASH(c)             (CopSTASHPV(c) ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv)
-__UNDEFINED__  CopSTASH_set(c,hv)      CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch)
-__UNDEFINED__  CopSTASH_eq(c,hv)       ((hv) && (CopSTASHPV(c) == HvNAME(hv) \
-                                       || (CopSTASHPV(c) && HvNAME(hv) \
-                                       && strEQ(CopSTASHPV(c), HvNAME(hv)))))
+__UNDEFINED__  CopFILE(c)               ((c)->cop_file)
+__UNDEFINED__  CopFILEGV(c)             (CopFILE(c) ? gv_fetchfile(CopFILE(c)) : Nullgv)
+__UNDEFINED__  CopFILE_set(c,pv)        ((c)->cop_file = savepv(pv))
+__UNDEFINED__  CopFILESV(c)             (CopFILE(c) ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv)
+__UNDEFINED__  CopFILEAV(c)             (CopFILE(c) ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav)
+__UNDEFINED__  CopSTASHPV(c)            ((c)->cop_stashpv)
+__UNDEFINED__  CopSTASHPV_set(c,pv)     ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch))
+__UNDEFINED__  CopSTASH(c)              (CopSTASHPV(c) ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv)
+__UNDEFINED__  CopSTASH_set(c,hv)       CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch)
+__UNDEFINED__  CopSTASH_eq(c,hv)        ((hv) && (CopSTASHPV(c) == HvNAME(hv) \
+                                        || (CopSTASHPV(c) && HvNAME(hv) \
+                                        && strEQ(CopSTASHPV(c), HvNAME(hv)))))
 
 #else
 
-__UNDEFINED__  CopFILEGV(c)            ((c)->cop_filegv)
-__UNDEFINED__  CopFILEGV_set(c,gv)     ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv))
-__UNDEFINED__  CopFILE_set(c,pv)       CopFILEGV_set((c), gv_fetchfile(pv))
-__UNDEFINED__  CopFILESV(c)            (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv)
-__UNDEFINED__  CopFILEAV(c)            (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav)
-__UNDEFINED__  CopFILE(c)              (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch)
-__UNDEFINED__  CopSTASH(c)             ((c)->cop_stash)
-__UNDEFINED__  CopSTASH_set(c,hv)      ((c)->cop_stash = (hv))
-__UNDEFINED__  CopSTASHPV(c)           (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch)
-__UNDEFINED__  CopSTASHPV_set(c,pv)    CopSTASH_set((c), gv_stashpv(pv,GV_ADD))
-__UNDEFINED__  CopSTASH_eq(c,hv)       (CopSTASH(c) == (hv))
+__UNDEFINED__  CopFILEGV(c)             ((c)->cop_filegv)
+__UNDEFINED__  CopFILEGV_set(c,gv)      ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv))
+__UNDEFINED__  CopFILE_set(c,pv)        CopFILEGV_set((c), gv_fetchfile(pv))
+__UNDEFINED__  CopFILESV(c)             (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv)
+__UNDEFINED__  CopFILEAV(c)             (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav)
+__UNDEFINED__  CopFILE(c)               (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch)
+__UNDEFINED__  CopSTASH(c)              ((c)->cop_stash)
+__UNDEFINED__  CopSTASH_set(c,hv)       ((c)->cop_stash = (hv))
+__UNDEFINED__  CopSTASHPV(c)            (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch)
+__UNDEFINED__  CopSTASHPV_set(c,pv)     CopSTASH_set((c), gv_stashpv(pv,GV_ADD))
+__UNDEFINED__  CopSTASH_eq(c,hv)        (CopSTASH(c) == (hv))
 
 #endif /* USE_ITHREADS */
 
@@ -56,17 +50,17 @@ __UNDEFINED__  CopSTASH_eq(c,hv)    (CopSTASH(c) == (hv))
 
 char *
 CopSTASHPV()
-       CODE:
-               RETVAL = CopSTASHPV(PL_curcop);
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = CopSTASHPV(PL_curcop);
+        OUTPUT:
+                RETVAL
 
 char *
 CopFILE()
-       CODE:
-               RETVAL = CopFILE(PL_curcop);
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = CopFILE(PL_curcop);
+        OUTPUT:
+                RETVAL
 
 =tests plan => 2
 
@@ -81,4 +75,3 @@ ok($package, "MyPackage");
 my $file = &Devel::PPPort::CopFILE();
 print "# $file\n";
 ok($file =~ /cop/i);
-
index 5fcc99d..8dd21cc 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 8 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:46 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
index 3a95b10..03c632d 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 10 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:48 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
 
 #ifndef IVdf
 #  if IVSIZE == LONGSIZE
-#    define    IVdf      "ld"
-#    define    UVuf      "lu"
-#    define    UVof      "lo"
-#    define    UVxf      "lx"
-#    define    UVXf      "lX"
+#    define     IVdf      "ld"
+#    define     UVuf      "lu"
+#    define     UVof      "lo"
+#    define     UVxf      "lx"
+#    define     UVXf      "lX"
+#  elif IVSIZE == INTSIZE
+#    define   IVdf      "d"
+#    define   UVuf      "u"
+#    define   UVof      "o"
+#    define   UVxf      "x"
+#    define   UVXf      "X"
 #  else
-#    if IVSIZE == INTSIZE
-#      define  IVdf      "d"
-#      define  UVuf      "u"
-#      define  UVof      "o"
-#      define  UVxf      "x"
-#      define  UVXf      "X"
-#    endif
+#    error "cannot define IV/UV formats"
 #  endif
 #endif
 
@@ -57,9 +51,9 @@
 
 void
 croak_NVgf(num)
-       NV num
-       PPCODE:
-               Perl_croak(aTHX_ "%.20" NVgf "\n", num);
+        NV num
+        PPCODE:
+                Perl_croak(aTHX_ "%.20" NVgf "\n", num);
 
 =tests plan => 1
 
@@ -67,4 +61,3 @@ my $num = 1.12345678901234567890;
 
 eval { Devel::PPPort::croak_NVgf($num) };
 ok($@ =~ /^1.1234567890/);
-
index 1db6db3..d7219fd 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 17 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:49 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -137,7 +131,7 @@ grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep)
               digit = *s - '0';
               if (digit >= 0 && digit <= 9) {
                 value = value * 10 + digit;
-               if (++s < send) {
+                if (++s < send) {
                   digit = *s - '0';
                   if (digit >= 0 && digit <= 9) {
                     value = value * 10 + digit;
@@ -185,7 +179,7 @@ grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep)
                                       }
                                     }
                                   }
-                               }
+                                }
                               }
                             }
                           }
@@ -197,7 +191,7 @@ grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep)
               }
             }
           }
-       }
+        }
       }
     }
     numtype |= IS_NUMBER_IN_UV;
@@ -337,22 +331,22 @@ grok_bin(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
                 value_nv = (NV) value;
             }
             value_nv *= 2.0;
-           /* If an NV has not enough bits in its mantissa to
-            * represent a UV this summing of small low-order numbers
-            * is a waste of time (because the NV cannot preserve
-            * the low-order bits anyway): we could just remember when
-            * did we overflow and in the end just multiply value_nv by the
-            * right amount. */
+            /* If an NV has not enough bits in its mantissa to
+             * represent a UV this summing of small low-order numbers
+             * is a waste of time (because the NV cannot preserve
+             * the low-order bits anyway): we could just remember when
+             * did we overflow and in the end just multiply value_nv by the
+             * right amount. */
             value_nv += (NV)(bit - '0');
             continue;
         }
         if (bit == '_' && len && allow_underscores && (bit = s[1])
             && (bit == '0' || bit == '1'))
-           {
-               --len;
-               ++s;
+            {
+                --len;
+                ++s;
                 goto redo;
-           }
+            }
         if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
             warn("Illegal binary digit '%c' ignored", *s);
         break;
@@ -360,10 +354,10 @@ grok_bin(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
 
     if (   ( overflowed && value_nv > 4294967295.0)
 #if UVSIZE > 4
-       || (!overflowed && value > 0xffffffff  )
+        || (!overflowed && value > 0xffffffff  )
 #endif
-       ) {
-       warn("Binary number > 0b11111111111111111111111111111111 non-portable");
+        ) {
+        warn("Binary number > 0b11111111111111111111111111111111 non-portable");
     }
     *len_p = s - start;
     if (!overflowed) {
@@ -410,7 +404,7 @@ grok_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
     }
 
     for (; len-- && *s; s++) {
-       xdigit = strchr((char *) PL_hexdigit, *s);
+        xdigit = strchr((char *) PL_hexdigit, *s);
         if (xdigit) {
             /* Write it in this wonky order with a goto to attempt to get the
                compiler to make the common case integer-only loop pretty tight.
@@ -426,22 +420,22 @@ grok_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
                 value_nv = (NV) value;
             }
             value_nv *= 16.0;
-           /* If an NV has not enough bits in its mantissa to
-            * represent a UV this summing of small low-order numbers
-            * is a waste of time (because the NV cannot preserve
-            * the low-order bits anyway): we could just remember when
-            * did we overflow and in the end just multiply value_nv by the
-            * right amount of 16-tuples. */
+            /* If an NV has not enough bits in its mantissa to
+             * represent a UV this summing of small low-order numbers
+             * is a waste of time (because the NV cannot preserve
+             * the low-order bits anyway): we could just remember when
+             * did we overflow and in the end just multiply value_nv by the
+             * right amount of 16-tuples. */
             value_nv += (NV)((xdigit - PL_hexdigit) & 15);
             continue;
         }
         if (*s == '_' && len && allow_underscores && s[1]
-               && (xdigit = strchr((char *) PL_hexdigit, s[1])))
-           {
-               --len;
-               ++s;
+                && (xdigit = strchr((char *) PL_hexdigit, s[1])))
+            {
+                --len;
+                ++s;
                 goto redo;
-           }
+            }
         if (!(*flags & PERL_SCAN_SILENT_ILLDIGIT))
             warn("Illegal hexadecimal digit '%c' ignored", *s);
         break;
@@ -449,10 +443,10 @@ grok_hex(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
 
     if (   ( overflowed && value_nv > 4294967295.0)
 #if UVSIZE > 4
-       || (!overflowed && value > 0xffffffff  )
+        || (!overflowed && value > 0xffffffff  )
 #endif
-       ) {
-       warn("Hexadecimal number > 0xffffffff non-portable");
+        ) {
+        warn("Hexadecimal number > 0xffffffff non-portable");
     }
     *len_p = s - start;
     if (!overflowed) {
@@ -501,22 +495,22 @@ grok_oct(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
                 value_nv = (NV) value;
             }
             value_nv *= 8.0;
-           /* If an NV has not enough bits in its mantissa to
-            * represent a UV this summing of small low-order numbers
-            * is a waste of time (because the NV cannot preserve
-            * the low-order bits anyway): we could just remember when
-            * did we overflow and in the end just multiply value_nv by the
-            * right amount of 8-tuples. */
+            /* If an NV has not enough bits in its mantissa to
+             * represent a UV this summing of small low-order numbers
+             * is a waste of time (because the NV cannot preserve
+             * the low-order bits anyway): we could just remember when
+             * did we overflow and in the end just multiply value_nv by the
+             * right amount of 8-tuples. */
             value_nv += (NV)digit;
             continue;
         }
         if (digit == ('_' - '0') && len && allow_underscores
             && (digit = s[1] - '0') && (digit >= 0 && digit <= 7))
-           {
-               --len;
-               ++s;
+            {
+                --len;
+                ++s;
                 goto redo;
-           }
+            }
         /* Allow \octal to work the DWIM way (that is, stop scanning
          * as soon as non-octal characters are seen, complain only iff
          * someone seems to want to use the digits eight and nine). */
@@ -529,10 +523,10 @@ grok_oct(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
 
     if (   ( overflowed && value_nv > 4294967295.0)
 #if UVSIZE > 4
-       || (!overflowed && value > 0xffffffff  )
+        || (!overflowed && value > 0xffffffff  )
 #endif
-       ) {
-       warn("Octal number > 037777777777 non-portable");
+        ) {
+        warn("Octal number > 037777777777 non-portable");
     }
     *len_p = s - start;
     if (!overflowed) {
@@ -559,107 +553,107 @@ grok_oct(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result)
 
 UV
 grok_number(string)
-       SV *string
-       PREINIT:
-               const char *pv;
-               STRLEN len;
-       CODE:
-               pv = SvPV(string, len);
-               if (!grok_number(pv, len, &RETVAL))
-                 XSRETURN_UNDEF;
-       OUTPUT:
-               RETVAL
+        SV *string
+        PREINIT:
+                const char *pv;
+                STRLEN len;
+        CODE:
+                pv = SvPV(string, len);
+                if (!grok_number(pv, len, &RETVAL))
+                  XSRETURN_UNDEF;
+        OUTPUT:
+                RETVAL
 
 UV
 grok_bin(string)
-       SV *string
-       PREINIT:
-               char *pv;
-               I32 flags;
-               STRLEN len;
-       CODE:
-               pv = SvPV(string, len);
-               RETVAL = grok_bin(pv, &len, &flags, NULL);
-       OUTPUT:
-               RETVAL
+        SV *string
+        PREINIT:
+                char *pv;
+                I32 flags;
+                STRLEN len;
+        CODE:
+                pv = SvPV(string, len);
+                RETVAL = grok_bin(pv, &len, &flags, NULL);
+        OUTPUT:
+                RETVAL
 
 UV
 grok_hex(string)
-       SV *string
-       PREINIT:
-               char *pv;
-               I32 flags;
-               STRLEN len;
-       CODE:
-               pv = SvPV(string, len);
-               RETVAL = grok_hex(pv, &len, &flags, NULL);
-       OUTPUT:
-               RETVAL
+        SV *string
+        PREINIT:
+                char *pv;
+                I32 flags;
+                STRLEN len;
+        CODE:
+                pv = SvPV(string, len);
+                RETVAL = grok_hex(pv, &len, &flags, NULL);
+        OUTPUT:
+                RETVAL
 
 UV
 grok_oct(string)
-       SV *string
-       PREINIT:
-               char *pv;
-               I32 flags;
-               STRLEN len;
-       CODE:
-               pv = SvPV(string, len);
-               RETVAL = grok_oct(pv, &len, &flags, NULL);
-       OUTPUT:
-               RETVAL
+        SV *string
+        PREINIT:
+                char *pv;
+                I32 flags;
+                STRLEN len;
+        CODE:
+                pv = SvPV(string, len);
+                RETVAL = grok_oct(pv, &len, &flags, NULL);
+        OUTPUT:
+                RETVAL
 
 UV
 Perl_grok_number(string)
-       SV *string
-       PREINIT:
-               const char *pv;
-               STRLEN len;
-       CODE:
-               pv = SvPV(string, len);
-               if (!Perl_grok_number(aTHX_ pv, len, &RETVAL))
-                 XSRETURN_UNDEF;
-       OUTPUT:
-               RETVAL
+        SV *string
+        PREINIT:
+                const char *pv;
+                STRLEN len;
+        CODE:
+                pv = SvPV(string, len);
+                if (!Perl_grok_number(aTHX_ pv, len, &RETVAL))
+                  XSRETURN_UNDEF;
+        OUTPUT:
+                RETVAL
 
 UV
 Perl_grok_bin(string)
-       SV *string
-       PREINIT:
-               char *pv;
-               I32 flags;
-               STRLEN len;
-       CODE:
-               pv = SvPV(string, len);
-               RETVAL = Perl_grok_bin(aTHX_ pv, &len, &flags, NULL);
-       OUTPUT:
-               RETVAL
+        SV *string
+        PREINIT:
+                char *pv;
+                I32 flags;
+                STRLEN len;
+        CODE:
+                pv = SvPV(string, len);
+                RETVAL = Perl_grok_bin(aTHX_ pv, &len, &flags, NULL);
+        OUTPUT:
+                RETVAL
 
 UV
 Perl_grok_hex(string)
-       SV *string
-       PREINIT:
-               char *pv;
-               I32 flags;
-               STRLEN len;
-       CODE:
-               pv = SvPV(string, len);
-               RETVAL = Perl_grok_hex(aTHX_ pv, &len, &flags, NULL);
-       OUTPUT:
-               RETVAL
+        SV *string
+        PREINIT:
+                char *pv;
+                I32 flags;
+                STRLEN len;
+        CODE:
+                pv = SvPV(string, len);
+                RETVAL = Perl_grok_hex(aTHX_ pv, &len, &flags, NULL);
+        OUTPUT:
+                RETVAL
 
 UV
 Perl_grok_oct(string)
-       SV *string
-       PREINIT:
-               char *pv;
-               I32 flags;
-               STRLEN len;
-       CODE:
-               pv = SvPV(string, len);
-               RETVAL = Perl_grok_oct(aTHX_ pv, &len, &flags, NULL);
-       OUTPUT:
-               RETVAL
+        SV *string
+        PREINIT:
+                char *pv;
+                I32 flags;
+                STRLEN len;
+        CODE:
+                pv = SvPV(string, len);
+                RETVAL = Perl_grok_oct(aTHX_ pv, &len, &flags, NULL);
+        OUTPUT:
+                RETVAL
 
 =tests plan => 10
 
@@ -674,4 +668,3 @@ ok(!defined(&Devel::PPPort::Perl_grok_number("A")));
 ok(&Devel::PPPort::Perl_grok_bin("10000001"), 129);
 ok(&Devel::PPPort::Perl_grok_hex("deadbeef"), 0xdeadbeef);
 ok(&Devel::PPPort::Perl_grok_oct("377"), 255);
-
index e17d259..62afb5b 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 4 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:44 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -32,65 +26,65 @@ __UNDEFINED__ get_cvn_flags(name, namelen, flags) get_cv(name, flags)
 
 int
 GvSVn()
-       PREINIT:
-               GV* gv;
-       CODE:
-               RETVAL = 0;
-               gv = gv_fetchpvs("Devel::PPPort::GvTest", GV_ADDMULTI, SVt_PVGV);
-               if (GvSVn(gv) != NULL)
-               {
-                 RETVAL++;
-               }
-       OUTPUT:
-               RETVAL
+        PREINIT:
+                GV* gv;
+        CODE:
+                RETVAL = 0;
+                gv = gv_fetchpvs("Devel::PPPort::GvTest", GV_ADDMULTI, SVt_PVGV);
+                if (GvSVn(gv) != NULL)
+                {
+                  RETVAL++;
+                }
+        OUTPUT:
+                RETVAL
 
 int
 isGV_with_GP()
-       PREINIT:
-               GV* gv;
-       CODE:
-               RETVAL = 0;
-               gv = gv_fetchpvs("Devel::PPPort::GvTest", GV_ADDMULTI, SVt_PVGV);
-               if (isGV_with_GP(gv))
-               {
-                 RETVAL++;
-               }
-               if (!isGV(&PL_sv_undef))
-               {
-                 RETVAL++;
-               }
-       OUTPUT:
-               RETVAL
+        PREINIT:
+                GV* gv;
+        CODE:
+                RETVAL = 0;
+                gv = gv_fetchpvs("Devel::PPPort::GvTest", GV_ADDMULTI, SVt_PVGV);
+                if (isGV_with_GP(gv))
+                {
+                  RETVAL++;
+                }
+                if (!isGV(&PL_sv_undef))
+                {
+                  RETVAL++;
+                }
+        OUTPUT:
+                RETVAL
 
 int
 get_cvn_flags()
-       PREINIT:
-               CV* xv;
-       CODE:
-               RETVAL = 0;
-               xv = get_cvn_flags("Devel::PPPort::foobar", sizeof("Devel::PPPort::foobar")-1, 0);
-               if(xv == NULL) RETVAL++;
-               xv = get_cvn_flags("Devel::PPPort::foobar", sizeof("Devel::PPPort::foobar")-1, GV_ADDMULTI);
-               if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
-               xv = get_cvn_flags("Devel::PPPort::get_cvn_flags", sizeof("Devel::PPPort::get_cvn_flags")-1, 0);
-               if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
-       OUTPUT:
-               RETVAL
+        PREINIT:
+                CV* xv;
+        CODE:
+                RETVAL = 0;
+                xv = get_cvn_flags("Devel::PPPort::foobar", sizeof("Devel::PPPort::foobar")-1, 0);
+                if(xv == NULL) RETVAL++;
+                xv = get_cvn_flags("Devel::PPPort::foobar", sizeof("Devel::PPPort::foobar")-1, GV_ADDMULTI);
+                if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
+                xv = get_cvn_flags("Devel::PPPort::get_cvn_flags", sizeof("Devel::PPPort::get_cvn_flags")-1, 0);
+                if(xv && SvTYPE(xv) == SVt_PVCV) RETVAL++;
+        OUTPUT:
+                RETVAL
 
 SV*
 gv_fetchpvn_flags()
-       CODE:
-               RETVAL = newRV_inc((SV*)gv_fetchpvn_flags("Devel::PPPort::VERSION", sizeof("Devel::PPPort::VERSION")-1, 0, SVt_PV));
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = newRV_inc((SV*)gv_fetchpvn_flags("Devel::PPPort::VERSION", sizeof("Devel::PPPort::VERSION")-1, 0, SVt_PV));
+        OUTPUT:
+                RETVAL
 
 SV*
 gv_fetchsv(name)
-       SV *name
-       CODE:
-               RETVAL = newRV_inc((SV*)gv_fetchsv(name, 0, SVt_PV));
-       OUTPUT:
-               RETVAL
+        SV *name
+        CODE:
+                RETVAL = newRV_inc((SV*)gv_fetchsv(name, 0, SVt_PV));
+        OUTPUT:
+                RETVAL
 
 =tests plan => 5
 
index b745ee9..778383d 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 8 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:47 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -268,13 +262,15 @@ UVTYPE
 #      endif
 #    endif
 #  endif
-   __UNDEFINED__ IVSIZE 8
-   __UNDEFINED__ PERL_QUAD_MIN  IV_MIN
-   __UNDEFINED__ PERL_QUAD_MAX  IV_MAX
-   __UNDEFINED__ PERL_UQUAD_MIN UV_MIN
-   __UNDEFINED__ PERL_UQUAD_MAX UV_MAX
+  __UNDEFINED__ IVSIZE 8
+  __UNDEFINED__ LONGSIZE 8
+  __UNDEFINED__ PERL_QUAD_MIN  IV_MIN
+  __UNDEFINED__ PERL_QUAD_MAX  IV_MAX
+  __UNDEFINED__ PERL_UQUAD_MIN UV_MIN
+  __UNDEFINED__ PERL_UQUAD_MAX UV_MAX
 #else
   __UNDEFINED__ IVTYPE long
+  __UNDEFINED__ LONGSIZE 4
   __UNDEFINED__ IV_MIN PERL_LONG_MIN
   __UNDEFINED__ IV_MAX PERL_LONG_MAX
   __UNDEFINED__ UV_MIN PERL_ULONG_MIN
@@ -296,31 +292,31 @@ __UNDEFINED__ UVSIZE IVSIZE
 
 IV
 iv_size()
-       CODE:
-               RETVAL = IVSIZE == sizeof(IV);
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = IVSIZE == sizeof(IV);
+        OUTPUT:
+                RETVAL
 
 IV
 uv_size()
-       CODE:
-               RETVAL = UVSIZE == sizeof(UV);
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = UVSIZE == sizeof(UV);
+        OUTPUT:
+                RETVAL
 
 IV
 iv_type()
-       CODE:
-               RETVAL = sizeof(IVTYPE) == sizeof(IV);
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = sizeof(IVTYPE) == sizeof(IV);
+        OUTPUT:
+                RETVAL
 
 IV
 uv_type()
-       CODE:
-               RETVAL = sizeof(UVTYPE) == sizeof(UV);
-       OUTPUT:
-               RETVAL
+        CODE:
+                RETVAL = sizeof(UVTYPE) == sizeof(UV);
+        OUTPUT:
+                RETVAL
 
 =tests plan => 4
 
@@ -328,4 +324,3 @@ ok(&Devel::PPPort::iv_size());
 ok(&Devel::PPPort::uv_size());
 ok(&Devel::PPPort::iv_type());
 ok(&Devel::PPPort::uv_type());
-
index 52292c0..a17972c 100644 (file)
@@ -1,12 +1,6 @@
 ################################################################################
 ##
-##  $Revision: 12 $
-##  $Author: mhx $
-##  $Date: 2010/03/07 13:15:47 +0100 $
-##
-################################################################################
-##
-##  Version 3.x, Copyright (C) 2004-2010, Marcus Holland-Moritz.
+##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
 ##  Version 2.x, Copyright (C) 2001, Paul Marquess.
 ##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
 ##
@@ -21,106 +15,106 @@ __UNDEFINED__
 
 =implementation
 
-__UNDEFINED__  mPUSHs(s)       PUSHs(sv_2mortal(s))
-__UNDEFINED__  PUSHmortal      PUSHs(sv_newmortal())
-__UNDEFINED__  mPUSHp(p,l)     sv_setpvn(PUSHmortal, (p), (l))
-__UNDEFINED__  mPUSHn(n)       sv_setnv(PUSHmortal, (NV)(n))
-__UNDEFINED__  mPUSHi(i)       sv_setiv(PUSHmortal, (IV)(i))
-__UNDEFINED__  mPUSHu(u)       sv_setuv(PUSHmortal, (UV)(u))
+__UNDEFINED__  mPUSHs(s)        PUSHs(sv_2mortal(s))
+__UNDEFINED__  PUSHmortal       PUSHs(sv_newmortal())
+__UNDEFINED__  mPUSHp(p,l)      sv_setpvn(PUSHmortal, (p), (l))
+__UNDEFINED__  mPUSHn(n)        sv_setnv(PUSHmortal, (NV)(n))
+__UNDEFINED__  mPUSHi(i)        sv_setiv(PUSHmortal, (IV)(i))
+__UNDEFINED__  mPUSHu(u)        sv_setuv(PUSHmortal, (UV)(u))
 
-__UNDEFINED__  mXPUSHs(s)      XPUSHs(sv_2mortal(s))
-__UNDEFINED__  XPUSHmortal     XPUSHs(sv_newmortal())
-__UNDEFINED__  mXPUSHp(p,l)    STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END
-__UNDEFINED__  mXPUSHn(n)      STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END
-__UNDEFINED__  mXPUSHi(i)      STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END
-__UNDEFINED__  mXPUSHu(u)      STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END
+__UNDEFINED__  mXPUSHs(s)       XPUSHs(sv_2mortal(s))
+__UNDEFINED__  XPUSHmortal      XPUSHs(sv_newmortal())
+__UNDEFINED__  mXPUSHp(p,l)     STMT_START { EXTEND(sp,1); sv_setpvn(PUSHmortal, (p), (l)); } STMT_END
+__UNDEFINED__  mXPUSHn(n)       STMT_START { EXTEND(sp,1); sv_setnv(PUSHmortal, (NV)(n)); } STMT_END
+__UNDEFINED__  mXPUSHi(i)       STMT_START { EXTEND(sp,1); sv_setiv(PUSHmortal, (IV)(i)); } STMT_END
+__UNDEFINED__  mXPUSHu(u)       STMT_START { EXTEND(sp,1); sv_setuv(PUSHmortal, (UV)(u)); } STMT_END
 
 =xsubs
 
 void
 mPUSHs()
-       PPCODE:
-       EXTEND(SP, 3);
-       mPUSHs(newSVpv("foo", 0));
-       mPUSHs(newSVpv("bar13", 3));
-       mPUSHs(newSViv(42));
-       XSRETURN(3);
+        PPCODE:
+        EXTEND(SP, 3);
+        mPUSHs(newSVpv("foo", 0));
+        mPUSHs(newSVpv("bar13", 3));
+        mPUSHs(newSViv(42));
+        XSRETURN(3);
 
 void
 mPUSHp()
-       PPCODE:
-       EXTEND(SP, 3);
-       mPUSHp("one", 3);
-       mPUSHp("two", 3);
-       mPUSHp("three", 5);
-       XSRETURN(3);
+        PPCODE:
+        EXTEND(SP, 3);
+        mPUSHp("one", 3);
+        mPUSHp("two", 3);
+        mPUSHp("three", 5);
+        XSRETURN(3);
 
 void
 mPUSHn()
-       PPCODE:
-       EXTEND(SP, 3);
-       mPUSHn(0.5);
-       mPUSHn(-0.25);
-       mPUSHn(0.125);
-       XSRETURN(3);
+        PPCODE:
+        EXTEND(SP, 3);
+        mPUSHn(0.5);
+        mPUSHn(-0.25);
+        mPUSHn(0.125);
+        XSRETURN(3);
 
 void
 mPUSHi()
-       PPCODE:
-       EXTEND(SP, 3);
-       mPUSHi(-1);
-       mPUSHi(2);
-       mPUSHi(-3);
-       XSRETURN(3);
+        PPCODE:
+        EXTEND(SP, 3);
+        mPUSHi(-1);
+        mPUSHi(2);
+        mPUSHi(-3);
+        XSRETURN(3);
 
 void
 mPUSHu()
-       PPCODE:
-       EXTEND(SP, 3);
-       mPUSHu(1);
-       mPUSHu(2);
-       mPUSHu(3);
-       XSRETURN(3);
+        PPCODE:
+        EXTEND(SP, 3);
+        mPUSHu(1);
+        mPUSHu(2);
+        mPUSHu(3);
+        XSRETURN(3);
 
 void
 mXPUSHs()
-       PPCODE:
-       mXPUSHs(newSVpv("foo", 0));
-       mXPUSHs(newSVpv("bar13", 3));
-       mXPUSHs(newSViv(42));
-       XSRETURN(3);
+        PPCODE:
+        mXPUSHs(newSVpv("foo", 0));
+        mXPUSHs(newSVpv("bar13", 3));
+        mXPUSHs(newSViv(42));
+        XSRETURN(3);
 
 void
 mXPUSHp()
-       PPCODE:
-       mXPUSHp("one", 3);
-       mXPUSHp("two", 3);
-       mXPUSHp("three", 5);
-       XSRETURN(3);
+        PPCODE:
+        mXPUSHp("one", 3);
+        mXPUSHp("two", 3);
+        mXPUSHp("three", 5);
+        XSRETURN(3);
 
 void
 mXPUSHn()
-       PPCODE:
-       mXPUSHn(0.5);
-       mXPUSHn(-0.25);
-       mXPUSHn(0.125);
-       XSRETURN(3);
+        PPCODE:
+        mXPUSHn(0.5);
+        mXPUSHn(-0.25);
+        mXPUSHn(0.125);
+        XSRETURN(3);
 
 void
 mXPUSHi()
-       PPCODE:
-       mXPUSHi(-1);
-       mXPUSHi(2);
-       mXPUSHi(-3);
-       XSRETURN(3);
+        PPCODE:
+        mXPUSHi(-1);
+        mXPUSHi(2);
+        mXPUSHi(-3);
+        XSRETURN(3);
 
 void
 mXPUSHu()
-       PPCODE:
-       mXPUSHu(1);
-       mXPUSHu(2);
-       mXPUSHu(3);
-       XSRETURN(3);
+        PPCODE:
+        mXPUSHu(1);
+        mXPUSHu(2);
+        mXPUSHu(3);
+        XSRETURN(3);
 
 =tests plan => 10
 
@@ -135,4 +129,3 @@ ok(join(':', &Devel::PPPort::mXPUSHp()), "one:two:three");
 ok(join(':', &Devel::PPPort::mXPUSHn()), "0.5:-0.25:0.125");
 ok(join(':', &Devel::PPPort::mXPUSHi()), "-1:2:-3");
 ok(join(':', &Devel::PPPort::mXPUSHu()), "1:2:3");
-