This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
somewhat untested PERL_OBJECT cleanups (C++isms mostly
authorGurusamy Sarathy <gsar@cpan.org>
Sun, 27 Jun 1999 14:28:49 +0000 (14:28 +0000)
committerGurusamy Sarathy <gsar@cpan.org>
Sun, 27 Jun 1999 14:28:49 +0000 (14:28 +0000)
gone from the public API); PERL_OBJECT builds again on
windows

TODO: namespace-clean the typedefs in iperlsys.h and
elsewhere; remove C++ remnants from public headers

p4raw-id: //depot/perl@3553

45 files changed:
XSUB.h
bytecode.pl
cv.h
embed.h
embed.pl
ext/B/B.xs
ext/ByteLoader/ByteLoader.xs
ext/ByteLoader/bytecode.h
ext/ByteLoader/byterun.c
ext/ByteLoader/byterun.h
ext/DynaLoader/dlutils.c
global.sym
globals.c
iperlsys.h
lib/ExtUtils/Embed.pm
lib/ExtUtils/xsubpp
mg.c
objXSUB.h
opcode.h
opcode.pl
perl.c
perl.h
pod/perlhist.pod
pp_ctl.c
pp_hot.c
proto.h
scope.h
sv.h
toke.c
universal.c
util.c
win32/GenCAPI.pl
win32/Makefile
win32/config.bc
win32/config.gc
win32/config.vc
win32/dl_win32.xs
win32/makedef.pl
win32/makefile.mk
win32/perllib.c
win32/runperl.c
win32/win32.c
win32/win32.h
win32/win32iop.h
win32/win32sck.c

diff --git a/XSUB.h b/XSUB.h
index 74e8f02..70e7d84 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
@@ -1,13 +1,9 @@
 #define ST(off) PL_stack_base[ax + (off)]
 
-#ifdef PERL_OBJECT
-#  define XS(name) void name(CV* cv, CPerlObj* pPerl)
+#if defined(CYGWIN32) && defined(USE_DYNAMIC_LOADING)
+#  define XS(name) __declspec(dllexport) void name(pTHXo_ CV* cv)
 #else
-#  if defined(CYGWIN32) && defined(USE_DYNAMIC_LOADING)
-#    define XS(name) __declspec(dllexport) void name(pTHX_ CV* cv)
-#  else
-#    define XS(name) void name(pTHX_ CV* cv)
-#  endif
+#  define XS(name) void name(pTHXo_ CV* cv)
 #endif
 
 #define dXSARGS                                \
 #ifdef PERL_OBJECT
 #  include "objXSUB.h"
 
-#  undef  PERL_OBJECT_THIS
-#  define PERL_OBJECT_THIS pPerl
-#  undef  PERL_OBJECT_THIS_
-#  define PERL_OBJECT_THIS_ pPerl,
+#  undef  aTHXo
+#  define aTHXo                        pPerl
+#  undef  aTHXo_
+#  define aTHXo_               aTHXo,
+#  undef  _aTHXo
+#  define _aTHXo               ,aTHXo
 
 #  undef  SAVEDESTRUCTOR
 #  define SAVEDESTRUCTOR(f,p) \
 #      undef   errno
 #      define  errno                   ErrorNo()
 #    endif
-#    undef  ErrorNo
-#    define ErrorNo                    pPerl->ErrorNo
 #    undef  NtCrypt
 #    define NtCrypt                    pPerl->NtCrypt
 #    undef  NtGetLib
 #    define NtGetBin                   pPerl->NtGetBin
 #    undef  NtGetDebugScriptStr
 #    define NtGetDebugScriptStr                pPerl->NtGetDebugScriptStr
+#    undef fprintf
+#    define fprintf                    pPerl->fprintf
 #  endif /* WIN32 */
 
 #  ifndef NO_XSLOCKS
index 955db20..e12acbb 100644 (file)
@@ -67,9 +67,20 @@ print BYTERUN_C $c_header, <<'EOT';
 
 #include "EXTERN.h"
 #include "perl.h"
+#define NO_XSLOCKS
+#include "XSUB.h"
+
+#ifdef PERL_OBJECT
+#undef CALL_FPTR
+#define CALL_FPTR(fptr) (pPerl->*fptr)
+#undef PL_ppaddr
+#define PL_ppaddr (*get_ppaddr())
+#endif
+
 #include "byterun.h"
 #include "bytecode.h"
 
+
 static int optype_size[] = {
 EOT
 my $i = 0;
@@ -89,7 +100,7 @@ static void **bytecode_obj_list;
 static I32 bytecode_obj_list_fill = -1;
 
 void *
-bset_obj_store(void *obj, I32 ix)
+bset_obj_store(pTHXo_ void *obj, I32 ix)
 {
     if (ix > bytecode_obj_list_fill) {
        if (bytecode_obj_list_fill == -1)
@@ -103,7 +114,7 @@ bset_obj_store(void *obj, I32 ix)
 }
 
 void
-byterun(pTHX_ struct bytestream bs)
+byterun(pTHXo_ struct bytestream bs)
 {
     dTHR;
     int insn;
@@ -237,6 +248,8 @@ print BYTERUN_H <<'EOT';
 EOT
 
 print BYTERUN_H <<'EOT';
+EXT void byterun(pTHXo_ struct bytestream bs);
+
 #define INIT_SPECIALSV_LIST STMT_START { \
 EOT
 for ($i = 0; $i < @specialsv; $i++) {
diff --git a/cv.h b/cv.h
index d862aeb..e060dc8 100644 (file)
--- a/cv.h
+++ b/cv.h
@@ -21,7 +21,7 @@ struct xpvcv {
     HV *       xcv_stash;
     OP *       xcv_start;
     OP *       xcv_root;
-    void      (*xcv_xsub) (pTHX_ CV*);
+    void       (*xcv_xsub) (pTHXo_ CV*);
     ANY                xcv_xsubany;
     GV *       xcv_gv;
     GV *       xcv_filegv;
diff --git a/embed.h b/embed.h
index 02a2cc2..767b707 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -12,6 +12,8 @@
 #if !defined(PERL_OBJECT)
 #if !defined(PERL_IMPLICIT_CONTEXT)
 
+#if defined(PERL_OBJECT)
+#endif
 #define amagic_call            Perl_amagic_call
 #define Gv_AMupdate            Perl_Gv_AMupdate
 #define append_elem            Perl_append_elem
@@ -80,6 +82,7 @@
 #define get_op_names           Perl_get_op_names
 #define get_no_modify          Perl_get_no_modify
 #define get_opargs             Perl_get_opargs
+#define get_ppaddr             Perl_get_ppaddr
 #define cxinc                  Perl_cxinc
 #define deb                    Perl_deb
 #define deb_growlevel          Perl_deb_growlevel
 #define pad_reset              Perl_pad_reset
 #define pad_swipe              Perl_pad_swipe
 #define peep                   Perl_peep
+#if defined(PERL_OBJECT)
+#else
+#endif
 #define call_atexit            Perl_call_atexit
 #define call_argv              Perl_call_argv
 #define call_method            Perl_call_method
 #define runops_standard                Perl_runops_standard
 #define runops_debug           Perl_runops_debug
 #if defined(WIN32)
+#if defined(PERL_OBJECT)
+#define ErrorNo                        Perl_ErrorNo
+#else
 #define ErrorNo                        Perl_ErrorNo
 #endif
+#endif
 #define sv_catpvf_mg           Perl_sv_catpvf_mg
 #define sv_catpv_mg            Perl_sv_catpv_mg
 #define sv_catpvn_mg           Perl_sv_catpvn_mg
 #define tmps_grow              Perl_tmps_grow
 #define sv_rvweaken            Perl_sv_rvweaken
 #define magic_killbackrefs     Perl_magic_killbackrefs
-#if defined(PERL_IN_AV_C)
+#if defined(PERL_OBJECT)
+#endif
+#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 #define avhv_index_sv          S_avhv_index_sv
 #endif
-#if defined(PERL_IN_DOOP_C)
+#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
 #define do_trans_CC_simple     S_do_trans_CC_simple
 #define do_trans_CC_count      S_do_trans_CC_count
 #define do_trans_CC_complex    S_do_trans_CC_complex
 #define do_trans_UC_trivial    S_do_trans_UC_trivial
 #define do_trans_CU_trivial    S_do_trans_CU_trivial
 #endif
-#if defined(PERL_IN_GV_C)
+#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
 #define gv_init_sv             S_gv_init_sv
 #endif
-#if defined(PERL_IN_HV_C)
+#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
 #define hsplit                 S_hsplit
 #define hfreeentries           S_hfreeentries
 #define more_he                        S_more_he
 #define save_hek               S_save_hek
 #define hv_magic_check         S_hv_magic_check
 #endif
-#if defined(PERL_IN_MG_C)
+#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
 #define save_magic             S_save_magic
 #define magic_methpack         S_magic_methpack
 #define magic_methcall         S_magic_methcall
 #define unwind_handler_stack   S_unwind_handler_stack
 #define restore_magic          S_restore_magic
 #endif
-#if defined(PERL_IN_OP_C)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 #define list_assignment                S_list_assignment
 #define bad_type               S_bad_type
 #define modkids                        S_modkids
 #define Slab_Alloc             S_Slab_Alloc
 #  endif
 #endif
-#if defined(PERL_IN_PERL_C)
+#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
 #define find_beginning         S_find_beginning
 #define forbid_setid           S_forbid_setid
 #define incpush                        S_incpush
 #define open_script            S_open_script
 #define usage                  S_usage
 #define validate_suid          S_validate_suid
-#define read_e_script          S_read_e_script
 #  if defined(IAMSUID)
 #define fd_on_nosuid_fs                S_fd_on_nosuid_fs
 #  endif
 #define init_main_thread       S_init_main_thread
 #  endif
 #endif
-#if defined(PERL_IN_PP_C)
+#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
 #define doencodes              S_doencodes
 #define refto                  S_refto
 #define seed                   S_seed
 #define is_an_int              S_is_an_int
 #define div128                 S_div128
 #endif
-#if defined(PERL_IN_PP_CTL_C)
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
 #define docatch                        S_docatch
 #define docatch_body           S_docatch_body
 #define dofindlabel            S_dofindlabel
 #define amagic_cmp             S_amagic_cmp
 #define amagic_cmp_locale      S_amagic_cmp_locale
 #endif
-#if defined(PERL_IN_PP_HOT_C)
+#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
 #define get_db_sub             S_get_db_sub
 #  if defined(USE_THREADS)
 #define unset_cvowner          S_unset_cvowner
 #  endif
 #endif
-#if defined(PERL_IN_PP_SYS_C)
+#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
 #define doform                 S_doform
 #define emulate_eaccess                S_emulate_eaccess
 #  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
 #define dooneliner             S_dooneliner
 #  endif
 #endif
-#if defined(PERL_IN_REGCOMP_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
 #define reg                    S_reg
 #define reganode               S_reganode
 #define regatom                        S_regatom
 #define regpposixcc            S_regpposixcc
 #define clear_re               S_clear_re
 #endif
-#if defined(PERL_IN_REGEXEC_C)
+#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
 #define regmatch               S_regmatch
 #define regrepeat              S_regrepeat
 #define regrepeat_hard         S_regrepeat_hard
 #define reghop                 S_reghop
 #define reghopmaybe            S_reghopmaybe
 #endif
-#if defined(PERL_IN_RUN_C)
+#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
 #define debprof                        S_debprof
 #endif
-#if defined(PERL_IN_SCOPE_C)
+#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
 #define save_scalar_at         S_save_scalar_at
 #endif
-#if defined(PERL_IN_SV_C)
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 #define asIV                   S_asIV
 #define asUV                   S_asUV
 #define more_sv                        S_more_sv
 #define del_sv                 S_del_sv
 #  endif
 #endif
-#if defined(PERL_IN_TOKE_C)
+#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
 #define check_uni              S_check_uni
 #define force_next             S_force_next
 #define force_version          S_force_version
 #define win32_textfilter       S_win32_textfilter
 #  endif
 #endif
-#if defined(PERL_IN_UNIVERSAL_C)
+#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
 #define isa_lookup             S_isa_lookup
 #endif
-#if defined(PERL_IN_UTIL_C)
+#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 #define mess_alloc             S_mess_alloc
 #define do_croak               S_do_croak
 #define do_warn                        S_do_warn
+#define do_die                 S_do_die
 #  if defined(LEAKTEST)
 #define xstat                  S_xstat
 #  endif
 
 #else  /* PERL_IMPLICIT_CONTEXT */
 
+#if defined(PERL_OBJECT)
+#endif
 #define amagic_call(a,b,c,d)   Perl_amagic_call(aTHX_ a,b,c,d)
 #define Gv_AMupdate(a)         Perl_Gv_AMupdate(aTHX_ a)
 #define append_elem(a,b,c)     Perl_append_elem(aTHX_ a,b,c)
 #define get_op_names()         Perl_get_op_names(aTHX)
 #define get_no_modify()                Perl_get_no_modify(aTHX)
 #define get_opargs()           Perl_get_opargs(aTHX)
+#define get_ppaddr()           Perl_get_ppaddr(aTHX)
 #define cxinc()                        Perl_cxinc(aTHX)
 #define deb_growlevel()                Perl_deb_growlevel(aTHX)
 #define debprofdump()          Perl_debprofdump(aTHX)
 #define pad_reset()            Perl_pad_reset(aTHX)
 #define pad_swipe(a)           Perl_pad_swipe(aTHX_ a)
 #define peep(a)                        Perl_peep(aTHX_ a)
+#if defined(PERL_OBJECT)
+#else
+#endif
 #define call_atexit(a,b)       Perl_call_atexit(aTHX_ a,b)
 #define call_argv(a,b,c)       Perl_call_argv(aTHX_ a,b,c)
 #define call_method(a,b)       Perl_call_method(aTHX_ a,b)
 #define runops_standard()      Perl_runops_standard(aTHX)
 #define runops_debug()         Perl_runops_debug(aTHX)
 #if defined(WIN32)
+#if defined(PERL_OBJECT)
+#define ErrorNo()              Perl_ErrorNo(aTHX)
+#else
 #define ErrorNo()              Perl_ErrorNo(aTHX)
 #endif
+#endif
 #define sv_catpv_mg(a,b)       Perl_sv_catpv_mg(aTHX_ a,b)
 #define sv_catpvn_mg(a,b,c)    Perl_sv_catpvn_mg(aTHX_ a,b,c)
 #define sv_catsv_mg(a,b)       Perl_sv_catsv_mg(aTHX_ a,b)
 #define tmps_grow(a)           Perl_tmps_grow(aTHX_ a)
 #define sv_rvweaken(a)         Perl_sv_rvweaken(aTHX_ a)
 #define magic_killbackrefs(a,b)        Perl_magic_killbackrefs(aTHX_ a,b)
-#if defined(PERL_IN_AV_C)
+#if defined(PERL_OBJECT)
+#endif
+#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 #define avhv_index_sv(a)       S_avhv_index_sv(aTHX_ a)
 #endif
-#if defined(PERL_IN_DOOP_C)
+#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
 #define do_trans_CC_simple(a)  S_do_trans_CC_simple(aTHX_ a)
 #define do_trans_CC_count(a)   S_do_trans_CC_count(aTHX_ a)
 #define do_trans_CC_complex(a) S_do_trans_CC_complex(aTHX_ a)
 #define do_trans_UC_trivial(a) S_do_trans_UC_trivial(aTHX_ a)
 #define do_trans_CU_trivial(a) S_do_trans_CU_trivial(aTHX_ a)
 #endif
-#if defined(PERL_IN_GV_C)
+#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
 #define gv_init_sv(a,b)                S_gv_init_sv(aTHX_ a,b)
 #endif
-#if defined(PERL_IN_HV_C)
+#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
 #define hsplit(a)              S_hsplit(aTHX_ a)
 #define hfreeentries(a)                S_hfreeentries(aTHX_ a)
 #define more_he()              S_more_he(aTHX)
 #define save_hek(a,b,c)                S_save_hek(aTHX_ a,b,c)
 #define hv_magic_check(a,b,c)  S_hv_magic_check(aTHX_ a,b,c)
 #endif
-#if defined(PERL_IN_MG_C)
+#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
 #define save_magic(a,b)                S_save_magic(aTHX_ a,b)
 #define magic_methpack(a,b,c)  S_magic_methpack(aTHX_ a,b,c)
 #define magic_methcall(a,b,c,d,e,f)    S_magic_methcall(aTHX_ a,b,c,d,e,f)
 #define unwind_handler_stack(a)        S_unwind_handler_stack(aTHX_ a)
 #define restore_magic(a)       S_restore_magic(aTHX_ a)
 #endif
-#if defined(PERL_IN_OP_C)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 #define list_assignment(a)     S_list_assignment(aTHX_ a)
 #define bad_type(a,b,c,d)      S_bad_type(aTHX_ a,b,c,d)
 #define modkids(a,b)           S_modkids(aTHX_ a,b)
 #define Slab_Alloc(a,b)                S_Slab_Alloc(aTHX_ a,b)
 #  endif
 #endif
-#if defined(PERL_IN_PERL_C)
+#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
 #define find_beginning()       S_find_beginning(aTHX)
 #define forbid_setid(a)                S_forbid_setid(aTHX_ a)
 #define incpush(a,b)           S_incpush(aTHX_ a,b)
 #define open_script(a,b,c,d)   S_open_script(aTHX_ a,b,c,d)
 #define usage(a)               S_usage(aTHX_ a)
 #define validate_suid(a,b,c)   S_validate_suid(aTHX_ a,b,c)
-#define read_e_script(a,b,c)   S_read_e_script(aTHX_ a,b,c)
 #  if defined(IAMSUID)
 #define fd_on_nosuid_fs(a)     S_fd_on_nosuid_fs(aTHX_ a)
 #  endif
 #define init_main_thread()     S_init_main_thread(aTHX)
 #  endif
 #endif
-#if defined(PERL_IN_PP_C)
+#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
 #define doencodes(a,b,c)       S_doencodes(aTHX_ a,b,c)
 #define refto(a)               S_refto(aTHX_ a)
 #define seed()                 S_seed(aTHX)
 #define is_an_int(a,b)         S_is_an_int(aTHX_ a,b)
 #define div128(a,b)            S_div128(aTHX_ a,b)
 #endif
-#if defined(PERL_IN_PP_CTL_C)
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
 #define docatch(a)             S_docatch(aTHX_ a)
 #define docatch_body(a)                S_docatch_body(aTHX_ a)
 #define dofindlabel(a,b,c,d)   S_dofindlabel(aTHX_ a,b,c,d)
 #define amagic_cmp(a,b)                S_amagic_cmp(aTHX_ a,b)
 #define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b)
 #endif
-#if defined(PERL_IN_PP_HOT_C)
+#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
 #define get_db_sub(a,b)                S_get_db_sub(aTHX_ a,b)
 #  if defined(USE_THREADS)
 #define unset_cvowner(a)       S_unset_cvowner(aTHX_ a)
 #  endif
 #endif
-#if defined(PERL_IN_PP_SYS_C)
+#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
 #define doform(a,b,c)          S_doform(aTHX_ a,b,c)
 #define emulate_eaccess(a,b)   S_emulate_eaccess(aTHX_ a,b)
 #  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
 #define dooneliner(a,b)                S_dooneliner(aTHX_ a,b)
 #  endif
 #endif
-#if defined(PERL_IN_REGCOMP_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
 #define reg(a,b)               S_reg(aTHX_ a,b)
 #define reganode(a,b)          S_reganode(aTHX_ a,b)
 #define regatom(a)             S_regatom(aTHX_ a)
 #define regpposixcc(a)         S_regpposixcc(aTHX_ a)
 #define clear_re(a)            S_clear_re(aTHX_ a)
 #endif
-#if defined(PERL_IN_REGEXEC_C)
+#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
 #define regmatch(a)            S_regmatch(aTHX_ a)
 #define regrepeat(a,b)         S_regrepeat(aTHX_ a,b)
 #define regrepeat_hard(a,b,c)  S_regrepeat_hard(aTHX_ a,b,c)
 #define reghop(a,b)            S_reghop(aTHX_ a,b)
 #define reghopmaybe(a,b)       S_reghopmaybe(aTHX_ a,b)
 #endif
-#if defined(PERL_IN_RUN_C)
+#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
 #define debprof(a)             S_debprof(aTHX_ a)
 #endif
-#if defined(PERL_IN_SCOPE_C)
+#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
 #define save_scalar_at(a)      S_save_scalar_at(aTHX_ a)
 #endif
-#if defined(PERL_IN_SV_C)
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 #define asIV(a)                        S_asIV(aTHX_ a)
 #define asUV(a)                        S_asUV(aTHX_ a)
 #define more_sv()              S_more_sv(aTHX)
 #define del_sv(a)              S_del_sv(aTHX_ a)
 #  endif
 #endif
-#if defined(PERL_IN_TOKE_C)
+#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
 #define check_uni()            S_check_uni(aTHX)
 #define force_next(a)          S_force_next(aTHX_ a)
 #define force_version(a)       S_force_version(aTHX_ a)
 #define win32_textfilter(a,b,c)        S_win32_textfilter(aTHX_ a,b,c)
 #  endif
 #endif
-#if defined(PERL_IN_UNIVERSAL_C)
+#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
 #define isa_lookup(a,b,c,d)    S_isa_lookup(aTHX_ a,b,c,d)
 #endif
-#if defined(PERL_IN_UTIL_C)
+#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 #define mess_alloc()           S_mess_alloc(aTHX)
 #define do_croak(a,b)          S_do_croak(aTHX_ a,b)
 #define do_warn(a,b)           S_do_warn(aTHX_ a,b)
+#define do_die(a,b)            S_do_die(aTHX_ a,b)
 #  if defined(LEAKTEST)
 #define xstat(a)               S_xstat(aTHX_ a)
 #  endif
 #endif /* PERL_IMPLICIT_CONTEXT */
 #else  /* PERL_OBJECT */
 
-#define Perl_amagic_call       CPerlObj::amagic_call
-#define Perl_Gv_AMupdate       CPerlObj::Gv_AMupdate
-#define Perl_append_elem       CPerlObj::append_elem
-#define Perl_append_list       CPerlObj::append_list
-#define Perl_apply             CPerlObj::apply
-#define Perl_assertref         CPerlObj::assertref
-#define Perl_avhv_exists_ent   CPerlObj::avhv_exists_ent
-#define Perl_avhv_fetch_ent    CPerlObj::avhv_fetch_ent
-#define Perl_avhv_iternext     CPerlObj::avhv_iternext
-#define Perl_avhv_iterval      CPerlObj::avhv_iterval
-#define Perl_avhv_keys         CPerlObj::avhv_keys
-#define Perl_av_clear          CPerlObj::av_clear
-#define Perl_av_extend         CPerlObj::av_extend
-#define Perl_av_fake           CPerlObj::av_fake
-#define Perl_av_fetch          CPerlObj::av_fetch
-#define Perl_av_fill           CPerlObj::av_fill
-#define Perl_av_len            CPerlObj::av_len
-#define Perl_av_make           CPerlObj::av_make
-#define Perl_av_pop            CPerlObj::av_pop
-#define Perl_av_push           CPerlObj::av_push
-#define Perl_av_reify          CPerlObj::av_reify
-#define Perl_av_shift          CPerlObj::av_shift
-#define Perl_av_store          CPerlObj::av_store
-#define Perl_av_undef          CPerlObj::av_undef
-#define Perl_av_unshift                CPerlObj::av_unshift
-#define Perl_bind_match                CPerlObj::bind_match
-#define Perl_block_end         CPerlObj::block_end
-#define Perl_block_gimme       CPerlObj::block_gimme
-#define Perl_block_start       CPerlObj::block_start
-#define Perl_boot_core_UNIVERSAL       CPerlObj::boot_core_UNIVERSAL
-#define Perl_call_list         CPerlObj::call_list
-#define Perl_cando             CPerlObj::cando
-#define Perl_cast_ulong                CPerlObj::cast_ulong
-#define Perl_cast_i32          CPerlObj::cast_i32
-#define Perl_cast_iv           CPerlObj::cast_iv
-#define Perl_cast_uv           CPerlObj::cast_uv
+#if defined(PERL_OBJECT)
+#endif
+#define Perl_amagic_call       CPerlObj::Perl_amagic_call
+#define amagic_call            Perl_amagic_call
+#define Perl_Gv_AMupdate       CPerlObj::Perl_Gv_AMupdate
+#define Gv_AMupdate            Perl_Gv_AMupdate
+#define Perl_append_elem       CPerlObj::Perl_append_elem
+#define append_elem            Perl_append_elem
+#define Perl_append_list       CPerlObj::Perl_append_list
+#define append_list            Perl_append_list
+#define Perl_apply             CPerlObj::Perl_apply
+#define apply                  Perl_apply
+#define Perl_assertref         CPerlObj::Perl_assertref
+#define assertref              Perl_assertref
+#define Perl_avhv_exists_ent   CPerlObj::Perl_avhv_exists_ent
+#define avhv_exists_ent                Perl_avhv_exists_ent
+#define Perl_avhv_fetch_ent    CPerlObj::Perl_avhv_fetch_ent
+#define avhv_fetch_ent         Perl_avhv_fetch_ent
+#define Perl_avhv_iternext     CPerlObj::Perl_avhv_iternext
+#define avhv_iternext          Perl_avhv_iternext
+#define Perl_avhv_iterval      CPerlObj::Perl_avhv_iterval
+#define avhv_iterval           Perl_avhv_iterval
+#define Perl_avhv_keys         CPerlObj::Perl_avhv_keys
+#define avhv_keys              Perl_avhv_keys
+#define Perl_av_clear          CPerlObj::Perl_av_clear
+#define av_clear               Perl_av_clear
+#define Perl_av_extend         CPerlObj::Perl_av_extend
+#define av_extend              Perl_av_extend
+#define Perl_av_fake           CPerlObj::Perl_av_fake
+#define av_fake                        Perl_av_fake
+#define Perl_av_fetch          CPerlObj::Perl_av_fetch
+#define av_fetch               Perl_av_fetch
+#define Perl_av_fill           CPerlObj::Perl_av_fill
+#define av_fill                        Perl_av_fill
+#define Perl_av_len            CPerlObj::Perl_av_len
+#define av_len                 Perl_av_len
+#define Perl_av_make           CPerlObj::Perl_av_make
+#define av_make                        Perl_av_make
+#define Perl_av_pop            CPerlObj::Perl_av_pop
+#define av_pop                 Perl_av_pop
+#define Perl_av_push           CPerlObj::Perl_av_push
+#define av_push                        Perl_av_push
+#define Perl_av_reify          CPerlObj::Perl_av_reify
+#define av_reify               Perl_av_reify
+#define Perl_av_shift          CPerlObj::Perl_av_shift
+#define av_shift               Perl_av_shift
+#define Perl_av_store          CPerlObj::Perl_av_store
+#define av_store               Perl_av_store
+#define Perl_av_undef          CPerlObj::Perl_av_undef
+#define av_undef               Perl_av_undef
+#define Perl_av_unshift                CPerlObj::Perl_av_unshift
+#define av_unshift             Perl_av_unshift
+#define Perl_bind_match                CPerlObj::Perl_bind_match
+#define bind_match             Perl_bind_match
+#define Perl_block_end         CPerlObj::Perl_block_end
+#define block_end              Perl_block_end
+#define Perl_block_gimme       CPerlObj::Perl_block_gimme
+#define block_gimme            Perl_block_gimme
+#define Perl_block_start       CPerlObj::Perl_block_start
+#define block_start            Perl_block_start
+#define Perl_boot_core_UNIVERSAL       CPerlObj::Perl_boot_core_UNIVERSAL
+#define boot_core_UNIVERSAL    Perl_boot_core_UNIVERSAL
+#define Perl_call_list         CPerlObj::Perl_call_list
+#define call_list              Perl_call_list
+#define Perl_cando             CPerlObj::Perl_cando
+#define cando                  Perl_cando
+#define Perl_cast_ulong                CPerlObj::Perl_cast_ulong
+#define cast_ulong             Perl_cast_ulong
+#define Perl_cast_i32          CPerlObj::Perl_cast_i32
+#define cast_i32               Perl_cast_i32
+#define Perl_cast_iv           CPerlObj::Perl_cast_iv
+#define cast_iv                        Perl_cast_iv
+#define Perl_cast_uv           CPerlObj::Perl_cast_uv
+#define cast_uv                        Perl_cast_uv
 #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-#define Perl_my_chsize         CPerlObj::my_chsize
+#define Perl_my_chsize         CPerlObj::Perl_my_chsize
+#define my_chsize              Perl_my_chsize
 #endif
 #if defined(USE_THREADS)
-#define Perl_condpair_magic    CPerlObj::condpair_magic
+#define Perl_condpair_magic    CPerlObj::Perl_condpair_magic
+#define condpair_magic         Perl_condpair_magic
 #endif
-#define Perl_convert           CPerlObj::convert
-#define Perl_croak             CPerlObj::croak
+#define Perl_convert           CPerlObj::Perl_convert
+#define convert                        Perl_convert
+#define Perl_croak             CPerlObj::Perl_croak
+#define croak                  Perl_croak
 #if defined(PERL_IMPLICIT_CONTEXT)
-#define Perl_croak_nocontext   CPerlObj::croak_nocontext
-#define Perl_die_nocontext     CPerlObj::die_nocontext
-#define Perl_form_nocontext    CPerlObj::form_nocontext
-#define Perl_warn_nocontext    CPerlObj::warn_nocontext
-#define Perl_newSVpvf_nocontext        CPerlObj::newSVpvf_nocontext
-#define Perl_sv_catpvf_nocontext       CPerlObj::sv_catpvf_nocontext
-#define Perl_sv_setpvf_nocontext       CPerlObj::sv_setpvf_nocontext
-#define Perl_sv_catpvf_mg_nocontext    CPerlObj::sv_catpvf_mg_nocontext
-#define Perl_sv_setpvf_mg_nocontext    CPerlObj::sv_setpvf_mg_nocontext
-#endif
-#define Perl_cv_ckproto                CPerlObj::cv_ckproto
-#define Perl_cv_clone          CPerlObj::cv_clone
-#define Perl_cv_const_sv       CPerlObj::cv_const_sv
-#define Perl_op_const_sv       CPerlObj::op_const_sv
-#define Perl_cv_undef          CPerlObj::cv_undef
-#define Perl_cx_dump           CPerlObj::cx_dump
-#define Perl_filter_add                CPerlObj::filter_add
-#define Perl_filter_del                CPerlObj::filter_del
-#define Perl_filter_read       CPerlObj::filter_read
-#define Perl_get_op_descs      CPerlObj::get_op_descs
-#define Perl_get_op_names      CPerlObj::get_op_names
-#define Perl_get_no_modify     CPerlObj::get_no_modify
-#define Perl_get_opargs                CPerlObj::get_opargs
-#define Perl_cxinc             CPerlObj::cxinc
-#define Perl_deb               CPerlObj::deb
-#define Perl_deb_growlevel     CPerlObj::deb_growlevel
-#define Perl_debprofdump       CPerlObj::debprofdump
-#define Perl_debop             CPerlObj::debop
-#define Perl_debstack          CPerlObj::debstack
-#define Perl_debstackptrs      CPerlObj::debstackptrs
-#define Perl_delimcpy          CPerlObj::delimcpy
-#define Perl_deprecate         CPerlObj::deprecate
-#define Perl_die               CPerlObj::die
-#define Perl_die_where         CPerlObj::die_where
-#define Perl_dounwind          CPerlObj::dounwind
-#define Perl_do_aexec          CPerlObj::do_aexec
-#define Perl_do_binmode                CPerlObj::do_binmode
-#define Perl_do_chop           CPerlObj::do_chop
-#define Perl_do_close          CPerlObj::do_close
-#define Perl_do_eof            CPerlObj::do_eof
-#define Perl_do_exec           CPerlObj::do_exec
+#define Perl_croak_nocontext   CPerlObj::Perl_croak_nocontext
+#define croak_nocontext                Perl_croak_nocontext
+#define Perl_die_nocontext     CPerlObj::Perl_die_nocontext
+#define die_nocontext          Perl_die_nocontext
+#define Perl_form_nocontext    CPerlObj::Perl_form_nocontext
+#define form_nocontext         Perl_form_nocontext
+#define Perl_warn_nocontext    CPerlObj::Perl_warn_nocontext
+#define warn_nocontext         Perl_warn_nocontext
+#define Perl_newSVpvf_nocontext        CPerlObj::Perl_newSVpvf_nocontext
+#define newSVpvf_nocontext     Perl_newSVpvf_nocontext
+#define Perl_sv_catpvf_nocontext       CPerlObj::Perl_sv_catpvf_nocontext
+#define sv_catpvf_nocontext    Perl_sv_catpvf_nocontext
+#define Perl_sv_setpvf_nocontext       CPerlObj::Perl_sv_setpvf_nocontext
+#define sv_setpvf_nocontext    Perl_sv_setpvf_nocontext
+#define Perl_sv_catpvf_mg_nocontext    CPerlObj::Perl_sv_catpvf_mg_nocontext
+#define sv_catpvf_mg_nocontext Perl_sv_catpvf_mg_nocontext
+#define Perl_sv_setpvf_mg_nocontext    CPerlObj::Perl_sv_setpvf_mg_nocontext
+#define sv_setpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext
+#endif
+#define Perl_cv_ckproto                CPerlObj::Perl_cv_ckproto
+#define cv_ckproto             Perl_cv_ckproto
+#define Perl_cv_clone          CPerlObj::Perl_cv_clone
+#define cv_clone               Perl_cv_clone
+#define Perl_cv_const_sv       CPerlObj::Perl_cv_const_sv
+#define cv_const_sv            Perl_cv_const_sv
+#define Perl_op_const_sv       CPerlObj::Perl_op_const_sv
+#define op_const_sv            Perl_op_const_sv
+#define Perl_cv_undef          CPerlObj::Perl_cv_undef
+#define cv_undef               Perl_cv_undef
+#define Perl_cx_dump           CPerlObj::Perl_cx_dump
+#define cx_dump                        Perl_cx_dump
+#define Perl_filter_add                CPerlObj::Perl_filter_add
+#define filter_add             Perl_filter_add
+#define Perl_filter_del                CPerlObj::Perl_filter_del
+#define filter_del             Perl_filter_del
+#define Perl_filter_read       CPerlObj::Perl_filter_read
+#define filter_read            Perl_filter_read
+#define Perl_get_op_descs      CPerlObj::Perl_get_op_descs
+#define get_op_descs           Perl_get_op_descs
+#define Perl_get_op_names      CPerlObj::Perl_get_op_names
+#define get_op_names           Perl_get_op_names
+#define Perl_get_no_modify     CPerlObj::Perl_get_no_modify
+#define get_no_modify          Perl_get_no_modify
+#define Perl_get_opargs                CPerlObj::Perl_get_opargs
+#define get_opargs             Perl_get_opargs
+#define Perl_get_ppaddr                CPerlObj::Perl_get_ppaddr
+#define get_ppaddr             Perl_get_ppaddr
+#define Perl_cxinc             CPerlObj::Perl_cxinc
+#define cxinc                  Perl_cxinc
+#define Perl_deb               CPerlObj::Perl_deb
+#define deb                    Perl_deb
+#define Perl_deb_growlevel     CPerlObj::Perl_deb_growlevel
+#define deb_growlevel          Perl_deb_growlevel
+#define Perl_debprofdump       CPerlObj::Perl_debprofdump
+#define debprofdump            Perl_debprofdump
+#define Perl_debop             CPerlObj::Perl_debop
+#define debop                  Perl_debop
+#define Perl_debstack          CPerlObj::Perl_debstack
+#define debstack               Perl_debstack
+#define Perl_debstackptrs      CPerlObj::Perl_debstackptrs
+#define debstackptrs           Perl_debstackptrs
+#define Perl_delimcpy          CPerlObj::Perl_delimcpy
+#define delimcpy               Perl_delimcpy
+#define Perl_deprecate         CPerlObj::Perl_deprecate
+#define deprecate              Perl_deprecate
+#define Perl_die               CPerlObj::Perl_die
+#define die                    Perl_die
+#define Perl_die_where         CPerlObj::Perl_die_where
+#define die_where              Perl_die_where
+#define Perl_dounwind          CPerlObj::Perl_dounwind
+#define dounwind               Perl_dounwind
+#define Perl_do_aexec          CPerlObj::Perl_do_aexec
+#define do_aexec               Perl_do_aexec
+#define Perl_do_binmode                CPerlObj::Perl_do_binmode
+#define do_binmode             Perl_do_binmode
+#define Perl_do_chop           CPerlObj::Perl_do_chop
+#define do_chop                        Perl_do_chop
+#define Perl_do_close          CPerlObj::Perl_do_close
+#define do_close               Perl_do_close
+#define Perl_do_eof            CPerlObj::Perl_do_eof
+#define do_eof                 Perl_do_eof
+#define Perl_do_exec           CPerlObj::Perl_do_exec
+#define do_exec                        Perl_do_exec
 #if !defined(WIN32)
-#define Perl_do_exec3          CPerlObj::do_exec3
+#define Perl_do_exec3          CPerlObj::Perl_do_exec3
+#define do_exec3               Perl_do_exec3
 #endif
-#define Perl_do_execfree       CPerlObj::do_execfree
+#define Perl_do_execfree       CPerlObj::Perl_do_execfree
+#define do_execfree            Perl_do_execfree
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-#define Perl_do_ipcctl         CPerlObj::do_ipcctl
-#define Perl_do_ipcget         CPerlObj::do_ipcget
-#define Perl_do_msgrcv         CPerlObj::do_msgrcv
-#define Perl_do_msgsnd         CPerlObj::do_msgsnd
-#define Perl_do_semop          CPerlObj::do_semop
-#define Perl_do_shmio          CPerlObj::do_shmio
-#endif
-#define Perl_do_join           CPerlObj::do_join
-#define Perl_do_kv             CPerlObj::do_kv
-#define Perl_do_open           CPerlObj::do_open
-#define Perl_do_pipe           CPerlObj::do_pipe
-#define Perl_do_print          CPerlObj::do_print
-#define Perl_do_readline       CPerlObj::do_readline
-#define Perl_do_chomp          CPerlObj::do_chomp
-#define Perl_do_seek           CPerlObj::do_seek
-#define Perl_do_sprintf                CPerlObj::do_sprintf
-#define Perl_do_sysseek                CPerlObj::do_sysseek
-#define Perl_do_tell           CPerlObj::do_tell
-#define Perl_do_trans          CPerlObj::do_trans
-#define Perl_do_vecset         CPerlObj::do_vecset
-#define Perl_do_vop            CPerlObj::do_vop
-#define Perl_dofile            CPerlObj::dofile
-#define Perl_dowantarray       CPerlObj::dowantarray
-#define Perl_dump_all          CPerlObj::dump_all
-#define Perl_dump_eval         CPerlObj::dump_eval
+#define Perl_do_ipcctl         CPerlObj::Perl_do_ipcctl
+#define do_ipcctl              Perl_do_ipcctl
+#define Perl_do_ipcget         CPerlObj::Perl_do_ipcget
+#define do_ipcget              Perl_do_ipcget
+#define Perl_do_msgrcv         CPerlObj::Perl_do_msgrcv
+#define do_msgrcv              Perl_do_msgrcv
+#define Perl_do_msgsnd         CPerlObj::Perl_do_msgsnd
+#define do_msgsnd              Perl_do_msgsnd
+#define Perl_do_semop          CPerlObj::Perl_do_semop
+#define do_semop               Perl_do_semop
+#define Perl_do_shmio          CPerlObj::Perl_do_shmio
+#define do_shmio               Perl_do_shmio
+#endif
+#define Perl_do_join           CPerlObj::Perl_do_join
+#define do_join                        Perl_do_join
+#define Perl_do_kv             CPerlObj::Perl_do_kv
+#define do_kv                  Perl_do_kv
+#define Perl_do_open           CPerlObj::Perl_do_open
+#define do_open                        Perl_do_open
+#define Perl_do_pipe           CPerlObj::Perl_do_pipe
+#define do_pipe                        Perl_do_pipe
+#define Perl_do_print          CPerlObj::Perl_do_print
+#define do_print               Perl_do_print
+#define Perl_do_readline       CPerlObj::Perl_do_readline
+#define do_readline            Perl_do_readline
+#define Perl_do_chomp          CPerlObj::Perl_do_chomp
+#define do_chomp               Perl_do_chomp
+#define Perl_do_seek           CPerlObj::Perl_do_seek
+#define do_seek                        Perl_do_seek
+#define Perl_do_sprintf                CPerlObj::Perl_do_sprintf
+#define do_sprintf             Perl_do_sprintf
+#define Perl_do_sysseek                CPerlObj::Perl_do_sysseek
+#define do_sysseek             Perl_do_sysseek
+#define Perl_do_tell           CPerlObj::Perl_do_tell
+#define do_tell                        Perl_do_tell
+#define Perl_do_trans          CPerlObj::Perl_do_trans
+#define do_trans               Perl_do_trans
+#define Perl_do_vecset         CPerlObj::Perl_do_vecset
+#define do_vecset              Perl_do_vecset
+#define Perl_do_vop            CPerlObj::Perl_do_vop
+#define do_vop                 Perl_do_vop
+#define Perl_dofile            CPerlObj::Perl_dofile
+#define dofile                 Perl_dofile
+#define Perl_dowantarray       CPerlObj::Perl_dowantarray
+#define dowantarray            Perl_dowantarray
+#define Perl_dump_all          CPerlObj::Perl_dump_all
+#define dump_all               Perl_dump_all
+#define Perl_dump_eval         CPerlObj::Perl_dump_eval
+#define dump_eval              Perl_dump_eval
 #if defined(DUMP_FDS)
-#define Perl_dump_fds          CPerlObj::dump_fds
-#endif
-#define Perl_dump_form         CPerlObj::dump_form
-#define Perl_gv_dump           CPerlObj::gv_dump
-#define Perl_op_dump           CPerlObj::op_dump
-#define Perl_pmop_dump         CPerlObj::pmop_dump
-#define Perl_dump_packsubs     CPerlObj::dump_packsubs
-#define Perl_dump_sub          CPerlObj::dump_sub
-#define Perl_fbm_compile       CPerlObj::fbm_compile
-#define Perl_fbm_instr         CPerlObj::fbm_instr
-#define Perl_find_script       CPerlObj::find_script
+#define Perl_dump_fds          CPerlObj::Perl_dump_fds
+#define dump_fds               Perl_dump_fds
+#endif
+#define Perl_dump_form         CPerlObj::Perl_dump_form
+#define dump_form              Perl_dump_form
+#define Perl_gv_dump           CPerlObj::Perl_gv_dump
+#define gv_dump                        Perl_gv_dump
+#define Perl_op_dump           CPerlObj::Perl_op_dump
+#define op_dump                        Perl_op_dump
+#define Perl_pmop_dump         CPerlObj::Perl_pmop_dump
+#define pmop_dump              Perl_pmop_dump
+#define Perl_dump_packsubs     CPerlObj::Perl_dump_packsubs
+#define dump_packsubs          Perl_dump_packsubs
+#define Perl_dump_sub          CPerlObj::Perl_dump_sub
+#define dump_sub               Perl_dump_sub
+#define Perl_fbm_compile       CPerlObj::Perl_fbm_compile
+#define fbm_compile            Perl_fbm_compile
+#define Perl_fbm_instr         CPerlObj::Perl_fbm_instr
+#define fbm_instr              Perl_fbm_instr
+#define Perl_find_script       CPerlObj::Perl_find_script
+#define find_script            Perl_find_script
 #if defined(USE_THREADS)
-#define Perl_find_threadsv     CPerlObj::find_threadsv
+#define Perl_find_threadsv     CPerlObj::Perl_find_threadsv
+#define find_threadsv          Perl_find_threadsv
 #endif
-#define Perl_force_list                CPerlObj::force_list
-#define Perl_fold_constants    CPerlObj::fold_constants
-#define Perl_form              CPerlObj::form
-#define Perl_free_tmps         CPerlObj::free_tmps
-#define Perl_gen_constant_list CPerlObj::gen_constant_list
+#define Perl_force_list                CPerlObj::Perl_force_list
+#define force_list             Perl_force_list
+#define Perl_fold_constants    CPerlObj::Perl_fold_constants
+#define fold_constants         Perl_fold_constants
+#define Perl_form              CPerlObj::Perl_form
+#define form                   Perl_form
+#define Perl_free_tmps         CPerlObj::Perl_free_tmps
+#define free_tmps              Perl_free_tmps
+#define Perl_gen_constant_list CPerlObj::Perl_gen_constant_list
+#define gen_constant_list      Perl_gen_constant_list
 #if !defined(HAS_GETENV_LEN)
-#define Perl_getenv_len                CPerlObj::getenv_len
-#endif
-#define Perl_gp_free           CPerlObj::gp_free
-#define Perl_gp_ref            CPerlObj::gp_ref
-#define Perl_gv_AVadd          CPerlObj::gv_AVadd
-#define Perl_gv_HVadd          CPerlObj::gv_HVadd
-#define Perl_gv_IOadd          CPerlObj::gv_IOadd
-#define Perl_gv_autoload4      CPerlObj::gv_autoload4
-#define Perl_gv_check          CPerlObj::gv_check
-#define Perl_gv_efullname      CPerlObj::gv_efullname
-#define Perl_gv_efullname3     CPerlObj::gv_efullname3
-#define Perl_gv_fetchfile      CPerlObj::gv_fetchfile
-#define Perl_gv_fetchmeth      CPerlObj::gv_fetchmeth
-#define Perl_gv_fetchmethod    CPerlObj::gv_fetchmethod
-#define Perl_gv_fetchmethod_autoload   CPerlObj::gv_fetchmethod_autoload
-#define Perl_gv_fetchpv                CPerlObj::gv_fetchpv
-#define Perl_gv_fullname       CPerlObj::gv_fullname
-#define Perl_gv_fullname3      CPerlObj::gv_fullname3
-#define Perl_gv_init           CPerlObj::gv_init
-#define Perl_gv_stashpv                CPerlObj::gv_stashpv
-#define Perl_gv_stashpvn       CPerlObj::gv_stashpvn
-#define Perl_gv_stashsv                CPerlObj::gv_stashsv
-#define Perl_hv_clear          CPerlObj::hv_clear
-#define Perl_hv_delayfree_ent  CPerlObj::hv_delayfree_ent
-#define Perl_hv_delete         CPerlObj::hv_delete
-#define Perl_hv_delete_ent     CPerlObj::hv_delete_ent
-#define Perl_hv_exists         CPerlObj::hv_exists
-#define Perl_hv_exists_ent     CPerlObj::hv_exists_ent
-#define Perl_hv_fetch          CPerlObj::hv_fetch
-#define Perl_hv_fetch_ent      CPerlObj::hv_fetch_ent
-#define Perl_hv_free_ent       CPerlObj::hv_free_ent
-#define Perl_hv_iterinit       CPerlObj::hv_iterinit
-#define Perl_hv_iterkey                CPerlObj::hv_iterkey
-#define Perl_hv_iterkeysv      CPerlObj::hv_iterkeysv
-#define Perl_hv_iternext       CPerlObj::hv_iternext
-#define Perl_hv_iternextsv     CPerlObj::hv_iternextsv
-#define Perl_hv_iterval                CPerlObj::hv_iterval
-#define Perl_hv_ksplit         CPerlObj::hv_ksplit
-#define Perl_hv_magic          CPerlObj::hv_magic
-#define Perl_hv_store          CPerlObj::hv_store
-#define Perl_hv_store_ent      CPerlObj::hv_store_ent
-#define Perl_hv_undef          CPerlObj::hv_undef
-#define Perl_ibcmp             CPerlObj::ibcmp
-#define Perl_ibcmp_locale      CPerlObj::ibcmp_locale
-#define Perl_ingroup           CPerlObj::ingroup
-#define Perl_init_stacks       CPerlObj::init_stacks
-#define Perl_intro_my          CPerlObj::intro_my
-#define Perl_instr             CPerlObj::instr
-#define Perl_io_close          CPerlObj::io_close
-#define Perl_invert            CPerlObj::invert
-#define Perl_is_uni_alnum      CPerlObj::is_uni_alnum
-#define Perl_is_uni_idfirst    CPerlObj::is_uni_idfirst
-#define Perl_is_uni_alpha      CPerlObj::is_uni_alpha
-#define Perl_is_uni_space      CPerlObj::is_uni_space
-#define Perl_is_uni_digit      CPerlObj::is_uni_digit
-#define Perl_is_uni_upper      CPerlObj::is_uni_upper
-#define Perl_is_uni_lower      CPerlObj::is_uni_lower
-#define Perl_is_uni_print      CPerlObj::is_uni_print
-#define Perl_to_uni_upper      CPerlObj::to_uni_upper
-#define Perl_to_uni_title      CPerlObj::to_uni_title
-#define Perl_to_uni_lower      CPerlObj::to_uni_lower
-#define Perl_is_uni_alnum_lc   CPerlObj::is_uni_alnum_lc
-#define Perl_is_uni_idfirst_lc CPerlObj::is_uni_idfirst_lc
-#define Perl_is_uni_alpha_lc   CPerlObj::is_uni_alpha_lc
-#define Perl_is_uni_space_lc   CPerlObj::is_uni_space_lc
-#define Perl_is_uni_digit_lc   CPerlObj::is_uni_digit_lc
-#define Perl_is_uni_upper_lc   CPerlObj::is_uni_upper_lc
-#define Perl_is_uni_lower_lc   CPerlObj::is_uni_lower_lc
-#define Perl_is_uni_print_lc   CPerlObj::is_uni_print_lc
-#define Perl_to_uni_upper_lc   CPerlObj::to_uni_upper_lc
-#define Perl_to_uni_title_lc   CPerlObj::to_uni_title_lc
-#define Perl_to_uni_lower_lc   CPerlObj::to_uni_lower_lc
-#define Perl_is_utf8_alnum     CPerlObj::is_utf8_alnum
-#define Perl_is_utf8_idfirst   CPerlObj::is_utf8_idfirst
-#define Perl_is_utf8_alpha     CPerlObj::is_utf8_alpha
-#define Perl_is_utf8_space     CPerlObj::is_utf8_space
-#define Perl_is_utf8_digit     CPerlObj::is_utf8_digit
-#define Perl_is_utf8_upper     CPerlObj::is_utf8_upper
-#define Perl_is_utf8_lower     CPerlObj::is_utf8_lower
-#define Perl_is_utf8_print     CPerlObj::is_utf8_print
-#define Perl_is_utf8_mark      CPerlObj::is_utf8_mark
-#define Perl_jmaybe            CPerlObj::jmaybe
-#define Perl_keyword           CPerlObj::keyword
-#define Perl_leave_scope       CPerlObj::leave_scope
-#define Perl_lex_end           CPerlObj::lex_end
-#define Perl_lex_start         CPerlObj::lex_start
-#define Perl_linklist          CPerlObj::linklist
-#define Perl_list              CPerlObj::list
-#define Perl_listkids          CPerlObj::listkids
-#define Perl_localize          CPerlObj::localize
-#define Perl_looks_like_number CPerlObj::looks_like_number
-#define Perl_magic_clearenv    CPerlObj::magic_clearenv
-#define Perl_magic_clear_all_env       CPerlObj::magic_clear_all_env
-#define Perl_magic_clearpack   CPerlObj::magic_clearpack
-#define Perl_magic_clearsig    CPerlObj::magic_clearsig
-#define Perl_magic_existspack  CPerlObj::magic_existspack
-#define Perl_magic_freeregexp  CPerlObj::magic_freeregexp
-#define Perl_magic_get         CPerlObj::magic_get
-#define Perl_magic_getarylen   CPerlObj::magic_getarylen
-#define Perl_magic_getdefelem  CPerlObj::magic_getdefelem
-#define Perl_magic_getglob     CPerlObj::magic_getglob
-#define Perl_magic_getnkeys    CPerlObj::magic_getnkeys
-#define Perl_magic_getpack     CPerlObj::magic_getpack
-#define Perl_magic_getpos      CPerlObj::magic_getpos
-#define Perl_magic_getsig      CPerlObj::magic_getsig
-#define Perl_magic_getsubstr   CPerlObj::magic_getsubstr
-#define Perl_magic_gettaint    CPerlObj::magic_gettaint
-#define Perl_magic_getuvar     CPerlObj::magic_getuvar
-#define Perl_magic_getvec      CPerlObj::magic_getvec
-#define Perl_magic_len         CPerlObj::magic_len
-#if defined(USE_THREADS)
-#define Perl_magic_mutexfree   CPerlObj::magic_mutexfree
-#endif
-#define Perl_magic_nextpack    CPerlObj::magic_nextpack
-#define Perl_magic_regdata_cnt CPerlObj::magic_regdata_cnt
-#define Perl_magic_regdatum_get        CPerlObj::magic_regdatum_get
-#define Perl_magic_set         CPerlObj::magic_set
-#define Perl_magic_setamagic   CPerlObj::magic_setamagic
-#define Perl_magic_setarylen   CPerlObj::magic_setarylen
-#define Perl_magic_setbm       CPerlObj::magic_setbm
-#define Perl_magic_setdbline   CPerlObj::magic_setdbline
-#if defined(USE_LOCALE_COLLATE)
-#define Perl_magic_setcollxfrm CPerlObj::magic_setcollxfrm
-#endif
-#define Perl_magic_setdefelem  CPerlObj::magic_setdefelem
-#define Perl_magic_setenv      CPerlObj::magic_setenv
-#define Perl_magic_setfm       CPerlObj::magic_setfm
-#define Perl_magic_setisa      CPerlObj::magic_setisa
-#define Perl_magic_setglob     CPerlObj::magic_setglob
-#define Perl_magic_setmglob    CPerlObj::magic_setmglob
-#define Perl_magic_setnkeys    CPerlObj::magic_setnkeys
-#define Perl_magic_setpack     CPerlObj::magic_setpack
-#define Perl_magic_setpos      CPerlObj::magic_setpos
-#define Perl_magic_setsig      CPerlObj::magic_setsig
-#define Perl_magic_setsubstr   CPerlObj::magic_setsubstr
-#define Perl_magic_settaint    CPerlObj::magic_settaint
-#define Perl_magic_setuvar     CPerlObj::magic_setuvar
-#define Perl_magic_setvec      CPerlObj::magic_setvec
-#define Perl_magic_set_all_env CPerlObj::magic_set_all_env
-#define Perl_magic_sizepack    CPerlObj::magic_sizepack
-#define Perl_magic_wipepack    CPerlObj::magic_wipepack
-#define Perl_magicname         CPerlObj::magicname
-#if defined(MYMALLOC)
-#define Perl_malloced_size     CPerlObj::malloced_size
+#define Perl_getenv_len                CPerlObj::Perl_getenv_len
+#define getenv_len             Perl_getenv_len
 #endif
-#define Perl_markstack_grow    CPerlObj::markstack_grow
-#if defined(USE_LOCALE_COLLATE)
-#define Perl_mem_collxfrm      CPerlObj::mem_collxfrm
-#endif
-#define Perl_mess              CPerlObj::mess
-#define Perl_mg_clear          CPerlObj::mg_clear
-#define Perl_mg_copy           CPerlObj::mg_copy
-#define Perl_mg_find           CPerlObj::mg_find
-#define Perl_mg_free           CPerlObj::mg_free
-#define Perl_mg_get            CPerlObj::mg_get
-#define Perl_mg_length         CPerlObj::mg_length
-#define Perl_mg_magical                CPerlObj::mg_magical
-#define Perl_mg_set            CPerlObj::mg_set
-#define Perl_mg_size           CPerlObj::mg_size
-#define Perl_mod               CPerlObj::mod
-#define Perl_moreswitches      CPerlObj::moreswitches
-#define Perl_my                        CPerlObj::my
-#ifdef USE_LOCALE_NUMERIC
-#define Perl_my_atof           CPerlObj::my_atof
+#define Perl_gp_free           CPerlObj::Perl_gp_free
+#define gp_free                        Perl_gp_free
+#define Perl_gp_ref            CPerlObj::Perl_gp_ref
+#define gp_ref                 Perl_gp_ref
+#define Perl_gv_AVadd          CPerlObj::Perl_gv_AVadd
+#define gv_AVadd               Perl_gv_AVadd
+#define Perl_gv_HVadd          CPerlObj::Perl_gv_HVadd
+#define gv_HVadd               Perl_gv_HVadd
+#define Perl_gv_IOadd          CPerlObj::Perl_gv_IOadd
+#define gv_IOadd               Perl_gv_IOadd
+#define Perl_gv_autoload4      CPerlObj::Perl_gv_autoload4
+#define gv_autoload4           Perl_gv_autoload4
+#define Perl_gv_check          CPerlObj::Perl_gv_check
+#define gv_check               Perl_gv_check
+#define Perl_gv_efullname      CPerlObj::Perl_gv_efullname
+#define gv_efullname           Perl_gv_efullname
+#define Perl_gv_efullname3     CPerlObj::Perl_gv_efullname3
+#define gv_efullname3          Perl_gv_efullname3
+#define Perl_gv_fetchfile      CPerlObj::Perl_gv_fetchfile
+#define gv_fetchfile           Perl_gv_fetchfile
+#define Perl_gv_fetchmeth      CPerlObj::Perl_gv_fetchmeth
+#define gv_fetchmeth           Perl_gv_fetchmeth
+#define Perl_gv_fetchmethod    CPerlObj::Perl_gv_fetchmethod
+#define gv_fetchmethod         Perl_gv_fetchmethod
+#define Perl_gv_fetchmethod_autoload   CPerlObj::Perl_gv_fetchmethod_autoload
+#define gv_fetchmethod_autoload        Perl_gv_fetchmethod_autoload
+#define Perl_gv_fetchpv                CPerlObj::Perl_gv_fetchpv
+#define gv_fetchpv             Perl_gv_fetchpv
+#define Perl_gv_fullname       CPerlObj::Perl_gv_fullname
+#define gv_fullname            Perl_gv_fullname
+#define Perl_gv_fullname3      CPerlObj::Perl_gv_fullname3
+#define gv_fullname3           Perl_gv_fullname3
+#define Perl_gv_init           CPerlObj::Perl_gv_init
+#define gv_init                        Perl_gv_init
+#define Perl_gv_stashpv                CPerlObj::Perl_gv_stashpv
+#define gv_stashpv             Perl_gv_stashpv
+#define Perl_gv_stashpvn       CPerlObj::Perl_gv_stashpvn
+#define gv_stashpvn            Perl_gv_stashpvn
+#define Perl_gv_stashsv                CPerlObj::Perl_gv_stashsv
+#define gv_stashsv             Perl_gv_stashsv
+#define Perl_hv_clear          CPerlObj::Perl_hv_clear
+#define hv_clear               Perl_hv_clear
+#define Perl_hv_delayfree_ent  CPerlObj::Perl_hv_delayfree_ent
+#define hv_delayfree_ent       Perl_hv_delayfree_ent
+#define Perl_hv_delete         CPerlObj::Perl_hv_delete
+#define hv_delete              Perl_hv_delete
+#define Perl_hv_delete_ent     CPerlObj::Perl_hv_delete_ent
+#define hv_delete_ent          Perl_hv_delete_ent
+#define Perl_hv_exists         CPerlObj::Perl_hv_exists
+#define hv_exists              Perl_hv_exists
+#define Perl_hv_exists_ent     CPerlObj::Perl_hv_exists_ent
+#define hv_exists_ent          Perl_hv_exists_ent
+#define Perl_hv_fetch          CPerlObj::Perl_hv_fetch
+#define hv_fetch               Perl_hv_fetch
+#define Perl_hv_fetch_ent      CPerlObj::Perl_hv_fetch_ent
+#define hv_fetch_ent           Perl_hv_fetch_ent
+#define Perl_hv_free_ent       CPerlObj::Perl_hv_free_ent
+#define hv_free_ent            Perl_hv_free_ent
+#define Perl_hv_iterinit       CPerlObj::Perl_hv_iterinit
+#define hv_iterinit            Perl_hv_iterinit
+#define Perl_hv_iterkey                CPerlObj::Perl_hv_iterkey
+#define hv_iterkey             Perl_hv_iterkey
+#define Perl_hv_iterkeysv      CPerlObj::Perl_hv_iterkeysv
+#define hv_iterkeysv           Perl_hv_iterkeysv
+#define Perl_hv_iternext       CPerlObj::Perl_hv_iternext
+#define hv_iternext            Perl_hv_iternext
+#define Perl_hv_iternextsv     CPerlObj::Perl_hv_iternextsv
+#define hv_iternextsv          Perl_hv_iternextsv
+#define Perl_hv_iterval                CPerlObj::Perl_hv_iterval
+#define hv_iterval             Perl_hv_iterval
+#define Perl_hv_ksplit         CPerlObj::Perl_hv_ksplit
+#define hv_ksplit              Perl_hv_ksplit
+#define Perl_hv_magic          CPerlObj::Perl_hv_magic
+#define hv_magic               Perl_hv_magic
+#define Perl_hv_store          CPerlObj::Perl_hv_store
+#define hv_store               Perl_hv_store
+#define Perl_hv_store_ent      CPerlObj::Perl_hv_store_ent
+#define hv_store_ent           Perl_hv_store_ent
+#define Perl_hv_undef          CPerlObj::Perl_hv_undef
+#define hv_undef               Perl_hv_undef
+#define Perl_ibcmp             CPerlObj::Perl_ibcmp
+#define ibcmp                  Perl_ibcmp
+#define Perl_ibcmp_locale      CPerlObj::Perl_ibcmp_locale
+#define ibcmp_locale           Perl_ibcmp_locale
+#define Perl_ingroup           CPerlObj::Perl_ingroup
+#define ingroup                        Perl_ingroup
+#define Perl_init_stacks       CPerlObj::Perl_init_stacks
+#define init_stacks            Perl_init_stacks
+#define Perl_intro_my          CPerlObj::Perl_intro_my
+#define intro_my               Perl_intro_my
+#define Perl_instr             CPerlObj::Perl_instr
+#define instr                  Perl_instr
+#define Perl_io_close          CPerlObj::Perl_io_close
+#define io_close               Perl_io_close
+#define Perl_invert            CPerlObj::Perl_invert
+#define invert                 Perl_invert
+#define Perl_is_uni_alnum      CPerlObj::Perl_is_uni_alnum
+#define is_uni_alnum           Perl_is_uni_alnum
+#define Perl_is_uni_idfirst    CPerlObj::Perl_is_uni_idfirst
+#define is_uni_idfirst         Perl_is_uni_idfirst
+#define Perl_is_uni_alpha      CPerlObj::Perl_is_uni_alpha
+#define is_uni_alpha           Perl_is_uni_alpha
+#define Perl_is_uni_space      CPerlObj::Perl_is_uni_space
+#define is_uni_space           Perl_is_uni_space
+#define Perl_is_uni_digit      CPerlObj::Perl_is_uni_digit
+#define is_uni_digit           Perl_is_uni_digit
+#define Perl_is_uni_upper      CPerlObj::Perl_is_uni_upper
+#define is_uni_upper           Perl_is_uni_upper
+#define Perl_is_uni_lower      CPerlObj::Perl_is_uni_lower
+#define is_uni_lower           Perl_is_uni_lower
+#define Perl_is_uni_print      CPerlObj::Perl_is_uni_print
+#define is_uni_print           Perl_is_uni_print
+#define Perl_to_uni_upper      CPerlObj::Perl_to_uni_upper
+#define to_uni_upper           Perl_to_uni_upper
+#define Perl_to_uni_title      CPerlObj::Perl_to_uni_title
+#define to_uni_title           Perl_to_uni_title
+#define Perl_to_uni_lower      CPerlObj::Perl_to_uni_lower
+#define to_uni_lower           Perl_to_uni_lower
+#define Perl_is_uni_alnum_lc   CPerlObj::Perl_is_uni_alnum_lc
+#define is_uni_alnum_lc                Perl_is_uni_alnum_lc
+#define Perl_is_uni_idfirst_lc CPerlObj::Perl_is_uni_idfirst_lc
+#define is_uni_idfirst_lc      Perl_is_uni_idfirst_lc
+#define Perl_is_uni_alpha_lc   CPerlObj::Perl_is_uni_alpha_lc
+#define is_uni_alpha_lc                Perl_is_uni_alpha_lc
+#define Perl_is_uni_space_lc   CPerlObj::Perl_is_uni_space_lc
+#define is_uni_space_lc                Perl_is_uni_space_lc
+#define Perl_is_uni_digit_lc   CPerlObj::Perl_is_uni_digit_lc
+#define is_uni_digit_lc                Perl_is_uni_digit_lc
+#define Perl_is_uni_upper_lc   CPerlObj::Perl_is_uni_upper_lc
+#define is_uni_upper_lc                Perl_is_uni_upper_lc
+#define Perl_is_uni_lower_lc   CPerlObj::Perl_is_uni_lower_lc
+#define is_uni_lower_lc                Perl_is_uni_lower_lc
+#define Perl_is_uni_print_lc   CPerlObj::Perl_is_uni_print_lc
+#define is_uni_print_lc                Perl_is_uni_print_lc
+#define Perl_to_uni_upper_lc   CPerlObj::Perl_to_uni_upper_lc
+#define to_uni_upper_lc                Perl_to_uni_upper_lc
+#define Perl_to_uni_title_lc   CPerlObj::Perl_to_uni_title_lc
+#define to_uni_title_lc                Perl_to_uni_title_lc
+#define Perl_to_uni_lower_lc   CPerlObj::Perl_to_uni_lower_lc
+#define to_uni_lower_lc                Perl_to_uni_lower_lc
+#define Perl_is_utf8_alnum     CPerlObj::Perl_is_utf8_alnum
+#define is_utf8_alnum          Perl_is_utf8_alnum
+#define Perl_is_utf8_idfirst   CPerlObj::Perl_is_utf8_idfirst
+#define is_utf8_idfirst                Perl_is_utf8_idfirst
+#define Perl_is_utf8_alpha     CPerlObj::Perl_is_utf8_alpha
+#define is_utf8_alpha          Perl_is_utf8_alpha
+#define Perl_is_utf8_space     CPerlObj::Perl_is_utf8_space
+#define is_utf8_space          Perl_is_utf8_space
+#define Perl_is_utf8_digit     CPerlObj::Perl_is_utf8_digit
+#define is_utf8_digit          Perl_is_utf8_digit
+#define Perl_is_utf8_upper     CPerlObj::Perl_is_utf8_upper
+#define is_utf8_upper          Perl_is_utf8_upper
+#define Perl_is_utf8_lower     CPerlObj::Perl_is_utf8_lower
+#define is_utf8_lower          Perl_is_utf8_lower
+#define Perl_is_utf8_print     CPerlObj::Perl_is_utf8_print
+#define is_utf8_print          Perl_is_utf8_print
+#define Perl_is_utf8_mark      CPerlObj::Perl_is_utf8_mark
+#define is_utf8_mark           Perl_is_utf8_mark
+#define Perl_jmaybe            CPerlObj::Perl_jmaybe
+#define jmaybe                 Perl_jmaybe
+#define Perl_keyword           CPerlObj::Perl_keyword
+#define keyword                        Perl_keyword
+#define Perl_leave_scope       CPerlObj::Perl_leave_scope
+#define leave_scope            Perl_leave_scope
+#define Perl_lex_end           CPerlObj::Perl_lex_end
+#define lex_end                        Perl_lex_end
+#define Perl_lex_start         CPerlObj::Perl_lex_start
+#define lex_start              Perl_lex_start
+#define Perl_linklist          CPerlObj::Perl_linklist
+#define linklist               Perl_linklist
+#define Perl_list              CPerlObj::Perl_list
+#define list                   Perl_list
+#define Perl_listkids          CPerlObj::Perl_listkids
+#define listkids               Perl_listkids
+#define Perl_localize          CPerlObj::Perl_localize
+#define localize               Perl_localize
+#define Perl_looks_like_number CPerlObj::Perl_looks_like_number
+#define looks_like_number      Perl_looks_like_number
+#define Perl_magic_clearenv    CPerlObj::Perl_magic_clearenv
+#define magic_clearenv         Perl_magic_clearenv
+#define Perl_magic_clear_all_env       CPerlObj::Perl_magic_clear_all_env
+#define magic_clear_all_env    Perl_magic_clear_all_env
+#define Perl_magic_clearpack   CPerlObj::Perl_magic_clearpack
+#define magic_clearpack                Perl_magic_clearpack
+#define Perl_magic_clearsig    CPerlObj::Perl_magic_clearsig
+#define magic_clearsig         Perl_magic_clearsig
+#define Perl_magic_existspack  CPerlObj::Perl_magic_existspack
+#define magic_existspack       Perl_magic_existspack
+#define Perl_magic_freeregexp  CPerlObj::Perl_magic_freeregexp
+#define magic_freeregexp       Perl_magic_freeregexp
+#define Perl_magic_get         CPerlObj::Perl_magic_get
+#define magic_get              Perl_magic_get
+#define Perl_magic_getarylen   CPerlObj::Perl_magic_getarylen
+#define magic_getarylen                Perl_magic_getarylen
+#define Perl_magic_getdefelem  CPerlObj::Perl_magic_getdefelem
+#define magic_getdefelem       Perl_magic_getdefelem
+#define Perl_magic_getglob     CPerlObj::Perl_magic_getglob
+#define magic_getglob          Perl_magic_getglob
+#define Perl_magic_getnkeys    CPerlObj::Perl_magic_getnkeys
+#define magic_getnkeys         Perl_magic_getnkeys
+#define Perl_magic_getpack     CPerlObj::Perl_magic_getpack
+#define magic_getpack          Perl_magic_getpack
+#define Perl_magic_getpos      CPerlObj::Perl_magic_getpos
+#define magic_getpos           Perl_magic_getpos
+#define Perl_magic_getsig      CPerlObj::Perl_magic_getsig
+#define magic_getsig           Perl_magic_getsig
+#define Perl_magic_getsubstr   CPerlObj::Perl_magic_getsubstr
+#define magic_getsubstr                Perl_magic_getsubstr
+#define Perl_magic_gettaint    CPerlObj::Perl_magic_gettaint
+#define magic_gettaint         Perl_magic_gettaint
+#define Perl_magic_getuvar     CPerlObj::Perl_magic_getuvar
+#define magic_getuvar          Perl_magic_getuvar
+#define Perl_magic_getvec      CPerlObj::Perl_magic_getvec
+#define magic_getvec           Perl_magic_getvec
+#define Perl_magic_len         CPerlObj::Perl_magic_len
+#define magic_len              Perl_magic_len
+#if defined(USE_THREADS)
+#define Perl_magic_mutexfree   CPerlObj::Perl_magic_mutexfree
+#define magic_mutexfree                Perl_magic_mutexfree
+#endif
+#define Perl_magic_nextpack    CPerlObj::Perl_magic_nextpack
+#define magic_nextpack         Perl_magic_nextpack
+#define Perl_magic_regdata_cnt CPerlObj::Perl_magic_regdata_cnt
+#define magic_regdata_cnt      Perl_magic_regdata_cnt
+#define Perl_magic_regdatum_get        CPerlObj::Perl_magic_regdatum_get
+#define magic_regdatum_get     Perl_magic_regdatum_get
+#define Perl_magic_set         CPerlObj::Perl_magic_set
+#define magic_set              Perl_magic_set
+#define Perl_magic_setamagic   CPerlObj::Perl_magic_setamagic
+#define magic_setamagic                Perl_magic_setamagic
+#define Perl_magic_setarylen   CPerlObj::Perl_magic_setarylen
+#define magic_setarylen                Perl_magic_setarylen
+#define Perl_magic_setbm       CPerlObj::Perl_magic_setbm
+#define magic_setbm            Perl_magic_setbm
+#define Perl_magic_setdbline   CPerlObj::Perl_magic_setdbline
+#define magic_setdbline                Perl_magic_setdbline
+#if defined(USE_LOCALE_COLLATE)
+#define Perl_magic_setcollxfrm CPerlObj::Perl_magic_setcollxfrm
+#define magic_setcollxfrm      Perl_magic_setcollxfrm
+#endif
+#define Perl_magic_setdefelem  CPerlObj::Perl_magic_setdefelem
+#define magic_setdefelem       Perl_magic_setdefelem
+#define Perl_magic_setenv      CPerlObj::Perl_magic_setenv
+#define magic_setenv           Perl_magic_setenv
+#define Perl_magic_setfm       CPerlObj::Perl_magic_setfm
+#define magic_setfm            Perl_magic_setfm
+#define Perl_magic_setisa      CPerlObj::Perl_magic_setisa
+#define magic_setisa           Perl_magic_setisa
+#define Perl_magic_setglob     CPerlObj::Perl_magic_setglob
+#define magic_setglob          Perl_magic_setglob
+#define Perl_magic_setmglob    CPerlObj::Perl_magic_setmglob
+#define magic_setmglob         Perl_magic_setmglob
+#define Perl_magic_setnkeys    CPerlObj::Perl_magic_setnkeys
+#define magic_setnkeys         Perl_magic_setnkeys
+#define Perl_magic_setpack     CPerlObj::Perl_magic_setpack
+#define magic_setpack          Perl_magic_setpack
+#define Perl_magic_setpos      CPerlObj::Perl_magic_setpos
+#define magic_setpos           Perl_magic_setpos
+#define Perl_magic_setsig      CPerlObj::Perl_magic_setsig
+#define magic_setsig           Perl_magic_setsig
+#define Perl_magic_setsubstr   CPerlObj::Perl_magic_setsubstr
+#define magic_setsubstr                Perl_magic_setsubstr
+#define Perl_magic_settaint    CPerlObj::Perl_magic_settaint
+#define magic_settaint         Perl_magic_settaint
+#define Perl_magic_setuvar     CPerlObj::Perl_magic_setuvar
+#define magic_setuvar          Perl_magic_setuvar
+#define Perl_magic_setvec      CPerlObj::Perl_magic_setvec
+#define magic_setvec           Perl_magic_setvec
+#define Perl_magic_set_all_env CPerlObj::Perl_magic_set_all_env
+#define magic_set_all_env      Perl_magic_set_all_env
+#define Perl_magic_sizepack    CPerlObj::Perl_magic_sizepack
+#define magic_sizepack         Perl_magic_sizepack
+#define Perl_magic_wipepack    CPerlObj::Perl_magic_wipepack
+#define magic_wipepack         Perl_magic_wipepack
+#define Perl_magicname         CPerlObj::Perl_magicname
+#define magicname              Perl_magicname
+#if defined(MYMALLOC)
+#define Perl_malloced_size     CPerlObj::Perl_malloced_size
+#define malloced_size          Perl_malloced_size
+#endif
+#define Perl_markstack_grow    CPerlObj::Perl_markstack_grow
+#define markstack_grow         Perl_markstack_grow
+#if defined(USE_LOCALE_COLLATE)
+#define Perl_mem_collxfrm      CPerlObj::Perl_mem_collxfrm
+#define mem_collxfrm           Perl_mem_collxfrm
+#endif
+#define Perl_mess              CPerlObj::Perl_mess
+#define mess                   Perl_mess
+#define Perl_mg_clear          CPerlObj::Perl_mg_clear
+#define mg_clear               Perl_mg_clear
+#define Perl_mg_copy           CPerlObj::Perl_mg_copy
+#define mg_copy                        Perl_mg_copy
+#define Perl_mg_find           CPerlObj::Perl_mg_find
+#define mg_find                        Perl_mg_find
+#define Perl_mg_free           CPerlObj::Perl_mg_free
+#define mg_free                        Perl_mg_free
+#define Perl_mg_get            CPerlObj::Perl_mg_get
+#define mg_get                 Perl_mg_get
+#define Perl_mg_length         CPerlObj::Perl_mg_length
+#define mg_length              Perl_mg_length
+#define Perl_mg_magical                CPerlObj::Perl_mg_magical
+#define mg_magical             Perl_mg_magical
+#define Perl_mg_set            CPerlObj::Perl_mg_set
+#define mg_set                 Perl_mg_set
+#define Perl_mg_size           CPerlObj::Perl_mg_size
+#define mg_size                        Perl_mg_size
+#define Perl_mod               CPerlObj::Perl_mod
+#define mod                    Perl_mod
+#define Perl_moreswitches      CPerlObj::Perl_moreswitches
+#define moreswitches           Perl_moreswitches
+#define Perl_my                        CPerlObj::Perl_my
+#define my                     Perl_my
+#ifdef USE_LOCALE_NUMERIC
+#define Perl_my_atof           CPerlObj::Perl_my_atof
+#define my_atof                        Perl_my_atof
 #endif
 #if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
-#define Perl_my_bcopy          CPerlObj::my_bcopy
+#define Perl_my_bcopy          CPerlObj::Perl_my_bcopy
+#define my_bcopy               Perl_my_bcopy
 #endif
 #if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-#define Perl_my_bzero          CPerlObj::my_bzero
+#define Perl_my_bzero          CPerlObj::Perl_my_bzero
+#define my_bzero               Perl_my_bzero
 #endif
-#define Perl_my_exit           CPerlObj::my_exit
-#define Perl_my_failure_exit   CPerlObj::my_failure_exit
-#define Perl_my_fflush_all     CPerlObj::my_fflush_all
-#define Perl_my_lstat          CPerlObj::my_lstat
+#define Perl_my_exit           CPerlObj::Perl_my_exit
+#define my_exit                        Perl_my_exit
+#define Perl_my_failure_exit   CPerlObj::Perl_my_failure_exit
+#define my_failure_exit                Perl_my_failure_exit
+#define Perl_my_fflush_all     CPerlObj::Perl_my_fflush_all
+#define my_fflush_all          Perl_my_fflush_all
+#define Perl_my_lstat          CPerlObj::Perl_my_lstat
+#define my_lstat               Perl_my_lstat
 #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
-#define Perl_my_memcmp         CPerlObj::my_memcmp
+#define Perl_my_memcmp         CPerlObj::Perl_my_memcmp
+#define my_memcmp              Perl_my_memcmp
 #endif
 #if !defined(HAS_MEMSET)
-#define Perl_my_memset         CPerlObj::my_memset
+#define Perl_my_memset         CPerlObj::Perl_my_memset
+#define my_memset              Perl_my_memset
 #endif
 #if !defined(PERL_OBJECT)
-#define Perl_my_pclose         CPerlObj::my_pclose
-#define Perl_my_popen          CPerlObj::my_popen
+#define Perl_my_pclose         CPerlObj::Perl_my_pclose
+#define my_pclose              Perl_my_pclose
+#define Perl_my_popen          CPerlObj::Perl_my_popen
+#define my_popen               Perl_my_popen
 #endif
-#define Perl_my_setenv         CPerlObj::my_setenv
-#define Perl_my_stat           CPerlObj::my_stat
+#define Perl_my_setenv         CPerlObj::Perl_my_setenv
+#define my_setenv              Perl_my_setenv
+#define Perl_my_stat           CPerlObj::Perl_my_stat
+#define my_stat                        Perl_my_stat
 #if defined(MYSWAP)
-#define Perl_my_swap           CPerlObj::my_swap
-#define Perl_my_htonl          CPerlObj::my_htonl
-#define Perl_my_ntohl          CPerlObj::my_ntohl
-#endif
-#define Perl_my_unexec         CPerlObj::my_unexec
-#define Perl_newANONLIST       CPerlObj::newANONLIST
-#define Perl_newANONHASH       CPerlObj::newANONHASH
-#define Perl_newANONSUB                CPerlObj::newANONSUB
-#define Perl_newASSIGNOP       CPerlObj::newASSIGNOP
-#define Perl_newCONDOP         CPerlObj::newCONDOP
-#define Perl_newCONSTSUB       CPerlObj::newCONSTSUB
-#define Perl_newFORM           CPerlObj::newFORM
-#define Perl_newFOROP          CPerlObj::newFOROP
-#define Perl_newLOGOP          CPerlObj::newLOGOP
-#define Perl_newLOOPEX         CPerlObj::newLOOPEX
-#define Perl_newLOOPOP         CPerlObj::newLOOPOP
-#define Perl_newNULLLIST       CPerlObj::newNULLLIST
-#define Perl_newOP             CPerlObj::newOP
-#define Perl_newPROG           CPerlObj::newPROG
-#define Perl_newRANGE          CPerlObj::newRANGE
-#define Perl_newSLICEOP                CPerlObj::newSLICEOP
-#define Perl_newSTATEOP                CPerlObj::newSTATEOP
-#define Perl_newSUB            CPerlObj::newSUB
-#define Perl_newXS             CPerlObj::newXS
-#define Perl_newAV             CPerlObj::newAV
-#define Perl_newAVREF          CPerlObj::newAVREF
-#define Perl_newBINOP          CPerlObj::newBINOP
-#define Perl_newCVREF          CPerlObj::newCVREF
-#define Perl_newGVOP           CPerlObj::newGVOP
-#define Perl_newGVgen          CPerlObj::newGVgen
-#define Perl_newGVREF          CPerlObj::newGVREF
-#define Perl_newHVREF          CPerlObj::newHVREF
-#define Perl_newHV             CPerlObj::newHV
-#define Perl_newHVhv           CPerlObj::newHVhv
-#define Perl_newIO             CPerlObj::newIO
-#define Perl_newLISTOP         CPerlObj::newLISTOP
-#define Perl_newPMOP           CPerlObj::newPMOP
-#define Perl_newPVOP           CPerlObj::newPVOP
-#define Perl_newRV             CPerlObj::newRV
-#define Perl_newRV_noinc       CPerlObj::newRV_noinc
-#define Perl_newSV             CPerlObj::newSV
-#define Perl_newSVREF          CPerlObj::newSVREF
-#define Perl_newSVOP           CPerlObj::newSVOP
-#define Perl_newSViv           CPerlObj::newSViv
-#define Perl_newSVnv           CPerlObj::newSVnv
-#define Perl_newSVpv           CPerlObj::newSVpv
-#define Perl_newSVpvn          CPerlObj::newSVpvn
-#define Perl_newSVpvf          CPerlObj::newSVpvf
-#define Perl_newSVrv           CPerlObj::newSVrv
-#define Perl_newSVsv           CPerlObj::newSVsv
-#define Perl_newUNOP           CPerlObj::newUNOP
-#define Perl_newWHILEOP                CPerlObj::newWHILEOP
-#if defined(USE_THREADS)
-#define Perl_new_struct_thread CPerlObj::new_struct_thread
-#endif
-#define Perl_new_stackinfo     CPerlObj::new_stackinfo
-#define Perl_nextargv          CPerlObj::nextargv
-#define Perl_ninstr            CPerlObj::ninstr
-#define Perl_oopsCV            CPerlObj::oopsCV
-#define Perl_op_free           CPerlObj::op_free
-#define Perl_package           CPerlObj::package
-#define Perl_pad_alloc         CPerlObj::pad_alloc
-#define Perl_pad_allocmy       CPerlObj::pad_allocmy
-#define Perl_pad_findmy                CPerlObj::pad_findmy
-#define Perl_oopsAV            CPerlObj::oopsAV
-#define Perl_oopsHV            CPerlObj::oopsHV
-#define Perl_pad_leavemy       CPerlObj::pad_leavemy
-#define Perl_pad_sv            CPerlObj::pad_sv
-#define Perl_pad_free          CPerlObj::pad_free
-#define Perl_pad_reset         CPerlObj::pad_reset
-#define Perl_pad_swipe         CPerlObj::pad_swipe
-#define Perl_peep              CPerlObj::peep
-#define Perl_call_atexit       CPerlObj::call_atexit
-#define Perl_call_argv         CPerlObj::call_argv
-#define Perl_call_method       CPerlObj::call_method
-#define Perl_call_pv           CPerlObj::call_pv
-#define Perl_call_sv           CPerlObj::call_sv
-#define Perl_eval_pv           CPerlObj::eval_pv
-#define Perl_eval_sv           CPerlObj::eval_sv
-#define Perl_get_sv            CPerlObj::get_sv
-#define Perl_get_av            CPerlObj::get_av
-#define Perl_get_hv            CPerlObj::get_hv
-#define Perl_get_cv            CPerlObj::get_cv
-#define Perl_init_i18nl10n     CPerlObj::init_i18nl10n
-#define Perl_init_i18nl14n     CPerlObj::init_i18nl14n
-#define Perl_new_collate       CPerlObj::new_collate
-#define Perl_new_ctype         CPerlObj::new_ctype
-#define Perl_new_numeric       CPerlObj::new_numeric
-#define Perl_set_numeric_local CPerlObj::set_numeric_local
-#define Perl_set_numeric_radix CPerlObj::set_numeric_radix
-#define Perl_set_numeric_standard      CPerlObj::set_numeric_standard
-#define Perl_require_pv                CPerlObj::require_pv
-#define Perl_pidgone           CPerlObj::pidgone
-#define Perl_pmflag            CPerlObj::pmflag
-#define Perl_pmruntime         CPerlObj::pmruntime
-#define Perl_pmtrans           CPerlObj::pmtrans
-#define Perl_pop_return                CPerlObj::pop_return
-#define Perl_pop_scope         CPerlObj::pop_scope
-#define Perl_prepend_elem      CPerlObj::prepend_elem
-#define Perl_push_return       CPerlObj::push_return
-#define Perl_push_scope                CPerlObj::push_scope
-#define Perl_ref               CPerlObj::ref
-#define Perl_refkids           CPerlObj::refkids
-#define Perl_regdump           CPerlObj::regdump
-#define Perl_pregexec          CPerlObj::pregexec
-#define Perl_pregfree          CPerlObj::pregfree
-#define Perl_pregcomp          CPerlObj::pregcomp
-#define Perl_regexec_flags     CPerlObj::regexec_flags
-#define Perl_regnext           CPerlObj::regnext
-#define Perl_regprop           CPerlObj::regprop
-#define Perl_repeatcpy         CPerlObj::repeatcpy
-#define Perl_rninstr           CPerlObj::rninstr
-#define Perl_rsignal           CPerlObj::rsignal
-#define Perl_rsignal_restore   CPerlObj::rsignal_restore
-#define Perl_rsignal_save      CPerlObj::rsignal_save
-#define Perl_rsignal_state     CPerlObj::rsignal_state
-#define Perl_rxres_free                CPerlObj::rxres_free
-#define Perl_rxres_restore     CPerlObj::rxres_restore
-#define Perl_rxres_save                CPerlObj::rxres_save
-#if !defined(HAS_RENAME)
-#define Perl_same_dirent       CPerlObj::same_dirent
-#endif
-#define Perl_savepv            CPerlObj::savepv
-#define Perl_savepvn           CPerlObj::savepvn
-#define Perl_savestack_grow    CPerlObj::savestack_grow
-#define Perl_save_aelem                CPerlObj::save_aelem
-#define Perl_save_alloc                CPerlObj::save_alloc
-#define Perl_save_aptr         CPerlObj::save_aptr
-#define Perl_save_ary          CPerlObj::save_ary
-#define Perl_save_clearsv      CPerlObj::save_clearsv
-#define Perl_save_delete       CPerlObj::save_delete
-#define Perl_save_destructor   CPerlObj::save_destructor
-#define Perl_save_freesv       CPerlObj::save_freesv
-#define Perl_save_freeop       CPerlObj::save_freeop
-#define Perl_save_freepv       CPerlObj::save_freepv
-#define Perl_save_generic_svref        CPerlObj::save_generic_svref
-#define Perl_save_gp           CPerlObj::save_gp
-#define Perl_save_hash         CPerlObj::save_hash
-#define Perl_save_helem                CPerlObj::save_helem
-#define Perl_save_hints                CPerlObj::save_hints
-#define Perl_save_hptr         CPerlObj::save_hptr
-#define Perl_save_I16          CPerlObj::save_I16
-#define Perl_save_I32          CPerlObj::save_I32
-#define Perl_save_int          CPerlObj::save_int
-#define Perl_save_item         CPerlObj::save_item
-#define Perl_save_iv           CPerlObj::save_iv
-#define Perl_save_list         CPerlObj::save_list
-#define Perl_save_long         CPerlObj::save_long
-#define Perl_save_nogv         CPerlObj::save_nogv
-#define Perl_save_op           CPerlObj::save_op
-#define Perl_save_scalar       CPerlObj::save_scalar
-#define Perl_save_pptr         CPerlObj::save_pptr
-#define Perl_save_re_context   CPerlObj::save_re_context
-#define Perl_save_sptr         CPerlObj::save_sptr
-#define Perl_save_svref                CPerlObj::save_svref
-#define Perl_save_threadsv     CPerlObj::save_threadsv
-#define Perl_sawparens         CPerlObj::sawparens
-#define Perl_scalar            CPerlObj::scalar
-#define Perl_scalarkids                CPerlObj::scalarkids
-#define Perl_scalarseq         CPerlObj::scalarseq
-#define Perl_scalarvoid                CPerlObj::scalarvoid
-#define Perl_scan_bin          CPerlObj::scan_bin
-#define Perl_scan_hex          CPerlObj::scan_hex
-#define Perl_scan_num          CPerlObj::scan_num
-#define Perl_scan_oct          CPerlObj::scan_oct
-#define Perl_scope             CPerlObj::scope
-#define Perl_screaminstr       CPerlObj::screaminstr
-#if !defined(VMS)
-#define Perl_setenv_getix      CPerlObj::setenv_getix
-#endif
-#define Perl_setdefout         CPerlObj::setdefout
-#define Perl_sharepvn          CPerlObj::sharepvn
-#define Perl_share_hek         CPerlObj::share_hek
-#define Perl_sighandler                CPerlObj::sighandler
-#define Perl_stack_grow                CPerlObj::stack_grow
-#define Perl_start_subparse    CPerlObj::start_subparse
-#define Perl_sub_crush_depth   CPerlObj::sub_crush_depth
-#define Perl_sv_2bool          CPerlObj::sv_2bool
-#define Perl_sv_2cv            CPerlObj::sv_2cv
-#define Perl_sv_2io            CPerlObj::sv_2io
-#define Perl_sv_2iv            CPerlObj::sv_2iv
-#define Perl_sv_2mortal                CPerlObj::sv_2mortal
-#define Perl_sv_2nv            CPerlObj::sv_2nv
-#define Perl_sv_2pv            CPerlObj::sv_2pv
-#define Perl_sv_2uv            CPerlObj::sv_2uv
-#define Perl_sv_iv             CPerlObj::sv_iv
-#define Perl_sv_uv             CPerlObj::sv_uv
-#define Perl_sv_nv             CPerlObj::sv_nv
-#define Perl_sv_pvn            CPerlObj::sv_pvn
-#define Perl_sv_true           CPerlObj::sv_true
-#define Perl_sv_add_arena      CPerlObj::sv_add_arena
-#define Perl_sv_backoff                CPerlObj::sv_backoff
-#define Perl_sv_bless          CPerlObj::sv_bless
-#define Perl_sv_catpvf         CPerlObj::sv_catpvf
-#define Perl_sv_catpv          CPerlObj::sv_catpv
-#define Perl_sv_catpvn         CPerlObj::sv_catpvn
-#define Perl_sv_catsv          CPerlObj::sv_catsv
-#define Perl_sv_chop           CPerlObj::sv_chop
-#define Perl_sv_clean_all      CPerlObj::sv_clean_all
-#define Perl_sv_clean_objs     CPerlObj::sv_clean_objs
-#define Perl_sv_clear          CPerlObj::sv_clear
-#define Perl_sv_cmp            CPerlObj::sv_cmp
-#define Perl_sv_cmp_locale     CPerlObj::sv_cmp_locale
-#if defined(USE_LOCALE_COLLATE)
-#define Perl_sv_collxfrm       CPerlObj::sv_collxfrm
-#endif
-#define Perl_sv_compile_2op    CPerlObj::sv_compile_2op
-#define Perl_sv_dec            CPerlObj::sv_dec
-#define Perl_sv_dump           CPerlObj::sv_dump
-#define Perl_sv_derived_from   CPerlObj::sv_derived_from
-#define Perl_sv_eq             CPerlObj::sv_eq
-#define Perl_sv_free           CPerlObj::sv_free
-#define Perl_sv_free_arenas    CPerlObj::sv_free_arenas
-#define Perl_sv_gets           CPerlObj::sv_gets
-#define Perl_sv_grow           CPerlObj::sv_grow
-#define Perl_sv_inc            CPerlObj::sv_inc
-#define Perl_sv_insert         CPerlObj::sv_insert
-#define Perl_sv_isa            CPerlObj::sv_isa
-#define Perl_sv_isobject       CPerlObj::sv_isobject
-#define Perl_sv_len            CPerlObj::sv_len
-#define Perl_sv_len_utf8       CPerlObj::sv_len_utf8
-#define Perl_sv_magic          CPerlObj::sv_magic
-#define Perl_sv_mortalcopy     CPerlObj::sv_mortalcopy
-#define Perl_sv_newmortal      CPerlObj::sv_newmortal
-#define Perl_sv_newref         CPerlObj::sv_newref
-#define Perl_sv_peek           CPerlObj::sv_peek
-#define Perl_sv_pos_u2b                CPerlObj::sv_pos_u2b
-#define Perl_sv_pos_b2u                CPerlObj::sv_pos_b2u
-#define Perl_sv_pvn_force      CPerlObj::sv_pvn_force
-#define Perl_sv_reftype                CPerlObj::sv_reftype
-#define Perl_sv_replace                CPerlObj::sv_replace
-#define Perl_sv_report_used    CPerlObj::sv_report_used
-#define Perl_sv_reset          CPerlObj::sv_reset
-#define Perl_sv_setpvf         CPerlObj::sv_setpvf
-#define Perl_sv_setiv          CPerlObj::sv_setiv
-#define Perl_sv_setpviv                CPerlObj::sv_setpviv
-#define Perl_sv_setuv          CPerlObj::sv_setuv
-#define Perl_sv_setnv          CPerlObj::sv_setnv
-#define Perl_sv_setref_iv      CPerlObj::sv_setref_iv
-#define Perl_sv_setref_nv      CPerlObj::sv_setref_nv
-#define Perl_sv_setref_pv      CPerlObj::sv_setref_pv
-#define Perl_sv_setref_pvn     CPerlObj::sv_setref_pvn
-#define Perl_sv_setpv          CPerlObj::sv_setpv
-#define Perl_sv_setpvn         CPerlObj::sv_setpvn
-#define Perl_sv_setsv          CPerlObj::sv_setsv
-#define Perl_sv_taint          CPerlObj::sv_taint
-#define Perl_sv_tainted                CPerlObj::sv_tainted
-#define Perl_sv_unmagic                CPerlObj::sv_unmagic
-#define Perl_sv_unref          CPerlObj::sv_unref
-#define Perl_sv_untaint                CPerlObj::sv_untaint
-#define Perl_sv_upgrade                CPerlObj::sv_upgrade
-#define Perl_sv_usepvn         CPerlObj::sv_usepvn
-#define Perl_sv_vcatpvfn       CPerlObj::sv_vcatpvfn
-#define Perl_sv_vsetpvfn       CPerlObj::sv_vsetpvfn
-#define Perl_swash_init                CPerlObj::swash_init
-#define Perl_swash_fetch       CPerlObj::swash_fetch
-#define Perl_taint_env         CPerlObj::taint_env
-#define Perl_taint_proper      CPerlObj::taint_proper
-#define Perl_to_utf8_lower     CPerlObj::to_utf8_lower
-#define Perl_to_utf8_upper     CPerlObj::to_utf8_upper
-#define Perl_to_utf8_title     CPerlObj::to_utf8_title
-#if defined(UNLINK_ALL_VERSIONS)
-#define Perl_unlnk             CPerlObj::unlnk
+#define Perl_my_swap           CPerlObj::Perl_my_swap
+#define my_swap                        Perl_my_swap
+#define Perl_my_htonl          CPerlObj::Perl_my_htonl
+#define my_htonl               Perl_my_htonl
+#define Perl_my_ntohl          CPerlObj::Perl_my_ntohl
+#define my_ntohl               Perl_my_ntohl
 #endif
+#define Perl_my_unexec         CPerlObj::Perl_my_unexec
+#define my_unexec              Perl_my_unexec
+#define Perl_newANONLIST       CPerlObj::Perl_newANONLIST
+#define newANONLIST            Perl_newANONLIST
+#define Perl_newANONHASH       CPerlObj::Perl_newANONHASH
+#define newANONHASH            Perl_newANONHASH
+#define Perl_newANONSUB                CPerlObj::Perl_newANONSUB
+#define newANONSUB             Perl_newANONSUB
+#define Perl_newASSIGNOP       CPerlObj::Perl_newASSIGNOP
+#define newASSIGNOP            Perl_newASSIGNOP
+#define Perl_newCONDOP         CPerlObj::Perl_newCONDOP
+#define newCONDOP              Perl_newCONDOP
+#define Perl_newCONSTSUB       CPerlObj::Perl_newCONSTSUB
+#define newCONSTSUB            Perl_newCONSTSUB
+#define Perl_newFORM           CPerlObj::Perl_newFORM
+#define newFORM                        Perl_newFORM
+#define Perl_newFOROP          CPerlObj::Perl_newFOROP
+#define newFOROP               Perl_newFOROP
+#define Perl_newLOGOP          CPerlObj::Perl_newLOGOP
+#define newLOGOP               Perl_newLOGOP
+#define Perl_newLOOPEX         CPerlObj::Perl_newLOOPEX
+#define newLOOPEX              Perl_newLOOPEX
+#define Perl_newLOOPOP         CPerlObj::Perl_newLOOPOP
+#define newLOOPOP              Perl_newLOOPOP
+#define Perl_newNULLLIST       CPerlObj::Perl_newNULLLIST
+#define newNULLLIST            Perl_newNULLLIST
+#define Perl_newOP             CPerlObj::Perl_newOP
+#define newOP                  Perl_newOP
+#define Perl_newPROG           CPerlObj::Perl_newPROG
+#define newPROG                        Perl_newPROG
+#define Perl_newRANGE          CPerlObj::Perl_newRANGE
+#define newRANGE               Perl_newRANGE
+#define Perl_newSLICEOP                CPerlObj::Perl_newSLICEOP
+#define newSLICEOP             Perl_newSLICEOP
+#define Perl_newSTATEOP                CPerlObj::Perl_newSTATEOP
+#define newSTATEOP             Perl_newSTATEOP
+#define Perl_newSUB            CPerlObj::Perl_newSUB
+#define newSUB                 Perl_newSUB
+#define Perl_newXS             CPerlObj::Perl_newXS
+#define newXS                  Perl_newXS
+#define Perl_newAV             CPerlObj::Perl_newAV
+#define newAV                  Perl_newAV
+#define Perl_newAVREF          CPerlObj::Perl_newAVREF
+#define newAVREF               Perl_newAVREF
+#define Perl_newBINOP          CPerlObj::Perl_newBINOP
+#define newBINOP               Perl_newBINOP
+#define Perl_newCVREF          CPerlObj::Perl_newCVREF
+#define newCVREF               Perl_newCVREF
+#define Perl_newGVOP           CPerlObj::Perl_newGVOP
+#define newGVOP                        Perl_newGVOP
+#define Perl_newGVgen          CPerlObj::Perl_newGVgen
+#define newGVgen               Perl_newGVgen
+#define Perl_newGVREF          CPerlObj::Perl_newGVREF
+#define newGVREF               Perl_newGVREF
+#define Perl_newHVREF          CPerlObj::Perl_newHVREF
+#define newHVREF               Perl_newHVREF
+#define Perl_newHV             CPerlObj::Perl_newHV
+#define newHV                  Perl_newHV
+#define Perl_newHVhv           CPerlObj::Perl_newHVhv
+#define newHVhv                        Perl_newHVhv
+#define Perl_newIO             CPerlObj::Perl_newIO
+#define newIO                  Perl_newIO
+#define Perl_newLISTOP         CPerlObj::Perl_newLISTOP
+#define newLISTOP              Perl_newLISTOP
+#define Perl_newPMOP           CPerlObj::Perl_newPMOP
+#define newPMOP                        Perl_newPMOP
+#define Perl_newPVOP           CPerlObj::Perl_newPVOP
+#define newPVOP                        Perl_newPVOP
+#define Perl_newRV             CPerlObj::Perl_newRV
+#define newRV                  Perl_newRV
+#define Perl_newRV_noinc       CPerlObj::Perl_newRV_noinc
+#define newRV_noinc            Perl_newRV_noinc
+#define Perl_newSV             CPerlObj::Perl_newSV
+#define newSV                  Perl_newSV
+#define Perl_newSVREF          CPerlObj::Perl_newSVREF
+#define newSVREF               Perl_newSVREF
+#define Perl_newSVOP           CPerlObj::Perl_newSVOP
+#define newSVOP                        Perl_newSVOP
+#define Perl_newSViv           CPerlObj::Perl_newSViv
+#define newSViv                        Perl_newSViv
+#define Perl_newSVnv           CPerlObj::Perl_newSVnv
+#define newSVnv                        Perl_newSVnv
+#define Perl_newSVpv           CPerlObj::Perl_newSVpv
+#define newSVpv                        Perl_newSVpv
+#define Perl_newSVpvn          CPerlObj::Perl_newSVpvn
+#define newSVpvn               Perl_newSVpvn
+#define Perl_newSVpvf          CPerlObj::Perl_newSVpvf
+#define newSVpvf               Perl_newSVpvf
+#define Perl_newSVrv           CPerlObj::Perl_newSVrv
+#define newSVrv                        Perl_newSVrv
+#define Perl_newSVsv           CPerlObj::Perl_newSVsv
+#define newSVsv                        Perl_newSVsv
+#define Perl_newUNOP           CPerlObj::Perl_newUNOP
+#define newUNOP                        Perl_newUNOP
+#define Perl_newWHILEOP                CPerlObj::Perl_newWHILEOP
+#define newWHILEOP             Perl_newWHILEOP
 #if defined(USE_THREADS)
-#define Perl_unlock_condpair   CPerlObj::unlock_condpair
-#endif
-#define Perl_unsharepvn                CPerlObj::unsharepvn
-#define Perl_unshare_hek       CPerlObj::unshare_hek
-#define Perl_utilize           CPerlObj::utilize
-#define Perl_utf16_to_utf8     CPerlObj::utf16_to_utf8
-#define Perl_utf16_to_utf8_reversed    CPerlObj::utf16_to_utf8_reversed
-#define Perl_utf8_distance     CPerlObj::utf8_distance
-#define Perl_utf8_hop          CPerlObj::utf8_hop
-#define Perl_utf8_to_uv                CPerlObj::utf8_to_uv
-#define Perl_uv_to_utf8                CPerlObj::uv_to_utf8
-#define Perl_vivify_defelem    CPerlObj::vivify_defelem
-#define Perl_vivify_ref                CPerlObj::vivify_ref
-#define Perl_wait4pid          CPerlObj::wait4pid
-#define Perl_warn              CPerlObj::warn
-#define Perl_warner            CPerlObj::warner
-#define Perl_watch             CPerlObj::watch
-#define Perl_whichsig          CPerlObj::whichsig
-#define Perl_yyerror           CPerlObj::yyerror
-#if defined(USE_PURE_BISON)
-#define Perl_yylex             CPerlObj::yylex
-#else
-#define Perl_yylex             CPerlObj::yylex
-#endif
-#define Perl_yyparse           CPerlObj::yyparse
-#define Perl_yywarn            CPerlObj::yywarn
-#if defined(MYMALLOC)
-#define Perl_dump_mstats       CPerlObj::dump_mstats
-#endif
-#define Perl_safesysmalloc     CPerlObj::safesysmalloc
-#define Perl_safesyscalloc     CPerlObj::safesyscalloc
-#define Perl_safesysrealloc    CPerlObj::safesysrealloc
-#define Perl_safesysfree       CPerlObj::safesysfree
-#if defined(LEAKTEST)
-#define Perl_safexmalloc       CPerlObj::safexmalloc
-#define Perl_safexcalloc       CPerlObj::safexcalloc
-#define Perl_safexrealloc      CPerlObj::safexrealloc
-#define Perl_safexfree         CPerlObj::safexfree
-#endif
-#if defined(PERL_GLOBAL_STRUCT)
-#define Perl_GetVars           CPerlObj::GetVars
-#endif
-#define Perl_yydestruct                CPerlObj::yydestruct
-#define Perl_runops_standard   CPerlObj::runops_standard
-#define Perl_runops_debug      CPerlObj::runops_debug
-#if defined(WIN32)
-#define Perl_ErrorNo           CPerlObj::ErrorNo
-#endif
-#define Perl_sv_catpvf_mg      CPerlObj::sv_catpvf_mg
-#define Perl_sv_catpv_mg       CPerlObj::sv_catpv_mg
-#define Perl_sv_catpvn_mg      CPerlObj::sv_catpvn_mg
-#define Perl_sv_catsv_mg       CPerlObj::sv_catsv_mg
-#define Perl_sv_setpvf_mg      CPerlObj::sv_setpvf_mg
-#define Perl_sv_setiv_mg       CPerlObj::sv_setiv_mg
-#define Perl_sv_setpviv_mg     CPerlObj::sv_setpviv_mg
-#define Perl_sv_setuv_mg       CPerlObj::sv_setuv_mg
-#define Perl_sv_setnv_mg       CPerlObj::sv_setnv_mg
-#define Perl_sv_setpv_mg       CPerlObj::sv_setpv_mg
-#define Perl_sv_setpvn_mg      CPerlObj::sv_setpvn_mg
-#define Perl_sv_setsv_mg       CPerlObj::sv_setsv_mg
-#define Perl_sv_usepvn_mg      CPerlObj::sv_usepvn_mg
-#define Perl_get_vtbl          CPerlObj::get_vtbl
-#define Perl_pv_display                CPerlObj::pv_display
-#define Perl_dump_indent       CPerlObj::dump_indent
-#define Perl_do_gv_dump                CPerlObj::do_gv_dump
-#define Perl_do_gvgv_dump      CPerlObj::do_gvgv_dump
-#define Perl_do_hv_dump                CPerlObj::do_hv_dump
-#define Perl_do_magic_dump     CPerlObj::do_magic_dump
-#define Perl_do_op_dump                CPerlObj::do_op_dump
-#define Perl_do_pmop_dump      CPerlObj::do_pmop_dump
-#define Perl_do_sv_dump                CPerlObj::do_sv_dump
-#define Perl_magic_dump                CPerlObj::magic_dump
-#define Perl_default_protect   CPerlObj::default_protect
-#define Perl_reginitcolors     CPerlObj::reginitcolors
-#define Perl_sv_2pv_nolen      CPerlObj::sv_2pv_nolen
-#define Perl_sv_pv             CPerlObj::sv_pv
-#define Perl_sv_force_normal   CPerlObj::sv_force_normal
-#define Perl_tmps_grow         CPerlObj::tmps_grow
-#define Perl_sv_rvweaken       CPerlObj::sv_rvweaken
-#define Perl_magic_killbackrefs        CPerlObj::magic_killbackrefs
-#if defined(PERL_IN_AV_C)
-#define S_avhv_index_sv                CPerlObj::avhv_index_sv
-#endif
-#if defined(PERL_IN_DOOP_C)
-#define S_do_trans_CC_simple   CPerlObj::do_trans_CC_simple
-#define S_do_trans_CC_count    CPerlObj::do_trans_CC_count
-#define S_do_trans_CC_complex  CPerlObj::do_trans_CC_complex
-#define S_do_trans_UU_simple   CPerlObj::do_trans_UU_simple
-#define S_do_trans_UU_count    CPerlObj::do_trans_UU_count
-#define S_do_trans_UU_complex  CPerlObj::do_trans_UU_complex
-#define S_do_trans_UC_simple   CPerlObj::do_trans_UC_simple
-#define S_do_trans_CU_simple   CPerlObj::do_trans_CU_simple
-#define S_do_trans_UC_trivial  CPerlObj::do_trans_UC_trivial
-#define S_do_trans_CU_trivial  CPerlObj::do_trans_CU_trivial
-#endif
-#if defined(PERL_IN_GV_C)
-#define S_gv_init_sv           CPerlObj::gv_init_sv
-#endif
-#if defined(PERL_IN_HV_C)
-#define S_hsplit               CPerlObj::hsplit
-#define S_hfreeentries         CPerlObj::hfreeentries
-#define S_more_he              CPerlObj::more_he
-#define S_new_he               CPerlObj::new_he
-#define S_del_he               CPerlObj::del_he
-#define S_save_hek             CPerlObj::save_hek
-#define S_hv_magic_check       CPerlObj::hv_magic_check
-#endif
-#if defined(PERL_IN_MG_C)
-#define S_save_magic           CPerlObj::save_magic
-#define S_magic_methpack       CPerlObj::magic_methpack
-#define S_magic_methcall       CPerlObj::magic_methcall
-#define S_unwind_handler_stack CPerlObj::unwind_handler_stack
-#define S_restore_magic                CPerlObj::restore_magic
-#endif
-#if defined(PERL_IN_OP_C)
-#define S_list_assignment      CPerlObj::list_assignment
-#define S_bad_type             CPerlObj::bad_type
-#define S_modkids              CPerlObj::modkids
-#define S_no_bareword_allowed  CPerlObj::no_bareword_allowed
-#define S_no_fh_allowed                CPerlObj::no_fh_allowed
-#define S_scalarboolean                CPerlObj::scalarboolean
-#define S_too_few_arguments    CPerlObj::too_few_arguments
-#define S_too_many_arguments   CPerlObj::too_many_arguments
-#define S_null                 CPerlObj::null
-#define S_pad_findlex          CPerlObj::pad_findlex
-#define S_newDEFSVOP           CPerlObj::newDEFSVOP
-#define S_new_logop            CPerlObj::new_logop
-#define S_simplify_sort                CPerlObj::simplify_sort
-#define S_is_handle_constructor        CPerlObj::is_handle_constructor
-#define S_gv_ename             CPerlObj::gv_ename
-#define S_cv_clone2            CPerlObj::cv_clone2
-#define S_scalar_mod_type      CPerlObj::scalar_mod_type
-#  if defined(PL_OP_SLAB_ALLOC)
-#define S_Slab_Alloc           CPerlObj::Slab_Alloc
-#  endif
-#endif
-#if defined(PERL_IN_PERL_C)
-#define S_find_beginning       CPerlObj::find_beginning
-#define S_forbid_setid         CPerlObj::forbid_setid
-#define S_incpush              CPerlObj::incpush
-#define S_init_interp          CPerlObj::init_interp
-#define S_init_ids             CPerlObj::init_ids
-#define S_init_debugger                CPerlObj::init_debugger
-#define S_init_lexer           CPerlObj::init_lexer
-#define S_init_main_stash      CPerlObj::init_main_stash
-#define S_init_perllib         CPerlObj::init_perllib
-#define S_init_postdump_symbols        CPerlObj::init_postdump_symbols
-#define S_init_predump_symbols CPerlObj::init_predump_symbols
-#define S_my_exit_jump         CPerlObj::my_exit_jump
-#define S_nuke_stacks          CPerlObj::nuke_stacks
-#define S_open_script          CPerlObj::open_script
-#define S_usage                        CPerlObj::usage
-#define S_validate_suid                CPerlObj::validate_suid
-#define S_read_e_script                CPerlObj::read_e_script
-#  if defined(IAMSUID)
-#define S_fd_on_nosuid_fs      CPerlObj::fd_on_nosuid_fs
-#  endif
-#define S_parse_body           CPerlObj::parse_body
-#define S_run_body             CPerlObj::run_body
-#define S_call_body            CPerlObj::call_body
-#define S_call_xbody           CPerlObj::call_xbody
-#define S_call_list_body       CPerlObj::call_list_body
-#  if defined(USE_THREADS)
-#define S_init_main_thread     CPerlObj::init_main_thread
-#  endif
+#define Perl_new_struct_thread CPerlObj::Perl_new_struct_thread
+#define new_struct_thread      Perl_new_struct_thread
 #endif
-#if defined(PERL_IN_PP_C)
-#define S_doencodes            CPerlObj::doencodes
-#define S_refto                        CPerlObj::refto
-#define S_seed                 CPerlObj::seed
-#define S_mul128               CPerlObj::mul128
-#define S_is_an_int            CPerlObj::is_an_int
-#define S_div128               CPerlObj::div128
-#endif
-#if defined(PERL_IN_PP_CTL_C)
-#define S_docatch              CPerlObj::docatch
-#define S_docatch_body         CPerlObj::docatch_body
-#define S_dofindlabel          CPerlObj::dofindlabel
-#define S_doparseform          CPerlObj::doparseform
-#define S_dopoptoeval          CPerlObj::dopoptoeval
-#define S_dopoptolabel         CPerlObj::dopoptolabel
-#define S_dopoptoloop          CPerlObj::dopoptoloop
-#define S_dopoptosub           CPerlObj::dopoptosub
-#define S_dopoptosub_at                CPerlObj::dopoptosub_at
-#define S_free_closures                CPerlObj::free_closures
-#define S_save_lines           CPerlObj::save_lines
-#define S_doeval               CPerlObj::doeval
-#define S_doopen_pmc           CPerlObj::doopen_pmc
-#define S_qsortsv              CPerlObj::qsortsv
-#define S_sortcv               CPerlObj::sortcv
-#define S_sv_ncmp              CPerlObj::sv_ncmp
-#define S_sv_i_ncmp            CPerlObj::sv_i_ncmp
-#define S_amagic_ncmp          CPerlObj::amagic_ncmp
-#define S_amagic_i_ncmp                CPerlObj::amagic_i_ncmp
-#define S_amagic_cmp           CPerlObj::amagic_cmp
-#define S_amagic_cmp_locale    CPerlObj::amagic_cmp_locale
-#endif
-#if defined(PERL_IN_PP_HOT_C)
-#define S_get_db_sub           CPerlObj::get_db_sub
-#  if defined(USE_THREADS)
-#define S_unset_cvowner                CPerlObj::unset_cvowner
-#  endif
+#define Perl_new_stackinfo     CPerlObj::Perl_new_stackinfo
+#define new_stackinfo          Perl_new_stackinfo
+#define Perl_nextargv          CPerlObj::Perl_nextargv
+#define nextargv               Perl_nextargv
+#define Perl_ninstr            CPerlObj::Perl_ninstr
+#define ninstr                 Perl_ninstr
+#define Perl_oopsCV            CPerlObj::Perl_oopsCV
+#define oopsCV                 Perl_oopsCV
+#define Perl_op_free           CPerlObj::Perl_op_free
+#define op_free                        Perl_op_free
+#define Perl_package           CPerlObj::Perl_package
+#define package                        Perl_package
+#define Perl_pad_alloc         CPerlObj::Perl_pad_alloc
+#define pad_alloc              Perl_pad_alloc
+#define Perl_pad_allocmy       CPerlObj::Perl_pad_allocmy
+#define pad_allocmy            Perl_pad_allocmy
+#define Perl_pad_findmy                CPerlObj::Perl_pad_findmy
+#define pad_findmy             Perl_pad_findmy
+#define Perl_oopsAV            CPerlObj::Perl_oopsAV
+#define oopsAV                 Perl_oopsAV
+#define Perl_oopsHV            CPerlObj::Perl_oopsHV
+#define oopsHV                 Perl_oopsHV
+#define Perl_pad_leavemy       CPerlObj::Perl_pad_leavemy
+#define pad_leavemy            Perl_pad_leavemy
+#define Perl_pad_sv            CPerlObj::Perl_pad_sv
+#define pad_sv                 Perl_pad_sv
+#define Perl_pad_free          CPerlObj::Perl_pad_free
+#define pad_free               Perl_pad_free
+#define Perl_pad_reset         CPerlObj::Perl_pad_reset
+#define pad_reset              Perl_pad_reset
+#define Perl_pad_swipe         CPerlObj::Perl_pad_swipe
+#define pad_swipe              Perl_pad_swipe
+#define Perl_peep              CPerlObj::Perl_peep
+#define peep                   Perl_peep
+#if defined(PERL_OBJECT)
+#define perl_construct         CPerlObj::perl_construct
+#define perl_destruct          CPerlObj::perl_destruct
+#define perl_free              CPerlObj::perl_free
+#define perl_run               CPerlObj::perl_run
+#define perl_parse             CPerlObj::perl_parse
+#else
+#define perl_alloc             CPerlObj::perl_alloc
+#define perl_construct         CPerlObj::perl_construct
+#define perl_destruct          CPerlObj::perl_destruct
+#define perl_free              CPerlObj::perl_free
+#define perl_run               CPerlObj::perl_run
+#define perl_parse             CPerlObj::perl_parse
+#endif
+#define Perl_call_atexit       CPerlObj::Perl_call_atexit
+#define call_atexit            Perl_call_atexit
+#define Perl_call_argv         CPerlObj::Perl_call_argv
+#define call_argv              Perl_call_argv
+#define Perl_call_method       CPerlObj::Perl_call_method
+#define call_method            Perl_call_method
+#define Perl_call_pv           CPerlObj::Perl_call_pv
+#define call_pv                        Perl_call_pv
+#define Perl_call_sv           CPerlObj::Perl_call_sv
+#define call_sv                        Perl_call_sv
+#define Perl_eval_pv           CPerlObj::Perl_eval_pv
+#define eval_pv                        Perl_eval_pv
+#define Perl_eval_sv           CPerlObj::Perl_eval_sv
+#define eval_sv                        Perl_eval_sv
+#define Perl_get_sv            CPerlObj::Perl_get_sv
+#define get_sv                 Perl_get_sv
+#define Perl_get_av            CPerlObj::Perl_get_av
+#define get_av                 Perl_get_av
+#define Perl_get_hv            CPerlObj::Perl_get_hv
+#define get_hv                 Perl_get_hv
+#define Perl_get_cv            CPerlObj::Perl_get_cv
+#define get_cv                 Perl_get_cv
+#define Perl_init_i18nl10n     CPerlObj::Perl_init_i18nl10n
+#define init_i18nl10n          Perl_init_i18nl10n
+#define Perl_init_i18nl14n     CPerlObj::Perl_init_i18nl14n
+#define init_i18nl14n          Perl_init_i18nl14n
+#define Perl_new_collate       CPerlObj::Perl_new_collate
+#define new_collate            Perl_new_collate
+#define Perl_new_ctype         CPerlObj::Perl_new_ctype
+#define new_ctype              Perl_new_ctype
+#define Perl_new_numeric       CPerlObj::Perl_new_numeric
+#define new_numeric            Perl_new_numeric
+#define Perl_set_numeric_local CPerlObj::Perl_set_numeric_local
+#define set_numeric_local      Perl_set_numeric_local
+#define Perl_set_numeric_radix CPerlObj::Perl_set_numeric_radix
+#define set_numeric_radix      Perl_set_numeric_radix
+#define Perl_set_numeric_standard      CPerlObj::Perl_set_numeric_standard
+#define set_numeric_standard   Perl_set_numeric_standard
+#define Perl_require_pv                CPerlObj::Perl_require_pv
+#define require_pv             Perl_require_pv
+#define Perl_pidgone           CPerlObj::Perl_pidgone
+#define pidgone                        Perl_pidgone
+#define Perl_pmflag            CPerlObj::Perl_pmflag
+#define pmflag                 Perl_pmflag
+#define Perl_pmruntime         CPerlObj::Perl_pmruntime
+#define pmruntime              Perl_pmruntime
+#define Perl_pmtrans           CPerlObj::Perl_pmtrans
+#define pmtrans                        Perl_pmtrans
+#define Perl_pop_return                CPerlObj::Perl_pop_return
+#define pop_return             Perl_pop_return
+#define Perl_pop_scope         CPerlObj::Perl_pop_scope
+#define pop_scope              Perl_pop_scope
+#define Perl_prepend_elem      CPerlObj::Perl_prepend_elem
+#define prepend_elem           Perl_prepend_elem
+#define Perl_push_return       CPerlObj::Perl_push_return
+#define push_return            Perl_push_return
+#define Perl_push_scope                CPerlObj::Perl_push_scope
+#define push_scope             Perl_push_scope
+#define Perl_ref               CPerlObj::Perl_ref
+#define ref                    Perl_ref
+#define Perl_refkids           CPerlObj::Perl_refkids
+#define refkids                        Perl_refkids
+#define Perl_regdump           CPerlObj::Perl_regdump
+#define regdump                        Perl_regdump
+#define Perl_pregexec          CPerlObj::Perl_pregexec
+#define pregexec               Perl_pregexec
+#define Perl_pregfree          CPerlObj::Perl_pregfree
+#define pregfree               Perl_pregfree
+#define Perl_pregcomp          CPerlObj::Perl_pregcomp
+#define pregcomp               Perl_pregcomp
+#define Perl_regexec_flags     CPerlObj::Perl_regexec_flags
+#define regexec_flags          Perl_regexec_flags
+#define Perl_regnext           CPerlObj::Perl_regnext
+#define regnext                        Perl_regnext
+#define Perl_regprop           CPerlObj::Perl_regprop
+#define regprop                        Perl_regprop
+#define Perl_repeatcpy         CPerlObj::Perl_repeatcpy
+#define repeatcpy              Perl_repeatcpy
+#define Perl_rninstr           CPerlObj::Perl_rninstr
+#define rninstr                        Perl_rninstr
+#define Perl_rsignal           CPerlObj::Perl_rsignal
+#define rsignal                        Perl_rsignal
+#define Perl_rsignal_restore   CPerlObj::Perl_rsignal_restore
+#define rsignal_restore                Perl_rsignal_restore
+#define Perl_rsignal_save      CPerlObj::Perl_rsignal_save
+#define rsignal_save           Perl_rsignal_save
+#define Perl_rsignal_state     CPerlObj::Perl_rsignal_state
+#define rsignal_state          Perl_rsignal_state
+#define Perl_rxres_free                CPerlObj::Perl_rxres_free
+#define rxres_free             Perl_rxres_free
+#define Perl_rxres_restore     CPerlObj::Perl_rxres_restore
+#define rxres_restore          Perl_rxres_restore
+#define Perl_rxres_save                CPerlObj::Perl_rxres_save
+#define rxres_save             Perl_rxres_save
+#if !defined(HAS_RENAME)
+#define Perl_same_dirent       CPerlObj::Perl_same_dirent
+#define same_dirent            Perl_same_dirent
 #endif
-#if defined(PERL_IN_PP_SYS_C)
-#define S_doform               CPerlObj::doform
-#define S_emulate_eaccess      CPerlObj::emulate_eaccess
-#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-#define S_dooneliner           CPerlObj::dooneliner
-#  endif
+#define Perl_savepv            CPerlObj::Perl_savepv
+#define savepv                 Perl_savepv
+#define Perl_savepvn           CPerlObj::Perl_savepvn
+#define savepvn                        Perl_savepvn
+#define Perl_savestack_grow    CPerlObj::Perl_savestack_grow
+#define savestack_grow         Perl_savestack_grow
+#define Perl_save_aelem                CPerlObj::Perl_save_aelem
+#define save_aelem             Perl_save_aelem
+#define Perl_save_alloc                CPerlObj::Perl_save_alloc
+#define save_alloc             Perl_save_alloc
+#define Perl_save_aptr         CPerlObj::Perl_save_aptr
+#define save_aptr              Perl_save_aptr
+#define Perl_save_ary          CPerlObj::Perl_save_ary
+#define save_ary               Perl_save_ary
+#define Perl_save_clearsv      CPerlObj::Perl_save_clearsv
+#define save_clearsv           Perl_save_clearsv
+#define Perl_save_delete       CPerlObj::Perl_save_delete
+#define save_delete            Perl_save_delete
+#define Perl_save_destructor   CPerlObj::Perl_save_destructor
+#define save_destructor                Perl_save_destructor
+#define Perl_save_freesv       CPerlObj::Perl_save_freesv
+#define save_freesv            Perl_save_freesv
+#define Perl_save_freeop       CPerlObj::Perl_save_freeop
+#define save_freeop            Perl_save_freeop
+#define Perl_save_freepv       CPerlObj::Perl_save_freepv
+#define save_freepv            Perl_save_freepv
+#define Perl_save_generic_svref        CPerlObj::Perl_save_generic_svref
+#define save_generic_svref     Perl_save_generic_svref
+#define Perl_save_gp           CPerlObj::Perl_save_gp
+#define save_gp                        Perl_save_gp
+#define Perl_save_hash         CPerlObj::Perl_save_hash
+#define save_hash              Perl_save_hash
+#define Perl_save_helem                CPerlObj::Perl_save_helem
+#define save_helem             Perl_save_helem
+#define Perl_save_hints                CPerlObj::Perl_save_hints
+#define save_hints             Perl_save_hints
+#define Perl_save_hptr         CPerlObj::Perl_save_hptr
+#define save_hptr              Perl_save_hptr
+#define Perl_save_I16          CPerlObj::Perl_save_I16
+#define save_I16               Perl_save_I16
+#define Perl_save_I32          CPerlObj::Perl_save_I32
+#define save_I32               Perl_save_I32
+#define Perl_save_int          CPerlObj::Perl_save_int
+#define save_int               Perl_save_int
+#define Perl_save_item         CPerlObj::Perl_save_item
+#define save_item              Perl_save_item
+#define Perl_save_iv           CPerlObj::Perl_save_iv
+#define save_iv                        Perl_save_iv
+#define Perl_save_list         CPerlObj::Perl_save_list
+#define save_list              Perl_save_list
+#define Perl_save_long         CPerlObj::Perl_save_long
+#define save_long              Perl_save_long
+#define Perl_save_nogv         CPerlObj::Perl_save_nogv
+#define save_nogv              Perl_save_nogv
+#define Perl_save_op           CPerlObj::Perl_save_op
+#define save_op                        Perl_save_op
+#define Perl_save_scalar       CPerlObj::Perl_save_scalar
+#define save_scalar            Perl_save_scalar
+#define Perl_save_pptr         CPerlObj::Perl_save_pptr
+#define save_pptr              Perl_save_pptr
+#define Perl_save_re_context   CPerlObj::Perl_save_re_context
+#define save_re_context                Perl_save_re_context
+#define Perl_save_sptr         CPerlObj::Perl_save_sptr
+#define save_sptr              Perl_save_sptr
+#define Perl_save_svref                CPerlObj::Perl_save_svref
+#define save_svref             Perl_save_svref
+#define Perl_save_threadsv     CPerlObj::Perl_save_threadsv
+#define save_threadsv          Perl_save_threadsv
+#define Perl_sawparens         CPerlObj::Perl_sawparens
+#define sawparens              Perl_sawparens
+#define Perl_scalar            CPerlObj::Perl_scalar
+#define scalar                 Perl_scalar
+#define Perl_scalarkids                CPerlObj::Perl_scalarkids
+#define scalarkids             Perl_scalarkids
+#define Perl_scalarseq         CPerlObj::Perl_scalarseq
+#define scalarseq              Perl_scalarseq
+#define Perl_scalarvoid                CPerlObj::Perl_scalarvoid
+#define scalarvoid             Perl_scalarvoid
+#define Perl_scan_bin          CPerlObj::Perl_scan_bin
+#define scan_bin               Perl_scan_bin
+#define Perl_scan_hex          CPerlObj::Perl_scan_hex
+#define scan_hex               Perl_scan_hex
+#define Perl_scan_num          CPerlObj::Perl_scan_num
+#define scan_num               Perl_scan_num
+#define Perl_scan_oct          CPerlObj::Perl_scan_oct
+#define scan_oct               Perl_scan_oct
+#define Perl_scope             CPerlObj::Perl_scope
+#define scope                  Perl_scope
+#define Perl_screaminstr       CPerlObj::Perl_screaminstr
+#define screaminstr            Perl_screaminstr
+#if !defined(VMS)
+#define Perl_setenv_getix      CPerlObj::Perl_setenv_getix
+#define setenv_getix           Perl_setenv_getix
 #endif
-#if defined(PERL_IN_REGCOMP_C)
-#define S_reg                  CPerlObj::reg
-#define S_reganode             CPerlObj::reganode
-#define S_regatom              CPerlObj::regatom
-#define S_regbranch            CPerlObj::regbranch
-#define S_regc                 CPerlObj::regc
-#define S_reguni               CPerlObj::reguni
-#define S_regclass             CPerlObj::regclass
-#define S_regclassutf8         CPerlObj::regclassutf8
-#define S_regcurly             CPerlObj::regcurly
-#define S_reg_node             CPerlObj::reg_node
-#define S_regpiece             CPerlObj::regpiece
-#define S_reginsert            CPerlObj::reginsert
-#define S_regoptail            CPerlObj::regoptail
-#define S_regtail              CPerlObj::regtail
-#define S_regwhite             CPerlObj::regwhite
-#define S_nextchar             CPerlObj::nextchar
-#define S_dumpuntil            CPerlObj::dumpuntil
-#define S_scan_commit          CPerlObj::scan_commit
-#define S_study_chunk          CPerlObj::study_chunk
-#define S_add_data             CPerlObj::add_data
-#define S_re_croak2            CPerlObj::re_croak2
-#define S_regpposixcc          CPerlObj::regpposixcc
-#define S_clear_re             CPerlObj::clear_re
-#endif
-#if defined(PERL_IN_REGEXEC_C)
-#define S_regmatch             CPerlObj::regmatch
-#define S_regrepeat            CPerlObj::regrepeat
-#define S_regrepeat_hard       CPerlObj::regrepeat_hard
-#define S_regtry               CPerlObj::regtry
-#define S_reginclass           CPerlObj::reginclass
-#define S_reginclassutf8       CPerlObj::reginclassutf8
-#define S_regcppush            CPerlObj::regcppush
-#define S_regcppop             CPerlObj::regcppop
-#define S_regcp_set_to         CPerlObj::regcp_set_to
-#define S_cache_re             CPerlObj::cache_re
-#define S_restore_pos          CPerlObj::restore_pos
-#define S_reghop               CPerlObj::reghop
-#define S_reghopmaybe          CPerlObj::reghopmaybe
-#endif
-#if defined(PERL_IN_RUN_C)
-#define S_debprof              CPerlObj::debprof
-#endif
-#if defined(PERL_IN_SCOPE_C)
-#define S_save_scalar_at       CPerlObj::save_scalar_at
-#endif
-#if defined(PERL_IN_SV_C)
-#define S_asIV                 CPerlObj::asIV
-#define S_asUV                 CPerlObj::asUV
-#define S_more_sv              CPerlObj::more_sv
-#define S_more_xiv             CPerlObj::more_xiv
-#define S_more_xnv             CPerlObj::more_xnv
-#define S_more_xpv             CPerlObj::more_xpv
-#define S_more_xrv             CPerlObj::more_xrv
-#define S_new_xiv              CPerlObj::new_xiv
-#define S_new_xnv              CPerlObj::new_xnv
-#define S_new_xpv              CPerlObj::new_xpv
-#define S_new_xrv              CPerlObj::new_xrv
-#define S_del_xiv              CPerlObj::del_xiv
-#define S_del_xnv              CPerlObj::del_xnv
-#define S_del_xpv              CPerlObj::del_xpv
-#define S_del_xrv              CPerlObj::del_xrv
-#define S_sv_unglob            CPerlObj::sv_unglob
-#define S_do_report_used       CPerlObj::do_report_used
-#define S_do_clean_objs                CPerlObj::do_clean_objs
-#define S_do_clean_named_objs  CPerlObj::do_clean_named_objs
-#define S_do_clean_all         CPerlObj::do_clean_all
-#define S_not_a_number         CPerlObj::not_a_number
-#define S_visit                        CPerlObj::visit
-#  if defined(PURIFY)
-#define S_reg_add              CPerlObj::reg_add
-#define S_reg_remove           CPerlObj::reg_remove
-#  else
-#define S_my_safemalloc                CPerlObj::my_safemalloc
-#  endif
-#define S_sv_add_backref       CPerlObj::sv_add_backref
-#define S_sv_del_backref       CPerlObj::sv_del_backref
-#  if defined(DEBUGGING)
-#define S_del_sv               CPerlObj::del_sv
-#  endif
+#define Perl_setdefout         CPerlObj::Perl_setdefout
+#define setdefout              Perl_setdefout
+#define Perl_sharepvn          CPerlObj::Perl_sharepvn
+#define sharepvn               Perl_sharepvn
+#define Perl_share_hek         CPerlObj::Perl_share_hek
+#define share_hek              Perl_share_hek
+#define Perl_sighandler                CPerlObj::Perl_sighandler
+#define sighandler             Perl_sighandler
+#define Perl_stack_grow                CPerlObj::Perl_stack_grow
+#define stack_grow             Perl_stack_grow
+#define Perl_start_subparse    CPerlObj::Perl_start_subparse
+#define start_subparse         Perl_start_subparse
+#define Perl_sub_crush_depth   CPerlObj::Perl_sub_crush_depth
+#define sub_crush_depth                Perl_sub_crush_depth
+#define Perl_sv_2bool          CPerlObj::Perl_sv_2bool
+#define sv_2bool               Perl_sv_2bool
+#define Perl_sv_2cv            CPerlObj::Perl_sv_2cv
+#define sv_2cv                 Perl_sv_2cv
+#define Perl_sv_2io            CPerlObj::Perl_sv_2io
+#define sv_2io                 Perl_sv_2io
+#define Perl_sv_2iv            CPerlObj::Perl_sv_2iv
+#define sv_2iv                 Perl_sv_2iv
+#define Perl_sv_2mortal                CPerlObj::Perl_sv_2mortal
+#define sv_2mortal             Perl_sv_2mortal
+#define Perl_sv_2nv            CPerlObj::Perl_sv_2nv
+#define sv_2nv                 Perl_sv_2nv
+#define Perl_sv_2pv            CPerlObj::Perl_sv_2pv
+#define sv_2pv                 Perl_sv_2pv
+#define Perl_sv_2uv            CPerlObj::Perl_sv_2uv
+#define sv_2uv                 Perl_sv_2uv
+#define Perl_sv_iv             CPerlObj::Perl_sv_iv
+#define sv_iv                  Perl_sv_iv
+#define Perl_sv_uv             CPerlObj::Perl_sv_uv
+#define sv_uv                  Perl_sv_uv
+#define Perl_sv_nv             CPerlObj::Perl_sv_nv
+#define sv_nv                  Perl_sv_nv
+#define Perl_sv_pvn            CPerlObj::Perl_sv_pvn
+#define sv_pvn                 Perl_sv_pvn
+#define Perl_sv_true           CPerlObj::Perl_sv_true
+#define sv_true                        Perl_sv_true
+#define Perl_sv_add_arena      CPerlObj::Perl_sv_add_arena
+#define sv_add_arena           Perl_sv_add_arena
+#define Perl_sv_backoff                CPerlObj::Perl_sv_backoff
+#define sv_backoff             Perl_sv_backoff
+#define Perl_sv_bless          CPerlObj::Perl_sv_bless
+#define sv_bless               Perl_sv_bless
+#define Perl_sv_catpvf         CPerlObj::Perl_sv_catpvf
+#define sv_catpvf              Perl_sv_catpvf
+#define Perl_sv_catpv          CPerlObj::Perl_sv_catpv
+#define sv_catpv               Perl_sv_catpv
+#define Perl_sv_catpvn         CPerlObj::Perl_sv_catpvn
+#define sv_catpvn              Perl_sv_catpvn
+#define Perl_sv_catsv          CPerlObj::Perl_sv_catsv
+#define sv_catsv               Perl_sv_catsv
+#define Perl_sv_chop           CPerlObj::Perl_sv_chop
+#define sv_chop                        Perl_sv_chop
+#define Perl_sv_clean_all      CPerlObj::Perl_sv_clean_all
+#define sv_clean_all           Perl_sv_clean_all
+#define Perl_sv_clean_objs     CPerlObj::Perl_sv_clean_objs
+#define sv_clean_objs          Perl_sv_clean_objs
+#define Perl_sv_clear          CPerlObj::Perl_sv_clear
+#define sv_clear               Perl_sv_clear
+#define Perl_sv_cmp            CPerlObj::Perl_sv_cmp
+#define sv_cmp                 Perl_sv_cmp
+#define Perl_sv_cmp_locale     CPerlObj::Perl_sv_cmp_locale
+#define sv_cmp_locale          Perl_sv_cmp_locale
+#if defined(USE_LOCALE_COLLATE)
+#define Perl_sv_collxfrm       CPerlObj::Perl_sv_collxfrm
+#define sv_collxfrm            Perl_sv_collxfrm
 #endif
-#if defined(PERL_IN_TOKE_C)
-#define S_check_uni            CPerlObj::check_uni
-#define S_force_next           CPerlObj::force_next
-#define S_force_version                CPerlObj::force_version
-#define S_force_word           CPerlObj::force_word
-#define S_tokeq                        CPerlObj::tokeq
-#define S_scan_const           CPerlObj::scan_const
-#define S_scan_formline                CPerlObj::scan_formline
-#define S_scan_heredoc         CPerlObj::scan_heredoc
-#define S_scan_ident           CPerlObj::scan_ident
-#define S_scan_inputsymbol     CPerlObj::scan_inputsymbol
-#define S_scan_pat             CPerlObj::scan_pat
-#define S_scan_str             CPerlObj::scan_str
-#define S_scan_subst           CPerlObj::scan_subst
-#define S_scan_trans           CPerlObj::scan_trans
-#define S_scan_word            CPerlObj::scan_word
-#define S_skipspace            CPerlObj::skipspace
-#define S_checkcomma           CPerlObj::checkcomma
-#define S_force_ident          CPerlObj::force_ident
-#define S_incline              CPerlObj::incline
-#define S_intuit_method                CPerlObj::intuit_method
-#define S_intuit_more          CPerlObj::intuit_more
-#define S_lop                  CPerlObj::lop
-#define S_missingterm          CPerlObj::missingterm
-#define S_no_op                        CPerlObj::no_op
-#define S_set_csh              CPerlObj::set_csh
-#define S_sublex_done          CPerlObj::sublex_done
-#define S_sublex_push          CPerlObj::sublex_push
-#define S_sublex_start         CPerlObj::sublex_start
-#define S_filter_gets          CPerlObj::filter_gets
-#define S_new_constant         CPerlObj::new_constant
-#define S_ao                   CPerlObj::ao
-#define S_depcom               CPerlObj::depcom
-#define S_incl_perldb          CPerlObj::incl_perldb
-#define S_utf16_textfilter     CPerlObj::utf16_textfilter
-#define S_utf16rev_textfilter  CPerlObj::utf16rev_textfilter
-#define S_restore_rsfp         CPerlObj::restore_rsfp
-#define S_restore_expect       CPerlObj::restore_expect
-#define S_restore_lex_expect   CPerlObj::restore_lex_expect
-#  if defined(CRIPPLED_CC)
-#define S_uni                  CPerlObj::uni
-#  endif
-#  if defined(WIN32)
-#define S_win32_textfilter     CPerlObj::win32_textfilter
-#  endif
+#define Perl_sv_compile_2op    CPerlObj::Perl_sv_compile_2op
+#define sv_compile_2op         Perl_sv_compile_2op
+#define Perl_sv_dec            CPerlObj::Perl_sv_dec
+#define sv_dec                 Perl_sv_dec
+#define Perl_sv_dump           CPerlObj::Perl_sv_dump
+#define sv_dump                        Perl_sv_dump
+#define Perl_sv_derived_from   CPerlObj::Perl_sv_derived_from
+#define sv_derived_from                Perl_sv_derived_from
+#define Perl_sv_eq             CPerlObj::Perl_sv_eq
+#define sv_eq                  Perl_sv_eq
+#define Perl_sv_free           CPerlObj::Perl_sv_free
+#define sv_free                        Perl_sv_free
+#define Perl_sv_free_arenas    CPerlObj::Perl_sv_free_arenas
+#define sv_free_arenas         Perl_sv_free_arenas
+#define Perl_sv_gets           CPerlObj::Perl_sv_gets
+#define sv_gets                        Perl_sv_gets
+#define Perl_sv_grow           CPerlObj::Perl_sv_grow
+#define sv_grow                        Perl_sv_grow
+#define Perl_sv_inc            CPerlObj::Perl_sv_inc
+#define sv_inc                 Perl_sv_inc
+#define Perl_sv_insert         CPerlObj::Perl_sv_insert
+#define sv_insert              Perl_sv_insert
+#define Perl_sv_isa            CPerlObj::Perl_sv_isa
+#define sv_isa                 Perl_sv_isa
+#define Perl_sv_isobject       CPerlObj::Perl_sv_isobject
+#define sv_isobject            Perl_sv_isobject
+#define Perl_sv_len            CPerlObj::Perl_sv_len
+#define sv_len                 Perl_sv_len
+#define Perl_sv_len_utf8       CPerlObj::Perl_sv_len_utf8
+#define sv_len_utf8            Perl_sv_len_utf8
+#define Perl_sv_magic          CPerlObj::Perl_sv_magic
+#define sv_magic               Perl_sv_magic
+#define Perl_sv_mortalcopy     CPerlObj::Perl_sv_mortalcopy
+#define sv_mortalcopy          Perl_sv_mortalcopy
+#define Perl_sv_newmortal      CPerlObj::Perl_sv_newmortal
+#define sv_newmortal           Perl_sv_newmortal
+#define Perl_sv_newref         CPerlObj::Perl_sv_newref
+#define sv_newref              Perl_sv_newref
+#define Perl_sv_peek           CPerlObj::Perl_sv_peek
+#define sv_peek                        Perl_sv_peek
+#define Perl_sv_pos_u2b                CPerlObj::Perl_sv_pos_u2b
+#define sv_pos_u2b             Perl_sv_pos_u2b
+#define Perl_sv_pos_b2u                CPerlObj::Perl_sv_pos_b2u
+#define sv_pos_b2u             Perl_sv_pos_b2u
+#define Perl_sv_pvn_force      CPerlObj::Perl_sv_pvn_force
+#define sv_pvn_force           Perl_sv_pvn_force
+#define Perl_sv_reftype                CPerlObj::Perl_sv_reftype
+#define sv_reftype             Perl_sv_reftype
+#define Perl_sv_replace                CPerlObj::Perl_sv_replace
+#define sv_replace             Perl_sv_replace
+#define Perl_sv_report_used    CPerlObj::Perl_sv_report_used
+#define sv_report_used         Perl_sv_report_used
+#define Perl_sv_reset          CPerlObj::Perl_sv_reset
+#define sv_reset               Perl_sv_reset
+#define Perl_sv_setpvf         CPerlObj::Perl_sv_setpvf
+#define sv_setpvf              Perl_sv_setpvf
+#define Perl_sv_setiv          CPerlObj::Perl_sv_setiv
+#define sv_setiv               Perl_sv_setiv
+#define Perl_sv_setpviv                CPerlObj::Perl_sv_setpviv
+#define sv_setpviv             Perl_sv_setpviv
+#define Perl_sv_setuv          CPerlObj::Perl_sv_setuv
+#define sv_setuv               Perl_sv_setuv
+#define Perl_sv_setnv          CPerlObj::Perl_sv_setnv
+#define sv_setnv               Perl_sv_setnv
+#define Perl_sv_setref_iv      CPerlObj::Perl_sv_setref_iv
+#define sv_setref_iv           Perl_sv_setref_iv
+#define Perl_sv_setref_nv      CPerlObj::Perl_sv_setref_nv
+#define sv_setref_nv           Perl_sv_setref_nv
+#define Perl_sv_setref_pv      CPerlObj::Perl_sv_setref_pv
+#define sv_setref_pv           Perl_sv_setref_pv
+#define Perl_sv_setref_pvn     CPerlObj::Perl_sv_setref_pvn
+#define sv_setref_pvn          Perl_sv_setref_pvn
+#define Perl_sv_setpv          CPerlObj::Perl_sv_setpv
+#define sv_setpv               Perl_sv_setpv
+#define Perl_sv_setpvn         CPerlObj::Perl_sv_setpvn
+#define sv_setpvn              Perl_sv_setpvn
+#define Perl_sv_setsv          CPerlObj::Perl_sv_setsv
+#define sv_setsv               Perl_sv_setsv
+#define Perl_sv_taint          CPerlObj::Perl_sv_taint
+#define sv_taint               Perl_sv_taint
+#define Perl_sv_tainted                CPerlObj::Perl_sv_tainted
+#define sv_tainted             Perl_sv_tainted
+#define Perl_sv_unmagic                CPerlObj::Perl_sv_unmagic
+#define sv_unmagic             Perl_sv_unmagic
+#define Perl_sv_unref          CPerlObj::Perl_sv_unref
+#define sv_unref               Perl_sv_unref
+#define Perl_sv_untaint                CPerlObj::Perl_sv_untaint
+#define sv_untaint             Perl_sv_untaint
+#define Perl_sv_upgrade                CPerlObj::Perl_sv_upgrade
+#define sv_upgrade             Perl_sv_upgrade
+#define Perl_sv_usepvn         CPerlObj::Perl_sv_usepvn
+#define sv_usepvn              Perl_sv_usepvn
+#define Perl_sv_vcatpvfn       CPerlObj::Perl_sv_vcatpvfn
+#define sv_vcatpvfn            Perl_sv_vcatpvfn
+#define Perl_sv_vsetpvfn       CPerlObj::Perl_sv_vsetpvfn
+#define sv_vsetpvfn            Perl_sv_vsetpvfn
+#define Perl_swash_init                CPerlObj::Perl_swash_init
+#define swash_init             Perl_swash_init
+#define Perl_swash_fetch       CPerlObj::Perl_swash_fetch
+#define swash_fetch            Perl_swash_fetch
+#define Perl_taint_env         CPerlObj::Perl_taint_env
+#define taint_env              Perl_taint_env
+#define Perl_taint_proper      CPerlObj::Perl_taint_proper
+#define taint_proper           Perl_taint_proper
+#define Perl_to_utf8_lower     CPerlObj::Perl_to_utf8_lower
+#define to_utf8_lower          Perl_to_utf8_lower
+#define Perl_to_utf8_upper     CPerlObj::Perl_to_utf8_upper
+#define to_utf8_upper          Perl_to_utf8_upper
+#define Perl_to_utf8_title     CPerlObj::Perl_to_utf8_title
+#define to_utf8_title          Perl_to_utf8_title
+#if defined(UNLINK_ALL_VERSIONS)
+#define Perl_unlnk             CPerlObj::Perl_unlnk
+#define unlnk                  Perl_unlnk
 #endif
-#if defined(PERL_IN_UNIVERSAL_C)
-#define S_isa_lookup           CPerlObj::isa_lookup
+#if defined(USE_THREADS)
+#define Perl_unlock_condpair   CPerlObj::Perl_unlock_condpair
+#define unlock_condpair                Perl_unlock_condpair
 #endif
-#if defined(PERL_IN_UTIL_C)
-#define S_mess_alloc           CPerlObj::mess_alloc
-#define S_do_croak             CPerlObj::do_croak
-#define S_do_warn              CPerlObj::do_warn
-#  if defined(LEAKTEST)
-#define S_xstat                        CPerlObj::xstat
+#define Perl_unsharepvn                CPerlObj::Perl_unsharepvn
+#define unsharepvn             Perl_unsharepvn
+#define Perl_unshare_hek       CPerlObj::Perl_unshare_hek
+#define unshare_hek            Perl_unshare_hek
+#define Perl_utilize           CPerlObj::Perl_utilize
+#define utilize                        Perl_utilize
+#define Perl_utf16_to_utf8     CPerlObj::Perl_utf16_to_utf8
+#define utf16_to_utf8          Perl_utf16_to_utf8
+#define Perl_utf16_to_utf8_reversed    CPerlObj::Perl_utf16_to_utf8_reversed
+#define utf16_to_utf8_reversed Perl_utf16_to_utf8_reversed
+#define Perl_utf8_distance     CPerlObj::Perl_utf8_distance
+#define utf8_distance          Perl_utf8_distance
+#define Perl_utf8_hop          CPerlObj::Perl_utf8_hop
+#define utf8_hop               Perl_utf8_hop
+#define Perl_utf8_to_uv                CPerlObj::Perl_utf8_to_uv
+#define utf8_to_uv             Perl_utf8_to_uv
+#define Perl_uv_to_utf8                CPerlObj::Perl_uv_to_utf8
+#define uv_to_utf8             Perl_uv_to_utf8
+#define Perl_vivify_defelem    CPerlObj::Perl_vivify_defelem
+#define vivify_defelem         Perl_vivify_defelem
+#define Perl_vivify_ref                CPerlObj::Perl_vivify_ref
+#define vivify_ref             Perl_vivify_ref
+#define Perl_wait4pid          CPerlObj::Perl_wait4pid
+#define wait4pid               Perl_wait4pid
+#define Perl_warn              CPerlObj::Perl_warn
+#define warn                   Perl_warn
+#define Perl_warner            CPerlObj::Perl_warner
+#define warner                 Perl_warner
+#define Perl_watch             CPerlObj::Perl_watch
+#define watch                  Perl_watch
+#define Perl_whichsig          CPerlObj::Perl_whichsig
+#define whichsig               Perl_whichsig
+#define Perl_yyerror           CPerlObj::Perl_yyerror
+#define yyerror                        Perl_yyerror
+#if defined(USE_PURE_BISON)
+#define Perl_yylex             CPerlObj::Perl_yylex
+#define yylex                  Perl_yylex
+#else
+#define Perl_yylex             CPerlObj::Perl_yylex
+#define yylex                  Perl_yylex
+#endif
+#define Perl_yyparse           CPerlObj::Perl_yyparse
+#define yyparse                        Perl_yyparse
+#define Perl_yywarn            CPerlObj::Perl_yywarn
+#define yywarn                 Perl_yywarn
+#if defined(MYMALLOC)
+#define Perl_dump_mstats       CPerlObj::Perl_dump_mstats
+#define dump_mstats            Perl_dump_mstats
+#define Perl_malloc            CPerlObj::Perl_malloc
+#define malloc                 Perl_malloc
+#define Perl_calloc            CPerlObj::Perl_calloc
+#define calloc                 Perl_calloc
+#define Perl_realloc           CPerlObj::Perl_realloc
+#define realloc                        Perl_realloc
+#define Perl_mfree             CPerlObj::Perl_mfree
+#define mfree                  Perl_mfree
+#endif
+#define Perl_safesysmalloc     CPerlObj::Perl_safesysmalloc
+#define safesysmalloc          Perl_safesysmalloc
+#define Perl_safesyscalloc     CPerlObj::Perl_safesyscalloc
+#define safesyscalloc          Perl_safesyscalloc
+#define Perl_safesysrealloc    CPerlObj::Perl_safesysrealloc
+#define safesysrealloc         Perl_safesysrealloc
+#define Perl_safesysfree       CPerlObj::Perl_safesysfree
+#define safesysfree            Perl_safesysfree
+#if defined(LEAKTEST)
+#define Perl_safexmalloc       CPerlObj::Perl_safexmalloc
+#define safexmalloc            Perl_safexmalloc
+#define Perl_safexcalloc       CPerlObj::Perl_safexcalloc
+#define safexcalloc            Perl_safexcalloc
+#define Perl_safexrealloc      CPerlObj::Perl_safexrealloc
+#define safexrealloc           Perl_safexrealloc
+#define Perl_safexfree         CPerlObj::Perl_safexfree
+#define safexfree              Perl_safexfree
+#endif
+#if defined(PERL_GLOBAL_STRUCT)
+#define Perl_GetVars           CPerlObj::Perl_GetVars
+#define GetVars                        Perl_GetVars
+#endif
+#define Perl_yydestruct                CPerlObj::Perl_yydestruct
+#define yydestruct             Perl_yydestruct
+#define Perl_runops_standard   CPerlObj::Perl_runops_standard
+#define runops_standard                Perl_runops_standard
+#define Perl_runops_debug      CPerlObj::Perl_runops_debug
+#define runops_debug           Perl_runops_debug
+#if defined(WIN32)
+#if defined(PERL_OBJECT)
+#define Perl_ErrorNo           CPerlObj::Perl_ErrorNo
+#define ErrorNo                        Perl_ErrorNo
+#else
+#define Perl_ErrorNo           CPerlObj::Perl_ErrorNo
+#define ErrorNo                        Perl_ErrorNo
+#endif
+#endif
+#define Perl_sv_catpvf_mg      CPerlObj::Perl_sv_catpvf_mg
+#define sv_catpvf_mg           Perl_sv_catpvf_mg
+#define Perl_sv_catpv_mg       CPerlObj::Perl_sv_catpv_mg
+#define sv_catpv_mg            Perl_sv_catpv_mg
+#define Perl_sv_catpvn_mg      CPerlObj::Perl_sv_catpvn_mg
+#define sv_catpvn_mg           Perl_sv_catpvn_mg
+#define Perl_sv_catsv_mg       CPerlObj::Perl_sv_catsv_mg
+#define sv_catsv_mg            Perl_sv_catsv_mg
+#define Perl_sv_setpvf_mg      CPerlObj::Perl_sv_setpvf_mg
+#define sv_setpvf_mg           Perl_sv_setpvf_mg
+#define Perl_sv_setiv_mg       CPerlObj::Perl_sv_setiv_mg
+#define sv_setiv_mg            Perl_sv_setiv_mg
+#define Perl_sv_setpviv_mg     CPerlObj::Perl_sv_setpviv_mg
+#define sv_setpviv_mg          Perl_sv_setpviv_mg
+#define Perl_sv_setuv_mg       CPerlObj::Perl_sv_setuv_mg
+#define sv_setuv_mg            Perl_sv_setuv_mg
+#define Perl_sv_setnv_mg       CPerlObj::Perl_sv_setnv_mg
+#define sv_setnv_mg            Perl_sv_setnv_mg
+#define Perl_sv_setpv_mg       CPerlObj::Perl_sv_setpv_mg
+#define sv_setpv_mg            Perl_sv_setpv_mg
+#define Perl_sv_setpvn_mg      CPerlObj::Perl_sv_setpvn_mg
+#define sv_setpvn_mg           Perl_sv_setpvn_mg
+#define Perl_sv_setsv_mg       CPerlObj::Perl_sv_setsv_mg
+#define sv_setsv_mg            Perl_sv_setsv_mg
+#define Perl_sv_usepvn_mg      CPerlObj::Perl_sv_usepvn_mg
+#define sv_usepvn_mg           Perl_sv_usepvn_mg
+#define Perl_get_vtbl          CPerlObj::Perl_get_vtbl
+#define get_vtbl               Perl_get_vtbl
+#define Perl_pv_display                CPerlObj::Perl_pv_display
+#define pv_display             Perl_pv_display
+#define Perl_dump_indent       CPerlObj::Perl_dump_indent
+#define dump_indent            Perl_dump_indent
+#define Perl_do_gv_dump                CPerlObj::Perl_do_gv_dump
+#define do_gv_dump             Perl_do_gv_dump
+#define Perl_do_gvgv_dump      CPerlObj::Perl_do_gvgv_dump
+#define do_gvgv_dump           Perl_do_gvgv_dump
+#define Perl_do_hv_dump                CPerlObj::Perl_do_hv_dump
+#define do_hv_dump             Perl_do_hv_dump
+#define Perl_do_magic_dump     CPerlObj::Perl_do_magic_dump
+#define do_magic_dump          Perl_do_magic_dump
+#define Perl_do_op_dump                CPerlObj::Perl_do_op_dump
+#define do_op_dump             Perl_do_op_dump
+#define Perl_do_pmop_dump      CPerlObj::Perl_do_pmop_dump
+#define do_pmop_dump           Perl_do_pmop_dump
+#define Perl_do_sv_dump                CPerlObj::Perl_do_sv_dump
+#define do_sv_dump             Perl_do_sv_dump
+#define Perl_magic_dump                CPerlObj::Perl_magic_dump
+#define magic_dump             Perl_magic_dump
+#define Perl_default_protect   CPerlObj::Perl_default_protect
+#define default_protect                Perl_default_protect
+#define Perl_reginitcolors     CPerlObj::Perl_reginitcolors
+#define reginitcolors          Perl_reginitcolors
+#define Perl_sv_2pv_nolen      CPerlObj::Perl_sv_2pv_nolen
+#define sv_2pv_nolen           Perl_sv_2pv_nolen
+#define Perl_sv_pv             CPerlObj::Perl_sv_pv
+#define sv_pv                  Perl_sv_pv
+#define Perl_sv_force_normal   CPerlObj::Perl_sv_force_normal
+#define sv_force_normal                Perl_sv_force_normal
+#define Perl_tmps_grow         CPerlObj::Perl_tmps_grow
+#define tmps_grow              Perl_tmps_grow
+#define Perl_sv_rvweaken       CPerlObj::Perl_sv_rvweaken
+#define sv_rvweaken            Perl_sv_rvweaken
+#define Perl_magic_killbackrefs        CPerlObj::Perl_magic_killbackrefs
+#define magic_killbackrefs     Perl_magic_killbackrefs
+#if defined(PERL_OBJECT)
+#endif
+#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
+#define S_avhv_index_sv                CPerlObj::S_avhv_index_sv
+#define avhv_index_sv          S_avhv_index_sv
+#endif
+#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
+#define S_do_trans_CC_simple   CPerlObj::S_do_trans_CC_simple
+#define do_trans_CC_simple     S_do_trans_CC_simple
+#define S_do_trans_CC_count    CPerlObj::S_do_trans_CC_count
+#define do_trans_CC_count      S_do_trans_CC_count
+#define S_do_trans_CC_complex  CPerlObj::S_do_trans_CC_complex
+#define do_trans_CC_complex    S_do_trans_CC_complex
+#define S_do_trans_UU_simple   CPerlObj::S_do_trans_UU_simple
+#define do_trans_UU_simple     S_do_trans_UU_simple
+#define S_do_trans_UU_count    CPerlObj::S_do_trans_UU_count
+#define do_trans_UU_count      S_do_trans_UU_count
+#define S_do_trans_UU_complex  CPerlObj::S_do_trans_UU_complex
+#define do_trans_UU_complex    S_do_trans_UU_complex
+#define S_do_trans_UC_simple   CPerlObj::S_do_trans_UC_simple
+#define do_trans_UC_simple     S_do_trans_UC_simple
+#define S_do_trans_CU_simple   CPerlObj::S_do_trans_CU_simple
+#define do_trans_CU_simple     S_do_trans_CU_simple
+#define S_do_trans_UC_trivial  CPerlObj::S_do_trans_UC_trivial
+#define do_trans_UC_trivial    S_do_trans_UC_trivial
+#define S_do_trans_CU_trivial  CPerlObj::S_do_trans_CU_trivial
+#define do_trans_CU_trivial    S_do_trans_CU_trivial
+#endif
+#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
+#define S_gv_init_sv           CPerlObj::S_gv_init_sv
+#define gv_init_sv             S_gv_init_sv
+#endif
+#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
+#define S_hsplit               CPerlObj::S_hsplit
+#define hsplit                 S_hsplit
+#define S_hfreeentries         CPerlObj::S_hfreeentries
+#define hfreeentries           S_hfreeentries
+#define S_more_he              CPerlObj::S_more_he
+#define more_he                        S_more_he
+#define S_new_he               CPerlObj::S_new_he
+#define new_he                 S_new_he
+#define S_del_he               CPerlObj::S_del_he
+#define del_he                 S_del_he
+#define S_save_hek             CPerlObj::S_save_hek
+#define save_hek               S_save_hek
+#define S_hv_magic_check       CPerlObj::S_hv_magic_check
+#define hv_magic_check         S_hv_magic_check
+#endif
+#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
+#define S_save_magic           CPerlObj::S_save_magic
+#define save_magic             S_save_magic
+#define S_magic_methpack       CPerlObj::S_magic_methpack
+#define magic_methpack         S_magic_methpack
+#define S_magic_methcall       CPerlObj::S_magic_methcall
+#define magic_methcall         S_magic_methcall
+#define S_unwind_handler_stack CPerlObj::S_unwind_handler_stack
+#define unwind_handler_stack   S_unwind_handler_stack
+#define S_restore_magic                CPerlObj::S_restore_magic
+#define restore_magic          S_restore_magic
+#endif
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#define S_list_assignment      CPerlObj::S_list_assignment
+#define list_assignment                S_list_assignment
+#define S_bad_type             CPerlObj::S_bad_type
+#define bad_type               S_bad_type
+#define S_modkids              CPerlObj::S_modkids
+#define modkids                        S_modkids
+#define S_no_bareword_allowed  CPerlObj::S_no_bareword_allowed
+#define no_bareword_allowed    S_no_bareword_allowed
+#define S_no_fh_allowed                CPerlObj::S_no_fh_allowed
+#define no_fh_allowed          S_no_fh_allowed
+#define S_scalarboolean                CPerlObj::S_scalarboolean
+#define scalarboolean          S_scalarboolean
+#define S_too_few_arguments    CPerlObj::S_too_few_arguments
+#define too_few_arguments      S_too_few_arguments
+#define S_too_many_arguments   CPerlObj::S_too_many_arguments
+#define too_many_arguments     S_too_many_arguments
+#define S_null                 CPerlObj::S_null
+#define null                   S_null
+#define S_pad_findlex          CPerlObj::S_pad_findlex
+#define pad_findlex            S_pad_findlex
+#define S_newDEFSVOP           CPerlObj::S_newDEFSVOP
+#define newDEFSVOP             S_newDEFSVOP
+#define S_new_logop            CPerlObj::S_new_logop
+#define new_logop              S_new_logop
+#define S_simplify_sort                CPerlObj::S_simplify_sort
+#define simplify_sort          S_simplify_sort
+#define S_is_handle_constructor        CPerlObj::S_is_handle_constructor
+#define is_handle_constructor  S_is_handle_constructor
+#define S_gv_ename             CPerlObj::S_gv_ename
+#define gv_ename               S_gv_ename
+#define S_cv_clone2            CPerlObj::S_cv_clone2
+#define cv_clone2              S_cv_clone2
+#define S_scalar_mod_type      CPerlObj::S_scalar_mod_type
+#define scalar_mod_type                S_scalar_mod_type
+#  if defined(PL_OP_SLAB_ALLOC)
+#define S_Slab_Alloc           CPerlObj::S_Slab_Alloc
+#define Slab_Alloc             S_Slab_Alloc
 #  endif
 #endif
-#define Perl_ck_anoncode       CPerlObj::ck_anoncode
-#define Perl_ck_bitop          CPerlObj::ck_bitop
-#define Perl_ck_concat         CPerlObj::ck_concat
-#define Perl_ck_defined                CPerlObj::ck_defined
-#define Perl_ck_delete         CPerlObj::ck_delete
-#define Perl_ck_eof            CPerlObj::ck_eof
-#define Perl_ck_eval           CPerlObj::ck_eval
-#define Perl_ck_exec           CPerlObj::ck_exec
-#define Perl_ck_exists         CPerlObj::ck_exists
-#define Perl_ck_ftst           CPerlObj::ck_ftst
-#define Perl_ck_fun            CPerlObj::ck_fun
-#define Perl_ck_fun_locale     CPerlObj::ck_fun_locale
-#define Perl_ck_glob           CPerlObj::ck_glob
-#define Perl_ck_grep           CPerlObj::ck_grep
-#define Perl_ck_index          CPerlObj::ck_index
-#define Perl_ck_lengthconst    CPerlObj::ck_lengthconst
-#define Perl_ck_lfun           CPerlObj::ck_lfun
-#define Perl_ck_listiob                CPerlObj::ck_listiob
-#define Perl_ck_match          CPerlObj::ck_match
-#define Perl_ck_null           CPerlObj::ck_null
-#define Perl_ck_repeat         CPerlObj::ck_repeat
-#define Perl_ck_require                CPerlObj::ck_require
-#define Perl_ck_rfun           CPerlObj::ck_rfun
-#define Perl_ck_rvconst                CPerlObj::ck_rvconst
-#define Perl_ck_scmp           CPerlObj::ck_scmp
-#define Perl_ck_select         CPerlObj::ck_select
-#define Perl_ck_shift          CPerlObj::ck_shift
-#define Perl_ck_sort           CPerlObj::ck_sort
-#define Perl_ck_spair          CPerlObj::ck_spair
-#define Perl_ck_split          CPerlObj::ck_split
-#define Perl_ck_subr           CPerlObj::ck_subr
-#define Perl_ck_svconst                CPerlObj::ck_svconst
-#define Perl_ck_trunc          CPerlObj::ck_trunc
-#define Perl_pp_aassign                CPerlObj::pp_aassign
-#define Perl_pp_abs            CPerlObj::pp_abs
-#define Perl_pp_accept         CPerlObj::pp_accept
-#define Perl_pp_add            CPerlObj::pp_add
-#define Perl_pp_aelem          CPerlObj::pp_aelem
-#define Perl_pp_aelemfast      CPerlObj::pp_aelemfast
-#define Perl_pp_alarm          CPerlObj::pp_alarm
-#define Perl_pp_and            CPerlObj::pp_and
-#define Perl_pp_andassign      CPerlObj::pp_andassign
-#define Perl_pp_anoncode       CPerlObj::pp_anoncode
-#define Perl_pp_anonhash       CPerlObj::pp_anonhash
-#define Perl_pp_anonlist       CPerlObj::pp_anonlist
-#define Perl_pp_aslice         CPerlObj::pp_aslice
-#define Perl_pp_atan2          CPerlObj::pp_atan2
-#define Perl_pp_av2arylen      CPerlObj::pp_av2arylen
-#define Perl_pp_backtick       CPerlObj::pp_backtick
-#define Perl_pp_bind           CPerlObj::pp_bind
-#define Perl_pp_binmode                CPerlObj::pp_binmode
-#define Perl_pp_bit_and                CPerlObj::pp_bit_and
-#define Perl_pp_bit_or         CPerlObj::pp_bit_or
-#define Perl_pp_bit_xor                CPerlObj::pp_bit_xor
-#define Perl_pp_bless          CPerlObj::pp_bless
-#define Perl_pp_caller         CPerlObj::pp_caller
-#define Perl_pp_chdir          CPerlObj::pp_chdir
-#define Perl_pp_chmod          CPerlObj::pp_chmod
-#define Perl_pp_chomp          CPerlObj::pp_chomp
-#define Perl_pp_chop           CPerlObj::pp_chop
-#define Perl_pp_chown          CPerlObj::pp_chown
-#define Perl_pp_chr            CPerlObj::pp_chr
-#define Perl_pp_chroot         CPerlObj::pp_chroot
-#define Perl_pp_close          CPerlObj::pp_close
-#define Perl_pp_closedir       CPerlObj::pp_closedir
-#define Perl_pp_complement     CPerlObj::pp_complement
-#define Perl_pp_concat         CPerlObj::pp_concat
-#define Perl_pp_cond_expr      CPerlObj::pp_cond_expr
-#define Perl_pp_connect                CPerlObj::pp_connect
-#define Perl_pp_const          CPerlObj::pp_const
-#define Perl_pp_cos            CPerlObj::pp_cos
-#define Perl_pp_crypt          CPerlObj::pp_crypt
-#define Perl_pp_dbmclose       CPerlObj::pp_dbmclose
-#define Perl_pp_dbmopen                CPerlObj::pp_dbmopen
-#define Perl_pp_dbstate                CPerlObj::pp_dbstate
-#define Perl_pp_defined                CPerlObj::pp_defined
-#define Perl_pp_delete         CPerlObj::pp_delete
-#define Perl_pp_die            CPerlObj::pp_die
-#define Perl_pp_divide         CPerlObj::pp_divide
-#define Perl_pp_dofile         CPerlObj::pp_dofile
-#define Perl_pp_dump           CPerlObj::pp_dump
-#define Perl_pp_each           CPerlObj::pp_each
-#define Perl_pp_egrent         CPerlObj::pp_egrent
-#define Perl_pp_ehostent       CPerlObj::pp_ehostent
-#define Perl_pp_enetent                CPerlObj::pp_enetent
-#define Perl_pp_enter          CPerlObj::pp_enter
-#define Perl_pp_entereval      CPerlObj::pp_entereval
-#define Perl_pp_enteriter      CPerlObj::pp_enteriter
-#define Perl_pp_enterloop      CPerlObj::pp_enterloop
-#define Perl_pp_entersub       CPerlObj::pp_entersub
-#define Perl_pp_entertry       CPerlObj::pp_entertry
-#define Perl_pp_enterwrite     CPerlObj::pp_enterwrite
-#define Perl_pp_eof            CPerlObj::pp_eof
-#define Perl_pp_eprotoent      CPerlObj::pp_eprotoent
-#define Perl_pp_epwent         CPerlObj::pp_epwent
-#define Perl_pp_eq             CPerlObj::pp_eq
-#define Perl_pp_eservent       CPerlObj::pp_eservent
-#define Perl_pp_exec           CPerlObj::pp_exec
-#define Perl_pp_exists         CPerlObj::pp_exists
-#define Perl_pp_exit           CPerlObj::pp_exit
-#define Perl_pp_exp            CPerlObj::pp_exp
-#define Perl_pp_fcntl          CPerlObj::pp_fcntl
-#define Perl_pp_fileno         CPerlObj::pp_fileno
-#define Perl_pp_flip           CPerlObj::pp_flip
-#define Perl_pp_flock          CPerlObj::pp_flock
-#define Perl_pp_flop           CPerlObj::pp_flop
-#define Perl_pp_fork           CPerlObj::pp_fork
-#define Perl_pp_formline       CPerlObj::pp_formline
-#define Perl_pp_ftatime                CPerlObj::pp_ftatime
-#define Perl_pp_ftbinary       CPerlObj::pp_ftbinary
-#define Perl_pp_ftblk          CPerlObj::pp_ftblk
-#define Perl_pp_ftchr          CPerlObj::pp_ftchr
-#define Perl_pp_ftctime                CPerlObj::pp_ftctime
-#define Perl_pp_ftdir          CPerlObj::pp_ftdir
-#define Perl_pp_fteexec                CPerlObj::pp_fteexec
-#define Perl_pp_fteowned       CPerlObj::pp_fteowned
-#define Perl_pp_fteread                CPerlObj::pp_fteread
-#define Perl_pp_ftewrite       CPerlObj::pp_ftewrite
-#define Perl_pp_ftfile         CPerlObj::pp_ftfile
-#define Perl_pp_ftis           CPerlObj::pp_ftis
-#define Perl_pp_ftlink         CPerlObj::pp_ftlink
-#define Perl_pp_ftmtime                CPerlObj::pp_ftmtime
-#define Perl_pp_ftpipe         CPerlObj::pp_ftpipe
-#define Perl_pp_ftrexec                CPerlObj::pp_ftrexec
-#define Perl_pp_ftrowned       CPerlObj::pp_ftrowned
-#define Perl_pp_ftrread                CPerlObj::pp_ftrread
-#define Perl_pp_ftrwrite       CPerlObj::pp_ftrwrite
-#define Perl_pp_ftsgid         CPerlObj::pp_ftsgid
-#define Perl_pp_ftsize         CPerlObj::pp_ftsize
-#define Perl_pp_ftsock         CPerlObj::pp_ftsock
-#define Perl_pp_ftsuid         CPerlObj::pp_ftsuid
-#define Perl_pp_ftsvtx         CPerlObj::pp_ftsvtx
-#define Perl_pp_fttext         CPerlObj::pp_fttext
-#define Perl_pp_fttty          CPerlObj::pp_fttty
-#define Perl_pp_ftzero         CPerlObj::pp_ftzero
-#define Perl_pp_ge             CPerlObj::pp_ge
-#define Perl_pp_gelem          CPerlObj::pp_gelem
-#define Perl_pp_getc           CPerlObj::pp_getc
-#define Perl_pp_getlogin       CPerlObj::pp_getlogin
-#define Perl_pp_getpeername    CPerlObj::pp_getpeername
-#define Perl_pp_getpgrp                CPerlObj::pp_getpgrp
-#define Perl_pp_getppid                CPerlObj::pp_getppid
-#define Perl_pp_getpriority    CPerlObj::pp_getpriority
-#define Perl_pp_getsockname    CPerlObj::pp_getsockname
-#define Perl_pp_ggrent         CPerlObj::pp_ggrent
-#define Perl_pp_ggrgid         CPerlObj::pp_ggrgid
-#define Perl_pp_ggrnam         CPerlObj::pp_ggrnam
-#define Perl_pp_ghbyaddr       CPerlObj::pp_ghbyaddr
-#define Perl_pp_ghbyname       CPerlObj::pp_ghbyname
-#define Perl_pp_ghostent       CPerlObj::pp_ghostent
-#define Perl_pp_glob           CPerlObj::pp_glob
-#define Perl_pp_gmtime         CPerlObj::pp_gmtime
-#define Perl_pp_gnbyaddr       CPerlObj::pp_gnbyaddr
-#define Perl_pp_gnbyname       CPerlObj::pp_gnbyname
-#define Perl_pp_gnetent                CPerlObj::pp_gnetent
-#define Perl_pp_goto           CPerlObj::pp_goto
-#define Perl_pp_gpbyname       CPerlObj::pp_gpbyname
-#define Perl_pp_gpbynumber     CPerlObj::pp_gpbynumber
-#define Perl_pp_gprotoent      CPerlObj::pp_gprotoent
-#define Perl_pp_gpwent         CPerlObj::pp_gpwent
-#define Perl_pp_gpwnam         CPerlObj::pp_gpwnam
-#define Perl_pp_gpwuid         CPerlObj::pp_gpwuid
-#define Perl_pp_grepstart      CPerlObj::pp_grepstart
-#define Perl_pp_grepwhile      CPerlObj::pp_grepwhile
-#define Perl_pp_gsbyname       CPerlObj::pp_gsbyname
-#define Perl_pp_gsbyport       CPerlObj::pp_gsbyport
-#define Perl_pp_gservent       CPerlObj::pp_gservent
-#define Perl_pp_gsockopt       CPerlObj::pp_gsockopt
-#define Perl_pp_gt             CPerlObj::pp_gt
-#define Perl_pp_gv             CPerlObj::pp_gv
-#define Perl_pp_gvsv           CPerlObj::pp_gvsv
-#define Perl_pp_helem          CPerlObj::pp_helem
-#define Perl_pp_hex            CPerlObj::pp_hex
-#define Perl_pp_hslice         CPerlObj::pp_hslice
-#define Perl_pp_i_add          CPerlObj::pp_i_add
-#define Perl_pp_i_divide       CPerlObj::pp_i_divide
-#define Perl_pp_i_eq           CPerlObj::pp_i_eq
-#define Perl_pp_i_ge           CPerlObj::pp_i_ge
-#define Perl_pp_i_gt           CPerlObj::pp_i_gt
-#define Perl_pp_i_le           CPerlObj::pp_i_le
-#define Perl_pp_i_lt           CPerlObj::pp_i_lt
-#define Perl_pp_i_modulo       CPerlObj::pp_i_modulo
-#define Perl_pp_i_multiply     CPerlObj::pp_i_multiply
-#define Perl_pp_i_ncmp         CPerlObj::pp_i_ncmp
-#define Perl_pp_i_ne           CPerlObj::pp_i_ne
-#define Perl_pp_i_negate       CPerlObj::pp_i_negate
-#define Perl_pp_i_subtract     CPerlObj::pp_i_subtract
-#define Perl_pp_index          CPerlObj::pp_index
-#define Perl_pp_int            CPerlObj::pp_int
-#define Perl_pp_ioctl          CPerlObj::pp_ioctl
-#define Perl_pp_iter           CPerlObj::pp_iter
-#define Perl_pp_join           CPerlObj::pp_join
-#define Perl_pp_keys           CPerlObj::pp_keys
-#define Perl_pp_kill           CPerlObj::pp_kill
-#define Perl_pp_last           CPerlObj::pp_last
-#define Perl_pp_lc             CPerlObj::pp_lc
-#define Perl_pp_lcfirst                CPerlObj::pp_lcfirst
-#define Perl_pp_le             CPerlObj::pp_le
-#define Perl_pp_leave          CPerlObj::pp_leave
-#define Perl_pp_leaveeval      CPerlObj::pp_leaveeval
-#define Perl_pp_leaveloop      CPerlObj::pp_leaveloop
-#define Perl_pp_leavesub       CPerlObj::pp_leavesub
-#define Perl_pp_leavetry       CPerlObj::pp_leavetry
-#define Perl_pp_leavewrite     CPerlObj::pp_leavewrite
-#define Perl_pp_left_shift     CPerlObj::pp_left_shift
-#define Perl_pp_length         CPerlObj::pp_length
-#define Perl_pp_lineseq                CPerlObj::pp_lineseq
-#define Perl_pp_link           CPerlObj::pp_link
-#define Perl_pp_list           CPerlObj::pp_list
-#define Perl_pp_listen         CPerlObj::pp_listen
-#define Perl_pp_localtime      CPerlObj::pp_localtime
-#define Perl_pp_lock           CPerlObj::pp_lock
-#define Perl_pp_log            CPerlObj::pp_log
-#define Perl_pp_lslice         CPerlObj::pp_lslice
-#define Perl_pp_lstat          CPerlObj::pp_lstat
-#define Perl_pp_lt             CPerlObj::pp_lt
-#define Perl_pp_mapstart       CPerlObj::pp_mapstart
-#define Perl_pp_mapwhile       CPerlObj::pp_mapwhile
-#define Perl_pp_match          CPerlObj::pp_match
-#define Perl_pp_method         CPerlObj::pp_method
-#define Perl_pp_mkdir          CPerlObj::pp_mkdir
-#define Perl_pp_modulo         CPerlObj::pp_modulo
-#define Perl_pp_msgctl         CPerlObj::pp_msgctl
-#define Perl_pp_msgget         CPerlObj::pp_msgget
-#define Perl_pp_msgrcv         CPerlObj::pp_msgrcv
-#define Perl_pp_msgsnd         CPerlObj::pp_msgsnd
-#define Perl_pp_multiply       CPerlObj::pp_multiply
-#define Perl_pp_ncmp           CPerlObj::pp_ncmp
-#define Perl_pp_ne             CPerlObj::pp_ne
-#define Perl_pp_negate         CPerlObj::pp_negate
-#define Perl_pp_next           CPerlObj::pp_next
-#define Perl_pp_nextstate      CPerlObj::pp_nextstate
-#define Perl_pp_not            CPerlObj::pp_not
-#define Perl_pp_null           CPerlObj::pp_null
-#define Perl_pp_oct            CPerlObj::pp_oct
-#define Perl_pp_open           CPerlObj::pp_open
-#define Perl_pp_open_dir       CPerlObj::pp_open_dir
-#define Perl_pp_or             CPerlObj::pp_or
-#define Perl_pp_orassign       CPerlObj::pp_orassign
-#define Perl_pp_ord            CPerlObj::pp_ord
-#define Perl_pp_pack           CPerlObj::pp_pack
-#define Perl_pp_padany         CPerlObj::pp_padany
-#define Perl_pp_padav          CPerlObj::pp_padav
-#define Perl_pp_padhv          CPerlObj::pp_padhv
-#define Perl_pp_padsv          CPerlObj::pp_padsv
-#define Perl_pp_pipe_op                CPerlObj::pp_pipe_op
-#define Perl_pp_pop            CPerlObj::pp_pop
-#define Perl_pp_pos            CPerlObj::pp_pos
-#define Perl_pp_postdec                CPerlObj::pp_postdec
-#define Perl_pp_postinc                CPerlObj::pp_postinc
-#define Perl_pp_pow            CPerlObj::pp_pow
-#define Perl_pp_predec         CPerlObj::pp_predec
-#define Perl_pp_preinc         CPerlObj::pp_preinc
-#define Perl_pp_print          CPerlObj::pp_print
-#define Perl_pp_prototype      CPerlObj::pp_prototype
-#define Perl_pp_prtf           CPerlObj::pp_prtf
-#define Perl_pp_push           CPerlObj::pp_push
-#define Perl_pp_pushmark       CPerlObj::pp_pushmark
-#define Perl_pp_pushre         CPerlObj::pp_pushre
-#define Perl_pp_qr             CPerlObj::pp_qr
-#define Perl_pp_quotemeta      CPerlObj::pp_quotemeta
-#define Perl_pp_rand           CPerlObj::pp_rand
-#define Perl_pp_range          CPerlObj::pp_range
-#define Perl_pp_rcatline       CPerlObj::pp_rcatline
-#define Perl_pp_read           CPerlObj::pp_read
-#define Perl_pp_readdir                CPerlObj::pp_readdir
-#define Perl_pp_readline       CPerlObj::pp_readline
-#define Perl_pp_readlink       CPerlObj::pp_readlink
-#define Perl_pp_recv           CPerlObj::pp_recv
-#define Perl_pp_redo           CPerlObj::pp_redo
-#define Perl_pp_ref            CPerlObj::pp_ref
-#define Perl_pp_refgen         CPerlObj::pp_refgen
-#define Perl_pp_regcmaybe      CPerlObj::pp_regcmaybe
-#define Perl_pp_regcomp                CPerlObj::pp_regcomp
-#define Perl_pp_regcreset      CPerlObj::pp_regcreset
-#define Perl_pp_rename         CPerlObj::pp_rename
-#define Perl_pp_repeat         CPerlObj::pp_repeat
-#define Perl_pp_require                CPerlObj::pp_require
-#define Perl_pp_reset          CPerlObj::pp_reset
-#define Perl_pp_return         CPerlObj::pp_return
-#define Perl_pp_reverse                CPerlObj::pp_reverse
-#define Perl_pp_rewinddir      CPerlObj::pp_rewinddir
-#define Perl_pp_right_shift    CPerlObj::pp_right_shift
-#define Perl_pp_rindex         CPerlObj::pp_rindex
-#define Perl_pp_rmdir          CPerlObj::pp_rmdir
-#define Perl_pp_rv2av          CPerlObj::pp_rv2av
-#define Perl_pp_rv2cv          CPerlObj::pp_rv2cv
-#define Perl_pp_rv2gv          CPerlObj::pp_rv2gv
-#define Perl_pp_rv2hv          CPerlObj::pp_rv2hv
-#define Perl_pp_rv2sv          CPerlObj::pp_rv2sv
-#define Perl_pp_sassign                CPerlObj::pp_sassign
-#define Perl_pp_scalar         CPerlObj::pp_scalar
-#define Perl_pp_schomp         CPerlObj::pp_schomp
-#define Perl_pp_schop          CPerlObj::pp_schop
-#define Perl_pp_scmp           CPerlObj::pp_scmp
-#define Perl_pp_scope          CPerlObj::pp_scope
-#define Perl_pp_seek           CPerlObj::pp_seek
-#define Perl_pp_seekdir                CPerlObj::pp_seekdir
-#define Perl_pp_select         CPerlObj::pp_select
-#define Perl_pp_semctl         CPerlObj::pp_semctl
-#define Perl_pp_semget         CPerlObj::pp_semget
-#define Perl_pp_semop          CPerlObj::pp_semop
-#define Perl_pp_send           CPerlObj::pp_send
-#define Perl_pp_seq            CPerlObj::pp_seq
-#define Perl_pp_setpgrp                CPerlObj::pp_setpgrp
-#define Perl_pp_setpriority    CPerlObj::pp_setpriority
-#define Perl_pp_sge            CPerlObj::pp_sge
-#define Perl_pp_sgrent         CPerlObj::pp_sgrent
-#define Perl_pp_sgt            CPerlObj::pp_sgt
-#define Perl_pp_shift          CPerlObj::pp_shift
-#define Perl_pp_shmctl         CPerlObj::pp_shmctl
-#define Perl_pp_shmget         CPerlObj::pp_shmget
-#define Perl_pp_shmread                CPerlObj::pp_shmread
-#define Perl_pp_shmwrite       CPerlObj::pp_shmwrite
-#define Perl_pp_shostent       CPerlObj::pp_shostent
-#define Perl_pp_shutdown       CPerlObj::pp_shutdown
-#define Perl_pp_sin            CPerlObj::pp_sin
-#define Perl_pp_sle            CPerlObj::pp_sle
-#define Perl_pp_sleep          CPerlObj::pp_sleep
-#define Perl_pp_slt            CPerlObj::pp_slt
-#define Perl_pp_sne            CPerlObj::pp_sne
-#define Perl_pp_snetent                CPerlObj::pp_snetent
-#define Perl_pp_socket         CPerlObj::pp_socket
-#define Perl_pp_sockpair       CPerlObj::pp_sockpair
-#define Perl_pp_sort           CPerlObj::pp_sort
-#define Perl_pp_splice         CPerlObj::pp_splice
-#define Perl_pp_split          CPerlObj::pp_split
-#define Perl_pp_sprintf                CPerlObj::pp_sprintf
-#define Perl_pp_sprotoent      CPerlObj::pp_sprotoent
-#define Perl_pp_spwent         CPerlObj::pp_spwent
-#define Perl_pp_sqrt           CPerlObj::pp_sqrt
-#define Perl_pp_srand          CPerlObj::pp_srand
-#define Perl_pp_srefgen                CPerlObj::pp_srefgen
-#define Perl_pp_sselect                CPerlObj::pp_sselect
-#define Perl_pp_sservent       CPerlObj::pp_sservent
-#define Perl_pp_ssockopt       CPerlObj::pp_ssockopt
-#define Perl_pp_stat           CPerlObj::pp_stat
-#define Perl_pp_stringify      CPerlObj::pp_stringify
-#define Perl_pp_stub           CPerlObj::pp_stub
-#define Perl_pp_study          CPerlObj::pp_study
-#define Perl_pp_subst          CPerlObj::pp_subst
-#define Perl_pp_substcont      CPerlObj::pp_substcont
-#define Perl_pp_substr         CPerlObj::pp_substr
-#define Perl_pp_subtract       CPerlObj::pp_subtract
-#define Perl_pp_symlink                CPerlObj::pp_symlink
-#define Perl_pp_syscall                CPerlObj::pp_syscall
-#define Perl_pp_sysopen                CPerlObj::pp_sysopen
-#define Perl_pp_sysread                CPerlObj::pp_sysread
-#define Perl_pp_sysseek                CPerlObj::pp_sysseek
-#define Perl_pp_system         CPerlObj::pp_system
-#define Perl_pp_syswrite       CPerlObj::pp_syswrite
-#define Perl_pp_tell           CPerlObj::pp_tell
-#define Perl_pp_telldir                CPerlObj::pp_telldir
-#define Perl_pp_threadsv       CPerlObj::pp_threadsv
-#define Perl_pp_tie            CPerlObj::pp_tie
-#define Perl_pp_tied           CPerlObj::pp_tied
-#define Perl_pp_time           CPerlObj::pp_time
-#define Perl_pp_tms            CPerlObj::pp_tms
-#define Perl_pp_trans          CPerlObj::pp_trans
-#define Perl_pp_truncate       CPerlObj::pp_truncate
-#define Perl_pp_uc             CPerlObj::pp_uc
-#define Perl_pp_ucfirst                CPerlObj::pp_ucfirst
-#define Perl_pp_umask          CPerlObj::pp_umask
-#define Perl_pp_undef          CPerlObj::pp_undef
-#define Perl_pp_unlink         CPerlObj::pp_unlink
-#define Perl_pp_unpack         CPerlObj::pp_unpack
-#define Perl_pp_unshift                CPerlObj::pp_unshift
-#define Perl_pp_unstack                CPerlObj::pp_unstack
-#define Perl_pp_untie          CPerlObj::pp_untie
-#define Perl_pp_utime          CPerlObj::pp_utime
-#define Perl_pp_values         CPerlObj::pp_values
-#define Perl_pp_vec            CPerlObj::pp_vec
-#define Perl_pp_wait           CPerlObj::pp_wait
-#define Perl_pp_waitpid                CPerlObj::pp_waitpid
-#define Perl_pp_wantarray      CPerlObj::pp_wantarray
-#define Perl_pp_warn           CPerlObj::pp_warn
-#define Perl_pp_xor            CPerlObj::pp_xor
+#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
+#define S_find_beginning       CPerlObj::S_find_beginning
+#define find_beginning         S_find_beginning
+#define S_forbid_setid         CPerlObj::S_forbid_setid
+#define forbid_setid           S_forbid_setid
+#define S_incpush              CPerlObj::S_incpush
+#define incpush                        S_incpush
+#define S_init_interp          CPerlObj::S_init_interp
+#define init_interp            S_init_interp
+#define S_init_ids             CPerlObj::S_init_ids
+#define init_ids               S_init_ids
+#define S_init_debugger                CPerlObj::S_init_debugger
+#define init_debugger          S_init_debugger
+#define S_init_lexer           CPerlObj::S_init_lexer
+#define init_lexer             S_init_lexer
+#define S_init_main_stash      CPerlObj::S_init_main_stash
+#define init_main_stash                S_init_main_stash
+#define S_init_perllib         CPerlObj::S_init_perllib
+#define init_perllib           S_init_perllib
+#define S_init_postdump_symbols        CPerlObj::S_init_postdump_symbols
+#define init_postdump_symbols  S_init_postdump_symbols
+#define S_init_predump_symbols CPerlObj::S_init_predump_symbols
+#define init_predump_symbols   S_init_predump_symbols
+#define S_my_exit_jump         CPerlObj::S_my_exit_jump
+#define my_exit_jump           S_my_exit_jump
+#define S_nuke_stacks          CPerlObj::S_nuke_stacks
+#define nuke_stacks            S_nuke_stacks
+#define S_open_script          CPerlObj::S_open_script
+#define open_script            S_open_script
+#define S_usage                        CPerlObj::S_usage
+#define usage                  S_usage
+#define S_validate_suid                CPerlObj::S_validate_suid
+#define validate_suid          S_validate_suid
+#  if defined(IAMSUID)
+#define S_fd_on_nosuid_fs      CPerlObj::S_fd_on_nosuid_fs
+#define fd_on_nosuid_fs                S_fd_on_nosuid_fs
+#  endif
+#define S_parse_body           CPerlObj::S_parse_body
+#define parse_body             S_parse_body
+#define S_run_body             CPerlObj::S_run_body
+#define run_body               S_run_body
+#define S_call_body            CPerlObj::S_call_body
+#define call_body              S_call_body
+#define S_call_xbody           CPerlObj::S_call_xbody
+#define call_xbody             S_call_xbody
+#define S_call_list_body       CPerlObj::S_call_list_body
+#define call_list_body         S_call_list_body
+#  if defined(USE_THREADS)
+#define S_init_main_thread     CPerlObj::S_init_main_thread
+#define init_main_thread       S_init_main_thread
+#  endif
+#endif
+#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
+#define S_doencodes            CPerlObj::S_doencodes
+#define doencodes              S_doencodes
+#define S_refto                        CPerlObj::S_refto
+#define refto                  S_refto
+#define S_seed                 CPerlObj::S_seed
+#define seed                   S_seed
+#define S_mul128               CPerlObj::S_mul128
+#define mul128                 S_mul128
+#define S_is_an_int            CPerlObj::S_is_an_int
+#define is_an_int              S_is_an_int
+#define S_div128               CPerlObj::S_div128
+#define div128                 S_div128
+#endif
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
+#define S_docatch              CPerlObj::S_docatch
+#define docatch                        S_docatch
+#define S_docatch_body         CPerlObj::S_docatch_body
+#define docatch_body           S_docatch_body
+#define S_dofindlabel          CPerlObj::S_dofindlabel
+#define dofindlabel            S_dofindlabel
+#define S_doparseform          CPerlObj::S_doparseform
+#define doparseform            S_doparseform
+#define S_dopoptoeval          CPerlObj::S_dopoptoeval
+#define dopoptoeval            S_dopoptoeval
+#define S_dopoptolabel         CPerlObj::S_dopoptolabel
+#define dopoptolabel           S_dopoptolabel
+#define S_dopoptoloop          CPerlObj::S_dopoptoloop
+#define dopoptoloop            S_dopoptoloop
+#define S_dopoptosub           CPerlObj::S_dopoptosub
+#define dopoptosub             S_dopoptosub
+#define S_dopoptosub_at                CPerlObj::S_dopoptosub_at
+#define dopoptosub_at          S_dopoptosub_at
+#define S_free_closures                CPerlObj::S_free_closures
+#define free_closures          S_free_closures
+#define S_save_lines           CPerlObj::S_save_lines
+#define save_lines             S_save_lines
+#define S_doeval               CPerlObj::S_doeval
+#define doeval                 S_doeval
+#define S_doopen_pmc           CPerlObj::S_doopen_pmc
+#define doopen_pmc             S_doopen_pmc
+#define S_qsortsv              CPerlObj::S_qsortsv
+#define qsortsv                        S_qsortsv
+#define S_sortcv               CPerlObj::S_sortcv
+#define sortcv                 S_sortcv
+#define S_sv_ncmp              CPerlObj::S_sv_ncmp
+#define sv_ncmp                        S_sv_ncmp
+#define S_sv_i_ncmp            CPerlObj::S_sv_i_ncmp
+#define sv_i_ncmp              S_sv_i_ncmp
+#define S_amagic_ncmp          CPerlObj::S_amagic_ncmp
+#define amagic_ncmp            S_amagic_ncmp
+#define S_amagic_i_ncmp                CPerlObj::S_amagic_i_ncmp
+#define amagic_i_ncmp          S_amagic_i_ncmp
+#define S_amagic_cmp           CPerlObj::S_amagic_cmp
+#define amagic_cmp             S_amagic_cmp
+#define S_amagic_cmp_locale    CPerlObj::S_amagic_cmp_locale
+#define amagic_cmp_locale      S_amagic_cmp_locale
+#endif
+#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
+#define S_get_db_sub           CPerlObj::S_get_db_sub
+#define get_db_sub             S_get_db_sub
+#  if defined(USE_THREADS)
+#define S_unset_cvowner                CPerlObj::S_unset_cvowner
+#define unset_cvowner          S_unset_cvowner
+#  endif
+#endif
+#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
+#define S_doform               CPerlObj::S_doform
+#define doform                 S_doform
+#define S_emulate_eaccess      CPerlObj::S_emulate_eaccess
+#define emulate_eaccess                S_emulate_eaccess
+#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+#define S_dooneliner           CPerlObj::S_dooneliner
+#define dooneliner             S_dooneliner
+#  endif
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
+#define S_reg                  CPerlObj::S_reg
+#define reg                    S_reg
+#define S_reganode             CPerlObj::S_reganode
+#define reganode               S_reganode
+#define S_regatom              CPerlObj::S_regatom
+#define regatom                        S_regatom
+#define S_regbranch            CPerlObj::S_regbranch
+#define regbranch              S_regbranch
+#define S_regc                 CPerlObj::S_regc
+#define regc                   S_regc
+#define S_reguni               CPerlObj::S_reguni
+#define reguni                 S_reguni
+#define S_regclass             CPerlObj::S_regclass
+#define regclass               S_regclass
+#define S_regclassutf8         CPerlObj::S_regclassutf8
+#define regclassutf8           S_regclassutf8
+#define S_regcurly             CPerlObj::S_regcurly
+#define regcurly               S_regcurly
+#define S_reg_node             CPerlObj::S_reg_node
+#define reg_node               S_reg_node
+#define S_regpiece             CPerlObj::S_regpiece
+#define regpiece               S_regpiece
+#define S_reginsert            CPerlObj::S_reginsert
+#define reginsert              S_reginsert
+#define S_regoptail            CPerlObj::S_regoptail
+#define regoptail              S_regoptail
+#define S_regtail              CPerlObj::S_regtail
+#define regtail                        S_regtail
+#define S_regwhite             CPerlObj::S_regwhite
+#define regwhite               S_regwhite
+#define S_nextchar             CPerlObj::S_nextchar
+#define nextchar               S_nextchar
+#define S_dumpuntil            CPerlObj::S_dumpuntil
+#define dumpuntil              S_dumpuntil
+#define S_scan_commit          CPerlObj::S_scan_commit
+#define scan_commit            S_scan_commit
+#define S_study_chunk          CPerlObj::S_study_chunk
+#define study_chunk            S_study_chunk
+#define S_add_data             CPerlObj::S_add_data
+#define add_data               S_add_data
+#define S_re_croak2            CPerlObj::S_re_croak2
+#define re_croak2              S_re_croak2
+#define S_regpposixcc          CPerlObj::S_regpposixcc
+#define regpposixcc            S_regpposixcc
+#define S_clear_re             CPerlObj::S_clear_re
+#define clear_re               S_clear_re
+#endif
+#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
+#define S_regmatch             CPerlObj::S_regmatch
+#define regmatch               S_regmatch
+#define S_regrepeat            CPerlObj::S_regrepeat
+#define regrepeat              S_regrepeat
+#define S_regrepeat_hard       CPerlObj::S_regrepeat_hard
+#define regrepeat_hard         S_regrepeat_hard
+#define S_regtry               CPerlObj::S_regtry
+#define regtry                 S_regtry
+#define S_reginclass           CPerlObj::S_reginclass
+#define reginclass             S_reginclass
+#define S_reginclassutf8       CPerlObj::S_reginclassutf8
+#define reginclassutf8         S_reginclassutf8
+#define S_regcppush            CPerlObj::S_regcppush
+#define regcppush              S_regcppush
+#define S_regcppop             CPerlObj::S_regcppop
+#define regcppop               S_regcppop
+#define S_regcp_set_to         CPerlObj::S_regcp_set_to
+#define regcp_set_to           S_regcp_set_to
+#define S_cache_re             CPerlObj::S_cache_re
+#define cache_re               S_cache_re
+#define S_restore_pos          CPerlObj::S_restore_pos
+#define restore_pos            S_restore_pos
+#define S_reghop               CPerlObj::S_reghop
+#define reghop                 S_reghop
+#define S_reghopmaybe          CPerlObj::S_reghopmaybe
+#define reghopmaybe            S_reghopmaybe
+#endif
+#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
+#define S_debprof              CPerlObj::S_debprof
+#define debprof                        S_debprof
+#endif
+#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
+#define S_save_scalar_at       CPerlObj::S_save_scalar_at
+#define save_scalar_at         S_save_scalar_at
+#endif
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
+#define S_asIV                 CPerlObj::S_asIV
+#define asIV                   S_asIV
+#define S_asUV                 CPerlObj::S_asUV
+#define asUV                   S_asUV
+#define S_more_sv              CPerlObj::S_more_sv
+#define more_sv                        S_more_sv
+#define S_more_xiv             CPerlObj::S_more_xiv
+#define more_xiv               S_more_xiv
+#define S_more_xnv             CPerlObj::S_more_xnv
+#define more_xnv               S_more_xnv
+#define S_more_xpv             CPerlObj::S_more_xpv
+#define more_xpv               S_more_xpv
+#define S_more_xrv             CPerlObj::S_more_xrv
+#define more_xrv               S_more_xrv
+#define S_new_xiv              CPerlObj::S_new_xiv
+#define new_xiv                        S_new_xiv
+#define S_new_xnv              CPerlObj::S_new_xnv
+#define new_xnv                        S_new_xnv
+#define S_new_xpv              CPerlObj::S_new_xpv
+#define new_xpv                        S_new_xpv
+#define S_new_xrv              CPerlObj::S_new_xrv
+#define new_xrv                        S_new_xrv
+#define S_del_xiv              CPerlObj::S_del_xiv
+#define del_xiv                        S_del_xiv
+#define S_del_xnv              CPerlObj::S_del_xnv
+#define del_xnv                        S_del_xnv
+#define S_del_xpv              CPerlObj::S_del_xpv
+#define del_xpv                        S_del_xpv
+#define S_del_xrv              CPerlObj::S_del_xrv
+#define del_xrv                        S_del_xrv
+#define S_sv_unglob            CPerlObj::S_sv_unglob
+#define sv_unglob              S_sv_unglob
+#define S_do_report_used       CPerlObj::S_do_report_used
+#define do_report_used         S_do_report_used
+#define S_do_clean_objs                CPerlObj::S_do_clean_objs
+#define do_clean_objs          S_do_clean_objs
+#define S_do_clean_named_objs  CPerlObj::S_do_clean_named_objs
+#define do_clean_named_objs    S_do_clean_named_objs
+#define S_do_clean_all         CPerlObj::S_do_clean_all
+#define do_clean_all           S_do_clean_all
+#define S_not_a_number         CPerlObj::S_not_a_number
+#define not_a_number           S_not_a_number
+#define S_visit                        CPerlObj::S_visit
+#define visit                  S_visit
+#  if defined(PURIFY)
+#define S_reg_add              CPerlObj::S_reg_add
+#define reg_add                        S_reg_add
+#define S_reg_remove           CPerlObj::S_reg_remove
+#define reg_remove             S_reg_remove
+#  else
+#define S_my_safemalloc                CPerlObj::S_my_safemalloc
+#define my_safemalloc          S_my_safemalloc
+#  endif
+#define S_sv_add_backref       CPerlObj::S_sv_add_backref
+#define sv_add_backref         S_sv_add_backref
+#define S_sv_del_backref       CPerlObj::S_sv_del_backref
+#define sv_del_backref         S_sv_del_backref
+#  if defined(DEBUGGING)
+#define S_del_sv               CPerlObj::S_del_sv
+#define del_sv                 S_del_sv
+#  endif
+#endif
+#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
+#define S_check_uni            CPerlObj::S_check_uni
+#define check_uni              S_check_uni
+#define S_force_next           CPerlObj::S_force_next
+#define force_next             S_force_next
+#define S_force_version                CPerlObj::S_force_version
+#define force_version          S_force_version
+#define S_force_word           CPerlObj::S_force_word
+#define force_word             S_force_word
+#define S_tokeq                        CPerlObj::S_tokeq
+#define tokeq                  S_tokeq
+#define S_scan_const           CPerlObj::S_scan_const
+#define scan_const             S_scan_const
+#define S_scan_formline                CPerlObj::S_scan_formline
+#define scan_formline          S_scan_formline
+#define S_scan_heredoc         CPerlObj::S_scan_heredoc
+#define scan_heredoc           S_scan_heredoc
+#define S_scan_ident           CPerlObj::S_scan_ident
+#define scan_ident             S_scan_ident
+#define S_scan_inputsymbol     CPerlObj::S_scan_inputsymbol
+#define scan_inputsymbol       S_scan_inputsymbol
+#define S_scan_pat             CPerlObj::S_scan_pat
+#define scan_pat               S_scan_pat
+#define S_scan_str             CPerlObj::S_scan_str
+#define scan_str               S_scan_str
+#define S_scan_subst           CPerlObj::S_scan_subst
+#define scan_subst             S_scan_subst
+#define S_scan_trans           CPerlObj::S_scan_trans
+#define scan_trans             S_scan_trans
+#define S_scan_word            CPerlObj::S_scan_word
+#define scan_word              S_scan_word
+#define S_skipspace            CPerlObj::S_skipspace
+#define skipspace              S_skipspace
+#define S_checkcomma           CPerlObj::S_checkcomma
+#define checkcomma             S_checkcomma
+#define S_force_ident          CPerlObj::S_force_ident
+#define force_ident            S_force_ident
+#define S_incline              CPerlObj::S_incline
+#define incline                        S_incline
+#define S_intuit_method                CPerlObj::S_intuit_method
+#define intuit_method          S_intuit_method
+#define S_intuit_more          CPerlObj::S_intuit_more
+#define intuit_more            S_intuit_more
+#define S_lop                  CPerlObj::S_lop
+#define lop                    S_lop
+#define S_missingterm          CPerlObj::S_missingterm
+#define missingterm            S_missingterm
+#define S_no_op                        CPerlObj::S_no_op
+#define no_op                  S_no_op
+#define S_set_csh              CPerlObj::S_set_csh
+#define set_csh                        S_set_csh
+#define S_sublex_done          CPerlObj::S_sublex_done
+#define sublex_done            S_sublex_done
+#define S_sublex_push          CPerlObj::S_sublex_push
+#define sublex_push            S_sublex_push
+#define S_sublex_start         CPerlObj::S_sublex_start
+#define sublex_start           S_sublex_start
+#define S_filter_gets          CPerlObj::S_filter_gets
+#define filter_gets            S_filter_gets
+#define S_new_constant         CPerlObj::S_new_constant
+#define new_constant           S_new_constant
+#define S_ao                   CPerlObj::S_ao
+#define ao                     S_ao
+#define S_depcom               CPerlObj::S_depcom
+#define depcom                 S_depcom
+#define S_incl_perldb          CPerlObj::S_incl_perldb
+#define incl_perldb            S_incl_perldb
+#define S_utf16_textfilter     CPerlObj::S_utf16_textfilter
+#define utf16_textfilter       S_utf16_textfilter
+#define S_utf16rev_textfilter  CPerlObj::S_utf16rev_textfilter
+#define utf16rev_textfilter    S_utf16rev_textfilter
+#define S_restore_rsfp         CPerlObj::S_restore_rsfp
+#define restore_rsfp           S_restore_rsfp
+#define S_restore_expect       CPerlObj::S_restore_expect
+#define restore_expect         S_restore_expect
+#define S_restore_lex_expect   CPerlObj::S_restore_lex_expect
+#define restore_lex_expect     S_restore_lex_expect
+#  if defined(CRIPPLED_CC)
+#define S_uni                  CPerlObj::S_uni
+#define uni                    S_uni
+#  endif
+#  if defined(WIN32)
+#define S_win32_textfilter     CPerlObj::S_win32_textfilter
+#define win32_textfilter       S_win32_textfilter
+#  endif
+#endif
+#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
+#define S_isa_lookup           CPerlObj::S_isa_lookup
+#define isa_lookup             S_isa_lookup
+#endif
+#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
+#define S_mess_alloc           CPerlObj::S_mess_alloc
+#define mess_alloc             S_mess_alloc
+#define S_do_croak             CPerlObj::S_do_croak
+#define do_croak               S_do_croak
+#define S_do_warn              CPerlObj::S_do_warn
+#define do_warn                        S_do_warn
+#define S_do_die               CPerlObj::S_do_die
+#define do_die                 S_do_die
+#  if defined(LEAKTEST)
+#define S_xstat                        CPerlObj::S_xstat
+#define xstat                  S_xstat
+#  endif
+#endif
+#define Perl_ck_anoncode       CPerlObj::Perl_ck_anoncode
+#define ck_anoncode            Perl_ck_anoncode
+#define Perl_ck_bitop          CPerlObj::Perl_ck_bitop
+#define ck_bitop               Perl_ck_bitop
+#define Perl_ck_concat         CPerlObj::Perl_ck_concat
+#define ck_concat              Perl_ck_concat
+#define Perl_ck_defined                CPerlObj::Perl_ck_defined
+#define ck_defined             Perl_ck_defined
+#define Perl_ck_delete         CPerlObj::Perl_ck_delete
+#define ck_delete              Perl_ck_delete
+#define Perl_ck_eof            CPerlObj::Perl_ck_eof
+#define ck_eof                 Perl_ck_eof
+#define Perl_ck_eval           CPerlObj::Perl_ck_eval
+#define ck_eval                        Perl_ck_eval
+#define Perl_ck_exec           CPerlObj::Perl_ck_exec
+#define ck_exec                        Perl_ck_exec
+#define Perl_ck_exists         CPerlObj::Perl_ck_exists
+#define ck_exists              Perl_ck_exists
+#define Perl_ck_ftst           CPerlObj::Perl_ck_ftst
+#define ck_ftst                        Perl_ck_ftst
+#define Perl_ck_fun            CPerlObj::Perl_ck_fun
+#define ck_fun                 Perl_ck_fun
+#define Perl_ck_fun_locale     CPerlObj::Perl_ck_fun_locale
+#define ck_fun_locale          Perl_ck_fun_locale
+#define Perl_ck_glob           CPerlObj::Perl_ck_glob
+#define ck_glob                        Perl_ck_glob
+#define Perl_ck_grep           CPerlObj::Perl_ck_grep
+#define ck_grep                        Perl_ck_grep
+#define Perl_ck_index          CPerlObj::Perl_ck_index
+#define ck_index               Perl_ck_index
+#define Perl_ck_lengthconst    CPerlObj::Perl_ck_lengthconst
+#define ck_lengthconst         Perl_ck_lengthconst
+#define Perl_ck_lfun           CPerlObj::Perl_ck_lfun
+#define ck_lfun                        Perl_ck_lfun
+#define Perl_ck_listiob                CPerlObj::Perl_ck_listiob
+#define ck_listiob             Perl_ck_listiob
+#define Perl_ck_match          CPerlObj::Perl_ck_match
+#define ck_match               Perl_ck_match
+#define Perl_ck_null           CPerlObj::Perl_ck_null
+#define ck_null                        Perl_ck_null
+#define Perl_ck_repeat         CPerlObj::Perl_ck_repeat
+#define ck_repeat              Perl_ck_repeat
+#define Perl_ck_require                CPerlObj::Perl_ck_require
+#define ck_require             Perl_ck_require
+#define Perl_ck_rfun           CPerlObj::Perl_ck_rfun
+#define ck_rfun                        Perl_ck_rfun
+#define Perl_ck_rvconst                CPerlObj::Perl_ck_rvconst
+#define ck_rvconst             Perl_ck_rvconst
+#define Perl_ck_scmp           CPerlObj::Perl_ck_scmp
+#define ck_scmp                        Perl_ck_scmp
+#define Perl_ck_select         CPerlObj::Perl_ck_select
+#define ck_select              Perl_ck_select
+#define Perl_ck_shift          CPerlObj::Perl_ck_shift
+#define ck_shift               Perl_ck_shift
+#define Perl_ck_sort           CPerlObj::Perl_ck_sort
+#define ck_sort                        Perl_ck_sort
+#define Perl_ck_spair          CPerlObj::Perl_ck_spair
+#define ck_spair               Perl_ck_spair
+#define Perl_ck_split          CPerlObj::Perl_ck_split
+#define ck_split               Perl_ck_split
+#define Perl_ck_subr           CPerlObj::Perl_ck_subr
+#define ck_subr                        Perl_ck_subr
+#define Perl_ck_svconst                CPerlObj::Perl_ck_svconst
+#define ck_svconst             Perl_ck_svconst
+#define Perl_ck_trunc          CPerlObj::Perl_ck_trunc
+#define ck_trunc               Perl_ck_trunc
+#define Perl_pp_aassign                CPerlObj::Perl_pp_aassign
+#define pp_aassign             Perl_pp_aassign
+#define Perl_pp_abs            CPerlObj::Perl_pp_abs
+#define pp_abs                 Perl_pp_abs
+#define Perl_pp_accept         CPerlObj::Perl_pp_accept
+#define pp_accept              Perl_pp_accept
+#define Perl_pp_add            CPerlObj::Perl_pp_add
+#define pp_add                 Perl_pp_add
+#define Perl_pp_aelem          CPerlObj::Perl_pp_aelem
+#define pp_aelem               Perl_pp_aelem
+#define Perl_pp_aelemfast      CPerlObj::Perl_pp_aelemfast
+#define pp_aelemfast           Perl_pp_aelemfast
+#define Perl_pp_alarm          CPerlObj::Perl_pp_alarm
+#define pp_alarm               Perl_pp_alarm
+#define Perl_pp_and            CPerlObj::Perl_pp_and
+#define pp_and                 Perl_pp_and
+#define Perl_pp_andassign      CPerlObj::Perl_pp_andassign
+#define pp_andassign           Perl_pp_andassign
+#define Perl_pp_anoncode       CPerlObj::Perl_pp_anoncode
+#define pp_anoncode            Perl_pp_anoncode
+#define Perl_pp_anonhash       CPerlObj::Perl_pp_anonhash
+#define pp_anonhash            Perl_pp_anonhash
+#define Perl_pp_anonlist       CPerlObj::Perl_pp_anonlist
+#define pp_anonlist            Perl_pp_anonlist
+#define Perl_pp_aslice         CPerlObj::Perl_pp_aslice
+#define pp_aslice              Perl_pp_aslice
+#define Perl_pp_atan2          CPerlObj::Perl_pp_atan2
+#define pp_atan2               Perl_pp_atan2
+#define Perl_pp_av2arylen      CPerlObj::Perl_pp_av2arylen
+#define pp_av2arylen           Perl_pp_av2arylen
+#define Perl_pp_backtick       CPerlObj::Perl_pp_backtick
+#define pp_backtick            Perl_pp_backtick
+#define Perl_pp_bind           CPerlObj::Perl_pp_bind
+#define pp_bind                        Perl_pp_bind
+#define Perl_pp_binmode                CPerlObj::Perl_pp_binmode
+#define pp_binmode             Perl_pp_binmode
+#define Perl_pp_bit_and                CPerlObj::Perl_pp_bit_and
+#define pp_bit_and             Perl_pp_bit_and
+#define Perl_pp_bit_or         CPerlObj::Perl_pp_bit_or
+#define pp_bit_or              Perl_pp_bit_or
+#define Perl_pp_bit_xor                CPerlObj::Perl_pp_bit_xor
+#define pp_bit_xor             Perl_pp_bit_xor
+#define Perl_pp_bless          CPerlObj::Perl_pp_bless
+#define pp_bless               Perl_pp_bless
+#define Perl_pp_caller         CPerlObj::Perl_pp_caller
+#define pp_caller              Perl_pp_caller
+#define Perl_pp_chdir          CPerlObj::Perl_pp_chdir
+#define pp_chdir               Perl_pp_chdir
+#define Perl_pp_chmod          CPerlObj::Perl_pp_chmod
+#define pp_chmod               Perl_pp_chmod
+#define Perl_pp_chomp          CPerlObj::Perl_pp_chomp
+#define pp_chomp               Perl_pp_chomp
+#define Perl_pp_chop           CPerlObj::Perl_pp_chop
+#define pp_chop                        Perl_pp_chop
+#define Perl_pp_chown          CPerlObj::Perl_pp_chown
+#define pp_chown               Perl_pp_chown
+#define Perl_pp_chr            CPerlObj::Perl_pp_chr
+#define pp_chr                 Perl_pp_chr
+#define Perl_pp_chroot         CPerlObj::Perl_pp_chroot
+#define pp_chroot              Perl_pp_chroot
+#define Perl_pp_close          CPerlObj::Perl_pp_close
+#define pp_close               Perl_pp_close
+#define Perl_pp_closedir       CPerlObj::Perl_pp_closedir
+#define pp_closedir            Perl_pp_closedir
+#define Perl_pp_complement     CPerlObj::Perl_pp_complement
+#define pp_complement          Perl_pp_complement
+#define Perl_pp_concat         CPerlObj::Perl_pp_concat
+#define pp_concat              Perl_pp_concat
+#define Perl_pp_cond_expr      CPerlObj::Perl_pp_cond_expr
+#define pp_cond_expr           Perl_pp_cond_expr
+#define Perl_pp_connect                CPerlObj::Perl_pp_connect
+#define pp_connect             Perl_pp_connect
+#define Perl_pp_const          CPerlObj::Perl_pp_const
+#define pp_const               Perl_pp_const
+#define Perl_pp_cos            CPerlObj::Perl_pp_cos
+#define pp_cos                 Perl_pp_cos
+#define Perl_pp_crypt          CPerlObj::Perl_pp_crypt
+#define pp_crypt               Perl_pp_crypt
+#define Perl_pp_dbmclose       CPerlObj::Perl_pp_dbmclose
+#define pp_dbmclose            Perl_pp_dbmclose
+#define Perl_pp_dbmopen                CPerlObj::Perl_pp_dbmopen
+#define pp_dbmopen             Perl_pp_dbmopen
+#define Perl_pp_dbstate                CPerlObj::Perl_pp_dbstate
+#define pp_dbstate             Perl_pp_dbstate
+#define Perl_pp_defined                CPerlObj::Perl_pp_defined
+#define pp_defined             Perl_pp_defined
+#define Perl_pp_delete         CPerlObj::Perl_pp_delete
+#define pp_delete              Perl_pp_delete
+#define Perl_pp_die            CPerlObj::Perl_pp_die
+#define pp_die                 Perl_pp_die
+#define Perl_pp_divide         CPerlObj::Perl_pp_divide
+#define pp_divide              Perl_pp_divide
+#define Perl_pp_dofile         CPerlObj::Perl_pp_dofile
+#define pp_dofile              Perl_pp_dofile
+#define Perl_pp_dump           CPerlObj::Perl_pp_dump
+#define pp_dump                        Perl_pp_dump
+#define Perl_pp_each           CPerlObj::Perl_pp_each
+#define pp_each                        Perl_pp_each
+#define Perl_pp_egrent         CPerlObj::Perl_pp_egrent
+#define pp_egrent              Perl_pp_egrent
+#define Perl_pp_ehostent       CPerlObj::Perl_pp_ehostent
+#define pp_ehostent            Perl_pp_ehostent
+#define Perl_pp_enetent                CPerlObj::Perl_pp_enetent
+#define pp_enetent             Perl_pp_enetent
+#define Perl_pp_enter          CPerlObj::Perl_pp_enter
+#define pp_enter               Perl_pp_enter
+#define Perl_pp_entereval      CPerlObj::Perl_pp_entereval
+#define pp_entereval           Perl_pp_entereval
+#define Perl_pp_enteriter      CPerlObj::Perl_pp_enteriter
+#define pp_enteriter           Perl_pp_enteriter
+#define Perl_pp_enterloop      CPerlObj::Perl_pp_enterloop
+#define pp_enterloop           Perl_pp_enterloop
+#define Perl_pp_entersub       CPerlObj::Perl_pp_entersub
+#define pp_entersub            Perl_pp_entersub
+#define Perl_pp_entertry       CPerlObj::Perl_pp_entertry
+#define pp_entertry            Perl_pp_entertry
+#define Perl_pp_enterwrite     CPerlObj::Perl_pp_enterwrite
+#define pp_enterwrite          Perl_pp_enterwrite
+#define Perl_pp_eof            CPerlObj::Perl_pp_eof
+#define pp_eof                 Perl_pp_eof
+#define Perl_pp_eprotoent      CPerlObj::Perl_pp_eprotoent
+#define pp_eprotoent           Perl_pp_eprotoent
+#define Perl_pp_epwent         CPerlObj::Perl_pp_epwent
+#define pp_epwent              Perl_pp_epwent
+#define Perl_pp_eq             CPerlObj::Perl_pp_eq
+#define pp_eq                  Perl_pp_eq
+#define Perl_pp_eservent       CPerlObj::Perl_pp_eservent
+#define pp_eservent            Perl_pp_eservent
+#define Perl_pp_exec           CPerlObj::Perl_pp_exec
+#define pp_exec                        Perl_pp_exec
+#define Perl_pp_exists         CPerlObj::Perl_pp_exists
+#define pp_exists              Perl_pp_exists
+#define Perl_pp_exit           CPerlObj::Perl_pp_exit
+#define pp_exit                        Perl_pp_exit
+#define Perl_pp_exp            CPerlObj::Perl_pp_exp
+#define pp_exp                 Perl_pp_exp
+#define Perl_pp_fcntl          CPerlObj::Perl_pp_fcntl
+#define pp_fcntl               Perl_pp_fcntl
+#define Perl_pp_fileno         CPerlObj::Perl_pp_fileno
+#define pp_fileno              Perl_pp_fileno
+#define Perl_pp_flip           CPerlObj::Perl_pp_flip
+#define pp_flip                        Perl_pp_flip
+#define Perl_pp_flock          CPerlObj::Perl_pp_flock
+#define pp_flock               Perl_pp_flock
+#define Perl_pp_flop           CPerlObj::Perl_pp_flop
+#define pp_flop                        Perl_pp_flop
+#define Perl_pp_fork           CPerlObj::Perl_pp_fork
+#define pp_fork                        Perl_pp_fork
+#define Perl_pp_formline       CPerlObj::Perl_pp_formline
+#define pp_formline            Perl_pp_formline
+#define Perl_pp_ftatime                CPerlObj::Perl_pp_ftatime
+#define pp_ftatime             Perl_pp_ftatime
+#define Perl_pp_ftbinary       CPerlObj::Perl_pp_ftbinary
+#define pp_ftbinary            Perl_pp_ftbinary
+#define Perl_pp_ftblk          CPerlObj::Perl_pp_ftblk
+#define pp_ftblk               Perl_pp_ftblk
+#define Perl_pp_ftchr          CPerlObj::Perl_pp_ftchr
+#define pp_ftchr               Perl_pp_ftchr
+#define Perl_pp_ftctime                CPerlObj::Perl_pp_ftctime
+#define pp_ftctime             Perl_pp_ftctime
+#define Perl_pp_ftdir          CPerlObj::Perl_pp_ftdir
+#define pp_ftdir               Perl_pp_ftdir
+#define Perl_pp_fteexec                CPerlObj::Perl_pp_fteexec
+#define pp_fteexec             Perl_pp_fteexec
+#define Perl_pp_fteowned       CPerlObj::Perl_pp_fteowned
+#define pp_fteowned            Perl_pp_fteowned
+#define Perl_pp_fteread                CPerlObj::Perl_pp_fteread
+#define pp_fteread             Perl_pp_fteread
+#define Perl_pp_ftewrite       CPerlObj::Perl_pp_ftewrite
+#define pp_ftewrite            Perl_pp_ftewrite
+#define Perl_pp_ftfile         CPerlObj::Perl_pp_ftfile
+#define pp_ftfile              Perl_pp_ftfile
+#define Perl_pp_ftis           CPerlObj::Perl_pp_ftis
+#define pp_ftis                        Perl_pp_ftis
+#define Perl_pp_ftlink         CPerlObj::Perl_pp_ftlink
+#define pp_ftlink              Perl_pp_ftlink
+#define Perl_pp_ftmtime                CPerlObj::Perl_pp_ftmtime
+#define pp_ftmtime             Perl_pp_ftmtime
+#define Perl_pp_ftpipe         CPerlObj::Perl_pp_ftpipe
+#define pp_ftpipe              Perl_pp_ftpipe
+#define Perl_pp_ftrexec                CPerlObj::Perl_pp_ftrexec
+#define pp_ftrexec             Perl_pp_ftrexec
+#define Perl_pp_ftrowned       CPerlObj::Perl_pp_ftrowned
+#define pp_ftrowned            Perl_pp_ftrowned
+#define Perl_pp_ftrread                CPerlObj::Perl_pp_ftrread
+#define pp_ftrread             Perl_pp_ftrread
+#define Perl_pp_ftrwrite       CPerlObj::Perl_pp_ftrwrite
+#define pp_ftrwrite            Perl_pp_ftrwrite
+#define Perl_pp_ftsgid         CPerlObj::Perl_pp_ftsgid
+#define pp_ftsgid              Perl_pp_ftsgid
+#define Perl_pp_ftsize         CPerlObj::Perl_pp_ftsize
+#define pp_ftsize              Perl_pp_ftsize
+#define Perl_pp_ftsock         CPerlObj::Perl_pp_ftsock
+#define pp_ftsock              Perl_pp_ftsock
+#define Perl_pp_ftsuid         CPerlObj::Perl_pp_ftsuid
+#define pp_ftsuid              Perl_pp_ftsuid
+#define Perl_pp_ftsvtx         CPerlObj::Perl_pp_ftsvtx
+#define pp_ftsvtx              Perl_pp_ftsvtx
+#define Perl_pp_fttext         CPerlObj::Perl_pp_fttext
+#define pp_fttext              Perl_pp_fttext
+#define Perl_pp_fttty          CPerlObj::Perl_pp_fttty
+#define pp_fttty               Perl_pp_fttty
+#define Perl_pp_ftzero         CPerlObj::Perl_pp_ftzero
+#define pp_ftzero              Perl_pp_ftzero
+#define Perl_pp_ge             CPerlObj::Perl_pp_ge
+#define pp_ge                  Perl_pp_ge
+#define Perl_pp_gelem          CPerlObj::Perl_pp_gelem
+#define pp_gelem               Perl_pp_gelem
+#define Perl_pp_getc           CPerlObj::Perl_pp_getc
+#define pp_getc                        Perl_pp_getc
+#define Perl_pp_getlogin       CPerlObj::Perl_pp_getlogin
+#define pp_getlogin            Perl_pp_getlogin
+#define Perl_pp_getpeername    CPerlObj::Perl_pp_getpeername
+#define pp_getpeername         Perl_pp_getpeername
+#define Perl_pp_getpgrp                CPerlObj::Perl_pp_getpgrp
+#define pp_getpgrp             Perl_pp_getpgrp
+#define Perl_pp_getppid                CPerlObj::Perl_pp_getppid
+#define pp_getppid             Perl_pp_getppid
+#define Perl_pp_getpriority    CPerlObj::Perl_pp_getpriority
+#define pp_getpriority         Perl_pp_getpriority
+#define Perl_pp_getsockname    CPerlObj::Perl_pp_getsockname
+#define pp_getsockname         Perl_pp_getsockname
+#define Perl_pp_ggrent         CPerlObj::Perl_pp_ggrent
+#define pp_ggrent              Perl_pp_ggrent
+#define Perl_pp_ggrgid         CPerlObj::Perl_pp_ggrgid
+#define pp_ggrgid              Perl_pp_ggrgid
+#define Perl_pp_ggrnam         CPerlObj::Perl_pp_ggrnam
+#define pp_ggrnam              Perl_pp_ggrnam
+#define Perl_pp_ghbyaddr       CPerlObj::Perl_pp_ghbyaddr
+#define pp_ghbyaddr            Perl_pp_ghbyaddr
+#define Perl_pp_ghbyname       CPerlObj::Perl_pp_ghbyname
+#define pp_ghbyname            Perl_pp_ghbyname
+#define Perl_pp_ghostent       CPerlObj::Perl_pp_ghostent
+#define pp_ghostent            Perl_pp_ghostent
+#define Perl_pp_glob           CPerlObj::Perl_pp_glob
+#define pp_glob                        Perl_pp_glob
+#define Perl_pp_gmtime         CPerlObj::Perl_pp_gmtime
+#define pp_gmtime              Perl_pp_gmtime
+#define Perl_pp_gnbyaddr       CPerlObj::Perl_pp_gnbyaddr
+#define pp_gnbyaddr            Perl_pp_gnbyaddr
+#define Perl_pp_gnbyname       CPerlObj::Perl_pp_gnbyname
+#define pp_gnbyname            Perl_pp_gnbyname
+#define Perl_pp_gnetent                CPerlObj::Perl_pp_gnetent
+#define pp_gnetent             Perl_pp_gnetent
+#define Perl_pp_goto           CPerlObj::Perl_pp_goto
+#define pp_goto                        Perl_pp_goto
+#define Perl_pp_gpbyname       CPerlObj::Perl_pp_gpbyname
+#define pp_gpbyname            Perl_pp_gpbyname
+#define Perl_pp_gpbynumber     CPerlObj::Perl_pp_gpbynumber
+#define pp_gpbynumber          Perl_pp_gpbynumber
+#define Perl_pp_gprotoent      CPerlObj::Perl_pp_gprotoent
+#define pp_gprotoent           Perl_pp_gprotoent
+#define Perl_pp_gpwent         CPerlObj::Perl_pp_gpwent
+#define pp_gpwent              Perl_pp_gpwent
+#define Perl_pp_gpwnam         CPerlObj::Perl_pp_gpwnam
+#define pp_gpwnam              Perl_pp_gpwnam
+#define Perl_pp_gpwuid         CPerlObj::Perl_pp_gpwuid
+#define pp_gpwuid              Perl_pp_gpwuid
+#define Perl_pp_grepstart      CPerlObj::Perl_pp_grepstart
+#define pp_grepstart           Perl_pp_grepstart
+#define Perl_pp_grepwhile      CPerlObj::Perl_pp_grepwhile
+#define pp_grepwhile           Perl_pp_grepwhile
+#define Perl_pp_gsbyname       CPerlObj::Perl_pp_gsbyname
+#define pp_gsbyname            Perl_pp_gsbyname
+#define Perl_pp_gsbyport       CPerlObj::Perl_pp_gsbyport
+#define pp_gsbyport            Perl_pp_gsbyport
+#define Perl_pp_gservent       CPerlObj::Perl_pp_gservent
+#define pp_gservent            Perl_pp_gservent
+#define Perl_pp_gsockopt       CPerlObj::Perl_pp_gsockopt
+#define pp_gsockopt            Perl_pp_gsockopt
+#define Perl_pp_gt             CPerlObj::Perl_pp_gt
+#define pp_gt                  Perl_pp_gt
+#define Perl_pp_gv             CPerlObj::Perl_pp_gv
+#define pp_gv                  Perl_pp_gv
+#define Perl_pp_gvsv           CPerlObj::Perl_pp_gvsv
+#define pp_gvsv                        Perl_pp_gvsv
+#define Perl_pp_helem          CPerlObj::Perl_pp_helem
+#define pp_helem               Perl_pp_helem
+#define Perl_pp_hex            CPerlObj::Perl_pp_hex
+#define pp_hex                 Perl_pp_hex
+#define Perl_pp_hslice         CPerlObj::Perl_pp_hslice
+#define pp_hslice              Perl_pp_hslice
+#define Perl_pp_i_add          CPerlObj::Perl_pp_i_add
+#define pp_i_add               Perl_pp_i_add
+#define Perl_pp_i_divide       CPerlObj::Perl_pp_i_divide
+#define pp_i_divide            Perl_pp_i_divide
+#define Perl_pp_i_eq           CPerlObj::Perl_pp_i_eq
+#define pp_i_eq                        Perl_pp_i_eq
+#define Perl_pp_i_ge           CPerlObj::Perl_pp_i_ge
+#define pp_i_ge                        Perl_pp_i_ge
+#define Perl_pp_i_gt           CPerlObj::Perl_pp_i_gt
+#define pp_i_gt                        Perl_pp_i_gt
+#define Perl_pp_i_le           CPerlObj::Perl_pp_i_le
+#define pp_i_le                        Perl_pp_i_le
+#define Perl_pp_i_lt           CPerlObj::Perl_pp_i_lt
+#define pp_i_lt                        Perl_pp_i_lt
+#define Perl_pp_i_modulo       CPerlObj::Perl_pp_i_modulo
+#define pp_i_modulo            Perl_pp_i_modulo
+#define Perl_pp_i_multiply     CPerlObj::Perl_pp_i_multiply
+#define pp_i_multiply          Perl_pp_i_multiply
+#define Perl_pp_i_ncmp         CPerlObj::Perl_pp_i_ncmp
+#define pp_i_ncmp              Perl_pp_i_ncmp
+#define Perl_pp_i_ne           CPerlObj::Perl_pp_i_ne
+#define pp_i_ne                        Perl_pp_i_ne
+#define Perl_pp_i_negate       CPerlObj::Perl_pp_i_negate
+#define pp_i_negate            Perl_pp_i_negate
+#define Perl_pp_i_subtract     CPerlObj::Perl_pp_i_subtract
+#define pp_i_subtract          Perl_pp_i_subtract
+#define Perl_pp_index          CPerlObj::Perl_pp_index
+#define pp_index               Perl_pp_index
+#define Perl_pp_int            CPerlObj::Perl_pp_int
+#define pp_int                 Perl_pp_int
+#define Perl_pp_ioctl          CPerlObj::Perl_pp_ioctl
+#define pp_ioctl               Perl_pp_ioctl
+#define Perl_pp_iter           CPerlObj::Perl_pp_iter
+#define pp_iter                        Perl_pp_iter
+#define Perl_pp_join           CPerlObj::Perl_pp_join
+#define pp_join                        Perl_pp_join
+#define Perl_pp_keys           CPerlObj::Perl_pp_keys
+#define pp_keys                        Perl_pp_keys
+#define Perl_pp_kill           CPerlObj::Perl_pp_kill
+#define pp_kill                        Perl_pp_kill
+#define Perl_pp_last           CPerlObj::Perl_pp_last
+#define pp_last                        Perl_pp_last
+#define Perl_pp_lc             CPerlObj::Perl_pp_lc
+#define pp_lc                  Perl_pp_lc
+#define Perl_pp_lcfirst                CPerlObj::Perl_pp_lcfirst
+#define pp_lcfirst             Perl_pp_lcfirst
+#define Perl_pp_le             CPerlObj::Perl_pp_le
+#define pp_le                  Perl_pp_le
+#define Perl_pp_leave          CPerlObj::Perl_pp_leave
+#define pp_leave               Perl_pp_leave
+#define Perl_pp_leaveeval      CPerlObj::Perl_pp_leaveeval
+#define pp_leaveeval           Perl_pp_leaveeval
+#define Perl_pp_leaveloop      CPerlObj::Perl_pp_leaveloop
+#define pp_leaveloop           Perl_pp_leaveloop
+#define Perl_pp_leavesub       CPerlObj::Perl_pp_leavesub
+#define pp_leavesub            Perl_pp_leavesub
+#define Perl_pp_leavetry       CPerlObj::Perl_pp_leavetry
+#define pp_leavetry            Perl_pp_leavetry
+#define Perl_pp_leavewrite     CPerlObj::Perl_pp_leavewrite
+#define pp_leavewrite          Perl_pp_leavewrite
+#define Perl_pp_left_shift     CPerlObj::Perl_pp_left_shift
+#define pp_left_shift          Perl_pp_left_shift
+#define Perl_pp_length         CPerlObj::Perl_pp_length
+#define pp_length              Perl_pp_length
+#define Perl_pp_lineseq                CPerlObj::Perl_pp_lineseq
+#define pp_lineseq             Perl_pp_lineseq
+#define Perl_pp_link           CPerlObj::Perl_pp_link
+#define pp_link                        Perl_pp_link
+#define Perl_pp_list           CPerlObj::Perl_pp_list
+#define pp_list                        Perl_pp_list
+#define Perl_pp_listen         CPerlObj::Perl_pp_listen
+#define pp_listen              Perl_pp_listen
+#define Perl_pp_localtime      CPerlObj::Perl_pp_localtime
+#define pp_localtime           Perl_pp_localtime
+#define Perl_pp_lock           CPerlObj::Perl_pp_lock
+#define pp_lock                        Perl_pp_lock
+#define Perl_pp_log            CPerlObj::Perl_pp_log
+#define pp_log                 Perl_pp_log
+#define Perl_pp_lslice         CPerlObj::Perl_pp_lslice
+#define pp_lslice              Perl_pp_lslice
+#define Perl_pp_lstat          CPerlObj::Perl_pp_lstat
+#define pp_lstat               Perl_pp_lstat
+#define Perl_pp_lt             CPerlObj::Perl_pp_lt
+#define pp_lt                  Perl_pp_lt
+#define Perl_pp_mapstart       CPerlObj::Perl_pp_mapstart
+#define pp_mapstart            Perl_pp_mapstart
+#define Perl_pp_mapwhile       CPerlObj::Perl_pp_mapwhile
+#define pp_mapwhile            Perl_pp_mapwhile
+#define Perl_pp_match          CPerlObj::Perl_pp_match
+#define pp_match               Perl_pp_match
+#define Perl_pp_method         CPerlObj::Perl_pp_method
+#define pp_method              Perl_pp_method
+#define Perl_pp_mkdir          CPerlObj::Perl_pp_mkdir
+#define pp_mkdir               Perl_pp_mkdir
+#define Perl_pp_modulo         CPerlObj::Perl_pp_modulo
+#define pp_modulo              Perl_pp_modulo
+#define Perl_pp_msgctl         CPerlObj::Perl_pp_msgctl
+#define pp_msgctl              Perl_pp_msgctl
+#define Perl_pp_msgget         CPerlObj::Perl_pp_msgget
+#define pp_msgget              Perl_pp_msgget
+#define Perl_pp_msgrcv         CPerlObj::Perl_pp_msgrcv
+#define pp_msgrcv              Perl_pp_msgrcv
+#define Perl_pp_msgsnd         CPerlObj::Perl_pp_msgsnd
+#define pp_msgsnd              Perl_pp_msgsnd
+#define Perl_pp_multiply       CPerlObj::Perl_pp_multiply
+#define pp_multiply            Perl_pp_multiply
+#define Perl_pp_ncmp           CPerlObj::Perl_pp_ncmp
+#define pp_ncmp                        Perl_pp_ncmp
+#define Perl_pp_ne             CPerlObj::Perl_pp_ne
+#define pp_ne                  Perl_pp_ne
+#define Perl_pp_negate         CPerlObj::Perl_pp_negate
+#define pp_negate              Perl_pp_negate
+#define Perl_pp_next           CPerlObj::Perl_pp_next
+#define pp_next                        Perl_pp_next
+#define Perl_pp_nextstate      CPerlObj::Perl_pp_nextstate
+#define pp_nextstate           Perl_pp_nextstate
+#define Perl_pp_not            CPerlObj::Perl_pp_not
+#define pp_not                 Perl_pp_not
+#define Perl_pp_null           CPerlObj::Perl_pp_null
+#define pp_null                        Perl_pp_null
+#define Perl_pp_oct            CPerlObj::Perl_pp_oct
+#define pp_oct                 Perl_pp_oct
+#define Perl_pp_open           CPerlObj::Perl_pp_open
+#define pp_open                        Perl_pp_open
+#define Perl_pp_open_dir       CPerlObj::Perl_pp_open_dir
+#define pp_open_dir            Perl_pp_open_dir
+#define Perl_pp_or             CPerlObj::Perl_pp_or
+#define pp_or                  Perl_pp_or
+#define Perl_pp_orassign       CPerlObj::Perl_pp_orassign
+#define pp_orassign            Perl_pp_orassign
+#define Perl_pp_ord            CPerlObj::Perl_pp_ord
+#define pp_ord                 Perl_pp_ord
+#define Perl_pp_pack           CPerlObj::Perl_pp_pack
+#define pp_pack                        Perl_pp_pack
+#define Perl_pp_padany         CPerlObj::Perl_pp_padany
+#define pp_padany              Perl_pp_padany
+#define Perl_pp_padav          CPerlObj::Perl_pp_padav
+#define pp_padav               Perl_pp_padav
+#define Perl_pp_padhv          CPerlObj::Perl_pp_padhv
+#define pp_padhv               Perl_pp_padhv
+#define Perl_pp_padsv          CPerlObj::Perl_pp_padsv
+#define pp_padsv               Perl_pp_padsv
+#define Perl_pp_pipe_op                CPerlObj::Perl_pp_pipe_op
+#define pp_pipe_op             Perl_pp_pipe_op
+#define Perl_pp_pop            CPerlObj::Perl_pp_pop
+#define pp_pop                 Perl_pp_pop
+#define Perl_pp_pos            CPerlObj::Perl_pp_pos
+#define pp_pos                 Perl_pp_pos
+#define Perl_pp_postdec                CPerlObj::Perl_pp_postdec
+#define pp_postdec             Perl_pp_postdec
+#define Perl_pp_postinc                CPerlObj::Perl_pp_postinc
+#define pp_postinc             Perl_pp_postinc
+#define Perl_pp_pow            CPerlObj::Perl_pp_pow
+#define pp_pow                 Perl_pp_pow
+#define Perl_pp_predec         CPerlObj::Perl_pp_predec
+#define pp_predec              Perl_pp_predec
+#define Perl_pp_preinc         CPerlObj::Perl_pp_preinc
+#define pp_preinc              Perl_pp_preinc
+#define Perl_pp_print          CPerlObj::Perl_pp_print
+#define pp_print               Perl_pp_print
+#define Perl_pp_prototype      CPerlObj::Perl_pp_prototype
+#define pp_prototype           Perl_pp_prototype
+#define Perl_pp_prtf           CPerlObj::Perl_pp_prtf
+#define pp_prtf                        Perl_pp_prtf
+#define Perl_pp_push           CPerlObj::Perl_pp_push
+#define pp_push                        Perl_pp_push
+#define Perl_pp_pushmark       CPerlObj::Perl_pp_pushmark
+#define pp_pushmark            Perl_pp_pushmark
+#define Perl_pp_pushre         CPerlObj::Perl_pp_pushre
+#define pp_pushre              Perl_pp_pushre
+#define Perl_pp_qr             CPerlObj::Perl_pp_qr
+#define pp_qr                  Perl_pp_qr
+#define Perl_pp_quotemeta      CPerlObj::Perl_pp_quotemeta
+#define pp_quotemeta           Perl_pp_quotemeta
+#define Perl_pp_rand           CPerlObj::Perl_pp_rand
+#define pp_rand                        Perl_pp_rand
+#define Perl_pp_range          CPerlObj::Perl_pp_range
+#define pp_range               Perl_pp_range
+#define Perl_pp_rcatline       CPerlObj::Perl_pp_rcatline
+#define pp_rcatline            Perl_pp_rcatline
+#define Perl_pp_read           CPerlObj::Perl_pp_read
+#define pp_read                        Perl_pp_read
+#define Perl_pp_readdir                CPerlObj::Perl_pp_readdir
+#define pp_readdir             Perl_pp_readdir
+#define Perl_pp_readline       CPerlObj::Perl_pp_readline
+#define pp_readline            Perl_pp_readline
+#define Perl_pp_readlink       CPerlObj::Perl_pp_readlink
+#define pp_readlink            Perl_pp_readlink
+#define Perl_pp_recv           CPerlObj::Perl_pp_recv
+#define pp_recv                        Perl_pp_recv
+#define Perl_pp_redo           CPerlObj::Perl_pp_redo
+#define pp_redo                        Perl_pp_redo
+#define Perl_pp_ref            CPerlObj::Perl_pp_ref
+#define pp_ref                 Perl_pp_ref
+#define Perl_pp_refgen         CPerlObj::Perl_pp_refgen
+#define pp_refgen              Perl_pp_refgen
+#define Perl_pp_regcmaybe      CPerlObj::Perl_pp_regcmaybe
+#define pp_regcmaybe           Perl_pp_regcmaybe
+#define Perl_pp_regcomp                CPerlObj::Perl_pp_regcomp
+#define pp_regcomp             Perl_pp_regcomp
+#define Perl_pp_regcreset      CPerlObj::Perl_pp_regcreset
+#define pp_regcreset           Perl_pp_regcreset
+#define Perl_pp_rename         CPerlObj::Perl_pp_rename
+#define pp_rename              Perl_pp_rename
+#define Perl_pp_repeat         CPerlObj::Perl_pp_repeat
+#define pp_repeat              Perl_pp_repeat
+#define Perl_pp_require                CPerlObj::Perl_pp_require
+#define pp_require             Perl_pp_require
+#define Perl_pp_reset          CPerlObj::Perl_pp_reset
+#define pp_reset               Perl_pp_reset
+#define Perl_pp_return         CPerlObj::Perl_pp_return
+#define pp_return              Perl_pp_return
+#define Perl_pp_reverse                CPerlObj::Perl_pp_reverse
+#define pp_reverse             Perl_pp_reverse
+#define Perl_pp_rewinddir      CPerlObj::Perl_pp_rewinddir
+#define pp_rewinddir           Perl_pp_rewinddir
+#define Perl_pp_right_shift    CPerlObj::Perl_pp_right_shift
+#define pp_right_shift         Perl_pp_right_shift
+#define Perl_pp_rindex         CPerlObj::Perl_pp_rindex
+#define pp_rindex              Perl_pp_rindex
+#define Perl_pp_rmdir          CPerlObj::Perl_pp_rmdir
+#define pp_rmdir               Perl_pp_rmdir
+#define Perl_pp_rv2av          CPerlObj::Perl_pp_rv2av
+#define pp_rv2av               Perl_pp_rv2av
+#define Perl_pp_rv2cv          CPerlObj::Perl_pp_rv2cv
+#define pp_rv2cv               Perl_pp_rv2cv
+#define Perl_pp_rv2gv          CPerlObj::Perl_pp_rv2gv
+#define pp_rv2gv               Perl_pp_rv2gv
+#define Perl_pp_rv2hv          CPerlObj::Perl_pp_rv2hv
+#define pp_rv2hv               Perl_pp_rv2hv
+#define Perl_pp_rv2sv          CPerlObj::Perl_pp_rv2sv
+#define pp_rv2sv               Perl_pp_rv2sv
+#define Perl_pp_sassign                CPerlObj::Perl_pp_sassign
+#define pp_sassign             Perl_pp_sassign
+#define Perl_pp_scalar         CPerlObj::Perl_pp_scalar
+#define pp_scalar              Perl_pp_scalar
+#define Perl_pp_schomp         CPerlObj::Perl_pp_schomp
+#define pp_schomp              Perl_pp_schomp
+#define Perl_pp_schop          CPerlObj::Perl_pp_schop
+#define pp_schop               Perl_pp_schop
+#define Perl_pp_scmp           CPerlObj::Perl_pp_scmp
+#define pp_scmp                        Perl_pp_scmp
+#define Perl_pp_scope          CPerlObj::Perl_pp_scope
+#define pp_scope               Perl_pp_scope
+#define Perl_pp_seek           CPerlObj::Perl_pp_seek
+#define pp_seek                        Perl_pp_seek
+#define Perl_pp_seekdir                CPerlObj::Perl_pp_seekdir
+#define pp_seekdir             Perl_pp_seekdir
+#define Perl_pp_select         CPerlObj::Perl_pp_select
+#define pp_select              Perl_pp_select
+#define Perl_pp_semctl         CPerlObj::Perl_pp_semctl
+#define pp_semctl              Perl_pp_semctl
+#define Perl_pp_semget         CPerlObj::Perl_pp_semget
+#define pp_semget              Perl_pp_semget
+#define Perl_pp_semop          CPerlObj::Perl_pp_semop
+#define pp_semop               Perl_pp_semop
+#define Perl_pp_send           CPerlObj::Perl_pp_send
+#define pp_send                        Perl_pp_send
+#define Perl_pp_seq            CPerlObj::Perl_pp_seq
+#define pp_seq                 Perl_pp_seq
+#define Perl_pp_setpgrp                CPerlObj::Perl_pp_setpgrp
+#define pp_setpgrp             Perl_pp_setpgrp
+#define Perl_pp_setpriority    CPerlObj::Perl_pp_setpriority
+#define pp_setpriority         Perl_pp_setpriority
+#define Perl_pp_sge            CPerlObj::Perl_pp_sge
+#define pp_sge                 Perl_pp_sge
+#define Perl_pp_sgrent         CPerlObj::Perl_pp_sgrent
+#define pp_sgrent              Perl_pp_sgrent
+#define Perl_pp_sgt            CPerlObj::Perl_pp_sgt
+#define pp_sgt                 Perl_pp_sgt
+#define Perl_pp_shift          CPerlObj::Perl_pp_shift
+#define pp_shift               Perl_pp_shift
+#define Perl_pp_shmctl         CPerlObj::Perl_pp_shmctl
+#define pp_shmctl              Perl_pp_shmctl
+#define Perl_pp_shmget         CPerlObj::Perl_pp_shmget
+#define pp_shmget              Perl_pp_shmget
+#define Perl_pp_shmread                CPerlObj::Perl_pp_shmread
+#define pp_shmread             Perl_pp_shmread
+#define Perl_pp_shmwrite       CPerlObj::Perl_pp_shmwrite
+#define pp_shmwrite            Perl_pp_shmwrite
+#define Perl_pp_shostent       CPerlObj::Perl_pp_shostent
+#define pp_shostent            Perl_pp_shostent
+#define Perl_pp_shutdown       CPerlObj::Perl_pp_shutdown
+#define pp_shutdown            Perl_pp_shutdown
+#define Perl_pp_sin            CPerlObj::Perl_pp_sin
+#define pp_sin                 Perl_pp_sin
+#define Perl_pp_sle            CPerlObj::Perl_pp_sle
+#define pp_sle                 Perl_pp_sle
+#define Perl_pp_sleep          CPerlObj::Perl_pp_sleep
+#define pp_sleep               Perl_pp_sleep
+#define Perl_pp_slt            CPerlObj::Perl_pp_slt
+#define pp_slt                 Perl_pp_slt
+#define Perl_pp_sne            CPerlObj::Perl_pp_sne
+#define pp_sne                 Perl_pp_sne
+#define Perl_pp_snetent                CPerlObj::Perl_pp_snetent
+#define pp_snetent             Perl_pp_snetent
+#define Perl_pp_socket         CPerlObj::Perl_pp_socket
+#define pp_socket              Perl_pp_socket
+#define Perl_pp_sockpair       CPerlObj::Perl_pp_sockpair
+#define pp_sockpair            Perl_pp_sockpair
+#define Perl_pp_sort           CPerlObj::Perl_pp_sort
+#define pp_sort                        Perl_pp_sort
+#define Perl_pp_splice         CPerlObj::Perl_pp_splice
+#define pp_splice              Perl_pp_splice
+#define Perl_pp_split          CPerlObj::Perl_pp_split
+#define pp_split               Perl_pp_split
+#define Perl_pp_sprintf                CPerlObj::Perl_pp_sprintf
+#define pp_sprintf             Perl_pp_sprintf
+#define Perl_pp_sprotoent      CPerlObj::Perl_pp_sprotoent
+#define pp_sprotoent           Perl_pp_sprotoent
+#define Perl_pp_spwent         CPerlObj::Perl_pp_spwent
+#define pp_spwent              Perl_pp_spwent
+#define Perl_pp_sqrt           CPerlObj::Perl_pp_sqrt
+#define pp_sqrt                        Perl_pp_sqrt
+#define Perl_pp_srand          CPerlObj::Perl_pp_srand
+#define pp_srand               Perl_pp_srand
+#define Perl_pp_srefgen                CPerlObj::Perl_pp_srefgen
+#define pp_srefgen             Perl_pp_srefgen
+#define Perl_pp_sselect                CPerlObj::Perl_pp_sselect
+#define pp_sselect             Perl_pp_sselect
+#define Perl_pp_sservent       CPerlObj::Perl_pp_sservent
+#define pp_sservent            Perl_pp_sservent
+#define Perl_pp_ssockopt       CPerlObj::Perl_pp_ssockopt
+#define pp_ssockopt            Perl_pp_ssockopt
+#define Perl_pp_stat           CPerlObj::Perl_pp_stat
+#define pp_stat                        Perl_pp_stat
+#define Perl_pp_stringify      CPerlObj::Perl_pp_stringify
+#define pp_stringify           Perl_pp_stringify
+#define Perl_pp_stub           CPerlObj::Perl_pp_stub
+#define pp_stub                        Perl_pp_stub
+#define Perl_pp_study          CPerlObj::Perl_pp_study
+#define pp_study               Perl_pp_study
+#define Perl_pp_subst          CPerlObj::Perl_pp_subst
+#define pp_subst               Perl_pp_subst
+#define Perl_pp_substcont      CPerlObj::Perl_pp_substcont
+#define pp_substcont           Perl_pp_substcont
+#define Perl_pp_substr         CPerlObj::Perl_pp_substr
+#define pp_substr              Perl_pp_substr
+#define Perl_pp_subtract       CPerlObj::Perl_pp_subtract
+#define pp_subtract            Perl_pp_subtract
+#define Perl_pp_symlink                CPerlObj::Perl_pp_symlink
+#define pp_symlink             Perl_pp_symlink
+#define Perl_pp_syscall                CPerlObj::Perl_pp_syscall
+#define pp_syscall             Perl_pp_syscall
+#define Perl_pp_sysopen                CPerlObj::Perl_pp_sysopen
+#define pp_sysopen             Perl_pp_sysopen
+#define Perl_pp_sysread                CPerlObj::Perl_pp_sysread
+#define pp_sysread             Perl_pp_sysread
+#define Perl_pp_sysseek                CPerlObj::Perl_pp_sysseek
+#define pp_sysseek             Perl_pp_sysseek
+#define Perl_pp_system         CPerlObj::Perl_pp_system
+#define pp_system              Perl_pp_system
+#define Perl_pp_syswrite       CPerlObj::Perl_pp_syswrite
+#define pp_syswrite            Perl_pp_syswrite
+#define Perl_pp_tell           CPerlObj::Perl_pp_tell
+#define pp_tell                        Perl_pp_tell
+#define Perl_pp_telldir                CPerlObj::Perl_pp_telldir
+#define pp_telldir             Perl_pp_telldir
+#define Perl_pp_threadsv       CPerlObj::Perl_pp_threadsv
+#define pp_threadsv            Perl_pp_threadsv
+#define Perl_pp_tie            CPerlObj::Perl_pp_tie
+#define pp_tie                 Perl_pp_tie
+#define Perl_pp_tied           CPerlObj::Perl_pp_tied
+#define pp_tied                        Perl_pp_tied
+#define Perl_pp_time           CPerlObj::Perl_pp_time
+#define pp_time                        Perl_pp_time
+#define Perl_pp_tms            CPerlObj::Perl_pp_tms
+#define pp_tms                 Perl_pp_tms
+#define Perl_pp_trans          CPerlObj::Perl_pp_trans
+#define pp_trans               Perl_pp_trans
+#define Perl_pp_truncate       CPerlObj::Perl_pp_truncate
+#define pp_truncate            Perl_pp_truncate
+#define Perl_pp_uc             CPerlObj::Perl_pp_uc
+#define pp_uc                  Perl_pp_uc
+#define Perl_pp_ucfirst                CPerlObj::Perl_pp_ucfirst
+#define pp_ucfirst             Perl_pp_ucfirst
+#define Perl_pp_umask          CPerlObj::Perl_pp_umask
+#define pp_umask               Perl_pp_umask
+#define Perl_pp_undef          CPerlObj::Perl_pp_undef
+#define pp_undef               Perl_pp_undef
+#define Perl_pp_unlink         CPerlObj::Perl_pp_unlink
+#define pp_unlink              Perl_pp_unlink
+#define Perl_pp_unpack         CPerlObj::Perl_pp_unpack
+#define pp_unpack              Perl_pp_unpack
+#define Perl_pp_unshift                CPerlObj::Perl_pp_unshift
+#define pp_unshift             Perl_pp_unshift
+#define Perl_pp_unstack                CPerlObj::Perl_pp_unstack
+#define pp_unstack             Perl_pp_unstack
+#define Perl_pp_untie          CPerlObj::Perl_pp_untie
+#define pp_untie               Perl_pp_untie
+#define Perl_pp_utime          CPerlObj::Perl_pp_utime
+#define pp_utime               Perl_pp_utime
+#define Perl_pp_values         CPerlObj::Perl_pp_values
+#define pp_values              Perl_pp_values
+#define Perl_pp_vec            CPerlObj::Perl_pp_vec
+#define pp_vec                 Perl_pp_vec
+#define Perl_pp_wait           CPerlObj::Perl_pp_wait
+#define pp_wait                        Perl_pp_wait
+#define Perl_pp_waitpid                CPerlObj::Perl_pp_waitpid
+#define pp_waitpid             Perl_pp_waitpid
+#define Perl_pp_wantarray      CPerlObj::Perl_pp_wantarray
+#define pp_wantarray           Perl_pp_wantarray
+#define Perl_pp_warn           CPerlObj::Perl_pp_warn
+#define pp_warn                        Perl_pp_warn
+#define Perl_pp_xor            CPerlObj::Perl_pp_xor
+#define pp_xor                 Perl_pp_xor
 
 #endif /* PERL_OBJECT */
 
index 6816740..d96158e 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -100,11 +100,14 @@ sub munge_c_files () {
 #munge_c_files();
 
 # generate proto.h
+my $wrote_protected = 0;
+
 sub write_protos {
     my $ret = "";
     if (@_ == 1) {
        my $arg = shift;
-       $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
+       $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/
+           or $arg =~ /^\s*(public|protected|private):/;
     }
     else {
        my ($flags,$retval,$func,@args) = @_;
@@ -112,8 +115,11 @@ sub write_protos {
            $retval = "STATIC $retval";
            $func = "S_$func";
        }
-       elsif ($flags =~ /p/) {
-           $func = "Perl_$func";
+       else {
+           $retval = "VIRTUAL $retval";
+           if ($flags =~ /p/) {
+               $func = "Perl_$func";
+           }
        }
        $ret .= "$retval\t$func(";
        unless ($flags =~ /n/) {
@@ -388,13 +394,16 @@ walk_table {
     }
     else {
        my ($flags,$retval,$func,@args) = @_;
-       unless ($flags =~ /o/) {
-           if ($flags =~ /s/) {
-               $ret .= hide("S_$func","CPerlObj::$func");
-           }
-           elsif ($flags =~ /p/) {
-               $ret .= hide("Perl_$func","CPerlObj::$func");
-           }
+       if ($flags =~ /s/) {
+           $ret .= hide("S_$func","CPerlObj::S_$func");
+           $ret .= hide($func,"S_$func");
+       }
+       elsif ($flags =~ /p/) {
+           $ret .= hide("Perl_$func","CPerlObj::Perl_$func");
+           $ret .= hide($func,"Perl_$func");
+       }
+       else {
+           $ret .= hide($func,"CPerlObj::$func");
        }
     }
     $ret;
@@ -402,7 +411,8 @@ walk_table {
 
 for $sym (sort keys %ppsym) {
     $sym =~ s/^Perl_//;
-    print EM hide("Perl_$sym", "CPerlObj::$sym");
+    print EM hide("Perl_$sym", "CPerlObj::Perl_$sym");
+    print EM hide($sym, "Perl_$sym");
 }
 
 print EM <<'END';
@@ -684,8 +694,12 @@ walk_table {
     }
     else {
        my ($flags,$retval,$func,@args) = @_;
-       unless ($flags =~ /o/) {
+       unless ($flags =~ /s/) {
            if ($flags =~ /p/) {
+               $ret .= undefine("Perl_$func") . hide("Perl_$func","pPerl->Perl_$func");
+               $ret .= undefine($func) . hide($func,"Perl_$func");
+           }
+           else {
                $ret .= undefine($func) . hide($func,"pPerl->$func");
            }
        }
@@ -695,7 +709,8 @@ walk_table {
 
 for $sym (sort keys %ppsym) {
     $sym =~ s/^Perl_//;
-    print OBX undefine($sym) . hide($sym, "pPerl->$sym");
+    print OBX undefine("Perl_$sym") . hide("Perl_$sym", "pPerl->Perl_$sym");
+    print OBX undefine($sym) . hide($sym, "Perl_$sym");
 }
 
 print OBX <<'EOT';
@@ -731,6 +746,9 @@ __END__
 #          may be autogenerated.
 #
 
+#if defined(PERL_OBJECT)
+public:
+#endif
 p      |SV*    |amagic_call    |SV* left|SV* right|int method|int dir
 p      |bool   |Gv_AMupdate    |HV* stash
 p      |OP*    |append_elem    |I32 optype|OP* head|OP* tail
@@ -799,6 +817,7 @@ p   |char** |get_op_descs
 p      |char** |get_op_names
 p      |char*  |get_no_modify
 p      |U32*   |get_opargs
+p      |PPADDR_t*|get_ppaddr
 p      |I32    |cxinc
 p      |void   |deb            |const char* pat|...
 p      |void   |deb_growlevel
@@ -1019,7 +1038,6 @@ p |int    |magic_set_all_env|SV* sv|MAGIC* mg
 p      |U32    |magic_sizepack |SV* sv|MAGIC* mg
 p      |int    |magic_wipepack |SV* sv|MAGIC* mg
 p      |void   |magicname      |char* sym|char* name|I32 namlen
-no     |int    |main           |int argc|char** argv|char** env
 #if defined(MYMALLOC)
 np     |MEM_SIZE|malloced_size |void *p
 #endif
@@ -1141,17 +1159,29 @@ p       |void   |pad_free       |PADOFFSET po
 p      |void   |pad_reset
 p      |void   |pad_swipe      |PADOFFSET po
 p      |void   |peep           |OP* o
+#if defined(PERL_OBJECT)
+no     |void   |perl_construct
+no     |void   |perl_destruct
+no     |void   |perl_free
+no     |int    |perl_run
+no     |int    |perl_parse     |XSINIT_t xsinit \
+                               |int argc|char** argv|char** env
+#else
 no     |PerlInterpreter*       |perl_alloc
+no     |void   |perl_construct |PerlInterpreter* sv_interp
+no     |void   |perl_destruct  |PerlInterpreter* sv_interp
+no     |void   |perl_free      |PerlInterpreter* sv_interp
+no     |int    |perl_run       |PerlInterpreter* sv_interp
+no     |int    |perl_parse     |PerlInterpreter* sv_interp|XSINIT_t xsinit \
+                               |int argc|char** argv|char** env
+#endif
 p      |void   |call_atexit    |ATEXIT_t fn|void *ptr
 p      |I32    |call_argv      |const char* sub_name|I32 flags|char** argv
 p      |I32    |call_method    |const char* methname|I32 flags
 p      |I32    |call_pv        |const char* sub_name|I32 flags
 p      |I32    |call_sv        |SV* sv|I32 flags
-no     |void   |perl_construct |PerlInterpreter* sv_interp
-no     |void   |perl_destruct  |PerlInterpreter* sv_interp
 p      |SV*    |eval_pv        |const char* p|I32 croak_on_error
 p      |I32    |eval_sv        |SV* sv|I32 flags
-no     |void   |perl_free      |PerlInterpreter* sv_interp
 p      |SV*    |get_sv         |const char* name|I32 create
 p      |AV*    |get_av         |const char* name|I32 create
 p      |HV*    |get_hv         |const char* name|I32 create
@@ -1164,10 +1194,7 @@ p        |void   |new_numeric    |const char* newcoll
 p      |void   |set_numeric_local
 p      |void   |set_numeric_radix
 p      |void   |set_numeric_standard
-no     |int    |perl_parse     |PerlInterpreter* sv_interp|XSINIT_t xsinit \
-                               |int argc|char** argv|char** env
 p      |void   |require_pv     |const char* pv
-no     |int    |perl_run       |PerlInterpreter* sv_interp
 p      |void   |pidgone        |int pid|int status
 p      |void   |pmflag         |U16* pmfl|int ch
 p      |OP*    |pmruntime      |OP* pm|OP* expr|OP* repl
@@ -1406,8 +1433,12 @@ p        |int    |runops_standard
 p      |int    |runops_debug
 
 #if defined(WIN32)
+#if defined(PERL_OBJECT)
+p      |int&   |ErrorNo
+#else
 p      |int*   |ErrorNo
 #endif
+#endif
 p      |void   |sv_catpvf_mg   |SV *sv|const char* pat|...
 p      |void   |sv_catpv_mg    |SV *sv|const char *ptr
 p      |void   |sv_catpvn_mg   |SV *sv|const char *ptr|STRLEN len
@@ -1444,11 +1475,14 @@ p       |void   |tmps_grow      |I32 n
 p      |SV*    |sv_rvweaken    |SV *sv
 p      |int    |magic_killbackrefs|SV *sv|MAGIC *mg
 
-#if defined(PERL_IN_AV_C)
+#if defined(PERL_OBJECT)
+protected:
+#endif
+#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 s      |I32    |avhv_index_sv  |SV* sv
 #endif
 
-#if defined(PERL_IN_DOOP_C)
+#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
 s      |I32    |do_trans_CC_simple     |SV *sv
 s      |I32    |do_trans_CC_count      |SV *sv
 s      |I32    |do_trans_CC_complex    |SV *sv
@@ -1461,11 +1495,11 @@ s       |I32    |do_trans_UC_trivial    |SV *sv
 s      |I32    |do_trans_CU_trivial    |SV *sv
 #endif
 
-#if defined(PERL_IN_GV_C)
+#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
 s      |void   |gv_init_sv     |GV *gv|I32 sv_type
 #endif
 
-#if defined(PERL_IN_HV_C)
+#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
 s      |void   |hsplit         |HV *hv
 s      |void   |hfreeentries   |HV *hv
 s      |void   |more_he
@@ -1475,7 +1509,7 @@ s |HEK*   |save_hek       |const char *str|I32 len|U32 hash
 s      |void   |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
 #endif
 
-#if defined(PERL_IN_MG_C)
+#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
 s      |void   |save_magic     |I32 mgs_ix|SV *sv
 s      |int    |magic_methpack |SV *sv|MAGIC *mg|char *meth
 s      |int    |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \
@@ -1484,7 +1518,7 @@ s |void   |unwind_handler_stack   |void *p
 s      |void   |restore_magic  |void *p
 #endif
 
-#if defined(PERL_IN_OP_C)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 s      |I32    |list_assignment|OP *o
 s      |void   |bad_type       |I32 n|char *t|char *name|OP *kid
 s      |OP*    |modkids        |OP *o|I32 type
@@ -1508,7 +1542,7 @@ s |void*  |Slab_Alloc     |int m|size_t sz
 #  endif
 #endif
 
-#if defined(PERL_IN_PERL_C)
+#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
 s      |void   |find_beginning
 s      |void   |forbid_setid   |char *
 s      |void   |incpush        |char *|int
@@ -1525,7 +1559,6 @@ s |void   |nuke_stacks
 s      |void   |open_script    |char *|bool|SV *|int *fd
 s      |void   |usage          |char *
 s      |void   |validate_suid  |char *|char*|int
-s      |I32    |read_e_script  |int idx|SV *buf_sv|int maxlen
 #  if defined(IAMSUID)
 s      |int    |fd_on_nosuid_fs|int fd
 #  endif
@@ -1539,7 +1572,7 @@ s |struct perl_thread *   |init_main_thread
 #  endif
 #endif
 
-#if defined(PERL_IN_PP_C)
+#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
 s      |void   |doencodes      |SV* sv|char* s|I32 len
 s      |SV*    |refto          |SV* sv
 s      |U32    |seed
@@ -1548,7 +1581,7 @@ s |SV*    |is_an_int      |char *s|STRLEN l
 s      |int    |div128         |SV *pnum|bool *done
 #endif
 
-#if defined(PERL_IN_PP_CTL_C)
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
 s      |OP*    |docatch        |OP *o
 s      |void*  |docatch_body   |va_list args
 s      |OP*    |dofindlabel    |OP *o|char *label|OP **opstack|OP **oplimit
@@ -1572,14 +1605,14 @@ s       |I32    |amagic_cmp     |SV *str1|SV *str2
 s      |I32    |amagic_cmp_locale|SV *str1|SV *str2
 #endif
 
-#if defined(PERL_IN_PP_HOT_C)
+#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
 s      |CV*    |get_db_sub     |SV **svp|CV *cv
 #  if defined(USE_THREADS)
 s      |void   |unset_cvowner  |void *cvarg
 #  endif
 #endif
 
-#if defined(PERL_IN_PP_SYS_C)
+#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
 s      |OP*    |doform         |CV *cv|GV *gv|OP *retop
 s      |int    |emulate_eaccess|const char* path|int mode
 #  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
@@ -1587,7 +1620,7 @@ s |int    |dooneliner     |char *cmd|char *filename
 #  endif
 #endif
 
-#if defined(PERL_IN_REGCOMP_C)
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
 s      |regnode*|reg           |I32|I32 *
 s      |regnode*|reganode      |U8|U32
 s      |regnode*|regatom       |I32 *
@@ -1615,7 +1648,7 @@ s |char*|regpposixcc      |I32 value
 s      |void   |clear_re       |void *r
 #endif
 
-#if defined(PERL_IN_REGEXEC_C)
+#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
 s      |I32    |regmatch       |regnode *prog
 s      |I32    |regrepeat      |regnode *p|I32 max
 s      |I32    |regrepeat_hard |regnode *p|I32 max|I32 *lp
@@ -1631,15 +1664,15 @@ s       |U8*    |reghop         |U8 *pos|I32 off
 s      |U8*    |reghopmaybe    |U8 *pos|I32 off
 #endif
 
-#if defined(PERL_IN_RUN_C)
+#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
 s      |void   |debprof        |OP *o
 #endif
 
-#if defined(PERL_IN_SCOPE_C)
+#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
 s      |SV*    |save_scalar_at |SV **sptr
 #endif
 
-#if defined(PERL_IN_SV_C)
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 s      |IV     |asIV           |SV* sv
 s      |UV     |asUV           |SV* sv
 s      |SV*    |more_sv
@@ -1675,7 +1708,7 @@ s |void   |del_sv |SV *p
 #  endif
 #endif
 
-#if defined(PERL_IN_TOKE_C)
+#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
 s      |void   |check_uni
 s      |void   |force_next     |I32 type
 s      |char*  |force_version  |char *start
@@ -1726,14 +1759,15 @@ s       |I32    |win32_textfilter       |int idx|SV *sv|int maxlen
 #  endif
 #endif
 
-#if defined(PERL_IN_UNIVERSAL_C)
+#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
 s      |SV*|isa_lookup |HV *stash|const char *name|int len|int level
 #endif
 
-#if defined(PERL_IN_UTIL_C)
+#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
 s      |SV*    |mess_alloc
 rs     |void   |do_croak       |const char *pat|va_list *args
 s      |void   |do_warn        |const char *pat|va_list *args
+s      |OP*    |do_die         |const char *pat|va_list *args
 #  if defined(LEAKTEST)
 s      |void   |xstat          |int
 #  endif
index 90ec6c1..7e32d01 100644 (file)
@@ -15,9 +15,9 @@
 #undef PL_op_name
 #undef PL_opargs 
 #undef PL_op_desc
-#define PL_op_name (pPerl->Perl_get_op_names())
-#define PL_opargs (pPerl->Perl_get_opargs())
-#define PL_op_desc (pPerl->Perl_get_op_descs())
+#define PL_op_name (get_op_names())
+#define PL_opargs (get_opargs())
+#define PL_op_desc (get_op_descs())
 #endif
 
 #ifdef PerlIO
index 34002f1..07f0838 100644 (file)
@@ -7,17 +7,13 @@ static void
 freadpv(U32 len, void *data, XPV *pv)
 {
     New(666, pv->xpv_pv, len, char);
-    fread(pv->xpv_pv, 1, len, (FILE*)data);
+    PerlIO_read((PerlIO*)data, (void*)pv->xpv_pv, len);
     pv->xpv_len = len;
     pv->xpv_cur = len - 1;
 }
 
 static I32
-#ifdef PERL_OBJECT
-byteloader_filter(CPerlObj *pPerl, int idx, SV *buf_sv, int maxlen)
-#else
-byteloader_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
-#endif
+byteloader_filter(pTHXo_ int idx, SV *buf_sv, int maxlen)
 {
     dTHR;
     OP *saveroot = PL_main_root;
@@ -29,7 +25,7 @@ byteloader_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
     bs.pfread = (int(*) (char*,size_t,size_t,void*))fread;
     bs.pfreadpv = freadpv;
 
-    byterun(bs);
+    byterun(aTHXo_ bs);
 
     if (PL_in_eval) {
         OP *o;
index 8a59bb1..9d597fb 100644 (file)
@@ -140,4 +140,4 @@ typedef IV IV64;
 
 #define BSET_OBJ_STORE(obj, ix)                \
        (I32)ix > bytecode_obj_list_fill ?      \
-       bset_obj_store(obj, (I32)ix) : (bytecode_obj_list[ix] = obj)
+       bset_obj_store(aTHXo_ obj, (I32)ix) : (bytecode_obj_list[ix] = obj)
index e124c23..544a59f 100644 (file)
 
 #include "EXTERN.h"
 #include "perl.h"
+#define NO_XSLOCKS
+#include "XSUB.h"
+
+#ifdef PERL_OBJECT
+#undef CALL_FPTR
+#define CALL_FPTR(fptr) (pPerl->*fptr)
+#undef PL_ppaddr
+#define PL_ppaddr (*get_ppaddr())
+#endif
+
 #include "byterun.h"
 #include "bytecode.h"
 
+
 static int optype_size[] = {
     sizeof(OP),
     sizeof(UNOP),
@@ -38,7 +49,7 @@ static void **bytecode_obj_list;
 static I32 bytecode_obj_list_fill = -1;
 
 void *
-bset_obj_store(void *obj, I32 ix)
+bset_obj_store(pTHXo_ void *obj, I32 ix)
 {
     if (ix > bytecode_obj_list_fill) {
        if (bytecode_obj_list_fill == -1)
@@ -52,7 +63,7 @@ bset_obj_store(void *obj, I32 ix)
 }
 
 void
-byterun(pTHX_ struct bytestream bs)
+byterun(pTHXo_ struct bytestream bs)
 {
     dTHR;
     int insn;
index 3c5b234..3a0381f 100644 (file)
@@ -173,6 +173,8 @@ EXT int PL_optype_size[]
 #endif /* DOINIT */
 ;
 
+EXT void byterun(pTHXo_ struct bytestream bs);
+
 #define INIT_SPECIALSV_LIST STMT_START { \
        PL_specialsv_list[0] = Nullsv; \
        PL_specialsv_list[1] = &PL_sv_undef; \
index b1e0bd6..6da5323 100644 (file)
@@ -26,7 +26,7 @@ static int dl_debug = 0;      /* value copied from $DynaLoader::dl_error */
 
 
 static void
-dl_generic_private_init(pTHX /* called by dl_*.xs dl_private_init() */
+dl_generic_private_init(pTHXo) /* called by dl_*.xs dl_private_init() */
 {
     char *perl_dl_nonlazy;
 #ifdef DEBUGGING
@@ -45,7 +45,7 @@ dl_generic_private_init(pTHX) /* called by dl_*.xs dl_private_init() */
 
 /* SaveError() takes printf style args and saves the result in LastError */
 static void
-SaveError(pTHX_ char* pat, ...)
+SaveError(pTHXo_ char* pat, ...)
 {
     va_list args;
     SV *msv;
index 0c3f72b..efbca1d 100644 (file)
@@ -66,6 +66,7 @@ Perl_get_op_descs
 Perl_get_op_names
 Perl_get_no_modify
 Perl_get_opargs
+Perl_get_ppaddr
 Perl_cxinc
 Perl_deb
 Perl_deb_growlevel
@@ -263,7 +264,6 @@ Perl_magic_set_all_env
 Perl_magic_sizepack
 Perl_magic_wipepack
 Perl_magicname
-main
 Perl_malloced_size
 Perl_markstack_grow
 Perl_mem_collxfrm
@@ -362,17 +362,24 @@ Perl_pad_free
 Perl_pad_reset
 Perl_pad_swipe
 Perl_peep
+perl_construct
+perl_destruct
+perl_free
+perl_run
+perl_parse
 perl_alloc
+perl_construct
+perl_destruct
+perl_free
+perl_run
+perl_parse
 Perl_call_atexit
 Perl_call_argv
 Perl_call_method
 Perl_call_pv
 Perl_call_sv
-perl_construct
-perl_destruct
 Perl_eval_pv
 Perl_eval_sv
-perl_free
 Perl_get_sv
 Perl_get_av
 Perl_get_hv
@@ -385,9 +392,7 @@ Perl_new_numeric
 Perl_set_numeric_local
 Perl_set_numeric_radix
 Perl_set_numeric_standard
-perl_parse
 Perl_require_pv
-perl_run
 Perl_pidgone
 Perl_pmflag
 Perl_pmruntime
@@ -592,6 +597,7 @@ Perl_yydestruct
 Perl_runops_standard
 Perl_runops_debug
 Perl_ErrorNo
+Perl_ErrorNo
 Perl_sv_catpvf_mg
 Perl_sv_catpv_mg
 Perl_sv_catpvn_mg
index 8ac296d..8ba15b3 100644 (file)
--- a/globals.c
+++ b/globals.c
@@ -34,13 +34,13 @@ void*
 CPerlObj::operator new(size_t nSize, IPerlMem *pvtbl)
 {
     if(pvtbl != NULL)
-       return pvtbl->Malloc(nSize);
+       return pvtbl->pMalloc(pvtbl, nSize);
 
     return NULL;
 }
 
 int&
-CPerlObj::ErrorNo(void)
+Perl_ErrorNo(void)
 {
     return errno;
 }
@@ -50,4 +50,26 @@ CPerlObj::Init(void)
 {
 }
 
+int
+CPerlObj::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
+Perl_do_exec(char *cmd)
+{
+    return PerlProc_Cmd(cmd);
+}
+
+int
+CPerlObj::do_aspawn(void *vreally, void **vmark, void **vsp)
+{
+    return PerlProc_aspawn(vreally, vmark, vsp);
+}
+#endif  /* WIN32 */
+
 #endif   /* PERL_OBJECT */
index 9ad3256..d3ac12f 100644 (file)
@@ -80,54 +80,102 @@ extern void PerlIO_init (void);
 typedef struct _PerlIO PerlIO;
 #endif
 
-class IPerlStdIO
+/* IPerlStdIO          */
+struct IPerlStdIO;
+typedef PerlIO*                (*LPStdin)(struct IPerlStdIO*);
+typedef PerlIO*                (*LPStdout)(struct IPerlStdIO*);
+typedef PerlIO*                (*LPStderr)(struct IPerlStdIO*);
+typedef PerlIO*                (*LPOpen)(struct IPerlStdIO*, const char*,
+                           const char*);
+typedef int            (*LPClose)(struct IPerlStdIO*, PerlIO*);
+typedef int            (*LPEof)(struct IPerlStdIO*, PerlIO*);
+typedef int            (*LPError)(struct IPerlStdIO*, PerlIO*);
+typedef void           (*LPClearerr)(struct IPerlStdIO*, PerlIO*);
+typedef int            (*LPGetc)(struct IPerlStdIO*, PerlIO*);
+typedef char*          (*LPGetBase)(struct IPerlStdIO*, PerlIO*);
+typedef int            (*LPGetBufsiz)(struct IPerlStdIO*, PerlIO*);
+typedef int            (*LPGetCnt)(struct IPerlStdIO*, PerlIO*);
+typedef char*          (*LPGetPtr)(struct IPerlStdIO*, PerlIO*);
+typedef char*          (*LPGets)(struct IPerlStdIO*, PerlIO*, char*, int);
+typedef int            (*LPPutc)(struct IPerlStdIO*, PerlIO*, int);
+typedef int            (*LPPuts)(struct IPerlStdIO*, PerlIO*, const char*);
+typedef int            (*LPFlush)(struct IPerlStdIO*, PerlIO*);
+typedef int            (*LPUngetc)(struct IPerlStdIO*, PerlIO*,int);
+typedef int            (*LPFileno)(struct IPerlStdIO*, PerlIO*);
+typedef PerlIO*                (*LPFdopen)(struct IPerlStdIO*, int, const char*);
+typedef PerlIO*                (*LPReopen)(struct IPerlStdIO*, const char*,
+                           const char*, PerlIO*);
+typedef SSize_t                (*LPRead)(struct IPerlStdIO*, PerlIO*, void*, Size_t);
+typedef SSize_t                (*LPWrite)(struct IPerlStdIO*, PerlIO*, const void*,
+                           Size_t);
+typedef void           (*LPSetBuf)(struct IPerlStdIO*, PerlIO*, char*);
+typedef int            (*LPSetVBuf)(struct IPerlStdIO*, PerlIO*, char*, int,
+                           Size_t);
+typedef void           (*LPSetCnt)(struct IPerlStdIO*, PerlIO*, int);
+typedef void           (*LPSetPtrCnt)(struct IPerlStdIO*, PerlIO*, char*,
+                           int);
+typedef void           (*LPSetlinebuf)(struct IPerlStdIO*, PerlIO*);
+typedef int            (*LPPrintf)(struct IPerlStdIO*, PerlIO*, const char*, 
+                           ...);
+typedef int            (*LPVprintf)(struct IPerlStdIO*, PerlIO*, const char*,
+                           va_list);
+typedef long           (*LPTell)(struct IPerlStdIO*, PerlIO*);
+typedef int            (*LPSeek)(struct IPerlStdIO*, PerlIO*, Off_t, int);
+typedef void           (*LPRewind)(struct IPerlStdIO*, PerlIO*);
+typedef PerlIO*                (*LPTmpfile)(struct IPerlStdIO*);
+typedef int            (*LPGetpos)(struct IPerlStdIO*, PerlIO*, Fpos_t*);
+typedef int            (*LPSetpos)(struct IPerlStdIO*, PerlIO*,
+                           const Fpos_t*);
+typedef void           (*LPInit)(struct IPerlStdIO*);
+typedef void           (*LPInitOSExtras)(struct IPerlStdIO*);
+
+struct IPerlStdIO
 {
-public:
-    virtual PerlIO *   Stdin(void) = 0;
-    virtual PerlIO *   Stdout(void) = 0;
-    virtual PerlIO *   Stderr(void) = 0;
-    virtual PerlIO *   Open(const char *, const char *, int &err) = 0;
-    virtual int                Close(PerlIO*, int &err) = 0;
-    virtual int                Eof(PerlIO*, int &err) = 0;
-    virtual int                Error(PerlIO*, int &err) = 0;
-    virtual void       Clearerr(PerlIO*, int &err) = 0;
-    virtual int                Getc(PerlIO*, int &err) = 0;
-    virtual char *     GetBase(PerlIO *, int &err) = 0;
-    virtual int                GetBufsiz(PerlIO *, int &err) = 0;
-    virtual int                GetCnt(PerlIO *, int &err) = 0;
-    virtual char *     GetPtr(PerlIO *, int &err) = 0;
-    virtual char *     Gets(PerlIO*, char*, int, int& err) = 0;
-    virtual int                Putc(PerlIO*, int, int &err) = 0;
-    virtual int                Puts(PerlIO*, const char *, int &err) = 0;
-    virtual int                Flush(PerlIO*, int &err) = 0;
-    virtual int                Ungetc(PerlIO*,int, int &err) = 0;
-    virtual int                Fileno(PerlIO*, int &err) = 0;
-    virtual PerlIO *   Fdopen(int, const char *, int &err) = 0;
-    virtual PerlIO *   Reopen(const char*, const char*, PerlIO*, int &err) = 0;
-    virtual SSize_t    Read(PerlIO*,void *,Size_t, int &err) = 0;
-    virtual SSize_t    Write(PerlIO*,const void *,Size_t, int &err) = 0;
-    virtual void       SetBuf(PerlIO *, char*, int &err) = 0;
-    virtual int                SetVBuf(PerlIO *, char*, int, Size_t, int &err) = 0;
-    virtual void       SetCnt(PerlIO *, int, int &err) = 0;
-    virtual void       SetPtrCnt(PerlIO *, char *, int, int& err) = 0;
-    virtual void       Setlinebuf(PerlIO*, int &err) = 0;
-    virtual int                Printf(PerlIO*, int &err, const char *,...) = 0;
-    virtual int                Vprintf(PerlIO*, int &err, const char *, va_list) = 0;
-    virtual long       Tell(PerlIO*, int &err) = 0;
-    virtual int                Seek(PerlIO*, Off_t, int, int &err) = 0;
-    virtual void       Rewind(PerlIO*, int &err) = 0;
-    virtual PerlIO *   Tmpfile(int &err) = 0;
-    virtual int                Getpos(PerlIO*, Fpos_t *, int &err) = 0;
-    virtual int                Setpos(PerlIO*, const Fpos_t *, int &err) = 0;
-    virtual void       Init(int &err) = 0;
-    virtual void       InitOSExtras(void* p) = 0;
-#ifdef WIN32
-    virtual int                OpenOSfhandle(long osfhandle, int flags) = 0;
-    virtual int                GetOSfhandle(int filenum) = 0;
-#endif
+    LPStdin            pStdin;
+    LPStdout           pStdout;
+    LPStderr           pStderr;
+    LPOpen             pOpen;
+    LPClose            pClose;
+    LPEof              pEof;
+    LPError            pError;
+    LPClearerr         pClearerr;
+    LPGetc             pGetc;
+    LPGetBase          pGetBase;
+    LPGetBufsiz                pGetBufsiz;
+    LPGetCnt           pGetCnt;
+    LPGetPtr           pGetPtr;
+    LPGets             pGets;
+    LPPutc             pPutc;
+    LPPuts             pPuts;
+    LPFlush            pFlush;
+    LPUngetc           pUngetc;
+    LPFileno           pFileno;
+    LPFdopen           pFdopen;
+    LPReopen           pReopen;
+    LPRead             pRead;
+    LPWrite            pWrite;
+    LPSetBuf           pSetBuf;
+    LPSetVBuf          pSetVBuf;
+    LPSetCnt           pSetCnt;
+    LPSetPtrCnt                pSetPtrCnt;
+    LPSetlinebuf       pSetlinebuf;
+    LPPrintf           pPrintf;
+    LPVprintf          pVprintf;
+    LPTell             pTell;
+    LPSeek             pSeek;
+    LPRewind           pRewind;
+    LPTmpfile          pTmpfile;
+    LPGetpos           pGetpos;
+    LPSetpos           pSetpos;
+    LPInit             pInit;
+    LPInitOSExtras     pInitOSExtras;
 };
 
-
+struct IPerlStdIOInfo
+{
+    unsigned long      nCount;     /* number of entries expected */
+    struct IPerlStdIO  perlStdIOList;
+};
 
 #ifdef USE_STDIO_PTR
 #  define PerlIO_has_cntptr(f)         1       
@@ -154,49 +202,83 @@ public:
 #define PerlIO_has_base(f)             0
 #endif
 
-#define PerlIO_stdin()         PL_piStdIO->Stdin()
-#define PerlIO_stdout()                PL_piStdIO->Stdout()
-#define PerlIO_stderr()                PL_piStdIO->Stderr()
-#define PerlIO_open(x,y)       PL_piStdIO->Open((x),(y), ErrorNo())
-#define PerlIO_close(f)                PL_piStdIO->Close((f), ErrorNo())
-#define PerlIO_eof(f)          PL_piStdIO->Eof((f), ErrorNo())
-#define PerlIO_error(f)                PL_piStdIO->Error((f), ErrorNo())
-#define PerlIO_clearerr(f)     PL_piStdIO->Clearerr((f), ErrorNo())
-#define PerlIO_getc(f)         PL_piStdIO->Getc((f), ErrorNo())
-#define PerlIO_get_base(f)     PL_piStdIO->GetBase((f), ErrorNo())
-#define PerlIO_get_bufsiz(f)   PL_piStdIO->GetBufsiz((f), ErrorNo())
-#define PerlIO_get_cnt(f)      PL_piStdIO->GetCnt((f), ErrorNo())
-#define PerlIO_get_ptr(f)      PL_piStdIO->GetPtr((f), ErrorNo())
-#define PerlIO_putc(f,c)       PL_piStdIO->Putc((f),(c), ErrorNo())
-#define PerlIO_puts(f,s)       PL_piStdIO->Puts((f),(s), ErrorNo())
-#define PerlIO_flush(f)                PL_piStdIO->Flush((f), ErrorNo())
-#define PerlIO_gets(s, n, fp)   PL_piStdIO->Gets((fp), s, n, ErrorNo())
-#define PerlIO_ungetc(f,c)     PL_piStdIO->Ungetc((f),(c), ErrorNo())
-#define PerlIO_fileno(f)       PL_piStdIO->Fileno((f), ErrorNo())
-#define PerlIO_fdopen(f, s)    PL_piStdIO->Fdopen((f),(s), ErrorNo())
-#define PerlIO_reopen(p, m, f)  PL_piStdIO->Reopen((p), (m), (f), ErrorNo())
+#define PerlIO_stdin()                                                 \
+       (*PL_piStdIO->pStdin)(PL_piStdIO)
+#define PerlIO_stdout()                                                        \
+       (*PL_piStdIO->pStdout)(PL_piStdIO)
+#define PerlIO_stderr()                                                        \
+       (*PL_piStdIO->pStderr)(PL_piStdIO)
+#define PerlIO_open(x,y)                                               \
+       (*PL_piStdIO->pOpen)(PL_piStdIO, (x),(y))
+#define PerlIO_close(f)                                                        \
+       (*PL_piStdIO->pClose)(PL_piStdIO, (f))
+#define PerlIO_eof(f)                                                  \
+       (*PL_piStdIO->pEof)(PL_piStdIO, (f))
+#define PerlIO_error(f)                                                        \
+       (*PL_piStdIO->pError)(PL_piStdIO, (f))
+#define PerlIO_clearerr(f)                                             \
+       (*PL_piStdIO->pClearerr)(PL_piStdIO, (f))
+#define PerlIO_getc(f)                                                 \
+       (*PL_piStdIO->pGetc)(PL_piStdIO, (f))
+#define PerlIO_get_base(f)                                             \
+       (*PL_piStdIO->pGetBase)(PL_piStdIO, (f))
+#define PerlIO_get_bufsiz(f)                                           \
+       (*PL_piStdIO->pGetBufsiz)(PL_piStdIO, (f))
+#define PerlIO_get_cnt(f)                                              \
+       (*PL_piStdIO->pGetCnt)(PL_piStdIO, (f))
+#define PerlIO_get_ptr(f)                                              \
+       (*PL_piStdIO->pGetPtr)(PL_piStdIO, (f))
+#define PerlIO_putc(f,c)                                               \
+       (*PL_piStdIO->pPutc)(PL_piStdIO, (f),(c))
+#define PerlIO_puts(f,s)                                               \
+       (*PL_piStdIO->pPuts)(PL_piStdIO, (f),(s))
+#define PerlIO_flush(f)                                                        \
+       (*PL_piStdIO->pFlush)(PL_piStdIO, (f))
+#define PerlIO_gets(s, n, fp)                                          \
+       (*PL_piStdIO->pGets)(PL_piStdIO, (fp), s, n)
+#define PerlIO_ungetc(f,c)                                             \
+       (*PL_piStdIO->pUngetc)(PL_piStdIO, (f),(c))
+#define PerlIO_fileno(f)                                               \
+       (*PL_piStdIO->pFileno)(PL_piStdIO, (f))
+#define PerlIO_fdopen(f, s)                                            \
+       (*PL_piStdIO->pFdopen)(PL_piStdIO, (f),(s))
+#define PerlIO_reopen(p, m, f)                                         \
+       (*PL_piStdIO->pReopen)(PL_piStdIO, (p), (m), (f))
 #define PerlIO_read(f,buf,count)                                       \
-       (SSize_t)PL_piStdIO->Read((f), (buf), (count), ErrorNo())
+       (SSize_t)(*PL_piStdIO->pRead)(PL_piStdIO, (f), (buf), (count))
 #define PerlIO_write(f,buf,count)                                      \
-       PL_piStdIO->Write((f), (buf), (count), ErrorNo())
-#define PerlIO_setbuf(f,b)     PL_piStdIO->SetBuf((f), (b), ErrorNo())
-#define PerlIO_setvbuf(f,b,t,s)        PL_piStdIO->SetVBuf((f), (b), (t), (s), ErrorNo())
-#define PerlIO_set_cnt(f,c)    PL_piStdIO->SetCnt((f), (c), ErrorNo())
+       (*PL_piStdIO->pWrite)(PL_piStdIO, (f), (buf), (count))
+#define PerlIO_setbuf(f,b)                                             \
+       (*PL_piStdIO->pSetBuf)(PL_piStdIO, (f), (b))
+#define PerlIO_setvbuf(f,b,t,s)                                                \
+       (*PL_piStdIO->pSetVBuf)(PL_piStdIO, (f),(b),(t),(s))
+#define PerlIO_set_cnt(f,c)                                            \
+       (*PL_piStdIO->pSetCnt)(PL_piStdIO, (f), (c))
 #define PerlIO_set_ptrcnt(f,p,c)                                       \
-       PL_piStdIO->SetPtrCnt((f), (p), (c), ErrorNo())
-#define PerlIO_setlinebuf(f)   PL_piStdIO->Setlinebuf((f), ErrorNo())
+       (*PL_piStdIO->pSetPtrCnt)(PL_piStdIO, (f), (p), (c))
+#define PerlIO_setlinebuf(f)                                           \
+       (*PL_piStdIO->pSetlinebuf)(PL_piStdIO, (f))
 #define PerlIO_printf          fprintf
-#define PerlIO_stdoutf         PL_piStdIO->Printf
-#define PerlIO_vprintf(f,fmt,a)        PL_piStdIO->Vprintf((f), ErrorNo(), (fmt),a)          
-#define PerlIO_tell(f)         PL_piStdIO->Tell((f), ErrorNo())
-#define PerlIO_seek(f,o,w)     PL_piStdIO->Seek((f),(o),(w), ErrorNo())
-#define PerlIO_getpos(f,p)     PL_piStdIO->Getpos((f),(p), ErrorNo())
-#define PerlIO_setpos(f,p)     PL_piStdIO->Setpos((f),(p), ErrorNo())
-#define PerlIO_rewind(f)       PL_piStdIO->Rewind((f), ErrorNo())
-#define PerlIO_tmpfile()       PL_piStdIO->Tmpfile(ErrorNo())
-#define PerlIO_init()          PL_piStdIO->Init(ErrorNo())
+#define PerlIO_stdoutf         *PL_piStdIO->pPrintf
+#define PerlIO_vprintf(f,fmt,a)                                                \
+       (*PL_piStdIO->pVprintf)(PL_piStdIO, (f),(fmt),a)          
+#define PerlIO_tell(f)                                                 \
+       (*PL_piStdIO->pTell)(PL_piStdIO, (f))
+#define PerlIO_seek(f,o,w)                                             \
+       (*PL_piStdIO->pSeek)(PL_piStdIO, (f),(o),(w))
+#define PerlIO_getpos(f,p)                                             \
+       (*PL_piStdIO->pGetpos)(PL_piStdIO, (f),(p))
+#define PerlIO_setpos(f,p)                                             \
+       (*PL_piStdIO->pSetpos)(PL_piStdIO, (f),(p))
+#define PerlIO_rewind(f)                                               \
+       (*PL_piStdIO->pRewind)(PL_piStdIO, (f))
+#define PerlIO_tmpfile()                                               \
+       (*PL_piStdIO->pTmpfile)(PL_piStdIO)
+#define PerlIO_init()                                                  \
+       (*PL_piStdIO->pInit)(PL_piStdIO)
 #undef         init_os_extras
-#define init_os_extras()       PL_piStdIO->InitOSExtras(this)
+#define init_os_extras(x)                                              \
+       (*PL_piStdIO->pInitOSExtras)(PL_piStdIO)
 
 #else  /* PERL_OBJECT */
 
@@ -386,38 +468,55 @@ extern int        PerlIO_setpos           (PerlIO *,const Fpos_t *);
 
 #ifdef PERL_OBJECT
 
-class IPerlDir
+/* IPerlDir            */
+struct IPerlDir;
+typedef int            (*LPMakedir)(struct IPerlDir*, const char*, int);
+typedef int            (*LPChdir)(struct IPerlDir*, const char*);
+typedef int            (*LPRmdir)(struct IPerlDir*, const char*);
+typedef int            (*LPDirClose)(struct IPerlDir*, DIR*);
+typedef DIR*           (*LPDirOpen)(struct IPerlDir*, char*);
+typedef struct direct* (*LPDirRead)(struct IPerlDir*, DIR*);
+typedef void           (*LPDirRewind)(struct IPerlDir*, DIR*);
+typedef void           (*LPDirSeek)(struct IPerlDir*, DIR*, long);
+typedef long           (*LPDirTell)(struct IPerlDir*, DIR*);
+
+struct IPerlDir
 {
-public:
-    virtual int                Makedir(const char *dirname, int mode, int &err) = 0;
-    virtual int                Chdir(const char *dirname, int &err) = 0;
-    virtual int                Rmdir(const char *dirname, int &err) = 0;
-    virtual int                Close(DIR *dirp, int &err) = 0;
-    virtual DIR *      Open(char *filename, int &err) = 0;
-    virtual struct direct *Read(DIR *dirp, int &err) = 0;
-    virtual void       Rewind(DIR *dirp, int &err) = 0;
-    virtual void       Seek(DIR *dirp, long loc, int &err) = 0;
-    virtual long       Tell(DIR *dirp, int &err) = 0;
+    LPMakedir          pMakedir;
+    LPChdir            pChdir;
+    LPRmdir            pRmdir;
+    LPDirClose         pClose;
+    LPDirOpen          pOpen;
+    LPDirRead          pRead;
+    LPDirRewind                pRewind;
+    LPDirSeek          pSeek;
+    LPDirTell          pTell;
+};
+
+struct IPerlDirInfo
+{
+    unsigned long      nCount;     /* number of entries expected */
+    struct IPerlDir    perlDirList;
 };
 
 #define PerlDir_mkdir(name, mode)                              \
-       PL_piDir->Makedir((name), (mode), ErrorNo())
+       (*PL_piDir->pMakedir)(PL_piDir, (name), (mode))
 #define PerlDir_chdir(name)                                    \
-       PL_piDir->Chdir((name), ErrorNo())
+       (*PL_piDir->pChdir)(PL_piDir, (name))
 #define PerlDir_rmdir(name)                                    \
-       PL_piDir->Rmdir((name), ErrorNo())
+       (*PL_piDir->pRmdir)(PL_piDir, (name))
 #define PerlDir_close(dir)                                     \
-       PL_piDir->Close((dir), ErrorNo())
+       (*PL_piDir->pClose)(PL_piDir, (dir))
 #define PerlDir_open(name)                                     \
-       PL_piDir->Open((name), ErrorNo())
+       (*PL_piDir->pOpen)(PL_piDir, (name))
 #define PerlDir_read(dir)                                      \
-       PL_piDir->Read((dir), ErrorNo())
+       (*PL_piDir->pRead)(PL_piDir, (dir))
 #define PerlDir_rewind(dir)                                    \
-       PL_piDir->Rewind((dir), ErrorNo())
+       (*PL_piDir->pRewind)(PL_piDir, (dir))
 #define PerlDir_seek(dir, loc)                                 \
-       PL_piDir->Seek((dir), (loc), ErrorNo())
+       (*PL_piDir->pSeek)(PL_piDir, (dir), (loc))
 #define PerlDir_tell(dir)                                      \
-       PL_piDir->Tell((dir), ErrorNo())
+       (*PL_piDir->pTell)(PL_piDir, (dir))
 
 #else  /* PERL_OBJECT */
 
@@ -443,35 +542,79 @@ public:
 
 #ifdef PERL_OBJECT
 
-class IPerlEnv
+/* IPerlEnv            */
+struct IPerlEnv;
+typedef char*          (*LPEnvGetenv)(struct IPerlEnv*, const char*);
+typedef int            (*LPEnvPutenv)(struct IPerlEnv*, const char*);
+typedef char *         (*LPEnvGetenv_len)(struct IPerlEnv*,
+                                   const char *varname, unsigned long *len);
+typedef int            (*LPEnvUname)(struct IPerlEnv*, struct utsname *name);
+typedef void           (*LPEnvClearenv)(struct IPerlEnv*);
+typedef unsigned long  (*LPEnvOsID)(struct IPerlEnv*);
+#ifdef HAS_ENVGETENV
+typedef char *         (*LPENVGetenv)(struct IPerlEnv*, const char *varname);
+typedef char *         (*LPENVGetenv_len)(struct IPerlEnv*,
+                                   const char *varname, unsigned long *len);
+#endif
+#ifdef WIN32
+typedef char*          (*LPEnvLibPath)(struct IPerlEnv*, char*);
+typedef char*          (*LPEnvSiteLibPath)(struct IPerlEnv*, char*);
+#endif
+
+struct IPerlEnv
 {
-public:
-    virtual char *     Getenv(const char *varname, int &err) = 0;
-    virtual int                Putenv(const char *envstring, int &err) = 0;
-    virtual char *     LibPath(char *patchlevel) =0;
-    virtual char *     SiteLibPath(char *patchlevel) =0;
-    virtual int                Uname(struct utsname *name, int &err) =0;
-    virtual char *     Getenv_len(const char *varname, unsigned long *len, int &err) = 0;
+    LPEnvGetenv                pGetenv;
+    LPEnvPutenv                pPutenv;
+    LPEnvGetenv_len    pGetenv_len;
+    LPEnvUname         pEnvUname;
+    LPEnvClearenv      pClearenv;
 #ifdef HAS_ENVGETENV
-    virtual char *     ENVGetenv(const char *varname, int &err) = 0;
-    virtual char *     ENVGetenv_len(const char *varname, unsigned long *len, int &err) = 0;
+    LPENVGetenv                pENVGetenv;
+    LPENVGetenv_len    pENVGetenv_len;
+#endif
+#ifdef WIN32
+    LPEnvOsID          pEnvOsID;
+    LPEnvLibPath       pLibPath;
+    LPEnvSiteLibPath   pSiteLibPath;
 #endif
 };
 
-#define PerlEnv_putenv(str)            PL_piENV->Putenv((str), ErrorNo())
-#define PerlEnv_getenv(str)            PL_piENV->Getenv((str), ErrorNo())
-#define PerlEnv_getenv_len(str,l)      PL_piENV->Getenv_len((str), (l), ErrorNo())
+struct IPerlEnvInfo
+{
+    unsigned long      nCount;     /* number of entries expected */
+    struct IPerlEnv    perlEnvList;
+};
+
+#define PerlEnv_putenv(str)                                    \
+       (*PL_piENV->pPutenv)(PL_piENV,(str))
+#define PerlEnv_getenv(str)                                    \
+       (*PL_piENV->pGetenv)(PL_piENV,(str))
+#define PerlEnv_getenv_len(str,l)                              \
+       (*PL_piENV->pGetenv_len)(PL_piENV,(str), (l))
+#define PerlEnv_Clear()                                                \
+       (*PL_piENV->pClearenv)(PL_piENV)
+#define PerlEnv_Clear()                                                \
+       (*PL_piENV->pClearenv)(PL_piENV)
 #ifdef HAS_ENVGETENV
-#  define PerlEnv_ENVgetenv(str)       PL_piENV->ENVGetenv((str), ErrorNo())
-#  define PerlEnv_ENVgetenv_len(str,l) PL_piENV->ENVGetenv_len((str), (l), ErrorNo())
+#  define PerlEnv_ENVgetenv(str)                               \
+       (*PL_piENV->pENVGetenv)(PL_piENV,(str))
+#  define PerlEnv_ENVgetenv_len(str,l)                         \
+       (*PL_piENV->pENVGetenv_len)(PL_piENV,(str), (l))
 #else
-#  define PerlEnv_ENVgetenv(str)       PerlEnv_getenv((str))
-#  define PerlEnv_ENVgetenv_len(str,l) PerlEnv_getenv_len((str),(l))
+#  define PerlEnv_ENVgetenv(str)                               \
+       PerlEnv_getenv((str))
+#  define PerlEnv_ENVgetenv_len(str,l)                         \
+       PerlEnv_getenv_len((str),(l))
 #endif
-#define PerlEnv_uname(name)            PL_piENV->Uname((name), ErrorNo())
+#define PerlEnv_uname(name)                                    \
+       (*PL_piENV->pEnvUname)(PL_piENV,(name))
 #ifdef WIN32
-#define PerlEnv_lib_path(str)          PL_piENV->LibPath((str))
-#define PerlEnv_sitelib_path(str)      PL_piENV->SiteLibPath((str))
+#define PerlEnv_os_id()                                                \
+       (*PL_piENV->pEnvOsID)(PL_piENV)
+#define PerlEnv_lib_path(str)                                  \
+       (*PL_piENV->pLibPath)(PL_piENV,(str))
+#define PerlEnv_sitelib_path(str)                              \
+       (*PL_piENV->pSiteLibPath)(PL_piENV,(str))
 #endif
 
 #else  /* PERL_OBJECT */
@@ -488,6 +631,10 @@ public:
 #endif
 #define PerlEnv_uname(name)            uname((name))
 
+#ifdef WIN32
+#define PerlEnv_os_id()                        win32_os_id()
+#endif
+
 #endif /* PERL_OBJECT */
 
 /*
@@ -496,92 +643,125 @@ public:
 
 #ifdef PERL_OBJECT
 
-class IPerlLIO
+/* IPerlLIO            */
+struct IPerlLIO;
+typedef int            (*LPLIOAccess)(struct IPerlLIO*, const char*, int);
+typedef int            (*LPLIOChmod)(struct IPerlLIO*, const char*, int);
+typedef int            (*LPLIOChown)(struct IPerlLIO*, const char*, uid_t,
+                           gid_t);
+typedef int            (*LPLIOChsize)(struct IPerlLIO*, int, long);
+typedef int            (*LPLIOClose)(struct IPerlLIO*, int);
+typedef int            (*LPLIODup)(struct IPerlLIO*, int);
+typedef int            (*LPLIODup2)(struct IPerlLIO*, int, int);
+typedef int            (*LPLIOFlock)(struct IPerlLIO*, int, int);
+typedef int            (*LPLIOFileStat)(struct IPerlLIO*, int, struct stat*);
+typedef int            (*LPLIOIOCtl)(struct IPerlLIO*, int, unsigned int,
+                           char*);
+typedef int            (*LPLIOIsatty)(struct IPerlLIO*, int);
+typedef long           (*LPLIOLseek)(struct IPerlLIO*, int, long, int);
+typedef int            (*LPLIOLstat)(struct IPerlLIO*, const char*,
+                           struct stat*);
+typedef char*          (*LPLIOMktemp)(struct IPerlLIO*, char*);
+typedef int            (*LPLIOOpen)(struct IPerlLIO*, const char*, int);       
+typedef int            (*LPLIOOpen3)(struct IPerlLIO*, const char*, int, int); 
+typedef int            (*LPLIORead)(struct IPerlLIO*, int, void*, unsigned int);
+typedef int            (*LPLIORename)(struct IPerlLIO*, const char*,
+                           const char*);
+typedef int            (*LPLIOSetmode)(struct IPerlLIO*, int, int);
+typedef int            (*LPLIONameStat)(struct IPerlLIO*, const char*,
+                           struct stat*);
+typedef char*          (*LPLIOTmpnam)(struct IPerlLIO*, char*);
+typedef int            (*LPLIOUmask)(struct IPerlLIO*, int);
+typedef int            (*LPLIOUnlink)(struct IPerlLIO*, const char*);
+typedef int            (*LPLIOUtime)(struct IPerlLIO*, char*, struct utimbuf*);
+typedef int            (*LPLIOWrite)(struct IPerlLIO*, int, const void*,
+                           unsigned int);
+
+struct IPerlLIO
+{
+    LPLIOAccess                pAccess;
+    LPLIOChmod         pChmod;
+    LPLIOChown         pChown;
+    LPLIOChsize                pChsize;
+    LPLIOClose         pClose;
+    LPLIODup           pDup;
+    LPLIODup2          pDup2;
+    LPLIOFlock         pFlock;
+    LPLIOFileStat      pFileStat;
+    LPLIOIOCtl         pIOCtl;
+    LPLIOIsatty                pIsatty;
+    LPLIOLseek         pLseek;
+    LPLIOLstat         pLstat;
+    LPLIOMktemp                pMktemp;
+    LPLIOOpen          pOpen;
+    LPLIOOpen3         pOpen3;
+    LPLIORead          pRead;
+    LPLIORename                pRename;
+    LPLIOSetmode       pSetmode;
+    LPLIONameStat      pNameStat;
+    LPLIOTmpnam                pTmpnam;
+    LPLIOUmask         pUmask;
+    LPLIOUnlink                pUnlink;
+    LPLIOUtime         pUtime;
+    LPLIOWrite         pWrite;
+};
+
+struct IPerlLIOInfo
 {
-public:
-    virtual int                Access(const char *path, int mode, int &err) = 0;
-    virtual int                Chmod(const char *filename, int pmode, int &err) = 0;
-    virtual int                Chown(const char *filename, uid_t owner,
-                             gid_t group, int &err) = 0;
-    virtual int                Chsize(int handle, long size, int &err) = 0;
-    virtual int                Close(int handle, int &err) = 0;
-    virtual int                Dup(int handle, int &err) = 0;
-    virtual int                Dup2(int handle1, int handle2, int &err) = 0;
-    virtual int                Flock(int fd, int oper, int &err) = 0;
-    virtual int                FileStat(int handle, struct stat *buffer, int &err) = 0;
-    virtual int                IOCtl(int i, unsigned int u, char *data, int &err) = 0;
-    virtual int                Isatty(int handle, int &err) = 0;
-    virtual long       Lseek(int handle, long offset, int origin, int &err) = 0;
-    virtual int                Lstat(const char *path, struct stat *buffer, int &err) = 0;
-    virtual char *     Mktemp(char *Template, int &err) = 0;
-    virtual int                Open(const char *filename, int oflag, int &err) = 0;    
-    virtual int                Open(const char *filename, int oflag,
-                            int pmode, int &err) = 0;  
-    virtual int                Read(int handle, void *buffer,
-                            unsigned int count, int &err) = 0;
-    virtual int                Rename(const char *oname,
-                              const char *newname, int &err) = 0;
-    virtual int                Setmode(int handle, int mode, int &err) = 0;
-    virtual int                NameStat(const char *path,
-                                struct stat *buffer, int &err) = 0;
-    virtual char *     Tmpnam(char *string, int &err) = 0;
-    virtual int                Umask(int pmode, int &err) = 0;
-    virtual int                Unlink(const char *filename, int &err) = 0;
-    virtual int                Utime(char *filename, struct utimbuf *times, int &err) = 0;
-    virtual int                Write(int handle, const void *buffer,
-                             unsigned int count, int &err) = 0;
+    unsigned long      nCount;     /* number of entries expected */
+    struct IPerlLIO    perlLIOList;
 };
 
 #define PerlLIO_access(file, mode)                                     \
-       PL_piLIO->Access((file), (mode), ErrorNo())
+       (*PL_piLIO->pAccess)(PL_piLIO, (file), (mode))
 #define PerlLIO_chmod(file, mode)                                      \
-       PL_piLIO->Chmod((file), (mode), ErrorNo())
+       (*PL_piLIO->pChmod)(PL_piLIO, (file), (mode))
 #define PerlLIO_chown(file, owner, group)                              \
-       PL_piLIO->Chown((file), (owner), (group), ErrorNo())
+       (*PL_piLIO->pChown)(PL_piLIO, (file), (owner), (group))
 #define PerlLIO_chsize(fd, size)                                       \
-       PL_piLIO->Chsize((fd), (size), ErrorNo())
+       (*PL_piLIO->pChsize)(PL_piLIO, (fd), (size))
 #define PerlLIO_close(fd)                                              \
-       PL_piLIO->Close((fd), ErrorNo())
+       (*PL_piLIO->pClose)(PL_piLIO, (fd))
 #define PerlLIO_dup(fd)                                                        \
-       PL_piLIO->Dup((fd), ErrorNo())
+       (*PL_piLIO->pDup)(PL_piLIO, (fd))
 #define PerlLIO_dup2(fd1, fd2)                                         \
-       PL_piLIO->Dup2((fd1), (fd2), ErrorNo())
+       (*PL_piLIO->pDup2)(PL_piLIO, (fd1), (fd2))
 #define PerlLIO_flock(fd, op)                                          \
-       PL_piLIO->Flock((fd), (op), ErrorNo())
+       (*PL_piLIO->pFlock)(PL_piLIO, (fd), (op))
 #define PerlLIO_fstat(fd, buf)                                         \
-       PL_piLIO->FileStat((fd), (buf), ErrorNo())
+       (*PL_piLIO->pFileStat)(PL_piLIO, (fd), (buf))
 #define PerlLIO_ioctl(fd, u, buf)                                      \
-       PL_piLIO->IOCtl((fd), (u), (buf), ErrorNo())
+       (*PL_piLIO->pIOCtl)(PL_piLIO, (fd), (u), (buf))
 #define PerlLIO_isatty(fd)                                             \
-       PL_piLIO->Isatty((fd), ErrorNo())
+       (*PL_piLIO->pIsatty)(PL_piLIO, (fd))
 #define PerlLIO_lseek(fd, offset, mode)                                        \
-       PL_piLIO->Lseek((fd), (offset), (mode), ErrorNo())
+       (*PL_piLIO->pLseek)(PL_piLIO, (fd), (offset), (mode))
 #define PerlLIO_lstat(name, buf)                                       \
-       PL_piLIO->Lstat((name), (buf), ErrorNo())
+       (*PL_piLIO->pLstat)(PL_piLIO, (name), (buf))
 #define PerlLIO_mktemp(file)                                           \
-       PL_piLIO->Mktemp((file), ErrorNo())
+       (*PL_piLIO->pMktemp)(PL_piLIO, (file))
 #define PerlLIO_open(file, flag)                                       \
-       PL_piLIO->Open((file), (flag), ErrorNo())
+       (*PL_piLIO->pOpen)(PL_piLIO, (file), (flag))
 #define PerlLIO_open3(file, flag, perm)                                        \
-       PL_piLIO->Open((file), (flag), (perm), ErrorNo())
+       (*PL_piLIO->pOpen3)(PL_piLIO, (file), (flag), (perm))
 #define PerlLIO_read(fd, buf, count)                                   \
-       PL_piLIO->Read((fd), (buf), (count), ErrorNo())
+       (*PL_piLIO->pRead)(PL_piLIO, (fd), (buf), (count))
 #define PerlLIO_rename(oname, newname)                                 \
-       PL_piLIO->Rename((oname), (newname), ErrorNo())
+       (*PL_piLIO->pRename)(PL_piLIO, (oname), (newname))
 #define PerlLIO_setmode(fd, mode)                                      \
-       PL_piLIO->Setmode((fd), (mode), ErrorNo())
+       (*PL_piLIO->pSetmode)(PL_piLIO, (fd), (mode))
 #define PerlLIO_stat(name, buf)                                                \
-       PL_piLIO->NameStat((name), (buf), ErrorNo())
+       (*PL_piLIO->pNameStat)(PL_piLIO, (name), (buf))
 #define PerlLIO_tmpnam(str)                                            \
-       PL_piLIO->Tmpnam((str), ErrorNo())
+       (*PL_piLIO->pTmpnam)(PL_piLIO, (str))
 #define PerlLIO_umask(mode)                                            \
-       PL_piLIO->Umask((mode), ErrorNo())
+       (*PL_piLIO->pUmask)(PL_piLIO, (mode))
 #define PerlLIO_unlink(file)                                           \
-       PL_piLIO->Unlink((file), ErrorNo())
+       (*PL_piLIO->pUnlink)(PL_piLIO, (file))
 #define PerlLIO_utime(file, time)                                      \
-       PL_piLIO->Utime((file), (time), ErrorNo())
+       (*PL_piLIO->pUtime)(PL_piLIO, (file), (time))
 #define PerlLIO_write(fd, buf, count)                                  \
-       PL_piLIO->Write((fd), (buf), (count), ErrorNo())
+       (*PL_piLIO->pWrite)(PL_piLIO, (fd), (buf), (count))
 
 #else  /* PERL_OBJECT */
 
@@ -624,17 +804,31 @@ public:
 
 #ifdef PERL_OBJECT
 
-class IPerlMem
+/* IPerlMem            */
+struct IPerlMem;
+typedef void*          (*LPMemMalloc)(struct IPerlMem*, size_t);
+typedef void*          (*LPMemRealloc)(struct IPerlMem*, void*, size_t);
+typedef void           (*LPMemFree)(struct IPerlMem*, void*);
+
+struct IPerlMem
 {
-public:
-    virtual void *     Malloc(size_t) = 0;
-    virtual void *     Realloc(void*, size_t) = 0;
-    virtual void       Free(void*) = 0;
+    LPMemMalloc                pMalloc;
+    LPMemRealloc       pRealloc;
+    LPMemFree          pFree;
 };
 
-#define PerlMem_malloc(size)           PL_piMem->Malloc((size))
-#define PerlMem_realloc(buf, size)     PL_piMem->Realloc((buf), (size))
-#define PerlMem_free(buf)              PL_piMem->Free((buf))
+struct IPerlMemInfo
+{
+    unsigned long      nCount;     /* number of entries expected */
+    struct IPerlMem    perlMemList;
+};
+
+#define PerlMem_malloc(size)                               \
+       (*PL_piMem->pMalloc)(PL_piMem, (size))
+#define PerlMem_realloc(buf, size)                         \
+       (*PL_piMem->pRealloc)(PL_piMem, (buf), (size))
+#define PerlMem_free(buf)                                  \
+       (*PL_piMem->pFree)(PL_piMem, (buf))
 
 #else  /* PERL_OBJECT */
 
@@ -658,86 +852,160 @@ typedef Signal_t (*Sighandler_t) (int);
 #include <setjmp.h>
 #endif
 
-class IPerlProc
+/* IPerlProc           */
+struct IPerlProc;
+typedef void           (*LPProcAbort)(struct IPerlProc*);
+typedef char*          (*LPProcCrypt)(struct IPerlProc*, const char*,
+                           const char*);
+typedef void           (*LPProcExit)(struct IPerlProc*, int);
+typedef void           (*LPProc_Exit)(struct IPerlProc*, int);
+typedef int            (*LPProcExecl)(struct IPerlProc*, const char*,
+                           const char*, const char*, const char*,
+                           const char*);
+typedef int            (*LPProcExecv)(struct IPerlProc*, const char*,
+                           const char*const*);
+typedef int            (*LPProcExecvp)(struct IPerlProc*, const char*,
+                           const char*const*);
+typedef uid_t          (*LPProcGetuid)(struct IPerlProc*);
+typedef uid_t          (*LPProcGeteuid)(struct IPerlProc*);
+typedef gid_t          (*LPProcGetgid)(struct IPerlProc*);
+typedef gid_t          (*LPProcGetegid)(struct IPerlProc*);
+typedef char*          (*LPProcGetlogin)(struct IPerlProc*);
+typedef int            (*LPProcKill)(struct IPerlProc*, int, int);
+typedef int            (*LPProcKillpg)(struct IPerlProc*, int, int);
+typedef int            (*LPProcPauseProc)(struct IPerlProc*);
+typedef PerlIO*                (*LPProcPopen)(struct IPerlProc*, const char*,
+                           const char*);
+typedef int            (*LPProcPclose)(struct IPerlProc*, PerlIO*);
+typedef int            (*LPProcPipe)(struct IPerlProc*, int*);
+typedef int            (*LPProcSetuid)(struct IPerlProc*, uid_t);
+typedef int            (*LPProcSetgid)(struct IPerlProc*, gid_t);
+typedef int            (*LPProcSleep)(struct IPerlProc*, unsigned int);
+typedef int            (*LPProcTimes)(struct IPerlProc*, struct tms*);
+typedef int            (*LPProcWait)(struct IPerlProc*, int*);
+typedef int            (*LPProcWaitpid)(struct IPerlProc*, int, int*, int);
+typedef Sighandler_t   (*LPProcSignal)(struct IPerlProc*, int, Sighandler_t);
+typedef void*          (*LPProcDynaLoader)(struct IPerlProc*, const char*);
+#ifdef WIN32
+typedef void           (*LPProcGetOSError)(struct IPerlProc*,
+                           SV* sv, DWORD dwErr);
+typedef void           (*LPProcFreeBuf)(struct IPerlProc*, char*);
+typedef BOOL           (*LPProcDoCmd)(struct IPerlProc*, char*);
+typedef int            (*LPProcSpawn)(struct IPerlProc*, char*);
+typedef int            (*LPProcSpawnvp)(struct IPerlProc*, int, const char*,
+                           const char*const*);
+typedef int            (*LPProcASpawn)(struct IPerlProc*, void*, void**, void**);
+#endif
+
+struct IPerlProc
 {
-public:
-    virtual void       Abort(void) = 0;
-    virtual char *     Crypt(const char* clear, const char* salt) = 0;
-    virtual void       Exit(int status) = 0;
-    virtual void       _Exit(int status) = 0;
-    virtual int                Execl(const char *cmdname, const char *arg0,
-                             const char *arg1, const char *arg2,
-                             const char *arg3) = 0;
-    virtual int                Execv(const char *cmdname, const char *const *argv) = 0;
-    virtual int                Execvp(const char *cmdname, const char *const *argv) = 0;
-    virtual uid_t      Getuid(void) = 0;
-    virtual uid_t      Geteuid(void) = 0;
-    virtual gid_t      Getgid(void) = 0;
-    virtual gid_t      Getegid(void) = 0;
-    virtual char *     Getlogin(void) = 0;
-    virtual int                Kill(int pid, int sig) = 0;
-    virtual int                Killpg(int pid, int sig) = 0;
-    virtual int                PauseProc(void) = 0;
-    virtual PerlIO *   Popen(const char *command, const char *mode) = 0;
-    virtual int                Pclose(PerlIO *stream) = 0;
-    virtual int                Pipe(int *phandles) = 0;
-    virtual int                Setuid(uid_t uid) = 0;
-    virtual int                Setgid(gid_t gid) = 0;
-    virtual int                Sleep(unsigned int) = 0;
-    virtual int                Times(struct tms *timebuf) = 0;
-    virtual int                Wait(int *status) = 0;
-    virtual int                Waitpid(int pid, int *status, int flags) = 0;
-    virtual Sighandler_t       Signal(int sig, Sighandler_t subcode) = 0;
+    LPProcAbort                pAbort;
+    LPProcCrypt                pCrypt;
+    LPProcExit         pExit;
+    LPProc_Exit                p_Exit;
+    LPProcExecl                pExecl;
+    LPProcExecv                pExecv;
+    LPProcExecvp       pExecvp;
+    LPProcGetuid       pGetuid;
+    LPProcGeteuid      pGeteuid;
+    LPProcGetgid       pGetgid;
+    LPProcGetegid      pGetegid;
+    LPProcGetlogin     pGetlogin;
+    LPProcKill         pKill;
+    LPProcKillpg       pKillpg;
+    LPProcPauseProc    pPauseProc;
+    LPProcPopen                pPopen;
+    LPProcPclose       pPclose;
+    LPProcPipe         pPipe;
+    LPProcSetuid       pSetuid;
+    LPProcSetgid       pSetgid;
+    LPProcSleep                pSleep;
+    LPProcTimes                pTimes;
+    LPProcWait         pWait;
+    LPProcWaitpid      pWaitpid;
+    LPProcSignal       pSignal;
 #ifdef WIN32
-    virtual void       GetSysMsg(char*& msg, DWORD& dwLen, DWORD dwErr) = 0;
-    virtual void       FreeBuf(char* msg) = 0;
-    virtual BOOL       DoCmd(char *cmd) = 0;
-    virtual int                Spawn(char*cmds) = 0;
-    virtual int                Spawnvp(int mode, const char *cmdname,
-                               const char *const *argv) = 0;
-    virtual int                ASpawn(void *vreally, void **vmark, void **vsp) = 0;
+    LPProcDynaLoader   pDynaLoader;
+    LPProcGetOSError   pGetOSError;
+    LPProcDoCmd                pDoCmd;
+    LPProcSpawn                pSpawn;
+    LPProcSpawnvp      pSpawnvp;
+    LPProcASpawn       pASpawn;
 #endif
 };
 
-#define PerlProc_abort()       PL_piProc->Abort()
-#define PerlProc_crypt(c,s)    PL_piProc->Crypt((c), (s))
-#define PerlProc_exit(s)       PL_piProc->Exit((s))
-#define PerlProc__exit(s)      PL_piProc->_Exit((s))
+struct IPerlProcInfo
+{
+    unsigned long      nCount;     /* number of entries expected */
+    struct IPerlProc   perlProcList;
+};
+
+#define PerlProc_abort()                                               \
+       (*PL_piProc->pAbort)(PL_piProc)
+#define PerlProc_crypt(c,s)                                            \
+       (*PL_piProc->pCrypt)(PL_piProc, (c), (s))
+#define PerlProc_exit(s)                                               \
+       (*PL_piProc->pExit)(PL_piProc, (s))
+#define PerlProc__exit(s)                                              \
+       (*PL_piProc->p_Exit)(PL_piProc, (s))
 #define PerlProc_execl(c, w, x, y, z)                                  \
-       PL_piProc->Execl((c), (w), (x), (y), (z))
-
-#define PerlProc_execv(c, a)   PL_piProc->Execv((c), (a))
-#define PerlProc_execvp(c, a)  PL_piProc->Execvp((c), (a))
-#define PerlProc_getuid()      PL_piProc->Getuid()
-#define PerlProc_geteuid()     PL_piProc->Geteuid()
-#define PerlProc_getgid()      PL_piProc->Getgid()
-#define PerlProc_getegid()     PL_piProc->Getegid()
-#define PerlProc_getlogin()    PL_piProc->Getlogin()
-#define PerlProc_kill(i, a)    PL_piProc->Kill((i), (a))
-#define PerlProc_killpg(i, a)  PL_piProc->Killpg((i), (a))
-#define PerlProc_pause()       PL_piProc->PauseProc()
-#define PerlProc_popen(c, m)   PL_piProc->Popen((c), (m))
-#define PerlProc_pclose(f)     PL_piProc->Pclose((f))
-#define PerlProc_pipe(fd)      PL_piProc->Pipe((fd))
-#define PerlProc_setuid(u)     PL_piProc->Setuid((u))
-#define PerlProc_setgid(g)     PL_piProc->Setgid((g))
-#define PerlProc_sleep(t)      PL_piProc->Sleep((t))
-#define PerlProc_times(t)      PL_piProc->Times((t))
-#define PerlProc_wait(t)       PL_piProc->Wait((t))
-#define PerlProc_waitpid(p,s,f)        PL_piProc->Waitpid((p), (s), (f))
-#define PerlProc_setjmp(b, n)  Sigsetjmp((b), (n))
-#define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
-#define PerlProc_signal(n, h)  PL_piProc->Signal((n), (h))
+       (*PL_piProc->pExecl)(PL_piProc, (c), (w), (x), (y), (z))
+#define PerlProc_execv(c, a)                                           \
+       (*PL_piProc->pExecv)(PL_piProc, (c), (a))
+#define PerlProc_execvp(c, a)                                          \
+       (*PL_piProc->pExecvp)(PL_piProc, (c), (a))
+#define PerlProc_getuid()                                              \
+       (*PL_piProc->pGetuid)(PL_piProc)
+#define PerlProc_geteuid()                                             \
+       (*PL_piProc->pGeteuid)(PL_piProc)
+#define PerlProc_getgid()                                              \
+       (*PL_piProc->pGetgid)(PL_piProc)
+#define PerlProc_getegid()                                             \
+       (*PL_piProc->pGetegid)(PL_piProc)
+#define PerlProc_getlogin()                                            \
+       (*PL_piProc->pGetlogin)(PL_piProc)
+#define PerlProc_kill(i, a)                                            \
+       (*PL_piProc->pKill)(PL_piProc, (i), (a))
+#define PerlProc_killpg(i, a)                                          \
+       (*PL_piProc->pKillpg)(PL_piProc, (i), (a))
+#define PerlProc_pause()                                               \
+       (*PL_piProc->pPauseProc)(PL_piProc)
+#define PerlProc_popen(c, m)                                           \
+       (*PL_piProc->pPopen)(PL_piProc, (c), (m))
+#define PerlProc_pclose(f)                                             \
+       (*PL_piProc->pPclose)(PL_piProc, (f))
+#define PerlProc_pipe(fd)                                              \
+       (*PL_piProc->pPipe)(PL_piProc, (fd))
+#define PerlProc_setuid(u)                                             \
+       (*PL_piProc->pSetuid)(PL_piProc, (u))
+#define PerlProc_setgid(g)                                             \
+       (*PL_piProc->pSetgid)(PL_piProc, (g))
+#define PerlProc_sleep(t)                                              \
+       (*PL_piProc->pSleep)(PL_piProc, (t))
+#define PerlProc_times(t)                                              \
+       (*PL_piProc->pTimes)(PL_piProc, (t))
+#define PerlProc_wait(t)                                               \
+       (*PL_piProc->pWait)(PL_piProc, (t))
+#define PerlProc_waitpid(p,s,f)                                                \
+       (*PL_piProc->pWaitpid)(PL_piProc, (p), (s), (f))
+#define PerlProc_signal(n, h)                                          \
+       (*PL_piProc->pSignal)(PL_piProc, (n), (h))
+#define PerlProc_setjmp(b, n) Sigsetjmp((b), (n))
+#define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
 
 #ifdef WIN32
-#define PerlProc_GetSysMsg(s,l,e)                                      \
-       PL_piProc->GetSysMsg((s), (l), (e))
-
-#define PerlProc_FreeBuf(s)    PL_piProc->FreeBuf((s))
-#define PerlProc_Cmd(s)                PL_piProc->DoCmd((s))
-#define do_spawn(s)            PL_piProc->Spawn((s))
-#define do_spawnvp(m, c, a)    PL_piProc->Spawnvp((m), (c), (a))
-#define PerlProc_aspawn(m,c,a) PL_piProc->ASpawn((m), (c), (a))
+#define PerlProc_DynaLoad(f)                                           \
+       (*PL_piProc->pDynaLoader)(PL_piProc, (f))
+#define PerlProc_GetOSError(s,e)                                       \
+       (*PL_piProc->pGetOSError)(PL_piProc, (s), (e))
+#define PerlProc_Cmd(s)                                                        \
+       (*PL_piProc->pDoCmd)(PL_piProc, (s))
+#define do_spawn(s)                                                    \
+       (*PL_piProc->pSpawn)(PL_piProc, (s))
+#define do_spawnvp(m, c, a)                                            \
+       (*PL_piProc->pSpawnvp)(PL_piProc, (m), (c), (a))
+#define PerlProc_aspawn(m,c,a)                                         \
+       (*PL_piProc->pASpawn)(PL_piProc, (m), (c), (a))
 #endif
 
 #else  /* PERL_OBJECT */
@@ -771,7 +1039,12 @@ public:
 #define PerlProc_longjmp(b, n) Siglongjmp((b), (n))
 #define PerlProc_signal(n, h)  signal((n), (h))
 
-
+#ifdef WIN32
+#define PerlProc_DynaLoad(f)                                           \
+       win32_dynaload(aTHX_ const char*filename)
+#define PerlProc_GetOSError(s,e)                                       \
+       win32_str_os_error(aTHX_ (s), (e))
+#endif
 #endif /* PERL_OBJECT */
 
 /*
@@ -780,123 +1053,217 @@ public:
 
 #ifdef PERL_OBJECT
 
-class IPerlSock
+/* PerlSock            */
+struct IPerlSock;
+typedef u_long         (*LPHtonl)(struct IPerlSock*, u_long);
+typedef u_short                (*LPHtons)(struct IPerlSock*, u_short);
+typedef u_long         (*LPNtohl)(struct IPerlSock*, u_long);
+typedef u_short                (*LPNtohs)(struct IPerlSock*, u_short);
+typedef SOCKET         (*LPAccept)(struct IPerlSock*, SOCKET,
+                           struct sockaddr*, int*);
+typedef int            (*LPBind)(struct IPerlSock*, SOCKET,
+                           const struct sockaddr*, int);
+typedef int            (*LPConnect)(struct IPerlSock*, SOCKET,
+                           const struct sockaddr*, int);
+typedef void           (*LPEndhostent)(struct IPerlSock*);
+typedef void           (*LPEndnetent)(struct IPerlSock*);
+typedef void           (*LPEndprotoent)(struct IPerlSock*);
+typedef void           (*LPEndservent)(struct IPerlSock*);
+typedef int            (*LPGethostname)(struct IPerlSock*, char*, int);
+typedef int            (*LPGetpeername)(struct IPerlSock*, SOCKET,
+                           struct sockaddr*, int*);
+typedef struct hostent*        (*LPGethostbyaddr)(struct IPerlSock*, const char*,
+                           int, int);
+typedef struct hostent*        (*LPGethostbyname)(struct IPerlSock*, const char*);
+typedef struct hostent*        (*LPGethostent)(struct IPerlSock*);
+typedef struct netent* (*LPGetnetbyaddr)(struct IPerlSock*, long, int);
+typedef struct netent* (*LPGetnetbyname)(struct IPerlSock*, const char*);
+typedef struct netent* (*LPGetnetent)(struct IPerlSock*);
+typedef struct protoent*(*LPGetprotobyname)(struct IPerlSock*, const char*);
+typedef struct protoent*(*LPGetprotobynumber)(struct IPerlSock*, int);
+typedef struct protoent*(*LPGetprotoent)(struct IPerlSock*);
+typedef struct servent*        (*LPGetservbyname)(struct IPerlSock*, const char*,
+                           const char*);
+typedef struct servent*        (*LPGetservbyport)(struct IPerlSock*, int,
+                           const char*);
+typedef struct servent*        (*LPGetservent)(struct IPerlSock*);
+typedef int            (*LPGetsockname)(struct IPerlSock*, SOCKET,
+                           struct sockaddr*, int*);
+typedef int            (*LPGetsockopt)(struct IPerlSock*, SOCKET, int, int,
+                           char*, int*);
+typedef unsigned long  (*LPInetAddr)(struct IPerlSock*, const char*);
+typedef char*          (*LPInetNtoa)(struct IPerlSock*, struct in_addr);
+typedef int            (*LPListen)(struct IPerlSock*, SOCKET, int);
+typedef int            (*LPRecv)(struct IPerlSock*, SOCKET, char*, int, int);
+typedef int            (*LPRecvfrom)(struct IPerlSock*, SOCKET, char*, int,
+                           int, struct sockaddr*, int*);
+typedef int            (*LPSelect)(struct IPerlSock*, int, char*, char*,
+                           char*, const struct timeval*);
+typedef int            (*LPSend)(struct IPerlSock*, SOCKET, const char*, int,
+                           int); 
+typedef int            (*LPSendto)(struct IPerlSock*, SOCKET, const char*,
+                           int, int, const struct sockaddr*, int);
+typedef void           (*LPSethostent)(struct IPerlSock*, int);
+typedef void           (*LPSetnetent)(struct IPerlSock*, int);
+typedef void           (*LPSetprotoent)(struct IPerlSock*, int);
+typedef void           (*LPSetservent)(struct IPerlSock*, int);
+typedef int            (*LPSetsockopt)(struct IPerlSock*, SOCKET, int, int,
+                           const char*, int);
+typedef int            (*LPShutdown)(struct IPerlSock*, SOCKET, int);
+typedef SOCKET         (*LPSocket)(struct IPerlSock*, int, int, int);
+typedef int            (*LPSocketpair)(struct IPerlSock*, int, int, int,
+                           int*);
+#ifdef WIN32
+typedef int            (*LPClosesocket)(struct IPerlSock*, SOCKET s);
+#endif
+
+struct IPerlSock
 {
-public:
-    virtual u_long     Htonl(u_long hostlong) = 0;
-    virtual u_short    Htons(u_short hostshort) = 0;
-    virtual u_long     Ntohl(u_long netlong) = 0;
-    virtual u_short    Ntohs(u_short netshort) = 0;
-    virtual SOCKET     Accept(SOCKET s, struct sockaddr* addr,
-                              int* addrlen, int &err) = 0;
-    virtual int                Bind(SOCKET s, const struct sockaddr* name,
-                            int namelen, int &err) = 0;
-    virtual int                Connect(SOCKET s, const struct sockaddr* name,
-                               int namelen, int &err) = 0;
-    virtual void       Endhostent(int &err) = 0;
-    virtual void       Endnetent(int &err) = 0;
-    virtual void       Endprotoent(int &err) = 0;
-    virtual void       Endservent(int &err) = 0;
-    virtual int                Gethostname(char* name, int namelen, int &err) = 0;
-    virtual int                Getpeername(SOCKET s, struct sockaddr* name,
-                                   int* namelen, int &err) = 0;
-    virtual struct hostent *   Gethostbyaddr(const char* addr, int len,
-                                             int type, int &err) = 0;
-    virtual struct hostent *   Gethostbyname(const char* name, int &err) = 0;
-    virtual struct hostent *   Gethostent(int &err) = 0;
-    virtual struct netent *    Getnetbyaddr(long net, int type, int &err) = 0;
-    virtual struct netent *    Getnetbyname(const char *, int &err) = 0;
-    virtual struct netent *    Getnetent(int &err) = 0;
-    virtual struct protoent *  Getprotobyname(const char* name, int &err) = 0;
-    virtual struct protoent *  Getprotobynumber(int number, int &err) = 0;
-    virtual struct protoent *  Getprotoent(int &err) = 0;
-    virtual struct servent *   Getservbyname(const char* name,
-                                             const char* proto, int &err) = 0;
-    virtual struct servent *   Getservbyport(int port, const char* proto,
-                                             int &err) = 0;
-    virtual struct servent *   Getservent(int &err) = 0;
-    virtual int                Getsockname(SOCKET s, struct sockaddr* name,
-                                   int* namelen, int &err) = 0;
-    virtual int                Getsockopt(SOCKET s, int level, int optname,
-                                  char* optval, int* optlen, int &err) = 0;
-    virtual unsigned long      InetAddr(const char* cp, int &err) = 0;
-    virtual char *     InetNtoa(struct in_addr in, int &err) = 0;
-    virtual int                Listen(SOCKET s, int backlog, int &err) = 0;
-    virtual int                Recv(SOCKET s, char* buf, int len,
-                            int flags, int &err) = 0;
-    virtual int                Recvfrom(SOCKET s, char* buf, int len, int flags,
-                                struct sockaddr* from, int* fromlen, int &err) = 0;
-    virtual int                Select(int nfds, char* readfds, char* writefds,
-                              char* exceptfds, const struct timeval* timeout,
-                              int &err) = 0;
-    virtual int                Send(SOCKET s, const char* buf, int len,
-                            int flags, int &err) = 0; 
-    virtual int                Sendto(SOCKET s, const char* buf, int len, int flags,
-                              const struct sockaddr* to, int tolen, int &err) = 0;
-    virtual void       Sethostent(int stayopen, int &err) = 0;
-    virtual void       Setnetent(int stayopen, int &err) = 0;
-    virtual void       Setprotoent(int stayopen, int &err) = 0;
-    virtual void       Setservent(int stayopen, int &err) = 0;
-    virtual int                Setsockopt(SOCKET s, int level, int optname,
-                                  const char* optval, int optlen, int &err) = 0;
-    virtual int                Shutdown(SOCKET s, int how, int &err) = 0;
-    virtual SOCKET     Socket(int af, int type, int protocol, int &err) = 0;
-    virtual int                Socketpair(int domain, int type, int protocol,
-                                  int* fds, int &err) = 0;
+    LPHtonl            pHtonl;
+    LPHtons            pHtons;
+    LPNtohl            pNtohl;
+    LPNtohs            pNtohs;
+    LPAccept           pAccept;
+    LPBind             pBind;
+    LPConnect          pConnect;
+    LPEndhostent       pEndhostent;
+    LPEndnetent                pEndnetent;
+    LPEndprotoent      pEndprotoent;
+    LPEndservent       pEndservent;
+    LPGethostname      pGethostname;
+    LPGetpeername      pGetpeername;
+    LPGethostbyaddr    pGethostbyaddr;
+    LPGethostbyname    pGethostbyname;
+    LPGethostent       pGethostent;
+    LPGetnetbyaddr     pGetnetbyaddr;
+    LPGetnetbyname     pGetnetbyname;
+    LPGetnetent                pGetnetent;
+    LPGetprotobyname   pGetprotobyname;
+    LPGetprotobynumber pGetprotobynumber;
+    LPGetprotoent      pGetprotoent;
+    LPGetservbyname    pGetservbyname;
+    LPGetservbyport    pGetservbyport;
+    LPGetservent       pGetservent;
+    LPGetsockname      pGetsockname;
+    LPGetsockopt       pGetsockopt;
+    LPInetAddr         pInetAddr;
+    LPInetNtoa         pInetNtoa;
+    LPListen           pListen;
+    LPRecv             pRecv;
+    LPRecvfrom         pRecvfrom;
+    LPSelect           pSelect;
+    LPSend             pSend;
+    LPSendto           pSendto;
+    LPSethostent       pSethostent;
+    LPSetnetent                pSetnetent;
+    LPSetprotoent      pSetprotoent;
+    LPSetservent       pSetservent;
+    LPSetsockopt       pSetsockopt;
+    LPShutdown         pShutdown;
+    LPSocket           pSocket;
+    LPSocketpair       pSocketpair;
 #ifdef WIN32
-    virtual int                Closesocket(SOCKET s, int& err) = 0;
-    virtual int                Ioctlsocket(SOCKET s, long cmd, u_long *argp,
-                                   int& err) = 0;
+    LPClosesocket      pClosesocket;
 #endif
 };
 
-#define PerlSock_htonl(x)              PL_piSock->Htonl(x)
-#define PerlSock_htons(x)              PL_piSock->Htons(x)
-#define PerlSock_ntohl(x)              PL_piSock->Ntohl(x)
-#define PerlSock_ntohs(x)              PL_piSock->Ntohs(x)
-#define PerlSock_accept(s, a, l)       PL_piSock->Accept(s, a, l, ErrorNo())
-#define PerlSock_bind(s, n, l)         PL_piSock->Bind(s, n, l, ErrorNo())
-#define PerlSock_connect(s, n, l)      PL_piSock->Connect(s, n, l, ErrorNo())
-#define PerlSock_endhostent()          PL_piSock->Endhostent(ErrorNo())
-#define PerlSock_endnetent()           PL_piSock->Endnetent(ErrorNo())
-#define PerlSock_endprotoent()         PL_piSock->Endprotoent(ErrorNo())
-#define PerlSock_endservent()          PL_piSock->Endservent(ErrorNo())
-#define PerlSock_gethostbyaddr(a, l, t)        PL_piSock->Gethostbyaddr(a, l, t, ErrorNo())
-#define PerlSock_gethostbyname(n)      PL_piSock->Gethostbyname(n, ErrorNo())
-#define PerlSock_gethostent()          PL_piSock->Gethostent(ErrorNo())
-#define PerlSock_gethostname(n, l)     PL_piSock->Gethostname(n, l, ErrorNo())
-#define PerlSock_getnetbyaddr(n, t)    PL_piSock->Getnetbyaddr(n, t, ErrorNo())
-#define PerlSock_getnetbyname(c)       PL_piSock->Getnetbyname(c, ErrorNo())
-#define PerlSock_getnetent()           PL_piSock->Getnetent(ErrorNo())
-#define PerlSock_getpeername(s, n, l)  PL_piSock->Getpeername(s, n, l, ErrorNo())
-#define PerlSock_getprotobyname(n)     PL_piSock->Getprotobyname(n, ErrorNo())
-#define PerlSock_getprotobynumber(n)   PL_piSock->Getprotobynumber(n, ErrorNo())
-#define PerlSock_getprotoent()         PL_piSock->Getprotoent(ErrorNo())
-#define PerlSock_getservbyname(n, p)   PL_piSock->Getservbyname(n, p, ErrorNo())
-#define PerlSock_getservbyport(port, p)        PL_piSock->Getservbyport(port, p, ErrorNo())
-#define PerlSock_getservent()          PL_piSock->Getservent(ErrorNo())
-#define PerlSock_getsockname(s, n, l)  PL_piSock->Getsockname(s, n, l, ErrorNo())
-#define PerlSock_getsockopt(s,l,n,v,i) PL_piSock->Getsockopt(s, l, n, v, i, ErrorNo())
-#define PerlSock_inet_addr(c)          PL_piSock->InetAddr(c, ErrorNo())
-#define PerlSock_inet_ntoa(i)          PL_piSock->InetNtoa(i, ErrorNo())
-#define PerlSock_listen(s, b)          PL_piSock->Listen(s, b, ErrorNo())
-#define PerlSock_recv(s, b, l, f)      PL_piSock->Recv(s, b, l, f, ErrorNo())
+struct IPerlSockInfo
+{
+    unsigned long      nCount;     /* number of entries expected */
+    struct IPerlSock   perlSockList;
+};
+
+#define PerlSock_htonl(x)                                              \
+       (*PL_piSock->pHtonl)(PL_piSock, x)
+#define PerlSock_htons(x)                                              \
+       (*PL_piSock->pHtons)(PL_piSock, x)
+#define PerlSock_ntohl(x)                                              \
+       (*PL_piSock->pNtohl)(PL_piSock, x)
+#define PerlSock_ntohs(x)                                              \
+       (*PL_piSock->pNtohs)(PL_piSock, x)
+#define PerlSock_accept(s, a, l)                                       \
+       (*PL_piSock->pAccept)(PL_piSock, s, a, l)
+#define PerlSock_bind(s, n, l)                                         \
+       (*PL_piSock->pBind)(PL_piSock, s, n, l)
+#define PerlSock_connect(s, n, l)                                      \
+       (*PL_piSock->pConnect)(PL_piSock, s, n, l)
+#define PerlSock_endhostent()                                          \
+       (*PL_piSock->pEndhostent)(PL_piSock)
+#define PerlSock_endnetent()                                           \
+       (*PL_piSock->pEndnetent)(PL_piSock)
+#define PerlSock_endprotoent()                                         \
+       (*PL_piSock->pEndprotoent)(PL_piSock)
+#define PerlSock_endservent()                                          \
+       (*PL_piSock->pEndservent)(PL_piSock)
+#define PerlSock_gethostbyaddr(a, l, t)                                        \
+       (*PL_piSock->pGethostbyaddr)(PL_piSock, a, l, t)
+#define PerlSock_gethostbyname(n)                                      \
+       (*PL_piSock->pGethostbyname)(PL_piSock, n)
+#define PerlSock_gethostent()                                          \
+       (*PL_piSock->pGethostent)(PL_piSock)
+#define PerlSock_gethostname(n, l)                                     \
+       (*PL_piSock->pGethostname)(PL_piSock, n, l)
+#define PerlSock_getnetbyaddr(n, t)                                    \
+       (*PL_piSock->pGetnetbyaddr)(PL_piSock, n, t)
+#define PerlSock_getnetbyname(c)                                       \
+       (*PL_piSock->pGetnetbyname)(PL_piSock, c)
+#define PerlSock_getnetent()                                           \
+       (*PL_piSock->pGetnetent)(PL_piSock)
+#define PerlSock_getpeername(s, n, l)                                  \
+       (*PL_piSock->pGetpeername)(PL_piSock, s, n, l)
+#define PerlSock_getprotobyname(n)                                     \
+       (*PL_piSock->pGetprotobyname)(PL_piSock, n)
+#define PerlSock_getprotobynumber(n)                                   \
+       (*PL_piSock->pGetprotobynumber)(PL_piSock, n)
+#define PerlSock_getprotoent()                                         \
+       (*PL_piSock->pGetprotoent)(PL_piSock)
+#define PerlSock_getservbyname(n, p)                                   \
+       (*PL_piSock->pGetservbyname)(PL_piSock, n, p)
+#define PerlSock_getservbyport(port, p)                                        \
+       (*PL_piSock->pGetservbyport)(PL_piSock, port, p)
+#define PerlSock_getservent()                                          \
+       (*PL_piSock->pGetservent)(PL_piSock)
+#define PerlSock_getsockname(s, n, l)                                  \
+       (*PL_piSock->pGetsockname)(PL_piSock, s, n, l)
+#define PerlSock_getsockopt(s,l,n,v,i)                                 \
+       (*PL_piSock->pGetsockopt)(PL_piSock, s, l, n, v, i)
+#define PerlSock_inet_addr(c)                                          \
+       (*PL_piSock->pInetAddr)(PL_piSock, c)
+#define PerlSock_inet_ntoa(i)                                          \
+       (*PL_piSock->pInetNtoa)(PL_piSock, i)
+#define PerlSock_listen(s, b)                                          \
+       (*PL_piSock->pListen)(PL_piSock, s, b)
+#define PerlSock_recv(s, b, l, f)                                      \
+       (*PL_piSock->pRecv)(PL_piSock, s, b, l, f)
 #define PerlSock_recvfrom(s,b,l,f,from,fromlen)                                \
-       PL_piSock->Recvfrom(s, b, l, f, from, fromlen, ErrorNo())
+       (*PL_piSock->pRecvfrom)(PL_piSock, s, b, l, f, from, fromlen)
 #define PerlSock_select(n, r, w, e, t)                                 \
-       PL_piSock->Select(n, (char*)r, (char*)w, (char*)e, t, ErrorNo())
-#define PerlSock_send(s, b, l, f)      PL_piSock->Send(s, b, l, f, ErrorNo())
+       (*PL_piSock->pSelect)(PL_piSock, n, (char*)r, (char*)w, (char*)e, t)
+#define PerlSock_send(s, b, l, f)                                      \
+       (*PL_piSock->pSend)(PL_piSock, s, b, l, f)
 #define PerlSock_sendto(s, b, l, f, t, tlen)                           \
-       PL_piSock->Sendto(s, b, l, f, t, tlen, ErrorNo())
-#define PerlSock_sethostent(f)         PL_piSock->Sethostent(f, ErrorNo())
-#define PerlSock_setnetent(f)          PL_piSock->Setnetent(f, ErrorNo())
-#define PerlSock_setprotoent(f)                PL_piSock->Setprotoent(f, ErrorNo())
-#define PerlSock_setservent(f)         PL_piSock->Setservent(f, ErrorNo())
+       (*PL_piSock->pSendto)(PL_piSock, s, b, l, f, t, tlen)
+#define PerlSock_sethostent(f)                                         \
+       (*PL_piSock->pSethostent)(PL_piSock, f)
+#define PerlSock_setnetent(f)                                          \
+       (*PL_piSock->pSetnetent)(PL_piSock, f)
+#define PerlSock_setprotoent(f)                                                \
+       (*PL_piSock->pSetprotoent)(PL_piSock, f)
+#define PerlSock_setservent(f)                                         \
+       (*PL_piSock->pSetservent)(PL_piSock, f)
 #define PerlSock_setsockopt(s, l, n, v, len)                           \
-       PL_piSock->Setsockopt(s, l, n, v, len, ErrorNo())
-#define PerlSock_shutdown(s, h)                PL_piSock->Shutdown(s, h, ErrorNo())
-#define PerlSock_socket(a, t, p)       PL_piSock->Socket(a, t, p, ErrorNo())
-#define PerlSock_socketpair(a, t, p, f)        PL_piSock->Socketpair(a, t, p, f, ErrorNo())
+       (*PL_piSock->pSetsockopt)(PL_piSock, s, l, n, v, len)
+#define PerlSock_shutdown(s, h)                                                \
+       (*PL_piSock->pShutdown)(PL_piSock, s, h)
+#define PerlSock_socket(a, t, p)                                       \
+       (*PL_piSock->pSocket)(PL_piSock, a, t, p)
+#define PerlSock_socketpair(a, t, p, f)                                        \
+       (*PL_piSock->pSocketpair)(PL_piSock, a, t, p, f)
+
+#ifdef WIN32
+#define        PerlSock_closesocket(s)                                         \
+       (*PL_piSock->pClosesocket)(PL_piSock, s)
+#endif
 
 #else  /* PERL_OBJECT */
 
@@ -952,6 +1319,9 @@ public:
 #define PerlSock_socket(a, t, p)       socket(a, t, p)
 #define PerlSock_socketpair(a, t, p, f)        socketpair(a, t, p, f)
 
+#ifdef WIN32
+#define PerlSock_closesocket(s)                closesocket(s)
+#endif
 
 #endif /* PERL_OBJECT */
 
index 7b240cc..e0ea068 100644 (file)
@@ -51,7 +51,7 @@ sub xsinit {
     my($file, $std, $mods) = @_;
     my($fh,@mods,%seen);
     $file ||= "perlxsi.c";
-    my $xsinit_proto = is_perl_object() ? "CPERLarg" : "void";
+    my $xsinit_proto = "pTHXo";
 
     if (@_) {
        @mods = @$mods if $mods;
@@ -120,8 +120,7 @@ EOF
 sub xsi_protos {
     my(@exts) = @_;
     my(@retval,%seen);
-    my $boot_proto = is_perl_object() ? 
-       "CV* cv _CPERLarg" : "CV* cv";
+    my $boot_proto = "pTHXo_ CV* cv";
     foreach $_ (@exts){
         my($pname) = canon('/', $_);
         my($mname, $cname);
index 83ad03a..ac9ea74 100755 (executable)
@@ -1320,7 +1320,7 @@ EOF
 if ($WantCAPI) { 
 print Q<<"EOF";
 ##ifdef PERL_CAPI
-##define XSCAPI(name) void name(CV* cv, void* pPerl)
+##define XSCAPI(name) void name(void *pPerl, CV* cv)
 #
 ##ifdef __cplusplus
 #extern "C"
diff --git a/mg.c b/mg.c
index 30253bc..8175982 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -525,15 +525,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
            sv_setnv(sv, (double)dwErr);
            if (dwErr)
            {
-#ifdef PERL_OBJECT
-               char *sMsg;
-               DWORD dwLen;
-               PerlProc_GetSysMsg(sMsg, dwLen, dwErr);
-               sv_setpvn(sv, sMsg, dwLen);
-               PerlProc_FreeBuf(sMsg);
-#else
-               win32_str_os_error(aTHX_ sv, dwErr);
-#endif
+               PerlProc_GetOSError(sv, dwErr);
            }
            else
                sv_setpv(sv, "");
index c15c19d..1e37e0b 100644 (file)
--- a/objXSUB.h
+++ b/objXSUB.h
 
 /* Functions */
 
+#if defined(PERL_OBJECT)
+#endif
+#undef  Perl_amagic_call
+#define Perl_amagic_call       pPerl->Perl_amagic_call
 #undef  amagic_call
-#define amagic_call            pPerl->amagic_call
+#define amagic_call            Perl_amagic_call
+#undef  Perl_Gv_AMupdate
+#define Perl_Gv_AMupdate       pPerl->Perl_Gv_AMupdate
 #undef  Gv_AMupdate
-#define Gv_AMupdate            pPerl->Gv_AMupdate
+#define Gv_AMupdate            Perl_Gv_AMupdate
+#undef  Perl_append_elem
+#define Perl_append_elem       pPerl->Perl_append_elem
 #undef  append_elem
-#define append_elem            pPerl->append_elem
+#define append_elem            Perl_append_elem
+#undef  Perl_append_list
+#define Perl_append_list       pPerl->Perl_append_list
 #undef  append_list
-#define append_list            pPerl->append_list
+#define append_list            Perl_append_list
+#undef  Perl_apply
+#define Perl_apply             pPerl->Perl_apply
 #undef  apply
-#define apply                  pPerl->apply
+#define apply                  Perl_apply
+#undef  Perl_assertref
+#define Perl_assertref         pPerl->Perl_assertref
 #undef  assertref
-#define assertref              pPerl->assertref
+#define assertref              Perl_assertref
+#undef  Perl_avhv_exists_ent
+#define Perl_avhv_exists_ent   pPerl->Perl_avhv_exists_ent
 #undef  avhv_exists_ent
-#define avhv_exists_ent                pPerl->avhv_exists_ent
+#define avhv_exists_ent                Perl_avhv_exists_ent
+#undef  Perl_avhv_fetch_ent
+#define Perl_avhv_fetch_ent    pPerl->Perl_avhv_fetch_ent
 #undef  avhv_fetch_ent
-#define avhv_fetch_ent         pPerl->avhv_fetch_ent
+#define avhv_fetch_ent         Perl_avhv_fetch_ent
+#undef  Perl_avhv_iternext
+#define Perl_avhv_iternext     pPerl->Perl_avhv_iternext
 #undef  avhv_iternext
-#define avhv_iternext          pPerl->avhv_iternext
+#define avhv_iternext          Perl_avhv_iternext
+#undef  Perl_avhv_iterval
+#define Perl_avhv_iterval      pPerl->Perl_avhv_iterval
 #undef  avhv_iterval
-#define avhv_iterval           pPerl->avhv_iterval
+#define avhv_iterval           Perl_avhv_iterval
+#undef  Perl_avhv_keys
+#define Perl_avhv_keys         pPerl->Perl_avhv_keys
 #undef  avhv_keys
-#define avhv_keys              pPerl->avhv_keys
+#define avhv_keys              Perl_avhv_keys
+#undef  Perl_av_clear
+#define Perl_av_clear          pPerl->Perl_av_clear
 #undef  av_clear
-#define av_clear               pPerl->av_clear
+#define av_clear               Perl_av_clear
+#undef  Perl_av_extend
+#define Perl_av_extend         pPerl->Perl_av_extend
 #undef  av_extend
-#define av_extend              pPerl->av_extend
+#define av_extend              Perl_av_extend
+#undef  Perl_av_fake
+#define Perl_av_fake           pPerl->Perl_av_fake
 #undef  av_fake
-#define av_fake                        pPerl->av_fake
+#define av_fake                        Perl_av_fake
+#undef  Perl_av_fetch
+#define Perl_av_fetch          pPerl->Perl_av_fetch
 #undef  av_fetch
-#define av_fetch               pPerl->av_fetch
+#define av_fetch               Perl_av_fetch
+#undef  Perl_av_fill
+#define Perl_av_fill           pPerl->Perl_av_fill
 #undef  av_fill
-#define av_fill                        pPerl->av_fill
+#define av_fill                        Perl_av_fill
+#undef  Perl_av_len
+#define Perl_av_len            pPerl->Perl_av_len
 #undef  av_len
-#define av_len                 pPerl->av_len
+#define av_len                 Perl_av_len
+#undef  Perl_av_make
+#define Perl_av_make           pPerl->Perl_av_make
 #undef  av_make
-#define av_make                        pPerl->av_make
+#define av_make                        Perl_av_make
+#undef  Perl_av_pop
+#define Perl_av_pop            pPerl->Perl_av_pop
 #undef  av_pop
-#define av_pop                 pPerl->av_pop
+#define av_pop                 Perl_av_pop
+#undef  Perl_av_push
+#define Perl_av_push           pPerl->Perl_av_push
 #undef  av_push
-#define av_push                        pPerl->av_push
+#define av_push                        Perl_av_push
+#undef  Perl_av_reify
+#define Perl_av_reify          pPerl->Perl_av_reify
 #undef  av_reify
-#define av_reify               pPerl->av_reify
+#define av_reify               Perl_av_reify
+#undef  Perl_av_shift
+#define Perl_av_shift          pPerl->Perl_av_shift
 #undef  av_shift
-#define av_shift               pPerl->av_shift
+#define av_shift               Perl_av_shift
+#undef  Perl_av_store
+#define Perl_av_store          pPerl->Perl_av_store
 #undef  av_store
-#define av_store               pPerl->av_store
+#define av_store               Perl_av_store
+#undef  Perl_av_undef
+#define Perl_av_undef          pPerl->Perl_av_undef
 #undef  av_undef
-#define av_undef               pPerl->av_undef
+#define av_undef               Perl_av_undef
+#undef  Perl_av_unshift
+#define Perl_av_unshift                pPerl->Perl_av_unshift
 #undef  av_unshift
-#define av_unshift             pPerl->av_unshift
+#define av_unshift             Perl_av_unshift
+#undef  Perl_bind_match
+#define Perl_bind_match                pPerl->Perl_bind_match
 #undef  bind_match
-#define bind_match             pPerl->bind_match
+#define bind_match             Perl_bind_match
+#undef  Perl_block_end
+#define Perl_block_end         pPerl->Perl_block_end
 #undef  block_end
-#define block_end              pPerl->block_end
+#define block_end              Perl_block_end
+#undef  Perl_block_gimme
+#define Perl_block_gimme       pPerl->Perl_block_gimme
 #undef  block_gimme
-#define block_gimme            pPerl->block_gimme
+#define block_gimme            Perl_block_gimme
+#undef  Perl_block_start
+#define Perl_block_start       pPerl->Perl_block_start
 #undef  block_start
-#define block_start            pPerl->block_start
+#define block_start            Perl_block_start
+#undef  Perl_boot_core_UNIVERSAL
+#define Perl_boot_core_UNIVERSAL       pPerl->Perl_boot_core_UNIVERSAL
 #undef  boot_core_UNIVERSAL
-#define boot_core_UNIVERSAL    pPerl->boot_core_UNIVERSAL
+#define boot_core_UNIVERSAL    Perl_boot_core_UNIVERSAL
+#undef  Perl_call_list
+#define Perl_call_list         pPerl->Perl_call_list
 #undef  call_list
-#define call_list              pPerl->call_list
+#define call_list              Perl_call_list
+#undef  Perl_cando
+#define Perl_cando             pPerl->Perl_cando
 #undef  cando
-#define cando                  pPerl->cando
+#define cando                  Perl_cando
+#undef  Perl_cast_ulong
+#define Perl_cast_ulong                pPerl->Perl_cast_ulong
 #undef  cast_ulong
-#define cast_ulong             pPerl->cast_ulong
+#define cast_ulong             Perl_cast_ulong
+#undef  Perl_cast_i32
+#define Perl_cast_i32          pPerl->Perl_cast_i32
 #undef  cast_i32
-#define cast_i32               pPerl->cast_i32
+#define cast_i32               Perl_cast_i32
+#undef  Perl_cast_iv
+#define Perl_cast_iv           pPerl->Perl_cast_iv
 #undef  cast_iv
-#define cast_iv                        pPerl->cast_iv
+#define cast_iv                        Perl_cast_iv
+#undef  Perl_cast_uv
+#define Perl_cast_uv           pPerl->Perl_cast_uv
 #undef  cast_uv
-#define cast_uv                        pPerl->cast_uv
+#define cast_uv                        Perl_cast_uv
 #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
+#undef  Perl_my_chsize
+#define Perl_my_chsize         pPerl->Perl_my_chsize
 #undef  my_chsize
-#define my_chsize              pPerl->my_chsize
+#define my_chsize              Perl_my_chsize
 #endif
 #if defined(USE_THREADS)
+#undef  Perl_condpair_magic
+#define Perl_condpair_magic    pPerl->Perl_condpair_magic
 #undef  condpair_magic
-#define condpair_magic         pPerl->condpair_magic
+#define condpair_magic         Perl_condpair_magic
 #endif
+#undef  Perl_convert
+#define Perl_convert           pPerl->Perl_convert
 #undef  convert
-#define convert                        pPerl->convert
+#define convert                        Perl_convert
+#undef  Perl_croak
+#define Perl_croak             pPerl->Perl_croak
 #undef  croak
-#define croak                  pPerl->croak
+#define croak                  Perl_croak
 #if defined(PERL_IMPLICIT_CONTEXT)
+#undef  Perl_croak_nocontext
+#define Perl_croak_nocontext   pPerl->Perl_croak_nocontext
 #undef  croak_nocontext
-#define croak_nocontext                pPerl->croak_nocontext
+#define croak_nocontext                Perl_croak_nocontext
+#undef  Perl_die_nocontext
+#define Perl_die_nocontext     pPerl->Perl_die_nocontext
 #undef  die_nocontext
-#define die_nocontext          pPerl->die_nocontext
+#define die_nocontext          Perl_die_nocontext
+#undef  Perl_form_nocontext
+#define Perl_form_nocontext    pPerl->Perl_form_nocontext
 #undef  form_nocontext
-#define form_nocontext         pPerl->form_nocontext
+#define form_nocontext         Perl_form_nocontext
+#undef  Perl_warn_nocontext
+#define Perl_warn_nocontext    pPerl->Perl_warn_nocontext
 #undef  warn_nocontext
-#define warn_nocontext         pPerl->warn_nocontext
+#define warn_nocontext         Perl_warn_nocontext
+#undef  Perl_newSVpvf_nocontext
+#define Perl_newSVpvf_nocontext        pPerl->Perl_newSVpvf_nocontext
 #undef  newSVpvf_nocontext
-#define newSVpvf_nocontext     pPerl->newSVpvf_nocontext
+#define newSVpvf_nocontext     Perl_newSVpvf_nocontext
+#undef  Perl_sv_catpvf_nocontext
+#define Perl_sv_catpvf_nocontext       pPerl->Perl_sv_catpvf_nocontext
 #undef  sv_catpvf_nocontext
-#define sv_catpvf_nocontext    pPerl->sv_catpvf_nocontext
+#define sv_catpvf_nocontext    Perl_sv_catpvf_nocontext
+#undef  Perl_sv_setpvf_nocontext
+#define Perl_sv_setpvf_nocontext       pPerl->Perl_sv_setpvf_nocontext
 #undef  sv_setpvf_nocontext
-#define sv_setpvf_nocontext    pPerl->sv_setpvf_nocontext
+#define sv_setpvf_nocontext    Perl_sv_setpvf_nocontext
+#undef  Perl_sv_catpvf_mg_nocontext
+#define Perl_sv_catpvf_mg_nocontext    pPerl->Perl_sv_catpvf_mg_nocontext
 #undef  sv_catpvf_mg_nocontext
-#define sv_catpvf_mg_nocontext pPerl->sv_catpvf_mg_nocontext
+#define sv_catpvf_mg_nocontext Perl_sv_catpvf_mg_nocontext
+#undef  Perl_sv_setpvf_mg_nocontext
+#define Perl_sv_setpvf_mg_nocontext    pPerl->Perl_sv_setpvf_mg_nocontext
 #undef  sv_setpvf_mg_nocontext
-#define sv_setpvf_mg_nocontext pPerl->sv_setpvf_mg_nocontext
+#define sv_setpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext
 #endif
+#undef  Perl_cv_ckproto
+#define Perl_cv_ckproto                pPerl->Perl_cv_ckproto
 #undef  cv_ckproto
-#define cv_ckproto             pPerl->cv_ckproto
+#define cv_ckproto             Perl_cv_ckproto
+#undef  Perl_cv_clone
+#define Perl_cv_clone          pPerl->Perl_cv_clone
 #undef  cv_clone
-#define cv_clone               pPerl->cv_clone
+#define cv_clone               Perl_cv_clone
+#undef  Perl_cv_const_sv
+#define Perl_cv_const_sv       pPerl->Perl_cv_const_sv
 #undef  cv_const_sv
-#define cv_const_sv            pPerl->cv_const_sv
+#define cv_const_sv            Perl_cv_const_sv
+#undef  Perl_op_const_sv
+#define Perl_op_const_sv       pPerl->Perl_op_const_sv
 #undef  op_const_sv
-#define op_const_sv            pPerl->op_const_sv
+#define op_const_sv            Perl_op_const_sv
+#undef  Perl_cv_undef
+#define Perl_cv_undef          pPerl->Perl_cv_undef
 #undef  cv_undef
-#define cv_undef               pPerl->cv_undef
+#define cv_undef               Perl_cv_undef
+#undef  Perl_cx_dump
+#define Perl_cx_dump           pPerl->Perl_cx_dump
 #undef  cx_dump
-#define cx_dump                        pPerl->cx_dump
+#define cx_dump                        Perl_cx_dump
+#undef  Perl_filter_add
+#define Perl_filter_add                pPerl->Perl_filter_add
 #undef  filter_add
-#define filter_add             pPerl->filter_add
+#define filter_add             Perl_filter_add
+#undef  Perl_filter_del
+#define Perl_filter_del                pPerl->Perl_filter_del
 #undef  filter_del
-#define filter_del             pPerl->filter_del
+#define filter_del             Perl_filter_del
+#undef  Perl_filter_read
+#define Perl_filter_read       pPerl->Perl_filter_read
 #undef  filter_read
-#define filter_read            pPerl->filter_read
+#define filter_read            Perl_filter_read
+#undef  Perl_get_op_descs
+#define Perl_get_op_descs      pPerl->Perl_get_op_descs
 #undef  get_op_descs
-#define get_op_descs           pPerl->get_op_descs
+#define get_op_descs           Perl_get_op_descs
+#undef  Perl_get_op_names
+#define Perl_get_op_names      pPerl->Perl_get_op_names
 #undef  get_op_names
-#define get_op_names           pPerl->get_op_names
+#define get_op_names           Perl_get_op_names
+#undef  Perl_get_no_modify
+#define Perl_get_no_modify     pPerl->Perl_get_no_modify
 #undef  get_no_modify
-#define get_no_modify          pPerl->get_no_modify
+#define get_no_modify          Perl_get_no_modify
+#undef  Perl_get_opargs
+#define Perl_get_opargs                pPerl->Perl_get_opargs
 #undef  get_opargs
-#define get_opargs             pPerl->get_opargs
+#define get_opargs             Perl_get_opargs
+#undef  Perl_get_ppaddr
+#define Perl_get_ppaddr                pPerl->Perl_get_ppaddr
+#undef  get_ppaddr
+#define get_ppaddr             Perl_get_ppaddr
+#undef  Perl_cxinc
+#define Perl_cxinc             pPerl->Perl_cxinc
 #undef  cxinc
-#define cxinc                  pPerl->cxinc
+#define cxinc                  Perl_cxinc
+#undef  Perl_deb
+#define Perl_deb               pPerl->Perl_deb
 #undef  deb
-#define deb                    pPerl->deb
+#define deb                    Perl_deb
+#undef  Perl_deb_growlevel
+#define Perl_deb_growlevel     pPerl->Perl_deb_growlevel
 #undef  deb_growlevel
-#define deb_growlevel          pPerl->deb_growlevel
+#define deb_growlevel          Perl_deb_growlevel
+#undef  Perl_debprofdump
+#define Perl_debprofdump       pPerl->Perl_debprofdump
 #undef  debprofdump
-#define debprofdump            pPerl->debprofdump
+#define debprofdump            Perl_debprofdump
+#undef  Perl_debop
+#define Perl_debop             pPerl->Perl_debop
 #undef  debop
-#define debop                  pPerl->debop
+#define debop                  Perl_debop
+#undef  Perl_debstack
+#define Perl_debstack          pPerl->Perl_debstack
 #undef  debstack
-#define debstack               pPerl->debstack
+#define debstack               Perl_debstack
+#undef  Perl_debstackptrs
+#define Perl_debstackptrs      pPerl->Perl_debstackptrs
 #undef  debstackptrs
-#define debstackptrs           pPerl->debstackptrs
+#define debstackptrs           Perl_debstackptrs
+#undef  Perl_delimcpy
+#define Perl_delimcpy          pPerl->Perl_delimcpy
 #undef  delimcpy
-#define delimcpy               pPerl->delimcpy
+#define delimcpy               Perl_delimcpy
+#undef  Perl_deprecate
+#define Perl_deprecate         pPerl->Perl_deprecate
 #undef  deprecate
-#define deprecate              pPerl->deprecate
+#define deprecate              Perl_deprecate
+#undef  Perl_die
+#define Perl_die               pPerl->Perl_die
 #undef  die
-#define die                    pPerl->die
+#define die                    Perl_die
+#undef  Perl_die_where
+#define Perl_die_where         pPerl->Perl_die_where
 #undef  die_where
-#define die_where              pPerl->die_where
+#define die_where              Perl_die_where
+#undef  Perl_dounwind
+#define Perl_dounwind          pPerl->Perl_dounwind
 #undef  dounwind
-#define dounwind               pPerl->dounwind
+#define dounwind               Perl_dounwind
+#undef  Perl_do_aexec
+#define Perl_do_aexec          pPerl->Perl_do_aexec
 #undef  do_aexec
-#define do_aexec               pPerl->do_aexec
+#define do_aexec               Perl_do_aexec
+#undef  Perl_do_binmode
+#define Perl_do_binmode                pPerl->Perl_do_binmode
 #undef  do_binmode
-#define do_binmode             pPerl->do_binmode
+#define do_binmode             Perl_do_binmode
+#undef  Perl_do_chop
+#define Perl_do_chop           pPerl->Perl_do_chop
 #undef  do_chop
-#define do_chop                        pPerl->do_chop
+#define do_chop                        Perl_do_chop
+#undef  Perl_do_close
+#define Perl_do_close          pPerl->Perl_do_close
 #undef  do_close
-#define do_close               pPerl->do_close
+#define do_close               Perl_do_close
+#undef  Perl_do_eof
+#define Perl_do_eof            pPerl->Perl_do_eof
 #undef  do_eof
-#define do_eof                 pPerl->do_eof
+#define do_eof                 Perl_do_eof
+#undef  Perl_do_exec
+#define Perl_do_exec           pPerl->Perl_do_exec
 #undef  do_exec
-#define do_exec                        pPerl->do_exec
+#define do_exec                        Perl_do_exec
 #if !defined(WIN32)
+#undef  Perl_do_exec3
+#define Perl_do_exec3          pPerl->Perl_do_exec3
 #undef  do_exec3
-#define do_exec3               pPerl->do_exec3
+#define do_exec3               Perl_do_exec3
 #endif
+#undef  Perl_do_execfree
+#define Perl_do_execfree       pPerl->Perl_do_execfree
 #undef  do_execfree
-#define do_execfree            pPerl->do_execfree
+#define do_execfree            Perl_do_execfree
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+#undef  Perl_do_ipcctl
+#define Perl_do_ipcctl         pPerl->Perl_do_ipcctl
 #undef  do_ipcctl
-#define do_ipcctl              pPerl->do_ipcctl
+#define do_ipcctl              Perl_do_ipcctl
+#undef  Perl_do_ipcget
+#define Perl_do_ipcget         pPerl->Perl_do_ipcget
 #undef  do_ipcget
-#define do_ipcget              pPerl->do_ipcget
+#define do_ipcget              Perl_do_ipcget
+#undef  Perl_do_msgrcv
+#define Perl_do_msgrcv         pPerl->Perl_do_msgrcv
 #undef  do_msgrcv
-#define do_msgrcv              pPerl->do_msgrcv
+#define do_msgrcv              Perl_do_msgrcv
+#undef  Perl_do_msgsnd
+#define Perl_do_msgsnd         pPerl->Perl_do_msgsnd
 #undef  do_msgsnd
-#define do_msgsnd              pPerl->do_msgsnd
+#define do_msgsnd              Perl_do_msgsnd
+#undef  Perl_do_semop
+#define Perl_do_semop          pPerl->Perl_do_semop
 #undef  do_semop
-#define do_semop               pPerl->do_semop
+#define do_semop               Perl_do_semop
+#undef  Perl_do_shmio
+#define Perl_do_shmio          pPerl->Perl_do_shmio
 #undef  do_shmio
-#define do_shmio               pPerl->do_shmio
+#define do_shmio               Perl_do_shmio
 #endif
+#undef  Perl_do_join
+#define Perl_do_join           pPerl->Perl_do_join
 #undef  do_join
-#define do_join                        pPerl->do_join
+#define do_join                        Perl_do_join
+#undef  Perl_do_kv
+#define Perl_do_kv             pPerl->Perl_do_kv
 #undef  do_kv
-#define do_kv                  pPerl->do_kv
+#define do_kv                  Perl_do_kv
+#undef  Perl_do_open
+#define Perl_do_open           pPerl->Perl_do_open
 #undef  do_open
-#define do_open                        pPerl->do_open
+#define do_open                        Perl_do_open
+#undef  Perl_do_pipe
+#define Perl_do_pipe           pPerl->Perl_do_pipe
 #undef  do_pipe
-#define do_pipe                        pPerl->do_pipe
+#define do_pipe                        Perl_do_pipe
+#undef  Perl_do_print
+#define Perl_do_print          pPerl->Perl_do_print
 #undef  do_print
-#define do_print               pPerl->do_print
+#define do_print               Perl_do_print
+#undef  Perl_do_readline
+#define Perl_do_readline       pPerl->Perl_do_readline
 #undef  do_readline
-#define do_readline            pPerl->do_readline
+#define do_readline            Perl_do_readline
+#undef  Perl_do_chomp
+#define Perl_do_chomp          pPerl->Perl_do_chomp
 #undef  do_chomp
-#define do_chomp               pPerl->do_chomp
+#define do_chomp               Perl_do_chomp
+#undef  Perl_do_seek
+#define Perl_do_seek           pPerl->Perl_do_seek
 #undef  do_seek
-#define do_seek                        pPerl->do_seek
+#define do_seek                        Perl_do_seek
+#undef  Perl_do_sprintf
+#define Perl_do_sprintf                pPerl->Perl_do_sprintf
 #undef  do_sprintf
-#define do_sprintf             pPerl->do_sprintf
+#define do_sprintf             Perl_do_sprintf
+#undef  Perl_do_sysseek
+#define Perl_do_sysseek                pPerl->Perl_do_sysseek
 #undef  do_sysseek
-#define do_sysseek             pPerl->do_sysseek
+#define do_sysseek             Perl_do_sysseek
+#undef  Perl_do_tell
+#define Perl_do_tell           pPerl->Perl_do_tell
 #undef  do_tell
-#define do_tell                        pPerl->do_tell
+#define do_tell                        Perl_do_tell
+#undef  Perl_do_trans
+#define Perl_do_trans          pPerl->Perl_do_trans
 #undef  do_trans
-#define do_trans               pPerl->do_trans
+#define do_trans               Perl_do_trans
+#undef  Perl_do_vecset
+#define Perl_do_vecset         pPerl->Perl_do_vecset
 #undef  do_vecset
-#define do_vecset              pPerl->do_vecset
+#define do_vecset              Perl_do_vecset
+#undef  Perl_do_vop
+#define Perl_do_vop            pPerl->Perl_do_vop
 #undef  do_vop
-#define do_vop                 pPerl->do_vop
+#define do_vop                 Perl_do_vop
+#undef  Perl_dofile
+#define Perl_dofile            pPerl->Perl_dofile
 #undef  dofile
-#define dofile                 pPerl->dofile
+#define dofile                 Perl_dofile
+#undef  Perl_dowantarray
+#define Perl_dowantarray       pPerl->Perl_dowantarray
 #undef  dowantarray
-#define dowantarray            pPerl->dowantarray
+#define dowantarray            Perl_dowantarray
+#undef  Perl_dump_all
+#define Perl_dump_all          pPerl->Perl_dump_all
 #undef  dump_all
-#define dump_all               pPerl->dump_all
+#define dump_all               Perl_dump_all
+#undef  Perl_dump_eval
+#define Perl_dump_eval         pPerl->Perl_dump_eval
 #undef  dump_eval
-#define dump_eval              pPerl->dump_eval
+#define dump_eval              Perl_dump_eval
 #if defined(DUMP_FDS)
+#undef  Perl_dump_fds
+#define Perl_dump_fds          pPerl->Perl_dump_fds
 #undef  dump_fds
-#define dump_fds               pPerl->dump_fds
+#define dump_fds               Perl_dump_fds
 #endif
+#undef  Perl_dump_form
+#define Perl_dump_form         pPerl->Perl_dump_form
 #undef  dump_form
-#define dump_form              pPerl->dump_form
+#define dump_form              Perl_dump_form
+#undef  Perl_gv_dump
+#define Perl_gv_dump           pPerl->Perl_gv_dump
 #undef  gv_dump
-#define gv_dump                        pPerl->gv_dump
+#define gv_dump                        Perl_gv_dump
+#undef  Perl_op_dump
+#define Perl_op_dump           pPerl->Perl_op_dump
 #undef  op_dump
-#define op_dump                        pPerl->op_dump
+#define op_dump                        Perl_op_dump
+#undef  Perl_pmop_dump
+#define Perl_pmop_dump         pPerl->Perl_pmop_dump
 #undef  pmop_dump
-#define pmop_dump              pPerl->pmop_dump
+#define pmop_dump              Perl_pmop_dump
+#undef  Perl_dump_packsubs
+#define Perl_dump_packsubs     pPerl->Perl_dump_packsubs
 #undef  dump_packsubs
-#define dump_packsubs          pPerl->dump_packsubs
+#define dump_packsubs          Perl_dump_packsubs
+#undef  Perl_dump_sub
+#define Perl_dump_sub          pPerl->Perl_dump_sub
 #undef  dump_sub
-#define dump_sub               pPerl->dump_sub
+#define dump_sub               Perl_dump_sub
+#undef  Perl_fbm_compile
+#define Perl_fbm_compile       pPerl->Perl_fbm_compile
 #undef  fbm_compile
-#define fbm_compile            pPerl->fbm_compile
+#define fbm_compile            Perl_fbm_compile
+#undef  Perl_fbm_instr
+#define Perl_fbm_instr         pPerl->Perl_fbm_instr
 #undef  fbm_instr
-#define fbm_instr              pPerl->fbm_instr
+#define fbm_instr              Perl_fbm_instr
+#undef  Perl_find_script
+#define Perl_find_script       pPerl->Perl_find_script
 #undef  find_script
-#define find_script            pPerl->find_script
+#define find_script            Perl_find_script
 #if defined(USE_THREADS)
+#undef  Perl_find_threadsv
+#define Perl_find_threadsv     pPerl->Perl_find_threadsv
 #undef  find_threadsv
-#define find_threadsv          pPerl->find_threadsv
+#define find_threadsv          Perl_find_threadsv
 #endif
+#undef  Perl_force_list
+#define Perl_force_list                pPerl->Perl_force_list
 #undef  force_list
-#define force_list             pPerl->force_list
+#define force_list             Perl_force_list
+#undef  Perl_fold_constants
+#define Perl_fold_constants    pPerl->Perl_fold_constants
 #undef  fold_constants
-#define fold_constants         pPerl->fold_constants
+#define fold_constants         Perl_fold_constants
+#undef  Perl_form
+#define Perl_form              pPerl->Perl_form
 #undef  form
-#define form                   pPerl->form
+#define form                   Perl_form
+#undef  Perl_free_tmps
+#define Perl_free_tmps         pPerl->Perl_free_tmps
 #undef  free_tmps
-#define free_tmps              pPerl->free_tmps
+#define free_tmps              Perl_free_tmps
+#undef  Perl_gen_constant_list
+#define Perl_gen_constant_list pPerl->Perl_gen_constant_list
 #undef  gen_constant_list
-#define gen_constant_list      pPerl->gen_constant_list
+#define gen_constant_list      Perl_gen_constant_list
 #if !defined(HAS_GETENV_LEN)
+#undef  Perl_getenv_len
+#define Perl_getenv_len                pPerl->Perl_getenv_len
 #undef  getenv_len
-#define getenv_len             pPerl->getenv_len
+#define getenv_len             Perl_getenv_len
 #endif
+#undef  Perl_gp_free
+#define Perl_gp_free           pPerl->Perl_gp_free
 #undef  gp_free
-#define gp_free                        pPerl->gp_free
+#define gp_free                        Perl_gp_free
+#undef  Perl_gp_ref
+#define Perl_gp_ref            pPerl->Perl_gp_ref
 #undef  gp_ref
-#define gp_ref                 pPerl->gp_ref
+#define gp_ref                 Perl_gp_ref
+#undef  Perl_gv_AVadd
+#define Perl_gv_AVadd          pPerl->Perl_gv_AVadd
 #undef  gv_AVadd
-#define gv_AVadd               pPerl->gv_AVadd
+#define gv_AVadd               Perl_gv_AVadd
+#undef  Perl_gv_HVadd
+#define Perl_gv_HVadd          pPerl->Perl_gv_HVadd
 #undef  gv_HVadd
-#define gv_HVadd               pPerl->gv_HVadd
+#define gv_HVadd               Perl_gv_HVadd
+#undef  Perl_gv_IOadd
+#define Perl_gv_IOadd          pPerl->Perl_gv_IOadd
 #undef  gv_IOadd
-#define gv_IOadd               pPerl->gv_IOadd
+#define gv_IOadd               Perl_gv_IOadd
+#undef  Perl_gv_autoload4
+#define Perl_gv_autoload4      pPerl->Perl_gv_autoload4
 #undef  gv_autoload4
-#define gv_autoload4           pPerl->gv_autoload4
+#define gv_autoload4           Perl_gv_autoload4
+#undef  Perl_gv_check
+#define Perl_gv_check          pPerl->Perl_gv_check
 #undef  gv_check
-#define gv_check               pPerl->gv_check
+#define gv_check               Perl_gv_check
+#undef  Perl_gv_efullname
+#define Perl_gv_efullname      pPerl->Perl_gv_efullname
 #undef  gv_efullname
-#define gv_efullname           pPerl->gv_efullname
+#define gv_efullname           Perl_gv_efullname
+#undef  Perl_gv_efullname3
+#define Perl_gv_efullname3     pPerl->Perl_gv_efullname3
 #undef  gv_efullname3
-#define gv_efullname3          pPerl->gv_efullname3
+#define gv_efullname3          Perl_gv_efullname3
+#undef  Perl_gv_fetchfile
+#define Perl_gv_fetchfile      pPerl->Perl_gv_fetchfile
 #undef  gv_fetchfile
-#define gv_fetchfile           pPerl->gv_fetchfile
+#define gv_fetchfile           Perl_gv_fetchfile
+#undef  Perl_gv_fetchmeth
+#define Perl_gv_fetchmeth      pPerl->Perl_gv_fetchmeth
 #undef  gv_fetchmeth
-#define gv_fetchmeth           pPerl->gv_fetchmeth
+#define gv_fetchmeth           Perl_gv_fetchmeth
+#undef  Perl_gv_fetchmethod
+#define Perl_gv_fetchmethod    pPerl->Perl_gv_fetchmethod
 #undef  gv_fetchmethod
-#define gv_fetchmethod         pPerl->gv_fetchmethod
+#define gv_fetchmethod         Perl_gv_fetchmethod
+#undef  Perl_gv_fetchmethod_autoload
+#define Perl_gv_fetchmethod_autoload   pPerl->Perl_gv_fetchmethod_autoload
 #undef  gv_fetchmethod_autoload
-#define gv_fetchmethod_autoload        pPerl->gv_fetchmethod_autoload
+#define gv_fetchmethod_autoload        Perl_gv_fetchmethod_autoload
+#undef  Perl_gv_fetchpv
+#define Perl_gv_fetchpv                pPerl->Perl_gv_fetchpv
 #undef  gv_fetchpv
-#define gv_fetchpv             pPerl->gv_fetchpv
+#define gv_fetchpv             Perl_gv_fetchpv
+#undef  Perl_gv_fullname
+#define Perl_gv_fullname       pPerl->Perl_gv_fullname
 #undef  gv_fullname
-#define gv_fullname            pPerl->gv_fullname
+#define gv_fullname            Perl_gv_fullname
+#undef  Perl_gv_fullname3
+#define Perl_gv_fullname3      pPerl->Perl_gv_fullname3
 #undef  gv_fullname3
-#define gv_fullname3           pPerl->gv_fullname3
+#define gv_fullname3           Perl_gv_fullname3
+#undef  Perl_gv_init
+#define Perl_gv_init           pPerl->Perl_gv_init
 #undef  gv_init
-#define gv_init                        pPerl->gv_init
+#define gv_init                        Perl_gv_init
+#undef  Perl_gv_stashpv
+#define Perl_gv_stashpv                pPerl->Perl_gv_stashpv
 #undef  gv_stashpv
-#define gv_stashpv             pPerl->gv_stashpv
+#define gv_stashpv             Perl_gv_stashpv
+#undef  Perl_gv_stashpvn
+#define Perl_gv_stashpvn       pPerl->Perl_gv_stashpvn
 #undef  gv_stashpvn
-#define gv_stashpvn            pPerl->gv_stashpvn
+#define gv_stashpvn            Perl_gv_stashpvn
+#undef  Perl_gv_stashsv
+#define Perl_gv_stashsv                pPerl->Perl_gv_stashsv
 #undef  gv_stashsv
-#define gv_stashsv             pPerl->gv_stashsv
+#define gv_stashsv             Perl_gv_stashsv
+#undef  Perl_hv_clear
+#define Perl_hv_clear          pPerl->Perl_hv_clear
 #undef  hv_clear
-#define hv_clear               pPerl->hv_clear
+#define hv_clear               Perl_hv_clear
+#undef  Perl_hv_delayfree_ent
+#define Perl_hv_delayfree_ent  pPerl->Perl_hv_delayfree_ent
 #undef  hv_delayfree_ent
-#define hv_delayfree_ent       pPerl->hv_delayfree_ent
+#define hv_delayfree_ent       Perl_hv_delayfree_ent
+#undef  Perl_hv_delete
+#define Perl_hv_delete         pPerl->Perl_hv_delete
 #undef  hv_delete
-#define hv_delete              pPerl->hv_delete
+#define hv_delete              Perl_hv_delete
+#undef  Perl_hv_delete_ent
+#define Perl_hv_delete_ent     pPerl->Perl_hv_delete_ent
 #undef  hv_delete_ent
-#define hv_delete_ent          pPerl->hv_delete_ent
+#define hv_delete_ent          Perl_hv_delete_ent
+#undef  Perl_hv_exists
+#define Perl_hv_exists         pPerl->Perl_hv_exists
 #undef  hv_exists
-#define hv_exists              pPerl->hv_exists
+#define hv_exists              Perl_hv_exists
+#undef  Perl_hv_exists_ent
+#define Perl_hv_exists_ent     pPerl->Perl_hv_exists_ent
 #undef  hv_exists_ent
-#define hv_exists_ent          pPerl->hv_exists_ent
+#define hv_exists_ent          Perl_hv_exists_ent
+#undef  Perl_hv_fetch
+#define Perl_hv_fetch          pPerl->Perl_hv_fetch
 #undef  hv_fetch
-#define hv_fetch               pPerl->hv_fetch
+#define hv_fetch               Perl_hv_fetch
+#undef  Perl_hv_fetch_ent
+#define Perl_hv_fetch_ent      pPerl->Perl_hv_fetch_ent
 #undef  hv_fetch_ent
-#define hv_fetch_ent           pPerl->hv_fetch_ent
+#define hv_fetch_ent           Perl_hv_fetch_ent
+#undef  Perl_hv_free_ent
+#define Perl_hv_free_ent       pPerl->Perl_hv_free_ent
 #undef  hv_free_ent
-#define hv_free_ent            pPerl->hv_free_ent
+#define hv_free_ent            Perl_hv_free_ent
+#undef  Perl_hv_iterinit
+#define Perl_hv_iterinit       pPerl->Perl_hv_iterinit
 #undef  hv_iterinit
-#define hv_iterinit            pPerl->hv_iterinit
+#define hv_iterinit            Perl_hv_iterinit
+#undef  Perl_hv_iterkey
+#define Perl_hv_iterkey                pPerl->Perl_hv_iterkey
 #undef  hv_iterkey
-#define hv_iterkey             pPerl->hv_iterkey
+#define hv_iterkey             Perl_hv_iterkey
+#undef  Perl_hv_iterkeysv
+#define Perl_hv_iterkeysv      pPerl->Perl_hv_iterkeysv
 #undef  hv_iterkeysv
-#define hv_iterkeysv           pPerl->hv_iterkeysv
+#define hv_iterkeysv           Perl_hv_iterkeysv
+#undef  Perl_hv_iternext
+#define Perl_hv_iternext       pPerl->Perl_hv_iternext
 #undef  hv_iternext
-#define hv_iternext            pPerl->hv_iternext
+#define hv_iternext            Perl_hv_iternext
+#undef  Perl_hv_iternextsv
+#define Perl_hv_iternextsv     pPerl->Perl_hv_iternextsv
 #undef  hv_iternextsv
-#define hv_iternextsv          pPerl->hv_iternextsv
+#define hv_iternextsv          Perl_hv_iternextsv
+#undef  Perl_hv_iterval
+#define Perl_hv_iterval                pPerl->Perl_hv_iterval
 #undef  hv_iterval
-#define hv_iterval             pPerl->hv_iterval
+#define hv_iterval             Perl_hv_iterval
+#undef  Perl_hv_ksplit
+#define Perl_hv_ksplit         pPerl->Perl_hv_ksplit
 #undef  hv_ksplit
-#define hv_ksplit              pPerl->hv_ksplit
+#define hv_ksplit              Perl_hv_ksplit
+#undef  Perl_hv_magic
+#define Perl_hv_magic          pPerl->Perl_hv_magic
 #undef  hv_magic
-#define hv_magic               pPerl->hv_magic
+#define hv_magic               Perl_hv_magic
+#undef  Perl_hv_store
+#define Perl_hv_store          pPerl->Perl_hv_store
 #undef  hv_store
-#define hv_store               pPerl->hv_store
+#define hv_store               Perl_hv_store
+#undef  Perl_hv_store_ent
+#define Perl_hv_store_ent      pPerl->Perl_hv_store_ent
 #undef  hv_store_ent
-#define hv_store_ent           pPerl->hv_store_ent
+#define hv_store_ent           Perl_hv_store_ent
+#undef  Perl_hv_undef
+#define Perl_hv_undef          pPerl->Perl_hv_undef
 #undef  hv_undef
-#define hv_undef               pPerl->hv_undef
+#define hv_undef               Perl_hv_undef
+#undef  Perl_ibcmp
+#define Perl_ibcmp             pPerl->Perl_ibcmp
 #undef  ibcmp
-#define ibcmp                  pPerl->ibcmp
+#define ibcmp                  Perl_ibcmp
+#undef  Perl_ibcmp_locale
+#define Perl_ibcmp_locale      pPerl->Perl_ibcmp_locale
 #undef  ibcmp_locale
-#define ibcmp_locale           pPerl->ibcmp_locale
+#define ibcmp_locale           Perl_ibcmp_locale
+#undef  Perl_ingroup
+#define Perl_ingroup           pPerl->Perl_ingroup
 #undef  ingroup
-#define ingroup                        pPerl->ingroup
+#define ingroup                        Perl_ingroup
+#undef  Perl_init_stacks
+#define Perl_init_stacks       pPerl->Perl_init_stacks
 #undef  init_stacks
-#define init_stacks            pPerl->init_stacks
+#define init_stacks            Perl_init_stacks
+#undef  Perl_intro_my
+#define Perl_intro_my          pPerl->Perl_intro_my
 #undef  intro_my
-#define intro_my               pPerl->intro_my
+#define intro_my               Perl_intro_my
+#undef  Perl_instr
+#define Perl_instr             pPerl->Perl_instr
 #undef  instr
-#define instr                  pPerl->instr
+#define instr                  Perl_instr
+#undef  Perl_io_close
+#define Perl_io_close          pPerl->Perl_io_close
 #undef  io_close
-#define io_close               pPerl->io_close
+#define io_close               Perl_io_close
+#undef  Perl_invert
+#define Perl_invert            pPerl->Perl_invert
 #undef  invert
-#define invert                 pPerl->invert
+#define invert                 Perl_invert
+#undef  Perl_is_uni_alnum
+#define Perl_is_uni_alnum      pPerl->Perl_is_uni_alnum
 #undef  is_uni_alnum
-#define is_uni_alnum           pPerl->is_uni_alnum
+#define is_uni_alnum           Perl_is_uni_alnum
+#undef  Perl_is_uni_idfirst
+#define Perl_is_uni_idfirst    pPerl->Perl_is_uni_idfirst
 #undef  is_uni_idfirst
-#define is_uni_idfirst         pPerl->is_uni_idfirst
+#define is_uni_idfirst         Perl_is_uni_idfirst
+#undef  Perl_is_uni_alpha
+#define Perl_is_uni_alpha      pPerl->Perl_is_uni_alpha
 #undef  is_uni_alpha
-#define is_uni_alpha           pPerl->is_uni_alpha
+#define is_uni_alpha           Perl_is_uni_alpha
+#undef  Perl_is_uni_space
+#define Perl_is_uni_space      pPerl->Perl_is_uni_space
 #undef  is_uni_space
-#define is_uni_space           pPerl->is_uni_space
+#define is_uni_space           Perl_is_uni_space
+#undef  Perl_is_uni_digit
+#define Perl_is_uni_digit      pPerl->Perl_is_uni_digit
 #undef  is_uni_digit
-#define is_uni_digit           pPerl->is_uni_digit
+#define is_uni_digit           Perl_is_uni_digit
+#undef  Perl_is_uni_upper
+#define Perl_is_uni_upper      pPerl->Perl_is_uni_upper
 #undef  is_uni_upper
-#define is_uni_upper           pPerl->is_uni_upper
+#define is_uni_upper           Perl_is_uni_upper
+#undef  Perl_is_uni_lower
+#define Perl_is_uni_lower      pPerl->Perl_is_uni_lower
 #undef  is_uni_lower
-#define is_uni_lower           pPerl->is_uni_lower
+#define is_uni_lower           Perl_is_uni_lower
+#undef  Perl_is_uni_print
+#define Perl_is_uni_print      pPerl->Perl_is_uni_print
 #undef  is_uni_print
-#define is_uni_print           pPerl->is_uni_print
+#define is_uni_print           Perl_is_uni_print
+#undef  Perl_to_uni_upper
+#define Perl_to_uni_upper      pPerl->Perl_to_uni_upper
 #undef  to_uni_upper
-#define to_uni_upper           pPerl->to_uni_upper
+#define to_uni_upper           Perl_to_uni_upper
+#undef  Perl_to_uni_title
+#define Perl_to_uni_title      pPerl->Perl_to_uni_title
 #undef  to_uni_title
-#define to_uni_title           pPerl->to_uni_title
+#define to_uni_title           Perl_to_uni_title
+#undef  Perl_to_uni_lower
+#define Perl_to_uni_lower      pPerl->Perl_to_uni_lower
 #undef  to_uni_lower
-#define to_uni_lower           pPerl->to_uni_lower
+#define to_uni_lower           Perl_to_uni_lower
+#undef  Perl_is_uni_alnum_lc
+#define Perl_is_uni_alnum_lc   pPerl->Perl_is_uni_alnum_lc
 #undef  is_uni_alnum_lc
-#define is_uni_alnum_lc                pPerl->is_uni_alnum_lc
+#define is_uni_alnum_lc                Perl_is_uni_alnum_lc
+#undef  Perl_is_uni_idfirst_lc
+#define Perl_is_uni_idfirst_lc pPerl->Perl_is_uni_idfirst_lc
 #undef  is_uni_idfirst_lc
-#define is_uni_idfirst_lc      pPerl->is_uni_idfirst_lc
+#define is_uni_idfirst_lc      Perl_is_uni_idfirst_lc
+#undef  Perl_is_uni_alpha_lc
+#define Perl_is_uni_alpha_lc   pPerl->Perl_is_uni_alpha_lc
 #undef  is_uni_alpha_lc
-#define is_uni_alpha_lc                pPerl->is_uni_alpha_lc
+#define is_uni_alpha_lc                Perl_is_uni_alpha_lc
+#undef  Perl_is_uni_space_lc
+#define Perl_is_uni_space_lc   pPerl->Perl_is_uni_space_lc
 #undef  is_uni_space_lc
-#define is_uni_space_lc                pPerl->is_uni_space_lc
+#define is_uni_space_lc                Perl_is_uni_space_lc
+#undef  Perl_is_uni_digit_lc
+#define Perl_is_uni_digit_lc   pPerl->Perl_is_uni_digit_lc
 #undef  is_uni_digit_lc
-#define is_uni_digit_lc                pPerl->is_uni_digit_lc
+#define is_uni_digit_lc                Perl_is_uni_digit_lc
+#undef  Perl_is_uni_upper_lc
+#define Perl_is_uni_upper_lc   pPerl->Perl_is_uni_upper_lc
 #undef  is_uni_upper_lc
-#define is_uni_upper_lc                pPerl->is_uni_upper_lc
+#define is_uni_upper_lc                Perl_is_uni_upper_lc
+#undef  Perl_is_uni_lower_lc
+#define Perl_is_uni_lower_lc   pPerl->Perl_is_uni_lower_lc
 #undef  is_uni_lower_lc
-#define is_uni_lower_lc                pPerl->is_uni_lower_lc
+#define is_uni_lower_lc                Perl_is_uni_lower_lc
+#undef  Perl_is_uni_print_lc
+#define Perl_is_uni_print_lc   pPerl->Perl_is_uni_print_lc
 #undef  is_uni_print_lc
-#define is_uni_print_lc                pPerl->is_uni_print_lc
+#define is_uni_print_lc                Perl_is_uni_print_lc
+#undef  Perl_to_uni_upper_lc
+#define Perl_to_uni_upper_lc   pPerl->Perl_to_uni_upper_lc
 #undef  to_uni_upper_lc
-#define to_uni_upper_lc                pPerl->to_uni_upper_lc
+#define to_uni_upper_lc                Perl_to_uni_upper_lc
+#undef  Perl_to_uni_title_lc
+#define Perl_to_uni_title_lc   pPerl->Perl_to_uni_title_lc
 #undef  to_uni_title_lc
-#define to_uni_title_lc                pPerl->to_uni_title_lc
+#define to_uni_title_lc                Perl_to_uni_title_lc
+#undef  Perl_to_uni_lower_lc
+#define Perl_to_uni_lower_lc   pPerl->Perl_to_uni_lower_lc
 #undef  to_uni_lower_lc
-#define to_uni_lower_lc                pPerl->to_uni_lower_lc
+#define to_uni_lower_lc                Perl_to_uni_lower_lc
+#undef  Perl_is_utf8_alnum
+#define Perl_is_utf8_alnum     pPerl->Perl_is_utf8_alnum
 #undef  is_utf8_alnum
-#define is_utf8_alnum          pPerl->is_utf8_alnum
+#define is_utf8_alnum          Perl_is_utf8_alnum
+#undef  Perl_is_utf8_idfirst
+#define Perl_is_utf8_idfirst   pPerl->Perl_is_utf8_idfirst
 #undef  is_utf8_idfirst
-#define is_utf8_idfirst                pPerl->is_utf8_idfirst
+#define is_utf8_idfirst                Perl_is_utf8_idfirst
+#undef  Perl_is_utf8_alpha
+#define Perl_is_utf8_alpha     pPerl->Perl_is_utf8_alpha
 #undef  is_utf8_alpha
-#define is_utf8_alpha          pPerl->is_utf8_alpha
+#define is_utf8_alpha          Perl_is_utf8_alpha
+#undef  Perl_is_utf8_space
+#define Perl_is_utf8_space     pPerl->Perl_is_utf8_space
 #undef  is_utf8_space
-#define is_utf8_space          pPerl->is_utf8_space
+#define is_utf8_space          Perl_is_utf8_space
+#undef  Perl_is_utf8_digit
+#define Perl_is_utf8_digit     pPerl->Perl_is_utf8_digit
 #undef  is_utf8_digit
-#define is_utf8_digit          pPerl->is_utf8_digit
+#define is_utf8_digit          Perl_is_utf8_digit
+#undef  Perl_is_utf8_upper
+#define Perl_is_utf8_upper     pPerl->Perl_is_utf8_upper
 #undef  is_utf8_upper
-#define is_utf8_upper          pPerl->is_utf8_upper
+#define is_utf8_upper          Perl_is_utf8_upper
+#undef  Perl_is_utf8_lower
+#define Perl_is_utf8_lower     pPerl->Perl_is_utf8_lower
 #undef  is_utf8_lower
-#define is_utf8_lower          pPerl->is_utf8_lower
+#define is_utf8_lower          Perl_is_utf8_lower
+#undef  Perl_is_utf8_print
+#define Perl_is_utf8_print     pPerl->Perl_is_utf8_print
 #undef  is_utf8_print
-#define is_utf8_print          pPerl->is_utf8_print
+#define is_utf8_print          Perl_is_utf8_print
+#undef  Perl_is_utf8_mark
+#define Perl_is_utf8_mark      pPerl->Perl_is_utf8_mark
 #undef  is_utf8_mark
-#define is_utf8_mark           pPerl->is_utf8_mark
+#define is_utf8_mark           Perl_is_utf8_mark
+#undef  Perl_jmaybe
+#define Perl_jmaybe            pPerl->Perl_jmaybe
 #undef  jmaybe
-#define jmaybe                 pPerl->jmaybe
+#define jmaybe                 Perl_jmaybe
+#undef  Perl_keyword
+#define Perl_keyword           pPerl->Perl_keyword
 #undef  keyword
-#define keyword                        pPerl->keyword
+#define keyword                        Perl_keyword
+#undef  Perl_leave_scope
+#define Perl_leave_scope       pPerl->Perl_leave_scope
 #undef  leave_scope
-#define leave_scope            pPerl->leave_scope
+#define leave_scope            Perl_leave_scope
+#undef  Perl_lex_end
+#define Perl_lex_end           pPerl->Perl_lex_end
 #undef  lex_end
-#define lex_end                        pPerl->lex_end
+#define lex_end                        Perl_lex_end
+#undef  Perl_lex_start
+#define Perl_lex_start         pPerl->Perl_lex_start
 #undef  lex_start
-#define lex_start              pPerl->lex_start
+#define lex_start              Perl_lex_start
+#undef  Perl_linklist
+#define Perl_linklist          pPerl->Perl_linklist
 #undef  linklist
-#define linklist               pPerl->linklist
+#define linklist               Perl_linklist
+#undef  Perl_list
+#define Perl_list              pPerl->Perl_list
 #undef  list
-#define list                   pPerl->list
+#define list                   Perl_list
+#undef  Perl_listkids
+#define Perl_listkids          pPerl->Perl_listkids
 #undef  listkids
-#define listkids               pPerl->listkids
+#define listkids               Perl_listkids
+#undef  Perl_localize
+#define Perl_localize          pPerl->Perl_localize
 #undef  localize
-#define localize               pPerl->localize
+#define localize               Perl_localize
+#undef  Perl_looks_like_number
+#define Perl_looks_like_number pPerl->Perl_looks_like_number
 #undef  looks_like_number
-#define looks_like_number      pPerl->looks_like_number
+#define looks_like_number      Perl_looks_like_number
+#undef  Perl_magic_clearenv
+#define Perl_magic_clearenv    pPerl->Perl_magic_clearenv
 #undef  magic_clearenv
-#define magic_clearenv         pPerl->magic_clearenv
+#define magic_clearenv         Perl_magic_clearenv
+#undef  Perl_magic_clear_all_env
+#define Perl_magic_clear_all_env       pPerl->Perl_magic_clear_all_env
 #undef  magic_clear_all_env
-#define magic_clear_all_env    pPerl->magic_clear_all_env
+#define magic_clear_all_env    Perl_magic_clear_all_env
+#undef  Perl_magic_clearpack
+#define Perl_magic_clearpack   pPerl->Perl_magic_clearpack