This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
autogenerate API listing from comments in the source (from Benjamin
authorGurusamy Sarathy <gsar@cpan.org>
Fri, 28 Jan 2000 03:43:52 +0000 (03:43 +0000)
committerGurusamy Sarathy <gsar@cpan.org>
Fri, 28 Jan 2000 03:43:52 +0000 (03:43 +0000)
Stuhl <sho_pi@hotmail.com>); fix the markup format to be more
flexible for better readability; add missing docs in sv.c; regenerate
perltoc

p4raw-id: //depot/perl@4915

37 files changed:
MANIFEST
XSUB.h
av.c
av.h
cop.h
cv.h
embed.pl
global.sym
gv.c
gv.h
handy.h
hv.c
hv.h
intrpvar.h
makedef.pl
mg.c
objXSUB.h
op.c
op.h
perl.c
perlapi.c
pod/Makefile
pod/buildtoc
pod/perl.pod
pod/perlapi.pod [new file with mode: 0644]
pod/perldelta.pod
pod/perlguts.pod
pod/perlintern.pod [new file with mode: 0644]
pod/perltoc.pod
pod/roffitall
pp.h
scope.h
sv.c
sv.h
thrdvar.h
universal.c
util.c

index 64b666e..1b3615f 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1047,6 +1047,7 @@ pod/checkpods.PL  Tool to check for common errors in pods
 pod/perl.pod           Top level perl man page
 pod/perl5004delta.pod  Changes from 5.003 to 5.004
 pod/perl5005delta.pod  Changes from 5.004 to 5.005
+pod/perlapi.pod         Perl API documentation (autogenerated)
 pod/perlapio.pod       IO API info
 pod/perlbook.pod       Book info
 pod/perlbot.pod                Object-oriented Bag o' Tricks
@@ -1076,6 +1077,7 @@ pod/perlfunc.pod  Function info
 pod/perlguts.pod       Internals info
 pod/perlhack.pod       Perl hackers guide
 pod/perlhist.pod       Perl history info
+pod/perlintern.pod      Perl internal function docs (autogenrated)
 pod/perlipc.pod                IPC info
 pod/perllexwarn.pod    Lexical Warnings info
 pod/perllocale.pod     Locale support info
diff --git a/XSUB.h b/XSUB.h
index 18f5b81..7e1c28c 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
@@ -1,6 +1,50 @@
 #ifndef _INC_PERL_XSUB_H
 #define _INC_PERL_XSUB_H 1
 
+/* first, some documentation for xsubpp-generated items */
+
+/*
+=for apidoc Amn|char*|CLASS
+Variable which is setup by C<xsubpp> to indicate the 
+class name for a C++ XS constructor.  This is always a C<char*>.  See C<THIS>.
+
+=for apidoc Amn|(whatever)|RETVAL
+Variable which is setup by C<xsubpp> to hold the return value for an 
+XSUB. This is always the proper type for the XSUB. See 
+L<perlxs/"The RETVAL Variable">.
+
+=for apidoc Amn|(whatever)|THIS
+Variable which is setup by C<xsubpp> to designate the object in a C++ 
+XSUB.  This is always the proper type for the C++ object.  See C<CLASS> and 
+L<perlxs/"Using XS With C++">.
+
+=for apidoc Amn|I32|items
+Variable which is setup by C<xsubpp> to indicate the number of 
+items on the stack.  See L<perlxs/"Variable-length Parameter Lists">.
+
+=for apidoc Amn|I32|ix
+Variable which is setup by C<xsubpp> to indicate which of an 
+XSUB's aliases was used to invoke it.  See L<perlxs/"The ALIAS: Keyword">.
+
+=for apidoc Am|SV*|ST|int ix
+Used to access elements on the XSUB's stack.
+
+=for apidoc AmU||XS
+Macro to declare an XSUB and its C parameter list.  This is handled by
+C<xsubpp>.
+
+=for apidoc Ams||dXSARGS
+Sets up stack and mark pointers for an XSUB, calling dSP and dMARK.  This
+is usually handled automatically by C<xsubpp>.  Declares the C<items>
+variable to indicate the number of items on the stack.
+
+=for apidoc Ams||dXSI32
+Sets up the C<ix> variable for an XSUB which has aliases.  This is usually
+handled automatically by C<xsubpp>.
+
+=cut
+*/
+
 #define ST(off) PL_stack_base[ax + (off)]
 
 #if defined(CYGWIN) && defined(USE_DYNAMIC_LOADING)
 #define XSINTERFACE_FUNC_SET(cv,f)     \
                CvXSUBANY(cv).any_dptr = (void (*) (pTHXo_ void*))(f)
 
-#define XSRETURN(off)                                  \
-    STMT_START {                                       \
-       PL_stack_sp = PL_stack_base + ax + ((off) - 1); \
-       return;                                         \
-    } STMT_END
-
 /* Simple macros to put new mortal values onto the stack.   */
 /* Typically used to return values from XS functions.       */
+
+/*
+=for apidoc Am|void|XST_mIV|int pos|IV iv
+Place an integer into the specified position C<pos> on the stack.  The
+value is stored in a new mortal SV.
+
+=for apidoc Am|void|XST_mNV|int pos|NV nv
+Place a double into the specified position C<pos> on the stack.  The value
+is stored in a new mortal SV.
+
+=for apidoc Am|void|XST_mPV|int pos|char* str
+Place a copy of a string into the specified position C<pos> on the stack. 
+The value is stored in a new mortal SV.
+
+=for apidoc Am|void|XST_mNO|int pos
+Place C<&PL_sv_no> into the specified position C<pos> on the
+stack.
+
+=for apidoc Am|void|XST_mYES|int pos
+Place C<&PL_sv_yes> into the specified position C<pos> on the
+stack.
+
+=for apidoc Am|void|XST_mUNDEF|int pos
+Place C<&PL_sv_undef> into the specified position C<pos> on the
+stack.
+
+=for apidoc Am|void|XSRETURN|int nitems
+Return from XSUB, indicating number of items on the stack.  This is usually
+handled by C<xsubpp>.
+
+=for apidoc Am|void|XSRETURN_IV|IV iv
+Return an integer from an XSUB immediately.  Uses C<XST_mIV>.
+
+=for apidoc Am|void|XSRETURN_NV|NV nv
+Return an double from an XSUB immediately.  Uses C<XST_mNV>.
+
+=for apidoc Am|void|XSRETURN_PV|char* str
+Return a copy of a string from an XSUB immediately.  Uses C<XST_mPV>.
+
+=for apidoc Ams||XSRETURN_NO
+Return C<&PL_sv_no> from an XSUB immediately.  Uses C<XST_mNO>.
+
+=for apidoc Ams||XSRETURN_YES
+Return C<&PL_sv_yes> from an XSUB immediately.  Uses C<XST_mYES>.
+
+=for apidoc Ams||XSRETURN_UNDEF
+Return C<&PL_sv_undef> from an XSUB immediately.  Uses C<XST_mUNDEF>.
+
+=for apidoc Ams||XSRETURN_EMPTY
+Return an empty list from an XSUB immediately.
+
+=for apidoc AmU||newXSproto
+Used by C<xsubpp> to hook up XSUBs as Perl subs.  Adds Perl prototypes to
+the subs.
+
+=for apidoc AmU||XS_VERSION
+The version identifier for an XS module.  This is usually
+handled automatically by C<ExtUtils::MakeMaker>.  See C<XS_VERSION_BOOTCHECK>.
+
+=for apidoc Ams||XS_VERSION_BOOTCHECK
+Macro to verify that a PM module's $VERSION variable matches the XS
+module's C<XS_VERSION> variable.  This is usually handled automatically by
+C<xsubpp>.  See L<perlxs/"The VERSIONCHECK: Keyword">.
+
+=cut
+*/
+
 #define XST_mIV(i,v)  (ST(i) = sv_2mortal(newSViv(v))  )
 #define XST_mNV(i,v)  (ST(i) = sv_2mortal(newSVnv(v))  )
 #define XST_mPV(i,v)  (ST(i) = sv_2mortal(newSVpv(v,0)))
 #define XST_mNO(i)    (ST(i) = &PL_sv_no   )
 #define XST_mYES(i)   (ST(i) = &PL_sv_yes  )
 #define XST_mUNDEF(i) (ST(i) = &PL_sv_undef)
+
+#define XSRETURN(off)                                  \
+    STMT_START {                                       \
+       PL_stack_sp = PL_stack_base + ax + ((off) - 1); \
+       return;                                         \
+    } STMT_END
+
 #define XSRETURN_IV(v) STMT_START { XST_mIV(0,v);  XSRETURN(1); } STMT_END
 #define XSRETURN_NV(v) STMT_START { XST_mNV(0,v);  XSRETURN(1); } STMT_END
 #define XSRETURN_PV(v) STMT_START { XST_mPV(0,v);  XSRETURN(1); } STMT_END
-#define XSRETURN_PVN(v) STMT_START { XST_mPVN(0,v,n);  XSRETURN(1); } STMT_END
+#define XSRETURN_PVN(v,n) STMT_START { XST_mPVN(0,v,n);  XSRETURN(1); } STMT_END
 #define XSRETURN_NO    STMT_START { XST_mNO(0);    XSRETURN(1); } STMT_END
 #define XSRETURN_YES   STMT_START { XST_mYES(0);   XSRETURN(1); } STMT_END
 #define XSRETURN_UNDEF STMT_START { XST_mUNDEF(0); XSRETURN(1); } STMT_END
diff --git a/av.c b/av.c
index af8296a..264fe23 100644 (file)
--- a/av.c
+++ b/av.c
@@ -46,6 +46,15 @@ Perl_av_reify(pTHX_ AV *av)
     AvREAL_on(av);
 }
 
+/*
+=for apidoc av_extend
+
+Pre-extend an array.  The C<key> is the index to which the array should be
+extended.
+
+=cut
+*/
+
 void
 Perl_av_extend(pTHX_ AV *av, I32 key)
 {
@@ -151,6 +160,19 @@ Perl_av_extend(pTHX_ AV *av, I32 key)
     }
 }
 
+/*
+=for apidoc av_fetch
+
+Returns the SV at the specified index in the array.  The C<key> is the
+index.  If C<lval> is set then the fetch will be part of a store.  Check
+that the return value is non-null before dereferencing it to a C<SV*>.
+
+See L<Understanding the Magic of Tied Hashes and Arrays> for more information
+on how to use this function on tied arrays. 
+
+=cut
+*/
+
 SV**
 Perl_av_fetch(pTHX_ register AV *av, I32 key, I32 lval)
 {
@@ -198,6 +220,23 @@ Perl_av_fetch(pTHX_ register AV *av, I32 key, I32 lval)
     return &AvARRAY(av)[key];
 }
 
+/*
+=for apidoc av_store
+
+Stores an SV in an array.  The array index is specified as C<key>.  The
+return value will be NULL if the operation failed or if the value did not
+need to be actually stored within the array (as in the case of tied
+arrays). Otherwise it can be dereferenced to get the original C<SV*>.  Note
+that the caller is responsible for suitably incrementing the reference
+count of C<val> before the call, and decrementing it if the function
+returned NULL.
+
+See L<Understanding the Magic of Tied Hashes and Arrays> for
+more information on how to use this function on tied arrays.
+
+=cut
+*/
+
 SV**
 Perl_av_store(pTHX_ register AV *av, I32 key, SV *val)
 {
@@ -257,6 +296,14 @@ Perl_av_store(pTHX_ register AV *av, I32 key, SV *val)
     return &ary[key];
 }
 
+/*
+=for apidoc newAV
+
+Creates a new AV.  The reference count is set to 1.
+
+=cut
+*/
+
 AV *
 Perl_newAV(pTHX)
 {
@@ -271,6 +318,16 @@ Perl_newAV(pTHX)
     return av;
 }
 
+/*
+=for apidoc av_make
+
+Creates a new AV and populates it with a list of SVs.  The SVs are copied
+into the array, so they may be freed after the call to av_make.  The new AV
+will have a reference count of 1.
+
+=cut
+*/
+
 AV *
 Perl_av_make(pTHX_ register I32 size, register SV **strp)
 {
@@ -320,6 +377,15 @@ Perl_av_fake(pTHX_ register I32 size, register SV **strp)
     return av;
 }
 
+/*
+=for apidoc av_clear
+
+Clears an array, making it empty.  Does not free the memory used by the
+array itself.
+
+=cut
+*/
+
 void
 Perl_av_clear(pTHX_ register AV *av)
 {
@@ -361,6 +427,14 @@ Perl_av_clear(pTHX_ register AV *av)
 
 }
 
+/*
+=for apidoc av_undef
+
+Undefines the array.  Frees the memory used by the array itself.
+
+=cut
+*/
+
 void
 Perl_av_undef(pTHX_ register AV *av)
 {
@@ -389,6 +463,15 @@ Perl_av_undef(pTHX_ register AV *av)
     }
 }
 
+/*
+=for apidoc av_push
+
+Pushes an SV onto the end of the array.  The array will grow automatically
+to accommodate the addition.
+
+=cut
+*/
+
 void
 Perl_av_push(pTHX_ register AV *av, SV *val)
 {             
@@ -415,6 +498,15 @@ Perl_av_push(pTHX_ register AV *av, SV *val)
     av_store(av,AvFILLp(av)+1,val);
 }
 
+/*
+=for apidoc av_pop
+
+Pops an SV off the end of the array.  Returns C<&PL_sv_undef> if the array
+is empty.
+
+=cut
+*/
+
 SV *
 Perl_av_pop(pTHX_ register AV *av)
 {
@@ -448,6 +540,16 @@ Perl_av_pop(pTHX_ register AV *av)
     return retval;
 }
 
+/*
+=for apidoc av_unshift
+
+Unshift the given number of C<undef> values onto the beginning of the
+array.  The array will grow automatically to accommodate the addition.  You
+must then use C<av_store> to assign values to these new elements.
+
+=cut
+*/
+
 void
 Perl_av_unshift(pTHX_ register AV *av, register I32 num)
 {
@@ -501,6 +603,14 @@ Perl_av_unshift(pTHX_ register AV *av, register I32 num)
     }
 }
 
+/*
+=for apidoc av_shift
+
+Shifts an SV off the beginning of the array.
+
+=cut
+*/
+
 SV *
 Perl_av_shift(pTHX_ register AV *av)
 {
@@ -538,6 +648,15 @@ Perl_av_shift(pTHX_ register AV *av)
     return retval;
 }
 
+/*
+=for apidoc av_len
+
+Returns the highest index in the array.  Returns -1 if the array is
+empty.
+
+=cut
+*/
+
 I32
 Perl_av_len(pTHX_ register AV *av)
 {
diff --git a/av.h b/av.h
index 14e8765..b56917f 100644 (file)
--- a/av.h
+++ b/av.h
@@ -45,6 +45,16 @@ struct xpvav {
 /* XXX this is not used anywhere */
 #define AVf_REUSED 4   /* got undeffed--don't turn old memory into SVs now */
 
+/*
+=for apidoc AmU||Nullav
+Null AV pointer.
+
+=for apidoc Am|int|AvFILL|AV* av
+Same as C<av_len()>.  Deprecated, use C<av_len()> instead.
+
+=cut
+*/
+
 #define Nullav Null(AV*)
 
 #define AvARRAY(av)    ((SV**)((XPVAV*)  SvANY(av))->xav_array)
diff --git a/cop.h b/cop.h
index ede2fce..5760a8d 100644 (file)
--- a/cop.h
+++ b/cop.h
@@ -373,6 +373,36 @@ struct context {
 #define CXINC (cxstack_ix < cxstack_max ? ++cxstack_ix : (cxstack_ix = cxinc()))
 
 /* "gimme" values */
+
+/*
+=for apidoc AmU||G_SCALAR
+Used to indicate scalar context.  See C<GIMME_V>, C<GIMME>, and
+L<perlcall>.
+
+=for apidoc AmU||G_ARRAY
+Used to indicate array context.  See C<GIMME_V>, C<GIMME> and
+L<perlcall>.
+
+=for apidoc AmU||G_VOID
+Used to indicate void context.  See C<GIMME_V> and L<perlcall>.
+
+=for apidoc AmU||G_DISCARD
+Indicates that arguments returned from a callback should be discarded.  See
+L<perlcall>.
+
+=for apidoc AmU||G_EVAL
+
+Used to force a Perl C<eval> wrapper around a callback.  See
+L<perlcall>.
+
+=for apidoc AmU||G_NOARGS
+
+Indicates that no arguments are being sent to a callback.  See
+L<perlcall>.
+
+=cut
+*/
+
 #define G_SCALAR       0
 #define G_ARRAY                1
 #define G_VOID         128     /* skip this bit when adding flags below */
diff --git a/cv.h b/cv.h
index 06cbb89..8210298 100644 (file)
--- a/cv.h
+++ b/cv.h
@@ -36,6 +36,16 @@ struct xpvcv {
     cv_flags_t xcv_flags;
 };
 
+/*
+=for apidoc AmU||Nullcv
+Null CV pointer.
+
+=for apidoc Am|HV*|CvSTASH|CV* cv
+Returns the stash of the CV.
+
+=cut
+*/
+
 #define Nullcv Null(CV*)
 
 #define CvSTASH(sv)    ((XPVCV*)SvANY(sv))->xcv_stash
index 5305dad..932124a 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -1,6 +1,7 @@
 #!/usr/bin/perl -w
 
-require 5.003;
+require 5.003; # keep this compatible, an old perl is all we may have before
+                # we build the new one
 
 #
 # See database of global and static function prototypes at the __END__.
@@ -147,12 +148,12 @@ sub write_protos {
     $ret;
 }
 
-# generates global.sym, and populates %global with global symbols
+# generates global.sym (API export list), and populates %global with global symbols
 sub write_global_sym {
     my $ret = "";
     if (@_ > 1) {
        my ($flags,$retval,$func,@args) = @_;
-       unless ($flags =~ /[sx]/) {
+       if ($flags =~ /A/ && $flags !~ /x/) { # public API, so export
            $func = "Perl_$func" if $flags =~ /p/;
            $ret = "$func\n";
        }
@@ -726,7 +727,7 @@ walk_table {
     }
     else {
        my ($flags,$retval,$func,@args) = @_;
-       unless ($flags =~ /[js]/) {
+       if ($flags =~ /A/ && $flags !~ /j/) { # API function needing macros
            if ($flags =~ /p/) {
                $ret .= undefine("Perl_$func") . hide("Perl_$func","pPerl->Perl_$func");
                $ret .= undefine($func) . hide($func,"Perl_$func");
@@ -739,11 +740,12 @@ walk_table {
     $ret;
 } \*OBX;
 
-for $sym (sort keys %ppsym) {
-    $sym =~ s/^Perl_//;
-    print OBX undefine("Perl_$sym") . hide("Perl_$sym", "pPerl->Perl_$sym");
-    print OBX undefine($sym) . hide($sym, "Perl_$sym");
-}
+# NOTE: not part of API
+#for $sym (sort keys %ppsym) {
+#    $sym =~ s/^Perl_//;
+#    print OBX undefine("Perl_$sym") . hide("Perl_$sym", "pPerl->Perl_$sym");
+#    print OBX undefine($sym) . hide($sym, "Perl_$sym");
+#}
 
 print OBX <<'EOT';
 
@@ -943,7 +945,8 @@ my %vfuncs = qw(
 sub emit_func {
     my ($addcontext, $rettype,$func,@args) = @_;
     my @aargs = @args;
-    for my $a (@aargs) { $a =~ s/^.*\b(\w+)$/$1/ }
+    my $a;
+    for $a (@aargs) { $a =~ s/^.*\b(\w+)$/$1/ }
     my $ctxarg = '';
     if (not $addcontext) {
        $ctxarg = 'pTHXo';
@@ -992,7 +995,8 @@ EOT
 }
 
 # XXXX temporary hack
-for my $sym (qw(
+my $sym;
+for $sym (qw(
                perl_construct
                perl_destruct
                perl_free
@@ -1012,7 +1016,7 @@ walk_table {
     else {
        my ($flags,$retval,$func,@args) = @_;
        return $ret if exists $skipapi_funcs{$func};
-       unless ($flags =~ /[js]/) {
+       if ($flags =~ /A/ && $flags !~ /j/) { # in public API, needed for XSUBS
            $ret .= "\n";
            my $addctx = 1 if $flags =~ /n/;
            if ($flags =~ /p/) {
@@ -1028,17 +1032,18 @@ walk_table {
     $ret;
 } \*CAPI;
 
-for $sym (sort keys %ppsym) {
-    $sym =~ s/^Perl_//;
-    print CAPI "\n";
-    print CAPI undefine("Perl_$sym");
-    if ($sym =~ /^ck_/) {
-       print CAPI emit_func(0, 'OP *',"Perl_$sym",'OP *o');
-    }
-    else {                                     # pp_foo
-       print CAPI emit_func(0, 'OP *',"Perl_$sym");
-    }
-}
+# NOTE: not part of the API
+#for $sym (sort keys %ppsym) {
+#    $sym =~ s/^Perl_//;
+#    print CAPI "\n";
+#    print CAPI undefine("Perl_$sym");
+#    if ($sym =~ /^ck_/) {
+#      print CAPI emit_func(0, 'OP *',"Perl_$sym",'OP *o');
+#    }
+#   else {                                     # pp_foo
+#      print CAPI emit_func(0, 'OP *',"Perl_$sym");
+#    }
+#}
 
 print CAPI <<'EOT';
 
@@ -1058,6 +1063,201 @@ END_EXTERN_C
 #endif /* PERL_OBJECT || MULTIPLICITY */
 EOT
 
+close(CAPI);
+
+# autogenerate documentation from comments in source files
+
+my %apidocs;
+my %gutsdocs;
+my %docfuncs;
+
+sub autodoc ($) { # parse a file and extract documentation info
+    my($fh) = @_;
+    my($in, $doc);
+
+FUNC:
+    while (defined($in = <$fh>)) {
+       if ($in =~ /^=for\s+apidoc\s+(.*)\n/) {
+           my $proto = $1;
+           $proto = "||$proto" unless $proto =~ /\|/;
+           my($flags, $ret, $name, @args) = split /\|/, $proto;
+           my $docs = "";
+DOC:
+           while (defined($doc = <$fh>)) {
+               last DOC if $doc =~ /^=\w+/;
+               $docs .= $doc;
+           }
+           $docs = "\n$docs" if $docs and $docs !~ /^\n/;
+           if ($flags =~ /m/) {
+               if ($flags =~ /A/) {
+                   $apidocs{$name} = [$flags, $docs, $ret, @args];
+               }
+               else {
+                   $gutsdocs{$name} = [$flags, $docs, $ret, @args];
+               }
+           }
+           else {
+               $docfuncs{$name} = [$flags, $docs, $ret, @args];
+           }
+           if ($doc =~ /^=for/) {
+               $in = $doc;
+               redo FUNC;
+           }
+       }
+    }
+}
+
+sub docout ($$$) { # output the docs for one function
+    my($fh, $name, $docref) = @_;
+    my($flags, $docs, $ret, @args) = @$docref;
+
+    $docs .= "NOTE: the perl_ form of this function is deprecated.\n\n" 
+       if $flags =~ /p/;
+
+    print $fh "=item $name\n$docs";
+
+    if ($flags =~ /U/) { # no usage
+       # nothing
+    } elsif ($flags =~ /s/) { # semicolon ("dTHR;")
+       print $fh "\t\t$name;\n\n";
+    } elsif ($flags =~ /n/) { # no args
+       print $fh "\t$ret\t$name\n\n";
+    } else { # full usage
+       print $fh "\t$ret\t$name";
+       print $fh "(" . join(", ", @args) . ")";
+       print $fh "\n\n";
+    }
+}
+
+my $file;
+for $file (glob('*.c'), glob('*.h')) {
+    open F, "< $file" or die "Cannot open $file for docs: $!\n";
+    autodoc(\*F);
+    close F or die "Error closing $file: $!\n";
+}
+
+unlink "pod/perlapi.pod";
+open (DOC, ">pod/perlapi.pod") or 
+       die "Can't create pod/perlapi.pod: $!\n";
+
+walk_table {   # load documented functions into approriate hash
+    if (@_ > 1) {
+       my($flags, $retval, $func, @args) = @_;
+       return "" unless $flags =~ /d/;
+       $func =~ s/\t//g; $flags =~ s/p//; # clean up fields from embed.pl
+       $retval =~ s/\t//;
+       if ($flags =~ /A/) {
+           my $docref = delete $docfuncs{$func};
+           warn "no docs for $func\n" unless $docref and @$docref;
+           $apidocs{$func} = [$docref->[0] . 'A', $docref->[1], $retval, @args];
+       } else {
+           my $docref = delete $docfuncs{$func};
+           $gutsdocs{$func} = [$docref->[0], $docref->[1], $retval, @args];
+       }
+    }
+    return "";
+} \*DOC;
+
+for (sort keys %docfuncs) {
+    warn "Unable to place $_!\n";
+}
+
+print DOC <<'_EOB_';
+=head1 NAME
+
+perlapi - autogenerated documentation for the perl public API
+
+=head1 DESCRIPTION
+
+This file contains the documentation of the perl public API generated by 
+embed.pl, specifically a listing of functions, macros, flags, and variables 
+that may be used by extension writers.  The interfaces of any functions that 
+are not listed here are subject to change without notice.  For this reason,
+blindly using functions listed in proto.h is to be avoided when writing
+extensions.
+
+Note that all Perl API global variables must be referenced with the C<PL_>
+prefix.  Some macros are provided for compatibility with the older,
+unadorned names, but this support may be disabled in a future release.
+
+The listing is alphabetical, case insensitive.
+
+=over 8
+
+_EOB_
+
+my $key;
+for $key (sort { uc($a) cmp uc($b); } keys %apidocs) { # case insensitive sort
+    docout(\*DOC, $key, $apidocs{$key});
+}
+
+print DOC <<'_EOE_';
+=back
+
+=head1 AUTHORS
+
+Until May 1997, this document was maintained by Jeff Okamoto
+<okamoto@corp.hp.com>.  It is now maintained as part of Perl itself.
+
+With lots of help and suggestions from Dean Roehrich, Malcolm Beattie,
+Andreas Koenig, Paul Hudson, Ilya Zakharevich, Paul Marquess, Neil
+Bowers, Matthew Green, Tim Bunce, Spider Boardman, Ulrich Pfeifer,
+Stephen McCamant, and Gurusamy Sarathy.
+
+API Listing originally by Dean Roehrich <roehrich@cray.com>.
+
+Updated to be autogenerated from comments in the source by Benjamin Stuhl.
+
+=head1 SEE ALSO
+
+perlguts(1), perlxs(1), perlxstut(1), perlintern(1)
+
+_EOE_
+
+
+close(DOC);
+
+open(GUTS, ">pod/perlintern.pod") or 
+               die "Unable to create pod/perlintern.pod: $!\n";
+print GUTS <<'END';
+=head1 NAME
+
+perlintern - autogenerated documentation of purely B<internal> 
+                Perl functions
+
+=head1 DESCRIPTION
+
+This file is the autogenerated documentation of functions in the 
+Perl intrepreter that are documented using Perl's internal documentation
+format but are not marked as part of the Perl API. In other words, 
+B<they are not for use in extensions>!
+
+=over 8
+
+END
+
+for $key (sort { uc($a) cmp uc($b); } keys %gutsdocs) {
+    docout(\*GUTS, $key, $gutsdocs{$key});
+}
+
+print GUTS <<'END';
+=back
+
+=head1 AUTHORS
+
+The autodocumentation system was orignally added to the Perl core by 
+Benjamin Stuhl. Documentation is by whoever was kind enough to 
+document their functions.
+
+=head1 SEE ALSO
+
+perlguts(1), perlapi(1)
+
+END
+
+close GUTS;
+
+
 __END__
 
 : Lines are of the form:
@@ -1067,8 +1267,10 @@ __END__
 : Leading and trailing whitespace will be ignored in each component.
 :
 : flags are single letters with following meanings:
+:      A               member of public API
+:      d               function has documentation with its source
 :      s               static function, should have an S_ prefix in source
-:                      file
+:                              file
 :      n               has no implicit interpreter/thread context argument
 :      p               function has a Perl_ prefix
 :      f               function takes printf style format string, varargs
@@ -1081,33 +1283,30 @@ __END__
 :
 : New global functions should be added at the end for binary compatibility
 : in some configurations.
-:
-: TODO: 1) Add a flag to mark the functions that are part of the public API.
-:       2) Add a field for documentation, so that L<perlguts/"API LISTING">
-:          may be autogenerated.
 
 START_EXTERN_C
 
 #if defined(PERL_IMPLICIT_SYS)
-jno    |PerlInterpreter*       |perl_alloc_using \
+Ajno   |PerlInterpreter*       |perl_alloc_using \
                                |struct IPerlMem* m|struct IPerlMem* ms \
                                |struct IPerlMem* mp|struct IPerlEnv* e \
                                |struct IPerlStdIO* io|struct IPerlLIO* lio \
                                |struct IPerlDir* d|struct IPerlSock* s \
                                |struct IPerlProc* p
 #else
-jno    |PerlInterpreter*       |perl_alloc
+Ajnod  |PerlInterpreter*       |perl_alloc
 #endif
-jno    |void   |perl_construct |PerlInterpreter* interp
-jno    |void   |perl_destruct  |PerlInterpreter* interp
-jno    |void   |perl_free      |PerlInterpreter* interp
-jno    |int    |perl_run       |PerlInterpreter* interp
-jno    |int    |perl_parse     |PerlInterpreter* interp|XSINIT_t xsinit \
+Ajnod  |void   |perl_construct |PerlInterpreter* interp
+Ajnod  |void   |perl_destruct  |PerlInterpreter* interp
+Ajnod  |void   |perl_free      |PerlInterpreter* interp
+Ajnod  |int    |perl_run       |PerlInterpreter* interp
+Ajnod  |int    |perl_parse     |PerlInterpreter* interp|XSINIT_t xsinit \
                                |int argc|char** argv|char** env
 #if defined(USE_ITHREADS)
-jno    |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
+: XXX: perl_clone needs docs
+Ajno   |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
 #  if defined(PERL_IMPLICIT_SYS)
-jno    |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
+Ajno   |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
                                |struct IPerlMem* m|struct IPerlMem* ms \
                                |struct IPerlMem* mp|struct IPerlEnv* e \
                                |struct IPerlStdIO* io|struct IPerlLIO* lio \
@@ -1117,10 +1316,10 @@ jno     |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
 #endif
 
 #if defined(MYMALLOC)
-jnop   |Malloc_t|malloc        |MEM_SIZE nbytes
-jnop   |Malloc_t|calloc        |MEM_SIZE elements|MEM_SIZE size
-jnop   |Malloc_t|realloc       |Malloc_t where|MEM_SIZE nbytes
-jnop   |Free_t |mfree          |Malloc_t where
+Ajnop  |Malloc_t|malloc        |MEM_SIZE nbytes
+Ajnop  |Malloc_t|calloc        |MEM_SIZE elements|MEM_SIZE size
+Ajnop  |Malloc_t|realloc       |Malloc_t where|MEM_SIZE nbytes
+Ajnop  |Free_t |mfree          |Malloc_t where
 jnp    |MEM_SIZE|malloced_size |void *p
 #endif
 
@@ -1145,90 +1344,90 @@ public:
 START_EXTERN_C
 #endif
 #  include "pp_proto.h"
-     |SV*    |amagic_call    |SV* left|SV* right|int method|int dir
-     |bool   |Gv_AMupdate    |HV* stash
+Ap     |SV*    |amagic_call    |SV* left|SV* right|int method|int dir
+Ap     |bool   |Gv_AMupdate    |HV* stash
 p      |OP*    |append_elem    |I32 optype|OP* head|OP* tail
 p      |OP*    |append_list    |I32 optype|LISTOP* first|LISTOP* last
 p      |I32    |apply          |I32 type|SV** mark|SV** sp
-     |SV*    |avhv_delete_ent|AV *ar|SV* keysv|I32 flags|U32 hash
-     |bool   |avhv_exists_ent|AV *ar|SV* keysv|U32 hash
-     |SV**   |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash
-     |HE*    |avhv_iternext  |AV *ar
-     |SV*    |avhv_iterval   |AV *ar|HE* entry
-     |HV*    |avhv_keys      |AV *ar
-p      |void   |av_clear       |AV* ar
-     |SV*    |av_delete      |AV* ar|I32 key|I32 flags
-     |bool   |av_exists      |AV* ar|I32 key
-p      |void   |av_extend      |AV* ar|I32 key
-     |AV*    |av_fake        |I32 size|SV** svp
-p      |SV**   |av_fetch       |AV* ar|I32 key|I32 lval
-     |void   |av_fill        |AV* ar|I32 fill
-p      |I32    |av_len         |AV* ar
-p      |AV*    |av_make        |I32 size|SV** svp
-p      |SV*    |av_pop         |AV* ar
-p      |void   |av_push        |AV* ar|SV* val
-     |void   |av_reify       |AV* ar
-p      |SV*    |av_shift       |AV* ar
-p      |SV**   |av_store       |AV* ar|I32 key|SV* val
-p      |void   |av_undef       |AV* ar
-p      |void   |av_unshift     |AV* ar|I32 num
+Ap     |SV*    |avhv_delete_ent|AV *ar|SV* keysv|I32 flags|U32 hash
+Ap     |bool   |avhv_exists_ent|AV *ar|SV* keysv|U32 hash
+Ap     |SV**   |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash
+Ap     |HE*    |avhv_iternext  |AV *ar
+Ap     |SV*    |avhv_iterval   |AV *ar|HE* entry
+Ap     |HV*    |avhv_keys      |AV *ar
+Apd    |void   |av_clear       |AV* ar
+Ap     |SV*    |av_delete      |AV* ar|I32 key|I32 flags
+Ap     |bool   |av_exists      |AV* ar|I32 key
+Apd    |void   |av_extend      |AV* ar|I32 key
+Ap     |AV*    |av_fake        |I32 size|SV** svp
+Apd    |SV**   |av_fetch       |AV* ar|I32 key|I32 lval
+Ap     |void   |av_fill        |AV* ar|I32 fill
+Apd    |I32    |av_len         |AV* ar
+Apd    |AV*    |av_make        |I32 size|SV** svp
+Apd    |SV*    |av_pop         |AV* ar
+Apd    |void   |av_push        |AV* ar|SV* val
+Ap     |void   |av_reify       |AV* ar
+Apd    |SV*    |av_shift       |AV* ar
+Apd    |SV**   |av_store       |AV* ar|I32 key|SV* val
+Apd    |void   |av_undef       |AV* ar
+Apd    |void   |av_unshift     |AV* ar|I32 num
 p      |OP*    |bind_match     |I32 type|OP* left|OP* pat
 p      |OP*    |block_end      |I32 floor|OP* seq
-     |I32    |block_gimme
+Ap     |I32    |block_gimme
 p      |int    |block_start    |int full
 p      |void   |boot_core_UNIVERSAL
 p      |void   |call_list      |I32 oldscope|AV* av_list
 p      |bool   |cando          |Mode_t mode|Uid_t effective|Stat_t* statbufp
-     |U32    |cast_ulong     |NV f
-     |I32    |cast_i32       |NV f
-     |IV     |cast_iv        |NV f
-     |UV     |cast_uv        |NV f
+Ap     |U32    |cast_ulong     |NV f
+Ap     |I32    |cast_i32       |NV f
+Ap     |IV     |cast_iv        |NV f
+Ap     |UV     |cast_uv        |NV f
 #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-     |I32    |my_chsize      |int fd|Off_t length
+Ap     |I32    |my_chsize      |int fd|Off_t length
 #endif
 #if defined(USE_THREADS)
 p      |MAGIC* |condpair_magic |SV *sv
 #endif
 p      |OP*    |convert        |I32 optype|I32 flags|OP* o
-fpr    |void   |croak          |const char* pat|...
-pr     |void   |vcroak         |const char* pat|va_list* args
+Afprd  |void   |croak          |const char* pat|...
+Apr    |void   |vcroak         |const char* pat|va_list* args
 #if defined(PERL_IMPLICIT_CONTEXT)
-fnrp   |void   |croak_nocontext|const char* pat|...
-fnp    |OP*    |die_nocontext  |const char* pat|...
-fnp    |void   |deb_nocontext  |const char* pat|...
-fnp    |char*  |form_nocontext |const char* pat|...
-fnp    |SV*    |mess_nocontext |const char* pat|...
-fnp    |void   |warn_nocontext |const char* pat|...
-fnp    |void   |warner_nocontext|U32 err|const char* pat|...
-fnp    |SV*    |newSVpvf_nocontext|const char* pat|...
-fnp    |void   |sv_catpvf_nocontext|SV* sv|const char* pat|...
-fnp    |void   |sv_setpvf_nocontext|SV* sv|const char* pat|...
-fnp    |void   |sv_catpvf_mg_nocontext|SV* sv|const char* pat|...
-fnp    |void   |sv_setpvf_mg_nocontext|SV* sv|const char* pat|...
-fnp    |int    |fprintf_nocontext|PerlIO* stream|const char* fmt|...
+Afnrp  |void   |croak_nocontext|const char* pat|...
+Afnp   |OP*    |die_nocontext  |const char* pat|...
+Afnp   |void   |deb_nocontext  |const char* pat|...
+Afnp   |char*  |form_nocontext |const char* pat|...
+Afnp   |SV*    |mess_nocontext |const char* pat|...
+Afnp   |void   |warn_nocontext |const char* pat|...
+Afnp   |void   |warner_nocontext|U32 err|const char* pat|...
+Afnp   |SV*    |newSVpvf_nocontext|const char* pat|...
+Afnp   |void   |sv_catpvf_nocontext|SV* sv|const char* pat|...
+Afnp   |void   |sv_setpvf_nocontext|SV* sv|const char* pat|...
+Afnp   |void   |sv_catpvf_mg_nocontext|SV* sv|const char* pat|...
+Afnp   |void   |sv_setpvf_mg_nocontext|SV* sv|const char* pat|...
+Afnp   |int    |fprintf_nocontext|PerlIO* stream|const char* fmt|...
 #endif
 p      |void   |cv_ckproto     |CV* cv|GV* gv|char* p
 p      |CV*    |cv_clone       |CV* proto
 p      |SV*    |cv_const_sv    |CV* cv
 p      |SV*    |op_const_sv    |OP* o|CV* cv
 p      |void   |cv_undef       |CV* cv
-     |void   |cx_dump        |PERL_CONTEXT* cs
-     |SV*    |filter_add     |filter_t funcp|SV* datasv
-     |void   |filter_del     |filter_t funcp
-     |I32    |filter_read    |int idx|SV* buffer|int maxlen
-     |char** |get_op_descs
-     |char** |get_op_names
+Ap     |void   |cx_dump        |PERL_CONTEXT* cs
+Ap     |SV*    |filter_add     |filter_t funcp|SV* datasv
+Ap     |void   |filter_del     |filter_t funcp
+Ap     |I32    |filter_read    |int idx|SV* buffer|int maxlen
+Ap     |char** |get_op_descs
+Ap     |char** |get_op_names
 p      |char*  |get_no_modify
 p      |U32*   |get_opargs
-     |PPADDR_t*|get_ppaddr
+Ap     |PPADDR_t*|get_ppaddr
 p      |I32    |cxinc
-fp     |void   |deb            |const char* pat|...
-     |void   |vdeb           |const char* pat|va_list* args
-     |void   |debprofdump
-     |I32    |debop          |OP* o
-     |I32    |debstack
-     |I32    |debstackptrs
-     |char*  |delimcpy       |char* to|char* toend|char* from \
+Afp    |void   |deb            |const char* pat|...
+Ap     |void   |vdeb           |const char* pat|va_list* args
+Ap     |void   |debprofdump
+Ap     |I32    |debop          |OP* o
+Ap     |I32    |debstack
+Ap     |I32    |debstackptrs
+Ap     |char*  |delimcpy       |char* to|char* toend|char* from \
                                |char* fromend|int delim|I32* retlen
 p      |void   |deprecate      |char* s
 fp     |OP*    |die            |const char* pat|...
@@ -1237,7 +1436,7 @@ p |OP*    |die_where      |char* message|STRLEN msglen
 p      |void   |dounwind       |I32 cxix
 p      |bool   |do_aexec       |SV* really|SV** mark|SV** sp
 p      |bool   |do_aexec5      |SV* really|SV** mark|SV** sp|int fd|int flag
-     |int    |do_binmode     |PerlIO *fp|int iotype|int flag
+Ap     |int    |do_binmode     |PerlIO *fp|int iotype|int flag
 p      |void   |do_chop        |SV* asv|SV* sv
 p      |bool   |do_close       |GV* gv|bool not_implicit
 p      |bool   |do_eof         |GV* gv
@@ -1256,9 +1455,9 @@ p |I32    |do_shmio       |I32 optype|SV** mark|SV** sp
 #endif
 p      |void   |do_join        |SV* sv|SV* del|SV** mark|SV** sp
 p      |OP*    |do_kv
-     |bool   |do_open        |GV* gv|char* name|I32 len|int as_raw \
+Ap     |bool   |do_open        |GV* gv|char* name|I32 len|int as_raw \
                                |int rawmode|int rawperm|PerlIO* supplied_fp
-     |bool   |do_open9       |GV *gv|char *name|I32 len|int as_raw \
+Ap     |bool   |do_open9       |GV *gv|char *name|I32 len|int as_raw \
                                |int rawmode|int rawperm|PerlIO *supplied_fp \
                                |SV *svs|I32 num
 p      |void   |do_pipe        |SV* sv|GV* rgv|GV* wgv
@@ -1274,20 +1473,20 @@ p       |UV     |do_vecget      |SV* sv|I32 offset|I32 size
 p      |void   |do_vecset      |SV* sv
 p      |void   |do_vop         |I32 optype|SV* sv|SV* left|SV* right
 p      |OP*    |dofile         |OP* term
-     |I32    |dowantarray
-     |void   |dump_all
-     |void   |dump_eval
+Ap     |I32    |dowantarray
+Ap     |void   |dump_all
+Ap     |void   |dump_eval
 #if defined(DUMP_FDS)
-     |void   |dump_fds       |char* s
+Ap     |void   |dump_fds       |char* s
 #endif
-     |void   |dump_form      |GV* gv
-     |void   |gv_dump        |GV* gv
-     |void   |op_dump        |OP* arg
-     |void   |pmop_dump      |PMOP* pm
-     |void   |dump_packsubs  |HV* stash
-     |void   |dump_sub       |GV* gv
-p      |void   |fbm_compile    |SV* sv|U32 flags
-p      |char*  |fbm_instr      |unsigned char* big|unsigned char* bigend \
+Ap     |void   |dump_form      |GV* gv
+Ap     |void   |gv_dump        |GV* gv
+Ap     |void   |op_dump        |OP* arg
+Ap     |void   |pmop_dump      |PMOP* pm
+Ap     |void   |dump_packsubs  |HV* stash
+Ap     |void   |dump_sub       |GV* gv
+Apd    |void   |fbm_compile    |SV* sv|U32 flags
+Apd    |char*  |fbm_instr      |unsigned char* big|unsigned char* bigend \
                                |SV* littlesv|U32 flags
 p      |char*  |find_script    |char *scriptname|bool dosearch \
                                |char **search_ext|I32 flags
@@ -1296,116 +1495,116 @@ p     |PADOFFSET|find_threadsv|const char *name
 #endif
 p      |OP*    |force_list     |OP* arg
 p      |OP*    |fold_constants |OP* arg
-fp     |char*  |form           |const char* pat|...
-     |char*  |vform          |const char* pat|va_list* args
-     |void   |free_tmps
+Afp    |char*  |form           |const char* pat|...
+Ap     |char*  |vform          |const char* pat|va_list* args
+Ap     |void   |free_tmps
 p      |OP*    |gen_constant_list|OP* o
 #if !defined(HAS_GETENV_LEN)
 p      |char*  |getenv_len     |char* key|unsigned long *len
 #endif
-     |void   |gp_free        |GV* gv
-     |GP*    |gp_ref         |GP* gp
-     |GV*    |gv_AVadd       |GV* gv
-     |GV*    |gv_HVadd       |GV* gv
-     |GV*    |gv_IOadd       |GV* gv
-     |GV*    |gv_autoload4   |HV* stash|const char* name|STRLEN len \
+Ap     |void   |gp_free        |GV* gv
+Ap     |GP*    |gp_ref         |GP* gp
+Ap     |GV*    |gv_AVadd       |GV* gv
+Ap     |GV*    |gv_HVadd       |GV* gv
+Ap     |GV*    |gv_IOadd       |GV* gv
+Ap     |GV*    |gv_autoload4   |HV* stash|const char* name|STRLEN len \
                                |I32 method
-     |void   |gv_check       |HV* stash
-     |void   |gv_efullname   |SV* sv|GV* gv
-     |void   |gv_efullname3  |SV* sv|GV* gv|const char* prefix
-     |GV*    |gv_fetchfile   |const char* name
-p      |GV*    |gv_fetchmeth   |HV* stash|const char* name|STRLEN len \
+Ap     |void   |gv_check       |HV* stash
+Ap     |void   |gv_efullname   |SV* sv|GV* gv
+Ap     |void   |gv_efullname3  |SV* sv|GV* gv|const char* prefix
+Ap     |GV*    |gv_fetchfile   |const char* name
+Apd    |GV*    |gv_fetchmeth   |HV* stash|const char* name|STRLEN len \
                                |I32 level
-p      |GV*    |gv_fetchmethod |HV* stash|const char* name
-p      |GV*    |gv_fetchmethod_autoload|HV* stash|const char* name \
+Apd    |GV*    |gv_fetchmethod |HV* stash|const char* name
+Apd    |GV*    |gv_fetchmethod_autoload|HV* stash|const char* name \
                                |I32 autoload
-     |GV*    |gv_fetchpv     |const char* name|I32 add|I32 sv_type
-     |void   |gv_fullname    |SV* sv|GV* gv
-     |void   |gv_fullname3   |SV* sv|GV* gv|const char* prefix
-     |void   |gv_init        |GV* gv|HV* stash|const char* name \
+Ap     |GV*    |gv_fetchpv     |const char* name|I32 add|I32 sv_type
+Ap     |void   |gv_fullname    |SV* sv|GV* gv
+Ap     |void   |gv_fullname3   |SV* sv|GV* gv|const char* prefix
+Ap     |void   |gv_init        |GV* gv|HV* stash|const char* name \
                                |STRLEN len|int multi
-p      |HV*    |gv_stashpv     |const char* name|I32 create
-     |HV*    |gv_stashpvn    |const char* name|U32 namelen|I32 create
-p      |HV*    |gv_stashsv     |SV* sv|I32 create
-p      |void   |hv_clear       |HV* tb
-     |void   |hv_delayfree_ent|HV* hv|HE* entry
-p      |SV*    |hv_delete      |HV* tb|const char* key|U32 klen|I32 flags
-p      |SV*    |hv_delete_ent  |HV* tb|SV* key|I32 flags|U32 hash
-p      |bool   |hv_exists      |HV* tb|const char* key|U32 klen
-p      |bool   |hv_exists_ent  |HV* tb|SV* key|U32 hash
-p      |SV**   |hv_fetch       |HV* tb|const char* key|U32 klen|I32 lval
-p      |HE*    |hv_fetch_ent   |HV* tb|SV* key|I32 lval|U32 hash
-     |void   |hv_free_ent    |HV* hv|HE* entry
-p      |I32    |hv_iterinit    |HV* tb
-p      |char*  |hv_iterkey     |HE* entry|I32* retlen
-p      |SV*    |hv_iterkeysv   |HE* entry
-p      |HE*    |hv_iternext    |HV* tb
-p      |SV*    |hv_iternextsv  |HV* hv|char** key|I32* retlen
-p      |SV*    |hv_iterval     |HV* tb|HE* entry
-     |void   |hv_ksplit      |HV* hv|IV newmax
-p      |void   |hv_magic       |HV* hv|GV* gv|int how
-p      |SV**   |hv_store       |HV* tb|const char* key|U32 klen|SV* val \
+Apd    |HV*    |gv_stashpv     |const char* name|I32 create
+Ap     |HV*    |gv_stashpvn    |const char* name|U32 namelen|I32 create
+Apd    |HV*    |gv_stashsv     |SV* sv|I32 create
+Apd    |void   |hv_clear       |HV* tb
+Ap     |void   |hv_delayfree_ent|HV* hv|HE* entry
+Apd    |SV*    |hv_delete      |HV* tb|const char* key|U32 klen|I32 flags
+Apd    |SV*    |hv_delete_ent  |HV* tb|SV* key|I32 flags|U32 hash
+Apd    |bool   |hv_exists      |HV* tb|const char* key|U32 klen
+Apd    |bool   |hv_exists_ent  |HV* tb|SV* key|U32 hash
+Apd    |SV**   |hv_fetch       |HV* tb|const char* key|U32 klen|I32 lval
+Apd    |HE*    |hv_fetch_ent   |HV* tb|SV* key|I32 lval|U32 hash
+Ap     |void   |hv_free_ent    |HV* hv|HE* entry
+Apd    |I32    |hv_iterinit    |HV* tb
+Apd    |char*  |hv_iterkey     |HE* entry|I32* retlen
+Apd    |SV*    |hv_iterkeysv   |HE* entry
+Apd    |HE*    |hv_iternext    |HV* tb
+Apd    |SV*    |hv_iternextsv  |HV* hv|char** key|I32* retlen
+Apd    |SV*    |hv_iterval     |HV* tb|HE* entry
+Ap     |void   |hv_ksplit      |HV* hv|IV newmax
+Apd    |void   |hv_magic       |HV* hv|GV* gv|int how
+Apd    |SV**   |hv_store       |HV* tb|const char* key|U32 klen|SV* val \
                                |U32 hash
-p      |HE*    |hv_store_ent   |HV* tb|SV* key|SV* val|U32 hash
-p      |void   |hv_undef       |HV* tb
-     |I32    |ibcmp          |const char* a|const char* b|I32 len
-     |I32    |ibcmp_locale   |const char* a|const char* b|I32 len
+Apd    |HE*    |hv_store_ent   |HV* tb|SV* key|SV* val|U32 hash
+Apd    |void   |hv_undef       |HV* tb
+Ap     |I32    |ibcmp          |const char* a|const char* b|I32 len
+Ap     |I32    |ibcmp_locale   |const char* a|const char* b|I32 len
 p      |bool   |ingroup        |Gid_t testgid|Uid_t effective
 p      |void   |init_debugger
 p      |void   |init_stacks
 p      |U32    |intro_my
-     |char*  |instr          |const char* big|const char* little
+Ap     |char*  |instr          |const char* big|const char* little
 p      |bool   |io_close       |IO* io|bool not_implicit
 p      |OP*    |invert         |OP* cmd
-     |bool   |is_uni_alnum   |U32 c
-     |bool   |is_uni_alnumc  |U32 c
-     |bool   |is_uni_idfirst |U32 c
-     |bool   |is_uni_alpha   |U32 c
-     |bool   |is_uni_ascii   |U32 c
-     |bool   |is_uni_space   |U32 c
-     |bool   |is_uni_cntrl   |U32 c
-     |bool   |is_uni_graph   |U32 c
-     |bool   |is_uni_digit   |U32 c
-     |bool   |is_uni_upper   |U32 c
-     |bool   |is_uni_lower   |U32 c
-     |bool   |is_uni_print   |U32 c
-     |bool   |is_uni_punct   |U32 c
-     |bool   |is_uni_xdigit  |U32 c
-     |U32    |to_uni_upper   |U32 c
-     |U32    |to_uni_title   |U32 c
-     |U32    |to_uni_lower   |U32 c
-     |bool   |is_uni_alnum_lc|U32 c
-     |bool   |is_uni_alnumc_lc|U32 c
-     |bool   |is_uni_idfirst_lc|U32 c
-     |bool   |is_uni_alpha_lc|U32 c
-     |bool   |is_uni_ascii_lc|U32 c
-     |bool   |is_uni_space_lc|U32 c
-     |bool   |is_uni_cntrl_lc|U32 c
-     |bool   |is_uni_graph_lc|U32 c
-     |bool   |is_uni_digit_lc|U32 c
-     |bool   |is_uni_upper_lc|U32 c
-     |bool   |is_uni_lower_lc|U32 c
-     |bool   |is_uni_print_lc|U32 c
-     |bool   |is_uni_punct_lc|U32 c
-     |bool   |is_uni_xdigit_lc|U32 c
-     |U32    |to_uni_upper_lc|U32 c
-     |U32    |to_uni_title_lc|U32 c
-     |U32    |to_uni_lower_lc|U32 c
-     |bool   |is_utf8_alnum  |U8 *p
-     |bool   |is_utf8_alnumc |U8 *p
-     |bool   |is_utf8_idfirst|U8 *p
-     |bool   |is_utf8_alpha  |U8 *p
-     |bool   |is_utf8_ascii  |U8 *p
-     |bool   |is_utf8_space  |U8 *p
-     |bool   |is_utf8_cntrl  |U8 *p
-     |bool   |is_utf8_digit  |U8 *p
-     |bool   |is_utf8_graph  |U8 *p
-     |bool   |is_utf8_upper  |U8 *p
-     |bool   |is_utf8_lower  |U8 *p
-     |bool   |is_utf8_print  |U8 *p
-     |bool   |is_utf8_punct  |U8 *p
-     |bool   |is_utf8_xdigit |U8 *p
-     |bool   |is_utf8_mark   |U8 *p
+Ap     |bool   |is_uni_alnum   |U32 c
+Ap     |bool   |is_uni_alnumc  |U32 c
+Ap     |bool   |is_uni_idfirst |U32 c
+Ap     |bool   |is_uni_alpha   |U32 c
+Ap     |bool   |is_uni_ascii   |U32 c
+Ap     |bool   |is_uni_space   |U32 c
+Ap     |bool   |is_uni_cntrl   |U32 c
+Ap     |bool   |is_uni_graph   |U32 c
+Ap     |bool   |is_uni_digit   |U32 c
+Ap     |bool   |is_uni_upper   |U32 c
+Ap     |bool   |is_uni_lower   |U32 c
+Ap     |bool   |is_uni_print   |U32 c
+Ap     |bool   |is_uni_punct   |U32 c
+Ap     |bool   |is_uni_xdigit  |U32 c
+Ap     |U32    |to_uni_upper   |U32 c
+Ap     |U32    |to_uni_title   |U32 c
+Ap     |U32    |to_uni_lower   |U32 c
+Ap     |bool   |is_uni_alnum_lc|U32 c
+Ap     |bool   |is_uni_alnumc_lc|U32 c
+Ap     |bool   |is_uni_idfirst_lc|U32 c
+Ap     |bool   |is_uni_alpha_lc|U32 c
+Ap     |bool   |is_uni_ascii_lc|U32 c
+Ap     |bool   |is_uni_space_lc|U32 c
+Ap     |bool   |is_uni_cntrl_lc|U32 c
+Ap     |bool   |is_uni_graph_lc|U32 c
+Ap     |bool   |is_uni_digit_lc|U32 c
+Ap     |bool   |is_uni_upper_lc|U32 c
+Ap     |bool   |is_uni_lower_lc|U32 c
+Ap     |bool   |is_uni_print_lc|U32 c
+Ap     |bool   |is_uni_punct_lc|U32 c
+Ap     |bool   |is_uni_xdigit_lc|U32 c
+Ap     |U32    |to_uni_upper_lc|U32 c
+Ap     |U32    |to_uni_title_lc|U32 c
+Ap     |U32    |to_uni_lower_lc|U32 c
+Ap     |bool   |is_utf8_alnum  |U8 *p
+Ap     |bool   |is_utf8_alnumc |U8 *p
+Ap     |bool   |is_utf8_idfirst|U8 *p
+Ap     |bool   |is_utf8_alpha  |U8 *p
+Ap     |bool   |is_utf8_ascii  |U8 *p
+Ap     |bool   |is_utf8_space  |U8 *p
+Ap     |bool   |is_utf8_cntrl  |U8 *p
+Ap     |bool   |is_utf8_digit  |U8 *p
+Ap     |bool   |is_utf8_graph  |U8 *p
+Ap     |bool   |is_utf8_upper  |U8 *p
+Ap     |bool   |is_utf8_lower  |U8 *p
+Ap     |bool   |is_utf8_print  |U8 *p
+Ap     |bool   |is_utf8_punct  |U8 *p
+Ap     |bool   |is_utf8_xdigit |U8 *p
+Ap     |bool   |is_utf8_mark   |U8 *p
 p      |OP*    |jmaybe         |OP* arg
 p      |I32    |keyword        |char* d|I32 len
 p      |void   |leave_scope    |I32 base
@@ -1415,7 +1614,7 @@ p |OP*    |linklist       |OP* o
 p      |OP*    |list           |OP* o
 p      |OP*    |listkids       |OP* o
 p      |OP*    |localize       |OP* arg|I32 lexical
-p      |I32    |looks_like_number|SV* sv
+Apd    |I32    |looks_like_number|SV* sv
 p      |int    |magic_clearenv |SV* sv|MAGIC* mg
 p      |int    |magic_clear_all_env|SV* sv|MAGIC* mg
 p      |int    |magic_clearpack|SV* sv|MAGIC* mg
@@ -1467,109 +1666,109 @@ p     |int    |magic_set_all_env|SV* sv|MAGIC* mg
 p      |U32    |magic_sizepack |SV* sv|MAGIC* mg
 p      |int    |magic_wipepack |SV* sv|MAGIC* mg
 p      |void   |magicname      |char* sym|char* name|I32 namlen
-     |void   |markstack_grow
+Ap     |void   |markstack_grow
 #if defined(USE_LOCALE_COLLATE)
 p      |char*  |mem_collxfrm   |const char* s|STRLEN len|STRLEN* xlen
 #endif
-fp     |SV*    |mess           |const char* pat|...
-     |SV*    |vmess          |const char* pat|va_list* args
+Afp    |SV*    |mess           |const char* pat|...
+Ap     |SV*    |vmess          |const char* pat|va_list* args
 p      |void   |qerror         |SV* err
-p      |int    |mg_clear       |SV* sv
-p      |int    |mg_copy        |SV* sv|SV* nsv|const char* key|I32 klen
-p      |MAGIC* |mg_find        |SV* sv|int type
-p      |int    |mg_free        |SV* sv
-p      |int    |mg_get         |SV* sv
-p      |U32    |mg_length      |SV* sv
-p      |void   |mg_magical     |SV* sv
-p      |int    |mg_set         |SV* sv
-     |I32    |mg_size        |SV* sv
+Apd    |int    |mg_clear       |SV* sv
+Apd    |int    |mg_copy        |SV* sv|SV* nsv|const char* key|I32 klen
+Apd    |MAGIC* |mg_find        |SV* sv|int type
+Apd    |int    |mg_free        |SV* sv
+Apd    |int    |mg_get         |SV* sv
+Apd    |U32    |mg_length      |SV* sv
+Apd    |void   |mg_magical     |SV* sv
+Apd    |int    |mg_set         |SV* sv
+Ap     |I32    |mg_size        |SV* sv
 p      |OP*    |mod            |OP* o|I32 type
 p      |char*  |moreswitches   |char* s
 p      |OP*    |my             |OP* o
-     |NV     |my_atof        |const char *s
+Ap     |NV     |my_atof        |const char *s
 #if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
-np     |char*  |my_bcopy       |const char* from|char* to|I32 len
+Anp    |char*  |my_bcopy       |const char* from|char* to|I32 len
 #endif
 #if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-np     |char*  |my_bzero       |char* loc|I32 len
+Anp    |char*  |my_bzero       |char* loc|I32 len
 #endif
-pr     |void   |my_exit        |U32 status
-pr     |void   |my_failure_exit
-     |I32    |my_fflush_all
-     |I32    |my_lstat
+Apr    |void   |my_exit        |U32 status
+Apr    |void   |my_failure_exit
+Ap     |I32    |my_fflush_all
+Ap     |I32    |my_lstat
 #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
-np     |I32    |my_memcmp      |const char* s1|const char* s2|I32 len
+Anp    |I32    |my_memcmp      |const char* s1|const char* s2|I32 len
 #endif
 #if !defined(HAS_MEMSET)
-np     |void*  |my_memset      |char* loc|I32 ch|I32 len
+Anp    |void*  |my_memset      |char* loc|I32 ch|I32 len
 #endif
 #if !defined(PERL_OBJECT)
-     |I32    |my_pclose      |PerlIO* ptr
-     |PerlIO*|my_popen       |char* cmd|char* mode
+Ap     |I32    |my_pclose      |PerlIO* ptr
+Ap     |PerlIO*|my_popen       |char* cmd|char* mode
 #endif
-     |void   |my_setenv      |char* nam|char* val
-     |I32    |my_stat
+Ap     |void   |my_setenv      |char* nam|char* val
+Ap     |I32    |my_stat
 #if defined(MYSWAP)
-     |short  |my_swap        |short s
-     |long   |my_htonl       |long l
-     |long   |my_ntohl       |long l
+Ap     |short  |my_swap        |short s
+Ap     |long   |my_htonl       |long l
+Ap     |long   |my_ntohl       |long l
 #endif
 p      |void   |my_unexec
-     |OP*    |newANONLIST    |OP* o
-     |OP*    |newANONHASH    |OP* o
-     |OP*    |newANONSUB     |I32 floor|OP* proto|OP* block
-     |OP*    |newASSIGNOP    |I32 flags|OP* left|I32 optype|OP* right
-     |OP*    |newCONDOP      |I32 flags|OP* expr|OP* trueop|OP* falseop
-p      |void   |newCONSTSUB    |HV* stash|char* name|SV* sv
-     |void   |newFORM        |I32 floor|OP* o|OP* block
-     |OP*    |newFOROP       |I32 flags|char* label|line_t forline \
+Ap     |OP*    |newANONLIST    |OP* o
+Ap     |OP*    |newANONHASH    |OP* o
+Ap     |OP*    |newANONSUB     |I32 floor|OP* proto|OP* block
+Ap     |OP*    |newASSIGNOP    |I32 flags|OP* left|I32 optype|OP* right
+Ap     |OP*    |newCONDOP      |I32 flags|OP* expr|OP* trueop|OP* falseop
+Apd    |void   |newCONSTSUB    |HV* stash|char* name|SV* sv
+Ap     |void   |newFORM        |I32 floor|OP* o|OP* block
+Ap     |OP*    |newFOROP       |I32 flags|char* label|line_t forline \
                                |OP* sclr|OP* expr|OP*block|OP*cont
-     |OP*    |newLOGOP       |I32 optype|I32 flags|OP* left|OP* right
-     |OP*    |newLOOPEX      |I32 type|OP* label
-     |OP*    |newLOOPOP      |I32 flags|I32 debuggable|OP* expr|OP* block
-     |OP*    |newNULLLIST
-     |OP*    |newOP          |I32 optype|I32 flags
-     |void   |newPROG        |OP* o
-     |OP*    |newRANGE       |I32 flags|OP* left|OP* right
-     |OP*    |newSLICEOP     |I32 flags|OP* subscript|OP* listop
-     |OP*    |newSTATEOP     |I32 flags|char* label|OP* o
-     |CV*    |newSUB         |I32 floor|OP* o|OP* proto|OP* block
-p      |CV*    |newXS          |char* name|XSUBADDR_t f|char* filename
-p      |AV*    |newAV
-     |OP*    |newAVREF       |OP* o
-     |OP*    |newBINOP       |I32 type|I32 flags|OP* first|OP* last
-     |OP*    |newCVREF       |I32 flags|OP* o
-     |OP*    |newGVOP        |I32 type|I32 flags|GV* gv
-     |GV*    |newGVgen       |char* pack
-     |OP*    |newGVREF       |I32 type|OP* o
-     |OP*    |newHVREF       |OP* o
-p      |HV*    |newHV
-     |HV*    |newHVhv        |HV* hv
-     |IO*    |newIO
-     |OP*    |newLISTOP      |I32 type|I32 flags|OP* first|OP* last
-     |OP*    |newPADOP       |I32 type|I32 flags|SV* sv
-     |OP*    |newPMOP        |I32 type|I32 flags
-     |OP*    |newPVOP        |I32 type|I32 flags|char* pv
-     |SV*    |newRV          |SV* pref
-p      |SV*    |newRV_noinc    |SV *sv
-     |SV*    |newSV          |STRLEN len
-     |OP*    |newSVREF       |OP* o
-     |OP*    |newSVOP        |I32 type|I32 flags|SV* sv
-p      |SV*    |newSViv        |IV i
-p      |SV*    |newSVnv        |NV n
-p      |SV*    |newSVpv        |const char* s|STRLEN len
-p      |SV*    |newSVpvn       |const char* s|STRLEN len
-fp     |SV*    |newSVpvf       |const char* pat|...
-     |SV*    |vnewSVpvf      |const char* pat|va_list* args
-p      |SV*    |newSVrv        |SV* rv|const char* classname
-p      |SV*    |newSVsv        |SV* old
-     |OP*    |newUNOP        |I32 type|I32 flags|OP* first
-     |OP*    |newWHILEOP     |I32 flags|I32 debuggable|LOOP* loop \
+Ap     |OP*    |newLOGOP       |I32 optype|I32 flags|OP* left|OP* right
+Ap     |OP*    |newLOOPEX      |I32 type|OP* label
+Ap     |OP*    |newLOOPOP      |I32 flags|I32 debuggable|OP* expr|OP* block
+Ap     |OP*    |newNULLLIST
+Ap     |OP*    |newOP          |I32 optype|I32 flags
+Ap     |void   |newPROG        |OP* o
+Ap     |OP*    |newRANGE       |I32 flags|OP* left|OP* right
+Ap     |OP*    |newSLICEOP     |I32 flags|OP* subscript|OP* listop
+Ap     |OP*    |newSTATEOP     |I32 flags|char* label|OP* o
+Ap     |CV*    |newSUB         |I32 floor|OP* o|OP* proto|OP* block
+Apd    |CV*    |newXS          |char* name|XSUBADDR_t f|char* filename
+Apd    |AV*    |newAV
+Ap     |OP*    |newAVREF       |OP* o
+Ap     |OP*    |newBINOP       |I32 type|I32 flags|OP* first|OP* last
+Ap     |OP*    |newCVREF       |I32 flags|OP* o
+Ap     |OP*    |newGVOP        |I32 type|I32 flags|GV* gv
+Ap     |GV*    |newGVgen       |char* pack
+Ap     |OP*    |newGVREF       |I32 type|OP* o
+Ap     |OP*    |newHVREF       |OP* o
+Apd    |HV*    |newHV
+Ap     |HV*    |newHVhv        |HV* hv
+Ap     |IO*    |newIO
+Ap     |OP*    |newLISTOP      |I32 type|I32 flags|OP* first|OP* last
+Ap     |OP*    |newPADOP       |I32 type|I32 flags|SV* sv
+Ap     |OP*    |newPMOP        |I32 type|I32 flags
+Ap     |OP*    |newPVOP        |I32 type|I32 flags|char* pv
+Ap     |SV*    |newRV          |SV* pref
+Apd    |SV*    |newRV_noinc    |SV *sv
+Ap     |SV*    |newSV          |STRLEN len
+Ap     |OP*    |newSVREF       |OP* o
+Ap     |OP*    |newSVOP        |I32 type|I32 flags|SV* sv
+Apd    |SV*    |newSViv        |IV i
+Apd    |SV*    |newSVnv        |NV n
+Apd    |SV*    |newSVpv        |const char* s|STRLEN len
+Apd    |SV*    |newSVpvn       |const char* s|STRLEN len
+Afpd   |SV*    |newSVpvf       |const char* pat|...
+Ap     |SV*    |vnewSVpvf      |const char* pat|va_list* args
+Apd    |SV*    |newSVrv        |SV* rv|const char* classname
+Apd    |SV*    |newSVsv        |SV* old
+Ap     |OP*    |newUNOP        |I32 type|I32 flags|OP* first
+Ap     |OP*    |newWHILEOP     |I32 flags|I32 debuggable|LOOP* loop \
                                |I32 whileline|OP* expr|OP* block|OP* cont
 
 p      |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
 p      |PerlIO*|nextargv       |GV* gv
-     |char*  |ninstr         |const char* big|const char* bigend \
+Ap     |char*  |ninstr         |const char* big|const char* bigend \
                                |const char* little|const char* lend
 p      |OP*    |oopsCV         |OP* o
 p      |void   |op_free        |OP* arg
@@ -1586,48 +1785,48 @@ p       |void   |pad_reset
 p      |void   |pad_swipe      |PADOFFSET po
 p      |void   |peep           |OP* o
 #if defined(PERL_OBJECT)
-ox     |void   |Perl_construct
-ox     |void   |Perl_destruct
-ox     |void   |Perl_free
-ox     |int    |Perl_run
-ox     |int    |Perl_parse     |XSINIT_t xsinit \
+Aox    |void   |Perl_construct
+Aox    |void   |Perl_destruct
+Aox    |void   |Perl_free
+Aox    |int    |Perl_run
+Aox    |int    |Perl_parse     |XSINIT_t xsinit \
                                |int argc|char** argv|char** env
 #endif
 #if defined(USE_THREADS)
-     |struct perl_thread*    |new_struct_thread|struct perl_thread *t
+Ap     |struct perl_thread*    |new_struct_thread|struct perl_thread *t
 #endif
-     |void   |call_atexit    |ATEXIT_t fn|void *ptr
-p      |I32    |call_argv      |const char* sub_name|I32 flags|char** argv
-p      |I32    |call_method    |const char* methname|I32 flags
-p      |I32    |call_pv        |const char* sub_name|I32 flags
-p      |I32    |call_sv        |SV* sv|I32 flags
-p      |SV*    |eval_pv        |const char* p|I32 croak_on_error
-p      |I32    |eval_sv        |SV* sv|I32 flags
-p      |SV*    |get_sv         |const char* name|I32 create
-p      |AV*    |get_av         |const char* name|I32 create
-p      |HV*    |get_hv         |const char* name|I32 create
-p      |CV*    |get_cv         |const char* name|I32 create
+Ap     |void   |call_atexit    |ATEXIT_t fn|void *ptr
+Apd    |I32    |call_argv      |const char* sub_name|I32 flags|char** argv
+Apd    |I32    |call_method    |const char* methname|I32 flags
+Apd    |I32    |call_pv        |const char* sub_name|I32 flags
+Apd    |I32    |call_sv        |SV* sv|I32 flags
+Apd    |SV*    |eval_pv        |const char* p|I32 croak_on_error
+Apd    |I32    |eval_sv        |SV* sv|I32 flags
+Apd    |SV*    |get_sv         |const char* name|I32 create
+Apd    |AV*    |get_av         |const char* name|I32 create
+Apd    |HV*    |get_hv         |const char* name|I32 create
+Apd    |CV*    |get_cv         |const char* name|I32 create
 p      |int    |init_i18nl10n  |int printwarn
 p      |int    |init_i18nl14n  |int printwarn
-     |void   |new_collate    |const char* newcoll
-     |void   |new_ctype      |const char* newctype
-     |void   |new_numeric    |const char* newcoll
-     |void   |set_numeric_local
-     |void   |set_numeric_radix
-     |void   |set_numeric_standard
-p      |void   |require_pv     |const char* pv
+Ap     |void   |new_collate    |const char* newcoll
+Ap     |void   |new_ctype      |const char* newctype
+Ap     |void   |new_numeric    |const char* newcoll
+Ap     |void   |set_numeric_local
+Ap     |void   |set_numeric_radix
+Ap     |void   |set_numeric_standard
+Apd    |void   |require_pv     |const char* pv
 p      |void   |pidgone        |Pid_t pid|int status
 p      |void   |pmflag         |U16* pmfl|int ch
 p      |OP*    |pmruntime      |OP* pm|OP* expr|OP* repl
 p      |OP*    |pmtrans        |OP* o|OP* expr|OP* repl
 p      |OP*    |pop_return
-     |void   |pop_scope
+Ap     |void   |pop_scope
 p      |OP*    |prepend_elem   |I32 optype|OP* head|OP* tail
 p      |void   |push_return    |OP* o
-     |void   |push_scope
+Ap     |void   |push_scope
 p      |OP*    |ref            |OP* o|I32 type
 p      |OP*    |refkids        |OP* o|I32 type
-     |void   |regdump        |regexp* r
+Ap     |void   |regdump        |regexp* r
 p      |I32    |pregexec       |regexp* prog|char* stringarg \
                                |char* strend|char* strbeg|I32 minend \
                                |SV* screamer|U32 nosave
@@ -1643,7 +1842,7 @@ p |I32    |regexec_flags  |regexp* prog|char* stringarg \
 p      |regnode*|regnext       |regnode* p
 p      |void   |regprop        |SV* sv|regnode* o
 p      |void   |repeatcpy      |char* to|const char* from|I32 len|I32 count
-     |char*  |rninstr        |const char* big|const char* bigend \
+Ap     |char*  |rninstr        |const char* big|const char* bigend \
                                |const char* little|const char* lend
 p      |Sighandler_t|rsignal   |int i|Sighandler_t t
 p      |int    |rsignal_restore|int i|Sigsave_t* t
@@ -1655,43 +1854,43 @@ p       |void   |rxres_save     |void** rsp|REGEXP* prx
 #if !defined(HAS_RENAME)
 p      |I32    |same_dirent    |char* a|char* b
 #endif
-p      |char*  |savepv         |const char* sv
-p      |char*  |savepvn        |const char* sv|I32 len
-     |void   |savestack_grow
-     |void   |save_aelem     |AV* av|I32 idx|SV **sptr
-     |I32    |save_alloc     |I32 size|I32 pad
-     |void   |save_aptr      |AV** aptr
-     |AV*    |save_ary       |GV* gv
-     |void   |save_clearsv   |SV** svp
-     |void   |save_delete    |HV* hv|char* key|I32 klen
-     |void   |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p
-     |void   |save_destructor_x|DESTRUCTORFUNC_t f|void* p
-     |void   |save_freesv    |SV* sv
+Apd    |char*  |savepv         |const char* sv
+Apd    |char*  |savepvn        |const char* sv|I32 len
+Ap     |void   |savestack_grow
+Ap     |void   |save_aelem     |AV* av|I32 idx|SV **sptr
+Ap     |I32    |save_alloc     |I32 size|I32 pad
+Ap     |void   |save_aptr      |AV** aptr
+Ap     |AV*    |save_ary       |GV* gv
+Ap     |void   |save_clearsv   |SV** svp
+Ap     |void   |save_delete    |HV* hv|char* key|I32 klen
+Ap     |void   |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p
+Ap     |void   |save_destructor_x|DESTRUCTORFUNC_t f|void* p
+Ap     |void   |save_freesv    |SV* sv
 p      |void   |save_freeop    |OP* o
-     |void   |save_freepv    |char* pv
-     |void   |save_generic_svref|SV** sptr
-     |void   |save_gp        |GV* gv|I32 empty
-     |HV*    |save_hash      |GV* gv
-     |void   |save_helem     |HV* hv|SV *key|SV **sptr
-     |void   |save_hints
-     |void   |save_hptr      |HV** hptr
-     |void   |save_I16       |I16* intp
-     |void   |save_I32       |I32* intp
-     |void   |save_I8        |I8* bytep
-     |void   |save_int       |int* intp
-     |void   |save_item      |SV* item
-     |void   |save_iv        |IV* iv
-     |void   |save_list      |SV** sarg|I32 maxsarg
-     |void   |save_long      |long* longp
-     |void   |save_nogv      |GV* gv
+Ap     |void   |save_freepv    |char* pv
+Ap     |void   |save_generic_svref|SV** sptr
+Ap     |void   |save_gp        |GV* gv|I32 empty
+Ap     |HV*    |save_hash      |GV* gv
+Ap     |void   |save_helem     |HV* hv|SV *key|SV **sptr
+Ap     |void   |save_hints
+Ap     |void   |save_hptr      |HV** hptr
+Ap     |void   |save_I16       |I16* intp
+Ap     |void   |save_I32       |I32* intp
+Ap     |void   |save_I8        |I8* bytep
+Ap     |void   |save_int       |int* intp
+Ap     |void   |save_item      |SV* item
+Ap     |void   |save_iv        |IV* iv
+Ap     |void   |save_list      |SV** sarg|I32 maxsarg
+Ap     |void   |save_long      |long* longp
+Ap     |void   |save_nogv      |GV* gv
 p      |void   |save_op
-     |SV*    |save_scalar    |GV* gv
-     |void   |save_pptr      |char** pptr
-     |void   |save_vptr      |void* pptr
-     |void   |save_re_context
-     |void   |save_sptr      |SV** sptr
-     |SV*    |save_svref     |SV** sptr
-     |SV**   |save_threadsv  |PADOFFSET i
+Ap     |SV*    |save_scalar    |GV* gv
+Ap     |void   |save_pptr      |char** pptr
+Ap     |void   |save_vptr      |void* pptr
+Ap     |void   |save_re_context
+Ap     |void   |save_sptr      |SV** sptr
+Ap     |SV*    |save_svref     |SV** sptr
+Ap     |SV**   |save_threadsv  |PADOFFSET i
 p      |OP*    |sawparens      |OP* o
 p      |OP*    |scalar         |OP* o
 p      |OP*    |scalarkids     |OP* o
@@ -1711,111 +1910,111 @@ p     |void   |setdefout      |GV* gv
 p      |char*  |sharepvn       |const char* sv|I32 len|U32 hash
 p      |HEK*   |share_hek      |const char* sv|I32 len|U32 hash
 np     |Signal_t |sighandler   |int sig
-     |SV**   |stack_grow     |SV** sp|SV**p|int n
-     |I32    |start_subparse |I32 is_format|U32 flags
+Ap     |SV**   |stack_grow     |SV** sp|SV**p|int n
+Ap     |I32    |start_subparse |I32 is_format|U32 flags
 p      |void   |sub_crush_depth|CV* cv
-     |bool   |sv_2bool       |SV* sv
-     |CV*    |sv_2cv         |SV* sv|HV** st|GV** gvp|I32 lref
-     |IO*    |sv_2io         |SV* sv
-     |IV     |sv_2iv         |SV* sv
-p      |SV*    |sv_2mortal     |SV* sv
-     |NV     |sv_2nv         |SV* sv
-     |char*  |sv_2pv         |SV* sv|STRLEN* lp
-     |char*  |sv_2pvutf8     |SV* sv|STRLEN* lp
-     |char*  |sv_2pvbyte     |SV* sv|STRLEN* lp
-     |UV     |sv_2uv         |SV* sv
-     |IV     |sv_iv          |SV* sv
-     |UV     |sv_uv          |SV* sv
-     |NV     |sv_nv          |SV* sv
-     |char*  |sv_pvn         |SV *sv|STRLEN *len
-     |char*  |sv_pvutf8n     |SV *sv|STRLEN *len
-     |char*  |sv_pvbyten     |SV *sv|STRLEN *len
-     |I32    |sv_true        |SV *sv
+Ap     |bool   |sv_2bool       |SV* sv
+Ap     |CV*    |sv_2cv         |SV* sv|HV** st|GV** gvp|I32 lref
+Ap     |IO*    |sv_2io         |SV* sv
+Ap     |IV     |sv_2iv         |SV* sv
+Apd    |SV*    |sv_2mortal     |SV* sv
+Ap     |NV     |sv_2nv         |SV* sv
+Ap     |char*  |sv_2pv         |SV* sv|STRLEN* lp
+Ap     |char*  |sv_2pvutf8     |SV* sv|STRLEN* lp
+Ap     |char*  |sv_2pvbyte     |SV* sv|STRLEN* lp
+Ap     |UV     |sv_2uv         |SV* sv
+Ap     |IV     |sv_iv          |SV* sv
+Ap     |UV     |sv_uv          |SV* sv
+Ap     |NV     |sv_nv          |SV* sv
+Ap     |char*  |sv_pvn         |SV *sv|STRLEN *len
+Ap     |char*  |sv_pvutf8n     |SV *sv|STRLEN *len
+Ap     |char*  |sv_pvbyten     |SV *sv|STRLEN *len
+Ap     |I32    |sv_true        |SV *sv
 p      |void   |sv_add_arena   |char* ptr|U32 size|U32 flags
-     |int    |sv_backoff     |SV* sv
-p      |SV*    |sv_bless       |SV* sv|HV* stash
-fp     |void   |sv_catpvf      |SV* sv|const char* pat|...
-     |void   |sv_vcatpvf     |SV* sv|const char* pat|va_list* args
-p      |void   |sv_catpv       |SV* sv|const char* ptr
-p      |void   |sv_catpvn      |SV* sv|const char* ptr|STRLEN len
-p      |void   |sv_catsv       |SV* dsv|SV* ssv
-p      |void   |sv_chop        |SV* sv|char* ptr
+Ap     |int    |sv_backoff     |SV* sv
+Apd    |SV*    |sv_bless       |SV* sv|HV* stash
+Afpd   |void   |sv_catpvf      |SV* sv|const char* pat|...
+Ap     |void   |sv_vcatpvf     |SV* sv|const char* pat|va_list* args
+Apd    |void   |sv_catpv       |SV* sv|const char* ptr
+Apd    |void   |sv_catpvn      |SV* sv|const char* ptr|STRLEN len
+Apd    |void   |sv_catsv       |SV* dsv|SV* ssv
+Apd    |void   |sv_chop        |SV* sv|char* ptr
 p      |void   |sv_clean_all
 p      |void   |sv_clean_objs
-     |void   |sv_clear       |SV* sv
-p      |I32    |sv_cmp         |SV* sv1|SV* sv2
-     |I32    |sv_cmp_locale  |SV* sv1|SV* sv2
+Ap     |void   |sv_clear       |SV* sv
+Apd    |I32    |sv_cmp         |SV* sv1|SV* sv2
+Ap     |I32    |sv_cmp_locale  |SV* sv1|SV* sv2
 #if defined(USE_LOCALE_COLLATE)
-     |char*  |sv_collxfrm    |SV* sv|STRLEN* nxp
+Ap     |char*  |sv_collxfrm    |SV* sv|STRLEN* nxp
 #endif
 p      |OP*    |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
-p      |void   |sv_dec         |SV* sv
-     |void   |sv_dump        |SV* sv
-p      |bool   |sv_derived_from|SV* sv|const char* name
-p      |I32    |sv_eq          |SV* sv1|SV* sv2
-     |void   |sv_free        |SV* sv
+Apd    |void   |sv_dec         |SV* sv
+Ap     |void   |sv_dump        |SV* sv
+Apd    |bool   |sv_derived_from|SV* sv|const char* name
+Apd    |I32    |sv_eq          |SV* sv1|SV* sv2
+Ap     |void   |sv_free        |SV* sv
 p      |void   |sv_free_arenas
 p      |char*  |sv_gets        |SV* sv|PerlIO* fp|I32 append
-p      |char*  |sv_grow        |SV* sv|STRLEN newlen
-p      |void   |sv_inc         |SV* sv
-p      |void   |sv_insert      |SV* bigsv|STRLEN offset|STRLEN len \
+Apd    |char*  |sv_grow        |SV* sv|STRLEN newlen
+Apd    |void   |sv_inc         |SV* sv
+Apd    |void   |sv_insert      |SV* bigsv|STRLEN offset|STRLEN len \
                                |char* little|STRLEN littlelen
-p      |int    |sv_isa         |SV* sv|const char* name
-p      |int    |sv_isobject    |SV* sv
-p      |STRLEN |sv_len         |SV* sv
-     |STRLEN |sv_len_utf8    |SV* sv
-p      |void   |sv_magic       |SV* sv|SV* obj|int how|const char* name \
+Apd    |int    |sv_isa         |SV* sv|const char* name
+Apd    |int    |sv_isobject    |SV* sv
+Apd    |STRLEN |sv_len         |SV* sv
+Ap     |STRLEN |sv_len_utf8    |SV* sv
+Apd    |void   |sv_magic       |SV* sv|SV* obj|int how|const char* name \
                                |I32 namlen
-p      |SV*    |sv_mortalcopy  |SV* oldsv
-p      |SV*    |sv_newmortal
-     |SV*    |sv_newref      |SV* sv
-     |char*  |sv_peek        |SV* sv
-     |void   |sv_pos_u2b     |SV* sv|I32* offsetp|I32* lenp
-     |void   |sv_pos_b2u     |SV* sv|I32* offsetp
-     |char*  |sv_pvn_force   |SV* sv|STRLEN* lp
-     |char*  |sv_pvutf8n_force|SV* sv|STRLEN* lp
-     |char*  |sv_pvbyten_force|SV* sv|STRLEN* lp
-     |char*  |sv_reftype     |SV* sv|int ob
-     |void   |sv_replace     |SV* sv|SV* nsv
-     |void   |sv_report_used
-     |void   |sv_reset       |char* s|HV* stash
-fp     |void   |sv_setpvf      |SV* sv|const char* pat|...
-     |void   |sv_vsetpvf     |SV* sv|const char* pat|va_list* args
-p      |void   |sv_setiv       |SV* sv|IV num
-p      |void   |sv_setpviv     |SV* sv|IV num
-p      |void   |sv_setuv       |SV* sv|UV num
-p      |void   |sv_setnv       |SV* sv|NV num
-p      |SV*    |sv_setref_iv   |SV* rv|const char* classname|IV iv
-p      |SV*    |sv_setref_nv   |SV* rv|const char* classname|NV nv
-p      |SV*    |sv_setref_pv   |SV* rv|const char* classname|void* pv
-p      |SV*    |sv_setref_pvn  |SV* rv|const char* classname|char* pv \
+Apd    |SV*    |sv_mortalcopy  |SV* oldsv
+Apd    |SV*    |sv_newmortal
+Ap     |SV*    |sv_newref      |SV* sv
+Ap     |char*  |sv_peek        |SV* sv
+Ap     |void   |sv_pos_u2b     |SV* sv|I32* offsetp|I32* lenp
+Ap     |void   |sv_pos_b2u     |SV* sv|I32* offsetp
+Ap     |char*  |sv_pvn_force   |SV* sv|STRLEN* lp
+Ap     |char*  |sv_pvutf8n_force|SV* sv|STRLEN* lp
+Ap     |char*  |sv_pvbyten_force|SV* sv|STRLEN* lp
+Ap     |char*  |sv_reftype     |SV* sv|int ob
+Ap     |void   |sv_replace     |SV* sv|SV* nsv
+Ap     |void   |sv_report_used
+Ap     |void   |sv_reset       |char* s|HV* stash
+Afpd   |void   |sv_setpvf      |SV* sv|const char* pat|...
+Ap     |void   |sv_vsetpvf     |SV* sv|const char* pat|va_list* args
+Apd    |void   |sv_setiv       |SV* sv|IV num
+Apd    |void   |sv_setpviv     |SV* sv|IV num
+Apd    |void   |sv_setuv       |SV* sv|UV num
+Apd    |void   |sv_setnv       |SV* sv|NV num
+Apd    |SV*    |sv_setref_iv   |SV* rv|const char* classname|IV iv
+Apd    |SV*    |sv_setref_nv   |SV* rv|const char* classname|NV nv
+Apd    |SV*    |sv_setref_pv   |SV* rv|const char* classname|void* pv
+Apd    |SV*    |sv_setref_pvn  |SV* rv|const char* classname|char* pv \
                                |STRLEN n
-p      |void   |sv_setpv       |SV* sv|const char* ptr
-p      |void   |sv_setpvn      |SV* sv|const char* ptr|STRLEN len
-p      |void   |sv_setsv       |SV* dsv|SV* ssv
-     |void   |sv_taint       |SV* sv
-     |bool   |sv_tainted     |SV* sv
-     |int    |sv_unmagic     |SV* sv|int type
-p      |void   |sv_unref       |SV* sv
-     |void   |sv_untaint     |SV* sv
-p      |bool   |sv_upgrade     |SV* sv|U32 mt
-p      |void   |sv_usepvn      |SV* sv|char* ptr|STRLEN len
-p      |void   |sv_vcatpvfn    |SV* sv|const char* pat|STRLEN patlen \
+Apd    |void   |sv_setpv       |SV* sv|const char* ptr
+Apd    |void   |sv_setpvn      |SV* sv|const char* ptr|STRLEN len
+Apd    |void   |sv_setsv       |SV* dsv|SV* ssv
+Ap     |void   |sv_taint       |SV* sv
+Ap     |bool   |sv_tainted     |SV* sv
+Ap     |int    |sv_unmagic     |SV* sv|int type
+Apd    |void   |sv_unref       |SV* sv
+Ap     |void   |sv_untaint     |SV* sv
+Apd    |bool   |sv_upgrade     |SV* sv|U32 mt
+Apd    |void   |sv_usepvn      |SV* sv|char* ptr|STRLEN len
+Apd    |void   |sv_vcatpvfn    |SV* sv|const char* pat|STRLEN patlen \
                                |va_list* args|SV** svargs|I32 svmax \
                                |bool *maybe_tainted
-p      |void   |sv_vsetpvfn    |SV* sv|const char* pat|STRLEN patlen \
+Apd    |void   |sv_vsetpvfn    |SV* sv|const char* pat|STRLEN patlen \
                                |va_list* args|SV** svargs|I32 svmax \
                                |bool *maybe_tainted
 p      |SV*    |swash_init     |char* pkg|char* name|SV* listsv \
                                |I32 minbits|I32 none
 p      |UV     |swash_fetch    |SV *sv|U8 *ptr
-     |void   |taint_env
-     |void   |taint_proper   |const char* f|const char* s
-     |UV     |to_utf8_lower  |U8 *p
-     |UV     |to_utf8_upper  |U8 *p
-     |UV     |to_utf8_title  |U8 *p
+Ap     |void   |taint_env
+Ap     |void   |taint_proper   |const char* f|const char* s
+Ap     |UV     |to_utf8_lower  |U8 *p
+Ap     |UV     |to_utf8_upper  |U8 *p
+Ap     |UV     |to_utf8_title  |U8 *p
 #if defined(UNLINK_ALL_VERSIONS)
-     |I32    |unlnk          |char* f
+Ap     |I32    |unlnk          |char* f
 #endif
 #if defined(USE_THREADS)
 p      |void   |unlock_condpair|void* svv
@@ -1823,21 +2022,21 @@ p       |void   |unlock_condpair|void* svv
 p      |void   |unsharepvn     |const char* sv|I32 len|U32 hash
 p      |void   |unshare_hek    |HEK* hek
 p      |void   |utilize        |int aver|I32 floor|OP* version|OP* id|OP* arg
-     |U8*    |utf16_to_utf8  |U16* p|U8 *d|I32 bytelen
-     |U8*    |utf16_to_utf8_reversed|U16* p|U8 *d|I32 bytelen
-     |I32    |utf8_distance  |U8 *a|U8 *b
-     |U8*    |utf8_hop       |U8 *s|I32 off
-     |UV     |utf8_to_uv     |U8 *s|I32* retlen
-     |U8*    |uv_to_utf8     |U8 *d|UV uv
+Ap     |U8*    |utf16_to_utf8  |U16* p|U8 *d|I32 bytelen
+Ap     |U8*    |utf16_to_utf8_reversed|U16* p|U8 *d|I32 bytelen
+Ap     |I32    |utf8_distance  |U8 *a|U8 *b
+Ap     |U8*    |utf8_hop       |U8 *s|I32 off
+Ap     |UV     |utf8_to_uv     |U8 *s|I32* retlen
+Ap     |U8*    |uv_to_utf8     |U8 *d|UV uv
 p      |void   |vivify_defelem |SV* sv
 p      |void   |vivify_ref     |SV* sv|U32 to_what
 p      |I32    |wait4pid       |Pid_t pid|int* statusp|int flags
 p      |void   |report_closed_fh|GV *gv|IO *io|const char *func|const char *obj
 p      |void   |report_uninit
-fp     |void   |warn           |const char* pat|...
-     |void   |vwarn          |const char* pat|va_list* args
-fp     |void   |warner         |U32 err|const char* pat|...
-     |void   |vwarner        |U32 err|const char* pat|va_list* args
+Afpd   |void   |warn           |const char* pat|...
+Ap     |void   |vwarn          |const char* pat|va_list* args
+Afp    |void   |warner         |U32 err|const char* pat|...
+Ap     |void   |vwarner        |U32 err|const char* pat|va_list* args
 p      |void   |watch          |char** addr
 p      |I32    |whichsig       |char* sig
 p      |int    |yyerror        |char* s
@@ -1849,94 +2048,94 @@ p       |int    |yylex
 p      |int    |yyparse
 p      |int    |yywarn         |char* s
 #if defined(MYMALLOC)
-     |void   |dump_mstats    |char* s
+Ap     |void   |dump_mstats    |char* s
 #endif
-np     |Malloc_t|safesysmalloc |MEM_SIZE nbytes
-np     |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
-np     |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
-np     |Free_t |safesysfree    |Malloc_t where
+Anp    |Malloc_t|safesysmalloc |MEM_SIZE nbytes
+Anp    |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
+Anp    |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
+Anp    |Free_t |safesysfree    |Malloc_t where
 #if defined(LEAKTEST)
-np     |Malloc_t|safexmalloc   |I32 x|MEM_SIZE size
-np     |Malloc_t|safexcalloc   |I32 x|MEM_SIZE elements|MEM_SIZE size
-np     |Malloc_t|safexrealloc  |Malloc_t where|MEM_SIZE size
-np     |void   |safexfree      |Malloc_t where
+Anp    |Malloc_t|safexmalloc   |I32 x|MEM_SIZE size
+Anp    |Malloc_t|safexcalloc   |I32 x|MEM_SIZE elements|MEM_SIZE size
+Anp    |Malloc_t|safexrealloc  |Malloc_t where|MEM_SIZE size
+Anp    |void   |safexfree      |Malloc_t where
 #endif
 #if defined(PERL_GLOBAL_STRUCT)
-     |struct perl_vars *|GetVars
+Ap     |struct perl_vars *|GetVars
 #endif
-     |int    |runops_standard
-     |int    |runops_debug
-fp     |void   |sv_catpvf_mg   |SV *sv|const char* pat|...
-     |void   |sv_vcatpvf_mg  |SV* sv|const char* pat|va_list* args
-p      |void   |sv_catpv_mg    |SV *sv|const char *ptr
-p      |void   |sv_catpvn_mg   |SV *sv|const char *ptr|STRLEN len
-p      |void   |sv_catsv_mg    |SV *dstr|SV *sstr
-fp     |void   |sv_setpvf_mg   |SV *sv|const char* pat|...
-     |void   |sv_vsetpvf_mg  |SV* sv|const char* pat|va_list* args
-p      |void   |sv_setiv_mg    |SV *sv|IV i
-p      |void   |sv_setpviv_mg  |SV *sv|IV iv
-p      |void   |sv_setuv_mg    |SV *sv|UV u
-p      |void   |sv_setnv_mg    |SV *sv|NV num
-p      |void   |sv_setpv_mg    |SV *sv|const char *ptr
-p      |void   |sv_setpvn_mg   |SV *sv|const char *ptr|STRLEN len
-p      |void   |sv_setsv_mg    |SV *dstr|SV *sstr
-p      |void   |sv_usepvn_mg   |SV *sv|char *ptr|STRLEN len
-     |MGVTBL*|get_vtbl       |int vtbl_id
+Ap     |int    |runops_standard
+Ap     |int    |runops_debug
+Afpd   |void   |sv_catpvf_mg   |SV *sv|const char* pat|...
+Ap     |void   |sv_vcatpvf_mg  |SV* sv|const char* pat|va_list* args
+Apd    |void   |sv_catpv_mg    |SV *sv|const char *ptr
+Apd    |void   |sv_catpvn_mg   |SV *sv|const char *ptr|STRLEN len
+Apd    |void   |sv_catsv_mg    |SV *dstr|SV *sstr
+Afpd   |void   |sv_setpvf_mg   |SV *sv|const char* pat|...
+Ap     |void   |sv_vsetpvf_mg  |SV* sv|const char* pat|va_list* args
+Apd    |void   |sv_setiv_mg    |SV *sv|IV i
+Apd    |void   |sv_setpviv_mg  |SV *sv|IV iv
+Apd    |void   |sv_setuv_mg    |SV *sv|UV u
+Apd    |void   |sv_setnv_mg    |SV *sv|NV num
+Apd    |void   |sv_setpv_mg    |SV *sv|const char *ptr
+Apd    |void   |sv_setpvn_mg   |SV *sv|const char *ptr|STRLEN len
+Apd    |void   |sv_setsv_mg    |SV *dstr|SV *sstr
+Apd    |void   |sv_usepvn_mg   |SV *sv|char *ptr|STRLEN len
+Ap     |MGVTBL*|get_vtbl       |int vtbl_id
 p      |char*  |pv_display     |SV *sv|char *pv|STRLEN cur|STRLEN len \
                                |STRLEN pvlim
-fp     |void   |dump_indent    |I32 level|PerlIO *file|const char* pat|...
-     |void   |dump_vindent   |I32 level|PerlIO *file|const char* pat \
+Afp    |void   |dump_indent    |I32 level|PerlIO *file|const char* pat|...
+Ap     |void   |dump_vindent   |I32 level|PerlIO *file|const char* pat \
                                |va_list *args
-     |void   |do_gv_dump     |I32 level|PerlIO *file|char *name|GV *sv
-     |void   |do_gvgv_dump   |I32 level|PerlIO *file|char *name|GV *sv
-     |void   |do_hv_dump     |I32 level|PerlIO *file|char *name|HV *sv
-     |void   |do_magic_dump  |I32 level|PerlIO *file|MAGIC *mg|I32 nest \
+Ap     |void   |do_gv_dump     |I32 level|PerlIO *file|char *name|GV *sv
+Ap     |void   |do_gvgv_dump   |I32 level|PerlIO *file|char *name|GV *sv
+Ap     |void   |do_hv_dump     |I32 level|PerlIO *file|char *name|HV *sv
+Ap     |void   |do_magic_dump  |I32 level|PerlIO *file|MAGIC *mg|I32 nest \
                                |I32 maxnest|bool dumpops|STRLEN pvlim
-     |void   |do_op_dump     |I32 level|PerlIO *file|OP *o
-     |void   |do_pmop_dump   |I32 level|PerlIO *file|PMOP *pm
-     |void   |do_sv_dump     |I32 level|PerlIO *file|SV *sv|I32 nest \
+Ap     |void   |do_op_dump     |I32 level|PerlIO *file|OP *o
+Ap     |void   |do_pmop_dump   |I32 level|PerlIO *file|PMOP *pm
+Ap     |void   |do_sv_dump     |I32 level|PerlIO *file|SV *sv|I32 nest \
                                |I32 maxnest|bool dumpops|STRLEN pvlim
-     |void   |magic_dump     |MAGIC *mg
-     |void*  |default_protect|volatile JMPENV *je|int *excpt \
+Ap     |void   |magic_dump     |MAGIC *mg
+Ap     |void*  |default_protect|volatile JMPENV *je|int *excpt \
                                |protect_body_t body|...
-     |void*  |vdefault_protect|volatile JMPENV *je|int *excpt \
+Ap     |void*  |vdefault_protect|volatile JMPENV *je|int *excpt \
                                |protect_body_t body|va_list *args
-     |void   |reginitcolors
-     |char*  |sv_2pv_nolen   |SV* sv
-     |char*  |sv_2pvutf8_nolen|SV* sv
-     |char*  |sv_2pvbyte_nolen|SV* sv
-     |char*  |sv_pv          |SV *sv
-     |char*  |sv_pvutf8      |SV *sv
-     |char*  |sv_pvbyte      |SV *sv
-     |void   |sv_force_normal|SV *sv
-     |void   |tmps_grow      |I32 n
-     |SV*    |sv_rvweaken    |SV *sv
+Ap     |void   |reginitcolors
+Ap     |char*  |sv_2pv_nolen   |SV* sv
+Ap     |char*  |sv_2pvutf8_nolen|SV* sv
+Ap     |char*  |sv_2pvbyte_nolen|SV* sv
+Ap     |char*  |sv_pv          |SV *sv
+Ap     |char*  |sv_pvutf8      |SV *sv
+Ap     |char*  |sv_pvbyte      |SV *sv
+Ap     |void   |sv_force_normal|SV *sv
+Ap     |void   |tmps_grow      |I32 n
+Ap     |SV*    |sv_rvweaken    |SV *sv
 p      |int    |magic_killbackrefs|SV *sv|MAGIC *mg
-     |OP*    |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block
-     |CV*    |newATTRSUB     |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
-     |void   |newMYSUB       |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
+Ap     |OP*    |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block
+Ap     |CV*    |newATTRSUB     |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
+Ap     |void   |newMYSUB       |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
 p      |OP *   |my_attrs       |OP *o|OP *attrs
 p      |void   |boot_core_xsutils
 #if defined(USE_ITHREADS)
-     |PERL_CONTEXT*|cx_dup   |PERL_CONTEXT* cx|I32 ix|I32 max
-     |PERL_SI*|si_dup        |PERL_SI* si
-     |ANY*   |ss_dup         |PerlInterpreter* proto_perl
-     |void*  |any_dup        |void* v|PerlInterpreter* proto_perl
-     |HE*    |he_dup         |HE* e|bool shared
-     |REGEXP*|re_dup         |REGEXP* r
-     |PerlIO*|fp_dup         |PerlIO* fp|char type
-     |DIR*   |dirp_dup       |DIR* dp
-     |GP*    |gp_dup         |GP* gp
-     |MAGIC* |mg_dup         |MAGIC* mg
-     |SV*    |sv_dup         |SV* sstr
+Ap     |PERL_CONTEXT*|cx_dup   |PERL_CONTEXT* cx|I32 ix|I32 max
+Ap     |PERL_SI*|si_dup        |PERL_SI* si
+Ap     |ANY*   |ss_dup         |PerlInterpreter* proto_perl
+Ap     |void*  |any_dup        |void* v|PerlInterpreter* proto_perl
+Ap     |HE*    |he_dup         |HE* e|bool shared
+Ap     |REGEXP*|re_dup         |REGEXP* r
+Ap     |PerlIO*|fp_dup         |PerlIO* fp|char type
+Ap     |DIR*   |dirp_dup       |DIR* dp
+Ap     |GP*    |gp_dup         |GP* gp
+Ap     |MAGIC* |mg_dup         |MAGIC* mg
+Ap     |SV*    |sv_dup         |SV* sstr
 #if defined(HAVE_INTERP_INTERN)
-     |void   |sys_intern_dup |struct interp_intern* src \
+Ap     |void   |sys_intern_dup |struct interp_intern* src \
                                |struct interp_intern* dst
 #endif
-     |PTR_TBL_t*|ptr_table_new
-     |void*  |ptr_table_fetch|PTR_TBL_t *tbl|void *sv
-     |void   |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv
-     |void   |ptr_table_split|PTR_TBL_t *tbl
+Ap     |PTR_TBL_t*|ptr_table_new
+Ap     |void*  |ptr_table_fetch|PTR_TBL_t *tbl|void *sv
+Ap     |void   |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv
+Ap     |void   |ptr_table_split|PTR_TBL_t *tbl
 #endif
 
 #if defined(PERL_OBJECT)
index 734b663..d3d4cd6 100644 (file)
@@ -17,12 +17,8 @@ Perl_malloc
 Perl_calloc
 Perl_realloc
 Perl_mfree
-Perl_malloced_size
 Perl_amagic_call
 Perl_Gv_AMupdate
-Perl_append_elem
-Perl_append_list
-Perl_apply
 Perl_avhv_delete_ent
 Perl_avhv_exists_ent
 Perl_avhv_fetch_ent
@@ -45,20 +41,12 @@ Perl_av_shift
 Perl_av_store
 Perl_av_undef
 Perl_av_unshift
-Perl_bind_match
-Perl_block_end
 Perl_block_gimme
-Perl_block_start
-Perl_boot_core_UNIVERSAL
-Perl_call_list
-Perl_cando
 Perl_cast_ulong
 Perl_cast_i32
 Perl_cast_iv
 Perl_cast_uv
 Perl_my_chsize
-Perl_condpair_magic
-Perl_convert
 Perl_croak
 Perl_vcroak
 Perl_croak_nocontext
@@ -74,21 +62,13 @@ Perl_sv_setpvf_nocontext
 Perl_sv_catpvf_mg_nocontext
 Perl_sv_setpvf_mg_nocontext
 Perl_fprintf_nocontext
-Perl_cv_ckproto
-Perl_cv_clone
-Perl_cv_const_sv
-Perl_op_const_sv
-Perl_cv_undef
 Perl_cx_dump
 Perl_filter_add
 Perl_filter_del
 Perl_filter_read
 Perl_get_op_descs
 Perl_get_op_names
-Perl_get_no_modify
-Perl_get_opargs
 Perl_get_ppaddr
-Perl_cxinc
 Perl_deb
 Perl_vdeb
 Perl_debprofdump
@@ -96,43 +76,9 @@ Perl_debop
 Perl_debstack
 Perl_debstackptrs
 Perl_delimcpy
-Perl_deprecate
-Perl_die
-Perl_vdie
-Perl_die_where
-Perl_dounwind
-Perl_do_aexec
-Perl_do_aexec5
 Perl_do_binmode
-Perl_do_chop
-Perl_do_close
-Perl_do_eof
-Perl_do_exec
-Perl_do_exec3
-Perl_do_execfree
-Perl_do_ipcctl
-Perl_do_ipcget
-Perl_do_msgrcv
-Perl_do_msgsnd
-Perl_do_semop
-Perl_do_shmio
-Perl_do_join
-Perl_do_kv
 Perl_do_open
 Perl_do_open9
-Perl_do_pipe
-Perl_do_print
-Perl_do_readline
-Perl_do_chomp
-Perl_do_seek
-Perl_do_sprintf
-Perl_do_sysseek
-Perl_do_tell
-Perl_do_trans
-Perl_do_vecget
-Perl_do_vecset
-Perl_do_vop
-Perl_dofile
 Perl_dowantarray
 Perl_dump_all
 Perl_dump_eval
@@ -145,15 +91,9 @@ Perl_dump_packsubs
 Perl_dump_sub
 Perl_fbm_compile
 Perl_fbm_instr
-Perl_find_script
-Perl_find_threadsv
-Perl_force_list
-Perl_fold_constants
 Perl_form
 Perl_vform
 Perl_free_tmps
-Perl_gen_constant_list
-Perl_getenv_len
 Perl_gp_free
 Perl_gp_ref
 Perl_gv_AVadd
@@ -196,13 +136,7 @@ Perl_hv_store_ent
 Perl_hv_undef
 Perl_ibcmp
 Perl_ibcmp_locale
-Perl_ingroup
-Perl_init_debugger
-Perl_init_stacks
-Perl_intro_my
 Perl_instr
-Perl_io_close
-Perl_invert
 Perl_is_uni_alnum
 Perl_is_uni_alnumc
 Perl_is_uni_idfirst
@@ -252,68 +186,10 @@ Perl_is_utf8_print
 Perl_is_utf8_punct
 Perl_is_utf8_xdigit
 Perl_is_utf8_mark
-Perl_jmaybe
-Perl_keyword
-Perl_leave_scope
-Perl_lex_end
-Perl_lex_start
-Perl_linklist
-Perl_list
-Perl_listkids
-Perl_localize
 Perl_looks_like_number
-Perl_magic_clearenv
-Perl_magic_clear_all_env
-Perl_magic_clearpack
-Perl_magic_clearsig
-Perl_magic_existspack
-Perl_magic_freeregexp
-Perl_magic_get
-Perl_magic_getarylen
-Perl_magic_getdefelem
-Perl_magic_getglob
-Perl_magic_getnkeys
-Perl_magic_getpack
-Perl_magic_getpos
-Perl_magic_getsig
-Perl_magic_getsubstr
-Perl_magic_gettaint
-Perl_magic_getuvar
-Perl_magic_getvec
-Perl_magic_len
-Perl_magic_mutexfree
-Perl_magic_nextpack
-Perl_magic_regdata_cnt
-Perl_magic_regdatum_get
-Perl_magic_set
-Perl_magic_setamagic
-Perl_magic_setarylen
-Perl_magic_setbm
-Perl_magic_setdbline
-Perl_magic_setcollxfrm
-Perl_magic_setdefelem
-Perl_magic_setenv
-Perl_magic_setfm
-Perl_magic_setisa
-Perl_magic_setglob
-Perl_magic_setmglob
-Perl_magic_setnkeys
-Perl_magic_setpack
-Perl_magic_setpos
-Perl_magic_setsig
-Perl_magic_setsubstr
-Perl_magic_settaint
-Perl_magic_setuvar
-Perl_magic_setvec
-Perl_magic_set_all_env
-Perl_magic_sizepack
-Perl_magic_wipepack
-Perl_magicname
 Perl_markstack_grow
-Perl_mem_collxfrm
 Perl_mess
 Perl_vmess
-Perl_qerror
 Perl_mg_clear
 Perl_mg_copy
 Perl_mg_find
@@ -323,9 +199,6 @@ Perl_mg_length
 Perl_mg_magical
 Perl_mg_set
 Perl_mg_size
-Perl_mod
-Perl_moreswitches
-Perl_my
 Perl_my_atof
 Perl_my_bcopy
 Perl_my_bzero
@@ -342,7 +215,6 @@ Perl_my_stat
 Perl_my_swap
 Perl_my_htonl
 Perl_my_ntohl
-Perl_my_unexec
 Perl_newANONLIST
 Perl_newANONHASH
 Perl_newANONSUB
@@ -392,23 +264,7 @@ Perl_newSVrv
 Perl_newSVsv
 Perl_newUNOP
 Perl_newWHILEOP
-Perl_new_stackinfo
-Perl_nextargv
 Perl_ninstr
-Perl_oopsCV
-Perl_op_free
-Perl_package
-Perl_pad_alloc
-Perl_pad_allocmy
-Perl_pad_findmy
-Perl_oopsAV
-Perl_oopsHV
-Perl_pad_leavemy
-Perl_pad_sv
-Perl_pad_free
-Perl_pad_reset
-Perl_pad_swipe
-Perl_peep
 Perl_new_struct_thread
 Perl_call_atexit
 Perl_call_argv
@@ -421,8 +277,6 @@ Perl_get_sv
 Perl_get_av
 Perl_get_hv
 Perl_get_cv
-Perl_init_i18nl10n
-Perl_init_i18nl14n
 Perl_new_collate
 Perl_new_ctype
 Perl_new_numeric
@@ -430,36 +284,10 @@ Perl_set_numeric_local
 Perl_set_numeric_radix
 Perl_set_numeric_standard
 Perl_require_pv
-Perl_pidgone
-Perl_pmflag
-Perl_pmruntime
-Perl_pmtrans
-Perl_pop_return
 Perl_pop_scope
-Perl_prepend_elem
-Perl_push_return
 Perl_push_scope
-Perl_ref
-Perl_refkids
 Perl_regdump
-Perl_pregexec
-Perl_pregfree
-Perl_pregcomp
-Perl_re_intuit_start
-Perl_re_intuit_string
-Perl_regexec_flags
-Perl_regnext
-Perl_regprop
-Perl_repeatcpy
 Perl_rninstr
-Perl_rsignal
-Perl_rsignal_restore
-Perl_rsignal_save
-Perl_rsignal_state
-Perl_rxres_free
-Perl_rxres_restore
-Perl_rxres_save
-Perl_same_dirent
 Perl_savepv
 Perl_savepvn
 Perl_savestack_grow
@@ -472,7 +300,6 @@ Perl_save_delete
 Perl_save_destructor
 Perl_save_destructor_x
 Perl_save_freesv
-Perl_save_freeop
 Perl_save_freepv
 Perl_save_generic_svref
 Perl_save_gp
@@ -489,7 +316,6 @@ Perl_save_iv
 Perl_save_list
 Perl_save_long
 Perl_save_nogv
-Perl_save_op
 Perl_save_scalar
 Perl_save_pptr
 Perl_save_vptr
@@ -497,25 +323,8 @@ Perl_save_re_context
 Perl_save_sptr
 Perl_save_svref
 Perl_save_threadsv
-Perl_sawparens
-Perl_scalar
-Perl_scalarkids
-Perl_scalarseq
-Perl_scalarvoid
-Perl_scan_bin
-Perl_scan_hex
-Perl_scan_num
-Perl_scan_oct
-Perl_scope
-Perl_screaminstr
-Perl_setenv_getix
-Perl_setdefout
-Perl_sharepvn
-Perl_share_hek
-Perl_sighandler
 Perl_stack_grow
 Perl_start_subparse
-Perl_sub_crush_depth
 Perl_sv_2bool
 Perl_sv_2cv
 Perl_sv_2io
@@ -533,7 +342,6 @@ Perl_sv_pvn
 Perl_sv_pvutf8n
 Perl_sv_pvbyten
 Perl_sv_true
-Perl_sv_add_arena
 Perl_sv_backoff
 Perl_sv_bless
 Perl_sv_catpvf
@@ -542,20 +350,15 @@ Perl_sv_catpv
 Perl_sv_catpvn
 Perl_sv_catsv
 Perl_sv_chop
-Perl_sv_clean_all
-Perl_sv_clean_objs
 Perl_sv_clear
 Perl_sv_cmp
 Perl_sv_cmp_locale
 Perl_sv_collxfrm
-Perl_sv_compile_2op
 Perl_sv_dec
 Perl_sv_dump
 Perl_sv_derived_from
 Perl_sv_eq
 Perl_sv_free
-Perl_sv_free_arenas
-Perl_sv_gets
 Perl_sv_grow
 Perl_sv_inc
 Perl_sv_insert
@@ -599,40 +402,22 @@ Perl_sv_upgrade
 Perl_sv_usepvn
 Perl_sv_vcatpvfn
 Perl_sv_vsetpvfn
-Perl_swash_init
-Perl_swash_fetch
 Perl_taint_env
 Perl_taint_proper
 Perl_to_utf8_lower
 Perl_to_utf8_upper
 Perl_to_utf8_title
 Perl_unlnk
-Perl_unlock_condpair
-Perl_unsharepvn
-Perl_unshare_hek
-Perl_utilize
 Perl_utf16_to_utf8
 Perl_utf16_to_utf8_reversed
 Perl_utf8_distance
 Perl_utf8_hop
 Perl_utf8_to_uv
 Perl_uv_to_utf8
-Perl_vivify_defelem
-Perl_vivify_ref
-Perl_wait4pid
-Perl_report_closed_fh
-Perl_report_uninit
 Perl_warn
 Perl_vwarn
 Perl_warner
 Perl_vwarner
-Perl_watch
-Perl_whichsig
-Perl_yyerror
-Perl_yylex
-Perl_yylex
-Perl_yyparse
-Perl_yywarn
 Perl_dump_mstats
 Perl_safesysmalloc
 Perl_safesyscalloc
@@ -661,7 +446,6 @@ Perl_sv_setpvn_mg
 Perl_sv_setsv_mg
 Perl_sv_usepvn_mg
 Perl_get_vtbl
-Perl_pv_display
 Perl_dump_indent
 Perl_dump_vindent
 Perl_do_gv_dump
@@ -684,12 +468,9 @@ Perl_sv_pvbyte
 Perl_sv_force_normal
 Perl_tmps_grow
 Perl_sv_rvweaken
-Perl_magic_killbackrefs
 Perl_newANONATTRSUB
 Perl_newATTRSUB
 Perl_newMYSUB
-Perl_my_attrs
-Perl_boot_core_xsutils
 Perl_cx_dup
 Perl_si_dup
 Perl_ss_dup
diff --git a/gv.c b/gv.c
index 907620b..854a822 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -154,6 +154,27 @@ S_gv_init_sv(pTHX_ GV *gv, I32 sv_type)
     }
 }
 
+/*
+=for apidoc gv_fetchmeth
+
+Returns the glob with the given C<name> and a defined subroutine or
+C<NULL>.  The glob lives in the given C<stash>, or in the stashes
+accessible via @ISA and @UNIVERSAL. 
+
+The argument C<level> should be either 0 or -1.  If C<level==0>, as a
+side-effect creates a glob with the given C<name> in the given C<stash>
+which in the case of success contains an alias for the subroutine, and sets
+up caching info for this glob.  Similarly for all the searched stashes. 
+
+This function grants C<"SUPER"> token as a postfix of the stash name. The
+GV returned from C<gv_fetchmeth> may be a method cache entry, which is not
+visible to Perl code.  So when calling C<perl_call_sv>, you should not use
+the GV directly; instead, you should use the method's CV, which can be
+obtained from the GV with the C<GvCV> macro. 
+
+=cut
+*/
+
 GV *
 Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level)
 {
@@ -275,12 +296,48 @@ Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level)
     return 0;
 }
 
+/*
+=for apidoc gv_fetchmethod
+
+See L<gv_fetchmethod_autoload.
+
+=cut
+*/
+
 GV *
 Perl_gv_fetchmethod(pTHX_ HV *stash, const char *name)
 {
     return gv_fetchmethod_autoload(stash, name, TRUE);
 }
 
+/*
+=for apidoc gv_fetchmethod_autoload
+
+Returns the glob which contains the subroutine to call to invoke the method
+on the C<stash>.  In fact in the presence of autoloading this may be the
+glob for "AUTOLOAD".  In this case the corresponding variable $AUTOLOAD is
+already setup. 
+
+The third parameter of C<gv_fetchmethod_autoload> determines whether
+AUTOLOAD lookup is performed if the given method is not present: non-zero
+means yes, look for AUTOLOAD; zero means no, don't look for AUTOLOAD. 
+Calling C<gv_fetchmethod> is equivalent to calling C<gv_fetchmethod_autoload>
+with a non-zero C<autoload> parameter. 
+
+These functions grant C<"SUPER"> token as a prefix of the method name. Note
+that if you want to keep the returned glob for a long time, you need to
+check for it being "AUTOLOAD", since at the later time the call may load a
+different subroutine due to $AUTOLOAD changing its value. Use the glob
+created via a side effect to do this. 
+
+These functions have the same side-effects and as C<gv_fetchmeth> with
+C<level==0>.  C<name> should be writable if contains C<':'> or C<'
+''>. The warning against passing the GV returned by C<gv_fetchmeth> to
+C<perl_call_sv> apply equally to these functions. 
+
+=cut
+*/
+
 GV *
 Perl_gv_fetchmethod_autoload(pTHX_ HV *stash, const char *name, I32 autoload)
 {
@@ -387,6 +444,17 @@ Perl_gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method)
     return gv;
 }
 
+/*
+=for apidoc gv_stashpv
+
+Returns a pointer to the stash for a specified package.  If C<create> is
+set then the package will be created if it does not already exist.  If
+C<create> is not set and the package does not exist then NULL is
+returned.
+
+=cut
+*/
+
 HV*
 Perl_gv_stashpv(pTHX_ const char *name, I32 create)
 {
@@ -422,6 +490,15 @@ Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 create)
     return stash;
 }
 
+/*
+=for apidoc gv_stashsv
+
+Returns a pointer to the stash for a specified package.  See
+C<gv_stashpv>.
+
+=cut
+*/
+
 HV*
 Perl_gv_stashsv(pTHX_ SV *sv, I32 create)
 {
diff --git a/gv.h b/gv.h
index f489d2d..680f2c0 100644 (file)
--- a/gv.h
+++ b/gv.h
@@ -34,6 +34,14 @@ struct gp {
 #define GvSTASH(gv)    (GvXPVGV(gv)->xgv_stash)
 #define GvFLAGS(gv)    (GvXPVGV(gv)->xgv_flags)
 
+/*
+=for apidoc Am|SV*|GvSV|GV* gv
+
+Return the SV from the GV.
+
+=cut
+*/
+
 #define GvSV(gv)       (GvGP(gv)->gp_sv)
 #define GvREFCNT(gv)   (GvGP(gv)->gp_refcnt)
 #define GvIO(gv)       ((gv) && SvTYPE((SV*)gv) == SVt_PVGV ? GvIOp(gv) : 0)
diff --git a/handy.h b/handy.h
index 92d163e..741c716 100644 (file)
--- a/handy.h
+++ b/handy.h
 #endif
 
 #define Null(type) ((type)NULL)
+
+/*
+=for apidoc AmU||Nullch
+Null character pointer.
+
+=for apidoc AmU||Nullsv
+Null SV pointer.
+
+=cut
+*/
+
 #define Nullch Null(char*)
 #define Nullfp Null(PerlIO*)
 #define Nullsv Null(SV*)
@@ -173,6 +184,43 @@ typedef U64TYPE U64;
 
 #define Ctl(ch) ((ch) & 037)
 
+/*
+=for apidoc Am|bool|strNE|char* s1|char* s2
+Test two strings to see if they are different.  Returns true or
+false.
+
+=for apidoc Am|bool|strEQ|char* s1|char* s2
+Test two strings to see if they are equal.  Returns true or false.
+
+=for apidoc Am|bool|strLT|char* s1|char* s2
+Test two strings to see if the first, C<s1>, is less than the second,
+C<s2>.  Returns true or false.
+
+=for apidoc Am|bool|strLE|char* s1|char* s2
+Test two strings to see if the first, C<s1>, is less than or equal to the
+second, C<s2>.  Returns true or false.
+
+=for apidoc Am|bool|strGT|char* s1|char* s2
+Test two strings to see if the first, C<s1>, is greater than the second,
+C<s2>.  Returns true or false.
+
+=for apidoc Am|bool|strGE|char* s1|char* s2
+Test two strings to see if the first, C<s1>, is greater than or equal to
+the second, C<s2>.  Returns true or false.
+
+=for apidoc Am|bool|strnNE|char* s1|char* s2|STRLEN len
+Test two strings to see if they are different.  The C<len> parameter
+indicates the number of bytes to compare.  Returns true or false. (A
+wrapper for C<strncmp>).
+
+=for apidoc Am|bool|strnEQ|char* s1|char* s2|STRLEN len
+Test two strings to see if they are equal.  The C<len> parameter indicates
+the number of bytes to compare.  Returns true or false. (A wrapper for
+C<strncmp>).
+
+=cut
+*/
+
 #define strNE(s1,s2) (strcmp(s1,s2))
 #define strEQ(s1,s2) (!strcmp(s1,s2))
 #define strLT(s1,s2) (strcmp(s1,s2) < 0)
@@ -209,6 +257,39 @@ typedef U64TYPE U64;
 #  endif
 #endif
 
+/*
+=for apidoc Am|bool|isALNUM|char ch
+Returns a boolean indicating whether the C C<char> is an ascii alphanumeric
+character or digit.
+
+=for apidoc Am|bool|isALPHA|char ch
+Returns a boolean indicating whether the C C<char> is an ascii alphabetic
+character.
+
+=for apidoc Am|bool|isSPACE|char ch
+Returns a boolean indicating whether the C C<char> is whitespace.
+
+=for apidoc Am|bool|isDIGIT|char ch
+Returns a boolean indicating whether the C C<char> is an ascii
+digit.
+
+=for apidoc Am|bool|isUPPER|char ch
+Returns a boolean indicating whether the C C<char> is an uppercase
+character.
+
+=for apidoc Am|bool|isLOWER|char ch
+Returns a boolean indicating whether the C C<char> is a lowercase
+character.
+
+=for apidoc Am|char|toUPPER|char ch
+Converts the specified character to uppercase.
+
+=for apidoc Am|char|toLOWER|char ch
+Converts the specified character to lowercase.
+
+=cut
+*/
+
 #define isALNUM(c)     (isALPHA(c) || isDIGIT(c) || (c) == '_')
 #define isIDFIRST(c)   (isALPHA(c) || (c) == '_')
 #define isALPHA(c)     (isUPPER(c) || isLOWER(c))
@@ -397,6 +478,56 @@ typedef U16 line_t;
        --Andy Dougherty                August 1996
 */
 
+/*
+=for apidoc Am|SV*|NEWSV|int id|STRLEN len
+Creates a new SV.  A non-zero C<len> parameter indicates the number of
+bytes of preallocated string space the SV should have.  An extra byte for a
+tailing NUL is also reserved.  (SvPOK is not set for the SV even if string
+space is allocated.)  The reference count for the new SV is set to 1. 
+C<id> is an integer id between 0 and 1299 (used to identify leaks).
+
+=for apidoc Am|void|New|int id|void* ptr|int nitems|type
+The XSUB-writer's interface to the C C<malloc> function.
+
+=for apidoc Am|void|Newc|int id|void* ptr|int nitems|type|cast
+The XSUB-writer's interface to the C C<malloc> function, with
+cast.
+
+=for apidoc Am|void|Newz|int id|void* ptr|int nitems|type
+The XSUB-writer's interface to the C C<malloc> function.  The allocated
+memory is zeroed with C<memzero>.
+
+=for apidoc Am|void|Renew|void* ptr|int nitems|type
+The XSUB-writer's interface to the C C<realloc> function.
+
+=for apidoc Am|void|Renewc|void* ptr|int nitems|type|cast
+The XSUB-writer's interface to the C C<realloc> function, with
+cast.
+
+=for apidoc Am|void|Safefree|void* src|void* dest|int nitems|type
+The XSUB-writer's interface to the C C<free> function.
+
+=for apidoc Am|void|Move|void* src|void* dest|int nitems|type
+The XSUB-writer's interface to the C C<memmove> function.  The C<src> is the
+source, C<dest> is the destination, C<nitems> is the number of items, and C<type> is
+the type.  Can do overlapping moves.  See also C<Copy>.
+
+=for apidoc Am|void|Copy|void* src|void* dest|int nitems|type
+The XSUB-writer's interface to the C C<memcpy> function.  The C<src> is the
+source, C<dest> is the destination, C<nitems> is the number of items, and C<type> is
+the type.  May fail on overlapping copies.  See also C<Move>.
+
+=for apidoc Am|void|Zero|void* dest|int nitems|type
+
+The XSUB-writer's interface to the C C<memzero> function.  The C<dest> is the
+destination, C<nitems> is the number of items, and C<type> is the type.
+
+=for apidoc Am|void|StructCopy|type src|type dest|type
+This is an architecture-independant macro to copy one structure to another.
+
+=cut
+*/
+
 #ifndef lint
 
 #define NEWSV(x,len)   newSV(len)
diff --git a/hv.c b/hv.c
index 9b01db7..e48e8b0 100644 (file)
--- a/hv.c
+++ b/hv.c
@@ -105,6 +105,20 @@ Perl_he_dup(pTHX_ HE *e, bool shared)
 /* (klen == HEf_SVKEY) is special for MAGICAL hv entries, meaning key slot
  * contains an SV* */
 
+/*
+=for apidoc hv_fetch
+
+Returns the SV which corresponds to the specified key in the hash.  The
+C<klen> is the length of the key.  If C<lval> is set then the fetch will be
+part of a store.  Check that the return value is non-null before
+dereferencing it to a C<SV*>. 
+
+See L<Understanding the Magic of Tied Hashes and Arrays> for more
+information on how to use this function on tied hashes.
+
+=cut
+*/
+
 SV**
 Perl_hv_fetch(pTHX_ HV *hv, const char *key, U32 klen, I32 lval)
 {
@@ -184,6 +198,23 @@ Perl_hv_fetch(pTHX_ HV *hv, const char *key, U32 klen, I32 lval)
 
 /* returns a HE * structure with the all fields set */
 /* note that hent_val will be a mortal sv for MAGICAL hashes */
+/*
+=for apidoc hv_fetch_ent
+
+Returns the hash entry which corresponds to the specified key in the hash.
+C<hash> must be a valid precomputed hash number for the given C<key>, or 0
+if you want the function to compute it.  IF C<lval> is set then the fetch
+will be part of a store.  Make sure the return value is non-null before
+accessing it.  The return value when C<tb> is a tied hash is a pointer to a
+static location, so be sure to make a copy of the structure if you need to
+store it somewhere. 
+
+See L<Understanding the Magic of Tied Hashes and Arrays> for more
+information on how to use this function on tied hashes.
+
+=cut
+*/
+
 HE *
 Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, register U32 hash)
 {
@@ -293,6 +324,24 @@ S_hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store)
     }
 }
 
+/*
+=for apidoc hv_store
+
+Stores an SV in a hash.  The hash key is specified as C<key> and C<klen> is
+the length of the key.  The C<hash> parameter is the precomputed hash
+value; if it is zero then Perl will compute it.  The return value will be
+NULL if the operation failed or if the value did not need to be actually
+stored within the hash (as in the case of tied hashes).  Otherwise it can
+be dereferenced to get the original C<SV*>.  Note that the caller is
+responsible for suitably incrementing the reference count of C<val> before
+the call, and decrementing it if the function returned NULL.  
+
+See L<Understanding the Magic of Tied Hashes and Arrays> for more
+information on how to use this function on tied hashes.
+
+=cut
+*/
+
 SV**
 Perl_hv_store(pTHX_ HV *hv, const char *key, U32 klen, SV *val, register U32 hash)
 {
@@ -363,6 +412,25 @@ Perl_hv_store(pTHX_ HV *hv, const char *key, U32 klen, SV *val, register U32 has
     return &HeVAL(entry);
 }
 
+/*
+=for apidoc hv_store_ent
+
+Stores C<val> in a hash.  The hash key is specified as C<key>.  The C<hash>
+parameter is the precomputed hash value; if it is zero then Perl will
+compute it.  The return value is the new hash entry so created.  It will be
+NULL if the operation failed or if the value did not need to be actually
+stored within the hash (as in the case of tied hashes).  Otherwise the
+contents of the return value can be accessed using the C<He???> macros
+described here.  Note that the caller is responsible for suitably
+incrementing the reference count of C<val> before the call, and
+decrementing it if the function returned NULL. 
+
+See L<Understanding the Magic of Tied Hashes and Arrays> for more
+information on how to use this function on tied hashes.
+
+=cut
+*/
+
 HE *
 Perl_hv_store_ent(pTHX_ HV *hv, SV *keysv, SV *val, register U32 hash)
 {
@@ -445,6 +513,17 @@ Perl_hv_store_ent(pTHX_ HV *hv, SV *keysv, SV *val, register U32 hash)
     return entry;
 }
 
+/*
+=for apidoc hv_delete
+
+Deletes a key/value pair in the hash.  The value SV is removed from the
+hash and returned to the caller.  The C<klen> is the length of the key. 
+The C<flags> value will normally be zero; if set to G_DISCARD then NULL
+will be returned.
+
+=cut
+*/
+
 SV *
 Perl_hv_delete(pTHX_ HV *hv, const char *key, U32 klen, I32 flags)
 {
@@ -516,6 +595,17 @@ Perl_hv_delete(pTHX_ HV *hv, const char *key, U32 klen, I32 flags)
     return Nullsv;
 }
 
+/*
+=for apidoc hv_delete_ent
+
+Deletes a key/value pair in the hash.  The value SV is removed from the
+hash and returned to the caller.  The C<flags> value will normally be zero;
+if set to G_DISCARD then NULL will be returned.  C<hash> can be a valid
+precomputed hash value, or 0 to ask for it to be computed.
+
+=cut
+*/
+
 SV *
 Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash)
 {
@@ -592,6 +682,15 @@ Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash)
     return Nullsv;
 }
 
+/*
+=for apidoc hv_exists
+
+Returns a boolean indicating whether the specified hash key exists.  The
+C<klen> is the length of the key.
+
+=cut
+*/
+
 bool
 Perl_hv_exists(pTHX_ HV *hv, const char *key, U32 klen)
 {
@@ -657,6 +756,16 @@ Perl_hv_exists(pTHX_ HV *hv, const char *key, U32 klen)
 }
 
 
+/*
+=for apidoc hv_exists_ent
+
+Returns a boolean indicating whether the specified hash key exists. C<hash>
+can be a valid precomputed hash value, or 0 to ask for it to be
+computed.
+
+=cut
+*/
+
 bool
 Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash)
 {
@@ -867,6 +976,14 @@ Perl_hv_ksplit(pTHX_ HV *hv, IV newmax)
     }
 }
 
+/*
+=for apidoc newHV
+
+Creates a new HV.  The reference count is set to 1.
+
+=cut
+*/
+
 HV *
 Perl_newHV(pTHX)
 {
@@ -967,6 +1084,14 @@ Perl_hv_delayfree_ent(pTHX_ HV *hv, register HE *entry)
     del_he(entry);
 }
 
+/*
+=for apidoc hv_clear
+
+Clears a hash, making it empty.
+
+=cut
+*/
+
 void
 Perl_hv_clear(pTHX_ HV *hv)
 {
@@ -1017,6 +1142,14 @@ S_hfreeentries(pTHX_ HV *hv)
     (void)hv_iterinit(hv);
 }
 
+/*
+=for apidoc hv_undef
+
+Undefines the hash.
+
+=cut
+*/
+
 void
 Perl_hv_undef(pTHX_ HV *hv)
 {
@@ -1039,6 +1172,20 @@ Perl_hv_undef(pTHX_ HV *hv)
        mg_clear((SV*)hv); 
 }
 
+/*
+=for apidoc hv_iterinit
+
+Prepares a starting point to traverse a hash table.  Returns the number of
+keys in the hash (i.e. the same as C<HvKEYS(tb)>).  The return value is
+currently only meaningful for hashes without tie magic. 
+
+NOTE: Before version 5.004_65, C<hv_iterinit> used to return the number of
+hash buckets that happen to be in use.  If you still need that esoteric
+value, you can get it through the macro C<HvFILL(tb)>.
+
+=cut
+*/
+
 I32
 Perl_hv_iterinit(pTHX_ HV *hv)
 {
@@ -1058,6 +1205,14 @@ Perl_hv_iterinit(pTHX_ HV *hv)
     return xhv->xhv_keys;      /* used to be xhv->xhv_fill before 5.004_65 */
 }
 
+/*
+=for apidoc hv_iternext
+
+Returns entries from a hash iterator.  See C<hv_iterinit>.
+
+=cut
+*/
+
 HE *
 Perl_hv_iternext(pTHX_ HV *hv)
 {
@@ -1129,6 +1284,15 @@ Perl_hv_iternext(pTHX_ HV *hv)
     return entry;
 }
 
+/*
+=for apidoc hv_iterkey
+
+Returns the key from the current position of the hash iterator.  See
+C<hv_iterinit>.
+
+=cut
+*/
+
 char *
 Perl_hv_iterkey(pTHX_ register HE *entry, I32 *retlen)
 {
@@ -1145,6 +1309,16 @@ Perl_hv_iterkey(pTHX_ register HE *entry, I32 *retlen)
 }
 
 /* unlike hv_iterval(), this always returns a mortal copy of the key */
+/*
+=for apidoc hv_iterkeysv
+
+Returns the key as an C<SV*> from the current position of the hash
+iterator.  The return value will always be a mortal copy of the key.  Also
+see C<hv_iterinit>.
+
+=cut
+*/
+
 SV *
 Perl_hv_iterkeysv(pTHX_ register HE *entry)
 {
@@ -1155,6 +1329,15 @@ Perl_hv_iterkeysv(pTHX_ register HE *entry)
                                  HeKLEN(entry)));
 }
 
+/*
+=for apidoc hv_iterval
+
+Returns the value from the current position of the hash iterator.  See
+C<hv_iterkey>.
+
+=cut
+*/
+
 SV *
 Perl_hv_iterval(pTHX_ HV *hv, register HE *entry)
 {
@@ -1170,6 +1353,15 @@ Perl_hv_iterval(pTHX_ HV *hv, register HE *entry)
     return HeVAL(entry);
 }
 
+/*
+=for apidoc hv_iternextsv
+
+Performs an C<hv_iternext>, C<hv_iterkey>, and C<hv_iterval> in one
+operation.
+
+=cut
+*/
+
 SV *
 Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen)
 {
@@ -1180,6 +1372,14 @@ Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen)
     return hv_iterval(hv, he);
 }
 
+/*
+=for apidoc hv_magic
+
+Adds magic to a hash.  See C<sv_magic>.
+
+=cut
+*/
+
 void
 Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how)
 {
diff --git a/hv.h b/hv.h
index 11a602c..f052258 100644 (file)
--- a/hv.h
+++ b/hv.h
@@ -48,6 +48,62 @@ struct xpvhv {
        (hash) = hash_PeRlHaSh + (hash_PeRlHaSh>>5); \
     } STMT_END
 
+/*
+=for apidoc AmU||HEf_SVKEY
+This flag, used in the length slot of hash entries and magic structures,
+specifies the structure contains a C<SV*> pointer where a C<char*> pointer
+is to be expected. (For information only--not to be used).
+
+=for apidoc AmU||Nullhv
+Null HV pointer.
+
+=for apidoc Am|char*|HvNAME|HV* stash
+Returns the package name of a stash.  See C<SvSTASH>, C<CvSTASH>.
+
+=for apidoc Am|void*|HeKEY|HE* he
+Returns the actual pointer stored in the key slot of the hash entry. The
+pointer may be either C<char*> or C<SV*>, depending on the value of
+C<HeKLEN()>.  Can be assigned to.  The C<HePV()> or C<HeSVKEY()> macros are
+usually preferable for finding the value of a key.
+
+=for apidoc Am|STRLEN|HeKLEN|HE* he
+If this is negative, and amounts to C<HEf_SVKEY>, it indicates the entry
+holds an C<SV*> key.  Otherwise, holds the actual length of the key.  Can
+be assigned to. The C<HePV()> macro is usually preferable for finding key
+lengths.
+
+=for apidoc Am|SV*|HeVAL|HE* he
+Returns the value slot (type C<SV*>) stored in the hash entry.
+
+=for apidoc Am|U32|HeHASH|HE* he
+Returns the computed hash stored in the hash entry.
+
+=for apidoc Am|char*|HePV|HE* he|STRLEN len
+Returns the key slot of the hash entry as a C<char*> value, doing any
+necessary dereferencing of possibly C<SV*> keys.  The length of the string
+is placed in C<len> (this is a macro, so do I<not> use C<&len>).  If you do
+not care about what the length of the key is, you may use the global
+variable C<PL_na>, though this is rather less efficient than using a local
+variable.  Remember though, that hash keys in perl are free to contain
+embedded nulls, so using C<strlen()> or similar is not a good way to find
+the length of hash keys. This is very similar to the C<SvPV()> macro
+described elsewhere in this document.
+
+=for apidoc Am|SV*|HeSVKEY|HE* he
+Returns the key as an C<SV*>, or C<Nullsv> if the hash entry does not
+contain an C<SV*> key.
+
+=for apidoc Am|SV*|HeSVKEY_force|HE* he
+Returns the key as an C<SV*>.  Will create and return a temporary mortal
+C<SV*> if the hash entry contains only a C<char*> key.
+
+=for apidoc Am|SV*|HeSVKEY_set|HE* he|SV* sv
+Sets the key to a given C<SV*>, taking care to set the appropriate flags to
+indicate the presence of an C<SV*> key, and returns the same
+C<SV*>.
+
+=cut
+*/
 
 /* these hash entry flags ride on hent_klen (for use only in magic/tied HVs) */
 #define HEf_SVKEY      -2      /* hent_key is a SV* */
index f110b32..2dde0dc 100644 (file)
@@ -35,6 +35,15 @@ PERLVAR(Iminus_l,    bool)
 PERLVAR(Iminus_a,      bool)
 PERLVAR(Iminus_F,      bool)
 PERLVAR(Idoswitches,   bool)
+
+/*
+=for apidoc Amn|bool|PL_dowarn
+
+The C variable which corresponds to Perl's $^W warning variable.
+
+=cut
+*/
+
 PERLVAR(Idowarn,       bool)
 PERLVAR(Idoextract,    bool)
 PERLVAR(Isawampersand, bool)           /* must save all match strings */
@@ -80,6 +89,29 @@ PERLVAR(Ierrgv,              GV *)
 /* shortcuts to debugging objects */
 PERLVAR(IDBgv,         GV *)
 PERLVAR(IDBline,       GV *)
+
+/*
+=for apidoc Amn|GV *|PL_DBsub
+When Perl is run in debugging mode, with the B<-d> switch, this GV contains
+the SV which holds the name of the sub being debugged.  This is the C
+variable which corresponds to Perl's $DB::sub variable.  See
+C<PL_DBsingle>.
+
+=for apidoc Amn|SV *|PL_DBsingle
+When Perl is run in debugging mode, with the B<-d> switch, this SV is a
+boolean which indicates whether subs are being single-stepped. 
+Single-stepping is automatically turned on after every step.  This is the C
+variable which corresponds to Perl's $DB::single variable.  See
+C<PL_DBsub>.
+
+=for apidoc Amn|SV *|PL_DBtrace
+Trace variable used when Perl is run in debugging mode, with the B<-d>
+switch.  This is the C variable which corresponds to Perl's $DB::trace
+variable.  See C<PL_DBsingle>.
+
+=cut
+*/
+
 PERLVAR(IDBsub,                GV *)
 PERLVAR(IDBsingle,     SV *)
 PERLVAR(IDBtrace,      SV *)
@@ -147,6 +179,19 @@ PERLVAR(Iofmt,             char *)         /* output format for numbers $# */
 PERLVARI(Iexitlist,    PerlExitListEntry *, NULL)
                                        /* list of exit functions */
 PERLVARI(Iexitlistlen, I32, 0)         /* length of same */
+
+/*
+=for apidoc Amn|HV*|PL_modglobal
+
+C<PL_modglobal> is a general purpose, interpreter global HV for use by 
+extensions that need to keep information on a per-interpreter basis.
+In a pinch, it can also be used as a symbol table for extensions 
+to share data among each other.  It is a good idea to use keys 
+prefixed by the package name of the extension that owns the data.
+
+=cut
+*/
+
 PERLVAR(Imodglobal,    HV *)           /* per-interp module data */
 
 /* these used to be in global before 5.004_68 */
@@ -222,6 +267,21 @@ PERLVARI(Irunops,  runops_proc_t,  MEMBER_TO_FPTR(RUNOPS_DEFAULT))
 
 PERLVARA(Itokenbuf,256,        char)
 
+/*
+=for apidoc Amn|SV|PL_sv_undef
+This is the C<undef> SV.  Always refer to this as C<&PL_sv_undef>.
+
+=for apidoc Amn|SV|PL_sv_no
+This is the C<false> SV.  See C<PL_sv_yes>.  Always refer to this as
+C<&PL_sv_no>.
+
+=for apidoc Amn|SV|PL_sv_yes
+This is the C<true> SV.  See C<PL_sv_no>.  Always refer to this as
+C<&PL_sv_yes>.
+
+=cut
+*/
+
 PERLVAR(Isv_undef,     SV)
 PERLVAR(Isv_no,                SV)
 PERLVAR(Isv_yes,       SV)
index 9c2e96a..5846875 100644 (file)
@@ -448,7 +448,7 @@ if ($define{'PERL_GLOBAL_STRUCT'}) {
 
 # functions from *.sym files
 
-my @syms = ($global_sym, $pp_sym, $globvar_sym);
+my @syms = ($global_sym, $globvar_sym); # $pp_sym is not part of the API
 
 if ($define{'USE_PERLIO'}) {
      push @syms, $perlio_sym;
diff --git a/mg.c b/mg.c
index 4274a20..edabb11 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -60,6 +60,14 @@ S_save_magic(pTHX_ I32 mgs_ix, SV *sv)
     SvFLAGS(sv) |= (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT;
 }
 
+/*
+=for apidoc mg_magical
+
+Turns on the magical status of an SV.  See C<sv_magic>.
+
+=cut
+*/
+
 void
 Perl_mg_magical(pTHX_ SV *sv)
 {
@@ -77,6 +85,14 @@ Perl_mg_magical(pTHX_ SV *sv)
     }
 }
 
+/*
+=for apidoc mg_get
+
+Do magic after a value is retrieved from the SV.  See C<sv_magic>.
+
+=cut
+*/
+
 int
 Perl_mg_get(pTHX_ SV *sv)
 {
@@ -112,6 +128,14 @@ Perl_mg_get(pTHX_ SV *sv)
     return 0;
 }
 
+/*
+=for apidoc mg_set
+
+Do magic after a value is assigned to the SV.  See C<sv_magic>.
+
+=cut
+*/
+
 int
 Perl_mg_set(pTHX_ SV *sv)
 {
@@ -138,6 +162,14 @@ Perl_mg_set(pTHX_ SV *sv)
     return 0;
 }
 
+/*
+=for apidoc mg_length
+
+Report on the SV's length.  See C<sv_magic>.
+
+=cut
+*/
+
 U32
 Perl_mg_length(pTHX_ SV *sv)
 {
@@ -196,6 +228,14 @@ Perl_mg_size(pTHX_ SV *sv)
     return 0;
 }
 
+/*
+=for apidoc mg_clear
+
+Clear something magical that the SV represents.  See C<sv_magic>.
+
+=cut
+*/
+
 int
 Perl_mg_clear(pTHX_ SV *sv)
 {
@@ -217,6 +257,14 @@ Perl_mg_clear(pTHX_ SV *sv)
     return 0;
 }
 
+/*
+=for apidoc mg_find
+
+Finds the magic pointer for type matching the SV.  See C<sv_magic>.
+
+=cut
+*/
+
 MAGIC*
 Perl_mg_find(pTHX_ SV *sv, int type)
 {
@@ -228,6 +276,14 @@ Perl_mg_find(pTHX_ SV *sv, int type)
     return 0;
 }
 
+/*
+=for apidoc mg_copy
+
+Copies the magic from one SV to another.  See C<sv_magic>.
+
+=cut
+*/
+
 int
 Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen)
 {
@@ -244,6 +300,14 @@ Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen)
     return count;
 }
 
+/*
+=for apidoc mg_free
+
+Free any magic storage used by the SV.  See C<sv_magic>.
+
+=cut
+*/
+
 int
 Perl_mg_free(pTHX_ SV *sv)
 {
index 262ead9..8d31e99 100644 (file)
--- a/objXSUB.h
+++ b/objXSUB.h
 #define Perl_Gv_AMupdate       pPerl->Perl_Gv_AMupdate
 #undef  Gv_AMupdate
 #define Gv_AMupdate            Perl_Gv_AMupdate
-#undef  Perl_append_elem
-#define Perl_append_elem       pPerl->Perl_append_elem
-#undef  append_elem
-#define append_elem            Perl_append_elem
-#undef  Perl_append_list
-#define Perl_append_list       pPerl->Perl_append_list
-#undef  append_list
-#define append_list            Perl_append_list
-#undef  Perl_apply
-#define Perl_apply             pPerl->Perl_apply
-#undef  apply
-#define apply                  Perl_apply
 #undef  Perl_avhv_delete_ent
 #define Perl_avhv_delete_ent   pPerl->Perl_avhv_delete_ent
 #undef  avhv_delete_ent
 #define Perl_av_unshift                pPerl->Perl_av_unshift
 #undef  av_unshift
 #define av_unshift             Perl_av_unshift
-#undef  Perl_bind_match
-#define Perl_bind_match                pPerl->Perl_bind_match
-#undef  bind_match
-#define bind_match             Perl_bind_match
-#undef  Perl_block_end
-#define Perl_block_end         pPerl->Perl_block_end
-#undef  block_end
-#define block_end              Perl_block_end
 #undef  Perl_block_gimme
 #define Perl_block_gimme       pPerl->Perl_block_gimme
 #undef  block_gimme
 #define block_gimme            Perl_block_gimme
-#undef  Perl_block_start
-#define Perl_block_start       pPerl->Perl_block_start
-#undef  block_start
-#define block_start            Perl_block_start
-#undef  Perl_boot_core_UNIVERSAL
-#define Perl_boot_core_UNIVERSAL       pPerl->Perl_boot_core_UNIVERSAL
-#undef  boot_core_UNIVERSAL
-#define boot_core_UNIVERSAL    Perl_boot_core_UNIVERSAL
-#undef  Perl_call_list
-#define Perl_call_list         pPerl->Perl_call_list
-#undef  call_list
-#define call_list              Perl_call_list
-#undef  Perl_cando
-#define Perl_cando             pPerl->Perl_cando
-#undef  cando
-#define cando                  Perl_cando
 #undef  Perl_cast_ulong
 #define Perl_cast_ulong                pPerl->Perl_cast_ulong
 #undef  cast_ulong
 #define my_chsize              Perl_my_chsize
 #endif
 #if defined(USE_THREADS)
-#undef  Perl_condpair_magic
-#define Perl_condpair_magic    pPerl->Perl_condpair_magic
-#undef  condpair_magic
-#define condpair_magic         Perl_condpair_magic
 #endif
-#undef  Perl_convert
-#define Perl_convert           pPerl->Perl_convert
-#undef  convert
-#define convert                        Perl_convert
 #undef  Perl_croak
 #define Perl_croak             pPerl->Perl_croak
 #undef  croak
 #undef  fprintf_nocontext
 #define fprintf_nocontext      Perl_fprintf_nocontext
 #endif
-#undef  Perl_cv_ckproto
-#define Perl_cv_ckproto                pPerl->Perl_cv_ckproto
-#undef  cv_ckproto
-#define cv_ckproto             Perl_cv_ckproto
-#undef  Perl_cv_clone
-#define Perl_cv_clone          pPerl->Perl_cv_clone
-#undef  cv_clone
-#define cv_clone               Perl_cv_clone
-#undef  Perl_cv_const_sv
-#define Perl_cv_const_sv       pPerl->Perl_cv_const_sv
-#undef  cv_const_sv
-#define cv_const_sv            Perl_cv_const_sv
-#undef  Perl_op_const_sv
-#define Perl_op_const_sv       pPerl->Perl_op_const_sv
-#undef  op_const_sv
-#define op_const_sv            Perl_op_const_sv
-#undef  Perl_cv_undef
-#define Perl_cv_undef          pPerl->Perl_cv_undef
-#undef  cv_undef
-#define cv_undef               Perl_cv_undef
 #undef  Perl_cx_dump
 #define Perl_cx_dump           pPerl->Perl_cx_dump
 #undef  cx_dump
 #define Perl_get_op_names      pPerl->Perl_get_op_names
 #undef  get_op_names
 #define get_op_names           Perl_get_op_names
-#undef  Perl_get_no_modify
-#define Perl_get_no_modify     pPerl->Perl_get_no_modify
-#undef  get_no_modify
-#define get_no_modify          Perl_get_no_modify
-#undef  Perl_get_opargs
-#define Perl_get_opargs                pPerl->Perl_get_opargs
-#undef  get_opargs
-#define get_opargs             Perl_get_opargs
 #undef  Perl_get_ppaddr
 #define Perl_get_ppaddr                pPerl->Perl_get_ppaddr
 #undef  get_ppaddr
 #define get_ppaddr             Perl_get_ppaddr
-#undef  Perl_cxinc
-#define Perl_cxinc             pPerl->Perl_cxinc
-#undef  cxinc
-#define cxinc                  Perl_cxinc
 #undef  Perl_deb
 #define Perl_deb               pPerl->Perl_deb
 #undef  deb
 #define Perl_delimcpy          pPerl->Perl_delimcpy
 #undef  delimcpy
 #define delimcpy               Perl_delimcpy
-#undef  Perl_deprecate
-#define Perl_deprecate         pPerl->Perl_deprecate
-#undef  deprecate
-#define deprecate              Perl_deprecate
-#undef  Perl_die
-#define Perl_die               pPerl->Perl_die
-#undef  die
-#define die                    Perl_die
-#undef  Perl_vdie
-#define Perl_vdie              pPerl->Perl_vdie
-#undef  vdie
-#define vdie                   Perl_vdie
-#undef  Perl_die_where
-#define Perl_die_where         pPerl->Perl_die_where
-#undef  die_where
-#define die_where              Perl_die_where
-#undef  Perl_dounwind
-#define Perl_dounwind          pPerl->Perl_dounwind
-#undef  dounwind
-#define dounwind               Perl_dounwind
-#undef  Perl_do_aexec
-#define Perl_do_aexec          pPerl->Perl_do_aexec
-#undef  do_aexec
-#define do_aexec               Perl_do_aexec
-#undef  Perl_do_aexec5
-#define Perl_do_aexec5         pPerl->Perl_do_aexec5
-#undef  do_aexec5
-#define do_aexec5              Perl_do_aexec5
 #undef  Perl_do_binmode
 #define Perl_do_binmode                pPerl->Perl_do_binmode
 #undef  do_binmode
 #define do_binmode             Perl_do_binmode
-#undef  Perl_do_chop
-#define Perl_do_chop           pPerl->Perl_do_chop
-#undef  do_chop
-#define do_chop                        Perl_do_chop
-#undef  Perl_do_close
-#define Perl_do_close          pPerl->Perl_do_close
-#undef  do_close
-#define do_close               Perl_do_close
-#undef  Perl_do_eof
-#define Perl_do_eof            pPerl->Perl_do_eof
-#undef  do_eof
-#define do_eof                 Perl_do_eof
-#undef  Perl_do_exec
-#define Perl_do_exec           pPerl->Perl_do_exec
-#undef  do_exec
-#define do_exec                        Perl_do_exec
 #if !defined(WIN32)
-#undef  Perl_do_exec3
-#define Perl_do_exec3          pPerl->Perl_do_exec3
-#undef  do_exec3
-#define do_exec3               Perl_do_exec3
 #endif
-#undef  Perl_do_execfree
-#define Perl_do_execfree       pPerl->Perl_do_execfree
-#undef  do_execfree
-#define do_execfree            Perl_do_execfree
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-#undef  Perl_do_ipcctl
-#define Perl_do_ipcctl         pPerl->Perl_do_ipcctl
-#undef  do_ipcctl
-#define do_ipcctl              Perl_do_ipcctl
-#undef  Perl_do_ipcget
-#define Perl_do_ipcget         pPerl->Perl_do_ipcget
-#undef  do_ipcget
-#define do_ipcget              Perl_do_ipcget
-#undef  Perl_do_msgrcv
-#define Perl_do_msgrcv         pPerl->Perl_do_msgrcv
-#undef  do_msgrcv
-#define do_msgrcv              Perl_do_msgrcv
-#undef  Perl_do_msgsnd
-#define Perl_do_msgsnd         pPerl->Perl_do_msgsnd
-#undef  do_msgsnd
-#define do_msgsnd              Perl_do_msgsnd
-#undef  Perl_do_semop
-#define Perl_do_semop          pPerl->Perl_do_semop
-#undef  do_semop
-#define do_semop               Perl_do_semop
-#undef  Perl_do_shmio
-#define Perl_do_shmio          pPerl->Perl_do_shmio
-#undef  do_shmio
-#define do_shmio               Perl_do_shmio
 #endif
-#undef  Perl_do_join
-#define Perl_do_join           pPerl->Perl_do_join
-#undef  do_join
-#define do_join                        Perl_do_join
-#undef  Perl_do_kv
-#define Perl_do_kv             pPerl->Perl_do_kv
-#undef  do_kv
-#define do_kv                  Perl_do_kv
 #undef  Perl_do_open
 #define Perl_do_open           pPerl->Perl_do_open
 #undef  do_open
 #define Perl_do_open9          pPerl->Perl_do_open9
 #undef  do_open9
 #define do_open9               Perl_do_open9
-#undef  Perl_do_pipe
-#define Perl_do_pipe           pPerl->Perl_do_pipe
-#undef  do_pipe
-#define do_pipe                        Perl_do_pipe
-#undef  Perl_do_print
-#define Perl_do_print          pPerl->Perl_do_print
-#undef  do_print
-#define do_print               Perl_do_print
-#undef  Perl_do_readline
-#define Perl_do_readline       pPerl->Perl_do_readline
-#undef  do_readline
-#define do_readline            Perl_do_readline
-#undef  Perl_do_chomp
-#define Perl_do_chomp          pPerl->Perl_do_chomp
-#undef  do_chomp
-#define do_chomp               Perl_do_chomp
-#undef  Perl_do_seek
-#define Perl_do_seek           pPerl->Perl_do_seek
-#undef  do_seek
-#define do_seek                        Perl_do_seek
-#undef  Perl_do_sprintf
-#define Perl_do_sprintf                pPerl->Perl_do_sprintf
-#undef  do_sprintf
-#define do_sprintf             Perl_do_sprintf
-#undef  Perl_do_sysseek
-#define Perl_do_sysseek                pPerl->Perl_do_sysseek
-#undef  do_sysseek
-#define do_sysseek             Perl_do_sysseek
-#undef  Perl_do_tell
-#define Perl_do_tell           pPerl->Perl_do_tell
-#undef  do_tell
-#define do_tell                        Perl_do_tell
-#undef  Perl_do_trans
-#define Perl_do_trans          pPerl->Perl_do_trans
-#undef  do_trans
-#define do_trans               Perl_do_trans
-#undef  Perl_do_vecget
-#define Perl_do_vecget         pPerl->Perl_do_vecget
-#undef  do_vecget
-#define do_vecget              Perl_do_vecget
-#undef  Perl_do_vecset
-#define Perl_do_vecset         pPerl->Perl_do_vecset
-#undef  do_vecset
-#define do_vecset              Perl_do_vecset
-#undef  Perl_do_vop
-#define Perl_do_vop            pPerl->Perl_do_vop
-#undef  do_vop
-#define do_vop                 Perl_do_vop
-#undef  Perl_dofile
-#define Perl_dofile            pPerl->Perl_dofile
-#undef  dofile
-#define dofile                 Perl_dofile
 #undef  Perl_dowantarray
 #define Perl_dowantarray       pPerl->Perl_dowantarray
 #undef  dowantarray
 #define Perl_fbm_instr         pPerl->Perl_fbm_instr
 #undef  fbm_instr
 #define fbm_instr              Perl_fbm_instr
-#undef  Perl_find_script
-#define Perl_find_script       pPerl->Perl_find_script
-#undef  find_script
-#define find_script            Perl_find_script
 #if defined(USE_THREADS)
-#undef  Perl_find_threadsv
-#define Perl_find_threadsv     pPerl->Perl_find_threadsv
-#undef  find_threadsv
-#define find_threadsv          Perl_find_threadsv
 #endif
-#undef  Perl_force_list
-#define Perl_force_list                pPerl->Perl_force_list
-#undef  force_list
-#define force_list             Perl_force_list
-#undef  Perl_fold_constants
-#define Perl_fold_constants    pPerl->Perl_fold_constants
-#undef  fold_constants
-#define fold_constants         Perl_fold_constants
 #undef  Perl_form
 #define Perl_form              pPerl->Perl_form
 #undef  form
 #define Perl_free_tmps         pPerl->Perl_free_tmps
 #undef  free_tmps
 #define free_tmps              Perl_free_tmps
-#undef  Perl_gen_constant_list
-#define Perl_gen_constant_list pPerl->Perl_gen_constant_list
-#undef  gen_constant_list
-#define gen_constant_list      Perl_gen_constant_list
 #if !defined(HAS_GETENV_LEN)
-#undef  Perl_getenv_len
-#define Perl_getenv_len                pPerl->Perl_getenv_len
-#undef  getenv_len
-#define getenv_len             Perl_getenv_len
 #endif
 #undef  Perl_gp_free
 #define Perl_gp_free           pPerl->Perl_gp_free
 #define Perl_ibcmp_locale      pPerl->Perl_ibcmp_locale
 #undef  ibcmp_locale
 #define ibcmp_locale           Perl_ibcmp_locale
-#undef  Perl_ingroup
-#define Perl_ingroup           pPerl->Perl_ingroup
-#undef  ingroup
-#define ingroup                        Perl_ingroup
-#undef  Perl_init_debugger
-#define Perl_init_debugger     pPerl->Perl_init_debugger
-#undef  init_debugger
-#define init_debugger          Perl_init_debugger
-#undef  Perl_init_stacks
-#define Perl_init_stacks       pPerl->Perl_init_stacks
-#undef  init_stacks
-#define init_stacks            Perl_init_stacks
-#undef  Perl_intro_my
-#define Perl_intro_my          pPerl->Perl_intro_my
-#undef  intro_my
-#define intro_my               Perl_intro_my
 #undef  Perl_instr
 #define Perl_instr             pPerl->Perl_instr
 #undef  instr
 #define instr                  Perl_instr
-#undef  Perl_io_close
-#define Perl_io_close          pPerl->Perl_io_close
-#undef  io_close
-#define io_close               Perl_io_close
-#undef  Perl_invert
-#define Perl_invert            pPerl->Perl_invert
-#undef  invert
-#define invert                 Perl_invert
 #undef  Perl_is_uni_alnum
 #define Perl_is_uni_alnum      pPerl->Perl_is_uni_alnum
 #undef  is_uni_alnum
 #define Perl_is_utf8_mark      pPerl->Perl_is_utf8_mark
 #undef  is_utf8_mark
 #define is_utf8_mark           Perl_is_utf8_mark
-#undef  Perl_jmaybe
-#define Perl_jmaybe            pPerl->Perl_jmaybe
-#undef  jmaybe
-#define jmaybe                 Perl_jmaybe
-#undef  Perl_keyword
-#define Perl_keyword           pPerl->Perl_keyword
-#undef  keyword
-#define keyword                        Perl_keyword
-#undef  Perl_leave_scope
-#define Perl_leave_scope       pPerl->Perl_leave_scope
-#undef  leave_scope
-#define leave_scope            Perl_leave_scope
-#undef  Perl_lex_end
-#define Perl_lex_end           pPerl->Perl_lex_end
-#undef  lex_end
-#define lex_end                        Perl_lex_end
-#undef  Perl_lex_start
-#define Perl_lex_start         pPerl->Perl_lex_start
-#undef  lex_start
-#define lex_start              Perl_lex_start
-#undef  Perl_linklist
-#define Perl_linklist          pPerl->Perl_linklist
-#undef  linklist
-#define linklist               Perl_linklist
-#undef  Perl_list
-#define Perl_list              pPerl->Perl_list
-#undef  list
-#define list                   Perl_list
-#undef  Perl_listkids
-#define Perl_listkids          pPerl->Perl_listkids
-#undef  listkids
-#define listkids               Perl_listkids
-#undef  Perl_localize
-#define Perl_localize          pPerl->Perl_localize
-#undef  localize
-#define localize               Perl_localize
 #undef  Perl_looks_like_number
 #define Perl_looks_like_number pPerl->Perl_looks_like_number
 #undef  looks_like_number
 #define looks_like_number      Perl_looks_like_number
-#undef  Perl_magic_clearenv
-#define Perl_magic_clearenv    pPerl->Perl_magic_clearenv
-#undef  magic_clearenv
-#define magic_clearenv         Perl_magic_clearenv
-#undef  Perl_magic_clear_all_env
-#define Perl_magic_clear_all_env       pPerl->Perl_magic_clear_all_env
-#undef  magic_clear_all_env
-#define magic_clear_all_env    Perl_magic_clear_all_env
-#undef  Perl_magic_clearpack
-#define Perl_magic_clearpack   pPerl->Perl_magic_clearpack
-#undef  magic_clearpack
-#define magic_clearpack                Perl_magic_clearpack
-#undef  Perl_magic_clearsig
-#define Perl_magic_clearsig    pPerl->Perl_magic_clearsig
-#undef  magic_clearsig
-#define magic_clearsig         Perl_magic_clearsig
-#undef  Perl_magic_existspack
-#define Perl_magic_existspack  pPerl->Perl_magic_existspack
-#undef  magic_existspack
-#define magic_existspack       Perl_magic_existspack
-#undef  Perl_magic_freeregexp
-#define Perl_magic_freeregexp  pPerl->Perl_magic_freeregexp
-#undef  magic_freeregexp
-#define magic_freeregexp       Perl_magic_freeregexp
-#undef  Perl_magic_get
-#define Perl_magic_get         pPerl->Perl_magic_get
-#undef  magic_get
-#define magic_get              Perl_magic_get
-#undef  Perl_magic_getarylen
-#define Perl_magic_getarylen   pPerl->Perl_magic_getarylen
-#undef  magic_getarylen
-#define magic_getarylen                Perl_magic_getarylen
-#undef  Perl_magic_getdefelem
-#define Perl_magic_getdefelem  pPerl->Perl_magic_getdefelem
-#undef  magic_getdefelem
-#define magic_getdefelem       Perl_magic_getdefelem
-#undef  Perl_magic_getglob
-#define Perl_magic_getglob     pPerl->Perl_magic_getglob
-#undef  magic_getglob
-#define magic_getglob          Perl_magic_getglob
-#undef  Perl_magic_getnkeys
-#define Perl_magic_getnkeys    pPerl->Perl_magic_getnkeys
-#undef  magic_getnkeys
-#define magic_getnkeys         Perl_magic_getnkeys
-#undef  Perl_magic_getpack
-#define Perl_magic_getpack     pPerl->Perl_magic_getpack
-#undef  magic_getpack
-#define magic_getpack          Perl_magic_getpack
-#undef  Perl_magic_getpos
-#define Perl_magic_getpos      pPerl->Perl_magic_getpos
-#undef  magic_getpos
-#define magic_getpos           Perl_magic_getpos
-#undef  Perl_magic_getsig
-#define Perl_magic_getsig      pPerl->Perl_magic_getsig
-#undef  magic_getsig
-#define magic_getsig           Perl_magic_getsig
-#undef  Perl_magic_getsubstr
-#define Perl_magic_getsubstr   pPerl->Perl_magic_getsubstr
-#undef  magic_getsubstr
-#define magic_getsubstr                Perl_magic_getsubstr
-#undef  Perl_magic_gettaint
-#define Perl_magic_gettaint    pPerl->Perl_magic_gettaint
-#undef  magic_gettaint
-#define magic_gettaint         Perl_magic_gettaint
-#undef  Perl_magic_getuvar
-#define Perl_magic_getuvar     pPerl->Perl_magic_getuvar
-#undef  magic_getuvar
-#define magic_getuvar          Perl_magic_getuvar
-#undef  Perl_magic_getvec
-#define Perl_magic_getvec      pPerl->Perl_magic_getvec
-#undef  magic_getvec
-#define magic_getvec           Perl_magic_getvec
-#undef  Perl_magic_len
-#define Perl_magic_len         pPerl->Perl_magic_len
-#undef  magic_len
-#define magic_len              Perl_magic_len
 #if defined(USE_THREADS)
-#undef  Perl_magic_mutexfree
-#define Perl_magic_mutexfree   pPerl->Perl_magic_mutexfree
-#undef  magic_mutexfree
-#define magic_mutexfree                Perl_magic_mutexfree
 #endif
-#undef  Perl_magic_nextpack
-#define Perl_magic_nextpack    pPerl->Perl_magic_nextpack
-#undef  magic_nextpack
-#define magic_nextpack         Perl_magic_nextpack
-#undef  Perl_magic_regdata_cnt
-#define Perl_magic_regdata_cnt pPerl->Perl_magic_regdata_cnt
-#undef  magic_regdata_cnt
-#define magic_regdata_cnt      Perl_magic_regdata_cnt
-#undef  Perl_magic_regdatum_get
-#define Perl_magic_regdatum_get        pPerl->Perl_magic_regdatum_get
-#undef  magic_regdatum_get
-#define magic_regdatum_get     Perl_magic_regdatum_get
-#undef  Perl_magic_set
-#define Perl_magic_set         pPerl->Perl_magic_set
-#undef  magic_set
-#define magic_set              Perl_magic_set
-#undef  Perl_magic_setamagic
-#define Perl_magic_setamagic   pPerl->Perl_magic_setamagic
-#undef  magic_setamagic
-#define magic_setamagic                Perl_magic_setamagic
-#undef  Perl_magic_setarylen
-#define Perl_magic_setarylen   pPerl->Perl_magic_setarylen
-#undef  magic_setarylen
-#define magic_setarylen                Perl_magic_setarylen
-#undef  Perl_magic_setbm
-#define Perl_magic_setbm       pPerl->Perl_magic_setbm
-#undef  magic_setbm
-#define magic_setbm            Perl_magic_setbm
-#undef  Perl_magic_setdbline
-#define Perl_magic_setdbline   pPerl->Perl_magic_setdbline
-#undef  magic_setdbline
-#define magic_setdbline                Perl_magic_setdbline
 #if defined(USE_LOCALE_COLLATE)
-#undef  Perl_magic_setcollxfrm
-#define Perl_magic_setcollxfrm pPerl->Perl_magic_setcollxfrm
-#undef  magic_setcollxfrm
-#define magic_setcollxfrm      Perl_magic_setcollxfrm
 #endif
-#undef  Perl_magic_setdefelem
-#define Perl_magic_setdefelem  pPerl->Perl_magic_setdefelem
-#undef  magic_setdefelem
-#define magic_setdefelem       Perl_magic_setdefelem
-#undef  Perl_magic_setenv
-#define Perl_magic_setenv      pPerl->Perl_magic_setenv
-#undef  magic_setenv
-#define magic_setenv           Perl_magic_setenv
-#undef  Perl_magic_setfm
-#define Perl_magic_setfm       pPerl->Perl_magic_setfm
-#undef  magic_setfm
-#define magic_setfm            Perl_magic_setfm
-#undef  Perl_magic_setisa
-#define Perl_magic_setisa      pPerl->Perl_magic_setisa
-#undef  magic_setisa
-#define magic_setisa           Perl_magic_setisa
-#undef  Perl_magic_setglob
-#define Perl_magic_setglob     pPerl->Perl_magic_setglob
-#undef  magic_setglob
-#define magic_setglob          Perl_magic_setglob
-#undef  Perl_magic_setmglob
-#define Perl_magic_setmglob    pPerl->Perl_magic_setmglob
-#undef  magic_setmglob
-#define magic_setmglob         Perl_magic_setmglob
-#undef  Perl_magic_setnkeys
-#define Perl_magic_setnkeys    pPerl->Perl_magic_setnkeys
-#undef  magic_setnkeys
-#define magic_setnkeys         Perl_magic_setnkeys
-#undef  Perl_magic_setpack
-#define Perl_magic_setpack     pPerl->Perl_magic_setpack
-#undef  magic_setpack
-#define magic_setpack          Perl_magic_setpack
-#undef  Perl_magic_setpos
-#define Perl_magic_setpos      pPerl->Perl_magic_setpos
-#undef  magic_setpos
-#define magic_setpos           Perl_magic_setpos
-#undef  Perl_magic_setsig
-#define Perl_magic_setsig      pPerl->Perl_magic_setsig
-#undef  magic_setsig
-#define magic_setsig           Perl_magic_setsig
-#undef  Perl_magic_setsubstr
-#define Perl_magic_setsubstr   pPerl->Perl_magic_setsubstr
-#undef  magic_setsubstr
-#define magic_setsubstr                Perl_magic_setsubstr
-#undef  Perl_magic_settaint
-#define Perl_magic_settaint    pPerl->Perl_magic_settaint
-#undef  magic_settaint
-#define magic_settaint         Perl_magic_settaint
-#undef  Perl_magic_setuvar
-#define Perl_magic_setuvar     pPerl->Perl_magic_setuvar
-#undef  magic_setuvar
-#define magic_setuvar          Perl_magic_setuvar
-#undef  Perl_magic_setvec
-#define Perl_magic_setvec      pPerl->Perl_magic_setvec
-#undef  magic_setvec
-#define magic_setvec           Perl_magic_setvec
-#undef  Perl_magic_set_all_env
-#define Perl_magic_set_all_env pPerl->Perl_magic_set_all_env
-#undef  magic_set_all_env
-#define magic_set_all_env      Perl_magic_set_all_env
-#undef  Perl_magic_sizepack
-#define Perl_magic_sizepack    pPerl->Perl_magic_sizepack
-#undef  magic_sizepack
-#define magic_sizepack         Perl_magic_sizepack
-#undef  Perl_magic_wipepack
-#define Perl_magic_wipepack    pPerl->Perl_magic_wipepack
-#undef  magic_wipepack
-#define magic_wipepack         Perl_magic_wipepack
-#undef  Perl_magicname
-#define Perl_magicname         pPerl->Perl_magicname
-#undef  magicname
-#define magicname              Perl_magicname
 #undef  Perl_markstack_grow
 #define Perl_markstack_grow    pPerl->Perl_markstack_grow
 #undef  markstack_grow
 #define markstack_grow         Perl_markstack_grow
 #if defined(USE_LOCALE_COLLATE)
-#undef  Perl_mem_collxfrm
-#define Perl_mem_collxfrm      pPerl->Perl_mem_collxfrm
-#undef  mem_collxfrm
-#define mem_collxfrm           Perl_mem_collxfrm
 #endif
 #undef  Perl_mess
 #define Perl_mess              pPerl->Perl_mess
 #define Perl_vmess             pPerl->Perl_vmess
 #undef  vmess
 #define vmess                  Perl_vmess
-#undef  Perl_qerror
-#define Perl_qerror            pPerl->Perl_qerror
-#undef  qerror
-#define qerror                 Perl_qerror
 #undef  Perl_mg_clear
 #define Perl_mg_clear          pPerl->Perl_mg_clear
 #undef  mg_clear
 #define Perl_mg_size           pPerl->Perl_mg_size
 #undef  mg_size
 #define mg_size                        Perl_mg_size
-#undef  Perl_mod
-#define Perl_mod               pPerl->Perl_mod
-#undef  mod
-#define mod                    Perl_mod
-#undef  Perl_moreswitches
-#define Perl_moreswitches      pPerl->Perl_moreswitches
-#undef  moreswitches
-#define moreswitches           Perl_moreswitches
-#undef  Perl_my
-#define Perl_my                        pPerl->Perl_my
-#undef  my
-#define my                     Perl_my
 #undef  Perl_my_atof
 #define Perl_my_atof           pPerl->Perl_my_atof
 #undef  my_atof
 #undef  my_ntohl
 #define my_ntohl               Perl_my_ntohl
 #endif
-#undef  Perl_my_unexec
-#define Perl_my_unexec         pPerl->Perl_my_unexec
-#undef  my_unexec
-#define my_unexec              Perl_my_unexec
 #undef  Perl_newANONLIST
 #define Perl_newANONLIST       pPerl->Perl_newANONLIST
 #undef  newANONLIST
 #define Perl_newWHILEOP                pPerl->Perl_newWHILEOP
 #undef  newWHILEOP
 #define newWHILEOP             Perl_newWHILEOP
-#undef  Perl_new_stackinfo
-#define Perl_new_stackinfo     pPerl->Perl_new_stackinfo
-#undef  new_stackinfo
-#define new_stackinfo          Perl_new_stackinfo
-#undef  Perl_nextargv
-#define Perl_nextargv          pPerl->Perl_nextargv
-#undef  nextargv
-#define nextargv               Perl_nextargv
 #undef  Perl_ninstr
 #define Perl_ninstr            pPerl->Perl_ninstr
 #undef  ninstr
 #define ninstr                 Perl_ninstr
-#undef  Perl_oopsCV
-#define Perl_oopsCV            pPerl->Perl_oopsCV
-#undef  oopsCV
-#define oopsCV                 Perl_oopsCV
-#undef  Perl_op_free
-#define Perl_op_free           pPerl->Perl_op_free
-#undef  op_free
-#define op_free                        Perl_op_free
-#undef  Perl_package
-#define Perl_package           pPerl->Perl_package
-#undef  package
-#define package                        Perl_package
-#undef  Perl_pad_alloc
-#define Perl_pad_alloc         pPerl->Perl_pad_alloc
-#undef  pad_alloc
-#define pad_alloc              Perl_pad_alloc
-#undef  Perl_pad_allocmy
-#define Perl_pad_allocmy       pPerl->Perl_pad_allocmy
-#undef  pad_allocmy
-#define pad_allocmy            Perl_pad_allocmy
-#undef  Perl_pad_findmy
-#define Perl_pad_findmy                pPerl->Perl_pad_findmy
-#undef  pad_findmy
-#define pad_findmy             Perl_pad_findmy
-#undef  Perl_oopsAV
-#define Perl_oopsAV            pPerl->Perl_oopsAV
-#undef  oopsAV
-#define oopsAV                 Perl_oopsAV
-#undef  Perl_oopsHV
-#define Perl_oopsHV            pPerl->Perl_oopsHV
-#undef  oopsHV
-#define oopsHV                 Perl_oopsHV
-#undef  Perl_pad_leavemy
-#define Perl_pad_leavemy       pPerl->Perl_pad_leavemy
-#undef  pad_leavemy
-#define pad_leavemy            Perl_pad_leavemy
-#undef  Perl_pad_sv
-#define Perl_pad_sv            pPerl->Perl_pad_sv
-#undef  pad_sv
-#define pad_sv                 Perl_pad_sv
-#undef  Perl_pad_free
-#define Perl_pad_free          pPerl->Perl_pad_free
-#undef  pad_free
-#define pad_free               Perl_pad_free
-#undef  Perl_pad_reset
-#define Perl_pad_reset         pPerl->Perl_pad_reset
-#undef  pad_reset
-#define pad_reset              Perl_pad_reset
-#undef  Perl_pad_swipe
-#define Perl_pad_swipe         pPerl->Perl_pad_swipe
-#undef  pad_swipe
-#define pad_swipe              Perl_pad_swipe
-#undef  Perl_peep
-#define Perl_peep              pPerl->Perl_peep
-#undef  peep
-#define peep                   Perl_peep
 #if defined(PERL_OBJECT)
 #undef  Perl_construct
 #define Perl_construct         pPerl->Perl_construct
 #define Perl_get_cv            pPerl->Perl_get_cv
 #undef  get_cv
 #define get_cv                 Perl_get_cv
-#undef  Perl_init_i18nl10n
-#define Perl_init_i18nl10n     pPerl->Perl_init_i18nl10n
-#undef  init_i18nl10n
-#define init_i18nl10n          Perl_init_i18nl10n
-#undef  Perl_init_i18nl14n
-#define Perl_init_i18nl14n     pPerl->Perl_init_i18nl14n
-#undef  init_i18nl14n
-#define init_i18nl14n          Perl_init_i18nl14n
 #undef  Perl_new_collate
 #define Perl_new_collate       pPerl->Perl_new_collate
 #undef  new_collate
 #define Perl_require_pv                pPerl->Perl_require_pv
 #undef  require_pv
 #define require_pv             Perl_require_pv
-#undef  Perl_pidgone
-#define Perl_pidgone           pPerl->Perl_pidgone
-#undef  pidgone
-#define pidgone                        Perl_pidgone
-#undef  Perl_pmflag
-#define Perl_pmflag            pPerl->Perl_pmflag
-#undef  pmflag
-#define pmflag                 Perl_pmflag
-#undef  Perl_pmruntime
-#define Perl_pmruntime         pPerl->Perl_pmruntime
-#undef  pmruntime
-#define pmruntime              Perl_pmruntime
-#undef  Perl_pmtrans
-#define Perl_pmtrans           pPerl->Perl_pmtrans
-#undef  pmtrans
-#define pmtrans                        Perl_pmtrans
-#undef  Perl_pop_return
-#define Perl_pop_return                pPerl->Perl_pop_return
-#undef  pop_return
-#define pop_return             Perl_pop_return
 #undef  Perl_pop_scope
 #define Perl_pop_scope         pPerl->Perl_pop_scope
 #undef  pop_scope
 #define pop_scope              Perl_pop_scope
-#undef  Perl_prepend_elem
-#define Perl_prepend_elem      pPerl->Perl_prepend_elem
-#undef  prepend_elem
-#define prepend_elem           Perl_prepend_elem
-#undef  Perl_push_return
-#define Perl_push_return       pPerl->Perl_push_return
-#undef  push_return
-#define push_return            Perl_push_return
 #undef  Perl_push_scope
 #define Perl_push_scope                pPerl->Perl_push_scope
 #undef  push_scope
 #define push_scope             Perl_push_scope
-#undef  Perl_ref
-#define Perl_ref               pPerl->Perl_ref
-#undef  ref
-#define ref                    Perl_ref
-#undef  Perl_refkids
-#define Perl_refkids           pPerl->Perl_refkids
-#undef  refkids
-#define refkids                        Perl_refkids
 #undef  Perl_regdump
 #define Perl_regdump           pPerl->Perl_regdump
 #undef  regdump
 #define regdump                        Perl_regdump
-#undef  Perl_pregexec
-#define Perl_pregexec          pPerl->Perl_pregexec
-#undef  pregexec
-#define pregexec               Perl_pregexec
-#undef  Perl_pregfree
-#define Perl_pregfree          pPerl->Perl_pregfree
-#undef  pregfree
-#define pregfree               Perl_pregfree
-#undef  Perl_pregcomp
-#define Perl_pregcomp          pPerl->Perl_pregcomp
-#undef  pregcomp
-#define pregcomp               Perl_pregcomp
-#undef  Perl_re_intuit_start
-#define Perl_re_intuit_start   pPerl->Perl_re_intuit_start
-#undef  re_intuit_start
-#define re_intuit_start                Perl_re_intuit_start
-#undef  Perl_re_intuit_string
-#define Perl_re_intuit_string  pPerl->Perl_re_intuit_string
-#undef  re_intuit_string
-#define re_intuit_string       Perl_re_intuit_string
-#undef  Perl_regexec_flags
-#define Perl_regexec_flags     pPerl->Perl_regexec_flags
-#undef  regexec_flags
-#define regexec_flags          Perl_regexec_flags
-#undef  Perl_regnext
-#define Perl_regnext           pPerl->Perl_regnext
-#undef  regnext
-#define regnext                        Perl_regnext
-#undef  Perl_regprop
-#define Perl_regprop           pPerl->Perl_regprop
-#undef  regprop
-#define regprop                        Perl_regprop
-#undef  Perl_repeatcpy
-#define Perl_repeatcpy         pPerl->Perl_repeatcpy
-#undef  repeatcpy
-#define repeatcpy              Perl_repeatcpy
 #undef  Perl_rninstr
 #define Perl_rninstr           pPerl->Perl_rninstr
 #undef  rninstr
 #define rninstr                        Perl_rninstr
-#undef  Perl_rsignal
-#define Perl_rsignal           pPerl->Perl_rsignal
-#undef  rsignal
-#define rsignal                        Perl_rsignal
-#undef  Perl_rsignal_restore
-#define Perl_rsignal_restore   pPerl->Perl_rsignal_restore
-#undef  rsignal_restore
-#define rsignal_restore                Perl_rsignal_restore
-#undef  Perl_rsignal_save
-#define Perl_rsignal_save      pPerl->Perl_rsignal_save
-#undef  rsignal_save
-#define rsignal_save           Perl_rsignal_save
-#undef  Perl_rsignal_state
-#define Perl_rsignal_state     pPerl->Perl_rsignal_state
-#undef  rsignal_state
-#define rsignal_state          Perl_rsignal_state
-#undef  Perl_rxres_free
-#define Perl_rxres_free                pPerl->Perl_rxres_free
-#undef  rxres_free
-#define rxres_free             Perl_rxres_free
-#undef  Perl_rxres_restore
-#define Perl_rxres_restore     pPerl->Perl_rxres_restore
-#undef  rxres_restore
-#define rxres_restore          Perl_rxres_restore
-#undef  Perl_rxres_save
-#define Perl_rxres_save                pPerl->Perl_rxres_save
-#undef  rxres_save
-#define rxres_save             Perl_rxres_save
 #if !defined(HAS_RENAME)
-#undef  Perl_same_dirent
-#define Perl_same_dirent       pPerl->Perl_same_dirent
-#undef  same_dirent
-#define same_dirent            Perl_same_dirent
 #endif
 #undef  Perl_savepv
 #define Perl_savepv            pPerl->Perl_savepv
 #define Perl_save_freesv       pPerl->Perl_save_freesv
 #undef  save_freesv
 #define save_freesv            Perl_save_freesv
-#undef  Perl_save_freeop
-#define Perl_save_freeop       pPerl->Perl_save_freeop
-#undef  save_freeop
-#define save_freeop            Perl_save_freeop
 #undef  Perl_save_freepv
 #define Perl_save_freepv       pPerl->Perl_save_freepv
 #undef  save_freepv
 #define Perl_save_nogv         pPerl->Perl_save_nogv
 #undef  save_nogv
 #define save_nogv              Perl_save_nogv
-#undef  Perl_save_op
-#define Perl_save_op           pPerl->Perl_save_op
-#undef  save_op
-#define save_op                        Perl_save_op
 #undef  Perl_save_scalar
 #define Perl_save_scalar       pPerl->Perl_save_scalar
 #undef  save_scalar
 #define Perl_save_threadsv     pPerl->Perl_save_threadsv
 #undef  save_threadsv
 #define save_threadsv          Perl_save_threadsv
-#undef  Perl_sawparens
-#define Perl_sawparens         pPerl->Perl_sawparens
-#undef  sawparens
-#define sawparens              Perl_sawparens
-#undef  Perl_scalar
-#define Perl_scalar            pPerl->Perl_scalar
-#undef  scalar
-#define scalar                 Perl_scalar
-#undef  Perl_scalarkids
-#define Perl_scalarkids                pPerl->Perl_scalarkids
-#undef  scalarkids
-#define scalarkids             Perl_scalarkids
-#undef  Perl_scalarseq
-#define Perl_scalarseq         pPerl->Perl_scalarseq
-#undef  scalarseq
-#define scalarseq              Perl_scalarseq
-#undef  Perl_scalarvoid
-#define Perl_scalarvoid                pPerl->Perl_scalarvoid
-#undef  scalarvoid
-#define scalarvoid             Perl_scalarvoid
-#undef  Perl_scan_bin
-#define Perl_scan_bin          pPerl->Perl_scan_bin
-#undef  scan_bin
-#define scan_bin               Perl_scan_bin
-#undef  Perl_scan_hex
-#define Perl_scan_hex          pPerl->Perl_scan_hex
-#undef  scan_hex
-#define scan_hex               Perl_scan_hex
-#undef  Perl_scan_num
-#define Perl_scan_num          pPerl->Perl_scan_num
-#undef  scan_num
-#define scan_num               Perl_scan_num
-#undef  Perl_scan_oct
-#define Perl_scan_oct          pPerl->Perl_scan_oct
-#undef  scan_oct
-#define scan_oct               Perl_scan_oct
-#undef  Perl_scope
-#define Perl_scope             pPerl->Perl_scope
-#undef  scope
-#define scope                  Perl_scope
-#undef  Perl_screaminstr
-#define Perl_screaminstr       pPerl->Perl_screaminstr
-#undef  screaminstr
-#define screaminstr            Perl_screaminstr
 #if !defined(VMS)
-#undef  Perl_setenv_getix
-#define Perl_setenv_getix      pPerl->Perl_setenv_getix
-#undef  setenv_getix
-#define setenv_getix           Perl_setenv_getix
 #endif
-#undef  Perl_setdefout
-#define Perl_setdefout         pPerl->Perl_setdefout
-#undef  setdefout
-#define setdefout              Perl_setdefout
-#undef  Perl_sharepvn
-#define Perl_sharepvn          pPerl->Perl_sharepvn
-#undef  sharepvn
-#define sharepvn               Perl_sharepvn
-#undef  Perl_share_hek
-#define Perl_share_hek         pPerl->Perl_share_hek
-#undef  share_hek
-#define share_hek              Perl_share_hek
-#undef  Perl_sighandler
-#define Perl_sighandler                pPerl->Perl_sighandler
-#undef  sighandler
-#define sighandler             Perl_sighandler
 #undef  Perl_stack_grow
 #define Perl_stack_grow                pPerl->Perl_stack_grow
 #undef  stack_grow
 #define Perl_start_subparse    pPerl->Perl_start_subparse
 #undef  start_subparse
 #define start_subparse         Perl_start_subparse
-#undef  Perl_sub_crush_depth
-#define Perl_sub_crush_depth   pPerl->Perl_sub_crush_depth
-#undef  sub_crush_depth
-#define sub_crush_depth                Perl_sub_crush_depth
 #undef  Perl_sv_2bool
 #define Perl_sv_2bool          pPerl->Perl_sv_2bool
 #undef  sv_2bool
 #define Perl_sv_true           pPerl->Perl_sv_true
 #undef  sv_true
 #define sv_true                        Perl_sv_true
-#undef  Perl_sv_add_arena
-#define Perl_sv_add_arena      pPerl->Perl_sv_add_arena
-#undef  sv_add_arena
-#define sv_add_arena           Perl_sv_add_arena
 #undef  Perl_sv_backoff
 #define Perl_sv_backoff                pPerl->Perl_sv_backoff
 #undef  sv_backoff
 #define Perl_sv_chop           pPerl->Perl_sv_chop
 #undef  sv_chop
 #define sv_chop                        Perl_sv_chop
-#undef  Perl_sv_clean_all
-#define Perl_sv_clean_all      pPerl->Perl_sv_clean_all
-#undef  sv_clean_all
-#define sv_clean_all           Perl_sv_clean_all
-#undef  Perl_sv_clean_objs
-#define Perl_sv_clean_objs     pPerl->Perl_sv_clean_objs
-#undef  sv_clean_objs
-#define sv_clean_objs          Perl_sv_clean_objs
 #undef  Perl_sv_clear
 #define Perl_sv_clear          pPerl->Perl_sv_clear
 #undef  sv_clear
 #undef  sv_collxfrm
 #define sv_collxfrm            Perl_sv_collxfrm
 #endif
-#undef  Perl_sv_compile_2op
-#define Perl_sv_compile_2op    pPerl->Perl_sv_compile_2op
-#undef  sv_compile_2op
-#define sv_compile_2op         Perl_sv_compile_2op
 #undef  Perl_sv_dec
 #define Perl_sv_dec            pPerl->Perl_sv_dec
 #undef  sv_dec
 #define Perl_sv_free           pPerl->Perl_sv_free
 #undef  sv_free
 #define sv_free                        Perl_sv_free
-#undef  Perl_sv_free_arenas
-#define Perl_sv_free_arenas    pPerl->Perl_sv_free_arenas
-#undef  sv_free_arenas
-#define sv_free_arenas         Perl_sv_free_arenas
-#undef  Perl_sv_gets
-#define Perl_sv_gets           pPerl->Perl_sv_gets
-#undef  sv_gets
-#define sv_gets                        Perl_sv_gets
 #undef  Perl_sv_grow
 #define Perl_sv_grow           pPerl->Perl_sv_grow
 #undef  sv_grow
 #define Perl_sv_vsetpvfn       pPerl->Perl_sv_vsetpvfn
 #undef  sv_vsetpvfn
 #define sv_vsetpvfn            Perl_sv_vsetpvfn
-#undef  Perl_swash_init
-#define Perl_swash_init                pPerl->Perl_swash_init
-#undef  swash_init
-#define swash_init             Perl_swash_init
-#undef  Perl_swash_fetch
-#define Perl_swash_fetch       pPerl->Perl_swash_fetch
-#undef  swash_fetch
-#define swash_fetch            Perl_swash_fetch
 #undef  Perl_taint_env
 #define Perl_taint_env         pPerl->Perl_taint_env
 #undef  taint_env
 #define unlnk                  Perl_unlnk
 #endif
 #if defined(USE_THREADS)
-#undef  Perl_unlock_condpair
-#define Perl_unlock_condpair   pPerl->Perl_unlock_condpair
-#undef  unlock_condpair
-#define unlock_condpair                Perl_unlock_condpair
 #endif
-#undef  Perl_unsharepvn
-#define Perl_unsharepvn                pPerl->Perl_unsharepvn
-#undef  unsharepvn
-#define unsharepvn             Perl_unsharepvn
-#undef  Perl_unshare_hek
-#define Perl_unshare_hek       pPerl->Perl_unshare_hek
-#undef  unshare_hek
-#define unshare_hek            Perl_unshare_hek
-#undef  Perl_utilize
-#define Perl_utilize           pPerl->Perl_utilize
-#undef  utilize
-#define utilize                        Perl_utilize
 #undef  Perl_utf16_to_utf8
 #define Perl_utf16_to_utf8     pPerl->Perl_utf16_to_utf8
 #undef  utf16_to_utf8
 #define Perl_uv_to_utf8                pPerl->Perl_uv_to_utf8
 #undef  uv_to_utf8
 #define uv_to_utf8             Perl_uv_to_utf8
-#undef  Perl_vivify_defelem
-#define Perl_vivify_defelem    pPerl->Perl_vivify_defelem
-#undef  vivify_defelem
-#define vivify_defelem         Perl_vivify_defelem
-#undef  Perl_vivify_ref
-#define Perl_vivify_ref                pPerl->Perl_vivify_ref
-#undef  vivify_ref
-#define vivify_ref             Perl_vivify_ref
-#undef  Perl_wait4pid
-#define Perl_wait4pid          pPerl->Perl_wait4pid
-#undef  wait4pid
-#define wait4pid               Perl_wait4pid
-#undef  Perl_report_closed_fh
-#define Perl_report_closed_fh  pPerl->Perl_report_closed_fh
-#undef  report_closed_fh
-#define report_closed_fh       Perl_report_closed_fh
-#undef  Perl_report_uninit
-#define Perl_report_uninit     pPerl->Perl_report_uninit
-#undef  report_uninit
-#define report_uninit          Perl_report_uninit
 #undef  Perl_warn
 #define Perl_warn              pPerl->Perl_warn
 #undef  warn
 #define Perl_vwarner           pPerl->Perl_vwarner
 #undef  vwarner
 #define vwarner                        Perl_vwarner
-#undef  Perl_watch
-#define Perl_watch             pPerl->Perl_watch
-#undef  watch
-#define watch                  Perl_watch
-#undef  Perl_whichsig
-#define Perl_whichsig          pPerl->Perl_whichsig
-#undef  whichsig
-#define whichsig               Perl_whichsig
-#undef  Perl_yyerror
-#define Perl_yyerror           pPerl->Perl_yyerror
-#undef  yyerror
-#define yyerror                        Perl_yyerror
 #if defined(USE_PURE_BISON)
-#undef  Perl_yylex
-#define Perl_yylex             pPerl->Perl_yylex
-#undef  yylex
-#define yylex                  Perl_yylex
 #else
-#undef  Perl_yylex
-#define Perl_yylex             pPerl->Perl_yylex
-#undef  yylex
-#define yylex                  Perl_yylex
 #endif
-#undef  Perl_yyparse
-#define Perl_yyparse           pPerl->Perl_yyparse
-#undef  yyparse
-#define yyparse                        Perl_yyparse
-#undef  Perl_yywarn
-#define Perl_yywarn            pPerl->Perl_yywarn
-#undef  yywarn
-#define yywarn                 Perl_yywarn
 #if defined(MYMALLOC)
 #undef  Perl_dump_mstats
 #define Perl_dump_mstats       pPerl->Perl_dump_mstats
 #define Perl_get_vtbl          pPerl->Perl_get_vtbl
 #undef  get_vtbl
 #define get_vtbl               Perl_get_vtbl
-#undef  Perl_pv_display
-#define Perl_pv_display                pPerl->Perl_pv_display
-#undef  pv_display
-#define pv_display             Perl_pv_display
 #undef  Perl_dump_indent
 #define Perl_dump_indent       pPerl->Perl_dump_indent
 #undef  dump_indent
 #define Perl_sv_rvweaken       pPerl->Perl_sv_rvweaken
 #undef  sv_rvweaken
 #define sv_rvweaken            Perl_sv_rvweaken
-#undef  Perl_magic_killbackrefs
-#define Perl_magic_killbackrefs        pPerl->Perl_magic_killbackrefs
-#undef  magic_killbackrefs
-#define magic_killbackrefs     Perl_magic_killbackrefs
 #undef  Perl_newANONATTRSUB
 #define Perl_newANONATTRSUB    pPerl->Perl_newANONATTRSUB
 #undef  newANONATTRSUB
 #define Perl_newMYSUB          pPerl->Perl_newMYSUB
 #undef  newMYSUB
 #define newMYSUB               Perl_newMYSUB
-#undef  Perl_my_attrs
-#define Perl_my_attrs          pPerl->Perl_my_attrs
-#undef  my_attrs
-#define my_attrs               Perl_my_attrs
-#undef  Perl_boot_core_xsutils
-#define Perl_boot_core_xsutils pPerl->Perl_boot_core_xsutils
-#undef  boot_core_xsutils
-#define boot_core_xsutils      Perl_boot_core_xsutils
 #if defined(USE_ITHREADS)
 #undef  Perl_cx_dup
 #define Perl_cx_dup            pPerl->Perl_cx_dup
 #endif
 #if defined(PERL_OBJECT)
 #endif
-#undef  Perl_ck_anoncode
-#define Perl_ck_anoncode       pPerl->Perl_ck_anoncode
-#undef  ck_anoncode
-#define ck_anoncode            Perl_ck_anoncode
-#undef  Perl_ck_bitop
-#define Perl_ck_bitop          pPerl->Perl_ck_bitop
-#undef  ck_bitop
-#define ck_bitop               Perl_ck_bitop
-#undef  Perl_ck_concat
-#define Perl_ck_concat         pPerl->Perl_ck_concat
-#undef  ck_concat
-#define ck_concat              Perl_ck_concat
-#undef  Perl_ck_defined
-#define Perl_ck_defined                pPerl->Perl_ck_defined
-#undef  ck_defined
-#define ck_defined             Perl_ck_defined
-#undef  Perl_ck_delete
-#define Perl_ck_delete         pPerl->Perl_ck_delete
-#undef  ck_delete
-#define ck_delete              Perl_ck_delete
-#undef  Perl_ck_eof
-#define Perl_ck_eof            pPerl->Perl_ck_eof
-#undef  ck_eof
-#define ck_eof                 Perl_ck_eof
-#undef  Perl_ck_eval
-#define Perl_ck_eval           pPerl->Perl_ck_eval
-#undef  ck_eval
-#define ck_eval                        Perl_ck_eval
-#undef  Perl_ck_exec
-#define Perl_ck_exec           pPerl->Perl_ck_exec
-#undef  ck_exec
-#define ck_exec                        Perl_ck_exec
-#undef  Perl_ck_exists
-#define Perl_ck_exists         pPerl->Perl_ck_exists
-#undef  ck_exists
-#define ck_exists              Perl_ck_exists
-#undef  Perl_ck_ftst
-#define Perl_ck_ftst           pPerl->Perl_ck_ftst
-#undef  ck_ftst
-#define ck_ftst                        Perl_ck_ftst
-#undef  Perl_ck_fun
-#define Perl_ck_fun            pPerl->Perl_ck_fun
-#undef  ck_fun
-#define ck_fun                 Perl_ck_fun
-#undef  Perl_ck_fun_locale
-#define Perl_ck_fun_locale     pPerl->Perl_ck_fun_locale
-#undef  ck_fun_locale
-#define ck_fun_locale          Perl_ck_fun_locale
-#undef  Perl_ck_glob
-#define Perl_ck_glob           pPerl->Perl_ck_glob
-#undef  ck_glob
-#define ck_glob                        Perl_ck_glob
-#undef  Perl_ck_grep
-#define Perl_ck_grep           pPerl->Perl_ck_grep
-#undef  ck_grep
-#define ck_grep                        Perl_ck_grep
-#undef  Perl_ck_index
-#define Perl_ck_index          pPerl->Perl_ck_index
-#undef  ck_index
-#define ck_index               Perl_ck_index
-#undef  Perl_ck_join
-#define Perl_ck_join           pPerl->Perl_ck_join
-#undef  ck_join
-#define ck_join                        Perl_ck_join
-#undef  Perl_ck_lengthconst
-#define Perl_ck_lengthconst    pPerl->Perl_ck_lengthconst
-#undef  ck_lengthconst
-#define ck_lengthconst         Perl_ck_lengthconst
-#undef  Perl_ck_lfun
-#define Perl_ck_lfun           pPerl->Perl_ck_lfun
-#undef  ck_lfun
-#define ck_lfun                        Perl_ck_lfun
-#undef  Perl_ck_listiob
-#define Perl_ck_listiob                pPerl->Perl_ck_listiob
-#undef  ck_listiob
-#define ck_listiob             Perl_ck_listiob
-#undef  Perl_ck_match
-#define Perl_ck_match          pPerl->Perl_ck_match
-#undef  ck_match
-#define ck_match               Perl_ck_match
-#undef  Perl_ck_method
-#define Perl_ck_method         pPerl->Perl_ck_method
-#undef  ck_method
-#define ck_method              Perl_ck_method
-#undef  Perl_ck_null
-#define Perl_ck_null           pPerl->Perl_ck_null
-#undef  ck_null
-#define ck_null                        Perl_ck_null
-#undef  Perl_ck_repeat
-#define Perl_ck_repeat         pPerl->Perl_ck_repeat
-#undef  ck_repeat
-#define ck_repeat              Perl_ck_repeat
-#undef  Perl_ck_require
-#define Perl_ck_require                pPerl->Perl_ck_require
-#undef  ck_require
-#define ck_require             Perl_ck_require
-#undef  Perl_ck_rfun
-#define Perl_ck_rfun           pPerl->Perl_ck_rfun
-#undef  ck_rfun
-#define ck_rfun                        Perl_ck_rfun
-#undef  Perl_ck_rvconst
-#define Perl_ck_rvconst                pPerl->Perl_ck_rvconst
-#undef  ck_rvconst
-#define ck_rvconst             Perl_ck_rvconst
-#undef  Perl_ck_sassign
-#define Perl_ck_sassign                pPerl->Perl_ck_sassign
-#undef  ck_sassign
-#define ck_sassign             Perl_ck_sassign
-#undef  Perl_ck_scmp
-#define Perl_ck_scmp           pPerl->Perl_ck_scmp
-#undef  ck_scmp
-#define ck_scmp                        Perl_ck_scmp
-#undef  Perl_ck_select
-#define Perl_ck_select         pPerl->Perl_ck_select
-#undef  ck_select
-#define ck_select              Perl_ck_select
-#undef  Perl_ck_shift
-#define Perl_ck_shift          pPerl->Perl_ck_shift
-#undef  ck_shift
-#define ck_shift               Perl_ck_shift
-#undef  Perl_ck_sort
-#define Perl_ck_sort           pPerl->Perl_ck_sort
-#undef  ck_sort
-#define ck_sort                        Perl_ck_sort
-#undef  Perl_ck_spair
-#define Perl_ck_spair          pPerl->Perl_ck_spair
-#undef  ck_spair
-#define ck_spair               Perl_ck_spair
-#undef  Perl_ck_split
-#define Perl_ck_split          pPerl->Perl_ck_split
-#undef  ck_split
-#define ck_split               Perl_ck_split
-#undef  Perl_ck_subr
-#define Perl_ck_subr           pPerl->Perl_ck_subr
-#undef  ck_subr
-#define ck_subr                        Perl_ck_subr
-#undef  Perl_ck_svconst
-#define Perl_ck_svconst                pPerl->Perl_ck_svconst
-#undef  ck_svconst
-#define ck_svconst             Perl_ck_svconst
-#undef  Perl_ck_trunc
-#define Perl_ck_trunc          pPerl->Perl_ck_trunc
-#undef  ck_trunc
-#define ck_trunc               Perl_ck_trunc
-#undef  Perl_pp_aassign
-#define Perl_pp_aassign                pPerl->Perl_pp_aassign
-#undef  pp_aassign
-#define pp_aassign             Perl_pp_aassign
-#undef  Perl_pp_abs
-#define Perl_pp_abs            pPerl->Perl_pp_abs
-#undef  pp_abs
-#define pp_abs                 Perl_pp_abs
-#undef  Perl_pp_accept
-#define Perl_pp_accept         pPerl->Perl_pp_accept
-#undef  pp_accept
-#define pp_accept              Perl_pp_accept
-#undef  Perl_pp_add
-#define Perl_pp_add            pPerl->Perl_pp_add
-#undef  pp_add
-#define pp_add                 Perl_pp_add
-#undef  Perl_pp_aelem
-#define Perl_pp_aelem          pPerl->Perl_pp_aelem
-#undef  pp_aelem
-#define pp_aelem               Perl_pp_aelem
-#undef  Perl_pp_aelemfast
-#define Perl_pp_aelemfast      pPerl->Perl_pp_aelemfast
-#undef  pp_aelemfast
-#define pp_aelemfast           Perl_pp_aelemfast
-#undef  Perl_pp_alarm
-#define Perl_pp_alarm          pPerl->Perl_pp_alarm
-#undef  pp_alarm
-#define pp_alarm               Perl_pp_alarm
-#undef  Perl_pp_and
-#define Perl_pp_and            pPerl->Perl_pp_and
-#undef  pp_and
-#define pp_and                 Perl_pp_and
-#undef  Perl_pp_andassign
-#define Perl_pp_andassign      pPerl->Perl_pp_andassign
-#undef  pp_andassign
-#define pp_andassign           Perl_pp_andassign
-#undef  Perl_pp_anoncode
-#define Perl_pp_anoncode       pPerl->Perl_pp_anoncode
-#undef  pp_anoncode
-#define pp_anoncode            Perl_pp_anoncode
-#undef  Perl_pp_anonhash
-#define Perl_pp_anonhash       pPerl->Perl_pp_anonhash
-#undef  pp_anonhash
-#define pp_anonhash            Perl_pp_anonhash
-#undef  Perl_pp_anonlist
-#define Perl_pp_anonlist       pPerl->Perl_pp_anonlist
-#undef  pp_anonlist
-#define pp_anonlist            Perl_pp_anonlist
-#undef  Perl_pp_aslice
-#define Perl_pp_aslice         pPerl->Perl_pp_aslice
-#undef  pp_aslice
-#define pp_aslice              Perl_pp_aslice
-#undef  Perl_pp_atan2
-#define Perl_pp_atan2          pPerl->Perl_pp_atan2
-#undef  pp_atan2
-#define pp_atan2               Perl_pp_atan2
-#undef  Perl_pp_av2arylen
-#define Perl_pp_av2arylen      pPerl->Perl_pp_av2arylen
-#undef  pp_av2arylen
-#define pp_av2arylen           Perl_pp_av2arylen
-#undef  Perl_pp_backtick
-#define Perl_pp_backtick       pPerl->Perl_pp_backtick
-#undef  pp_backtick
-#define pp_backtick            Perl_pp_backtick
-#undef  Perl_pp_bind
-#define Perl_pp_bind           pPerl->Perl_pp_bind
-#undef  pp_bind
-#define pp_bind                        Perl_pp_bind
-#undef  Perl_pp_binmode
-#define Perl_pp_binmode                pPerl->Perl_pp_binmode
-#undef  pp_binmode
-#define pp_binmode             Perl_pp_binmode
-#undef  Perl_pp_bit_and
-#define Perl_pp_bit_and                pPerl->Perl_pp_bit_and
-#undef  pp_bit_and
-#define pp_bit_and             Perl_pp_bit_and
-#undef  Perl_pp_bit_or
-#define Perl_pp_bit_or         pPerl->Perl_pp_bit_or
-#undef  pp_bit_or
-#define pp_bit_or              Perl_pp_bit_or
-#undef  Perl_pp_bit_xor
-#define Perl_pp_bit_xor                pPerl->Perl_pp_bit_xor
-#undef  pp_bit_xor
-#define pp_bit_xor             Perl_pp_bit_xor
-#undef  Perl_pp_bless
-#define Perl_pp_bless          pPerl->Perl_pp_bless
-#undef  pp_bless
-#define pp_bless               Perl_pp_bless
-#undef  Perl_pp_caller
-#define Perl_pp_caller         pPerl->Perl_pp_caller
-#undef  pp_caller
-#define pp_caller              Perl_pp_caller
-#undef  Perl_pp_chdir
-#define Perl_pp_chdir          pPerl->Perl_pp_chdir
-#undef  pp_chdir
-#define pp_chdir               Perl_pp_chdir
-#undef  Perl_pp_chmod
-#define Perl_pp_chmod          pPerl->Perl_pp_chmod
-#undef  pp_chmod
-#define pp_chmod               Perl_pp_chmod
-#undef  Perl_pp_chomp
-#define Perl_pp_chomp          pPerl->Perl_pp_chomp
-#undef  pp_chomp
-#define pp_chomp               Perl_pp_chomp
-#undef  Perl_pp_chop
-#define Perl_pp_chop           pPerl->Perl_pp_chop
-#undef  pp_chop
-#define pp_chop                        Perl_pp_chop
-#undef  Perl_pp_chown
-#define Perl_pp_chown          pPerl->Perl_pp_chown
-#undef  pp_chown
-#define pp_chown               Perl_pp_chown
-#undef  Perl_pp_chr
-#define Perl_pp_chr            pPerl->Perl_pp_chr
-#undef  pp_chr
-#define pp_chr                 Perl_pp_chr
-#undef  Perl_pp_chroot
-#define Perl_pp_chroot         pPerl->Perl_pp_chroot
-#undef  pp_chroot
-#define pp_chroot              Perl_pp_chroot
-#undef  Perl_pp_close
-#define Perl_pp_close          pPerl->Perl_pp_close
-#undef  pp_close
-#define pp_close               Perl_pp_close
-#undef  Perl_pp_closedir
-#define Perl_pp_closedir       pPerl->Perl_pp_closedir
-#undef  pp_closedir
-#define pp_closedir            Perl_pp_closedir
-#undef  Perl_pp_complement
-#define Perl_pp_complement     pPerl->Perl_pp_complement
-#undef  pp_complement
-#define pp_complement          Perl_pp_complement
-#undef  Perl_pp_concat
-#define Perl_pp_concat         pPerl->Perl_pp_concat
-#undef  pp_concat
-#define pp_concat              Perl_pp_concat
-#undef  Perl_pp_cond_expr
-#define Perl_pp_cond_expr      pPerl->Perl_pp_cond_expr
-#undef  pp_cond_expr
-#define pp_cond_expr           Perl_pp_cond_expr
-#undef  Perl_pp_connect
-#define Perl_pp_connect                pPerl->Perl_pp_connect
-#undef  pp_connect
-#define pp_connect             Perl_pp_connect
-#undef  Perl_pp_const
-#define Perl_pp_const          pPerl->Perl_pp_const
-#undef  pp_const
-#define pp_const               Perl_pp_const
-#undef  Perl_pp_cos
-#define Perl_pp_cos            pPerl->Perl_pp_cos
-#undef  pp_cos
-#define pp_cos                 Perl_pp_cos
-#undef  Perl_pp_crypt
-#define Perl_pp_crypt          pPerl->Perl_pp_crypt
-#undef  pp_crypt
-#define pp_crypt               Perl_pp_crypt
-#undef  Perl_pp_dbmclose
-#define Perl_pp_dbmclose       pPerl->Perl_pp_dbmclose
-#undef  pp_dbmclose
-#define pp_dbmclose            Perl_pp_dbmclose
-#undef  Perl_pp_dbmopen
-#define Perl_pp_dbmopen                pPerl->Perl_pp_dbmopen
-#undef  pp_dbmopen
-#define pp_dbmopen             Perl_pp_dbmopen
-#undef  Perl_pp_dbstate
-#define Perl_pp_dbstate                pPerl->Perl_pp_dbstate
-#undef  pp_dbstate
-#define pp_dbstate             Perl_pp_dbstate
-#undef  Perl_pp_defined
-#define Perl_pp_defined                pPerl->Perl_pp_defined
-#undef  pp_defined
-#define pp_defined             Perl_pp_defined
-#undef  Perl_pp_delete
-#define Perl_pp_delete         pPerl->Perl_pp_delete
-#undef  pp_delete
-#define pp_delete              Perl_pp_delete
-#undef  Perl_pp_die
-#define Perl_pp_die            pPerl->Perl_pp_die
-#undef  pp_die
-#define pp_die                 Perl_pp_die
-#undef  Perl_pp_divide
-#define Perl_pp_divide         pPerl->Perl_pp_divide
-#undef  pp_divide
-#define pp_divide              Perl_pp_divide
-#undef  Perl_pp_dofile
-#define Perl_pp_dofile         pPerl->Perl_pp_dofile
-#undef  pp_dofile
-#define pp_dofile              Perl_pp_dofile
-#undef  Perl_pp_dump
-#define Perl_pp_dump           pPerl->Perl_pp_dump
-#undef  pp_dump
-#define pp_dump                        Perl_pp_dump
-#undef  Perl_pp_each
-#define Perl_pp_each           pPerl->Perl_pp_each
-#undef  pp_each
-#define pp_each                        Perl_pp_each
-#undef  Perl_pp_egrent
-#define Perl_pp_egrent         pPerl->Perl_pp_egrent
-#undef  pp_egrent
-#define pp_egrent              Perl_pp_egrent
-#undef  Perl_pp_ehostent
-#define Perl_pp_ehostent       pPerl->Perl_pp_ehostent
-#undef  pp_ehostent
-#define pp_ehostent            Perl_pp_ehostent
-#undef  Perl_pp_enetent
-#define Perl_pp_enetent                pPerl->Perl_pp_enetent
-#undef  pp_enetent
-#define pp_enetent             Perl_pp_enetent
-#undef  Perl_pp_enter
-#define Perl_pp_enter          pPerl->Perl_pp_enter
-#undef  pp_enter
-#define pp_enter               Perl_pp_enter
-#undef  Perl_pp_entereval
-#define Perl_pp_entereval      pPerl->Perl_pp_entereval
-#undef  pp_entereval
-#define pp_entereval           Perl_pp_entereval
-#undef  Perl_pp_enteriter
-#define Perl_pp_enteriter      pPerl->Perl_pp_enteriter
-#undef  pp_enteriter
-#define pp_enteriter           Perl_pp_enteriter
-#undef  Perl_pp_enterloop
-#define Perl_pp_enterloop      pPerl->Perl_pp_enterloop
-#undef  pp_enterloop
-#define pp_enterloop           Perl_pp_enterloop
-#undef  Perl_pp_entersub
-#define Perl_pp_entersub       pPerl->Perl_pp_entersub
-#undef  pp_entersub
-#define pp_entersub            Perl_pp_entersub
-#undef  Perl_pp_entertry
-#define Perl_pp_entertry       pPerl->Perl_pp_entertry
-#undef  pp_entertry
-#define pp_entertry            Perl_pp_entertry
-#undef  Perl_pp_enterwrite
-#define Perl_pp_enterwrite     pPerl->Perl_pp_enterwrite
-#undef  pp_enterwrite
-#define pp_enterwrite          Perl_pp_enterwrite
-#undef  Perl_pp_eof
-#define Perl_pp_eof            pPerl->Perl_pp_eof
-#undef  pp_eof
-#define pp_eof                 Perl_pp_eof
-#undef  Perl_pp_eprotoent
-#define Perl_pp_eprotoent      pPerl->Perl_pp_eprotoent
-#undef  pp_eprotoent
-#define pp_eprotoent           Perl_pp_eprotoent
-#undef  Perl_pp_epwent
-#define Perl_pp_epwent         pPerl->Perl_pp_epwent
-#undef  pp_epwent
-#define pp_epwent              Perl_pp_epwent
-#undef  Perl_pp_eq
-#define Perl_pp_eq             pPerl->Perl_pp_eq
-#undef  pp_eq
-#define pp_eq                  Perl_pp_eq
-#undef  Perl_pp_eservent
-#define Perl_pp_eservent       pPerl->Perl_pp_eservent
-#undef  pp_eservent
-#define pp_eservent            Perl_pp_eservent
-#undef  Perl_pp_exec
-#define Perl_pp_exec           pPerl->Perl_pp_exec
-#undef  pp_exec
-#define pp_exec                        Perl_pp_exec
-#undef  Perl_pp_exists
-#define Perl_pp_exists         pPerl->Perl_pp_exists
-#undef  pp_exists
-#define pp_exists              Perl_pp_exists
-#undef  Perl_pp_exit
-#define Perl_pp_exit           pPerl->Perl_pp_exit
-#undef  pp_exit
-#define pp_exit                        Perl_pp_exit
-#undef  Perl_pp_exp
-#define Perl_pp_exp            pPerl->Perl_pp_exp
-#undef  pp_exp
-#define pp_exp                 Perl_pp_exp
-#undef  Perl_pp_fcntl
-#define Perl_pp_fcntl          pPerl->Perl_pp_fcntl
-#undef  pp_fcntl
-#define pp_fcntl               Perl_pp_fcntl
-#undef  Perl_pp_fileno
-#define Perl_pp_fileno         pPerl->Perl_pp_fileno
-#undef  pp_fileno
-#define pp_fileno              Perl_pp_fileno
-#undef  Perl_pp_flip
-#define Perl_pp_flip           pPerl->Perl_pp_flip
-#undef  pp_flip
-#define pp_flip                        Perl_pp_flip
-#undef  Perl_pp_flock
-#define Perl_pp_flock          pPerl->Perl_pp_flock
-#undef  pp_flock
-#define pp_flock               Perl_pp_flock
-#undef  Perl_pp_flop
-#define Perl_pp_flop           pPerl->Perl_pp_flop
-#undef  pp_flop
-#define pp_flop                        Perl_pp_flop
-#undef  Perl_pp_fork
-#define Perl_pp_fork           pPerl->Perl_pp_fork
-#undef  pp_fork
-#define pp_fork                        Perl_pp_fork
-#undef  Perl_pp_formline
-#define Perl_pp_formline       pPerl->Perl_pp_formline
-#undef  pp_formline
-#define pp_formline            Perl_pp_formline
-#undef  Perl_pp_ftatime
-#define Perl_pp_ftatime                pPerl->Perl_pp_ftatime
-#undef  pp_ftatime
-#define pp_ftatime             Perl_pp_ftatime
-#undef  Perl_pp_ftbinary
-#define Perl_pp_ftbinary       pPerl->Perl_pp_ftbinary
-#undef  pp_ftbinary
-#define pp_ftbinary            Perl_pp_ftbinary
-#undef  Perl_pp_ftblk
-#define Perl_pp_ftblk          pPerl->Perl_pp_ftblk
-#undef  pp_ftblk
-#define pp_ftblk               Perl_pp_ftblk
-#undef  Perl_pp_ftchr
-#define Perl_pp_ftchr          pPerl->Perl_pp_ftchr
-#undef  pp_ftchr
-#define pp_ftchr               Perl_pp_ftchr
-#undef  Perl_pp_ftctime
-#define Perl_pp_ftctime                pPerl->Perl_pp_ftctime
-#undef  pp_ftctime
-#define pp_ftctime             Perl_pp_ftctime
-#undef  Perl_pp_ftdir
-#define Perl_pp_ftdir          pPerl->Perl_pp_ftdir
-#undef  pp_ftdir
-#define pp_ftdir               Perl_pp_ftdir
-#undef  Perl_pp_fteexec
-#define Perl_pp_fteexec                pPerl->Perl_pp_fteexec
-#undef  pp_fteexec
-#define pp_fteexec             Perl_pp_fteexec
-#undef  Perl_pp_fteowned
-#define Perl_pp_fteowned       pPerl->Perl_pp_fteowned
-#undef  pp_fteowned
-#define pp_fteowned            Perl_pp_fteowned
-#undef  Perl_pp_fteread
-#define Perl_pp_fteread                pPerl->Perl_pp_fteread
-#undef  pp_fteread
-#define pp_fteread             Perl_pp_fteread
-#undef  Perl_pp_ftewrite
-#define Perl_pp_ftewrite       pPerl->Perl_pp_ftewrite
-#undef  pp_ftewrite
-#define pp_ftewrite            Perl_pp_ftewrite
-#undef  Perl_pp_ftfile
-#define Perl_pp_ftfile         pPerl->Perl_pp_ftfile
-#undef  pp_ftfile
-#define pp_ftfile              Perl_pp_ftfile
-#undef  Perl_pp_ftis
-#define Perl_pp_ftis           pPerl->Perl_pp_ftis
-#undef  pp_ftis
-#define pp_ftis                        Perl_pp_ftis
-#undef  Perl_pp_ftlink
-#define Perl_pp_ftlink         pPerl->Perl_pp_ftlink
-#undef  pp_ftlink
-#define pp_ftlink              Perl_pp_ftlink
-#undef  Perl_pp_ftmtime
-#define Perl_pp_ftmtime                pPerl->Perl_pp_ftmtime
-#undef  pp_ftmtime
-#define pp_ftmtime             Perl_pp_ftmtime
-#undef  Perl_pp_ftpipe
-#define Perl_pp_ftpipe         pPerl->Perl_pp_ftpipe
-#undef  pp_ftpipe
-#define pp_ftpipe              Perl_pp_ftpipe
-#undef  Perl_pp_ftrexec
-#define Perl_pp_ftrexec                pPerl->Perl_pp_ftrexec
-#undef  pp_ftrexec
-#define pp_ftrexec             Perl_pp_ftrexec
-#undef  Perl_pp_ftrowned
-#define Perl_pp_ftrowned       pPerl->Perl_pp_ftrowned
-#undef  pp_ftrowned
-#define pp_ftrowned            Perl_pp_ftrowned
-#undef  Perl_pp_ftrread
-#define Perl_pp_ftrread                pPerl->Perl_pp_ftrread
-#undef  pp_ftrread
-#define pp_ftrread             Perl_pp_ftrread
-#undef  Perl_pp_ftrwrite
-#define Perl_pp_ftrwrite       pPerl->Perl_pp_ftrwrite
-#undef  pp_ftrwrite
-#define pp_ftrwrite            Perl_pp_ftrwrite
-#undef  Perl_pp_ftsgid
-#define Perl_pp_ftsgid         pPerl->Perl_pp_ftsgid
-#undef  pp_ftsgid
-#define pp_ftsgid              Perl_pp_ftsgid
-#undef  Perl_pp_ftsize
-#define Perl_pp_ftsize         pPerl->Perl_pp_ftsize
-#undef  pp_ftsize
-#define pp_ftsize              Perl_pp_ftsize
-#undef  Perl_pp_ftsock
-#define Perl_pp_ftsock         pPerl->Perl_pp_ftsock
-#undef  pp_ftsock
-#define pp_ftsock              Perl_pp_ftsock
-#undef  Perl_pp_ftsuid
-#define Perl_pp_ftsuid         pPerl->Perl_pp_ftsuid
-#undef  pp_ftsuid
-#define pp_ftsuid              Perl_pp_ftsuid
-#undef  Perl_pp_ftsvtx
-#define Perl_pp_ftsvtx         pPerl->Perl_pp_ftsvtx
-#undef  pp_ftsvtx
-#define pp_ftsvtx              Perl_pp_ftsvtx
-#undef  Perl_pp_fttext
-#define Perl_pp_fttext         pPerl->Perl_pp_fttext
-#undef  pp_fttext
-#define pp_fttext              Perl_pp_fttext
-#undef  Perl_pp_fttty
-#define Perl_pp_fttty          pPerl->Perl_pp_fttty
-#undef  pp_fttty
-#define pp_fttty               Perl_pp_fttty
-#undef  Perl_pp_ftzero
-#define Perl_pp_ftzero         pPerl->Perl_pp_ftzero
-#undef  pp_ftzero
-#define pp_ftzero              Perl_pp_ftzero
-#undef  Perl_pp_ge
-#define Perl_pp_ge             pPerl->Perl_pp_ge
-#undef  pp_ge
-#define pp_ge                  Perl_pp_ge
-#undef  Perl_pp_gelem
-#define Perl_pp_gelem          pPerl->Perl_pp_gelem
-#undef  pp_gelem
-#define pp_gelem               Perl_pp_gelem
-#undef  Perl_pp_getc
-#define Perl_pp_getc           pPerl->Perl_pp_getc
-#undef  pp_getc
-#define pp_getc                        Perl_pp_getc
-#undef  Perl_pp_getlogin
-#define Perl_pp_getlogin       pPerl->Perl_pp_getlogin
-#undef  pp_getlogin
-#define pp_getlogin            Perl_pp_getlogin
-#undef  Perl_pp_getpeername
-#define Perl_pp_getpeername    pPerl->Perl_pp_getpeername
-#undef  pp_getpeername
-#define pp_getpeername         Perl_pp_getpeername
-#undef  Perl_pp_getpgrp
-#define Perl_pp_getpgrp                pPerl->Perl_pp_getpgrp
-#undef  pp_getpgrp
-#define pp_getpgrp             Perl_pp_getpgrp
-#undef  Perl_pp_getppid
-#define Perl_pp_getppid                pPerl->Perl_pp_getppid
-#undef  pp_getppid
-#define pp_getppid             Perl_pp_getppid
-#undef  Perl_pp_getpriority
-#define Perl_pp_getpriority    pPerl->Perl_pp_getpriority
-#undef  pp_getpriority
-#define pp_getpriority         Perl_pp_getpriority
-#undef  Perl_pp_getsockname
-#define Perl_pp_getsockname    pPerl->Perl_pp_getsockname
-#undef  pp_getsockname
-#define pp_getsockname         Perl_pp_getsockname
-#undef  Perl_pp_ggrent
-#define Perl_pp_ggrent         pPerl->Perl_pp_ggrent
-#undef  pp_ggrent
-#define pp_ggrent              Perl_pp_ggrent
-#undef  Perl_pp_ggrgid
-#define Perl_pp_ggrgid         pPerl->Perl_pp_ggrgid
-#undef  pp_ggrgid
-#define pp_ggrgid              Perl_pp_ggrgid
-#undef  Perl_pp_ggrnam
-#define Perl_pp_ggrnam         pPerl->Perl_pp_ggrnam
-#undef  pp_ggrnam
-#define pp_ggrnam              Perl_pp_ggrnam
-#undef  Perl_pp_ghbyaddr
-#define Perl_pp_ghbyaddr       pPerl->Perl_pp_ghbyaddr
-#undef  pp_ghbyaddr
-#define pp_ghbyaddr            Perl_pp_ghbyaddr
-#undef  Perl_pp_ghbyname
-#define Perl_pp_ghbyname       pPerl->Perl_pp_ghbyname
-#undef  pp_ghbyname
-#define pp_ghbyname            Perl_pp_ghbyname
-#undef  Perl_pp_ghostent
-#define Perl_pp_ghostent       pPerl->Perl_pp_ghostent
-#undef  pp_ghostent
-#define pp_ghostent            Perl_pp_ghostent
-#undef  Perl_pp_glob
-#define Perl_pp_glob           pPerl->Perl_pp_glob
-#undef  pp_glob
-#define pp_glob                        Perl_pp_glob
-#undef  Perl_pp_gmtime
-#define Perl_pp_gmtime         pPerl->Perl_pp_gmtime
-#undef  pp_gmtime
-#define pp_gmtime              Perl_pp_gmtime
-#undef  Perl_pp_gnbyaddr
-#define Perl_pp_gnbyaddr       pPerl->Perl_pp_gnbyaddr
-#undef  pp_gnbyaddr
-#define pp_gnbyaddr            Perl_pp_gnbyaddr
-#undef  Perl_pp_gnbyname
-#define Perl_pp_gnbyname       pPerl->Perl_pp_gnbyname
-#undef  pp_gnbyname
-#define pp_gnbyname            Perl_pp_gnbyname
-#undef  Perl_pp_gnetent
-#define Perl_pp_gnetent                pPerl->Perl_pp_gnetent
-#undef  pp_gnetent
-#define pp_gnetent             Perl_pp_gnetent
-#undef  Perl_pp_goto
-#define Perl_pp_goto           pPerl->Perl_pp_goto
-#undef  pp_goto
-#define pp_goto                        Perl_pp_goto
-#undef  Perl_pp_gpbyname
-#define Perl_pp_gpbyname       pPerl->Perl_pp_gpbyname
-#undef  pp_gpbyname
-#define pp_gpbyname            Perl_pp_gpbyname
-#undef  Perl_pp_gpbynumber
-#define Perl_pp_gpbynumber     pPerl->Perl_pp_gpbynumber
-#undef  pp_gpbynumber
-#define pp_gpbynumber          Perl_pp_gpbynumber
-#undef  Perl_pp_gprotoent
-#define Perl_pp_gprotoent      pPerl->Perl_pp_gprotoent
-#undef  pp_gprotoent
-#define pp_gprotoent           Perl_pp_gprotoent
-#undef  Perl_pp_gpwent
-#define Perl_pp_gpwent         pPerl->Perl_pp_gpwent
-#undef  pp_gpwent
-#define pp_gpwent              Perl_pp_gpwent
-#undef  Perl_pp_gpwnam
-#define Perl_pp_gpwnam         pPerl->Perl_pp_gpwnam
-#undef  pp_gpwnam
-#define pp_gpwnam              Perl_pp_gpwnam
-#undef  Perl_pp_gpwuid
-#define Perl_pp_gpwuid         pPerl->Perl_pp_gpwuid
-#undef  pp_gpwuid
-#define pp_gpwuid              Perl_pp_gpwuid
-#undef  Perl_pp_grepstart
-#define Perl_pp_grepstart      pPerl->Perl_pp_grepstart
-#undef  pp_grepstart
-#define pp_grepstart           Perl_pp_grepstart
-#undef  Perl_pp_grepwhile
-#define Perl_pp_grepwhile      pPerl->Perl_pp_grepwhile
-#undef  pp_grepwhile
-#define pp_grepwhile           Perl_pp_grepwhile
-#undef  Perl_pp_gsbyname
-#define Perl_pp_gsbyname       pPerl->Perl_pp_gsbyname
-#undef  pp_gsbyname
-#define pp_gsbyname            Perl_pp_gsbyname
-#undef  Perl_pp_gsbyport
-#define Perl_pp_gsbyport       pPerl->Perl_pp_gsbyport
-#undef  pp_gsbyport
-#define pp_gsbyport            Perl_pp_gsbyport
-#undef  Perl_pp_gservent
-#define Perl_pp_gservent       pPerl->Perl_pp_gservent
-#undef  pp_gservent
-#define pp_gservent            Perl_pp_gservent
-#undef  Perl_pp_gsockopt
-#define Perl_pp_gsockopt       pPerl->Perl_pp_gsockopt
-#undef  pp_gsockopt
-#define pp_gsockopt            Perl_pp_gsockopt
-#undef  Perl_pp_gt
-#define Perl_pp_gt             pPerl->Perl_pp_gt
-#undef  pp_gt
-#define pp_gt                  Perl_pp_gt
-#undef  Perl_pp_gv
-#define Perl_pp_gv             pPerl->Perl_pp_gv
-#undef  pp_gv
-#define pp_gv                  Perl_pp_gv
-#undef  Perl_pp_gvsv
-#define Perl_pp_gvsv           pPerl->Perl_pp_gvsv
-#undef  pp_gvsv
-#define pp_gvsv                        Perl_pp_gvsv
-#undef  Perl_pp_helem
-#define Perl_pp_helem          pPerl->Perl_pp_helem
-#undef  pp_helem
-#define pp_helem               Perl_pp_helem
-#undef  Perl_pp_hex
-#define Perl_pp_hex            pPerl->Perl_pp_hex
-#undef  pp_hex
-#define pp_hex                 Perl_pp_hex
-#undef  Perl_pp_hslice
-#define Perl_pp_hslice         pPerl->Perl_pp_hslice
-#undef  pp_hslice
-#define pp_hslice              Perl_pp_hslice
-#undef  Perl_pp_i_add
-#define Perl_pp_i_add          pPerl->Perl_pp_i_add
-#undef  pp_i_add
-#define pp_i_add               Perl_pp_i_add
-#undef  Perl_pp_i_divide
-#define Perl_pp_i_divide       pPerl->Perl_pp_i_divide
-#undef  pp_i_divide
-#define pp_i_divide            Perl_pp_i_divide
-#undef  Perl_pp_i_eq
-#define Perl_pp_i_eq           pPerl->Perl_pp_i_eq
-#undef  pp_i_eq
-#define pp_i_eq                        Perl_pp_i_eq
-#undef  Perl_pp_i_ge
-#define Perl_pp_i_ge           pPerl->Perl_pp_i_ge
-#undef  pp_i_ge
-#define pp_i_ge                        Perl_pp_i_ge
-#undef  Perl_pp_i_gt
-#define Perl_pp_i_gt           pPerl->Perl_pp_i_gt
-#undef  pp_i_gt
-#define pp_i_gt                        Perl_pp_i_gt
-#undef  Perl_pp_i_le
-#define Perl_pp_i_le           pPerl->Perl_pp_i_le
-#undef  pp_i_le
-#define pp_i_le                        Perl_pp_i_le
-#undef  Perl_pp_i_lt
-#define Perl_pp_i_lt           pPerl->Perl_pp_i_lt
-#undef  pp_i_lt
-#define pp_i_lt                        Perl_pp_i_lt
-#undef  Perl_pp_i_modulo
-#define Perl_pp_i_modulo       pPerl->Perl_pp_i_modulo
-#undef  pp_i_modulo
-#define pp_i_modulo            Perl_pp_i_modulo
-#undef  Perl_pp_i_multiply
-#define Perl_pp_i_multiply     pPerl->Perl_pp_i_multiply
-#undef  pp_i_multiply
-#define pp_i_multiply          Perl_pp_i_multiply
-#undef  Perl_pp_i_ncmp
-#define Perl_pp_i_ncmp         pPerl->Perl_pp_i_ncmp
-#undef  pp_i_ncmp
-#define pp_i_ncmp              Perl_pp_i_ncmp
-#undef  Perl_pp_i_ne
-#define Perl_pp_i_ne           pPerl->Perl_pp_i_ne
-#undef  pp_i_ne
-#define pp_i_ne                        Perl_pp_i_ne
-#undef  Perl_pp_i_negate
-#define Perl_pp_i_negate       pPerl->Perl_pp_i_negate
-#undef  pp_i_negate
-#define pp_i_negate            Perl_pp_i_negate
-#undef  Perl_pp_i_subtract
-#define Perl_pp_i_subtract     pPerl->Perl_pp_i_subtract
-#undef  pp_i_subtract
-#define pp_i_subtract          Perl_pp_i_subtract
-#undef  Perl_pp_index
-#define Perl_pp_index          pPerl->Perl_pp_index
-#undef  pp_index
-#define pp_index               Perl_pp_index
-#undef  Perl_pp_int
-#define Perl_pp_int            pPerl->Perl_pp_int
-#undef  pp_int
-#define pp_int                 Perl_pp_int
-#undef  Perl_pp_ioctl
-#define Perl_pp_ioctl          pPerl->Perl_pp_ioctl
-#undef  pp_ioctl
-#define pp_ioctl               Perl_pp_ioctl
-#undef  Perl_pp_iter
-#define Perl_pp_iter           pPerl->Perl_pp_iter
-#undef  pp_iter
-#define pp_iter                        Perl_pp_iter
-#undef  Perl_pp_join
-#define Perl_pp_join           pPerl->Perl_pp_join
-#undef  pp_join
-#define pp_join                        Perl_pp_join
-#undef  Perl_pp_keys
-#define Perl_pp_keys           pPerl->Perl_pp_keys
-#undef  pp_keys
-#define pp_keys                        Perl_pp_keys
-#undef  Perl_pp_kill
-#define Perl_pp_kill           pPerl->Perl_pp_kill
-#undef  pp_kill
-#define pp_kill                        Perl_pp_kill
-#undef  Perl_pp_last
-#define Perl_pp_last           pPerl->Perl_pp_last
-#undef  pp_last
-#define pp_last                        Perl_pp_last
-#undef  Perl_pp_lc
-#define Perl_pp_lc             pPerl->Perl_pp_lc
-#undef  pp_lc
-#define pp_lc                  Perl_pp_lc
-#undef  Perl_pp_lcfirst
-#define Perl_pp_lcfirst                pPerl->Perl_pp_lcfirst
-#undef  pp_lcfirst
-#define pp_lcfirst             Perl_pp_lcfirst
-#undef  Perl_pp_le
-#define Perl_pp_le             pPerl->Perl_pp_le
-#undef  pp_le
-#define pp_le                  Perl_pp_le
-#undef  Perl_pp_leave
-#define Perl_pp_leave          pPerl->Perl_pp_leave
-#undef  pp_leave
-#define pp_leave               Perl_pp_leave
-#undef  Perl_pp_leaveeval
-#define Perl_pp_leaveeval      pPerl->Perl_pp_leaveeval
-#undef  pp_leaveeval
-#define pp_leaveeval           Perl_pp_leaveeval
-#undef  Perl_pp_leaveloop
-#define Perl_pp_leaveloop      pPerl->Perl_pp_leaveloop
-#undef  pp_leaveloop
-#define pp_leaveloop           Perl_pp_leaveloop
-#undef  Perl_pp_leavesub
-#define Perl_pp_leavesub       pPerl->Perl_pp_leavesub
-#undef  pp_leavesub
-#define pp_leavesub            Perl_pp_leavesub
-#undef  Perl_pp_leavesublv
-#define Perl_pp_leavesublv     pPerl->Perl_pp_leavesublv
-#undef  pp_leavesublv
-#define pp_leavesublv          Perl_pp_leavesublv
-#undef  Perl_pp_leavetry
-#define Perl_pp_leavetry       pPerl->Perl_pp_leavetry
-#undef  pp_leavetry
-#define pp_leavetry            Perl_pp_leavetry
-#undef  Perl_pp_leavewrite
-#define Perl_pp_leavewrite     pPerl->Perl_pp_leavewrite
-#undef  pp_leavewrite
-#define pp_leavewrite          Perl_pp_leavewrite
-#undef  Perl_pp_left_shift
-#define Perl_pp_left_shift     pPerl->Perl_pp_left_shift
-#undef  pp_left_shift
-#define pp_left_shift          Perl_pp_left_shift
-#undef  Perl_pp_length
-#define Perl_pp_length         pPerl->Perl_pp_length
-#undef  pp_length
-#define pp_length              Perl_pp_length
-#undef  Perl_pp_lineseq
-#define Perl_pp_lineseq                pPerl->Perl_pp_lineseq
-#undef  pp_lineseq
-#define pp_lineseq             Perl_pp_lineseq
-#undef  Perl_pp_link
-#define Perl_pp_link           pPerl->Perl_pp_link
-#undef  pp_link
-#define pp_link                        Perl_pp_link
-#undef  Perl_pp_list
-#define Perl_pp_list           pPerl->Perl_pp_list
-#undef  pp_list
-#define pp_list                        Perl_pp_list
-#undef  Perl_pp_listen
-#define Perl_pp_listen         pPerl->Perl_pp_listen
-#undef  pp_listen
-#define pp_listen              Perl_pp_listen
-#undef  Perl_pp_localtime
-#define Perl_pp_localtime      pPerl->Perl_pp_localtime
-#undef  pp_localtime
-#define pp_localtime           Perl_pp_localtime
-#undef  Perl_pp_lock
-#define Perl_pp_lock           pPerl->Perl_pp_lock
-#undef  pp_lock
-#define pp_lock                        Perl_pp_lock
-#undef  Perl_pp_log
-#define Perl_pp_log            pPerl->Perl_pp_log
-#undef  pp_log
-#define pp_log                 Perl_pp_log
-#undef  Perl_pp_lslice
-#define Perl_pp_lslice         pPerl->Perl_pp_lslice
-#undef  pp_lslice
-#define pp_lslice              Perl_pp_lslice
-#undef  Perl_pp_lstat
-#define Perl_pp_lstat          pPerl->Perl_pp_lstat
-#undef  pp_lstat
-#define pp_lstat               Perl_pp_lstat
-#undef  Perl_pp_lt
-#define Perl_pp_lt             pPerl->Perl_pp_lt
-#undef  pp_lt
-#define pp_lt                  Perl_pp_lt
-#undef  Perl_pp_mapstart
-#define Perl_pp_mapstart       pPerl->Perl_pp_mapstart
-#undef  pp_mapstart
-#define pp_mapstart            Perl_pp_mapstart
-#undef  Perl_pp_mapwhile
-#define Perl_pp_mapwhile       pPerl->Perl_pp_mapwhile
-#undef  pp_mapwhile
-#define pp_mapwhile            Perl_pp_mapwhile
-#undef  Perl_pp_match
-#define Perl_pp_match          pPerl->Perl_pp_match
-#undef  pp_match
-#define pp_match               Perl_pp_match
-#undef  Perl_pp_method
-#define Perl_pp_method         pPerl->Perl_pp_method
-#undef  pp_method
-#define pp_method              Perl_pp_method
-#undef  Perl_pp_method_named
-#define Perl_pp_method_named   pPerl->Perl_pp_method_named
-#undef  pp_method_named
-#define pp_method_named                Perl_pp_method_named
-#undef  Perl_pp_mkdir
-#define Perl_pp_mkdir          pPerl->Perl_pp_mkdir
-#undef  pp_mkdir
-#define pp_mkdir               Perl_pp_mkdir
-#undef  Perl_pp_modulo
-#define Perl_pp_modulo         pPerl->Perl_pp_modulo
-#undef  pp_modulo
-#define pp_modulo              Perl_pp_modulo
-#undef  Perl_pp_msgctl
-#define Perl_pp_msgctl         pPerl->Perl_pp_msgctl
-#undef  pp_msgctl
-#define pp_msgctl              Perl_pp_msgctl
-#undef  Perl_pp_msgget
-#define Perl_pp_msgget         pPerl->Perl_pp_msgget
-#undef  pp_msgget
-#define pp_msgget              Perl_pp_msgget
-#undef  Perl_pp_msgrcv
-#define Perl_pp_msgrcv         pPerl->Perl_pp_msgrcv
-#undef  pp_msgrcv
-#define pp_msgrcv              Perl_pp_msgrcv
-#undef  Perl_pp_msgsnd
-#define Perl_pp_msgsnd         pPerl->Perl_pp_msgsnd
-#undef  pp_msgsnd
-#define pp_msgsnd              Perl_pp_msgsnd
-#undef  Perl_pp_multiply
-#define Perl_pp_multiply       pPerl->Perl_pp_multiply
-#undef  pp_multiply
-#define pp_multiply            Perl_pp_multiply
-#undef  Perl_pp_ncmp
-#define Perl_pp_ncmp           pPerl->Perl_pp_ncmp
-#undef  pp_ncmp
-#define pp_ncmp                        Perl_pp_ncmp
-#undef  Perl_pp_ne
-#define Perl_pp_ne             pPerl->Perl_pp_ne
-#undef  pp_ne
-#define pp_ne                  Perl_pp_ne
-#undef  Perl_pp_negate
-#define Perl_pp_negate         pPerl->Perl_pp_negate
-#undef  pp_negate
-#define pp_negate              Perl_pp_negate
-#undef  Perl_pp_next
-#define Perl_pp_next           pPerl->Perl_pp_next
-#undef  pp_next
-#define pp_next                        Perl_pp_next
-#undef  Perl_pp_nextstate
-#define Perl_pp_nextstate      pPerl->Perl_pp_nextstate
-#undef  pp_nextstate
-#define pp_nextstate           Perl_pp_nextstate
-#undef  Perl_pp_not
-#define Perl_pp_not            pPerl->Perl_pp_not
-#undef  pp_not
-#define pp_not                 Perl_pp_not
-#undef  Perl_pp_null
-#define Perl_pp_null           pPerl->Perl_pp_null
-#undef  pp_null
-#define pp_null                        Perl_pp_null
-#undef  Perl_pp_oct
-#define Perl_pp_oct            pPerl->Perl_pp_oct
-#undef  pp_oct
-#define pp_oct                 Perl_pp_oct
-#undef  Perl_pp_open
-#define Perl_pp_open           pPerl->Perl_pp_open
-#undef  pp_open
-#define pp_open                        Perl_pp_open
-#undef  Perl_pp_open_dir
-#define Perl_pp_open_dir       pPerl->Perl_pp_open_dir
-#undef  pp_open_dir
-#define pp_open_dir            Perl_pp_open_dir
-#undef  Perl_pp_or
-#define Perl_pp_or             pPerl->Perl_pp_or
-#undef  pp_or
-#define pp_or                  Perl_pp_or
-#undef  Perl_pp_orassign
-#define Perl_pp_orassign       pPerl->Perl_pp_orassign
-#undef  pp_orassign
-#define pp_orassign            Perl_pp_orassign
-#undef  Perl_pp_ord
-#define Perl_pp_ord            pPerl->Perl_pp_ord
-#undef  pp_ord
-#define pp_ord                 Perl_pp_ord
-#undef  Perl_pp_pack
-#define Perl_pp_pack           pPerl->Perl_pp_pack
-#undef  pp_pack
-#define pp_pack                        Perl_pp_pack
-#undef  Perl_pp_padany
-#define Perl_pp_padany         pPerl->Perl_pp_padany
-#undef  pp_padany
-#define pp_padany              Perl_pp_padany
-#undef  Perl_pp_padav
-#define Perl_pp_padav          pPerl->Perl_pp_padav
-#undef  pp_padav
-#define pp_padav               Perl_pp_padav
-#undef  Perl_pp_padhv
-#define Perl_pp_padhv          pPerl->Perl_pp_padhv
-#undef  pp_padhv
-#define pp_padhv               Perl_pp_padhv
-#undef  Perl_pp_padsv
-#define Perl_pp_padsv          pPerl->Perl_pp_padsv
-#undef  pp_padsv
-#define pp_padsv               Perl_pp_padsv
-#undef  Perl_pp_pipe_op
-#define Perl_pp_pipe_op                pPerl->Perl_pp_pipe_op
-#undef  pp_pipe_op
-#define pp_pipe_op             Perl_pp_pipe_op
-#undef  Perl_pp_pop
-#define Perl_pp_pop            pPerl->Perl_pp_pop
-#undef  pp_pop
-#define pp_pop                 Perl_pp_pop
-#undef  Perl_pp_pos
-#define Perl_pp_pos            pPerl->Perl_pp_pos
-#undef  pp_pos
-#define pp_pos                 Perl_pp_pos
-#undef  Perl_pp_postdec
-#define Perl_pp_postdec                pPerl->Perl_pp_postdec
-#undef  pp_postdec
-#define pp_postdec             Perl_pp_postdec
-#undef  Perl_pp_postinc
-#define Perl_pp_postinc                pPerl->Perl_pp_postinc
-#undef  pp_postinc
-#define pp_postinc             Perl_pp_postinc
-#undef  Perl_pp_pow
-#define Perl_pp_pow            pPerl->Perl_pp_pow
-#undef  pp_pow
-#define pp_pow                 Perl_pp_pow
-#undef  Perl_pp_predec
-#define Perl_pp_predec         pPerl->Perl_pp_predec
-#undef  pp_predec
-#define pp_predec              Perl_pp_predec
-#undef  Perl_pp_preinc
-#define Perl_pp_preinc         pPerl->Perl_pp_preinc
-#undef  pp_preinc
-#define pp_preinc              Perl_pp_preinc
-#undef  Perl_pp_print
-#define Perl_pp_print          pPerl->Perl_pp_print
-#undef  pp_print
-#define pp_print               Perl_pp_print
-#undef  Perl_pp_prototype
-#define Perl_pp_prototype      pPerl->Perl_pp_prototype
-#undef  pp_prototype
-#define pp_prototype           Perl_pp_prototype
-#undef  Perl_pp_prtf
-#define Perl_pp_prtf           pPerl->Perl_pp_prtf
-#undef  pp_prtf
-#define pp_prtf                        Perl_pp_prtf
-#undef  Perl_pp_push
-#define Perl_pp_push           pPerl->Perl_pp_push
-#undef  pp_push
-#define pp_push                        Perl_pp_push
-#undef  Perl_pp_pushmark
-#define Perl_pp_pushmark       pPerl->Perl_pp_pushmark
-#undef  pp_pushmark
-#define pp_pushmark            Perl_pp_pushmark
-#undef  Perl_pp_pushre
-#define Perl_pp_pushre         pPerl->Perl_pp_pushre
-#undef  pp_pushre
-#define pp_pushre              Perl_pp_pushre
-#undef  Perl_pp_qr
-#define Perl_pp_qr             pPerl->Perl_pp_qr
-#undef  pp_qr
-#define pp_qr                  Perl_pp_qr
-#undef  Perl_pp_quotemeta
-#define Perl_pp_quotemeta      pPerl->Perl_pp_quotemeta
-#undef  pp_quotemeta
-#define pp_quotemeta           Perl_pp_quotemeta
-#undef  Perl_pp_rand
-#define Perl_pp_rand           pPerl->Perl_pp_rand
-#undef  pp_rand
-#define pp_rand                        Perl_pp_rand
-#undef  Perl_pp_range
-#define Perl_pp_range          pPerl->Perl_pp_range
-#undef  pp_range
-#define pp_range               Perl_pp_range
-#undef  Perl_pp_rcatline
-#define Perl_pp_rcatline       pPerl->Perl_pp_rcatline
-#undef  pp_rcatline
-#define pp_rcatline            Perl_pp_rcatline
-#undef  Perl_pp_read
-#define Perl_pp_read           pPerl->Perl_pp_read
-#undef  pp_read
-#define pp_read                        Perl_pp_read
-#undef  Perl_pp_readdir
-#define Perl_pp_readdir                pPerl->Perl_pp_readdir
-#undef  pp_readdir
-#define pp_readdir             Perl_pp_readdir
-#undef  Perl_pp_readline
-#define Perl_pp_readline       pPerl->Perl_pp_readline
-#undef  pp_readline
-#define pp_readline            Perl_pp_readline
-#undef  Perl_pp_readlink
-#define Perl_pp_readlink       pPerl->Perl_pp_readlink
-#undef  pp_readlink
-#define pp_readlink            Perl_pp_readlink
-#undef  Perl_pp_recv
-#define Perl_pp_recv           pPerl->Perl_pp_recv
-#undef  pp_recv
-#define pp_recv                        Perl_pp_recv
-#undef  Perl_pp_redo
-#define Perl_pp_redo           pPerl->Perl_pp_redo
-#undef  pp_redo
-#define pp_redo                        Perl_pp_redo
-#undef  Perl_pp_ref
-#define Perl_pp_ref            pPerl->Perl_pp_ref
-#undef  pp_ref
-#define pp_ref                 Perl_pp_ref
-#undef  Perl_pp_refgen
-#define Perl_pp_refgen         pPerl->Perl_pp_refgen
-#undef  pp_refgen
-#define pp_refgen              Perl_pp_refgen
-#undef  Perl_pp_regcmaybe
-#define Perl_pp_regcmaybe      pPerl->Perl_pp_regcmaybe
-#undef  pp_regcmaybe
-#define pp_regcmaybe           Perl_pp_regcmaybe
-#undef  Perl_pp_regcomp
-#define Perl_pp_regcomp                pPerl->Perl_pp_regcomp
-#undef  pp_regcomp
-#define pp_regcomp             Perl_pp_regcomp
-#undef  Perl_pp_regcreset
-#define Perl_pp_regcreset      pPerl->Perl_pp_regcreset
-#undef  pp_regcreset
-#define pp_regcreset           Perl_pp_regcreset
-#undef  Perl_pp_rename
-#define Perl_pp_rename         pPerl->Perl_pp_rename
-#undef  pp_rename
-#define pp_rename              Perl_pp_rename
-#undef  Perl_pp_repeat
-#define Perl_pp_repeat         pPerl->Perl_pp_repeat
-#undef  pp_repeat
-#define pp_repeat              Perl_pp_repeat
-#undef  Perl_pp_require
-#define Perl_pp_require                pPerl->Perl_pp_require
-#undef  pp_require
-#define pp_require             Perl_pp_require
-#undef  Perl_pp_reset
-#define Perl_pp_reset          pPerl->Perl_pp_reset
-#undef  pp_reset
-#define pp_reset               Perl_pp_reset
-#undef  Perl_pp_return
-#define Perl_pp_return         pPerl->Perl_pp_return
-#undef  pp_return
-#define pp_return              Perl_pp_return
-#undef  Perl_pp_reverse
-#define Perl_pp_reverse                pPerl->Perl_pp_reverse
-#undef  pp_reverse
-#define pp_reverse             Perl_pp_reverse
-#undef  Perl_pp_rewinddir
-#define Perl_pp_rewinddir      pPerl->Perl_pp_rewinddir
-#undef  pp_rewinddir
-#define pp_rewinddir           Perl_pp_rewinddir
-#undef  Perl_pp_right_shift
-#define Perl_pp_right_shift    pPerl->Perl_pp_right_shift
-#undef  pp_right_shift
-#define pp_right_shift         Perl_pp_right_shift
-#undef  Perl_pp_rindex
-#define Perl_pp_rindex         pPerl->Perl_pp_rindex
-#undef  pp_rindex
-#define pp_rindex              Perl_pp_rindex
-#undef  Perl_pp_rmdir
-#define Perl_pp_rmdir          pPerl->Perl_pp_rmdir
-#undef  pp_rmdir
-#define pp_rmdir               Perl_pp_rmdir
-#undef  Perl_pp_rv2av
-#define Perl_pp_rv2av          pPerl->Perl_pp_rv2av
-#undef  pp_rv2av
-#define pp_rv2av               Perl_pp_rv2av
-#undef  Perl_pp_rv2cv
-#define Perl_pp_rv2cv          pPerl->Perl_pp_rv2cv
-#undef  pp_rv2cv
-#define pp_rv2cv               Perl_pp_rv2cv
-#undef  Perl_pp_rv2gv
-#define Perl_pp_rv2gv          pPerl->Perl_pp_rv2gv
-#undef  pp_rv2gv
-#define pp_rv2gv               Perl_pp_rv2gv
-#undef  Perl_pp_rv2hv
-#define Perl_pp_rv2hv          pPerl->Perl_pp_rv2hv
-#undef  pp_rv2hv
-#define pp_rv2hv               Perl_pp_rv2hv
-#undef  Perl_pp_rv2sv
-#define Perl_pp_rv2sv          pPerl->Perl_pp_rv2sv
-#undef  pp_rv2sv
-#define pp_rv2sv               Perl_pp_rv2sv
-#undef  Perl_pp_sassign
-#define Perl_pp_sassign                pPerl->Perl_pp_sassign
-#undef  pp_sassign
-#define pp_sassign             Perl_pp_sassign
-#undef  Perl_pp_scalar
-#define Perl_pp_scalar         pPerl->Perl_pp_scalar
-#undef  pp_scalar
-#define pp_scalar              Perl_pp_scalar
-#undef  Perl_pp_schomp
-#define Perl_pp_schomp         pPerl->Perl_pp_schomp
-#undef  pp_schomp
-#define pp_schomp              Perl_pp_schomp
-#undef  Perl_pp_schop
-#define Perl_pp_schop          pPerl->Perl_pp_schop
-#undef  pp_schop
-#define pp_schop               Perl_pp_schop
-#undef  Perl_pp_scmp
-#define Perl_pp_scmp           pPerl->Perl_pp_scmp
-#undef  pp_scmp
-#define pp_scmp                        Perl_pp_scmp
-#undef  Perl_pp_scope
-#define Perl_pp_scope          pPerl->Perl_pp_scope
-#undef  pp_scope
-#define pp_scope               Perl_pp_scope
-#undef  Perl_pp_seek
-#define Perl_pp_seek           pPerl->Perl_pp_seek
-#undef  pp_seek
-#define pp_seek                        Perl_pp_seek
-#undef  Perl_pp_seekdir
-#define Perl_pp_seekdir                pPerl->Perl_pp_seekdir
-#undef  pp_seekdir
-#define pp_seekdir             Perl_pp_seekdir
-#undef  Perl_pp_select
-#define Perl_pp_select         pPerl->Perl_pp_select
-#undef  pp_select
-#define pp_select              Perl_pp_select
-#undef  Perl_pp_semctl
-#define Perl_pp_semctl         pPerl->Perl_pp_semctl
-#undef  pp_semctl
-#define pp_semctl              Perl_pp_semctl
-#undef  Perl_pp_semget
-#define Perl_pp_semget         pPerl->Perl_pp_semget
-#undef  pp_semget
-#define pp_semget              Perl_pp_semget
-#undef  Perl_pp_semop
-#define Perl_pp_semop          pPerl->Perl_pp_semop
-#undef  pp_semop
-#define pp_semop               Perl_pp_semop
-#undef  Perl_pp_send
-#define Perl_pp_send           pPerl->Perl_pp_send
-#undef  pp_send
-#define pp_send                        Perl_pp_send
-#undef  Perl_pp_seq
-#define Perl_pp_seq            pPerl->Perl_pp_seq
-#undef  pp_seq
-#define pp_seq                 Perl_pp_seq
-#undef  Perl_pp_setpgrp
-#define Perl_pp_setpgrp                pPerl->Perl_pp_setpgrp
-#undef  pp_setpgrp
-#define pp_setpgrp             Perl_pp_setpgrp
-#undef  Perl_pp_setpriority
-#define Perl_pp_setpriority    pPerl->Perl_pp_setpriority
-#undef  pp_setpriority
-#define pp_setpriority         Perl_pp_setpriority
-#undef  Perl_pp_setstate
-#define Perl_pp_setstate       pPerl->Perl_pp_setstate
-#undef  pp_setstate
-#define pp_setstate            Perl_pp_setstate
-#undef  Perl_pp_sge
-#define Perl_pp_sge            pPerl->Perl_pp_sge
-#undef  pp_sge
-#define pp_sge                 Perl_pp_sge
-#undef  Perl_pp_sgrent
-#define Perl_pp_sgrent         pPerl->Perl_pp_sgrent
-#undef  pp_sgrent
-#define pp_sgrent              Perl_pp_sgrent
-#undef  Perl_pp_sgt
-#define Perl_pp_sgt            pPerl->Perl_pp_sgt
-#undef  pp_sgt
-#define pp_sgt                 Perl_pp_sgt
-#undef  Perl_pp_shift
-#define Perl_pp_shift          pPerl->Perl_pp_shift
-#undef  pp_shift
-#define pp_shift               Perl_pp_shift
-#undef  Perl_pp_shmctl
-#define Perl_pp_shmctl         pPerl->Perl_pp_shmctl
-#undef  pp_shmctl
-#define pp_shmctl              Perl_pp_shmctl
-#undef  Perl_pp_shmget
-#define Perl_pp_shmget         pPerl->Perl_pp_shmget
-#undef  pp_shmget
-#define pp_shmget              Perl_pp_shmget
-#undef  Perl_pp_shmread
-#define Perl_pp_shmread                pPerl->Perl_pp_shmread
-#undef  pp_shmread
-#define pp_shmread             Perl_pp_shmread
-#undef  Perl_pp_shmwrite
-#define Perl_pp_shmwrite       pPerl->Perl_pp_shmwrite
-#undef  pp_shmwrite
-#define pp_shmwrite            Perl_pp_shmwrite
-#undef  Perl_pp_shostent
-#define Perl_pp_shostent       pPerl->Perl_pp_shostent
-#undef  pp_shostent
-#define pp_shostent            Perl_pp_shostent
-#undef  Perl_pp_shutdown
-#define Perl_pp_shutdown       pPerl->Perl_pp_shutdown
-#undef  pp_shutdown
-#define pp_shutdown            Perl_pp_shutdown
-#undef  Perl_pp_sin
-#define Perl_pp_sin            pPerl->Perl_pp_sin
-#undef  pp_sin
-#define pp_sin                 Perl_pp_sin
-#undef  Perl_pp_sle
-#define Perl_pp_sle            pPerl->Perl_pp_sle
-#undef  pp_sle
-#define pp_sle                 Perl_pp_sle
-#undef  Perl_pp_sleep
-#define Perl_pp_sleep          pPerl->Perl_pp_sleep
-#undef  pp_sleep
-#define pp_sleep               Perl_pp_sleep
-#undef  Perl_pp_slt
-#define Perl_pp_slt            pPerl->Perl_pp_slt
-#undef  pp_slt
-#define pp_slt                 Perl_pp_slt
-#undef  Perl_pp_sne
-#define Perl_pp_sne            pPerl->Perl_pp_sne
-#undef  pp_sne
-#define pp_sne                 Perl_pp_sne
-#undef  Perl_pp_snetent
-#define Perl_pp_snetent                pPerl->Perl_pp_snetent
-#undef  pp_snetent
-#define pp_snetent             Perl_pp_snetent
-#undef  Perl_pp_socket
-#define Perl_pp_socket         pPerl->Perl_pp_socket
-#undef  pp_socket
-#define pp_socket              Perl_pp_socket
-#undef  Perl_pp_sockpair
-#define Perl_pp_sockpair       pPerl->Perl_pp_sockpair
-#undef  pp_sockpair
-#define pp_sockpair            Perl_pp_sockpair
-#undef  Perl_pp_sort
-#define Perl_pp_sort           pPerl->Perl_pp_sort
-#undef  pp_sort
-#define pp_sort                        Perl_pp_sort
-#undef  Perl_pp_splice
-#define Perl_pp_splice         pPerl->Perl_pp_splice
-#undef  pp_splice
-#define pp_splice              Perl_pp_splice
-#undef  Perl_pp_split
-#define Perl_pp_split          pPerl->Perl_pp_split
-#undef  pp_split
-#define pp_split               Perl_pp_split
-#undef  Perl_pp_sprintf
-#define Perl_pp_sprintf                pPerl->Perl_pp_sprintf
-#undef  pp_sprintf
-#define pp_sprintf             Perl_pp_sprintf
-#undef  Perl_pp_sprotoent
-#define Perl_pp_sprotoent      pPerl->Perl_pp_sprotoent
-#undef  pp_sprotoent
-#define pp_sprotoent           Perl_pp_sprotoent
-#undef  Perl_pp_spwent
-#define Perl_pp_spwent         pPerl->Perl_pp_spwent
-#undef  pp_spwent
-#define pp_spwent              Perl_pp_spwent
-#undef  Perl_pp_sqrt
-#define Perl_pp_sqrt           pPerl->Perl_pp_sqrt
-#undef  pp_sqrt
-#define pp_sqrt                        Perl_pp_sqrt
-#undef  Perl_pp_srand
-#define Perl_pp_srand          pPerl->Perl_pp_srand
-#undef  pp_srand
-#define pp_srand               Perl_pp_srand
-#undef  Perl_pp_srefgen
-#define Perl_pp_srefgen                pPerl->Perl_pp_srefgen
-#undef  pp_srefgen
-#define pp_srefgen             Perl_pp_srefgen
-#undef  Perl_pp_sselect
-#define Perl_pp_sselect                pPerl->Perl_pp_sselect
-#undef  pp_sselect
-#define pp_sselect             Perl_pp_sselect
-#undef  Perl_pp_sservent
-#define Perl_pp_sservent       pPerl->Perl_pp_sservent
-#undef  pp_sservent
-#define pp_sservent            Perl_pp_sservent
-#undef  Perl_pp_ssockopt
-#define Perl_pp_ssockopt       pPerl->Perl_pp_ssockopt
-#undef  pp_ssockopt
-#define pp_ssockopt            Perl_pp_ssockopt
-#undef  Perl_pp_stat
-#define Perl_pp_stat           pPerl->Perl_pp_stat
-#undef  pp_stat
-#define pp_stat                        Perl_pp_stat
-#undef  Perl_pp_stringify
-#define Perl_pp_stringify      pPerl->Perl_pp_stringify
-#undef  pp_stringify
-#define pp_stringify           Perl_pp_stringify
-#undef  Perl_pp_stub
-#define Perl_pp_stub           pPerl->Perl_pp_stub
-#undef  pp_stub
-#define pp_stub                        Perl_pp_stub
-#undef  Perl_pp_study
-#define Perl_pp_study          pPerl->Perl_pp_study
-#undef  pp_study
-#define pp_study               Perl_pp_study
-#undef  Perl_pp_subst
-#define Perl_pp_subst          pPerl->Perl_pp_subst
-#undef  pp_subst
-#define pp_subst               Perl_pp_subst
-#undef  Perl_pp_substcont
-#define Perl_pp_substcont      pPerl->Perl_pp_substcont
-#undef  pp_substcont
-#define pp_substcont           Perl_pp_substcont
-#undef  Perl_pp_substr
-#define Perl_pp_substr         pPerl->Perl_pp_substr
-#undef  pp_substr
-#define pp_substr              Perl_pp_substr
-#undef  Perl_pp_subtract
-#define Perl_pp_subtract       pPerl->Perl_pp_subtract
-#undef  pp_subtract
-#define pp_subtract            Perl_pp_subtract
-#undef  Perl_pp_symlink
-#define Perl_pp_symlink                pPerl->Perl_pp_symlink
-#undef  pp_symlink
-#define pp_symlink             Perl_pp_symlink
-#undef  Perl_pp_syscall
-#define Perl_pp_syscall                pPerl->Perl_pp_syscall
-#undef  pp_syscall
-#define pp_syscall             Perl_pp_syscall
-#undef  Perl_pp_sysopen
-#define Perl_pp_sysopen                pPerl->Perl_pp_sysopen
-#undef  pp_sysopen
-#define pp_sysopen             Perl_pp_sysopen
-#undef  Perl_pp_sysread
-#define Perl_pp_sysread                pPerl->Perl_pp_sysread
-#undef  pp_sysread
-#define pp_sysread             Perl_pp_sysread
-#undef  Perl_pp_sysseek
-#define Perl_pp_sysseek                pPerl->Perl_pp_sysseek
-#undef  pp_sysseek
-#define pp_sysseek             Perl_pp_sysseek
-#undef  Perl_pp_system
-#define Perl_pp_system         pPerl->Perl_pp_system
-#undef  pp_system
-#define pp_system              Perl_pp_system
-#undef  Perl_pp_syswrite
-#define Perl_pp_syswrite       pPerl->Perl_pp_syswrite
-#undef  pp_syswrite
-#define pp_syswrite            Perl_pp_syswrite
-#undef  Perl_pp_tell
-#define Perl_pp_tell           pPerl->Perl_pp_tell
-#undef  pp_tell
-#define pp_tell                        Perl_pp_tell
-#undef  Perl_pp_telldir
-#define Perl_pp_telldir                pPerl->Perl_pp_telldir
-#undef  pp_telldir
-#define pp_telldir             Perl_pp_telldir
-#undef  Perl_pp_threadsv
-#define Perl_pp_threadsv       pPerl->Perl_pp_threadsv
-#undef  pp_threadsv
-#define pp_threadsv            Perl_pp_threadsv
-#undef  Perl_pp_tie
-#define Perl_pp_tie            pPerl->Perl_pp_tie
-#undef  pp_tie
-#define pp_tie                 Perl_pp_tie
-#undef  Perl_pp_tied
-#define Perl_pp_tied           pPerl->Perl_pp_tied
-#undef  pp_tied
-#define pp_tied                        Perl_pp_tied
-#undef  Perl_pp_time
-#define Perl_pp_time           pPerl->Perl_pp_time
-#undef  pp_time
-#define pp_time                        Perl_pp_time
-#undef  Perl_pp_tms
-#define Perl_pp_tms            pPerl->Perl_pp_tms
-#undef  pp_tms
-#define pp_tms                 Perl_pp_tms
-#undef  Perl_pp_trans
-#define Perl_pp_trans          pPerl->Perl_pp_trans
-#undef  pp_trans
-#define pp_trans               Perl_pp_trans
-#undef  Perl_pp_truncate
-#define Perl_pp_truncate       pPerl->Perl_pp_truncate
-#undef  pp_truncate
-#define pp_truncate            Perl_pp_truncate
-#undef  Perl_pp_uc
-#define Perl_pp_uc             pPerl->Perl_pp_uc
-#undef  pp_uc
-#define pp_uc                  Perl_pp_uc
-#undef  Perl_pp_ucfirst
-#define Perl_pp_ucfirst                pPerl->Perl_pp_ucfirst
-#undef  pp_ucfirst
-#define pp_ucfirst             Perl_pp_ucfirst
-#undef  Perl_pp_umask
-#define Perl_pp_umask          pPerl->Perl_pp_umask
-#undef  pp_umask
-#define pp_umask               Perl_pp_umask
-#undef  Perl_pp_undef
-#define Perl_pp_undef          pPerl->Perl_pp_undef
-#undef  pp_undef
-#define pp_undef               Perl_pp_undef
-#undef  Perl_pp_unlink
-#define Perl_pp_unlink         pPerl->Perl_pp_unlink
-#undef  pp_unlink
-#define pp_unlink              Perl_pp_unlink
-#undef  Perl_pp_unpack
-#define Perl_pp_unpack         pPerl->Perl_pp_unpack
-#undef  pp_unpack
-#define pp_unpack              Perl_pp_unpack
-#undef  Perl_pp_unshift
-#define Perl_pp_unshift                pPerl->Perl_pp_unshift
-#undef  pp_unshift
-#define pp_unshift             Perl_pp_unshift
-#undef  Perl_pp_unstack
-#define Perl_pp_unstack                pPerl->Perl_pp_unstack
-#undef  pp_unstack
-#define pp_unstack             Perl_pp_unstack
-#undef  Perl_pp_untie
-#define Perl_pp_untie          pPerl->Perl_pp_untie
-#undef  pp_untie
-#define pp_untie               Perl_pp_untie
-#undef  Perl_pp_utime
-#define Perl_pp_utime          pPerl->Perl_pp_utime
-#undef  pp_utime
-#define pp_utime               Perl_pp_utime
-#undef  Perl_pp_values
-#define Perl_pp_values         pPerl->Perl_pp_values
-#undef  pp_values
-#define pp_values              Perl_pp_values
-#undef  Perl_pp_vec
-#define Perl_pp_vec            pPerl->Perl_pp_vec
-#undef  pp_vec
-#define pp_vec                 Perl_pp_vec
-#undef  Perl_pp_wait
-#define Perl_pp_wait           pPerl->Perl_pp_wait
-#undef  pp_wait
-#define pp_wait                        Perl_pp_wait
-#undef  Perl_pp_waitpid
-#define Perl_pp_waitpid                pPerl->Perl_pp_waitpid
-#undef  pp_waitpid
-#define pp_waitpid             Perl_pp_waitpid
-#undef  Perl_pp_wantarray
-#define Perl_pp_wantarray      pPerl->Perl_pp_wantarray
-#undef  pp_wantarray
-#define pp_wantarray           Perl_pp_wantarray
-#undef  Perl_pp_warn
-#define Perl_pp_warn           pPerl->Perl_pp_warn
-#undef  pp_warn
-#define pp_warn                        Perl_pp_warn
-#undef  Perl_pp_xor
-#define Perl_pp_xor            pPerl->Perl_pp_xor
-#undef  pp_xor
-#define pp_xor                 Perl_pp_xor
 
 #endif  /* PERL_CORE && PERL_OBJECT */
 #endif /* __objXSUB_h__ */
diff --git a/op.c b/op.c
index f5938c3..02edc8d 100644 (file)
--- a/op.c
+++ b/op.c
@@ -4601,6 +4601,15 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
 }
 
 /* XXX unsafe for threads if eval_owner isn't held */
+/*
+=for apidoc newCONSTSUB
+
+Creates a constant sub equivalent to Perl C<sub FOO () { 123 }> which is
+eligible for inlining at compile-time.
+
+=cut
+*/
+
 void
 Perl_newCONSTSUB(pTHX_ HV *stash, char *name, SV *sv)
 {
@@ -4635,6 +4644,14 @@ Perl_newCONSTSUB(pTHX_ HV *stash, char *name, SV *sv)
     LEAVE;
 }
 
+/*
+=for apidoc U||newXS
+
+Used by C<xsubpp> to hook up XSUBs as Perl subs.
+
+=cut
+*/
+
 CV *
 Perl_newXS(pTHX_ char *name, XSUBADDR_t subaddr, char *filename)
 {
diff --git a/op.h b/op.h
index 91cdb6b..fc38b9c 100644 (file)
--- a/op.h
+++ b/op.h
@@ -52,6 +52,20 @@ typedef U32 PADOFFSET;
         ((op)->op_flags & OPf_WANT) == OPf_WANT_LIST   ? G_ARRAY   : \
         dfl)
 
+/*
+=for apidoc Amn|U32|GIMME_V
+The XSUB-writer's equivalent to Perl's C<wantarray>.  Returns C<G_VOID>,
+C<G_SCALAR> or C<G_ARRAY> for void, scalar or array context,
+respectively.
+
+=for apidoc Amn|U32|GIMME
+A backward-compatible version of C<GIMME_V> which can only return
+C<G_SCALAR> or C<G_ARRAY>; in a void context, it returns C<G_SCALAR>.
+Deprecated.  Use C<GIMME_V> instead.
+
+=cut
+*/
+
 #define GIMME_V                OP_GIMME(PL_op, block_gimme())
 
 /* Public flags */
@@ -85,6 +99,7 @@ typedef U32 PADOFFSET;
 /* old names; don't use in new code, but don't break them, either */
 #define OPf_LIST       OPf_WANT_LIST
 #define OPf_KNOW       OPf_WANT
+
 #define GIMME \
          (PL_op->op_flags & OPf_WANT                                   \
           ? ((PL_op->op_flags & OPf_WANT) == OPf_WANT_LIST             \
diff --git a/perl.c b/perl.c
index 7f1e3f6..3153f59 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -86,6 +86,15 @@ perl_alloc_using(struct IPerlMem* ipM, struct IPerlMem* ipMS,
     return my_perl;
 }
 #else
+
+/*
+=for apidoc perl_alloc
+
+Allocates a new Perl interpreter.  See L<perlembed>.
+
+=cut
+*/
+
 PerlInterpreter *
 perl_alloc(void)
 {
@@ -99,6 +108,14 @@ perl_alloc(void)
 }
 #endif /* PERL_IMPLICIT_SYS */
 
+/*
+=for apidoc perl_construct
+
+Initializes a new Perl interpreter.  See L<perlembed>.
+
+=cut
+*/
+
 void
 perl_construct(pTHXx)
 {
@@ -239,6 +256,14 @@ perl_construct(pTHXx)
     ENTER;
 }
 
+/*
+=for apidoc perl_destruct
+
+Shuts down a Perl interpreter.  See L<perlembed>.
+
+=cut
+*/
+
 void
 perl_destruct(pTHXx)
 {
@@ -664,6 +689,14 @@ perl_destruct(pTHXx)
     }
 }
 
+/*
+=for apidoc perl_free
+
+Releases a Perl interpreter.  See L<perlembed>.
+
+=cut
+*/
+
 void
 perl_free(pTHXx)
 {
@@ -683,6 +716,14 @@ Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr)
     ++PL_exitlistlen;
 }
 
+/*
+=for apidoc perl_parse
+
+Tells a Perl interpreter to parse a Perl script.  See L<perlembed>.
+
+=cut
+*/
+
 int
 perl_parse(pTHXx_ XSINIT_t xsinit, int argc, char **argv, char **env)
 {
@@ -1152,6 +1193,14 @@ print \"  \\@INC:\\n    @INC\\n\";");
     return NULL;
 }
 
+/*
+=for apidoc perl_run
+
+Tells a Perl interpreter to run.  See L<perlembed>.
+
+=cut
+*/
+
 int
 perl_run(pTHXx)
 {
@@ -1241,6 +1290,16 @@ S_run_body(pTHX_ va_list args)
     return NULL;
 }
 
+/*
+=for apidoc p||get_sv
+
+Returns the SV of the specified Perl scalar.  If C<create> is set and the
+Perl variable does not exist then it will be created.  If C<create> is not
+set and the variable does not exist then NULL is returned.
+
+=cut
+*/
+
 SV*
 Perl_get_sv(pTHX_ const char *name, I32 create)
 {
@@ -1260,6 +1319,16 @@ Perl_get_sv(pTHX_ const char *name, I32 create)
     return Nullsv;
 }
 
+/*
+=for apidoc p||get_av
+
+Returns the AV of the specified Perl array.  If C<create> is set and the
+Perl variable does not exist then it will be created.  If C<create> is not
+set and the variable does not exist then NULL is returned.
+
+=cut
+*/
+
 AV*
 Perl_get_av(pTHX_ const char *name, I32 create)
 {
@@ -1271,6 +1340,16 @@ Perl_get_av(pTHX_ const char *name, I32 create)
     return Nullav;
 }
 
+/*
+=for apidoc p||get_hv
+
+Returns the HV of the specified Perl hash.  If C<create> is set and the
+Perl variable does not exist then it will be created.  If C<create> is not
+set and the variable does not exist then NULL is returned.
+
+=cut
+*/
+
 HV*
 Perl_get_hv(pTHX_ const char *name, I32 create)
 {
@@ -1282,6 +1361,17 @@ Perl_get_hv(pTHX_ const char *name, I32 create)
     return Nullhv;
 }
 
+/*
+=for apidoc p||get_cv
+
+Returns the CV of the specified Perl subroutine.  If C<create> is set and
+the Perl subroutine does not exist then it will be declared (which has the
+same effect as saying C<sub name;>).  If C<create> is not set and the
+subroutine does not exist then NULL is returned.
+
+=cut
+*/
+
 CV*
 Perl_get_cv(pTHX_ const char *name, I32 create)
 {
@@ -1302,6 +1392,14 @@ Perl_get_cv(pTHX_ const char *name, I32 create)
 
 /* Be sure to refetch the stack pointer after calling these routines. */
 
+/*
+=for apidoc p||call_argv
+
+Performs a callback to the specified Perl sub.  See L<perlcall>.
+
+=cut
+*/
+
 I32
 Perl_call_argv(pTHX_ const char *sub_name, I32 flags, register char **argv)
               
@@ -1321,6 +1419,14 @@ Perl_call_argv(pTHX_ const char *sub_name, I32 flags, register char **argv)
     return call_pv(sub_name, flags);
 }
 
+/*
+=for apidoc p||call_pv
+
+Performs a callback to the specified Perl sub.  See L<perlcall>.
+
+=cut
+*/
+
 I32
 Perl_call_pv(pTHX_ const char *sub_name, I32 flags)
                        /* name of the subroutine */
@@ -1329,6 +1435,15 @@ Perl_call_pv(pTHX_ const char *sub_name, I32 flags)
     return call_sv((SV*)get_cv(sub_name, TRUE), flags);
 }
 
+/*
+=for apidoc p||call_method
+
+Performs a callback to the specified Perl method.  The blessed object must
+be on the stack.  See L<perlcall>.
+
+=cut
+*/
+
 I32
 Perl_call_method(pTHX_ const char *methname, I32 flags)
                                /* name of the subroutine */
@@ -1347,6 +1462,15 @@ Perl_call_method(pTHX_ const char *methname, I32 flags)
 }
 
 /* May be called with any of a CV, a GV, or an SV containing the name. */
+/*
+=for apidoc p||call_sv
+
+Performs a callback to the Perl sub whose name is in the SV.  See
+L<perlcall>.
+
+=cut
+*/
+
 I32
 Perl_call_sv(pTHX_ SV *sv, I32 flags)
        
@@ -1509,6 +1633,14 @@ S_call_xbody(pTHX_ OP *myop, int is_eval)
 
 /* Eval a string. The G_EVAL flag is always assumed. */
 
+/*
+=for apidoc p||eval_sv
+
+Tells Perl to C<eval> the string in the SV.
+
+=cut
+*/
+
 I32
 Perl_eval_sv(pTHX_ SV *sv, I32 flags)
        
@@ -1591,6 +1723,14 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags)
     return retval;
 }
 
+/*
+=for apidoc p||eval_pv
+
+Tells Perl to C<eval> the given string and return an SV* result.
+
+=cut
+*/
+
 SV*
 Perl_eval_pv(pTHX_ const char *p, I32 croak_on_error)
 {
@@ -1615,6 +1755,14 @@ Perl_eval_pv(pTHX_ const char *p, I32 croak_on_error)
 
 /* Require a module. */
 
+/*
+=for apidoc p||require_pv
+
+Tells Perl to C<require> a module.
+
+=cut
+*/
+
 void
 Perl_require_pv(pTHX_ const char *pv)
 {
index b28c4b5..f9b37aa 100644 (file)
--- a/perlapi.c
+++ b/perlapi.c
@@ -83,27 +83,6 @@ Perl_Gv_AMupdate(pTHXo_ HV* stash)
     return ((CPerlObj*)pPerl)->Perl_Gv_AMupdate(stash);
 }
 
-#undef  Perl_append_elem
-OP*
-Perl_append_elem(pTHXo_ I32 optype, OP* head, OP* tail)
-{
-    return ((CPerlObj*)pPerl)->Perl_append_elem(optype, head, tail);
-}
-
-#undef  Perl_append_list
-OP*
-Perl_append_list(pTHXo_ I32 optype, LISTOP* first, LISTOP* last)
-{
-    return ((CPerlObj*)pPerl)->Perl_append_list(optype, first, last);
-}
-
-#undef  Perl_apply
-I32
-Perl_apply(pTHXo_ I32 type, SV** mark, SV** sp)
-{
-    return ((CPerlObj*)pPerl)->Perl_apply(type, mark, sp);
-}
-
 #undef  Perl_avhv_delete_ent
 SV*
 Perl_avhv_delete_ent(pTHXo_ AV *ar, SV* keysv, I32 flags, U32 hash)
@@ -258,20 +237,6 @@ Perl_av_unshift(pTHXo_ AV* ar, I32 num)
     ((CPerlObj*)pPerl)->Perl_av_unshift(ar, num);
 }
 
-#undef  Perl_bind_match
-OP*
-Perl_bind_match(pTHXo_ I32 type, OP* left, OP* pat)
-{
-    return ((CPerlObj*)pPerl)->Perl_bind_match(type, left, pat);
-}
-
-#undef  Perl_block_end
-OP*
-Perl_block_end(pTHXo_ I32 floor, OP* seq)
-{
-    return ((CPerlObj*)pPerl)->Perl_block_end(floor, seq);
-}
-
 #undef  Perl_block_gimme
 I32
 Perl_block_gimme(pTHXo)
@@ -279,34 +244,6 @@ Perl_block_gimme(pTHXo)
     return ((CPerlObj*)pPerl)->Perl_block_gimme();
 }
 
-#undef  Perl_block_start
-int
-Perl_block_start(pTHXo_ int full)
-{
-    return ((CPerlObj*)pPerl)->Perl_block_start(full);
-}
-
-#undef  Perl_boot_core_UNIVERSAL
-void
-Perl_boot_core_UNIVERSAL(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_boot_core_UNIVERSAL();
-}
-
-#undef  Perl_call_list
-void
-Perl_call_list(pTHXo_ I32 oldscope, AV* av_list)
-{
-    ((CPerlObj*)pPerl)->Perl_call_list(oldscope, av_list);
-}
-
-#undef  Perl_cando
-bool
-Perl_cando(pTHXo_ Mode_t mode, Uid_t effective, Stat_t* statbufp)
-{
-    return ((CPerlObj*)pPerl)->Perl_cando(mode, effective, statbufp);
-}
-
 #undef  Perl_cast_ulong
 U32
 Perl_cast_ulong(pTHXo_ NV f)
@@ -344,22 +281,8 @@ Perl_my_chsize(pTHXo_ int fd, Off_t length)
 }
 #endif
 #if defined(USE_THREADS)
-
-#undef  Perl_condpair_magic
-MAGIC*
-Perl_condpair_magic(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_condpair_magic(sv);
-}
 #endif
 
-#undef  Perl_convert
-OP*
-Perl_convert(pTHXo_ I32 optype, I32 flags, OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_convert(optype, flags, o);
-}
-
 #undef  Perl_croak
 void
 Perl_croak(pTHXo_ const char* pat, ...)
@@ -525,41 +448,6 @@ Perl_sv_setpvf_mg_nocontext(SV* sv, const char* pat, ...)
 #undef  Perl_fprintf_nocontext
 #endif
 
-#undef  Perl_cv_ckproto
-void
-Perl_cv_ckproto(pTHXo_ CV* cv, GV* gv, char* p)
-{
-    ((CPerlObj*)pPerl)->Perl_cv_ckproto(cv, gv, p);
-}
-
-#undef  Perl_cv_clone
-CV*
-Perl_cv_clone(pTHXo_ CV* proto)
-{
-    return ((CPerlObj*)pPerl)->Perl_cv_clone(proto);
-}
-
-#undef  Perl_cv_const_sv
-SV*
-Perl_cv_const_sv(pTHXo_ CV* cv)
-{
-    return ((CPerlObj*)pPerl)->Perl_cv_const_sv(cv);
-}
-
-#undef  Perl_op_const_sv
-SV*
-Perl_op_const_sv(pTHXo_ OP* o, CV* cv)
-{
-    return ((CPerlObj*)pPerl)->Perl_op_const_sv(o, cv);
-}
-
-#undef  Perl_cv_undef
-void
-Perl_cv_undef(pTHXo_ CV* cv)
-{
-    ((CPerlObj*)pPerl)->Perl_cv_undef(cv);
-}
-
 #undef  Perl_cx_dump
 void
 Perl_cx_dump(pTHXo_ PERL_CONTEXT* cs)
@@ -602,20 +490,6 @@ Perl_get_op_names(pTHXo)
     return ((CPerlObj*)pPerl)->Perl_get_op_names();
 }
 
-#undef  Perl_get_no_modify
-char*
-Perl_get_no_modify(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_no_modify();
-}
-
-#undef  Perl_get_opargs
-U32*
-Perl_get_opargs(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_opargs();
-}
-
 #undef  Perl_get_ppaddr
 PPADDR_t*
 Perl_get_ppaddr(pTHXo)
@@ -623,13 +497,6 @@ Perl_get_ppaddr(pTHXo)
     return ((CPerlObj*)pPerl)->Perl_get_ppaddr();
 }
 
-#undef  Perl_cxinc
-I32
-Perl_cxinc(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_cxinc();
-}
-
 #undef  Perl_deb
 void
 Perl_deb(pTHXo_ const char* pat, ...)
@@ -682,170 +549,17 @@ Perl_delimcpy(pTHXo_ char* to, char* toend, char* from, char* fromend, int delim
     return ((CPerlObj*)pPerl)->Perl_delimcpy(to, toend, from, fromend, delim, retlen);
 }
 
-#undef  Perl_deprecate
-void
-Perl_deprecate(pTHXo_ char* s)
-{
-    ((CPerlObj*)pPerl)->Perl_deprecate(s);
-}
-
-#undef  Perl_die
-OP*
-Perl_die(pTHXo_ const char* pat, ...)
-{
-    OP* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vdie(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_vdie
-OP*
-Perl_vdie(pTHXo_ const char* pat, va_list* args)
-{
-    return ((CPerlObj*)pPerl)->Perl_vdie(pat, args);
-}
-
-#undef  Perl_die_where
-OP*
-Perl_die_where(pTHXo_ char* message, STRLEN msglen)
-{
-    return ((CPerlObj*)pPerl)->Perl_die_where(message, msglen);
-}
-
-#undef  Perl_dounwind
-void
-Perl_dounwind(pTHXo_ I32 cxix)
-{
-    ((CPerlObj*)pPerl)->Perl_dounwind(cxix);
-}
-
-#undef  Perl_do_aexec
-bool
-Perl_do_aexec(pTHXo_ SV* really, SV** mark, SV** sp)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_aexec(really, mark, sp);
-}
-
-#undef  Perl_do_aexec5
-bool
-Perl_do_aexec5(pTHXo_ SV* really, SV** mark, SV** sp, int fd, int flag)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_aexec5(really, mark, sp, fd, flag);
-}
-
 #undef  Perl_do_binmode
 int
 Perl_do_binmode(pTHXo_ PerlIO *fp, int iotype, int flag)
 {
     return ((CPerlObj*)pPerl)->Perl_do_binmode(fp, iotype, flag);
 }
-
-#undef  Perl_do_chop
-void
-Perl_do_chop(pTHXo_ SV* asv, SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_do_chop(asv, sv);
-}
-
-#undef  Perl_do_close
-bool
-Perl_do_close(pTHXo_ GV* gv, bool not_implicit)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_close(gv, not_implicit);
-}
-
-#undef  Perl_do_eof
-bool
-Perl_do_eof(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_eof(gv);
-}
-
-#undef  Perl_do_exec
-bool
-Perl_do_exec(pTHXo_ char* cmd)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_exec(cmd);
-}
 #if !defined(WIN32)
-
-#undef  Perl_do_exec3
-bool
-Perl_do_exec3(pTHXo_ char* cmd, int fd, int flag)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_exec3(cmd, fd, flag);
-}
 #endif
-
-#undef  Perl_do_execfree
-void
-Perl_do_execfree(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_do_execfree();
-}
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-
-#undef  Perl_do_ipcctl
-I32
-Perl_do_ipcctl(pTHXo_ I32 optype, SV** mark, SV** sp)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_ipcctl(optype, mark, sp);
-}
-
-#undef  Perl_do_ipcget
-I32
-Perl_do_ipcget(pTHXo_ I32 optype, SV** mark, SV** sp)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_ipcget(optype, mark, sp);
-}
-
-#undef  Perl_do_msgrcv
-I32
-Perl_do_msgrcv(pTHXo_ SV** mark, SV** sp)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_msgrcv(mark, sp);
-}
-
-#undef  Perl_do_msgsnd
-I32
-Perl_do_msgsnd(pTHXo_ SV** mark, SV** sp)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_msgsnd(mark, sp);
-}
-
-#undef  Perl_do_semop
-I32
-Perl_do_semop(pTHXo_ SV** mark, SV** sp)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_semop(mark, sp);
-}
-
-#undef  Perl_do_shmio
-I32
-Perl_do_shmio(pTHXo_ I32 optype, SV** mark, SV** sp)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_shmio(optype, mark, sp);
-}
 #endif
 
-#undef  Perl_do_join
-void
-Perl_do_join(pTHXo_ SV* sv, SV* del, SV** mark, SV** sp)
-{
-    ((CPerlObj*)pPerl)->Perl_do_join(sv, del, mark, sp);
-}
-
-#undef  Perl_do_kv
-OP*
-Perl_do_kv(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_kv();
-}
-
 #undef  Perl_do_open
 bool
 Perl_do_open(pTHXo_ GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp)
@@ -860,97 +574,6 @@ Perl_do_open9(pTHXo_ GV *gv, char *name, I32 len, int as_raw, int rawmode, int r
     return ((CPerlObj*)pPerl)->Perl_do_open9(gv, name, len, as_raw, rawmode, rawperm, supplied_fp, svs, num);
 }
 
-#undef  Perl_do_pipe
-void
-Perl_do_pipe(pTHXo_ SV* sv, GV* rgv, GV* wgv)
-{
-    ((CPerlObj*)pPerl)->Perl_do_pipe(sv, rgv, wgv);
-}
-
-#undef  Perl_do_print
-bool
-Perl_do_print(pTHXo_ SV* sv, PerlIO* fp)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_print(sv, fp);
-}
-
-#undef  Perl_do_readline
-OP*
-Perl_do_readline(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_readline();
-}
-
-#undef  Perl_do_chomp
-I32
-Perl_do_chomp(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_chomp(sv);
-}
-
-#undef  Perl_do_seek
-bool
-Perl_do_seek(pTHXo_ GV* gv, Off_t pos, int whence)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_seek(gv, pos, whence);
-}
-
-#undef  Perl_do_sprintf
-void
-Perl_do_sprintf(pTHXo_ SV* sv, I32 len, SV** sarg)
-{
-    ((CPerlObj*)pPerl)->Perl_do_sprintf(sv, len, sarg);
-}
-
-#undef  Perl_do_sysseek
-Off_t
-Perl_do_sysseek(pTHXo_ GV* gv, Off_t pos, int whence)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_sysseek(gv, pos, whence);
-}
-
-#undef  Perl_do_tell
-Off_t
-Perl_do_tell(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_tell(gv);
-}
-
-#undef  Perl_do_trans
-I32
-Perl_do_trans(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_trans(sv);
-}
-
-#undef  Perl_do_vecget
-UV
-Perl_do_vecget(pTHXo_ SV* sv, I32 offset, I32 size)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_vecget(sv, offset, size);
-}
-
-#undef  Perl_do_vecset
-void
-Perl_do_vecset(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_do_vecset(sv);
-}
-
-#undef  Perl_do_vop
-void
-Perl_do_vop(pTHXo_ I32 optype, SV* sv, SV* left, SV* right)
-{
-    ((CPerlObj*)pPerl)->Perl_do_vop(optype, sv, left, right);
-}
-
-#undef  Perl_dofile
-OP*
-Perl_dofile(pTHXo_ OP* term)
-{
-    return ((CPerlObj*)pPerl)->Perl_dofile(term);
-}
-
 #undef  Perl_dowantarray
 I32
 Perl_dowantarray(pTHXo)
@@ -1036,37 +659,9 @@ Perl_fbm_instr(pTHXo_ unsigned char* big, unsigned char* bigend, SV* littlesv, U
 {
     return ((CPerlObj*)pPerl)->Perl_fbm_instr(big, bigend, littlesv, flags);
 }
-
-#undef  Perl_find_script
-char*
-Perl_find_script(pTHXo_ char *scriptname, bool dosearch, char **search_ext, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_find_script(scriptname, dosearch, search_ext, flags);
-}
 #if defined(USE_THREADS)
-
-#undef  Perl_find_threadsv
-PADOFFSET
-Perl_find_threadsv(pTHXo_ const char *name)
-{
-    return ((CPerlObj*)pPerl)->Perl_find_threadsv(name);
-}
 #endif
 
-#undef  Perl_force_list
-OP*
-Perl_force_list(pTHXo_ OP* arg)
-{
-    return ((CPerlObj*)pPerl)->Perl_force_list(arg);
-}
-
-#undef  Perl_fold_constants
-OP*
-Perl_fold_constants(pTHXo_ OP* arg)
-{
-    return ((CPerlObj*)pPerl)->Perl_fold_constants(arg);
-}
-
 #undef  Perl_form
 char*
 Perl_form(pTHXo_ const char* pat, ...)
@@ -1093,21 +688,7 @@ Perl_free_tmps(pTHXo)
 {
     ((CPerlObj*)pPerl)->Perl_free_tmps();
 }
-
-#undef  Perl_gen_constant_list
-OP*
-Perl_gen_constant_list(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_gen_constant_list(o);
-}
 #if !defined(HAS_GETENV_LEN)
-
-#undef  Perl_getenv_len
-char*
-Perl_getenv_len(pTHXo_ char* key, unsigned long *len)
-{
-    return ((CPerlObj*)pPerl)->Perl_getenv_len(key, len);
-}
 #endif
 
 #undef  Perl_gp_free
@@ -1404,67 +985,25 @@ Perl_ibcmp_locale(pTHXo_ const char* a, const char* b, I32 len)
     return ((CPerlObj*)pPerl)->Perl_ibcmp_locale(a, b, len);
 }
 
-#undef  Perl_ingroup
-bool
-Perl_ingroup(pTHXo_ Gid_t testgid, Uid_t effective)
+#undef  Perl_instr
+char*
+Perl_instr(pTHXo_ const char* big, const char* little)
 {
-    return ((CPerlObj*)pPerl)->Perl_ingroup(testgid, effective);
+    return ((CPerlObj*)pPerl)->Perl_instr(big, little);
 }
 
-#undef  Perl_init_debugger
-void
-Perl_init_debugger(pTHXo)
+#undef  Perl_is_uni_alnum
+bool
+Perl_is_uni_alnum(pTHXo_ U32 c)
 {
-    ((CPerlObj*)pPerl)->Perl_init_debugger();
+    return ((CPerlObj*)pPerl)->Perl_is_uni_alnum(c);
 }
 
-#undef  Perl_init_stacks
-void
-Perl_init_stacks(pTHXo)
+#undef  Perl_is_uni_alnumc
+bool
+Perl_is_uni_alnumc(pTHXo_ U32 c)
 {
-    ((CPerlObj*)pPerl)->Perl_init_stacks();
-}
-
-#undef  Perl_intro_my
-U32
-Perl_intro_my(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_intro_my();
-}
-
-#undef  Perl_instr
-char*
-Perl_instr(pTHXo_ const char* big, const char* little)
-{
-    return ((CPerlObj*)pPerl)->Perl_instr(big, little);
-}
-
-#undef  Perl_io_close
-bool
-Perl_io_close(pTHXo_ IO* io, bool not_implicit)
-{
-    return ((CPerlObj*)pPerl)->Perl_io_close(io, not_implicit);
-}
-
-#undef  Perl_invert
-OP*
-Perl_invert(pTHXo_ OP* cmd)
-{
-    return ((CPerlObj*)pPerl)->Perl_invert(cmd);
-}
-
-#undef  Perl_is_uni_alnum
-bool
-Perl_is_uni_alnum(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_alnum(c);
-}
-
-#undef  Perl_is_uni_alnumc
-bool
-Perl_is_uni_alnumc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_alnumc(c);
+    return ((CPerlObj*)pPerl)->Perl_is_uni_alnumc(c);
 }
 
 #undef  Perl_is_uni_idfirst
@@ -1796,6058 +1335,2305 @@ Perl_is_utf8_mark(pTHXo_ U8 *p)
     return ((CPerlObj*)pPerl)->Perl_is_utf8_mark(p);
 }
 
-#undef  Perl_jmaybe
-OP*
-Perl_jmaybe(pTHXo_ OP* arg)
-{
-    return ((CPerlObj*)pPerl)->Perl_jmaybe(arg);
-}
-
-#undef  Perl_keyword
+#undef  Perl_looks_like_number
 I32
-Perl_keyword(pTHXo_ char* d, I32 len)
-{
-    return ((CPerlObj*)pPerl)->Perl_keyword(d, len);
-}
-
-#undef  Perl_leave_scope
-void
-Perl_leave_scope(pTHXo_ I32 base)
+Perl_looks_like_number(pTHXo_ SV* sv)
 {
-    ((CPerlObj*)pPerl)->Perl_leave_scope(base);
+    return ((CPerlObj*)pPerl)->Perl_looks_like_number(sv);
 }
+#if defined(USE_THREADS)
+#endif
+#if defined(USE_LOCALE_COLLATE)
+#endif
 
-#undef  Perl_lex_end
+#undef  Perl_markstack_grow
 void
-Perl_lex_end(pTHXo)
+Perl_markstack_grow(pTHXo)
 {
-    ((CPerlObj*)pPerl)->Perl_lex_end();
+    ((CPerlObj*)pPerl)->Perl_markstack_grow();
 }
+#if defined(USE_LOCALE_COLLATE)
+#endif
 
-#undef  Perl_lex_start
-void
-Perl_lex_start(pTHXo_ SV* line)
+#undef  Perl_mess
+SV*
+Perl_mess(pTHXo_ const char* pat, ...)
 {
-    ((CPerlObj*)pPerl)->Perl_lex_start(line);
-}
+    SV* retval;
+    va_list args;
+    va_start(args, pat);
+    retval = ((CPerlObj*)pPerl)->Perl_vmess(pat, &args);
+    va_end(args);
+    return retval;
 
-#undef  Perl_linklist
-OP*
-Perl_linklist(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_linklist(o);
 }
 
-#undef  Perl_list
-OP*
-Perl_list(pTHXo_ OP* o)
+#undef  Perl_vmess
+SV*
+Perl_vmess(pTHXo_ const char* pat, va_list* args)
 {
-    return ((CPerlObj*)pPerl)->Perl_list(o);
+    return ((CPerlObj*)pPerl)->Perl_vmess(pat, args);
 }
 
-#undef  Perl_listkids
-OP*
-Perl_listkids(pTHXo_ OP* o)
+#undef  Perl_mg_clear
+int
+Perl_mg_clear(pTHXo_ SV* sv)
 {
-    return ((CPerlObj*)pPerl)->Perl_listkids(o);
+    return ((CPerlObj*)pPerl)->Perl_mg_clear(sv);
 }
 
-#undef  Perl_localize
-OP*
-Perl_localize(pTHXo_ OP* arg, I32 lexical)
+#undef  Perl_mg_copy
+int
+Perl_mg_copy(pTHXo_ SV* sv, SV* nsv, const char* key, I32 klen)
 {
-    return ((CPerlObj*)pPerl)->Perl_localize(arg, lexical);
+    return ((CPerlObj*)pPerl)->Perl_mg_copy(sv, nsv, key, klen);
 }
 
-#undef  Perl_looks_like_number
-I32
-Perl_looks_like_number(pTHXo_ SV* sv)
+#undef  Perl_mg_find
+MAGIC*
+Perl_mg_find(pTHXo_ SV* sv, int type)
 {
-    return ((CPerlObj*)pPerl)->Perl_looks_like_number(sv);
+    return ((CPerlObj*)pPerl)->Perl_mg_find(sv, type);
 }
 
-#undef  Perl_magic_clearenv
+#undef  Perl_mg_free
 int
-Perl_magic_clearenv(pTHXo_ SV* sv, MAGIC* mg)
+Perl_mg_free(pTHXo_ SV* sv)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_clearenv(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_mg_free(sv);
 }
 
-#undef  Perl_magic_clear_all_env
+#undef  Perl_mg_get
 int
-Perl_magic_clear_all_env(pTHXo_ SV* sv, MAGIC* mg)
+Perl_mg_get(pTHXo_ SV* sv)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_clear_all_env(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_mg_get(sv);
 }
 
-#undef  Perl_magic_clearpack
-int
-Perl_magic_clearpack(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_mg_length
+U32
+Perl_mg_length(pTHXo_ SV* sv)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_clearpack(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_mg_length(sv);
 }
 
-#undef  Perl_magic_clearsig
-int
-Perl_magic_clearsig(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_mg_magical
+void
+Perl_mg_magical(pTHXo_ SV* sv)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_clearsig(sv, mg);
+    ((CPerlObj*)pPerl)->Perl_mg_magical(sv);
 }
 
-#undef  Perl_magic_existspack
+#undef  Perl_mg_set
 int
-Perl_magic_existspack(pTHXo_ SV* sv, MAGIC* mg)
+Perl_mg_set(pTHXo_ SV* sv)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_existspack(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_mg_set(sv);
 }
 
-#undef  Perl_magic_freeregexp
-int
-Perl_magic_freeregexp(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_mg_size
+I32
+Perl_mg_size(pTHXo_ SV* sv)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_freeregexp(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_mg_size(sv);
 }
 
-#undef  Perl_magic_get
-int
-Perl_magic_get(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_atof
+NV
+Perl_my_atof(pTHXo_ const char *s)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_get(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_my_atof(s);
 }
+#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
 
-#undef  Perl_magic_getarylen
-int
-Perl_magic_getarylen(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_bcopy
+char*
+Perl_my_bcopy(const char* from, char* to, I32 len)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getarylen(sv, mg);
+    dTHXo;
+    return ((CPerlObj*)pPerl)->Perl_my_bcopy(from, to, len);
 }
+#endif
+#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
 
-#undef  Perl_magic_getdefelem
-int
-Perl_magic_getdefelem(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_bzero
+char*
+Perl_my_bzero(char* loc, I32 len)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getdefelem(sv, mg);
+    dTHXo;
+    return ((CPerlObj*)pPerl)->Perl_my_bzero(loc, len);
 }
+#endif
 
-#undef  Perl_magic_getglob
-int
-Perl_magic_getglob(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_exit
+void
+Perl_my_exit(pTHXo_ U32 status)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getglob(sv, mg);
+    ((CPerlObj*)pPerl)->Perl_my_exit(status);
 }
 
-#undef  Perl_magic_getnkeys
-int
-Perl_magic_getnkeys(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_failure_exit
+void
+Perl_my_failure_exit(pTHXo)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getnkeys(sv, mg);
+    ((CPerlObj*)pPerl)->Perl_my_failure_exit();
 }
 
-#undef  Perl_magic_getpack
-int
-Perl_magic_getpack(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_fflush_all
+I32
+Perl_my_fflush_all(pTHXo)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getpack(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_my_fflush_all();
 }
 
-#undef  Perl_magic_getpos
-int
-Perl_magic_getpos(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_lstat
+I32
+Perl_my_lstat(pTHXo)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getpos(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_my_lstat();
 }
+#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
 
-#undef  Perl_magic_getsig
-int
-Perl_magic_getsig(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_memcmp
+I32
+Perl_my_memcmp(const char* s1, const char* s2, I32 len)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getsig(sv, mg);
+    dTHXo;
+    return ((CPerlObj*)pPerl)->Perl_my_memcmp(s1, s2, len);
 }
+#endif
+#if !defined(HAS_MEMSET)
 
-#undef  Perl_magic_getsubstr
-int
-Perl_magic_getsubstr(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_memset
+void*
+Perl_my_memset(char* loc, I32 ch, I32 len)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getsubstr(sv, mg);
+    dTHXo;
+    return ((CPerlObj*)pPerl)->Perl_my_memset(loc, ch, len);
 }
+#endif
+#if !defined(PERL_OBJECT)
 
-#undef  Perl_magic_gettaint
-int
-Perl_magic_gettaint(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_pclose
+I32
+Perl_my_pclose(pTHXo_ PerlIO* ptr)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_gettaint(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_my_pclose(ptr);
 }
 
-#undef  Perl_magic_getuvar
-int
-Perl_magic_getuvar(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_popen
+PerlIO*
+Perl_my_popen(pTHXo_ char* cmd, char* mode)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getuvar(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_my_popen(cmd, mode);
 }
+#endif
 
-#undef  Perl_magic_getvec
-int
-Perl_magic_getvec(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_setenv
+void
+Perl_my_setenv(pTHXo_ char* nam, char* val)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_getvec(sv, mg);
+    ((CPerlObj*)pPerl)->Perl_my_setenv(nam, val);
 }
 
-#undef  Perl_magic_len
-U32
-Perl_magic_len(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_stat
+I32
+Perl_my_stat(pTHXo)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_len(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_my_stat();
 }
-#if defined(USE_THREADS)
+#if defined(MYSWAP)
 
-#undef  Perl_magic_mutexfree
-int
-Perl_magic_mutexfree(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_swap
+short
+Perl_my_swap(pTHXo_ short s)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_mutexfree(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_my_swap(s);
 }
-#endif
 
-#undef  Perl_magic_nextpack
-int
-Perl_magic_nextpack(pTHXo_ SV* sv, MAGIC* mg, SV* key)
+#undef  Perl_my_htonl
+long
+Perl_my_htonl(pTHXo_ long l)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_nextpack(sv, mg, key);
+    return ((CPerlObj*)pPerl)->Perl_my_htonl(l);
 }
 
-#undef  Perl_magic_regdata_cnt
-U32
-Perl_magic_regdata_cnt(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_my_ntohl
+long
+Perl_my_ntohl(pTHXo_ long l)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_regdata_cnt(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_my_ntohl(l);
 }
+#endif
 
-#undef  Perl_magic_regdatum_get
-int
-Perl_magic_regdatum_get(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_newANONLIST
+OP*
+Perl_newANONLIST(pTHXo_ OP* o)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_regdatum_get(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_newANONLIST(o);
 }
 
-#undef  Perl_magic_set
-int
-Perl_magic_set(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_newANONHASH
+OP*
+Perl_newANONHASH(pTHXo_ OP* o)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_set(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_newANONHASH(o);
 }
 
-#undef  Perl_magic_setamagic
-int
-Perl_magic_setamagic(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_newANONSUB
+OP*
+Perl_newANONSUB(pTHXo_ I32 floor, OP* proto, OP* block)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_setamagic(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_newANONSUB(floor, proto, block);
 }
 
-#undef  Perl_magic_setarylen
-int
-Perl_magic_setarylen(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_newASSIGNOP
+OP*
+Perl_newASSIGNOP(pTHXo_ I32 flags, OP* left, I32 optype, OP* right)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_setarylen(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_newASSIGNOP(flags, left, optype, right);
 }
 
-#undef  Perl_magic_setbm
-int
-Perl_magic_setbm(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_newCONDOP
+OP*
+Perl_newCONDOP(pTHXo_ I32 flags, OP* expr, OP* trueop, OP* falseop)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_setbm(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_newCONDOP(flags, expr, trueop, falseop);
 }
 
-#undef  Perl_magic_setdbline
-int
-Perl_magic_setdbline(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_newCONSTSUB
+void
+Perl_newCONSTSUB(pTHXo_ HV* stash, char* name, SV* sv)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_setdbline(sv, mg);
+    ((CPerlObj*)pPerl)->Perl_newCONSTSUB(stash, name, sv);
 }
-#if defined(USE_LOCALE_COLLATE)
 
-#undef  Perl_magic_setcollxfrm
-int
-Perl_magic_setcollxfrm(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_newFORM
+void
+Perl_newFORM(pTHXo_ I32 floor, OP* o, OP* block)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_setcollxfrm(sv, mg);
+    ((CPerlObj*)pPerl)->Perl_newFORM(floor, o, block);
 }
-#endif
 
-#undef  Perl_magic_setdefelem
-int
-Perl_magic_setdefelem(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_newFOROP
+OP*
+Perl_newFOROP(pTHXo_ I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_setdefelem(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_newFOROP(flags, label, forline, sclr, expr, block, cont);
 }
 
-#undef  Perl_magic_setenv
-int
-Perl_magic_setenv(pTHXo_ SV* sv, MAGIC* mg)
+#undef  Perl_newLOGOP
+OP*
+Perl_newLOGOP(pTHXo_ I32 optype, I32 flags, OP* left, OP* right)
 {
-    return ((CPerlObj*)pPerl)->Perl_magic_setenv(sv, mg);
+    return ((CPerlObj*)pPerl)->Perl_newLOGOP(optype, flags, left, right);
 }
 
-#undef  Perl_magic_setfm
-int
-Perl_magic_setfm(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setfm(sv, mg);
-}
-
-#undef  Perl_magic_setisa
-int
-Perl_magic_setisa(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setisa(sv, mg);
-}
-
-#undef  Perl_magic_setglob
-int
-Perl_magic_setglob(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setglob(sv, mg);
-}
-
-#undef  Perl_magic_setmglob
-int
-Perl_magic_setmglob(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setmglob(sv, mg);
-}
-
-#undef  Perl_magic_setnkeys
-int
-Perl_magic_setnkeys(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setnkeys(sv, mg);
-}
-
-#undef  Perl_magic_setpack
-int
-Perl_magic_setpack(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setpack(sv, mg);
-}
-
-#undef  Perl_magic_setpos
-int
-Perl_magic_setpos(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setpos(sv, mg);
-}
-
-#undef  Perl_magic_setsig
-int
-Perl_magic_setsig(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setsig(sv, mg);
-}
-
-#undef  Perl_magic_setsubstr
-int
-Perl_magic_setsubstr(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setsubstr(sv, mg);
-}
-
-#undef  Perl_magic_settaint
-int
-Perl_magic_settaint(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_settaint(sv, mg);
-}
-
-#undef  Perl_magic_setuvar
-int
-Perl_magic_setuvar(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setuvar(sv, mg);
-}
-
-#undef  Perl_magic_setvec
-int
-Perl_magic_setvec(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_setvec(sv, mg);
-}
-
-#undef  Perl_magic_set_all_env
-int
-Perl_magic_set_all_env(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_set_all_env(sv, mg);
-}
-
-#undef  Perl_magic_sizepack
-U32
-Perl_magic_sizepack(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_sizepack(sv, mg);
-}
-
-#undef  Perl_magic_wipepack
-int
-Perl_magic_wipepack(pTHXo_ SV* sv, MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_wipepack(sv, mg);
-}
-
-#undef  Perl_magicname
-void
-Perl_magicname(pTHXo_ char* sym, char* name, I32 namlen)
-{
-    ((CPerlObj*)pPerl)->Perl_magicname(sym, name, namlen);
-}
-
-#undef  Perl_markstack_grow
-void
-Perl_markstack_grow(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_markstack_grow();
-}
-#if defined(USE_LOCALE_COLLATE)
-
-#undef  Perl_mem_collxfrm
-char*
-Perl_mem_collxfrm(pTHXo_ const char* s, STRLEN len, STRLEN* xlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_mem_collxfrm(s, len, xlen);
-}
-#endif
-
-#undef  Perl_mess
-SV*
-Perl_mess(pTHXo_ const char* pat, ...)
-{
-    SV* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vmess(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_vmess
-SV*
-Perl_vmess(pTHXo_ const char* pat, va_list* args)
-{
-    return ((CPerlObj*)pPerl)->Perl_vmess(pat, args);
-}
-
-#undef  Perl_qerror
-void
-Perl_qerror(pTHXo_ SV* err)
-{
-    ((CPerlObj*)pPerl)->Perl_qerror(err);
-}
-
-#undef  Perl_mg_clear
-int
-Perl_mg_clear(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_clear(sv);
-}
-
-#undef  Perl_mg_copy
-int
-Perl_mg_copy(pTHXo_ SV* sv, SV* nsv, const char* key, I32 klen)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_copy(sv, nsv, key, klen);
-}
-
-#undef  Perl_mg_find
-MAGIC*
-Perl_mg_find(pTHXo_ SV* sv, int type)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_find(sv, type);
-}
-
-#undef  Perl_mg_free
-int
-Perl_mg_free(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_free(sv);
-}
-
-#undef  Perl_mg_get
-int
-Perl_mg_get(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_get(sv);
-}
-
-#undef  Perl_mg_length
-U32
-Perl_mg_length(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_length(sv);
-}
-
-#undef  Perl_mg_magical
-void
-Perl_mg_magical(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_mg_magical(sv);
-}
-
-#undef  Perl_mg_set
-int
-Perl_mg_set(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_set(sv);
-}
-
-#undef  Perl_mg_size
-I32
-Perl_mg_size(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_size(sv);
-}
-
-#undef  Perl_mod
-OP*
-Perl_mod(pTHXo_ OP* o, I32 type)
-{
-    return ((CPerlObj*)pPerl)->Perl_mod(o, type);
-}
-
-#undef  Perl_moreswitches
-char*
-Perl_moreswitches(pTHXo_ char* s)
-{
-    return ((CPerlObj*)pPerl)->Perl_moreswitches(s);
-}
-
-#undef  Perl_my
-OP*
-Perl_my(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_my(o);
-}
-
-#undef  Perl_my_atof
-NV
-Perl_my_atof(pTHXo_ const char *s)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_atof(s);
-}
-#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
-
-#undef  Perl_my_bcopy
-char*
-Perl_my_bcopy(const char* from, char* to, I32 len)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_my_bcopy(from, to, len);
-}
-#endif
-#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-
-#undef  Perl_my_bzero
-char*
-Perl_my_bzero(char* loc, I32 len)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_my_bzero(loc, len);
-}
-#endif
-
-#undef  Perl_my_exit
-void
-Perl_my_exit(pTHXo_ U32 status)
-{
-    ((CPerlObj*)pPerl)->Perl_my_exit(status);
-}
-
-#undef  Perl_my_failure_exit
-void
-Perl_my_failure_exit(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_my_failure_exit();
-}
-
-#undef  Perl_my_fflush_all
-I32
-Perl_my_fflush_all(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_fflush_all();
-}
-
-#undef  Perl_my_lstat
-I32
-Perl_my_lstat(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_lstat();
-}
-#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
-
-#undef  Perl_my_memcmp
-I32
-Perl_my_memcmp(const char* s1, const char* s2, I32 len)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_my_memcmp(s1, s2, len);
-}
-#endif
-#if !defined(HAS_MEMSET)
-
-#undef  Perl_my_memset
-void*
-Perl_my_memset(char* loc, I32 ch, I32 len)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_my_memset(loc, ch, len);
-}
-#endif
-#if !defined(PERL_OBJECT)
-
-#undef  Perl_my_pclose
-I32
-Perl_my_pclose(pTHXo_ PerlIO* ptr)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_pclose(ptr);
-}
-
-#undef  Perl_my_popen
-PerlIO*
-Perl_my_popen(pTHXo_ char* cmd, char* mode)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_popen(cmd, mode);
-}
-#endif
-
-#undef  Perl_my_setenv
-void
-Perl_my_setenv(pTHXo_ char* nam, char* val)
-{
-    ((CPerlObj*)pPerl)->Perl_my_setenv(nam, val);
-}
-
-#undef  Perl_my_stat
-I32
-Perl_my_stat(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_stat();
-}
-#if defined(MYSWAP)
-
-#undef  Perl_my_swap
-short
-Perl_my_swap(pTHXo_ short s)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_swap(s);
-}
-
-#undef  Perl_my_htonl
-long
-Perl_my_htonl(pTHXo_ long l)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_htonl(l);
-}
-
-#undef  Perl_my_ntohl
-long
-Perl_my_ntohl(pTHXo_ long l)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_ntohl(l);
-}
-#endif
-
-#undef  Perl_my_unexec
-void
-Perl_my_unexec(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_my_unexec();
-}
-
-#undef  Perl_newANONLIST
-OP*
-Perl_newANONLIST(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newANONLIST(o);
-}
-
-#undef  Perl_newANONHASH
-OP*
-Perl_newANONHASH(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newANONHASH(o);
-}
-
-#undef  Perl_newANONSUB
-OP*
-Perl_newANONSUB(pTHXo_ I32 floor, OP* proto, OP* block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newANONSUB(floor, proto, block);
-}
-
-#undef  Perl_newASSIGNOP
-OP*
-Perl_newASSIGNOP(pTHXo_ I32 flags, OP* left, I32 optype, OP* right)
-{
-    return ((CPerlObj*)pPerl)->Perl_newASSIGNOP(flags, left, optype, right);
-}
-
-#undef  Perl_newCONDOP
-OP*
-Perl_newCONDOP(pTHXo_ I32 flags, OP* expr, OP* trueop, OP* falseop)
-{
-    return ((CPerlObj*)pPerl)->Perl_newCONDOP(flags, expr, trueop, falseop);
-}
-
-#undef  Perl_newCONSTSUB
-void
-Perl_newCONSTSUB(pTHXo_ HV* stash, char* name, SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_newCONSTSUB(stash, name, sv);
-}
-
-#undef  Perl_newFORM
-void
-Perl_newFORM(pTHXo_ I32 floor, OP* o, OP* block)
-{
-    ((CPerlObj*)pPerl)->Perl_newFORM(floor, o, block);
-}
-
-#undef  Perl_newFOROP
-OP*
-Perl_newFOROP(pTHXo_ I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont)
-{
-    return ((CPerlObj*)pPerl)->Perl_newFOROP(flags, label, forline, sclr, expr, block, cont);
-}
-
-#undef  Perl_newLOGOP
-OP*
-Perl_newLOGOP(pTHXo_ I32 optype, I32 flags, OP* left, OP* right)
-{
-    return ((CPerlObj*)pPerl)->Perl_newLOGOP(optype, flags, left, right);
-}
-
-#undef  Perl_newLOOPEX
-OP*
-Perl_newLOOPEX(pTHXo_ I32 type, OP* label)
-{
-    return ((CPerlObj*)pPerl)->Perl_newLOOPEX(type, label);
-}
-
-#undef  Perl_newLOOPOP
-OP*
-Perl_newLOOPOP(pTHXo_ I32 flags, I32 debuggable, OP* expr, OP* block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newLOOPOP(flags, debuggable, expr, block);
-}
-
-#undef  Perl_newNULLLIST
-OP*
-Perl_newNULLLIST(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_newNULLLIST();
-}
-
-#undef  Perl_newOP
-OP*
-Perl_newOP(pTHXo_ I32 optype, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_newOP(optype, flags);
-}
-
-#undef  Perl_newPROG
-void
-Perl_newPROG(pTHXo_ OP* o)
-{
-    ((CPerlObj*)pPerl)->Perl_newPROG(o);
-}
-
-#undef  Perl_newRANGE
-OP*
-Perl_newRANGE(pTHXo_ I32 flags, OP* left, OP* right)
-{
-    return ((CPerlObj*)pPerl)->Perl_newRANGE(flags, left, right);
-}
-
-#undef  Perl_newSLICEOP
-OP*
-Perl_newSLICEOP(pTHXo_ I32 flags, OP* subscript, OP* listop)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSLICEOP(flags, subscript, listop);
-}
-
-#undef  Perl_newSTATEOP
-OP*
-Perl_newSTATEOP(pTHXo_ I32 flags, char* label, OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSTATEOP(flags, label, o);
-}
-
-#undef  Perl_newSUB
-CV*
-Perl_newSUB(pTHXo_ I32 floor, OP* o, OP* proto, OP* block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSUB(floor, o, proto, block);
-}
-
-#undef  Perl_newXS
-CV*
-Perl_newXS(pTHXo_ char* name, XSUBADDR_t f, char* filename)
-{
-    return ((CPerlObj*)pPerl)->Perl_newXS(name, f, filename);
-}
-
-#undef  Perl_newAV
-AV*
-Perl_newAV(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_newAV();
-}
-
-#undef  Perl_newAVREF
-OP*
-Perl_newAVREF(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newAVREF(o);
-}
-
-#undef  Perl_newBINOP
-OP*
-Perl_newBINOP(pTHXo_ I32 type, I32 flags, OP* first, OP* last)
-{
-    return ((CPerlObj*)pPerl)->Perl_newBINOP(type, flags, first, last);
-}
-
-#undef  Perl_newCVREF
-OP*
-Perl_newCVREF(pTHXo_ I32 flags, OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newCVREF(flags, o);
-}
-
-#undef  Perl_newGVOP
-OP*
-Perl_newGVOP(pTHXo_ I32 type, I32 flags, GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newGVOP(type, flags, gv);
-}
-
-#undef  Perl_newGVgen
-GV*
-Perl_newGVgen(pTHXo_ char* pack)
-{
-    return ((CPerlObj*)pPerl)->Perl_newGVgen(pack);
-}
-
-#undef  Perl_newGVREF
-OP*
-Perl_newGVREF(pTHXo_ I32 type, OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newGVREF(type, o);
-}
-
-#undef  Perl_newHVREF
-OP*
-Perl_newHVREF(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newHVREF(o);
-}
-
-#undef  Perl_newHV
-HV*
-Perl_newHV(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_newHV();
-}
-
-#undef  Perl_newHVhv
-HV*
-Perl_newHVhv(pTHXo_ HV* hv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newHVhv(hv);
-}
-
-#undef  Perl_newIO
-IO*
-Perl_newIO(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_newIO();
-}
-
-#undef  Perl_newLISTOP
-OP*
-Perl_newLISTOP(pTHXo_ I32 type, I32 flags, OP* first, OP* last)
-{
-    return ((CPerlObj*)pPerl)->Perl_newLISTOP(type, flags, first, last);
-}
-
-#undef  Perl_newPADOP
-OP*
-Perl_newPADOP(pTHXo_ I32 type, I32 flags, SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newPADOP(type, flags, sv);
-}
-
-#undef  Perl_newPMOP
-OP*
-Perl_newPMOP(pTHXo_ I32 type, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_newPMOP(type, flags);
-}
-
-#undef  Perl_newPVOP
-OP*
-Perl_newPVOP(pTHXo_ I32 type, I32 flags, char* pv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newPVOP(type, flags, pv);
-}
-
-#undef  Perl_newRV
-SV*
-Perl_newRV(pTHXo_ SV* pref)
-{
-    return ((CPerlObj*)pPerl)->Perl_newRV(pref);
-}
-
-#undef  Perl_newRV_noinc
-SV*
-Perl_newRV_noinc(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newRV_noinc(sv);
-}
-
-#undef  Perl_newSV
-SV*
-Perl_newSV(pTHXo_ STRLEN len)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSV(len);
-}
-
-#undef  Perl_newSVREF
-OP*
-Perl_newSVREF(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVREF(o);
-}
-
-#undef  Perl_newSVOP
-OP*
-Perl_newSVOP(pTHXo_ I32 type, I32 flags, SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVOP(type, flags, sv);
-}
-
-#undef  Perl_newSViv
-SV*
-Perl_newSViv(pTHXo_ IV i)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSViv(i);
-}
-
-#undef  Perl_newSVnv
-SV*
-Perl_newSVnv(pTHXo_ NV n)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVnv(n);
-}
-
-#undef  Perl_newSVpv
-SV*
-Perl_newSVpv(pTHXo_ const char* s, STRLEN len)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVpv(s, len);
-}
-
-#undef  Perl_newSVpvn
-SV*
-Perl_newSVpvn(pTHXo_ const char* s, STRLEN len)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVpvn(s, len);
-}
-
-#undef  Perl_newSVpvf
-SV*
-Perl_newSVpvf(pTHXo_ const char* pat, ...)
-{
-    SV* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vnewSVpvf(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_vnewSVpvf
-SV*
-Perl_vnewSVpvf(pTHXo_ const char* pat, va_list* args)
-{
-    return ((CPerlObj*)pPerl)->Perl_vnewSVpvf(pat, args);
-}
-
-#undef  Perl_newSVrv
-SV*
-Perl_newSVrv(pTHXo_ SV* rv, const char* classname)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVrv(rv, classname);
-}
-
-#undef  Perl_newSVsv
-SV*
-Perl_newSVsv(pTHXo_ SV* old)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVsv(old);
-}
-
-#undef  Perl_newUNOP
-OP*
-Perl_newUNOP(pTHXo_ I32 type, I32 flags, OP* first)
-{
-    return ((CPerlObj*)pPerl)->Perl_newUNOP(type, flags, first);
-}
-
-#undef  Perl_newWHILEOP
-OP*
-Perl_newWHILEOP(pTHXo_ I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont)
-{
-    return ((CPerlObj*)pPerl)->Perl_newWHILEOP(flags, debuggable, loop, whileline, expr, block, cont);
-}
-
-#undef  Perl_new_stackinfo
-PERL_SI*
-Perl_new_stackinfo(pTHXo_ I32 stitems, I32 cxitems)
-{
-    return ((CPerlObj*)pPerl)->Perl_new_stackinfo(stitems, cxitems);
-}
-
-#undef  Perl_nextargv
-PerlIO*
-Perl_nextargv(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_nextargv(gv);
-}
-
-#undef  Perl_ninstr
-char*
-Perl_ninstr(pTHXo_ const char* big, const char* bigend, const char* little, const char* lend)
-{
-    return ((CPerlObj*)pPerl)->Perl_ninstr(big, bigend, little, lend);
-}
-
-#undef  Perl_oopsCV
-OP*
-Perl_oopsCV(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_oopsCV(o);
-}
-
-#undef  Perl_op_free
-void
-Perl_op_free(pTHXo_ OP* arg)
-{
-    ((CPerlObj*)pPerl)->Perl_op_free(arg);
-}
-
-#undef  Perl_package
-void
-Perl_package(pTHXo_ OP* o)
-{
-    ((CPerlObj*)pPerl)->Perl_package(o);
-}
-
-#undef  Perl_pad_alloc
-PADOFFSET
-Perl_pad_alloc(pTHXo_ I32 optype, U32 tmptype)
-{
-    return ((CPerlObj*)pPerl)->Perl_pad_alloc(optype, tmptype);
-}
-
-#undef  Perl_pad_allocmy
-PADOFFSET
-Perl_pad_allocmy(pTHXo_ char* name)
-{
-    return ((CPerlObj*)pPerl)->Perl_pad_allocmy(name);
-}
-
-#undef  Perl_pad_findmy
-PADOFFSET
-Perl_pad_findmy(pTHXo_ char* name)
-{
-    return ((CPerlObj*)pPerl)->Perl_pad_findmy(name);
-}
-
-#undef  Perl_oopsAV
-OP*
-Perl_oopsAV(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_oopsAV(o);
-}
-
-#undef  Perl_oopsHV
-OP*
-Perl_oopsHV(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_oopsHV(o);
-}
-
-#undef  Perl_pad_leavemy
-void
-Perl_pad_leavemy(pTHXo_ I32 fill)
-{
-    ((CPerlObj*)pPerl)->Perl_pad_leavemy(fill);
-}
-
-#undef  Perl_pad_sv
-SV*
-Perl_pad_sv(pTHXo_ PADOFFSET po)
-{
-    return ((CPerlObj*)pPerl)->Perl_pad_sv(po);
-}
-
-#undef  Perl_pad_free
-void
-Perl_pad_free(pTHXo_ PADOFFSET po)
-{
-    ((CPerlObj*)pPerl)->Perl_pad_free(po);
-}
-
-#undef  Perl_pad_reset
-void
-Perl_pad_reset(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_pad_reset();
-}
-
-#undef  Perl_pad_swipe
-void
-Perl_pad_swipe(pTHXo_ PADOFFSET po)
-{
-    ((CPerlObj*)pPerl)->Perl_pad_swipe(po);
-}
-
-#undef  Perl_peep
-void
-Perl_peep(pTHXo_ OP* o)
-{
-    ((CPerlObj*)pPerl)->Perl_peep(o);
-}
-#if defined(PERL_OBJECT)
-
-#undef  Perl_construct
-void
-Perl_construct(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_construct();
-}
-
-#undef  Perl_destruct
-void
-Perl_destruct(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_destruct();
-}
-
-#undef  Perl_free
-void
-Perl_free(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_free();
-}
-
-#undef  Perl_run
-int
-Perl_run(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_run();
-}
-
-#undef  Perl_parse
-int
-Perl_parse(pTHXo_ XSINIT_t xsinit, int argc, char** argv, char** env)
-{
-    return ((CPerlObj*)pPerl)->Perl_parse(xsinit, argc, argv, env);
-}
-#endif
-#if defined(USE_THREADS)
-
-#undef  Perl_new_struct_thread
-struct perl_thread*
-Perl_new_struct_thread(pTHXo_ struct perl_thread *t)
-{
-    return ((CPerlObj*)pPerl)->Perl_new_struct_thread(t);
-}
-#endif
-
-#undef  Perl_call_atexit
-void
-Perl_call_atexit(pTHXo_ ATEXIT_t fn, void *ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_call_atexit(fn, ptr);
-}
-
-#undef  Perl_call_argv
-I32
-Perl_call_argv(pTHXo_ const char* sub_name, I32 flags, char** argv)
-{
-    return ((CPerlObj*)pPerl)->Perl_call_argv(sub_name, flags, argv);
-}
-
-#undef  Perl_call_method
-I32
-Perl_call_method(pTHXo_ const char* methname, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_call_method(methname, flags);
-}
-
-#undef  Perl_call_pv
-I32
-Perl_call_pv(pTHXo_ const char* sub_name, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_call_pv(sub_name, flags);
-}
-
-#undef  Perl_call_sv
-I32
-Perl_call_sv(pTHXo_ SV* sv, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_call_sv(sv, flags);
-}
-
-#undef  Perl_eval_pv
-SV*
-Perl_eval_pv(pTHXo_ const char* p, I32 croak_on_error)
-{
-    return ((CPerlObj*)pPerl)->Perl_eval_pv(p, croak_on_error);
-}
-
-#undef  Perl_eval_sv
-I32
-Perl_eval_sv(pTHXo_ SV* sv, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_eval_sv(sv, flags);
-}
-
-#undef  Perl_get_sv
-SV*
-Perl_get_sv(pTHXo_ const char* name, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_sv(name, create);
-}
-
-#undef  Perl_get_av
-AV*
-Perl_get_av(pTHXo_ const char* name, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_av(name, create);
-}
-
-#undef  Perl_get_hv
-HV*
-Perl_get_hv(pTHXo_ const char* name, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_hv(name, create);
-}
-
-#undef  Perl_get_cv
-CV*
-Perl_get_cv(pTHXo_ const char* name, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_cv(name, create);
-}
-
-#undef  Perl_init_i18nl10n
-int
-Perl_init_i18nl10n(pTHXo_ int printwarn)
-{
-    return ((CPerlObj*)pPerl)->Perl_init_i18nl10n(printwarn);
-}
-
-#undef  Perl_init_i18nl14n
-int
-Perl_init_i18nl14n(pTHXo_ int printwarn)
-{
-    return ((CPerlObj*)pPerl)->Perl_init_i18nl14n(printwarn);
-}
-
-#undef  Perl_new_collate
-void
-Perl_new_collate(pTHXo_ const char* newcoll)
-{
-    ((CPerlObj*)pPerl)->Perl_new_collate(newcoll);
-}
-
-#undef  Perl_new_ctype
-void
-Perl_new_ctype(pTHXo_ const char* newctype)
-{
-    ((CPerlObj*)pPerl)->Perl_new_ctype(newctype);
-}
-
-#undef  Perl_new_numeric
-void
-Perl_new_numeric(pTHXo_ const char* newcoll)
-{
-    ((CPerlObj*)pPerl)->Perl_new_numeric(newcoll);
-}
-
-#undef  Perl_set_numeric_local
-void
-Perl_set_numeric_local(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_set_numeric_local();
-}
-
-#undef  Perl_set_numeric_radix
-void
-Perl_set_numeric_radix(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_set_numeric_radix();
-}
-
-#undef  Perl_set_numeric_standard
-void
-Perl_set_numeric_standard(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_set_numeric_standard();
-}
-
-#undef  Perl_require_pv
-void
-Perl_require_pv(pTHXo_ const char* pv)
-{
-    ((CPerlObj*)pPerl)->Perl_require_pv(pv);
-}
-
-#undef  Perl_pidgone
-void
-Perl_pidgone(pTHXo_ Pid_t pid, int status)
-{
-    ((CPerlObj*)pPerl)->Perl_pidgone(pid, status);
-}
-
-#undef  Perl_pmflag
-void
-Perl_pmflag(pTHXo_ U16* pmfl, int ch)
-{
-    ((CPerlObj*)pPerl)->Perl_pmflag(pmfl, ch);
-}
-
-#undef  Perl_pmruntime
-OP*
-Perl_pmruntime(pTHXo_ OP* pm, OP* expr, OP* repl)
-{
-    return ((CPerlObj*)pPerl)->Perl_pmruntime(pm, expr, repl);
-}
-
-#undef  Perl_pmtrans
-OP*
-Perl_pmtrans(pTHXo_ OP* o, OP* expr, OP* repl)
-{
-    return ((CPerlObj*)pPerl)->Perl_pmtrans(o, expr, repl);
-}
-
-#undef  Perl_pop_return
-OP*
-Perl_pop_return(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pop_return();
-}
-
-#undef  Perl_pop_scope
-void
-Perl_pop_scope(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_pop_scope();
-}
-
-#undef  Perl_prepend_elem
-OP*
-Perl_prepend_elem(pTHXo_ I32 optype, OP* head, OP* tail)
-{
-    return ((CPerlObj*)pPerl)->Perl_prepend_elem(optype, head, tail);
-}
-
-#undef  Perl_push_return
-void
-Perl_push_return(pTHXo_ OP* o)
-{
-    ((CPerlObj*)pPerl)->Perl_push_return(o);
-}
-
-#undef  Perl_push_scope
-void
-Perl_push_scope(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_push_scope();
-}
-
-#undef  Perl_ref
-OP*
-Perl_ref(pTHXo_ OP* o, I32 type)
-{
-    return ((CPerlObj*)pPerl)->Perl_ref(o, type);
-}
-
-#undef  Perl_refkids
-OP*
-Perl_refkids(pTHXo_ OP* o, I32 type)
-{
-    return ((CPerlObj*)pPerl)->Perl_refkids(o, type);
-}
-
-#undef  Perl_regdump
-void
-Perl_regdump(pTHXo_ regexp* r)
-{
-    ((CPerlObj*)pPerl)->Perl_regdump(r);
-}
-
-#undef  Perl_pregexec
-I32
-Perl_pregexec(pTHXo_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave)
-{
-    return ((CPerlObj*)pPerl)->Perl_pregexec(prog, stringarg, strend, strbeg, minend, screamer, nosave);
-}
-
-#undef  Perl_pregfree
-void
-Perl_pregfree(pTHXo_ struct regexp* r)
-{
-    ((CPerlObj*)pPerl)->Perl_pregfree(r);
-}
-
-#undef  Perl_pregcomp
-regexp*
-Perl_pregcomp(pTHXo_ char* exp, char* xend, PMOP* pm)
-{
-    return ((CPerlObj*)pPerl)->Perl_pregcomp(exp, xend, pm);
-}
-
-#undef  Perl_re_intuit_start
-char*
-Perl_re_intuit_start(pTHXo_ regexp* prog, SV* sv, char* strpos, char* strend, U32 flags, struct re_scream_pos_data_s *data)
-{
-    return ((CPerlObj*)pPerl)->Perl_re_intuit_start(prog, sv, strpos, strend, flags, data);
-}
-
-#undef  Perl_re_intuit_string
-SV*
-Perl_re_intuit_string(pTHXo_ regexp* prog)
-{
-    return ((CPerlObj*)pPerl)->Perl_re_intuit_string(prog);
-}
-
-#undef  Perl_regexec_flags
-I32
-Perl_regexec_flags(pTHXo_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_regexec_flags(prog, stringarg, strend, strbeg, minend, screamer, data, flags);
-}
-
-#undef  Perl_regnext
-regnode*
-Perl_regnext(pTHXo_ regnode* p)
-{
-    return ((CPerlObj*)pPerl)->Perl_regnext(p);
-}
-
-#undef  Perl_regprop
-void
-Perl_regprop(pTHXo_ SV* sv, regnode* o)
-{
-    ((CPerlObj*)pPerl)->Perl_regprop(sv, o);
-}
-
-#undef  Perl_repeatcpy
-void
-Perl_repeatcpy(pTHXo_ char* to, const char* from, I32 len, I32 count)
-{
-    ((CPerlObj*)pPerl)->Perl_repeatcpy(to, from, len, count);
-}
-
-#undef  Perl_rninstr
-char*
-Perl_rninstr(pTHXo_ const char* big, const char* bigend, const char* little, const char* lend)
-{
-    return ((CPerlObj*)pPerl)->Perl_rninstr(big, bigend, little, lend);
-}
-
-#undef  Perl_rsignal
-Sighandler_t
-Perl_rsignal(pTHXo_ int i, Sighandler_t t)
-{
-    return ((CPerlObj*)pPerl)->Perl_rsignal(i, t);
-}
-
-#undef  Perl_rsignal_restore
-int
-Perl_rsignal_restore(pTHXo_ int i, Sigsave_t* t)
-{
-    return ((CPerlObj*)pPerl)->Perl_rsignal_restore(i, t);
-}
-
-#undef  Perl_rsignal_save
-int
-Perl_rsignal_save(pTHXo_ int i, Sighandler_t t1, Sigsave_t* t2)
-{
-    return ((CPerlObj*)pPerl)->Perl_rsignal_save(i, t1, t2);
-}
-
-#undef  Perl_rsignal_state
-Sighandler_t
-Perl_rsignal_state(pTHXo_ int i)
-{
-    return ((CPerlObj*)pPerl)->Perl_rsignal_state(i);
-}
-
-#undef  Perl_rxres_free
-void
-Perl_rxres_free(pTHXo_ void** rsp)
-{
-    ((CPerlObj*)pPerl)->Perl_rxres_free(rsp);
-}
-
-#undef  Perl_rxres_restore
-void
-Perl_rxres_restore(pTHXo_ void** rsp, REGEXP* prx)
-{
-    ((CPerlObj*)pPerl)->Perl_rxres_restore(rsp, prx);
-}
-
-#undef  Perl_rxres_save
-void
-Perl_rxres_save(pTHXo_ void** rsp, REGEXP* prx)
-{
-    ((CPerlObj*)pPerl)->Perl_rxres_save(rsp, prx);
-}
-#if !defined(HAS_RENAME)
-
-#undef  Perl_same_dirent
-I32
-Perl_same_dirent(pTHXo_ char* a, char* b)
-{
-    return ((CPerlObj*)pPerl)->Perl_same_dirent(a, b);
-}
-#endif
-
-#undef  Perl_savepv
-char*
-Perl_savepv(pTHXo_ const char* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_savepv(sv);
-}
-
-#undef  Perl_savepvn
-char*
-Perl_savepvn(pTHXo_ const char* sv, I32 len)
-{
-    return ((CPerlObj*)pPerl)->Perl_savepvn(sv, len);
-}
-
-#undef  Perl_savestack_grow
-void
-Perl_savestack_grow(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_savestack_grow();
-}
-
-#undef  Perl_save_aelem
-void
-Perl_save_aelem(pTHXo_ AV* av, I32 idx, SV **sptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_aelem(av, idx, sptr);
-}
-
-#undef  Perl_save_alloc
-I32
-Perl_save_alloc(pTHXo_ I32 size, I32 pad)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_alloc(size, pad);
-}
-
-#undef  Perl_save_aptr
-void
-Perl_save_aptr(pTHXo_ AV** aptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_aptr(aptr);
-}
-
-#undef  Perl_save_ary
-AV*
-Perl_save_ary(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_ary(gv);
-}
-
-#undef  Perl_save_clearsv
-void
-Perl_save_clearsv(pTHXo_ SV** svp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_clearsv(svp);
-}
-
-#undef  Perl_save_delete
-void
-Perl_save_delete(pTHXo_ HV* hv, char* key, I32 klen)
-{
-    ((CPerlObj*)pPerl)->Perl_save_delete(hv, key, klen);
-}
-
-#undef  Perl_save_destructor
-void
-Perl_save_destructor(pTHXo_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p)
-{
-    ((CPerlObj*)pPerl)->Perl_save_destructor(f, p);
-}
-
-#undef  Perl_save_destructor_x
-void
-Perl_save_destructor_x(pTHXo_ DESTRUCTORFUNC_t f, void* p)
-{
-    ((CPerlObj*)pPerl)->Perl_save_destructor_x(f, p);
-}
-
-#undef  Perl_save_freesv
-void
-Perl_save_freesv(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_save_freesv(sv);
-}
-
-#undef  Perl_save_freeop
-void
-Perl_save_freeop(pTHXo_ OP* o)
-{
-    ((CPerlObj*)pPerl)->Perl_save_freeop(o);
-}
-
-#undef  Perl_save_freepv
-void
-Perl_save_freepv(pTHXo_ char* pv)
-{
-    ((CPerlObj*)pPerl)->Perl_save_freepv(pv);
-}
-
-#undef  Perl_save_generic_svref
-void
-Perl_save_generic_svref(pTHXo_ SV** sptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_generic_svref(sptr);
-}
-
-#undef  Perl_save_gp
-void
-Perl_save_gp(pTHXo_ GV* gv, I32 empty)
-{
-    ((CPerlObj*)pPerl)->Perl_save_gp(gv, empty);
-}
-
-#undef  Perl_save_hash
-HV*
-Perl_save_hash(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_hash(gv);
-}
-
-#undef  Perl_save_helem
-void
-Perl_save_helem(pTHXo_ HV* hv, SV *key, SV **sptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_helem(hv, key, sptr);
-}
-
-#undef  Perl_save_hints
-void
-Perl_save_hints(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_save_hints();
-}
-
-#undef  Perl_save_hptr
-void
-Perl_save_hptr(pTHXo_ HV** hptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_hptr(hptr);
-}
-
-#undef  Perl_save_I16
-void
-Perl_save_I16(pTHXo_ I16* intp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_I16(intp);
-}
-
-#undef  Perl_save_I32
-void
-Perl_save_I32(pTHXo_ I32* intp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_I32(intp);
-}
-
-#undef  Perl_save_I8
-void
-Perl_save_I8(pTHXo_ I8* bytep)
-{
-    ((CPerlObj*)pPerl)->Perl_save_I8(bytep);
-}
-
-#undef  Perl_save_int
-void
-Perl_save_int(pTHXo_ int* intp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_int(intp);
-}
-
-#undef  Perl_save_item
-void
-Perl_save_item(pTHXo_ SV* item)
-{
-    ((CPerlObj*)pPerl)->Perl_save_item(item);
-}
-
-#undef  Perl_save_iv
-void
-Perl_save_iv(pTHXo_ IV* iv)
-{
-    ((CPerlObj*)pPerl)->Perl_save_iv(iv);
-}
-
-#undef  Perl_save_list
-void
-Perl_save_list(pTHXo_ SV** sarg, I32 maxsarg)
-{
-    ((CPerlObj*)pPerl)->Perl_save_list(sarg, maxsarg);
-}
-
-#undef  Perl_save_long
-void
-Perl_save_long(pTHXo_ long* longp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_long(longp);
-}
-
-#undef  Perl_save_nogv
-void
-Perl_save_nogv(pTHXo_ GV* gv)
-{
-    ((CPerlObj*)pPerl)->Perl_save_nogv(gv);
-}
-
-#undef  Perl_save_op
-void
-Perl_save_op(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_save_op();
-}
-
-#undef  Perl_save_scalar
-SV*
-Perl_save_scalar(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_scalar(gv);
-}
-
-#undef  Perl_save_pptr
-void
-Perl_save_pptr(pTHXo_ char** pptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_pptr(pptr);
-}
-
-#undef  Perl_save_vptr
-void
-Perl_save_vptr(pTHXo_ void* pptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_vptr(pptr);
-}
-
-#undef  Perl_save_re_context
-void
-Perl_save_re_context(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_save_re_context();
-}
-
-#undef  Perl_save_sptr
-void
-Perl_save_sptr(pTHXo_ SV** sptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_sptr(sptr);
-}
-
-#undef  Perl_save_svref
-SV*
-Perl_save_svref(pTHXo_ SV** sptr)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_svref(sptr);
-}
-
-#undef  Perl_save_threadsv
-SV**
-Perl_save_threadsv(pTHXo_ PADOFFSET i)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_threadsv(i);
-}
-
-#undef  Perl_sawparens
-OP*
-Perl_sawparens(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_sawparens(o);
-}
-
-#undef  Perl_scalar
-OP*
-Perl_scalar(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_scalar(o);
-}
-
-#undef  Perl_scalarkids
-OP*
-Perl_scalarkids(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_scalarkids(o);
-}
-
-#undef  Perl_scalarseq
-OP*
-Perl_scalarseq(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_scalarseq(o);
-}
-
-#undef  Perl_scalarvoid
-OP*
-Perl_scalarvoid(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_scalarvoid(o);
-}
-
-#undef  Perl_scan_bin
-NV
-Perl_scan_bin(pTHXo_ char* start, I32 len, I32* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_scan_bin(start, len, retlen);
-}
-
-#undef  Perl_scan_hex
-NV
-Perl_scan_hex(pTHXo_ char* start, I32 len, I32* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_scan_hex(start, len, retlen);
-}
-
-#undef  Perl_scan_num
-char*
-Perl_scan_num(pTHXo_ char* s)
-{
-    return ((CPerlObj*)pPerl)->Perl_scan_num(s);
-}
-
-#undef  Perl_scan_oct
-NV
-Perl_scan_oct(pTHXo_ char* start, I32 len, I32* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_scan_oct(start, len, retlen);
-}
-
-#undef  Perl_scope
-OP*
-Perl_scope(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_scope(o);
-}
-
-#undef  Perl_screaminstr
-char*
-Perl_screaminstr(pTHXo_ SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last)
-{
-    return ((CPerlObj*)pPerl)->Perl_screaminstr(bigsv, littlesv, start_shift, end_shift, state, last);
-}
-#if !defined(VMS)
-
-#undef  Perl_setenv_getix
-I32
-Perl_setenv_getix(pTHXo_ char* nam)
-{
-    return ((CPerlObj*)pPerl)->Perl_setenv_getix(nam);
-}
-#endif
-
-#undef  Perl_setdefout
-void
-Perl_setdefout(pTHXo_ GV* gv)
-{
-    ((CPerlObj*)pPerl)->Perl_setdefout(gv);
-}
-
-#undef  Perl_sharepvn
-char*
-Perl_sharepvn(pTHXo_ const char* sv, I32 len, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_sharepvn(sv, len, hash);
-}
-
-#undef  Perl_share_hek
-HEK*
-Perl_share_hek(pTHXo_ const char* sv, I32 len, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_share_hek(sv, len, hash);
-}
-
-#undef  Perl_sighandler
-Signal_t
-Perl_sighandler(int sig)
-{
-    dTHXo;
-    ((CPerlObj*)pPerl)->Perl_sighandler(sig);
-}
-
-#undef  Perl_stack_grow
-SV**
-Perl_stack_grow(pTHXo_ SV** sp, SV**p, int n)
-{
-    return ((CPerlObj*)pPerl)->Perl_stack_grow(sp, p, n);
-}
-
-#undef  Perl_start_subparse
-I32
-Perl_start_subparse(pTHXo_ I32 is_format, U32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_start_subparse(is_format, flags);
-}
-
-#undef  Perl_sub_crush_depth
-void
-Perl_sub_crush_depth(pTHXo_ CV* cv)
-{
-    ((CPerlObj*)pPerl)->Perl_sub_crush_depth(cv);
-}
-
-#undef  Perl_sv_2bool
-bool
-Perl_sv_2bool(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2bool(sv);
-}
-
-#undef  Perl_sv_2cv
-CV*
-Perl_sv_2cv(pTHXo_ SV* sv, HV** st, GV** gvp, I32 lref)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2cv(sv, st, gvp, lref);
-}
-
-#undef  Perl_sv_2io
-IO*
-Perl_sv_2io(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2io(sv);
-}
-
-#undef  Perl_sv_2iv
-IV
-Perl_sv_2iv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2iv(sv);
-}
-
-#undef  Perl_sv_2mortal
-SV*
-Perl_sv_2mortal(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2mortal(sv);
-}
-
-#undef  Perl_sv_2nv
-NV
-Perl_sv_2nv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2nv(sv);
-}
-
-#undef  Perl_sv_2pv
-char*
-Perl_sv_2pv(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pv(sv, lp);
-}
-
-#undef  Perl_sv_2pvutf8
-char*
-Perl_sv_2pvutf8(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pvutf8(sv, lp);
-}
-
-#undef  Perl_sv_2pvbyte
-char*
-Perl_sv_2pvbyte(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pvbyte(sv, lp);
-}
-
-#undef  Perl_sv_2uv
-UV
-Perl_sv_2uv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2uv(sv);
-}
-
-#undef  Perl_sv_iv
-IV
-Perl_sv_iv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_iv(sv);
-}
-
-#undef  Perl_sv_uv
-UV
-Perl_sv_uv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_uv(sv);
-}
-
-#undef  Perl_sv_nv
-NV
-Perl_sv_nv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_nv(sv);
-}
-
-#undef  Perl_sv_pvn
-char*
-Perl_sv_pvn(pTHXo_ SV *sv, STRLEN *len)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvn(sv, len);
-}
-
-#undef  Perl_sv_pvutf8n
-char*
-Perl_sv_pvutf8n(pTHXo_ SV *sv, STRLEN *len)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvutf8n(sv, len);
-}
-
-#undef  Perl_sv_pvbyten
-char*
-Perl_sv_pvbyten(pTHXo_ SV *sv, STRLEN *len)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvbyten(sv, len);
-}
-
-#undef  Perl_sv_true
-I32
-Perl_sv_true(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_true(sv);
-}
-
-#undef  Perl_sv_add_arena
-void
-Perl_sv_add_arena(pTHXo_ char* ptr, U32 size, U32 flags)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_add_arena(ptr, size, flags);
-}
-
-#undef  Perl_sv_backoff
-int
-Perl_sv_backoff(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_backoff(sv);
-}
-
-#undef  Perl_sv_bless
-SV*
-Perl_sv_bless(pTHXo_ SV* sv, HV* stash)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_bless(sv, stash);
-}
-
-#undef  Perl_sv_catpvf
-void
-Perl_sv_catpvf(pTHXo_ SV* sv, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_vcatpvf
-void
-Perl_sv_vcatpvf(pTHXo_ SV* sv, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf(sv, pat, args);
-}
-
-#undef  Perl_sv_catpv
-void
-Perl_sv_catpv(pTHXo_ SV* sv, const char* ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catpv(sv, ptr);
-}
-
-#undef  Perl_sv_catpvn
-void
-Perl_sv_catpvn(pTHXo_ SV* sv, const char* ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catpvn(sv, ptr, len);
-}
-
-#undef  Perl_sv_catsv
-void
-Perl_sv_catsv(pTHXo_ SV* dsv, SV* ssv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catsv(dsv, ssv);
-}
-
-#undef  Perl_sv_chop
-void
-Perl_sv_chop(pTHXo_ SV* sv, char* ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_chop(sv, ptr);
-}
-
-#undef  Perl_sv_clean_all
-void
-Perl_sv_clean_all(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_clean_all();
-}
-
-#undef  Perl_sv_clean_objs
-void
-Perl_sv_clean_objs(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_clean_objs();
-}
-
-#undef  Perl_sv_clear
-void
-Perl_sv_clear(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_clear(sv);
-}
-
-#undef  Perl_sv_cmp
-I32
-Perl_sv_cmp(pTHXo_ SV* sv1, SV* sv2)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_cmp(sv1, sv2);
-}
-
-#undef  Perl_sv_cmp_locale
-I32
-Perl_sv_cmp_locale(pTHXo_ SV* sv1, SV* sv2)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_cmp_locale(sv1, sv2);
-}
-#if defined(USE_LOCALE_COLLATE)
-
-#undef  Perl_sv_collxfrm
-char*
-Perl_sv_collxfrm(pTHXo_ SV* sv, STRLEN* nxp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_collxfrm(sv, nxp);
-}
-#endif
-
-#undef  Perl_sv_compile_2op
-OP*
-Perl_sv_compile_2op(pTHXo_ SV* sv, OP** startp, char* code, AV** avp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_compile_2op(sv, startp, code, avp);
-}
-
-#undef  Perl_sv_dec
-void
-Perl_sv_dec(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_dec(sv);
-}
-
-#undef  Perl_sv_dump
-void
-Perl_sv_dump(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_dump(sv);
-}
-
-#undef  Perl_sv_derived_from
-bool
-Perl_sv_derived_from(pTHXo_ SV* sv, const char* name)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_derived_from(sv, name);
-}
-
-#undef  Perl_sv_eq
-I32
-Perl_sv_eq(pTHXo_ SV* sv1, SV* sv2)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_eq(sv1, sv2);
-}
-
-#undef  Perl_sv_free
-void
-Perl_sv_free(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_free(sv);
-}
-
-#undef  Perl_sv_free_arenas
-void
-Perl_sv_free_arenas(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_free_arenas();
-}
-
-#undef  Perl_sv_gets
-char*
-Perl_sv_gets(pTHXo_ SV* sv, PerlIO* fp, I32 append)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_gets(sv, fp, append);
-}
-
-#undef  Perl_sv_grow
-char*
-Perl_sv_grow(pTHXo_ SV* sv, STRLEN newlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_grow(sv, newlen);
-}
-
-#undef  Perl_sv_inc
-void
-Perl_sv_inc(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_inc(sv);
-}
-
-#undef  Perl_sv_insert
-void
-Perl_sv_insert(pTHXo_ SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_insert(bigsv, offset, len, little, littlelen);
-}
-
-#undef  Perl_sv_isa
-int
-Perl_sv_isa(pTHXo_ SV* sv, const char* name)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_isa(sv, name);
-}
-
-#undef  Perl_sv_isobject
-int
-Perl_sv_isobject(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_isobject(sv);
-}
-
-#undef  Perl_sv_len
-STRLEN
-Perl_sv_len(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_len(sv);
-}
-
-#undef  Perl_sv_len_utf8
-STRLEN
-Perl_sv_len_utf8(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_len_utf8(sv);
-}
-
-#undef  Perl_sv_magic
-void
-Perl_sv_magic(pTHXo_ SV* sv, SV* obj, int how, const char* name, I32 namlen)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_magic(sv, obj, how, name, namlen);
-}
-
-#undef  Perl_sv_mortalcopy
-SV*
-Perl_sv_mortalcopy(pTHXo_ SV* oldsv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_mortalcopy(oldsv);
-}
-
-#undef  Perl_sv_newmortal
-SV*
-Perl_sv_newmortal(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_newmortal();
-}
-
-#undef  Perl_sv_newref
-SV*
-Perl_sv_newref(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_newref(sv);
-}
-
-#undef  Perl_sv_peek
-char*
-Perl_sv_peek(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_peek(sv);
-}
-
-#undef  Perl_sv_pos_u2b
-void
-Perl_sv_pos_u2b(pTHXo_ SV* sv, I32* offsetp, I32* lenp)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_pos_u2b(sv, offsetp, lenp);
-}
-
-#undef  Perl_sv_pos_b2u
-void
-Perl_sv_pos_b2u(pTHXo_ SV* sv, I32* offsetp)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_pos_b2u(sv, offsetp);
-}
-
-#undef  Perl_sv_pvn_force
-char*
-Perl_sv_pvn_force(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvn_force(sv, lp);
-}
-
-#undef  Perl_sv_pvutf8n_force
-char*
-Perl_sv_pvutf8n_force(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvutf8n_force(sv, lp);
-}
-
-#undef  Perl_sv_pvbyten_force
-char*
-Perl_sv_pvbyten_force(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvbyten_force(sv, lp);
-}
-
-#undef  Perl_sv_reftype
-char*
-Perl_sv_reftype(pTHXo_ SV* sv, int ob)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_reftype(sv, ob);
-}
-
-#undef  Perl_sv_replace
-void
-Perl_sv_replace(pTHXo_ SV* sv, SV* nsv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_replace(sv, nsv);
-}
-
-#undef  Perl_sv_report_used
-void
-Perl_sv_report_used(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_report_used();
-}
-
-#undef  Perl_sv_reset
-void
-Perl_sv_reset(pTHXo_ char* s, HV* stash)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_reset(s, stash);
-}
-
-#undef  Perl_sv_setpvf
-void
-Perl_sv_setpvf(pTHXo_ SV* sv, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_vsetpvf
-void
-Perl_sv_vsetpvf(pTHXo_ SV* sv, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf(sv, pat, args);
-}
-
-#undef  Perl_sv_setiv
-void
-Perl_sv_setiv(pTHXo_ SV* sv, IV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setiv(sv, num);
-}
-
-#undef  Perl_sv_setpviv
-void
-Perl_sv_setpviv(pTHXo_ SV* sv, IV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpviv(sv, num);
-}
-
-#undef  Perl_sv_setuv
-void
-Perl_sv_setuv(pTHXo_ SV* sv, UV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setuv(sv, num);
-}
-
-#undef  Perl_sv_setnv
-void
-Perl_sv_setnv(pTHXo_ SV* sv, NV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setnv(sv, num);
-}
-
-#undef  Perl_sv_setref_iv
-SV*
-Perl_sv_setref_iv(pTHXo_ SV* rv, const char* classname, IV iv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_setref_iv(rv, classname, iv);
-}
-
-#undef  Perl_sv_setref_nv
-SV*
-Perl_sv_setref_nv(pTHXo_ SV* rv, const char* classname, NV nv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_setref_nv(rv, classname, nv);
-}
-
-#undef  Perl_sv_setref_pv
-SV*
-Perl_sv_setref_pv(pTHXo_ SV* rv, const char* classname, void* pv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_setref_pv(rv, classname, pv);
-}
-
-#undef  Perl_sv_setref_pvn
-SV*
-Perl_sv_setref_pvn(pTHXo_ SV* rv, const char* classname, char* pv, STRLEN n)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_setref_pvn(rv, classname, pv, n);
-}
-
-#undef  Perl_sv_setpv
-void
-Perl_sv_setpv(pTHXo_ SV* sv, const char* ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpv(sv, ptr);
-}
-
-#undef  Perl_sv_setpvn
-void
-Perl_sv_setpvn(pTHXo_ SV* sv, const char* ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpvn(sv, ptr, len);
-}
-
-#undef  Perl_sv_setsv
-void
-Perl_sv_setsv(pTHXo_ SV* dsv, SV* ssv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setsv(dsv, ssv);
-}
-
-#undef  Perl_sv_taint
-void
-Perl_sv_taint(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_taint(sv);
-}
-
-#undef  Perl_sv_tainted
-bool
-Perl_sv_tainted(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_tainted(sv);
-}
-
-#undef  Perl_sv_unmagic
-int
-Perl_sv_unmagic(pTHXo_ SV* sv, int type)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_unmagic(sv, type);
-}
-
-#undef  Perl_sv_unref
-void
-Perl_sv_unref(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_unref(sv);
-}
-
-#undef  Perl_sv_untaint
-void
-Perl_sv_untaint(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_untaint(sv);
-}
-
-#undef  Perl_sv_upgrade
-bool
-Perl_sv_upgrade(pTHXo_ SV* sv, U32 mt)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_upgrade(sv, mt);
-}
-
-#undef  Perl_sv_usepvn
-void
-Perl_sv_usepvn(pTHXo_ SV* sv, char* ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_usepvn(sv, ptr, len);
-}
-
-#undef  Perl_sv_vcatpvfn
-void
-Perl_sv_vcatpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, maybe_tainted);
-}
-
-#undef  Perl_sv_vsetpvfn
-void
-Perl_sv_vsetpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvfn(sv, pat, patlen, args, svargs, svmax, maybe_tainted);
-}
-
-#undef  Perl_swash_init
-SV*
-Perl_swash_init(pTHXo_ char* pkg, char* name, SV* listsv, I32 minbits, I32 none)
-{
-    return ((CPerlObj*)pPerl)->Perl_swash_init(pkg, name, listsv, minbits, none);
-}
-
-#undef  Perl_swash_fetch
-UV
-Perl_swash_fetch(pTHXo_ SV *sv, U8 *ptr)
-{
-    return ((CPerlObj*)pPerl)->Perl_swash_fetch(sv, ptr);
-}
-
-#undef  Perl_taint_env
-void
-Perl_taint_env(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_taint_env();
-}
-
-#undef  Perl_taint_proper
-void
-Perl_taint_proper(pTHXo_ const char* f, const char* s)
-{
-    ((CPerlObj*)pPerl)->Perl_taint_proper(f, s);
-}
-
-#undef  Perl_to_utf8_lower
-UV
-Perl_to_utf8_lower(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_utf8_lower(p);
-}
-
-#undef  Perl_to_utf8_upper
-UV
-Perl_to_utf8_upper(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_utf8_upper(p);
-}
-
-#undef  Perl_to_utf8_title
-UV
-Perl_to_utf8_title(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_utf8_title(p);
-}
-#if defined(UNLINK_ALL_VERSIONS)
-
-#undef  Perl_unlnk
-I32
-Perl_unlnk(pTHXo_ char* f)
-{
-    return ((CPerlObj*)pPerl)->Perl_unlnk(f);
-}
-#endif
-#if defined(USE_THREADS)
-
-#undef  Perl_unlock_condpair
-void
-Perl_unlock_condpair(pTHXo_ void* svv)
-{
-    ((CPerlObj*)pPerl)->Perl_unlock_condpair(svv);
-}
-#endif
-
-#undef  Perl_unsharepvn
-void
-Perl_unsharepvn(pTHXo_ const char* sv, I32 len, U32 hash)
-{
-    ((CPerlObj*)pPerl)->Perl_unsharepvn(sv, len, hash);
-}
-
-#undef  Perl_unshare_hek
-void
-Perl_unshare_hek(pTHXo_ HEK* hek)
-{
-    ((CPerlObj*)pPerl)->Perl_unshare_hek(hek);
-}
-
-#undef  Perl_utilize
-void
-Perl_utilize(pTHXo_ int aver, I32 floor, OP* version, OP* id, OP* arg)
-{
-    ((CPerlObj*)pPerl)->Perl_utilize(aver, floor, version, id, arg);
-}
-
-#undef  Perl_utf16_to_utf8
-U8*
-Perl_utf16_to_utf8(pTHXo_ U16* p, U8 *d, I32 bytelen)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf16_to_utf8(p, d, bytelen);
-}
-
-#undef  Perl_utf16_to_utf8_reversed
-U8*
-Perl_utf16_to_utf8_reversed(pTHXo_ U16* p, U8 *d, I32 bytelen)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf16_to_utf8_reversed(p, d, bytelen);
-}
-
-#undef  Perl_utf8_distance
-I32
-Perl_utf8_distance(pTHXo_ U8 *a, U8 *b)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8_distance(a, b);
-}
-
-#undef  Perl_utf8_hop
-U8*
-Perl_utf8_hop(pTHXo_ U8 *s, I32 off)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8_hop(s, off);
-}
-
-#undef  Perl_utf8_to_uv
-UV
-Perl_utf8_to_uv(pTHXo_ U8 *s, I32* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8_to_uv(s, retlen);
-}
-
-#undef  Perl_uv_to_utf8
-U8*
-Perl_uv_to_utf8(pTHXo_ U8 *d, UV uv)
-{
-    return ((CPerlObj*)pPerl)->Perl_uv_to_utf8(d, uv);
-}
-
-#undef  Perl_vivify_defelem
-void
-Perl_vivify_defelem(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_vivify_defelem(sv);
-}
-
-#undef  Perl_vivify_ref
-void
-Perl_vivify_ref(pTHXo_ SV* sv, U32 to_what)
-{
-    ((CPerlObj*)pPerl)->Perl_vivify_ref(sv, to_what);
-}
-
-#undef  Perl_wait4pid
-I32
-Perl_wait4pid(pTHXo_ Pid_t pid, int* statusp, int flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_wait4pid(pid, statusp, flags);
-}
-
-#undef  Perl_report_closed_fh
-void
-Perl_report_closed_fh(pTHXo_ GV *gv, IO *io, const char *func, const char *obj)
-{
-    ((CPerlObj*)pPerl)->Perl_report_closed_fh(gv, io, func, obj);
-}
-
-#undef  Perl_report_uninit
-void
-Perl_report_uninit(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_report_uninit();
-}
-
-#undef  Perl_warn
-void
-Perl_warn(pTHXo_ const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vwarn(pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_vwarn
-void
-Perl_vwarn(pTHXo_ const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_vwarn(pat, args);
-}
-
-#undef  Perl_warner
-void
-Perl_warner(pTHXo_ U32 err, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vwarner(err, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_vwarner
-void
-Perl_vwarner(pTHXo_ U32 err, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_vwarner(err, pat, args);
-}
-
-#undef  Perl_watch
-void
-Perl_watch(pTHXo_ char** addr)
-{
-    ((CPerlObj*)pPerl)->Perl_watch(addr);
-}
-
-#undef  Perl_whichsig
-I32
-Perl_whichsig(pTHXo_ char* sig)
-{
-    return ((CPerlObj*)pPerl)->Perl_whichsig(sig);
-}
-
-#undef  Perl_yyerror
-int
-Perl_yyerror(pTHXo_ char* s)
-{
-    return ((CPerlObj*)pPerl)->Perl_yyerror(s);
-}
-#if defined(USE_PURE_BISON)
-
-#undef  Perl_yylex
-int
-Perl_yylex(pTHXo_ YYSTYPE *lvalp, int *lcharp)
-{
-    return ((CPerlObj*)pPerl)->Perl_yylex(lvalp, lcharp);
-}
-#else
-
-#undef  Perl_yylex
-int
-Perl_yylex(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_yylex();
-}
-#endif
-
-#undef  Perl_yyparse
-int
-Perl_yyparse(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_yyparse();
-}
-
-#undef  Perl_yywarn
-int
-Perl_yywarn(pTHXo_ char* s)
-{
-    return ((CPerlObj*)pPerl)->Perl_yywarn(s);
-}
-#if defined(MYMALLOC)
-
-#undef  Perl_dump_mstats
-void
-Perl_dump_mstats(pTHXo_ char* s)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_mstats(s);
-}
-#endif
-
-#undef  Perl_safesysmalloc
-Malloc_t
-Perl_safesysmalloc(MEM_SIZE nbytes)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safesysmalloc(nbytes);
-}
-
-#undef  Perl_safesyscalloc
-Malloc_t
-Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safesyscalloc(elements, size);
-}
-
-#undef  Perl_safesysrealloc
-Malloc_t
-Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safesysrealloc(where, nbytes);
-}
-
-#undef  Perl_safesysfree
-Free_t
-Perl_safesysfree(Malloc_t where)
-{
-    dTHXo;
-    ((CPerlObj*)pPerl)->Perl_safesysfree(where);
-}
-#if defined(LEAKTEST)
-
-#undef  Perl_safexmalloc
-Malloc_t
-Perl_safexmalloc(I32 x, MEM_SIZE size)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safexmalloc(x, size);
-}
-
-#undef  Perl_safexcalloc
-Malloc_t
-Perl_safexcalloc(I32 x, MEM_SIZE elements, MEM_SIZE size)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safexcalloc(x, elements, size);
-}
-
-#undef  Perl_safexrealloc
-Malloc_t
-Perl_safexrealloc(Malloc_t where, MEM_SIZE size)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safexrealloc(where, size);
-}
-
-#undef  Perl_safexfree
-void
-Perl_safexfree(Malloc_t where)
-{
-    dTHXo;
-    ((CPerlObj*)pPerl)->Perl_safexfree(where);
-}
-#endif
-#if defined(PERL_GLOBAL_STRUCT)
-
-#undef  Perl_GetVars
-struct perl_vars *
-Perl_GetVars(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_GetVars();
-}
-#endif
-
-#undef  Perl_runops_standard
-int
-Perl_runops_standard(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_runops_standard();
-}
-
-#undef  Perl_runops_debug
-int
-Perl_runops_debug(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_runops_debug();
-}
-
-#undef  Perl_sv_catpvf_mg
-void
-Perl_sv_catpvf_mg(pTHXo_ SV *sv, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf_mg(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_vcatpvf_mg
-void
-Perl_sv_vcatpvf_mg(pTHXo_ SV* sv, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf_mg(sv, pat, args);
-}
-
-#undef  Perl_sv_catpv_mg
-void
-Perl_sv_catpv_mg(pTHXo_ SV *sv, const char *ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catpv_mg(sv, ptr);
-}
-
-#undef  Perl_sv_catpvn_mg
-void
-Perl_sv_catpvn_mg(pTHXo_ SV *sv, const char *ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catpvn_mg(sv, ptr, len);
-}
-
-#undef  Perl_sv_catsv_mg
-void
-Perl_sv_catsv_mg(pTHXo_ SV *dstr, SV *sstr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catsv_mg(dstr, sstr);
-}
-
-#undef  Perl_sv_setpvf_mg
-void
-Perl_sv_setpvf_mg(pTHXo_ SV *sv, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf_mg(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_vsetpvf_mg
-void
-Perl_sv_vsetpvf_mg(pTHXo_ SV* sv, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf_mg(sv, pat, args);
-}
-
-#undef  Perl_sv_setiv_mg
-void
-Perl_sv_setiv_mg(pTHXo_ SV *sv, IV i)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setiv_mg(sv, i);
-}
-
-#undef  Perl_sv_setpviv_mg
-void
-Perl_sv_setpviv_mg(pTHXo_ SV *sv, IV iv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpviv_mg(sv, iv);
-}
-
-#undef  Perl_sv_setuv_mg
-void
-Perl_sv_setuv_mg(pTHXo_ SV *sv, UV u)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setuv_mg(sv, u);
-}
-
-#undef  Perl_sv_setnv_mg
-void
-Perl_sv_setnv_mg(pTHXo_ SV *sv, NV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setnv_mg(sv, num);
-}
-
-#undef  Perl_sv_setpv_mg
-void
-Perl_sv_setpv_mg(pTHXo_ SV *sv, const char *ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpv_mg(sv, ptr);
-}
-
-#undef  Perl_sv_setpvn_mg
-void
-Perl_sv_setpvn_mg(pTHXo_ SV *sv, const char *ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpvn_mg(sv, ptr, len);
-}
-
-#undef  Perl_sv_setsv_mg
-void
-Perl_sv_setsv_mg(pTHXo_ SV *dstr, SV *sstr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setsv_mg(dstr, sstr);
-}
-
-#undef  Perl_sv_usepvn_mg
-void
-Perl_sv_usepvn_mg(pTHXo_ SV *sv, char *ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_usepvn_mg(sv, ptr, len);
-}
-
-#undef  Perl_get_vtbl
-MGVTBL*
-Perl_get_vtbl(pTHXo_ int vtbl_id)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_vtbl(vtbl_id);
-}
-
-#undef  Perl_pv_display
-char*
-Perl_pv_display(pTHXo_ SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)
-{
-    return ((CPerlObj*)pPerl)->Perl_pv_display(sv, pv, cur, len, pvlim);
-}
-
-#undef  Perl_dump_indent
-void
-Perl_dump_indent(pTHXo_ I32 level, PerlIO *file, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_dump_vindent(level, file, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_dump_vindent
-void
-Perl_dump_vindent(pTHXo_ I32 level, PerlIO *file, const char* pat, va_list *args)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_vindent(level, file, pat, args);
-}
-
-#undef  Perl_do_gv_dump
-void
-Perl_do_gv_dump(pTHXo_ I32 level, PerlIO *file, char *name, GV *sv)
-{
-    ((CPerlObj*)pPerl)->Perl_do_gv_dump(level, file, name, sv);
-}
-
-#undef  Perl_do_gvgv_dump
-void
-Perl_do_gvgv_dump(pTHXo_ I32 level, PerlIO *file, char *name, GV *sv)
-{
-    ((CPerlObj*)pPerl)->Perl_do_gvgv_dump(level, file, name, sv);
-}
-
-#undef  Perl_do_hv_dump
-void
-Perl_do_hv_dump(pTHXo_ I32 level, PerlIO *file, char *name, HV *sv)
-{
-    ((CPerlObj*)pPerl)->Perl_do_hv_dump(level, file, name, sv);
-}
-
-#undef  Perl_do_magic_dump
-void
-Perl_do_magic_dump(pTHXo_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
-{
-    ((CPerlObj*)pPerl)->Perl_do_magic_dump(level, file, mg, nest, maxnest, dumpops, pvlim);
-}
-
-#undef  Perl_do_op_dump
-void
-Perl_do_op_dump(pTHXo_ I32 level, PerlIO *file, OP *o)
-{
-    ((CPerlObj*)pPerl)->Perl_do_op_dump(level, file, o);
-}
-
-#undef  Perl_do_pmop_dump
-void
-Perl_do_pmop_dump(pTHXo_ I32 level, PerlIO *file, PMOP *pm)
-{
-    ((CPerlObj*)pPerl)->Perl_do_pmop_dump(level, file, pm);
-}
-
-#undef  Perl_do_sv_dump
-void
-Perl_do_sv_dump(pTHXo_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
-{
-    ((CPerlObj*)pPerl)->Perl_do_sv_dump(level, file, sv, nest, maxnest, dumpops, pvlim);
-}
-
-#undef  Perl_magic_dump
-void
-Perl_magic_dump(pTHXo_ MAGIC *mg)
-{
-    ((CPerlObj*)pPerl)->Perl_magic_dump(mg);
-}
-
-#undef  Perl_default_protect
-void*
-Perl_default_protect(pTHXo_ volatile JMPENV *je, int *excpt, protect_body_t body, ...)
-{
-    void* retval;
-    va_list args;
-    va_start(args, body);
-    retval = ((CPerlObj*)pPerl)->Perl_vdefault_protect(je, excpt, body, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_vdefault_protect
-void*
-Perl_vdefault_protect(pTHXo_ volatile JMPENV *je, int *excpt, protect_body_t body, va_list *args)
-{
-    return ((CPerlObj*)pPerl)->Perl_vdefault_protect(je, excpt, body, args);
-}
-
-#undef  Perl_reginitcolors
-void
-Perl_reginitcolors(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_reginitcolors();
-}
-
-#undef  Perl_sv_2pv_nolen
-char*
-Perl_sv_2pv_nolen(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pv_nolen(sv);
-}
-
-#undef  Perl_sv_2pvutf8_nolen
-char*
-Perl_sv_2pvutf8_nolen(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pvutf8_nolen(sv);
-}
-
-#undef  Perl_sv_2pvbyte_nolen
-char*
-Perl_sv_2pvbyte_nolen(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pvbyte_nolen(sv);
-}
-
-#undef  Perl_sv_pv
-char*
-Perl_sv_pv(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pv(sv);
-}
-
-#undef  Perl_sv_pvutf8
-char*
-Perl_sv_pvutf8(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvutf8(sv);
-}
-
-#undef  Perl_sv_pvbyte
-char*
-Perl_sv_pvbyte(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvbyte(sv);
-}
-
-#undef  Perl_sv_force_normal
-void
-Perl_sv_force_normal(pTHXo_ SV *sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_force_normal(sv);
-}
-
-#undef  Perl_tmps_grow
-void
-Perl_tmps_grow(pTHXo_ I32 n)
-{
-    ((CPerlObj*)pPerl)->Perl_tmps_grow(n);
-}
-
-#undef  Perl_sv_rvweaken
-SV*
-Perl_sv_rvweaken(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_rvweaken(sv);
-}
-
-#undef  Perl_magic_killbackrefs
-int
-Perl_magic_killbackrefs(pTHXo_ SV *sv, MAGIC *mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_magic_killbackrefs(sv, mg);
-}
-
-#undef  Perl_newANONATTRSUB
-OP*
-Perl_newANONATTRSUB(pTHXo_ I32 floor, OP *proto, OP *attrs, OP *block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newANONATTRSUB(floor, proto, attrs, block);
-}
-
-#undef  Perl_newATTRSUB
-CV*
-Perl_newATTRSUB(pTHXo_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newATTRSUB(floor, o, proto, attrs, block);
-}
-
-#undef  Perl_newMYSUB
-void
-Perl_newMYSUB(pTHXo_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
-{
-    ((CPerlObj*)pPerl)->Perl_newMYSUB(floor, o, proto, attrs, block);
-}
-
-#undef  Perl_my_attrs
-OP *
-Perl_my_attrs(pTHXo_ OP *o, OP *attrs)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_attrs(o, attrs);
-}
-
-#undef  Perl_boot_core_xsutils
-void
-Perl_boot_core_xsutils(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_boot_core_xsutils();
-}
-#if defined(USE_ITHREADS)
-
-#undef  Perl_cx_dup
-PERL_CONTEXT*
-Perl_cx_dup(pTHXo_ PERL_CONTEXT* cx, I32 ix, I32 max)
-{
-    return ((CPerlObj*)pPerl)->Perl_cx_dup(cx, ix, max);
-}
-
-#undef  Perl_si_dup
-PERL_SI*
-Perl_si_dup(pTHXo_ PERL_SI* si)
-{
-    return ((CPerlObj*)pPerl)->Perl_si_dup(si);
-}
-
-#undef  Perl_ss_dup
-ANY*
-Perl_ss_dup(pTHXo_ PerlInterpreter* proto_perl)
-{
-    return ((CPerlObj*)pPerl)->Perl_ss_dup(proto_perl);
-}
-
-#undef  Perl_any_dup
-void*
-Perl_any_dup(pTHXo_ void* v, PerlInterpreter* proto_perl)
-{
-    return ((CPerlObj*)pPerl)->Perl_any_dup(v, proto_perl);
-}
-
-#undef  Perl_he_dup
-HE*
-Perl_he_dup(pTHXo_ HE* e, bool shared)
-{
-    return ((CPerlObj*)pPerl)->Perl_he_dup(e, shared);
-}
-
-#undef  Perl_re_dup
-REGEXP*
-Perl_re_dup(pTHXo_ REGEXP* r)
-{
-    return ((CPerlObj*)pPerl)->Perl_re_dup(r);
-}
-
-#undef  Perl_fp_dup
-PerlIO*
-Perl_fp_dup(pTHXo_ PerlIO* fp, char type)
-{
-    return ((CPerlObj*)pPerl)->Perl_fp_dup(fp, type);
-}
-
-#undef  Perl_dirp_dup
-DIR*
-Perl_dirp_dup(pTHXo_ DIR* dp)
-{
-    return ((CPerlObj*)pPerl)->Perl_dirp_dup(dp);
-}
-
-#undef  Perl_gp_dup
-GP*
-Perl_gp_dup(pTHXo_ GP* gp)
-{
-    return ((CPerlObj*)pPerl)->Perl_gp_dup(gp);
-}
-
-#undef  Perl_mg_dup
-MAGIC*
-Perl_mg_dup(pTHXo_ MAGIC* mg)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_dup(mg);
-}
-
-#undef  Perl_sv_dup
-SV*
-Perl_sv_dup(pTHXo_ SV* sstr)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_dup(sstr);
-}
-#if defined(HAVE_INTERP_INTERN)
-
-#undef  Perl_sys_intern_dup
-void
-Perl_sys_intern_dup(pTHXo_ struct interp_intern* src, struct interp_intern* dst)
-{
-    ((CPerlObj*)pPerl)->Perl_sys_intern_dup(src, dst);
-}
-#endif
-
-#undef  Perl_ptr_table_new
-PTR_TBL_t*
-Perl_ptr_table_new(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_ptr_table_new();
-}
-
-#undef  Perl_ptr_table_fetch
-void*
-Perl_ptr_table_fetch(pTHXo_ PTR_TBL_t *tbl, void *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_ptr_table_fetch(tbl, sv);
-}
-
-#undef  Perl_ptr_table_store
-void
-Perl_ptr_table_store(pTHXo_ PTR_TBL_t *tbl, void *oldsv, void *newsv)
-{
-    ((CPerlObj*)pPerl)->Perl_ptr_table_store(tbl, oldsv, newsv);
-}
-
-#undef  Perl_ptr_table_split
-void
-Perl_ptr_table_split(pTHXo_ PTR_TBL_t *tbl)
-{
-    ((CPerlObj*)pPerl)->Perl_ptr_table_split(tbl);
-}
-#endif
-#if defined(PERL_OBJECT)
-#else
-#endif
-#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#  if defined(PL_OP_SLAB_ALLOC)
-#  endif
-#endif
-#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
-#  if defined(IAMSUID)
-#  endif
-#  if defined(USE_THREADS)
-#  endif
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
-#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-#  endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#  if defined(PURIFY)
-#  else
-#  endif
-#  if defined(DEBUGGING)
-#  endif
-#endif
-#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-#  if defined(CRIPPLED_CC)
-#  endif
-#  if defined(PERL_CR_FILTER)
-#  endif
-#endif
-#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#  if defined(LEAKTEST)
-#  endif
-#endif
-#if defined(PERL_OBJECT)
-#endif
-
-#undef  Perl_ck_anoncode
-OP *
-Perl_ck_anoncode(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_anoncode(o);
-}
-
-#undef  Perl_ck_bitop
-OP *
-Perl_ck_bitop(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_bitop(o);
-}
-
-#undef  Perl_ck_concat
-OP *
-Perl_ck_concat(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_concat(o);
-}
-
-#undef  Perl_ck_defined
-OP *
-Perl_ck_defined(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_defined(o);
-}
-
-#undef  Perl_ck_delete
-OP *
-Perl_ck_delete(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_delete(o);
-}
-
-#undef  Perl_ck_eof
-OP *
-Perl_ck_eof(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_eof(o);
-}
-
-#undef  Perl_ck_eval
-OP *
-Perl_ck_eval(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_eval(o);
-}
-
-#undef  Perl_ck_exec
-OP *
-Perl_ck_exec(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_exec(o);
-}
-
-#undef  Perl_ck_exists
-OP *
-Perl_ck_exists(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_exists(o);
-}
-
-#undef  Perl_ck_ftst
-OP *
-Perl_ck_ftst(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_ftst(o);
-}
-
-#undef  Perl_ck_fun
-OP *
-Perl_ck_fun(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_fun(o);
-}
-
-#undef  Perl_ck_fun_locale
-OP *
-Perl_ck_fun_locale(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_fun_locale(o);
-}
-
-#undef  Perl_ck_glob
-OP *
-Perl_ck_glob(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_glob(o);
-}
-
-#undef  Perl_ck_grep
-OP *
-Perl_ck_grep(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_grep(o);
-}
-
-#undef  Perl_ck_index
-OP *
-Perl_ck_index(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_index(o);
-}
-
-#undef  Perl_ck_join
-OP *
-Perl_ck_join(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_join(o);
-}
-
-#undef  Perl_ck_lengthconst
-OP *
-Perl_ck_lengthconst(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_lengthconst(o);
-}
-
-#undef  Perl_ck_lfun
-OP *
-Perl_ck_lfun(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_lfun(o);
-}
-
-#undef  Perl_ck_listiob
-OP *
-Perl_ck_listiob(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_listiob(o);
-}
-
-#undef  Perl_ck_match
-OP *
-Perl_ck_match(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_match(o);
-}
-
-#undef  Perl_ck_method
-OP *
-Perl_ck_method(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_method(o);
-}
-
-#undef  Perl_ck_null
-OP *
-Perl_ck_null(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_null(o);
-}
-
-#undef  Perl_ck_repeat
-OP *
-Perl_ck_repeat(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_repeat(o);
-}
-
-#undef  Perl_ck_require
-OP *
-Perl_ck_require(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_require(o);
-}
-
-#undef  Perl_ck_rfun
-OP *
-Perl_ck_rfun(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_rfun(o);
-}
-
-#undef  Perl_ck_rvconst
-OP *
-Perl_ck_rvconst(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_rvconst(o);
-}
-
-#undef  Perl_ck_sassign
-OP *
-Perl_ck_sassign(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_sassign(o);
-}
-
-#undef  Perl_ck_scmp
-OP *
-Perl_ck_scmp(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_scmp(o);
-}
-
-#undef  Perl_ck_select
-OP *
-Perl_ck_select(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_select(o);
-}
-
-#undef  Perl_ck_shift
-OP *
-Perl_ck_shift(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_shift(o);
-}
-
-#undef  Perl_ck_sort
-OP *
-Perl_ck_sort(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_sort(o);
-}
-
-#undef  Perl_ck_spair
-OP *
-Perl_ck_spair(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_spair(o);
-}
-
-#undef  Perl_ck_split
-OP *
-Perl_ck_split(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_split(o);
-}
-
-#undef  Perl_ck_subr
-OP *
-Perl_ck_subr(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_subr(o);
-}
-
-#undef  Perl_ck_svconst
-OP *
-Perl_ck_svconst(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_svconst(o);
-}
-
-#undef  Perl_ck_trunc
-OP *
-Perl_ck_trunc(pTHXo_ OP *o)
-{
-    return ((CPerlObj*)pPerl)->Perl_ck_trunc(o);
-}
-
-#undef  Perl_pp_aassign
-OP *
-Perl_pp_aassign(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_aassign();
-}
-
-#undef  Perl_pp_abs
-OP *
-Perl_pp_abs(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_abs();
-}
-
-#undef  Perl_pp_accept
-OP *
-Perl_pp_accept(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_accept();
-}
-
-#undef  Perl_pp_add
-OP *
-Perl_pp_add(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_add();
-}
-
-#undef  Perl_pp_aelem
-OP *
-Perl_pp_aelem(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_aelem();
-}
-
-#undef  Perl_pp_aelemfast
-OP *
-Perl_pp_aelemfast(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_aelemfast();
-}
-
-#undef  Perl_pp_alarm
-OP *
-Perl_pp_alarm(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_alarm();
-}
-
-#undef  Perl_pp_and
-OP *
-Perl_pp_and(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_and();
-}
-
-#undef  Perl_pp_andassign
-OP *
-Perl_pp_andassign(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_andassign();
-}
-
-#undef  Perl_pp_anoncode
-OP *
-Perl_pp_anoncode(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_anoncode();
-}
-
-#undef  Perl_pp_anonhash
-OP *
-Perl_pp_anonhash(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_anonhash();
-}
-
-#undef  Perl_pp_anonlist
-OP *
-Perl_pp_anonlist(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_anonlist();
-}
-
-#undef  Perl_pp_aslice
-OP *
-Perl_pp_aslice(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_aslice();
-}
-
-#undef  Perl_pp_atan2
-OP *
-Perl_pp_atan2(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_atan2();
-}
-
-#undef  Perl_pp_av2arylen
-OP *
-Perl_pp_av2arylen(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_av2arylen();
-}
-
-#undef  Perl_pp_backtick
-OP *
-Perl_pp_backtick(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_backtick();
-}
-
-#undef  Perl_pp_bind
-OP *
-Perl_pp_bind(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_bind();
-}
-
-#undef  Perl_pp_binmode
-OP *
-Perl_pp_binmode(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_binmode();
-}
-
-#undef  Perl_pp_bit_and
-OP *
-Perl_pp_bit_and(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_bit_and();
-}
-
-#undef  Perl_pp_bit_or
-OP *
-Perl_pp_bit_or(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_bit_or();
-}
-
-#undef  Perl_pp_bit_xor
-OP *
-Perl_pp_bit_xor(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_bit_xor();
-}
-
-#undef  Perl_pp_bless
-OP *
-Perl_pp_bless(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_bless();
-}
-
-#undef  Perl_pp_caller
-OP *
-Perl_pp_caller(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_caller();
-}
-
-#undef  Perl_pp_chdir
-OP *
-Perl_pp_chdir(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_chdir();
-}
-
-#undef  Perl_pp_chmod
-OP *
-Perl_pp_chmod(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_chmod();
-}
-
-#undef  Perl_pp_chomp
-OP *
-Perl_pp_chomp(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_chomp();
-}
-
-#undef  Perl_pp_chop
-OP *
-Perl_pp_chop(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_chop();
-}
-
-#undef  Perl_pp_chown
-OP *
-Perl_pp_chown(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_chown();
-}
-
-#undef  Perl_pp_chr
-OP *
-Perl_pp_chr(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_chr();
-}
-
-#undef  Perl_pp_chroot
-OP *
-Perl_pp_chroot(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_chroot();
-}
-
-#undef  Perl_pp_close
-OP *
-Perl_pp_close(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_close();
-}
-
-#undef  Perl_pp_closedir
-OP *
-Perl_pp_closedir(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_closedir();
-}
-
-#undef  Perl_pp_complement
-OP *
-Perl_pp_complement(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_complement();
-}
-
-#undef  Perl_pp_concat
-OP *
-Perl_pp_concat(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_concat();
-}
-
-#undef  Perl_pp_cond_expr
-OP *
-Perl_pp_cond_expr(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_cond_expr();
-}
-
-#undef  Perl_pp_connect
-OP *
-Perl_pp_connect(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_connect();
-}
-
-#undef  Perl_pp_const
-OP *
-Perl_pp_const(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_const();
-}
-
-#undef  Perl_pp_cos
-OP *
-Perl_pp_cos(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_cos();
-}
-
-#undef  Perl_pp_crypt
-OP *
-Perl_pp_crypt(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_crypt();
-}
-
-#undef  Perl_pp_dbmclose
-OP *
-Perl_pp_dbmclose(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_dbmclose();
-}
-
-#undef  Perl_pp_dbmopen
-OP *
-Perl_pp_dbmopen(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_dbmopen();
-}
-
-#undef  Perl_pp_dbstate
-OP *
-Perl_pp_dbstate(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_dbstate();
-}
-
-#undef  Perl_pp_defined
-OP *
-Perl_pp_defined(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_defined();
-}
-
-#undef  Perl_pp_delete
-OP *
-Perl_pp_delete(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_delete();
-}
-
-#undef  Perl_pp_die
-OP *
-Perl_pp_die(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_die();
-}
-
-#undef  Perl_pp_divide
-OP *
-Perl_pp_divide(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_divide();
-}
-
-#undef  Perl_pp_dofile
-OP *
-Perl_pp_dofile(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_dofile();
-}
-
-#undef  Perl_pp_dump
-OP *
-Perl_pp_dump(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_dump();
-}
-
-#undef  Perl_pp_each
-OP *
-Perl_pp_each(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_each();
-}
-
-#undef  Perl_pp_egrent
-OP *
-Perl_pp_egrent(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_egrent();
-}
-
-#undef  Perl_pp_ehostent
-OP *
-Perl_pp_ehostent(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_ehostent();
-}
-
-#undef  Perl_pp_enetent
-OP *
-Perl_pp_enetent(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_enetent();
-}
-
-#undef  Perl_pp_enter
-OP *
-Perl_pp_enter(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_enter();
-}
-
-#undef  Perl_pp_entereval
-OP *
-Perl_pp_entereval(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_entereval();
-}
-
-#undef  Perl_pp_enteriter
-OP *
-Perl_pp_enteriter(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_enteriter();
-}
-
-#undef  Perl_pp_enterloop
-OP *
-Perl_pp_enterloop(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_enterloop();
-}
-
-#undef  Perl_pp_entersub
-OP *
-Perl_pp_entersub(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_entersub();
-}
-
-#undef  Perl_pp_entertry
-OP *
-Perl_pp_entertry(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_entertry();
-}
-
-#undef  Perl_pp_enterwrite
-OP *
-Perl_pp_enterwrite(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_enterwrite();
-}
-
-#undef  Perl_pp_eof
-OP *
-Perl_pp_eof(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_eof();
-}
-
-#undef  Perl_pp_eprotoent
-OP *
-Perl_pp_eprotoent(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_eprotoent();
-}
-
-#undef  Perl_pp_epwent
-OP *
-Perl_pp_epwent(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_epwent();
-}
-
-#undef  Perl_pp_eq
-OP *
-Perl_pp_eq(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_eq();
-}
-
-#undef  Perl_pp_eservent
-OP *
-Perl_pp_eservent(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_eservent();
-}
-
-#undef  Perl_pp_exec
-OP *
-Perl_pp_exec(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_exec();
-}
-
-#undef  Perl_pp_exists
-OP *
-Perl_pp_exists(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_exists();
-}
-
-#undef  Perl_pp_exit
-OP *
-Perl_pp_exit(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_exit();
-}
-
-#undef  Perl_pp_exp
-OP *
-Perl_pp_exp(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_exp();
-}
-
-#undef  Perl_pp_fcntl
-OP *
-Perl_pp_fcntl(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_fcntl();
-}
-
-#undef  Perl_pp_fileno
-OP *
-Perl_pp_fileno(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_fileno();
-}
-
-#undef  Perl_pp_flip
-OP *
-Perl_pp_flip(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_flip();
-}
-
-#undef  Perl_pp_flock
-OP *
-Perl_pp_flock(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_flock();
-}
-
-#undef  Perl_pp_flop
-OP *
-Perl_pp_flop(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_flop();
-}
-
-#undef  Perl_pp_fork
-OP *
-Perl_pp_fork(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_fork();
-}
-
-#undef  Perl_pp_formline
-OP *
-Perl_pp_formline(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_formline();
-}
-
-#undef  Perl_pp_ftatime
-OP *
-Perl_pp_ftatime(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_ftatime();
-}
-
-#undef  Perl_pp_ftbinary
-OP *
-Perl_pp_ftbinary(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_ftbinary();
-}
-
-#undef  Perl_pp_ftblk
-OP *
-Perl_pp_ftblk(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_pp_ftblk();
-}
-
-#undef  Perl_pp_ftchr
-OP *
-Perl_pp_ftchr(pTHXo)
+#undef  Perl_newLOOPEX
+OP*
+Perl_newLOOPEX(pTHXo_ I32 type, OP* label)
 {
-    return ((CPerlObj*)pPerl)->Perl_pp_ftchr();
+    return ((CPerlObj*)pPerl)->Perl_newLOOPEX(type, label);
 }
 
-#undef  Perl_pp_ftctime
-OP *
-Perl_pp_ftctime(pTHXo)
+#undef  Perl_newLOOPOP
+OP*
+Perl_newLOOPOP(pTHXo_ I32 flags, I32 debuggable, OP* expr, OP* block)
 {
-    return ((CPerlObj*)pPerl)->Perl_pp_ftctime();
+    return ((CPerlObj*)pPerl)->Perl_newLOOPOP(flags, debuggable, expr, block);
 }
 
-#undef  Perl_pp_ftdir
-OP *
-Perl_pp_ftdir(pTHXo)
+#undef  Perl_newNULLLIST
+OP*
+Perl_newNULLLIST(pTHXo)
 {
-    return ((CPerlObj*)pPerl)->Perl_pp_ftdir();
+    return ((CPerlObj*)pPerl)->Perl_newNULLLIST();
 }
 
-#undef  Perl_pp_fteexec
-OP *
-Perl_pp_fteexec(pTHXo)
+#undef  Perl_newOP
+OP*
+Perl_newOP(pTHXo_ I32 optype, I32 flags)
 {
-    return ((CPerlObj*)pPerl)->Perl_pp_fteexec();
+    return ((CPerlOb