This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Integrate mainline
authorNick Ing-Simmons <nik@tiuk.ti.com>
Mon, 3 Sep 2001 06:20:06 +0000 (06:20 +0000)
committerNick Ing-Simmons <nik@tiuk.ti.com>
Mon, 3 Sep 2001 06:20:06 +0000 (06:20 +0000)
p4raw-id: //depot/perlio@11835

189 files changed:
Changes
EXTERN.h
MANIFEST
Makefile.SH
Makefile.micro
NetWare/Makefile
NetWare/config_H.wc
NetWare/config_h.PL
NetWare/dl_netware.xs
NetWare/interface.c
NetWare/nw5.c
NetWare/nw5sck.c
NetWare/nw5thread.c
NetWare/nw5thread.h
NetWare/nwperlsys.c
NetWare/nwperlsys.h
NetWare/t/NWScripts.pl
Porting/Glossary
Porting/config_H
Porting/makerel
README.dos
README.threads
README.win32
XSUB.h
bytecode.pl
cop.h
cv.h
cygwin/cygwin.c
deb.c
dosish.h
dump.c
emacs/ptags
embed.h
embed.pl
embedvar.h
epoc/epoc.c
ext/B/B.xs
ext/B/B/C.pm
ext/B/B/Deparse.pm
ext/B/B/Lint.pm
ext/B/ramblings/runtime.porting
ext/ByteLoader/ByteLoader.xs
ext/ByteLoader/bytecode.h
ext/ByteLoader/byterun.c
ext/ByteLoader/byterun.h
ext/Devel/Peek/Peek.t
ext/DynaLoader/dl_aix.xs
ext/DynaLoader/dlutils.c
ext/Encode/Encode/cns11643-1.enc
ext/Encode/Encode/cns11643-2.enc
ext/Opcode/Opcode.pm
ext/Opcode/Opcode.xs
ext/POSIX/POSIX.pod
ext/POSIX/POSIX.xs
ext/SDBM_File/Makefile.PL
ext/Socket/Socket.t
ext/Socket/Socket.xs
ext/Sys/Syslog/Makefile.PL
ext/Thread/Thread.xs
ext/Time/HiRes/HiRes.t
global.sym
globals.c
gv.c
hints/hpux.sh
intrpvar.h
iperlsys.h
jpl/JNI/JNI.xs
jpl/JNI/Makefile.PL
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
lib/Net/Ping.pm
lib/Shell.t [new file with mode: 0644]
lib/Term/Cap.pm
lib/Time/Local.pm
lib/UNIVERSAL.pm
lib/Unicode/Collate.pm
lib/Unicode/Collate/Changes
lib/Unicode/Collate/README
lib/Unicode/Collate/t/test.t
lib/Unicode/UCD.pm
lib/Unicode/UCD.t
lib/unicore/ArabLink.pl
lib/unicore/ArabLnkGrp.pl
lib/unicore/ArabShap.txt
lib/unicore/CaseFold.txt
lib/unicore/EAWidth.txt
lib/unicore/PropList.html
lib/unicore/PropList.txt
lib/unicore/README.perl
lib/unicore/ReadMe.txt
lib/unicore/SpecCase.txt
lib/unicore/rename
lib/unicore/version
lib/warnings.t
makedef.pl
mg.c
miniperlmain.c
objXSUB.h
op.c
op.h
opcode.h
opcode.pl
opnames.h
os2/os2.c
os2/os2ish.h
patchlevel.h
perl.c
perl.h
perlapi.c
perlapi.h
perlio.c
perlvars.h
perly.c
perly.y
perly_c.diff
pod/perlclib.pod
pod/perldiag.pod
pod/perlfunc.pod
pod/perlguts.pod
pod/perlhack.pod
pod/perltodo.pod
pod/perlvar.pod
pp.c
pp.h
pp_ctl.c
pp_hot.c
pp_sys.c
proto.h
regcomp.c
regexec.c
run.c
scope.c
sv.c
sv.h
t/TEST
t/base/term.t
t/io/binmode.t
t/op/64bitint.t
t/op/concat.t
t/op/inccode.t [new file with mode: 0644]
t/op/numconvert.t
t/op/pack.t
t/op/pat.t
t/op/sub_lval.t
t/op/universal.t
t/run/kill_perl.t [moved from t/op/misc.t with 86% similarity, mode: 0644]
thrdvar.h
thread.h
toke.c
uconfig.h
universal.c
utf8.c
util.c
vms/descrip_mms.template
vms/genconfig.pl
vms/perly_c.vms
vms/vms.c
vos/config.alpha.h
vos/config.ga.h
win32/Makefile
win32/config_H.bc
win32/config_H.gc
win32/config_H.vc
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
win32/win32thread.h
wince/Makefile.ce
wince/config.h
wince/config_H.ce
wince/config_h.PL
wince/dl_win32.xs
wince/perllib.c
wince/win32.h
wince/win32thread.c
wince/win32thread.h
wince/wince.c
wince/wincesck.c
xsutils.c

diff --git a/Changes b/Changes
index 550538f..eb95cea 100644 (file)
--- a/Changes
+++ b/Changes
@@ -31,6 +31,939 @@ or any other branch.
 Version v5.7.2         Development release working toward v5.8
 --------------
 ____________________________________________________________________________
+[ 11833] By: jhi                                   on 2001/09/02  12:59:05
+        Log: Slight tweaks.
+     Branch: perl
+          ! t/run/kill_perl.t
+____________________________________________________________________________
+[ 11832] By: jhi                                   on 2001/09/02  12:41:12
+        Log: Special casing had become a little bit more complex in Unicode 3.1.1.
+     Branch: perl
+          ! lib/Unicode/UCD.pm lib/Unicode/UCD.t
+____________________________________________________________________________
+[ 11831] By: sky                                   on 2001/09/02  12:10:42
+        Log: Change #11828 wasn't complete, this updates to intest path
+     Branch: perl
+          ! t/run/kill_perl.t
+____________________________________________________________________________
+[ 11830] By: jhi                                   on 2001/09/02  11:56:18
+        Log: 's's's.
+     Branch: perl
+          ! Changes
+____________________________________________________________________________
+[ 11829] By: jhi                                   on 2001/09/02  11:54:22
+        Log: Update Changes.
+     Branch: perl
+          ! Changes patchlevel.h
+____________________________________________________________________________
+[ 11828] By: sky                                   on 2001/09/02  11:53:56
+        Log: Subject: [PATCH] rm t/run/segfault.t; mv t/op/misc.t t/run/kill_perl.t
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Sat, 1 Sep 2001 20:18:58 -0400
+             Message-ID: <20010901201858.X606@blackrider>
+             +MANIFEST Fix
+     Branch: perl
+          + t/run/kill_perl.t
+          - t/op/misc.t t/run/segfault.t
+          ! MANIFEST
+____________________________________________________________________________
+[ 11827] By: jhi                                   on 2001/09/02  11:46:47
+        Log: Subject: [PATCH] lib/Time/Local.pm
+             From: "Daniel S. Lewart" <d-lewart@uiuc.edu>
+             Date: Sun, 2 Sep 2001 06:50:01 -0500
+             Message-ID: <20010902065001.A21529@staff1.cso.uiuc.edu>
+     Branch: perl
+          ! lib/Time/Local.pm
+____________________________________________________________________________
+[ 11826] By: jhi                                   on 2001/09/02  11:40:49
+        Log: Tick off Unicode collation and the normalization from
+             the todo list.
+     Branch: perl
+          ! pod/perltodo.pod
+____________________________________________________________________________
+[ 11825] By: jhi                                   on 2001/09/02  11:16:24
+        Log: Update to Unicode 3.1.1.
+     Branch: perl
+          ! lib/unicore/ArabLink.pl lib/unicore/ArabLnkGrp.pl
+          ! lib/unicore/ArabShap.txt lib/unicore/CaseFold.txt
+          ! lib/unicore/EAWidth.txt lib/unicore/PropList.html
+          ! lib/unicore/PropList.txt lib/unicore/README.perl
+          ! lib/unicore/ReadMe.txt lib/unicore/SpecCase.txt
+          ! lib/unicore/rename lib/unicore/version
+____________________________________________________________________________
+[ 11824] By: jhi                                   on 2001/09/02  10:32:30
+        Log: Slight doc tweaks for the module.
+     Branch: perl
+          ! lib/Unicode/UCD.pm
+____________________________________________________________________________
+[ 11823] By: jhi                                   on 2001/09/02  10:02:20
+        Log: Rename the variable: it *used* to be (wrongly) that the
+             code related to PL_reg_sv (so PL_reg_sv_utf8 was logical)
+             but that is no more the case: PL_reg_match_utf8 is better.
+     Branch: perl
+          ! embedvar.h mg.c perlapi.c perlapi.h pp.c pp_hot.c regcomp.c
+          ! regexec.c sv.c thrdvar.h
+____________________________________________________________________________
+[ 11822] By: ams                                   on 2001/09/02  02:54:50
+        Log: Subject: RE: [PATCH] Add a nextstate into empty blocks
+             From: Ilmari Karonen <iltzu@sci.fi>
+             Date: Sun, 19 Aug 2001 19:27:33 +0300 (EET DST)
+             Message-Id: <Pine.SOL.3.96.1010819163840.8384B-100000@simpukka>
+             (op/sub_lval.t updated to take new error message into account.)
+     Branch: perl
+          ! op.c t/op/sub_lval.t
+____________________________________________________________________________
+[ 11821] By: gsar                                  on 2001/09/02  01:06:30
+        Log: remove stray CRs in files; keep all files with UNIX line-ends
+             (Porting/makerel adds CRs to the files that need it in the
+             distribution)
+     Branch: perl
+          ! NetWare/t/NWScripts.pl README.dos
+          ! ext/Encode/Encode/cns11643-1.enc
+          ! ext/Encode/Encode/cns11643-2.enc ext/SDBM_File/Makefile.PL
+          ! jpl/JNI/JNI.xs jpl/JNI/Makefile.PL
+____________________________________________________________________________
+[ 11820] By: gsar                                  on 2001/09/02  00:56:44
+        Log: some remnants of change#11803
+     Branch: perl
+          ! ext/ByteLoader/byterun.h perl.h
+____________________________________________________________________________
+[ 11819] By: jhi                                   on 2001/09/01  23:40:36
+        Log: Update to Unicode::Collate 0.08.
+     Branch: perl
+          ! lib/Unicode/Collate.pm lib/Unicode/Collate/Changes
+          ! lib/Unicode/Collate/README lib/Unicode/Collate/t/test.t
+____________________________________________________________________________
+[ 11818] By: jhi                                   on 2001/09/01  23:02:09
+        Log: Test tweaks.
+     Branch: perl
+          ! t/op/pat.t
+____________________________________________________________________________
+[ 11817] By: pudge                                 on 2001/09/01  22:36:29
+        Log: Fix test
+     Branch: maint-5.6/macperl
+          ! t/lib/b.t
+____________________________________________________________________________
+[ 11816] By: pudge                                 on 2001/09/01  22:15:09
+        Log: Misc. patches: fix tests script; add Mac::LowMem; quiet
+             warnings in Config.pm with -W; increase default and
+             minimum RAM; bump version number.
+     Branch: maint-5.6/macperl
+          + macos/lib/Mac/LowMem.pm
+          ! macos/MPVersion.r macos/MacPerlTests.cmd macos/Makefile.mk
+          ! macos/configpm macos/macperl/MacPerl.r
+____________________________________________________________________________
+[ 11815] By: pudge                                 on 2001/09/01  22:10:49
+        Log: Make syntax check report in MPW style, fix tests
+             to use Mac::err=unix to get normal-style error
+             messages.
+     Branch: maint-5.6/macperl
+          ! perl.c t/lib/b.t t/op/misc.t t/op/runlevel.t t/pod/testp2pt.pl
+          ! t/pragma/strict.t t/pragma/subs.t t/pragma/warnings.t
+____________________________________________________________________________
+[ 11814] By: pudge                                 on 2001/09/01  22:09:08
+        Log: Make MPW-style errors optional (but the default); add
+             MacPerl::ErrorFormat() function and Mac::err pragma
+     Branch: maint-5.6/macperl
+          + macos/ext/Mac/err/Makefile.PL macos/ext/Mac/err/err.pm
+          + macos/ext/Mac/err/err.xs
+          ! macos/ext/Mac/Makefile.mk macos/ext/MacPerl/MacPerl.xs
+          ! macos/macish.c macos/macish.h macos/macperl.sym
+____________________________________________________________________________
+[ 11813] By: pudge                                 on 2001/09/01  22:01:40
+        Log: More module and test ports from Thomas Wegner et al
+     Branch: maint-5.6/macperl
+          ! ext/File/Glob/Glob.pm ext/File/Glob/bsd_glob.c
+          ! lib/File/DosGlob.pm lib/File/Spec/Mac.pm lib/File/Temp.pm
+          ! t/lib/dosglob.t t/lib/filespec.t t/lib/ftmp-security.t
+          ! t/op/magic.t
+____________________________________________________________________________
+[ 11812] By: sky                                   on 2001/09/01  17:19:30
+        Log: Subject: [PATCH t/op/concat.t] cleanup
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Sat, 1 Sep 2001 14:06:28 -0400
+             Message-ID: <20010901140628.C606@blackrider>
+     Branch: perl
+          ! t/op/concat.t
+____________________________________________________________________________
+[ 11811] By: sky                                   on 2001/09/01  12:25:29
+        Log: Change #11805 didn't update the MANIFEST
+     Branch: perl
+          ! MANIFEST
+____________________________________________________________________________
+[ 11810] By: sky                                   on 2001/09/01  11:52:44
+        Log: Subject: [PATCH], was t/op/incode.t breaks make minitest
+             From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+             Date: Sat, 1 Sep 2001 14:50:14 +0200
+             Message-ID: <20010901145014.A691@rafael>
+     Branch: perl
+          ! t/op/inccode.t
+____________________________________________________________________________
+[ 11809] By: sky                                   on 2001/09/01  11:49:22
+        Log: Subject: PATCH: ExtUtils::MakeMaker
+             From: Tony Bowden <tony@kasei.com>
+             Date: Sat, 1 Sep 2001 10:33:53 +0100
+             Message-ID: <20010901103353.A13863@soto.kasei.com>
+             Manually applied
+     Branch: perl
+          ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[ 11808] By: sky                                   on 2001/09/01  11:39:13
+        Log: Subject: [ID 20010831.002] Bug in Term::Cap on Solaris ansi terminal using CPAN::Shell
+             From: mike808@users.sourceforge.net
+             Date: Sat, 1 Sep 101 11:27:50 GMT
+             Message-Id: <200108312123.QAA27476@smtp.networkusa.net>
+             With little tweak
+     Branch: perl
+          ! lib/Term/Cap.pm
+____________________________________________________________________________
+[ 11807] By: ams                                   on 2001/09/01  11:31:16
+        Log: Subject: oct() and hex()
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Fri, 31 Aug 2001 23:14:13 +0100
+             Message-Id: <20010831231413.J4950@plum.flirble.org>
+     Branch: perl
+          ! pod/perlclib.pod
+____________________________________________________________________________
+[ 11806] By: pudge                                 on 2001/09/01  00:04:52
+        Log: Integrate change 11801 from maintperl
+     Branch: maint-5.6/macperl
+          ! perl.c
+____________________________________________________________________________
+[ 11805] By: sky                                   on 2001/08/31  21:35:10
+        Log: Subject: Re: [ID 20010831.001] SEGV from ($a, b) = (1, 2)
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Fri, 31 Aug 2001 15:36:28 -0400
+             Message-ID: <20010831153628.B598@blackrider>
+             Check for things which used to segfault
+     Branch: perl
+          + t/run/segfault.t
+____________________________________________________________________________
+[ 11804] By: gsar                                  on 2001/08/31  21:02:54
+        Log: integrate change#11801 from maint-5.6
+             
+             remove age-old UNICOS "workaround" that introduces a static, and
+             hence an egregious race condition for threaded builds (*sigh*
+             beats me why this kludge wasn't guarded by a UNICOS-specific
+             #define *sigh*)
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[ 11803] By: gsar                                  on 2001/08/31  20:58:38
+        Log: remove deprecated PERL_OBJECT cruft, it has long since stopped
+             working in 5.7.x
+     Branch: perl
+          - objXSUB.h
+          ! 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 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
+____________________________________________________________________________
+[ 11802] By: ams                                   on 2001/08/31  18:11:32
+        Log: Subject: [DOC PATCH] Add perl4 warning messages to perldiag.pod
+             From: "Philip Newton" <Philip.Newton@gmx.net>
+             Date: Fri, 31 Aug 2001 21:12:56 +0200
+             Message-Id: <20010831.211000@ID-11583.news.dfncis.de>
+     Branch: perl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[ 11801] By: gsar                                  on 2001/08/31  17:49:03
+        Log: remove age-old UNICOS "workaround" that introduces a static, and
+             hence an egregious race condition for threaded builds (*sigh*
+             beats me why this kludge wasn't guarded by a UNICOS-specific
+             #define *sigh*)
+     Branch: maint-5.6/perl
+          ! perl.c
+____________________________________________________________________________
+[ 11800] By: sky                                   on 2001/08/31  17:30:26
+        Log: Fixes bug in change 11717 that bus errored on HP-UX 10.20
+             Might break on platforms where bool is larger than 8 bites ???
+     Branch: perl
+          ! regcomp.c
+____________________________________________________________________________
+[ 11799] By: ams                                   on 2001/08/31  12:15:44
+        Log: Integrate 11778 into mainline.
+     Branch: perl
+          ! t/base/term.t
+____________________________________________________________________________
+[ 11798] By: sky                                   on 2001/08/31  11:31:44
+        Log: Change 11797 sneaked in a faulty regcomp.c change which wasn't
+             supposed to happen.
+     Branch: perl
+          ! regcomp.c
+____________________________________________________________________________
+[ 11797] By: sky                                   on 2001/08/31  11:28:17
+        Log: Subject: Re: Problem in ext/Time/HiRest/HiRes.t 
+             From: "John P. Linderman" <jpl@research.att.com>
+             Date: Fri, 31 Aug 2001 08:20:35 -0400
+             Message-Id: <200108311220.IAA54125@raptor.research.att.com>
+             Fixes test 14 which could fail randomly in rare cases.
+     Branch: perl
+          ! ext/Time/HiRes/HiRes.t regcomp.c
+____________________________________________________________________________
+[ 11796] By: ams                                   on 2001/08/31  01:13:07
+        Log: Subject: [PATCH] Embaressing typo in Syslog's Makefile.PL
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Thu, 30 Aug 2001 23:21:50 +0100
+             Message-Id: <20010830232150.D4950@plum.flirble.org>
+     Branch: perl
+          ! ext/Sys/Syslog/Makefile.PL
+____________________________________________________________________________
+[ 11795] By: ams                                   on 2001/08/30  23:53:23
+        Log: Subject: [PATCH pod/perlhack.pod] Yet another improvement to the
+             patching example
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Thu, 30 Aug 2001 17:02:08 -0400
+             Message-Id: <20010830170208.M2318@blackrider>
+     Branch: perl
+          ! pod/perlhack.pod
+____________________________________________________________________________
+[ 11794] By: ams                                   on 2001/08/30  19:35:36
+        Log: Subject: [PATCH] pp_modulo
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Thu, 30 Aug 2001 18:20:54 +0100
+             Message-Id: <20010830182053.A4950@plum.flirble.org>
+     Branch: perl
+          ! pp.c t/op/64bitint.t
+____________________________________________________________________________
+[ 11793] By: sky                                   on 2001/08/30  13:02:48
+        Log: 11792 wasn't complete
+     Branch: perl
+          ! makedef.pl regcomp.c
+____________________________________________________________________________
+[ 11792] By: sky                                   on 2001/08/30  12:21:11
+        Log: Added checks for PL_custom* and Perl_custom* functions in makedef.pl
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[ 11791] By: sky                                   on 2001/08/30  10:08:02
+        Log: Due to braindamaged makedef.pl change 11758 broke makedef.pl
+     Branch: perl
+          ! config_h.SH
+____________________________________________________________________________
+[ 11790] By: sky                                   on 2001/08/30  08:22:31
+        Log: Introduces SvREPADTMP(sv) that marks a repad SvIV as a offset
+             on the pad. Fixes coredumps in cleanups introduced by
+             Change 11755  
+     Branch: perl
+          ! op.c perl.c sv.h
+____________________________________________________________________________
+[ 11789] By: sky                                   on 2001/08/29  19:01:47
+        Log: GCC on HP-UX 11 with 64bit support breaks inet_ntoa
+             This is a replacement implmentation that works on HPUX.
+             This bug should probably be fixed in GCC.
+     Branch: perl
+          ! ext/Socket/Socket.xs
+____________________________________________________________________________
+[ 11788] By: ams                                   on 2001/08/29  17:35:33
+        Log: Subject: [PATCH] pass all tests when compiling with -DNO_PERL_PRESERVE_IVUV
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Wed, 29 Aug 2001 18:21:56 +0100
+             Message-Id: <20010829182156.O4950@plum.flirble.org>
+     Branch: perl
+          ! ext/Devel/Peek/Peek.t sv.c t/op/64bitint.t t/op/numconvert.t
+____________________________________________________________________________
+[ 11787] By: sky                                   on 2001/08/29  10:42:54
+        Log: Added test for pack_addr_in and unpack_addr_in
+             Nitpik in test 10
+     Branch: perl
+          ! ext/Socket/Socket.t
+____________________________________________________________________________
+[ 11786] By: sky                                   on 2001/08/29  10:28:14
+        Log: Added three tests to test inet_ntoa/inet_aton and *packaddr*
+             Trying to catch errors on HP-UX
+     Branch: perl
+          ! ext/Socket/Socket.t
+____________________________________________________________________________
+[ 11785] By: sky                                   on 2001/08/29  09:07:03
+        Log: make sure USE_THREADS is defined so external apps work
+     Branch: perl
+          ! config_h.SH
+____________________________________________________________________________
+[ 11784] By: sky                                   on 2001/08/29  08:06:12
+        Log: Subject: Re: The hitlist of untested modules.
+             From: Jonathan Stowe <gellyfish@gellyfish.com>
+             Date: Wed, 29 Aug 2001 09:25:49 +0100 (BST)
+             Message-ID: <Pine.LNX.4.33.0108290923320.29273-100000@orpheus.gellyfish.com>
+             Start of tests for Shell.pm (make Schwern poorer!)
+     Branch: perl
+          + lib/Shell.t
+          ! MANIFEST
+____________________________________________________________________________
+[ 11783] By: sky                                   on 2001/08/29  07:37:50
+        Log: END{} can change the return value even if we die from BEGIN{}
+     Branch: perl
+          ! miniperlmain.c
+____________________________________________________________________________
+[ 11782] By: ams                                   on 2001/08/29  06:32:17
+        Log: Subject: Re: [PATCH] newer tests for the coderef-in-@INC !
+             From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+             Date: Wed, 29 Aug 2001 09:18:17 +0200
+             Message-Id: <20010829091817.A4453@rafael>
+     Branch: perl
+          ! t/op/inccode.t
+____________________________________________________________________________
+[ 11781] By: pudge                                 on 2001/08/29  02:28:33
+        Log: Delete xsubpp.patch, as full copy exists now
+     Branch: maint-5.6/macperl
+          - macos/xsubpp.patch
+____________________________________________________________________________
+[ 11780] By: pudge                                 on 2001/08/29  02:26:03
+        Log: Add Changes file
+     Branch: maint-5.6/macperl
+          + macos/Changes
+____________________________________________________________________________
+[ 11779] By: pudge                                 on 2001/08/29  02:23:11
+        Log: Add Mac version of xsubpp as separate file
+     Branch: maint-5.6/macperl
+          + macos/xsubpp
+          ! macos/Makefile.mk
+____________________________________________________________________________
+[ 11778] By: pudge                                 on 2001/08/29  02:14:57
+        Log: Fix open of /dev/null for Mac OS
+     Branch: maint-5.6/macperl
+          ! t/base/term.t
+____________________________________________________________________________
+[ 11777] By: pudge                                 on 2001/08/29  02:12:52
+        Log: Various patches: enable more tests; skip CVS in PerlInstall;
+             fix typemap for Mac::Processes; remove comments in MM_MacOS.pm
+     Branch: maint-5.6/macperl
+          ! macos/MacPerlTests.cmd macos/PerlInstall
+          ! macos/ext/Mac/Processes/typemap macos/lib/ExtUtils/MM_MacOS.pm
+____________________________________________________________________________
+[ 11776] By: pudge                                 on 2001/08/29  02:11:42
+        Log: Allow for platforms to override formatting of errors
+             on output from Matthias Neeracher (Mac files)
+     Branch: maint-5.6/macperl
+          ! macos/macish.c macos/macish.h
+____________________________________________________________________________
+[ 11775] By: pudge                                 on 2001/08/29  01:59:32
+        Log: Allow for platforms to override formatting of errors
+             on output from Matthias Neeracher (core files)
+     Branch: maint-5.6/macperl
+          ! perl.h pp_ctl.c util.c
+____________________________________________________________________________
+[ 11774] By: pudge                                 on 2001/08/29  01:29:43
+        Log: Add some param checking, from reports by Kevin Reid.
+     Branch: maint-5.6/macperl
+          ! macos/ext/Mac/Controls/Controls.pm
+          ! macos/ext/Mac/Menus/Menus.pm macos/ext/Mac/Windows/Windows.pm
+____________________________________________________________________________
+[ 11773] By: ams                                   on 2001/08/28  23:54:57
+        Log: Subject: [PATCH] make coretest
+             From: Paul Johnson <paul@pjcj.net>
+             Date: Wed, 29 Aug 2001 00:11:38 +0200
+             Message-Id: <20010829001138.B12169@pjcj.net>
+             (Applied without the change to perlhack.pod. This should
+             probably stay undocumented.)
+     Branch: perl
+          ! Makefile.SH t/TEST
+____________________________________________________________________________
+[ 11772] By: sky                                   on 2001/08/28  13:01:20
+        Log: Subject: [PATCH t/op/pack.t pod/perlhack.pod] Adding the failure diagnostic  
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Tue, 28 Aug 2001 09:57:39 -0400
+             Message-ID: <20010828095738.E17775@blackrider>
+     Branch: perl
+          ! pod/perlhack.pod t/op/pack.t
+____________________________________________________________________________
+[ 11771] By: sky                                   on 2001/08/28  11:20:13
+        Log: Subject: [PATCH] put useful info in %INC for files loaded by a hook in @INC
+             From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+             Date: Tue, 28 Aug 2001 14:23:43 +0200
+             Message-ID: <20010828142343.A19299@rafael>
+     Branch: perl
+          ! pod/perlvar.pod pp_ctl.c
+____________________________________________________________________________
+[ 11770] By: ams                                   on 2001/08/28  10:13:21
+        Log: Subject: [PATCH] odd typo in op.h
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Tue, 28 Aug 2001 12:10:26 +0100
+             Message-Id: <20010828121026.V4950@plum.flirble.org>
+     Branch: perl
+          ! op.h
+____________________________________________________________________________
+[ 11769] By: sky                                   on 2001/08/28  08:09:16
+        Log: Subject: [ID 20010827.008] no-foo options broken in B::Lint
+             From: Ville "Skytt√§" <scop@cs132170.pp.htv.fi>
+             Date: Tue, 28 Aug 2001 02:22:20 +0300
+             Message-Id: <200108272322.f7RNMKd02261@cs132170.pp.htv.fi>
+     Branch: perl
+          ! ext/B/B/Lint.pm
+____________________________________________________________________________
+[ 11768] By: ams                                   on 2001/08/28  00:47:35
+        Log: Subject: Re: [PATCH pod/perlhack.pod t/op/pack.t] Fixing bad testing advice
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Mon, 27 Aug 2001 21:24:44 -0400
+             Message-Id: <20010827212444.F12582@blackrider>
+     Branch: perl
+          ! pod/perlhack.pod t/op/pack.t
+____________________________________________________________________________
+[ 11767] By: ams                                   on 2001/08/27  23:59:48
+        Log: Subject: [PATCH pod/perlhack.pod t/op/pack.t] Fixing bad testing advice
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Mon, 27 Aug 2001 20:12:29 -0400
+             Message-Id: <20010827201229.D12582@blackrider>
+     Branch: perl
+          ! pod/perlhack.pod t/op/pack.t
+____________________________________________________________________________
+[ 11766] By: ams                                   on 2001/08/27  23:39:40
+        Log: Update Changes.
+     Branch: perl
+          ! Changes
+____________________________________________________________________________
+[ 11765] By: ams                                   on 2001/08/27  22:53:10
+        Log: Subject: Re: [PATCH] new tests for the coderef-in-@INC
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Mon, 27 Aug 2001 19:47:30 -0400
+             Message-Id: <20010827194730.C12582@blackrider>
+     Branch: perl
+          ! t/op/inccode.t
+____________________________________________________________________________
+[ 11764] By: ams                                   on 2001/08/27  22:46:21
+        Log: Subject: [PATCH] new tests for the coderef-in-@INC
+             From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+             Date: Mon, 27 Aug 2001 22:36:27 +0200
+             Message-Id: <20010827223627.C690@rafael>
+             
+             Subject: Re: [PATCH] new tests for the coderef-in-@INC
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Tue, 28 Aug 2001 00:02:46 +0100
+             Message-Id: <20010828000245.R4950@plum.flirble.org>
+     Branch: perl
+          + t/op/inccode.t
+          ! MANIFEST
+____________________________________________________________________________
+[ 11763] By: ams                                   on 2001/08/27  22:41:09
+        Log: Subject: [PATCH lib/warnings.t] Removing 2>&1 requirement  (was Re:
+             bleadperl on fire, Win95+4NT)
+             From: Michael G Schwern <schwern@pobox.com>
+             Date: Mon, 27 Aug 2001 16:54:42 -0400
+             Message-Id: <20010827165442.F9436@blackrider>
+     Branch: perl
+          ! lib/warnings.t
+____________________________________________________________________________
+[ 11762] By: sky                                   on 2001/08/27  19:19:17
+        Log: Changed back Net/Ping.pm change #11759 since WNOHANG wasn't
+             avaible at compile time. This broke the compilation of 
+             Net/Ping.pm
+     Branch: perl
+          ! lib/Net/Ping.pm
+____________________________________________________________________________
+[ 11761] By: sky                                   on 2001/08/27  18:34:48
+        Log: Removed tripple definitions of CUSTOM_OP functions.
+     Branch: perl
+          ! embed.h embed.pl global.sym objXSUB.h perlapi.c proto.h
+____________________________________________________________________________
+[ 11760] By: sky                                   on 2001/08/27  18:21:27
+        Log: Regen headers
+     Branch: perl
+          ! embed.h embedvar.h objXSUB.h opcode.h opnames.h perlapi.c
+          ! perlapi.h proto.h
+____________________________________________________________________________
+[ 11759] By: ams                                   on 2001/08/27  16:31:53
+        Log: Subject: [PATCH] pod/perlfunc.pod, lib/Net/Ping.pm, ext/POSIX/POSIX.pod
+             From: "chromatic" <chromatic@rmci.net>
+             Date: Mon, 27 Aug 2001 11:17:09 -0600
+             Message-Id: <20010827172111.89491.qmail@onion.perl.org>
+     Branch: perl
+          ! ext/POSIX/POSIX.pod lib/Net/Ping.pm pod/perlfunc.pod
+____________________________________________________________________________
+[ 11758] By: sky                                   on 2001/08/27  15:16:42
+        Log: Changes USE_THREADS to USE_5005THREADS in the entire source.
+             Thanks to H. Merijn Brand for the patch.
+             Some of the comments and or guards might be removable in perl.h now.
+     Branch: perl
+          ! NetWare/config_H.wc NetWare/nw5thread.c NetWare/nw5thread.h
+          ! Porting/Glossary Porting/config_H README.threads config_h.SH
+          ! cop.h cv.h deb.c dosish.h dump.c embed.h embed.pl embedvar.h
+          ! ext/B/B.xs ext/B/B/C.pm ext/B/B/Deparse.pm
+          ! ext/B/ramblings/runtime.porting ext/DynaLoader/dl_aix.xs
+          ! ext/Thread/Thread.xs gv.c intrpvar.h mg.c miniperlmain.c
+          ! objXSUB.h op.c os2/os2.c os2/os2ish.h perl.c perl.h perlapi.c
+          ! perlvars.h pod/perlguts.pod pp.c pp.h pp_ctl.c pp_hot.c
+          ! proto.h regexec.c scope.c sv.c sv.h thrdvar.h thread.h toke.c
+          ! uconfig.h util.c vms/genconfig.pl vms/vms.c vos/config.alpha.h
+          ! vos/config.ga.h win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc win32/perllib.c win32/win32.h
+          ! win32/win32sck.c win32/win32thread.c win32/win32thread.h
+          ! wince/config.h wince/config_H.ce wince/win32.h
+          ! wince/win32thread.c wince/win32thread.h wince/wincesck.c
+____________________________________________________________________________
+[ 11757] By: sky                                   on 2001/08/27  13:39:16
+        Log: Subject: GNU ld parses arguments different
+             From: H.Merijn Brand <h.m.brand@hccnet.nl>
+             Date: Mon, 27 Aug 2001 16:25:51 +0200
+             Message-Id: <20010827162254.2EA6.H.M.BRAND@hccnet.nl>
+     Branch: perl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[ 11756] By: sky                                   on 2001/08/27  13:18:45
+        Log: Subject: Custom Ops
+             From: Simon Cozens <simon@netthink.co.uk>
+             Date: Sat, 25 Aug 2001 17:45:09 +0100
+             Message-ID: <20010825174509.A5752@netthink.co.uk>
+             I also added a fix to Opcode.pm to quite test cases.
+     Branch: perl
+          ! dump.c embed.pl ext/Opcode/Opcode.pm intrpvar.h op.c op.h
+          ! opcode.pl pod/perlguts.pod pp_ctl.c pp_sys.c run.c sv.c utf8.c
+____________________________________________________________________________
+[ 11755] By: sky                                   on 2001/08/27  05:37:17
+        Log: Plugs a memory leak on destruction of regular expressions
+             introcued by #11274.
+             PL_regex_padav now has an AV as it's first entry with a list
+             of freed regex_padav slots that it will reuse on creating
+             new PMOPs.
+     Branch: perl
+          ! op.c perl.c
+____________________________________________________________________________
+[ 11754] By: ams                                   on 2001/08/26  14:38:52
+        Log: Subject: [PATCH] t/io/binmode.t
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Sun, 26 Aug 2001 12:03:05 +0100
+             Message-Id: <20010826120305.C4950@plum.flirble.org>
+             
+             (Also a nitpick in #11752 to t/op/universal.t)
+     Branch: perl
+          ! t/io/binmode.t t/op/universal.t
+____________________________________________________________________________
+[ 11753] By: ams                                   on 2001/08/26  08:19:34
+        Log: Subject: [PATCH] op/universal.t failing
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Sun, 26 Aug 2001 09:48:22 +0100
+             Message-Id: <20010826094822.B4950@plum.flirble.org>
+     Branch: perl
+          ! t/op/universal.t
+____________________________________________________________________________
+[ 11752] By: ams                                   on 2001/08/25  22:46:13
+        Log: Subject: Re: 'can' with undefined subs
+             From: Tony Bowden <tony@kasei.com>
+             Date: Sat, 25 Aug 2001 14:58:17 +0100
+             Message-Id: <20010825145817.A11788@soto.kasei.com>
+             (Applied with minor modifications.)
+     Branch: perl
+          ! t/op/universal.t
+____________________________________________________________________________
+[ 11751] By: ams                                   on 2001/08/25  18:28:43
+        Log: Subject: Re: 'can' with undefined subs
+             From: Tony Bowden <tony@kasei.com>
+             Date: Sat, 25 Aug 2001 15:13:14 +0100
+             Message-Id: <20010825151314.B11788@soto.kasei.com>
+     Branch: perl
+          ! lib/UNIVERSAL.pm
+____________________________________________________________________________
+[ 11750] By: nick                                  on 2001/08/25  15:24:15
+        Log: Integrate mainline
+     Branch: perlio
+         +> t/io/binmode.t
+         !> (integrate 26 files)
+____________________________________________________________________________
+[ 11749] By: nick                                  on 2001/08/25  14:55:41
+        Log: Subject:  Re: [PATCH] Added wisdom to perlhack.pod
+             From:  John Peacock <jpeacock@rowman.com>
+             Date:  Wed, 22 Aug 2001 12:05:28 -0400
+             Message-Id:  <3B83D848.7FD9C6EF@rowman.com>
+     Branch: perl
+          ! pod/perlhack.pod
+____________________________________________________________________________
+[ 11748] By: nick                                  on 2001/08/25  14:53:04
+        Log: Subject:  Re: [PATCH] (was Re: PerlIO regerssion tests?)
+             From:  Michael G Schwern <schwern@pobox.com>
+             Date:  Wed, 22 Aug 2001 19:22:45 -0400
+             Message-Id:  <20010822192245.U619@blackrider>
+     Branch: perl
+          ! MANIFEST
+____________________________________________________________________________
+[ 11747] By: nick                                  on 2001/08/25  14:52:33
+        Log: Subject:  [PATCH] (was Re: PerlIO regerssion tests?)
+             From:  Nicholas Clark <nick@ccl4.org>
+             Date:  Wed, 22 Aug 2001 23:29:06 +0100
+             Message-Id:  <20010822232906.Z82818@plum.flirble.org>
+     Branch: perl
+          + t/io/binmode.t
+          ! perlio.c pod/perlfunc.pod
+____________________________________________________________________________
+[ 11744] By: nick                                  on 2001/08/25  14:37:33
+        Log: Subject:  [PATCH bleadperl] quiet down VC++ warnings in a2py.c and walk.c
+             From:  Nikola Knezevic <indy@tesla.rcub.bg.ac.yu>
+             Date:  Fri, 24 Aug 2001 22:10:42 +0200
+             Message-Id:  <1065978076.20010824221042@tesla.rcub.bg.ac.yu>
+     Branch: perl
+          ! x2p/a2py.c x2p/walk.c
+____________________________________________________________________________
+[ 11743] By: nick                                  on 2001/08/25  14:32:47
+        Log: Subject:  [DOC PATCH] The coderef-in-@INC feature
+             From:  Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+             Date:  Fri, 24 Aug 2001 23:34:13 +0200
+             Message-Id:  <20010824233413.A1285@rafael>
+     Branch: perl
+          ! pod/perlfunc.pod pod/perlvar.pod
+____________________________________________________________________________
+[ 11742] By: ams                                   on 2001/08/25  13:16:02
+        Log: Subject: [PATCH] Re: The coderef in @INC strikes back
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Sat, 25 Aug 2001 14:50:07 +0100
+             Message-Id: <20010825145007.L41464@plum.flirble.org>
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[ 11741] By: nick                                  on 2001/08/24  07:08:45
+        Log: When applying patch via Porting/apply fails, do p4 refresh
+             to get old files back.
+     Branch: perl
+          ! Porting/apply
+____________________________________________________________________________
+[ 11740] By: ams                                   on 2001/08/24  04:47:24
+        Log: #11739 was incomplete.
+     Branch: perl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[ 11739] By: ams                                   on 2001/08/24  04:09:40
+        Log: Subject: [DOC patch bleadperl] "misspelled" misspelled
+             From: "Philip Newton" <Philip.Newton@gmx.net>
+             Date: Fri, 24 Aug 2001 07:08:34 +0200
+     Branch: perl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[ 11738] By: ams                                   on 2001/08/24  02:19:42
+        Log: Fixed Doug Wilson's email address.
+     Branch: perl
+          ! AUTHORS
+____________________________________________________________________________
+[ 11737] By: ams                                   on 2001/08/24  00:10:13
+        Log: Subject: [DOC PATCH] Adding new warning in perldiag.pod
+             From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+             Date: Thu, 23 Aug 2001 22:22:58 +0200
+             Message-Id: <20010823222258.A901@rafael>
+     Branch: perl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[ 11736] By: ams                                   on 2001/08/24  00:05:02
+        Log: Subject: [PATCH perl@ ] add $Config('scriptdir'} on VMS
+             From: "Craig A. Berry" <craigberry@mac.com>
+             Date: Thu, 23 Aug 2001 19:07:45 -0500
+             Message-Id: <a05101004b7ab4593bb24@[172.16.52.1]>
+     Branch: perl
+          ! configure.com
+____________________________________________________________________________
+[ 11735] By: sky                                   on 2001/08/23  13:42:07
+        Log: Backed out 11732, it breaks lib/strict.t 
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[ 11734] By: sky                                   on 2001/08/23  11:45:59
+        Log: Removed toy from 17133 after Matt Sargeants request.
+     Branch: perl
+          ! pod/perlfaq4.pod
+____________________________________________________________________________
+[ 11733] By: sky                                   on 2001/08/23  11:36:29
+        Log: Subject: [PATCH perlfaq4] Faster permutation algorithms
+             From: Robin Houston <robin@kitsite.com>
+             Date: Wed, 22 Aug 2001 23:06:16 +0100
+             Message-ID: <20010822230616.A254@robin.kitsite.com>
+     Branch: perl
+          ! pod/perlfaq4.pod
+____________________________________________________________________________
+[ 11732] By: sky                                   on 2001/08/23  10:36:02
+        Log: Subject: Re: [ID 20010822.001] Freeing pads after parse error
+             From: Simon Cozens <simon@netthink.co.uk>
+             Date: Thu, 23 Aug 2001 12:06:36 +0100
+             Message-ID: <20010823120636.A9961@netthink.co.uk>
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[ 11731] By: gsar                                  on 2001/08/23  03:58:58
+        Log: fix broken windows build
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[ 11730] By: ams                                   on 2001/08/22  21:35:30
+        Log: Subject: [PATCH] io/tell.t doesn't chdir t
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Wed, 22 Aug 2001 23:25:58 +0100
+             Message-Id: <20010822232557.Y82818@plum.flirble.org>
+     Branch: perl
+          ! t/io/tell.t
+____________________________________________________________________________
+[ 11729] By: ams                                   on 2001/08/22  20:32:21
+        Log: Subject: [PATCH] Documentation in File::Spec (was Re: minor File::Spec
+             questions)
+             From: Ronald J Kimball <rjk@linguist.Thayer.dartmouth.edu>
+             Date: Wed, 22 Aug 2001 17:09:04 -0400
+             Message-Id: <20010822170904.A76069@linguist.thayer.dartmouth.edu>
+             (Oops, forgot File::Spec::Unix in the previous patch.)
+     Branch: perl
+          ! lib/File/Spec/Unix.pm
+____________________________________________________________________________
+[ 11728] By: ams                                   on 2001/08/22  20:25:41
+        Log: Subject: [PATCH] Documentation in File::Spec (was Re: minor File::Spec
+             questions)
+             From: Ronald J Kimball <rjk@linguist.Thayer.dartmouth.edu>
+             Date: Wed, 22 Aug 2001 17:09:04 -0400
+             Message-Id: <20010822170904.A76069@linguist.thayer.dartmouth.edu>
+     Branch: perl
+          ! lib/File/Spec.pm
+____________________________________________________________________________
+[ 11727] By: ams                                   on 2001/08/22  19:43:30
+        Log: Subject: Re: [PATCH 1 of 3] $] is deprecated - eliminate from core tests
+             From: John Peacock <jpeacock@rowman.com>
+             Date: Wed, 22 Aug 2001 12:35:52 -0400
+             Message-Id: <3B83DF68.5D89DC81@rowman.com>
+             (Adds proper tests for $], notwithstanding Subject. +nitpick)
+     Branch: perl
+          ! t/op/ver.t
+____________________________________________________________________________
+[ 11726] By: ams                                   on 2001/08/22  19:36:39
+        Log: Subject: [ID 20010822.007] eval STRING & diagnostics.pm not mixing
+             From: schwern@ool-18b93024.dyn.optonline.net (Michael G Schwern)
+             Date: Wed, 22 Aug 2001 16:03:00 -0400 (EDT)
+             Message-Id: <20010822200300.0D1638253@ool-18b93024.dyn.optonline.net>
+     Branch: perl
+          ! lib/diagnostics.pm lib/diagnostics.t
+____________________________________________________________________________
+[ 11725] By: ams                                   on 2001/08/22  19:25:01
+        Log: Subject: [PATCH] 64 bit integer preserving pp_divide
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Wed, 22 Aug 2001 20:59:05 +0100
+             Message-Id: <20010822205905.U82818@plum.flirble.org>
+     Branch: perl
+          ! pp.c t/op/64bitint.t t/op/arith.t
+____________________________________________________________________________
+[ 11724] By: ams                                   on 2001/08/22  10:02:33
+        Log: Subject: Configure blooper
+             From: H.Merijn Brand <h.m.brand@hccnet.nl>
+             Date: Wed, 22 Aug 2001 12:38:35 +0200
+             Message-Id: <20010822123750.A797.H.M.BRAND@hccnet.nl>
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[ 11723] By: ams                                   on 2001/08/21  16:17:53
+        Log: Subject: [PATCH] installperl -help
+             From: Nicholas Clark <nick@ccl4.org>
+             Date: Tue, 21 Aug 2001 17:34:23 +0100
+             Message-Id: <20010821173423.F82818@plum.flirble.org>
+     Branch: perl
+          ! installperl
+____________________________________________________________________________
+[ 11722] By: ams                                   on 2001/08/20  07:46:31
+        Log: Subject: [PATCH perlvar.pod] Rewrite $. entry and switch to -> syntax
+             From: Ilmari Karonen <iltzu@sci.fi>
+             Date: Mon, 20 Aug 2001 06:42:01 +0300 (EET DST)
+             Message-Id: <Pine.SOL.3.96.1010820063126.28048A-100000@simpukka>
+     Branch: perl
+          ! pod/perlvar.pod
+____________________________________________________________________________
+[ 11721] By: nick                                  on 2001/08/20  06:24:31
+        Log: Integrate mainline
+     Branch: perlio
+         +> Porting/apply lib/Lingua/KO/Hangul/Util.pm
+         +> lib/Lingua/KO/Hangul/Util/Changes
+         +> lib/Lingua/KO/Hangul/Util/README
+         +> lib/Lingua/KO/Hangul/Util/t/test.t lib/Unicode/Collate.pm
+         +> lib/Unicode/Collate/Changes lib/Unicode/Collate/README
+         +> lib/Unicode/Collate/keys.txt lib/Unicode/Collate/t/test.t
+         +> lib/Unicode/Normalize.pm lib/Unicode/Normalize/Changes
+         +> lib/Unicode/Normalize/README lib/Unicode/Normalize/t/norm.t
+         +> lib/Unicode/Normalize/t/test.t
+          - lib/Net/README.config lib/Net/demos/snpp lib/Net/libnet.ppd
+         !> (integrate 55 files)
+____________________________________________________________________________
+[ 11720] By: pudge                                 on 2001/08/19  19:00:16
+        Log: Integrate Change #11599 from maint-5.6/perl
+     Branch: maint-5.6/macperl
+         !> README.win32
+____________________________________________________________________________
+[ 11719] By: ams                                   on 2001/08/18  21:21:42
+        Log: Add Porting/apply to MANIFEST.
+     Branch: perl
+          ! MANIFEST
+____________________________________________________________________________
+[ 11718] By: sky                                   on 2001/08/18  14:38:01
+        Log: PL_reentrant_buffer does not exist in 5005threaded perl.
+             Better solution would be to make 5005threaded perl use
+             the same system as ithreads do
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[ 11717] By: jhi                                   on 2001/08/18  14:24:42
+        Log: New try for ID 20010407.006: detach the semantics
+             "was the last match target UTF8" into its own variable.
+     Branch: perl
+          ! embedvar.h intrpvar.h mg.c perlapi.h pod/perlapi.pod pp.c
+          ! pp_hot.c regcomp.c regexec.c sv.c t/op/pat.t thrdvar.h
+____________________________________________________________________________
+[ 11716] By: jhi                                   on 2001/08/18  12:11:14
+        Log: UTF8 flag should be meaningful only when POK.
+     Branch: perl
+          ! dump.c
+____________________________________________________________________________
+[ 11715] By: sky                                   on 2001/08/18  11:45:16
+        Log: USE_THREADS and USE_ITHREADS are never true at the same time
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[ 11714] By: jhi                                   on 2001/08/18  06:03:24
+        Log: Retract #11712 for now.  The real fix would probably
+             be something like making PL_reg_sv a copy (PV + UTF8)
+             of the matched/substituted string (note: not just a SvPOK
+             string, for example the stringified form of a ROK would
+             be applicable)  Beware of leaks.
+     Branch: perl
+          ! pp_hot.c t/op/pat.t
+____________________________________________________________________________
+[ 11713] By: jhi                                   on 2001/08/18  03:22:42
+        Log: UTF8 wasn't printing for PVMGs.
+     Branch: perl
+          ! dump.c
+____________________________________________________________________________
+[ 11712] By: jhi                                   on 2001/08/18  03:22:24
+        Log: (Retracted by #11714)
+             
+             Okay analysis, debatable fix.  (The fix will inc
+             the refcount of all temporary match objects,
+             like for example tied(%h) =~ /^.../ from Tie/RefHash.t,
+             which will then cause griping at untie() time
+             ("inner references remain").
+             
+             Fix for ID 20010407.006: PL_reg_sv got wiped out
+             by freetemps if the match target was a temporary
+             (like function_call() =~ /.../), which in turn meant
+             that the $1 et al stopped working if they had UTF-8
+             in them.  Therefore bump up the refcount of PL_reg_sv.
+     Branch: perl
+          ! pp_hot.c t/op/pat.t
+____________________________________________________________________________
+[ 11711] By: ams                                   on 2001/08/17  20:32:08
+        Log: Subject: [PATCH] doesn't compile, was perl@11710
+             From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+             Date: Fri, 17 Aug 2001 23:21:10 +0200
+             Message-Id: <20010817232110.C7041@rafael> 
+     Branch: perl
+          ! sharedsv.c
+____________________________________________________________________________
+[ 11710] By: jhi                                   on 2001/08/17  14:26:57
+        Log: Update Changes.
+     Branch: perl
+          ! Changes patchlevel.h
+____________________________________________________________________________
 [ 11709] By: jhi                                   on 2001/08/17  13:47:53
         Log: Upgrade to libnet 1.0704.
      Branch: perl
@@ -104,7 +1037,7 @@ ____________________________________________________________________________
         Log: It seems that Tru64 has "naturally" threadsafe APIs only for
              of the usual suspects (like getpwent) but not for others
              (like localtime and rand).  The _r versions are available
-             for all of them, so lets' use them.
+             for all of them, so let's use them.
      Branch: perl
           ! perl.h
 ____________________________________________________________________________
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 4d6a7a2..3ed233a 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
@@ -1084,6 +1084,7 @@ lib/SelectSaver.t         See if SelectSaver works
 lib/SelfLoader.pm              Load functions only on demand
 lib/SelfLoader.t               See if SelfLoader works
 lib/Shell.pm                   Make AUTOLOADed system() calls
+lib/Shell.t                    Tests for above
 lib/shellwords.pl              Perl library to split into words with shell quoting
 lib/sigtrap.pm                 For trapping an abort and giving traceback
 lib/stat.pl                    Perl library supporting stat function
@@ -1605,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
@@ -2034,6 +2034,7 @@ t/op/groups.t                     See if $( works
 t/op/gv.t                      See if typeglobs work
 t/op/hashwarn.t                        See if warnings for bad hash assignments work
 t/op/inc.t                     See if inc/dec of integers near 32 bit limit work
+t/op/inccode.t                 See if coderefs work in @INC
 t/op/index.t                   See if index works
 t/op/int.t                     See if int works
 t/op/join.t                    See if join works
@@ -2047,7 +2048,6 @@ t/op/loopctl.t                    See if next/last/redo work
 t/op/lop.t                     See if logical operators work
 t/op/magic.t                   See if magic variables work
 t/op/method.t                  See if method calls work
-t/op/misc.t                    See if miscellaneous bugs have been fixed
 t/op/mkdir.t                   See if mkdir works
 t/op/my.t                      See if lexical scoping works
 t/op/my_stash.t                        See if my Package works
@@ -2138,6 +2138,7 @@ t/pod/testpchk.pl         Module to test Pod::Checker for a given file
 t/pod/testpods/lib/Pod/Stuff.pm                        Sample data for find.t
 t/README                       Instructions for regression tests
 t/run/exit.t                    Test perl's exit status.
+t/run/kill_perl.t               Tests that kill perl.
 t/run/runenv.t                 Test if perl honors its environment variables.
 t/TEST                         The regression tester
 t/TestInit.pm                  Preamble library for core tests
index 64081d7..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
 
@@ -941,7 +941,7 @@ makedepend: makedepend.SH config.sh
        utest ucheck test.utf8 check.utf8 \
        test.third check.third utest.third ucheck.third test_notty.third \
        test.deparse test_notty.deparse \
-       minitest
+       minitest coretest
 
 # Cannot delegate rebuilding of t/perl to make
 # to allow interlaced test and minitest
@@ -986,6 +986,9 @@ test_notty: test_prep
 utest ucheck test.utf8 check.utf8: test_prep
        PERL=./perl TEST_ARGS=-utf8 $(MAKE) _test
 
+coretest: test_prep
+       PERL=./perl TEST_ARGS=-core $(MAKE) _test
+
 test-prep:     test_prep
 
 test-tty:      test_tty
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 eb3c2e0..f10a798 100644 (file)
 /*#define      USE_5005THREADS         /**/
 #define        USE_ITHREADS            /**/
 #if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
-#define                USE_THREADS             /* until src is revised*/
+#define                USE_5005THREADS         /* until src is revised*/
 #endif
 /*#define      OLD_PTHREADS_API                /**/
 /*#define      USE_REENTRANT_API       /**/
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 5cfa180..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"
@@ -38,7 +32,7 @@ __declspec(thread) void *PL_current_context = NULL;
 void
 Perl_set_context(void *t)
 {
-#if defined(USE_THREADS) || defined(USE_ITHREADS)
+#if defined(USE_5005THREADS) || defined(USE_ITHREADS)
 #  ifdef USE_DECLSPEC_THREAD
     Perl_current_context = t;
 #  else
@@ -51,7 +45,7 @@ Perl_set_context(void *t)
 void *
 Perl_get_context(void)
 {
-#if defined(USE_THREADS) || defined(USE_ITHREADS)
+#if defined(USE_5005THREADS) || defined(USE_ITHREADS)
 #  ifdef USE_DECLSPEC_THREAD
     return Perl_current_context;
 #  else
@@ -67,7 +61,7 @@ Perl_get_context(void)
 BOOL
 Remove_Thread_Ctx(void)
 {
-#if defined(USE_THREADS) || defined(USE_ITHREADS)
+#if defined(USE_5005THREADS) || defined(USE_ITHREADS)
 #  ifdef USE_DECLSPEC_THREAD
        return TRUE;
 #  else
index 895338c..58e1596 100644 (file)
@@ -27,7 +27,7 @@
 
 typedef long perl_key;
 
-#if (defined (USE_ITHREADS) || defined (USE_THREADS)) && defined(MPK_ON)
+#if (defined (USE_ITHREADS) || defined (USE_5005THREADS)) && defined(MPK_ON)
 #ifdef __cplusplus
 extern "C"
 {
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 bd1ab91..a2f22a4 100644 (file)
@@ -11,7 +11,7 @@ $DirName = "t";
 
 # These scripts have problems (either abend or hang) as of now (11 May 2001).
 # So, they are commented out in the corresponding auto scripts, io.pl and lib.pl
-@ScriptsNotUsed = ("t/io/argv.t", "t/io/openpid.t", "t/lib/filehandle.t", "t/lib/warnings.t");\r
+@ScriptsNotUsed = ("t/io/argv.t", "t/io/openpid.t", "t/lib/filehandle.t", "t/lib/warnings.t");
 
 opendir(DIR, $DirName);
 @Dirs = readdir(DIR);
index 3ffbdcc..a706e72 100644 (file)
@@ -3867,7 +3867,7 @@ usesocks (usesocks.U):
        and indicates that Perl should be built to use SOCKS.
 
 usethreads (usethreads.U):
-       This variable conditionally defines the USE_THREADS symbol,
+       This variable conditionally defines the USE_5005THREADS symbol,
        and indicates that Perl should be built to use threads.
 
 usevendorprefix (vendorprefix.U):
index 896a878..ab8b863 100644 (file)
 /*#define      USE_5005THREADS         / **/
 /*#define      USE_ITHREADS            / **/
 #if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
-#define                USE_THREADS             /* until src is revised*/
+#define                USE_5005THREADS         /* until src is revised*/
 #endif
 /*#define      OLD_PTHREADS_API                / **/
 /*#define      USE_REENTRANT_API       / **/
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 207325a..9c444a4 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 perlpod manpage) which is\r
-specially designed to be readable as is.\r
-\r
-=head1 NAME\r
-\r
-perldos - Perl under DOS, W31, W95.\r
-\r
-=head1 SYNOPSIS\r
-\r
-These are instructions for building Perl under DOS (or w??), using\r
-DJGPP v2.03 or later.  Under w95 long filenames are supported.\r
-\r
-=head1 DESCRIPTION\r
-\r
-Before you start, you should glance through the README file\r
-found in the top-level directory where the Perl distribution\r
-was extracted.  Make sure you read and understand the terms under\r
-which this software is being distributed.\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
-\r
-Detailed instructions on how to build and install perl extension\r
-modules, including XS-type modules, is included.  See 'BUILDING AND\r
-INSTALLING MODULES'.\r
-\r
-=head2 Prerequisites for Compiling Perl on DOS\r
-\r
-=over 4\r
-\r
-=item DJGPP\r
-\r
-DJGPP is a port of GNU C/C++ compiler and development tools to 32-bit,\r
-protected-mode environment on Intel 32-bit CPUs running MS-DOS and compatible\r
-operating systems, by DJ Delorie <dj@delorie.com> and friends.\r
-\r
-For more details (FAQ), check out the home of DJGPP at:\r
-\r
-        http://www.delorie.com/djgpp/\r
-\r
-If you have questions about DJGPP, try posting to the DJGPP newsgroup:\r
-comp.os.msdos.djgpp, or use the email gateway djgpp@delorie.com.\r
-\r
-You can find the full DJGPP distribution on any SimTel.Net mirror all over\r
-the world. Like:\r
-\r
-        ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2*\r
-\r
-You need the following files to build perl (or add new modules):\r
-\r
-        v2/djdev203.zip\r
-        v2/bnu2951b.zip\r
-        v2gnu/gcc2952b.zip\r
-        v2gnu/bsh204b.zip\r
-        v2gnu/mak3791b.zip\r
-        v2gnu/fil316b.zip\r
-        v2gnu/sed302b.zip\r
-        v2gnu/txt20b.zip\r
-        v2gnu/dif272b.zip\r
-        v2gnu/grep24b.zip\r
-        v2gnu/shl112b.zip\r
-        v2gnu/gawk303b.zip\r
-        v2misc/csdpmi4b.zip\r
-\r
-or possibly any newer version.\r
-\r
-=item Pthreads\r
-\r
-Thread support is not tested in this version of the djgpp perl.\r
-\r
-=back\r
-\r
-=head2 Shortcomings of Perl under DOS\r
-\r
-Perl under DOS lacks some features of perl under UNIX because of\r
-deficiencies in the UNIX-emulation, most notably:\r
-\r
-=over 4\r
-\r
-=item *\r
-\r
-fork() and pipe()\r
-\r
-=item *\r
-\r
-some features of the UNIX filesystem regarding link count and file dates\r
-\r
-=item *\r
-\r
-in-place operation is a little bit broken with short filenames\r
-\r
-=item *\r
-\r
-sockets\r
-\r
-=back\r
-\r
-=head2 Building Perl on DOS\r
-\r
-=over 4\r
-\r
-=item *\r
-\r
-Unpack the source package F<perl5.6*.tar.gz> with djtarx. If you want\r
-to use long file names under w95 and also to get Perl to pass all its\r
-tests, don't forget to use\r
-\r
-        set LFN=y\r
-        set FNCASE=y\r
-\r
-before unpacking the archive.\r
-\r
-=item *\r
-\r
-Create a "symlink" or copy your bash.exe to sh.exe in your C<($DJDIR)/bin>\r
-directory.\r
-\r
-        ln -s bash.exe sh.exe\r
-\r
-[If you have the recommended version of bash for DJGPP, this is already\r
-done for you.]\r
-\r
-And make the C<SHELL> environment variable point to this F<sh.exe>:\r
-\r
-        set SHELL=c:/djgpp/bin/sh.exe (use full path name!)\r
-\r
-You can do this in F<djgpp.env> too. Add this line BEFORE any section\r
-definition:\r
-\r
-        +SHELL=%DJDIR%/bin/sh.exe\r
-\r
-=item *\r
-\r
-If you have F<split.exe> and F<gsplit.exe> in your path, then rename \r
-F<split.exe> to F<djsplit.exe>, and F<gsplit.exe> to F<split.exe>.\r
-Copy or link F<gecho.exe> to F<echo.exe> if you don't have F<echo.exe>.\r
-Copy or link F<gawk.exe> to F<awk.exe> if you don't have F<awk.exe>.\r
-\r
-[If you have the recommended versions of djdev, shell utilities and\r
-gawk, all these are already done for you, and you will not need to do\r
-anything.]\r
-\r
-=item *\r
-\r
-Chdir to the djgpp subdirectory of perl toplevel and type the following\r
-commands:\r
-\r
-        set FNCASE=y\r
-        configure.bat\r
-\r
-This will do some preprocessing then run the Configure script for you.\r
-The Configure script is interactive, but in most cases you just need to\r
-press ENTER.  The "set" command ensures that DJGPP preserves the letter\r
-case of file names when reading directories.  If you already issued this\r
-set command when unpacking the archive, and you are in the same DOS\r
-session as when you unpacked the archive, you don't have to issue the\r
-set command again.  This command is necessary *before* you start to \r
-(re)configure or (re)build perl in order to ensure both that perl builds \r
-correctly and that building XS-type modules can succeed.  See the DJGPP \r
-info entry for "_preserve_fncase" for more information:\r
-\r
-        info libc alphabetical _preserve_fncase\r
-\r
-If the script says that your package is incomplete, and asks whether\r
-to continue, just answer with Y (this can only happen if you don't use\r
-long filenames or forget to issue "set FNCASE=y" first).\r
-\r
-When Configure asks about the extensions, I suggest IO and Fcntl,\r
-and if you want database handling then SDBM_File or GDBM_File\r
-(you need to install gdbm for this one). If you want to use the\r
-POSIX extension (this is the default), make sure that the stack\r
-size of your F<cc1.exe> is at least 512kbyte (you can check this\r
-with: C<stubedit cc1.exe>).\r
-\r
-You can use the Configure script in non-interactive mode too.\r
-When I built my F<perl.exe>, I used something like this:\r
-\r
-        configure.bat -des\r
-\r
-You can find more info about Configure's command line switches in\r
-the F<INSTALL> file.\r
-\r
-When the script ends, and you want to change some values in the\r
-generated F<config.sh> file, then run\r
-\r
-        sh Configure -S\r
-\r
-after you made your modifications.\r
-\r
-IMPORTANT: if you use this C<-S> switch, be sure to delete the CONFIG\r
-environment variable before running the script:\r
-\r
-        set CONFIG=\r
-\r
-=item *\r
-\r
-Now you can compile Perl. Type:\r
-\r
-        make\r
-\r
-=back\r
-\r
-=head2 Testing Perl on DOS\r
-\r
-Type:\r
-\r
-        make test\r
-\r
-If you're lucky you should see "All tests successful". But there can be\r
-a few failed subtests (less than 5 hopefully) depending on some external\r
-conditions (e.g. some subtests fail under linux/dosemu or plain dos\r
-with short filenames only).\r
-\r
-=head2 Installation of Perl on DOS\r
-\r
-Type:\r
-\r
-        make install\r
-\r
-This will copy the newly compiled perl and libraries into your DJGPP\r
-directory structure. Perl.exe and the utilities go into C<($DJDIR)/bin>,\r
-and the library goes under C<($DJDIR)/lib/perl5>. The pod documentation\r
-goes under C<($DJDIR)/lib/perl5/pod>.\r
-\r
-=head1 BUILDING AND INSTALLING MODULES ON DOS\r
-\r
-=head2 Building Prerequisites for Perl on DOS\r
-\r
-For building and installing non-XS modules, all you need is a working\r
-perl under DJGPP.  Non-XS modules do not require re-linking the perl\r
-binary, and so are simpler to build and install.\r
-\r
-XS-type modules do require re-linking the perl binary, because part of\r
-an XS module is written in "C", and has to be linked together with the\r
-perl binary to be executed.  This is required because perl under DJGPP\r
-is built with the "static link" option, due to the lack of "dynamic\r
-linking" in the DJGPP environment.\r
-\r
-Because XS modules require re-linking of the perl binary, you need both\r
-the perl binary distribution and the perl source distribution to build\r
-an XS extension module.  In addition, you will have to have built your\r
-perl binary from the source distribution so that all of the components\r
-of the perl binary are available for the required link step.\r
-\r
-=head2 Unpacking CPAN Modules on DOS\r
-\r
-First, download the module package from CPAN (e.g., the "Comma Separated\r
-Value" text package, Text-CSV-0.01.tar.gz).  Then expand the contents of\r
-the package into some location on your disk.  Most CPAN modules are\r
-built with an internal directory structure, so it is usually safe to\r
-expand it in the root of your DJGPP installation.  Some people prefer to\r
-locate source trees under /usr/src (i.e., C<($DJDIR)/usr/src>), but you may\r
-put it wherever seems most logical to you, *EXCEPT* under the same\r
-directory as your perl source code.  There are special rules that apply\r
-to modules which live in the perl source tree that do not apply to most\r
-of the modules in CPAN.\r
-\r
-Unlike other DJGPP packages, which are normal "zip" files, most CPAN\r
-module packages are "gzipped tarballs".  Recent versions of WinZip will\r
-safely unpack and expand them, *UNLESS* they have zero-length files.  It\r
-is a known WinZip bug (as of v7.0) that it will not extract zero-length\r
-files.\r
-\r
-From the command line, you can use the djtar utility provided with DJGPP\r
-to unpack and expand these files.  For example:\r
-\r
-        C:\djgpp>djtarx -v Text-CSV-0.01.tar.gz\r
-\r
-This will create the new directory C<($DJDIR)/Text-CSV-0.01>, filling\r
-it with the source for this module.\r
-\r
-=head2 Building Non-XS Modules on DOS\r
-\r
-To build a non-XS module, you can use the standard module-building\r
-instructions distributed with perl modules.\r
-\r
-    perl Makefile.PL\r
-    make\r
-    make test\r
-    make install\r
-\r
-This is sufficient because non-XS modules install only ".pm" files and\r
-(sometimes) pod and/or man documentation.  No re-linking of the perl\r
-binary is needed to build, install or use non-XS modules.\r
-\r
-=head2 Building XS Modules on DOS\r
-\r
-To build an XS module, you must use the standard module-building\r
-instructions distributed with perl modules *PLUS* three extra\r
-instructions specific to the DJGPP "static link" build environment.\r
-\r
-    set FNCASE=y\r
-    perl Makefile.PL\r
-    make\r
-    make perl\r
-    make test\r
-    make -f Makefile.aperl inst_perl MAP_TARGET=perl.exe\r
-    make install\r
-\r
-The first extra instruction sets DJGPP's FNCASE environment variable so\r
-that the new perl binary which you must build for an XS-type module will\r
-build correctly.  The second extra instruction re-builds the perl binary\r
-in your module directory before you run "make test", so that you are\r
-testing with the new module code you built with "make".  The third extra\r
-instruction installs the perl binary from your module directory into the\r
-standard DJGPP binary directory, C<($DJDIR)/bin>, replacing your\r
-previous perl binary.\r
-\r
-Note that the MAP_TARGET value *must* have the ".exe" extension or you\r
-will not create a "perl.exe" to replace the one in C<($DJDIR)/bin>.\r
-\r
-When you are done, the XS-module install process will have added information\r
-to yout "perllocal" information telling that the perl binary has been replaced,\r
-and what module was installed.  you can view this information at any time\r
-by using the command:\r
-\r
-        perl -S perldoc perllocal\r
-\r
-=head1 AUTHOR\r
-\r
-Laszlo Molnar, F<laszlo.molnar@eth.ericsson.se> [Installing/building perl]\r
-\r
-Peter J. Farley III F<pjfarley@banet.net> [Building/installing modules]\r
-\r
-=head1 SEE ALSO\r
-\r
-perl(1).\r
-\r
-=cut\r
-\r
+If you read this file _as_is_, just ignore the funny characters you
+see. It is written in the POD format (see perlpod manpage) which is
+specially designed to be readable as is.
+
+=head1 NAME
+
+perldos - Perl under DOS, W31, W95.
+
+=head1 SYNOPSIS
+
+These are instructions for building Perl under DOS (or w??), using
+DJGPP v2.03 or later.  Under w95 long filenames are supported.
+
+=head1 DESCRIPTION
+
+Before you start, you should glance through the README file
+found in the top-level directory where the Perl distribution
+was extracted.  Make sure you read and understand the terms under
+which this software is being distributed.
+
+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.
+
+Detailed instructions on how to build and install perl extension
+modules, including XS-type modules, is included.  See 'BUILDING AND
+INSTALLING MODULES'.
+
+=head2 Prerequisites for Compiling Perl on DOS
+
+=over 4
+
+=item DJGPP
+
+DJGPP is a port of GNU C/C++ compiler and development tools to 32-bit,
+protected-mode environment on Intel 32-bit CPUs running MS-DOS and compatible
+operating systems, by DJ Delorie <dj@delorie.com> and friends.
+
+For more details (FAQ), check out the home of DJGPP at:
+
+        http://www.delorie.com/djgpp/
+
+If you have questions about DJGPP, try posting to the DJGPP newsgroup:
+comp.os.msdos.djgpp, or use the email gateway djgpp@delorie.com.
+
+You can find the full DJGPP distribution on any SimTel.Net mirror all over
+the world. Like:
+
+        ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2*
+
+You need the following files to build perl (or add new modules):
+
+        v2/djdev203.zip
+        v2/bnu2951b.zip
+        v2gnu/gcc2952b.zip
+        v2gnu/bsh204b.zip
+        v2gnu/mak3791b.zip
+        v2gnu/fil316b.zip
+        v2gnu/sed302b.zip
+        v2gnu/txt20b.zip
+        v2gnu/dif272b.zip
+        v2gnu/grep24b.zip
+        v2gnu/shl112b.zip
+        v2gnu/gawk303b.zip
+        v2misc/csdpmi4b.zip
+
+or possibly any newer version.
+
+=item Pthreads
+
+Thread support is not tested in this version of the djgpp perl.
+
+=back
+
+=head2 Shortcomings of Perl under DOS
+
+Perl under DOS lacks some features of perl under UNIX because of
+deficiencies in the UNIX-emulation, most notably:
+
+=over 4
+
+=item *
+
+fork() and pipe()
+
+=item *
+
+some features of the UNIX filesystem regarding link count and file dates
+
+=item *
+
+in-place operation is a little bit broken with short filenames
+
+=item *
+
+sockets
+
+=back
+
+=head2 Building Perl on DOS
+
+=over 4
+
+=item *
+
+Unpack the source package F<perl5.6*.tar.gz> with djtarx. If you want
+to use long file names under w95 and also to get Perl to pass all its
+tests, don't forget to use
+
+        set LFN=y
+        set FNCASE=y
+
+before unpacking the archive.
+
+=item *
+
+Create a "symlink" or copy your bash.exe to sh.exe in your C<($DJDIR)/bin>
+directory.
+
+        ln -s bash.exe sh.exe
+
+[If you have the recommended version of bash for DJGPP, this is already
+done for you.]
+
+And make the C<SHELL> environment variable point to this F<sh.exe>:
+
+        set SHELL=c:/djgpp/bin/sh.exe (use full path name!)
+
+You can do this in F<djgpp.env> too. Add this line BEFORE any section
+definition:
+
+        +SHELL=%DJDIR%/bin/sh.exe
+
+=item *
+
+If you have F<split.exe> and F<gsplit.exe> in your path, then rename 
+F<split.exe> to F<djsplit.exe>, and F<gsplit.exe> to F<split.exe>.
+Copy or link F<gecho.exe> to F<echo.exe> if you don't have F<echo.exe>.
+Copy or link F<gawk.exe> to F<awk.exe> if you don't have F<awk.exe>.
+
+[If you have the recommended versions of djdev, shell utilities and
+gawk, all these are already done for you, and you will not need to do
+anything.]
+
+=item *
+
+Chdir to the djgpp subdirectory of perl toplevel and type the following
+commands:
+
+        set FNCASE=y
+        configure.bat
+
+This will do some preprocessing then run the Configure script for you.
+The Configure script is interactive, but in most cases you just need to
+press ENTER.  The "set" command ensures that DJGPP preserves the letter
+case of file names when reading directories.  If you already issued this
+set command when unpacking the archive, and you are in the same DOS
+session as when you unpacked the archive, you don't have to issue the
+set command again.  This command is necessary *before* you start to 
+(re)configure or (re)build perl in order to ensure both that perl builds 
+correctly and that building XS-type modules can succeed.  See the DJGPP 
+info entry for "_preserve_fncase" for more information:
+
+        info libc alphabetical _preserve_fncase
+
+If the script says that your package is incomplete, and asks whether
+to continue, just answer with Y (this can only happen if you don't use
+long filenames or forget to issue "set FNCASE=y" first).
+
+When Configure asks about the extensions, I suggest IO and Fcntl,
+and if you want database handling then SDBM_File or GDBM_File
+(you need to install gdbm for this one). If you want to use the
+POSIX extension (this is the default), make sure that the stack
+size of your F<cc1.exe> is at least 512kbyte (you can check this
+with: C<stubedit cc1.exe>).
+
+You can use the Configure script in non-interactive mode too.
+When I built my F<perl.exe>, I used something like this:
+
+        configure.bat -des
+
+You can find more info about Configure's command line switches in
+the F<INSTALL> file.
+
+When the script ends, and you want to change some values in the
+generated F<config.sh> file, then run
+
+        sh Configure -S
+
+after you made your modifications.
+
+IMPORTANT: if you use this C<-S> switch, be sure to delete the CONFIG
+environment variable before running the script:
+
+        set CONFIG=
+
+=item *
+
+Now you can compile Perl. Type:
+
+        make
+
+=back
+
+=head2 Testing Perl on DOS
+
+Type:
+
+        make test
+
+If you're lucky you should see "All tests successful". But there can be
+a few failed subtests (less than 5 hopefully) depending on some external
+conditions (e.g. some subtests fail under linux/dosemu or plain dos
+with short filenames only).
+
+=head2 Installation of Perl on DOS
+
+Type:
+
+        make install
+
+This will copy the newly compiled perl and libraries into your DJGPP
+directory structure. Perl.exe and the utilities go into C<($DJDIR)/bin>,
+and the library goes under C<($DJDIR)/lib/perl5>. The pod documentation
+goes under C<($DJDIR)/lib/perl5/pod>.
+
+=head1 BUILDING AND INSTALLING MODULES ON DOS
+
+=head2 Building Prerequisites for Perl on DOS
+
+For building and installing non-XS modules, all you need is a working
+perl under DJGPP.  Non-XS modules do not require re-linking the perl
+binary, and so are simpler to build and install.
+
+XS-type modules do require re-linking the perl binary, because part of
+an XS module is written in "C", and has to be linked together with the
+perl binary to be executed.  This is required because perl under DJGPP
+is built with the "static link" option, due to the lack of "dynamic
+linking" in the DJGPP environment.
+
+Because XS modules require re-linking of the perl binary, you need both
+the perl binary distribution and the perl source distribution to build
+an XS extension module.  In addition, you will have to have built your
+perl binary from the source distribution so that all of the components
+of the perl binary are available for the required link step.
+
+=head2 Unpacking CPAN Modules on DOS
+
+First, download the module package from CPAN (e.g., the "Comma Separated
+Value" text package, Text-CSV-0.01.tar.gz).  Then expand the contents of
+the package into some location on your disk.  Most CPAN modules are
+built with an internal directory structure, so it is usually safe to
+expand it in the root of your DJGPP installation.  Some people prefer to
+locate source trees under /usr/src (i.e., C<($DJDIR)/usr/src>), but you may
+put it wherever seems most logical to you, *EXCEPT* under the same
+directory as your perl source code.  There are special rules that apply
+to modules which live in the perl source tree that do not apply to most
+of the modules in CPAN.
+
+Unlike other DJGPP packages, which are normal "zip" files, most CPAN
+module packages are "gzipped tarballs".  Recent versions of WinZip will
+safely unpack and expand them, *UNLESS* they have zero-length files.  It
+is a known WinZip bug (as of v7.0) that it will not extract zero-length
+files.
+
+From the command line, you can use the djtar utility provided with DJGPP
+to unpack and expand these files.  For example:
+
+        C:\djgpp>djtarx -v Text-CSV-0.01.tar.gz
+
+This will create the new directory C<($DJDIR)/Text-CSV-0.01>, filling
+it with the source for this module.
+
+=head2 Building Non-XS Modules on DOS
+
+To build a non-XS module, you can use the standard module-building
+instructions distributed with perl modules.
+
+    perl Makefile.PL
+    make
+    make test
+    make install
+
+This is sufficient because non-XS modules install only ".pm" files and
+(sometimes) pod and/or man documentation.  No re-linking of the perl
+binary is needed to build, install or use non-XS modules.
+
+=head2 Building XS Modules on DOS
+
+To build an XS module, you must use the standard module-building
+instructions distributed with perl modules *PLUS* three extra
+instructions specific to the DJGPP "static link" build environment.
+
+    set FNCASE=y
+    perl Makefile.PL
+    make
+    make perl
+    make test
+    make -f Makefile.aperl inst_perl MAP_TARGET=perl.exe
+    make install
+
+The first extra instruction sets DJGPP's FNCASE environment variable so
+that the new perl binary which you must build for an XS-type module will
+build correctly.  The second extra instruction re-builds the perl binary
+in your module directory before you run "make test", so that you are
+testing with the new module code you built with "make".  The third extra
+instruction installs the perl binary from your module directory into the
+standard DJGPP binary directory, C<($DJDIR)/bin>, replacing your
+previous perl binary.
+
+Note that the MAP_TARGET value *must* have the ".exe" extension or you
+will not create a "perl.exe" to replace the one in C<($DJDIR)/bin>.
+
+When you are done, the XS-module install process will have added information
+to yout "perllocal" information telling that the perl binary has been replaced,
+and what module was installed.  you can view this information at any time
+by using the command:
+
+        perl -S perldoc perllocal
+
+=head1 AUTHOR
+
+Laszlo Molnar, F<laszlo.molnar@eth.ericsson.se> [Installing/building perl]
+
+Peter J. Farley III F<pjfarley@banet.net> [Building/installing modules]
+
+=head1 SEE ALSO
+
+perl(1).
+
+=cut
+
index 15d36de..de95e10 100644 (file)
@@ -217,7 +217,7 @@ multi-threading code. Under Linux, that also turns on a quick
 hack I did to grab a bit of extra information from segfaults.
 If you have a fancier gdb/threads setup than I do then you'll
 have to delete the lines in perl.c which say
-    #if defined(DEBUGGING) && defined(USE_THREADS) && defined(__linux__)
+    #if defined(DEBUGGING) && defined(USE_5005THREADS) && defined(__linux__)
         DEBUG_S(signal(SIGSEGV, (void(*)(int))catch_sigsegv););
     #endif
 
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/cop.h b/cop.h
index 8d8126b..1e0e5d8 100644 (file)
--- a/cop.h
+++ b/cop.h
@@ -74,9 +74,9 @@ struct block_sub {
     CV *       cv;
     GV *       gv;
     GV *       dfoutgv;
-#ifndef USE_THREADS
+#ifndef USE_5005THREADS
     AV *       savearray;
-#endif /* USE_THREADS */
+#endif /* USE_5005THREADS */
     AV *       argarray;
     U16                olddepth;
     U8         hasargs;
@@ -98,7 +98,7 @@ struct block_sub {
        cx->blk_sub.dfoutgv = PL_defoutgv;                              \
        (void)SvREFCNT_inc(cx->blk_sub.dfoutgv)
 
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
 #  define POP_SAVEARRAY() NOOP
 #else
 #  define POP_SAVEARRAY()                                              \
@@ -106,7 +106,7 @@ struct block_sub {
        SvREFCNT_dec(GvAV(PL_defgv));                                   \
        GvAV(PL_defgv) = cx->blk_sub.savearray;                         \
     } STMT_END
-#endif /* USE_THREADS */
+#endif /* USE_5005THREADS */
 
 /* junk in @_ spells trouble when cloning CVs and in pp_caller(), so don't
  * leave any (a fast av_clear(ary), basically) */
diff --git a/cv.h b/cv.h
index 7fa9400..b6fd7e8 100644 (file)
--- a/cv.h
+++ b/cv.h
@@ -22,17 +22,17 @@ 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;
     long       xcv_depth;      /* >= 2 indicates recursive call */
     AV *       xcv_padlist;
     CV *       xcv_outside;
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
     perl_mutex *xcv_mutexp;
     struct perl_thread *xcv_owner;     /* current owner thread */
-#endif /* USE_THREADS */
+#endif /* USE_5005THREADS */
     cv_flags_t xcv_flags;
 };
 
@@ -64,10 +64,10 @@ Returns the stash of the CV.
 #define CvDEPTH(sv)    ((XPVCV*)SvANY(sv))->xcv_depth
 #define CvPADLIST(sv)  ((XPVCV*)SvANY(sv))->xcv_padlist
 #define CvOUTSIDE(sv)  ((XPVCV*)SvANY(sv))->xcv_outside
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
 #define CvMUTEXP(sv)   ((XPVCV*)SvANY(sv))->xcv_mutexp
 #define CvOWNER(sv)    ((XPVCV*)SvANY(sv))->xcv_owner
-#endif /* USE_THREADS */
+#endif /* USE_5005THREADS */
 #define CvFLAGS(sv)    ((XPVCV*)SvANY(sv))->xcv_flags
 
 #define CVf_CLONE      0x0001  /* anon CV uses external lexicals */
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];
 
diff --git a/deb.c b/deb.c
index dec5c06..eaa5082 100644 (file)
--- a/deb.c
+++ b/deb.c
@@ -47,7 +47,7 @@ Perl_vdeb(pTHX_ const char *pat, va_list *args)
 #ifdef DEBUGGING
     char* file = CopFILE(PL_curcop);
 
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
     PerlIO_printf(Perl_debug_log, "0x%"UVxf" (%s:%ld)\t",
                  PTR2UV(thr),
                  (file ? file : "<free>"),
@@ -55,7 +55,7 @@ Perl_vdeb(pTHX_ const char *pat, va_list *args)
 #else
     PerlIO_printf(Perl_debug_log, "(%s:%ld)\t", (file ? file : "<free>"),
                  (long)CopLINE(PL_curcop));
-#endif /* USE_THREADS */
+#endif /* USE_5005THREADS */
     (void) PerlIO_vprintf(Perl_debug_log, pat, *args);
 #endif /* DEBUGGING */
 }
@@ -93,13 +93,13 @@ Perl_debstack(pTHX)
        if (*markscan >= i)
            break;
 
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
     PerlIO_printf(Perl_debug_log,
                  i ? "0x%"UVxf"    =>  ...  " : "0x%lx    =>  ",
                  PTR2UV(thr));
 #else
     PerlIO_printf(Perl_debug_log, i ? "    =>  ...  " : "    =>  ");
-#endif /* USE_THREADS */
+#endif /* USE_5005THREADS */
     if (PL_stack_base[0] != &PL_sv_undef || PL_stack_sp < PL_stack_base)
        PerlIO_printf(Perl_debug_log, " [STACK UNDERFLOW!!!]\n");
     do {
index 4b90187..0b0a35e 100644 (file)
--- a/dosish.h
+++ b/dosish.h
@@ -16,7 +16,7 @@
 #  if (DJGPP==2 && DJGPP_MINOR < 2)
 #    define NO_LOCALECONV_MON_THOUSANDS_SEP
 #  endif
-#  ifdef USE_THREADS
+#  ifdef USE_5005THREADS
 #    define OLD_PTHREADS_API
 #  endif
 #  define PERL_FS_VER_FMT      "%d_%d_%d"
diff --git a/dump.c b/dump.c
index 6729db8..8bde2f5 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -381,7 +381,7 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o)
        PerlIO_printf(file, "    ");
     PerlIO_printf(file,
                  "%*sTYPE = %s  ===> ",
-                 (int)(PL_dumpindent*level-4), "", PL_op_name[o->op_type]);
+                 (int)(PL_dumpindent*level-4), "", OP_NAME(o));
     if (o->op_next) {
        if (o->op_seq)
            PerlIO_printf(file, "%d\n", o->op_next->op_seq);
@@ -1253,10 +1253,10 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        do_gvgv_dump(level, file, "  GVGV::GV", CvGV(sv));
        Perl_dump_indent(aTHX_ level, file, "  FILE = \"%s\"\n", CvFILE(sv));
        Perl_dump_indent(aTHX_ level, file, "  DEPTH = %"IVdf"\n", (IV)CvDEPTH(sv));
-#ifdef USE_THREADS
+#ifdef USE_5005THREADS
        Perl_dump_indent(aTHX_ level, file, "  MUTEXP = 0x%"UVxf"\n", PTR2UV(CvMUTEXP(sv)));
        Perl_dump_indent(aTHX_ level, file, "  OWNER = 0x%"UVxf"\n",  PTR2UV(CvOWNER(sv)));
-#endif /* USE_THREADS */
+#endif /* USE_5005THREADS */
        Perl_dump_indent(aTHX_ level, file, "  FLAGS = 0x%"UVxf"\n", (UV)CvFLAGS(sv));
        if (type == SVt_PVFM)
            Perl_dump_indent(aTHX_ level, file, "  LINES = %"IVdf"\n", (IV)FmLINES(sv));
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 a83e0b8..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_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
 #define my_chsize              Perl_my_chsize
 #endif
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define condpair_magic         Perl_condpair_magic
 #endif
 #define convert                        Perl_convert
 #define fbm_compile            Perl_fbm_compile
 #define fbm_instr              Perl_fbm_instr
 #define find_script            Perl_find_script
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define find_threadsv          Perl_find_threadsv
 #endif
 #define force_list             Perl_force_list
 #define magic_getuvar          Perl_magic_getuvar
 #define magic_getvec           Perl_magic_getvec
 #define magic_len              Perl_magic_len
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define magic_mutexfree                Perl_magic_mutexfree
 #endif
 #define magic_nextpack         Perl_magic_nextpack
 #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_THREADS)
+#if defined(USE_5005THREADS)
 #define new_struct_thread      Perl_new_struct_thread
 #endif
 #define call_atexit            Perl_call_atexit
 #if defined(UNLINK_ALL_VERSIONS)
 #define unlnk                  Perl_unlnk
 #endif
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define unlock_condpair                Perl_unlock_condpair
 #endif
 #define unsharepvn             Perl_unsharepvn
 #endif
 #define runops_standard                Perl_runops_standard
 #define runops_debug           Perl_runops_debug
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define sv_lock                        Perl_sv_lock
 #endif
 #define sv_catpvf_mg           Perl_sv_catpvf_mg
 #define sys_intern_clear       Perl_sys_intern_clear
 #define sys_intern_init                Perl_sys_intern_init
 #endif
-#if defined(PERL_OBJECT)
-#else
+#if defined(PERL_CUSTOM_OPS)
+#define custom_op_name         Perl_custom_op_name
+#define custom_op_desc         Perl_custom_op_desc
 #endif
 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 #define avhv_index_sv          S_avhv_index_sv
 #define vcall_body             S_vcall_body
 #define vcall_list_body                S_vcall_list_body
 #endif
-#  if defined(USE_THREADS)
+#  if defined(USE_5005THREADS)
 #define init_main_thread       S_init_main_thread
 #  endif
 #endif
 #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_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
 #define my_chsize(a,b)         Perl_my_chsize(aTHX_ a,b)
 #endif
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define condpair_magic(a)      Perl_condpair_magic(aTHX_ a)
 #endif
 #define convert(a,b,c)         Perl_convert(aTHX_ a,b,c)
 #define fbm_compile(a,b)       Perl_fbm_compile(aTHX_ a,b)
 #define fbm_instr(a,b,c,d)     Perl_fbm_instr(aTHX_ a,b,c,d)
 #define find_script(a,b,c,d)   Perl_find_script(aTHX_ a,b,c,d)
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define find_threadsv(a)       Perl_find_threadsv(aTHX_ a)
 #endif
 #define force_list(a)          Perl_force_list(aTHX_ a)
 #define magic_getuvar(a,b)     Perl_magic_getuvar(aTHX_ a,b)
 #define magic_getvec(a,b)      Perl_magic_getvec(aTHX_ a,b)
 #define magic_len(a,b)         Perl_magic_len(aTHX_ a,b)
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define magic_mutexfree(a,b)   Perl_magic_mutexfree(aTHX_ a,b)
 #endif
 #define magic_nextpack(a,b,c)  Perl_magic_nextpack(aTHX_ a,b,c)
 #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_THREADS)
+#if defined(USE_5005THREADS)
 #define new_struct_thread(a)   Perl_new_struct_thread(aTHX_ a)
 #endif
 #define call_atexit(a,b)       Perl_call_atexit(aTHX_ a,b)
 #if defined(UNLINK_ALL_VERSIONS)
 #define unlnk(a)               Perl_unlnk(aTHX_ a)
 #endif
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define unlock_condpair(a)     Perl_unlock_condpair(aTHX_ a)
 #endif
 #define unsharepvn(a,b,c)      Perl_unsharepvn(aTHX_ a,b,c)
 #endif
 #define runops_standard()      Perl_runops_standard(aTHX)
 #define runops_debug()         Perl_runops_debug(aTHX)
-#if defined(USE_THREADS)
+#if defined(USE_5005THREADS)
 #define sv_lock(a)             Perl_sv_lock(aTHX_ a)
 #endif
 #define sv_vcatpvf_mg(a,b,c)   Perl_sv_vcatpvf_mg(aTHX_ a,b,c)
 #define sys_intern_clear()     Perl_sys_intern_clear(aTHX)
 #define sys_intern_init()      Perl_sys_intern_init(aTHX)
 #endif
-#if defined(PERL_OBJECT)
-#else
+#if defined(PERL_CUSTOM_OPS)
+#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_IN_AV_C) || defined(PERL_DECL_PROT)
 #define avhv_index_sv(a)       S_avhv_index_sv(aTHX_ a)
 #define vcall_body(a)          S_vcall_body(aTHX_ a)
 #define vcall_list_body(a)     S_vcall_list_body(aTHX_ a)
 #endif
-#  if defined(USE_THREADS)
+#  if defined(USE_5005THREADS)
 #define init_main_thread()     S_init_main_thread(aTHX)
 #  endif
 #endif
 #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_THREADS)
-#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_THREADS)
-#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_THREADS)
-#define Perl_magic_mutexfree   CPerlObj::Perl_magic_mutexfree
-#define magic_mutexfree                Perl_magic_mutexfree
-#endif
-#define Perl_magic_nextpack    CPerlObj::Perl_magic_nextpack
-#define magic_nextpack         Perl_magic_nextpack
-#define Perl_magic_regdata_cnt CPerlObj::Perl_magic_regdata_cnt
-#define magic_regdata_cnt      Perl_magic_regdata_cnt
-#define Perl_magic_regdatum_get        CPerlObj::Perl_magic_regdatum_get
-#define magic_regdatum_get     Perl_magic_regdatum_get
-#define Perl_magic_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_THREADS)
-#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_THREADS)
-#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_THREADS)
-#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_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_THREADS)
-#define S_init_main_thread     CPerlObj::S_init_main_thread
-#define init_main_thread       S_init_main_thread
-#  endif
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
-#define S_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