initial stub implementation of implicit thread/this
Gurusamy Sarathy [Mon, 7 Jun 1999 05:18:34 +0000 (05:18 +0000)]
pointer argument; builds/tests on Solaris, win32
hasn't been fixed up yet; proto.h, global.sym and
static function decls are now generated from a common
database in proto.pl; some inconsistently named
perl_foo() things are now Perl_foo(), compatibility
#defines provided; perl_foo() (lowercase 'p') reserved
for functions that take an explicit context argument;
next step: generate #define foo(a,b) Perl_foo(aTHX_ a,b)

p4raw-id: //depot/perl@3522

47 files changed:
XSUB.h
av.c
cop.h
deb.c
doio.c
doop.c
dump.c
ebcdic.c
embed.h
embed.pl
ext/POSIX/POSIX.xs
global.sym
globals.c
gv.c
gv.h
hv.c
malloc.c
mg.c
miniperlmain.c
objXSUB.h
op.c
opcode.h
opcode.pl
perl.c
perl.h
perl_exp.SH
perlio.c
perly.c
perly.y
pp.c
pp.sym
pp_ctl.c
pp_hot.c
pp_proto.h
pp_sys.c
proto.h
regcomp.c
regexec.c
run.c
scope.c
scope.h
sv.c
taint.c
toke.c
universal.c
utf8.c
util.c

diff --git a/XSUB.h b/XSUB.h
index 0af51d3..5c3ec64 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
            tmpsv = ST(1);                                              \
        else {                                                          \
            /* XXX GV_ADDWARN */                                        \
-           tmpsv = perl_get_sv(form("%s::%s", module,                  \
-                                 vn = "XS_VERSION"), FALSE);           \
+           tmpsv = get_sv(form("%s::%s", module,                       \
+                               vn = "XS_VERSION"), FALSE);             \
            if (!tmpsv || !SvOK(tmpsv))                                 \
-               tmpsv = perl_get_sv(form("%s::%s", module,              \
-                                     vn = "VERSION"), FALSE);          \
+               tmpsv = get_sv(form("%s::%s", module,                   \
+                                   vn = "VERSION"), FALSE);            \
        }                                                               \
        if (tmpsv && (!SvOK(tmpsv) || strNE(XS_VERSION, SvPV(tmpsv, n_a))))     \
            croak("%s object version %s does not match %s%s%s%s %_",    \
diff --git a/av.c b/av.c
index 1f0d94a..265eb71 100644 (file)
--- a/av.c
+++ b/av.c
  */
 
 #include "EXTERN.h"
+#define PERL_IN_AV_C
 #include "perl.h"
 
 void
-av_reify(AV *av)
+Perl_av_reify(pTHX_ AV *av)
 {
     I32 key;
     SV* sv;
@@ -46,7 +47,7 @@ av_reify(AV *av)
 }
 
 void
-av_extend(AV *av, I32 key)
+Perl_av_extend(pTHX_ AV *av, I32 key)
 {
     dTHR;                      /* only necessary if we have to extend stack */
     MAGIC *mg;
@@ -60,7 +61,7 @@ av_extend(AV *av, I32 key)
        PUSHs(SvTIED_obj((SV*)av, mg));
        PUSHs(sv_2mortal(newSViv(key+1)));
         PUTBACK;
-       perl_call_method("EXTEND", G_SCALAR|G_DISCARD);
+       call_method("EXTEND", G_SCALAR|G_DISCARD);
        POPSTACK;
        FREETMPS;
        LEAVE;
@@ -149,7 +150,7 @@ av_extend(AV *av, I32 key)
 }
 
 SV**
-av_fetch(register AV *av, I32 key, I32 lval)
+Perl_av_fetch(pTHX_ register AV *av, I32 key, I32 lval)
 {
     SV *sv;
 
@@ -196,7 +197,7 @@ av_fetch(register AV *av, I32 key, I32 lval)
 }
 
 SV**
-av_store(register AV *av, I32 key, SV *val)
+Perl_av_store(pTHX_ register AV *av, I32 key, SV *val)
 {
     SV** ary;
     U32  fill;
@@ -255,7 +256,7 @@ av_store(register AV *av, I32 key, SV *val)
 }
 
 AV *
-newAV(void)
+Perl_newAV(pTHX)
 {
     register AV *av;
 
@@ -269,7 +270,7 @@ newAV(void)
 }
 
 AV *
-av_make(register I32 size, register SV **strp)
+Perl_av_make(pTHX_ register I32 size, register SV **strp)
 {
     register AV *av;
     register I32 i;
@@ -295,7 +296,7 @@ av_make(register I32 size, register SV **strp)
 }
 
 AV *
-av_fake(register I32 size, register SV **strp)
+Perl_av_fake(pTHX_ register I32 size, register SV **strp)
 {
     register AV *av;
     register SV** ary;
@@ -318,7 +319,7 @@ av_fake(register I32 size, register SV **strp)
 }
 
 void
-av_clear(register AV *av)
+Perl_av_clear(pTHX_ register AV *av)
 {
     register I32 key;
     SV** ary;
@@ -359,7 +360,7 @@ av_clear(register AV *av)
 }
 
 void
-av_undef(register AV *av)
+Perl_av_undef(pTHX_ register AV *av)
 {
     register I32 key;
 
@@ -387,7 +388,7 @@ av_undef(register AV *av)
 }
 
 void
-av_push(register AV *av, SV *val)
+Perl_av_push(pTHX_ register AV *av, SV *val)
 {             
     MAGIC *mg;
     if (!av)
@@ -404,7 +405,7 @@ av_push(register AV *av, SV *val)
        PUSHs(val);
        PUTBACK;
        ENTER;
-       perl_call_method("PUSH", G_SCALAR|G_DISCARD);
+       call_method("PUSH", G_SCALAR|G_DISCARD);
        LEAVE;
        POPSTACK;
        return;
@@ -413,7 +414,7 @@ av_push(register AV *av, SV *val)
 }
 
 SV *
-av_pop(register AV *av)
+Perl_av_pop(pTHX_ register AV *av)
 {
     SV *retval;
     MAGIC* mg;
@@ -429,7 +430,7 @@ av_pop(register AV *av)
        XPUSHs(SvTIED_obj((SV*)av, mg));
        PUTBACK;
        ENTER;
-       if (perl_call_method("POP", G_SCALAR)) {
+       if (call_method("POP", G_SCALAR)) {
            retval = newSVsv(*PL_stack_sp--);    
        } else {    
            retval = &PL_sv_undef;
@@ -446,7 +447,7 @@ av_pop(register AV *av)
 }
 
 void
-av_unshift(register AV *av, register I32 num)
+Perl_av_unshift(pTHX_ register AV *av, register I32 num)
 {
     register I32 i;
     register SV **ary;
@@ -468,7 +469,7 @@ av_unshift(register AV *av, register I32 num)
        }
        PUTBACK;
        ENTER;
-       perl_call_method("UNSHIFT", G_SCALAR|G_DISCARD);
+       call_method("UNSHIFT", G_SCALAR|G_DISCARD);
        LEAVE;
        POPSTACK;
        return;
@@ -499,7 +500,7 @@ av_unshift(register AV *av, register I32 num)
 }
 
 SV *
-av_shift(register AV *av)
+Perl_av_shift(pTHX_ register AV *av)
 {
     SV *retval;
     MAGIC* mg;
@@ -515,7 +516,7 @@ av_shift(register AV *av)
        XPUSHs(SvTIED_obj((SV*)av, mg));
        PUTBACK;
        ENTER;
-       if (perl_call_method("SHIFT", G_SCALAR)) {
+       if (call_method("SHIFT", G_SCALAR)) {
            retval = newSVsv(*PL_stack_sp--);            
        } else {    
            retval = &PL_sv_undef;
@@ -536,13 +537,13 @@ av_shift(register AV *av)
 }
 
 I32
-av_len(register AV *av)
+Perl_av_len(pTHX_ register AV *av)
 {
     return AvFILL(av);
 }
 
 void
-av_fill(register AV *av, I32 fill)
+Perl_av_fill(pTHX_ register AV *av, I32 fill)
 {
     MAGIC *mg;
     if (!av)
@@ -559,7 +560,7 @@ av_fill(register AV *av, I32 fill)
        PUSHs(SvTIED_obj((SV*)av, mg));
        PUSHs(sv_2mortal(newSViv(fill+1)));
        PUTBACK;
-       perl_call_method("STORESIZE", G_SCALAR|G_DISCARD);
+       call_method("STORESIZE", G_SCALAR|G_DISCARD);
        POPSTACK;
        FREETMPS;
        LEAVE;
@@ -595,7 +596,7 @@ av_fill(register AV *av, I32 fill)
  */
 
 STATIC I32
-avhv_index_sv(SV* sv)
+avhv_index_sv(pTHX_ SV* sv)
 {
     I32 index = SvIV(sv);
     if (index < 1)
@@ -604,7 +605,7 @@ avhv_index_sv(SV* sv)
 }
 
 HV*
-avhv_keys(AV *av)
+Perl_avhv_keys(pTHX_ AV *av)
 {
     SV **keysp = av_fetch(av, 0, FALSE);
     if (keysp) {
@@ -622,7 +623,7 @@ avhv_keys(AV *av)
 }
 
 SV**
-avhv_fetch_ent(AV *av, SV *keysv, I32 lval, U32 hash)
+Perl_avhv_fetch_ent(pTHX_ AV *av, SV *keysv, I32 lval, U32 hash)
 {
     SV **indsvp;
     HV *keys = avhv_keys(av);
@@ -635,21 +636,21 @@ avhv_fetch_ent(AV *av, SV *keysv, I32 lval, U32 hash)
 }
 
 bool
-avhv_exists_ent(AV *av, SV *keysv, U32 hash)
+Perl_avhv_exists_ent(pTHX_ AV *av, SV *keysv, U32 hash)
 {
     HV *keys = avhv_keys(av);
     return hv_exists_ent(keys, keysv, hash);
 }
 
 HE *
-avhv_iternext(AV *av)
+Perl_avhv_iternext(pTHX_ AV *av)
 {
     HV *keys = avhv_keys(av);
     return hv_iternext(keys);
 }
 
 SV *
-avhv_iterval(AV *av, register HE *entry)
+Perl_avhv_iterval(pTHX_ AV *av, register HE *entry)
 {
     SV *sv = hv_iterval(avhv_keys(av), entry);
     return *av_fetch(av, avhv_index_sv(sv), TRUE);
diff --git a/cop.h b/cop.h
index 0f029ca..84afd58 100644 (file)
--- a/cop.h
+++ b/cop.h
@@ -291,7 +291,7 @@ struct context {
 #define G_ARRAY                1
 #define G_VOID         128     /* skip this bit when adding flags below */
 
-/* extra flags for perl_call_* routines */
+/* extra flags for Perl_call_* routines */
 #define G_DISCARD      2       /* Call FREETMPS. */
 #define G_EVAL         4       /* Assume eval {} around subroutine call. */
 #define G_NOARGS       8       /* Don't construct a @_ array. */
@@ -302,7 +302,7 @@ struct context {
 #define EVAL_NULL      0       /* not in an eval */
 #define EVAL_INEVAL    1       /* some enclosing scope is an eval */
 #define EVAL_WARNONLY  2       /* used by yywarn() when calling yyerror() */
-#define EVAL_KEEPERR   4       /* set by perl_call_sv if G_KEEPERR */
+#define EVAL_KEEPERR   4       /* set by Perl_call_sv if G_KEEPERR */
 
 /* Support for switching (stack and block) contexts.
  * This ensures magic doesn't invalidate local stack and cx pointers.
diff --git a/deb.c b/deb.c
index ad26cd6..252bb0b 100644 (file)
--- a/deb.c
+++ b/deb.c
  */
 
 #include "EXTERN.h"
+#define PERL_IN_DEB_C
 #include "perl.h"
 
 void
-deb(const char *pat, ...)
+Perl_deb(pTHX_ const char *pat, ...)
 {
 #ifdef DEBUGGING
     dTHR;
@@ -44,7 +45,7 @@ deb(const char *pat, ...)
 }
 
 void
-deb_growlevel(void)
+Perl_deb_growlevel(pTHX)
 {
 #ifdef DEBUGGING
     PL_dlmax += 128;
@@ -54,7 +55,7 @@ deb_growlevel(void)
 }
 
 I32
-debstackptrs(void)
+Perl_debstackptrs(pTHX)
 {
 #ifdef DEBUGGING
     dTHR;
@@ -70,7 +71,7 @@ debstackptrs(void)
 }
 
 I32
-debstack(void)
+Perl_debstack(pTHX)
 {
 #ifdef DEBUGGING
     dTHR;
diff --git a/doio.c b/doio.c
index e9f2a71..aac69f8 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -15,6 +15,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_DOIO_C
 #include "perl.h"
 
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
@@ -81,7 +82,7 @@
 #endif
 
 bool
-do_open(GV *gv, register char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp)
+Perl_do_open(pTHX_ GV *gv, register char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp)
 {
     register IO *io = GvIOn(gv);
     PerlIO *saveifp = Nullfp;
@@ -410,7 +411,7 @@ say_false:
 }
 
 PerlIO *
-nextargv(register GV *gv)
+Perl_nextargv(pTHX_ register GV *gv)
 {
     register SV *sv;
 #ifndef FLEXFILENAMES
@@ -580,7 +581,7 @@ nextargv(register GV *gv)
 
 #ifdef HAS_PIPE
 void
-do_pipe(SV *sv, GV *rgv, GV *wgv)
+Perl_do_pipe(pTHX_ SV *sv, GV *rgv, GV *wgv)
 {
     register IO *rstio;
     register IO *wstio;
@@ -625,7 +626,7 @@ badexit:
 
 /* explicit renamed to avoid C++ conflict    -- kja */
 bool
-do_close(GV *gv, bool not_implicit)
+Perl_do_close(pTHX_ GV *gv, bool not_implicit)
 {
     bool retval;
     IO *io;
@@ -659,7 +660,7 @@ do_close(GV *gv, bool not_implicit)
 }
 
 bool
-io_close(IO *io)
+Perl_io_close(pTHX_ IO *io)
 {
     bool retval = FALSE;
     int status;
@@ -690,7 +691,7 @@ io_close(IO *io)
 }
 
 bool
-do_eof(GV *gv)
+Perl_do_eof(pTHX_ GV *gv)
 {
     dTHR;
     register IO *io;
@@ -728,7 +729,7 @@ do_eof(GV *gv)
 }
 
 Off_t
-do_tell(GV *gv)
+Perl_do_tell(pTHX_ GV *gv)
 {
     register IO *io;
     register PerlIO *fp;
@@ -750,7 +751,7 @@ do_tell(GV *gv)
 }
 
 bool
-do_seek(GV *gv, Off_t pos, int whence)
+Perl_do_seek(pTHX_ GV *gv, Off_t pos, int whence)
 {
     register IO *io;
     register PerlIO *fp;
@@ -772,7 +773,7 @@ do_seek(GV *gv, Off_t pos, int whence)
 }
 
 Off_t
-do_sysseek(GV *gv, Off_t pos, int whence)
+Perl_do_sysseek(pTHX_ GV *gv, Off_t pos, int whence)
 {
     register IO *io;
     register PerlIO *fp;
@@ -789,7 +790,7 @@ do_sysseek(GV *gv, Off_t pos, int whence)
 }
 
 int
-do_binmode(PerlIO *fp, int iotype, int flag)
+Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int flag)
 {
     if (flag != TRUE)
        croak("panic: unsetting binmode"); /* Not implemented yet */
@@ -880,7 +881,7 @@ Off_t length;               /* length to set file to */
 #endif /* F_FREESP */
 
 bool
-do_print(register SV *sv, PerlIO *fp)
+Perl_do_print(pTHX_ register SV *sv, PerlIO *fp)
 {
     register char *tmps;
     STRLEN len;
@@ -930,7 +931,7 @@ do_print(register SV *sv, PerlIO *fp)
 }
 
 I32
-my_stat(ARGSproto)
+Perl_my_stat(pTHX_ ARGSproto)
 {
     djSP;
     IO *io;
@@ -984,7 +985,7 @@ my_stat(ARGSproto)
 }
 
 I32
-my_lstat(ARGSproto)
+Perl_my_lstat(pTHX_ ARGSproto)
 {
     djSP;
     SV *sv;
@@ -1011,7 +1012,7 @@ my_lstat(ARGSproto)
 }
 
 bool
-do_aexec(SV *really, register SV **mark, register SV **sp)
+Perl_do_aexec(pTHX_ SV *really, register SV **mark, register SV **sp)
 {
     register char **a;
     char *tmps;
@@ -1043,7 +1044,7 @@ do_aexec(SV *really, register SV **mark, register SV **sp)
 }
 
 void
-do_execfree(void)
+Perl_do_execfree(pTHX)
 {
     if (PL_Argv) {
        Safefree(PL_Argv);
@@ -1058,13 +1059,13 @@ do_execfree(void)
 #if !defined(OS2) && !defined(WIN32) && !defined(DJGPP)
 
 bool
-do_exec(char *cmd)
+Perl_do_exec(pTHX_ char *cmd)
 {
     return do_exec3(cmd,0,0);
 }
 
 bool
-do_exec3(char *cmd, int fd, int do_report)
+Perl_do_exec3(pTHX_ char *cmd, int fd, int do_report)
 {
     register char **a;
     register char *s;
@@ -1164,7 +1165,7 @@ do_exec3(char *cmd, int fd, int do_report)
 #endif /* OS2 || WIN32 */
 
 I32
-apply(I32 type, register SV **mark, register SV **sp)
+Perl_apply(pTHX_ I32 type, register SV **mark, register SV **sp)
 {
     dTHR;
     register I32 val;
@@ -1366,7 +1367,7 @@ nothing in the core.
 /* Do the permissions allow some operation?  Assumes statcache already set. */
 #ifndef VMS /* VMS' cando is in vms.c */
 I32
-cando(I32 bit, I32 effective, register struct stat *statbufp)
+Perl_cando(pTHX_ I32 bit, I32 effective, register struct stat *statbufp)
 {
 #ifdef DOSISH
     /* [Comments and code from Len Reed]
@@ -1418,7 +1419,7 @@ cando(I32 bit, I32 effective, register struct stat *statbufp)
 #endif /* ! VMS */
 
 I32
-ingroup(I32 testgid, I32 effective)
+Perl_ingroup(pTHX_ I32 testgid, I32 effective)
 {
     if (testgid == (effective ? PL_egid : PL_gid))
        return TRUE;
@@ -1442,7 +1443,7 @@ ingroup(I32 testgid, I32 effective)
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
 
 I32
-do_ipcget(I32 optype, SV **mark, SV **sp)
+Perl_do_ipcget(pTHX_ I32 optype, SV **mark, SV **sp)
 {
     dTHR;
     key_t key;
@@ -1475,7 +1476,7 @@ do_ipcget(I32 optype, SV **mark, SV **sp)
 }
 
 I32
-do_ipcctl(I32 optype, SV **mark, SV **sp)
+Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp)
 {
     dTHR;
     SV *astr;
@@ -1592,7 +1593,7 @@ do_ipcctl(I32 optype, SV **mark, SV **sp)
 }
 
 I32
-do_msgsnd(SV **mark, SV **sp)
+Perl_do_msgsnd(pTHX_ SV **mark, SV **sp)
 {
 #ifdef HAS_MSG
     dTHR;
@@ -1615,7 +1616,7 @@ do_msgsnd(SV **mark, SV **sp)
 }
 
 I32
-do_msgrcv(SV **mark, SV **sp)
+Perl_do_msgrcv(pTHX_ SV **mark, SV **sp)
 {
 #ifdef HAS_MSG
     dTHR;
@@ -1646,7 +1647,7 @@ do_msgrcv(SV **mark, SV **sp)
 }
 
 I32
-do_semop(SV **mark, SV **sp)
+Perl_do_semop(pTHX_ SV **mark, SV **sp)
 {
 #ifdef HAS_SEM
     dTHR;
@@ -1671,7 +1672,7 @@ do_semop(SV **mark, SV **sp)
 }
 
 I32
-do_shmio(I32 optype, SV **mark, SV **sp)
+Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp)
 {
 #ifdef HAS_SHM
     dTHR;
diff --git a/doop.c b/doop.c
index 0c9bb4f..7b5f751 100644 (file)
--- a/doop.c
+++ b/doop.c
  */
 
 #include "EXTERN.h"
+#define PERL_IN_DOOP_C
 #include "perl.h"
 
 #if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX)
 #include <signal.h>
 #endif
 
-#ifndef PERL_OBJECT
-static I32 do_trans_CC_simple (SV *sv);
-static I32 do_trans_CC_count (SV *sv);
-static I32 do_trans_CC_complex (SV *sv);
-static I32 do_trans_UU_simple (SV *sv);
-static I32 do_trans_UU_count (SV *sv);
-static I32 do_trans_UU_complex (SV *sv);
-static I32 do_trans_UC_simple (SV *sv);
-static I32 do_trans_CU_simple (SV *sv);
-static I32 do_trans_UC_trivial (SV *sv);
-static I32 do_trans_CU_trivial (SV *sv);
-#endif
-
 STATIC I32
-do_trans_CC_simple(SV *sv)
+do_trans_CC_simple(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -62,7 +50,7 @@ do_trans_CC_simple(SV *sv)
 }
 
 STATIC I32
-do_trans_CC_count(SV *sv)
+do_trans_CC_count(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -88,7 +76,7 @@ do_trans_CC_count(SV *sv)
 }
 
 STATIC I32
-do_trans_CC_complex(SV *sv)
+do_trans_CC_complex(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -145,7 +133,7 @@ do_trans_CC_complex(SV *sv)
 }
 
 STATIC I32
-do_trans_UU_simple(SV *sv)
+do_trans_UU_simple(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -197,7 +185,7 @@ do_trans_UU_simple(SV *sv)
 }
 
 STATIC I32
-do_trans_UU_count(SV *sv)
+do_trans_UU_count(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -224,7 +212,7 @@ do_trans_UU_count(SV *sv)
 }
 
 STATIC I32
-do_trans_UC_simple(SV *sv)
+do_trans_UC_simple(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -277,7 +265,7 @@ do_trans_UC_simple(SV *sv)
 }
 
 STATIC I32
-do_trans_CU_simple(SV *sv)
+do_trans_CU_simple(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -340,7 +328,7 @@ do_trans_CU_simple(SV *sv)
 /* utf-8 to latin-1 */
 
 STATIC I32
-do_trans_UC_trivial(SV *sv)
+do_trans_UC_trivial(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -372,7 +360,7 @@ do_trans_UC_trivial(SV *sv)
 /* latin-1 to utf-8 */
 
 STATIC I32
-do_trans_CU_trivial(SV *sv)
+do_trans_CU_trivial(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -406,7 +394,7 @@ do_trans_CU_trivial(SV *sv)
 }
 
 STATIC I32
-do_trans_UU_complex(SV *sv)
+do_trans_UU_complex(pTHX_ SV *sv)
 {
     dTHR;
     U8 *s;
@@ -591,7 +579,7 @@ do_trans_UU_complex(SV *sv)
 }
 
 I32
-do_trans(SV *sv)
+Perl_do_trans(pTHX_ SV *sv)
 {
     dTHR;
     STRLEN len;
@@ -642,7 +630,7 @@ do_trans(SV *sv)
 }
 
 void
-do_join(register SV *sv, SV *del, register SV **mark, register SV **sp)
+Perl_do_join(pTHX_ register SV *sv, SV *del, register SV **mark, register SV **sp)
 {
     SV **oldmark = mark;
     register I32 items = sp - mark;
@@ -697,7 +685,7 @@ do_join(register SV *sv, SV *del, register SV **mark, register SV **sp)
 }
 
 void
-do_sprintf(SV *sv, I32 len, SV **sarg)
+Perl_do_sprintf(pTHX_ SV *sv, I32 len, SV **sarg)
 {
     STRLEN patlen;
     char *pat = SvPV(*sarg, patlen);
@@ -710,7 +698,7 @@ do_sprintf(SV *sv, I32 len, SV **sarg)
 }
 
 void
-do_vecset(SV *sv)
+Perl_do_vecset(pTHX_ SV *sv)
 {
     SV *targ = LvTARG(sv);
     register I32 offset;
@@ -761,7 +749,7 @@ do_vecset(SV *sv)
 }
 
 void
-do_chop(register SV *astr, register SV *sv)
+Perl_do_chop(pTHX_ register SV *astr, register SV *sv)
 {
     STRLEN len;
     char *s;
@@ -824,7 +812,7 @@ do_chop(register SV *astr, register SV *sv)
 } 
 
 I32
-do_chomp(register SV *sv)
+Perl_do_chomp(pTHX_ register SV *sv)
 {
     dTHR;
     register I32 count;
@@ -902,7 +890,7 @@ do_chomp(register SV *sv)
 } 
 
 void
-do_vop(I32 optype, SV *sv, SV *left, SV *right)
+Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right)
 {
     dTHR;      /* just for taint */
 #ifdef LIBERAL
@@ -1017,7 +1005,7 @@ do_vop(I32 optype, SV *sv, SV *left, SV *right)
 }
 
 OP *
-do_kv(ARGSproto)
+Perl_do_kv(pTHX_ ARGSproto)
 {
     djSP;
     HV *hv = (HV*)POPs;
diff --git a/dump.c b/dump.c
index cc6682a..063d296 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -13,6 +13,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_DUMP_C
 #include "perl.h"
 
 #ifndef DBL_DIG
@@ -20,7 +21,7 @@
 #endif
 
 void
-dump_indent(I32 level, PerlIO *file, const char* pat, ...)
+Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
 {
     dTHR;
     va_list args;
@@ -32,7 +33,7 @@ dump_indent(I32 level, PerlIO *file, const char* pat, ...)
 }
 
 void
-dump_all(void)
+Perl_dump_all(pTHX)
 {
     dTHR;
     PerlIO_setlinebuf(Perl_debug_log);
@@ -42,7 +43,7 @@ dump_all(void)
 }
 
 void
-dump_packsubs(HV *stash)
+Perl_dump_packsubs(pTHX_ HV *stash)
 {
     dTHR;
     I32        i;
@@ -68,7 +69,7 @@ dump_packsubs(HV *stash)
 }
 
 void
-dump_sub(GV *gv)
+Perl_dump_sub(pTHX_ GV *gv)
 {
     SV *sv = sv_newmortal();
 
@@ -85,7 +86,7 @@ dump_sub(GV *gv)
 }
 
 void
-dump_form(GV *gv)
+Perl_dump_form(pTHX_ GV *gv)
 {
     SV *sv = sv_newmortal();
 
@@ -98,13 +99,13 @@ dump_form(GV *gv)
 }
 
 void
-dump_eval(void)
+Perl_dump_eval(pTHX)
 {
     op_dump(PL_eval_root);
 }
 
 char *
-pv_display(SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)
+Perl_pv_display(pTHX_ SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)
 {
     int truncated = 0;
     int nul_terminated = len > cur && pv[cur] == '\0';
@@ -143,7 +144,7 @@ pv_display(SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)
 }
 
 char *
-sv_peek(SV *sv)
+Perl_sv_peek(pTHX_ SV *sv)
 {
     SV *t = sv_newmortal();
     STRLEN n_a;
@@ -297,7 +298,7 @@ sv_peek(SV *sv)
 }
 
 void
-do_pmop_dump(I32 level, PerlIO *file, PMOP *pm)
+Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm)
 {
     char ch;
 
@@ -357,13 +358,13 @@ do_pmop_dump(I32 level, PerlIO *file, PMOP *pm)
 }
 
 void
-pmop_dump(PMOP *pm)
+Perl_pmop_dump(pTHX_ PMOP *pm)
 {
     do_pmop_dump(0, Perl_debug_log, pm);
 }
 
 void
-do_op_dump(I32 level, PerlIO *file, OP *o)
+Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o)
 {
     dTHR;
     STRLEN n_a;
@@ -580,13 +581,13 @@ do_op_dump(I32 level, PerlIO *file, OP *o)
 }
 
 void
-op_dump(OP *o)
+Perl_op_dump(pTHX_ OP *o)
 {
     do_op_dump(0, Perl_debug_log, o);
 }
 
 void
-gv_dump(GV *gv)
+Perl_gv_dump(pTHX_ GV *gv)
 {
     SV *sv;
 
@@ -607,7 +608,7 @@ gv_dump(GV *gv)
 }
 
 void
-do_magic_dump(I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
+Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
 {
     for (; mg; mg = mg->mg_moremagic) {
        dump_indent(level, file, "  MAGIC = 0x%lx\n", (long)mg);
@@ -695,13 +696,13 @@ do_magic_dump(I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool du
 }
 
 void
-magic_dump(MAGIC *mg)
+Perl_magic_dump(pTHX_ MAGIC *mg)
 {
     do_magic_dump(0, Perl_debug_log, mg, 0, 0, 0, 0);
 }
 
 void
-do_hv_dump(I32 level, PerlIO *file, char *name, HV *sv)
+Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv)
 {
     dump_indent(level, file, "%s = 0x%lx", name, (long)sv);
     if (sv && HvNAME(sv))
@@ -711,7 +712,7 @@ do_hv_dump(I32 level, PerlIO *file, char *name, HV *sv)
 }
 
 void
-do_gv_dump(I32 level, PerlIO *file, char *name, GV *sv)
+Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv)
 {
     dump_indent(level, file, "%s = 0x%lx", name, (long)sv);
     if (sv && GvNAME(sv))
@@ -721,7 +722,7 @@ do_gv_dump(I32 level, PerlIO *file, char *name, GV *sv)
 }
 
 void
-do_gvgv_dump(I32 level, PerlIO *file, char *name, GV *sv)
+Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv)
 {
     dump_indent(level, file, "%s = 0x%lx", name, (long)sv);
     if (sv && GvNAME(sv)) {
@@ -735,7 +736,7 @@ do_gvgv_dump(I32 level, PerlIO *file, char *name, GV *sv)
 }
 
 void
-do_sv_dump(I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
+Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
 {
     dTHR;
     SV *d = sv_newmortal();
@@ -1139,7 +1140,7 @@ do_sv_dump(I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops,
 }
 
 void
-sv_dump(SV *sv)
+Perl_sv_dump(pTHX_ SV *sv)
 {
     do_sv_dump(0, Perl_debug_log, sv, 0, 0, 0, 0);
 }
index 890bd08..14e3955 100644 (file)
--- a/ebcdic.c
+++ b/ebcdic.c
@@ -1,4 +1,5 @@
 #include "EXTERN.h"
+#define PERL_IN_EBCDIC_C
 #include "perl.h"
 
 /* in ASCII order, not that it matters */
diff --git a/embed.h b/embed.h
index c15013e..f7cf5bc 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -11,6 +11,8 @@
 
 #if !defined(PERL_OBJECT)
 
+#define ErrorNo                        Perl_ErrorNo
+#define GetVars                        Perl_GetVars
 #define Gv_AMupdate            Perl_Gv_AMupdate
 #define amagic_call            Perl_amagic_call
 #define append_elem            Perl_append_elem
 #define block_start            Perl_block_start
 #define boot_core_UNIVERSAL    Perl_boot_core_UNIVERSAL
 #define bset_obj_store         Perl_bset_obj_store
+#define call_argv              Perl_call_argv
+#define call_atexit            Perl_call_atexit
 #define call_list              Perl_call_list
+#define call_method            Perl_call_method
+#define call_pv                        Perl_call_pv
+#define call_sv                        Perl_call_sv
 #define cando                  Perl_cando
 #define cast_i32               Perl_cast_i32
 #define cast_iv                        Perl_cast_iv
 #define dump_mstats            Perl_dump_mstats
 #define dump_packsubs          Perl_dump_packsubs
 #define dump_sub               Perl_dump_sub
+#define eval_pv                        Perl_eval_pv
+#define eval_sv                        Perl_eval_sv
 #define fbm_compile            Perl_fbm_compile
 #define fbm_instr              Perl_fbm_instr
 #define filter_add             Perl_filter_add
 #define form                   Perl_form
 #define free_tmps              Perl_free_tmps
 #define gen_constant_list      Perl_gen_constant_list
+#define get_av                 Perl_get_av
+#define get_cv                 Perl_get_cv
+#define get_hv                 Perl_get_hv
 #define get_no_modify          Perl_get_no_modify
 #define get_op_descs           Perl_get_op_descs
 #define get_op_names           Perl_get_op_names
 #define get_opargs             Perl_get_opargs
+#define get_sv                 Perl_get_sv
 #define get_vtbl               Perl_get_vtbl
+#define getenv_len             Perl_getenv_len
 #define gp_free                        Perl_gp_free
 #define gp_ref                 Perl_gp_ref
 #define gv_AVadd               Perl_gv_AVadd
 #define ibcmp                  Perl_ibcmp
 #define ibcmp_locale           Perl_ibcmp_locale
 #define ingroup                        Perl_ingroup
+#define init_i18nl10n          Perl_init_i18nl10n
+#define init_i18nl14n          Perl_init_i18nl14n
 #define init_stacks            Perl_init_stacks
-#define init_thread_intern     Perl_init_thread_intern
 #define instr                  Perl_instr
 #define intro_my               Perl_intro_my
 #define invert                 Perl_invert
 #define newUNOP                        Perl_newUNOP
 #define newWHILEOP             Perl_newWHILEOP
 #define newXS                  Perl_newXS
+#define new_collate            Perl_new_collate
+#define new_ctype              Perl_new_ctype
+#define new_numeric            Perl_new_numeric
 #define new_stackinfo          Perl_new_stackinfo
 #define new_struct_thread      Perl_new_struct_thread
 #define nextargv               Perl_nextargv
 #define regnext                        Perl_regnext
 #define regprop                        Perl_regprop
 #define repeatcpy              Perl_repeatcpy
+#define require_pv             Perl_require_pv
 #define rninstr                        Perl_rninstr
 #define rsignal                        Perl_rsignal
 #define rsignal_restore                Perl_rsignal_restore
 #define scan_oct               Perl_scan_oct
 #define scope                  Perl_scope
 #define screaminstr            Perl_screaminstr
+#define set_numeric_local      Perl_set_numeric_local
+#define set_numeric_standard   Perl_set_numeric_standard
 #define setdefout              Perl_setdefout
 #define setenv_getix           Perl_setenv_getix
 #define share_hek              Perl_share_hek
 
 #else  /* PERL_OBJECT */
 
-#define Gv_AMupdate            CPerlObj::Perl_Gv_AMupdate
+#define Perl_ErrorNo           CPerlObj::Perl_ErrorNo
+#define Perl_GetVars           CPerlObj::Perl_GetVars
+#define Perl_Gv_AMupdate       CPerlObj::Perl_Gv_AMupdate
+#define Perl_amagic_call       CPerlObj::Perl_amagic_call
+#define Perl_append_elem       CPerlObj::Perl_append_elem
+#define Perl_append_list       CPerlObj::Perl_append_list
+#define Perl_apply             CPerlObj::Perl_apply
+#define Perl_assertref         CPerlObj::Perl_assertref
+#define Perl_av_clear          CPerlObj::Perl_av_clear
+#define Perl_av_extend         CPerlObj::Perl_av_extend
+#define Perl_av_fake           CPerlObj::Perl_av_fake
+#define Perl_av_fetch          CPerlObj::Perl_av_fetch
+#define Perl_av_fill           CPerlObj::Perl_av_fill
+#define Perl_av_len            CPerlObj::Perl_av_len
+#define Perl_av_make           CPerlObj::Perl_av_make
+#define Perl_av_pop            CPerlObj::Perl_av_pop
+#define Perl_av_push           CPerlObj::Perl_av_push
+#define Perl_av_reify          CPerlObj::Perl_av_reify
+#define Perl_av_shift          CPerlObj::Perl_av_shift
+#define Perl_av_store          CPerlObj::Perl_av_store
+#define Perl_av_undef          CPerlObj::Perl_av_undef
+#define Perl_av_unshift                CPerlObj::Perl_av_unshift
+#define Perl_avhv_exists_ent   CPerlObj::Perl_avhv_exists_ent
+#define Perl_avhv_fetch_ent    CPerlObj::Perl_avhv_fetch_ent
+#define Perl_avhv_iternext     CPerlObj::Perl_avhv_iternext
+#define Perl_avhv_iterval      CPerlObj::Perl_avhv_iterval
+#define Perl_avhv_keys         CPerlObj::Perl_avhv_keys
+#define Perl_bind_match                CPerlObj::Perl_bind_match
+#define Perl_block_end         CPerlObj::Perl_block_end
+#define Perl_block_gimme       CPerlObj::Perl_block_gimme
+#define Perl_block_start       CPerlObj::Perl_block_start
+#define Perl_boot_core_UNIVERSAL       CPerlObj::Perl_boot_core_UNIVERSAL
+#define Perl_bset_obj_store    CPerlObj::Perl_bset_obj_store
+#define Perl_call_argv         CPerlObj::Perl_call_argv
+#define Perl_call_atexit       CPerlObj::Perl_call_atexit
+#define Perl_call_list         CPerlObj::Perl_call_list
+#define Perl_call_method       CPerlObj::Perl_call_method
+#define Perl_call_pv           CPerlObj::Perl_call_pv
+#define Perl_call_sv           CPerlObj::Perl_call_sv
+#define Perl_cando             CPerlObj::Perl_cando
+#define Perl_cast_i32          CPerlObj::Perl_cast_i32
+#define Perl_cast_iv           CPerlObj::Perl_cast_iv
+#define Perl_cast_ulong                CPerlObj::Perl_cast_ulong
+#define Perl_cast_uv           CPerlObj::Perl_cast_uv
+#define Perl_ck_anoncode       CPerlObj::Perl_ck_anoncode
+#define Perl_ck_bitop          CPerlObj::Perl_ck_bitop
+#define Perl_ck_concat         CPerlObj::Perl_ck_concat
+#define Perl_ck_defined                CPerlObj::Perl_ck_defined
+#define Perl_ck_delete         CPerlObj::Perl_ck_delete
+#define Perl_ck_eof            CPerlObj::Perl_ck_eof
+#define Perl_ck_eval           CPerlObj::Perl_ck_eval
+#define Perl_ck_exec           CPerlObj::Perl_ck_exec
+#define Perl_ck_exists         CPerlObj::Perl_ck_exists
+#define Perl_ck_ftst           CPerlObj::Perl_ck_ftst
+#define Perl_ck_fun            CPerlObj::Perl_ck_fun
+#define Perl_ck_fun_locale     CPerlObj::Perl_ck_fun_locale
+#define Perl_ck_glob           CPerlObj::Perl_ck_glob
+#define Perl_ck_grep           CPerlObj::Perl_ck_grep
+#define Perl_ck_index          CPerlObj::Perl_ck_index
+#define Perl_ck_lengthconst    CPerlObj::Perl_ck_lengthconst
+#define Perl_ck_lfun           CPerlObj::Perl_ck_lfun
+#define Perl_ck_listiob                CPerlObj::Perl_ck_listiob
+#define Perl_ck_match          CPerlObj::Perl_ck_match
+#define Perl_ck_null           CPerlObj::Perl_ck_null
+#define Perl_ck_repeat         CPerlObj::Perl_ck_repeat
+#define Perl_ck_require                CPerlObj::Perl_ck_require
+#define Perl_ck_rfun           CPerlObj::Perl_ck_rfun
+#define Perl_ck_rvconst                CPerlObj::Perl_ck_rvconst
+#define Perl_ck_scmp           CPerlObj::Perl_ck_scmp
+#define Perl_ck_select         CPerlObj::Perl_ck_select
+#define Perl_ck_shift          CPerlObj::Perl_ck_shift
+#define Perl_ck_sort           CPerlObj::Perl_ck_sort
+#define Perl_ck_spair          CPerlObj::Perl_ck_spair
+#define Perl_ck_split          CPerlObj::Perl_ck_split
+#define Perl_ck_subr           CPerlObj::Perl_ck_subr
+#define Perl_ck_svconst                CPerlObj::Perl_ck_svconst
+#define Perl_ck_trunc          CPerlObj::Perl_ck_trunc
+#define Perl_condpair_magic    CPerlObj::Perl_condpair_magic
+#define Perl_convert           CPerlObj::Perl_convert
+#define Perl_croak             CPerlObj::Perl_croak
+#define Perl_cv_ckproto                CPerlObj::Perl_cv_ckproto
+#define Perl_cv_clone          CPerlObj::Perl_cv_clone
+#define Perl_cv_const_sv       CPerlObj::Perl_cv_const_sv
+#define Perl_cv_undef          CPerlObj::Perl_cv_undef
+#define Perl_cx_dump           CPerlObj::Perl_cx_dump
+#define Perl_cxinc             CPerlObj::Perl_cxinc
+#define Perl_deb               CPerlObj::Perl_deb
+#define Perl_deb_growlevel     CPerlObj::Perl_deb_growlevel
+#define Perl_debop             CPerlObj::Perl_debop
+#define Perl_debprofdump       CPerlObj::Perl_debprofdump
+#define Perl_debstack          CPerlObj::Perl_debstack
+#define Perl_debstackptrs      CPerlObj::Perl_debstackptrs
+#define Perl_default_protect   CPerlObj::Perl_default_protect
+#define Perl_delimcpy          CPerlObj::Perl_delimcpy
+#define Perl_deprecate         CPerlObj::Perl_deprecate
+#define Perl_die               CPerlObj::Perl_die
+#define Perl_die_where         CPerlObj::Perl_die_where
+#define Perl_do_aexec          CPerlObj::Perl_do_aexec
+#define Perl_do_binmode                CPerlObj::Perl_do_binmode
+#define Perl_do_chomp          CPerlObj::Perl_do_chomp
+#define Perl_do_chop           CPerlObj::Perl_do_chop
+#define Perl_do_close          CPerlObj::Perl_do_close
+#define Perl_do_eof            CPerlObj::Perl_do_eof
+#define Perl_do_exec           CPerlObj::Perl_do_exec
+#define Perl_do_exec3          CPerlObj::Perl_do_exec3
+#define Perl_do_execfree       CPerlObj::Perl_do_execfree
+#define Perl_do_gv_dump                CPerlObj::Perl_do_gv_dump
+#define Perl_do_gvgv_dump      CPerlObj::Perl_do_gvgv_dump
+#define Perl_do_hv_dump                CPerlObj::Perl_do_hv_dump
+#define Perl_do_ipcctl         CPerlObj::Perl_do_ipcctl
+#define Perl_do_ipcget         CPerlObj::Perl_do_ipcget
+#define Perl_do_join           CPerlObj::Perl_do_join
+#define Perl_do_kv             CPerlObj::Perl_do_kv
+#define Perl_do_magic_dump     CPerlObj::Perl_do_magic_dump
+#define Perl_do_msgrcv         CPerlObj::Perl_do_msgrcv
+#define Perl_do_msgsnd         CPerlObj::Perl_do_msgsnd
+#define Perl_do_op_dump                CPerlObj::Perl_do_op_dump
+#define Perl_do_open           CPerlObj::Perl_do_open
+#define Perl_do_pipe           CPerlObj::Perl_do_pipe
+#define Perl_do_pmop_dump      CPerlObj::Perl_do_pmop_dump
+#define Perl_do_print          CPerlObj::Perl_do_print
+#define Perl_do_readline       CPerlObj::Perl_do_readline
+#define Perl_do_seek           CPerlObj::Perl_do_seek
+#define Perl_do_semop          CPerlObj::Perl_do_semop
+#define Perl_do_shmio          CPerlObj::Perl_do_shmio
+#define Perl_do_sprintf                CPerlObj::Perl_do_sprintf
+#define Perl_do_sv_dump                CPerlObj::Perl_do_sv_dump
+#define Perl_do_sysseek                CPerlObj::Perl_do_sysseek
+#define Perl_do_tell           CPerlObj::Perl_do_tell
+#define Perl_do_trans          CPerlObj::Perl_do_trans
+#define Perl_do_vecset         CPerlObj::Perl_do_vecset
+#define Perl_do_vop            CPerlObj::Perl_do_vop
+#define Perl_dofile            CPerlObj::Perl_dofile
+#define Perl_dounwind          CPerlObj::Perl_dounwind
+#define Perl_dowantarray       CPerlObj::Perl_dowantarray
+#define Perl_dump_all          CPerlObj::Perl_dump_all
+#define Perl_dump_eval         CPerlObj::Perl_dump_eval
+#define Perl_dump_fds          CPerlObj::Perl_dump_fds
+#define Perl_dump_form         CPerlObj::Perl_dump_form
+#define Perl_dump_indent       CPerlObj::Perl_dump_indent
+#define Perl_dump_mstats       CPerlObj::Perl_dump_mstats
+#define Perl_dump_packsubs     CPerlObj::Perl_dump_packsubs
+#define Perl_dump_sub          CPerlObj::Perl_dump_sub
+#define Perl_eval_pv           CPerlObj::Perl_eval_pv
+#define Perl_eval_sv           CPerlObj::Perl_eval_sv
+#define Perl_fbm_compile       CPerlObj::Perl_fbm_compile
+#define Perl_fbm_instr         CPerlObj::Perl_fbm_instr
+#define Perl_filter_add                CPerlObj::Perl_filter_add
+#define Perl_filter_del                CPerlObj::Perl_filter_del
+#define Perl_filter_read       CPerlObj::Perl_filter_read
+#define Perl_find_script       CPerlObj::Perl_find_script
+#define Perl_find_threadsv     CPerlObj::Perl_find_threadsv
+#define Perl_fold_constants    CPerlObj::Perl_fold_constants
+#define Perl_force_list                CPerlObj::Perl_force_list
+#define Perl_form              CPerlObj::Perl_form
+#define Perl_free_tmps         CPerlObj::Perl_free_tmps
+#define Perl_gen_constant_list CPerlObj::Perl_gen_constant_list
+#define Perl_get_av            CPerlObj::Perl_get_av
+#define Perl_get_cv            CPerlObj::Perl_get_cv
+#define Perl_get_hv            CPerlObj::Perl_get_hv
+#define Perl_get_no_modify     CPerlObj::Perl_get_no_modify
+#define Perl_get_op_descs      CPerlObj::Perl_get_op_descs
+#define Perl_get_op_names      CPerlObj::Perl_get_op_names
+#define Perl_get_opargs                CPerlObj::Perl_get_opargs
+#define Perl_get_sv            CPerlObj::Perl_get_sv
+#define Perl_get_vtbl          CPerlObj::Perl_get_vtbl
+#define Perl_getenv_len                CPerlObj::Perl_getenv_len
+#define Perl_gp_free           CPerlObj::Perl_gp_free
+#define Perl_gp_ref            CPerlObj::Perl_gp_ref
+#define Perl_gv_AVadd          CPerlObj::Perl_gv_AVadd
+#define Perl_gv_HVadd          CPerlObj::Perl_gv_HVadd
+#define Perl_gv_IOadd          CPerlObj::Perl_gv_IOadd
+#define Perl_gv_autoload4      CPerlObj::Perl_gv_autoload4
+#define Perl_gv_check          CPerlObj::Perl_gv_check
+#define Perl_gv_dump           CPerlObj::Perl_gv_dump
+#define Perl_gv_efullname      CPerlObj::Perl_gv_efullname
+#define Perl_gv_efullname3     CPerlObj::Perl_gv_efullname3
+#define Perl_gv_fetchfile      CPerlObj::Perl_gv_fetchfile
+#define Perl_gv_fetchmeth      CPerlObj::Perl_gv_fetchmeth
+#define Perl_gv_fetchmethod    CPerlObj::Perl_gv_fetchmethod
+#define Perl_gv_fetchmethod_autoload   CPerlObj::Perl_gv_fetchmethod_autoload
+#define Perl_gv_fetchpv                CPerlObj::Perl_gv_fetchpv
+#define Perl_gv_fullname       CPerlObj::Perl_gv_fullname
+#define Perl_gv_fullname3      CPerlObj::Perl_gv_fullname3
+#define Perl_gv_init           CPerlObj::Perl_gv_init
+#define Perl_gv_stashpv                CPerlObj::Perl_gv_stashpv
+#define Perl_gv_stashpvn       CPerlObj::Perl_gv_stashpvn
+#define Perl_gv_stashsv                CPerlObj::Perl_gv_stashsv
+#define Perl_hv_clear          CPerlObj::Perl_hv_clear
+#define Perl_hv_delayfree_ent  CPerlObj::Perl_hv_delayfree_ent
+#define Perl_hv_delete         CPerlObj::Perl_hv_delete
+#define Perl_hv_delete_ent     CPerlObj::Perl_hv_delete_ent
+#define Perl_hv_exists         CPerlObj::Perl_hv_exists
+#define Perl_hv_exists_ent     CPerlObj::Perl_hv_exists_ent
+#define Perl_hv_fetch          CPerlObj::Perl_hv_fetch
+#define Perl_hv_fetch_ent      CPerlObj::Perl_hv_fetch_ent
+#define Perl_hv_free_ent       CPerlObj::Perl_hv_free_ent
+#define Perl_hv_iterinit       CPerlObj::Perl_hv_iterinit
+#define Perl_hv_iterkey                CPerlObj::Perl_hv_iterkey
+#define Perl_hv_iterkeysv      CPerlObj::Perl_hv_iterkeysv
+#define Perl_hv_iternext       CPerlObj::Perl_hv_iternext
+#define Perl_hv_iternextsv     CPerlObj::Perl_hv_iternextsv
+#define Perl_hv_iterval                CPerlObj::Perl_hv_iterval
+#define Perl_hv_ksplit         CPerlObj::Perl_hv_ksplit
+#define Perl_hv_magic          CPerlObj::Perl_hv_magic
+#define Perl_hv_store          CPerlObj::Perl_hv_store
+#define Perl_hv_store_ent      CPerlObj::Perl_hv_store_ent
+#define Perl_hv_undef          CPerlObj::Perl_hv_undef
+#define Perl_ibcmp             CPerlObj::Perl_ibcmp
+#define Perl_ibcmp_locale      CPerlObj::Perl_ibcmp_locale
+#define Perl_ingroup           CPerlObj::Perl_ingroup
+#define Perl_init_i18nl10n     CPerlObj::Perl_init_i18nl10n
+#define Perl_init_i18nl14n     CPerlObj::Perl_init_i18nl14n
+#define Perl_init_stacks       CPerlObj::Perl_init_stacks
+#define Perl_instr             CPerlObj::Perl_instr
+#define Perl_intro_my          CPerlObj::Perl_intro_my
+#define Perl_invert            CPerlObj::Perl_invert
+#define Perl_io_close          CPerlObj::Perl_io_close
+#define Perl_is_uni_alnum      CPerlObj::Perl_is_uni_alnum
+#define Perl_is_uni_alnum_lc   CPerlObj::Perl_is_uni_alnum_lc
+#define Perl_is_uni_alpha      CPerlObj::Perl_is_uni_alpha
+#define Perl_is_uni_alpha_lc   CPerlObj::Perl_is_uni_alpha_lc
+#define Perl_is_uni_digit      CPerlObj::Perl_is_uni_digit
+#define Perl_is_uni_digit_lc   CPerlObj::Perl_is_uni_digit_lc
+#define Perl_is_uni_idfirst    CPerlObj::Perl_is_uni_idfirst
+#define Perl_is_uni_idfirst_lc CPerlObj::Perl_is_uni_idfirst_lc
+#define Perl_is_uni_lower      CPerlObj::Perl_is_uni_lower
+#define Perl_is_uni_lower_lc   CPerlObj::Perl_is_uni_lower_lc
+#define Perl_is_uni_print      CPerlObj::Perl_is_uni_print
+#define Perl_is_uni_print_lc   CPerlObj::Perl_is_uni_print_lc
+#define Perl_is_uni_space      CPerlObj::Perl_is_uni_space
+#define Perl_is_uni_space_lc   CPerlObj::Perl_is_uni_space_lc
+#define Perl_is_uni_upper      CPerlObj::Perl_is_uni_upper
+#define Perl_is_uni_upper_lc   CPerlObj::Perl_is_uni_upper_lc
+#define Perl_is_utf8_alnum     CPerlObj::Perl_is_utf8_alnum
+#define Perl_is_utf8_alpha     CPerlObj::Perl_is_utf8_alpha
+#define Perl_is_utf8_digit     CPerlObj::Perl_is_utf8_digit
+#define Perl_is_utf8_idfirst   CPerlObj::Perl_is_utf8_idfirst
+#define Perl_is_utf8_lower     CPerlObj::Perl_is_utf8_lower
+#define Perl_is_utf8_mark      CPerlObj::Perl_is_utf8_mark
+#define Perl_is_utf8_print     CPerlObj::Perl_is_utf8_print
+#define Perl_is_utf8_space     CPerlObj::Perl_is_utf8_space
+#define Perl_is_utf8_upper     CPerlObj::Perl_is_utf8_upper
+#define Perl_jmaybe            CPerlObj::Perl_jmaybe
+#define Perl_keyword           CPerlObj::Perl_keyword
+#define Perl_leave_scope       CPerlObj::Perl_leave_scope
+#define Perl_lex_end           CPerlObj::Perl_lex_end
+#define Perl_lex_start         CPerlObj::Perl_lex_start
+#define Perl_linklist          CPerlObj::Perl_linklist
+#define Perl_list              CPerlObj::Perl_list
+#define Perl_listkids          CPerlObj::Perl_listkids
+#define Perl_localize          CPerlObj::Perl_localize
+#define Perl_looks_like_number CPerlObj::Perl_looks_like_number
+#define Perl_magic_clear_all_env       CPerlObj::Perl_magic_clear_all_env
+#define Perl_magic_clearenv    CPerlObj::Perl_magic_clearenv
+#define Perl_magic_clearpack   CPerlObj::Perl_magic_clearpack
+#define Perl_magic_clearsig    CPerlObj::Perl_magic_clearsig
+#define Perl_magic_dump                CPerlObj::Perl_magic_dump
+#define Perl_magic_existspack  CPerlObj::Perl_magic_existspack
+#define Perl_magic_freeregexp  CPerlObj::Perl_magic_freeregexp
+#define Perl_magic_get         CPerlObj::Perl_magic_get
+#define Perl_magic_getarylen   CPerlObj::Perl_magic_getarylen
+#define Perl_magic_getdefelem  CPerlObj::Perl_magic_getdefelem
+#define Perl_magic_getglob     CPerlObj::Perl_magic_getglob
+#define Perl_magic_getnkeys    CPerlObj::Perl_magic_getnkeys
+#define Perl_magic_getpack     CPerlObj::Perl_magic_getpack
+#define Perl_magic_getpos      CPerlObj::Perl_magic_getpos
+#define Perl_magic_getsig      CPerlObj::Perl_magic_getsig
+#define Perl_magic_getsubstr   CPerlObj::Perl_magic_getsubstr
+#define Perl_magic_gettaint    CPerlObj::Perl_magic_gettaint
+#define Perl_magic_getuvar     CPerlObj::Perl_magic_getuvar
+#define Perl_magic_getvec      CPerlObj::Perl_magic_getvec
+#define Perl_magic_killbackrefs        CPerlObj::Perl_magic_killbackrefs
+#define Perl_magic_len         CPerlObj::Perl_magic_len
+#define Perl_magic_mutexfree   CPerlObj::Perl_magic_mutexfree
+#define Perl_magic_nextpack    CPerlObj::Perl_magic_nextpack
+#define Perl_magic_regdata_cnt CPerlObj::Perl_magic_regdata_cnt
+#define Perl_magic_regdatum_get        CPerlObj::Perl_magic_regdatum_get
+#define Perl_magic_set         CPerlObj::Perl_magic_set
+#define Perl_magic_set_all_env CPerlObj::Perl_magic_set_all_env
+#define Perl_magic_setamagic   CPerlObj::Perl_magic_setamagic
+#define Perl_magic_setarylen   CPerlObj::Perl_magic_setarylen
+#define Perl_magic_setbm       CPerlObj::Perl_magic_setbm
+#define Perl_magic_setcollxfrm CPerlObj::Perl_magic_setcollxfrm
+#define Perl_magic_setdbline   CPerlObj::Perl_magic_setdbline
+#define Perl_magic_setdefelem  CPerlObj::Perl_magic_setdefelem
+#define Perl_magic_setenv      CPerlObj::Perl_magic_setenv
+#define Perl_magic_setfm       CPerlObj::Perl_magic_setfm
+#define Perl_magic_setglob     CPerlObj::Perl_magic_setglob
+#define Perl_magic_setisa      CPerlObj::Perl_magic_setisa
+#define Perl_magic_setmglob    CPerlObj::Perl_magic_setmglob
+#define Perl_magic_setnkeys    CPerlObj::Perl_magic_setnkeys
+#define Perl_magic_setpack     CPerlObj::Perl_magic_setpack
+#define Perl_magic_setpos      CPerlObj::Perl_magic_setpos
+#define Perl_magic_setsig      CPerlObj::Perl_magic_setsig
+#define Perl_magic_setsubstr   CPerlObj::Perl_magic_setsubstr
+#define Perl_magic_settaint    CPerlObj::Perl_magic_settaint
+#define Perl_magic_setuvar     CPerlObj::Perl_magic_setuvar
+#define Perl_magic_setvec      CPerlObj::Perl_magic_setvec
+#define Perl_magic_sizepack    CPerlObj::Perl_magic_sizepack
+#define Perl_magic_wipepack    CPerlObj::Perl_magic_wipepack
+#define Perl_magicname         CPerlObj::Perl_magicname
+#define Perl_malloced_size     CPerlObj::Perl_malloced_size
+#define Perl_markstack_grow    CPerlObj::Perl_markstack_grow
+#define Perl_mem_collxfrm      CPerlObj::Perl_mem_collxfrm
+#define Perl_mess              CPerlObj::Perl_mess
+#define Perl_mg_clear          CPerlObj::Perl_mg_clear
+#define Perl_mg_copy           CPerlObj::Perl_mg_copy
+#define Perl_mg_find           CPerlObj::Perl_mg_find
+#define Perl_mg_free           CPerlObj::Perl_mg_free
+#define Perl_mg_get            CPerlObj::Perl_mg_get
+#define Perl_mg_length         CPerlObj::Perl_mg_length
+#define Perl_mg_magical                CPerlObj::Perl_mg_magical
+#define Perl_mg_set            CPerlObj::Perl_mg_set
+#define Perl_mg_size           CPerlObj::Perl_mg_size
+#define Perl_mod               CPerlObj::Perl_mod
+#define Perl_moreswitches      CPerlObj::Perl_moreswitches
+#define Perl_my                        CPerlObj::Perl_my
+#define Perl_my_bcopy          CPerlObj::Perl_my_bcopy
+#define Perl_my_bzero          CPerlObj::Perl_my_bzero
+#define Perl_my_chsize         CPerlObj::Perl_my_chsize
+#define Perl_my_exit           CPerlObj::Perl_my_exit
+#define Perl_my_failure_exit   CPerlObj::Perl_my_failure_exit
+#define Perl_my_fflush_all     CPerlObj::Perl_my_fflush_all
+#define Perl_my_htonl          CPerlObj::Perl_my_htonl
+#define Perl_my_lstat          CPerlObj::Perl_my_lstat
+#define Perl_my_memcmp         CPerlObj::Perl_my_memcmp
+#define Perl_my_memset         CPerlObj::Perl_my_memset
+#define Perl_my_ntohl          CPerlObj::Perl_my_ntohl
+#define Perl_my_pclose         CPerlObj::Perl_my_pclose
+#define Perl_my_popen          CPerlObj::Perl_my_popen
+#define Perl_my_setenv         CPerlObj::Perl_my_setenv
+#define Perl_my_stat           CPerlObj::Perl_my_stat
+#define Perl_my_swap           CPerlObj::Perl_my_swap
+#define Perl_my_unexec         CPerlObj::Perl_my_unexec
+#define Perl_newANONHASH       CPerlObj::Perl_newANONHASH
+#define Perl_newANONLIST       CPerlObj::Perl_newANONLIST
+#define Perl_newANONSUB                CPerlObj::Perl_newANONSUB
+#define Perl_newASSIGNOP       CPerlObj::Perl_newASSIGNOP
+#define Perl_newAV             CPerlObj::Perl_newAV
+#define Perl_newAVREF          CPerlObj::Perl_newAVREF
+#define Perl_newBINOP          CPerlObj::Perl_newBINOP
+#define Perl_newCONDOP         CPerlObj::Perl_newCONDOP
+#define Perl_newCONSTSUB       CPerlObj::Perl_newCONSTSUB
+#define Perl_newCVREF          CPerlObj::Perl_newCVREF
+#define Perl_newFORM           CPerlObj::Perl_newFORM
+#define Perl_newFOROP          CPerlObj::Perl_newFOROP
+#define Perl_newGVOP           CPerlObj::Perl_newGVOP
+#define Perl_newGVREF          CPerlObj::Perl_newGVREF
+#define Perl_newGVgen          CPerlObj::Perl_newGVgen
+#define Perl_newHV             CPerlObj::Perl_newHV
+#define Perl_newHVREF          CPerlObj::Perl_newHVREF
+#define Perl_newHVhv           CPerlObj::Perl_newHVhv
+#define Perl_newIO             CPerlObj::Perl_newIO
+#define Perl_newLISTOP         CPerlObj::Perl_newLISTOP
+#define Perl_newLOGOP          CPerlObj::Perl_newLOGOP
+#define Perl_newLOOPEX         CPerlObj::Perl_newLOOPEX
+#define Perl_newLOOPOP         CPerlObj::Perl_newLOOPOP
+#define Perl_newNULLLIST       CPerlObj::Perl_newNULLLIST
+#define Perl_newOP             CPerlObj::Perl_newOP
+#define Perl_newPMOP           CPerlObj::Perl_newPMOP
+#define Perl_newPROG           CPerlObj::Perl_newPROG
+#define Perl_newPVOP           CPerlObj::Perl_newPVOP
+#define Perl_newRANGE          CPerlObj::Perl_newRANGE
+#define Perl_newRV             CPerlObj::Perl_newRV
+#define Perl_newRV_noinc       CPerlObj::Perl_newRV_noinc
+#define Perl_newSLICEOP                CPerlObj::Perl_newSLICEOP
+#define Perl_newSTATEOP                CPerlObj::Perl_newSTATEOP
+#define Perl_newSUB            CPerlObj::Perl_newSUB
+#define Perl_newSV             CPerlObj::Perl_newSV
+#define Perl_newSVOP           CPerlObj::Perl_newSVOP
+#define Perl_newSVREF          CPerlObj::Perl_newSVREF
+#define Perl_newSViv           CPerlObj::Perl_newSViv
+#define Perl_newSVnv           CPerlObj::Perl_newSVnv
+#define Perl_newSVpv           CPerlObj::Perl_newSVpv
+#define Perl_newSVpvf          CPerlObj::Perl_newSVpvf
+#define Perl_newSVpvn          CPerlObj::Perl_newSVpvn
+#define Perl_newSVrv           CPerlObj::Perl_newSVrv
+#define Perl_newSVsv           CPerlObj::Perl_newSVsv
+#define Perl_newUNOP           CPerlObj::Perl_newUNOP
+#define Perl_newWHILEOP                CPerlObj::Perl_newWHILEOP
+#define Perl_newXS             CPerlObj::Perl_newXS
+#define Perl_new_collate       CPerlObj::Perl_new_collate
+#define Perl_new_ctype         CPerlObj::Perl_new_ctype
+#define Perl_new_numeric       CPerlObj::Perl_new_numeric
+#define Perl_new_stackinfo     CPerlObj::Perl_new_stackinfo
+#define Perl_new_struct_thread CPerlObj::Perl_new_struct_thread
+#define Perl_nextargv          CPerlObj::Perl_nextargv
+#define Perl_ninstr            CPerlObj::Perl_ninstr
+#define Perl_oopsAV            CPerlObj::Perl_oopsAV
+#define Perl_oopsCV            CPerlObj::Perl_oopsCV
+#define Perl_oopsHV            CPerlObj::Perl_oopsHV
+#define Perl_op_const_sv       CPerlObj::Perl_op_const_sv
+#define Perl_op_dump           CPerlObj::Perl_op_dump
+#define Perl_op_free           CPerlObj::Perl_op_free
+#define Perl_package           CPerlObj::Perl_package
+#define Perl_pad_alloc         CPerlObj::Perl_pad_alloc
+#define Perl_pad_allocmy       CPerlObj::Perl_pad_allocmy
+#define Perl_pad_findmy                CPerlObj::Perl_pad_findmy
+#define Perl_pad_free          CPerlObj::Perl_pad_free
+#define Perl_pad_leavemy       CPerlObj::Perl_pad_leavemy
+#define Perl_pad_reset         CPerlObj::Perl_pad_reset
+#define Perl_pad_sv            CPerlObj::Perl_pad_sv
+#define Perl_pad_swipe         CPerlObj::Perl_pad_swipe
+#define Perl_peep              CPerlObj::Perl_peep
+#define Perl_pidgone           CPerlObj::Perl_pidgone
+#define Perl_pmflag            CPerlObj::Perl_pmflag
+#define Perl_pmop_dump         CPerlObj::Perl_pmop_dump
+#define Perl_pmruntime         CPerlObj::Perl_pmruntime
+#define Perl_pmtrans           CPerlObj::Perl_pmtrans
+#define Perl_pop_return                CPerlObj::Perl_pop_return
+#define Perl_pop_scope         CPerlObj::Perl_pop_scope
+#define Perl_pp_aassign                CPerlObj::Perl_pp_aassign
+#define Perl_pp_abs            CPerlObj::Perl_pp_abs
+#define Perl_pp_accept         CPerlObj::Perl_pp_accept
+#define Perl_pp_add            CPerlObj::Perl_pp_add
+#define Perl_pp_aelem          CPerlObj::Perl_pp_aelem
+#define Perl_pp_aelemfast      CPerlObj::Perl_pp_aelemfast
+#define Perl_pp_alarm          CPerlObj::Perl_pp_alarm
+#define Perl_pp_and            CPerlObj::Perl_pp_and
+#define Perl_pp_andassign      CPerlObj::Perl_pp_andassign
+#define Perl_pp_anoncode       CPerlObj::Perl_pp_anoncode
+#define Perl_pp_anonhash       CPerlObj::Perl_pp_anonhash
+#define Perl_pp_anonlist       CPerlObj::Perl_pp_anonlist
+#define Perl_pp_aslice         CPerlObj::Perl_pp_aslice
+#define Perl_pp_atan2          CPerlObj::Perl_pp_atan2
+#define Perl_pp_av2arylen      CPerlObj::Perl_pp_av2arylen
+#define Perl_pp_backtick       CPerlObj::Perl_pp_backtick
+#define Perl_pp_bind           CPerlObj::Perl_pp_bind
+#define Perl_pp_binmode                CPerlObj::Perl_pp_binmode
+#define Perl_pp_bit_and                CPerlObj::Perl_pp_bit_and
+#define Perl_pp_bit_or         CPerlObj::Perl_pp_bit_or
+#define Perl_pp_bit_xor                CPerlObj::Perl_pp_bit_xor
+#define Perl_pp_bless          CPerlObj::Perl_pp_bless
+#define Perl_pp_caller         CPerlObj::Perl_pp_caller
+#define Perl_pp_chdir          CPerlObj::Perl_pp_chdir
+#define Perl_pp_chmod          CPerlObj::Perl_pp_chmod
+#define Perl_pp_chomp          CPerlObj::Perl_pp_chomp
+#define Perl_pp_chop           CPerlObj::Perl_pp_chop
+#define Perl_pp_chown          CPerlObj::Perl_pp_chown
+#define Perl_pp_chr            CPerlObj::Perl_pp_chr
+#define Perl_pp_chroot         CPerlObj::Perl_pp_chroot
+#define Perl_pp_close          CPerlObj::Perl_pp_close
+#define Perl_pp_closedir       CPerlObj::Perl_pp_closedir
+#define Perl_pp_complement     CPerlObj::Perl_pp_complement
+#define Perl_pp_concat         CPerlObj::Perl_pp_concat
+#define Perl_pp_cond_expr      CPerlObj::Perl_pp_cond_expr
+#define Perl_pp_connect                CPerlObj::Perl_pp_connect
+#define Perl_pp_const          CPerlObj::Perl_pp_const
+#define Perl_pp_cos            CPerlObj::Perl_pp_cos
+#define Perl_pp_crypt          CPerlObj::Perl_pp_crypt
+#define Perl_pp_dbmclose       CPerlObj::Perl_pp_dbmclose
+#define Perl_pp_dbmopen                CPerlObj::Perl_pp_dbmopen
+#define Perl_pp_dbstate                CPerlObj::Perl_pp_dbstate
+#define Perl_pp_defined                CPerlObj::Perl_pp_defined
+#define Perl_pp_delete         CPerlObj::Perl_pp_delete
+#define Perl_pp_die            CPerlObj::Perl_pp_die
+#define Perl_pp_divide         CPerlObj::Perl_pp_divide
+#define Perl_pp_dofile         CPerlObj::Perl_pp_dofile
+#define Perl_pp_dump           CPerlObj::Perl_pp_dump
+#define Perl_pp_each           CPerlObj::Perl_pp_each
+#define Perl_pp_egrent         CPerlObj::Perl_pp_egrent
+#define Perl_pp_ehostent       CPerlObj::Perl_pp_ehostent
+#define Perl_pp_enetent                CPerlObj::Perl_pp_enetent
+#define Perl_pp_enter          CPerlObj::Perl_pp_enter
+#define Perl_pp_entereval      CPerlObj::Perl_pp_entereval
+#define Perl_pp_enteriter      CPerlObj::Perl_pp_enteriter
+#define Perl_pp_enterloop      CPerlObj::Perl_pp_enterloop
+#define Perl_pp_entersub       CPerlObj::Perl_pp_entersub
+#define Perl_pp_entertry       CPerlObj::Perl_pp_entertry
+#define Perl_pp_enterwrite     CPerlObj::Perl_pp_enterwrite
+#define Perl_pp_eof            CPerlObj::Perl_pp_eof
+#define Perl_pp_eprotoent      CPerlObj::Perl_pp_eprotoent
+#define Perl_pp_epwent         CPerlObj::Perl_pp_epwent
+#define Perl_pp_eq             CPerlObj::Perl_pp_eq
+#define Perl_pp_eservent       CPerlObj::Perl_pp_eservent
+#define Perl_pp_exec           CPerlObj::Perl_pp_exec
+#define Perl_pp_exists         CPerlObj::Perl_pp_exists
+#define Perl_pp_exit           CPerlObj::Perl_pp_exit
+#define Perl_pp_exp            CPerlObj::Perl_pp_exp
+#define Perl_pp_fcntl          CPerlObj::Perl_pp_fcntl
+#define Perl_pp_fileno         CPerlObj::Perl_pp_fileno
+#define Perl_pp_flip           CPerlObj::Perl_pp_flip
+#define Perl_pp_flock          CPerlObj::Perl_pp_flock
+#define Perl_pp_flop           CPerlObj::Perl_pp_flop
+#define Perl_pp_fork           CPerlObj::Perl_pp_fork
+#define Perl_pp_formline       CPerlObj::Perl_pp_formline
+#define Perl_pp_ftatime                CPerlObj::Perl_pp_ftatime
+#define Perl_pp_ftbinary       CPerlObj::Perl_pp_ftbinary
+#define Perl_pp_ftblk          CPerlObj::Perl_pp_ftblk
+#define Perl_pp_ftchr          CPerlObj::Perl_pp_ftchr
+#define Perl_pp_ftctime                CPerlObj::Perl_pp_ftctime
+#define Perl_pp_ftdir          CPerlObj::Perl_pp_ftdir
+#define Perl_pp_fteexec                CPerlObj::Perl_pp_fteexec
+#define Perl_pp_fteowned       CPerlObj::Perl_pp_fteowned
+#define Perl_pp_fteread                CPerlObj::Perl_pp_fteread
+#define Perl_pp_ftewrite       CPerlObj::Perl_pp_ftewrite
+#define Perl_pp_ftfile         CPerlObj::Perl_pp_ftfile
+#define Perl_pp_ftis           CPerlObj::Perl_pp_ftis
+#define Perl_pp_ftlink         CPerlObj::Perl_pp_ftlink
+#define Perl_pp_ftmtime                CPerlObj::Perl_pp_ftmtime
+#define Perl_pp_ftpipe         CPerlObj::Perl_pp_ftpipe
+#define Perl_pp_ftrexec                CPerlObj::Perl_pp_ftrexec
+#define Perl_pp_ftrowned       CPerlObj::Perl_pp_ftrowned
+#define Perl_pp_ftrread                CPerlObj::Perl_pp_ftrread
+#define Perl_pp_ftrwrite       CPerlObj::Perl_pp_ftrwrite
+#define Perl_pp_ftsgid         CPerlObj::Perl_pp_ftsgid
+#define Perl_pp_ftsize         CPerlObj::Perl_pp_ftsize
+#define Perl_pp_ftsock         CPerlObj::Perl_pp_ftsock
+#define Perl_pp_ftsuid         CPerlObj::Perl_pp_ftsuid
+#define Perl_pp_ftsvtx         CPerlObj::Perl_pp_ftsvtx
+#define Perl_pp_fttext         CPerlObj::Perl_pp_fttext
+#define Perl_pp_fttty          CPerlObj::Perl_pp_fttty
+#define Perl_pp_ftzero         CPerlObj::Perl_pp_ftzero
+#define Perl_pp_ge             CPerlObj::Perl_pp_ge
+#define Perl_pp_gelem          CPerlObj::Perl_pp_gelem
+#define Perl_pp_getc           CPerlObj::Perl_pp_getc
+#define Perl_pp_getlogin       CPerlObj::Perl_pp_getlogin
+#define Perl_pp_getpeername    CPerlObj::Perl_pp_getpeername
+#define Perl_pp_getpgrp                CPerlObj::Perl_pp_getpgrp
+#define Perl_pp_getppid                CPerlObj::Perl_pp_getppid
+#define Perl_pp_getpriority    CPerlObj::Perl_pp_getpriority
+#define Perl_pp_getsockname    CPerlObj::Perl_pp_getsockname
+#define Perl_pp_ggrent         CPerlObj::Perl_pp_ggrent
+#define Perl_pp_ggrgid         CPerlObj::Perl_pp_ggrgid
+#define Perl_pp_ggrnam         CPerlObj::Perl_pp_ggrnam
+#define Perl_pp_ghbyaddr       CPerlObj::Perl_pp_ghbyaddr
+#define Perl_pp_ghbyname       CPerlObj::Perl_pp_ghbyname
+#define Perl_pp_ghostent       CPerlObj::Perl_pp_ghostent
+#define Perl_pp_glob           CPerlObj::Perl_pp_glob
+#define Perl_pp_gmtime         CPerlObj::Perl_pp_gmtime
+#define Perl_pp_gnbyaddr       CPerlObj::Perl_pp_gnbyaddr
+#define Perl_pp_gnbyname       CPerlObj::Perl_pp_gnbyname
+#define Perl_pp_gnetent                CPerlObj::Perl_pp_gnetent
+#define Perl_pp_goto           CPerlObj::Perl_pp_goto
+#define Perl_pp_gpbyname       CPerlObj::Perl_pp_gpbyname
+#define Perl_pp_gpbynumber     CPerlObj::Perl_pp_gpbynumber
+#define Perl_pp_gprotoent      CPerlObj::Perl_pp_gprotoent
+#define Perl_pp_gpwent         CPerlObj::Perl_pp_gpwent
+#define Perl_pp_gpwnam         CPerlObj::Perl_pp_gpwnam
+#define Perl_pp_gpwuid         CPerlObj::Perl_pp_gpwuid
+#define Perl_pp_grepstart      CPerlObj::Perl_pp_grepstart
+#define Perl_pp_grepwhile      CPerlObj::Perl_pp_grepwhile
+#define Perl_pp_gsbyname       CPerlObj::Perl_pp_gsbyname
+#define Perl_pp_gsbyport       CPerlObj::Perl_pp_gsbyport
+#define Perl_pp_gservent       CPerlObj::Perl_pp_gservent
+#define Perl_pp_gsockopt       CPerlObj::Perl_pp_gsockopt
+#define Perl_pp_gt             CPerlObj::Perl_pp_gt
+#define Perl_pp_gv             CPerlObj::Perl_pp_gv
+#define Perl_pp_gvsv           CPerlObj::Perl_pp_gvsv
+#define Perl_pp_helem          CPerlObj::Perl_pp_helem
+#define Perl_pp_hex            CPerlObj::Perl_pp_hex
+#define Perl_pp_hslice         CPerlObj::Perl_pp_hslice
+#define Perl_pp_i_add          CPerlObj::Perl_pp_i_add
+#define Perl_pp_i_divide       CPerlObj::Perl_pp_i_divide
+#define Perl_pp_i_eq           CPerlObj::Perl_pp_i_eq
+#define Perl_pp_i_ge           CPerlObj::Perl_pp_i_ge
+#define Perl_pp_i_gt           CPerlObj::Perl_pp_i_gt
+#define Perl_pp_i_le           CPerlObj::Perl_pp_i_le
+#define Perl_pp_i_lt           CPerlObj::Perl_pp_i_lt
+#define Perl_pp_i_modulo       CPerlObj::Perl_pp_i_modulo
+#define Perl_pp_i_multiply     CPerlObj::Perl_pp_i_multiply
+#define Perl_pp_i_ncmp         CPerlObj::Perl_pp_i_ncmp
+#define Perl_pp_i_ne           CPerlObj::Perl_pp_i_ne
+#define Perl_pp_i_negate       CPerlObj::Perl_pp_i_negate
+#define Perl_pp_i_subtract     CPerlObj::Perl_pp_i_subtract
+#define Perl_pp_index          CPerlObj::Perl_pp_index
+#define Perl_pp_int            CPerlObj::Perl_pp_int
+#define Perl_pp_ioctl          CPerlObj::Perl_pp_ioctl
+#define Perl_pp_iter           CPerlObj::Perl_pp_iter
+#define Perl_pp_join           CPerlObj::Perl_pp_join
+#define Perl_pp_keys           CPerlObj::Perl_pp_keys
+#define Perl_pp_kill           CPerlObj::Perl_pp_kill
+#define Perl_pp_last           CPerlObj::Perl_pp_last
+#define Perl_pp_lc             CPerlObj::Perl_pp_lc
+#define Perl_pp_lcfirst                CPerlObj::Perl_pp_lcfirst
+#define Perl_pp_le             CPerlObj::Perl_pp_le
+#define Perl_pp_leave          CPerlObj::Perl_pp_leave
+#define Perl_pp_leaveeval      CPerlObj::Perl_pp_leaveeval
+#define Perl_pp_leaveloop      CPerlObj::Perl_pp_leaveloop
+#define Perl_pp_leavesub       CPerlObj::Perl_pp_leavesub
+#define Perl_pp_leavetry       CPerlObj::Perl_pp_leavetry
+#define Perl_pp_leavewrite     CPerlObj::Perl_pp_leavewrite
+#define Perl_pp_left_shift     CPerlObj::Perl_pp_left_shift
+#define Perl_pp_length         CPerlObj::Perl_pp_length
+#define Perl_pp_lineseq                CPerlObj::Perl_pp_lineseq
+#define Perl_pp_link           CPerlObj::Perl_pp_link
+#define Perl_pp_list           CPerlObj::Perl_pp_list
+#define Perl_pp_listen         CPerlObj::Perl_pp_listen
+#define Perl_pp_localtime      CPerlObj::Perl_pp_localtime
+#define Perl_pp_lock           CPerlObj::Perl_pp_lock
+#define Perl_pp_log            CPerlObj::Perl_pp_log
+#define Perl_pp_lslice         CPerlObj::Perl_pp_lslice
+#define Perl_pp_lstat          CPerlObj::Perl_pp_lstat
+#define Perl_pp_lt             CPerlObj::Perl_pp_lt
+#define Perl_pp_mapstart       CPerlObj::Perl_pp_mapstart
+#define Perl_pp_mapwhile       CPerlObj::Perl_pp_mapwhile
+#define Perl_pp_match          CPerlObj::Perl_pp_match
+#define Perl_pp_method         CPerlObj::Perl_pp_method
+#define Perl_pp_mkdir          CPerlObj::Perl_pp_mkdir
+#define Perl_pp_modulo         CPerlObj::Perl_pp_modulo
+#define Perl_pp_msgctl         CPerlObj::Perl_pp_msgctl
+#define Perl_pp_msgget         CPerlObj::Perl_pp_msgget
+#define Perl_pp_msgrcv         CPerlObj::Perl_pp_msgrcv
+#define Perl_pp_msgsnd         CPerlObj::Perl_pp_msgsnd
+#define Perl_pp_multiply       CPerlObj::Perl_pp_multiply
+#define Perl_pp_ncmp           CPerlObj::Perl_pp_ncmp
+#define Perl_pp_ne             CPerlObj::Perl_pp_ne
+#define Perl_pp_negate         CPerlObj::Perl_pp_negate
+#define Perl_pp_next           CPerlObj::Perl_pp_next
+#define Perl_pp_nextstate      CPerlObj::Perl_pp_nextstate
+#define Perl_pp_not            CPerlObj::Perl_pp_not
+#define Perl_pp_null           CPerlObj::Perl_pp_null
+#define Perl_pp_oct            CPerlObj::Perl_pp_oct
+#define Perl_pp_open           CPerlObj::Perl_pp_open
+#define Perl_pp_open_dir       CPerlObj::Perl_pp_open_dir
+#define Perl_pp_or             CPerlObj::Perl_pp_or
+#define Perl_pp_orassign       CPerlObj::Perl_pp_orassign
+#define Perl_pp_ord            CPerlObj::Perl_pp_ord
+#define Perl_pp_pack           CPerlObj::Perl_pp_pack
+#define Perl_pp_padany         CPerlObj::Perl_pp_padany
+#define Perl_pp_padav          CPerlObj::Perl_pp_padav
+#define Perl_pp_padhv          CPerlObj::Perl_pp_padhv
+#define Perl_pp_padsv          CPerlObj::Perl_pp_padsv
+#define Perl_pp_pipe_op                CPerlObj::Perl_pp_pipe_op
+#define Perl_pp_pop            CPerlObj::Perl_pp_pop
+#define Perl_pp_pos            CPerlObj::Perl_pp_pos
+#define Perl_pp_postdec                CPerlObj::Perl_pp_postdec
+#define Perl_pp_postinc                CPerlObj::Perl_pp_postinc
+#define Perl_pp_pow            CPerlObj::Perl_pp_pow
+#define Perl_pp_predec         CPerlObj::Perl_pp_predec
+#define Perl_pp_preinc         CPerlObj::Perl_pp_preinc
+#define Perl_pp_print          CPerlObj::Perl_pp_print
+#define Perl_pp_prototype      CPerlObj::Perl_pp_prototype
+#define Perl_pp_prtf           CPerlObj::Perl_pp_prtf
+#define Perl_pp_push           CPerlObj::Perl_pp_push
+#define Perl_pp_pushmark       CPerlObj::Perl_pp_pushmark
+#define Perl_pp_pushre         CPerlObj::Perl_pp_pushre
+#define Perl_pp_qr             CPerlObj::Perl_pp_qr
+#define Perl_pp_quotemeta      CPerlObj::Perl_pp_quotemeta
+#define Perl_pp_rand           CPerlObj::Perl_pp_rand
+#define Perl_pp_range          CPerlObj::Perl_pp_range
+#define Perl_pp_rcatline       CPerlObj::Perl_pp_rcatline
+#define Perl_pp_read           CPerlObj::Perl_pp_read
+#define Perl_pp_readdir                CPerlObj::Perl_pp_readdir
+#define Perl_pp_readline       CPerlObj::Perl_pp_readline
+#define Perl_pp_readlink       CPerlObj::Perl_pp_readlink
+#define Perl_pp_recv           CPerlObj::Perl_pp_recv
+#define Perl_pp_redo           CPerlObj::Perl_pp_redo
+#define Perl_pp_ref            CPerlObj::Perl_pp_ref
+#define Perl_pp_refgen         CPerlObj::Perl_pp_refgen
+#define Perl_pp_regcmaybe      CPerlObj::Perl_pp_regcmaybe
+#define Perl_pp_regcomp                CPerlObj::Perl_pp_regcomp
+#define Perl_pp_regcreset      CPerlObj::Perl_pp_regcreset
+#define Perl_pp_rename         CPerlObj::Perl_pp_rename
+#define Perl_pp_repeat         CPerlObj::Perl_pp_repeat
+#define Perl_pp_require                CPerlObj::Perl_pp_require
+#define Perl_pp_reset          CPerlObj::Perl_pp_reset
+#define Perl_pp_return         CPerlObj::Perl_pp_return
+#define Perl_pp_reverse                CPerlObj::Perl_pp_reverse
+#define Perl_pp_rewinddir      CPerlObj::Perl_pp_rewinddir
+#define Perl_pp_right_shift    CPerlObj::Perl_pp_right_shift
+#define Perl_pp_rindex         CPerlObj::Perl_pp_rindex
+#define Perl_pp_rmdir          CPerlObj::Perl_pp_rmdir
+#define Perl_pp_rv2av          CPerlObj::Perl_pp_rv2av
+#define Perl_pp_rv2cv          CPerlObj::Perl_pp_rv2cv
+#define Perl_pp_rv2gv          CPerlObj::Perl_pp_rv2gv
+#define Perl_pp_rv2hv          CPerlObj::Perl_pp_rv2hv
+#define Perl_pp_rv2sv          CPerlObj::Perl_pp_rv2sv
+#define Perl_pp_sassign                CPerlObj::Perl_pp_sassign
+#define Perl_pp_scalar         CPerlObj::Perl_pp_scalar
+#define Perl_pp_schomp         CPerlObj::Perl_pp_schomp
+#define Perl_pp_schop          CPerlObj::Perl_pp_schop
+#define Perl_pp_scmp           CPerlObj::Perl_pp_scmp
+#define Perl_pp_scope          CPerlObj::Perl_pp_scope
+#define Perl_pp_seek           CPerlObj::Perl_pp_seek
+#define Perl_pp_seekdir                CPerlObj::Perl_pp_seekdir
+#define Perl_pp_select         CPerlObj::Perl_pp_select
+#define Perl_pp_semctl         CPerlObj::Perl_pp_semctl
+#define Perl_pp_semget         CPerlObj::Perl_pp_semget
+#define Perl_pp_semop          CPerlObj::Perl_pp_semop
+#define Perl_pp_send           CPerlObj::Perl_pp_send
+#define Perl_pp_seq            CPerlObj::Perl_pp_seq
+#define Perl_pp_setpgrp                CPerlObj::Perl_pp_setpgrp
+#define Perl_pp_setpriority    CPerlObj::Perl_pp_setpriority
+#define Perl_pp_sge            CPerlObj::Perl_pp_sge
+#define Perl_pp_sgrent         CPerlObj::Perl_pp_sgrent
+#define Perl_pp_sgt            CPerlObj::Perl_pp_sgt
+#define Perl_pp_shift          CPerlObj::Perl_pp_shift
+#define Perl_pp_shmctl         CPerlObj::Perl_pp_shmctl
+#define Perl_pp_shmget         CPerlObj::Perl_pp_shmget
+#define Perl_pp_shmread                CPerlObj::Perl_pp_shmread
+#define Perl_pp_shmwrite       CPerlObj::Perl_pp_shmwrite
+#define Perl_pp_shostent       CPerlObj::Perl_pp_shostent
+#define Perl_pp_shutdown       CPerlObj::Perl_pp_shutdown
+#define Perl_pp_sin            CPerlObj::Perl_pp_sin
+#define Perl_pp_sle            CPerlObj::Perl_pp_sle
+#define Perl_pp_sleep          CPerlObj::Perl_pp_sleep
+#define Perl_pp_slt            CPerlObj::Perl_pp_slt
+#define Perl_pp_sne            CPerlObj::Perl_pp_sne
+#define Perl_pp_snetent                CPerlObj::Perl_pp_snetent
+#define Perl_pp_socket         CPerlObj::Perl_pp_socket
+#define Perl_pp_sockpair       CPerlObj::Perl_pp_sockpair
+#define Perl_pp_sort           CPerlObj::Perl_pp_sort
+#define Perl_pp_splice         CPerlObj::Perl_pp_splice
+#define Perl_pp_split          CPerlObj::Perl_pp_split
+#define Perl_pp_sprintf                CPerlObj::Perl_pp_sprintf
+#define Perl_pp_sprotoent      CPerlObj::Perl_pp_sprotoent
+#define Perl_pp_spwent         CPerlObj::Perl_pp_spwent
+#define Perl_pp_sqrt           CPerlObj::Perl_pp_sqrt
+#define Perl_pp_srand          CPerlObj::Perl_pp_srand
+#define Perl_pp_srefgen                CPerlObj::Perl_pp_srefgen
+#define Perl_pp_sselect                CPerlObj::Perl_pp_sselect
+#define Perl_pp_sservent       CPerlObj::Perl_pp_sservent
+#define Perl_pp_ssockopt       CPerlObj::Perl_pp_ssockopt
+#define Perl_pp_stat           CPerlObj::Perl_pp_stat
+#define Perl_pp_stringify      CPerlObj::Perl_pp_stringify
+#define Perl_pp_stub           CPerlObj::Perl_pp_stub
+#define Perl_pp_study          CPerlObj::Perl_pp_study
+#define Perl_pp_subst          CPerlObj::Perl_pp_subst
+#define Perl_pp_substcont      CPerlObj::Perl_pp_substcont
+#define Perl_pp_substr         CPerlObj::Perl_pp_substr
+#define Perl_pp_subtract       CPerlObj::Perl_pp_subtract
+#define Perl_pp_symlink                CPerlObj::Perl_pp_symlink
+#define Perl_pp_syscall                CPerlObj::Perl_pp_syscall
+#define Perl_pp_sysopen                CPerlObj::Perl_pp_sysopen
+#define Perl_pp_sysread                CPerlObj::Perl_pp_sysread
+#define Perl_pp_sysseek                CPerlObj::Perl_pp_sysseek
+#define Perl_pp_system         CPerlObj::Perl_pp_system
+#define Perl_pp_syswrite       CPerlObj::Perl_pp_syswrite
+#define Perl_pp_tell           CPerlObj::Perl_pp_tell
+#define Perl_pp_telldir                CPerlObj::Perl_pp_telldir
+#define Perl_pp_threadsv       CPerlObj::Perl_pp_threadsv
+#define Perl_pp_tie            CPerlObj::Perl_pp_tie
+#define Perl_pp_tied           CPerlObj::Perl_pp_tied
+#define Perl_pp_time           CPerlObj::Perl_pp_time
+#define Perl_pp_tms            CPerlObj::Perl_pp_tms
+#define Perl_pp_trans          CPerlObj::Perl_pp_trans
+#define Perl_pp_truncate       CPerlObj::Perl_pp_truncate
+#define Perl_pp_uc             CPerlObj::Perl_pp_uc
+#define Perl_pp_ucfirst                CPerlObj::Perl_pp_ucfirst
+#define Perl_pp_umask          CPerlObj::Perl_pp_umask
+#define Perl_pp_undef          CPerlObj::Perl_pp_undef
+#define Perl_pp_unlink         CPerlObj::Perl_pp_unlink
+#define Perl_pp_unpack         CPerlObj::Perl_pp_unpack
+#define Perl_pp_unshift                CPerlObj::Perl_pp_unshift
+#define Perl_pp_unstack                CPerlObj::Perl_pp_unstack
+#define Perl_pp_untie          CPerlObj::Perl_pp_untie
+#define Perl_pp_utime          CPerlObj::Perl_pp_utime
+#define Perl_pp_values         CPerlObj::Perl_pp_values
+#define Perl_pp_vec            CPerlObj::Perl_pp_vec
+#define Perl_pp_wait           CPerlObj::Perl_pp_wait
+#define Perl_pp_waitpid                CPerlObj::Perl_pp_waitpid
+#define Perl_pp_wantarray      CPerlObj::Perl_pp_wantarray
+#define Perl_pp_warn           CPerlObj::Perl_pp_warn
+#define Perl_pp_xor            CPerlObj::Perl_pp_xor
+#define Perl_pregcomp          CPerlObj::Perl_pregcomp
+#define Perl_pregexec          CPerlObj::Perl_pregexec
+#define Perl_pregfree          CPerlObj::Perl_pregfree
+#define Perl_prepend_elem      CPerlObj::Perl_prepend_elem
+#define Perl_push_return       CPerlObj::Perl_push_return
+#define Perl_push_scope                CPerlObj::Perl_push_scope
+#define Perl_pv_display                CPerlObj::Perl_pv_display
+#define Perl_ref               CPerlObj::Perl_ref
+#define Perl_refkids           CPerlObj::Perl_refkids
+#define Perl_regdump           CPerlObj::Perl_regdump
+#define Perl_regexec_flags     CPerlObj::Perl_regexec_flags
+#define Perl_reginitcolors     CPerlObj::Perl_reginitcolors
+#define Perl_regnext           CPerlObj::Perl_regnext
+#define Perl_regprop           CPerlObj::Perl_regprop
+#define Perl_repeatcpy         CPerlObj::Perl_repeatcpy
+#define Perl_require_pv                CPerlObj::Perl_require_pv
+#define Perl_rninstr           CPerlObj::Perl_rninstr
+#define Perl_rsignal           CPerlObj::Perl_rsignal
+#define Perl_rsignal_restore   CPerlObj::Perl_rsignal_restore
+#define Perl_rsignal_save      CPerlObj::Perl_rsignal_save
+#define Perl_rsignal_state     CPerlObj::Perl_rsignal_state
+#define Perl_runops_debug      CPerlObj::Perl_runops_debug
+#define Perl_runops_standard   CPerlObj::Perl_runops_standard
+#define Perl_rxres_free                CPerlObj::Perl_rxres_free
+#define Perl_rxres_restore     CPerlObj::Perl_rxres_restore
+#define Perl_rxres_save                CPerlObj::Perl_rxres_save
+#define Perl_safesyscalloc     CPerlObj::Perl_safesyscalloc
+#define Perl_safesysfree       CPerlObj::Perl_safesysfree
+#define Perl_safesysmalloc     CPerlObj::Perl_safesysmalloc
+#define Perl_safesysrealloc    CPerlObj::Perl_safesysrealloc
+#define Perl_safexcalloc       CPerlObj::Perl_safexcalloc
+#define Perl_safexfree         CPerlObj::Perl_safexfree
+#define Perl_safexmalloc       CPerlObj::Perl_safexmalloc
+#define Perl_safexrealloc      CPerlObj::Perl_safexrealloc
+#define Perl_same_dirent       CPerlObj::Perl_same_dirent
+#define Perl_save_I16          CPerlObj::Perl_save_I16
+#define Perl_save_I32          CPerlObj::Perl_save_I32
+#define Perl_save_aelem                CPerlObj::Perl_save_aelem
+#define Perl_save_alloc                CPerlObj::Perl_save_alloc
+#define Perl_save_aptr         CPerlObj::Perl_save_aptr
+#define Perl_save_ary          CPerlObj::Perl_save_ary
+#define Perl_save_clearsv      CPerlObj::Perl_save_clearsv
+#define Perl_save_delete       CPerlObj::Perl_save_delete
+#define Perl_save_destructor   CPerlObj::Perl_save_destructor
+#define Perl_save_freeop       CPerlObj::Perl_save_freeop
+#define Perl_save_freepv       CPerlObj::Perl_save_freepv
+#define Perl_save_freesv       CPerlObj::Perl_save_freesv
+#define Perl_save_generic_svref        CPerlObj::Perl_save_generic_svref
+#define Perl_save_gp           CPerlObj::Perl_save_gp
+#define Perl_save_hash         CPerlObj::Perl_save_hash
+#define Perl_save_helem                CPerlObj::Perl_save_helem
+#define Perl_save_hints                CPerlObj::Perl_save_hints
+#define Perl_save_hptr         CPerlObj::Perl_save_hptr
+#define Perl_save_int          CPerlObj::Perl_save_int
+#define Perl_save_item         CPerlObj::Perl_save_item
+#define Perl_save_iv           CPerlObj::Perl_save_iv
+#define Perl_save_list         CPerlObj::Perl_save_list
+#define Perl_save_long         CPerlObj::Perl_save_long
+#define Perl_save_nogv         CPerlObj::Perl_save_nogv
+#define Perl_save_op           CPerlObj::Perl_save_op
+#define Perl_save_pptr         CPerlObj::Perl_save_pptr
+#define Perl_save_re_context   CPerlObj::Perl_save_re_context
+#define Perl_save_scalar       CPerlObj::Perl_save_scalar
+#define Perl_save_sptr         CPerlObj::Perl_save_sptr
+#define Perl_save_svref                CPerlObj::Perl_save_svref
+#define Perl_save_threadsv     CPerlObj::Perl_save_threadsv
+#define Perl_savepv            CPerlObj::Perl_savepv
+#define Perl_savepvn           CPerlObj::Perl_savepvn
+#define Perl_savestack_grow    CPerlObj::Perl_savestack_grow
+#define Perl_sawparens         CPerlObj::Perl_sawparens
+#define Perl_scalar            CPerlObj::Perl_scalar
+#define Perl_scalarkids                CPerlObj::Perl_scalarkids
+#define Perl_scalarseq         CPerlObj::Perl_scalarseq
+#define Perl_scalarvoid                CPerlObj::Perl_scalarvoid
+#define Perl_scan_bin          CPerlObj::Perl_scan_bin
+#define Perl_scan_hex          CPerlObj::Perl_scan_hex
+#define Perl_scan_num          CPerlObj::Perl_scan_num
+#define Perl_scan_oct          CPerlObj::Perl_scan_oct
+#define Perl_scope             CPerlObj::Perl_scope
+#define Perl_screaminstr       CPerlObj::Perl_screaminstr
+#define Perl_set_numeric_local CPerlObj::Perl_set_numeric_local
+#define Perl_set_numeric_standard      CPerlObj::Perl_set_numeric_standard
+#define Perl_setdefout         CPerlObj::Perl_setdefout
+#define Perl_setenv_getix      CPerlObj::Perl_setenv_getix
+#define Perl_share_hek         CPerlObj::Perl_share_hek
+#define Perl_sharepvn          CPerlObj::Perl_sharepvn
+#define Perl_sighandler                CPerlObj::Perl_sighandler
+#define Perl_stack_grow                CPerlObj::Perl_stack_grow
+#define Perl_start_subparse    CPerlObj::Perl_start_subparse
+#define Perl_sub_crush_depth   CPerlObj::Perl_sub_crush_depth
+#define Perl_sv_2bool          CPerlObj::Perl_sv_2bool
+#define Perl_sv_2cv            CPerlObj::Perl_sv_2cv
+#define Perl_sv_2io            CPerlObj::Perl_sv_2io
+#define Perl_sv_2iv            CPerlObj::Perl_sv_2iv
+#define Perl_sv_2mortal                CPerlObj::Perl_sv_2mortal
+#define Perl_sv_2nv            CPerlObj::Perl_sv_2nv
+#define Perl_sv_2pv            CPerlObj::Perl_sv_2pv
+#define Perl_sv_2pv_nolen      CPerlObj::Perl_sv_2pv_nolen
+#define Perl_sv_2uv            CPerlObj::Perl_sv_2uv
+#define Perl_sv_add_arena      CPerlObj::Perl_sv_add_arena
+#define Perl_sv_backoff                CPerlObj::Perl_sv_backoff
+#define Perl_sv_bless          CPerlObj::Perl_sv_bless
+#define Perl_sv_catpv          CPerlObj::Perl_sv_catpv
+#define Perl_sv_catpv_mg       CPerlObj::Perl_sv_catpv_mg
+#define Perl_sv_catpvf         CPerlObj::Perl_sv_catpvf
+#define Perl_sv_catpvf_mg      CPerlObj::Perl_sv_catpvf_mg
+#define Perl_sv_catpvn         CPerlObj::Perl_sv_catpvn
+#define Perl_sv_catpvn_mg      CPerlObj::Perl_sv_catpvn_mg
+#define Perl_sv_catsv          CPerlObj::Perl_sv_catsv
+#define Perl_sv_catsv_mg       CPerlObj::Perl_sv_catsv_mg
+#define Perl_sv_chop           CPerlObj::Perl_sv_chop
+#define Perl_sv_clean_all      CPerlObj::Perl_sv_clean_all
+#define Perl_sv_clean_objs     CPerlObj::Perl_sv_clean_objs
+#define Perl_sv_clear          CPerlObj::Perl_sv_clear
+#define Perl_sv_cmp            CPerlObj::Perl_sv_cmp
+#define Perl_sv_cmp_locale     CPerlObj::Perl_sv_cmp_locale
+#define Perl_sv_collxfrm       CPerlObj::Perl_sv_collxfrm
+#define Perl_sv_compile_2op    CPerlObj::Perl_sv_compile_2op
+#define Perl_sv_dec            CPerlObj::Perl_sv_dec
+#define Perl_sv_derived_from   CPerlObj::Perl_sv_derived_from
+#define Perl_sv_dump           CPerlObj::Perl_sv_dump
+#define Perl_sv_eq             CPerlObj::Perl_sv_eq
+#define Perl_sv_force_normal   CPerlObj::Perl_sv_force_normal
+#define Perl_sv_free           CPerlObj::Perl_sv_free
+#define Perl_sv_free_arenas    CPerlObj::Perl_sv_free_arenas
+#define Perl_sv_gets           CPerlObj::Perl_sv_gets
+#define Perl_sv_grow           CPerlObj::Perl_sv_grow
+#define Perl_sv_inc            CPerlObj::Perl_sv_inc
+#define Perl_sv_insert         CPerlObj::Perl_sv_insert
+#define Perl_sv_isa            CPerlObj::Perl_sv_isa
+#define Perl_sv_isobject       CPerlObj::Perl_sv_isobject
+#define Perl_sv_iv             CPerlObj::Perl_sv_iv
+#define Perl_sv_len            CPerlObj::Perl_sv_len
+#define Perl_sv_len_utf8       CPerlObj::Perl_sv_len_utf8
+#define Perl_sv_magic          CPerlObj::Perl_sv_magic
+#define Perl_sv_mortalcopy     CPerlObj::Perl_sv_mortalcopy
+#define Perl_sv_newmortal      CPerlObj::Perl_sv_newmortal
+#define Perl_sv_newref         CPerlObj::Perl_sv_newref
+#define Perl_sv_nv             CPerlObj::Perl_sv_nv
+#define Perl_sv_peek           CPerlObj::Perl_sv_peek
+#define Perl_sv_pos_b2u                CPerlObj::Perl_sv_pos_b2u
+#define Perl_sv_pos_u2b                CPerlObj::Perl_sv_pos_u2b
+#define Perl_sv_pv             CPerlObj::Perl_sv_pv
+#define Perl_sv_pvn            CPerlObj::Perl_sv_pvn
+#define Perl_sv_pvn_force      CPerlObj::Perl_sv_pvn_force
+#define Perl_sv_reftype                CPerlObj::Perl_sv_reftype
+#define Perl_sv_replace                CPerlObj::Perl_sv_replace
+#define Perl_sv_report_used    CPerlObj::Perl_sv_report_used
+#define Perl_sv_reset          CPerlObj::Perl_sv_reset
+#define Perl_sv_rvweaken       CPerlObj::Perl_sv_rvweaken
+#define Perl_sv_setiv          CPerlObj::Perl_sv_setiv
+#define Perl_sv_setiv_mg       CPerlObj::Perl_sv_setiv_mg
+#define Perl_sv_setnv          CPerlObj::Perl_sv_setnv
+#define Perl_sv_setnv_mg       CPerlObj::Perl_sv_setnv_mg
+#define Perl_sv_setpv          CPerlObj::Perl_sv_setpv
+#define Perl_sv_setpv_mg       CPerlObj::Perl_sv_setpv_mg
+#define Perl_sv_setpvf         CPerlObj::Perl_sv_setpvf
+#define Perl_sv_setpvf_mg      CPerlObj::Perl_sv_setpvf_mg
+#define Perl_sv_setpviv                CPerlObj::Perl_sv_setpviv
+#define Perl_sv_setpviv_mg     CPerlObj::Perl_sv_setpviv_mg
+#define Perl_sv_setpvn         CPerlObj::Perl_sv_setpvn
+#define Perl_sv_setpvn_mg      CPerlObj::Perl_sv_setpvn_mg
+#define Perl_sv_setref_iv      CPerlObj::Perl_sv_setref_iv
+#define Perl_sv_setref_nv      CPerlObj::Perl_sv_setref_nv
+#define Perl_sv_setref_pv      CPerlObj::Perl_sv_setref_pv
+#define Perl_sv_setref_pvn     CPerlObj::Perl_sv_setref_pvn
+#define Perl_sv_setsv          CPerlObj::Perl_sv_setsv
+#define Perl_sv_setsv_mg       CPerlObj::Perl_sv_setsv_mg
+#define Perl_sv_setuv          CPerlObj::Perl_sv_setuv
+#define Perl_sv_setuv_mg       CPerlObj::Perl_sv_setuv_mg
+#define Perl_sv_taint          CPerlObj::Perl_sv_taint
+#define Perl_sv_tainted                CPerlObj::Perl_sv_tainted
+#define Perl_sv_true           CPerlObj::Perl_sv_true
+#define Perl_sv_unmagic                CPerlObj::Perl_sv_unmagic
+#define Perl_sv_unref          CPerlObj::Perl_sv_unref
+#define Perl_sv_untaint                CPerlObj::Perl_sv_untaint
+#define Perl_sv_upgrade                CPerlObj::Perl_sv_upgrade
+#define Perl_sv_usepvn         CPerlObj::Perl_sv_usepvn
+#define Perl_sv_usepvn_mg      CPerlObj::Perl_sv_usepvn_mg
+#define Perl_sv_uv             CPerlObj::Perl_sv_uv
+#define Perl_sv_vcatpvfn       CPerlObj::Perl_sv_vcatpvfn
+#define Perl_sv_vsetpvfn       CPerlObj::Perl_sv_vsetpvfn
+#define Perl_swash_fetch       CPerlObj::Perl_swash_fetch
+#define Perl_swash_init                CPerlObj::Perl_swash_init
+#define Perl_taint_env         CPerlObj::Perl_taint_env
+#define Perl_taint_proper      CPerlObj::Perl_taint_proper
+#define Perl_tmps_grow         CPerlObj::Perl_tmps_grow
+#define Perl_to_uni_lower      CPerlObj::Perl_to_uni_lower
+#define Perl_to_uni_lower_lc   CPerlObj::Perl_to_uni_lower_lc
+#define Perl_to_uni_title      CPerlObj::Perl_to_uni_title
+#define Perl_to_uni_title_lc   CPerlObj::Perl_to_uni_title_lc
+#define Perl_to_uni_upper      CPerlObj::Perl_to_uni_upper
+#define Perl_to_uni_upper_lc   CPerlObj::Perl_to_uni_upper_lc
+#define Perl_to_utf8_lower     CPerlObj::Perl_to_utf8_lower
+#define Perl_to_utf8_title     CPerlObj::Perl_to_utf8_title
+#define Perl_to_utf8_upper     CPerlObj::Perl_to_utf8_upper
+#define Perl_unlnk             CPerlObj::Perl_unlnk
+#define Perl_unlock_condpair   CPerlObj::Perl_unlock_condpair
+#define Perl_unshare_hek       CPerlObj::Perl_unshare_hek
+#define Perl_unsharepvn                CPerlObj::Perl_unsharepvn
+#define Perl_utf16_to_utf8     CPerlObj::Perl_utf16_to_utf8
+#define Perl_utf16_to_utf8_reversed    CPerlObj::Perl_utf16_to_utf8_reversed
+#define Perl_utf8_distance     CPerlObj::Perl_utf8_distance
+#define Perl_utf8_hop          CPerlObj::Perl_utf8_hop
+#define Perl_utf8_to_uv                CPerlObj::Perl_utf8_to_uv
+#define Perl_utilize           CPerlObj::Perl_utilize
+#define Perl_uv_to_utf8                CPerlObj::Perl_uv_to_utf8
+#define Perl_vivify_defelem    CPerlObj::Perl_vivify_defelem
+#define Perl_vivify_ref                CPerlObj::Perl_vivify_ref
+#define Perl_wait4pid          CPerlObj::Perl_wait4pid
+#define Perl_warn              CPerlObj::Perl_warn
+#define Perl_warner            CPerlObj::Perl_warner
+#define Perl_watch             CPerlObj::Perl_watch
+#define Perl_whichsig          CPerlObj::Perl_whichsig
+#define Perl_yydestruct                CPerlObj::Perl_yydestruct
+#define Perl_yyerror           CPerlObj::Perl_yyerror
+#define Perl_yylex             CPerlObj::Perl_yylex
+#define Perl_yyparse           CPerlObj::Perl_yyparse
+#define Perl_yywarn            CPerlObj::Perl_yywarn
 #define add_data               CPerlObj::Perl_add_data
-#define amagic_call            CPerlObj::Perl_amagic_call
 #define amagic_cmp             CPerlObj::Perl_amagic_cmp
 #define amagic_cmp_locale      CPerlObj::Perl_amagic_cmp_locale
 #define amagic_i_ncmp          CPerlObj::Perl_amagic_i_ncmp
 #define amagic_ncmp            CPerlObj::Perl_amagic_ncmp
 #define ao                     CPerlObj::Perl_ao
-#define append_elem            CPerlObj::Perl_append_elem
-#define append_list            CPerlObj::Perl_append_list
-#define apply                  CPerlObj::Perl_apply
 #define asIV                   CPerlObj::Perl_asIV
 #define asUV                   CPerlObj::Perl_asUV
-#define assertref              CPerlObj::Perl_assertref
-#define av_clear               CPerlObj::Perl_av_clear
-#define av_extend              CPerlObj::Perl_av_extend
-#define av_fake                        CPerlObj::Perl_av_fake
-#define av_fetch               CPerlObj::Perl_av_fetch
-#define av_fill                        CPerlObj::Perl_av_fill
-#define av_len                 CPerlObj::Perl_av_len
-#define av_make                        CPerlObj::Perl_av_make
-#define av_pop                 CPerlObj::Perl_av_pop
-#define av_push                        CPerlObj::Perl_av_push
-#define av_reify               CPerlObj::Perl_av_reify
-#define av_shift               CPerlObj::Perl_av_shift
-#define av_store               CPerlObj::Perl_av_store
-#define av_undef               CPerlObj::Perl_av_undef
-#define av_unshift             CPerlObj::Perl_av_unshift
-#define avhv_exists_ent                CPerlObj::Perl_avhv_exists_ent
-#define avhv_fetch_ent         CPerlObj::Perl_avhv_fetch_ent
 #define avhv_index_sv          CPerlObj::Perl_avhv_index_sv
-#define avhv_iternext          CPerlObj::Perl_avhv_iternext
-#define avhv_iterval           CPerlObj::Perl_avhv_iterval
-#define avhv_keys              CPerlObj::Perl_avhv_keys
 #define bad_type               CPerlObj::Perl_bad_type
-#define bind_match             CPerlObj::Perl_bind_match
-#define block_end              CPerlObj::Perl_block_end
-#define block_gimme            CPerlObj::Perl_block_gimme
-#define block_start            CPerlObj::Perl_block_start
-#define boot_core_UNIVERSAL    CPerlObj::Perl_boot_core_UNIVERSAL
-#define bset_obj_store         CPerlObj::Perl_bset_obj_store
 #define cache_re               CPerlObj::Perl_cache_re
-#define call_list              CPerlObj::Perl_call_list
 #define call_list_body         CPerlObj::Perl_call_list_body
-#define cando                  CPerlObj::Perl_cando
-#define cast_i32               CPerlObj::Perl_cast_i32
-#define cast_iv                        CPerlObj::Perl_cast_iv
-#define cast_ulong             CPerlObj::Perl_cast_ulong
-#define cast_uv                        CPerlObj::Perl_cast_uv
 #define check_uni              CPerlObj::Perl_check_uni
 #define checkcomma             CPerlObj::Perl_checkcomma
-#define ck_anoncode            CPerlObj::Perl_ck_anoncode
-#define ck_bitop               CPerlObj::Perl_ck_bitop
-#define ck_concat              CPerlObj::Perl_ck_concat
-#define ck_defined             CPerlObj::Perl_ck_defined
-#define ck_delete              CPerlObj::Perl_ck_delete
-#define ck_eof                 CPerlObj::Perl_ck_eof
-#define ck_eval                        CPerlObj::Perl_ck_eval
-#define ck_exec                        CPerlObj::Perl_ck_exec
-#define ck_exists              CPerlObj::Perl_ck_exists
-#define ck_ftst                        CPerlObj::Perl_ck_ftst
-#define ck_fun                 CPerlObj::Perl_ck_fun
-#define ck_fun_locale          CPerlObj::Perl_ck_fun_locale
-#define ck_glob                        CPerlObj::Perl_ck_glob
-#define ck_grep                        CPerlObj::Perl_ck_grep
-#define ck_index               CPerlObj::Perl_ck_index
-#define ck_lengthconst         CPerlObj::Perl_ck_lengthconst
-#define ck_lfun                        CPerlObj::Perl_ck_lfun
-#define ck_listiob             CPerlObj::Perl_ck_listiob
-#define ck_match               CPerlObj::Perl_ck_match
-#define ck_null                        CPerlObj::Perl_ck_null
-#define ck_repeat              CPerlObj::Perl_ck_repeat
-#define ck_require             CPerlObj::Perl_ck_require
-#define ck_rfun                        CPerlObj::Perl_ck_rfun
-#define ck_rvconst             CPerlObj::Perl_ck_rvconst
-#define ck_scmp                        CPerlObj::Perl_ck_scmp
-#define ck_select              CPerlObj::Perl_ck_select
-#define ck_shift               CPerlObj::Perl_ck_shift
-#define ck_sort                        CPerlObj::Perl_ck_sort
-#define ck_spair               CPerlObj::Perl_ck_spair
-#define ck_split               CPerlObj::Perl_ck_split
-#define ck_subr                        CPerlObj::Perl_ck_subr
-#define ck_svconst             CPerlObj::Perl_ck_svconst
-#define ck_trunc               CPerlObj::Perl_ck_trunc
 #define clear_re               CPerlObj::Perl_clear_re
-#define condpair_magic         CPerlObj::Perl_condpair_magic
-#define convert                        CPerlObj::Perl_convert
-#define croak                  CPerlObj::Perl_croak
-#define cv_ckproto             CPerlObj::Perl_cv_ckproto
-#define cv_clone               CPerlObj::Perl_cv_clone
 #define cv_clone2              CPerlObj::Perl_cv_clone2
-#define cv_const_sv            CPerlObj::Perl_cv_const_sv
-#define cv_undef               CPerlObj::Perl_cv_undef
-#define cx_dump                        CPerlObj::Perl_cx_dump
-#define cxinc                  CPerlObj::Perl_cxinc
-#define deb                    CPerlObj::Perl_deb
-#define deb_growlevel          CPerlObj::Perl_deb_growlevel
-#define debop                  CPerlObj::Perl_debop
 #define debprof                        CPerlObj::Perl_debprof
-#define debprofdump            CPerlObj::Perl_debprofdump
-#define debstack               CPerlObj::Perl_debstack
-#define debstackptrs           CPerlObj::Perl_debstackptrs
-#define default_protect                CPerlObj::Perl_default_protect
 #define del_he                 CPerlObj::Perl_del_he
 #define del_sv                 CPerlObj::Perl_del_sv
 #define del_xiv                        CPerlObj::Perl_del_xiv
 #define del_xnv                        CPerlObj::Perl_del_xnv
 #define del_xpv                        CPerlObj::Perl_del_xpv
 #define del_xrv                        CPerlObj::Perl_del_xrv
-#define delimcpy               CPerlObj::Perl_delimcpy
 #define depcom                 CPerlObj::Perl_depcom
-#define deprecate              CPerlObj::Perl_deprecate
-#define die                    CPerlObj::Perl_die
-#define die_where              CPerlObj::Perl_die_where
 #define div128                 CPerlObj::Perl_div128
-#define do_aexec               CPerlObj::Perl_do_aexec
 #define do_aspawn              CPerlObj::Perl_do_aspawn
-#define do_binmode             CPerlObj::Perl_do_binmode
-#define do_chomp               CPerlObj::Perl_do_chomp
-#define do_chop                        CPerlObj::Perl_do_chop
 #define do_clean_all           CPerlObj::Perl_do_clean_all
 #define do_clean_named_objs    CPerlObj::Perl_do_clean_named_objs
 #define do_clean_objs          CPerlObj::Perl_do_clean_objs
-#define do_close               CPerlObj::Perl_do_close
-#define do_eof                 CPerlObj::Perl_do_eof
-#define do_exec                        CPerlObj::Perl_do_exec
-#define do_exec3               CPerlObj::Perl_do_exec3
-#define do_execfree            CPerlObj::Perl_do_execfree
-#define do_gv_dump             CPerlObj::Perl_do_gv_dump
-#define do_gvgv_dump           CPerlObj::Perl_do_gvgv_dump
-#define do_hv_dump             CPerlObj::Perl_do_hv_dump
-#define do_ipcctl              CPerlObj::Perl_do_ipcctl
-#define do_ipcget              CPerlObj::Perl_do_ipcget
-#define do_join                        CPerlObj::Perl_do_join
-#define do_kv                  CPerlObj::Perl_do_kv
-#define do_magic_dump          CPerlObj::Perl_do_magic_dump
-#define do_msgrcv              CPerlObj::Perl_do_msgrcv
-#define do_msgsnd              CPerlObj::Perl_do_msgsnd
-#define do_op_dump             CPerlObj::Perl_do_op_dump
-#define do_open                        CPerlObj::Perl_do_open
-#define do_pipe                        CPerlObj::Perl_do_pipe
-#define do_pmop_dump           CPerlObj::Perl_do_pmop_dump
-#define do_print               CPerlObj::Perl_do_print
-#define do_readline            CPerlObj::Perl_do_readline
 #define do_report_used         CPerlObj::Perl_do_report_used
-#define do_seek                        CPerlObj::Perl_do_seek
-#define do_semop               CPerlObj::Perl_do_semop
-#define do_shmio               CPerlObj::Perl_do_shmio
-#define do_sprintf             CPerlObj::Perl_do_sprintf
-#define do_sv_dump             CPerlObj::Perl_do_sv_dump
-#define do_sysseek             CPerlObj::Perl_do_sysseek
-#define do_tell                        CPerlObj::Perl_do_tell
-#define do_trans               CPerlObj::Perl_do_trans
 #define do_trans_CC_complex    CPerlObj::Perl_do_trans_CC_complex
 #define do_trans_CC_count      CPerlObj::Perl_do_trans_CC_count
 #define do_trans_CC_simple     CPerlObj::Perl_do_trans_CC_simple
 #define do_trans_UU_complex    CPerlObj::Perl_do_trans_UU_complex
 #define do_trans_UU_count      CPerlObj::Perl_do_trans_UU_count
 #define do_trans_UU_simple     CPerlObj::Perl_do_trans_UU_simple
-#define do_vecset              CPerlObj::Perl_do_vecset
-#define do_vop                 CPerlObj::Perl_do_vop
 #define docatch                        CPerlObj::Perl_docatch
 #define docatch_body           CPerlObj::Perl_docatch_body
 #define doencodes              CPerlObj::Perl_doencodes
 #define doeval                 CPerlObj::Perl_doeval
-#define dofile                 CPerlObj::Perl_dofile
 #define dofindlabel            CPerlObj::Perl_dofindlabel
 #define doform                 CPerlObj::Perl_doform
 #define doopen_pmc             CPerlObj::Perl_doopen_pmc
 #define dopoptoloop            CPerlObj::Perl_dopoptoloop
 #define dopoptosub             CPerlObj::Perl_dopoptosub
 #define dopoptosub_at          CPerlObj::Perl_dopoptosub_at
-#define dounwind               CPerlObj::Perl_dounwind
-#define dowantarray            CPerlObj::Perl_dowantarray
 #define dump                   CPerlObj::Perl_dump
-#define dump_all               CPerlObj::Perl_dump_all
-#define dump_eval              CPerlObj::Perl_dump_eval
-#define dump_fds               CPerlObj::Perl_dump_fds
-#define dump_form              CPerlObj::Perl_dump_form
-#define dump_indent            CPerlObj::Perl_dump_indent
-#define dump_mstats            CPerlObj::Perl_dump_mstats
-#define dump_packsubs          CPerlObj::Perl_dump_packsubs
-#define dump_sub               CPerlObj::Perl_dump_sub
 #define dumpuntil              CPerlObj::Perl_dumpuntil
 #define emulate_eaccess                CPerlObj::Perl_emulate_eaccess
-#define fbm_compile            CPerlObj::Perl_fbm_compile
-#define fbm_instr              CPerlObj::Perl_fbm_instr
-#define filter_add             CPerlObj::Perl_filter_add
-#define filter_del             CPerlObj::Perl_filter_del
 #define filter_gets            CPerlObj::Perl_filter_gets
-#define filter_read            CPerlObj::Perl_filter_read
 #define find_beginning         CPerlObj::Perl_find_beginning
-#define find_script            CPerlObj::Perl_find_script
-#define find_threadsv          CPerlObj::Perl_find_threadsv
-#define fold_constants         CPerlObj::Perl_fold_constants
 #define forbid_setid           CPerlObj::Perl_forbid_setid
 #define force_ident            CPerlObj::Perl_force_ident
-#define force_list             CPerlObj::Perl_force_list
 #define force_next             CPerlObj::Perl_force_next
 #define force_version          CPerlObj::Perl_force_version
 #define force_word             CPerlObj::Perl_force_word
-#define form                   CPerlObj::Perl_form
-#define fprintf                        CPerlObj::Perl_fprintf
 #define free_closures          CPerlObj::Perl_free_closures
-#define free_tmps              CPerlObj::Perl_free_tmps
-#define gen_constant_list      CPerlObj::Perl_gen_constant_list
 #define get_db_sub             CPerlObj::Perl_get_db_sub
-#define get_no_modify          CPerlObj::Perl_get_no_modify
-#define get_op_descs           CPerlObj::Perl_get_op_descs
-#define get_op_names           CPerlObj::Perl_get_op_names
-#define get_opargs             CPerlObj::Perl_get_opargs
-#define get_vtbl               CPerlObj::Perl_get_vtbl
-#define gp_free                        CPerlObj::Perl_gp_free
-#define gp_ref                 CPerlObj::Perl_gp_ref
-#define gv_AVadd               CPerlObj::Perl_gv_AVadd
-#define gv_HVadd               CPerlObj::Perl_gv_HVadd
-#define gv_IOadd               CPerlObj::Perl_gv_IOadd
-#define gv_autoload4           CPerlObj::Perl_gv_autoload4
-#define gv_check               CPerlObj::Perl_gv_check
-#define gv_dump                        CPerlObj::Perl_gv_dump
-#define gv_efullname           CPerlObj::Perl_gv_efullname
-#define gv_efullname3          CPerlObj::Perl_gv_efullname3
 #define gv_ename               CPerlObj::Perl_gv_ename
-#define gv_fetchfile           CPerlObj::Perl_gv_fetchfile
-#define gv_fetchmeth           CPerlObj::Perl_gv_fetchmeth
-#define gv_fetchmethod         CPerlObj::Perl_gv_fetchmethod
-#define gv_fetchmethod_autoload        CPerlObj::Perl_gv_fetchmethod_autoload
-#define gv_fetchpv             CPerlObj::Perl_gv_fetchpv
-#define gv_fullname            CPerlObj::Perl_gv_fullname
-#define gv_fullname3           CPerlObj::Perl_gv_fullname3
-#define gv_init                        CPerlObj::Perl_gv_init
 #define gv_init_sv             CPerlObj::Perl_gv_init_sv
-#define gv_stashpv             CPerlObj::Perl_gv_stashpv
-#define gv_stashpvn            CPerlObj::Perl_gv_stashpvn
-#define gv_stashsv             CPerlObj::Perl_gv_stashsv
 #define hfreeentries           CPerlObj::Perl_hfreeentries
 #define hsplit                 CPerlObj::Perl_hsplit
-#define hv_clear               CPerlObj::Perl_hv_clear
-#define hv_delayfree_ent       CPerlObj::Perl_hv_delayfree_ent
-#define hv_delete              CPerlObj::Perl_hv_delete
-#define hv_delete_ent          CPerlObj::Perl_hv_delete_ent
-#define hv_exists              CPerlObj::Perl_hv_exists
-#define hv_exists_ent          CPerlObj::Perl_hv_exists_ent
-#define hv_fetch               CPerlObj::Perl_hv_fetch
-#define hv_fetch_ent           CPerlObj::Perl_hv_fetch_ent
-#define hv_free_ent            CPerlObj::Perl_hv_free_ent
-#define hv_iterinit            CPerlObj::Perl_hv_iterinit
-#define hv_iterkey             CPerlObj::Perl_hv_iterkey
-#define hv_iterkeysv           CPerlObj::Perl_hv_iterkeysv
-#define hv_iternext            CPerlObj::Perl_hv_iternext
-#define hv_iternextsv          CPerlObj::Perl_hv_iternextsv
-#define hv_iterval             CPerlObj::Perl_hv_iterval
-#define hv_ksplit              CPerlObj::Perl_hv_ksplit
-#define hv_magic               CPerlObj::Perl_hv_magic
-#define hv_store               CPerlObj::Perl_hv_store
-#define hv_store_ent           CPerlObj::Perl_hv_store_ent
-#define hv_undef               CPerlObj::Perl_hv_undef
-#define ibcmp                  CPerlObj::Perl_ibcmp
-#define ibcmp_locale           CPerlObj::Perl_ibcmp_locale
 #define incl_perldb            CPerlObj::Perl_incl_perldb
 #define incline                        CPerlObj::Perl_incline
 #define incpush                        CPerlObj::Perl_incpush
-#define ingroup                        CPerlObj::Perl_ingroup
 #define init_debugger          CPerlObj::Perl_init_debugger
 #define init_ids               CPerlObj::Perl_init_ids
 #define init_interp            CPerlObj::Perl_init_interp
 #define init_perllib           CPerlObj::Perl_init_perllib
 #define init_postdump_symbols  CPerlObj::Perl_init_postdump_symbols
 #define init_predump_symbols   CPerlObj::Perl_init_predump_symbols
-#define init_stacks            CPerlObj::Perl_init_stacks
-#define init_thread_intern     CPerlObj::Perl_init_thread_intern
-#define instr                  CPerlObj::Perl_instr
-#define intro_my               CPerlObj::Perl_intro_my
 #define intuit_method          CPerlObj::Perl_intuit_method
 #define intuit_more            CPerlObj::Perl_intuit_more
-#define invert                 CPerlObj::Perl_invert
-#define io_close               CPerlObj::Perl_io_close
 #define is_an_int              CPerlObj::Perl_is_an_int
 #define is_handle_constructor  CPerlObj::Perl_is_handle_constructor
-#define is_uni_alnum           CPerlObj::Perl_is_uni_alnum
-#define is_uni_alnum_lc                CPerlObj::Perl_is_uni_alnum_lc
-#define is_uni_alpha           CPerlObj::Perl_is_uni_alpha
-#define is_uni_alpha_lc                CPerlObj::Perl_is_uni_alpha_lc
-#define is_uni_digit           CPerlObj::Perl_is_uni_digit
-#define is_uni_digit_lc                CPerlObj::Perl_is_uni_digit_lc
-#define is_uni_idfirst         CPerlObj::Perl_is_uni_idfirst
-#define is_uni_idfirst_lc      CPerlObj::Perl_is_uni_idfirst_lc
-#define is_uni_lower           CPerlObj::Perl_is_uni_lower
-#define is_uni_lower_lc                CPerlObj::Perl_is_uni_lower_lc
-#define is_uni_print           CPerlObj::Perl_is_uni_print
-#define is_uni_print_lc                CPerlObj::Perl_is_uni_print_lc
-#define is_uni_space           CPerlObj::Perl_is_uni_space
-#define is_uni_space_lc                CPerlObj::Perl_is_uni_space_lc
-#define is_uni_upper           CPerlObj::Perl_is_uni_upper
-#define is_uni_upper_lc                CPerlObj::Perl_is_uni_upper_lc
-#define is_utf8_alnum          CPerlObj::Perl_is_utf8_alnum
-#define is_utf8_alpha          CPerlObj::Perl_is_utf8_alpha
-#define is_utf8_digit          CPerlObj::Perl_is_utf8_digit
-#define is_utf8_idfirst                CPerlObj::Perl_is_utf8_idfirst
-#define is_utf8_lower          CPerlObj::Perl_is_utf8_lower
-#define is_utf8_mark           CPerlObj::Perl_is_utf8_mark
-#define is_utf8_print          CPerlObj::Perl_is_utf8_print
-#define is_utf8_space          CPerlObj::Perl_is_utf8_space
-#define is_utf8_upper          CPerlObj::Perl_is_utf8_upper
 #define isa_lookup             CPerlObj::Perl_isa_lookup
-#define jmaybe                 CPerlObj::Perl_jmaybe
-#define keyword                        CPerlObj::Perl_keyword
-#define leave_scope            CPerlObj::Perl_leave_scope
-#define lex_end                        CPerlObj::Perl_lex_end
-#define lex_start              CPerlObj::Perl_lex_start
-#define linklist               CPerlObj::Perl_linklist
-#define list                   CPerlObj::Perl_list
 #define list_assignment                CPerlObj::Perl_list_assignment
-#define listkids               CPerlObj::Perl_listkids
-#define localize               CPerlObj::Perl_localize
-#define looks_like_number      CPerlObj::Perl_looks_like_number
 #define lop                    CPerlObj::Perl_lop
-#define magic_clear_all_env    CPerlObj::Perl_magic_clear_all_env
-#define magic_clearenv         CPerlObj::Perl_magic_clearenv
-#define magic_clearpack                CPerlObj::Perl_magic_clearpack
-#define magic_clearsig         CPerlObj::Perl_magic_clearsig
-#define magic_dump             CPerlObj::Perl_magic_dump
-#define magic_existspack       CPerlObj::Perl_magic_existspack
-#define magic_freeregexp       CPerlObj::Perl_magic_freeregexp
-#define magic_get              CPerlObj::Perl_magic_get
-#define magic_getarylen                CPerlObj::Perl_magic_getarylen
-#define magic_getdefelem       CPerlObj::Perl_magic_getdefelem
-#define magic_getglob          CPerlObj::Perl_magic_getglob
-#define magic_getnkeys         CPerlObj::Perl_magic_getnkeys
-#define magic_getpack          CPerlObj::Perl_magic_getpack
-#define magic_getpos           CPerlObj::Perl_magic_getpos
-#define magic_getsig           CPerlObj::Perl_magic_getsig
-#define magic_getsubstr                CPerlObj::Perl_magic_getsubstr
-#define magic_gettaint         CPerlObj::Perl_magic_gettaint
-#define magic_getuvar          CPerlObj::Perl_magic_getuvar
-#define magic_getvec           CPerlObj::Perl_magic_getvec
-#define magic_killbackrefs     CPerlObj::Perl_magic_killbackrefs
-#define magic_len              CPerlObj::Perl_magic_len
 #define magic_methcall         CPerlObj::Perl_magic_methcall
 #define magic_methcall         CPerlObj::Perl_magic_methcall
 #define magic_methpack         CPerlObj::Perl_magic_methpack
-#define magic_mutexfree                CPerlObj::Perl_magic_mutexfree
-#define magic_nextpack         CPerlObj::Perl_magic_nextpack
-#define magic_regdata_cnt      CPerlObj::Perl_magic_regdata_cnt
-#define magic_regdatum_get     CPerlObj::Perl_magic_regdatum_get
-#define magic_set              CPerlObj::Perl_magic_set
-#define magic_set_all_env      CPerlObj::Perl_magic_set_all_env
-#define magic_setamagic                CPerlObj::Perl_magic_setamagic
-#define magic_setarylen                CPerlObj::Perl_magic_setarylen
-#define magic_setbm            CPerlObj::Perl_magic_setbm
-#define magic_setcollxfrm      CPerlObj::Perl_magic_setcollxfrm
-#define magic_setdbline                CPerlObj::Perl_magic_setdbline
-#define magic_setdefelem       CPerlObj::Perl_magic_setdefelem
-#define magic_setenv           CPerlObj::Perl_magic_setenv
-#define magic_setfm            CPerlObj::Perl_magic_setfm
-#define magic_setglob          CPerlObj::Perl_magic_setglob
-#define magic_setisa           CPerlObj::Perl_magic_setisa
-#define magic_setmglob         CPerlObj::Perl_magic_setmglob
-#define magic_setnkeys         CPerlObj::Perl_magic_setnkeys
-#define magic_setpack          CPerlObj::Perl_magic_setpack
-#define magic_setpos           CPerlObj::Perl_magic_setpos
-#define magic_setsig           CPerlObj::Perl_magic_setsig
-#define magic_setsubstr                CPerlObj::Perl_magic_setsubstr
-#define magic_settaint         CPerlObj::Perl_magic_settaint
-#define magic_setuvar          CPerlObj::Perl_magic_setuvar
-#define magic_setvec           CPerlObj::Perl_magic_setvec
-#define magic_sizepack         CPerlObj::Perl_magic_sizepack
-#define magic_wipepack         CPerlObj::Perl_magic_wipepack
-#define magicname              CPerlObj::Perl_magicname
-#define malloced_size          CPerlObj::Perl_malloced_size
-#define markstack_grow         CPerlObj::Perl_markstack_grow
-#define mem_collxfrm           CPerlObj::Perl_mem_collxfrm
-#define mess                   CPerlObj::Perl_mess
+#define main                   CPerlObj::Perl_main
 #define mess_alloc             CPerlObj::Perl_mess_alloc
-#define mg_clear               CPerlObj::Perl_mg_clear
-#define mg_copy                        CPerlObj::Perl_mg_copy
-#define mg_find                        CPerlObj::Perl_mg_find
-#define mg_free                        CPerlObj::Perl_mg_free
-#define mg_get                 CPerlObj::Perl_mg_get
-#define mg_length              CPerlObj::Perl_mg_length
-#define mg_magical             CPerlObj::Perl_mg_magical
-#define mg_set                 CPerlObj::Perl_mg_set
-#define mg_size                        CPerlObj::Perl_mg_size
 #define missingterm            CPerlObj::Perl_missingterm
-#define mod                    CPerlObj::Perl_mod
 #define modkids                        CPerlObj::Perl_modkids
 #define more_he                        CPerlObj::Perl_more_he
 #define more_sv                        CPerlObj::Perl_more_sv
 #define more_xnv               CPerlObj::Perl_more_xnv
 #define more_xpv               CPerlObj::Perl_more_xpv
 #define more_xrv               CPerlObj::Perl_more_xrv
-#define moreswitches           CPerlObj::Perl_moreswitches
 #define mul128                 CPerlObj::Perl_mul128
-#define my                     CPerlObj::Perl_my
-#define my_bcopy               CPerlObj::Perl_my_bcopy
-#define my_bzero               CPerlObj::Perl_my_bzero
-#define my_chsize              CPerlObj::Perl_my_chsize
-#define my_exit                        CPerlObj::Perl_my_exit
 #define my_exit_jump           CPerlObj::Perl_my_exit_jump
-#define my_failure_exit                CPerlObj::Perl_my_failure_exit
-#define my_fflush_all          CPerlObj::Perl_my_fflush_all
-#define my_htonl               CPerlObj::Perl_my_htonl
-#define my_lstat               CPerlObj::Perl_my_lstat
-#define my_memcmp              CPerlObj::Perl_my_memcmp
-#define my_memset              CPerlObj::Perl_my_memset
-#define my_ntohl               CPerlObj::Perl_my_ntohl
-#define my_pclose              CPerlObj::Perl_my_pclose
-#define my_popen               CPerlObj::Perl_my_popen
 #define my_safemalloc          CPerlObj::Perl_my_safemalloc
-#define my_setenv              CPerlObj::Perl_my_setenv
-#define my_stat                        CPerlObj::Perl_my_stat
-#define my_swap                        CPerlObj::Perl_my_swap
-#define my_unexec              CPerlObj::Perl_my_unexec
-#define newANONHASH            CPerlObj::Perl_newANONHASH
-#define newANONLIST            CPerlObj::Perl_newANONLIST
-#define newANONSUB             CPerlObj::Perl_newANONSUB
-#define newASSIGNOP            CPerlObj::Perl_newASSIGNOP
-#define newAV                  CPerlObj::Perl_newAV
-#define newAVREF               CPerlObj::Perl_newAVREF
-#define newBINOP               CPerlObj::Perl_newBINOP
-#define newCONDOP              CPerlObj::Perl_newCONDOP
-#define newCONSTSUB            CPerlObj::Perl_newCONSTSUB
-#define newCVREF               CPerlObj::Perl_newCVREF
 #define newDEFSVOP             CPerlObj::Perl_newDEFSVOP
-#define newFORM                        CPerlObj::Perl_newFORM
-#define newFOROP               CPerlObj::Perl_newFOROP
-#define newGVOP                        CPerlObj::Perl_newGVOP
-#define newGVREF               CPerlObj::Perl_newGVREF
-#define newGVgen               CPerlObj::Perl_newGVgen
-#define newHV                  CPerlObj::Perl_newHV
-#define newHVREF               CPerlObj::Perl_newHVREF
-#define newHVhv                        CPerlObj::Perl_newHVhv
-#define newIO                  CPerlObj::Perl_newIO
-#define newLISTOP              CPerlObj::Perl_newLISTOP
-#define newLOGOP               CPerlObj::Perl_newLOGOP
-#define newLOOPEX              CPerlObj::Perl_newLOOPEX
-#define newLOOPOP              CPerlObj::Perl_newLOOPOP
-#define newNULLLIST            CPerlObj::Perl_newNULLLIST
-#define newOP                  CPerlObj::Perl_newOP
-#define newPMOP                        CPerlObj::Perl_newPMOP
-#define newPROG                        CPerlObj::Perl_newPROG
-#define newPVOP                        CPerlObj::Perl_newPVOP
-#define newRANGE               CPerlObj::Perl_newRANGE
-#define newRV                  CPerlObj::Perl_newRV
-#define newRV_noinc            CPerlObj::Perl_newRV_noinc
-#define newSLICEOP             CPerlObj::Perl_newSLICEOP
-#define newSTATEOP             CPerlObj::Perl_newSTATEOP
-#define newSUB                 CPerlObj::Perl_newSUB
-#define newSV                  CPerlObj::Perl_newSV
-#define newSVOP                        CPerlObj::Perl_newSVOP
-#define newSVREF               CPerlObj::Perl_newSVREF
-#define newSViv                        CPerlObj::Perl_newSViv
-#define newSVnv                        CPerlObj::Perl_newSVnv
-#define newSVpv                        CPerlObj::Perl_newSVpv
-#define newSVpvf               CPerlObj::Perl_newSVpvf
-#define newSVpvn               CPerlObj::Perl_newSVpvn
-#define newSVrv                        CPerlObj::Perl_newSVrv
-#define newSVsv                        CPerlObj::Perl_newSVsv
-#define newUNOP                        CPerlObj::Perl_newUNOP
-#define newWHILEOP             CPerlObj::Perl_newWHILEOP
-#define newXS                  CPerlObj::Perl_newXS
 #define new_constant           CPerlObj::Perl_new_constant
 #define new_he                 CPerlObj::Perl_new_he
 #define new_logop              CPerlObj::Perl_new_logop
-#define new_stackinfo          CPerlObj::Perl_new_stackinfo
-#define new_struct_thread      CPerlObj::Perl_new_struct_thread
 #define new_xiv                        CPerlObj::Perl_new_xiv
 #define new_xnv                        CPerlObj::Perl_new_xnv
 #define new_xpv                        CPerlObj::Perl_new_xpv
 #define new_xrv                        CPerlObj::Perl_new_xrv
-#define nextargv               CPerlObj::Perl_nextargv
 #define nextchar               CPerlObj::Perl_nextchar
-#define ninstr                 CPerlObj::Perl_ninstr
 #define no_bareword_allowed    CPerlObj::Perl_no_bareword_allowed
 #define no_fh_allowed          CPerlObj::Perl_no_fh_allowed
 #define no_op                  CPerlObj::Perl_no_op
 #define not_a_number           CPerlObj::Perl_not_a_number
 #define nuke_stacks            CPerlObj::Perl_nuke_stacks
 #define null                   CPerlObj::Perl_null
-#define oopsAV                 CPerlObj::Perl_oopsAV
-#define oopsCV                 CPerlObj::Perl_oopsCV
-#define oopsHV                 CPerlObj::Perl_oopsHV
-#define op_const_sv            CPerlObj::Perl_op_const_sv
-#define op_dump                        CPerlObj::Perl_op_dump
-#define op_free                        CPerlObj::Perl_op_free
 #define open_script            CPerlObj::Perl_open_script
-#define package                        CPerlObj::Perl_package
-#define pad_alloc              CPerlObj::Perl_pad_alloc
-#define pad_allocmy            CPerlObj::Perl_pad_allocmy
 #define pad_findlex            CPerlObj::Perl_pad_findlex
-#define pad_findmy             CPerlObj::Perl_pad_findmy
-#define pad_free               CPerlObj::Perl_pad_free
-#define pad_leavemy            CPerlObj::Perl_pad_leavemy
-#define pad_reset              CPerlObj::Perl_pad_reset
-#define pad_sv                 CPerlObj::Perl_pad_sv
-#define pad_swipe              CPerlObj::Perl_pad_swipe
-#define peep                   CPerlObj::Perl_peep
+#define perl_alloc             CPerlObj::perl_alloc
 #define perl_atexit            CPerlObj::perl_atexit
 #define perl_call_argv         CPerlObj::perl_call_argv
 #define perl_call_body         CPerlObj::perl_call_body
 #define perl_call_sv           CPerlObj::perl_call_sv
 #define perl_call_xbody                CPerlObj::perl_call_xbody
 #define perl_construct         CPerlObj::perl_construct
+#define perl_construct         CPerlObj::perl_construct
+#define perl_destruct          CPerlObj::perl_destruct
 #define perl_destruct          CPerlObj::perl_destruct
 #define perl_eval_pv           CPerlObj::perl_eval_pv
 #define perl_eval_sv           CPerlObj::perl_eval_sv
 #define perl_free              CPerlObj::perl_free
+#define perl_free              CPerlObj::perl_free
 #define perl_get_av            CPerlObj::perl_get_av
 #define perl_get_cv            CPerlObj::perl_get_cv
 #define perl_get_hv            CPerlObj::perl_get_hv
 #define perl_new_ctype         CPerlObj::perl_new_ctype
 #define perl_new_numeric       CPerlObj::perl_new_numeric
 #define perl_parse             CPerlObj::perl_parse
+#define perl_parse             CPerlObj::perl_parse
 #define perl_parse_body                CPerlObj::perl_parse_body
 #define perl_require_pv                CPerlObj::perl_require_pv
 #define perl_run               CPerlObj::perl_run
+#define perl_run               CPerlObj::perl_run
 #define perl_run_body          CPerlObj::perl_run_body
 #define perl_set_numeric_local CPerlObj::perl_set_numeric_local
 #define perl_set_numeric_standard      CPerlObj::perl_set_numeric_standard
-#define pidgone                        CPerlObj::Perl_pidgone
-#define pmflag                 CPerlObj::Perl_pmflag
-#define pmop_dump              CPerlObj::Perl_pmop_dump
-#define pmruntime              CPerlObj::Perl_pmruntime
-#define pmtrans                        CPerlObj::Perl_pmtrans
-#define pop_return             CPerlObj::Perl_pop_return
-#define pop_scope              CPerlObj::Perl_pop_scope
-#define pp_aassign             CPerlObj::Perl_pp_aassign
-#define pp_abs                 CPerlObj::Perl_pp_abs
-#define pp_accept              CPerlObj::Perl_pp_accept
-#define pp_add                 CPerlObj::Perl_pp_add
-#define pp_aelem               CPerlObj::Perl_pp_aelem
-#define pp_aelemfast           CPerlObj::Perl_pp_aelemfast
-#define pp_alarm               CPerlObj::Perl_pp_alarm
-#define pp_and                 CPerlObj::Perl_pp_and
-#define pp_andassign           CPerlObj::Perl_pp_andassign
-#define pp_anoncode            CPerlObj::Perl_pp_anoncode
-#define pp_anonhash            CPerlObj::Perl_pp_anonhash
-#define pp_anonlist            CPerlObj::Perl_pp_anonlist
-#define pp_aslice              CPerlObj::Perl_pp_aslice
-#define pp_atan2               CPerlObj::Perl_pp_atan2
-#define pp_av2arylen           CPerlObj::Perl_pp_av2arylen
-#define pp_backtick            CPerlObj::Perl_pp_backtick
-#define pp_bind                        CPerlObj::Perl_pp_bind
-#define pp_binmode             CPerlObj::Perl_pp_binmode
-#define pp_bit_and             CPerlObj::Perl_pp_bit_and
-#define pp_bit_or              CPerlObj::Perl_pp_bit_or
-#define pp_bit_xor             CPerlObj::Perl_pp_bit_xor
-#define pp_bless               CPerlObj::Perl_pp_bless
-#define pp_caller              CPerlObj::Perl_pp_caller
-#define pp_chdir               CPerlObj::Perl_pp_chdir
-#define pp_chmod               CPerlObj::Perl_pp_chmod
-#define pp_chomp               CPerlObj::Perl_pp_chomp
-#define pp_chop                        CPerlObj::Perl_pp_chop
-#define pp_chown               CPerlObj::Perl_pp_chown
-#define pp_chr                 CPerlObj::Perl_pp_chr
-#define pp_chroot              CPerlObj::Perl_pp_chroot
-#define pp_close               CPerlObj::Perl_pp_close
-#define pp_closedir            CPerlObj::Perl_pp_closedir
-#define pp_complement          CPerlObj::Perl_pp_complement
-#define pp_concat              CPerlObj::Perl_pp_concat
-#define pp_cond_expr           CPerlObj::Perl_pp_cond_expr
-#define pp_connect             CPerlObj::Perl_pp_connect
-#define pp_const               CPerlObj::Perl_pp_const
-#define pp_cos                 CPerlObj::Perl_pp_cos
-#define pp_crypt               CPerlObj::Perl_pp_crypt
-#define pp_dbmclose            CPerlObj::Perl_pp_dbmclose
-#define pp_dbmopen             CPerlObj::Perl_pp_dbmopen
-#define pp_dbstate             CPerlObj::Perl_pp_dbstate
-#define pp_defined             CPerlObj::Perl_pp_defined
-#define pp_delete              CPerlObj::Perl_pp_delete
-#define pp_die                 CPerlObj::Perl_pp_die
-#define pp_divide              CPerlObj::Perl_pp_divide
-#define pp_dofile              CPerlObj::Perl_pp_dofile
-#define pp_dump                        CPerlObj::Perl_pp_dump
-#define pp_each                        CPerlObj::Perl_pp_each
-#define pp_egrent              CPerlObj::Perl_pp_egrent
-#define pp_ehostent            CPerlObj::Perl_pp_ehostent
-#define pp_enetent             CPerlObj::Perl_pp_enetent
-#define pp_enter               CPerlObj::Perl_pp_enter
-#define pp_entereval           CPerlObj::Perl_pp_entereval
-#define pp_enteriter           CPerlObj::Perl_pp_enteriter
-#define pp_enterloop           CPerlObj::Perl_pp_enterloop
-#define pp_entersub            CPerlObj::Perl_pp_entersub
-#define pp_entertry            CPerlObj::Perl_pp_entertry
-#define pp_enterwrite          CPerlObj::Perl_pp_enterwrite
-#define pp_eof                 CPerlObj::Perl_pp_eof
-#define pp_eprotoent           CPerlObj::Perl_pp_eprotoent
-#define pp_epwent              CPerlObj::Perl_pp_epwent
-#define pp_eq                  CPerlObj::Perl_pp_eq
-#define pp_eservent            CPerlObj::Perl_pp_eservent
-#define pp_exec                        CPerlObj::Perl_pp_exec
-#define pp_exists              CPerlObj::Perl_pp_exists
-#define pp_exit                        CPerlObj::Perl_pp_exit
-#define pp_exp                 CPerlObj::Perl_pp_exp
-#define pp_fcntl               CPerlObj::Perl_pp_fcntl
-#define pp_fileno              CPerlObj::Perl_pp_fileno
-#define pp_flip                        CPerlObj::Perl_pp_flip
-#define pp_flock               CPerlObj::Perl_pp_flock
-#define pp_flop                        CPerlObj::Perl_pp_flop
-#define pp_fork                        CPerlObj::Perl_pp_fork
-#define pp_formline            CPerlObj::Perl_pp_formline
-#define pp_ftatime             CPerlObj::Perl_pp_ftatime
-#define pp_ftbinary            CPerlObj::Perl_pp_ftbinary
-#define pp_ftblk               CPerlObj::Perl_pp_ftblk
-#define pp_ftchr               CPerlObj::Perl_pp_ftchr
-#define pp_ftctime             CPerlObj::Perl_pp_ftctime
-#define pp_ftdir               CPerlObj::Perl_pp_ftdir
-#define pp_fteexec             CPerlObj::Perl_pp_fteexec
-#define pp_fteowned            CPerlObj::Perl_pp_fteowned
-#define pp_fteread             CPerlObj::Perl_pp_fteread
-#define pp_ftewrite            CPerlObj::Perl_pp_ftewrite
-#define pp_ftfile              CPerlObj::Perl_pp_ftfile
-#define pp_ftis                        CPerlObj::Perl_pp_ftis
-#define pp_ftlink              CPerlObj::Perl_pp_ftlink
-#define pp_ftmtime             CPerlObj::Perl_pp_ftmtime
-#define pp_ftpipe              CPerlObj::Perl_pp_ftpipe
-#define pp_ftrexec             CPerlObj::Perl_pp_ftrexec
-#define pp_ftrowned            CPerlObj::Perl_pp_ftrowned
-#define pp_ftrread             CPerlObj::Perl_pp_ftrread
-#define pp_ftrwrite            CPerlObj::Perl_pp_ftrwrite
-#define pp_ftsgid              CPerlObj::Perl_pp_ftsgid
-#define pp_ftsize              CPerlObj::Perl_pp_ftsize
-#define pp_ftsock              CPerlObj::Perl_pp_ftsock
-#define pp_ftsuid              CPerlObj::Perl_pp_ftsuid
-#define pp_ftsvtx              CPerlObj::Perl_pp_ftsvtx
-#define pp_fttext              CPerlObj::Perl_pp_fttext
-#define pp_fttty               CPerlObj::Perl_pp_fttty
-#define pp_ftzero              CPerlObj::Perl_pp_ftzero
-#define pp_ge                  CPerlObj::Perl_pp_ge
-#define pp_gelem               CPerlObj::Perl_pp_gelem
-#define pp_getc                        CPerlObj::Perl_pp_getc
-#define pp_getlogin            CPerlObj::Perl_pp_getlogin
-#define pp_getpeername         CPerlObj::Perl_pp_getpeername
-#define pp_getpgrp             CPerlObj::Perl_pp_getpgrp
-#define pp_getppid             CPerlObj::Perl_pp_getppid
-#define pp_getpriority         CPerlObj::Perl_pp_getpriority
-#define pp_getsockname         CPerlObj::Perl_pp_getsockname
-#define pp_ggrent              CPerlObj::Perl_pp_ggrent
-#define pp_ggrgid              CPerlObj::Perl_pp_ggrgid
-#define pp_ggrnam              CPerlObj::Perl_pp_ggrnam
-#define pp_ghbyaddr            CPerlObj::Perl_pp_ghbyaddr
-#define pp_ghbyname            CPerlObj::Perl_pp_ghbyname
-#define pp_ghostent            CPerlObj::Perl_pp_ghostent
-#define pp_glob                        CPerlObj::Perl_pp_glob
-#define pp_gmtime              CPerlObj::Perl_pp_gmtime
-#define pp_gnbyaddr            CPerlObj::Perl_pp_gnbyaddr
-#define pp_gnbyname            CPerlObj::Perl_pp_gnbyname
-#define pp_gnetent             CPerlObj::Perl_pp_gnetent
-#define pp_goto                        CPerlObj::Perl_pp_goto
-#define pp_gpbyname            CPerlObj::Perl_pp_gpbyname
-#define pp_gpbynumber          CPerlObj::Perl_pp_gpbynumber
-#define pp_gprotoent           CPerlObj::Perl_pp_gprotoent
-#define pp_gpwent              CPerlObj::Perl_pp_gpwent
-#define pp_gpwnam              CPerlObj::Perl_pp_gpwnam
-#define pp_gpwuid              CPerlObj::Perl_pp_gpwuid
-#define pp_grepstart           CPerlObj::Perl_pp_grepstart
-#define pp_grepwhile           CPerlObj::Perl_pp_grepwhile
-#define pp_gsbyname            CPerlObj::Perl_pp_gsbyname
-#define pp_gsbyport            CPerlObj::Perl_pp_gsbyport
-#define pp_gservent            CPerlObj::Perl_pp_gservent
-#define pp_gsockopt            CPerlObj::Perl_pp_gsockopt
-#define pp_gt                  CPerlObj::Perl_pp_gt
-#define pp_gv                  CPerlObj::Perl_pp_gv
-#define pp_gvsv                        CPerlObj::Perl_pp_gvsv
-#define pp_helem               CPerlObj::Perl_pp_helem
-#define pp_hex                 CPerlObj::Perl_pp_hex
-#define pp_hslice              CPerlObj::Perl_pp_hslice
-#define pp_i_add               CPerlObj::Perl_pp_i_add
-#define pp_i_divide            CPerlObj::Perl_pp_i_divide
-#define pp_i_eq                        CPerlObj::Perl_pp_i_eq
-#define pp_i_ge                        CPerlObj::Perl_pp_i_ge
-#define pp_i_gt                        CPerlObj::Perl_pp_i_gt
-#define pp_i_le                        CPerlObj::Perl_pp_i_le
-#define pp_i_lt                        CPerlObj::Perl_pp_i_lt
-#define pp_i_modulo            CPerlObj::Perl_pp_i_modulo
-#define pp_i_multiply          CPerlObj::Perl_pp_i_multiply
-#define pp_i_ncmp              CPerlObj::Perl_pp_i_ncmp
-#define pp_i_ne                        CPerlObj::Perl_pp_i_ne
-#define pp_i_negate            CPerlObj::Perl_pp_i_negate
-#define pp_i_subtract          CPerlObj::Perl_pp_i_subtract
-#define pp_index               CPerlObj::Perl_pp_index
-#define pp_int                 CPerlObj::Perl_pp_int
-#define pp_ioctl               CPerlObj::Perl_pp_ioctl
-#define pp_iter                        CPerlObj::Perl_pp_iter
-#define pp_join                        CPerlObj::Perl_pp_join
-#define pp_keys                        CPerlObj::Perl_pp_keys
-#define pp_kill                        CPerlObj::Perl_pp_kill
-#define pp_last                        CPerlObj::Perl_pp_last
-#define pp_lc                  CPerlObj::Perl_pp_lc
-#define pp_lcfirst             CPerlObj::Perl_pp_lcfirst
-#define pp_le                  CPerlObj::Perl_pp_le
-#define pp_leave               CPerlObj::Perl_pp_leave
-#define pp_leaveeval           CPerlObj::Perl_pp_leaveeval
-#define pp_leaveloop           CPerlObj::Perl_pp_leaveloop
-#define pp_leavesub            CPerlObj::Perl_pp_leavesub
-#define pp_leavetry            CPerlObj::Perl_pp_leavetry
-#define pp_leavewrite          CPerlObj::Perl_pp_leavewrite
-#define pp_left_shift          CPerlObj::Perl_pp_left_shift
-#define pp_length              CPerlObj::Perl_pp_length
-#define pp_lineseq             CPerlObj::Perl_pp_lineseq
-#define pp_link                        CPerlObj::Perl_pp_link
-#define pp_list                        CPerlObj::Perl_pp_list
-#define pp_listen              CPerlObj::Perl_pp_listen
-#define pp_localtime           CPerlObj::Perl_pp_localtime
-#define pp_lock                        CPerlObj::Perl_pp_lock
-#define pp_log                 CPerlObj::Perl_pp_log
-#define pp_lslice              CPerlObj::Perl_pp_lslice
-#define pp_lstat               CPerlObj::Perl_pp_lstat
-#define pp_lt                  CPerlObj::Perl_pp_lt
-#define pp_mapstart            CPerlObj::Perl_pp_mapstart
-#define pp_mapwhile            CPerlObj::Perl_pp_mapwhile
-#define pp_match               CPerlObj::Perl_pp_match
-#define pp_method              CPerlObj::Perl_pp_method
-#define pp_mkdir               CPerlObj::Perl_pp_mkdir
-#define pp_modulo              CPerlObj::Perl_pp_modulo
-#define pp_msgctl              CPerlObj::Perl_pp_msgctl
-#define pp_msgget              CPerlObj::Perl_pp_msgget
-#define pp_msgrcv              CPerlObj::Perl_pp_msgrcv
-#define pp_msgsnd              CPerlObj::Perl_pp_msgsnd
-#define pp_multiply            CPerlObj::Perl_pp_multiply
-#define pp_ncmp                        CPerlObj::Perl_pp_ncmp
-#define pp_ne                  CPerlObj::Perl_pp_ne
-#define pp_negate              CPerlObj::Perl_pp_negate
-#define pp_next                        CPerlObj::Perl_pp_next
-#define pp_nextstate           CPerlObj::Perl_pp_nextstate
-#define pp_not                 CPerlObj::Perl_pp_not
-#define pp_null                        CPerlObj::Perl_pp_null
-#define pp_oct                 CPerlObj::Perl_pp_oct
-#define pp_open                        CPerlObj::Perl_pp_open
-#define pp_open_dir            CPerlObj::Perl_pp_open_dir
-#define pp_or                  CPerlObj::Perl_pp_or
-#define pp_orassign            CPerlObj::Perl_pp_orassign
-#define pp_ord                 CPerlObj::Perl_pp_ord
-#define pp_pack                        CPerlObj::Perl_pp_pack
-#define pp_padany              CPerlObj::Perl_pp_padany
-#define pp_padav               CPerlObj::Perl_pp_padav
-#define pp_padhv               CPerlObj::Perl_pp_padhv
-#define pp_padsv               CPerlObj::Perl_pp_padsv
-#define pp_pipe_op             CPerlObj::Perl_pp_pipe_op
-#define pp_pop                 CPerlObj::Perl_pp_pop
-#define pp_pos                 CPerlObj::Perl_pp_pos
-#define pp_postdec             CPerlObj::Perl_pp_postdec
-#define pp_postinc             CPerlObj::Perl_pp_postinc
-#define pp_pow                 CPerlObj::Perl_pp_pow
-#define pp_predec              CPerlObj::Perl_pp_predec
-#define pp_preinc              CPerlObj::Perl_pp_preinc
-#define pp_print               CPerlObj::Perl_pp_print
-#define pp_prototype           CPerlObj::Perl_pp_prototype
-#define pp_prtf                        CPerlObj::Perl_pp_prtf
-#define pp_push                        CPerlObj::Perl_pp_push
-#define pp_pushmark            CPerlObj::Perl_pp_pushmark
-#define pp_pushre              CPerlObj::Perl_pp_pushre
-#define pp_qr                  CPerlObj::Perl_pp_qr
-#define pp_quotemeta           CPerlObj::Perl_pp_quotemeta
-#define pp_rand                        CPerlObj::Perl_pp_rand
-#define pp_range               CPerlObj::Perl_pp_range
-#define pp_rcatline            CPerlObj::Perl_pp_rcatline
-#define pp_read                        CPerlObj::Perl_pp_read
-#define pp_readdir             CPerlObj::Perl_pp_readdir
-#define pp_readline            CPerlObj::Perl_pp_readline
-#define pp_readlink            CPerlObj::Perl_pp_readlink
-#define pp_recv                        CPerlObj::Perl_pp_recv
-#define pp_redo                        CPerlObj::Perl_pp_redo
-#define pp_ref                 CPerlObj::Perl_pp_ref
-#define pp_refgen              CPerlObj::Perl_pp_refgen
-#define pp_regcmaybe           CPerlObj::Perl_pp_regcmaybe
-#define pp_regcomp             CPerlObj::Perl_pp_regcomp
-#define pp_regcreset           CPerlObj::Perl_pp_regcreset
-#define pp_rename              CPerlObj::Perl_pp_rename
-#define pp_repeat              CPerlObj::Perl_pp_repeat
-#define pp_require             CPerlObj::Perl_pp_require
-#define pp_reset               CPerlObj::Perl_pp_reset
-#define pp_return              CPerlObj::Perl_pp_return
-#define pp_reverse             CPerlObj::Perl_pp_reverse
-#define pp_rewinddir           CPerlObj::Perl_pp_rewinddir
-#define pp_right_shift         CPerlObj::Perl_pp_right_shift
-#define pp_rindex              CPerlObj::Perl_pp_rindex
-#define pp_rmdir               CPerlObj::Perl_pp_rmdir
-#define pp_rv2av               CPerlObj::Perl_pp_rv2av
-#define pp_rv2cv               CPerlObj::Perl_pp_rv2cv
-#define pp_rv2gv               CPerlObj::Perl_pp_rv2gv
-#define pp_rv2hv               CPerlObj::Perl_pp_rv2hv
-#define pp_rv2sv               CPerlObj::Perl_pp_rv2sv
-#define pp_sassign             CPerlObj::Perl_pp_sassign
-#define pp_scalar              CPerlObj::Perl_pp_scalar
-#define pp_schomp              CPerlObj::Perl_pp_schomp
-#define pp_schop               CPerlObj::Perl_pp_schop
-#define pp_scmp                        CPerlObj::Perl_pp_scmp
-#define pp_scope               CPerlObj::Perl_pp_scope
-#define pp_seek                        CPerlObj::Perl_pp_seek
-#define pp_seekdir             CPerlObj::Perl_pp_seekdir
-#define pp_select              CPerlObj::Perl_pp_select
-#define pp_semctl              CPerlObj::Perl_pp_semctl
-#define pp_semget              CPerlObj::Perl_pp_semget
-#define pp_semop               CPerlObj::Perl_pp_semop
-#define pp_send                        CPerlObj::Perl_pp_send
-#define pp_seq                 CPerlObj::Perl_pp_seq
-#define pp_setpgrp             CPerlObj::Perl_pp_setpgrp
-#define pp_setpriority         CPerlObj::Perl_pp_setpriority
-#define pp_sge                 CPerlObj::Perl_pp_sge
-#define pp_sgrent              CPerlObj::Perl_pp_sgrent
-#define pp_sgt                 CPerlObj::Perl_pp_sgt
-#define pp_shift               CPerlObj::Perl_pp_shift
-#define pp_shmctl              CPerlObj::Perl_pp_shmctl
-#define pp_shmget              CPerlObj::Perl_pp_shmget
-#define pp_shmread             CPerlObj::Perl_pp_shmread
-#define pp_shmwrite            CPerlObj::Perl_pp_shmwrite
-#define pp_shostent            CPerlObj::Perl_pp_shostent
-#define pp_shutdown            CPerlObj::Perl_pp_shutdown
-#define pp_sin                 CPerlObj::Perl_pp_sin
-#define pp_sle                 CPerlObj::Perl_pp_sle
-#define pp_sleep               CPerlObj::Perl_pp_sleep
-#define pp_slt                 CPerlObj::Perl_pp_slt
-#define pp_sne                 CPerlObj::Perl_pp_sne
-#define pp_snetent             CPerlObj::Perl_pp_snetent
-#define pp_socket              CPerlObj::Perl_pp_socket
-#define pp_sockpair            CPerlObj::Perl_pp_sockpair
-#define pp_sort                        CPerlObj::Perl_pp_sort
-#define pp_splice              CPerlObj::Perl_pp_splice
-#define pp_split               CPerlObj::Perl_pp_split
-#define pp_sprintf             CPerlObj::Perl_pp_sprintf
-#define pp_sprotoent           CPerlObj::Perl_pp_sprotoent
-#define pp_spwent              CPerlObj::Perl_pp_spwent
-#define pp_sqrt                        CPerlObj::Perl_pp_sqrt
-#define pp_srand               CPerlObj::Perl_pp_srand
-#define pp_srefgen             CPerlObj::Perl_pp_srefgen
-#define pp_sselect             CPerlObj::Perl_pp_sselect
-#define pp_sservent            CPerlObj::Perl_pp_sservent
-#define pp_ssockopt            CPerlObj::Perl_pp_ssockopt
-#define pp_stat                        CPerlObj::Perl_pp_stat
-#define pp_stringify           CPerlObj::Perl_pp_stringify
-#define pp_stub                        CPerlObj::Perl_pp_stub
-#define pp_study               CPerlObj::Perl_pp_study
-#define pp_subst               CPerlObj::Perl_pp_subst
-#define pp_substcont           CPerlObj::Perl_pp_substcont
-#define pp_substr              CPerlObj::Perl_pp_substr
-#define pp_subtract            CPerlObj::Perl_pp_subtract
-#define pp_symlink             CPerlObj::Perl_pp_symlink
-#define pp_syscall             CPerlObj::Perl_pp_syscall
-#define pp_sysopen             CPerlObj::Perl_pp_sysopen
-#define pp_sysread             CPerlObj::Perl_pp_sysread
-#define pp_sysseek             CPerlObj::Perl_pp_sysseek
-#define pp_system              CPerlObj::Perl_pp_system
-#define pp_syswrite            CPerlObj::Perl_pp_syswrite
-#define pp_tell                        CPerlObj::Perl_pp_tell
-#define pp_telldir             CPerlObj::Perl_pp_telldir
-#define pp_threadsv            CPerlObj::Perl_pp_threadsv
-#define pp_tie                 CPerlObj::Perl_pp_tie
-#define pp_tied                        CPerlObj::Perl_pp_tied
-#define pp_time                        CPerlObj::Perl_pp_time
-#define pp_tms                 CPerlObj::Perl_pp_tms
-#define pp_trans               CPerlObj::Perl_pp_trans
-#define pp_truncate            CPerlObj::Perl_pp_truncate
-#define pp_uc                  CPerlObj::Perl_pp_uc
-#define pp_ucfirst             CPerlObj::Perl_pp_ucfirst
-#define pp_umask               CPerlObj::Perl_pp_umask
-#define pp_undef               CPerlObj::Perl_pp_undef
-#define pp_unlink              CPerlObj::Perl_pp_unlink
-#define pp_unpack              CPerlObj::Perl_pp_unpack
-#define pp_unshift             CPerlObj::Perl_pp_unshift
-#define pp_unstack             CPerlObj::Perl_pp_unstack
-#define pp_untie               CPerlObj::Perl_pp_untie
-#define pp_utime               CPerlObj::Perl_pp_utime
-#define pp_values              CPerlObj::Perl_pp_values
-#define pp_vec                 CPerlObj::Perl_pp_vec
-#define pp_wait                        CPerlObj::Perl_pp_wait
-#define pp_waitpid             CPerlObj::Perl_pp_waitpid
-#define pp_wantarray           CPerlObj::Perl_pp_wantarray
-#define pp_warn                        CPerlObj::Perl_pp_warn
-#define pp_xor                 CPerlObj::Perl_pp_xor
-#define pregcomp               CPerlObj::Perl_pregcomp
-#define pregexec               CPerlObj::Perl_pregexec
-#define pregfree               CPerlObj::Perl_pregfree
-#define prepend_elem           CPerlObj::Perl_prepend_elem
-#define push_return            CPerlObj::Perl_push_return
-#define push_scope             CPerlObj::Perl_push_scope
-#define pv_display             CPerlObj::Perl_pv_display
 #define qsortsv                        CPerlObj::Perl_qsortsv
 #define re_croak2              CPerlObj::Perl_re_croak2
-#define ref                    CPerlObj::Perl_ref
-#define refkids                        CPerlObj::Perl_refkids
 #define refto                  CPerlObj::Perl_refto
 #define reg                    CPerlObj::Perl_reg
 #define reg_node               CPerlObj::Perl_reg_node
 #define regcppop               CPerlObj::Perl_regcppop
 #define regcppush              CPerlObj::Perl_regcppush
 #define regcurly               CPerlObj::Perl_regcurly
-#define regdump                        CPerlObj::Perl_regdump
-#define regexec_flags          CPerlObj::Perl_regexec_flags
 #define reghop                 CPerlObj::Perl_reghop
 #define reghopmaybe            CPerlObj::Perl_reghopmaybe
 #define reginclass             CPerlObj::Perl_reginclass
 #define reginclassutf8         CPerlObj::Perl_reginclassutf8
-#define reginitcolors          CPerlObj::Perl_reginitcolors
 #define reginsert              CPerlObj::Perl_reginsert
 #define regmatch               CPerlObj::Perl_regmatch
-#define regnext                        CPerlObj::Perl_regnext
 #define regoptail              CPerlObj::Perl_regoptail
 #define regpiece               CPerlObj::Perl_regpiece
 #define regpposixcc            CPerlObj::Perl_regpposixcc
-#define regprop                        CPerlObj::Perl_regprop
 #define regrepeat              CPerlObj::Perl_regrepeat
 #define regrepeat_hard         CPerlObj::Perl_regrepeat_hard
 #define regset                 CPerlObj::Perl_regset
 #define regtry                 CPerlObj::Perl_regtry
 #define reguni                 CPerlObj::Perl_reguni
 #define regwhite               CPerlObj::Perl_regwhite
-#define repeatcpy              CPerlObj::Perl_repeatcpy
 #define restore_expect         CPerlObj::Perl_restore_expect
 #define restore_lex_expect     CPerlObj::Perl_restore_lex_expect
 #define restore_magic          CPerlObj::Perl_restore_magic
 #define restore_pos            CPerlObj::Perl_restore_pos
 #define restore_rsfp           CPerlObj::Perl_restore_rsfp
-#define rninstr                        CPerlObj::Perl_rninstr
-#define rsignal                        CPerlObj::Perl_rsignal
-#define rsignal_restore                CPerlObj::Perl_rsignal_restore
-#define rsignal_save           CPerlObj::Perl_rsignal_save
-#define rsignal_state          CPerlObj::Perl_rsignal_state
-#define runops_debug           CPerlObj::Perl_runops_debug
-#define runops_debug           CPerlObj::Perl_runops_debug
-#define runops_standard                CPerlObj::Perl_runops_standard
-#define runops_standard                CPerlObj::Perl_runops_standard
-#define rxres_free             CPerlObj::Perl_rxres_free
-#define rxres_restore          CPerlObj::Perl_rxres_restore
-#define rxres_save             CPerlObj::Perl_rxres_save
-#define safesyscalloc          CPerlObj::Perl_safesyscalloc
-#define safesysfree            CPerlObj::Perl_safesysfree
-#define safesysmalloc          CPerlObj::Perl_safesysmalloc
-#define safesysrealloc         CPerlObj::Perl_safesysrealloc
-#define safexcalloc            CPerlObj::Perl_safexcalloc
-#define safexfree              CPerlObj::Perl_safexfree
-#define safexmalloc            CPerlObj::Perl_safexmalloc
-#define safexrealloc           CPerlObj::Perl_safexrealloc
-#define same_dirent            CPerlObj::Perl_same_dirent
-#define save_I16               CPerlObj::Perl_save_I16
-#define save_I32               CPerlObj::Perl_save_I32
-#define save_aelem             CPerlObj::Perl_save_aelem
-#define save_alloc             CPerlObj::Perl_save_alloc
-#define save_aptr              CPerlObj::Perl_save_aptr
-#define save_ary               CPerlObj::Perl_save_ary
-#define save_clearsv           CPerlObj::Perl_save_clearsv
-#define save_delete            CPerlObj::Perl_save_delete
-#define save_destructor                CPerlObj::Perl_save_destructor
-#define save_freeop            CPerlObj::Perl_save_freeop
-#define save_freepv            CPerlObj::Perl_save_freepv
-#define save_freesv            CPerlObj::Perl_save_freesv
-#define save_generic_svref     CPerlObj::Perl_save_generic_svref
-#define save_gp                        CPerlObj::Perl_save_gp
-#define save_hash              CPerlObj::Perl_save_hash
 #define save_hek               CPerlObj::Perl_save_hek
-#define save_helem             CPerlObj::Perl_save_helem
-#define save_hints             CPerlObj::Perl_save_hints
-#define save_hptr              CPerlObj::Perl_save_hptr
-#define save_int               CPerlObj::Perl_save_int
-#define save_item              CPerlObj::Perl_save_item
-#define save_iv                        CPerlObj::Perl_save_iv
 #define save_lines             CPerlObj::Perl_save_lines
-#define save_list              CPerlObj::Perl_save_list
-#define save_long              CPerlObj::Perl_save_long
 #define save_magic             CPerlObj::Perl_save_magic
-#define save_nogv              CPerlObj::Perl_save_nogv
-#define save_op                        CPerlObj::Perl_save_op
-#define save_pptr              CPerlObj::Perl_save_pptr
-#define save_re_context                CPerlObj::Perl_save_re_context
-#define save_scalar            CPerlObj::Perl_save_scalar
 #define save_scalar_at         CPerlObj::Perl_save_scalar_at
-#define save_sptr              CPerlObj::Perl_save_sptr
-#define save_svref             CPerlObj::Perl_save_svref
-#define save_threadsv          CPerlObj::Perl_save_threadsv
-#define savepv                 CPerlObj::Perl_savepv
-#define savepvn                        CPerlObj::Perl_savepvn
-#define savestack_grow         CPerlObj::Perl_savestack_grow
-#define sawparens              CPerlObj::Perl_sawparens
-#define scalar                 CPerlObj::Perl_scalar
 #define scalarboolean          CPerlObj::Perl_scalarboolean
-#define scalarkids             CPerlObj::Perl_scalarkids
-#define scalarseq              CPerlObj::Perl_scalarseq
-#define scalarvoid             CPerlObj::Perl_scalarvoid
-#define scan_bin               CPerlObj::Perl_scan_bin
 #define scan_commit            CPerlObj::Perl_scan_commit
 #define scan_const             CPerlObj::Perl_scan_const
 #define scan_formline          CPerlObj::Perl_scan_formline
 #define scan_heredoc           CPerlObj::Perl_scan_heredoc
-#define scan_hex               CPerlObj::Perl_scan_hex
 #define scan_ident             CPerlObj::Perl_scan_ident
 #define scan_inputsymbol       CPerlObj::Perl_scan_inputsymbol
-#define scan_num               CPerlObj::Perl_scan_num
-#define scan_oct               CPerlObj::Perl_scan_oct
 #define scan_pat               CPerlObj::Perl_scan_pat
 #define scan_str               CPerlObj::Perl_scan_str
 #define scan_subst             CPerlObj::Perl_scan_subst
 #define scan_trans             CPerlObj::Perl_scan_trans
 #define scan_word              CPerlObj::Perl_scan_word
-#define scope                  CPerlObj::Perl_scope
-#define screaminstr            CPerlObj::Perl_screaminstr
 #define seed                   CPerlObj::Perl_seed
 #define set_csh                        CPerlObj::Perl_set_csh
-#define setdefout              CPerlObj::Perl_setdefout
-#define setenv_getix           CPerlObj::Perl_setenv_getix
-#define share_hek              CPerlObj::Perl_share_hek
-#define sharepvn               CPerlObj::Perl_sharepvn
-#define sighandler             CPerlObj::Perl_sighandler
 #define simplify_sort          CPerlObj::Perl_simplify_sort
 #define skipspace              CPerlObj::Perl_skipspace
 #define sortcv                 CPerlObj::Perl_sortcv
-#define stack_grow             CPerlObj::Perl_stack_grow
-#define start_subparse         CPerlObj::Perl_start_subparse
 #define study_chunk            CPerlObj::Perl_study_chunk
-#define sub_crush_depth                CPerlObj::Perl_sub_crush_depth
 #define sublex_done            CPerlObj::Perl_sublex_done
 #define sublex_push            CPerlObj::Perl_sublex_push
 #define sublex_start           CPerlObj::Perl_sublex_start
-#define sv_2bool               CPerlObj::Perl_sv_2bool
-#define sv_2cv                 CPerlObj::Perl_sv_2cv
-#define sv_2io                 CPerlObj::Perl_sv_2io
-#define sv_2iv                 CPerlObj::Perl_sv_2iv
-#define sv_2mortal             CPerlObj::Perl_sv_2mortal
-#define sv_2nv                 CPerlObj::Perl_sv_2nv
-#define sv_2pv                 CPerlObj::Perl_sv_2pv
-#define sv_2pv_nolen           CPerlObj::Perl_sv_2pv_nolen
-#define sv_2uv                 CPerlObj::Perl_sv_2uv
-#define sv_add_arena           CPerlObj::Perl_sv_add_arena
 #define sv_add_backref         CPerlObj::Perl_sv_add_backref
-#define sv_backoff             CPerlObj::Perl_sv_backoff
-#define sv_bless               CPerlObj::Perl_sv_bless
-#define sv_catpv               CPerlObj::Perl_sv_catpv
-#define sv_catpv_mg            CPerlObj::Perl_sv_catpv_mg
-#define sv_catpvf              CPerlObj::Perl_sv_catpvf
-#define sv_catpvf_mg           CPerlObj::Perl_sv_catpvf_mg
-#define sv_catpvn              CPerlObj::Perl_sv_catpvn
-#define sv_catpvn_mg           CPerlObj::Perl_sv_catpvn_mg
-#define sv_catsv               CPerlObj::Perl_sv_catsv
-#define sv_catsv_mg            CPerlObj::Perl_sv_catsv_mg
-#define sv_chop                        CPerlObj::Perl_sv_chop
-#define sv_clean_all           CPerlObj::Perl_sv_clean_all
-#define sv_clean_objs          CPerlObj::Perl_sv_clean_objs
-#define sv_clear               CPerlObj::Perl_sv_clear
-#define sv_cmp                 CPerlObj::Perl_sv_cmp
-#define sv_cmp_locale          CPerlObj::Perl_sv_cmp_locale
-#define sv_collxfrm            CPerlObj::Perl_sv_collxfrm
-#define sv_compile_2op         CPerlObj::Perl_sv_compile_2op
-#define sv_dec                 CPerlObj::Perl_sv_dec
 #define sv_del_backref         CPerlObj::Perl_sv_del_backref
-#define sv_derived_from                CPerlObj::Perl_sv_derived_from
-#define sv_dump                        CPerlObj::Perl_sv_dump
-#define sv_eq                  CPerlObj::Perl_sv_eq
-#define sv_force_normal                CPerlObj::Perl_sv_force_normal
-#define sv_free                        CPerlObj::Perl_sv_free
-#define sv_free_arenas         CPerlObj::Perl_sv_free_arenas
-#define sv_gets                        CPerlObj::Perl_sv_gets
-#define sv_grow                        CPerlObj::Perl_sv_grow
 #define sv_i_ncmp              CPerlObj::Perl_sv_i_ncmp
-#define sv_inc                 CPerlObj::Perl_sv_inc
-#define sv_insert              CPerlObj::Perl_sv_insert
-#define sv_isa                 CPerlObj::Perl_sv_isa
-#define sv_isobject            CPerlObj::Perl_sv_isobject
-#define sv_iv                  CPerlObj::Perl_sv_iv
-#define sv_len                 CPerlObj::Perl_sv_len
-#define sv_len_utf8            CPerlObj::Perl_sv_len_utf8
-#define sv_magic               CPerlObj::Perl_sv_magic
-#define sv_mortalcopy          CPerlObj::Perl_sv_mortalcopy
 #define sv_ncmp                        CPerlObj::Perl_sv_ncmp
-#define sv_newmortal           CPerlObj::Perl_sv_newmortal
-#define sv_newref              CPerlObj::Perl_sv_newref
-#define sv_nv                  CPerlObj::Perl_sv_nv
-#define sv_peek                        CPerlObj::Perl_sv_peek
-#define sv_pos_b2u             CPerlObj::Perl_sv_pos_b2u
-#define sv_pos_u2b             CPerlObj::Perl_sv_pos_u2b
-#define sv_pv                  CPerlObj::Perl_sv_pv
-#define sv_pvn                 CPerlObj::Perl_sv_pvn
-#define sv_pvn_force           CPerlObj::Perl_sv_pvn_force
-#define sv_reftype             CPerlObj::Perl_sv_reftype
-#define sv_replace             CPerlObj::Perl_sv_replace
-#define sv_report_used         CPerlObj::Perl_sv_report_used
-#define sv_reset               CPerlObj::Perl_sv_reset
-#define sv_rvweaken            CPerlObj::Perl_sv_rvweaken
-#define sv_setiv               CPerlObj::Perl_sv_setiv
-#define sv_setiv_mg            CPerlObj::Perl_sv_setiv_mg
-#define sv_setnv               CPerlObj::Perl_sv_setnv
-#define sv_setnv_mg            CPerlObj::Perl_sv_setnv_mg
-#define sv_setpv               CPerlObj::Perl_sv_setpv
-#define sv_setpv_mg            CPerlObj::Perl_sv_setpv_mg
-#define sv_setpvf              CPerlObj::Perl_sv_setpvf
-#define sv_setpvf_mg           CPerlObj::Perl_sv_setpvf_mg
-#define sv_setpviv             CPerlObj::Perl_sv_setpviv
-#define sv_setpviv_mg          CPerlObj::Perl_sv_setpviv_mg
-#define sv_setpvn              CPerlObj::Perl_sv_setpvn
-#define sv_setpvn_mg           CPerlObj::Perl_sv_setpvn_mg
-#define sv_setref_iv           CPerlObj::Perl_sv_setref_iv
-#define sv_setref_nv           CPerlObj::Perl_sv_setref_nv
-#define sv_setref_pv           CPerlObj::Perl_sv_setref_pv
-#define sv_setref_pvn          CPerlObj::Perl_sv_setref_pvn
-#define sv_setsv               CPerlObj::Perl_sv_setsv
-#define sv_setsv_mg            CPerlObj::Perl_sv_setsv_mg
-#define sv_setuv               CPerlObj::Perl_sv_setuv
-#define sv_setuv_mg            CPerlObj::Perl_sv_setuv_mg
-#define sv_taint               CPerlObj::Perl_sv_taint
-#define sv_tainted             CPerlObj::Perl_sv_tainted
-#define sv_true                        CPerlObj::Perl_sv_true
 #define sv_unglob              CPerlObj::Perl_sv_unglob
-#define sv_unmagic             CPerlObj::Perl_sv_unmagic
-#define sv_unref               CPerlObj::Perl_sv_unref
-#define sv_untaint             CPerlObj::Perl_sv_untaint
-#define sv_upgrade             CPerlObj::Perl_sv_upgrade
-#define sv_usepvn              CPerlObj::Perl_sv_usepvn
-#define sv_usepvn_mg           CPerlObj::Perl_sv_usepvn_mg
-#define sv_uv                  CPerlObj::Perl_sv_uv
-#define sv_vcatpvfn            CPerlObj::Perl_sv_vcatpvfn
-#define sv_vsetpvfn            CPerlObj::Perl_sv_vsetpvfn
-#define swash_fetch            CPerlObj::Perl_swash_fetch
-#define swash_init             CPerlObj::Perl_swash_init
-#define taint_env              CPerlObj::Perl_taint_env
-#define taint_proper           CPerlObj::Perl_taint_proper
-#define tmps_grow              CPerlObj::Perl_tmps_grow
-#define to_uni_lower           CPerlObj::Perl_to_uni_lower
-#define to_uni_lower_lc                CPerlObj::Perl_to_uni_lower_lc
-#define to_uni_title           CPerlObj::Perl_to_uni_title
-#define to_uni_title_lc                CPerlObj::Perl_to_uni_title_lc
-#define to_uni_upper           CPerlObj::Perl_to_uni_upper
-#define to_uni_upper_lc                CPerlObj::Perl_to_uni_upper_lc
-#define to_utf8_lower          CPerlObj::Perl_to_utf8_lower
-#define to_utf8_title          CPerlObj::Perl_to_utf8_title
-#define to_utf8_upper          CPerlObj::Perl_to_utf8_upper
 #define tokeq                  CPerlObj::Perl_tokeq
 #define too_few_arguments      CPerlObj::Perl_too_few_arguments
 #define too_many_arguments     CPerlObj::Perl_too_many_arguments
 #define uni                    CPerlObj::Perl_uni
-#define unlnk                  CPerlObj::Perl_unlnk
-#define unlock_condpair                CPerlObj::Perl_unlock_condpair
-#define unshare_hek            CPerlObj::Perl_unshare_hek
-#define unsharepvn             CPerlObj::Perl_unsharepvn
 #define unwind_handler_stack   CPerlObj::Perl_unwind_handler_stack
 #define usage                  CPerlObj::Perl_usage
-#define utf16_to_utf8          CPerlObj::Perl_utf16_to_utf8
-#define utf16_to_utf8_reversed CPerlObj::Perl_utf16_to_utf8_reversed
-#define utf8_distance          CPerlObj::Perl_utf8_distance
-#define utf8_hop               CPerlObj::Perl_utf8_hop
-#define utf8_to_uv             CPerlObj::Perl_utf8_to_uv
-#define utilize                        CPerlObj::Perl_utilize
-#define uv_to_utf8             CPerlObj::Perl_uv_to_utf8
 #define validate_suid          CPerlObj::Perl_validate_suid
 #define visit                  CPerlObj::Perl_visit
-#define vivify_defelem         CPerlObj::Perl_vivify_defelem
-#define vivify_ref             CPerlObj::Perl_vivify_ref
-#define wait4pid               CPerlObj::Perl_wait4pid
-#define warn                   CPerlObj::Perl_warn
-#define warner                 CPerlObj::Perl_warner
-#define watch                  CPerlObj::Perl_watch
-#define whichsig               CPerlObj::Perl_whichsig
 #define win32_textfilter       CPerlObj::Perl_win32_textfilter
-#define yydestruct             CPerlObj::Perl_yydestruct
-#define yydestruct             CPerlObj::Perl_yydestruct
-#define yyerror                        CPerlObj::Perl_yyerror
-#define yylex                  CPerlObj::Perl_yylex
-#define yyparse                        CPerlObj::Perl_yyparse
-#define yywarn                 CPerlObj::Perl_yywarn
 
 #endif /* PERL_OBJECT */
 
 
 #define sv_setptrobj(rv,ptr,name)      sv_setref_iv(rv,name,(IV)ptr)
 #define sv_setptrref(rv,ptr)           sv_setref_iv(rv,Nullch,(IV)ptr)
+#define perl_atexit                    call_atexit
+#define perl_call_argv                 call_argv
+#define perl_call_pv                   call_pv
+#define perl_call_method               call_method
+#define perl_call_sv                   call_sv
+#define perl_eval_sv                   eval_sv
+#define perl_eval_pv                   eval_pv
+#define perl_require_pv                        require_pv
+#define perl_get_sv                    get_sv
+#define perl_get_av                    get_av
+#define perl_get_hv                    get_hv
+#define perl_get_cv                    get_cv
+#define perl_init_i18nl10n             init_i18nl10n
+#define perl_init_i18nl14n             init_i18nl14n
+#define perl_new_ctype                 new_ctype
+#define perl_new_collate               new_collate
+#define perl_new_numeric               new_numeric
 
index 37a0070..c877f0d 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -109,7 +109,8 @@ sub hide ($$) {
 
 sub embed ($) {
     my ($sym) = @_;
-    hide($sym, "Perl_$sym");
+    my $def = $sym;
+    hide($def, $sym) if $def =~ s/^Perl_//;
 }
 
 sub embedobj ($) {
@@ -165,6 +166,7 @@ print EM <<'END';
 END
 
 for $sym (sort keys %global) {
+    next if $sym =~ /^Perl_(malloc|calloc|realloc|mfree)$/;
     print EM embed($sym);
 }
 
@@ -402,6 +404,7 @@ my @staticfuncs = qw(
 );
 
 for $sym (sort(keys(%global),@staticfuncs)) {
+    next if $sym =~ /^Perl_(malloc|calloc|realloc|mfree)$/;
     print EM embedobj($sym);
 }
 
@@ -413,6 +416,23 @@ print EM <<'END';
 
 #define sv_setptrobj(rv,ptr,name)      sv_setref_iv(rv,name,(IV)ptr)
 #define sv_setptrref(rv,ptr)           sv_setref_iv(rv,Nullch,(IV)ptr)
+#define perl_atexit                    call_atexit
+#define perl_call_argv                 call_argv
+#define perl_call_pv                   call_pv
+#define perl_call_method               call_method
+#define perl_call_sv                   call_sv
+#define perl_eval_sv                   eval_sv
+#define perl_eval_pv                   eval_pv
+#define perl_require_pv                        require_pv
+#define perl_get_sv                    get_sv
+#define perl_get_av                    get_av
+#define perl_get_hv                    get_hv
+#define perl_get_cv                    get_cv
+#define perl_init_i18nl10n             init_i18nl10n
+#define perl_init_i18nl14n             init_i18nl14n
+#define perl_new_ctype                 new_ctype
+#define perl_new_collate               new_collate
+#define perl_new_numeric               new_numeric
 
 END
 
index b529dbf..b196963 100644 (file)
@@ -3051,7 +3051,7 @@ setlocale(category, locale = 0)
                else
 #endif
                    newctype = RETVAL;
-               perl_new_ctype(newctype);
+               new_ctype(newctype);
            }
 #endif /* USE_LOCALE_CTYPE */
 #ifdef USE_LOCALE_COLLATE
@@ -3068,7 +3068,7 @@ setlocale(category, locale = 0)
                else
 #endif
                    newcoll = RETVAL;
-               perl_new_collate(newcoll);
+               new_collate(newcoll);
            }
 #endif /* USE_LOCALE_COLLATE */
 #ifdef USE_LOCALE_NUMERIC
@@ -3085,7 +3085,7 @@ setlocale(category, locale = 0)
                else
 #endif
                    newnum = RETVAL;
-               perl_new_numeric(newnum);
+               new_numeric(newnum);
            }
 #endif /* USE_LOCALE_NUMERIC */
        }
index 35acec5..4c7f6c2 100644 (file)
-# Global function symbols that need to be hidden in embedded applications.
-
-# *** Do NOT add global variables here, add them in *var*.h ***
-
-Gv_AMupdate
-amagic_call
-append_elem
-append_list
-apply
-assertref
-av_clear
-av_extend
-av_fake
-av_fetch
-av_fill
-av_len
-av_make
-av_pop
-av_push
-av_reify
-av_shift
-av_store
-av_undef
-av_unshift
-avhv_exists_ent
-avhv_fetch_ent
-avhv_iternext
-avhv_iterval
-avhv_keys
-bind_match
-block_end
-block_gimme
-block_start
-boot_core_UNIVERSAL
-bset_obj_store
-call_list
-cando
-cast_i32
-cast_iv
-cast_ulong
-cast_uv
-condpair_magic
-convert
-croak
-cv_ckproto
-cv_clone
-cv_const_sv
-cv_undef
-cx_dump
-cxinc
-deb
-deb_growlevel
-debop
-debprofdump
-debstack
-debstackptrs
-default_protect
-delimcpy
-deprecate
-die
-die_where
-do_aexec
-do_binmode
-do_chomp
-do_chop
-do_close
-do_eof
-do_exec
-do_exec3
-do_execfree
-do_gv_dump
-do_gvgv_dump
-do_hv_dump
-do_ipcctl
-do_ipcget
-do_join
-do_kv
-do_magic_dump
-do_msgrcv
-do_msgsnd
-do_op_dump
-do_open
-do_pipe
-do_pmop_dump
-do_print
-do_readline
-do_seek
-do_semop
-do_shmio
-do_sprintf
-do_sv_dump
-do_sysseek
-do_tell
-do_trans
-do_vecset
-do_vop
-dofile
-dounwind
-dowantarray
-dump_all
-dump_eval
-dump_fds
-dump_form
-dump_indent
-dump_mstats
-dump_packsubs
-dump_sub
-fbm_compile
-fbm_instr
-filter_add
-filter_del
-filter_read
-find_script
-find_threadsv
-fold_constants
-force_list
-form
-free_tmps
-gen_constant_list
-get_no_modify
-get_op_descs
-get_op_names
-get_opargs
-get_vtbl
-getenv_len
-gp_free
-gp_ref
-gv_AVadd
-gv_HVadd
-gv_IOadd
-gv_autoload4
-gv_check
-gv_dump
-gv_efullname
-gv_efullname3
-gv_fetchfile
-gv_fetchmeth
-gv_fetchmethod
-gv_fetchmethod_autoload
-gv_fetchpv
-gv_fullname
-gv_fullname3
-gv_init
-gv_stashpv
-gv_stashpvn
-gv_stashsv
-hv_clear
-hv_delayfree_ent
-hv_delete
-hv_delete_ent
-hv_exists
-hv_exists_ent
-hv_fetch
-hv_fetch_ent
-hv_free_ent
-hv_iterinit
-hv_iterkey
-hv_iterkeysv
-hv_iternext
-hv_iternextsv
-hv_iterval
-hv_ksplit
-hv_magic
-hv_store
-hv_store_ent
-hv_undef
-ibcmp
-ibcmp_locale
-ingroup
-init_stacks
-init_thread_intern
-instr
-intro_my
-invert
-io_close
-is_uni_alnum
-is_uni_alnum_lc
-is_uni_alpha
-is_uni_alpha_lc
-is_uni_digit
-is_uni_digit_lc
-is_uni_idfirst
-is_uni_idfirst_lc
-is_uni_lower
-is_uni_lower_lc
-is_uni_print
-is_uni_print_lc
-is_uni_space
-is_uni_space_lc
-is_uni_upper
-is_uni_upper_lc
-is_utf8_alnum
-is_utf8_alpha
-is_utf8_digit
-is_utf8_idfirst
-is_utf8_lower
-is_utf8_mark
-is_utf8_print
-is_utf8_space
-is_utf8_upper
-jmaybe
-keyword
-leave_scope
-lex_end
-lex_start
-linklist
-list
-listkids
-localize
-looks_like_number
-magic_clear_all_env
-magic_clearenv
-magic_clearpack
-magic_clearsig
-magic_dump
-magic_existspack
-magic_freeregexp
-magic_get
-magic_getarylen
-magic_getdefelem
-magic_getglob
-magic_getnkeys
-magic_getpack
-magic_getpos
-magic_getsig
-magic_getsubstr
-magic_gettaint
-magic_getuvar
-magic_getvec
-magic_killbackrefs
-magic_len
-magic_mutexfree
-magic_nextpack
-magic_regdata_cnt
-magic_regdatum_get
-magic_set
-magic_set_all_env
-magic_setamagic
-magic_setarylen
-magic_setbm
-magic_setcollxfrm
-magic_setdbline
-magic_setdefelem
-magic_setenv
-magic_setfm
-magic_setglob
-magic_setisa
-magic_setmglob
-magic_setnkeys
-magic_setpack
-magic_setpos
-magic_setsig
-magic_setsubstr
-magic_settaint
-magic_setuvar
-magic_setvec
-magic_sizepack
-magic_wipepack
-magicname
-malloced_size
-markstack_grow
-mem_collxfrm
-mess
-mg_clear
-mg_copy
-mg_find
-mg_free
-mg_get
-mg_length
-mg_magical
-mg_set
-mg_size
-mod
-moreswitches
-my
-my_bcopy
-my_bzero
-my_chsize
-my_exit
-my_failure_exit
-my_fflush_all
-my_htonl
-my_lstat
-my_memcmp
-my_memset
-my_ntohl
-my_pclose
-my_popen
-my_setenv
-my_stat
-my_swap
-my_unexec
-newANONHASH
-newANONLIST
-newANONSUB
-newASSIGNOP
-newAV
-newAVREF
-newBINOP
-newCONDOP
-newCONSTSUB
-newCVREF
-newFORM
-newFOROP
-newGVOP
-newGVREF
-newGVgen
-newHV
-newHVREF
-newHVhv
-newIO
-newLISTOP
-newLOGOP
-newLOOPEX
-newLOOPOP
-newNULLLIST
-newOP
-newPMOP
-newPROG
-newPVOP
-newRANGE
-newRV
-newRV_noinc
-newSLICEOP
-newSTATEOP
-newSUB
-newSV
-newSVOP
-newSVREF
-newSViv
-newSVnv
-newSVpv
-newSVpvf
-newSVpvn
-newSVrv
-newSVsv
-newUNOP
-newWHILEOP
-newXS
-new_stackinfo
-new_struct_thread
-nextargv
-ninstr
-oopsAV
-oopsCV
-oopsHV
-op_const_sv
-op_dump
-op_free
-package
-pad_alloc
-pad_allocmy
-pad_findmy
-pad_free
-pad_leavemy
-pad_reset
-pad_sv
-pad_swipe
-peep
-pidgone
-pmflag
-pmop_dump
-pmruntime
-pmtrans
-pop_return
-pop_scope
-pregcomp
-pregexec
-pregfree
-prepend_elem
-push_return
-push_scope
-pv_display
-ref
-refkids
-regdump
-regexec_flags
-reginitcolors
-regnext
-regprop
-repeatcpy
-rninstr
-rsignal
-rsignal_restore
-rsignal_save
-rsignal_state
-runops_debug
-runops_standard
-rxres_free
-rxres_restore
-rxres_save
-safesyscalloc
-safesysfree
-safesysmalloc
-safesysrealloc
-safexcalloc
-safexfree
-safexmalloc
-safexrealloc
-same_dirent
-save_I16
-save_I32
-save_aelem
-save_alloc
-save_aptr
-save_ary
-save_clearsv
-save_delete
-save_destructor
-save_freeop
-save_freepv
-save_freesv
-save_generic_svref
-save_gp
-save_hash
-save_helem
-save_hints
-save_hptr
-save_int
-save_item
-save_iv
-save_list
-save_long
-save_nogv
-save_op
-save_pptr
-save_re_context
-save_scalar
-save_sptr
-save_svref
-save_threadsv
-savepv
-savepvn
-savestack_grow
-sawparens
-scalar
-scalarkids
-scalarseq
-scalarvoid
-scan_bin
-scan_hex
-scan_num
-scan_oct
-scope
-screaminstr
-setdefout
-setenv_getix
-share_hek
-sharepvn
-sighandler
-stack_grow
-start_subparse
-sub_crush_depth
-sv_2bool
-sv_2cv
-sv_2io
-sv_2iv
-sv_2mortal
-sv_2nv
-sv_2pv
-sv_2pv_nolen
-sv_2uv
-sv_add_arena
-sv_backoff
-sv_bless
-sv_catpv
-sv_catpv_mg
-sv_catpvf
-sv_catpvf_mg
-sv_catpvn
-sv_catpvn_mg
-sv_catsv
-sv_catsv_mg
-sv_chop
-sv_clean_all
-sv_clean_objs
-sv_clear
-sv_cmp
-sv_cmp_locale
-sv_collxfrm
-sv_compile_2op
-sv_dec
-sv_derived_from
-sv_dump
-sv_eq
-sv_force_normal
-sv_free
-sv_free_arenas
-sv_gets
-sv_grow
-sv_inc
-sv_insert
-sv_isa
-sv_isobject
-sv_iv
-sv_len
-sv_len_utf8
-sv_magic
-sv_mortalcopy
-sv_newmortal
-sv_newref
-sv_nv
-sv_peek
-sv_pos_b2u
-sv_pos_u2b
-sv_pv
-sv_pvn
-sv_pvn_force
-sv_reftype
-sv_replace
-sv_report_used
-sv_reset
-sv_rvweaken
-sv_setiv
-sv_setiv_mg
-sv_setnv
-sv_setnv_mg
-sv_setpv
-sv_setpv_mg
-sv_setpvf
-sv_setpvf_mg
-sv_setpviv
-sv_setpviv_mg
-sv_setpvn
-sv_setpvn_mg
-sv_setref_iv
-sv_setref_nv
-sv_setref_pv
-sv_setref_pvn
-sv_setsv
-sv_setsv_mg
-sv_setuv
-sv_setuv_mg
-sv_taint
-sv_tainted
-sv_true
-sv_unmagic
-sv_unref
-sv_untaint
-sv_upgrade
-sv_usepvn
-sv_usepvn_mg
-sv_uv
-sv_vcatpvfn
-sv_vsetpvfn
-swash_fetch
-swash_init
-taint_env
-taint_proper
-tmps_grow
-to_uni_lower
-to_uni_lower_lc
-to_uni_title
-to_uni_title_lc
-to_uni_upper
-to_uni_upper_lc
-to_utf8_lower
-to_utf8_title
-to_utf8_upper
-unlnk
-unlock_condpair
-unshare_hek
-unsharepvn
-utf16_to_utf8
-utf16_to_utf8_reversed
-utf8_distance
-utf8_hop
-utf8_to_uv
-utilize
-uv_to_utf8
-vivify_defelem
-vivify_ref
-wait4pid
-warn
-warner
-watch
-whichsig
-yydestruct
-yyerror
-yylex
-yyparse
-yywarn
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+# This file is autogenerated from data in proto.pl.  Edit that file
+# and run 'make regen_headers' to effect changes.
+#
+Perl_ErrorNo
+Perl_GetVars
+Perl_Gv_AMupdate
+Perl_amagic_call
+Perl_append_elem
+Perl_append_list
+Perl_apply
+Perl_assertref
+Perl_av_clear
+Perl_av_extend
+Perl_av_fake
+Perl_av_fetch
+Perl_av_fill
+Perl_av_len
+Perl_av_make
+Perl_av_pop
+Perl_av_push
+Perl_av_reify
+Perl_av_shift
+Perl_av_store
+Perl_av_undef
+Perl_av_unshift
+Perl_avhv_exists_ent
+Perl_avhv_fetch_ent
+Perl_avhv_iternext
+Perl_avhv_iterval
+Perl_avhv_keys
+Perl_bind_match
+Perl_block_end
+Perl_block_gimme
+Perl_block_start
+Perl_boot_core_UNIVERSAL
+Perl_bset_obj_store
+Perl_call_argv
+Perl_call_atexit
+Perl_call_list
+Perl_call_method
+Perl_call_pv
+Perl_call_sv
+Perl_calloc
+Perl_cando
+Perl_cast_i32
+Perl_cast_iv
+Perl_cast_ulong
+Perl_cast_uv
+Perl_condpair_magic
+Perl_convert
+Perl_croak
+Perl_cv_ckproto
+Perl_cv_clone
+Perl_cv_const_sv
+Perl_cv_undef
+Perl_cx_dump
+Perl_cxinc
+Perl_deb
+Perl_deb_growlevel
+Perl_debop
+Perl_debprofdump
+Perl_debstack
+Perl_debstackptrs
+Perl_default_protect
+Perl_delimcpy
+Perl_deprecate
+Perl_die
+Perl_die_where
+Perl_do_aexec
+Perl_do_binmode
+Perl_do_chomp
+Perl_do_chop
+Perl_do_close
+Perl_do_eof
+Perl_do_exec
+Perl_do_exec3
+Perl_do_execfree
+Perl_do_gv_dump
+Perl_do_gvgv_dump
+Perl_do_hv_dump
+Perl_do_ipcctl
+Perl_do_ipcget
+Perl_do_join
+Perl_do_kv
+Perl_do_magic_dump
+Perl_do_msgrcv
+Perl_do_msgsnd
+Perl_do_op_dump
+Perl_do_open
+Perl_do_pipe
+Perl_do_pmop_dump
+Perl_do_print
+Perl_do_readline
+Perl_do_seek
+Perl_do_semop
+Perl_do_shmio
+Perl_do_sprintf
+Perl_do_sv_dump
+Perl_do_sysseek
+Perl_do_tell
+Perl_do_trans
+Perl_do_vecset
+Perl_do_vop
+Perl_dofile
+Perl_dounwind
+Perl_dowantarray
+Perl_dump_all
+Perl_dump_eval
+Perl_dump_fds
+Perl_dump_form
+Perl_dump_indent
+Perl_dump_mstats
+Perl_dump_packsubs
+Perl_dump_sub
+Perl_eval_pv
+Perl_eval_sv
+Perl_fbm_compile
+Perl_fbm_instr
+Perl_filter_add
+Perl_filter_del
+Perl_filter_read
+Perl_find_script
+Perl_find_threadsv
+Perl_fold_constants
+Perl_force_list
+Perl_form
+Perl_free_tmps
+Perl_gen_constant_list
+Perl_get_av
+Perl_get_cv
+Perl_get_hv
+Perl_get_no_modify
+Perl_get_op_descs
+Perl_get_op_names
+Perl_get_opargs
+Perl_get_sv
+Perl_get_vtbl
+Perl_getenv_len
+Perl_gp_free
+Perl_gp_ref
+Perl_gv_AVadd
+Perl_gv_HVadd
+Perl_gv_IOadd
+Perl_gv_autoload4
+Perl_gv_check
+Perl_gv_dump
+Perl_gv_efullname
+Perl_gv_efullname3
+Perl_gv_fetchfile
+Perl_gv_fetchmeth
+Perl_gv_fetchmethod
+Perl_gv_fetchmethod_autoload
+Perl_gv_fetchpv
+Perl_gv_fullname
+Perl_gv_fullname3
+Perl_gv_init
+Perl_gv_stashpv
+Perl_gv_stashpvn
+Perl_gv_stashsv
+Perl_hv_clear
+Perl_hv_delayfree_ent
+Perl_hv_delete
+Perl_hv_delete_ent
+Perl_hv_exists
+Perl_hv_exists_ent
+Perl_hv_fetch
+Perl_hv_fetch_ent
+Perl_hv_free_ent
+Perl_hv_iterinit
+Perl_hv_iterkey
+Perl_hv_iterkeysv
+Perl_hv_iternext
+Perl_hv_iternextsv
+Perl_hv_iterval
+Perl_hv_ksplit
+Perl_hv_magic
+Perl_hv_store
+Perl_hv_store_ent
+Perl_hv_undef
+Perl_ibcmp
+Perl_ibcmp_locale
+Perl_ingroup
+Perl_init_i18nl10n
+Perl_init_i18nl14n
+Perl_init_stacks
+Perl_instr
+Perl_intro_my
+Perl_invert
+Perl_io_close
+Perl_is_uni_alnum
+Perl_is_uni_alnum_lc
+Perl_is_uni_alpha
+Perl_is_uni_alpha_lc
+Perl_is_uni_digit
+Perl_is_uni_digit_lc
+Perl_is_uni_idfirst
+Perl_is_uni_idfirst_lc
+Perl_is_uni_lower
+Perl_is_uni_lower_lc
+Perl_is_uni_print
+Perl_is_uni_print_lc
+Perl_is_uni_space
+Perl_is_uni_space_lc
+Perl_is_uni_upper
+Perl_is_uni_upper_lc
+Perl_is_utf8_alnum
+Perl_is_utf8_alpha
+Perl_is_utf8_digit
+Perl_is_utf8_idfirst
+Perl_is_utf8_lower
+Perl_is_utf8_mark
+Perl_is_utf8_print
+Perl_is_utf8_space
+Perl_is_utf8_upper
+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_clear_all_env
+Perl_magic_clearenv
+Perl_magic_clearpack
+Perl_magic_clearsig
+Perl_magic_dump
+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_killbackrefs
+Perl_magic_len
+Perl_magic_mutexfree
+Perl_magic_nextpack
+Perl_magic_regdata_cnt
+Perl_magic_regdatum_get
+Perl_magic_set
+Perl_magic_set_all_env
+Perl_magic_setamagic
+Perl_magic_setarylen
+Perl_magic_setbm
+Perl_magic_setcollxfrm
+Perl_magic_setdbline
+Perl_magic_setdefelem
+Perl_magic_setenv
+Perl_magic_setfm
+Perl_magic_setglob
+Perl_magic_setisa
+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_sizepack
+Perl_magic_wipepack
+Perl_magicname
+main
+Perl_malloc
+Perl_malloced_size
+Perl_markstack_grow
+Perl_mem_collxfrm
+Perl_mess
+Perl_mfree
+Perl_mg_clear
+Perl_mg_copy
+Perl_mg_find
+Perl_mg_free
+Perl_mg_get
+Perl_mg_length
+Perl_mg_magical
+Perl_mg_set
+Perl_mg_size
+Perl_mod
+Perl_moreswitches
+Perl_my
+Perl_my_bcopy
+Perl_my_bzero
+Perl_my_chsize
+Perl_my_exit
+Perl_my_failure_exit
+Perl_my_fflush_all
+Perl_my_htonl
+Perl_my_lstat
+Perl_my_memcmp
+Perl_my_memset
+Perl_my_ntohl
+Perl_my_pclose
+Perl_my_popen
+Perl_my_setenv
+Perl_my_stat
+Perl_my_swap
+Perl_my_unexec
+Perl_newANONHASH
+Perl_newANONLIST
+Perl_newANONSUB
+Perl_newASSIGNOP
+Perl_newAV
+Perl_newAVREF
+Perl_newBINOP
+Perl_newCONDOP
+Perl_newCONSTSUB
+Perl_newCVREF
+Perl_newFORM
+Perl_newFOROP
+Perl_newGVOP
+Perl_newGVREF
+Perl_newGVgen
+Perl_newHV
+Perl_newHVREF
+Perl_newHVhv
+Perl_newIO
+Perl_newLISTOP
+Perl_newLOGOP
+Perl_newLOOPEX
+Perl_newLOOPOP
+Perl_newNULLLIST
+Perl_newOP
+Perl_newPMOP
+Perl_newPROG
+Perl_newPVOP
+Perl_newRANGE
+Perl_newRV
+Perl_newRV_noinc
+Perl_newSLICEOP
+Perl_newSTATEOP
+Perl_newSUB
+Perl_newSV
+Perl_newSVOP
+Perl_newSVREF
+Perl_newSViv
+Perl_newSVnv
+Perl_newSVpv
+Perl_newSVpvf
+Perl_newSVpvn
+Perl_newSVrv
+Perl_newSVsv
+Perl_newUNOP
+Perl_newWHILEOP
+Perl_newXS
+Perl_new_collate
+Perl_new_ctype
+Perl_new_numeric
+Perl_new_stackinfo
+Perl_new_struct_thread
+Perl_nextargv
+Perl_ninstr
+Perl_oopsAV
+Perl_oopsCV
+Perl_oopsHV
+Perl_op_const_sv
+Perl_op_dump
+Perl_op_free
+Perl_package
+Perl_pad_alloc
+Perl_pad_allocmy
+Perl_pad_findmy
+Perl_pad_free
+Perl_pad_leavemy
+Perl_pad_reset
+Perl_pad_sv
+Perl_pad_swipe
+Perl_peep
+perl_alloc
+perl_construct
+perl_destruct
+perl_free
+perl_parse
+perl_run
+Perl_pidgone
+Perl_pmflag
+Perl_pmop_dump
+Perl_pmruntime
+Perl_pmtrans
+Perl_pop_return
+Perl_pop_scope
+Perl_pregcomp
+Perl_pregexec
+Perl_pregfree
+Perl_prepend_elem
+Perl_push_return
+Perl_push_scope
+Perl_pv_display
+Perl_realloc
+Perl_ref
+Perl_refkids
+Perl_regdump
+Perl_regexec_flags
+Perl_reginitcolors
+Perl_regnext
+Perl_regprop
+Perl_repeatcpy
+Perl_require_pv
+Perl_rninstr
+Perl_rsignal
+Perl_rsignal_restore
+Perl_rsignal_save
+Perl_rsignal_state
+Perl_runops_debug
+Perl_runops_standard
+Perl_rxres_free
+Perl_rxres_restore
+Perl_rxres_save
+Perl_safesyscalloc
+Perl_safesysfree
+Perl_safesysmalloc
+Perl_safesysrealloc
+Perl_safexcalloc
+Perl_safexfree
+Perl_safexmalloc
+Perl_safexrealloc
+Perl_same_dirent
+Perl_save_I16
+Perl_save_I32
+Perl_save_aelem
+Perl_save_alloc
+Perl_save_aptr
+Perl_save_ary
+Perl_save_clearsv
+Perl_save_delete
+Perl_save_destructor
+Perl_save_freeop
+Perl_save_freepv
+Perl_save_freesv
+Perl_save_generic_svref
+Perl_save_gp
+Perl_save_hash
+Perl_save_helem
+Perl_save_hints
+Perl_save_hptr
+Perl_save_int
+Perl_save_item
+Perl_save_iv
+Perl_save_list
+Perl_save_long
+Perl_save_nogv
+Perl_save_op
+Perl_save_pptr
+Perl_save_re_context
+Perl_save_scalar
+Perl_save_sptr
+Perl_save_svref
+Perl_save_threadsv
+Perl_savepv
+Perl_savepvn
+Perl_savestack_grow
+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_set_numeric_local
+Perl_set_numeric_standard
+Perl_setdefout
+Perl_setenv_getix
+Perl_share_hek
+Perl_sharepvn
+Perl_sighandler
+Perl_stack_grow
+Perl_start_subparse
+Perl_sub_crush_depth
+Perl_sv_2bool
+Perl_sv_2cv
+Perl_sv_2io
+Perl_sv_2iv
+Perl_sv_2mortal
+Perl_sv_2nv
+Perl_sv_2pv
+Perl_sv_2pv_nolen
+Perl_sv_2uv
+Perl_sv_add_arena
+Perl_sv_backoff
+Perl_sv_bless
+Perl_sv_catpv
+Perl_sv_catpv_mg
+Perl_sv_catpvf
+Perl_sv_catpvf_mg
+Perl_sv_catpvn
+Perl_sv_catpvn_mg
+Perl_sv_catsv
+Perl_sv_catsv_mg
+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_derived_from
+Perl_sv_dump
+Perl_sv_eq
+Perl_sv_force_normal
+Perl_sv_free
+Perl_sv_free_arenas
+Perl_sv_gets
+Perl_sv_grow
+Perl_sv_inc
+Perl_sv_insert
+Perl_sv_isa
+Perl_sv_isobject
+Perl_sv_iv
+Perl_sv_len
+Perl_sv_len_utf8
+Perl_sv_magic
+Perl_sv_mortalcopy
+Perl_sv_newmortal
+Perl_sv_newref
+Perl_sv_nv
+Perl_sv_peek
+Perl_sv_pos_b2u
+Perl_sv_pos_u2b
+Perl_sv_pv
+Perl_sv_pvn
+Perl_sv_pvn_force
+Perl_sv_reftype
+Perl_sv_replace
+Perl_sv_report_used
+Perl_sv_reset
+Perl_sv_rvweaken
+Perl_sv_setiv
+Perl_sv_setiv_mg
+Perl_sv_setnv
+Perl_sv_setnv_mg
+Perl_sv_setpv
+Perl_sv_setpv_mg
+Perl_sv_setpvf
+Perl_sv_setpvf_mg
+Perl_sv_setpviv
+Perl_sv_setpviv_mg
+Perl_sv_setpvn
+Perl_sv_setpvn_mg
+Perl_sv_setref_iv
+Perl_sv_setref_nv
+Perl_sv_setref_pv
+Perl_sv_setref_pvn
+Perl_sv_setsv
+Perl_sv_setsv_mg
+Perl_sv_setuv
+Perl_sv_setuv_mg
+Perl_sv_taint
+Perl_sv_tainted
+Perl_sv_true
+Perl_sv_unmagic
+Perl_sv_unref
+Perl_sv_untaint
+Perl_sv_upgrade
+Perl_sv_usepvn
+Perl_sv_usepvn_mg
+Perl_sv_uv
+Perl_sv_vcatpvfn
+Perl_sv_vsetpvfn
+Perl_swash_fetch
+Perl_swash_init
+Perl_taint_env
+Perl_taint_proper
+Perl_tmps_grow
+Perl_to_uni_lower
+Perl_to_uni_lower_lc
+Perl_to_uni_title
+Perl_to_uni_title_lc
+Perl_to_uni_upper
+Perl_to_uni_upper_lc
+Perl_to_utf8_lower
+Perl_to_utf8_title
+Perl_to_utf8_upper
+Perl_unlnk
+Perl_unlock_condpair
+Perl_unshare_hek
+Perl_unsharepvn
+Perl_utf16_to_utf8
+Perl_utf16_to_utf8_reversed
+Perl_utf8_distance
+Perl_utf8_hop
+Perl_utf8_to_uv
+Perl_utilize
+Perl_uv_to_utf8
+Perl_vivify_defelem
+Perl_vivify_ref
+Perl_wait4pid
+Perl_warn
+Perl_warner
+Perl_watch
+Perl_whichsig
+Perl_yydestruct
+Perl_yyerror
+Perl_yylex
+Perl_yyparse
+Perl_yywarn
index b8d7c38..b31b9b1 100644 (file)
--- a/globals.c
+++ b/globals.c
@@ -1,4 +1,5 @@
 #include "INTERN.h"
+#define PERL_IN_GLOBALS_C
 #include "perl.h"
 
 #ifdef PERL_OBJECT
@@ -11,7 +12,8 @@
 #define PERLVARIC(x, y, z) PL_##x = z;
 
 CPerlObj::CPerlObj(IPerlMem* ipM, IPerlEnv* ipE, IPerlStdIO* ipStd,
-                                            IPerlLIO* ipLIO, IPerlDir* ipD, IPerlSock* ipS, IPerlProc* ipP)
+                  IPerlLIO* ipLIO, IPerlDir* ipD, IPerlSock* ipS,
+                  IPerlProc* ipP)
 {
     memset(((char*)this)+sizeof(void*), 0, sizeof(CPerlObj)-sizeof(void*));
 
@@ -48,23 +50,15 @@ CPerlObj::Init(void)
 {
 }
 
-int
-fprintf(PerlIO *stream, const char *format, ...)
-{
-    va_list(arglist);
-    va_start(arglist, format);
-    return PerlIO_vprintf(stream, format, arglist);
-}
-
 #ifdef WIN32           /* XXX why are these needed? */
 bool
-do_exec(char *cmd)
+Perl_do_exec(pTHX_ char *cmd)
 {
     return PerlProc_Cmd(cmd);
 }
 
 int
-do_aspawn(void *vreally, void **vmark, void **vsp)
+do_aspawn(pTHX_ void *vreally, void **vmark, void **vsp)
 {
     return PerlProc_aspawn(vreally, vmark, vsp);
 }
diff --git a/gv.c b/gv.c
index 7ab7496..5ae3cd3 100644 (file)
--- a/gv.c
+++ b/gv.c
  */
 
 #include "EXTERN.h"
+#define PERL_IN_GV_C
 #include "perl.h"
 
 GV *
-gv_AVadd(register GV *gv)
+Perl_gv_AVadd(pTHX_ register GV *gv)
 {
     if (!gv || SvTYPE((SV*)gv) != SVt_PVGV)
        croak("Bad symbol for array");
@@ -30,7 +31,7 @@ gv_AVadd(register GV *gv)
 }
 
 GV *
-gv_HVadd(register GV *gv)
+Perl_gv_HVadd(pTHX_ register GV *gv)
 {
     if (!gv || SvTYPE((SV*)gv) != SVt_PVGV)
        croak("Bad symbol for hash");
@@ -40,7 +41,7 @@ gv_HVadd(register GV *gv)
 }
 
 GV *
-gv_IOadd(register GV *gv)
+Perl_gv_IOadd(pTHX_ register GV *gv)
 {
     if (!gv || SvTYPE((SV*)gv) != SVt_PVGV)
        croak("Bad symbol for filehandle");
@@ -50,7 +51,7 @@ gv_IOadd(register GV *gv)
 }
 
 GV *
-gv_fetchfile(const char *name)
+Perl_gv_fetchfile(pTHX_ const char *name)
 {
     dTHR;
     char smallbuf[256];
@@ -80,7 +81,7 @@ gv_fetchfile(const char *name)
 }
 
 void
-gv_init(GV *gv, HV *stash, const char *name, STRLEN len, int multi)
+Perl_gv_init(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, int multi)
 {
     dTHR;
     register GP *gp;
@@ -136,7 +137,7 @@ gv_init(GV *gv, HV *stash, const char *name, STRLEN len, int multi)
 }
 
 STATIC void
-gv_init_sv(GV *gv, I32 sv_type)
+gv_init_sv(pTHX_ GV *gv, I32 sv_type)
 {
     switch (sv_type) {
     case SVt_PVIO:
@@ -152,7 +153,7 @@ gv_init_sv(GV *gv, I32 sv_type)
 }
 
 GV *
-gv_fetchmeth(HV *stash, const char *name, STRLEN len, I32 level)
+Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level)
 {
     AV* av;
     GV* topgv;
@@ -273,13 +274,13 @@ gv_fetchmeth(HV *stash, const char *name, STRLEN len, I32 level)
 }
 
 GV *
-gv_fetchmethod(HV *stash, const char *name)
+Perl_gv_fetchmethod(pTHX_ HV *stash, const char *name)
 {
     return gv_fetchmethod_autoload(stash, name, TRUE);
 }
 
 GV *
-gv_fetchmethod_autoload(HV *stash, const char *name, I32 autoload)
+Perl_gv_fetchmethod_autoload(pTHX_ HV *stash, const char *name, I32 autoload)
 {
     dTHR;
     register const char *nend;
@@ -340,7 +341,7 @@ gv_fetchmethod_autoload(HV *stash, const char *name, I32 autoload)
 }
 
 GV*
-gv_autoload4(HV *stash, const char *name, STRLEN len, I32 method)
+Perl_gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method)
 {
     dTHR;
     static char autoload[] = "AUTOLOAD";
@@ -385,13 +386,13 @@ gv_autoload4(HV *stash, const char *name, STRLEN len, I32 method)
 }
 
 HV*
-gv_stashpv(const char *name, I32 create)
+Perl_gv_stashpv(pTHX_ const char *name, I32 create)
 {
     return gv_stashpvn(name, strlen(name), create);
 }
 
 HV*
-gv_stashpvn(const char *name, U32 namelen, I32 create)
+Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 create)
 {
     char smallbuf[256];
     char *tmpbuf;
@@ -420,7 +421,7 @@ gv_stashpvn(const char *name, U32 namelen, I32 create)
 }
 
 HV*
-gv_stashsv(SV *sv, I32 create)
+Perl_gv_stashsv(pTHX_ SV *sv, I32 create)
 {
     register char *ptr;
     STRLEN len;
@@ -430,7 +431,7 @@ gv_stashsv(SV *sv, I32 create)
 
 
 GV *
-gv_fetchpv(const char *nambeg, I32 add, I32 sv_type)
+Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
 {
     dTHR;
     register const char *name = nambeg;
@@ -820,7 +821,7 @@ gv_fetchpv(const char *nambeg, I32 add, I32 sv_type)
 }
 
 void
-gv_fullname3(SV *sv, GV *gv, const char *prefix)
+Perl_gv_fullname3(pTHX_ SV *sv, GV *gv, const char *prefix)
 {
     HV *hv = GvSTASH(gv);
     if (!hv) {
@@ -834,7 +835,7 @@ gv_fullname3(SV *sv, GV *gv, const char *prefix)
 }
 
 void
-gv_efullname3(SV *sv, GV *gv, const char *prefix)
+Perl_gv_efullname3(pTHX_ SV *sv, GV *gv, const char *prefix)
 {
     GV *egv = GvEGV(gv);
     if (!egv)
@@ -844,20 +845,20 @@ gv_efullname3(SV *sv, GV *gv, const char *prefix)
 
 /* XXX compatibility with versions <= 5.003. */
 void
-gv_fullname(SV *sv, GV *gv)
+Perl_gv_fullname(pTHX_ SV *sv, GV *gv)
 {
     gv_fullname3(sv, gv, sv == (SV*)gv ? "*" : "");
 }
 
 /* XXX compatibility with versions <= 5.003. */
 void
-gv_efullname(SV *sv, GV *gv)
+Perl_gv_efullname(pTHX_ SV *sv, GV *gv)
 {
     gv_efullname3(sv, gv, sv == (SV*)gv ? "*" : "");
 }
 
 IO *
-newIO(void)
+Perl_newIO(pTHX)
 {
     dTHR;
     IO *io;
@@ -876,7 +877,7 @@ newIO(void)
 }
 
 void
-gv_check(HV *stash)
+Perl_gv_check(pTHX_ HV *stash)
 {
     dTHR;
     register HE *entry;
@@ -913,7 +914,7 @@ gv_check(HV *stash)
 }
 
 GV *
-newGVgen(char *pack)
+Perl_newGVgen(pTHX_ char *pack)
 {
     return gv_fetchpv(form("%s::_GEN_%ld", pack, (long)PL_gensym++),
                      TRUE, SVt_PVGV);
@@ -922,7 +923,7 @@ newGVgen(char *pack)
 /* hopefully this is only called on local symbol table entries */
 
 GP*
-gp_ref(GP *gp)
+Perl_gp_ref(pTHX_ GP *gp)
 {
     gp->gp_refcnt++;
     if (gp->gp_cv) {
@@ -941,7 +942,7 @@ gp_ref(GP *gp)
 }
 
 void
-gp_free(GV *gv)
+Perl_gp_free(pTHX_ GV *gv)
 {
     GP* gp;
     CV* cv;
@@ -1000,7 +1001,7 @@ register GV *gv;
 /* Updates and caches the CV's */
 
 bool
-Gv_AMupdate(HV *stash)
+Perl_Gv_AMupdate(pTHX_ HV *stash)
 {
   dTHR;  
   GV** gvp;
@@ -1158,7 +1159,7 @@ Gv_AMupdate(HV *stash)
 }
 
 SV*
-amagic_call(SV *left, SV *right, int method, int flags)
+Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags)
 {
   dTHR;
   MAGIC *mg; 
diff --git a/gv.h b/gv.h
index 0226513..a2b07bf 100644 (file)
--- a/gv.h
+++ b/gv.h
@@ -128,7 +128,7 @@ HV *GvHVn();
 #define DM_DELAY 0x100
 
 /*
- * symbol creation flags, for use in gv_fetchpv() and perl_get_*v()
+ * symbol creation flags, for use in gv_fetchpv() and get_*v()
  */
 #define GV_ADD         0x01    /* add, if symbol not already there */
 #define GV_ADDMULTI    0x02    /* add, pretending it has been added already */
diff --git a/hv.c b/hv.c
index 0f71f01..9a7b31f 100644 (file)
--- a/hv.c
+++ b/hv.c
  */
 
 #include "EXTERN.h"
+#define PERL_IN_HV_C
 #include "perl.h"
 
-static void hv_magic_check (HV *hv, bool *needs_copy, bool *needs_store);
-#ifndef PERL_OBJECT
-static void hsplit (HV *hv);
-static void hfreeentries (HV *hv);
-static void more_he (void);
-static HEK *save_hek (const char *str, I32 len, U32 hash);
-#endif
-
 #if defined(STRANGE_MALLOC) || defined(MYMALLOC)
 #  define ARRAY_ALLOC_BYTES(size) ( (size)*sizeof(HE*) )
 #else
@@ -32,7 +25,7 @@ static HEK *save_hek (const char *str, I32 len, U32 hash);
 #endif
 
 STATIC HE*
-new_he(void)
+new_he(pTHX)
 {
     HE* he;
     LOCK_SV_MUTEX;
@@ -45,7 +38,7 @@ new_he(void)
 }
 
 STATIC void
-del_he(HE *p)
+del_he(pTHX_ HE *p)
 {
     LOCK_SV_MUTEX;
     HeNEXT(p) = (HE*)PL_he_root;
@@ -54,7 +47,7 @@ del_he(HE *p)
 }
 
 STATIC void
-more_he(void)
+more_he(pTHX)
 {
     register HE* he;
     register HE* heend;
@@ -69,7 +62,7 @@ more_he(void)
 }
 
 STATIC HEK *
-save_hek(const char *str, I32 len, U32 hash)
+save_hek(pTHX_ const char *str, I32 len, U32 hash)
 {
     char *k;
     register HEK *hek;
@@ -84,7 +77,7 @@ save_hek(const char *str, I32 len, U32 hash)
 }
 
 void
-unshare_hek(HEK *hek)
+Perl_unshare_hek(pTHX_ HEK *hek)
 {
     unsharepvn(HEK_KEY(hek),HEK_LEN(hek),HEK_HASH(hek));
 }
@@ -93,7 +86,7 @@ unshare_hek(HEK *hek)
  * contains an SV* */
 
 SV**
-hv_fetch(HV *hv, const char *key, U32 klen, I32 lval)
+Perl_hv_fetch(pTHX_ HV *hv, const char *key, U32 klen, I32 lval)
 {
     register XPVHV* xhv;
     register U32 hash;
@@ -171,7 +164,7 @@ hv_fetch(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 */
 HE *
-hv_fetch_ent(HV *hv, SV *keysv, I32 lval, register U32 hash)
+Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, register U32 hash)
 {
     register XPVHV* xhv;
     register char *key;
@@ -259,8 +252,8 @@ hv_fetch_ent(HV *hv, SV *keysv, I32 lval, register U32 hash)
     return 0;
 }
 
-static void
-hv_magic_check (HV *hv, bool *needs_copy, bool *needs_store)
+STATIC void
+hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store)
 {
     MAGIC *mg = SvMAGIC(hv);
     *needs_copy = FALSE;
@@ -279,7 +272,7 @@ hv_magic_check (HV *hv, bool *needs_copy, bool *needs_store)
 }
 
 SV**
-hv_store(HV *hv, const char *key, U32 klen, SV *val, register U32 hash)
+Perl_hv_store(pTHX_ HV *hv, const char *key, U32 klen, SV *val, register U32 hash)
 {
     register XPVHV* xhv;
     register I32 i;
@@ -348,7 +341,7 @@ hv_store(HV *hv, const char *key, U32 klen, SV *val, register U32 hash)
 }
 
 HE *
-hv_store_ent(HV *hv, SV *keysv, SV *val, register U32 hash)
+Perl_hv_store_ent(pTHX_ HV *hv, SV *keysv, SV *val, register U32 hash)
 {
     register XPVHV* xhv;
     register char *key;
@@ -429,7 +422,7 @@ hv_store_ent(HV *hv, SV *keysv, SV *val, register U32 hash)
 }
 
 SV *
-hv_delete(HV *hv, const char *key, U32 klen, I32 flags)
+Perl_hv_delete(pTHX_ HV *hv, const char *key, U32 klen, I32 flags)
 {
     register XPVHV* xhv;
     register I32 i;
@@ -498,7 +491,7 @@ hv_delete(HV *hv, const char *key, U32 klen, I32 flags)
 }
 
 SV *
-hv_delete_ent(HV *hv, SV *keysv, I32 flags, U32 hash)
+Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash)
 {
     register XPVHV* xhv;
     register I32 i;
@@ -572,7 +565,7 @@ hv_delete_ent(HV *hv, SV *keysv, I32 flags, U32 hash)
 }
 
 bool
-hv_exists(HV *hv, const char *key, U32 klen)
+Perl_hv_exists(pTHX_ HV *hv, const char *key, U32 klen)
 {
     register XPVHV* xhv;
     register U32 hash;
@@ -637,7 +630,7 @@ hv_exists(HV *hv, const char *key, U32 klen)
 
 
 bool
-hv_exists_ent(HV *hv, SV *keysv, U32 hash)
+Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash)
 {
     register XPVHV* xhv;
     register char *key;
@@ -707,7 +700,7 @@ hv_exists_ent(HV *hv, SV *keysv, U32 hash)
 }
 
 STATIC void
-hsplit(HV *hv)
+hsplit(pTHX_ HV *hv)
 {
     register XPVHV* xhv = (XPVHV*)SvANY(hv);
     I32 oldsize = (I32) xhv->xhv_max + 1; /* sic(k) */
@@ -769,7 +762,7 @@ hsplit(HV *hv)
 }
 
 void
-hv_ksplit(HV *hv, IV newmax)
+Perl_hv_ksplit(pTHX_ HV *hv, IV newmax)
 {
     register XPVHV* xhv = (XPVHV*)SvANY(hv);
     I32 oldsize = (I32) xhv->xhv_max + 1; /* sic(k) */
@@ -847,7 +840,7 @@ hv_ksplit(HV *hv, IV newmax)
 }
 
 HV *
-newHV(void)
+Perl_newHV(pTHX)
 {
     register HV *hv;
     register XPVHV* xhv;
@@ -868,7 +861,7 @@ newHV(void)
 }
 
 HV *
-newHVhv(HV *ohv)
+Perl_newHVhv(pTHX_ HV *ohv)
 {
     register HV *hv;
     STRLEN hv_max = ohv ? HvMAX(ohv) : 0;
@@ -906,7 +899,7 @@ newHVhv(HV *ohv)
 }
 
 void
-hv_free_ent(HV *hv, register HE *entry)
+Perl_hv_free_ent(pTHX_ HV *hv, register HE *entry)
 {
     SV *val;
 
@@ -928,7 +921,7 @@ hv_free_ent(HV *hv, register HE *entry)
 }
 
 void
-hv_delayfree_ent(HV *hv, register HE *entry)
+Perl_hv_delayfree_ent(pTHX_ HV *hv, register HE *entry)
 {
     if (!entry)
        return;
@@ -947,7 +940,7 @@ hv_delayfree_ent(HV *hv, register HE *entry)
 }
 
 void
-hv_clear(HV *hv)
+Perl_hv_clear(pTHX_ HV *hv)
 {
     register XPVHV* xhv;
     if (!hv)
@@ -964,7 +957,7 @@ hv_clear(HV *hv)
 }
 
 STATIC void
-hfreeentries(HV *hv)
+hfreeentries(pTHX_ HV *hv)
 {
     register HE **array;
     register HE *entry;
@@ -997,7 +990,7 @@ hfreeentries(HV *hv)
 }
 
 void
-hv_undef(HV *hv)
+Perl_hv_undef(pTHX_ HV *hv)
 {
     register XPVHV* xhv;
     if (!hv)
@@ -1019,7 +1012,7 @@ hv_undef(HV *hv)
 }
 
 I32
-hv_iterinit(HV *hv)
+Perl_hv_iterinit(pTHX_ HV *hv)
 {
     register XPVHV* xhv;
     HE *entry;
@@ -1038,7 +1031,7 @@ hv_iterinit(HV *hv)
 }
 
 HE *
-hv_iternext(HV *hv)
+Perl_hv_iternext(pTHX_ HV *hv)
 {
     register XPVHV* xhv;
     register HE *entry;
@@ -1108,7 +1101,7 @@ hv_iternext(HV *hv)
 }
 
 char *
-hv_iterkey(register HE *entry, I32 *retlen)
+Perl_hv_iterkey(pTHX_ register HE *entry, I32 *retlen)
 {
     if (HeKLEN(entry) == HEf_SVKEY) {
        STRLEN len;
@@ -1124,7 +1117,7 @@ hv_iterkey(register HE *entry, I32 *retlen)
 
 /* unlike hv_iterval(), this always returns a mortal copy of the key */
 SV *
-hv_iterkeysv(register HE *entry)
+Perl_hv_iterkeysv(pTHX_ register HE *entry)
 {
     if (HeKLEN(entry) == HEf_SVKEY)
        return sv_mortalcopy(HeKEY_sv(entry));
@@ -1134,7 +1127,7 @@ hv_iterkeysv(register HE *entry)
 }
 
 SV *
-hv_iterval(HV *hv, register HE *entry)
+Perl_hv_iterval(pTHX_ HV *hv, register HE *entry)
 {
     if (SvRMAGICAL(hv)) {
        if (mg_find((SV*)hv,'P')) {
@@ -1149,7 +1142,7 @@ hv_iterval(HV *hv, register HE *entry)
 }
 
 SV *
-hv_iternextsv(HV *hv, char **key, I32 *retlen)
+Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen)
 {
     HE *he;
     if ( (he = hv_iternext(hv)) == NULL)
@@ -1159,13 +1152,13 @@ hv_iternextsv(HV *hv, char **key, I32 *retlen)
 }
 
 void
-hv_magic(HV *hv, GV *gv, int how)
+Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how)
 {
     sv_magic((SV*)hv, (SV*)gv, how, Nullch, 0);
 }
 
 char*  
-sharepvn(const char *sv, I32 len, U32 hash)
+Perl_sharepvn(pTHX_ const char *sv, I32 len, U32 hash)
 {
     return HEK_KEY(share_hek(sv, len, hash));
 }
@@ -1174,7 +1167,7 @@ sharepvn(const char *sv, I32 len, U32 hash)
  * len and hash must both be valid for str.
  */
 void
-unsharepvn(const char *str, I32 len, U32 hash)
+Perl_unsharepvn(pTHX_ const char *str, I32 len, U32 hash)
 {
     register XPVHV* xhv;
     register HE *entry;
@@ -1220,7 +1213,7 @@ unsharepvn(const char *str, I32 len, U32 hash)
  * len and hash must both be valid for str.
  */
 HEK *
-share_hek(const char *str, I32 len, register U32 hash)
+Perl_share_hek(pTHX_ const char *str, I32 len, register U32 hash)
 {
     register XPVHV* xhv;
     register HE *entry;
index 5a51413..32c669b 100644 (file)
--- a/malloc.c
+++ b/malloc.c
 
 #ifdef PERL_CORE
 #  include "EXTERN.h"
+#define PERL_IN_MALLOC_C
 #  include "perl.h"
 #else
 #  ifdef PERL_FOR_X2P
@@ -411,13 +412,6 @@ union      overhead {
 #define        ov_rmagic       ovu.ovu_rmagic
 };
 
-#ifdef DEBUGGING
-static void botch (char *diag, char *s);
-#endif
-static void morecore (int bucket);
-static int findbucket (union overhead *freep, int srchlen);
-static void add_to_chain(void *p, MEM_SIZE size, MEM_SIZE chip);
-
 #define        MAGIC           0xff            /* magic # on accounting info */
 #define RMAGIC         0x55555555      /* magic # on range info */
 #define RMAGIC_C       0x55            /* magic # on range info */
@@ -715,10 +709,9 @@ static char bucket_of[] =
 
 static char *emergency_buffer;
 static MEM_SIZE emergency_buffer_size;
-static Malloc_t emergency_sbrk(MEM_SIZE size);
 
-static Malloc_t
-emergency_sbrk(MEM_SIZE size)
+STATIC Malloc_t
+emergency_sbrk(pTHX_ MEM_SIZE size)
 {
     MEM_SIZE rsize = (((size - 1)>>LOG_OF_MIN_ARENA) + 1)<<LOG_OF_MIN_ARENA;
 
@@ -816,8 +809,8 @@ static      u_int goodsbrk;
 #ifdef DEBUGGING
 #undef ASSERT
 #define        ASSERT(p,diag)   if (!(p)) botch(diag,STRINGIFY(p));  else
-static void
-botch(char *diag, char *s)
+STATIC void
+botch(pTHX_ char *diag, char *s)
 {
        PerlIO_printf(PerlIO_stderr(), "assertion botched (%s?): %s\n", diag, s);
        PerlProc_abort();
@@ -954,8 +947,8 @@ static int n_chunks;
 static char max_bucket;
 
 /* Cutoff a piece of one of the chunks in the chain.  Prefer smaller chunk. */
-static void *
-get_from_chain(MEM_SIZE size)
+STATIC void *
+get_from_chain(pTHX_ MEM_SIZE size)
 {
     struct chunk_chain_s *elt = chunk_chain, **oldp = &chunk_chain;
     struct chunk_chain_s **oldgoodp = NULL;
@@ -992,8 +985,8 @@ get_from_chain(MEM_SIZE size)
     }
 }
 
-static void
-add_to_chain(void *p, MEM_SIZE size, MEM_SIZE chip)
+STATIC void
+add_to_chain(pTHX_ void *p, MEM_SIZE size, MEM_SIZE chip)
 {
     struct chunk_chain_s *next = chunk_chain;
     char *cp = (char*)p;
@@ -1005,8 +998,8 @@ add_to_chain(void *p, MEM_SIZE size, MEM_SIZE chip)
     n_chunks++;
 }
 
-static void *
-get_from_bigger_buckets(int bucket, MEM_SIZE size)
+STATIC void *
+get_from_bigger_buckets(pTHX_ int bucket, MEM_SIZE size)
 {
     int price = 1;
     static int bucketprice[NBUCKETS];
@@ -1035,8 +1028,8 @@ get_from_bigger_buckets(int bucket, MEM_SIZE size)
     return NULL;
 }
 
-static union overhead *
-getpages(int needed, int *nblksp, int bucket)
+STATIC union overhead *
+getpages(pTHX_ int needed, int *nblksp, int bucket)
 {
     /* Need to do (possibly expensive) system call. Try to
        optimize it for rare calling. */
@@ -1188,8 +1181,8 @@ getpages(int needed, int *nblksp, int bucket)
     return ovp;
 }
 
-static int
-getpages_adjacent(int require)
+STATIC int
+getpages_adjacent(pTHX_ int require)
 {          
     if (require <= sbrked_remains) {
        sbrked_remains -= require;
@@ -1232,8 +1225,8 @@ getpages_adjacent(int require)
 /*
  * Allocate more memory to the indicated bucket.
  */
-static void
-morecore(register int bucket)
+STATIC void
+morecore(pTHX_ register int bucket)
 {
        register union overhead *ovp;
        register int rnu;       /* 2^rnu bytes will be requested */
@@ -1613,7 +1606,7 @@ Perl_calloc(register size_t elements, register size_t size)
 }
 
 MEM_SIZE
-malloced_size(void *p)
+Perl_malloced_size(pTHX_ void *p)
 {
     union overhead *ovp = (union overhead *)
        ((caddr_t)p - sizeof (union overhead) * CHUNK_SHIFT);
@@ -1643,7 +1636,7 @@ malloced_size(void *p)
  * frees for each size category.
  */
 void
-dump_mstats(char *s)
+Perl_dump_mstats(pTHX_ char *s)
 {
 #ifdef DEBUGGING_MSTATS
        register int i, j;
diff --git a/mg.c b/mg.c
index bfd6035..fb8d4ba 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -13,6 +13,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_MG_C
 #include "perl.h"
 
 /* XXX If this causes problems, set i_unistd=undef in the hint file.  */
@@ -30,8 +31,6 @@
 #  define VTBL            this->*vtbl
 #else
 #  define VTBL                 *vtbl
-static void restore_magic (void *p);
-static int magic_methcall(SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val);
 #endif
 
 /*
@@ -46,7 +45,7 @@ struct magic_state {
 /* MGS is typedef'ed to struct magic_state in perl.h */
 
 STATIC void
-save_magic(I32 mgs_ix, SV *sv)
+save_magic(pTHX_ I32 mgs_ix, SV *sv)
 {
     dTHR;
     MGS* mgs;
@@ -65,7 +64,7 @@ save_magic(I32 mgs_ix, SV *sv)
 }
 
 STATIC void
-restore_magic(void *p)
+restore_magic(pTHX_ void *p)
 {
     dTHR;
     MGS* mgs = SSPTR((I32)p, MGS*);
@@ -107,7 +106,7 @@ restore_magic(void *p)
 }
 
 void
-mg_magical(SV *sv)
+Perl_mg_magical(pTHX_ SV *sv)
 {
     MAGIC* mg;
     for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {
@@ -124,7 +123,7 @@ mg_magical(SV *sv)
 }
 
 int
-mg_get(SV *sv)
+Perl_mg_get(pTHX_ SV *sv)
 {
     dTHR;
     I32 mgs_ix;
@@ -159,7 +158,7 @@ mg_get(SV *sv)
 }
 
 int
-mg_set(SV *sv)
+Perl_mg_set(pTHX_ SV *sv)
 {
     dTHR;
     I32 mgs_ix;
@@ -185,7 +184,7 @@ mg_set(SV *sv)
 }
 
 U32
-mg_length(SV *sv)
+Perl_mg_length(pTHX_ SV *sv)
 {
     MAGIC* mg;
     char *junk;
@@ -210,7 +209,7 @@ mg_length(SV *sv)
 }
 
 I32
-mg_size(SV *sv)
+Perl_mg_size(pTHX_ SV *sv)
 {
     MAGIC* mg;
     I32 len;
@@ -243,7 +242,7 @@ mg_size(SV *sv)
 }
 
 int
-mg_clear(SV *sv)
+Perl_mg_clear(pTHX_ SV *sv)
 {
     I32 mgs_ix;
     MAGIC* mg;
@@ -264,7 +263,7 @@ mg_clear(SV *sv)
 }
 
 MAGIC*
-mg_find(SV *sv, int type)
+Perl_mg_find(pTHX_ SV *sv, int type)
 {
     MAGIC* mg;
     for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {
@@ -275,7 +274,7 @@ mg_find(SV *sv, int type)
 }
 
 int
-mg_copy(SV *sv, SV *nsv, const char *key, I32 klen)
+Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen)
 {
     int count = 0;
     MAGIC* mg;
@@ -291,7 +290,7 @@ mg_copy(SV *sv, SV *nsv, const char *key, I32 klen)
 }
 
 int
-mg_free(SV *sv)
+Perl_mg_free(pTHX_ SV *sv)
 {
     MAGIC* mg;
     MAGIC* moremagic;
@@ -318,7 +317,7 @@ mg_free(SV *sv)
 #endif
 
 U32
-magic_regdata_cnt(SV *sv, MAGIC *mg)
+Perl_magic_regdata_cnt(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     register char *s;
@@ -337,7 +336,7 @@ magic_regdata_cnt(SV *sv, MAGIC *mg)
 }
 
 int
-magic_regdatum_get(SV *sv, MAGIC *mg)
+Perl_magic_regdatum_get(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     register I32 paren;
@@ -365,7 +364,7 @@ magic_regdatum_get(SV *sv, MAGIC *mg)
 }
 
 U32
-magic_len(SV *sv, MAGIC *mg)
+Perl_magic_len(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     register I32 paren;
@@ -460,7 +459,7 @@ printW(SV *sv)
 #endif
 
 int
-magic_get(SV *sv, MAGIC *mg)
+Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     register I32 paren;
@@ -764,7 +763,7 @@ magic_get(SV *sv, MAGIC *mg)
 }
 
 int
-magic_getuvar(SV *sv, MAGIC *mg)
+Perl_magic_getuvar(pTHX_ SV *sv, MAGIC *mg)
 {
     struct ufuncs *uf = (struct ufuncs *)mg->mg_ptr;
 
@@ -774,7 +773,7 @@ magic_getuvar(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setenv(SV *sv, MAGIC *mg)
+Perl_magic_setenv(pTHX_ SV *sv, MAGIC *mg)
 {
     register char *s;
     char *ptr;
@@ -850,7 +849,7 @@ magic_setenv(SV *sv, MAGIC *mg)
 }
 
 int
-magic_clearenv(SV *sv, MAGIC *mg)
+Perl_magic_clearenv(pTHX_ SV *sv, MAGIC *mg)
 {
     STRLEN n_a;
     my_setenv(MgPV(mg,n_a),Nullch);
@@ -858,7 +857,7 @@ magic_clearenv(SV *sv, MAGIC *mg)
 }
 
 int
-magic_set_all_env(SV *sv, MAGIC *mg)
+Perl_magic_set_all_env(pTHX_ SV *sv, MAGIC *mg)
 {
 #if defined(VMS)
     die("Can't make list assignment to %%ENV on this system");
@@ -880,7 +879,7 @@ magic_set_all_env(SV *sv, MAGIC *mg)
 }
 
 int
-magic_clear_all_env(SV *sv, MAGIC *mg)
+Perl_magic_clear_all_env(pTHX_ SV *sv, MAGIC *mg)
 {
 #if defined(VMS)
     die("Can't make list assignment to %%ENV on this system");
@@ -920,7 +919,7 @@ magic_clear_all_env(SV *sv, MAGIC *mg)
 }
 
 int
-magic_getsig(SV *sv, MAGIC *mg)
+Perl_magic_getsig(pTHX_ SV *sv, MAGIC *mg)
 {
     I32 i;
     STRLEN n_a;
@@ -944,7 +943,7 @@ magic_getsig(SV *sv, MAGIC *mg)
     return 0;
 }
 int
-magic_clearsig(SV *sv, MAGIC *mg)
+Perl_magic_clearsig(pTHX_ SV *sv, MAGIC *mg)
 {
     I32 i;
     STRLEN n_a;
@@ -964,7 +963,7 @@ magic_clearsig(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setsig(SV *sv, MAGIC *mg)
+Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     register char *s;
@@ -1039,14 +1038,14 @@ magic_setsig(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setisa(SV *sv, MAGIC *mg)
+Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
 {
     PL_sub_generation++;
     return 0;
 }
 
 int
-magic_setamagic(SV *sv, MAGIC *mg)
+Perl_magic_setamagic(pTHX_ SV *sv, MAGIC *mg)
 {
     /* HV_badAMAGIC_on(Sv_STASH(sv)); */
     PL_amagic_generation++;
@@ -1055,7 +1054,7 @@ magic_setamagic(SV *sv, MAGIC *mg)
 }
 
 int
-magic_getnkeys(SV *sv, MAGIC *mg)
+Perl_magic_getnkeys(pTHX_ SV *sv, MAGIC *mg)
 {
     HV *hv = (HV*)LvTARG(sv);
     HE *entry;
@@ -1078,7 +1077,7 @@ magic_getnkeys(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setnkeys(SV *sv, MAGIC *mg)
+Perl_magic_setnkeys(pTHX_ SV *sv, MAGIC *mg)
 {
     if (LvTARG(sv)) {
        hv_ksplit((HV*)LvTARG(sv), SvIV(sv));
@@ -1088,7 +1087,7 @@ magic_setnkeys(SV *sv, MAGIC *mg)
 
 /* caller is responsible for stack switching/cleanup */
 STATIC int
-magic_methcall(SV *sv, MAGIC *mg, char *meth, I32 flags, int n, SV *val)
+magic_methcall(pTHX_ SV *sv, MAGIC *mg, char *meth, I32 flags, int n, SV *val)
 {
     dSP;
 
@@ -1111,11 +1110,11 @@ magic_methcall(SV *sv, MAGIC *mg, char *meth, I32 flags, int n, SV *val)
     }
     PUTBACK;
 
-    return perl_call_method(meth, flags);
+    return call_method(meth, flags);
 }
 
 STATIC int
-magic_methpack(SV *sv, MAGIC *mg, char *meth)
+magic_methpack(pTHX_ SV *sv, MAGIC *mg, char *meth)
 {
     dSP;
 
@@ -1134,7 +1133,7 @@ magic_methpack(SV *sv, MAGIC *mg, char *meth)
 }
 
 int
-magic_getpack(SV *sv, MAGIC *mg)
+Perl_magic_getpack(pTHX_ SV *sv, MAGIC *mg)
 {
     magic_methpack(sv,mg,"FETCH");
     if (mg->mg_ptr)
@@ -1143,7 +1142,7 @@ magic_getpack(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setpack(SV *sv, MAGIC *mg)
+Perl_magic_setpack(pTHX_ SV *sv, MAGIC *mg)
 {
     dSP;
     ENTER;
@@ -1155,14 +1154,14 @@ magic_setpack(SV *sv, MAGIC *mg)
 }
 
 int
-magic_clearpack(SV *sv, MAGIC *mg)
+Perl_magic_clearpack(pTHX_ SV *sv, MAGIC *mg)
 {
     return magic_methpack(sv,mg,"DELETE");
 }
 
 
 U32
-magic_sizepack(SV *sv, MAGIC *mg)
+Perl_magic_sizepack(pTHX_ SV *sv, MAGIC *mg)
 {         
     dSP;
     U32 retval = 0;
@@ -1189,14 +1188,14 @@ int magic_wipepack(SV *sv, MAGIC *mg)
     PUSHMARK(SP);
     XPUSHs(SvTIED_obj(sv, mg));
     PUTBACK;
-    perl_call_method("CLEAR", G_SCALAR|G_DISCARD);
+    call_method("CLEAR", G_SCALAR|G_DISCARD);
     POPSTACK;
     LEAVE;
     return 0;
 }
 
 int
-magic_nextpack(SV *sv, MAGIC *mg, SV *key)
+Perl_magic_nextpack(pTHX_ SV *sv, MAGIC *mg, SV *key)
 {
     dSP;
     char *meth = SvOK(key) ? "NEXTKEY" : "FIRSTKEY";
@@ -1211,7 +1210,7 @@ magic_nextpack(SV *sv, MAGIC *mg, SV *key)
        PUSHs(key);
     PUTBACK;
 
-    if (perl_call_method(meth, G_SCALAR))
+    if (call_method(meth, G_SCALAR))
        sv_setsv(key, *PL_stack_sp--);
 
     POPSTACK;
@@ -1221,13 +1220,13 @@ magic_nextpack(SV *sv, MAGIC *mg, SV *key)
 }
 
 int
-magic_existspack(SV *sv, MAGIC *mg)
+Perl_magic_existspack(pTHX_ SV *sv, MAGIC *mg)
 {
     return magic_methpack(sv,mg,"EXISTS");
 } 
 
 int
-magic_setdbline(SV *sv, MAGIC *mg)
+Perl_magic_setdbline(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     OP *o;
@@ -1248,7 +1247,7 @@ magic_setdbline(SV *sv, MAGIC *mg)
 }
 
 int
-magic_getarylen(SV *sv, MAGIC *mg)
+Perl_magic_getarylen(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     sv_setiv(sv, AvFILL((AV*)mg->mg_obj) + PL_curcop->cop_arybase);
@@ -1256,7 +1255,7 @@ magic_getarylen(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setarylen(SV *sv, MAGIC *mg)
+Perl_magic_setarylen(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     av_fill((AV*)mg->mg_obj, SvIV(sv) - PL_curcop->cop_arybase);
@@ -1264,7 +1263,7 @@ magic_setarylen(SV *sv, MAGIC *mg)
 }
 
 int
-magic_getpos(SV *sv, MAGIC *mg)
+Perl_magic_getpos(pTHX_ SV *sv, MAGIC *mg)
 {
     SV* lsv = LvTARG(sv);
     
@@ -1284,7 +1283,7 @@ magic_getpos(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setpos(SV *sv, MAGIC *mg)
+Perl_magic_setpos(pTHX_ SV *sv, MAGIC *mg)
 {
     SV* lsv = LvTARG(sv);
     SSize_t pos;
@@ -1339,7 +1338,7 @@ magic_setpos(SV *sv, MAGIC *mg)
 }
 
 int
-magic_getglob(SV *sv, MAGIC *mg)
+Perl_magic_getglob(pTHX_ SV *sv, MAGIC *mg)
 {
     if (SvFAKE(sv)) {                  /* FAKE globs can get coerced */
        SvFAKE_off(sv);
@@ -1352,7 +1351,7 @@ magic_getglob(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setglob(SV *sv, MAGIC *mg)
+Perl_magic_setglob(pTHX_ SV *sv, MAGIC *mg)
 {
     register char *s;
     GV* gv;
@@ -1373,7 +1372,7 @@ magic_setglob(SV *sv, MAGIC *mg)
 }
 
 int
-magic_getsubstr(SV *sv, MAGIC *mg)
+Perl_magic_getsubstr(pTHX_ SV *sv, MAGIC *mg)
 {
     STRLEN len;
     SV *lsv = LvTARG(sv);
@@ -1390,7 +1389,7 @@ magic_getsubstr(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setsubstr(SV *sv, MAGIC *mg)
+Perl_magic_setsubstr(pTHX_ SV *sv, MAGIC *mg)
 {
     STRLEN len;
     char *tmps = SvPV(sv,len);
@@ -1399,7 +1398,7 @@ magic_setsubstr(SV *sv, MAGIC *mg)
 }
 
 int
-magic_gettaint(SV *sv, MAGIC *mg)
+Perl_magic_gettaint(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     TAINT_IF((mg->mg_len & 1) ||
@@ -1408,7 +1407,7 @@ magic_gettaint(SV *sv, MAGIC *mg)
 }
 
 int
-magic_settaint(SV *sv, MAGIC *mg)
+Perl_magic_settaint(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     if (PL_localizing) {
@@ -1425,7 +1424,7 @@ magic_settaint(SV *sv, MAGIC *mg)
 }
 
 int
-magic_getvec(SV *sv, MAGIC *mg)
+Perl_magic_getvec(pTHX_ SV *sv, MAGIC *mg)
 {
     SV *lsv = LvTARG(sv);
     unsigned char *s;
@@ -1491,14 +1490,14 @@ magic_getvec(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setvec(SV *sv, MAGIC *mg)
+Perl_magic_setvec(pTHX_ SV *sv, MAGIC *mg)
 {
     do_vecset(sv);     /* XXX slurp this routine */
     return 0;
 }
 
 int
-magic_getdefelem(SV *sv, MAGIC *mg)
+Perl_magic_getdefelem(pTHX_ SV *sv, MAGIC *mg)
 {
     SV *targ = Nullsv;
     if (LvTARGLEN(sv)) {
@@ -1538,7 +1537,7 @@ magic_getdefelem(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setdefelem(SV *sv, MAGIC *mg)
+Perl_magic_setdefelem(pTHX_ SV *sv, MAGIC *mg)
 {
     if (LvTARGLEN(sv))
        vivify_defelem(sv);
@@ -1550,7 +1549,7 @@ magic_setdefelem(SV *sv, MAGIC *mg)
 }
 
 void
-vivify_defelem(SV *sv)
+Perl_vivify_defelem(pTHX_ SV *sv)
 {
     dTHR;                      /* just for SvREFCNT_inc and SvREFCNT_dec*/
     MAGIC *mg;
@@ -1594,7 +1593,7 @@ vivify_defelem(SV *sv)
 }
 
 int
-magic_killbackrefs(SV *sv, MAGIC *mg)
+Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg)
 {
     AV *av = (AV*)mg->mg_obj;
     SV **svp = AvARRAY(av);
@@ -1615,7 +1614,7 @@ magic_killbackrefs(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setmglob(SV *sv, MAGIC *mg)
+Perl_magic_setmglob(pTHX_ SV *sv, MAGIC *mg)
 {
     mg->mg_len = -1;
     SvSCREAM_off(sv);
@@ -1623,7 +1622,7 @@ magic_setmglob(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setbm(SV *sv, MAGIC *mg)
+Perl_magic_setbm(pTHX_ SV *sv, MAGIC *mg)
 {
     sv_unmagic(sv, 'B');
     SvVALID_off(sv);
@@ -1631,7 +1630,7 @@ magic_setbm(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setfm(SV *sv, MAGIC *mg)
+Perl_magic_setfm(pTHX_ SV *sv, MAGIC *mg)
 {
     sv_unmagic(sv, 'f');
     SvCOMPILED_off(sv);
@@ -1639,7 +1638,7 @@ magic_setfm(SV *sv, MAGIC *mg)
 }
 
 int
-magic_setuvar(SV *sv, MAGIC *mg)
+Perl_magic_setuvar(pTHX_ SV *sv, MAGIC *mg)
 {
     struct ufuncs *uf = (struct ufuncs *)mg->mg_ptr;
 
@@ -1649,7 +1648,7 @@ magic_setuvar(SV *sv, MAGIC *mg)
 }
 
 int
-magic_freeregexp(SV *sv, MAGIC *mg)
+Perl_magic_freeregexp(pTHX_ SV *sv, MAGIC *mg)
 {
     regexp *re = (regexp *)mg->mg_obj;
     ReREFCNT_dec(re);
@@ -1658,7 +1657,7 @@ magic_freeregexp(SV *sv, MAGIC *mg)
 
 #ifdef USE_LOCALE_COLLATE
 int
-magic_setcollxfrm(SV *sv, MAGIC *mg)
+Perl_magic_setcollxfrm(pTHX_ SV *sv, MAGIC *mg)
 {
     /*
      * RenE<eacute> Descartes said "I think not."
@@ -1674,7 +1673,7 @@ magic_setcollxfrm(SV *sv, MAGIC *mg)
 #endif /* USE_LOCALE_COLLATE */
 
 int
-magic_set(SV *sv, MAGIC *mg)
+Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     register char *s;
@@ -2056,7 +2055,7 @@ magic_set(SV *sv, MAGIC *mg)
 
 #ifdef USE_THREADS
 int
-magic_mutexfree(SV *sv, MAGIC *mg)
+Perl_magic_mutexfree(pTHX_ SV *sv, MAGIC *mg)
 {
     dTHR;
     DEBUG_S(PerlIO_printf(PerlIO_stderr(), "0x%lx: magic_mutexfree 0x%lx\n",
@@ -2070,7 +2069,7 @@ magic_mutexfree(SV *sv, MAGIC *mg)
 #endif /* USE_THREADS */
 
 I32
-whichsig(char *sig)
+Perl_whichsig(pTHX_ char *sig)
 {
     register char **sigv;
 
@@ -2091,7 +2090,7 @@ whichsig(char *sig)
 static SV* sig_sv;
 
 STATIC void
-unwind_handler_stack(void *p)
+unwind_handler_stack(pTHX_ void *p)
 {
     dTHR;
     U32 flags = *(U32*)p;
@@ -2104,7 +2103,7 @@ unwind_handler_stack(void *p)
 }
 
 Signal_t
-sighandler(int sig)
+Perl_sighandler(pTHX_ int sig)
 {
     dSP;
     GV *gv = Nullgv;
@@ -2173,7 +2172,7 @@ sighandler(int sig)
     PUSHs(sv);
     PUTBACK;
 
-    perl_call_sv((SV*)cv, G_DISCARD);
+    call_sv((SV*)cv, G_DISCARD);
 
     POPSTACK;
 cleanup:
index 4a0fe67..3265bc7 100644 (file)
@@ -8,9 +8,10 @@
 
 
 #include "EXTERN.h"
+#define PERL_IN_MINIPERLMAIN_C
 #include "perl.h"
 
-static void xs_init (void);
+static void xs_init (pTHX);
 static PerlInterpreter *my_perl;
 
 #if defined (__MINT__) || defined (atarist)
@@ -36,7 +37,7 @@ main(int argc, char **argv, char **env)
 
     PERL_SYS_INIT(&argc,&argv);
 
-    perl_init_i18nl10n(1);
+    init_i18nl10n(1);
 
     if (!PL_do_undump) {
        my_perl = perl_alloc();
@@ -65,7 +66,7 @@ main(int argc, char **argv, char **env)
 /* Do not delete this line--writemain depends on it */
 
 static void
-xs_init(void)
+xs_init(pTHX)
 {
   dXSUB_SYS;
 }
index 1fbb214..161a530 100644 (file)
--- a/objXSUB.h
+++ b/objXSUB.h
 
 /* Functions */
 
-#undef  Gv_AMupdate
-#define Gv_AMupdate            pPerl->Perl_Gv_AMupdate
+#undef  Perl_ErrorNo
+#define Perl_ErrorNo           pPerl->Perl_ErrorNo
+#undef  Perl_GetVars
+#define Perl_GetVars           pPerl->Perl_GetVars
+#undef  Perl_Gv_AMupdate
+#define Perl_Gv_AMupdate       pPerl->Perl_Gv_AMupdate
+#undef  Perl_amagic_call
+#define Perl_amagic_call       pPerl->Perl_amagic_call
+#undef  Perl_append_elem
+#define Perl_append_elem       pPerl->Perl_append_elem
+#undef  Perl_append_list
+#define Perl_append_list       pPerl->Perl_append_list
+#undef  Perl_apply
+#define Perl_apply             pPerl->Perl_apply
+#undef  Perl_assertref
+#define Perl_assertref         pPerl->Perl_assertref
+#undef  Perl_av_clear
+#define Perl_av_clear          pPerl->Perl_av_clear
+#undef  Perl_av_extend
+#define Perl_av_extend         pPerl->Perl_av_extend
+#undef  Perl_av_fake
+#define Perl_av_fake           pPerl->Perl_av_fake
+#undef  Perl_av_fetch
+#define Perl_av_fetch          pPerl->Perl_av_fetch
+#undef  Perl_av_fill
+#define Perl_av_fill           pPerl->Perl_av_fill
+#undef  Perl_av_len
+#define Perl_av_len            pPerl->Perl_av_len
+#undef  Perl_av_make
+#define Perl_av_make           pPerl->Perl_av_make
+#undef  Perl_av_pop
+#define Perl_av_pop            pPerl->Perl_av_pop
+#undef  Perl_av_push
+#define Perl_av_push           pPerl->Perl_av_push
+#undef  Perl_av_reify
+#define Perl_av_reify          pPerl->Perl_av_reify
+#undef  Perl_av_shift
+#define Perl_av_shift          pPerl->Perl_av_shift
+#undef  Perl_av_store
+#define Perl_av_store          pPerl->Perl_av_store
+#undef  Perl_av_undef
+#define Perl_av_undef          pPerl->Perl_av_undef
+#undef  Perl_av_unshift
+#define Perl_av_unshift                pPerl->Perl_av_unshift
+#undef  Perl_avhv_exists_ent
+#define Perl_avhv_exists_ent   pPerl->Perl_avhv_exists_ent
+#undef  Perl_avhv_fetch_ent
+#define Perl_avhv_fetch_ent    pPerl->Perl_avhv_fetch_ent
+#undef  Perl_avhv_iternext
+#define Perl_avhv_iternext     pPerl->Perl_avhv_iternext
+#undef  Perl_avhv_iterval
+#define Perl_avhv_iterval      pPerl->Perl_avhv_iterval
+#undef  Perl_avhv_keys
+#define Perl_avhv_keys         pPerl->Perl_avhv_keys
+#undef  Perl_bind_match
+#define Perl_bind_match                pPerl->Perl_bind_match
+#undef  Perl_block_end
+#define Perl_block_end         pPerl->Perl_block_end
+#undef  Perl_block_gimme
+#define Perl_block_gimme       pPerl->Perl_block_gimme
+#undef  Perl_block_start
+#define Perl_block_start       pPerl->Perl_block_start
+#undef  Perl_boot_core_UNIVERSAL
+#define Perl_boot_core_UNIVERSAL       pPerl->Perl_boot_core_UNIVERSAL
+#undef  Perl_bset_obj_store
+#define Perl_bset_obj_store    pPerl->Perl_bset_obj_store
+#undef  Perl_call_argv
+#define Perl_call_argv         pPerl->Perl_call_argv
+#undef  Perl_call_atexit
+#define Perl_call_atexit       pPerl->Perl_call_atexit
+#undef  Perl_call_list
+#define Perl_call_list         pPerl->Perl_call_list
+#undef  Perl_call_method
+#define Perl_call_method       pPerl->Perl_call_method
+#undef  Perl_call_pv
+#define Perl_call_pv           pPerl->Perl_call_pv
+#undef  Perl_call_sv
+#define Perl_call_sv           pPerl->Perl_call_sv
+#undef  Perl_calloc
+#define Perl_calloc            pPerl->Perl_calloc
+#undef  Perl_cando
+#define Perl_cando             pPerl->Perl_cando
+#undef  Perl_cast_i32
+#define Perl_cast_i32          pPerl->Perl_cast_i32
+#undef  Perl_cast_iv
+#define Perl_cast_iv           pPerl->Perl_cast_iv
+#undef  Perl_cast_ulong
+#define Perl_cast_ulong                pPerl->Perl_cast_ulong
+#undef  Perl_cast_uv
+#define Perl_cast_uv           pPerl->Perl_cast_uv
+#undef  Perl_ck_anoncode
+#define Perl_ck_anoncode       pPerl->Perl_ck_anoncode
+#undef  Perl_ck_bitop
+#define Perl_ck_bitop          pPerl->Perl_ck_bitop
+#undef  Perl_ck_concat
+#define Perl_ck_concat         pPerl->Perl_ck_concat
+#undef  Perl_ck_defined
+#define Perl_ck_defined                pPerl->Perl_ck_defined
+#undef  Perl_ck_delete
+#define Perl_ck_delete         pPerl->Perl_ck_delete
+#undef  Perl_ck_eof
+#define Perl_ck_eof            pPerl->Perl_ck_eof
+#undef  Perl_ck_eval
+#define Perl_ck_eval           pPerl->Perl_ck_eval
+#undef  Perl_ck_exec
+#define Perl_ck_exec           pPerl->Perl_ck_exec
+#undef  Perl_ck_exists
+#define Perl_ck_exists         pPerl->Perl_ck_exists
+#undef  Perl_ck_ftst
+#define Perl_ck_ftst           pPerl->Perl_ck_ftst
+#undef  Perl_ck_fun
+#define Perl_ck_fun            pPerl->Perl_ck_fun
+#undef  Perl_ck_fun_locale
+#define Perl_ck_fun_locale     pPerl->Perl_ck_fun_locale
+#undef  Perl_ck_glob
+#define Perl_ck_glob           pPerl->Perl_ck_glob
+#undef  Perl_ck_grep
+#define Perl_ck_grep           pPerl->Perl_ck_grep
+#undef  Perl_ck_index
+#define Perl_ck_index          pPerl->Perl_ck_index
+#undef  Perl_ck_lengthconst
+#define Perl_ck_lengthconst    pPerl->Perl_ck_lengthconst
+#undef  Perl_ck_lfun
+#define Perl_ck_lfun           pPerl->Perl_ck_lfun
+#undef  Perl_ck_listiob
+#define Perl_ck_listiob                pPerl->Perl_ck_listiob
+#undef  Perl_ck_match
+#define Perl_ck_match          pPerl->Perl_ck_match
+#undef  Perl_ck_null
+#define Perl_ck_null           pPerl->Perl_ck_null
+#undef  Perl_ck_repeat
+#define Perl_ck_repeat         pPerl->Perl_ck_repeat
+#undef  Perl_ck_require
+#define Perl_ck_require                pPerl->Perl_ck_require
+#undef  Perl_ck_rfun
+#define Perl_ck_rfun           pPerl->Perl_ck_rfun
+#undef  Perl_ck_rvconst
+#define Perl_ck_rvconst                pPerl->Perl_ck_rvconst
+#undef  Perl_ck_scmp
+#define Perl_ck_scmp           pPerl->Perl_ck_scmp
+#undef  Perl_ck_select
+#define Perl_ck_select         pPerl->Perl_ck_select
+#undef  Perl_ck_shift
+#define Perl_ck_shift          pPerl->Perl_ck_shift
+#undef  Perl_ck_sort
+#define Perl_ck_sort           pPerl->Perl_ck_sort
+#undef  Perl_ck_spair
+#define Perl_ck_spair          pPerl->Perl_ck_spair
+#undef  Perl_ck_split
+#define Perl_ck_split          pPerl->Perl_ck_split
+#undef  Perl_ck_subr
+#define Perl_ck_subr           pPerl->Perl_ck_subr
+#undef  Perl_ck_svconst
+#define Perl_ck_svconst                pPerl->Perl_ck_svconst
+#undef  Perl_ck_trunc
+#define Perl_ck_trunc          pPerl->Perl_ck_trunc
+#undef  Perl_condpair_magic
+#define Perl_condpair_magic    pPerl->Perl_condpair_magic
+#undef  Perl_convert
+#define Perl_convert           pPerl->Perl_convert
+#undef  Perl_croak
+#define Perl_croak             pPerl->Perl_croak
+#undef  Perl_cv_ckproto
+#define Perl_cv_ckproto                pPerl->Perl_cv_ckproto
+#undef  Perl_cv_clone
+#define Perl_cv_clone          pPerl->Perl_cv_clone
+#undef  Perl_cv_const_sv
+#define Perl_cv_const_sv       pPerl->Perl_cv_const_sv
+#undef  Perl_cv_undef
+#define Perl_cv_undef          pPerl->Perl_cv_undef
+#undef  Perl_cx_dump
+#define Perl_cx_dump           pPerl->Perl_cx_dump
+#undef  Perl_cxinc
+#define Perl_cxinc             pPerl->Perl_cxinc
+#undef  Perl_deb
+#define Perl_deb               pPerl->Perl_deb
+#undef  Perl_deb_growlevel
+#define Perl_deb_growlevel     pPerl->Perl_deb_growlevel
+#undef  Perl_debop
+#define Perl_debop             pPerl->Perl_debop
+#undef  Perl_debprofdump
+#define Perl_debprofdump       pPerl->Perl_debprofdump
+#undef  Perl_debstack
+#define Perl_debstack          pPerl->Perl_debstack
+#undef  Perl_debstackptrs
+#define Perl_debstackptrs      pPerl->Perl_debstackptrs
+#undef  Perl_default_protect
+#define Perl_default_protect   pPerl->Perl_default_protect
+#undef  Perl_delimcpy
+#define Perl_delimcpy          pPerl->Perl_delimcpy
+#undef  Perl_deprecate
+#define Perl_deprecate         pPerl->Perl_deprecate
+#undef  Perl_die
+#define Perl_die               pPerl->Perl_die
+#undef  Perl_die_where
+#define Perl_die_where         pPerl->Perl_die_where
+#undef  Perl_do_aexec
+#define Perl_do_aexec          pPerl->Perl_do_aexec
+#undef  Perl_do_binmode
+#define Perl_do_binmode                pPerl->Perl_do_binmode
+#undef  Perl_do_chomp
+#define Perl_do_chomp          pPerl->Perl_do_chomp
+#undef  Perl_do_chop
+#define Perl_do_chop           pPerl->Perl_do_chop
+#undef  Perl_do_close
+#define Perl_do_close          pPerl->Perl_do_close
+#undef  Perl_do_eof
+#define Perl_do_eof            pPerl->Perl_do_eof
+#undef  Perl_do_exec
+#define Perl_do_exec           pPerl->Perl_do_exec
+#undef  Perl_do_exec3
+#define Perl_do_exec3          pPerl->Perl_do_exec3
+#undef  Perl_do_execfree
+#define Perl_do_execfree       pPerl->Perl_do_execfree
+#undef  Perl_do_gv_dump
+#define Perl_do_gv_dump                pPerl->Perl_do_gv_dump
+#undef  Perl_do_gvgv_dump
+#define Perl_do_gvgv_dump      pPerl->Perl_do_gvgv_dump
+#undef  Perl_do_hv_dump
+#define Perl_do_hv_dump                pPerl->Perl_do_hv_dump
+#undef  Perl_do_ipcctl
+#define Perl_do_ipcctl         pPerl->Perl_do_ipcctl
+#undef  Perl_do_ipcget
+#define Perl_do_ipcget         pPerl->Perl_do_ipcget
+#undef  Perl_do_join
+#define Perl_do_join           pPerl->Perl_do_join
+#undef  Perl_do_kv
+#define Perl_do_kv             pPerl->Perl_do_kv
+#undef  Perl_do_magic_dump
+#define Perl_do_magic_dump     pPerl->Perl_do_magic_dump
+#undef  Perl_do_msgrcv
+#define Perl_do_msgrcv         pPerl->Perl_do_msgrcv
+#undef  Perl_do_msgsnd
+#define Perl_do_msgsnd         pPerl->Perl_do_msgsnd
+#undef  Perl_do_op_dump
+#define Perl_do_op_dump                pPerl->Perl_do_op_dump
+#undef  Perl_do_open
+#define Perl_do_open           pPerl->Perl_do_open
+#undef  Perl_do_pipe
+#define Perl_do_pipe           pPerl->Perl_do_pipe
+#undef  Perl_do_pmop_dump
+#define Perl_do_pmop_dump      pPerl->Perl_do_pmop_dump
+#undef  Perl_do_print
+#define Perl_do_print          pPerl->Perl_do_print
+#undef  Perl_do_readline
+#define Perl_do_readline       pPerl->Perl_do_readline
+#undef  Perl_do_seek
+#define Perl_do_seek           pPerl->Perl_do_seek
+#undef  Perl_do_semop
+#define Perl_do_semop          pPerl->Perl_do_semop
+#undef  Perl_do_shmio
+#define Perl_do_shmio          pPerl->Perl_do_shmio
+#undef  Perl_do_sprintf
+#define Perl_do_sprintf                pPerl->Perl_do_sprintf
+#undef  Perl_do_sv_dump
+#define Perl_do_sv_dump                pPerl->Perl_do_sv_dump
+#undef  Perl_do_sysseek
+#define Perl_do_sysseek                pPerl->Perl_do_sysseek
+#undef  Perl_do_tell
+#define Perl_do_tell           pPerl->Perl_do_tell
+#undef  Perl_do_trans
+#define Perl_do_trans          pPerl->Perl_do_trans
+#undef  Perl_do_vecset
+#define Perl_do_vecset         pPerl->Perl_do_vecset
+#undef  Perl_do_vop
+#define Perl_do_vop            pPerl->Perl_do_vop
+#undef  Perl_dofile
+#define Perl_dofile            pPerl->Perl_dofile
+#undef  Perl_dounwind
+#define Perl_dounwind          pPerl->Perl_dounwind
+#undef  Perl_dowantarray
+#define Perl_dowantarray       pPerl->Perl_dowantarray
+#undef  Perl_dump_all
+#define Perl_dump_all          pPerl->Perl_dump_all
+#undef  Perl_dump_eval
+#define Perl_dump_eval         pPerl->Perl_dump_eval
+#undef  Perl_dump_fds
+#define Perl_dump_fds          pPerl->Perl_dump_fds
+#undef  Perl_dump_form
+#define Perl_dump_form         pPerl->Perl_dump_form
+#undef  Perl_dump_indent
+#define Perl_dump_indent       pPerl->Perl_dump_indent
+#undef  Perl_dump_mstats
+#define Perl_dump_mstats       pPerl->Perl_dump_mstats
+#undef  Perl_dump_packsubs
+#define Perl_dump_packsubs     pPerl->Perl_dump_packsubs
+#undef  Perl_dump_sub
+#define Perl_dump_sub          pPerl->Perl_dump_sub
+#undef  Perl_eval_pv
+#define Perl_eval_pv           pPerl->Perl_eval_pv
+#undef  Perl_eval_sv
+#define Perl_eval_sv           pPerl->Perl_eval_sv
+#undef  Perl_fbm_compile
+#define Perl_fbm_compile       pPerl->Perl_fbm_compile
+#undef  Perl_fbm_instr
+#define Perl_fbm_instr         pPerl->Perl_fbm_instr
+#undef  Perl_filter_add
+#define Perl_filter_add                pPerl->Perl_filter_add
+#undef  Perl_filter_del
+#define Perl_filter_del                pPerl->Perl_filter_del
+#undef  Perl_filter_read
+#define Perl_filter_read       pPerl->Perl_filter_read
+#undef  Perl_find_script
+#define Perl_find_script       pPerl->Perl_find_script
+#undef  Perl_find_threadsv
+#define Perl_find_threadsv     pPerl->Perl_find_threadsv
+#undef  Perl_fold_constants
+#define Perl_fold_constants    pPerl->Perl_fold_constants
+#undef  Perl_force_list
+#define Perl_force_list                pPerl->Perl_force_list
+#undef  Perl_form
+#define Perl_form              pPerl->Perl_form
+#undef  Perl_free_tmps
+#define Perl_free_tmps         pPerl->Perl_free_tmps
+#undef  Perl_gen_constant_list
+#define Perl_gen_constant_list pPerl->Perl_gen_constant_list
+#undef  Perl_get_av
+#define Perl_get_av            pPerl->Perl_get_av
+#undef  Perl_get_cv
+#define Perl_get_cv            pPerl->Perl_get_cv
+#undef  Perl_get_hv
+#define Perl_get_hv            pPerl->Perl_get_hv
+#undef  Perl_get_no_modify
+#define Perl_get_no_modify     pPerl->Perl_get_no_modify
+#undef  Perl_get_op_descs
+#define Perl_get_op_descs      pPerl->Perl_get_op_descs
+#undef  Perl_get_op_names
+#define Perl_get_op_names      pPerl->Perl_get_op_names
+#undef  Perl_get_opargs
+#define Perl_get_opargs                pPerl->Perl_get_opargs
+#undef  Perl_get_sv
+#define Perl_get_sv            pPerl->Perl_get_sv
+#undef  Perl_get_vtbl
+#define Perl_get_vtbl          pPerl->Perl_get_vtbl
+#undef  Perl_getenv_len
+#define Perl_getenv_len                pPerl->Perl_getenv_len
+#undef  Perl_gp_free
+#define Perl_gp_free           pPerl->Perl_gp_free
+#undef  Perl_gp_ref
+#define Perl_gp_ref            pPerl->Perl_gp_ref
+#undef  Perl_gv_AVadd
+#define Perl_gv_AVadd          pPerl->Perl_gv_AVadd
+#undef  Perl_gv_HVadd
+#define Perl_gv_HVadd          pPerl->Perl_gv_HVadd
+#undef  Perl_gv_IOadd
+#define Perl_gv_IOadd          pPerl->Perl_gv_IOadd
+#undef  Perl_gv_autoload4
+#define Perl_gv_autoload4      pPerl->Perl_gv_autoload4
+#undef  Perl_gv_check
+#define Perl_gv_check          pPerl->Perl_gv_check
+#undef  Perl_gv_dump
+#define Perl_gv_dump           pPerl->Perl_gv_dump
+#undef  Perl_gv_efullname
+#define Perl_gv_efullname      pPerl->Perl_gv_efullname
+#undef  Perl_gv_efullname3
+#define Perl_gv_efullname3     pPerl->Perl_gv_efullname3
+#undef  Perl_gv_fetchfile
+#define Perl_gv_fetchfile      pPerl->Perl_gv_fetchfile
+#undef  Perl_gv_fetchmeth
+#define Perl_gv_fetchmeth      pPerl->Perl_gv_fetchmeth
+#undef  Perl_gv_fetchmethod
+#define Perl_gv_fetchmethod    pPerl->Perl_gv_fetchmethod
+#undef  Perl_gv_fetchmethod_autoload
+#define Perl_gv_fetchmethod_autoload   pPerl->Perl_gv_fetchmethod_autoload
+#undef  Perl_gv_fetchpv
+#define Perl_gv_fetchpv                pPerl->Perl_gv_fetchpv
+#undef  Perl_gv_fullname
+#define Perl_gv_fullname       pPerl->Perl_gv_fullname
+#undef  Perl_gv_fullname3
+#define Perl_gv_fullname3      pPerl->Perl_gv_fullname3
+#undef  Perl_gv_init
+#define Perl_gv_init           pPerl->Perl_gv_init
+#undef  Perl_gv_stashpv
+#define Perl_gv_stashpv                pPerl->Perl_gv_stashpv
+#undef  Perl_gv_stashpvn
+#define Perl_gv_stashpvn       pPerl->Perl_gv_stashpvn
+#undef  Perl_gv_stashsv
+#define Perl_gv_stashsv                pPerl->Perl_gv_stashsv
+#undef  Perl_hv_clear
+#define Perl_hv_clear          pPerl->Perl_hv_clear
+#undef  Perl_hv_delayfree_ent
+#define Perl_hv_delayfree_ent  pPerl->Perl_hv_delayfree_ent
+#undef  Perl_hv_delete
+#define Perl_hv_delete         pPerl->Perl_hv_delete
+#undef  Perl_hv_delete_ent
+#define Perl_hv_delete_ent     pPerl->Perl_hv_delete_ent
+#undef  Perl_hv_exists
+#define Perl_hv_exists         pPerl->Perl_hv_exists
+#undef  Perl_hv_exists_ent
+#define Perl_hv_exists_ent     pPerl->Perl_hv_exists_ent
+#undef  Perl_hv_fetch
+#define Perl_hv_fetch          pPerl->Perl_hv_fetch
+#undef  Perl_hv_fetch_ent
+#define Perl_hv_fetch_ent      pPerl->Perl_hv_fetch_ent
+#undef  Perl_hv_free_ent
+#define Perl_hv_free_ent       pPerl->Perl_hv_free_ent
+#undef  Perl_hv_iterinit
+#define Perl_hv_iterinit       pPerl->Perl_hv_iterinit
+#undef  Perl_hv_iterkey
+#define Perl_hv_iterkey                pPerl->Perl_hv_iterkey
+#undef  Perl_hv_iterkeysv
+#define Perl_hv_iterkeysv      pPerl->Perl_hv_iterkeysv
+#undef  Perl_hv_iternext
+#define Perl_hv_iternext       pPerl->Perl_hv_iternext
+#undef  Perl_hv_iternextsv
+#define Perl_hv_iternextsv     pPerl->Perl_hv_iternextsv
+#undef  Perl_hv_iterval
+#define Perl_hv_iterval                pPerl->Perl_hv_iterval
+#undef  Perl_hv_ksplit
+#define Perl_hv_ksplit         pPerl->Perl_hv_ksplit
+#undef  Perl_hv_magic
+#define Perl_hv_magic          pPerl->Perl_hv_magic
+#undef  Perl_hv_store
+#define Perl_hv_store          pPerl->Perl_hv_store
+#undef  Perl_hv_store_ent
+#define Perl_hv_store_ent      pPerl->Perl_hv_store_ent
+#undef  Perl_hv_undef
+#define Perl_hv_undef          pPerl->Perl_hv_undef
+#undef  Perl_ibcmp
+#define Perl_ibcmp             pPerl->Perl_ibcmp
+#undef  Perl_ibcmp_locale
+#define Perl_ibcmp_locale      pPerl->Perl_ibcmp_locale
+#undef  Perl_ingroup
+#define Perl_ingroup           pPerl->Perl_ingroup
+#undef  Perl_init_i18nl10n
+#define Perl_init_i18nl10n     pPerl->Perl_init_i18nl10n
+#undef  Perl_init_i18nl14n
+#define Perl_init_i18nl14n     pPerl->Perl_init_i18nl14n
+#undef  Perl_init_stacks
+#define Perl_init_stacks       pPerl->Perl_init_stacks
+#undef  Perl_instr
+#define Perl_instr             pPerl->Perl_instr
+#undef  Perl_intro_my
+#define Perl_intro_my          pPerl->Perl_intro_my
+#undef  Perl_invert
+#define Perl_invert            pPerl->Perl_invert
+#undef  Perl_io_close
+#define Perl_io_close          pPerl->Perl_io_close
+#undef  Perl_is_uni_alnum
+#define Perl_is_uni_alnum      pPerl->Perl_is_uni_alnum
+#undef  Perl_is_uni_alnum_lc
+#define Perl_is_uni_alnum_lc   pPerl->Perl_is_uni_alnum_lc
+#undef  Perl_is_uni_alpha
+#define Perl_is_uni_alpha      pPerl->Perl_is_uni_alpha
+#undef  Perl_is_uni_alpha_lc
+#define Perl_is_uni_alpha_lc   pPerl->Perl_is_uni_alpha_lc
+#undef  Perl_is_uni_digit
+#define Perl_is_uni_digit      pPerl->Perl_is_uni_digit
+#undef  Perl_is_uni_digit_lc
+#define Perl_is_uni_digit_lc   pPerl->Perl_is_uni_digit_lc
+#undef  Perl_is_uni_idfirst
+#define Perl_is_uni_idfirst    pPerl->Perl_is_uni_idfirst
+#undef  Perl_is_uni_idfirst_lc
+#define Perl_is_uni_idfirst_lc pPerl->Perl_is_uni_idfirst_lc
+#undef  Perl_is_uni_lower
+#define Perl_is_uni_lower      pPerl->Perl_is_uni_lower
+#undef  Perl_is_uni_lower_lc
+#define Perl_is_uni_lower_lc   pPerl->Perl_is_uni_lower_lc
+#undef  Perl_is_uni_print
+#define Perl_is_uni_print      pPerl->Perl_is_uni_print
+#undef  Perl_is_uni_print_lc
+#define Perl_is_uni_print_lc   pPerl->Perl_is_uni_print_lc
+#undef  Perl_is_uni_space
+#define Perl_is_uni_space      pPerl->Perl_is_uni_space
+#undef  Perl_is_uni_space_lc
+#define Perl_is_uni_space_lc   pPerl->Perl_is_uni_space_lc
+#undef  Perl_is_uni_upper
+#define Perl_is_uni_upper      pPerl->Perl_is_uni_upper
+#undef  Perl_is_uni_upper_lc
+#define Perl_is_uni_upper_lc   pPerl->Perl_is_uni_upper_lc
+#undef  Perl_is_utf8_alnum
+#define Perl_is_utf8_alnum     pPerl->Perl_is_utf8_alnum
+#undef  Perl_is_utf8_alpha
+#define Perl_is_utf8_alpha     pPerl->Perl_is_utf8_alpha
+#undef  Perl_is_utf8_digit
+#define Perl_is_utf8_digit     pPerl->Perl_is_utf8_digit
+#undef  Perl_is_utf8_idfirst
+#define Perl_is_utf8_idfirst   pPerl->Perl_is_utf8_idfirst
+#undef  Perl_is_utf8_lower
+#define Perl_is_utf8_lower     pPerl->Perl_is_utf8_lower
+#undef  Perl_is_utf8_mark
+#define Perl_is_utf8_mark      pPerl->Perl_is_utf8_mark
+#undef  Perl_is_utf8_print
+#define Perl_is_utf8_print     pPerl->Perl_is_utf8_print
+#undef  Perl_is_utf8_space
+#define Perl_is_utf8_space     pPerl->Perl_is_utf8_space
+#undef  Perl_is_utf8_upper
+#define Perl_is_utf8_upper     pPerl->Perl_is_utf8_upper
+#undef  Perl_jmaybe
+#define Perl_jmaybe            pPerl->Perl_jmaybe
+#undef  Perl_keyword
+#define Perl_keyword           pPerl->Perl_keyword
+#undef  Perl_leave_scope
+#define Perl_leave_scope       pPerl->Perl_leave_scope
+#undef  Perl_lex_end
+#define Perl_lex_end           pPerl->Perl_lex_end
+#undef  Perl_lex_start
+#define Perl_lex_start         pPerl->Perl_lex_start
+#undef  Perl_linklist
+#define Perl_linklist          pPerl->Perl_linklist
+#undef  Perl_list
+#define Perl_list              pPerl->Perl_list
+#undef  Perl_listkids
+#define Perl_listkids          pPerl->Perl_listkids
+#undef  Perl_localize
+#define Perl_localize          pPerl->Perl_localize
+#undef  Perl_looks_like_number
+#define Perl_looks_like_number pPerl->Perl_looks_like_number
+#undef  Perl_magic_clear_all_env
+#define Perl_magic_clear_all_env       pPerl->Perl_magic_clear_all_env
+#undef  Perl_magic_clearenv
+#define Perl_magic_clearenv    pPerl->Perl_magic_clearenv
+#undef  Perl_magic_clearpack
+#define Perl_magic_clearpack   pPerl->Perl_magic_clearpack
+#undef  Perl_magic_clearsig
+#define Perl_magic_clearsig    pPerl->Perl_magic_clearsig
+#undef  Perl_magic_dump
+#define Perl_magic_dump                pPerl->Perl_magic_dump
+#undef  Perl_magic_existspack
+#define Perl_magic_existspack  pPerl->Perl_magic_existspack
+#undef  Perl_magic_freeregexp
+#define Perl_magic_freeregexp  pPerl->Perl_magic_freeregexp
+#undef  Perl_magic_get
+#define Perl_magic_get         pPerl->Perl_magic_get
+#undef  Perl_magic_getarylen
+#define Perl_magic_getarylen   pPerl->Perl_magic_getarylen
+#undef  Perl_magic_getdefelem
+#define Perl_magic_getdefelem  pPerl->Perl_magic_getdefelem
+#undef  Perl_magic_getglob
+#define Perl_magic_getglob     pPerl->Perl_magic_getglob
+#undef  Perl_magic_getnkeys
+#define Perl_magic_getnkeys    pPerl->Perl_magic_getnkeys
+#undef  Perl_magic_getpack
+#define Perl_magic_getpack     pPerl->Perl_magic_getpack
+#undef  Perl_magic_getpos
+#define Perl_magic_getpos      pPerl->Perl_magic_getpos
+#undef  Perl_magic_getsig
+#define Perl_magic_getsig      pPerl->Perl_magic_getsig
+#undef  Perl_magic_getsubstr
+#define Perl_magic_getsubstr   pPerl->Perl_magic_getsubstr
+#undef  Perl_magic_gettaint
+#define Perl_magic_gettaint    pPerl->Perl_magic_gettaint
+#undef  Perl_magic_getuvar
+#define Perl_magic_getuvar     pPerl->Perl_magic_getuvar
+#undef  Perl_magic_getvec
+#define Perl_magic_getvec      pPerl->Perl_magic_getvec
+#undef  Perl_magic_killbackrefs
+#define Perl_magic_killbackrefs        pPerl->Perl_magic_killbackrefs
+#undef  Perl_magic_len
+#define Perl_magic_len         pPerl->Perl_magic_len
+#undef  Perl_magic_mutexfree
+#define Perl_magic_mutexfree   pPerl->Perl_magic_mutexfree
+#undef  Perl_magic_nextpack
+#define Perl_magic_nextpack    pPerl->Perl_magic_nextpack
+#undef  Perl_magic_regdata_cnt
+#define Perl_magic_regdata_cnt pPerl->Perl_magic_regdata_cnt
+#undef  Perl_magic_regdatum_get
+#define Perl_magic_regdatum_get        pPerl->Perl_magic_regdatum_get
+#undef  Perl_magic_set
+#define Perl_magic_set         pPerl->Perl_magic_set
+#undef  Perl_magic_set_all_env
+#define Perl_magic_set_all_env pPerl->Perl_magic_set_all_env
+#undef  Perl_magic_setamagic
+#define Perl_magic_setamagic   pPerl->Perl_magic_setamagic
+#undef  Perl_magic_setarylen
+#define Perl_magic_setarylen   pPerl->Perl_magic_setarylen
+#undef  Perl_magic_setbm
+#define Perl_magic_setbm       pPerl->Perl_magic_setbm
+#undef  Perl_magic_setcollxfrm
+#define Perl_magic_setcollxfrm pPerl->Perl_magic_setcollxfrm
+#undef  Perl_magic_setdbline
+#define Perl_magic_setdbline   pPerl->Perl_magic_setdbline
+#undef  Perl_magic_setdefelem
+#define Perl_magic_setdefelem  pPerl->Perl_magic_setdefelem
+#undef  Perl_magic_setenv
+#define Perl_magic_setenv      pPerl->Perl_magic_setenv
+#undef  Perl_magic_setfm
+#define Perl_magic_setfm       pPerl->Perl_magic_setfm
+#undef  Perl_magic_setglob
+#define Perl_magic_setglob     pPerl->Perl_magic_setglob
+#undef  Perl_magic_setisa
+#define Perl_magic_setisa      pPerl->Perl_magic_setisa
+#undef  Perl_magic_setmglob
+#define Perl_magic_setmglob    pPerl->Perl_magic_setmglob
+#undef  Perl_magic_setnkeys
+#define Perl_magic_setnkeys    pPerl->Perl_magic_setnkeys
+#undef  Perl_magic_setpack
+#define Perl_magic_setpack     pPerl->Perl_magic_setpack
+#undef  Perl_magic_setpos
+#define Perl_magic_setpos      pPerl->Perl_magic_setpos
+#undef  Perl_magic_setsig
+#define Perl_magic_setsig      pPerl->Perl_magic_setsig
+#undef  Perl_magic_setsubstr
+#define Perl_magic_setsubstr   pPerl->Perl_magic_setsubstr
+#undef  Perl_magic_settaint
+#define Perl_magic_settaint    pPerl->Perl_magic_settaint
+#undef  Perl_magic_setuvar
+#define Perl_magic_setuvar     pPerl->Perl_magic_setuvar
+#undef  Perl_magic_setvec
+#define Perl_magic_setvec      pPerl->Perl_magic_setvec
+#undef  Perl_magic_sizepack
+#define Perl_magic_sizepack    pPerl->Perl_magic_sizepack
+#undef  Perl_magic_wipepack
+#define Perl_magic_wipepack    pPerl->Perl_magic_wipepack
+#undef  Perl_magicname
+#define Perl_magicname         pPerl->Perl_magicname
+#undef  Perl_malloc
+#define Perl_malloc            pPerl->Perl_malloc
+#undef  Perl_malloced_size
+#define Perl_malloced_size     pPerl->Perl_malloced_size
+#undef  Perl_markstack_grow
+#define Perl_markstack_grow    pPerl->Perl_markstack_grow
+#undef  Perl_mem_collxfrm
+#define Perl_mem_collxfrm      pPerl->Perl_mem_collxfrm
+#undef  Perl_mess
+#define Perl_mess              pPerl->Perl_mess
+#undef  Perl_mfree
+#define Perl_mfree             pPerl->Perl_mfree
+#undef  Perl_mg_clear
+#define Perl_mg_clear          pPerl->Perl_mg_clear
+#undef  Perl_mg_copy
+#define Perl_mg_copy           pPerl->Perl_mg_copy
+#undef  Perl_mg_find
+#define Perl_mg_find           pPerl->Perl_mg_find
+#undef  Perl_mg_free
+#define Perl_mg_free           pPerl->Perl_mg_free
+#undef  Perl_mg_get
+#define Perl_mg_get            pPerl->Perl_mg_get
+#undef  Perl_mg_length
+#define Perl_mg_length         pPerl->Perl_mg_length
+#undef  Perl_mg_magical
+#define Perl_mg_magical                pPerl->Perl_mg_magical
+#undef  Perl_mg_set
+#define Perl_mg_set            pPerl->Perl_mg_set
+#undef  Perl_mg_size
+#define Perl_mg_size           pPerl->Perl_mg_size
+#undef  Perl_mod
+#define Perl_mod               pPerl->Perl_mod
+#undef  Perl_moreswitches
+#define Perl_moreswitches      pPerl->Perl_moreswitches
+#undef  Perl_my
+#define Perl_my                        pPerl->Perl_my
+#undef  Perl_my_bcopy
+#define Perl_my_bcopy          pPerl->Perl_my_bcopy
+#undef  Perl_my_bzero
+#define Perl_my_bzero          pPerl->Perl_my_bzero
+#undef  Perl_my_chsize
+#define Perl_my_chsize         pPerl->Perl_my_chsize
+#undef  Perl_my_exit
+#define Perl_my_exit           pPerl->Perl_my_exit
+#undef  Perl_my_failure_exit
+#define Perl_my_failure_exit   pPerl->Perl_my_failure_exit
+#undef  Perl_my_fflush_all
+#define Perl_my_fflush_all     pPerl->Perl_my_fflush_all
+#undef  Perl_my_htonl
+#define Perl_my_htonl          pPerl->Perl_my_htonl
+#undef  Perl_my_lstat
+#define Perl_my_lstat          pPerl->Perl_my_lstat
+#undef  Perl_my_memcmp
+#define Perl_my_memcmp         pPerl->Perl_my_memcmp
+#undef  Perl_my_memset
+#define Perl_my_memset         pPerl->Perl_my_memset
+#undef  Perl_my_ntohl
+#define Perl_my_ntohl          pPerl->Perl_my_ntohl
+#undef  Perl_my_pclose
+#define Perl_my_pclose         pPerl->Perl_my_pclose
+#undef  Perl_my_popen
+#define Perl_my_popen          pPerl->Perl_my_popen
+#undef  Perl_my_setenv
+#define Perl_my_setenv         pPerl->Perl_my_setenv
+#undef  Perl_my_stat
+#define Perl_my_stat           pPerl->Perl_my_stat
+#undef  Perl_my_swap
+#define Perl_my_swap           pPerl->Perl_my_swap
+#undef  Perl_my_unexec
+#define Perl_my_unexec         pPerl->Perl_my_unexec
+#undef  Perl_newANONHASH
+#define Perl_newANONHASH       pPerl->Perl_newANONHASH
+#undef  Perl_newANONLIST
+#define Perl_newANONLIST       pPerl->Perl_newANONLIST
+#undef  Perl_newANONSUB
+#define Perl_newANONSUB                pPerl->Perl_newANONSUB
+#undef  Perl_newASSIGNOP
+#define Perl_newASSIGNOP       pPerl->Perl_newASSIGNOP
+#undef  Perl_newAV
+#define Perl_newAV             pPerl->Perl_newAV
+#undef  Perl_newAVREF
+#define Perl_newAVREF          pPerl->Perl_newAVREF
+#undef  Perl_newBINOP
+#define Perl_newBINOP          pPerl->Perl_newBINOP
+#undef  Perl_newCONDOP
+#define Perl_newCONDOP         pPerl->Perl_newCONDOP
+#undef  Perl_newCONSTSUB
+#define Perl_newCONSTSUB       pPerl->Perl_newCONSTSUB
+#undef  Perl_newCVREF
+#define Perl_newCVREF          pPerl->Perl_newCVREF
+#undef  Perl_newFORM
+#define Perl_newFORM           pPerl->Perl_newFORM
+#undef  Perl_newFOROP
+#define Perl_newFOROP          pPerl->Perl_newFOROP
+#undef  Perl_newGVOP
+#define Perl_newGVOP           pPerl->Perl_newGVOP
+#undef  Perl_newGVREF
+#define Perl_newGVREF          pPerl->Perl_newGVREF
+#undef  Perl_newGVgen
+#define Perl_newGVgen          pPerl->Perl_newGVgen
+#undef  Perl_newHV
+#define Perl_newHV             pPerl->Perl_newHV
+#undef  Perl_newHVREF
+#define Perl_newHVREF          pPerl->Perl_newHVREF
+#undef  Perl_newHVhv
+#define Perl_newHVhv           pPerl->Perl_newHVhv
+#undef  Perl_newIO
+#define Perl_newIO             pPerl->Perl_newIO
+#undef  Perl_newLISTOP
+#define Perl_newLISTOP         pPerl->Perl_newLISTOP
+#undef  Perl_newLOGOP
+#define Perl_newLOGOP          pPerl->Perl_newLOGOP
+#undef  Perl_newLOOPEX
+#define Perl_newLOOPEX         pPerl->Perl_newLOOPEX
+#undef  Perl_newLOOPOP
+#define Perl_newLOOPOP         pPerl->Perl_newLOOPOP
+#undef  Perl_newNULLLIST
+#define Perl_newNULLLIST       pPerl->Perl_newNULLLIST
+#undef  Perl_newOP
+#define Perl_newOP             pPerl->Perl_newOP
+#undef  Perl_newPMOP
+#define Perl_newPMOP           pPerl->Perl_newPMOP
+#undef  Perl_newPROG
+#define Perl_newPROG           pPerl->Perl_newPROG
+#undef  Perl_newPVOP
+#define Perl_newPVOP           pPerl->Perl_newPVOP
+#undef  Perl_newRANGE
+#define Perl_newRANGE          pPerl->Perl_newRANGE
+#undef  Perl_newRV
+#define Perl_newRV             pPerl->Perl_newRV
+#undef  Perl_newRV_noinc
+#define Perl_newRV_noinc       pPerl->Perl_newRV_noinc
+#undef  Perl_newSLICEOP
+#define Perl_newSLICEOP                pPerl->Perl_newSLICEOP
+#undef  Perl_newSTATEOP
+#define Perl_newSTATEOP                pPerl->Perl_newSTATEOP
+#undef  Perl_newSUB
+#define Perl_newSUB            pPerl->Perl_newSUB
+#undef  Perl_newSV
+#define Perl_newSV             pPerl->Perl_newSV
+#undef  Perl_newSVOP
+#define Perl_newSVOP           pPerl->Perl_newSVOP
+#undef  Perl_newSVREF
+#define Perl_newSVREF          pPerl->Perl_newSVREF
+#undef  Perl_newSViv
+#define Perl_newSViv           pPerl->Perl_newSViv
+#undef  Perl_newSVnv
+#define Perl_newSVnv           pPerl->Perl_newSVnv
+#undef  Perl_newSVpv
+#define Perl_newSVpv           pPerl->Perl_newSVpv
+#undef  Perl_newSVpvf
+#define Perl_newSVpvf          pPerl->Perl_newSVpvf
+#undef  Perl_newSVpvn
+#define Perl_newSVpvn          pPerl->Perl_newSVpvn
+#undef  Perl_newSVrv
+#define Perl_newSVrv           pPerl->Perl_newSVrv
+#undef  Perl_newSVsv
+#define Perl_newSVsv           pPerl->Perl_newSVsv
+#undef  Perl_newUNOP
+#define Perl_newUNOP           pPerl->Perl_newUNOP
+#undef  Perl_newWHILEOP
+#define Perl_newWHILEOP                pPerl->Perl_newWHILEOP
+#undef  Perl_newXS
+#define Perl_newXS             pPerl->Perl_newXS
+#undef  Perl_new_collate
+#define Perl_new_collate       pPerl->Perl_new_collate
+#undef  Perl_new_ctype
+#define Perl_new_ctype         pPerl->Perl_new_ctype
+#undef  Perl_new_numeric
+#define Perl_new_numeric       pPerl->Perl_new_numeric
+#undef  Perl_new_stackinfo
+#define Perl_new_stackinfo     pPerl->Perl_new_stackinfo
+#undef  Perl_new_struct_thread
+#define Perl_new_struct_thread pPerl->Perl_new_struct_thread
+#undef  Perl_nextargv
+#define Perl_nextargv          pPerl->Perl_nextargv
+#undef  Perl_ninstr
+#define Perl_ninstr            pPerl->Perl_ninstr
+#undef  Perl_oopsAV
+#define Perl_oopsAV            pPerl->Perl_oopsAV
+#undef  Perl_oopsCV
+#define Perl_oopsCV            pPerl->Perl_oopsCV
+#undef  Perl_oopsHV
+#define Perl_oopsHV            pPerl->Perl_oopsHV
+#undef  Perl_op_const_sv
+#define Perl_op_const_sv       pPerl->Perl_op_const_sv
+#undef  Perl_op_dump
+#define Perl_op_dump           pPerl->Perl_op_dump
+#undef  Perl_op_free
+#define Perl_op_free           pPerl->Perl_op_free
+#undef  Perl_package
+#define Perl_package           pPerl->Perl_package
+#undef  Perl_pad_alloc
+#define Perl_pad_alloc         pPerl->Perl_pad_alloc
+#undef  Perl_pad_allocmy
+#define Perl_pad_allocmy       pPerl->Perl_pad_allocmy
+#undef  Perl_pad_findmy
+#define Perl_pad_findmy                pPerl->Perl_pad_findmy
+#undef  Perl_pad_free
+#define Perl_pad_free          pPerl->Perl_pad_free
+#undef  Perl_pad_leavemy
+#define Perl_pad_leavemy       pPerl->Perl_pad_leavemy
+#undef  Perl_pad_reset
+#define Perl_pad_reset         pPerl->Perl_pad_reset
+#undef  Perl_pad_sv
+#define Perl_pad_sv            pPerl->Perl_pad_sv
+#undef  Perl_pad_swipe
+#define Perl_pad_swipe         pPerl->Perl_pad_swipe
+#undef  Perl_peep
+#define Perl_peep              pPerl->Perl_peep
+#undef  Perl_pidgone
+#define Perl_pidgone           pPerl->Perl_pidgone
+#undef  Perl_pmflag
+#define Perl_pmflag            pPerl->Perl_pmflag
+#undef  Perl_pmop_dump
+#define Perl_pmop_dump         pPerl->Perl_pmop_dump
+#undef  Perl_pmruntime
+#define Perl_pmruntime         pPerl->Perl_pmruntime
+#undef  Perl_pmtrans
+#define Perl_pmtrans           pPerl->Perl_pmtrans
+#undef  Perl_pop_return
+#define Perl_pop_return                pPerl->Perl_pop_return
+#undef  Perl_pop_scope
+#define Perl_pop_scope         pPerl->Perl_pop_scope
+#undef  Perl_pp_aassign
+#define Perl_pp_aassign                pPerl->Perl_pp_aassign
+#undef  Perl_pp_abs
+#define Perl_pp_abs            pPerl->Perl_pp_abs
+#undef  Perl_pp_accept
+#define Perl_pp_accept         pPerl->Perl_pp_accept
+#undef  Perl_pp_add
+#define Perl_pp_add            pPerl->Perl_pp_add
+#undef  Perl_pp_aelem
+#define Perl_pp_aelem          pPerl->Perl_pp_aelem
+#undef  Perl_pp_aelemfast
+#define Perl_pp_aelemfast      pPerl->Perl_pp_aelemfast
+#undef  Perl_pp_alarm
+#define Perl_pp_alarm          pPerl->Perl_pp_alarm
+#undef  Perl_pp_and
+#define Perl_pp_and            pPerl->Perl_pp_and
+#undef  Perl_pp_andassign
+#define Perl_pp_andassign      pPerl->Perl_pp_andassign
+#undef  Perl_pp_anoncode
+#define Perl_pp_anoncode       pPerl->Perl_pp_anoncode
+#undef  Perl_pp_anonhash
+#define Perl_pp_anonhash       pPerl->Perl_pp_anonhash
+#undef  Perl_pp_anonlist
+#define Perl_pp_anonlist       pPerl->Perl_pp_anonlist
+#undef  Perl_pp_aslice
+#define Perl_pp_aslice         pPerl->Perl_pp_aslice
+#undef  Perl_pp_atan2
+#define Perl_pp_atan2          pPerl->Perl_pp_atan2
+#undef  Perl_pp_av2arylen
+#define Perl_pp_av2arylen      pPerl->Perl_pp_av2arylen
+#undef  Perl_pp_backtick
+#define Perl_pp_backtick       pPerl->Perl_pp_backtick
+#undef  Perl_pp_bind
+#define Perl_pp_bind           pPerl->Perl_pp_bind
+#undef  Perl_pp_binmode
+#define Perl_pp_binmode                pPerl->Perl_pp_binmode
+#undef  Perl_pp_bit_and
+#define Perl_pp_bit_and                pPerl->Perl_pp_bit_and
+#undef  Perl_pp_bit_or
+#define Perl_pp_bit_or         pPerl->Perl_pp_bit_or
+#undef  Perl_pp_bit_xor
+#define Perl_pp_bit_xor                pPerl->Perl_pp_bit_xor
+#undef  Perl_pp_bless
+#define Perl_pp_bless          pPerl->Perl_pp_bless
+#undef  Perl_pp_caller
+#define Perl_pp_caller         pPerl->Perl_pp_caller
+#undef  Perl_pp_chdir
+#define Perl_pp_chdir          pPerl->Perl_pp_chdir
+#undef  Perl_pp_chmod
+#define Perl_pp_chmod          pPerl->Perl_pp_chmod
+#undef  Perl_pp_chomp
+#define Perl_pp_chomp          pPerl->Perl_pp_chomp
+#undef  Perl_pp_chop
+#define Perl_pp_chop           pPerl->Perl_pp_chop
+#undef  Perl_pp_chown
+#define Perl_pp_chown          pPerl->Perl_pp_chown
+#undef  Perl_pp_chr
+#define Perl_pp_chr            pPerl->Perl_pp_chr
+#undef  Perl_pp_chroot
+#define Perl_pp_chroot         pPerl->Perl_pp_chroot
+#undef  Perl_pp_close
+#define Perl_pp_close          pPerl->Perl_pp_close
+#undef  Perl_pp_closedir
+#define Perl_pp_closedir       pPerl->Perl_pp_closedir
+#undef  Perl_pp_complement
+#define Perl_pp_complement     pPerl->Perl_pp_complement
+#undef  Perl_pp_concat
+#define Perl_pp_concat         pPerl->Perl_pp_concat
+#undef  Perl_pp_cond_expr
+#define Perl_pp_cond_expr      pPerl->Perl_pp_cond_expr
+#undef  Perl_pp_connect
+#define Perl_pp_connect                pPerl->Perl_pp_connect
+#undef  Perl_pp_const
+#define Perl_pp_const          pPerl->Perl_pp_const
+#undef  Perl_pp_cos
+#define Perl_pp_cos            pPerl->Perl_pp_cos
+#undef  Perl_pp_crypt
+#define Perl_pp_crypt          pPerl->Perl_pp_crypt
+#undef  Perl_pp_dbmclose
+#define Perl_pp_dbmclose       pPerl->Perl_pp_dbmclose
+#undef  Perl_pp_dbmopen
+#define Perl_pp_dbmopen                pPerl->Perl_pp_dbmopen
+#undef  Perl_pp_dbstate
+#define Perl_pp_dbstate                pPerl->Perl_pp_dbstate
+#undef  Perl_pp_defined
+#define Perl_pp_defined                pPerl->Perl_pp_defined
+#undef  Perl_pp_delete
+#define Perl_pp_delete         pPerl->Perl_pp_delete
+#undef  Perl_pp_die
+#define Perl_pp_die            pPerl->Perl_pp_die
+#undef  Perl_pp_divide
+#define Perl_pp_divide         pPerl->Perl_pp_divide
+#undef  Perl_pp_dofile
+#define Perl_pp_dofile         pPerl->Perl_pp_dofile
+#undef  Perl_pp_dump
+#define Perl_pp_dump           pPerl->Perl_pp_dump
+#undef  Perl_pp_each
+#define Perl_pp_each           pPerl->Perl_pp_each
+#undef  Perl_pp_egrent
+#define Perl_pp_egrent         pPerl->Perl_pp_egrent
+#undef  Perl_pp_ehostent
+#define Perl_pp_ehostent       pPerl->Perl_pp_ehostent
+#undef  Perl_pp_enetent
+#define Perl_pp_enetent                pPerl->Perl_pp_enetent
+#undef  Perl_pp_enter
+#define Perl_pp_enter          pPerl->Perl_pp_enter
+#undef  Perl_pp_entereval
+#define Perl_pp_entereval      pPerl->Perl_pp_entereval
+#undef  Perl_pp_enteriter
+#define Perl_pp_enteriter      pPerl->Perl_pp_enteriter
+#undef  Perl_pp_enterloop
+#define Perl_pp_enterloop      pPerl->Perl_pp_enterloop
+#undef  Perl_pp_entersub
+#define Perl_pp_entersub       pPerl->Perl_pp_entersub
+#undef  Perl_pp_entertry
+#define Perl_pp_entertry       pPerl->Perl_pp_entertry
+#undef  Perl_pp_enterwrite
+#define Perl_pp_enterwrite     pPerl->Perl_pp_enterwrite
+#undef  Perl_pp_eof
+#define Perl_pp_eof            pPerl->Perl_pp_eof
+#undef  Perl_pp_eprotoent
+#define Perl_pp_eprotoent      pPerl->Perl_pp_eprotoent
+#undef  Perl_pp_epwent
+#define Perl_pp_epwent         pPerl->Perl_pp_epwent
+#undef  Perl_pp_eq
+#define Perl_pp_eq             pPerl->Perl_pp_eq
+#undef  Perl_pp_eservent
+#define Perl_pp_eservent       pPerl->Perl_pp_eservent
+#undef  Perl_pp_exec
+#define Perl_pp_exec           pPerl->Perl_pp_exec
+#undef  Perl_pp_exists
+#define Perl_pp_exists         pPerl->Perl_pp_exists
+#undef  Perl_pp_exit
+#define Perl_pp_exit           pPerl->Perl_pp_exit
+#undef  Perl_pp_exp
+#define Perl_pp_exp            pPerl->Perl_pp_exp
+#undef  Perl_pp_fcntl
+#define Perl_pp_fcntl          pPerl->Perl_pp_fcntl
+#undef  Perl_pp_fileno
+#define Perl_pp_fileno         pPerl->Perl_pp_fileno
+#undef  Perl_pp_flip
+#define Perl_pp_flip           pPerl->Perl_pp_flip
+#undef  Perl_pp_flock
+#define Perl_pp_flock          pPerl->Perl_pp_flock
+#undef  Perl_pp_flop
+#define Perl_pp_flop           pPerl->Perl_pp_flop
+#undef  Perl_pp_fork
+#define Perl_pp_fork           pPerl->Perl_pp_fork
+#undef  Perl_pp_formline
+#define Perl_pp_formline       pPerl->Perl_pp_formline
+#undef  Perl_pp_ftatime
+#define Perl_pp_ftatime                pPerl->Perl_pp_ftatime
+#undef  Perl_pp_ftbinary
+#define Perl_pp_ftbinary       pPerl->Perl_pp_ftbinary
+#undef  Perl_pp_ftblk
+#define Perl_pp_ftblk          pPerl->Perl_pp_ftblk
+#undef  Perl_pp_ftchr
+#define Perl_pp_ftchr          pPerl->Perl_pp_ftchr
+#undef  Perl_pp_ftctime
+#define Perl_pp_ftctime                pPerl->Perl_pp_ftctime
+#undef  Perl_pp_ftdir
+#define Perl_pp_ftdir          pPerl->Perl_pp_ftdir
+#undef  Perl_pp_fteexec
+#define Perl_pp_fteexec                pPerl->Perl_pp_fteexec
+#undef  Perl_pp_fteowned
+#define Perl_pp_fteowned       pPerl->Perl_pp_fteowned
+#undef  Perl_pp_fteread
+#define Perl_pp_fteread                pPerl->Perl_pp_fteread
+#undef  Perl_pp_ftewrite
+#define Perl_pp_ftewrite       pPerl->Perl_pp_ftewrite
+#undef  Perl_pp_ftfile
+#define Perl_pp_ftfile         pPerl->Perl_pp_ftfile
+#undef  Perl_pp_ftis
+#define Perl_pp_ftis           pPerl->Perl_pp_ftis
+#undef  Perl_pp_ftlink
+#define Perl_pp_ftlink         pPerl->Perl_pp_ftlink
+#undef  Perl_pp_ftmtime
+#define Perl_pp_ftmtime                pPerl->Perl_pp_ftmtime
+#undef  Perl_pp_ftpipe
+#define Perl_pp_ftpipe         pPerl->Perl_pp_ftpipe
+#undef  Perl_pp_ftrexec
+#define Perl_pp_ftrexec                pPerl->Perl_pp_ftrexec
+#undef  Perl_pp_ftrowned
+#define Perl_pp_ftrowned       pPerl->Perl_pp_ftrowned
+#undef  Perl_pp_ftrread
+#define Perl_pp_ftrread                pPerl->Perl_pp_ftrread
+#undef  Perl_pp_ftrwrite
+#define Perl_pp_ftrwrite       pPerl->Perl_pp_ftrwrite
+#undef  Perl_pp_ftsgid
+#define Perl_pp_ftsgid         pPerl->Perl_pp_ftsgid
+#undef  Perl_pp_ftsize
+#define Perl_pp_ftsize         pPerl->Perl_pp_ftsize
+#undef  Perl_pp_ftsock
+#define Perl_pp_ftsock         pPerl->Perl_pp_ftsock
+#undef  Perl_pp_ftsuid
+#define Perl_pp_ftsuid         pPerl->Perl_pp_ftsuid
+#undef  Perl_pp_ftsvtx
+#define Perl_pp_ftsvtx         pPerl->Perl_pp_ftsvtx
+#undef  Perl_pp_fttext
+#define Perl_pp_fttext         pPerl->Perl_pp_fttext
+#undef  Perl_pp_fttty
+#define Perl_pp_fttty          pPerl->Perl_pp_fttty
+#undef  Perl_pp_ftzero
+#define Perl_pp_ftzero         pPerl->Perl_pp_ftzero
+#undef  Perl_pp_ge
+#define Perl_pp_ge             pPerl->Perl_pp_ge
+#undef  Perl_pp_gelem
+#define Perl_pp_gelem          pPerl->Perl_pp_gelem
+#undef  Perl_pp_getc
+#define Perl_pp_getc           pPerl->Perl_pp_getc
+#undef  Perl_pp_getlogin
+#define Perl_pp_getlogin       pPerl->Perl_pp_getlogin
+#undef  Perl_pp_getpeername
+#define Perl_pp_getpeername    pPerl->Perl_pp_getpeername
+#undef  Perl_pp_getpgrp
+#define Perl_pp_getpgrp                pPerl->Perl_pp_getpgrp
+#undef  Perl_pp_getppid
+#define Perl_pp_getppid                pPerl->Perl_pp_getppid
+#undef  Perl_pp_getpriority
+#define Perl_pp_getpriority    pPerl->Perl_pp_getpriority
+#undef  Perl_pp_getsockname
+#define Perl_pp_getsockname    pPerl->Perl_pp_getsockname
+#undef  Perl_pp_ggrent
+#define Perl_pp_ggrent         pPerl->Perl_pp_ggrent
+#undef  Perl_pp_ggrgid
+#define Perl_pp_ggrgid         pPerl->Perl_pp_ggrgid
+#undef  Perl_pp_ggrnam
+#define Perl_pp_ggrnam         pPerl->Perl_pp_ggrnam
+#undef  Perl_pp_ghbyaddr
+#define Perl_pp_ghbyaddr       pPerl->Perl_pp_ghbyaddr
+#undef  Perl_pp_ghbyname
+#define Perl_pp_ghbyname       pPerl->Perl_pp_ghbyname
+#undef  Perl_pp_ghostent
+#define Perl_pp_ghostent       pPerl->Perl_pp_ghostent
+#undef  Perl_pp_glob
+#define Perl_pp_glob           pPerl->Perl_pp_glob
+#undef  Perl_pp_gmtime
+#define Perl_pp_gmtime         pPerl->Perl_pp_gmtime
+#undef  Perl_pp_gnbyaddr
+#define Perl_pp_gnbyaddr       pPerl->Perl_pp_gnbyaddr
+#undef  Perl_pp_gnbyname
+#define Perl_pp_gnbyname       pPerl->Perl_pp_gnbyname
+#undef  Perl_pp_gnetent
+#define Perl_pp_gnetent                pPerl->Perl_pp_gnetent
+#undef  Perl_pp_goto
+#define Perl_pp_goto           pPerl->Perl_pp_goto
+#undef  Perl_pp_gpbyname
+#define Perl_pp_gpbyname       pPerl->Perl_pp_gpbyname
+#undef  Perl_pp_gpbynumber
+#define Perl_pp_gpbynumber     pPerl->Perl_pp_gpbynumber
+#undef  Perl_pp_gprotoent
+#define Perl_pp_gprotoent      pPerl->Perl_pp_gprotoent
+#undef  Perl_pp_gpwent
+#define Perl_pp_gpwent         pPerl->Perl_pp_gpwent
+#undef  Perl_pp_gpwnam
+#define Perl_pp_gpwnam         pPerl->Perl_pp_gpwnam
+#undef  Perl_pp_gpwuid
+#define Perl_pp_gpwuid         pPerl->Perl_pp_gpwuid
+#undef  Perl_pp_grepstart
+#define Perl_pp_grepstart      pPerl->Perl_pp_grepstart
+#undef  Perl_pp_grepwhile
+#define Perl_pp_grepwhile      pPerl->Perl_pp_grepwhile
+#undef  Perl_pp_gsbyname
+#define Perl_pp_gsbyname       pPerl->Perl_pp_gsbyname
+#undef  Perl_pp_gsbyport
+#define Perl_pp_gsbyport       pPerl->Perl_pp_gsbyport
+#undef  Perl_pp_gservent
+#define Perl_pp_gservent       pPerl->Perl_pp_gservent
+#undef  Perl_pp_gsockopt
+#define Perl_pp_gsockopt       pPerl->Perl_pp_gsockopt
+#undef  Perl_pp_gt
+#define Perl_pp_gt             pPerl->Perl_pp_gt
+#undef  Perl_pp_gv
+#define Perl_pp_gv             pPerl->Perl_pp_gv
+#undef  Perl_pp_gvsv
+#define Perl_pp_gvsv           pPerl->Perl_pp_gvsv
+#undef  Perl_pp_helem
+#define Perl_pp_helem          pPerl->Perl_pp_helem
+#undef  Perl_pp_hex
+#define Perl_pp_hex            pPerl->Perl_pp_hex
+#undef  Perl_pp_hslice
+#define Perl_pp_hslice         pPerl->Perl_pp_hslice
+#undef  Perl_pp_i_add
+#define Perl_pp_i_add          pPerl->Perl_pp_i_add
+#undef  Perl_pp_i_divide
+#define Perl_pp_i_divide       pPerl->Perl_pp_i_divide
+#undef  Perl_pp_i_eq
+#define Perl_pp_i_eq           pPerl->Perl_pp_i_eq
+#undef  Perl_pp_i_ge
+#define Perl_pp_i_ge           pPerl->Perl_pp_i_ge
+#undef  Perl_pp_i_gt
+#define Perl_pp_i_gt           pPerl->Perl_pp_i_gt
+#undef  Perl_pp_i_le
+#define Perl_pp_i_le           pPerl->Perl_pp_i_le
+#undef  Perl_pp_i_lt
+#define Perl_pp_i_lt           pPerl->Perl_pp_i_lt
+#undef  Perl_pp_i_modulo
+#define Perl_pp_i_modulo       pPerl->Perl_pp_i_modulo
+#undef  Perl_pp_i_multiply
+#define Perl_pp_i_multiply     pPerl->Perl_pp_i_multiply
+#undef  Perl_pp_i_ncmp
+#define Perl_pp_i_ncmp         pPerl->Perl_pp_i_ncmp
+#undef  Perl_pp_i_ne
+#define Perl_pp_i_ne           pPerl->Perl_pp_i_ne
+#undef  Perl_pp_i_negate
+#define Perl_pp_i_negate       pPerl->Perl_pp_i_negate
+#undef  Perl_pp_i_subtract
+#define Perl_pp_i_subtract     pPerl->Perl_pp_i_subtract
+#undef  Perl_pp_index
+#define Perl_pp_index          pPerl->Perl_pp_index
+#undef  Perl_pp_int
+#define Perl_pp_int            pPerl->Perl_pp_int
+#undef  Perl_pp_ioctl
+#define Perl_pp_ioctl          pPerl->Perl_pp_ioctl
+#undef  Perl_pp_iter
+#define Perl_pp_iter           pPerl->Perl_pp_iter
+#undef  Perl_pp_join
+#define Perl_pp_join           pPerl->Perl_pp_join
+#undef  Perl_pp_keys
+#define Perl_pp_keys           pPerl->Perl_pp_keys
+#undef  Perl_pp_kill
+#define Perl_pp_kill           pPerl->Perl_pp_kill
+#undef  Perl_pp_last
+#define Perl_pp_last           pPerl->Perl_pp_last
+#undef  Perl_pp_lc
+#define Perl_pp_lc             pPerl->Perl_pp_lc
+#undef  Perl_pp_lcfirst
+#define Perl_pp_lcfirst                pPerl->Perl_pp_lcfirst
+#undef  Perl_pp_le
+#define Perl_pp_le             pPerl->Perl_pp_le
+#undef  Perl_pp_leave
+#define Perl_pp_leave          pPerl->Perl_pp_leave
+#undef  Perl_pp_leaveeval
+#define Perl_pp_leaveeval      pPerl->Perl_pp_leaveeval
+#undef  Perl_pp_leaveloop
+#define Perl_pp_leaveloop      pPerl->Perl_pp_leaveloop
+#undef  Perl_pp_leavesub
+#define Perl_pp_leavesub       pPerl->Perl_pp_leavesub
+#undef  Perl_pp_leavetry
+#define Perl_pp_leavetry       pPerl->Perl_pp_leavetry
+#undef  Perl_pp_leavewrite
+#define Perl_pp_leavewrite     pPerl->Perl_pp_leavewrite
+#undef  Perl_pp_left_shift
+#define Perl_pp_left_shift     pPerl->Perl_pp_left_shift
+#undef  Perl_pp_length
+#define Perl_pp_length         pPerl->Perl_pp_length
+#undef  Perl_pp_lineseq
+#define Perl_pp_lineseq                pPerl->Perl_pp_lineseq
+#undef  Perl_pp_link
+#define Perl_pp_link           pPerl->Perl_pp_link
+#undef  Perl_pp_list
+#define Perl_pp_list           pPerl->Perl_pp_list
+#undef  Perl_pp_listen
+#define Perl_pp_listen         pPerl->Perl_pp_listen
+#undef  Perl_pp_localtime
+#define Perl_pp_localtime      pPerl->Perl_pp_localtime
+#undef  Perl_pp_lock
+#define Perl_pp_lock           pPerl->Perl_pp_lock
+#undef  Perl_pp_log
+#define Perl_pp_log            pPerl->Perl_pp_log
+#undef  Perl_pp_lslice
+#define Perl_pp_lslice         pPerl->Perl_pp_lslice
+#undef  Perl_pp_lstat
+#define Perl_pp_lstat          pPerl->Perl_pp_lstat
+#undef  Perl_pp_lt
+#define Perl_pp_lt             pPerl->Perl_pp_lt
+#undef  Perl_pp_mapstart
+#define Perl_pp_mapstart       pPerl->Perl_pp_mapstart
+#undef  Perl_pp_mapwhile
+#define Perl_pp_mapwhile       pPerl->Perl_pp_mapwhile
+#undef  Perl_pp_match
+#define Perl_pp_match          pPerl->Perl_pp_match
+#undef  Perl_pp_method
+#define Perl_pp_method         pPerl->Perl_pp_method
+#undef  Perl_pp_mkdir
+#define Perl_pp_mkdir          pPerl->Perl_pp_mkdir
+#undef  Perl_pp_modulo
+#define Perl_pp_modulo         pPerl->Perl_pp_modulo
+#undef  Perl_pp_msgctl
+#define Perl_pp_msgctl         pPerl->Perl_pp_msgctl
+#undef  Perl_pp_msgget
+#define Perl_pp_msgget         pPerl->Perl_pp_msgget
+#undef  Perl_pp_msgrcv
+#define Perl_pp_msgrcv         pPerl->Perl_pp_msgrcv
+#undef  Perl_pp_msgsnd
+#define Perl_pp_msgsnd         pPerl->Perl_pp_msgsnd
+#undef  Perl_pp_multiply
+#define Perl_pp_multiply       pPerl->Perl_pp_multiply
+#undef  Perl_pp_ncmp
+#define Perl_pp_ncmp           pPerl->Perl_pp_ncmp
+#undef  Perl_pp_ne
+#define Perl_pp_ne             pPerl->Perl_pp_ne
+#undef  Perl_pp_negate
+#define Perl_pp_negate         pPerl->Perl_pp_negate
+#undef  Perl_pp_next
+#define Perl_pp_next           pPerl->Perl_pp_next
+#undef  Perl_pp_nextstate
+#define Perl_pp_nextstate      pPerl->Perl_pp_nextstate
+#undef  Perl_pp_not
+#define Perl_pp_not            pPerl->Perl_pp_not
+#undef  Perl_pp_null
+#define Perl_pp_null           pPerl->Perl_pp_null
+#undef  Perl_pp_oct
+#define Perl_pp_oct            pPerl->Perl_pp_oct
+#undef  Perl_pp_open
+#define Perl_pp_open           pPerl->Perl_pp_open
+#undef  Perl_pp_open_dir
+#define Perl_pp_open_dir       pPerl->Perl_pp_open_dir
+#undef  Perl_pp_or
+#define Perl_pp_or             pPerl->Perl_pp_or
+#undef  Perl_pp_orassign
+#define Perl_pp_orassign       pPerl->Perl_pp_orassign
+#undef  Perl_pp_ord
+#define Perl_pp_ord            pPerl->Perl_pp_ord
+#undef  Perl_pp_pack
+#define Perl_pp_pack           pPerl->Perl_pp_pack
+#undef  Perl_pp_padany
+#define Perl_pp_padany         pPerl->Perl_pp_padany
+#undef  Perl_pp_padav
+#define Perl_pp_padav          pPerl->Perl_pp_padav
+#undef  Perl_pp_padhv
+#define Perl_pp_padhv          pPerl->Perl_pp_padhv
+#undef  Perl_pp_padsv
+#define Perl_pp_padsv          pPerl->Perl_pp_padsv
+#undef  Perl_pp_pipe_op
+#define Perl_pp_pipe_op                pPerl->Perl_pp_pipe_op
+#undef  Perl_pp_pop
+#define Perl_pp_pop            pPerl->Perl_pp_pop
+#undef  Perl_pp_pos
+#define Perl_pp_pos            pPerl->Perl_pp_pos
+#undef  Perl_pp_postdec
+#define Perl_pp_postdec                pPerl->Perl_pp_postdec
+#undef  Perl_pp_postinc
+#define Perl_pp_postinc                pPerl->Perl_pp_postinc
+#undef  Perl_pp_pow
+#define Perl_pp_pow            pPerl->Perl_pp_pow
+#undef  Perl_pp_predec
+#define Perl_pp_predec         pPerl->Perl_pp_predec
+#undef  Perl_pp_preinc
+#define Perl_pp_preinc         pPerl->Perl_pp_preinc
+#undef  Perl_pp_print
+#define Perl_pp_print          pPerl->Perl_pp_print
+#undef  Perl_pp_prototype
+#define Perl_pp_prototype      pPerl->Perl_pp_prototype
+#undef  Perl_pp_prtf
+#define Perl_pp_prtf           pPerl->Perl_pp_prtf
+#undef  Perl_pp_push
+#define Perl_pp_push           pPerl->Perl_pp_push
+#undef  Perl_pp_pushmark
+#define Perl_pp_pushmark       pPerl->Perl_pp_pushmark
+#undef  Perl_pp_pushre
+#define Perl_pp_pushre         pPerl->Perl_pp_pushre
+#undef  Perl_pp_qr
+#define Perl_pp_qr             pPerl->Perl_pp_qr
+#undef  Perl_pp_quotemeta
+#define Perl_pp_quotemeta      pPerl->Perl_pp_quotemeta
+#undef  Perl_pp_rand
+#define Perl_pp_rand           pPerl->Perl_pp_rand
+#undef  Perl_pp_range
+#define Perl_pp_range          pPerl->Perl_pp_range
+#undef  Perl_pp_rcatline
+#define Perl_pp_rcatline       pPerl->Perl_pp_rcatline
+#undef  Perl_pp_read
+#define Perl_pp_read           pPerl->Perl_pp_read
+#undef  Perl_pp_readdir
+#define Perl_pp_readdir                pPerl->Perl_pp_readdir
+#undef  Perl_pp_readline
+#define Perl_pp_readline       pPerl->Perl_pp_readline
+#undef  Perl_pp_readlink
+#define Perl_pp_readlink       pPerl->Perl_pp_readlink
+#undef  Perl_pp_recv
+#define Perl_pp_recv           pPerl->Perl_pp_recv
+#undef  Perl_pp_redo
+#define Perl_pp_redo           pPerl->Perl_pp_redo
+#undef  Perl_pp_ref
+#define Perl_pp_ref            pPerl->Perl_pp_ref
+#undef  Perl_pp_refgen
+#define Perl_pp_refgen         pPerl->Perl_pp_refgen
+#undef  Perl_pp_regcmaybe
+#define Perl_pp_regcmaybe      pPerl->Perl_pp_regcmaybe
+#undef  Perl_pp_regcomp
+#define Perl_pp_regcomp                pPerl->Perl_pp_regcomp
+#undef  Perl_pp_regcreset
+#define Perl_pp_regcreset      pPerl->Perl_pp_regcreset
+#undef  Perl_pp_rename
+#define Perl_pp_rename         pPerl->Perl_pp_rename
+#undef  Perl_pp_repeat
+#define Perl_pp_repeat         pPerl->Perl_pp_repeat
+#undef  Perl_pp_require
+#define Perl_pp_require                pPerl->Perl_pp_require
+#undef  Perl_pp_reset
+#define Perl_pp_reset          pPerl->Perl_pp_reset
+#undef  Perl_pp_return
+#define Perl_pp_return         pPerl->Perl_pp_return
+#undef  Perl_pp_reverse
+#define Perl_pp_reverse                pPerl->Perl_pp_reverse
+#undef  Perl_pp_rewinddir
+#define Perl_pp_rewinddir      pPerl->Perl_pp_rewinddir
+#undef  Perl_pp_right_shift
+#define Perl_pp_right_shift    pPerl->Perl_pp_right_shift
+#undef  Perl_pp_rindex
+#define Perl_pp_rindex         pPerl->Perl_pp_rindex
+#undef  Perl_pp_rmdir
+#define Perl_pp_rmdir          pPerl->Perl_pp_rmdir
+#undef  Perl_pp_rv2av
+#define Perl_pp_rv2av          pPerl->Perl_pp_rv2av
+#undef  Perl_pp_rv2cv
+#define Perl_pp_rv2cv          pPerl->Perl_pp_rv2cv
+#undef  Perl_pp_rv2gv
+#define Perl_pp_rv2gv          pPerl->Perl_pp_rv2gv
+#undef  Perl_pp_rv2hv
+#define Perl_pp_rv2hv          pPerl->Perl_pp_rv2hv
+#undef  Perl_pp_rv2sv
+#define Perl_pp_rv2sv          pPerl->Perl_pp_rv2sv
+#undef  Perl_pp_sassign
+#define Perl_pp_sassign                pPerl->Perl_pp_sassign
+#undef  Perl_pp_scalar
+#define Perl_pp_scalar         pPerl->Perl_pp_scalar
+#undef  Perl_pp_schomp
+#define Perl_pp_schomp         pPerl->Perl_pp_schomp
+#undef  Perl_pp_schop
+#define Perl_pp_schop          pPerl->Perl_pp_schop
+#undef  Perl_pp_scmp
+#define Perl_pp_scmp           pPerl->Perl_pp_scmp
+#undef  Perl_pp_scope
+#define Perl_pp_scope          pPerl->Perl_pp_scope
+#undef  Perl_pp_seek
+#define Perl_pp_seek           pPerl->Perl_pp_seek
+#undef  Perl_pp_seekdir
+#define Perl_pp_seekdir                pPerl->Perl_pp_seekdir
+#undef  Perl_pp_select
+#define Perl_pp_select         pPerl->Perl_pp_select
+#undef  Perl_pp_semctl
+#define Perl_pp_semctl         pPerl->Perl_pp_semctl
+#undef  Perl_pp_semget
+#define Perl_pp_semget         pPerl->Perl_pp_semget
+#undef  Perl_pp_semop
+#define Perl_pp_semop          pPerl->Perl_pp_semop
+#undef  Perl_pp_send
+#define Perl_pp_send           pPerl->Perl_pp_send
+#undef  Perl_pp_seq
+#define Perl_pp_seq            pPerl->Perl_pp_seq
+#undef  Perl_pp_setpgrp
+#define Perl_pp_setpgrp                pPerl->Perl_pp_setpgrp
+#undef  Perl_pp_setpriority
+#define Perl_pp_setpriority    pPerl->Perl_pp_setpriority
+#undef  Perl_pp_sge
+#define Perl_pp_sge            pPerl->Perl_pp_sge
+#undef  Perl_pp_sgrent
+#define Perl_pp_sgrent         pPerl->Perl_pp_sgrent
+#undef  Perl_pp_sgt
+#define Perl_pp_sgt            pPerl->Perl_pp_sgt
+#undef  Perl_pp_shift
+#define Perl_pp_shift          pPerl->Perl_pp_shift
+#undef  Perl_pp_shmctl
+#define Perl_pp_shmctl         pPerl->Perl_pp_shmctl
+#undef  Perl_pp_shmget
+#define Perl_pp_shmget         pPerl->Perl_pp_shmget
+#undef  Perl_pp_shmread
+#define Perl_pp_shmread                pPerl->Perl_pp_shmread
+#undef  Perl_pp_shmwrite
+#define Perl_pp_shmwrite       pPerl->Perl_pp_shmwrite
+#undef  Perl_pp_shostent
+#define Perl_pp_shostent       pPerl->Perl_pp_shostent
+#undef  Perl_pp_shutdown
+#define Perl_pp_shutdown       pPerl->Perl_pp_shutdown
+#undef  Perl_pp_sin
+#define Perl_pp_sin            pPerl->Perl_pp_sin
+#undef  Perl_pp_sle
+#define Perl_pp_sle            pPerl->Perl_pp_sle
+#undef  Perl_pp_sleep
+#define Perl_pp_sleep          pPerl->Perl_pp_sleep
+#undef  Perl_pp_slt
+#define Perl_pp_slt            pPerl->Perl_pp_slt
+#undef  Perl_pp_sne
+#define Perl_pp_sne            pPerl->Perl_pp_sne
+#undef  Perl_pp_snetent
+#define Perl_pp_snetent                pPerl->Perl_pp_snetent
+#undef  Perl_pp_socket
+#define Perl_pp_socket         pPerl->Perl_pp_socket
+#undef  Perl_pp_sockpair
+#define Perl_pp_sockpair       pPerl->Perl_pp_sockpair
+#undef  Perl_pp_sort
+#define Perl_pp_sort           pPerl->Perl_pp_sort
+#undef  Perl_pp_splice
+#define Perl_pp_splice         pPerl->Perl_pp_splice
+#undef  Perl_pp_split
+#define Perl_pp_split          pPerl->Perl_pp_split
+#undef  Perl_pp_sprintf
+#define Perl_pp_sprintf                pPerl->Perl_pp_sprintf
+#undef  Perl_pp_sprotoent
+#define Perl_pp_sprotoent      pPerl->Perl_pp_sprotoent
+#undef  Perl_pp_spwent
+#define Perl_pp_spwent         pPerl->Perl_pp_spwent
+#undef  Perl_pp_sqrt
+#define Perl_pp_sqrt           pPerl->Perl_pp_sqrt
+#undef  Perl_pp_srand
+#define Perl_pp_srand          pPerl->Perl_pp_srand
+#undef  Perl_pp_srefgen
+#define Perl_pp_srefgen                pPerl->Perl_pp_srefgen
+#undef  Perl_pp_sselect
+#define Perl_pp_sselect                pPerl->Perl_pp_sselect
+#undef  Perl_pp_sservent
+#define Perl_pp_sservent       pPerl->Perl_pp_sservent
+#undef  Perl_pp_ssockopt
+#define Perl_pp_ssockopt       pPerl->Perl_pp_ssockopt
+#undef  Perl_pp_stat
+#define Perl_pp_stat           pPerl->Perl_pp_stat
+#undef  Perl_pp_stringify
+#define Perl_pp_stringify      pPerl->Perl_pp_stringify
+#undef  Perl_pp_stub
+#define Perl_pp_stub           pPerl->Perl_pp_stub
+#undef  Perl_pp_study
+#define Perl_pp_study          pPerl->Perl_pp_study
+#undef  Perl_pp_subst
+#define Perl_pp_subst          pPerl->Perl_pp_subst
+#undef  Perl_pp_substcont
+#define Perl_pp_substcont      pPerl->Perl_pp_substcont
+#undef  Perl_pp_substr
+#define Perl_pp_substr         pPerl->Perl_pp_substr
+#undef  Perl_pp_subtract
+#define Perl_pp_subtract       pPerl->Perl_pp_subtract
+#undef  Perl_pp_symlink
+#define Perl_pp_symlink                pPerl->Perl_pp_symlink
+#undef  Perl_pp_syscall
+#define Perl_pp_syscall                pPerl->Perl_pp_syscall
+#undef  Perl_pp_sysopen
+#define Perl_pp_sysopen                pPerl->Perl_pp_sysopen
+#undef  Perl_pp_sysread
+#define Perl_pp_sysread                pPerl->Perl_pp_sysread
+#undef  Perl_pp_sysseek
+#define Perl_pp_sysseek                pPerl->Perl_pp_sysseek
+#undef  Perl_pp_system
+#define Perl_pp_system         pPerl->Perl_pp_system
+#undef  Perl_pp_syswrite
+#define Perl_pp_syswrite       pPerl->Perl_pp_syswrite
+#undef  Perl_pp_tell
+#define Perl_pp_tell           pPerl->Perl_pp_tell
+#undef  Perl_pp_telldir
+#define Perl_pp_telldir                pPerl->Perl_pp_telldir
+#undef  Perl_pp_threadsv
+#define Perl_pp_threadsv       pPerl->Perl_pp_threadsv
+#undef  Perl_pp_tie
+#define Perl_pp_tie            pPerl->Perl_pp_tie
+#undef  Perl_pp_tied
+#define Perl_pp_tied           pPerl->Perl_pp_tied
+#undef  Perl_pp_time
+#define Perl_pp_time           pPerl->Perl_pp_time
+#undef  Perl_pp_tms
+#define Perl_pp_tms            pPerl->Perl_pp_tms
+#undef  Perl_pp_trans
+#define Perl_pp_trans          pPerl->Perl_pp_trans
+#undef  Perl_pp_truncate
+#define Perl_pp_truncate       pPerl->Perl_pp_truncate
+#undef  Perl_pp_uc
+#define Perl_pp_uc             pPerl->Perl_pp_uc
+#undef  Perl_pp_ucfirst
+#define Perl_pp_ucfirst                pPerl->Perl_pp_ucfirst
+#undef  Perl_pp_umask
+#define Perl_pp_umask          pPerl->Perl_pp_umask
+#undef  Perl_pp_undef
+#define Perl_pp_undef          pPerl->Perl_pp_undef
+#undef  Perl_pp_unlink
+#define Perl_pp_unlink         pPerl->Perl_pp_unlink
+#undef  Perl_pp_unpack
+#define Perl_pp_unpack         pPerl->Perl_pp_unpack
+#undef  Perl_pp_unshift
+#define Perl_pp_unshift                pPerl->Perl_pp_unshift
+#undef  Perl_pp_unstack
+#define Perl_pp_unstack                pPerl->Perl_pp_unstack
+#undef  Perl_pp_untie
+#define Perl_pp_untie          pPerl->Perl_pp_untie
+#undef  Perl_pp_utime
+#define Perl_pp_utime          pPerl->Perl_pp_utime
+#undef  Perl_pp_values
+#define Perl_pp_values         pPerl->Perl_pp_values
+#undef  Perl_pp_vec
+#define Perl_pp_vec            pPerl->Perl_pp_vec
+#undef  Perl_pp_wait
+#define Perl_pp_wait           pPerl->Perl_pp_wait
+#undef  Perl_pp_waitpid
+#define Perl_pp_waitpid                pPerl->Perl_pp_waitpid
+#undef  Perl_pp_wantarray
+#define Perl_pp_wantarray      pPerl->Perl_pp_wantarray
+#undef  Perl_pp_warn
+#define Perl_pp_warn           pPerl->Perl_pp_warn
+#undef  Perl_pp_xor
+#define Perl_pp_xor            pPerl->Perl_pp_xor
+#undef  Perl_pregcomp
+#define Perl_pregcomp          pPerl->Perl_pregcomp
+#undef  Perl_pregexec
+#define Perl_pregexec          pPerl->Perl_pregexec
+#undef  Perl_pregfree
+#define Perl_pregfree          pPerl->Perl_pregfree
+#undef  Perl_prepend_elem
+#define Perl_prepend_elem      pPerl->Perl_prepend_elem
+#undef  Perl_push_return
+#define Perl_push_return       pPerl->Perl_push_return
+#undef  Perl_push_scope
+#define Perl_push_scope                pPerl->Perl_push_scope
+#undef  Perl_pv_display
+#define Perl_pv_display                pPerl->Perl_pv_display
+#undef  Perl_realloc
+#define Perl_realloc           pPerl->Perl_realloc
+#undef  Perl_ref
+#define Perl_ref               pPerl->Perl_ref
+#undef  Perl_refkids
+#define Perl_refkids           pPerl->Perl_refkids
+#undef  Perl_regdump
+#define Perl_regdump           pPerl->Perl_regdump
+#undef  Perl_regexec_flags
+#define Perl_regexec_flags     pPerl->Perl_regexec_flags
+#undef  Perl_reginitcolors
+#define Perl_reginitcolors     pPerl->Perl_reginitcolors
+#undef  Perl_regnext
+#define Perl_regnext           pPerl->Perl_regnext
+#undef  Perl_regprop
+#define Perl_regprop           pPerl->Perl_regprop
+#undef  Perl_repeatcpy
+#define Perl_repeatcpy         pPerl->Perl_repeatcpy
+#undef  Perl_require_pv
+#define Perl_require_pv                pPerl->Perl_require_pv
+#undef  Perl_rninstr
+#define Perl_rninstr           pPerl->Perl_rninstr
+#undef  Perl_rsignal
+#define Perl_rsignal           pPerl->Perl_rsignal
+#undef  Perl_rsignal_restore
+#define Perl_rsignal_restore   pPerl->Perl_rsignal_restore
+#undef  Perl_rsignal_save
+#define Perl_rsignal_save      pPerl->Perl_rsignal_save
+#undef  Perl_rsignal_state
+#define Perl_rsignal_state     pPerl->Perl_rsignal_state
+#undef  Perl_runops_debug
+#define Perl_runops_debug      pPerl->Perl_runops_debug
+#undef  Perl_runops_standard
+#define Perl_runops_standard   pPerl->Perl_runops_standard
+#undef  Perl_rxres_free
+#define Perl_rxres_free                pPerl->Perl_rxres_free
+#undef  Perl_rxres_restore
+#define Perl_rxres_restore     pPerl->Perl_rxres_restore
+#undef  Perl_rxres_save
+#define Perl_rxres_save                pPerl->Perl_rxres_save
+#undef  Perl_safesyscalloc
+#define Perl_safesyscalloc     pPerl->Perl_safesyscalloc
+#undef  Perl_safesysfree
+#define Perl_safesysfree       pPerl->Perl_safesysfree
+#undef  Perl_safesysmalloc
+#define Perl_safesysmalloc     pPerl->Perl_safesysmalloc
+#undef  Perl_safesysrealloc
+#define Perl_safesysrealloc    pPerl->Perl_safesysrealloc
+#undef  Perl_safexcalloc
+#define Perl_safexcalloc       pPerl->Perl_safexcalloc
+#undef  Perl_safexfree
+#define Perl_safexfree         pPerl->Perl_safexfree
+#undef  Perl_safexmalloc
+#define Perl_safexmalloc       pPerl->Perl_safexmalloc
+#undef  Perl_safexrealloc
+#define Perl_safexrealloc      pPerl->Perl_safexrealloc
+#undef  Perl_same_dirent
+#define Perl_same_dirent       pPerl->Perl_same_dirent
+#undef  Perl_save_I16
+#define Perl_save_I16          pPerl->Perl_save_I16
+#undef  Perl_save_I32
+#define Perl_save_I32          pPerl->Perl_save_I32
+#undef  Perl_save_aelem
+#define Perl_save_aelem                pPerl->Perl_save_aelem
+#undef  Perl_save_alloc
+#define Perl_save_alloc                pPerl->Perl_save_alloc
+#undef  Perl_save_aptr
+#define Perl_save_aptr         pPerl->Perl_save_aptr
+#undef  Perl_save_ary
+#define Perl_save_ary          pPerl->Perl_save_ary
+#undef  Perl_save_clearsv
+#define Perl_save_clearsv      pPerl->Perl_save_clearsv
+#undef  Perl_save_delete
+#define Perl_save_delete       pPerl->Perl_save_delete
+#undef  Perl_save_destructor
+#define Perl_save_destructor   pPerl->Perl_save_destructor
+#undef  Perl_save_freeop
+#define Perl_save_freeop       pPerl->Perl_save_freeop
+#undef  Perl_save_freepv
+#define Perl_save_freepv       pPerl->Perl_save_freepv
+#undef  Perl_save_freesv
+#define Perl_save_freesv       pPerl->Perl_save_freesv
+#undef  Perl_save_generic_svref
+#define Perl_save_generic_svref        pPerl->Perl_save_generic_svref
+#undef  Perl_save_gp
+#define Perl_save_gp           pPerl->Perl_save_gp
+#undef  Perl_save_hash
+#define Perl_save_hash         pPerl->Perl_save_hash
+#undef  Perl_save_helem
+#define Perl_save_helem                pPerl->Perl_save_helem
+#undef  Perl_save_hints
+#define Perl_save_hints                pPerl->Perl_save_hints
+#undef  Perl_save_hptr
+#define Perl_save_hptr         pPerl->Perl_save_hptr
+#undef  Perl_save_int
+#define Perl_save_int          pPerl->Perl_save_int
+#undef  Perl_save_item
+#define Perl_save_item         pPerl->Perl_save_item
+#undef  Perl_save_iv
+#define Perl_save_iv           pPerl->Perl_save_iv
+#undef  Perl_save_list
+#define Perl_save_list         pPerl->Perl_save_list
+#undef  Perl_save_long
+#define Perl_save_long         pPerl->Perl_save_long
+#undef  Perl_save_nogv
+#define Perl_save_nogv         pPerl->Perl_save_nogv
+#undef  Perl_save_op
+#define Perl_save_op           pPerl->Perl_save_op
+#undef  Perl_save_pptr
+#define Perl_save_pptr         pPerl->Perl_save_pptr
+#undef  Perl_save_re_context
+#define Perl_save_re_context   pPerl->Perl_save_re_context
+#undef  Perl_save_scalar
+#define Perl_save_scalar       pPerl->Perl_save_scalar
+#undef  Perl_save_sptr
+#define Perl_save_sptr         pPerl->Perl_save_sptr
+#undef  Perl_save_svref
+#define Perl_save_svref                pPerl->Perl_save_svref
+#undef  Perl_save_threadsv
+#define Perl_save_threadsv     pPerl->Perl_save_threadsv
+#undef  Perl_savepv
+#define Perl_savepv            pPerl->Perl_savepv
+#undef  Perl_savepvn
+#define Perl_savepvn           pPerl->Perl_savepvn
+#undef  Perl_savestack_grow
+#define Perl_savestack_grow    pPerl->Perl_savestack_grow
+#undef  Perl_sawparens
+#define Perl_sawparens         pPerl->Perl_sawparens
+#undef  Perl_scalar
+#define Perl_scalar            pPerl->Perl_scalar
+#undef  Perl_scalarkids
+#define Perl_scalarkids                pPerl->Perl_scalarkids
+#undef  Perl_scalarseq
+#define Perl_scalarseq         pPerl->Perl_scalarseq
+#undef  Perl_scalarvoid
+#define Perl_scalarvoid                pPerl->Perl_scalarvoid
+#undef  Perl_scan_bin
+#define Perl_scan_bin          pPerl->Perl_scan_bin
+#undef  Perl_scan_hex
+#define Perl_scan_hex          pPerl->Perl_scan_hex
+#undef  Perl_scan_num
+#define Perl_scan_num          pPerl->Perl_scan_num
+#undef  Perl_scan_oct
+#define Perl_scan_oct          pPerl->Perl_scan_oct
+#undef  Perl_scope
+#define Perl_scope             pPerl->Perl_scope
+#undef  Perl_screaminstr
+#define Perl_screaminstr       pPerl->Perl_screaminstr
+#undef  Perl_set_numeric_local
+#define Perl_set_numeric_local pPerl->Perl_set_numeric_local
+#undef  Perl_set_numeric_standard
+#define Perl_set_numeric_standard      pPerl->Perl_set_numeric_standard
+#undef  Perl_setdefout
+#define Perl_setdefout         pPerl->Perl_setdefout
+#undef  Perl_setenv_getix
+#define Perl_setenv_getix      pPerl->Perl_setenv_getix
+#undef  Perl_share_hek
+#define Perl_share_hek         pPerl->Perl_share_hek
+#undef  Perl_sharepvn
+#define Perl_sharepvn          pPerl->Perl_sharepvn
+#undef  Perl_sighandler
+#define Perl_sighandler                pPerl->Perl_sighandler
+#undef  Perl_stack_grow
+#define Perl_stack_grow                pPerl->Perl_stack_grow
+#undef  Perl_start_subparse
+#define Perl_start_subparse    pPerl->Perl_start_subparse
+#undef  Perl_sub_crush_depth
+#define Perl_sub_crush_depth   pPerl->Perl_sub_crush_depth
+#undef  Perl_sv_2bool
+#define Perl_sv_2bool          pPerl->Perl_sv_2bool
+#undef  Perl_sv_2cv
+#define Perl_sv_2cv            pPerl->Perl_sv_2cv
+#undef  Perl_sv_2io
+#define Perl_sv_2io            pPerl->Perl_sv_2io
+#undef  Perl_sv_2iv
+#define Perl_sv_2iv            pPerl->Perl_sv_2iv
+#undef  Perl_sv_2mortal
+#define Perl_sv_2mortal                pPerl->Perl_sv_2mortal
+#undef  Perl_sv_2nv
+#define Perl_sv_2nv            pPerl->Perl_sv_2nv
+#undef  Perl_sv_2pv
+#define Perl_sv_2pv            pPerl->Perl_sv_2pv
+#undef  Perl_sv_2pv_nolen
+#define Perl_sv_2pv_nolen      pPerl->Perl_sv_2pv_nolen
+#undef  Perl_sv_2uv
+#define Perl_sv_2uv            pPerl->Perl_sv_2uv
+#undef  Perl_sv_add_arena
+#define Perl_sv_add_arena      pPerl->Perl_sv_add_arena
+#undef  Perl_sv_backoff
+#define Perl_sv_backoff                pPerl->Perl_sv_backoff
+#undef  Perl_sv_bless
+#define Perl_sv_bless          pPerl->Perl_sv_bless
+#undef  Perl_sv_catpv
+#define Perl_sv_catpv          pPerl->Perl_sv_catpv
+#undef  Perl_sv_catpv_mg
+#define Perl_sv_catpv_mg       pPerl->Perl_sv_catpv_mg
+#undef  Perl_sv_catpvf
+#define Perl_sv_catpvf         pPerl->Perl_sv_catpvf
+#undef  Perl_sv_catpvf_mg
+#define Perl_sv_catpvf_mg      pPerl->Perl_sv_catpvf_mg
+#undef  Perl_sv_catpvn
+#define Perl_sv_catpvn         pPerl->Perl_sv_catpvn
+#undef  Perl_sv_catpvn_mg
+#define Perl_sv_catpvn_mg      pPerl->Perl_sv_catpvn_mg
+#undef  Perl_sv_catsv
+#define Perl_sv_catsv          pPerl->Perl_sv_catsv
+#undef  Perl_sv_catsv_mg
+#define Perl_sv_catsv_mg       pPerl->Perl_sv_catsv_mg
+#undef  Perl_sv_chop
+#define Perl_sv_chop           pPerl->Perl_sv_chop
+#undef  Perl_sv_clean_all
+#define Perl_sv_clean_all      pPerl->Perl_sv_clean_all
+#undef  Perl_sv_clean_objs
+#define Perl_sv_clean_objs     pPerl->Perl_sv_clean_objs
+#undef  Perl_sv_clear
+#define Perl_sv_clear          pPerl->Perl_sv_clear
+#undef  Perl_sv_cmp
+#define Perl_sv_cmp            pPerl->Perl_sv_cmp
+#undef  Perl_sv_cmp_locale
+#define Perl_sv_cmp_locale     pPerl->Perl_sv_cmp_locale
+#undef  Perl_sv_collxfrm
+#define Perl_sv_collxfrm       pPerl->Perl_sv_collxfrm
+#undef  Perl_sv_compile_2op
+#define Perl_sv_compile_2op    pPerl->Perl_sv_compile_2op
+#undef  Perl_sv_dec
+#define Perl_sv_dec            pPerl->Perl_sv_dec
+#undef  Perl_sv_derived_from
+#define Perl_sv_derived_from   pPerl->Perl_sv_derived_from
+#undef  Perl_sv_dump
+#define Perl_sv_dump           pPerl->Perl_sv_dump
+#undef  Perl_sv_eq
+#define Perl_sv_eq             pPerl->Perl_sv_eq
+#undef  Perl_sv_force_normal
+#define Perl_sv_force_normal   pPerl->Perl_sv_force_normal
+#undef  Perl_sv_free
+#define Perl_sv_free           pPerl->Perl_sv_free
+#undef  Perl_sv_free_arenas
+#define Perl_sv_free_arenas    pPerl->Perl_sv_free_arenas
+#undef  Perl_sv_gets
+#define Perl_sv_gets           pPerl->Perl_sv_gets
+#undef  Perl_sv_grow
+#define Perl_sv_grow           pPerl->Perl_sv_grow
+#undef  Perl_sv_inc
+#define Perl_sv_inc            pPerl->Perl_sv_inc
+#undef  Perl_sv_insert
+#define Perl_sv_insert         pPerl->Perl_sv_insert
+#undef  Perl_sv_isa
+#define Perl_sv_isa            pPerl->Perl_sv_isa
+#undef  Perl_sv_isobject
+#define Perl_sv_isobject       pPerl->Perl_sv_isobject
+#undef  Perl_sv_iv
+#define Perl_sv_iv             pPerl->Perl_sv_iv
+#undef  Perl_sv_len
+#define Perl_sv_len            pPerl->Perl_sv_len
+#undef  Perl_sv_len_utf8
+#define Perl_sv_len_utf8       pPerl->Perl_sv_len_utf8
+#undef  Perl_sv_magic
+#define Perl_sv_magic          pPerl->Perl_sv_magic
+#undef  Perl_sv_mortalcopy
+#define Perl_sv_mortalcopy     pPerl->Perl_sv_mortalcopy
+#undef  Perl_sv_newmortal
+#define Perl_sv_newmortal      pPerl->Perl_sv_newmortal
+#undef  Perl_sv_newref
+#define Perl_sv_newref         pPerl->Perl_sv_newref
+#undef  Perl_sv_nv
+#define Perl_sv_nv             pPerl->Perl_sv_nv
+#undef  Perl_sv_peek
+#define Perl_sv_peek           pPerl->Perl_sv_peek
+#undef  Perl_sv_pos_b2u
+#define Perl_sv_pos_b2u                pPerl->Perl_sv_pos_b2u
+#undef  Perl_sv_pos_u2b
+#define Perl_sv_pos_u2b                pPerl->Perl_sv_pos_u2b
+#undef  Perl_sv_pv
+#define Perl_sv_pv             pPerl->Perl_sv_pv
+#undef  Perl_sv_pvn
+#define Perl_sv_pvn            pPerl->Perl_sv_pvn
+#undef  Perl_sv_pvn_force
+#define Perl_sv_pvn_force      pPerl->Perl_sv_pvn_force
+#undef  Perl_sv_reftype
+#define Perl_sv_reftype                pPerl->Perl_sv_reftype
+#undef  Perl_sv_replace
+#define Perl_sv_replace                pPerl->Perl_sv_replace
+#undef  Perl_sv_report_used
+#define Perl_sv_report_used    pPerl->Perl_sv_report_used
+#undef  Perl_sv_reset
+#define Perl_sv_reset          pPerl->Perl_sv_reset
+#undef  Perl_sv_rvweaken
+#define Perl_sv_rvweaken       pPerl->Perl_sv_rvweaken
+#undef  Perl_sv_setiv
+#define Perl_sv_setiv          pPerl->Perl_sv_setiv
+#undef  Perl_sv_setiv_mg
+#define Perl_sv_setiv_mg       pPerl->Perl_sv_setiv_mg
+#undef  Perl_sv_setnv
+#define Perl_sv_setnv          pPerl->Perl_sv_setnv
+#undef  Perl_sv_setnv_mg
+#define Perl_sv_setnv_mg       pPerl->Perl_sv_setnv_mg
+#undef  Perl_sv_setpv
+#define Perl_sv_setpv          pPerl->Perl_sv_setpv
+#undef  Perl_sv_setpv_mg
+#define Perl_sv_setpv_mg       pPerl->Perl_sv_setpv_mg
+#undef  Perl_sv_setpvf
+#define Perl_sv_setpvf         pPerl->Perl_sv_setpvf
+#undef  Perl_sv_setpvf_mg
+#define Perl_sv_setpvf_mg      pPerl->Perl_sv_setpvf_mg
+#undef  Perl_sv_setpviv
+#define Perl_sv_setpviv                pPerl->Perl_sv_setpviv
+#undef  Perl_sv_setpviv_mg
+#define Perl_sv_setpviv_mg     pPerl->Perl_sv_setpviv_mg
+#undef  Perl_sv_setpvn
+#define Perl_sv_setpvn         pPerl->Perl_sv_setpvn
+#undef  Perl_sv_setpvn_mg
+#define Perl_sv_setpvn_mg      pPerl->Perl_sv_setpvn_mg
+#undef  Perl_sv_setref_iv
+#define Perl_sv_setref_iv      pPerl->Perl_sv_setref_iv
+#undef  Perl_sv_setref_nv
+#define Perl_sv_setref_nv      pPerl->Perl_sv_setref_nv
+#undef  Perl_sv_setref_pv
+#define Perl_sv_setref_pv      pPerl->Perl_sv_setref_pv
+#undef  Perl_sv_setref_pvn
+#define Perl_sv_setref_pvn     pPerl->Perl_sv_setref_pvn
+#undef  Perl_sv_setsv
+#define Perl_sv_setsv          pPerl->Perl_sv_setsv
+#undef  Perl_sv_setsv_mg
+#define Perl_sv_setsv_mg       pPerl->Perl_sv_setsv_mg
+#undef  Perl_sv_setuv
+#define Perl_sv_setuv          pPerl->Perl_sv_setuv
+#undef  Perl_sv_setuv_mg
+#define Perl_sv_setuv_mg       pPerl->Perl_sv_setuv_mg
+#undef  Perl_sv_taint
+#define Perl_sv_taint          pPerl->Perl_sv_taint
+#undef  Perl_sv_tainted
+#define Perl_sv_tainted                pPerl->Perl_sv_tainted
+#undef  Perl_sv_true
+#define Perl_sv_true           pPerl->Perl_sv_true
+#undef  Perl_sv_unmagic
+#define Perl_sv_unmagic                pPerl->Perl_sv_unmagic
+#undef  Perl_sv_unref
+#define Perl_sv_unref          pPerl->Perl_sv_unref
+#undef  Perl_sv_untaint
+#define Perl_sv_untaint                pPerl->Perl_sv_untaint
+#undef  Perl_sv_upgrade
+#define Perl_sv_upgrade                pPerl->Perl_sv_upgrade
+#undef  Perl_sv_usepvn
+#define Perl_sv_usepvn         pPerl->Perl_sv_usepvn
+#undef  Perl_sv_usepvn_mg
+#define Perl_sv_usepvn_mg      pPerl->Perl_sv_usepvn_mg
+#undef  Perl_sv_uv
+#define Perl_sv_uv             pPerl->Perl_sv_uv
+#undef  Perl_sv_vcatpvfn
+#define Perl_sv_vcatpvfn       pPerl->Perl_sv_vcatpvfn
+#undef  Perl_sv_vsetpvfn
+#define Perl_sv_vsetpvfn       pPerl->Perl_sv_vsetpvfn
+#undef  Perl_swash_fetch
+#define Perl_swash_fetch       pPerl->Perl_swash_fetch
+#undef  Perl_swash_init
+#define Perl_swash_init                pPerl->Perl_swash_init
+#undef  Perl_taint_env
+#define Perl_taint_env         pPerl->Perl_taint_env
+#undef  Perl_taint_proper
+#define Perl_taint_proper      pPerl->Perl_taint_proper
+#undef  Perl_tmps_grow
+#define Perl_tmps_grow         pPerl->Perl_tmps_grow
+#undef  Perl_to_uni_lower
+#define Perl_to_uni_lower      pPerl->Perl_to_uni_lower
+#undef  Perl_to_uni_lower_lc
+#define Perl_to_uni_lower_lc   pPerl->Perl_to_uni_lower_lc
+#undef  Perl_to_uni_title
+#define Perl_to_uni_title      pPerl->Perl_to_uni_title
+#undef  Perl_to_uni_title_lc
+#define Perl_to_uni_title_lc   pPerl->Perl_to_uni_title_lc
+#undef  Perl_to_uni_upper
+#define Perl_to_uni_upper      pPerl->Perl_to_uni_upper
+#undef  Perl_to_uni_upper_lc
+#define Perl_to_uni_upper_lc   pPerl->Perl_to_uni_upper_lc
+#undef  Perl_to_utf8_lower
+#define Perl_to_utf8_lower     pPerl->Perl_to_utf8_lower
+#undef  Perl_to_utf8_title
+#define Perl_to_utf8_title     pPerl->Perl_to_utf8_title
+#undef  Perl_to_utf8_upper
+#define Perl_to_utf8_upper     pPerl->Perl_to_utf8_upper
+#undef  Perl_unlnk
+#define Perl_unlnk             pPerl->Perl_unlnk
+#undef  Perl_unlock_condpair
+#define Perl_unlock_condpair   pPerl->Perl_unlock_condpair
+#undef  Perl_unshare_hek
+#define Perl_unshare_hek       pPerl->Perl_unshare_hek
+#undef  Perl_unsharepvn
+#define Perl_unsharepvn                pPerl->Perl_unsharepvn
+#undef  Perl_utf16_to_utf8
+#define Perl_utf16_to_utf8     pPerl->Perl_utf16_to_utf8
+#undef  Perl_utf16_to_utf8_reversed
+#define Perl_utf16_to_utf8_reversed    pPerl->Perl_utf16_to_utf8_reversed
+#undef  Perl_utf8_distance
+#define Perl_utf8_distance     pPerl->Perl_utf8_distance
+#undef  Perl_utf8_hop
+#define Perl_utf8_hop          pPerl->Perl_utf8_hop
+#undef  Perl_utf8_to_uv
+#define Perl_utf8_to_uv                pPerl->Perl_utf8_to_uv
+#undef  Perl_utilize
+#define Perl_utilize           pPerl->Perl_utilize
+#undef  Perl_uv_to_utf8
+#define Perl_uv_to_utf8                pPerl->Perl_uv_to_utf8
+#undef  Perl_vivify_defelem
+#define Perl_vivify_defelem    pPerl->Perl_vivify_defelem
+#undef  Perl_vivify_ref
+#define Perl_vivify_ref                pPerl->Perl_vivify_ref
+#undef  Perl_wait4pid
+#define Perl_wait4pid          pPerl->Perl_wait4pid
+#undef  Perl_warn
+#define Perl_warn              pPerl->Perl_warn
+#undef  Perl_warner
+#define Perl_warner            pPerl->Perl_warner
+#undef  Perl_watch
+#define Perl_watch             pPerl->Perl_watch
+#undef  Perl_whichsig
+#define Perl_whichsig          pPerl->Perl_whichsig
+#undef  Perl_yydestruct
+#define Perl_yydestruct                pPerl->Perl_yydestruct
+#undef  Perl_yyerror
+#define Perl_yyerror           pPerl->Perl_yyerror
+#undef  Perl_yylex
+#define Perl_yylex             pPerl->Perl_yylex
+#undef  Perl_yyparse
+#define Perl_yyparse           pPerl->Perl_yyparse
+#undef  Perl_yywarn
+#define Perl_yywarn            pPerl->Perl_yywarn
 #undef  add_data
 #define add_data               pPerl->Perl_add_data
-#undef  amagic_call
-#define amagic_call            pPerl->Perl_amagic_call
 #undef  amagic_cmp
 #define amagic_cmp             pPerl->Perl_amagic_cmp
 #undef  amagic_cmp_locale
 #define amagic_ncmp            pPerl->Perl_amagic_ncmp
 #undef  ao
 #define ao                     pPerl->Perl_ao
-#undef  append_elem
-#define append_elem            pPerl->Perl_append_elem
-#undef  append_list
-#define append_list            pPerl->Perl_append_list
-#undef  apply
-#define apply                  pPerl->Perl_apply
 #undef  asIV
 #define asIV                   pPerl->Perl_asIV
 #undef  asUV
 #define asUV                   pPerl->Perl_asUV
-#undef  assertref
-#define assertref              pPerl->Perl_assertref
-#undef  av_clear
-#define av_clear               pPerl->Perl_av_clear
-#undef  av_extend
-#define av_extend              pPerl->Perl_av_extend
-#undef  av_fake
-#define av_fake                        pPerl->Perl_av_fake
-#undef  av_fetch
-#define av_fetch               pPerl->Perl_av_fetch
-#undef  av_fill
-#define av_fill                        pPerl->Perl_av_fill
-#undef  av_len
-#define av_len                 pPerl->Perl_av_len
-#undef  av_make
-#define av_make                        pPerl->Perl_av_make
-#undef  av_pop
-#define av_pop                 pPerl->Perl_av_pop
-#undef  av_push
-#define av_push                        pPerl->Perl_av_push
-#undef  av_reify
-#define av_reify               pPerl->Perl_av_reify
-#undef  av_shift
-#define av_shift               pPerl->Perl_av_shift
-#undef  av_store
-#define av_store               pPerl->Perl_av_store
-#undef  av_undef
-#define av_undef               pPerl->Perl_av_undef
-#undef  av_unshift
-#define av_unshift             pPerl->Perl_av_unshift
-#undef  avhv_exists_ent
-#define avhv_exists_ent                pPerl->Perl_avhv_exists_ent
-#undef  avhv_fetch_ent
-#define avhv_fetch_ent         pPerl->Perl_avhv_fetch_ent
 #undef  avhv_index_sv
 #define avhv_index_sv          pPerl->Perl_avhv_index_sv
-#undef  avhv_iternext
-#define avhv_iternext          pPerl->Perl_avhv_iternext
-#undef  avhv_iterval
-#define avhv_iterval           pPerl->Perl_avhv_iterval
-#undef  avhv_keys
-#define avhv_keys              pPerl->Perl_avhv_keys
 #undef  bad_type
 #define bad_type               pPerl->Perl_bad_type
-#undef  bind_match
-#define bind_match             pPerl->Perl_bind_match
-#undef  block_end
-#define block_end              pPerl->Perl_block_end
-#undef  block_gimme
-#define block_gimme            pPerl->Perl_block_gimme
-#undef  block_start
-#define block_start            pPerl->Perl_block_start
-#undef  boot_core_UNIVERSAL
-#define boot_core_UNIVERSAL    pPerl->Perl_boot_core_UNIVERSAL
-#undef  bset_obj_store
-#define bset_obj_store         pPerl->Perl_bset_obj_store
 #undef  cache_re
 #define cache_re               pPerl->Perl_cache_re
-#undef  call_list
-#define call_list              pPerl->Perl_call_list
 #undef  call_list_body
 #define call_list_body         pPerl->Perl_call_list_body
-#undef  cando
-#define cando                  pPerl->Perl_cando
-#undef  cast_i32
-#define cast_i32               pPerl->Perl_cast_i32
-#undef  cast_iv
-#define cast_iv                        pPerl->Perl_cast_iv
-#undef  cast_ulong
-#define cast_ulong             pPerl->Perl_cast_ulong
-#undef  cast_uv
-#define cast_uv                        pPerl->Perl_cast_uv
 #undef  check_uni
 #define check_uni              pPerl->Perl_check_uni
 #undef  checkcomma
 #define checkcomma             pPerl->Perl_checkcomma
-#undef  ck_anoncode
-#define ck_anoncode            pPerl->Perl_ck_anoncode
-#undef  ck_bitop
-#define ck_bitop               pPerl->Perl_ck_bitop
-#undef  ck_concat
-#define ck_concat              pPerl->Perl_ck_concat
-#undef  ck_defined
-#define ck_defined             pPerl->Perl_ck_defined
-#undef  ck_delete
-#define ck_delete              pPerl->Perl_ck_delete
-#undef  ck_eof
-#define ck_eof                 pPerl->Perl_ck_eof
-#undef  ck_eval
-#define ck_eval                        pPerl->Perl_ck_eval
-#undef  ck_exec
-#define ck_exec                        pPerl->Perl_ck_exec
-#undef  ck_exists
-#define ck_exists              pPerl->Perl_ck_exists
-#undef  ck_ftst
-#define ck_ftst                        pPerl->Perl_ck_ftst
-#undef  ck_fun
-#define ck_fun                 pPerl->Perl_ck_fun
-#undef  ck_fun_locale
-#define ck_fun_locale          pPerl->Perl_ck_fun_locale
-#undef  ck_glob
-#define ck_glob                        pPerl->Perl_ck_glob
-#undef  ck_grep
-#define ck_grep                        pPerl->Perl_ck_grep
-#undef  ck_index
-#define ck_index               pPerl->Perl_ck_index
-#undef  ck_lengthconst
-#define ck_lengthconst         pPerl->Perl_ck_lengthconst
-#undef  ck_lfun
-#define ck_lfun                        pPerl->Perl_ck_lfun
-#undef  ck_listiob
-#define ck_listiob             pPerl->Perl_ck_listiob
-#undef  ck_match
-#define ck_match               pPerl->Perl_ck_match
-#undef  ck_null
-#define ck_null                        pPerl->Perl_ck_null
-#undef  ck_repeat
-#define ck_repeat              pPerl->Perl_ck_repeat
-#undef  ck_require
-#define ck_require             pPerl->Perl_ck_require
-#undef  ck_rfun
-#define ck_rfun                        pPerl->Perl_ck_rfun
-#undef  ck_rvconst
-#define ck_rvconst             pPerl->Perl_ck_rvconst
-#undef  ck_scmp
-#define ck_scmp                        pPerl->Perl_ck_scmp
-#undef  ck_select
-#define ck_select              pPerl->Perl_ck_select
-#undef  ck_shift
-#define ck_shift               pPerl->Perl_ck_shift
-#undef  ck_sort
-#define ck_sort                        pPerl->Perl_ck_sort
-#undef  ck_spair
-#define ck_spair               pPerl->Perl_ck_spair
-#undef  ck_split
-#define ck_split               pPerl->Perl_ck_split
-#undef  ck_subr
-#define ck_subr                        pPerl->Perl_ck_subr
-#undef  ck_svconst
-#define ck_svconst             pPerl->Perl_ck_svconst
-#undef  ck_trunc
-#define ck_trunc               pPerl->Perl_ck_trunc
 #undef  clear_re
 #define clear_re               pPerl->Perl_clear_re
-#undef  condpair_magic
-#define condpair_magic         pPerl->Perl_condpair_magic
-#undef  convert
-#define convert                        pPerl->Perl_convert
-#undef  croak
-#define croak                  pPerl->Perl_croak
-#undef  cv_ckproto
-#define cv_ckproto             pPerl->Perl_cv_ckproto
-#undef  cv_clone
-#define cv_clone               pPerl->Perl_cv_clone
 #undef  cv_clone2
 #define cv_clone2              pPerl->Perl_cv_clone2
-#undef  cv_const_sv
-#define cv_const_sv            pPerl->Perl_cv_const_sv
-#undef  cv_undef
-#define cv_undef               pPerl->Perl_cv_undef
-#undef  cx_dump
-#define cx_dump                        pPerl->Perl_cx_dump
-#undef  cxinc
-#define cxinc                  pPerl->Perl_cxinc
-#undef  deb
-#define deb                    pPerl->Perl_deb
-#undef  deb_growlevel
-#define deb_growlevel          pPerl->Perl_deb_growlevel
-#undef  debop
-#define debop                  pPerl->Perl_debop
 #undef  debprof
 #define debprof                        pPerl->Perl_debprof
-#undef  debprofdump
-#define debprofdump            pPerl->Perl_debprofdump
-#undef  debstack
-#define debstack               pPerl->Perl_debstack
-#undef  debstackptrs
-#define debstackptrs           pPerl->Perl_debstackptrs
-#undef  default_protect
-#define default_protect                pPerl->Perl_default_protect
 #undef  del_he
 #define del_he                 pPerl->Perl_del_he
 #undef  del_sv
 #define del_xpv                        pPerl->Perl_del_xpv
 #undef  del_xrv
 #define del_xrv                        pPerl->Perl_del_xrv
-#undef  delimcpy
-#define delimcpy               pPerl->Perl_delimcpy
 #undef  depcom
 #define depcom                 pPerl->Perl_depcom
-#undef  deprecate
-#define deprecate              pPerl->Perl_deprecate
-#undef  die
-#define die                    pPerl->Perl_die
-#undef  die_where
-#define die_where              pPerl->Perl_die_where
 #undef  div128
 #define div128                 pPerl->Perl_div128
-#undef  do_aexec
-#define do_aexec               pPerl->Perl_do_aexec
 #undef  do_aspawn
 #define do_aspawn              pPerl->Perl_do_aspawn
-#undef  do_binmode
-#define do_binmode             pPerl->Perl_do_binmode
-#undef  do_chomp
-#define do_chomp               pPerl->Perl_do_chomp
-#undef  do_chop
-#define do_chop                        pPerl->Perl_do_chop
 #undef  do_clean_all
 #define do_clean_all           pPerl->Perl_do_clean_all
 #undef  do_clean_named_objs
 #define do_clean_named_objs    pPerl->Perl_do_clean_named_objs
 #undef  do_clean_objs
 #define do_clean_objs          pPerl->Perl_do_clean_objs
-#undef  do_close
-#define do_close               pPerl->Perl_do_close
-#undef  do_eof
-#define do_eof                 pPerl->Perl_do_eof
-#undef  do_exec
-#define do_exec                        pPerl->Perl_do_exec
-#undef  do_exec3
-#define do_exec3               pPerl->Perl_do_exec3
-#undef  do_execfree
-#define do_execfree            pPerl->Perl_do_execfree
-#undef  do_gv_dump
-#define do_gv_dump             pPerl->Perl_do_gv_dump
-#undef  do_gvgv_dump
-#define do_gvgv_dump           pPerl->Perl_do_gvgv_dump
-#undef  do_hv_dump
-#define do_hv_dump             pPerl->Perl_do_hv_dump
-#undef  do_ipcctl
-#define do_ipcctl              pPerl->Perl_do_ipcctl
-#undef  do_ipcget
-#define do_ipcget              pPerl->Perl_do_ipcget
-#undef  do_join
-#define do_join                        pPerl->Perl_do_join
-#undef  do_kv
-#define do_kv                  pPerl->Perl_do_kv
-#undef  do_magic_dump
-#define do_magic_dump          pPerl->Perl_do_magic_dump
-#undef  do_msgrcv
-#define do_msgrcv              pPerl->Perl_do_msgrcv
-#undef  do_msgsnd
-#define do_msgsnd              pPerl->Perl_do_msgsnd
-#undef  do_op_dump
-#define do_op_dump             pPerl->Perl_do_op_dump
-#undef  do_open
-#define do_open                        pPerl->Perl_do_open
-#undef  do_pipe
-#define do_pipe                        pPerl->Perl_do_pipe
-#undef  do_pmop_dump
-#define do_pmop_dump           pPerl->Perl_do_pmop_dump
-#undef  do_print
-#define do_print               pPerl->Perl_do_print
-#undef  do_readline
-#define do_readline            pPerl->Perl_do_readline
 #undef  do_report_used
 #define do_report_used         pPerl->Perl_do_report_used
-#undef  do_seek
-#define do_seek                        pPerl->Perl_do_seek
-#undef  do_semop
-#define do_semop               pPerl->Perl_do_semop
-#undef  do_shmio
-#define do_shmio               pPerl->Perl_do_shmio
-#undef  do_sprintf
-#define do_sprintf             pPerl->Perl_do_sprintf
-#undef  do_sv_dump
-#define do_sv_dump             pPerl->Perl_do_sv_dump
-#undef  do_sysseek
-#define do_sysseek             pPerl->Perl_do_sysseek
-#undef  do_tell
-#define do_tell                        pPerl->Perl_do_tell
-#undef  do_trans
-#define do_trans               pPerl->Perl_do_trans
 #undef  do_trans_CC_complex
 #define do_trans_CC_complex    pPerl->Perl_do_trans_CC_complex
 #undef  do_trans_CC_count
 #define do_trans_UU_count      pPerl->Perl_do_trans_UU_count
 #undef  do_trans_UU_simple
 #define do_trans_UU_simple     pPerl->Perl_do_trans_UU_simple
-#undef  do_vecset
-#define do_vecset              pPerl->Perl_do_vecset
-#undef  do_vop
-#define do_vop                 pPerl->Perl_do_vop
 #undef  docatch
 #define docatch                        pPerl->Perl_docatch
 #undef  docatch_body
 #define doencodes              pPerl->Perl_doencodes
 #undef  doeval
 #define doeval                 pPerl->Perl_doeval
-#undef  dofile
-#define dofile                 pPerl->Perl_dofile
 #undef  dofindlabel
 #define dofindlabel            pPerl->Perl_dofindlabel
 #undef  doform
 #define dopoptosub             pPerl->Perl_dopoptosub
 #undef  dopoptosub_at
 #define dopoptosub_at          pPerl->Perl_dopoptosub_at
-#undef  dounwind
-#define dounwind               pPerl->Perl_dounwind
-#undef  dowantarray
-#define dowantarray            pPerl->Perl_dowantarray
 #undef  dump
 #define dump                   pPerl->Perl_dump
-#undef  dump_all
-#define dump_all               pPerl->Perl_dump_all
-#undef  dump_eval
-#define dump_eval              pPerl->Perl_dump_eval
-#undef  dump_fds
-#define dump_fds               pPerl->Perl_dump_fds
-#undef  dump_form
-#define dump_form              pPerl->Perl_dump_form
-#undef  dump_indent
-#define dump_indent            pPerl->Perl_dump_indent
-#undef  dump_mstats
-#define dump_mstats            pPerl->Perl_dump_mstats
-#undef  dump_packsubs
-#define dump_packsubs          pPerl->Perl_dump_packsubs
-#undef  dump_sub
-#define dump_sub               pPerl->Perl_dump_sub
 #undef  dumpuntil
 #define dumpuntil              pPerl->Perl_dumpuntil
 #undef  emulate_eaccess
 #define emulate_eaccess                pPerl->Perl_emulate_eaccess
-#undef  fbm_compile
-#define fbm_compile            pPerl->Perl_fbm_compile
-#undef  fbm_instr
-#define fbm_instr              pPerl->Perl_fbm_instr
-#undef  filter_add
-#define filter_add             pPerl->Perl_filter_add
-#undef  filter_del
-#define filter_del             pPerl->Perl_filter_del
 #undef  filter_gets
 #define filter_gets            pPerl->Perl_filter_gets
-#undef  filter_read
-#define filter_read            pPerl->Perl_filter_read
 #undef  find_beginning
 #define find_beginning         pPerl->Perl_find_beginning
-#undef  find_script
-#define find_script            pPerl->Perl_find_script
-#undef  find_threadsv
-#define find_threadsv          pPerl->Perl_find_threadsv
-#undef  fold_constants
-#define fold_constants         pPerl->Perl_fold_constants
 #undef  forbid_setid
 #define forbid_setid           pPerl->Perl_forbid_setid
 #undef  force_ident
 #define force_ident            pPerl->Perl_force_ident
-#undef  force_list
-#define force_list             pPerl->Perl_force_list
 #undef  force_next
 #define force_next             pPerl->Perl_force_next
 #undef  force_version
 #define force_version          pPerl->Perl_force_version
 #undef  force_word
 #define force_word             pPerl->Perl_force_word
-#undef  form
-#define form                   pPerl->Perl_form
-#undef  fprintf
-#define fprintf                        pPerl->Perl_fprintf
 #undef  free_closures
 #define free_closures          pPerl->Perl_free_closures
-#undef  free_tmps
-#define free_tmps              pPerl->Perl_free_tmps
-#undef  gen_constant_list
-#define gen_constant_list      pPerl->Perl_gen_constant_list
 #undef  get_db_sub
 #define get_db_sub             pPerl->Perl_get_db_sub
-#undef  get_no_modify
-#define get_no_modify          pPerl->Perl_get_no_modify
-#undef  get_op_descs
-#define get_op_descs           pPerl->Perl_get_op_descs
-#undef  get_op_names
-#define get_op_names           pPerl->Perl_get_op_names
-#undef  get_opargs
-#define get_opargs             pPerl->Perl_get_opargs
-#undef  get_vtbl
-#define get_vtbl               pPerl->Perl_get_vtbl
-#undef  gp_free
-#define gp_free                        pPerl->Perl_gp_free
-#undef  gp_ref
-#define gp_ref                 pPerl->Perl_gp_ref
-#undef  gv_AVadd
-#define gv_AVadd               pPerl->Perl_gv_AVadd
-#undef  gv_HVadd
-#define gv_HVadd               pPerl->Perl_gv_HVadd
-#undef  gv_IOadd
-#define gv_IOadd               pPerl->Perl_gv_IOadd
-#undef  gv_autoload4
-#define gv_autoload4           pPerl->Perl_gv_autoload4
-#undef  gv_check
-#define gv_check               pPerl->Perl_gv_check
-#undef  gv_dump
-#define gv_dump                        pPerl->Perl_gv_dump
-#undef  gv_efullname
-#define gv_efullname           pPerl->Perl_gv_efullname
-#undef  gv_efullname3
-#define gv_efullname3          pPerl->Perl_gv_efullname3
 #undef  gv_ename
 #define gv_ename               pPerl->Perl_gv_ename
-#undef  gv_fetchfile
-#define gv_fetchfile           pPerl->Perl_gv_fetchfile
-#undef  gv_fetchmeth
-#define gv_fetchmeth           pPerl->Perl_gv_fetchmeth
-#undef  gv_fetchmethod
-#define gv_fetchmethod         pPerl->Perl_gv_fetchmethod
-#undef  gv_fetchmethod_autoload
-#define gv_fetchmethod_autoload        pPerl->Perl_gv_fetchmethod_autoload
-#undef  gv_fetchpv
-#define gv_fetchpv             pPerl->Perl_gv_fetchpv
-#undef  gv_fullname
-#define gv_fullname            pPerl->Perl_gv_fullname
-#undef  gv_fullname3
-#define gv_fullname3           pPerl->Perl_gv_fullname3
-#undef  gv_init
-#define gv_init                        pPerl->Perl_gv_init
 #undef  gv_init_sv
 #define gv_init_sv             pPerl->Perl_gv_init_sv
-#undef  gv_stashpv
-#define gv_stashpv             pPerl->Perl_gv_stashpv
-#undef  gv_stashpvn
-#define gv_stashpvn            pPerl->Perl_gv_stashpvn
-#undef  gv_stashsv
-#define gv_stashsv             pPerl->Perl_gv_stashsv
 #undef  hfreeentries
 #define hfreeentries           pPerl->Perl_hfreeentries
 #undef  hsplit
 #define hsplit                 pPerl->Perl_hsplit
-#undef  hv_clear
-#define hv_clear               pPerl->Perl_hv_clear
-#undef  hv_delayfree_ent
-#define hv_delayfree_ent       pPerl->Perl_hv_delayfree_ent
-#undef  hv_delete
-#define hv_delete              pPerl->Perl_hv_delete
-#undef  hv_delete_ent
-#define hv_delete_ent          pPerl->Perl_hv_delete_ent
-#undef  hv_exists
-#define hv_exists              pPerl->Perl_hv_exists
-#undef  hv_exists_ent
-#define hv_exists_ent          pPerl->Perl_hv_exists_ent
-#undef  hv_fetch
-#define hv_fetch               pPerl->Perl_hv_fetch
-#undef  hv_fetch_ent
-#define hv_fetch_ent           pPerl->Perl_hv_fetch_ent
-#undef  hv_free_ent
-#define hv_free_ent            pPerl->Perl_hv_free_ent
-#undef  hv_iterinit
-#define hv_iterinit            pPerl->Perl_hv_iterinit
-#undef  hv_iterkey
-#define hv_iterkey             pPerl->Perl_hv_iterkey
-#undef  hv_iterkeysv
-#define hv_iterkeysv           pPerl->Perl_hv_iterkeysv
-#undef  hv_iternext
-#define hv_iternext            pPerl->Perl_hv_iternext
-#undef  hv_iternextsv
-#define hv_iternextsv          pPerl->Perl_hv_iternextsv
-#undef  hv_iterval
-#define hv_iterval             pPerl->Perl_hv_iterval
-#undef  hv_ksplit
-#define hv_ksplit              pPerl->Perl_hv_ksplit
-#undef  hv_magic
-#define hv_magic               pPerl->Perl_hv_magic
-#undef  hv_store
-#define hv_store               pPerl->Perl_hv_store
-#undef  hv_store_ent
-#define hv_store_ent           pPerl->Perl_hv_store_ent
-#undef  hv_undef
-#define hv_undef               pPerl->Perl_hv_undef
-#undef  ibcmp
-#define ibcmp                  pPerl->Perl_ibcmp
-#undef  ibcmp_locale
-#define ibcmp_locale           pPerl->Perl_ibcmp_locale
 #undef  incl_perldb
 #define incl_perldb            pPerl->Perl_incl_perldb
 #undef  incline
 #define incline                        pPerl->Perl_incline
 #undef  incpush
 #define incpush                        pPerl->Perl_incpush
-#undef  ingroup
-#define ingroup                        pPerl->Perl_ingroup
 #undef  init_debugger
 #define init_debugger          pPerl->Perl_init_debugger
 #undef  init_ids
 #define init_postdump_symbols  pPerl->Perl_init_postdump_symbols
 #undef  init_predump_symbols
 #define init_predump_symbols   pPerl->Perl_init_predump_symbols
-#undef  init_stacks
-#define init_stacks            pPerl->Perl_init_stacks
-#undef  init_thread_intern
-#define init_thread_intern     pPerl->Perl_init_thread_intern
-#undef  instr
-#define instr                  pPerl->Perl_instr
-#undef  intro_my
-#define intro_my               pPerl->Perl_intro_my
 #undef  intuit_method
 #define intuit_method          pPerl->Perl_intuit_method
 #undef  intuit_more
 #define intuit_more            pPerl->Perl_intuit_more
-#undef  invert
-#define invert                 pPerl->Perl_invert
-#undef  io_close
-#define io_close               pPerl->Perl_io_close
 #undef  is_an_int
 #define is_an_int              pPerl->Perl_is_an_int
 #undef  is_handle_constructor
 #define is_handle_constructor  pPerl->Perl_is_handle_constructor
-#undef  is_uni_alnum
-#define is_uni_alnum           pPerl->Perl_is_uni_alnum
-#undef  is_uni_alnum_lc
-#define is_uni_alnum_lc                pPerl->Perl_is_uni_alnum_lc
-#undef  is_uni_alpha
-#define is_uni_alpha           pPerl->Perl_is_uni_alpha
-#undef  is_uni_alpha_lc
-#define is_uni_alpha_lc                pPerl->Perl_is_uni_alpha_lc
-#undef  is_uni_digit
-#define is_uni_digit           pPerl->Perl_is_uni_digit
-#undef  is_uni_digit_lc
-#define is_uni_digit_lc                pPerl->Perl_is_uni_digit_lc
-#undef  is_uni_idfirst
-#define is_uni_idfirst         pPerl->Perl_is_uni_idfirst
-#undef  is_uni_idfirst_lc
-#define is_uni_idfirst_lc      pPerl->Perl_is_uni_idfirst_lc
-#undef  is_uni_lower
-#define is_uni_lower           pPerl->Perl_is_uni_lower
-#undef  is_uni_lower_lc
-#define is_uni_lower_lc                pPerl->Perl_is_uni_lower_lc
-#undef  is_uni_print
-#define is_uni_print           pPerl->Perl_is_uni_print
-#undef  is_uni_print_lc
-#define is_uni_print_lc                pPerl->Perl_is_uni_print_lc
-#undef  is_uni_space
-#define is_uni_space           pPerl->Perl_is_uni_space
-#undef  is_uni_space_lc
-#define is_uni_space_lc                pPerl->Perl_is_uni_space_lc
-#undef  is_uni_upper
-#define is_uni_upper           pPerl->Perl_is_uni_upper
-#undef  is_uni_upper_lc
-#define is_uni_upper_lc                pPerl->Perl_is_uni_upper_lc
-#undef  is_utf8_alnum
-#define is_utf8_alnum          pPerl->Perl_is_utf8_alnum
-#undef  is_utf8_alpha
-#define is_utf8_alpha          pPerl->Perl_is_utf8_alpha
-#undef  is_utf8_digit
-#define is_utf8_digit          pPerl->Perl_is_utf8_digit
-#undef  is_utf8_idfirst
-#define is_utf8_idfirst                pPerl->Perl_is_utf8_idfirst
-#undef  is_utf8_lower
-#define is_utf8_lower          pPerl->Perl_is_utf8_lower
-#undef  is_utf8_mark
-#define is_utf8_mark           pPerl->Perl_is_utf8_mark
-#undef  is_utf8_print
-#define is_utf8_print          pPerl->Perl_is_utf8_print
-#undef  is_utf8_space
-#define is_utf8_space          pPerl->Perl_is_utf8_space
-#undef  is_utf8_upper
-#define is_utf8_upper          pPerl->Perl_is_utf8_upper
 #undef  isa_lookup
 #define isa_lookup             pPerl->Perl_isa_lookup
-#undef  jmaybe
-#define jmaybe                 pPerl->Perl_jmaybe
-#undef  keyword
-#define keyword                        pPerl->Perl_keyword
-#undef  leave_scope
-#define leave_scope            pPerl->Perl_leave_scope
-#undef  lex_end
-#define lex_end                        pPerl->Perl_lex_end
-#undef  lex_start
-#define lex_start              pPerl->Perl_lex_start
-#undef  linklist
-#define linklist               pPerl->Perl_linklist
-#undef  list
-#define list                   pPerl->Perl_list
 #undef  list_assignment
 #define list_assignment                pPerl->Perl_list_assignment
-#undef  listkids
-#define listkids               pPerl->Perl_listkids
-#undef  localize
-#define localize               pPerl->Perl_localize
-#undef  looks_like_number
-#define looks_like_number      pPerl->Perl_looks_like_number
 #undef  lop
 #define lop                    pPerl->Perl_lop
-#undef  magic_clear_all_env
-#define magic_clear_all_env    pPerl->Perl_magic_clear_all_env
-#undef  magic_clearenv
-#define magic_clearenv         pPerl->Perl_magic_clearenv
-#undef  magic_clearpack
-#define magic_clearpack                pPerl->Perl_magic_clearpack
-#undef  magic_clearsig
-#define magic_clearsig         pPerl->Perl_magic_clearsig
-#undef  magic_dump
-#define magic_dump             pPerl->Perl_magic_dump
-#undef  magic_existspack
-#define magic_existspack       pPerl->Perl_magic_existspack
-#undef  magic_freeregexp
-#define magic_freeregexp       pPerl->Perl_magic_freeregexp
-#undef  magic_get
-#define magic_get              pPerl->Perl_magic_get
-#undef  magic_getarylen
-#define magic_getarylen                pPerl->Perl_magic_getarylen
-#undef  magic_getdefelem
-#define magic_getdefelem       pPerl->Perl_magic_getdefelem
-#undef  magic_getglob
-#define magic_getglob          pPerl->Perl_magic_getglob
-#undef  magic_getnkeys
-#define magic_getnkeys         pPerl->Perl_magic_getnkeys
-#undef  magic_getpack
-#define magic_getpack          pPerl->Perl_magic_getpack
-#undef  magic_getpos
-#define magic_getpos           pPerl->Perl_magic_getpos
-#undef  magic_getsig
-#define magic_getsig           pPerl->Perl_magic_getsig
-#undef  magic_getsubstr
-#define magic_getsubstr                pPerl->Perl_magic_getsubstr
-#undef  magic_gettaint
-#define magic_gettaint         pPerl->Perl_magic_gettaint
-#undef  magic_getuvar
-#define magic_getuvar          pPerl->Perl_magic_getuvar
-#undef  magic_getvec
-#define magic_getvec           pPerl->Perl_magic_getvec
-#undef  magic_killbackrefs
-#define magic_killbackrefs     pPerl->Perl_magic_killbackrefs
-#undef  magic_len
-#define magic_len              pPerl->Perl_magic_len
 #undef  magic_methcall
 #define magic_methcall         pPerl->Perl_magic_methcall
 #undef  magic_methcall
 #define magic_methcall         pPerl->Perl_magic_methcall
 #undef  magic_methpack
 #define magic_methpack         pPerl->Perl_magic_methpack
-#undef  magic_mutexfree
-#define magic_mutexfree                pPerl->Perl_magic_mutexfree
-#undef  magic_nextpack
-#define magic_nextpack         pPerl->Perl_magic_nextpack
-#undef  magic_regdata_cnt
-#define magic_regdata_cnt      pPerl->Perl_magic_regdata_cnt
-#undef  magic_regdatum_get
-#define magic_regdatum_get     pPerl->Perl_magic_regdatum_get
-#undef  magic_set
-#define magic_set              pPerl->Perl_magic_set
-#undef  magic_set_all_env
-#define magic_set_all_env      pPerl->Perl_magic_set_all_env
-#undef  magic_setamagic
-#define magic_setamagic                pPerl->Perl_magic_setamagic
-#undef  magic_setarylen
-#define magic_setarylen                pPerl->Perl_magic_setarylen
-#undef  magic_setbm
-#define magic_setbm            pPerl->Perl_magic_setbm
-#undef  magic_setcollxfrm
-#define magic_setcollxfrm      pPerl->Perl_magic_setcollxfrm
-#undef  magic_setdbline
-#define magic_setdbline                pPerl->Perl_magic_setdbline
-#undef  magic_setdefelem
-#define magic_setdefelem       pPerl->Perl_magic_setdefelem
-#undef  magic_setenv
-#define magic_setenv           pPerl->Perl_magic_setenv
-#undef  magic_setfm
-#define magic_setfm            pPerl->Perl_magic_setfm
-#undef  magic_setglob
-#define magic_setglob          pPerl->Perl_magic_setglob
-#undef  magic_setisa
-#define magic_setisa           pPerl->Perl_magic_setisa
-#undef  magic_setmglob
-#define magic_setmglob         pPerl->Perl_magic_setmglob
-#undef  magic_setnkeys
-#define magic_setnkeys         pPerl->Perl_magic_setnkeys
-#undef  magic_setpack
-#define magic_setpack          pPerl->Perl_magic_setpack
-#undef  magic_setpos
-#define magic_setpos           pPerl->Perl_magic_setpos
-#undef  magic_setsig
-#define magic_setsig           pPerl->Perl_magic_setsig
-#undef  magic_setsubstr
-#define magic_setsubstr                pPerl->Perl_magic_setsubstr
-#undef  magic_settaint
-#define magic_settaint         pPerl->Perl_magic_settaint
-#undef  magic_setuvar
-#define magic_setuvar          pPerl->Perl_magic_setuvar
-#undef  magic_setvec
-#define magic_setvec           pPerl->Perl_magic_setvec
-#undef  magic_sizepack
-#define magic_sizepack         pPerl->Perl_magic_sizepack
-#undef  magic_wipepack
-#define magic_wipepack         pPerl->Perl_magic_wipepack
-#undef  magicname
-#define magicname              pPerl->Perl_magicname
-#undef  malloced_size
-#define malloced_size          pPerl->Perl_malloced_size
-#undef  markstack_grow
-#define markstack_grow         pPerl->Perl_markstack_grow
-#undef  mem_collxfrm
-#define mem_collxfrm           pPerl->Perl_mem_collxfrm
-#undef  mess
-#define mess                   pPerl->Perl_mess
+#undef  main
+#define main                   pPerl->Perl_main
 #undef  mess_alloc
 #define mess_alloc             pPerl->Perl_mess_alloc
-#undef  mg_clear
-#define mg_clear               pPerl->Perl_mg_clear
-#undef  mg_copy
-#define mg_copy                        pPerl->Perl_mg_copy
-#undef  mg_find
-#define mg_find                        pPerl->Perl_mg_find
-#undef  mg_free
-#define mg_free                        pPerl->Perl_mg_free
-#undef  mg_get
-#define mg_get                 pPerl->Perl_mg_get
-#undef  mg_length
-#define mg_length              pPerl->Perl_mg_length
-#undef  mg_magical
-#define mg_magical             pPerl->Perl_mg_magical
-#undef  mg_set
-#define mg_set                 pPerl->Perl_mg_set
-#undef  mg_size
-#define mg_size                        pPerl->Perl_mg_size
 #undef  missingterm
 #define missingterm            pPerl->Perl_missingterm
-#undef  mod
-#define mod                    pPerl->Perl_mod
 #undef  modkids
 #define modkids                        pPerl->Perl_modkids
 #undef  more_he
 #define more_xpv               pPerl->Perl_more_xpv
 #undef  more_xrv
 #define more_xrv               pPerl->Perl_more_xrv
-#undef  moreswitches
-#define moreswitches           pPerl->Perl_moreswitches
 #undef  mul128
 #define mul128                 pPerl->Perl_mul128
-#undef  my
-#define my                     pPerl->Perl_my
-#undef  my_bcopy
-#define my_bcopy               pPerl->Perl_my_bcopy
-#undef  my_bzero
-#define my_bzero               pPerl->Perl_my_bzero
-#undef  my_chsize
-#define my_chsize              pPerl->Perl_my_chsize
-#undef  my_exit
-#define my_exit                        pPerl->Perl_my_exit
 #undef  my_exit_jump
 #define my_exit_jump           pPerl->Perl_my_exit_jump
-#undef  my_failure_exit
-#define my_failure_exit                pPerl->Perl_my_failure_exit
-#undef  my_fflush_all
-#define my_fflush_all          pPerl->Perl_my_fflush_all
-#undef  my_htonl
-#define my_htonl               pPerl->Perl_my_htonl
-#undef  my_lstat
-#define my_lstat               pPerl->Perl_my_lstat
-#undef  my_memcmp
-#define my_memcmp              pPerl->Perl_my_memcmp
-#undef  my_memset
-#define my_memset              pPerl->Perl_my_memset
-#undef  my_ntohl
-#define my_ntohl               pPerl->Perl_my_ntohl
-#undef  my_pclose
-#define my_pclose              pPerl->Perl_my_pclose
-#undef  my_popen
-#define my_popen               pPerl->Perl_my_popen
 #undef  my_safemalloc
 #define my_safemalloc          pPerl->Perl_my_safemalloc
-#undef  my_setenv
-#define my_setenv              pPerl->Perl_my_setenv
-#undef  my_stat
-#define my_stat                        pPerl->Perl_my_stat
-#undef  my_swap
-#define my_swap                        pPerl->Perl_my_swap
-#undef  my_unexec
-#define my_unexec              pPerl->Perl_my_unexec
-#undef  newANONHASH
-#define newANONHASH            pPerl->Perl_newANONHASH
-#undef  newANONLIST
-#define newANONLIST            pPerl->Perl_newANONLIST
-#undef  newANONSUB
-#define newANONSUB             pPerl->Perl_newANONSUB
-#undef  newASSIGNOP
-#define newASSIGNOP            pPerl->Perl_newASSIGNOP
-#undef  newAV
-#define newAV                  pPerl->Perl_newAV
-#undef  newAVREF
-#define newAVREF               pPerl->Perl_newAVREF
-#undef  newBINOP
-#define newBINOP               pPerl->Perl_newBINOP
-#undef  newCONDOP
-#define newCONDOP              pPerl->Perl_newCONDOP
-#undef  newCONSTSUB
-#define newCONSTSUB            pPerl->Perl_newCONSTSUB
-#undef  newCVREF
-#define newCVREF               pPerl->Perl_newCVREF
 #undef  newDEFSVOP
 #define newDEFSVOP             pPerl->Perl_newDEFSVOP
-#undef  newFORM
-#define newFORM                        pPerl->Perl_newFORM
-#undef  newFOROP
-#define newFOROP               pPerl->Perl_newFOROP
-#undef  newGVOP
-#define newGVOP                        pPerl->Perl_newGVOP
-#undef  newGVREF
-#define newGVREF               pPerl->Perl_newGVREF
-#undef  newGVgen
-#define newGVgen               pPerl->Perl_newGVgen
-#undef  newHV
-#define newHV                  pPerl->Perl_newHV
-#undef  newHVREF
-#define newHVREF               pPerl->Perl_newHVREF
-#undef  newHVhv
-#define newHVhv                        pPerl->Perl_newHVhv
-#undef  newIO
-#define newIO                  pPerl->Perl_newIO
-#undef  newLISTOP
-#define newLISTOP              pPerl->Perl_newLISTOP
-#undef  newLOGOP
-#define newLOGOP               pPerl->Perl_newLOGOP
-#undef  newLOOPEX
-#define newLOOPEX              pPerl->Perl_newLOOPEX
-#undef  newLOOPOP
-#define newLOOPOP              pPerl->Perl_newLOOPOP
-#undef  newNULLLIST
-#define newNULLLIST            pPerl->Perl_newNULLLIST
-#undef  newOP
-#define newOP                  pPerl->Perl_newOP
-#undef  newPMOP
-#define newPMOP                        pPerl->Perl_newPMOP
-#undef  newPROG
-#define newPROG                        pPerl->Perl_newPROG
-#undef  newPVOP
-#define newPVOP                        pPerl->Perl_newPVOP
-#undef  newRANGE
-#define newRANGE               pPerl->Perl_newRANGE
-#undef  newRV
-#define newRV                  pPerl->Perl_newRV
-#undef  newRV_noinc
-#define newRV_noinc            pPerl->Perl_newRV_noinc
-#undef  newSLICEOP
-#define newSLICEOP             pPerl->Perl_newSLICEOP
-#undef  newSTATEOP
-#define newSTATEOP             pPerl->Perl_newSTATEOP
-#undef  newSUB
-#define newSUB                 pPerl->Perl_newSUB
-#undef  newSV
-#define newSV                  pPerl->Perl_newSV
-#undef  newSVOP
-#define newSVOP                        pPerl->Perl_newSVOP
-#undef  newSVREF
-#define newSVREF               pPerl->Perl_newSVREF
-#undef  newSViv
-#define newSViv                        pPerl->Perl_newSViv
-#undef  newSVnv
-#define newSVnv                        pPerl->Perl_newSVnv
-#undef  newSVpv
-#define newSVpv                        pPerl->Perl_newSVpv
-#undef  newSVpvf
-#define newSVpvf               pPerl->Perl_newSVpvf
-#undef  newSVpvn
-#define newSVpvn               pPerl->Perl_newSVpvn
-#undef  newSVrv
-#define newSVrv                        pPerl->Perl_newSVrv
-#undef  newSVsv
-#define newSVsv                        pPerl->Perl_newSVsv
-#undef  newUNOP
-#define newUNOP                        pPerl->Perl_newUNOP
-#undef  newWHILEOP
-#define newWHILEOP             pPerl->Perl_newWHILEOP
-#undef  newXS
-#define newXS                  pPerl->Perl_newXS
 #undef  new_constant
 #define new_constant           pPerl->Perl_new_constant
 #undef  new_he
 #define new_he                 pPerl->Perl_new_he
 #undef  new_logop
 #define new_logop              pPerl->Perl_new_logop
-#undef  new_stackinfo
-#define new_stackinfo          pPerl->Perl_new_stackinfo
-#undef  new_struct_thread
-#define new_struct_thread      pPerl->Perl_new_struct_thread
 #undef  new_xiv
 #define new_xiv                        pPerl->Perl_new_xiv
 #undef  new_xnv
 #define new_xpv                        pPerl->Perl_new_xpv
 #undef  new_xrv
 #define new_xrv                        pPerl->Perl_new_xrv
-#undef  nextargv
-#define nextargv               pPerl->Perl_nextargv
 #undef  nextchar
 #define nextchar               pPerl->Perl_nextchar
-#undef  ninstr
-#define ninstr                 pPerl->Perl_ninstr
 #undef  no_bareword_allowed
 #define no_bareword_allowed    pPerl->Perl_no_bareword_allowed
 #undef  no_fh_allowed
 #define nuke_stacks            pPerl->Perl_nuke_stacks
 #undef  null
 #define null                   pPerl->Perl_null
-#undef  oopsAV
-#define oopsAV                 pPerl->Perl_oopsAV
-#undef  oopsCV
-#define oopsCV                 pPerl->Perl_oopsCV
-#undef  oopsHV
-#define oopsHV                 pPerl->Perl_oopsHV
-#undef  op_const_sv
-#define op_const_sv            pPerl->Perl_op_const_sv
-#undef  op_dump
-#define op_dump                        pPerl->Perl_op_dump
-#undef  op_free
-#define op_free                        pPerl->Perl_op_free
 #undef  open_script
 #define open_script            pPerl->Perl_open_script
-#undef  package
-#define package                        pPerl->Perl_package
-#undef  pad_alloc
-#define pad_alloc              pPerl->Perl_pad_alloc
-#undef  pad_allocmy
-#define pad_allocmy            pPerl->Perl_pad_allocmy
 #undef  pad_findlex
 #define pad_findlex            pPerl->Perl_pad_findlex
-#undef  pad_findmy
-#define pad_findmy             pPerl->Perl_pad_findmy
-#undef  pad_free
-#define pad_free               pPerl->Perl_pad_free
-#undef  pad_leavemy
-#define pad_leavemy            pPerl->Perl_pad_leavemy
-#undef  pad_reset
-#define pad_reset              pPerl->Perl_pad_reset
-#undef  pad_sv
-#define pad_sv                 pPerl->Perl_pad_sv
-#undef  pad_swipe
-#define pad_swipe              pPerl->Perl_pad_swipe
-#undef  peep
-#define peep                   pPerl->Perl_peep
+#undef  perl_alloc
+#define perl_alloc             pPerl->perl_alloc
 #undef  perl_atexit
 #define perl_atexit            pPerl->perl_atexit
 #undef  perl_call_argv
 #define perl_call_xbody                pPerl->perl_call_xbody
 #undef  perl_construct
 #define perl_construct         pPerl->perl_construct
+#undef  perl_construct
+#define perl_construct         pPerl->perl_construct
+#undef  perl_destruct
+#define perl_destruct          pPerl->perl_destruct
 #undef  perl_destruct
 #define perl_destruct          pPerl->perl_destruct
 #undef  perl_eval_pv
 #define perl_eval_sv           pPerl->perl_eval_sv
 #undef  perl_free
 #define perl_free              pPerl->perl_free
+#undef  perl_free
+#define perl_free              pPerl->perl_free
 #undef  perl_get_av
 #define perl_get_av            pPerl->perl_get_av
 #undef  perl_get_cv
 #define perl_new_numeric       pPerl->perl_new_numeric
 #undef  perl_parse
 #define perl_parse             pPerl->perl_parse
+#undef  perl_parse
+#define perl_parse             pPerl->perl_parse
 #undef  perl_parse_body
 #define perl_parse_body                pPerl->perl_parse_body
 #undef  perl_require_pv
 #define perl_require_pv                pPerl->perl_require_pv
 #undef  perl_run
 #define perl_run               pPerl->perl_run
+#undef  perl_run
+#define perl_run               pPerl->perl_run
 #undef  perl_run_body
 #define perl_run_body          pPerl->perl_run_body
 #undef  perl_set_numeric_local
 #define perl_set_numeric_local pPerl->perl_set_numeric_local
 #undef  perl_set_numeric_standard
 #define perl_set_numeric_standard      pPerl->perl_set_numeric_standard
-#undef  pidgone
-#define pidgone                        pPerl->Perl_pidgone
-#undef  pmflag
-#define pmflag                 pPerl->Perl_pmflag
-#undef  pmop_dump
-#define pmop_dump              pPerl->Perl_pmop_dump
-#undef  pmruntime
-#define pmruntime              pPerl->Perl_pmruntime
-#undef  pmtrans
-#define pmtrans                        pPerl->Perl_pmtrans
-#undef  pop_return
-#define pop_return             pPerl->Perl_pop_return
-#undef  pop_scope
-#define pop_scope              pPerl->Perl_pop_scope
-#undef  pp_aassign
-#define pp_aassign             pPerl->Perl_pp_aassign
-#undef  pp_abs
-#define pp_abs                 pPerl->Perl_pp_abs
-#undef  pp_accept
-#define pp_accept              pPerl->Perl_pp_accept
-#undef  pp_add
-#define pp_add                 pPerl->Perl_pp_add
-#undef  pp_aelem
-#define pp_aelem               pPerl->Perl_pp_aelem
-#undef  pp_aelemfast
-#define pp_aelemfast           pPerl->Perl_pp_aelemfast
-#undef  pp_alarm
-#define pp_alarm               pPerl->Perl_pp_alarm
-#undef  pp_and
-#define pp_and                 pPerl->Perl_pp_and
-#undef  pp_andassign
-#define pp_andassign           pPerl->Perl_pp_andassign
-#undef  pp_anoncode
-#define pp_anoncode            pPerl->Perl_pp_anoncode
-#undef  pp_anonhash
-#define pp_anonhash            pPerl->Perl_pp_anonhash
-#undef  pp_anonlist
-#define pp_anonlist            pPerl->Perl_pp_anonlist
-#undef  pp_aslice
-#define pp_aslice              pPerl->Perl_pp_aslice
-#undef  pp_atan2
-#define pp_atan2               pPerl->Perl_pp_atan2
-#undef  pp_av2arylen
-#define pp_av2arylen           pPerl->Perl_pp_av2arylen
-#undef  pp_backtick
-#define pp_backtick            pPerl->Perl_pp_backtick
-#undef  pp_bind
-#define pp_bind                        pPerl->Perl_pp_bind
-#undef  pp_binmode
-#define pp_binmode             pPerl->Perl_pp_binmode
-#undef  pp_bit_and
-#define pp_bit_and             pPerl->Perl_pp_bit_and
-#undef  pp_bit_or
-#define pp_bit_or              pPerl->Perl_pp_bit_or
-#undef  pp_bit_xor
-#define pp_bit_xor             pPerl->Perl_pp_bit_xor
-#undef  pp_bless
-#define pp_bless               pPerl->Perl_pp_bless
-#undef  pp_caller
-#define pp_caller              pPerl->Perl_pp_caller
-#undef  pp_chdir
-#define pp_chdir               pPerl->Perl_pp_chdir
-#undef  pp_chmod
-#define pp_chmod               pPerl->Perl_pp_chmod
-#undef  pp_chomp
-#define pp_chomp               pPerl->Perl_pp_chomp
-#undef  pp_chop
-#define pp_chop                        pPerl->Perl_pp_chop
-#undef  pp_chown
-#define pp_chown               pPerl->Perl_pp_chown
-#undef  pp_chr
-#define pp_chr                 pPerl->Perl_pp_chr
-#undef  pp_chroot
-#define pp_chroot              pPerl->Perl_pp_chroot
-#undef  pp_close
-#define pp_close               pPerl->Perl_pp_close
-#undef  pp_closedir
-#define pp_closedir            pPerl->Perl_pp_closedir
-#undef  pp_complement
-#define pp_complement          pPerl->Perl_pp_complement
-#undef  pp_concat
-#define pp_concat              pPerl->Perl_pp_concat
-#undef  pp_cond_expr
-#define pp_cond_expr           pPerl->Perl_pp_cond_expr
-#undef  pp_connect
-#define pp_connect             pPerl->Perl_pp_connect
-#undef  pp_const
-#define pp_const               pPerl->Perl_pp_const
-#undef  pp_cos
-#define pp_cos                 pPerl->Perl_pp_cos
-#undef  pp_crypt
-#define pp_crypt               pPerl->Perl_pp_crypt
-#undef  pp_dbmclose
-#define pp_dbmclose            pPerl->Perl_pp_dbmclose
-#undef  pp_dbmopen
-#define pp_dbmopen             pPerl->Perl_pp_dbmopen
-#undef  pp_dbstate
-#define pp_dbstate             pPerl->Perl_pp_dbstate
-#undef  pp_defined
-#define pp_defined             pPerl->Perl_pp_defined
-#undef  pp_delete
-#define pp_delete              pPerl->Perl_pp_delete
-#undef  pp_die
-#define pp_die                 pPerl->Perl_pp_die
-#undef  pp_divide
-#define pp_divide              pPerl->Perl_pp_divide
-#undef  pp_dofile
-#define pp_dofile              pPerl->Perl_pp_dofile
-#undef  pp_dump
-#define pp_dump                        pPerl->Perl_pp_dump
-#undef  pp_each
-#define pp_each                        pPerl->Perl_pp_each
-#undef  pp_egrent
-#define pp_egrent              pPerl->Perl_pp_egrent
-#undef  pp_ehostent
-#define pp_ehostent            pPerl->Perl_pp_ehostent
-#undef  pp_enetent
-#define pp_enetent             pPerl->Perl_pp_enetent
-#undef  pp_enter
-#define pp_enter               pPerl->Perl_pp_enter
-#undef  pp_entereval
-#define pp_entereval           pPerl->Perl_pp_entereval
-#undef  pp_enteriter
-#define pp_enteriter           pPerl->Perl_pp_enteriter
-#undef  pp_enterloop
-#define pp_enterloop           pPerl->Perl_pp_enterloop
-#undef  pp_entersub
-#define pp_entersub            pPerl->Perl_pp_entersub
-#undef  pp_entertry
-#define pp_entertry            pPerl->Perl_pp_entertry
-#undef  pp_enterwrite
-#define pp_enterwrite          pPerl->Perl_pp_enterwrite
-#undef  pp_eof
-#define pp_eof                 pPerl->Perl_pp_eof
-#undef  pp_eprotoent
-#define pp_eprotoent           pPerl->Perl_pp_eprotoent
-#undef  pp_epwent
-#define pp_epwent              pPerl->Perl_pp_epwent
-#undef  pp_eq
-#define pp_eq                  pPerl->Perl_pp_eq
-#undef  pp_eservent
-#define pp_eservent            pPerl->Perl_pp_eservent
-#undef  pp_exec
-#define pp_exec                        pPerl->Perl_pp_exec
-#undef  pp_exists
-#define pp_exists              pPerl->Perl_pp_exists
-#undef  pp_exit
-#define pp_exit                        pPerl->Perl_pp_exit
-#undef  pp_exp
-#define pp_exp                 pPerl->Perl_pp_exp
-#undef  pp_fcntl
-#define pp_fcntl               pPerl->Perl_pp_fcntl
-#undef  pp_fileno
-#define pp_fileno              pPerl->Perl_pp_fileno
-#undef  pp_flip
-#define pp_flip                        pPerl->Perl_pp_flip
-#undef  pp_flock
-#define pp_flock               pPerl->Perl_pp_flock
-#undef  pp_flop
-#define pp_flop                        pPerl->Perl_pp_flop
-#undef  pp_fork
-#define pp_fork                        pPerl->Perl_pp_fork
-#undef  pp_formline
-#define pp_formline            pPerl->Perl_pp_formline
-#undef  pp_ftatime
-#define pp_ftatime             pPerl->Perl_pp_ftatime
-#undef  pp_ftbinary
-#define pp_ftbinary            pPerl->Perl_pp_ftbinary
-#undef  pp_ftblk
-#define pp_ftblk               pPerl->Perl_pp_ftblk
-#undef  pp_ftchr
-#define pp_ftchr               pPerl->Perl_pp_ftchr
-#undef  pp_ftctime
-#define pp_ftctime             pPerl->Perl_pp_ftctime
-#undef  pp_ftdir
-#define pp_ftdir               pPerl->Perl_pp_ftdir
-#undef  pp_fteexec
-#define pp_fteexec             pPerl->Perl_pp_fteexec
-#undef  pp_fteowned
-#define pp_fteowned            pPerl->Perl_pp_fteowned
-#undef  pp_fteread
-#define pp_fteread             pPerl->Perl_pp_fteread
-#undef  pp_ftewrite
-#define pp_ftewrite            pPerl->Perl_pp_ftewrite
-#undef  pp_ftfile
-#define pp_ftfile              pPerl->Perl_pp_ftfile
-#undef  pp_ftis
-#define pp_ftis                        pPerl->Perl_pp_ftis
-#undef  pp_ftlink
-#define pp_ftlink              pPerl->Perl_pp_ftlink
-#undef  pp_ftmtime
-#define pp_ftmtime             pPerl->Perl_pp_ftmtime
-#undef  pp_ftpipe
-#define pp_ftpipe              pPerl->Perl_pp_ftpipe
-#undef  pp_ftrexec
-#define pp_ftrexec             pPerl->Perl_pp_ftrexec
-#undef  pp_ftrowned
-#define pp_ftrowned            pPerl->Perl_pp_ftrowned
-#undef  pp_ftrread
-#define pp_ftrread             pPerl->Perl_pp_ftrread
-#undef  pp_ftrwrite
-#define pp_ftrwrite            pPerl->Perl_pp_ftrwrite
-#undef  pp_ftsgid
-#define pp_ftsgid              pPerl->Perl_pp_ftsgid
-#undef  pp_ftsize
-#define pp_ftsize              pPerl->Perl_pp_ftsize
-#undef  pp_ftsock
-#define pp_ftsock              pPerl->Perl_pp_ftsock
-#undef  pp_ftsuid
-#define pp_ftsuid              pPerl->Perl_pp_ftsuid
-#undef  pp_ftsvtx
-#define pp_ftsvtx              pPerl->Perl_pp_ftsvtx
-#undef  pp_fttext
-#define pp_fttext              pPerl->Perl_pp_fttext
-#undef  pp_fttty
-#define pp_fttty               pPerl->Perl_pp_fttty
-#undef  pp_ftzero
-#define pp_ftzero              pPerl->Perl_pp_ftzero
-#undef  pp_ge
-#define pp_ge                  pPerl->Perl_pp_ge
-#undef  pp_gelem
-#define pp_gelem               pPerl->Perl_pp_gelem
-#undef  pp_getc
-#define pp_getc                        pPerl->Perl_pp_getc
-#undef  pp_getlogin
-#define pp_getlogin            pPerl->Perl_pp_getlogin
-#undef  pp_getpeername
-#define pp_getpeername         pPerl->Perl_pp_getpeername
-#undef  pp_getpgrp
-#define pp_getpgrp             pPerl->Perl_pp_getpgrp
-#undef  pp_getppid
-#define pp_getppid             pPerl->Perl_pp_getppid
-#undef  pp_getpriority
-#define pp_getpriority         pPerl->Perl_pp_getpriority
-#undef  pp_getsockname
-#define pp_getsockname         pPerl->Perl_pp_getsockname
-#undef  pp_ggrent
-#define pp_ggrent              pPerl->Perl_pp_ggrent
-#undef  pp_ggrgid
-#define pp_ggrgid              pPerl->Perl_pp_ggrgid
-#undef  pp_ggrnam
-#define pp_ggrnam              pPerl->Perl_pp_ggrnam
-#undef  pp_ghbyaddr
-#define pp_ghbyaddr            pPerl->Perl_pp_ghbyaddr
-#undef  pp_ghbyname
-#define pp_ghbyname            pPerl->Perl_pp_ghbyname
-#undef  pp_ghostent
-#define pp_ghostent            pPerl->Perl_pp_ghostent
-#undef  pp_glob
-#define pp_glob                        pPerl->Perl_pp_glob
-#undef  pp_gmtime
-#define pp_gmtime              pPerl->Perl_pp_gmtime
-#undef  pp_gnbyaddr
-#define pp_gnbyaddr            pPerl->Perl_pp_gnbyaddr
-#undef  pp_gnbyname
-#define pp_gnbyname            pPerl->Perl_pp_gnbyname
-#undef  pp_gnetent
-#define pp_gnetent             pPerl->Perl_pp_gnetent
-#undef  pp_goto
-#define pp_goto                        pPerl->Perl_pp_goto
-#undef  pp_gpbyname
-#define pp_gpbyname            pPerl->Perl_pp_gpbyname
-#undef  pp_gpbynumber
-#define pp_gpbynumber          pPerl->Perl_pp_gpbynumber
-#undef  pp_gprotoent
-#define pp_gprotoent           pPerl->Perl_pp_gprotoent
-#undef  pp_gpwent
-#define pp_gpwent              pPerl->Perl_pp_gpwent
-#undef  pp_gpwnam
-#define pp_gpwnam              pPerl->Perl_pp_gpwnam
-#undef  pp_gpwuid
-#define pp_gpwuid              pPerl->Perl_pp_gpwuid
-#undef  pp_grepstart
-#define pp_grepstart           pPerl->Perl_pp_grepstart
-#undef  pp_grepwhile
-#define pp_grepwhile           pPerl->Perl_pp_grepwhile
-#undef  pp_gsbyname
-#define pp_gsbyname            pPerl->Perl_pp_gsbyname
-#undef  pp_gsbyport
-#define pp_gsbyport            pPerl->Perl_pp_gsbyport
-#undef  pp_gservent
-#define pp_gservent            pPerl->Perl_pp_gservent
-#undef  pp_gsockopt
-#define pp_gsockopt            pPerl->Perl_pp_gsockopt
-#undef  pp_gt
-#define pp_gt                  pPerl->Perl_pp_gt
-#undef  pp_gv
-#define pp_gv                  pPerl->Perl_pp_gv
-#undef  pp_gvsv
-#define pp_gvsv                        pPerl->Perl_pp_gvsv
-#undef  pp_helem
-#define pp_helem               pPerl->Perl_pp_helem
-#undef  pp_hex
-#define pp_hex                 pPerl->Perl_pp_hex
-#undef  pp_hslice
-#define pp_hslice              pPerl->Perl_pp_hslice
-#undef  pp_i_add
-#define pp_i_add               pPerl->Perl_pp_i_add
-#undef  pp_i_divide
-#define pp_i_divide            pPerl->Perl_pp_i_divide
-#undef  pp_i_eq
-#define pp_i_eq                        pPerl->Perl_pp_i_eq
-#undef  pp_i_ge
-#define pp_i_ge                        pPerl->Perl_pp_i_ge
-#undef  pp_i_gt
-#define pp_i_gt                        pPerl->Perl_pp_i_gt
-#undef  pp_i_le
-#define pp_i_le                        pPerl->Perl_pp_i_le
-#undef  pp_i_lt
-#define pp_i_lt                        pPerl->Perl_pp_i_lt
-#undef  pp_i_modulo
-#define pp_i_modulo            pPerl->Perl_pp_i_modulo
-#undef  pp_i_multiply
-#define pp_i_multiply          pPerl->Perl_pp_i_multiply
-#undef  pp_i_ncmp
-#define pp_i_ncmp              pPerl->Perl_pp_i_ncmp
-#undef  pp_i_ne
-#define pp_i_ne                        pPerl->Perl_pp_i_ne
-#undef  pp_i_negate
-#define pp_i_negate            pPerl->Perl_pp_i_negate
-#undef  pp_i_subtract
-#define pp_i_subtract          pPerl->Perl_pp_i_subtract
-#undef  pp_index
-#define pp_index               pPerl->Perl_pp_index
-#undef  pp_int
-#define pp_int                 pPerl->Perl_pp_int
-#undef  pp_ioctl
-#define pp_ioctl               pPerl->Perl_pp_ioctl
-#undef  pp_iter
-#define pp_iter                        pPerl->Perl_pp_iter
-#undef  pp_join
-#define pp_join                        pPerl->Perl_pp_join
-#undef  pp_keys
-#define pp_keys                        pPerl->Perl_pp_keys
-#undef  pp_kill
-#define pp_kill                        pPerl->Perl_pp_kill
-#undef  pp_last
-#define pp_last                        pPerl->Perl_pp_last
-#undef  pp_lc
-#define pp_lc                  pPerl->Perl_pp_lc
-#undef  pp_lcfirst
-#define pp_lcfirst             pPerl->Perl_pp_lcfirst
-#undef  pp_le
-#define pp_le                  pPerl->Perl_pp_le
-#undef  pp_leave
-#define pp_leave               pPerl->Perl_pp_leave
-#undef  pp_leaveeval
-#define pp_leaveeval           pPerl->Perl_pp_leaveeval
-#undef  pp_leaveloop
-#define pp_leaveloop           pPerl->Perl_pp_leaveloop
-#undef  pp_leavesub
-#define pp_leavesub            pPerl->Perl_pp_leavesub
-#undef  pp_leavetry
-#define pp_leavetry            pPerl->Perl_pp_leavetry
-#undef  pp_leavewrite
-#define pp_leavewrite          pPerl->Perl_pp_leavewrite
-#undef  pp_left_shift
-#define pp_left_shift          pPerl->Perl_pp_left_shift
-#undef  pp_length
-#define pp_length              pPerl->Perl_pp_length
-#undef  pp_lineseq
-#define pp_lineseq             pPerl->Perl_pp_lineseq
-#undef  pp_link
-#define pp_link                        pPerl->Perl_pp_link
-#undef  pp_list
-#define pp_list                        pPerl->Perl_pp_list
-#undef  pp_listen
-#define pp_listen              pPerl->Perl_pp_listen
-#undef  pp_localtime
-#define pp_localtime           pPerl->Perl_pp_localtime
-#undef  pp_lock
-#define pp_lock                        pPerl->Perl_pp_lock
-#undef  pp_log
-#define pp_log                 pPerl->Perl_pp_log
-#undef  pp_lslice
-#define pp_lslice              pPerl->Perl_pp_lslice
-#undef  pp_lstat
-#define pp_lstat               pPerl->Perl_pp_lstat
-#undef  pp_lt
-#define pp_lt                  pPerl->Perl_pp_lt
-#undef  pp_mapstart
-#define pp_mapstart            pPerl->Perl_pp_mapstart
-#undef  pp_mapwhile
-#define pp_mapwhile            pPerl->Perl_pp_mapwhile
-#undef  pp_match
-#define pp_match               pPerl->Perl_pp_match
-#undef  pp_method
-#define pp_method              pPerl->Perl_pp_method
-#undef  pp_mkdir
-#define pp_mkdir               pPerl->Perl_pp_mkdir
-#undef  pp_modulo
-#define pp_modulo              pPerl->Perl_pp_modulo
-#undef  pp_msgctl
-#define pp_msgctl              pPerl->Perl_pp_msgctl
-#undef  pp_msgget
-#define pp_msgget              pPerl->Perl_pp_msgget
-#undef  pp_msgrcv
-#define pp_msgrcv              pPerl->Perl_pp_msgrcv
-#undef  pp_msgsnd
-#define pp_msgsnd              pPerl->Perl_pp_msgsnd
-#undef  pp_multiply
-#define pp_multiply            pPerl->Perl_pp_multiply
-#undef  pp_ncmp
-#define pp_ncmp                        pPerl->Perl_pp_ncmp
-#undef  pp_ne
-#define pp_ne                  pPerl->Perl_pp_ne
-#undef  pp_negate
-#define pp_negate              pPerl->Perl_pp_negate
-#undef  pp_next
-#define pp_next                        pPerl->Perl_pp_next
-#undef  pp_nextstate
-#define pp_nextstate           pPerl->Perl_pp_nextstate
-#undef  pp_not
-#define pp_not                 pPerl->Perl_pp_not
-#undef  pp_null
-#define pp_null                        pPerl->Perl_pp_null
-#undef  pp_oct
-#define pp_oct                 pPerl->Perl_pp_oct
-#undef  pp_open
-#define pp_open                        pPerl->Perl_pp_open
-#undef  pp_open_dir
-#define pp_open_dir            pPerl->Perl_pp_open_dir
-#undef  pp_or
-#define pp_or                  pPerl->Perl_pp_or
-#undef  pp_orassign
-#define pp_orassign            pPerl->Perl_pp_orassign
-#undef  pp_ord
-#define pp_ord                 pPerl->Perl_pp_ord
-#undef  pp_pack
-#define pp_pack                        pPerl->Perl_pp_pack
-#undef  pp_padany
-#define pp_padany              pPerl->Perl_pp_padany
-#undef  pp_padav
-#define pp_padav               pPerl->Perl_pp_padav
-#undef  pp_padhv
-#define pp_padhv               pPerl->Perl_pp_padhv
-#undef  pp_padsv
-#define pp_padsv               pPerl->Perl_pp_padsv
-#undef  pp_pipe_op
-#define pp_pipe_op             pPerl->Perl_pp_pipe_op
-#undef  pp_pop
-#define pp_pop                 pPerl->Perl_pp_pop
-#undef  pp_pos
-#define pp_pos                 pPerl->Perl_pp_pos
-#undef  pp_postdec
-#define pp_postdec             pPerl->Perl_pp_postdec
-#undef  pp_postinc
-#define pp_postinc             pPerl->Perl_pp_postinc
-#undef  pp_pow
-#define pp_pow                 pPerl->Perl_pp_pow
-#undef  pp_predec
-#define pp_predec              pPerl->Perl_pp_predec
-#undef  pp_preinc
-#define pp_preinc              pPerl->Perl_pp_preinc
-#undef  pp_print
-#define pp_print               pPerl->Perl_pp_print
-#undef  pp_prototype
-#define pp_prototype           pPerl->Perl_pp_prototype
-#undef  pp_prtf
-#define pp_prtf                        pPerl->Perl_pp_prtf
-#undef  pp_push
-#define pp_push                        pPerl->Perl_pp_push
-#undef  pp_pushmark
-#define pp_pushmark            pPerl->Perl_pp_pushmark
-#undef  pp_pushre
-#define pp_pushre              pPerl->Perl_pp_pushre
-#undef  pp_qr
-#define pp_qr                  pPerl->Perl_pp_qr
-#undef  pp_quotemeta
-#define pp_quotemeta           pPerl->Perl_pp_quotemeta
-#undef  pp_rand
-#define pp_rand                        pPerl->Perl_pp_rand
-#undef  pp_range
-#define pp_range               pPerl->Perl_pp_range
-#undef  pp_rcatline
-#define pp_rcatline            pPerl->Perl_pp_rcatline
-#undef  pp_read
-#define pp_read                        pPerl->Perl_pp_read
-#undef  pp_readdir
-#define pp_readdir             pPerl->Perl_pp_readdir
-#undef  pp_readline
-#define pp_readline            pPerl->Perl_pp_readline
-#undef  pp_readlink
-#define pp_readlink            pPerl->Perl_pp_readlink
-#undef  pp_recv
-#define pp_recv                        pPerl->Perl_pp_recv
-#undef  pp_redo
-#define pp_redo                        pPerl->Perl_pp_redo
-#undef  pp_ref
-#define pp_ref                 pPerl->Perl_pp_ref
-#undef  pp_refgen
-#define pp_refgen              pPerl->Perl_pp_refgen
-#undef  pp_regcmaybe
-#define pp_regcmaybe           pPerl->Perl_pp_regcmaybe
-#undef  pp_regcomp
-#define pp_regcomp             pPerl->Perl_pp_regcomp
-#undef  pp_regcreset
-#define pp_regcreset           pPerl->Perl_pp_regcreset
-#undef  pp_rename
-#define pp_rename              pPerl->Perl_pp_rename
-#undef  pp_repeat
-#define pp_repeat              pPerl->Perl_pp_repeat
-#undef  pp_require
-#define pp_require             pPerl->Perl_pp_require
-#undef  pp_reset
-#define pp_reset               pPerl->Perl_pp_reset
-#undef  pp_return
-#define pp_return              pPerl->Perl_pp_return
-#undef  pp_reverse
-#define pp_reverse             pPerl->Perl_pp_reverse
-#undef  pp_rewinddir
-#define pp_rewinddir           pPerl->Perl_pp_rewinddir
-#undef  pp_right_shift
-#define pp_right_shift         pPerl->Perl_pp_right_shift
-#undef  pp_rindex
-#define pp_rindex              pPerl->Perl_pp_rindex
-#undef  pp_rmdir
-#define pp_rmdir               pPerl->Perl_pp_rmdir
-#undef  pp_rv2av
-#define pp_rv2av               pPerl->Perl_pp_rv2av
-#undef  pp_rv2cv
-#define pp_rv2cv               pPerl->Perl_pp_rv2cv
-#undef  pp_rv2gv
-#define pp_rv2gv               pPerl->Perl_pp_rv2gv
-#undef  pp_rv2hv
-#define pp_rv2hv               pPerl->Perl_pp_rv2hv
-#undef  pp_rv2sv
-#define pp_rv2sv               pPerl->Perl_pp_rv2sv
-#undef  pp_sassign
-#define pp_sassign             pPerl->Perl_pp_sassign
-#undef  pp_scalar
-#define pp_scalar              pPerl->Perl_pp_scalar
-#undef  pp_schomp
-#define pp_schomp              pPerl->Perl_pp_schomp
-#undef  pp_schop
-#define pp_schop               pPerl->Perl_pp_schop
-#undef  pp_scmp
-#define pp_scmp                        pPerl->Perl_pp_scmp
-#undef  pp_scope
-#define pp_scope               pPerl->Perl_pp_scope
-#undef  pp_seek
-#define pp_seek                        pPerl->Perl_pp_seek
-#undef  pp_seekdir
-#define pp_seekdir             pPerl->Perl_pp_seekdir
-#undef  pp_select
-#define pp_select              pPerl->Perl_pp_select
-#undef  pp_semctl
-#define pp_semctl              pPerl->Perl_pp_semctl
-#undef  pp_semget
-#define pp_semget              pPerl->Perl_pp_semget
-#undef  pp_semop
-#define pp_semop               pPerl->Perl_pp_semop
-#undef  pp_send
-#define pp_send                        pPerl->Perl_pp_send
-#undef  pp_seq
-#define pp_seq                 pPerl->Perl_pp_seq
-#undef  pp_setpgrp
-#define pp_setpgrp             pPerl->Perl_pp_setpgrp
-#undef  pp_setpriority
-#define pp_setpriority         pPerl->Perl_pp_setpriority
-#undef  pp_sge
-#define pp_sge                 pPerl->Perl_pp_sge
-#undef  pp_sgrent
-#define pp_sgrent              pPerl->Perl_pp_sgrent
-#undef  pp_sgt
-#define pp_sgt                 pPerl->Perl_pp_sgt
-#undef  pp_shift
-#define pp_shift               pPerl->Perl_pp_shift
-#undef  pp_shmctl
-#define pp_shmctl              pPerl->Perl_pp_shmctl
-#undef  pp_shmget
-#define pp_shmget              pPerl->Perl_pp_shmget
-#undef  pp_shmread
-#define pp_shmread             pPerl->Perl_pp_shmread
-#undef  pp_shmwrite
-#define pp_shmwrite            pPerl->Perl_pp_shmwrite
-#undef  pp_shostent
-#define pp_shostent            pPerl->Perl_pp_shostent
-#undef  pp_shutdown
-#define pp_shutdown            pPerl->Perl_pp_shutdown
-#undef  pp_sin
-#define pp_sin                 pPerl->Perl_pp_sin
-#undef  pp_sle
-#define pp_sle                 pPerl->Perl_pp_sle
-#undef  pp_sleep
-#define pp_sleep               pPerl->Perl_pp_sleep
-#undef  pp_slt
-#define pp_slt                 pPerl->Perl_pp_slt
-#undef  pp_sne
-#define pp_sne                 pPerl->Perl_pp_sne
-#undef  pp_snetent
-#define pp_snetent             pPerl->Perl_pp_snetent
-#undef  pp_socket
-#define pp_socket              pPerl->Perl_pp_socket
-#undef  pp_sockpair
-#define pp_sockpair            pPerl->Perl_pp_sockpair
-#undef  pp_sort
-#define pp_sort                        pPerl->Perl_pp_sort
-#undef  pp_splice
-#define pp_splice              pPerl->Perl_pp_splice
-#undef  pp_split
-#define pp_split               pPerl->Perl_pp_split
-#undef  pp_sprintf
-#define pp_sprintf             pPerl->Perl_pp_sprintf
-#undef  pp_sprotoent
-#define pp_sprotoent           pPerl->Perl_pp_sprotoent
-#undef  pp_spwent
-#define pp_spwent              pPerl->Perl_pp_spwent
-#undef  pp_sqrt
-#define pp_sqrt                        pPerl->Perl_pp_sqrt
-#undef  pp_srand
-#define pp_srand               pPerl->Perl_pp_srand
-#undef  pp_srefgen
-#define pp_srefgen             pPerl->Perl_pp_srefgen
-#undef  pp_sselect
-#define pp_sselect             pPerl->Perl_pp_sselect
-#undef  pp_sservent
-#define pp_sservent            pPerl->Perl_pp_sservent
-#undef  pp_ssockopt
-#define pp_ssockopt            pPerl->Perl_pp_ssockopt
-#undef  pp_stat
-#define pp_stat                        pPerl->Perl_pp_stat
-#undef  pp_stringify
-#define pp_stringify           pPerl->Perl_pp_stringify
-#undef  pp_stub
-#define pp_stub                        pPerl->Perl_pp_stub
-#undef  pp_study
-#define pp_study               pPerl->Perl_pp_study
-#undef  pp_subst
-#define pp_subst               pPerl->Perl_pp_subst
-#undef  pp_substcont
-#define pp_substcont           pPerl->Perl_pp_substcont
-#undef  pp_substr
-#define pp_substr              pPerl->Perl_pp_substr
-#undef  pp_subtract
-#define pp_subtract            pPerl->Perl_pp_subtract
-#undef  pp_symlink
-#define pp_symlink             pPerl->Perl_pp_symlink
-#undef  pp_syscall
-#define pp_syscall             pPerl->Perl_pp_syscall
-#undef  pp_sysopen
-#define pp_sysopen             pPerl->Perl_pp_sysopen
-#undef  pp_sysread
-#define pp_sysread             pPerl->Perl_pp_sysread
-#undef  pp_sysseek
-#define pp_sysseek             pPerl->Perl_pp_sysseek
-#undef  pp_system
-#define pp_system              pPerl->Perl_pp_system
-#undef  pp_syswrite
-#define pp_syswrite            pPerl->Perl_pp_syswrite
-#undef  pp_tell
-#define pp_tell                        pPerl->Perl_pp_tell
-#undef  pp_telldir
-#define pp_telldir             pPerl->Perl_pp_telldir
-#undef  pp_threadsv
-#define pp_threadsv            pPerl->Perl_pp_threadsv
-#undef  pp_tie
-#define pp_tie                 pPerl->Perl_pp_tie
-#undef  pp_tied
-#define pp_tied                        pPerl->Perl_pp_tied
-#undef  pp_time
-#define pp_time                        pPerl->Perl_pp_time
-#undef  pp_tms
-#define pp_tms                 pPerl->Perl_pp_tms
-#undef  pp_trans
-#define pp_trans               pPerl->Perl_pp_trans
-#undef  pp_truncate
-#define pp_truncate            pPerl->Perl_pp_truncate
-#undef  pp_uc
-#define pp_uc                  pPerl->Perl_pp_uc
-#undef  pp_ucfirst
-#define pp_ucfirst             pPerl->Perl_pp_ucfirst
-#undef  pp_umask
-#define pp_umask               pPerl->Perl_pp_umask
-#undef  pp_undef
-#define pp_undef               pPerl->Perl_pp_undef
-#undef  pp_unlink
-#define pp_unlink              pPerl->Perl_pp_unlink
-#undef  pp_unpack
-#define pp_unpack              pPerl->Perl_pp_unpack
-#undef  pp_unshift
-#define pp_unshift             pPerl->Perl_pp_unshift
-#undef  pp_unstack
-#define pp_unstack             pPerl->Perl_pp_unstack
-#undef  pp_untie
-#define pp_untie               pPerl->Perl_pp_untie
-#undef  pp_utime
-#define pp_utime               pPerl->Perl_pp_utime
-#undef  pp_values
-#define pp_values              pPerl->Perl_pp_values
-#undef  pp_vec
-#define pp_vec                 pPerl->Perl_pp_vec
-#undef  pp_wait
-#define pp_wait                        pPerl->Perl_pp_wait
-#undef  pp_waitpid
-#define pp_waitpid             pPerl->Perl_pp_waitpid
-#undef  pp_wantarray
-#define pp_wantarray           pPerl->Perl_pp_wantarray
-#undef  pp_warn
-#define pp_warn                        pPerl->Perl_pp_warn
-#undef  pp_xor
-#define pp_xor                 pPerl->Perl_pp_xor
-#undef  pregcomp
-#define pregcomp               pPerl->Perl_pregcomp
-#undef  pregexec
-#define pregexec               pPerl->Perl_pregexec
-#undef  pregfree
-#define pregfree               pPerl->Perl_pregfree
-#undef  prepend_elem
-#define prepend_elem           pPerl->Perl_prepend_elem
-#undef  push_return
-#define push_return            pPerl->Perl_push_return
-#undef  push_scope
-#define push_scope             pPerl->Perl_push_scope
-#undef  pv_display
-#define pv_display             pPerl->Perl_pv_display
 #undef  qsortsv
 #define qsortsv                        pPerl->Perl_qsortsv
 #undef  re_croak2
 #define re_croak2              pPerl->Perl_re_croak2
-#undef  ref
-#define ref                    pPerl->Perl_ref
-#undef  refkids
-#define refkids                        pPerl->Perl_refkids
 #undef  refto
 #define refto                  pPerl->Perl_refto
 #undef  reg
 #define regcppush              pPerl->Perl_regcppush
 #undef  regcurly
 #define regcurly               pPerl->Perl_regcurly
-#undef  regdump
-#define regdump                        pPerl->Perl_regdump
-#undef  regexec_flags
-#define regexec_flags          pPerl->Perl_regexec_flags
 #undef  reghop
 #define reghop                 pPerl->Perl_reghop
 #undef  reghopmaybe
 #define reginclass             pPerl->Perl_reginclass
 #undef  reginclassutf8
 #define reginclassutf8         pPerl->Perl_reginclassutf8
-#undef  reginitcolors
-#define reginitcolors          pPerl->Perl_reginitcolors
 #undef  reginsert
 #define reginsert              pPerl->Perl_reginsert
 #undef  regmatch
 #define regmatch               pPerl->Perl_regmatch
-#undef  regnext
-#define regnext                        pPerl->Perl_regnext
 #undef  regoptail
 #define regoptail              pPerl->Perl_regoptail
 #undef  regpiece
 #define regpiece               pPerl->Perl_regpiece
 #undef  regpposixcc
 #define regpposixcc            pPerl->Perl_regpposixcc
-#undef  regprop
-#define regprop                        pPerl->Perl_regprop
 #undef  regrepeat
 #define regrepeat              pPerl->Perl_regrepeat
 #undef  regrepeat_hard
 #define reguni                 pPerl->Perl_reguni
 #undef  regwhite
 #define regwhite               pPerl->Perl_regwhite
-#undef  repeatcpy
-#define repeatcpy              pPerl->Perl_repeatcpy
 #undef  restore_expect
 #define restore_expect         pPerl->Perl_restore_expect
 #undef  restore_lex_expect
 #define restore_pos            pPerl->Perl_restore_pos
 #undef  restore_rsfp
 #define restore_rsfp           pPerl->Perl_restore_rsfp
-#undef  rninstr
-#define rninstr                        pPerl->Perl_rninstr
-#undef  rsignal
-#define rsignal                        pPerl->Perl_rsignal
-#undef  rsignal_restore
-#define rsignal_restore                pPerl->Perl_rsignal_restore
-#undef  rsignal_save
-#define rsignal_save           pPerl->Perl_rsignal_save
-#undef  rsignal_state
-#define rsignal_state          pPerl->Perl_rsignal_state
-#undef  runops_debug
-#define runops_debug           pPerl->Perl_runops_debug
-#undef  runops_debug
-#define runops_debug           pPerl->Perl_runops_debug
-#undef  runops_standard
-#define runops_standard                pPerl->Perl_runops_standard
-#undef  runops_standard
-#define runops_standard                pPerl->Perl_runops_standard
-#undef  rxres_free
-#define rxres_free             pPerl->Perl_rxres_free
-#undef  rxres_restore
-#define rxres_restore          pPerl->Perl_rxres_restore
-#undef  rxres_save
-#define rxres_save             pPerl->Perl_rxres_save
-#undef  safesyscalloc
-#define safesyscalloc          pPerl->Perl_safesyscalloc
-#undef  safesysfree
-#define safesysfree            pPerl->Perl_safesysfree
-#undef  safesysmalloc
-#define safesysmalloc          pPerl->Perl_safesysmalloc
-#undef  safesysrealloc
-#define safesysrealloc         pPerl->Perl_safesysrealloc
-#undef  safexcalloc
-#define safexcalloc            pPerl->Perl_safexcalloc
-#undef  safexfree
-#define safexfree              pPerl->Perl_safexfree
-#undef  safexmalloc
-#define safexmalloc            pPerl->Perl_safexmalloc
-#undef  safexrealloc
-#define safexrealloc           pPerl->Perl_safexrealloc
-#undef  same_dirent
-#define same_dirent            pPerl->Perl_same_dirent
-#undef  save_I16
-#define save_I16               pPerl->Perl_save_I16
-#undef  save_I32
-#define save_I32               pPerl->Perl_save_I32
-#undef  save_aelem
-#define save_aelem             pPerl->Perl_save_aelem
-#undef  save_alloc
-#define save_alloc             pPerl->Perl_save_alloc
-#undef  save_aptr
-#define save_aptr              pPerl->Perl_save_aptr
-#undef  save_ary
-#define save_ary               pPerl->Perl_save_ary
-#undef  save_clearsv
-#define save_clearsv           pPerl->Perl_save_clearsv
-#undef  save_delete
-#define save_delete            pPerl->Perl_save_delete
-#undef  save_destructor
-#define save_destructor                pPerl->Perl_save_destructor
-#undef  save_freeop
-#define save_freeop            pPerl->Perl_save_freeop
-#undef  save_freepv
-#define save_freepv            pPerl->Perl_save_freepv
-#undef  save_freesv
-#define save_freesv            pPerl->Perl_save_freesv
-#undef  save_generic_svref
-#define save_generic_svref     pPerl->Perl_save_generic_svref
-#undef  save_gp
-#define save_gp                        pPerl->Perl_save_gp
-#undef  save_hash
-#define save_hash              pPerl->Perl_save_hash
 #undef  save_hek
 #define save_hek               pPerl->Perl_save_hek
-#undef  save_helem
-#define save_helem             pPerl->Perl_save_helem
-#undef  save_hints
-#define save_hints             pPerl->Perl_save_hints
-#undef  save_hptr
-#define save_hptr              pPerl->Perl_save_hptr
-#undef  save_int
-#define save_int               pPerl->Perl_save_int
-#undef  save_item
-#define save_item              pPerl->Perl_save_item
-#undef  save_iv
-#define save_iv                        pPerl->Perl_save_iv
 #undef  save_lines
 #define save_lines             pPerl->Perl_save_lines
-#undef  save_list
-#define save_list              pPerl->Perl_save_list
-#undef  save_long
-#define save_long              pPerl->Perl_save_long
 #undef  save_magic
 #define save_magic             pPerl->Perl_save_magic
-#undef  save_nogv
-#define save_nogv              pPerl->Perl_save_nogv
-#undef  save_op
-#define save_op                        pPerl->Perl_save_op
-#undef  save_pptr
-#define save_pptr              pPerl->Perl_save_pptr
-#undef  save_re_context
-#define save_re_context                pPerl->Perl_save_re_context
-#undef  save_scalar
-#define save_scalar            pPerl->Perl_save_scalar
 #undef  save_scalar_at
 #define save_scalar_at         pPerl->Perl_save_scalar_at
-#undef  save_sptr
-#define save_sptr              pPerl->Perl_save_sptr
-#undef  save_svref
-#define save_svref             pPerl->Perl_save_svref
-#undef  save_threadsv
-#define save_threadsv          pPerl->Perl_save_threadsv
-#undef  savepv
-#define savepv                 pPerl->Perl_savepv
-#undef  savepvn
-#define savepvn                        pPerl->Perl_savepvn
-#undef  savestack_grow
-#define savestack_grow         pPerl->Perl_savestack_grow
-#undef  sawparens
-#define sawparens              pPerl->Perl_sawparens
-#undef  scalar
-#define scalar                 pPerl->Perl_scalar
 #undef  scalarboolean
 #define scalarboolean          pPerl->Perl_scalarboolean
-#undef  scalarkids
-#define scalarkids             pPerl->Perl_scalarkids
-#undef  scalarseq
-#define scalarseq              pPerl->Perl_scalarseq
-#undef  scalarvoid
-#define scalarvoid             pPerl->Perl_scalarvoid
-#undef  scan_bin
-#define scan_bin               pPerl->Perl_scan_bin
 #undef  scan_commit
 #define scan_commit            pPerl->Perl_scan_commit
 #undef  scan_const
 #define scan_formline          pPerl->Perl_scan_formline
 #undef  scan_heredoc
 #define scan_heredoc           pPerl->Perl_scan_heredoc
-#undef  scan_hex
-#define scan_hex               pPerl->Perl_scan_hex
 #undef  scan_ident
 #define scan_ident             pPerl->Perl_scan_ident
 #undef  scan_inputsymbol
 #define scan_inputsymbol       pPerl->Perl_scan_inputsymbol
-#undef  scan_num
-#define scan_num               pPerl->Perl_scan_num
-#undef  scan_oct
-#define scan_oct               pPerl->Perl_scan_oct
 #undef  scan_pat
 #define scan_pat               pPerl->Perl_scan_pat
 #undef  scan_str
 #define scan_trans             pPerl->Perl_scan_trans
 #undef  scan_word
 #define scan_word              pPerl->Perl_scan_word
-#undef  scope
-#define scope                  pPerl->Perl_scope
-#undef  screaminstr
-#define screaminstr            pPerl->Perl_screaminstr
 #undef  seed
 #define seed                   pPerl->Perl_seed
 #undef  set_csh
 #define set_csh                        pPerl->Perl_set_csh
-#undef  setdefout
-#define setdefout              pPerl->Perl_setdefout
-#undef  setenv_getix
-#define setenv_getix           pPerl->Perl_setenv_getix
-#undef  share_hek
-#define share_hek              pPerl->Perl_share_hek
-#undef  sharepvn
-#define sharepvn               pPerl->Perl_sharepvn
-#undef  sighandler
-#define sighandler             pPerl->Perl_sighandler
 #undef  simplify_sort
 #define simplify_sort          pPerl->Perl_simplify_sort
 #undef  skipspace
 #define skipspace              pPerl->Perl_skipspace
 #undef  sortcv
 #define sortcv                 pPerl->Perl_sortcv
-#undef  stack_grow
-#define stack_grow             pPerl->Perl_stack_grow
-#undef  start_subparse
-#define start_subparse         pPerl->Perl_start_subparse
 #undef  study_chunk
 #define study_chunk            pPerl->Perl_study_chunk
-#undef  sub_crush_depth
-#define sub_crush_depth                pPerl->Perl_sub_crush_depth
 #undef  sublex_done
 #define sublex_done            pPerl->Perl_sublex_done
 #undef  sublex_push
 #define sublex_push            pPerl->Perl_sublex_push
 #undef  sublex_start
 #define sublex_start           pPerl->Perl_sublex_start
-#undef  sv_2bool
-#define sv_2bool               pPerl->Perl_sv_2bool
-#undef  sv_2cv
-#define sv_2cv                 pPerl->Perl_sv_2cv
-#undef  sv_2io
-#define sv_2io                 pPerl->Perl_sv_2io
-#undef  sv_2iv
-#define sv_2iv                 pPerl->Perl_sv_2iv
-#undef  sv_2mortal
-#define sv_2mortal             pPerl->Perl_sv_2mortal
-#undef  sv_2nv
-#define sv_2nv                 pPerl->Perl_sv_2nv
-#undef  sv_2pv
-#define sv_2pv                 pPerl->Perl_sv_2pv
-#undef  sv_2pv_nolen
-#define sv_2pv_nolen           pPerl->Perl_sv_2pv_nolen
-#undef  sv_2uv
-#define sv_2uv                 pPerl->Perl_sv_2uv
-#undef  sv_add_arena
-#define sv_add_arena           pPerl->Perl_sv_add_arena
 #undef  sv_add_backref
 #define sv_add_backref         pPerl->Perl_sv_add_backref
-#undef  sv_backoff
-#define sv_backoff             pPerl->Perl_sv_backoff
-#undef  sv_bless
-#define sv_bless               pPerl->Perl_sv_bless
-#undef  sv_catpv
-#define sv_catpv               pPerl->Perl_sv_catpv
-#undef  sv_catpv_mg
-#define sv_catpv_mg            pPerl->Perl_sv_catpv_mg
-#undef  sv_catpvf
-#define sv_catpvf              pPerl->Perl_sv_catpvf
-#undef  sv_catpvf_mg
-#define sv_catpvf_mg           pPerl->Perl_sv_catpvf_mg
-#undef  sv_catpvn
-#define sv_catpvn              pPerl->Perl_sv_catpvn
-#undef  sv_catpvn_mg
-#define sv_catpvn_mg           pPerl->Perl_sv_catpvn_mg
-#undef  sv_catsv
-#define sv_catsv               pPerl->Perl_sv_catsv
-#undef  sv_catsv_mg
-#define sv_catsv_mg            pPerl->Perl_sv_catsv_mg
-#undef  sv_chop
-#define sv_chop                        pPerl->Perl_sv_chop
-#undef  sv_clean_all
-#define sv_clean_all           pPerl->Perl_sv_clean_all
-#undef  sv_clean_objs
-#define sv_clean_objs          pPerl->Perl_sv_clean_objs
-#undef  sv_clear
-#define sv_clear               pPerl->Perl_sv_clear
-#undef  sv_cmp
-#define sv_cmp                 pPerl->Perl_sv_cmp
-#undef  sv_cmp_locale
-#define sv_cmp_locale          pPerl->Perl_sv_cmp_locale
-#undef  sv_collxfrm
-#define sv_collxfrm            pPerl->Perl_sv_collxfrm
-#undef  sv_compile_2op
-#define sv_compile_2op         pPerl->Perl_sv_compile_2op
-#undef  sv_dec
-#define sv_dec                 pPerl->Perl_sv_dec
 #undef  sv_del_backref
 #define sv_del_backref         pPerl->Perl_sv_del_backref
-#undef  sv_derived_from
-#define sv_derived_from                pPerl->Perl_sv_derived_from
-#undef  sv_dump
-#define sv_dump                        pPerl->Perl_sv_dump
-#undef  sv_eq
-#define sv_eq                  pPerl->Perl_sv_eq
-#undef  sv_force_normal
-#define sv_force_normal                pPerl->Perl_sv_force_normal
-#undef  sv_free
-#define sv_free                        pPerl->Perl_sv_free
-#undef  sv_free_arenas
-#define sv_free_arenas         pPerl->Perl_sv_free_arenas
-#undef  sv_gets
-#define sv_gets                        pPerl->Perl_sv_gets
-#undef  sv_grow
-#define sv_grow                        pPerl->Perl_sv_grow
 #undef  sv_i_ncmp
 #define sv_i_ncmp              pPerl->Perl_sv_i_ncmp
-#undef  sv_inc
-#define sv_inc                 pPerl->Perl_sv_inc
-#undef  sv_insert
-#define sv_insert              pPerl->Perl_sv_insert
-#undef  sv_isa
-#define sv_isa                 pPerl->Perl_sv_isa
-#undef  sv_isobject
-#define sv_isobject            pPerl->Perl_sv_isobject
-#undef  sv_iv
-#define sv_iv                  pPerl->Perl_sv_iv
-#undef  sv_len
-#define sv_len                 pPerl->Perl_sv_len
-#undef  sv_len_utf8
-#define sv_len_utf8            pPerl->Perl_sv_len_utf8
-#undef  sv_magic
-#define sv_magic               pPerl->Perl_sv_magic
-#undef  sv_mortalcopy
-#define sv_mortalcopy          pPerl->Perl_sv_mortalcopy
 #undef  sv_ncmp
 #define sv_ncmp                        pPerl->Perl_sv_ncmp
-#undef  sv_newmortal
-#define sv_newmortal           pPerl->Perl_sv_newmortal
-#undef  sv_newref
-#define sv_newref              pPerl->Perl_sv_newref
-#undef  sv_nv
-#define sv_nv                  pPerl->Perl_sv_nv
-#undef  sv_peek
-#define sv_peek                        pPerl->Perl_sv_peek
-#undef  sv_pos_b2u
-#define sv_pos_b2u             pPerl->Perl_sv_pos_b2u
-#undef  sv_pos_u2b
-#define sv_pos_u2b             pPerl->Perl_sv_pos_u2b
-#undef  sv_pv
-#define sv_pv                  pPerl->Perl_sv_pv
-#undef  sv_pvn
-#define sv_pvn                 pPerl->Perl_sv_pvn
-#undef  sv_pvn_force
-#define sv_pvn_force           pPerl->Perl_sv_pvn_force
-#undef  sv_reftype
-#define sv_reftype             pPerl->Perl_sv_reftype
-#undef  sv_replace
-#define sv_replace             pPerl->Perl_sv_replace
-#undef  sv_report_used
-#define sv_report_used         pPerl->Perl_sv_report_used
-#undef  sv_reset
-#define sv_reset               pPerl->Perl_sv_reset
-#undef  sv_rvweaken
-#define sv_rvweaken            pPerl->Perl_sv_rvweaken
-#undef  sv_setiv
-#define sv_setiv               pPerl->Perl_sv_setiv
-#undef  sv_setiv_mg
-#define sv_setiv_mg            pPerl->Perl_sv_setiv_mg
-#undef  sv_setnv
-#define sv_setnv               pPerl->Perl_sv_setnv
-#undef  sv_setnv_mg
-#define sv_setnv_mg            pPerl->Perl_sv_setnv_mg
-#undef  sv_setpv
-#define sv_setpv               pPerl->Perl_sv_setpv
-#undef  sv_setpv_mg
-#define sv_setpv_mg            pPerl->Perl_sv_setpv_mg
-#undef  sv_setpvf
-#define sv_setpvf              pPerl->Perl_sv_setpvf
-#undef  sv_setpvf_mg
-#define sv_setpvf_mg           pPerl->Perl_sv_setpvf_mg
-#undef  sv_setpviv
-#define sv_setpviv             pPerl->Perl_sv_setpviv
-#undef  sv_setpviv_mg
-#define sv_setpviv_mg          pPerl->Perl_sv_setpviv_mg
-#undef  sv_setpvn
-#define sv_setpvn              pPerl->Perl_sv_setpvn
-#undef  sv_setpvn_mg
-#define sv_setpvn_mg           pPerl->Perl_sv_setpvn_mg
-#undef  sv_setref_iv
-#define sv_setref_iv           pPerl->Perl_sv_setref_iv
-#undef  sv_setref_nv
-#define sv_setref_nv           pPerl->Perl_sv_setref_nv
-#undef  sv_setref_pv
-#define sv_setref_pv           pPerl->Perl_sv_setref_pv
-#undef  sv_setref_pvn
-#define sv_setref_pvn          pPerl->Perl_sv_setref_pvn
-#undef  sv_setsv
-#define sv_setsv               pPerl->Perl_sv_setsv
-#undef  sv_setsv_mg
-#define sv_setsv_mg            pPerl->Perl_sv_setsv_mg
-#undef  sv_setuv
-#define sv_setuv               pPerl->Perl_sv_setuv
-#undef  sv_setuv_mg
-#define sv_setuv_mg            pPerl->Perl_sv_setuv_mg
-#undef  sv_taint
-#define sv_taint               pPerl->Perl_sv_taint
-#undef  sv_tainted
-#define sv_tainted             pPerl->Perl_sv_tainted
-#undef  sv_true
-#define sv_true                        pPerl->Perl_sv_true
 #undef  sv_unglob
 #define sv_unglob              pPerl->Perl_sv_unglob
-#undef  sv_unmagic
-#define sv_unmagic             pPerl->Perl_sv_unmagic
-#undef  sv_unref
-#define sv_unref               pPerl->Perl_sv_unref
-#undef  sv_untaint
-#define sv_untaint             pPerl->Perl_sv_untaint
-#undef  sv_upgrade
-#define sv_upgrade             pPerl->Perl_sv_upgrade
-#undef  sv_usepvn
-#define sv_usepvn              pPerl->Perl_sv_usepvn
-#undef  sv_usepvn_mg
-#define sv_usepvn_mg           pPerl->Perl_sv_usepvn_mg
-#undef  sv_uv
-#define sv_uv                  pPerl->Perl_sv_uv
-#undef  sv_vcatpvfn
-#define sv_vcatpvfn            pPerl->Perl_sv_vcatpvfn
-#undef  sv_vsetpvfn
-#define sv_vsetpvfn            pPerl->Perl_sv_vsetpvfn
-#undef  swash_fetch
-#define swash_fetch            pPerl->Perl_swash_fetch
-#undef  swash_init
-#define swash_init             pPerl->Perl_swash_init
-#undef  taint_env
-#define taint_env              pPerl->Perl_taint_env
-#undef  taint_proper
-#define taint_proper           pPerl->Perl_taint_proper
-#undef  tmps_grow
-#define tmps_grow              pPerl->Perl_tmps_grow
-#undef  to_uni_lower
-#define to_uni_lower           pPerl->Perl_to_uni_lower
-#undef  to_uni_lower_lc
-#define to_uni_lower_lc                pPerl->Perl_to_uni_lower_lc
-#undef  to_uni_title
-#define to_uni_title           pPerl->Perl_to_uni_title
-#undef  to_uni_title_lc
-#define to_uni_title_lc                pPerl->Perl_to_uni_title_lc
-#undef  to_uni_upper
-#define to_uni_upper           pPerl->Perl_to_uni_upper
-#undef  to_uni_upper_lc
-#define to_uni_upper_lc                pPerl->Perl_to_uni_upper_lc
-#undef  to_utf8_lower
-#define to_utf8_lower          pPerl->Perl_to_utf8_lower
-#undef  to_utf8_title
-#define to_utf8_title          pPerl->Perl_to_utf8_title
-#undef  to_utf8_upper
-#define to_utf8_upper          pPerl->Perl_to_utf8_upper
 #undef  tokeq
 #define tokeq                  pPerl->Perl_tokeq
 #undef  too_few_arguments
 #define too_many_arguments     pPerl->Perl_too_many_arguments
 #undef  uni
 #define uni                    pPerl->Perl_uni
-#undef  unlnk
-#define unlnk                  pPerl->Perl_unlnk
-#undef  unlock_condpair
-#define unlock_condpair                pPerl->Perl_unlock_condpair
-#undef  unshare_hek
-#define unshare_hek            pPerl->Perl_unshare_hek
-#undef  unsharepvn
-#define unsharepvn             pPerl->Perl_unsharepvn
 #undef  unwind_handler_stack
 #define unwind_handler_stack   pPerl->Perl_unwind_handler_stack
 #undef  usage
 #define usage                  pPerl->Perl_usage
-#undef  utf16_to_utf8
-#define utf16_to_utf8          pPerl->Perl_utf16_to_utf8
-#undef  utf16_to_utf8_reversed
-#define utf16_to_utf8_reversed pPerl->Perl_utf16_to_utf8_reversed
-#undef  utf8_distance
-#define utf8_distance          pPerl->Perl_utf8_distance
-#undef  utf8_hop
-#define utf8_hop               pPerl->Perl_utf8_hop
-#undef  utf8_to_uv
-#define utf8_to_uv             pPerl->Perl_utf8_to_uv
-#undef  utilize
-#define utilize                        pPerl->Perl_utilize
-#undef  uv_to_utf8
-#define uv_to_utf8             pPerl->Perl_uv_to_utf8
 #undef  validate_suid
 #define validate_suid          pPerl->Perl_validate_suid
 #undef  visit
 #define visit                  pPerl->Perl_visit
-#undef  vivify_defelem
-#define vivify_defelem         pPerl->Perl_vivify_defelem
-#undef  vivify_ref
-#define vivify_ref             pPerl->Perl_vivify_ref
-#undef  wait4pid
-#define wait4pid               pPerl->Perl_wait4pid
-#undef  warn
-#define warn                   pPerl->Perl_warn
-#undef  warner
-#define warner                 pPerl->Perl_warner
-#undef  watch
-#define watch                  pPerl->Perl_watch
-#undef  whichsig
-#define whichsig               pPerl->Perl_whichsig
 #undef  win32_textfilter
 #define win32_textfilter       pPerl->Perl_win32_textfilter
-#undef  yydestruct
-#define yydestruct             pPerl->Perl_yydestruct
-#undef  yydestruct
-#define yydestruct             pPerl->Perl_yydestruct
-#undef  yyerror
-#define yyerror                        pPerl->Perl_yyerror
-#undef  yylex
-#define yylex                  pPerl->Perl_yylex
-#undef  yyparse
-#define yyparse                        pPerl->Perl_yyparse
-#undef  yywarn
-#define yywarn                 pPerl->Perl_yywarn
 
 #endif /* __objXSUB_h__ */
diff --git a/op.c b/op.c
index 4993c2c..91e996e 100644 (file)
--- a/op.c
+++ b/op.c
@@ -16,6 +16,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_OP_C
 #include "perl.h"
 
 #ifdef PERL_OBJECT
@@ -36,8 +37,8 @@ static int     PL_OpSpace = 0;
                               var = (type *) Slab_Alloc(m,c*sizeof(type));    \
                            } while (0)
 
-static void *           
-Slab_Alloc(int m, size_t sz)
+STATIC void *           
+Slab_Alloc(pTHX_ int m, size_t sz)
 { 
  Newz(m,PL_OpPtr,SLAB_SIZE,char);
  PL_OpSpace = SLAB_SIZE - sz;
@@ -60,27 +61,8 @@ Slab_Alloc(int m, size_t sz)
 
 #define PAD_MAX 999999999
 
-static bool scalar_mod_type (OP *o, I32 type);
-#ifndef PERL_OBJECT
-static I32 list_assignment (OP *o);
-static void bad_type (I32 n, char *t, char *name, OP *kid);
-static OP *modkids (OP *o, I32 type);
-static OP *no_fh_allowed (OP *o);
-static void no_bareword_allowed (OP *o);
-static OP *scalarboolean (OP *o);
-static OP *too_few_arguments (OP *o, char* name);
-static OP *too_many_arguments (OP *o, char* name);
-static void null (OP* o);
-static PADOFFSET pad_findlex (char* name, PADOFFSET newoff, U32 seq,
-       CV* startcv, I32 cx_ix, I32 saweval, U32 flags);
-static OP *newDEFSVOP (void);
-static OP *new_logop (I32 type, I32 flags, OP **firstp, OP **otherp);
-static void simplify_sort (OP *o);
-static bool is_handle_constructor (OP *o, I32 argnum);
-#endif
-
 STATIC char*
-gv_ename(GV *gv)
+gv_ename(pTHX_ GV *gv)
 {
     STRLEN n_a;
     SV* tmpsv = sv_newmortal();
@@ -89,7 +71,7 @@ gv_ename(GV *gv)
 }
 
 STATIC OP *
-no_fh_allowed(OP *o)
+no_fh_allowed(pTHX_ OP *o)
 {
     yyerror(form("Missing comma after first argument to %s function",
                 PL_op_desc[o->op_type]));
@@ -97,28 +79,28 @@ no_fh_allowed(OP *o)
 }
 
 STATIC OP *
-too_few_arguments(OP *o, char *name)
+too_few_arguments(pTHX_ OP *o, char *name)
 {
     yyerror(form("Not enough arguments for %s", name));
     return o;
 }
 
 STATIC OP *
-too_many_arguments(OP *o, char *name)
+too_many_arguments(pTHX_ OP *o, char *name)
 {
     yyerror(form("Too many arguments for %s", name));
     return o;
 }
 
 STATIC void
-bad_type(I32 n, char *t, char *name, OP *kid)
+bad_type(pTHX_ I32 n, char *t, char *name, OP *kid)
 {
     yyerror(form("Type of arg %d to %s must be %s (not %s)",
                 (int)n, name, t, PL_op_desc[kid->op_type]));
 }
 
 STATIC void
-no_bareword_allowed(OP *o)
+no_bareword_allowed(pTHX_ OP *o)
 {
     warn("Bareword \"%s\" not allowed while \"strict subs\" in use",
          SvPV_nolen(cSVOPo->op_sv));
@@ -126,7 +108,7 @@ no_bareword_allowed(OP *o)
 }
 
 void
-assertref(OP *o)
+Perl_assertref(pTHX_ OP *o)
 {
     int type = o->op_type;
     if (type != OP_AELEM && type != OP_HELEM && type != OP_GELEM) {
@@ -149,7 +131,7 @@ assertref(OP *o)
 /* "register" allocation */
 
 PADOFFSET
-pad_allocmy(char *name)
+Perl_pad_allocmy(pTHX_ char *name)
 {
     dTHR;
     PADOFFSET off;
@@ -226,8 +208,8 @@ pad_allocmy(char *name)
 #define FINDLEX_NOSEARCH       1               /* don't search outer contexts */
 
 STATIC PADOFFSET
-pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval,
-           U32 flags)
+pad_findlex(pTHX_ char *name, PADOFFSET newoff, U32 seq, CV* startcv,
+           I32 cx_ix, I32 saweval, U32 flags)
 {
     dTHR;
     CV *cv;
@@ -367,7 +349,7 @@ pad_findlex(char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 s
 }
 
 PADOFFSET
-pad_findmy(char *name)
+Perl_pad_findmy(pTHX_ char *name)
 {
     dTHR;
     I32 off;
@@ -430,7 +412,7 @@ pad_findmy(char *name)
 }
 
 void
-pad_leavemy(I32 fill)
+Perl_pad_leavemy(pTHX_ I32 fill)
 {
     I32 off;
     SV **svp = AvARRAY(PL_comppad_name);
@@ -449,7 +431,7 @@ pad_leavemy(I32 fill)
 }
 
 PADOFFSET
-pad_alloc(I32 optype, U32 tmptype)
+Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype)
 {
     dTHR;
     SV *sv;
@@ -498,7 +480,7 @@ pad_alloc(I32 optype, U32 tmptype)
 }
 
 SV *
-pad_sv(PADOFFSET po)
+Perl_pad_sv(pTHX_ PADOFFSET po)
 {
     dTHR;
 #ifdef USE_THREADS
@@ -514,7 +496,7 @@ pad_sv(PADOFFSET po)
 }
 
 void
-pad_free(PADOFFSET po)
+Perl_pad_free(pTHX_ PADOFFSET po)
 {
     dTHR;
     if (!PL_curpad)
@@ -537,7 +519,7 @@ pad_free(PADOFFSET po)
 }
 
 void
-pad_swipe(PADOFFSET po)
+Perl_pad_swipe(pTHX_ PADOFFSET po)
 {
     dTHR;
     if (AvARRAY(PL_comppad) != PL_curpad)
@@ -565,7 +547,7 @@ pad_swipe(PADOFFSET po)
  * We avoid doing this until we can think of a Better Way.
  * GSAR 97-10-29 */
 void
-pad_reset(void)
+Perl_pad_reset(pTHX)
 {
 #ifdef USE_BROKEN_PAD_RESET
     dTHR;
@@ -594,7 +576,7 @@ pad_reset(void)
 #ifdef USE_THREADS
 /* find_threadsv is not reentrant */
 PADOFFSET
-find_threadsv(const char *name)
+Perl_find_threadsv(pTHX_ const char *name)
 {
     dTHR;
     char *p;
@@ -662,7 +644,7 @@ find_threadsv(const char *name)
 /* Destructor */
 
 void
-op_free(OP *o)
+Perl_op_free(pTHX_ OP *o)
 {
     register OP *kid, *nextkid;
 
@@ -748,7 +730,7 @@ op_free(OP *o)
 }
 
 STATIC void
-null(OP *o)
+null(pTHX_ OP *o)
 {
     if (o->op_type != OP_NULL && o->op_type != OP_THREADSV && o->op_targ > 0)
        pad_free(o->op_targ);
@@ -762,7 +744,7 @@ null(OP *o)
 #define LINKLIST(o) ((o)->op_next ? (o)->op_next : linklist((OP*)o))
 
 OP *
-linklist(OP *o)
+Perl_linklist(pTHX_ OP *o)
 {
     register OP *kid;
 
@@ -786,7 +768,7 @@ linklist(OP *o)
 }
 
 OP *
-scalarkids(OP *o)
+Perl_scalarkids(pTHX_ OP *o)
 {
     OP *kid;
     if (o && o->op_flags & OPf_KIDS) {
@@ -797,7 +779,7 @@ scalarkids(OP *o)
 }
 
 STATIC OP *
-scalarboolean(OP *o)
+scalarboolean(pTHX_ OP *o)
 {
     if (o->op_type == OP_SASSIGN && cBINOPo->op_first->op_type == OP_CONST) {
        dTHR;
@@ -814,7 +796,7 @@ scalarboolean(OP *o)
 }
 
 OP *
-scalar(OP *o)
+Perl_scalar(pTHX_ OP *o)
 {
     OP *kid;
 
@@ -881,7 +863,7 @@ scalar(OP *o)
 }
 
 OP *
-scalarvoid(OP *o)
+Perl_scalarvoid(pTHX_ OP *o)
 {
     OP *kid;
     char* useless = 0;
@@ -1081,7 +1063,7 @@ scalarvoid(OP *o)
 }
 
 OP *
-listkids(OP *o)
+Perl_listkids(pTHX_ OP *o)
 {
     OP *kid;
     if (o && o->op_flags & OPf_KIDS) {
@@ -1092,7 +1074,7 @@ listkids(OP *o)
 }
 
 OP *
-list(OP *o)
+Perl_list(pTHX_ OP *o)
 {
     OP *kid;
 
@@ -1159,7 +1141,7 @@ list(OP *o)
 }
 
 OP *
-scalarseq(OP *o)
+Perl_scalarseq(pTHX_ OP *o)
 {
     OP *kid;
 
@@ -1187,7 +1169,7 @@ scalarseq(OP *o)
 }
 
 STATIC OP *
-modkids(OP *o, I32 type)
+modkids(pTHX_ OP *o, I32 type)
 {
     OP *kid;
     if (o && o->op_flags & OPf_KIDS) {
@@ -1198,7 +1180,7 @@ modkids(OP *o, I32 type)
 }
 
 OP *
-mod(OP *o, I32 type)
+Perl_mod(pTHX_ OP *o, I32 type)
 {
     dTHR;
     OP *kid;
@@ -1408,8 +1390,8 @@ mod(OP *o, I32 type)
     return o;
 }
 
-static bool
-scalar_mod_type(OP *o, I32 type)
+STATIC bool
+scalar_mod_type(pTHX_ OP *o, I32 type)
 {
     switch (type) {
     case OP_SASSIGN:
@@ -1456,7 +1438,7 @@ scalar_mod_type(OP *o, I32 type)
 }
 
 STATIC bool
-is_handle_constructor(OP *o, I32 argnum)
+is_handle_constructor(pTHX_ OP *o, I32 argnum)
 {
     switch (o->op_type) {
     case OP_PIPE_OP:
@@ -1479,7 +1461,7 @@ is_handle_constructor(OP *o, I32 argnum)
 }
 
 OP *
-refkids(OP *o, I32 type)
+Perl_refkids(pTHX_ OP *o, I32 type)
 {
     OP *kid;
     if (o && o->op_flags & OPf_KIDS) {
@@ -1490,7 +1472,7 @@ refkids(OP *o, I32 type)
 }
 
 OP *
-ref(OP *o, I32 type)
+Perl_ref(pTHX_ OP *o, I32 type)
 {
     OP *kid;
 
@@ -1579,7 +1561,7 @@ ref(OP *o, I32 type)
 }
 
 OP *
-my(OP *o)
+Perl_my(pTHX_ OP *o)
 {
     OP *kid;
     I32 type;
@@ -1607,7 +1589,7 @@ my(OP *o)
 }
 
 OP *
-sawparens(OP *o)
+Perl_sawparens(pTHX_ OP *o)
 {
     if (o)
        o->op_flags |= OPf_PARENS;
@@ -1615,7 +1597,7 @@ sawparens(OP *o)
 }
 
 OP *
-bind_match(I32 type, OP *left, OP *right)
+Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
 {
     dTHR;
     OP *o;
@@ -1656,7 +1638,7 @@ bind_match(I32 type, OP *left, OP *right)
 }
 
 OP *
-invert(OP *o)
+Perl_invert(pTHX_ OP *o)
 {
     if (!o)
        return o;
@@ -1665,7 +1647,7 @@ invert(OP *o)
 }
 
 OP *
-scope(OP *o)
+Perl_scope(pTHX_ OP *o)
 {
     if (o) {
        if (o->op_flags & OPf_PARENS || PERLDB_NOOPT || PL_tainting) {
@@ -1692,7 +1674,7 @@ scope(OP *o)
 }
 
 void
-save_hints(void)
+Perl_save_hints(pTHX)
 {
     SAVEI32(PL_hints);
     SAVESPTR(GvHV(PL_hintgv));
@@ -1701,7 +1683,7 @@ save_hints(void)
 }
 
 int
-block_start(int full)
+Perl_block_start(pTHX_ int full)
 {
     dTHR;
     int retval = PL_savestack_ix;
@@ -1734,7 +1716,7 @@ block_start(int full)
 }
 
 OP*
-block_end(I32 floor, OP *seq)
+Perl_block_end(pTHX_ I32 floor, OP *seq)
 {
     dTHR;
     int needblockscope = PL_hints & HINT_BLOCK_SCOPE;
@@ -1750,7 +1732,7 @@ block_end(I32 floor, OP *seq)
 }
 
 STATIC OP *
-newDEFSVOP(void)
+newDEFSVOP(pTHX)
 {
 #ifdef USE_THREADS
     OP *o = newOP(OP_THREADSV, 0);
@@ -1762,7 +1744,7 @@ newDEFSVOP(void)
 }
 
 void
-newPROG(OP *o)
+Perl_newPROG(pTHX_ OP *o)
 {
     dTHR;
     if (PL_in_eval) {
@@ -1787,20 +1769,20 @@ newPROG(OP *o)
 
        /* Register with debugger */
        if (PERLDB_INTER) {
-           CV *cv = perl_get_cv("DB::postponed", FALSE);
+           CV *cv = get_cv("DB::postponed", FALSE);
            if (cv) {
                dSP;
                PUSHMARK(SP);
                XPUSHs((SV*)PL_compiling.cop_filegv);
                PUTBACK;
-               perl_call_sv((SV*)cv, G_DISCARD);
+               call_sv((SV*)cv, G_DISCARD);
            }
        }
     }
 }
 
 OP *
-localize(OP *o, I32 lex)
+Perl_localize(pTHX_ OP *o, I32 lex)
 {
     if (o->op_flags & OPf_PARENS)
        list(o);
@@ -1823,7 +1805,7 @@ localize(OP *o, I32 lex)
 }
 
 OP *
-jmaybe(OP *o)
+Perl_jmaybe(pTHX_ OP *o)
 {
     if (o->op_type == OP_LIST) {
        OP *o2;
@@ -1839,7 +1821,7 @@ jmaybe(OP *o)
 }
 
 OP *
-fold_constants(register OP *o)
+Perl_fold_constants(pTHX_ register OP *o)
 {
     dTHR;
     register OP *curop;
@@ -1946,7 +1928,7 @@ fold_constants(register OP *o)
 }
 
 OP *
-gen_constant_list(register OP *o)
+Perl_gen_constant_list(pTHX_ register OP *o)
 {
     dTHR;
     register OP *curop;
@@ -1974,7 +1956,7 @@ gen_constant_list(register OP *o)
 }
 
 OP *
-convert(I32 type, I32 flags, OP *o)
+Perl_convert(pTHX_ I32 type, I32 flags, OP *o)
 {
     OP *kid;
     OP *last = 0;
@@ -2008,7 +1990,7 @@ convert(I32 type, I32 flags, OP *o)
 /* List constructors */
 
 OP *
-append_elem(I32 type, OP *first, OP *last)
+Perl_append_elem(pTHX_ I32 type, OP *first, OP *last)
 {
     if (!first)
        return last;
@@ -2031,7 +2013,7 @@ append_elem(I32 type, OP *first, OP *last)
 }
 
 OP *
-append_list(I32 type, LISTOP *first, LISTOP *last)
+Perl_append_list(pTHX_ I32 type, LISTOP *first, LISTOP *last)
 {
     if (!first)
        return (OP*)last;
@@ -2059,7 +2041,7 @@ append_list(I32 type, LISTOP *first, LISTOP *last)
 }
 
 OP *
-prepend_elem(I32 type, OP *first, OP *last)
+Perl_prepend_elem(pTHX_ I32 type, OP *first, OP *last)
 {
     if (!first)
        return last;
@@ -2090,13 +2072,13 @@ prepend_elem(I32 type, OP *first, OP *last)
 /* Constructors */
 
 OP *
-newNULLLIST(void)
+Perl_newNULLLIST(pTHX)
 {
     return newOP(OP_STUB, 0);
 }
 
 OP *
-force_list(OP *o)
+Perl_force_list(pTHX_ OP *o)
 {
     if (!o || o->op_type != OP_LIST)
        o = newLISTOP(OP_LIST, 0, o, Nullop);
@@ -2105,7 +2087,7 @@ force_list(OP *o)
 }
 
 OP *
-newLISTOP(I32 type, I32 flags, OP *first, OP *last)
+Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
 {
     LISTOP *listop;
 
@@ -2140,7 +2122,7 @@ newLISTOP(I32 type, I32 flags, OP *first, OP *last)
 }
 
 OP *
-newOP(I32 type, I32 flags)
+Perl_newOP(pTHX_ I32 type, I32 flags)
 {
     OP *o;
     NewOp(1101, o, 1, OP);
@@ -2158,7 +2140,7 @@ newOP(I32 type, I32 flags)
 }
 
 OP *
-newUNOP(I32 type, I32 flags, OP *first)
+Perl_newUNOP(pTHX_ I32 type, I32 flags, OP *first)
 {
     UNOP *unop;
 
@@ -2181,7 +2163,7 @@ newUNOP(I32 type, I32 flags, OP *first)
 }
 
 OP *
-newBINOP(I32 type, I32 flags, OP *first, OP *last)
+Perl_newBINOP(pTHX_ I32 type, I32 flags, OP *first, OP *last)
 {
     BINOP *binop;
     NewOp(1101, binop, 1, BINOP);
@@ -2225,7 +2207,7 @@ utf8compare(const void *a, const void *b)
 }
 
 OP *
-pmtrans(OP *o, OP *expr, OP *repl)
+Perl_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
 {
     SV *tstr = ((SVOP*)expr)->op_sv;
     SV *rstr = ((SVOP*)repl)->op_sv;
@@ -2476,7 +2458,7 @@ pmtrans(OP *o, OP *expr, OP *repl)
 }
 
 OP *
-newPMOP(I32 type, I32 flags)
+Perl_newPMOP(pTHX_ I32 type, I32 flags)
 {
     dTHR;
     PMOP *pmop;
@@ -2503,7 +2485,7 @@ newPMOP(I32 type, I32 flags)
 }
 
 OP *
-pmruntime(OP *o, OP *expr, OP *repl)
+Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl)
 {
     dTHR;
     PMOP *pm;
@@ -2653,7 +2635,7 @@ pmruntime(OP *o, OP *expr, OP *repl)
 }
 
 OP *
-newSVOP(I32 type, I32 flags, SV *sv)
+Perl_newSVOP(pTHX_ I32 type, I32 flags, SV *sv)
 {
     SVOP *svop;
     NewOp(1101, svop, 1, SVOP);
@@ -2670,7 +2652,7 @@ newSVOP(I32 type, I32 flags, SV *sv)
 }
 
 OP *
-newGVOP(I32 type, I32 flags, GV *gv)
+Perl_newGVOP(pTHX_ I32 type, I32 flags, GV *gv)
 {
     dTHR;
     GVOP *gvop;
@@ -2688,7 +2670,7 @@ newGVOP(I32 type, I32 flags, GV *gv)
 }
 
 OP *
-newPVOP(I32 type, I32 flags, char *pv)
+Perl_newPVOP(pTHX_ I32 type, I32 flags, char *pv)
 {
     PVOP *pvop;
     NewOp(1101, pvop, 1, PVOP);
@@ -2705,7 +2687,7 @@ newPVOP(I32 type, I32 flags, char *pv)
 }
 
 void
-package(OP *o)
+Perl_package(pTHX_ OP *o)
 {
     dTHR;
     SV *sv;
@@ -2731,7 +2713,7 @@ package(OP *o)
 }
 
 void
-utilize(int aver, I32 floor, OP *version, OP *id, OP *arg)
+Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *id, OP *arg)
 {
     OP *pack;
     OP *meth;
@@ -2821,7 +2803,7 @@ utilize(int aver, I32 floor, OP *version, OP *id, OP *arg)
 }
 
 OP *
-dofile(OP *term)
+Perl_dofile(pTHX_ OP *term)
 {
     OP *doop;
     GV *gv;
@@ -2844,7 +2826,7 @@ dofile(OP *term)
 }
 
 OP *
-newSLICEOP(I32 flags, OP *subscript, OP *listval)
+Perl_newSLICEOP(pTHX_ I32 flags, OP *subscript, OP *listval)
 {
     return newBINOP(OP_LSLICE, flags,
            list(force_list(subscript)),
@@ -2852,7 +2834,7 @@ newSLICEOP(I32 flags, OP *subscript, OP *listval)
 }
 
 STATIC I32
-list_assignment(register OP *o)
+list_assignment(pTHX_ register OP *o)
 {
     if (!o)
        return TRUE;
@@ -2886,7 +2868,7 @@ list_assignment(register OP *o)
 }
 
 OP *
-newASSIGNOP(I32 flags, OP *left, I32 optype, OP *right)
+Perl_newASSIGNOP(pTHX_ I32 flags, OP *left, I32 optype, OP *right)
 {
     OP *o;
 
@@ -3023,7 +3005,7 @@ newASSIGNOP(I32 flags, OP *left, I32 optype, OP *right)
 }
 
 OP *
-newSTATEOP(I32 flags, char *label, OP *o)
+Perl_newSTATEOP(pTHX_ I32 flags, char *label, OP *o)
 {
     dTHR;
     U32 seq = intro_my();
@@ -3082,7 +3064,7 @@ newSTATEOP(I32 flags, char *label, OP *o)
 
 /* "Introduce" my variables to visible status. */
 U32
-intro_my(void)
+Perl_intro_my(pTHX)
 {
     SV **svp;
     SV *sv;
@@ -3104,13 +3086,13 @@ intro_my(void)
 }
 
 OP *
-newLOGOP(I32 type, I32 flags, OP *first, OP *other)
+Perl_newLOGOP(pTHX_ I32 type, I32 flags, OP *first, OP *other)
 {
     return new_logop(type, flags, &first, &other);
 }
 
 STATIC OP *
-new_logop(I32 type, I32 flags, OP** firstp, OP** otherp)
+new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp)
 {
     dTHR;
     LOGOP *logop;
@@ -3217,7 +3199,7 @@ new_logop(I32 type, I32 flags, OP** firstp, OP** otherp)
 }
 
 OP *
-newCONDOP(I32 flags, OP *first, OP *trueop, OP *falseop)
+Perl_newCONDOP(pTHX_ I32 flags, OP *first, OP *trueop, OP *falseop)
 {
     dTHR;
     CONDOP *condop;
@@ -3270,7 +3252,7 @@ newCONDOP(I32 flags, OP *first, OP *trueop, OP *falseop)
 }
 
 OP *
-newRANGE(I32 flags, OP *left, OP *right)
+Perl_newRANGE(pTHX_ I32 flags, OP *left, OP *right)
 {
     dTHR;
     CONDOP *condop;
@@ -3315,7 +3297,7 @@ newRANGE(I32 flags, OP *left, OP *right)
 }
 
 OP *
-newLOOPOP(I32 flags, I32 debuggable, OP *expr, OP *block)
+Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP *expr, OP *block)
 {
     dTHR;
     OP* listop;
@@ -3370,7 +3352,7 @@ newLOOPOP(I32 flags, I32 debuggable, OP *expr, OP *block)
 }
 
 OP *
-newWHILEOP(I32 flags, I32 debuggable, LOOP *loop, I32 whileline, OP *expr, OP *block, OP *cont)
+Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop, I32 whileline, OP *expr, OP *block, OP *cont)
 {
     dTHR;
     OP *redo;
@@ -3462,7 +3444,7 @@ newWHILEOP(I32 flags, I32 debuggable, LOOP *loop, I32 whileline, OP *expr, OP *b
 }
 
 OP *
-newFOROP(I32 flags,char *label,line_t forline,OP *sv,OP *expr,OP *block,OP *cont)
+Perl_newFOROP(pTHX_ I32 flags,char *label,line_t forline,OP *sv,OP *expr,OP *block,OP *cont)
 {
     LOOP *loop;
     LOOP *tmp;
@@ -3551,7 +3533,7 @@ newFOROP(I32 flags,char *label,line_t forline,OP *sv,OP *expr,OP *block,OP *cont
 }
 
 OP*
-newLOOPEX(I32 type, OP *label)
+Perl_newLOOPEX(pTHX_ I32 type, OP *label)
 {
     dTHR;
     OP *o;
@@ -3578,7 +3560,7 @@ newLOOPEX(I32 type, OP *label)
 }
 
 void
-cv_undef(CV *cv)
+Perl_cv_undef(pTHX_ CV *cv)
 {
     dTHR;
 #ifdef USE_THREADS
@@ -3682,7 +3664,7 @@ cv_dump(CV *cv)
 #endif /* DEBUG_CLOSURES */
 
 STATIC CV *
-cv_clone2(CV *proto, CV *outside)
+cv_clone2(pTHX_ CV *proto, CV *outside)
 {
     dTHR;
     AV* av;
@@ -3814,7 +3796,7 @@ cv_clone2(CV *proto, CV *outside)
 }
 
 CV *
-cv_clone(CV *proto)
+Perl_cv_clone(pTHX_ CV *proto)
 {
     CV *cv;
     MUTEX_LOCK(&PL_cred_mutex);                /* XXX create separate mutex */
@@ -3824,7 +3806,7 @@ cv_clone(CV *proto)
 }
 
 void
-cv_ckproto(CV *cv, GV *gv, char *p)
+Perl_cv_ckproto(pTHX_ CV *cv, GV *gv, char *p)
 {
     if ((!p != !SvPOK(cv)) || (p && strNE(p, SvPVX(cv)))) {
        SV* msg = sv_newmortal();
@@ -3847,7 +3829,7 @@ cv_ckproto(CV *cv, GV *gv, char *p)
 }
 
 SV *
-cv_const_sv(CV *cv)
+Perl_cv_const_sv(pTHX_ CV *cv)
 {
     if (!cv || !SvPOK(cv) || SvCUR(cv))
        return Nullsv;
@@ -3855,7 +3837,7 @@ cv_const_sv(CV *cv)
 }
 
 SV *
-op_const_sv(OP *o, CV *cv)
+Perl_op_const_sv(pTHX_ OP *o, CV *cv)
 {
     SV *sv = Nullsv;
 
@@ -3893,7 +3875,7 @@ op_const_sv(OP *o, CV *cv)
 }
 
 CV *
-newSUB(I32 floor, OP *o, OP *proto, OP *block)
+Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block)
 {
     dTHR;
     STRLEN n_a;
@@ -4085,7 +4067,7 @@ newSUB(I32 floor, OP *o, OP *proto, OP *block)
                PUSHMARK(SP);
                XPUSHs(tmpstr);
                PUTBACK;
-               perl_call_sv((SV*)cv, G_DISCARD);
+               call_sv((SV*)cv, G_DISCARD);
            }
        }
 
@@ -4135,7 +4117,7 @@ newSUB(I32 floor, OP *o, OP *proto, OP *block)
 
 /* XXX unsafe for threads if eval_owner isn't held */
 void
-newCONSTSUB(HV *stash, char *name, SV *sv)
+Perl_newCONSTSUB(pTHX_ HV *stash, char *name, SV *sv)
 {
     dTHR;
     U32 oldhints = PL_hints;
@@ -4162,7 +4144,7 @@ newCONSTSUB(HV *stash, char *name, SV *sv)
 }
 
 CV *
-newXS(char *name, void (*subaddr) (CV * _CPERLproto), char *filename)
+Perl_newXS(pTHX_ char *name, XSUBADDR_t subaddr, char *filename)
 {
     dTHR;
     GV *gv = gv_fetchpv(name ? name : "__ANON__", GV_ADDMULTI, SVt_PVCV);
@@ -4243,7 +4225,7 @@ newXS(char *name, void (*subaddr) (CV * _CPERLproto), char *filename)
 }
 
 void
-newFORM(I32 floor, OP *o, OP *block)
+Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block)
 {
     dTHR;
     register CV *cv;
@@ -4288,28 +4270,28 @@ newFORM(I32 floor, OP *o, OP *block)
 }
 
 OP *
-newANONLIST(OP *o)
+Perl_newANONLIST(pTHX_ OP *o)
 {
     return newUNOP(OP_REFGEN, 0,
        mod(list(convert(OP_ANONLIST, 0, o)), OP_REFGEN));
 }
 
 OP *
-newANONHASH(OP *o)
+Perl_newANONHASH(pTHX_ OP *o)
 {
     return newUNOP(OP_REFGEN, 0,
        mod(list(convert(OP_ANONHASH, 0, o)), OP_REFGEN));
 }
 
 OP *
-newANONSUB(I32 floor, OP *proto, OP *block)
+Perl_newANONSUB(pTHX_ I32 floor, OP *proto, OP *block)
 {
     return newUNOP(OP_REFGEN, 0,
        newSVOP(OP_ANONCODE, 0, (SV*)newSUB(floor, 0, proto, block)));
 }
 
 OP *
-oopsAV(OP *o)
+Perl_oopsAV(pTHX_ OP *o)
 {
     switch (o->op_type) {
     case OP_PADSV:
@@ -4331,7 +4313,7 @@ oopsAV(OP *o)
 }
 
 OP *
-oopsHV(OP *o)
+Perl_oopsHV(pTHX_ OP *o)
 {
     switch (o->op_type) {
     case OP_PADSV:
@@ -4355,7 +4337,7 @@ oopsHV(OP *o)
 }
 
 OP *
-newAVREF(OP *o)
+Perl_newAVREF(pTHX_ OP *o)
 {
     if (o->op_type == OP_PADANY) {
        o->op_type = OP_PADAV;
@@ -4366,7 +4348,7 @@ newAVREF(OP *o)
 }
 
 OP *
-newGVREF(I32 type, OP *o)
+Perl_newGVREF(pTHX_ I32 type, OP *o)
 {
     if (type == OP_MAPSTART || type == OP_GREPSTART || type == OP_SORT)
        return newUNOP(OP_NULL, 0, o);
@@ -4374,7 +4356,7 @@ newGVREF(I32 type, OP *o)
 }
 
 OP *
-newHVREF(OP *o)
+Perl_newHVREF(pTHX_ OP *o)
 {
     if (o->op_type == OP_PADANY) {
        o->op_type = OP_PADHV;
@@ -4385,7 +4367,7 @@ newHVREF(OP *o)
 }
 
 OP *
-oopsCV(OP *o)
+Perl_oopsCV(pTHX_ OP *o)
 {
     croak("NOT IMPL LINE %d",__LINE__);
     /* STUB */
@@ -4393,13 +4375,13 @@ oopsCV(OP *o)
 }
 
 OP *
-newCVREF(I32 flags, OP *o)
+Perl_newCVREF(pTHX_ I32 flags, OP *o)
 {
     return newUNOP(OP_RV2CV, flags, scalar(o));
 }
 
 OP *
-newSVREF(OP *o)
+Perl_newSVREF(pTHX_ OP *o)
 {
     if (o->op_type == OP_PADANY) {
        o->op_type = OP_PADSV;
@@ -5261,7 +5243,7 @@ ck_sort(OP *o)
 }
 
 STATIC void
-simplify_sort(OP *o)
+simplify_sort(pTHX_ OP *o)
 {
     dTHR;
     register OP *kid = cLISTOPo->op_first->op_sibling; /* get past pushmark */
@@ -5562,7 +5544,7 @@ ck_trunc(OP *o)
 /* A peephole optimizer.  We visit the ops in the order they're to execute. */
 
 void
-peep(register OP *o)
+Perl_peep(pTHX_ register OP *o)
 {
     dTHR;
     register OP* oldop = 0;
index 1dbd3de..c4bd9ae 100644 (file)
--- a/opcode.h
+++ b/opcode.h
@@ -1,7 +1,7 @@
-#define pp_i_preinc pp_preinc
-#define pp_i_predec pp_predec
-#define pp_i_postinc pp_postinc
-#define pp_i_postdec pp_postdec
+#define Perl_pp_i_preinc Perl_pp_preinc
+#define Perl_pp_i_predec Perl_pp_predec
+#define Perl_pp_i_postinc Perl_pp_postinc
+#define Perl_pp_i_postdec Perl_pp_postdec
 
 typedef enum {
        OP_NULL,        /* 0 */
@@ -1072,8 +1072,8 @@ START_EXTERN_C
 
 #undef PERL_CKDEF
 #undef PERL_PPDEF
-#define PERL_CKDEF(s) OP *s (OP *o);
-#define PERL_PPDEF(s) OP *s (ARGSproto);
+#define PERL_CKDEF(s) OP *s (pTHX_ OP *o);
+#define PERL_PPDEF(s) OP *s (pTHX_ ARGSproto);
 
 #include "pp_proto.h"
 
@@ -1085,354 +1085,354 @@ END_EXTERN_C
 EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto);
 #else
 EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto) = {
-       pp_null,
-       pp_stub,
-       pp_scalar,
-       pp_pushmark,
-       pp_wantarray,
-       pp_const,
-       pp_gvsv,
-       pp_gv,
-       pp_gelem,
-       pp_padsv,
-       pp_padav,
-       pp_padhv,
-       pp_padany,
-       pp_pushre,
-       pp_rv2gv,
-       pp_rv2sv,
-       pp_av2arylen,
-       pp_rv2cv,
-       pp_anoncode,
-       pp_prototype,
-       pp_refgen,
-       pp_srefgen,
-       pp_ref,
-       pp_bless,
-       pp_backtick,
-       pp_glob,
-       pp_readline,
-       pp_rcatline,
-       pp_regcmaybe,
-       pp_regcreset,
-       pp_regcomp,
-       pp_match,
-       pp_qr,
-       pp_subst,
-       pp_substcont,
-       pp_trans,
-       pp_sassign,
-       pp_aassign,
-       pp_chop,
-       pp_schop,
-       pp_chomp,
-       pp_schomp,
-       pp_defined,
-       pp_undef,
-       pp_study,
-       pp_pos,
-       pp_preinc,
-       pp_i_preinc,
-       pp_predec,
-       pp_i_predec,
-       pp_postinc,
-       pp_i_postinc,
-       pp_postdec,
-       pp_i_postdec,
-       pp_pow,
-       pp_multiply,
-       pp_i_multiply,
-       pp_divide,
-       pp_i_divide,
-       pp_modulo,
-       pp_i_modulo,
-       pp_repeat,
-       pp_add,
-       pp_i_add,
-       pp_subtract,
-       pp_i_subtract,
-       pp_concat,
-       pp_stringify,
-       pp_left_shift,
-       pp_right_shift,
-       pp_lt,
-       pp_i_lt,
-       pp_gt,
-       pp_i_gt,
-       pp_le,
-       pp_i_le,
-       pp_ge,
-       pp_i_ge,
-       pp_eq,
-       pp_i_eq,
-       pp_ne,
-       pp_i_ne,
-       pp_ncmp,
-       pp_i_ncmp,
-       pp_slt,
-       pp_sgt,
-       pp_sle,
-       pp_sge,
-       pp_seq,
-       pp_sne,
-       pp_scmp,
-       pp_bit_and,
-       pp_bit_xor,
-       pp_bit_or,
-       pp_negate,
-       pp_i_negate,
-       pp_not,
-       pp_complement,
-       pp_atan2,
-       pp_sin,
-       pp_cos,
-       pp_rand,
-       pp_srand,
-       pp_exp,
-       pp_log,
-       pp_sqrt,
-       pp_int,
-       pp_hex,
-       pp_oct,
-       pp_abs,
-       pp_length,
-       pp_substr,
-       pp_vec,
-       pp_index,
-       pp_rindex,
-       pp_sprintf,
-       pp_formline,
-       pp_ord,
-       pp_chr,
-       pp_crypt,
-       pp_ucfirst,
-       pp_lcfirst,
-       pp_uc,
-       pp_lc,
-       pp_quotemeta,
-       pp_rv2av,
-       pp_aelemfast,
-       pp_aelem,
-       pp_aslice,
-       pp_each,
-       pp_values,
-       pp_keys,
-       pp_delete,
-       pp_exists,
-       pp_rv2hv,
-       pp_helem,
-       pp_hslice,
-       pp_unpack,
-       pp_pack,
-       pp_split,
-       pp_join,
-       pp_list,
-       pp_lslice,
-       pp_anonlist,
-       pp_anonhash,
-       pp_splice,
-       pp_push,
-       pp_pop,
-       pp_shift,
-       pp_unshift,
-       pp_sort,
-       pp_reverse,
-       pp_grepstart,
-       pp_grepwhile,
-       pp_mapstart,
-       pp_mapwhile,
-       pp_range,
-       pp_flip,
-       pp_flop,
-       pp_and,
-       pp_or,
-       pp_xor,
-       pp_cond_expr,
-       pp_andassign,
-       pp_orassign,
-       pp_method,
-       pp_entersub,
-       pp_leavesub,
-       pp_caller,
-       pp_warn,
-       pp_die,
-       pp_reset,
-       pp_lineseq,
-       pp_nextstate,
-       pp_dbstate,
-       pp_unstack,
-       pp_enter,
-       pp_leave,
-       pp_scope,
-       pp_enteriter,
-       pp_iter,
-       pp_enterloop,
-       pp_leaveloop,
-       pp_return,
-       pp_last,
-       pp_next,
-       pp_redo,
-       pp_dump,
-       pp_goto,
-       pp_exit,
-       pp_open,
-       pp_close,
-       pp_pipe_op,
-       pp_fileno,
-       pp_umask,
-       pp_binmode,
-       pp_tie,
-       pp_untie,
-       pp_tied,
-       pp_dbmopen,
-       pp_dbmclose,
-       pp_sselect,
-       pp_select,
-       pp_getc,
-       pp_read,
-       pp_enterwrite,
-       pp_leavewrite,
-       pp_prtf,
-       pp_print,
-       pp_sysopen,
-       pp_sysseek,
-       pp_sysread,
-       pp_syswrite,
-       pp_send,
-       pp_recv,
-       pp_eof,
-       pp_tell,
-       pp_seek,
-       pp_truncate,
-       pp_fcntl,
-       pp_ioctl,
-       pp_flock,
-       pp_socket,
-       pp_sockpair,
-       pp_bind,
-       pp_connect,
-       pp_listen,
-       pp_accept,
-       pp_shutdown,
-       pp_gsockopt,
-       pp_ssockopt,
-       pp_getsockname,
-       pp_getpeername,
-       pp_lstat,
-       pp_stat,
-       pp_ftrread,
-       pp_ftrwrite,
-       pp_ftrexec,
-       pp_fteread,
-       pp_ftewrite,
-       pp_fteexec,
-       pp_ftis,
-       pp_fteowned,
-       pp_ftrowned,
-       pp_ftzero,
-       pp_ftsize,
-       pp_ftmtime,
-       pp_ftatime,
-       pp_ftctime,
-       pp_ftsock,
-       pp_ftchr,
-       pp_ftblk,
-       pp_ftfile,
-       pp_ftdir,
-       pp_ftpipe,
-       pp_ftlink,
-       pp_ftsuid,
-       pp_ftsgid,
-       pp_ftsvtx,
-       pp_fttty,
-       pp_fttext,
-       pp_ftbinary,
-       pp_chdir,
-       pp_chown,
-       pp_chroot,
-       pp_unlink,
-       pp_chmod,
-       pp_utime,
-       pp_rename,
-       pp_link,
-       pp_symlink,
-       pp_readlink,
-       pp_mkdir,
-       pp_rmdir,
-       pp_open_dir,
-       pp_readdir,
-       pp_telldir,
-       pp_seekdir,
-       pp_rewinddir,
-       pp_closedir,
-       pp_fork,
-       pp_wait,
-       pp_waitpid,
-       pp_system,
-       pp_exec,
-       pp_kill,
-       pp_getppid,
-       pp_getpgrp,
-       pp_setpgrp,
-       pp_getpriority,
-       pp_setpriority,
-       pp_time,
-       pp_tms,
-       pp_localtime,
-       pp_gmtime,
-       pp_alarm,
-       pp_sleep,
-       pp_shmget,
-       pp_shmctl,
-       pp_shmread,
-       pp_shmwrite,
-       pp_msgget,
-       pp_msgctl,
-       pp_msgsnd,
-       pp_msgrcv,
-       pp_semget,
-       pp_semctl,
-       pp_semop,
-       pp_require,
-       pp_dofile,
-       pp_entereval,
-       pp_leaveeval,
-       pp_entertry,
-       pp_leavetry,
-       pp_ghbyname,
-       pp_ghbyaddr,
-       pp_ghostent,
-       pp_gnbyname,
-       pp_gnbyaddr,
-       pp_gnetent,
-       pp_gpbyname,
-       pp_gpbynumber,
-       pp_gprotoent,
-       pp_gsbyname,
-       pp_gsbyport,
-       pp_gservent,
-       pp_shostent,
-       pp_snetent,
-       pp_sprotoent,
-       pp_sservent,
-       pp_ehostent,
-       pp_enetent,
-       pp_eprotoent,
-       pp_eservent,
-       pp_gpwnam,
-       pp_gpwuid,
-       pp_gpwent,
-       pp_spwent,
-       pp_epwent,
-       pp_ggrnam,
-       pp_ggrgid,
-       pp_ggrent,
-       pp_sgrent,
-       pp_egrent,
-       pp_getlogin,
-       pp_syscall,
-       pp_lock,
-       pp_threadsv,
+       Perl_pp_null,
+       Perl_pp_stub,
+       Perl_pp_scalar,
+       Perl_pp_pushmark,
+       Perl_pp_wantarray,
+       Perl_pp_const,
+       Perl_pp_gvsv,
+       Perl_pp_gv,
+       Perl_pp_gelem,
+       Perl_pp_padsv,
+       Perl_pp_padav,
+       Perl_pp_padhv,
+       Perl_pp_padany,
+       Perl_pp_pushre,
+       Perl_pp_rv2gv,
+       Perl_pp_rv2sv,
+       Perl_pp_av2arylen,
+       Perl_pp_rv2cv,
+       Perl_pp_anoncode,
+       Perl_pp_prototype,
+       Perl_pp_refgen,
+       Perl_pp_srefgen,
+       Perl_pp_ref,
+       Perl_pp_bless,
+       Perl_pp_backtick,
+       Perl_pp_glob,
+       Perl_pp_readline,
+       Perl_pp_rcatline,
+       Perl_pp_regcmaybe,
+       Perl_pp_regcreset,
+       Perl_pp_regcomp,
+       Perl_pp_match,
+       Perl_pp_qr,
+       Perl_pp_subst,
+       Perl_pp_substcont,
+       Perl_pp_trans,
+       Perl_pp_sassign,
+       Perl_pp_aassign,
+       Perl_pp_chop,
+       Perl_pp_schop,
+       Perl_pp_chomp,
+       Perl_pp_schomp,
+       Perl_pp_defined,
+       Perl_pp_undef,
+       Perl_pp_study,
+       Perl_pp_pos,
+       Perl_pp_preinc,
+       Perl_pp_i_preinc,
+       Perl_pp_predec,
+       Perl_pp_i_predec,
+       Perl_pp_postinc,
+       Perl_pp_i_postinc,
+       Perl_pp_postdec,
+       Perl_pp_i_postdec,
+       Perl_pp_pow,
+       Perl_pp_multiply,
+       Perl_pp_i_multiply,
+       Perl_pp_divide,
+       Perl_pp_i_divide,
+       Perl_pp_modulo,
+       Perl_pp_i_modulo,
+       Perl_pp_repeat,
+       Perl_pp_add,
+       Perl_pp_i_add,
+       Perl_pp_subtract,
+       Perl_pp_i_subtract,
+       Perl_pp_concat,
+       Perl_pp_stringify,
+       Perl_pp_left_shift,
+       Perl_pp_right_shift,
+       Perl_pp_lt,
+       Perl_pp_i_lt,
+       Perl_pp_gt,
+       Perl_pp_i_gt,
+       Perl_pp_le,
+       Perl_pp_i_le,
+       Perl_pp_ge,
+       Perl_pp_i_ge,
+       Perl_pp_eq,
+       Perl_pp_i_eq,
+       Perl_pp_ne,
+       Perl_pp_i_ne,
+       Perl_pp_ncmp,
+       Perl_pp_i_ncmp,
+       Perl_pp_slt,
+       Perl_pp_sgt,
+       Perl_pp_sle,
+       Perl_pp_sge,
+       Perl_pp_seq,
+       Perl_pp_sne,
+       Perl_pp_scmp,
+       Perl_pp_bit_and,
+       Perl_pp_bit_xor,
+       Perl_pp_bit_or,
+       Perl_pp_negate,
+       Perl_pp_i_negate,
+       Perl_pp_not,
+       Perl_pp_complement,
+       Perl_pp_atan2,
+       Perl_pp_sin,
+       Perl_pp_cos,
+       Perl_pp_rand,
+       Perl_pp_srand,
+       Perl_pp_exp,
+       Perl_pp_log,
+       Perl_pp_sqrt,
+       Perl_pp_int,
+       Perl_pp_hex,
+       Perl_pp_oct,
+       Perl_pp_abs,
+       Perl_pp_length,
+       Perl_pp_substr,
+       Perl_pp_vec,
+       Perl_pp_index,
+       Perl_pp_rindex,
+       Perl_pp_sprintf,
+       Perl_pp_formline,
+       Perl_pp_ord,
+       Perl_pp_chr,
+       Perl_pp_crypt,
+       Perl_pp_ucfirst,
+       Perl_pp_lcfirst,
+       Perl_pp_uc,
+       Perl_pp_lc,
+       Perl_pp_quotemeta,
+       Perl_pp_rv2av,
+       Perl_pp_aelemfast,
+       Perl_pp_aelem,
+       Perl_pp_aslice,
+       Perl_pp_each,
+       Perl_pp_values,
+       Perl_pp_keys,
+       Perl_pp_delete,
+       Perl_pp_exists,
+       Perl_pp_rv2hv,
+       Perl_pp_helem,
+       Perl_pp_hslice,
+       Perl_pp_unpack,
+       Perl_pp_pack,
+       Perl_pp_split,
+       Perl_pp_join,
+       Perl_pp_list,
+       Perl_pp_lslice,
+       Perl_pp_anonlist,
+       Perl_pp_anonhash,
+       Perl_pp_splice,
+       Perl_pp_push,
+       Perl_pp_pop,
+       Perl_pp_shift,
+       Perl_pp_unshift,
+       Perl_pp_sort,
+       Perl_pp_reverse,
+       Perl_pp_grepstart,
+       Perl_pp_grepwhile,
+       Perl_pp_mapstart,
+       Perl_pp_mapwhile,
+       Perl_pp_range,
+       Perl_pp_flip,
+       Perl_pp_flop,
+       Perl_pp_and,
+       Perl_pp_or,
+       Perl_pp_xor,
+       Perl_pp_cond_expr,
+       Perl_pp_andassign,
+       Perl_pp_orassign,
+       Perl_pp_method,
+       Perl_pp_entersub,
+       Perl_pp_leavesub,
+       Perl_pp_caller,
+       Perl_pp_warn,
+       Perl_pp_die,
+       Perl_pp_reset,
+       Perl_pp_lineseq,
+       Perl_pp_nextstate,
+       Perl_pp_dbstate,
+       Perl_pp_unstack,
+       Perl_pp_enter,
+       Perl_pp_leave,
+       Perl_pp_scope,
+       Perl_pp_enteriter,
+       Perl_pp_iter,
+       Perl_pp_enterloop,
+       Perl_pp_leaveloop,
+       Perl_pp_return,
+       Perl_pp_last,
+       Perl_pp_next,
+       Perl_pp_redo,
+       Perl_pp_dump,
+       Perl_pp_goto,
+       Perl_pp_exit,
+       Perl_pp_open,
+       Perl_pp_close,
+       Perl_pp_pipe_op,
+       Perl_pp_fileno,
+       Perl_pp_umask,
+       Perl_pp_binmode,
+       Perl_pp_tie,
+       Perl_pp_untie,
+       Perl_pp_tied,
+       Perl_pp_dbmopen,
+       Perl_pp_dbmclose,
+       Perl_pp_sselect,
+       Perl_pp_select,
+       Perl_pp_getc,
+       Perl_pp_read,
+       Perl_pp_enterwrite,
+       Perl_pp_leavewrite,
+       Perl_pp_prtf,
+       Perl_pp_print,
+       Perl_pp_sysopen,
+       Perl_pp_sysseek,
+       Perl_pp_sysread,
+       Perl_pp_syswrite,
+       Perl_pp_send,
+       Perl_pp_recv,
+       Perl_pp_eof,
+       Perl_pp_tell,
+       Perl_pp_seek,
+       Perl_pp_truncate,
+       Perl_pp_fcntl,
+       Perl_pp_ioctl,
+       Perl_pp_flock,
+       Perl_pp_socket,
+       Perl_pp_sockpair,
+       Perl_pp_bind,
+       Perl_pp_connect,
+       Perl_pp_listen,
+       Perl_pp_accept,
+       Perl_pp_shutdown,
+       Perl_pp_gsockopt,
+       Perl_pp_ssockopt,
+       Perl_pp_getsockname,
+       Perl_pp_getpeername,
+       Perl_pp_lstat,
+       Perl_pp_stat,
+       Perl_pp_ftrread,
+       Perl_pp_ftrwrite,
+       Perl_pp_ftrexec,
+       Perl_pp_fteread,
+       Perl_pp_ftewrite,
+       Perl_pp_fteexec,
+       Perl_pp_ftis,
+       Perl_pp_fteowned,
+       Perl_pp_ftrowned,
+       Perl_pp_ftzero,
+       Perl_pp_ftsize,
+       Perl_pp_ftmtime,
+       Perl_pp_ftatime,
+       Perl_pp_ftctime,
+       Perl_pp_ftsock,
+       Perl_pp_ftchr,
+       Perl_pp_ftblk,
+       Perl_pp_ftfile,
+       Perl_pp_ftdir,
+       Perl_pp_ftpipe,
+       Perl_pp_ftlink,
+       Perl_pp_ftsuid,
+       Perl_pp_ftsgid,
+       Perl_pp_ftsvtx,
+       Perl_pp_fttty,
+       Perl_pp_fttext,
+       Perl_pp_ftbinary,
+       Perl_pp_chdir,
+       Perl_pp_chown,
+       Perl_pp_chroot,
+       Perl_pp_unlink,
+       Perl_pp_chmod,
+       Perl_pp_utime,
+       Perl_pp_rename,
+       Perl_pp_link,
+       Perl_pp_symlink,
+       Perl_pp_readlink,
+       Perl_pp_mkdir,
+       Perl_pp_rmdir,
+       Perl_pp_open_dir,
+       Perl_pp_readdir,
+       Perl_pp_telldir,
+       Perl_pp_seekdir,
+       Perl_pp_rewinddir,
+       Perl_pp_closedir,
+       Perl_pp_fork,
+       Perl_pp_wait,
+       Perl_pp_waitpid,
+       Perl_pp_system,
+       Perl_pp_exec,
+       Perl_pp_kill,
+       Perl_pp_getppid,
+       Perl_pp_getpgrp,
+       Perl_pp_setpgrp,
+       Perl_pp_getpriority,
+       Perl_pp_setpriority,
+       Perl_pp_time,
+       Perl_pp_tms,
+       Perl_pp_localtime,
+       Perl_pp_gmtime,
+       Perl_pp_alarm,
+       Perl_pp_sleep,
+       Perl_pp_shmget,
+       Perl_pp_shmctl,
+       Perl_pp_shmread,
+       Perl_pp_shmwrite,
+       Perl_pp_msgget,
+       Perl_pp_msgctl,
+       Perl_pp_msgsnd,
+       Perl_pp_msgrcv,
+       Perl_pp_semget,
+       Perl_pp_semctl,
+       Perl_pp_semop,
+       Perl_pp_require,
+       Perl_pp_dofile,
+       Perl_pp_entereval,
+       Perl_pp_leaveeval,
+       Perl_pp_entertry,
+       Perl_pp_leavetry,
+       Perl_pp_ghbyname,
+       Perl_pp_ghbyaddr,
+       Perl_pp_ghostent,
+       Perl_pp_gnbyname,
+       Perl_pp_gnbyaddr,
+       Perl_pp_gnetent,
+       Perl_pp_gpbyname,
+       Perl_pp_gpbynumber,
+       Perl_pp_gprotoent,
+       Perl_pp_gsbyname,
+       Perl_pp_gsbyport,
+       Perl_pp_gservent,
+       Perl_pp_shostent,
+       Perl_pp_snetent,
+       Perl_pp_sprotoent,
+       Perl_pp_sservent,
+       Perl_pp_ehostent,
+       Perl_pp_enetent,
+       Perl_pp_eprotoent,
+       Perl_pp_eservent,
+       Perl_pp_gpwnam,
+       Perl_pp_gpwuid,
+       Perl_pp_gpwent,
+       Perl_pp_spwent,
+       Perl_pp_epwent,
+       Perl_pp_ggrnam,
+       Perl_pp_ggrgid,
+       Perl_pp_ggrent,
+       Perl_pp_sgrent,
+       Perl_pp_egrent,
+       Perl_pp_getlogin,
+       Perl_pp_syscall,
+       Perl_pp_lock,
+       Perl_pp_threadsv,
 };
 #endif
 
@@ -1440,354 +1440,354 @@ EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto) = {
 EXT OP * (CPERLscope(*PL_check)[]) (OP *op);
 #else
 EXT OP * (CPERLscope(*PL_check)[]) (OP *op) = {
-       ck_null,        /* null */
-       ck_null,        /* stub */
-       ck_fun,         /* scalar */
-       ck_null,        /* pushmark */
-       ck_null,        /* wantarray */
-       ck_svconst,     /* const */
-       ck_null,        /* gvsv */
-       ck_null,        /* gv */
-       ck_null,        /* gelem */
-       ck_null,        /* padsv */
-       ck_null,        /* padav */
-       ck_null,        /* padhv */
-       ck_null,        /* padany */
-       ck_null,        /* pushre */
-       ck_rvconst,     /* rv2gv */
-       ck_rvconst,     /* rv2sv */
-       ck_null,        /* av2arylen */
-       ck_rvconst,     /* rv2cv */
-       ck_anoncode,    /* anoncode */
-       ck_null,        /* prototype */
-       ck_spair,       /* refgen */
-       ck_null,        /* srefgen */
-       ck_fun,         /* ref */
-       ck_fun,         /* bless */
-       ck_null,        /* backtick */
-       ck_glob,        /* glob */
-       ck_null,        /* readline */
-       ck_null,        /* rcatline */
-       ck_fun,         /* regcmaybe */
-       ck_fun,         /* regcreset */
-       ck_null,        /* regcomp */
-       ck_match,       /* match */
-       ck_match,       /* qr */
-       ck_null,        /* subst */
-       ck_null,        /* substcont */
-       ck_null,        /* trans */
-       ck_null,        /* sassign */
-       ck_null,        /* aassign */
-       ck_spair,       /* chop */
-       ck_null,        /* schop */
-       ck_spair,       /* chomp */
-       ck_null,        /* schomp */
-       ck_defined,     /* defined */
-       ck_lfun,        /* undef */
-       ck_fun,         /* study */
-       ck_lfun,        /* pos */
-       ck_lfun,        /* preinc */
-       ck_lfun,        /* i_preinc */
-       ck_lfun,        /* predec */
-       ck_lfun,        /* i_predec */
-       ck_lfun,        /* postinc */
-       ck_lfun,        /* i_postinc */
-       ck_lfun,        /* postdec */
-       ck_lfun,        /* i_postdec */
-       ck_null,        /* pow */
-       ck_null,        /* multiply */
-       ck_null,        /* i_multiply */
-       ck_null,        /* divide */
-       ck_null,        /* i_divide */
-       ck_null,        /* modulo */
-       ck_null,        /* i_modulo */
-       ck_repeat,      /* repeat */
-       ck_null,        /* add */
-       ck_null,        /* i_add */
-       ck_null,        /* subtract */
-       ck_null,        /* i_subtract */
-       ck_concat,      /* concat */
-       ck_fun,         /* stringify */
-       ck_bitop,       /* left_shift */
-       ck_bitop,       /* right_shift */
-       ck_null,        /* lt */
-       ck_null,        /* i_lt */
-       ck_null,        /* gt */
-       ck_null,        /* i_gt */
-       ck_null,        /* le */
-       ck_null,        /* i_le */
-       ck_null,        /* ge */
-       ck_null,        /* i_ge */
-       ck_null,        /* eq */
-       ck_null,        /* i_eq */
-       ck_null,        /* ne */
-       ck_null,        /* i_ne */
-       ck_null,        /* ncmp */
-       ck_null,        /* i_ncmp */
-       ck_scmp,        /* slt */
-       ck_scmp,        /* sgt */
-       ck_scmp,        /* sle */
-       ck_scmp,        /* sge */
-       ck_null,        /* seq */
-       ck_null,        /* sne */
-       ck_scmp,        /* scmp */
-       ck_bitop,       /* bit_and */
-       ck_bitop,       /* bit_xor */
-       ck_bitop,       /* bit_or */
-       ck_null,        /* negate */
-       ck_null,        /* i_negate */
-       ck_null,        /* not */
-       ck_bitop,       /* complement */
-       ck_fun,         /* atan2 */
-       ck_fun,         /* sin */
-       ck_fun,         /* cos */
-       ck_fun,         /* rand */
-       ck_fun,         /* srand */
-       ck_fun,         /* exp */
-       ck_fun,         /* log */
-       ck_fun,         /* sqrt */
-       ck_fun,         /* int */
-       ck_fun,         /* hex */
-       ck_fun,         /* oct */
-       ck_fun,         /* abs */
-       ck_lengthconst, /* length */
-       ck_fun,         /* substr */
-       ck_fun,         /* vec */
-       ck_index,       /* index */
-       ck_index,       /* rindex */
-       ck_fun_locale,  /* sprintf */
-       ck_fun,         /* formline */
-       ck_fun,         /* ord */
-       ck_fun,         /* chr */
-       ck_fun,         /* crypt */
-       ck_fun_locale,  /* ucfirst */
-       ck_fun_locale,  /* lcfirst */
-       ck_fun_locale,  /* uc */
-       ck_fun_locale,  /* lc */
-       ck_fun,         /* quotemeta */
-       ck_rvconst,     /* rv2av */
-       ck_null,        /* aelemfast */
-       ck_null,        /* aelem */
-       ck_null,        /* aslice */
-       ck_fun,         /* each */
-       ck_fun,         /* values */
-       ck_fun,         /* keys */
-       ck_delete,      /* delete */
-       ck_exists,      /* exists */
-       ck_rvconst,     /* rv2hv */
-       ck_null,        /* helem */
-       ck_null,        /* hslice */
-       ck_fun,         /* unpack */
-       ck_fun,         /* pack */
-       ck_split,       /* split */
-       ck_fun,         /* join */
-       ck_null,        /* list */
-       ck_null,        /* lslice */
-       ck_fun,         /* anonlist */
-       ck_fun,         /* anonhash */
-       ck_fun,         /* splice */
-       ck_fun,         /* push */
-       ck_shift,       /* pop */
-       ck_shift,       /* shift */
-       ck_fun,         /* unshift */
-       ck_sort,        /* sort */
-       ck_fun,         /* reverse */
-       ck_grep,        /* grepstart */
-       ck_null,        /* grepwhile */
-       ck_grep,        /* mapstart */
-       ck_null,        /* mapwhile */
-       ck_null,        /* range */
-       ck_null,        /* flip */
-       ck_null,        /* flop */
-       ck_null,        /* and */
-       ck_null,        /* or */
-       ck_null,        /* xor */
-       ck_null,        /* cond_expr */
-       ck_null,        /* andassign */
-       ck_null,        /* orassign */
-       ck_null,        /* method */
-       ck_subr,        /* entersub */
-       ck_null,        /* leavesub */
-       ck_fun,         /* caller */
-       ck_fun,         /* warn */
-       ck_fun,         /* die */
-       ck_fun,         /* reset */
-       ck_null,        /* lineseq */
-       ck_null,        /* nextstate */
-       ck_null,        /* dbstate */
-       ck_null,        /* unstack */
-       ck_null,        /* enter */
-       ck_null,        /* leave */
-       ck_null,        /* scope */
-       ck_null,        /* enteriter */
-       ck_null,        /* iter */
-       ck_null,        /* enterloop */
-       ck_null,        /* leaveloop */
-       ck_null,        /* return */
-       ck_null,        /* last */
-       ck_null,        /* next */
-       ck_null,        /* redo */
-       ck_null,        /* dump */
-       ck_null,        /* goto */
-       ck_fun,         /* exit */
-       ck_fun,         /* open */
-       ck_fun,         /* close */
-       ck_fun,         /* pipe_op */
-       ck_fun,         /* fileno */
-       ck_fun,         /* umask */
-       ck_fun,         /* binmode */
-       ck_fun,         /* tie */
-       ck_fun,         /* untie */
-       ck_fun,         /* tied */
-       ck_fun,         /* dbmopen */
-       ck_fun,         /* dbmclose */
-       ck_select,      /* sselect */
-       ck_select,      /* select */
-       ck_eof,         /* getc */
-       ck_fun,         /* read */
-       ck_fun,         /* enterwrite */
-       ck_null,        /* leavewrite */
-       ck_listiob,     /* prtf */
-       ck_listiob,     /* print */
-       ck_fun,         /* sysopen */
-       ck_fun,         /* sysseek */
-       ck_fun,         /* sysread */
-       ck_fun,         /* syswrite */
-       ck_fun,         /* send */
-       ck_fun,         /* recv */
-       ck_eof,         /* eof */
-       ck_fun,         /* tell */
-       ck_fun,         /* seek */
-       ck_trunc,       /* truncate */
-       ck_fun,         /* fcntl */
-       ck_fun,         /* ioctl */
-       ck_fun,         /* flock */
-       ck_fun,         /* socket */
-       ck_fun,         /* sockpair */
-       ck_fun,         /* bind */
-       ck_fun,         /* connect */
-       ck_fun,         /* listen */
-       ck_fun,         /* accept */
-       ck_fun,         /* shutdown */
-       ck_fun,         /* gsockopt */
-       ck_fun,         /* ssockopt */
-       ck_fun,         /* getsockname */
-       ck_fun,         /* getpeername */
-       ck_ftst,        /* lstat */
-       ck_ftst,        /* stat */
-       ck_ftst,        /* ftrread */
-       ck_ftst,        /* ftrwrite */
-       ck_ftst,        /* ftrexec */
-       ck_ftst,        /* fteread */
-       ck_ftst,        /* ftewrite */
-       ck_ftst,        /* fteexec */
-       ck_ftst,        /* ftis */
-       ck_ftst,        /* fteowned */
-       ck_ftst,        /* ftrowned */
-       ck_ftst,        /* ftzero */
-       ck_ftst,        /* ftsize */
-       ck_ftst,        /* ftmtime */
-       ck_ftst,        /* ftatime */
-       ck_ftst,        /* ftctime */
-       ck_ftst,        /* ftsock */
-       ck_ftst,        /* ftchr */
-       ck_ftst,        /* ftblk */
-       ck_ftst,        /* ftfile */
-       ck_ftst,        /* ftdir */
-       ck_ftst,        /* ftpipe */
-       ck_ftst,        /* ftlink */
-       ck_ftst,        /* ftsuid */
-       ck_ftst,        /* ftsgid */
-       ck_ftst,        /* ftsvtx */
-       ck_ftst,        /* fttty */
-       ck_ftst,        /* fttext */
-       ck_ftst,        /* ftbinary */
-       ck_fun,         /* chdir */
-       ck_fun,         /* chown */
-       ck_fun,         /* chroot */
-       ck_fun,         /* unlink */
-       ck_fun,         /* chmod */
-       ck_fun,         /* utime */
-       ck_fun,         /* rename */
-       ck_fun,         /* link */
-       ck_fun,         /* symlink */
-       ck_fun,         /* readlink */
-       ck_fun,         /* mkdir */
-       ck_fun,         /* rmdir */
-       ck_fun,         /* open_dir */
-       ck_fun,         /* readdir */
-       ck_fun,         /* telldir */
-       ck_fun,         /* seekdir */
-       ck_fun,         /* rewinddir */
-       ck_fun,         /* closedir */
-       ck_null,        /* fork */
-       ck_null,        /* wait */
-       ck_fun,         /* waitpid */
-       ck_exec,        /* system */
-       ck_exec,        /* exec */
-       ck_fun,         /* kill */
-       ck_null,        /* getppid */
-       ck_fun,         /* getpgrp */
-       ck_fun,         /* setpgrp */
-       ck_fun,         /* getpriority */
-       ck_fun,         /* setpriority */
-       ck_null,        /* time */
-       ck_null,        /* tms */
-       ck_fun,         /* localtime */
-       ck_fun,         /* gmtime */
-       ck_fun,         /* alarm */
-       ck_fun,         /* sleep */
-       ck_fun,         /* shmget */
-       ck_fun,         /* shmctl */
-       ck_fun,         /* shmread */
-       ck_fun,         /* shmwrite */
-       ck_fun,         /* msgget */
-       ck_fun,         /* msgctl */
-       ck_fun,         /* msgsnd */
-       ck_fun,         /* msgrcv */
-       ck_fun,         /* semget */
-       ck_fun,         /* semctl */
-       ck_fun,         /* semop */
-       ck_require,     /* require */
-       ck_fun,         /* dofile */
-       ck_eval,        /* entereval */
-       ck_null,        /* leaveeval */
-       ck_null,        /* entertry */
-       ck_null,        /* leavetry */
-       ck_fun,         /* ghbyname */
-       ck_fun,         /* ghbyaddr */
-       ck_null,        /* ghostent */
-       ck_fun,         /* gnbyname */
-       ck_fun,         /* gnbyaddr */
-       ck_null,        /* gnetent */
-       ck_fun,         /* gpbyname */
-       ck_fun,         /* gpbynumber */
-       ck_null,        /* gprotoent */
-       ck_fun,         /* gsbyname */
-       ck_fun,         /* gsbyport */
-       ck_null,        /* gservent */
-       ck_fun,         /* shostent */
-       ck_fun,         /* snetent */
-       ck_fun,         /* sprotoent */
-       ck_fun,         /* sservent */
-       ck_null,        /* ehostent */
-       ck_null,        /* enetent */
-       ck_null,        /* eprotoent */
-       ck_null,        /* eservent */
-       ck_fun,         /* gpwnam */
-       ck_fun,         /* gpwuid */
-       ck_null,        /* gpwent */
-       ck_null,        /* spwent */
-       ck_null,        /* epwent */
-       ck_fun,         /* ggrnam */
-       ck_fun,         /* ggrgid */
-       ck_null,        /* ggrent */
-       ck_null,        /* sgrent */
-       ck_null,        /* egrent */
-       ck_null,        /* getlogin */
-       ck_fun,         /* syscall */
-       ck_rfun,        /* lock */
-       ck_null,        /* threadsv */
+       Perl_ck_null,   /* null */
+       Perl_ck_null,   /* stub */
+       Perl_ck_fun,    /* scalar */
+       Perl_ck_null,   /* pushmark */
+       Perl_ck_null,   /* wantarray */
+       Perl_ck_svconst,/* const */
+       Perl_ck_null,   /* gvsv */
+       Perl_ck_null,   /* gv */
+       Perl_ck_null,   /* gelem */
+       Perl_ck_null,   /* padsv */
+       Perl_ck_null,   /* padav */
+       Perl_ck_null,   /* padhv */
+       Perl_ck_null,   /* padany */
+       Perl_ck_null,   /* pushre */
+       Perl_ck_rvconst,/* rv2gv */
+       Perl_ck_rvconst,/* rv2sv */
+       Perl_ck_null,   /* av2arylen */
+       Perl_ck_rvconst,/* rv2cv */
+       Perl_ck_anoncode,/* anoncode */
+       Perl_ck_null,   /* prototype */
+       Perl_ck_spair,  /* refgen */
+       Perl_ck_null,   /* srefgen */
+       Perl_ck_fun,    /* ref */
+       Perl_ck_fun,    /* bless */
+       Perl_ck_null,   /* backtick */
+       Perl_ck_glob,   /* glob */
+       Perl_ck_null,   /* readline */
+       Perl_ck_null,   /* rcatline */
+       Perl_ck_fun,    /* regcmaybe */
+       Perl_ck_fun,    /* regcreset */
+       Perl_ck_null,   /* regcomp */
+       Perl_ck_match,  /* match */
+       Perl_ck_match,  /* qr */
+       Perl_ck_null,   /* subst */
+       Perl_ck_null,   /* substcont */
+       Perl_ck_null,   /* trans */
+       Perl_ck_null,   /* sassign */
+       Perl_ck_null,   /* aassign */
+       Perl_ck_spair,  /* chop */
+       Perl_ck_null,   /* schop */
+       Perl_ck_spair,  /* chomp */
+       Perl_ck_null,   /* schomp */
+       Perl_ck_defined,/* defined */
+       Perl_ck_lfun,   /* undef */
+       Perl_ck_fun,    /* study */
+       Perl_ck_lfun,   /* pos */
+       Perl_ck_lfun,   /* preinc */
+       Perl_ck_lfun,   /* i_preinc */
+       Perl_ck_lfun,   /* predec */
+       Perl_ck_lfun,   /* i_predec */
+       Perl_ck_lfun,   /* postinc */
+       Perl_ck_lfun,   /* i_postinc */
+       Perl_ck_lfun,   /* postdec */
+       Perl_ck_lfun,   /* i_postdec */
+       Perl_ck_null,   /* pow */
+       Perl_ck_null,   /* multiply */
+       Perl_ck_null,   /* i_multiply */
+       Perl_ck_null,   /* divide */
+       Perl_ck_null,   /* i_divide */
+       Perl_ck_null,   /* modulo */
+       Perl_ck_null,   /* i_modulo */
+       Perl_ck_repeat, /* repeat */
+       Perl_ck_null,   /* add */
+       Perl_ck_null,   /* i_add */
+       Perl_ck_null,   /* subtract */
+       Perl_ck_null,   /* i_subtract */
+       Perl_ck_concat, /* concat */
+       Perl_ck_fun,    /* stringify */
+       Perl_ck_bitop,  /* left_shift */
+       Perl_ck_bitop,  /* right_shift */
+       Perl_ck_null,   /* lt */
+       Perl_ck_null,   /* i_lt */
+       Perl_ck_null,   /* gt */
+       Perl_ck_null,   /* i_gt */
+       Perl_ck_null,   /* le */
+       Perl_ck_null,   /* i_le */
+       Perl_ck_null,   /* ge */
+       Perl_ck_null,   /* i_ge */
+       Perl_ck_null,   /* eq */
+       Perl_ck_null,   /* i_eq */
+       Perl_ck_null,   /* ne */
+       Perl_ck_null,   /* i_ne */
+       Perl_ck_null,   /* ncmp */
+       Perl_ck_null,   /* i_ncmp */
+       Perl_ck_scmp,   /* slt */
+       Perl_ck_scmp,   /* sgt */
+       Perl_ck_scmp,   /* sle */
+       Perl_ck_scmp,   /* sge */
+       Perl_ck_null,   /* seq */
+       Perl_ck_null,   /* sne */
+       Perl_ck_scmp,   /* scmp */
+       Perl_ck_bitop,  /* bit_and */
+       Perl_ck_bitop,  /* bit_xor */
+       Perl_ck_bitop,  /* bit_or */
+       Perl_ck_null,   /* negate */
+       Perl_ck_null,   /* i_negate */
+       Perl_ck_null,   /* not */
+       Perl_ck_bitop,  /* complement */
+       Perl_ck_fun,    /* atan2 */
+       Perl_ck_fun,    /* sin */
+       Perl_ck_fun,    /* cos */
+       Perl_ck_fun,    /* rand */
+       Perl_ck_fun,    /* srand */
+       Perl_ck_fun,    /* exp */
+       Perl_ck_fun,    /* log */
+       Perl_ck_fun,    /* sqrt */
+       Perl_ck_fun,    /* int */
+       Perl_ck_fun,    /* hex */
+       Perl_ck_fun,    /* oct */
+       Perl_ck_fun,    /* abs */
+       Perl_ck_lengthconst,/* length */
+       Perl_ck_fun,    /* substr */
+       Perl_ck_fun,    /* vec */
+       Perl_ck_index,  /* index */
+       Perl_ck_index,  /* rindex */
+       Perl_ck_fun_locale,/* sprintf */
+       Perl_ck_fun,    /* formline */
+       Perl_ck_fun,    /* ord */
+       Perl_ck_fun,    /* chr */
+       Perl_ck_fun,    /* crypt */
+       Perl_ck_fun_locale,/* ucfirst */
+       Perl_ck_fun_locale,/* lcfirst */
+       Perl_ck_fun_locale,/* uc */
+       Perl_ck_fun_locale,/* lc */
+       Perl_ck_fun,    /* quotemeta */
+       Perl_ck_rvconst,/* rv2av */
+       Perl_ck_null,   /* aelemfast */
+       Perl_ck_null,   /* aelem */
+       Perl_ck_null,   /* aslice */
+       Perl_ck_fun,    /* each */
+       Perl_ck_fun,    /* values */
+       Perl_ck_fun,    /* keys */
+       Perl_ck_delete, /* delete */
+       Perl_ck_exists, /* exists */
+       Perl_ck_rvconst,/* rv2hv */
+       Perl_ck_null,   /* helem */
+       Perl_ck_null,   /* hslice */
+       Perl_ck_fun,    /* unpack */
+       Perl_ck_fun,    /* pack */
+       Perl_ck_split,  /* split */
+       Perl_ck_fun,    /* join */
+       Perl_ck_null,   /* list */
+       Perl_ck_null,   /* lslice */
+       Perl_ck_fun,    /* anonlist */
+       Perl_ck_fun,    /* anonhash */
+       Perl_ck_fun,    /* splice */
+       Perl_ck_fun,    /* push */
+       Perl_ck_shift,  /* pop */
+       Perl_ck_shift,  /* shift */
+       Perl_ck_fun,    /* unshift */
+       Perl_ck_sort,   /* sort */
+       Perl_ck_fun,    /* reverse */
+       Perl_ck_grep,   /* grepstart */
+       Perl_ck_null,   /* grepwhile */
+       Perl_ck_grep,   /* mapstart */
+       Perl_ck_null,   /* mapwhile */
+       Perl_ck_null,   /* range */
+       Perl_ck_null,   /* flip */
+       Perl_ck_null,   /* flop */
+       Perl_ck_null,   /* and */
+       Perl_ck_null,   /* or */
+       Perl_ck_null,   /* xor */
+       Perl_ck_null,   /* cond_expr */
+       Perl_ck_null,   /* andassign */
+       Perl_ck_null,   /* orassign */
+       Perl_ck_null,   /* method */
+       Perl_ck_subr,   /* entersub */
+       Perl_ck_null,   /* leavesub */
+       Perl_ck_fun,    /* caller */
+       Perl_ck_fun,    /* warn */
+       Perl_ck_fun,    /* die */
+       Perl_ck_fun,    /* reset */
+       Perl_ck_null,   /* lineseq */
+       Perl_ck_null,   /* nextstate */
+       Perl_ck_null,   /* dbstate */
+       Perl_ck_null,   /* unstack */
+       Perl_ck_null,   /* enter */
+       Perl_ck_null,   /* leave */
+       Perl_ck_null,   /* scope */
+       Perl_ck_null,   /* enteriter */
+       Perl_ck_null,   /* iter */
+       Perl_ck_null,   /* enterloop */
+       Perl_ck_null,   /* leaveloop */
+       Perl_ck_null,   /* return */
+       Perl_ck_null,   /* last */
+       Perl_ck_null,   /* next */
+       Perl_ck_null,   /* redo */
+       Perl_ck_null,   /* dump */
+       Perl_ck_null,   /* goto */
+       Perl_ck_fun,    /* exit */
+       Perl_ck_fun,    /* open */
+       Perl_ck_fun,    /* close */
+       Perl_ck_fun,    /* pipe_op */
+       Perl_ck_fun,    /* fileno */
+       Perl_ck_fun,    /* umask */
+       Perl_ck_fun,    /* binmode */
+       Perl_ck_fun,    /* tie */
+       Perl_ck_fun,    /* untie */
+       Perl_ck_fun,    /* tied */
+       Perl_ck_fun,    /* dbmopen */
+       Perl_ck_fun,    /* dbmclose */
+       Perl_ck_select, /* sselect */
+       Perl_ck_select, /* select */
+       Perl_ck_eof,    /* getc */
+       Perl_ck_fun,    /* read */
+       Perl_ck_fun,    /* enterwrite */
+       Perl_ck_null,   /* leavewrite */
+       Perl_ck_listiob,/* prtf */
+       Perl_ck_listiob,/* print */
+       Perl_ck_fun,    /* sysopen */
+       Perl_ck_fun,    /* sysseek */
+       Perl_ck_fun,    /* sysread */
+       Perl_ck_fun,    /* syswrite */
+       Perl_ck_fun,    /* send */
+       Perl_ck_fun,    /* recv */
+       Perl_ck_eof,    /* eof */
+       Perl_ck_fun,    /* tell */
+       Perl_ck_fun,    /* seek */
+       Perl_ck_trunc,  /* truncate */
+       Perl_ck_fun,    /* fcntl */
+       Perl_ck_fun,    /* ioctl */
+       Perl_ck_fun,    /* flock */
+       Perl_ck_fun,    /* socket */
+       Perl_ck_fun,    /* sockpair */
+       Perl_ck_fun,    /* bind */
+       Perl_ck_fun,    /* connect */
+       Perl_ck_fun,    /* listen */
+       Perl_ck_fun,    /* accept */
+       Perl_ck_fun,    /* shutdown */
+       Perl_ck_fun,    /* gsockopt */
+       Perl_ck_fun,    /* ssockopt */
+       Perl_ck_fun,    /* getsockname */
+       Perl_ck_fun,    /* getpeername */
+       Perl_ck_ftst,   /* lstat */
+       Perl_ck_ftst,   /* stat */
+       Perl_ck_ftst,   /* ftrread */
+       Perl_ck_ftst,   /* ftrwrite */
+       Perl_ck_ftst,   /* ftrexec */
+       Perl_ck_ftst,   /* fteread */
+       Perl_ck_ftst,   /* ftewrite */
+       Perl_ck_ftst,   /* fteexec */
+       Perl_ck_ftst,   /* ftis */
+       Perl_ck_ftst,   /* fteowned */
+       Perl_ck_ftst,   /* ftrowned */
+       Perl_ck_ftst,   /* ftzero */
+       Perl_ck_ftst,   /* ftsize */
+       Perl_ck_ftst,   /* ftmtime */
+       Perl_ck_ftst,   /* ftatime */
+       Perl_ck_ftst,   /* ftctime */
+       Perl_ck_ftst,   /* ftsock */
+       Perl_ck_ftst,   /* ftchr */
+       Perl_ck_ftst,   /* ftblk */
+       Perl_ck_ftst,   /* ftfile */
+       Perl_ck_ftst,   /* ftdir */
+       Perl_ck_ftst,   /* ftpipe */
+       Perl_ck_ftst,   /* ftlink */
+       Perl_ck_ftst,   /* ftsuid */
+       Perl_ck_ftst,   /* ftsgid */
+       Perl_ck_ftst,   /* ftsvtx */
+       Perl_ck_ftst,   /* fttty */
+       Perl_ck_ftst,   /* fttext */
+       Perl_ck_ftst,   /* ftbinary */
+       Perl_ck_fun,    /* chdir */
+       Perl_ck_fun,    /* chown */
+       Perl_ck_fun,    /* chroot */
+       Perl_ck_fun,    /* unlink */
+       Perl_ck_fun,    /* chmod */
+       Perl_ck_fun,    /* utime */
+       Perl_ck_fun,    /* rename */
+       Perl_ck_fun,    /* link */
+       Perl_ck_fun,    /* symlink */
+       Perl_ck_fun,    /* readlink */
+       Perl_ck_fun,    /* mkdir */
+       Perl_ck_fun,    /* rmdir */
+       Perl_ck_fun,    /* open_dir */
+       Perl_ck_fun,    /* readdir */
+       Perl_ck_fun,    /* telldir */
+       Perl_ck_fun,    /* seekdir */
+       Perl_ck_fun,    /* rewinddir */
+       Perl_ck_fun,    /* closedir */
+       Perl_ck_null,   /* fork */
+       Perl_ck_null,   /* wait */
+       Perl_ck_fun,    /* waitpid */
+       Perl_ck_exec,   /* system */
+       Perl_ck_exec,   /* exec */
+       Perl_ck_fun,    /* kill */
+       Perl_ck_null,   /* getppid */
+       Perl_ck_fun,    /* getpgrp */
+       Perl_ck_fun,    /* setpgrp */
+       Perl_ck_fun,    /* getpriority */
+       Perl_ck_fun,    /* setpriority */
+       Perl_ck_null,   /* time */
+       Perl_ck_null,   /* tms */
+       Perl_ck_fun,    /* localtime */
+       Perl_ck_fun,    /* gmtime */
+       Perl_ck_fun,    /* alarm */
+       Perl_ck_fun,    /* sleep */
+       Perl_ck_fun,    /* shmget */
+       Perl_ck_fun,    /* shmctl */
+       Perl_ck_fun,    /* shmread */
+       Perl_ck_fun,    /* shmwrite */
+       Perl_ck_fun,    /* msgget */
+       Perl_ck_fun,    /* msgctl */
+       Perl_ck_fun,    /* msgsnd */
+       Perl_ck_fun,    /* msgrcv */
+       Perl_ck_fun,    /* semget */
+       Perl_ck_fun,    /* semctl */
+       Perl_ck_fun,    /* semop */
+       Perl_ck_require,/* require */
+       Perl_ck_fun,    /* dofile */
+       Perl_ck_eval,   /* entereval */
+       Perl_ck_null,   /* leaveeval */
+       Perl_ck_null,   /* entertry */
+       Perl_ck_null,   /* leavetry */
+       Perl_ck_fun,    /* ghbyname */
+       Perl_ck_fun,    /* ghbyaddr */
+       Perl_ck_null,   /* ghostent */
+       Perl_ck_fun,    /* gnbyname */
+       Perl_ck_fun,    /* gnbyaddr */
+       Perl_ck_null,   /* gnetent */
+       Perl_ck_fun,    /* gpbyname */
+       Perl_ck_fun,    /* gpbynumber */
+       Perl_ck_null,   /* gprotoent */
+       Perl_ck_fun,    /* gsbyname */
+       Perl_ck_fun,    /* gsbyport */
+       Perl_ck_null,   /* gservent */
+       Perl_ck_fun,    /* shostent */
+       Perl_ck_fun,    /* snetent */
+       Perl_ck_fun,    /* sprotoent */
+       Perl_ck_fun,    /* sservent */
+       Perl_ck_null,   /* ehostent */
+       Perl_ck_null,   /* enetent */
+       Perl_ck_null,   /* eprotoent */
+       Perl_ck_null,   /* eservent */
+       Perl_ck_fun,    /* gpwnam */
+       Perl_ck_fun,    /* gpwuid */
+       Perl_ck_null,   /* gpwent */
+       Perl_ck_null,   /* spwent */
+       Perl_ck_null,   /* epwent */
+       Perl_ck_fun,    /* ggrnam */
+       Perl_ck_fun,    /* ggrgid */
+       Perl_ck_null,   /* ggrent */
+       Perl_ck_null,   /* sgrent */
+       Perl_ck_null,   /* egrent */
+       Perl_ck_null,   /* getlogin */
+       Perl_ck_fun,    /* syscall */
+       Perl_ck_rfun,   /* lock */
+       Perl_ck_null,   /* threadsv */
 };
 #endif
 
index 7ca580b..b9b0b8a 100755 (executable)
--- a/opcode.pl
+++ b/opcode.pl
@@ -29,10 +29,10 @@ while (<DATA>) {
 
 $i = 0;
 print <<"END";
-#define pp_i_preinc pp_preinc
-#define pp_i_predec pp_predec
-#define pp_i_postinc pp_postinc
-#define pp_i_postdec pp_postdec
+#define Perl_pp_i_preinc Perl_pp_preinc
+#define Perl_pp_i_predec Perl_pp_predec
+#define Perl_pp_i_postinc Perl_pp_postinc
+#define Perl_pp_i_postdec Perl_pp_postdec
 
 typedef enum {
 END
@@ -82,8 +82,8 @@ START_EXTERN_C
 
 #undef PERL_CKDEF
 #undef PERL_PPDEF
-#define PERL_CKDEF(s) OP *s (OP *o);
-#define PERL_PPDEF(s) OP *s (ARGSproto);
+#define PERL_CKDEF(s) OP *s (pTHX_ OP *o);
+#define PERL_PPDEF(s) OP *s (pTHX_ ARGSproto);
 
 #include "pp_proto.h"
 
@@ -115,7 +115,7 @@ EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto) = {
 END
 
 for (@ops) {
-    print "\tpp_$_,\n";
+    print "\tPerl_pp_$_,\n";
 }
 
 print <<END;
@@ -134,7 +134,7 @@ EXT OP * (CPERLscope(*PL_check)[]) (OP *op) = {
 END
 
 for (@ops) {
-    print "\t", &tab(3, "$check{$_},"), "/* $_ */\n";
+    print "\t", &tab(3, "Perl_$check{$_},"), "/* $_ */\n";
 }
 
 print <<END;
@@ -218,8 +218,8 @@ open PP, '>pp_proto.h' or die "Error creating pp_proto.h: $!";
 open PPSYM, '>pp.sym' or die "Error creating pp.sym: $!";
 
 for (sort keys %ckname) {
-    print PP "PERL_CKDEF($_)\n";
-    print PPSYM "$_\n";
+    print PP "PERL_CKDEF(Perl_$_)\n";
+    print PPSYM "Perl_$_\n";
 #OP *\t", &tab(3,$_),"(OP* o);\n";
 }
 
@@ -227,8 +227,8 @@ print PP "\n\n";
 
 for (@ops) {
     next if /^i_(pre|post)(inc|dec)$/;
-    print PP "PERL_PPDEF(pp_$_)\n";
-    print PPSYM "pp_$_\n";
+    print PP "PERL_PPDEF(Perl_pp_$_)\n";
+    print PPSYM "Perl_pp_$_\n";
 }
 
 close PP or die "Error closing pp_proto.h: $!";
diff --git a/perl.c b/perl.c
index 7fad9f0..87aa870 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -12,6 +12,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_PERL_C
 #include "perl.h"
 
 /* XXX If this causes problems, set i_unistd=undef in the hint file.  */
@@ -43,41 +44,8 @@ char *getenv (char *); /* Usually in <stdlib.h> */
 #endif
 
 #ifdef PERL_OBJECT
-static I32 read_e_script (CPerlObj* pPerl, int idx, SV *buf_sv, int maxlen);
-#else
-static void find_beginning (void);
-static void forbid_setid (char *);
-static void incpush (char *, int);
-static void init_interp (void);
-static void init_ids (void);
-static void init_debugger (void);
-static void init_lexer (void);
-static void init_main_stash (void);
-static void *perl_parse_body (va_list args);
-static void *perl_run_body (va_list args);
-static void *perl_call_body (va_list args);
-static void perl_call_xbody (OP *myop, int is_eval);
-static void *call_list_body (va_list args);
-#ifdef USE_THREADS
-static struct perl_thread * init_main_thread (void);
-#endif /* USE_THREADS */
-static void init_perllib (void);
-static void init_postdump_symbols (int, char **, char **);
-static void init_predump_symbols (void);
-static void my_exit_jump (void) __attribute__((noreturn));
-static void nuke_stacks (void);
-static void open_script (char *, bool, SV *, int *fd);
-static void usage (char *);
-#ifdef IAMSUID
-static int  fd_on_nosuid_fs (int);
-#endif
-static void validate_suid (char *, char*, int);
-static I32 read_e_script (int idx, SV *buf_sv, int maxlen);
-#endif
-
-#ifdef PERL_OBJECT
 CPerlObj* perl_alloc(IPerlMem* ipM, IPerlEnv* ipE, IPerlStdIO* ipStd,
-                                            IPerlLIO* ipLIO, IPerlDir* ipD, IPerlSock* ipS, IPerlProc* ipP)
+                    IPerlLIO* ipLIO, IPerlDir* ipD, IPerlSock* ipS, IPerlProc* ipP)
 {
     CPerlObj* pPerl = new(ipM) CPerlObj(ipM, ipE, ipStd, ipLIO, ipD, ipS, ipP);
     if(pPerl != NULL)
@@ -87,7 +55,7 @@ CPerlObj* perl_alloc(IPerlMem* ipM, IPerlEnv* ipE, IPerlStdIO* ipStd,
 }
 #else
 PerlInterpreter *
-perl_alloc(void)
+perl_alloc(pTHX)
 {
     PerlInterpreter *sv_interp;
 
@@ -98,11 +66,7 @@ perl_alloc(void)
 #endif /* PERL_OBJECT */
 
 void
-#ifdef PERL_OBJECT
-perl_construct(void)
-#else
 perl_construct(register PerlInterpreter *sv_interp)
-#endif
 {
 #ifdef USE_THREADS
     int i;
@@ -240,11 +204,7 @@ perl_construct(register PerlInterpreter *sv_interp)
 }
 
 void
-#ifdef PERL_OBJECT
-perl_destruct(void)
-#else
 perl_destruct(register PerlInterpreter *sv_interp)
-#endif
 {
     dTHR;
     int destruct_level;  /* 0=none, 1=full, 2=full with checks */
@@ -602,11 +562,7 @@ perl_destruct(register PerlInterpreter *sv_interp)
 }
 
 void
-#ifdef PERL_OBJECT
-perl_free(void)
-#else
 perl_free(PerlInterpreter *sv_interp)
-#endif
 {
 #ifdef PERL_OBJECT
        Safefree(this);
@@ -618,11 +574,7 @@ perl_free(PerlInterpreter *sv_interp)
 }
 
 void
-#ifdef PERL_OBJECT
-perl_atexit(void (*fn) (CPerlObj*,void *), void *ptr)
-#else
-perl_atexit(void (*fn) (void *), void *ptr)
-#endif
+Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr)
 {
     Renew(PL_exitlist, PL_exitlistlen+1, PerlExitListEntry);
     PL_exitlist[PL_exitlistlen].fn = fn;
@@ -630,18 +582,8 @@ perl_atexit(void (*fn) (void *), void *ptr)
     ++PL_exitlistlen;
 }
 
-#ifdef PERL_OBJECT
-    typedef void (*xs_init_t)(CPerlObj*);
-#else
-    typedef void (*xs_init_t)(void);
-#endif
-
 int
-#ifdef PERL_OBJECT
-perl_parse(xs_init_t xsinit, int argc, char **argv, char **env)
-#else
-perl_parse(PerlInterpreter *sv_interp, xs_init_t xsinit, int argc, char **argv, char **env)
-#endif
+perl_parse(PerlInterpreter *sv_interp, XSINIT_t xsinit, int argc, char **argv, char **env)
 {
     dTHR;
     I32 oldscope;
@@ -696,7 +638,7 @@ setuid perl scripts securely.\n");
     oldscope = PL_scopestack_ix;
     PL_dowarn = G_WARN_OFF;
 
-    CALLPROTECT(&ret, FUNC_NAME_TO_PTR(perl_parse_body), env, xsinit);
+    CALLPROTECT(&ret, FUNC_NAME_TO_PTR(parse_body), env, xsinit);
     switch (ret) {
     case 0:
        return 0;
@@ -720,7 +662,7 @@ setuid perl scripts securely.\n");
 }
 
 STATIC void *
-perl_parse_body(va_list args)
+parse_body(pTHX_ va_list args)
 {
     dTHR;
     int argc = PL_origargc;
@@ -734,7 +676,7 @@ perl_parse_body(va_list args)
     register SV *sv;
     register char *s;
 
-    xs_init_t xsinit = va_arg(args, xs_init_t);
+    XSINIT_t xsinit = va_arg(args, XSINIT_t);
 
     sv_setpvn(PL_linestr,"",0);
     sv = newSVpvn("",0);               /* first used for -I flags */
@@ -1032,7 +974,7 @@ print \"  \\@INC:\\n    @INC\\n\";");
     /* now that script is parsed, we can modify record separator */
     SvREFCNT_dec(PL_rs);
     PL_rs = SvREFCNT_inc(PL_nrs);
-    sv_setsv(perl_get_sv("/", TRUE), PL_rs);
+    sv_setsv(get_sv("/", TRUE), PL_rs);
     if (PL_do_undump)
        my_unexec();
 
@@ -1053,11 +995,7 @@ print \"  \\@INC:\\n    @INC\\n\";");
 }
 
 int
-#ifdef PERL_OBJECT
-perl_run(void)
-#else
 perl_run(PerlInterpreter *sv_interp)
-#endif
 {
     dTHR;
     I32 oldscope;
@@ -1071,7 +1009,7 @@ perl_run(PerlInterpreter *sv_interp)
     oldscope = PL_scopestack_ix;
 
  redo_body:
-    CALLPROTECT(&ret, FUNC_NAME_TO_PTR(perl_run_body), oldscope);
+    CALLPROTECT(&ret, FUNC_NAME_TO_PTR(run_body), oldscope);
     switch (ret) {
     case 1:
        cxstack_ix = -1;                /* start context stack again */
@@ -1104,7 +1042,7 @@ perl_run(PerlInterpreter *sv_interp)
 }
 
 STATIC void *
-perl_run_body(va_list args)
+run_body(pTHX_ va_list args)
 {
     dTHR;
     I32 oldscope = va_arg(args, I32);
@@ -1145,7 +1083,7 @@ perl_run_body(va_list args)
 }
 
 SV*
-perl_get_sv(const char *name, I32 create)
+Perl_get_sv(pTHX_ const char *name, I32 create)
 {
     GV *gv;
 #ifdef USE_THREADS
@@ -1164,7 +1102,7 @@ perl_get_sv(const char *name, I32 create)
 }
 
 AV*
-perl_get_av(const char *name, I32 create)
+Perl_get_av(pTHX_ const char *name, I32 create)
 {
     GV* gv = gv_fetchpv(name, create, SVt_PVAV);
     if (create)
@@ -1175,7 +1113,7 @@ perl_get_av(const char *name, I32 create)
 }
 
 HV*
-perl_get_hv(const char *name, I32 create)
+Perl_get_hv(pTHX_ const char *name, I32 create)
 {
     GV* gv = gv_fetchpv(name, create, SVt_PVHV);
     if (create)
@@ -1186,7 +1124,7 @@ perl_get_hv(const char *name, I32 create)
 }
 
 CV*
-perl_get_cv(const char *name, I32 create)
+Perl_get_cv(pTHX_ const char *name, I32 create)
 {
     GV* gv = gv_fetchpv(name, create, SVt_PVCV);
     /* XXX unsafe for threads if eval_owner isn't held */
@@ -1206,7 +1144,7 @@ perl_get_cv(const char *name, I32 create)
 /* Be sure to refetch the stack pointer after calling these routines. */
 
 I32
-perl_call_argv(const char *sub_name, I32 flags, register char **argv)
+Perl_call_argv(pTHX_ const char *sub_name, I32 flags, register char **argv)
               
                        /* See G_* flags in cop.h */
                        /* null terminated arg list */
@@ -1221,19 +1159,19 @@ perl_call_argv(const char *sub_name, I32 flags, register char **argv)
        }
        PUTBACK;
     }
-    return perl_call_pv(sub_name, flags);
+    return call_pv(sub_name, flags);
 }
 
 I32
-perl_call_pv(const char *sub_name, I32 flags)
+Perl_call_pv(pTHX_ const char *sub_name, I32 flags)
                        /* name of the subroutine */
                        /* See G_* flags in cop.h */
 {
-    return perl_call_sv((SV*)perl_get_cv(sub_name, TRUE), flags);
+    return call_sv((SV*)get_cv(sub_name, TRUE), flags);
 }
 
 I32
-perl_call_method(const char *methname, I32 flags)
+Perl_call_method(pTHX_ const char *methname, I32 flags)
                                /* name of the subroutine */
                        /* See G_* flags in cop.h */
 {
@@ -1246,12 +1184,12 @@ perl_call_method(const char *methname, I32 flags)
     pp_method(ARGS);
        if(PL_op == &myop)
                PL_op = Nullop;
-    return perl_call_sv(*PL_stack_sp--, flags);
+    return call_sv(*PL_stack_sp--, flags);
 }
 
 /* May be called with any of a CV, a GV, or an SV containing the name. */
 I32
-perl_call_sv(SV *sv, I32 flags)
+Perl_call_sv(pTHX_ SV *sv, I32 flags)
        
                        /* See G_* flags in cop.h */
 {
@@ -1295,7 +1233,7 @@ perl_call_sv(SV *sv, I32 flags)
 
     if (!(flags & G_EVAL)) {
        CATCH_SET(TRUE);
-       perl_call_xbody((OP*)&myop, FALSE);
+       call_xbody((OP*)&myop, FALSE);
        retval = PL_stack_sp - (PL_stack_base + oldmark);
        CATCH_SET(FALSE);
     }
@@ -1324,7 +1262,7 @@ perl_call_sv(SV *sv, I32 flags)
        PL_markstack_ptr++;
 
   redo_body:
-       CALLPROTECT(&ret, FUNC_NAME_TO_PTR(perl_call_body), (OP*)&myop, FALSE);
+       CALLPROTECT(&ret, FUNC_NAME_TO_PTR(call_body), (OP*)&myop, FALSE);
        switch (ret) {
        case 0:
            retval = PL_stack_sp - (PL_stack_base + oldmark);
@@ -1384,17 +1322,17 @@ perl_call_sv(SV *sv, I32 flags)
 }
 
 STATIC void *
-perl_call_body(va_list args)
+call_body(pTHX_ va_list args)
 {
     OP *myop = va_arg(args, OP*);
     int is_eval = va_arg(args, int);
 
-    perl_call_xbody(myop, is_eval);
+    call_xbody(myop, is_eval);
     return NULL;
 }
 
 STATIC void
-perl_call_xbody(OP *myop, int is_eval)
+call_xbody(pTHX_ OP *myop, int is_eval)
 {
     dTHR;
 
@@ -1411,7 +1349,7 @@ perl_call_xbody(OP *myop, int is_eval)
 /* Eval a string. The G_EVAL flag is always assumed. */
 
 I32
-perl_eval_sv(SV *sv, I32 flags)
+Perl_eval_sv(pTHX_ SV *sv, I32 flags)
        
                        /* See G_* flags in cop.h */
 {
@@ -1446,7 +1384,7 @@ perl_eval_sv(SV *sv, I32 flags)
        myop.op_flags |= OPf_SPECIAL;
 
  redo_body:
-    CALLPROTECT(&ret, FUNC_NAME_TO_PTR(perl_call_body), (OP*)&myop, TRUE);
+    CALLPROTECT(&ret, FUNC_NAME_TO_PTR(call_body), (OP*)&myop, TRUE);
     switch (ret) {
     case 0:
        retval = PL_stack_sp - (PL_stack_base + oldmark);
@@ -1491,13 +1429,13 @@ perl_eval_sv(SV *sv, I32 flags)
 }
 
 SV*
-perl_eval_pv(const char *p, I32 croak_on_error)
+Perl_eval_pv(pTHX_ const char *p, I32 croak_on_error)
 {
     dSP;
     SV* sv = newSVpv(p, 0);
 
     PUSHMARK(SP);
-    perl_eval_sv(sv, G_SCALAR);
+    eval_sv(sv, G_SCALAR);
     SvREFCNT_dec(sv);
 
     SPAGAIN;
@@ -1515,7 +1453,7 @@ perl_eval_pv(const char *p, I32 croak_on_error)
 /* Require a module. */
 
 void
-perl_require_pv(const char *pv)
+Perl_require_pv(pTHX_ const char *pv)
 {
     SV* sv;
     dSP;
@@ -1525,13 +1463,13 @@ perl_require_pv(const char *pv)
     sv_setpv(sv, "require '");
     sv_catpv(sv, pv);
     sv_catpv(sv, "'");
-    perl_eval_sv(sv, G_DISCARD);
+    eval_sv(sv, G_DISCARD);
     SPAGAIN;
     POPSTACK;
 }
 
 void
-magicname(char *sym, char *name, I32 namlen)
+Perl_magicname(pTHX_ char *sym, char *name, I32 namlen)
 {
     register GV *gv;
 
@@ -1540,8 +1478,7 @@ magicname(char *sym, char *name, I32 namlen)
 }
 
 STATIC void
-usage(char *name)              /* XXX move this out into a module ? */
-           
+usage(pTHX_ char *name)                /* XXX move this out into a module ? */
 {
     /* This message really ought to be max 23 lines.
      * Removed -h because the user already knows that opton. Others? */
@@ -1583,7 +1520,7 @@ NULL
 /* This routine handles any switches that can be given during run */
 
 char *
-moreswitches(char *s)
+Perl_moreswitches(pTHX_ char *s)
 {
     I32 numlen;
     U32 rschar;
@@ -1873,7 +1810,7 @@ Internet, point your browser at http://www.perl.com/, the Perl Home Page.\n\n");
 /* Known to work with -DUNEXEC and using unexelf.c from GNU emacs-20.2 */
 
 void
-my_unexec(void)
+Perl_my_unexec(pTHX)
 {
 #ifdef UNEXEC
     SV*    prog;
@@ -1901,7 +1838,7 @@ my_unexec(void)
 
 /* initialize curinterp */
 STATIC void
-init_interp(void)
+init_interp(pTHX)
 {
 
 #ifdef PERL_OBJECT             /* XXX kludge */
@@ -1968,7 +1905,7 @@ init_interp(void)
 }
 
 STATIC void
-init_main_stash(void)
+init_main_stash(pTHX)
 {
     dTHR;
     GV *gv;
@@ -2007,11 +1944,11 @@ init_main_stash(void)
     PL_debstash = GvHV(gv_fetchpv("DB::", GV_ADDMULTI, SVt_PVHV));
     PL_globalstash = GvHV(gv_fetchpv("CORE::GLOBAL::", GV_ADDMULTI, SVt_PVHV));
     /* We must init $/ before switches are processed. */
-    sv_setpvn(perl_get_sv("/", TRUE), "\n", 1);
+    sv_setpvn(get_sv("/", TRUE), "\n", 1);
 }
 
 STATIC void
-open_script(char *scriptname, bool dosearch, SV *sv, int *fdscript)
+open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript)
 {
     dTHR;
     register char *s;
@@ -2174,8 +2111,8 @@ sed %s -e \"/^[^#]/b\" \
  * here so that metaconfig picks them up. */
 
 #ifdef IAMSUID
-static int
-fd_on_nosuid_fs(int fd)
+STATIC int
+fd_on_nosuid_fs(pTHX_ int fd)
 {
     int on_nosuid  = 0;
     int check_okay = 0;
@@ -2238,7 +2175,7 @@ fd_on_nosuid_fs(int fd)
 #endif /* IAMSUID */
 
 STATIC void
-validate_suid(char *validarg, char *scriptname, int fdscript)
+validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript)
 {
     int which;
 
@@ -2483,7 +2420,7 @@ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n");
 }
 
 STATIC void
-find_beginning(void)
+find_beginning(pTHX)
 {
     register char *s, *s2;
 
@@ -2513,7 +2450,7 @@ find_beginning(void)
 
 
 STATIC void
-init_ids(void)
+init_ids(pTHX)
 {
     PL_uid = (int)PerlProc_getuid();
     PL_euid = (int)PerlProc_geteuid();
@@ -2527,7 +2464,7 @@ init_ids(void)
 }
 
 STATIC void
-forbid_setid(char *s)
+forbid_setid(pTHX_ char *s)
 {
     if (PL_euid != PL_uid)
         croak("No %s allowed while running setuid", s);
@@ -2536,7 +2473,7 @@ forbid_setid(char *s)
 }
 
 STATIC void
-init_debugger(void)
+init_debugger(pTHX)
 {
     dTHR;
     PL_curstash = PL_debstash;
@@ -2561,7 +2498,7 @@ init_debugger(void)
 #endif
 
 void
-init_stacks(ARGSproto)
+Perl_init_stacks(pTHX_ ARGSproto)
 {
     /* start with 128-item stack and 8K cxstack */
     PL_curstackinfo = new_stackinfo(REASONABLE(128),
@@ -2601,7 +2538,7 @@ init_stacks(ARGSproto)
 #undef REASONABLE
 
 STATIC void
-nuke_stacks(void)
+nuke_stacks(pTHX)
 {
     dTHR;
     while (PL_curstackinfo->si_next)
@@ -2629,7 +2566,7 @@ static PerlIO *tmpfp;  /* moved outside init_lexer() because of UNICOS bug */
 #endif
 
 STATIC void
-init_lexer(void)
+init_lexer(pTHX)
 {
 #ifdef PERL_OBJECT
        PerlIO *tmpfp;
@@ -2642,13 +2579,13 @@ init_lexer(void)
 }
 
 STATIC void
-init_predump_symbols(void)
+init_predump_symbols(pTHX)
 {
     dTHR;
     GV *tmpgv;
     GV *othergv;
 
-    sv_setpvn(perl_get_sv("\"", TRUE), " ", 1);
+    sv_setpvn(get_sv("\"", TRUE), " ", 1);
     PL_stdingv = gv_fetchpv("STDIN",TRUE, SVt_PVIO);
     GvMULTI_on(PL_stdingv);
     IoIFP(GvIOp(PL_stdingv)) = PerlIO_stdin();
@@ -2678,7 +2615,7 @@ init_predump_symbols(void)
 }
 
 STATIC void
-init_postdump_symbols(register int argc, register char **argv, register char **env)
+init_postdump_symbols(pTHX_ register int argc, register char **argv, register char **env)
 {
     dTHR;
     char *s;
@@ -2766,7 +2703,7 @@ init_postdump_symbols(register int argc, register char **argv, register char **e
 }
 
 STATIC void
-init_perllib(void)
+init_perllib(pTHX)
 {
     char *s;
     if (!PL_tainting) {
@@ -2837,7 +2774,7 @@ init_perllib(void)
 #endif 
 
 STATIC void
-incpush(char *p, int addsubdirs)
+incpush(pTHX_ char *p, int addsubdirs)
 {
     SV *subdir = Nullsv;
 
@@ -2925,7 +2862,7 @@ incpush(char *p, int addsubdirs)
 
 #ifdef USE_THREADS
 STATIC struct perl_thread *
-init_main_thread()
+init_main_thread(pTHX)
 {
     struct perl_thread *thr;
     XPV *xpv;
@@ -2996,7 +2933,7 @@ init_main_thread()
 #endif /* USE_THREADS */
 
 void
-call_list(I32 oldscope, AV *paramList)
+Perl_call_list(pTHX_ I32 oldscope, AV *paramList)
 {
     dTHR;
     SV *atsv = ERRSV;
@@ -3059,18 +2996,18 @@ call_list(I32 oldscope, AV *paramList)
 }
 
 STATIC void *
-call_list_body(va_list args)
+call_list_body(pTHX_ va_list args)
 {
     dTHR;
     CV *cv = va_arg(args, CV*);
 
     PUSHMARK(PL_stack_sp);
-    perl_call_sv((SV*)cv, G_EVAL|G_DISCARD);
+    call_sv((SV*)cv, G_EVAL|G_DISCARD);
     return NULL;
 }
 
 void
-my_exit(U32 status)
+Perl_my_exit(pTHX_ U32 status)
 {
     dTHR;
 
@@ -3091,7 +3028,7 @@ my_exit(U32 status)
 }
 
 void
-my_failure_exit(void)
+Perl_my_failure_exit(pTHX)
 {
 #ifdef VMS
     if (vaxc$errno & 1) {
@@ -3120,7 +3057,7 @@ my_failure_exit(void)
 }
 
 STATIC void
-my_exit_jump(void)
+my_exit_jump(pTHX)
 {
     dTHR;
     register PERL_CONTEXT *cx;
@@ -3149,12 +3086,8 @@ my_exit_jump(void)
 
 #include "XSUB.h"
 
-static I32
-#ifdef PERL_OBJECT
-read_e_script(CPerlObj *pPerl, int idx, SV *buf_sv, int maxlen)
-#else
-read_e_script(int idx, SV *buf_sv, int maxlen)
-#endif
+STATIC I32
+read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen)
 {
     char *p, *nl;
     p  = SvPVX(PL_e_script);
diff --git a/perl.h b/perl.h
index 4ecfcde..cd46b7d 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1522,6 +1522,22 @@ union any {
             (PerlLIO_setmode(PerlIO_fileno(fp), O_BINARY) != -1 ? TRUE : NULL)
 #endif
 
+#ifndef pTHX
+#  define pTHX void
+#  define pTHX_
+#  define _pTHX
+#endif
+
+#ifndef aTHX
+#  define aTHX
+#  define aTHX_
+#  define _aTHX
+#endif
+
+#ifndef STATIC
+#  define STATIC static
+#endif
+
 #include "regexp.h"
 #include "sv.h"
 #include "util.h"
@@ -1565,7 +1581,8 @@ struct _sublex_info {
 
 typedef struct magic_state MGS;        /* struct magic_state defined in mg.c */
 
-#ifdef PERL_OBJECT
+/* Length of a variant. */
+
 typedef struct {
     I32 len_min;
     I32 len_delta;
@@ -1585,7 +1602,6 @@ typedef struct {
 } scan_data_t;
 
 typedef I32 CHECKPOINT;
-#endif /* PERL_OBJECT */
 
 #if defined(iAPX286) || defined(M_I286) || defined(I80286)
 #   define I286
@@ -2377,8 +2393,46 @@ typedef void *Thread;
 
 #include "thread.h"
 #include "pp.h"
+
+#ifndef PERL_CALLCONV
+#  define PERL_CALLCONV
+#endif 
+
+#ifdef PERL_OBJECT
+#  define VIRTUAL virtual PERL_CALLCONV
+#else
+#  define VIRTUAL PERL_CALLCONV
+START_EXTERN_C
+#endif
+
+#ifndef NEXT30_NO_ATTRIBUTE
+#  ifndef HASATTRIBUTE       /* disable GNU-cc attribute checking? */
+#    ifdef  __attribute__      /* Avoid possible redefinition errors */
+#      undef  __attribute__
+#    endif
+#    define __attribute__(attr)
+#  endif
+#endif
+
+#ifdef USE_PURE_BISON
+int Perl_yylex(pTHX_ YYSTYPE *lvalp, int *lcharp);
+#endif
+
+typedef void (*DESTRUCTORFUNC_t) (pTHX_ void*);
+typedef void (*SVFUNC_t) (pTHX_ SV*);
+typedef I32 (*SVCOMPARE_t) (pTHX_ SV*, SV*);
+typedef void (*XSINIT_t) (pTHX);
+typedef void (*ATEXIT_t) (pTHX_ void*);
+typedef void (*XSUBADDR_t) (pTHX_ CV *);
+
 #include "proto.h"
 
+#include "pp_proto.h"
+
+#ifndef PERL_OBJECT
+END_EXTERN_C
+#endif
+
 /* The following must follow proto.h as #defines mess up syntax */
 
 #if !defined(PERL_FOR_X2P)
@@ -2733,14 +2787,14 @@ typedef struct am_table_short AMTS;
 
 #define SET_NUMERIC_STANDARD() \
     STMT_START {                               \
-       if (! PL_numeric_standard)                      \
-           perl_set_numeric_standard();        \
+       if (! PL_numeric_standard)              \
+           set_numeric_standard();             \
     } STMT_END
 
 #define SET_NUMERIC_LOCAL() \
     STMT_START {                               \
        if (! PL_numeric_local)                 \
-           perl_set_numeric_local();           \
+           set_numeric_local();                \
     } STMT_END
 
 #else /* !USE_LOCALE_NUMERIC */
index 5a15ed4..ffacdac 100644 (file)
@@ -54,7 +54,7 @@ echo "#!" > perl.exp
 
 syms="global.sym pp.sym"
 
-sed -n '/^[A-Za-z]/ s/^/Perl_/p' $syms                 >> perl.exp
+cat $syms                                              >> perl.exp
 sed -n '/^[A-Za-z]/ s/^/PL_/p'   globvar.sym           >> perl.exp
 
 sed -n 's/^PERLVAR.*(G\([^[,]*\).*/PL_\1/p' perlvars.h >> perl.exp
@@ -75,36 +75,8 @@ fi
 # not actually be defined, but there's no harm in that).
 #
 
-cat >>perl.exp <<END
-perl_init_i18nl10n
-perl_init_i18nl14n
-perl_new_collate
-perl_new_ctype
-perl_new_numeric
-perl_set_numeric_local
-perl_set_numeric_standard
-perl_alloc
-perl_construct
-perl_destruct
-perl_free
-perl_parse
-perl_run
-perl_get_sv
-perl_get_av
-perl_get_hv
-perl_get_cv
-perl_call_argv
-perl_call_pv
-perl_call_method
-perl_call_sv
-perl_eval_pv
-perl_eval_sv
-perl_require_pv
-Perl_malloc
-Perl_calloc
-Perl_realloc
-Perl_mfree
-END
+#cat >>perl.exp <<END
+#END
 
 # The shebang line nicely sorts as the first one.
 sort -o perl.exp -u perl.exp
index e1f4353..a71acba 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -21,6 +21,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_PERLIO_C
 #include "perl.h"
 
 #ifdef PERLIO_IS_STDIO 
diff --git a/perly.c b/perly.c
index 938a574..8b77303 100644 (file)
--- a/perly.c
+++ b/perly.c
@@ -4,6 +4,7 @@ static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
 #define YYBYACC 1
 #line 16 "perly.y"
 #include "EXTERN.h"
+#define PERL_IN_PERLY_C
 #include "perl.h"
 
 #define yydebug            PL_yydebug
@@ -13,20 +14,7 @@ static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
 #define yyval      PL_yyval
 #define yylval     PL_yylval
 
-#ifdef PERL_OBJECT
-static void
-Dep(CPerlObj *pPerl)
-{
-    pPerl->deprecate("\"do\" to call subroutines");
-}
-#define dep() Dep(this)
-#else
-static void
-dep(void)
-{
-    deprecate("\"do\" to call subroutines");
-}
-#endif
+#define dep() deprecate("\"do\" to call subroutines")
 
 #line 30 "perly.y"
 #define YYERRCODE 256
@@ -1329,7 +1317,7 @@ struct ysv {
 };
 
 void
-yydestruct(void *ptr)
+Perl_yydestruct(pTHX_ void *ptr)
 {
     struct ysv* ysave = (struct ysv*)ptr;
     if (ysave->yyss) Safefree(ysave->yyss);
@@ -1344,7 +1332,7 @@ yydestruct(void *ptr)
 }
 
 int
-yyparse(void)
+Perl_yyparse(pTHX)
 {
     register int yym, yyn, yystate;
     register short *yyssp;
diff --git a/perly.y b/perly.y
index 565439b..f1de7c7 100644 (file)
--- a/perly.y
+++ b/perly.y
 
 %{
 #include "EXTERN.h"
+#define PERL_IN_PERLY_C
 #include "perl.h"
 
-static void
-dep(void)
-{
-    deprecate("\"do\" to call subroutines");
-}
+#define dep() deprecate("\"do\" to call subroutines")
 
 %}
 
diff --git a/pp.c b/pp.c
index 7a3e3cb..fed72bb 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -13,6 +13,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_PP_C
 #include "perl.h"
 
 /*
@@ -110,12 +111,6 @@ typedef unsigned UBW;
 #  define CAT32(sv,p)  sv_catpvn(sv, (char*)(p), SIZE32)
 #endif
 
-#ifndef PERL_OBJECT
-static void doencodes (SV* sv, char* s, I32 len);
-static SV* refto (SV* sv);
-static U32 seed (void);
-#endif
-
 /* variations on pp_null */
 
 #ifdef I_UNISTD
@@ -521,7 +516,7 @@ PP(pp_refgen)
 }
 
 STATIC SV*
-refto(SV *sv)
+refto(pTHX_ SV *sv)
 {
     SV* rv;
 
@@ -1707,7 +1702,7 @@ PP(pp_srand)
 }
 
 STATIC U32
-seed(void)
+seed(pTHX)
 {
     /*
      * This is really just a quick hack which grabs various garbage
@@ -2895,7 +2890,7 @@ PP(pp_splice)
        PUSHMARK(MARK);
        PUTBACK;
        ENTER;
-       perl_call_method("SPLICE",GIMME_V);
+       call_method("SPLICE",GIMME_V);
        LEAVE;
        SPAGAIN;
        RETURN;
@@ -3089,7 +3084,7 @@ PP(pp_push)
        PUSHMARK(MARK);
        PUTBACK;
        ENTER;
-       perl_call_method("PUSH",G_SCALAR|G_DISCARD);
+       call_method("PUSH",G_SCALAR|G_DISCARD);
        LEAVE;
        SPAGAIN;
     }
@@ -3145,7 +3140,7 @@ PP(pp_unshift)
        PUSHMARK(MARK);
        PUTBACK;
        ENTER;
-       perl_call_method("UNSHIFT",G_SCALAR|G_DISCARD);
+       call_method("UNSHIFT",G_SCALAR|G_DISCARD);
        LEAVE;
        SPAGAIN;
     }
@@ -3229,8 +3224,8 @@ PP(pp_reverse)
     RETURN;
 }
 
-STATIC SV      *
-mul128(SV *sv, U8 m)
+STATIC SV *
+mul128(pTHX_ SV *sv, U8 m)
 {
   STRLEN          len;
   char           *s = SvPV(sv, len);
@@ -4215,7 +4210,7 @@ PP(pp_unpack)
 }
 
 STATIC void
-doencodes(register SV *sv, register char *s, register I32 len)
+doencodes(pTHX_ register SV *sv, register char *s, register I32 len)
 {
     char hunk[5];
 
@@ -4243,7 +4238,7 @@ doencodes(register SV *sv, register char *s, register I32 len)
 }
 
 STATIC SV *
-is_an_int(char *s, STRLEN l)
+is_an_int(pTHX_ char *s, STRLEN l)
 {
   STRLEN        n_a;
   SV             *result = newSVpvn(s, l);
@@ -4291,10 +4286,9 @@ is_an_int(char *s, STRLEN l)
   return (result);
 }
 
+/* pnum must be '\0' terminated */
 STATIC int
-div128(SV *pnum, bool *done)
-                                           /* must be '\0' terminated */
-
+div128(pTHX_ SV *pnum, bool *done)
 {
   STRLEN          len;
   char           *s = SvPV(pnum, len);
@@ -5115,7 +5109,7 @@ PP(pp_split)
        else {
            PUTBACK;
            ENTER;
-           perl_call_method("PUSH",G_SCALAR|G_DISCARD);
+           call_method("PUSH",G_SCALAR|G_DISCARD);
            LEAVE;
            SPAGAIN;
            if (gimme == G_ARRAY) {
@@ -5143,7 +5137,7 @@ PP(pp_split)
 
 #ifdef USE_THREADS
 void
-unlock_condpair(void *svv)
+Perl_unlock_condpair(pTHX_ void *svv)
 {
     dTHR;
     MAGIC *mg = mg_find((SV*)svv, 'm');
diff --git a/pp.sym b/pp.sym
index 609739b..d3747af 100644 (file)
--- a/pp.sym
+++ b/pp.sym
-ck_anoncode
-ck_bitop
-ck_concat
-ck_defined
-ck_delete
-ck_eof
-ck_eval
-ck_exec
-ck_exists
-ck_ftst
-ck_fun
-ck_fun_locale
-ck_glob
-ck_grep
-ck_index
-ck_lengthconst
-ck_lfun
-ck_listiob
-ck_match
-ck_null
-ck_repeat
-ck_require
-ck_rfun
-ck_rvconst
-ck_scmp
-ck_select
-ck_shift
-ck_sort
-ck_spair
-ck_split
-ck_subr
-ck_svconst
-ck_trunc
-pp_null
-pp_stub
-pp_scalar
-pp_pushmark
-pp_wantarray
-pp_const
-pp_gvsv
-pp_gv
-pp_gelem
-pp_padsv
-pp_padav
-pp_padhv
-pp_padany
-pp_pushre
-pp_rv2gv
-pp_rv2sv
-pp_av2arylen
-pp_rv2cv
-pp_anoncode
-pp_prototype
-pp_refgen
-pp_srefgen
-pp_ref
-pp_bless
-pp_backtick
-pp_glob
-pp_readline
-pp_rcatline
-pp_regcmaybe
-pp_regcreset
-pp_regcomp
-pp_match
-pp_qr
-pp_subst
-pp_substcont
-pp_trans
-pp_sassign
-pp_aassign
-pp_chop
-pp_schop
-pp_chomp
-pp_schomp
-pp_defined
-pp_undef
-pp_study
-pp_pos
-pp_preinc
-pp_predec
-pp_postinc
-pp_postdec
-pp_pow
-pp_multiply
-pp_i_multiply
-pp_divide
-pp_i_divide
-pp_modulo
-pp_i_modulo
-pp_repeat
-pp_add
-pp_i_add
-pp_subtract
-pp_i_subtract
-pp_concat
-pp_stringify
-pp_left_shift
-pp_right_shift
-pp_lt
-pp_i_lt
-pp_gt
-pp_i_gt
-pp_le
-pp_i_le
-pp_ge
-pp_i_ge
-pp_eq
-pp_i_eq
-pp_ne
-pp_i_ne
-pp_ncmp
-pp_i_ncmp
-pp_slt
-pp_sgt
-pp_sle
-pp_sge
-pp_seq
-pp_sne
-pp_scmp
-pp_bit_and
-pp_bit_xor
-pp_bit_or
-pp_negate
-pp_i_negate
-pp_not
-pp_complement
-pp_atan2
-pp_sin
-pp_cos
-pp_rand
-pp_srand
-pp_exp
-pp_log
-pp_sqrt
-pp_int
-pp_hex
-pp_oct
-pp_abs
-pp_length
-pp_substr
-pp_vec
-pp_index
-pp_rindex
-pp_sprintf
-pp_formline
-pp_ord
-pp_chr
-pp_crypt
-pp_ucfirst
-pp_lcfirst
-pp_uc
-pp_lc
-pp_quotemeta
-pp_rv2av
-pp_aelemfast
-pp_aelem
-pp_aslice
-pp_each
-pp_values
-pp_keys
-pp_delete
-pp_exists
-pp_rv2hv
-pp_helem
-pp_hslice
-pp_unpack
-pp_pack
-pp_split
-pp_join
-pp_list
-pp_lslice
-pp_anonlist
-pp_anonhash
-pp_splice
-pp_push
-pp_pop
-pp_shift
-pp_unshift
-pp_sort
-pp_reverse
-pp_grepstart
-pp_grepwhile
-pp_mapstart
-pp_mapwhile
-pp_range
-pp_flip
-pp_flop
-pp_and
-pp_or
-pp_xor
-pp_cond_expr
-pp_andassign
-pp_orassign
-pp_method
-pp_entersub
-pp_leavesub
-pp_caller
-pp_warn
-pp_die
-pp_reset
-pp_lineseq
-pp_nextstate
-pp_dbstate
-pp_unstack
-pp_enter
-pp_leave
-pp_scope
-pp_enteriter
-pp_iter
-pp_enterloop
-pp_leaveloop
-pp_return
-pp_last
-pp_next
-pp_redo
-pp_dump
-pp_goto
-pp_exit
-pp_open
-pp_close
-pp_pipe_op
-pp_fileno
-pp_umask
-pp_binmode
-pp_tie
-pp_untie
-pp_tied
-pp_dbmopen
-pp_dbmclose
-pp_sselect
-pp_select
-pp_getc
-pp_read
-pp_enterwrite
-pp_leavewrite
-pp_prtf
-pp_print
-pp_sysopen
-pp_sysseek
-pp_sysread
-pp_syswrite
-pp_send
-pp_recv
-pp_eof
-pp_tell
-pp_seek
-pp_truncate
-pp_fcntl
-pp_ioctl
-pp_flock
-pp_socket
-pp_sockpair
-pp_bind
-pp_connect
-pp_listen
-pp_accept
-pp_shutdown
-pp_gsockopt
-pp_ssockopt
-pp_getsockname
-pp_getpeername
-pp_lstat
-pp_stat
-pp_ftrread
-pp_ftrwrite
-pp_ftrexec
-pp_fteread
-pp_ftewrite
-pp_fteexec
-pp_ftis
-pp_fteowned
-pp_ftrowned
-pp_ftzero
-pp_ftsize
-pp_ftmtime
-pp_ftatime
-pp_ftctime
-pp_ftsock
-pp_ftchr
-pp_ftblk
-pp_ftfile
-pp_ftdir
-pp_ftpipe
-pp_ftlink
-pp_ftsuid
-pp_ftsgid
-pp_ftsvtx
-pp_fttty
-pp_fttext
-pp_ftbinary
-pp_chdir
-pp_chown
-pp_chroot
-pp_unlink
-pp_chmod
-pp_utime
-pp_rename
-pp_link
-pp_symlink
-pp_readlink
-pp_mkdir
-pp_rmdir
-pp_open_dir
-pp_readdir
-pp_telldir
-pp_seekdir
-pp_rewinddir
-pp_closedir
-pp_fork
-pp_wait
-pp_waitpid
-pp_system
-pp_exec
-pp_kill
-pp_getppid
-pp_getpgrp
-pp_setpgrp
-pp_getpriority
-pp_setpriority
-pp_time
-pp_tms
-pp_localtime
-pp_gmtime
-pp_alarm
-pp_sleep
-pp_shmget
-pp_shmctl
-pp_shmread
-pp_shmwrite
-pp_msgget
-pp_msgctl
-pp_msgsnd
-pp_msgrcv
-pp_semget
-pp_semctl
-pp_semop
-pp_require
-pp_dofile
-pp_entereval
-pp_leaveeval
-pp_entertry
-pp_leavetry
-pp_ghbyname
-pp_ghbyaddr
-pp_ghostent
-pp_gnbyname
-pp_gnbyaddr
-pp_gnetent
-pp_gpbyname
-pp_gpbynumber
-pp_gprotoent
-pp_gsbyname
-pp_gsbyport
-pp_gservent
-pp_shostent
-pp_snetent
-pp_sprotoent
-pp_sservent
-pp_ehostent
-pp_enetent
-pp_eprotoent
-pp_eservent
-pp_gpwnam
-pp_gpwuid
-pp_gpwent
-pp_spwent
-pp_epwent
-pp_ggrnam
-pp_ggrgid
-pp_ggrent
-pp_sgrent
-pp_egrent
-pp_getlogin
-pp_syscall
-pp_lock
-pp_threadsv
+Perl_ck_anoncode
+Perl_ck_bitop
+Perl_ck_concat
+Perl_ck_defined
+Perl_ck_delete
+Perl_ck_eof
+Perl_ck_eval
+Perl_ck_exec
+Perl_ck_exists
+Perl_ck_ftst
+Perl_ck_fun
+Perl_ck_fun_locale
+Perl_ck_glob
+Perl_ck_grep
+Perl_ck_index
+Perl_ck_lengthconst
+Perl_ck_lfun
+Perl_ck_listiob
+Perl_ck_match
+Perl_ck_null
+Perl_ck_repeat
+Perl_ck_require
+Perl_ck_rfun
+Perl_ck_rvconst
+Perl_ck_scmp
+Perl_ck_select
+Perl_ck_shift
+Perl_ck_sort
+Perl_ck_spair
+Perl_ck_split
+Perl_ck_subr
+Perl_ck_svconst
+Perl_ck_trunc
+Perl_pp_null
+Perl_pp_stub
+Perl_pp_scalar
+Perl_pp_pushmark
+Perl_pp_wantarray
+Perl_pp_const
+Perl_pp_gvsv
+Perl_pp_gv
+Perl_pp_gelem
+Perl_pp_padsv
+Perl_pp_padav
+Perl_pp_padhv
+Perl_pp_padany
+Perl_pp_pushre
+Perl_pp_rv2gv
+Perl_pp_rv2sv
+Perl_pp_av2arylen
+Perl_pp_rv2cv
+Perl_pp_anoncode
+Perl_pp_prototype
+Perl_pp_refgen
+Perl_pp_srefgen
+Perl_pp_ref
+Perl_pp_bless
+Perl_pp_backtick
+Perl_pp_glob
+Perl_pp_readline
+Perl_pp_rcatline
+Perl_pp_regcmaybe
+Perl_pp_regcreset
+Perl_pp_regcomp
+Perl_pp_match
+Perl_pp_qr
+Perl_pp_subst
+Perl_pp_substcont
+Perl_pp_trans
+Perl_pp_sassign
+Perl_pp_aassign
+Perl_pp_chop
+Perl_pp_schop
+Perl_pp_chomp
+Perl_pp_schomp
+Perl_pp_defined
+Perl_pp_undef
+Perl_pp_study
+Perl_pp_pos
+Perl_pp_preinc
+Perl_pp_predec
+Perl_pp_postinc
+Perl_pp_postdec
+Perl_pp_pow
+Perl_pp_multiply
+Perl_pp_i_multiply
+Perl_pp_divide
+Perl_pp_i_divide
+Perl_pp_modulo
+Perl_pp_i_modulo
+Perl_pp_repeat
+Perl_pp_add
+Perl_pp_i_add
+Perl_pp_subtract
+Perl_pp_i_subtract
+Perl_pp_concat
+Perl_pp_stringify
+Perl_pp_left_shift
+Perl_pp_right_shift
+Perl_pp_lt
+Perl_pp_i_lt
+Perl_pp_gt
+Perl_pp_i_gt
+Perl_pp_le
+Perl_pp_i_le
+Perl_pp_ge
+Perl_pp_i_ge
+Perl_pp_eq
+Perl_pp_i_eq
+Perl_pp_ne
+Perl_pp_i_ne
+Perl_pp_ncmp
+Perl_pp_i_ncmp
+Perl_pp_slt
+Perl_pp_sgt
+Perl_pp_sle
+Perl_pp_sge
+Perl_pp_seq
+Perl_pp_sne
+Perl_pp_scmp
+Perl_pp_bit_and
+Perl_pp_bit_xor
+Perl_pp_bit_or
+Perl_pp_negate
+Perl_pp_i_negate
+Perl_pp_not
+Perl_pp_complement
+Perl_pp_atan2
+Perl_pp_sin
+Perl_pp_cos
+Perl_pp_rand
+Perl_pp_srand
+Perl_pp_exp
+Perl_pp_log
+Perl_pp_sqrt
+Perl_pp_int
+Perl_pp_hex
+Perl_pp_oct
+Perl_pp_abs
+Perl_pp_length
+Perl_pp_substr
+Perl_pp_vec
+Perl_pp_index
+Perl_pp_rindex
+Perl_pp_sprintf
+Perl_pp_formline
+Perl_pp_ord
+Perl_pp_chr
+Perl_pp_crypt
+Perl_pp_ucfirst
+Perl_pp_lcfirst
+Perl_pp_uc
+Perl_pp_lc
+Perl_pp_quotemeta
+Perl_pp_rv2av
+Perl_pp_aelemfast
+Perl_pp_aelem
+Perl_pp_aslice
+Perl_pp_each
+Perl_pp_values
+Perl_pp_keys
+Perl_pp_delete
+Perl_pp_exists
+Perl_pp_rv2hv
+Perl_pp_helem
+Perl_pp_hslice
+Perl_pp_unpack
+Perl_pp_pack
+Perl_pp_split
+Perl_pp_join
+Perl_pp_list
+Perl_pp_lslice
+Perl_pp_anonlist
+Perl_pp_anonhash
+Perl_pp_splice
+Perl_pp_push
+Perl_pp_pop
+Perl_pp_shift
+Perl_pp_unshift
+Perl_pp_sort
+Perl_pp_reverse
+Perl_pp_grepstart
+Perl_pp_grepwhile
+Perl_pp_mapstart
+Perl_pp_mapwhile
+Perl_pp_range
+Perl_pp_flip
+Perl_pp_flop
+Perl_pp_and
+Perl_pp_or
+Perl_pp_xor
+Perl_pp_cond_expr
+Perl_pp_andassign
+Perl_pp_orassign
+Perl_pp_method
+Perl_pp_entersub
+Perl_pp_leavesub
+Perl_pp_caller
+Perl_pp_warn
+Perl_pp_die
+Perl_pp_reset
+Perl_pp_lineseq
+Perl_pp_nextstate
+Perl_pp_dbstate
+Perl_pp_unstack
+Perl_pp_enter
+Perl_pp_leave
+Perl_pp_scope
+Perl_pp_enteriter
+Perl_pp_iter
+Perl_pp_enterloop
+Perl_pp_leaveloop
+Perl_pp_return
+Perl_pp_last
+Perl_pp_next
+Perl_pp_redo
+Perl_pp_dump
+Perl_pp_goto
+Perl_pp_exit
+Perl_pp_open
+Perl_pp_close
+Perl_pp_pipe_op
+Perl_pp_fileno
+Perl_pp_umask
+Perl_pp_binmode
+Perl_pp_tie
+Perl_pp_untie
+Perl_pp_tied
+Perl_pp_dbmopen
+Perl_pp_dbmclose
+Perl_pp_sselect
+Perl_pp_select
+Perl_pp_getc
+Perl_pp_read
+Perl_pp_enterwrite
+Perl_pp_leavewrite
+Perl_pp_prtf
+Perl_pp_print
+Perl_pp_sysopen
+Perl_pp_sysseek
+Perl_pp_sysread
+Perl_pp_syswrite
+Perl_pp_send
+Perl_pp_recv
+Perl_pp_eof
+Perl_pp_tell
+Perl_pp_seek
+Perl_pp_truncate
+Perl_pp_fcntl
+Perl_pp_ioctl
+Perl_pp_flock
+Perl_pp_socket
+Perl_pp_sockpair
+Perl_pp_bind
+Perl_pp_connect
+Perl_pp_listen
+Perl_pp_accept
+Perl_pp_shutdown
+Perl_pp_gsockopt
+Perl_pp_ssockopt
+Perl_pp_getsockname
+Perl_pp_getpeername
+Perl_pp_lstat
+Perl_pp_stat
+Perl_pp_ftrread
+Perl_pp_ftrwrite
+Perl_pp_ftrexec
+Perl_pp_fteread
+Perl_pp_ftewrite
+Perl_pp_fteexec
+Perl_pp_ftis
+Perl_pp_fteowned
+Perl_pp_ftrowned
+Perl_pp_ftzero
+Perl_pp_ftsize
+Perl_pp_ftmtime
+Perl_pp_ftatime
+Perl_pp_ftctime
+Perl_pp_ftsock
+Perl_pp_ftchr
+Perl_pp_ftblk
+Perl_pp_ftfile
+Perl_pp_ftdir
+Perl_pp_ftpipe
+Perl_pp_ftlink
+Perl_pp_ftsuid
+Perl_pp_ftsgid
+Perl_pp_ftsvtx
+Perl_pp_fttty
+Perl_pp_fttext
+Perl_pp_ftbinary
+Perl_pp_chdir
+Perl_pp_chown
+Perl_pp_chroot
+Perl_pp_unlink
+Perl_pp_chmod
+Perl_pp_utime
+Perl_pp_rename
+Perl_pp_link
+Perl_pp_symlink
+Perl_pp_readlink
+Perl_pp_mkdir
+Perl_pp_rmdir
+Perl_pp_open_dir
+Perl_pp_readdir
+Perl_pp_telldir
+Perl_pp_seekdir
+Perl_pp_rewinddir
+Perl_pp_closedir
+Perl_pp_fork
+Perl_pp_wait
+Perl_pp_waitpid
+Perl_pp_system
+Perl_pp_exec
+Perl_pp_kill
+Perl_pp_getppid
+Perl_pp_getpgrp
+Perl_pp_setpgrp
+Perl_pp_getpriority
+Perl_pp_setpriority
+Perl_pp_time
+Perl_pp_tms
+Perl_pp_localtime
+Perl_pp_gmtime
+Perl_pp_alarm
+Perl_pp_sleep
+Perl_pp_shmget
+Perl_pp_shmctl
+Perl_pp_shmread
+Perl_pp_shmwrite
+Perl_pp_msgget
+Perl_pp_msgctl
+Perl_pp_msgsnd
+Perl_pp_msgrcv
+Perl_pp_semget
+Perl_pp_semctl
+Perl_pp_semop
+Perl_pp_require
+Perl_pp_dofile
+Perl_pp_entereval
+Perl_pp_leaveeval
+Perl_pp_entertry
+Perl_pp_leavetry
+Perl_pp_ghbyname
+Perl_pp_ghbyaddr
+Perl_pp_ghostent
+Perl_pp_gnbyname
+Perl_pp_gnbyaddr
+Perl_pp_gnetent
+Perl_pp_gpbyname
+Perl_pp_gpbynumber
+Perl_pp_gprotoent
+Perl_pp_gsbyname
+Perl_pp_gsbyport
+Perl_pp_gservent
+Perl_pp_shostent
+Perl_pp_snetent
+Perl_pp_sprotoent
+Perl_pp_sservent
+Perl_pp_ehostent
+Perl_pp_enetent
+Perl_pp_eprotoent
+Perl_pp_eservent
+Perl_pp_gpwnam
+Perl_pp_gpwuid
+Perl_pp_gpwent
+Perl_pp_spwent
+Perl_pp_epwent
+Perl_pp_ggrnam
+Perl_pp_ggrgid
+Perl_pp_ggrent
+Perl_pp_sgrent
+Perl_pp_egrent
+Perl_pp_getlogin
+Perl_pp_syscall
+Perl_pp_lock
+Perl_pp_threadsv
index d44a490..f6baf4e 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -17,6 +17,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_PP_CTL_C
 #include "perl.h"
 
 #ifndef WORD_ALIGN
 #define CALLOP this->*PL_op
 #else
 #define CALLOP *PL_op
-static void *docatch_body (va_list args);
-static OP *docatch (OP *o);
-static OP *dofindlabel (OP *o, char *label, OP **opstack, OP **oplimit);
-static void doparseform (SV *sv);
-static I32 dopoptoeval (I32 startingblock);
-static I32 dopoptolabel (char *label);
-static I32 dopoptoloop (I32 startingblock);
-static I32 dopoptosub (I32 startingblock);
-static I32 dopoptosub_at (PERL_CONTEXT *cxstk, I32 startingblock);
-static void save_lines (AV *array, SV *sv);
-static I32 sortcv (SV *a, SV *b);
-static void qsortsv (SV **array, size_t num_elts, I32 (*fun)(SV *a, SV *b));
-static OP *doeval (int gimme, OP** startop);
-static PerlIO *doopen_pmc (const char *name, const char *mode);
-static I32 sv_ncmp (SV *a, SV *b);
-static I32 sv_i_ncmp (SV *a, SV *b);
-static I32 amagic_ncmp (SV *a, SV *b);
-static I32 amagic_i_ncmp (SV *a, SV *b);
-static I32 amagic_cmp (SV *str1, SV *str2);
-static I32 amagic_cmp_locale (SV *str1, SV *str2);
-static void free_closures (void);
 #endif
 
 PP(pp_wantarray)
@@ -218,7 +198,7 @@ PP(pp_substcont)
 }
 
 void
-rxres_save(void **rsp, REGEXP *rx)
+Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx)
 {
     UV *p = (UV*)*rsp;
     U32 i;
@@ -246,7 +226,7 @@ rxres_save(void **rsp, REGEXP *rx)
 }
 
 void
-rxres_restore(void **rsp, REGEXP *rx)
+Perl_rxres_restore(pTHX_ void **rsp, REGEXP *rx)
 {
     UV *p = (UV*)*rsp;
     U32 i;
@@ -267,7 +247,7 @@ rxres_restore(void **rsp, REGEXP *rx)
 }
 
 void
-rxres_free(void **rsp)
+Perl_rxres_free(pTHX_ void **rsp)
 {
     UV *p = (UV*)*rsp;
 
@@ -762,14 +742,15 @@ PP(pp_mapwhile)
 }
 
 STATIC I32
-sv_ncmp (SV *a, SV *b)
+sv_ncmp(pTHX_ SV *a, SV *b)
 {
     double nv1 = SvNV(a);
     double nv2 = SvNV(b);
     return nv1 < nv2 ? -1 : nv1 > nv2 ? 1 : 0;
 }
+
 STATIC I32
-sv_i_ncmp (SV *a, SV *b)
+sv_i_ncmp(pTHX_ SV *a, SV *b)
 {
     IV iv1 = SvIV(a);
     IV iv2 = SvIV(b);
@@ -787,7 +768,7 @@ sv_i_ncmp (SV *a, SV *b)
        } STMT_END
 
 STATIC I32
-amagic_ncmp(register SV *a, register SV *b)
+amagic_ncmp(pTHX_ register SV *a, register SV *b)
 {
     SV *tmpsv;
     tryCALL_AMAGICbin(a,b,ncmp,&tmpsv);
@@ -809,7 +790,7 @@ amagic_ncmp(register SV *a, register SV *b)
 }
 
 STATIC I32
-amagic_i_ncmp(register SV *a, register SV *b)
+amagic_i_ncmp(pTHX_ register SV *a, register SV *b)
 {
     SV *tmpsv;
     tryCALL_AMAGICbin(a,b,ncmp,&tmpsv);
@@ -831,7 +812,7 @@ amagic_i_ncmp(register SV *a, register SV *b)
 }
 
 STATIC I32
-amagic_cmp(register SV *str1, register SV *str2)
+amagic_cmp(pTHX_ register SV *str1, register SV *str2)
 {
     SV *tmpsv;
     tryCALL_AMAGICbin(str1,str2,scmp,&tmpsv);
@@ -853,7 +834,7 @@ amagic_cmp(register SV *str1, register SV *str2)
 }
 
 STATIC I32
-amagic_cmp_locale(register SV *str1, register SV *str2)
+amagic_cmp_locale(pTHX_ register SV *str1, register SV *str2)
 {
     SV *tmpsv;
     tryCALL_AMAGICbin(str1,str2,scmp,&tmpsv);
@@ -1135,7 +1116,7 @@ PP(pp_flop)
 /* Control. */
 
 STATIC I32
-dopoptolabel(char *label)
+dopoptolabel(pTHX_ char *label)
 {
     dTHR;
     register I32 i;
@@ -1179,14 +1160,14 @@ dopoptolabel(char *label)
 }
 
 I32
-dowantarray(void)
+Perl_dowantarray(pTHX)
 {
     I32 gimme = block_gimme();
     return (gimme == G_VOID) ? G_SCALAR : gimme;
 }
 
 I32
-block_gimme(void)
+Perl_block_gimme(pTHX)
 {
     dTHR;
     I32 cxix;
@@ -1210,14 +1191,14 @@ block_gimme(void)
 }
 
 STATIC I32
-dopoptosub(I32 startingblock)
+dopoptosub(pTHX_ I32 startingblock)
 {
     dTHR;
     return dopoptosub_at(cxstack, startingblock);
 }
 
 STATIC I32
-dopoptosub_at(PERL_CONTEXT *cxstk, I32 startingblock)
+dopoptosub_at(pTHX_ PERL_CONTEXT *cxstk, I32 startingblock)
 {
     dTHR;
     I32 i;
@@ -1237,7 +1218,7 @@ dopoptosub_at(PERL_CONTEXT *cxstk, I32 startingblock)
 }
 
 STATIC I32
-dopoptoeval(I32 startingblock)
+dopoptoeval(pTHX_ I32 startingblock)
 {
     dTHR;
     I32 i;
@@ -1256,7 +1237,7 @@ dopoptoeval(I32 startingblock)
 }
 
 STATIC I32
-dopoptoloop(I32 startingblock)
+dopoptoloop(pTHX_ I32 startingblock)
 {
     dTHR;
     I32 i;
@@ -1293,7 +1274,7 @@ dopoptoloop(I32 startingblock)
 }
 
 void
-dounwind(I32 cxix)
+Perl_dounwind(pTHX_ I32 cxix)
 {
     dTHR;
     register PERL_CONTEXT *cx;
@@ -1335,7 +1316,7 @@ dounwind(I32 cxix)
  * relying on the incidental global values.
  */
 STATIC void
-free_closures(void)
+free_closures(pTHX)
 {
     dTHR;
     SV **svp = AvARRAY(PL_comppad_name);
@@ -1362,7 +1343,7 @@ free_closures(void)
 }
 
 OP *
-die_where(char *message, STRLEN msglen)
+Perl_die_where(pTHX_ char *message, STRLEN msglen)
 {
     dSP;
     STRLEN n_a;
@@ -1596,7 +1577,7 @@ PP(pp_caller)
 }
 
 STATIC I32
-sortcv(SV *a, SV *b)
+sortcv(pTHX_ SV *a, SV *b)
 {
     dTHR;
     I32 oldsaveix = PL_savestack_ix;
@@ -2029,7 +2010,7 @@ PP(pp_redo)
 }
 
 STATIC OP *
-dofindlabel(OP *o, char *label, OP **opstack, OP **oplimit)
+dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit)
 {
     OP *kid;
     OP **ops = opstack;
@@ -2335,9 +2316,9 @@ PP(pp_goto)
                        gv_efullname3(sv, CvGV(cv), Nullch);
                    }
                    if (  PERLDB_GOTO
-                         && (gotocv = perl_get_cv("DB::goto", FALSE)) ) {
+                         && (gotocv = get_cv("DB::goto", FALSE)) ) {
                        PUSHMARK( PL_stack_sp );
-                       perl_call_sv((SV*)gotocv, G_SCALAR | G_NODEBUG);
+                       call_sv((SV*)gotocv, G_SCALAR | G_NODEBUG);
                        PL_stack_sp--;
                    }
                }
@@ -2513,7 +2494,7 @@ PP(pp_cswitch)
 /* Eval. */
 
 STATIC void
-save_lines(AV *array, SV *sv)
+save_lines(pTHX_ AV *array, SV *sv)
 {
     register char *s = SvPVX(sv);
     register char *send = SvPVX(sv) + SvCUR(sv);
@@ -2537,14 +2518,14 @@ save_lines(AV *array, SV *sv)
 }
 
 STATIC void *
-docatch_body(va_list args)
+docatch_body(pTHX_ va_list args)
 {
     CALLRUNOPS();
     return NULL;
 }
 
 STATIC OP *
-docatch(OP *o)
+docatch(pTHX_ OP *o)
 {
     dTHR;
     int ret;
@@ -2576,7 +2557,7 @@ docatch(OP *o)
 }
 
 OP *
-sv_compile_2op(SV *sv, OP** startop, char *code, AV** avp)
+Perl_sv_compile_2op(pTHX_ SV *sv, OP** startop, char *code, AV** avp)
 /* sv Text to convert to OP tree. */
 /* startop op_free() this to undo. */
 /* code Short string id of the caller. */
@@ -2644,7 +2625,7 @@ sv_compile_2op(SV *sv, OP** startop, char *code, AV** avp)
 
 /* With USE_THREADS, eval_owner must be held on entry to doeval */
 STATIC OP *
-doeval(int gimme, OP** startop)
+doeval(pTHX_ int gimme, OP** startop)
 {
     dSP;
     OP *saveop = PL_op;
@@ -2795,13 +2776,13 @@ doeval(int gimme, OP** startop)
 
     /* Register with debugger: */
     if (PERLDB_INTER && saveop->op_type == OP_REQUIRE) {
-       CV *cv = perl_get_cv("DB::postponed", FALSE);
+       CV *cv = get_cv("DB::postponed", FALSE);
        if (cv) {
            dSP;
            PUSHMARK(SP);
            XPUSHs((SV*)PL_compiling.cop_filegv);
            PUTBACK;
-           perl_call_sv((SV*)cv, G_DISCARD);
+           call_sv((SV*)cv, G_DISCARD);
        }
     }
 
@@ -2821,7 +2802,7 @@ doeval(int gimme, OP** startop)
 }
 
 STATIC PerlIO *
-doopen_pmc(const char *name, const char *mode)
+doopen_pmc(pTHX_ const char *name, const char *mode)
 {
     STRLEN namelen = strlen(name);
     PerlIO *fp;
@@ -3218,7 +3199,7 @@ PP(pp_leavetry)
 }
 
 STATIC void
-doparseform(SV *sv)
+doparseform(pTHX_ SV *sv)
 {
     STRLEN len;
     register char *s = SvPV_force(sv, len);
@@ -3506,7 +3487,7 @@ struct partition_stack_entry {
    ((this->*compare)(array[elt1], array[elt2]))
 #else
 #define qsort_cmp(elt1, elt2) \
-   ((*compare)(array[elt1], array[elt2]))
+   ((*compare)(aTHX_ array[elt1], array[elt2]))
 #endif
 
 #ifdef QSORT_ORDER_GUESS
@@ -3588,11 +3569,7 @@ doqsort_all_asserts(
 /* ****************************************************************** qsort */
 
 STATIC void
-#ifdef PERL_OBJECT
-qsortsv(SV ** array, size_t num_elts, SVCOMPARE compare)
-#else
-qsortsv(SV ** array, size_t num_elts, I32 (*compare)(SV *a, SV *b))
-#endif
+qsortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t compare)
 {
    register SV * temp;
 
index e6de9bd..36a33ff 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -16,6 +16,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_PP_HOT_C
 #include "perl.h"
 
 #ifdef I_UNISTD
@@ -33,8 +34,8 @@
 /* Hot code. */
 
 #ifdef USE_THREADS
-static void
-unset_cvowner(void *cvarg)
+STATIC void
+unset_cvowner(pTHX_ void *cvarg)
 {
     register CV* cv = (CV *) cvarg;
 #ifdef DEBUGGING
@@ -338,7 +339,7 @@ PP(pp_print)
        *MARK = SvTIED_obj((SV*)gv, mg);
        PUTBACK;
        ENTER;
-       perl_call_method("PRINT", G_SCALAR);
+       call_method("PRINT", G_SCALAR);
        LEAVE;
        SPAGAIN;
        MARK = ORIGMARK + 1;
@@ -1119,7 +1120,7 @@ ret_no:
 }
 
 OP *
-do_readline(void)
+Perl_do_readline(pTHX)
 {
     dSP; dTARGETSTACKED;
     register SV *sv;
@@ -1136,7 +1137,7 @@ do_readline(void)
        XPUSHs(SvTIED_obj((SV*)PL_last_in_gv, mg));
        PUTBACK;
        ENTER;
-       perl_call_method("READLINE", gimme);
+       call_method("READLINE", gimme);
        LEAVE;
        SPAGAIN;
        if (gimme == G_SCALAR)
@@ -2040,7 +2041,7 @@ PP(pp_leavesub)
 }
 
 STATIC CV *
-get_db_sub(SV **svp, CV *cv)
+get_db_sub(pTHX_ SV **svp, CV *cv)
 {
     dTHR;
     SV *dbsv = GvSV(PL_DBsub);
@@ -2108,7 +2109,7 @@ PP(pp_entersub)
                DIE(PL_no_usym, "a subroutine");
            if (PL_op->op_private & HINT_STRICT_REFS)
                DIE(PL_no_symref, sym, "a subroutine");
-           cv = perl_get_cv(sym, TRUE);
+           cv = get_cv(sym, TRUE);
            break;
        }
        {
@@ -2511,7 +2512,7 @@ try_autoload:
 }
 
 void
-sub_crush_depth(CV *cv)
+Perl_sub_crush_depth(pTHX_ CV *cv)
 {
     if (CvANON(cv))
        warner(WARN_RECURSION, "Deep recursion on anonymous subroutine");
@@ -2566,7 +2567,7 @@ PP(pp_aelem)
 }
 
 void
-vivify_ref(SV *sv, U32 to_what)
+Perl_vivify_ref(pTHX_ SV *sv, U32 to_what)
 {
     if (SvGMAGICAL(sv))
        mg_get(sv);
index 9beb681..b3d092b 100644 (file)
-PERL_CKDEF(ck_anoncode)
-PERL_CKDEF(ck_bitop)
-PERL_CKDEF(ck_concat)
-PERL_CKDEF(ck_defined)
-PERL_CKDEF(ck_delete)
-PERL_CKDEF(ck_eof)
-PERL_CKDEF(ck_eval)
-PERL_CKDEF(ck_exec)
-PERL_CKDEF(ck_exists)
-PERL_CKDEF(ck_ftst)
-PERL_CKDEF(ck_fun)
-PERL_CKDEF(ck_fun_locale)
-PERL_CKDEF(ck_glob)
-PERL_CKDEF(ck_grep)
-PERL_CKDEF(ck_index)
-PERL_CKDEF(ck_lengthconst)
-PERL_CKDEF(ck_lfun)
-PERL_CKDEF(ck_listiob)
-PERL_CKDEF(ck_match)
-PERL_CKDEF(ck_null)
-PERL_CKDEF(ck_repeat)
-PERL_CKDEF(ck_require)
-PERL_CKDEF(ck_rfun)
-PERL_CKDEF(ck_rvconst)
-PERL_CKDEF(ck_scmp)
-PERL_CKDEF(ck_select)
-PERL_CKDEF(ck_shift)
-PERL_CKDEF(ck_sort)
-PERL_CKDEF(ck_spair)
-PERL_CKDEF(ck_split)
-PERL_CKDEF(ck_subr)
-PERL_CKDEF(ck_svconst)
-PERL_CKDEF(ck_trunc)
+PERL_CKDEF(Perl_ck_anoncode)
+PERL_CKDEF(Perl_ck_bitop)
+PERL_CKDEF(Perl_ck_concat)
+PERL_CKDEF(Perl_ck_defined)
+PERL_CKDEF(Perl_ck_delete)
+PERL_CKDEF(Perl_ck_eof)
+PERL_CKDEF(Perl_ck_eval)
+PERL_CKDEF(Perl_ck_exec)
+PERL_CKDEF(Perl_ck_exists)
+PERL_CKDEF(Perl_ck_ftst)
+PERL_CKDEF(Perl_ck_fun)
+PERL_CKDEF(Perl_ck_fun_locale)
+PERL_CKDEF(Perl_ck_glob)
+PERL_CKDEF(Perl_ck_grep)
+PERL_CKDEF(Perl_ck_index)
+PERL_CKDEF(Perl_ck_lengthconst)
+PERL_CKDEF(Perl_ck_lfun)
+PERL_CKDEF(Perl_ck_listiob)
+PERL_CKDEF(Perl_ck_match)
+PERL_CKDEF(Perl_ck_null)
+PERL_CKDEF(Perl_ck_repeat)
+PERL_CKDEF(Perl_ck_require)
+PERL_CKDEF(Perl_ck_rfun)
+PERL_CKDEF(Perl_ck_rvconst)
+PERL_CKDEF(Perl_ck_scmp)
+PERL_CKDEF(Perl_ck_select)
+PERL_CKDEF(Perl_ck_shift)
+PERL_CKDEF(Perl_ck_sort)
+PERL_CKDEF(Perl_ck_spair)
+PERL_CKDEF(Perl_ck_split)
+PERL_CKDEF(Perl_ck_subr)
+PERL_CKDEF(Perl_ck_svconst)
+PERL_CKDEF(Perl_ck_trunc)
 
 
-PERL_PPDEF(pp_null)
-PERL_PPDEF(pp_stub)
-PERL_PPDEF(pp_scalar)
-PERL_PPDEF(pp_pushmark)
-PERL_PPDEF(pp_wantarray)
-PERL_PPDEF(pp_const)
-PERL_PPDEF(pp_gvsv)
-PERL_PPDEF(pp_gv)
-PERL_PPDEF(pp_gelem)
-PERL_PPDEF(pp_padsv)
-PERL_PPDEF(pp_padav)
-PERL_PPDEF(pp_padhv)
-PERL_PPDEF(pp_padany)
-PERL_PPDEF(pp_pushre)
-PERL_PPDEF(pp_rv2gv)
-PERL_PPDEF(pp_rv2sv)
-PERL_PPDEF(pp_av2arylen)
-PERL_PPDEF(pp_rv2cv)
-PERL_PPDEF(pp_anoncode)
-PERL_PPDEF(pp_prototype)
-PERL_PPDEF(pp_refgen)
-PERL_PPDEF(pp_srefgen)
-PERL_PPDEF(pp_ref)
-PERL_PPDEF(pp_bless)
-PERL_PPDEF(pp_backtick)
-PERL_PPDEF(pp_glob)
-PERL_PPDEF(pp_readline)
-PERL_PPDEF(pp_rcatline)
-PERL_PPDEF(pp_regcmaybe)
-PERL_PPDEF(pp_regcreset)
-PERL_PPDEF(pp_regcomp)
-PERL_PPDEF(pp_match)
-PERL_PPDEF(pp_qr)
-PERL_PPDEF(pp_subst)
-PERL_PPDEF(pp_substcont)
-PERL_PPDEF(pp_trans)
-PERL_PPDEF(pp_sassign)
-PERL_PPDEF(pp_aassign)
-PERL_PPDEF(pp_chop)
-PERL_PPDEF(pp_schop)
-PERL_PPDEF(pp_chomp)
-PERL_PPDEF(pp_schomp)
-PERL_PPDEF(pp_defined)
-PERL_PPDEF(pp_undef)
-PERL_PPDEF(pp_study)
-PERL_PPDEF(pp_pos)
-PERL_PPDEF(pp_preinc)
-PERL_PPDEF(pp_predec)
-PERL_PPDEF(pp_postinc)
-PERL_PPDEF(pp_postdec)
-PERL_PPDEF(pp_pow)
-PERL_PPDEF(pp_multiply)
-PERL_PPDEF(pp_i_multiply)
-PERL_PPDEF(pp_divide)
-PERL_PPDEF(pp_i_divide)
-PERL_PPDEF(pp_modulo)
-PERL_PPDEF(pp_i_modulo)
-PERL_PPDEF(pp_repeat)
-PERL_PPDEF(pp_add)
-PERL_PPDEF(pp_i_add)
-PERL_PPDEF(pp_subtract)
-PERL_PPDEF(pp_i_subtract)
-PERL_PPDEF(pp_concat)
-PERL_PPDEF(pp_stringify)
-PERL_PPDEF(pp_left_shift)
-PERL_PPDEF(pp_right_shift)
-PERL_PPDEF(pp_lt)
-PERL_PPDEF(pp_i_lt)
-PERL_PPDEF(pp_gt)
-PERL_PPDEF(pp_i_gt)
-PERL_PPDEF(pp_le)
-PERL_PPDEF(pp_i_le)
-PERL_PPDEF(pp_ge)
-PERL_PPDEF(pp_i_ge)
-PERL_PPDEF(pp_eq)
-PERL_PPDEF(pp_i_eq)
-PERL_PPDEF(pp_ne)
-PERL_PPDEF(pp_i_ne)
-PERL_PPDEF(pp_ncmp)
-PERL_PPDEF(pp_i_ncmp)
-PERL_PPDEF(pp_slt)
-PERL_PPDEF(pp_sgt)
-PERL_PPDEF(pp_sle)
-PERL_PPDEF(pp_sge)
-PERL_PPDEF(pp_seq)
-PERL_PPDEF(pp_sne)
-PERL_PPDEF(pp_scmp)
-PERL_PPDEF(pp_bit_and)
-PERL_PPDEF(pp_bit_xor)
-PERL_PPDEF(pp_bit_or)
-PERL_PPDEF(pp_negate)
-PERL_PPDEF(pp_i_negate)
-PERL_PPDEF(pp_not)
-PERL_PPDEF(pp_complement)
-PERL_PPDEF(pp_atan2)
-PERL_PPDEF(pp_sin)
-PERL_PPDEF(pp_cos)
-PERL_PPDEF(pp_rand)
-PERL_PPDEF(pp_srand)
-PERL_PPDEF(pp_exp)
-PERL_PPDEF(pp_log)
-PERL_PPDEF(pp_sqrt)
-PERL_PPDEF(pp_int)
-PERL_PPDEF(pp_hex)
-PERL_PPDEF(pp_oct)
-PERL_PPDEF(pp_abs)
-PERL_PPDEF(pp_length)
-PERL_PPDEF(pp_substr)
-PERL_PPDEF(pp_vec)
-PERL_PPDEF(pp_index)
-PERL_PPDEF(pp_rindex)
-PERL_PPDEF(pp_sprintf)
-PERL_PPDEF(pp_formline)
-PERL_PPDEF(pp_ord)
-PERL_PPDEF(pp_chr)
-PERL_PPDEF(pp_crypt)
-PERL_PPDEF(pp_ucfirst)
-PERL_PPDEF(pp_lcfirst)
-PERL_PPDEF(pp_uc)
-PERL_PPDEF(pp_lc)
-PERL_PPDEF(pp_quotemeta)
-PERL_PPDEF(pp_rv2av)
-PERL_PPDEF(pp_aelemfast)
-PERL_PPDEF(pp_aelem)
-PERL_PPDEF(pp_aslice)
-PERL_PPDEF(pp_each)
-PERL_PPDEF(pp_values)
-PERL_PPDEF(pp_keys)
-PERL_PPDEF(pp_delete)
-PERL_PPDEF(pp_exists)
-PERL_PPDEF(pp_rv2hv)
-PERL_PPDEF(pp_helem)
-PERL_PPDEF(pp_hslice)
-PERL_PPDEF(pp_unpack)
-PERL_PPDEF(pp_pack)
-PERL_PPDEF(pp_split)
-PERL_PPDEF(pp_join)
-PERL_PPDEF(pp_list)
-PERL_PPDEF(pp_lslice)
-PERL_PPDEF(pp_anonlist)
-PERL_PPDEF(pp_anonhash)
-PERL_PPDEF(pp_splice)
-PERL_PPDEF(pp_push)
-PERL_PPDEF(pp_pop)
-PERL_PPDEF(pp_shift)
-PERL_PPDEF(pp_unshift)
-PERL_PPDEF(pp_sort)
-PERL_PPDEF(pp_reverse)
-PERL_PPDEF(pp_grepstart)
-PERL_PPDEF(pp_grepwhile)
-PERL_PPDEF(pp_mapstart)
-PERL_PPDEF(pp_mapwhile)
-PERL_PPDEF(pp_range)
-PERL_PPDEF(pp_flip)
-PERL_PPDEF(pp_flop)
-PERL_PPDEF(pp_and)
-PERL_PPDEF(pp_or)
-PERL_PPDEF(pp_xor)
-PERL_PPDEF(pp_cond_expr)
-PERL_PPDEF(pp_andassign)
-PERL_PPDEF(pp_orassign)
-PERL_PPDEF(pp_method)
-PERL_PPDEF(pp_entersub)
-PERL_PPDEF(pp_leavesub)
-PERL_PPDEF(pp_caller)
-PERL_PPDEF(pp_warn)
-PERL_PPDEF(pp_die)
-PERL_PPDEF(pp_reset)
-PERL_PPDEF(pp_lineseq)
-PERL_PPDEF(pp_nextstate)
-PERL_PPDEF(pp_dbstate)
-PERL_PPDEF(pp_unstack)
-PERL_PPDEF(pp_enter)
-PERL_PPDEF(pp_leave)
-PERL_PPDEF(pp_scope)
-PERL_PPDEF(pp_enteriter)
-PERL_PPDEF(pp_iter)
-PERL_PPDEF(pp_enterloop)
-PERL_PPDEF(pp_leaveloop)
-PERL_PPDEF(pp_return)
-PERL_PPDEF(pp_last)
-PERL_PPDEF(pp_next)
-PERL_PPDEF(pp_redo)
-PERL_PPDEF(pp_dump)
-PERL_PPDEF(pp_goto)
-PERL_PPDEF(pp_exit)
-PERL_PPDEF(pp_open)
-PERL_PPDEF(pp_close)
-PERL_PPDEF(pp_pipe_op)
-PERL_PPDEF(pp_fileno)
-PERL_PPDEF(pp_umask)
-PERL_PPDEF(pp_binmode)
-PERL_PPDEF(pp_tie)
-PERL_PPDEF(pp_untie)
-PERL_PPDEF(pp_tied)
-PERL_PPDEF(pp_dbmopen)
-PERL_PPDEF(pp_dbmclose)
-PERL_PPDEF(pp_sselect)
-PERL_PPDEF(pp_select)
-PERL_PPDEF(pp_getc)
-PERL_PPDEF(pp_read)
-PERL_PPDEF(pp_enterwrite)
-PERL_PPDEF(pp_leavewrite)
-PERL_PPDEF(pp_prtf)
-PERL_PPDEF(pp_print)
-PERL_PPDEF(pp_sysopen)
-PERL_PPDEF(pp_sysseek)
-PERL_PPDEF(pp_sysread)
-PERL_PPDEF(pp_syswrite)
-PERL_PPDEF(pp_send)
-PERL_PPDEF(pp_recv)
-PERL_PPDEF(pp_eof)
-PERL_PPDEF(pp_tell)
-PERL_PPDEF(pp_seek)
-PERL_PPDEF(pp_truncate)
-PERL_PPDEF(pp_fcntl)
-PERL_PPDEF(pp_ioctl)
-PERL_PPDEF(pp_flock)
-PERL_PPDEF(pp_socket)
-PERL_PPDEF(pp_sockpair)
-PERL_PPDEF(pp_bind)
-PERL_PPDEF(pp_connect)
-PERL_PPDEF(pp_listen)
-PERL_PPDEF(pp_accept)
-PERL_PPDEF(pp_shutdown)
-PERL_PPDEF(pp_gsockopt)
-PERL_PPDEF(pp_ssockopt)
-PERL_PPDEF(pp_getsockname)
-PERL_PPDEF(pp_getpeername)
-PERL_PPDEF(pp_lstat)
-PERL_PPDEF(pp_stat)
-PERL_PPDEF(pp_ftrread)
-PERL_PPDEF(pp_ftrwrite)
-PERL_PPDEF(pp_ftrexec)
-PERL_PPDEF(pp_fteread)
-PERL_PPDEF(pp_ftewrite)
-PERL_PPDEF(pp_fteexec)
-PERL_PPDEF(pp_ftis)
-PERL_PPDEF(pp_fteowned)
-PERL_PPDEF(pp_ftrowned)
-PERL_PPDEF(pp_ftzero)
-PERL_PPDEF(pp_ftsize)
-PERL_PPDEF(pp_ftmtime)
-PERL_PPDEF(pp_ftatime)
-PERL_PPDEF(pp_ftctime)
-PERL_PPDEF(pp_ftsock)
-PERL_PPDEF(pp_ftchr)
-PERL_PPDEF(pp_ftblk)
-PERL_PPDEF(pp_ftfile)
-PERL_PPDEF(pp_ftdir)
-PERL_PPDEF(pp_ftpipe)
-PERL_PPDEF(pp_ftlink)
-PERL_PPDEF(pp_ftsuid)
-PERL_PPDEF(pp_ftsgid)
-PERL_PPDEF(pp_ftsvtx)
-PERL_PPDEF(pp_fttty)
-PERL_PPDEF(pp_fttext)
-PERL_PPDEF(pp_ftbinary)
-PERL_PPDEF(pp_chdir)
-PERL_PPDEF(pp_chown)
-PERL_PPDEF(pp_chroot)
-PERL_PPDEF(pp_unlink)
-PERL_PPDEF(pp_chmod)
-PERL_PPDEF(pp_utime)
-PERL_PPDEF(pp_rename)
-PERL_PPDEF(pp_link)
-PERL_PPDEF(pp_symlink)
-PERL_PPDEF(pp_readlink)
-PERL_PPDEF(pp_mkdir)
-PERL_PPDEF(pp_rmdir)
-PERL_PPDEF(pp_open_dir)
-PERL_PPDEF(pp_readdir)
-PERL_PPDEF(pp_telldir)
-PERL_PPDEF(pp_seekdir)
-PERL_PPDEF(pp_rewinddir)
-PERL_PPDEF(pp_closedir)
-PERL_PPDEF(pp_fork)
-PERL_PPDEF(pp_wait)
-PERL_PPDEF(pp_waitpid)
-PERL_PPDEF(pp_system)
-PERL_PPDEF(pp_exec)
-PERL_PPDEF(pp_kill)
-PERL_PPDEF(pp_getppid)
-PERL_PPDEF(pp_getpgrp)
-PERL_PPDEF(pp_setpgrp)
-PERL_PPDEF(pp_getpriority)
-PERL_PPDEF(pp_setpriority)
-PERL_PPDEF(pp_time)
-PERL_PPDEF(pp_tms)
-PERL_PPDEF(pp_localtime)
-PERL_PPDEF(pp_gmtime)
-PERL_PPDEF(pp_alarm)
-PERL_PPDEF(pp_sleep)
-PERL_PPDEF(pp_shmget)
-PERL_PPDEF(pp_shmctl)
-PERL_PPDEF(pp_shmread)
-PERL_PPDEF(pp_shmwrite)
-PERL_PPDEF(pp_msgget)
-PERL_PPDEF(pp_msgctl)
-PERL_PPDEF(pp_msgsnd)
-PERL_PPDEF(pp_msgrcv)
-PERL_PPDEF(pp_semget)
-PERL_PPDEF(pp_semctl)
-PERL_PPDEF(pp_semop)
-PERL_PPDEF(pp_require)
-PERL_PPDEF(pp_dofile)
-PERL_PPDEF(pp_entereval)
-PERL_PPDEF(pp_leaveeval)
-PERL_PPDEF(pp_entertry)
-PERL_PPDEF(pp_leavetry)
-PERL_PPDEF(pp_ghbyname)
-PERL_PPDEF(pp_ghbyaddr)
-PERL_PPDEF(pp_ghostent)
-PERL_PPDEF(pp_gnbyname)
-PERL_PPDEF(pp_gnbyaddr)
-PERL_PPDEF(pp_gnetent)
-PERL_PPDEF(pp_gpbyname)
-PERL_PPDEF(pp_gpbynumber)
-PERL_PPDEF(pp_gprotoent)
-PERL_PPDEF(pp_gsbyname)
-PERL_PPDEF(pp_gsbyport)
-PERL_PPDEF(pp_gservent)
-PERL_PPDEF(pp_shostent)
-PERL_PPDEF(pp_snetent)
-PERL_PPDEF(pp_sprotoent)
-PERL_PPDEF(pp_sservent)
-PERL_PPDEF(pp_ehostent)
-PERL_PPDEF(pp_enetent)
-PERL_PPDEF(pp_eprotoent)
-PERL_PPDEF(pp_eservent)
-PERL_PPDEF(pp_gpwnam)
-PERL_PPDEF(pp_gpwuid)
-PERL_PPDEF(pp_gpwent)
-PERL_PPDEF(pp_spwent)
-PERL_PPDEF(pp_epwent)
-PERL_PPDEF(pp_ggrnam)
-PERL_PPDEF(pp_ggrgid)
-PERL_PPDEF(pp_ggrent)
-PERL_PPDEF(pp_sgrent)
-PERL_PPDEF(pp_egrent)
-PERL_PPDEF(pp_getlogin)
-PERL_PPDEF(pp_syscall)
-PERL_PPDEF(pp_lock)
-PERL_PPDEF(pp_threadsv)
+PERL_PPDEF(Perl_pp_null)
+PERL_PPDEF(Perl_pp_stub)
+PERL_PPDEF(Perl_pp_scalar)
+PERL_PPDEF(Perl_pp_pushmark)
+PERL_PPDEF(Perl_pp_wantarray)
+PERL_PPDEF(Perl_pp_const)
+PERL_PPDEF(Perl_pp_gvsv)
+PERL_PPDEF(Perl_pp_gv)
+PERL_PPDEF(Perl_pp_gelem)
+PERL_PPDEF(Perl_pp_padsv)
+PERL_PPDEF(Perl_pp_padav)
+PERL_PPDEF(Perl_pp_padhv)
+PERL_PPDEF(Perl_pp_padany)
+PERL_PPDEF(Perl_pp_pushre)
+PERL_PPDEF(Perl_pp_rv2gv)
+PERL_PPDEF(Perl_pp_rv2sv)
+PERL_PPDEF(Perl_pp_av2arylen)
+PERL_PPDEF(Perl_pp_rv2cv)
+PERL_PPDEF(Perl_pp_anoncode)
+PERL_PPDEF(Perl_pp_prototype)
+PERL_PPDEF(Perl_pp_refgen)
+PERL_PPDEF(Perl_pp_srefgen)
+PERL_PPDEF(Perl_pp_ref)
+PERL_PPDEF(Perl_pp_bless)
+PERL_PPDEF(Perl_pp_backtick)
+PERL_PPDEF(Perl_pp_glob)
+PERL_PPDEF(Perl_pp_readline)
+PERL_PPDEF(Perl_pp_rcatline)
+PERL_PPDEF(Perl_pp_regcmaybe)
+PERL_PPDEF(Perl_pp_regcreset)
+PERL_PPDEF(Perl_pp_regcomp)
+PERL_PPDEF(Perl_pp_match)
+PERL_PPDEF(Perl_pp_qr)
+PERL_PPDEF(Perl_pp_subst)
+PERL_PPDEF(Perl_pp_substcont)
+PERL_PPDEF(Perl_pp_trans)
+PERL_PPDEF(Perl_pp_sassign)
+PERL_PPDEF(Perl_pp_aassign)
+PERL_PPDEF(Perl_pp_chop)
+PERL_PPDEF(Perl_pp_schop)
+PERL_PPDEF(Perl_pp_chomp)
+PERL_PPDEF(Perl_pp_schomp)
+PERL_PPDEF(Perl_pp_defined)
+PERL_PPDEF(Perl_pp_undef)
+PERL_PPDEF(Perl_pp_study)
+PERL_PPDEF(Perl_pp_pos)
+PERL_PPDEF(Perl_pp_preinc)
+PERL_PPDEF(Perl_pp_predec)
+PERL_PPDEF(Perl_pp_postinc)
+PERL_PPDEF(Perl_pp_postdec)
+PERL_PPDEF(Perl_pp_pow)
+PERL_PPDEF(Perl_pp_multiply)
+PERL_PPDEF(Perl_pp_i_multiply)
+PERL_PPDEF(Perl_pp_divide)
+PERL_PPDEF(Perl_pp_i_divide)
+PERL_PPDEF(Perl_pp_modulo)
+PERL_PPDEF(Perl_pp_i_modulo)
+PERL_PPDEF(Perl_pp_repeat)
+PERL_PPDEF(Perl_pp_add)
+PERL_PPDEF(Perl_pp_i_add)
+PERL_PPDEF(Perl_pp_subtract)
+PERL_PPDEF(Perl_pp_i_subtract)
+PERL_PPDEF(Perl_pp_concat)
+PERL_PPDEF(Perl_pp_stringify)
+PERL_PPDEF(Perl_pp_left_shift)
+PERL_PPDEF(Perl_pp_right_shift)
+PERL_PPDEF(Perl_pp_lt)
+PERL_PPDEF(Perl_pp_i_lt)
+PERL_PPDEF(Perl_pp_gt)
+PERL_PPDEF(Perl_pp_i_gt)
+PERL_PPDEF(Perl_pp_le)
+PERL_PPDEF(Perl_pp_i_le)
+PERL_PPDEF(Perl_pp_ge)
+PERL_PPDEF(Perl_pp_i_ge)
+PERL_PPDEF(Perl_pp_eq)
+PERL_PPDEF(Perl_pp_i_eq)
+PERL_PPDEF(Perl_pp_ne)
+PERL_PPDEF(Perl_pp_i_ne)
+PERL_PPDEF(Perl_pp_ncmp)
+PERL_PPDEF(Perl_pp_i_ncmp)
+PERL_PPDEF(Perl_pp_slt)
+PERL_PPDEF(Perl_pp_sgt)
+PERL_PPDEF(Perl_pp_sle)
+PERL_PPDEF(Perl_pp_sge)
+PERL_PPDEF(Perl_pp_seq)
+PERL_PPDEF(Perl_pp_sne)
+PERL_PPDEF(Perl_pp_scmp)
+PERL_PPDEF(Perl_pp_bit_and)
+PERL_PPDEF(Perl_pp_bit_xor)
+PERL_PPDEF(Perl_pp_bit_or)
+PERL_PPDEF(Perl_pp_negate)
+PERL_PPDEF(Perl_pp_i_negate)
+PERL_PPDEF(Perl_pp_not)
+PERL_PPDEF(Perl_pp_complement)
+PERL_PPDEF(Perl_pp_atan2)
+PERL_PPDEF(Perl_pp_sin)
+PERL_PPDEF(Perl_pp_cos)
+PERL_PPDEF(Perl_pp_rand)
+PERL_PPDEF(Perl_pp_srand)
+PERL_PPDEF(Perl_pp_exp)
+PERL_PPDEF(Perl_pp_log)
+PERL_PPDEF(Perl_pp_sqrt)
+PERL_PPDEF(Perl_pp_int)
+PERL_PPDEF(Perl_pp_hex)
+PERL_PPDEF(Perl_pp_oct)
+PERL_PPDEF(Perl_pp_abs)
+PERL_PPDEF(Perl_pp_length)
+PERL_PPDEF(Perl_pp_substr)
+PERL_PPDEF(Perl_pp_vec)
+PERL_PPDEF(Perl_pp_index)
+PERL_PPDEF(Perl_pp_rindex)
+PERL_PPDEF(Perl_pp_sprintf)
+PERL_PPDEF(Perl_pp_formline)
+PERL_PPDEF(Perl_pp_ord)
+PERL_PPDEF(Perl_pp_chr)
+PERL_PPDEF(Perl_pp_crypt)
+PERL_PPDEF(Perl_pp_ucfirst)
+PERL_PPDEF(Perl_pp_lcfirst)
+PERL_PPDEF(Perl_pp_uc)
+PERL_PPDEF(Perl_pp_lc)
+PERL_PPDEF(Perl_pp_quotemeta)
+PERL_PPDEF(Perl_pp_rv2av)
+PERL_PPDEF(Perl_pp_aelemfast)
+PERL_PPDEF(Perl_pp_aelem)
+PERL_PPDEF(Perl_pp_aslice)
+PERL_PPDEF(Perl_pp_each)
+PERL_PPDEF(Perl_pp_values)
+PERL_PPDEF(Perl_pp_keys)
+PERL_PPDEF(Perl_pp_delete)
+PERL_PPDEF(Perl_pp_exists)
+PERL_PPDEF(Perl_pp_rv2hv)
+PERL_PPDEF(Perl_pp_helem)
+PERL_PPDEF(Perl_pp_hslice)
+PERL_PPDEF(Perl_pp_unpack)
+PERL_PPDEF(Perl_pp_pack)
+PERL_PPDEF(Perl_pp_split)
+PERL_PPDEF(Perl_pp_join)
+PERL_PPDEF(Perl_pp_list)
+PERL_PPDEF(Perl_pp_lslice)
+PERL_PPDEF(Perl_pp_anonlist)
+PERL_PPDEF(Perl_pp_anonhash)
+PERL_PPDEF(Perl_pp_splice)
+PERL_PPDEF(Perl_pp_push)
+PERL_PPDEF(Perl_pp_pop)
+PERL_PPDEF(Perl_pp_shift)
+PERL_PPDEF(Perl_pp_unshift)
+PERL_PPDEF(Perl_pp_sort)
+PERL_PPDEF(Perl_pp_reverse)
+PERL_PPDEF(Perl_pp_grepstart)
+PERL_PPDEF(Perl_pp_grepwhile)
+PERL_PPDEF(Perl_pp_mapstart)
+PERL_PPDEF(Perl_pp_mapwhile)
+PERL_PPDEF(Perl_pp_range)
+PERL_PPDEF(Perl_pp_flip)
+PERL_PPDEF(Perl_pp_flop)
+PERL_PPDEF(Perl_pp_and)
+PERL_PPDEF(Perl_pp_or)
+PERL_PPDEF(Perl_pp_xor)
+PERL_PPDEF(Perl_pp_cond_expr)
+PERL_PPDEF(Perl_pp_andassign)
+PERL_PPDEF(Perl_pp_orassign)
+PERL_PPDEF(Perl_pp_method)
+PERL_PPDEF(Perl_pp_entersub)
+PERL_PPDEF(Perl_pp_leavesub)
+PERL_PPDEF(Perl_pp_caller)
+PERL_PPDEF(Perl_pp_warn)
+PERL_PPDEF(Perl_pp_die)
+PERL_PPDEF(Perl_pp_reset)
+PERL_PPDEF(Perl_pp_lineseq)
+PERL_PPDEF(Perl_pp_nextstate)
+PERL_PPDEF(Perl_pp_dbstate)
+PERL_PPDEF(Perl_pp_unstack)
+PERL_PPDEF(Perl_pp_enter)
+PERL_PPDEF(Perl_pp_leave)
+PERL_PPDEF(Perl_pp_scope)
+PERL_PPDEF(Perl_pp_enteriter)
+PERL_PPDEF(Perl_pp_iter)
+PERL_PPDEF(Perl_pp_enterloop)
+PERL_PPDEF(Perl_pp_leaveloop)
+PERL_PPDEF(Perl_pp_return)
+PERL_PPDEF(Perl_pp_last)
+PERL_PPDEF(Perl_pp_next)
+PERL_PPDEF(Perl_pp_redo)
+PERL_PPDEF(Perl_pp_dump)
+PERL_PPDEF(Perl_pp_goto)
+PERL_PPDEF(Perl_pp_exit)
+PERL_PPDEF(Perl_pp_open)
+PERL_PPDEF(Perl_pp_close)
+PERL_PPDEF(Perl_pp_pipe_op)
+PERL_PPDEF(Perl_pp_fileno)
+PERL_PPDEF(Perl_pp_umask)
+PERL_PPDEF(Perl_pp_binmode)
+PERL_PPDEF(Perl_pp_tie)
+PERL_PPDEF(Perl_pp_untie)
+PERL_PPDEF(Perl_pp_tied)
+PERL_PPDEF(Perl_pp_dbmopen)
+PERL_PPDEF(Perl_pp_dbmclose)
+PERL_PPDEF(Perl_pp_sselect)
+PERL_PPDEF(Perl_pp_select)
+PERL_PPDEF(Perl_pp_getc)
+PERL_PPDEF(Perl_pp_read)
+PERL_PPDEF(Perl_pp_enterwrite)
+PERL_PPDEF(Perl_pp_leavewrite)
+PERL_PPDEF(Perl_pp_prtf)
+PERL_PPDEF(Perl_pp_print)
+PERL_PPDEF(Perl_pp_sysopen)
+PERL_PPDEF(Perl_pp_sysseek)
+PERL_PPDEF(Perl_pp_sysread)
+PERL_PPDEF(Perl_pp_syswrite)
+PERL_PPDEF(Perl_pp_send)
+PERL_PPDEF(Perl_pp_recv)
+PERL_PPDEF(Perl_pp_eof)
+PERL_PPDEF(Perl_pp_tell)
+PERL_PPDEF(Perl_pp_seek)
+PERL_PPDEF(Perl_pp_truncate)
+PERL_PPDEF(Perl_pp_fcntl)
+PERL_PPDEF(Perl_pp_ioctl)
+PERL_PPDEF(Perl_pp_flock)
+PERL_PPDEF(Perl_pp_socket)
+PERL_PPDEF(Perl_pp_sockpair)
+PERL_PPDEF(Perl_pp_bind)
+PERL_PPDEF(Perl_pp_connect)
+PERL_PPDEF(Perl_pp_listen)
+PERL_PPDEF(Perl_pp_accept)
+PERL_PPDEF(Perl_pp_shutdown)
+PERL_PPDEF(Perl_pp_gsockopt)
+PERL_PPDEF(Perl_pp_ssockopt)
+PERL_PPDEF(Perl_pp_getsockname)
+PERL_PPDEF(Perl_pp_getpeername)
+PERL_PPDEF(Perl_pp_lstat)
+PERL_PPDEF(Perl_pp_stat)
+PERL_PPDEF(Perl_pp_ftrread)
+PERL_PPDEF(Perl_pp_ftrwrite)
+PERL_PPDEF(Perl_pp_ftrexec)
+PERL_PPDEF(Perl_pp_fteread)
+PERL_PPDEF(Perl_pp_ftewrite)
+PERL_PPDEF(Perl_pp_fteexec)
+PERL_PPDEF(Perl_pp_ftis)
+PERL_PPDEF(Perl_pp_fteowned)
+PERL_PPDEF(Perl_pp_ftrowned)
+PERL_PPDEF(Perl_pp_ftzero)
+PERL_PPDEF(Perl_pp_ftsize)
+PERL_PPDEF(Perl_pp_ftmtime)
+PERL_PPDEF(Perl_pp_ftatime)
+PERL_PPDEF(Perl_pp_ftctime)
+PERL_PPDEF(Perl_pp_ftsock)
+PERL_PPDEF(Perl_pp_ftchr)
+PERL_PPDEF(Perl_pp_ftblk)
+PERL_PPDEF(Perl_pp_ftfile)
+PERL_PPDEF(Perl_pp_ftdir)
+PERL_PPDEF(Perl_pp_ftpipe)
+PERL_PPDEF(Perl_pp_ftlink)
+PERL_PPDEF(Perl_pp_ftsuid)
+PERL_PPDEF(Perl_pp_ftsgid)
+PERL_PPDEF(Perl_pp_ftsvtx)
+PERL_PPDEF(Perl_pp_fttty)
+PERL_PPDEF(Perl_pp_fttext)
+PERL_PPDEF(Perl_pp_ftbinary)
+PERL_PPDEF(Perl_pp_chdir)
+PERL_PPDEF(Perl_pp_chown)
+PERL_PPDEF(Perl_pp_chroot)
+PERL_PPDEF(Perl_pp_unlink)
+PERL_PPDEF(Perl_pp_chmod)
+PERL_PPDEF(Perl_pp_utime)
+PERL_PPDEF(Perl_pp_rename)
+PERL_PPDEF(Perl_pp_link)
+PERL_PPDEF(Perl_pp_symlink)
+PERL_PPDEF(Perl_pp_readlink)
+PERL_PPDEF(Perl_pp_mkdir)
+PERL_PPDEF(Perl_pp_rmdir)
+PERL_PPDEF(Perl_pp_open_dir)
+PERL_PPDEF(Perl_pp_readdir)
+PERL_PPDEF(Perl_pp_telldir)
+PERL_PPDEF(Perl_pp_seekdir)
+PERL_PPDEF(Perl_pp_rewinddir)
+PERL_PPDEF(Perl_pp_closedir)
+PERL_PPDEF(Perl_pp_fork)
+PERL_PPDEF(Perl_pp_wait)
+PERL_PPDEF(Perl_pp_waitpid)
+PERL_PPDEF(Perl_pp_system)
+PERL_PPDEF(Perl_pp_exec)
+PERL_PPDEF(Perl_pp_kill)
+PERL_PPDEF(Perl_pp_getppid)
+PERL_PPDEF(Perl_pp_getpgrp)
+PERL_PPDEF(Perl_pp_setpgrp)
+PERL_PPDEF(Perl_pp_getpriority)
+PERL_PPDEF(Perl_pp_setpriority)
+PERL_PPDEF(Perl_pp_time)
+PERL_PPDEF(Perl_pp_tms)
+PERL_PPDEF(Perl_pp_localtime)
+PERL_PPDEF(Perl_pp_gmtime)
+PERL_PPDEF(Perl_pp_alarm)
+PERL_PPDEF(Perl_pp_sleep)
+PERL_PPDEF(Perl_pp_shmget)
+PERL_PPDEF(Perl_pp_shmctl)
+PERL_PPDEF(Perl_pp_shmread)
+PERL_PPDEF(Perl_pp_shmwrite)
+PERL_PPDEF(Perl_pp_msgget)
+PERL_PPDEF(Perl_pp_msgctl)
+PERL_PPDEF(Perl_pp_msgsnd)
+PERL_PPDEF(Perl_pp_msgrcv)
+PERL_PPDEF(Perl_pp_semget)
+PERL_PPDEF(Perl_pp_semctl)
+PERL_PPDEF(Perl_pp_semop)
+PERL_PPDEF(Perl_pp_require)
+PERL_PPDEF(Perl_pp_dofile)
+PERL_PPDEF(Perl_pp_entereval)
+PERL_PPDEF(Perl_pp_leaveeval)
+PERL_PPDEF(Perl_pp_entertry)
+PERL_PPDEF(Perl_pp_leavetry)
+PERL_PPDEF(Perl_pp_ghbyname)
+PERL_PPDEF(Perl_pp_ghbyaddr)
+PERL_PPDEF(Perl_pp_ghostent)
+PERL_PPDEF(Perl_pp_gnbyname)
+PERL_PPDEF(Perl_pp_gnbyaddr)
+PERL_PPDEF(Perl_pp_gnetent)
+PERL_PPDEF(Perl_pp_gpbyname)
+PERL_PPDEF(Perl_pp_gpbynumber)
+PERL_PPDEF(Perl_pp_gprotoent)
+PERL_PPDEF(Perl_pp_gsbyname)
+PERL_PPDEF(Perl_pp_gsbyport)
+PERL_PPDEF(Perl_pp_gservent)
+PERL_PPDEF(Perl_pp_shostent)
+PERL_PPDEF(Perl_pp_snetent)
+PERL_PPDEF(Perl_pp_sprotoent)
+PERL_PPDEF(Perl_pp_sservent)
+PERL_PPDEF(Perl_pp_ehostent)
+PERL_PPDEF(Perl_pp_enetent)
+PERL_PPDEF(Perl_pp_eprotoent)
+PERL_PPDEF(Perl_pp_eservent)
+PERL_PPDEF(Perl_pp_gpwnam)
+PERL_PPDEF(Perl_pp_gpwuid)
+PERL_PPDEF(Perl_pp_gpwent)
+PERL_PPDEF(Perl_pp_spwent)
+PERL_PPDEF(Perl_pp_epwent)
+PERL_PPDEF(Perl_pp_ggrnam)
+PERL_PPDEF(Perl_pp_ggrgid)
+PERL_PPDEF(Perl_pp_ggrent)
+PERL_PPDEF(Perl_pp_sgrent)
+PERL_PPDEF(Perl_pp_egrent)
+PERL_PPDEF(Perl_pp_getlogin)
+PERL_PPDEF(Perl_pp_syscall)
+PERL_PPDEF(Perl_pp_lock)
+PERL_PPDEF(Perl_pp_threadsv)
index 054645e..7ffc1c2 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -15,6 +15,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_PP_SYS_C
 #include "perl.h"
 
 #ifdef I_SHADOW
@@ -124,10 +125,6 @@ extern int h_errno;
 #  endif
 #endif
 
-#if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-static int dooneliner (char *cmd, char *filename);
-#endif
-
 #ifdef HAS_CHSIZE
 # ifdef my_chsize  /* Probably #defined to Perl_my_chsize in embed.h */
 #   undef my_chsize
@@ -230,7 +227,7 @@ static char zero_but_true[ZBTLEN + 1] = "0 but true";
        || defined(HAS_SETREGID) || defined(HAS_SETRESGID))
 /* The Hard Way. */
 STATIC int
-emulate_eaccess (const char* path, int mode)
+emulate_eaccess(pTHX_ const char* path, int mode)
 {
     Uid_t ruid = getuid();
     Uid_t euid = geteuid();
@@ -295,7 +292,7 @@ emulate_eaccess (const char* path, int mode)
 
 #if !defined(PERL_EFF_ACCESS_R_OK)
 STATIC int
-emulate_eaccess (const char* path, int mode)
+emulate_eaccess(pTHX_ const char* path, int mode)
 {
     croak("switching effective uid is not implemented");
     /*NOTREACHED*/
@@ -474,8 +471,8 @@ PP(pp_die)
                    PUSHs(file);
                    PUSHs(line);
                    PUTBACK;
-                   perl_call_sv((SV*)GvCV(gv),
-                                G_SCALAR|G_EVAL|G_KEEPERR);
+                   call_sv((SV*)GvCV(gv),
+                           G_SCALAR|G_EVAL|G_KEEPERR);
                    sv_setsv(error,*PL_stack_sp--);
                }
            }
@@ -539,7 +536,7 @@ PP(pp_open)
        XPUSHs(sv);
        PUTBACK;
        ENTER;
-       perl_call_method("OPEN", G_SCALAR);
+       call_method("OPEN", G_SCALAR);
        LEAVE;
        SPAGAIN;
        RETURN;
@@ -571,7 +568,7 @@ PP(pp_close)
        XPUSHs(SvTIED_obj((SV*)gv, mg));
        PUTBACK;
        ENTER;
-       perl_call_method("CLOSE", G_SCALAR);
+       call_method("CLOSE", G_SCALAR);
        LEAVE;
        SPAGAIN;
        RETURN;
@@ -653,7 +650,7 @@ PP(pp_fileno)
        XPUSHs(SvTIED_obj((SV*)gv, mg));
        PUTBACK;
        ENTER;
-       perl_call_method("FILENO", G_SCALAR);
+       call_method("FILENO", G_SCALAR);
        LEAVE;
        SPAGAIN;
        RETURN;
@@ -708,7 +705,7 @@ PP(pp_binmode)
        XPUSHs(SvTIED_obj((SV*)gv, mg));
        PUTBACK;
        ENTER;
-       perl_call_method("BINMODE", G_SCALAR);
+       call_method("BINMODE", G_SCALAR);
        LEAVE;
        SPAGAIN;
        RETURN;
@@ -765,10 +762,10 @@ PP(pp_tie)
        while (items--)
            PUSHs(*MARK++);
        PUTBACK;
-       perl_call_method(methname, G_SCALAR);
+       call_method(methname, G_SCALAR);
     } 
     else {
-       /* Not clear why we don't call perl_call_method here too.
+       /* Not clear why we don't call call_method here too.
         * perhaps to get different error message ?
         */
        stash = gv_stashsv(*MARK, FALSE);
@@ -783,7 +780,7 @@ PP(pp_tie)
        while (items--)
            PUSHs(*MARK++);
        PUTBACK;
-       perl_call_sv((SV*)GvCV(gv), G_SCALAR);
+       call_sv((SV*)GvCV(gv), G_SCALAR);
     }
     SPAGAIN;
 
@@ -852,7 +849,7 @@ PP(pp_dbmopen)
     stash = gv_stashsv(sv, FALSE);
     if (!stash || !(gv = gv_fetchmethod(stash, "TIEHASH"))) {
        PUTBACK;
-       perl_require_pv("AnyDBM_File.pm");
+       require_pv("AnyDBM_File.pm");
        SPAGAIN;
        if (!(gv = gv_fetchmethod(stash, "TIEHASH")))
            DIE("No dbm on this machine");
@@ -870,7 +867,7 @@ PP(pp_dbmopen)
        PUSHs(sv_2mortal(newSViv(O_RDWR)));
     PUSHs(right);
     PUTBACK;
-    perl_call_sv((SV*)GvCV(gv), G_SCALAR);
+    call_sv((SV*)GvCV(gv), G_SCALAR);
     SPAGAIN;
 
     if (!sv_isobject(TOPs)) {
@@ -881,7 +878,7 @@ PP(pp_dbmopen)
        PUSHs(sv_2mortal(newSViv(O_RDONLY)));
        PUSHs(right);
        PUTBACK;
-       perl_call_sv((SV*)GvCV(gv), G_SCALAR);
+       call_sv((SV*)GvCV(gv), G_SCALAR);
        SPAGAIN;
     }
 
@@ -1040,7 +1037,7 @@ PP(pp_sselect)
 }
 
 void
-setdefout(GV *gv)
+Perl_setdefout(pTHX_ GV *gv)
 {
     dTHR;
     if (gv)
@@ -1103,7 +1100,7 @@ PP(pp_getc)
        XPUSHs(SvTIED_obj((SV*)gv, mg));
        PUTBACK;
        ENTER;
-       perl_call_method("GETC", gimme);
+       call_method("GETC", gimme);
        LEAVE;
        SPAGAIN;
        if (gimme == G_SCALAR)
@@ -1125,7 +1122,7 @@ PP(pp_read)
 }
 
 STATIC OP *
-doform(CV *cv, GV *gv, OP *retop)
+doform(pTHX_ CV *cv, GV *gv, OP *retop)
 {
     dTHR;
     register PERL_CONTEXT *cx;
@@ -1327,7 +1324,7 @@ PP(pp_prtf)
        *MARK = SvTIED_obj((SV*)gv, mg);
        PUTBACK;
        ENTER;
-       perl_call_method("PRINTF", G_SCALAR);
+       call_method("PRINTF", G_SCALAR);
        LEAVE;
        SPAGAIN;
        MARK = ORIGMARK + 1;
@@ -1437,7 +1434,7 @@ PP(pp_sysread)
        PUSHMARK(MARK-1);
        *MARK = SvTIED_obj((SV*)gv, mg);
        ENTER;
-       perl_call_method("READ", G_SCALAR);
+       call_method("READ", G_SCALAR);
        LEAVE;
        SPAGAIN;
        sv = POPs;
@@ -1587,7 +1584,7 @@ PP(pp_send)
        PUSHMARK(MARK-1);
        *MARK = SvTIED_obj((SV*)gv, mg);
        ENTER;
-       perl_call_method("WRITE", G_SCALAR);
+       call_method("WRITE", G_SCALAR);
        LEAVE;
        SPAGAIN;
        sv = POPs;
@@ -1685,7 +1682,7 @@ PP(pp_eof)
        XPUSHs(SvTIED_obj((SV*)gv, mg));
        PUTBACK;
        ENTER;
-       perl_call_method("EOF", G_SCALAR);
+       call_method("EOF", G_SCALAR);
        LEAVE;
        SPAGAIN;
        RETURN;
@@ -1711,7 +1708,7 @@ PP(pp_tell)
        XPUSHs(SvTIED_obj((SV*)gv, mg));
        PUTBACK;
        ENTER;
-       perl_call_method("TELL", G_SCALAR);
+       call_method("TELL", G_SCALAR);
        LEAVE;
        SPAGAIN;
        RETURN;
@@ -1743,7 +1740,7 @@ PP(pp_sysseek)
        XPUSHs(sv_2mortal(newSViv((IV) whence)));
        PUTBACK;
        ENTER;
-       perl_call_method("SEEK", G_SCALAR);
+       call_method("SEEK", G_SCALAR);
        LEAVE;
        SPAGAIN;
        RETURN;
@@ -3178,7 +3175,7 @@ PP(pp_readlink)
 
 #if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
 STATIC int
-dooneliner(char *cmd, char *filename)
+dooneliner(pTHX_ char *cmd, char *filename)
 {
     char *save_filename = filename;
     char *cmdline;
@@ -4909,8 +4906,8 @@ PP(pp_syscall)
     What's really needed is a good file locking module.
 */
 
-static int
-fcntl_emulate_flock(int fd, int operation)
+STATIC int
+fcntl_emulate_flock(pTHX_ int fd, int operation)
 {
     struct flock flock;
  
@@ -4967,7 +4964,7 @@ fcntl_emulate_flock(int fd, int operation)
 # endif
 
 STATIC int
-lockf_emulate_flock (int fd, int operation)
+lockf_emulate_flock(pTHX_ int fd, int operation)
 {
     int i;
     int save_errno;
diff --git a/proto.h b/proto.h
index 97e209b..95b0831 100644 (file)
--- a/proto.h
+++ b/proto.h
-#ifndef PERL_CALLCONV
-#  define PERL_CALLCONV
-#endif 
-
-#ifdef PERL_OBJECT
-#define VIRTUAL virtual PERL_CALLCONV
-#else
-#define VIRTUAL PERL_CALLCONV
-START_EXTERN_C
-#endif
-
-/* NOTE!!! When new virtual functions are added, they must be added at
- * the end of this file to maintain binary compatibility with PERL_OBJECT
- */
-
-
-#ifndef NEXT30_NO_ATTRIBUTE
-#ifndef HASATTRIBUTE       /* disable GNU-cc attribute checking? */
-#ifdef  __attribute__      /* Avoid possible redefinition errors */
-#undef  __attribute__
-#endif
-#define __attribute__(attr)
-#endif
-#endif
-VIRTUAL SV*    amagic_call (SV* left,SV* right,int method,int dir);
-VIRTUAL bool   Gv_AMupdate (HV* stash);
-VIRTUAL OP*    append_elem (I32 optype, OP* head, OP* tail);
-VIRTUAL OP*    append_list (I32 optype, LISTOP* first, LISTOP* last);
-VIRTUAL I32    apply (I32 type, SV** mark, SV** sp);
-VIRTUAL void   assertref (OP* o);
-VIRTUAL bool   avhv_exists_ent (AV *ar, SV* keysv, U32 hash);
-VIRTUAL SV**   avhv_fetch_ent (AV *ar, SV* keysv, I32 lval, U32 hash);
-VIRTUAL HE*    avhv_iternext (AV *ar);
-VIRTUAL SV*    avhv_iterval (AV *ar, HE* entry);
-VIRTUAL HV*    avhv_keys (AV *ar);
-VIRTUAL void   av_clear (AV* ar);
-VIRTUAL void   av_extend (AV* ar, I32 key);
-VIRTUAL AV*    av_fake (I32 size, SV** svp);
-VIRTUAL SV**   av_fetch (AV* ar, I32 key, I32 lval);
-VIRTUAL void   av_fill (AV* ar, I32 fill);
-VIRTUAL I32    av_len (AV* ar);
-VIRTUAL AV*    av_make (I32 size, SV** svp);
-VIRTUAL SV*    av_pop (AV* ar);
-VIRTUAL void   av_push (AV* ar, SV* val);
-VIRTUAL void   av_reify (AV* ar);
-VIRTUAL SV*    av_shift (AV* ar);
-VIRTUAL SV**   av_store (AV* ar, I32 key, SV* val);
-VIRTUAL void   av_undef (AV* ar);
-VIRTUAL void   av_unshift (AV* ar, I32 num);
-VIRTUAL OP*    bind_match (I32 type, OP* left, OP* pat);
-VIRTUAL OP*    block_end (I32 floor, OP* seq);
-VIRTUAL I32    block_gimme (void);
-VIRTUAL int    block_start (int full);
-VIRTUAL void   boot_core_UNIVERSAL (void);
-VIRTUAL void   call_list (I32 oldscope, AV* av_list);
-VIRTUAL I32    cando (I32 bit, I32 effective, Stat_t* statbufp);
-VIRTUAL U32    cast_ulong (double f);
-VIRTUAL I32    cast_i32 (double f);
-VIRTUAL IV     cast_iv (double f);
-VIRTUAL UV     cast_uv (double f);
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-VIRTUAL I32    my_chsize (int fd, Off_t length);
-#endif
-
-#ifdef USE_THREADS
-VIRTUAL MAGIC *        condpair_magic (SV *sv);
-#endif
-VIRTUAL OP*    convert (I32 optype, I32 flags, OP* o);
-VIRTUAL void   croak (const char* pat,...) __attribute__((noreturn));
-VIRTUAL void   cv_ckproto (CV* cv, GV* gv, char* p);
-VIRTUAL CV*    cv_clone (CV* proto);
-VIRTUAL SV*    cv_const_sv (CV* cv);
-VIRTUAL SV*    op_const_sv (OP* o, CV* cv);
-VIRTUAL void   cv_undef (CV* cv);
-VIRTUAL void   cx_dump (PERL_CONTEXT* cs);
-VIRTUAL SV*    filter_add (filter_t funcp, SV* datasv);
-VIRTUAL void   filter_del (filter_t funcp);
-VIRTUAL I32    filter_read (int idx, SV* buffer, int maxlen);
-VIRTUAL char **        get_op_descs (void);
-VIRTUAL char **        get_op_names (void);
-VIRTUAL char * get_no_modify (void);
-VIRTUAL U32 *  get_opargs (void);
-VIRTUAL I32    cxinc (void);
-VIRTUAL void   deb (const char* pat,...);
-VIRTUAL void   deb_growlevel (void);
-VIRTUAL void   debprofdump (void);
-VIRTUAL I32    debop (OP* o);
-VIRTUAL I32    debstack (void);
-VIRTUAL I32    debstackptrs (void);
-VIRTUAL char*  delimcpy (char* to, char* toend, char* from, char* fromend,
-                   int delim, I32* retlen);
-VIRTUAL void   deprecate (char* s);
-VIRTUAL OP*    die (const char* pat,...);
-VIRTUAL OP*    die_where (char* message, STRLEN msglen);
-VIRTUAL void   dounwind (I32 cxix);
-VIRTUAL bool   do_aexec (SV* really, SV** mark, SV** sp);
-VIRTUAL int    do_binmode (PerlIO *fp, int iotype, int flag);
-VIRTUAL void    do_chop (SV* asv, SV* sv);
-VIRTUAL bool   do_close (GV* gv, bool not_implicit);
-VIRTUAL bool   do_eof (GV* gv);
-VIRTUAL bool   do_exec (char* cmd);
-#ifndef WIN32
-VIRTUAL bool   do_exec3 (char* cmd, int fd, int flag);
-#endif
-VIRTUAL void   do_execfree (void);
+#if defined(WIN32)
+int&   Perl_ErrorNo(pTHX);
+#endif
+#if defined(PERL_GLOBAL_STRUCT)
+struct perl_vars *     Perl_GetVars(pTHX);
+#endif
+bool   Perl_Gv_AMupdate(pTHX_ HV* stash);
+SV*    Perl_amagic_call(pTHX_ SV* left, SV* right, int method, int dir);
+OP*    Perl_append_elem(pTHX_ I32 optype, OP* head, OP* tail);
+OP*    Perl_append_list(pTHX_ I32 optype, LISTOP* first, LISTOP* last);
+I32    Perl_apply(pTHX_ I32 type, SV** mark, SV** sp);
+void   Perl_assertref(pTHX_ OP* o);
+void   Perl_av_clear(pTHX_ AV* ar);
+void   Perl_av_extend(pTHX_ AV* ar, I32 key);
+AV*    Perl_av_fake(pTHX_ I32 size, SV** svp);
+SV**   Perl_av_fetch(pTHX_ AV* ar, I32 key, I32 lval);
+void   Perl_av_fill(pTHX_ AV* ar, I32 fill);
+I32    Perl_av_len(pTHX_ AV* ar);
+AV*    Perl_av_make(pTHX_ I32 size, SV** svp);
+SV*    Perl_av_pop(pTHX_ AV* ar);
+void   Perl_av_push(pTHX_ AV* ar, SV* val);
+void   Perl_av_reify(pTHX_ AV* ar);
+SV*    Perl_av_shift(pTHX_ AV* ar);
+SV**   Perl_av_store(pTHX_ AV* ar, I32 key, SV* val);
+void   Perl_av_undef(pTHX_ AV* ar);
+void   Perl_av_unshift(pTHX_ AV* ar, I32 num);
+bool   Perl_avhv_exists_ent(pTHX_ AV *ar, SV* keysv, U32 hash);
+SV**   Perl_avhv_fetch_ent(pTHX_ AV *ar, SV* keysv, I32 lval, U32 hash);
+HE*    Perl_avhv_iternext(pTHX_ AV *ar);
+SV*    Perl_avhv_iterval(pTHX_ AV *ar, HE* entry);
+HV*    Perl_avhv_keys(pTHX_ AV *ar);
+OP*    Perl_bind_match(pTHX_ I32 type, OP* left, OP* pat);
+OP*    Perl_block_end(pTHX_ I32 floor, OP* seq);
+I32    Perl_block_gimme(pTHX);
+int    Perl_block_start(pTHX_ int full);
+void   Perl_boot_core_UNIVERSAL(pTHX);
+void*  Perl_bset_obj_store(pTHX_ void *obj, I32 ix);
+I32    Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv);
+void   Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr);
+void   Perl_call_list(pTHX_ I32 oldscope, AV* av_list);
+I32    Perl_call_method(pTHX_ const char* methname, I32 flags);
+I32    Perl_call_pv(pTHX_ const char* sub_name, I32 flags);
+I32    Perl_call_sv(pTHX_ SV* sv, I32 flags);
+#if defined(MYMALLOC)
+Malloc_t       Perl_calloc(pTHX_ MEM_SIZE elements, MEM_SIZE size);
+#endif
+I32    Perl_cando(pTHX_ I32 bit, I32 effective, Stat_t* statbufp);
+I32    Perl_cast_i32(pTHX_ double f);
+IV     Perl_cast_iv(pTHX_ double f);
+U32    Perl_cast_ulong(pTHX_ double f);
+UV     Perl_cast_uv(pTHX_ double f);
+#if defined(USE_THREADS)
+MAGIC* Perl_condpair_magic(pTHX_ SV *sv);
+#endif
+OP*    Perl_convert(pTHX_ I32 optype, I32 flags, OP* o);
+void   Perl_croak(pTHX_ const char* pat, ...) __attribute__((noreturn));
+void   Perl_cv_ckproto(pTHX_ CV* cv, GV* gv, char* p);
+CV*    Perl_cv_clone(pTHX_ CV* proto);
+SV*    Perl_cv_const_sv(pTHX_ CV* cv);
+void   Perl_cv_undef(pTHX_ CV* cv);
+void   Perl_cx_dump(pTHX_ PERL_CONTEXT* cs);
+I32    Perl_cxinc(pTHX);
+void   Perl_deb(pTHX_ const char* pat, ...);
+void   Perl_deb_growlevel(pTHX);
+I32    Perl_debop(pTHX_ OP* o);
+void   Perl_debprofdump(pTHX);
+I32    Perl_debstack(pTHX);
+I32    Perl_debstackptrs(pTHX);
+void*  Perl_default_protect(pTHX_ int *excpt, protect_body_t body, ...);
+char*  Perl_delimcpy(pTHX_ char* to, char* toend, char* from, char* fromend, int delim, I32* retlen);
+void   Perl_deprecate(pTHX_ char* s);
+OP*    Perl_die(pTHX_ const char* pat, ...);
+OP*    Perl_die_where(pTHX_ char* message, STRLEN msglen);
+bool   Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp);
+int    Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int flag);
+I32    Perl_do_chomp(pTHX_ SV* sv);
+void   Perl_do_chop(pTHX_ SV* asv, SV* sv);
+bool   Perl_do_close(pTHX_ GV* gv, bool not_implicit);
+bool   Perl_do_eof(pTHX_ GV* gv);
+bool   Perl_do_exec(pTHX_ char* cmd);
+#if !defined(WIN32)
+bool   Perl_do_exec3(pTHX_ char* cmd, int fd, int flag);
+#endif
+void   Perl_do_execfree(pTHX);
+void   Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv);
+void   Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv);
+void   Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv);
+#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+I32    Perl_do_ipcctl(pTHX_ I32 optype, SV** mark, SV** sp);
+#endif
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-VIRTUAL I32    do_ipcctl (I32 optype, SV** mark, SV** sp);
-VIRTUAL I32    do_ipcget (I32 optype, SV** mark, SV** sp);
+I32    Perl_do_ipcget(pTHX_ I32 optype, SV** mark, SV** sp);
 #endif
-VIRTUAL void   do_join (SV* sv, SV* del, SV** mark, SV** sp);
-VIRTUAL OP*    do_kv (ARGSproto);
+void   Perl_do_join(pTHX_ SV* sv, SV* del, SV** mark, SV** sp);
+OP*    Perl_do_kv(pTHX_ ARGSproto);
+void   Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-VIRTUAL I32    do_msgrcv (SV** mark, SV** sp);
-VIRTUAL I32    do_msgsnd (SV** mark, SV** sp);
-#endif
-VIRTUAL bool   do_open (GV* gv, char* name, I32 len,
-                  int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp);
-VIRTUAL void   do_pipe (SV* sv, GV* rgv, GV* wgv);
-VIRTUAL bool   do_print (SV* sv, PerlIO* fp);
-VIRTUAL OP*    do_readline (void);
-VIRTUAL I32    do_chomp (SV* sv);
-VIRTUAL bool   do_seek (GV* gv, Off_t pos, int whence);
+I32    Perl_do_msgrcv(pTHX_ SV** mark, SV** sp);
+#endif
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-VIRTUAL I32    do_semop (SV** mark, SV** sp);
-VIRTUAL I32    do_shmio (I32 optype, SV** mark, SV** sp);
-#endif
-VIRTUAL void   do_sprintf (SV* sv, I32 len, SV** sarg);
-VIRTUAL Off_t  do_sysseek (GV* gv, Off_t pos, int whence);
-VIRTUAL Off_t  do_tell (GV* gv);
-VIRTUAL I32    do_trans (SV* sv);
-VIRTUAL void   do_vecset (SV* sv);
-VIRTUAL void   do_vop (I32 optype, SV* sv, SV* left, SV* right);
-VIRTUAL OP*    dofile (OP* term);
-VIRTUAL I32    dowantarray (void);
-VIRTUAL void   dump_all (void);
-VIRTUAL void   dump_eval (void);
-#ifdef DUMP_FDS  /* See util.c */
-VIRTUAL void   dump_fds (char* s);
-#endif
-VIRTUAL void   dump_form (GV* gv);
-VIRTUAL void   gv_dump (GV* gv);
-#ifdef MYMALLOC
-VIRTUAL void   dump_mstats (char* s);
-#endif
-VIRTUAL void   op_dump (OP* arg);
-VIRTUAL void   pmop_dump (PMOP* pm);
-VIRTUAL void   dump_packsubs (HV* stash);
-VIRTUAL void   dump_sub (GV* gv);
-VIRTUAL void   fbm_compile (SV* sv, U32 flags);
-VIRTUAL char*  fbm_instr (unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags);
-VIRTUAL char*  find_script (char *scriptname, bool dosearch, char **search_ext, I32 flags);
-#ifdef USE_THREADS
-VIRTUAL PADOFFSET      find_threadsv (const char *name);
-#endif
-VIRTUAL OP*    force_list (OP* arg);
-VIRTUAL OP*    fold_constants (OP* arg);
-VIRTUAL char*  form (const char* pat, ...);
-VIRTUAL void   free_tmps (void);
-VIRTUAL OP*    gen_constant_list (OP* o);
-#ifndef HAS_GETENV_LEN
-VIRTUAL char*  getenv_len (char* key, unsigned long *len);
-#endif
-VIRTUAL void   gp_free (GV* gv);
-VIRTUAL GP*    gp_ref (GP* gp);
-VIRTUAL GV*    gv_AVadd (GV* gv);
-VIRTUAL GV*    gv_HVadd (GV* gv);
-VIRTUAL GV*    gv_IOadd (GV* gv);
-VIRTUAL GV*    gv_autoload4 (HV* stash, const char* name, STRLEN len, I32 method);
-VIRTUAL void   gv_check (HV* stash);
-VIRTUAL void   gv_efullname (SV* sv, GV* gv);
-VIRTUAL void   gv_efullname3 (SV* sv, GV* gv, const char* prefix);
-VIRTUAL GV*    gv_fetchfile (const char* name);
-VIRTUAL GV*    gv_fetchmeth (HV* stash, const char* name, STRLEN len, I32 level);
-VIRTUAL GV*    gv_fetchmethod (HV* stash, const char* name);
-VIRTUAL GV*    gv_fetchmethod_autoload (HV* stash, const char* name, I32 autoload);
-VIRTUAL GV*    gv_fetchpv (const char* name, I32 add, I32 sv_type);
-VIRTUAL void   gv_fullname (SV* sv, GV* gv);
-VIRTUAL void   gv_fullname3 (SV* sv, GV* gv, const char* prefix);
-VIRTUAL void   gv_init (GV* gv, HV* stash, const char* name, STRLEN len, int multi);
-VIRTUAL HV*    gv_stashpv (const char* name, I32 create);
-VIRTUAL HV*    gv_stashpvn (const char* name, U32 namelen, I32 create);
-VIRTUAL HV*    gv_stashsv (SV* sv, I32 create);
-VIRTUAL void   hv_clear (HV* tb);
-VIRTUAL void   hv_delayfree_ent (HV* hv, HE* entry);
-VIRTUAL SV*    hv_delete (HV* tb, const char* key, U32 klen, I32 flags);
-VIRTUAL SV*    hv_delete_ent (HV* tb, SV* key, I32 flags, U32 hash);
-VIRTUAL bool   hv_exists (HV* tb, const char* key, U32 klen);
-VIRTUAL bool   hv_exists_ent (HV* tb, SV* key, U32 hash);
-VIRTUAL SV**   hv_fetch (HV* tb, const char* key, U32 klen, I32 lval);
-VIRTUAL HE*    hv_fetch_ent (HV* tb, SV* key, I32 lval, U32 hash);
-VIRTUAL void   hv_free_ent (HV* hv, HE* entry);
-VIRTUAL I32    hv_iterinit (HV* tb);
-VIRTUAL char*  hv_iterkey (HE* entry, I32* retlen);
-VIRTUAL SV*    hv_iterkeysv (HE* entry);
-VIRTUAL HE*    hv_iternext (HV* tb);
-VIRTUAL SV*    hv_iternextsv (HV* hv, char** key, I32* retlen);
-VIRTUAL SV*    hv_iterval (HV* tb, HE* entry);
-VIRTUAL void   hv_ksplit (HV* hv, IV newmax);
-VIRTUAL void   hv_magic (HV* hv, GV* gv, int how);
-VIRTUAL SV**   hv_store (HV* tb, const char* key, U32 klen, SV* val, U32 hash);
-VIRTUAL HE*    hv_store_ent (HV* tb, SV* key, SV* val, U32 hash);
-VIRTUAL void   hv_undef (HV* tb);
-VIRTUAL I32    ibcmp (const char* a, const char* b, I32 len);
-VIRTUAL I32    ibcmp_locale (const char* a, const char* b, I32 len);
-VIRTUAL I32    ingroup (I32 testgid, I32 effective);
-VIRTUAL void   init_stacks (ARGSproto);
-VIRTUAL U32    intro_my (void);
-VIRTUAL char*  instr (const char* big, const char* little);
-VIRTUAL bool   io_close (IO* io);
-VIRTUAL OP*    invert (OP* cmd);
-VIRTUAL bool   is_uni_alnum (U32 c);
-VIRTUAL bool   is_uni_idfirst (U32 c);
-VIRTUAL bool   is_uni_alpha (U32 c);
-VIRTUAL bool   is_uni_space (U32 c);
-VIRTUAL bool   is_uni_digit (U32 c);
-VIRTUAL bool   is_uni_upper (U32 c);
-VIRTUAL bool   is_uni_lower (U32 c);
-VIRTUAL bool   is_uni_print (U32 c);
-VIRTUAL U32    to_uni_upper (U32 c);
-VIRTUAL U32    to_uni_title (U32 c);
-VIRTUAL U32    to_uni_lower (U32 c);
-VIRTUAL bool   is_uni_alnum_lc (U32 c);
-VIRTUAL bool   is_uni_idfirst_lc (U32 c);
-VIRTUAL bool   is_uni_alpha_lc (U32 c);
-VIRTUAL bool   is_uni_space_lc (U32 c);
-VIRTUAL bool   is_uni_digit_lc (U32 c);
-VIRTUAL bool   is_uni_upper_lc (U32 c);
-VIRTUAL bool   is_uni_lower_lc (U32 c);
-VIRTUAL bool   is_uni_print_lc (U32 c);
-VIRTUAL U32    to_uni_upper_lc (U32 c);
-VIRTUAL U32    to_uni_title_lc (U32 c);
-VIRTUAL U32    to_uni_lower_lc (U32 c);
-VIRTUAL bool   is_utf8_alnum (U8 *p);
-VIRTUAL bool   is_utf8_idfirst (U8 *p);
-VIRTUAL bool   is_utf8_alpha (U8 *p);
-VIRTUAL bool   is_utf8_space (U8 *p);
-VIRTUAL bool   is_utf8_digit (U8 *p);
-VIRTUAL bool   is_utf8_upper (U8 *p);
-VIRTUAL bool   is_utf8_lower (U8 *p);
-VIRTUAL bool   is_utf8_print (U8 *p);
-VIRTUAL bool   is_utf8_mark (U8 *p);
-VIRTUAL OP*    jmaybe (OP* arg);
-VIRTUAL I32    keyword (char* d, I32 len);
-VIRTUAL void   leave_scope (I32 base);
-VIRTUAL void   lex_end (void);
-VIRTUAL void   lex_start (SV* line);
-VIRTUAL OP*    linklist (OP* o);
-VIRTUAL OP*    list (OP* o);
-VIRTUAL OP*    listkids (OP* o);
-VIRTUAL OP*    localize (OP* arg, I32 lexical);
-VIRTUAL I32    looks_like_number (SV* sv);
-VIRTUAL int    magic_clearenv  (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_clear_all_env (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_clearpack (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_clearsig  (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_existspack (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_freeregexp (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_get       (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getarylen (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getdefelem (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getglob   (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getnkeys  (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getpack   (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getpos    (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getsig    (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getsubstr (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_gettaint  (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getuvar   (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_getvec    (SV* sv, MAGIC* mg);
-VIRTUAL U32    magic_len       (SV* sv, MAGIC* mg);
-#ifdef USE_THREADS
-VIRTUAL int    magic_mutexfree (SV* sv, MAGIC* mg);
-#endif /* USE_THREADS */
-VIRTUAL int    magic_nextpack  (SV* sv, MAGIC* mg, SV* key);
-VIRTUAL U32    magic_regdata_cnt       (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_regdatum_get      (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_set       (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setamagic (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setarylen (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setbm     (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setdbline (SV* sv, MAGIC* mg);
-#ifdef USE_LOCALE_COLLATE
-VIRTUAL int    magic_setcollxfrm (SV* sv, MAGIC* mg);
-#endif
-VIRTUAL int    magic_setdefelem (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setenv    (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setfm     (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setisa    (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setglob   (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setmglob  (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setnkeys  (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setpack   (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setpos    (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setsig    (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setsubstr (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_settaint  (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setuvar   (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_setvec    (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_set_all_env (SV* sv, MAGIC* mg);
-VIRTUAL U32    magic_sizepack  (SV* sv, MAGIC* mg);
-VIRTUAL int    magic_wipepack  (SV* sv, MAGIC* mg);
-VIRTUAL void   magicname (char* sym, char* name, I32 namlen);
-int    main (int argc, char** argv, char** env);
-#ifdef MYMALLOC
-VIRTUAL MEM_SIZE       malloced_size (void *p);
-#endif
-VIRTUAL void   markstack_grow (void);
-#ifdef USE_LOCALE_COLLATE
-VIRTUAL char*  mem_collxfrm (const char* s, STRLEN len, STRLEN* xlen);
-#endif
-VIRTUAL SV*    mess (const char* pat, va_list* args);
-VIRTUAL int    mg_clear (SV* sv);
-VIRTUAL int    mg_copy (SV* sv, SV* nsv, const char* key, I32 klen);
-VIRTUAL MAGIC* mg_find (SV* sv, int type);
-VIRTUAL int    mg_free (SV* sv);
-VIRTUAL int    mg_get (SV* sv);
-VIRTUAL U32    mg_length (SV* sv);
-VIRTUAL void   mg_magical (SV* sv);
-VIRTUAL int    mg_set (SV* sv);
-VIRTUAL I32    mg_size (SV* sv);
-VIRTUAL OP*    mod (OP* o, I32 type);
-VIRTUAL char*  moreswitches (char* s);
-VIRTUAL OP*    my (OP* o);
+I32    Perl_do_msgsnd(pTHX_ SV** mark, SV** sp);
+#endif
+void   Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o);
+bool   Perl_do_open(pTHX_ GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp);
+void   Perl_do_pipe(pTHX_ SV* sv, GV* rgv, GV* wgv);
+void   Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm);
+bool   Perl_do_print(pTHX_ SV* sv, PerlIO* fp);
+OP*    Perl_do_readline(pTHX);
+bool   Perl_do_seek(pTHX_ GV* gv, Off_t pos, int whence);
+#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+I32    Perl_do_semop(pTHX_ SV** mark, SV** sp);
+#endif
+#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+I32    Perl_do_shmio(pTHX_ I32 optype, SV** mark, SV** sp);
+#endif
+void   Perl_do_sprintf(pTHX_ SV* sv, I32 len, SV** sarg);
+void   Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
+Off_t  Perl_do_sysseek(pTHX_ GV* gv, Off_t pos, int whence);
+Off_t  Perl_do_tell(pTHX_ GV* gv);
+I32    Perl_do_trans(pTHX_ SV* sv);
+void   Perl_do_vecset(pTHX_ SV* sv);
+void   Perl_do_vop(pTHX_ I32 optype, SV* sv, SV* left, SV* right);
+OP*    Perl_dofile(pTHX_ OP* term);
+void   Perl_dounwind(pTHX_ I32 cxix);
+I32    Perl_dowantarray(pTHX);
+void   Perl_dump_all(pTHX);
+void   Perl_dump_eval(pTHX);
+#if defined(DUMP_FDS)
+void   Perl_dump_fds(pTHX_ char* s);
+#endif
+void   Perl_dump_form(pTHX_ GV* gv);
+void   Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...);
+#if defined(MYMALLOC)
+void   Perl_dump_mstats(pTHX_ char* s);
+#endif
+void   Perl_dump_packsubs(pTHX_ HV* stash);
+void   Perl_dump_sub(pTHX_ GV* gv);
+SV*    Perl_eval_pv(pTHX_ const char* p, I32 croak_on_error);
+I32    Perl_eval_sv(pTHX_ SV* sv, I32 flags);
+void   Perl_fbm_compile(pTHX_ SV* sv, U32 flags);
+char*  Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags);
+SV*    Perl_filter_add(pTHX_ filter_t funcp, SV* datasv);
+void   Perl_filter_del(pTHX_ filter_t funcp);
+I32    Perl_filter_read(pTHX_ int idx, SV* buffer, int maxlen);
+char*  Perl_find_script(pTHX_ char *scriptname, bool dosearch, char **search_ext, I32 flags);
+#if defined(USE_THREADS)
+PADOFFSET      Perl_find_threadsv(pTHX_ const char *name);
+#endif
+OP*    Perl_fold_constants(pTHX_ OP* arg);
+OP*    Perl_force_list(pTHX_ OP* arg);
+char*  Perl_form(pTHX_ const char* pat, ...);
+void   Perl_free_tmps(pTHX);
+OP*    Perl_gen_constant_list(pTHX_ OP* o);
+AV*    Perl_get_av(pTHX_ const char* name, I32 create);
+CV*    Perl_get_cv(pTHX_ const char* name, I32 create);
+HV*    Perl_get_hv(pTHX_ const char* name, I32 create);
+char*  Perl_get_no_modify(pTHX);
+char** Perl_get_op_descs(pTHX);
+char** Perl_get_op_names(pTHX);
+U32*   Perl_get_opargs(pTHX);
+SV*    Perl_get_sv(pTHX_ const char* name, I32 create);
+MGVTBL*        Perl_get_vtbl(pTHX_ int vtbl_id);
+#if !defined(HAS_GETENV_LEN)
+char*  Perl_getenv_len(pTHX_ char* key, unsigned long *len);
+#endif
+void   Perl_gp_free(pTHX_ GV* gv);
+GP*    Perl_gp_ref(pTHX_ GP* gp);
+GV*    Perl_gv_AVadd(pTHX_ GV* gv);
+GV*    Perl_gv_HVadd(pTHX_ GV* gv);
+GV*    Perl_gv_IOadd(pTHX_ GV* gv);
+GV*    Perl_gv_autoload4(pTHX_ HV* stash, const char* name, STRLEN len, I32 method);
+void   Perl_gv_check(pTHX_ HV* stash);
+void   Perl_gv_dump(pTHX_ GV* gv);
+void   Perl_gv_efullname(pTHX_ SV* sv, GV* gv);
+void   Perl_gv_efullname3(pTHX_ SV* sv, GV* gv, const char* prefix);
+GV*    Perl_gv_fetchfile(pTHX_ const char* name);
+GV*    Perl_gv_fetchmeth(pTHX_ HV* stash, const char* name, STRLEN len, I32 level);
+GV*    Perl_gv_fetchmethod(pTHX_ HV* stash, const char* name);
+GV*    Perl_gv_fetchmethod_autoload(pTHX_ HV* stash, const char* name, I32 autoload);
+GV*    Perl_gv_fetchpv(pTHX_ const char* name, I32 add, I32 sv_type);
+void   Perl_gv_fullname(pTHX_ SV* sv, GV* gv);
+void   Perl_gv_fullname3(pTHX_ SV* sv, GV* gv, const char* prefix);
+void   Perl_gv_init(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, int multi);
+HV*    Perl_gv_stashpv(pTHX_ const char* name, I32 create);
+HV*    Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen, I32 create);
+HV*    Perl_gv_stashsv(pTHX_ SV* sv, I32 create);
+void   Perl_hv_clear(pTHX_ HV* tb);
+void   Perl_hv_delayfree_ent(pTHX_ HV* hv, HE* entry);
+SV*    Perl_hv_delete(pTHX_ HV* tb, const char* key, U32 klen, I32 flags);
+SV*    Perl_hv_delete_ent(pTHX_ HV* tb, SV* key, I32 flags, U32 hash);
+bool   Perl_hv_exists(pTHX_ HV* tb, const char* key, U32 klen);
+bool   Perl_hv_exists_ent(pTHX_ HV* tb, SV* key, U32 hash);
+SV**   Perl_hv_fetch(pTHX_ HV* tb, const char* key, U32 klen, I32 lval);
+HE*    Perl_hv_fetch_ent(pTHX_ HV* tb, SV* key, I32 lval, U32 hash);
+void   Perl_hv_free_ent(pTHX_ HV* hv, HE* entry);
+I32    Perl_hv_iterinit(pTHX_ HV* tb);
+char*  Perl_hv_iterkey(pTHX_ HE* entry, I32* retlen);
+SV*    Perl_hv_iterkeysv(pTHX_ HE* entry);
+HE*    Perl_hv_iternext(pTHX_ HV* tb);
+SV*    Perl_hv_iternextsv(pTHX_ HV* hv, char** key, I32* retlen);
+SV*    Perl_hv_iterval(pTHX_ HV* tb, HE* entry);
+void   Perl_hv_ksplit(pTHX_ HV* hv, IV newmax);
+void   Perl_hv_magic(pTHX_ HV* hv, GV* gv, int how);
+SV**   Perl_hv_store(pTHX_ HV* tb, const char* key, U32 klen, SV* val, U32 hash);
+HE*    Perl_hv_store_ent(pTHX_ HV* tb, SV* key, SV* val, U32 hash);
+void   Perl_hv_undef(pTHX_ HV* tb);
+I32    Perl_ibcmp(pTHX_ const char* a, const char* b, I32 len);
+I32    Perl_ibcmp_locale(pTHX_ const char* a, const char* b, I32 len);
+I32    Perl_ingroup(pTHX_ I32 testgid, I32 effective);
+int    Perl_init_i18nl10n(pTHX_ int printwarn);
+int    Perl_init_i18nl14n(pTHX_ int printwarn);
+void   Perl_init_stacks(pTHX_ ARGSproto);
+char*  Perl_instr(pTHX_ const char* big, const char* little);
+U32    Perl_intro_my(pTHX);
+OP*    Perl_invert(pTHX_ OP* cmd);
+bool   Perl_io_close(pTHX_ IO* io);
+bool   Perl_is_uni_alnum(pTHX_ U32 c);
+bool   Perl_is_uni_alnum_lc(pTHX_ U32 c);
+bool   Perl_is_uni_alpha(pTHX_ U32 c);
+bool   Perl_is_uni_alpha_lc(pTHX_ U32 c);
+bool   Perl_is_uni_digit(pTHX_ U32 c);
+bool   Perl_is_uni_digit_lc(pTHX_ U32 c);
+bool   Perl_is_uni_idfirst(pTHX_ U32 c);
+bool   Perl_is_uni_idfirst_lc(pTHX_ U32 c);
+bool   Perl_is_uni_lower(pTHX_ U32 c);
+bool   Perl_is_uni_lower_lc(pTHX_ U32 c);
+bool   Perl_is_uni_print(pTHX_ U32 c);
+bool   Perl_is_uni_print_lc(pTHX_ U32 c);
+bool   Perl_is_uni_space(pTHX_ U32 c);
+bool   Perl_is_uni_space_lc(pTHX_ U32 c);
+bool   Perl_is_uni_upper(pTHX_ U32 c);
+bool   Perl_is_uni_upper_lc(pTHX_ U32 c);
+bool   Perl_is_utf8_alnum(pTHX_ U8 *p);
+bool   Perl_is_utf8_alpha(pTHX_ U8 *p);
+bool   Perl_is_utf8_digit(pTHX_ U8 *p);
+bool   Perl_is_utf8_idfirst(pTHX_ U8 *p);
+bool   Perl_is_utf8_lower(pTHX_ U8 *p);
+bool   Perl_is_utf8_mark(pTHX_ U8 *p);
+bool   Perl_is_utf8_print(pTHX_ U8 *p);
+bool   Perl_is_utf8_space(pTHX_ U8 *p);
+bool   Perl_is_utf8_upper(pTHX_ U8 *p);
+OP*    Perl_jmaybe(pTHX_ OP* arg);
+I32    Perl_keyword(pTHX_ char* d, I32 len);
+void   Perl_leave_scope(pTHX_ I32 base);
+void   Perl_lex_end(pTHX);
+void   Perl_lex_start(pTHX_ SV* line);
+OP*    Perl_linklist(pTHX_ OP* o);
+OP*    Perl_list(pTHX_ OP* o);
+OP*    Perl_listkids(pTHX_ OP* o);
+OP*    Perl_localize(pTHX_ OP* arg, I32 lexical);
+I32    Perl_looks_like_number(pTHX_ SV* sv);
+int    Perl_magic_clear_all_env(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_clearenv(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_clearpack(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_clearsig(pTHX_ SV* sv, MAGIC* mg);
+void   Perl_magic_dump(pTHX_ MAGIC *mg);
+int    Perl_magic_existspack(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_freeregexp(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_get(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getarylen(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getdefelem(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getglob(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getnkeys(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getpack(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getpos(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getsig(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getsubstr(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_gettaint(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getuvar(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_getvec(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg);
+U32    Perl_magic_len(pTHX_ SV* sv, MAGIC* mg);
+#if defined(USE_THREADS)
+int    Perl_magic_mutexfree(pTHX_ SV* sv, MAGIC* mg);
+#endif
+int    Perl_magic_nextpack(pTHX_ SV* sv, MAGIC* mg, SV* key);
+U32    Perl_magic_regdata_cnt(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_regdatum_get(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_set(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_set_all_env(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setamagic(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setarylen(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setbm(pTHX_ SV* sv, MAGIC* mg);
+#if defined(USE_LOCALE_COLLATE)
+int    Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg);
+#endif
+int    Perl_magic_setdbline(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setdefelem(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setenv(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setfm(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setglob(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setisa(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setmglob(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setnkeys(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setpack(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setpos(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setsig(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setsubstr(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_settaint(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setuvar(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_setvec(pTHX_ SV* sv, MAGIC* mg);
+U32    Perl_magic_sizepack(pTHX_ SV* sv, MAGIC* mg);
+int    Perl_magic_wipepack(pTHX_ SV* sv, MAGIC* mg);
+void   Perl_magicname(pTHX_ char* sym, char* name, I32 namlen);
+int    main(int argc, char** argv, char** env);
+#if defined(MYMALLOC)
+Malloc_t       Perl_malloc(pTHX_ MEM_SIZE nbytes);
+#endif
+#if defined(MYMALLOC)
+MEM_SIZE       Perl_malloced_size(pTHX_ void *p);
+#endif
+void   Perl_markstack_grow(pTHX);
+#if defined(USE_LOCALE_COLLATE)
+char*  Perl_mem_collxfrm(pTHX_ const char* s, STRLEN len, STRLEN* xlen);
+#endif
+SV*    Perl_mess(pTHX_ const char* pat, va_list* args);
+#if defined(MYMALLOC)
+Free_t Perl_mfree(pTHX_ Malloc_t where);
+#endif
+int    Perl_mg_clear(pTHX_ SV* sv);
+int    Perl_mg_copy(pTHX_ SV* sv, SV* nsv, const char* key, I32 klen);
+MAGIC* Perl_mg_find(pTHX_ SV* sv, int type);
+int    Perl_mg_free(pTHX_ SV* sv);
+int    Perl_mg_get(pTHX_ SV* sv);
+U32    Perl_mg_length(pTHX_ SV* sv);
+void   Perl_mg_magical(pTHX_ SV* sv);
+int    Perl_mg_set(pTHX_ SV* sv);
+I32    Perl_mg_size(pTHX_ SV* sv);
+OP*    Perl_mod(pTHX_ OP* o, I32 type);
+char*  Perl_moreswitches(pTHX_ char* s);
+OP*    Perl_my(pTHX_ OP* o);
 #if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
-VIRTUAL char*  my_bcopy (const char* from, char* to, I32 len);
+char*  Perl_my_bcopy(pTHX_ const char* from, char* to, I32 len);
 #endif
 #if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-VIRTUAL char*  my_bzero (char* loc, I32 len);
+char*  Perl_my_bzero(pTHX_ char* loc, I32 len);
+#endif
+#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
+I32    Perl_my_chsize(pTHX_ int fd, Off_t length);
+#endif
+void   Perl_my_exit(pTHX_ U32 status) __attribute__((noreturn));
+void   Perl_my_failure_exit(pTHX) __attribute__((noreturn));
+I32    Perl_my_fflush_all(pTHX);
+#if defined(MYSWAP)
+long   Perl_my_htonl(pTHX_ long l);
 #endif
-VIRTUAL void   my_exit (U32 status) __attribute__((noreturn));
-VIRTUAL void   my_failure_exit (void) __attribute__((noreturn));
-VIRTUAL I32    my_fflush_all (void);
-VIRTUAL I32    my_lstat (ARGSproto);
+I32    Perl_my_lstat(pTHX_ ARGSproto);
 #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
-VIRTUAL I32    my_memcmp (const char* s1, const char* s2, I32 len);
+I32    Perl_my_memcmp(pTHX_ const char* s1, const char* s2, I32 len);
 #endif
 #if !defined(HAS_MEMSET)
-VIRTUAL void*  my_memset (char* loc, I32 ch, I32 len);
-#endif
-#ifndef PERL_OBJECT
-VIRTUAL I32    my_pclose (PerlIO* ptr);
-VIRTUAL PerlIO*        my_popen (char* cmd, char* mode);
-#endif
-VIRTUAL void   my_setenv (char* nam, char* val);
-VIRTUAL I32    my_stat (ARGSproto);
-#ifdef MYSWAP
-VIRTUAL short  my_swap (short s);
-VIRTUAL long   my_htonl (long l);
-VIRTUAL long   my_ntohl (long l);
-#endif
-VIRTUAL void   my_unexec (void);
-VIRTUAL OP*    newANONLIST (OP* o);
-VIRTUAL OP*    newANONHASH (OP* o);
-VIRTUAL OP*    newANONSUB (I32 floor, OP* proto, OP* block);
-VIRTUAL OP*    newASSIGNOP (I32 flags, OP* left, I32 optype, OP* right);
-VIRTUAL OP*    newCONDOP (I32 flags, OP* expr, OP* trueop, OP* falseop);
-VIRTUAL void   newCONSTSUB (HV* stash, char* name, SV* sv);
-VIRTUAL void   newFORM (I32 floor, OP* o, OP* block);
-VIRTUAL OP*    newFOROP (I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont);
-VIRTUAL OP*    newLOGOP (I32 optype, I32 flags, OP* left, OP* right);
-VIRTUAL OP*    newLOOPEX (I32 type, OP* label);
-VIRTUAL OP*    newLOOPOP (I32 flags, I32 debuggable, OP* expr, OP* block);
-VIRTUAL OP*    newNULLLIST (void);
-VIRTUAL OP*    newOP (I32 optype, I32 flags);
-VIRTUAL void   newPROG (OP* o);
-VIRTUAL OP*    newRANGE (I32 flags, OP* left, OP* right);
-VIRTUAL OP*    newSLICEOP (I32 flags, OP* subscript, OP* listop);
-VIRTUAL OP*    newSTATEOP (I32 flags, char* label, OP* o);
-VIRTUAL CV*    newSUB (I32 floor, OP* o, OP* proto, OP* block);
-VIRTUAL CV*    newXS (char* name, void (*subaddr)(CV* cv _CPERLproto), char* filename);
-VIRTUAL AV*    newAV (void);
-VIRTUAL OP*    newAVREF (OP* o);
-VIRTUAL OP*    newBINOP (I32 type, I32 flags, OP* first, OP* last);
-VIRTUAL OP*    newCVREF (I32 flags, OP* o);
-VIRTUAL OP*    newGVOP (I32 type, I32 flags, GV* gv);
-VIRTUAL GV*    newGVgen (char* pack);
-VIRTUAL OP*    newGVREF (I32 type, OP* o);
-VIRTUAL OP*    newHVREF (OP* o);
-VIRTUAL HV*    newHV (void);
-VIRTUAL HV*    newHVhv (HV* hv);
-VIRTUAL IO*    newIO (void);
-VIRTUAL OP*    newLISTOP (I32 type, I32 flags, OP* first, OP* last);
-VIRTUAL OP*    newPMOP (I32 type, I32 flags);
-VIRTUAL OP*    newPVOP (I32 type, I32 flags, char* pv);
-VIRTUAL SV*    newRV (SV* pref);
-VIRTUAL SV*    newRV_noinc (SV *sv);
-VIRTUAL SV*    newSV (STRLEN len);
-VIRTUAL OP*    newSVREF (OP* o);
-VIRTUAL OP*    newSVOP (I32 type, I32 flags, SV* sv);
-VIRTUAL SV*    newSViv (IV i);
-VIRTUAL SV*    newSVnv (double n);
-VIRTUAL SV*    newSVpv (const char* s, STRLEN len);
-VIRTUAL SV*    newSVpvn (const char *s, STRLEN len);
-VIRTUAL SV*    newSVpvf (const char* pat, ...);
-VIRTUAL SV*    newSVrv (SV* rv, const char* classname);
-VIRTUAL SV*    newSVsv (SV* old);
-VIRTUAL OP*    newUNOP (I32 type, I32 flags, OP* first);
-VIRTUAL OP*    newWHILEOP (I32 flags, I32 debuggable, LOOP* loop,
-                     I32 whileline, OP* expr, OP* block, OP* cont);
-#ifdef USE_THREADS
-VIRTUAL struct perl_thread *   new_struct_thread (struct perl_thread *t);
-#endif
-VIRTUAL PERL_SI *      new_stackinfo (I32 stitems, I32 cxitems);
-VIRTUAL PerlIO*        nextargv (GV* gv);
-VIRTUAL char*  ninstr (const char* big, const char* bigend, const char* little, const char* lend);
-VIRTUAL OP*    oopsCV (OP* o);
-VIRTUAL void   op_free (OP* arg);
-VIRTUAL void   package (OP* o);
-VIRTUAL PADOFFSET      pad_alloc (I32 optype, U32 tmptype);
-VIRTUAL PADOFFSET      pad_allocmy (char* name);
-VIRTUAL PADOFFSET      pad_findmy (char* name);
-VIRTUAL OP*    oopsAV (OP* o);
-VIRTUAL OP*    oopsHV (OP* o);
-VIRTUAL void   pad_leavemy (I32 fill);
-VIRTUAL SV*    pad_sv (PADOFFSET po);
-VIRTUAL void   pad_free (PADOFFSET po);
-VIRTUAL void   pad_reset (void);
-VIRTUAL void   pad_swipe (PADOFFSET po);
-VIRTUAL void   peep (OP* o);
-#ifndef PERL_OBJECT
-PerlInterpreter*       perl_alloc (void);
-#endif
-#ifdef PERL_OBJECT
-VIRTUAL void    perl_atexit (void(*fn)(CPerlObj *, void *), void* ptr);
-#else
-void    perl_atexit (void(*fn)(void *), void*);
-#endif
-VIRTUAL I32    perl_call_argv (const char* sub_name, I32 flags, char** argv);
-VIRTUAL I32    perl_call_method (const char* methname, I32 flags);
-VIRTUAL I32    perl_call_pv (const char* sub_name, I32 flags);
-VIRTUAL I32    perl_call_sv (SV* sv, I32 flags);
-#ifdef PERL_OBJECT
-VIRTUAL void   perl_construct (void);
-VIRTUAL void   perl_destruct (void);
-#else
-void   perl_construct (PerlInterpreter* sv_interp);
-void   perl_destruct (PerlInterpreter* sv_interp);
-#endif
-VIRTUAL SV*    perl_eval_pv (const char* p, I32 croak_on_error);
-VIRTUAL I32    perl_eval_sv (SV* sv, I32 flags);
-#ifdef PERL_OBJECT
-VIRTUAL void   perl_free (void);
-#else
-void   perl_free (PerlInterpreter* sv_interp);
-#endif
-VIRTUAL SV*    perl_get_sv (const char* name, I32 create);
-VIRTUAL AV*    perl_get_av (const char* name, I32 create);
-VIRTUAL HV*    perl_get_hv (const char* name, I32 create);
-VIRTUAL CV*    perl_get_cv (const char* name, I32 create);
-VIRTUAL int    perl_init_i18nl10n (int printwarn);
-VIRTUAL int    perl_init_i18nl14n (int printwarn);
-VIRTUAL void   perl_new_collate (const char* newcoll);
-VIRTUAL void   perl_new_ctype (const char* newctype);
-VIRTUAL void   perl_new_numeric (const char* newcoll);
-VIRTUAL void   perl_set_numeric_local (void);
-VIRTUAL void   perl_set_numeric_standard (void);
-#ifdef PERL_OBJECT
-VIRTUAL int    perl_parse (void(*xsinit)(CPerlObj*), int argc, char** argv, char** env);
-#else
-int    perl_parse (PerlInterpreter* sv_interp, void(*xsinit)(void), int argc, char** argv, char** env);
-#endif
-VIRTUAL void   perl_require_pv (const char* pv);
-#define perl_requirepv perl_require_pv
-#ifdef PERL_OBJECT
-VIRTUAL int    perl_run (void);
-#else
-int    perl_run (PerlInterpreter* sv_interp);
-#endif
-VIRTUAL void   pidgone (int pid, int status);
-VIRTUAL void   pmflag (U16* pmfl, int ch);
-VIRTUAL OP*    pmruntime (OP* pm, OP* expr, OP* repl);
-VIRTUAL OP*    pmtrans (OP* o, OP* expr, OP* repl);
-VIRTUAL OP*    pop_return (void);
-VIRTUAL void   pop_scope (void);
-VIRTUAL OP*    prepend_elem (I32 optype, OP* head, OP* tail);
-VIRTUAL void   push_return (OP* o);
-VIRTUAL void   push_scope (void);
-VIRTUAL OP*    ref (OP* o, I32 type);
-VIRTUAL OP*    refkids (OP* o, I32 type);
-VIRTUAL void   regdump (regexp* r);
-VIRTUAL I32    pregexec (regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave);
-VIRTUAL void   pregfree (struct regexp* r);
-VIRTUAL regexp*        pregcomp (char* exp, char* xend, PMOP* pm);
-VIRTUAL I32    regexec_flags (regexp* prog, char* stringarg, char* strend,
-                        char* strbeg, I32 minend, SV* screamer,
-                        void* data, U32 flags);
-VIRTUAL regnode* regnext (regnode* p);
-VIRTUAL void   regprop (SV* sv, regnode* o);
-VIRTUAL void   repeatcpy (char* to, const char* from, I32 len, I32 count);
-VIRTUAL char*  rninstr (const char* big, const char* bigend, const char* little, const char* lend);
-VIRTUAL Sighandler_t rsignal (int i, Sighandler_t t);
-VIRTUAL int    rsignal_restore (int i, Sigsave_t* t);
-VIRTUAL int    rsignal_save (int i, Sighandler_t t1, Sigsave_t* t2);
-VIRTUAL Sighandler_t rsignal_state (int i);
-VIRTUAL void   rxres_free (void** rsp);
-VIRTUAL void   rxres_restore (void** rsp, REGEXP* prx);
-VIRTUAL void   rxres_save (void** rsp, REGEXP* prx);
-#ifndef HAS_RENAME
-VIRTUAL I32    same_dirent (char* a, char* b);
-#endif
-VIRTUAL char*  savepv (const char* sv);
-VIRTUAL char*  savepvn (const char* sv, I32 len);
-VIRTUAL void   savestack_grow (void);
-VIRTUAL void   save_aelem (AV* av, I32 idx, SV **sptr);
-VIRTUAL I32    save_alloc (I32 size, I32 pad);
-VIRTUAL void   save_aptr (AV** aptr);
-VIRTUAL AV*    save_ary (GV* gv);
-VIRTUAL void   save_clearsv (SV** svp);
-VIRTUAL void   save_delete (HV* hv, char* key, I32 klen);
-#ifndef titan  /* TitanOS cc can't handle this */
-#ifdef PERL_OBJECT
-typedef void (CPerlObj::*DESTRUCTORFUNC) (void*);
-VIRTUAL void   save_destructor (DESTRUCTORFUNC f, void* p);
-#else
-void   save_destructor (void (*f)(void*), void* p);
-#endif
-#endif /* titan */
-VIRTUAL void   save_freesv (SV* sv);
-VIRTUAL void   save_freeop (OP* o);
-VIRTUAL void   save_freepv (char* pv);
-VIRTUAL void   save_generic_svref (SV** sptr);
-VIRTUAL void   save_gp (GV* gv, I32 empty);
-VIRTUAL HV*    save_hash (GV* gv);
-VIRTUAL void   save_helem (HV* hv, SV *key, SV **sptr);
-VIRTUAL void   save_hints (void);
-VIRTUAL void   save_hptr (HV** hptr);
-VIRTUAL void   save_I16 (I16* intp);
-VIRTUAL void   save_I32 (I32* intp);
-VIRTUAL void   save_int (int* intp);
-VIRTUAL void   save_item (SV* item);
-VIRTUAL void   save_iv (IV* iv);
-VIRTUAL void   save_list (SV** sarg, I32 maxsarg);
-VIRTUAL void   save_long (long* longp);
-VIRTUAL void   save_nogv (GV* gv);
-VIRTUAL void   save_op (void);
-VIRTUAL SV*    save_scalar (GV* gv);
-VIRTUAL void   save_pptr (char** pptr);
-VIRTUAL void   save_re_context (void);
-VIRTUAL void   save_sptr (SV** sptr);
-VIRTUAL SV*    save_svref (SV** sptr);
-VIRTUAL SV**   save_threadsv (PADOFFSET i);
-VIRTUAL OP*    sawparens (OP* o);
-VIRTUAL OP*    scalar (OP* o);
-VIRTUAL OP*    scalarkids (OP* o);
-VIRTUAL OP*    scalarseq (OP* o);
-VIRTUAL OP*    scalarvoid (OP* o);
-VIRTUAL UV     scan_bin (char* start, I32 len, I32* retlen);
-VIRTUAL UV     scan_hex (char* start, I32 len, I32* retlen);
-VIRTUAL char*  scan_num (char* s);
-VIRTUAL UV     scan_oct (char* start, I32 len, I32* retlen);
-VIRTUAL OP*    scope (OP* o);
-VIRTUAL char*  screaminstr (SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last);
-#ifndef VMS
-VIRTUAL I32    setenv_getix (char* nam);
-#endif
-VIRTUAL void   setdefout (GV* gv);
-VIRTUAL char*  sharepvn (const char* sv, I32 len, U32 hash);
-VIRTUAL HEK*   share_hek (const char* sv, I32 len, U32 hash);
-VIRTUAL Signal_t sighandler (int sig);
-VIRTUAL SV**   stack_grow (SV** sp, SV**p, int n);
-VIRTUAL I32    start_subparse (I32 is_format, U32 flags);
-VIRTUAL void   sub_crush_depth (CV* cv);
-VIRTUAL bool   sv_2bool (SV* sv);
-VIRTUAL CV*    sv_2cv (SV* sv, HV** st, GV** gvp, I32 lref);
-VIRTUAL IO*    sv_2io (SV* sv);
-VIRTUAL IV     sv_2iv (SV* sv);
-VIRTUAL SV*    sv_2mortal (SV* sv);
-VIRTUAL double sv_2nv (SV* sv);
-VIRTUAL char*  sv_2pv (SV* sv, STRLEN* lp);
-VIRTUAL UV     sv_2uv (SV* sv);
-VIRTUAL IV     sv_iv (SV* sv);
-VIRTUAL UV     sv_uv (SV* sv);
-VIRTUAL double sv_nv (SV* sv);
-VIRTUAL char * sv_pvn (SV *sv, STRLEN *len);
-VIRTUAL I32    sv_true (SV *sv);
-VIRTUAL void   sv_add_arena (char* ptr, U32 size, U32 flags);
-VIRTUAL int    sv_backoff (SV* sv);
-VIRTUAL SV*    sv_bless (SV* sv, HV* stash);
-VIRTUAL void   sv_catpvf (SV* sv, const char* pat, ...);
-VIRTUAL void   sv_catpv (SV* sv, const char* ptr);
-VIRTUAL void   sv_catpvn (SV* sv, const char* ptr, STRLEN len);
-VIRTUAL void   sv_catsv (SV* dsv, SV* ssv);
-VIRTUAL void   sv_chop (SV* sv, char* ptr);
-VIRTUAL void   sv_clean_all (void);
-VIRTUAL void   sv_clean_objs (void);
-VIRTUAL void   sv_clear (SV* sv);
-VIRTUAL I32    sv_cmp (SV* sv1, SV* sv2);
-VIRTUAL I32    sv_cmp_locale (SV* sv1, SV* sv2);
-#ifdef USE_LOCALE_COLLATE
-VIRTUAL char*  sv_collxfrm (SV* sv, STRLEN* nxp);
-#endif
-VIRTUAL OP*    sv_compile_2op (SV* sv, OP** startp, char* code, AV** avp);
-VIRTUAL void   sv_dec (SV* sv);
-VIRTUAL void   sv_dump (SV* sv);
-VIRTUAL bool   sv_derived_from (SV* sv, const char* name);
-VIRTUAL I32    sv_eq (SV* sv1, SV* sv2);
-VIRTUAL void   sv_free (SV* sv);
-VIRTUAL void   sv_free_arenas (void);
-VIRTUAL char*  sv_gets (SV* sv, PerlIO* fp, I32 append);
-VIRTUAL char*  sv_grow (SV* sv, STRLEN newlen);
-VIRTUAL void   sv_inc (SV* sv);
-VIRTUAL void   sv_insert (SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen);
-VIRTUAL int    sv_isa (SV* sv, const char* name);
-VIRTUAL int    sv_isobject (SV* sv);
-VIRTUAL STRLEN sv_len (SV* sv);
-VIRTUAL STRLEN sv_len_utf8 (SV* sv);
-VIRTUAL void   sv_magic (SV* sv, SV* obj, int how, const char* name, I32 namlen);
-VIRTUAL SV*    sv_mortalcopy (SV* oldsv);
-VIRTUAL SV*    sv_newmortal (void);
-VIRTUAL SV*    sv_newref (SV* sv);
-VIRTUAL char*  sv_peek (SV* sv);
-VIRTUAL void   sv_pos_u2b (SV* sv, I32* offsetp, I32* lenp);
-VIRTUAL void   sv_pos_b2u (SV* sv, I32* offsetp);
-VIRTUAL char*  sv_pvn_force (SV* sv, STRLEN* lp);
-VIRTUAL char*  sv_reftype (SV* sv, int ob);
-VIRTUAL void   sv_replace (SV* sv, SV* nsv);
-VIRTUAL void   sv_report_used (void);
-VIRTUAL void   sv_reset (char* s, HV* stash);
-VIRTUAL void   sv_setpvf (SV* sv, const char* pat, ...);
-VIRTUAL void   sv_setiv (SV* sv, IV num);
-VIRTUAL void   sv_setpviv (SV* sv, IV num);
-VIRTUAL void   sv_setuv (SV* sv, UV num);
-VIRTUAL void   sv_setnv (SV* sv, double num);
-VIRTUAL SV*    sv_setref_iv (SV* rv, const char* classname, IV iv);
-VIRTUAL SV*    sv_setref_nv (SV* rv, const char* classname, double nv);
-VIRTUAL SV*    sv_setref_pv (SV* rv, const char* classname, void* pv);
-VIRTUAL SV*    sv_setref_pvn (SV* rv, const char* classname, char* pv, STRLEN n);
-VIRTUAL void   sv_setpv (SV* sv, const char* ptr);
-VIRTUAL void   sv_setpvn (SV* sv, const char* ptr, STRLEN len);
-VIRTUAL void   sv_setsv (SV* dsv, SV* ssv);
-VIRTUAL void   sv_taint (SV* sv);
-VIRTUAL bool   sv_tainted (SV* sv);
-VIRTUAL int    sv_unmagic (SV* sv, int type);
-VIRTUAL void   sv_unref (SV* sv);
-VIRTUAL void   sv_untaint (SV* sv);
-VIRTUAL bool   sv_upgrade (SV* sv, U32 mt);
-VIRTUAL void   sv_usepvn (SV* sv, char* ptr, STRLEN len);
-VIRTUAL void   sv_vcatpvfn (SV* sv, const char* pat, STRLEN patlen,
-                      va_list* args, SV** svargs, I32 svmax,
-                      bool *used_locale);
-VIRTUAL void   sv_vsetpvfn (SV* sv, const char* pat, STRLEN patlen,
-                      va_list* args, SV** svargs, I32 svmax,
-                      bool *used_locale);
-VIRTUAL SV*    swash_init (char* pkg, char* name, SV* listsv, I32 minbits, I32 none);
-VIRTUAL UV     swash_fetch (SV *sv, U8 *ptr);
-VIRTUAL void   taint_env (void);
-VIRTUAL void   taint_proper (const char* f, char* s);
-VIRTUAL UV     to_utf8_lower (U8 *p);
-VIRTUAL UV     to_utf8_upper (U8 *p);
-VIRTUAL UV     to_utf8_title (U8 *p);
-#ifdef UNLINK_ALL_VERSIONS
-VIRTUAL I32    unlnk (char* f);
-#endif
-#ifdef USE_THREADS
-VIRTUAL void   unlock_condpair (void* svv);
-#endif
-VIRTUAL void   unsharepvn (const char* sv, I32 len, U32 hash);
-VIRTUAL void   unshare_hek (HEK* hek);
-VIRTUAL void   utilize (int aver, I32 floor, OP* version, OP* id, OP* arg);
-VIRTUAL U8*    utf16_to_utf8 (U16* p, U8 *d, I32 bytelen);
-VIRTUAL U8*    utf16_to_utf8_reversed (U16* p, U8 *d, I32 bytelen);
-VIRTUAL I32    utf8_distance (U8 *a, U8 *b);
-VIRTUAL U8*    utf8_hop (U8 *s, I32 off);
-VIRTUAL UV     utf8_to_uv (U8 *s, I32* retlen);
-VIRTUAL U8*    uv_to_utf8 (U8 *d, UV uv);
-VIRTUAL void   vivify_defelem (SV* sv);
-VIRTUAL void   vivify_ref (SV* sv, U32 to_what);
-VIRTUAL I32    wait4pid (int pid, int* statusp, int flags);
-VIRTUAL void   warn (const char* pat,...);
-VIRTUAL void   warner (U32 err, const char* pat,...);
-VIRTUAL void   watch (char** addr);
-VIRTUAL I32    whichsig (char* sig);
-VIRTUAL int    yyerror (char* s);
-#ifdef USE_PURE_BISON
-# define PERL_YYLEX_PARAM_DECL YYSTYPE *lvalp, int *lcharp
-#else
-# define PERL_YYLEX_PARAM_DECL void
-#endif
-VIRTUAL int    yylex (PERL_YYLEX_PARAM_DECL);
-VIRTUAL int    yyparse (void);
-VIRTUAL int    yywarn (char* s);
-
-VIRTUAL Malloc_t safesysmalloc (MEM_SIZE nbytes);
-VIRTUAL Malloc_t safesyscalloc (MEM_SIZE elements, MEM_SIZE size);
-VIRTUAL Malloc_t safesysrealloc (Malloc_t where, MEM_SIZE nbytes);
-VIRTUAL Free_t   safesysfree (Malloc_t where);
-
-#ifdef LEAKTEST
-VIRTUAL Malloc_t safexmalloc (I32 x, MEM_SIZE size);
-VIRTUAL Malloc_t safexcalloc (I32 x, MEM_SIZE elements, MEM_SIZE size);
-VIRTUAL Malloc_t safexrealloc (Malloc_t where, MEM_SIZE size);
-VIRTUAL void     safexfree (Malloc_t where);
-#endif
-
-#ifdef PERL_GLOBAL_STRUCT
-VIRTUAL struct perl_vars *Perl_GetVars (void);
-#endif
-
-#ifdef PERL_OBJECT
-protected:
-void hsplit (HV *hv);
-void hfreeentries (HV *hv);
-void more_he (void);
-HE* new_he (void);
-void del_he (HE *p);
-HEK *save_hek (const char *str, I32 len, U32 hash);
-SV *mess_alloc (void);
-void gv_init_sv (GV *gv, I32 sv_type);
-SV *save_scalar_at (SV **sptr);
-IV asIV (SV* sv);
-UV asUV (SV* sv);
-SV *more_sv (void);
-void more_xiv (void);
-void more_xnv (void);
-void more_xpv (void);
-void more_xrv (void);
-XPVIV *new_xiv (void);
-XPVNV *new_xnv (void);
-XPV *new_xpv (void);
-XRV *new_xrv (void);
-void del_xiv (XPVIV* p);
-void del_xnv (XPVNV* p);
-void del_xpv (XPV* p);
-void del_xrv (XRV* p);
-void sv_unglob (SV* sv);
-I32 avhv_index_sv (SV* sv);
-
-void do_report_used (SV *sv);
-void do_clean_objs (SV *sv);
-void do_clean_named_objs (SV *sv);
-void do_clean_all (SV *sv);
-void not_a_number (SV *sv);
-void* my_safemalloc (MEM_SIZE size);
-
-typedef void (CPerlObj::*SVFUNC) (SV*);
-void visit (SVFUNC f);
-
-typedef I32 (CPerlObj::*SVCOMPARE) (SV*, SV*);
-void qsortsv (SV ** array, size_t num_elts, SVCOMPARE f);
-I32 sortcv (SV *a, SV *b);
-void save_magic (I32 mgs_ix, SV *sv);
-int magic_methpack (SV *sv, MAGIC *mg, char *meth);
-int magic_methcall (SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val);
-int magic_methcall (MAGIC *mg, char *meth, I32 flags, int n, SV *val);
-OP * doform (CV *cv, GV *gv, OP *retop);
-void doencodes (SV* sv, char* s, I32 len);
-SV* refto (SV* sv);
-U32 seed (void);
-OP *docatch (OP *o);
-void *docatch_body (va_list args);
-void *perl_parse_body (va_list args);
-void *perl_run_body (va_list args);
-void *perl_call_body (va_list args);
-void perl_call_xbody (OP *myop, int is_eval);
-void *call_list_body (va_list args);
-OP *dofindlabel (OP *o, char *label, OP **opstack, OP **oplimit);
-void doparseform (SV *sv);
-I32 dopoptoeval (I32 startingblock);
-I32 dopoptolabel (char *label);
-I32 dopoptoloop (I32 startingblock);
-I32 dopoptosub (I32 startingblock);
-I32 dopoptosub_at (PERL_CONTEXT* cxstk, I32 startingblock);
-void free_closures (void);
-void save_lines (AV *array, SV *sv);
-OP *doeval (int gimme, OP** startop);
-PerlIO *doopen_pmc (const char *name, const char *mode);
-I32 sv_ncmp (SV *a, SV *b);
-I32 sv_i_ncmp (SV *a, SV *b);
-I32 amagic_ncmp (SV *a, SV *b);
-I32 amagic_i_ncmp (SV *a, SV *b);
-I32 amagic_cmp (SV *str1, SV *str2);
-I32 amagic_cmp_locale (SV *str1, SV *str2);
-
-SV *mul128 (SV *sv, U8 m);
-SV *is_an_int (char *s, STRLEN l);
-int div128 (SV *pnum, bool *done);
-void check_uni (void);
-void  force_next (I32 type);
-char *force_version (char *start);
-char *force_word (char *start, int token, int check_keyword, int allow_pack, int allow_tick);
-SV *tokeq (SV *sv);
-char *scan_const (char *start);
-char *scan_formline (char *s);
-char *scan_heredoc (char *s);
-char *scan_ident (char *s, char *send, char *dest, STRLEN destlen, I32 ck_uni);
-char *scan_inputsymbol (char *start);
-char *scan_pat (char *start, I32 type);
-char *scan_str (char *start);
-char *scan_subst (char *start);
-char *scan_trans (char *start);
-char *scan_word (char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp);
-char *skipspace (char *s);
-void checkcomma (char *s, char *name, char *what);
-void force_ident (char *s, int kind);
-void incline (char *s);
-int intuit_method (char *s, GV *gv);
-int intuit_more (char *s);
-I32 lop (I32 f, expectation x, char *s);
-void missingterm (char *s);
-void no_op (char *what, char *s);
-void set_csh (void);
-I32 sublex_done (void);
-I32 sublex_push (void);
-I32 sublex_start (void);
-#ifdef CRIPPLED_CC
-int uni (I32 f, char *s);
-#endif
-char * filter_gets (SV *sv, PerlIO *fp, STRLEN append);
-SV *new_constant (char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type);
-int ao (int toketype);
-void depcom (void);
-#ifdef WIN32
-I32 win32_textfilter (int idx, SV *sv, int maxlen);
-#endif
-char* incl_perldb (void);
-SV *isa_lookup (HV *stash, const char *name, int len, int level);
-CV *get_db_sub (SV **svp, CV *cv);
-I32 list_assignment (OP *o);
-void bad_type (I32 n, char *t, char *name, OP *kid);
-OP *modkids (OP *o, I32 type);
-void no_bareword_allowed (OP *o);
-OP *no_fh_allowed (OP *o);
-OP *scalarboolean (OP *o);
-OP *too_few_arguments (OP *o, char* name);
-OP *too_many_arguments (OP *o, char* name);
-void null (OP* o);
-PADOFFSET pad_findlex (char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval, U32 flags);
-OP *newDEFSVOP (void);
-char* gv_ename (GV *gv);
-CV *cv_clone2 (CV *proto, CV *outside);
-
-void find_beginning (void);
-void forbid_setid (char *);
-void incpush (char *, int);
-void init_interp (void);
-void init_ids (void);
-void init_debugger (void);
-void init_lexer (void);
-void init_main_stash (void);
-#ifdef USE_THREADS
-struct perl_thread * init_main_thread (void);
-#endif /* USE_THREADS */
-void init_perllib (void);
-void init_postdump_symbols (int, char **, char **);
-void init_predump_symbols (void);
-void my_exit_jump (void) __attribute__((noreturn));
-void nuke_stacks (void);
-void open_script (char *, bool, SV *, int *fd);
-void usage (char *);
-void validate_suid (char *, char*, int);
-int emulate_eaccess (const char* path, int mode);
-
-regnode *reg (I32, I32 *);
-regnode *reganode (U8, U32);
-regnode *regatom (I32 *);
-regnode *regbranch (I32 *, I32);
-void regc (U8, char *);
-void reguni (UV, char *, I32*);
-regnode *regclass (void);
-regnode *regclassutf8 (void);
-I32 regcurly (char *);
-regnode *reg_node (U8);
-regnode *regpiece (I32 *);
-void reginsert (U8, regnode *);
-void regoptail (regnode *, regnode *);
-void regset (char *, I32);
-void regtail (regnode *, regnode *);
-char* regwhite (char *, char *);
-char* nextchar (void);
-regnode *dumpuntil (regnode *start, regnode *node, regnode *last, SV* sv, I32 l);
-void scan_commit (scan_data_t *data);
-I32 study_chunk (regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags);
-I32 add_data (I32 n, char *s);
-void   re_croak2 (const char* pat1,const char* pat2,...) __attribute__((noreturn));
-char* regpposixcc (I32 value);
-void clear_re (void *r);
-I32 regmatch (regnode *prog);
-I32 regrepeat (regnode *p, I32 max);
-I32 regrepeat_hard (regnode *p, I32 max, I32 *lp);
-I32 regtry (regexp *prog, char *startpos);
-bool reginclass (char *p, I32 c);
-bool reginclassutf8 (regnode *f, U8* p);
-CHECKPOINT regcppush (I32 parenfloor);
-char * regcppop (void);
-char * regcp_set_to (I32 ss);
-void cache_re (regexp *prog);
-void restore_pos (void *arg);
-U8 * reghop (U8 *pos, I32 off);
-U8 * reghopmaybe (U8 *pos, I32 off);
-void dump (char *pat,...);
-#ifdef WIN32
-int do_aspawn (void *vreally, void **vmark, void **vsp);
-#endif
-
-#ifdef DEBUGGING
-void del_sv (SV *p);
-#endif
-void debprof (OP *o);
-
-OP *new_logop (I32 type, I32 flags, OP **firstp, OP **otherp);
-void simplify_sort (OP *o);
-bool is_handle_constructor (OP *o, I32 argnum);
-void sv_add_backref (SV *tsv, SV *sv);
-void sv_del_backref (SV *sv);
-
-I32 do_trans_CC_simple (SV *sv);
-I32 do_trans_CC_count (SV *sv);
-I32 do_trans_CC_complex (SV *sv);
-I32 do_trans_UU_simple (SV *sv);
-I32 do_trans_UU_count (SV *sv);
-I32 do_trans_UU_complex (SV *sv);
-I32 do_trans_UC_simple (SV *sv);
-I32 do_trans_CU_simple (SV *sv);
-I32 do_trans_UC_trivial (SV *sv);
-I32 do_trans_CU_trivial (SV *sv);
-
-#undef PERL_CKDEF
-#undef PERL_PPDEF
-#define PERL_CKDEF(s) OP* s (OP *o);
-#define PERL_PPDEF(s) OP* s (ARGSproto);
-public:
-
-#include "pp_proto.h"
-
-void unwind_handler_stack (void *p);
-void restore_magic (void *p);
-void restore_rsfp (void *f);
-void restore_expect (void *e);
-void restore_lex_expect (void *e);
-VIRTUAL void yydestruct (void *ptr);
-VIRTUAL int fprintf (PerlIO *pf, const char *pat, ...);
-VIRTUAL int runops_standard (void);
-VIRTUAL int runops_debug (void);
-
-#ifdef WIN32
-VIRTUAL int&   ErrorNo (void);
-#endif /* WIN32 */
-#else  /* !PERL_OBJECT */
-END_EXTERN_C
-#endif /* PERL_OBJECT */
-
-VIRTUAL void   sv_catpvf_mg (SV *sv, const char* pat, ...);
-VIRTUAL void   sv_catpv_mg (SV *sv, const char *ptr);
-VIRTUAL void   sv_catpvn_mg (SV *sv, const char *ptr, STRLEN len);
-VIRTUAL void   sv_catsv_mg (SV *dstr, SV *sstr);
-VIRTUAL void   sv_setpvf_mg (SV *sv, const char* pat, ...);
-VIRTUAL void   sv_setiv_mg (SV *sv, IV i);
-VIRTUAL void   sv_setpviv_mg (SV *sv, IV iv);
-VIRTUAL void   sv_setuv_mg (SV *sv, UV u);
-VIRTUAL void   sv_setnv_mg (SV *sv, double num);
-VIRTUAL void   sv_setpv_mg (SV *sv, const char *ptr);
-VIRTUAL void   sv_setpvn_mg (SV *sv, const char *ptr, STRLEN len);
-VIRTUAL void   sv_setsv_mg (SV *dstr, SV *sstr);
-VIRTUAL void   sv_usepvn_mg (SV *sv, char *ptr, STRLEN len);
-
-VIRTUAL MGVTBL*        get_vtbl (int vtbl_id);
-
-/* New virtual functions must be added here to maintain binary
- * compatablity with PERL_OBJECT
- */
-
-VIRTUAL char* pv_display (SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim);
-VIRTUAL void dump_indent (I32 level, PerlIO *file, const char* pat, ...);
-
-VIRTUAL void do_gv_dump (I32 level, PerlIO *file, char *name, GV *sv);
-VIRTUAL void do_gvgv_dump (I32 level, PerlIO *file, char *name, GV *sv);
-VIRTUAL void do_hv_dump (I32 level, PerlIO *file, char *name, HV *sv);
-VIRTUAL void do_magic_dump (I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
-VIRTUAL void do_op_dump (I32 level, PerlIO *file, OP *o);
-VIRTUAL void do_pmop_dump (I32 level, PerlIO *file, PMOP *pm);
-VIRTUAL void do_sv_dump (I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
-VIRTUAL void magic_dump (MAGIC *mg);
-VIRTUAL void* default_protect (int *excpt, protect_body_t body, ...);
-VIRTUAL void reginitcolors (void);
-VIRTUAL char* sv_2pv_nolen (SV* sv);
-VIRTUAL char* sv_pv (SV *sv);
-VIRTUAL void sv_force_normal (SV *sv);
-VIRTUAL void tmps_grow (I32 n);
-VIRTUAL void *bset_obj_store (void *obj, I32 ix);
-
-VIRTUAL SV* sv_rvweaken (SV *sv);
-VIRTUAL int magic_killbackrefs (SV *sv, MAGIC *mg);
+void*  Perl_my_memset(pTHX_ char* loc, I32 ch, I32 len);
+#endif
+#if defined(MYSWAP)
+long   Perl_my_ntohl(pTHX_ long l);
+#endif
+#if !defined(PERL_OBJECT)
+I32    Perl_my_pclose(pTHX_ PerlIO* ptr);
+#endif
+#if !defined(PERL_OBJECT)
+PerlIO*        Perl_my_popen(pTHX_ char* cmd, char* mode);
+#endif
+void   Perl_my_setenv(pTHX_ char* nam, char* val);
+I32    Perl_my_stat(pTHX_ ARGSproto);
+#if defined(MYSWAP)
+short  Perl_my_swap(pTHX_ short s);
+#endif
+void   Perl_my_unexec(pTHX);
+OP*    Perl_newANONHASH(pTHX_ OP* o);
+OP*    Perl_newANONLIST(pTHX_ OP* o);
+OP*    Perl_newANONSUB(pTHX_ I32 floor, OP* proto, OP* block);
+OP*    Perl_newASSIGNOP(pTHX_ I32 flags, OP* left, I32 optype, OP* right);
+AV*    Perl_newAV(pTHX);
+OP*    Perl_newAVREF(pTHX_ OP* o);
+OP*    Perl_newBINOP(pTHX_ I32 type, I32 flags, OP* first, OP* last);
+OP*    Perl_newCONDOP(pTHX_ I32 flags, OP* expr, OP* trueop, OP* falseop);
+void   Perl_newCONSTSUB(pTHX_ HV* stash, char* name, SV* sv);
+OP*    Perl_newCVREF(pTHX_ I32 flags, OP* o);
+void   Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
+OP*    Perl_newFOROP(pTHX_ I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont);
+OP*    Perl_newGVOP(pTHX_ I32 type, I32 flags, GV* gv);
+OP*    Perl_newGVREF(pTHX_ I32 type, OP* o);
+GV*    Perl_newGVgen(pTHX_ char* pack);
+HV*    Perl_newHV(pTHX);
+OP*    Perl_newHVREF(pTHX_ OP* o);
+HV*    Perl_newHVhv(pTHX_ HV* hv);
+IO*    Perl_newIO(pTHX);
+OP*    Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP* first, OP* last);
+OP*    Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP* left, OP* right);
+OP*    Perl_newLOOPEX(pTHX_ I32 type, OP* label);
+OP*    Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP* expr, OP* block);
+OP*    Perl_newNULLLIST(pTHX);
+OP*    Perl_newOP(pTHX_ I32 optype, I32 flags);
+OP*    Perl_newPMOP(pTHX_ I32 type, I32 flags);
+void   Perl_newPROG(pTHX_ OP* o);
+OP*    Perl_newPVOP(pTHX_ I32 type, I32 flags, char* pv);
+OP*    Perl_newRANGE(pTHX_ I32 flags, OP* left, OP* right);
+SV*    Perl_newRV(pTHX_ SV* pref);
+SV*    Perl_newRV_noinc(pTHX_ SV *sv);
+OP*    Perl_newSLICEOP(pTHX_ I32 flags, OP* subscript, OP* listop);
+OP*    Perl_newSTATEOP(pTHX_ I32 flags, char* label, OP* o);
+CV*    Perl_newSUB(pTHX_ I32 floor, OP* o, OP* proto, OP* block);
+SV*    Perl_newSV(pTHX_ STRLEN len);
+OP*    Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv);
+OP*    Perl_newSVREF(pTHX_ OP* o);
+SV*    Perl_newSViv(pTHX_ IV i);
+SV*    Perl_newSVnv(pTHX_ double n);
+SV*    Perl_newSVpv(pTHX_ const char* s, STRLEN len);
+SV*    Perl_newSVpvf(pTHX_ const char* pat, ...);
+SV*    Perl_newSVpvn(pTHX_ const char* s, STRLEN len);
+SV*    Perl_newSVrv(pTHX_ SV* rv, const char* classname);
+SV*    Perl_newSVsv(pTHX_ SV* old);
+OP*    Perl_newUNOP(pTHX_ I32 type, I32 flags, OP* first);
+OP*    Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont);
+CV*    Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
+void   Perl_new_collate(pTHX_ const char* newcoll);
+void   Perl_new_ctype(pTHX_ const char* newctype);
+void   Perl_new_numeric(pTHX_ const char* newcoll);
+PERL_SI*       Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems);
+#if defined(USE_THREADS)
+struct perl_thread*    Perl_new_struct_thread(pTHX_ struct perl_thread *t);
+#endif
+PerlIO*        Perl_nextargv(pTHX_ GV* gv);
+char*  Perl_ninstr(pTHX_ const char* big, const char* bigend, const char* little, const char* lend);
+OP*    Perl_oopsAV(pTHX_ OP* o);
+OP*    Perl_oopsCV(pTHX_ OP* o);
+OP*    Perl_oopsHV(pTHX_ OP* o);
+SV*    Perl_op_const_sv(pTHX_ OP* o, CV* cv);
+void   Perl_op_dump(pTHX_ OP* arg);
+void   Perl_op_free(pTHX_ OP* arg);
+void   Perl_package(pTHX_ OP* o);
+PADOFFSET      Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
+PADOFFSET      Perl_pad_allocmy(pTHX_ char* name);
+PADOFFSET      Perl_pad_findmy(pTHX_ char* name);
+void   Perl_pad_free(pTHX_ PADOFFSET po);
+void   Perl_pad_leavemy(pTHX_ I32 fill);
+void   Perl_pad_reset(pTHX);
+SV*    Perl_pad_sv(pTHX_ PADOFFSET po);
+void   Perl_pad_swipe(pTHX_ PADOFFSET po);
+void   Perl_peep(pTHX_ OP* o);
+#if !defined(PERL_OBJECT)
+PerlInterpreter*       perl_alloc(void);
+#endif
+void   perl_construct(PerlInterpreter* sv_interp);
+void   perl_destruct(PerlInterpreter* sv_interp);
+void   perl_free(PerlInterpreter* sv_interp);
+int    perl_parse(PerlInterpreter* sv_interp, XSINIT_t xsinit, int argc, char** argv, char** env);
+int    perl_run(PerlInterpreter* sv_interp);
+void   Perl_pidgone(pTHX_ int pid, int status);
+void   Perl_pmflag(pTHX_ U16* pmfl, int ch);
+void   Perl_pmop_dump(pTHX_ PMOP* pm);
+OP*    Perl_pmruntime(pTHX_ OP* pm, OP* expr, OP* repl);
+OP*    Perl_pmtrans(pTHX_ OP* o, OP* expr, OP* repl);
+OP*    Perl_pop_return(pTHX);
+void   Perl_pop_scope(pTHX);
+regexp*        Perl_pregcomp(pTHX_ char* exp, char* xend, PMOP* pm);
+I32    Perl_pregexec(pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave);
+void   Perl_pregfree(pTHX_ struct regexp* r);
+OP*    Perl_prepend_elem(pTHX_ I32 optype, OP* head, OP* tail);
+void   Perl_push_return(pTHX_ OP* o);
+void   Perl_push_scope(pTHX);
+char*  Perl_pv_display(pTHX_ SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim);
+#if defined(MYMALLOC)
+Malloc_t       Perl_realloc(pTHX_ Malloc_t where, MEM_SIZE nbytes);
+#endif
+OP*    Perl_ref(pTHX_ OP* o, I32 type);
+OP*    Perl_refkids(pTHX_ OP* o, I32 type);
+void   Perl_regdump(pTHX_ regexp* r);
+I32    Perl_regexec_flags(pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags);
+void   Perl_reginitcolors(pTHX);
+regnode*       Perl_regnext(pTHX_ regnode* p);
+void   Perl_regprop(pTHX_ SV* sv, regnode* o);
+void   Perl_repeatcpy(pTHX_ char* to, const char* from, I32 len, I32 count);
+void   Perl_require_pv(pTHX_ const char* pv);
+char*  Perl_rninstr(pTHX_ const char* big, const char* bigend, const char* little, const char* lend);
+Sighandler_t   Perl_rsignal(pTHX_ int i, Sighandler_t t);
+int    Perl_rsignal_restore(pTHX_ int i, Sigsave_t* t);
+int    Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* t2);
+Sighandler_t   Perl_rsignal_state(pTHX_ int i);
+int    Perl_runops_debug(pTHX);
+int    Perl_runops_standard(pTHX);
+void   Perl_rxres_free(pTHX_ void** rsp);
+void   Perl_rxres_restore(pTHX_ void** rsp, REGEXP* prx);
+void   Perl_rxres_save(pTHX_ void** rsp, REGEXP* prx);
+Malloc_t       Perl_safesyscalloc(pTHX_ MEM_SIZE elements, MEM_SIZE size);
+Free_t Perl_safesysfree(pTHX_ Malloc_t where);
+Malloc_t       Perl_safesysmalloc(pTHX_ MEM_SIZE nbytes);
+Malloc_t       Perl_safesysrealloc(pTHX_ Malloc_t where, MEM_SIZE nbytes);
+#if defined(LEAKTEST)
+Malloc_t       Perl_safexcalloc(pTHX_ I32 x, MEM_SIZE elements, MEM_SIZE size);
+#endif
+#if defined(LEAKTEST)
+void   Perl_safexfree(pTHX_ Malloc_t where);
+#endif
+#if defined(LEAKTEST)
+Malloc_t       Perl_safexmalloc(pTHX_ I32 x, MEM_SIZE size);
+#endif
+#if defined(LEAKTEST)
+Malloc_t       Perl_safexrealloc(pTHX_ Malloc_t where, MEM_SIZE size);
+#endif
+#if !defined(HAS_RENAME)
+I32    Perl_same_dirent(pTHX_ char* a, char* b);
+#endif
+void   Perl_save_I16(pTHX_ I16* intp);
+void   Perl_save_I32(pTHX_ I32* intp);
+void   Perl_save_aelem(pTHX_ AV* av, I32 idx, SV **sptr);
+I32    Perl_save_alloc(pTHX_ I32 size, I32 pad);
+void   Perl_save_aptr(pTHX_ AV** aptr);
+AV*    Perl_save_ary(pTHX_ GV* gv);
+void   Perl_save_clearsv(pTHX_ SV** svp);
+void   Perl_save_delete(pTHX_ HV* hv, char* key, I32 klen);
+void   Perl_save_destructor(pTHX_ DESTRUCTORFUNC_t f, void* p);
+void   Perl_save_freeop(pTHX_ OP* o);
+void   Perl_save_freepv(pTHX_ char* pv);
+void   Perl_save_freesv(pTHX_ SV* sv);
+void   Perl_save_generic_svref(pTHX_ SV** sptr);
+void   Perl_save_gp(pTHX_ GV* gv, I32 empty);
+HV*    Perl_save_hash(pTHX_ GV* gv);
+void   Perl_save_helem(pTHX_ HV* hv, SV *key, SV **sptr);
+void   Perl_save_hints(pTHX);
+void   Perl_save_hptr(pTHX_ HV** hptr);
+void   Perl_save_int(pTHX_ int* intp);
+void   Perl_save_item(pTHX_ SV* item);
+void   Perl_save_iv(pTHX_ IV* iv);
+void   Perl_save_list(pTHX_ SV** sarg, I32 maxsarg);
+void   Perl_save_long(pTHX_ long* longp);
+void   Perl_save_nogv(pTHX_ GV* gv);
+void   Perl_save_op(pTHX);
+void   Perl_save_pptr(pTHX_ char** pptr);
+void   Perl_save_re_context(pTHX);
+SV*    Perl_save_scalar(pTHX_ GV* gv);
+void   Perl_save_sptr(pTHX_ SV** sptr);
+SV*    Perl_save_svref(pTHX_ SV** sptr);
+SV**   Perl_save_threadsv(pTHX_ PADOFFSET i);
+char*  Perl_savepv(pTHX_ const char* sv);
+char*  Perl_savepvn(pTHX_ const char* sv, I32 len);
+void   Perl_savestack_grow(pTHX);
+OP*    Perl_sawparens(pTHX_ OP* o);
+OP*    Perl_scalar(pTHX_ OP* o);
+OP*    Perl_scalarkids(pTHX_ OP* o);
+OP*    Perl_scalarseq(pTHX_ OP* o);
+OP*    Perl_scalarvoid(pTHX_ OP* o);
+UV     Perl_scan_bin(pTHX_ char* start, I32 len, I32* retlen);
+UV     Perl_scan_hex(pTHX_ char* start, I32 len, I32* retlen);
+char*  Perl_scan_num(pTHX_ char* s);
+UV     Perl_scan_oct(pTHX_ char* start, I32 len, I32* retlen);
+OP*    Perl_scope(pTHX_ OP* o);
+char*  Perl_screaminstr(pTHX_ SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last);
+void   Perl_set_numeric_local(pTHX);
+void   Perl_set_numeric_standard(pTHX);
+void   Perl_setdefout(pTHX_ GV* gv);
+#if !defined(VMS)
+I32    Perl_setenv_getix(pTHX_ char* nam);
+#endif
+HEK*   Perl_share_hek(pTHX_ const char* sv, I32 len, U32 hash);
+char*  Perl_sharepvn(pTHX_ const char* sv, I32 len, U32 hash);
+Signal_t       Perl_sighandler(pTHX_ int sig);
+SV**   Perl_stack_grow(pTHX_ SV** sp, SV**p, int n);
+I32    Perl_start_subparse(pTHX_ I32 is_format, U32 flags);
+void   Perl_sub_crush_depth(pTHX_ CV* cv);
+bool   Perl_sv_2bool(pTHX_ SV* sv);
+CV*    Perl_sv_2cv(pTHX_ SV* sv, HV** st, GV** gvp, I32 lref);
+IO*    Perl_sv_2io(pTHX_ SV* sv);
+IV     Perl_sv_2iv(pTHX_ SV* sv);
+SV*    Perl_sv_2mortal(pTHX_ SV* sv);
+double Perl_sv_2nv(pTHX_ SV* sv);
+char*  Perl_sv_2pv(pTHX_ SV* sv, STRLEN* lp);
+char*  Perl_sv_2pv_nolen(pTHX_ SV* sv);
+UV     Perl_sv_2uv(pTHX_ SV* sv);
+void   Perl_sv_add_arena(pTHX_ char* ptr, U32 size, U32 flags);
+int    Perl_sv_backoff(pTHX_ SV* sv);
+SV*    Perl_sv_bless(pTHX_ SV* sv, HV* stash);
+void   Perl_sv_catpv(pTHX_ SV* sv, const char* ptr);
+void   Perl_sv_catpv_mg(pTHX_ SV *sv, const char *ptr);
+void   Perl_sv_catpvf(pTHX_ SV* sv, const char* pat, ...);
+void   Perl_sv_catpvf_mg(pTHX_ SV *sv, const char* pat, ...);
+void   Perl_sv_catpvn(pTHX_ SV* sv, const char* ptr, STRLEN len);
+void   Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len);
+void   Perl_sv_catsv(pTHX_ SV* dsv, SV* ssv);
+void   Perl_sv_catsv_mg(pTHX_ SV *dstr, SV *sstr);
+void   Perl_sv_chop(pTHX_ SV* sv, char* ptr);
+void   Perl_sv_clean_all(pTHX);
+void   Perl_sv_clean_objs(pTHX);
+void   Perl_sv_clear(pTHX_ SV* sv);
+I32    Perl_sv_cmp(pTHX_ SV* sv1, SV* sv2);
+I32    Perl_sv_cmp_locale(pTHX_ SV* sv1, SV* sv2);
+#if defined(USE_LOCALE_COLLATE)
+char*  Perl_sv_collxfrm(pTHX_ SV* sv, STRLEN* nxp);
+#endif
+OP*    Perl_sv_compile_2op(pTHX_ SV* sv, OP** startp, char* code, AV** avp);
+void   Perl_sv_dec(pTHX_ SV* sv);
+bool   Perl_sv_derived_from(pTHX_ SV* sv, const char* name);
+void   Perl_sv_dump(pTHX_ SV* sv);
+I32    Perl_sv_eq(pTHX_ SV* sv1, SV* sv2);
+void   Perl_sv_force_normal(pTHX_ SV *sv);
+void   Perl_sv_free(pTHX_ SV* sv);
+void   Perl_sv_free_arenas(pTHX);
+char*  Perl_sv_gets(pTHX_ SV* sv, PerlIO* fp, I32 append);
+char*  Perl_sv_grow(pTHX_ SV* sv, STRLEN newlen);
+void   Perl_sv_inc(pTHX_ SV* sv);
+void   Perl_sv_insert(pTHX_ SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen);
+int    Perl_sv_isa(pTHX_ SV* sv, const char* name);
+int    Perl_sv_isobject(pTHX_ SV* sv);
+IV     Perl_sv_iv(pTHX_ SV* sv);
+STRLEN Perl_sv_len(pTHX_ SV* sv);
+STRLEN Perl_sv_len_utf8(pTHX_ SV* sv);
+void   Perl_sv_magic(pTHX_ SV* sv, SV* obj, int how, const char* name, I32 namlen);
+SV*    Perl_sv_mortalcopy(pTHX_ SV* oldsv);
+SV*    Perl_sv_newmortal(pTHX);
+SV*    Perl_sv_newref(pTHX_ SV* sv);
+double Perl_sv_nv(pTHX_ SV* sv);
+char*  Perl_sv_peek(pTHX_ SV* sv);
+void   Perl_sv_pos_b2u(pTHX_ SV* sv, I32* offsetp);
+void   Perl_sv_pos_u2b(pTHX_ SV* sv, I32* offsetp, I32* lenp);
+char*  Perl_sv_pv(pTHX_ SV *sv);
+char*  Perl_sv_pvn(pTHX_ SV *sv, STRLEN *len);
+char*  Perl_sv_pvn_force(pTHX_ SV* sv, STRLEN* lp);
+char*  Perl_sv_reftype(pTHX_ SV* sv, int ob);
+void   Perl_sv_replace(pTHX_ SV* sv, SV* nsv);
+void   Perl_sv_report_used(pTHX);
+void   Perl_sv_reset(pTHX_ char* s, HV* stash);
+SV*    Perl_sv_rvweaken(pTHX_ SV *sv);
+void   Perl_sv_setiv(pTHX_ SV* sv, IV num);
+void   Perl_sv_setiv_mg(pTHX_ SV *sv, IV i);
+void   Perl_sv_setnv(pTHX_ SV* sv, double num);
+void   Perl_sv_setnv_mg(pTHX_ SV *sv, double num);
+void   Perl_sv_setpv(pTHX_ SV* sv, const char* ptr);
+void   Perl_sv_setpv_mg(pTHX_ SV *sv, const char *ptr);
+void   Perl_sv_setpvf(pTHX_ SV* sv, const char* pat, ...);
+void   Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...);
+void   Perl_sv_setpviv(pTHX_ SV* sv, IV num);
+void   Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv);
+void   Perl_sv_setpvn(pTHX_ SV* sv, const char* ptr, STRLEN len);
+void   Perl_sv_setpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len);
+SV*    Perl_sv_setref_iv(pTHX_ SV* rv, const char* classname, IV iv);
+SV*    Perl_sv_setref_nv(pTHX_ SV* rv, const char* classname, double nv);
+SV*    Perl_sv_setref_pv(pTHX_ SV* rv, const char* classname, void* pv);
+SV*    Perl_sv_setref_pvn(pTHX_ SV* rv, const char* classname, char* pv, STRLEN n);
+void   Perl_sv_setsv(pTHX_ SV* dsv, SV* ssv);
+void   Perl_sv_setsv_mg(pTHX_ SV *dstr, SV *sstr);
+void   Perl_sv_setuv(pTHX_ SV* sv, UV num);
+void   Perl_sv_setuv_mg(pTHX_ SV *sv, UV u);
+void   Perl_sv_taint(pTHX_ SV* sv);
+bool   Perl_sv_tainted(pTHX_ SV* sv);
+I32    Perl_sv_true(pTHX_ SV *sv);
+int    Perl_sv_unmagic(pTHX_ SV* sv, int type);
+void   Perl_sv_unref(pTHX_ SV* sv);
+void   Perl_sv_untaint(pTHX_ SV* sv);
+bool   Perl_sv_upgrade(pTHX_ SV* sv, U32 mt);
+void   Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len);
+void   Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len);
+UV     Perl_sv_uv(pTHX_ SV* sv);
+void   Perl_sv_vcatpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale);
+void   Perl_sv_vsetpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale);
+UV     Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr);
+SV*    Perl_swash_init(pTHX_ char* pkg, char* name, SV* listsv, I32 minbits, I32 none);
+void   Perl_taint_env(pTHX);
+void   Perl_taint_proper(pTHX_ const char* f, char* s);
+void   Perl_tmps_grow(pTHX_ I32 n);
+U32    Perl_to_uni_lower(pTHX_ U32 c);
+U32    Perl_to_uni_lower_lc(pTHX_ U32 c);
+U32    Perl_to_uni_title(pTHX_ U32 c);
+U32    Perl_to_uni_title_lc(pTHX_ U32 c);
+U32    Perl_to_uni_upper(pTHX_ U32 c);
+U32    Perl_to_uni_upper_lc(pTHX_ U32 c);
+UV     Perl_to_utf8_lower(pTHX_ U8 *p);
+UV     Perl_to_utf8_title(pTHX_ U8 *p);
+UV     Perl_to_utf8_upper(pTHX_ U8 *p);
+#if defined(UNLINK_ALL_VERSIONS)
+I32    Perl_unlnk(pTHX_ char* f);
+#endif
+#if defined(USE_THREADS)
+void   Perl_unlock_condpair(pTHX_ void* svv);
+#endif
+void   Perl_unshare_hek(pTHX_ HEK* hek);
+void   Perl_unsharepvn(pTHX_ const char* sv, I32 len, U32 hash);
+U8*    Perl_utf16_to_utf8(pTHX_ U16* p, U8 *d, I32 bytelen);
+U8*    Perl_utf16_to_utf8_reversed(pTHX_ U16* p, U8 *d, I32 bytelen);
+I32    Perl_utf8_distance(pTHX_ U8 *a, U8 *b);
+U8*    Perl_utf8_hop(pTHX_ U8 *s, I32 off);
+UV     Perl_utf8_to_uv(pTHX_ U8 *s, I32* retlen);
+void   Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* id, OP* arg);
+U8*    Perl_uv_to_utf8(pTHX_ U8 *d, UV uv);
+void   Perl_vivify_defelem(pTHX_ SV* sv);
+void   Perl_vivify_ref(pTHX_ SV* sv, U32 to_what);
+I32    Perl_wait4pid(pTHX_ int pid, int* statusp, int flags);
+void   Perl_warn(pTHX_ const char* pat, ...);
+void   Perl_warner(pTHX_ U32 err, const char* pat, ...);
+void   Perl_watch(pTHX_ char** addr);
+I32    Perl_whichsig(pTHX_ char* sig);
+void   Perl_yydestruct(pTHX_ void *ptr);
+int    Perl_yyerror(pTHX_ char* s);
+#if !defined(USE_PURE_BISON)
+int    Perl_yylex(pTHX);
+#endif
+int    Perl_yyparse(pTHX);
+int    Perl_yywarn(pTHX_ char* s);
+#if defined(PL_OP_SLAB_ALLOC) && defined(PERL_IN_OP_C)
+STATIC void*   Slab_Alloc(pTHX_ int m, size_t sz);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC I32     add_data(pTHX_ I32 n, char *s);
+#endif
+#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C)
+STATIC void    add_to_chain(pTHX_ void *p, MEM_SIZE size, MEM_SIZE chip);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     amagic_cmp(pTHX_ SV *str1, SV *str2);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     amagic_cmp_locale(pTHX_ SV *str1, SV *str2);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     amagic_i_ncmp(pTHX_ SV *a, SV *b);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     amagic_ncmp(pTHX_ SV *a, SV *b);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC int     ao(pTHX_ int toketype);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC IV      asIV(pTHX_ SV* sv);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC UV      asUV(pTHX_ SV* sv);
+#endif
+#if defined(PERL_IN_AV_C)
+STATIC I32     avhv_index_sv(pTHX_ SV* sv);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC void    bad_type(pTHX_ I32 n, char *t, char *name, OP *kid);
+#endif
+#if defined(MYMALLOC) && defined(DEBUGGING) && defined(PERL_IN_MALLOC_C)
+STATIC void    botch(pTHX_ char *diag, char *s);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC void    cache_re(pTHX_ regexp *prog);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void*   call_body(pTHX_ va_list args);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void*   call_list_body(pTHX_ va_list args);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    call_xbody(pTHX_ OP *myop, int is_eval);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    check_uni(pTHX);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    checkcomma(pTHX_ char *s, char *name, char *what);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void    clear_re(pTHX_ void *r);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC CV*     cv_clone2(pTHX_ CV *proto, CV *outside);
+#endif
+#if defined(PERL_IN_RUN_C)
+STATIC void    debprof(pTHX_ OP *o);
+#endif
+#if defined(PERL_IN_HV_C)
+STATIC void    del_he(pTHX_ HE *p);
+#endif
+#if defined(DEBUGGING) && defined(PERL_IN_SV_C)
+STATIC void    del_sv(pTHX_ SV *p);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    del_xiv(pTHX_ XPVIV* p);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    del_xnv(pTHX_ XPVNV* p);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    del_xpv(pTHX_ XPV* p);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    del_xrv(pTHX_ XRV* p);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    depcom(pTHX);
+#endif
+#if defined(PERL_IN_PP_C)
+STATIC int     div128(pTHX_ SV *pnum, bool *done);
+#endif
+#if defined(WIN32) && defined(PERL_IN_GLOBALS_C)
+STATIC int     do_aspawn(pTHX_ void *vreally, void **vmark, void **vsp);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    do_clean_all(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    do_clean_named_objs(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    do_clean_objs(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    do_report_used(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_CC_complex(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_CC_count(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_CC_simple(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_CU_simple(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_CU_trivial(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_UC_simple(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_UC_trivial(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_UU_complex(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_UU_count(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_DOOP_C)
+STATIC I32     do_trans_UU_simple(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC OP*     docatch(pTHX_ OP *o);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC void*   docatch_body(pTHX_ va_list args);
+#endif
+#if defined(PERL_IN_PP_C)
+STATIC void    doencodes(pTHX_ SV* sv, char* s, I32 len);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC OP*     doeval(pTHX_ int gimme, OP** startop);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC OP*     dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit);
+#endif
+#if defined(PERL_IN_PP_SYS_C)
+STATIC OP*     doform(pTHX_ CV *cv, GV *gv, OP *retop);
+#endif
+#if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) && defined(PERL_IN_PP_SYS_C)
+STATIC int     dooneliner(pTHX_ char *cmd, char *filename);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC PerlIO *        doopen_pmc(pTHX_ const char *name, const char *mode);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC void    doparseform(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     dopoptoeval(pTHX_ I32 startingblock);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     dopoptolabel(pTHX_ char *label);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     dopoptoloop(pTHX_ I32 startingblock);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     dopoptosub(pTHX_ I32 startingblock);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     dopoptosub_at(pTHX_ PERL_CONTEXT* cxstk, I32 startingblock);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC regnode*        dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l);
+#endif
+#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C)
+STATIC Malloc_t        emergency_sbrk(pTHX_ MEM_SIZE size);
+#endif
+#if defined(PERL_IN_PP_SYS_C)
+STATIC int     emulate_eaccess(pTHX_ const char* path, int mode);
+#endif
+#if defined(FCNTL_EMULATE_FLOCK) && defined(PERL_IN_PP_SYS_C)
+STATIC int     fcntl_emulate_flock(pTHX_ int fd, int operation);
+#endif
+#if defined(IAMSUID) && defined(PERL_IN_PERL_C)
+STATIC int     fd_on_nosuid_fs(pTHX_ int fd);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char *  filter_gets(pTHX_ SV *sv, PerlIO *fp, STRLEN append);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    find_beginning(pTHX);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    forbid_setid(pTHX_ char *);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    force_ident(pTHX_ char *s, int kind);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    force_next(pTHX_ I32 type);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   force_version(pTHX_ char *start);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack, int allow_tick);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC void    free_closures(pTHX);
+#endif
+#if defined(PERL_IN_PP_HOT_C)
+STATIC CV*     get_db_sub(pTHX_ SV **svp, CV *cv);
+#endif
+#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C)
+STATIC void*   get_from_bigger_buckets(pTHX_ int bucket, MEM_SIZE size);
+#endif
+#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C)
+STATIC void*   get_from_chain(pTHX_ MEM_SIZE size);
+#endif
+#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C)
+STATIC union overhead *        getpages(pTHX_ int needed, int *nblksp, int bucket);
+#endif
+#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C)
+STATIC int     getpages_adjacent(pTHX_ int require);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC char*   gv_ename(pTHX_ GV *gv);
+#endif
+#if defined(PERL_IN_GV_C)
+STATIC void    gv_init_sv(pTHX_ GV *gv, I32 sv_type);
+#endif
+#if defined(PERL_IN_HV_C)
+STATIC void    hfreeentries(pTHX_ HV *hv);
+#endif
+#if defined(PERL_IN_HV_C)
+STATIC void    hsplit(pTHX_ HV *hv);
+#endif
+#if defined(PERL_IN_HV_C)
+STATIC void    hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   incl_perldb(pTHX);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    incline(pTHX_ char *s);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    incpush(pTHX_ char *, int);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    init_debugger(pTHX);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    init_ids(pTHX);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    init_interp(pTHX);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    init_lexer(pTHX);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    init_main_stash(pTHX);
+#endif
+#if defined(USE_THREADS) && defined(PERL_IN_PERL_C)
+STATIC struct perl_thread *    init_main_thread(pTHX);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    init_perllib(pTHX);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    init_postdump_symbols(pTHX_ int, char **, char **);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    init_predump_symbols(pTHX);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC int     intuit_method(pTHX_ char *s, GV *gv);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC int     intuit_more(pTHX_ char *s);
+#endif
+#if defined(PERL_IN_PP_C)
+STATIC SV*     is_an_int(pTHX_ char *s, STRLEN l);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC bool    is_handle_constructor(pTHX_ OP *o, I32 argnum);
+#endif
+#if defined(PERL_IN_UNIVERSAL_C)
+STATIC SV*     isa_lookup(pTHX_ HV *stash, const char *name, int len, int level);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC I32     list_assignment(pTHX_ OP *o);
+#endif
+#if defined(LOCKF_EMULATE_FLOCK) && defined(PERL_IN_PP_SYS_C)
+STATIC int     lockf_emulate_flock(pTHX_ int fd, int operation);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC I32     lop(pTHX_ I32 f, expectation x, char *s);
+#endif
+#if defined(PERL_IN_MG_C)
+STATIC int     magic_methcall(pTHX_ SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val);
+#endif
+#if defined(PERL_IN_MG_C)
+STATIC int     magic_methpack(pTHX_ SV *sv, MAGIC *mg, char *meth);
+#endif
+#if defined(PERL_IN_UTIL_C)
+STATIC SV*     mess_alloc(pTHX);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    missingterm(pTHX_ char *s);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC OP*     modkids(pTHX_ OP *o, I32 type);
+#endif
+#if defined(PERL_IN_HV_C)
+STATIC void    more_he(pTHX);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC SV*     more_sv(pTHX);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    more_xiv(pTHX);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    more_xnv(pTHX);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    more_xpv(pTHX);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    more_xrv(pTHX);
+#endif
+#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C)
+STATIC void    morecore(pTHX_ int bucket);
+#endif
+#if defined(PERL_IN_PP_C)
+STATIC SV*     mul128(pTHX_ SV *sv, U8 m);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    my_exit_jump(pTHX) __attribute__((noreturn));
+#endif
+#if !defined(PURIFY) && defined(PERL_IN_SV_C)
+STATIC void*   my_safemalloc(pTHX_ MEM_SIZE size);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC OP*     newDEFSVOP(pTHX);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC SV*     new_constant(pTHX_ char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type);
+#endif
+#if defined(PERL_IN_HV_C)
+STATIC HE*     new_he(pTHX);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC OP*     new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC XPVIV*  new_xiv(pTHX);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC XPVNV*  new_xnv(pTHX);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC XPV*    new_xpv(pTHX);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC XRV*    new_xrv(pTHX);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC char*   nextchar(pTHX);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC void    no_bareword_allowed(pTHX_ OP *o);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC OP*     no_fh_allowed(pTHX_ OP *o);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    no_op(pTHX_ char *what, char *s);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    not_a_number(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    nuke_stacks(pTHX);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC void    null(pTHX_ OP* o);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    open_script(pTHX_ char *, bool, SV *, int *fd);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC PADOFFSET       pad_findlex(pTHX_ char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval, U32 flags);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void*   parse_body(pTHX_ va_list args);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC void    qsortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t f);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void    re_croak2(pTHX_ const char* pat1, const char* pat2, ...) __attribute__((noreturn));
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC I32     read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen);
+#endif
+#if defined(PERL_IN_PP_C)
+STATIC SV*     refto(pTHX_ SV* sv);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC regnode*        reg(pTHX_ I32, I32 *);
+#endif
+#if defined(PURIFY) && defined(PERL_IN_SV_C)
+STATIC void    reg_add(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC regnode*        reg_node(pTHX_ U8);
+#endif
+#if defined(PURIFY) && defined(PERL_IN_SV_C)
+STATIC void    reg_remove(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC regnode*        reganode(pTHX_ U8, U32);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC regnode*        regatom(pTHX_ I32 *);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC regnode*        regbranch(pTHX_ I32 *, I32);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void    regc(pTHX_ U8, char *);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC regnode*        regclass(pTHX);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC regnode*        regclassutf8(pTHX);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC char*   regcp_set_to(pTHX_ I32 ss);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC char*   regcppop(pTHX);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC CHECKPOINT      regcppush(pTHX_ I32 parenfloor);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC I32     regcurly(pTHX_ char *);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC U8*     reghop(pTHX_ U8 *pos, I32 off);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC U8*     reghopmaybe(pTHX_ U8 *pos, I32 off);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC bool    reginclass(pTHX_ char *p, I32 c);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC bool    reginclassutf8(pTHX_ regnode *f, U8* p);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void    reginsert(pTHX_ U8, regnode *);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC I32     regmatch(pTHX_ regnode *prog);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void    regoptail(pTHX_ regnode *, regnode *);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC regnode*        regpiece(pTHX_ I32 *);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC char*   regpposixcc(pTHX_ I32 value);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC I32     regrepeat(pTHX_ regnode *p, I32 max);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC I32     regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void    regset(pTHX_ char *, I32);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void    regtail(pTHX_ regnode *, regnode *);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC I32     regtry(pTHX_ regexp *prog, char *startpos);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void    reguni(pTHX_ UV, char *, I32*);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC char*   regwhite(pTHX_ char *, char *);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    restore_expect(pTHX_ void *e);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    restore_lex_expect(pTHX_ void *e);
+#endif
+#if defined(PERL_IN_MG_C)
+STATIC void    restore_magic(pTHX_ void *p);
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC void    restore_pos(pTHX_ void *arg);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    restore_rsfp(pTHX_ void *f);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void*   run_body(pTHX_ va_list args);
+#endif
+#if defined(PERL_IN_HV_C)
+STATIC HEK*    save_hek(pTHX_ const char *str, I32 len, U32 hash);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC void    save_lines(pTHX_ AV *array, SV *sv);
+#endif
+#if defined(PERL_IN_MG_C)
+STATIC void    save_magic(pTHX_ I32 mgs_ix, SV *sv);
+#endif
+#if defined(PERL_IN_SCOPE_C)
+STATIC SV*     save_scalar_at(pTHX_ SV **sptr);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC bool    scalar_mod_type(pTHX_ OP *o, I32 type);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC OP*     scalarboolean(pTHX_ OP *o);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void    scan_commit(pTHX_ scan_data_t *data);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_const(pTHX_ char *start);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_formline(pTHX_ char *s);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_heredoc(pTHX_ char *s);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_ident(pTHX_ char *s, char *send, char *dest, STRLEN destlen, I32 ck_uni);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_inputsymbol(pTHX_ char *start);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_pat(pTHX_ char *start, I32 type);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_str(pTHX_ char *start);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_subst(pTHX_ char *start);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_trans(pTHX_ char *start);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp);
+#endif
+#if defined(PERL_IN_PP_C)
+STATIC U32     seed(pTHX);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC void    set_csh(pTHX);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC void    simplify_sort(pTHX_ OP *o);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC char*   skipspace(pTHX_ char *s);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     sortcv(pTHX_ SV *a, SV *b);
+#endif
+#if defined(PERL_IN_REGCOMP_C)
+STATIC I32     study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC I32     sublex_done(pTHX);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC I32     sublex_push(pTHX);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC I32     sublex_start(pTHX);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    sv_add_backref(pTHX_ SV *tsv, SV *sv);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    sv_del_backref(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     sv_i_ncmp(pTHX_ SV *a, SV *b);
+#endif
+#if defined(PERL_IN_PP_CTL_C)
+STATIC I32     sv_ncmp(pTHX_ SV *a, SV *b);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    sv_unglob(pTHX_ SV* sv);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC SV*     tokeq(pTHX_ SV *sv);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC OP*     too_few_arguments(pTHX_ OP *o, char* name);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC OP*     too_many_arguments(pTHX_ OP *o, char* name);
+#endif
+#if defined(CRIPPLED_CC) && defined(PERL_IN_TOKE_C)
+STATIC int     uni(pTHX_ I32 f, char *s);
+#endif
+#if defined(USE_THREADS) && defined(PERL_IN_PP_HOT_C)
+STATIC void    unset_cvowner(pTHX_ void *cvarg);
+#endif
+#if defined(PERL_IN_MG_C)
+STATIC void    unwind_handler_stack(pTHX_ void *p);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    usage(pTHX_ char *);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC I32     utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+#endif
+#if defined(PERL_IN_TOKE_C)
+STATIC I32     utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+#endif
+#if defined(PERL_IN_PERL_C)
+STATIC void    validate_suid(pTHX_ char *, char*, int);
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC void    visit(pTHX_ SVFUNC_t f);
+#endif
+#if defined(WIN32) && defined(PERL_IN_TOKE_C)
+STATIC I32     win32_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+#endif
+#if defined(LEAKTEST) && defined(PERL_IN_UTIL_C)
+STATIC void    xstat(pTHX_ int);
+#endif
index 50083ee..d0d451b 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -77,6 +77,7 @@
  * regular-expression syntax might require a total rethink.
  */
 #include "EXTERN.h"
+#define PERL_IN_REGCOMP_C
 #include "perl.h"
 
 #ifndef PERL_IN_XSUB_RE
  * Forward declarations for pregcomp()'s friends.
  */
 
-#ifndef PERL_OBJECT
-static regnode *reg (I32, I32 *);
-static regnode *reganode (U8, U32);
-static regnode *regatom (I32 *);
-static regnode *regbranch (I32 *, I32);
-static void regc (U8, char *);
-static void reguni (UV, char *, I32*);
-static regnode *regclass (void);
-static regnode *regclassutf8 (void);
-STATIC I32 regcurly (char *);
-static regnode *reg_node (U8);
-static regnode *regpiece (I32 *);
-static void reginsert (U8, regnode *);
-static void regoptail (regnode *, regnode *);
-static void regtail (regnode *, regnode *);
-static char* regwhite (char *, char *);
-static char* nextchar (void);
-static void re_croak2 (const char* pat1,const char* pat2,...) __attribute__((noreturn));
-static char* regpposixcc (I32 value);
-static void clear_re (void *r);
-#endif
-
-/* Length of a variant. */
-
-#ifndef PERL_OBJECT
-typedef struct {
-    I32 len_min;
-    I32 len_delta;
-    I32 pos_min;                       /* CC */
-    I32 pos_delta;                     /* CC */
-    SV *last_found;
-    I32 last_end;                      /* min value, <0 unless valid. */
-    I32 last_start_min;                        /* CC */
-    I32 last_start_max;                        /* CC */
-    SV **longest;                      /* Either &l_fixed, or &l_float. */
-    SV *longest_fixed;
-    I32 offset_fixed;                  /* CC */
-    SV *longest_float;
-    I32 offset_float_min;              /* CC */
-    I32 offset_float_max;              /* CC */
-    I32 flags;
-} scan_data_t;
-#endif
-
 static scan_data_t zero_scan_data = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                                      0, 0, 0 };
 
@@ -209,13 +166,13 @@ static scan_data_t zero_scan_data = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 #define CHR_DIST(a,b) (UTF ? utf8_distance(a,b) : a - b)
 
 STATIC void
-clear_re(void *r)
+clear_re(pTHX_ void *r)
 {
     ReREFCNT_dec((regexp *)r);
 }
 
 STATIC void
-scan_commit(scan_data_t *data)
+scan_commit(pTHX_ scan_data_t *data)
 {
     dTHR;
     STRLEN l = CHR_SVLEN(data->last_found);
@@ -252,7 +209,7 @@ scan_commit(scan_data_t *data)
    to the position after last scanned or to NULL. */
 
 STATIC I32
-study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags)
+study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags)
                        /* scanp: Start here (read-write). */
                        /* deltap: Write maxlen-minlen here. */
                        /* last: Stop before this one. */
@@ -749,7 +706,7 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
 }
 
 STATIC I32
-add_data(I32 n, char *s)
+add_data(pTHX_ I32 n, char *s)
 {
     dTHR;
     if (PL_regcomp_rx->data) {
@@ -770,7 +727,7 @@ add_data(I32 n, char *s)
 }
 
 void
-reginitcolors(void)
+Perl_reginitcolors(pTHX)
 {
     dTHR;
     int i = 0;
@@ -810,7 +767,7 @@ reginitcolors(void)
  * of the structure of the compiled regexp.  [I'll say.]
  */
 regexp *
-pregcomp(char *exp, char *xend, PMOP *pm)
+Perl_pregcomp(pTHX_ char *exp, char *xend, PMOP *pm)
 {
     dTHR;
     register regexp *r;
@@ -1087,7 +1044,7 @@ pregcomp(char *exp, char *xend, PMOP *pm)
  * follows makes it hard to avoid.
  */
 STATIC regnode *
-reg(I32 paren, I32 *flagp)
+reg(pTHX_ I32 paren, I32 *flagp)
     /* paren: Parenthesized? 0=top, 1=(, inside: changed to letter. */
 {
     dTHR;
@@ -1416,7 +1373,7 @@ reg(I32 paren, I32 *flagp)
  * Implements the concatenation operator.
  */
 STATIC regnode *
-regbranch(I32 *flagp, I32 first)
+regbranch(pTHX_ I32 *flagp, I32 first)
 {
     dTHR;
     register regnode *ret;
@@ -1482,7 +1439,7 @@ regbranch(I32 *flagp, I32 first)
  * endmarker role is not redundant.
  */
 STATIC regnode *
-regpiece(I32 *flagp)
+regpiece(pTHX_ I32 *flagp)
 {
     dTHR;
     register regnode *ret;
@@ -1633,7 +1590,7 @@ regpiece(I32 *flagp)
  * [Yes, it is worth fixing, some scripts can run twice the speed.]
  */
 STATIC regnode *
-regatom(I32 *flagp)
+regatom(pTHX_ I32 *flagp)
 {
     dTHR;
     register regnode *ret = 0;
@@ -2101,7 +2058,7 @@ tryagain:
 }
 
 STATIC char *
-regwhite(char *p, char *e)
+regwhite(pTHX_ char *p, char *e)
 {
     while (p < e) {
        if (isSPACE(*p))
@@ -2119,7 +2076,7 @@ regwhite(char *p, char *e)
 
 /* parse POSIX character classes like [[:foo:]] */
 STATIC char*
-regpposixcc(I32 value)
+regpposixcc(pTHX_ I32 value)
 {
     dTHR;
     char *posixcc = 0;
@@ -2161,7 +2118,7 @@ regpposixcc(I32 value)
 }
 
 STATIC regnode *
-regclass(void)
+regclass(pTHX)
 {
     dTHR;
     register char *opnd, *s;
@@ -2359,7 +2316,7 @@ regclass(void)
 }
 
 STATIC regnode *
-regclassutf8(void)
+regclassutf8(pTHX)
 {
     register char *opnd, *e;
     register U32 value;
@@ -2558,7 +2515,7 @@ regclassutf8(void)
 }
 
 STATIC char*
-nextchar(void)
+nextchar(pTHX)
 {
     dTHR;
     char* retval = PL_regcomp_parse++;
@@ -2591,7 +2548,7 @@ nextchar(void)
 - reg_node - emit a node
 */
 STATIC regnode *                       /* Location. */
-reg_node(U8 op)
+reg_node(pTHX_ U8 op)
 {
     dTHR;
     register regnode *ret;
@@ -2616,7 +2573,7 @@ reg_node(U8 op)
 - reganode - emit a node with an argument
 */
 STATIC regnode *                       /* Location. */
-reganode(U8 op, U32 arg)
+reganode(pTHX_ U8 op, U32 arg)
 {
     dTHR;
     register regnode *ret;
@@ -2641,7 +2598,7 @@ reganode(U8 op, U32 arg)
 - regc - emit (if appropriate) a Unicode character
 */
 STATIC void
-reguni(UV uv, char* s, I32* lenp)
+reguni(pTHX_ UV uv, char* s, I32* lenp)
 {
     dTHR;
     if (SIZE_ONLY) {
@@ -2657,7 +2614,7 @@ reguni(UV uv, char* s, I32* lenp)
 - regc - emit (if appropriate) a byte of code
 */
 STATIC void
-regc(U8 b, char* s)
+regc(pTHX_ U8 b, char* s)
 {
     dTHR;
     if (!SIZE_ONLY)
@@ -2670,7 +2627,7 @@ regc(U8 b, char* s)
 * Means relocating the operand.
 */
 STATIC void
-reginsert(U8 op, regnode *opnd)
+reginsert(pTHX_ U8 op, regnode *opnd)
 {
     dTHR;
     register regnode *src;
@@ -2701,7 +2658,7 @@ reginsert(U8 op, regnode *opnd)
 - regtail - set the next-pointer at the end of a node chain of p to val.
 */
 STATIC void
-regtail(regnode *p, regnode *val)
+regtail(pTHX_ regnode *p, regnode *val)
 {
     dTHR;
     register regnode *scan;
@@ -2732,7 +2689,7 @@ regtail(regnode *p, regnode *val)
 - regoptail - regtail on operand of first argument; nop if operandless
 */
 STATIC void
-regoptail(regnode *p, regnode *val)
+regoptail(pTHX_ regnode *p, regnode *val)
 {
     dTHR;
     /* "Operandless" and "op != BRANCH" are synonymous in practice. */
@@ -2752,7 +2709,7 @@ regoptail(regnode *p, regnode *val)
  - regcurly - a little FSA that accepts {\d+,?\d*}
  */
 STATIC I32
-regcurly(register char *s)
+regcurly(pTHX_ register char *s)
 {
     if (*s++ != '{')
        return FALSE;
@@ -2771,7 +2728,7 @@ regcurly(register char *s)
 
 
 STATIC regnode *
-dumpuntil(regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
+dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
 {
 #ifdef DEBUGGING
     register char op = EXACT;  /* Arbitrary non-END op. */
@@ -2845,7 +2802,7 @@ dumpuntil(regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
  - regdump - dump a regexp onto Perl_debug_log in vaguely comprehensible form
  */
 void
-regdump(regexp *r)
+Perl_regdump(pTHX_ regexp *r)
 {
 #ifdef DEBUGGING
     dTHR;
@@ -2910,7 +2867,7 @@ regdump(regexp *r)
 - regprop - printable representation of opcode
 */
 void
-regprop(SV *sv, regnode *o)
+Perl_regprop(pTHX_ SV *sv, regnode *o)
 {
 #ifdef DEBUGGING
     dTHR;
@@ -2940,7 +2897,7 @@ regprop(SV *sv, regnode *o)
 }
 
 void
-pregfree(struct regexp *r)
+Perl_pregfree(pTHX_ struct regexp *r)
 {
     dTHR;
     if (!r || (--r->refcnt > 0))
@@ -3004,7 +2961,7 @@ pregfree(struct regexp *r)
  * that bypass this code for speed.]
  */
 regnode *
-regnext(register regnode *p)
+Perl_regnext(pTHX_ register regnode *p)
 {
     dTHR;
     register I32 offset;
@@ -3020,7 +2977,7 @@ regnext(register regnode *p)
 }
 
 STATIC void    
-re_croak2(const char* pat1,const char* pat2,...)
+re_croak2(pTHX_ const char* pat1,const char* pat2,...)
 {
     va_list args;
     STRLEN l1 = strlen(pat1);
@@ -3056,7 +3013,7 @@ re_croak2(const char* pat1,const char* pat2,...)
 /* XXX Here's a total kludge.  But we need to re-enter for swash routines. */
 
 void
-save_re_context(void)
+Perl_save_re_context(pTHX)
 {                   
     dTHR;
     SAVEPPTR(PL_bostr);
index a61c88a..d1f8189 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -73,6 +73,7 @@
  * regular-expression syntax might require a total rethink.
  */
 #include "EXTERN.h"
+#define PERL_IN_REGEXEC_C
 #include "perl.h"
 
 #include "regcomp.h"
 #define        STATIC  static
 #endif
 
-#ifndef PERL_OBJECT
-typedef I32 CHECKPOINT;
-
 /*
  * Forwards.
  */
 
-static I32 regmatch (regnode *prog);
-static I32 regrepeat (regnode *p, I32 max);
-static I32 regrepeat_hard (regnode *p, I32 max, I32 *lp);
-static I32 regtry (regexp *prog, char *startpos);
-
-static bool reginclass (char *p, I32 c);
-static bool reginclassutf8 (regnode *f, U8* p);
-static CHECKPOINT regcppush (I32 parenfloor);
-static char * regcppop (void);
-static char * regcp_set_to (I32 ss);
-static void cache_re (regexp *prog);
-static void restore_pos (void *arg);
-#endif
-
 #define REGINCLASS(p,c)  (*(p) ? reginclass(p,c) : ANYOF_TEST(p,c))
 #define REGINCLASSUTF8(f,p)  (ARG1(f) ? reginclassutf8(f,p) : swash_fetch((SV*)PL_regdata->data[ARG2(f)],p))
 
 #define CHR_SVLEN(sv) (UTF ? sv_len_utf8(sv) : SvCUR(sv))
 #define CHR_DIST(a,b) (UTF ? utf8_distance(a,b) : a - b)
 
-#ifndef PERL_OBJECT
-static U8 * reghop (U8 *pos, I32 off);
-static U8 * reghopmaybe (U8 *pos, I32 off);
-#endif
 #define reghop_c(pos,off) ((char*)reghop((U8*)pos, off))
 #define reghopmaybe_c(pos,off) ((char*)reghopmaybe((U8*)pos, off))
 #define HOP(pos,off) (UTF ? reghop((U8*)pos, off) : (U8*)(pos + off))
@@ -130,7 +110,7 @@ static U8 * reghopmaybe (U8 *pos, I32 off);
 #define HOPMAYBEc(pos,off) ((char*)HOPMAYBE(pos,off))
 
 STATIC CHECKPOINT
-regcppush(I32 parenfloor)
+regcppush(pTHX_ I32 parenfloor)
 {
     dTHR;
     int retval = PL_savestack_ix;
@@ -163,7 +143,7 @@ regcppush(I32 parenfloor)
                                lastcp, PL_savestack_ix) : 0); regcpblow(lastcp)
 
 STATIC char *
-regcppop(void)
+regcppop(pTHX)
 {
     dTHR;
     I32 i = SSPOPINT;
@@ -207,7 +187,7 @@ regcppop(void)
 }
 
 STATIC char *
-regcp_set_to(I32 ss)
+regcp_set_to(pTHX_ I32 ss)
 {
     dTHR;
     I32 tmp = PL_savestack_ix;
@@ -237,7 +217,7 @@ typedef struct re_cc_state
  - pregexec - match a regexp against a string
  */
 I32
-pregexec(register regexp *prog, char *stringarg, register char *strend,
+Perl_pregexec(pTHX_ register regexp *prog, char *stringarg, register char *strend,
         char *strbeg, I32 minend, SV *screamer, U32 nosave)
 /* strend: pointer to null at end of string */
 /* strbeg: real beginning of string */
@@ -250,7 +230,7 @@ pregexec(register regexp *prog, char *stringarg, register char *strend,
 }
 
 STATIC void
-cache_re(regexp *prog)
+cache_re(pTHX_ regexp *prog)
 {
     dTHR;
     PL_regprecomp = prog->precomp;             /* Needed for FAIL. */
@@ -263,7 +243,7 @@ cache_re(regexp *prog)
 }
 
 STATIC void
-restore_pos(void *arg)
+restore_pos(pTHX_ void *arg)
 {
     dTHR;
     if (PL_reg_eval_set) {
@@ -283,7 +263,7 @@ restore_pos(void *arg)
  - regexec_flags - match a regexp against a string
  */
 I32
-regexec_flags(register regexp *prog, char *stringarg, register char *strend,
+Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *strend,
              char *strbeg, I32 minend, SV *sv, void *data, U32 flags)
 /* strend: pointer to null at end of string */
 /* strbeg: real beginning of string */
@@ -1050,7 +1030,7 @@ phooey:
  - regtry - try match at specific point
  */
 STATIC I32                     /* 0 failure, 1 success */
-regtry(regexp *prog, char *startpos)
+regtry(pTHX_ regexp *prog, char *startpos)
 {
     dTHR;
     register I32 i;
@@ -1162,7 +1142,7 @@ regtry(regexp *prog, char *startpos)
  * advantage of machines that use a register save mask on subroutine entry.
  */
 STATIC I32                     /* 0 failure, 1 success */
-regmatch(regnode *prog)
+regmatch(pTHX_ regnode *prog)
 {
     dTHR;
     register regnode *scan;    /* Current node. */
@@ -2509,7 +2489,7 @@ no:
  * rather than incrementing count on every character.  [Er, except utf8.]]
  */
 STATIC I32
-regrepeat(regnode *p, I32 max)
+regrepeat(pTHX_ regnode *p, I32 max)
 {
     dTHR;
     register char *scan;
@@ -2723,7 +2703,7 @@ regrepeat(regnode *p, I32 max)
  */
 
 STATIC I32
-regrepeat_hard(regnode *p, I32 max, I32 *lp)
+regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp)
 {
     dTHR;
     register char *scan;
@@ -2774,7 +2754,7 @@ regrepeat_hard(regnode *p, I32 max, I32 *lp)
  */
 
 STATIC bool
-reginclass(register char *p, register I32 c)
+reginclass(pTHX_ register char *p, register I32 c)
 {
     dTHR;
     char flags = *p;
@@ -2811,7 +2791,7 @@ reginclass(register char *p, register I32 c)
 }
 
 STATIC bool
-reginclassutf8(regnode *f, U8 *p)
+reginclassutf8(pTHX_ regnode *f, U8 *p)
 {                                           
     dTHR;
     char flags = ARG1(f);
@@ -2849,7 +2829,7 @@ reginclassutf8(regnode *f, U8 *p)
 }
 
 STATIC U8 *
-reghop(U8 *s, I32 off)
+reghop(pTHX_ U8 *s, I32 off)
 {                               
     dTHR;
     if (off >= 0) {
@@ -2871,7 +2851,7 @@ reghop(U8 *s, I32 off)
 }
 
 STATIC U8 *
-reghopmaybe(U8* s, I32 off)
+reghopmaybe(pTHX_ U8* s, I32 off)
 {
     dTHR;
     if (off >= 0) {
diff --git a/run.c b/run.c
index 514cd16..36fffd7 100644 (file)
--- a/run.c
+++ b/run.c
@@ -8,6 +8,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_RUN_C
 #include "perl.h"
 
 /*
@@ -23,7 +24,7 @@
 #endif
 
 int
-runops_standard(void)
+Perl_runops_standard(pTHX)
 {
     dTHR;
 
@@ -33,15 +34,8 @@ runops_standard(void)
     return 0;
 }
 
-#ifdef DEBUGGING
-#ifndef PERL_OBJECT
-static void debprof (OP*o);
-#endif
-
-#endif /* DEBUGGING */
-
 int
-runops_debug(void)
+Perl_runops_debug(pTHX)
 {
 #ifdef DEBUGGING
     dTHR;
@@ -69,7 +63,7 @@ runops_debug(void)
 }
 
 I32
-debop(OP *o)
+Perl_debop(pTHX_ OP *o)
 {
 #ifdef DEBUGGING
     SV *sv;
@@ -99,7 +93,7 @@ debop(OP *o)
 }
 
 void
-watch(char **addr)
+Perl_watch(pTHX_ char **addr)
 {
 #ifdef DEBUGGING
     dTHR;
@@ -111,7 +105,7 @@ watch(char **addr)
 }
 
 STATIC void
-debprof(OP *o)
+debprof(pTHX_ OP *o)
 {
 #ifdef DEBUGGING
     if (!PL_profiledata)
@@ -121,7 +115,7 @@ debprof(OP *o)
 }
 
 void
-debprofdump(void)
+Perl_debprofdump(pTHX)
 {
 #ifdef DEBUGGING
     unsigned i;
diff --git a/scope.c b/scope.c
index ad7fe29..58272e1 100644 (file)
--- a/scope.c
+++ b/scope.c
  */
 
 #include "EXTERN.h"
+#define PERL_IN_SCOPE_C
 #include "perl.h"
 
 void *
-default_protect(int *excpt, protect_body_t body, ...)
+Perl_default_protect(pTHX_ int *excpt, protect_body_t body, ...)
 {
     dTHR;
     dJMPENV;
@@ -40,7 +41,7 @@ default_protect(int *excpt, protect_body_t body, ...)
 }
 
 SV**
-stack_grow(SV **sp, SV **p, int n)
+Perl_stack_grow(pTHX_ SV **sp, SV **p, int n)
 {
     dTHR;
 #if defined(DEBUGGING) && !defined(USE_THREADS)
@@ -67,7 +68,7 @@ stack_grow(SV **sp, SV **p, int n)
 #endif
 
 PERL_SI *
-new_stackinfo(I32 stitems, I32 cxitems)
+Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems)
 {
     PERL_SI *si;
     PERL_CONTEXT *cxt;
@@ -87,7 +88,7 @@ new_stackinfo(I32 stitems, I32 cxitems)
 }
 
 I32
-cxinc(void)
+Perl_cxinc(pTHX)
 {
     dTHR;
     cxstack_max = GROW(cxstack_max);
@@ -96,7 +97,7 @@ cxinc(void)
 }
 
 void
-push_return(OP *retop)
+Perl_push_return(pTHX_ OP *retop)
 {
     dTHR;
     if (PL_retstack_ix == PL_retstack_max) {
@@ -107,7 +108,7 @@ push_return(OP *retop)
 }
 
 OP *
-pop_return(void)
+Perl_pop_return(pTHX)
 {
     dTHR;
     if (PL_retstack_ix > 0)
@@ -117,7 +118,7 @@ pop_return(void)
 }
 
 void
-push_scope(void)
+Perl_push_scope(pTHX)
 {
     dTHR;
     if (PL_scopestack_ix == PL_scopestack_max) {
@@ -129,7 +130,7 @@ push_scope(void)
 }
 
 void
-pop_scope(void)
+Perl_pop_scope(pTHX)
 {
     dTHR;
     I32 oldsave = PL_scopestack[--PL_scopestack_ix];
@@ -137,7 +138,7 @@ pop_scope(void)
 }
 
 void
-markstack_grow(void)
+Perl_markstack_grow(pTHX)
 {
     dTHR;
     I32 oldmax = PL_markstack_max - PL_markstack;
@@ -149,7 +150,7 @@ markstack_grow(void)
 }
 
 void
-savestack_grow(void)
+Perl_savestack_grow(pTHX)
 {
     dTHR;
     PL_savestack_max = GROW(PL_savestack_max) + 4; 
@@ -159,7 +160,7 @@ savestack_grow(void)
 #undef GROW
 
 void
-tmps_grow(I32 n)
+Perl_tmps_grow(pTHX_ I32 n)
 {
     dTHR;
 #ifndef STRESS_REALLOC
@@ -172,7 +173,7 @@ tmps_grow(I32 n)
 
 
 void
-free_tmps(void)
+Perl_free_tmps(pTHX)
 {
     dTHR;
     /* XXX should tmps_floor live in cxstack? */
@@ -188,7 +189,7 @@ free_tmps(void)
 }
 
 STATIC SV *
-save_scalar_at(SV **sptr)
+save_scalar_at(pTHX_ SV **sptr)
 {
     dTHR;
     register SV *sv;
@@ -219,7 +220,7 @@ save_scalar_at(SV **sptr)
 }
 
 SV *
-save_scalar(GV *gv)
+Perl_save_scalar(pTHX_ GV *gv)
 {
     dTHR;
     SV **sptr = &GvSV(gv);
@@ -231,7 +232,7 @@ save_scalar(GV *gv)
 }
 
 SV*
-save_svref(SV **sptr)
+Perl_save_svref(pTHX_ SV **sptr)
 {
     dTHR;
     SSCHECK(3);
@@ -244,7 +245,7 @@ save_svref(SV **sptr)
 /* Like save_svref(), but doesn't deal with magic.  Can be used to
  * restore a global SV to its prior contents, freeing new value. */
 void
-save_generic_svref(SV **sptr)
+Perl_save_generic_svref(pTHX_ SV **sptr)
 {
     dTHR;
     SSCHECK(3);
@@ -254,7 +255,7 @@ save_generic_svref(SV **sptr)
 }
 
 void
-save_gp(GV *gv, I32 empty)
+Perl_save_gp(pTHX_ GV *gv, I32 empty)
 {
     dTHR;
     SSCHECK(6);
@@ -285,7 +286,7 @@ save_gp(GV *gv, I32 empty)
 }
 
 AV *
-save_ary(GV *gv)
+Perl_save_ary(pTHX_ GV *gv)
 {
     dTHR;
     AV *oav = GvAVn(gv);
@@ -313,7 +314,7 @@ save_ary(GV *gv)
 }
 
 HV *
-save_hash(GV *gv)
+Perl_save_hash(pTHX_ GV *gv)
 {
     dTHR;
     HV *ohv, *hv;
@@ -338,7 +339,7 @@ save_hash(GV *gv)
 }
 
 void
-save_item(register SV *item)
+Perl_save_item(pTHX_ register SV *item)
 {
     dTHR;
     register SV *sv = NEWSV(0,0);
@@ -351,7 +352,7 @@ save_item(register SV *item)
 }
 
 void
-save_int(int *intp)
+Perl_save_int(pTHX_ int *intp)
 {
     dTHR;
     SSCHECK(3);
@@ -361,7 +362,7 @@ save_int(int *intp)
 }
 
 void
-save_long(long int *longp)
+Perl_save_long(pTHX_ long int *longp)
 {
     dTHR;
     SSCHECK(3);
@@ -371,7 +372,7 @@ save_long(long int *longp)
 }
 
 void
-save_I32(I32 *intp)
+Perl_save_I32(pTHX_ I32 *intp)
 {
     dTHR;
     SSCHECK(3);
@@ -381,7 +382,7 @@ save_I32(I32 *intp)
 }
 
 void
-save_I16(I16 *intp)
+Perl_save_I16(pTHX_ I16 *intp)
 {
     dTHR;
     SSCHECK(3);
@@ -391,7 +392,7 @@ save_I16(I16 *intp)
 }
 
 void
-save_iv(IV *ivp)
+Perl_save_iv(pTHX_ IV *ivp)
 {
     dTHR;
     SSCHECK(3);
@@ -404,7 +405,7 @@ save_iv(IV *ivp)
  * force word-alignment and we'll miss the pointer.
  */
 void
-save_pptr(char **pptr)
+Perl_save_pptr(pTHX_ char **pptr)
 {
     dTHR;
     SSCHECK(3);
@@ -414,7 +415,7 @@ save_pptr(char **pptr)
 }
 
 void
-save_sptr(SV **sptr)
+Perl_save_sptr(pTHX_ SV **sptr)
 {
     dTHR;
     SSCHECK(3);
@@ -424,7 +425,7 @@ save_sptr(SV **sptr)
 }
 
 SV **
-save_threadsv(PADOFFSET i)
+Perl_save_threadsv(pTHX_ PADOFFSET i)
 {
 #ifdef USE_THREADS
     dTHR;
@@ -440,7 +441,7 @@ save_threadsv(PADOFFSET i)
 }
 
 void
-save_nogv(GV *gv)
+Perl_save_nogv(pTHX_ GV *gv)
 {
     dTHR;
     SSCHECK(2);
@@ -449,7 +450,7 @@ save_nogv(GV *gv)
 }
 
 void
-save_hptr(HV **hptr)
+Perl_save_hptr(pTHX_ HV **hptr)
 {
     dTHR;
     SSCHECK(3);
@@ -459,7 +460,7 @@ save_hptr(HV **hptr)
 }
 
 void
-save_aptr(AV **aptr)
+Perl_save_aptr(pTHX_ AV **aptr)
 {
     dTHR;
     SSCHECK(3);
@@ -469,7 +470,7 @@ save_aptr(AV **aptr)
 }
 
 void
-save_freesv(SV *sv)
+Perl_save_freesv(pTHX_ SV *sv)
 {
     dTHR;
     SSCHECK(2);
@@ -478,7 +479,7 @@ save_freesv(SV *sv)
 }
 
 void
-save_freeop(OP *o)
+Perl_save_freeop(pTHX_ OP *o)
 {
     dTHR;
     SSCHECK(2);
@@ -487,7 +488,7 @@ save_freeop(OP *o)
 }
 
 void
-save_freepv(char *pv)
+Perl_save_freepv(pTHX_ char *pv)
 {
     dTHR;
     SSCHECK(2);
@@ -496,7 +497,7 @@ save_freepv(char *pv)
 }
 
 void
-save_clearsv(SV **svp)
+Perl_save_clearsv(pTHX_ SV **svp)
 {
     dTHR;
     SSCHECK(2);
@@ -505,7 +506,7 @@ save_clearsv(SV **svp)
 }
 
 void
-save_delete(HV *hv, char *key, I32 klen)
+Perl_save_delete(pTHX_ HV *hv, char *key, I32 klen)
 {
     dTHR;
     SSCHECK(4);
@@ -516,7 +517,7 @@ save_delete(HV *hv, char *key, I32 klen)
 }
 
 void
-save_list(register SV **sarg, I32 maxsarg)
+Perl_save_list(pTHX_ register SV **sarg, I32 maxsarg)
 {
     dTHR;
     register SV *sv;
@@ -534,9 +535,9 @@ save_list(register SV **sarg, I32 maxsarg)
 
 void
 #ifdef PERL_OBJECT
-save_destructor(DESTRUCTORFUNC f, void* p)
+Perl_save_destructor(pTHX_ DESTRUCTORFUNC f, void* p)
 #else
-save_destructor(void (*f) (void *), void *p)
+Perl_save_destructor(pTHX_ void (*f) (void *), void *p)
 #endif
 {
     dTHR;
@@ -547,7 +548,7 @@ save_destructor(void (*f) (void *), void *p)
 }
 
 void
-save_aelem(AV *av, I32 idx, SV **sptr)
+Perl_save_aelem(pTHX_ AV *av, I32 idx, SV **sptr)
 {
     dTHR;
     SSCHECK(4);
@@ -559,7 +560,7 @@ save_aelem(AV *av, I32 idx, SV **sptr)
 }
 
 void
-save_helem(HV *hv, SV *key, SV **sptr)
+Perl_save_helem(pTHX_ HV *hv, SV *key, SV **sptr)
 {
     dTHR;
     SSCHECK(4);
@@ -571,7 +572,7 @@ save_helem(HV *hv, SV *key, SV **sptr)
 }
 
 void
-save_op(void)
+Perl_save_op(pTHX)
 {
     dTHR;
     SSCHECK(2);
@@ -580,7 +581,7 @@ save_op(void)
 }
 
 I32
-save_alloc(I32 size, I32 pad)
+Perl_save_alloc(pTHX_ I32 size, I32 pad)
 {
     dTHR;
     register I32 start = pad + ((char*)&PL_savestack[PL_savestack_ix]
@@ -598,7 +599,7 @@ save_alloc(I32 size, I32 pad)
 }
 
 void
-leave_scope(I32 base)
+Perl_leave_scope(pTHX_ I32 base)
 {
     dTHR;
     register SV *sv;
@@ -827,7 +828,7 @@ leave_scope(I32 base)
            break;
        case SAVEt_DESTRUCTOR:
            ptr = SSPOPPTR;
-           (CALLDESTRUCTOR)(ptr);
+           CALLDESTRUCTOR(ptr);
            break;
        case SAVEt_REGCONTEXT:
        case SAVEt_ALLOC:
@@ -892,7 +893,7 @@ leave_scope(I32 base)
 }
 
 void
-cx_dump(PERL_CONTEXT *cx)
+Perl_cx_dump(pTHX_ PERL_CONTEXT *cx)
 {
 #ifdef DEBUGGING
     dTHR;
diff --git a/scope.h b/scope.h
index 340ca99..01fc083 100644 (file)
--- a/scope.h
+++ b/scope.h
 #define SAVEDELETE(h,k,l) \
          save_delete(SOFT_CAST(HV*)(h), SOFT_CAST(char*)(k), (I32)(l))
 #ifdef PERL_OBJECT
-#define CALLDESTRUCTOR this->*SSPOPDPTR
-#define SAVEDESTRUCTOR(f,p) \
-         save_destructor((DESTRUCTORFUNC)(FUNC_NAME_TO_PTR(f)),        \
-                         SOFT_CAST(void*)(p))
+#define CALLDESTRUCTOR(p) this->*SSPOPDPTR(p)
 #else
-#define CALLDESTRUCTOR *SSPOPDPTR
+#define CALLDESTRUCTOR(p) (*SSPOPDPTR)(aTHX_ p)
+#endif
 #define SAVEDESTRUCTOR(f,p) \
-         save_destructor(SOFT_CAST(void(*)(void*))(FUNC_NAME_TO_PTR(f)), \
+         save_destructor((DESTRUCTORFUNC_t)(FUNC_NAME_TO_PTR(f)),      \
                          SOFT_CAST(void*)(p))
-#endif
 
 #define SAVESTACK_POS() \
     STMT_START {                               \
diff --git a/sv.c b/sv.c
index 042ffcc..abb2da7 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -12,6 +12,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_SV_C
 #include "perl.h"
 
 #ifdef OVR_DBL_DIG
 #ifdef PERL_OBJECT
 #define FCALL this->*f
 #define VTBL this->*vtbl
-
 #else /* !PERL_OBJECT */
-
-static IV asIV (SV* sv);
-static UV asUV (SV* sv);
-static SV *more_sv (void);
-static void more_xiv (void);
-static void more_xnv (void);
-static void more_xpv (void);
-static void more_xrv (void);
-static XPVIV *new_xiv (void);
-static XPVNV *new_xnv (void);
-static XPV *new_xpv (void);
-static XRV *new_xrv (void);
-static void del_xiv (XPVIV* p);
-static void del_xnv (XPVNV* p);
-static void del_xpv (XPV* p);
-static void del_xrv (XRV* p);
-static void sv_unglob (SV* sv);
-static void sv_add_backref (SV *tsv, SV *sv);
-static void sv_del_backref (SV *sv);
-
-#ifndef PURIFY
-static void *my_safemalloc(MEM_SIZE size);
-#endif
-
-typedef void (*SVFUNC) (SV*);
 #define VTBL *vtbl
 #define FCALL *f
-
 #endif /* PERL_OBJECT */
 
 #define SV_CHECK_THINKFIRST(sv) if (SvTHINKFIRST(sv)) sv_force_normal(sv)
@@ -117,7 +91,7 @@ static I32 registry_size;
 #define REG_REMOVE(sv) REG_REPLACE(sv,sv,Nullsv)
 
 STATIC void
-reg_add(SV *sv)
+reg_add(pTHX_ SV *sv)
 {
     if (PL_sv_count >= (registry_size >> 1))
     {
@@ -144,14 +118,14 @@ reg_add(SV *sv)
 }
 
 STATIC void
-reg_remove(SV *sv)
+reg_remove(pTHX_ SV *sv)
 {
     REG_REMOVE(sv);
     --PL_sv_count;
 }
 
 STATIC void
-visit(SVFUNC f)
+visit(pTHX_ SVFUNC_t f)
 {
     I32 i;
 
@@ -163,7 +137,7 @@ visit(SVFUNC f)
 }
 
 void
-sv_add_arena(char *ptr, U32 size, U32 flags)
+Perl_sv_add_arena(pTHX_ char *ptr, U32 size, U32 flags)
 {
     if (!(flags & SVf_FAKE))
        Safefree(ptr);
@@ -217,7 +191,7 @@ sv_add_arena(char *ptr, U32 size, U32 flags)
     } STMT_END
 
 STATIC void
-del_sv(SV *p)
+del_sv(pTHX_ SV *p)
 {
     if (PL_debug & 32768) {
        SV* sva;
@@ -245,7 +219,7 @@ del_sv(SV *p)
 #endif /* DEBUGGING */
 
 void
-sv_add_arena(char *ptr, U32 size, U32 flags)
+Perl_sv_add_arena(pTHX_ char *ptr, U32 size, U32 flags)
 {
     SV* sva = (SV*)ptr;
     register SV* sv;
@@ -273,7 +247,7 @@ sv_add_arena(char *ptr, U32 size, U32 flags)
 
 /* sv_mutex must be held while calling more_sv() */
 STATIC SV*
-more_sv(void)
+more_sv(pTHX)
 {
     register SV* sv;
 
@@ -291,7 +265,7 @@ more_sv(void)
 }
 
 STATIC void
-visit(SVFUNC f)
+visit(pTHX_ SVFUNC_t f)
 {
     SV* sva;
     SV* sv;
@@ -309,7 +283,7 @@ visit(SVFUNC f)
 #endif /* PURIFY */
 
 STATIC void
-do_report_used(SV *sv)
+do_report_used(pTHX_ SV *sv)
 {
     if (SvTYPE(sv) != SVTYPEMASK) {
        /* XXX Perhaps this ought to go to Perl_debug_log, if DEBUGGING. */
@@ -319,13 +293,13 @@ do_report_used(SV *sv)
 }
 
 void
-sv_report_used(void)
+Perl_sv_report_used(pTHX)
 {
     visit(FUNC_NAME_TO_PTR(do_report_used));
 }
 
 STATIC void
-do_clean_objs(SV *sv)
+do_clean_objs(pTHX_ SV *sv)
 {
     SV* rv;
 
@@ -341,7 +315,7 @@ do_clean_objs(SV *sv)
 
 #ifndef DISABLE_DESTRUCTOR_KLUDGE
 STATIC void
-do_clean_named_objs(SV *sv)
+do_clean_named_objs(pTHX_ SV *sv)
 {
     if (SvTYPE(sv) == SVt_PVGV) {
        if ( SvOBJECT(GvSV(sv)) ||
@@ -358,7 +332,7 @@ do_clean_named_objs(SV *sv)
 #endif
 
 void
-sv_clean_objs(void)
+Perl_sv_clean_objs(pTHX)
 {
     PL_in_clean_objs = TRUE;
     visit(FUNC_NAME_TO_PTR(do_clean_objs));
@@ -370,7 +344,7 @@ sv_clean_objs(void)
 }
 
 STATIC void
-do_clean_all(SV *sv)
+do_clean_all(pTHX_ SV *sv)
 {
     DEBUG_D((PerlIO_printf(Perl_debug_log, "Cleaning loops: SV at 0x%lx\n", sv) );)
     SvFLAGS(sv) |= SVf_BREAK;
@@ -378,7 +352,7 @@ do_clean_all(SV *sv)
 }
 
 void
-sv_clean_all(void)
+Perl_sv_clean_all(pTHX)
 {
     PL_in_clean_all = TRUE;
     visit(FUNC_NAME_TO_PTR(do_clean_all));
@@ -386,7 +360,7 @@ sv_clean_all(void)
 }
 
 void
-sv_free_arenas(void)
+Perl_sv_free_arenas(pTHX)
 {
     SV* sva;
     SV* svanext;
@@ -412,7 +386,7 @@ sv_free_arenas(void)
 }
 
 STATIC XPVIV*
-new_xiv(void)
+new_xiv(pTHX)
 {
     IV* xiv;
     LOCK_SV_MUTEX;
@@ -428,7 +402,7 @@ new_xiv(void)
 }
 
 STATIC void
-del_xiv(XPVIV *p)
+del_xiv(pTHX_ XPVIV *p)
 {
     IV* xiv = (IV*)((char*)(p) + STRUCT_OFFSET(XPVIV, xiv_iv));
     LOCK_SV_MUTEX;
@@ -438,7 +412,7 @@ del_xiv(XPVIV *p)
 }
 
 STATIC void
-more_xiv(void)
+more_xiv(pTHX)
 {
     register IV* xiv;
     register IV* xivend;
@@ -459,7 +433,7 @@ more_xiv(void)
 }
 
 STATIC XPVNV*
-new_xnv(void)
+new_xnv(pTHX)
 {
     double* xnv;
     LOCK_SV_MUTEX;
@@ -472,7 +446,7 @@ new_xnv(void)
 }
 
 STATIC void
-del_xnv(XPVNV *p)
+del_xnv(pTHX_ XPVNV *p)
 {
     double* xnv = (double*)((char*)(p) + STRUCT_OFFSET(XPVNV, xnv_nv));
     LOCK_SV_MUTEX;
@@ -482,7 +456,7 @@ del_xnv(XPVNV *p)
 }
 
 STATIC void
-more_xnv(void)
+more_xnv(pTHX)
 {
     register double* xnv;
     register double* xnvend;
@@ -498,7 +472,7 @@ more_xnv(void)
 }
 
 STATIC XRV*
-new_xrv(void)
+new_xrv(pTHX)
 {
     XRV* xrv;
     LOCK_SV_MUTEX;
@@ -511,7 +485,7 @@ new_xrv(void)
 }
 
 STATIC void
-del_xrv(XRV *p)
+del_xrv(pTHX_ XRV *p)
 {
     LOCK_SV_MUTEX;
     p->xrv_rv = (SV*)PL_xrv_root;
@@ -520,7 +494,7 @@ del_xrv(XRV *p)
 }
 
 STATIC void
-more_xrv(void)
+more_xrv(pTHX)
 {
     register XRV* xrv;
     register XRV* xrvend;
@@ -535,7 +509,7 @@ more_xrv(void)
 }
 
 STATIC XPV*
-new_xpv(void)
+new_xpv(pTHX)
 {
     XPV* xpv;
     LOCK_SV_MUTEX;
@@ -548,7 +522,7 @@ new_xpv(void)
 }
 
 STATIC void
-del_xpv(XPV *p)
+del_xpv(pTHX_ XPV *p)
 {
     LOCK_SV_MUTEX;
     p->xpv_pv = (char*)PL_xpv_root;
@@ -557,7 +531,7 @@ del_xpv(XPV *p)
 }
 
 STATIC void
-more_xpv(void)
+more_xpv(pTHX)
 {
     register XPV* xpv;
     register XPV* xpvend;
@@ -608,7 +582,7 @@ more_xpv(void)
 #  define my_safefree(s) safefree(s)
 #else
 STATIC void* 
-my_safemalloc(MEM_SIZE size)
+my_safemalloc(pTHX_ MEM_SIZE size)
 {
     char *p;
     New(717, p, size, char);
@@ -651,7 +625,7 @@ my_safemalloc(MEM_SIZE size)
 #define del_XPVIO(p) my_safefree((char*)p)
 
 bool
-sv_upgrade(register SV *sv, U32 mt)
+Perl_sv_upgrade(pTHX_ register SV *sv, U32 mt)
 {
     char*      pv;
     U32                cur;
@@ -925,7 +899,7 @@ sv_upgrade(register SV *sv, U32 mt)
 }
 
 int
-sv_backoff(register SV *sv)
+Perl_sv_backoff(pTHX_ register SV *sv)
 {
     assert(SvOOK(sv));
     if (SvIVX(sv)) {
@@ -940,7 +914,7 @@ sv_backoff(register SV *sv)
 }
 
 char *
-sv_grow(register SV *sv, register STRLEN newlen)
+Perl_sv_grow(pTHX_ register SV *sv, register STRLEN newlen)
 {
     register char *s;
 
@@ -988,7 +962,7 @@ sv_grow(register SV *sv, register STRLEN newlen)
 }
 
 void
-sv_setiv(register SV *sv, IV i)
+Perl_sv_setiv(pTHX_ register SV *sv, IV i)
 {
     SV_CHECK_THINKFIRST(sv);
     switch (SvTYPE(sv)) {
@@ -1021,14 +995,14 @@ sv_setiv(register SV *sv, IV i)
 }
 
 void
-sv_setiv_mg(register SV *sv, IV i)
+Perl_sv_setiv_mg(pTHX_ register SV *sv, IV i)
 {
     sv_setiv(sv,i);
     SvSETMAGIC(sv);
 }
 
 void
-sv_setuv(register SV *sv, UV u)
+Perl_sv_setuv(pTHX_ register SV *sv, UV u)
 {
     sv_setiv(sv, 0);
     SvIsUV_on(sv);
@@ -1036,14 +1010,14 @@ sv_setuv(register SV *sv, UV u)
 }
 
 void
-sv_setuv_mg(register SV *sv, UV u)
+Perl_sv_setuv_mg(pTHX_ register SV *sv, UV u)
 {
     sv_setuv(sv,u);
     SvSETMAGIC(sv);
 }
 
 void
-sv_setnv(register SV *sv, double num)
+Perl_sv_setnv(pTHX_ register SV *sv, double num)
 {
     SV_CHECK_THINKFIRST(sv);
     switch (SvTYPE(sv)) {
@@ -1075,14 +1049,14 @@ sv_setnv(register SV *sv, double num)
 }
 
 void
-sv_setnv_mg(register SV *sv, double num)
+Perl_sv_setnv_mg(pTHX_ register SV *sv, double num)
 {
     sv_setnv(sv,num);
     SvSETMAGIC(sv);
 }
 
 STATIC void
-not_a_number(SV *sv)
+not_a_number(pTHX_ SV *sv)
 {
     dTHR;
     char tmpbuf[64];
@@ -1146,7 +1120,7 @@ not_a_number(SV *sv)
    until proven guilty, assume that things are not that bad... */
 
 IV
-sv_2iv(register SV *sv)
+Perl_sv_2iv(pTHX_ register SV *sv)
 {
     if (!sv)
        return 0;
@@ -1289,7 +1263,7 @@ sv_2iv(register SV *sv)
 }
 
 UV
-sv_2uv(register SV *sv)
+Perl_sv_2uv(pTHX_ register SV *sv)
 {
     if (!sv)
        return 0;
@@ -1449,7 +1423,7 @@ sv_2uv(register SV *sv)
 }
 
 double
-sv_2nv(register SV *sv)
+Perl_sv_2nv(pTHX_ register SV *sv)
 {
     if (!sv)
        return 0.0;
@@ -1545,7 +1519,7 @@ sv_2nv(register SV *sv)
 }
 
 STATIC IV
-asIV(SV *sv)
+asIV(pTHX_ SV *sv)
 {
     I32 numtype = looks_like_number(sv);
     double d;
@@ -1563,7 +1537,7 @@ asIV(SV *sv)
 }
 
 STATIC UV
-asUV(SV *sv)
+asUV(pTHX_ SV *sv)
 {
     I32 numtype = looks_like_number(sv);
 
@@ -1594,7 +1568,7 @@ asUV(SV *sv)
  */
 
 I32
-looks_like_number(SV *sv)
+Perl_looks_like_number(pTHX_ SV *sv)
 {
     /* XXXX 64-bit?  It may be not IS_NUMBER_TO_INT_BY_ATOL, but
      * using atof() may lose precision. */
@@ -1689,14 +1663,14 @@ looks_like_number(SV *sv)
 }
 
 char *
-sv_2pv_nolen(register SV *sv)
+Perl_sv_2pv_nolen(pTHX_ register SV *sv)
 {
     STRLEN n_a;
     return sv_2pv(sv, &n_a);
 }
 
 /* We assume that buf is at least TYPE_CHARS(UV) long. */
-STATIC char *
+static char *
 uiv_2buf(char *buf, IV iv, UV uv, int is_uv, char **peob)
 {
     STRLEN len;
@@ -1724,7 +1698,7 @@ uiv_2buf(char *buf, IV iv, UV uv, int is_uv, char **peob)
 }
 
 char *
-sv_2pv(register SV *sv, STRLEN *lp)
+Perl_sv_2pv(pTHX_ register SV *sv, STRLEN *lp)
 {
     register char *s;
     int olderrno;
@@ -1987,7 +1961,7 @@ sv_2pv(register SV *sv, STRLEN *lp)
 
 /* This function is only called on magical items */
 bool
-sv_2bool(register SV *sv)
+Perl_sv_2bool(pTHX_ register SV *sv)
 {
     if (SvGMAGICAL(sv))
        mg_get(sv);
@@ -2029,7 +2003,7 @@ sv_2bool(register SV *sv)
  */
 
 void
-sv_setsv(SV *dstr, register SV *sstr)
+Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr)
 {
     dTHR;
     register U32 sflags;
@@ -2405,14 +2379,14 @@ sv_setsv(SV *dstr, register SV *sstr)
 }
 
 void
-sv_setsv_mg(SV *dstr, register SV *sstr)
+Perl_sv_setsv_mg(pTHX_ SV *dstr, register SV *sstr)
 {
     sv_setsv(dstr,sstr);
     SvSETMAGIC(dstr);
 }
 
 void
-sv_setpvn(register SV *sv, register const char *ptr, register STRLEN len)
+Perl_sv_setpvn(pTHX_ register SV *sv, register const char *ptr, register STRLEN len)
 {
     register char *dptr;
     assert(len >= 0);  /* STRLEN is probably unsigned, so this may
@@ -2434,14 +2408,14 @@ sv_setpvn(register SV *sv, register const char *ptr, register STRLEN len)
 }
 
 void
-sv_setpvn_mg(register SV *sv, register const char *ptr, register STRLEN len)
+Perl_sv_setpvn_mg(pTHX_ register SV *sv, register const char *ptr, register STRLEN len)
 {
     sv_setpvn(sv,ptr,len);
     SvSETMAGIC(sv);
 }
 
 void
-sv_setpv(register SV *sv, register const char *ptr)
+Perl_sv_setpv(pTHX_ register SV *sv, register const char *ptr)
 {
     register STRLEN len;
 
@@ -2461,14 +2435,14 @@ sv_setpv(register SV *sv, register const char *ptr)
 }
 
 void
-sv_setpv_mg(register SV *sv, register const char *ptr)
+Perl_sv_setpv_mg(pTHX_ register SV *sv, register const char *ptr)
 {
     sv_setpv(sv,ptr);
     SvSETMAGIC(sv);
 }
 
 void
-sv_usepvn(register SV *sv, register char *ptr, register STRLEN len)
+Perl_sv_usepvn(pTHX_ register SV *sv, register char *ptr, register STRLEN len)
 {
     SV_CHECK_THINKFIRST(sv);
     (void)SvUPGRADE(sv, SVt_PV);
@@ -2489,14 +2463,14 @@ sv_usepvn(register SV *sv, register char *ptr, register STRLEN len)
 }
 
 void
-sv_usepvn_mg(register SV *sv, register char *ptr, register STRLEN len)
+Perl_sv_usepvn_mg(pTHX_ register SV *sv, register char *ptr, register STRLEN len)
 {
     sv_usepvn(sv,ptr,len);
     SvSETMAGIC(sv);
 }
 
 void
-sv_force_normal(register SV *sv)
+Perl_sv_force_normal(pTHX_ register SV *sv)
 {
     if (SvREADONLY(sv)) {
        dTHR;
@@ -2510,7 +2484,7 @@ sv_force_normal(register SV *sv)
 }
     
 void
-sv_chop(register SV *sv, register char *ptr)   /* like set but assuming ptr is in sv */
+Perl_sv_chop(pTHX_ register SV *sv, register char *ptr)        /* like set but assuming ptr is in sv */
                 
                    
 {
@@ -2542,7 +2516,7 @@ sv_chop(register SV *sv, register char *ptr)      /* like set but assuming ptr is in
 }
 
 void
-sv_catpvn(register SV *sv, register const char *ptr, register STRLEN len)
+Perl_sv_catpvn(pTHX_ register SV *sv, register const char *ptr, register STRLEN len)
 {
     STRLEN tlen;
     char *junk;
@@ -2559,14 +2533,14 @@ sv_catpvn(register SV *sv, register const char *ptr, register STRLEN len)
 }
 
 void
-sv_catpvn_mg(register SV *sv, register const char *ptr, register STRLEN len)
+Perl_sv_catpvn_mg(pTHX_ register SV *sv, register const char *ptr, register STRLEN len)
 {
     sv_catpvn(sv,ptr,len);
     SvSETMAGIC(sv);
 }
 
 void
-sv_catsv(SV *dstr, register SV *sstr)
+Perl_sv_catsv(pTHX_ SV *dstr, register SV *sstr)
 {
     char *s;
     STRLEN len;
@@ -2577,14 +2551,14 @@ sv_catsv(SV *dstr, register SV *sstr)
 }
 
 void
-sv_catsv_mg(SV *dstr, register SV *sstr)
+Perl_sv_catsv_mg(pTHX_ SV *dstr, register SV *sstr)
 {
     sv_catsv(dstr,sstr);
     SvSETMAGIC(dstr);
 }
 
 void
-sv_catpv(register SV *sv, register const char *ptr)
+Perl_sv_catpv(pTHX_ register SV *sv, register const char *ptr)
 {
     register STRLEN len;
     STRLEN tlen;
@@ -2604,14 +2578,14 @@ sv_catpv(register SV *sv, register const char *ptr)
 }
 
 void
-sv_catpv_mg(register SV *sv, register const char *ptr)
+Perl_sv_catpv_mg(pTHX_ register SV *sv, register const char *ptr)
 {
     sv_catpv(sv,ptr);
     SvSETMAGIC(sv);
 }
 
 SV *
-newSV(STRLEN len)
+Perl_newSV(pTHX_ STRLEN len)
 {
     register SV *sv;
     
@@ -2626,7 +2600,7 @@ newSV(STRLEN len)
 /* name is assumed to contain an SV* if (name && namelen == HEf_SVKEY) */
 
 void
-sv_magic(register SV *sv, SV *obj, int how, const char *name, I32 namlen)
+Perl_sv_magic(pTHX_ register SV *sv, SV *obj, int how, const char *name, I32 namlen)
 {
     MAGIC* mg;
     
@@ -2783,7 +2757,7 @@ sv_magic(register SV *sv, SV *obj, int how, const char *name, I32 namlen)
 }
 
 int
-sv_unmagic(SV *sv, int type)
+Perl_sv_unmagic(pTHX_ SV *sv, int type)
 {
     MAGIC* mg;
     MAGIC** mgp;
@@ -2817,7 +2791,7 @@ sv_unmagic(SV *sv, int type)
 }
 
 SV *
-sv_rvweaken(SV *sv)
+Perl_sv_rvweaken(pTHX_ SV *sv)
 {
     SV *tsv;
     if (!SvOK(sv))  /* let undefs pass */
@@ -2838,7 +2812,7 @@ sv_rvweaken(SV *sv)
 }
 
 STATIC void
-sv_add_backref(SV *tsv, SV *sv)
+sv_add_backref(pTHX_ SV *tsv, SV *sv)
 {
     AV *av;
     MAGIC *mg;
@@ -2853,7 +2827,7 @@ sv_add_backref(SV *tsv, SV *sv)
 }
 
 STATIC void 
-sv_del_backref(SV *sv)
+sv_del_backref(pTHX_ SV *sv)
 {
     AV *av;
     SV **svp;
@@ -2874,7 +2848,7 @@ sv_del_backref(SV *sv)
 }
 
 void
-sv_insert(SV *bigstr, STRLEN offset, STRLEN len, char *little, STRLEN littlelen)
+Perl_sv_insert(pTHX_ SV *bigstr, STRLEN offset, STRLEN len, char *little, STRLEN littlelen)
 {
     register char *big;
     register char *mid;
@@ -2959,7 +2933,7 @@ sv_insert(SV *bigstr, STRLEN offset, STRLEN len, char *little, STRLEN littlelen)
 /* make sv point to what nstr did */
 
 void
-sv_replace(register SV *sv, register SV *nsv)
+Perl_sv_replace(pTHX_ register SV *sv, register SV *nsv)
 {
     U32 refcnt = SvREFCNT(sv);
     SV_CHECK_THINKFIRST(sv);
@@ -2985,7 +2959,7 @@ sv_replace(register SV *sv, register SV *nsv)
 }
 
 void
-sv_clear(register SV *sv)
+Perl_sv_clear(pTHX_ register SV *sv)
 {
     HV* stash;
     assert(sv);
@@ -3015,8 +2989,8 @@ sv_clear(register SV *sv)
                    PUSHMARK(SP);
                    PUSHs(&tmpref);
                    PUTBACK;
-                   perl_call_sv((SV*)GvCV(destructor),
-                                G_DISCARD|G_EVAL|G_KEEPERR);
+                   call_sv((SV*)GvCV(destructor),
+                           G_DISCARD|G_EVAL|G_KEEPERR);
                    SvREFCNT(sv)--;
                    POPSTACK;
                    SPAGAIN;
@@ -3171,7 +3145,7 @@ sv_clear(register SV *sv)
 }
 
 SV *
-sv_newref(SV *sv)
+Perl_sv_newref(pTHX_ SV *sv)
 {
     if (sv)
        ATOMIC_INC(SvREFCNT(sv));
@@ -3179,7 +3153,7 @@ sv_newref(SV *sv)
 }
 
 void
-sv_free(SV *sv)
+Perl_sv_free(pTHX_ SV *sv)
 {
     int refcount_is_zero;
 
@@ -3218,7 +3192,7 @@ sv_free(SV *sv)
 }
 
 STRLEN
-sv_len(register SV *sv)
+Perl_sv_len(pTHX_ register SV *sv)
 {
     char *junk;
     STRLEN len;
@@ -3234,7 +3208,7 @@ sv_len(register SV *sv)
 }
 
 STRLEN
-sv_len_utf8(register SV *sv)
+Perl_sv_len_utf8(pTHX_ register SV *sv)
 {
     U8 *s;
     U8 *send;
@@ -3259,7 +3233,7 @@ sv_len_utf8(register SV *sv)
 }
 
 void
-sv_pos_u2b(register SV *sv, I32* offsetp, I32* lenp)
+Perl_sv_pos_u2b(pTHX_ register SV *sv, I32* offsetp, I32* lenp)
 {
     U8 *start;
     U8 *s;
@@ -3290,7 +3264,7 @@ sv_pos_u2b(register SV *sv, I32* offsetp, I32* lenp)
 }
 
 void
-sv_pos_b2u(register SV *sv, I32* offsetp)
+Perl_sv_pos_b2u(pTHX_ register SV *sv, I32* offsetp)
 {
     U8 *s;
     U8 *send;
@@ -3317,7 +3291,7 @@ sv_pos_b2u(register SV *sv, I32* offsetp)
 }
 
 I32
-sv_eq(register SV *str1, register SV *str2)
+Perl_sv_eq(pTHX_ register SV *str1, register SV *str2)
 {
     char *pv1;
     STRLEN cur1;
@@ -3343,7 +3317,7 @@ sv_eq(register SV *str1, register SV *str2)
 }
 
 I32
-sv_cmp(register SV *str1, register SV *str2)
+Perl_sv_cmp(pTHX_ register SV *str1, register SV *str2)
 {
     STRLEN cur1 = 0;
     char *pv1 = str1 ? SvPV(str1, cur1) : (char *) NULL;
@@ -3369,7 +3343,7 @@ sv_cmp(register SV *str1, register SV *str2)
 }
 
 I32
-sv_cmp_locale(register SV *sv1, register SV *sv2)
+Perl_sv_cmp_locale(pTHX_ register SV *sv1, register SV *sv2)
 {
 #ifdef USE_LOCALE_COLLATE
 
@@ -3424,7 +3398,7 @@ sv_cmp_locale(register SV *sv1, register SV *sv2)
  * according to the locale settings.
  */
 char *
-sv_collxfrm(SV *sv, STRLEN *nxp)
+Perl_sv_collxfrm(pTHX_ SV *sv, STRLEN *nxp)
 {
     MAGIC *mg;
 
@@ -3470,7 +3444,7 @@ sv_collxfrm(SV *sv, STRLEN *nxp)
 #endif /* USE_LOCALE_COLLATE */
 
 char *
-sv_gets(register SV *sv, register PerlIO *fp, I32 append)
+Perl_sv_gets(pTHX_ register SV *sv, register PerlIO *fp, I32 append)
 {
     dTHR;
     char *rsptr;
@@ -3734,7 +3708,7 @@ screamer2:
 
 
 void
-sv_inc(register SV *sv)
+Perl_sv_inc(pTHX_ register SV *sv)
 {
     register char *d;
     int flags;
@@ -3836,7 +3810,7 @@ sv_inc(register SV *sv)
 }
 
 void
-sv_dec(register SV *sv)
+Perl_sv_dec(pTHX_ register SV *sv)
 {
     int flags;
 
@@ -3902,7 +3876,7 @@ sv_dec(register SV *sv)
  * permanent location. */
 
 SV *
-sv_mortalcopy(SV *oldstr)
+Perl_sv_mortalcopy(pTHX_ SV *oldstr)
 {
     dTHR;
     register SV *sv;
@@ -3916,7 +3890,7 @@ sv_mortalcopy(SV *oldstr)
 }
 
 SV *
-sv_newmortal(void)
+Perl_sv_newmortal(pTHX)
 {
     dTHR;
     register SV *sv;
@@ -3931,7 +3905,7 @@ sv_newmortal(void)
 /* same thing without the copying */
 
 SV *
-sv_2mortal(register SV *sv)
+Perl_sv_2mortal(pTHX_ register SV *sv)
 {
     dTHR;
     if (!sv)
@@ -3945,7 +3919,7 @@ sv_2mortal(register SV *sv)
 }
 
 SV *
-newSVpv(const char *s, STRLEN len)
+Perl_newSVpv(pTHX_ const char *s, STRLEN len)
 {
     register SV *sv;
 
@@ -3957,7 +3931,7 @@ newSVpv(const char *s, STRLEN len)
 }
 
 SV *
-newSVpvn(const char *s, STRLEN len)
+Perl_newSVpvn(pTHX_ const char *s, STRLEN len)
 {
     register SV *sv;
 
@@ -3967,7 +3941,7 @@ newSVpvn(const char *s, STRLEN len)
 }
 
 SV *
-newSVpvf(const char* pat, ...)
+Perl_newSVpvf(pTHX_ const char* pat, ...)
 {
     register SV *sv;
     va_list args;
@@ -3981,7 +3955,7 @@ newSVpvf(const char* pat, ...)
 
 
 SV *
-newSVnv(double n)
+Perl_newSVnv(pTHX_ double n)
 {
     register SV *sv;
 
@@ -3991,7 +3965,7 @@ newSVnv(double n)
 }
 
 SV *
-newSViv(IV i)
+Perl_newSViv(pTHX_ IV i)
 {
     register SV *sv;
 
@@ -4001,7 +3975,7 @@ newSViv(IV i)
 }
 
 SV *
-newRV_noinc(SV *tmpRef)
+Perl_newRV_noinc(pTHX_ SV *tmpRef)
 {
     dTHR;
     register SV *sv;
@@ -4015,7 +3989,7 @@ newRV_noinc(SV *tmpRef)
 }
 
 SV *
-newRV(SV *tmpRef)
+Perl_newRV(pTHX_ SV *tmpRef)
 {
     return newRV_noinc(SvREFCNT_inc(tmpRef));
 }
@@ -4023,7 +3997,7 @@ newRV(SV *tmpRef)
 /* make an exact duplicate of old */
 
 SV *
-newSVsv(register SV *old)
+Perl_newSVsv(pTHX_ register SV *old)
 {
     register SV *sv;
 
@@ -4045,7 +4019,7 @@ newSVsv(register SV *old)
 }
 
 void
-sv_reset(register char *s, HV *stash)
+Perl_sv_reset(pTHX_ register char *s, HV *stash)
 {
     register HE *entry;
     register GV *gv;
@@ -4117,7 +4091,7 @@ sv_reset(register char *s, HV *stash)
 }
 
 IO*
-sv_2io(SV *sv)
+Perl_sv_2io(pTHX_ SV *sv)
 {
     IO* io;
     GV* gv;
@@ -4151,7 +4125,7 @@ sv_2io(SV *sv)
 }
 
 CV *
-sv_2cv(SV *sv, HV **st, GV **gvp, I32 lref)
+Perl_sv_2cv(pTHX_ SV *sv, HV **st, GV **gvp, I32 lref)
 {
     GV *gv;
     CV *cv;
@@ -4224,7 +4198,7 @@ sv_2cv(SV *sv, HV **st, GV **gvp, I32 lref)
 }
 
 I32
-sv_true(register SV *sv)
+Perl_sv_true(pTHX_ register SV *sv)
 {
     dTHR;
     if (!sv)
@@ -4252,7 +4226,7 @@ sv_true(register SV *sv)
 }
 
 IV
-sv_iv(register SV *sv)
+Perl_sv_iv(pTHX_ register SV *sv)
 {
     if (SvIOK(sv)) {
        if (SvIsUV(sv))
@@ -4263,7 +4237,7 @@ sv_iv(register SV *sv)
 }
 
 UV
-sv_uv(register SV *sv)
+Perl_sv_uv(pTHX_ register SV *sv)
 {
     if (SvIOK(sv)) {
        if (SvIsUV(sv))
@@ -4274,7 +4248,7 @@ sv_uv(register SV *sv)
 }
 
 double
-sv_nv(register SV *sv)
+Perl_sv_nv(pTHX_ register SV *sv)
 {
     if (SvNOK(sv))
        return SvNVX(sv);
@@ -4282,7 +4256,7 @@ sv_nv(register SV *sv)
 }
 
 char *
-sv_pv(SV *sv)
+Perl_sv_pv(pTHX_ SV *sv)
 {
     STRLEN n_a;
 
@@ -4293,7 +4267,7 @@ sv_pv(SV *sv)
 }
 
 char *
-sv_pvn(SV *sv, STRLEN *lp)
+Perl_sv_pvn(pTHX_ SV *sv, STRLEN *lp)
 {
     if (SvPOK(sv)) {
        *lp = SvCUR(sv);
@@ -4303,7 +4277,7 @@ sv_pvn(SV *sv, STRLEN *lp)
 }
 
 char *
-sv_pvn_force(SV *sv, STRLEN *lp)
+Perl_sv_pvn_force(pTHX_ SV *sv, STRLEN *lp)
 {
     char *s;
 
@@ -4343,7 +4317,7 @@ sv_pvn_force(SV *sv, STRLEN *lp)
 }
 
 char *
-sv_reftype(SV *sv, int ob)
+Perl_sv_reftype(pTHX_ SV *sv, int ob)
 {
     if (ob && SvOBJECT(sv))
        return HvNAME(SvSTASH(sv));
@@ -4374,7 +4348,7 @@ sv_reftype(SV *sv, int ob)
 }
 
 int
-sv_isobject(SV *sv)
+Perl_sv_isobject(pTHX_ SV *sv)
 {
     if (!sv)
        return 0;
@@ -4389,7 +4363,7 @@ sv_isobject(SV *sv)
 }
 
 int
-sv_isa(SV *sv, const char *name)
+Perl_sv_isa(pTHX_ SV *sv, const char *name)
 {
     if (!sv)
        return 0;
@@ -4405,7 +4379,7 @@ sv_isa(SV *sv, const char *name)
 }
 
 SV*
-newSVrv(SV *rv, const char *classname)
+Perl_newSVrv(pTHX_ SV *rv, const char *classname)
 {
     dTHR;
     SV *sv;
@@ -4430,7 +4404,7 @@ newSVrv(SV *rv, const char *classname)
 }
 
 SV*
-sv_setref_pv(SV *rv, const char *classname, void *pv)
+Perl_sv_setref_pv(pTHX_ SV *rv, const char *classname, void *pv)
 {
     if (!pv) {
        sv_setsv(rv, &PL_sv_undef);
@@ -4442,28 +4416,28 @@ sv_setref_pv(SV *rv, const char *classname, void *pv)
 }
 
 SV*
-sv_setref_iv(SV *rv, const char *classname, IV iv)
+Perl_sv_setref_iv(pTHX_ SV *rv, const char *classname, IV iv)
 {
     sv_setiv(newSVrv(rv,classname), iv);
     return rv;
 }
 
 SV*
-sv_setref_nv(SV *rv, const char *classname, double nv)
+Perl_sv_setref_nv(pTHX_ SV *rv, const char *classname, double nv)
 {
     sv_setnv(newSVrv(rv,classname), nv);
     return rv;
 }
 
 SV*
-sv_setref_pvn(SV *rv, const char *classname, char *pv, STRLEN n)
+Perl_sv_setref_pvn(pTHX_ SV *rv, const char *classname, char *pv, STRLEN n)
 {
     sv_setpvn(newSVrv(rv,classname), pv, n);
     return rv;
 }
 
 SV*
-sv_bless(SV *sv, HV *stash)
+Perl_sv_bless(pTHX_ SV *sv, HV *stash)
 {
     dTHR;
     SV *tmpRef;
@@ -4494,7 +4468,7 @@ sv_bless(SV *sv, HV *stash)
 }
 
 STATIC void
-sv_unglob(SV *sv)
+sv_unglob(pTHX_ SV *sv)
 {
     assert(SvTYPE(sv) == SVt_PVGV);
     SvFAKE_off(sv);
@@ -4512,7 +4486,7 @@ sv_unglob(SV *sv)
 }
 
 void
-sv_unref(SV *sv)
+Perl_sv_unref(pTHX_ SV *sv)
 {
     SV* rv = SvRV(sv);
 
@@ -4531,13 +4505,13 @@ sv_unref(SV *sv)
 }
 
 void
-sv_taint(SV *sv)
+Perl_sv_taint(pTHX_ SV *sv)
 {
     sv_magic((sv), Nullsv, 't', Nullch, 0);
 }
 
 void
-sv_untaint(SV *sv)
+Perl_sv_untaint(pTHX_ SV *sv)
 {
     if (SvTYPE(sv) >= SVt_PVMG && SvMAGIC(sv)) {
        MAGIC *mg = mg_find(sv, 't');
@@ -4547,7 +4521,7 @@ sv_untaint(SV *sv)
 }
 
 bool
-sv_tainted(SV *sv)
+Perl_sv_tainted(pTHX_ SV *sv)
 {
     if (SvTYPE(sv) >= SVt_PVMG && SvMAGIC(sv)) {
        MAGIC *mg = mg_find(sv, 't');
@@ -4558,7 +4532,7 @@ sv_tainted(SV *sv)
 }
 
 void
-sv_setpviv(SV *sv, IV iv)
+Perl_sv_setpviv(pTHX_ SV *sv, IV iv)
 {
     char buf[TYPE_CHARS(UV)];
     char *ebuf;
@@ -4569,7 +4543,7 @@ sv_setpviv(SV *sv, IV iv)
 
 
 void
-sv_setpviv_mg(SV *sv, IV iv)
+Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv)
 {
     char buf[TYPE_CHARS(UV)];
     char *ebuf;
@@ -4580,7 +4554,7 @@ sv_setpviv_mg(SV *sv, IV iv)
 }
 
 void
-sv_setpvf(SV *sv, const char* pat, ...)
+Perl_sv_setpvf(pTHX_ SV *sv, const char* pat, ...)
 {
     va_list args;
     va_start(args, pat);
@@ -4590,7 +4564,7 @@ sv_setpvf(SV *sv, const char* pat, ...)
 
 
 void
-sv_setpvf_mg(SV *sv, const char* pat, ...)
+Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...)
 {
     va_list args;
     va_start(args, pat);
@@ -4600,7 +4574,7 @@ sv_setpvf_mg(SV *sv, const char* pat, ...)
 }
 
 void
-sv_catpvf(SV *sv, const char* pat, ...)
+Perl_sv_catpvf(pTHX_ SV *sv, const char* pat, ...)
 {
     va_list args;
     va_start(args, pat);
@@ -4609,7 +4583,7 @@ sv_catpvf(SV *sv, const char* pat, ...)
 }
 
 void
-sv_catpvf_mg(SV *sv, const char* pat, ...)
+Perl_sv_catpvf_mg(pTHX_ SV *sv, const char* pat, ...)
 {
     va_list args;
     va_start(args, pat);
@@ -4619,14 +4593,14 @@ sv_catpvf_mg(SV *sv, const char* pat, ...)
 }
 
 void
-sv_vsetpvfn(SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs, I32 svmax, bool *used_locale)
+Perl_sv_vsetpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs, I32 svmax, bool *used_locale)
 {
     sv_setpvn(sv, "", 0);
     sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, used_locale);
 }
 
 void
-sv_vcatpvfn(SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs, I32 svmax, bool *used_locale)
+Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV **svargs, I32 svmax, bool *used_locale)
 {
     dTHR;
     char *p;
diff --git a/taint.c b/taint.c
index e163eb4..4d000a1 100644 (file)
--- a/taint.c
+++ b/taint.c
@@ -5,10 +5,11 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_TAINT_C
 #include "perl.h"
 
 void
-taint_proper(const char *f, char *s)
+Perl_taint_proper(pTHX_ const char *f, char *s)
 {
     dTHR;      /* just for taint */
     char *ug;
@@ -33,7 +34,7 @@ taint_proper(const char *f, char *s)
 }
 
 void
-taint_env(void)
+Perl_taint_env(pTHX)
 {
     SV** svp;
     MAGIC* mg;
diff --git a/toke.c b/toke.c
index 46b8c6e..af93ad8 100644 (file)
--- a/toke.c
+++ b/toke.c
  */
 
 #include "EXTERN.h"
+#define PERL_IN_TOKE_C
 #include "perl.h"
 
 #define yychar PL_yychar
 #define yylval PL_yylval
 
-#ifndef PERL_OBJECT
-static void check_uni (void);
-static void  force_next (I32 type);
-static char *force_version (char *start);
-static char *force_word (char *start, int token, int check_keyword, int allow_pack, int allow_tick);
-static SV *tokeq (SV *sv);
-static char *scan_const (char *start);
-static char *scan_formline (char *s);
-static char *scan_heredoc (char *s);
-static char *scan_ident (char *s, char *send, char *dest, STRLEN destlen,
-                        I32 ck_uni);
-static char *scan_inputsymbol (char *start);
-static char *scan_pat (char *start, I32 type);
-static char *scan_str (char *start);
-static char *scan_subst (char *start);
-static char *scan_trans (char *start);
-static char *scan_word (char *s, char *dest, STRLEN destlen,
-                       int allow_package, STRLEN *slp);
-static char *skipspace (char *s);
-static void checkcomma (char *s, char *name, char *what);
-static void force_ident (char *s, int kind);
-static void incline (char *s);
-static int intuit_method (char *s, GV *gv);
-static int intuit_more (char *s);
-static I32 lop (I32 f, expectation x, char *s);
-static void missingterm (char *s);
-static void no_op (char *what, char *s);
-static void set_csh (void);
-static I32 sublex_done (void);
-static I32 sublex_push (void);
-static I32 sublex_start (void);
-#ifdef CRIPPLED_CC
-static int uni (I32 f, char *s);
-#endif
-static char * filter_gets (SV *sv, PerlIO *fp, STRLEN append);
-static void restore_rsfp (void *f);
-static SV *new_constant (char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type);
-static void restore_expect (void *e);
-static void restore_lex_expect (void *e);
-#endif /* PERL_OBJECT */
-
 static char ident_too_long[] = "Identifier too long";
 
 #define UTF (PL_hints & HINT_UTF8)
@@ -121,6 +81,7 @@ int* yychar_pointer = NULL;
 #  define yylval (*yylval_pointer)
 #  define yychar (*yychar_pointer)
 #  define PERL_YYLEX_PARAM yylval_pointer,yychar_pointer
+#  define yylex(a,b)   Perl_yylex(aTHX_ a, b)
 #else
 #  define PERL_YYLEX_PARAM
 #endif
@@ -172,7 +133,7 @@ int* yychar_pointer = NULL;
 #define OLDLOP(f) return(yylval.ival=f,PL_expect = XTERM,PL_bufptr = s,(int)LSTOP)
 
 STATIC int
-ao(int toketype)
+ao(pTHX_ int toketype)
 {
     if (*PL_bufptr == '=') {
        PL_bufptr++;
@@ -186,7 +147,7 @@ ao(int toketype)
 }
 
 STATIC void
-no_op(char *what, char *s)
+no_op(pTHX_ char *what, char *s)
 {
     char *oldbp = PL_bufptr;
     bool is_first = (PL_oldbufptr == PL_linestart);
@@ -211,7 +172,7 @@ no_op(char *what, char *s)
 }
 
 STATIC void
-missingterm(char *s)
+missingterm(pTHX_ char *s)
 {
     char tmpbuf[3];
     char q;
@@ -243,7 +204,7 @@ missingterm(char *s)
 }
 
 void
-deprecate(char *s)
+Perl_deprecate(pTHX_ char *s)
 {
     dTHR;
     if (ckWARN(WARN_DEPRECATED))
@@ -251,7 +212,7 @@ deprecate(char *s)
 }
 
 STATIC void
-depcom(void)
+depcom(pTHX)
 {
     deprecate("comma-less variable list");
 }
@@ -259,7 +220,7 @@ depcom(void)
 #ifdef WIN32
 
 STATIC I32
-win32_textfilter(int idx, SV *sv, int maxlen)
+win32_textfilter(pTHX_ int idx, SV *sv, int maxlen)
 {
  I32 count = FILTER_READ(idx+1, sv, maxlen);
  if (count > 0 && !maxlen)
@@ -268,10 +229,8 @@ win32_textfilter(int idx, SV *sv, int maxlen)
 }
 #endif
 
-#ifndef PERL_OBJECT
-
 STATIC I32
-utf16_textfilter(int idx, SV *sv, int maxlen)
+utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen)
 {
     I32 count = FILTER_READ(idx+1, sv, maxlen);
     if (count) {
@@ -286,7 +245,7 @@ utf16_textfilter(int idx, SV *sv, int maxlen)
 }
 
 STATIC I32
-utf16rev_textfilter(int idx, SV *sv, int maxlen)
+utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen)
 {
     I32 count = FILTER_READ(idx+1, sv, maxlen);
     if (count) {
@@ -300,10 +259,8 @@ utf16rev_textfilter(int idx, SV *sv, int maxlen)
     return count;
 }
 
-#endif
-
 void
-lex_start(SV *line)
+Perl_lex_start(pTHX_ SV *line)
 {
     dTHR;
     char *s;
@@ -368,13 +325,13 @@ lex_start(SV *line)
 }
 
 void
-lex_end(void)
+Perl_lex_end(pTHX)
 {
     PL_doextract = FALSE;
 }
 
 STATIC void
-restore_rsfp(void *f)
+restore_rsfp(pTHX_ void *f)
 {
     PerlIO *fp = (PerlIO*)f;
 
@@ -386,21 +343,21 @@ restore_rsfp(void *f)
 }
 
 STATIC void
-restore_expect(void *e)
+restore_expect(pTHX_ void *e)
 {
     /* a safe way to store a small integer in a pointer */
     PL_expect = (expectation)((char *)e - PL_tokenbuf);
 }
 
 STATIC void
-restore_lex_expect(void *e)
+restore_lex_expect(pTHX_ void *e)
 {
     /* a safe way to store a small integer in a pointer */
     PL_lex_expect = (expectation)((char *)e - PL_tokenbuf);
 }
 
 STATIC void
-incline(char *s)
+incline(pTHX_ char *s)
 {
     dTHR;
     char *t;
@@ -441,7 +398,7 @@ incline(char *s)
 }
 
 STATIC char *
-skipspace(register char *s)
+skipspace(pTHX_ register char *s)
 {
     dTHR;
     if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) {
@@ -504,7 +461,7 @@ skipspace(register char *s)
 }
 
 STATIC void
-check_uni(void)
+check_uni(pTHX)
 {
     char *s;
     char ch;
@@ -529,7 +486,7 @@ check_uni(void)
 #define UNI(f) return uni(f,s)
 
 STATIC int
-uni(I32 f, char *s)
+uni(pTHX_ I32 f, char *s)
 {
     yylval.ival = f;
     PL_expect = XTERM;
@@ -550,7 +507,7 @@ uni(I32 f, char *s)
 #define LOP(f,x) return lop(f,x,s)
 
 STATIC I32
-lop(I32 f, expectation x, char *s)
+lop(pTHX_ I32 f, expectation x, char *s)
 {
     dTHR;
     yylval.ival = f;
@@ -571,7 +528,7 @@ lop(I32 f, expectation x, char *s)
 }
 
 STATIC void 
-force_next(I32 type)
+force_next(pTHX_ I32 type)
 {
     PL_nexttype[PL_nexttoke] = type;
     PL_nexttoke++;
@@ -583,7 +540,7 @@ force_next(I32 type)
 }
 
 STATIC char *
-force_word(register char *start, int token, int check_keyword, int allow_pack, int allow_initial_tick)
+force_word(pTHX_ register char *start, int token, int check_keyword, int allow_pack, int allow_initial_tick)
 {
     register char *s;
     STRLEN len;
@@ -613,7 +570,7 @@ force_word(register char *start, int token, int check_keyword, int allow_pack, i
 }
 
 STATIC void
-force_ident(register char *s, int kind)
+force_ident(pTHX_ register char *s, int kind)
 {
     if (s && *s) {
        OP* o = (OP*)newSVOP(OP_CONST, 0, newSVpv(s,0));
@@ -636,7 +593,7 @@ force_ident(register char *s, int kind)
 }
 
 STATIC char *
-force_version(char *s)
+force_version(pTHX_ char *s)
 {
     OP *version = Nullop;
 
@@ -663,7 +620,7 @@ force_version(char *s)
 }
 
 STATIC SV *
-tokeq(SV *sv)
+tokeq(pTHX_ SV *sv)
 {
     register char *s;
     register char *send;
@@ -701,7 +658,7 @@ tokeq(SV *sv)
 }
 
 STATIC I32
-sublex_start(void)
+sublex_start(pTHX)
 {
     register I32 op_type = yylval.ival;
 
@@ -745,7 +702,7 @@ sublex_start(void)
 }
 
 STATIC I32
-sublex_push(void)
+sublex_push(pTHX)
 {
     dTHR;
     ENTER;
@@ -798,7 +755,7 @@ sublex_push(void)
 }
 
 STATIC I32
-sublex_done(void)
+sublex_done(pTHX)
 {
     if (!PL_lex_starts++) {
        PL_expect = XOPERATOR;
@@ -921,7 +878,7 @@ sublex_done(void)
 */
 
 STATIC char *
-scan_const(char *start)
+scan_const(pTHX_ char *start)
 {
     register char *send = PL_bufend;           /* end of the constant */
     SV *sv = NEWSV(93, send - start);          /* sv for the constant */
@@ -1235,7 +1192,7 @@ scan_const(char *start)
 
 /* This is the one truly awful dwimmer necessary to conflate C and sed. */
 STATIC int
-intuit_more(register char *s)
+intuit_more(pTHX_ register char *s)
 {
     if (PL_lex_brackets)
        return TRUE;
@@ -1365,7 +1322,7 @@ intuit_more(register char *s)
 }
 
 STATIC int
-intuit_method(char *start, GV *gv)
+intuit_method(pTHX_ char *start, GV *gv)
 {
     char *s = start + (*start == '$');
     char tmpbuf[sizeof PL_tokenbuf];
@@ -1424,7 +1381,7 @@ intuit_method(char *start, GV *gv)
 }
 
 STATIC char*
-incl_perldb(void)
+incl_perldb(pTHX)
 {
     if (PL_perldb) {
        char *pdb = PerlEnv_getenv("PERL5DB");
@@ -1455,7 +1412,7 @@ incl_perldb(void)
  */
 
 SV *
-filter_add(filter_t funcp, SV *datasv)
+Perl_filter_add(pTHX_ filter_t funcp, SV *datasv)
 {
     if (!funcp){ /* temporary handy debugging hack to be deleted */
        PL_filter_debug = atoi((char*)datasv);
@@ -1480,7 +1437,7 @@ filter_add(filter_t funcp, SV *datasv)
 
 /* Delete most recently added instance of this filter function.        */
 void
-filter_del(filter_t funcp)
+Perl_filter_del(pTHX_ filter_t funcp)
 {
     if (PL_filter_debug)
        warn("filter_del func %p", funcp);
@@ -1500,7 +1457,7 @@ filter_del(filter_t funcp)
 
 /* Invoke the n'th filter function for the current rsfp.        */
 I32
-filter_read(int idx, SV *buf_sv, int maxlen)
+Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
             
                
                                /* 0 = read one text line */
@@ -1560,7 +1517,7 @@ filter_read(int idx, SV *buf_sv, int maxlen)
 }
 
 STATIC char *
-filter_gets(register SV *sv, register PerlIO *fp, STRLEN append)
+filter_gets(pTHX_ register SV *sv, register PerlIO *fp, STRLEN append)
 {
 #ifdef WIN32FILTER
     if (!PL_rsfp_filters) {
@@ -1611,7 +1568,12 @@ filter_gets(register SV *sv, register PerlIO *fp, STRLEN append)
       if we already built the token before, use it.
 */
 
-int yylex(PERL_YYLEX_PARAM_DECL)
+int
+#ifdef USE_PURE_BISON
+yylex(pTHX_ YYSTYPE *lvalp, int *lcharp)
+#else
+yylex(pTHX)
+#endif
 {
     dTHR;
     register char *s;
@@ -2758,7 +2720,7 @@ int yylex(PERL_YYLEX_PARAM_DECL)
                    if (isIDFIRST_lazy(t)) {
                        t = scan_word(t, tmpbuf, sizeof tmpbuf, TRUE, &len);
                        for (; isSPACE(*t); t++) ;
-                       if (*t == ';' && perl_get_cv(tmpbuf, FALSE))
+                       if (*t == ';' && get_cv(tmpbuf, FALSE))
                            warner(WARN_SYNTAX,
                                "You need to quote \"%s\"", tmpbuf);
                    }
@@ -4308,7 +4270,7 @@ int yylex(PERL_YYLEX_PARAM_DECL)
 }
 
 I32
-keyword(register char *d, I32 len)
+Perl_keyword(pTHX_ register char *d, I32 len)
 {
     switch (*d) {
     case '_':
@@ -4927,7 +4889,7 @@ keyword(register char *d, I32 len)
 }
 
 STATIC void
-checkcomma(register char *s, char *name, char *what)
+checkcomma(pTHX_ register char *s, char *name, char *what)
 {
     char *w;
 
@@ -4962,7 +4924,7 @@ checkcomma(register char *s, char *name, char *what)
        if (*s == ',') {
            int kw;
            *s = '\0';
-           kw = keyword(w, s - w) || perl_get_cv(w, FALSE) != 0;
+           kw = keyword(w, s - w) || get_cv(w, FALSE) != 0;
            *s = ',';
            if (kw)
                return;
@@ -4972,7 +4934,7 @@ checkcomma(register char *s, char *name, char *what)
 }
 
 STATIC SV *
-new_constant(char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type) 
+new_constant(pTHX_ char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type) 
 {
     dSP;
     HV *table = GvHV(PL_hintgv);                /* ^H */
@@ -5042,7 +5004,7 @@ new_constant(char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type)
 }
 
 STATIC char *
-scan_word(register char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp)
+scan_word(pTHX_ register char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp)
 {
     register char *d = dest;
     register char *e = d + destlen - 3;  /* two-character token, ending NUL */
@@ -5079,7 +5041,7 @@ scan_word(register char *s, char *dest, STRLEN destlen, int allow_package, STRLE
 }
 
 STATIC char *
-scan_ident(register char *s, register char *send, char *dest, STRLEN destlen, I32 ck_uni)
+scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destlen, I32 ck_uni)
 {
     register char *d;
     register char *e;
@@ -5220,7 +5182,7 @@ scan_ident(register char *s, register char *send, char *dest, STRLEN destlen, I3
            if (PL_lex_state == LEX_NORMAL) {
                dTHR;                   /* only for ckWARN */
                if (ckWARN(WARN_AMBIGUOUS) &&
-                   (keyword(dest, d - dest) || perl_get_cv(dest, FALSE)))
+                   (keyword(dest, d - dest) || get_cv(dest, FALSE)))
                {
                    warner(WARN_AMBIGUOUS,
                        "Ambiguous use of %c{%s} resolved to %c%s",
@@ -5257,7 +5219,7 @@ void pmflag(U16 *pmfl, int ch)
 }
 
 STATIC char *
-scan_pat(char *start, I32 type)
+scan_pat(pTHX_ char *start, I32 type)
 {
     PMOP *pm;
     char *s;
@@ -5289,7 +5251,7 @@ scan_pat(char *start, I32 type)
 }
 
 STATIC char *
-scan_subst(char *start)
+scan_subst(pTHX_ char *start)
 {
     register char *s;
     register PMOP *pm;
@@ -5359,7 +5321,7 @@ scan_subst(char *start)
 }
 
 STATIC char *
-scan_trans(char *start)
+scan_trans(pTHX_ char *start)
 {
     register char* s;
     OP *o;
@@ -5439,7 +5401,7 @@ scan_trans(char *start)
 }
 
 STATIC char *
-scan_heredoc(register char *s)
+scan_heredoc(pTHX_ register char *s)
 {
     dTHR;
     SV *herewas;
@@ -5649,7 +5611,7 @@ retval:
 */
 
 STATIC char *
-scan_inputsymbol(char *start)
+scan_inputsymbol(pTHX_ char *start)
 {
     register char *s = start;          /* current position in buffer */
     register char *d;
@@ -5789,7 +5751,7 @@ scan_inputsymbol(char *start)
 */
 
 STATIC char *
-scan_str(char *start)
+scan_str(pTHX_ char *start)
 {
     dTHR;
     SV *sv;                            /* scalar value: string */
@@ -5976,7 +5938,7 @@ scan_str(char *start)
 */
   
 char *
-scan_num(char *start)
+Perl_scan_num(pTHX_ char *start)
 {
     register char *s = start;          /* current position in buffer */
     register char *d;                  /* destination in temp buffer */
@@ -6217,7 +6179,7 @@ scan_num(char *start)
 }
 
 STATIC char *
-scan_formline(register char *s)
+scan_formline(pTHX_ register char *s)
 {
     dTHR;
     register char *eol;
@@ -6291,7 +6253,7 @@ scan_formline(register char *s)
 }
 
 STATIC void
-set_csh(void)
+set_csh(pTHX)
 {
 #ifdef CSH
     if (!PL_cshlen)
@@ -6300,7 +6262,7 @@ set_csh(void)
 }
 
 I32
-start_subparse(I32 is_format, U32 flags)
+Perl_start_subparse(pTHX_ I32 is_format, U32 flags)
 {
     dTHR;
     I32 oldsavestack_ix = PL_savestack_ix;
@@ -6357,7 +6319,7 @@ start_subparse(I32 is_format, U32 flags)
 }
 
 int
-yywarn(char *s)
+Perl_yywarn(pTHX_ char *s)
 {
     dTHR;
     --PL_error_count;
@@ -6368,7 +6330,7 @@ yywarn(char *s)
 }
 
 int
-yyerror(char *s)
+Perl_yyerror(pTHX_ char *s)
 {
     dTHR;
     char *where = NULL;
index 7d8ced3..6ee0d76 100644 (file)
@@ -1,4 +1,5 @@
 #include "EXTERN.h"
+#define PERL_IN_UNIVERSAL_C
 #include "perl.h"
 
 /*
@@ -7,7 +8,7 @@
  */
 
 STATIC SV *
-isa_lookup(HV *stash, const char *name, int len, int level)
+isa_lookup(pTHX_ HV *stash, const char *name, int len, int level)
 {
     AV* av;
     GV* gv;
@@ -73,7 +74,7 @@ isa_lookup(HV *stash, const char *name, int len, int level)
 }
 
 bool
-sv_derived_from(SV *sv, const char *name)
+Perl_sv_derived_from(pTHX_ SV *sv, const char *name)
 {
     SV *rv;
     char *type;
@@ -211,7 +212,7 @@ XS(XS_UNIVERSAL_VERSION)
 #endif
 
 void
-boot_core_UNIVERSAL(void)
+Perl_boot_core_UNIVERSAL(pTHX)
 {
     char *file = __FILE__;
 
diff --git a/utf8.c b/utf8.c
index 00c6daf..5faaa3e 100644 (file)
--- a/utf8.c
+++ b/utf8.c
  */
 
 #include "EXTERN.h"
+#define PERL_IN_UTF8_C
 #include "perl.h"
 
 /* Unicode support */
 
 U8 *
-uv_to_utf8(U8 *d, UV uv)
+Perl_uv_to_utf8(pTHX_ U8 *d, UV uv)
 {
     if (uv < 0x80) {
        *d++ = uv;
@@ -96,7 +97,7 @@ uv_to_utf8(U8 *d, UV uv)
 }
 
 UV
-utf8_to_uv(U8* s, I32* retlen)
+Perl_utf8_to_uv(pTHX_ U8* s, I32* retlen)
 {
     UV uv = *s;
     int len;
@@ -140,7 +141,7 @@ utf8_to_uv(U8* s, I32* retlen)
 /* utf8_distance(a,b) is intended to be a - b in pointer arithmetic */
 
 I32
-utf8_distance(U8 *a, U8 *b)
+Perl_utf8_distance(pTHX_ U8 *a, U8 *b)
 {
     I32 off = 0;
     if (a < b) {
@@ -161,7 +162,7 @@ utf8_distance(U8 *a, U8 *b)
 /* WARNING: do not use the following unless you *know* off is within bounds */
 
 U8 *
-utf8_hop(U8 *s, I32 off)
+Perl_utf8_hop(pTHX_ U8 *s, I32 off)
 {
     if (off >= 0) {
        while (off--)
@@ -187,7 +188,7 @@ utf8_hop(U8 *s, I32 off)
  * We optimize for native, for obvious reasons. */
 
 U8*
-utf16_to_utf8(U16* p, U8* d, I32 bytelen)
+Perl_utf16_to_utf8(pTHX_ U16* p, U8* d, I32 bytelen)
 {
     U16* pend = p + bytelen / 2;
     while (p < pend) {
@@ -230,7 +231,7 @@ utf16_to_utf8(U16* p, U8* d, I32 bytelen)
 /* Note: this one is slightly destructive of the source. */
 
 U8*
-utf16_to_utf8_reversed(U16* p, U8* d, I32 bytelen)
+Perl_utf16_to_utf8_reversed(pTHX_ U16* p, U8* d, I32 bytelen)
 {
     U8* s = (U8*)p;
     U8* send = s + bytelen;
@@ -246,7 +247,7 @@ utf16_to_utf8_reversed(U16* p, U8* d, I32 bytelen)
 /* for now these are all defined (inefficiently) in terms of the utf8 versions */
 
 bool
-is_uni_alnum(U32 c)
+Perl_is_uni_alnum(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -254,7 +255,7 @@ is_uni_alnum(U32 c)
 }
 
 bool
-is_uni_idfirst(U32 c)
+Perl_is_uni_idfirst(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -262,7 +263,7 @@ is_uni_idfirst(U32 c)
 }
 
 bool
-is_uni_alpha(U32 c)
+Perl_is_uni_alpha(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -270,7 +271,7 @@ is_uni_alpha(U32 c)
 }
 
 bool
-is_uni_space(U32 c)
+Perl_is_uni_space(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -278,7 +279,7 @@ is_uni_space(U32 c)
 }
 
 bool
-is_uni_digit(U32 c)
+Perl_is_uni_digit(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -286,7 +287,7 @@ is_uni_digit(U32 c)
 }
 
 bool
-is_uni_upper(U32 c)
+Perl_is_uni_upper(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -294,7 +295,7 @@ is_uni_upper(U32 c)
 }
 
 bool
-is_uni_lower(U32 c)
+Perl_is_uni_lower(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -302,7 +303,7 @@ is_uni_lower(U32 c)
 }
 
 bool
-is_uni_print(U32 c)
+Perl_is_uni_print(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -310,7 +311,7 @@ is_uni_print(U32 c)
 }
 
 U32
-to_uni_upper(U32 c)
+Perl_to_uni_upper(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -318,7 +319,7 @@ to_uni_upper(U32 c)
 }
 
 U32
-to_uni_title(U32 c)
+Perl_to_uni_title(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -326,7 +327,7 @@ to_uni_title(U32 c)
 }
 
 U32
-to_uni_lower(U32 c)
+Perl_to_uni_lower(pTHX_ U32 c)
 {
     U8 tmpbuf[10];
     uv_to_utf8(tmpbuf, (UV)c);
@@ -336,74 +337,74 @@ to_uni_lower(U32 c)
 /* for now these all assume no locale info available for Unicode > 255 */
 
 bool
-is_uni_alnum_lc(U32 c)
+Perl_is_uni_alnum_lc(pTHX_ U32 c)
 {
     return is_uni_alnum(c);    /* XXX no locale support yet */
 }
 
 bool
-is_uni_idfirst_lc(U32 c)
+Perl_is_uni_idfirst_lc(pTHX_ U32 c)
 {
     return is_uni_idfirst(c);  /* XXX no locale support yet */
 }
 
 bool
-is_uni_alpha_lc(U32 c)
+Perl_is_uni_alpha_lc(pTHX_ U32 c)
 {
     return is_uni_alpha(c);    /* XXX no locale support yet */
 }
 
 bool
-is_uni_space_lc(U32 c)
+Perl_is_uni_space_lc(pTHX_ U32 c)
 {
     return is_uni_space(c);    /* XXX no locale support yet */
 }
 
 bool
-is_uni_digit_lc(U32 c)
+Perl_is_uni_digit_lc(pTHX_ U32 c)
 {
     return is_uni_digit(c);    /* XXX no locale support yet */
 }
 
 bool
-is_uni_upper_lc(U32 c)
+Perl_is_uni_upper_lc(pTHX_ U32 c)
 {
     return is_uni_upper(c);    /* XXX no locale support yet */
 }
 
 bool
-is_uni_lower_lc(U32 c)
+Perl_is_uni_lower_lc(pTHX_ U32 c)
 {
     return is_uni_lower(c);    /* XXX no locale support yet */
 }
 
 bool
-is_uni_print_lc(U32 c)
+Perl_is_uni_print_lc(pTHX_ U32 c)
 {
     return is_uni_print(c);    /* XXX no locale support yet */
 }
 
 U32
-to_uni_upper_lc(U32 c)
+Perl_to_uni_upper_lc(pTHX_ U32 c)
 {
     return to_uni_upper(c);    /* XXX no locale support yet */
 }
 
 U32
-to_uni_title_lc(U32 c)
+Perl_to_uni_title_lc(pTHX_ U32 c)
 {
     return to_uni_title(c);    /* XXX no locale support yet */
 }
 
 U32
-to_uni_lower_lc(U32 c)
+Perl_to_uni_lower_lc(pTHX_ U32 c)
 {
     return to_uni_lower(c);    /* XXX no locale support yet */
 }
 
 
 bool
-is_utf8_alnum(U8 *p)
+Perl_is_utf8_alnum(pTHX_ U8 *p)
 {
     if (!PL_utf8_alnum)
        PL_utf8_alnum = swash_init("utf8", "IsAlnum", &PL_sv_undef, 0, 0);
@@ -418,13 +419,13 @@ is_utf8_alnum(U8 *p)
 }
 
 bool
-is_utf8_idfirst(U8 *p)
+Perl_is_utf8_idfirst(pTHX_ U8 *p)
 {
     return *p == '_' || is_utf8_alpha(p);
 }
 
 bool
-is_utf8_alpha(U8 *p)
+Perl_is_utf8_alpha(pTHX_ U8 *p)
 {
     if (!PL_utf8_alpha)
        PL_utf8_alpha = swash_init("utf8", "IsAlpha", &PL_sv_undef, 0, 0);
@@ -432,7 +433,7 @@ is_utf8_alpha(U8 *p)
 }
 
 bool
-is_utf8_space(U8 *p)
+Perl_is_utf8_space(pTHX_ U8 *p)
 {
     if (!PL_utf8_space)
        PL_utf8_space = swash_init("utf8", "IsSpace", &PL_sv_undef, 0, 0);
@@ -440,7 +441,7 @@ is_utf8_space(U8 *p)
 }
 
 bool
-is_utf8_digit(U8 *p)
+Perl_is_utf8_digit(pTHX_ U8 *p)
 {
     if (!PL_utf8_digit)
        PL_utf8_digit = swash_init("utf8", "IsDigit", &PL_sv_undef, 0, 0);
@@ -448,7 +449,7 @@ is_utf8_digit(U8 *p)
 }
 
 bool
-is_utf8_upper(U8 *p)
+Perl_is_utf8_upper(pTHX_ U8 *p)
 {
     if (!PL_utf8_upper)
        PL_utf8_upper = swash_init("utf8", "IsUpper", &PL_sv_undef, 0, 0);
@@ -456,7 +457,7 @@ is_utf8_upper(U8 *p)
 }
 
 bool
-is_utf8_lower(U8 *p)
+Perl_is_utf8_lower(pTHX_ U8 *p)
 {
     if (!PL_utf8_lower)
        PL_utf8_lower = swash_init("utf8", "IsLower", &PL_sv_undef, 0, 0);
@@ -464,7 +465,7 @@ is_utf8_lower(U8 *p)
 }
 
 bool
-is_utf8_print(U8 *p)
+Perl_is_utf8_print(pTHX_ U8 *p)
 {
     if (!PL_utf8_print)
        PL_utf8_print = swash_init("utf8", "IsPrint", &PL_sv_undef, 0, 0);
@@ -472,7 +473,7 @@ is_utf8_print(U8 *p)
 }
 
 bool
-is_utf8_mark(U8 *p)
+Perl_is_utf8_mark(pTHX_ U8 *p)
 {
     if (!PL_utf8_mark)
        PL_utf8_mark = swash_init("utf8", "IsM", &PL_sv_undef, 0, 0);
@@ -480,7 +481,7 @@ is_utf8_mark(U8 *p)
 }
 
 UV
-to_utf8_upper(U8 *p)
+Perl_to_utf8_upper(pTHX_ U8 *p)
 {
     UV uv;
 
@@ -491,7 +492,7 @@ to_utf8_upper(U8 *p)
 }
 
 UV
-to_utf8_title(U8 *p)
+Perl_to_utf8_title(pTHX_ U8 *p)
 {
     UV uv;
 
@@ -502,7 +503,7 @@ to_utf8_title(U8 *p)
 }
 
 UV
-to_utf8_lower(U8 *p)
+Perl_to_utf8_lower(pTHX_ U8 *p)
 {
     UV uv;
 
@@ -515,7 +516,7 @@ to_utf8_lower(U8 *p)
 /* a "swash" is a swatch hash */
 
 SV*
-swash_init(char* pkg, char* name, SV *listsv, I32 minbits, I32 none)
+Perl_swash_init(pTHX_ char* pkg, char* name, SV *listsv, I32 minbits, I32 none)
 {
     SV* retval;
     char tmpbuf[256];
@@ -535,7 +536,7 @@ swash_init(char* pkg, char* name, SV *listsv, I32 minbits, I32 none)
     save_re_context();
     if (PL_curcop == &PL_compiling)    /* XXX ought to be handled by lex_start */
        strncpy(tmpbuf, PL_tokenbuf, sizeof tmpbuf);
-    if (perl_call_method("SWASHNEW", G_SCALAR))
+    if (call_method("SWASHNEW", G_SCALAR))
        retval = newSVsv(*PL_stack_sp--);    
     else
        retval = &PL_sv_undef;
@@ -551,7 +552,7 @@ swash_init(char* pkg, char* name, SV *listsv, I32 minbits, I32 none)
 }
 
 UV
-swash_fetch(SV *sv, U8 *ptr)
+Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr)
 {
     HV* hv = (HV*)SvRV(sv);
     U32 klen = UTF8SKIP(ptr) - 1;
@@ -595,7 +596,7 @@ swash_fetch(SV *sv, U8 *ptr)
            PUSHs(sv_2mortal(newSViv(utf8_to_uv(ptr, 0) & ~(needents - 1))));
            PUSHs(sv_2mortal(newSViv(needents)));
            PUTBACK;
-           if (perl_call_method("SWASHGET", G_SCALAR))
+           if (call_method("SWASHGET", G_SCALAR))
                retval = newSVsv(*PL_stack_sp--);    
            else
                retval = &PL_sv_undef;
diff --git a/util.c b/util.c
index d48c1dd..9c0df21 100644 (file)
--- a/util.c
+++ b/util.c
@@ -13,6 +13,7 @@
  */
 
 #include "EXTERN.h"
+#define PERL_IN_UTIL_C
 #include "perl.h"
 
 #if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX)
@@ -54,7 +55,6 @@
 
 #ifdef LEAKTEST
 
-static void xstat (int);
 long xcount[MAXXCOUNT];
 long lastxcount[MAXXCOUNT];
 long xycount[MAXXCOUNT][MAXYCOUNT];
@@ -71,7 +71,7 @@ long lastxycount[MAXXCOUNT][MAXYCOUNT];
  */
 
 Malloc_t
-safesysmalloc(MEM_SIZE size)
+Perl_safesysmalloc(pTHX_ MEM_SIZE size)
 {
     Malloc_t ptr;
 #ifdef HAS_64K_LIMIT
@@ -105,7 +105,7 @@ safesysmalloc(MEM_SIZE size)
 /* paranoid version of system's realloc() */
 
 Malloc_t
-safesysrealloc(Malloc_t where,MEM_SIZE size)
+Perl_safesysrealloc(pTHX_ Malloc_t where,MEM_SIZE size)
 {
     Malloc_t ptr;
 #if !defined(STANDARD_C) && !defined(HAS_REALLOC_PROTOTYPE)
@@ -159,7 +159,7 @@ safesysrealloc(Malloc_t where,MEM_SIZE size)
 /* safe version of system's free() */
 
 Free_t
-safesysfree(Malloc_t where)
+Perl_safesysfree(pTHX_ Malloc_t where)
 {
 #if !(defined(I286) || defined(atarist))
     DEBUG_m( PerlIO_printf(Perl_debug_log, "0x%x: (%05d) free\n",(char *) where,PL_an++));
@@ -175,7 +175,7 @@ safesysfree(Malloc_t where)
 /* safe version of system's calloc() */
 
 Malloc_t
-safesyscalloc(MEM_SIZE count, MEM_SIZE size)
+Perl_safesyscalloc(pTHX_ MEM_SIZE count, MEM_SIZE size)
 {
     Malloc_t ptr;
 
@@ -235,7 +235,7 @@ struct mem_test_strut {
                              : ((size) - 1)/4))
 
 Malloc_t
-safexmalloc(I32 x, MEM_SIZE size)
+Perl_safexmalloc(pTHX_ I32 x, MEM_SIZE size)
 {
     register char* where = (char*)safemalloc(size + ALIGN);
 
@@ -247,7 +247,7 @@ safexmalloc(I32 x, MEM_SIZE size)
 }
 
 Malloc_t
-safexrealloc(Malloc_t wh, MEM_SIZE size)
+Perl_safexrealloc(pTHX_ Malloc_t wh, MEM_SIZE size)
 {
     char *where = (char*)wh;
 
@@ -268,7 +268,7 @@ safexrealloc(Malloc_t wh, MEM_SIZE size)
 }
 
 void
-safexfree(Malloc_t wh)
+Perl_safexfree(pTHX_ Malloc_t wh)
 {
     I32 x;
     char *where = (char*)wh;
@@ -285,7 +285,7 @@ safexfree(Malloc_t wh)
 }
 
 Malloc_t
-safexcalloc(I32 x,MEM_SIZE count, MEM_SIZE size)
+Perl_safexcalloc(pTHX_ I32 x,MEM_SIZE count, MEM_SIZE size)
 {
     register char * where = (char*)safexmalloc(x, size * count + ALIGN);
     xcount[x] += size;
@@ -296,8 +296,8 @@ safexcalloc(I32 x,MEM_SIZE count, MEM_SIZE size)
     return (Malloc_t)(where + ALIGN);
 }
 
-static void
-xstat(int flag)
+STATIC void
+xstat(pTHX_ int flag)
 {
     register I32 i, j, total = 0;
     I32 subtot[MAXYCOUNT];
@@ -356,7 +356,7 @@ xstat(int flag)
 /* copy a string up to some (non-backslashed) delimiter, if any */
 
 char *
-delimcpy(register char *to, register char *toend, register char *from, register char *fromend, register int delim, I32 *retlen)
+Perl_delimcpy(pTHX_ register char *to, register char *toend, register char *from, register char *fromend, register int delim, I32 *retlen)
 {
     register I32 tolen;
     for (tolen = 0; from < fromend; from++, tolen++) {
@@ -385,7 +385,7 @@ delimcpy(register char *to, register char *toend, register char *from, register
 /* This routine was donated by Corey Satten. */
 
 char *
-instr(register const char *big, register const char *little)
+Perl_instr(pTHX_ register const char *big, register const char *little)
 {
     register const char *s, *x;
     register I32 first;
@@ -415,7 +415,7 @@ instr(register const char *big, register const char *little)
 /* same as instr but allow embedded nulls */
 
 char *
-ninstr(register const char *big, register const char *bigend, const char *little, const char *lend)
+Perl_ninstr(pTHX_ register const char *big, register const char *bigend, const char *little, const char *lend)
 {
     register const char *s, *x;
     register I32 first = *little;
@@ -444,7 +444,7 @@ ninstr(register const char *big, register const char *bigend, const char *little
 /* reverse of the above--find last substring */
 
 char *
-rninstr(register const char *big, const char *bigend, const char *little, const char *lend)
+Perl_rninstr(pTHX_ register const char *big, const char *bigend, const char *little, const char *lend)
 {
     register const char *bigbeg;
     register const char *s, *x;
@@ -474,7 +474,7 @@ rninstr(register const char *big, const char *bigend, const char *little, const
  * Set up for a new ctype locale.
  */
 void
-perl_new_ctype(const char *newctype)
+Perl_new_ctype(pTHX_ const char *newctype)
 {
 #ifdef USE_LOCALE_CTYPE
 
@@ -496,7 +496,7 @@ perl_new_ctype(const char *newctype)
  * Set up for a new collation locale.
  */
 void
-perl_new_collate(const char *newcoll)
+Perl_new_collate(pTHX_ const char *newcoll)
 {
 #ifdef USE_LOCALE_COLLATE
 
@@ -540,7 +540,7 @@ perl_new_collate(const char *newcoll)
  * Set up for a new numeric locale.
  */
 void
-perl_new_numeric(const char *newnum)
+Perl_new_numeric(pTHX_ const char *newnum)
 {
 #ifdef USE_LOCALE_NUMERIC
 
@@ -565,7 +565,7 @@ perl_new_numeric(const char *newnum)
 }
 
 void
-perl_set_numeric_standard(void)
+Perl_set_numeric_standard(pTHX)
 {
 #ifdef USE_LOCALE_NUMERIC
 
@@ -579,7 +579,7 @@ perl_set_numeric_standard(void)
 }
 
 void
-perl_set_numeric_local(void)
+Perl_set_numeric_local(pTHX)
 {
 #ifdef USE_LOCALE_NUMERIC
 
@@ -597,7 +597,7 @@ perl_set_numeric_local(void)
  * Initialize locale awareness.
  */
 int
-perl_init_i18nl10n(int printwarn)
+Perl_init_i18nl10n(pTHX_ int printwarn)
 {
     int ok = 1;
     /* returns
@@ -807,15 +807,15 @@ perl_init_i18nl10n(int printwarn)
     }
 
 #ifdef USE_LOCALE_CTYPE
-    perl_new_ctype(curctype);
+    new_ctype(curctype);
 #endif /* USE_LOCALE_CTYPE */
 
 #ifdef USE_LOCALE_COLLATE
-    perl_new_collate(curcoll);
+    new_collate(curcoll);
 #endif /* USE_LOCALE_COLLATE */
 
 #ifdef USE_LOCALE_NUMERIC
-    perl_new_numeric(curnum);
+    new_numeric(curnum);
 #endif /* USE_LOCALE_NUMERIC */
 
 #endif /* USE_LOCALE */
@@ -825,9 +825,9 @@ perl_init_i18nl10n(int printwarn)
 
 /* Backwards compatibility. */
 int
-perl_init_i18nl14n(int printwarn)
+Perl_init_i18nl14n(pTHX_ int printwarn)
 {
-    return perl_init_i18nl10n(printwarn);
+    return init_i18nl10n(printwarn);
 }
 
 #ifdef USE_LOCALE_COLLATE
@@ -840,7 +840,7 @@ perl_init_i18nl14n(int printwarn)
  * Please see sv_collxfrm() to see how this is used.
  */
 char *
-mem_collxfrm(const char *s, STRLEN len, STRLEN *xlen)
+Perl_mem_collxfrm(pTHX_ const char *s, STRLEN len, STRLEN *xlen)
 {
     char *xbuf;
     STRLEN xAlloc, xin, xout; /* xalloc is a reserved word in VC */
@@ -898,7 +898,7 @@ mem_collxfrm(const char *s, STRLEN len, STRLEN *xlen)
    If FBMcf_TAIL, the table is created as if the string has a trailing \n. */
 
 void
-fbm_compile(SV *sv, U32 flags /* not used yet */)
+Perl_fbm_compile(pTHX_ SV *sv, U32 flags /* not used yet */)
 {
     register U8 *s;
     register U8 *table;
@@ -957,7 +957,7 @@ fbm_compile(SV *sv, U32 flags /* not used yet */)
    if multiline */
 
 char *
-fbm_instr(unsigned char *big, register unsigned char *bigend, SV *littlestr, U32 flags)
+Perl_fbm_instr(pTHX_ unsigned char *big, register unsigned char *bigend, SV *littlestr, U32 flags)
 {
     register unsigned char *s;
     STRLEN l;
@@ -1158,7 +1158,7 @@ fbm_instr(unsigned char *big, register unsigned char *bigend, SV *littlestr, U32
    is not supported yet. */
 
 char *
-screaminstr(SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *old_posp, I32 last)
+Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *old_posp, I32 last)
 {
     dTHR;
     register unsigned char *s, *x;
@@ -1257,7 +1257,7 @@ screaminstr(SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *old_
 }
 
 I32
-ibcmp(const char *s1, const char *s2, register I32 len)
+Perl_ibcmp(pTHX_ const char *s1, const char *s2, register I32 len)
 {
     register U8 *a = (U8 *)s1;
     register U8 *b = (U8 *)s2;
@@ -1270,7 +1270,7 @@ ibcmp(const char *s1, const char *s2, register I32 len)
 }
 
 I32
-ibcmp_locale(const char *s1, const char *s2, register I32 len)
+Perl_ibcmp_locale(pTHX_ const char *s1, const char *s2, register I32 len)
 {
     register U8 *a = (U8 *)s1;
     register U8 *b = (U8 *)s2;
@@ -1285,7 +1285,7 @@ ibcmp_locale(const char *s1, const char *s2, register I32 len)
 /* copy a string to a safe spot */
 
 char *
-savepv(const char *sv)
+Perl_savepv(pTHX_ const char *sv)
 {
     register char *newaddr;
 
@@ -1297,7 +1297,7 @@ savepv(const char *sv)
 /* same thing but with a known length */
 
 char *
-savepvn(const char *sv, register I32 len)
+Perl_savepvn(pTHX_ const char *sv, register I32 len)
 {
     register char *newaddr;
 
@@ -1310,7 +1310,7 @@ savepvn(const char *sv, register I32 len)
 /* the SV for form() and mess() is not kept in an arena */
 
 STATIC SV *
-mess_alloc(void)
+mess_alloc(pTHX)
 {
     dTHR;
     SV *sv;
@@ -1333,7 +1333,7 @@ mess_alloc(void)
 }
 
 char *
-form(const char* pat, ...)
+Perl_form(pTHX_ const char* pat, ...)
 {
     SV *sv = mess_alloc();
     va_list args;
@@ -1344,7 +1344,7 @@ form(const char* pat, ...)
 }
 
 SV *
-mess(const char *pat, va_list *args)
+Perl_mess(pTHX_ const char *pat, va_list *args)
 {
     SV *sv = mess_alloc();
     static char dgd[] = " during global destruction.\n";
@@ -1369,7 +1369,7 @@ mess(const char *pat, va_list *args)
 }
 
 OP *
-die(const char* pat, ...)
+Perl_die(pTHX_ const char* pat, ...)
 {
     dTHR;
     va_list args;
@@ -1424,7 +1424,7 @@ die(const char* pat, ...)
            PUSHMARK(SP);
            XPUSHs(msg);
            PUTBACK;
-           perl_call_sv((SV*)cv, G_DISCARD);
+           call_sv((SV*)cv, G_DISCARD);
            POPSTACK;
            LEAVE;
        }
@@ -1440,7 +1440,7 @@ die(const char* pat, ...)
 }
 
 void
-croak(const char* pat, ...)
+Perl_croak(pTHX_ const char* pat, ...)
 {
     dTHR;
     va_list args;
@@ -1477,7 +1477,7 @@ croak(const char* pat, ...)
            PUSHMARK(SP);
            XPUSHs(msg);
            PUTBACK;
-           perl_call_sv((SV*)cv, G_DISCARD);
+           call_sv((SV*)cv, G_DISCARD);
            POPSTACK;
            LEAVE;
        }
@@ -1501,7 +1501,7 @@ croak(const char* pat, ...)
 }
 
 void
-warn(const char* pat,...)
+Perl_warn(pTHX_ const char* pat,...)
 {
     va_list args;
     char *message;
@@ -1538,7 +1538,7 @@ warn(const char* pat,...)
            PUSHMARK(SP);
            XPUSHs(msg);
            PUTBACK;
-           perl_call_sv((SV*)cv, G_DISCARD);
+           call_sv((SV*)cv, G_DISCARD);
            POPSTACK;
            LEAVE;
            return;
@@ -1557,7 +1557,7 @@ warn(const char* pat,...)
 }
 
 void
-warner(U32  err, const char* pat,...)
+Perl_warner(pTHX_ U32  err, const char* pat,...)
 {
     dTHR;
     va_list args;
@@ -1597,7 +1597,7 @@ warner(U32  err, const char* pat,...)
                 PUSHMARK(sp);
                 XPUSHs(msg);
                 PUTBACK;
-                perl_call_sv((SV*)cv, G_DISCARD);
+                call_sv((SV*)cv, G_DISCARD);
  
                 LEAVE;
             }
@@ -1633,7 +1633,7 @@ warner(U32  err, const char* pat,...)
                 PUSHMARK(sp);
                 XPUSHs(msg);
                 PUTBACK;
-                perl_call_sv((SV*)cv, G_DISCARD);
+                call_sv((SV*)cv, G_DISCARD);
  
                 LEAVE;
                 return;
@@ -1650,7 +1650,7 @@ warner(U32  err, const char* pat,...)
 #ifndef VMS  /* VMS' my_setenv() is in VMS.c */
 #if !defined(WIN32) && !defined(CYGWIN32)
 void
-my_setenv(char *nam, char *val)
+Perl_my_setenv(pTHX_ char *nam, char *val)
 {
 #ifndef PERL_USE_SAFE_PUTENV
     /* most putenv()s leak, so we manipulate environ directly */
@@ -1716,7 +1716,7 @@ my_setenv(char *nam, char *val)
 #else /* if WIN32 */
 
 void
-my_setenv(char *nam,char *val)
+Perl_my_setenv(pTHX_ char *nam,char *val)
 {
 
 #ifdef USE_WIN32_RTL_ENV
@@ -1776,7 +1776,7 @@ my_setenv(char *nam,char *val)
 #endif /* WIN32 */
 
 I32
-setenv_getix(char *nam)
+Perl_setenv_getix(pTHX_ char *nam)
 {
     register I32 i, len = strlen(nam);
 
@@ -1797,7 +1797,7 @@ setenv_getix(char *nam)
 
 #ifdef UNLINK_ALL_VERSIONS
 I32
-unlnk(char *f) /* unlink all versions of a file */
+Perl_unlnk(pTHX_ char *f)      /* unlink all versions of a file */
 {
     I32 i;
 
@@ -1808,7 +1808,7 @@ unlnk(char *f)    /* unlink all versions of a file */
 
 #if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
 char *
-my_bcopy(register const char *from,register char *to,register I32 len)
+Perl_my_bcopy(pTHX_ register const char *from,register char *to,register I32 len)
 {
     char *retval = to;
 
@@ -1828,7 +1828,7 @@ my_bcopy(register const char *from,register char *to,register I32 len)
 
 #ifndef HAS_MEMSET
 void *
-my_memset(register char *loc, register I32 ch, register I32 len)
+Perl_my_memset(pTHX_ register char *loc, register I32 ch, register I32 len)
 {
     char *retval = loc;
 
@@ -1840,7 +1840,7 @@ my_memset(register char *loc, register I32 ch, register I32 len)
 
 #if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
 char *
-my_bzero(register char *loc, register I32 len)
+Perl_my_bzero(pTHX_ register char *loc, register I32 len)
 {
     char *retval = loc;
 
@@ -1852,7 +1852,7 @@ my_bzero(register char *loc, register I32 len)
 
 #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
 I32
-my_memcmp(const char *s1, const char *s2, register I32 len)
+Perl_my_memcmp(pTHX_ const char *s1, const char *s2, register I32 len)
 {
     register U8 *a = (U8 *)s1;
     register U8 *b = (U8 *)s2;
@@ -1897,7 +1897,7 @@ vsprintf(char *dest, const char *pat, char *args)
 #ifdef MYSWAP
 #if BYTEORDER != 0x4321
 short
-my_swap(short s)
+Perl_my_swap(pTHX_ short s)
 {
 #if (BYTEORDER & 1) == 0
     short result;
@@ -1910,7 +1910,7 @@ my_swap(short s)
 }
 
 long
-my_htonl(long l)
+Perl_my_htonl(pTHX_ long l)
 {
     union {
        long result;
@@ -1939,7 +1939,7 @@ my_htonl(long l)
 }
 
 long
-my_ntohl(long l)
+Perl_my_ntohl(pTHX_ long l)
 {
     union {
        long l;
@@ -2030,7 +2030,7 @@ VTOH(vtohl,long)
     /* VMS' my_popen() is in VMS.c, same with OS/2. */
 #if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(__OPEN_VM)
 PerlIO *
-my_popen(char *cmd, char *mode)
+Perl_my_popen(pTHX_ char *cmd, char *mode)
 {
     int p[2];
     register I32 This, that;
@@ -2153,7 +2153,7 @@ my_popen(char *cmd, char *mode)
 #if defined(atarist) || defined(DJGPP)
 FILE *popen();
 PerlIO *
-my_popen(char *cmd, char *mode)
+Perl_my_popen(pTHX_ char *cmd, char *mode)
 {
     /* Needs work for PerlIO ! */
     /* used 0 for 2nd parameter to PerlIO-exportFILE; apparently not used */
@@ -2166,7 +2166,7 @@ my_popen(char *cmd, char *mode)
 
 #ifdef DUMP_FDS
 void
-dump_fds(char *s)
+Perl_dump_fds(pTHX_ char *s)
 {
     int fd;
     struct stat tmpstatbuf;
@@ -2218,7 +2218,7 @@ dup2(int oldfd, int newfd)
 #ifdef HAS_SIGACTION
 
 Sighandler_t
-rsignal(int signo, Sighandler_t handler)
+Perl_rsignal(pTHX_ int signo, Sighandler_t handler)
 {
     struct sigaction act, oact;
 
@@ -2239,7 +2239,7 @@ rsignal(int signo, Sighandler_t handler)
 }
 
 Sighandler_t
-rsignal_state(int signo)
+Perl_rsignal_state(pTHX_ int signo)
 {
     struct sigaction oact;
 
@@ -2250,7 +2250,7 @@ rsignal_state(int signo)
 }
 
 int
-rsignal_save(int signo, Sighandler_t handler, Sigsave_t *save)
+Perl_rsignal_save(pTHX_ int signo, Sighandler_t handler, Sigsave_t *save)
 {
     struct sigaction act;
 
@@ -2268,7 +2268,7 @@ rsignal_save(int signo, Sighandler_t handler, Sigsave_t *save)
 }
 
 int
-rsignal_restore(int signo, Sigsave_t *save)
+Perl_rsignal_restore(pTHX_ int signo, Sigsave_t *save)
 {
     return sigaction(signo, save, (struct sigaction *)NULL);
 }
@@ -2276,7 +2276,7 @@ rsignal_restore(int signo, Sigsave_t *save)
 #else /* !HAS_SIGACTION */
 
 Sighandler_t
-rsignal(int signo, Sighandler_t handler)
+Perl_rsignal(pTHX_ int signo, Sighandler_t handler)
 {
     return PerlProc_signal(signo, handler);
 }
@@ -2291,7 +2291,7 @@ sig_trap(int signo)
 }
 
 Sighandler_t
-rsignal_state(int signo)
+Perl_rsignal_state(pTHX_ int signo)
 {
     Sighandler_t oldsig;
 
@@ -2304,14 +2304,14 @@ rsignal_state(int signo)
 }
 
 int
-rsignal_save(int signo, Sighandler_t handler, Sigsave_t *save)
+Perl_rsignal_save(pTHX_ int signo, Sighandler_t handler, Sigsave_t *save)
 {
     *save = PerlProc_signal(signo, handler);
     return (*save == SIG_ERR) ? -1 : 0;
 }
 
 int
-rsignal_restore(int signo, Sigsave_t *save)
+Perl_rsignal_restore(pTHX_ int signo, Sigsave_t *save)
 {
     return (PerlProc_signal(signo, *save) == SIG_ERR) ? -1 : 0;
 }
@@ -2321,7 +2321,7 @@ rsignal_restore(int signo, Sigsave_t *save)
     /* VMS' my_pclose() is in VMS.c; same with OS/2 */
 #if (!defined(DOSISH) || defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(__OPEN_VM)
 I32
-my_pclose(PerlIO *ptr)
+Perl_my_pclose(pTHX_ PerlIO *ptr)
 {
     Sigsave_t hstat, istat, qstat;
     int status;
@@ -2377,7 +2377,7 @@ my_pclose(PerlIO *ptr)
 
 #if  !defined(DOSISH) || defined(OS2) || defined(WIN32) || defined(CYGWIN32)
 I32
-wait4pid(int pid, int *statusp, int flags)
+Perl_wait4pid(pTHX_ int pid, int *statusp, int flags)
 {
     SV *sv;
     SV** svp;
@@ -2437,7 +2437,7 @@ wait4pid(int pid, int *statusp, int flags)
 
 void
 /*SUPPRESS 590*/
-pidgone(int pid, int status)
+Perl_pidgone(pTHX_ int pid, int status)
 {
     register SV *sv;
     char spid[TYPE_CHARS(int)];
@@ -2457,7 +2457,7 @@ int                                       /* Cannot prototype with I32
 my_syspclose(PerlIO *ptr)
 #else
 I32
-my_pclose(PerlIO *ptr)
+Perl_my_pclose(pTHX_ PerlIO *ptr)
 #endif 
 {
     /* Needs work for PerlIO ! */
@@ -2469,7 +2469,7 @@ my_pclose(PerlIO *ptr)
 #endif
 
 void
-repeatcpy(register char *to, register const char *from, I32 len, register I32 count)
+Perl_repeatcpy(pTHX_ register char *to, register const char *from, I32 len, register I32 count)
 {
     register I32 todo;
     register const char *frombase = from;
@@ -2489,7 +2489,7 @@ repeatcpy(register char *to, register const char *from, I32 len, register I32 co
 }
 
 U32
-cast_ulong(double f)
+Perl_cast_ulong(pTHX_ double f)
 {
     long along;
 
@@ -2526,7 +2526,7 @@ cast_ulong(double f)
 #endif
 
 I32
-cast_i32(double f)
+Perl_cast_i32(pTHX_ double f)
 {
     if (f >= I32_MAX)
        return (I32) I32_MAX;
@@ -2536,7 +2536,7 @@ cast_i32(double f)
 }
 
 IV
-cast_iv(double f)
+Perl_cast_iv(pTHX_ double f)
 {
     if (f >= IV_MAX) {
        UV uv;
@@ -2552,7 +2552,7 @@ cast_iv(double f)
 }
 
 UV
-cast_uv(double f)
+Perl_cast_uv(pTHX_ double f)
 {
     if (f >= MY_UV_MAX)
        return (UV) MY_UV_MAX;
@@ -2569,7 +2569,7 @@ cast_uv(double f)
 
 #ifndef HAS_RENAME
 I32
-same_dirent(char *a, char *b)
+Perl_same_dirent(pTHX_ char *a, char *b)
 {
     char *fa = strrchr(a,'/');
     char *fb = strrchr(b,'/');
@@ -2605,7 +2605,7 @@ same_dirent(char *a, char *b)
 #endif /* !HAS_RENAME */
 
 UV
-scan_bin(char *start, I32 len, I32 *retlen)
+Perl_scan_bin(pTHX_ char *start, I32 len, I32 *retlen)
 {
     register char *s = start;
     register UV retval = 0;
@@ -2628,7 +2628,7 @@ scan_bin(char *start, I32 len, I32 *retlen)
     return retval;
 }
 UV
-scan_oct(char *start, I32 len, I32 *retlen)
+Perl_scan_oct(pTHX_ char *start, I32 len, I32 *retlen)
 {
     register char *s = start;
     register UV retval = 0;
@@ -2653,7 +2653,7 @@ scan_oct(char *start, I32 len, I32 *retlen)
 }
 
 UV
-scan_hex(char *start, I32 len, I32 *retlen)
+Perl_scan_hex(pTHX_ char *start, I32 len, I32 *retlen)
 {
     register char *s = start;
     register UV retval = 0;
@@ -2686,7 +2686,7 @@ scan_hex(char *start, I32 len, I32 *retlen)
 }
 
 char*
-find_script(char *scriptname, bool dosearch, char **search_ext, I32 flags)
+Perl_find_script(pTHX_ char *scriptname, bool dosearch, char **search_ext, I32 flags)
 {
     dTHR;
     char *xfound = Nullch;
@@ -2911,13 +2911,13 @@ schedule(void)
 }
 
 void
-perl_cond_init(perl_cond *cp)
+Perl_cond_init(pTHX_ perl_cond *cp)
 {
     *cp = 0;
 }
 
 void
-perl_cond_signal(perl_cond *cp)
+Perl_cond_signal(pTHX_ perl_cond *cp)
 {
     perl_os_thread t;
     perl_cond cond = *cp;
@@ -2937,7 +2937,7 @@ perl_cond_signal(perl_cond *cp)
 }
 
 void
-perl_cond_broadcast(perl_cond *cp)
+Perl_cond_broadcast(pTHX_ perl_cond *cp)
 {
     perl_os_thread t;
     perl_cond cond, cond_next;
@@ -2958,7 +2958,7 @@ perl_cond_broadcast(perl_cond *cp)
 }
 
 void
-perl_cond_wait(perl_cond *cp)
+Perl_cond_wait(pTHX_ perl_cond *cp)
 {
     perl_cond cond;
 
@@ -2978,7 +2978,7 @@ perl_cond_wait(perl_cond *cp)
 
 #ifdef PTHREAD_GETSPECIFIC_INT
 struct perl_thread *
-getTHR(void)
+Perl_getTHR(pTHX)
 {
     pthread_addr_t t;
 
@@ -2989,7 +2989,7 @@ getTHR(void)
 #endif
 
 MAGIC *
-condpair_magic(SV *sv)
+Perl_condpair_magic(pTHX_ SV *sv)
 {
     MAGIC *mg;
     
@@ -3034,7 +3034,7 @@ condpair_magic(SV *sv)
  * thread calling new_struct_thread) clearly satisfies this constraint.
  */
 struct perl_thread *
-new_struct_thread(struct perl_thread *t)
+Perl_new_struct_thread(pTHX_ struct perl_thread *t)
 {
     struct perl_thread *thr;
     SV *sv;
@@ -3169,39 +3169,39 @@ Perl_huge(void)
 
 #ifdef PERL_GLOBAL_STRUCT
 struct perl_vars *
-Perl_GetVars(void)
+Perl_GetVars(pTHX)
 {
  return &PL_Vars;
 }
 #endif
 
 char **
-get_op_names(void)
+Perl_get_op_names(pTHX)
 {
  return PL_op_name;
 }
 
 char **
-get_op_descs(void)
+Perl_get_op_descs(pTHX)
 {
  return PL_op_desc;
 }
 
 char *
-get_no_modify(void)
+Perl_get_no_modify(pTHX)
 {
  return (char*)PL_no_modify;
 }
 
 U32 *
-get_opargs(void)
+Perl_get_opargs(pTHX)
 {
  return PL_opargs;
 }
 
 #ifndef HAS_GETENV_LEN
 char *
-getenv_len(char *env_elem, unsigned long *len)
+Perl_getenv_len(pTHX_ char *env_elem, unsigned long *len)
 {
     char *env_trans = PerlEnv_getenv(env_elem);
     if (env_trans)
@@ -3212,7 +3212,7 @@ getenv_len(char *env_elem, unsigned long *len)
 
 
 MGVTBL*
-get_vtbl(int vtbl_id)
+Perl_get_vtbl(pTHX_ int vtbl_id)
 {
     MGVTBL* result = Null(MGVTBL*);
 
@@ -3316,7 +3316,7 @@ get_vtbl(int vtbl_id)
 }
 
 I32
-my_fflush_all(void)
+Perl_my_fflush_all(pTHX)
 {
 #ifdef FFLUSH_NULL
     return PerlIO_flush(NULL);