This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove deprecated PERL_OBJECT cruft, it has long since stopped
authorGurusamy Sarathy <gsar@cpan.org>
Fri, 31 Aug 2001 20:58:38 +0000 (20:58 +0000)
committerGurusamy Sarathy <gsar@cpan.org>
Fri, 31 Aug 2001 20:58:38 +0000 (20:58 +0000)
working in 5.7.x

p4raw-id: //depot/perl@11803

84 files changed:
EXTERN.h
MANIFEST
Makefile.SH
Makefile.micro
NetWare/Makefile
NetWare/config_h.PL
NetWare/dl_netware.xs
NetWare/interface.c
NetWare/nw5.c
NetWare/nw5sck.c
NetWare/nw5thread.c
NetWare/nwperlsys.c
NetWare/nwperlsys.h
Porting/makerel
README.win32
XSUB.h
bytecode.pl
cv.h
cygwin/cygwin.c
emacs/ptags
embed.h
embed.pl
embedvar.h
epoc/epoc.c
ext/B/B.xs
ext/B/B/C.pm
ext/ByteLoader/ByteLoader.xs
ext/ByteLoader/bytecode.h
ext/ByteLoader/byterun.c
ext/DynaLoader/dlutils.c
ext/Opcode/Opcode.xs
ext/POSIX/POSIX.xs
globals.c
iperlsys.h
lib/ExtUtils/Embed.pm
lib/ExtUtils/MM_NW5.pm
lib/ExtUtils/MM_Unix.pm
lib/ExtUtils/MM_Win32.pm
lib/ExtUtils/MakeMaker.pm
lib/ExtUtils/xsubpp
makedef.pl
mg.c
objXSUB.h [deleted file]
op.c
perl.c
perl.h
perlapi.c
perlapi.h
perlio.c
perly.c
perly.y
perly_c.diff
pod/perlguts.pod
pp_ctl.c
pp_hot.c
proto.h
regcomp.c
regexec.c
scope.c
sv.c
sv.h
toke.c
universal.c
vms/descrip_mms.template
vms/perly_c.vms
win32/Makefile
win32/config_h.PL
win32/dl_win32.xs
win32/makefile.mk
win32/perlhost.h
win32/perllib.c
win32/win32.c
win32/win32.h
win32/win32sck.c
win32/win32thread.c
wince/Makefile.ce
wince/config_h.PL
wince/dl_win32.xs
wince/perllib.c
wince/win32.h
wince/win32thread.c
wince/wince.c
wince/wincesck.c
xsutils.c

index 1480551..8329089 100644 (file)
--- a/EXTERN.h
+++ b/EXTERN.h
@@ -27,7 +27,7 @@
 #  define EXTCONST globalref
 #  define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
 #else
-#  if defined(WIN32) && !defined(PERL_STATIC_SYMS) && !defined(PERL_OBJECT)
+#  if defined(WIN32) && !defined(PERL_STATIC_SYMS)
 #    ifdef PERLDLL
 #      define EXT extern __declspec(dllexport)
 #      define dEXT 
index e82e0f3..3241dc1 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -42,7 +42,7 @@ emacs/cperl-mode.el   An alternate perl-mode
 emacs/e2ctags.pl       etags to ctags converter
 emacs/ptags            Creates smart TAGS file
 embed.h                        Maps symbols to safer names
-embed.pl               Produces {embed,embedvar,objXSUB,proto}.h, global.sym
+embed.pl               Produces {embed,embedvar,proto}.h, global.sym
 embedvar.h             C namespace management
 epoc/config.sh         EPOC port config.sh template
 epoc/createpkg.pl      EPOC port generate PKG file
@@ -1606,7 +1606,6 @@ NetWare/testnlm/type/type.c       Netware port
 NetWare/win32ish.h             Netware port
 nostdio.h                      Cause compile error on stdio calls
 numeric.c                      Miscellaneous numeric conversion routines
-objXSUB.h                      Scoping macros for Perl Object in extensions
 op.c                           Opcode syntax tree code
 op.h                           Opcode syntax tree header
 opcode.h                       Automatically generated opcode header
index 81858b2..65cf9d8 100644 (file)
@@ -773,7 +773,7 @@ CHMOD_W = chmod +w
 #      keywords.pl:    keywords.h
 #      opcode.pl:      opcode.h opnames.h pp_proto.h pp.sym
 # [* embed.pl needs pp.sym generated by opcode.pl! *]
-#      embed.pl:       proto.h embed.h embedvar.h global.sym objXSUB.h
+#      embed.pl:       proto.h embed.h embedvar.h global.sym
 #                      perlapi.h perlapi.c pod/perlintern.pod
 #                      pod/perlapi.pod
 #      bytecode.pl:    ext/ByteLoader/byterun.h ext/ByteLoader/byterun.c
@@ -788,7 +788,7 @@ CHMOD_W = chmod +w
 AUTOGEN_FILES = keywords.h opcode.h opnames.h pp_proto.h pp.sym proto.h \
                embed.h embedvar.h global.sym \
                pod/perlintern.pod pod/perlapi.pod \
-               objXSUB.h perlapi.h perlapi.c ext/ByteLoader/byterun.h \
+               perlapi.h perlapi.c ext/ByteLoader/byterun.h \
                ext/ByteLoader/byterun.c ext/B/B/Asmdata.pm regnodes.h \
                warnings.h lib/warnings.pm
 
index 78113aa..f272dff 100644 (file)
@@ -122,7 +122,7 @@ ulocale$(_O):       $(HE) locale.c
 unumeric$(_O): $(HE) numeric.c
        $(CC) -c -o $@ $(CFLAGS) numeric.c
 
-uuniversal$(_O):       $(HE) universal.c objXSUB.h XSUB.h
+uuniversal$(_O):       $(HE) universal.c XSUB.h
        $(CC) -c -o $@ $(CFLAGS) universal.c
 
 uutf8$(_O):    $(HE) utf8.c
index 01daccc..ec06f7c 100644 (file)
@@ -463,17 +463,6 @@ USE_IMP_SYS        = define
 #
 #USE_5005THREADS= define
 
-#
-# WARNING! This option is deprecated and will eventually go away (enable
-# USE_MULTI instead).
-#
-# uncomment next line if you want to use the PERL_OBJECT build option.
-# DO NOT ENABLE unless you have legacy code that relies on the C++
-# CPerlObj class that was available in 5.005.  This cannot be enabled
-# if you ask for USE_5005THREADS above.
-#
-#USE_OBJECT    = define
-
 # For now let this be here
 #
 #CRYPT_SRC     = fcrypt.c
@@ -510,13 +499,6 @@ D_CRYPT            = define
 CRYPT_FLAG     = -DHAVE_DES_FCRYPT
 !ENDIF
 
-!IF "$(USE_OBJECT)" == "define"
-PERL_MALLOC    = undef
-USE_5005THREADS        = undef
-USE_MULTI      = undef
-USE_IMP_SYS    = define
-!ENDIF
-
 !IF "$(PERL_MALLOC)" == ""
 PERL_MALLOC    = undef
 !ENDIF
@@ -537,10 +519,6 @@ PERL_MALLOC        = undef
 USE_MULTI      = undef
 !ENDIF
 
-!IF "$(USE_OBJECT)" == ""
-USE_OBJECT     = undef
-!ENDIF
-
 !IF "$(USE_ITHREADS)" == ""
 USE_ITHREADS   = undef
 !ENDIF
@@ -553,16 +531,16 @@ USE_IMP_SYS       = undef
 USE_PERLCRT    = undef
 !ENDIF
 
-!IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" == "defineundefundefundef"
+!IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)" == "defineundefundef"
 USE_MULTI      = define
 !ENDIF
 
-!IF "$(USE_ITHREADS)$(USE_MULTI)$(USE_OBJECT)" == "defineundefundef"
+!IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
 USE_MULTI      = define
 USE_5005THREADS        = undef
 !ENDIF
 
-!IF "$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" != "undefundefundef"
+!IF "$(USE_MULTI)$(USE_5005THREADS)" != "undefundef"
 BUILDOPT       = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
 !ENDIF
 
@@ -574,9 +552,6 @@ BUILDOPT    = $(BUILDOPT) -DPERL_IMPLICIT_SYS
 PROCESSOR_ARCHITECTURE = x86
 !ENDIF
 
-!IF "$(USE_OBJECT)" == "define"
-ARCHNAME       = NetWare-$(PROCESSOR_ARCHITECTURE)-object
-!ELSE
 !IF "$(USE_5005THREADS)" == "define"
 ARCHNAME       = NetWare-$(PROCESSOR_ARCHITECTURE)-thread
 !ELSE
@@ -586,9 +561,8 @@ ARCHNAME    = NetWare-$(PROCESSOR_ARCHITECTURE)-multi
 ARCHNAME       = NetWare-$(PROCESSOR_ARCHITECTURE)
 !ENDIF
 !ENDIF
-!ENDIF
 
-!IF "$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" != "undefundefundef"
+!IF "$(USE_MULTI)$(USE_5005THREADS)" != "undefundef"
 ADD_BUILDOPT   = $(ADD_BUILDOPT) -DPERL_IMPLICIT_CONTEXT
 !ENDIF
 
@@ -630,11 +604,6 @@ INST_HTML  = $(INST_POD)\html
 # Options
 #
 
-!IF "$(USE_OBJECT)" == "define"
-OPTIMIZE       = $(OPTIMIZE) $(CXX_FLAG)
-BUILDOPT       = $(BUILDOPT) -DPERL_OBJECT
-!ENDIF
-
 OBJOUT_FLAG    = -Fo
 EXEOUT_FLAG    = -Fe
 
@@ -736,9 +705,7 @@ MICROCORE_SRC       =               \
 EXTRACORE_SRC  = $(EXTRACORE_SRC) ..\malloc.c
 !ENDIF
 
-#!IF "$(USE_OBJECT)" != "define"
 #EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c
-#!ENDIF
 
 !IF "$(CRYPT_SRC)" != ""
 NW_SRC = $(NW_SRC) .\$(CRYPT_SRC)
index a7e5a09..d0eb05a 100644 (file)
@@ -2,7 +2,6 @@
 use Config;
 use File::Compare qw(compare);
 use File::Copy qw(copy);
-my $OBJ   = 1 if $Config{'ccflags'} =~ /PERL_OBJECT/i;
 my $name = $0;
 $name =~ s#^(.*)\.PL$#../$1.SH#;
 my %opt;
@@ -78,7 +77,7 @@ chmod(0666,"../lib/CORE/config.h");
 copy("$file.new","../lib/CORE/config.h") || die "Cannot copy:$!";
 chmod(0444,"../lib/CORE/config.h");
 
-if (!$OBJ && compare("$file.new",$file))
+if (compare("$file.new",$file))
  {
   warn "$file has changed\n";
   chmod(0666,$file);
index 2f466ca..11f2444 100644 (file)
@@ -27,23 +27,19 @@ NetWare related modifications done on dl_win32.xs file created by Wei-Yuen Tan t
 //function pointer for UCSInitialize
 typedef void (*PFUCSINITIALIZE) ();
 
-#ifdef PERL_OBJECT
-
-#endif  /* PERL_OBJECT */
-
 #include "dlutils.c"   /* SaveError() etc      */
 
 static void
-dl_private_init(pTHXo)
+dl_private_init(pTHX)
 {
-    (void)dl_generic_private_init(aTHXo);
+    (void)dl_generic_private_init(aTHX);
 }
 
 
 MODULE = DynaLoader    PACKAGE = DynaLoader
 
 BOOT:
-    (void)dl_private_init(aTHXo);
+    (void)dl_private_init(aTHX);
 
 
 void *
@@ -130,8 +126,8 @@ dl_load_file(filename,flags=0)
                        DLDEBUG(2,PerlIO_printf(Perl_debug_log," libref=%x\n", nlmHandle));
                        ST(0) = sv_newmortal() ;
                        if (nlmHandle == NULL)
-                       //SaveError(aTHXo_ "load_file:%s",
-                       //        OS_Error_String(aTHXo)) ;
+                       //SaveError(aTHX_ "load_file:%s",
+                       //        OS_Error_String(aTHX)) ;
                        ConsolePrintf("load_file error :  %s\n", mod_name8);
                        else
                        sv_setiv( ST(0), (IV)nlmHandle);
@@ -156,8 +152,8 @@ dl_find_symbol(libhandle, symbolname)
     DLDEBUG(2,PerlIO_printf(Perl_debug_log,"  symbolref = %x\n", RETVAL));
     ST(0) = sv_newmortal() ;
     if (RETVAL == NULL)
-       //SaveError(aTHXo_ "find_symbol:%s",
-       //        OS_Error_String(aTHXo)) ;
+       //SaveError(aTHX_ "find_symbol:%s",
+       //        OS_Error_String(aTHX)) ;
        ConsolePrintf("find_symbol error \n");
     else
        sv_setiv( ST(0), (IV)RETVAL);
@@ -178,7 +174,7 @@ dl_install_xsub(perl_name, symref, filename="$Package")
     DLDEBUG(2,PerlIO_printf(Perl_debug_log,"dl_install_xsub(name=%s, symref=%x)\n",
                      perl_name, symref));
     ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name,
-                                       (void(*)(pTHXo_ CV *))symref,
+                                       (void(*)(pTHX_ CV *))symref,
                                        filename)));
 
 
index c526fbd..43cf81a 100644 (file)
@@ -24,7 +24,7 @@ static void xs_init(pTHX);
 
 EXTERN_C int RunPerl(int argc, char **argv, char **env);
 EXTERN_C void Perl_nw5_init(int *argcp, char ***argvp);
-EXTERN_C void boot_DynaLoader (pTHXo_ CV* cv);
+EXTERN_C void boot_DynaLoader (pTHX_ CV* cv);
 
 
 ClsPerlHost::ClsPerlHost()
@@ -141,23 +141,7 @@ int RunPerl(int argc, char **argv, char **env)
                if(exitstatus == 0)
                {
                        #if defined(TOP_CLONE) && defined(USE_ITHREADS)         // XXXXXX testing
-                               #  ifdef PERL_OBJECT
-                                       CPerlHost *h = new CPerlHost();
-                                       new_perl = perl_clone_using(my_perl, 1,
-                                                                               h->m_pHostperlMem,
-                                                                               h->m_pHostperlMemShared,
-                                                                               h->m_pHostperlMemParse,
-                                                                               h->m_pHostperlEnv,
-                                                                               h->m_pHostperlStdIO,
-                                                                               h->m_pHostperlLIO,
-                                                                               h->m_pHostperlDir,
-                                                                               h->m_pHostperlSock,
-                                                                               h->m_pHostperlProc
-                                                                               );
-                                       CPerlObj *pPerl = (CPerlObj*)new_perl;
-                               #  else
-                                       new_perl = perl_clone(my_perl, 1);
-                               #  endif
+                               new_perl = perl_clone(my_perl, 1);
 
                                exitstatus = perl_run(new_perl);        // Run Perl.
                                PERL_SET_THX(my_perl);
index a701c65..44bb853 100644 (file)
@@ -17,7 +17,7 @@
 
 
 
-#include <perl.h>      // For dTHXo, etc.
+#include <perl.h>      // For dTHX, etc.
 #include "nwpipe.h"
 
 
@@ -211,7 +211,7 @@ nw_stdout()
 long
 nw_telldir(DIR *dirp)
 {
-       dTHXo;
+       dTHX;
        Perl_croak(aTHX_ "telldir function is not implemented");
        return 0l;
 }
@@ -292,7 +292,7 @@ nw_write(int fd, const void *buf, unsigned int cnt)
 char *
 nw_crypt(const char *txt, const char *salt)
 {
-        dTHXo;
+        dTHX;
 
 #ifdef HAVE_DES_FCRYPT
     dTHR;
@@ -752,7 +752,7 @@ nw_rename(const char *oname, const char *newname)
 void
 nw_rewinddir(DIR *dirp)
 {
-       dTHXo;
+       dTHX;
        Perl_croak(aTHX_ "rewinddir function is not implemented");
 }
 
@@ -766,7 +766,7 @@ nw_rewind(FILE *pf)
 void
 nw_seekdir(DIR *dirp, long loc)
 {
-       dTHXo;
+       dTHX;
        Perl_croak(aTHX_ "seekdir function is not implemented");
 }
 
index 5a9ce47..c1a42fe 100644 (file)
 #include "EXTERN.h"
 #include "perl.h"
 
-#if defined(PERL_OBJECT)
-#define NO_XSLOCKS
-#include "XSUB.h"
-#endif
-
 #include "nw5iop.h"
 #include "nw5sck.h"
 #include <fcntl.h>
index e99512a..7ed18bb 100644 (file)
 #include "EXTERN.h"
 #include "perl.h"
 
-#if defined(PERL_OBJECT)
-#define NO_XSLOCKS
-extern CPerlObj* pPerl;
-#include "XSUB.h"
-#endif
-
 //For Thread Local Storage
 #include "win32ish.h"          // For "BOOL", "TRUE" and "FALSE"
 #include "nwtinfo.h"
index b1bf8dd..4fc65d3 100644 (file)
 #include "perl.h"
 
 
-#ifdef PERL_OBJECT
-#define NO_XSLOCKS
-#endif
-
 //CHKSGP
 //Including this is giving premature end-of-file error during compilation
 //#include "XSUB.h"
@@ -102,9 +98,6 @@ perl_alloc(void)
                                   &perlSock,
                                   &perlProc);
        if (my_perl) {
-#ifdef PERL_OBJECT
-           CPerlObj* pPerl = (CPerlObj*)my_perl;
-#endif
                //nw5_internal_host = m_allocList;
        }
     return my_perl;
@@ -188,9 +181,6 @@ perl_alloc_override(struct IPerlMem** ppMem, struct IPerlMem** ppMemShared,
                                   lpProc);
        
        if (my_perl) {
-#ifdef PERL_OBJECT
-           CPerlObj* pPerl = (CPerlObj*)my_perl;
-#endif
            //nw5_internal_host = pHost;
        }
     return my_perl;
index 0b7271d..955e7c1 100644 (file)
@@ -647,7 +647,7 @@ PerlLIOChmod(struct IPerlLIO* piPerl, const char *filename, int pmode)
 int
 PerlLIOChown(struct IPerlLIO* piPerl, const char *filename, uid_t owner, gid_t group)
 {
-       dTHXo;
+       dTHX;
     Perl_croak(aTHX_ "chown not implemented!\n");
        return 0;
 }
@@ -861,7 +861,7 @@ PerlProc_Exit(struct IPerlProc* piPerl, int status)
 int
 PerlProcExecl(struct IPerlProc* piPerl, const char *cmdname, const char *arg0, const char *arg1, const char *arg2, const char *arg3)
 {
-       dTHXo;
+       dTHX;
     Perl_croak(aTHX_ "execl not implemented!\n");
        return 0;
 }
@@ -917,7 +917,7 @@ PerlProcKill(struct IPerlProc* piPerl, int pid, int sig)
 int
 PerlProcKillpg(struct IPerlProc* piPerl, int pid, int sig)
 {
-    dTHXo;
+    dTHX;
     Perl_croak(aTHX_ "killpg not implemented!\n");
     return 0;
 }
@@ -931,7 +931,7 @@ PerlProcPauseProc(struct IPerlProc* piPerl)
 PerlIO*
 PerlProcPopen(struct IPerlProc* piPerl, const char *command, const char *mode)
 {
-    dTHXo;
+    dTHX;
     PERL_FLUSHALL_FOR_CHILD;
 
        return (PerlIO*)nw_Popen((char *)command, (char *)mode, (int *)errno);
@@ -1300,7 +1300,7 @@ PerlSockSetservent(struct IPerlSock* piPerl, int stayopen)
 int
 PerlSockSetsockopt(struct IPerlSock* piPerl, SOCKET s, int level, int optname, const char* optval, int optlen)
 {
-       dTHXo;
+       dTHX;
     Perl_croak(aTHX_ "setsockopt not implemented!\n");
        return 0;
 }
@@ -1320,7 +1320,7 @@ PerlSockSocket(struct IPerlSock* piPerl, int af, int type, int protocol)
 int
 PerlSockSocketpair(struct IPerlSock* piPerl, int domain, int type, int protocol, int* fds)
 {
-    dTHXo;
+    dTHX;
     Perl_croak(aTHX_ "socketpair not implemented!\n");
     return 0;
 }
@@ -1328,7 +1328,7 @@ PerlSockSocketpair(struct IPerlSock* piPerl, int domain, int type, int protocol,
 int
 PerlSockIoctlsocket(struct IPerlSock* piPerl, SOCKET s, long cmd, u_long *argp)
 {
-       dTHXo;
+       dTHX;
     Perl_croak(aTHX_ "ioctlsocket not implemented!\n");
        return 0;
 }
index e67a80c..3abfeb7 100644 (file)
@@ -117,7 +117,6 @@ my @writables = qw(
     global.sym
     pod/perlintern.pod
     pod/perlapi.pod
-    objXSUB.h
     perlapi.h
     perlapi.c
     ext/ByteLoader/byterun.h
index fb0715c..84fdb18 100644 (file)
-If you read this file _as_is_, just ignore the funny characters you\r
-see. It is written in the POD format (see pod/perlpod.pod) which is\r
-specially designed to be readable as is.\r
-\r
-=head1 NAME\r
-\r
-perlwin32 - Perl under Win32\r
-\r
-=head1 SYNOPSIS\r
-\r
-These are instructions for building Perl under Windows (9x, NT and\r
-2000).\r
-\r
-=head1 DESCRIPTION\r
-\r
-Before you start, you should glance through the README file\r
-found in the top-level directory to which the Perl distribution\r
-was extracted.  Make sure you read and understand the terms under\r
-which this software is being distributed.\r
-\r
-Also make sure you read L<BUGS AND CAVEATS> below for the\r
-known limitations of this port.\r
-\r
-The INSTALL file in the perl top-level has much information that is\r
-only relevant to people building Perl on Unix-like systems.  In\r
-particular, you can safely ignore any information that talks about\r
-"Configure".\r
-\r
-You may also want to look at two other options for building\r
-a perl that will work on Windows NT:  the README.cygwin and\r
-README.os2 files, each of which give a different set of rules to\r
-build a Perl that will work on Win32 platforms.  Those two methods\r
-will probably enable you to build a more Unix-compatible perl, but\r
-you will also need to download and use various other build-time and\r
-run-time support software described in those files.\r
-\r
-This set of instructions is meant to describe a so-called "native"\r
-port of Perl to Win32 platforms.  The resulting Perl requires no\r
-additional software to run (other than what came with your operating\r
-system).  Currently, this port is capable of using one of the\r
-following compilers:\r
-\r
-      Borland C++              version 5.02 or later\r
-      Microsoft Visual C++     version 4.2 or later\r
-      Mingw32 with GCC         version 2.95.2 or better\r
-\r
-The last of these is a high quality freeware compiler.  Support\r
-for it is still experimental.  (Older versions of GCC are known\r
-not to work.)\r
-\r
-This port currently supports MakeMaker (the set of modules that\r
-is used to build extensions to perl).  Therefore, you should be\r
-able to build and install most extensions found in the CPAN sites.\r
-See L<Usage Hints for Perl on Win32> below for general hints about this.\r
-\r
-=head2 Setting Up Perl on Win32\r
-\r
-=over 4\r
-\r
-=item Make\r
-\r
-You need a "make" program to build the sources.  If you are using\r
-Visual C++ under Windows NT or 2000, nmake will work.  All other\r
-builds need dmake.\r
-\r
-dmake is a freely available make that has very nice macro features\r
-and parallelability.\r
-\r
-A port of dmake for Windows is available from:\r
-\r
-    http://www.cpan.org/authors/id/GSAR/dmake-4.1pl1-win32.zip\r
-\r
-(This is a fixed version of the original dmake sources obtained from\r
-http://www.wticorp.com/dmake/.  As of version 4.1PL1, the original\r
-sources did not build as shipped and had various other problems.\r
-A patch is included in the above fixed version.)\r
-\r
-Fetch and install dmake somewhere on your path (follow the instructions\r
-in the README.NOW file).\r
-\r
-There exists a minor coexistence problem with dmake and Borland C++\r
-compilers.  Namely, if a distribution has C files named with mixed\r
-case letters, they will be compiled into appropriate .obj-files named\r
-with all lowercase letters, and every time dmake is invoked\r
-to bring files up to date, it will try to recompile such files again.\r
-For example, Tk distribution has a lot of such files, resulting in\r
-needless recompiles everytime dmake is invoked.  To avoid this, you\r
-may use the script "sync_ext.pl" after a successful build.  It is\r
-available in the win32 subdirectory of the Perl source distribution.\r
-\r
-=item Command Shell\r
-\r
-Use the default "cmd" shell that comes with NT.  Some versions of the\r
-popular 4DOS/NT shell have incompatibilities that may cause you trouble.\r
-If the build fails under that shell, try building again with the cmd\r
-shell.\r
-\r
-The nmake Makefile also has known incompatibilities with the\r
-"command.com" shell that comes with Windows 9x.  You will need to\r
-use dmake and makefile.mk to build under Windows 9x.\r
-\r
-The surest way to build it is on Windows NT, using the cmd shell.\r
-\r
-Make sure the path to the build directory does not contain spaces.  The\r
-build usually works in this circumstance, but some tests will fail.\r
-\r
-=item Borland C++\r
-\r
-If you are using the Borland compiler, you will need dmake.\r
-(The make that Borland supplies is seriously crippled and will not\r
-work for MakeMaker builds.)\r
-\r
-See L</"Make"> above.\r
-\r
-=item Microsoft Visual C++\r
-\r
-The nmake that comes with Visual C++ will suffice for building.\r
-You will need to run the VCVARS32.BAT file, usually found somewhere\r
-like C:\MSDEV4.2\BIN.  This will set your build environment.\r
-\r
-You can also use dmake to build using Visual C++; provided, however,\r
-you set OSRELEASE to "microsft" (or whatever the directory name\r
-under which the Visual C dmake configuration lives) in your environment\r
-and edit win32/config.vc to change "make=nmake" into "make=dmake".  The\r
-latter step is only essential if you want to use dmake as your default\r
-make for building extensions using MakeMaker.\r
-\r
-=item Mingw32 with GCC\r
-\r
-GCC-2.95.2 binaries can be downloaded from:\r
-\r
-    ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/\r
-\r
-You also need dmake.  See L</"Make"> above on how to get it.\r
-\r
-The GCC-2.95.2 bundle comes with Mingw32 libraries and headers.\r
-\r
-Make sure you install the binaries that work with MSVCRT.DLL as indicated\r
-in the README for the GCC bundle.  You may need to set up a few environment\r
-variables (usually ran from a batch file).\r
-\r
-There are a couple of problems with the version of gcc-2.95.2-msvcrt.exe\r
-released 7 November 1999:\r
-\r
-=over\r
-\r
-=item *\r
-\r
-It left out a fix for certain command line quotes.  To fix this, be sure\r
-to download and install the file fixes/quote-fix-msvcrt.exe from the above\r
-ftp location.\r
-\r
-=item *\r
-\r
-The definition of the fpos_t type in stdio.h may be wrong.  If your\r
-stdio.h has this problem, you will see an exception when running the\r
-test t/lib/io_xs.t.  To fix this, change the typedef for fpos_t from\r
-"long" to "long long" in the file i386-mingw32msvc/include/stdio.h,\r
-and rebuild.\r
-\r
-=back\r
-\r
-A potentially simpler to install (but probably soon-to-be-outdated) bundle\r
-of the above package with the mentioned fixes already applied is available\r
-here:\r
-\r
-    http://downloads.ActiveState.com/pub/staff/gsar/gcc-2.95.2-msvcrt.zip\r
-    ftp://ftp.ActiveState.com/pub/staff/gsar/gcc-2.95.2-msvcrt.zip\r
-\r
-=back\r
-\r
-=head2 Building\r
-\r
-=over 4\r
-\r
-=item *\r
-\r
-Make sure you are in the "win32" subdirectory under the perl toplevel.\r
-This directory contains a "Makefile" that will work with\r
-versions of nmake that come with Visual C++, and a dmake "makefile.mk"\r
-that will work for all supported compilers.  The defaults in the dmake\r
-makefile are setup to build using the GCC compiler.\r
-\r
-=item *\r
-\r
-Edit the makefile.mk (or Makefile, if you're using nmake) and change \r
-the values of INST_DRV and INST_TOP.   You can also enable various\r
-build flags.  These are explained in the makefiles.\r
-\r
-You will have to make sure that CCTYPE is set correctly and that \r
-CCHOME points to wherever you installed your compiler.\r
-\r
-The default value for CCHOME in the makefiles for Visual C++\r
-may not be correct for some versions.  Make sure the default exists\r
-and is valid.\r
-\r
-If you have either the source or a library that contains des_fcrypt(),\r
-enable the appropriate option in the makefile.  des_fcrypt() is not\r
-bundled with the distribution due to US Government restrictions\r
-on the export of cryptographic software.  Nevertheless, this routine\r
-is part of the "libdes" library (written by Eric Young) which is widely\r
-available worldwide, usually along with SSLeay (for example, \r
-"ftp://ftp.funet.fi/pub/crypt/mirrors/dsi/libdes/").  Set CRYPT_SRC to the\r
-name of the file that implements des_fcrypt().  Alternatively, if\r
-you have built a library that contains des_fcrypt(), you can set\r
-CRYPT_LIB to point to the library name.  The location above contains\r
-many versions of the "libdes" library, all with slightly different\r
-implementations of des_fcrypt().  Older versions have a single,\r
-self-contained file (fcrypt.c) that implements crypt(), so they may be\r
-easier to use.  A patch against the fcrypt.c found in libdes-3.06 is\r
-in des_fcrypt.patch.\r
-\r
-An easier alternative may be to get the pre-patched and ready-to-use\r
-fcrypt.c that can be found here:\r
-\r
-    http://downloads.ActiveState.com/pub/staff/gsar/fcrypt.c\r
-    ftp://ftp.ActiveState.com/pub/staff/gsar/fcrypt.c\r
-\r
-Perl will also build without des_fcrypt(), but the crypt() builtin will\r
-fail at run time.\r
-\r
-Be sure to read the instructions near the top of the makefiles carefully.\r
-\r
-=item *\r
-\r
-Type "dmake" (or "nmake" if you are using that make).\r
-\r
-This should build everything.  Specifically, it will create perl.exe,\r
-perl56.dll at the perl toplevel, and various other extension dll's\r
-under the lib\auto directory.  If the build fails for any reason, make\r
-sure you have done the previous steps correctly.\r
-\r
-=back\r
-\r
-=head2 Testing Perl on Win32\r
-\r
-Type "dmake test" (or "nmake test").  This will run most of the tests from\r
-the testsuite (many tests will be skipped).\r
-\r
-There should be no test failures when running under Windows NT 4.0 or\r
-Windows 2000.  Many tests I<will> fail under Windows 9x due to the inferior\r
-command shell.\r
-\r
-Some test failures may occur if you use a command shell other than the\r
-native "cmd.exe", or if you are building from a path that contains\r
-spaces.  So don't do that.\r
-\r
-If you are running the tests from a emacs shell window, you may see\r
-failures in op/stat.t.  Run "dmake test-notty" in that case.\r
-\r
-If you're using the Borland compiler, you may see a failure in op/taint.t\r
-arising from the inability to find the Borland Runtime DLLs on the system\r
-default path.  You will need to copy the DLLs reported by the messages\r
-from where Borland chose to install it, into the Windows system directory\r
-(usually somewhere like C:\WINNT\SYSTEM32) and rerun the test.\r
-\r
-If you're using Borland compiler versions 5.2 and below, you may run into\r
-problems finding the correct header files when building extensions.  For\r
-example, building the "Tk" extension may fail because both perl and Tk\r
-contain a header file called "patchlevel.h".  The latest Borland compiler\r
-(v5.5) is free of this misbehaviour, and it even supports an\r
-option -VI- for backward (bugward) compatibility for using the old Borland\r
-search algorithm  to locate header files.\r
-\r
-Please report any other failures as described under L<BUGS AND CAVEATS>.\r
-\r
-=head2 Installation of Perl on Win32\r
-\r
-Type "dmake install" (or "nmake install").  This will put the newly\r
-built perl and the libraries under whatever C<INST_TOP> points to in the\r
-Makefile.  It will also install the pod documentation under\r
-C<$INST_TOP\$VERSION\lib\pod> and HTML versions of the same under\r
-C<$INST_TOP\$VERSION\lib\pod\html>.  To use the Perl you just installed,\r
-you will need to add two components to your PATH environment variable,\r
-C<$INST_TOP\$VERSION\bin> and C<$INST_TOP\$VERSION\bin\$ARCHNAME>.\r
-For example:\r
-\r
-    set PATH c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH%\r
-\r
-If you opt to comment out INST_VER and INST_ARCH in the makefiles, the\r
-installation structure is much simpler.  In that case, it will be\r
-sufficient to add a single entry to the path, for instance:\r
-\r
-    set PATH c:\perl\bin;%PATH%\r
-\r
-=head2 Usage Hints for Perl on Win32\r
-\r
-=over 4\r
-\r
-=item Environment Variables\r
-\r
-The installation paths that you set during the build get compiled\r
-into perl, so you don't have to do anything additional to start\r
-using that perl (except add its location to your PATH variable).\r
-\r
-If you put extensions in unusual places, you can set PERL5LIB\r
-to a list of paths separated by semicolons where you want perl\r
-to look for libraries.  Look for descriptions of other environment\r
-variables you can set in L<perlrun>.\r
-\r
-You can also control the shell that perl uses to run system() and\r
-backtick commands via PERL5SHELL.  See L<perlrun>.\r
-\r
-Perl does not depend on the registry, but it can look up certain default\r
-values if you choose to put them there.  Perl attempts to read entries from\r
-C<HKEY_CURRENT_USER\Software\Perl> and C<HKEY_LOCAL_MACHINE\Software\Perl>.\r
-Entries in the former override entries in the latter.  One or more of the\r
-following entries (of type REG_SZ or REG_EXPAND_SZ) may be set:\r
-\r
-    lib-$]             version-specific standard library path to add to @INC\r
-    lib                        standard library path to add to @INC\r
-    sitelib-$]         version-specific site library path to add to @INC\r
-    sitelib            site library path to add to @INC\r
-    vendorlib-$]       version-specific vendor library path to add to @INC\r
-    vendorlib          vendor library path to add to @INC\r
-    PERL*              fallback for all %ENV lookups that begin with "PERL"\r
-\r
-Note the C<$]> in the above is not literal.  Substitute whatever version\r
-of perl you want to honor that entry, e.g. C<5.6.0>.  Paths must be\r
-separated with semicolons, as usual on win32.\r
-\r
-=item File Globbing\r
-\r
-By default, perl handles file globbing using the File::Glob extension,\r
-which provides portable globbing.\r
-\r
-If you want perl to use globbing that emulates the quirks of DOS\r
-filename conventions, you might want to consider using File::DosGlob\r
-to override the internal glob() implementation.  See L<File::DosGlob> for\r
-details.\r
-\r
-=item Using perl from the command line\r
-\r
-If you are accustomed to using perl from various command-line\r
-shells found in UNIX environments, you will be less than pleased\r
-with what Windows offers by way of a command shell.\r
-\r
-The crucial thing to understand about the Windows environment is that\r
-the command line you type in is processed twice before Perl sees it.\r
-First, your command shell (usually CMD.EXE on Windows NT, and\r
-COMMAND.COM on Windows 9x) preprocesses the command line, to handle\r
-redirection, environment variable expansion, and location of the\r
-executable to run. Then, the perl executable splits the remaining\r
-command line into individual arguments, using the C runtime library\r
-upon which Perl was built.\r
-\r
-It is particularly important to note that neither the shell nor the C\r
-runtime do any wildcard expansions of command-line arguments (so\r
-wildcards need not be quoted).  Also, the quoting behaviours of the\r
-shell and the C runtime are rudimentary at best (and may, if you are\r
-using a non-standard shell, be inconsistent).  The only (useful) quote\r
-character is the double quote (").  It can be used to protect spaces\r
-and other special characters in arguments.\r
-\r
-The Windows NT documentation has almost no description of how the\r
-quoting rules are implemented, but here are some general observations\r
-based on experiments: The C runtime breaks arguments at spaces and\r
-passes them to programs in argc/argv.  Double quotes can be used to\r
-prevent arguments with spaces in them from being split up.  You can\r
-put a double quote in an argument by escaping it with a backslash and\r
-enclosing the whole argument within double quotes.  The backslash and\r
-the pair of double quotes surrounding the argument will be stripped by\r
-the C runtime.\r
-\r
-The file redirection characters "<", ">", and "|" can be quoted by\r
-double quotes (although there are suggestions that this may not always\r
-be true).  Single quotes are not treated as quotes by the shell or\r
-the C runtime, they don't get stripped by the shell (just to make\r
-this type of quoting completely useless).  The caret "^" has also\r
-been observed to behave as a quoting character, but this appears\r
-to be a shell feature, and the caret is not stripped from the command\r
-line, so Perl still sees it (and the C runtime phase does not treat\r
-the caret as a quote character).\r
-\r
-Here are some examples of usage of the "cmd" shell:\r
-\r
-This prints two doublequotes:\r
-\r
-    perl -e "print '\"\"' "\r
-\r
-This does the same:\r
-\r
-    perl -e "print \"\\\"\\\"\" "\r
-\r
-This prints "bar" and writes "foo" to the file "blurch":\r
-\r
-    perl -e "print 'foo'; print STDERR 'bar'" > blurch\r
-\r
-This prints "foo" ("bar" disappears into nowhereland):\r
-\r
-    perl -e "print 'foo'; print STDERR 'bar'" 2> nul\r
-\r
-This prints "bar" and writes "foo" into the file "blurch":\r
-\r
-    perl -e "print 'foo'; print STDERR 'bar'" 1> blurch\r
-\r
-This pipes "foo" to the "less" pager and prints "bar" on the console:\r
-\r
-    perl -e "print 'foo'; print STDERR 'bar'" | less\r
-\r
-This pipes "foo\nbar\n" to the less pager:\r
-\r
-    perl -le "print 'foo'; print STDERR 'bar'" 2>&1 | less\r
-\r
-This pipes "foo" to the pager and writes "bar" in the file "blurch":\r
-\r
-    perl -e "print 'foo'; print STDERR 'bar'" 2> blurch | less\r
-\r
-\r
-Discovering the usefulness of the "command.com" shell on Windows 9x\r
-is left as an exercise to the reader :)\r
-\r
-One particularly pernicious problem with the 4NT command shell for\r
-Windows NT is that it (nearly) always treats a % character as indicating\r
-that environment variable expansion is needed.  Under this shell, it is\r
-therefore important to always double any % characters which you want\r
-Perl to see (for example, for hash variables), even when they are\r
-quoted.\r
-\r
-=item Building Extensions\r
-\r
-The Comprehensive Perl Archive Network (CPAN) offers a wealth\r
-of extensions, some of which require a C compiler to build.\r
-Look in http://www.cpan.org/ for more information on CPAN.\r
-\r
-Note that not all of the extensions available from CPAN may work\r
-in the Win32 environment; you should check the information at\r
-http://testers.cpan.org/ before investing too much effort into\r
-porting modules that don't readily build.\r
-\r
-Most extensions (whether they require a C compiler or not) can\r
-be built, tested and installed with the standard mantra:\r
-\r
-    perl Makefile.PL\r
-    $MAKE\r
-    $MAKE test\r
-    $MAKE install\r
-\r
-where $MAKE is whatever 'make' program you have configured perl to\r
-use.  Use "perl -V:make" to find out what this is.  Some extensions\r
-may not provide a testsuite (so "$MAKE test" may not do anything or\r
-fail), but most serious ones do.\r
-\r
-It is important that you use a supported 'make' program, and\r
-ensure Config.pm knows about it.  If you don't have nmake, you can\r
-either get dmake from the location mentioned earlier or get an\r
-old version of nmake reportedly available from:\r
-\r
-    ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe\r
-\r
-Another option is to use the make written in Perl, available from\r
-CPAN:\r
-\r
-    http://www.cpan.org/authors/id/NI-S/Make-0.03.tar.gz\r
-\r
-You may also use dmake.  See L</"Make"> above on how to get it.\r
-\r
-Note that MakeMaker actually emits makefiles with different syntax\r
-depending on what 'make' it thinks you are using.  Therefore, it is\r
-important that one of the following values appears in Config.pm:\r
-\r
-    make='nmake'       # MakeMaker emits nmake syntax\r
-    make='dmake'       # MakeMaker emits dmake syntax\r
-    any other value    # MakeMaker emits generic make syntax\r
-                           (e.g GNU make, or Perl make)\r
-\r
-If the value doesn't match the 'make' program you want to use,\r
-edit Config.pm to fix it.\r
-\r
-If a module implements XSUBs, you will need one of the supported\r
-C compilers.  You must make sure you have set up the environment for\r
-the compiler for command-line compilation.\r
-\r
-If a module does not build for some reason, look carefully for\r
-why it failed, and report problems to the module author.  If\r
-it looks like the extension building support is at fault, report\r
-that with full details of how the build failed using the perlbug\r
-utility.\r
-\r
-=item Command-line Wildcard Expansion\r
-\r
-The default command shells on DOS descendant operating systems (such\r
-as they are) usually do not expand wildcard arguments supplied to\r
-programs.  They consider it the application's job to handle that.\r
-This is commonly achieved by linking the application (in our case,\r
-perl) with startup code that the C runtime libraries usually provide.\r
-However, doing that results in incompatible perl versions (since the\r
-behavior of the argv expansion code differs depending on the\r
-compiler, and it is even buggy on some compilers).  Besides, it may\r
-be a source of frustration if you use such a perl binary with an\r
-alternate shell that *does* expand wildcards.\r
-\r
-Instead, the following solution works rather well. The nice things\r
-about it are 1) you can start using it right away; 2) it is more \r
-powerful, because it will do the right thing with a pattern like\r
-*/*/*.c; 3) you can decide whether you do/don't want to use it; and\r
-4) you can extend the method to add any customizations (or even \r
-entirely different kinds of wildcard expansion).\r
-\r
-       C:\> copy con c:\perl\lib\Wild.pm\r
-       # Wild.pm - emulate shell @ARGV expansion on shells that don't\r
-       use File::DosGlob;\r
-       @ARGV = map {\r
-                     my @g = File::DosGlob::glob($_) if /[*?]/;\r
-                     @g ? @g : $_;\r
-                   } @ARGV;\r
-       1;\r
-       ^Z\r
-       C:\> set PERL5OPT=-MWild\r
-       C:\> perl -le "for (@ARGV) { print }" */*/perl*.c\r
-       p4view/perl/perl.c\r
-       p4view/perl/perlio.c\r
-       p4view/perl/perly.c\r
-       perl5.005/win32/perlglob.c\r
-       perl5.005/win32/perllib.c\r
-       perl5.005/win32/perlglob.c\r
-       perl5.005/win32/perllib.c\r
-       perl5.005/win32/perlglob.c\r
-       perl5.005/win32/perllib.c\r
-\r
-Note there are two distinct steps there: 1) You'll have to create\r
-Wild.pm and put it in your perl lib directory. 2) You'll need to\r
-set the PERL5OPT environment variable.  If you want argv expansion\r
-to be the default, just set PERL5OPT in your default startup\r
-environment.\r
-\r
-If you are using the Visual C compiler, you can get the C runtime's\r
-command line wildcard expansion built into perl binary.  The resulting\r
-binary will always expand unquoted command lines, which may not be\r
-what you want if you use a shell that does that for you.  The expansion\r
-done is also somewhat less powerful than the approach suggested above.\r
-\r
-=item Win32 Specific Extensions\r
-\r
-A number of extensions specific to the Win32 platform are available\r
-from CPAN.  You may find that many of these extensions are meant to\r
-be used under the Activeware port of Perl, which used to be the only\r
-native port for the Win32 platform.  Since the Activeware port does not\r
-have adequate support for Perl's extension building tools, these\r
-extensions typically do not support those tools either and, therefore,\r
-cannot be built using the generic steps shown in the previous section.\r
-\r
-To ensure smooth transitioning of existing code that uses the\r
-ActiveState port, there is a bundle of Win32 extensions that contains\r
-all of the ActiveState extensions and most other Win32 extensions from\r
-CPAN in source form, along with many added bugfixes, and with MakeMaker\r
-support.  This bundle is available at:\r
-\r
-   http://www.cpan.org/authors/id/GSAR/libwin32-0.151.zip\r
-\r
-See the README in that distribution for building and installation\r
-instructions.  Look for later versions that may be available at the\r
-same location.\r
-\r
-=item Running Perl Scripts\r
-\r
-Perl scripts on UNIX use the "#!" (a.k.a "shebang") line to\r
-indicate to the OS that it should execute the file using perl.\r
-Win32 has no comparable means to indicate arbitrary files are\r
-executables.\r
-\r
-Instead, all available methods to execute plain text files on\r
-Win32 rely on the file "extension".  There are three methods\r
-to use this to execute perl scripts:\r
-\r
-=over 8\r
-\r
-=item 1\r
-\r
-There is a facility called "file extension associations" that will\r
-work in Windows NT 4.0.  This can be manipulated via the two\r
-commands "assoc" and "ftype" that come standard with Windows NT\r
-4.0.  Type "ftype /?" for a complete example of how to set this\r
-up for perl scripts (Say what?  You thought Windows NT wasn't\r
-perl-ready? :).\r
-\r
-=item 2\r
-\r
-Since file associations don't work everywhere, and there are\r
-reportedly bugs with file associations where it does work, the\r
-old method of wrapping the perl script to make it look like a\r
-regular batch file to the OS, may be used.  The install process\r
-makes available the "pl2bat.bat" script which can be used to wrap\r
-perl scripts into batch files.  For example:\r
-\r
-       pl2bat foo.pl\r
-\r
-will create the file "FOO.BAT".  Note "pl2bat" strips any\r
-.pl suffix and adds a .bat suffix to the generated file.\r
-\r
-If you use the 4DOS/NT or similar command shell, note that\r
-"pl2bat" uses the "%*" variable in the generated batch file to\r
-refer to all the command line arguments, so you may need to make\r
-sure that construct works in batch files.  As of this writing,\r
-4DOS/NT users will need a "ParameterChar = *" statement in their\r
-4NT.INI file or will need to execute "setdos /p*" in the 4DOS/NT\r
-startup file to enable this to work.\r
-\r
-=item 3\r
-\r
-Using "pl2bat" has a few problems:  the file name gets changed,\r
-so scripts that rely on C<$0> to find what they must do may not\r
-run properly; running "pl2bat" replicates the contents of the\r
-original script, and so this process can be maintenance intensive\r
-if the originals get updated often.  A different approach that\r
-avoids both problems is possible.\r
-\r
-A script called "runperl.bat" is available that can be copied\r
-to any filename (along with the .bat suffix).  For example,\r
-if you call it "foo.bat", it will run the file "foo" when it is\r
-executed.  Since you can run batch files on Win32 platforms simply\r
-by typing the name (without the extension), this effectively\r
-runs the file "foo", when you type either "foo" or "foo.bat".\r
-With this method, "foo.bat" can even be in a different location\r
-than the file "foo", as long as "foo" is available somewhere on\r
-the PATH.  If your scripts are on a filesystem that allows symbolic\r
-links, you can even avoid copying "runperl.bat".\r
-\r
-Here's a diversion:  copy "runperl.bat" to "runperl", and type\r
-"runperl".  Explain the observed behavior, or lack thereof. :)\r
-Hint: .gnidnats llits er'uoy fi ,"lrepnur" eteled :tniH\r
-\r
-=back\r
-\r
-=item Miscellaneous Things\r
-\r
-A full set of HTML documentation is installed, so you should be\r
-able to use it if you have a web browser installed on your\r
-system.\r
-\r
-C<perldoc> is also a useful tool for browsing information contained\r
-in the documentation, especially in conjunction with a pager\r
-like C<less> (recent versions of which have Win32 support).  You may\r
-have to set the PAGER environment variable to use a specific pager.\r
-"perldoc -f foo" will print information about the perl operator\r
-"foo".\r
-\r
-If you find bugs in perl, you can run C<perlbug> to create a\r
-bug report (you may have to send it manually if C<perlbug> cannot\r
-find a mailer on your system).\r
-\r
-=back\r
-\r
-=head1 BUGS AND CAVEATS\r
-\r
-Norton AntiVirus interferes with the build process, particularly if \r
-set to "AutoProtect, All Files, when Opened". Unlike large applications \r
-the perl build process opens and modifies a lot of files. Having the  \r
-the AntiVirus scan each and every one slows build the process significantly.\r
-Worse, with PERLIO=stdio the build process fails with peculiar messages\r
-as the virus checker interacts badly with miniperl.exe writing configure \r
-files (it seems to either catch file part written and treat it as suspicious,\r
-or virus checker may have it "locked" in a way which inhibits miniperl\r
-updating it). The build does complete with \r
-\r
-   set PERLIO=perlio\r
-\r
-but that may be just luck. Other AntiVirus software may have similar issues.\r
-\r
-Some of the built-in functions do not act exactly as documented in\r
-L<perlfunc>, and a few are not implemented at all.  To avoid\r
-surprises, particularly if you have had prior exposure to Perl\r
-in other operating environments or if you intend to write code\r
-that will be portable to other environments.  See L<perlport>\r
-for a reasonably definitive list of these differences.\r
-\r
-Not all extensions available from CPAN may build or work properly\r
-in the Win32 environment.  See L</"Building Extensions">.\r
-\r
-Most C<socket()> related calls are supported, but they may not\r
-behave as on Unix platforms.  See L<perlport> for the full list.\r
-\r
-Signal handling may not behave as on Unix platforms (where it\r
-doesn't exactly "behave", either :).  For instance, calling C<die()>\r
-or C<exit()> from signal handlers will cause an exception, since most\r
-implementations of C<signal()> on Win32 are severely crippled.\r
-Thus, signals may work only for simple things like setting a flag\r
-variable in the handler.  Using signals under this port should\r
-currently be considered unsupported.\r
-\r
-Please send detailed descriptions of any problems and solutions that \r
-you may find to <F<perlbug@perl.com>>, along with the output produced\r
-by C<perl -V>.\r
-\r
-=head1 AUTHORS\r
-\r
-=over 4\r
-\r
-=item Gary Ng E<lt>71564.1743@CompuServe.COME<gt>\r
-\r
-=item Gurusamy Sarathy E<lt>gsar@activestate.comE<gt>\r
-\r
-=item Nick Ing-Simmons E<lt>nick@ing-simmons.netE<gt>\r
-\r
-=back\r
-\r
-This document is maintained by Gurusamy Sarathy.\r
-\r
-=head1 SEE ALSO\r
-\r
-L<perl>\r
-\r
-=head1 HISTORY\r
-\r
-This port was originally contributed by Gary Ng around 5.003_24,\r
-and borrowed from the Hip Communications port that was available\r
-at the time.  Various people have made numerous and sundry hacks\r
-since then.\r
-\r
-Borland support was added in 5.004_01 (Gurusamy Sarathy).\r
-\r
-GCC/mingw32 support was added in 5.005 (Nick Ing-Simmons).\r
-\r
-Support for PERL_OBJECT was added in 5.005 (ActiveState Tool Corp).\r
-\r
-Support for fork() emulation was added in 5.6 (ActiveState Tool Corp).\r
-\r
-Win9x support was added in 5.6 (Benjamin Stuhl).\r
-\r
-Last updated: 1 April 2001\r
-\r
-=cut\r
+If you read this file _as_is_, just ignore the funny characters you
+see. It is written in the POD format (see pod/perlpod.pod) which is
+specially designed to be readable as is.
+
+=head1 NAME
+
+perlwin32 - Perl under Win32
+
+=head1 SYNOPSIS
+
+These are instructions for building Perl under Windows (9x, NT and
+2000).
+
+=head1 DESCRIPTION
+
+Before you start, you should glance through the README file
+found in the top-level directory to which the Perl distribution
+was extracted.  Make sure you read and understand the terms under
+which this software is being distributed.
+
+Also make sure you read L<BUGS AND CAVEATS> below for the
+known limitations of this port.
+
+The INSTALL file in the perl top-level has much information that is
+only relevant to people building Perl on Unix-like systems.  In
+particular, you can safely ignore any information that talks about
+"Configure".
+
+You may also want to look at two other options for building
+a perl that will work on Windows NT:  the README.cygwin and
+README.os2 files, each of which give a different set of rules to
+build a Perl that will work on Win32 platforms.  Those two methods
+will probably enable you to build a more Unix-compatible perl, but
+you will also need to download and use various other build-time and
+run-time support software described in those files.
+
+This set of instructions is meant to describe a so-called "native"
+port of Perl to Win32 platforms.  The resulting Perl requires no
+additional software to run (other than what came with your operating
+system).  Currently, this port is capable of using one of the
+following compilers:
+
+      Borland C++              version 5.02 or later
+      Microsoft Visual C++     version 4.2 or later
+      Mingw32 with GCC         version 2.95.2 or better
+
+The last of these is a high quality freeware compiler.  Support
+for it is still experimental.  (Older versions of GCC are known
+not to work.)
+
+This port currently supports MakeMaker (the set of modules that
+is used to build extensions to perl).  Therefore, you should be
+able to build and install most extensions found in the CPAN sites.
+See L<Usage Hints for Perl on Win32> below for general hints about this.
+
+=head2 Setting Up Perl on Win32
+
+=over 4
+
+=item Make
+
+You need a "make" program to build the sources.  If you are using
+Visual C++ under Windows NT or 2000, nmake will work.  All other
+builds need dmake.
+
+dmake is a freely available make that has very nice macro features
+and parallelability.
+
+A port of dmake for Windows is available from:
+
+    http://www.cpan.org/authors/id/GSAR/dmake-4.1pl1-win32.zip
+
+(This is a fixed version of the original dmake sources obtained from
+http://www.wticorp.com/dmake/.  As of version 4.1PL1, the original
+sources did not build as shipped and had various other problems.
+A patch is included in the above fixed version.)
+
+Fetch and install dmake somewhere on your path (follow the instructions
+in the README.NOW file).
+
+There exists a minor coexistence problem with dmake and Borland C++
+compilers.  Namely, if a distribution has C files named with mixed
+case letters, they will be compiled into appropriate .obj-files named
+with all lowercase letters, and every time dmake is invoked
+to bring files up to date, it will try to recompile such files again.
+For example, Tk distribution has a lot of such files, resulting in
+needless recompiles everytime dmake is invoked.  To avoid this, you
+may use the script "sync_ext.pl" after a successful build.  It is
+available in the win32 subdirectory of the Perl source distribution.
+
+=item Command Shell
+
+Use the default "cmd" shell that comes with NT.  Some versions of the
+popular 4DOS/NT shell have incompatibilities that may cause you trouble.
+If the build fails under that shell, try building again with the cmd
+shell.
+
+The nmake Makefile also has known incompatibilities with the
+"command.com" shell that comes with Windows 9x.  You will need to
+use dmake and makefile.mk to build under Windows 9x.
+
+The surest way to build it is on Windows NT, using the cmd shell.
+
+Make sure the path to the build directory does not contain spaces.  The
+build usually works in this circumstance, but some tests will fail.
+
+=item Borland C++
+
+If you are using the Borland compiler, you will need dmake.
+(The make that Borland supplies is seriously crippled and will not
+work for MakeMaker builds.)
+
+See L</"Make"> above.
+
+=item Microsoft Visual C++
+
+The nmake that comes with Visual C++ will suffice for building.
+You will need to run the VCVARS32.BAT file, usually found somewhere
+like C:\MSDEV4.2\BIN.  This will set your build environment.
+
+You can also use dmake to build using Visual C++; provided, however,
+you set OSRELEASE to "microsft" (or whatever the directory name
+under which the Visual C dmake configuration lives) in your environment
+and edit win32/config.vc to change "make=nmake" into "make=dmake".  The
+latter step is only essential if you want to use dmake as your default
+make for building extensions using MakeMaker.
+
+=item Mingw32 with GCC
+
+GCC-2.95.2 binaries can be downloaded from:
+
+    ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/
+
+You also need dmake.  See L</"Make"> above on how to get it.
+
+The GCC-2.95.2 bundle comes with Mingw32 libraries and headers.
+
+Make sure you install the binaries that work with MSVCRT.DLL as indicated
+in the README for the GCC bundle.  You may need to set up a few environment
+variables (usually ran from a batch file).
+
+There are a couple of problems with the version of gcc-2.95.2-msvcrt.exe
+released 7 November 1999:
+
+=over
+
+=item *
+
+It left out a fix for certain command line quotes.  To fix this, be sure
+to download and install the file fixes/quote-fix-msvcrt.exe from the above
+ftp location.
+
+=item *
+
+The definition of the fpos_t type in stdio.h may be wrong.  If your
+stdio.h has this problem, you will see an exception when running the
+test t/lib/io_xs.t.  To fix this, change the typedef for fpos_t from
+"long" to "long long" in the file i386-mingw32msvc/include/stdio.h,
+and rebuild.
+
+=back
+
+A potentially simpler to install (but probably soon-to-be-outdated) bundle
+of the above package with the mentioned fixes already applied is available
+here:
+
+    http://downloads.ActiveState.com/pub/staff/gsar/gcc-2.95.2-msvcrt.zip
+    ftp://ftp.ActiveState.com/pub/staff/gsar/gcc-2.95.2-msvcrt.zip
+
+=back
+
+=head2 Building
+
+=over 4
+
+=item *
+
+Make sure you are in the "win32" subdirectory under the perl toplevel.
+This directory contains a "Makefile" that will work with
+versions of nmake that come with Visual C++, and a dmake "makefile.mk"
+that will work for all supported compilers.  The defaults in the dmake
+makefile are setup to build using the GCC compiler.
+
+=item *
+
+Edit the makefile.mk (or Makefile, if you're using nmake) and change 
+the values of INST_DRV and INST_TOP.   You can also enable various
+build flags.  These are explained in the makefiles.
+
+You will have to make sure that CCTYPE is set correctly and that 
+CCHOME points to wherever you installed your compiler.
+
+The default value for CCHOME in the makefiles for Visual C++
+may not be correct for some versions.  Make sure the default exists
+and is valid.
+
+If you have either the source or a library that contains des_fcrypt(),
+enable the appropriate option in the makefile.  des_fcrypt() is not
+bundled with the distribution due to US Government restrictions
+on the export of cryptographic software.  Nevertheless, this routine
+is part of the "libdes" library (written by Eric Young) which is widely
+available worldwide, usually along with SSLeay (for example, 
+"ftp://ftp.funet.fi/pub/crypt/mirrors/dsi/libdes/").  Set CRYPT_SRC to the
+name of the file that implements des_fcrypt().  Alternatively, if
+you have built a library that contains des_fcrypt(), you can set
+CRYPT_LIB to point to the library name.  The location above contains
+many versions of the "libdes" library, all with slightly different
+implementations of des_fcrypt().  Older versions have a single,
+self-contained file (fcrypt.c) that implements crypt(), so they may be
+easier to use.  A patch against the fcrypt.c found in libdes-3.06 is
+in des_fcrypt.patch.
+
+An easier alternative may be to get the pre-patched and ready-to-use
+fcrypt.c that can be found here:
+
+    http://downloads.ActiveState.com/pub/staff/gsar/fcrypt.c
+    ftp://ftp.ActiveState.com/pub/staff/gsar/fcrypt.c
+
+Perl will also build without des_fcrypt(), but the crypt() builtin will
+fail at run time.
+
+Be sure to read the instructions near the top of the makefiles carefully.
+
+=item *
+
+Type "dmake" (or "nmake" if you are using that make).
+
+This should build everything.  Specifically, it will create perl.exe,
+perl56.dll at the perl toplevel, and various other extension dll's
+under the lib\auto directory.  If the build fails for any reason, make
+sure you have done the previous steps correctly.
+
+=back
+
+=head2 Testing Perl on Win32
+
+Type "dmake test" (or "nmake test").  This will run most of the tests from
+the testsuite (many tests will be skipped).
+
+There should be no test failures when running under Windows NT 4.0 or
+Windows 2000.  Many tests I<will> fail under Windows 9x due to the inferior
+command shell.
+
+Some test failures may occur if you use a command shell other than the
+native "cmd.exe", or if you are building from a path that contains
+spaces.  So don't do that.
+
+If you are running the tests from a emacs shell window, you may see
+failures in op/stat.t.  Run "dmake test-notty" in that case.
+
+If you're using the Borland compiler, you may see a failure in op/taint.t
+arising from the inability to find the Borland Runtime DLLs on the system
+default path.  You will need to copy the DLLs reported by the messages
+from where Borland chose to install it, into the Windows system directory
+(usually somewhere like C:\WINNT\SYSTEM32) and rerun the test.
+
+If you're using Borland compiler versions 5.2 and below, you may run into
+problems finding the correct header files when building extensions.  For
+example, building the "Tk" extension may fail because both perl and Tk
+contain a header file called "patchlevel.h".  The latest Borland compiler
+(v5.5) is free of this misbehaviour, and it even supports an
+option -VI- for backward (bugward) compatibility for using the old Borland
+search algorithm  to locate header files.
+
+Please report any other failures as described under L<BUGS AND CAVEATS>.
+
+=head2 Installation of Perl on Win32
+
+Type "dmake install" (or "nmake install").  This will put the newly
+built perl and the libraries under whatever C<INST_TOP> points to in the
+Makefile.  It will also install the pod documentation under
+C<$INST_TOP\$VERSION\lib\pod> and HTML versions of the same under
+C<$INST_TOP\$VERSION\lib\pod\html>.  To use the Perl you just installed,
+you will need to add two components to your PATH environment variable,
+C<$INST_TOP\$VERSION\bin> and C<$INST_TOP\$VERSION\bin\$ARCHNAME>.
+For example:
+
+    set PATH c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH%
+
+If you opt to comment out INST_VER and INST_ARCH in the makefiles, the
+installation structure is much simpler.  In that case, it will be
+sufficient to add a single entry to the path, for instance:
+
+    set PATH c:\perl\bin;%PATH%
+
+=head2 Usage Hints for Perl on Win32
+
+=over 4
+
+=item Environment Variables
+
+The installation paths that you set during the build get compiled
+into perl, so you don't have to do anything additional to start
+using that perl (except add its location to your PATH variable).
+
+If you put extensions in unusual places, you can set PERL5LIB
+to a list of paths separated by semicolons where you want perl
+to look for libraries.  Look for descriptions of other environment
+variables you can set in L<perlrun>.
+
+You can also control the shell that perl uses to run system() and
+backtick commands via PERL5SHELL.  See L<perlrun>.
+
+Perl does not depend on the registry, but it can look up certain default
+values if you choose to put them there.  Perl attempts to read entries from
+C<HKEY_CURRENT_USER\Software\Perl> and C<HKEY_LOCAL_MACHINE\Software\Perl>.
+Entries in the former override entries in the latter.  One or more of the
+following entries (of type REG_SZ or REG_EXPAND_SZ) may be set:
+
+    lib-$]             version-specific standard library path to add to @INC
+    lib                        standard library path to add to @INC
+    sitelib-$]         version-specific site library path to add to @INC
+    sitelib            site library path to add to @INC
+    vendorlib-$]       version-specific vendor library path to add to @INC
+    vendorlib          vendor library path to add to @INC
+    PERL*              fallback for all %ENV lookups that begin with "PERL"
+
+Note the C<$]> in the above is not literal.  Substitute whatever version
+of perl you want to honor that entry, e.g. C<5.6.0>.  Paths must be
+separated with semicolons, as usual on win32.
+
+=item File Globbing
+
+By default, perl handles file globbing using the File::Glob extension,
+which provides portable globbing.
+
+If you want perl to use globbing that emulates the quirks of DOS
+filename conventions, you might want to consider using File::DosGlob
+to override the internal glob() implementation.  See L<File::DosGlob> for
+details.
+
+=item Using perl from the command line
+
+If you are accustomed to using perl from various command-line
+shells found in UNIX environments, you will be less than pleased
+with what Windows offers by way of a command shell.
+
+The crucial thing to understand about the Windows environment is that
+the command line you type in is processed twice before Perl sees it.
+First, your command shell (usually CMD.EXE on Windows NT, and
+COMMAND.COM on Windows 9x) preprocesses the command line, to handle
+redirection, environment variable expansion, and location of the
+executable to run. Then, the perl executable splits the remaining
+command line into individual arguments, using the C runtime library
+upon which Perl was built.
+
+It is particularly important to note that neither the shell nor the C
+runtime do any wildcard expansions of command-line arguments (so
+wildcards need not be quoted).  Also, the quoting behaviours of the
+shell and the C runtime are rudimentary at best (and may, if you are
+using a non-standard shell, be inconsistent).  The only (useful) quote
+character is the double quote (").  It can be used to protect spaces
+and other special characters in arguments.
+
+The Windows NT documentation has almost no description of how the
+quoting rules are implemented, but here are some general observations
+based on experiments: The C runtime breaks arguments at spaces and
+passes them to programs in argc/argv.  Double quotes can be used to
+prevent arguments with spaces in them from being split up.  You can
+put a double quote in an argument by escaping it with a backslash and
+enclosing the whole argument within double quotes.  The backslash and
+the pair of double quotes surrounding the argument will be stripped by
+the C runtime.
+
+The file redirection characters "<", ">", and "|" can be quoted by
+double quotes (although there are suggestions that this may not always
+be true).  Single quotes are not treated as quotes by the shell or
+the C runtime, they don't get stripped by the shell (just to make
+this type of quoting completely useless).  The caret "^" has also
+been observed to behave as a quoting character, but this appears
+to be a shell feature, and the caret is not stripped from the command
+line, so Perl still sees it (and the C runtime phase does not treat
+the caret as a quote character).
+
+Here are some examples of usage of the "cmd" shell:
+
+This prints two doublequotes:
+
+    perl -e "print '\"\"' "
+
+This does the same:
+
+    perl -e "print \"\\\"\\\"\" "
+
+This prints "bar" and writes "foo" to the file "blurch":
+
+    perl -e "print 'foo'; print STDERR 'bar'" > blurch
+
+This prints "foo" ("bar" disappears into nowhereland):
+
+    perl -e "print 'foo'; print STDERR 'bar'" 2> nul
+
+This prints "bar" and writes "foo" into the file "blurch":
+
+    perl -e "print 'foo'; print STDERR 'bar'" 1> blurch
+
+This pipes "foo" to the "less" pager and prints "bar" on the console:
+
+    perl -e "print 'foo'; print STDERR 'bar'" | less
+
+This pipes "foo\nbar\n" to the less pager:
+
+    perl -le "print 'foo'; print STDERR 'bar'" 2>&1 | less
+
+This pipes "foo" to the pager and writes "bar" in the file "blurch":
+
+    perl -e "print 'foo'; print STDERR 'bar'" 2> blurch | less
+
+
+Discovering the usefulness of the "command.com" shell on Windows 9x
+is left as an exercise to the reader :)
+
+One particularly pernicious problem with the 4NT command shell for
+Windows NT is that it (nearly) always treats a % character as indicating
+that environment variable expansion is needed.  Under this shell, it is
+therefore important to always double any % characters which you want
+Perl to see (for example, for hash variables), even when they are
+quoted.
+
+=item Building Extensions
+
+The Comprehensive Perl Archive Network (CPAN) offers a wealth
+of extensions, some of which require a C compiler to build.
+Look in http://www.cpan.org/ for more information on CPAN.
+
+Note that not all of the extensions available from CPAN may work
+in the Win32 environment; you should check the information at
+http://testers.cpan.org/ before investing too much effort into
+porting modules that don't readily build.
+
+Most extensions (whether they require a C compiler or not) can
+be built, tested and installed with the standard mantra:
+
+    perl Makefile.PL
+    $MAKE
+    $MAKE test
+    $MAKE install
+
+where $MAKE is whatever 'make' program you have configured perl to
+use.  Use "perl -V:make" to find out what this is.  Some extensions
+may not provide a testsuite (so "$MAKE test" may not do anything or
+fail), but most serious ones do.
+
+It is important that you use a supported 'make' program, and
+ensure Config.pm knows about it.  If you don't have nmake, you can
+either get dmake from the location mentioned earlier or get an
+old version of nmake reportedly available from:
+
+    ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
+
+Another option is to use the make written in Perl, available from
+CPAN:
+
+    http://www.cpan.org/authors/id/NI-S/Make-0.03.tar.gz
+
+You may also use dmake.  See L</"Make"> above on how to get it.
+
+Note that MakeMaker actually emits makefiles with different syntax
+depending on what 'make' it thinks you are using.  Therefore, it is
+important that one of the following values appears in Config.pm:
+
+    make='nmake'       # MakeMaker emits nmake syntax
+    make='dmake'       # MakeMaker emits dmake syntax
+    any other value    # MakeMaker emits generic make syntax
+                           (e.g GNU make, or Perl make)
+
+If the value doesn't match the 'make' program you want to use,
+edit Config.pm to fix it.
+
+If a module implements XSUBs, you will need one of the supported
+C compilers.  You must make sure you have set up the environment for
+the compiler for command-line compilation.
+
+If a module does not build for some reason, look carefully for
+why it failed, and report problems to the module author.  If
+it looks like the extension building support is at fault, report
+that with full details of how the build failed using the perlbug
+utility.
+
+=item Command-line Wildcard Expansion
+
+The default command shells on DOS descendant operating systems (such
+as they are) usually do not expand wildcard arguments supplied to
+programs.  They consider it the application's job to handle that.
+This is commonly achieved by linking the application (in our case,
+perl) with startup code that the C runtime libraries usually provide.
+However, doing that results in incompatible perl versions (since the
+behavior of the argv expansion code differs depending on the
+compiler, and it is even buggy on some compilers).  Besides, it may
+be a source of frustration if you use such a perl binary with an
+alternate shell that *does* expand wildcards.
+
+Instead, the following solution works rather well. The nice things
+about it are 1) you can start using it right away; 2) it is more 
+powerful, because it will do the right thing with a pattern like
+*/*/*.c; 3) you can decide whether you do/don't want to use it; and
+4) you can extend the method to add any customizations (or even 
+entirely different kinds of wildcard expansion).
+
+       C:\> copy con c:\perl\lib\Wild.pm
+       # Wild.pm - emulate shell @ARGV expansion on shells that don't
+       use File::DosGlob;
+       @ARGV = map {
+                     my @g = File::DosGlob::glob($_) if /[*?]/;
+                     @g ? @g : $_;
+                   } @ARGV;
+       1;
+       ^Z
+       C:\> set PERL5OPT=-MWild
+       C:\> perl -le "for (@ARGV) { print }" */*/perl*.c
+       p4view/perl/perl.c
+       p4view/perl/perlio.c
+       p4view/perl/perly.c
+       perl5.005/win32/perlglob.c
+       perl5.005/win32/perllib.c
+       perl5.005/win32/perlglob.c
+       perl5.005/win32/perllib.c
+       perl5.005/win32/perlglob.c
+       perl5.005/win32/perllib.c
+
+Note there are two distinct steps there: 1) You'll have to create
+Wild.pm and put it in your perl lib directory. 2) You'll need to
+set the PERL5OPT environment variable.  If you want argv expansion
+to be the default, just set PERL5OPT in your default startup
+environment.
+
+If you are using the Visual C compiler, you can get the C runtime's
+command line wildcard expansion built into perl binary.  The resulting
+binary will always expand unquoted command lines, which may not be
+what you want if you use a shell that does that for you.  The expansion
+done is also somewhat less powerful than the approach suggested above.
+
+=item Win32 Specific Extensions
+
+A number of extensions specific to the Win32 platform are available
+from CPAN.  You may find that many of these extensions are meant to
+be used under the Activeware port of Perl, which used to be the only
+native port for the Win32 platform.  Since the Activeware port does not
+have adequate support for Perl's extension building tools, these
+extensions typically do not support those tools either and, therefore,
+cannot be built using the generic steps shown in the previous section.
+
+To ensure smooth transitioning of existing code that uses the
+ActiveState port, there is a bundle of Win32 extensions that contains
+all of the ActiveState extensions and most other Win32 extensions from
+CPAN in source form, along with many added bugfixes, and with MakeMaker
+support.  This bundle is available at:
+
+   http://www.cpan.org/authors/id/GSAR/libwin32-0.151.zip
+
+See the README in that distribution for building and installation
+instructions.  Look for later versions that may be available at the
+same location.
+
+=item Running Perl Scripts
+
+Perl scripts on UNIX use the "#!" (a.k.a "shebang") line to
+indicate to the OS that it should execute the file using perl.
+Win32 has no comparable means to indicate arbitrary files are
+executables.
+
+Instead, all available methods to execute plain text files on
+Win32 rely on the file "extension".  There are three methods
+to use this to execute perl scripts:
+
+=over 8
+
+=item 1
+
+There is a facility called "file extension associations" that will
+work in Windows NT 4.0.  This can be manipulated via the two
+commands "assoc" and "ftype" that come standard with Windows NT
+4.0.  Type "ftype /?" for a complete example of how to set this
+up for perl scripts (Say what?  You thought Windows NT wasn't
+perl-ready? :).
+
+=item 2
+
+Since file associations don't work everywhere, and there are
+reportedly bugs with file associations where it does work, the
+old method of wrapping the perl script to make it look like a
+regular batch file to the OS, may be used.  The install process
+makes available the "pl2bat.bat" script which can be used to wrap
+perl scripts into batch files.  For example:
+
+       pl2bat foo.pl
+
+will create the file "FOO.BAT".  Note "pl2bat" strips any
+.pl suffix and adds a .bat suffix to the generated file.
+
+If you use the 4DOS/NT or similar command shell, note that
+"pl2bat" uses the "%*" variable in the generated batch file to
+refer to all the command line arguments, so you may need to make
+sure that construct works in batch files.  As of this writing,
+4DOS/NT users will need a "ParameterChar = *" statement in their
+4NT.INI file or will need to execute "setdos /p*" in the 4DOS/NT
+startup file to enable this to work.
+
+=item 3
+
+Using "pl2bat" has a few problems:  the file name gets changed,
+so scripts that rely on C<$0> to find what they must do may not
+run properly; running "pl2bat" replicates the contents of the
+original script, and so this process can be maintenance intensive
+if the originals get updated often.  A different approach that
+avoids both problems is possible.
+
+A script called "runperl.bat" is available that can be copied
+to any filename (along with the .bat suffix).  For example,
+if you call it "foo.bat", it will run the file "foo" when it is
+executed.  Since you can run batch files on Win32 platforms simply
+by typing the name (without the extension), this effectively
+runs the file "foo", when you type either "foo" or "foo.bat".
+With this method, "foo.bat" can even be in a different location
+than the file "foo", as long as "foo" is available somewhere on
+the PATH.  If your scripts are on a filesystem that allows symbolic
+links, you can even avoid copying "runperl.bat".
+
+Here's a diversion:  copy "runperl.bat" to "runperl", and type
+"runperl".  Explain the observed behavior, or lack thereof. :)
+Hint: .gnidnats llits er'uoy fi ,"lrepnur" eteled :tniH
+
+=back
+
+=item Miscellaneous Things
+
+A full set of HTML documentation is installed, so you should be
+able to use it if you have a web browser installed on your
+system.
+
+C<perldoc> is also a useful tool for browsing information contained
+in the documentation, especially in conjunction with a pager
+like C<less> (recent versions of which have Win32 support).  You may
+have to set the PAGER environment variable to use a specific pager.
+"perldoc -f foo" will print information about the perl operator
+"foo".
+
+If you find bugs in perl, you can run C<perlbug> to create a
+bug report (you may have to send it manually if C<perlbug> cannot
+find a mailer on your system).
+
+=back
+
+=head1 BUGS AND CAVEATS
+
+Norton AntiVirus interferes with the build process, particularly if 
+set to "AutoProtect, All Files, when Opened". Unlike large applications 
+the perl build process opens and modifies a lot of files. Having the  
+the AntiVirus scan each and every one slows build the process significantly.
+Worse, with PERLIO=stdio the build process fails with peculiar messages
+as the virus checker interacts badly with miniperl.exe writing configure 
+files (it seems to either catch file part written and treat it as suspicious,
+or virus checker may have it "locked" in a way which inhibits miniperl
+updating it). The build does complete with 
+
+   set PERLIO=perlio
+
+but that may be just luck. Other AntiVirus software may have similar issues.
+
+Some of the built-in functions do not act exactly as documented in
+L<perlfunc>, and a few are not implemented at all.  To avoid
+surprises, particularly if you have had prior exposure to Perl
+in other operating environments or if you intend to write code
+that will be portable to other environments.  See L<perlport>
+for a reasonably definitive list of these differences.
+
+Not all extensions available from CPAN may build or work properly
+in the Win32 environment.  See L</"Building Extensions">.
+
+Most C<socket()> related calls are supported, but they may not
+behave as on Unix platforms.  See L<perlport> for the full list.
+
+Signal handling may not behave as on Unix platforms (where it
+doesn't exactly "behave", either :).  For instance, calling C<die()>
+or C<exit()> from signal handlers will cause an exception, since most
+implementations of C<signal()> on Win32 are severely crippled.
+Thus, signals may work only for simple things like setting a flag
+variable in the handler.  Using signals under this port should
+currently be considered unsupported.
+
+Please send detailed descriptions of any problems and solutions that 
+you may find to <F<perlbug@perl.com>>, along with the output produced
+by C<perl -V>.
+
+=head1 AUTHORS
+
+=over 4
+
+=item Gary Ng E<lt>71564.1743@CompuServe.COME<gt>
+
+=item Gurusamy Sarathy E<lt>gsar@activestate.comE<gt>
+
+=item Nick Ing-Simmons E<lt>nick@ing-simmons.netE<gt>
+
+=back
+
+This document is maintained by Gurusamy Sarathy.
+
+=head1 SEE ALSO
+
+L<perl>
+
+=head1 HISTORY
+
+This port was originally contributed by Gary Ng around 5.003_24,
+and borrowed from the Hip Communications port that was available
+at the time.  Various people have made numerous and sundry hacks
+since then.
+
+Borland support was added in 5.004_01 (Gurusamy Sarathy).
+
+GCC/mingw32 support was added in 5.005 (Nick Ing-Simmons).
+
+Support for PERL_OBJECT was added in 5.005 (ActiveState Tool Corp).
+
+Support for fork() emulation was added in 5.6 (ActiveState Tool Corp).
+
+Win9x support was added in 5.6 (Benjamin Stuhl).
+
+Last updated: 1 April 2001
+
+=cut
diff --git a/XSUB.h b/XSUB.h
index 23f292b..5e9c671 100644 (file)
--- a/XSUB.h
+++ b/XSUB.h
@@ -61,9 +61,9 @@ handled automatically by C<xsubpp>.
 #define ST(off) PL_stack_base[ax + (off)]
 
 #if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
-#  define XS(name) __declspec(dllexport) void name(pTHXo_ CV* cv)
+#  define XS(name) __declspec(dllexport) void name(pTHX_ CV* cv)
 #else
-#  define XS(name) void name(pTHXo_ CV* cv)
+#  define XS(name) void name(pTHX_ CV* cv)
 #endif
 
 #define dAX I32 ax = MARK - PL_stack_base + 1
@@ -92,7 +92,7 @@ handled automatically by C<xsubpp>.
 #define dXSFUNCTION(ret)               XSINTERFACE_CVT(ret,XSFUNCTION)
 #define XSINTERFACE_FUNC(ret,cv,f)     ((XSINTERFACE_CVT(ret,))(f))
 #define XSINTERFACE_FUNC_SET(cv,f)     \
-               CvXSUBANY(cv).any_dptr = (void (*) (pTHXo_ void*))(f)
+               CvXSUBANY(cv).any_dptr = (void (*) (pTHX_ void*))(f)
 
 /* Simple macros to put new mortal values onto the stack.   */
 /* Typically used to return values from XS functions.       */
@@ -247,7 +247,6 @@ C<xsubpp>.  See L<perlxs/"The VERSIONCHECK: Keyword">.
 #endif
 
 #include "perlapi.h"
-#include "objXSUB.h"
 
 #if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_GET_CONTEXT) && !defined(PERL_CORE)
 #  undef aTHX
@@ -256,7 +255,7 @@ C<xsubpp>.  See L<perlxs/"The VERSIONCHECK: Keyword">.
 #  define aTHX_                aTHX,
 #endif
 
-#if (defined(PERL_CAPI) || defined(PERL_IMPLICIT_SYS)) && !defined(PERL_CORE)
+#if defined(PERL_IMPLICIT_SYS) && !defined(PERL_CORE)
 #  ifndef NO_XSLOCKS
 # if defined (NETWARE) && defined (USE_STDIO)
 #    define times              PerlProc_times
@@ -450,6 +449,6 @@ C<xsubpp>.  See L<perlxs/"The VERSIONCHECK: Keyword">.
 #    define socketpair         PerlSock_socketpair
 #      endif   /* NETWARE && USE_STDIO */
 #  endif  /* NO_XSLOCKS */
-#endif  /* PERL_CAPI */
+#endif  /* PERL_IMPLICIT_SYS && !PERL_CORE */
 
 #endif /* _INC_PERL_XSUB_H */          /* include guard */
index 4b00e14..89536ae 100644 (file)
@@ -71,13 +71,6 @@ print BYTERUN_C $c_header, <<'EOT';
 #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"
 
@@ -93,7 +86,7 @@ print BYTERUN_C <<'EOT';
 };
 
 void *
-bset_obj_store(pTHXo_ struct byteloader_state *bstate, void *obj, I32 ix)
+bset_obj_store(pTHX_ struct byteloader_state *bstate, void *obj, I32 ix)
 {
     if (ix > bstate->bs_obj_list_fill) {
        Renew(bstate->bs_obj_list, ix + 32, void*);
@@ -104,7 +97,7 @@ bset_obj_store(pTHXo_ struct byteloader_state *bstate, void *obj, I32 ix)
 }
 
 void
-byterun(pTHXo_ register struct byteloader_state *bstate)
+byterun(pTHX_ register struct byteloader_state *bstate)
 {
     register int insn;
     U32 ix;
@@ -209,7 +202,7 @@ struct byteloader_state {
 
 int bl_getc(struct byteloader_fdata *);
 int bl_read(struct byteloader_fdata *, char *, size_t, size_t);
-extern void byterun(pTHXo_ struct byteloader_state *);
+extern void byterun(pTHX_ struct byteloader_state *);
 
 enum {
 EOT
diff --git a/cv.h b/cv.h
index b4b2439..b6fd7e8 100644 (file)
--- a/cv.h
+++ b/cv.h
@@ -22,7 +22,7 @@ struct xpvcv {
     HV *       xcv_stash;
     OP *       xcv_start;
     OP *       xcv_root;
-    void       (*xcv_xsub) (pTHXo_ CV*);
+    void       (*xcv_xsub) (pTHX_ CV*);
     ANY                xcv_xsubany;
     GV *       xcv_gv;
     char *     xcv_file;
index 962a60a..6a71713 100644 (file)
@@ -18,7 +18,7 @@
 static int
 do_spawnvp (const char *path, const char * const *argv)
 {
-    dTHXo;
+    dTHX;
     Sigsave_t ihand,qhand;
     int childpid, result, status;
 
@@ -45,7 +45,7 @@ do_spawnvp (const char *path, const char * const *argv)
 int
 do_aspawn (SV *really, void **mark, void **sp)
 {
-    dTHXo;
+    dTHX;
     int  rc;
     char **a,*tmps,**argv; 
     STRLEN n_a; 
@@ -78,7 +78,7 @@ do_aspawn (SV *really, void **mark, void **sp)
 int
 do_spawn (char *cmd)
 {
-    dTHXo;
+    dTHX;
     char **a,*s,*metachars = "$&*(){}[]'\";\\?>|<~`\n";
     const char *command[4];
 
index 1054ac1..5551201 100755 (executable)
@@ -21,7 +21,7 @@ if test ! -z "$OS2_SHELL"; then alias find=gnufind; fi
 # Move autogenerated less-informative files to the end:
 # Hard to do embed.h and embedvar.h in one sweep:
 
-topfiles="`echo ' ' *.y *.c *.h ' ' | sed 's/ /  /g' | sed 's/ embedvar\.h\|embed\.h\|perlapi\.h\|obj\(pp\|XSUB\)\.h\|\(globals\|perlapi\)\.c / /g'`"
+topfiles="`echo ' ' *.y *.c *.h ' ' | sed 's/ /  /g' | sed 's/ embedvar\.h\|embed\.h\|perlapi\.h\|\(globals\|perlapi\)\.c / /g'`"
 subdirs="`find ./* -maxdepth 0 -type d`"
 subdirfiles="`find $subdirs -name '*.[cy]' -print | sort`"
 subdirfiles1="`find $subdirs -name '*.[hH]' -print | sort`"
@@ -99,7 +99,7 @@ perl -w014pe 'if (s/^(S_              # 1:   First group
              }' TAGS.tmp > TAGS.tm1 && mv TAGS.tm1 TAGS.tmp
 
 etags -o TAGS.tmp -a -D -l none -r '/#define.*\t\(Perl_.*\)/\1/' embed.h
-etags -o TAGS.tmp -a globals.c embedvar.h objXSUB.h perlapi.c perlapi.h
+etags -o TAGS.tmp -a globals.c embedvar.h perlapi.c perlapi.h
 
 # The above processes created a lot of descriptions with an
 # an explicitly specified tag.  Such descriptions have higher
diff --git a/embed.h b/embed.h
index 941c9b2..e47bb59 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -45,7 +45,6 @@
 
 /* Hide global symbols */
 
-#if !defined(PERL_OBJECT)
 #if !defined(PERL_IMPLICIT_CONTEXT)
 
 #if defined(PERL_IMPLICIT_SYS)
 #endif
 #define get_context            Perl_get_context
 #define set_context            Perl_set_context
-#if defined(PERL_OBJECT)
-#ifndef __BORLANDC__
-#endif
-#endif
-#if defined(PERL_OBJECT)
-#else
-#endif
 #define amagic_call            Perl_amagic_call
 #define Gv_AMupdate            Perl_Gv_AMupdate
 #define gv_handler             Perl_gv_handler
 #if !defined(HAS_MEMSET)
 #define my_memset              Perl_my_memset
 #endif
-#if !defined(PERL_OBJECT)
 #define my_pclose              Perl_my_pclose
 #define my_popen               Perl_my_popen
 #define my_popen_list          Perl_my_popen_list
-#endif
 #define my_setenv              Perl_my_setenv
 #define my_stat                        Perl_my_stat
 #define my_strftime            Perl_my_strftime
 #define pad_reset              Perl_pad_reset
 #define pad_swipe              Perl_pad_swipe
 #define peep                   Perl_peep
-#if defined(PERL_OBJECT)
-#endif
 #if defined(USE_5005THREADS)
 #define new_struct_thread      Perl_new_struct_thread
 #endif
 #define custom_op_name         Perl_custom_op_name
 #define custom_op_desc         Perl_custom_op_desc
 #endif
-#if defined(PERL_OBJECT)
-#else
-#endif
 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 #define avhv_index_sv          S_avhv_index_sv
 #define avhv_index             S_avhv_index
 #define xstat                  S_xstat
 #  endif
 #endif
-#if defined(PERL_OBJECT)
-#endif
 #define sv_setsv_flags         Perl_sv_setsv_flags
 #define sv_catpvn_flags                Perl_sv_catpvn_flags
 #define sv_catsv_flags         Perl_sv_catsv_flags
 #endif
 #define get_context            Perl_get_context
 #define set_context            Perl_set_context
-#if defined(PERL_OBJECT)
-#ifndef __BORLANDC__
-#endif
-#endif
-#if defined(PERL_OBJECT)
-#else
-#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 gv_handler(a,b)                Perl_gv_handler(aTHX_ a,b)
 #if !defined(HAS_MEMSET)
 #define my_memset              Perl_my_memset
 #endif
-#if !defined(PERL_OBJECT)
 #define my_pclose(a)           Perl_my_pclose(aTHX_ a)
 #define my_popen(a,b)          Perl_my_popen(aTHX_ a,b)
 #define my_popen_list(a,b,c)   Perl_my_popen_list(aTHX_ a,b,c)
-#endif
 #define my_setenv(a,b)         Perl_my_setenv(aTHX_ a,b)
 #define my_stat()              Perl_my_stat(aTHX)
 #define my_strftime(a,b,c,d,e,f,g,h,i,j)       Perl_my_strftime(aTHX_ a,b,c,d,e,f,g,h,i,j)
 #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)
-#endif
 #if defined(USE_5005THREADS)
 #define new_struct_thread(a)   Perl_new_struct_thread(aTHX_ a)
 #endif
 #define custom_op_name(a)      Perl_custom_op_name(aTHX_ a)
 #define custom_op_desc(a)      Perl_custom_op_desc(aTHX_ a)
 #endif
-#if defined(PERL_OBJECT)
-#else
-#endif
 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 #define avhv_index_sv(a)       S_avhv_index_sv(aTHX_ a)
 #define avhv_index(a,b,c)      S_avhv_index(aTHX_ a,b,c)
 #define xstat(a)               S_xstat(aTHX_ a)
 #  endif
 #endif
-#if defined(PERL_OBJECT)
-#endif
 #define sv_setsv_flags(a,b,c)  Perl_sv_setsv_flags(aTHX_ a,b,c)
 #define sv_catpvn_flags(a,b,c,d)       Perl_sv_catpvn_flags(aTHX_ a,b,c,d)
 #define sv_catsv_flags(a,b,c)  Perl_sv_catsv_flags(aTHX_ a,b,c)
 #define pp_xor()               Perl_pp_xor(aTHX)
 
 #endif /* PERL_IMPLICIT_CONTEXT */
-#else  /* PERL_OBJECT */
 
-#if defined(PERL_IMPLICIT_SYS)
-#endif
-#if defined(USE_ITHREADS)
-#  if defined(PERL_IMPLICIT_SYS)
-#  endif
-#endif
-#define malloc                 Perl_malloc
-#define calloc                 Perl_calloc
-#define realloc                        Perl_realloc
-#define mfree                  Perl_mfree
-#if defined(MYMALLOC)
-#define malloced_size          Perl_malloced_size
-#endif
-#define get_context            Perl_get_context
-#define set_context            Perl_set_context
-#if defined(PERL_OBJECT)
-#ifndef __BORLANDC__
-#endif
-#endif
-#if defined(PERL_OBJECT)
-#else
-#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_gv_handler                CPerlObj::Perl_gv_handler
-#define gv_handler             Perl_gv_handler
-#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_apply_attrs_string        CPerlObj::Perl_apply_attrs_string
-#define apply_attrs_string     Perl_apply_attrs_string
-#define Perl_avhv_delete_ent   CPerlObj::Perl_avhv_delete_ent
-#define avhv_delete_ent                Perl_avhv_delete_ent
-#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_store_ent    CPerlObj::Perl_avhv_store_ent
-#define avhv_store_ent         Perl_avhv_store_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_delete         CPerlObj::Perl_av_delete
-#define av_delete              Perl_av_delete
-#define Perl_av_exists         CPerlObj::Perl_av_exists
-#define av_exists              Perl_av_exists
-#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_boot_core_PerlIO  CPerlObj::Perl_boot_core_PerlIO
-#define boot_core_PerlIO       Perl_boot_core_PerlIO
-#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::Perl_my_chsize
-#define my_chsize              Perl_my_chsize
-#endif
-#if defined(USE_5005THREADS)
-#define Perl_condpair_magic    CPerlObj::Perl_condpair_magic
-#define condpair_magic         Perl_condpair_magic
+
+/* Compatibility stubs.  Compile extensions with -DPERL_NOCOMPAT to
+   disable them.
+ */
+
+#if !defined(PERL_CORE)
+#  define sv_setptrobj(rv,ptr,name)    sv_setref_iv(rv,name,PTR2IV(ptr))
+#  define sv_setptrref(rv,ptr)         sv_setref_iv(rv,Nullch,PTR2IV(ptr))
 #endif
-#define Perl_convert           CPerlObj::Perl_convert
-#define convert                        Perl_convert
-#define Perl_croak             CPerlObj::Perl_croak
-#define croak                  Perl_croak
-#define Perl_vcroak            CPerlObj::Perl_vcroak
-#define vcroak                 Perl_vcroak
+
+#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) && !defined(PERL_BINCOMPAT_5005)
+
+/* Compatibility for various misnamed functions.  All functions
+   in the API that begin with "perl_" (not "Perl_") take an explicit
+   interpreter context pointer.
+   The following are not like that, but since they had a "perl_"
+   prefix in previous versions, we provide compatibility macros.
+ */
+#  define perl_atexit(a,b)             call_atexit(a,b)
+#  define perl_call_argv(a,b,c)                call_argv(a,b,c)
+#  define perl_call_pv(a,b)            call_pv(a,b)
+#  define perl_call_method(a,b)                call_method(a,b)
+#  define perl_call_sv(a,b)            call_sv(a,b)
+#  define perl_eval_sv(a,b)            eval_sv(a,b)
+#  define perl_eval_pv(a,b)            eval_pv(a,b)
+#  define perl_require_pv(a)           require_pv(a)
+#  define perl_get_sv(a,b)             get_sv(a,b)
+#  define perl_get_av(a,b)             get_av(a,b)
+#  define perl_get_hv(a,b)             get_hv(a,b)
+#  define perl_get_cv(a,b)             get_cv(a,b)
+#  define perl_init_i18nl10n(a)                init_i18nl10n(a)
+#  define perl_init_i18nl14n(a)                init_i18nl14n(a)
+#  define perl_new_ctype(a)            new_ctype(a)
+#  define perl_new_collate(a)          new_collate(a)
+#  define perl_new_numeric(a)          new_numeric(a)
+
+/* varargs functions can't be handled with CPP macros. :-(
+   This provides a set of compatibility functions that don't take
+   an extra argument but grab the context pointer using the macro
+   dTHX.
+ */
 #if defined(PERL_IMPLICIT_CONTEXT)
-#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_deb_nocontext     CPerlObj::Perl_deb_nocontext
-#define deb_nocontext          Perl_deb_nocontext
-#define Perl_form_nocontext    CPerlObj::Perl_form_nocontext
-#define form_nocontext         Perl_form_nocontext
-#define Perl_load_module_nocontext     CPerlObj::Perl_load_module_nocontext
-#define load_module_nocontext  Perl_load_module_nocontext
-#define Perl_mess_nocontext    CPerlObj::Perl_mess_nocontext
-#define mess_nocontext         Perl_mess_nocontext
-#define Perl_warn_nocontext    CPerlObj::Perl_warn_nocontext
-#define warn_nocontext         Perl_warn_nocontext
-#define Perl_warner_nocontext  CPerlObj::Perl_warner_nocontext
-#define warner_nocontext       Perl_warner_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
-#define Perl_fprintf_nocontext CPerlObj::Perl_fprintf_nocontext
-#define fprintf_nocontext      Perl_fprintf_nocontext
-#define Perl_printf_nocontext  CPerlObj::Perl_printf_nocontext
-#define printf_nocontext       Perl_printf_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_vdeb              CPerlObj::Perl_vdeb
-#define vdeb                   Perl_vdeb
-#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_vdie              CPerlObj::Perl_vdie
-#define vdie                   Perl_vdie
-#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_aexec5         CPerlObj::Perl_do_aexec5
-#define do_aexec5              Perl_do_aexec5
-#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::Perl_do_exec3
-#define do_exec3               Perl_do_exec3
-#endif
-#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::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_open9          CPerlObj::Perl_do_open9
-#define do_open9               Perl_do_open9
-#define Perl_do_openn          CPerlObj::Perl_do_openn
-#define do_openn               Perl_do_openn
-#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_vecget         CPerlObj::Perl_do_vecget
-#define do_vecget              Perl_do_vecget
-#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::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_5005THREADS)
-#define Perl_find_threadsv     CPerlObj::Perl_find_threadsv
-#define find_threadsv          Perl_find_threadsv
-#endif
-#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_vform             CPerlObj::Perl_vform
-#define vform                  Perl_vform
-#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::Perl_getenv_len
-#define getenv_len             Perl_getenv_len
-#endif
-#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_efullname4     CPerlObj::Perl_gv_efullname4
-#define gv_efullname4          Perl_gv_efullname4
-#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_fullname4      CPerlObj::Perl_gv_fullname4
-#define gv_fullname4           Perl_gv_fullname4
-#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_debugger     CPerlObj::Perl_init_debugger
-#define init_debugger          Perl_init_debugger
-#define Perl_init_stacks       CPerlObj::Perl_init_stacks
-#define init_stacks            Perl_init_stacks
-#define Perl_init_tm           CPerlObj::Perl_init_tm
-#define init_tm                        Perl_init_tm
-#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_gv_magical     CPerlObj::Perl_is_gv_magical
-#define is_gv_magical          Perl_is_gv_magical
-#define Perl_is_lvalue_sub     CPerlObj::Perl_is_lvalue_sub
-#define is_lvalue_sub          Perl_is_lvalue_sub
-#define Perl_is_uni_alnum      CPerlObj::Perl_is_uni_alnum
-#define is_uni_alnum           Perl_is_uni_alnum
-#define Perl_is_uni_alnumc     CPerlObj::Perl_is_uni_alnumc
-#define is_uni_alnumc          Perl_is_uni_alnumc
-#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_ascii      CPerlObj::Perl_is_uni_ascii
-#define is_uni_ascii           Perl_is_uni_ascii
-#define Perl_is_uni_space      CPerlObj::Perl_is_uni_space
-#define is_uni_space           Perl_is_uni_space
-#define Perl_is_uni_cntrl      CPerlObj::Perl_is_uni_cntrl
-#define is_uni_cntrl           Perl_is_uni_cntrl
-#define Perl_is_uni_graph      CPerlObj::Perl_is_uni_graph
-#define is_uni_graph           Perl_is_uni_graph
-#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_is_uni_punct      CPerlObj::Perl_is_uni_punct
-#define is_uni_punct           Perl_is_uni_punct
-#define Perl_is_uni_xdigit     CPerlObj::Perl_is_uni_xdigit
-#define is_uni_xdigit          Perl_is_uni_xdigit
-#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_alnumc_lc  CPerlObj::Perl_is_uni_alnumc_lc
-#define is_uni_alnumc_lc       Perl_is_uni_alnumc_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_ascii_lc   CPerlObj::Perl_is_uni_ascii_lc
-#define is_uni_ascii_lc                Perl_is_uni_ascii_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_cntrl_lc   CPerlObj::Perl_is_uni_cntrl_lc
-#define is_uni_cntrl_lc                Perl_is_uni_cntrl_lc
-#define Perl_is_uni_graph_lc   CPerlObj::Perl_is_uni_graph_lc
-#define is_uni_graph_lc                Perl_is_uni_graph_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_is_uni_punct_lc   CPerlObj::Perl_is_uni_punct_lc
-#define is_uni_punct_lc                Perl_is_uni_punct_lc
-#define Perl_is_uni_xdigit_lc  CPerlObj::Perl_is_uni_xdigit_lc
-#define is_uni_xdigit_lc       Perl_is_uni_xdigit_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_char      CPerlObj::Perl_is_utf8_char
-#define is_utf8_char           Perl_is_utf8_char
-#define Perl_is_utf8_string    CPerlObj::Perl_is_utf8_string
-#define is_utf8_string         Perl_is_utf8_string
-#define Perl_is_utf8_alnum     CPerlObj::Perl_is_utf8_alnum
-#define is_utf8_alnum          Perl_is_utf8_alnum
-#define Perl_is_utf8_alnumc    CPerlObj::Perl_is_utf8_alnumc
-#define is_utf8_alnumc         Perl_is_utf8_alnumc
-#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_ascii     CPerlObj::Perl_is_utf8_ascii
-#define is_utf8_ascii          Perl_is_utf8_ascii
-#define Perl_is_utf8_space     CPerlObj::Perl_is_utf8_space
-#define is_utf8_space          Perl_is_utf8_space
-#define Perl_is_utf8_cntrl     CPerlObj::Perl_is_utf8_cntrl
-#define is_utf8_cntrl          Perl_is_utf8_cntrl
-#define Perl_is_utf8_digit     CPerlObj::Perl_is_utf8_digit
-#define is_utf8_digit          Perl_is_utf8_digit
-#define Perl_is_utf8_graph     CPerlObj::Perl_is_utf8_graph
-#define is_utf8_graph          Perl_is_utf8_graph
-#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_punct     CPerlObj::Perl_is_utf8_punct
-#define is_utf8_punct          Perl_is_utf8_punct
-#define Perl_is_utf8_xdigit    CPerlObj::Perl_is_utf8_xdigit
-#define is_utf8_xdigit         Perl_is_utf8_xdigit
-#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_op_null           CPerlObj::Perl_op_null
-#define op_null                        Perl_op_null
-#define Perl_op_clear          CPerlObj::Perl_op_clear
-#define op_clear               Perl_op_clear
-#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_load_module       CPerlObj::Perl_load_module
-#define load_module            Perl_load_module
-#define Perl_vload_module      CPerlObj::Perl_vload_module
-#define vload_module           Perl_vload_module
-#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_grok_number       CPerlObj::Perl_grok_number
-#define grok_number            Perl_grok_number
-#define Perl_grok_numeric_radix        CPerlObj::Perl_grok_numeric_radix
-#define grok_numeric_radix     Perl_grok_numeric_radix
-#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_freeovrld   CPerlObj::Perl_magic_freeovrld
-#define magic_freeovrld                Perl_magic_freeovrld
-#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_5005THREADS)
-#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_regdatum_set        CPerlObj::Perl_magic_regdatum_set
-#define magic_regdatum_set     Perl_magic_regdatum_set
-#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
-#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_vmess             CPerlObj::Perl_vmess
-#define vmess                  Perl_vmess
-#define Perl_qerror            CPerlObj::Perl_qerror
-#define qerror                 Perl_qerror
-#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_mini_mktime       CPerlObj::Perl_mini_mktime
-#define mini_mktime            Perl_mini_mktime
-#define Perl_mod               CPerlObj::Perl_mod
-#define mod                    Perl_mod
-#define Perl_mode_from_discipline      CPerlObj::Perl_mode_from_discipline
-#define mode_from_discipline   Perl_mode_from_discipline
-#define Perl_moreswitches      CPerlObj::Perl_moreswitches
-#define moreswitches           Perl_moreswitches
-#define Perl_my                        CPerlObj::Perl_my
-#define my                     Perl_my
-#define Perl_my_atof           CPerlObj::Perl_my_atof
-#define my_atof                        Perl_my_atof
-#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_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::Perl_my_bzero
-#define my_bzero               Perl_my_bzero
-#endif
-#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_fork           CPerlObj::Perl_my_fork
-#define my_fork                        Perl_my_fork
-#define Perl_atfork_lock       CPerlObj::Perl_atfork_lock
-#define atfork_lock            Perl_atfork_lock
-#define Perl_atfork_unlock     CPerlObj::Perl_atfork_unlock
-#define atfork_unlock          Perl_atfork_unlock
-#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::Perl_my_memcmp
-#define my_memcmp              Perl_my_memcmp
-#endif
-#if !defined(HAS_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::Perl_my_pclose
-#define my_pclose              Perl_my_pclose
-#define Perl_my_popen          CPerlObj::Perl_my_popen
-#define my_popen               Perl_my_popen
-#define Perl_my_popen_list     CPerlObj::Perl_my_popen_list
-#define my_popen_list          Perl_my_popen_list
-#endif
-#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
-#define Perl_my_strftime       CPerlObj::Perl_my_strftime
-#define my_strftime            Perl_my_strftime
-#if defined(MYSWAP)
-#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_newPADOP          CPerlObj::Perl_newPADOP
-#define newPADOP               Perl_newPADOP
-#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_newSVuv           CPerlObj::Perl_newSVuv
-#define newSVuv                        Perl_newSVuv
-#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_newSVpvn_share    CPerlObj::Perl_newSVpvn_share
-#define newSVpvn_share         Perl_newSVpvn_share
-#define Perl_newSVpvf          CPerlObj::Perl_newSVpvf
-#define newSVpvf               Perl_newSVpvf
-#define Perl_vnewSVpvf         CPerlObj::Perl_vnewSVpvf
-#define vnewSVpvf              Perl_vnewSVpvf
-#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
-#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
-#define Perl_start_glob                CPerlObj::Perl_start_glob
-#define start_glob             Perl_start_glob
-#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
-#endif
-#if defined(USE_5005THREADS)
-#define Perl_new_struct_thread CPerlObj::Perl_new_struct_thread
-#define new_struct_thread      Perl_new_struct_thread
-#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_despatch_signals  CPerlObj::Perl_despatch_signals
-#define despatch_signals       Perl_despatch_signals
-#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_regclass_swash    CPerlObj::Perl_regclass_swash
-#define regclass_swash         Perl_regclass_swash
-#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_re_intuit_start   CPerlObj::Perl_re_intuit_start
-#define re_intuit_start                Perl_re_intuit_start
-#define Perl_re_intuit_string  CPerlObj::Perl_re_intuit_string
-#define re_intuit_string       Perl_re_intuit_string
-#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
-#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_destructor_x CPerlObj::Perl_save_destructor_x
-#define save_destructor_x      Perl_save_destructor_x
-#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_generic_pvref        CPerlObj::Perl_save_generic_pvref
-#define save_generic_pvref     Perl_save_generic_pvref
-#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_I8           CPerlObj::Perl_save_I8
-#define save_I8                        Perl_save_I8
-#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_mortalizesv  CPerlObj::Perl_save_mortalizesv
-#define save_mortalizesv       Perl_save_mortalizesv
-#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_vptr         CPerlObj::Perl_save_vptr
-#define save_vptr              Perl_save_vptr
-#define Perl_save_re_context   CPerlObj::Perl_save_re_context
-#define save_re_context                Perl_save_re_context
-#define Perl_save_padsv                CPerlObj::Perl_save_padsv
-#define save_padsv             Perl_save_padsv
-#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
-#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_2pvutf8                CPerlObj::Perl_sv_2pvutf8
-#define sv_2pvutf8             Perl_sv_2pvutf8
-#define Perl_sv_2pvbyte                CPerlObj::Perl_sv_2pvbyte
-#define sv_2pvbyte             Perl_sv_2pvbyte
-#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_pvutf8n                CPerlObj::Perl_sv_pvutf8n
-#define sv_pvutf8n             Perl_sv_pvutf8n
-#define Perl_sv_pvbyten                CPerlObj::Perl_sv_pvbyten
-#define sv_pvbyten             Perl_sv_pvbyten
-#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_vcatpvf                CPerlObj::Perl_sv_vcatpvf
-#define sv_vcatpvf             Perl_sv_vcatpvf
-#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
-#define Perl_sv_compile_2op    CPerlObj::Perl_sv_compile_2op
-#define sv_compile_2op         Perl_sv_compile_2op
-#define Perl_getcwd_sv         CPerlObj::Perl_getcwd_sv
-#define getcwd_sv              Perl_getcwd_sv
-#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_pvutf8n_force  CPerlObj::Perl_sv_pvutf8n_force
-#define sv_pvutf8n_force       Perl_sv_pvutf8n_force
-#define Perl_sv_pvbyten_force  CPerlObj::Perl_sv_pvbyten_force
-#define sv_pvbyten_force       Perl_sv_pvbyten_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_vsetpvf                CPerlObj::Perl_sv_vsetpvf
-#define sv_vsetpvf             Perl_sv_vsetpvf
-#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_uv      CPerlObj::Perl_sv_setref_uv
-#define sv_setref_uv           Perl_sv_setref_uv
-#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_unref_flags    CPerlObj::Perl_sv_unref_flags
-#define sv_unref_flags         Perl_sv_unref_flags
-#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_str_to_version    CPerlObj::Perl_str_to_version
-#define str_to_version         Perl_str_to_version
-#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(USE_5005THREADS)
-#define Perl_unlock_condpair   CPerlObj::Perl_unlock_condpair
-#define unlock_condpair                Perl_unlock_condpair
-#endif
-#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_length       CPerlObj::Perl_utf8_length
-#define utf8_length            Perl_utf8_length
-#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_bytes     CPerlObj::Perl_utf8_to_bytes
-#define utf8_to_bytes          Perl_utf8_to_bytes
-#define Perl_bytes_from_utf8   CPerlObj::Perl_bytes_from_utf8
-#define bytes_from_utf8                Perl_bytes_from_utf8
-#define Perl_bytes_to_utf8     CPerlObj::Perl_bytes_to_utf8
-#define bytes_to_utf8          Perl_bytes_to_utf8
-#define Perl_utf8_to_uvchr     CPerlObj::Perl_utf8_to_uvchr
-#define utf8_to_uvchr          Perl_utf8_to_uvchr
-#define Perl_utf8_to_uvuni     CPerlObj::Perl_utf8_to_uvuni
-#define utf8_to_uvuni          Perl_utf8_to_uvuni
-#define Perl_utf8n_to_uvchr    CPerlObj::Perl_utf8n_to_uvchr
-#define utf8n_to_uvchr         Perl_utf8n_to_uvchr
-#define Perl_utf8n_to_uvuni    CPerlObj::Perl_utf8n_to_uvuni
-#define utf8n_to_uvuni         Perl_utf8n_to_uvuni
-#define Perl_uvchr_to_utf8     CPerlObj::Perl_uvchr_to_utf8
-#define uvchr_to_utf8          Perl_uvchr_to_utf8
-#define Perl_uvuni_to_utf8     CPerlObj::Perl_uvuni_to_utf8
-#define uvuni_to_utf8          Perl_uvuni_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_report_evil_fh    CPerlObj::Perl_report_evil_fh
-#define report_evil_fh         Perl_report_evil_fh
-#define Perl_report_uninit     CPerlObj::Perl_report_uninit
-#define report_uninit          Perl_report_uninit
-#define Perl_warn              CPerlObj::Perl_warn
-#define warn                   Perl_warn
-#define Perl_vwarn             CPerlObj::Perl_vwarn
-#define vwarn                  Perl_vwarn
-#define Perl_warner            CPerlObj::Perl_warner
-#define warner                 Perl_warner
-#define Perl_vwarner           CPerlObj::Perl_vwarner
-#define vwarner                        Perl_vwarner
-#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
-#ifdef USE_PURE_BISON
-#define Perl_yylex_r           CPerlObj::Perl_yylex_r
-#define yylex_r                        Perl_yylex_r
-#endif
-#define Perl_yylex             CPerlObj::Perl_yylex
-#define yylex                  Perl_yylex
-#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_get_mstats                CPerlObj::Perl_get_mstats
-#define get_mstats             Perl_get_mstats
-#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_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(USE_5005THREADS)
-#define Perl_sv_lock           CPerlObj::Perl_sv_lock
-#define sv_lock                        Perl_sv_lock
-#endif
-#define Perl_sv_catpvf_mg      CPerlObj::Perl_sv_catpvf_mg
-#define sv_catpvf_mg           Perl_sv_catpvf_mg
-#define Perl_sv_vcatpvf_mg     CPerlObj::Perl_sv_vcatpvf_mg
-#define sv_vcatpvf_mg          Perl_sv_vcatpvf_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_vsetpvf_mg     CPerlObj::Perl_sv_vsetpvf_mg
-#define sv_vsetpvf_mg          Perl_sv_vsetpvf_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_dump_vindent      CPerlObj::Perl_dump_vindent
-#define dump_vindent           Perl_dump_vindent
-#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
-#if defined(PERL_FLEXIBLE_EXCEPTIONS)
-#define Perl_default_protect   CPerlObj::Perl_default_protect
-#define default_protect                Perl_default_protect
-#define Perl_vdefault_protect  CPerlObj::Perl_vdefault_protect
-#define vdefault_protect       Perl_vdefault_protect
-#endif
-#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_2pvutf8_nolen  CPerlObj::Perl_sv_2pvutf8_nolen
-#define sv_2pvutf8_nolen       Perl_sv_2pvutf8_nolen
-#define Perl_sv_2pvbyte_nolen  CPerlObj::Perl_sv_2pvbyte_nolen
-#define sv_2pvbyte_nolen       Perl_sv_2pvbyte_nolen
-#define Perl_sv_pv             CPerlObj::Perl_sv_pv
-#define sv_pv                  Perl_sv_pv
-#define Perl_sv_pvutf8         CPerlObj::Perl_sv_pvutf8
-#define sv_pvutf8              Perl_sv_pvutf8
-#define Perl_sv_pvbyte         CPerlObj::Perl_sv_pvbyte
-#define sv_pvbyte              Perl_sv_pvbyte
-#define Perl_sv_utf8_upgrade   CPerlObj::Perl_sv_utf8_upgrade
-#define sv_utf8_upgrade                Perl_sv_utf8_upgrade
-#define Perl_sv_utf8_downgrade CPerlObj::Perl_sv_utf8_downgrade
-#define sv_utf8_downgrade      Perl_sv_utf8_downgrade
-#define Perl_sv_utf8_encode    CPerlObj::Perl_sv_utf8_encode
-#define sv_utf8_encode         Perl_sv_utf8_encode
-#define Perl_sv_utf8_decode    CPerlObj::Perl_sv_utf8_decode
-#define sv_utf8_decode         Perl_sv_utf8_decode
-#define Perl_sv_force_normal   CPerlObj::Perl_sv_force_normal
-#define sv_force_normal                Perl_sv_force_normal
-#define Perl_sv_force_normal_flags     CPerlObj::Perl_sv_force_normal_flags
-#define sv_force_normal_flags  Perl_sv_force_normal_flags
-#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
-#define Perl_newANONATTRSUB    CPerlObj::Perl_newANONATTRSUB
-#define newANONATTRSUB         Perl_newANONATTRSUB
-#define Perl_newATTRSUB                CPerlObj::Perl_newATTRSUB
-#define newATTRSUB             Perl_newATTRSUB
-#define Perl_newMYSUB          CPerlObj::Perl_newMYSUB
-#define newMYSUB               Perl_newMYSUB
-#define Perl_my_attrs          CPerlObj::Perl_my_attrs
-#define my_attrs               Perl_my_attrs
-#define Perl_boot_core_xsutils CPerlObj::Perl_boot_core_xsutils
-#define boot_core_xsutils      Perl_boot_core_xsutils
-#if defined(USE_ITHREADS)
-#define Perl_cx_dup            CPerlObj::Perl_cx_dup
-#define cx_dup                 Perl_cx_dup
-#define Perl_si_dup            CPerlObj::Perl_si_dup
-#define si_dup                 Perl_si_dup
-#define Perl_ss_dup            CPerlObj::Perl_ss_dup
-#define ss_dup                 Perl_ss_dup
-#define Perl_any_dup           CPerlObj::Perl_any_dup
-#define any_dup                        Perl_any_dup
-#define Perl_he_dup            CPerlObj::Perl_he_dup
-#define he_dup                 Perl_he_dup
-#define Perl_re_dup            CPerlObj::Perl_re_dup
-#define re_dup                 Perl_re_dup
-#define Perl_fp_dup            CPerlObj::Perl_fp_dup
-#define fp_dup                 Perl_fp_dup
-#define Perl_dirp_dup          CPerlObj::Perl_dirp_dup
-#define dirp_dup               Perl_dirp_dup
-#define Perl_gp_dup            CPerlObj::Perl_gp_dup
-#define gp_dup                 Perl_gp_dup
-#define Perl_mg_dup            CPerlObj::Perl_mg_dup
-#define mg_dup                 Perl_mg_dup
-#define Perl_sv_dup            CPerlObj::Perl_sv_dup
-#define sv_dup                 Perl_sv_dup
-#if defined(HAVE_INTERP_INTERN)
-#define Perl_sys_intern_dup    CPerlObj::Perl_sys_intern_dup
-#define sys_intern_dup         Perl_sys_intern_dup
-#endif
-#define Perl_ptr_table_new     CPerlObj::Perl_ptr_table_new
-#define ptr_table_new          Perl_ptr_table_new
-#define Perl_ptr_table_fetch   CPerlObj::Perl_ptr_table_fetch
-#define ptr_table_fetch                Perl_ptr_table_fetch
-#define Perl_ptr_table_store   CPerlObj::Perl_ptr_table_store
-#define ptr_table_store                Perl_ptr_table_store
-#define Perl_ptr_table_split   CPerlObj::Perl_ptr_table_split
-#define ptr_table_split                Perl_ptr_table_split
-#define Perl_ptr_table_clear   CPerlObj::Perl_ptr_table_clear
-#define ptr_table_clear                Perl_ptr_table_clear
-#define Perl_ptr_table_free    CPerlObj::Perl_ptr_table_free
-#define ptr_table_free         Perl_ptr_table_free
-#endif
-#if defined(HAVE_INTERP_INTERN)
-#define Perl_sys_intern_clear  CPerlObj::Perl_sys_intern_clear
-#define sys_intern_clear       Perl_sys_intern_clear
-#define Perl_sys_intern_init   CPerlObj::Perl_sys_intern_init
-#define sys_intern_init                Perl_sys_intern_init
-#endif
-#if defined(PERL_CUSTOM_OPS)
-#define Perl_custom_op_name    CPerlObj::Perl_custom_op_name
-#define custom_op_name         Perl_custom_op_name
-#define Perl_custom_op_desc    CPerlObj::Perl_custom_op_desc
-#define custom_op_desc         Perl_custom_op_desc
-#endif
-#if defined(PERL_OBJECT)
-#else
-#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
-#define S_avhv_index           CPerlObj::S_avhv_index
-#define avhv_index             S_avhv_index
-#endif
-#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
-#define S_do_trans_simple      CPerlObj::S_do_trans_simple
-#define do_trans_simple                S_do_trans_simple
-#define S_do_trans_count       CPerlObj::S_do_trans_count
-#define do_trans_count         S_do_trans_count
-#define S_do_trans_complex     CPerlObj::S_do_trans_complex
-#define do_trans_complex       S_do_trans_complex
-#define S_do_trans_simple_utf8 CPerlObj::S_do_trans_simple_utf8
-#define do_trans_simple_utf8   S_do_trans_simple_utf8
-#define S_do_trans_count_utf8  CPerlObj::S_do_trans_count_utf8
-#define do_trans_count_utf8    S_do_trans_count_utf8
-#define S_do_trans_complex_utf8        CPerlObj::S_do_trans_complex_utf8
-#define do_trans_complex_utf8  S_do_trans_complex_utf8
-#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
-#define S_require_errno                CPerlObj::S_require_errno
-#define require_errno          S_require_errno
-#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
-#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_cop_free             CPerlObj::S_cop_free
-#define cop_free               S_cop_free
-#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_pad_addlex           CPerlObj::S_pad_addlex
-#define pad_addlex             S_pad_addlex
-#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
-#  if defined(DEBUG_CLOSURES)
-#define S_cv_dump              CPerlObj::S_cv_dump
-#define cv_dump                        S_cv_dump
-#  endif
-#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
-#define S_my_kid               CPerlObj::S_my_kid
-#define my_kid                 S_my_kid
-#define S_dup_attrlist         CPerlObj::S_dup_attrlist
-#define dup_attrlist           S_dup_attrlist
-#define S_apply_attrs          CPerlObj::S_apply_attrs
-#define apply_attrs            S_apply_attrs
-#  if defined(PL_OP_SLAB_ALLOC)
-#define S_Slab_Alloc           CPerlObj::S_Slab_Alloc
-#define Slab_Alloc             S_Slab_Alloc
-#  endif
-#endif
-#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_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_list_body       CPerlObj::S_call_list_body
-#define call_list_body         S_call_list_body
-#if defined(PERL_FLEXIBLE_EXCEPTIONS)
-#define S_vparse_body          CPerlObj::S_vparse_body
-#define vparse_body            S_vparse_body
-#define S_vrun_body            CPerlObj::S_vrun_body
-#define vrun_body              S_vrun_body
-#define S_vcall_body           CPerlObj::S_vcall_body
-#define vcall_body             S_vcall_body
-#define S_vcall_list_body      CPerlObj::S_vcall_list_body
-#define vcall_list_body                S_vcall_list_body
-#endif
-#  if defined(USE_5005THREADS)
-#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_refto                        CPerlObj::S_refto
-#define refto                  S_refto
-#define S_seed                 CPerlObj::S_seed
-#define seed                   S_seed
-#endif
-#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-#define S_doencodes            CPerlObj::S_doencodes
-#define doencodes              S_doencodes
-#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
-#if defined(PERL_FLEXIBLE_EXCEPTIONS)
-#define S_vdocatch_body                CPerlObj::S_vdocatch_body
-#define vdocatch_body          S_vdocatch_body
-#endif
-#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_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
-#endif
-#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-#define S_do_maybe_phash       CPerlObj::S_do_maybe_phash
-#define do_maybe_phash         S_do_maybe_phash
-#define S_do_oddball           CPerlObj::S_do_oddball
-#define do_oddball             S_do_oddball
-#define S_get_db_sub           CPerlObj::S_get_db_sub
-#define get_db_sub             S_get_db_sub
-#define S_method_common                CPerlObj::S_method_common
-#define method_common          S_method_common
-#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_reguni               CPerlObj::S_reguni
-#define reguni                 S_reguni
-#define S_regclass             CPerlObj::S_regclass
-#define regclass               S_regclass
-#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
-#  ifdef DEBUGGING
-#define S_dumpuntil            CPerlObj::S_dumpuntil
-#define dumpuntil              S_dumpuntil
-#define S_put_byte             CPerlObj::S_put_byte
-#define put_byte               S_put_byte
-#  endif
-#define S_scan_commit          CPerlObj::S_scan_commit
-#define scan_commit            S_scan_commit
-#define S_cl_anything          CPerlObj::S_cl_anything
-#define cl_anything            S_cl_anything
-#define S_cl_is_anything       CPerlObj::S_cl_is_anything
-#define cl_is_anything         S_cl_is_anything
-#define S_cl_init              CPerlObj::S_cl_init
-#define cl_init                        S_cl_init
-#define S_cl_init_zero         CPerlObj::S_cl_init_zero
-#define cl_init_zero           S_cl_init_zero
-#define S_cl_and               CPerlObj::S_cl_and
-#define cl_and                 S_cl_and
-#define S_cl_or                        CPerlObj::S_cl_or
-#define cl_or                  S_cl_or
-#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_checkposixcc         CPerlObj::S_checkposixcc
-#define checkposixcc           S_checkposixcc
-#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_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_reghop               CPerlObj::S_reghop
-#define reghop                 S_reghop
-#define S_reghop3              CPerlObj::S_reghop3
-#define reghop3                        S_reghop3
-#define S_reghopmaybe          CPerlObj::S_reghopmaybe
-#define reghopmaybe            S_reghopmaybe
-#define S_reghopmaybe3         CPerlObj::S_reghopmaybe3
-#define reghopmaybe3           S_reghopmaybe3
-#define S_find_byclass         CPerlObj::S_find_byclass
-#define find_byclass           S_find_byclass
-#endif
-#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
-#   ifdef DEBUGGING
-#define S_deb_curcv            CPerlObj::S_deb_curcv
-#define deb_curcv              S_deb_curcv
-#define S_debprof              CPerlObj::S_debprof
-#define debprof                        S_debprof
-#   endif
-#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(USE_ITHREADS) && (defined(PERL_IN_SHAREDSV_C) || defined(PERL_DECL_PROT))
-#define Perl_sharedsv_init     CPerlObj::Perl_sharedsv_init
-#define sharedsv_init          Perl_sharedsv_init
-#define Perl_sharedsv_new      CPerlObj::Perl_sharedsv_new
-#define sharedsv_new           Perl_sharedsv_new
-#define Perl_sharedsv_find     CPerlObj::Perl_sharedsv_find
-#define sharedsv_find          Perl_sharedsv_find
-#define Perl_sharedsv_lock     CPerlObj::Perl_sharedsv_lock
-#define sharedsv_lock          Perl_sharedsv_lock
-#define Perl_sharedsv_unlock   CPerlObj::Perl_sharedsv_unlock
-#define sharedsv_unlock                Perl_sharedsv_unlock
-#define Perl_sharedsv_unlock_scope     CPerlObj::Perl_sharedsv_unlock_scope
-#define sharedsv_unlock_scope  Perl_sharedsv_unlock_scope
-#define Perl_sharedsv_thrcnt_inc       CPerlObj::Perl_sharedsv_thrcnt_inc
-#define sharedsv_thrcnt_inc    Perl_sharedsv_thrcnt_inc
-#define Perl_sharedsv_thrcnt_dec       CPerlObj::Perl_sharedsv_thrcnt_dec
-#define sharedsv_thrcnt_dec    Perl_sharedsv_thrcnt_dec
-#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_xpviv           CPerlObj::S_more_xpviv
-#define more_xpviv             S_more_xpviv
-#define S_more_xpvnv           CPerlObj::S_more_xpvnv
-#define more_xpvnv             S_more_xpvnv
-#define S_more_xpvcv           CPerlObj::S_more_xpvcv
-#define more_xpvcv             S_more_xpvcv
-#define S_more_xpvav           CPerlObj::S_more_xpvav
-#define more_xpvav             S_more_xpvav
-#define S_more_xpvhv           CPerlObj::S_more_xpvhv
-#define more_xpvhv             S_more_xpvhv
-#define S_more_xpvmg           CPerlObj::S_more_xpvmg
-#define more_xpvmg             S_more_xpvmg
-#define S_more_xpvlv           CPerlObj::S_more_xpvlv
-#define more_xpvlv             S_more_xpvlv
-#define S_more_xpvbm           CPerlObj::S_more_xpvbm
-#define more_xpvbm             S_more_xpvbm
-#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_xpviv            CPerlObj::S_new_xpviv
-#define new_xpviv              S_new_xpviv
-#define S_new_xpvnv            CPerlObj::S_new_xpvnv
-#define new_xpvnv              S_new_xpvnv
-#define S_new_xpvcv            CPerlObj::S_new_xpvcv
-#define new_xpvcv              S_new_xpvcv
-#define S_new_xpvav            CPerlObj::S_new_xpvav
-#define new_xpvav              S_new_xpvav
-#define S_new_xpvhv            CPerlObj::S_new_xpvhv
-#define new_xpvhv              S_new_xpvhv
-#define S_new_xpvmg            CPerlObj::S_new_xpvmg
-#define new_xpvmg              S_new_xpvmg
-#define S_new_xpvlv            CPerlObj::S_new_xpvlv
-#define new_xpvlv              S_new_xpvlv
-#define S_new_xpvbm            CPerlObj::S_new_xpvbm
-#define new_xpvbm              S_new_xpvbm
-#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_xpviv            CPerlObj::S_del_xpviv
-#define del_xpviv              S_del_xpviv
-#define S_del_xpvnv            CPerlObj::S_del_xpvnv
-#define del_xpvnv              S_del_xpvnv
-#define S_del_xpvcv            CPerlObj::S_del_xpvcv
-#define del_xpvcv              S_del_xpvcv
-#define S_del_xpvav            CPerlObj::S_del_xpvav
-#define del_xpvav              S_del_xpvav
-#define S_del_xpvhv            CPerlObj::S_del_xpvhv
-#define del_xpvhv              S_del_xpvhv
-#define S_del_xpvmg            CPerlObj::S_del_xpvmg
-#define del_xpvmg              S_del_xpvmg
-#define S_del_xpvlv            CPerlObj::S_del_xpvlv
-#define del_xpvlv              S_del_xpvlv
-#define S_del_xpvbm            CPerlObj::S_del_xpvbm
-#define del_xpvbm              S_del_xpvbm
-#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_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
-#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
-#  ifdef DEBUGGING
-#define S_del_sv               CPerlObj::S_del_sv
-#define del_sv                 S_del_sv
-#  endif
-#  if !defined(NV_PRESERVES_UV)
-#define S_sv_2iuv_non_preserve CPerlObj::S_sv_2iuv_non_preserve
-#define sv_2iuv_non_preserve   S_sv_2iuv_non_preserve
-#  endif
-#define S_expect_number                CPerlObj::S_expect_number
-#define expect_number          S_expect_number
-#  if defined(USE_ITHREADS)
-#define S_gv_share             CPerlObj::S_gv_share
-#define gv_share               S_gv_share
-#  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_pending_ident                CPerlObj::S_pending_ident
-#define pending_ident          S_pending_ident
-#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_swallow_bom          CPerlObj::S_swallow_bom
-#define swallow_bom            S_swallow_bom
-#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_find_in_my_stash     CPerlObj::S_find_in_my_stash
-#define find_in_my_stash       S_find_in_my_stash
-#define S_new_constant         CPerlObj::S_new_constant
-#define new_constant           S_new_constant
-#  if defined(DEBUGGING)
-#define S_tokereport           CPerlObj::S_tokereport
-#define tokereport             S_tokereport
-#  endif
-#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
-#if 0
-#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
-#endif
-#  if defined(CRIPPLED_CC)
-#define S_uni                  CPerlObj::S_uni
-#define uni                    S_uni
-#  endif
-#  if defined(PERL_CR_FILTER)
-#define S_cr_textfilter                CPerlObj::S_cr_textfilter
-#define cr_textfilter          S_cr_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_LOCALE_C) || defined(PERL_DECL_PROT)
-#define S_stdize_locale                CPerlObj::S_stdize_locale
-#define stdize_locale          S_stdize_locale
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#define S_closest_cop          CPerlObj::S_closest_cop
-#define closest_cop            S_closest_cop
-#define S_mess_alloc           CPerlObj::S_mess_alloc
-#define mess_alloc             S_mess_alloc
-#  if defined(LEAKTEST)
-#define S_xstat                        CPerlObj::S_xstat
-#define xstat                  S_xstat
-#  endif
-#endif
-#if defined(PERL_OBJECT)
-#endif
-#define Perl_sv_setsv_flags    CPerlObj::Perl_sv_setsv_flags
-#define sv_setsv_flags         Perl_sv_setsv_flags
-#define Perl_sv_catpvn_flags   CPerlObj::Perl_sv_catpvn_flags
-#define sv_catpvn_flags                Perl_sv_catpvn_flags
-#define Perl_sv_catsv_flags    CPerlObj::Perl_sv_catsv_flags
-#define sv_catsv_flags         Perl_sv_catsv_flags
-#define Perl_sv_utf8_upgrade_flags     CPerlObj::Perl_sv_utf8_upgrade_flags
-#define sv_utf8_upgrade_flags  Perl_sv_utf8_upgrade_flags
-#define Perl_sv_pvn_force_flags        CPerlObj::Perl_sv_pvn_force_flags
-#define sv_pvn_force_flags     Perl_sv_pvn_force_flags
-#define Perl_sv_2pv_flags      CPerlObj::Perl_sv_2pv_flags
-#define sv_2pv_flags           Perl_sv_2pv_flags
-#define Perl_my_atof2          CPerlObj::Perl_my_atof2
-#define my_atof2               Perl_my_atof2
-#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_exit           CPerlObj::Perl_ck_exit
-#define ck_exit                        Perl_ck_exit
-#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_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_join           CPerlObj::Perl_ck_join
-#define ck_join                        Perl_ck_join
-#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_method         CPerlObj::Perl_ck_method
-#define ck_method              Perl_ck_method
-#define Perl_ck_null           CPerlObj::Perl_ck_null
-#define ck_null                        Perl_ck_null
-#define Perl_ck_open           CPerlObj::Perl_ck_open
-#define ck_open                        Perl_ck_open
-#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_return         CPerlObj::Perl_ck_return
-#define ck_return              Perl_ck_return
-#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_sassign                CPerlObj::Perl_ck_sassign
-#define ck_sassign             Perl_ck_sassign
-#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_substr         CPerlObj::Perl_ck_substr
-#define ck_substr              Perl_ck_substr
-#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_leavesublv     CPerlObj::Perl_pp_leavesublv
-#define pp_leavesublv          Perl_pp_leavesublv
-#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_method_named   CPerlObj::Perl_pp_method_named
-#define pp_method_named                Perl_pp_method_named
-#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_setstate       CPerlObj::Perl_pp_setstate
-#define pp_setstate            Perl_pp_setstate
-#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 */
-
-/* Compatibility stubs.  Compile extensions with -DPERL_NOCOMPAT to
-   disable them.
- */
-
-#if !defined(PERL_CORE)
-#  define sv_setptrobj(rv,ptr,name)    sv_setref_iv(rv,name,PTR2IV(ptr))
-#  define sv_setptrref(rv,ptr)         sv_setref_iv(rv,Nullch,PTR2IV(ptr))
-#endif
-
-#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) && !defined(PERL_BINCOMPAT_5005)
-
-/* Compatibility for various misnamed functions.  All functions
-   in the API that begin with "perl_" (not "Perl_") take an explicit
-   interpreter context pointer.
-   The following are not like that, but since they had a "perl_"
-   prefix in previous versions, we provide compatibility macros.
- */
-#  define perl_atexit(a,b)             call_atexit(a,b)
-#  define perl_call_argv(a,b,c)                call_argv(a,b,c)
-#  define perl_call_pv(a,b)            call_pv(a,b)
-#  define perl_call_method(a,b)                call_method(a,b)
-#  define perl_call_sv(a,b)            call_sv(a,b)
-#  define perl_eval_sv(a,b)            eval_sv(a,b)
-#  define perl_eval_pv(a,b)            eval_pv(a,b)
-#  define perl_require_pv(a)           require_pv(a)
-#  define perl_get_sv(a,b)             get_sv(a,b)
-#  define perl_get_av(a,b)             get_av(a,b)
-#  define perl_get_hv(a,b)             get_hv(a,b)
-#  define perl_get_cv(a,b)             get_cv(a,b)
-#  define perl_init_i18nl10n(a)                init_i18nl10n(a)
-#  define perl_init_i18nl14n(a)                init_i18nl14n(a)
-#  define perl_new_ctype(a)            new_ctype(a)
-#  define perl_new_collate(a)          new_collate(a)
-#  define perl_new_numeric(a)          new_numeric(a)
-
-/* varargs functions can't be handled with CPP macros. :-(
-   This provides a set of compatibility functions that don't take
-   an extra argument but grab the context pointer using the macro
-   dTHX.
- */
-#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_OBJECT)
 #  define croak                                Perl_croak_nocontext
 #  define deb                          Perl_deb_nocontext
 #  define die                          Perl_die_nocontext
index 3788e2e..8460561 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -266,7 +266,7 @@ sub hide ($$) {
 
 sub bincompat_var ($$) {
     my ($pfx, $sym) = @_;
-    my $arg = ($pfx eq 'G' ? 'NULL' : 'aTHXo');
+    my $arg = ($pfx eq 'G' ? 'NULL' : 'aTHX');
     undefine("PL_$sym") . hide("PL_$sym", "(*Perl_${pfx}${sym}_ptr($arg))");
 }
 
@@ -331,7 +331,6 @@ print EM <<'END';
 
 /* Hide global symbols */
 
-#if !defined(PERL_OBJECT)
 #if !defined(PERL_IMPLICIT_CONTEXT)
 
 END
@@ -425,43 +424,11 @@ for $sym (sort keys %ppsym) {
 print EM <<'END';
 
 #endif /* PERL_IMPLICIT_CONTEXT */
-#else  /* PERL_OBJECT */
 
 END
 
-walk_table {
-    my $ret = "";
-    if (@_ == 1) {
-       my $arg = shift;
-       $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
-    }
-    else {
-       my ($flags,$retval,$func,@args) = @_;
-       if ($flags =~ /s/) {
-           $ret .= hide("S_$func","CPerlObj::S_$func") if $flags !~ /j/;
-           $ret .= hide($func,"S_$func");
-       }
-       elsif ($flags =~ /p/) {
-           $ret .= hide("Perl_$func","CPerlObj::Perl_$func") if $flags !~ /j/;
-           $ret .= hide($func,"Perl_$func");
-       }
-       else {
-           $ret .= hide($func,"CPerlObj::$func") if $flags !~ /j/;
-       }
-    }
-    $ret;
-} \*EM;
-
-for $sym (sort keys %ppsym) {
-    $sym =~ s/^Perl_//;
-    print EM hide("Perl_$sym", "CPerlObj::Perl_$sym");
-    print EM hide($sym, "Perl_$sym");
-}
-
 print EM <<'END';
 
-#endif /* PERL_OBJECT */
-
 /* Compatibility stubs.  Compile extensions with -DPERL_NOCOMPAT to
    disable them.
  */
@@ -502,7 +469,7 @@ print EM <<'END';
    an extra argument but grab the context pointer using the macro
    dTHX.
  */
-#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_OBJECT)
+#if defined(PERL_IMPLICIT_CONTEXT)
 #  define croak                                Perl_croak_nocontext
 #  define deb                          Perl_deb_nocontext
 #  define die                          Perl_die_nocontext
@@ -554,14 +521,13 @@ print EM <<'END';
 /* (Doing namespace management portably in C is really gross.) */
 
 /*
-   The following combinations of MULTIPLICITY, USE_5005THREADS, PERL_OBJECT
+   The following combinations of MULTIPLICITY, USE_5005THREADS
    and PERL_IMPLICIT_CONTEXT are supported:
      1) none
      2) MULTIPLICITY   # supported for compatibility
      3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
      4) USE_5005THREADS && PERL_IMPLICIT_CONTEXT
      5) MULTIPLICITY && USE_5005THREADS && PERL_IMPLICIT_CONTEXT
-     6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT
 
    All other combinations of these flags are errors.
 
@@ -586,10 +552,6 @@ for $sym (sort keys %thread) {
 
 print EM <<'END';
 
-#  if defined(PERL_OBJECT)
-#    include "error: PERL_OBJECT + MULTIPLICITY don't go together"
-#  endif
-
 #  if defined(USE_5005THREADS)
 /* case 5 above */
 
@@ -616,24 +578,6 @@ print EM <<'END';
 
 #else  /* !MULTIPLICITY */
 
-#  if defined(PERL_OBJECT)
-/* case 6 above */
-
-END
-
-for $sym (sort keys %thread) {
-    print EM multon($sym,'T','aTHXo->interp.');
-}
-
-
-for $sym (sort keys %intrp) {
-    print EM multon($sym,'I','aTHXo->interp.');
-}
-
-print EM <<'END';
-
-#  else        /* !PERL_OBJECT */
-
 /* cases 1 and 4 above */
 
 END
@@ -644,7 +588,7 @@ for $sym (sort keys %intrp) {
 
 print EM <<'END';
 
-#    if defined(USE_5005THREADS)
+#  if defined(USE_5005THREADS)
 /* case 4 above */
 
 END
@@ -655,7 +599,7 @@ for $sym (sort keys %thread) {
 
 print EM <<'END';
 
-#    else      /* !USE_5005THREADS */
+#  else        /* !USE_5005THREADS */
 /* case 1 above */
 
 END
@@ -666,8 +610,7 @@ for $sym (sort keys %thread) {
 
 print EM <<'END';
 
-#    endif     /* USE_5005THREADS */
-#  endif       /* PERL_OBJECT */
+#  endif       /* USE_5005THREADS */
 #endif /* MULTIPLICITY */
 
 #if defined(PERL_GLOBAL_STRUCT)
@@ -707,63 +650,6 @@ END
 
 close(EM);
 
-unlink 'objXSUB.h';
-open(OBX, '> objXSUB.h')
-    or die "Can't create objXSUB.h: $!\n";
-
-print OBX <<'EOT';
-/* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
-   This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
-   perlvars.h and thrdvar.h.  Any changes made here will be lost!
-*/
-
-#ifndef __objXSUB_h__
-#define __objXSUB_h__
-
-/* method calls via pPerl (static functions without a "this" pointer need these) */
-
-#if defined(PERL_CORE) && defined(PERL_OBJECT)
-
-/* XXX soon to be eliminated, only a few things in PERLCORE need these now */
-
-EOT
-
-walk_table {
-    my $ret = "";
-    if (@_ == 1) {
-       my $arg = shift;
-       $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
-    }
-    else {
-       my ($flags,$retval,$func,@args) = @_;
-       if ($flags =~ /A/ && $flags !~ /j/) { # API function needing macros
-           if ($flags =~ /p/) {
-               $ret .= undefine("Perl_$func") . hide("Perl_$func","pPerl->Perl_$func");
-               $ret .= undefine($func) . hide($func,"Perl_$func");
-           }
-           else {
-               $ret .= undefine($func) . hide($func,"pPerl->$func");
-           }
-       }
-    }
-    $ret;
-} \*OBX;
-
-# NOTE: not part of API
-#for $sym (sort keys %ppsym) {
-#    $sym =~ s/^Perl_//;
-#    print OBX undefine("Perl_$sym") . hide("Perl_$sym", "pPerl->Perl_$sym");
-#    print OBX undefine($sym) . hide($sym, "Perl_$sym");
-#}
-
-print OBX <<'EOT';
-
-#endif  /* PERL_CORE && PERL_OBJECT */
-#endif /* __objXSUB_h__ */
-EOT
-
-close(OBX);
-
 unlink 'perlapi.h';
 unlink 'perlapi.c';
 open(CAPI, '> perlapi.c') or die "Can't create perlapi.c: $!\n";
@@ -779,14 +665,7 @@ print CAPIH <<'EOT';
 #ifndef __perlapi_h__
 #define __perlapi_h__
 
-#if defined(PERL_OBJECT) || defined (MULTIPLICITY)
-
-#if defined(PERL_OBJECT)
-#  undef  aTHXo
-#  define aTHXo                        pPerl
-#  undef  aTHXo_
-#  define aTHXo_               aTHXo,
-#endif /* PERL_OBJECT */
+#if defined (MULTIPLICITY)
 
 START_EXTERN_C
 
@@ -794,9 +673,9 @@ START_EXTERN_C
 #undef PERLVARA
 #undef PERLVARI
 #undef PERLVARIC
-#define PERLVAR(v,t)   EXTERN_C t* Perl_##v##_ptr(pTHXo);
+#define PERLVAR(v,t)   EXTERN_C t* Perl_##v##_ptr(pTHX);
 #define PERLVARA(v,n,t)        typedef t PL_##v##_t[n];                        \
-                       EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHXo);
+                       EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX);
 #define PERLVARI(v,t,i)        PERLVAR(v,t)
 #define PERLVARIC(v,t,i) PERLVAR(v, const t)
 
@@ -846,7 +725,7 @@ EXT void *PL_force_link_funcs[] = {
 };
 #endif /* DOINIT */
 
-START_EXTERN_C
+END_EXTERN_C
 
 #endif /* PERL_NO_FORCE_LINK */
 
@@ -869,7 +748,7 @@ foreach $sym (sort keys %globvar) {
 print CAPIH <<'EOT';
 
 #endif /* !PERL_CORE */
-#endif /* PERL_OBJECT || MULTIPLICITY */
+#endif /* MULTIPLICITY */
 
 #endif /* __perlapi_h__ */
 
@@ -886,7 +765,7 @@ print CAPI <<'EOT';
 #include "perl.h"
 #include "perlapi.h"
 
-#if defined(PERL_OBJECT) || defined (MULTIPLICITY)
+#if defined (MULTIPLICITY)
 
 /* accessor functions for Perl variables (provides binary compatibility) */
 START_EXTERN_C
@@ -896,17 +775,10 @@ START_EXTERN_C
 #undef PERLVARI
 #undef PERLVARIC
 
-#if defined(PERL_OBJECT)
-#define PERLVAR(v,t)   t* Perl_##v##_ptr(pTHXo)                        \
-                       { return &(aTHXo->interp.v); }
-#define PERLVARA(v,n,t)        PL_##v##_t* Perl_##v##_ptr(pTHXo)               \
-                       { return &(aTHXo->interp.v); }
-#else  /* MULTIPLICITY */
 #define PERLVAR(v,t)   t* Perl_##v##_ptr(pTHX)                         \
                        { return &(aTHX->v); }
 #define PERLVARA(v,n,t)        PL_##v##_t* Perl_##v##_ptr(pTHX)                \
                        { return &(aTHX->v); }
-#endif
 
 #define PERLVARI(v,t,i)        PERLVAR(v,t)
 #define PERLVARIC(v,t,i) PERLVAR(v, const t)
@@ -916,12 +788,12 @@ START_EXTERN_C
 
 #undef PERLVAR
 #undef PERLVARA
-#define PERLVAR(v,t)   t* Perl_##v##_ptr(pTHXo)                        \
+#define PERLVAR(v,t)   t* Perl_##v##_ptr(pTHX                        \
                        { return &(PL_##v); }
-#define PERLVARA(v,n,t)        PL_##v##_t* Perl_##v##_ptr(pTHXo)               \
+#define PERLVARA(v,n,t)        PL_##v##_t* Perl_##v##_ptr(pTHX               \
                        { return &(PL_##v); }
 #undef PERLVARIC
-#define PERLVARIC(v,t,i)       const t* Perl_##v##_ptr(pTHXo)          \
+#define PERLVARIC(v,t,i)       const t* Perl_##v##_ptr(pTHX          \
                        { return (const t *)&(PL_##v); }
 #include "perlvars.h"
 
@@ -930,14 +802,16 @@ START_EXTERN_C
 #undef PERLVARI
 #undef PERLVARIC
 
-#if defined(PERL_OBJECT)
-
-/* C-API layer for PERL_OBJECT */
+END_EXTERN_C
 
+#endif /* MULTIPLICITY */
 EOT
 
+close(CAPI);
+
 # functions that take va_list* for implementing vararg functions
 # NOTE: makedef.pl must be updated if you add symbols to %vfuncs
+# XXX %vfuncs currently unused
 my %vfuncs = qw(
     Perl_croak                 Perl_vcroak
     Perl_warn                  Perl_vwarn
@@ -956,138 +830,6 @@ my %vfuncs = qw(
     Perl_default_protect       Perl_vdefault_protect
 );
 
-sub emit_func {
-    my ($addcontext, $rettype,$func,@args) = @_;
-    my @aargs = @args;
-    my $a;
-    for $a (@aargs) { $a =~ s/^.*\b(\w+)$/$1/ }
-    my $ctxarg = '';
-    if (not $addcontext) {
-       $ctxarg = 'pTHXo';
-       $ctxarg .= '_ ' if @args;
-    }
-    my $decl = '';
-    if ($addcontext) {
-       $decl .= "    dTHXo;\n";
-    }
-    local $" = ', ';
-    my $return = ($rettype =~ /^\s*(void|Free_t|Signal_t)\s*$/
-                 ? '' : 'return ');
-    my $emitval = '';
-    if (@args and $args[$#args] =~ /\.\.\./) {
-       pop @aargs;
-       my $retarg = '';
-       my $ctxfunc = $func;
-       $ctxfunc =~ s/_nocontext$//;
-       return $emitval unless exists $vfuncs{$ctxfunc};
-       if (length $return) {
-           $decl .= "    $rettype retval;\n";
-           $retarg .= "retval = ";
-           $return = "\n    " . $return . "retval;\n";
-       }
-       $emitval .= <<EOT
-$rettype
-$func($ctxarg@args)
-{
-$decl    va_list args;
-    va_start(args, $aargs[$#aargs]);
-    $retarg((CPerlObj*)pPerl)->$vfuncs{$ctxfunc}(@aargs, &args);
-    va_end(args);$return
-}
-EOT
-    }
-    else {
-       $emitval .= <<EOT
-$rettype
-$func($ctxarg@args)
-{
-$decl    $return((CPerlObj*)pPerl)->$func(@aargs);
-}
-EOT
-    }
-    $emitval;
-}
-
-# XXXX temporary hack
-for $sym (qw(
-               perl_construct
-               perl_destruct
-               perl_free
-               perl_run
-               perl_parse
-               ))
-{
-    $skipapi_funcs{$sym}++;
-}
-
-walk_table {
-    my $ret = "";
-    if (@_ == 1) {
-       my $arg = shift;
-       $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
-    }
-    else {
-       my ($flags,$retval,$func,@args) = @_;
-       return $ret if exists $skipapi_funcs{$func};
-       if ($flags =~ /A/ && $flags !~ /j/) { # in public API, needed for XSUBS
-           $ret .= "\n";
-           my $addctx = 1 if $flags =~ /n/;
-           if ($flags =~ /p/) {
-               $ret .= undefine("Perl_$func");
-               $ret .= emit_func($addctx,$retval,"Perl_$func",@args);
-           }
-           else {
-               $ret .= undefine($func);
-               $ret .= emit_func($addctx,$retval,$func,@args);
-           }
-       }
-    }
-    $ret;
-} \*CAPI;
-
-# NOTE: not part of the API
-#for $sym (sort keys %ppsym) {
-#    $sym =~ s/^Perl_//;
-#    print CAPI "\n";
-#    print CAPI undefine("Perl_$sym");
-#    if ($sym =~ /^ck_/) {
-#      print CAPI emit_func(0, 'OP *',"Perl_$sym",'OP *o');
-#    }
-#   else {                                     # pp_foo
-#      print CAPI emit_func(0, 'OP *',"Perl_$sym");
-#    }
-#}
-
-print CAPI <<'EOT';
-
-#undef Perl_fprintf_nocontext
-int
-Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
-{
-    dTHXo;
-    va_list(arglist);
-    va_start(arglist, format);
-    return (*PL_StdIO->pVprintf)(PL_StdIO, stream, format, arglist);
-}
-
-#undef Perl_printf_nocontext
-int
-Perl_printf_nocontext(const char *format, ...)
-{
-    dTHXo;
-    va_list(arglist);
-    va_start(arglist, format);
-    return (*PL_StdIO->pVprintf)(PL_StdIO, PerlIO_stdout(), format, arglist);
-}
-
-END_EXTERN_C
-
-#endif /* PERL_OBJECT */
-#endif /* PERL_OBJECT || MULTIPLICITY */
-EOT
-
-close(CAPI);
-
 # autogenerate documentation from comments in source files
 
 my %apidocs;
@@ -1318,7 +1060,6 @@ __END__
 :      f               function takes printf style format string, varargs
 :      r               function never returns
 :       o              has no compatibility macro (#define foo Perl_foo)
-:       j              not a member of CPerlObj
 :       x              not exported
 :       M              may change
 :
@@ -1330,24 +1071,24 @@ __END__
 START_EXTERN_C
 
 #if defined(PERL_IMPLICIT_SYS)
-Ajno   |PerlInterpreter*       |perl_alloc_using \
+Ano    |PerlInterpreter*       |perl_alloc_using \
                                |struct IPerlMem* m|struct IPerlMem* ms \
                                |struct IPerlMem* mp|struct IPerlEnv* e \
                                |struct IPerlStdIO* io|struct IPerlLIO* lio \
                                |struct IPerlDir* d|struct IPerlSock* s \
                                |struct IPerlProc* p
 #endif
-Ajnod  |PerlInterpreter*       |perl_alloc
-Ajnod  |void   |perl_construct |PerlInterpreter* interp
-Ajnod  |int    |perl_destruct  |PerlInterpreter* interp
-Ajnod  |void   |perl_free      |PerlInterpreter* interp
-Ajnod  |int    |perl_run       |PerlInterpreter* interp
-Ajnod  |int    |perl_parse     |PerlInterpreter* interp|XSINIT_t xsinit \
+Anod   |PerlInterpreter*       |perl_alloc
+Anod   |void   |perl_construct |PerlInterpreter* interp
+Anod   |int    |perl_destruct  |PerlInterpreter* interp
+Anod   |void   |perl_free      |PerlInterpreter* interp
+Anod   |int    |perl_run       |PerlInterpreter* interp
+Anod   |int    |perl_parse     |PerlInterpreter* interp|XSINIT_t xsinit \
                                |int argc|char** argv|char** env
 #if defined(USE_ITHREADS)
-Ajnod  |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
+Anod   |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
 #  if defined(PERL_IMPLICIT_SYS)
-Ajno   |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
+Ano    |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
                                |struct IPerlMem* m|struct IPerlMem* ms \
                                |struct IPerlMem* mp|struct IPerlEnv* e \
                                |struct IPerlStdIO* io|struct IPerlLIO* lio \
@@ -1356,37 +1097,21 @@ Ajno    |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
 #  endif
 #endif
 
-Ajnop  |Malloc_t|malloc        |MEM_SIZE nbytes
-Ajnop  |Malloc_t|calloc        |MEM_SIZE elements|MEM_SIZE size
-Ajnop  |Malloc_t|realloc       |Malloc_t where|MEM_SIZE nbytes
-Ajnop  |Free_t |mfree          |Malloc_t where
+Anop   |Malloc_t|malloc        |MEM_SIZE nbytes
+Anop   |Malloc_t|calloc        |MEM_SIZE elements|MEM_SIZE size
+Anop   |Malloc_t|realloc       |Malloc_t where|MEM_SIZE nbytes
+Anop   |Free_t |mfree          |Malloc_t where
 #if defined(MYMALLOC)
-jnp    |MEM_SIZE|malloced_size |void *p
+np     |MEM_SIZE|malloced_size |void *p
 #endif
 
-Ajnp   |void*  |get_context
-Ajnp   |void   |set_context    |void *thx
+Anp    |void*  |get_context
+Anp    |void   |set_context    |void *thx
 
 END_EXTERN_C
 
 /* functions with flag 'n' should come before here */
-#if defined(PERL_OBJECT)
-class CPerlObj {
-public:
-       struct interpreter interp;
-       CPerlObj(IPerlMem*, IPerlMem*, IPerlMem*, IPerlEnv*, IPerlStdIO*,
-           IPerlLIO*, IPerlDir*, IPerlSock*, IPerlProc*);
-       void* operator new(size_t nSize, IPerlMem *pvtbl);
-#ifndef __BORLANDC__
-       static void operator delete(void* pPerl, IPerlMem *pvtbl);
-#endif
-       int do_aspawn (void *vreally, void **vmark, void **vsp);
-#endif
-#if defined(PERL_OBJECT)
-public:
-#else
 START_EXTERN_C
-#endif
 #  include "pp_proto.h"
 Ap     |SV*    |amagic_call    |SV* left|SV* right|int method|int dir
 Ap     |bool   |Gv_AMupdate    |HV* stash
@@ -1775,11 +1500,9 @@ Anp      |I32    |my_memcmp      |const char* s1|const char* s2|I32 len
 #if !defined(HAS_MEMSET)
 Anp    |void*  |my_memset      |char* loc|I32 ch|I32 len
 #endif
-#if !defined(PERL_OBJECT)
 Ap     |I32    |my_pclose      |PerlIO* ptr
 Ap     |PerlIO*|my_popen       |char* cmd|char* mode
 Ap     |PerlIO*|my_popen_list  |char* mode|int n|SV ** args
-#endif
 Ap     |void   |my_setenv      |char* nam|char* val
 Ap     |I32    |my_stat
 Ap     |char * |my_strftime    |char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
@@ -1862,14 +1585,6 @@ p        |void   |pad_reset
 p      |void   |pad_swipe      |PADOFFSET po
 p      |void   |peep           |OP* o
 dopM   |PerlIO*|start_glob     |SV* pattern|IO *io
-#if defined(PERL_OBJECT)
-Aox    |void   |Perl_construct
-Aox    |void   |Perl_destruct
-Aox    |void   |Perl_free
-Aox    |int    |Perl_run
-Aox    |int    |Perl_parse     |XSINIT_t xsinit \
-                               |int argc|char** argv|char** env
-#endif
 #if defined(USE_5005THREADS)
 Ap     |struct perl_thread*    |new_struct_thread|struct perl_thread *t
 #endif
@@ -2253,11 +1968,7 @@ Ap |char * |custom_op_name|OP* op
 Ap |char * |custom_op_desc|OP* op
 #endif
 
-#if defined(PERL_OBJECT)
-protected:
-#else
 END_EXTERN_C
-#endif
 
 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 s      |I32    |avhv_index_sv  |SV* sv
@@ -2614,10 +2325,6 @@ s        |void   |xstat          |int
 #  endif
 #endif
 
-#if defined(PERL_OBJECT)
-};
-#endif
-
 START_EXTERN_C
 
 Apd    |void   |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags
index 9198d2e..4fa56ac 100644 (file)
@@ -6,14 +6,13 @@
 /* (Doing namespace management portably in C is really gross.) */
 
 /*
-   The following combinations of MULTIPLICITY, USE_5005THREADS, PERL_OBJECT
+   The following combinations of MULTIPLICITY, USE_5005THREADS
    and PERL_IMPLICIT_CONTEXT are supported:
      1) none
      2) MULTIPLICITY   # supported for compatibility
      3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
      4) USE_5005THREADS && PERL_IMPLICIT_CONTEXT
      5) MULTIPLICITY && USE_5005THREADS && PERL_IMPLICIT_CONTEXT
-     6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT
 
    All other combinations of these flags are errors.
 
 #define PL_watchaddr           (vTHX->Twatchaddr)
 #define PL_watchok             (vTHX->Twatchok)
 
-#  if defined(PERL_OBJECT)
-#    include "error: PERL_OBJECT + MULTIPLICITY don't go together"
-#  endif
-
 #  if defined(USE_5005THREADS)
 /* case 5 above */
 
 
 #else  /* !MULTIPLICITY */
 
-#  if defined(PERL_OBJECT)
-/* case 6 above */
-
-#define PL_Sv                  (aTHXo->interp.TSv)
-#define PL_Xpv                 (aTHXo->interp.TXpv)
-#define PL_av_fetch_sv         (aTHXo->interp.Tav_fetch_sv)
-#define PL_bodytarget          (aTHXo->interp.Tbodytarget)
-#define PL_bostr               (aTHXo->interp.Tbostr)
-#define PL_chopset             (aTHXo->interp.Tchopset)
-#define PL_colors              (aTHXo->interp.Tcolors)
-#define PL_colorset            (aTHXo->interp.Tcolorset)
-#define PL_curcop              (aTHXo->interp.Tcurcop)
-#define PL_curpad              (aTHXo->interp.Tcurpad)
-#define PL_curpm               (aTHXo->interp.Tcurpm)
-#define PL_curstack            (aTHXo->interp.Tcurstack)
-#define PL_curstackinfo                (aTHXo->interp.Tcurstackinfo)
-#define PL_curstash            (aTHXo->interp.Tcurstash)
-#define PL_defoutgv            (aTHXo->interp.Tdefoutgv)
-#define PL_defstash            (aTHXo->interp.Tdefstash)
-#define PL_delaymagic          (aTHXo->interp.Tdelaymagic)
-#define PL_dirty               (aTHXo->interp.Tdirty)
-#define PL_dumpindent          (aTHXo->interp.Tdumpindent)
-#define PL_efloatbuf           (aTHXo->interp.Tefloatbuf)
-#define PL_efloatsize          (aTHXo->interp.Tefloatsize)
-#define PL_errors              (aTHXo->interp.Terrors)
-#define PL_extralen            (aTHXo->interp.Textralen)
-#define PL_firstgv             (aTHXo->interp.Tfirstgv)
-#define PL_formtarget          (aTHXo->interp.Tformtarget)
-#define PL_hv_fetch_ent_mh     (aTHXo->interp.Thv_fetch_ent_mh)
-#define PL_hv_fetch_sv         (aTHXo->interp.Thv_fetch_sv)
-#define PL_in_eval             (aTHXo->interp.Tin_eval)
-#define PL_last_in_gv          (aTHXo->interp.Tlast_in_gv)
-#define PL_lastgotoprobe       (aTHXo->interp.Tlastgotoprobe)
-#define PL_lastscream          (aTHXo->interp.Tlastscream)
-#define PL_localizing          (aTHXo->interp.Tlocalizing)
-#define PL_mainstack           (aTHXo->interp.Tmainstack)
-#define PL_markstack           (aTHXo->interp.Tmarkstack)
-#define PL_markstack_max       (aTHXo->interp.Tmarkstack_max)
-#define PL_markstack_ptr       (aTHXo->interp.Tmarkstack_ptr)
-#define PL_maxscream           (aTHXo->interp.Tmaxscream)
-#define PL_modcount            (aTHXo->interp.Tmodcount)
-#define PL_na                  (aTHXo->interp.Tna)
-#define PL_nrs                 (aTHXo->interp.Tnrs)
-#define PL_ofs_sv              (aTHXo->interp.Tofs_sv)
-#define PL_op                  (aTHXo->interp.Top)
-#define PL_opsave              (aTHXo->interp.Topsave)
-#define PL_peepp               (aTHXo->interp.Tpeepp)
-#define PL_protect             (aTHXo->interp.Tprotect)
-#define PL_reg_call_cc         (aTHXo->interp.Treg_call_cc)
-#define PL_reg_curpm           (aTHXo->interp.Treg_curpm)
-#define PL_reg_eval_set                (aTHXo->interp.Treg_eval_set)
-#define PL_reg_flags           (aTHXo->interp.Treg_flags)
-#define PL_reg_ganch           (aTHXo->interp.Treg_ganch)
-#define PL_reg_leftiter                (aTHXo->interp.Treg_leftiter)
-#define PL_reg_magic           (aTHXo->interp.Treg_magic)
-#define PL_reg_maxiter         (aTHXo->interp.Treg_maxiter)
-#define PL_reg_oldcurpm                (aTHXo->interp.Treg_oldcurpm)
-#define PL_reg_oldpos          (aTHXo->interp.Treg_oldpos)
-#define PL_reg_oldsaved                (aTHXo->interp.Treg_oldsaved)
-#define PL_reg_oldsavedlen     (aTHXo->interp.Treg_oldsavedlen)
-#define PL_reg_poscache                (aTHXo->interp.Treg_poscache)
-#define PL_reg_poscache_size   (aTHXo->interp.Treg_poscache_size)
-#define PL_reg_re              (aTHXo->interp.Treg_re)
-#define PL_reg_start_tmp       (aTHXo->interp.Treg_start_tmp)
-#define PL_reg_start_tmpl      (aTHXo->interp.Treg_start_tmpl)
-#define PL_reg_starttry                (aTHXo->interp.Treg_starttry)
-#define PL_reg_sv              (aTHXo->interp.Treg_sv)
-#define PL_reg_sv_utf8         (aTHXo->interp.Treg_sv_utf8)
-#define PL_reg_whilem_seen     (aTHXo->interp.Treg_whilem_seen)
-#define PL_regbol              (aTHXo->interp.Tregbol)
-#define PL_regcc               (aTHXo->interp.Tregcc)
-#define PL_regcode             (aTHXo->interp.Tregcode)
-#define PL_regcomp_parse       (aTHXo->interp.Tregcomp_parse)
-#define PL_regcomp_rx          (aTHXo->interp.Tregcomp_rx)
-#define PL_regcompat1          (aTHXo->interp.Tregcompat1)
-#define PL_regcompp            (aTHXo->interp.Tregcompp)
-#define PL_regdata             (aTHXo->interp.Tregdata)
-#define PL_regdummy            (aTHXo->interp.Tregdummy)
-#define PL_regendp             (aTHXo->interp.Tregendp)
-#define PL_regeol              (aTHXo->interp.Tregeol)
-#define PL_regexecp            (aTHXo->interp.Tregexecp)
-#define PL_regflags            (aTHXo->interp.Tregflags)
-#define PL_regfree             (aTHXo->interp.Tregfree)
-#define PL_regindent           (aTHXo->interp.Tregindent)
-#define PL_reginput            (aTHXo->interp.Treginput)
-#define PL_regint_start                (aTHXo->interp.Tregint_start)
-#define PL_regint_string       (aTHXo->interp.Tregint_string)
-#define PL_reginterp_cnt       (aTHXo->interp.Treginterp_cnt)
-#define PL_reglastcloseparen   (aTHXo->interp.Treglastcloseparen)
-#define PL_reglastparen                (aTHXo->interp.Treglastparen)
-#define PL_regnarrate          (aTHXo->interp.Tregnarrate)
-#define PL_regnaughty          (aTHXo->interp.Tregnaughty)
-#define PL_regnpar             (aTHXo->interp.Tregnpar)
-#define PL_regprecomp          (aTHXo->interp.Tregprecomp)
-#define PL_regprogram          (aTHXo->interp.Tregprogram)
-#define PL_regsawback          (aTHXo->interp.Tregsawback)
-#define PL_regseen             (aTHXo->interp.Tregseen)
-#define PL_regsize             (aTHXo->interp.Tregsize)
-#define PL_regstartp           (aTHXo->interp.Tregstartp)
-#define PL_regtill             (aTHXo->interp.Tregtill)
-#define PL_regxend             (aTHXo->interp.Tregxend)
-#define PL_restartop           (aTHXo->interp.Trestartop)
-#define PL_retstack            (aTHXo->interp.Tretstack)
-#define PL_retstack_ix         (aTHXo->interp.Tretstack_ix)
-#define PL_retstack_max                (aTHXo->interp.Tretstack_max)
-#define PL_rs                  (aTHXo->interp.Trs)
-#define PL_savestack           (aTHXo->interp.Tsavestack)
-#define PL_savestack_ix                (aTHXo->interp.Tsavestack_ix)
-#define PL_savestack_max       (aTHXo->interp.Tsavestack_max)
-#define PL_scopestack          (aTHXo->interp.Tscopestack)
-#define PL_scopestack_ix       (aTHXo->interp.Tscopestack_ix)
-#define PL_scopestack_max      (aTHXo->interp.Tscopestack_max)
-#define PL_screamfirst         (aTHXo->interp.Tscreamfirst)
-#define PL_screamnext          (aTHXo->interp.Tscreamnext)
-#define PL_secondgv            (aTHXo->interp.Tsecondgv)
-#define PL_seen_evals          (aTHXo->interp.Tseen_evals)
-#define PL_seen_zerolen                (aTHXo->interp.Tseen_zerolen)
-#define PL_sortcop             (aTHXo->interp.Tsortcop)
-#define PL_sortcxix            (aTHXo->interp.Tsortcxix)
-#define PL_sortstash           (aTHXo->interp.Tsortstash)
-#define PL_stack_base          (aTHXo->interp.Tstack_base)
-#define PL_stack_max           (aTHXo->interp.Tstack_max)
-#define PL_stack_sp            (aTHXo->interp.Tstack_sp)
-#define PL_start_env           (aTHXo->interp.Tstart_env)
-#define PL_statbuf             (aTHXo->interp.Tstatbuf)
-#define PL_statcache           (aTHXo->interp.Tstatcache)
-#define PL_statgv              (aTHXo->interp.Tstatgv)
-#define PL_statname            (aTHXo->interp.Tstatname)
-#define PL_tainted             (aTHXo->interp.Ttainted)
-#define PL_timesbuf            (aTHXo->interp.Ttimesbuf)
-#define PL_tmps_floor          (aTHXo->interp.Ttmps_floor)
-#define PL_tmps_ix             (aTHXo->interp.Ttmps_ix)
-#define PL_tmps_max            (aTHXo->interp.Ttmps_max)
-#define PL_tmps_stack          (aTHXo->interp.Ttmps_stack)
-#define PL_top_env             (aTHXo->interp.Ttop_env)
-#define PL_toptarget           (aTHXo->interp.Ttoptarget)
-#define PL_watchaddr           (aTHXo->interp.Twatchaddr)
-#define PL_watchok             (aTHXo->interp.Twatchok)
-#define PL_Argv                        (aTHXo->interp.IArgv)
-#define PL_Cmd                 (aTHXo->interp.ICmd)
-#define PL_DBcv                        (aTHXo->interp.IDBcv)
-#define PL_DBgv                        (aTHXo->interp.IDBgv)
-#define PL_DBline              (aTHXo->interp.IDBline)
-#define PL_DBsignal            (aTHXo->interp.IDBsignal)
-#define PL_DBsingle            (aTHXo->interp.IDBsingle)
-#define PL_DBsub               (aTHXo->interp.IDBsub)
-#define PL_DBtrace             (aTHXo->interp.IDBtrace)
-#define PL_Dir                 (aTHXo->interp.IDir)
-#define PL_Env                 (aTHXo->interp.IEnv)
-#define PL_LIO                 (aTHXo->interp.ILIO)
-#define PL_Mem                 (aTHXo->interp.IMem)
-#define PL_MemParse            (aTHXo->interp.IMemParse)
-#define PL_MemShared           (aTHXo->interp.IMemShared)
-#define PL_Proc                        (aTHXo->interp.IProc)
-#define PL_Sock                        (aTHXo->interp.ISock)
-#define PL_StdIO               (aTHXo->interp.IStdIO)
-#define PL_amagic_generation   (aTHXo->interp.Iamagic_generation)
-#define PL_an                  (aTHXo->interp.Ian)
-#define PL_argvgv              (aTHXo->interp.Iargvgv)
-#define PL_argvout_stack       (aTHXo->interp.Iargvout_stack)
-#define PL_argvoutgv           (aTHXo->interp.Iargvoutgv)
-#define PL_basetime            (aTHXo->interp.Ibasetime)
-#define PL_beginav             (aTHXo->interp.Ibeginav)
-#define PL_beginav_save                (aTHXo->interp.Ibeginav_save)
-#define PL_bitcount            (aTHXo->interp.Ibitcount)
-#define PL_bufend              (aTHXo->interp.Ibufend)
-#define PL_bufptr              (aTHXo->interp.Ibufptr)
-#define PL_checkav             (aTHXo->interp.Icheckav)
-#define PL_collation_ix                (aTHXo->interp.Icollation_ix)
-#define PL_collation_name      (aTHXo->interp.Icollation_name)
-#define PL_collation_standard  (aTHXo->interp.Icollation_standard)
-#define PL_collxfrm_base       (aTHXo->interp.Icollxfrm_base)
-#define PL_collxfrm_mult       (aTHXo->interp.Icollxfrm_mult)
-#define PL_compcv              (aTHXo->interp.Icompcv)
-#define PL_compiling           (aTHXo->interp.Icompiling)
-#define PL_comppad             (aTHXo->interp.Icomppad)
-#define PL_comppad_name                (aTHXo->interp.Icomppad_name)
-#define PL_comppad_name_fill   (aTHXo->interp.Icomppad_name_fill)
-#define PL_comppad_name_floor  (aTHXo->interp.Icomppad_name_floor)
-#define PL_cop_seqmax          (aTHXo->interp.Icop_seqmax)
-#define PL_copline             (aTHXo->interp.Icopline)
-#define PL_cred_mutex          (aTHXo->interp.Icred_mutex)
-#define PL_cryptseen           (aTHXo->interp.Icryptseen)
-#define PL_cshlen              (aTHXo->interp.Icshlen)
-#define PL_cshname             (aTHXo->interp.Icshname)
-#define PL_curcopdb            (aTHXo->interp.Icurcopdb)
-#define PL_curstname           (aTHXo->interp.Icurstname)
-#define PL_curthr              (aTHXo->interp.Icurthr)
-#define PL_custom_op_descs     (aTHXo->interp.Icustom_op_descs)
-#define PL_custom_op_names     (aTHXo->interp.Icustom_op_names)
-#define PL_dbargs              (aTHXo->interp.Idbargs)
-#define PL_debstash            (aTHXo->interp.Idebstash)
-#define PL_debug               (aTHXo->interp.Idebug)
-#define PL_defgv               (aTHXo->interp.Idefgv)
-#define PL_diehook             (aTHXo->interp.Idiehook)
-#define PL_doextract           (aTHXo->interp.Idoextract)
-#define PL_doswitches          (aTHXo->interp.Idoswitches)
-#define PL_dowarn              (aTHXo->interp.Idowarn)
-#define PL_e_script            (aTHXo->interp.Ie_script)
-#define PL_egid                        (aTHXo->interp.Iegid)
-#define PL_endav               (aTHXo->interp.Iendav)
-#define PL_envgv               (aTHXo->interp.Ienvgv)
-#define PL_errgv               (aTHXo->interp.Ierrgv)
-#define PL_error_count         (aTHXo->interp.Ierror_count)
-#define PL_euid                        (aTHXo->interp.Ieuid)
-#define PL_eval_cond           (aTHXo->interp.Ieval_cond)
-#define PL_eval_mutex          (aTHXo->interp.Ieval_mutex)
-#define PL_eval_owner          (aTHXo->interp.Ieval_owner)
-#define PL_eval_root           (aTHXo->interp.Ieval_root)
-#define PL_eval_start          (aTHXo->interp.Ieval_start)
-#define PL_evalseq             (aTHXo->interp.Ievalseq)
-#define PL_exit_flags          (aTHXo->interp.Iexit_flags)
-#define PL_exitlist            (aTHXo->interp.Iexitlist)
-#define PL_exitlistlen         (aTHXo->interp.Iexitlistlen)
-#define PL_expect              (aTHXo->interp.Iexpect)
-#define PL_fdpid               (aTHXo->interp.Ifdpid)
-#define PL_fdpid_mutex         (aTHXo->interp.Ifdpid_mutex)
-#define PL_filemode            (aTHXo->interp.Ifilemode)
-#define PL_forkprocess         (aTHXo->interp.Iforkprocess)
-#define PL_formfeed            (aTHXo->interp.Iformfeed)
-#define PL_generation          (aTHXo->interp.Igeneration)
-#define PL_gensym              (aTHXo->interp.Igensym)
-#define PL_gid                 (aTHXo->interp.Igid)
-#define PL_glob_index          (aTHXo->interp.Iglob_index)
-#define PL_globalstash         (aTHXo->interp.Iglobalstash)
-#define PL_he_arenaroot                (aTHXo->interp.Ihe_arenaroot)
-#define PL_he_root             (aTHXo->interp.Ihe_root)
-#define PL_hintgv              (aTHXo->interp.Ihintgv)
-#define PL_hints               (aTHXo->interp.Ihints)
-#define PL_in_clean_all                (aTHXo->interp.Iin_clean_all)
-#define PL_in_clean_objs       (aTHXo->interp.Iin_clean_objs)
-#define PL_in_my               (aTHXo->interp.Iin_my)
-#define PL_in_my_stash         (aTHXo->interp.Iin_my_stash)
-#define PL_incgv               (aTHXo->interp.Iincgv)
-#define PL_initav              (aTHXo->interp.Iinitav)
-#define PL_inplace             (aTHXo->interp.Iinplace)
-#define PL_last_lop            (aTHXo->interp.Ilast_lop)
-#define PL_last_lop_op         (aTHXo->interp.Ilast_lop_op)
-#define PL_last_swash_hv       (aTHXo->interp.Ilast_swash_hv)
-#define PL_last_swash_key      (aTHXo->interp.Ilast_swash_key)
-#define PL_last_swash_klen     (aTHXo->interp.Ilast_swash_klen)
-#define PL_last_swash_slen     (aTHXo->interp.Ilast_swash_slen)
-#define PL_last_swash_tmps     (aTHXo->interp.Ilast_swash_tmps)
-#define PL_last_uni            (aTHXo->interp.Ilast_uni)
-#define PL_lastfd              (aTHXo->interp.Ilastfd)
-#define PL_laststatval         (aTHXo->interp.Ilaststatval)
-#define PL_laststype           (aTHXo->interp.Ilaststype)
-#define PL_lex_brackets                (aTHXo->interp.Ilex_brackets)
-#define PL_lex_brackstack      (aTHXo->interp.Ilex_brackstack)
-#define PL_lex_casemods                (aTHXo->interp.Ilex_casemods)
-#define PL_lex_casestack       (aTHXo->interp.Ilex_casestack)
-#define PL_lex_defer           (aTHXo->interp.Ilex_defer)
-#define PL_lex_dojoin          (aTHXo->interp.Ilex_dojoin)
-#define PL_lex_expect          (aTHXo->interp.Ilex_expect)
-#define PL_lex_formbrack       (aTHXo->interp.Ilex_formbrack)
-#define PL_lex_inpat           (aTHXo->interp.Ilex_inpat)
-#define PL_lex_inwhat          (aTHXo->interp.Ilex_inwhat)
-#define PL_lex_op              (aTHXo->interp.Ilex_op)
-#define PL_lex_repl            (aTHXo->interp.Ilex_repl)
-#define PL_lex_starts          (aTHXo->interp.Ilex_starts)
-#define PL_lex_state           (aTHXo->interp.Ilex_state)
-#define PL_lex_stuff           (aTHXo->interp.Ilex_stuff)
-#define PL_lineary             (aTHXo->interp.Ilineary)
-#define PL_linestart           (aTHXo->interp.Ilinestart)
-#define PL_linestr             (aTHXo->interp.Ilinestr)
-#define PL_localpatches                (aTHXo->interp.Ilocalpatches)
-#define PL_main_cv             (aTHXo->interp.Imain_cv)
-#define PL_main_root           (aTHXo->interp.Imain_root)
-#define PL_main_start          (aTHXo->interp.Imain_start)
-#define PL_max_intro_pending   (aTHXo->interp.Imax_intro_pending)
-#define PL_maxo                        (aTHXo->interp.Imaxo)
-#define PL_maxsysfd            (aTHXo->interp.Imaxsysfd)
-#define PL_mess_sv             (aTHXo->interp.Imess_sv)
-#define PL_min_intro_pending   (aTHXo->interp.Imin_intro_pending)
-#define PL_minus_F             (aTHXo->interp.Iminus_F)
-#define PL_minus_a             (aTHXo->interp.Iminus_a)
-#define PL_minus_c             (aTHXo->interp.Iminus_c)
-#define PL_minus_l             (aTHXo->interp.Iminus_l)
-#define PL_minus_n             (aTHXo->interp.Iminus_n)
-#define PL_minus_p             (aTHXo->interp.Iminus_p)
-#define PL_modglobal           (aTHXo->interp.Imodglobal)
-#define PL_multi_close         (aTHXo->interp.Imulti_close)
-#define PL_multi_end           (aTHXo->interp.Imulti_end)
-#define PL_multi_open          (aTHXo->interp.Imulti_open)
-#define PL_multi_start         (aTHXo->interp.Imulti_start)
-#define PL_multiline           (aTHXo->interp.Imultiline)
-#define PL_nexttoke            (aTHXo->interp.Inexttoke)
-#define PL_nexttype            (aTHXo->interp.Inexttype)
-#define PL_nextval             (aTHXo->interp.Inextval)
-#define PL_nice_chunk          (aTHXo->interp.Inice_chunk)
-#define PL_nice_chunk_size     (aTHXo->interp.Inice_chunk_size)
-#define PL_nomemok             (aTHXo->interp.Inomemok)
-#define PL_nthreads            (aTHXo->interp.Inthreads)
-#define PL_nthreads_cond       (aTHXo->interp.Inthreads_cond)
-#define PL_nullstash           (aTHXo->interp.Inullstash)
-#define PL_numeric_compat1     (aTHXo->interp.Inumeric_compat1)
-#define PL_numeric_local       (aTHXo->interp.Inumeric_local)
-#define PL_numeric_name                (aTHXo->interp.Inumeric_name)
-#define PL_numeric_radix_sv    (aTHXo->interp.Inumeric_radix_sv)
-#define PL_numeric_standard    (aTHXo->interp.Inumeric_standard)
-#define PL_ofmt                        (aTHXo->interp.Iofmt)
-#define PL_oldbufptr           (aTHXo->interp.Ioldbufptr)
-#define PL_oldname             (aTHXo->interp.Ioldname)
-#define PL_oldoldbufptr                (aTHXo->interp.Ioldoldbufptr)
-#define PL_op_mask             (aTHXo->interp.Iop_mask)
-#define PL_op_seqmax           (aTHXo->interp.Iop_seqmax)
-#define PL_origalen            (aTHXo->interp.Iorigalen)
-#define PL_origargc            (aTHXo->interp.Iorigargc)
-#define PL_origargv            (aTHXo->interp.Iorigargv)
-#define PL_origenviron         (aTHXo->interp.Iorigenviron)
-#define PL_origfilename                (aTHXo->interp.Iorigfilename)
-#define PL_ors_sv              (aTHXo->interp.Iors_sv)
-#define PL_osname              (aTHXo->interp.Iosname)
-#define PL_pad_reset_pending   (aTHXo->interp.Ipad_reset_pending)
-#define PL_padix               (aTHXo->interp.Ipadix)
-#define PL_padix_floor         (aTHXo->interp.Ipadix_floor)
-#define PL_patchlevel          (aTHXo->interp.Ipatchlevel)
-#define PL_pending_ident       (aTHXo->interp.Ipending_ident)
-#define PL_perl_destruct_level (aTHXo->interp.Iperl_destruct_level)
-#define PL_perldb              (aTHXo->interp.Iperldb)
-#define PL_pidstatus           (aTHXo->interp.Ipidstatus)
-#define PL_preambleav          (aTHXo->interp.Ipreambleav)
-#define PL_preambled           (aTHXo->interp.Ipreambled)
-#define PL_preprocess          (aTHXo->interp.Ipreprocess)
-#define PL_profiledata         (aTHXo->interp.Iprofiledata)
-#define PL_psig_name           (aTHXo->interp.Ipsig_name)
-#define PL_psig_pend           (aTHXo->interp.Ipsig_pend)
-#define PL_psig_ptr            (aTHXo->interp.Ipsig_ptr)
-#define PL_ptr_table           (aTHXo->interp.Iptr_table)
-#define PL_reentrant_buffer    (aTHXo->interp.Ireentrant_buffer)
-#define PL_regex_pad           (aTHXo->interp.Iregex_pad)
-#define PL_regex_padav         (aTHXo->interp.Iregex_padav)
-#define PL_replgv              (aTHXo->interp.Ireplgv)
-#define PL_rsfp                        (aTHXo->interp.Irsfp)
-#define PL_rsfp_filters                (aTHXo->interp.Irsfp_filters)
-#define PL_runops              (aTHXo->interp.Irunops)
-#define PL_savebegin           (aTHXo->interp.Isavebegin)
-#define PL_sawampersand                (aTHXo->interp.Isawampersand)
-#define PL_sh_path             (aTHXo->interp.Ish_path)
-#define PL_sig_pending         (aTHXo->interp.Isig_pending)
-#define PL_sighandlerp         (aTHXo->interp.Isighandlerp)
-#define PL_splitstr            (aTHXo->interp.Isplitstr)
-#define PL_srand_called                (aTHXo->interp.Isrand_called)
-#define PL_statusvalue         (aTHXo->interp.Istatusvalue)
-#define PL_statusvalue_vms     (aTHXo->interp.Istatusvalue_vms)
-#define PL_stderrgv            (aTHXo->interp.Istderrgv)
-#define PL_stdingv             (aTHXo->interp.Istdingv)
-#define PL_strtab              (aTHXo->interp.Istrtab)
-#define PL_strtab_mutex                (aTHXo->interp.Istrtab_mutex)
-#define PL_sub_generation      (aTHXo->interp.Isub_generation)
-#define PL_sublex_info         (aTHXo->interp.Isublex_info)
-#define PL_subline             (aTHXo->interp.Isubline)
-#define PL_subname             (aTHXo->interp.Isubname)
-#define PL_sv_arenaroot                (aTHXo->interp.Isv_arenaroot)
-#define PL_sv_count            (aTHXo->interp.Isv_count)
-#define PL_sv_lock_mutex       (aTHXo->interp.Isv_lock_mutex)
-#define PL_sv_mutex            (aTHXo->interp.Isv_mutex)
-#define PL_sv_no               (aTHXo->interp.Isv_no)
-#define PL_sv_objcount         (aTHXo->interp.Isv_objcount)
-#define PL_sv_root             (aTHXo->interp.Isv_root)
-#define PL_sv_undef            (aTHXo->interp.Isv_undef)
-#define PL_sv_yes              (aTHXo->interp.Isv_yes)
-#define PL_svref_mutex         (aTHXo->interp.Isvref_mutex)
-#define PL_sys_intern          (aTHXo->interp.Isys_intern)
-#define PL_tainting            (aTHXo->interp.Itainting)
-#define PL_threadnum           (aTHXo->interp.Ithreadnum)
-#define PL_threads_mutex       (aTHXo->interp.Ithreads_mutex)
-#define PL_threadsv_names      (aTHXo->interp.Ithreadsv_names)
-#define PL_thrsv               (aTHXo->interp.Ithrsv)
-#define PL_tokenbuf            (aTHXo->interp.Itokenbuf)
-#define PL_uid                 (aTHXo->interp.Iuid)
-#define PL_unsafe              (aTHXo->interp.Iunsafe)
-#define PL_utf8_alnum          (aTHXo->interp.Iutf8_alnum)
-#define PL_utf8_alnumc         (aTHXo->interp.Iutf8_alnumc)
-#define PL_utf8_alpha          (aTHXo->interp.Iutf8_alpha)
-#define PL_utf8_ascii          (aTHXo->interp.Iutf8_ascii)
-#define PL_utf8_cntrl          (aTHXo->interp.Iutf8_cntrl)
-#define PL_utf8_digit          (aTHXo->interp.Iutf8_digit)
-#define PL_utf8_graph          (aTHXo->interp.Iutf8_graph)
-#define PL_utf8_lower          (aTHXo->interp.Iutf8_lower)
-#define PL_utf8_mark           (aTHXo->interp.Iutf8_mark)
-#define PL_utf8_print          (aTHXo->interp.Iutf8_print)
-#define PL_utf8_punct          (aTHXo->interp.Iutf8_punct)
-#define PL_utf8_space          (aTHXo->interp.Iutf8_space)
-#define PL_utf8_tolower                (aTHXo->interp.Iutf8_tolower)
-#define PL_utf8_totitle                (aTHXo->interp.Iutf8_totitle)
-#define PL_utf8_toupper                (aTHXo->interp.Iutf8_toupper)
-#define PL_utf8_upper          (aTHXo->interp.Iutf8_upper)
-#define PL_utf8_xdigit         (aTHXo->interp.Iutf8_xdigit)
-#define PL_uudmap              (aTHXo->interp.Iuudmap)
-#define PL_warnhook            (aTHXo->interp.Iwarnhook)
-#define PL_widesyscalls                (aTHXo->interp.Iwidesyscalls)
-#define PL_xiv_arenaroot       (aTHXo->interp.Ixiv_arenaroot)
-#define PL_xiv_root            (aTHXo->interp.Ixiv_root)
-#define PL_xnv_arenaroot       (aTHXo->interp.Ixnv_arenaroot)
-#define PL_xnv_root            (aTHXo->interp.Ixnv_root)
-#define PL_xpv_arenaroot       (aTHXo->interp.Ixpv_arenaroot)
-#define PL_xpv_root            (aTHXo->interp.Ixpv_root)
-#define PL_xpvav_arenaroot     (aTHXo->interp.Ixpvav_arenaroot)
-#define PL_xpvav_root          (aTHXo->interp.Ixpvav_root)
-#define PL_xpvbm_arenaroot     (aTHXo->interp.Ixpvbm_arenaroot)
-#define PL_xpvbm_root          (aTHXo->interp.Ixpvbm_root)
-#define PL_xpvcv_arenaroot     (aTHXo->interp.Ixpvcv_arenaroot)
-#define PL_xpvcv_root          (aTHXo->interp.Ixpvcv_root)
-#define PL_xpvhv_arenaroot     (aTHXo->interp.Ixpvhv_arenaroot)
-#define PL_xpvhv_root          (aTHXo->interp.Ixpvhv_root)
-#define PL_xpviv_arenaroot     (aTHXo->interp.Ixpviv_arenaroot)
-#define PL_xpviv_root          (aTHXo->interp.Ixpviv_root)
-#define PL_xpvlv_arenaroot     (aTHXo->interp.Ixpvlv_arenaroot)
-#define PL_xpvlv_root          (aTHXo->interp.Ixpvlv_root)
-#define PL_xpvmg_arenaroot     (aTHXo->interp.Ixpvmg_arenaroot)
-#define PL_xpvmg_root          (aTHXo->interp.Ixpvmg_root)
-#define PL_xpvnv_arenaroot     (aTHXo->interp.Ixpvnv_arenaroot)
-#define PL_xpvnv_root          (aTHXo->interp.Ixpvnv_root)
-#define PL_xrv_arenaroot       (aTHXo->interp.Ixrv_arenaroot)
-#define PL_xrv_root            (aTHXo->interp.Ixrv_root)
-#define PL_yychar              (aTHXo->interp.Iyychar)
-#define PL_yydebug             (aTHXo->interp.Iyydebug)
-#define PL_yyerrflag           (aTHXo->interp.Iyyerrflag)
-#define PL_yylval              (aTHXo->interp.Iyylval)
-#define PL_yynerrs             (aTHXo->interp.Iyynerrs)
-#define PL_yyval               (aTHXo->interp.Iyyval)
-
-#  else        /* !PERL_OBJECT */
-
 /* cases 1 and 4 above */
 
 #define PL_IArgv               PL_Argv
 #define PL_Iyynerrs            PL_yynerrs
 #define PL_Iyyval              PL_yyval
 
-#    if defined(USE_5005THREADS)
+#  if defined(USE_5005THREADS)
 /* case 4 above */
 
 #define PL_Sv                  (aTHX->TSv)
 #define PL_watchaddr           (aTHX->Twatchaddr)
 #define PL_watchok             (aTHX->Twatchok)
 
-#    else      /* !USE_5005THREADS */
+#  else        /* !USE_5005THREADS */
 /* case 1 above */
 
 #define PL_TSv                 PL_Sv
 #define PL_Twatchaddr          PL_watchaddr
 #define PL_Twatchok            PL_watchok
 
-#    endif     /* USE_5005THREADS */
-#  endif       /* PERL_OBJECT */
+#  endif       /* USE_5005THREADS */
 #endif /* MULTIPLICITY */
 
 #if defined(PERL_GLOBAL_STRUCT)
index 6652ef0..e5496ea 100644 (file)
@@ -99,7 +99,7 @@ __fixunsdfsi (a)
 
 int 
 do_spawn( char *cmd) {
-    dTHXo;
+    dTHX;
     char *argv0, *ptr;
     char *cmdptr = cmd;
     int ret;
@@ -125,7 +125,7 @@ do_spawn( char *cmd) {
 int
 do_aspawn ( void *vreally, void **vmark, void **vsp) {
 
-    dTHXo;
+    dTHX;
 
     SV *really = (SV*)vreally;
     SV **mark = (SV**)vmark;
@@ -232,7 +232,7 @@ XS(epoc_getcwd)   /* more or less stolen from win32.c */
 void
 Perl_init_os_extras(void)
 { 
-  dTHXo;
+  dTHX;
   char *file = __FILE__;
   newXS("EPOC::getcwd", epoc_getcwd, file);
 }
index f27f347..0a95d98 100644 (file)
 #include "perl.h"
 #include "XSUB.h"
 
-#ifdef PERL_OBJECT
-#undef PL_op_name
-#undef PL_opargs 
-#undef PL_op_desc
-#define PL_op_name (get_op_names())
-#define PL_opargs (get_opargs())
-#define PL_op_desc (get_op_descs())
-#endif
-
 #ifdef PerlIO
 typedef PerlIO * InputStream;
 #else
index 71b76b5..bcc6f93 100644 (file)
@@ -1055,7 +1055,7 @@ typedef struct {
     HV *       xcv_stash;
     OP *       xcv_start;
     OP *       xcv_root;
-    void      (*xcv_xsub) (pTHXo_ CV*);
+    void      (*xcv_xsub) (pTHX_ CV*);
     ANY                xcv_xsubany;
     GV *       xcv_gv;
     char *     xcv_file;
index d8b15c1..d559bfe 100644 (file)
@@ -75,7 +75,7 @@ bl_read(struct byteloader_fdata *data, char *buf, size_t size, size_t n)
 }
 
 static I32
-byteloader_filter(pTHXo_ int idx, SV *buf_sv, int maxlen)
+byteloader_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
 {
     OP *saveroot = PL_main_root;
     OP *savestart = PL_main_start;
@@ -92,7 +92,7 @@ byteloader_filter(pTHXo_ int idx, SV *buf_sv, int maxlen)
     bstate.bs_sv = Nullsv;
     bstate.bs_iv_overflows = 0;
 
-    byterun(aTHXo_ &bstate);
+    byterun(aTHX_ &bstate);
 
     if (PL_in_eval) {
         OP *o;
index ca9509f..7ce3e07 100644 (file)
@@ -204,7 +204,7 @@ typedef IV IV64;
        } STMT_END
 #define BSET_OBJ_STORE(obj, ix)                        \
        (I32)ix > bstate->bs_obj_list_fill ?    \
-       bset_obj_store(aTHXo_ bstate, obj, (I32)ix) : (bstate->bs_obj_list[ix] = obj)
+       bset_obj_store(aTHX_ bstate, obj, (I32)ix) : (bstate->bs_obj_list[ix] = obj)
 
 /* NOTE: the bytecode header only sanity-checks the bytecode. If a script cares about
  * what version of Perl it's being called under, it should do a 'require 5.6.0' or
index 71cd8aa..94d7ce8 100644 (file)
 #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"
 
@@ -41,7 +34,7 @@ static const int optype_size[] = {
 };
 
 void *
-bset_obj_store(pTHXo_ struct byteloader_state *bstate, void *obj, I32 ix)
+bset_obj_store(pTHX_ struct byteloader_state *bstate, void *obj, I32 ix)
 {
     if (ix > bstate->bs_obj_list_fill) {
        Renew(bstate->bs_obj_list, ix + 32, void*);
@@ -52,7 +45,7 @@ bset_obj_store(pTHXo_ struct byteloader_state *bstate, void *obj, I32 ix)
 }
 
 void
-byterun(pTHXo_ register struct byteloader_state *bstate)
+byterun(pTHX_ register struct byteloader_state *bstate)
 {
     register int insn;
     U32 ix;
index bb06fe4..081b9ab 100644 (file)
@@ -30,7 +30,7 @@ static int dl_debug = 0;      /* value copied from $DynaLoader::dl_debug */
 #ifdef DL_UNLOAD_ALL_AT_EXIT
 /* Close all dlopen'd files */
 static void
-dl_unload_all_files(pTHXo_ void *unused)
+dl_unload_all_files(pTHX_ void *unused)
 {
     CV *sub;
     AV *dl_librefs;
@@ -54,7 +54,7 @@ dl_unload_all_files(pTHXo_ void *unused)
 #endif
 
 static void
-dl_generic_private_init(pTHXo) /* called by dl_*.xs dl_private_init() */
+dl_generic_private_init(pTHX /* called by dl_*.xs dl_private_init() */
 {
     char *perl_dl_nonlazy;
 #ifdef DEBUGGING
@@ -77,7 +77,7 @@ dl_generic_private_init(pTHXo)        /* called by dl_*.xs dl_private_init() */
 
 /* SaveError() takes printf style args and saves the result in LastError */
 static void
-SaveError(pTHXo_ char* pat, ...)
+SaveError(pTHX_ char* pat, ...)
 {
     va_list args;
     SV *msv;
index 6c58312..22f022b 100644 (file)
@@ -205,13 +205,11 @@ opmask_addlocal(pTHX_ SV *opset, char *op_mask_buf) /* Localise PL_op_mask then
 {
     char *orig_op_mask = PL_op_mask;
     SAVEVPTR(PL_op_mask);
-#if !defined(PERL_OBJECT)
     /* XXX casting to an ordinary function ptr from a member function ptr
      * is disallowed by Borland
      */
     if (opcode_debug >= 2)
        SAVEDESTRUCTOR((void(*)(void*))Perl_warn,"PL_op_mask restored");
-#endif
     PL_op_mask = &op_mask_buf[0];
     if (orig_op_mask)
        Copy(orig_op_mask, PL_op_mask, PL_maxo, char);
index ccb1486..60469a3 100644 (file)
@@ -19,7 +19,7 @@
 #define PERLIO_NOT_STDIO 1
 #include "perl.h"
 #include "XSUB.h"
-#if defined(PERL_OBJECT) || defined(PERL_CAPI) || defined(PERL_IMPLICIT_SYS)
+#if defined(PERL_IMPLICIT_SYS)
 #  undef signal
 #  undef open
 #  undef setmode
index 6368f28..3c9c940 100644 (file)
--- a/globals.c
+++ b/globals.c
@@ -2,74 +2,6 @@
 #define PERL_IN_GLOBALS_C
 #include "perl.h"
 
-#ifdef PERL_OBJECT
-
-#undef PERLVAR
-#define PERLVAR(x, y)
-#undef PERLVARA
-#define PERLVARA(x, n, y)
-#undef PERLVARI
-#define PERLVARI(x, y, z) interp.x = z;
-#undef PERLVARIC
-#define PERLVARIC(x, y, z) interp.x = z;
-
-CPerlObj::CPerlObj(IPerlMem* ipM, IPerlMem* ipMS, IPerlMem* ipMP,
-                  IPerlEnv* ipE, IPerlStdIO* ipStd,
-                  IPerlLIO* ipLIO, IPerlDir* ipD, IPerlSock* ipS,
-                  IPerlProc* ipP)
-{
-    memset(((char*)this)+sizeof(void*), 0, sizeof(CPerlObj)-sizeof(void*));
-
-#include "thrdvar.h"
-#include "intrpvar.h"
-
-    PL_Mem = ipM;
-    PL_MemShared = ipMS;
-    PL_MemParse = ipMP;
-    PL_Env = ipE;
-    PL_StdIO = ipStd;
-    PL_LIO = ipLIO;
-    PL_Dir = ipD;
-    PL_Sock = ipS;
-    PL_Proc = ipP;
-}
-
-void*
-CPerlObj::operator new(size_t nSize, IPerlMem *pvtbl)
-{
-    if(pvtbl)
-       return pvtbl->pMalloc(pvtbl, nSize);
-#ifndef __MINGW32__
-    /* operator new is supposed to throw std::bad_alloc */
-    return NULL;
-#endif
-}
-
-#ifndef __BORLANDC__
-void
-CPerlObj::operator delete(void *pPerl, IPerlMem *pvtbl)
-{
-    if(pvtbl)
-       pvtbl->pFree(pvtbl, pPerl);
-}
-#endif
-
-#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 */
-
 int
 Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
 {
index 89b551b..298f82a 100644 (file)
@@ -7,11 +7,6 @@
  * that can be #defined to the system-level function (or a wrapper
  * provided elsewhere).
  *
- * When using C++ with -DPERL_OBJECT, this definition is in the
- * form of a set of virtual base classes which must be subclassed to
- * provide a real implementation.  The Perl Object will use instances
- * of this implementation to use the system-level functionality.
- *
  * GSAR 21-JUN-98
  */
 
index 224b00c..fc1e985 100644 (file)
@@ -44,15 +44,11 @@ sub my_return {
     }
 }
 
-sub is_perl_object {
-    $Config{ccflags} =~ /-DPERL_OBJECT/;  
-}
-
 sub xsinit { 
     my($file, $std, $mods) = @_;
     my($fh,@mods,%seen);
     $file ||= "perlxsi.c";
-    my $xsinit_proto = "pTHXo";
+    my $xsinit_proto = "pTHX";
 
     if (@_) {
        @mods = @$mods if $mods;
@@ -96,7 +92,7 @@ EOF
 sub xsi_protos {
     my(@exts) = @_;
     my(@retval,%seen);
-    my $boot_proto = "pTHXo_ CV* cv";
+    my $boot_proto = "pTHX_ CV* cv";
     foreach $_ (@exts){
         my($pname) = canon('/', $_);
         my($mname, $cname);
index 70dafe8..870a64b 100644 (file)
@@ -34,7 +34,6 @@ $GCC     = 1 if $Config{'cc'} =~ /^gcc/i;
 $DMAKE = 1 if $Config{'make'} =~ /^dmake/i;
 $NMAKE = 1 if $Config{'make'} =~ /^nmake/i;
 $PERLMAKE = 1 if $Config{'make'} =~ /^pmake/i;
-$OBJ   = 1 if $Config{'ccflags'} =~ /PERL_OBJECT/i;
 
 # a few workarounds for command.com (very basic)
 {
index c335b72..8a15f84 100644 (file)
@@ -7,7 +7,7 @@ use Config;
 use File::Basename qw(basename dirname fileparse);
 use DirHandle;
 use strict;
-our ($Is_Mac,$Is_OS2,$Is_VMS,$Is_Win32,$Is_Dos,$Is_PERL_OBJECT,
+our ($Is_Mac,$Is_OS2,$Is_VMS,$Is_Win32,$Is_Dos,
            $Verbose,%pm,%static,$Xsubpp_Version);
 
 our $VERSION = '1.12603';
@@ -20,8 +20,6 @@ $Is_Mac = $^O eq 'MacOS';
 $Is_Win32 = $^O eq 'MSWin32';
 $Is_Dos = $^O eq 'dos';
 
-$Is_PERL_OBJECT = $Config{'ccflags'} =~ /-DPERL_OBJECT/;
-
 if ($Is_VMS = $^O eq 'VMS') {
     require VMS::Filespec;
     import VMS::Filespec qw( &vmsify );
@@ -388,27 +386,6 @@ sub cflags {
        $self->{uc $_} ||= $cflags{$_}
     }
 
-    if ($Is_PERL_OBJECT) {
-        $self->{CCFLAGS} =~ s/-DPERL_OBJECT(\b|$)/-DPERL_CAPI/g;
-        if ($Is_Win32) { 
-           if ($Config{'cc'} =~ /^cl/i) {
-               # Turn off C++ mode of the MSC compiler
-               $self->{CCFLAGS} =~ s/-TP(\s|$)//g;
-               $self->{OPTIMIZE} =~ s/-TP(\s|$)//g;
-           }
-           elsif ($Config{'cc'} =~ /^bcc32/i) {
-               # Turn off C++ mode of the Borland compiler
-               $self->{CCFLAGS} =~ s/-P(\s|$)//g;
-               $self->{OPTIMIZE} =~ s/-P(\s|$)//g;
-           }
-           elsif ($Config{'cc'} =~ /^gcc/i) {
-               # Turn off C++ mode of the GCC compiler
-               $self->{CCFLAGS} =~ s/-xc\+\+(\s|$)//g;
-               $self->{OPTIMIZE} =~ s/-xc\+\+(\s|$)//g;
-           }
-        }
-    }
-
     if ($self->{POLLUTE}) {
        $self->{CCFLAGS} .= ' -DPERL_POLLUTE ';
     }
@@ -2956,7 +2933,6 @@ PERL_HDRS = \
        $(PERL_INC)/keywords.h          \
        $(PERL_INC)/mg.h                \
        $(PERL_INC)/nostdio.h           \
-       $(PERL_INC)/objXSUB.h           \
        $(PERL_INC)/op.h                \
        $(PERL_INC)/opcode.h            \
        $(PERL_INC)/opnames.h           \
index b7a8f81..592e7c1 100644 (file)
@@ -36,7 +36,6 @@ $GCC     = 1 if $Config{'cc'} =~ /^gcc/i;
 $DMAKE = 1 if $Config{'make'} =~ /^dmake/i;
 $NMAKE = 1 if $Config{'make'} =~ /^nmake/i;
 $PERLMAKE = 1 if $Config{'make'} =~ /^pmake/i;
-$OBJ   = 1 if $Config{'ccflags'} =~ /PERL_OBJECT/i;
 
 # a few workarounds for command.com (very basic)
 {
index 7f6bf1a..aa5c663 100644 (file)
@@ -414,7 +414,7 @@ sub ExtUtils::MakeMaker::new {
        }
        if ($self->{PARENT}) {
            $self->{PARENT}->{CHILDREN}->{$newclass} = $self;
-           foreach my $opt (qw(CAPI POLLUTE PERL_CORE)) {
+           foreach my $opt (qw(POLLUTE PERL_CORE)) {
                if (exists $self->{PARENT}->{$opt}
                    and not exists $self->{$opt})
                    {
@@ -1234,17 +1234,6 @@ Ref to array of *.c file names. Initialised from a directory scan
 and the values portion of the XS attribute hash. This is not
 currently used by MakeMaker but may be handy in Makefile.PLs.
 
-=item CAPI
-
-[This attribute is obsolete in Perl 5.6.  PERL_OBJECT builds are C-compatible
-by default.]
-
-Switch to force usage of the Perl C API even when compiling for PERL_OBJECT.
-
-Note that this attribute is passed through to any recursive build,
-but if and only if the submodule's Makefile.PL itself makes no mention
-of the 'CAPI' attribute.
-
 =item CCFLAGS
 
 String that will be included in the compiler call command line between
index bc4d6ae..77e6dba 100755 (executable)
@@ -125,8 +125,6 @@ $FH = 'File0000' ;
 $usage = "Usage: xsubpp [-v] [-C++] [-except] [-prototypes] [-noversioncheck] [-nolinenumbers] [-nooptimize] [-noinout] [-noargtypes] [-s pattern] [-typemap typemap]... file.xs\n";
 
 $proto_re = "[" . quotemeta('\$%&*@;') . "]" ;
-# mjn
-$OBJ   = 1 if $Config{'ccflags'} =~ /PERL_OBJECT/i;
 
 $except = "";
 $WantPrototypes = -1 ;
@@ -148,7 +146,7 @@ SWITCH: while (@ARGV and $ARGV[0] =~ /^-./) {
     $WantVersionChk = 0, next SWITCH   if $flag eq 'noversioncheck';
     $WantVersionChk = 1, next SWITCH   if $flag eq 'versioncheck';
     # XXX left this in for compat
-    $WantCAPI = 1, next SWITCH    if $flag eq 'object_capi';
+    next SWITCH                         if $flag eq 'object_capi';
     $except = " TRY",  next SWITCH     if $flag eq 'except';
     push(@tm,shift),   next SWITCH     if $flag eq 'typemap';
     $WantLineNumbers = 0, next SWITCH  if $flag eq 'nolinenumbers';
@@ -877,9 +875,6 @@ while (<$FH>) {
     last if ($Module, $Package, $Prefix) =
        /^MODULE\s*=\s*([\w:]+)(?:\s+PACKAGE\s*=\s*([\w:]+))?(?:\s+PREFIX\s*=\s*(\S+))?\s*$/;
 
-    if ($OBJ) {
-        s/#if(?:def\s|\s+defined)\s*(\(__cplusplus\)|__cplusplus)/#if defined(__cplusplus) && !defined(PERL_OBJECT)/;
-    }
     print $_;
 }
 &Exit unless defined $_;
index ed1204e..88a858b 100644 (file)
@@ -116,7 +116,7 @@ close(CFG);
 # perl.h logic duplication begins
 
 if ($define{USE_ITHREADS}) {
-    if (!$define{MULTIPLICITY} && !$define{PERL_OBJECT}) {
+    if (!$define{MULTIPLICITY}) {
         $define{MULTIPLICITY} = 1;
     }
 }
@@ -126,18 +126,6 @@ $define{PERL_IMPLICIT_CONTEXT} ||=
     $define{USE_5005THREADS}  ||
     $define{MULTIPLICITY} ;
 
-if ($define{PERL_CAPI}) {
-    delete $define{PERL_OBJECT};
-    $define{MULTIPLICITY} = 1;
-    $define{PERL_IMPLICIT_CONTEXT} = 1;
-    $define{PERL_IMPLICIT_SYS}     = 1;
-}
-
-if ($define{PERL_OBJECT}) {
-    $define{PERL_IMPLICIT_CONTEXT} = 1;
-    $define{PERL_IMPLICIT_SYS}     = 1;
-}
-
 # perl.h logic duplication ends
 
 if ($PLATFORM eq 'win32') {
@@ -205,7 +193,7 @@ sub emit_symbols {
     foreach my $symbol (@$list) {
        my $skipsym = $symbol;
        # XXX hack
-       if ($define{PERL_OBJECT} || $define{MULTIPLICITY}) {
+       if ($define{MULTIPLICITY}) {
            $skipsym =~ s/^Perl_[GIT](\w+)_ptr$/PL_$1/;
        }
        emit_symbol($symbol) unless exists $skip{$skipsym};
@@ -739,7 +727,7 @@ for my $syms (@syms) {
 
 # variables
 
-if ($define{'PERL_OBJECT'} || $define{'MULTIPLICITY'}) {
+if ($define{'MULTIPLICITY'}) {
     for my $f ($perlvars_h, $intrpvar_h, $thrdvar_h) {
        my $glob = readvar($f, sub { "Perl_" . $_[1] . $_[2] . "_ptr" });
        emit_symbols $glob;
diff --git a/mg.c b/mg.c
index af8e9a0..5511c09 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -25,8 +25,8 @@
 #  endif
 #endif
 
-static void restore_magic(pTHXo_ void *p);
-static void unwind_handler_stack(pTHXo_ void *p);
+static void restore_magic(pTHX_ void *p);
+static void unwind_handler_stack(pTHX_ void *p);
 
 /*
  * Use the "DESTRUCTOR" scope cleanup to reinstate magic.
@@ -134,7 +134,7 @@ Perl_mg_get(pTHX_ SV *sv)
        }
     }
 
-    restore_magic(aTHXo_ INT2PTR(void *, (IV)mgs_ix));
+    restore_magic(aTHX_ INT2PTR(void *, (IV)mgs_ix));
     return 0;
 }
 
@@ -167,7 +167,7 @@ Perl_mg_set(pTHX_ SV *sv)
            CALL_FPTR(vtbl->svt_set)(aTHX_ sv, mg);
     }
 
-    restore_magic(aTHXo_ INT2PTR(void*, (IV)mgs_ix));
+    restore_magic(aTHX_ INT2PTR(void*, (IV)mgs_ix));
     return 0;
 }
 
@@ -194,7 +194,7 @@ Perl_mg_length(pTHX_ SV *sv)
            save_magic(mgs_ix, sv);
            /* omit MGf_GSKIP -- not changed here */
            len = CALL_FPTR(vtbl->svt_len)(aTHX_ sv, mg);
-           restore_magic(aTHXo_ INT2PTR(void*, (IV)mgs_ix));
+           restore_magic(aTHX_ INT2PTR(void*, (IV)mgs_ix));
            return len;
        }
     }
@@ -224,7 +224,7 @@ Perl_mg_size(pTHX_ SV *sv)
            save_magic(mgs_ix, sv);
            /* omit MGf_GSKIP -- not changed here */
            len = CALL_FPTR(vtbl->svt_len)(aTHX_ sv, mg);
-           restore_magic(aTHXo_ INT2PTR(void*, (IV)mgs_ix));
+           restore_magic(aTHX_ INT2PTR(void*, (IV)mgs_ix));
            return len;
        }
     }
@@ -267,7 +267,7 @@ Perl_mg_clear(pTHX_ SV *sv)
            CALL_FPTR(vtbl->svt_clear)(aTHX_ sv, mg);
     }
 
-    restore_magic(aTHXo_ INT2PTR(void*, (IV)mgs_ix));
+    restore_magic(aTHX_ INT2PTR(void*, (IV)mgs_ix));
     return 0;
 }
 
@@ -2224,7 +2224,7 @@ Signal_t
 Perl_sighandler(int sig)
 {
 #if defined(WIN32) && defined(PERL_IMPLICIT_CONTEXT)
-    dTHXoa(PL_curinterp);      /* fake TLS, because signals don't do TLS */
+    dTHXa(PL_curinterp);       /* fake TLS, because signals don't do TLS */
 #else
     dTHX;
 #endif
@@ -2238,7 +2238,7 @@ Perl_sighandler(int sig)
     XPV *tXpv = PL_Xpv;
 
 #if defined(WIN32) && defined(PERL_IMPLICIT_CONTEXT)
-    PERL_SET_THX(aTHXo);       /* fake TLS, see above */
+    PERL_SET_THX(aTHX);        /* fake TLS, see above */
 #endif
 
     if (PL_savestack_ix + 15 <= PL_savestack_max)
@@ -2338,12 +2338,8 @@ cleanup:
 }
 
 
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#endif
-
 static void
-restore_magic(pTHXo_ void *p)
+restore_magic(pTHX_ void *p)
 {
     MGS* mgs = SSPTR(PTR2IV(p), MGS*);
     SV* sv = mgs->mgs_sv;
@@ -2384,7 +2380,7 @@ restore_magic(pTHXo_ void *p)
 }
 
 static void
-unwind_handler_stack(pTHXo_ void *p)
+unwind_handler_stack(pTHX_ void *p)
 {
     U32 flags = *(U32*)p;
 
diff --git a/objXSUB.h b/objXSUB.h
deleted file mode 100644 (file)
index d9d73b7..0000000
--- a/objXSUB.h
+++ /dev/null
@@ -1,2493 +0,0 @@
-/* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
-   This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
-   perlvars.h and thrdvar.h.  Any changes made here will be lost!
-*/
-
-#ifndef __objXSUB_h__
-#define __objXSUB_h__
-
-/* method calls via pPerl (static functions without a "this" pointer need these) */
-
-#if defined(PERL_CORE) && defined(PERL_OBJECT)
-
-/* XXX soon to be eliminated, only a few things in PERLCORE need these now */
-
-#if defined(PERL_IMPLICIT_SYS)
-#endif
-#if defined(USE_ITHREADS)
-#  if defined(PERL_IMPLICIT_SYS)
-#  endif
-#endif
-#if defined(MYMALLOC)
-#endif
-#if defined(PERL_OBJECT)
-#ifndef __BORLANDC__
-#endif
-#endif
-#if defined(PERL_OBJECT)
-#else
-#endif
-#undef  Perl_amagic_call
-#define Perl_amagic_call       pPerl->Perl_amagic_call
-#undef  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            Perl_Gv_AMupdate
-#undef  Perl_gv_handler
-#define Perl_gv_handler                pPerl->Perl_gv_handler
-#undef  gv_handler
-#define gv_handler             Perl_gv_handler
-#undef  Perl_apply_attrs_string
-#define Perl_apply_attrs_string        pPerl->Perl_apply_attrs_string
-#undef  apply_attrs_string
-#define apply_attrs_string     Perl_apply_attrs_string
-#undef  Perl_avhv_delete_ent
-#define Perl_avhv_delete_ent   pPerl->Perl_avhv_delete_ent
-#undef  avhv_delete_ent
-#define avhv_delete_ent                Perl_avhv_delete_ent
-#undef  Perl_avhv_exists_ent
-#define Perl_avhv_exists_ent   pPerl->Perl_avhv_exists_ent
-#undef  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         Perl_avhv_fetch_ent
-#undef  Perl_avhv_store_ent
-#define Perl_avhv_store_ent    pPerl->Perl_avhv_store_ent
-#undef  avhv_store_ent
-#define avhv_store_ent         Perl_avhv_store_ent
-#undef  Perl_avhv_iternext
-#define Perl_avhv_iternext     pPerl->Perl_avhv_iternext
-#undef  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           Perl_avhv_iterval
-#undef  Perl_avhv_keys
-#define Perl_avhv_keys         pPerl->Perl_avhv_keys
-#undef  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               Perl_av_clear
-#undef  Perl_av_delete
-#define Perl_av_delete         pPerl->Perl_av_delete
-#undef  av_delete
-#define av_delete              Perl_av_delete
-#undef  Perl_av_exists
-#define Perl_av_exists         pPerl->Perl_av_exists
-#undef  av_exists
-#define av_exists              Perl_av_exists
-#undef  Perl_av_extend
-#define Perl_av_extend         pPerl->Perl_av_extend
-#undef  av_extend
-#define av_extend              Perl_av_extend
-#undef  Perl_av_fetch
-#define Perl_av_fetch          pPerl->Perl_av_fetch
-#undef  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                        Perl_av_fill
-#undef  Perl_av_len
-#define Perl_av_len            pPerl->Perl_av_len
-#undef  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                        Perl_av_make
-#undef  Perl_av_pop
-#define Perl_av_pop            pPerl->Perl_av_pop
-#undef  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                        Perl_av_push
-#undef  Perl_av_shift
-#define Perl_av_shift          pPerl->Perl_av_shift
-#undef  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               Perl_av_store
-#undef  Perl_av_undef
-#define Perl_av_undef          pPerl->Perl_av_undef
-#undef  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             Perl_av_unshift
-#undef  Perl_block_gimme
-#define Perl_block_gimme       pPerl->Perl_block_gimme
-#undef  block_gimme
-#define block_gimme            Perl_block_gimme
-#undef  Perl_call_list
-#define Perl_call_list         pPerl->Perl_call_list
-#undef  call_list
-#define call_list              Perl_call_list
-#undef  Perl_cast_ulong
-#define Perl_cast_ulong                pPerl->Perl_cast_ulong
-#undef  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               Perl_cast_i32
-#undef  Perl_cast_iv
-#define Perl_cast_iv           pPerl->Perl_cast_iv
-#undef  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                        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              Perl_my_chsize
-#endif
-#if defined(USE_5005THREADS)
-#undef  Perl_condpair_magic
-#define Perl_condpair_magic    pPerl->Perl_condpair_magic
-#undef  condpair_magic
-#define condpair_magic         Perl_condpair_magic
-#endif
-#undef  Perl_croak
-#define Perl_croak             pPerl->Perl_croak
-#undef  croak
-#define croak                  Perl_croak
-#undef  Perl_vcroak
-#define Perl_vcroak            pPerl->Perl_vcroak
-#undef  vcroak
-#define vcroak                 Perl_vcroak
-#if defined(PERL_IMPLICIT_CONTEXT)
-#undef  Perl_croak_nocontext
-#define Perl_croak_nocontext   pPerl->Perl_croak_nocontext
-#undef  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          Perl_die_nocontext
-#undef  Perl_deb_nocontext
-#define Perl_deb_nocontext     pPerl->Perl_deb_nocontext
-#undef  deb_nocontext
-#define deb_nocontext          Perl_deb_nocontext
-#undef  Perl_form_nocontext
-#define Perl_form_nocontext    pPerl->Perl_form_nocontext
-#undef  form_nocontext
-#define form_nocontext         Perl_form_nocontext
-#undef  Perl_load_module_nocontext
-#define Perl_load_module_nocontext     pPerl->Perl_load_module_nocontext
-#undef  load_module_nocontext
-#define load_module_nocontext  Perl_load_module_nocontext
-#undef  Perl_mess_nocontext
-#define Perl_mess_nocontext    pPerl->Perl_mess_nocontext
-#undef  mess_nocontext
-#define mess_nocontext         Perl_mess_nocontext
-#undef  Perl_warn_nocontext
-#define Perl_warn_nocontext    pPerl->Perl_warn_nocontext
-#undef  warn_nocontext
-#define warn_nocontext         Perl_warn_nocontext
-#undef  Perl_warner_nocontext
-#define Perl_warner_nocontext  pPerl->Perl_warner_nocontext
-#undef  warner_nocontext
-#define warner_nocontext       Perl_warner_nocontext
-#undef  Perl_newSVpvf_nocontext
-#define Perl_newSVpvf_nocontext        pPerl->Perl_newSVpvf_nocontext
-#undef  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    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    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 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 Perl_sv_setpvf_mg_nocontext
-#undef  Perl_fprintf_nocontext
-#define Perl_fprintf_nocontext pPerl->Perl_fprintf_nocontext
-#undef  fprintf_nocontext
-#define fprintf_nocontext      Perl_fprintf_nocontext
-#undef  Perl_printf_nocontext
-#define Perl_printf_nocontext  pPerl->Perl_printf_nocontext
-#undef  printf_nocontext
-#define printf_nocontext       Perl_printf_nocontext
-#endif
-#undef  Perl_cv_const_sv
-#define Perl_cv_const_sv       pPerl->Perl_cv_const_sv
-#undef  cv_const_sv
-#define cv_const_sv            Perl_cv_const_sv
-#undef  Perl_cv_undef
-#define Perl_cv_undef          pPerl->Perl_cv_undef
-#undef  cv_undef
-#define cv_undef               Perl_cv_undef
-#undef  Perl_cx_dump
-#define Perl_cx_dump           pPerl->Perl_cx_dump
-#undef  cx_dump
-#define cx_dump                        Perl_cx_dump
-#undef  Perl_filter_add
-#define Perl_filter_add                pPerl->Perl_filter_add
-#undef  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             Perl_filter_del
-#undef  Perl_filter_read
-#define Perl_filter_read       pPerl->Perl_filter_read
-#undef  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           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           Perl_get_op_names
-#undef  Perl_get_ppaddr
-#define Perl_get_ppaddr                pPerl->Perl_get_ppaddr
-#undef  get_ppaddr
-#define get_ppaddr             Perl_get_ppaddr
-#undef  Perl_deb
-#define Perl_deb               pPerl->Perl_deb
-#undef  deb
-#define deb                    Perl_deb
-#undef  Perl_vdeb
-#define Perl_vdeb              pPerl->Perl_vdeb
-#undef  vdeb
-#define vdeb                   Perl_vdeb
-#undef  Perl_debprofdump
-#define Perl_debprofdump       pPerl->Perl_debprofdump
-#undef  debprofdump
-#define debprofdump            Perl_debprofdump
-#undef  Perl_debop
-#define Perl_debop             pPerl->Perl_debop
-#undef  debop
-#define debop                  Perl_debop
-#undef  Perl_debstack
-#define Perl_debstack          pPerl->Perl_debstack
-#undef  debstack
-#define debstack               Perl_debstack
-#undef  Perl_debstackptrs
-#define Perl_debstackptrs      pPerl->Perl_debstackptrs
-#undef  debstackptrs
-#define debstackptrs           Perl_debstackptrs
-#undef  Perl_delimcpy
-#define Perl_delimcpy          pPerl->Perl_delimcpy
-#undef  delimcpy
-#define delimcpy               Perl_delimcpy
-#undef  Perl_die
-#define Perl_die               pPerl->Perl_die
-#undef  die
-#define die                    Perl_die
-#undef  Perl_dounwind
-#define Perl_dounwind          pPerl->Perl_dounwind
-#undef  dounwind
-#define dounwind               Perl_dounwind
-#undef  Perl_do_binmode
-#define Perl_do_binmode                pPerl->Perl_do_binmode
-#undef  do_binmode
-#define do_binmode             Perl_do_binmode
-#undef  Perl_do_close
-#define Perl_do_close          pPerl->Perl_do_close
-#undef  do_close
-#define do_close               Perl_do_close
-#if !defined(WIN32)
-#endif
-#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-#endif
-#undef  Perl_do_join
-#define Perl_do_join           pPerl->Perl_do_join
-#undef  do_join
-#define do_join                        Perl_do_join
-#undef  Perl_do_open
-#define Perl_do_open           pPerl->Perl_do_open
-#undef  do_open
-#define do_open                        Perl_do_open
-#undef  Perl_do_open9
-#define Perl_do_open9          pPerl->Perl_do_open9
-#undef  do_open9
-#define do_open9               Perl_do_open9
-#undef  Perl_do_openn
-#define Perl_do_openn          pPerl->Perl_do_openn
-#undef  do_openn
-#define do_openn               Perl_do_openn
-#undef  Perl_dowantarray
-#define Perl_dowantarray       pPerl->Perl_dowantarray
-#undef  dowantarray
-#define dowantarray            Perl_dowantarray
-#undef  Perl_dump_all
-#define Perl_dump_all          pPerl->Perl_dump_all
-#undef  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              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               Perl_dump_fds
-#endif
-#undef  Perl_dump_form
-#define Perl_dump_form         pPerl->Perl_dump_form
-#undef  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                        Perl_gv_dump
-#undef  Perl_op_dump
-#define Perl_op_dump           pPerl->Perl_op_dump
-#undef  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              Perl_pmop_dump
-#undef  Perl_dump_packsubs
-#define Perl_dump_packsubs     pPerl->Perl_dump_packsubs
-#undef  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               Perl_dump_sub
-#undef  Perl_fbm_compile
-#define Perl_fbm_compile       pPerl->Perl_fbm_compile
-#undef  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              Perl_fbm_instr
-#if defined(USE_5005THREADS)
-#endif
-#undef  Perl_form
-#define Perl_form              pPerl->Perl_form
-#undef  form
-#define form                   Perl_form
-#undef  Perl_vform
-#define Perl_vform             pPerl->Perl_vform
-#undef  vform
-#define vform                  Perl_vform
-#undef  Perl_free_tmps
-#define Perl_free_tmps         pPerl->Perl_free_tmps
-#undef  free_tmps
-#define free_tmps              Perl_free_tmps
-#if !defined(HAS_GETENV_LEN)
-#endif
-#undef  Perl_gp_free
-#define Perl_gp_free           pPerl->Perl_gp_free
-#undef  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                 Perl_gp_ref
-#undef  Perl_gv_AVadd
-#define Perl_gv_AVadd          pPerl->Perl_gv_AVadd
-#undef  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               Perl_gv_HVadd
-#undef  Perl_gv_IOadd
-#define Perl_gv_IOadd          pPerl->Perl_gv_IOadd
-#undef  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           Perl_gv_autoload4
-#undef  Perl_gv_check
-#define Perl_gv_check          pPerl->Perl_gv_check
-#undef  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           Perl_gv_efullname
-#undef  Perl_gv_efullname3
-#define Perl_gv_efullname3     pPerl->Perl_gv_efullname3
-#undef  gv_efullname3
-#define gv_efullname3          Perl_gv_efullname3
-#undef  Perl_gv_efullname4
-#define Perl_gv_efullname4     pPerl->Perl_gv_efullname4
-#undef  gv_efullname4
-#define gv_efullname4          Perl_gv_efullname4
-#undef  Perl_gv_fetchfile
-#define Perl_gv_fetchfile      pPerl->Perl_gv_fetchfile
-#undef  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           Perl_gv_fetchmeth
-#undef  Perl_gv_fetchmethod
-#define Perl_gv_fetchmethod    pPerl->Perl_gv_fetchmethod
-#undef  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        Perl_gv_fetchmethod_autoload
-#undef  Perl_gv_fetchpv
-#define Perl_gv_fetchpv                pPerl->Perl_gv_fetchpv
-#undef  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            Perl_gv_fullname
-#undef  Perl_gv_fullname3
-#define Perl_gv_fullname3      pPerl->Perl_gv_fullname3
-#undef  gv_fullname3
-#define gv_fullname3           Perl_gv_fullname3
-#undef  Perl_gv_fullname4
-#define Perl_gv_fullname4      pPerl->Perl_gv_fullname4
-#undef  gv_fullname4
-#define gv_fullname4           Perl_gv_fullname4
-#undef  Perl_gv_init
-#define Perl_gv_init           pPerl->Perl_gv_init
-#undef  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             Perl_gv_stashpv
-#undef  Perl_gv_stashpvn
-#define Perl_gv_stashpvn       pPerl->Perl_gv_stashpvn
-#undef  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             Perl_gv_stashsv
-#undef  Perl_hv_clear
-#define Perl_hv_clear          pPerl->Perl_hv_clear
-#undef  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       Perl_hv_delayfree_ent
-#undef  Perl_hv_delete
-#define Perl_hv_delete         pPerl->Perl_hv_delete
-#undef  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          Perl_hv_delete_ent
-#undef  Perl_hv_exists
-#define Perl_hv_exists         pPerl->Perl_hv_exists
-#undef  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          Perl_hv_exists_ent
-#undef  Perl_hv_fetch
-#define Perl_hv_fetch          pPerl->Perl_hv_fetch
-#undef  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           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            Perl_hv_free_ent
-#undef  Perl_hv_iterinit
-#define Perl_hv_iterinit       pPerl->Perl_hv_iterinit
-#undef  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             Perl_hv_iterkey
-#undef  Perl_hv_iterkeysv
-#define Perl_hv_iterkeysv      pPerl->Perl_hv_iterkeysv
-#undef  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            Perl_hv_iternext
-#undef  Perl_hv_iternextsv
-#define Perl_hv_iternextsv     pPerl->Perl_hv_iternextsv
-#undef  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             Perl_hv_iterval
-#undef  Perl_hv_ksplit
-#define Perl_hv_ksplit         pPerl->Perl_hv_ksplit
-#undef  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               Perl_hv_magic
-#undef  Perl_hv_store
-#define Perl_hv_store          pPerl->Perl_hv_store
-#undef  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           Perl_hv_store_ent
-#undef  Perl_hv_undef
-#define Perl_hv_undef          pPerl->Perl_hv_undef
-#undef  hv_undef
-#define hv_undef               Perl_hv_undef
-#undef  Perl_ibcmp
-#define Perl_ibcmp             pPerl->Perl_ibcmp
-#undef  ibcmp
-#define ibcmp                  Perl_ibcmp
-#undef  Perl_ibcmp_locale
-#define Perl_ibcmp_locale      pPerl->Perl_ibcmp_locale
-#undef  ibcmp_locale
-#define ibcmp_locale           Perl_ibcmp_locale
-#undef  Perl_init_stacks
-#define Perl_init_stacks       pPerl->Perl_init_stacks
-#undef  init_stacks
-#define init_stacks            Perl_init_stacks
-#undef  Perl_init_tm
-#define Perl_init_tm           pPerl->Perl_init_tm
-#undef  init_tm
-#define init_tm                        Perl_init_tm
-#undef  Perl_instr
-#define Perl_instr             pPerl->Perl_instr
-#undef  instr
-#define instr                  Perl_instr
-#undef  Perl_is_uni_alnum
-#define Perl_is_uni_alnum      pPerl->Perl_is_uni_alnum
-#undef  is_uni_alnum
-#define is_uni_alnum           Perl_is_uni_alnum
-#undef  Perl_is_uni_alnumc
-#define Perl_is_uni_alnumc     pPerl->Perl_is_uni_alnumc
-#undef  is_uni_alnumc
-#define is_uni_alnumc          Perl_is_uni_alnumc
-#undef  Perl_is_uni_idfirst
-#define Perl_is_uni_idfirst    pPerl->Perl_is_uni_idfirst
-#undef  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           Perl_is_uni_alpha
-#undef  Perl_is_uni_ascii
-#define Perl_is_uni_ascii      pPerl->Perl_is_uni_ascii
-#undef  is_uni_ascii
-#define is_uni_ascii           Perl_is_uni_ascii
-#undef  Perl_is_uni_space
-#define Perl_is_uni_space      pPerl->Perl_is_uni_space
-#undef  is_uni_space
-#define is_uni_space           Perl_is_uni_space
-#undef  Perl_is_uni_cntrl
-#define Perl_is_uni_cntrl      pPerl->Perl_is_uni_cntrl
-#undef  is_uni_cntrl
-#define is_uni_cntrl           Perl_is_uni_cntrl
-#undef  Perl_is_uni_graph
-#define Perl_is_uni_graph      pPerl->Perl_is_uni_graph
-#undef  is_uni_graph
-#define is_uni_graph           Perl_is_uni_graph
-#undef  Perl_is_uni_digit
-#define Perl_is_uni_digit      pPerl->Perl_is_uni_digit
-#undef  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           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           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           Perl_is_uni_print
-#undef  Perl_is_uni_punct
-#define Perl_is_uni_punct      pPerl->Perl_is_uni_punct
-#undef  is_uni_punct
-#define is_uni_punct           Perl_is_uni_punct
-#undef  Perl_is_uni_xdigit
-#define Perl_is_uni_xdigit     pPerl->Perl_is_uni_xdigit
-#undef  is_uni_xdigit
-#define is_uni_xdigit          Perl_is_uni_xdigit
-#undef  Perl_to_uni_upper
-#define Perl_to_uni_upper      pPerl->Perl_to_uni_upper
-#undef  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           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           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                Perl_is_uni_alnum_lc
-#undef  Perl_is_uni_alnumc_lc
-#define Perl_is_uni_alnumc_lc  pPerl->Perl_is_uni_alnumc_lc
-#undef  is_uni_alnumc_lc
-#define is_uni_alnumc_lc       Perl_is_uni_alnumc_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      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                Perl_is_uni_alpha_lc
-#undef  Perl_is_uni_ascii_lc
-#define Perl_is_uni_ascii_lc   pPerl->Perl_is_uni_ascii_lc
-#undef  is_uni_ascii_lc
-#define is_uni_ascii_lc                Perl_is_uni_ascii_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                Perl_is_uni_space_lc
-#undef  Perl_is_uni_cntrl_lc
-#define Perl_is_uni_cntrl_lc   pPerl->Perl_is_uni_cntrl_lc
-#undef  is_uni_cntrl_lc
-#define is_uni_cntrl_lc                Perl_is_uni_cntrl_lc
-#undef  Perl_is_uni_graph_lc
-#define Perl_is_uni_graph_lc   pPerl->Perl_is_uni_graph_lc
-#undef  is_uni_graph_lc
-#define is_uni_graph_lc                Perl_is_uni_graph_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                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                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                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                Perl_is_uni_print_lc
-#undef  Perl_is_uni_punct_lc
-#define Perl_is_uni_punct_lc   pPerl->Perl_is_uni_punct_lc
-#undef  is_uni_punct_lc
-#define is_uni_punct_lc                Perl_is_uni_punct_lc
-#undef  Perl_is_uni_xdigit_lc
-#define Perl_is_uni_xdigit_lc  pPerl->Perl_is_uni_xdigit_lc
-#undef  is_uni_xdigit_lc
-#define is_uni_xdigit_lc       Perl_is_uni_xdigit_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                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                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                Perl_to_uni_lower_lc
-#undef  Perl_is_utf8_char
-#define Perl_is_utf8_char      pPerl->Perl_is_utf8_char
-#undef  is_utf8_char
-#define is_utf8_char           Perl_is_utf8_char
-#undef  Perl_is_utf8_string
-#define Perl_is_utf8_string    pPerl->Perl_is_utf8_string
-#undef  is_utf8_string
-#define is_utf8_string         Perl_is_utf8_string
-#undef  Perl_is_utf8_alnum
-#define Perl_is_utf8_alnum     pPerl->Perl_is_utf8_alnum
-#undef  is_utf8_alnum
-#define is_utf8_alnum          Perl_is_utf8_alnum
-#undef  Perl_is_utf8_alnumc
-#define Perl_is_utf8_alnumc    pPerl->Perl_is_utf8_alnumc
-#undef  is_utf8_alnumc
-#define is_utf8_alnumc         Perl_is_utf8_alnumc
-#undef  Perl_is_utf8_idfirst
-#define Perl_is_utf8_idfirst   pPerl->Perl_is_utf8_idfirst
-#undef  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          Perl_is_utf8_alpha
-#undef  Perl_is_utf8_ascii
-#define Perl_is_utf8_ascii     pPerl->Perl_is_utf8_ascii
-#undef  is_utf8_ascii
-#define is_utf8_ascii          Perl_is_utf8_ascii
-#undef  Perl_is_utf8_space
-#define Perl_is_utf8_space     pPerl->Perl_is_utf8_space
-#undef  is_utf8_space
-#define is_utf8_space          Perl_is_utf8_space
-#undef  Perl_is_utf8_cntrl
-#define Perl_is_utf8_cntrl     pPerl->Perl_is_utf8_cntrl
-#undef  is_utf8_cntrl
-#define is_utf8_cntrl          Perl_is_utf8_cntrl
-#undef  Perl_is_utf8_digit
-#define Perl_is_utf8_digit     pPerl->Perl_is_utf8_digit
-#undef  is_utf8_digit
-#define is_utf8_digit          Perl_is_utf8_digit
-#undef  Perl_is_utf8_graph
-#define Perl_is_utf8_graph     pPerl->Perl_is_utf8_graph
-#undef  is_utf8_graph
-#define is_utf8_graph          Perl_is_utf8_graph
-#undef  Perl_is_utf8_upper
-#define Perl_is_utf8_upper     pPerl->Perl_is_utf8_upper
-#undef  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          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          Perl_is_utf8_print
-#undef  Perl_is_utf8_punct
-#define Perl_is_utf8_punct     pPerl->Perl_is_utf8_punct
-#undef  is_utf8_punct
-#define is_utf8_punct          Perl_is_utf8_punct
-#undef  Perl_is_utf8_xdigit
-#define Perl_is_utf8_xdigit    pPerl->Perl_is_utf8_xdigit
-#undef  is_utf8_xdigit
-#define is_utf8_xdigit         Perl_is_utf8_xdigit
-#undef  Perl_is_utf8_mark
-#define Perl_is_utf8_mark      pPerl->Perl_is_utf8_mark
-#undef  is_utf8_mark
-#define is_utf8_mark           Perl_is_utf8_mark
-#undef  Perl_leave_scope
-#define Perl_leave_scope       pPerl->Perl_leave_scope
-#undef  leave_scope
-#define leave_scope            Perl_leave_scope
-#undef  Perl_op_null
-#define Perl_op_null           pPerl->Perl_op_null
-#undef  op_null
-#define op_null                        Perl_op_null
-#undef  Perl_load_module
-#define Perl_load_module       pPerl->Perl_load_module
-#undef  load_module
-#define load_module            Perl_load_module
-#undef  Perl_vload_module
-#define Perl_vload_module      pPerl->Perl_vload_module
-#undef  vload_module
-#define vload_module           Perl_vload_module
-#undef  Perl_looks_like_number
-#define Perl_looks_like_number pPerl->Perl_looks_like_number
-#undef  looks_like_number
-#define looks_like_number      Perl_looks_like_number
-#undef  Perl_grok_number
-#define Perl_grok_number       pPerl->Perl_grok_number
-#undef  grok_number
-#define grok_number            Perl_grok_number
-#undef  Perl_grok_numeric_radix
-#define Perl_grok_numeric_radix        pPerl->Perl_grok_numeric_radix
-#undef  grok_numeric_radix
-#define grok_numeric_radix     Perl_grok_numeric_radix
-#if defined(USE_5005THREADS)
-#endif
-#if defined(USE_LOCALE_COLLATE)
-#endif
-#undef  Perl_markstack_grow
-#define Perl_markstack_grow    pPerl->Perl_markstack_grow
-#undef  markstack_grow
-#define markstack_grow         Perl_markstack_grow
-#if defined(USE_LOCALE_COLLATE)
-#endif
-#undef  Perl_mess
-#define Perl_mess              pPerl->Perl_mess
-#undef  mess
-#define mess                   Perl_mess
-#undef  Perl_vmess
-#define Perl_vmess             pPerl->Perl_vmess
-#undef  vmess
-#define vmess                  Perl_vmess
-#undef  Perl_mg_clear
-#define Perl_mg_clear          pPerl->Perl_mg_clear
-#undef  mg_clear
-#define mg_clear               Perl_mg_clear
-#undef  Perl_mg_copy
-#define Perl_mg_copy           pPerl->Perl_mg_copy
-#undef  mg_copy
-#define mg_copy                        Perl_mg_copy
-#undef  Perl_mg_find
-#define Perl_mg_find           pPerl->Perl_mg_find
-#undef  mg_find
-#define mg_find                        Perl_mg_find
-#undef  Perl_mg_free
-#define Perl_mg_free           pPerl->Perl_mg_free
-#undef  mg_free
-#define mg_free                        Perl_mg_free
-#undef  Perl_mg_get
-#define Perl_mg_get            pPerl->Perl_mg_get
-#undef  mg_get
-#define mg_get                 Perl_mg_get
-#undef  Perl_mg_length
-#define Perl_mg_length         pPerl->Perl_mg_length
-#undef  mg_length
-#define mg_length              Perl_mg_length
-#undef  Perl_mg_magical
-#define Perl_mg_magical                pPerl->Perl_mg_magical
-#undef  mg_magical
-#define mg_magical             Perl_mg_magical
-#undef  Perl_mg_set
-#define Perl_mg_set            pPerl->Perl_mg_set
-#undef  mg_set
-#define mg_set                 Perl_mg_set
-#undef  Perl_mg_size
-#define Perl_mg_size           pPerl->Perl_mg_size
-#undef  mg_size
-#define mg_size                        Perl_mg_size
-#undef  Perl_mini_mktime
-#define Perl_mini_mktime       pPerl->Perl_mini_mktime
-#undef  mini_mktime
-#define mini_mktime            Perl_mini_mktime
-#undef  Perl_moreswitches
-#define Perl_moreswitches      pPerl->Perl_moreswitches
-#undef  moreswitches
-#define moreswitches           Perl_moreswitches
-#undef  Perl_my_atof
-#define Perl_my_atof           pPerl->Perl_my_atof
-#undef  my_atof
-#define my_atof                        Perl_my_atof
-#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
-#undef  Perl_my_bcopy
-#define Perl_my_bcopy          pPerl->Perl_my_bcopy
-#undef  my_bcopy
-#define my_bcopy               Perl_my_bcopy
-#endif
-#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-#undef  Perl_my_bzero
-#define Perl_my_bzero          pPerl->Perl_my_bzero
-#undef  my_bzero
-#define my_bzero               Perl_my_bzero
-#endif
-#undef  Perl_my_exit
-#define Perl_my_exit           pPerl->Perl_my_exit
-#undef  my_exit
-#define my_exit                        Perl_my_exit
-#undef  Perl_my_failure_exit
-#define Perl_my_failure_exit   pPerl->Perl_my_failure_exit
-#undef  my_failure_exit
-#define my_failure_exit                Perl_my_failure_exit
-#undef  Perl_my_fflush_all
-#define Perl_my_fflush_all     pPerl->Perl_my_fflush_all
-#undef  my_fflush_all
-#define my_fflush_all          Perl_my_fflush_all
-#undef  Perl_my_fork
-#define Perl_my_fork           pPerl->Perl_my_fork
-#undef  my_fork
-#define my_fork                        Perl_my_fork
-#undef  Perl_atfork_lock
-#define Perl_atfork_lock       pPerl->Perl_atfork_lock
-#undef  atfork_lock
-#define atfork_lock            Perl_atfork_lock
-#undef  Perl_atfork_unlock
-#define Perl_atfork_unlock     pPerl->Perl_atfork_unlock
-#undef  atfork_unlock
-#define atfork_unlock          Perl_atfork_unlock
-#undef  Perl_my_lstat
-#define Perl_my_lstat          pPerl->Perl_my_lstat
-#undef  my_lstat
-#define my_lstat               Perl_my_lstat
-#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
-#undef  Perl_my_memcmp
-#define Perl_my_memcmp         pPerl->Perl_my_memcmp
-#undef  my_memcmp
-#define my_memcmp              Perl_my_memcmp
-#endif
-#if !defined(HAS_MEMSET)
-#undef  Perl_my_memset
-#define Perl_my_memset         pPerl->Perl_my_memset
-#undef  my_memset
-#define my_memset              Perl_my_memset
-#endif
-#if !defined(PERL_OBJECT)
-#undef  Perl_my_pclose
-#define Perl_my_pclose         pPerl->Perl_my_pclose
-#undef  my_pclose
-#define my_pclose              Perl_my_pclose
-#undef  Perl_my_popen
-#define Perl_my_popen          pPerl->Perl_my_popen
-#undef  my_popen
-#define my_popen               Perl_my_popen
-#undef  Perl_my_popen_list
-#define Perl_my_popen_list     pPerl->Perl_my_popen_list
-#undef  my_popen_list
-#define my_popen_list          Perl_my_popen_list
-#endif
-#undef  Perl_my_setenv
-#define Perl_my_setenv         pPerl->Perl_my_setenv
-#undef  my_setenv
-#define my_setenv              Perl_my_setenv
-#undef  Perl_my_stat
-#define Perl_my_stat           pPerl->Perl_my_stat
-#undef  my_stat
-#define my_stat                        Perl_my_stat
-#undef  Perl_my_strftime
-#define Perl_my_strftime       pPerl->Perl_my_strftime
-#undef  my_strftime
-#define my_strftime            Perl_my_strftime
-#if defined(MYSWAP)
-#undef  Perl_my_swap
-#define Perl_my_swap           pPerl->Perl_my_swap
-#undef  my_swap
-#define my_swap                        Perl_my_swap
-#undef  Perl_my_htonl
-#define Perl_my_htonl          pPerl->Perl_my_htonl
-#undef  my_htonl
-#define my_htonl               Perl_my_htonl
-#undef  Perl_my_ntohl
-#define Perl_my_ntohl          pPerl->Perl_my_ntohl
-#undef  my_ntohl
-#define my_ntohl               Perl_my_ntohl
-#endif
-#undef  Perl_newANONLIST
-#define Perl_newANONLIST       pPerl->Perl_newANONLIST
-#undef  newANONLIST
-#define newANONLIST            Perl_newANONLIST
-#undef  Perl_newANONHASH
-#define Perl_newANONHASH       pPerl->Perl_newANONHASH
-#undef  newANONHASH
-#define newANONHASH            Perl_newANONHASH
-#undef  Perl_newANONSUB
-#define Perl_newANONSUB                pPerl->Perl_newANONSUB
-#undef  newANONSUB
-#define newANONSUB             Perl_newANONSUB
-#undef  Perl_newASSIGNOP
-#define Perl_newASSIGNOP       pPerl->Perl_newASSIGNOP
-#undef  newASSIGNOP
-#define newASSIGNOP            Perl_newASSIGNOP
-#undef  Perl_newCONDOP
-#define Perl_newCONDOP         pPerl->Perl_newCONDOP
-#undef  newCONDOP
-#define newCONDOP              Perl_newCONDOP
-#undef  Perl_newCONSTSUB
-#define Perl_newCONSTSUB       pPerl->Perl_newCONSTSUB
-#undef  newCONSTSUB
-#define newCONSTSUB            Perl_newCONSTSUB
-#undef  Perl_newFORM
-#define Perl_newFORM           pPerl->Perl_newFORM
-#undef  newFORM
-#define newFORM                        Perl_newFORM
-#undef  Perl_newFOROP
-#define Perl_newFOROP          pPerl->Perl_newFOROP
-#undef  newFOROP
-#define newFOROP               Perl_newFOROP
-#undef  Perl_newLOGOP
-#define Perl_newLOGOP          pPerl->Perl_newLOGOP
-#undef  newLOGOP
-#define newLOGOP               Perl_newLOGOP
-#undef  Perl_newLOOPEX
-#define Perl_newLOOPEX         pPerl->Perl_newLOOPEX
-#undef  newLOOPEX
-#define newLOOPEX              Perl_newLOOPEX
-#undef  Perl_newLOOPOP
-#define Perl_newLOOPOP         pPerl->Perl_newLOOPOP
-#undef  newLOOPOP
-#define newLOOPOP              Perl_newLOOPOP
-#undef  Perl_newNULLLIST
-#define Perl_newNULLLIST       pPerl->Perl_newNULLLIST
-#undef  newNULLLIST
-#define newNULLLIST            Perl_newNULLLIST
-#undef  Perl_newOP
-#define Perl_newOP             pPerl->Perl_newOP
-#undef  newOP
-#define newOP                  Perl_newOP
-#undef  Perl_newPROG
-#define Perl_newPROG           pPerl->Perl_newPROG
-#undef  newPROG
-#define newPROG                        Perl_newPROG
-#undef  Perl_newRANGE
-#define Perl_newRANGE          pPerl->Perl_newRANGE
-#undef  newRANGE
-#define newRANGE               Perl_newRANGE
-#undef  Perl_newSLICEOP
-#define Perl_newSLICEOP                pPerl->Perl_newSLICEOP
-#undef  newSLICEOP
-#define newSLICEOP             Perl_newSLICEOP
-#undef  Perl_newSTATEOP
-#define Perl_newSTATEOP                pPerl->Perl_newSTATEOP
-#undef  newSTATEOP
-#define newSTATEOP             Perl_newSTATEOP
-#undef  Perl_newSUB
-#define Perl_newSUB            pPerl->Perl_newSUB
-#undef  newSUB
-#define newSUB                 Perl_newSUB
-#undef  Perl_newXS
-#define Perl_newXS             pPerl->Perl_newXS
-#undef  newXS
-#define newXS                  Perl_newXS
-#undef  Perl_newAV
-#define Perl_newAV             pPerl->Perl_newAV
-#undef  newAV
-#define newAV                  Perl_newAV
-#undef  Perl_newAVREF
-#define Perl_newAVREF          pPerl->Perl_newAVREF
-#undef  newAVREF
-#define newAVREF               Perl_newAVREF
-#undef  Perl_newBINOP
-#define Perl_newBINOP          pPerl->Perl_newBINOP
-#undef  newBINOP
-#define newBINOP               Perl_newBINOP
-#undef  Perl_newCVREF
-#define Perl_newCVREF          pPerl->Perl_newCVREF
-#undef  newCVREF
-#define newCVREF               Perl_newCVREF
-#undef  Perl_newGVOP
-#define Perl_newGVOP           pPerl->Perl_newGVOP
-#undef  newGVOP
-#define newGVOP                        Perl_newGVOP
-#undef  Perl_newGVgen
-#define Perl_newGVgen          pPerl->Perl_newGVgen
-#undef  newGVgen
-#define newGVgen               Perl_newGVgen
-#undef  Perl_newGVREF
-#define Perl_newGVREF          pPerl->Perl_newGVREF
-#undef  newGVREF
-#define newGVREF               Perl_newGVREF
-#undef  Perl_newHVREF
-#define Perl_newHVREF          pPerl->Perl_newHVREF
-#undef  newHVREF
-#define newHVREF               Perl_newHVREF
-#undef  Perl_newHV
-#define Perl_newHV             pPerl->Perl_newHV
-#undef  newHV
-#define newHV                  Perl_newHV
-#undef  Perl_newHVhv
-#define Perl_newHVhv           pPerl->Perl_newHVhv
-#undef  newHVhv
-#define newHVhv                        Perl_newHVhv
-#undef  Perl_newIO
-#define Perl_newIO             pPerl->Perl_newIO
-#undef  newIO
-#define newIO                  Perl_newIO
-#undef  Perl_newLISTOP
-#define Perl_newLISTOP         pPerl->Perl_newLISTOP
-#undef  newLISTOP
-#define newLISTOP              Perl_newLISTOP
-#undef  Perl_newPADOP
-#define Perl_newPADOP          pPerl->Perl_newPADOP
-#undef  newPADOP
-#define newPADOP               Perl_newPADOP
-#undef  Perl_newPMOP
-#define Perl_newPMOP           pPerl->Perl_newPMOP
-#undef  newPMOP
-#define newPMOP                        Perl_newPMOP
-#undef  Perl_newPVOP
-#define Perl_newPVOP           pPerl->Perl_newPVOP
-#undef  newPVOP
-#define newPVOP                        Perl_newPVOP
-#undef  Perl_newRV
-#define Perl_newRV             pPerl->Perl_newRV
-#undef  newRV
-#define newRV                  Perl_newRV
-#undef  Perl_newRV_noinc
-#define Perl_newRV_noinc       pPerl->Perl_newRV_noinc
-#undef  newRV_noinc
-#define newRV_noinc            Perl_newRV_noinc
-#undef  Perl_newSV
-#define Perl_newSV             pPerl->Perl_newSV
-#undef  newSV
-#define newSV                  Perl_newSV
-#undef  Perl_newSVREF
-#define Perl_newSVREF          pPerl->Perl_newSVREF
-#undef  newSVREF
-#define newSVREF               Perl_newSVREF
-#undef  Perl_newSVOP
-#define Perl_newSVOP           pPerl->Perl_newSVOP
-#undef  newSVOP
-#define newSVOP                        Perl_newSVOP
-#undef  Perl_newSViv
-#define Perl_newSViv           pPerl->Perl_newSViv
-#undef  newSViv
-#define newSViv                        Perl_newSViv
-#undef  Perl_newSVuv
-#define Perl_newSVuv           pPerl->Perl_newSVuv
-#undef  newSVuv
-#define newSVuv                        Perl_newSVuv
-#undef  Perl_newSVnv
-#define Perl_newSVnv           pPerl->Perl_newSVnv
-#undef  newSVnv
-#define newSVnv                        Perl_newSVnv
-#undef  Perl_newSVpv
-#define Perl_newSVpv           pPerl->Perl_newSVpv
-#undef  newSVpv
-#define newSVpv                        Perl_newSVpv
-#undef  Perl_newSVpvn
-#define Perl_newSVpvn          pPerl->Perl_newSVpvn
-#undef  newSVpvn
-#define newSVpvn               Perl_newSVpvn
-#undef  Perl_newSVpvn_share
-#define Perl_newSVpvn_share    pPerl->Perl_newSVpvn_share
-#undef  newSVpvn_share
-#define newSVpvn_share         Perl_newSVpvn_share
-#undef  Perl_newSVpvf
-#define Perl_newSVpvf          pPerl->Perl_newSVpvf
-#undef  newSVpvf
-#define newSVpvf               Perl_newSVpvf
-#undef  Perl_vnewSVpvf
-#define Perl_vnewSVpvf         pPerl->Perl_vnewSVpvf
-#undef  vnewSVpvf
-#define vnewSVpvf              Perl_vnewSVpvf
-#undef  Perl_newSVrv
-#define Perl_newSVrv           pPerl->Perl_newSVrv
-#undef  newSVrv
-#define newSVrv                        Perl_newSVrv
-#undef  Perl_newSVsv
-#define Perl_newSVsv           pPerl->Perl_newSVsv
-#undef  newSVsv
-#define newSVsv                        Perl_newSVsv
-#undef  Perl_newUNOP
-#define Perl_newUNOP           pPerl->Perl_newUNOP
-#undef  newUNOP
-#define newUNOP                        Perl_newUNOP
-#undef  Perl_newWHILEOP
-#define Perl_newWHILEOP                pPerl->Perl_newWHILEOP
-#undef  newWHILEOP
-#define newWHILEOP             Perl_newWHILEOP
-#undef  Perl_new_stackinfo
-#define Perl_new_stackinfo     pPerl->Perl_new_stackinfo
-#undef  new_stackinfo
-#define new_stackinfo          Perl_new_stackinfo
-#undef  Perl_ninstr
-#define Perl_ninstr            pPerl->Perl_ninstr
-#undef  ninstr
-#define ninstr                 Perl_ninstr
-#undef  Perl_op_free
-#define Perl_op_free           pPerl->Perl_op_free
-#undef  op_free
-#define op_free                        Perl_op_free
-#undef  Perl_pad_sv
-#define Perl_pad_sv            pPerl->Perl_pad_sv
-#undef  pad_sv
-#define pad_sv                 Perl_pad_sv
-#if defined(PERL_OBJECT)
-#undef  Perl_construct
-#define Perl_construct         pPerl->Perl_construct
-#undef  Perl_destruct
-#define Perl_destruct          pPerl->Perl_destruct
-#undef  Perl_free
-#define Perl_free              pPerl->Perl_free
-#undef  Perl_run
-#define Perl_run               pPerl->Perl_run
-#undef  Perl_parse
-#define Perl_parse             pPerl->Perl_parse
-#endif
-#if defined(USE_5005THREADS)
-#undef  Perl_new_struct_thread
-#define Perl_new_struct_thread pPerl->Perl_new_struct_thread
-#undef  new_struct_thread
-#define new_struct_thread      Perl_new_struct_thread
-#endif
-#undef  Perl_call_atexit
-#define Perl_call_atexit       pPerl->Perl_call_atexit
-#undef  call_atexit
-#define call_atexit            Perl_call_atexit
-#undef  Perl_call_argv
-#define Perl_call_argv         pPerl->Perl_call_argv
-#undef  call_argv
-#define call_argv              Perl_call_argv
-#undef  Perl_call_method
-#define Perl_call_method       pPerl->Perl_call_method
-#undef  call_method
-#define call_method            Perl_call_method
-#undef  Perl_call_pv
-#define Perl_call_pv           pPerl->Perl_call_pv
-#undef  call_pv
-#define call_pv                        Perl_call_pv
-#undef  Perl_call_sv
-#define Perl_call_sv           pPerl->Perl_call_sv
-#undef  call_sv
-#define call_sv                        Perl_call_sv
-#undef  Perl_eval_pv
-#define Perl_eval_pv           pPerl->Perl_eval_pv
-#undef  eval_pv
-#define eval_pv                        Perl_eval_pv
-#undef  Perl_eval_sv
-#define Perl_eval_sv           pPerl->Perl_eval_sv
-#undef  eval_sv
-#define eval_sv                        Perl_eval_sv
-#undef  Perl_get_sv
-#define Perl_get_sv            pPerl->Perl_get_sv
-#undef  get_sv
-#define get_sv                 Perl_get_sv
-#undef  Perl_get_av
-#define Perl_get_av            pPerl->Perl_get_av
-#undef  get_av
-#define get_av                 Perl_get_av
-#undef  Perl_get_hv
-#define Perl_get_hv            pPerl->Perl_get_hv
-#undef  get_hv
-#define get_hv                 Perl_get_hv
-#undef  Perl_get_cv
-#define Perl_get_cv            pPerl->Perl_get_cv
-#undef  get_cv
-#define get_cv                 Perl_get_cv
-#undef  Perl_init_i18nl10n
-#define Perl_init_i18nl10n     pPerl->Perl_init_i18nl10n
-#undef  init_i18nl10n
-#define init_i18nl10n          Perl_init_i18nl10n
-#undef  Perl_init_i18nl14n
-#define Perl_init_i18nl14n     pPerl->Perl_init_i18nl14n
-#undef  init_i18nl14n
-#define init_i18nl14n          Perl_init_i18nl14n
-#undef  Perl_new_collate
-#define Perl_new_collate       pPerl->Perl_new_collate
-#undef  new_collate
-#define new_collate            Perl_new_collate
-#undef  Perl_new_ctype
-#define Perl_new_ctype         pPerl->Perl_new_ctype
-#undef  new_ctype
-#define new_ctype              Perl_new_ctype
-#undef  Perl_new_numeric
-#define Perl_new_numeric       pPerl->Perl_new_numeric
-#undef  new_numeric
-#define new_numeric            Perl_new_numeric
-#undef  Perl_set_numeric_local
-#define Perl_set_numeric_local pPerl->Perl_set_numeric_local
-#undef  set_numeric_local
-#define set_numeric_local      Perl_set_numeric_local
-#undef  Perl_set_numeric_radix
-#define Perl_set_numeric_radix pPerl->Perl_set_numeric_radix
-#undef  set_numeric_radix
-#define set_numeric_radix      Perl_set_numeric_radix
-#undef  Perl_set_numeric_standard
-#define Perl_set_numeric_standard      pPerl->Perl_set_numeric_standard
-#undef  set_numeric_standard
-#define set_numeric_standard   Perl_set_numeric_standard
-#undef  Perl_require_pv
-#define Perl_require_pv                pPerl->Perl_require_pv
-#undef  require_pv
-#define require_pv             Perl_require_pv
-#undef  Perl_pmflag
-#define Perl_pmflag            pPerl->Perl_pmflag
-#undef  pmflag
-#define pmflag                 Perl_pmflag
-#undef  Perl_pop_scope
-#define Perl_pop_scope         pPerl->Perl_pop_scope
-#undef  pop_scope
-#define pop_scope              Perl_pop_scope
-#undef  Perl_push_scope
-#define Perl_push_scope                pPerl->Perl_push_scope
-#undef  push_scope
-#define push_scope             Perl_push_scope
-#undef  Perl_regdump
-#define Perl_regdump           pPerl->Perl_regdump
-#undef  regdump
-#define regdump                        Perl_regdump
-#undef  Perl_regclass_swash
-#define Perl_regclass_swash    pPerl->Perl_regclass_swash
-#undef  regclass_swash
-#define regclass_swash         Perl_regclass_swash
-#undef  Perl_pregexec
-#define Perl_pregexec          pPerl->Perl_pregexec
-#undef  pregexec
-#define pregexec               Perl_pregexec
-#undef  Perl_pregfree
-#define Perl_pregfree          pPerl->Perl_pregfree
-#undef  pregfree
-#define pregfree               Perl_pregfree
-#undef  Perl_pregcomp
-#define Perl_pregcomp          pPerl->Perl_pregcomp
-#undef  pregcomp
-#define pregcomp               Perl_pregcomp
-#undef  Perl_re_intuit_start
-#define Perl_re_intuit_start   pPerl->Perl_re_intuit_start
-#undef  re_intuit_start
-#define re_intuit_start                Perl_re_intuit_start
-#undef  Perl_re_intuit_string
-#define Perl_re_intuit_string  pPerl->Perl_re_intuit_string
-#undef  re_intuit_string
-#define re_intuit_string       Perl_re_intuit_string
-#undef  Perl_regexec_flags
-#define Perl_regexec_flags     pPerl->Perl_regexec_flags
-#undef  regexec_flags
-#define regexec_flags          Perl_regexec_flags
-#undef  Perl_regnext
-#define Perl_regnext           pPerl->Perl_regnext
-#undef  regnext
-#define regnext                        Perl_regnext
-#undef  Perl_repeatcpy
-#define Perl_repeatcpy         pPerl->Perl_repeatcpy
-#undef  repeatcpy
-#define repeatcpy              Perl_repeatcpy
-#undef  Perl_rninstr
-#define Perl_rninstr           pPerl->Perl_rninstr
-#undef  rninstr
-#define rninstr                        Perl_rninstr
-#undef  Perl_rsignal
-#define Perl_rsignal           pPerl->Perl_rsignal
-#undef  rsignal
-#define rsignal                        Perl_rsignal
-#undef  Perl_rsignal_state
-#define Perl_rsignal_state     pPerl->Perl_rsignal_state
-#undef  rsignal_state
-#define rsignal_state          Perl_rsignal_state
-#if !defined(HAS_RENAME)
-#endif
-#undef  Perl_savepv
-#define Perl_savepv            pPerl->Perl_savepv
-#undef  savepv
-#define savepv                 Perl_savepv
-#undef  Perl_savepvn
-#define Perl_savepvn           pPerl->Perl_savepvn
-#undef  savepvn
-#define savepvn                        Perl_savepvn
-#undef  Perl_savestack_grow
-#define Perl_savestack_grow    pPerl->Perl_savestack_grow
-#undef  savestack_grow
-#define savestack_grow         Perl_savestack_grow
-#undef  Perl_save_aelem
-#define Perl_save_aelem                pPerl->Perl_save_aelem
-#undef  save_aelem
-#define save_aelem             Perl_save_aelem
-#undef  Perl_save_alloc
-#define Perl_save_alloc                pPerl->Perl_save_alloc
-#undef  save_alloc
-#define save_alloc             Perl_save_alloc
-#undef  Perl_save_aptr
-#define Perl_save_aptr         pPerl->Perl_save_aptr
-#undef  save_aptr
-#define save_aptr              Perl_save_aptr
-#undef  Perl_save_ary
-#define Perl_save_ary          pPerl->Perl_save_ary
-#undef  save_ary
-#define save_ary               Perl_save_ary
-#undef  Perl_save_clearsv
-#define Perl_save_clearsv      pPerl->Perl_save_clearsv
-#undef  save_clearsv
-#define save_clearsv           Perl_save_clearsv
-#undef  Perl_save_delete
-#define Perl_save_delete       pPerl->Perl_save_delete
-#undef  save_delete
-#define save_delete            Perl_save_delete
-#undef  Perl_save_destructor
-#define Perl_save_destructor   pPerl->Perl_save_destructor
-#undef  save_destructor
-#define save_destructor                Perl_save_destructor
-#undef  Perl_save_destructor_x
-#define Perl_save_destructor_x pPerl->Perl_save_destructor_x
-#undef  save_destructor_x
-#define save_destructor_x      Perl_save_destructor_x
-#undef  Perl_save_freesv
-#define Perl_save_freesv       pPerl->Perl_save_freesv
-#undef  save_freesv
-#define save_freesv            Perl_save_freesv
-#undef  Perl_save_freepv
-#define Perl_save_freepv       pPerl->Perl_save_freepv
-#undef  save_freepv
-#define save_freepv            Perl_save_freepv
-#undef  Perl_save_generic_svref
-#define Perl_save_generic_svref        pPerl->Perl_save_generic_svref
-#undef  save_generic_svref
-#define save_generic_svref     Perl_save_generic_svref
-#undef  Perl_save_generic_pvref
-#define Perl_save_generic_pvref        pPerl->Perl_save_generic_pvref
-#undef  save_generic_pvref
-#define save_generic_pvref     Perl_save_generic_pvref
-#undef  Perl_save_gp
-#define Perl_save_gp           pPerl->Perl_save_gp
-#undef  save_gp
-#define save_gp                        Perl_save_gp
-#undef  Perl_save_hash
-#define Perl_save_hash         pPerl->Perl_save_hash
-#undef  save_hash
-#define save_hash              Perl_save_hash
-#undef  Perl_save_helem
-#define Perl_save_helem                pPerl->Perl_save_helem
-#undef  save_helem
-#define save_helem             Perl_save_helem
-#undef  Perl_save_hints
-#define Perl_save_hints                pPerl->Perl_save_hints
-#undef  save_hints
-#define save_hints             Perl_save_hints
-#undef  Perl_save_hptr
-#define Perl_save_hptr         pPerl->Perl_save_hptr
-#undef  save_hptr
-#define save_hptr              Perl_save_hptr
-#undef  Perl_save_I16
-#define Perl_save_I16          pPerl->Perl_save_I16
-#undef  save_I16
-#define save_I16               Perl_save_I16
-#undef  Perl_save_I32
-#define Perl_save_I32          pPerl->Perl_save_I32
-#undef  save_I32
-#define save_I32               Perl_save_I32
-#undef  Perl_save_I8
-#define Perl_save_I8           pPerl->Perl_save_I8
-#undef  save_I8
-#define save_I8                        Perl_save_I8
-#undef  Perl_save_int
-#define Perl_save_int          pPerl->Perl_save_int
-#undef  save_int
-#define save_int               Perl_save_int
-#undef  Perl_save_item
-#define Perl_save_item         pPerl->Perl_save_item
-#undef  save_item
-#define save_item              Perl_save_item
-#undef  Perl_save_iv
-#define Perl_save_iv           pPerl->Perl_save_iv
-#undef  save_iv
-#define save_iv                        Perl_save_iv
-#undef  Perl_save_list
-#define Perl_save_list         pPerl->Perl_save_list
-#undef  save_list
-#define save_list              Perl_save_list
-#undef  Perl_save_long
-#define Perl_save_long         pPerl->Perl_save_long
-#undef  save_long
-#define save_long              Perl_save_long
-#undef  Perl_save_mortalizesv
-#define Perl_save_mortalizesv  pPerl->Perl_save_mortalizesv
-#undef  save_mortalizesv
-#define save_mortalizesv       Perl_save_mortalizesv
-#undef  Perl_save_nogv
-#define Perl_save_nogv         pPerl->Perl_save_nogv
-#undef  save_nogv
-#define save_nogv              Perl_save_nogv
-#undef  Perl_save_scalar
-#define Perl_save_scalar       pPerl->Perl_save_scalar
-#undef  save_scalar
-#define save_scalar            Perl_save_scalar
-#undef  Perl_save_pptr
-#define Perl_save_pptr         pPerl->Perl_save_pptr
-#undef  save_pptr
-#define save_pptr              Perl_save_pptr
-#undef  Perl_save_vptr
-#define Perl_save_vptr         pPerl->Perl_save_vptr
-#undef  save_vptr
-#define save_vptr              Perl_save_vptr
-#undef  Perl_save_re_context
-#define Perl_save_re_context   pPerl->Perl_save_re_context
-#undef  save_re_context
-#define save_re_context                Perl_save_re_context
-#undef  Perl_save_padsv
-#define Perl_save_padsv                pPerl->Perl_save_padsv
-#undef  save_padsv
-#define save_padsv             Perl_save_padsv
-#undef  Perl_save_sptr
-#define Perl_save_sptr         pPerl->Perl_save_sptr
-#undef  save_sptr
-#define save_sptr              Perl_save_sptr
-#undef  Perl_save_svref
-#define Perl_save_svref                pPerl->Perl_save_svref
-#undef  save_svref
-#define save_svref             Perl_save_svref
-#undef  Perl_save_threadsv
-#define Perl_save_threadsv     pPerl->Perl_save_threadsv
-#undef  save_threadsv
-#define save_threadsv          Perl_save_threadsv
-#undef  Perl_scan_bin
-#define Perl_scan_bin          pPerl->Perl_scan_bin
-#undef  scan_bin
-#define scan_bin               Perl_scan_bin
-#undef  Perl_scan_hex
-#define Perl_scan_hex          pPerl->Perl_scan_hex
-#undef  scan_hex
-#define scan_hex               Perl_scan_hex
-#undef  Perl_scan_num
-#define Perl_scan_num          pPerl->Perl_scan_num
-#undef  scan_num
-#define scan_num               Perl_scan_num
-#undef  Perl_scan_oct
-#define Perl_scan_oct          pPerl->Perl_scan_oct
-#undef  scan_oct
-#define scan_oct               Perl_scan_oct
-#undef  Perl_screaminstr
-#define Perl_screaminstr       pPerl->Perl_screaminstr
-#undef  screaminstr
-#define screaminstr            Perl_screaminstr
-#if !defined(VMS)
-#endif
-#undef  Perl_sharepvn
-#define Perl_sharepvn          pPerl->Perl_sharepvn
-#undef  sharepvn
-#define sharepvn               Perl_sharepvn
-#undef  Perl_stack_grow
-#define Perl_stack_grow                pPerl->Perl_stack_grow
-#undef  stack_grow
-#define stack_grow             Perl_stack_grow
-#undef  Perl_start_subparse
-#define Perl_start_subparse    pPerl->Perl_start_subparse
-#undef  start_subparse
-#define start_subparse         Perl_start_subparse
-#undef  Perl_sv_2bool
-#define Perl_sv_2bool          pPerl->Perl_sv_2bool
-#undef  sv_2bool
-#define sv_2bool               Perl_sv_2bool
-#undef  Perl_sv_2cv
-#define Perl_sv_2cv            pPerl->Perl_sv_2cv
-#undef  sv_2cv
-#define sv_2cv                 Perl_sv_2cv
-#undef  Perl_sv_2io
-#define Perl_sv_2io            pPerl->Perl_sv_2io
-#undef  sv_2io
-#define sv_2io                 Perl_sv_2io
-#undef  Perl_sv_2iv
-#define Perl_sv_2iv            pPerl->Perl_sv_2iv
-#undef  sv_2iv
-#define sv_2iv                 Perl_sv_2iv
-#undef  Perl_sv_2mortal
-#define Perl_sv_2mortal                pPerl->Perl_sv_2mortal
-#undef  sv_2mortal
-#define sv_2mortal             Perl_sv_2mortal
-#undef  Perl_sv_2nv
-#define Perl_sv_2nv            pPerl->Perl_sv_2nv
-#undef  sv_2nv
-#define sv_2nv                 Perl_sv_2nv
-#undef  Perl_sv_2pv
-#define Perl_sv_2pv            pPerl->Perl_sv_2pv
-#undef  sv_2pv
-#define sv_2pv                 Perl_sv_2pv
-#undef  Perl_sv_2pvutf8
-#define Perl_sv_2pvutf8                pPerl->Perl_sv_2pvutf8
-#undef  sv_2pvutf8
-#define sv_2pvutf8             Perl_sv_2pvutf8
-#undef  Perl_sv_2pvbyte
-#define Perl_sv_2pvbyte                pPerl->Perl_sv_2pvbyte
-#undef  sv_2pvbyte
-#define sv_2pvbyte             Perl_sv_2pvbyte
-#undef  Perl_sv_2uv
-#define Perl_sv_2uv            pPerl->Perl_sv_2uv
-#undef  sv_2uv
-#define sv_2uv                 Perl_sv_2uv
-#undef  Perl_sv_iv
-#define Perl_sv_iv             pPerl->Perl_sv_iv
-#undef  sv_iv
-#define sv_iv                  Perl_sv_iv
-#undef  Perl_sv_uv
-#define Perl_sv_uv             pPerl->Perl_sv_uv
-#undef  sv_uv
-#define sv_uv                  Perl_sv_uv
-#undef  Perl_sv_nv
-#define Perl_sv_nv             pPerl->Perl_sv_nv
-#undef  sv_nv
-#define sv_nv                  Perl_sv_nv
-#undef  Perl_sv_pvn
-#define Perl_sv_pvn            pPerl->Perl_sv_pvn
-#undef  sv_pvn
-#define sv_pvn                 Perl_sv_pvn
-#undef  Perl_sv_pvutf8n
-#define Perl_sv_pvutf8n                pPerl->Perl_sv_pvutf8n
-#undef  sv_pvutf8n
-#define sv_pvutf8n             Perl_sv_pvutf8n
-#undef  Perl_sv_pvbyten
-#define Perl_sv_pvbyten                pPerl->Perl_sv_pvbyten
-#undef  sv_pvbyten
-#define sv_pvbyten             Perl_sv_pvbyten
-#undef  Perl_sv_true
-#define Perl_sv_true           pPerl->Perl_sv_true
-#undef  sv_true
-#define sv_true                        Perl_sv_true
-#undef  Perl_sv_backoff
-#define Perl_sv_backoff                pPerl->Perl_sv_backoff
-#undef  sv_backoff
-#define sv_backoff             Perl_sv_backoff
-#undef  Perl_sv_bless
-#define Perl_sv_bless          pPerl->Perl_sv_bless
-#undef  sv_bless
-#define sv_bless               Perl_sv_bless
-#undef  Perl_sv_catpvf
-#define Perl_sv_catpvf         pPerl->Perl_sv_catpvf
-#undef  sv_catpvf
-#define sv_catpvf              Perl_sv_catpvf
-#undef  Perl_sv_vcatpvf
-#define Perl_sv_vcatpvf                pPerl->Perl_sv_vcatpvf
-#undef  sv_vcatpvf
-#define sv_vcatpvf             Perl_sv_vcatpvf
-#undef  Perl_sv_catpv
-#define Perl_sv_catpv          pPerl->Perl_sv_catpv
-#undef  sv_catpv
-#define sv_catpv               Perl_sv_catpv
-#undef  Perl_sv_catpvn
-#define Perl_sv_catpvn         pPerl->Perl_sv_catpvn
-#undef  sv_catpvn
-#define sv_catpvn              Perl_sv_catpvn
-#undef  Perl_sv_catsv
-#define Perl_sv_catsv          pPerl->Perl_sv_catsv
-#undef  sv_catsv
-#define sv_catsv               Perl_sv_catsv
-#undef  Perl_sv_chop
-#define Perl_sv_chop           pPerl->Perl_sv_chop
-#undef  sv_chop
-#define sv_chop                        Perl_sv_chop
-#undef  Perl_sv_clear
-#define Perl_sv_clear          pPerl->Perl_sv_clear
-#undef  sv_clear
-#define sv_clear               Perl_sv_clear
-#undef  Perl_sv_cmp
-#define Perl_sv_cmp            pPerl->Perl_sv_cmp
-#undef  sv_cmp
-#define sv_cmp                 Perl_sv_cmp
-#undef  Perl_sv_cmp_locale
-#define Perl_sv_cmp_locale     pPerl->Perl_sv_cmp_locale
-#undef  sv_cmp_locale
-#define sv_cmp_locale          Perl_sv_cmp_locale
-#if defined(USE_LOCALE_COLLATE)
-#undef  Perl_sv_collxfrm
-#define Perl_sv_collxfrm       pPerl->Perl_sv_collxfrm
-#undef  sv_collxfrm
-#define sv_collxfrm            Perl_sv_collxfrm
-#endif
-#undef  Perl_sv_compile_2op
-#define Perl_sv_compile_2op    pPerl->Perl_sv_compile_2op
-#undef  sv_compile_2op
-#define sv_compile_2op         Perl_sv_compile_2op
-#undef  Perl_getcwd_sv
-#define Perl_getcwd_sv         pPerl->Perl_getcwd_sv
-#undef  getcwd_sv
-#define getcwd_sv              Perl_getcwd_sv
-#undef  Perl_sv_dec
-#define Perl_sv_dec            pPerl->Perl_sv_dec
-#undef  sv_dec
-#define sv_dec                 Perl_sv_dec
-#undef  Perl_sv_dump
-#define Perl_sv_dump           pPerl->Perl_sv_dump
-#undef  sv_dump
-#define sv_dump                        Perl_sv_dump
-#undef  Perl_sv_derived_from
-#define Perl_sv_derived_from   pPerl->Perl_sv_derived_from
-#undef  sv_derived_from
-#define sv_derived_from                Perl_sv_derived_from
-#undef  Perl_sv_eq
-#define Perl_sv_eq             pPerl->Perl_sv_eq
-#undef  sv_eq
-#define sv_eq                  Perl_sv_eq
-#undef  Perl_sv_free
-#define Perl_sv_free           pPerl->Perl_sv_free
-#undef  sv_free
-#define sv_free                        Perl_sv_free
-#undef  Perl_sv_gets
-#define Perl_sv_gets           pPerl->Perl_sv_gets
-#undef  sv_gets
-#define sv_gets                        Perl_sv_gets
-#undef  Perl_sv_grow
-#define Perl_sv_grow           pPerl->Perl_sv_grow
-#undef  sv_grow
-#define sv_grow                        Perl_sv_grow
-#undef  Perl_sv_inc
-#define Perl_sv_inc            pPerl->Perl_sv_inc
-#undef  sv_inc
-#define sv_inc                 Perl_sv_inc
-#undef  Perl_sv_insert
-#define Perl_sv_insert         pPerl->Perl_sv_insert
-#undef  sv_insert
-#define sv_insert              Perl_sv_insert
-#undef  Perl_sv_isa
-#define Perl_sv_isa            pPerl->Perl_sv_isa
-#undef  sv_isa
-#define sv_isa                 Perl_sv_isa
-#undef  Perl_sv_isobject
-#define Perl_sv_isobject       pPerl->Perl_sv_isobject
-#undef  sv_isobject
-#define sv_isobject            Perl_sv_isobject
-#undef  Perl_sv_len
-#define Perl_sv_len            pPerl->Perl_sv_len
-#undef  sv_len
-#define sv_len                 Perl_sv_len
-#undef  Perl_sv_len_utf8
-#define Perl_sv_len_utf8       pPerl->Perl_sv_len_utf8
-#undef  sv_len_utf8
-#define sv_len_utf8            Perl_sv_len_utf8
-#undef  Perl_sv_magic
-#define Perl_sv_magic          pPerl->Perl_sv_magic
-#undef  sv_magic
-#define sv_magic               Perl_sv_magic
-#undef  Perl_sv_mortalcopy
-#define Perl_sv_mortalcopy     pPerl->Perl_sv_mortalcopy
-#undef  sv_mortalcopy
-#define sv_mortalcopy          Perl_sv_mortalcopy
-#undef  Perl_sv_newmortal
-#define Perl_sv_newmortal      pPerl->Perl_sv_newmortal
-#undef  sv_newmortal
-#define sv_newmortal           Perl_sv_newmortal
-#undef  Perl_sv_newref
-#define Perl_sv_newref         pPerl->Perl_sv_newref
-#undef  sv_newref
-#define sv_newref              Perl_sv_newref
-#undef  Perl_sv_peek
-#define Perl_sv_peek           pPerl->Perl_sv_peek
-#undef  sv_peek
-#define sv_peek                        Perl_sv_peek
-#undef  Perl_sv_pos_u2b
-#define Perl_sv_pos_u2b                pPerl->Perl_sv_pos_u2b
-#undef  sv_pos_u2b
-#define sv_pos_u2b             Perl_sv_pos_u2b
-#undef  Perl_sv_pos_b2u
-#define Perl_sv_pos_b2u                pPerl->Perl_sv_pos_b2u
-#undef  sv_pos_b2u
-#define sv_pos_b2u             Perl_sv_pos_b2u
-#undef  Perl_sv_pvn_force
-#define Perl_sv_pvn_force      pPerl->Perl_sv_pvn_force
-#undef  sv_pvn_force
-#define sv_pvn_force           Perl_sv_pvn_force
-#undef  Perl_sv_pvutf8n_force
-#define Perl_sv_pvutf8n_force  pPerl->Perl_sv_pvutf8n_force
-#undef  sv_pvutf8n_force
-#define sv_pvutf8n_force       Perl_sv_pvutf8n_force
-#undef  Perl_sv_pvbyten_force
-#define Perl_sv_pvbyten_force  pPerl->Perl_sv_pvbyten_force
-#undef  sv_pvbyten_force
-#define sv_pvbyten_force       Perl_sv_pvbyten_force
-#undef  Perl_sv_reftype
-#define Perl_sv_reftype                pPerl->Perl_sv_reftype
-#undef  sv_reftype
-#define sv_reftype             Perl_sv_reftype
-#undef  Perl_sv_replace
-#define Perl_sv_replace                pPerl->Perl_sv_replace
-#undef  sv_replace
-#define sv_replace             Perl_sv_replace
-#undef  Perl_sv_report_used
-#define Perl_sv_report_used    pPerl->Perl_sv_report_used
-#undef  sv_report_used
-#define sv_report_used         Perl_sv_report_used
-#undef  Perl_sv_reset
-#define Perl_sv_reset          pPerl->Perl_sv_reset
-#undef  sv_reset
-#define sv_reset               Perl_sv_reset
-#undef  Perl_sv_setpvf
-#define Perl_sv_setpvf         pPerl->Perl_sv_setpvf
-#undef  sv_setpvf
-#define sv_setpvf              Perl_sv_setpvf
-#undef  Perl_sv_vsetpvf
-#define Perl_sv_vsetpvf                pPerl->Perl_sv_vsetpvf
-#undef  sv_vsetpvf
-#define sv_vsetpvf             Perl_sv_vsetpvf
-#undef  Perl_sv_setiv
-#define Perl_sv_setiv          pPerl->Perl_sv_setiv
-#undef  sv_setiv
-#define sv_setiv               Perl_sv_setiv
-#undef  Perl_sv_setpviv
-#define Perl_sv_setpviv                pPerl->Perl_sv_setpviv
-#undef  sv_setpviv
-#define sv_setpviv             Perl_sv_setpviv
-#undef  Perl_sv_setuv
-#define Perl_sv_setuv          pPerl->Perl_sv_setuv
-#undef  sv_setuv
-#define sv_setuv               Perl_sv_setuv
-#undef  Perl_sv_setnv
-#define Perl_sv_setnv          pPerl->Perl_sv_setnv
-#undef  sv_setnv
-#define sv_setnv               Perl_sv_setnv
-#undef  Perl_sv_setref_iv
-#define Perl_sv_setref_iv      pPerl->Perl_sv_setref_iv
-#undef  sv_setref_iv
-#define sv_setref_iv           Perl_sv_setref_iv
-#undef  Perl_sv_setref_uv
-#define Perl_sv_setref_uv      pPerl->Perl_sv_setref_uv
-#undef  sv_setref_uv
-#define sv_setref_uv           Perl_sv_setref_uv
-#undef  Perl_sv_setref_nv
-#define Perl_sv_setref_nv      pPerl->Perl_sv_setref_nv
-#undef  sv_setref_nv
-#define sv_setref_nv           Perl_sv_setref_nv
-#undef  Perl_sv_setref_pv
-#define Perl_sv_setref_pv      pPerl->Perl_sv_setref_pv
-#undef  sv_setref_pv
-#define sv_setref_pv           Perl_sv_setref_pv
-#undef  Perl_sv_setref_pvn
-#define Perl_sv_setref_pvn     pPerl->Perl_sv_setref_pvn
-#undef  sv_setref_pvn
-#define sv_setref_pvn          Perl_sv_setref_pvn
-#undef  Perl_sv_setpv
-#define Perl_sv_setpv          pPerl->Perl_sv_setpv
-#undef  sv_setpv
-#define sv_setpv               Perl_sv_setpv
-#undef  Perl_sv_setpvn
-#define Perl_sv_setpvn         pPerl->Perl_sv_setpvn
-#undef  sv_setpvn
-#define sv_setpvn              Perl_sv_setpvn
-#undef  Perl_sv_setsv
-#define Perl_sv_setsv          pPerl->Perl_sv_setsv
-#undef  sv_setsv
-#define sv_setsv               Perl_sv_setsv
-#undef  Perl_sv_taint
-#define Perl_sv_taint          pPerl->Perl_sv_taint
-#undef  sv_taint
-#define sv_taint               Perl_sv_taint
-#undef  Perl_sv_tainted
-#define Perl_sv_tainted                pPerl->Perl_sv_tainted
-#undef  sv_tainted
-#define sv_tainted             Perl_sv_tainted
-#undef  Perl_sv_unmagic
-#define Perl_sv_unmagic                pPerl->Perl_sv_unmagic
-#undef  sv_unmagic
-#define sv_unmagic             Perl_sv_unmagic
-#undef  Perl_sv_unref
-#define Perl_sv_unref          pPerl->Perl_sv_unref
-#undef  sv_unref
-#define sv_unref               Perl_sv_unref
-#undef  Perl_sv_unref_flags
-#define Perl_sv_unref_flags    pPerl->Perl_sv_unref_flags
-#undef  sv_unref_flags
-#define sv_unref_flags         Perl_sv_unref_flags
-#undef  Perl_sv_untaint
-#define Perl_sv_untaint                pPerl->Perl_sv_untaint
-#undef  sv_untaint
-#define sv_untaint             Perl_sv_untaint
-#undef  Perl_sv_upgrade
-#define Perl_sv_upgrade                pPerl->Perl_sv_upgrade
-#undef  sv_upgrade
-#define sv_upgrade             Perl_sv_upgrade
-#undef  Perl_sv_usepvn
-#define Perl_sv_usepvn         pPerl->Perl_sv_usepvn
-#undef  sv_usepvn
-#define sv_usepvn              Perl_sv_usepvn
-#undef  Perl_sv_vcatpvfn
-#define Perl_sv_vcatpvfn       pPerl->Perl_sv_vcatpvfn
-#undef  sv_vcatpvfn
-#define sv_vcatpvfn            Perl_sv_vcatpvfn
-#undef  Perl_sv_vsetpvfn
-#define Perl_sv_vsetpvfn       pPerl->Perl_sv_vsetpvfn
-#undef  sv_vsetpvfn
-#define sv_vsetpvfn            Perl_sv_vsetpvfn
-#undef  Perl_str_to_version
-#define Perl_str_to_version    pPerl->Perl_str_to_version
-#undef  str_to_version
-#define str_to_version         Perl_str_to_version
-#undef  Perl_swash_init
-#define Perl_swash_init                pPerl->Perl_swash_init
-#undef  swash_init
-#define swash_init             Perl_swash_init
-#undef  Perl_swash_fetch
-#define Perl_swash_fetch       pPerl->Perl_swash_fetch
-#undef  swash_fetch
-#define swash_fetch            Perl_swash_fetch
-#undef  Perl_taint_env
-#define Perl_taint_env         pPerl->Perl_taint_env
-#undef  taint_env
-#define taint_env              Perl_taint_env
-#undef  Perl_taint_proper
-#define Perl_taint_proper      pPerl->Perl_taint_proper
-#undef  taint_proper
-#define taint_proper           Perl_taint_proper
-#undef  Perl_to_utf8_lower
-#define Perl_to_utf8_lower     pPerl->Perl_to_utf8_lower
-#undef  to_utf8_lower
-#define to_utf8_lower          Perl_to_utf8_lower
-#undef  Perl_to_utf8_upper
-#define Perl_to_utf8_upper     pPerl->Perl_to_utf8_upper
-#undef  to_utf8_upper
-#define to_utf8_upper          Perl_to_utf8_upper
-#undef  Perl_to_utf8_title
-#define Perl_to_utf8_title     pPerl->Perl_to_utf8_title
-#undef  to_utf8_title
-#define to_utf8_title          Perl_to_utf8_title
-#if defined(UNLINK_ALL_VERSIONS)
-#undef  Perl_unlnk
-#define Perl_unlnk             pPerl->Perl_unlnk
-#undef  unlnk
-#define unlnk                  Perl_unlnk
-#endif
-#if defined(USE_5005THREADS)
-#undef  Perl_unlock_condpair
-#define Perl_unlock_condpair   pPerl->Perl_unlock_condpair
-#undef  unlock_condpair
-#define unlock_condpair                Perl_unlock_condpair
-#endif
-#undef  Perl_unsharepvn
-#define Perl_unsharepvn                pPerl->Perl_unsharepvn
-#undef  unsharepvn
-#define unsharepvn             Perl_unsharepvn
-#undef  Perl_utf16_to_utf8
-#define Perl_utf16_to_utf8     pPerl->Perl_utf16_to_utf8
-#undef  utf16_to_utf8
-#define utf16_to_utf8          Perl_utf16_to_utf8
-#undef  Perl_utf16_to_utf8_reversed
-#define Perl_utf16_to_utf8_reversed    pPerl->Perl_utf16_to_utf8_reversed
-#undef  utf16_to_utf8_reversed
-#define utf16_to_utf8_reversed Perl_utf16_to_utf8_reversed
-#undef  Perl_utf8_length
-#define Perl_utf8_length       pPerl->Perl_utf8_length
-#undef  utf8_length
-#define utf8_length            Perl_utf8_length
-#undef  Perl_utf8_distance
-#define Perl_utf8_distance     pPerl->Perl_utf8_distance
-#undef  utf8_distance
-#define utf8_distance          Perl_utf8_distance
-#undef  Perl_utf8_hop
-#define Perl_utf8_hop          pPerl->Perl_utf8_hop
-#undef  utf8_hop
-#define utf8_hop               Perl_utf8_hop
-#undef  Perl_utf8_to_bytes
-#define Perl_utf8_to_bytes     pPerl->Perl_utf8_to_bytes
-#undef  utf8_to_bytes
-#define utf8_to_bytes          Perl_utf8_to_bytes
-#undef  Perl_bytes_from_utf8
-#define Perl_bytes_from_utf8   pPerl->Perl_bytes_from_utf8
-#undef  bytes_from_utf8
-#define bytes_from_utf8                Perl_bytes_from_utf8
-#undef  Perl_bytes_to_utf8
-#define Perl_bytes_to_utf8     pPerl->Perl_bytes_to_utf8
-#undef  bytes_to_utf8
-#define bytes_to_utf8          Perl_bytes_to_utf8
-#undef  Perl_utf8_to_uvchr
-#define Perl_utf8_to_uvchr     pPerl->Perl_utf8_to_uvchr
-#undef  utf8_to_uvchr
-#define utf8_to_uvchr          Perl_utf8_to_uvchr
-#undef  Perl_utf8_to_uvuni
-#define Perl_utf8_to_uvuni     pPerl->Perl_utf8_to_uvuni
-#undef  utf8_to_uvuni
-#define utf8_to_uvuni          Perl_utf8_to_uvuni
-#undef  Perl_utf8n_to_uvchr
-#define Perl_utf8n_to_uvchr    pPerl->Perl_utf8n_to_uvchr
-#undef  utf8n_to_uvchr
-#define utf8n_to_uvchr         Perl_utf8n_to_uvchr
-#undef  Perl_utf8n_to_uvuni
-#define Perl_utf8n_to_uvuni    pPerl->Perl_utf8n_to_uvuni
-#undef  utf8n_to_uvuni
-#define utf8n_to_uvuni         Perl_utf8n_to_uvuni
-#undef  Perl_uvchr_to_utf8
-#define Perl_uvchr_to_utf8     pPerl->Perl_uvchr_to_utf8
-#undef  uvchr_to_utf8
-#define uvchr_to_utf8          Perl_uvchr_to_utf8
-#undef  Perl_uvuni_to_utf8
-#define Perl_uvuni_to_utf8     pPerl->Perl_uvuni_to_utf8
-#undef  uvuni_to_utf8
-#define uvuni_to_utf8          Perl_uvuni_to_utf8
-#undef  Perl_warn
-#define Perl_warn              pPerl->Perl_warn
-#undef  warn
-#define warn                   Perl_warn
-#undef  Perl_vwarn
-#define Perl_vwarn             pPerl->Perl_vwarn
-#undef  vwarn
-#define vwarn                  Perl_vwarn
-#undef  Perl_warner
-#define Perl_warner            pPerl->Perl_warner
-#undef  warner
-#define warner                 Perl_warner
-#undef  Perl_vwarner
-#define Perl_vwarner           pPerl->Perl_vwarner
-#undef  vwarner
-#define vwarner                        Perl_vwarner
-#undef  Perl_whichsig
-#define Perl_whichsig          pPerl->Perl_whichsig
-#undef  whichsig
-#define whichsig               Perl_whichsig
-#ifdef USE_PURE_BISON
-#endif
-#if defined(MYMALLOC)
-#undef  Perl_dump_mstats
-#define Perl_dump_mstats       pPerl->Perl_dump_mstats
-#undef  dump_mstats
-#define dump_mstats            Perl_dump_mstats
-#undef  Perl_get_mstats
-#define Perl_get_mstats                pPerl->Perl_get_mstats
-#undef  get_mstats
-#define get_mstats             Perl_get_mstats
-#endif
-#undef  Perl_safesysmalloc
-#define Perl_safesysmalloc     pPerl->Perl_safesysmalloc
-#undef  safesysmalloc
-#define safesysmalloc          Perl_safesysmalloc
-#undef  Perl_safesyscalloc
-#define Perl_safesyscalloc     pPerl->Perl_safesyscalloc
-#undef  safesyscalloc
-#define safesyscalloc          Perl_safesyscalloc
-#undef  Perl_safesysrealloc
-#define Perl_safesysrealloc    pPerl->Perl_safesysrealloc
-#undef  safesysrealloc
-#define safesysrealloc         Perl_safesysrealloc
-#undef  Perl_safesysfree
-#define Perl_safesysfree       pPerl->Perl_safesysfree
-#undef  safesysfree
-#define safesysfree            Perl_safesysfree
-#if defined(LEAKTEST)
-#undef  Perl_safexmalloc
-#define Perl_safexmalloc       pPerl->Perl_safexmalloc
-#undef  safexmalloc
-#define safexmalloc            Perl_safexmalloc
-#undef  Perl_safexcalloc
-#define Perl_safexcalloc       pPerl->Perl_safexcalloc
-#undef  safexcalloc
-#define safexcalloc            Perl_safexcalloc
-#undef  Perl_safexrealloc
-#define Perl_safexrealloc      pPerl->Perl_safexrealloc
-#undef  safexrealloc
-#define safexrealloc           Perl_safexrealloc
-#undef  Perl_safexfree
-#define Perl_safexfree         pPerl->Perl_safexfree
-#undef  safexfree
-#define safexfree              Perl_safexfree
-#endif
-#if defined(PERL_GLOBAL_STRUCT)
-#undef  Perl_GetVars
-#define Perl_GetVars           pPerl->Perl_GetVars
-#undef  GetVars
-#define GetVars                        Perl_GetVars
-#endif
-#undef  Perl_runops_standard
-#define Perl_runops_standard   pPerl->Perl_runops_standard
-#undef  runops_standard
-#define runops_standard                Perl_runops_standard
-#undef  Perl_runops_debug
-#define Perl_runops_debug      pPerl->Perl_runops_debug
-#undef  runops_debug
-#define runops_debug           Perl_runops_debug
-#if defined(USE_5005THREADS)
-#undef  Perl_sv_lock
-#define Perl_sv_lock           pPerl->Perl_sv_lock
-#undef  sv_lock
-#define sv_lock                        Perl_sv_lock
-#endif
-#undef  Perl_sv_catpvf_mg
-#define Perl_sv_catpvf_mg      pPerl->Perl_sv_catpvf_mg
-#undef  sv_catpvf_mg
-#define sv_catpvf_mg           Perl_sv_catpvf_mg
-#undef  Perl_sv_vcatpvf_mg
-#define Perl_sv_vcatpvf_mg     pPerl->Perl_sv_vcatpvf_mg
-#undef  sv_vcatpvf_mg
-#define sv_vcatpvf_mg          Perl_sv_vcatpvf_mg
-#undef  Perl_sv_catpv_mg
-#define Perl_sv_catpv_mg       pPerl->Perl_sv_catpv_mg
-#undef  sv_catpv_mg
-#define sv_catpv_mg            Perl_sv_catpv_mg
-#undef  Perl_sv_catpvn_mg
-#define Perl_sv_catpvn_mg      pPerl->Perl_sv_catpvn_mg
-#undef  sv_catpvn_mg
-#define sv_catpvn_mg           Perl_sv_catpvn_mg
-#undef  Perl_sv_catsv_mg
-#define Perl_sv_catsv_mg       pPerl->Perl_sv_catsv_mg
-#undef  sv_catsv_mg
-#define sv_catsv_mg            Perl_sv_catsv_mg
-#undef  Perl_sv_setpvf_mg
-#define Perl_sv_setpvf_mg      pPerl->Perl_sv_setpvf_mg
-#undef  sv_setpvf_mg
-#define sv_setpvf_mg           Perl_sv_setpvf_mg
-#undef  Perl_sv_vsetpvf_mg
-#define Perl_sv_vsetpvf_mg     pPerl->Perl_sv_vsetpvf_mg
-#undef  sv_vsetpvf_mg
-#define sv_vsetpvf_mg          Perl_sv_vsetpvf_mg
-#undef  Perl_sv_setiv_mg
-#define Perl_sv_setiv_mg       pPerl->Perl_sv_setiv_mg
-#undef  sv_setiv_mg
-#define sv_setiv_mg            Perl_sv_setiv_mg
-#undef  Perl_sv_setpviv_mg
-#define Perl_sv_setpviv_mg     pPerl->Perl_sv_setpviv_mg
-#undef  sv_setpviv_mg
-#define sv_setpviv_mg          Perl_sv_setpviv_mg
-#undef  Perl_sv_setuv_mg
-#define Perl_sv_setuv_mg       pPerl->Perl_sv_setuv_mg
-#undef  sv_setuv_mg
-#define sv_setuv_mg            Perl_sv_setuv_mg
-#undef  Perl_sv_setnv_mg
-#define Perl_sv_setnv_mg       pPerl->Perl_sv_setnv_mg
-#undef  sv_setnv_mg
-#define sv_setnv_mg            Perl_sv_setnv_mg
-#undef  Perl_sv_setpv_mg
-#define Perl_sv_setpv_mg       pPerl->Perl_sv_setpv_mg
-#undef  sv_setpv_mg
-#define sv_setpv_mg            Perl_sv_setpv_mg
-#undef  Perl_sv_setpvn_mg
-#define Perl_sv_setpvn_mg      pPerl->Perl_sv_setpvn_mg
-#undef  sv_setpvn_mg
-#define sv_setpvn_mg           Perl_sv_setpvn_mg
-#undef  Perl_sv_setsv_mg
-#define Perl_sv_setsv_mg       pPerl->Perl_sv_setsv_mg
-#undef  sv_setsv_mg
-#define sv_setsv_mg            Perl_sv_setsv_mg
-#undef  Perl_sv_usepvn_mg
-#define Perl_sv_usepvn_mg      pPerl->Perl_sv_usepvn_mg
-#undef  sv_usepvn_mg
-#define sv_usepvn_mg           Perl_sv_usepvn_mg
-#undef  Perl_get_vtbl
-#define Perl_get_vtbl          pPerl->Perl_get_vtbl
-#undef  get_vtbl
-#define get_vtbl               Perl_get_vtbl
-#undef  Perl_dump_indent
-#define Perl_dump_indent       pPerl->Perl_dump_indent
-#undef  dump_indent
-#define dump_indent            Perl_dump_indent
-#undef  Perl_dump_vindent
-#define Perl_dump_vindent      pPerl->Perl_dump_vindent
-#undef  dump_vindent
-#define dump_vindent           Perl_dump_vindent
-#undef  Perl_do_gv_dump
-#define Perl_do_gv_dump                pPerl->Perl_do_gv_dump
-#undef  do_gv_dump
-#define do_gv_dump             Perl_do_gv_dump
-#undef  Perl_do_gvgv_dump
-#define Perl_do_gvgv_dump      pPerl->Perl_do_gvgv_dump
-#undef  do_gvgv_dump
-#define do_gvgv_dump           Perl_do_gvgv_dump
-#undef  Perl_do_hv_dump
-#define Perl_do_hv_dump                pPerl->Perl_do_hv_dump
-#undef  do_hv_dump
-#define do_hv_dump             Perl_do_hv_dump
-#undef  Perl_do_magic_dump
-#define Perl_do_magic_dump     pPerl->Perl_do_magic_dump
-#undef  do_magic_dump
-#define do_magic_dump          Perl_do_magic_dump
-#undef  Perl_do_op_dump
-#define Perl_do_op_dump                pPerl->Perl_do_op_dump
-#undef  do_op_dump
-#define do_op_dump             Perl_do_op_dump
-#undef  Perl_do_pmop_dump
-#define Perl_do_pmop_dump      pPerl->Perl_do_pmop_dump
-#undef  do_pmop_dump
-#define do_pmop_dump           Perl_do_pmop_dump
-#undef  Perl_do_sv_dump
-#define Perl_do_sv_dump                pPerl->Perl_do_sv_dump
-#undef  do_sv_dump
-#define do_sv_dump             Perl_do_sv_dump
-#undef  Perl_magic_dump
-#define Perl_magic_dump                pPerl->Perl_magic_dump
-#undef  magic_dump
-#define magic_dump             Perl_magic_dump
-#if defined(PERL_FLEXIBLE_EXCEPTIONS)
-#undef  Perl_default_protect
-#define Perl_default_protect   pPerl->Perl_default_protect
-#undef  default_protect
-#define default_protect                Perl_default_protect
-#undef  Perl_vdefault_protect
-#define Perl_vdefault_protect  pPerl->Perl_vdefault_protect
-#undef  vdefault_protect
-#define vdefault_protect       Perl_vdefault_protect
-#endif
-#undef  Perl_reginitcolors
-#define Perl_reginitcolors     pPerl->Perl_reginitcolors
-#undef  reginitcolors
-#define reginitcolors          Perl_reginitcolors
-#undef  Perl_sv_2pv_nolen
-#define Perl_sv_2pv_nolen      pPerl->Perl_sv_2pv_nolen
-#undef  sv_2pv_nolen
-#define sv_2pv_nolen           Perl_sv_2pv_nolen
-#undef  Perl_sv_2pvutf8_nolen
-#define Perl_sv_2pvutf8_nolen  pPerl->Perl_sv_2pvutf8_nolen
-#undef  sv_2pvutf8_nolen
-#define sv_2pvutf8_nolen       Perl_sv_2pvutf8_nolen
-#undef  Perl_sv_2pvbyte_nolen
-#define Perl_sv_2pvbyte_nolen  pPerl->Perl_sv_2pvbyte_nolen
-#undef  sv_2pvbyte_nolen
-#define sv_2pvbyte_nolen       Perl_sv_2pvbyte_nolen
-#undef  Perl_sv_pv
-#define Perl_sv_pv             pPerl->Perl_sv_pv
-#undef  sv_pv
-#define sv_pv                  Perl_sv_pv
-#undef  Perl_sv_pvutf8
-#define Perl_sv_pvutf8         pPerl->Perl_sv_pvutf8
-#undef  sv_pvutf8
-#define sv_pvutf8              Perl_sv_pvutf8
-#undef  Perl_sv_pvbyte
-#define Perl_sv_pvbyte         pPerl->Perl_sv_pvbyte
-#undef  sv_pvbyte
-#define sv_pvbyte              Perl_sv_pvbyte
-#undef  Perl_sv_utf8_upgrade
-#define Perl_sv_utf8_upgrade   pPerl->Perl_sv_utf8_upgrade
-#undef  sv_utf8_upgrade
-#define sv_utf8_upgrade                Perl_sv_utf8_upgrade
-#undef  Perl_sv_utf8_downgrade
-#define Perl_sv_utf8_downgrade pPerl->Perl_sv_utf8_downgrade
-#undef  sv_utf8_downgrade
-#define sv_utf8_downgrade      Perl_sv_utf8_downgrade
-#undef  Perl_sv_utf8_encode
-#define Perl_sv_utf8_encode    pPerl->Perl_sv_utf8_encode
-#undef  sv_utf8_encode
-#define sv_utf8_encode         Perl_sv_utf8_encode
-#undef  Perl_sv_utf8_decode
-#define Perl_sv_utf8_decode    pPerl->Perl_sv_utf8_decode
-#undef  sv_utf8_decode
-#define sv_utf8_decode         Perl_sv_utf8_decode
-#undef  Perl_sv_force_normal
-#define Perl_sv_force_normal   pPerl->Perl_sv_force_normal
-#undef  sv_force_normal
-#define sv_force_normal                Perl_sv_force_normal
-#undef  Perl_sv_force_normal_flags
-#define Perl_sv_force_normal_flags     pPerl->Perl_sv_force_normal_flags
-#undef  sv_force_normal_flags
-#define sv_force_normal_flags  Perl_sv_force_normal_flags
-#undef  Perl_tmps_grow
-#define Perl_tmps_grow         pPerl->Perl_tmps_grow
-#undef  tmps_grow
-#define tmps_grow              Perl_tmps_grow
-#undef  Perl_sv_rvweaken
-#define Perl_sv_rvweaken       pPerl->Perl_sv_rvweaken
-#undef  sv_rvweaken
-#define sv_rvweaken            Perl_sv_rvweaken
-#undef  Perl_newANONATTRSUB
-#define Perl_newANONATTRSUB    pPerl->Perl_newANONATTRSUB
-#undef  newANONATTRSUB
-#define newANONATTRSUB         Perl_newANONATTRSUB
-#undef  Perl_newATTRSUB
-#define Perl_newATTRSUB                pPerl->Perl_newATTRSUB
-#undef  newATTRSUB
-#define newATTRSUB             Perl_newATTRSUB
-#undef  Perl_newMYSUB
-#define Perl_newMYSUB          pPerl->Perl_newMYSUB
-#undef  newMYSUB
-#define newMYSUB               Perl_newMYSUB
-#if defined(USE_ITHREADS)
-#undef  Perl_cx_dup
-#define Perl_cx_dup            pPerl->Perl_cx_dup
-#undef  cx_dup
-#define cx_dup                 Perl_cx_dup
-#undef  Perl_si_dup
-#define Perl_si_dup            pPerl->Perl_si_dup
-#undef  si_dup
-#define si_dup                 Perl_si_dup
-#undef  Perl_ss_dup
-#define Perl_ss_dup            pPerl->Perl_ss_dup
-#undef  ss_dup
-#define ss_dup                 Perl_ss_dup
-#undef  Perl_any_dup
-#define Perl_any_dup           pPerl->Perl_any_dup
-#undef  any_dup
-#define any_dup                        Perl_any_dup
-#undef  Perl_he_dup
-#define Perl_he_dup            pPerl->Perl_he_dup
-#undef  he_dup
-#define he_dup                 Perl_he_dup
-#undef  Perl_re_dup
-#define Perl_re_dup            pPerl->Perl_re_dup
-#undef  re_dup
-#define re_dup                 Perl_re_dup
-#undef  Perl_fp_dup
-#define Perl_fp_dup            pPerl->Perl_fp_dup
-#undef  fp_dup
-#define fp_dup                 Perl_fp_dup
-#undef  Perl_dirp_dup
-#define Perl_dirp_dup          pPerl->Perl_dirp_dup
-#undef  dirp_dup
-#define dirp_dup               Perl_dirp_dup
-#undef  Perl_gp_dup
-#define Perl_gp_dup            pPerl->Perl_gp_dup
-#undef  gp_dup
-#define gp_dup                 Perl_gp_dup
-#undef  Perl_mg_dup
-#define Perl_mg_dup            pPerl->Perl_mg_dup
-#undef  mg_dup
-#define mg_dup                 Perl_mg_dup
-#undef  Perl_sv_dup
-#define Perl_sv_dup            pPerl->Perl_sv_dup
-#undef  sv_dup
-#define sv_dup                 Perl_sv_dup
-#if defined(HAVE_INTERP_INTERN)
-#undef  Perl_sys_intern_dup
-#define Perl_sys_intern_dup    pPerl->Perl_sys_intern_dup
-#undef  sys_intern_dup
-#define sys_intern_dup         Perl_sys_intern_dup
-#endif
-#undef  Perl_ptr_table_new
-#define Perl_ptr_table_new     pPerl->Perl_ptr_table_new
-#undef  ptr_table_new
-#define ptr_table_new          Perl_ptr_table_new
-#undef  Perl_ptr_table_fetch
-#define Perl_ptr_table_fetch   pPerl->Perl_ptr_table_fetch
-#undef  ptr_table_fetch
-#define ptr_table_fetch                Perl_ptr_table_fetch
-#undef  Perl_ptr_table_store
-#define Perl_ptr_table_store   pPerl->Perl_ptr_table_store
-#undef  ptr_table_store
-#define ptr_table_store                Perl_ptr_table_store
-#undef  Perl_ptr_table_split
-#define Perl_ptr_table_split   pPerl->Perl_ptr_table_split
-#undef  ptr_table_split
-#define ptr_table_split                Perl_ptr_table_split
-#undef  Perl_ptr_table_clear
-#define Perl_ptr_table_clear   pPerl->Perl_ptr_table_clear
-#undef  ptr_table_clear
-#define ptr_table_clear                Perl_ptr_table_clear
-#undef  Perl_ptr_table_free
-#define Perl_ptr_table_free    pPerl->Perl_ptr_table_free
-#undef  ptr_table_free
-#define ptr_table_free         Perl_ptr_table_free
-#endif
-#if defined(HAVE_INTERP_INTERN)
-#undef  Perl_sys_intern_clear
-#define Perl_sys_intern_clear  pPerl->Perl_sys_intern_clear
-#undef  sys_intern_clear
-#define sys_intern_clear       Perl_sys_intern_clear
-#undef  Perl_sys_intern_init
-#define Perl_sys_intern_init   pPerl->Perl_sys_intern_init
-#undef  sys_intern_init
-#define sys_intern_init                Perl_sys_intern_init
-#endif
-#if defined(PERL_CUSTOM_OPS)
-#undef  Perl_custom_op_name
-#define Perl_custom_op_name    pPerl->Perl_custom_op_name
-#undef  custom_op_name
-#define custom_op_name         Perl_custom_op_name
-#undef  Perl_custom_op_desc
-#define Perl_custom_op_desc    pPerl->Perl_custom_op_desc
-#undef  custom_op_desc
-#define custom_op_desc         Perl_custom_op_desc
-#endif
-#if defined(PERL_OBJECT)
-#else
-#endif
-#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#  if defined(DEBUG_CLOSURES)
-#  endif
-#  if defined(PL_OP_SLAB_ALLOC)
-#  endif
-#endif
-#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
-#  if defined(IAMSUID)
-#  endif
-#if defined(PERL_FLEXIBLE_EXCEPTIONS)
-#endif
-#  if defined(USE_5005THREADS)
-#  endif
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-#if defined(PERL_FLEXIBLE_EXCEPTIONS)
-#endif
-#endif
-#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
-#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-#  endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
-#  ifdef DEBUGGING
-#  endif
-#endif
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
-#   ifdef DEBUGGING
-#   endif
-#endif
-#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(USE_ITHREADS) && (defined(PERL_IN_SHAREDSV_C) || defined(PERL_DECL_PROT))
-#undef  Perl_sharedsv_init
-#define Perl_sharedsv_init     pPerl->Perl_sharedsv_init
-#undef  sharedsv_init
-#define sharedsv_init          Perl_sharedsv_init
-#undef  Perl_sharedsv_new
-#define Perl_sharedsv_new      pPerl->Perl_sharedsv_new
-#undef  sharedsv_new
-#define sharedsv_new           Perl_sharedsv_new
-#undef  Perl_sharedsv_find
-#define Perl_sharedsv_find     pPerl->Perl_sharedsv_find
-#undef  sharedsv_find
-#define sharedsv_find          Perl_sharedsv_find
-#undef  Perl_sharedsv_lock
-#define Perl_sharedsv_lock     pPerl->Perl_sharedsv_lock
-#undef  sharedsv_lock
-#define sharedsv_lock          Perl_sharedsv_lock
-#undef  Perl_sharedsv_unlock
-#define Perl_sharedsv_unlock   pPerl->Perl_sharedsv_unlock
-#undef  sharedsv_unlock
-#define sharedsv_unlock                Perl_sharedsv_unlock
-#undef  Perl_sharedsv_thrcnt_inc
-#define Perl_sharedsv_thrcnt_inc       pPerl->Perl_sharedsv_thrcnt_inc
-#undef  sharedsv_thrcnt_inc
-#define sharedsv_thrcnt_inc    Perl_sharedsv_thrcnt_inc
-#undef  Perl_sharedsv_thrcnt_dec
-#define Perl_sharedsv_thrcnt_dec       pPerl->Perl_sharedsv_thrcnt_dec
-#undef  sharedsv_thrcnt_dec
-#define sharedsv_thrcnt_dec    Perl_sharedsv_thrcnt_dec
-#endif
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#  ifdef DEBUGGING
-#  endif
-#  if !defined(NV_PRESERVES_UV)
-#  endif
-#  if defined(USE_ITHREADS)
-#  endif
-#endif
-#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-#  if defined(DEBUGGING)
-#  endif
-#if 0
-#endif
-#  if defined(CRIPPLED_CC)
-#  endif
-#  if defined(PERL_CR_FILTER)
-#  endif
-#endif
-#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#  if defined(LEAKTEST)
-#  endif
-#endif
-#if defined(PERL_OBJECT)
-#endif
-#undef  Perl_sv_setsv_flags
-#define Perl_sv_setsv_flags    pPerl->Perl_sv_setsv_flags
-#undef  sv_setsv_flags
-#define sv_setsv_flags         Perl_sv_setsv_flags
-#undef  Perl_sv_catpvn_flags
-#define Perl_sv_catpvn_flags   pPerl->Perl_sv_catpvn_flags
-#undef  sv_catpvn_flags
-#define sv_catpvn_flags                Perl_sv_catpvn_flags
-#undef  Perl_sv_catsv_flags
-#define Perl_sv_catsv_flags    pPerl->Perl_sv_catsv_flags
-#undef  sv_catsv_flags
-#define sv_catsv_flags         Perl_sv_catsv_flags
-#undef  Perl_sv_utf8_upgrade_flags
-#define Perl_sv_utf8_upgrade_flags     pPerl->Perl_sv_utf8_upgrade_flags
-#undef  sv_utf8_upgrade_flags
-#define sv_utf8_upgrade_flags  Perl_sv_utf8_upgrade_flags
-#undef  Perl_sv_pvn_force_flags
-#define Perl_sv_pvn_force_flags        pPerl->Perl_sv_pvn_force_flags
-#undef  sv_pvn_force_flags
-#define sv_pvn_force_flags     Perl_sv_pvn_force_flags
-#undef  Perl_sv_2pv_flags
-#define Perl_sv_2pv_flags      pPerl->Perl_sv_2pv_flags
-#undef  sv_2pv_flags
-#define sv_2pv_flags           Perl_sv_2pv_flags
-#undef  Perl_my_atof2
-#define Perl_my_atof2          pPerl->Perl_my_atof2
-#undef  my_atof2
-#define my_atof2               Perl_my_atof2
-
-#endif  /* PERL_CORE && PERL_OBJECT */
-#endif /* __objXSUB_h__ */
diff --git a/op.c b/op.c
index b19abea..d86f47b 100644 (file)
--- a/op.c
+++ b/op.c
@@ -4515,7 +4515,7 @@ Perl_cv_ckproto(pTHX_ CV *cv, GV *gv, char *p)
     }
 }
 
-static void const_sv_xsub(pTHXo_ CV* cv);
+static void const_sv_xsub(pTHX_ CV* cv);
 
 /*
 =for apidoc cv_const_sv
@@ -7142,7 +7142,7 @@ char* custom_op_desc(pTHX_ OP* o)
 
 /* Efficient sub that returns a constant scalar value. */
 static void
-const_sv_xsub(pTHXo_ CV* cv)
+const_sv_xsub(pTHX_ CV* cv)
 {
     dXSARGS;
     if (items != 0) {
diff --git a/perl.c b/perl.c
index 820f65d..f78d9b7 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -25,7 +25,7 @@
 char *getenv (char *); /* Usually in <stdlib.h> */
 #endif
 
-static I32 read_e_script(pTHXo_ int idx, SV *buf_sv, int maxlen);
+static I32 read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen);
 
 #ifdef IAMSUID
 #ifndef DOSUID
@@ -39,14 +39,6 @@ static I32 read_e_script(pTHXo_ int idx, SV *buf_sv, int maxlen);
 #endif
 #endif
 
-#ifdef PERL_OBJECT
-#define perl_construct Perl_construct
-#define perl_parse     Perl_parse
-#define perl_run       Perl_run
-#define perl_destruct  Perl_destruct
-#define perl_free      Perl_free
-#endif
-
 #if defined(USE_5005THREADS)
 #  define INIT_TLS_AND_INTERP \
     STMT_START {                               \
@@ -91,11 +83,6 @@ perl_alloc_using(struct IPerlMem* ipM, struct IPerlMem* ipMS,
                 struct IPerlProc* ipP)
 {
     PerlInterpreter *my_perl;
-#ifdef PERL_OBJECT
-    my_perl = (PerlInterpreter*)new(ipM) CPerlObj(ipM, ipMS, ipMP, ipE, ipStd,
-                                                 ipLIO, ipD, ipS, ipP);
-    INIT_TLS_AND_INTERP;
-#else
     /* New() needs interpreter, so call malloc() instead */
     my_perl = (PerlInterpreter*)(*ipM->pMalloc)(ipM, sizeof(PerlInterpreter));
     INIT_TLS_AND_INTERP;
@@ -109,7 +96,6 @@ perl_alloc_using(struct IPerlMem* ipM, struct IPerlMem* ipMS,
     PL_Dir = ipD;
     PL_Sock = ipS;
     PL_Proc = ipP;
-#endif
 
     return my_perl;
 }
@@ -212,12 +198,7 @@ perl_construct(pTHXx)
            SvREFCNT(&PL_sv_yes) = (~(U32)0)/2;
        }
 
-#ifdef PERL_OBJECT
-       /* TODO: */
-       /* PL_sighandlerp = sighandler; */
-#else
        PL_sighandlerp = Perl_sighandler;
-#endif
        PL_pidstatus = newHV();
 
 #ifdef MSDOS
@@ -450,7 +431,7 @@ perl_destruct(pTHXx)
 
     /* call exit list functions */
     while (PL_exitlistlen-- > 0)
-       PL_exitlist[PL_exitlistlen].fn(aTHXo_ PL_exitlist[PL_exitlistlen].ptr);
+       PL_exitlist[PL_exitlistlen].fn(aTHX_ PL_exitlist[PL_exitlistlen].ptr);
 
     Safefree(PL_exitlist);
 
@@ -874,34 +855,30 @@ Releases a Perl interpreter.  See L<perlembed>.
 void
 perl_free(pTHXx)
 {
-#if defined(PERL_OBJECT)
-    PerlMem_free(this);
-#else
-#  if defined(WIN32) || defined(NETWARE)
+#if defined(WIN32) || defined(NETWARE)
 #  if defined(PERL_IMPLICIT_SYS)
-    #ifdef NETWARE
-               void *host = nw_internal_host;
-       #else
-               void *host = w32_internal_host;
-       #endif
-       #ifndef NETWARE
-       if (PerlProc_lasthost()) {
+#    ifdef NETWARE
+    void *host = nw_internal_host;
+#    else
+    void *host = w32_internal_host;
+#    endif
+#    ifndef NETWARE
+    if (PerlProc_lasthost()) {
        PerlIO_cleanup();
-       }
-       #endif
-    PerlMem_free(aTHXx);
-       #ifdef NETWARE
-               nw5_delete_internal_host(host);
-       #else
-               win32_delete_internal_host(host);
-       #endif
-#else
-    PerlIO_cleanup();
+    }
+#    endif
     PerlMem_free(aTHXx);
-#endif
+#    ifdef NETWARE
+    nw5_delete_internal_host(host);
+#    else
+    win32_delete_internal_host(host);
+#    endif
 #  else
+    PerlIO_cleanup();
     PerlMem_free(aTHXx);
 #  endif
+#else
+    PerlMem_free(aTHXx);
 #endif
 }
 
@@ -1195,9 +1172,6 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit)
 #  ifdef USE_SOCKS
                sv_catpv(PL_Sv," USE_SOCKS");
 #  endif
-#  ifdef PERL_OBJECT
-               sv_catpv(PL_Sv," PERL_OBJECT");
-#  endif
 #  ifdef PERL_IMPLICIT_CONTEXT
                sv_catpv(PL_Sv," PERL_IMPLICIT_CONTEXT");
 #  endif
@@ -1398,7 +1372,7 @@ print \"  \\@INC:\\n    @INC\\n\";");
 #endif
 
     if (xsinit)
-       (*xsinit)(aTHXo);       /* in case linked C routines want magical variables */
+       (*xsinit)(aTHX);        /* in case linked C routines want magical variables */
 #ifndef PERL_MICRO
 #if defined(VMS) || defined(WIN32) || defined(DJGPP) || defined(__CYGWIN__) || defined(EPOC)
     init_os_extras();
@@ -2561,77 +2535,42 @@ STATIC void
 S_init_interp(pTHX)
 {
 
-#ifdef PERL_OBJECT             /* XXX kludge */
-#define I_REINIT \
-  STMT_START {                         \
-    PL_chopset         = " \n-";       \
-    PL_copline         = NOLINE;       \
-    PL_curcop          = &PL_compiling;\
-    PL_curcopdb                = NULL;         \
-    PL_dbargs          = 0;            \
-    PL_dumpindent      = 4;            \
-    PL_laststatval     = -1;           \
-    PL_laststype       = OP_STAT;      \
-    PL_maxscream       = -1;           \
-    PL_maxsysfd                = MAXSYSFD;     \
-    PL_statname                = Nullsv;       \
-    PL_tmps_floor      = -1;           \
-    PL_tmps_ix         = -1;           \
-    PL_op_mask         = NULL;         \
-    PL_laststatval     = -1;           \
-    PL_laststype       = OP_STAT;      \
-    PL_mess_sv         = Nullsv;       \
-    PL_splitstr                = " ";          \
-    PL_generation      = 100;          \
-    PL_exitlist                = NULL;         \
-    PL_exitlistlen     = 0;            \
-    PL_regindent       = 0;            \
-    PL_in_clean_objs   = FALSE;        \
-    PL_in_clean_all    = FALSE;        \
-    PL_profiledata     = NULL;         \
-    PL_rsfp            = Nullfp;       \
-    PL_rsfp_filters    = Nullav;       \
-    PL_dirty           = FALSE;        \
-  } STMT_END
-    I_REINIT;
-#else
-#  ifdef MULTIPLICITY
-#    define PERLVAR(var,type)
-#    define PERLVARA(var,n,type)
-#    if defined(PERL_IMPLICIT_CONTEXT)
-#      if defined(USE_5005THREADS)
-#        define PERLVARI(var,type,init)                PERL_GET_INTERP->var = init;
-#        define PERLVARIC(var,type,init)       PERL_GET_INTERP->var = init;
-#      else /* !USE_5005THREADS */
-#        define PERLVARI(var,type,init)                aTHX->var = init;
-#        define PERLVARIC(var,type,init)       aTHX->var = init;
-#      endif /* USE_5005THREADS */
-#    else
-#      define PERLVARI(var,type,init)  PERL_GET_INTERP->var = init;
+#ifdef MULTIPLICITY
+#  define PERLVAR(var,type)
+#  define PERLVARA(var,n,type)
+#  if defined(PERL_IMPLICIT_CONTEXT)
+#    if defined(USE_5005THREADS)
+#      define PERLVARI(var,type,init)          PERL_GET_INTERP->var = init;
 #      define PERLVARIC(var,type,init) PERL_GET_INTERP->var = init;
-#    endif
-#    include "intrpvar.h"
-#    ifndef USE_5005THREADS
-#      include "thrdvar.h"
-#    endif
-#    undef PERLVAR
-#    undef PERLVARA
-#    undef PERLVARI
-#    undef PERLVARIC
+#    else /* !USE_5005THREADS */
+#      define PERLVARI(var,type,init)          aTHX->var = init;
+#      define PERLVARIC(var,type,init) aTHX->var = init;
+#    endif /* USE_5005THREADS */
 #  else
-#    define PERLVAR(var,type)
-#    define PERLVARA(var,n,type)
-#    define PERLVARI(var,type,init)    PL_##var = init;
-#    define PERLVARIC(var,type,init)   PL_##var = init;
-#    include "intrpvar.h"
-#    ifndef USE_5005THREADS
-#      include "thrdvar.h"
-#    endif
-#    undef PERLVAR
-#    undef PERLVARA
-#    undef PERLVARI
-#    undef PERLVARIC
+#    define PERLVARI(var,type,init)    PERL_GET_INTERP->var = init;
+#    define PERLVARIC(var,type,init)   PERL_GET_INTERP->var = init;
 #  endif
+#  include "intrpvar.h"
+#  ifndef USE_5005THREADS
+#    include "thrdvar.h"
+#  endif
+#  undef PERLVAR
+#  undef PERLVARA
+#  undef PERLVARI
+#  undef PERLVARIC
+#else
+#  define PERLVAR(var,type)
+#  define PERLVARA(var,n,type)
+#  define PERLVARI(var,type,init)      PL_##var = init;
+#  define PERLVARIC(var,type,init)     PL_##var = init;
+#  include "intrpvar.h"
+#  ifndef USE_5005THREADS
+#    include "thrdvar.h"
+#  endif
+#  undef PERLVAR
+#  undef PERLVARA
+#  undef PERLVARI
+#  undef PERLVARIC
 #endif
 
 }
@@ -4045,12 +3984,8 @@ S_my_exit_jump(pTHX)
     JMPENV_JUMP(2);
 }
 
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#endif
-
 static I32
-read_e_script(pTHXo_ int idx, SV *buf_sv, int maxlen)
+read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen)
 {
     char *p, *nl;
     p  = SvPVX(PL_e_script);
diff --git a/perl.h b/perl.h
index a699fd1..94eb55a 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -42,7 +42,7 @@
  * PERL_IMPLICIT_CONTEXT and PERL_IMPLICIT_SYS */
 
 #ifdef USE_ITHREADS
-#  if !defined(MULTIPLICITY) && !defined(PERL_OBJECT)
+#  if !defined(MULTIPLICITY)
 #    define MULTIPLICITY
 #  endif
 #endif
 #  endif
 #endif
 
-#ifdef PERL_CAPI
-#  undef PERL_OBJECT
-#  ifndef MULTIPLICITY
-#    define MULTIPLICITY
-#  endif
-#  ifndef PERL_IMPLICIT_CONTEXT
-#    define PERL_IMPLICIT_CONTEXT
-#  endif
-#  ifndef PERL_IMPLICIT_SYS
-#    define PERL_IMPLICIT_SYS
-#  endif
-#endif
-
-#ifdef PERL_OBJECT
-#  ifndef PERL_IMPLICIT_CONTEXT
-#    define PERL_IMPLICIT_CONTEXT
-#  endif
-#  ifndef PERL_IMPLICIT_SYS
-#    define PERL_IMPLICIT_SYS
-#  endif
-#endif
-
-#ifdef PERL_OBJECT
-
-/* PERL_OBJECT explained  - DickH and DougL @ ActiveState.com
-
-Defining PERL_OBJECT turns on creation of a C++ object that
-contains all writable core perl global variables and functions.
-Stated another way, all necessary global variables and functions
-are members of a big C++ object. This object's class is CPerlObj.
-This allows a Perl Host to have multiple, independent perl
-interpreters in the same process space. This is very important on
-Win32 systems as the overhead of process creation is quite high --
-this could be even higher than the script compile and execute time
-for small scripts.
-
-The perl executable implementation on Win32 is composed of perl.exe
-(the Perl Host) and perlX.dll. (the Perl Core). This allows the
-same Perl Core to easily be embedded in other applications that use
-the perl interpreter.
-
-+-----------+
-| Perl Host |
-+-----------+
-      ^
-      |
-      v
-+-----------+   +-----------+
-| Perl Core |<->| Extension |
-+-----------+   +-----------+ ...
-
-Defining PERL_OBJECT has the following effects:
-
-PERL CORE
-1. CPerlObj is defined (this is the PERL_OBJECT)
-2. all static functions that needed to access either global
-variables or functions needed are made member functions
-3. all writable static variables are made member variables
-4. all global variables and functions are defined as:
-       #define var CPerlObj::PL_var
-       #define func CPerlObj::Perl_func
-       * these are in embed.h
-This necessitated renaming some local variables and functions that
-had the same name as a global variable or function. This was
-probably a _good_ thing anyway.
-
-
-EXTENSIONS
-1. Access to global variables and perl functions is through a
-pointer to the PERL_OBJECT. This pointer type is CPerlObj*. This is
-made transparent to extension developers by the following macros:
-       #define var pPerl->PL_var
-       #define func pPerl->Perl_func
-       * these are done in objXSUB.h
-This requires that the extension be compiled as C++, which means
-that the code must be ANSI C and not K&R C. For K&R extensions,
-please see the C API notes located in Win32/GenCAPI.pl. This script
-creates a perlCAPI.lib that provides a K & R compatible C interface
-to the PERL_OBJECT.
-2. Local variables and functions cannot have the same name as perl's
-variables or functions since the macros will redefine these. Look for
-this if you get some strange error message and it does not look like
-the code that you had written. This often happens with variables that
-are local to a function.
-
-PERL HOST
-1. The perl host is linked with perlX.lib to get perl_alloc. This
-function will return a pointer to CPerlObj (the PERL_OBJECT). It
-takes pointers to the various PerlXXX_YYY interfaces (see iperlsys.h
-for more information on this).
-2. The perl host calls the same functions as normally would be
-called in setting up and running a perl script, except that the
-functions are now member functions of the PERL_OBJECT.
-
-*/
-
-
-class CPerlObj;
-
-#define STATIC
-#define CPERLscope(x)          CPerlObj::x
-#define CALL_FPTR(fptr)                (aTHXo->*fptr)
-
-#define pTHXo                  CPerlObj *pPerl
-#define pTHXo_                 pTHXo,
-#define aTHXo                  this
-#define aTHXo_                 this,
-#define PERL_OBJECT_THIS       aTHXo
-#define PERL_OBJECT_THIS_      aTHXo_
-#define dTHXoa(a)              pTHXo = (CPerlObj*)a
-#define dTHXo                  pTHXo = PERL_GET_THX
-
-#define pTHXx          void
-#define pTHXx_
-#define aTHXx
-#define aTHXx_
-
-#else /* !PERL_OBJECT */
-
 #ifdef PERL_IMPLICIT_CONTEXT
 #  ifdef USE_5005THREADS
 struct perl_thread;
@@ -212,8 +93,6 @@ struct perl_thread;
 #define PERL_OBJECT_THIS_
 #define CALL_FPTR(fptr) (*fptr)
 
-#endif /* PERL_OBJECT */
-
 #define CALLRUNOPS  CALL_FPTR(PL_runops)
 #define CALLREGCOMP CALL_FPTR(PL_regcompp)
 #define CALLREGEXEC CALL_FPTR(PL_regexecp)
@@ -749,7 +628,7 @@ typedef struct perl_mstats perl_mstats_t;
 
 #include <errno.h>
 
-#if defined(WIN32) && (defined(PERL_OBJECT) || defined(PERL_IMPLICIT_SYS) || defined(PERL_CAPI))
+#if defined(WIN32) && defined(PERL_IMPLICIT_SYS)
 #  define WIN32SCK_IS_STDSCK           /* don't pull in custom wsock layer */
 #endif
 
@@ -2111,10 +1990,6 @@ typedef pthread_key_t    perl_key;
 #  else
 #  ifdef MULTIPLICITY
 #    define PERL_GET_THX               ((PerlInterpreter *)PERL_GET_CONTEXT)
-#  else
-#  ifdef PERL_OBJECT
-#    define PERL_GET_THX               ((CPerlObj *)PERL_GET_CONTEXT)
-#  endif
 #  endif
 #  endif
 #  define PERL_SET_THX(t)              PERL_SET_CONTEXT(t)
@@ -2185,7 +2060,7 @@ union any {
     IV         any_iv;
     long       any_long;
     void       (*any_dptr) (void*);
-    void       (*any_dxptr) (pTHXo_ void*);
+    void       (*any_dxptr) (pTHX_ void*);
 };
 #endif
 
@@ -2195,7 +2070,7 @@ union any {
 #define ARGSproto
 #endif /* USE_5005THREADS */
 
-typedef I32 (*filter_t) (pTHXo_ int, SV *, int);
+typedef I32 (*filter_t) (pTHX_ int, SV *, int);
 
 #define FILTER_READ(idx, sv, len)  filter_read(idx, sv, len)
 #define FILTER_DATA(idx)          (AvARRAY(PL_rsfp_filters)[idx])
@@ -2463,16 +2338,12 @@ Gid_t getegid (void);
 #  define DEBUG_c(a) if (DEBUG_c_TEST) a
 #  define DEBUG_P(a) if (DEBUG_P_TEST) a
 
-#  if defined(PERL_OBJECT)
-#    define DEBUG_m(a) if (DEBUG_m_TEST) a
-#  else
      /* Temporarily turn off memory debugging in case the a
       * does memory allocation, either directly or indirectly. */
-#    define DEBUG_m(a)  \
+#  define DEBUG_m(a)  \
     STMT_START {                                                       \
         if (PERL_GET_INTERP) { dTHX; if (DEBUG_m_TEST) {PL_debug&=~DEBUG_m_FLAG; a; PL_debug|=DEBUG_m_FLAG;} } \
     } STMT_END
-#  endif
 
 #  define DEBUG__(t, a) \
        STMT_START { \
@@ -3207,12 +3078,12 @@ typedef SV*     (CPERLscope(*re_intuit_string_t)) (pTHX_ regexp *prog);
 typedef void   (CPERLscope(*regfree_t)) (pTHX_ struct regexp* r);
 
 typedef void (*DESTRUCTORFUNC_NOCONTEXT_t) (void*);
-typedef void (*DESTRUCTORFUNC_t) (pTHXo_ void*);
-typedef void (*SVFUNC_t) (pTHXo_ SV*);
-typedef I32  (*SVCOMPARE_t) (pTHXo_ SV*, SV*);
-typedef void (*XSINIT_t) (pTHXo);
-typedef void (*ATEXIT_t) (pTHXo_ void*);
-typedef void (*XSUBADDR_t) (pTHXo_ CV *);
+typedef void (*DESTRUCTORFUNC_t) (pTHX_ void*);
+typedef void (*SVFUNC_t) (pTHX_ SV*);
+typedef I32  (*SVCOMPARE_t) (pTHX_ SV*, SV*);
+typedef void (*XSINIT_t) (pTHX);
+typedef void (*ATEXIT_t) (pTHX_ void*);
+typedef void (*XSUBADDR_t) (pTHX_ CV *);
 
 /* Set up PERLVAR macros for populating structs */
 #define PERLVAR(var,type) type var;
@@ -3222,7 +3093,7 @@ typedef void (*XSUBADDR_t) (pTHXo_ CV *);
 
 /* Interpreter exitlist entry */
 typedef struct exitlistentry {
-    void (*fn) (pTHXo_ void*);
+    void (*fn) (pTHX_ void*);
     void *ptr;
 } PerlExitListEntry;
 
@@ -3244,7 +3115,7 @@ struct perl_vars *PL_VarsPtr;
 #  endif /* PERL_CORE */
 #endif /* PERL_GLOBAL_STRUCT */
 
-#if defined(MULTIPLICITY) || defined(PERL_OBJECT)
+#if defined(MULTIPLICITY)
 /* If we have multiple interpreters define a struct
    holding variables which must be per-interpreter
    If we don't have threads anything that would have
@@ -3258,7 +3129,7 @@ struct interpreter {
 #  include "intrpvar.h"
 /*
  * The following is a buffer where new variables must
- * be defined to maintain binary compatibility with PERL_OBJECT
+ * be defined to maintain binary compatibility with previous versions
  */
 PERLVARA(object_compatibility,30,      char)
 };
@@ -3267,7 +3138,7 @@ PERLVARA(object_compatibility,30, char)
 struct interpreter {
     char broiled;
 };
-#endif /* MULTIPLICITY || PERL_OBJECT */
+#endif /* MULTIPLICITY */
 
 #ifdef USE_5005THREADS
 /* If we have threads define a struct with all the variables
@@ -3307,10 +3178,6 @@ typedef void *Thread;
 #  endif
 #endif
 
-#ifdef PERL_OBJECT
-#  define PERL_DECL_PROT
-#endif
-
 #undef PERL_CKDEF
 #undef PERL_PPDEF
 #define PERL_CKDEF(s)  OP *s (pTHX_ OP *o);
@@ -3318,14 +3185,8 @@ typedef void *Thread;
 
 #include "proto.h"
 
-#ifdef PERL_OBJECT
-#  undef PERL_DECL_PROT
-#endif
-
-#ifndef PERL_OBJECT
 /* this has structure inits, so it cannot be included before here */
-#  include "opcode.h"
-#endif
+#include "opcode.h"
 
 /* The following must follow proto.h as #defines mess up syntax */
 
@@ -3343,7 +3204,7 @@ typedef void *Thread;
 #define PERLVARI(var,type,init) EXT type  PL_##var INIT(init);
 #define PERLVARIC(var,type,init) EXTCONST type PL_##var INIT(init);
 
-#if !defined(MULTIPLICITY) && !defined(PERL_OBJECT)
+#if !defined(MULTIPLICITY)
 START_EXTERN_C
 #  include "intrpvar.h"
 #  ifndef USE_5005THREADS
@@ -3352,23 +3213,9 @@ START_EXTERN_C
 END_EXTERN_C
 #endif
 
-#ifdef PERL_OBJECT
+#if defined(WIN32)
 #  include "embed.h"
-
-#  ifdef DOINIT
-#    include "INTERN.h"
-#  else
-#    include "EXTERN.h"
-#  endif
-
-/* this has structure inits, so it cannot be included before here */
-#  include "opcode.h"
-
-#else
-#  if defined(WIN32)
-#    include "embed.h"
-#  endif
-#endif  /* PERL_OBJECT */
+#endif
 
 #ifndef PERL_GLOBAL_STRUCT
 START_EXTERN_C
index 64f9378..91d4f15 100644 (file)
--- a/perlapi.c
+++ b/perlapi.c
@@ -7,7 +7,7 @@
 #include "perl.h"
 #include "perlapi.h"
 
-#if defined(PERL_OBJECT) || defined (MULTIPLICITY)
+#if defined (MULTIPLICITY)
 
 /* accessor functions for Perl variables (provides binary compatibility) */
 START_EXTERN_C
@@ -17,17 +17,10 @@ START_EXTERN_C
 #undef PERLVARI
 #undef PERLVARIC
 
-#if defined(PERL_OBJECT)
-#define PERLVAR(v,t)   t* Perl_##v##_ptr(pTHXo)                        \
-                       { return &(aTHXo->interp.v); }
-#define PERLVARA(v,n,t)        PL_##v##_t* Perl_##v##_ptr(pTHXo)               \
-                       { return &(aTHXo->interp.v); }
-#else  /* MULTIPLICITY */
 #define PERLVAR(v,t)   t* Perl_##v##_ptr(pTHX)                         \
                        { return &(aTHX->v); }
 #define PERLVARA(v,n,t)        PL_##v##_t* Perl_##v##_ptr(pTHX)                \
                        { return &(aTHX->v); }
-#endif
 
 #define PERLVARI(v,t,i)        PERLVAR(v,t)
 #define PERLVARIC(v,t,i) PERLVAR(v, const t)
@@ -37,12 +30,12 @@ START_EXTERN_C
 
 #undef PERLVAR
 #undef PERLVARA
-#define PERLVAR(v,t)   t* Perl_##v##_ptr(pTHXo)                        \
+#define PERLVAR(v,t)   t* Perl_##v##_ptr(pTHX                        \
                        { return &(PL_##v); }
-#define PERLVARA(v,n,t)        PL_##v##_t* Perl_##v##_ptr(pTHXo)               \
+#define PERLVARA(v,n,t)        PL_##v##_t* Perl_##v##_ptr(pTHX               \
                        { return &(PL_##v); }
 #undef PERLVARIC
-#define PERLVARIC(v,t,i)       const t* Perl_##v##_ptr(pTHXo)          \
+#define PERLVARIC(v,t,i)       const t* Perl_##v##_ptr(pTHX          \
                        { return (const t *)&(PL_##v); }
 #include "perlvars.h"
 
@@ -51,4387 +44,6 @@ START_EXTERN_C
 #undef PERLVARI
 #undef PERLVARIC
 
-#if defined(PERL_OBJECT)
-
-/* C-API layer for PERL_OBJECT */
-
-#if defined(PERL_IMPLICIT_SYS)
-#endif
-#if defined(USE_ITHREADS)
-#  if defined(PERL_IMPLICIT_SYS)
-#  endif
-#endif
-#if defined(MYMALLOC)
-#endif
-#if defined(PERL_OBJECT)
-#ifndef __BORLANDC__
-#endif
-#endif
-#if defined(PERL_OBJECT)
-#else
-#endif
-
-#undef  Perl_amagic_call
-SV*
-Perl_amagic_call(pTHXo_ SV* left, SV* right, int method, int dir)
-{
-    return ((CPerlObj*)pPerl)->Perl_amagic_call(left, right, method, dir);
-}
-
-#undef  Perl_Gv_AMupdate
-bool
-Perl_Gv_AMupdate(pTHXo_ HV* stash)
-{
-    return ((CPerlObj*)pPerl)->Perl_Gv_AMupdate(stash);
-}
-
-#undef  Perl_gv_handler
-CV*
-Perl_gv_handler(pTHXo_ HV* stash, I32 id)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_handler(stash, id);
-}
-
-#undef  Perl_apply_attrs_string
-void
-Perl_apply_attrs_string(pTHXo_ char *stashpv, CV *cv, char *attrstr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_apply_attrs_string(stashpv, cv, attrstr, len);
-}
-
-#undef  Perl_avhv_delete_ent
-SV*
-Perl_avhv_delete_ent(pTHXo_ AV *ar, SV* keysv, I32 flags, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_avhv_delete_ent(ar, keysv, flags, hash);
-}
-
-#undef  Perl_avhv_exists_ent
-bool
-Perl_avhv_exists_ent(pTHXo_ AV *ar, SV* keysv, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_avhv_exists_ent(ar, keysv, hash);
-}
-
-#undef  Perl_avhv_fetch_ent
-SV**
-Perl_avhv_fetch_ent(pTHXo_ AV *ar, SV* keysv, I32 lval, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_avhv_fetch_ent(ar, keysv, lval, hash);
-}
-
-#undef  Perl_avhv_store_ent
-SV**
-Perl_avhv_store_ent(pTHXo_ AV *ar, SV* keysv, SV* val, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_avhv_store_ent(ar, keysv, val, hash);
-}
-
-#undef  Perl_avhv_iternext
-HE*
-Perl_avhv_iternext(pTHXo_ AV *ar)
-{
-    return ((CPerlObj*)pPerl)->Perl_avhv_iternext(ar);
-}
-
-#undef  Perl_avhv_iterval
-SV*
-Perl_avhv_iterval(pTHXo_ AV *ar, HE* entry)
-{
-    return ((CPerlObj*)pPerl)->Perl_avhv_iterval(ar, entry);
-}
-
-#undef  Perl_avhv_keys
-HV*
-Perl_avhv_keys(pTHXo_ AV *ar)
-{
-    return ((CPerlObj*)pPerl)->Perl_avhv_keys(ar);
-}
-
-#undef  Perl_av_clear
-void
-Perl_av_clear(pTHXo_ AV* ar)
-{
-    ((CPerlObj*)pPerl)->Perl_av_clear(ar);
-}
-
-#undef  Perl_av_delete
-SV*
-Perl_av_delete(pTHXo_ AV* ar, I32 key, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_av_delete(ar, key, flags);
-}
-
-#undef  Perl_av_exists
-bool
-Perl_av_exists(pTHXo_ AV* ar, I32 key)
-{
-    return ((CPerlObj*)pPerl)->Perl_av_exists(ar, key);
-}
-
-#undef  Perl_av_extend
-void
-Perl_av_extend(pTHXo_ AV* ar, I32 key)
-{
-    ((CPerlObj*)pPerl)->Perl_av_extend(ar, key);
-}
-
-#undef  Perl_av_fetch
-SV**
-Perl_av_fetch(pTHXo_ AV* ar, I32 key, I32 lval)
-{
-    return ((CPerlObj*)pPerl)->Perl_av_fetch(ar, key, lval);
-}
-
-#undef  Perl_av_fill
-void
-Perl_av_fill(pTHXo_ AV* ar, I32 fill)
-{
-    ((CPerlObj*)pPerl)->Perl_av_fill(ar, fill);
-}
-
-#undef  Perl_av_len
-I32
-Perl_av_len(pTHXo_ AV* ar)
-{
-    return ((CPerlObj*)pPerl)->Perl_av_len(ar);
-}
-
-#undef  Perl_av_make
-AV*
-Perl_av_make(pTHXo_ I32 size, SV** svp)
-{
-    return ((CPerlObj*)pPerl)->Perl_av_make(size, svp);
-}
-
-#undef  Perl_av_pop
-SV*
-Perl_av_pop(pTHXo_ AV* ar)
-{
-    return ((CPerlObj*)pPerl)->Perl_av_pop(ar);
-}
-
-#undef  Perl_av_push
-void
-Perl_av_push(pTHXo_ AV* ar, SV* val)
-{
-    ((CPerlObj*)pPerl)->Perl_av_push(ar, val);
-}
-
-#undef  Perl_av_shift
-SV*
-Perl_av_shift(pTHXo_ AV* ar)
-{
-    return ((CPerlObj*)pPerl)->Perl_av_shift(ar);
-}
-
-#undef  Perl_av_store
-SV**
-Perl_av_store(pTHXo_ AV* ar, I32 key, SV* val)
-{
-    return ((CPerlObj*)pPerl)->Perl_av_store(ar, key, val);
-}
-
-#undef  Perl_av_undef
-void
-Perl_av_undef(pTHXo_ AV* ar)
-{
-    ((CPerlObj*)pPerl)->Perl_av_undef(ar);
-}
-
-#undef  Perl_av_unshift
-void
-Perl_av_unshift(pTHXo_ AV* ar, I32 num)
-{
-    ((CPerlObj*)pPerl)->Perl_av_unshift(ar, num);
-}
-
-#undef  Perl_block_gimme
-I32
-Perl_block_gimme(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_block_gimme();
-}
-
-#undef  Perl_call_list
-void
-Perl_call_list(pTHXo_ I32 oldscope, AV* av_list)
-{
-    ((CPerlObj*)pPerl)->Perl_call_list(oldscope, av_list);
-}
-
-#undef  Perl_cast_ulong
-U32
-Perl_cast_ulong(pTHXo_ NV f)
-{
-    return ((CPerlObj*)pPerl)->Perl_cast_ulong(f);
-}
-
-#undef  Perl_cast_i32
-I32
-Perl_cast_i32(pTHXo_ NV f)
-{
-    return ((CPerlObj*)pPerl)->Perl_cast_i32(f);
-}
-
-#undef  Perl_cast_iv
-IV
-Perl_cast_iv(pTHXo_ NV f)
-{
-    return ((CPerlObj*)pPerl)->Perl_cast_iv(f);
-}
-
-#undef  Perl_cast_uv
-UV
-Perl_cast_uv(pTHXo_ NV f)
-{
-    return ((CPerlObj*)pPerl)->Perl_cast_uv(f);
-}
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-
-#undef  Perl_my_chsize
-I32
-Perl_my_chsize(pTHXo_ int fd, Off_t length)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_chsize(fd, length);
-}
-#endif
-#if defined(USE_5005THREADS)
-
-#undef  Perl_condpair_magic
-MAGIC*
-Perl_condpair_magic(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_condpair_magic(sv);
-}
-#endif
-
-#undef  Perl_croak
-void
-Perl_croak(pTHXo_ const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vcroak(pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_vcroak
-void
-Perl_vcroak(pTHXo_ const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_vcroak(pat, args);
-}
-#if defined(PERL_IMPLICIT_CONTEXT)
-
-#undef  Perl_croak_nocontext
-void
-Perl_croak_nocontext(const char* pat, ...)
-{
-    dTHXo;
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vcroak(pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_die_nocontext
-OP*
-Perl_die_nocontext(const char* pat, ...)
-{
-    dTHXo;
-    OP* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vdie(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_deb_nocontext
-void
-Perl_deb_nocontext(const char* pat, ...)
-{
-    dTHXo;
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vdeb(pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_form_nocontext
-char*
-Perl_form_nocontext(const char* pat, ...)
-{
-    dTHXo;
-    char* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vform(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_load_module_nocontext
-void
-Perl_load_module_nocontext(U32 flags, SV* name, SV* ver, ...)
-{
-    dTHXo;
-    va_list args;
-    va_start(args, ver);
-    ((CPerlObj*)pPerl)->Perl_vload_module(flags, name, ver, &args);
-    va_end(args);
-}
-
-#undef  Perl_mess_nocontext
-SV*
-Perl_mess_nocontext(const char* pat, ...)
-{
-    dTHXo;
-    SV* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vmess(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_warn_nocontext
-void
-Perl_warn_nocontext(const char* pat, ...)
-{
-    dTHXo;
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vwarn(pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_warner_nocontext
-void
-Perl_warner_nocontext(U32 err, const char* pat, ...)
-{
-    dTHXo;
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vwarner(err, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_newSVpvf_nocontext
-SV*
-Perl_newSVpvf_nocontext(const char* pat, ...)
-{
-    dTHXo;
-    SV* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vnewSVpvf(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_sv_catpvf_nocontext
-void
-Perl_sv_catpvf_nocontext(SV* sv, const char* pat, ...)
-{
-    dTHXo;
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_setpvf_nocontext
-void
-Perl_sv_setpvf_nocontext(SV* sv, const char* pat, ...)
-{
-    dTHXo;
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_catpvf_mg_nocontext
-void
-Perl_sv_catpvf_mg_nocontext(SV* sv, const char* pat, ...)
-{
-    dTHXo;
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf_mg(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_setpvf_mg_nocontext
-void
-Perl_sv_setpvf_mg_nocontext(SV* sv, const char* pat, ...)
-{
-    dTHXo;
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf_mg(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_fprintf_nocontext
-
-#undef  Perl_printf_nocontext
-#endif
-
-#undef  Perl_cv_const_sv
-SV*
-Perl_cv_const_sv(pTHXo_ CV* cv)
-{
-    return ((CPerlObj*)pPerl)->Perl_cv_const_sv(cv);
-}
-
-#undef  Perl_cv_undef
-void
-Perl_cv_undef(pTHXo_ CV* cv)
-{
-    ((CPerlObj*)pPerl)->Perl_cv_undef(cv);
-}
-
-#undef  Perl_cx_dump
-void
-Perl_cx_dump(pTHXo_ PERL_CONTEXT* cs)
-{
-    ((CPerlObj*)pPerl)->Perl_cx_dump(cs);
-}
-
-#undef  Perl_filter_add
-SV*
-Perl_filter_add(pTHXo_ filter_t funcp, SV* datasv)
-{
-    return ((CPerlObj*)pPerl)->Perl_filter_add(funcp, datasv);
-}
-
-#undef  Perl_filter_del
-void
-Perl_filter_del(pTHXo_ filter_t funcp)
-{
-    ((CPerlObj*)pPerl)->Perl_filter_del(funcp);
-}
-
-#undef  Perl_filter_read
-I32
-Perl_filter_read(pTHXo_ int idx, SV* buffer, int maxlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_filter_read(idx, buffer, maxlen);
-}
-
-#undef  Perl_get_op_descs
-char**
-Perl_get_op_descs(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_op_descs();
-}
-
-#undef  Perl_get_op_names
-char**
-Perl_get_op_names(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_op_names();
-}
-
-#undef  Perl_get_ppaddr
-PPADDR_t*
-Perl_get_ppaddr(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_ppaddr();
-}
-
-#undef  Perl_deb
-void
-Perl_deb(pTHXo_ const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vdeb(pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_vdeb
-void
-Perl_vdeb(pTHXo_ const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_vdeb(pat, args);
-}
-
-#undef  Perl_debprofdump
-void
-Perl_debprofdump(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_debprofdump();
-}
-
-#undef  Perl_debop
-I32
-Perl_debop(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_debop(o);
-}
-
-#undef  Perl_debstack
-I32
-Perl_debstack(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_debstack();
-}
-
-#undef  Perl_debstackptrs
-I32
-Perl_debstackptrs(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_debstackptrs();
-}
-
-#undef  Perl_delimcpy
-char*
-Perl_delimcpy(pTHXo_ char* to, char* toend, char* from, char* fromend, int delim, I32* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_delimcpy(to, toend, from, fromend, delim, retlen);
-}
-
-#undef  Perl_die
-OP*
-Perl_die(pTHXo_ const char* pat, ...)
-{
-    OP* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vdie(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_dounwind
-void
-Perl_dounwind(pTHXo_ I32 cxix)
-{
-    ((CPerlObj*)pPerl)->Perl_dounwind(cxix);
-}
-
-#undef  Perl_do_binmode
-int
-Perl_do_binmode(pTHXo_ PerlIO *fp, int iotype, int mode)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_binmode(fp, iotype, mode);
-}
-
-#undef  Perl_do_close
-bool
-Perl_do_close(pTHXo_ GV* gv, bool not_implicit)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_close(gv, not_implicit);
-}
-#if !defined(WIN32)
-#endif
-#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-#endif
-
-#undef  Perl_do_join
-void
-Perl_do_join(pTHXo_ SV* sv, SV* del, SV** mark, SV** sp)
-{
-    ((CPerlObj*)pPerl)->Perl_do_join(sv, del, mark, sp);
-}
-
-#undef  Perl_do_open
-bool
-Perl_do_open(pTHXo_ GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_open(gv, name, len, as_raw, rawmode, rawperm, supplied_fp);
-}
-
-#undef  Perl_do_open9
-bool
-Perl_do_open9(pTHXo_ GV *gv, char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV *svs, I32 num)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_open9(gv, name, len, as_raw, rawmode, rawperm, supplied_fp, svs, num);
-}
-
-#undef  Perl_do_openn
-bool
-Perl_do_openn(pTHXo_ GV *gv, char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV **svp, I32 num)
-{
-    return ((CPerlObj*)pPerl)->Perl_do_openn(gv, name, len, as_raw, rawmode, rawperm, supplied_fp, svp, num);
-}
-
-#undef  Perl_dowantarray
-I32
-Perl_dowantarray(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_dowantarray();
-}
-
-#undef  Perl_dump_all
-void
-Perl_dump_all(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_all();
-}
-
-#undef  Perl_dump_eval
-void
-Perl_dump_eval(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_eval();
-}
-#if defined(DUMP_FDS)
-
-#undef  Perl_dump_fds
-void
-Perl_dump_fds(pTHXo_ char* s)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_fds(s);
-}
-#endif
-
-#undef  Perl_dump_form
-void
-Perl_dump_form(pTHXo_ GV* gv)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_form(gv);
-}
-
-#undef  Perl_gv_dump
-void
-Perl_gv_dump(pTHXo_ GV* gv)
-{
-    ((CPerlObj*)pPerl)->Perl_gv_dump(gv);
-}
-
-#undef  Perl_op_dump
-void
-Perl_op_dump(pTHXo_ OP* arg)
-{
-    ((CPerlObj*)pPerl)->Perl_op_dump(arg);
-}
-
-#undef  Perl_pmop_dump
-void
-Perl_pmop_dump(pTHXo_ PMOP* pm)
-{
-    ((CPerlObj*)pPerl)->Perl_pmop_dump(pm);
-}
-
-#undef  Perl_dump_packsubs
-void
-Perl_dump_packsubs(pTHXo_ HV* stash)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_packsubs(stash);
-}
-
-#undef  Perl_dump_sub
-void
-Perl_dump_sub(pTHXo_ GV* gv)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_sub(gv);
-}
-
-#undef  Perl_fbm_compile
-void
-Perl_fbm_compile(pTHXo_ SV* sv, U32 flags)
-{
-    ((CPerlObj*)pPerl)->Perl_fbm_compile(sv, flags);
-}
-
-#undef  Perl_fbm_instr
-char*
-Perl_fbm_instr(pTHXo_ unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_fbm_instr(big, bigend, littlesv, flags);
-}
-#if defined(USE_5005THREADS)
-#endif
-
-#undef  Perl_form
-char*
-Perl_form(pTHXo_ const char* pat, ...)
-{
-    char* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vform(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_vform
-char*
-Perl_vform(pTHXo_ const char* pat, va_list* args)
-{
-    return ((CPerlObj*)pPerl)->Perl_vform(pat, args);
-}
-
-#undef  Perl_free_tmps
-void
-Perl_free_tmps(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_free_tmps();
-}
-#if !defined(HAS_GETENV_LEN)
-#endif
-
-#undef  Perl_gp_free
-void
-Perl_gp_free(pTHXo_ GV* gv)
-{
-    ((CPerlObj*)pPerl)->Perl_gp_free(gv);
-}
-
-#undef  Perl_gp_ref
-GP*
-Perl_gp_ref(pTHXo_ GP* gp)
-{
-    return ((CPerlObj*)pPerl)->Perl_gp_ref(gp);
-}
-
-#undef  Perl_gv_AVadd
-GV*
-Perl_gv_AVadd(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_AVadd(gv);
-}
-
-#undef  Perl_gv_HVadd
-GV*
-Perl_gv_HVadd(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_HVadd(gv);
-}
-
-#undef  Perl_gv_IOadd
-GV*
-Perl_gv_IOadd(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_IOadd(gv);
-}
-
-#undef  Perl_gv_autoload4
-GV*
-Perl_gv_autoload4(pTHXo_ HV* stash, const char* name, STRLEN len, I32 method)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_autoload4(stash, name, len, method);
-}
-
-#undef  Perl_gv_check
-void
-Perl_gv_check(pTHXo_ HV* stash)
-{
-    ((CPerlObj*)pPerl)->Perl_gv_check(stash);
-}
-
-#undef  Perl_gv_efullname
-void
-Perl_gv_efullname(pTHXo_ SV* sv, GV* gv)
-{
-    ((CPerlObj*)pPerl)->Perl_gv_efullname(sv, gv);
-}
-
-#undef  Perl_gv_efullname3
-void
-Perl_gv_efullname3(pTHXo_ SV* sv, GV* gv, const char* prefix)
-{
-    ((CPerlObj*)pPerl)->Perl_gv_efullname3(sv, gv, prefix);
-}
-
-#undef  Perl_gv_efullname4
-void
-Perl_gv_efullname4(pTHXo_ SV* sv, GV* gv, const char* prefix, bool keepmain)
-{
-    ((CPerlObj*)pPerl)->Perl_gv_efullname4(sv, gv, prefix, keepmain);
-}
-
-#undef  Perl_gv_fetchfile
-GV*
-Perl_gv_fetchfile(pTHXo_ const char* name)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_fetchfile(name);
-}
-
-#undef  Perl_gv_fetchmeth
-GV*
-Perl_gv_fetchmeth(pTHXo_ HV* stash, const char* name, STRLEN len, I32 level)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_fetchmeth(stash, name, len, level);
-}
-
-#undef  Perl_gv_fetchmethod
-GV*
-Perl_gv_fetchmethod(pTHXo_ HV* stash, const char* name)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_fetchmethod(stash, name);
-}
-
-#undef  Perl_gv_fetchmethod_autoload
-GV*
-Perl_gv_fetchmethod_autoload(pTHXo_ HV* stash, const char* name, I32 autoload)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_fetchmethod_autoload(stash, name, autoload);
-}
-
-#undef  Perl_gv_fetchpv
-GV*
-Perl_gv_fetchpv(pTHXo_ const char* name, I32 add, I32 sv_type)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_fetchpv(name, add, sv_type);
-}
-
-#undef  Perl_gv_fullname
-void
-Perl_gv_fullname(pTHXo_ SV* sv, GV* gv)
-{
-    ((CPerlObj*)pPerl)->Perl_gv_fullname(sv, gv);
-}
-
-#undef  Perl_gv_fullname3
-void
-Perl_gv_fullname3(pTHXo_ SV* sv, GV* gv, const char* prefix)
-{
-    ((CPerlObj*)pPerl)->Perl_gv_fullname3(sv, gv, prefix);
-}
-
-#undef  Perl_gv_fullname4
-void
-Perl_gv_fullname4(pTHXo_ SV* sv, GV* gv, const char* prefix, bool keepmain)
-{
-    ((CPerlObj*)pPerl)->Perl_gv_fullname4(sv, gv, prefix, keepmain);
-}
-
-#undef  Perl_gv_init
-void
-Perl_gv_init(pTHXo_ GV* gv, HV* stash, const char* name, STRLEN len, int multi)
-{
-    ((CPerlObj*)pPerl)->Perl_gv_init(gv, stash, name, len, multi);
-}
-
-#undef  Perl_gv_stashpv
-HV*
-Perl_gv_stashpv(pTHXo_ const char* name, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_stashpv(name, create);
-}
-
-#undef  Perl_gv_stashpvn
-HV*
-Perl_gv_stashpvn(pTHXo_ const char* name, U32 namelen, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_stashpvn(name, namelen, create);
-}
-
-#undef  Perl_gv_stashsv
-HV*
-Perl_gv_stashsv(pTHXo_ SV* sv, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_gv_stashsv(sv, create);
-}
-
-#undef  Perl_hv_clear
-void
-Perl_hv_clear(pTHXo_ HV* tb)
-{
-    ((CPerlObj*)pPerl)->Perl_hv_clear(tb);
-}
-
-#undef  Perl_hv_delayfree_ent
-void
-Perl_hv_delayfree_ent(pTHXo_ HV* hv, HE* entry)
-{
-    ((CPerlObj*)pPerl)->Perl_hv_delayfree_ent(hv, entry);
-}
-
-#undef  Perl_hv_delete
-SV*
-Perl_hv_delete(pTHXo_ HV* tb, const char* key, I32 klen, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_delete(tb, key, klen, flags);
-}
-
-#undef  Perl_hv_delete_ent
-SV*
-Perl_hv_delete_ent(pTHXo_ HV* tb, SV* key, I32 flags, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_delete_ent(tb, key, flags, hash);
-}
-
-#undef  Perl_hv_exists
-bool
-Perl_hv_exists(pTHXo_ HV* tb, const char* key, I32 klen)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_exists(tb, key, klen);
-}
-
-#undef  Perl_hv_exists_ent
-bool
-Perl_hv_exists_ent(pTHXo_ HV* tb, SV* key, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_exists_ent(tb, key, hash);
-}
-
-#undef  Perl_hv_fetch
-SV**
-Perl_hv_fetch(pTHXo_ HV* tb, const char* key, I32 klen, I32 lval)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_fetch(tb, key, klen, lval);
-}
-
-#undef  Perl_hv_fetch_ent
-HE*
-Perl_hv_fetch_ent(pTHXo_ HV* tb, SV* key, I32 lval, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_fetch_ent(tb, key, lval, hash);
-}
-
-#undef  Perl_hv_free_ent
-void
-Perl_hv_free_ent(pTHXo_ HV* hv, HE* entry)
-{
-    ((CPerlObj*)pPerl)->Perl_hv_free_ent(hv, entry);
-}
-
-#undef  Perl_hv_iterinit
-I32
-Perl_hv_iterinit(pTHXo_ HV* tb)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_iterinit(tb);
-}
-
-#undef  Perl_hv_iterkey
-char*
-Perl_hv_iterkey(pTHXo_ HE* entry, I32* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_iterkey(entry, retlen);
-}
-
-#undef  Perl_hv_iterkeysv
-SV*
-Perl_hv_iterkeysv(pTHXo_ HE* entry)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_iterkeysv(entry);
-}
-
-#undef  Perl_hv_iternext
-HE*
-Perl_hv_iternext(pTHXo_ HV* tb)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_iternext(tb);
-}
-
-#undef  Perl_hv_iternextsv
-SV*
-Perl_hv_iternextsv(pTHXo_ HV* hv, char** key, I32* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_iternextsv(hv, key, retlen);
-}
-
-#undef  Perl_hv_iterval
-SV*
-Perl_hv_iterval(pTHXo_ HV* tb, HE* entry)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_iterval(tb, entry);
-}
-
-#undef  Perl_hv_ksplit
-void
-Perl_hv_ksplit(pTHXo_ HV* hv, IV newmax)
-{
-    ((CPerlObj*)pPerl)->Perl_hv_ksplit(hv, newmax);
-}
-
-#undef  Perl_hv_magic
-void
-Perl_hv_magic(pTHXo_ HV* hv, GV* gv, int how)
-{
-    ((CPerlObj*)pPerl)->Perl_hv_magic(hv, gv, how);
-}
-
-#undef  Perl_hv_store
-SV**
-Perl_hv_store(pTHXo_ HV* tb, const char* key, I32 klen, SV* val, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_store(tb, key, klen, val, hash);
-}
-
-#undef  Perl_hv_store_ent
-HE*
-Perl_hv_store_ent(pTHXo_ HV* tb, SV* key, SV* val, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_hv_store_ent(tb, key, val, hash);
-}
-
-#undef  Perl_hv_undef
-void
-Perl_hv_undef(pTHXo_ HV* tb)
-{
-    ((CPerlObj*)pPerl)->Perl_hv_undef(tb);
-}
-
-#undef  Perl_ibcmp
-I32
-Perl_ibcmp(pTHXo_ const char* a, const char* b, I32 len)
-{
-    return ((CPerlObj*)pPerl)->Perl_ibcmp(a, b, len);
-}
-
-#undef  Perl_ibcmp_locale
-I32
-Perl_ibcmp_locale(pTHXo_ const char* a, const char* b, I32 len)
-{
-    return ((CPerlObj*)pPerl)->Perl_ibcmp_locale(a, b, len);
-}
-
-#undef  Perl_init_stacks
-void
-Perl_init_stacks(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_init_stacks();
-}
-
-#undef  Perl_init_tm
-void
-Perl_init_tm(pTHXo_ struct tm *ptm)
-{
-    ((CPerlObj*)pPerl)->Perl_init_tm(ptm);
-}
-
-#undef  Perl_instr
-char*
-Perl_instr(pTHXo_ const char* big, const char* little)
-{
-    return ((CPerlObj*)pPerl)->Perl_instr(big, little);
-}
-
-#undef  Perl_is_uni_alnum
-bool
-Perl_is_uni_alnum(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_alnum(c);
-}
-
-#undef  Perl_is_uni_alnumc
-bool
-Perl_is_uni_alnumc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_alnumc(c);
-}
-
-#undef  Perl_is_uni_idfirst
-bool
-Perl_is_uni_idfirst(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_idfirst(c);
-}
-
-#undef  Perl_is_uni_alpha
-bool
-Perl_is_uni_alpha(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_alpha(c);
-}
-
-#undef  Perl_is_uni_ascii
-bool
-Perl_is_uni_ascii(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_ascii(c);
-}
-
-#undef  Perl_is_uni_space
-bool
-Perl_is_uni_space(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_space(c);
-}
-
-#undef  Perl_is_uni_cntrl
-bool
-Perl_is_uni_cntrl(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_cntrl(c);
-}
-
-#undef  Perl_is_uni_graph
-bool
-Perl_is_uni_graph(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_graph(c);
-}
-
-#undef  Perl_is_uni_digit
-bool
-Perl_is_uni_digit(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_digit(c);
-}
-
-#undef  Perl_is_uni_upper
-bool
-Perl_is_uni_upper(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_upper(c);
-}
-
-#undef  Perl_is_uni_lower
-bool
-Perl_is_uni_lower(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_lower(c);
-}
-
-#undef  Perl_is_uni_print
-bool
-Perl_is_uni_print(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_print(c);
-}
-
-#undef  Perl_is_uni_punct
-bool
-Perl_is_uni_punct(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_punct(c);
-}
-
-#undef  Perl_is_uni_xdigit
-bool
-Perl_is_uni_xdigit(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_xdigit(c);
-}
-
-#undef  Perl_to_uni_upper
-U32
-Perl_to_uni_upper(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_uni_upper(c);
-}
-
-#undef  Perl_to_uni_title
-U32
-Perl_to_uni_title(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_uni_title(c);
-}
-
-#undef  Perl_to_uni_lower
-U32
-Perl_to_uni_lower(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_uni_lower(c);
-}
-
-#undef  Perl_is_uni_alnum_lc
-bool
-Perl_is_uni_alnum_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_alnum_lc(c);
-}
-
-#undef  Perl_is_uni_alnumc_lc
-bool
-Perl_is_uni_alnumc_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_alnumc_lc(c);
-}
-
-#undef  Perl_is_uni_idfirst_lc
-bool
-Perl_is_uni_idfirst_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_idfirst_lc(c);
-}
-
-#undef  Perl_is_uni_alpha_lc
-bool
-Perl_is_uni_alpha_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_alpha_lc(c);
-}
-
-#undef  Perl_is_uni_ascii_lc
-bool
-Perl_is_uni_ascii_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_ascii_lc(c);
-}
-
-#undef  Perl_is_uni_space_lc
-bool
-Perl_is_uni_space_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_space_lc(c);
-}
-
-#undef  Perl_is_uni_cntrl_lc
-bool
-Perl_is_uni_cntrl_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_cntrl_lc(c);
-}
-
-#undef  Perl_is_uni_graph_lc
-bool
-Perl_is_uni_graph_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_graph_lc(c);
-}
-
-#undef  Perl_is_uni_digit_lc
-bool
-Perl_is_uni_digit_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_digit_lc(c);
-}
-
-#undef  Perl_is_uni_upper_lc
-bool
-Perl_is_uni_upper_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_upper_lc(c);
-}
-
-#undef  Perl_is_uni_lower_lc
-bool
-Perl_is_uni_lower_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_lower_lc(c);
-}
-
-#undef  Perl_is_uni_print_lc
-bool
-Perl_is_uni_print_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_print_lc(c);
-}
-
-#undef  Perl_is_uni_punct_lc
-bool
-Perl_is_uni_punct_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_punct_lc(c);
-}
-
-#undef  Perl_is_uni_xdigit_lc
-bool
-Perl_is_uni_xdigit_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_uni_xdigit_lc(c);
-}
-
-#undef  Perl_to_uni_upper_lc
-U32
-Perl_to_uni_upper_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_uni_upper_lc(c);
-}
-
-#undef  Perl_to_uni_title_lc
-U32
-Perl_to_uni_title_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_uni_title_lc(c);
-}
-
-#undef  Perl_to_uni_lower_lc
-U32
-Perl_to_uni_lower_lc(pTHXo_ U32 c)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_uni_lower_lc(c);
-}
-
-#undef  Perl_is_utf8_char
-STRLEN
-Perl_is_utf8_char(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_char(p);
-}
-
-#undef  Perl_is_utf8_string
-bool
-Perl_is_utf8_string(pTHXo_ U8 *s, STRLEN len)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_string(s, len);
-}
-
-#undef  Perl_is_utf8_alnum
-bool
-Perl_is_utf8_alnum(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_alnum(p);
-}
-
-#undef  Perl_is_utf8_alnumc
-bool
-Perl_is_utf8_alnumc(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_alnumc(p);
-}
-
-#undef  Perl_is_utf8_idfirst
-bool
-Perl_is_utf8_idfirst(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_idfirst(p);
-}
-
-#undef  Perl_is_utf8_alpha
-bool
-Perl_is_utf8_alpha(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_alpha(p);
-}
-
-#undef  Perl_is_utf8_ascii
-bool
-Perl_is_utf8_ascii(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_ascii(p);
-}
-
-#undef  Perl_is_utf8_space
-bool
-Perl_is_utf8_space(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_space(p);
-}
-
-#undef  Perl_is_utf8_cntrl
-bool
-Perl_is_utf8_cntrl(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_cntrl(p);
-}
-
-#undef  Perl_is_utf8_digit
-bool
-Perl_is_utf8_digit(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_digit(p);
-}
-
-#undef  Perl_is_utf8_graph
-bool
-Perl_is_utf8_graph(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_graph(p);
-}
-
-#undef  Perl_is_utf8_upper
-bool
-Perl_is_utf8_upper(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_upper(p);
-}
-
-#undef  Perl_is_utf8_lower
-bool
-Perl_is_utf8_lower(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_lower(p);
-}
-
-#undef  Perl_is_utf8_print
-bool
-Perl_is_utf8_print(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_print(p);
-}
-
-#undef  Perl_is_utf8_punct
-bool
-Perl_is_utf8_punct(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_punct(p);
-}
-
-#undef  Perl_is_utf8_xdigit
-bool
-Perl_is_utf8_xdigit(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_xdigit(p);
-}
-
-#undef  Perl_is_utf8_mark
-bool
-Perl_is_utf8_mark(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_is_utf8_mark(p);
-}
-
-#undef  Perl_leave_scope
-void
-Perl_leave_scope(pTHXo_ I32 base)
-{
-    ((CPerlObj*)pPerl)->Perl_leave_scope(base);
-}
-
-#undef  Perl_op_null
-void
-Perl_op_null(pTHXo_ OP* o)
-{
-    ((CPerlObj*)pPerl)->Perl_op_null(o);
-}
-
-#undef  Perl_load_module
-void
-Perl_load_module(pTHXo_ U32 flags, SV* name, SV* ver, ...)
-{
-    va_list args;
-    va_start(args, ver);
-    ((CPerlObj*)pPerl)->Perl_vload_module(flags, name, ver, &args);
-    va_end(args);
-}
-
-#undef  Perl_vload_module
-void
-Perl_vload_module(pTHXo_ U32 flags, SV* name, SV* ver, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_vload_module(flags, name, ver, args);
-}
-
-#undef  Perl_looks_like_number
-I32
-Perl_looks_like_number(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_looks_like_number(sv);
-}
-
-#undef  Perl_grok_number
-int
-Perl_grok_number(pTHXo_ const char *pv, STRLEN len, UV *valuep)
-{
-    return ((CPerlObj*)pPerl)->Perl_grok_number(pv, len, valuep);
-}
-
-#undef  Perl_grok_numeric_radix
-bool
-Perl_grok_numeric_radix(pTHXo_ const char **sp, const char *send)
-{
-    return ((CPerlObj*)pPerl)->Perl_grok_numeric_radix(sp, send);
-}
-#if defined(USE_5005THREADS)
-#endif
-#if defined(USE_LOCALE_COLLATE)
-#endif
-
-#undef  Perl_markstack_grow
-void
-Perl_markstack_grow(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_markstack_grow();
-}
-#if defined(USE_LOCALE_COLLATE)
-#endif
-
-#undef  Perl_mess
-SV*
-Perl_mess(pTHXo_ const char* pat, ...)
-{
-    SV* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vmess(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_vmess
-SV*
-Perl_vmess(pTHXo_ const char* pat, va_list* args)
-{
-    return ((CPerlObj*)pPerl)->Perl_vmess(pat, args);
-}
-
-#undef  Perl_mg_clear
-int
-Perl_mg_clear(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_clear(sv);
-}
-
-#undef  Perl_mg_copy
-int
-Perl_mg_copy(pTHXo_ SV* sv, SV* nsv, const char* key, I32 klen)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_copy(sv, nsv, key, klen);
-}
-
-#undef  Perl_mg_find
-MAGIC*
-Perl_mg_find(pTHXo_ SV* sv, int type)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_find(sv, type);
-}
-
-#undef  Perl_mg_free
-int
-Perl_mg_free(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_free(sv);
-}
-
-#undef  Perl_mg_get
-int
-Perl_mg_get(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_get(sv);
-}
-
-#undef  Perl_mg_length
-U32
-Perl_mg_length(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_length(sv);
-}
-
-#undef  Perl_mg_magical
-void
-Perl_mg_magical(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_mg_magical(sv);
-}
-
-#undef  Perl_mg_set
-int
-Perl_mg_set(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_set(sv);
-}
-
-#undef  Perl_mg_size
-I32
-Perl_mg_size(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_size(sv);
-}
-
-#undef  Perl_mini_mktime
-void
-Perl_mini_mktime(pTHXo_ struct tm *pm)
-{
-    ((CPerlObj*)pPerl)->Perl_mini_mktime(pm);
-}
-
-#undef  Perl_moreswitches
-char*
-Perl_moreswitches(pTHXo_ char* s)
-{
-    return ((CPerlObj*)pPerl)->Perl_moreswitches(s);
-}
-
-#undef  Perl_my_atof
-NV
-Perl_my_atof(pTHXo_ const char *s)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_atof(s);
-}
-#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
-
-#undef  Perl_my_bcopy
-char*
-Perl_my_bcopy(const char* from, char* to, I32 len)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_my_bcopy(from, to, len);
-}
-#endif
-#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-
-#undef  Perl_my_bzero
-char*
-Perl_my_bzero(char* loc, I32 len)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_my_bzero(loc, len);
-}
-#endif
-
-#undef  Perl_my_exit
-void
-Perl_my_exit(pTHXo_ U32 status)
-{
-    ((CPerlObj*)pPerl)->Perl_my_exit(status);
-}
-
-#undef  Perl_my_failure_exit
-void
-Perl_my_failure_exit(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_my_failure_exit();
-}
-
-#undef  Perl_my_fflush_all
-I32
-Perl_my_fflush_all(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_fflush_all();
-}
-
-#undef  Perl_my_fork
-Pid_t
-Perl_my_fork()
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_my_fork();
-}
-
-#undef  Perl_atfork_lock
-void
-Perl_atfork_lock()
-{
-    dTHXo;
-    ((CPerlObj*)pPerl)->Perl_atfork_lock();
-}
-
-#undef  Perl_atfork_unlock
-void
-Perl_atfork_unlock()
-{
-    dTHXo;
-    ((CPerlObj*)pPerl)->Perl_atfork_unlock();
-}
-
-#undef  Perl_my_lstat
-I32
-Perl_my_lstat(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_lstat();
-}
-#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
-
-#undef  Perl_my_memcmp
-I32
-Perl_my_memcmp(const char* s1, const char* s2, I32 len)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_my_memcmp(s1, s2, len);
-}
-#endif
-#if !defined(HAS_MEMSET)
-
-#undef  Perl_my_memset
-void*
-Perl_my_memset(char* loc, I32 ch, I32 len)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_my_memset(loc, ch, len);
-}
-#endif
-#if !defined(PERL_OBJECT)
-
-#undef  Perl_my_pclose
-I32
-Perl_my_pclose(pTHXo_ PerlIO* ptr)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_pclose(ptr);
-}
-
-#undef  Perl_my_popen
-PerlIO*
-Perl_my_popen(pTHXo_ char* cmd, char* mode)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_popen(cmd, mode);
-}
-
-#undef  Perl_my_popen_list
-PerlIO*
-Perl_my_popen_list(pTHXo_ char* mode, int n, SV ** args)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_popen_list(mode, n, args);
-}
-#endif
-
-#undef  Perl_my_setenv
-void
-Perl_my_setenv(pTHXo_ char* nam, char* val)
-{
-    ((CPerlObj*)pPerl)->Perl_my_setenv(nam, val);
-}
-
-#undef  Perl_my_stat
-I32
-Perl_my_stat(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_stat();
-}
-
-#undef  Perl_my_strftime
-char *
-Perl_my_strftime(pTHXo_ char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_strftime(fmt, sec, min, hour, mday, mon, year, wday, yday, isdst);
-}
-#if defined(MYSWAP)
-
-#undef  Perl_my_swap
-short
-Perl_my_swap(pTHXo_ short s)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_swap(s);
-}
-
-#undef  Perl_my_htonl
-long
-Perl_my_htonl(pTHXo_ long l)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_htonl(l);
-}
-
-#undef  Perl_my_ntohl
-long
-Perl_my_ntohl(pTHXo_ long l)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_ntohl(l);
-}
-#endif
-
-#undef  Perl_newANONLIST
-OP*
-Perl_newANONLIST(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newANONLIST(o);
-}
-
-#undef  Perl_newANONHASH
-OP*
-Perl_newANONHASH(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newANONHASH(o);
-}
-
-#undef  Perl_newANONSUB
-OP*
-Perl_newANONSUB(pTHXo_ I32 floor, OP* proto, OP* block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newANONSUB(floor, proto, block);
-}
-
-#undef  Perl_newASSIGNOP
-OP*
-Perl_newASSIGNOP(pTHXo_ I32 flags, OP* left, I32 optype, OP* right)
-{
-    return ((CPerlObj*)pPerl)->Perl_newASSIGNOP(flags, left, optype, right);
-}
-
-#undef  Perl_newCONDOP
-OP*
-Perl_newCONDOP(pTHXo_ I32 flags, OP* expr, OP* trueop, OP* falseop)
-{
-    return ((CPerlObj*)pPerl)->Perl_newCONDOP(flags, expr, trueop, falseop);
-}
-
-#undef  Perl_newCONSTSUB
-CV*
-Perl_newCONSTSUB(pTHXo_ HV* stash, char* name, SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newCONSTSUB(stash, name, sv);
-}
-
-#undef  Perl_newFORM
-void
-Perl_newFORM(pTHXo_ I32 floor, OP* o, OP* block)
-{
-    ((CPerlObj*)pPerl)->Perl_newFORM(floor, o, block);
-}
-
-#undef  Perl_newFOROP
-OP*
-Perl_newFOROP(pTHXo_ I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont)
-{
-    return ((CPerlObj*)pPerl)->Perl_newFOROP(flags, label, forline, sclr, expr, block, cont);
-}
-
-#undef  Perl_newLOGOP
-OP*
-Perl_newLOGOP(pTHXo_ I32 optype, I32 flags, OP* left, OP* right)
-{
-    return ((CPerlObj*)pPerl)->Perl_newLOGOP(optype, flags, left, right);
-}
-
-#undef  Perl_newLOOPEX
-OP*
-Perl_newLOOPEX(pTHXo_ I32 type, OP* label)
-{
-    return ((CPerlObj*)pPerl)->Perl_newLOOPEX(type, label);
-}
-
-#undef  Perl_newLOOPOP
-OP*
-Perl_newLOOPOP(pTHXo_ I32 flags, I32 debuggable, OP* expr, OP* block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newLOOPOP(flags, debuggable, expr, block);
-}
-
-#undef  Perl_newNULLLIST
-OP*
-Perl_newNULLLIST(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_newNULLLIST();
-}
-
-#undef  Perl_newOP
-OP*
-Perl_newOP(pTHXo_ I32 optype, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_newOP(optype, flags);
-}
-
-#undef  Perl_newPROG
-void
-Perl_newPROG(pTHXo_ OP* o)
-{
-    ((CPerlObj*)pPerl)->Perl_newPROG(o);
-}
-
-#undef  Perl_newRANGE
-OP*
-Perl_newRANGE(pTHXo_ I32 flags, OP* left, OP* right)
-{
-    return ((CPerlObj*)pPerl)->Perl_newRANGE(flags, left, right);
-}
-
-#undef  Perl_newSLICEOP
-OP*
-Perl_newSLICEOP(pTHXo_ I32 flags, OP* subscript, OP* listop)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSLICEOP(flags, subscript, listop);
-}
-
-#undef  Perl_newSTATEOP
-OP*
-Perl_newSTATEOP(pTHXo_ I32 flags, char* label, OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSTATEOP(flags, label, o);
-}
-
-#undef  Perl_newSUB
-CV*
-Perl_newSUB(pTHXo_ I32 floor, OP* o, OP* proto, OP* block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSUB(floor, o, proto, block);
-}
-
-#undef  Perl_newXS
-CV*
-Perl_newXS(pTHXo_ char* name, XSUBADDR_t f, char* filename)
-{
-    return ((CPerlObj*)pPerl)->Perl_newXS(name, f, filename);
-}
-
-#undef  Perl_newAV
-AV*
-Perl_newAV(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_newAV();
-}
-
-#undef  Perl_newAVREF
-OP*
-Perl_newAVREF(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newAVREF(o);
-}
-
-#undef  Perl_newBINOP
-OP*
-Perl_newBINOP(pTHXo_ I32 type, I32 flags, OP* first, OP* last)
-{
-    return ((CPerlObj*)pPerl)->Perl_newBINOP(type, flags, first, last);
-}
-
-#undef  Perl_newCVREF
-OP*
-Perl_newCVREF(pTHXo_ I32 flags, OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newCVREF(flags, o);
-}
-
-#undef  Perl_newGVOP
-OP*
-Perl_newGVOP(pTHXo_ I32 type, I32 flags, GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newGVOP(type, flags, gv);
-}
-
-#undef  Perl_newGVgen
-GV*
-Perl_newGVgen(pTHXo_ char* pack)
-{
-    return ((CPerlObj*)pPerl)->Perl_newGVgen(pack);
-}
-
-#undef  Perl_newGVREF
-OP*
-Perl_newGVREF(pTHXo_ I32 type, OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newGVREF(type, o);
-}
-
-#undef  Perl_newHVREF
-OP*
-Perl_newHVREF(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newHVREF(o);
-}
-
-#undef  Perl_newHV
-HV*
-Perl_newHV(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_newHV();
-}
-
-#undef  Perl_newHVhv
-HV*
-Perl_newHVhv(pTHXo_ HV* hv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newHVhv(hv);
-}
-
-#undef  Perl_newIO
-IO*
-Perl_newIO(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_newIO();
-}
-
-#undef  Perl_newLISTOP
-OP*
-Perl_newLISTOP(pTHXo_ I32 type, I32 flags, OP* first, OP* last)
-{
-    return ((CPerlObj*)pPerl)->Perl_newLISTOP(type, flags, first, last);
-}
-
-#undef  Perl_newPADOP
-OP*
-Perl_newPADOP(pTHXo_ I32 type, I32 flags, SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newPADOP(type, flags, sv);
-}
-
-#undef  Perl_newPMOP
-OP*
-Perl_newPMOP(pTHXo_ I32 type, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_newPMOP(type, flags);
-}
-
-#undef  Perl_newPVOP
-OP*
-Perl_newPVOP(pTHXo_ I32 type, I32 flags, char* pv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newPVOP(type, flags, pv);
-}
-
-#undef  Perl_newRV
-SV*
-Perl_newRV(pTHXo_ SV* pref)
-{
-    return ((CPerlObj*)pPerl)->Perl_newRV(pref);
-}
-
-#undef  Perl_newRV_noinc
-SV*
-Perl_newRV_noinc(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newRV_noinc(sv);
-}
-
-#undef  Perl_newSV
-SV*
-Perl_newSV(pTHXo_ STRLEN len)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSV(len);
-}
-
-#undef  Perl_newSVREF
-OP*
-Perl_newSVREF(pTHXo_ OP* o)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVREF(o);
-}
-
-#undef  Perl_newSVOP
-OP*
-Perl_newSVOP(pTHXo_ I32 type, I32 flags, SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVOP(type, flags, sv);
-}
-
-#undef  Perl_newSViv
-SV*
-Perl_newSViv(pTHXo_ IV i)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSViv(i);
-}
-
-#undef  Perl_newSVuv
-SV*
-Perl_newSVuv(pTHXo_ UV u)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVuv(u);
-}
-
-#undef  Perl_newSVnv
-SV*
-Perl_newSVnv(pTHXo_ NV n)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVnv(n);
-}
-
-#undef  Perl_newSVpv
-SV*
-Perl_newSVpv(pTHXo_ const char* s, STRLEN len)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVpv(s, len);
-}
-
-#undef  Perl_newSVpvn
-SV*
-Perl_newSVpvn(pTHXo_ const char* s, STRLEN len)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVpvn(s, len);
-}
-
-#undef  Perl_newSVpvn_share
-SV*
-Perl_newSVpvn_share(pTHXo_ const char* s, I32 len, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVpvn_share(s, len, hash);
-}
-
-#undef  Perl_newSVpvf
-SV*
-Perl_newSVpvf(pTHXo_ const char* pat, ...)
-{
-    SV* retval;
-    va_list args;
-    va_start(args, pat);
-    retval = ((CPerlObj*)pPerl)->Perl_vnewSVpvf(pat, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_vnewSVpvf
-SV*
-Perl_vnewSVpvf(pTHXo_ const char* pat, va_list* args)
-{
-    return ((CPerlObj*)pPerl)->Perl_vnewSVpvf(pat, args);
-}
-
-#undef  Perl_newSVrv
-SV*
-Perl_newSVrv(pTHXo_ SV* rv, const char* classname)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVrv(rv, classname);
-}
-
-#undef  Perl_newSVsv
-SV*
-Perl_newSVsv(pTHXo_ SV* old)
-{
-    return ((CPerlObj*)pPerl)->Perl_newSVsv(old);
-}
-
-#undef  Perl_newUNOP
-OP*
-Perl_newUNOP(pTHXo_ I32 type, I32 flags, OP* first)
-{
-    return ((CPerlObj*)pPerl)->Perl_newUNOP(type, flags, first);
-}
-
-#undef  Perl_newWHILEOP
-OP*
-Perl_newWHILEOP(pTHXo_ I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont)
-{
-    return ((CPerlObj*)pPerl)->Perl_newWHILEOP(flags, debuggable, loop, whileline, expr, block, cont);
-}
-
-#undef  Perl_new_stackinfo
-PERL_SI*
-Perl_new_stackinfo(pTHXo_ I32 stitems, I32 cxitems)
-{
-    return ((CPerlObj*)pPerl)->Perl_new_stackinfo(stitems, cxitems);
-}
-
-#undef  Perl_ninstr
-char*
-Perl_ninstr(pTHXo_ const char* big, const char* bigend, const char* little, const char* lend)
-{
-    return ((CPerlObj*)pPerl)->Perl_ninstr(big, bigend, little, lend);
-}
-
-#undef  Perl_op_free
-void
-Perl_op_free(pTHXo_ OP* arg)
-{
-    ((CPerlObj*)pPerl)->Perl_op_free(arg);
-}
-
-#undef  Perl_pad_sv
-SV*
-Perl_pad_sv(pTHXo_ PADOFFSET po)
-{
-    return ((CPerlObj*)pPerl)->Perl_pad_sv(po);
-}
-#if defined(PERL_OBJECT)
-
-#undef  Perl_construct
-void
-Perl_construct(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_construct();
-}
-
-#undef  Perl_destruct
-void
-Perl_destruct(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_destruct();
-}
-
-#undef  Perl_free
-void
-Perl_free(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_free();
-}
-
-#undef  Perl_run
-int
-Perl_run(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_run();
-}
-
-#undef  Perl_parse
-int
-Perl_parse(pTHXo_ XSINIT_t xsinit, int argc, char** argv, char** env)
-{
-    return ((CPerlObj*)pPerl)->Perl_parse(xsinit, argc, argv, env);
-}
-#endif
-#if defined(USE_5005THREADS)
-
-#undef  Perl_new_struct_thread
-struct perl_thread*
-Perl_new_struct_thread(pTHXo_ struct perl_thread *t)
-{
-    return ((CPerlObj*)pPerl)->Perl_new_struct_thread(t);
-}
-#endif
-
-#undef  Perl_call_atexit
-void
-Perl_call_atexit(pTHXo_ ATEXIT_t fn, void *ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_call_atexit(fn, ptr);
-}
-
-#undef  Perl_call_argv
-I32
-Perl_call_argv(pTHXo_ const char* sub_name, I32 flags, char** argv)
-{
-    return ((CPerlObj*)pPerl)->Perl_call_argv(sub_name, flags, argv);
-}
-
-#undef  Perl_call_method
-I32
-Perl_call_method(pTHXo_ const char* methname, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_call_method(methname, flags);
-}
-
-#undef  Perl_call_pv
-I32
-Perl_call_pv(pTHXo_ const char* sub_name, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_call_pv(sub_name, flags);
-}
-
-#undef  Perl_call_sv
-I32
-Perl_call_sv(pTHXo_ SV* sv, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_call_sv(sv, flags);
-}
-
-#undef  Perl_eval_pv
-SV*
-Perl_eval_pv(pTHXo_ const char* p, I32 croak_on_error)
-{
-    return ((CPerlObj*)pPerl)->Perl_eval_pv(p, croak_on_error);
-}
-
-#undef  Perl_eval_sv
-I32
-Perl_eval_sv(pTHXo_ SV* sv, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_eval_sv(sv, flags);
-}
-
-#undef  Perl_get_sv
-SV*
-Perl_get_sv(pTHXo_ const char* name, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_sv(name, create);
-}
-
-#undef  Perl_get_av
-AV*
-Perl_get_av(pTHXo_ const char* name, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_av(name, create);
-}
-
-#undef  Perl_get_hv
-HV*
-Perl_get_hv(pTHXo_ const char* name, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_hv(name, create);
-}
-
-#undef  Perl_get_cv
-CV*
-Perl_get_cv(pTHXo_ const char* name, I32 create)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_cv(name, create);
-}
-
-#undef  Perl_init_i18nl10n
-int
-Perl_init_i18nl10n(pTHXo_ int printwarn)
-{
-    return ((CPerlObj*)pPerl)->Perl_init_i18nl10n(printwarn);
-}
-
-#undef  Perl_init_i18nl14n
-int
-Perl_init_i18nl14n(pTHXo_ int printwarn)
-{
-    return ((CPerlObj*)pPerl)->Perl_init_i18nl14n(printwarn);
-}
-
-#undef  Perl_new_collate
-void
-Perl_new_collate(pTHXo_ char* newcoll)
-{
-    ((CPerlObj*)pPerl)->Perl_new_collate(newcoll);
-}
-
-#undef  Perl_new_ctype
-void
-Perl_new_ctype(pTHXo_ char* newctype)
-{
-    ((CPerlObj*)pPerl)->Perl_new_ctype(newctype);
-}
-
-#undef  Perl_new_numeric
-void
-Perl_new_numeric(pTHXo_ char* newcoll)
-{
-    ((CPerlObj*)pPerl)->Perl_new_numeric(newcoll);
-}
-
-#undef  Perl_set_numeric_local
-void
-Perl_set_numeric_local(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_set_numeric_local();
-}
-
-#undef  Perl_set_numeric_radix
-void
-Perl_set_numeric_radix(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_set_numeric_radix();
-}
-
-#undef  Perl_set_numeric_standard
-void
-Perl_set_numeric_standard(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_set_numeric_standard();
-}
-
-#undef  Perl_require_pv
-void
-Perl_require_pv(pTHXo_ const char* pv)
-{
-    ((CPerlObj*)pPerl)->Perl_require_pv(pv);
-}
-
-#undef  Perl_pmflag
-void
-Perl_pmflag(pTHXo_ U16* pmfl, int ch)
-{
-    ((CPerlObj*)pPerl)->Perl_pmflag(pmfl, ch);
-}
-
-#undef  Perl_pop_scope
-void
-Perl_pop_scope(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_pop_scope();
-}
-
-#undef  Perl_push_scope
-void
-Perl_push_scope(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_push_scope();
-}
-
-#undef  Perl_regdump
-void
-Perl_regdump(pTHXo_ regexp* r)
-{
-    ((CPerlObj*)pPerl)->Perl_regdump(r);
-}
-
-#undef  Perl_regclass_swash
-SV*
-Perl_regclass_swash(pTHXo_ struct regnode *n, bool doinit, SV **initsvp)
-{
-    return ((CPerlObj*)pPerl)->Perl_regclass_swash(n, doinit, initsvp);
-}
-
-#undef  Perl_pregexec
-I32
-Perl_pregexec(pTHXo_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave)
-{
-    return ((CPerlObj*)pPerl)->Perl_pregexec(prog, stringarg, strend, strbeg, minend, screamer, nosave);
-}
-
-#undef  Perl_pregfree
-void
-Perl_pregfree(pTHXo_ struct regexp* r)
-{
-    ((CPerlObj*)pPerl)->Perl_pregfree(r);
-}
-
-#undef  Perl_pregcomp
-regexp*
-Perl_pregcomp(pTHXo_ char* exp, char* xend, PMOP* pm)
-{
-    return ((CPerlObj*)pPerl)->Perl_pregcomp(exp, xend, pm);
-}
-
-#undef  Perl_re_intuit_start
-char*
-Perl_re_intuit_start(pTHXo_ regexp* prog, SV* sv, char* strpos, char* strend, U32 flags, struct re_scream_pos_data_s *data)
-{
-    return ((CPerlObj*)pPerl)->Perl_re_intuit_start(prog, sv, strpos, strend, flags, data);
-}
-
-#undef  Perl_re_intuit_string
-SV*
-Perl_re_intuit_string(pTHXo_ regexp* prog)
-{
-    return ((CPerlObj*)pPerl)->Perl_re_intuit_string(prog);
-}
-
-#undef  Perl_regexec_flags
-I32
-Perl_regexec_flags(pTHXo_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_regexec_flags(prog, stringarg, strend, strbeg, minend, screamer, data, flags);
-}
-
-#undef  Perl_regnext
-regnode*
-Perl_regnext(pTHXo_ regnode* p)
-{
-    return ((CPerlObj*)pPerl)->Perl_regnext(p);
-}
-
-#undef  Perl_repeatcpy
-void
-Perl_repeatcpy(pTHXo_ char* to, const char* from, I32 len, I32 count)
-{
-    ((CPerlObj*)pPerl)->Perl_repeatcpy(to, from, len, count);
-}
-
-#undef  Perl_rninstr
-char*
-Perl_rninstr(pTHXo_ const char* big, const char* bigend, const char* little, const char* lend)
-{
-    return ((CPerlObj*)pPerl)->Perl_rninstr(big, bigend, little, lend);
-}
-
-#undef  Perl_rsignal
-Sighandler_t
-Perl_rsignal(pTHXo_ int i, Sighandler_t t)
-{
-    return ((CPerlObj*)pPerl)->Perl_rsignal(i, t);
-}
-
-#undef  Perl_rsignal_state
-Sighandler_t
-Perl_rsignal_state(pTHXo_ int i)
-{
-    return ((CPerlObj*)pPerl)->Perl_rsignal_state(i);
-}
-#if !defined(HAS_RENAME)
-#endif
-
-#undef  Perl_savepv
-char*
-Perl_savepv(pTHXo_ const char* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_savepv(sv);
-}
-
-#undef  Perl_savepvn
-char*
-Perl_savepvn(pTHXo_ const char* sv, I32 len)
-{
-    return ((CPerlObj*)pPerl)->Perl_savepvn(sv, len);
-}
-
-#undef  Perl_savestack_grow
-void
-Perl_savestack_grow(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_savestack_grow();
-}
-
-#undef  Perl_save_aelem
-void
-Perl_save_aelem(pTHXo_ AV* av, I32 idx, SV **sptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_aelem(av, idx, sptr);
-}
-
-#undef  Perl_save_alloc
-I32
-Perl_save_alloc(pTHXo_ I32 size, I32 pad)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_alloc(size, pad);
-}
-
-#undef  Perl_save_aptr
-void
-Perl_save_aptr(pTHXo_ AV** aptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_aptr(aptr);
-}
-
-#undef  Perl_save_ary
-AV*
-Perl_save_ary(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_ary(gv);
-}
-
-#undef  Perl_save_clearsv
-void
-Perl_save_clearsv(pTHXo_ SV** svp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_clearsv(svp);
-}
-
-#undef  Perl_save_delete
-void
-Perl_save_delete(pTHXo_ HV* hv, char* key, I32 klen)
-{
-    ((CPerlObj*)pPerl)->Perl_save_delete(hv, key, klen);
-}
-
-#undef  Perl_save_destructor
-void
-Perl_save_destructor(pTHXo_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p)
-{
-    ((CPerlObj*)pPerl)->Perl_save_destructor(f, p);
-}
-
-#undef  Perl_save_destructor_x
-void
-Perl_save_destructor_x(pTHXo_ DESTRUCTORFUNC_t f, void* p)
-{
-    ((CPerlObj*)pPerl)->Perl_save_destructor_x(f, p);
-}
-
-#undef  Perl_save_freesv
-void
-Perl_save_freesv(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_save_freesv(sv);
-}
-
-#undef  Perl_save_freepv
-void
-Perl_save_freepv(pTHXo_ char* pv)
-{
-    ((CPerlObj*)pPerl)->Perl_save_freepv(pv);
-}
-
-#undef  Perl_save_generic_svref
-void
-Perl_save_generic_svref(pTHXo_ SV** sptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_generic_svref(sptr);
-}
-
-#undef  Perl_save_generic_pvref
-void
-Perl_save_generic_pvref(pTHXo_ char** str)
-{
-    ((CPerlObj*)pPerl)->Perl_save_generic_pvref(str);
-}
-
-#undef  Perl_save_gp
-void
-Perl_save_gp(pTHXo_ GV* gv, I32 empty)
-{
-    ((CPerlObj*)pPerl)->Perl_save_gp(gv, empty);
-}
-
-#undef  Perl_save_hash
-HV*
-Perl_save_hash(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_hash(gv);
-}
-
-#undef  Perl_save_helem
-void
-Perl_save_helem(pTHXo_ HV* hv, SV *key, SV **sptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_helem(hv, key, sptr);
-}
-
-#undef  Perl_save_hints
-void
-Perl_save_hints(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_save_hints();
-}
-
-#undef  Perl_save_hptr
-void
-Perl_save_hptr(pTHXo_ HV** hptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_hptr(hptr);
-}
-
-#undef  Perl_save_I16
-void
-Perl_save_I16(pTHXo_ I16* intp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_I16(intp);
-}
-
-#undef  Perl_save_I32
-void
-Perl_save_I32(pTHXo_ I32* intp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_I32(intp);
-}
-
-#undef  Perl_save_I8
-void
-Perl_save_I8(pTHXo_ I8* bytep)
-{
-    ((CPerlObj*)pPerl)->Perl_save_I8(bytep);
-}
-
-#undef  Perl_save_int
-void
-Perl_save_int(pTHXo_ int* intp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_int(intp);
-}
-
-#undef  Perl_save_item
-void
-Perl_save_item(pTHXo_ SV* item)
-{
-    ((CPerlObj*)pPerl)->Perl_save_item(item);
-}
-
-#undef  Perl_save_iv
-void
-Perl_save_iv(pTHXo_ IV* iv)
-{
-    ((CPerlObj*)pPerl)->Perl_save_iv(iv);
-}
-
-#undef  Perl_save_list
-void
-Perl_save_list(pTHXo_ SV** sarg, I32 maxsarg)
-{
-    ((CPerlObj*)pPerl)->Perl_save_list(sarg, maxsarg);
-}
-
-#undef  Perl_save_long
-void
-Perl_save_long(pTHXo_ long* longp)
-{
-    ((CPerlObj*)pPerl)->Perl_save_long(longp);
-}
-
-#undef  Perl_save_mortalizesv
-void
-Perl_save_mortalizesv(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_save_mortalizesv(sv);
-}
-
-#undef  Perl_save_nogv
-void
-Perl_save_nogv(pTHXo_ GV* gv)
-{
-    ((CPerlObj*)pPerl)->Perl_save_nogv(gv);
-}
-
-#undef  Perl_save_scalar
-SV*
-Perl_save_scalar(pTHXo_ GV* gv)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_scalar(gv);
-}
-
-#undef  Perl_save_pptr
-void
-Perl_save_pptr(pTHXo_ char** pptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_pptr(pptr);
-}
-
-#undef  Perl_save_vptr
-void
-Perl_save_vptr(pTHXo_ void* pptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_vptr(pptr);
-}
-
-#undef  Perl_save_re_context
-void
-Perl_save_re_context(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_save_re_context();
-}
-
-#undef  Perl_save_padsv
-void
-Perl_save_padsv(pTHXo_ PADOFFSET off)
-{
-    ((CPerlObj*)pPerl)->Perl_save_padsv(off);
-}
-
-#undef  Perl_save_sptr
-void
-Perl_save_sptr(pTHXo_ SV** sptr)
-{
-    ((CPerlObj*)pPerl)->Perl_save_sptr(sptr);
-}
-
-#undef  Perl_save_svref
-SV*
-Perl_save_svref(pTHXo_ SV** sptr)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_svref(sptr);
-}
-
-#undef  Perl_save_threadsv
-SV**
-Perl_save_threadsv(pTHXo_ PADOFFSET i)
-{
-    return ((CPerlObj*)pPerl)->Perl_save_threadsv(i);
-}
-
-#undef  Perl_scan_bin
-NV
-Perl_scan_bin(pTHXo_ char* start, STRLEN len, STRLEN* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_scan_bin(start, len, retlen);
-}
-
-#undef  Perl_scan_hex
-NV
-Perl_scan_hex(pTHXo_ char* start, STRLEN len, STRLEN* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_scan_hex(start, len, retlen);
-}
-
-#undef  Perl_scan_num
-char*
-Perl_scan_num(pTHXo_ char* s, YYSTYPE *lvalp)
-{
-    return ((CPerlObj*)pPerl)->Perl_scan_num(s, lvalp);
-}
-
-#undef  Perl_scan_oct
-NV
-Perl_scan_oct(pTHXo_ char* start, STRLEN len, STRLEN* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_scan_oct(start, len, retlen);
-}
-
-#undef  Perl_screaminstr
-char*
-Perl_screaminstr(pTHXo_ SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last)
-{
-    return ((CPerlObj*)pPerl)->Perl_screaminstr(bigsv, littlesv, start_shift, end_shift, state, last);
-}
-#if !defined(VMS)
-#endif
-
-#undef  Perl_sharepvn
-char*
-Perl_sharepvn(pTHXo_ const char* sv, I32 len, U32 hash)
-{
-    return ((CPerlObj*)pPerl)->Perl_sharepvn(sv, len, hash);
-}
-
-#undef  Perl_stack_grow
-SV**
-Perl_stack_grow(pTHXo_ SV** sp, SV**p, int n)
-{
-    return ((CPerlObj*)pPerl)->Perl_stack_grow(sp, p, n);
-}
-
-#undef  Perl_start_subparse
-I32
-Perl_start_subparse(pTHXo_ I32 is_format, U32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_start_subparse(is_format, flags);
-}
-
-#undef  Perl_sv_2bool
-bool
-Perl_sv_2bool(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2bool(sv);
-}
-
-#undef  Perl_sv_2cv
-CV*
-Perl_sv_2cv(pTHXo_ SV* sv, HV** st, GV** gvp, I32 lref)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2cv(sv, st, gvp, lref);
-}
-
-#undef  Perl_sv_2io
-IO*
-Perl_sv_2io(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2io(sv);
-}
-
-#undef  Perl_sv_2iv
-IV
-Perl_sv_2iv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2iv(sv);
-}
-
-#undef  Perl_sv_2mortal
-SV*
-Perl_sv_2mortal(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2mortal(sv);
-}
-
-#undef  Perl_sv_2nv
-NV
-Perl_sv_2nv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2nv(sv);
-}
-
-#undef  Perl_sv_2pv
-char*
-Perl_sv_2pv(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pv(sv, lp);
-}
-
-#undef  Perl_sv_2pvutf8
-char*
-Perl_sv_2pvutf8(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pvutf8(sv, lp);
-}
-
-#undef  Perl_sv_2pvbyte
-char*
-Perl_sv_2pvbyte(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pvbyte(sv, lp);
-}
-
-#undef  Perl_sv_2uv
-UV
-Perl_sv_2uv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2uv(sv);
-}
-
-#undef  Perl_sv_iv
-IV
-Perl_sv_iv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_iv(sv);
-}
-
-#undef  Perl_sv_uv
-UV
-Perl_sv_uv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_uv(sv);
-}
-
-#undef  Perl_sv_nv
-NV
-Perl_sv_nv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_nv(sv);
-}
-
-#undef  Perl_sv_pvn
-char*
-Perl_sv_pvn(pTHXo_ SV *sv, STRLEN *len)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvn(sv, len);
-}
-
-#undef  Perl_sv_pvutf8n
-char*
-Perl_sv_pvutf8n(pTHXo_ SV *sv, STRLEN *len)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvutf8n(sv, len);
-}
-
-#undef  Perl_sv_pvbyten
-char*
-Perl_sv_pvbyten(pTHXo_ SV *sv, STRLEN *len)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvbyten(sv, len);
-}
-
-#undef  Perl_sv_true
-I32
-Perl_sv_true(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_true(sv);
-}
-
-#undef  Perl_sv_backoff
-int
-Perl_sv_backoff(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_backoff(sv);
-}
-
-#undef  Perl_sv_bless
-SV*
-Perl_sv_bless(pTHXo_ SV* sv, HV* stash)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_bless(sv, stash);
-}
-
-#undef  Perl_sv_catpvf
-void
-Perl_sv_catpvf(pTHXo_ SV* sv, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_vcatpvf
-void
-Perl_sv_vcatpvf(pTHXo_ SV* sv, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf(sv, pat, args);
-}
-
-#undef  Perl_sv_catpv
-void
-Perl_sv_catpv(pTHXo_ SV* sv, const char* ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catpv(sv, ptr);
-}
-
-#undef  Perl_sv_catpvn
-void
-Perl_sv_catpvn(pTHXo_ SV* sv, const char* ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catpvn(sv, ptr, len);
-}
-
-#undef  Perl_sv_catsv
-void
-Perl_sv_catsv(pTHXo_ SV* dsv, SV* ssv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catsv(dsv, ssv);
-}
-
-#undef  Perl_sv_chop
-void
-Perl_sv_chop(pTHXo_ SV* sv, char* ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_chop(sv, ptr);
-}
-
-#undef  Perl_sv_clear
-void
-Perl_sv_clear(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_clear(sv);
-}
-
-#undef  Perl_sv_cmp
-I32
-Perl_sv_cmp(pTHXo_ SV* sv1, SV* sv2)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_cmp(sv1, sv2);
-}
-
-#undef  Perl_sv_cmp_locale
-I32
-Perl_sv_cmp_locale(pTHXo_ SV* sv1, SV* sv2)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_cmp_locale(sv1, sv2);
-}
-#if defined(USE_LOCALE_COLLATE)
-
-#undef  Perl_sv_collxfrm
-char*
-Perl_sv_collxfrm(pTHXo_ SV* sv, STRLEN* nxp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_collxfrm(sv, nxp);
-}
-#endif
-
-#undef  Perl_sv_compile_2op
-OP*
-Perl_sv_compile_2op(pTHXo_ SV* sv, OP** startp, char* code, AV** avp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_compile_2op(sv, startp, code, avp);
-}
-
-#undef  Perl_getcwd_sv
-int
-Perl_getcwd_sv(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_getcwd_sv(sv);
-}
-
-#undef  Perl_sv_dec
-void
-Perl_sv_dec(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_dec(sv);
-}
-
-#undef  Perl_sv_dump
-void
-Perl_sv_dump(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_dump(sv);
-}
-
-#undef  Perl_sv_derived_from
-bool
-Perl_sv_derived_from(pTHXo_ SV* sv, const char* name)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_derived_from(sv, name);
-}
-
-#undef  Perl_sv_eq
-I32
-Perl_sv_eq(pTHXo_ SV* sv1, SV* sv2)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_eq(sv1, sv2);
-}
-
-#undef  Perl_sv_free
-void
-Perl_sv_free(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_free(sv);
-}
-
-#undef  Perl_sv_gets
-char*
-Perl_sv_gets(pTHXo_ SV* sv, PerlIO* fp, I32 append)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_gets(sv, fp, append);
-}
-
-#undef  Perl_sv_grow
-char*
-Perl_sv_grow(pTHXo_ SV* sv, STRLEN newlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_grow(sv, newlen);
-}
-
-#undef  Perl_sv_inc
-void
-Perl_sv_inc(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_inc(sv);
-}
-
-#undef  Perl_sv_insert
-void
-Perl_sv_insert(pTHXo_ SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_insert(bigsv, offset, len, little, littlelen);
-}
-
-#undef  Perl_sv_isa
-int
-Perl_sv_isa(pTHXo_ SV* sv, const char* name)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_isa(sv, name);
-}
-
-#undef  Perl_sv_isobject
-int
-Perl_sv_isobject(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_isobject(sv);
-}
-
-#undef  Perl_sv_len
-STRLEN
-Perl_sv_len(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_len(sv);
-}
-
-#undef  Perl_sv_len_utf8
-STRLEN
-Perl_sv_len_utf8(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_len_utf8(sv);
-}
-
-#undef  Perl_sv_magic
-void
-Perl_sv_magic(pTHXo_ SV* sv, SV* obj, int how, const char* name, I32 namlen)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_magic(sv, obj, how, name, namlen);
-}
-
-#undef  Perl_sv_mortalcopy
-SV*
-Perl_sv_mortalcopy(pTHXo_ SV* oldsv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_mortalcopy(oldsv);
-}
-
-#undef  Perl_sv_newmortal
-SV*
-Perl_sv_newmortal(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_newmortal();
-}
-
-#undef  Perl_sv_newref
-SV*
-Perl_sv_newref(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_newref(sv);
-}
-
-#undef  Perl_sv_peek
-char*
-Perl_sv_peek(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_peek(sv);
-}
-
-#undef  Perl_sv_pos_u2b
-void
-Perl_sv_pos_u2b(pTHXo_ SV* sv, I32* offsetp, I32* lenp)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_pos_u2b(sv, offsetp, lenp);
-}
-
-#undef  Perl_sv_pos_b2u
-void
-Perl_sv_pos_b2u(pTHXo_ SV* sv, I32* offsetp)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_pos_b2u(sv, offsetp);
-}
-
-#undef  Perl_sv_pvn_force
-char*
-Perl_sv_pvn_force(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvn_force(sv, lp);
-}
-
-#undef  Perl_sv_pvutf8n_force
-char*
-Perl_sv_pvutf8n_force(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvutf8n_force(sv, lp);
-}
-
-#undef  Perl_sv_pvbyten_force
-char*
-Perl_sv_pvbyten_force(pTHXo_ SV* sv, STRLEN* lp)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvbyten_force(sv, lp);
-}
-
-#undef  Perl_sv_reftype
-char*
-Perl_sv_reftype(pTHXo_ SV* sv, int ob)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_reftype(sv, ob);
-}
-
-#undef  Perl_sv_replace
-void
-Perl_sv_replace(pTHXo_ SV* sv, SV* nsv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_replace(sv, nsv);
-}
-
-#undef  Perl_sv_report_used
-void
-Perl_sv_report_used(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_report_used();
-}
-
-#undef  Perl_sv_reset
-void
-Perl_sv_reset(pTHXo_ char* s, HV* stash)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_reset(s, stash);
-}
-
-#undef  Perl_sv_setpvf
-void
-Perl_sv_setpvf(pTHXo_ SV* sv, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_vsetpvf
-void
-Perl_sv_vsetpvf(pTHXo_ SV* sv, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf(sv, pat, args);
-}
-
-#undef  Perl_sv_setiv
-void
-Perl_sv_setiv(pTHXo_ SV* sv, IV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setiv(sv, num);
-}
-
-#undef  Perl_sv_setpviv
-void
-Perl_sv_setpviv(pTHXo_ SV* sv, IV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpviv(sv, num);
-}
-
-#undef  Perl_sv_setuv
-void
-Perl_sv_setuv(pTHXo_ SV* sv, UV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setuv(sv, num);
-}
-
-#undef  Perl_sv_setnv
-void
-Perl_sv_setnv(pTHXo_ SV* sv, NV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setnv(sv, num);
-}
-
-#undef  Perl_sv_setref_iv
-SV*
-Perl_sv_setref_iv(pTHXo_ SV* rv, const char* classname, IV iv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_setref_iv(rv, classname, iv);
-}
-
-#undef  Perl_sv_setref_uv
-SV*
-Perl_sv_setref_uv(pTHXo_ SV* rv, const char* classname, UV uv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_setref_uv(rv, classname, uv);
-}
-
-#undef  Perl_sv_setref_nv
-SV*
-Perl_sv_setref_nv(pTHXo_ SV* rv, const char* classname, NV nv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_setref_nv(rv, classname, nv);
-}
-
-#undef  Perl_sv_setref_pv
-SV*
-Perl_sv_setref_pv(pTHXo_ SV* rv, const char* classname, void* pv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_setref_pv(rv, classname, pv);
-}
-
-#undef  Perl_sv_setref_pvn
-SV*
-Perl_sv_setref_pvn(pTHXo_ SV* rv, const char* classname, char* pv, STRLEN n)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_setref_pvn(rv, classname, pv, n);
-}
-
-#undef  Perl_sv_setpv
-void
-Perl_sv_setpv(pTHXo_ SV* sv, const char* ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpv(sv, ptr);
-}
-
-#undef  Perl_sv_setpvn
-void
-Perl_sv_setpvn(pTHXo_ SV* sv, const char* ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpvn(sv, ptr, len);
-}
-
-#undef  Perl_sv_setsv
-void
-Perl_sv_setsv(pTHXo_ SV* dsv, SV* ssv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setsv(dsv, ssv);
-}
-
-#undef  Perl_sv_taint
-void
-Perl_sv_taint(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_taint(sv);
-}
-
-#undef  Perl_sv_tainted
-bool
-Perl_sv_tainted(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_tainted(sv);
-}
-
-#undef  Perl_sv_unmagic
-int
-Perl_sv_unmagic(pTHXo_ SV* sv, int type)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_unmagic(sv, type);
-}
-
-#undef  Perl_sv_unref
-void
-Perl_sv_unref(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_unref(sv);
-}
-
-#undef  Perl_sv_unref_flags
-void
-Perl_sv_unref_flags(pTHXo_ SV* sv, U32 flags)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_unref_flags(sv, flags);
-}
-
-#undef  Perl_sv_untaint
-void
-Perl_sv_untaint(pTHXo_ SV* sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_untaint(sv);
-}
-
-#undef  Perl_sv_upgrade
-bool
-Perl_sv_upgrade(pTHXo_ SV* sv, U32 mt)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_upgrade(sv, mt);
-}
-
-#undef  Perl_sv_usepvn
-void
-Perl_sv_usepvn(pTHXo_ SV* sv, char* ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_usepvn(sv, ptr, len);
-}
-
-#undef  Perl_sv_vcatpvfn
-void
-Perl_sv_vcatpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, maybe_tainted);
-}
-
-#undef  Perl_sv_vsetpvfn
-void
-Perl_sv_vsetpvfn(pTHXo_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvfn(sv, pat, patlen, args, svargs, svmax, maybe_tainted);
-}
-
-#undef  Perl_str_to_version
-NV
-Perl_str_to_version(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_str_to_version(sv);
-}
-
-#undef  Perl_swash_init
-SV*
-Perl_swash_init(pTHXo_ char* pkg, char* name, SV* listsv, I32 minbits, I32 none)
-{
-    return ((CPerlObj*)pPerl)->Perl_swash_init(pkg, name, listsv, minbits, none);
-}
-
-#undef  Perl_swash_fetch
-UV
-Perl_swash_fetch(pTHXo_ SV *sv, U8 *ptr, bool do_utf8)
-{
-    return ((CPerlObj*)pPerl)->Perl_swash_fetch(sv, ptr, do_utf8);
-}
-
-#undef  Perl_taint_env
-void
-Perl_taint_env(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_taint_env();
-}
-
-#undef  Perl_taint_proper
-void
-Perl_taint_proper(pTHXo_ const char* f, const char* s)
-{
-    ((CPerlObj*)pPerl)->Perl_taint_proper(f, s);
-}
-
-#undef  Perl_to_utf8_lower
-UV
-Perl_to_utf8_lower(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_utf8_lower(p);
-}
-
-#undef  Perl_to_utf8_upper
-UV
-Perl_to_utf8_upper(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_utf8_upper(p);
-}
-
-#undef  Perl_to_utf8_title
-UV
-Perl_to_utf8_title(pTHXo_ U8 *p)
-{
-    return ((CPerlObj*)pPerl)->Perl_to_utf8_title(p);
-}
-#if defined(UNLINK_ALL_VERSIONS)
-
-#undef  Perl_unlnk
-I32
-Perl_unlnk(pTHXo_ char* f)
-{
-    return ((CPerlObj*)pPerl)->Perl_unlnk(f);
-}
-#endif
-#if defined(USE_5005THREADS)
-
-#undef  Perl_unlock_condpair
-void
-Perl_unlock_condpair(pTHXo_ void* svv)
-{
-    ((CPerlObj*)pPerl)->Perl_unlock_condpair(svv);
-}
-#endif
-
-#undef  Perl_unsharepvn
-void
-Perl_unsharepvn(pTHXo_ const char* sv, I32 len, U32 hash)
-{
-    ((CPerlObj*)pPerl)->Perl_unsharepvn(sv, len, hash);
-}
-
-#undef  Perl_utf16_to_utf8
-U8*
-Perl_utf16_to_utf8(pTHXo_ U8* p, U8 *d, I32 bytelen, I32 *newlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf16_to_utf8(p, d, bytelen, newlen);
-}
-
-#undef  Perl_utf16_to_utf8_reversed
-U8*
-Perl_utf16_to_utf8_reversed(pTHXo_ U8* p, U8 *d, I32 bytelen, I32 *newlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf16_to_utf8_reversed(p, d, bytelen, newlen);
-}
-
-#undef  Perl_utf8_length
-STRLEN
-Perl_utf8_length(pTHXo_ U8* s, U8 *e)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8_length(s, e);
-}
-
-#undef  Perl_utf8_distance
-IV
-Perl_utf8_distance(pTHXo_ U8 *a, U8 *b)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8_distance(a, b);
-}
-
-#undef  Perl_utf8_hop
-U8*
-Perl_utf8_hop(pTHXo_ U8 *s, I32 off)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8_hop(s, off);
-}
-
-#undef  Perl_utf8_to_bytes
-U8*
-Perl_utf8_to_bytes(pTHXo_ U8 *s, STRLEN *len)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8_to_bytes(s, len);
-}
-
-#undef  Perl_bytes_from_utf8
-U8*
-Perl_bytes_from_utf8(pTHXo_ U8 *s, STRLEN *len, bool *is_utf8)
-{
-    return ((CPerlObj*)pPerl)->Perl_bytes_from_utf8(s, len, is_utf8);
-}
-
-#undef  Perl_bytes_to_utf8
-U8*
-Perl_bytes_to_utf8(pTHXo_ U8 *s, STRLEN *len)
-{
-    return ((CPerlObj*)pPerl)->Perl_bytes_to_utf8(s, len);
-}
-
-#undef  Perl_utf8_to_uvchr
-UV
-Perl_utf8_to_uvchr(pTHXo_ U8 *s, STRLEN* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8_to_uvchr(s, retlen);
-}
-
-#undef  Perl_utf8_to_uvuni
-UV
-Perl_utf8_to_uvuni(pTHXo_ U8 *s, STRLEN* retlen)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8_to_uvuni(s, retlen);
-}
-
-#undef  Perl_utf8n_to_uvchr
-UV
-Perl_utf8n_to_uvchr(pTHXo_ U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8n_to_uvchr(s, curlen, retlen, flags);
-}
-
-#undef  Perl_utf8n_to_uvuni
-UV
-Perl_utf8n_to_uvuni(pTHXo_ U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_utf8n_to_uvuni(s, curlen, retlen, flags);
-}
-
-#undef  Perl_uvchr_to_utf8
-U8*
-Perl_uvchr_to_utf8(pTHXo_ U8 *d, UV uv)
-{
-    return ((CPerlObj*)pPerl)->Perl_uvchr_to_utf8(d, uv);
-}
-
-#undef  Perl_uvuni_to_utf8
-U8*
-Perl_uvuni_to_utf8(pTHXo_ U8 *d, UV uv)
-{
-    return ((CPerlObj*)pPerl)->Perl_uvuni_to_utf8(d, uv);
-}
-
-#undef  Perl_warn
-void
-Perl_warn(pTHXo_ const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vwarn(pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_vwarn
-void
-Perl_vwarn(pTHXo_ const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_vwarn(pat, args);
-}
-
-#undef  Perl_warner
-void
-Perl_warner(pTHXo_ U32 err, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_vwarner(err, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_vwarner
-void
-Perl_vwarner(pTHXo_ U32 err, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_vwarner(err, pat, args);
-}
-
-#undef  Perl_whichsig
-I32
-Perl_whichsig(pTHXo_ char* sig)
-{
-    return ((CPerlObj*)pPerl)->Perl_whichsig(sig);
-}
-#ifdef USE_PURE_BISON
-#endif
-#if defined(MYMALLOC)
-
-#undef  Perl_dump_mstats
-void
-Perl_dump_mstats(pTHXo_ char* s)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_mstats(s);
-}
-
-#undef  Perl_get_mstats
-int
-Perl_get_mstats(pTHXo_ perl_mstats_t *buf, int buflen, int level)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_mstats(buf, buflen, level);
-}
-#endif
-
-#undef  Perl_safesysmalloc
-Malloc_t
-Perl_safesysmalloc(MEM_SIZE nbytes)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safesysmalloc(nbytes);
-}
-
-#undef  Perl_safesyscalloc
-Malloc_t
-Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safesyscalloc(elements, size);
-}
-
-#undef  Perl_safesysrealloc
-Malloc_t
-Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safesysrealloc(where, nbytes);
-}
-
-#undef  Perl_safesysfree
-Free_t
-Perl_safesysfree(Malloc_t where)
-{
-    dTHXo;
-    ((CPerlObj*)pPerl)->Perl_safesysfree(where);
-}
-#if defined(LEAKTEST)
-
-#undef  Perl_safexmalloc
-Malloc_t
-Perl_safexmalloc(I32 x, MEM_SIZE size)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safexmalloc(x, size);
-}
-
-#undef  Perl_safexcalloc
-Malloc_t
-Perl_safexcalloc(I32 x, MEM_SIZE elements, MEM_SIZE size)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safexcalloc(x, elements, size);
-}
-
-#undef  Perl_safexrealloc
-Malloc_t
-Perl_safexrealloc(Malloc_t where, MEM_SIZE size)
-{
-    dTHXo;
-    return ((CPerlObj*)pPerl)->Perl_safexrealloc(where, size);
-}
-
-#undef  Perl_safexfree
-void
-Perl_safexfree(Malloc_t where)
-{
-    dTHXo;
-    ((CPerlObj*)pPerl)->Perl_safexfree(where);
-}
-#endif
-#if defined(PERL_GLOBAL_STRUCT)
-
-#undef  Perl_GetVars
-struct perl_vars *
-Perl_GetVars(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_GetVars();
-}
-#endif
-
-#undef  Perl_runops_standard
-int
-Perl_runops_standard(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_runops_standard();
-}
-
-#undef  Perl_runops_debug
-int
-Perl_runops_debug(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_runops_debug();
-}
-#if defined(USE_5005THREADS)
-
-#undef  Perl_sv_lock
-SV*
-Perl_sv_lock(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_lock(sv);
-}
-#endif
-
-#undef  Perl_sv_catpvf_mg
-void
-Perl_sv_catpvf_mg(pTHXo_ SV *sv, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf_mg(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_vcatpvf_mg
-void
-Perl_sv_vcatpvf_mg(pTHXo_ SV* sv, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vcatpvf_mg(sv, pat, args);
-}
-
-#undef  Perl_sv_catpv_mg
-void
-Perl_sv_catpv_mg(pTHXo_ SV *sv, const char *ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catpv_mg(sv, ptr);
-}
-
-#undef  Perl_sv_catpvn_mg
-void
-Perl_sv_catpvn_mg(pTHXo_ SV *sv, const char *ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catpvn_mg(sv, ptr, len);
-}
-
-#undef  Perl_sv_catsv_mg
-void
-Perl_sv_catsv_mg(pTHXo_ SV *dstr, SV *sstr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catsv_mg(dstr, sstr);
-}
-
-#undef  Perl_sv_setpvf_mg
-void
-Perl_sv_setpvf_mg(pTHXo_ SV *sv, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf_mg(sv, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_sv_vsetpvf_mg
-void
-Perl_sv_vsetpvf_mg(pTHXo_ SV* sv, const char* pat, va_list* args)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_vsetpvf_mg(sv, pat, args);
-}
-
-#undef  Perl_sv_setiv_mg
-void
-Perl_sv_setiv_mg(pTHXo_ SV *sv, IV i)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setiv_mg(sv, i);
-}
-
-#undef  Perl_sv_setpviv_mg
-void
-Perl_sv_setpviv_mg(pTHXo_ SV *sv, IV iv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpviv_mg(sv, iv);
-}
-
-#undef  Perl_sv_setuv_mg
-void
-Perl_sv_setuv_mg(pTHXo_ SV *sv, UV u)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setuv_mg(sv, u);
-}
-
-#undef  Perl_sv_setnv_mg
-void
-Perl_sv_setnv_mg(pTHXo_ SV *sv, NV num)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setnv_mg(sv, num);
-}
-
-#undef  Perl_sv_setpv_mg
-void
-Perl_sv_setpv_mg(pTHXo_ SV *sv, const char *ptr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpv_mg(sv, ptr);
-}
-
-#undef  Perl_sv_setpvn_mg
-void
-Perl_sv_setpvn_mg(pTHXo_ SV *sv, const char *ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setpvn_mg(sv, ptr, len);
-}
-
-#undef  Perl_sv_setsv_mg
-void
-Perl_sv_setsv_mg(pTHXo_ SV *dstr, SV *sstr)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setsv_mg(dstr, sstr);
-}
-
-#undef  Perl_sv_usepvn_mg
-void
-Perl_sv_usepvn_mg(pTHXo_ SV *sv, char *ptr, STRLEN len)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_usepvn_mg(sv, ptr, len);
-}
-
-#undef  Perl_get_vtbl
-MGVTBL*
-Perl_get_vtbl(pTHXo_ int vtbl_id)
-{
-    return ((CPerlObj*)pPerl)->Perl_get_vtbl(vtbl_id);
-}
-
-#undef  Perl_dump_indent
-void
-Perl_dump_indent(pTHXo_ I32 level, PerlIO *file, const char* pat, ...)
-{
-    va_list args;
-    va_start(args, pat);
-    ((CPerlObj*)pPerl)->Perl_dump_vindent(level, file, pat, &args);
-    va_end(args);
-}
-
-#undef  Perl_dump_vindent
-void
-Perl_dump_vindent(pTHXo_ I32 level, PerlIO *file, const char* pat, va_list *args)
-{
-    ((CPerlObj*)pPerl)->Perl_dump_vindent(level, file, pat, args);
-}
-
-#undef  Perl_do_gv_dump
-void
-Perl_do_gv_dump(pTHXo_ I32 level, PerlIO *file, char *name, GV *sv)
-{
-    ((CPerlObj*)pPerl)->Perl_do_gv_dump(level, file, name, sv);
-}
-
-#undef  Perl_do_gvgv_dump
-void
-Perl_do_gvgv_dump(pTHXo_ I32 level, PerlIO *file, char *name, GV *sv)
-{
-    ((CPerlObj*)pPerl)->Perl_do_gvgv_dump(level, file, name, sv);
-}
-
-#undef  Perl_do_hv_dump
-void
-Perl_do_hv_dump(pTHXo_ I32 level, PerlIO *file, char *name, HV *sv)
-{
-    ((CPerlObj*)pPerl)->Perl_do_hv_dump(level, file, name, sv);
-}
-
-#undef  Perl_do_magic_dump
-void
-Perl_do_magic_dump(pTHXo_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
-{
-    ((CPerlObj*)pPerl)->Perl_do_magic_dump(level, file, mg, nest, maxnest, dumpops, pvlim);
-}
-
-#undef  Perl_do_op_dump
-void
-Perl_do_op_dump(pTHXo_ I32 level, PerlIO *file, OP *o)
-{
-    ((CPerlObj*)pPerl)->Perl_do_op_dump(level, file, o);
-}
-
-#undef  Perl_do_pmop_dump
-void
-Perl_do_pmop_dump(pTHXo_ I32 level, PerlIO *file, PMOP *pm)
-{
-    ((CPerlObj*)pPerl)->Perl_do_pmop_dump(level, file, pm);
-}
-
-#undef  Perl_do_sv_dump
-void
-Perl_do_sv_dump(pTHXo_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
-{
-    ((CPerlObj*)pPerl)->Perl_do_sv_dump(level, file, sv, nest, maxnest, dumpops, pvlim);
-}
-
-#undef  Perl_magic_dump
-void
-Perl_magic_dump(pTHXo_ MAGIC *mg)
-{
-    ((CPerlObj*)pPerl)->Perl_magic_dump(mg);
-}
-#if defined(PERL_FLEXIBLE_EXCEPTIONS)
-
-#undef  Perl_default_protect
-void*
-Perl_default_protect(pTHXo_ volatile JMPENV *je, int *excpt, protect_body_t body, ...)
-{
-    void* retval;
-    va_list args;
-    va_start(args, body);
-    retval = ((CPerlObj*)pPerl)->Perl_vdefault_protect(je, excpt, body, &args);
-    va_end(args);
-    return retval;
-
-}
-
-#undef  Perl_vdefault_protect
-void*
-Perl_vdefault_protect(pTHXo_ volatile JMPENV *je, int *excpt, protect_body_t body, va_list *args)
-{
-    return ((CPerlObj*)pPerl)->Perl_vdefault_protect(je, excpt, body, args);
-}
-#endif
-
-#undef  Perl_reginitcolors
-void
-Perl_reginitcolors(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_reginitcolors();
-}
-
-#undef  Perl_sv_2pv_nolen
-char*
-Perl_sv_2pv_nolen(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pv_nolen(sv);
-}
-
-#undef  Perl_sv_2pvutf8_nolen
-char*
-Perl_sv_2pvutf8_nolen(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pvutf8_nolen(sv);
-}
-
-#undef  Perl_sv_2pvbyte_nolen
-char*
-Perl_sv_2pvbyte_nolen(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pvbyte_nolen(sv);
-}
-
-#undef  Perl_sv_pv
-char*
-Perl_sv_pv(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pv(sv);
-}
-
-#undef  Perl_sv_pvutf8
-char*
-Perl_sv_pvutf8(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvutf8(sv);
-}
-
-#undef  Perl_sv_pvbyte
-char*
-Perl_sv_pvbyte(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvbyte(sv);
-}
-
-#undef  Perl_sv_utf8_upgrade
-STRLEN
-Perl_sv_utf8_upgrade(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_utf8_upgrade(sv);
-}
-
-#undef  Perl_sv_utf8_downgrade
-bool
-Perl_sv_utf8_downgrade(pTHXo_ SV *sv, bool fail_ok)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_utf8_downgrade(sv, fail_ok);
-}
-
-#undef  Perl_sv_utf8_encode
-void
-Perl_sv_utf8_encode(pTHXo_ SV *sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_utf8_encode(sv);
-}
-
-#undef  Perl_sv_utf8_decode
-bool
-Perl_sv_utf8_decode(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_utf8_decode(sv);
-}
-
-#undef  Perl_sv_force_normal
-void
-Perl_sv_force_normal(pTHXo_ SV *sv)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_force_normal(sv);
-}
-
-#undef  Perl_sv_force_normal_flags
-void
-Perl_sv_force_normal_flags(pTHXo_ SV *sv, U32 flags)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_force_normal_flags(sv, flags);
-}
-
-#undef  Perl_tmps_grow
-void
-Perl_tmps_grow(pTHXo_ I32 n)
-{
-    ((CPerlObj*)pPerl)->Perl_tmps_grow(n);
-}
-
-#undef  Perl_sv_rvweaken
-SV*
-Perl_sv_rvweaken(pTHXo_ SV *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_rvweaken(sv);
-}
-
-#undef  Perl_newANONATTRSUB
-OP*
-Perl_newANONATTRSUB(pTHXo_ I32 floor, OP *proto, OP *attrs, OP *block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newANONATTRSUB(floor, proto, attrs, block);
-}
-
-#undef  Perl_newATTRSUB
-CV*
-Perl_newATTRSUB(pTHXo_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
-{
-    return ((CPerlObj*)pPerl)->Perl_newATTRSUB(floor, o, proto, attrs, block);
-}
-
-#undef  Perl_newMYSUB
-void
-Perl_newMYSUB(pTHXo_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
-{
-    ((CPerlObj*)pPerl)->Perl_newMYSUB(floor, o, proto, attrs, block);
-}
-#if defined(USE_ITHREADS)
-
-#undef  Perl_cx_dup
-PERL_CONTEXT*
-Perl_cx_dup(pTHXo_ PERL_CONTEXT* cx, I32 ix, I32 max, clone_params* param)
-{
-    return ((CPerlObj*)pPerl)->Perl_cx_dup(cx, ix, max, param);
-}
-
-#undef  Perl_si_dup
-PERL_SI*
-Perl_si_dup(pTHXo_ PERL_SI* si, clone_params* param)
-{
-    return ((CPerlObj*)pPerl)->Perl_si_dup(si, param);
-}
-
-#undef  Perl_ss_dup
-ANY*
-Perl_ss_dup(pTHXo_ PerlInterpreter* proto_perl, clone_params* param)
-{
-    return ((CPerlObj*)pPerl)->Perl_ss_dup(proto_perl, param);
-}
-
-#undef  Perl_any_dup
-void*
-Perl_any_dup(pTHXo_ void* v, PerlInterpreter* proto_perl)
-{
-    return ((CPerlObj*)pPerl)->Perl_any_dup(v, proto_perl);
-}
-
-#undef  Perl_he_dup
-HE*
-Perl_he_dup(pTHXo_ HE* e, bool shared, clone_params* param)
-{
-    return ((CPerlObj*)pPerl)->Perl_he_dup(e, shared, param);
-}
-
-#undef  Perl_re_dup
-REGEXP*
-Perl_re_dup(pTHXo_ REGEXP* r, clone_params* param)
-{
-    return ((CPerlObj*)pPerl)->Perl_re_dup(r, param);
-}
-
-#undef  Perl_fp_dup
-PerlIO*
-Perl_fp_dup(pTHXo_ PerlIO* fp, char type)
-{
-    return ((CPerlObj*)pPerl)->Perl_fp_dup(fp, type);
-}
-
-#undef  Perl_dirp_dup
-DIR*
-Perl_dirp_dup(pTHXo_ DIR* dp)
-{
-    return ((CPerlObj*)pPerl)->Perl_dirp_dup(dp);
-}
-
-#undef  Perl_gp_dup
-GP*
-Perl_gp_dup(pTHXo_ GP* gp, clone_params* param)
-{
-    return ((CPerlObj*)pPerl)->Perl_gp_dup(gp, param);
-}
-
-#undef  Perl_mg_dup
-MAGIC*
-Perl_mg_dup(pTHXo_ MAGIC* mg, clone_params* param)
-{
-    return ((CPerlObj*)pPerl)->Perl_mg_dup(mg, param);
-}
-
-#undef  Perl_sv_dup
-SV*
-Perl_sv_dup(pTHXo_ SV* sstr, clone_params* param)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_dup(sstr, param);
-}
-#if defined(HAVE_INTERP_INTERN)
-
-#undef  Perl_sys_intern_dup
-void
-Perl_sys_intern_dup(pTHXo_ struct interp_intern* src, struct interp_intern* dst)
-{
-    ((CPerlObj*)pPerl)->Perl_sys_intern_dup(src, dst);
-}
-#endif
-
-#undef  Perl_ptr_table_new
-PTR_TBL_t*
-Perl_ptr_table_new(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_ptr_table_new();
-}
-
-#undef  Perl_ptr_table_fetch
-void*
-Perl_ptr_table_fetch(pTHXo_ PTR_TBL_t *tbl, void *sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_ptr_table_fetch(tbl, sv);
-}
-
-#undef  Perl_ptr_table_store
-void
-Perl_ptr_table_store(pTHXo_ PTR_TBL_t *tbl, void *oldsv, void *newsv)
-{
-    ((CPerlObj*)pPerl)->Perl_ptr_table_store(tbl, oldsv, newsv);
-}
-
-#undef  Perl_ptr_table_split
-void
-Perl_ptr_table_split(pTHXo_ PTR_TBL_t *tbl)
-{
-    ((CPerlObj*)pPerl)->Perl_ptr_table_split(tbl);
-}
-
-#undef  Perl_ptr_table_clear
-void
-Perl_ptr_table_clear(pTHXo_ PTR_TBL_t *tbl)
-{
-    ((CPerlObj*)pPerl)->Perl_ptr_table_clear(tbl);
-}
-
-#undef  Perl_ptr_table_free
-void
-Perl_ptr_table_free(pTHXo_ PTR_TBL_t *tbl)
-{
-    ((CPerlObj*)pPerl)->Perl_ptr_table_free(tbl);
-}
-#endif
-#if defined(HAVE_INTERP_INTERN)
-
-#undef  Perl_sys_intern_clear
-void
-Perl_sys_intern_clear(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_sys_intern_clear();
-}
-
-#undef  Perl_sys_intern_init
-void
-Perl_sys_intern_init(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_sys_intern_init();
-}
-#endif
-#if defined(PERL_CUSTOM_OPS)
-
-#undef  Perl_custom_op_name
-char *
-Perl_custom_op_name(pTHXo_ OP* op)
-{
-    return ((CPerlObj*)pPerl)->Perl_custom_op_name(op);
-}
-
-#undef  Perl_custom_op_desc
-char *
-Perl_custom_op_desc(pTHXo_ OP* op)
-{
-    return ((CPerlObj*)pPerl)->Perl_custom_op_desc(op);
-}
-#endif
-#if defined(PERL_OBJECT)
-#else
-#endif
-#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#  if defined(DEBUG_CLOSURES)
-#  endif
-#  if defined(PL_OP_SLAB_ALLOC)
-#  endif
-#endif
-#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
-#  if defined(IAMSUID)
-#  endif
-#if defined(PERL_FLEXIBLE_EXCEPTIONS)
-#endif
-#  if defined(USE_5005THREADS)
-#  endif
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-#if defined(PERL_FLEXIBLE_EXCEPTIONS)
-#endif
-#endif
-#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
-#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-#  endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
-#  ifdef DEBUGGING
-#  endif
-#endif
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
-#   ifdef DEBUGGING
-#   endif
-#endif
-#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(USE_ITHREADS) && (defined(PERL_IN_SHAREDSV_C) || defined(PERL_DECL_PROT))
-
-#undef  Perl_sharedsv_init
-void
-Perl_sharedsv_init(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_sharedsv_init();
-}
-
-#undef  Perl_sharedsv_new
-shared_sv*
-Perl_sharedsv_new(pTHXo)
-{
-    return ((CPerlObj*)pPerl)->Perl_sharedsv_new();
-}
-
-#undef  Perl_sharedsv_find
-shared_sv*
-Perl_sharedsv_find(pTHXo_ SV* sv)
-{
-    return ((CPerlObj*)pPerl)->Perl_sharedsv_find(sv);
-}
-
-#undef  Perl_sharedsv_lock
-void
-Perl_sharedsv_lock(pTHXo_ shared_sv* ssv)
-{
-    ((CPerlObj*)pPerl)->Perl_sharedsv_lock(ssv);
-}
-
-#undef  Perl_sharedsv_unlock
-void
-Perl_sharedsv_unlock(pTHXo_ shared_sv* ssv)
-{
-    ((CPerlObj*)pPerl)->Perl_sharedsv_unlock(ssv);
-}
-
-#undef  Perl_sharedsv_thrcnt_inc
-void
-Perl_sharedsv_thrcnt_inc(pTHXo_ shared_sv* ssv)
-{
-    ((CPerlObj*)pPerl)->Perl_sharedsv_thrcnt_inc(ssv);
-}
-
-#undef  Perl_sharedsv_thrcnt_dec
-void
-Perl_sharedsv_thrcnt_dec(pTHXo_ shared_sv* ssv)
-{
-    ((CPerlObj*)pPerl)->Perl_sharedsv_thrcnt_dec(ssv);
-}
-#endif
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#  ifdef DEBUGGING
-#  endif
-#  if !defined(NV_PRESERVES_UV)
-#  endif
-#  if defined(USE_ITHREADS)
-#  endif
-#endif
-#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-#  if defined(DEBUGGING)
-#  endif
-#if 0
-#endif
-#  if defined(CRIPPLED_CC)
-#  endif
-#  if defined(PERL_CR_FILTER)
-#  endif
-#endif
-#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#  if defined(LEAKTEST)
-#  endif
-#endif
-#if defined(PERL_OBJECT)
-#endif
-
-#undef  Perl_sv_setsv_flags
-void
-Perl_sv_setsv_flags(pTHXo_ SV* dsv, SV* ssv, I32 flags)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_setsv_flags(dsv, ssv, flags);
-}
-
-#undef  Perl_sv_catpvn_flags
-void
-Perl_sv_catpvn_flags(pTHXo_ SV* sv, const char* ptr, STRLEN len, I32 flags)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catpvn_flags(sv, ptr, len, flags);
-}
-
-#undef  Perl_sv_catsv_flags
-void
-Perl_sv_catsv_flags(pTHXo_ SV* dsv, SV* ssv, I32 flags)
-{
-    ((CPerlObj*)pPerl)->Perl_sv_catsv_flags(dsv, ssv, flags);
-}
-
-#undef  Perl_sv_utf8_upgrade_flags
-STRLEN
-Perl_sv_utf8_upgrade_flags(pTHXo_ SV *sv, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_utf8_upgrade_flags(sv, flags);
-}
-
-#undef  Perl_sv_pvn_force_flags
-char*
-Perl_sv_pvn_force_flags(pTHXo_ SV* sv, STRLEN* lp, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_pvn_force_flags(sv, lp, flags);
-}
-
-#undef  Perl_sv_2pv_flags
-char*
-Perl_sv_2pv_flags(pTHXo_ SV* sv, STRLEN* lp, I32 flags)
-{
-    return ((CPerlObj*)pPerl)->Perl_sv_2pv_flags(sv, lp, flags);
-}
-
-#undef  Perl_my_atof2
-char*
-Perl_my_atof2(pTHXo_ const char *s, NV* value)
-{
-    return ((CPerlObj*)pPerl)->Perl_my_atof2(s, value);
-}
-
-#undef Perl_fprintf_nocontext
-int
-Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
-{
-    dTHXo;
-    va_list(arglist);
-    va_start(arglist, format);
-    return (*PL_StdIO->pVprintf)(PL_StdIO, stream, format, arglist);
-}
-
-#undef Perl_printf_nocontext
-int
-Perl_printf_nocontext(const char *format, ...)
-{
-    dTHXo;
-    va_list(arglist);
-    va_start(arglist, format);
-    return (*PL_StdIO->pVprintf)(PL_StdIO, PerlIO_stdout(), format, arglist);
-}
-
 END_EXTERN_C
 
-#endif /* PERL_OBJECT */
-#endif /* PERL_OBJECT || MULTIPLICITY */
+#endif /* MULTIPLICITY */
index 92d4852..355bf6f 100644 (file)
--- a/perlapi.h
+++ b/perlapi.h
@@ -7,14 +7,7 @@
 #ifndef __perlapi_h__
 #define __perlapi_h__
 
-#if defined(PERL_OBJECT) || defined (MULTIPLICITY)
-
-#if defined(PERL_OBJECT)
-#  undef  aTHXo
-#  define aTHXo                        pPerl
-#  undef  aTHXo_
-#  define aTHXo_               aTHXo,
-#endif /* PERL_OBJECT */
+#if defined (MULTIPLICITY)
 
 START_EXTERN_C
 
@@ -22,9 +15,9 @@ START_EXTERN_C
 #undef PERLVARA
 #undef PERLVARI
 #undef PERLVARIC
-#define PERLVAR(v,t)   EXTERN_C t* Perl_##v##_ptr(pTHXo);
+#define PERLVAR(v,t)   EXTERN_C t* Perl_##v##_ptr(pTHX);
 #define PERLVARA(v,n,t)        typedef t PL_##v##_t[n];                        \
-                       EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHXo);
+                       EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX);
 #define PERLVARI(v,t,i)        PERLVAR(v,t)
 #define PERLVARIC(v,t,i) PERLVAR(v, const t)
 
@@ -74,850 +67,850 @@ EXT void *PL_force_link_funcs[] = {
 };
 #endif /* DOINIT */
 
-START_EXTERN_C
+END_EXTERN_C
 
 #endif /* PERL_NO_FORCE_LINK */
 
 #else  /* !PERL_CORE */
 
 #undef  PL_Argv
-#define PL_Argv                        (*Perl_IArgv_ptr(aTHXo))
+#define PL_Argv                        (*Perl_IArgv_ptr(aTHX))
 #undef  PL_Cmd
-#define PL_Cmd                 (*Perl_ICmd_ptr(aTHXo))
+#define PL_Cmd                 (*Perl_ICmd_ptr(aTHX))
 #undef  PL_DBcv
-#define PL_DBcv                        (*Perl_IDBcv_ptr(aTHXo))
+#define PL_DBcv                        (*Perl_IDBcv_ptr(aTHX))
 #undef  PL_DBgv
-#define PL_DBgv                        (*Perl_IDBgv_ptr(aTHXo))
+#define PL_DBgv                        (*Perl_IDBgv_ptr(aTHX))
 #undef  PL_DBline
-#define PL_DBline              (*Perl_IDBline_ptr(aTHXo))
+#define PL_DBline              (*Perl_IDBline_ptr(aTHX))
 #undef  PL_DBsignal
-#define PL_DBsignal            (*Perl_IDBsignal_ptr(aTHXo))
+#define PL_DBsignal            (*Perl_IDBsignal_ptr(aTHX))
 #undef  PL_DBsingle
-#define PL_DBsingle            (*Perl_IDBsingle_ptr(aTHXo))
+#define PL_DBsingle            (*Perl_IDBsingle_ptr(aTHX))
 #undef  PL_DBsub
-#define PL_DBsub               (*Perl_IDBsub_ptr(aTHXo))
+#define PL_DBsub               (*Perl_IDBsub_ptr(aTHX))
 #undef  PL_DBtrace
-#define PL_DBtrace             (*Perl_IDBtrace_ptr(aTHXo))
+#define PL_DBtrace             (*Perl_IDBtrace_ptr(aTHX))
 #undef  PL_Dir
-#define PL_Dir                 (*Perl_IDir_ptr(aTHXo))
+#define PL_Dir                 (*Perl_IDir_ptr(aTHX))
 #undef  PL_Env
-#define PL_Env                 (*Perl_IEnv_ptr(aTHXo))
+#define PL_Env                 (*Perl_IEnv_ptr(aTHX))
 #undef  PL_LIO
-#define PL_LIO                 (*Perl_ILIO_ptr(aTHXo))
+#define PL_LIO                 (*Perl_ILIO_ptr(aTHX))
 #undef  PL_Mem
-#define PL_Mem                 (*Perl_IMem_ptr(aTHXo))
+#define PL_Mem                 (*Perl_IMem_ptr(aTHX))
 #undef  PL_MemParse
-#define PL_MemParse            (*Perl_IMemParse_ptr(aTHXo))
+#define PL_MemParse            (*Perl_IMemParse_ptr(aTHX))
 #undef  PL_MemShared
-#define PL_MemShared           (*Perl_IMemShared_ptr(aTHXo))
+#define PL_MemShared           (*Perl_IMemShared_ptr(aTHX))
 #undef  PL_Proc
-#define PL_Proc                        (*Perl_IProc_ptr(aTHXo))
+#define PL_Proc                        (*Perl_IProc_ptr(aTHX))
 #undef  PL_Sock
-#define PL_Sock                        (*Perl_ISock_ptr(aTHXo))
+#define PL_Sock                        (*Perl_ISock_ptr(aTHX))
 #undef  PL_StdIO
-#define PL_StdIO               (*Perl_IStdIO_ptr(aTHXo))
+#define PL_StdIO               (*Perl_IStdIO_ptr(aTHX))
 #undef  PL_amagic_generation
-#define PL_amagic_generation   (*Perl_Iamagic_generation_ptr(aTHXo))
+#define PL_amagic_generation   (*Perl_Iamagic_generation_ptr(aTHX))
 #undef  PL_an
-#define PL_an                  (*Perl_Ian_ptr(aTHXo))
+#define PL_an                  (*Perl_Ian_ptr(aTHX))
 #undef  PL_argvgv
-#define PL_argvgv              (*Perl_Iargvgv_ptr(aTHXo))
+#define PL_argvgv              (*Perl_Iargvgv_ptr(aTHX))
 #undef  PL_argvout_stack
-#define PL_argvout_stack       (*Perl_Iargvout_stack_ptr(aTHXo))
+#define PL_argvout_stack       (*Perl_Iargvout_stack_ptr(aTHX))
 #undef  PL_argvoutgv
-#define PL_argvoutgv           (*Perl_Iargvoutgv_ptr(aTHXo))
+#define PL_argvoutgv           (*Perl_Iargvoutgv_ptr(aTHX))
 #undef  PL_basetime
-#define PL_basetime            (*Perl_Ibasetime_ptr(aTHXo))
+#define PL_basetime            (*Perl_Ibasetime_ptr(aTHX))
 #undef  PL_beginav
-#define PL_beginav             (*Perl_Ibeginav_ptr(aTHXo))
+#define PL_beginav             (*Perl_Ibeginav_ptr(aTHX))
 #undef  PL_beginav_save
-#define PL_beginav_save                (*Perl_Ibeginav_save_ptr(aTHXo))
+#define PL_beginav_save                (*Perl_Ibeginav_save_ptr(aTHX))
 #undef  PL_bitcount
-#define PL_bitcount            (*Perl_Ibitcount_ptr(aTHXo))
+#define PL_bitcount            (*Perl_Ibitcount_ptr(aTHX))
 #undef  PL_bufend
-#define PL_bufend              (*Perl_Ibufend_ptr(aTHXo))
+#define PL_bufend              (*Perl_Ibufend_ptr(aTHX))
 #undef  PL_bufptr
-#define PL_bufptr              (*Perl_Ibufptr_ptr(aTHXo))
+#define PL_bufptr              (*Perl_Ibufptr_ptr(aTHX))
 #undef  PL_checkav
-#define PL_checkav             (*Perl_Icheckav_ptr(aTHXo))
+#define PL_checkav             (*Perl_Icheckav_ptr(aTHX))
 #undef  PL_collation_ix
-#define PL_collation_ix                (*Perl_Icollation_ix_ptr(aTHXo))
+#define PL_collation_ix                (*Perl_Icollation_ix_ptr(aTHX))
 #undef  PL_collation_name
-#define PL_collation_name      (*Perl_Icollation_name_ptr(aTHXo))
+#define PL_collation_name      (*Perl_Icollation_name_ptr(aTHX))
 #undef  PL_collation_standard
-#define PL_collation_standard  (*Perl_Icollation_standard_ptr(aTHXo))
+#define PL_collation_standard  (*Perl_Icollation_standard_ptr(aTHX))
 #undef  PL_collxfrm_base
-#define PL_collxfrm_base       (*Perl_Icollxfrm_base_ptr(aTHXo))
+#define PL_collxfrm_base       (*Perl_Icollxfrm_base_ptr(aTHX))
 #undef  PL_collxfrm_mult
-#define PL_collxfrm_mult       (*Perl_Icollxfrm_mult_ptr(aTHXo))
+#define PL_collxfrm_mult       (*Perl_Icollxfrm_mult_ptr(aTHX))
 #undef  PL_compcv
-#define PL_compcv              (*Perl_Icompcv_ptr(aTHXo))
+#define PL_compcv              (*Perl_Icompcv_ptr(aTHX))
 #undef  PL_compiling
-#define PL_compiling           (*Perl_Icompiling_ptr(aTHXo))
+#define PL_compiling           (*Perl_Icompiling_ptr(aTHX))
 #undef  PL_comppad
-#define PL_comppad             (*Perl_Icomppad_ptr(aTHXo))
+#define PL_comppad             (*Perl_Icomppad_ptr(aTHX))
 #undef  PL_comppad_name
-#define PL_comppad_name                (*Perl_Icomppad_name_ptr(aTHXo))
+#define PL_comppad_name                (*Perl_Icomppad_name_ptr(aTHX))
 #undef  PL_comppad_name_fill
-#define PL_comppad_name_fill   (*Perl_Icomppad_name_fill_ptr(aTHXo))
+#define PL_comppad_name_fill   (*Perl_Icomppad_name_fill_ptr(aTHX))
 #undef  PL_comppad_name_floor
-#define PL_comppad_name_floor  (*Perl_Icomppad_name_floor_ptr(aTHXo))
+#define PL_comppad_name_floor  (*Perl_Icomppad_name_floor_ptr(aTHX))
 #undef  PL_cop_seqmax
-#define PL_cop_seqmax          (*Perl_Icop_seqmax_ptr(aTHXo))
+#define PL_cop_seqmax          (*Perl_Icop_seqmax_ptr(aTHX))
 #undef  PL_copline
-#define PL_copline             (*Perl_Icopline_ptr(aTHXo))
+#define PL_copline             (*Perl_Icopline_ptr(aTHX))
 #undef  PL_cred_mutex
-#define PL_cred_mutex          (*Perl_Icred_mutex_ptr(aTHXo))
+#define PL_cred_mutex          (*Perl_Icred_mutex_ptr(aTHX))
 #undef  PL_cryptseen
-#define PL_cryptseen           (*Perl_Icryptseen_ptr(aTHXo))
+#define PL_cryptseen           (*Perl_Icryptseen_ptr(aTHX))
 #undef  PL_cshlen
-#define PL_cshlen              (*Perl_Icshlen_ptr(aTHXo))
+#define PL_cshlen              (*Perl_Icshlen_ptr(aTHX))
 #undef  PL_cshname
-#define PL_cshname             (*Perl_Icshname_ptr(aTHXo))
+#define PL_cshname             (*Perl_Icshname_ptr(aTHX))
 #undef  PL_curcopdb
-#define PL_curcopdb            (*Perl_Icurcopdb_ptr(aTHXo))
+#define PL_curcopdb            (*Perl_Icurcopdb_ptr(aTHX))
 #undef  PL_curstname
-#define PL_curstname           (*Perl_Icurstname_ptr(aTHXo))
+#define PL_curstname           (*Perl_Icurstname_ptr(aTHX))
 #undef  PL_curthr
-#define PL_curthr              (*Perl_Icurthr_ptr(aTHXo))
+#define PL_curthr              (*Perl_Icurthr_ptr(aTHX))
 #undef  PL_custom_op_descs
-#define PL_custom_op_descs     (*Perl_Icustom_op_descs_ptr(aTHXo))
+#define PL_custom_op_descs     (*Perl_Icustom_op_descs_ptr(aTHX))
 #undef  PL_custom_op_names
-#define PL_custom_op_names     (*Perl_Icustom_op_names_ptr(aTHXo))
+#define PL_custom_op_names     (*Perl_Icustom_op_names_ptr(aTHX))
 #undef  PL_dbargs
-#define PL_dbargs              (*Perl_Idbargs_ptr(aTHXo))
+#define PL_dbargs              (*Perl_Idbargs_ptr(aTHX))
 #undef  PL_debstash
-#define PL_debstash            (*Perl_Idebstash_ptr(aTHXo))
+#define PL_debstash            (*Perl_Idebstash_ptr(aTHX))
 #undef  PL_debug
-#define PL_debug               (*Perl_Idebug_ptr(aTHXo))
+#define PL_debug               (*Perl_Idebug_ptr(aTHX))
 #undef  PL_defgv
-#define PL_defgv               (*Perl_Idefgv_ptr(aTHXo))
+#define PL_defgv               (*Perl_Idefgv_ptr(aTHX))
 #undef  PL_diehook
-#define PL_diehook             (*Perl_Idiehook_ptr(aTHXo))
+#define PL_diehook             (*Perl_Idiehook_ptr(aTHX))
 #undef  PL_doextract
-#define PL_doextract           (*Perl_Idoextract_ptr(aTHXo))
+#define PL_doextract           (*Perl_Idoextract_ptr(aTHX))
 #undef  PL_doswitches
-#define PL_doswitches          (*Perl_Idoswitches_ptr(aTHXo))
+#define PL_doswitches          (*Perl_Idoswitches_ptr(aTHX))
 #undef  PL_dowarn
-#define PL_dowarn              (*Perl_Idowarn_ptr(aTHXo))
+#define PL_dowarn              (*Perl_Idowarn_ptr(aTHX))
 #undef  PL_e_script
-#define PL_e_script            (*Perl_Ie_script_ptr(aTHXo))
+#define PL_e_script            (*Perl_Ie_script_ptr(aTHX))
 #undef  PL_egid
-#define PL_egid                        (*Perl_Iegid_ptr(aTHXo))
+#define PL_egid                        (*Perl_Iegid_ptr(aTHX))
 #undef  PL_endav
-#define PL_endav               (*Perl_Iendav_ptr(aTHXo))
+#define PL_endav               (*Perl_Iendav_ptr(aTHX))
 #undef  PL_envgv
-#define PL_envgv               (*Perl_Ienvgv_ptr(aTHXo))
+#define PL_envgv               (*Perl_Ienvgv_ptr(aTHX))
 #undef  PL_errgv
-#define PL_errgv               (*Perl_Ierrgv_ptr(aTHXo))
+#define PL_errgv               (*Perl_Ierrgv_ptr(aTHX))
 #undef  PL_error_count
-#define PL_error_count         (*Perl_Ierror_count_ptr(aTHXo))
+#define PL_error_count         (*Perl_Ierror_count_ptr(aTHX))
 #undef  PL_euid
-#define PL_euid                        (*Perl_Ieuid_ptr(aTHXo))
+#define PL_euid                        (*Perl_Ieuid_ptr(aTHX))
 #undef  PL_eval_cond
-#define PL_eval_cond           (*Perl_Ieval_cond_ptr(aTHXo))
+#define PL_eval_cond           (*Perl_Ieval_cond_ptr(aTHX))
 #undef  PL_eval_mutex
-#define PL_eval_mutex          (*Perl_Ieval_mutex_ptr(aTHXo))
+#define PL_eval_mutex          (*Perl_Ieval_mutex_ptr(aTHX))
 #undef  PL_eval_owner
-#define PL_eval_owner          (*Perl_Ieval_owner_ptr(aTHXo))
+#define PL_eval_owner          (*Perl_Ieval_owner_ptr(aTHX))
 #undef  PL_eval_root
-#define PL_eval_root           (*Perl_Ieval_root_ptr(aTHXo))
+#define PL_eval_root           (*Perl_Ieval_root_ptr(aTHX))
 #undef  PL_eval_start
-#define PL_eval_start          (*Perl_Ieval_start_ptr(aTHXo))
+#define PL_eval_start          (*Perl_Ieval_start_ptr(aTHX))
 #undef  PL_evalseq
-#define PL_evalseq             (*Perl_Ievalseq_ptr(aTHXo))
+#define PL_evalseq             (*Perl_Ievalseq_ptr(aTHX))
 #undef  PL_exit_flags
-#define PL_exit_flags          (*Perl_Iexit_flags_ptr(aTHXo))
+#define PL_exit_flags          (*Perl_Iexit_flags_ptr(aTHX))
 #undef  PL_exitlist
-#define PL_exitlist            (*Perl_Iexitlist_ptr(aTHXo))
+#define PL_exitlist            (*Perl_Iexitlist_ptr(aTHX))
 #undef  PL_exitlistlen
-#define PL_exitlistlen         (*Perl_Iexitlistlen_ptr(aTHXo))
+#define PL_exitlistlen         (*Perl_Iexitlistlen_ptr(aTHX))
 #undef  PL_expect
-#define PL_expect              (*Perl_Iexpect_ptr(aTHXo))
+#define PL_expect              (*Perl_Iexpect_ptr(aTHX))
 #undef  PL_fdpid
-#define PL_fdpid               (*Perl_Ifdpid_ptr(aTHXo))
+#define PL_fdpid               (*Perl_Ifdpid_ptr(aTHX))
 #undef  PL_fdpid_mutex
-#define PL_fdpid_mutex         (*Perl_Ifdpid_mutex_ptr(aTHXo))
+#define PL_fdpid_mutex         (*Perl_Ifdpid_mutex_ptr(aTHX))
 #undef  PL_filemode
-#define PL_filemode            (*Perl_Ifilemode_ptr(aTHXo))
+#define PL_filemode            (*Perl_Ifilemode_ptr(aTHX))
 #undef  PL_forkprocess
-#define PL_forkprocess         (*Perl_Iforkprocess_ptr(aTHXo))
+#define PL_forkprocess         (*Perl_Iforkprocess_ptr(aTHX))
 #undef  PL_formfeed
-#define PL_formfeed            (*Perl_Iformfeed_ptr(aTHXo))
+#define PL_formfeed            (*Perl_Iformfeed_ptr(aTHX))
 #undef  PL_generation
-#define PL_generation          (*Perl_Igeneration_ptr(aTHXo))
+#define PL_generation          (*Perl_Igeneration_ptr(aTHX))
 #undef  PL_gensym
-#define PL_gensym              (*Perl_Igensym_ptr(aTHXo))
+#define PL_gensym              (*Perl_Igensym_ptr(aTHX))
 #undef  PL_gid
-#define PL_gid                 (*Perl_Igid_ptr(aTHXo))
+#define PL_gid                 (*Perl_Igid_ptr(aTHX))
 #undef  PL_glob_index
-#define PL_glob_index          (*Perl_Iglob_index_ptr(aTHXo))
+#define PL_glob_index          (*Perl_Iglob_index_ptr(aTHX))
 #undef  PL_globalstash
-#define PL_globalstash         (*Perl_Iglobalstash_ptr(aTHXo))
+#define PL_globalstash         (*Perl_Iglobalstash_ptr(aTHX))
 #undef  PL_he_arenaroot
-#define PL_he_arenaroot                (*Perl_Ihe_arenaroot_ptr(aTHXo))
+#define PL_he_arenaroot                (*Perl_Ihe_arenaroot_ptr(aTHX))
 #undef  PL_he_root
-#define PL_he_root             (*Perl_Ihe_root_ptr(aTHXo))
+#define PL_he_root             (*Perl_Ihe_root_ptr(aTHX))
 #undef  PL_hintgv
-#define PL_hintgv              (*Perl_Ihintgv_ptr(aTHXo))
+#define PL_hintgv              (*Perl_Ihintgv_ptr(aTHX))
 #undef  PL_hints
-#define PL_hints               (*Perl_Ihints_ptr(aTHXo))
+#define PL_hints               (*Perl_Ihints_ptr(aTHX))
 #undef  PL_in_clean_all
-#define PL_in_clean_all                (*Perl_Iin_clean_all_ptr(aTHXo))
+#define PL_in_clean_all                (*Perl_Iin_clean_all_ptr(aTHX))
 #undef  PL_in_clean_objs
-#define PL_in_clean_objs       (*Perl_Iin_clean_objs_ptr(aTHXo))
+#define PL_in_clean_objs       (*Perl_Iin_clean_objs_ptr(aTHX))
 #undef  PL_in_my
-#define PL_in_my               (*Perl_Iin_my_ptr(aTHXo))
+#define PL_in_my               (*Perl_Iin_my_ptr(aTHX))
 #undef  PL_in_my_stash
-#define PL_in_my_stash         (*Perl_Iin_my_stash_ptr(aTHXo))
+#define PL_in_my_stash         (*Perl_Iin_my_stash_ptr(aTHX))
 #undef  PL_incgv
-#define PL_incgv               (*Perl_Iincgv_ptr(aTHXo))
+#define PL_incgv               (*Perl_Iincgv_ptr(aTHX))
 #undef  PL_initav
-#define PL_initav              (*Perl_Iinitav_ptr(aTHXo))
+#define PL_initav              (*Perl_Iinitav_ptr(aTHX))
 #undef  PL_inplace
-#define PL_inplace             (*Perl_Iinplace_ptr(aTHXo))
+#define PL_inplace             (*Perl_Iinplace_ptr(aTHX))
 #undef  PL_last_lop
-#define PL_last_lop            (*Perl_Ilast_lop_ptr(aTHXo))
+#define PL_last_lop            (*Perl_Ilast_lop_ptr(aTHX))
 #undef  PL_last_lop_op
-#define PL_last_lop_op         (*Perl_Ilast_lop_op_ptr(aTHXo))
+#define PL_last_lop_op         (*Perl_Ilast_lop_op_ptr(aTHX))
 #undef  PL_last_swash_hv
-#define PL_last_swash_hv       (*Perl_Ilast_swash_hv_ptr(aTHXo))
+#define PL_last_swash_hv       (*Perl_Ilast_swash_hv_ptr(aTHX))
 #undef  PL_last_swash_key
-#define PL_last_swash_key      (*Perl_Ilast_swash_key_ptr(aTHXo))
+#define PL_last_swash_key      (*Perl_Ilast_swash_key_ptr(aTHX))
 #undef  PL_last_swash_klen
-#define PL_last_swash_klen     (*Perl_Ilast_swash_klen_ptr(aTHXo))
+#define PL_last_swash_klen     (*Perl_Ilast_swash_klen_ptr(aTHX))
 #undef  PL_last_swash_slen
-#define PL_last_swash_slen     (*Perl_Ilast_swash_slen_ptr(aTHXo))
+#define PL_last_swash_slen     (*Perl_Ilast_swash_slen_ptr(aTHX))
 #undef  PL_last_swash_tmps
-#define PL_last_swash_tmps     (*Perl_Ilast_swash_tmps_ptr(aTHXo))
+#define PL_last_swash_tmps     (*Perl_Ilast_swash_tmps_ptr(aTHX))
 #undef  PL_last_uni
-#define PL_last_uni            (*Perl_Ilast_uni_ptr(aTHXo))
+#define PL_last_uni            (*Perl_Ilast_uni_ptr(aTHX))
 #undef  PL_lastfd
-#define PL_lastfd              (*Perl_Ilastfd_ptr(aTHXo))
+#define PL_lastfd              (*Perl_Ilastfd_ptr(aTHX))
 #undef  PL_laststatval
-#define PL_laststatval         (*Perl_Ilaststatval_ptr(aTHXo))
+#define PL_laststatval         (*Perl_Ilaststatval_ptr(aTHX))
 #undef  PL_laststype
-#define PL_laststype           (*Perl_Ilaststype_ptr(aTHXo))
+#define PL_laststype           (*Perl_Ilaststype_ptr(aTHX))
 #undef  PL_lex_brackets
-#define PL_lex_brackets                (*Perl_Ilex_brackets_ptr(aTHXo))
+#define PL_lex_brackets                (*Perl_Ilex_brackets_ptr(aTHX))
 #undef  PL_lex_brackstack
-#define PL_lex_brackstack      (*Perl_Ilex_brackstack_ptr(aTHXo))
+#define PL_lex_brackstack      (*Perl_Ilex_brackstack_ptr(aTHX))
 #undef  PL_lex_casemods
-#define PL_lex_casemods                (*Perl_Ilex_casemods_ptr(aTHXo))
+#define PL_lex_casemods                (*Perl_Ilex_casemods_ptr(aTHX))
 #undef  PL_lex_casestack
-#define PL_lex_casestack       (*Perl_Ilex_casestack_ptr(aTHXo))
+#define PL_lex_casestack       (*Perl_Ilex_casestack_ptr(aTHX))
 #undef  PL_lex_defer
-#define PL_lex_defer           (*Perl_Ilex_defer_ptr(aTHXo))
+#define PL_lex_defer           (*Perl_Ilex_defer_ptr(aTHX))
 #undef  PL_lex_dojoin
-#define PL_lex_dojoin          (*Perl_Ilex_dojoin_ptr(aTHXo))
+#define PL_lex_dojoin          (*Perl_Ilex_dojoin_ptr(aTHX))
 #undef  PL_lex_expect
-#define PL_lex_expect          (*Perl_Ilex_expect_ptr(aTHXo))
+#define PL_lex_expect          (*Perl_Ilex_expect_ptr(aTHX))
 #undef  PL_lex_formbrack
-#define PL_lex_formbrack       (*Perl_Ilex_formbrack_ptr(aTHXo))
+#define PL_lex_formbrack       (*Perl_Ilex_formbrack_ptr(aTHX))
 #undef  PL_lex_inpat
-#define PL_lex_inpat           (*Perl_Ilex_inpat_ptr(aTHXo))
+#define PL_lex_inpat           (*Perl_Ilex_inpat_ptr(aTHX))
 #undef  PL_lex_inwhat
-#define PL_lex_inwhat          (*Perl_Ilex_inwhat_ptr(aTHXo))
+#define PL_lex_inwhat          (*Perl_Ilex_inwhat_ptr(aTHX))
 #undef  PL_lex_op
-#define PL_lex_op              (*Perl_Ilex_op_ptr(aTHXo))
+#define PL_lex_op              (*Perl_Ilex_op_ptr(aTHX))
 #undef  PL_lex_repl
-#define PL_lex_repl            (*Perl_Ilex_repl_ptr(aTHXo))
+#define PL_lex_repl            (*Perl_Ilex_repl_ptr(aTHX))
 #undef  PL_lex_starts
-#define PL_lex_starts          (*Perl_Ilex_starts_ptr(aTHXo))
+#define PL_lex_starts          (*Perl_Ilex_starts_ptr(aTHX))
 #undef  PL_lex_state
-#define PL_lex_state           (*Perl_Ilex_state_ptr(aTHXo))
+#define PL_lex_state           (*Perl_Ilex_state_ptr(aTHX))
 #undef  PL_lex_stuff
-#define PL_lex_stuff           (*Perl_Ilex_stuff_ptr(aTHXo))
+#define PL_lex_stuff           (*Perl_Ilex_stuff_ptr(aTHX))
 #undef  PL_lineary
-#define PL_lineary             (*Perl_Ilineary_ptr(aTHXo))
+#define PL_lineary             (*Perl_Ilineary_ptr(aTHX))
 #undef  PL_linestart
-#define PL_linestart           (*Perl_Ilinestart_ptr(aTHXo))
+#define PL_linestart           (*Perl_Ilinestart_ptr(aTHX))
 #undef  PL_linestr
-#define PL_linestr             (*Perl_Ilinestr_ptr(aTHXo))
+#define PL_linestr             (*Perl_Ilinestr_ptr(aTHX))
 #undef  PL_localpatches
-#define PL_localpatches                (*Perl_Ilocalpatches_ptr(aTHXo))
+#define PL_localpatches                (*Perl_Ilocalpatches_ptr(aTHX))
 #undef  PL_main_cv
-#define PL_main_cv             (*Perl_Imain_cv_ptr(aTHXo))
+#define PL_main_cv             (*Perl_Imain_cv_ptr(aTHX))
 #undef  PL_main_root
-#define PL_main_root           (*Perl_Imain_root_ptr(aTHXo))
+#define PL_main_root           (*Perl_Imain_root_ptr(aTHX))
 #undef  PL_main_start
-#define PL_main_start          (*Perl_Imain_start_ptr(aTHXo))
+#define PL_main_start          (*Perl_Imain_start_ptr(aTHX))
 #undef  PL_max_intro_pending
-#define PL_max_intro_pending   (*Perl_Imax_intro_pending_ptr(aTHXo))
+#define PL_max_intro_pending   (*Perl_Imax_intro_pending_ptr(aTHX))
 #undef  PL_maxo
-#define PL_maxo                        (*Perl_Imaxo_ptr(aTHXo))
+#define PL_maxo                        (*Perl_Imaxo_ptr(aTHX))
 #undef  PL_maxsysfd
-#define PL_maxsysfd            (*Perl_Imaxsysfd_ptr(aTHXo))
+#define PL_maxsysfd            (*Perl_Imaxsysfd_ptr(aTHX))
 #undef  PL_mess_sv
-#define PL_mess_sv             (*Perl_Imess_sv_ptr(aTHXo))
+#define PL_mess_sv             (*Perl_Imess_sv_ptr(aTHX))
 #undef  PL_min_intro_pending
-#define PL_min_intro_pending   (*Perl_Imin_intro_pending_ptr(aTHXo))
+#define PL_min_intro_pending   (*Perl_Imin_intro_pending_ptr(aTHX))
 #undef  PL_minus_F
-#define PL_minus_F             (*Perl_Iminus_F_ptr(aTHXo))
+#define PL_minus_F             (*Perl_Iminus_F_ptr(aTHX))
 #undef  PL_minus_a
-#define PL_minus_a             (*Perl_Iminus_a_ptr(aTHXo))
+#define PL_minus_a             (*Perl_Iminus_a_ptr(aTHX))
 #undef  PL_minus_c
-#define PL_minus_c             (*Perl_Iminus_c_ptr(aTHXo))
+#define PL_minus_c             (*Perl_Iminus_c_ptr(aTHX))
 #undef  PL_minus_l
-#define PL_minus_l             (*Perl_Iminus_l_ptr(aTHXo))
+#define PL_minus_l             (*Perl_Iminus_l_ptr(aTHX))
 #undef  PL_minus_n
-#define PL_minus_n             (*Perl_Iminus_n_ptr(aTHXo))
+#define PL_minus_n             (*Perl_Iminus_n_ptr(aTHX))
 #undef  PL_minus_p
-#define PL_minus_p             (*Perl_Iminus_p_ptr(aTHXo))
+#define PL_minus_p             (*Perl_Iminus_p_ptr(aTHX))
 #undef  PL_modglobal
-#define PL_modglobal           (*Perl_Imodglobal_ptr(aTHXo))
+#define PL_modglobal           (*Perl_Imodglobal_ptr(aTHX))
 #undef  PL_multi_close
-#define PL_multi_close         (*Perl_Imulti_close_ptr(aTHXo))
+#define PL_multi_close         (*Perl_Imulti_close_ptr(aTHX))
 #undef  PL_multi_end
-#define PL_multi_end           (*Perl_Imulti_end_ptr(aTHXo))
+#define PL_multi_end           (*Perl_Imulti_end_ptr(aTHX))
 #undef  PL_multi_open
-#define PL_multi_open          (*Perl_Imulti_open_ptr(aTHXo))
+#define PL_multi_open          (*Perl_Imulti_open_ptr(aTHX))
 #undef  PL_multi_start
-#define PL_multi_start         (*Perl_Imulti_start_ptr(aTHXo))
+#define PL_multi_start         (*Perl_Imulti_start_ptr(aTHX))
 #undef  PL_multiline
-#define PL_multiline           (*Perl_Imultiline_ptr(aTHXo))
+#define PL_multiline           (*Perl_Imultiline_ptr(aTHX))
 #undef  PL_nexttoke
-#define PL_nexttoke            (*Perl_Inexttoke_ptr(aTHXo))
+#define PL_nexttoke            (*Perl_Inexttoke_ptr(aTHX))
 #undef  PL_nexttype
-#define PL_nexttype            (*Perl_Inexttype_ptr(aTHXo))
+#define PL_nexttype            (*Perl_Inexttype_ptr(aTHX))
 #undef  PL_nextval
-#define PL_nextval             (*Perl_Inextval_ptr(aTHXo))
+#define PL_nextval             (*Perl_Inextval_ptr(aTHX))
 #undef  PL_nice_chunk
-#define PL_nice_chunk          (*Perl_Inice_chunk_ptr(aTHXo))
+#define PL_nice_chunk          (*Perl_Inice_chunk_ptr(aTHX))
 #undef  PL_nice_chunk_size
-#define PL_nice_chunk_size     (*Perl_Inice_chunk_size_ptr(aTHXo))
+#define PL_nice_chunk_size     (*Perl_Inice_chunk_size_ptr(aTHX))
 #undef  PL_nomemok
-#define PL_nomemok             (*Perl_Inomemok_ptr(aTHXo))
+#define PL_nomemok             (*Perl_Inomemok_ptr(aTHX))
 #undef  PL_nthreads
-#define PL_nthreads            (*Perl_Inthreads_ptr(aTHXo))
+#define PL_nthreads            (*Perl_Inthreads_ptr(aTHX))
 #undef  PL_nthreads_cond
-#define PL_nthreads_cond       (*Perl_Inthreads_cond_ptr(aTHXo))
+#define PL_nthreads_cond       (*Perl_Inthreads_cond_ptr(aTHX))
 #undef  PL_nullstash
-#define PL_nullstash           (*Perl_Inullstash_ptr(aTHXo))
+#define PL_nullstash           (*Perl_Inullstash_ptr(aTHX))
 #undef  PL_numeric_compat1
-#define PL_numeric_compat1     (*Perl_Inumeric_compat1_ptr(aTHXo))
+#define PL_numeric_compat1     (*Perl_Inumeric_compat1_ptr(aTHX))
 #undef  PL_numeric_local
-#define PL_numeric_local       (*Perl_Inumeric_local_ptr(aTHXo))
+#define PL_numeric_local       (*Perl_Inumeric_local_ptr(aTHX))
 #undef  PL_numeric_name
-#define PL_numeric_name                (*Perl_Inumeric_name_ptr(aTHXo))
+#define PL_numeric_name                (*Perl_Inumeric_name_ptr(aTHX))
 #undef  PL_numeric_radix_sv
-#define PL_numeric_radix_sv    (*Perl_Inumeric_radix_sv_ptr(aTHXo))
+#define PL_numeric_radix_sv    (*Perl_Inumeric_radix_sv_ptr(aTHX))
 #undef  PL_numeric_standard
-#define PL_numeric_standard    (*Perl_Inumeric_standard_ptr(aTHXo))
+#define PL_numeric_standard    (*Perl_Inumeric_standard_ptr(aTHX))
 #undef  PL_ofmt
-#define PL_ofmt                        (*Perl_Iofmt_ptr(aTHXo))
+#define PL_ofmt                        (*Perl_Iofmt_ptr(aTHX))
 #undef  PL_oldbufptr
-#define PL_oldbufptr           (*Perl_Ioldbufptr_ptr(aTHXo))
+#define PL_oldbufptr           (*Perl_Ioldbufptr_ptr(aTHX))
 #undef  PL_oldname
-#define PL_oldname             (*Perl_Ioldname_ptr(aTHXo))
+#define PL_oldname             (*Perl_Ioldname_ptr(aTHX))
 #undef  PL_oldoldbufptr
-#define PL_oldoldbufptr                (*Perl_Ioldoldbufptr_ptr(aTHXo))
+#define PL_oldoldbufptr                (*Perl_Ioldoldbufptr_ptr(aTHX))
 #undef  PL_op_mask
-#define PL_op_mask             (*Perl_Iop_mask_ptr(aTHXo))
+#define PL_op_mask             (*Perl_Iop_mask_ptr(aTHX))
 #undef  PL_op_seqmax
-#define PL_op_seqmax           (*Perl_Iop_seqmax_ptr(aTHXo))
+#define PL_op_seqmax           (*Perl_Iop_seqmax_ptr(aTHX))
 #undef  PL_origalen
-#define PL_origalen            (*Perl_Iorigalen_ptr(aTHXo))
+#define PL_origalen            (*Perl_Iorigalen_ptr(aTHX))
 #undef  PL_origargc
-#define PL_origargc            (*Perl_Iorigargc_ptr(aTHXo))
+#define PL_origargc            (*Perl_Iorigargc_ptr(aTHX))
 #undef  PL_origargv
-#define PL_origargv            (*Perl_Iorigargv_ptr(aTHXo))
+#define PL_origargv            (*Perl_Iorigargv_ptr(aTHX))
 #undef  PL_origenviron
-#define PL_origenviron         (*Perl_Iorigenviron_ptr(aTHXo))
+#define PL_origenviron         (*Perl_Iorigenviron_ptr(aTHX))
 #undef  PL_origfilename
-#define PL_origfilename                (*Perl_Iorigfilename_ptr(aTHXo))
+#define PL_origfilename                (*Perl_Iorigfilename_ptr(aTHX))
 #undef  PL_ors_sv
-#define PL_ors_sv              (*Perl_Iors_sv_ptr(aTHXo))
+#define PL_ors_sv              (*Perl_Iors_sv_ptr(aTHX))
 #undef  PL_osname
-#define PL_osname              (*Perl_Iosname_ptr(aTHXo))
+#define PL_osname              (*Perl_Iosname_ptr(aTHX))
 #undef  PL_pad_reset_pending
-#define PL_pad_reset_pending   (*Perl_Ipad_reset_pending_ptr(aTHXo))
+#define PL_pad_reset_pending   (*Perl_Ipad_reset_pending_ptr(aTHX))
 #undef  PL_padix
-#define PL_padix               (*Perl_Ipadix_ptr(aTHXo))
+#define PL_padix               (*Perl_Ipadix_ptr(aTHX))
 #undef  PL_padix_floor
-#define PL_padix_floor         (*Perl_Ipadix_floor_ptr(aTHXo))
+#define PL_padix_floor         (*Perl_Ipadix_floor_ptr(aTHX))
 #undef  PL_patchlevel
-#define PL_patchlevel          (*Perl_Ipatchlevel_ptr(aTHXo))
+#define PL_patchlevel          (*Perl_Ipatchlevel_ptr(aTHX))
 #undef  PL_pending_ident
-#define PL_pending_ident       (*Perl_Ipending_ident_ptr(aTHXo))
+#define PL_pending_ident       (*Perl_Ipending_ident_ptr(aTHX))
 #undef  PL_perl_destruct_level
-#define PL_perl_destruct_level (*Perl_Iperl_destruct_level_ptr(aTHXo))
+#define PL_perl_destruct_level (*Perl_Iperl_destruct_level_ptr(aTHX))
 #undef  PL_perldb
-#define PL_perldb              (*Perl_Iperldb_ptr(aTHXo))
+#define PL_perldb              (*Perl_Iperldb_ptr(aTHX))
 #undef  PL_pidstatus
-#define PL_pidstatus           (*Perl_Ipidstatus_ptr(aTHXo))
+#define PL_pidstatus           (*Perl_Ipidstatus_ptr(aTHX))
 #undef  PL_preambleav
-#define PL_preambleav          (*Perl_Ipreambleav_ptr(aTHXo))
+#define PL_preambleav          (*Perl_Ipreambleav_ptr(aTHX))
 #undef  PL_preambled
-#define PL_preambled           (*Perl_Ipreambled_ptr(aTHXo))
+#define PL_preambled           (*Perl_Ipreambled_ptr(aTHX))
 #undef  PL_preprocess
-#define PL_preprocess          (*Perl_Ipreprocess_ptr(aTHXo))
+#define PL_preprocess          (*Perl_Ipreprocess_ptr(aTHX))
 #undef  PL_profiledata
-#define PL_profiledata         (*Perl_Iprofiledata_ptr(aTHXo))
+#define PL_profiledata         (*Perl_Iprofiledata_ptr(aTHX))
 #undef  PL_psig_name
-#define PL_psig_name           (*Perl_Ipsig_name_ptr(aTHXo))
+#define PL_psig_name           (*Perl_Ipsig_name_ptr(aTHX))
 #undef  PL_psig_pend
-#define PL_psig_pend           (*Perl_Ipsig_pend_ptr(aTHXo))
+#define PL_psig_pend           (*Perl_Ipsig_pend_ptr(aTHX))
 #undef  PL_psig_ptr
-#define PL_psig_ptr            (*Perl_Ipsig_ptr_ptr(aTHXo))
+#define PL_psig_ptr            (*Perl_Ipsig_ptr_ptr(aTHX))
 #undef  PL_ptr_table
-#define PL_ptr_table           (*Perl_Iptr_table_ptr(aTHXo))
+#define PL_ptr_table           (*Perl_Iptr_table_ptr(aTHX))
 #undef  PL_reentrant_buffer
-#define PL_reentrant_buffer    (*Perl_Ireentrant_buffer_ptr(aTHXo))
+#define PL_reentrant_buffer    (*Perl_Ireentrant_buffer_ptr(aTHX))
 #undef  PL_regex_pad
-#define PL_regex_pad           (*Perl_Iregex_pad_ptr(aTHXo))
+#define PL_regex_pad           (*Perl_Iregex_pad_ptr(aTHX))
 #undef  PL_regex_padav
-#define PL_regex_padav         (*Perl_Iregex_padav_ptr(aTHXo))
+#define PL_regex_padav         (*Perl_Iregex_padav_ptr(aTHX))
 #undef  PL_replgv
-#define PL_replgv              (*Perl_Ireplgv_ptr(aTHXo))
+#define PL_replgv              (*Perl_Ireplgv_ptr(aTHX))
 #undef  PL_rsfp
-#define PL_rsfp                        (*Perl_Irsfp_ptr(aTHXo))
+#define PL_rsfp                        (*Perl_Irsfp_ptr(aTHX))
 #undef  PL_rsfp_filters
-#define PL_rsfp_filters                (*Perl_Irsfp_filters_ptr(aTHXo))
+#define PL_rsfp_filters                (*Perl_Irsfp_filters_ptr(aTHX))
 #undef  PL_runops
-#define PL_runops              (*Perl_Irunops_ptr(aTHXo))
+#define PL_runops              (*Perl_Irunops_ptr(aTHX))
 #undef  PL_savebegin
-#define PL_savebegin           (*Perl_Isavebegin_ptr(aTHXo))
+#define PL_savebegin           (*Perl_Isavebegin_ptr(aTHX))
 #undef  PL_sawampersand
-#define PL_sawampersand                (*Perl_Isawampersand_ptr(aTHXo))
+#define PL_sawampersand                (*Perl_Isawampersand_ptr(aTHX))
 #undef  PL_sh_path
-#define PL_sh_path             (*Perl_Ish_path_ptr(aTHXo))
+#define PL_sh_path             (*Perl_Ish_path_ptr(aTHX))
 #undef  PL_sig_pending
-#define PL_sig_pending         (*Perl_Isig_pending_ptr(aTHXo))
+#define PL_sig_pending         (*Perl_Isig_pending_ptr(aTHX))
 #undef  PL_sighandlerp
-#define PL_sighandlerp         (*Perl_Isighandlerp_ptr(aTHXo))
+#define PL_sighandlerp         (*Perl_Isighandlerp_ptr(aTHX))
 #undef  PL_splitstr
-#define PL_splitstr            (*Perl_Isplitstr_ptr(aTHXo))
+#define PL_splitstr            (*Perl_Isplitstr_ptr(aTHX))
 #undef  PL_srand_called
-#define PL_srand_called                (*Perl_Isrand_called_ptr(aTHXo))
+#define PL_srand_called                (*Perl_Isrand_called_ptr(aTHX))
 #undef  PL_statusvalue
-#define PL_statusvalue         (*Perl_Istatusvalue_ptr(aTHXo))
+#define PL_statusvalue         (*Perl_Istatusvalue_ptr(aTHX))
 #undef  PL_statusvalue_vms
-#define PL_statusvalue_vms     (*Perl_Istatusvalue_vms_ptr(aTHXo))
+#define PL_statusvalue_vms     (*Perl_Istatusvalue_vms_ptr(aTHX))
 #undef  PL_stderrgv
-#define PL_stderrgv            (*Perl_Istderrgv_ptr(aTHXo))
+#define PL_stderrgv            (*Perl_Istderrgv_ptr(aTHX))
 #undef  PL_stdingv
-#define PL_stdingv             (*Perl_Istdingv_ptr(aTHXo))
+#define PL_stdingv             (*Perl_Istdingv_ptr(aTHX))
 #undef  PL_strtab
-#define PL_strtab              (*Perl_Istrtab_ptr(aTHXo))
+#define PL_strtab              (*Perl_Istrtab_ptr(aTHX))
 #undef  PL_strtab_mutex
-#define PL_strtab_mutex                (*Perl_Istrtab_mutex_ptr(aTHXo))
+#define PL_strtab_mutex                (*Perl_Istrtab_mutex_ptr(aTHX))
 #undef  PL_sub_generation
-#define PL_sub_generation      (*Perl_Isub_generation_ptr(aTHXo))
+#define PL_sub_generation      (*Perl_Isub_generation_ptr(aTHX))
 #undef  PL_sublex_info
-#define PL_sublex_info         (*Perl_Isublex_info_ptr(aTHXo))
+#define PL_sublex_info         (*Perl_Isublex_info_ptr(aTHX))
 #undef  PL_subline
-#define PL_subline             (*Perl_Isubline_ptr(aTHXo))
+#define PL_subline             (*Perl_Isubline_ptr(aTHX))
 #undef  PL_subname
-#define PL_subname             (*Perl_Isubname_ptr(aTHXo))
+#define PL_subname             (*Perl_Isubname_ptr(aTHX))
 #undef  PL_sv_arenaroot
-#define PL_sv_arenaroot                (*Perl_Isv_arenaroot_ptr(aTHXo))
+#define PL_sv_arenaroot                (*Perl_Isv_arenaroot_ptr(aTHX))
 #undef  PL_sv_count
-#define PL_sv_count            (*Perl_Isv_count_ptr(aTHXo))
+#define PL_sv_count            (*Perl_Isv_count_ptr(aTHX))
 #undef  PL_sv_lock_mutex
-#define PL_sv_lock_mutex       (*Perl_Isv_lock_mutex_ptr(aTHXo))
+#define PL_sv_lock_mutex       (*Perl_Isv_lock_mutex_ptr(aTHX))
 #undef  PL_sv_mutex
-#define PL_sv_mutex            (*Perl_Isv_mutex_ptr(aTHXo))
+#define PL_sv_mutex            (*Perl_Isv_mutex_ptr(aTHX))
 #undef  PL_sv_no
-#define PL_sv_no               (*Perl_Isv_no_ptr(aTHXo))
+#define PL_sv_no               (*Perl_Isv_no_ptr(aTHX))
 #undef  PL_sv_objcount
-#define PL_sv_objcount         (*Perl_Isv_objcount_ptr(aTHXo))
+#define PL_sv_objcount         (*Perl_Isv_objcount_ptr(aTHX))
 #undef  PL_sv_root
-#define PL_sv_root             (*Perl_Isv_root_ptr(aTHXo))
+#define PL_sv_root             (*Perl_Isv_root_ptr(aTHX))
 #undef  PL_sv_undef
-#define PL_sv_undef            (*Perl_Isv_undef_ptr(aTHXo))
+#define PL_sv_undef            (*Perl_Isv_undef_ptr(aTHX))
 #undef  PL_sv_yes
-#define PL_sv_yes              (*Perl_Isv_yes_ptr(aTHXo))
+#define PL_sv_yes              (*Perl_Isv_yes_ptr(aTHX))
 #undef  PL_svref_mutex
-#define PL_svref_mutex         (*Perl_Isvref_mutex_ptr(aTHXo))
+#define PL_svref_mutex         (*Perl_Isvref_mutex_ptr(aTHX))
 #undef  PL_sys_intern
-#define PL_sys_intern          (*Perl_Isys_intern_ptr(aTHXo))
+#define PL_sys_intern          (*Perl_Isys_intern_ptr(aTHX))
 #undef  PL_tainting
-#define PL_tainting            (*Perl_Itainting_ptr(aTHXo))
+#define PL_tainting            (*Perl_Itainting_ptr(aTHX))
 #undef  PL_threadnum
-#define PL_threadnum           (*Perl_Ithreadnum_ptr(aTHXo))
+#define PL_threadnum           (*Perl_Ithreadnum_ptr(aTHX))
 #undef  PL_threads_mutex
-#define PL_threads_mutex       (*Perl_Ithreads_mutex_ptr(aTHXo))
+#define PL_threads_mutex       (*Perl_Ithreads_mutex_ptr(aTHX))
 #undef  PL_threadsv_names
-#define PL_threadsv_names      (*Perl_Ithreadsv_names_ptr(aTHXo))
+#define PL_threadsv_names      (*Perl_Ithreadsv_names_ptr(aTHX))
 #undef  PL_thrsv
-#define PL_thrsv               (*Perl_Ithrsv_ptr(aTHXo))
+#define PL_thrsv               (*Perl_Ithrsv_ptr(aTHX))
 #undef  PL_tokenbuf
-#define PL_tokenbuf            (*Perl_Itokenbuf_ptr(aTHXo))
+#define PL_tokenbuf            (*Perl_Itokenbuf_ptr(aTHX))
 #undef  PL_uid
-#define PL_uid                 (*Perl_Iuid_ptr(aTHXo))
+#define PL_uid                 (*Perl_Iuid_ptr(aTHX))
 #undef  PL_unsafe
-#define PL_unsafe              (*Perl_Iunsafe_ptr(aTHXo))
+#define PL_unsafe              (*Perl_Iunsafe_ptr(aTHX))
 #undef  PL_utf8_alnum
-#define PL_utf8_alnum          (*Perl_Iutf8_alnum_ptr(aTHXo))
+#define PL_utf8_alnum          (*Perl_Iutf8_alnum_ptr(aTHX))
 #undef  PL_utf8_alnumc
-#define PL_utf8_alnumc         (*Perl_Iutf8_alnumc_ptr(aTHXo))
+#define PL_utf8_alnumc         (*Perl_Iutf8_alnumc_ptr(aTHX))
 #undef  PL_utf8_alpha
-#define PL_utf8_alpha          (*Perl_Iutf8_alpha_ptr(aTHXo))
+#define PL_utf8_alpha          (*Perl_Iutf8_alpha_ptr(aTHX))
 #undef  PL_utf8_ascii
-#define PL_utf8_ascii          (*Perl_Iutf8_ascii_ptr(aTHXo))
+#define PL_utf8_ascii          (*Perl_Iutf8_ascii_ptr(aTHX))
 #undef  PL_utf8_cntrl
-#define PL_utf8_cntrl          (*Perl_Iutf8_cntrl_ptr(aTHXo))
+#define PL_utf8_cntrl          (*Perl_Iutf8_cntrl_ptr(aTHX))
 #undef  PL_utf8_digit
-#define PL_utf8_digit          (*Perl_Iutf8_digit_ptr(aTHXo))
+#define PL_utf8_digit          (*Perl_Iutf8_digit_ptr(aTHX))
 #undef  PL_utf8_graph
-#define PL_utf8_graph          (*Perl_Iutf8_graph_ptr(aTHXo))
+#define PL_utf8_graph          (*Perl_Iutf8_graph_ptr(aTHX))
 #undef  PL_utf8_lower
-#define PL_utf8_lower          (*Perl_Iutf8_lower_ptr(aTHXo))
+#define PL_utf8_lower          (*Perl_Iutf8_lower_ptr(aTHX))
 #undef  PL_utf8_mark
-#define PL_utf8_mark           (*Perl_Iutf8_mark_ptr(aTHXo))
+#define PL_utf8_mark           (*Perl_Iutf8_mark_ptr(aTHX))
 #undef  PL_utf8_print
-#define PL_utf8_print          (*Perl_Iutf8_print_ptr(aTHXo))
+#define PL_utf8_print          (*Perl_Iutf8_print_ptr(aTHX))
 #undef  PL_utf8_punct
-#define PL_utf8_punct          (*Perl_Iutf8_punct_ptr(aTHXo))
+#define PL_utf8_punct          (*Perl_Iutf8_punct_ptr(aTHX))
 #undef  PL_utf8_space
-#define PL_utf8_space          (*Perl_Iutf8_space_ptr(aTHXo))
+#define PL_utf8_space          (*Perl_Iutf8_space_ptr(aTHX))
 #undef  PL_utf8_tolower
-#define PL_utf8_tolower                (*Perl_Iutf8_tolower_ptr(aTHXo))
+#define PL_utf8_tolower                (*Perl_Iutf8_tolower_ptr(aTHX))
 #undef  PL_utf8_totitle
-#define PL_utf8_totitle                (*Perl_Iutf8_totitle_ptr(aTHXo))
+#define PL_utf8_totitle                (*Perl_Iutf8_totitle_ptr(aTHX))
 #undef  PL_utf8_toupper
-#define PL_utf8_toupper                (*Perl_Iutf8_toupper_ptr(aTHXo))
+#define PL_utf8_toupper                (*Perl_Iutf8_toupper_ptr(aTHX))
 #undef  PL_utf8_upper
-#define PL_utf8_upper          (*Perl_Iutf8_upper_ptr(aTHXo))
+#define PL_utf8_upper          (*Perl_Iutf8_upper_ptr(aTHX))
 #undef  PL_utf8_xdigit
-#define PL_utf8_xdigit         (*Perl_Iutf8_xdigit_ptr(aTHXo))
+#define PL_utf8_xdigit         (*Perl_Iutf8_xdigit_ptr(aTHX))
 #undef  PL_uudmap
-#define PL_uudmap              (*Perl_Iuudmap_ptr(aTHXo))
+#define PL_uudmap              (*Perl_Iuudmap_ptr(aTHX))
 #undef  PL_warnhook
-#define PL_warnhook            (*Perl_Iwarnhook_ptr(aTHXo))
+#define PL_warnhook            (*Perl_Iwarnhook_ptr(aTHX))
 #undef  PL_widesyscalls
-#define PL_widesyscalls                (*Perl_Iwidesyscalls_ptr(aTHXo))
+#define PL_widesyscalls                (*Perl_Iwidesyscalls_ptr(aTHX))
 #undef  PL_xiv_arenaroot
-#define PL_xiv_arenaroot       (*Perl_Ixiv_arenaroot_ptr(aTHXo))
+#define PL_xiv_arenaroot       (*Perl_Ixiv_arenaroot_ptr(aTHX))
 #undef  PL_xiv_root
-#define PL_xiv_root            (*Perl_Ixiv_root_ptr(aTHXo))
+#define PL_xiv_root            (*Perl_Ixiv_root_ptr(aTHX))
 #undef  PL_xnv_arenaroot
-#define PL_xnv_arenaroot       (*Perl_Ixnv_arenaroot_ptr(aTHXo))
+#define PL_xnv_arenaroot       (*Perl_Ixnv_arenaroot_ptr(aTHX))
 #undef  PL_xnv_root
-#define PL_xnv_root            (*Perl_Ixnv_root_ptr(aTHXo))
+#define PL_xnv_root            (*Perl_Ixnv_root_ptr(aTHX))
 #undef  PL_xpv_arenaroot
-#define PL_xpv_arenaroot       (*Perl_Ixpv_arenaroot_ptr(aTHXo))
+#define PL_xpv_arenaroot       (*Perl_Ixpv_arenaroot_ptr(aTHX))
 #undef  PL_xpv_root
-#define PL_xpv_root            (*Perl_Ixpv_root_ptr(aTHXo))
+#define PL_xpv_root            (*Perl_Ixpv_root_ptr(aTHX))
 #undef  PL_xpvav_arenaroot
-#define PL_xpvav_arenaroot     (*Perl_Ixpvav_arenaroot_ptr(aTHXo))
+#define PL_xpvav_arenaroot     (*Perl_Ixpvav_arenaroot_ptr(aTHX))
 #undef  PL_xpvav_root
-#define PL_xpvav_root          (*Perl_Ixpvav_root_ptr(aTHXo))
+#define PL_xpvav_root          (*Perl_Ixpvav_root_ptr(aTHX))
 #undef  PL_xpvbm_arenaroot
-#define PL_xpvbm_arenaroot     (*Perl_Ixpvbm_arenaroot_ptr(aTHXo))
+#define PL_xpvbm_arenaroot     (*Perl_Ixpvbm_arenaroot_ptr(aTHX))
 #undef  PL_xpvbm_root
-#define PL_xpvbm_root          (*Perl_Ixpvbm_root_ptr(aTHXo))
+#define PL_xpvbm_root          (*Perl_Ixpvbm_root_ptr(aTHX))
 #undef  PL_xpvcv_arenaroot
-#define PL_xpvcv_arenaroot     (*Perl_Ixpvcv_arenaroot_ptr(aTHXo))
+#define PL_xpvcv_arenaroot     (*Perl_Ixpvcv_arenaroot_ptr(aTHX))
 #undef  PL_xpvcv_root
-#define PL_xpvcv_root          (*Perl_Ixpvcv_root_ptr(aTHXo))
+#define PL_xpvcv_root          (*Perl_Ixpvcv_root_ptr(aTHX))
 #undef  PL_xpvhv_arenaroot
-#define PL_xpvhv_arenaroot     (*Perl_Ixpvhv_arenaroot_ptr(aTHXo))
+#define PL_xpvhv_arenaroot     (*Perl_Ixpvhv_arenaroot_ptr(aTHX))
 #undef  PL_xpvhv_root
-#define PL_xpvhv_root          (*Perl_Ixpvhv_root_ptr(aTHXo))
+#define PL_xpvhv_root          (*Perl_Ixpvhv_root_ptr(aTHX))
 #undef  PL_xpviv_arenaroot
-#define PL_xpviv_arenaroot     (*Perl_Ixpviv_arenaroot_ptr(aTHXo))
+#define PL_xpviv_arenaroot     (*Perl_Ixpviv_arenaroot_ptr(aTHX))
 #undef  PL_xpviv_root
-#define PL_xpviv_root          (*Perl_Ixpviv_root_ptr(aTHXo))
+#define PL_xpviv_root          (*Perl_Ixpviv_root_ptr(aTHX))
 #undef  PL_xpvlv_arenaroot
-#define PL_xpvlv_arenaroot     (*Perl_Ixpvlv_arenaroot_ptr(aTHXo))
+#define PL_xpvlv_arenaroot     (*Perl_Ixpvlv_arenaroot_ptr(aTHX))
 #undef  PL_xpvlv_root
-#define PL_xpvlv_root          (*Perl_Ixpvlv_root_ptr(aTHXo))
+#define PL_xpvlv_root          (*Perl_Ixpvlv_root_ptr(aTHX))
 #undef  PL_xpvmg_arenaroot
-#define PL_xpvmg_arenaroot     (*Perl_Ixpvmg_arenaroot_ptr(aTHXo))
+#define PL_xpvmg_arenaroot     (*Perl_Ixpvmg_arenaroot_ptr(aTHX))
 #undef  PL_xpvmg_root
-#define PL_xpvmg_root          (*Perl_Ixpvmg_root_ptr(aTHXo))
+#define PL_xpvmg_root          (*Perl_Ixpvmg_root_ptr(aTHX))
 #undef  PL_xpvnv_arenaroot
-#define PL_xpvnv_arenaroot     (*Perl_Ixpvnv_arenaroot_ptr(aTHXo))
+#define PL_xpvnv_arenaroot     (*Perl_Ixpvnv_arenaroot_ptr(aTHX))
 #undef  PL_xpvnv_root
-#define PL_xpvnv_root          (*Perl_Ixpvnv_root_ptr(aTHXo))
+#define PL_xpvnv_root          (*Perl_Ixpvnv_root_ptr(aTHX))
 #undef  PL_xrv_arenaroot
-#define PL_xrv_arenaroot       (*Perl_Ixrv_arenaroot_ptr(aTHXo))
+#define PL_xrv_arenaroot       (*Perl_Ixrv_arenaroot_ptr(aTHX))
 #undef  PL_xrv_root
-#define PL_xrv_root            (*Perl_Ixrv_root_ptr(aTHXo))
+#define PL_xrv_root            (*Perl_Ixrv_root_ptr(aTHX))
 #undef  PL_yychar
-#define PL_yychar              (*Perl_Iyychar_ptr(aTHXo))
+#define PL_yychar              (*Perl_Iyychar_ptr(aTHX))
 #undef  PL_yydebug
-#define PL_yydebug             (*Perl_Iyydebug_ptr(aTHXo))
+#define PL_yydebug             (*Perl_Iyydebug_ptr(aTHX))
 #undef  PL_yyerrflag
-#define PL_yyerrflag           (*Perl_Iyyerrflag_ptr(aTHXo))
+#define PL_yyerrflag           (*Perl_Iyyerrflag_ptr(aTHX))
 #undef  PL_yylval
-#define PL_yylval              (*Perl_Iyylval_ptr(aTHXo))
+#define PL_yylval              (*Perl_Iyylval_ptr(aTHX))
 #undef  PL_yynerrs
-#define PL_yynerrs             (*Perl_Iyynerrs_ptr(aTHXo))
+#define PL_yynerrs             (*Perl_Iyynerrs_ptr(aTHX))
 #undef  PL_yyval
-#define PL_yyval               (*Perl_Iyyval_ptr(aTHXo))
+#define PL_yyval               (*Perl_Iyyval_ptr(aTHX))
 #undef  PL_Sv
-#define PL_Sv                  (*Perl_TSv_ptr(aTHXo))
+#define PL_Sv                  (*Perl_TSv_ptr(aTHX))
 #undef  PL_Xpv
-#define PL_Xpv                 (*Perl_TXpv_ptr(aTHXo))
+#define PL_Xpv                 (*Perl_TXpv_ptr(aTHX))
 #undef  PL_av_fetch_sv
-#define PL_av_fetch_sv         (*Perl_Tav_fetch_sv_ptr(aTHXo))
+#define PL_av_fetch_sv         (*Perl_Tav_fetch_sv_ptr(aTHX))
 #undef  PL_bodytarget
-#define PL_bodytarget          (*Perl_Tbodytarget_ptr(aTHXo))
+#define PL_bodytarget          (*Perl_Tbodytarget_ptr(aTHX))
 #undef  PL_bostr
-#define PL_bostr               (*Perl_Tbostr_ptr(aTHXo))
+#define PL_bostr               (*Perl_Tbostr_ptr(aTHX))
 #undef  PL_chopset
-#define PL_chopset             (*Perl_Tchopset_ptr(aTHXo))
+#define PL_chopset             (*Perl_Tchopset_ptr(aTHX))
 #undef  PL_colors
-#define PL_colors              (*Perl_Tcolors_ptr(aTHXo))
+#define PL_colors              (*Perl_Tcolors_ptr(aTHX))
 #undef  PL_colorset
-#define PL_colorset            (*Perl_Tcolorset_ptr(aTHXo))
+#define PL_colorset            (*Perl_Tcolorset_ptr(aTHX))
 #undef  PL_curcop
-#define PL_curcop              (*Perl_Tcurcop_ptr(aTHXo))
+#define PL_curcop              (*Perl_Tcurcop_ptr(aTHX))
 #undef  PL_curpad
-#define PL_curpad              (*Perl_Tcurpad_ptr(aTHXo))
+#define PL_curpad              (*Perl_Tcurpad_ptr(aTHX))
 #undef  PL_curpm
-#define PL_curpm               (*Perl_Tcurpm_ptr(aTHXo))
+#define PL_curpm               (*Perl_Tcurpm_ptr(aTHX))
 #undef  PL_curstack
-#define PL_curstack            (*Perl_Tcurstack_ptr(aTHXo))
+#define PL_curstack            (*Perl_Tcurstack_ptr(aTHX))
 #undef  PL_curstackinfo
-#define PL_curstackinfo                (*Perl_Tcurstackinfo_ptr(aTHXo))
+#define PL_curstackinfo                (*Perl_Tcurstackinfo_ptr(aTHX))
 #undef  PL_curstash
-#define PL_curstash            (*Perl_Tcurstash_ptr(aTHXo))
+#define PL_curstash            (*Perl_Tcurstash_ptr(aTHX))
 #undef  PL_defoutgv
-#define PL_defoutgv            (*Perl_Tdefoutgv_ptr(aTHXo))
+#define PL_defoutgv            (*Perl_Tdefoutgv_ptr(aTHX))
 #undef  PL_defstash
-#define PL_defstash            (*Perl_Tdefstash_ptr(aTHXo))
+#define PL_defstash            (*Perl_Tdefstash_ptr(aTHX))
 #undef  PL_delaymagic
-#define PL_delaymagic          (*Perl_Tdelaymagic_ptr(aTHXo))
+#define PL_delaymagic          (*Perl_Tdelaymagic_ptr(aTHX))
 #undef  PL_dirty
-#define PL_dirty               (*Perl_Tdirty_ptr(aTHXo))
+#define PL_dirty               (*Perl_Tdirty_ptr(aTHX))
 #undef  PL_dumpindent
-#define PL_dumpindent          (*Perl_Tdumpindent_ptr(aTHXo))
+#define PL_dumpindent          (*Perl_Tdumpindent_ptr(aTHX))
 #undef  PL_efloatbuf
-#define PL_efloatbuf           (*Perl_Tefloatbuf_ptr(aTHXo))
+#define PL_efloatbuf           (*Perl_Tefloatbuf_ptr(aTHX))
 #undef  PL_efloatsize
-#define PL_efloatsize          (*Perl_Tefloatsize_ptr(aTHXo))
+#define PL_efloatsize          (*Perl_Tefloatsize_ptr(aTHX))
 #undef  PL_errors
-#define PL_errors              (*Perl_Terrors_ptr(aTHXo))
+#define PL_errors              (*Perl_Terrors_ptr(aTHX))
 #undef  PL_extralen
-#define PL_extralen            (*Perl_Textralen_ptr(aTHXo))
+#define PL_extralen            (*Perl_Textralen_ptr(aTHX))
 #undef  PL_firstgv
-#define PL_firstgv             (*Perl_Tfirstgv_ptr(aTHXo))
+#define PL_firstgv             (*Perl_Tfirstgv_ptr(aTHX))
 #undef  PL_formtarget
-#define PL_formtarget          (*Perl_Tformtarget_ptr(aTHXo))
+#define PL_formtarget          (*Perl_Tformtarget_ptr(aTHX))
 #undef  PL_hv_fetch_ent_mh
-#define PL_hv_fetch_ent_mh     (*Perl_Thv_fetch_ent_mh_ptr(aTHXo))
+#define PL_hv_fetch_ent_mh     (*Perl_Thv_fetch_ent_mh_ptr(aTHX))
 #undef  PL_hv_fetch_sv
-#define PL_hv_fetch_sv         (*Perl_Thv_fetch_sv_ptr(aTHXo))
+#define PL_hv_fetch_sv         (*Perl_Thv_fetch_sv_ptr(aTHX))
 #undef  PL_in_eval
-#define PL_in_eval             (*Perl_Tin_eval_ptr(aTHXo))
+#define PL_in_eval             (*Perl_Tin_eval_ptr(aTHX))
 #undef  PL_last_in_gv
-#define PL_last_in_gv          (*Perl_Tlast_in_gv_ptr(aTHXo))
+#define PL_last_in_gv          (*Perl_Tlast_in_gv_ptr(aTHX))
 #undef  PL_lastgotoprobe
-#define PL_lastgotoprobe       (*Perl_Tlastgotoprobe_ptr(aTHXo))
+#define PL_lastgotoprobe       (*Perl_Tlastgotoprobe_ptr(aTHX))
 #undef  PL_lastscream
-#define PL_lastscream          (*Perl_Tlastscream_ptr(aTHXo))
+#define PL_lastscream          (*Perl_Tlastscream_ptr(aTHX))
 #undef  PL_localizing
-#define PL_localizing          (*Perl_Tlocalizing_ptr(aTHXo))
+#define PL_localizing          (*Perl_Tlocalizing_ptr(aTHX))
 #undef  PL_mainstack
-#define PL_mainstack           (*Perl_Tmainstack_ptr(aTHXo))
+#define PL_mainstack           (*Perl_Tmainstack_ptr(aTHX))
 #undef  PL_markstack
-#define PL_markstack           (*Perl_Tmarkstack_ptr(aTHXo))
+#define PL_markstack           (*Perl_Tmarkstack_ptr(aTHX))
 #undef  PL_markstack_max
-#define PL_markstack_max       (*Perl_Tmarkstack_max_ptr(aTHXo))
+#define PL_markstack_max       (*Perl_Tmarkstack_max_ptr(aTHX))
 #undef  PL_markstack_ptr
-#define PL_markstack_ptr       (*Perl_Tmarkstack_ptr_ptr(aTHXo))
+#define PL_markstack_ptr       (*Perl_Tmarkstack_ptr_ptr(aTHX))
 #undef  PL_maxscream
-#define PL_maxscream           (*Perl_Tmaxscream_ptr(aTHXo))
+#define PL_maxscream           (*Perl_Tmaxscream_ptr(aTHX))
 #undef  PL_modcount
-#define PL_modcount            (*Perl_Tmodcount_ptr(aTHXo))
+#define PL_modcount            (*Perl_Tmodcount_ptr(aTHX))
 #undef  PL_na
-#define PL_na                  (*Perl_Tna_ptr(aTHXo))
+#define PL_na                  (*Perl_Tna_ptr(aTHX))
 #undef  PL_nrs
-#define PL_nrs                 (*Perl_Tnrs_ptr(aTHXo))
+#define PL_nrs                 (*Perl_Tnrs_ptr(aTHX))
 #undef  PL_ofs_sv
-#define PL_ofs_sv              (*Perl_Tofs_sv_ptr(aTHXo))
+#define PL_ofs_sv              (*Perl_Tofs_sv_ptr(aTHX))
 #undef  PL_op
-#define PL_op                  (*Perl_Top_ptr(aTHXo))
+#define PL_op                  (*Perl_Top_ptr(aTHX))
 #undef  PL_opsave
-#define PL_opsave              (*Perl_Topsave_ptr(aTHXo))
+#define PL_opsave              (*Perl_Topsave_ptr(aTHX))
 #undef  PL_peepp
-#define PL_peepp               (*Perl_Tpeepp_ptr(aTHXo))
+#define PL_peepp               (*Perl_Tpeepp_ptr(aTHX))
 #undef  PL_protect
-#define PL_protect             (*Perl_Tprotect_ptr(aTHXo))
+#define PL_protect             (*Perl_Tprotect_ptr(aTHX))
 #undef  PL_reg_call_cc
-#define PL_reg_call_cc         (*Perl_Treg_call_cc_ptr(aTHXo))
+#define PL_reg_call_cc         (*Perl_Treg_call_cc_ptr(aTHX))
 #undef  PL_reg_curpm
-#define PL_reg_curpm           (*Perl_Treg_curpm_ptr(aTHXo))
+#define PL_reg_curpm           (*Perl_Treg_curpm_ptr(aTHX))
 #undef  PL_reg_eval_set
-#define PL_reg_eval_set                (*Perl_Treg_eval_set_ptr(aTHXo))
+#define PL_reg_eval_set                (*Perl_Treg_eval_set_ptr(aTHX))
 #undef  PL_reg_flags
-#define PL_reg_flags           (*Perl_Treg_flags_ptr(aTHXo))
+#define PL_reg_flags           (*Perl_Treg_flags_ptr(aTHX))
 #undef  PL_reg_ganch
-#define PL_reg_ganch           (*Perl_Treg_ganch_ptr(aTHXo))
+#define PL_reg_ganch           (*Perl_Treg_ganch_ptr(aTHX))
 #undef  PL_reg_leftiter
-#define PL_reg_leftiter                (*Perl_Treg_leftiter_ptr(aTHXo))
+#define PL_reg_leftiter                (*Perl_Treg_leftiter_ptr(aTHX))
 #undef  PL_reg_magic
-#define PL_reg_magic           (*Perl_Treg_magic_ptr(aTHXo))
+#define PL_reg_magic           (*Perl_Treg_magic_ptr(aTHX))
 #undef  PL_reg_maxiter
-#define PL_reg_maxiter         (*Perl_Treg_maxiter_ptr(aTHXo))
+#define PL_reg_maxiter         (*Perl_Treg_maxiter_ptr(aTHX))
 #undef  PL_reg_oldcurpm
-#define PL_reg_oldcurpm                (*Perl_Treg_oldcurpm_ptr(aTHXo))
+#define PL_reg_oldcurpm                (*Perl_Treg_oldcurpm_ptr(aTHX))
 #undef  PL_reg_oldpos
-#define PL_reg_oldpos          (*Perl_Treg_oldpos_ptr(aTHXo))
+#define PL_reg_oldpos          (*Perl_Treg_oldpos_ptr(aTHX))
 #undef  PL_reg_oldsaved
-#define PL_reg_oldsaved                (*Perl_Treg_oldsaved_ptr(aTHXo))
+#define PL_reg_oldsaved                (*Perl_Treg_oldsaved_ptr(aTHX))
 #undef  PL_reg_oldsavedlen
-#define PL_reg_oldsavedlen     (*Perl_Treg_oldsavedlen_ptr(aTHXo))
+#define PL_reg_oldsavedlen     (*Perl_Treg_oldsavedlen_ptr(aTHX))
 #undef  PL_reg_poscache
-#define PL_reg_poscache                (*Perl_Treg_poscache_ptr(aTHXo))
+#define PL_reg_poscache                (*Perl_Treg_poscache_ptr(aTHX))
 #undef  PL_reg_poscache_size
-#define PL_reg_poscache_size   (*Perl_Treg_poscache_size_ptr(aTHXo))
+#define PL_reg_poscache_size   (*Perl_Treg_poscache_size_ptr(aTHX))
 #undef  PL_reg_re
-#define PL_reg_re              (*Perl_Treg_re_ptr(aTHXo))
+#define PL_reg_re              (*Perl_Treg_re_ptr(aTHX))
 #undef  PL_reg_start_tmp
-#define PL_reg_start_tmp       (*Perl_Treg_start_tmp_ptr(aTHXo))
+#define PL_reg_start_tmp       (*Perl_Treg_start_tmp_ptr(aTHX))
 #undef  PL_reg_start_tmpl
-#define PL_reg_start_tmpl      (*Perl_Treg_start_tmpl_ptr(aTHXo))
+#define PL_reg_start_tmpl      (*Perl_Treg_start_tmpl_ptr(aTHX))
 #undef  PL_reg_starttry
-#define PL_reg_starttry                (*Perl_Treg_starttry_ptr(aTHXo))
+#define PL_reg_starttry                (*Perl_Treg_starttry_ptr(aTHX))
 #undef  PL_reg_sv
-#define PL_reg_sv              (*Perl_Treg_sv_ptr(aTHXo))
+#define PL_reg_sv              (*Perl_Treg_sv_ptr(aTHX))
 #undef  PL_reg_sv_utf8
-#define PL_reg_sv_utf8         (*Perl_Treg_sv_utf8_ptr(aTHXo))
+#define PL_reg_sv_utf8         (*Perl_Treg_sv_utf8_ptr(aTHX))
 #undef  PL_reg_whilem_seen
-#define PL_reg_whilem_seen     (*Perl_Treg_whilem_seen_ptr(aTHXo))
+#define PL_reg_whilem_seen     (*Perl_Treg_whilem_seen_ptr(aTHX))
 #undef  PL_regbol
-#define PL_regbol              (*Perl_Tregbol_ptr(aTHXo))
+#define PL_regbol              (*Perl_Tregbol_ptr(aTHX))
 #undef  PL_regcc
-#define PL_regcc               (*Perl_Tregcc_ptr(aTHXo))
+#define PL_regcc               (*Perl_Tregcc_ptr(aTHX))
 #undef  PL_regcode
-#define PL_regcode             (*Perl_Tregcode_ptr(aTHXo))
+#define PL_regcode             (*Perl_Tregcode_ptr(aTHX))
 #undef  PL_regcomp_parse
-#define PL_regcomp_parse       (*Perl_Tregcomp_parse_ptr(aTHXo))
+#define PL_regcomp_parse       (*Perl_Tregcomp_parse_ptr(aTHX))
 #undef  PL_regcomp_rx
-#define PL_regcomp_rx          (*Perl_Tregcomp_rx_ptr(aTHXo))
+#define PL_regcomp_rx          (*Perl_Tregcomp_rx_ptr(aTHX))
 #undef  PL_regcompat1
-#define PL_regcompat1          (*Perl_Tregcompat1_ptr(aTHXo))
+#define PL_regcompat1          (*Perl_Tregcompat1_ptr(aTHX))
 #undef  PL_regcompp
-#define PL_regcompp            (*Perl_Tregcompp_ptr(aTHXo))
+#define PL_regcompp            (*Perl_Tregcompp_ptr(aTHX))
 #undef  PL_regdata
-#define PL_regdata             (*Perl_Tregdata_ptr(aTHXo))
+#define PL_regdata             (*Perl_Tregdata_ptr(aTHX))
 #undef  PL_regdummy
-#define PL_regdummy            (*Perl_Tregdummy_ptr(aTHXo))
+#define PL_regdummy            (*Perl_Tregdummy_ptr(aTHX))
 #undef  PL_regendp
-#define PL_regendp             (*Perl_Tregendp_ptr(aTHXo))
+#define PL_regendp             (*Perl_Tregendp_ptr(aTHX))
 #undef  PL_regeol
-#define PL_regeol              (*Perl_Tregeol_ptr(aTHXo))
+#define PL_regeol              (*Perl_Tregeol_ptr(aTHX))
 #undef  PL_regexecp
-#define PL_regexecp            (*Perl_Tregexecp_ptr(aTHXo))
+#define PL_regexecp            (*Perl_Tregexecp_ptr(aTHX))
 #undef  PL_regflags
-#define PL_regflags            (*Perl_Tregflags_ptr(aTHXo))
+#define PL_regflags            (*Perl_Tregflags_ptr(aTHX))
 #undef  PL_regfree
-#define PL_regfree             (*Perl_Tregfree_ptr(aTHXo))
+#define PL_regfree             (*Perl_Tregfree_ptr(aTHX))
 #undef  PL_regindent
-#define PL_regindent           (*Perl_Tregindent_ptr(aTHXo))
+#define PL_regindent           (*Perl_Tregindent_ptr(aTHX))
 #undef  PL_reginput
-#define PL_reginput            (*Perl_Treginput_ptr(aTHXo))
+#define PL_reginput            (*Perl_Treginput_ptr(aTHX))
 #undef  PL_regint_start
-#define PL_regint_start                (*Perl_Tregint_start_ptr(aTHXo))
+#define PL_regint_start                (*Perl_Tregint_start_ptr(aTHX))
 #undef  PL_regint_string
-#define PL_regint_string       (*Perl_Tregint_string_ptr(aTHXo))
+#define PL_regint_string       (*Perl_Tregint_string_ptr(aTHX))
 #undef  PL_reginterp_cnt
-#define PL_reginterp_cnt       (*Perl_Treginterp_cnt_ptr(aTHXo))
+#define PL_reginterp_cnt       (*Perl_Treginterp_cnt_ptr(aTHX))
 #undef  PL_reglastcloseparen
-#define PL_reglastcloseparen   (*Perl_Treglastcloseparen_ptr(aTHXo))
+#define PL_reglastcloseparen   (*Perl_Treglastcloseparen_ptr(aTHX))
 #undef  PL_reglastparen
-#define PL_reglastparen                (*Perl_Treglastparen_ptr(aTHXo))
+#define PL_reglastparen                (*Perl_Treglastparen_ptr(aTHX))
 #undef  PL_regnarrate
-#define PL_regnarrate          (*Perl_Tregnarrate_ptr(aTHXo))
+#define PL_regnarrate          (*Perl_Tregnarrate_ptr(aTHX))
 #undef  PL_regnaughty
-#define PL_regnaughty          (*Perl_Tregnaughty_ptr(aTHXo))
+#define PL_regnaughty          (*Perl_Tregnaughty_ptr(aTHX))
 #undef  PL_regnpar
-#define PL_regnpar             (*Perl_Tregnpar_ptr(aTHXo))
+#define PL_regnpar             (*Perl_Tregnpar_ptr(aTHX))
 #undef  PL_regprecomp
-#define PL_regprecomp          (*Perl_Tregprecomp_ptr(aTHXo))
+#define PL_regprecomp          (*Perl_Tregprecomp_ptr(aTHX))
 #undef  PL_regprogram
-#define PL_regprogram          (*Perl_Tregprogram_ptr(aTHXo))
+#define PL_regprogram          (*Perl_Tregprogram_ptr(aTHX))
 #undef  PL_regsawback
-#define PL_regsawback          (*Perl_Tregsawback_ptr(aTHXo))
+#define PL_regsawback          (*Perl_Tregsawback_ptr(aTHX))
 #undef  PL_regseen
-#define PL_regseen             (*Perl_Tregseen_ptr(aTHXo))
+#define PL_regseen             (*Perl_Tregseen_ptr(aTHX))
 #undef  PL_regsize
-#define PL_regsize             (*Perl_Tregsize_ptr(aTHXo))
+#define PL_regsize             (*Perl_Tregsize_ptr(aTHX))
 #undef  PL_regstartp
-#define PL_regstartp           (*Perl_Tregstartp_ptr(aTHXo))
+#define PL_regstartp           (*Perl_Tregstartp_ptr(aTHX))
 #undef  PL_regtill
-#define PL_regtill             (*Perl_Tregtill_ptr(aTHXo))
+#define PL_regtill             (*Perl_Tregtill_ptr(aTHX))
 #undef  PL_regxend
-#define PL_regxend             (*Perl_Tregxend_ptr(aTHXo))
+#define PL_regxend             (*Perl_Tregxend_ptr(aTHX))
 #undef  PL_restartop
-#define PL_restartop           (*Perl_Trestartop_ptr(aTHXo))
+#define PL_restartop           (*Perl_Trestartop_ptr(aTHX))
 #undef  PL_retstack
-#define PL_retstack            (*Perl_Tretstack_ptr(aTHXo))
+#define PL_retstack            (*Perl_Tretstack_ptr(aTHX))
 #undef  PL_retstack_ix
-#define PL_retstack_ix         (*Perl_Tretstack_ix_ptr(aTHXo))
+#define PL_retstack_ix         (*Perl_Tretstack_ix_ptr(aTHX))
 #undef  PL_retstack_max
-#define PL_retstack_max                (*Perl_Tretstack_max_ptr(aTHXo))
+#define PL_retstack_max                (*Perl_Tretstack_max_ptr(aTHX))
 #undef  PL_rs
-#define PL_rs                  (*Perl_Trs_ptr(aTHXo))
+#define PL_rs                  (*Perl_Trs_ptr(aTHX))
 #undef  PL_savestack
-#define PL_savestack           (*Perl_Tsavestack_ptr(aTHXo))
+#define PL_savestack           (*Perl_Tsavestack_ptr(aTHX))
 #undef  PL_savestack_ix
-#define PL_savestack_ix                (*Perl_Tsavestack_ix_ptr(aTHXo))
+#define PL_savestack_ix                (*Perl_Tsavestack_ix_ptr(aTHX))
 #undef  PL_savestack_max
-#define PL_savestack_max       (*Perl_Tsavestack_max_ptr(aTHXo))
+#define PL_savestack_max       (*Perl_Tsavestack_max_ptr(aTHX))
 #undef  PL_scopestack
-#define PL_scopestack          (*Perl_Tscopestack_ptr(aTHXo))
+#define PL_scopestack          (*Perl_Tscopestack_ptr(aTHX))
 #undef  PL_scopestack_ix
-#define PL_scopestack_ix       (*Perl_Tscopestack_ix_ptr(aTHXo))
+#define PL_scopestack_ix       (*Perl_Tscopestack_ix_ptr(aTHX))
 #undef  PL_scopestack_max
-#define PL_scopestack_max      (*Perl_Tscopestack_max_ptr(aTHXo))
+#define PL_scopestack_max      (*Perl_Tscopestack_max_ptr(aTHX))
 #undef  PL_screamfirst
-#define PL_screamfirst         (*Perl_Tscreamfirst_ptr(aTHXo))
+#define PL_screamfirst         (*Perl_Tscreamfirst_ptr(aTHX))
 #undef  PL_screamnext
-#define PL_screamnext          (*Perl_Tscreamnext_ptr(aTHXo))
+#define PL_screamnext          (*Perl_Tscreamnext_ptr(aTHX))
 #undef  PL_secondgv
-#define PL_secondgv            (*Perl_Tsecondgv_ptr(aTHXo))
+#define PL_secondgv            (*Perl_Tsecondgv_ptr(aTHX))
 #undef  PL_seen_evals
-#define PL_seen_evals          (*Perl_Tseen_evals_ptr(aTHXo))
+#define PL_seen_evals          (*Perl_Tseen_evals_ptr(aTHX))
 #undef  PL_seen_zerolen
-#define PL_seen_zerolen                (*Perl_Tseen_zerolen_ptr(aTHXo))
+#define PL_seen_zerolen                (*Perl_Tseen_zerolen_ptr(aTHX))
 #undef  PL_sortcop
-#define PL_sortcop             (*Perl_Tsortcop_ptr(aTHXo))
+#define PL_sortcop             (*Perl_Tsortcop_ptr(aTHX))
 #undef  PL_sortcxix
-#define PL_sortcxix            (*Perl_Tsortcxix_ptr(aTHXo))
+#define PL_sortcxix            (*Perl_Tsortcxix_ptr(aTHX))
 #undef  PL_sortstash
-#define PL_sortstash           (*Perl_Tsortstash_ptr(aTHXo))
+#define PL_sortstash           (*Perl_Tsortstash_ptr(aTHX))
 #undef  PL_stack_base
-#define PL_stack_base          (*Perl_Tstack_base_ptr(aTHXo))
+#define PL_stack_base          (*Perl_Tstack_base_ptr(aTHX))
 #undef  PL_stack_max
-#define PL_stack_max           (*Perl_Tstack_max_ptr(aTHXo))
+#define PL_stack_max           (*Perl_Tstack_max_ptr(aTHX))
 #undef  PL_stack_sp
-#define PL_stack_sp            (*Perl_Tstack_sp_ptr(aTHXo))
+#define PL_stack_sp            (*Perl_Tstack_sp_ptr(aTHX))
 #undef  PL_start_env
-#define PL_start_env           (*Perl_Tstart_env_ptr(aTHXo))
+#define PL_start_env           (*Perl_Tstart_env_ptr(aTHX))
 #undef  PL_statbuf
-#define PL_statbuf             (*Perl_Tstatbuf_ptr(aTHXo))
+#define PL_statbuf             (*Perl_Tstatbuf_ptr(aTHX))
 #undef  PL_statcache
-#define PL_statcache           (*Perl_Tstatcache_ptr(aTHXo))
+#define PL_statcache           (*Perl_Tstatcache_ptr(aTHX))
 #undef  PL_statgv
-#define PL_statgv              (*Perl_Tstatgv_ptr(aTHXo))
+#define PL_statgv              (*Perl_Tstatgv_ptr(aTHX))
 #undef  PL_statname
-#define PL_statname            (*Perl_Tstatname_ptr(aTHXo))
+#define PL_statname            (*Perl_Tstatname_ptr(aTHX))
 #undef  PL_tainted
-#define PL_tainted             (*Perl_Ttainted_ptr(aTHXo))
+#define PL_tainted             (*Perl_Ttainted_ptr(aTHX))
 #undef  PL_timesbuf
-#define PL_timesbuf            (*Perl_Ttimesbuf_ptr(aTHXo))
+#define PL_timesbuf            (*Perl_Ttimesbuf_ptr(aTHX))
 #undef  PL_tmps_floor
-#define PL_tmps_floor          (*Perl_Ttmps_floor_ptr(aTHXo))
+#define PL_tmps_floor          (*Perl_Ttmps_floor_ptr(aTHX))
 #undef  PL_tmps_ix
-#define PL_tmps_ix             (*Perl_Ttmps_ix_ptr(aTHXo))
+#define PL_tmps_ix             (*Perl_Ttmps_ix_ptr(aTHX))
 #undef  PL_tmps_max
-#define PL_tmps_max            (*Perl_Ttmps_max_ptr(aTHXo))
+#define PL_tmps_max            (*Perl_Ttmps_max_ptr(aTHX))
 #undef  PL_tmps_stack
-#define PL_tmps_stack          (*Perl_Ttmps_stack_ptr(aTHXo))
+#define PL_tmps_stack          (*Perl_Ttmps_stack_ptr(aTHX))
 #undef  PL_top_env
-#define PL_top_env             (*Perl_Ttop_env_ptr(aTHXo))
+#define PL_top_env             (*Perl_Ttop_env_ptr(aTHX))
 #undef  PL_toptarget
-#define PL_toptarget           (*Perl_Ttoptarget_ptr(aTHXo))
+#define PL_toptarget           (*Perl_Ttoptarget_ptr(aTHX))
 #undef  PL_watchaddr
-#define PL_watchaddr           (*Perl_Twatchaddr_ptr(aTHXo))
+#define PL_watchaddr           (*Perl_Twatchaddr_ptr(aTHX))
 #undef  PL_watchok
-#define PL_watchok             (*Perl_Twatchok_ptr(aTHXo))
+#define PL_watchok             (*Perl_Twatchok_ptr(aTHX))
 #undef  PL_No
 #define PL_No                  (*Perl_GNo_ptr(NULL))
 #undef  PL_Yes
@@ -938,7 +931,7 @@ START_EXTERN_C
 #define PL_thr_key             (*Perl_Gthr_key_ptr(NULL))
 
 #endif /* !PERL_CORE */
-#endif /* PERL_OBJECT || MULTIPLICITY */
+#endif /* MULTIPLICITY */
 
 #endif /* __perlapi_h__ */
 
index 90867de..549a187 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -426,7 +426,7 @@ PerlIO_list_push(PerlIO_list_t *list,PerlIO_funcs *funcs,SV *arg)
 
 
 void
-PerlIO_cleanup_layers(pTHXo_ void *data)
+PerlIO_cleanup_layers(pTHX_ void *data)
 {
 #if 0
  PerlIO_known_layers = Nullhv;
diff --git a/perly.c b/perly.c
index 5596768..2d4d79e 100644 (file)
--- a/perly.c
+++ b/perly.c
@@ -31,7 +31,7 @@ struct ysv {
     YYSTYPE oldyylval;
 };
 
-static void yydestruct(pTHXo_ void *ptr);
+static void yydestruct(pTHX_ void *ptr);
 
 #line 51 "perly.y"
 #if 0 /* get this from perly.h instead */
@@ -2528,12 +2528,8 @@ yyaccept:
     return retval;
 }
 
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#endif
-
 static void
-yydestruct(pTHXo_ void *ptr)
+yydestruct(pTHX_ void *ptr)
 {
     struct ysv* ysave = (struct ysv*)ptr;
     if (ysave->yyss) Safefree(ysave->yyss);
diff --git a/perly.y b/perly.y
index 1928b44..618278b 100644 (file)
--- a/perly.y
+++ b/perly.y
@@ -41,7 +41,7 @@ struct ysv {
     YYSTYPE oldyylval;
 };
 
-static void yydestruct(pTHXo_ void *ptr);
+static void yydestruct(pTHX_ void *ptr);
 
 %}
 
index 8d58419..aab3a86 100644 (file)
                          YYFINAL, yychar, yys);
              }
  #endif
-@@ -2513,20 +2495,54 @@
+@@ -2513,20 +2495,50 @@
          yystate = yydgoto[yym];
  #if YYDEBUG
      if (yydebug)
 +    return retval;
 +}
 +
-+#ifdef PERL_OBJECT
-+#include "XSUB.h"
-+#endif
-+
 +static void
-+yydestruct(pTHXo_ void *ptr)
++yydestruct(pTHX_ void *ptr)
 +{
 +    struct ysv* ysave = (struct ysv*)ptr;
 +    if (ysave->yyss) Safefree(ysave->yyss);
index 822446e..8b11653 100644 (file)
@@ -1727,24 +1727,22 @@ The Perl interpreter can be regarded as a closed box: it has an API
 for feeding it code or otherwise making it do things, but it also has
 functions for its own use.  This smells a lot like an object, and
 there are ways for you to build Perl so that you can have multiple
-interpreters, with one interpreter represented either as a C++ object,
-a C structure, or inside a thread.  The thread, the C structure, or
-the C++ object will contain all the context, the state of that
-interpreter.
-
-Three macros control the major Perl build flavors: MULTIPLICITY,
-USE_5005THREADS and PERL_OBJECT.  The MULTIPLICITY build has a C structure
-that packages all the interpreter state, there is a similar thread-specific
-data structure under USE_5005THREADS, and the (now deprecated) PERL_OBJECT
-build has a C++ class to maintain interpreter state.  In all three cases,
+interpreters, with one interpreter represented either as a C structure,
+or inside a thread-specific structure.  These structures contain all
+the context, the state of that interpreter.
+
+Three macros control the major Perl build flavors: MULTIPLICITY, and
+USE_5005THREADS.  The MULTIPLICITY build has a C structure
+that packages all the interpreter state, and there is a similar thread-specific
+data structure under USE_5005THREADS.  In both cases,
 PERL_IMPLICIT_CONTEXT is also normally defined, and enables the
 support for passing in a "hidden" first argument that represents all three
 data structures.
 
 All this obviously requires a way for the Perl internal functions to be
-C++ methods, subroutines taking some kind of structure as the first
+either subroutines taking some kind of structure as the first
 argument, or subroutines taking nothing as the first argument.  To
-enable these three very different ways of building the interpreter,
+enable these two very different ways of building the interpreter,
 the Perl source (as it does in so many other situations) makes heavy
 use of macros and subroutine naming conventions.
 
@@ -1767,7 +1765,8 @@ function used within the Perl guts:
   STATIC void
   S_incline(pTHX_ char *s)
 
-STATIC becomes "static" in C, and is #define'd to nothing in C++.
+STATIC becomes "static" in C, and may be #define'd to nothing in some
+configurations in future.
 
 A public function (i.e. part of the internal API, but not necessarily
 sanctioned for use in extensions) begins like this:
@@ -1809,22 +1808,6 @@ This works well, and means that XS authors can gleefully write:
 and still have it work under all the modes Perl could have been
 compiled with.
 
-Under PERL_OBJECT in the core, that will translate to either:
-
-    CPerlObj::Perl_sv_setsv(foo,bar);  # in CPerlObj functions,
-                                       # C++ takes care of 'this'
-  or
-
-    pPerl->Perl_sv_setsv(foo,bar);     # in truly static functions,
-                                       # see objXSUB.h
-
-Under PERL_OBJECT in extensions (aka PERL_CAPI), or under
-MULTIPLICITY/USE_5005THREADS with PERL_IMPLICIT_CONTEXT in both core
-and extensions, it will become:
-
-    Perl_sv_setsv(aTHX_ foo, bar);     # the canonical Perl "API"
-                                       # for all build flavors
-
 This doesn't work so cleanly for varargs functions, though, as macros
 imply that the number of arguments is known in advance.  Instead we
 either need to spell them out fully, passing C<aTHX_> as the first
@@ -1838,7 +1821,7 @@ C<#define warner Perl_warner_nocontext> so that extensions get source
 compatibility at the expense of performance.  (Passing an arg is
 cheaper than grabbing it from thread-local storage.)
 
-You can ignore [pad]THX[xo] when browsing the Perl headers/sources.
+You can ignore [pad]THXx when browsing the Perl headers/sources.
 Those are strictly for use within the core.  Extensions and embedders
 need only be aware of [pad]THX.
 
@@ -1983,7 +1966,7 @@ Just as PERL_IMPLICIT_CONTEXT provides a way to bundle up everything
 that the interpreter knows about itself and pass it around, so too are
 there plans to allow the interpreter to bundle up everything it knows
 about the environment it's running on.  This is enabled with the
-PERL_IMPLICIT_SYS macro.  Currently it only works with PERL_OBJECT
+PERL_IMPLICIT_SYS macro.  Currently it only works with USE_ITHREADS
 and USE_5005THREADS on Windows (see inside iperlsys.h).
 
 This allows the ability to provide an extra pointer (called the "host"
index 6a23961..a7ac731 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
 
 #define DOCATCH(o) ((CATCH_GET == TRUE) ? docatch(o) : (o))
 
-static I32 sortcv(pTHXo_ SV *a, SV *b);
-static I32 sortcv_stacked(pTHXo_ SV *a, SV *b);
-static I32 sortcv_xsub(pTHXo_ SV *a, SV *b);
-static I32 sv_ncmp(pTHXo_ SV *a, SV *b);
-static I32 sv_i_ncmp(pTHXo_ SV *a, SV *b);
-static I32 amagic_ncmp(pTHXo_ SV *a, SV *b);
-static I32 amagic_i_ncmp(pTHXo_ SV *a, SV *b);
-static I32 amagic_cmp(pTHXo_ SV *a, SV *b);
-static I32 amagic_cmp_locale(pTHXo_ SV *a, SV *b);
-static I32 run_user_filter(pTHXo_ int idx, SV *buf_sv, int maxlen);
-
-#ifdef PERL_OBJECT
-static I32 sv_cmp_static(pTHXo_ SV *a, SV *b);
-static I32 sv_cmp_locale_static(pTHXo_ SV *a, SV *b);
-#else
+static I32 sortcv(pTHX_ SV *a, SV *b);
+static I32 sortcv_stacked(pTHX_ SV *a, SV *b);
+static I32 sortcv_xsub(pTHX_ SV *a, SV *b);
+static I32 sv_ncmp(pTHX_ SV *a, SV *b);
+static I32 sv_i_ncmp(pTHX_ SV *a, SV *b);
+static I32 amagic_ncmp(pTHX_ SV *a, SV *b);
+static I32 amagic_i_ncmp(pTHX_ SV *a, SV *b);
+static I32 amagic_cmp(pTHX_ SV *a, SV *b);
+static I32 amagic_cmp_locale(pTHX_ SV *a, SV *b);
+static I32 run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen);
+
 #define sv_cmp_static Perl_sv_cmp
 #define sv_cmp_locale_static Perl_sv_cmp_locale
-#endif
 
 PP(pp_wantarray)
 {
@@ -2309,7 +2304,7 @@ PP(pp_goto)
                    PL_stack_sp--;              /* There is no cv arg. */
                    /* Push a mark for the start of arglist */
                    PUSHMARK(mark);
-                   (void)(*CvXSUB(cv))(aTHXo_ cv);
+                   (void)(*CvXSUB(cv))(aTHX_ cv);
                    /* Pop the current context like a decent sub should */
                    POPBLOCK(cx, PL_curpm);
                    /* Do _not_ use PUTBACK, keep the XSUB's return stack! */
@@ -3815,12 +3810,11 @@ S_doparseform(pTHX_ SV *sv)
 #ifdef TESTHARNESS
 #include <sys/types.h>
 typedef        void SV;
-#define pTHXo_
 #define pTHX_
 #define STATIC
 #define New(ID,VAR,N,TYPE) VAR=(TYPE *)malloc((N)*sizeof(TYPE))
 #define        Safefree(VAR) free(VAR)
-typedef int  (*SVCOMPARE_t) (pTHXo_ SV*, SV*);
+typedef int  (*SVCOMPARE_t) (pTHX_ SV*, SV*);
 #endif /* TESTHARNESS */
 
 typedef char * aptr;           /* pointer for arithmetic on sizes */
@@ -4164,16 +4158,8 @@ S_qsortsv(pTHX_ gptr *list1, size_t nmemb, SVCOMPARE_t cmp)
     return;
 }
 
-
-#ifdef PERL_OBJECT
-#undef this
-#define this pPerl
-#include "XSUB.h"
-#endif
-
-
 static I32
-sortcv(pTHXo_ SV *a, SV *b)
+sortcv(pTHX_ SV *a, SV *b)
 {
     I32 oldsaveix = PL_savestack_ix;
     I32 oldscopeix = PL_scopestack_ix;
@@ -4196,7 +4182,7 @@ sortcv(pTHXo_ SV *a, SV *b)
 }
 
 static I32
-sortcv_stacked(pTHXo_ SV *a, SV *b)
+sortcv_stacked(pTHX_ SV *a, SV *b)
 {
     I32 oldsaveix = PL_savestack_ix;
     I32 oldscopeix = PL_scopestack_ix;
@@ -4241,7 +4227,7 @@ sortcv_stacked(pTHXo_ SV *a, SV *b)
 }
 
 static I32
-sortcv_xsub(pTHXo_ SV *a, SV *b)
+sortcv_xsub(pTHX_ SV *a, SV *b)
 {
     dSP;
     I32 oldsaveix = PL_savestack_ix;
@@ -4255,7 +4241,7 @@ sortcv_xsub(pTHXo_ SV *a, SV *b)
     *++SP = a;
     *++SP = b;
     PUTBACK;
-    (void)(*CvXSUB(cv))(aTHXo_ cv);
+    (void)(*CvXSUB(cv))(aTHX_ cv);
     if (PL_stack_sp != PL_stack_base + 1)
        Perl_croak(aTHX_ "Sort subroutine didn't return single value");
     if (!SvNIOKp(*PL_stack_sp))
@@ -4270,7 +4256,7 @@ sortcv_xsub(pTHXo_ SV *a, SV *b)
 
 
 static I32
-sv_ncmp(pTHXo_ SV *a, SV *b)
+sv_ncmp(pTHX_ SV *a, SV *b)
 {
     NV nv1 = SvNV(a);
     NV nv2 = SvNV(b);
@@ -4278,7 +4264,7 @@ sv_ncmp(pTHXo_ SV *a, SV *b)
 }
 
 static I32
-sv_i_ncmp(pTHXo_ SV *a, SV *b)
+sv_i_ncmp(pTHX_ SV *a, SV *b)
 {
     IV iv1 = SvIV(a);
     IV iv2 = SvIV(b);
@@ -4296,7 +4282,7 @@ sv_i_ncmp(pTHXo_ SV *a, SV *b)
        } STMT_END
 
 static I32
-amagic_ncmp(pTHXo_ register SV *a, register SV *b)
+amagic_ncmp(pTHX_ register SV *a, register SV *b)
 {
     SV *tmpsv;
     tryCALL_AMAGICbin(a,b,ncmp,&tmpsv);
@@ -4314,11 +4300,11 @@ amagic_ncmp(pTHXo_ register SV *a, register SV *b)
            return 1;
         return d? -1 : 0;
      }
-     return sv_ncmp(aTHXo_ a, b);
+     return sv_ncmp(aTHX_ a, b);
 }
 
 static I32
-amagic_i_ncmp(pTHXo_ register SV *a, register SV *b)
+amagic_i_ncmp(pTHX_ register SV *a, register SV *b)
 {
     SV *tmpsv;
     tryCALL_AMAGICbin(a,b,ncmp,&tmpsv);
@@ -4336,11 +4322,11 @@ amagic_i_ncmp(pTHXo_ register SV *a, register SV *b)
            return 1;
         return d? -1 : 0;
     }
-    return sv_i_ncmp(aTHXo_ a, b);
+    return sv_i_ncmp(aTHX_ a, b);
 }
 
 static I32
-amagic_cmp(pTHXo_ register SV *str1, register SV *str2)
+amagic_cmp(pTHX_ register SV *str1, register SV *str2)
 {
     SV *tmpsv;
     tryCALL_AMAGICbin(str1,str2,scmp,&tmpsv);
@@ -4362,7 +4348,7 @@ amagic_cmp(pTHXo_ register SV *str1, register SV *str2)
 }
 
 static I32
-amagic_cmp_locale(pTHXo_ register SV *str1, register SV *str2)
+amagic_cmp_locale(pTHX_ register SV *str1, register SV *str2)
 {
     SV *tmpsv;
     tryCALL_AMAGICbin(str1,str2,scmp,&tmpsv);
@@ -4384,7 +4370,7 @@ amagic_cmp_locale(pTHXo_ register SV *str1, register SV *str2)
 }
 
 static I32
-run_user_filter(pTHXo_ int idx, SV *buf_sv, int maxlen)
+run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
 {
     SV *datasv = FILTER_DATA(idx);
     int filter_has_file = IoLINES(datasv);
@@ -4452,19 +4438,3 @@ run_user_filter(pTHXo_ int idx, SV *buf_sv, int maxlen)
 
     return len;
 }
-
-#ifdef PERL_OBJECT
-
-static I32
-sv_cmp_locale_static(pTHXo_ register SV *str1, register SV *str2)
-{
-    return sv_cmp_locale(str1, str2);
-}
-
-static I32
-sv_cmp_static(pTHXo_ register SV *str1, register SV *str2)
-{
-    return sv_cmp(str1, str2);
-}
-
-#endif /* PERL_OBJECT */
index 195e704..bc57075 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -22,7 +22,7 @@
 /* Hot code. */
 
 #ifdef USE_5005THREADS
-static void unset_cvowner(pTHXo_ void *cvarg);
+static void unset_cvowner(pTHX_ void *cvarg);
 #endif /* USE_5005THREADS */
 
 PP(pp_const)
@@ -2734,7 +2734,7 @@ try_autoload:
                PL_curcopdb = NULL;
            }
            /* Do we need to open block here? XXXX */
-           (void)(*CvXSUB(cv))(aTHXo_ cv);
+           (void)(*CvXSUB(cv))(aTHX_ cv);
 
            /* Enforce some sanity in scalar context. */
            if (gimme == G_SCALAR && ++markix != PL_stack_sp - PL_stack_base ) {
@@ -3131,7 +3131,7 @@ S_method_common(pTHX_ SV* meth, U32* hashp)
 
 #ifdef USE_5005THREADS
 static void
-unset_cvowner(pTHXo_ void *cvarg)
+unset_cvowner(pTHX_ void *cvarg)
 {
     register CV* cv = (CV *) cvarg;
 
diff --git a/proto.h b/proto.h
index e69c6f9..f51824e 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -38,23 +38,7 @@ PERL_CALLCONV void   Perl_set_context(void *thx);
 END_EXTERN_C
 
 /* functions with flag 'n' should come before here */
-#if defined(PERL_OBJECT)
-class CPerlObj {
-public:
-       struct interpreter interp;
-       CPerlObj(IPerlMem*, IPerlMem*, IPerlMem*, IPerlEnv*, IPerlStdIO*,
-           IPerlLIO*, IPerlDir*, IPerlSock*, IPerlProc*);
-       void* operator new(size_t nSize, IPerlMem *pvtbl);
-#ifndef __BORLANDC__
-       static void operator delete(void* pPerl, IPerlMem *pvtbl);
-#endif
-       int do_aspawn (void *vreally, void **vmark, void **vsp);
-#endif
-#if defined(PERL_OBJECT)
-public:
-#else
 START_EXTERN_C
-#endif
 #  include "pp_proto.h"
 PERL_CALLCONV SV*      Perl_amagic_call(pTHX_ SV* left, SV* right, int method, int dir);
 PERL_CALLCONV bool     Perl_Gv_AMupdate(pTHX_ HV* stash);
@@ -506,11 +490,9 @@ PERL_CALLCONV I32  Perl_my_memcmp(const char* s1, const char* s2, I32 len);
 #if !defined(HAS_MEMSET)
 PERL_CALLCONV void*    Perl_my_memset(char* loc, I32 ch, I32 len);
 #endif
-#if !defined(PERL_OBJECT)
 PERL_CALLCONV I32      Perl_my_pclose(pTHX_ PerlIO* ptr);
 PERL_CALLCONV PerlIO*  Perl_my_popen(pTHX_ char* cmd, char* mode);
 PERL_CALLCONV PerlIO*  Perl_my_popen_list(pTHX_ char* mode, int n, SV ** args);
-#endif
 PERL_CALLCONV void     Perl_my_setenv(pTHX_ char* nam, char* val);
 PERL_CALLCONV I32      Perl_my_stat(pTHX);
 PERL_CALLCONV char *   Perl_my_strftime(pTHX_ char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst);
@@ -594,13 +576,6 @@ PERL_CALLCONV void Perl_pad_reset(pTHX);
 PERL_CALLCONV void     Perl_pad_swipe(pTHX_ PADOFFSET po);
 PERL_CALLCONV void     Perl_peep(pTHX_ OP* o);
 PERL_CALLCONV PerlIO*  Perl_start_glob(pTHX_ SV* pattern, IO *io);
-#if defined(PERL_OBJECT)
-PERL_CALLCONV void     Perl_construct(pTHX);
-PERL_CALLCONV void     Perl_destruct(pTHX);
-PERL_CALLCONV void     Perl_free(pTHX);
-PERL_CALLCONV int      Perl_run(pTHX);
-PERL_CALLCONV int      Perl_parse(pTHX_ XSINIT_t xsinit, int argc, char** argv, char** env);
-#endif
 #if defined(USE_5005THREADS)
 PERL_CALLCONV struct perl_thread*      Perl_new_struct_thread(pTHX_ struct perl_thread *t);
 #endif
@@ -989,11 +964,7 @@ PERL_CALLCONV char *       Perl_custom_op_name(pTHX_ OP* op);
 PERL_CALLCONV char *   Perl_custom_op_desc(pTHX_ OP* op);
 #endif
 
-#if defined(PERL_OBJECT)
-protected:
-#else
 END_EXTERN_C
-#endif
 
 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 STATIC I32     S_avhv_index_sv(pTHX_ SV* sv);
@@ -1338,10 +1309,6 @@ STATIC void      S_xstat(pTHX_ int);
 #  endif
 #endif
 
-#if defined(PERL_OBJECT)
-};
-#endif
-
 START_EXTERN_C
 
 PERL_CALLCONV void     Perl_sv_setsv_flags(pTHX_ SV* dsv, SV* ssv, I32 flags);
index 311670c..093eed0 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
 #define PERL_IN_REGCOMP_C
 #include "perl.h"
 
-#ifdef PERL_IN_XSUB_RE
-#  if defined(PERL_CAPI) || defined(PERL_OBJECT)
-#    include "XSUB.h"
-#  endif
-#else
+#ifndef PERL_IN_XSUB_RE
 #  include "INTERN.h"
 #endif
 
@@ -483,7 +479,7 @@ static scan_data_t zero_scan_data = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 #define Node_Offset(n) (RExC_offsets[2*((n)-RExC_emit_start)-1])
 #define Node_Length(n) (RExC_offsets[2*((n)-RExC_emit_start)])
 
-static void clear_re(pTHXo_ void *r);
+static void clear_re(pTHX_ void *r);
 
 /* Mark that we cannot extend a found fixed substring at this point.
    Updata the longest found anchored substring and the longest found
@@ -4747,14 +4743,8 @@ Perl_save_re_context(pTHX)
 #endif
 }
 
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#undef this
-#define this pPerl
-#endif
-
 static void
-clear_re(pTHXo_ void *r)
+clear_re(pTHX_ void *r)
 {
     ReREFCNT_dec((regexp *)r);
 }
index bf99d49..6adb9ca 100644 (file)
--- a/regexec.c
+++ b/regexec.c
 #define PERL_IN_REGEXEC_C
 #include "perl.h"
 
-#ifdef PERL_IN_XSUB_RE
-#  if defined(PERL_CAPI) || defined(PERL_OBJECT)
-#    include "XSUB.h"
-#  endif
-#endif
-
 #include "regcomp.h"
 
 #define RF_tainted     1               /* tainted information used? */
 
 #define LOAD_UTF8_CHARCLASS(a,b) STMT_START { if (!CAT2(PL_utf8_,a)) (void)CAT2(is_utf8_, a)((U8*)b); } STMT_END
 
-static void restore_pos(pTHXo_ void *arg);
+static void restore_pos(pTHX_ void *arg);
 
 STATIC CHECKPOINT
 S_regcppush(pTHX_ I32 parenfloor)
@@ -1775,7 +1769,7 @@ got_it:
            sv_setsv(oreplsv, GvSV(PL_replgv));/* So that when GvSV(replgv) is
                                                  restored, the value remains
                                                  the same. */
-       restore_pos(aTHXo_ 0);
+       restore_pos(aTHX_ 0);
     }
 
     /* make sure $`, $&, $', and $digit will work later */
@@ -1804,7 +1798,7 @@ phooey:
     DEBUG_r(PerlIO_printf(Perl_debug_log, "%sMatch failed%s\n",
                          PL_colors[4],PL_colors[5]));
     if (PL_reg_eval_set)
-       restore_pos(aTHXo_ 0);
+       restore_pos(aTHX_ 0);
     return 0;
 }
 
@@ -4065,12 +4059,8 @@ S_reghopmaybe3(pTHX_ U8* s, I32 off, U8* lim)
     return s;
 }
 
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#endif
-
 static void
-restore_pos(pTHXo_ void *arg)
+restore_pos(pTHX_ void *arg)
 {
     if (PL_reg_eval_set) {
        if (PL_reg_oldsaved) {
diff --git a/scope.c b/scope.c
index d59fd89..1ce65ef 100644 (file)
--- a/scope.c
+++ b/scope.c
@@ -883,7 +883,7 @@ Perl_leave_scope(pTHX_ I32 base)
            break;
        case SAVEt_DESTRUCTOR_X:
            ptr = SSPOPPTR;
-           (*SSPOPDXPTR)(aTHXo_ ptr);
+           (*SSPOPDXPTR)(aTHX_ ptr);
            break;
        case SAVEt_REGCONTEXT:
        case SAVEt_ALLOC:
diff --git a/sv.c b/sv.c
index cd89509..8713bf6 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -287,7 +287,7 @@ S_visit(pTHX_ SVFUNC_t f)
        svend = &sva[SvREFCNT(sva)];
        for (sv = sva + 1; sv < svend; ++sv) {
            if (SvTYPE(sv) != SVTYPEMASK && SvREFCNT(sv)) {
-               (FCALL)(aTHXo_ sv);
+               (FCALL)(aTHX_ sv);
                ++visited;
            }
        }
@@ -298,7 +298,7 @@ S_visit(pTHX_ SVFUNC_t f)
 /* called by sv_report_used() for each live SV */
 
 static void
-do_report_used(pTHXo_ SV *sv)
+do_report_used(pTHX_ SV *sv)
 {
     if (SvTYPE(sv) != SVTYPEMASK) {
        PerlIO_printf(Perl_debug_log, "****\n");
@@ -323,7 +323,7 @@ Perl_sv_report_used(pTHX)
 /* called by sv_clean_objs() for each live SV */
 
 static void
-do_clean_objs(pTHXo_ SV *sv)
+do_clean_objs(pTHX_ SV *sv)
 {
     SV* rv;
 
@@ -347,7 +347,7 @@ do_clean_objs(pTHXo_ SV *sv)
 
 #ifndef DISABLE_DESTRUCTOR_KLUDGE
 static void
-do_clean_named_objs(pTHXo_ SV *sv)
+do_clean_named_objs(pTHX_ SV *sv)
 {
     if (SvTYPE(sv) == SVt_PVGV && GvGP(sv)) {
        if ( SvOBJECT(GvSV(sv)) ||
@@ -386,7 +386,7 @@ Perl_sv_clean_objs(pTHX)
 /* called by sv_clean_all() for each live SV */
 
 static void
-do_clean_all(pTHXo_ SV *sv)
+do_clean_all(pTHX_ SV *sv)
 {
     DEBUG_D((PerlIO_printf(Perl_debug_log, "Cleaning loops: SV at 0x%"UVxf"\n", PTR2UV(sv)) ));
     SvFLAGS(sv) |= SVf_BREAK;
@@ -9288,7 +9288,7 @@ Perl_any_dup(pTHX_ void *v, PerlInterpreter *proto_perl)
 
     /* see if it is part of the interpreter structure */
     if (v >= (void*)proto_perl && v < (void*)(proto_perl+1))
-       ret = (void*)(((char*)aTHXo) + (((char*)v) - (char*)proto_perl));
+       ret = (void*)(((char*)aTHX) + (((char*)v) - (char*)proto_perl));
     else
        ret = v;
 
@@ -9316,7 +9316,7 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, clone_params* param)
     I32 i;
     char *c = NULL;
     void (*dptr) (void*);
-    void (*dxptr) (pTHXo_ void*);
+    void (*dxptr) (pTHX_ void*);
     OP *o;
 
     Newz(54, nss, max, ANY);
@@ -9489,7 +9489,7 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, clone_params* param)
            ptr = POPPTR(ss,ix);
            TOPPTR(nss,ix) = any_dup(ptr, proto_perl);  /* XXX quite arbitrary */
            dxptr = POPDXPTR(ss,ix);
-           TOPDXPTR(nss,ix) = (void (*)(pTHXo_ void*))any_dup((void *)dxptr, proto_perl);
+           TOPDXPTR(nss,ix) = (void (*)(pTHX_ void*))any_dup((void *)dxptr, proto_perl);
            break;
        case SAVEt_REGCONTEXT:
        case SAVEt_ALLOC:
@@ -9545,10 +9545,6 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, clone_params* param)
     return nss;
 }
 
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#endif
-
 /*
 =for apidoc perl_clone
 
@@ -9564,10 +9560,6 @@ perl_clone_host(PerlInterpreter* proto_perl, UV flags);
 PerlInterpreter *
 perl_clone(PerlInterpreter *proto_perl, UV flags)
 {
-#ifdef PERL_OBJECT
-    CPerlObj *pPerl = (CPerlObj*)proto_perl;
-#endif
-
 #ifdef PERL_IMPLICIT_SYS
 
    /* perlhost.h so we need to call into it
@@ -9603,26 +9595,19 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     IV i;
     clone_params* param = (clone_params*) malloc(sizeof(clone_params));
 
-
-
-#  ifdef PERL_OBJECT
-    CPerlObj *pPerl = new(ipM) CPerlObj(ipM, ipMS, ipMP, ipE, ipStd, ipLIO,
-                                       ipD, ipS, ipP);
-    PERL_SET_THX(pPerl);
-#  else                /* !PERL_OBJECT */
     PerlInterpreter *my_perl = (PerlInterpreter*)(*ipM->pMalloc)(ipM, sizeof(PerlInterpreter));
     PERL_SET_THX(my_perl);
 
-#    ifdef DEBUGGING
+#  ifdef DEBUGGING
     memset(my_perl, 0xab, sizeof(PerlInterpreter));
     PL_markstack = 0;
     PL_scopestack = 0;
     PL_savestack = 0;
     PL_retstack = 0;
     PL_sig_pending = 0;
-#    else      /* !DEBUGGING */
+#  else        /* !DEBUGGING */
     Zero(my_perl, 1, PerlInterpreter);
-#    endif     /* DEBUGGING */
+#  endif       /* DEBUGGING */
 
     /* host pointers */
     PL_Mem             = ipM;
@@ -9634,7 +9619,6 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     PL_Dir             = ipD;
     PL_Sock            = ipS;
     PL_Proc            = ipP;
-#  endif       /* PERL_OBJECT */
 #else          /* !PERL_IMPLICIT_SYS */
     IV i;
     clone_params* param = (clone_params*) malloc(sizeof(clone_params));
@@ -9706,11 +9690,7 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     SvFLAGS(&PL_sv_undef)      = SVf_READONLY|SVt_NULL;
     ptr_table_store(PL_ptr_table, &proto_perl->Isv_undef, &PL_sv_undef);
 
-#ifdef PERL_OBJECT
-    SvUPGRADE(&PL_sv_no, SVt_PVNV);
-#else
     SvANY(&PL_sv_no)           = new_XPVNV();
-#endif
     SvREFCNT(&PL_sv_no)                = (~(U32)0)/2;
     SvFLAGS(&PL_sv_no)         = SVp_NOK|SVf_NOK|SVp_POK|SVf_POK|SVf_READONLY|SVt_PVNV;
     SvPVX(&PL_sv_no)           = SAVEPVN(PL_No, 0);
@@ -9719,11 +9699,7 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     SvNVX(&PL_sv_no)           = 0;
     ptr_table_store(PL_ptr_table, &proto_perl->Isv_no, &PL_sv_no);
 
-#ifdef PERL_OBJECT
-    SvUPGRADE(&PL_sv_yes, SVt_PVNV);
-#else
     SvANY(&PL_sv_yes)          = new_XPVNV();
-#endif
     SvREFCNT(&PL_sv_yes)       = (~(U32)0)/2;
     SvFLAGS(&PL_sv_yes)                = SVp_NOK|SVf_NOK|SVp_POK|SVf_POK|SVf_READONLY|SVt_PVNV;
     SvPVX(&PL_sv_yes)          = SAVEPVN(PL_Yes, 1);
@@ -10315,17 +10291,7 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     SvREFCNT_dec(param->stashes);
     Safefree(param);
 
-#ifdef PERL_OBJECT
-    return (PerlInterpreter*)pPerl;
-#else
     return my_perl;
-#endif
 }
 
-#else  /* !USE_ITHREADS */
-
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#endif
-
 #endif /* USE_ITHREADS */
diff --git a/sv.h b/sv.h
index fabf7fd..e43d29a 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -338,7 +338,7 @@ struct xpvfm {
     HV *       xcv_stash;
     OP *       xcv_start;
     OP *       xcv_root;
-    void      (*xcv_xsub)(pTHXo_ CV*);
+    void      (*xcv_xsub)(pTHX_ CV*);
     ANY                xcv_xsubany;
     GV *       xcv_gv;
     char *     xcv_file;
diff --git a/toke.c b/toke.c
index 7ad1f59..b78e19d 100644 (file)
--- a/toke.c
+++ b/toke.c
 
 static char ident_too_long[] = "Identifier too long";
 
-static void restore_rsfp(pTHXo_ void *f);
+static void restore_rsfp(pTHX_ void *f);
 #ifndef PERL_NO_UTF16_FILTER
-static I32 utf16_textfilter(pTHXo_ int idx, SV *sv, int maxlen);
-static I32 utf16rev_textfilter(pTHXo_ int idx, SV *sv, int maxlen);
+static I32 utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+static I32 utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen);
 #endif
 
 #define XFAKEBRACK 128
@@ -2051,7 +2051,7 @@ Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
     /* Call function. The function is expected to      */
     /* call "FILTER_READ(idx+1, buf_sv)" first.                */
     /* Return: <0:error, =0:eof, >0:not eof            */
-    return (*funcp)(aTHXo_ idx, buf_sv, maxlen);
+    return (*funcp)(aTHX_ idx, buf_sv, maxlen);
 }
 
 STATIC char *
@@ -7647,17 +7647,13 @@ S_swallow_bom(pTHX_ U8 *s)
     return (char*)s;
 }
 
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#endif
-
 /*
  * restore_rsfp
  * Restore a source filter.
  */
 
 static void
-restore_rsfp(pTHXo_ void *f)
+restore_rsfp(pTHX_ void *f)
 {
     PerlIO *fp = (PerlIO*)f;
 
@@ -7670,7 +7666,7 @@ restore_rsfp(pTHXo_ void *f)
 
 #ifndef PERL_NO_UTF16_FILTER
 static I32
-utf16_textfilter(pTHXo_ int idx, SV *sv, int maxlen)
+utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen)
 {
     I32 count = FILTER_READ(idx+1, sv, maxlen);
     if (count) {
@@ -7689,7 +7685,7 @@ utf16_textfilter(pTHXo_ int idx, SV *sv, int maxlen)
 }
 
 static I32
-utf16rev_textfilter(pTHXo_ int idx, SV *sv, int maxlen)
+utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen)
 {
     I32 count = FILTER_READ(idx+1, sv, maxlen);
     if (count) {
index 75e6c5e..a2a3e4d 100644 (file)
@@ -132,9 +132,9 @@ Perl_sv_derived_from(pTHX_ SV *sv, const char *name)
 
 #include "XSUB.h"
 
-void XS_UNIVERSAL_isa(pTHXo_ CV *cv);
-void XS_UNIVERSAL_can(pTHXo_ CV *cv);
-void XS_UNIVERSAL_VERSION(pTHXo_ CV *cv);
+void XS_UNIVERSAL_isa(pTHX_ CV *cv);
+void XS_UNIVERSAL_can(pTHX_ CV *cv);
+void XS_UNIVERSAL_VERSION(pTHX_ CV *cv);
 XS(XS_utf8_valid);
 XS(XS_utf8_encode);
 XS(XS_utf8_decode);
index 22139b2..16f57b6 100644 (file)
@@ -274,7 +274,7 @@ obj = $(obj0) $(obj1) $(obj2) $(obj3) $(obj4)
 
 h0 = av.h cc_runtime.h config.h cop.h cv.h embed.h embedvar.h
 h1 = extern.h form.h gv.h handy.h hv.h intern.h intrpvar.h
-h2 = iperlsys.h keywords.h mg.h nostdio.h objxsub.h op.h opcode.h opnames.h
+h2 = iperlsys.h keywords.h mg.h nostdio.h op.h opcode.h opnames.h
 h3 = patchlevel.h perl.h perlapi.h perlio.h perlsdio.h perlvars.h perly.h
 h4 = pp.h pp_proto.h proto.h regcomp.h regexp.h regnodes.h scope.h
 h5 = sv.h thrdvar.h thread.h utf8.h util.h vmsish.h warnings.h
@@ -287,7 +287,7 @@ ac2 = $(ARCHCORE)embedvar.h $(ARCHCORE)extern.h $(acth)
 ac3 = $(ARCHCORE)form.h $(ARCHCORE)gv.h $(ARCHCORE)handy.h $(ARCHCORE)hv.h
 ac4 = $(ARCHCORE)intern.h $(ARCHCORE)intrpvar.h $(ARCHCORE)iperlsys.h
 ac5 = $(ARCHCORE)keywords.h $(ARCHCORE)mg.h $(ARCHCORE)nostdio.h
-ac6 = $(ARCHCORE)objxsub.h $(ARCHCORE)op.h $(ARCHCORE)opcode.h
+ac6 = $(ARCHCORE)op.h $(ARCHCORE)opcode.h
 ac7 = $(ARCHCORE)opnames.h $(ARCHCORE)patchlevel.h $(ARCHCORE)perl.h
 ac8 = $(ARCHCORE)perlapi.h $(ARCHCORE)perlio.h $(ARCHCORE)perlsdio.h
 ac9 = $(ARCHCORE)perlvars.h $(ARCHCORE)perly.h $(ARCHCORE)pp.h
@@ -1010,9 +1010,6 @@ $(ARCHCORE)mg.h : mg.h
 $(ARCHCORE)nostdio.h : nostdio.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
-$(ARCHCORE)objxsub.h : objxsub.h
-       @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
-       Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
 $(ARCHCORE)op.h : op.h
        @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
        Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
@@ -1173,7 +1170,7 @@ taint$(O) : taint.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) i
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 toke$(O) : toke.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h perl.h regexp.h sv.h util.h form.h gv.h cv.h opnames.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h keywords.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-universal$(O) : universal.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h perl.h regexp.h sv.h util.h form.h gv.h cv.h opnames.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h xsub.h perlapi.h objxsub.h
+universal$(O) : universal.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h perl.h regexp.h sv.h util.h form.h gv.h cv.h opnames.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h xsub.h perlapi.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 utf8$(O) : utf8.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h perl.h regexp.h sv.h util.h form.h gv.h cv.h opnames.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
@@ -1181,7 +1178,7 @@ util$(O) : util.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) ipe
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 vms$(O) : vms.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h perl.h regexp.h sv.h util.h form.h gv.h cv.h opnames.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
-xsutils$(O) : xsutils.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h perl.h regexp.h sv.h util.h form.h gv.h cv.h opnames.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h xsub.h perlapi.h objxsub.h
+xsutils$(O) : xsutils.c extern.h perl.h config.h embed.h handy.h vmsish.h $(SOCKH) iperlsys.h perlsdio.h perl.h regexp.h sv.h util.h form.h gv.h cv.h opnames.h op.h cop.h av.h hv.h mg.h scope.h warnings.h utf8.h perly.h thread.h pp.h proto.h pp_proto.h opcode.h embedvar.h intrpvar.h thrdvar.h perlvars.h patchlevel.h xsub.h perlapi.h
        $(CC) $(CORECFLAGS) $(MMS$SOURCE)
 
 [.x2p]hash$(O) : [.x2p]hash.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h vmsish.h $(SOCKH)
index bc1183f..463a5ed 100644 (file)
@@ -32,7 +32,7 @@ struct ysv {
     YYSTYPE oldyylval;
 };
 
-static void yydestruct(pTHXo_ void *ptr);
+static void yydestruct(pTHX_ void *ptr);
 
 #line 51 "perly.y"
 #if 0 /* get this from perly.h instead */
@@ -2530,12 +2530,8 @@ yyaccept:
     return retval;
 }
 
-#ifdef PERL_OBJECT
-#include "XSUB.h"
-#endif
-
 static void
-yydestruct(pTHXo_ void *ptr)
+yydestruct(pTHX_ void *ptr)
 {
     struct ysv* ysave = (struct ysv*)ptr;
     if (ysave->yyss) Safefree(ysave->yyss);
index b4d56ae..0287a18 100644 (file)
@@ -79,17 +79,6 @@ USE_PERLIO   = define
 #USE_5005THREADS       = define
 
 #
-# WARNING! This option is deprecated and will eventually go away (enable
-# USE_MULTI instead).
-#
-# uncomment next line if you want to use the PERL_OBJECT build option.
-# DO NOT ENABLE unless you have legacy code that relies on the C++
-# CPerlObj class that was available in 5.005.  This cannot be enabled
-# if you ask for USE_5005THREADS above.
-#
-#USE_OBJECT    = define
-
-#
 # uncomment one of the following lines if you are using either
 # Visual C++ 2.x or Visual C++ 6.x (aka Visual Studio 98)
 #
@@ -206,13 +195,6 @@ D_CRYPT            = define
 CRYPT_FLAG     = -DHAVE_DES_FCRYPT
 !ENDIF
 
-!IF "$(USE_OBJECT)" == "define"
-PERL_MALLOC    = undef
-USE_5005THREADS        = undef
-USE_MULTI      = undef
-USE_IMP_SYS    = define
-!ENDIF
-
 !IF "$(PERL_MALLOC)" == ""
 PERL_MALLOC    = undef
 !ENDIF
@@ -233,10 +215,6 @@ PERL_MALLOC        = undef
 USE_MULTI      = undef
 !ENDIF
 
-!IF "$(USE_OBJECT)" == ""
-USE_OBJECT     = undef
-!ENDIF
-
 !IF "$(USE_ITHREADS)" == ""
 USE_ITHREADS   = undef
 !ENDIF
@@ -253,16 +231,16 @@ USE_PERLIO        = undef
 USE_PERLCRT    = undef
 !ENDIF
 
-!IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" == "defineundefundefundef"
+!IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)" == "defineundefundef"
 USE_MULTI      = define
 !ENDIF
 
-!IF "$(USE_ITHREADS)$(USE_MULTI)$(USE_OBJECT)" == "defineundefundef"
+!IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
 USE_MULTI      = define
 USE_5005THREADS        = undef
 !ENDIF
 
-!IF "$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" != "undefundefundef"
+!IF "$(USE_MULTI)$(USE_5005THREADS)" != "undefundef"
 BUILDOPT       = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
 !ENDIF
 
@@ -274,9 +252,6 @@ BUILDOPT    = $(BUILDOPT) -DPERL_IMPLICIT_SYS
 PROCESSOR_ARCHITECTURE = x86
 !ENDIF
 
-!IF "$(USE_OBJECT)" == "define"
-ARCHNAME       = MSWin32-$(PROCESSOR_ARCHITECTURE)-object
-!ELSE
 !IF "$(USE_5005THREADS)" == "define"
 ARCHNAME       = MSWin32-$(PROCESSOR_ARCHITECTURE)-thread
 !ELSE
@@ -290,7 +265,6 @@ ARCHNAME    = MSWin32-$(PROCESSOR_ARCHITECTURE)
 !ENDIF
 !ENDIF
 !ENDIF
-!ENDIF
 
 !IF "$(USE_PERLIO)" == "define"
 BUILDOPT       = $(BUILDOPT) -DUSE_PERLIO
@@ -368,11 +342,6 @@ OPTIMIZE   = -O1 -MD -DNDEBUG
 LINK_DBG       = -release
 !ENDIF
 
-!IF "$(USE_OBJECT)" == "define"
-OPTIMIZE       = $(OPTIMIZE) $(CXX_FLAG)
-BUILDOPT       = $(BUILDOPT) -DPERL_OBJECT
-!ENDIF
-
 !IF "$(USE_PERLCRT)" != "define"
 BUILDOPT       = $(BUILDOPT) -DPERL_MSVCRT_READFIX
 !ENDIF
@@ -535,9 +504,7 @@ EXTRACORE_SRC       = $(EXTRACORE_SRC) perllib.c
 EXTRACORE_SRC  = $(EXTRACORE_SRC) ..\malloc.c
 !ENDIF
 
-!IF "$(USE_OBJECT)" != "define"
 EXTRACORE_SRC  = $(EXTRACORE_SRC) ..\perlio.c
-!ENDIF
 
 WIN32_SRC      =               \
                .\win32.c       \
@@ -839,7 +806,7 @@ $(MINIWIN32_OBJ) : $(CORE_NOCFG_H)
 
 # -DPERL_IMPLICIT_SYS needs C++ for perllib.c
 # This is the only file that depends on perlhost.h, vmem.h, and vdir.h
-!IF "$(USE_IMP_SYS)$(USE_OBJECT)" == "defineundef"
+!IF "$(USE_IMP_SYS)" == "define"
 perllib$(o)    : perllib.c .\perlhost.h .\vdir.h .\vmem.h
        $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
 !ENDIF
index a0ee22d..607c484 100644 (file)
@@ -2,7 +2,6 @@
 use Config;
 use File::Compare qw(compare);
 use File::Copy qw(copy);
-my $OBJ   = 1 if $Config{'ccflags'} =~ /PERL_OBJECT/i;
 my $name = $0;
 $name =~ s#^(.*)\.PL$#../$1.SH#;
 my %opt;
@@ -73,7 +72,7 @@ chmod(0666,"../lib/CORE/config.h");
 copy("$file.new","../lib/CORE/config.h") || die "Cannot copy:$!";
 chmod(0444,"../lib/CORE/config.h");
 
-if (!$OBJ && compare("$file.new",$file))
+if (compare("$file.new",$file))
  {
   warn "$file has changed\n";
   chmod(0666,$file);
index d959fbd..fb3e332 100644 (file)
@@ -30,16 +30,12 @@ calls.
 #include "perl.h"
 #include "win32.h"
 
-#ifdef PERL_OBJECT
-#define NO_XSLOCKS
-#endif  /* PERL_OBJECT */
-
 #include "XSUB.h"
 
 static SV *error_sv;
 
 static char *
-OS_Error_String(pTHXo)
+OS_Error_String(pTHX)
 {
  DWORD err = GetLastError();
  STRLEN len;
@@ -52,9 +48,9 @@ OS_Error_String(pTHXo)
 #include "dlutils.c"   /* SaveError() etc      */
 
 static void
-dl_private_init(pTHXo)
+dl_private_init(pTHX)
 {
-    (void)dl_generic_private_init(aTHXo);
+    (void)dl_generic_private_init(aTHX);
 }
 
 /* 
@@ -96,7 +92,7 @@ dl_static_linked(char *filename)
 MODULE = DynaLoader    PACKAGE = DynaLoader
 
 BOOT:
-    (void)dl_private_init(aTHXo);
+    (void)dl_private_init(aTHX);
 
 void *
 dl_load_file(filename,flags=0)
@@ -114,8 +110,8 @@ dl_load_file(filename,flags=0)
     DLDEBUG(2,PerlIO_printf(Perl_debug_log," libref=%x\n", RETVAL));
     ST(0) = sv_newmortal() ;
     if (RETVAL == NULL)
-       SaveError(aTHXo_ "load_file:%s",
-                 OS_Error_String(aTHXo)) ;
+       SaveError(aTHX_ "load_file:%s",
+                 OS_Error_String(aTHX)) ;
     else
        sv_setiv( ST(0), (IV)RETVAL);
   }
@@ -131,8 +127,8 @@ dl_find_symbol(libhandle, symbolname)
     DLDEBUG(2,PerlIO_printf(Perl_debug_log,"  symbolref = %x\n", RETVAL));
     ST(0) = sv_newmortal() ;
     if (RETVAL == NULL)
-       SaveError(aTHXo_ "find_symbol:%s",
-                 OS_Error_String(aTHXo)) ;
+       SaveError(aTHX_ "find_symbol:%s",
+                 OS_Error_String(aTHX)) ;
     else
        sv_setiv( ST(0), (IV)RETVAL);
 
@@ -154,7 +150,7 @@ dl_install_xsub(perl_name, symref, filename="$Package")
     DLDEBUG(2,PerlIO_printf(Perl_debug_log,"dl_install_xsub(name=%s, symref=%x)\n",
                      perl_name, symref));
     ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name,
-                                       (void(*)(pTHXo_ CV *))symref,
+                                       (void(*)(pTHX_ CV *))symref,
                                        filename)));
 
 
index b15e984..0b4b685 100644 (file)
@@ -81,17 +81,6 @@ USE_PERLIO   = define
 #USE_5005THREADS       *= define
 
 #
-# WARNING! This option is deprecated and will eventually go away (enable
-# USE_MULTI instead).
-#
-# uncomment next line if you want to use the PERL_OBJECT build option.
-# DO NOT ENABLE unless you have legacy code that relies on the C++
-# CPerlObj class that was available in 5.005.  This cannot be enabled
-# if you ask for USE_5005THREADS above.
-#
-#USE_OBJECT    *= define
-
-#
 # uncomment exactly one of the following
 #
 # Visual C++ 2.x
@@ -236,13 +225,6 @@ D_CRYPT            = define
 CRYPT_FLAG     = -DHAVE_DES_FCRYPT
 .ENDIF
 
-.IF "$(USE_OBJECT)" == "define"
-PERL_MALLOC    != undef
-USE_5005THREADS        != undef
-USE_MULTI      != undef
-USE_IMP_SYS    != define
-.ENDIF
-
 PERL_MALLOC    *= undef
 
 USE_5005THREADS        *= undef
@@ -256,22 +238,21 @@ PERL_MALLOC       != undef
 .ENDIF
 
 USE_MULTI      *= undef
-USE_OBJECT     *= undef
 USE_ITHREADS   *= undef
 USE_IMP_SYS    *= undef
 USE_PERLIO     *= undef
 USE_PERLCRT    *= undef
 
-.IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" == "defineundefundefundef"
+.IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)" == "defineundefundef"
 USE_MULTI      != define
 .ENDIF
 
-.IF "$(USE_ITHREADS)$(USE_MULTI)$(USE_OBJECT)" == "defineundefundef"
+.IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
 USE_MULTI      != define
 USE_5005THREADS        != undef
 .ENDIF
 
-.IF "$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" != "undefundefundef"
+.IF "$(USE_MULTI)$(USE_5005THREADS)" != "undefundef"
 BUILDOPT       += -DPERL_IMPLICIT_CONTEXT
 .ENDIF
 
@@ -283,9 +264,7 @@ BUILDOPT    += -DPERL_IMPLICIT_SYS
 
 PROCESSOR_ARCHITECTURE *= x86
 
-.IF "$(USE_OBJECT)" == "define"
-ARCHNAME       = MSWin32-$(PROCESSOR_ARCHITECTURE)-object
-.ELIF "$(USE_5005THREADS)" == "define"
+.IF "$(USE_5005THREADS)" == "define"
 ARCHNAME       = MSWin32-$(PROCESSOR_ARCHITECTURE)-thread
 .ELIF "$(USE_MULTI)" == "define"
 ARCHNAME       = MSWin32-$(PROCESSOR_ARCHITECTURE)-multi
@@ -510,11 +489,6 @@ BUILDOPT   += -DPERL_MSVCRT_READFIX
 
 .ENDIF
 
-.IF "$(USE_OBJECT)" == "define"
-OPTIMIZE       += $(CXX_FLAG)
-BUILDOPT       += -DPERL_OBJECT
-.ENDIF
-
 CFLAGS_O       = $(CFLAGS) $(BUILDOPT)
 
 # used to allow local linking flags that are not propogated into Config.pm,
@@ -686,9 +660,7 @@ EXTRACORE_SRC       += perllib.c
 EXTRACORE_SRC  += ..\malloc.c
 .ENDIF
 
-.IF "$(USE_OBJECT)" != "define"
 EXTRACORE_SRC  += ..\perlio.c
-.ENDIF
 
 WIN32_SRC      =               \
                .\win32.c       \
@@ -963,7 +935,7 @@ $(MINIWIN32_OBJ) : $(CORE_NOCFG_H)
 # This is the only file that depends on perlhost.h, vmem.h, and vdir.h
 
 perllib$(o)    : perllib.c .\perlhost.h .\vdir.h .\vmem.h
-.IF "$(USE_IMP_SYS)$(USE_OBJECT)" == "defineundef"
+.IF "$(USE_IMP_SYS)" == "define"
        $(CC) -c -I. $(CFLAGS_O) $(CXX_FLAG) $(OBJOUT_FLAG)$@ perllib.c
 .ELSE
        $(CC) -c -I. $(CFLAGS_O) $(OBJOUT_FLAG)$@ perllib.c
index 57f4e31..a417f66 100644 (file)
 #include "vmem.h"
 #include "vdir.h"
 
-#if !defined(PERL_OBJECT)
 START_EXTERN_C
-#endif
 extern char *          g_win32_get_privlib(const char *pl);
 extern char *          g_win32_get_sitelib(const char *pl);
 extern char *          g_win32_get_vendorlib(const char *pl);
 extern char *          g_getlogin(void);
 extern int             do_spawn2(char *cmd, int exectype);
-#if !defined(PERL_OBJECT)
 END_EXTERN_C
-#endif
-
-#ifdef PERL_OBJECT
-extern int             g_do_aspawn(void *vreally, void **vmark, void **vsp);
-#define do_aspawn      g_do_aspawn
-#endif
 
 class CPerlHost
 {
@@ -1248,7 +1239,7 @@ PerlSockGethostbyname(struct IPerlSock* piPerl, const char* name)
 struct hostent*
 PerlSockGethostent(struct IPerlSock* piPerl)
 {
-    dTHXo;
+    dTHX;
     Perl_croak(aTHX_ "gethostent not implemented!\n");
     return NULL;
 }
@@ -1423,7 +1414,7 @@ PerlSockSocket(struct IPerlSock* piPerl, int af, int type, int protocol)
 int
 PerlSockSocketpair(struct IPerlSock* piPerl, int domain, int type, int protocol, int* fds)
 {
-    dTHXo;
+    dTHX;
     Perl_croak(aTHX_ "socketpair not implemented!\n");
     return 0;
 }
@@ -1575,7 +1566,7 @@ PerlProcKill(struct IPerlProc* piPerl, int pid, int sig)
 int
 PerlProcKillpg(struct IPerlProc* piPerl, int pid, int sig)
 {
-    dTHXo;
+    dTHX;
     Perl_croak(aTHX_ "killpg not implemented!\n");
     return 0;
 }
@@ -1589,7 +1580,7 @@ PerlProcPauseProc(struct IPerlProc* piPerl)
 PerlIO*
 PerlProcPopen(struct IPerlProc* piPerl, const char *command, const char *mode)
 {
-    dTHXo;
+    dTHX;
     PERL_FLUSHALL_FOR_CHILD;
     return win32_popen(command, mode);
 }
@@ -1597,7 +1588,7 @@ PerlProcPopen(struct IPerlProc* piPerl, const char *command, const char *mode)
 PerlIO*
 PerlProcPopenList(struct IPerlProc* piPerl, const char *mode, IV narg, SV **args)
 {
-    dTHXo;
+    dTHX;
     PERL_FLUSHALL_FOR_CHILD;
     return win32_popenlist(mode, narg, args);
 }
@@ -1663,9 +1654,6 @@ win32_start_child(LPVOID arg)
     PerlInterpreter *my_perl = (PerlInterpreter*)arg;
     GV *tmpgv;
     int status;
-#ifdef PERL_OBJECT
-    CPerlObj *pPerl = (CPerlObj*)my_perl;
-#endif
 #ifdef PERL_SYNC_FORK
     static long sync_fork_id = 0;
     long id = ++sync_fork_id;
@@ -1760,7 +1748,7 @@ restart:
 int
 PerlProcFork(struct IPerlProc* piPerl)
 {
-    dTHXo;
+    dTHX;
 #ifdef USE_ITHREADS
     DWORD id;
     HANDLE handle;
@@ -1771,7 +1759,7 @@ PerlProcFork(struct IPerlProc* piPerl)
        return -1;
     }
     h = new CPerlHost(*(CPerlHost*)w32_internal_host);
-    PerlInterpreter *new_perl = perl_clone_using((PerlInterpreter*)aTHXo, 1,
+    PerlInterpreter *new_perl = perl_clone_using((PerlInterpreter*)aTHX, 1,
                                                 h->m_pHostperlMem,
                                                 h->m_pHostperlMemShared,
                                                 h->m_pHostperlMemParse,
@@ -1785,7 +1773,7 @@ PerlProcFork(struct IPerlProc* piPerl)
     new_perl->Isys_intern.internal_host = h;
 #  ifdef PERL_SYNC_FORK
     id = win32_start_child((LPVOID)new_perl);
-    PERL_SET_THX(aTHXo);
+    PERL_SET_THX(aTHX);
 #  else
 #    ifdef USE_RTL_THREAD_API
     handle = (HANDLE)_beginthreadex((void*)NULL, 0, win32_start_child,
@@ -1794,7 +1782,7 @@ PerlProcFork(struct IPerlProc* piPerl)
     handle = CreateThread(NULL, 0, win32_start_child,
                          (LPVOID)new_perl, 0, &id);
 #    endif
-    PERL_SET_THX(aTHXo);       /* XXX perl_clone*() set TLS */
+    PERL_SET_THX(aTHX);        /* XXX perl_clone*() set TLS */
     if (!handle) {
        errno = EAGAIN;
        return -1;
@@ -1861,7 +1849,7 @@ PerlProcASpawn(struct IPerlProc* piPerl, void *vreally, void **vmark, void **vsp
 int
 PerlProcLastHost(struct IPerlProc* piPerl)
 {
- dTHXo;
+ dTHX;
  CPerlHost *h = (CPerlHost*)w32_internal_host;
  return h->LastHost();
 }
@@ -2138,7 +2126,7 @@ compare(const void *arg1, const void *arg2)
 void
 CPerlHost::Add(LPCSTR lpStr)
 {
-    dTHXo;
+    dTHX;
     char szBuffer[1024];
     LPSTR *lpPtr;
     int index, length = strlen(lpStr)+1;
@@ -2181,14 +2169,14 @@ CPerlHost::CalculateEnvironmentSpace(void)
 void
 CPerlHost::FreeLocalEnvironmentStrings(LPSTR lpStr)
 {
-    dTHXo;
+    dTHX;
     Safefree(lpStr);
 }
 
 char*
 CPerlHost::GetChildDir(void)
 {
-    dTHXo;
+    dTHX;
     int length;
     char* ptr;
     New(0, ptr, MAX_PATH+1, char);
@@ -2206,14 +2194,14 @@ CPerlHost::GetChildDir(void)
 void
 CPerlHost::FreeChildDir(char* pStr)
 {
-    dTHXo;
+    dTHX;
     Safefree(pStr);
 }
 
 LPSTR
 CPerlHost::CreateLocalEnvironmentStrings(VDir &vDir)
 {
-    dTHXo;
+    dTHX;
     LPSTR lpStr, lpPtr, lpEnvPtr, lpTmp, lpLocalEnv, lpAllocPtr;
     DWORD dwSize, dwEnvIndex;
     int nLength, compVal;
@@ -2302,7 +2290,7 @@ CPerlHost::CreateLocalEnvironmentStrings(VDir &vDir)
 void
 CPerlHost::Reset(void)
 {
-    dTHXo;
+    dTHX;
     if(m_lppEnvList != NULL) {
        for(DWORD index = 0; index < m_dwEnvCount; ++index) {
            Safefree(m_lppEnvList[index]);
@@ -2315,7 +2303,7 @@ CPerlHost::Reset(void)
 void
 CPerlHost::Clearenv(void)
 {
-    dTHXo;
+    dTHX;
     char ch;
     LPSTR lpPtr, lpStr, lpEnvPtr;
     if (m_lppEnvList != NULL) {
@@ -2355,7 +2343,7 @@ CPerlHost::Clearenv(void)
 char*
 CPerlHost::Getenv(const char *varname)
 {
-    dTHXo;
+    dTHX;
     if (w32_pseudo_id) {
        char *pEnv = Find(varname);
        if (pEnv && *pEnv)
@@ -2367,7 +2355,7 @@ CPerlHost::Getenv(const char *varname)
 int
 CPerlHost::Putenv(const char *envstring)
 {
-    dTHXo;
+    dTHX;
     Add(envstring);
     if (!w32_pseudo_id)
        return win32_putenv(envstring);
@@ -2378,7 +2366,7 @@ CPerlHost::Putenv(const char *envstring)
 int
 CPerlHost::Chdir(const char *dirname)
 {
-    dTHXo;
+    dTHX;
     int ret;
     if (USING_WIDE()) {
        WCHAR wBuffer[MAX_PATH];
index 2d5a87d..6243a79 100644 (file)
@@ -5,10 +5,6 @@
 #include "EXTERN.h"
 #include "perl.h"
 
-#ifdef PERL_OBJECT
-#define NO_XSLOCKS
-#endif
-
 #include "XSUB.h"
 
 #ifdef PERL_IMPLICIT_SYS
@@ -23,10 +19,10 @@ char *staticlinkmodules[] = {
     NULL,
 };
 
-EXTERN_C void boot_DynaLoader (pTHXo_ CV* cv);
+EXTERN_C void boot_DynaLoader (pTHX_ CV* cv);
 
 static void
-xs_init(pTHXo)
+xs_init(pTHX)
 {
     char *file = __FILE__;
     dXSUB_SYS;
@@ -108,9 +104,6 @@ perl_alloc_override(struct IPerlMem** ppMem, struct IPerlMem** ppMemShared,
                                   pHost->m_pHostperlSock,
                                   pHost->m_pHostperlProc);
        if (my_perl) {
-#ifdef PERL_OBJECT
-           CPerlObj* pPerl = (CPerlObj*)my_perl;
-#endif
            w32_internal_host = pHost;
        }
     }
@@ -133,9 +126,6 @@ perl_alloc(void)
                                   pHost->m_pHostperlSock,
                                   pHost->m_pHostperlProc);
        if (my_perl) {
-#ifdef PERL_OBJECT
-           CPerlObj* pPerl = (CPerlObj*)my_perl;
-#endif
            w32_internal_host = pHost;
        }
     }
@@ -149,108 +139,6 @@ win32_delete_internal_host(void *h)
     delete host;
 }
 
-#ifdef PERL_OBJECT
-
-EXTERN_C void
-perl_construct(PerlInterpreter* my_perl)
-{
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-    try
-    {
-       Perl_construct();
-    }
-    catch(...)
-    {
-       win32_fprintf(stderr, "%s\n",
-                     "Error: Unable to construct data structures");
-       perl_free(my_perl);
-    }
-}
-
-EXTERN_C void
-perl_destruct(PerlInterpreter* my_perl)
-{
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-#ifdef DEBUGGING
-    Perl_destruct();
-#else
-    try
-    {
-       Perl_destruct();
-    }
-    catch(...)
-    {
-    }
-#endif
-}
-
-EXTERN_C void
-perl_free(PerlInterpreter* my_perl)
-{
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-    void *host = w32_internal_host;
-#ifdef DEBUGGING
-    Perl_free();
-#else
-    try
-    {
-       Perl_free();
-    }
-    catch(...)
-    {
-    }
-#endif
-    win32_delete_internal_host(host);
-    PERL_SET_THX(NULL);
-}
-
-EXTERN_C int
-perl_run(PerlInterpreter* my_perl)
-{
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-    int retVal;
-#ifdef DEBUGGING
-    retVal = Perl_run();
-#else
-    try
-    {
-       retVal = Perl_run();
-    }
-    catch(...)
-    {
-       win32_fprintf(stderr, "Error: Runtime exception\n");
-       retVal = -1;
-    }
-#endif
-    return retVal;
-}
-
-EXTERN_C int
-perl_parse(PerlInterpreter* my_perl, void (*xsinit)(CPerlObj*), int argc, char** argv, char** env)
-{
-    int retVal;
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-#ifdef DEBUGGING
-    retVal = Perl_parse(xsinit, argc, argv, env);
-#else
-    try
-    {
-       retVal = Perl_parse(xsinit, argc, argv, env);
-    }
-    catch(...)
-    {
-       win32_fprintf(stderr, "Error: Parse exception\n");
-       retVal = -1;
-    }
-#endif
-    *win32_errno() = 0;
-    return retVal;
-}
-
-#undef PL_perl_destruct_level
-#define PL_perl_destruct_level int dummy
-
-#endif /* PERL_OBJECT */
 #endif /* PERL_IMPLICIT_SYS */
 
 EXTERN_C HANDLE w32_perldll_handle;
@@ -295,23 +183,7 @@ RunPerl(int argc, char **argv, char **env)
     exitstatus = perl_parse(my_perl, xs_init, argc, argv, env);
     if (!exitstatus) {
 #if defined(TOP_CLONE) && defined(USE_ITHREADS)                /* XXXXXX testing */
-#  ifdef PERL_OBJECT
-       CPerlHost *h = new CPerlHost();
-       new_perl = perl_clone_using(my_perl, 1,
-                                   h->m_pHostperlMem,
-                                   h->m_pHostperlMemShared,
-                                   h->m_pHostperlMemParse,
-                                   h->m_pHostperlEnv,
-                                   h->m_pHostperlStdIO,
-                                   h->m_pHostperlLIO,
-                                   h->m_pHostperlDir,
-                                   h->m_pHostperlSock,
-                                   h->m_pHostperlProc
-                                   );
-       CPerlObj *pPerl = (CPerlObj*)new_perl;
-#  else
        new_perl = perl_clone(my_perl, 1);
-#  endif
        exitstatus = perl_run(new_perl);
        PERL_SET_THX(my_perl);
 #else
@@ -400,7 +272,7 @@ DllMain(HANDLE hModule,             /* DLL module handle */
 #if defined(USE_ITHREADS) && defined(PERL_IMPLICIT_SYS)
 EXTERN_C PerlInterpreter *
 perl_clone_host(PerlInterpreter* proto_perl, UV flags) {
-    dTHXo;
+    dTHX;
     CPerlHost *h;
     h = new CPerlHost(*(CPerlHost*)PL_sys_intern.internal_host);
     proto_perl = perl_clone_using(proto_perl, flags,
index 687f121..905a987 100644 (file)
@@ -91,13 +91,6 @@ int _fcloseall();
 #  define getlogin g_getlogin
 #endif
 
-#if defined(PERL_OBJECT)
-#  undef do_aspawn
-#  define do_aspawn g_do_aspawn
-#  undef Perl_do_exec
-#  define Perl_do_exec g_do_exec
-#endif
-
 static void            get_shell(void);
 static long            tokenize(const char *str, char **dest, char ***destv);
        int             do_spawn2(char *cmd, int exectype);
@@ -179,7 +172,7 @@ get_regstr_from(HKEY hkey, const char *valuename, SV **svp)
        if (retval == ERROR_SUCCESS
            && (type == REG_SZ || type == REG_EXPAND_SZ))
        {
-           dTHXo;
+           dTHX;
            if (!*svp)
                *svp = sv_2mortal(newSVpvn("",0));
            SvGROW(*svp, datalen);
@@ -259,7 +252,7 @@ get_emd_part(SV **prev_pathp, char *trailing_path, ...)
     /* only add directory if it exists */
     if (GetFileAttributes(mod_name) != (DWORD) -1) {
        /* directory exists */
-       dTHXo;
+       dTHX;
        if (!*prev_pathp)
            *prev_pathp = sv_2mortal(newSVpvn("",0));
        sv_catpvn(*prev_pathp, ";", 1);
@@ -273,7 +266,7 @@ get_emd_part(SV **prev_pathp, char *trailing_path, ...)
 char *
 win32_get_privlib(const char *pl)
 {
-    dTHXo;
+    dTHX;
     char *stdlib = "lib";
     char buffer[MAX_PATH+1];
     SV *sv = Nullsv;
@@ -290,7 +283,7 @@ win32_get_privlib(const char *pl)
 static char *
 win32_get_xlib(const char *pl, const char *xlib, const char *libname)
 {
-    dTHXo;
+    dTHX;
     char regstr[40];
     char pathstr[MAX_PATH+1];
     DWORD datalen;
@@ -438,7 +431,7 @@ win32_getpid(void)
 {
     int pid;
 #ifdef USE_ITHREADS
-    dTHXo;
+    dTHX;
     if (w32_pseudo_id)
        return -((int)w32_pseudo_id);
 #endif
@@ -464,7 +457,7 @@ tokenize(const char *str, char **dest, char ***destv)
     char **retvstart = 0;
     int items = -1;
     if (str) {
-       dTHXo;
+       dTHX;
        int slen = strlen(str);
        register char *ret;
        register char **retv;
@@ -507,7 +500,7 @@ tokenize(const char *str, char **dest, char ***destv)
 static void
 get_shell(void)
 {
-    dTHXo;
+    dTHX;
     if (!w32_perlshell_tokens) {
        /* we don't use COMSPEC here for two reasons:
         *  1. the same reason perl on UNIX doesn't use SHELL--rampant and
@@ -528,7 +521,7 @@ get_shell(void)
 int
 do_aspawn(void *vreally, void **vmark, void **vsp)
 {
-    dTHXo;
+    dTHX;
     SV *really = (SV*)vreally;
     SV **mark = (SV**)vmark;
     SV **sp = (SV**)vsp;
@@ -596,7 +589,7 @@ do_aspawn(void *vreally, void **vmark, void **vsp)
 int
 do_spawn2(char *cmd, int exectype)
 {
-    dTHXo;
+    dTHX;
     char **a;
     char *s;
     char **argv;
@@ -712,7 +705,7 @@ Perl_do_exec(pTHX_ char *cmd)
 DllExport DIR *
 win32_opendir(char *filename)
 {
-    dTHXo;
+    dTHX;
     DIR                        *dirp;
     long               len;
     long               idx;
@@ -824,7 +817,7 @@ win32_readdir(DIR *dirp)
        /* Now set up for the next call to readdir */
        dirp->curr += len + 1;
        if (dirp->curr >= dirp->end) {
-           dTHXo;
+           dTHX;
            char*               ptr;
            BOOL                res;
            WIN32_FIND_DATAW    wFindData;
@@ -898,7 +891,7 @@ win32_rewinddir(DIR *dirp)
 DllExport int
 win32_closedir(DIR *dirp)
 {
-    dTHXo;
+    dTHX;
     if (dirp->handle != INVALID_HANDLE_VALUE)
        FindClose(dirp->handle);
     Safefree(dirp->start);
@@ -960,7 +953,7 @@ setgid(gid_t agid)
 char *
 getlogin(void)
 {
-    dTHXo;
+    dTHX;
     char *buf = w32_getlogin_buffer;
     DWORD size = sizeof(w32_getlogin_buffer);
     if (GetUserName(buf,&size))
@@ -1003,7 +996,7 @@ retry:
 static long
 find_pid(int pid)
 {
-    dTHXo;
+    dTHX;
     long child = w32_num_children;
     while (--child >= 0) {
        if (w32_child_pids[child] == pid)
@@ -1016,7 +1009,7 @@ static void
 remove_dead_process(long child)
 {
     if (child >= 0) {
-       dTHXo;
+       dTHX;
        CloseHandle(w32_child_handles[child]);
        Move(&w32_child_handles[child+1], &w32_child_handles[child],
             (w32_num_children-child-1), HANDLE);
@@ -1030,7 +1023,7 @@ remove_dead_process(long child)
 static long
 find_pseudo_pid(int pid)
 {
-    dTHXo;
+    dTHX;
     long child = w32_num_pseudo_children;
     while (--child >= 0) {
        if (w32_pseudo_child_pids[child] == pid)
@@ -1043,7 +1036,7 @@ static void
 remove_dead_pseudo_process(long child)
 {
     if (child >= 0) {
-       dTHXo;
+       dTHX;
        CloseHandle(w32_pseudo_child_handles[child]);
        Move(&w32_pseudo_child_handles[child+1], &w32_pseudo_child_handles[child],
             (w32_num_pseudo_children-child-1), HANDLE);
@@ -1057,7 +1050,7 @@ remove_dead_pseudo_process(long child)
 DllExport int
 win32_kill(int pid, int sig)
 {
-    dTHXo;
+    dTHX;
     HANDLE hProcess;
     long child;
 #ifdef USE_ITHREADS
@@ -1123,7 +1116,7 @@ win32_sleep(unsigned int t)
 DllExport int
 win32_stat(const char *path, struct stat *sbuf)
 {
-    dTHXo;
+    dTHX;
     char       buffer[MAX_PATH+1]; 
     int                l = strlen(path);
     int                res;
@@ -1325,7 +1318,7 @@ win32_longpath(char *path)
 DllExport char *
 win32_getenv(const char *name)
 {
-    dTHXo;
+    dTHX;
     WCHAR wBuffer[MAX_PATH+1];
     DWORD needlen;
     SV *curitem = Nullsv;
@@ -1374,7 +1367,7 @@ win32_getenv(const char *name)
 DllExport int
 win32_putenv(const char *name)
 {
-    dTHXo;
+    dTHX;
     char* curitem;
     char* val;
     WCHAR* wCuritem;
@@ -1483,7 +1476,7 @@ filetime_from_time(PFILETIME pFileTime, time_t Time)
 DllExport int
 win32_unlink(const char *filename)
 {
-    dTHXo;
+    dTHX;
     int ret;
     DWORD attrs;
 
@@ -1528,7 +1521,7 @@ fail:
 DllExport int
 win32_utime(const char *filename, struct utimbuf *times)
 {
-    dTHXo;
+    dTHX;
     HANDLE handle;
     FILETIME ftCreate;
     FILETIME ftAccess;
@@ -1677,7 +1670,7 @@ win32_uname(struct utsname *name)
 DllExport int
 win32_waitpid(int pid, int *status, int flags)
 {
-    dTHXo;
+    dTHX;
     DWORD timeout = (flags & WNOHANG) ? 0 : INFINITE;
     int retval = -1;
     long child;
@@ -1761,7 +1754,7 @@ win32_wait(int *status)
     /* XXX this wait emulation only knows about processes
      * spawned via win32_spawnvp(P_NOWAIT, ...).
      */
-    dTHXo;
+    dTHX;
     int i, retval;
     DWORD exitcode, waitcode;
 
@@ -1816,23 +1809,19 @@ FAILED:
     return -1;
 }
 
-#ifndef PERL_OBJECT
-
 static UINT timerid = 0;
 
 static VOID CALLBACK TimerProc(HWND win, UINT msg, UINT id, DWORD time)
 {
-    dTHXo;
+    dTHX;
     KillTimer(NULL,timerid);
     timerid=0;  
     CALL_FPTR(PL_sighandlerp)(14);
 }
-#endif /* !PERL_OBJECT */
 
 DllExport unsigned int
 win32_alarm(unsigned int sec)
 {
-#ifndef PERL_OBJECT
     /* 
      * the 'obvious' implentation is SetTimer() with a callback
      * which does whatever receiving SIGALRM would do 
@@ -1842,7 +1831,7 @@ win32_alarm(unsigned int sec)
      * Snag is unless something is looking at the message queue
      * nothing happens :-(
      */ 
-    dTHXo;
+    dTHX;
     if (sec)
      {
       timerid = SetTimer(NULL,timerid,sec*1000,(TIMERPROC)TimerProc);
@@ -1857,7 +1846,6 @@ win32_alarm(unsigned int sec)
         timerid=0;  
        }
      }
-#endif /* !PERL_OBJECT */
     return 0;
 }
 
@@ -1868,7 +1856,7 @@ extern char *     des_fcrypt(const char *txt, const char *salt, char *cbuf);
 DllExport char *
 win32_crypt(const char *txt, const char *salt)
 {
-    dTHXo;
+    dTHX;
 #ifdef HAVE_DES_FCRYPT
     return des_fcrypt(txt, salt, w32_crypt_buffer);
 #else
@@ -1980,7 +1968,7 @@ win32_flock(int fd, int oper)
     HANDLE fh;
 
     if (!IsWinNT()) {
-       dTHXo;
+       dTHX;
        Perl_croak_nocontext("flock() unimplemented on this platform");
        return -1;
     }
@@ -2079,7 +2067,7 @@ win32_strerror(int e)
     DWORD source = 0;
 
     if (e < 0 || e > sys_nerr) {
-        dTHXo;
+        dTHX;
        if (e < 0)
            e = GetLastError();
 
@@ -2119,7 +2107,7 @@ win32_str_os_error(void *sv, DWORD dwErr)
                            dwErr, GetLastError());
     }
     if (sMsg) {
-       dTHXo;
+       dTHX;
        sv_setpvn((SV*)sv, sMsg, dwLen);
        LocalFree(sMsg);
     }
@@ -2172,7 +2160,7 @@ win32_fwrite(const void *buf, size_t size, size_t count, FILE *fp)
 DllExport FILE *
 win32_fopen(const char *filename, const char *mode)
 {
-    dTHXo;
+    dTHX;
     WCHAR wMode[MODE_SIZE], wBuffer[MAX_PATH+1];
     FILE *f;
     
@@ -2203,7 +2191,7 @@ win32_fopen(const char *filename, const char *mode)
 DllExport FILE *
 win32_fdopen(int handle, const char *mode)
 {
-    dTHXo;
+    dTHX;
     WCHAR wMode[MODE_SIZE];
     FILE *f;
     if (USING_WIDE()) {
@@ -2221,7 +2209,7 @@ win32_fdopen(int handle, const char *mode)
 DllExport FILE *
 win32_freopen(const char *path, const char *mode, FILE *stream)
 {
-    dTHXo;
+    dTHX;
     WCHAR wMode[MODE_SIZE], wBuffer[MAX_PATH+1];
     if (stricmp(path, "/dev/null")==0)
        path = "NUL";
@@ -2425,7 +2413,7 @@ win32_popen(const char *command, const char *mode)
 
     /* start the child */
     {
-       dTHXo;
+       dTHX;
        if ((childpid = do_spawn_nowait((char*)command)) == -1)
            goto cleanup;
 
@@ -2470,7 +2458,7 @@ win32_pclose(PerlIO *pf)
 #ifdef USE_RTL_POPEN
     return _pclose(pf);
 #else
-    dTHXo;
+    dTHX;
     int childpid, status;
     SV *sv;
 
@@ -2564,7 +2552,7 @@ Nt4CreateHardLinkW(
 DllExport int
 win32_link(const char *oldname, const char *newname)
 {
-    dTHXo;
+    dTHX;
     BOOL (__stdcall *pfnCreateHardLinkW)(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
     WCHAR wOldName[MAX_PATH+1];
     WCHAR wNewName[MAX_PATH+1];
@@ -2597,7 +2585,7 @@ win32_rename(const char *oname, const char *newname)
     char szOldName[MAX_PATH+1];
     char szNewName[MAX_PATH+1];
     BOOL bResult;
-    dTHXo;
+    dTHX;
 
     /* XXX despite what the documentation says about MoveFileEx(),
      * it doesn't work under Windows95!
@@ -2735,7 +2723,7 @@ win32_tell(int fd)
 DllExport int
 win32_open(const char *path, int flag, ...)
 {
-    dTHXo;
+    dTHX;
     va_list ap;
     int pmode;
     WCHAR wBuffer[MAX_PATH+1];
@@ -2996,7 +2984,7 @@ win32_write(int fd, const void *buf, unsigned int cnt)
 DllExport int
 win32_mkdir(const char *dir, int mode)
 {
-    dTHXo;
+    dTHX;
     if (USING_WIDE()) {
        WCHAR wBuffer[MAX_PATH+1];
        A2WHELPER(dir, wBuffer, sizeof(wBuffer));
@@ -3008,7 +2996,7 @@ win32_mkdir(const char *dir, int mode)
 DllExport int
 win32_rmdir(const char *dir)
 {
-    dTHXo;
+    dTHX;
     if (USING_WIDE()) {
        WCHAR wBuffer[MAX_PATH+1];
        A2WHELPER(dir, wBuffer, sizeof(wBuffer));
@@ -3020,7 +3008,7 @@ win32_rmdir(const char *dir)
 DllExport int
 win32_chdir(const char *dir)
 {
-    dTHXo;
+    dTHX;
     if (USING_WIDE()) {
        WCHAR wBuffer[MAX_PATH+1];
        A2WHELPER(dir, wBuffer, sizeof(wBuffer));
@@ -3032,7 +3020,7 @@ win32_chdir(const char *dir)
 DllExport  int
 win32_access(const char *path, int mode)
 {
-    dTHXo;
+    dTHX;
     if (USING_WIDE()) {
        WCHAR wBuffer[MAX_PATH+1];
        A2WHELPER(path, wBuffer, sizeof(wBuffer));
@@ -3044,7 +3032,7 @@ win32_access(const char *path, int mode)
 DllExport  int
 win32_chmod(const char *path, int mode)
 {
-    dTHXo;
+    dTHX;
     if (USING_WIDE()) {
        WCHAR wBuffer[MAX_PATH+1];
        A2WHELPER(path, wBuffer, sizeof(wBuffer));
@@ -3057,7 +3045,7 @@ win32_chmod(const char *path, int mode)
 static char *
 create_command_line(const char* command, const char * const *args)
 {
-    dTHXo;
+    dTHX;
     int index;
     char *cmd, *ptr, *arg;
     STRLEN len = strlen(command) + 1;
@@ -3081,7 +3069,7 @@ create_command_line(const char* command, const char * const *args)
 static char *
 qualified_path(const char *cmd)
 {
-    dTHXo;
+    dTHX;
     char *pathstr;
     char *fullcmd, *curfullcmd;
     STRLEN cmdlen = 0;
@@ -3186,7 +3174,7 @@ free_childenv(void* d)
 char*
 get_childdir(void)
 {
-    dTHXo;
+    dTHX;
     char* ptr;
     char szfilename[(MAX_PATH+1)*2];
     if (USING_WIDE()) {
@@ -3206,7 +3194,7 @@ get_childdir(void)
 void
 free_childdir(char* d)
 {
-    dTHXo;
+    dTHX;
     Safefree(d);
 }
 
@@ -3228,7 +3216,7 @@ win32_spawnvp(int mode, const char *cmdname, const char *const *argv)
 #ifdef USE_RTL_SPAWNVP
     return spawnvp(mode, cmdname, (char * const *)argv);
 #else
-    dTHXo;
+    dTHX;
     int ret;
     void* env;
     char* dir;
@@ -3348,7 +3336,7 @@ DllExport int
 win32_execv(const char *cmdname, const char *const *argv)
 {
 #ifdef USE_ITHREADS
-    dTHXo;
+    dTHX;
     /* if this is a pseudo-forked child, we just want to spawn
      * the new program, and return */
     if (w32_pseudo_id)
@@ -3361,7 +3349,7 @@ DllExport int
 win32_execvp(const char *cmdname, const char *const *argv)
 {
 #ifdef USE_ITHREADS
-    dTHXo;
+    dTHX;
     /* if this is a pseudo-forked child, we just want to spawn
      * the new program, and return */
     if (w32_pseudo_id) {
@@ -3572,7 +3560,7 @@ win32_get_osfhandle(int fd)
 DllExport void*
 win32_dynaload(const char* filename)
 {
-    dTHXo;
+    dTHX;
     HMODULE hModule;
     char buf[MAX_PATH+1];
     char *first;
@@ -4065,7 +4053,7 @@ XS(w32_CopyFile)
 void
 Perl_init_os_extras(void)
 {
-    dTHXo;
+    dTHX;
     char *file = __FILE__;
     dXSUB_SYS;
 
@@ -4128,16 +4116,6 @@ win32_get_child_IO(child_IO_table* ptbl)
 
 #ifdef HAVE_INTERP_INTERN
 
-#  ifdef PERL_OBJECT
-#    undef Perl_sys_intern_init
-#    define Perl_sys_intern_init CPerlObj::Perl_sys_intern_init
-#    undef Perl_sys_intern_dup
-#    define Perl_sys_intern_dup CPerlObj::Perl_sys_intern_dup
-#    undef Perl_sys_intern_clear
-#    define Perl_sys_intern_clear CPerlObj::Perl_sys_intern_clear
-#    define pPerl this
-#  endif
-
 void
 Perl_sys_intern_init(pTHX)
 {
@@ -4184,13 +4162,8 @@ Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst)
 #  endif /* USE_ITHREADS */
 #endif /* HAVE_INTERP_INTERN */
 
-#ifdef PERL_OBJECT
-#  undef this
-#  define this pPerl
-#endif
-
 static void
-win32_free_argvw(pTHXo_ void *ptr)
+win32_free_argvw(pTHX_ void *ptr)
 {
     char** argv = (char**)ptr;
     while(*argv) {
@@ -4202,7 +4175,7 @@ win32_free_argvw(pTHXo_ void *ptr)
 void
 win32_argv2utf8(int argc, char** argv)
 {
-    dTHXo;
+    dTHX;
     char* psz;
     int length, wargc;
     LPWSTR* lpwStr = CommandLineToArgvW(GetCommandLineW(), &wargc);
index 1350670..16ad7fa 100644 (file)
@@ -13,7 +13,7 @@
 #  define _WIN32_WINNT 0x0400     /* needed for TryEnterCriticalSection() etc. */
 #endif
 
-#if defined(PERL_OBJECT) || defined(PERL_IMPLICIT_SYS) || defined(PERL_CAPI)
+#if defined(PERL_IMPLICIT_SYS)
 #  define DYNAMIC_ENV_FETCH
 #  define HAS_GETENV_LEN
 #  define prime_env_iter()
 
 /* now even GCC supports __declspec() */
 
-#if defined(PERL_OBJECT)
-#define DllExport
-#else
 #if defined(PERLDLL) || defined(WIN95FIX)
 #define DllExport
 /*#define DllExport __declspec(dllexport)*/    /* noises with VC5+sp3 */
 #else 
 #define DllExport __declspec(dllimport)
 #endif
-#endif
 
 #define  WIN32_LEAN_AND_MEAN
 #include <windows.h>
@@ -186,11 +182,6 @@ struct utsname {
 #pragma warn -use      /* "'foo' is declared but never used" */
 #pragma warn -csu      /* "comparing signed and unsigned values" */
 
-/* Borland is picky about a bare member function name used as its ptr */
-#ifdef PERL_OBJECT
-#  define MEMBER_TO_FPTR(name) &(name)
-#endif
-
 /* Borland C thinks that a pointer to a member variable is 12 bytes in size. */
 #define PERL_MEMBER_PTR_SIZE   12
 
@@ -223,10 +214,6 @@ typedef long               gid_t;
 #define fcloseall      _fcloseall
 #define isnan          _isnan  /* ...same libraries as MSVC */
 
-#ifdef PERL_OBJECT
-#  define MEMBER_TO_FPTR(name) &(name)
-#endif
-
 #ifndef _O_NOINHERIT
 #  define _O_NOINHERIT 0x0080
 #  ifndef _NO_OLDNAMES
@@ -243,46 +230,6 @@ typedef long               gid_t;
 
 /* compatibility stuff for other compilers goes here */
 
-
-#if !defined(PERL_OBJECT) && defined(PERL_CAPI) && defined(PERL_MEMBER_PTR_SIZE)
-#  define STRUCT_MGVTBL_DEFINITION \
-struct mgvtbl {                                                                \
-    union {                                                            \
-       int         (CPERLscope(*svt_get))(pTHX_ SV *sv, MAGIC* mg);    \
-       char        handle_VC_problem1[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-    union {                                                            \
-       int         (CPERLscope(*svt_set))(pTHX_ SV *sv, MAGIC* mg);    \
-       char        handle_VC_problem2[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-    union {                                                            \
-       U32         (CPERLscope(*svt_len))(pTHX_ SV *sv, MAGIC* mg);    \
-       char        handle_VC_problem3[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-    union {                                                            \
-       int         (CPERLscope(*svt_clear))(pTHX_ SV *sv, MAGIC* mg);  \
-       char        handle_VC_problem4[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-    union {                                                            \
-       int         (CPERLscope(*svt_free))(pTHX_ SV *sv, MAGIC* mg);   \
-       char        handle_VC_problem5[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-}
-
-#  define BASEOP_DEFINITION \
-    OP*                op_next;                                                \
-    OP*                op_sibling;                                             \
-    OP*                (CPERLscope(*op_ppaddr))(pTHX);                         \
-    char       handle_VC_problem[PERL_MEMBER_PTR_SIZE-sizeof(OP*)];    \
-    PADOFFSET  op_targ;                                                \
-    OPCODE     op_type;                                                \
-    U16                op_seq;                                                 \
-    U8         op_flags;                                               \
-    U8         op_private;
-
-#endif /* !PERL_OBJECT && PERL_CAPI && PERL_MEMBER_PTR_SIZE */
-
-
 START_EXTERN_C
 
 /* For UNIX compatibility. */
index bdc335f..4fb2047 100644 (file)
 #include "EXTERN.h"
 #include "perl.h"
 
-#if defined(PERL_OBJECT)
-#define NO_XSLOCKS
-#include "XSUB.h"
-#endif
-
 #include "Win32iop.h"
 #include <sys/socket.h>
 #include <fcntl.h>
@@ -82,7 +77,7 @@ EndSockets(void)
 void
 start_sockets(void) 
 {
-    dTHXo;
+    dTHX;
     unsigned short version;
     WSADATA retdata;
     int ret;
@@ -106,7 +101,7 @@ set_socktype(void)
 {
 #ifdef USE_SOCKETS_AS_HANDLES
 #if defined(USE_5005THREADS) || defined(USE_ITHREADS)
-    dTHXo;
+    dTHX;
     if (!w32_init_socktype) {
 #endif
        int iSockOpt = SO_SYNCHRONOUS_NONALERT;
@@ -572,7 +567,7 @@ win32_getprotobynumber(int num)
 struct servent *
 win32_getservbyname(const char *name, const char *proto)
 {
-    dTHXo;    
+    dTHX;    
     struct servent *r;
 
     SOCKET_TEST(r = getservbyname(name, proto), NULL);
@@ -585,7 +580,7 @@ win32_getservbyname(const char *name, const char *proto)
 struct servent *
 win32_getservbyport(int port, const char *proto)
 {
-    dTHXo
+    dTHX; 
     struct servent *r;
 
     SOCKET_TEST(r = getservbyport(port, proto), NULL);
@@ -598,7 +593,7 @@ win32_getservbyport(int port, const char *proto)
 int
 win32_ioctl(int i, unsigned int u, char *data)
 {
-    dTHXo;
+    dTHX;
     u_long argp = (u_long)data;
     int retval;
 
@@ -639,28 +634,28 @@ win32_inet_addr(const char FAR *cp)
 void
 win32_endhostent() 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("endhostent not implemented!\n");
 }
 
 void
 win32_endnetent()
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("endnetent not implemented!\n");
 }
 
 void
 win32_endprotoent()
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("endprotoent not implemented!\n");
 }
 
 void
 win32_endservent()
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("endservent not implemented!\n");
 }
 
@@ -668,7 +663,7 @@ win32_endservent()
 struct netent *
 win32_getnetent(void) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getnetent not implemented!\n");
     return (struct netent *) NULL;
 }
@@ -676,7 +671,7 @@ win32_getnetent(void)
 struct netent *
 win32_getnetbyname(char *name) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getnetbyname not implemented!\n");
     return (struct netent *)NULL;
 }
@@ -684,7 +679,7 @@ win32_getnetbyname(char *name)
 struct netent *
 win32_getnetbyaddr(long net, int type) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getnetbyaddr not implemented!\n");
     return (struct netent *)NULL;
 }
@@ -692,7 +687,7 @@ win32_getnetbyaddr(long net, int type)
 struct protoent *
 win32_getprotoent(void) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getprotoent not implemented!\n");
     return (struct protoent *) NULL;
 }
@@ -700,7 +695,7 @@ win32_getprotoent(void)
 struct servent *
 win32_getservent(void) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getservent not implemented!\n");
     return (struct servent *) NULL;
 }
@@ -708,7 +703,7 @@ win32_getservent(void)
 void
 win32_sethostent(int stayopen)
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("sethostent not implemented!\n");
 }
 
@@ -716,7 +711,7 @@ win32_sethostent(int stayopen)
 void
 win32_setnetent(int stayopen)
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("setnetent not implemented!\n");
 }
 
@@ -724,7 +719,7 @@ win32_setnetent(int stayopen)
 void
 win32_setprotoent(int stayopen)
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("setprotoent not implemented!\n");
 }
 
@@ -732,7 +727,7 @@ win32_setprotoent(int stayopen)
 void
 win32_setservent(int stayopen)
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("setservent not implemented!\n");
 }
 
index 6df2768..1fdd0ef 100644 (file)
@@ -1,12 +1,6 @@
 #include "EXTERN.h"
 #include "perl.h"
 
-#if defined(PERL_OBJECT)
-#define NO_XSLOCKS
-extern CPerlObj* pPerl;
-#include "XSUB.h"
-#endif
-
 #ifdef USE_DECLSPEC_THREAD
 __declspec(thread) void *PL_current_context = NULL;
 #endif
index dd2dbd6..36cbbb2 100644 (file)
@@ -338,13 +338,6 @@ D_CRYPT            = define
 CRYPT_FLAG     = -DHAVE_DES_FCRYPT
 !ENDIF
 
-!IF "$(USE_OBJECT)" == "define"
-PERL_MALLOC    = undef
-USE_5005THREADS        = undef
-USE_MULTI      = undef
-USE_IMP_SYS    = define
-!ENDIF
-
 !IF "$(PERL_MALLOC)" == ""
 PERL_MALLOC    = undef
 !ENDIF
@@ -365,10 +358,6 @@ PERL_MALLOC        = undef
 USE_MULTI      = undef
 !ENDIF
 
-!IF "$(USE_OBJECT)" == ""
-USE_OBJECT     = undef
-!ENDIF
-
 !IF "$(USE_ITHREADS)" == ""
 USE_ITHREADS   = undef
 !ENDIF
@@ -381,16 +370,16 @@ USE_IMP_SYS       = undef
 USE_PERLCRT    = undef
 !ENDIF
 
-!IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" == "defineundefundefundef"
+!IF "$(USE_IMP_SYS)$(USE_MULTI)$(USE_5005THREADS)" == "defineundefundef"
 USE_MULTI      = define
 !ENDIF
 
-!IF "$(USE_ITHREADS)$(USE_MULTI)$(USE_OBJECT)" == "defineundefundef"
+!IF "$(USE_ITHREADS)$(USE_MULTI)" == "defineundef"
 USE_MULTI      = define
 USE_5005THREADS        = undef
 !ENDIF
 
-!IF "$(USE_MULTI)$(USE_5005THREADS)$(USE_OBJECT)" != "undefundefundef"
+!IF "$(USE_MULTI)$(USE_5005THREADS)" != "undefundef"
 BUILDOPT       = $(BUILDOPT) -DPERL_IMPLICIT_CONTEXT
 !ENDIF
 
@@ -424,11 +413,6 @@ CXX_FLAG   = -TP -GX
 PERLEXE_RES    = perl.res
 PERLDLL_RES    =
 
-!IF "$(USE_OBJECT)" == "define"
-OPTIMIZE       = $(OPTIMIZE) $(CXX_FLAG)
-BUILDOPT       = $(BUILDOPT) -DPERL_OBJECT
-!ENDIF
-
 !if "$(CFG)" == "RELEASE"
 CELIB           = celib.lib
 !endif
@@ -545,9 +529,7 @@ EXTRACORE_SRC       = $(EXTRACORE_SRC) perllib.c
 EXTRACORE_SRC  = $(EXTRACORE_SRC) ..\malloc.c
 !ENDIF
 
-!IF "$(USE_OBJECT)" != "define"
 EXTRACORE_SRC  = $(EXTRACORE_SRC) ..\perlio.c
-!ENDIF
 
 WIN32_SRC      =               \
                .\wince.c       \
index b5f5e38..d78a62e 100644 (file)
@@ -2,7 +2,6 @@
 use Config;
 use File::Compare qw(compare);
 use File::Copy qw(copy);
-my $OBJ   = 1 if $Config{'ccflags'} =~ /PERL_OBJECT/i;
 my $name = $0;
 $name =~ s#^(.*)\.PL$#../$1.SH#;
 my %opt;
@@ -73,7 +72,7 @@ chmod(0666,"config.h");
 copy("$file.new","config.h") || die "Cannot copy:$!";
 chmod(0444,"config.h");
 
-if (!$OBJ && compare("$file.new",$file))
+if (compare("$file.new",$file))
  {
   warn "$file has changed\n";
   chmod(0666,$file);
index 15962a6..d93d9dd 100644 (file)
@@ -30,16 +30,12 @@ calls.
 #include "perl.h"
 #include "win32.h"
 
-#ifdef PERL_OBJECT
-#define NO_XSLOCKS
-#endif  /* PERL_OBJECT */
-
 #include "XSUB.h"
 
 static SV *error_sv;
 
 static char *
-OS_Error_String(pTHXo)
+OS_Error_String(pTHX)
 {
  DWORD err = GetLastError();
  STRLEN len;
@@ -52,9 +48,9 @@ OS_Error_String(pTHXo)
 #include "dlutils.c"   /* SaveError() etc      */
 
 static void
-dl_private_init(pTHXo)
+dl_private_init(pTHX)
 {
-    (void)dl_generic_private_init(aTHXo);
+    (void)dl_generic_private_init(aTHX);
 }
 
 /* 
@@ -96,7 +92,7 @@ dl_static_linked(char *filename)
 MODULE = DynaLoader    PACKAGE = DynaLoader
 
 BOOT:
-    (void)dl_private_init(aTHXo);
+    (void)dl_private_init(aTHX);
 
 void *
 dl_load_file(filename,flags=0)
@@ -114,8 +110,8 @@ dl_load_file(filename,flags=0)
     DLDEBUG(2,PerlIO_printf(Perl_debug_log," libref=%x\n", RETVAL));
     ST(0) = sv_newmortal() ;
     if (RETVAL == NULL)
-       SaveError(aTHXo_ "load_file:%s",
-                 OS_Error_String(aTHXo)) ;
+       SaveError(aTHX_ "load_file:%s",
+                 OS_Error_String(aTHX)) ;
     else
        sv_setiv( ST(0), (IV)RETVAL);
   }
@@ -131,8 +127,8 @@ dl_find_symbol(libhandle, symbolname)
     DLDEBUG(2,PerlIO_printf(Perl_debug_log,"  symbolref = %x\n", RETVAL));
     ST(0) = sv_newmortal() ;
     if (RETVAL == NULL)
-       SaveError(aTHXo_ "find_symbol:%s",
-                 OS_Error_String(aTHXo)) ;
+       SaveError(aTHX_ "find_symbol:%s",
+                 OS_Error_String(aTHX)) ;
     else
        sv_setiv( ST(0), (IV)RETVAL);
 
@@ -154,7 +150,7 @@ dl_install_xsub(perl_name, symref, filename="$Package")
     DLDEBUG(2,PerlIO_printf(Perl_debug_log,"dl_install_xsub(name=%s, symref=%x)\n",
                      perl_name, symref));
     ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name,
-                                       (void(*)(pTHXo_ CV *))symref,
+                                       (void(*)(pTHX_ CV *))symref,
                                        filename)));
 
 
index 931a362..3d4d37e 100644 (file)
@@ -3,10 +3,6 @@
 #include "EXTERN.h"
 #include "perl.h"
 
-#ifdef PERL_OBJECT
-#define NO_XSLOCKS
-#endif
-
 #include "XSUB.h"
 
 #ifdef PERL_IMPLICIT_SYS
@@ -21,10 +17,10 @@ char *staticlinkmodules[] = {
     NULL,
 };
 
-EXTERN_C void boot_DynaLoader (pTHXo_ CV* cv);
+EXTERN_C void boot_DynaLoader (pTHX_ CV* cv);
 
 static void
-xs_init(pTHXo)
+xs_init(pTHX)
 {
     char *file = __FILE__;
     dXSUB_SYS;
@@ -106,9 +102,6 @@ perl_alloc_override(struct IPerlMem** ppMem, struct IPerlMem** ppMemShared,
                                   pHost->m_pHostperlSock,
                                   pHost->m_pHostperlProc);
        if (my_perl) {
-#ifdef PERL_OBJECT
-           CPerlObj* pPerl = (CPerlObj*)my_perl;
-#endif
            w32_internal_host = pHost;
        }
     }
@@ -131,9 +124,6 @@ perl_alloc(void)
                                   pHost->m_pHostperlSock,
                                   pHost->m_pHostperlProc);
        if (my_perl) {
-#ifdef PERL_OBJECT
-           CPerlObj* pPerl = (CPerlObj*)my_perl;
-#endif
            w32_internal_host = pHost;
        }
     }
@@ -147,108 +137,6 @@ win32_delete_internal_host(void *h)
     delete host;
 }
 
-#ifdef PERL_OBJECT
-
-EXTERN_C void
-perl_construct(PerlInterpreter* my_perl)
-{
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-    try
-    {
-       Perl_construct();
-    }
-    catch(...)
-    {
-       win32_fprintf(stderr, "%s\n",
-                     "Error: Unable to construct data structures");
-       perl_free(my_perl);
-    }
-}
-
-EXTERN_C void
-perl_destruct(PerlInterpreter* my_perl)
-{
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-#ifdef DEBUGGING
-    Perl_destruct();
-#else
-    try
-    {
-       Perl_destruct();
-    }
-    catch(...)
-    {
-    }
-#endif
-}
-
-EXTERN_C void
-perl_free(PerlInterpreter* my_perl)
-{
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-    void *host = w32_internal_host;
-#ifdef DEBUGGING
-    Perl_free();
-#else
-    try
-    {
-       Perl_free();
-    }
-    catch(...)
-    {
-    }
-#endif
-    win32_delete_internal_host(host);
-    PERL_SET_THX(NULL);
-}
-
-EXTERN_C int
-perl_run(PerlInterpreter* my_perl)
-{
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-    int retVal;
-#ifdef DEBUGGING
-    retVal = Perl_run();
-#else
-    try
-    {
-       retVal = Perl_run();
-    }
-    catch(...)
-    {
-       win32_fprintf(stderr, "Error: Runtime exception\n");
-       retVal = -1;
-    }
-#endif
-    return retVal;
-}
-
-EXTERN_C int
-perl_parse(PerlInterpreter* my_perl, void (*xsinit)(CPerlObj*), int argc, char** argv, char** env)
-{
-    int retVal;
-    CPerlObj* pPerl = (CPerlObj*)my_perl;
-#ifdef DEBUGGING
-    retVal = Perl_parse(xsinit, argc, argv, env);
-#else
-    try
-    {
-       retVal = Perl_parse(xsinit, argc, argv, env);
-    }
-    catch(...)
-    {
-       win32_fprintf(stderr, "Error: Parse exception\n");
-       retVal = -1;
-    }
-#endif
-    *win32_errno() = 0;
-    return retVal;
-}
-
-#undef PL_perl_destruct_level
-#define PL_perl_destruct_level int dummy
-
-#endif /* PERL_OBJECT */
 #endif /* PERL_IMPLICIT_SYS */
 
 EXTERN_C HANDLE w32_perldll_handle;
@@ -293,23 +181,7 @@ RunPerl(int argc, char **argv, char **env)
     exitstatus = perl_parse(my_perl, xs_init, argc, argv, env);
     if (!exitstatus) {
 #if defined(TOP_CLONE) && defined(USE_ITHREADS)                /* XXXXXX testing */
-#  ifdef PERL_OBJECT
-       CPerlHost *h = new CPerlHost();
-       new_perl = perl_clone_using(my_perl, 1,
-                                   h->m_pHostperlMem,
-                                   h->m_pHostperlMemShared,
-                                   h->m_pHostperlMemParse,
-                                   h->m_pHostperlEnv,
-                                   h->m_pHostperlStdIO,
-                                   h->m_pHostperlLIO,
-                                   h->m_pHostperlDir,
-                                   h->m_pHostperlSock,
-                                   h->m_pHostperlProc
-                                   );
-       CPerlObj *pPerl = (CPerlObj*)new_perl;
-#  else
        new_perl = perl_clone(my_perl, 1);
-#  endif
        exitstatus = perl_run(new_perl);
        PERL_SET_THX(my_perl);
 #else
index a6544c6..c9c3a03 100644 (file)
@@ -16,7 +16,7 @@
 #  define _WIN32_WINNT 0x0400     /* needed for TryEnterCriticalSection() etc. */
 #endif
 
-#if defined(PERL_OBJECT) || defined(PERL_IMPLICIT_SYS) || defined(PERL_CAPI)
+#if defined(PERL_IMPLICIT_SYS)
 #  define DYNAMIC_ENV_FETCH
 #  define ENV_HV_NAME "___ENV_HV_NAME___"
 #  define HAS_GETENV_LEN
 
 /* now even GCC supports __declspec() */
 
-#if defined(PERL_OBJECT)
-#define DllExport
-#else
 #if defined(PERLDLL) || defined(WIN95FIX)
 #define DllExport
 /*#define DllExport __declspec(dllexport)*/    /* noises with VC5+sp3 */
 #else 
 #define DllExport __declspec(dllimport)
 #endif
-#endif
 
 #define  WIN32_LEAN_AND_MEAN
 #include <windows.h>
@@ -186,11 +182,6 @@ struct utsname {
 #pragma warn -pro      /* "call to function with no prototype" */
 #pragma warn -stu      /* "undefined structure 'foo'" */
 
-/* Borland is picky about a bare member function name used as its ptr */
-#ifdef PERL_OBJECT
-#  define MEMBER_TO_FPTR(name) &(name)
-#endif
-
 /* Borland C thinks that a pointer to a member variable is 12 bytes in size. */
 #define PERL_MEMBER_PTR_SIZE   12
 
@@ -220,10 +211,6 @@ typedef long               gid_t;
 #define flushall       _flushall
 #define fcloseall      _fcloseall
 
-#ifdef PERL_OBJECT
-#  define MEMBER_TO_FPTR(name) &(name)
-#endif
-
 #ifndef _O_NOINHERIT
 #  define _O_NOINHERIT 0x0080
 #  ifndef _NO_OLDNAMES
@@ -240,46 +227,6 @@ typedef long               gid_t;
 
 /* compatibility stuff for other compilers goes here */
 
-
-#if !defined(PERL_OBJECT) && defined(PERL_CAPI) && defined(PERL_MEMBER_PTR_SIZE)
-#  define STRUCT_MGVTBL_DEFINITION \
-struct mgvtbl {                                                                \
-    union {                                                            \
-       int         (CPERLscope(*svt_get))(pTHX_ SV *sv, MAGIC* mg);    \
-       char        handle_VC_problem1[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-    union {                                                            \
-       int         (CPERLscope(*svt_set))(pTHX_ SV *sv, MAGIC* mg);    \
-       char        handle_VC_problem2[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-    union {                                                            \
-       U32         (CPERLscope(*svt_len))(pTHX_ SV *sv, MAGIC* mg);    \
-       char        handle_VC_problem3[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-    union {                                                            \
-       int         (CPERLscope(*svt_clear))(pTHX_ SV *sv, MAGIC* mg);  \
-       char        handle_VC_problem4[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-    union {                                                            \
-       int         (CPERLscope(*svt_free))(pTHX_ SV *sv, MAGIC* mg);   \
-       char        handle_VC_problem5[PERL_MEMBER_PTR_SIZE];           \
-    };                                                                 \
-}
-
-#  define BASEOP_DEFINITION \
-    OP*                op_next;                                                \
-    OP*                op_sibling;                                             \
-    OP*                (CPERLscope(*op_ppaddr))(pTHX);                         \
-    char       handle_VC_problem[PERL_MEMBER_PTR_SIZE-sizeof(OP*)];    \
-    PADOFFSET  op_targ;                                                \
-    OPCODE     op_type;                                                \
-    U16                op_seq;                                                 \
-    U8         op_flags;                                               \
-    U8         op_private;
-
-#endif /* !PERL_OBJECT && PERL_CAPI && PERL_MEMBER_PTR_SIZE */
-
-
 START_EXTERN_C
 
 #undef  Stat
index 51b33d5..a94ffa4 100644 (file)
@@ -3,12 +3,6 @@
 #include "EXTERN.h"
 #include "perl.h"
 
-#if defined(PERL_OBJECT)
-#define NO_XSLOCKS
-extern CPerlObj* pPerl;
-#include "XSUB.h"
-#endif
-
 #ifdef USE_DECLSPEC_THREAD
 __declspec(thread) void *PL_current_context = NULL;
 #endif
index c2cda81..e9c9c8c 100644 (file)
 #  define getlogin g_getlogin
 #endif
 
-#if defined(PERL_OBJECT)
-#  undef do_aspawn
-#  define do_aspawn g_do_aspawn
-#  undef Perl_do_exec
-#  define Perl_do_exec g_do_exec
-#endif
-
 static long            filetime_to_clock(PFILETIME ft);
 static BOOL            filetime_from_time(PFILETIME ft, time_t t);
 static char *          get_emd_part(SV **leading, char *trailing, ...);
@@ -132,7 +125,7 @@ get_regstr_from(HKEY hkey, const char *valuename, SV **svp)
        DWORD datalen;
        retval = XCERegQueryValueExA(handle, valuename, 0, &type, NULL, &datalen);
        if (retval == ERROR_SUCCESS && type == REG_SZ) {
-           dTHXo;
+           dTHX;
            if (!*svp)
                *svp = sv_2mortal(newSVpvn("",0));
            SvGROW(*svp, datalen);
@@ -212,7 +205,7 @@ get_emd_part(SV **prev_pathp, char *trailing_path, ...)
     /* only add directory if it exists */
     if (XCEGetFileAttributesA(mod_name) != (DWORD) -1) {
        /* directory exists */
-       dTHXo;
+       dTHX;
        if (!*prev_pathp)
            *prev_pathp = sv_2mortal(newSVpvn("",0));
        sv_catpvn(*prev_pathp, ";", 1);
@@ -226,7 +219,7 @@ get_emd_part(SV **prev_pathp, char *trailing_path, ...)
 char *
 win32_get_privlib(const char *pl)
 {
-    dTHXo;
+    dTHX;
     char *stdlib = "lib";
     char buffer[MAX_PATH+1];
     SV *sv = Nullsv;
@@ -243,7 +236,7 @@ win32_get_privlib(const char *pl)
 static char *
 win32_get_xlib(const char *pl, const char *xlib, const char *libname)
 {
-    dTHXo;
+    dTHX;
     char regstr[40];
     char pathstr[MAX_PATH+1];
     DWORD datalen;
@@ -589,23 +582,19 @@ win32_uname(struct utsname *name)
     return 0;
 }
 
-#ifndef PERL_OBJECT
-
 static UINT timerid = 0;
 
 static VOID CALLBACK TimerProc(HWND win, UINT msg, UINT id, DWORD time)
 {
-    dTHXo;
+    dTHX;
     KillTimer(NULL,timerid);
     timerid=0;  
     sighandler(14);
 }
-#endif /* !PERL_OBJECT */
 
 DllExport unsigned int
 win32_alarm(unsigned int sec)
 {
-#ifndef PERL_OBJECT
     /* 
      * the 'obvious' implentation is SetTimer() with a callback
      * which does whatever receiving SIGALRM would do 
@@ -615,7 +604,7 @@ win32_alarm(unsigned int sec)
      * Snag is unless something is looking at the message queue
      * nothing happens :-(
      */ 
-    dTHXo;
+    dTHX;
     if (sec)
      {
       timerid = SetTimer(NULL,timerid,sec*1000,(TIMERPROC)TimerProc);
@@ -630,7 +619,6 @@ win32_alarm(unsigned int sec)
         timerid=0;  
        }
      }
-#endif /* !PERL_OBJECT */
     return 0;
 }
 
@@ -641,7 +629,7 @@ extern char *       des_fcrypt(const char *txt, const char *salt, char *cbuf);
 DllExport char *
 win32_crypt(const char *txt, const char *salt)
 {
-    dTHXo;
+    dTHX;
 #ifdef HAVE_DES_FCRYPT
     dTHR;
     return des_fcrypt(txt, salt, w32_crypt_buffer);
@@ -756,7 +744,7 @@ win32_strerror(int e)
 DllExport void
 win32_str_os_error(void *sv, DWORD dwErr)
 {
-  dTHXo;
+  dTHX;
 
   sv_setpvn((SV*)sv, "Error", 5);
 }
@@ -1237,7 +1225,7 @@ win32_execvp(const char *cmdname, const char *const *argv)
 DllExport void*
 win32_dynaload(const char* filename)
 {
-    dTHXo;
+    dTHX;
     HMODULE hModule;
 
     hModule = XCELoadLibraryA(filename);
@@ -1466,7 +1454,7 @@ XS(w32_ShellEx)
 void
 Perl_init_os_extras(void)
 {
-    dTHXo;
+    dTHX;
     char *file = __FILE__;
     dXSUB_SYS;
 
@@ -1571,11 +1559,6 @@ wce_hitreturn()
 
 //////////////////////////////////////////////////////////////////////
 
-#ifdef PERL_OBJECT
-#  undef this
-#  define this pPerl
-#endif
-
 void
 win32_argv2utf8(int argc, char** argv)
 {
index 64a1cab..beb7489 100644 (file)
 #include "EXTERN.h"
 #include "perl.h"
 
-#if defined(PERL_OBJECT)
-#define NO_XSLOCKS
-#include "XSUB.h"
-#endif
-
 #include "Win32iop.h"
 #include <sys/socket.h>
 
@@ -103,7 +98,7 @@ static int wsock_started = 0;
 void
 start_sockets(void) 
 {
-    dTHXo;
+    dTHX;
     unsigned short version;
     WSADATA retdata;
     int ret;
@@ -329,7 +324,7 @@ win32_getprotobynumber(int num)
 struct servent *
 win32_getservbyname(const char *name, const char *proto)
 {
-    dTHXo;    
+    dTHX;    
     struct servent *r;
 
     SOCKET_TEST(r = getservbyname(name, proto), NULL);
@@ -342,7 +337,7 @@ win32_getservbyname(const char *name, const char *proto)
 struct servent *
 win32_getservbyport(int port, const char *proto)
 {
-    dTHXo
+    dTHX; 
     struct servent *r;
 
     SOCKET_TEST(r = getservbyport(port, proto), NULL);
@@ -355,7 +350,7 @@ win32_getservbyport(int port, const char *proto)
 int
 win32_ioctl(int i, unsigned int u, char *data)
 {
-    dTHXo;
+    dTHX;
     u_long argp = (u_long)data;
     int retval;
 
@@ -396,28 +391,28 @@ win32_inet_addr(const char FAR *cp)
 void
 win32_endhostent() 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("endhostent not implemented!\n");
 }
 
 void
 win32_endnetent()
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("endnetent not implemented!\n");
 }
 
 void
 win32_endprotoent()
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("endprotoent not implemented!\n");
 }
 
 void
 win32_endservent()
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("endservent not implemented!\n");
 }
 
@@ -425,7 +420,7 @@ win32_endservent()
 struct netent *
 win32_getnetent(void) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getnetent not implemented!\n");
     return (struct netent *) NULL;
 }
@@ -433,7 +428,7 @@ win32_getnetent(void)
 struct netent *
 win32_getnetbyname(char *name) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getnetbyname not implemented!\n");
     return (struct netent *)NULL;
 }
@@ -441,7 +436,7 @@ win32_getnetbyname(char *name)
 struct netent *
 win32_getnetbyaddr(long net, int type) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getnetbyaddr not implemented!\n");
     return (struct netent *)NULL;
 }
@@ -449,7 +444,7 @@ win32_getnetbyaddr(long net, int type)
 struct protoent *
 win32_getprotoent(void) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getprotoent not implemented!\n");
     return (struct protoent *) NULL;
 }
@@ -457,7 +452,7 @@ win32_getprotoent(void)
 struct servent *
 win32_getservent(void) 
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("getservent not implemented!\n");
     return (struct servent *) NULL;
 }
@@ -465,7 +460,7 @@ win32_getservent(void)
 void
 win32_sethostent(int stayopen)
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("sethostent not implemented!\n");
 }
 
@@ -473,7 +468,7 @@ win32_sethostent(int stayopen)
 void
 win32_setnetent(int stayopen)
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("setnetent not implemented!\n");
 }
 
@@ -481,7 +476,7 @@ win32_setnetent(int stayopen)
 void
 win32_setprotoent(int stayopen)
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("setprotoent not implemented!\n");
 }
 
@@ -489,7 +484,7 @@ win32_setprotoent(int stayopen)
 void
 win32_setservent(int stayopen)
 {
-    dTHXo;
+    dTHX;
     Perl_croak_nocontext("setservent not implemented!\n");
 }
 
index 382befb..81bb2fc 100644 (file)
--- a/xsutils.c
+++ b/xsutils.c
@@ -7,12 +7,12 @@
  */
 
 /* package attributes; */
-void XS_attributes__warn_reserved(pTHXo_ CV *cv);
-void XS_attributes_reftype(pTHXo_ CV *cv);
-void XS_attributes__modify_attrs(pTHXo_ CV *cv);
-void XS_attributes__guess_stash(pTHXo_ CV *cv);
-void XS_attributes__fetch_attrs(pTHXo_ CV *cv);
-void XS_attributes_bootstrap(pTHXo_ CV *cv);
+void XS_attributes__warn_reserved(pTHX_ CV *cv);
+void XS_attributes_reftype(pTHX_ CV *cv);
+void XS_attributes__modify_attrs(pTHX_ CV *cv);
+void XS_attributes__guess_stash(pTHX_ CV *cv);
+void XS_attributes__fetch_attrs(pTHX_ CV *cv);
+void XS_attributes_bootstrap(pTHX_ CV *cv);
 
 
 /*
@@ -38,7 +38,7 @@ Perl_boot_core_xsutils(pTHX)
 #include "XSUB.h"
 
 static int
-modify_SV_attributes(pTHXo_ SV *sv, SV **retlist, SV **attrlist, int numattrs)
+modify_SV_attributes(pTHX_ SV *sv, SV **retlist, SV **attrlist, int numattrs)
 {
     SV *attr;
     char *name;
@@ -155,7 +155,7 @@ usage:
        goto usage;
     sv = SvRV(rv);
     if (items > 1)
-       XSRETURN(modify_SV_attributes(aTHXo_ sv, &ST(0), &ST(1), items-1));
+       XSRETURN(modify_SV_attributes(aTHX_ sv, &ST(0), &ST(1), items-1));
 
     XSRETURN(0);
 }