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_i