Integrate from mainperl.
Jarkko Hietaniemi [Fri, 30 Oct 1998 08:43:18 +0000 (08:43 +0000)]
p4raw-id: //depot/cfgperl@2140

65 files changed:
MANIFEST
Makefile.SH
av.c
bytecode.h
byterun.h
cop.h
doio.c
doop.c
dump.c
embed.h
embed.pl
embedvar.h
ext/B/B.xs
ext/POSIX/POSIX.xs
ext/Thread/Thread.xs
global.sym
globals.c
globvar.sym [new file with mode: 0644]
gv.c
malloc.c
mg.c
objXSUB.h
objpp.h [deleted file]
op.c
opcode.h
opcode.pl
perl.c
perl.h
perl_exp.SH
perlvars.h
perly.c
pod/perlguts.pod
pp.c
pp.h
pp.sym [new file with mode: 0644]
pp_ctl.c
pp_hot.c
pp_proto.h
pp_sys.c
proto.h
regcomp.c
regcomp.h
regcomp.pl
regcomp.sym
regexec.c
regnodes.h
run.c
scope.c
sv.c
t/op/filetest.t
taint.c
thrdvar.h
thread.sym [deleted file]
toke.c
util.c
win32/Makefile
win32/config.bc
win32/config.gc
win32/config.vc
win32/config_H.bc
win32/config_H.gc
win32/config_H.vc
win32/makedef.pl
win32/makefile.mk
win32/perlhost.h

index a458adc..c40608e 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -346,6 +346,7 @@ fakethr.h           Fake threads header
 form.h                 Public declarations for the above
 global.sym             Symbols that need hiding when embedded
 globals.c              File to declare global symbols (for shared library)
+globvar.sym            Global variables that need hiding when embedded
 gv.c                   Glob value code
 gv.h                   Glob value header
 h2pl/README            How to turn .ph files into .pl files
@@ -777,7 +778,6 @@ mpeix/relink                MPE/iX port
 mv-if-diff             Script to mv a file if it changed
 myconfig               Prints summary of the current configuration
 nostdio.h              Cause compile error on stdio calls
-objpp.h                        Scoping macros for Perl Object
 op.c                   Opcode syntax tree code
 op.h                   Opcode syntax tree header
 opcode.h               Automatically generated opcode header
@@ -920,6 +920,7 @@ pod/splitman                Splits perlfunc into multiple man pages
 pod/splitpod           Splits perlfunc into multiple pod pages
 pp.c                   Push/Pop code
 pp.h                   Push/Pop code defs
+pp.sym                 Push/Pop code symbols
 pp_ctl.c               Push/Pop code for control flow
 pp_hot.c               Push/Pop code for heavily used opcodes
 pp_proto.h             C++ definitions for Push/Pop code
@@ -1165,7 +1166,6 @@ t/pragma/warning.t        See if warning controls work
 taint.c                        Tainting code
 thrdvar.h              Per-thread variables
 thread.h               Threading header
-thread.sym             Symbols for threads
 toke.c                 The tokener
 universal.c            The default UNIVERSAL package methods
 unixish.h              Defines that are assumed on Unix
index 9ed49e9..285a33b 100644 (file)
@@ -451,14 +451,17 @@ perly.h: perly.y
 
 # No compat3.sym here since and including the 5.004_50.
 # No interp.sym since 5.005_03.
-SYM  = global.sym perlio.sym thread.sym
+SYM  = global.sym globvar.sym perlio.sym pp.sym
 
-SYMH = perlvars.h thrdvar.h
+SYMH = perlvars.h intrpvar.h thrdvar.h
 
 # The following files are generated automatically
 #      keywords.h:     keywords.pl
 #      opcode.h:       opcode.pl
-#      embed.h:        embed.pl global.sym interp.sym
+#      pp_proto.h:     opcode.pl
+#      pp.sym:         opcode.pl
+#      embed.h:        embed.pl  [* needs pp.sym generated by opcode.pl! *]
+#      embedvar.h:     embed.pl  [* needs pp.sym generated by opcode.pl! *]
 #      byterun.h:      bytecode.pl
 #      byterun.c:      bytecode.pl
 #      lib/B/Asmdata.pm:       bytecode.pl
diff --git a/av.c b/av.c
index f3c69e7..3f288f3 100644 (file)
--- a/av.c
+++ b/av.c
@@ -217,7 +217,7 @@ av_store(register AV *av, I32 key, SV *val)
     }
 
     if (SvREADONLY(av) && key >= AvFILL(av))
-       croak(no_modify);
+       croak(PL_no_modify);
 
     if (SvRMAGICAL(av)) {
        if (mg_find((SV*)av,'P')) {
@@ -336,7 +336,7 @@ av_clear(register AV *av)
     /*SUPPRESS 560*/
 
     if (SvREADONLY(av))
-       croak(no_modify);
+       croak(PL_no_modify);
 
     /* Give any tie a chance to cleanup first */
     if (SvRMAGICAL(av))
@@ -396,7 +396,7 @@ av_push(register AV *av, SV *val)
     if (!av)
        return;
     if (SvREADONLY(av))
-       croak(no_modify);
+       croak(PL_no_modify);
 
     if (mg = SvTIED_mg((SV*)av, 'P')) {
        dSP;
@@ -424,7 +424,7 @@ av_pop(register AV *av)
     if (!av || AvFILL(av) < 0)
        return &PL_sv_undef;
     if (SvREADONLY(av))
-       croak(no_modify);
+       croak(PL_no_modify);
     if (mg = SvTIED_mg((SV*)av, 'P')) {
        dSP;    
        PUSHSTACKi(PERLSI_MAGIC);
@@ -458,7 +458,7 @@ av_unshift(register AV *av, register I32 num)
     if (!av || num <= 0)
        return;
     if (SvREADONLY(av))
-       croak(no_modify);
+       croak(PL_no_modify);
 
     if (mg = SvTIED_mg((SV*)av, 'P')) {
        dSP;
@@ -510,7 +510,7 @@ av_shift(register AV *av)
     if (!av || AvFILL(av) < 0)
        return &PL_sv_undef;
     if (SvREADONLY(av))
-       croak(no_modify);
+       croak(PL_no_modify);
     if (mg = SvTIED_mg((SV*)av, 'P')) {
        dSP;
        PUSHSTACKi(PERLSI_MAGIC);
index e28dd43..fadc28f 100644 (file)
@@ -151,7 +151,7 @@ typedef IV IV64;
        o->op_type = arg;                       \
        if (arg == OP_MAPSTART)                 \
            arg = OP_GREPSTART;                 \
-       o->op_ppaddr = ppaddr[arg];             \
+       o->op_ppaddr = PL_ppaddr[arg];          \
     } STMT_END
 #define BSET_op_ppaddr(o, arg) croak("op_ppaddr not yet implemented")
 #define BSET_curpad(pad, arg) pad = AvARRAY(arg)
index bd54c76..6e559ef 100644 (file)
--- a/byterun.h
+++ b/byterun.h
@@ -17,7 +17,9 @@ struct bytestream {
 };
 #endif /* INDIRECT_BGET_MACROS */
 
+#ifndef PERL_OBJECT
 void *bset_obj_store _((void *, I32));
+#endif
 
 enum {
     INSN_RET,                  /* 0 */
diff --git a/cop.h b/cop.h
index 1aa21d5..69bc1ac 100644 (file)
--- a/cop.h
+++ b/cop.h
@@ -187,7 +187,7 @@ struct block {
        cx->blk_oldpm           = PL_curpm,                             \
        cx->blk_gimme           = gimme;                                \
        DEBUG_l( PerlIO_printf(PerlIO_stderr(), "Entering block %ld, type %s\n",        \
-                   (long)cxstack_ix, block_type[t]); )
+                   (long)cxstack_ix, PL_block_type[t]); )
 
 /* Exit a block (RETURN and LAST). */
 #define POPBLOCK(cx,pm) cx = &cxstack[cxstack_ix--],                   \
@@ -199,7 +199,7 @@ struct block {
        pm               = cx->blk_oldpm,                               \
        gimme            = cx->blk_gimme;                               \
        DEBUG_l( PerlIO_printf(PerlIO_stderr(), "Leaving block %ld, type %s\n",         \
-                   (long)cxstack_ix+1,block_type[CxTYPE(cx)]); )
+                   (long)cxstack_ix+1,PL_block_type[CxTYPE(cx)]); )
 
 /* Continue a block elsewhere (NEXT and REDO). */
 #define TOPBLOCK(cx) cx  = &cxstack[cxstack_ix],                       \
diff --git a/doio.c b/doio.c
index 485dfaa..6dc113b 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -306,7 +306,7 @@ do_open(GV *gv, register char *name, I32 len, int as_raw, int rawmode, int rawpe
     if (!fp) {
        dTHR;
        if (ckWARN(WARN_NEWLINE) && IoTYPE(io) == '<' && strchr(name, '\n'))
-           warner(WARN_NEWLINE, warn_nl, "open");
+           warner(WARN_NEWLINE, PL_warn_nl, "open");
        goto say_false;
     }
     if (IoTYPE(io) &&
@@ -889,7 +889,7 @@ do_print(register SV *sv, PerlIO *fp)
        {
            dTHR;
            if (ckWARN(WARN_UNINITIALIZED))
-               warner(WARN_UNINITIALIZED, warn_uninit);
+               warner(WARN_UNINITIALIZED, PL_warn_uninit);
        }
        return TRUE;
     case SVt_IV:
@@ -957,7 +957,7 @@ my_stat(ARGSproto)
        PL_laststype = OP_STAT;
        PL_laststatval = PerlLIO_stat(s, &PL_statcache);
        if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && strchr(s, '\n'))
-           warner(WARN_NEWLINE, warn_nl, "stat");
+           warner(WARN_NEWLINE, PL_warn_nl, "stat");
        return PL_laststatval;
     }
 }
@@ -988,7 +988,7 @@ my_lstat(ARGSproto)
     PL_laststatval = PerlLIO_stat(SvPV(sv, PL_na),&PL_statcache);
 #endif
     if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && strchr(SvPV(sv, PL_na), '\n'))
-       warner(WARN_NEWLINE, warn_nl, "lstat");
+       warner(WARN_NEWLINE, PL_warn_nl, "lstat");
     return PL_laststatval;
 }
 
diff --git a/doop.c b/doop.c
index c988bff..b88be26 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -597,7 +597,7 @@ do_trans(SV *sv)
     STRLEN len;
 
     if (SvREADONLY(sv) && !(PL_op->op_private & OPpTRANS_IDENTICAL))
-       croak(no_modify);
+       croak(PL_no_modify);
 
     (void)SvPV(sv, len);
     if (!len)
diff --git a/dump.c b/dump.c
index b1e984b..8b73a9a 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -110,7 +110,7 @@ dump_op(OP *o)
        PerlIO_printf(Perl_debug_log, "%-4d", o->op_seq);
     else
        PerlIO_printf(Perl_debug_log, "    ");
-    dump("TYPE = %s  ===> ", op_name[o->op_type]);
+    dump("TYPE = %s  ===> ", PL_op_name[o->op_type]);
     if (o->op_next) {
        if (o->op_seq)
            PerlIO_printf(Perl_debug_log, "%d\n", o->op_next->op_seq);
@@ -122,7 +122,7 @@ dump_op(OP *o)
     PL_dumplvl++;
     if (o->op_targ) {
        if (o->op_type == OP_NULL)
-           dump("  (was %s)\n", op_name[o->op_targ]);
+           dump("  (was %s)\n", PL_op_name[o->op_targ]);
        else
            dump("TARG = %d\n", o->op_targ);
     }
diff --git a/embed.h b/embed.h
index a04f5c6..d3b770f 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -1,37 +1,22 @@
 /* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
-   This file is built by embed.pl from global.sym, intrpvar.h,
+   This file is built by embed.pl from global.sym, pp.sym, intrpvar.h,
    and thrdvar.h.  Any changes made here will be lost!
 */
 
 /* (Doing namespace management portably in C is really gross.) */
 
-/*  EMBED has no run-time penalty, but helps keep the Perl namespace
-    from colliding with that used by other libraries pulled in
-    by extensions or by embedding perl.  Allow a cc -DNO_EMBED
-    override, however, to keep binary compatability with previous
-    versions of perl.
-*/
-#ifndef NO_EMBED
-#  define EMBED 1 
-#endif
+/* NO_EMBED is no longer supported. i.e. EMBED is always active. */
 
-/* Hide global symbols? */
+/* Hide global symbols */
 
-#ifdef EMBED
+#if !defined(PERL_OBJECT)
 
-#define AMG_names              Perl_AMG_names
-#define Error                  Perl_Error
 #define Gv_AMupdate            Perl_Gv_AMupdate
-#define abs_amg                        Perl_abs_amg
-#define add_amg                        Perl_add_amg
-#define add_ass_amg            Perl_add_ass_amg
-#define additem                        Perl_additem
 #define amagic_call            Perl_amagic_call
 #define append_elem            Perl_append_elem
 #define append_list            Perl_append_list
 #define apply                  Perl_apply
 #define assertref              Perl_assertref
-#define atan2_amg              Perl_atan2_amg
 #define av_clear               Perl_av_clear
 #define av_extend              Perl_av_extend
 #define av_fake                        Perl_av_fake
 #define avhv_iternext          Perl_avhv_iternext
 #define avhv_iterval           Perl_avhv_iterval
 #define avhv_keys              Perl_avhv_keys
-#define band_amg               Perl_band_amg
 #define bind_match             Perl_bind_match
 #define block_end              Perl_block_end
 #define block_gimme            Perl_block_gimme
 #define block_start            Perl_block_start
-#define block_type             Perl_block_type
-#define bool__amg              Perl_bool__amg
 #define boot_core_UNIVERSAL    Perl_boot_core_UNIVERSAL
-#define bor_amg                        Perl_bor_amg
 #define bset_obj_store         Perl_bset_obj_store
-#define bxor_amg               Perl_bxor_amg
 #define byterun                        Perl_byterun
 #define call_list              Perl_call_list
 #define cando                  Perl_cando
+#define cast_i32               Perl_cast_i32
+#define cast_iv                        Perl_cast_iv
 #define cast_ulong             Perl_cast_ulong
-#define check                  Perl_check
+#define cast_uv                        Perl_cast_uv
 #define check_uni              Perl_check_uni
 #define checkcomma             Perl_checkcomma
 #define ck_aelem               Perl_ck_aelem
@@ -83,7 +65,6 @@
 #define ck_fun_locale          Perl_ck_fun_locale
 #define ck_glob                        Perl_ck_glob
 #define ck_grep                        Perl_ck_grep
-#define ck_gvconst             Perl_ck_gvconst
 #define ck_index               Perl_ck_index
 #define ck_lengthconst         Perl_ck_lengthconst
 #define ck_lfun                        Perl_ck_lfun
@@ -92,7 +73,6 @@
 #define ck_null                        Perl_ck_null
 #define ck_repeat              Perl_ck_repeat
 #define ck_require             Perl_ck_require
-#define ck_retarget            Perl_ck_retarget
 #define ck_rfun                        Perl_ck_rfun
 #define ck_rvconst             Perl_ck_rvconst
 #define ck_scmp                        Perl_ck_scmp
 #define ck_subr                        Perl_ck_subr
 #define ck_svconst             Perl_ck_svconst
 #define ck_trunc               Perl_ck_trunc
-#define compl_amg              Perl_compl_amg
-#define concat_amg             Perl_concat_amg
-#define concat_ass_amg         Perl_concat_ass_amg
 #define condpair_magic         Perl_condpair_magic
 #define convert                        Perl_convert
-#define cos_amg                        Perl_cos_amg
 #define croak                  Perl_croak
 #define cv_ckproto             Perl_cv_ckproto
 #define cv_clone               Perl_cv_clone
 #define cv_undef               Perl_cv_undef
 #define cx_dump                        Perl_cx_dump
 #define cxinc                  Perl_cxinc
-#define dc                     Perl_dc
 #define deb                    Perl_deb
 #define deb_growlevel          Perl_deb_growlevel
 #define debop                  Perl_debop
 #define debprofdump            Perl_debprofdump
 #define debstack               Perl_debstack
 #define debstackptrs           Perl_debstackptrs
-#define dec_amg                        Perl_dec_amg
 #define delimcpy               Perl_delimcpy
 #define deprecate              Perl_deprecate
-#define di                     Perl_di
 #define die                    Perl_die
 #define die_where              Perl_die_where
-#define div_amg                        Perl_div_amg
-#define div_ass_amg            Perl_div_ass_amg
 #define do_aexec               Perl_do_aexec
 #define do_binmode             Perl_do_binmode
 #define do_chomp               Perl_do_chomp
 #define dopoptoeval            Perl_dopoptoeval
 #define dounwind               Perl_dounwind
 #define dowantarray            Perl_dowantarray
-#define ds                     Perl_ds
 #define dump_all               Perl_dump_all
 #define dump_eval              Perl_dump_eval
 #define dump_fds               Perl_dump_fds
 #define dump_packsubs          Perl_dump_packsubs
 #define dump_pm                        Perl_dump_pm
 #define dump_sub               Perl_dump_sub
-#define eq_amg                 Perl_eq_amg
-#define exp_amg                        Perl_exp_amg
-#define expectterm             Perl_expectterm
-#define fallback_amg           Perl_fallback_amg
 #define fbm_compile            Perl_fbm_compile
 #define fbm_instr              Perl_fbm_instr
 #define fetch_gv               Perl_fetch_gv
 #define filter_read            Perl_filter_read
 #define find_script            Perl_find_script
 #define find_threadsv          Perl_find_threadsv
-#define fold                   Perl_fold
 #define fold_constants         Perl_fold_constants
-#define fold_locale            Perl_fold_locale
 #define force_ident            Perl_force_ident
 #define force_list             Perl_force_list
 #define force_next             Perl_force_next
 #define force_word             Perl_force_word
 #define form                   Perl_form
 #define free_tmps              Perl_free_tmps
-#define freq                   Perl_freq
-#define ge_amg                 Perl_ge_amg
 #define gen_constant_list      Perl_gen_constant_list
 #define get_no_modify          Perl_get_no_modify
 #define get_op_descs           Perl_get_op_descs
 #define get_specialsv_list     Perl_get_specialsv_list
 #define gp_free                        Perl_gp_free
 #define gp_ref                 Perl_gp_ref
-#define gt_amg                 Perl_gt_amg
 #define gv_AVadd               Perl_gv_AVadd
 #define gv_HVadd               Perl_gv_HVadd
 #define gv_IOadd               Perl_gv_IOadd
 #define hv_undef               Perl_hv_undef
 #define ibcmp                  Perl_ibcmp
 #define ibcmp_locale           Perl_ibcmp_locale
-#define inc_amg                        Perl_inc_amg
 #define ingroup                        Perl_ingroup
 #define init_stacks            Perl_init_stacks
 #define init_thread_intern     Perl_init_thread_intern
 #define is_utf8_upper          Perl_is_utf8_upper
 #define jmaybe                 Perl_jmaybe
 #define keyword                        Perl_keyword
-#define know_next              Perl_know_next
-#define le_amg                 Perl_le_amg
 #define leave_scope            Perl_leave_scope
 #define lex_end                        Perl_lex_end
 #define lex_start              Perl_lex_start
 #define list                   Perl_list
 #define listkids               Perl_listkids
 #define localize               Perl_localize
-#define log_amg                        Perl_log_amg
 #define looks_like_number      Perl_looks_like_number
-#define lshift_amg             Perl_lshift_amg
-#define lshift_ass_amg         Perl_lshift_ass_amg
-#define lt_amg                 Perl_lt_amg
 #define magic_clear_all_env    Perl_magic_clear_all_env
 #define magic_clearenv         Perl_magic_clearenv
 #define magic_clearpack                Perl_magic_clearpack
 #define mg_set                 Perl_mg_set
 #define mg_size                        Perl_mg_size
 #define mod                    Perl_mod
-#define mod_amg                        Perl_mod_amg
-#define mod_ass_amg            Perl_mod_ass_amg
 #define modkids                        Perl_modkids
 #define moreswitches           Perl_moreswitches
 #define mstats                 Perl_mstats
-#define mult_amg               Perl_mult_amg
-#define mult_ass_amg           Perl_mult_ass_amg
 #define my                     Perl_my
 #define my_bcopy               Perl_my_bcopy
 #define my_bzero               Perl_my_bzero
 #define my_stat                        Perl_my_stat
 #define my_swap                        Perl_my_swap
 #define my_unexec              Perl_my_unexec
-#define ncmp_amg               Perl_ncmp_amg
-#define ne_amg                 Perl_ne_amg
-#define neg_amg                        Perl_neg_amg
 #define newANONHASH            Perl_newANONHASH
 #define newANONLIST            Perl_newANONLIST
 #define newANONSUB             Perl_newANONSUB
 #define new_struct_thread      Perl_new_struct_thread
 #define nextargv               Perl_nextargv
 #define ninstr                 Perl_ninstr
-#define no_aelem               Perl_no_aelem
-#define no_dir_func            Perl_no_dir_func
 #define no_fh_allowed          Perl_no_fh_allowed
-#define no_func                        Perl_no_func
-#define no_helem               Perl_no_helem
-#define no_mem                 Perl_no_mem
-#define no_modify              Perl_no_modify
-#define no_myglob              Perl_no_myglob
 #define no_op                  Perl_no_op
-#define no_security            Perl_no_security
-#define no_sock_func           Perl_no_sock_func
-#define no_symref              Perl_no_symref
-#define no_usym                        Perl_no_usym
-#define no_wrongref            Perl_no_wrongref
-#define nointrp                        Perl_nointrp
-#define nomem                  Perl_nomem
-#define nomethod_amg           Perl_nomethod_amg
-#define not_amg                        Perl_not_amg
-#define numer_amg              Perl_numer_amg
 #define oopsAV                 Perl_oopsAV
 #define oopsCV                 Perl_oopsCV
 #define oopsHV                 Perl_oopsHV
 #define op_const_sv            Perl_op_const_sv
-#define op_desc                        Perl_op_desc
 #define op_free                        Perl_op_free
-#define op_name                        Perl_op_name
-#define opargs                 Perl_opargs
 #define package                        Perl_package
 #define pad_alloc              Perl_pad_alloc
 #define pad_allocmy            Perl_pad_allocmy
 #define pmtrans                        Perl_pmtrans
 #define pop_return             Perl_pop_return
 #define pop_scope              Perl_pop_scope
-#define pow_amg                        Perl_pow_amg
-#define pow_ass_amg            Perl_pow_ass_amg
 #define pp_aassign             Perl_pp_aassign
 #define pp_abs                 Perl_pp_abs
 #define pp_accept              Perl_pp_accept
 #define pp_const               Perl_pp_const
 #define pp_cos                 Perl_pp_cos
 #define pp_crypt               Perl_pp_crypt
-#define pp_cswitch             Perl_pp_cswitch
 #define pp_dbmclose            Perl_pp_dbmclose
 #define pp_dbmopen             Perl_pp_dbmopen
 #define pp_dbstate             Perl_pp_dbstate
 #define pp_enteriter           Perl_pp_enteriter
 #define pp_enterloop           Perl_pp_enterloop
 #define pp_entersub            Perl_pp_entersub
-#define pp_entersubr           Perl_pp_entersubr
 #define pp_entertry            Perl_pp_entertry
 #define pp_enterwrite          Perl_pp_enterwrite
 #define pp_eof                 Perl_pp_eof
 #define pp_epwent              Perl_pp_epwent
 #define pp_eq                  Perl_pp_eq
 #define pp_eservent            Perl_pp_eservent
-#define pp_evalonce            Perl_pp_evalonce
 #define pp_exec                        Perl_pp_exec
 #define pp_exists              Perl_pp_exists
 #define pp_exit                        Perl_pp_exit
 #define pp_i_subtract          Perl_pp_i_subtract
 #define pp_index               Perl_pp_index
 #define pp_int                 Perl_pp_int
-#define pp_interp              Perl_pp_interp
 #define pp_ioctl               Perl_pp_ioctl
 #define pp_iter                        Perl_pp_iter
 #define pp_join                        Perl_pp_join
 #define pp_lslice              Perl_pp_lslice
 #define pp_lstat               Perl_pp_lstat
 #define pp_lt                  Perl_pp_lt
-#define pp_map                 Perl_pp_map
 #define pp_mapstart            Perl_pp_mapstart
 #define pp_mapwhile            Perl_pp_mapwhile
 #define pp_match               Perl_pp_match
 #define pp_next                        Perl_pp_next
 #define pp_nextstate           Perl_pp_nextstate
 #define pp_not                 Perl_pp_not
-#define pp_nswitch             Perl_pp_nswitch
 #define pp_null                        Perl_pp_null
 #define pp_oct                 Perl_pp_oct
 #define pp_open                        Perl_pp_open
 #define pp_wantarray           Perl_pp_wantarray
 #define pp_warn                        Perl_pp_warn
 #define pp_xor                 Perl_pp_xor
-#define ppaddr                 Perl_ppaddr
 #define pregcomp               Perl_pregcomp
 #define pregexec               Perl_pregexec
 #define pregfree               Perl_pregfree
 #define prepend_elem           Perl_prepend_elem
-#define psig_name              Perl_psig_name
-#define psig_ptr               Perl_psig_ptr
 #define push_return            Perl_push_return
 #define push_scope             Perl_push_scope
-#define q                      Perl_q
-#define reall_srchlen          Perl_reall_srchlen
 #define ref                    Perl_ref
 #define refkids                        Perl_refkids
 #define regdump                        Perl_regdump
 #define regexec_flags          Perl_regexec_flags
-#define regkind                        Perl_regkind
 #define regnext                        Perl_regnext
 #define regprop                        Perl_regprop
-#define repeat_amg             Perl_repeat_amg
-#define repeat_ass_amg         Perl_repeat_ass_amg
 #define repeatcpy              Perl_repeatcpy
 #define rninstr                        Perl_rninstr
-#define rshift_amg             Perl_rshift_amg
-#define rshift_ass_amg         Perl_rshift_ass_amg
 #define rsignal                        Perl_rsignal
 #define rsignal_restore                Perl_rsignal_restore
 #define rsignal_save           Perl_rsignal_save
 #define savepv                 Perl_savepv
 #define savepvn                        Perl_savepvn
 #define savestack_grow         Perl_savestack_grow
-#define saw_return             Perl_saw_return
 #define sawparens              Perl_sawparens
 #define scalar                 Perl_scalar
 #define scalarkids             Perl_scalarkids
 #define scan_subst             Perl_scan_subst
 #define scan_trans             Perl_scan_trans
 #define scan_word              Perl_scan_word
-#define scmp_amg               Perl_scmp_amg
 #define scope                  Perl_scope
 #define screaminstr            Perl_screaminstr
-#define seq_amg                        Perl_seq_amg
 #define setdefout              Perl_setdefout
 #define setenv_getix           Perl_setenv_getix
-#define sge_amg                        Perl_sge_amg
-#define sgt_amg                        Perl_sgt_amg
 #define share_hek              Perl_share_hek
 #define sharepvn               Perl_sharepvn
-#define sig_name               Perl_sig_name
-#define sig_num                        Perl_sig_num
 #define sighandler             Perl_sighandler
-#define simple                 Perl_simple
-#define sin_amg                        Perl_sin_amg
 #define skipspace              Perl_skipspace
-#define sle_amg                        Perl_sle_amg
-#define slt_amg                        Perl_slt_amg
-#define sne_amg                        Perl_sne_amg
-#define sqrt_amg               Perl_sqrt_amg
 #define stack_grow             Perl_stack_grow
 #define start_subparse         Perl_start_subparse
-#define string_amg             Perl_string_amg
 #define sub_crush_depth                Perl_sub_crush_depth
-#define subtr_amg              Perl_subtr_amg
-#define subtr_ass_amg          Perl_subtr_ass_amg
 #define sv_2bool               Perl_sv_2bool
 #define sv_2cv                 Perl_sv_2cv
 #define sv_2io                 Perl_sv_2io
 #define utf8skip               Perl_utf8skip
 #define utilize                        Perl_utilize
 #define uv_to_utf8             Perl_uv_to_utf8
-#define varies                 Perl_varies
 #define vivify_defelem         Perl_vivify_defelem
 #define vivify_ref             Perl_vivify_ref
-#define vtbl_amagic            Perl_vtbl_amagic
-#define vtbl_amagicelem                Perl_vtbl_amagicelem
-#define vtbl_arylen            Perl_vtbl_arylen
-#define vtbl_bm                        Perl_vtbl_bm
-#define vtbl_collxfrm          Perl_vtbl_collxfrm
-#define vtbl_dbline            Perl_vtbl_dbline
-#define vtbl_defelem           Perl_vtbl_defelem
-#define vtbl_env               Perl_vtbl_env
-#define vtbl_envelem           Perl_vtbl_envelem
-#define vtbl_fm                        Perl_vtbl_fm
-#define vtbl_glob              Perl_vtbl_glob
-#define vtbl_isa               Perl_vtbl_isa
-#define vtbl_isaelem           Perl_vtbl_isaelem
-#define vtbl_mglob             Perl_vtbl_mglob
-#define vtbl_mutex             Perl_vtbl_mutex
-#define vtbl_nkeys             Perl_vtbl_nkeys
-#define vtbl_pack              Perl_vtbl_pack
-#define vtbl_packelem          Perl_vtbl_packelem
-#define vtbl_pos               Perl_vtbl_pos
-#define vtbl_regexp            Perl_vtbl_regexp
-#define vtbl_sig               Perl_vtbl_sig
-#define vtbl_sigelem           Perl_vtbl_sigelem
-#define vtbl_substr            Perl_vtbl_substr
-#define vtbl_sv                        Perl_vtbl_sv
-#define vtbl_taint             Perl_vtbl_taint
-#define vtbl_uvar              Perl_vtbl_uvar
-#define vtbl_vec               Perl_vtbl_vec
 #define wait4pid               Perl_wait4pid
 #define warn                   Perl_warn
-#define warn_nl                        Perl_warn_nl
-#define warn_nosemi            Perl_warn_nosemi
-#define warn_reserved          Perl_warn_reserved
-#define warn_uninit            Perl_warn_uninit
 #define warner                 Perl_warner
 #define watch                  Perl_watch
-#define watchaddr              Perl_watchaddr
-#define watchok                        Perl_watchok
 #define whichsig               Perl_whichsig
-#define yycheck                        Perl_yycheck
-#define yydefred               Perl_yydefred
 #define yydestruct             Perl_yydestruct
-#define yydgoto                        Perl_yydgoto
 #define yyerror                        Perl_yyerror
-#define yygindex               Perl_yygindex
-#define yylen                  Perl_yylen
 #define yylex                  Perl_yylex
-#define yylhs                  Perl_yylhs
-#define yyname                 Perl_yyname
 #define yyparse                        Perl_yyparse
-#define yyrindex               Perl_yyrindex
-#define yyrule                 Perl_yyrule
-#define yysindex               Perl_yysindex
-#define yytable                        Perl_yytable
 #define yywarn                 Perl_yywarn
 
-#endif /* EMBED */
+#else  /* PERL_OBJECT */
+
+#define Gv_AMupdate            CPerlObj::Perl_Gv_AMupdate
+#define add_data               CPerlObj::Perl_add_data
+#define amagic_call            CPerlObj::Perl_amagic_call
+#define amagic_cmp             CPerlObj::Perl_amagic_cmp
+#define amagic_cmp_locale      CPerlObj::Perl_amagic_cmp_locale
+#define ao                     CPerlObj::Perl_ao
+#define append_elem            CPerlObj::Perl_append_elem
+#define append_list            CPerlObj::Perl_append_list
+#define apply                  CPerlObj::Perl_apply
+#define asIV                   CPerlObj::Perl_asIV
+#define asUV                   CPerlObj::Perl_asUV
+#define assertref              CPerlObj::Perl_assertref
+#define av_clear               CPerlObj::Perl_av_clear
+#define av_extend              CPerlObj::Perl_av_extend
+#define av_fake                        CPerlObj::Perl_av_fake
+#define av_fetch               CPerlObj::Perl_av_fetch
+#define av_fill                        CPerlObj::Perl_av_fill
+#define av_len                 CPerlObj::Perl_av_len
+#define av_make                        CPerlObj::Perl_av_make
+#define av_pop                 CPerlObj::Perl_av_pop
+#define av_push                        CPerlObj::Perl_av_push
+#define av_reify               CPerlObj::Perl_av_reify
+#define av_shift               CPerlObj::Perl_av_shift
+#define av_store               CPerlObj::Perl_av_store
+#define av_undef               CPerlObj::Perl_av_undef
+#define av_unshift             CPerlObj::Perl_av_unshift
+#define avhv_exists_ent                CPerlObj::Perl_avhv_exists_ent
+#define avhv_fetch_ent         CPerlObj::Perl_avhv_fetch_ent
+#define avhv_index_sv          CPerlObj::Perl_avhv_index_sv
+#define avhv_iternext          CPerlObj::Perl_avhv_iternext
+#define avhv_iterval           CPerlObj::Perl_avhv_iterval
+#define avhv_keys              CPerlObj::Perl_avhv_keys
+#define bad_type               CPerlObj::Perl_bad_type
+#define bind_match             CPerlObj::Perl_bind_match
+#define block_end              CPerlObj::Perl_block_end
+#define block_gimme            CPerlObj::Perl_block_gimme
+#define block_start            CPerlObj::Perl_block_start
+#define boot_core_UNIVERSAL    CPerlObj::Perl_boot_core_UNIVERSAL
+#define bset_obj_store         CPerlObj::Perl_bset_obj_store
+#define bset_obj_store         CPerlObj::Perl_bset_obj_store
+#define byterun                        CPerlObj::Perl_byterun
+#define cache_re               CPerlObj::Perl_cache_re
+#define call_list              CPerlObj::Perl_call_list
+#define cando                  CPerlObj::Perl_cando
+#define cast_i32               CPerlObj::Perl_cast_i32
+#define cast_iv                        CPerlObj::Perl_cast_iv
+#define cast_ulong             CPerlObj::Perl_cast_ulong
+#define cast_uv                        CPerlObj::Perl_cast_uv
+#define check_uni              CPerlObj::Perl_check_uni
+#define check_uni              CPerlObj::Perl_check_uni
+#define checkcomma             CPerlObj::Perl_checkcomma
+#define checkcomma             CPerlObj::Perl_checkcomma
+#define ck_aelem               CPerlObj::Perl_ck_aelem
+#define ck_anoncode            CPerlObj::Perl_ck_anoncode
+#define ck_bitop               CPerlObj::Perl_ck_bitop
+#define ck_concat              CPerlObj::Perl_ck_concat
+#define ck_delete              CPerlObj::Perl_ck_delete
+#define ck_eof                 CPerlObj::Perl_ck_eof
+#define ck_eval                        CPerlObj::Perl_ck_eval
+#define ck_exec                        CPerlObj::Perl_ck_exec
+#define ck_exists              CPerlObj::Perl_ck_exists
+#define ck_ftst                        CPerlObj::Perl_ck_ftst
+#define ck_fun                 CPerlObj::Perl_ck_fun
+#define ck_fun_locale          CPerlObj::Perl_ck_fun_locale
+#define ck_glob                        CPerlObj::Perl_ck_glob
+#define ck_grep                        CPerlObj::Perl_ck_grep
+#define ck_index               CPerlObj::Perl_ck_index
+#define ck_lengthconst         CPerlObj::Perl_ck_lengthconst
+#define ck_lfun                        CPerlObj::Perl_ck_lfun
+#define ck_listiob             CPerlObj::Perl_ck_listiob
+#define ck_match               CPerlObj::Perl_ck_match
+#define ck_null                        CPerlObj::Perl_ck_null
+#define ck_repeat              CPerlObj::Perl_ck_repeat
+#define ck_require             CPerlObj::Perl_ck_require
+#define ck_rfun                        CPerlObj::Perl_ck_rfun
+#define ck_rvconst             CPerlObj::Perl_ck_rvconst
+#define ck_scmp                        CPerlObj::Perl_ck_scmp
+#define ck_select              CPerlObj::Perl_ck_select
+#define ck_shift               CPerlObj::Perl_ck_shift
+#define ck_sort                        CPerlObj::Perl_ck_sort
+#define ck_spair               CPerlObj::Perl_ck_spair
+#define ck_split               CPerlObj::Perl_ck_split
+#define ck_subr                        CPerlObj::Perl_ck_subr
+#define ck_svconst             CPerlObj::Perl_ck_svconst
+#define ck_trunc               CPerlObj::Perl_ck_trunc
+#define condpair_magic         CPerlObj::Perl_condpair_magic
+#define convert                        CPerlObj::Perl_convert
+#define croak                  CPerlObj::Perl_croak
+#define cv_ckproto             CPerlObj::Perl_cv_ckproto
+#define cv_clone               CPerlObj::Perl_cv_clone
+#define cv_clone2              CPerlObj::Perl_cv_clone2
+#define cv_const_sv            CPerlObj::Perl_cv_const_sv
+#define cv_undef               CPerlObj::Perl_cv_undef
+#define cx_dump                        CPerlObj::Perl_cx_dump
+#define cxinc                  CPerlObj::Perl_cxinc
+#define deb                    CPerlObj::Perl_deb
+#define deb_growlevel          CPerlObj::Perl_deb_growlevel
+#define debop                  CPerlObj::Perl_debop
+#define debprof                        CPerlObj::Perl_debprof
+#define debprofdump            CPerlObj::Perl_debprofdump
+#define debstack               CPerlObj::Perl_debstack
+#define debstackptrs           CPerlObj::Perl_debstackptrs
+#define del_he                 CPerlObj::Perl_del_he
+#define del_sv                 CPerlObj::Perl_del_sv
+#define del_xiv                        CPerlObj::Perl_del_xiv
+#define del_xnv                        CPerlObj::Perl_del_xnv
+#define del_xpv                        CPerlObj::Perl_del_xpv
+#define del_xrv                        CPerlObj::Perl_del_xrv
+#define delimcpy               CPerlObj::Perl_delimcpy
+#define depcom                 CPerlObj::Perl_depcom
+#define deprecate              CPerlObj::Perl_deprecate
+#define die                    CPerlObj::Perl_die
+#define die_where              CPerlObj::Perl_die_where
+#define div128                 CPerlObj::Perl_div128
+#define do_aexec               CPerlObj::Perl_do_aexec
+#define do_aspawn              CPerlObj::Perl_do_aspawn
+#define do_binmode             CPerlObj::Perl_do_binmode
+#define do_chomp               CPerlObj::Perl_do_chomp
+#define do_chop                        CPerlObj::Perl_do_chop
+#define do_clean_all           CPerlObj::Perl_do_clean_all
+#define do_clean_named_objs    CPerlObj::Perl_do_clean_named_objs
+#define do_clean_objs          CPerlObj::Perl_do_clean_objs
+#define do_close               CPerlObj::Perl_do_close
+#define do_eof                 CPerlObj::Perl_do_eof
+#define do_exec                        CPerlObj::Perl_do_exec
+#define do_execfree            CPerlObj::Perl_do_execfree
+#define do_ipcctl              CPerlObj::Perl_do_ipcctl
+#define do_ipcget              CPerlObj::Perl_do_ipcget
+#define do_join                        CPerlObj::Perl_do_join
+#define do_kv                  CPerlObj::Perl_do_kv
+#define do_msgrcv              CPerlObj::Perl_do_msgrcv
+#define do_msgsnd              CPerlObj::Perl_do_msgsnd
+#define do_open                        CPerlObj::Perl_do_open
+#define do_pipe                        CPerlObj::Perl_do_pipe
+#define do_print               CPerlObj::Perl_do_print
+#define do_readline            CPerlObj::Perl_do_readline
+#define do_report_used         CPerlObj::Perl_do_report_used
+#define do_seek                        CPerlObj::Perl_do_seek
+#define do_semop               CPerlObj::Perl_do_semop
+#define do_shmio               CPerlObj::Perl_do_shmio
+#define do_sprintf             CPerlObj::Perl_do_sprintf
+#define do_sysseek             CPerlObj::Perl_do_sysseek
+#define do_tell                        CPerlObj::Perl_do_tell
+#define do_trans               CPerlObj::Perl_do_trans
+#define do_trans_CC_complex    CPerlObj::Perl_do_trans_CC_complex
+#define do_trans_CC_count      CPerlObj::Perl_do_trans_CC_count
+#define do_trans_CC_simple     CPerlObj::Perl_do_trans_CC_simple
+#define do_trans_CU_simple     CPerlObj::Perl_do_trans_CU_simple
+#define do_trans_CU_trivial    CPerlObj::Perl_do_trans_CU_trivial
+#define do_trans_UC_simple     CPerlObj::Perl_do_trans_UC_simple
+#define do_trans_UC_trivial    CPerlObj::Perl_do_trans_UC_trivial
+#define do_trans_UU_complex    CPerlObj::Perl_do_trans_UU_complex
+#define do_trans_UU_count      CPerlObj::Perl_do_trans_UU_count
+#define do_trans_UU_simple     CPerlObj::Perl_do_trans_UU_simple
+#define do_vecset              CPerlObj::Perl_do_vecset
+#define do_vop                 CPerlObj::Perl_do_vop
+#define docatch                        CPerlObj::Perl_docatch
+#define doencodes              CPerlObj::Perl_doencodes
+#define doeval                 CPerlObj::Perl_doeval
+#define dofile                 CPerlObj::Perl_dofile
+#define dofindlabel            CPerlObj::Perl_dofindlabel
+#define dofindlabel            CPerlObj::Perl_dofindlabel
+#define doform                 CPerlObj::Perl_doform
+#define doparseform            CPerlObj::Perl_doparseform
+#define dopoptoeval            CPerlObj::Perl_dopoptoeval
+#define dopoptoeval            CPerlObj::Perl_dopoptoeval
+#define dopoptolabel           CPerlObj::Perl_dopoptolabel
+#define dopoptoloop            CPerlObj::Perl_dopoptoloop
+#define dopoptosub             CPerlObj::Perl_dopoptosub
+#define dopoptosub_at          CPerlObj::Perl_dopoptosub_at
+#define dounwind               CPerlObj::Perl_dounwind
+#define dowantarray            CPerlObj::Perl_dowantarray
+#define dump                   CPerlObj::Perl_dump
+#define dump_all               CPerlObj::Perl_dump_all
+#define dump_eval              CPerlObj::Perl_dump_eval
+#define dump_fds               CPerlObj::Perl_dump_fds
+#define dump_form              CPerlObj::Perl_dump_form
+#define dump_gv                        CPerlObj::Perl_dump_gv
+#define dump_mstats            CPerlObj::Perl_dump_mstats
+#define dump_op                        CPerlObj::Perl_dump_op
+#define dump_packsubs          CPerlObj::Perl_dump_packsubs
+#define dump_pm                        CPerlObj::Perl_dump_pm
+#define dump_sub               CPerlObj::Perl_dump_sub
+#define dumpuntil              CPerlObj::Perl_dumpuntil
+#define emulate_eaccess                CPerlObj::Perl_emulate_eaccess
+#define fbm_compile            CPerlObj::Perl_fbm_compile
+#define fbm_instr              CPerlObj::Perl_fbm_instr
+#define fetch_gv               CPerlObj::Perl_fetch_gv
+#define fetch_io               CPerlObj::Perl_fetch_io
+#define filter_add             CPerlObj::Perl_filter_add
+#define filter_del             CPerlObj::Perl_filter_del
+#define filter_gets            CPerlObj::Perl_filter_gets
+#define filter_read            CPerlObj::Perl_filter_read
+#define find_beginning         CPerlObj::Perl_find_beginning
+#define find_script            CPerlObj::Perl_find_script
+#define find_threadsv          CPerlObj::Perl_find_threadsv
+#define fold_constants         CPerlObj::Perl_fold_constants
+#define forbid_setid           CPerlObj::Perl_forbid_setid
+#define force_ident            CPerlObj::Perl_force_ident
+#define force_ident            CPerlObj::Perl_force_ident
+#define force_list             CPerlObj::Perl_force_list
+#define force_next             CPerlObj::Perl_force_next
+#define force_next             CPerlObj::Perl_force_next
+#define force_version          CPerlObj::Perl_force_version
+#define force_word             CPerlObj::Perl_force_word
+#define force_word             CPerlObj::Perl_force_word
+#define form                   CPerlObj::Perl_form
+#define fprintf                        CPerlObj::Perl_fprintf
+#define free_tmps              CPerlObj::Perl_free_tmps
+#define gen_constant_list      CPerlObj::Perl_gen_constant_list
+#define get_db_sub             CPerlObj::Perl_get_db_sub
+#define get_no_modify          CPerlObj::Perl_get_no_modify
+#define get_op_descs           CPerlObj::Perl_get_op_descs
+#define get_op_names           CPerlObj::Perl_get_op_names
+#define get_opargs             CPerlObj::Perl_get_opargs
+#define get_specialsv_list     CPerlObj::Perl_get_specialsv_list
+#define gp_free                        CPerlObj::Perl_gp_free
+#define gp_ref                 CPerlObj::Perl_gp_ref
+#define gv_AVadd               CPerlObj::Perl_gv_AVadd
+#define gv_HVadd               CPerlObj::Perl_gv_HVadd
+#define gv_IOadd               CPerlObj::Perl_gv_IOadd
+#define gv_autoload4           CPerlObj::Perl_gv_autoload4
+#define gv_check               CPerlObj::Perl_gv_check
+#define gv_efullname           CPerlObj::Perl_gv_efullname
+#define gv_efullname3          CPerlObj::Perl_gv_efullname3
+#define gv_ename               CPerlObj::Perl_gv_ename
+#define gv_fetchfile           CPerlObj::Perl_gv_fetchfile
+#define gv_fetchmeth           CPerlObj::Perl_gv_fetchmeth
+#define gv_fetchmethod         CPerlObj::Perl_gv_fetchmethod
+#define gv_fetchmethod_autoload        CPerlObj::Perl_gv_fetchmethod_autoload
+#define gv_fetchpv             CPerlObj::Perl_gv_fetchpv
+#define gv_fullname            CPerlObj::Perl_gv_fullname
+#define gv_fullname3           CPerlObj::Perl_gv_fullname3
+#define gv_init                        CPerlObj::Perl_gv_init
+#define gv_init_sv             CPerlObj::Perl_gv_init_sv
+#define gv_stashpv             CPerlObj::Perl_gv_stashpv
+#define gv_stashpvn            CPerlObj::Perl_gv_stashpvn
+#define gv_stashsv             CPerlObj::Perl_gv_stashsv
+#define hfreeentries           CPerlObj::Perl_hfreeentries
+#define hsplit                 CPerlObj::Perl_hsplit
+#define hv_clear               CPerlObj::Perl_hv_clear
+#define hv_delayfree_ent       CPerlObj::Perl_hv_delayfree_ent
+#define hv_delete              CPerlObj::Perl_hv_delete
+#define hv_delete_ent          CPerlObj::Perl_hv_delete_ent
+#define hv_exists              CPerlObj::Perl_hv_exists
+#define hv_exists_ent          CPerlObj::Perl_hv_exists_ent
+#define hv_fetch               CPerlObj::Perl_hv_fetch
+#define hv_fetch_ent           CPerlObj::Perl_hv_fetch_ent
+#define hv_free_ent            CPerlObj::Perl_hv_free_ent
+#define hv_iterinit            CPerlObj::Perl_hv_iterinit
+#define hv_iterkey             CPerlObj::Perl_hv_iterkey
+#define hv_iterkeysv           CPerlObj::Perl_hv_iterkeysv
+#define hv_iternext            CPerlObj::Perl_hv_iternext
+#define hv_iternextsv          CPerlObj::Perl_hv_iternextsv
+#define hv_iterval             CPerlObj::Perl_hv_iterval
+#define hv_ksplit              CPerlObj::Perl_hv_ksplit
+#define hv_magic               CPerlObj::Perl_hv_magic
+#define hv_stashpv             CPerlObj::Perl_hv_stashpv
+#define hv_store               CPerlObj::Perl_hv_store
+#define hv_store_ent           CPerlObj::Perl_hv_store_ent
+#define hv_undef               CPerlObj::Perl_hv_undef
+#define ibcmp                  CPerlObj::Perl_ibcmp
+#define ibcmp_locale           CPerlObj::Perl_ibcmp_locale
+#define incl_perldb            CPerlObj::Perl_incl_perldb
+#define incline                        CPerlObj::Perl_incline
+#define incpush                        CPerlObj::Perl_incpush
+#define ingroup                        CPerlObj::Perl_ingroup
+#define init_debugger          CPerlObj::Perl_init_debugger
+#define init_ids               CPerlObj::Perl_init_ids
+#define init_interp            CPerlObj::Perl_init_interp
+#define init_lexer             CPerlObj::Perl_init_lexer
+#define init_main_stash                CPerlObj::Perl_init_main_stash
+#define init_perllib           CPerlObj::Perl_init_perllib
+#define init_postdump_symbols  CPerlObj::Perl_init_postdump_symbols
+#define init_predump_symbols   CPerlObj::Perl_init_predump_symbols
+#define init_stacks            CPerlObj::Perl_init_stacks
+#define init_thread_intern     CPerlObj::Perl_init_thread_intern
+#define instr                  CPerlObj::Perl_instr
+#define intro_my               CPerlObj::Perl_intro_my
+#define intuit_method          CPerlObj::Perl_intuit_method
+#define intuit_more            CPerlObj::Perl_intuit_more
+#define intuit_more            CPerlObj::Perl_intuit_more
+#define invert                 CPerlObj::Perl_invert
+#define io_close               CPerlObj::Perl_io_close
+#define is_an_int              CPerlObj::Perl_is_an_int
+#define is_uni_alnum           CPerlObj::Perl_is_uni_alnum
+#define is_uni_alnum_lc                CPerlObj::Perl_is_uni_alnum_lc
+#define is_uni_alpha           CPerlObj::Perl_is_uni_alpha
+#define is_uni_alpha_lc                CPerlObj::Perl_is_uni_alpha_lc
+#define is_uni_digit           CPerlObj::Perl_is_uni_digit
+#define is_uni_digit_lc                CPerlObj::Perl_is_uni_digit_lc
+#define is_uni_idfirst         CPerlObj::Perl_is_uni_idfirst
+#define is_uni_idfirst_lc      CPerlObj::Perl_is_uni_idfirst_lc
+#define is_uni_lower           CPerlObj::Perl_is_uni_lower
+#define is_uni_lower_lc                CPerlObj::Perl_is_uni_lower_lc
+#define is_uni_print           CPerlObj::Perl_is_uni_print
+#define is_uni_print_lc                CPerlObj::Perl_is_uni_print_lc
+#define is_uni_space           CPerlObj::Perl_is_uni_space
+#define is_uni_space_lc                CPerlObj::Perl_is_uni_space_lc
+#define is_uni_upper           CPerlObj::Perl_is_uni_upper
+#define is_uni_upper_lc                CPerlObj::Perl_is_uni_upper_lc
+#define is_utf8_alnum          CPerlObj::Perl_is_utf8_alnum
+#define is_utf8_alpha          CPerlObj::Perl_is_utf8_alpha
+#define is_utf8_digit          CPerlObj::Perl_is_utf8_digit
+#define is_utf8_idfirst                CPerlObj::Perl_is_utf8_idfirst
+#define is_utf8_lower          CPerlObj::Perl_is_utf8_lower
+#define is_utf8_mark           CPerlObj::Perl_is_utf8_mark
+#define is_utf8_print          CPerlObj::Perl_is_utf8_print
+#define is_utf8_space          CPerlObj::Perl_is_utf8_space
+#define is_utf8_upper          CPerlObj::Perl_is_utf8_upper
+#define isa_lookup             CPerlObj::Perl_isa_lookup
+#define jmaybe                 CPerlObj::Perl_jmaybe
+#define keyword                        CPerlObj::Perl_keyword
+#define leave_scope            CPerlObj::Perl_leave_scope
+#define lex_end                        CPerlObj::Perl_lex_end
+#define lex_start              CPerlObj::Perl_lex_start
+#define linklist               CPerlObj::Perl_linklist
+#define list                   CPerlObj::Perl_list
+#define list_assignment                CPerlObj::Perl_list_assignment
+#define listkids               CPerlObj::Perl_listkids
+#define localize               CPerlObj::Perl_localize
+#define looks_like_number      CPerlObj::Perl_looks_like_number
+#define lop                    CPerlObj::Perl_lop
+#define magic_clear_all_env    CPerlObj::Perl_magic_clear_all_env
+#define magic_clearenv         CPerlObj::Perl_magic_clearenv
+#define magic_clearpack                CPerlObj::Perl_magic_clearpack
+#define magic_clearsig         CPerlObj::Perl_magic_clearsig
+#define magic_existspack       CPerlObj::Perl_magic_existspack
+#define magic_freeregexp       CPerlObj::Perl_magic_freeregexp
+#define magic_get              CPerlObj::Perl_magic_get
+#define magic_getarylen                CPerlObj::Perl_magic_getarylen
+#define magic_getdefelem       CPerlObj::Perl_magic_getdefelem
+#define magic_getglob          CPerlObj::Perl_magic_getglob
+#define magic_getnkeys         CPerlObj::Perl_magic_getnkeys
+#define magic_getpack          CPerlObj::Perl_magic_getpack
+#define magic_getpos           CPerlObj::Perl_magic_getpos
+#define magic_getsig           CPerlObj::Perl_magic_getsig
+#define magic_getsubstr                CPerlObj::Perl_magic_getsubstr
+#define magic_gettaint         CPerlObj::Perl_magic_gettaint
+#define magic_getuvar          CPerlObj::Perl_magic_getuvar
+#define magic_getvec           CPerlObj::Perl_magic_getvec
+#define magic_len              CPerlObj::Perl_magic_len
+#define magic_methcall         CPerlObj::Perl_magic_methcall
+#define magic_methcall         CPerlObj::Perl_magic_methcall
+#define magic_methpack         CPerlObj::Perl_magic_methpack
+#define magic_mutexfree                CPerlObj::Perl_magic_mutexfree
+#define magic_nextpack         CPerlObj::Perl_magic_nextpack
+#define magic_regdata_cnt      CPerlObj::Perl_magic_regdata_cnt
+#define magic_regdatum_get     CPerlObj::Perl_magic_regdatum_get
+#define magic_set              CPerlObj::Perl_magic_set
+#define magic_set_all_env      CPerlObj::Perl_magic_set_all_env
+#define magic_setamagic                CPerlObj::Perl_magic_setamagic
+#define magic_setarylen                CPerlObj::Perl_magic_setarylen
+#define magic_setbm            CPerlObj::Perl_magic_setbm
+#define magic_setcollxfrm      CPerlObj::Perl_magic_setcollxfrm
+#define magic_setdbline                CPerlObj::Perl_magic_setdbline
+#define magic_setdefelem       CPerlObj::Perl_magic_setdefelem
+#define magic_setenv           CPerlObj::Perl_magic_setenv
+#define magic_setfm            CPerlObj::Perl_magic_setfm
+#define magic_setglob          CPerlObj::Perl_magic_setglob
+#define magic_setisa           CPerlObj::Perl_magic_setisa
+#define magic_setmglob         CPerlObj::Perl_magic_setmglob
+#define magic_setnkeys         CPerlObj::Perl_magic_setnkeys
+#define magic_setpack          CPerlObj::Perl_magic_setpack
+#define magic_setpos           CPerlObj::Perl_magic_setpos
+#define magic_setsig           CPerlObj::Perl_magic_setsig
+#define magic_setsubstr                CPerlObj::Perl_magic_setsubstr
+#define magic_settaint         CPerlObj::Perl_magic_settaint
+#define magic_setuvar          CPerlObj::Perl_magic_setuvar
+#define magic_setvec           CPerlObj::Perl_magic_setvec
+#define magic_sizepack         CPerlObj::Perl_magic_sizepack
+#define magic_wipepack         CPerlObj::Perl_magic_wipepack
+#define magicname              CPerlObj::Perl_magicname
+#define malloced_size          CPerlObj::Perl_malloced_size
+#define markstack_grow         CPerlObj::Perl_markstack_grow
+#define mem_collxfrm           CPerlObj::Perl_mem_collxfrm
+#define mess                   CPerlObj::Perl_mess
+#define mess_alloc             CPerlObj::Perl_mess_alloc
+#define mg_clear               CPerlObj::Perl_mg_clear
+#define mg_copy                        CPerlObj::Perl_mg_copy
+#define mg_find                        CPerlObj::Perl_mg_find
+#define mg_free                        CPerlObj::Perl_mg_free
+#define mg_get                 CPerlObj::Perl_mg_get
+#define mg_length              CPerlObj::Perl_mg_length
+#define mg_magical             CPerlObj::Perl_mg_magical
+#define mg_set                 CPerlObj::Perl_mg_set
+#define mg_size                        CPerlObj::Perl_mg_size
+#define missingterm            CPerlObj::Perl_missingterm
+#define mod                    CPerlObj::Perl_mod
+#define modkids                        CPerlObj::Perl_modkids
+#define modkids                        CPerlObj::Perl_modkids
+#define more_he                        CPerlObj::Perl_more_he
+#define more_sv                        CPerlObj::Perl_more_sv
+#define more_xiv               CPerlObj::Perl_more_xiv
+#define more_xnv               CPerlObj::Perl_more_xnv
+#define more_xpv               CPerlObj::Perl_more_xpv
+#define more_xrv               CPerlObj::Perl_more_xrv
+#define moreswitches           CPerlObj::Perl_moreswitches
+#define mstats                 CPerlObj::Perl_mstats
+#define mul128                 CPerlObj::Perl_mul128
+#define my                     CPerlObj::Perl_my
+#define my_bcopy               CPerlObj::Perl_my_bcopy
+#define my_bzero               CPerlObj::Perl_my_bzero
+#define my_chsize              CPerlObj::Perl_my_chsize
+#define my_exit                        CPerlObj::Perl_my_exit
+#define my_exit_jump           CPerlObj::Perl_my_exit_jump
+#define my_failure_exit                CPerlObj::Perl_my_failure_exit
+#define my_htonl               CPerlObj::Perl_my_htonl
+#define my_lstat               CPerlObj::Perl_my_lstat
+#define my_memcmp              CPerlObj::Perl_my_memcmp
+#define my_memset              CPerlObj::Perl_my_memset
+#define my_ntohl               CPerlObj::Perl_my_ntohl
+#define my_pclose              CPerlObj::Perl_my_pclose
+#define my_popen               CPerlObj::Perl_my_popen
+#define my_safemalloc          CPerlObj::Perl_my_safemalloc
+#define my_setenv              CPerlObj::Perl_my_setenv
+#define my_stat                        CPerlObj::Perl_my_stat
+#define my_swap                        CPerlObj::Perl_my_swap
+#define my_unexec              CPerlObj::Perl_my_unexec
+#define newANONHASH            CPerlObj::Perl_newANONHASH
+#define newANONLIST            CPerlObj::Perl_newANONLIST
+#define newANONSUB             CPerlObj::Perl_newANONSUB
+#define newASSIGNOP            CPerlObj::Perl_newASSIGNOP
+#define newAV                  CPerlObj::Perl_newAV
+#define newAVREF               CPerlObj::Perl_newAVREF
+#define newBINOP               CPerlObj::Perl_newBINOP
+#define newCONDOP              CPerlObj::Perl_newCONDOP
+#define newCONSTSUB            CPerlObj::Perl_newCONSTSUB
+#define newCVREF               CPerlObj::Perl_newCVREF
+#define newDEFSVOP             CPerlObj::Perl_newDEFSVOP
+#define newFORM                        CPerlObj::Perl_newFORM
+#define newFOROP               CPerlObj::Perl_newFOROP
+#define newGVOP                        CPerlObj::Perl_newGVOP
+#define newGVREF               CPerlObj::Perl_newGVREF
+#define newGVgen               CPerlObj::Perl_newGVgen
+#define newHV                  CPerlObj::Perl_newHV
+#define newHVREF               CPerlObj::Perl_newHVREF
+#define newHVhv                        CPerlObj::Perl_newHVhv
+#define newIO                  CPerlObj::Perl_newIO
+#define newLISTOP              CPerlObj::Perl_newLISTOP
+#define newLOGOP               CPerlObj::Perl_newLOGOP
+#define newLOOPEX              CPerlObj::Perl_newLOOPEX
+#define newLOOPOP              CPerlObj::Perl_newLOOPOP
+#define newNULLLIST            CPerlObj::Perl_newNULLLIST
+#define newOP                  CPerlObj::Perl_newOP
+#define newPMOP                        CPerlObj::Perl_newPMOP
+#define newPROG                        CPerlObj::Perl_newPROG
+#define newPVOP                        CPerlObj::Perl_newPVOP
+#define newRANGE               CPerlObj::Perl_newRANGE
+#define newRV                  CPerlObj::Perl_newRV
+#define newRV_noinc            CPerlObj::Perl_newRV_noinc
+#define newSLICEOP             CPerlObj::Perl_newSLICEOP
+#define newSTATEOP             CPerlObj::Perl_newSTATEOP
+#define newSUB                 CPerlObj::Perl_newSUB
+#define newSV                  CPerlObj::Perl_newSV
+#define newSVOP                        CPerlObj::Perl_newSVOP
+#define newSVREF               CPerlObj::Perl_newSVREF
+#define newSViv                        CPerlObj::Perl_newSViv
+#define newSVnv                        CPerlObj::Perl_newSVnv
+#define newSVpv                        CPerlObj::Perl_newSVpv
+#define newSVpvf               CPerlObj::Perl_newSVpvf
+#define newSVpvn               CPerlObj::Perl_newSVpvn
+#define newSVrv                        CPerlObj::Perl_newSVrv
+#define newSVsv                        CPerlObj::Perl_newSVsv
+#define newUNOP                        CPerlObj::Perl_newUNOP
+#define newWHILEOP             CPerlObj::Perl_newWHILEOP
+#define newXS                  CPerlObj::Perl_newXS
+#define newXSUB                        CPerlObj::Perl_newXSUB
+#define new_constant           CPerlObj::Perl_new_constant
+#define new_he                 CPerlObj::Perl_new_he
+#define new_logop              CPerlObj::Perl_new_logop
+#define new_stackinfo          CPerlObj::Perl_new_stackinfo
+#define new_struct_thread      CPerlObj::Perl_new_struct_thread
+#define new_xiv                        CPerlObj::Perl_new_xiv
+#define new_xnv                        CPerlObj::Perl_new_xnv
+#define new_xpv                        CPerlObj::Perl_new_xpv
+#define new_xrv                        CPerlObj::Perl_new_xrv
+#define nextargv               CPerlObj::Perl_nextargv
+#define nextchar               CPerlObj::Perl_nextchar
+#define ninstr                 CPerlObj::Perl_ninstr
+#define no_fh_allowed          CPerlObj::Perl_no_fh_allowed
+#define no_fh_allowed          CPerlObj::Perl_no_fh_allowed
+#define no_op                  CPerlObj::Perl_no_op
+#define no_op                  CPerlObj::Perl_no_op
+#define not_a_number           CPerlObj::Perl_not_a_number
+#define nuke_stacks            CPerlObj::Perl_nuke_stacks
+#define null                   CPerlObj::Perl_null
+#define oopsAV                 CPerlObj::Perl_oopsAV
+#define oopsCV                 CPerlObj::Perl_oopsCV
+#define oopsHV                 CPerlObj::Perl_oopsHV
+#define op_const_sv            CPerlObj::Perl_op_const_sv
+#define op_free                        CPerlObj::Perl_op_free
+#define open_script            CPerlObj::Perl_open_script
+#define package                        CPerlObj::Perl_package
+#define pad_alloc              CPerlObj::Perl_pad_alloc
+#define pad_allocmy            CPerlObj::Perl_pad_allocmy
+#define pad_findlex            CPerlObj::Perl_pad_findlex
+#define pad_findmy             CPerlObj::Perl_pad_findmy
+#define pad_free               CPerlObj::Perl_pad_free
+#define pad_leavemy            CPerlObj::Perl_pad_leavemy
+#define pad_reset              CPerlObj::Perl_pad_reset
+#define pad_sv                 CPerlObj::Perl_pad_sv
+#define pad_swipe              CPerlObj::Perl_pad_swipe
+#define peep                   CPerlObj::Perl_peep
+#define perl_atexit            CPerlObj::perl_atexit
+#define perl_call_argv         CPerlObj::perl_call_argv
+#define perl_call_method       CPerlObj::perl_call_method
+#define perl_call_pv           CPerlObj::perl_call_pv
+#define perl_call_sv           CPerlObj::perl_call_sv
+#define perl_construct         CPerlObj::perl_construct
+#define perl_destruct          CPerlObj::perl_destruct
+#define perl_eval_pv           CPerlObj::perl_eval_pv
+#define perl_eval_sv           CPerlObj::perl_eval_sv
+#define perl_free              CPerlObj::perl_free
+#define perl_get_av            CPerlObj::perl_get_av
+#define perl_get_cv            CPerlObj::perl_get_cv
+#define perl_get_hv            CPerlObj::perl_get_hv
+#define perl_get_sv            CPerlObj::perl_get_sv
+#define perl_init_i18nl10n     CPerlObj::perl_init_i18nl10n
+#define perl_init_i18nl14n     CPerlObj::perl_init_i18nl14n
+#define perl_new_collate       CPerlObj::perl_new_collate
+#define perl_new_ctype         CPerlObj::perl_new_ctype
+#define perl_new_numeric       CPerlObj::perl_new_numeric
+#define perl_parse             CPerlObj::perl_parse
+#define perl_require_pv                CPerlObj::perl_require_pv
+#define perl_run               CPerlObj::perl_run
+#define perl_set_numeric_local CPerlObj::perl_set_numeric_local
+#define perl_set_numeric_standard      CPerlObj::perl_set_numeric_standard
+#define pidgone                        CPerlObj::Perl_pidgone
+#define pmflag                 CPerlObj::Perl_pmflag
+#define pmruntime              CPerlObj::Perl_pmruntime
+#define pmtrans                        CPerlObj::Perl_pmtrans
+#define pop_return             CPerlObj::Perl_pop_return
+#define pop_scope              CPerlObj::Perl_pop_scope
+#define pp_aassign             CPerlObj::Perl_pp_aassign
+#define pp_abs                 CPerlObj::Perl_pp_abs
+#define pp_accept              CPerlObj::Perl_pp_accept
+#define pp_add                 CPerlObj::Perl_pp_add
+#define pp_aelem               CPerlObj::Perl_pp_aelem
+#define pp_aelemfast           CPerlObj::Perl_pp_aelemfast
+#define pp_alarm               CPerlObj::Perl_pp_alarm
+#define pp_and                 CPerlObj::Perl_pp_and
+#define pp_andassign           CPerlObj::Perl_pp_andassign
+#define pp_anoncode            CPerlObj::Perl_pp_anoncode
+#define pp_anonhash            CPerlObj::Perl_pp_anonhash
+#define pp_anonlist            CPerlObj::Perl_pp_anonlist
+#define pp_aslice              CPerlObj::Perl_pp_aslice
+#define pp_atan2               CPerlObj::Perl_pp_atan2
+#define pp_av2arylen           CPerlObj::Perl_pp_av2arylen
+#define pp_backtick            CPerlObj::Perl_pp_backtick
+#define pp_bind                        CPerlObj::Perl_pp_bind
+#define pp_binmode             CPerlObj::Perl_pp_binmode
+#define pp_bit_and             CPerlObj::Perl_pp_bit_and
+#define pp_bit_or              CPerlObj::Perl_pp_bit_or
+#define pp_bit_xor             CPerlObj::Perl_pp_bit_xor
+#define pp_bless               CPerlObj::Perl_pp_bless
+#define pp_caller              CPerlObj::Perl_pp_caller
+#define pp_chdir               CPerlObj::Perl_pp_chdir
+#define pp_chmod               CPerlObj::Perl_pp_chmod
+#define pp_chomp               CPerlObj::Perl_pp_chomp
+#define pp_chop                        CPerlObj::Perl_pp_chop
+#define pp_chown               CPerlObj::Perl_pp_chown
+#define pp_chr                 CPerlObj::Perl_pp_chr
+#define pp_chroot              CPerlObj::Perl_pp_chroot
+#define pp_close               CPerlObj::Perl_pp_close
+#define pp_closedir            CPerlObj::Perl_pp_closedir
+#define pp_complement          CPerlObj::Perl_pp_complement
+#define pp_concat              CPerlObj::Perl_pp_concat
+#define pp_cond_expr           CPerlObj::Perl_pp_cond_expr
+#define pp_connect             CPerlObj::Perl_pp_connect
+#define pp_const               CPerlObj::Perl_pp_const
+#define pp_cos                 CPerlObj::Perl_pp_cos
+#define pp_crypt               CPerlObj::Perl_pp_crypt
+#define pp_dbmclose            CPerlObj::Perl_pp_dbmclose
+#define pp_dbmopen             CPerlObj::Perl_pp_dbmopen
+#define pp_dbstate             CPerlObj::Perl_pp_dbstate
+#define pp_defined             CPerlObj::Perl_pp_defined
+#define pp_delete              CPerlObj::Perl_pp_delete
+#define pp_die                 CPerlObj::Perl_pp_die
+#define pp_divide              CPerlObj::Perl_pp_divide
+#define pp_dofile              CPerlObj::Perl_pp_dofile
+#define pp_dump                        CPerlObj::Perl_pp_dump
+#define pp_each                        CPerlObj::Perl_pp_each
+#define pp_egrent              CPerlObj::Perl_pp_egrent
+#define pp_ehostent            CPerlObj::Perl_pp_ehostent
+#define pp_enetent             CPerlObj::Perl_pp_enetent
+#define pp_enter               CPerlObj::Perl_pp_enter
+#define pp_entereval           CPerlObj::Perl_pp_entereval
+#define pp_enteriter           CPerlObj::Perl_pp_enteriter
+#define pp_enterloop           CPerlObj::Perl_pp_enterloop
+#define pp_entersub            CPerlObj::Perl_pp_entersub
+#define pp_entertry            CPerlObj::Perl_pp_entertry
+#define pp_enterwrite          CPerlObj::Perl_pp_enterwrite
+#define pp_eof                 CPerlObj::Perl_pp_eof
+#define pp_eprotoent           CPerlObj::Perl_pp_eprotoent
+#define pp_epwent              CPerlObj::Perl_pp_epwent
+#define pp_eq                  CPerlObj::Perl_pp_eq
+#define pp_eservent            CPerlObj::Perl_pp_eservent
+#define pp_exec                        CPerlObj::Perl_pp_exec
+#define pp_exists              CPerlObj::Perl_pp_exists
+#define pp_exit                        CPerlObj::Perl_pp_exit
+#define pp_exp                 CPerlObj::Perl_pp_exp
+#define pp_fcntl               CPerlObj::Perl_pp_fcntl
+#define pp_fileno              CPerlObj::Perl_pp_fileno
+#define pp_flip                        CPerlObj::Perl_pp_flip
+#define pp_flock               CPerlObj::Perl_pp_flock
+#define pp_flop                        CPerlObj::Perl_pp_flop
+#define pp_fork                        CPerlObj::Perl_pp_fork
+#define pp_formline            CPerlObj::Perl_pp_formline
+#define pp_ftatime             CPerlObj::Perl_pp_ftatime
+#define pp_ftbinary            CPerlObj::Perl_pp_ftbinary
+#define pp_ftblk               CPerlObj::Perl_pp_ftblk
+#define pp_ftchr               CPerlObj::Perl_pp_ftchr
+#define pp_ftctime             CPerlObj::Perl_pp_ftctime
+#define pp_ftdir               CPerlObj::Perl_pp_ftdir
+#define pp_fteexec             CPerlObj::Perl_pp_fteexec
+#define pp_fteowned            CPerlObj::Perl_pp_fteowned
+#define pp_fteread             CPerlObj::Perl_pp_fteread
+#define pp_ftewrite            CPerlObj::Perl_pp_ftewrite
+#define pp_ftfile              CPerlObj::Perl_pp_ftfile
+#define pp_ftis                        CPerlObj::Perl_pp_ftis
+#define pp_ftlink              CPerlObj::Perl_pp_ftlink
+#define pp_ftmtime             CPerlObj::Perl_pp_ftmtime
+#define pp_ftpipe              CPerlObj::Perl_pp_ftpipe
+#define pp_ftrexec             CPerlObj::Perl_pp_ftrexec
+#define pp_ftrowned            CPerlObj::Perl_pp_ftrowned
+#define pp_ftrread             CPerlObj::Perl_pp_ftrread
+#define pp_ftrwrite            CPerlObj::Perl_pp_ftrwrite
+#define pp_ftsgid              CPerlObj::Perl_pp_ftsgid
+#define pp_ftsize              CPerlObj::Perl_pp_ftsize
+#define pp_ftsock              CPerlObj::Perl_pp_ftsock
+#define pp_ftsuid              CPerlObj::Perl_pp_ftsuid
+#define pp_ftsvtx              CPerlObj::Perl_pp_ftsvtx
+#define pp_fttext              CPerlObj::Perl_pp_fttext
+#define pp_fttty               CPerlObj::Perl_pp_fttty
+#define pp_ftzero              CPerlObj::Perl_pp_ftzero
+#define pp_ge                  CPerlObj::Perl_pp_ge
+#define pp_gelem               CPerlObj::Perl_pp_gelem
+#define pp_getc                        CPerlObj::Perl_pp_getc
+#define pp_getlogin            CPerlObj::Perl_pp_getlogin
+#define pp_getpeername         CPerlObj::Perl_pp_getpeername
+#define pp_getpgrp             CPerlObj::Perl_pp_getpgrp
+#define pp_getppid             CPerlObj::Perl_pp_getppid
+#define pp_getpriority         CPerlObj::Perl_pp_getpriority
+#define pp_getsockname         CPerlObj::Perl_pp_getsockname
+#define pp_ggrent              CPerlObj::Perl_pp_ggrent
+#define pp_ggrgid              CPerlObj::Perl_pp_ggrgid
+#define pp_ggrnam              CPerlObj::Perl_pp_ggrnam
+#define pp_ghbyaddr            CPerlObj::Perl_pp_ghbyaddr
+#define pp_ghbyname            CPerlObj::Perl_pp_ghbyname
+#define pp_ghostent            CPerlObj::Perl_pp_ghostent
+#define pp_glob                        CPerlObj::Perl_pp_glob
+#define pp_gmtime              CPerlObj::Perl_pp_gmtime
+#define pp_gnbyaddr            CPerlObj::Perl_pp_gnbyaddr
+#define pp_gnbyname            CPerlObj::Perl_pp_gnbyname
+#define pp_gnetent             CPerlObj::Perl_pp_gnetent
+#define pp_goto                        CPerlObj::Perl_pp_goto
+#define pp_gpbyname            CPerlObj::Perl_pp_gpbyname
+#define pp_gpbynumber          CPerlObj::Perl_pp_gpbynumber
+#define pp_gprotoent           CPerlObj::Perl_pp_gprotoent
+#define pp_gpwent              CPerlObj::Perl_pp_gpwent
+#define pp_gpwnam              CPerlObj::Perl_pp_gpwnam
+#define pp_gpwuid              CPerlObj::Perl_pp_gpwuid
+#define pp_grepstart           CPerlObj::Perl_pp_grepstart
+#define pp_grepwhile           CPerlObj::Perl_pp_grepwhile
+#define pp_gsbyname            CPerlObj::Perl_pp_gsbyname
+#define pp_gsbyport            CPerlObj::Perl_pp_gsbyport
+#define pp_gservent            CPerlObj::Perl_pp_gservent
+#define pp_gsockopt            CPerlObj::Perl_pp_gsockopt
+#define pp_gt                  CPerlObj::Perl_pp_gt
+#define pp_gv                  CPerlObj::Perl_pp_gv
+#define pp_gvsv                        CPerlObj::Perl_pp_gvsv
+#define pp_helem               CPerlObj::Perl_pp_helem
+#define pp_hex                 CPerlObj::Perl_pp_hex
+#define pp_hslice              CPerlObj::Perl_pp_hslice
+#define pp_i_add               CPerlObj::Perl_pp_i_add
+#define pp_i_divide            CPerlObj::Perl_pp_i_divide
+#define pp_i_eq                        CPerlObj::Perl_pp_i_eq
+#define pp_i_ge                        CPerlObj::Perl_pp_i_ge
+#define pp_i_gt                        CPerlObj::Perl_pp_i_gt
+#define pp_i_le                        CPerlObj::Perl_pp_i_le
+#define pp_i_lt                        CPerlObj::Perl_pp_i_lt
+#define pp_i_modulo            CPerlObj::Perl_pp_i_modulo
+#define pp_i_multiply          CPerlObj::Perl_pp_i_multiply
+#define pp_i_ncmp              CPerlObj::Perl_pp_i_ncmp
+#define pp_i_ne                        CPerlObj::Perl_pp_i_ne
+#define pp_i_negate            CPerlObj::Perl_pp_i_negate
+#define pp_i_subtract          CPerlObj::Perl_pp_i_subtract
+#define pp_index               CPerlObj::Perl_pp_index
+#define pp_int                 CPerlObj::Perl_pp_int
+#define pp_ioctl               CPerlObj::Perl_pp_ioctl
+#define pp_iter                        CPerlObj::Perl_pp_iter
+#define pp_join                        CPerlObj::Perl_pp_join
+#define pp_keys                        CPerlObj::Perl_pp_keys
+#define pp_kill                        CPerlObj::Perl_pp_kill
+#define pp_last                        CPerlObj::Perl_pp_last
+#define pp_lc                  CPerlObj::Perl_pp_lc
+#define pp_lcfirst             CPerlObj::Perl_pp_lcfirst
+#define pp_le                  CPerlObj::Perl_pp_le
+#define pp_leave               CPerlObj::Perl_pp_leave
+#define pp_leaveeval           CPerlObj::Perl_pp_leaveeval
+#define pp_leaveloop           CPerlObj::Perl_pp_leaveloop
+#define pp_leavesub            CPerlObj::Perl_pp_leavesub
+#define pp_leavetry            CPerlObj::Perl_pp_leavetry
+#define pp_leavewrite          CPerlObj::Perl_pp_leavewrite
+#define pp_left_shift          CPerlObj::Perl_pp_left_shift
+#define pp_length              CPerlObj::Perl_pp_length
+#define pp_lineseq             CPerlObj::Perl_pp_lineseq
+#define pp_link                        CPerlObj::Perl_pp_link
+#define pp_list                        CPerlObj::Perl_pp_list
+#define pp_listen              CPerlObj::Perl_pp_listen
+#define pp_localtime           CPerlObj::Perl_pp_localtime
+#define pp_lock                        CPerlObj::Perl_pp_lock
+#define pp_log                 CPerlObj::Perl_pp_log
+#define pp_lslice              CPerlObj::Perl_pp_lslice
+#define pp_lstat               CPerlObj::Perl_pp_lstat
+#define pp_lt                  CPerlObj::Perl_pp_lt
+#define pp_mapstart            CPerlObj::Perl_pp_mapstart
+#define pp_mapwhile            CPerlObj::Perl_pp_mapwhile
+#define pp_match               CPerlObj::Perl_pp_match
+#define pp_method              CPerlObj::Perl_pp_method
+#define pp_mkdir               CPerlObj::Perl_pp_mkdir
+#define pp_modulo              CPerlObj::Perl_pp_modulo
+#define pp_msgctl              CPerlObj::Perl_pp_msgctl
+#define pp_msgget              CPerlObj::Perl_pp_msgget
+#define pp_msgrcv              CPerlObj::Perl_pp_msgrcv
+#define pp_msgsnd              CPerlObj::Perl_pp_msgsnd
+#define pp_multiply            CPerlObj::Perl_pp_multiply
+#define pp_ncmp                        CPerlObj::Perl_pp_ncmp
+#define pp_ne                  CPerlObj::Perl_pp_ne
+#define pp_negate              CPerlObj::Perl_pp_negate
+#define pp_next                        CPerlObj::Perl_pp_next
+#define pp_nextstate           CPerlObj::Perl_pp_nextstate
+#define pp_not                 CPerlObj::Perl_pp_not
+#define pp_null                        CPerlObj::Perl_pp_null
+#define pp_oct                 CPerlObj::Perl_pp_oct
+#define pp_open                        CPerlObj::Perl_pp_open
+#define pp_open_dir            CPerlObj::Perl_pp_open_dir
+#define pp_or                  CPerlObj::Perl_pp_or
+#define pp_orassign            CPerlObj::Perl_pp_orassign
+#define pp_ord                 CPerlObj::Perl_pp_ord
+#define pp_pack                        CPerlObj::Perl_pp_pack
+#define pp_padany              CPerlObj::Perl_pp_padany
+#define pp_padav               CPerlObj::Perl_pp_padav
+#define pp_padhv               CPerlObj::Perl_pp_padhv
+#define pp_padsv               CPerlObj::Perl_pp_padsv
+#define pp_pipe_op             CPerlObj::Perl_pp_pipe_op
+#define pp_pop                 CPerlObj::Perl_pp_pop
+#define pp_pos                 CPerlObj::Perl_pp_pos
+#define pp_postdec             CPerlObj::Perl_pp_postdec
+#define pp_postinc             CPerlObj::Perl_pp_postinc
+#define pp_pow                 CPerlObj::Perl_pp_pow
+#define pp_predec              CPerlObj::Perl_pp_predec
+#define pp_preinc              CPerlObj::Perl_pp_preinc
+#define pp_print               CPerlObj::Perl_pp_print
+#define pp_prototype           CPerlObj::Perl_pp_prototype
+#define pp_prtf                        CPerlObj::Perl_pp_prtf
+#define pp_push                        CPerlObj::Perl_pp_push
+#define pp_pushmark            CPerlObj::Perl_pp_pushmark
+#define pp_pushre              CPerlObj::Perl_pp_pushre
+#define pp_qr                  CPerlObj::Perl_pp_qr
+#define pp_quotemeta           CPerlObj::Perl_pp_quotemeta
+#define pp_rand                        CPerlObj::Perl_pp_rand
+#define pp_range               CPerlObj::Perl_pp_range
+#define pp_rcatline            CPerlObj::Perl_pp_rcatline
+#define pp_read                        CPerlObj::Perl_pp_read
+#define pp_readdir             CPerlObj::Perl_pp_readdir
+#define pp_readline            CPerlObj::Perl_pp_readline
+#define pp_readlink            CPerlObj::Perl_pp_readlink
+#define pp_recv                        CPerlObj::Perl_pp_recv
+#define pp_redo                        CPerlObj::Perl_pp_redo
+#define pp_ref                 CPerlObj::Perl_pp_ref
+#define pp_refgen              CPerlObj::Perl_pp_refgen
+#define pp_regcmaybe           CPerlObj::Perl_pp_regcmaybe
+#define pp_regcomp             CPerlObj::Perl_pp_regcomp
+#define pp_regcreset           CPerlObj::Perl_pp_regcreset
+#define pp_rename              CPerlObj::Perl_pp_rename
+#define pp_repeat              CPerlObj::Perl_pp_repeat
+#define pp_require             CPerlObj::Perl_pp_require
+#define pp_reset               CPerlObj::Perl_pp_reset
+#define pp_return              CPerlObj::Perl_pp_return
+#define pp_reverse             CPerlObj::Perl_pp_reverse
+#define pp_rewinddir           CPerlObj::Perl_pp_rewinddir
+#define pp_right_shift         CPerlObj::Perl_pp_right_shift
+#define pp_rindex              CPerlObj::Perl_pp_rindex
+#define pp_rmdir               CPerlObj::Perl_pp_rmdir
+#define pp_rv2av               CPerlObj::Perl_pp_rv2av
+#define pp_rv2cv               CPerlObj::Perl_pp_rv2cv
+#define pp_rv2gv               CPerlObj::Perl_pp_rv2gv
+#define pp_rv2hv               CPerlObj::Perl_pp_rv2hv
+#define pp_rv2sv               CPerlObj::Perl_pp_rv2sv
+#define pp_sassign             CPerlObj::Perl_pp_sassign
+#define pp_scalar              CPerlObj::Perl_pp_scalar
+#define pp_schomp              CPerlObj::Perl_pp_schomp
+#define pp_schop               CPerlObj::Perl_pp_schop
+#define pp_scmp                        CPerlObj::Perl_pp_scmp
+#define pp_scope               CPerlObj::Perl_pp_scope
+#define pp_seek                        CPerlObj::Perl_pp_seek
+#define pp_seekdir             CPerlObj::Perl_pp_seekdir
+#define pp_select              CPerlObj::Perl_pp_select
+#define pp_semctl              CPerlObj::Perl_pp_semctl
+#define pp_semget              CPerlObj::Perl_pp_semget
+#define pp_semop               CPerlObj::Perl_pp_semop
+#define pp_send                        CPerlObj::Perl_pp_send
+#define pp_seq                 CPerlObj::Perl_pp_seq
+#define pp_setpgrp             CPerlObj::Perl_pp_setpgrp
+#define pp_setpriority         CPerlObj::Perl_pp_setpriority
+#define pp_sge                 CPerlObj::Perl_pp_sge
+#define pp_sgrent              CPerlObj::Perl_pp_sgrent
+#define pp_sgt                 CPerlObj::Perl_pp_sgt
+#define pp_shift               CPerlObj::Perl_pp_shift
+#define pp_shmctl              CPerlObj::Perl_pp_shmctl
+#define pp_shmget              CPerlObj::Perl_pp_shmget
+#define pp_shmread             CPerlObj::Perl_pp_shmread
+#define pp_shmwrite            CPerlObj::Perl_pp_shmwrite
+#define pp_shostent            CPerlObj::Perl_pp_shostent
+#define pp_shutdown            CPerlObj::Perl_pp_shutdown
+#define pp_sin                 CPerlObj::Perl_pp_sin
+#define pp_sle                 CPerlObj::Perl_pp_sle
+#define pp_sleep               CPerlObj::Perl_pp_sleep
+#define pp_slt                 CPerlObj::Perl_pp_slt
+#define pp_sne                 CPerlObj::Perl_pp_sne
+#define pp_snetent             CPerlObj::Perl_pp_snetent
+#define pp_socket              CPerlObj::Perl_pp_socket
+#define pp_sockpair            CPerlObj::Perl_pp_sockpair
+#define pp_sort                        CPerlObj::Perl_pp_sort
+#define pp_splice              CPerlObj::Perl_pp_splice
+#define pp_split               CPerlObj::Perl_pp_split
+#define pp_sprintf             CPerlObj::Perl_pp_sprintf
+#define pp_sprotoent           CPerlObj::Perl_pp_sprotoent
+#define pp_spwent              CPerlObj::Perl_pp_spwent
+#define pp_sqrt                        CPerlObj::Perl_pp_sqrt
+#define pp_srand               CPerlObj::Perl_pp_srand
+#define pp_srefgen             CPerlObj::Perl_pp_srefgen
+#define pp_sselect             CPerlObj::Perl_pp_sselect
+#define pp_sservent            CPerlObj::Perl_pp_sservent
+#define pp_ssockopt            CPerlObj::Perl_pp_ssockopt
+#define pp_stat                        CPerlObj::Perl_pp_stat
+#define pp_stringify           CPerlObj::Perl_pp_stringify
+#define pp_stub                        CPerlObj::Perl_pp_stub
+#define pp_study               CPerlObj::Perl_pp_study
+#define pp_subst               CPerlObj::Perl_pp_subst
+#define pp_substcont           CPerlObj::Perl_pp_substcont
+#define pp_substr              CPerlObj::Perl_pp_substr
+#define pp_subtract            CPerlObj::Perl_pp_subtract
+#define pp_symlink             CPerlObj::Perl_pp_symlink
+#define pp_syscall             CPerlObj::Perl_pp_syscall
+#define pp_sysopen             CPerlObj::Perl_pp_sysopen
+#define pp_sysread             CPerlObj::Perl_pp_sysread
+#define pp_sysseek             CPerlObj::Perl_pp_sysseek
+#define pp_system              CPerlObj::Perl_pp_system
+#define pp_syswrite            CPerlObj::Perl_pp_syswrite
+#define pp_tell                        CPerlObj::Perl_pp_tell
+#define pp_telldir             CPerlObj::Perl_pp_telldir
+#define pp_threadsv            CPerlObj::Perl_pp_threadsv
+#define pp_tie                 CPerlObj::Perl_pp_tie
+#define pp_tied                        CPerlObj::Perl_pp_tied
+#define pp_time                        CPerlObj::Perl_pp_time
+#define pp_tms                 CPerlObj::Perl_pp_tms
+#define pp_trans               CPerlObj::Perl_pp_trans
+#define pp_truncate            CPerlObj::Perl_pp_truncate
+#define pp_uc                  CPerlObj::Perl_pp_uc
+#define pp_ucfirst             CPerlObj::Perl_pp_ucfirst
+#define pp_umask               CPerlObj::Perl_pp_umask
+#define pp_undef               CPerlObj::Perl_pp_undef
+#define pp_unlink              CPerlObj::Perl_pp_unlink
+#define pp_unpack              CPerlObj::Perl_pp_unpack
+#define pp_unshift             CPerlObj::Perl_pp_unshift
+#define pp_unstack             CPerlObj::Perl_pp_unstack
+#define pp_untie               CPerlObj::Perl_pp_untie
+#define pp_utime               CPerlObj::Perl_pp_utime
+#define pp_values              CPerlObj::Perl_pp_values
+#define pp_vec                 CPerlObj::Perl_pp_vec
+#define pp_wait                        CPerlObj::Perl_pp_wait
+#define pp_waitpid             CPerlObj::Perl_pp_waitpid
+#define pp_wantarray           CPerlObj::Perl_pp_wantarray
+#define pp_warn                        CPerlObj::Perl_pp_warn
+#define pp_xor                 CPerlObj::Perl_pp_xor
+#define pregcomp               CPerlObj::Perl_pregcomp
+#define pregexec               CPerlObj::Perl_pregexec
+#define pregfree               CPerlObj::Perl_pregfree
+#define prepend_elem           CPerlObj::Perl_prepend_elem
+#define push_return            CPerlObj::Perl_push_return
+#define push_scope             CPerlObj::Perl_push_scope
+#define qsortsv                        CPerlObj::Perl_qsortsv
+#define re_croak2              CPerlObj::Perl_re_croak2
+#define ref                    CPerlObj::Perl_ref
+#define refkids                        CPerlObj::Perl_refkids
+#define refto                  CPerlObj::Perl_refto
+#define reg                    CPerlObj::Perl_reg
+#define reg_node               CPerlObj::Perl_reg_node
+#define reganode               CPerlObj::Perl_reganode
+#define regatom                        CPerlObj::Perl_regatom
+#define regbranch              CPerlObj::Perl_regbranch
+#define regc                   CPerlObj::Perl_regc
+#define regclass               CPerlObj::Perl_regclass
+#define regclassutf8           CPerlObj::Perl_regclassutf8
+#define regcp_set_to           CPerlObj::Perl_regcp_set_to
+#define regcppop               CPerlObj::Perl_regcppop
+#define regcppush              CPerlObj::Perl_regcppush
+#define regcurly               CPerlObj::Perl_regcurly
+#define regdump                        CPerlObj::Perl_regdump
+#define regexec_flags          CPerlObj::Perl_regexec_flags
+#define reghop                 CPerlObj::Perl_reghop
+#define reghopmaybe            CPerlObj::Perl_reghopmaybe
+#define reginclass             CPerlObj::Perl_reginclass
+#define reginclassutf8         CPerlObj::Perl_reginclassutf8
+#define reginsert              CPerlObj::Perl_reginsert
+#define regmatch               CPerlObj::Perl_regmatch
+#define regnext                        CPerlObj::Perl_regnext
+#define regoptail              CPerlObj::Perl_regoptail
+#define regpiece               CPerlObj::Perl_regpiece
+#define regprop                        CPerlObj::Perl_regprop
+#define regrepeat              CPerlObj::Perl_regrepeat
+#define regrepeat_hard         CPerlObj::Perl_regrepeat_hard
+#define regset                 CPerlObj::Perl_regset
+#define regtail                        CPerlObj::Perl_regtail
+#define regtry                 CPerlObj::Perl_regtry
+#define reguni                 CPerlObj::Perl_reguni
+#define regwhite               CPerlObj::Perl_regwhite
+#define repeatcpy              CPerlObj::Perl_repeatcpy
+#define restore_expect         CPerlObj::Perl_restore_expect
+#define restore_lex_expect     CPerlObj::Perl_restore_lex_expect
+#define restore_magic          CPerlObj::Perl_restore_magic
+#define restore_rsfp           CPerlObj::Perl_restore_rsfp
+#define rninstr                        CPerlObj::Perl_rninstr
+#define rsignal                        CPerlObj::Perl_rsignal
+#define rsignal_restore                CPerlObj::Perl_rsignal_restore
+#define rsignal_save           CPerlObj::Perl_rsignal_save
+#define rsignal_state          CPerlObj::Perl_rsignal_state
+#define runops_debug           CPerlObj::Perl_runops_debug
+#define runops_debug           CPerlObj::Perl_runops_debug
+#define runops_standard                CPerlObj::Perl_runops_standard
+#define runops_standard                CPerlObj::Perl_runops_standard
+#define rxres_free             CPerlObj::Perl_rxres_free
+#define rxres_restore          CPerlObj::Perl_rxres_restore
+#define rxres_save             CPerlObj::Perl_rxres_save
+#define safecalloc             CPerlObj::Perl_safecalloc
+#define safefree               CPerlObj::Perl_safefree
+#define safemalloc             CPerlObj::Perl_safemalloc
+#define saferealloc            CPerlObj::Perl_saferealloc
+#define safexcalloc            CPerlObj::Perl_safexcalloc
+#define safexfree              CPerlObj::Perl_safexfree
+#define safexmalloc            CPerlObj::Perl_safexmalloc
+#define safexrealloc           CPerlObj::Perl_safexrealloc
+#define same_dirent            CPerlObj::Perl_same_dirent
+#define save_I16               CPerlObj::Perl_save_I16
+#define save_I32               CPerlObj::Perl_save_I32
+#define save_aelem             CPerlObj::Perl_save_aelem
+#define save_alloc             CPerlObj::Perl_save_alloc
+#define save_aptr              CPerlObj::Perl_save_aptr
+#define save_ary               CPerlObj::Perl_save_ary
+#define save_clearsv           CPerlObj::Perl_save_clearsv
+#define save_delete            CPerlObj::Perl_save_delete
+#define save_destructor                CPerlObj::Perl_save_destructor
+#define save_freeop            CPerlObj::Perl_save_freeop
+#define save_freepv            CPerlObj::Perl_save_freepv
+#define save_freesv            CPerlObj::Perl_save_freesv
+#define save_generic_svref     CPerlObj::Perl_save_generic_svref
+#define save_gp                        CPerlObj::Perl_save_gp
+#define save_hash              CPerlObj::Perl_save_hash
+#define save_hek               CPerlObj::Perl_save_hek
+#define save_helem             CPerlObj::Perl_save_helem
+#define save_hints             CPerlObj::Perl_save_hints
+#define save_hptr              CPerlObj::Perl_save_hptr
+#define save_int               CPerlObj::Perl_save_int
+#define save_item              CPerlObj::Perl_save_item
+#define save_iv                        CPerlObj::Perl_save_iv
+#define save_lines             CPerlObj::Perl_save_lines
+#define save_list              CPerlObj::Perl_save_list
+#define save_long              CPerlObj::Perl_save_long
+#define save_magic             CPerlObj::Perl_save_magic
+#define save_nogv              CPerlObj::Perl_save_nogv
+#define save_op                        CPerlObj::Perl_save_op
+#define save_pptr              CPerlObj::Perl_save_pptr
+#define save_re_context                CPerlObj::Perl_save_re_context
+#define save_scalar            CPerlObj::Perl_save_scalar
+#define save_scalar_at         CPerlObj::Perl_save_scalar_at
+#define save_sptr              CPerlObj::Perl_save_sptr
+#define save_svref             CPerlObj::Perl_save_svref
+#define save_threadsv          CPerlObj::Perl_save_threadsv
+#define savepv                 CPerlObj::Perl_savepv
+#define savepvn                        CPerlObj::Perl_savepvn
+#define savestack_grow         CPerlObj::Perl_savestack_grow
+#define sawparens              CPerlObj::Perl_sawparens
+#define scalar                 CPerlObj::Perl_scalar
+#define scalarboolean          CPerlObj::Perl_scalarboolean
+#define scalarkids             CPerlObj::Perl_scalarkids
+#define scalarseq              CPerlObj::Perl_scalarseq
+#define scalarvoid             CPerlObj::Perl_scalarvoid
+#define scan_commit            CPerlObj::Perl_scan_commit
+#define scan_const             CPerlObj::Perl_scan_const
+#define scan_const             CPerlObj::Perl_scan_const
+#define scan_formline          CPerlObj::Perl_scan_formline
+#define scan_formline          CPerlObj::Perl_scan_formline
+#define scan_heredoc           CPerlObj::Perl_scan_heredoc
+#define scan_heredoc           CPerlObj::Perl_scan_heredoc
+#define scan_hex               CPerlObj::Perl_scan_hex
+#define scan_ident             CPerlObj::Perl_scan_ident
+#define scan_ident             CPerlObj::Perl_scan_ident
+#define scan_inputsymbol       CPerlObj::Perl_scan_inputsymbol
+#define scan_inputsymbol       CPerlObj::Perl_scan_inputsymbol
+#define scan_num               CPerlObj::Perl_scan_num
+#define scan_oct               CPerlObj::Perl_scan_oct
+#define scan_pat               CPerlObj::Perl_scan_pat
+#define scan_pat               CPerlObj::Perl_scan_pat
+#define scan_prefix            CPerlObj::Perl_scan_prefix
+#define scan_str               CPerlObj::Perl_scan_str
+#define scan_str               CPerlObj::Perl_scan_str
+#define scan_subst             CPerlObj::Perl_scan_subst
+#define scan_subst             CPerlObj::Perl_scan_subst
+#define scan_trans             CPerlObj::Perl_scan_trans
+#define scan_trans             CPerlObj::Perl_scan_trans
+#define scan_word              CPerlObj::Perl_scan_word
+#define scan_word              CPerlObj::Perl_scan_word
+#define scope                  CPerlObj::Perl_scope
+#define screaminstr            CPerlObj::Perl_screaminstr
+#define seed                   CPerlObj::Perl_seed
+#define set_csh                        CPerlObj::Perl_set_csh
+#define setdefout              CPerlObj::Perl_setdefout
+#define setenv_getix           CPerlObj::Perl_setenv_getix
+#define share_hek              CPerlObj::Perl_share_hek
+#define sharepvn               CPerlObj::Perl_sharepvn
+#define sighandler             CPerlObj::Perl_sighandler
+#define skipspace              CPerlObj::Perl_skipspace
+#define skipspace              CPerlObj::Perl_skipspace
+#define sortcv                 CPerlObj::Perl_sortcv
+#define stack_grow             CPerlObj::Perl_stack_grow
+#define start_subparse         CPerlObj::Perl_start_subparse
+#define study_chunk            CPerlObj::Perl_study_chunk
+#define sub_crush_depth                CPerlObj::Perl_sub_crush_depth
+#define sublex_done            CPerlObj::Perl_sublex_done
+#define sublex_push            CPerlObj::Perl_sublex_push
+#define sublex_start           CPerlObj::Perl_sublex_start
+#define sv_2bool               CPerlObj::Perl_sv_2bool
+#define sv_2cv                 CPerlObj::Perl_sv_2cv
+#define sv_2io                 CPerlObj::Perl_sv_2io
+#define sv_2iv                 CPerlObj::Perl_sv_2iv
+#define sv_2mortal             CPerlObj::Perl_sv_2mortal
+#define sv_2nv                 CPerlObj::Perl_sv_2nv
+#define sv_2pv                 CPerlObj::Perl_sv_2pv
+#define sv_2uv                 CPerlObj::Perl_sv_2uv
+#define sv_add_arena           CPerlObj::Perl_sv_add_arena
+#define sv_backoff             CPerlObj::Perl_sv_backoff
+#define sv_bless               CPerlObj::Perl_sv_bless
+#define sv_catpv               CPerlObj::Perl_sv_catpv
+#define sv_catpv_mg            CPerlObj::Perl_sv_catpv_mg
+#define sv_catpvf              CPerlObj::Perl_sv_catpvf
+#define sv_catpvf_mg           CPerlObj::Perl_sv_catpvf_mg
+#define sv_catpvn              CPerlObj::Perl_sv_catpvn
+#define sv_catpvn_mg           CPerlObj::Perl_sv_catpvn_mg
+#define sv_catsv               CPerlObj::Perl_sv_catsv
+#define sv_catsv_mg            CPerlObj::Perl_sv_catsv_mg
+#define sv_check_thinkfirst    CPerlObj::Perl_sv_check_thinkfirst
+#define sv_chop                        CPerlObj::Perl_sv_chop
+#define sv_clean_all           CPerlObj::Perl_sv_clean_all
+#define sv_clean_objs          CPerlObj::Perl_sv_clean_objs
+#define sv_clear               CPerlObj::Perl_sv_clear
+#define sv_cmp                 CPerlObj::Perl_sv_cmp
+#define sv_cmp_locale          CPerlObj::Perl_sv_cmp_locale
+#define sv_collxfrm            CPerlObj::Perl_sv_collxfrm
+#define sv_compile_2op         CPerlObj::Perl_sv_compile_2op
+#define sv_dec                 CPerlObj::Perl_sv_dec
+#define sv_derived_from                CPerlObj::Perl_sv_derived_from
+#define sv_dump                        CPerlObj::Perl_sv_dump
+#define sv_eq                  CPerlObj::Perl_sv_eq
+#define sv_free                        CPerlObj::Perl_sv_free
+#define sv_free_arenas         CPerlObj::Perl_sv_free_arenas
+#define sv_gets                        CPerlObj::Perl_sv_gets
+#define sv_grow                        CPerlObj::Perl_sv_grow
+#define sv_inc                 CPerlObj::Perl_sv_inc
+#define sv_insert              CPerlObj::Perl_sv_insert
+#define sv_isa                 CPerlObj::Perl_sv_isa
+#define sv_isobject            CPerlObj::Perl_sv_isobject
+#define sv_iv                  CPerlObj::Perl_sv_iv
+#define sv_len                 CPerlObj::Perl_sv_len
+#define sv_len_utf8            CPerlObj::Perl_sv_len_utf8
+#define sv_magic               CPerlObj::Perl_sv_magic
+#define sv_mortalcopy          CPerlObj::Perl_sv_mortalcopy
+#define sv_mortalgrow          CPerlObj::Perl_sv_mortalgrow
+#define sv_newmortal           CPerlObj::Perl_sv_newmortal
+#define sv_newref              CPerlObj::Perl_sv_newref
+#define sv_nv                  CPerlObj::Perl_sv_nv
+#define sv_peek                        CPerlObj::Perl_sv_peek
+#define sv_pos_b2u             CPerlObj::Perl_sv_pos_b2u
+#define sv_pos_u2b             CPerlObj::Perl_sv_pos_u2b
+#define sv_pvn                 CPerlObj::Perl_sv_pvn
+#define sv_pvn_force           CPerlObj::Perl_sv_pvn_force
+#define sv_ref                 CPerlObj::Perl_sv_ref
+#define sv_reftype             CPerlObj::Perl_sv_reftype
+#define sv_replace             CPerlObj::Perl_sv_replace
+#define sv_report_used         CPerlObj::Perl_sv_report_used
+#define sv_reset               CPerlObj::Perl_sv_reset
+#define sv_setiv               CPerlObj::Perl_sv_setiv
+#define sv_setiv_mg            CPerlObj::Perl_sv_setiv_mg
+#define sv_setnv               CPerlObj::Perl_sv_setnv
+#define sv_setnv_mg            CPerlObj::Perl_sv_setnv_mg
+#define sv_setptrobj           CPerlObj::Perl_sv_setptrobj
+#define sv_setpv               CPerlObj::Perl_sv_setpv
+#define sv_setpv_mg            CPerlObj::Perl_sv_setpv_mg
+#define sv_setpvf              CPerlObj::Perl_sv_setpvf
+#define sv_setpvf_mg           CPerlObj::Perl_sv_setpvf_mg
+#define sv_setpviv             CPerlObj::Perl_sv_setpviv
+#define sv_setpviv_mg          CPerlObj::Perl_sv_setpviv_mg
+#define sv_setpvn              CPerlObj::Perl_sv_setpvn
+#define sv_setpvn_mg           CPerlObj::Perl_sv_setpvn_mg
+#define sv_setref_iv           CPerlObj::Perl_sv_setref_iv
+#define sv_setref_nv           CPerlObj::Perl_sv_setref_nv
+#define sv_setref_pv           CPerlObj::Perl_sv_setref_pv
+#define sv_setref_pvn          CPerlObj::Perl_sv_setref_pvn
+#define sv_setsv               CPerlObj::Perl_sv_setsv
+#define sv_setsv_mg            CPerlObj::Perl_sv_setsv_mg
+#define sv_setuv               CPerlObj::Perl_sv_setuv
+#define sv_setuv_mg            CPerlObj::Perl_sv_setuv_mg
+#define sv_taint               CPerlObj::Perl_sv_taint
+#define sv_tainted             CPerlObj::Perl_sv_tainted
+#define sv_true                        CPerlObj::Perl_sv_true
+#define sv_unglob              CPerlObj::Perl_sv_unglob
+#define sv_unmagic             CPerlObj::Perl_sv_unmagic
+#define sv_unref               CPerlObj::Perl_sv_unref
+#define sv_untaint             CPerlObj::Perl_sv_untaint
+#define sv_upgrade             CPerlObj::Perl_sv_upgrade
+#define sv_usepvn              CPerlObj::Perl_sv_usepvn
+#define sv_usepvn_mg           CPerlObj::Perl_sv_usepvn_mg
+#define sv_uv                  CPerlObj::Perl_sv_uv
+#define sv_vcatpvfn            CPerlObj::Perl_sv_vcatpvfn
+#define sv_vsetpvfn            CPerlObj::Perl_sv_vsetpvfn
+#define swash_fetch            CPerlObj::Perl_swash_fetch
+#define swash_init             CPerlObj::Perl_swash_init
+#define taint_env              CPerlObj::Perl_taint_env
+#define taint_proper           CPerlObj::Perl_taint_proper
+#define to_uni_lower           CPerlObj::Perl_to_uni_lower
+#define to_uni_lower_lc                CPerlObj::Perl_to_uni_lower_lc
+#define to_uni_title           CPerlObj::Perl_to_uni_title
+#define to_uni_title_lc                CPerlObj::Perl_to_uni_title_lc
+#define to_uni_upper           CPerlObj::Perl_to_uni_upper
+#define to_uni_upper_lc                CPerlObj::Perl_to_uni_upper_lc
+#define to_utf8_lower          CPerlObj::Perl_to_utf8_lower
+#define to_utf8_title          CPerlObj::Perl_to_utf8_title
+#define to_utf8_upper          CPerlObj::Perl_to_utf8_upper
+#define tokeq                  CPerlObj::Perl_tokeq
+#define too_few_arguments      CPerlObj::Perl_too_few_arguments
+#define too_few_arguments      CPerlObj::Perl_too_few_arguments
+#define too_many_arguments     CPerlObj::Perl_too_many_arguments
+#define too_many_arguments     CPerlObj::Perl_too_many_arguments
+#define uni                    CPerlObj::Perl_uni
+#define unlnk                  CPerlObj::Perl_unlnk
+#define unlock_condpair                CPerlObj::Perl_unlock_condpair
+#define unshare_hek            CPerlObj::Perl_unshare_hek
+#define unsharepvn             CPerlObj::Perl_unsharepvn
+#define unwind_handler_stack   CPerlObj::Perl_unwind_handler_stack
+#define usage                  CPerlObj::Perl_usage
+#define utf16_to_utf8          CPerlObj::Perl_utf16_to_utf8
+#define utf16_to_utf8_reversed CPerlObj::Perl_utf16_to_utf8_reversed
+#define utf8_distance          CPerlObj::Perl_utf8_distance
+#define utf8_hop               CPerlObj::Perl_utf8_hop
+#define utf8_to_uv             CPerlObj::Perl_utf8_to_uv
+#define utilize                        CPerlObj::Perl_utilize
+#define uv_to_utf8             CPerlObj::Perl_uv_to_utf8
+#define validate_suid          CPerlObj::Perl_validate_suid
+#define visit                  CPerlObj::Perl_visit
+#define vivify_defelem         CPerlObj::Perl_vivify_defelem
+#define vivify_ref             CPerlObj::Perl_vivify_ref
+#define wait4pid               CPerlObj::Perl_wait4pid
+#define warn                   CPerlObj::Perl_warn
+#define warner                 CPerlObj::Perl_warner
+#define watch                  CPerlObj::Perl_watch
+#define whichsig               CPerlObj::Perl_whichsig
+#define win32_textfilter       CPerlObj::Perl_win32_textfilter
+#define yydestruct             CPerlObj::Perl_yydestruct
+#define yydestruct             CPerlObj::Perl_yydestruct
+#define yyerror                        CPerlObj::Perl_yyerror
+#define yylex                  CPerlObj::Perl_yylex
+#define yyparse                        CPerlObj::Perl_yyparse
+#define yywarn                 CPerlObj::Perl_yywarn
+
+#endif /* PERL_OBJECT */
 
index 52c93ab..2ca20d0 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -23,31 +23,36 @@ my @extvars = qw(sv_undef sv_yes sv_no na dowarn
 
 sub readsyms (\%$) {
     my ($syms, $file) = @_;
-    %$syms = ();
     local (*FILE, $_);
     open(FILE, "< $file")
        or die "embed.pl: Can't open $file: $!\n";
     while (<FILE>) {
        s/[ \t]*#.*//;          # Delete comments.
        if (/^\s*(\S+)\s*$/) {
-           $$syms{$1} = 1;
+           my $sym = $1;
+           warn "duplicate symbol $sym while processing $file\n"
+               if exists $$syms{$sym};
+           $$syms{$sym} = 1;
        }
     }
     close(FILE);
 }
 
 readsyms %global, 'global.sym';
+readsyms %global, 'pp.sym';
 
 sub readvars(\%$$) {
     my ($syms, $file,$pre) = @_;
-    %$syms = ();
     local (*FILE, $_);
     open(FILE, "< $file")
        or die "embed.pl: Can't open $file: $!\n";
     while (<FILE>) {
        s/[ \t]*#.*//;          # Delete comments.
        if (/PERLVARI?C?\($pre(\w+)/) {
-           $$syms{$1} = 1;
+           my $sym = $1;
+           warn "duplicate symbol $sym while processing $file\n"
+               if exists $$syms{$sym};
+           $$syms{$sym} = 1;
        }
     }
     close(FILE);
@@ -65,7 +70,7 @@ foreach my $sym (sort keys %intrp)
   if (exists $global{$sym})
    {
     delete $global{$sym};
-    warn "$sym in global.sym as well as intrpvar.h\n";
+    warn "$sym in {global,pp}.sym as well as intrpvar.h\n";
    }
  }
 
@@ -74,7 +79,7 @@ foreach my $sym (sort keys %globvar)
   if (exists $global{$sym})
    {
     delete $global{$sym};
-    warn "$sym in global.sym as well as perlvars.h\n";
+    warn "$sym in {global,pp}.sym as well as perlvars.h\n";
    }
  }
 
@@ -84,7 +89,7 @@ foreach my $sym (sort keys %thread)
   if (exists $global{$sym})
    {
     delete $global{$sym};
-    warn "$sym in global.sym as well as thrdvar.h\n";
+    warn "$sym in {global,pp}.sym as well as thrdvar.h\n";
    }
  }
 
@@ -97,6 +102,10 @@ sub embed ($) {
     my ($sym) = @_;
     hide($sym, "Perl_$sym");
 }
+sub embedobj ($) {
+    my ($sym) = @_;
+    hide($sym, $sym =~ /^perl_/i ? "CPerlObj::$sym" : "CPerlObj::Perl_$sym");
+}
 sub embedvar ($) {
     my ($sym) = @_;
 #   hide($sym, "Perl_$sym");
@@ -118,25 +127,17 @@ open(EM, '> embed.h')
 
 print EM <<'END';
 /* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
-   This file is built by embed.pl from global.sym, intrpvar.h,
+   This file is built by embed.pl from global.sym, pp.sym, intrpvar.h,
    and thrdvar.h.  Any changes made here will be lost!
 */
 
 /* (Doing namespace management portably in C is really gross.) */
 
-/*  EMBED has no run-time penalty, but helps keep the Perl namespace
-    from colliding with that used by other libraries pulled in
-    by extensions or by embedding perl.  Allow a cc -DNO_EMBED
-    override, however, to keep binary compatability with previous
-    versions of perl.
-*/
-#ifndef NO_EMBED
-#  define EMBED 1 
-#endif
+/* NO_EMBED is no longer supported. i.e. EMBED is always active. */
 
-/* Hide global symbols? */
+/* Hide global symbols */
 
-#ifdef EMBED
+#if !defined(PERL_OBJECT)
 
 END
 
@@ -146,7 +147,241 @@ for $sym (sort keys %global) {
 
 print EM <<'END';
 
-#endif /* EMBED */
+#else  /* PERL_OBJECT */
+
+END
+
+# XXX these should be in a *.sym file
+my @extras = qw(
+    perl_init_i18nl10n
+    perl_init_i18nl14n
+    perl_new_collate
+    perl_new_ctype
+    perl_new_numeric
+    perl_set_numeric_local
+    perl_set_numeric_standard
+    perl_construct
+    perl_destruct
+    perl_atexit
+    perl_free
+    perl_parse
+    perl_run
+    perl_get_sv
+    perl_get_av
+    perl_get_hv
+    perl_get_cv
+    perl_call_argv
+    perl_call_pv
+    perl_call_method
+    perl_call_sv
+    perl_eval_pv
+    perl_eval_sv
+    perl_require_pv
+
+    hsplit
+    hfreeentries
+    more_he
+    new_he
+    del_he
+    save_hek
+    mess_alloc
+    gv_init_sv
+    save_scalar_at
+    asIV
+    asUV
+    more_sv
+    more_xiv
+    more_xnv
+    more_xpv
+    more_xrv
+    new_xiv
+    new_xnv
+    new_xpv
+    new_xrv
+    del_xiv
+    del_xnv
+    del_xpv
+    del_xrv
+    sv_mortalgrow
+    sv_unglob
+    sv_check_thinkfirst
+    avhv_index_sv
+    do_report_used
+    do_clean_objs
+    do_clean_named_objs
+    do_clean_all
+    not_a_number
+    my_safemalloc
+    visit
+    qsortsv
+    sortcv
+    save_magic
+    magic_methpack
+    magic_methcall
+    magic_methcall
+    doform
+    doencodes
+    refto
+    seed
+    docatch
+    dofindlabel
+    doparseform
+    dopoptoeval
+    dopoptolabel
+    dopoptoloop
+    dopoptosub
+    dopoptosub_at
+    save_lines
+    doeval
+    amagic_cmp
+    amagic_cmp_locale
+    mul128
+    is_an_int
+    div128
+    runops_standard
+    runops_debug
+    check_uni
+    force_next
+    force_version
+    force_word
+    tokeq
+    scan_const
+    scan_formline
+    scan_heredoc
+    scan_ident
+    scan_inputsymbol
+    scan_pat
+    scan_str
+    scan_subst
+    scan_trans
+    scan_word
+    skipspace
+    checkcomma
+    force_ident
+    incline
+    intuit_method
+    intuit_more
+    lop
+    missingterm
+    no_op
+    set_csh
+    sublex_done
+    sublex_push
+    sublex_start
+    uni
+    filter_gets
+    new_constant
+    ao
+    depcom
+    win32_textfilter
+    incl_perldb
+    isa_lookup
+    get_db_sub
+    list_assignment
+    bad_type
+    modkids
+    no_fh_allowed
+    scalarboolean
+    too_few_arguments
+    too_many_arguments
+    null
+    pad_findlex
+    newDEFSVOP
+    gv_ename
+    cv_clone2
+    find_beginning
+    forbid_setid
+    incpush
+    init_interp
+    init_ids
+    init_debugger
+    init_lexer
+    init_main_stash
+    init_perllib
+    init_postdump_symbols
+    init_predump_symbols
+    my_exit_jump
+    nuke_stacks
+    open_script
+    usage
+    validate_suid
+    emulate_eaccess
+    reg
+    reganode
+    regatom
+    regbranch
+    regc
+    reguni
+    regclass
+    regclassutf8
+    regcurly
+    reg_node
+    regpiece
+    reginsert
+    regoptail
+    regset
+    regtail
+    regwhite
+    nextchar
+    dumpuntil
+    scan_commit
+    study_chunk
+    add_data
+    re_croak2
+    regmatch
+    regrepeat
+    regrepeat_hard
+    regtry
+    reginclass
+    reginclassutf8
+    regcppush
+    regcppop
+    regcp_set_to
+    cache_re
+    reghop
+    reghopmaybe
+    dump
+    do_aspawn
+    debprof
+    bset_obj_store
+    new_logop
+    do_trans_CC_simple
+    do_trans_CC_count
+    do_trans_CC_complex
+    do_trans_UU_simple
+    do_trans_UU_count
+    do_trans_UU_complex
+    do_trans_UC_simple
+    do_trans_CU_simple
+    do_trans_UC_trivial
+    do_trans_CU_trivial
+    unwind_handler_stack
+    restore_magic
+    restore_rsfp
+    restore_expect
+    restore_lex_expect
+    yydestruct
+    del_sv
+    fprintf
+);
+
+my %skip;
+
+for $sym (qw[
+    utf8skip
+         ])
+{
+    $skip{$sym}++;
+}
+
+for $sym (sort(keys(%global),@extras)) {
+    next if exists $skip{$sym};
+    print EM embedobj($sym);
+}
+
+print EM <<'END';
+
+#endif /* PERL_OBJECT */
 
 END
 
@@ -158,20 +393,12 @@ open(EM, '> embedvar.h')
 
 print EM <<'END';
 /* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
-   This file is built by embed.pl from global.sym, intrpvar.h,
+   This file is built by embed.pl from global.sym, pp.sym, intrpvar.h,
    and thrdvar.h.  Any changes made here will be lost!
 */
 
 /* (Doing namespace management portably in C is really gross.) */
 
-/*  EMBED has no run-time penalty, but helps keep the Perl namespace
-    from colliding with that used by other libraries pulled in
-    by extensions or by embedding perl.  Allow a cc -DNO_EMBED
-    override, however, to keep binary compatability with previous
-    versions of perl.
-*/
-
-
 /* Put interpreter-specific symbols into a struct? */
 
 #ifdef MULTIPLICITY
@@ -223,8 +450,6 @@ print EM <<'END';
 
 /* Hide what would have been interpreter-specific symbols? */
 
-#ifdef EMBED
-
 END
 
 for $sym (sort keys %intrp) {
@@ -244,7 +469,6 @@ for $sym (sort keys %thread) {
 print EM <<'END';
 
 #endif /* USE_THREADS */
-#endif /* EMBED */
 #endif /* MULTIPLICITY */
 
 /* Now same trickey for per-thread variables */
@@ -281,8 +505,6 @@ for $sym (sort keys %globvar) {
 
 print EM <<'END';
 
-#ifdef EMBED
-
 END
 
 for $sym (sort keys %globvar) {
@@ -291,7 +513,6 @@ for $sym (sort keys %globvar) {
 
 print EM <<'END';
 
-#endif /* EMBED */
 #endif /* PERL_GLOBAL_STRUCT */
 
 END
index 67761b1..a0bbea0 100644 (file)
@@ -1,18 +1,10 @@
 /* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
-   This file is built by embed.pl from global.sym, intrpvar.h,
+   This file is built by embed.pl from global.sym, pp.sym, intrpvar.h,
    and thrdvar.h.  Any changes made here will be lost!
 */
 
 /* (Doing namespace management portably in C is really gross.) */
 
-/*  EMBED has no run-time penalty, but helps keep the Perl namespace
-    from colliding with that used by other libraries pulled in
-    by extensions or by embedding perl.  Allow a cc -DNO_EMBED
-    override, however, to keep binary compatability with previous
-    versions of perl.
-*/
-
-
 /* Put interpreter-specific symbols into a struct? */
 
 #ifdef MULTIPLICITY
 #define PL_tmps_stack          (PL_curinterp->Ttmps_stack)
 #define PL_top_env             (PL_curinterp->Ttop_env)
 #define PL_toptarget           (PL_curinterp->Ttoptarget)
+#define PL_watchaddr           (PL_curinterp->Twatchaddr)
+#define PL_watchok             (PL_curinterp->Twatchok)
 
 #endif /* !USE_THREADS */
 
 #define PL_Ttmps_stack         PL_tmps_stack
 #define PL_Ttop_env            PL_top_env
 #define PL_Ttoptarget          PL_toptarget
+#define PL_Twatchaddr          PL_watchaddr
+#define PL_Twatchok            PL_watchok
 
 #endif /* USE_THREADS */
 
 /* Hide what would have been interpreter-specific symbols? */
 
-#ifdef EMBED
-
 
 #ifndef USE_THREADS
 
 
 #endif /* USE_THREADS */
-#endif /* EMBED */
 #endif /* MULTIPLICITY */
 
 /* Now same trickey for per-thread variables */
 #define PL_tmps_stack          (thr->Ttmps_stack)
 #define PL_top_env             (thr->Ttop_env)
 #define PL_toptarget           (thr->Ttoptarget)
+#define PL_watchaddr           (thr->Twatchaddr)
+#define PL_watchok             (thr->Twatchok)
 
 #endif /* USE_THREADS */
 
 #define PL_Gyynerrs            PL_yynerrs
 #define PL_Gyyval              PL_yyval
 
-#ifdef EMBED
-
 
-#endif /* EMBED */
 #endif /* PERL_GLOBAL_STRUCT */
 
 
index 855b3fd..ccc3f26 100644 (file)
 #include "INTERN.h"
 
 #ifdef PERL_OBJECT
-#undef op_name
-#undef opargs 
-#undef op_desc
-#define op_name (pPerl->Perl_get_op_names())
-#define opargs (pPerl->Perl_get_opargs())
-#define op_desc (pPerl->Perl_get_op_descs())
+#undef PL_op_name
+#undef PL_opargs 
+#undef PL_op_desc
+#define PL_op_name (pPerl->Perl_get_op_names())
+#define PL_opargs (pPerl->Perl_get_opargs())
+#define PL_op_desc (pPerl->Perl_get_op_descs())
 #endif
 
 #ifdef PerlIO
@@ -95,7 +95,7 @@ cc_opclass(OP *o)
     if (o->op_type == OP_SASSIGN)
        return ((o->op_private & OPpASSIGN_BACKWARDS) ? OPc_UNOP : OPc_BINOP);
 
-    switch (opargs[o->op_type] & OA_CLASS_MASK) {
+    switch (PL_opargs[o->op_type] & OA_CLASS_MASK) {
     case OA_BASEOP:
        return OPc_BASEOP;
 
@@ -173,7 +173,7 @@ cc_opclass(OP *o)
            return OPc_PVOP;
     }
     warn("can't determine class of operator %s, assuming BASEOP\n",
-        op_name[o->op_type]);
+        PL_op_name[o->op_type]);
     return OPc_BASEOP;
 }
 
@@ -518,7 +518,7 @@ ppname(opnum)
        ST(0) = sv_newmortal();
        if (opnum >= 0 && opnum < PL_maxo) {
            sv_setpvn(ST(0), "pp_", 3);
-           sv_catpv(ST(0), op_name[opnum]);
+           sv_catpv(ST(0), PL_op_name[opnum]);
        }
 
 void
@@ -568,7 +568,7 @@ threadsv_names()
 
 #define OP_next(o)     o->op_next
 #define OP_sibling(o)  o->op_sibling
-#define OP_desc(o)     op_desc[o->op_type]
+#define OP_desc(o)     PL_op_desc[o->op_type]
 #define OP_targ(o)     o->op_targ
 #define OP_type(o)     o->op_type
 #define OP_seq(o)      o->op_seq
@@ -591,7 +591,7 @@ OP_ppaddr(o)
     CODE:
        ST(0) = sv_newmortal();
        sv_setpvn(ST(0), "pp_", 3);
-       sv_catpv(ST(0), op_name[o->op_type]);
+       sv_catpv(ST(0), PL_op_name[o->op_type]);
 
 char *
 OP_desc(o)
index 1ef70eb..7b97586 100644 (file)
@@ -10,8 +10,6 @@
 #  undef open
 #  undef setmode
 #  define open PerlLIO_open3
-#  undef TAINT_PROPER
-#  define TAINT_PROPER(a)
 #endif
 #include <ctype.h>
 #ifdef I_DIRENT    /* XXX maybe better to just rely on perl.h? */
index b9036c0..208daf2 100644 (file)
@@ -612,7 +612,7 @@ await_signal()
            croak("panic: await_signal");
        ST(0) = sv_newmortal();
        if (ret)
-           sv_setsv(ST(0), c ? psig_ptr[c] : &PL_sv_no);
+           sv_setsv(ST(0), c ? PL_psig_ptr[c] : &PL_sv_no);
        DEBUG_S(PerlIO_printf(PerlIO_stderr(),
                              "await_signal returning %s\n", SvPEEK(ST(0))););
 
index 8c08a1b..5974a32 100644 (file)
@@ -1,157 +1,6 @@
-# Global symbols that need to be hidden in embedded applications.
+# Global function symbols that need to be hidden in embedded applications.
 
-# Variables - should not be here but in perlvars.h 
-
-AMG_names
-Error
-abs_amg
-add_amg
-add_ass_amg
-additem
-atan2_amg
-band_amg
-block_type
-bool__amg
-bor_amg
-bxor_amg
-check
-compl_amg
-concat_amg
-concat_ass_amg
-cos_amg
-dc
-dec_amg
-di
-div_amg
-div_ass_amg
-do_binmode
-ds
-eq_amg
-exp_amg
-expectterm
-fallback_amg
-fold
-fold_locale
-freq
-ge_amg
-gt_amg
-inc_amg
-init_thread_intern
-io_close
-know_next
-le_amg
-log_amg
-lshift_amg
-lshift_ass_amg
-lt_amg
-mod_amg
-mod_ass_amg
-mult_amg
-mult_ass_amg
-ncmp_amg
-ne_amg
-neg_amg
-new_struct_thread
-new_stackinfo
-no_aelem
-no_dir_func
-no_func
-no_helem
-no_mem
-no_modify
-no_myglob
-no_security
-no_sock_func
-no_symref
-no_usym
-no_wrongref
-nointrp
-nomem
-nomethod_amg
-not_amg
-numer_amg
-op_const_sv
-op_desc
-op_name
-opargs
-pow_amg
-pow_ass_amg
-ppaddr
-psig_name
-psig_ptr
-reall_srchlen
-regkind
-repeat_amg
-repeat_ass_amg
-rshift_amg
-rshift_ass_amg
-runops_debug
-runops_standard
-saw_return
-scmp_amg
-seq_amg
-sge_amg
-sgt_amg
-sig_name
-sig_num
-simple
-sin_amg
-sle_amg
-slt_amg
-sne_amg
-sqrt_amg
-string_amg
-subtr_amg
-subtr_ass_amg
-varies
-vivify_defelem
-vivify_ref
-vtbl_amagic
-vtbl_amagicelem
-vtbl_arylen
-vtbl_bm
-vtbl_collxfrm
-vtbl_dbline
-vtbl_defelem
-vtbl_env
-vtbl_envelem
-vtbl_fm
-vtbl_glob
-vtbl_isa
-vtbl_isaelem
-vtbl_mglob
-vtbl_mutex
-vtbl_nkeys
-vtbl_pack
-vtbl_packelem
-vtbl_pos
-vtbl_regexp
-vtbl_sig
-vtbl_sigelem
-vtbl_substr
-vtbl_sv
-vtbl_taint
-vtbl_uvar
-vtbl_vec
-warn_nl
-warn_nosemi
-warn_reserved
-warn_uninit
-watchaddr
-watchok
-yycheck
-yydefred
-yydgoto
-yygindex
-yylen
-yylhs
-yyname
-yyrindex
-yyrule
-yysindex
-yytable
-
-# Functions
+# *** Do NOT add global variables here, add them in *var*.h ***
 
 Gv_AMupdate
 amagic_call
@@ -188,6 +37,9 @@ byterun
 call_list
 cando
 cast_ulong
+cast_i32
+cast_iv
+cast_uv
 check_uni
 checkcomma
 ck_aelem
@@ -204,7 +56,6 @@ ck_fun
 ck_fun_locale
 ck_glob
 ck_grep
-ck_gvconst
 ck_index
 ck_lengthconst
 ck_lfun
@@ -213,7 +64,6 @@ ck_match
 ck_null
 ck_repeat
 ck_require
-ck_retarget
 ck_rfun
 ck_rvconst
 ck_scmp
@@ -245,6 +95,7 @@ deprecate
 die
 die_where
 do_aexec
+do_binmode
 do_chomp
 do_chop
 do_close
@@ -352,10 +203,12 @@ ibcmp
 ibcmp_locale
 ingroup
 init_stacks
+init_thread_intern
 instr
 intro_my
 intuit_more
 invert
+io_close
 is_uni_alnum
 is_uni_alnum_lc
 is_uni_alpha
@@ -472,6 +325,8 @@ my_setenv
 my_stat
 my_swap
 my_unexec
+new_stackinfo
+new_struct_thread
 newANONHASH
 newANONLIST
 newANONSUB
@@ -527,6 +382,7 @@ no_op
 oopsAV
 oopsCV
 oopsHV
+op_const_sv
 op_free
 package
 pad_alloc
@@ -544,363 +400,12 @@ pmruntime
 pmtrans
 pop_return
 pop_scope
-pp_aassign
-pp_abs
-pp_accept
-pp_add
-pp_aelem
-pp_aelemfast
-pp_alarm
-pp_and
-pp_andassign
-pp_anoncode
-pp_anonhash
-pp_anonlist
-pp_aslice
-pp_atan2
-pp_av2arylen
-pp_backtick
-pp_bind
-pp_binmode
-pp_bit_and
-pp_bit_or
-pp_bit_xor
-pp_bless
-pp_caller
-pp_chdir
-pp_chmod
-pp_chomp
-pp_chop
-pp_chown
-pp_chr
-pp_chroot
-pp_close
-pp_closedir
-pp_complement
-pp_concat
-pp_cond_expr
-pp_connect
-pp_const
-pp_cos
-pp_crypt
-pp_cswitch
-pp_dbmclose
-pp_dbmopen
-pp_dbstate
-pp_defined
-pp_delete
-pp_die
-pp_divide
-pp_dofile
-pp_dump
-pp_each
-pp_egrent
-pp_ehostent
-pp_enetent
-pp_enter
-pp_entereval
-pp_enteriter
-pp_enterloop
-pp_entersub
-pp_entersubr
-pp_entertry
-pp_enterwrite
-pp_eof
-pp_eprotoent
-pp_epwent
-pp_eq
-pp_eservent
-pp_evalonce
-pp_exec
-pp_exists
-pp_exit
-pp_exp
-pp_fcntl
-pp_fileno
-pp_flip
-pp_flock
-pp_flop
-pp_fork
-pp_formline
-pp_ftatime
-pp_ftbinary
-pp_ftblk
-pp_ftchr
-pp_ftctime
-pp_ftdir
-pp_fteexec
-pp_fteowned
-pp_fteread
-pp_ftewrite
-pp_ftfile
-pp_ftis
-pp_ftlink
-pp_ftmtime
-pp_ftpipe
-pp_ftrexec
-pp_ftrowned
-pp_ftrread
-pp_ftrwrite
-pp_ftsgid
-pp_ftsize
-pp_ftsock
-pp_ftsuid
-pp_ftsvtx
-pp_fttext
-pp_fttty
-pp_ftzero
-pp_ge
-pp_gelem
-pp_getc
-pp_getlogin
-pp_getpeername
-pp_getpgrp
-pp_getppid
-pp_getpriority
-pp_getsockname
-pp_ggrent
-pp_ggrgid
-pp_ggrnam
-pp_ghbyaddr
-pp_ghbyname
-pp_ghostent
-pp_glob
-pp_gmtime
-pp_gnbyaddr
-pp_gnbyname
-pp_gnetent
-pp_goto
-pp_gpbyname
-pp_gpbynumber
-pp_gprotoent
-pp_gpwent
-pp_gpwnam
-pp_gpwuid
-pp_grepstart
-pp_grepwhile
-pp_gsbyname
-pp_gsbyport
-pp_gservent
-pp_gsockopt
-pp_gt
-pp_gv
-pp_gvsv
-pp_helem
-pp_hex
-pp_hslice
-pp_i_add
-pp_i_divide
-pp_i_eq
-pp_i_ge
-pp_i_gt
-pp_i_le
-pp_i_lt
-pp_i_modulo
-pp_i_multiply
-pp_i_ncmp
-pp_i_ne
-pp_i_negate
-pp_i_subtract
-pp_index
-pp_int
-pp_interp
-pp_ioctl
-pp_iter
-pp_join
-pp_keys
-pp_kill
-pp_last
-pp_lc
-pp_lcfirst
-pp_le
-pp_leave
-pp_leaveeval
-pp_leaveloop
-pp_leavesub
-pp_leavetry
-pp_leavewrite
-pp_left_shift
-pp_length
-pp_lineseq
-pp_link
-pp_list
-pp_listen
-pp_localtime
-pp_lock
-pp_log
-pp_lslice
-pp_lstat
-pp_lt
-pp_map
-pp_mapstart
-pp_mapwhile
-pp_match
-pp_method
-pp_mkdir
-pp_modulo
-pp_msgctl
-pp_msgget
-pp_msgrcv
-pp_msgsnd
-pp_multiply
-pp_ncmp
-pp_ne
-pp_negate
-pp_next
-pp_nextstate
-pp_not
-pp_nswitch
-pp_null
-pp_oct
-pp_open
-pp_open_dir
-pp_or
-pp_orassign
-pp_ord
-pp_pack
-pp_padany
-pp_padav
-pp_padhv
-pp_padsv
-pp_pipe_op
-pp_pop
-pp_pos
-pp_postdec
-pp_postinc
-pp_pow
-pp_predec
-pp_preinc
-pp_print
-pp_prototype
-pp_prtf
-pp_push
-pp_pushmark
-pp_pushre
-pp_qr
-pp_quotemeta
-pp_rand
-pp_range
-pp_rcatline
-pp_read
-pp_readdir
-pp_readline
-pp_readlink
-pp_recv
-pp_redo
-pp_ref
-pp_refgen
-pp_regcmaybe
-pp_regcreset
-pp_regcomp
-pp_rename
-pp_repeat
-pp_require
-pp_reset
-pp_return
-pp_reverse
-pp_rewinddir
-pp_right_shift
-pp_rindex
-pp_rmdir
-pp_rv2av
-pp_rv2cv
-pp_rv2gv
-pp_rv2hv
-pp_rv2sv
-pp_sassign
-pp_scalar
-pp_schomp
-pp_schop
-pp_scmp
-pp_scope
-pp_seek
-pp_seekdir
-pp_select
-pp_semctl
-pp_semget
-pp_semop
-pp_send
-pp_seq
-pp_setpgrp
-pp_setpriority
-pp_sge
-pp_sgrent
-pp_sgt
-pp_shift
-pp_shmctl
-pp_shmget
-pp_shmread
-pp_shmwrite
-pp_shostent
-pp_shutdown
-pp_sin
-pp_sle
-pp_sleep
-pp_slt
-pp_sne
-pp_snetent
-pp_socket
-pp_sockpair
-pp_sort
-pp_splice
-pp_split
-pp_sprintf
-pp_sprotoent
-pp_spwent
-pp_sqrt
-pp_srand
-pp_srefgen
-pp_sselect
-pp_sservent
-pp_ssockopt
-pp_stat
-pp_stringify
-pp_stub
-pp_study
-pp_subst
-pp_substcont
-pp_substr
-pp_subtract
-pp_symlink
-pp_syscall
-pp_sysopen
-pp_sysread
-pp_sysseek
-pp_system
-pp_syswrite
-pp_tell
-pp_telldir
-pp_threadsv
-pp_tie
-pp_tied
-pp_time
-pp_tms
-pp_trans
-pp_truncate
-pp_uc
-pp_ucfirst
-pp_umask
-pp_undef
-pp_unlink
-pp_unpack
-pp_unshift
-pp_unstack
-pp_untie
-pp_utime
-pp_values
-pp_vec
-pp_wait
-pp_waitpid
-pp_wantarray
-pp_warn
-pp_xor
 pregcomp
 pregexec
 pregfree
 prepend_elem
 push_return
 push_scope
-q
 ref
 refkids
 regdump
@@ -913,6 +418,8 @@ rsignal
 rsignal_restore
 rsignal_save
 rsignal_state
+runops_debug
+runops_standard
 rxres_free
 rxres_restore
 rxres_save
@@ -1106,6 +613,8 @@ utf8_to_uv
 utf8skip
 utilize
 uv_to_utf8
+vivify_defelem
+vivify_ref
 wait4pid
 warn
 warner
index 1d8ef92..b8d7c38 100644 (file)
--- a/globals.c
+++ b/globals.c
 #include "perl.h"
 
 #ifdef PERL_OBJECT
-#undef  pp_null
-#define pp_null                CPerlObj::Perl_pp_null
-#undef  pp_stub                
-#define pp_stub                CPerlObj::Perl_pp_stub
-#undef  pp_scalar      
-#define pp_scalar      CPerlObj::Perl_pp_scalar
-#undef  pp_pushmark    
-#define pp_pushmark    CPerlObj::Perl_pp_pushmark
-#undef  pp_wantarray   
-#define pp_wantarray   CPerlObj::Perl_pp_wantarray
-#undef  pp_const       
-#define pp_const       CPerlObj::Perl_pp_const
-#undef  pp_gvsv                
-#define pp_gvsv                CPerlObj::Perl_pp_gvsv  
-#undef  pp_gv          
-#define pp_gv          CPerlObj::Perl_pp_gv    
-#undef  pp_gelem       
-#define pp_gelem       CPerlObj::Perl_pp_gelem
-#undef  pp_padsv       
-#define pp_padsv       CPerlObj::Perl_pp_padsv
-#undef  pp_padav       
-#define pp_padav       CPerlObj::Perl_pp_padav
-#undef  pp_padhv       
-#define pp_padhv       CPerlObj::Perl_pp_padhv
-#undef  pp_padany      
-#define pp_padany      CPerlObj::Perl_pp_padany
-#undef  pp_pushre      
-#define pp_pushre      CPerlObj::Perl_pp_pushre
-#undef  pp_rv2gv       
-#define pp_rv2gv       CPerlObj::Perl_pp_rv2gv
-#undef  pp_rv2sv       
-#define pp_rv2sv       CPerlObj::Perl_pp_rv2sv
-#undef  pp_av2arylen   
-#define pp_av2arylen   CPerlObj::Perl_pp_av2arylen
-#undef  pp_rv2cv       
-#define pp_rv2cv       CPerlObj::Perl_pp_rv2cv
-#undef  pp_anoncode    
-#define pp_anoncode    CPerlObj::Perl_pp_anoncode
-#undef  pp_prototype   
-#define pp_prototype   CPerlObj::Perl_pp_prototype
-#undef  pp_refgen      
-#define pp_refgen      CPerlObj::Perl_pp_refgen
-#undef  pp_srefgen     
-#define pp_srefgen     CPerlObj::Perl_pp_srefgen
-#undef  pp_ref         
-#define pp_ref         CPerlObj::Perl_pp_ref   
-#undef  pp_bless       
-#define pp_bless       CPerlObj::Perl_pp_bless
-#undef  pp_backtick    
-#define pp_backtick    CPerlObj::Perl_pp_backtick
-#undef  pp_glob                
-#define pp_glob                CPerlObj::Perl_pp_glob  
-#undef  pp_readline    
-#define pp_readline    CPerlObj::Perl_pp_readline
-#undef  pp_rcatline    
-#define pp_rcatline    CPerlObj::Perl_pp_rcatline
-#undef  pp_regcmaybe   
-#define pp_regcmaybe   CPerlObj::Perl_pp_regcmaybe
-#undef  pp_regcreset   
-#define pp_regcreset   CPerlObj::Perl_pp_regcreset
-#undef  pp_regcomp     
-#define pp_regcomp     CPerlObj::Perl_pp_regcomp
-#undef  pp_match       
-#define pp_match       CPerlObj::Perl_pp_match
-#undef  pp_qr
-#define pp_qr          CPerlObj::Perl_pp_qr
-#undef  pp_subst       
-#define pp_subst       CPerlObj::Perl_pp_subst
-#undef  pp_substcont   
-#define pp_substcont   CPerlObj::Perl_pp_substcont
-#undef  pp_trans       
-#define pp_trans       CPerlObj::Perl_pp_trans
-#undef  pp_sassign     
-#define pp_sassign     CPerlObj::Perl_pp_sassign
-#undef  pp_aassign     
-#define pp_aassign     CPerlObj::Perl_pp_aassign
-#undef  pp_chop                
-#define pp_chop                CPerlObj::Perl_pp_chop  
-#undef  pp_schop       
-#define pp_schop       CPerlObj::Perl_pp_schop
-#undef  pp_chomp       
-#define pp_chomp       CPerlObj::Perl_pp_chomp
-#undef  pp_schomp      
-#define pp_schomp      CPerlObj::Perl_pp_schomp
-#undef  pp_defined     
-#define pp_defined     CPerlObj::Perl_pp_defined
-#undef  pp_undef       
-#define pp_undef       CPerlObj::Perl_pp_undef
-#undef  pp_study       
-#define pp_study       CPerlObj::Perl_pp_study
-#undef  pp_pos         
-#define pp_pos         CPerlObj::Perl_pp_pos   
-#undef  pp_preinc      
-#define pp_preinc      CPerlObj::Perl_pp_preinc
-#undef  pp_i_preinc    
-#define pp_i_preinc    CPerlObj::Perl_pp_preinc
-#undef  pp_predec      
-#define pp_predec      CPerlObj::Perl_pp_predec
-#undef  pp_i_predec    
-#define pp_i_predec    CPerlObj::Perl_pp_predec
-#undef  pp_postinc     
-#define pp_postinc     CPerlObj::Perl_pp_postinc
-#undef  pp_i_postinc   
-#define pp_i_postinc   CPerlObj::Perl_pp_postinc
-#undef  pp_postdec     
-#define pp_postdec     CPerlObj::Perl_pp_postdec
-#undef  pp_i_postdec   
-#define pp_i_postdec   CPerlObj::Perl_pp_postdec
-#undef  pp_pow         
-#define pp_pow         CPerlObj::Perl_pp_pow   
-#undef  pp_multiply    
-#define pp_multiply    CPerlObj::Perl_pp_multiply
-#undef  pp_i_multiply  
-#define pp_i_multiply  CPerlObj::Perl_pp_i_multiply
-#undef  pp_divide      
-#define pp_divide      CPerlObj::Perl_pp_divide
-#undef  pp_i_divide    
-#define pp_i_divide    CPerlObj::Perl_pp_i_divide
-#undef  pp_modulo      
-#define pp_modulo      CPerlObj::Perl_pp_modulo
-#undef  pp_i_modulo    
-#define pp_i_modulo    CPerlObj::Perl_pp_i_modulo
-#undef  pp_repeat      
-#define pp_repeat      CPerlObj::Perl_pp_repeat
-#undef  pp_add         
-#define pp_add         CPerlObj::Perl_pp_add   
-#undef  pp_i_add       
-#define pp_i_add       CPerlObj::Perl_pp_i_add
-#undef  pp_subtract    
-#define pp_subtract    CPerlObj::Perl_pp_subtract
-#undef  pp_i_subtract  
-#define pp_i_subtract  CPerlObj::Perl_pp_i_subtract
-#undef  pp_concat      
-#define pp_concat      CPerlObj::Perl_pp_concat
-#undef  pp_stringify   
-#define pp_stringify   CPerlObj::Perl_pp_stringify
-#undef  pp_left_shift  
-#define pp_left_shift  CPerlObj::Perl_pp_left_shift
-#undef  pp_right_shift 
-#define pp_right_shift CPerlObj::Perl_pp_right_shift
-#undef  pp_lt          
-#define pp_lt          CPerlObj::Perl_pp_lt    
-#undef  pp_i_lt                
-#define pp_i_lt                CPerlObj::Perl_pp_i_lt  
-#undef  pp_gt          
-#define pp_gt          CPerlObj::Perl_pp_gt    
-#undef  pp_i_gt                
-#define pp_i_gt                CPerlObj::Perl_pp_i_gt  
-#undef  pp_le          
-#define pp_le          CPerlObj::Perl_pp_le    
-#undef  pp_i_le                
-#define pp_i_le                CPerlObj::Perl_pp_i_le  
-#undef  pp_ge          
-#define pp_ge          CPerlObj::Perl_pp_ge    
-#undef  pp_i_ge                
-#define pp_i_ge                CPerlObj::Perl_pp_i_ge  
-#undef  pp_eq          
-#define pp_eq          CPerlObj::Perl_pp_eq    
-#undef  pp_i_eq                
-#define pp_i_eq                CPerlObj::Perl_pp_i_eq  
-#undef  pp_ne          
-#define pp_ne          CPerlObj::Perl_pp_ne    
-#undef  pp_i_ne                
-#define pp_i_ne                CPerlObj::Perl_pp_i_ne  
-#undef  pp_ncmp                
-#define pp_ncmp                CPerlObj::Perl_pp_ncmp  
-#undef  pp_i_ncmp      
-#define pp_i_ncmp      CPerlObj::Perl_pp_i_ncmp
-#undef  pp_slt         
-#define pp_slt         CPerlObj::Perl_pp_slt   
-#undef  pp_sgt         
-#define pp_sgt         CPerlObj::Perl_pp_sgt   
-#undef  pp_sle         
-#define pp_sle         CPerlObj::Perl_pp_sle   
-#undef  pp_sge         
-#define pp_sge         CPerlObj::Perl_pp_sge   
-#undef  pp_seq         
-#define pp_seq         CPerlObj::Perl_pp_seq   
-#undef  pp_sne         
-#define pp_sne         CPerlObj::Perl_pp_sne   
-#undef  pp_scmp                
-#define pp_scmp                CPerlObj::Perl_pp_scmp  
-#undef  pp_bit_and     
-#define pp_bit_and     CPerlObj::Perl_pp_bit_and
-#undef  pp_bit_xor     
-#define pp_bit_xor     CPerlObj::Perl_pp_bit_xor
-#undef  pp_bit_or      
-#define pp_bit_or      CPerlObj::Perl_pp_bit_or
-#undef  pp_negate      
-#define pp_negate      CPerlObj::Perl_pp_negate
-#undef  pp_i_negate    
-#define pp_i_negate    CPerlObj::Perl_pp_i_negate
-#undef  pp_not         
-#define pp_not         CPerlObj::Perl_pp_not   
-#undef  pp_complement  
-#define pp_complement  CPerlObj::Perl_pp_complement
-#undef  pp_atan2       
-#define pp_atan2       CPerlObj::Perl_pp_atan2
-#undef  pp_sin         
-#define pp_sin         CPerlObj::Perl_pp_sin   
-#undef  pp_cos         
-#define pp_cos         CPerlObj::Perl_pp_cos   
-#undef  pp_rand                
-#define pp_rand                CPerlObj::Perl_pp_rand  
-#undef  pp_srand       
-#define pp_srand       CPerlObj::Perl_pp_srand
-#undef  pp_exp         
-#define pp_exp         CPerlObj::Perl_pp_exp   
-#undef  pp_log         
-#define pp_log         CPerlObj::Perl_pp_log   
-#undef  pp_sqrt                
-#define pp_sqrt                CPerlObj::Perl_pp_sqrt  
-#undef  pp_int         
-#define pp_int         CPerlObj::Perl_pp_int   
-#undef  pp_hex         
-#define pp_hex         CPerlObj::Perl_pp_hex   
-#undef  pp_oct         
-#define pp_oct         CPerlObj::Perl_pp_oct   
-#undef  pp_abs         
-#define pp_abs         CPerlObj::Perl_pp_abs   
-#undef  pp_length      
-#define pp_length      CPerlObj::Perl_pp_length
-#undef  pp_substr      
-#define pp_substr      CPerlObj::Perl_pp_substr
-#undef  pp_vec         
-#define pp_vec         CPerlObj::Perl_pp_vec   
-#undef  pp_index       
-#define pp_index       CPerlObj::Perl_pp_index
-#undef  pp_rindex      
-#define pp_rindex      CPerlObj::Perl_pp_rindex
-#undef  pp_sprintf     
-#define pp_sprintf     CPerlObj::Perl_pp_sprintf
-#undef  pp_formline    
-#define pp_formline    CPerlObj::Perl_pp_formline
-#undef  pp_ord         
-#define pp_ord         CPerlObj::Perl_pp_ord   
-#undef  pp_chr         
-#define pp_chr         CPerlObj::Perl_pp_chr   
-#undef  pp_crypt       
-#define pp_crypt       CPerlObj::Perl_pp_crypt
-#undef  pp_ucfirst     
-#define pp_ucfirst     CPerlObj::Perl_pp_ucfirst
-#undef  pp_lcfirst     
-#define pp_lcfirst     CPerlObj::Perl_pp_lcfirst
-#undef  pp_uc          
-#define pp_uc          CPerlObj::Perl_pp_uc    
-#undef  pp_lc          
-#define pp_lc          CPerlObj::Perl_pp_lc    
-#undef  pp_quotemeta   
-#define pp_quotemeta   CPerlObj::Perl_pp_quotemeta
-#undef  pp_rv2av       
-#define pp_rv2av       CPerlObj::Perl_pp_rv2av
-#undef  pp_aelemfast   
-#define pp_aelemfast   CPerlObj::Perl_pp_aelemfast
-#undef  pp_aelem       
-#define pp_aelem       CPerlObj::Perl_pp_aelem
-#undef  pp_aslice      
-#define pp_aslice      CPerlObj::Perl_pp_aslice
-#undef  pp_each                
-#define pp_each                CPerlObj::Perl_pp_each  
-#undef  pp_values      
-#define pp_values      CPerlObj::Perl_pp_values
-#undef  pp_keys                
-#define pp_keys                CPerlObj::Perl_pp_keys  
-#undef  pp_delete      
-#define pp_delete      CPerlObj::Perl_pp_delete
-#undef  pp_exists      
-#define pp_exists      CPerlObj::Perl_pp_exists
-#undef  pp_rv2hv       
-#define pp_rv2hv       CPerlObj::Perl_pp_rv2hv
-#undef  pp_helem       
-#define pp_helem       CPerlObj::Perl_pp_helem
-#undef  pp_hslice      
-#define pp_hslice      CPerlObj::Perl_pp_hslice
-#undef  pp_unpack      
-#define pp_unpack      CPerlObj::Perl_pp_unpack
-#undef  pp_pack                
-#define pp_pack                CPerlObj::Perl_pp_pack  
-#undef  pp_split       
-#define pp_split       CPerlObj::Perl_pp_split
-#undef  pp_join                
-#define pp_join                CPerlObj::Perl_pp_join  
-#undef  pp_list                
-#define pp_list                CPerlObj::Perl_pp_list  
-#undef  pp_lslice      
-#define pp_lslice      CPerlObj::Perl_pp_lslice
-#undef  pp_anonlist    
-#define pp_anonlist    CPerlObj::Perl_pp_anonlist
-#undef  pp_anonhash    
-#define pp_anonhash    CPerlObj::Perl_pp_anonhash
-#undef  pp_splice      
-#define pp_splice      CPerlObj::Perl_pp_splice
-#undef  pp_push                
-#define pp_push                CPerlObj::Perl_pp_push  
-#undef  pp_pop         
-#define pp_pop         CPerlObj::Perl_pp_pop   
-#undef  pp_shift       
-#define pp_shift       CPerlObj::Perl_pp_shift
-#undef  pp_unshift     
-#define pp_unshift     CPerlObj::Perl_pp_unshift
-#undef  pp_sort                
-#define pp_sort                CPerlObj::Perl_pp_sort  
-#undef  pp_reverse     
-#define pp_reverse     CPerlObj::Perl_pp_reverse
-#undef  pp_grepstart   
-#define pp_grepstart   CPerlObj::Perl_pp_grepstart
-#undef  pp_grepwhile   
-#define pp_grepwhile   CPerlObj::Perl_pp_grepwhile
-#undef  pp_mapstart    
-#define pp_mapstart    CPerlObj::Perl_pp_mapstart
-#undef  pp_mapwhile    
-#define pp_mapwhile    CPerlObj::Perl_pp_mapwhile
-#undef  pp_range       
-#define pp_range       CPerlObj::Perl_pp_range
-#undef  pp_flip                
-#define pp_flip                CPerlObj::Perl_pp_flip  
-#undef  pp_flop                
-#define pp_flop                CPerlObj::Perl_pp_flop  
-#undef  pp_and         
-#define pp_and         CPerlObj::Perl_pp_and   
-#undef  pp_or          
-#define pp_or          CPerlObj::Perl_pp_or    
-#undef  pp_xor         
-#define pp_xor         CPerlObj::Perl_pp_xor   
-#undef  pp_cond_expr   
-#define pp_cond_expr   CPerlObj::Perl_pp_cond_expr
-#undef  pp_andassign   
-#define pp_andassign   CPerlObj::Perl_pp_andassign
-#undef  pp_orassign    
-#define pp_orassign    CPerlObj::Perl_pp_orassign
-#undef  pp_method      
-#define pp_method      CPerlObj::Perl_pp_method
-#undef  pp_entersub    
-#define pp_entersub    CPerlObj::Perl_pp_entersub
-#undef  pp_leavesub    
-#define pp_leavesub    CPerlObj::Perl_pp_leavesub
-#undef  pp_caller      
-#define pp_caller      CPerlObj::Perl_pp_caller
-#undef  pp_warn                
-#define pp_warn                CPerlObj::Perl_pp_warn  
-#undef  pp_die         
-#define pp_die         CPerlObj::Perl_pp_die   
-#undef  pp_reset       
-#define pp_reset       CPerlObj::Perl_pp_reset
-#undef  pp_lineseq     
-#define pp_lineseq     CPerlObj::Perl_pp_lineseq
-#undef  pp_nextstate   
-#define pp_nextstate   CPerlObj::Perl_pp_nextstate
-#undef  pp_dbstate     
-#define pp_dbstate     CPerlObj::Perl_pp_dbstate
-#undef  pp_unstack     
-#define pp_unstack     CPerlObj::Perl_pp_unstack
-#undef  pp_enter       
-#define pp_enter       CPerlObj::Perl_pp_enter
-#undef  pp_leave       
-#define pp_leave       CPerlObj::Perl_pp_leave
-#undef  pp_scope       
-#define pp_scope       CPerlObj::Perl_pp_scope
-#undef  pp_enteriter   
-#define pp_enteriter   CPerlObj::Perl_pp_enteriter
-#undef  pp_iter                
-#define pp_iter                CPerlObj::Perl_pp_iter  
-#undef  pp_enterloop   
-#define pp_enterloop   CPerlObj::Perl_pp_enterloop
-#undef  pp_leaveloop   
-#define pp_leaveloop   CPerlObj::Perl_pp_leaveloop
-#undef  pp_return      
-#define pp_return      CPerlObj::Perl_pp_return
-#undef  pp_last                
-#define pp_last                CPerlObj::Perl_pp_last  
-#undef  pp_next                
-#define pp_next                CPerlObj::Perl_pp_next  
-#undef  pp_redo                
-#define pp_redo                CPerlObj::Perl_pp_redo  
-#undef  pp_dump                
-#define pp_dump                CPerlObj::Perl_pp_dump  
-#undef  pp_goto                
-#define pp_goto                CPerlObj::Perl_pp_goto  
-#undef  pp_exit                
-#define pp_exit                CPerlObj::Perl_pp_exit  
-#undef  pp_open                
-#define pp_open                CPerlObj::Perl_pp_open  
-#undef  pp_close       
-#define pp_close       CPerlObj::Perl_pp_close
-#undef  pp_pipe_op     
-#define pp_pipe_op     CPerlObj::Perl_pp_pipe_op
-#undef  pp_fileno      
-#define pp_fileno      CPerlObj::Perl_pp_fileno
-#undef  pp_umask       
-#define pp_umask       CPerlObj::Perl_pp_umask
-#undef  pp_binmode     
-#define pp_binmode     CPerlObj::Perl_pp_binmode
-#undef  pp_tie         
-#define pp_tie         CPerlObj::Perl_pp_tie   
-#undef  pp_untie       
-#define pp_untie       CPerlObj::Perl_pp_untie
-#undef  pp_tied                
-#define pp_tied                CPerlObj::Perl_pp_tied  
-#undef  pp_dbmopen     
-#define pp_dbmopen     CPerlObj::Perl_pp_dbmopen
-#undef  pp_dbmclose    
-#define pp_dbmclose    CPerlObj::Perl_pp_dbmclose
-#undef  pp_sselect     
-#define pp_sselect     CPerlObj::Perl_pp_sselect
-#undef  pp_select      
-#define pp_select      CPerlObj::Perl_pp_select
-#undef  pp_getc                
-#define pp_getc                CPerlObj::Perl_pp_getc  
-#undef  pp_read                
-#define pp_read                CPerlObj::Perl_pp_read  
-#undef  pp_enterwrite  
-#define pp_enterwrite  CPerlObj::Perl_pp_enterwrite
-#undef  pp_leavewrite  
-#define pp_leavewrite  CPerlObj::Perl_pp_leavewrite
-#undef  pp_prtf                
-#define pp_prtf                CPerlObj::Perl_pp_prtf  
-#undef  pp_print       
-#define pp_print       CPerlObj::Perl_pp_print
-#undef  pp_sysopen     
-#define pp_sysopen     CPerlObj::Perl_pp_sysopen
-#undef  pp_sysseek     
-#define pp_sysseek     CPerlObj::Perl_pp_sysseek
-#undef  pp_sysread     
-#define pp_sysread     CPerlObj::Perl_pp_sysread
-#undef  pp_syswrite    
-#define pp_syswrite    CPerlObj::Perl_pp_syswrite
-#undef  pp_send                
-#define pp_send                CPerlObj::Perl_pp_send  
-#undef  pp_recv                
-#define pp_recv                CPerlObj::Perl_pp_recv  
-#undef  pp_eof         
-#define pp_eof         CPerlObj::Perl_pp_eof   
-#undef  pp_tell                
-#define pp_tell                CPerlObj::Perl_pp_tell  
-#undef  pp_seek                
-#define pp_seek                CPerlObj::Perl_pp_seek  
-#undef  pp_truncate    
-#define pp_truncate    CPerlObj::Perl_pp_truncate
-#undef  pp_fcntl       
-#define pp_fcntl       CPerlObj::Perl_pp_fcntl
-#undef  pp_ioctl       
-#define pp_ioctl       CPerlObj::Perl_pp_ioctl
-#undef  pp_flock       
-#define pp_flock       CPerlObj::Perl_pp_flock
-#undef  pp_socket      
-#define pp_socket      CPerlObj::Perl_pp_socket
-#undef  pp_sockpair    
-#define pp_sockpair    CPerlObj::Perl_pp_sockpair
-#undef  pp_bind                
-#define pp_bind                CPerlObj::Perl_pp_bind  
-#undef  pp_connect     
-#define pp_connect     CPerlObj::Perl_pp_connect
-#undef  pp_listen      
-#define pp_listen      CPerlObj::Perl_pp_listen
-#undef  pp_accept      
-#define pp_accept      CPerlObj::Perl_pp_accept
-#undef  pp_shutdown    
-#define pp_shutdown    CPerlObj::Perl_pp_shutdown
-#undef  pp_gsockopt    
-#define pp_gsockopt    CPerlObj::Perl_pp_gsockopt
-#undef  pp_ssockopt    
-#define pp_ssockopt    CPerlObj::Perl_pp_ssockopt
-#undef  pp_getsockname 
-#define pp_getsockname CPerlObj::Perl_pp_getsockname
-#undef  pp_getpeername 
-#define pp_getpeername CPerlObj::Perl_pp_getpeername
-#undef  pp_lstat       
-#define pp_lstat       CPerlObj::Perl_pp_lstat
-#undef  pp_stat                
-#define pp_stat                CPerlObj::Perl_pp_stat  
-#undef  pp_ftrread     
-#define pp_ftrread     CPerlObj::Perl_pp_ftrread
-#undef  pp_ftrwrite    
-#define pp_ftrwrite    CPerlObj::Perl_pp_ftrwrite
-#undef  pp_ftrexec     
-#define pp_ftrexec     CPerlObj::Perl_pp_ftrexec
-#undef  pp_fteread     
-#define pp_fteread     CPerlObj::Perl_pp_fteread
-#undef  pp_ftewrite    
-#define pp_ftewrite    CPerlObj::Perl_pp_ftewrite
-#undef  pp_fteexec     
-#define pp_fteexec     CPerlObj::Perl_pp_fteexec
-#undef  pp_ftis                
-#define pp_ftis                CPerlObj::Perl_pp_ftis  
-#undef  pp_fteowned    
-#define pp_fteowned    CPerlObj::Perl_pp_fteowned
-#undef  pp_ftrowned    
-#define pp_ftrowned    CPerlObj::Perl_pp_ftrowned
-#undef  pp_ftzero      
-#define pp_ftzero      CPerlObj::Perl_pp_ftzero
-#undef  pp_ftsize      
-#define pp_ftsize      CPerlObj::Perl_pp_ftsize
-#undef  pp_ftmtime     
-#define pp_ftmtime     CPerlObj::Perl_pp_ftmtime
-#undef  pp_ftatime     
-#define pp_ftatime     CPerlObj::Perl_pp_ftatime
-#undef  pp_ftctime     
-#define pp_ftctime     CPerlObj::Perl_pp_ftctime
-#undef  pp_ftsock      
-#define pp_ftsock      CPerlObj::Perl_pp_ftsock
-#undef  pp_ftchr       
-#define pp_ftchr       CPerlObj::Perl_pp_ftchr
-#undef  pp_ftblk       
-#define pp_ftblk       CPerlObj::Perl_pp_ftblk
-#undef  pp_ftfile      
-#define pp_ftfile      CPerlObj::Perl_pp_ftfile
-#undef  pp_ftdir       
-#define pp_ftdir       CPerlObj::Perl_pp_ftdir
-#undef  pp_ftpipe      
-#define pp_ftpipe      CPerlObj::Perl_pp_ftpipe
-#undef  pp_ftlink      
-#define pp_ftlink      CPerlObj::Perl_pp_ftlink
-#undef  pp_ftsuid      
-#define pp_ftsuid      CPerlObj::Perl_pp_ftsuid
-#undef  pp_ftsgid      
-#define pp_ftsgid      CPerlObj::Perl_pp_ftsgid
-#undef  pp_ftsvtx      
-#define pp_ftsvtx      CPerlObj::Perl_pp_ftsvtx
-#undef  pp_fttty       
-#define pp_fttty       CPerlObj::Perl_pp_fttty
-#undef  pp_fttext      
-#define pp_fttext      CPerlObj::Perl_pp_fttext
-#undef  pp_ftbinary    
-#define pp_ftbinary    CPerlObj::Perl_pp_ftbinary
-#undef  pp_chdir       
-#define pp_chdir       CPerlObj::Perl_pp_chdir
-#undef  pp_chown       
-#define pp_chown       CPerlObj::Perl_pp_chown
-#undef  pp_chroot      
-#define pp_chroot      CPerlObj::Perl_pp_chroot
-#undef  pp_unlink      
-#define pp_unlink      CPerlObj::Perl_pp_unlink
-#undef  pp_chmod       
-#define pp_chmod       CPerlObj::Perl_pp_chmod
-#undef  pp_utime       
-#define pp_utime       CPerlObj::Perl_pp_utime
-#undef  pp_rename      
-#define pp_rename      CPerlObj::Perl_pp_rename
-#undef  pp_link                
-#define pp_link                CPerlObj::Perl_pp_link  
-#undef  pp_symlink     
-#define pp_symlink     CPerlObj::Perl_pp_symlink
-#undef  pp_readlink    
-#define pp_readlink    CPerlObj::Perl_pp_readlink
-#undef  pp_mkdir       
-#define pp_mkdir       CPerlObj::Perl_pp_mkdir
-#undef  pp_rmdir       
-#define pp_rmdir       CPerlObj::Perl_pp_rmdir
-#undef  pp_open_dir    
-#define pp_open_dir    CPerlObj::Perl_pp_open_dir
-#undef  pp_readdir     
-#define pp_readdir     CPerlObj::Perl_pp_readdir
-#undef  pp_telldir     
-#define pp_telldir     CPerlObj::Perl_pp_telldir
-#undef  pp_seekdir     
-#define pp_seekdir     CPerlObj::Perl_pp_seekdir
-#undef  pp_rewinddir   
-#define pp_rewinddir   CPerlObj::Perl_pp_rewinddir
-#undef  pp_closedir    
-#define pp_closedir    CPerlObj::Perl_pp_closedir
-#undef  pp_fork                
-#define pp_fork                CPerlObj::Perl_pp_fork  
-#undef  pp_wait                
-#define pp_wait                CPerlObj::Perl_pp_wait  
-#undef  pp_waitpid     
-#define pp_waitpid     CPerlObj::Perl_pp_waitpid
-#undef  pp_system      
-#define pp_system      CPerlObj::Perl_pp_system
-#undef  pp_exec                
-#define pp_exec                CPerlObj::Perl_pp_exec  
-#undef  pp_kill                
-#define pp_kill                CPerlObj::Perl_pp_kill  
-#undef  pp_getppid     
-#define pp_getppid     CPerlObj::Perl_pp_getppid
-#undef  pp_getpgrp     
-#define pp_getpgrp     CPerlObj::Perl_pp_getpgrp
-#undef  pp_setpgrp     
-#define pp_setpgrp     CPerlObj::Perl_pp_setpgrp
-#undef  pp_getpriority 
-#define pp_getpriority CPerlObj::Perl_pp_getpriority
-#undef  pp_setpriority 
-#define pp_setpriority CPerlObj::Perl_pp_setpriority
-#undef  pp_time                
-#define pp_time                CPerlObj::Perl_pp_time  
-#undef  pp_tms         
-#define pp_tms         CPerlObj::Perl_pp_tms   
-#undef  pp_localtime   
-#define pp_localtime   CPerlObj::Perl_pp_localtime
-#undef  pp_gmtime      
-#define pp_gmtime      CPerlObj::Perl_pp_gmtime
-#undef  pp_alarm       
-#define pp_alarm       CPerlObj::Perl_pp_alarm
-#undef  pp_sleep       
-#define pp_sleep       CPerlObj::Perl_pp_sleep
-#undef  pp_shmget      
-#define pp_shmget      CPerlObj::Perl_pp_shmget
-#undef  pp_shmctl      
-#define pp_shmctl      CPerlObj::Perl_pp_shmctl
-#undef  pp_shmread     
-#define pp_shmread     CPerlObj::Perl_pp_shmread
-#undef  pp_shmwrite    
-#define pp_shmwrite    CPerlObj::Perl_pp_shmwrite
-#undef  pp_msgget      
-#define pp_msgget      CPerlObj::Perl_pp_msgget
-#undef  pp_msgctl      
-#define pp_msgctl      CPerlObj::Perl_pp_msgctl
-#undef  pp_msgsnd      
-#define pp_msgsnd      CPerlObj::Perl_pp_msgsnd
-#undef  pp_msgrcv      
-#define pp_msgrcv      CPerlObj::Perl_pp_msgrcv
-#undef  pp_semget      
-#define pp_semget      CPerlObj::Perl_pp_semget
-#undef  pp_semctl      
-#define pp_semctl      CPerlObj::Perl_pp_semctl
-#undef  pp_semop       
-#define pp_semop       CPerlObj::Perl_pp_semop
-#undef  pp_require     
-#define pp_require     CPerlObj::Perl_pp_require
-#undef  pp_dofile      
-#define pp_dofile      CPerlObj::Perl_pp_dofile
-#undef  pp_entereval   
-#define pp_entereval   CPerlObj::Perl_pp_entereval
-#undef  pp_leaveeval   
-#define pp_leaveeval   CPerlObj::Perl_pp_leaveeval
-#undef  pp_entertry    
-#define pp_entertry    CPerlObj::Perl_pp_entertry
-#undef  pp_leavetry    
-#define pp_leavetry    CPerlObj::Perl_pp_leavetry
-#undef  pp_ghbyname    
-#define pp_ghbyname    CPerlObj::Perl_pp_ghbyname
-#undef  pp_ghbyaddr    
-#define pp_ghbyaddr    CPerlObj::Perl_pp_ghbyaddr
-#undef  pp_ghostent    
-#define pp_ghostent    CPerlObj::Perl_pp_ghostent
-#undef  pp_gnbyname    
-#define pp_gnbyname    CPerlObj::Perl_pp_gnbyname
-#undef  pp_gnbyaddr    
-#define pp_gnbyaddr    CPerlObj::Perl_pp_gnbyaddr
-#undef  pp_gnetent     
-#define pp_gnetent     CPerlObj::Perl_pp_gnetent
-#undef  pp_gpbyname    
-#define pp_gpbyname    CPerlObj::Perl_pp_gpbyname
-#undef  pp_gpbynumber  
-#define pp_gpbynumber  CPerlObj::Perl_pp_gpbynumber
-#undef  pp_gprotoent   
-#define pp_gprotoent   CPerlObj::Perl_pp_gprotoent
-#undef  pp_gsbyname    
-#define pp_gsbyname    CPerlObj::Perl_pp_gsbyname
-#undef  pp_gsbyport    
-#define pp_gsbyport    CPerlObj::Perl_pp_gsbyport
-#undef  pp_gservent    
-#define pp_gservent    CPerlObj::Perl_pp_gservent
-#undef  pp_shostent    
-#define pp_shostent    CPerlObj::Perl_pp_shostent
-#undef  pp_snetent     
-#define pp_snetent     CPerlObj::Perl_pp_snetent
-#undef  pp_sprotoent   
-#define pp_sprotoent   CPerlObj::Perl_pp_sprotoent
-#undef  pp_sservent    
-#define pp_sservent    CPerlObj::Perl_pp_sservent
-#undef  pp_ehostent    
-#define pp_ehostent    CPerlObj::Perl_pp_ehostent
-#undef  pp_enetent     
-#define pp_enetent     CPerlObj::Perl_pp_enetent
-#undef  pp_eprotoent   
-#define pp_eprotoent   CPerlObj::Perl_pp_eprotoent
-#undef  pp_eservent    
-#define pp_eservent    CPerlObj::Perl_pp_eservent
-#undef  pp_gpwnam      
-#define pp_gpwnam      CPerlObj::Perl_pp_gpwnam
-#undef  pp_gpwuid      
-#define pp_gpwuid      CPerlObj::Perl_pp_gpwuid
-#undef  pp_gpwent      
-#define pp_gpwent      CPerlObj::Perl_pp_gpwent
-#undef  pp_spwent      
-#define pp_spwent      CPerlObj::Perl_pp_spwent
-#undef  pp_epwent      
-#define pp_epwent      CPerlObj::Perl_pp_epwent
-#undef  pp_ggrnam      
-#define pp_ggrnam      CPerlObj::Perl_pp_ggrnam
-#undef  pp_ggrgid      
-#define pp_ggrgid      CPerlObj::Perl_pp_ggrgid
-#undef  pp_ggrent      
-#define pp_ggrent      CPerlObj::Perl_pp_ggrent
-#undef  pp_sgrent      
-#define pp_sgrent      CPerlObj::Perl_pp_sgrent
-#undef  pp_egrent      
-#define pp_egrent      CPerlObj::Perl_pp_egrent
-#undef  pp_getlogin    
-#define pp_getlogin    CPerlObj::Perl_pp_getlogin
-#undef  pp_syscall     
-#define pp_syscall     CPerlObj::Perl_pp_syscall
-#undef  pp_lock                
-#define pp_lock                CPerlObj::Perl_pp_lock  
-#undef  pp_threadsv    
-#define pp_threadsv    CPerlObj::Perl_pp_threadsv
-
-OP * (CPERLscope(*check)[]) _((OP *op)) = {
-       ck_null,        /* null */
-       ck_null,        /* stub */
-       ck_fun,         /* scalar */
-       ck_null,        /* pushmark */
-       ck_null,        /* wantarray */
-       ck_svconst,     /* const */
-       ck_null,        /* gvsv */
-       ck_null,        /* gv */
-       ck_null,        /* gelem */
-       ck_null,        /* padsv */
-       ck_null,        /* padav */
-       ck_null,        /* padhv */
-       ck_null,        /* padany */
-       ck_null,        /* pushre */
-       ck_rvconst,     /* rv2gv */
-       ck_rvconst,     /* rv2sv */
-       ck_null,        /* av2arylen */
-       ck_rvconst,     /* rv2cv */
-       ck_anoncode,    /* anoncode */
-       ck_null,        /* prototype */
-       ck_spair,       /* refgen */
-       ck_null,        /* srefgen */
-       ck_fun,         /* ref */
-       ck_fun,         /* bless */
-       ck_null,        /* backtick */
-       ck_glob,        /* glob */
-       ck_null,        /* readline */
-       ck_null,        /* rcatline */
-       ck_fun,         /* regcmaybe */
-       ck_fun,         /* regcreset */
-       ck_null,        /* regcomp */
-       ck_match,       /* match */
-       ck_match,       /* qr */
-       ck_null,        /* subst */
-       ck_null,        /* substcont */
-       ck_null,        /* trans */
-       ck_null,        /* sassign */
-       ck_null,        /* aassign */
-       ck_spair,       /* chop */
-       ck_null,        /* schop */
-       ck_spair,       /* chomp */
-       ck_null,        /* schomp */
-       ck_rfun,        /* defined */
-       ck_lfun,        /* undef */
-       ck_fun,         /* study */
-       ck_lfun,        /* pos */
-       ck_lfun,        /* preinc */
-       ck_lfun,        /* i_preinc */
-       ck_lfun,        /* predec */
-       ck_lfun,        /* i_predec */
-       ck_lfun,        /* postinc */
-       ck_lfun,        /* i_postinc */
-       ck_lfun,        /* postdec */
-       ck_lfun,        /* i_postdec */
-       ck_null,        /* pow */
-       ck_null,        /* multiply */
-       ck_null,        /* i_multiply */
-       ck_null,        /* divide */
-       ck_null,        /* i_divide */
-       ck_null,        /* modulo */
-       ck_null,        /* i_modulo */
-       ck_repeat,      /* repeat */
-       ck_null,        /* add */
-       ck_null,        /* i_add */
-       ck_null,        /* subtract */
-       ck_null,        /* i_subtract */
-       ck_concat,      /* concat */
-       ck_fun,         /* stringify */
-       ck_bitop,       /* left_shift */
-       ck_bitop,       /* right_shift */
-       ck_null,        /* lt */
-       ck_null,        /* i_lt */
-       ck_null,        /* gt */
-       ck_null,        /* i_gt */
-       ck_null,        /* le */
-       ck_null,        /* i_le */
-       ck_null,        /* ge */
-       ck_null,        /* i_ge */
-       ck_null,        /* eq */
-       ck_null,        /* i_eq */
-       ck_null,        /* ne */
-       ck_null,        /* i_ne */
-       ck_null,        /* ncmp */
-       ck_null,        /* i_ncmp */
-       ck_scmp,        /* slt */
-       ck_scmp,        /* sgt */
-       ck_scmp,        /* sle */
-       ck_scmp,        /* sge */
-       ck_null,        /* seq */
-       ck_null,        /* sne */
-       ck_scmp,        /* scmp */
-       ck_bitop,       /* bit_and */
-       ck_bitop,       /* bit_xor */
-       ck_bitop,       /* bit_or */
-       ck_null,        /* negate */
-       ck_null,        /* i_negate */
-       ck_null,        /* not */
-       ck_bitop,       /* complement */
-       ck_fun,         /* atan2 */
-       ck_fun,         /* sin */
-       ck_fun,         /* cos */
-       ck_fun,         /* rand */
-       ck_fun,         /* srand */
-       ck_fun,         /* exp */
-       ck_fun,         /* log */
-       ck_fun,         /* sqrt */
-       ck_fun,         /* int */
-       ck_fun,         /* hex */
-       ck_fun,         /* oct */
-       ck_fun,         /* abs */
-       ck_lengthconst, /* length */
-       ck_fun,         /* substr */
-       ck_fun,         /* vec */
-       ck_index,       /* index */
-       ck_index,       /* rindex */
-       ck_fun_locale,  /* sprintf */
-       ck_fun,         /* formline */
-       ck_fun,         /* ord */
-       ck_fun,         /* chr */
-       ck_fun,         /* crypt */
-       ck_fun_locale,  /* ucfirst */
-       ck_fun_locale,  /* lcfirst */
-       ck_fun_locale,  /* uc */
-       ck_fun_locale,  /* lc */
-       ck_fun,         /* quotemeta */
-       ck_rvconst,     /* rv2av */
-       ck_null,        /* aelemfast */
-       ck_null,        /* aelem */
-       ck_null,        /* aslice */
-       ck_fun,         /* each */
-       ck_fun,         /* values */
-       ck_fun,         /* keys */
-       ck_delete,      /* delete */
-       ck_exists,      /* exists */
-       ck_rvconst,     /* rv2hv */
-       ck_null,        /* helem */
-       ck_null,        /* hslice */
-       ck_fun,         /* unpack */
-       ck_fun,         /* pack */
-       ck_split,       /* split */
-       ck_fun,         /* join */
-       ck_null,        /* list */
-       ck_null,        /* lslice */
-       ck_fun,         /* anonlist */
-       ck_fun,         /* anonhash */
-       ck_fun,         /* splice */
-       ck_fun,         /* push */
-       ck_shift,       /* pop */
-       ck_shift,       /* shift */
-       ck_fun,         /* unshift */
-       ck_sort,        /* sort */
-       ck_fun,         /* reverse */
-       ck_grep,        /* grepstart */
-       ck_null,        /* grepwhile */
-       ck_grep,        /* mapstart */
-       ck_null,        /* mapwhile */
-       ck_null,        /* range */
-       ck_null,        /* flip */
-       ck_null,        /* flop */
-       ck_null,        /* and */
-       ck_null,        /* or */
-       ck_null,        /* xor */
-       ck_null,        /* cond_expr */
-       ck_null,        /* andassign */
-       ck_null,        /* orassign */
-       ck_null,        /* method */
-       ck_subr,        /* entersub */
-       ck_null,        /* leavesub */
-       ck_fun,         /* caller */
-       ck_fun,         /* warn */
-       ck_fun,         /* die */
-       ck_fun,         /* reset */
-       ck_null,        /* lineseq */
-       ck_null,        /* nextstate */
-       ck_null,        /* dbstate */
-       ck_null,        /* unstack */
-       ck_null,        /* enter */
-       ck_null,        /* leave */
-       ck_null,        /* scope */
-       ck_null,        /* enteriter */
-       ck_null,        /* iter */
-       ck_null,        /* enterloop */
-       ck_null,        /* leaveloop */
-       ck_null,        /* return */
-       ck_null,        /* last */
-       ck_null,        /* next */
-       ck_null,        /* redo */
-       ck_null,        /* dump */
-       ck_null,        /* goto */
-       ck_fun,         /* exit */
-       ck_fun,         /* open */
-       ck_fun,         /* close */
-       ck_fun,         /* pipe_op */
-       ck_fun,         /* fileno */
-       ck_fun,         /* umask */
-       ck_fun,         /* binmode */
-       ck_fun,         /* tie */
-       ck_fun,         /* untie */
-       ck_fun,         /* tied */
-       ck_fun,         /* dbmopen */
-       ck_fun,         /* dbmclose */
-       ck_select,      /* sselect */
-       ck_select,      /* select */
-       ck_eof,         /* getc */
-       ck_fun,         /* read */
-       ck_fun,         /* enterwrite */
-       ck_null,        /* leavewrite */
-       ck_listiob,     /* prtf */
-       ck_listiob,     /* print */
-       ck_fun,         /* sysopen */
-       ck_fun,         /* sysseek */
-       ck_fun,         /* sysread */
-       ck_fun,         /* syswrite */
-       ck_fun,         /* send */
-       ck_fun,         /* recv */
-       ck_eof,         /* eof */
-       ck_fun,         /* tell */
-       ck_fun,         /* seek */
-       ck_trunc,       /* truncate */
-       ck_fun,         /* fcntl */
-       ck_fun,         /* ioctl */
-       ck_fun,         /* flock */
-       ck_fun,         /* socket */
-       ck_fun,         /* sockpair */
-       ck_fun,         /* bind */
-       ck_fun,         /* connect */
-       ck_fun,         /* listen */
-       ck_fun,         /* accept */
-       ck_fun,         /* shutdown */
-       ck_fun,         /* gsockopt */
-       ck_fun,         /* ssockopt */
-       ck_fun,         /* getsockname */
-       ck_fun,         /* getpeername */
-       ck_ftst,        /* lstat */
-       ck_ftst,        /* stat */
-       ck_ftst,        /* ftrread */
-       ck_ftst,        /* ftrwrite */
-       ck_ftst,        /* ftrexec */
-       ck_ftst,        /* fteread */
-       ck_ftst,        /* ftewrite */
-       ck_ftst,        /* fteexec */
-       ck_ftst,        /* ftis */
-       ck_ftst,        /* fteowned */
-       ck_ftst,        /* ftrowned */
-       ck_ftst,        /* ftzero */
-       ck_ftst,        /* ftsize */
-       ck_ftst,        /* ftmtime */
-       ck_ftst,        /* ftatime */
-       ck_ftst,        /* ftctime */
-       ck_ftst,        /* ftsock */
-       ck_ftst,        /* ftchr */
-       ck_ftst,        /* ftblk */
-       ck_ftst,        /* ftfile */
-       ck_ftst,        /* ftdir */
-       ck_ftst,        /* ftpipe */
-       ck_ftst,        /* ftlink */
-       ck_ftst,        /* ftsuid */
-       ck_ftst,        /* ftsgid */
-       ck_ftst,        /* ftsvtx */
-       ck_ftst,        /* fttty */
-       ck_ftst,        /* fttext */
-       ck_ftst,        /* ftbinary */
-       ck_fun,         /* chdir */
-       ck_fun,         /* chown */
-       ck_fun,         /* chroot */
-       ck_fun,         /* unlink */
-       ck_fun,         /* chmod */
-       ck_fun,         /* utime */
-       ck_fun,         /* rename */
-       ck_fun,         /* link */
-       ck_fun,         /* symlink */
-       ck_fun,         /* readlink */
-       ck_fun,         /* mkdir */
-       ck_fun,         /* rmdir */
-       ck_fun,         /* open_dir */
-       ck_fun,         /* readdir */
-       ck_fun,         /* telldir */
-       ck_fun,         /* seekdir */
-       ck_fun,         /* rewinddir */
-       ck_fun,         /* closedir */
-       ck_null,        /* fork */
-       ck_null,        /* wait */
-       ck_fun,         /* waitpid */
-       ck_exec,        /* system */
-       ck_exec,        /* exec */
-       ck_fun,         /* kill */
-       ck_null,        /* getppid */
-       ck_fun,         /* getpgrp */
-       ck_fun,         /* setpgrp */
-       ck_fun,         /* getpriority */
-       ck_fun,         /* setpriority */
-       ck_null,        /* time */
-       ck_null,        /* tms */
-       ck_fun,         /* localtime */
-       ck_fun,         /* gmtime */
-       ck_fun,         /* alarm */
-       ck_fun,         /* sleep */
-       ck_fun,         /* shmget */
-       ck_fun,         /* shmctl */
-       ck_fun,         /* shmread */
-       ck_fun,         /* shmwrite */
-       ck_fun,         /* msgget */
-       ck_fun,         /* msgctl */
-       ck_fun,         /* msgsnd */
-       ck_fun,         /* msgrcv */
-       ck_fun,         /* semget */
-       ck_fun,         /* semctl */
-       ck_fun,         /* semop */
-       ck_require,     /* require */
-       ck_fun,         /* dofile */
-       ck_eval,        /* entereval */
-       ck_null,        /* leaveeval */
-       ck_null,        /* entertry */
-       ck_null,        /* leavetry */
-       ck_fun,         /* ghbyname */
-       ck_fun,         /* ghbyaddr */
-       ck_null,        /* ghostent */
-       ck_fun,         /* gnbyname */
-       ck_fun,         /* gnbyaddr */
-       ck_null,        /* gnetent */
-       ck_fun,         /* gpbyname */
-       ck_fun,         /* gpbynumber */
-       ck_null,        /* gprotoent */
-       ck_fun,         /* gsbyname */
-       ck_fun,         /* gsbyport */
-       ck_null,        /* gservent */
-       ck_fun,         /* shostent */
-       ck_fun,         /* snetent */
-       ck_fun,         /* sprotoent */
-       ck_fun,         /* sservent */
-       ck_null,        /* ehostent */
-       ck_null,        /* enetent */
-       ck_null,        /* eprotoent */
-       ck_null,        /* eservent */
-       ck_fun,         /* gpwnam */
-       ck_fun,         /* gpwuid */
-       ck_null,        /* gpwent */
-       ck_null,        /* spwent */
-       ck_null,        /* epwent */
-       ck_fun,         /* ggrnam */
-       ck_fun,         /* ggrgid */
-       ck_null,        /* ggrent */
-       ck_null,        /* sgrent */
-       ck_null,        /* egrent */
-       ck_null,        /* getlogin */
-       ck_fun,         /* syscall */
-       ck_rfun,        /* lock */
-       ck_null,        /* threadsv */
-};
-
-OP * (CPERLscope(*ppaddr)[])(ARGSproto) = {
-       pp_null,
-       pp_stub,
-       pp_scalar,
-       pp_pushmark,
-       pp_wantarray,
-       pp_const,
-       pp_gvsv,
-       pp_gv,
-       pp_gelem,
-       pp_padsv,
-       pp_padav,
-       pp_padhv,
-       pp_padany,
-       pp_pushre,
-       pp_rv2gv,
-       pp_rv2sv,
-       pp_av2arylen,
-       pp_rv2cv,
-       pp_anoncode,
-       pp_prototype,
-       pp_refgen,
-       pp_srefgen,
-       pp_ref,
-       pp_bless,
-       pp_backtick,
-       pp_glob,
-       pp_readline,
-       pp_rcatline,
-       pp_regcmaybe,
-       pp_regcreset,
-       pp_regcomp,
-       pp_match,
-       pp_qr,
-       pp_subst,
-       pp_substcont,
-       pp_trans,
-       pp_sassign,
-       pp_aassign,
-       pp_chop,
-       pp_schop,
-       pp_chomp,
-       pp_schomp,
-       pp_defined,
-       pp_undef,
-       pp_study,
-       pp_pos,
-       pp_preinc,
-       pp_i_preinc,
-       pp_predec,
-       pp_i_predec,
-       pp_postinc,
-       pp_i_postinc,
-       pp_postdec,
-       pp_i_postdec,
-       pp_pow,
-       pp_multiply,
-       pp_i_multiply,
-       pp_divide,
-       pp_i_divide,
-       pp_modulo,
-       pp_i_modulo,
-       pp_repeat,
-       pp_add,
-       pp_i_add,
-       pp_subtract,
-       pp_i_subtract,
-       pp_concat,
-       pp_stringify,
-       pp_left_shift,
-       pp_right_shift,
-       pp_lt,
-       pp_i_lt,
-       pp_gt,
-       pp_i_gt,
-       pp_le,
-       pp_i_le,
-       pp_ge,
-       pp_i_ge,
-       pp_eq,
-       pp_i_eq,
-       pp_ne,
-       pp_i_ne,
-       pp_ncmp,
-       pp_i_ncmp,
-       pp_slt,
-       pp_sgt,
-       pp_sle,
-       pp_sge,
-       pp_seq,
-       pp_sne,
-       pp_scmp,
-       pp_bit_and,
-       pp_bit_xor,
-       pp_bit_or,
-       pp_negate,
-       pp_i_negate,
-       pp_not,
-       pp_complement,
-       pp_atan2,
-       pp_sin,
-       pp_cos,
-       pp_rand,
-       pp_srand,
-       pp_exp,
-       pp_log,
-       pp_sqrt,
-       pp_int,
-       pp_hex,
-       pp_oct,
-       pp_abs,
-       pp_length,
-       pp_substr,
-       pp_vec,
-       pp_index,
-       pp_rindex,
-       pp_sprintf,
-       pp_formline,
-       pp_ord,
-       pp_chr,
-       pp_crypt,
-       pp_ucfirst,
-       pp_lcfirst,
-       pp_uc,
-       pp_lc,
-       pp_quotemeta,
-       pp_rv2av,
-       pp_aelemfast,
-       pp_aelem,
-       pp_aslice,
-       pp_each,
-       pp_values,
-       pp_keys,
-       pp_delete,
-       pp_exists,
-       pp_rv2hv,
-       pp_helem,
-       pp_hslice,
-       pp_unpack,
-       pp_pack,
-       pp_split,
-       pp_join,
-       pp_list,
-       pp_lslice,
-       pp_anonlist,
-       pp_anonhash,
-       pp_splice,
-       pp_push,
-       pp_pop,
-       pp_shift,
-       pp_unshift,
-       pp_sort,
-       pp_reverse,
-       pp_grepstart,
-       pp_grepwhile,
-       pp_mapstart,
-       pp_mapwhile,
-       pp_range,
-       pp_flip,
-       pp_flop,
-       pp_and,
-       pp_or,
-       pp_xor,
-       pp_cond_expr,
-       pp_andassign,
-       pp_orassign,
-       pp_method,
-       pp_entersub,
-       pp_leavesub,
-       pp_caller,
-       pp_warn,
-       pp_die,
-       pp_reset,
-       pp_lineseq,
-       pp_nextstate,
-       pp_dbstate,
-       pp_unstack,
-       pp_enter,
-       pp_leave,
-       pp_scope,
-       pp_enteriter,
-       pp_iter,
-       pp_enterloop,
-       pp_leaveloop,
-       pp_return,
-       pp_last,
-       pp_next,
-       pp_redo,
-       pp_dump,
-       pp_goto,
-       pp_exit,
-       pp_open,
-       pp_close,
-       pp_pipe_op,
-       pp_fileno,
-       pp_umask,
-       pp_binmode,
-       pp_tie,
-       pp_untie,
-       pp_tied,
-       pp_dbmopen,
-       pp_dbmclose,
-       pp_sselect,
-       pp_select,
-       pp_getc,
-       pp_read,
-       pp_enterwrite,
-       pp_leavewrite,
-       pp_prtf,
-       pp_print,
-       pp_sysopen,
-       pp_sysseek,
-       pp_sysread,
-       pp_syswrite,
-       pp_send,
-       pp_recv,
-       pp_eof,
-       pp_tell,
-       pp_seek,
-       pp_truncate,
-       pp_fcntl,
-       pp_ioctl,
-       pp_flock,
-       pp_socket,
-       pp_sockpair,
-       pp_bind,
-       pp_connect,
-       pp_listen,
-       pp_accept,
-       pp_shutdown,
-       pp_gsockopt,
-       pp_ssockopt,
-       pp_getsockname,
-       pp_getpeername,
-       pp_lstat,
-       pp_stat,
-       pp_ftrread,
-       pp_ftrwrite,
-       pp_ftrexec,
-       pp_fteread,
-       pp_ftewrite,
-       pp_fteexec,
-       pp_ftis,
-       pp_fteowned,
-       pp_ftrowned,
-       pp_ftzero,
-       pp_ftsize,
-       pp_ftmtime,
-       pp_ftatime,
-       pp_ftctime,
-       pp_ftsock,
-       pp_ftchr,
-       pp_ftblk,
-       pp_ftfile,
-       pp_ftdir,
-       pp_ftpipe,
-       pp_ftlink,
-       pp_ftsuid,
-       pp_ftsgid,
-       pp_ftsvtx,
-       pp_fttty,
-       pp_fttext,
-       pp_ftbinary,
-       pp_chdir,
-       pp_chown,
-       pp_chroot,
-       pp_unlink,
-       pp_chmod,
-       pp_utime,
-       pp_rename,
-       pp_link,
-       pp_symlink,
-       pp_readlink,
-       pp_mkdir,
-       pp_rmdir,
-       pp_open_dir,
-       pp_readdir,
-       pp_telldir,
-       pp_seekdir,
-       pp_rewinddir,
-       pp_closedir,
-       pp_fork,
-       pp_wait,
-       pp_waitpid,
-       pp_system,
-       pp_exec,
-       pp_kill,
-       pp_getppid,
-       pp_getpgrp,
-       pp_setpgrp,
-       pp_getpriority,
-       pp_setpriority,
-       pp_time,
-       pp_tms,
-       pp_localtime,
-       pp_gmtime,
-       pp_alarm,
-       pp_sleep,
-       pp_shmget,
-       pp_shmctl,
-       pp_shmread,
-       pp_shmwrite,
-       pp_msgget,
-       pp_msgctl,
-       pp_msgsnd,
-       pp_msgrcv,
-       pp_semget,
-       pp_semctl,
-       pp_semop,
-       pp_require,
-       pp_dofile,
-       pp_entereval,
-       pp_leaveeval,
-       pp_entertry,
-       pp_leavetry,
-       pp_ghbyname,
-       pp_ghbyaddr,
-       pp_ghostent,
-       pp_gnbyname,
-       pp_gnbyaddr,
-       pp_gnetent,
-       pp_gpbyname,
-       pp_gpbynumber,
-       pp_gprotoent,
-       pp_gsbyname,
-       pp_gsbyport,
-       pp_gservent,
-       pp_shostent,
-       pp_snetent,
-       pp_sprotoent,
-       pp_sservent,
-       pp_ehostent,
-       pp_enetent,
-       pp_eprotoent,
-       pp_eservent,
-       pp_gpwnam,
-       pp_gpwuid,
-       pp_gpwent,
-       pp_spwent,
-       pp_epwent,
-       pp_ggrnam,
-       pp_ggrgid,
-       pp_ggrent,
-       pp_sgrent,
-       pp_egrent,
-       pp_getlogin,
-       pp_syscall,
-       pp_lock,
-       pp_threadsv,
-};
-
-int
-fprintf(PerlIO *stream, const char *format, ...)
-{
-    va_list(arglist);
-    va_start(arglist, format);
-    return PerlIO_vprintf(stream, format, arglist);
-}
 
 #undef PERLVAR
 #define PERLVAR(x, y)
@@ -1454,6 +48,14 @@ CPerlObj::Init(void)
 {
 }
 
+int
+fprintf(PerlIO *stream, const char *format, ...)
+{
+    va_list(arglist);
+    va_start(arglist, format);
+    return PerlIO_vprintf(stream, format, arglist);
+}
+
 #ifdef WIN32           /* XXX why are these needed? */
 bool
 do_exec(char *cmd)
diff --git a/globvar.sym b/globvar.sym
new file mode 100644 (file)
index 0000000..91329ca
--- /dev/null
@@ -0,0 +1,68 @@
+# Global variables that must be exported for embedded applications.
+
+# *** Only structures/arrays with constant initializers should go here.
+# *** Usual globals initialized at runtime should be added in *var*.h.
+# *** Do NOT add functions here, those go in global.sym.
+
+AMG_names
+block_type
+fold
+fold_locale
+freq
+warn_uninit
+warn_nosemi
+warn_reserved
+warn_nl
+no_wrongref
+no_symref
+no_usym
+no_aelem
+no_helem
+no_modify
+no_mem
+no_security
+no_sock_func
+no_dir_func
+no_func
+no_myglob
+check
+op_desc
+op_name
+opargs
+ppaddr
+sig_name
+sig_num
+psig_name
+psig_ptr
+regkind
+simple
+varies
+vtbl_sv
+vtbl_env
+vtbl_envelem
+vtbl_sig
+vtbl_sigelem
+vtbl_pack
+vtbl_packelem
+vtbl_dbline
+vtbl_isa
+vtbl_isaelem
+vtbl_arylen
+vtbl_glob
+vtbl_mglob
+vtbl_nkeys
+vtbl_taint
+vtbl_substr
+vtbl_vec
+vtbl_pos
+vtbl_bm
+vtbl_fm
+vtbl_uvar
+vtbl_mutex
+vtbl_defelem
+vtbl_regexp
+vtbl_regdata
+vtbl_regdatum
+vtbl_collxfrm
+vtbl_amagic
+vtbl_amagicelem
diff --git a/gv.c b/gv.c
index a3e8d88..1d24fa4 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -670,13 +670,13 @@ gv_fetchpv(char *nambeg, I32 add, I32 sv_type)
            GvMULTI_on(PL_siggv);
            hv = GvHVn(PL_siggv);
            hv_magic(hv, PL_siggv, 'S');
-           for(i=1;sig_name[i];i++) {
+           for(i=1;PL_sig_name[i];i++) {
                SV ** init;
-               init=hv_fetch(hv,sig_name[i],strlen(sig_name[i]),1);
+               init=hv_fetch(hv,PL_sig_name[i],strlen(PL_sig_name[i]),1);
                if(init)
                        sv_setsv(*init,&PL_sv_undef);
-               psig_ptr[i] = 0;
-               psig_name[i] = 0;
+               PL_psig_ptr[i] = 0;
+               PL_psig_name[i] = 0;
            }
        }
        break;
@@ -1046,16 +1046,16 @@ Gv_AMupdate(HV *stash)
     SV* sv;
     SV** svp;
 
-    /* Work with "fallback" key, which we assume to be first in AMG_names */
+    /* Work with "fallback" key, which we assume to be first in PL_AMG_names */
 
-    if (( cp = (char *)AMG_names[0] ) &&
+    if (( cp = (char *)PL_AMG_names[0] ) &&
        (svp = (SV**)hv_fetch(hv,cp,strlen(cp),FALSE)) && (sv = *svp)) {
       if (SvTRUE(sv)) amt.fallback=AMGfallYES;
       else if (SvOK(sv)) amt.fallback=AMGfallNEVER;
     }
     for (i = 1; i < NofAMmeth; i++) {
       cv = 0;
-      cp = (char *)AMG_names[i];
+      cp = (char *)PL_AMG_names[i];
       
         svp = (SV**)hv_fetch(hv, cp, strlen(cp), FALSE);
         if (svp && ((sv = *svp) != &PL_sv_undef)) {
@@ -1098,9 +1098,9 @@ Gv_AMupdate(HV *stash)
     SV* sv = NULL;
     SV** svp;
 
-    /* Work with "fallback" key, which we assume to be first in AMG_names */
+    /* Work with "fallback" key, which we assume to be first in PL_AMG_names */
 
-    if ( cp = AMG_names[0] ) {
+    if ( cp = PL_AMG_names[0] ) {
        /* Try to find via inheritance. */
        gv = gv_fetchmeth(stash, "()", 2, -1); /* A cookie: "()". */
        if (gv) sv = GvSV(gv);
@@ -1111,7 +1111,7 @@ Gv_AMupdate(HV *stash)
     }
 
     for (i = 1; i < NofAMmeth; i++) {
-       SV *cookie = sv_2mortal(newSVpvf("(%s", cp = AMG_names[i]));
+       SV *cookie = sv_2mortal(newSVpvf("(%s", cp = PL_AMG_names[i]));
        DEBUG_o( deb("Checking overloading of `%s' in package `%.256s'\n",
                     cp, HvNAME(stash)) );
        /* don't fill the cache while looking up! */
@@ -1324,7 +1324,7 @@ amagic_call(SV *left, SV *right, int method, int flags)
        if (off==-1) off=method;
        msg = sv_2mortal(newSVpvf(
                      "Operation `%s': no method found,%sargument %s%s%s%s",
-                     AMG_names[method + assignshift],
+                     PL_AMG_names[method + assignshift],
                      (flags & AMGf_unary ? " " : "\n\tleft "),
                      SvAMAGIC(left)? 
                        "in overloaded package ":
@@ -1353,11 +1353,11 @@ amagic_call(SV *left, SV *right, int method, int flags)
   if (!notfound) {
     DEBUG_o( deb(
   "Overloaded operator `%s'%s%s%s:\n\tmethod%s found%s in package %s%s\n",
-                AMG_names[off],
+                PL_AMG_names[off],
                 method+assignshift==off? "" :
                             " (initially `",
                 method+assignshift==off? "" :
-                            AMG_names[method+assignshift],
+                            PL_AMG_names[method+assignshift],
                 method+assignshift==off? "" : "')",
                 flags & AMGf_unary? "" :
                   lr==1 ? " for right argument": " for left argument",
@@ -1417,7 +1417,7 @@ amagic_call(SV *left, SV *right, int method, int flags)
     PUSHs(lr>0? left: right);
     PUSHs( lr > 0 ? &PL_sv_yes : ( assign ? &PL_sv_undef : &PL_sv_no ));
     if (notfound) {
-      PUSHs( sv_2mortal(newSVpv((char *)AMG_names[method + assignshift],0)) );
+      PUSHs( sv_2mortal(newSVpv((char *)PL_AMG_names[method + assignshift],0)));
     }
     PUSHs((SV*)cv);
     PUTBACK;
index 1b75b67..13f20ff 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -1254,7 +1254,7 @@ free(void *mp)
  * is extern so the caller can modify it).  If that fails we just copy
  * however many bytes was given to realloc() and hope it's not huge.
  */
-int reall_srchlen = 4; /* 4 should be plenty, -1 =>'s whole list */
+#define reall_srchlen  4       /* 4 should be plenty, -1 =>'s whole list */
 
 Malloc_t
 realloc(void *mp, size_t nbytes)
diff --git a/mg.c b/mg.c
index 2906a4c..743ee4a 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -905,8 +905,8 @@ magic_getsig(SV *sv, MAGIC *mg)
     /* Are we fetching a signal entry? */
     i = whichsig(MgPV(mg,PL_na));
     if (i) {
-       if(psig_ptr[i])
-           sv_setsv(sv,psig_ptr[i]);
+       if(PL_psig_ptr[i])
+           sv_setsv(sv,PL_psig_ptr[i]);
        else {
            Sighandler_t sigstate = rsignal_state(i);
 
@@ -915,7 +915,7 @@ magic_getsig(SV *sv, MAGIC *mg)
                sv_setpv(sv,"IGNORE");
            else
                sv_setsv(sv,&PL_sv_undef);
-           psig_ptr[i] = SvREFCNT_inc(sv);
+           PL_psig_ptr[i] = SvREFCNT_inc(sv);
            SvTEMP_off(sv);
        }
     }
@@ -928,13 +928,13 @@ magic_clearsig(SV *sv, MAGIC *mg)
     /* Are we clearing a signal entry? */
     i = whichsig(MgPV(mg,PL_na));
     if (i) {
-       if(psig_ptr[i]) {
-           SvREFCNT_dec(psig_ptr[i]);
-           psig_ptr[i]=0;
+       if(PL_psig_ptr[i]) {
+           SvREFCNT_dec(PL_psig_ptr[i]);
+           PL_psig_ptr[i]=0;
        }
-       if(psig_name[i]) {
-           SvREFCNT_dec(psig_name[i]);
-           psig_name[i]=0;
+       if(PL_psig_name[i]) {
+           SvREFCNT_dec(PL_psig_name[i]);
+           PL_psig_name[i]=0;
        }
     }
     return 0;
@@ -971,12 +971,12 @@ magic_setsig(SV *sv, MAGIC *mg)
                warner(WARN_SIGNAL, "No such signal: SIG%s", s);
            return 0;
        }
-       SvREFCNT_dec(psig_name[i]);
-       SvREFCNT_dec(psig_ptr[i]);
-       psig_ptr[i] = SvREFCNT_inc(sv);
+       SvREFCNT_dec(PL_psig_name[i]);
+       SvREFCNT_dec(PL_psig_ptr[i]);
+       PL_psig_ptr[i] = SvREFCNT_inc(sv);
        SvTEMP_off(sv); /* Make sure it doesn't go away on us */
-       psig_name[i] = newSVpv(s, strlen(s));
-       SvREADONLY_on(psig_name[i]);
+       PL_psig_name[i] = newSVpv(s, strlen(s));
+       SvREADONLY_on(PL_psig_name[i]);
     }
     if (SvTYPE(sv) == SVt_PVGV || SvROK(sv)) {
        if (i)
@@ -1548,7 +1548,7 @@ vivify_defelem(SV *sv)
                value = *svp;
        }
        if (!value || value == &PL_sv_undef)
-           croak(no_helem, SvPV(mg->mg_obj, PL_na));
+           croak(PL_no_helem, SvPV(mg->mg_obj, PL_na));
     }
     else {
        AV* av = (AV*)LvTARG(sv);
@@ -1557,7 +1557,7 @@ vivify_defelem(SV *sv)
        else {
            SV** svp = av_fetch(av, LvTARGOFF(sv), TRUE);
            if (!svp || (value = *svp) == &PL_sv_undef)
-               croak(no_aelem, (I32)LvTARGOFF(sv));
+               croak(PL_no_aelem, (I32)LvTARGOFF(sv));
        }
     }
     (void)SvREFCNT_inc(value);
@@ -2019,9 +2019,9 @@ whichsig(char *sig)
 {
     register char **sigv;
 
-    for (sigv = sig_name+1; *sigv; sigv++)
+    for (sigv = PL_sig_name+1; *sigv; sigv++)
        if (strEQ(sig,*sigv))
-           return sig_num[sigv - sig_name];
+           return PL_sig_num[sigv - PL_sig_name];
 #ifdef SIGCLD
     if (strEQ(sig,"CHLD"))
        return SIGCLD;
@@ -2070,9 +2070,9 @@ sighandler(int sig)
     if (PL_scopestack_ix < PL_scopestack_max - 3)
        flags |= 16;
 
-    if (!psig_ptr[sig])
+    if (!PL_psig_ptr[sig])
        die("Signal SIG%s received, but no signal handler set.\n",
-           sig_name[sig]);
+           PL_sig_name[sig]);
 
     /* Max number of items pushed there is 3*n or 4. We cannot fix
        infinity, so we fix 4 (in fact 5): */
@@ -2090,27 +2090,27 @@ sighandler(int sig)
     if (flags & 16)
        PL_scopestack_ix += 1;
     /* sv_2cv is too complicated, try a simpler variant first: */
-    if (!SvROK(psig_ptr[sig]) || !(cv = (CV*)SvRV(psig_ptr[sig])) 
+    if (!SvROK(PL_psig_ptr[sig]) || !(cv = (CV*)SvRV(PL_psig_ptr[sig])) 
        || SvTYPE(cv) != SVt_PVCV)
-       cv = sv_2cv(psig_ptr[sig],&st,&gv,TRUE);
+       cv = sv_2cv(PL_psig_ptr[sig],&st,&gv,TRUE);
 
     if (!cv || !CvROOT(cv)) {
        if (ckWARN(WARN_SIGNAL))
            warner(WARN_SIGNAL, "SIG%s handler \"%s\" not defined.\n",
-               sig_name[sig], (gv ? GvENAME(gv)
+               PL_sig_name[sig], (gv ? GvENAME(gv)
                                : ((cv && CvGV(cv))
                                   ? GvENAME(CvGV(cv))
                                   : "__ANON__")));
        goto cleanup;
     }
 
-    if(psig_name[sig]) {
-       sv = SvREFCNT_inc(psig_name[sig]);
+    if(PL_psig_name[sig]) {
+       sv = SvREFCNT_inc(PL_psig_name[sig]);
        flags |= 64;
        sig_sv = sv;
     } else {
        sv = sv_newmortal();
-       sv_setpv(sv,sig_name[sig]);
+       sv_setpv(sv,PL_sig_name[sig]);
     }
 
     PUSHSTACKi(PERLSI_SIGNAL);
index a88cff7..315e710 100644 (file)
--- a/objXSUB.h
+++ b/objXSUB.h
 #undef  fold_constants
 #define fold_constants      pPerl->Perl_fold_constants
 #undef  fprintf
-#define fprintf             pPerl->fprintf
+#define fprintf             pPerl->Perl_fprintf
 #undef  free_tmps
 #define free_tmps           pPerl->Perl_free_tmps
 #undef  gen_constant_list
 #define peep                pPerl->Perl_peep
 #undef  perl_atexit
 #define perl_atexit         pPerl->perl_atexit
+#undef  perl_free
+#define perl_free         pPerl->perl_free
+#undef  perl_construct
+#define perl_construct         pPerl->perl_construct
+#undef  perl_destruct
+#define perl_destruct         pPerl->perl_destruct
+#undef  perl_parse
+#define perl_parse         pPerl->perl_parse
+#undef  perl_run
+#define perl_run         pPerl->perl_run
 #undef  perl_call_argv
 #define perl_call_argv      pPerl->perl_call_argv
 #undef  perl_call_method
diff --git a/objpp.h b/objpp.h
deleted file mode 100644 (file)
index 039ac4f..0000000
--- a/objpp.h
+++ /dev/null
@@ -1,1611 +0,0 @@
-#ifndef __Objpp_h__
-#define __Objpp_h__
-
-#undef  amagic_call
-#define amagic_call       CPerlObj::Perl_amagic_call
-#undef  Gv_AMupdate
-#define Gv_AMupdate       CPerlObj::Perl_Gv_AMupdate
-#undef  add_data
-#define add_data          CPerlObj::add_data
-#undef  ao
-#define ao                CPerlObj::ao
-#undef  append_elem
-#define append_elem       CPerlObj::Perl_append_elem
-#undef  append_list
-#define append_list       CPerlObj::Perl_append_list
-#undef  apply
-#define apply             CPerlObj::Perl_apply
-#undef  asIV
-#define asIV              CPerlObj::asIV
-#undef  asUV
-#define asUV              CPerlObj::asUV
-#undef  assertref
-#define assertref         CPerlObj::Perl_assertref
-#undef  av_clear
-#define av_clear          CPerlObj::Perl_av_clear
-#undef  av_extend
-#define av_extend         CPerlObj::Perl_av_extend
-#undef  av_fake
-#define av_fake           CPerlObj::Perl_av_fake
-#undef  av_fetch
-#define av_fetch          CPerlObj::Perl_av_fetch
-#undef  av_fill
-#define av_fill           CPerlObj::Perl_av_fill
-#undef  av_len
-#define av_len            CPerlObj::Perl_av_len
-#undef  av_make
-#define av_make           CPerlObj::Perl_av_make
-#undef  av_pop
-#define av_pop            CPerlObj::Perl_av_pop
-#undef  av_push
-#define av_push           CPerlObj::Perl_av_push
-#undef  av_shift
-#define av_shift          CPerlObj::Perl_av_shift
-#undef  av_reify
-#define av_reify          CPerlObj::Perl_av_reify
-#undef  av_store
-#define av_store          CPerlObj::Perl_av_store
-#undef  av_undef 
-#define av_undef          CPerlObj::Perl_av_undef 
-#undef  av_unshift
-#define av_unshift        CPerlObj::Perl_av_unshift
-#undef  avhv_keys
-#define avhv_keys         CPerlObj::Perl_avhv_keys
-#undef  avhv_fetch_ent
-#define avhv_fetch_ent    CPerlObj::Perl_avhv_fetch_ent
-#undef  avhv_exists_ent
-#define avhv_exists_ent   CPerlObj::Perl_avhv_exists_ent
-#undef  avhv_index_sv
-#define avhv_index_sv     CPerlObj::avhv_index_sv
-#undef  avhv_iternext
-#define avhv_iternext     CPerlObj::Perl_avhv_iternext
-#undef  avhv_iterval
-#define avhv_iterval      CPerlObj::Perl_avhv_iterval
-#undef  bad_type
-#define bad_type          CPerlObj::bad_type
-#undef  bind_match
-#define bind_match        CPerlObj::Perl_bind_match
-#undef  block_end
-#define block_end         CPerlObj::Perl_block_end
-#undef  block_gimme
-#define block_gimme       CPerlObj::Perl_block_gimme
-#undef  block_start
-#define block_start       CPerlObj::Perl_block_start
-#undef  bset_obj_store
-#define bset_obj_store    CPerlObj::Perl_bset_obj_store
-#undef  byterun
-#define byterun           CPerlObj::Perl_byterun
-#undef  call_list
-#define call_list         CPerlObj::Perl_call_list
-#undef  cando
-#define cando             CPerlObj::Perl_cando
-#undef  cast_ulong
-#define cast_ulong        CPerlObj::cast_ulong
-#undef  checkcomma
-#define checkcomma        CPerlObj::Perl_checkcomma
-#undef  check_uni
-#define check_uni         CPerlObj::Perl_check_uni
-#undef  ck_anoncode
-#define ck_anoncode       CPerlObj::Perl_ck_anoncode
-#undef  ck_bitop
-#define ck_bitop          CPerlObj::Perl_ck_bitop
-#undef  ck_concat
-#define ck_concat         CPerlObj::Perl_ck_concat
-#undef  ck_delete
-#define ck_delete         CPerlObj::Perl_ck_delete
-#undef  ck_eof
-#define ck_eof            CPerlObj::Perl_ck_eof
-#undef  ck_eval
-#define ck_eval           CPerlObj::Perl_ck_eval
-#undef  ck_exec
-#define ck_exec           CPerlObj::Perl_ck_exec
-#undef  ck_exists
-#define ck_exists         CPerlObj::Perl_ck_exists
-#undef  ck_formline
-#define ck_formline       CPerlObj::Perl_ck_formline
-#undef  ck_ftst
-#define ck_ftst           CPerlObj::Perl_ck_ftst
-#undef  ck_fun
-#define ck_fun            CPerlObj::Perl_ck_fun
-#undef  ck_fun_locale
-#define ck_fun_locale     CPerlObj::Perl_ck_fun_locale
-#undef  ck_glob
-#define ck_glob           CPerlObj::Perl_ck_glob
-#undef  ck_grep
-#define ck_grep           CPerlObj::Perl_ck_grep
-#undef  ck_gvconst
-#define ck_gvconst        CPerlObj::Perl_ck_gvconst
-#undef  ck_index
-#define ck_index          CPerlObj::Perl_ck_index
-#undef  ck_lengthconst
-#define ck_lengthconst    CPerlObj::Perl_ck_lengthconst
-#undef  ck_lfun
-#define ck_lfun           CPerlObj::Perl_ck_lfun
-#undef  ck_listiob
-#define ck_listiob        CPerlObj::Perl_ck_listiob
-#undef  ck_match
-#define ck_match          CPerlObj::Perl_ck_match
-#undef  ck_null
-#define ck_null           CPerlObj::Perl_ck_null
-#undef  ck_repeat
-#define ck_repeat         CPerlObj::Perl_ck_repeat
-#undef  ck_require
-#define ck_require        CPerlObj::Perl_ck_require
-#undef  ck_retarget
-#define ck_retarget       CPerlObj::Perl_ck_retarget
-#undef  ck_rfun
-#define ck_rfun           CPerlObj::Perl_ck_rfun
-#undef  ck_rvconst
-#define ck_rvconst        CPerlObj::Perl_ck_rvconst
-#undef  ck_scmp
-#define ck_scmp           CPerlObj::Perl_ck_scmp
-#undef  ck_select
-#define ck_select         CPerlObj::Perl_ck_select
-#undef  ck_shift
-#define ck_shift          CPerlObj::Perl_ck_shift
-#undef  ck_sort
-#define ck_sort           CPerlObj::Perl_ck_sort
-#undef  ck_spair
-#define ck_spair          CPerlObj::Perl_ck_spair
-#undef  ck_split
-#define ck_split          CPerlObj::Perl_ck_split
-#undef  ck_subr
-#define ck_subr           CPerlObj::Perl_ck_subr
-#undef  ck_svconst
-#define ck_svconst        CPerlObj::Perl_ck_svconst
-#undef  ck_trunc
-#define ck_trunc          CPerlObj::Perl_ck_trunc
-#undef  convert
-#define convert           CPerlObj::Perl_convert
-#undef  cpytill
-#define cpytill           CPerlObj::Perl_cpytill
-#undef  croak
-#define croak             CPerlObj::Perl_croak
-#undef  cv_ckproto
-#define cv_ckproto        CPerlObj::Perl_cv_ckproto
-#undef  cv_clone
-#define cv_clone          CPerlObj::Perl_cv_clone
-#undef  cv_clone2
-#define cv_clone2         CPerlObj::cv_clone2
-#undef  cv_const_sv
-#define cv_const_sv       CPerlObj::Perl_cv_const_sv
-#undef  cv_undef 
-#define cv_undef          CPerlObj::Perl_cv_undef 
-#undef  cx_dump
-#define cx_dump           CPerlObj::Perl_cx_dump
-#undef  cxinc
-#define cxinc             CPerlObj::Perl_cxinc
-#undef  deb
-#define deb               CPerlObj::Perl_deb
-#undef  deb_growlevel
-#define deb_growlevel     CPerlObj::Perl_deb_growlevel
-#undef  debop
-#define debop             CPerlObj::Perl_debop
-#undef  debstackptrs
-#define debstackptrs      CPerlObj::Perl_debstackptrs
-#undef  debprof
-#define debprof           CPerlObj::debprof
-#undef  debprofdump
-#define debprofdump       CPerlObj::Perl_debprofdump
-#undef  debstack
-#define debstack          CPerlObj::Perl_debstack
-#undef  del_sv
-#define del_sv            CPerlObj::del_sv
-#undef  del_xiv
-#define del_xiv           CPerlObj::del_xiv
-#undef  del_xnv
-#define del_xnv           CPerlObj::del_xnv
-#undef  del_xpv
-#define del_xpv           CPerlObj::del_xpv
-#undef  del_xrv
-#define del_xrv           CPerlObj::del_xrv
-#undef  delimcpy
-#define delimcpy          CPerlObj::Perl_delimcpy
-#undef  depcom
-#define depcom            CPerlObj::depcom
-#undef  deprecate
-#define deprecate         CPerlObj::Perl_deprecate
-#undef  die
-#define die               CPerlObj::Perl_die
-#undef  die_where
-#define die_where         CPerlObj::Perl_die_where
-#undef  div128
-#define div128            CPerlObj::div128
-#undef  doencodes
-#define doencodes         CPerlObj::doencodes
-#undef  doeval
-#define doeval            CPerlObj::doeval
-#undef  doform
-#define doform            CPerlObj::doform
-#undef  dofindlabel
-#define dofindlabel       CPerlObj::Perl_dofindlabel
-#undef  doparseform
-#define doparseform       CPerlObj::doparseform
-#undef  dopoptoeval
-#define dopoptoeval       CPerlObj::Perl_dopoptoeval
-#undef  dopoptolabel
-#define dopoptolabel      CPerlObj::dopoptolabel
-#undef  dopoptoloop
-#define dopoptoloop       CPerlObj::dopoptoloop
-#undef  dopoptosub
-#define dopoptosub        CPerlObj::dopoptosub
-#undef  dopoptosub_at
-#define dopoptosub_at     CPerlObj::dopoptosub_at
-#undef  dounwind
-#define dounwind          CPerlObj::Perl_dounwind
-#undef  do_aexec
-#define do_aexec          CPerlObj::Perl_do_aexec
-#undef  do_aspawn
-#define do_aspawn         CPerlObj::do_aspawn
-#undef  do_binmode
-#define do_binmode        CPerlObj::Perl_do_binmode
-#undef  do_chop
-#define do_chop           CPerlObj::Perl_do_chop
-#undef  do_close
-#define do_close          CPerlObj::Perl_do_close
-#undef  do_eof
-#define do_eof            CPerlObj::Perl_do_eof
-#undef  do_exec
-#define do_exec           CPerlObj::Perl_do_exec
-#undef  do_execfree
-#define do_execfree       CPerlObj::Perl_do_execfree
-#undef  do_ipcctl
-#define do_ipcctl         CPerlObj::Perl_do_ipcctl
-#undef  do_ipcget
-#define do_ipcget         CPerlObj::Perl_do_ipcget
-#undef  do_join
-#define do_join           CPerlObj::Perl_do_join
-#undef  do_kv
-#define do_kv             CPerlObj::Perl_do_kv
-#undef  do_msgrcv
-#define do_msgrcv         CPerlObj::Perl_do_msgrcv
-#undef  do_msgsnd
-#define do_msgsnd         CPerlObj::Perl_do_msgsnd
-#undef  do_open
-#define do_open           CPerlObj::Perl_do_open
-#undef  do_pipe
-#define do_pipe           CPerlObj::Perl_do_pipe
-#undef  do_print
-#define do_print          CPerlObj::Perl_do_print
-#undef  do_readline
-#define do_readline       CPerlObj::Perl_do_readline
-#undef  do_chomp
-#define do_chomp          CPerlObj::Perl_do_chomp
-#undef  do_seek
-#define do_seek           CPerlObj::Perl_do_seek
-#undef  do_semop
-#define do_semop          CPerlObj::Perl_do_semop
-#undef  do_shmio
-#define do_shmio          CPerlObj::Perl_do_shmio
-#undef  do_sprintf
-#define do_sprintf        CPerlObj::Perl_do_sprintf
-#undef  do_sysseek
-#define do_sysseek        CPerlObj::Perl_do_sysseek
-#undef  do_tell
-#define do_tell           CPerlObj::Perl_do_tell
-#undef  do_trans
-#define do_trans          CPerlObj::Perl_do_trans
-#undef  do_vecset
-#define do_vecset         CPerlObj::Perl_do_vecset
-#undef  do_vop
-#define do_vop            CPerlObj::Perl_do_vop
-#undef  do_clean_all
-#define do_clean_all      CPerlObj::do_clean_all
-#undef  do_clean_named_objs
-#define do_clean_named_objs   CPerlObj::do_clean_named_objs
-#undef  do_clean_objs
-#define do_clean_objs     CPerlObj::do_clean_objs
-#undef  do_report_used
-#define do_report_used    CPerlObj::do_report_used
-#undef  docatch
-#define docatch           CPerlObj::docatch
-#undef  dofile
-#define dofile            CPerlObj::Perl_dofile
-#undef  dowantarray
-#define dowantarray       CPerlObj::Perl_dowantarray
-#undef  dump
-#define dump              CPerlObj::dump
-#undef  dump_all
-#define dump_all          CPerlObj::Perl_dump_all
-#undef  dump_eval
-#define dump_eval         CPerlObj::Perl_dump_eval
-#undef  dump_fds
-#define dump_fds          CPerlObj::Perl_dump_fds
-#undef  dump_form
-#define dump_form         CPerlObj::Perl_dump_form
-#undef  dump_gv
-#define dump_gv           CPerlObj::Perl_dump_gv
-#undef  dump_mstats
-#define dump_mstats       CPerlObj::Perl_dump_mstats
-#undef  dump_op
-#define dump_op           CPerlObj::Perl_dump_op
-#undef  dump_pm
-#define dump_pm           CPerlObj::Perl_dump_pm
-#undef  dump_packsubs
-#define dump_packsubs     CPerlObj::Perl_dump_packsubs
-#undef  dump_sub
-#define dump_sub          CPerlObj::Perl_dump_sub
-#undef  dumpuntil
-#define dumpuntil         CPerlObj::dumpuntil
-#undef  emulate_eaccess
-#define emulate_eaccess   CPerlObj::emulate_eaccess
-#undef  fbm_compile
-#define fbm_compile       CPerlObj::Perl_fbm_compile
-#undef  fbm_instr
-#define fbm_instr         CPerlObj::Perl_fbm_instr
-#undef  filter_add
-#define filter_add        CPerlObj::Perl_filter_add
-#undef  filter_del
-#define filter_del        CPerlObj::Perl_filter_del
-#undef  filter_gets
-#define filter_gets       CPerlObj::filter_gets
-#undef  filter_read
-#define filter_read       CPerlObj::Perl_filter_read
-#undef  find_beginning
-#define find_beginning    CPerlObj::find_beginning
-#undef  find_script
-#define find_script       CPerlObj::Perl_find_script
-#undef  forbid_setid
-#define forbid_setid      CPerlObj::forbid_setid
-#undef  force_ident
-#define force_ident       CPerlObj::Perl_force_ident
-#undef  force_list
-#define force_list        CPerlObj::Perl_force_list
-#undef  force_next
-#define force_next        CPerlObj::Perl_force_next
-#undef  force_word
-#define force_word        CPerlObj::Perl_force_word
-#undef  force_version
-#define force_version     CPerlObj::force_version
-#undef  form
-#define form              CPerlObj::Perl_form
-#undef  fold_constants
-#define fold_constants    CPerlObj::Perl_fold_constants
-#undef  fprintf
-#define fprintf           CPerlObj::fprintf
-#undef  free_tmps
-#define free_tmps         CPerlObj::Perl_free_tmps
-#undef  gen_constant_list
-#define gen_constant_list CPerlObj::Perl_gen_constant_list
-#undef  get_db_sub
-#define get_db_sub        CPerlObj::get_db_sub
-#undef  get_op_descs
-#define get_op_descs      CPerlObj::Perl_get_op_descs
-#undef  get_op_names
-#define get_op_names      CPerlObj::Perl_get_op_names
-#undef  get_no_modify
-#define get_no_modify     CPerlObj::Perl_get_no_modify
-#undef  get_opargs
-#define get_opargs        CPerlObj::Perl_get_opargs
-#undef  get_specialsv_list
-#define get_specialsv_list CPerlObj::Perl_get_specialsv_list
-#undef  getlogin
-#define getlogin          CPerlObj::getlogin
-#undef  gp_free
-#define gp_free           CPerlObj::Perl_gp_free
-#undef  gp_ref
-#define gp_ref            CPerlObj::Perl_gp_ref
-#undef  gv_autoload4
-#define gv_autoload4      CPerlObj::Perl_gv_autoload4
-#undef  gv_AVadd
-#define gv_AVadd          CPerlObj::Perl_gv_AVadd
-#undef  gv_HVadd
-#define gv_HVadd          CPerlObj::Perl_gv_HVadd
-#undef  gv_IOadd
-#define gv_IOadd          CPerlObj::Perl_gv_IOadd
-#undef  gv_check
-#define gv_check          CPerlObj::Perl_gv_check
-#undef  gv_efullname
-#define gv_efullname      CPerlObj::Perl_gv_efullname
-#undef  gv_efullname3
-#define gv_efullname3     CPerlObj::Perl_gv_efullname3
-#undef  gv_ename
-#define gv_ename          CPerlObj::gv_ename
-#undef  gv_fetchfile
-#define gv_fetchfile      CPerlObj::Perl_gv_fetchfile
-#undef  gv_fetchmeth
-#define gv_fetchmeth      CPerlObj::Perl_gv_fetchmeth
-#undef  gv_fetchmethod
-#define gv_fetchmethod    CPerlObj::Perl_gv_fetchmethod
-#undef  gv_fetchmethod_autoload
-#define gv_fetchmethod_autoload  CPerlObj::Perl_gv_fetchmethod_autoload
-#undef  gv_fetchpv
-#define gv_fetchpv        CPerlObj::Perl_gv_fetchpv
-#undef  gv_fullname
-#define gv_fullname       CPerlObj::Perl_gv_fullname
-#undef  gv_fullname3
-#define gv_fullname3      CPerlObj::Perl_gv_fullname3
-#undef  gv_init
-#define gv_init           CPerlObj::Perl_gv_init
-#undef  gv_init_sv
-#define gv_init_sv        CPerlObj::gv_init_sv
-#undef  gv_stashpv
-#define gv_stashpv        CPerlObj::Perl_gv_stashpv
-#undef  gv_stashpvn
-#define gv_stashpvn       CPerlObj::Perl_gv_stashpvn
-#undef  gv_stashsv
-#define gv_stashsv        CPerlObj::Perl_gv_stashsv
-#undef  he_delayfree
-#define he_delayfree      CPerlObj::Perl_he_delayfree
-#undef  he_free
-#define he_free           CPerlObj::Perl_he_free
-#undef  hfreeentries
-#define hfreeentries      CPerlObj::hfreeentries
-#undef  hoistmust
-#define hoistmust         CPerlObj::Perl_hoistmust
-#undef  hsplit
-#define hsplit            CPerlObj::hsplit
-#undef  hv_clear
-#define hv_clear          CPerlObj::Perl_hv_clear
-#undef  hv_delayfree_ent
-#define hv_delayfree_ent  CPerlObj::Perl_hv_delayfree_ent
-#undef  hv_delete
-#define hv_delete         CPerlObj::Perl_hv_delete
-#undef  hv_delete_ent
-#define hv_delete_ent     CPerlObj::Perl_hv_delete_ent
-#undef  hv_exists
-#define hv_exists         CPerlObj::Perl_hv_exists
-#undef  hv_exists_ent
-#define hv_exists_ent     CPerlObj::Perl_hv_exists_ent
-#undef  hv_free_ent
-#define hv_free_ent       CPerlObj::Perl_hv_free_ent
-#undef  hv_fetch
-#define hv_fetch          CPerlObj::Perl_hv_fetch
-#undef  hv_fetch_ent
-#define hv_fetch_ent      CPerlObj::Perl_hv_fetch_ent
-#undef  hv_iterinit
-#define hv_iterinit       CPerlObj::Perl_hv_iterinit
-#undef  hv_iterkey
-#define hv_iterkey        CPerlObj::Perl_hv_iterkey
-#undef  hv_iterkeysv
-#define hv_iterkeysv      CPerlObj::Perl_hv_iterkeysv
-#undef  hv_iternext
-#define hv_iternext       CPerlObj::Perl_hv_iternext
-#undef  hv_iternextsv
-#define hv_iternextsv     CPerlObj::Perl_hv_iternextsv
-#undef  hv_iterval
-#define hv_iterval        CPerlObj::Perl_hv_iterval
-#undef  hv_ksplit
-#define hv_ksplit         CPerlObj::Perl_hv_ksplit
-#undef  hv_magic
-#define hv_magic          CPerlObj::Perl_hv_magic
-#undef  hv_store
-#define hv_store          CPerlObj::Perl_hv_store
-#undef  hv_store_ent
-#define hv_store_ent      CPerlObj::Perl_hv_store_ent
-#undef  hv_undef 
-#define hv_undef          CPerlObj::Perl_hv_undef 
-#undef  ibcmp
-#define ibcmp             CPerlObj::Perl_ibcmp
-#undef  ibcmp_locale
-#define ibcmp_locale      CPerlObj::Perl_ibcmp_locale
-#undef  incpush
-#define incpush           CPerlObj::incpush
-#undef  incline
-#define incline           CPerlObj::incline
-#undef  incl_perldb
-#define incl_perldb       CPerlObj::incl_perldb
-#undef  ingroup
-#define ingroup           CPerlObj::Perl_ingroup
-#undef  init_debugger
-#define init_debugger     CPerlObj::init_debugger
-#undef  init_ids
-#define init_ids          CPerlObj::init_ids
-#undef  init_interp
-#define init_interp       CPerlObj::init_interp
-#undef  init_main_thread
-#define init_main_thread  CPerlObj::init_main_thread
-#undef  init_main_stash
-#define init_main_stash   CPerlObj::init_main_stash
-#undef  init_lexer
-#define init_lexer        CPerlObj::init_lexer
-#undef  init_perllib
-#define init_perllib      CPerlObj::init_perllib
-#undef  init_predump_symbols
-#define init_predump_symbols  CPerlObj::init_predump_symbols
-#undef  init_postdump_symbols
-#define init_postdump_symbols  CPerlObj::init_postdump_symbols
-#undef  init_stacks
-#define init_stacks       CPerlObj::Perl_init_stacks
-#undef  intro_my
-#define intro_my          CPerlObj::Perl_intro_my
-#undef  nuke_stacks
-#define nuke_stacks       CPerlObj::nuke_stacks
-#undef  instr
-#define instr             CPerlObj::Perl_instr
-#undef  intuit_method
-#define intuit_method     CPerlObj::intuit_method
-#undef  intuit_more
-#define intuit_more       CPerlObj::Perl_intuit_more
-#undef  invert
-#define invert            CPerlObj::Perl_invert
-#undef  is_uni_alnum
-#define is_uni_alnum        CPerlObj::Perl_is_uni_alnum
-#undef  is_uni_alnum_lc
-#define is_uni_alnum_lc     CPerlObj::Perl_is_uni_alnum_lc
-#undef  is_uni_alpha
-#define is_uni_alpha        CPerlObj::Perl_is_uni_alpha
-#undef  is_uni_alpha_lc
-#define is_uni_alpha_lc     CPerlObj::Perl_is_uni_alpha_lc
-#undef  is_uni_digit
-#define is_uni_digit        CPerlObj::Perl_is_uni_digit
-#undef  is_uni_digit_lc
-#define is_uni_digit_lc     CPerlObj::Perl_is_uni_digit_lc
-#undef  is_uni_idfirst
-#define is_uni_idfirst      CPerlObj::Perl_is_uni_idfirst
-#undef  is_uni_idfirst_lc
-#define is_uni_idfirst_lc   CPerlObj::Perl_is_uni_idfirst_lc
-#undef  is_uni_lower
-#define is_uni_lower        CPerlObj::Perl_is_uni_lower
-#undef  is_uni_lower_lc
-#define is_uni_lower_lc     CPerlObj::Perl_is_uni_lower_lc
-#undef  is_uni_print
-#define is_uni_print        CPerlObj::Perl_is_uni_print
-#undef  is_uni_print_lc
-#define is_uni_print_lc     CPerlObj::Perl_is_uni_print_lc
-#undef  is_uni_space
-#define is_uni_space        CPerlObj::Perl_is_uni_space
-#undef  is_uni_space_lc
-#define is_uni_space_lc     CPerlObj::Perl_is_uni_space_lc
-#undef  is_uni_upper
-#define is_uni_upper        CPerlObj::Perl_is_uni_upper
-#undef  is_uni_upper_lc
-#define is_uni_upper_lc     CPerlObj::Perl_is_uni_upper_lc
-#undef  is_utf8_alnum
-#define is_utf8_alnum       CPerlObj::Perl_is_utf8_alnum
-#undef  is_utf8_alpha
-#define is_utf8_alpha       CPerlObj::Perl_is_utf8_alpha
-#undef  is_utf8_digit
-#define is_utf8_digit       CPerlObj::Perl_is_utf8_digit
-#undef  is_utf8_idfirst
-#define is_utf8_idfirst     CPerlObj::Perl_is_utf8_idfirst
-#undef  is_utf8_lower
-#define is_utf8_lower       CPerlObj::Perl_is_utf8_lower
-#undef  is_utf8_mark
-#define is_utf8_mark        CPerlObj::Perl_is_utf8_mark
-#undef  is_utf8_print
-#define is_utf8_print       CPerlObj::Perl_is_utf8_print
-#undef  is_utf8_space
-#define is_utf8_space       CPerlObj::Perl_is_utf8_space
-#undef  is_utf8_upper
-#define is_utf8_upper       CPerlObj::Perl_is_utf8_upper
-
-#undef  io_close
-#define io_close          CPerlObj::Perl_io_close
-#undef  is_an_int
-#define is_an_int         CPerlObj::is_an_int
-#undef  isa_lookup
-#define isa_lookup        CPerlObj::isa_lookup
-#undef  jmaybe
-#define jmaybe            CPerlObj::Perl_jmaybe
-#undef  keyword
-#define keyword           CPerlObj::Perl_keyword
-#undef  leave_scope
-#define leave_scope       CPerlObj::Perl_leave_scope
-#undef  lex_end
-#define lex_end           CPerlObj::Perl_lex_end
-#undef  lex_start
-#define lex_start         CPerlObj::Perl_lex_start
-#undef  linklist
-#define linklist          CPerlObj::Perl_linklist
-#undef  list
-#define list              CPerlObj::Perl_list
-#undef  list_assignment
-#define list_assignment   CPerlObj::list_assignment
-#undef  listkids
-#define listkids          CPerlObj::Perl_listkids
-#undef  lop
-#define lop               CPerlObj::lop
-#undef  localize
-#define localize          CPerlObj::Perl_localize
-#undef  looks_like_number
-#define looks_like_number CPerlObj::Perl_looks_like_number
-#undef  magic_clearenv
-#define magic_clearenv    CPerlObj::Perl_magic_clearenv
-#undef  magic_clear_all_env
-#define magic_clear_all_env CPerlObj::Perl_magic_clear_all_env
-#undef  magic_clearpack
-#define magic_clearpack   CPerlObj::Perl_magic_clearpack
-#undef  magic_clearsig
-#define magic_clearsig    CPerlObj::Perl_magic_clearsig
-#undef  magic_existspack
-#define magic_existspack  CPerlObj::Perl_magic_existspack
-#undef  magic_freeregexp
-#define magic_freeregexp  CPerlObj::Perl_magic_freeregexp
-#undef  magic_get
-#define magic_get         CPerlObj::Perl_magic_get
-#undef  magic_getarylen
-#define magic_getarylen   CPerlObj::Perl_magic_getarylen
-#undef  magic_getdefelem
-#define magic_getdefelem  CPerlObj::Perl_magic_getdefelem
-#undef  magic_getpack
-#define magic_getpack     CPerlObj::Perl_magic_getpack
-#undef  magic_getglob
-#define magic_getglob     CPerlObj::Perl_magic_getglob
-#undef  magic_getnkeys
-#define magic_getnkeys    CPerlObj::Perl_magic_getnkeys
-#undef  magic_getpos
-#define magic_getpos      CPerlObj::Perl_magic_getpos
-#undef  magic_getsig
-#define magic_getsig      CPerlObj::Perl_magic_getsig
-#undef  magic_getsubstr
-#define magic_getsubstr   CPerlObj::Perl_magic_getsubstr
-#undef  magic_gettaint
-#define magic_gettaint    CPerlObj::Perl_magic_gettaint
-#undef  magic_getuvar
-#define magic_getuvar     CPerlObj::Perl_magic_getuvar
-#undef  magic_getvec
-#define magic_getvec     CPerlObj::Perl_magic_getvec
-#undef  magic_len
-#define magic_len         CPerlObj::Perl_magic_len
-#undef  magic_methcall
-#define magic_methcall    CPerlObj::magic_methcall
-#undef  magic_methpack
-#define magic_methpack    CPerlObj::magic_methpack
-#undef  magic_nextpack
-#define magic_nextpack    CPerlObj::Perl_magic_nextpack
-#undef  magic_regdata_cnt
-#define magic_regdata_cnt   CPerlObj::Perl_magic_regdata_cnt
-#undef  magic_regdatum_get
-#define magic_regdatum_get  CPerlObj::Perl_magic_regdatum_get
-#undef  magic_set
-#define magic_set         CPerlObj::Perl_magic_set
-#undef  magic_set_all_env
-#define magic_set_all_env CPerlObj::Perl_magic_set_all_env
-#undef  magic_setamagic
-#define magic_setamagic   CPerlObj::Perl_magic_setamagic
-#undef  magic_setarylen
-#define magic_setarylen   CPerlObj::Perl_magic_setarylen
-#undef  magic_setbm
-#define magic_setbm       CPerlObj::Perl_magic_setbm
-#undef  magic_setcollxfrm
-#define magic_setcollxfrm CPerlObj::Perl_magic_setcollxfrm
-#undef  magic_setdbline
-#define magic_setdbline   CPerlObj::Perl_magic_setdbline
-#undef  magic_setdefelem
-#define magic_setdefelem  CPerlObj::Perl_magic_setdefelem
-#undef  magic_setenv
-#define magic_setenv      CPerlObj::Perl_magic_setenv
-#undef  magic_setfm
-#define magic_setfm       CPerlObj::Perl_magic_setfm
-#undef  magic_setisa
-#define magic_setisa      CPerlObj::Perl_magic_setisa
-#undef  magic_setglob
-#define magic_setglob     CPerlObj::Perl_magic_setglob
-#undef  magic_setmglob
-#define magic_setmglob    CPerlObj::Perl_magic_setmglob
-#undef  magic_setnkeys
-#define magic_setnkeys    CPerlObj::Perl_magic_setnkeys
-#undef  magic_setpack
-#define magic_setpack     CPerlObj::Perl_magic_setpack
-#undef  magic_setpos
-#define magic_setpos      CPerlObj::Perl_magic_setpos
-#undef  magic_setsig
-#define magic_setsig      CPerlObj::Perl_magic_setsig
-#undef  magic_setsubstr
-#define magic_setsubstr   CPerlObj::Perl_magic_setsubstr
-#undef  magic_settaint
-#define magic_settaint    CPerlObj::Perl_magic_settaint
-#undef  magic_setuvar
-#define magic_setuvar     CPerlObj::Perl_magic_setuvar
-#undef  magic_setvec
-#define magic_setvec      CPerlObj::Perl_magic_setvec
-#undef  magic_sizepack
-#define magic_sizepack    CPerlObj::Perl_magic_sizepack
-#undef  magic_unchain
-#define magic_unchain     CPerlObj::Perl_magic_unchain
-#undef  magic_wipepack
-#define magic_wipepack    CPerlObj::Perl_magic_wipepack
-#undef  magicname
-#define magicname         CPerlObj::Perl_magicname
-#undef  malloced_size
-#define malloced_size     CPerlObj::Perl_malloced_size
-#undef  markstack_grow
-#define markstack_grow    CPerlObj::Perl_markstack_grow
-#undef  markstack_ptr
-#define markstack_ptr     CPerlObj::Perl_markstack_ptr
-#undef  mess
-#define mess              CPerlObj::Perl_mess
-#undef  mess_alloc
-#define mess_alloc        CPerlObj::mess_alloc
-#undef  mem_collxfrm
-#define mem_collxfrm      CPerlObj::Perl_mem_collxfrm
-#undef  mg_clear
-#define mg_clear          CPerlObj::Perl_mg_clear
-#undef  mg_copy
-#define mg_copy           CPerlObj::Perl_mg_copy
-#undef  mg_find
-#define mg_find           CPerlObj::Perl_mg_find
-#undef  mg_free
-#define mg_free           CPerlObj::Perl_mg_free
-#undef  mg_get
-#define mg_get            CPerlObj::Perl_mg_get
-#undef  mg_length
-#define mg_length         CPerlObj::Perl_mg_length
-#undef  mg_magical
-#define mg_magical        CPerlObj::Perl_mg_magical
-#undef  mg_set
-#define mg_set            CPerlObj::Perl_mg_set
-#undef  mg_size
-#define mg_size           CPerlObj::Perl_mg_size
-#undef  missingterm
-#define missingterm       CPerlObj::missingterm
-#undef  mod
-#define mod               CPerlObj::Perl_mod
-#undef  modkids
-#define modkids           CPerlObj::Perl_modkids
-#undef  moreswitches
-#define moreswitches      CPerlObj::Perl_moreswitches
-#undef  more_sv
-#define more_sv           CPerlObj::more_sv
-#undef  more_xiv
-#define more_xiv          CPerlObj::more_xiv
-#undef  more_xnv
-#define more_xnv          CPerlObj::more_xnv
-#undef  more_xpv
-#define more_xpv          CPerlObj::more_xpv
-#undef  more_xrv
-#define more_xrv          CPerlObj::more_xrv
-#undef  mstats
-#define mstats            CPerlObj::mstats
-#undef  mul128
-#define mul128            CPerlObj::mul128
-#undef  my
-#define my                CPerlObj::Perl_my
-#undef  my_bcopy
-#define my_bcopy          CPerlObj::Perl_my_bcopy
-#undef  my_bzero
-#define my_bzero          CPerlObj::Perl_my_bzero
-#undef  my_exit
-#define my_exit           CPerlObj::Perl_my_exit
-#undef  my_exit_jump
-#define my_exit_jump      CPerlObj::my_exit_jump
-#undef  my_failure_exit
-#define my_failure_exit   CPerlObj::Perl_my_failure_exit
-#undef  my_lstat
-#define my_lstat          CPerlObj::Perl_my_lstat
-#undef  my_memcmp
-#define my_memcmp         CPerlObj::Perl_my_memcmp
-#undef  my_memset
-#define my_memset         CPerlObj::Perl_my_memset
-#undef  my_pclose
-#define my_pclose         CPerlObj::Perl_my_pclose
-#undef  my_popen
-#define my_popen          CPerlObj::Perl_my_popen
-#undef  my_safemalloc
-#define my_safemalloc     CPerlObj::my_safemalloc
-#undef  my_setenv
-#define my_setenv         CPerlObj::Perl_my_setenv
-#undef  my_stat
-#define my_stat           CPerlObj::Perl_my_stat
-#undef  my_swap
-#define my_swap           CPerlObj::my_swap
-#undef  my_htonl
-#define my_htonl          CPerlObj::my_htonl
-#undef  my_ntohl
-#define my_ntohl          CPerlObj::my_ntohl
-#undef  my_unexec
-#define my_unexec         CPerlObj::Perl_my_unexec
-#undef  newANONLIST
-#define newANONLIST       CPerlObj::Perl_newANONLIST
-#undef  newANONHASH
-#define newANONHASH       CPerlObj::Perl_newANONHASH
-#undef  newANONSUB
-#define newANONSUB        CPerlObj::Perl_newANONSUB
-#undef  newASSIGNOP
-#define newASSIGNOP       CPerlObj::Perl_newASSIGNOP
-#undef  newCONDOP
-#define newCONDOP         CPerlObj::Perl_newCONDOP
-#undef  newCONSTSUB
-#define newCONSTSUB       CPerlObj::Perl_newCONSTSUB
-#undef  newDEFSVOP
-#define newDEFSVOP        CPerlObj::newDEFSVOP
-#undef  newFORM
-#define newFORM           CPerlObj::Perl_newFORM
-#undef  newFOROP
-#define newFOROP          CPerlObj::Perl_newFOROP
-#undef  newLOGOP
-#define newLOGOP          CPerlObj::Perl_newLOGOP
-#undef  newLOOPEX
-#define newLOOPEX         CPerlObj::Perl_newLOOPEX
-#undef  newLOOPOP
-#define newLOOPOP         CPerlObj::Perl_newLOOPOP
-#undef  newMETHOD
-#define newMETHOD         CPerlObj::Perl_newMETHOD
-#undef  newNULLLIST
-#define newNULLLIST       CPerlObj::Perl_newNULLLIST
-#undef  newOP
-#define newOP             CPerlObj::Perl_newOP
-#undef  newPROG
-#define newPROG           CPerlObj::Perl_newPROG
-#undef  newRANGE
-#define newRANGE          CPerlObj::Perl_newRANGE
-#undef  newSLICEOP
-#define newSLICEOP        CPerlObj::Perl_newSLICEOP
-#undef  newSTATEOP
-#define newSTATEOP        CPerlObj::Perl_newSTATEOP
-#undef  newSUB
-#define newSUB            CPerlObj::Perl_newSUB
-#undef  newXS
-#define newXS             CPerlObj::Perl_newXS
-#undef  newXSUB
-#define newXSUB           CPerlObj::Perl_newXSUB
-#undef  newAV
-#define newAV             CPerlObj::Perl_newAV
-#undef  newAVREF
-#define newAVREF          CPerlObj::Perl_newAVREF
-#undef  newBINOP
-#define newBINOP          CPerlObj::Perl_newBINOP
-#undef  newCVREF
-#define newCVREF          CPerlObj::Perl_newCVREF
-#undef  newCVOP
-#define newCVOP           CPerlObj::Perl_newCVOP
-#undef  newGVOP
-#define newGVOP           CPerlObj::Perl_newGVOP
-#undef  newGVgen
-#define newGVgen          CPerlObj::Perl_newGVgen
-#undef  newGVREF
-#define newGVREF          CPerlObj::Perl_newGVREF
-#undef  newHVREF
-#define newHVREF          CPerlObj::Perl_newHVREF
-#undef  newHV
-#define newHV             CPerlObj::Perl_newHV
-#undef  newHVhv
-#define newHVhv           CPerlObj::Perl_newHVhv
-#undef  newIO
-#define newIO             CPerlObj::Perl_newIO
-#undef  newLISTOP
-#define newLISTOP         CPerlObj::Perl_newLISTOP
-#undef  newPMOP
-#define newPMOP           CPerlObj::Perl_newPMOP
-#undef  newPVOP
-#define newPVOP           CPerlObj::Perl_newPVOP
-#undef  newRV
-#define newRV             CPerlObj::Perl_newRV
-#undef  Perl_newRV_noinc
-#define Perl_newRV_noinc  CPerlObj::Perl_newRV_noinc
-#undef  newSV
-#define newSV             CPerlObj::Perl_newSV
-#undef  newSVREF
-#define newSVREF          CPerlObj::Perl_newSVREF
-#undef  newSVOP
-#define newSVOP           CPerlObj::Perl_newSVOP
-#undef  newSViv
-#define newSViv           CPerlObj::Perl_newSViv
-#undef  newSVnv
-#define newSVnv           CPerlObj::Perl_newSVnv
-#undef  newSVpv
-#define newSVpv           CPerlObj::Perl_newSVpv
-#undef  newSVpvf
-#define newSVpvf          CPerlObj::Perl_newSVpvf
-#undef  newSVpvn
-#define newSVpvn          CPerlObj::Perl_newSVpvn
-#undef  newSVrv
-#define newSVrv           CPerlObj::Perl_newSVrv
-#undef  newSVsv
-#define newSVsv           CPerlObj::Perl_newSVsv
-#undef  newUNOP
-#define newUNOP           CPerlObj::Perl_newUNOP
-#undef  newWHILEOP
-#define newWHILEOP        CPerlObj::Perl_newWHILEOP
-#undef  new_constant
-#define new_constant      CPerlObj::new_constant
-#undef  new_logop
-#define new_logop         CPerlObj::new_logop
-#undef  new_stackinfo
-#define new_stackinfo     CPerlObj::Perl_new_stackinfo
-#undef  new_sv
-#define new_sv            CPerlObj::new_sv
-#undef  new_xiv
-#define new_xiv           CPerlObj::new_xiv
-#undef  new_xnv
-#define new_xnv           CPerlObj::new_xnv
-#undef  new_xpv
-#define new_xpv           CPerlObj::new_xpv
-#undef  new_xrv
-#define new_xrv           CPerlObj::new_xrv
-#undef  nextargv
-#define nextargv          CPerlObj::Perl_nextargv
-#undef  nextchar
-#define nextchar          CPerlObj::nextchar
-#undef  ninstr
-#define ninstr            CPerlObj::Perl_ninstr
-#undef  not_a_number
-#define not_a_number      CPerlObj::not_a_number
-#undef  no_fh_allowed
-#define no_fh_allowed     CPerlObj::Perl_no_fh_allowed
-#undef  no_op
-#define no_op             CPerlObj::Perl_no_op
-#undef  null
-#define null              CPerlObj::null
-#undef  profiledata
-#define profiledata       CPerlObj::Perl_profiledata
-#undef  package
-#define package           CPerlObj::Perl_package
-#undef  pad_alloc
-#define pad_alloc         CPerlObj::Perl_pad_alloc
-#undef  pad_allocmy
-#define pad_allocmy       CPerlObj::Perl_pad_allocmy
-#undef  pad_findmy
-#define pad_findmy        CPerlObj::Perl_pad_findmy
-#undef  op_const_sv
-#define op_const_sv       CPerlObj::Perl_op_const_sv
-#undef  op_free
-#define op_free           CPerlObj::Perl_op_free
-#undef  oopsCV
-#define oopsCV            CPerlObj::Perl_oopsCV
-#undef  oopsAV
-#define oopsAV            CPerlObj::Perl_oopsAV
-#undef  oopsHV
-#define oopsHV            CPerlObj::Perl_oopsHV
-#undef  open_script
-#define open_script       CPerlObj::open_script
-#undef  pad_leavemy
-#define pad_leavemy       CPerlObj::Perl_pad_leavemy
-#undef  pad_sv
-#define pad_sv            CPerlObj::Perl_pad_sv
-#undef  pad_findlex
-#define pad_findlex       CPerlObj::pad_findlex
-#undef  pad_free
-#define pad_free          CPerlObj::Perl_pad_free
-#undef  pad_reset
-#define pad_reset         CPerlObj::Perl_pad_reset
-#undef  pad_swipe
-#define pad_swipe         CPerlObj::Perl_pad_swipe
-#undef  peep
-#define peep              CPerlObj::Perl_peep
-#undef  perl_call_argv
-#define perl_call_argv    CPerlObj::perl_call_argv
-#undef  perl_call_method
-#define perl_call_method  CPerlObj::perl_call_method
-#undef  perl_call_pv
-#define perl_call_pv      CPerlObj::perl_call_pv
-#undef  perl_call_sv
-#define perl_call_sv      CPerlObj::perl_call_sv
-#undef  perl_callargv
-#define perl_callargv     CPerlObj::perl_callargv
-#undef  perl_callpv
-#define perl_callpv       CPerlObj::perl_callpv
-#undef  perl_callsv
-#define perl_callsv       CPerlObj::perl_callsv
-#undef  perl_eval_pv
-#define perl_eval_pv      CPerlObj::perl_eval_pv
-#undef  perl_eval_sv
-#define perl_eval_sv      CPerlObj::perl_eval_sv
-#undef  perl_get_sv
-#define perl_get_sv       CPerlObj::perl_get_sv
-#undef  perl_get_av
-#define perl_get_av       CPerlObj::perl_get_av
-#undef  perl_get_hv
-#define perl_get_hv       CPerlObj::perl_get_hv
-#undef  perl_get_cv
-#define perl_get_cv       CPerlObj::perl_get_cv
-#undef  Perl_GetVars
-#define Perl_GetVars      CPerlObj::Perl_GetVars
-#undef  perl_init_fold
-#define perl_init_fold    CPerlObj::perl_init_fold
-#undef  perl_init_i18nl10n
-#define perl_init_i18nl10n CPerlObj::perl_init_i18nl10n
-#undef  perl_init_i18nl14n
-#define perl_init_i18nl14n CPerlObj::perl_init_i18nl14n
-#undef  perl_new_collate
-#define perl_new_collate  CPerlObj::perl_new_collate
-#undef  perl_new_ctype
-#define perl_new_ctype    CPerlObj::perl_new_ctype
-#undef  perl_new_numeric
-#define perl_new_numeric  CPerlObj::perl_new_numeric
-#undef  perl_set_numeric_standard
-#define perl_set_numeric_standard CPerlObj::perl_set_numeric_standard
-#undef  perl_set_numeric_local
-#define perl_set_numeric_local CPerlObj::perl_set_numeric_local
-#undef  perl_require_pv
-#define perl_require_pv   CPerlObj::perl_require_pv
-#undef  perl_thread
-#define perl_thread       CPerlObj::perl_thread
-#undef  pidgone
-#define pidgone           CPerlObj::Perl_pidgone
-#undef  pmflag
-#define pmflag            CPerlObj::Perl_pmflag
-#undef  pmruntime
-#define pmruntime         CPerlObj::Perl_pmruntime
-#undef  pmtrans
-#define pmtrans           CPerlObj::Perl_pmtrans
-#undef  pop_return
-#define pop_return        CPerlObj::Perl_pop_return
-#undef  pop_scope
-#define pop_scope         CPerlObj::Perl_pop_scope
-#undef  prepend_elem
-#define prepend_elem      CPerlObj::Perl_prepend_elem
-#undef  provide_ref
-#define provide_ref       CPerlObj::Perl_provide_ref
-#undef  push_return
-#define push_return       CPerlObj::Perl_push_return
-#undef  push_scope
-#define push_scope        CPerlObj::Perl_push_scope
-#undef  pregcomp
-#define pregcomp          CPerlObj::Perl_pregcomp
-#undef  qsortsv
-#define qsortsv           CPerlObj::qsortsv
-#undef  ref
-#define ref               CPerlObj::Perl_ref
-#undef  refkids
-#define refkids           CPerlObj::Perl_refkids
-#undef  regdump
-#define regdump           CPerlObj::Perl_regdump
-#undef  rsignal
-#define rsignal           CPerlObj::Perl_rsignal
-#undef  rsignal_restore
-#define rsignal_restore   CPerlObj::Perl_rsignal_restore
-#undef  rsignal_save
-#define rsignal_save      CPerlObj::Perl_rsignal_save
-#undef  rsignal_state
-#define rsignal_state     CPerlObj::Perl_rsignal_state
-#undef  pregexec
-#define pregexec          CPerlObj::Perl_pregexec
-#undef  pregfree
-#define pregfree          CPerlObj::Perl_pregfree
-#undef  re_croak2
-#define re_croak2         CPerlObj::re_croak2
-#undef  refto
-#define refto             CPerlObj::refto
-#undef  reg
-#define reg               CPerlObj::reg
-#undef  reg_node
-#define reg_node          CPerlObj::reg_node
-#undef  reganode
-#define reganode          CPerlObj::reganode
-#undef  regatom
-#define regatom           CPerlObj::regatom
-#undef  regbranch
-#define regbranch         CPerlObj::regbranch
-#undef  regc
-#define regc              CPerlObj::regc
-#undef  reguni
-#define reguni            CPerlObj::reguni
-#undef  regcurly
-#define regcurly          CPerlObj::regcurly
-#undef  regcppush
-#define regcppush         CPerlObj::regcppush
-#undef  regcppop
-#define regcppop          CPerlObj::regcppop
-#undef  regcp_set_to
-#define regcp_set_to      CPerlObj::regcp_set_to
-#undef  cache_re
-#define cache_re          CPerlObj::cache_re
-#undef  reghop
-#define reghop            CPerlObj::reghop
-#undef  reghopmaybe
-#define reghopmaybe       CPerlObj::reghopmaybe
-#undef  regclass
-#define regclass          CPerlObj::regclass
-#undef  regclassutf8
-#define regclassutf8      CPerlObj::regclassutf8
-#undef  regexec_flags
-#define regexec_flags     CPerlObj::Perl_regexec_flags
-#undef  reginclass
-#define reginclass        CPerlObj::reginclass
-#undef  reginclassutf8
-#define reginclassutf8    CPerlObj::reginclassutf8
-#undef  reginsert
-#define reginsert         CPerlObj::reginsert
-#undef  regmatch
-#define regmatch          CPerlObj::regmatch
-#undef  regnext
-#define regnext           CPerlObj::Perl_regnext
-#undef  regoptail
-#define regoptail         CPerlObj::regoptail
-#undef  regpiece
-#define regpiece          CPerlObj::regpiece
-#undef  regprop
-#define regprop           CPerlObj::Perl_regprop
-#undef  regrepeat
-#define regrepeat         CPerlObj::regrepeat
-#undef  regrepeat_hard
-#define regrepeat_hard    CPerlObj::regrepeat_hard
-#undef  regset
-#define regset            CPerlObj::regset
-#undef  regtail
-#define regtail           CPerlObj::regtail
-#undef  regtry
-#define regtry            CPerlObj::regtry
-#undef  regwhite
-#define regwhite          CPerlObj::regwhite
-#undef  repeatcpy
-#define repeatcpy         CPerlObj::Perl_repeatcpy
-#undef  restore_expect
-#define restore_expect    CPerlObj::restore_expect
-#undef  restore_lex_expect
-#define restore_lex_expect CPerlObj::restore_lex_expect
-#undef  restore_magic
-#define restore_magic     CPerlObj::restore_magic
-#undef  restore_rsfp
-#define restore_rsfp      CPerlObj::restore_rsfp
-#undef  rninstr
-#define rninstr           CPerlObj::Perl_rninstr
-#undef  runops_standard
-#define runops_standard   CPerlObj::Perl_runops_standard
-#undef  runops_debug
-#define runops_debug      CPerlObj::Perl_runops_debug
-#undef  rxres_free
-#define rxres_free        CPerlObj::Perl_rxres_free
-#undef  rxres_restore
-#define rxres_restore     CPerlObj::Perl_rxres_restore
-#undef  rxres_save
-#define rxres_save        CPerlObj::Perl_rxres_save
-#ifndef MYMALLOC
-#undef  safefree
-#define safefree          CPerlObj::Perl_safefree
-#undef  safecalloc
-#define safecalloc        CPerlObj::Perl_safecalloc
-#undef  safemalloc
-#define safemalloc        CPerlObj::Perl_safemalloc
-#undef  saferealloc
-#define saferealloc       CPerlObj::Perl_saferealloc
-#endif /* MYMALLOC */
-#undef  same_dirent
-#define same_dirent       CPerlObj::same_dirent
-#undef  savepv
-#define savepv            CPerlObj::Perl_savepv
-#undef  savepvn
-#define savepvn           CPerlObj::Perl_savepvn
-#undef  savestack_grow
-#define savestack_grow    CPerlObj::Perl_savestack_grow
-#undef  save_aelem
-#define save_aelem        CPerlObj::Perl_save_aelem
-#undef  save_alloc
-#define save_alloc        CPerlObj::Perl_save_alloc
-#undef  save_aptr
-#define save_aptr         CPerlObj::Perl_save_aptr
-#undef  save_ary
-#define save_ary          CPerlObj::Perl_save_ary
-#undef  save_clearsv
-#define save_clearsv      CPerlObj::Perl_save_clearsv
-#undef  save_delete
-#define save_delete       CPerlObj::Perl_save_delete
-#undef  save_destructor
-#define save_destructor   CPerlObj::Perl_save_destructor
-#undef  save_freesv
-#define save_freesv       CPerlObj::Perl_save_freesv
-#undef  save_freeop
-#define save_freeop       CPerlObj::Perl_save_freeop
-#undef  save_freepv
-#define save_freepv       CPerlObj::Perl_save_freepv
-#undef  save_generic_svref
-#define save_generic_svref CPerlObj::Perl_save_generic_svref
-#undef  save_gp
-#define save_gp           CPerlObj::Perl_save_gp
-#undef  save_hash
-#define save_hash         CPerlObj::Perl_save_hash
-#undef  save_hek
-#define save_hek          CPerlObj::save_hek
-#undef  save_helem
-#define save_helem        CPerlObj::Perl_save_helem
-#undef  save_hints
-#define save_hints        CPerlObj::Perl_save_hints
-#undef  save_hptr
-#define save_hptr         CPerlObj::Perl_save_hptr
-#undef  save_I16
-#define save_I16          CPerlObj::Perl_save_I16
-#undef  save_I32
-#define save_I32          CPerlObj::Perl_save_I32
-#undef  save_int
-#define save_int          CPerlObj::Perl_save_int
-#undef  save_item
-#define save_item         CPerlObj::Perl_save_item
-#undef  save_iv
-#define save_iv           CPerlObj::Perl_save_iv
-#undef  save_lines
-#define save_lines        CPerlObj::save_lines
-#undef  save_list
-#define save_list         CPerlObj::Perl_save_list
-#undef  save_long
-#define save_long         CPerlObj::Perl_save_long
-#undef  save_magic
-#define save_magic        CPerlObj::save_magic
-#undef  save_nogv
-#define save_nogv         CPerlObj::Perl_save_nogv
-#undef  save_op
-#define save_op           CPerlObj::Perl_save_op
-#undef  save_scalar
-#define save_scalar       CPerlObj::Perl_save_scalar
-#undef  save_scalar_at
-#define save_scalar_at    CPerlObj::save_scalar_at
-#undef  save_pptr
-#define save_pptr         CPerlObj::Perl_save_pptr
-#undef  save_re_context
-#define save_re_context   CPerlObj::Perl_save_re_context
-#undef  save_sptr
-#define save_sptr         CPerlObj::Perl_save_sptr
-#undef  save_svref
-#define save_svref        CPerlObj::Perl_save_svref
-#undef  save_threadsv
-#define save_threadsv     CPerlObj::Perl_save_threadsv
-#undef  sawparens
-#define sawparens         CPerlObj::Perl_sawparens
-#undef  scalar
-#define scalar            CPerlObj::Perl_scalar
-#undef  scalarboolean
-#define scalarboolean     CPerlObj::scalarboolean
-#undef  scalarkids
-#define scalarkids        CPerlObj::Perl_scalarkids
-#undef  scalarseq
-#define scalarseq         CPerlObj::Perl_scalarseq
-#undef  scalarvoid
-#define scalarvoid        CPerlObj::Perl_scalarvoid
-#undef  scan_commit
-#define scan_commit       CPerlObj::scan_commit
-#undef  scan_const
-#define scan_const        CPerlObj::Perl_scan_const
-#undef  scan_formline
-#define scan_formline     CPerlObj::Perl_scan_formline
-#undef  scan_ident
-#define scan_ident        CPerlObj::Perl_scan_ident
-#undef  scan_inputsymbol
-#define scan_inputsymbol  CPerlObj::Perl_scan_inputsymbol
-#undef  scan_heredoc
-#define scan_heredoc      CPerlObj::Perl_scan_heredoc
-#undef  scan_hex
-#define scan_hex          CPerlObj::Perl_scan_hex
-#undef  scan_num
-#define scan_num          CPerlObj::Perl_scan_num
-#undef  scan_oct
-#define scan_oct          CPerlObj::Perl_scan_oct
-#undef  scan_pat
-#define scan_pat          CPerlObj::Perl_scan_pat
-#undef  scan_str
-#define scan_str          CPerlObj::Perl_scan_str
-#undef  scan_subst
-#define scan_subst        CPerlObj::Perl_scan_subst
-#undef  scan_trans
-#define scan_trans        CPerlObj::Perl_scan_trans
-#undef  scan_word
-#define scan_word         CPerlObj::Perl_scan_word
-#undef  scope
-#define scope             CPerlObj::Perl_scope
-#undef  screaminstr
-#define screaminstr       CPerlObj::Perl_screaminstr
-#undef  seed
-#define seed              CPerlObj::seed
-#undef  setdefout
-#define setdefout         CPerlObj::Perl_setdefout
-#undef  setenv_getix
-#define setenv_getix      CPerlObj::Perl_setenv_getix
-#undef  sharepvn
-#define sharepvn          CPerlObj::Perl_sharepvn
-#undef  set_csh
-#define set_csh           CPerlObj::set_csh
-#undef  sighandler
-#define sighandler        CPerlObj::Perl_sighandler
-#undef  share_hek
-#define share_hek         CPerlObj::Perl_share_hek
-#undef  skipspace
-#define skipspace         CPerlObj::Perl_skipspace
-#undef  sortcv
-#define sortcv            CPerlObj::sortcv
-#ifndef PERL_OBJECT
-#undef  stack_base
-#define stack_base        CPerlObj::Perl_stack_base
-#endif
-#undef  stack_grow
-#define stack_grow        CPerlObj::Perl_stack_grow
-#undef  start_subparse
-#define start_subparse    CPerlObj::Perl_start_subparse
-#undef  study_chunk
-#define study_chunk       CPerlObj::study_chunk
-#undef  sub_crush_depth
-#define sub_crush_depth   CPerlObj::Perl_sub_crush_depth
-#undef  sublex_done
-#define sublex_done       CPerlObj::sublex_done
-#undef  sublex_push
-#define sublex_push       CPerlObj::sublex_push
-#undef  sublex_start
-#define sublex_start      CPerlObj::sublex_start
-#undef  sv_2bool
-#define sv_2bool          CPerlObj::Perl_sv_2bool
-#undef  sv_2cv
-#define sv_2cv            CPerlObj::Perl_sv_2cv
-#undef  sv_2io
-#define sv_2io            CPerlObj::Perl_sv_2io
-#undef  sv_2iv
-#define sv_2iv            CPerlObj::Perl_sv_2iv
-#undef  sv_2uv
-#define sv_2uv            CPerlObj::Perl_sv_2uv
-#undef  sv_2mortal
-#define sv_2mortal        CPerlObj::Perl_sv_2mortal
-#undef  sv_2nv
-#define sv_2nv            CPerlObj::Perl_sv_2nv
-#undef  sv_2pv
-#define sv_2pv            CPerlObj::Perl_sv_2pv
-#undef  sv_add_arena
-#define sv_add_arena      CPerlObj::Perl_sv_add_arena
-#undef  sv_backoff
-#define sv_backoff        CPerlObj::Perl_sv_backoff
-#undef  sv_bless
-#define sv_bless          CPerlObj::Perl_sv_bless
-#undef  sv_catpv
-#define sv_catpv          CPerlObj::Perl_sv_catpv
-#undef  sv_catpv_mg
-#define sv_catpv_mg       CPerlObj::Perl_sv_catpv_mg
-#undef  sv_catpvf
-#define sv_catpvf         CPerlObj::Perl_sv_catpvf
-#undef  sv_catpvf_mg
-#define sv_catpvf_mg      CPerlObj::Perl_sv_catpvf_mg
-#undef  sv_catpvn
-#define sv_catpvn         CPerlObj::Perl_sv_catpvn
-#undef  sv_catpvn_mg
-#define sv_catpvn_mg      CPerlObj::Perl_sv_catpvn_mg
-#undef  sv_catsv
-#define sv_catsv          CPerlObj::Perl_sv_catsv
-#undef  sv_catsv_mg
-#define sv_catsv_mg       CPerlObj::Perl_sv_catsv_mg
-#undef  sv_check_thinkfirst
-#define sv_check_thinkfirst CPerlObj::sv_check_thinkfirst
-#undef  sv_chop
-#define sv_chop           CPerlObj::Perl_sv_chop
-#undef  sv_clean_all
-#define sv_clean_all      CPerlObj::Perl_sv_clean_all
-#undef  sv_clean_objs
-#define sv_clean_objs     CPerlObj::Perl_sv_clean_objs
-#undef  sv_clear
-#define sv_clear          CPerlObj::Perl_sv_clear
-#undef  sv_cmp
-#define sv_cmp            CPerlObj::Perl_sv_cmp
-#undef  sv_cmp_locale
-#define sv_cmp_locale     CPerlObj::Perl_sv_cmp_locale
-#undef  sv_collxfrm
-#define sv_collxfrm       CPerlObj::Perl_sv_collxfrm
-#undef  sv_compile_2op
-#define sv_compile_2op    CPerlObj::Perl_sv_compile_2op
-#undef  sv_dec
-#define sv_dec            CPerlObj::Perl_sv_dec
-#undef  sv_derived_from
-#define sv_derived_from   CPerlObj::Perl_sv_derived_from
-#undef  sv_dump
-#define sv_dump           CPerlObj::Perl_sv_dump
-#undef  sv_eq
-#define sv_eq             CPerlObj::Perl_sv_eq
-#undef  sv_free
-#define sv_free           CPerlObj::Perl_sv_free
-#undef  sv_free_arenas
-#define sv_free_arenas    CPerlObj::Perl_sv_free_arenas
-#undef  sv_gets
-#define sv_gets           CPerlObj::Perl_sv_gets
-#undef  sv_grow
-#define sv_grow           CPerlObj::Perl_sv_grow
-#undef  sv_inc
-#define sv_inc            CPerlObj::Perl_sv_inc
-#undef  sv_insert
-#define sv_insert         CPerlObj::Perl_sv_insert
-#undef  sv_isa
-#define sv_isa            CPerlObj::Perl_sv_isa
-#undef  sv_isobject
-#define sv_isobject       CPerlObj::Perl_sv_isobject
-#undef  sv_iv
-#define sv_iv             CPerlObj::Perl_sv_iv
-#undef  sv_len
-#define sv_len            CPerlObj::Perl_sv_len
-#undef  sv_len_utf8
-#define sv_len_utf8       CPerlObj::Perl_sv_len_utf8
-#undef  sv_pos_u2b
-#define sv_pos_u2b        CPerlObj::Perl_sv_pos_u2b
-#undef  sv_pos_b2u
-#define sv_pos_b2u        CPerlObj::Perl_sv_pos_b2u
-#undef  sv_magic
-#define sv_magic          CPerlObj::Perl_sv_magic
-#undef  sv_mortalcopy
-#define sv_mortalcopy     CPerlObj::Perl_sv_mortalcopy
-#undef  sv_mortalgrow
-#define sv_mortalgrow     CPerlObj::sv_mortalgrow
-#undef  sv_newmortal
-#define sv_newmortal      CPerlObj::Perl_sv_newmortal
-#undef  sv_newref
-#define sv_newref         CPerlObj::Perl_sv_newref
-#undef  sv_nv
-#define sv_nv             CPerlObj::Perl_sv_nv
-#undef  sv_peek
-#define sv_peek           CPerlObj::Perl_sv_peek
-#undef  sv_pvn
-#define sv_pvn            CPerlObj::Perl_sv_pvn
-#undef  sv_pvn_force
-#define sv_pvn_force      CPerlObj::Perl_sv_pvn_force
-#undef  sv_reftype
-#define sv_reftype        CPerlObj::Perl_sv_reftype
-#undef  sv_replace
-#define sv_replace        CPerlObj::Perl_sv_replace
-#undef  sv_report_used
-#define sv_report_used    CPerlObj::Perl_sv_report_used
-#undef  sv_reset
-#define sv_reset          CPerlObj::Perl_sv_reset
-#undef  sv_setiv
-#define sv_setiv          CPerlObj::Perl_sv_setiv
-#undef  sv_setiv_mg
-#define sv_setiv_mg       CPerlObj::Perl_sv_setiv_mg
-#undef  sv_setnv
-#define sv_setnv          CPerlObj::Perl_sv_setnv
-#undef  sv_setnv_mg
-#define sv_setnv_mg       CPerlObj::Perl_sv_setnv_mg
-#undef  sv_setuv
-#define sv_setuv          CPerlObj::Perl_sv_setuv
-#undef  sv_setuv_mg
-#define sv_setuv_mg       CPerlObj::Perl_sv_setuv_mg
-#undef  sv_setref_iv
-#define sv_setref_iv      CPerlObj::Perl_sv_setref_iv
-#undef  sv_setref_nv
-#define sv_setref_nv      CPerlObj::Perl_sv_setref_nv
-#undef  sv_setref_pv
-#define sv_setref_pv      CPerlObj::Perl_sv_setref_pv
-#undef  sv_setref_pvn
-#define sv_setref_pvn     CPerlObj::Perl_sv_setref_pvn
-#undef  sv_setpv
-#define sv_setpv          CPerlObj::Perl_sv_setpv
-#undef  sv_setpv_mg
-#define sv_setpv_mg       CPerlObj::Perl_sv_setpv_mg
-#undef  sv_setpvf
-#define sv_setpvf         CPerlObj::Perl_sv_setpvf
-#undef  sv_setpvf_mg
-#define sv_setpvf_mg      CPerlObj::Perl_sv_setpvf_mg
-#undef  sv_setpviv
-#define sv_setpviv        CPerlObj::Perl_sv_setpviv
-#undef  sv_setpviv_mg
-#define sv_setpviv_mg     CPerlObj::Perl_sv_setpviv_mg
-#undef  sv_setpvn
-#define sv_setpvn         CPerlObj::Perl_sv_setpvn
-#undef  sv_setpvn_mg
-#define sv_setpvn_mg      CPerlObj::Perl_sv_setpvn_mg
-#undef  sv_setsv
-#define sv_setsv          CPerlObj::Perl_sv_setsv
-#undef  sv_setsv_mg
-#define sv_setsv_mg       CPerlObj::Perl_sv_setsv_mg
-#undef  sv_taint
-#define sv_taint          CPerlObj::Perl_sv_taint
-#undef  sv_tainted
-#define sv_tainted        CPerlObj::Perl_sv_tainted
-#undef  sv_true
-#define sv_true           CPerlObj::Perl_sv_true
-#undef  sv_unglob
-#define sv_unglob         CPerlObj::sv_unglob
-#undef  sv_unmagic
-#define sv_unmagic        CPerlObj::Perl_sv_unmagic
-#undef  sv_unref
-#define sv_unref          CPerlObj::Perl_sv_unref
-#undef  sv_untaint
-#define sv_untaint        CPerlObj::Perl_sv_untaint
-#undef  sv_upgrade
-#define sv_upgrade        CPerlObj::Perl_sv_upgrade
-#undef  sv_usepvn
-#define sv_usepvn         CPerlObj::Perl_sv_usepvn
-#undef  sv_usepvn_mg
-#define sv_usepvn_mg      CPerlObj::Perl_sv_usepvn_mg
-#undef  sv_uv
-#define sv_uv             CPerlObj::Perl_sv_uv
-#undef  sv_vcatpvfn
-#define sv_vcatpvfn       CPerlObj::Perl_sv_vcatpvfn
-#undef  sv_vsetpvfn
-#define sv_vsetpvfn       CPerlObj::Perl_sv_vsetpvfn
-#undef  swash_init
-#define swash_init        CPerlObj::Perl_swash_init
-#undef  swash_fetch
-#define swash_fetch       CPerlObj::Perl_swash_fetch
-#undef  taint_env
-#define taint_env         CPerlObj::Perl_taint_env
-#undef  taint_not
-#define taint_not         CPerlObj::Perl_taint_not
-#undef  taint_proper
-#define taint_proper      CPerlObj::Perl_taint_proper
-#undef  tokeq
-#define tokeq             CPerlObj::tokeq
-
-#undef  to_uni_lower
-#define to_uni_lower        CPerlObj::Perl_to_uni_lower
-#undef  to_uni_lower_lc
-#define to_uni_lower_lc     CPerlObj::Perl_to_uni_lower_lc
-#undef  to_uni_title
-#define to_uni_title        CPerlObj::Perl_to_uni_title
-#undef  to_uni_title_lc
-#define to_uni_title_lc     CPerlObj::Perl_to_uni_title_lc
-#undef  to_uni_upper
-#define to_uni_upper        CPerlObj::Perl_to_uni_upper
-#undef  to_uni_upper_lc
-#define to_uni_upper_lc     CPerlObj::Perl_to_uni_upper_lc
-#undef  to_utf8_lower
-#define to_utf8_lower       CPerlObj::Perl_to_utf8_lower
-#undef  to_utf8_title
-#define to_utf8_title       CPerlObj::Perl_to_utf8_title
-#undef  to_utf8_upper
-#define to_utf8_upper       CPerlObj::Perl_to_utf8_upper
-
-#undef do_trans_CC_simple
-#define do_trans_CC_simple     CPerlObj::do_trans_CC_simple
-#undef do_trans_CC_count
-#define do_trans_CC_count      CPerlObj::do_trans_CC_count
-#undef do_trans_CC_complex
-#define do_trans_CC_complex    CPerlObj::do_trans_CC_complex
-#undef do_trans_UU_simple
-#define do_trans_UU_simple     CPerlObj::do_trans_UU_simple
-#undef do_trans_UU_count
-#define do_trans_UU_count      CPerlObj::do_trans_UU_count
-#undef do_trans_UU_complex
-#define do_trans_UU_complex    CPerlObj::do_trans_UU_complex
-#undef do_trans_UC_simple
-#define do_trans_UC_simple     CPerlObj::do_trans_UC_simple
-#undef do_trans_CU_simple
-#define do_trans_CU_simple     CPerlObj::do_trans_CU_simple
-#undef do_trans_UC_trivial
-#define do_trans_UC_trivial    CPerlObj::do_trans_UC_trivial
-#undef do_trans_CU_trivial
-#define do_trans_CU_trivial    CPerlObj::do_trans_CU_trivial
-
-#undef  too_few_arguments
-#define too_few_arguments CPerlObj::Perl_too_few_arguments
-#undef  too_many_arguments
-#define too_many_arguments CPerlObj::Perl_too_many_arguments
-#undef  unlnk
-#define unlnk             CPerlObj::unlnk
-#undef  unsharepvn
-#define unsharepvn        CPerlObj::Perl_unsharepvn
-#undef  unshare_hek
-#define unshare_hek       CPerlObj::Perl_unshare_hek
-#undef  unwind_handler_stack
-#define unwind_handler_stack CPerlObj::unwind_handler_stack
-#undef  usage
-#define usage             CPerlObj::usage
-#undef  utilize
-#define utilize           CPerlObj::Perl_utilize
-
-
-#undef  utf16_to_utf8
-#define utf16_to_utf8       CPerlObj::Perl_utf16_to_utf8
-#undef  utf16_to_utf8_reversed
-#define utf16_to_utf8_reversed    CPerlObj::Perl_utf16_to_utf8_reversed
-#undef  utf8_distance
-#define utf8_distance       CPerlObj::Perl_utf8_distance
-#undef  utf8_hop
-#define utf8_hop            CPerlObj::Perl_utf8_hop
-#undef  utf8_to_uv
-#define utf8_to_uv          CPerlObj::Perl_utf8_to_uv
-#undef  uv_to_utf8
-#define uv_to_utf8          CPerlObj::Perl_uv_to_utf8
-
-
-#undef  validate_suid
-#define validate_suid     CPerlObj::validate_suid
-#undef  visit
-#define visit             CPerlObj::visit
-#undef  vivify_defelem
-#define vivify_defelem    CPerlObj::Perl_vivify_defelem
-#undef  vivify_ref
-#define vivify_ref        CPerlObj::Perl_vivify_ref
-#undef  wait4pid
-#define wait4pid          CPerlObj::Perl_wait4pid
-#undef  warn
-#define warn              CPerlObj::Perl_warn
-#undef  warner
-#define warner            CPerlObj::Perl_warner
-#undef  watch
-#define watch             CPerlObj::Perl_watch
-#undef  whichsig
-#define whichsig          CPerlObj::Perl_whichsig
-#undef  win32_textfilter
-#define win32_textfilter  CPerlObj::win32_textfilter
-#undef  yyerror
-#define yyerror           CPerlObj::Perl_yyerror
-#undef  yylex
-#define yylex             CPerlObj::Perl_yylex
-#undef  yyparse
-#define yyparse           CPerlObj::Perl_yyparse
-#undef  yywarn
-#define yywarn            CPerlObj::Perl_yywarn
-#undef  yydestruct
-#define yydestruct        CPerlObj::Perl_yydestruct
-
-#define new_he            CPerlObj::new_he
-#define more_he           CPerlObj::more_he
-#define del_he            CPerlObj::del_he
-
-#if defined(WIN32) && !defined(WIN32IO_IS_STDIO)
-#undef errno
-#define errno             CPerlObj::ErrorNo()
-
-#endif /* WIN32 */
-
-#endif /* __Objpp_h__ */
diff --git a/op.c b/op.c
index 4af15e7..75c7d9f 100644 (file)
--- a/op.c
+++ b/op.c
@@ -19,9 +19,9 @@
 #include "perl.h"
 
 #ifdef PERL_OBJECT
-#define CHECKCALL this->*check
+#define CHECKCALL this->*PL_check
 #else
-#define CHECKCALL *check
+#define CHECKCALL *PL_check
 #endif
 
 /*
@@ -31,7 +31,7 @@
 #define CHECKOP(type,o) \
     ((PL_op_mask && PL_op_mask[type])                                  \
      ? ( op_free((OP*)o),                                      \
-        croak("%s trapped by operation mask", op_desc[type]),  \
+        croak("%s trapped by operation mask", PL_op_desc[type]),       \
         Nullop )                                               \
      : (CHECKCALL[type])((OP*)o))
 
@@ -65,7 +65,7 @@ STATIC OP *
 no_fh_allowed(OP *o)
 {
     yyerror(form("Missing comma after first argument to %s function",
-                op_desc[o->op_type]));
+                PL_op_desc[o->op_type]));
     return o;
 }
 
@@ -87,7 +87,7 @@ STATIC void
 bad_type(I32 n, char *t, char *name, OP *kid)
 {
     yyerror(form("Type of arg %d to %s must be %s (not %s)",
-                (int)n, name, t, op_desc[kid->op_type]));
+                (int)n, name, t, PL_op_desc[kid->op_type]));
 }
 
 void
@@ -95,7 +95,7 @@ assertref(OP *o)
 {
     int type = o->op_type;
     if (type != OP_AELEM && type != OP_HELEM && type != OP_GELEM) {
-       yyerror(form("Can't use subscript on %s", op_desc[type]));
+       yyerror(form("Can't use subscript on %s", PL_op_desc[type]));
        if (type == OP_ENTERSUB || type == OP_RV2HV || type == OP_PADHV) {
            dTHR;
            SV *msg = sv_2mortal(
@@ -432,11 +432,11 @@ pad_alloc(I32 optype, U32 tmptype)
 #ifdef USE_THREADS
     DEBUG_X(PerlIO_printf(Perl_debug_log, "0x%lx Pad 0x%lx alloc %ld for %s\n",
                          (unsigned long) thr, (unsigned long) PL_curpad,
-                         (long) retval, op_name[optype]));
+                         (long) retval, PL_op_name[optype]));
 #else
     DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%lx alloc %ld for %s\n",
                          (unsigned long) PL_curpad,
-                         (long) retval, op_name[optype]));
+                         (long) retval, PL_op_name[optype]));
 #endif /* USE_THREADS */
     return (PADOFFSET)retval;
 }
@@ -624,7 +624,7 @@ op_free(OP *o)
 #endif /* USE_THREADS */
     default:
        if (!(o->op_flags & OPf_REF)
-           || (check[o->op_type] != FUNC_NAME_TO_PTR(ck_ftst)))
+           || (PL_check[o->op_type] != FUNC_NAME_TO_PTR(ck_ftst)))
            break;
        /* FALL THROUGH */
     case OP_GVSV:
@@ -678,7 +678,7 @@ null(OP *o)
        pad_free(o->op_targ);
     o->op_targ = o->op_type;
     o->op_type = OP_NULL;
-    o->op_ppaddr = ppaddr[OP_NULL];
+    o->op_ppaddr = PL_ppaddr[OP_NULL];
 }
 
 /* Contextualizers */
@@ -820,7 +820,7 @@ scalarvoid(OP *o)
 
     switch (o->op_type) {
     default:
-       if (!(opargs[o->op_type] & OA_FOLDCONST))
+       if (!(PL_opargs[o->op_type] & OA_FOLDCONST))
            break;
        /* FALL THROUGH */
     case OP_REPEAT:
@@ -900,7 +900,7 @@ scalarvoid(OP *o)
     case OP_GETLOGIN:
       func_ops:
        if (!(o->op_private & OPpLVAL_INTRO))
-           useless = op_desc[o->op_type];
+           useless = PL_op_desc[o->op_type];
        break;
 
     case OP_RV2GV:
@@ -939,12 +939,12 @@ scalarvoid(OP *o)
 
     case OP_POSTINC:
        o->op_type = OP_PREINC;         /* pre-increment is faster */
-       o->op_ppaddr = ppaddr[OP_PREINC];
+       o->op_ppaddr = PL_ppaddr[OP_PREINC];
        break;
 
     case OP_POSTDEC:
        o->op_type = OP_PREDEC;         /* pre-decrement is faster */
-       o->op_ppaddr = ppaddr[OP_PREDEC];
+       o->op_ppaddr = PL_ppaddr[OP_PREDEC];
        break;
 
     case OP_OR:
@@ -1152,7 +1152,7 @@ mod(OP *o, I32 type)
        if ((type == OP_UNDEF || type == OP_REFGEN) &&
            !(o->op_flags & OPf_STACKED)) {
            o->op_type = OP_RV2CV;              /* entersub => rv2cv */
-           o->op_ppaddr = ppaddr[OP_RV2CV];
+           o->op_ppaddr = PL_ppaddr[OP_RV2CV];
            assert(cUNOPo->op_first->op_type == OP_NULL);
            null(((LISTOP*)cUNOPo->op_first)->op_first);/* disable pushmark */
            break;
@@ -1165,8 +1165,8 @@ mod(OP *o, I32 type)
            break;
        yyerror(form("Can't modify %s in %s",
                     (o->op_type == OP_NULL && (o->op_flags & OPf_SPECIAL)
-                     ? "do block" : op_desc[o->op_type]),
-                    type ? op_desc[type] : "local"));
+                     ? "do block" : PL_op_desc[o->op_type]),
+                    type ? PL_op_desc[type] : "local"));
        return o;
 
     case OP_PREINC:
@@ -1393,7 +1393,7 @@ ref(OP *o, I32 type)
        if ((type == OP_DEFINED || type == OP_LOCK) &&
            !(o->op_flags & OPf_STACKED)) {
            o->op_type = OP_RV2CV;             /* entersub => rv2cv */
-           o->op_ppaddr = ppaddr[OP_RV2CV];
+           o->op_ppaddr = PL_ppaddr[OP_RV2CV];
            assert(cUNOPo->op_first->op_type == OP_NULL);
            null(((LISTOP*)cUNOPo->op_first)->op_first);        /* disable pushmark */
            o->op_flags |= OPf_SPECIAL;
@@ -1485,7 +1485,7 @@ my(OP *o)
             type != OP_PADHV &&
             type != OP_PUSHMARK)
     {
-       yyerror(form("Can't declare %s in my", op_desc[o->op_type]));
+       yyerror(form("Can't declare %s in my", PL_op_desc[o->op_type]));
        return o;
     }
     o->op_flags |= OPf_MOD;
@@ -1512,7 +1512,7 @@ bind_match(I32 type, OP *left, OP *right)
        left->op_type == OP_RV2HV ||
        left->op_type == OP_PADAV ||
        left->op_type == OP_PADHV)) {
-      char *desc = op_desc[(right->op_type == OP_SUBST ||
+      char *desc = PL_op_desc[(right->op_type == OP_SUBST ||
                             right->op_type == OP_TRANS)
                            ? right->op_type : OP_MATCH];
       char *sample = ((left->op_type == OP_RV2AV ||
@@ -1558,13 +1558,13 @@ scope(OP *o)
        if (o->op_flags & OPf_PARENS || PERLDB_NOOPT || PL_tainting) {
            o = prepend_elem(OP_LINESEQ, newOP(OP_ENTER, 0), o);
            o->op_type = OP_LEAVE;
-           o->op_ppaddr = ppaddr[OP_LEAVE];
+           o->op_ppaddr = PL_ppaddr[OP_LEAVE];
        }
        else {
            if (o->op_type == OP_LINESEQ) {
                OP *kid;
                o->op_type = OP_SCOPE;
-               o->op_ppaddr = ppaddr[OP_SCOPE];
+               o->op_ppaddr = PL_ppaddr[OP_SCOPE];
                kid = ((LISTOP*)o)->op_first;
                if (kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE){
                    SvREFCNT_dec(((COP*)kid)->cop_filegv);
@@ -1729,15 +1729,15 @@ fold_constants(register OP *o)
     I32 type = o->op_type;
     SV *sv;
 
-    if (opargs[type] & OA_RETSCALAR)
+    if (PL_opargs[type] & OA_RETSCALAR)
        scalar(o);
-    if (opargs[type] & OA_TARGET)
+    if (PL_opargs[type] & OA_TARGET)
        o->op_targ = pad_alloc(type, SVs_PADTMP);
 
-    if ((opargs[type] & OA_OTHERINT) && (PL_hints & HINT_INTEGER))
-       o->op_ppaddr = ppaddr[type = ++(o->op_type)];
+    if ((PL_opargs[type] & OA_OTHERINT) && (PL_hints & HINT_INTEGER))
+       o->op_ppaddr = PL_ppaddr[type = ++(o->op_type)];
 
-    if (!(opargs[type] & OA_FOLDCONST))
+    if (!(PL_opargs[type] & OA_FOLDCONST))
        goto nope;
 
     switch (type) {
@@ -1800,7 +1800,7 @@ fold_constants(register OP *o)
     }
 
   nope:
-    if (!(opargs[type] & OA_OTHERINT))
+    if (!(PL_opargs[type] & OA_OTHERINT))
        return o;
 
     if (!(PL_hints & HINT_INTEGER)) {
@@ -1813,11 +1813,11 @@ fold_constants(register OP *o)
                    continue;
                return o;
            }
-           if (opargs[curop->op_type] & OA_RETINTEGER)
+           if (PL_opargs[curop->op_type] & OA_RETINTEGER)
                continue;
            return o;
        }
-       o->op_ppaddr = ppaddr[++(o->op_type)];
+       o->op_ppaddr = PL_ppaddr[++(o->op_type)];
     }
 
     return o;
@@ -1843,7 +1843,7 @@ gen_constant_list(register OP *o)
     PL_tmps_floor = oldtmps_floor;
 
     o->op_type = OP_RV2AV;
-    o->op_ppaddr = ppaddr[OP_RV2AV];
+    o->op_ppaddr = PL_ppaddr[OP_RV2AV];
     curop = ((UNOP*)o)->op_first;
     ((UNOP*)o)->op_first = newSVOP(OP_CONST, 0, SvREFCNT_inc(*PL_stack_sp--));
     op_free(curop);
@@ -1862,11 +1862,11 @@ convert(I32 type, I32 flags, OP *o)
     else
        o->op_flags &= ~OPf_WANT;
 
-    if (!(opargs[type] & OA_MARK))
+    if (!(PL_opargs[type] & OA_MARK))
        null(cLISTOPo->op_first);
 
     o->op_type = type;
-    o->op_ppaddr = ppaddr[type];
+    o->op_ppaddr = PL_ppaddr[type];
     o->op_flags |= flags;
 
     o = CHECKOP(type, o);
@@ -1987,7 +1987,7 @@ newLISTOP(I32 type, I32 flags, OP *first, OP *last)
     Newz(1101, listop, 1, LISTOP);
 
     listop->op_type = type;
-    listop->op_ppaddr = ppaddr[type];
+    listop->op_ppaddr = PL_ppaddr[type];
     listop->op_children = (first != 0) + (last != 0);
     listop->op_flags = flags;
 
@@ -2020,14 +2020,14 @@ newOP(I32 type, I32 flags)
     OP *o;
     Newz(1101, o, 1, OP);
     o->op_type = type;
-    o->op_ppaddr = ppaddr[type];
+    o->op_ppaddr = PL_ppaddr[type];
     o->op_flags = flags;
 
     o->op_next = o;
     o->op_private = 0 + (flags >> 8);
-    if (opargs[type] & OA_RETSCALAR)
+    if (PL_opargs[type] & OA_RETSCALAR)
        scalar(o);
-    if (opargs[type] & OA_TARGET)
+    if (PL_opargs[type] & OA_TARGET)
        o->op_targ = pad_alloc(type, SVs_PADTMP);
     return CHECKOP(type, o);
 }
@@ -2039,12 +2039,12 @@ newUNOP(I32 type, I32 flags, OP *first)
 
     if (!first)
        first = newOP(OP_STUB, 0);
-    if (opargs[type] & OA_MARK)
+    if (PL_opargs[type] & OA_MARK)
        first = force_list(first);
 
     Newz(1101, unop, 1, UNOP);
     unop->op_type = type;
-    unop->op_ppaddr = ppaddr[type];
+    unop->op_ppaddr = PL_ppaddr[type];
     unop->op_first = first;
     unop->op_flags = flags | OPf_KIDS;
     unop->op_private = 1 | (flags >> 8);
@@ -2065,7 +2065,7 @@ newBINOP(I32 type, I32 flags, OP *first, OP *last)
        first = newOP(OP_NULL, 0);
 
     binop->op_type = type;
-    binop->op_ppaddr = ppaddr[type];
+    binop->op_ppaddr = PL_ppaddr[type];
     binop->op_first = first;
     binop->op_flags = flags | OPf_KIDS;
     if (!last) {
@@ -2358,7 +2358,7 @@ newPMOP(I32 type, I32 flags)
 
     Newz(1101, pmop, 1, PMOP);
     pmop->op_type = type;
-    pmop->op_ppaddr = ppaddr[type];
+    pmop->op_ppaddr = PL_ppaddr[type];
     pmop->op_flags = flags;
     pmop->op_private = 0 | (flags >> 8);
 
@@ -2413,7 +2413,7 @@ pmruntime(OP *o, OP *expr, OP *repl)
 
        Newz(1101, rcop, 1, LOGOP);
        rcop->op_type = OP_REGCOMP;
-       rcop->op_ppaddr = ppaddr[OP_REGCOMP];
+       rcop->op_ppaddr = PL_ppaddr[OP_REGCOMP];
        rcop->op_first = scalar(expr);
        rcop->op_flags |= ((PL_hints & HINT_RE_EVAL) 
                           ? (OPf_SPECIAL | OPf_KIDS)
@@ -2452,7 +2452,7 @@ pmruntime(OP *o, OP *expr, OP *repl)
        else {
            OP *lastop = 0;
            for (curop = LINKLIST(repl); curop!=repl; curop = LINKLIST(curop)) {
-               if (opargs[curop->op_type] & OA_DANGEROUS) {
+               if (PL_opargs[curop->op_type] & OA_DANGEROUS) {
 #ifdef USE_THREADS
                    if (curop->op_type == OP_THREADSV) {
                        repl_has_vars = 1;
@@ -2505,7 +2505,7 @@ pmruntime(OP *o, OP *expr, OP *repl)
            }
            Newz(1101, rcop, 1, LOGOP);
            rcop->op_type = OP_SUBSTCONT;
-           rcop->op_ppaddr = ppaddr[OP_SUBSTCONT];
+           rcop->op_ppaddr = PL_ppaddr[OP_SUBSTCONT];
            rcop->op_first = scalar(repl);
            rcop->op_flags |= OPf_KIDS;
            rcop->op_private = 1;
@@ -2530,13 +2530,13 @@ newSVOP(I32 type, I32 flags, SV *sv)
     SVOP *svop;
     Newz(1101, svop, 1, SVOP);
     svop->op_type = type;
-    svop->op_ppaddr = ppaddr[type];
+    svop->op_ppaddr = PL_ppaddr[type];
     svop->op_sv = sv;
     svop->op_next = (OP*)svop;
     svop->op_flags = flags;
-    if (opargs[type] & OA_RETSCALAR)
+    if (PL_opargs[type] & OA_RETSCALAR)
        scalar((OP*)svop);
-    if (opargs[type] & OA_TARGET)
+    if (PL_opargs[type] & OA_TARGET)
        svop->op_targ = pad_alloc(type, SVs_PADTMP);
     return CHECKOP(type, svop);
 }
@@ -2548,13 +2548,13 @@ newGVOP(I32 type, I32 flags, GV *gv)
     GVOP *gvop;
     Newz(1101, gvop, 1, GVOP);
     gvop->op_type = type;
-    gvop->op_ppaddr = ppaddr[type];
+    gvop->op_ppaddr = PL_ppaddr[type];
     gvop->op_gv = (GV*)SvREFCNT_inc(gv);
     gvop->op_next = (OP*)gvop;
     gvop->op_flags = flags;
-    if (opargs[type] & OA_RETSCALAR)
+    if (PL_opargs[type] & OA_RETSCALAR)
        scalar((OP*)gvop);
-    if (opargs[type] & OA_TARGET)
+    if (PL_opargs[type] & OA_TARGET)
        gvop->op_targ = pad_alloc(type, SVs_PADTMP);
     return CHECKOP(type, gvop);
 }
@@ -2565,13 +2565,13 @@ newPVOP(I32 type, I32 flags, char *pv)
     PVOP *pvop;
     Newz(1101, pvop, 1, PVOP);
     pvop->op_type = type;
-    pvop->op_ppaddr = ppaddr[type];
+    pvop->op_ppaddr = PL_ppaddr[type];
     pvop->op_pv = pv;
     pvop->op_next = (OP*)pvop;
     pvop->op_flags = flags;
-    if (opargs[type] & OA_RETSCALAR)
+    if (PL_opargs[type] & OA_RETSCALAR)
        scalar((OP*)pvop);
-    if (opargs[type] & OA_TARGET)
+    if (PL_opargs[type] & OA_TARGET)
        pvop->op_targ = pad_alloc(type, SVs_PADTMP);
     return CHECKOP(type, pvop);
 }
@@ -2794,7 +2794,7 @@ newASSIGNOP(I32 flags, OP *left, I32 optype, OP *right)
            OP *lastop = o;
            PL_generation++;
            for (curop = LINKLIST(o); curop != o; curop = LINKLIST(curop)) {
-               if (opargs[curop->op_type] & OA_DANGEROUS) {
+               if (PL_opargs[curop->op_type] & OA_DANGEROUS) {
                    if (curop->op_type == OP_GV) {
                        GV *gv = ((GVOP*)curop)->op_gv;
                        if (gv == PL_defgv || SvCUR(gv) == PL_generation)
@@ -2903,11 +2903,11 @@ newSTATEOP(I32 flags, char *label, OP *o)
     Newz(1101, cop, 1, COP);
     if (PERLDB_LINE && PL_curcop->cop_line && PL_curstash != PL_debstash) {
        cop->op_type = OP_DBSTATE;
-       cop->op_ppaddr = ppaddr[ OP_DBSTATE ];
+       cop->op_ppaddr = PL_ppaddr[ OP_DBSTATE ];
     }
     else {
        cop->op_type = OP_NEXTSTATE;
-       cop->op_ppaddr = ppaddr[ OP_NEXTSTATE ];
+       cop->op_ppaddr = PL_ppaddr[ OP_NEXTSTATE ];
     }
     cop->op_flags = flags;
     cop->op_private = (PL_hints & HINT_UTF8);
@@ -3011,7 +3011,7 @@ new_logop(I32 type, I32 flags, OP** firstp, OP** otherp)
     if (first->op_type == OP_CONST) {
        if (ckWARN(WARN_PRECEDENCE) && (first->op_private & OPpCONST_BARE))
            warner(WARN_PRECEDENCE, "Probable precedence problem on %s", 
-                       op_desc[type]);
+                       PL_op_desc[type]);
        if ((type == OP_AND) == (SvTRUE(((SVOP*)first)->op_sv))) {
            op_free(first);
            *firstp = Nullop;
@@ -3054,7 +3054,7 @@ new_logop(I32 type, I32 flags, OP** firstp, OP** otherp)
            PL_curcop->cop_line = PL_copline;
            warner(WARN_UNSAFE,
                 "Value of %s%s can be \"0\"; test with defined()",
-                op_desc[warnop],
+                PL_op_desc[warnop],
                 ((warnop == OP_READLINE || warnop == OP_GLOB)
                  ? " construct" : "() operator"));
            PL_curcop->cop_line = oldline;
@@ -3070,7 +3070,7 @@ new_logop(I32 type, I32 flags, OP** firstp, OP** otherp)
     Newz(1101, logop, 1, LOGOP);
 
     logop->op_type = type;
-    logop->op_ppaddr = ppaddr[type];
+    logop->op_ppaddr = PL_ppaddr[type];
     logop->op_first = first;
     logop->op_flags = flags | OPf_KIDS;
     logop->op_other = LINKLIST(other);
@@ -3119,7 +3119,7 @@ newCONDOP(I32 flags, OP *first, OP *trueop, OP *falseop)
     Newz(1101, condop, 1, CONDOP);
 
     condop->op_type = OP_COND_EXPR;
-    condop->op_ppaddr = ppaddr[OP_COND_EXPR];
+    condop->op_ppaddr = PL_ppaddr[OP_COND_EXPR];
     condop->op_first = first;
     condop->op_flags = flags | OPf_KIDS;
     condop->op_true = LINKLIST(trueop);
@@ -3152,7 +3152,7 @@ newRANGE(I32 flags, OP *left, OP *right)
     Newz(1101, condop, 1, CONDOP);
 
     condop->op_type = OP_RANGE;
-    condop->op_ppaddr = ppaddr[OP_RANGE];
+    condop->op_ppaddr = PL_ppaddr[OP_RANGE];
     condop->op_first = left;
     condop->op_flags = OPf_KIDS;
     condop->op_true = LINKLIST(left);
@@ -3312,7 +3312,7 @@ newWHILEOP(I32 flags, I32 debuggable, LOOP *loop, I32 whileline, OP *expr, OP *b
     if (!loop) {
        Newz(1101,loop,1,LOOP);
        loop->op_type = OP_ENTERLOOP;
-       loop->op_ppaddr = ppaddr[OP_ENTERLOOP];
+       loop->op_ppaddr = PL_ppaddr[OP_ENTERLOOP];
        loop->op_private = 0;
        loop->op_next = (OP*)loop;
     }
@@ -3343,7 +3343,7 @@ newFOROP(I32 flags,char *label,line_t forline,OP *sv,OP *expr,OP *block,OP *cont
     if (sv) {
        if (sv->op_type == OP_RV2SV) {  /* symbol table variable */
            sv->op_type = OP_RV2GV;
-           sv->op_ppaddr = ppaddr[OP_RV2GV];
+           sv->op_ppaddr = PL_ppaddr[OP_RV2GV];
        }
        else if (sv->op_type == OP_PADSV) { /* private variable */
            padoff = sv->op_targ;
@@ -3357,7 +3357,7 @@ newFOROP(I32 flags,char *label,line_t forline,OP *sv,OP *expr,OP *block,OP *cont
            sv = Nullop;
        }
        else
-           croak("Can't use %s for loop variable", op_desc[sv->op_type]);
+           croak("Can't use %s for loop variable", PL_op_desc[sv->op_type]);
     }
     else {
 #ifdef USE_THREADS
@@ -4170,12 +4170,12 @@ oopsAV(OP *o)
     switch (o->op_type) {
     case OP_PADSV:
        o->op_type = OP_PADAV;
-       o->op_ppaddr = ppaddr[OP_PADAV];
+       o->op_ppaddr = PL_ppaddr[OP_PADAV];
        return ref(o, OP_RV2AV);
        
     case OP_RV2SV:
        o->op_type = OP_RV2AV;
-       o->op_ppaddr = ppaddr[OP_RV2AV];
+       o->op_ppaddr = PL_ppaddr[OP_RV2AV];
        ref(o, OP_RV2AV);
        break;
 
@@ -4193,13 +4193,13 @@ oopsHV(OP *o)
     case OP_PADSV:
     case OP_PADAV:
        o->op_type = OP_PADHV;
-       o->op_ppaddr = ppaddr[OP_PADHV];
+       o->op_ppaddr = PL_ppaddr[OP_PADHV];
        return ref(o, OP_RV2HV);
 
     case OP_RV2SV:
     case OP_RV2AV:
        o->op_type = OP_RV2HV;
-       o->op_ppaddr = ppaddr[OP_RV2HV];
+       o->op_ppaddr = PL_ppaddr[OP_RV2HV];
        ref(o, OP_RV2HV);
        break;
 
@@ -4215,7 +4215,7 @@ newAVREF(OP *o)
 {
     if (o->op_type == OP_PADANY) {
        o->op_type = OP_PADAV;
-       o->op_ppaddr = ppaddr[OP_PADAV];
+       o->op_ppaddr = PL_ppaddr[OP_PADAV];
        return o;
     }
     return newUNOP(OP_RV2AV, 0, scalar(o));
@@ -4234,7 +4234,7 @@ newHVREF(OP *o)
 {
     if (o->op_type == OP_PADANY) {
        o->op_type = OP_PADHV;
-       o->op_ppaddr = ppaddr[OP_PADHV];
+       o->op_ppaddr = PL_ppaddr[OP_PADHV];
        return o;
     }
     return newUNOP(OP_RV2HV, 0, scalar(o));
@@ -4259,7 +4259,7 @@ newSVREF(OP *o)
 {
     if (o->op_type == OP_PADANY) {
        o->op_type = OP_PADSV;
-       o->op_ppaddr = ppaddr[OP_PADSV];
+       o->op_ppaddr = PL_ppaddr[OP_PADSV];
        return o;
     }
     else if (o->op_type == OP_THREADSV && !(o->op_flags & OPpDONE_SVREF)) {
@@ -4318,7 +4318,7 @@ ck_spair(OP *o)
        newop = kUNOP->op_first->op_sibling;
        if (newop &&
            (newop->op_sibling ||
-            !(opargs[newop->op_type] & OA_RETSCALAR) ||
+            !(PL_opargs[newop->op_type] & OA_RETSCALAR) ||
             newop->op_type == OP_PADAV || newop->op_type == OP_PADHV ||
             newop->op_type == OP_RV2AV || newop->op_type == OP_RV2HV)) {
        
@@ -4327,7 +4327,7 @@ ck_spair(OP *o)
        op_free(kUNOP->op_first);
        kUNOP->op_first = newop;
     }
-    o->op_ppaddr = ppaddr[++o->op_type];
+    o->op_ppaddr = PL_ppaddr[++o->op_type];
     return ck_fun(o);
 }
 
@@ -4342,7 +4342,7 @@ ck_delete(OP *o)
            o->op_private |= OPpSLICE;
        else if (kid->op_type != OP_HELEM)
            croak("%s argument is not a HASH element or slice",
-                 op_desc[o->op_type]);
+                 PL_op_desc[o->op_type]);
        null(kid);
     }
     return o;
@@ -4384,7 +4384,7 @@ ck_eval(OP *o)
 
            Newz(1101, enter, 1, LOGOP);
            enter->op_type = OP_ENTERTRY;
-           enter->op_ppaddr = ppaddr[OP_ENTERTRY];
+           enter->op_ppaddr = PL_ppaddr[OP_ENTERTRY];
            enter->op_private = 0;
 
            /* establish postfix order */
@@ -4392,7 +4392,7 @@ ck_eval(OP *o)
 
            o = prepend_elem(OP_LINESEQ, (OP*)enter, (OP*)kid);
            o->op_type = OP_LEAVETRY;
-           o->op_ppaddr = ppaddr[OP_LEAVETRY];
+           o->op_ppaddr = PL_ppaddr[OP_LEAVETRY];
            enter->op_other = o;
            return o;
        }
@@ -4429,12 +4429,13 @@ ck_exists(OP *o)
     if (o->op_flags & OPf_KIDS) {
        OP *kid = cUNOPo->op_first;
        if (kid->op_type != OP_HELEM)
-           croak("%s argument is not a HASH element", op_desc[o->op_type]);
+           croak("%s argument is not a HASH element", PL_op_desc[o->op_type]);
        null(kid);
     }
     return o;
 }
 
+#if 0
 OP *
 ck_gvconst(register OP *o)
 {
@@ -4443,6 +4444,7 @@ ck_gvconst(register OP *o)
        o->op_type = OP_GV;
     return o;
 }
+#endif
 
 OP *
 ck_rvconst(register OP *o)
@@ -4583,7 +4585,7 @@ ck_fun(OP *o)
     OP *sibl;
     I32 numargs = 0;
     int type = o->op_type;
-    register I32 oa = opargs[type] >> OASHIFT;
+    register I32 oa = PL_opargs[type] >> OASHIFT;
 
     if (o->op_flags & OPf_STACKED) {
        if ((oa & OA_OPTIONAL) && (oa >> 4) && !((oa >> 4) & OA_OPTIONAL))
@@ -4601,7 +4603,7 @@ ck_fun(OP *o)
            tokid = &kid->op_sibling;
            kid = kid->op_sibling;
        }
-       if (!kid && opargs[type] & OA_DEFGV)
+       if (!kid && PL_opargs[type] & OA_DEFGV)
            *tokid = kid = newDEFSVOP();
 
        while (oa && kid) {
@@ -4628,14 +4630,14 @@ ck_fun(OP *o)
                    if (ckWARN(WARN_SYNTAX))
                        warner(WARN_SYNTAX,
                            "Array @%s missing the @ in argument %ld of %s()",
-                           name, (long)numargs, op_desc[type]);
+                           name, (long)numargs, PL_op_desc[type]);
                    op_free(kid);
                    kid = newop;
                    kid->op_sibling = sibl;
                    *tokid = kid;
                }
                else if (kid->op_type != OP_RV2AV && kid->op_type != OP_PADAV)
-                   bad_type(numargs, "array", op_desc[o->op_type], kid);
+                   bad_type(numargs, "array", PL_op_desc[o->op_type], kid);
                mod(kid, type);
                break;
            case OA_HVREF:
@@ -4647,14 +4649,14 @@ ck_fun(OP *o)
                    if (ckWARN(WARN_SYNTAX))
                        warner(WARN_SYNTAX,
                            "Hash %%%s missing the %% in argument %ld of %s()",
-                           name, (long)numargs, op_desc[type]);
+                           name, (long)numargs, PL_op_desc[type]);
                    op_free(kid);
                    kid = newop;
                    kid->op_sibling = sibl;
                    *tokid = kid;
                }
                else if (kid->op_type != OP_RV2HV && kid->op_type != OP_PADHV)
-                   bad_type(numargs, "hash", op_desc[o->op_type], kid);
+                   bad_type(numargs, "hash", PL_op_desc[o->op_type], kid);
                mod(kid, type);
                break;
            case OA_CVREF:
@@ -4697,10 +4699,10 @@ ck_fun(OP *o)
        }
        o->op_private |= numargs;
        if (kid)
-           return too_many_arguments(o,op_desc[o->op_type]);
+           return too_many_arguments(o,PL_op_desc[o->op_type]);
        listkids(o);
     }
-    else if (opargs[type] & OA_DEFGV) {
+    else if (PL_opargs[type] & OA_DEFGV) {
        op_free(o);
        return newUNOP(type, 0, newDEFSVOP());
     }
@@ -4709,7 +4711,7 @@ ck_fun(OP *o)
        while (oa & OA_OPTIONAL)
            oa >>= 4;
        if (oa && oa != OA_LIST)
-           return too_few_arguments(o,op_desc[o->op_type]);
+           return too_few_arguments(o,PL_op_desc[o->op_type]);
     }
     return o;
 }
@@ -4731,9 +4733,9 @@ ck_glob(OP *o)
        append_elem(OP_GLOB, o,
                    newSVOP(OP_CONST, 0, newSViv(glob_index++)));
        o->op_type = OP_LIST;
-       o->op_ppaddr = ppaddr[OP_LIST];
+       o->op_ppaddr = PL_ppaddr[OP_LIST];
        cLISTOPo->op_first->op_type = OP_PUSHMARK;
-       cLISTOPo->op_first->op_ppaddr = ppaddr[OP_PUSHMARK];
+       cLISTOPo->op_first->op_ppaddr = PL_ppaddr[OP_PUSHMARK];
        o = newUNOP(OP_ENTERSUB, OPf_STACKED,
                    append_elem(OP_LIST, o,
                                scalar(newUNOP(OP_RV2CV, 0,
@@ -4756,7 +4758,7 @@ ck_grep(OP *o)
     OP *kid;
     OPCODE type = o->op_type == OP_GREPSTART ? OP_GREPWHILE : OP_MAPWHILE;
 
-    o->op_ppaddr = ppaddr[OP_GREPSTART];
+    o->op_ppaddr = PL_ppaddr[OP_GREPSTART];
     Newz(1101, gwop, 1, LOGOP);
 
     if (o->op_flags & OPf_STACKED) {
@@ -4783,7 +4785,7 @@ ck_grep(OP *o)
     kid = kUNOP->op_first;
 
     gwop->op_type = type;
-    gwop->op_ppaddr = ppaddr[type];
+    gwop->op_ppaddr = PL_ppaddr[type];
     gwop->op_first = listkids(o);
     gwop->op_flags |= OPf_KIDS;
     gwop->op_private = 1;
@@ -4793,7 +4795,7 @@ ck_grep(OP *o)
 
     kid = cLISTOPo->op_first->op_sibling;
     if (!kid || !kid->op_sibling)
-       return too_few_arguments(o,op_desc[o->op_type]);
+       return too_few_arguments(o,PL_op_desc[o->op_type]);
     for (kid = kid->op_sibling; kid; kid = kid->op_sibling)
        mod(kid, OP_GREPSTART);
 
@@ -4944,6 +4946,7 @@ ck_require(OP *o)
     return ck_fun(o);
 }
 
+#if 0
 OP *
 ck_retarget(OP *o)
 {
@@ -4951,6 +4954,7 @@ ck_retarget(OP *o)
     /* STUB */
     return o;
 }
+#endif
 
 OP *
 ck_select(OP *o)
@@ -4960,7 +4964,7 @@ ck_select(OP *o)
        kid = cLISTOPo->op_first->op_sibling;   /* get past pushmark */
        if (kid && kid->op_sibling) {
            o->op_type = OP_SSELECT;
-           o->op_ppaddr = ppaddr[OP_SSELECT];
+           o->op_ppaddr = PL_ppaddr[OP_SSELECT];
            o = ck_fun(o);
            return fold_constants(o);
        }
@@ -5080,7 +5084,7 @@ ck_split(OP *o)
     }
 
     kid->op_type = OP_PUSHRE;
-    kid->op_ppaddr = ppaddr[OP_PUSHRE];
+    kid->op_ppaddr = PL_ppaddr[OP_PUSHRE];
     scalar(kid);
 
     if (!kid->op_sibling)
@@ -5096,7 +5100,7 @@ ck_split(OP *o)
     scalar(kid);
 
     if (kid->op_sibling)
-       return too_many_arguments(o,op_desc[o->op_type]);
+       return too_many_arguments(o,PL_op_desc[o->op_type]);
 
     return o;
 }
@@ -5319,7 +5323,7 @@ peep(register OP *o)
                    o->op_private |= o->op_next->op_private & OPpLVAL_INTRO;
                    o->op_next = o->op_next->op_next;
                    o->op_type = OP_GVSV;
-                   o->op_ppaddr = ppaddr[OP_GVSV];
+                   o->op_ppaddr = PL_ppaddr[OP_GVSV];
                }
            }
            else if (o->op_next->op_type == OP_RV2AV) {
@@ -5341,7 +5345,7 @@ peep(register OP *o)
                    o->op_flags |= pop->op_next->op_flags & OPf_MOD;
                    o->op_next = pop->op_next->op_next;
                    o->op_type = OP_AELEMFAST;
-                   o->op_ppaddr = ppaddr[OP_AELEMFAST];
+                   o->op_ppaddr = PL_ppaddr[OP_AELEMFAST];
                    o->op_private = (U8)i;
                    GvAVn(((GVOP*)o)->op_gv);
                }
@@ -5429,9 +5433,9 @@ peep(register OP *o)
            if (ind < 1)
                croak("Bad index while coercing array into hash");
            rop->op_type = OP_RV2AV;
-           rop->op_ppaddr = ppaddr[OP_RV2AV];
+           rop->op_ppaddr = PL_ppaddr[OP_RV2AV];
            o->op_type = OP_AELEM;
-           o->op_ppaddr = ppaddr[OP_AELEM];
+           o->op_ppaddr = PL_ppaddr[OP_AELEM];
            SvREFCNT_dec(*svp);
            *svp = newSViv(ind);
            break;
index 2abaa47..abd9bff 100644 (file)
--- a/opcode.h
+++ b/opcode.h
@@ -358,9 +358,9 @@ typedef enum {
 #define MAXO 348
 
 #ifndef DOINIT
-EXT char *op_name[];
+EXT char *PL_op_name[];
 #else
-EXT char *op_name[] = {
+EXT char *PL_op_name[] = {
        "null",
        "stub",
        "scalar",
@@ -713,9 +713,9 @@ EXT char *op_name[] = {
 #endif
 
 #ifndef DOINIT
-EXT char *op_desc[];
+EXT char *PL_op_desc[];
 #else
-EXT char *op_desc[] = {
+EXT char *PL_op_desc[] = {
        "null operation",
        "stub",
        "scalar",
@@ -1070,396 +1070,21 @@ EXT char *op_desc[] = {
 #ifndef PERL_OBJECT
 START_EXTERN_C
 
-OP *   ck_anoncode     _((OP* o));
-OP *   ck_bitop        _((OP* o));
-OP *   ck_concat       _((OP* o));
-OP *   ck_delete       _((OP* o));
-OP *   ck_eof          _((OP* o));
-OP *   ck_eval         _((OP* o));
-OP *   ck_exec         _((OP* o));
-OP *   ck_exists       _((OP* o));
-OP *   ck_ftst         _((OP* o));
-OP *   ck_fun          _((OP* o));
-OP *   ck_fun_locale   _((OP* o));
-OP *   ck_glob         _((OP* o));
-OP *   ck_grep         _((OP* o));
-OP *   ck_index        _((OP* o));
-OP *   ck_lengthconst  _((OP* o));
-OP *   ck_lfun         _((OP* o));
-OP *   ck_listiob      _((OP* o));
-OP *   ck_match        _((OP* o));
-OP *   ck_null         _((OP* o));
-OP *   ck_repeat       _((OP* o));
-OP *   ck_require      _((OP* o));
-OP *   ck_rfun         _((OP* o));
-OP *   ck_rvconst      _((OP* o));
-OP *   ck_scmp         _((OP* o));
-OP *   ck_select       _((OP* o));
-OP *   ck_shift        _((OP* o));
-OP *   ck_sort         _((OP* o));
-OP *   ck_spair        _((OP* o));
-OP *   ck_split        _((OP* o));
-OP *   ck_subr         _((OP* o));
-OP *   ck_svconst      _((OP* o));
-OP *   ck_trunc        _((OP* o));
+#undef PERL_CKDEF
+#undef PERL_PPDEF
+#define PERL_CKDEF(s) OP *s _((OP *o));
+#define PERL_PPDEF(s) OP *s _((ARGSproto));
+
+#include "pp_proto.h"
 
-OP *   pp_null         _((ARGSproto));
-OP *   pp_stub         _((ARGSproto));
-OP *   pp_scalar       _((ARGSproto));
-OP *   pp_pushmark     _((ARGSproto));
-OP *   pp_wantarray    _((ARGSproto));
-OP *   pp_const        _((ARGSproto));
-OP *   pp_gvsv         _((ARGSproto));
-OP *   pp_gv           _((ARGSproto));
-OP *   pp_gelem        _((ARGSproto));
-OP *   pp_padsv        _((ARGSproto));
-OP *   pp_padav        _((ARGSproto));
-OP *   pp_padhv        _((ARGSproto));
-OP *   pp_padany       _((ARGSproto));
-OP *   pp_pushre       _((ARGSproto));
-OP *   pp_rv2gv        _((ARGSproto));
-OP *   pp_rv2sv        _((ARGSproto));
-OP *   pp_av2arylen    _((ARGSproto));
-OP *   pp_rv2cv        _((ARGSproto));
-OP *   pp_anoncode     _((ARGSproto));
-OP *   pp_prototype    _((ARGSproto));
-OP *   pp_refgen       _((ARGSproto));
-OP *   pp_srefgen      _((ARGSproto));
-OP *   pp_ref          _((ARGSproto));
-OP *   pp_bless        _((ARGSproto));
-OP *   pp_backtick     _((ARGSproto));
-OP *   pp_glob         _((ARGSproto));
-OP *   pp_readline     _((ARGSproto));
-OP *   pp_rcatline     _((ARGSproto));
-OP *   pp_regcmaybe    _((ARGSproto));
-OP *   pp_regcreset    _((ARGSproto));
-OP *   pp_regcomp      _((ARGSproto));
-OP *   pp_match        _((ARGSproto));
-OP *   pp_qr           _((ARGSproto));
-OP *   pp_subst        _((ARGSproto));
-OP *   pp_substcont    _((ARGSproto));
-OP *   pp_trans        _((ARGSproto));
-OP *   pp_sassign      _((ARGSproto));
-OP *   pp_aassign      _((ARGSproto));
-OP *   pp_chop         _((ARGSproto));
-OP *   pp_schop        _((ARGSproto));
-OP *   pp_chomp        _((ARGSproto));
-OP *   pp_schomp       _((ARGSproto));
-OP *   pp_defined      _((ARGSproto));
-OP *   pp_undef        _((ARGSproto));
-OP *   pp_study        _((ARGSproto));
-OP *   pp_pos          _((ARGSproto));
-OP *   pp_preinc       _((ARGSproto));
-OP *   pp_i_preinc     _((ARGSproto));
-OP *   pp_predec       _((ARGSproto));
-OP *   pp_i_predec     _((ARGSproto));
-OP *   pp_postinc      _((ARGSproto));
-OP *   pp_i_postinc    _((ARGSproto));
-OP *   pp_postdec      _((ARGSproto));
-OP *   pp_i_postdec    _((ARGSproto));
-OP *   pp_pow          _((ARGSproto));
-OP *   pp_multiply     _((ARGSproto));
-OP *   pp_i_multiply   _((ARGSproto));
-OP *   pp_divide       _((ARGSproto));
-OP *   pp_i_divide     _((ARGSproto));
-OP *   pp_modulo       _((ARGSproto));
-OP *   pp_i_modulo     _((ARGSproto));
-OP *   pp_repeat       _((ARGSproto));
-OP *   pp_add          _((ARGSproto));
-OP *   pp_i_add        _((ARGSproto));
-OP *   pp_subtract     _((ARGSproto));
-OP *   pp_i_subtract   _((ARGSproto));
-OP *   pp_concat       _((ARGSproto));
-OP *   pp_stringify    _((ARGSproto));
-OP *   pp_left_shift   _((ARGSproto));
-OP *   pp_right_shift  _((ARGSproto));
-OP *   pp_lt           _((ARGSproto));
-OP *   pp_i_lt         _((ARGSproto));
-OP *   pp_gt           _((ARGSproto));
-OP *   pp_i_gt         _((ARGSproto));
-OP *   pp_le           _((ARGSproto));
-OP *   pp_i_le         _((ARGSproto));
-OP *   pp_ge           _((ARGSproto));
-OP *   pp_i_ge         _((ARGSproto));
-OP *   pp_eq           _((ARGSproto));
-OP *   pp_i_eq         _((ARGSproto));
-OP *   pp_ne           _((ARGSproto));
-OP *   pp_i_ne         _((ARGSproto));
-OP *   pp_ncmp         _((ARGSproto));
-OP *   pp_i_ncmp       _((ARGSproto));
-OP *   pp_slt          _((ARGSproto));
-OP *   pp_sgt          _((ARGSproto));
-OP *   pp_sle          _((ARGSproto));
-OP *   pp_sge          _((ARGSproto));
-OP *   pp_seq          _((ARGSproto));
-OP *   pp_sne          _((ARGSproto));
-OP *   pp_scmp         _((ARGSproto));
-OP *   pp_bit_and      _((ARGSproto));
-OP *   pp_bit_xor      _((ARGSproto));
-OP *   pp_bit_or       _((ARGSproto));
-OP *   pp_negate       _((ARGSproto));
-OP *   pp_i_negate     _((ARGSproto));
-OP *   pp_not          _((ARGSproto));
-OP *   pp_complement   _((ARGSproto));
-OP *   pp_atan2        _((ARGSproto));
-OP *   pp_sin          _((ARGSproto));
-OP *   pp_cos          _((ARGSproto));
-OP *   pp_rand         _((ARGSproto));
-OP *   pp_srand        _((ARGSproto));
-OP *   pp_exp          _((ARGSproto));
-OP *   pp_log          _((ARGSproto));
-OP *   pp_sqrt         _((ARGSproto));
-OP *   pp_int          _((ARGSproto));
-OP *   pp_hex          _((ARGSproto));
-OP *   pp_oct          _((ARGSproto));
-OP *   pp_abs          _((ARGSproto));
-OP *   pp_length       _((ARGSproto));
-OP *   pp_substr       _((ARGSproto));
-OP *   pp_vec          _((ARGSproto));
-OP *   pp_index        _((ARGSproto));
-OP *   pp_rindex       _((ARGSproto));
-OP *   pp_sprintf      _((ARGSproto));
-OP *   pp_formline     _((ARGSproto));
-OP *   pp_ord          _((ARGSproto));
-OP *   pp_chr          _((ARGSproto));
-OP *   pp_crypt        _((ARGSproto));
-OP *   pp_ucfirst      _((ARGSproto));
-OP *   pp_lcfirst      _((ARGSproto));
-OP *   pp_uc           _((ARGSproto));
-OP *   pp_lc           _((ARGSproto));
-OP *   pp_quotemeta    _((ARGSproto));
-OP *   pp_rv2av        _((ARGSproto));
-OP *   pp_aelemfast    _((ARGSproto));
-OP *   pp_aelem        _((ARGSproto));
-OP *   pp_aslice       _((ARGSproto));
-OP *   pp_each         _((ARGSproto));
-OP *   pp_values       _((ARGSproto));
-OP *   pp_keys         _((ARGSproto));
-OP *   pp_delete       _((ARGSproto));
-OP *   pp_exists       _((ARGSproto));
-OP *   pp_rv2hv        _((ARGSproto));
-OP *   pp_helem        _((ARGSproto));
-OP *   pp_hslice       _((ARGSproto));
-OP *   pp_unpack       _((ARGSproto));
-OP *   pp_pack         _((ARGSproto));
-OP *   pp_split        _((ARGSproto));
-OP *   pp_join         _((ARGSproto));
-OP *   pp_list         _((ARGSproto));
-OP *   pp_lslice       _((ARGSproto));
-OP *   pp_anonlist     _((ARGSproto));
-OP *   pp_anonhash     _((ARGSproto));
-OP *   pp_splice       _((ARGSproto));
-OP *   pp_push         _((ARGSproto));
-OP *   pp_pop          _((ARGSproto));
-OP *   pp_shift        _((ARGSproto));
-OP *   pp_unshift      _((ARGSproto));
-OP *   pp_sort         _((ARGSproto));
-OP *   pp_reverse      _((ARGSproto));
-OP *   pp_grepstart    _((ARGSproto));
-OP *   pp_grepwhile    _((ARGSproto));
-OP *   pp_mapstart     _((ARGSproto));
-OP *   pp_mapwhile     _((ARGSproto));
-OP *   pp_range        _((ARGSproto));
-OP *   pp_flip         _((ARGSproto));
-OP *   pp_flop         _((ARGSproto));
-OP *   pp_and          _((ARGSproto));
-OP *   pp_or           _((ARGSproto));
-OP *   pp_xor          _((ARGSproto));
-OP *   pp_cond_expr    _((ARGSproto));
-OP *   pp_andassign    _((ARGSproto));
-OP *   pp_orassign     _((ARGSproto));
-OP *   pp_method       _((ARGSproto));
-OP *   pp_entersub     _((ARGSproto));
-OP *   pp_leavesub     _((ARGSproto));
-OP *   pp_caller       _((ARGSproto));
-OP *   pp_warn         _((ARGSproto));
-OP *   pp_die          _((ARGSproto));
-OP *   pp_reset        _((ARGSproto));
-OP *   pp_lineseq      _((ARGSproto));
-OP *   pp_nextstate    _((ARGSproto));
-OP *   pp_dbstate      _((ARGSproto));
-OP *   pp_unstack      _((ARGSproto));
-OP *   pp_enter        _((ARGSproto));
-OP *   pp_leave        _((ARGSproto));
-OP *   pp_scope        _((ARGSproto));
-OP *   pp_enteriter    _((ARGSproto));
-OP *   pp_iter         _((ARGSproto));
-OP *   pp_enterloop    _((ARGSproto));
-OP *   pp_leaveloop    _((ARGSproto));
-OP *   pp_return       _((ARGSproto));
-OP *   pp_last         _((ARGSproto));
-OP *   pp_next         _((ARGSproto));
-OP *   pp_redo         _((ARGSproto));
-OP *   pp_dump         _((ARGSproto));
-OP *   pp_goto         _((ARGSproto));
-OP *   pp_exit         _((ARGSproto));
-OP *   pp_open         _((ARGSproto));
-OP *   pp_close        _((ARGSproto));
-OP *   pp_pipe_op      _((ARGSproto));
-OP *   pp_fileno       _((ARGSproto));
-OP *   pp_umask        _((ARGSproto));
-OP *   pp_binmode      _((ARGSproto));
-OP *   pp_tie          _((ARGSproto));
-OP *   pp_untie        _((ARGSproto));
-OP *   pp_tied         _((ARGSproto));
-OP *   pp_dbmopen      _((ARGSproto));
-OP *   pp_dbmclose     _((ARGSproto));
-OP *   pp_sselect      _((ARGSproto));
-OP *   pp_select       _((ARGSproto));
-OP *   pp_getc         _((ARGSproto));
-OP *   pp_read         _((ARGSproto));
-OP *   pp_enterwrite   _((ARGSproto));
-OP *   pp_leavewrite   _((ARGSproto));
-OP *   pp_prtf         _((ARGSproto));
-OP *   pp_print        _((ARGSproto));
-OP *   pp_sysopen      _((ARGSproto));
-OP *   pp_sysseek      _((ARGSproto));
-OP *   pp_sysread      _((ARGSproto));
-OP *   pp_syswrite     _((ARGSproto));
-OP *   pp_send         _((ARGSproto));
-OP *   pp_recv         _((ARGSproto));
-OP *   pp_eof          _((ARGSproto));
-OP *   pp_tell         _((ARGSproto));
-OP *   pp_seek         _((ARGSproto));
-OP *   pp_truncate     _((ARGSproto));
-OP *   pp_fcntl        _((ARGSproto));
-OP *   pp_ioctl        _((ARGSproto));
-OP *   pp_flock        _((ARGSproto));
-OP *   pp_socket       _((ARGSproto));
-OP *   pp_sockpair     _((ARGSproto));
-OP *   pp_bind         _((ARGSproto));
-OP *   pp_connect      _((ARGSproto));
-OP *   pp_listen       _((ARGSproto));
-OP *   pp_accept       _((ARGSproto));
-OP *   pp_shutdown     _((ARGSproto));
-OP *   pp_gsockopt     _((ARGSproto));
-OP *   pp_ssockopt     _((ARGSproto));
-OP *   pp_getsockname  _((ARGSproto));
-OP *   pp_getpeername  _((ARGSproto));
-OP *   pp_lstat        _((ARGSproto));
-OP *   pp_stat         _((ARGSproto));
-OP *   pp_ftrread      _((ARGSproto));
-OP *   pp_ftrwrite     _((ARGSproto));
-OP *   pp_ftrexec      _((ARGSproto));
-OP *   pp_fteread      _((ARGSproto));
-OP *   pp_ftewrite     _((ARGSproto));
-OP *   pp_fteexec      _((ARGSproto));
-OP *   pp_ftis         _((ARGSproto));
-OP *   pp_fteowned     _((ARGSproto));
-OP *   pp_ftrowned     _((ARGSproto));
-OP *   pp_ftzero       _((ARGSproto));
-OP *   pp_ftsize       _((ARGSproto));
-OP *   pp_ftmtime      _((ARGSproto));
-OP *   pp_ftatime      _((ARGSproto));
-OP *   pp_ftctime      _((ARGSproto));
-OP *   pp_ftsock       _((ARGSproto));
-OP *   pp_ftchr        _((ARGSproto));
-OP *   pp_ftblk        _((ARGSproto));
-OP *   pp_ftfile       _((ARGSproto));
-OP *   pp_ftdir        _((ARGSproto));
-OP *   pp_ftpipe       _((ARGSproto));
-OP *   pp_ftlink       _((ARGSproto));
-OP *   pp_ftsuid       _((ARGSproto));
-OP *   pp_ftsgid       _((ARGSproto));
-OP *   pp_ftsvtx       _((ARGSproto));
-OP *   pp_fttty        _((ARGSproto));
-OP *   pp_fttext       _((ARGSproto));
-OP *   pp_ftbinary     _((ARGSproto));
-OP *   pp_chdir        _((ARGSproto));
-OP *   pp_chown        _((ARGSproto));
-OP *   pp_chroot       _((ARGSproto));
-OP *   pp_unlink       _((ARGSproto));
-OP *   pp_chmod        _((ARGSproto));
-OP *   pp_utime        _((ARGSproto));
-OP *   pp_rename       _((ARGSproto));
-OP *   pp_link         _((ARGSproto));
-OP *   pp_symlink      _((ARGSproto));
-OP *   pp_readlink     _((ARGSproto));
-OP *   pp_mkdir        _((ARGSproto));
-OP *   pp_rmdir        _((ARGSproto));
-OP *   pp_open_dir     _((ARGSproto));
-OP *   pp_readdir      _((ARGSproto));
-OP *   pp_telldir      _((ARGSproto));
-OP *   pp_seekdir      _((ARGSproto));
-OP *   pp_rewinddir    _((ARGSproto));
-OP *   pp_closedir     _((ARGSproto));
-OP *   pp_fork         _((ARGSproto));
-OP *   pp_wait         _((ARGSproto));
-OP *   pp_waitpid      _((ARGSproto));
-OP *   pp_system       _((ARGSproto));
-OP *   pp_exec         _((ARGSproto));
-OP *   pp_kill         _((ARGSproto));
-OP *   pp_getppid      _((ARGSproto));
-OP *   pp_getpgrp      _((ARGSproto));
-OP *   pp_setpgrp      _((ARGSproto));
-OP *   pp_getpriority  _((ARGSproto));
-OP *   pp_setpriority  _((ARGSproto));
-OP *   pp_time         _((ARGSproto));
-OP *   pp_tms          _((ARGSproto));
-OP *   pp_localtime    _((ARGSproto));
-OP *   pp_gmtime       _((ARGSproto));
-OP *   pp_alarm        _((ARGSproto));
-OP *   pp_sleep        _((ARGSproto));
-OP *   pp_shmget       _((ARGSproto));
-OP *   pp_shmctl       _((ARGSproto));
-OP *   pp_shmread      _((ARGSproto));
-OP *   pp_shmwrite     _((ARGSproto));
-OP *   pp_msgget       _((ARGSproto));
-OP *   pp_msgctl       _((ARGSproto));
-OP *   pp_msgsnd       _((ARGSproto));
-OP *   pp_msgrcv       _((ARGSproto));
-OP *   pp_semget       _((ARGSproto));
-OP *   pp_semctl       _((ARGSproto));
-OP *   pp_semop        _((ARGSproto));
-OP *   pp_require      _((ARGSproto));
-OP *   pp_dofile       _((ARGSproto));
-OP *   pp_entereval    _((ARGSproto));
-OP *   pp_leaveeval    _((ARGSproto));
-OP *   pp_entertry     _((ARGSproto));
-OP *   pp_leavetry     _((ARGSproto));
-OP *   pp_ghbyname     _((ARGSproto));
-OP *   pp_ghbyaddr     _((ARGSproto));
-OP *   pp_ghostent     _((ARGSproto));
-OP *   pp_gnbyname     _((ARGSproto));
-OP *   pp_gnbyaddr     _((ARGSproto));
-OP *   pp_gnetent      _((ARGSproto));
-OP *   pp_gpbyname     _((ARGSproto));
-OP *   pp_gpbynumber   _((ARGSproto));
-OP *   pp_gprotoent    _((ARGSproto));
-OP *   pp_gsbyname     _((ARGSproto));
-OP *   pp_gsbyport     _((ARGSproto));
-OP *   pp_gservent     _((ARGSproto));
-OP *   pp_shostent     _((ARGSproto));
-OP *   pp_snetent      _((ARGSproto));
-OP *   pp_sprotoent    _((ARGSproto));
-OP *   pp_sservent     _((ARGSproto));
-OP *   pp_ehostent     _((ARGSproto));
-OP *   pp_enetent      _((ARGSproto));
-OP *   pp_eprotoent    _((ARGSproto));
-OP *   pp_eservent     _((ARGSproto));
-OP *   pp_gpwnam       _((ARGSproto));
-OP *   pp_gpwuid       _((ARGSproto));
-OP *   pp_gpwent       _((ARGSproto));
-OP *   pp_spwent       _((ARGSproto));
-OP *   pp_epwent       _((ARGSproto));
-OP *   pp_ggrnam       _((ARGSproto));
-OP *   pp_ggrgid       _((ARGSproto));
-OP *   pp_ggrent       _((ARGSproto));
-OP *   pp_sgrent       _((ARGSproto));
-OP *   pp_egrent       _((ARGSproto));
-OP *   pp_getlogin     _((ARGSproto));
-OP *   pp_syscall      _((ARGSproto));
-OP *   pp_lock         _((ARGSproto));
-OP *   pp_threadsv     _((ARGSproto));
 
 END_EXTERN_C
 #endif /* PERL_OBJECT */
 
 #ifndef DOINIT
-EXT OP * (CPERLscope(*ppaddr)[])(ARGSproto);
+EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto);
 #else
-#ifndef PERL_OBJECT
-EXT OP * (CPERLscope(*ppaddr)[])(ARGSproto) = {
+EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto) = {
        pp_null,
        pp_stub,
        pp_scalar,
@@ -1809,14 +1434,12 @@ EXT OP * (CPERLscope(*ppaddr)[])(ARGSproto) = {
        pp_lock,
        pp_threadsv,
 };
-#endif /* PERL_OBJECT */
 #endif
 
 #ifndef DOINIT
-EXT OP * (CPERLscope(*check)[]) _((OP *op));
+EXT OP * (CPERLscope(*PL_check)[]) _((OP *op));
 #else
-#ifndef PERL_OBJECT
-EXT OP * (CPERLscope(*check)[]) _((OP *op)) = {
+EXT OP * (CPERLscope(*PL_check)[]) _((OP *op)) = {
        ck_null,        /* null */
        ck_null,        /* stub */
        ck_fun,         /* scalar */
@@ -2166,13 +1789,12 @@ EXT OP * (CPERLscope(*check)[]) _((OP *op)) = {
        ck_rfun,        /* lock */
        ck_null,        /* threadsv */
 };
-#endif /* PERL_OBJECT */
 #endif
 
 #ifndef DOINIT
-EXT U32 opargs[];
+EXT U32 PL_opargs[];
 #else
-EXT U32 opargs[] = {
+EXT U32 PL_opargs[] = {
        0x00000000,     /* null */
        0x00000000,     /* stub */
        0x00001c04,     /* scalar */
index 92330a6..0243847 100755 (executable)
--- a/opcode.pl
+++ b/opcode.pl
@@ -47,9 +47,9 @@ print "\n#define MAXO ", scalar @ops, "\n\n";
 
 print <<END;
 #ifndef DOINIT
-EXT char *op_name[];
+EXT char *PL_op_name[];
 #else
-EXT char *op_name[] = {
+EXT char *PL_op_name[] = {
 END
 
 for (@ops) {
@@ -64,9 +64,9 @@ END
 
 print <<END;
 #ifndef DOINIT
-EXT char *op_desc[];
+EXT char *PL_op_desc[];
 #else
-EXT char *op_desc[] = {
+EXT char *PL_op_desc[] = {
 END
 
 for (@ops) {
@@ -80,19 +80,26 @@ print <<END;
 #ifndef PERL_OBJECT
 START_EXTERN_C
 
-END
+#undef PERL_CKDEF
+#undef PERL_PPDEF
+#define PERL_CKDEF(s) OP *s _((OP *o));
+#define PERL_PPDEF(s) OP *s _((ARGSproto));
 
-# Emit function declarations.
+#include "pp_proto.h"
 
-for (sort keys %ckname) {
-    print "OP *\t", &tab(3,$_),"_((OP* o));\n";
-}
+END
 
-print "\n";
+# Emit function declarations.
 
-for (@ops) {
-    print "OP *\t", &tab(3, "pp_$_"), "_((ARGSproto));\n";
-}
+#for (sort keys %ckname) {
+#    print "OP *\t", &tab(3,$_),"_((OP* o));\n";
+#}
+#
+#print "\n";
+#
+#for (@ops) {
+#    print "OP *\t", &tab(3, "pp_$_"), "_((ARGSproto));\n";
+#}
 
 # Emit ppcode switch array.
 
@@ -102,10 +109,9 @@ END_EXTERN_C
 #endif /* PERL_OBJECT */
 
 #ifndef DOINIT
-EXT OP * (CPERLscope(*ppaddr)[])(ARGSproto);
+EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto);
 #else
-#ifndef PERL_OBJECT
-EXT OP * (CPERLscope(*ppaddr)[])(ARGSproto) = {
+EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto) = {
 END
 
 for (@ops) {
@@ -114,7 +120,6 @@ for (@ops) {
 
 print <<END;
 };
-#endif /* PERL_OBJECT */
 #endif
 
 END
@@ -123,10 +128,9 @@ END
 
 print <<END;
 #ifndef DOINIT
-EXT OP * (CPERLscope(*check)[]) _((OP *op));
+EXT OP * (CPERLscope(*PL_check)[]) _((OP *op));
 #else
-#ifndef PERL_OBJECT
-EXT OP * (CPERLscope(*check)[]) _((OP *op)) = {
+EXT OP * (CPERLscope(*PL_check)[]) _((OP *op)) = {
 END
 
 for (@ops) {
@@ -135,7 +139,6 @@ for (@ops) {
 
 print <<END;
 };
-#endif /* PERL_OBJECT */
 #endif
 
 END
@@ -144,9 +147,9 @@ END
 
 print <<END;
 #ifndef DOINIT
-EXT U32 opargs[];
+EXT U32 PL_opargs[];
 #else
-EXT U32 opargs[] = {
+EXT U32 PL_opargs[] = {
 END
 
 %argnum = (
@@ -210,13 +213,25 @@ END
 close OC or die "Error closing opcode.h: $!";
 
 unlink "pp_proto.h";
+unlink "pp.sym";
 open PP, '>pp_proto.h' or die "Error creating pp_proto.h: $!";
+open PPSYM, '>pp.sym' or die "Error creating pp.sym: $!";
+
+for (sort keys %ckname) {
+    print PP "PERL_CKDEF($_)\n";
+#OP *\t", &tab(3,$_),"_((OP* o));\n";
+}
+
+print PP "\n\n";
+
 for (@ops) {
     next if /^i_(pre|post)(inc|dec)$/;
-    print PP "PPDEF(pp_$_)\n";
+    print PP "PERL_PPDEF(pp_$_)\n";
+    print PPSYM "pp_$_\n";
 }
 
 close PP or die "Error closing pp_proto.h: $!";
+close PPSYM or die "Error closing pp.sym: $!";
 
 ###########################################################################
 sub tab {
diff --git a/perl.c b/perl.c
index a7804f1..388dd8b 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -92,7 +92,7 @@ perl_alloc(void)
 
 void
 #ifdef PERL_OBJECT
-CPerlObj::perl_construct(void)
+perl_construct(void)
 #else
 perl_construct(register PerlInterpreter *sv_interp)
 #endif
@@ -235,7 +235,7 @@ perl_construct(register PerlInterpreter *sv_interp)
 
 void
 #ifdef PERL_OBJECT
-CPerlObj::perl_destruct(void)
+perl_destruct(void)
 #else
 perl_destruct(register PerlInterpreter *sv_interp)
 #endif
@@ -593,7 +593,7 @@ perl_destruct(register PerlInterpreter *sv_interp)
 
 void
 #ifdef PERL_OBJECT
-CPerlObj::perl_free(void)
+perl_free(void)
 #else
 perl_free(PerlInterpreter *sv_interp)
 #endif
@@ -609,7 +609,7 @@ perl_free(PerlInterpreter *sv_interp)
 
 void
 #ifdef PERL_OBJECT
-CPerlObj::perl_atexit(void (*fn) (CPerlObj*,void *), void *ptr)
+perl_atexit(void (*fn) (CPerlObj*,void *), void *ptr)
 #else
 perl_atexit(void (*fn) (void *), void *ptr)
 #endif
@@ -622,7 +622,7 @@ perl_atexit(void (*fn) (void *), void *ptr)
 
 int
 #ifdef PERL_OBJECT
-CPerlObj::perl_parse(void (*xsinit) (CPerlObj*), int argc, char **argv, char **env)
+perl_parse(void (*xsinit) (CPerlObj*), int argc, char **argv, char **env)
 #else
 perl_parse(PerlInterpreter *sv_interp, void (*xsinit) (void), int argc, char **argv, char **env)
 #endif
@@ -813,14 +813,11 @@ setuid perl scripts securely.\n");
 #else
                sv_catpv(PL_Sv,"print \"\\nCharacteristics of this binary (from libperl): \\n\",");
 #endif
-#if defined(DEBUGGING) || defined(NO_EMBED) || defined(MULTIPLICITY)
+#if defined(DEBUGGING) || defined(MULTIPLICITY)
                sv_catpv(PL_Sv,"\"  Compile-time options:");
 #  ifdef DEBUGGING
                sv_catpv(PL_Sv," DEBUGGING");
 #  endif
-#  ifdef NO_EMBED
-               sv_catpv(PL_Sv," NO_EMBED");
-#  endif
 #  ifdef MULTIPLICITY
                sv_catpv(PL_Sv," MULTIPLICITY");
 #  endif
@@ -1018,7 +1015,7 @@ print \"  \\@INC:\\n    @INC\\n\";");
 
 int
 #ifdef PERL_OBJECT
-CPerlObj::perl_run(void)
+perl_run(void)
 #else
 perl_run(PerlInterpreter *sv_interp)
 #endif
diff --git a/perl.h b/perl.h
index 1561884..ed72d40 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -16,9 +16,6 @@
  * Above symbol is defined via -D in 'x2p/Makefile.SH'
  * Decouple x2p stuff from some of perls more extreme eccentricities. 
  */
-#undef EMBED
-#undef NO_EMBED
-#define NO_EMBED
 #undef MULTIPLICITY
 #undef USE_STDIO
 #define USE_STDIO
@@ -61,9 +58,9 @@ PERL CORE
 variables or functions needed are made member functions
 3. all writable static variables are made member variables
 4. all global variables and functions are defined as:
-       #define var CPerlObj::Perl_var
+       #define var CPerlObj::PL_var
        #define func CPerlObj::Perl_func
-       * these are in objpp.h
+       * these are in embed.h
 This necessitated renaming some local variables and functions that
 had the same name as a global variable or function. This was
 probably a _good_ thing anyway.
@@ -73,7 +70,7 @@ EXTENSIONS
 1. Access to global variables and perl functions is through a
 pointer to the PERL_OBJECT. This pointer type is CPerlObj*. This is
 made transparent to extension developers by the following macros:
-       #define var pPerl->Perl_var
+       #define var pPerl->PL_var
        #define func pPerl->Perl_func
        * these are done in objXSUB.h
 This requires that the extension be compiled as C++, which means
@@ -127,7 +124,7 @@ class CPerlObj;
 #define PERL_OBJECT_THIS
 #define _PERL_OBJECT_THIS
 #define PERL_OBJECT_THIS_
-#define CALLRUNOPS PL_runops
+#define CALLRUNOPS (*PL_runops)
 #define CALLREGCOMP (*PL_regcompp)
 #define CALLREGEXEC (*PL_regexecp)
 
@@ -136,7 +133,9 @@ class CPerlObj;
 #define VOIDUSED 1
 #include "config.h"
 
-#include "embed.h"
+#if !defined(PERL_FOR_X2P)
+#  include "embed.h"
+#endif
 
 #undef START_EXTERN_C
 #undef END_EXTERN_C
@@ -155,11 +154,7 @@ class CPerlObj;
 #  ifdef __GNUC__
 #    define stringify_immed(s) #s
 #    define stringify(s) stringify_immed(s)
-#ifdef EMBED
 register struct op *Perl_op asm(stringify(OP_IN_REGISTER));
-#else
-register struct op *op asm(stringify(OP_IN_REGISTER));
-#endif
 #  endif
 #endif
 
@@ -250,7 +245,7 @@ register struct op *op asm(stringify(OP_IN_REGISTER));
 #define TAINT_NOT      (PL_tainted = FALSE)
 #define TAINT_IF(c)    if (c) { PL_tainted = TRUE; }
 #define TAINT_ENV()    if (PL_tainting) { taint_env(); }
-#define TAINT_PROPER(s)        if (PL_tainting) { taint_proper(no_security, s); }
+#define TAINT_PROPER(s)        if (PL_tainting) { taint_proper(Nullch, s); }
 
 /* XXX All process group stuff is handled in pp_sys.c.  Should these 
    defines move there?  If so, I could simplify this a lot. --AD  9/96.
@@ -1490,7 +1485,9 @@ union any {
 #include "form.h"
 #include "gv.h"
 #include "cv.h"
+#ifndef PERL_OBJECT
 #include "opcode.h"
+#endif
 #include "op.h"
 #include "cop.h"
 #include "av.h"
@@ -1547,11 +1544,6 @@ typedef struct {
 typedef I32 CHECKPOINT;
 #endif /* PERL_OBJECT */
 
-/* work around some libPW problems */
-#ifdef DOINIT
-EXT char Error[1];
-#endif
-
 #if defined(iAPX286) || defined(M_I286) || defined(I80286)
 #   define I286
 #endif
@@ -1837,12 +1829,13 @@ typedef Sighandler_t Sigsave_t;
  */
 
 #ifndef PERL_OBJECT
-typedef int runops_proc_t _((void));
+typedef int (*runops_proc_t) _((void));
 int runops_standard _((void));
 #ifdef DEBUGGING
 int runops_debug _((void));
 #endif
-#endif  /* PERL_OBJECT */
+#endif
+
 
 /* _ (for $_) must be first in the following list (DEFSV requires it) */
 #define THREADSV_NAMES "_123456789&`'+/.,\\\";^-%=|~:\001\005!@"
@@ -1864,62 +1857,57 @@ EXT char *** environ_pointer;
 #endif /* environ processing */
 
 
-/* for tmp use in stupid debuggers */
-EXT int *      di;
-EXT short *    ds;
-EXT char *     dc;
-
 /* handy constants */
-EXTCONST char warn_uninit[]
+EXTCONST char PL_warn_uninit[]
   INIT("Use of uninitialized value");
-EXTCONST char warn_nosemi[]
+EXTCONST char PL_warn_nosemi[]
   INIT("Semicolon seems to be missing");
-EXTCONST char warn_reserved[]
+EXTCONST char PL_warn_reserved[]
   INIT("Unquoted string \"%s\" may clash with future reserved word");
-EXTCONST char warn_nl[]
+EXTCONST char PL_warn_nl[]
   INIT("Unsuccessful %s on filename containing newline");
-EXTCONST char no_wrongref[]
+EXTCONST char PL_no_wrongref[]
   INIT("Can't use %s ref as %s ref");
-EXTCONST char no_symref[]
+EXTCONST char PL_no_symref[]
   INIT("Can't use string (\"%.32s\") as %s ref while \"strict refs\" in use");
-EXTCONST char no_usym[]
+EXTCONST char PL_no_usym[]
   INIT("Can't use an undefined value as %s reference");
-EXTCONST char no_aelem[]
+EXTCONST char PL_no_aelem[]
   INIT("Modification of non-creatable array value attempted, subscript %d");
-EXTCONST char no_helem[]
+EXTCONST char PL_no_helem[]
   INIT("Modification of non-creatable hash value attempted, subscript \"%s\"");
-EXTCONST char no_modify[]
+EXTCONST char PL_no_modify[]
   INIT("Modification of a read-only value attempted");
-EXTCONST char no_mem[]
+EXTCONST char PL_no_mem[]
   INIT("Out of memory!\n");
-EXTCONST char no_security[]
+EXTCONST char PL_no_security[]
   INIT("Insecure dependency in %s%s");
-EXTCONST char no_sock_func[]
+EXTCONST char PL_no_sock_func[]
   INIT("Unsupported socket function \"%s\" called");
-EXTCONST char no_dir_func[]
+EXTCONST char PL_no_dir_func[]
   INIT("Unsupported directory function \"%s\" called");
-EXTCONST char no_func[]
+EXTCONST char PL_no_func[]
   INIT("The %s function is unimplemented");
-EXTCONST char no_myglob[]
+EXTCONST char PL_no_myglob[]
   INIT("\"my\" variable %s can't be in a package");
 
 #ifdef DOINIT
-EXT char *sig_name[] = { SIG_NAME };
-EXT int   sig_num[]  = { SIG_NUM };
-EXT SV * psig_ptr[sizeof(sig_num)/sizeof(*sig_num)];
-EXT SV  * psig_name[sizeof(sig_num)/sizeof(*sig_num)];
+EXT char *PL_sig_name[] = { SIG_NAME };
+EXT int   PL_sig_num[]  = { SIG_NUM };
+EXT SV * PL_psig_ptr[sizeof(PL_sig_num)/sizeof(*PL_sig_num)];
+EXT SV  * PL_psig_name[sizeof(PL_sig_num)/sizeof(*PL_sig_num)];
 #else
-EXT char *sig_name[];
-EXT int   sig_num[];
-EXT SV  * psig_ptr[];
-EXT SV  * psig_name[];
+EXT char *PL_sig_name[];
+EXT int   PL_sig_num[];
+EXT SV  * PL_psig_ptr[];
+EXT SV  * PL_psig_name[];
 #endif
 
 /* fast case folding tables */
 
 #ifdef DOINIT
 #ifdef EBCDIC
-EXT unsigned char fold[] = { /* fast EBCDIC case folding table */
+EXT unsigned char PL_fold[] = { /* fast EBCDIC case folding table */
     0,      1,      2,      3,      4,      5,      6,      7,
     8,      9,      10,     11,     12,     13,     14,     15,
     16,     17,     18,     19,     20,     21,     22,     23,
@@ -1954,7 +1942,7 @@ EXT unsigned char fold[] = { /* fast EBCDIC case folding table */
     248,    249,    250,    251,    252,    253,    254,    255
 };
 #else   /* ascii rather than ebcdic */
-EXTCONST  unsigned char fold[] = {
+EXTCONST  unsigned char PL_fold[] = {
        0,      1,      2,      3,      4,      5,      6,      7,
        8,      9,      10,     11,     12,     13,     14,     15,
        16,     17,     18,     19,     20,     21,     22,     23,
@@ -1990,11 +1978,11 @@ EXTCONST  unsigned char fold[] = {
 };
 #endif  /* !EBCDIC */
 #else
-EXTCONST unsigned char fold[];
+EXTCONST unsigned char PL_fold[];
 #endif
 
 #ifdef DOINIT
-EXT unsigned char fold_locale[] = {
+EXT unsigned char PL_fold_locale[] = {
        0,      1,      2,      3,      4,      5,      6,      7,
        8,      9,      10,     11,     12,     13,     14,     15,
        16,     17,     18,     19,     20,     21,     22,     23,
@@ -2029,12 +2017,12 @@ EXT unsigned char fold_locale[] = {
        248,    249,    250,    251,    252,    253,    254,    255
 };
 #else
-EXT unsigned char fold_locale[];
+EXT unsigned char PL_fold_locale[];
 #endif
 
 #ifdef DOINIT
 #ifdef EBCDIC
-EXT unsigned char freq[] = {/* EBCDIC frequencies for mixed English/C */
+EXT unsigned char PL_freq[] = {/* EBCDIC frequencies for mixed English/C */
     1,      2,      84,     151,    154,    155,    156,    157,
     165,    246,    250,    3,      158,    7,      18,     29,
     40,     51,     62,     73,     85,     96,     107,    118,
@@ -2069,7 +2057,7 @@ EXT unsigned char freq[] = {/* EBCDIC frequencies for mixed English/C */
     191,    183,    141,    142,    143,    144,    145,    146
 };
 #else  /* ascii rather than ebcdic */
-EXTCONST unsigned char freq[] = {      /* letter frequencies for mixed English/C */
+EXTCONST unsigned char PL_freq[] = {   /* letter frequencies for mixed English/C */
        1,      2,      84,     151,    154,    155,    156,    157,
        165,    246,    250,    3,      158,    7,      18,     29,
        40,     51,     62,     73,     85,     96,     107,    118,
@@ -2105,12 +2093,12 @@ EXTCONST unsigned char freq[] = {       /* letter frequencies for mixed English/C */
 };
 #endif
 #else
-EXTCONST unsigned char freq[];
+EXTCONST unsigned char PL_freq[];
 #endif
 
 #ifdef DEBUGGING
 #ifdef DOINIT
-EXTCONST char* block_type[] = {
+EXTCONST char* PL_block_type[] = {
        "NULL",
        "SUB",
        "EVAL",
@@ -2119,7 +2107,7 @@ EXTCONST char* block_type[] = {
        "BLOCK",
 };
 #else
-EXTCONST char* block_type[];
+EXTCONST char* PL_block_type[];
 #endif
 #endif
 
@@ -2207,7 +2195,10 @@ typedef struct exitlistentry {
 #ifdef PERL_OBJECT
 extern "C" CPerlObj* perl_alloc _((IPerlMem*, IPerlEnv*, IPerlStdIO*, IPerlLIO*, IPerlDir*, IPerlSock*, IPerlProc*));
 
+#ifdef PERL_OBJECT
 typedef int (CPerlObj::*runops_proc_t) _((void));
+#endif  /* PERL_OBJECT */
+
 #undef EXT
 #define EXT
 #undef EXTCONST
@@ -2247,9 +2238,7 @@ struct perl_vars *PL_VarsPtr;
 */
 
 struct interpreter {
-#ifndef USE_THREADS
 #include "thrdvar.h"
-#endif
 #include "intrpvar.h"
 };
 
@@ -2284,17 +2273,14 @@ typedef void *Thread;
 #include "pp.h"
 #include "proto.h"
 
-#ifdef EMBED
 #define Perl_sv_setptrobj(rv,ptr,name) Perl_sv_setref_iv(rv,name,(IV)ptr)
 #define Perl_sv_setptrref(rv,ptr) Perl_sv_setref_iv(rv,Nullch,(IV)ptr)
-#else
-#define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,(IV)ptr)
-#define sv_setptrref(rv,ptr) sv_setref_iv(rv,Nullch,(IV)ptr)
-#endif
 
 /* The following must follow proto.h as #defines mess up syntax */
 
-#include "embedvar.h"
+#if !defined(PERL_FOR_X2P)
+#  include "embedvar.h"
+#endif
 
 /* Now include all the 'global' variables 
  * If we don't have threads or multiple interpreters
@@ -2327,14 +2313,21 @@ typedef void *Thread;
 PERLVAR(object_compatibility[30],      char)
 };
 
-#include "objpp.h"
-#ifdef DOINIT
-#include "INTERN.h"
-#else
-#include "EXTERN.h"
-#endif
-#endif  /* PERL_OBJECT */
+#  include "embed.h"
+#  if defined(WIN32) && !defined(WIN32IO_IS_STDIO)
+#    define errno      CPerlObj::ErrorNo()
+#  endif
 
+#  ifdef DOINIT
+#    include "INTERN.h"
+#  else
+#    include "EXTERN.h"
+#  endif
+
+/* this has structure inits, so it cannot be included before here */
+#  include "opcode.h"
+
+#endif  /* PERL_OBJECT */
 
 #undef PERLVAR
 #undef PERLVARI
@@ -2354,125 +2347,125 @@ PERLVAR(object_compatibility[30],     char)
 
 #ifdef DOINIT
 
-EXT MGVTBL vtbl_sv =   {magic_get,
+EXT MGVTBL PL_vtbl_sv =        {magic_get,
                                magic_set,
                                        magic_len,
                                                0,      0};
-EXT MGVTBL vtbl_env =  {0,     magic_set_all_env,
+EXT MGVTBL PL_vtbl_env =       {0,     magic_set_all_env,
                                0,      magic_clear_all_env,
                                                        0};
-EXT MGVTBL vtbl_envelem =      {0,     magic_setenv,
+EXT MGVTBL PL_vtbl_envelem =   {0,     magic_setenv,
                                        0,      magic_clearenv,
                                                        0};
-EXT MGVTBL vtbl_sig =  {0,     0,               0, 0, 0};
-EXT MGVTBL vtbl_sigelem =      {magic_getsig,
+EXT MGVTBL PL_vtbl_sig =       {0,     0,               0, 0, 0};
+EXT MGVTBL PL_vtbl_sigelem =   {magic_getsig,
                                        magic_setsig,
                                        0,      magic_clearsig,
                                                        0};
-EXT MGVTBL vtbl_pack = {0,     0,      magic_sizepack, magic_wipepack,
+EXT MGVTBL PL_vtbl_pack =      {0,     0,      magic_sizepack, magic_wipepack,
                                                        0};
-EXT MGVTBL vtbl_packelem =     {magic_getpack,
+EXT MGVTBL PL_vtbl_packelem =  {magic_getpack,
                                magic_setpack,
                                        0,      magic_clearpack,
                                                        0};
-EXT MGVTBL vtbl_dbline =       {0,     magic_setdbline,
+EXT MGVTBL PL_vtbl_dbline =    {0,     magic_setdbline,
                                        0,      0,      0};
-EXT MGVTBL vtbl_isa =  {0,     magic_setisa,
+EXT MGVTBL PL_vtbl_isa =       {0,     magic_setisa,
                                        0,      magic_setisa,
                                                        0};
-EXT MGVTBL vtbl_isaelem =      {0,     magic_setisa,
+EXT MGVTBL PL_vtbl_isaelem =   {0,     magic_setisa,
                                        0,      0,      0};
-EXT MGVTBL vtbl_arylen =       {magic_getarylen,
+EXT MGVTBL PL_vtbl_arylen =    {magic_getarylen,
                                magic_setarylen,
                                        0,      0,      0};
-EXT MGVTBL vtbl_glob = {magic_getglob,
+EXT MGVTBL PL_vtbl_glob =      {magic_getglob,
                                magic_setglob,
                                        0,      0,      0};
-EXT MGVTBL vtbl_mglob =        {0,     magic_setmglob,
+EXT MGVTBL PL_vtbl_mglob =     {0,     magic_setmglob,
                                        0,      0,      0};
-EXT MGVTBL vtbl_nkeys =        {magic_getnkeys,
+EXT MGVTBL PL_vtbl_nkeys =     {magic_getnkeys,
                                magic_setnkeys,
                                        0,      0,      0};
-EXT MGVTBL vtbl_taint =        {magic_gettaint,magic_settaint,
+EXT MGVTBL PL_vtbl_taint =     {magic_gettaint,magic_settaint,
                                        0,      0,      0};
-EXT MGVTBL vtbl_substr =       {magic_getsubstr, magic_setsubstr,
+EXT MGVTBL PL_vtbl_substr =    {magic_getsubstr, magic_setsubstr,
                                        0,      0,      0};
-EXT MGVTBL vtbl_vec =  {magic_getvec,
+EXT MGVTBL PL_vtbl_vec =       {magic_getvec,
                                magic_setvec,
                                        0,      0,      0};
-EXT MGVTBL vtbl_pos =  {magic_getpos,
+EXT MGVTBL PL_vtbl_pos =       {magic_getpos,
                                magic_setpos,
                                        0,      0,      0};
-EXT MGVTBL vtbl_bm =   {0,     magic_setbm,
+EXT MGVTBL PL_vtbl_bm =        {0,     magic_setbm,
                                        0,      0,      0};
-EXT MGVTBL vtbl_fm =   {0,     magic_setfm,
+EXT MGVTBL PL_vtbl_fm =        {0,     magic_setfm,
                                        0,      0,      0};
-EXT MGVTBL vtbl_uvar = {magic_getuvar,
+EXT MGVTBL PL_vtbl_uvar =      {magic_getuvar,
                                magic_setuvar,
                                        0,      0,      0};
 #ifdef USE_THREADS
-EXT MGVTBL vtbl_mutex =        {0,     0,      0,      0,      magic_mutexfree};
+EXT MGVTBL PL_vtbl_mutex =     {0,     0,      0,      0,      magic_mutexfree};
 #endif /* USE_THREADS */
-EXT MGVTBL vtbl_defelem = {magic_getdefelem,magic_setdefelem,
+EXT MGVTBL PL_vtbl_defelem = {magic_getdefelem,magic_setdefelem,
                                        0,      0,      0};
 
-EXT MGVTBL vtbl_regexp = {0,0,0,0, magic_freeregexp};
-EXT MGVTBL vtbl_regdata = {0, 0, magic_regdata_cnt, 0, 0};
-EXT MGVTBL vtbl_regdatum = {magic_regdatum_get, 0, 0, 0, 0};
+EXT MGVTBL PL_vtbl_regexp = {0,0,0,0, magic_freeregexp};
+EXT MGVTBL PL_vtbl_regdata = {0, 0, magic_regdata_cnt, 0, 0};
+EXT MGVTBL PL_vtbl_regdatum = {magic_regdatum_get, 0, 0, 0, 0};
 
 #ifdef USE_LOCALE_COLLATE
-EXT MGVTBL vtbl_collxfrm = {0,
+EXT MGVTBL PL_vtbl_collxfrm = {0,
                                magic_setcollxfrm,
                                        0,      0,      0};
 #endif
 
 #ifdef OVERLOAD
-EXT MGVTBL vtbl_amagic =       {0,     magic_setamagic,
+EXT MGVTBL PL_vtbl_amagic =       {0,     magic_setamagic,
                                         0,      0,      magic_setamagic};
-EXT MGVTBL vtbl_amagicelem =   {0,     magic_setamagic,
+EXT MGVTBL PL_vtbl_amagicelem =   {0,     magic_setamagic,
                                         0,      0,      magic_setamagic};
 #endif /* OVERLOAD */
 
 #else /* !DOINIT */
 
-EXT MGVTBL vtbl_sv;
-EXT MGVTBL vtbl_env;
-EXT MGVTBL vtbl_envelem;
-EXT MGVTBL vtbl_sig;
-EXT MGVTBL vtbl_sigelem;
-EXT MGVTBL vtbl_pack;
-EXT MGVTBL vtbl_packelem;
-EXT MGVTBL vtbl_dbline;
-EXT MGVTBL vtbl_isa;
-EXT MGVTBL vtbl_isaelem;
-EXT MGVTBL vtbl_arylen;
-EXT MGVTBL vtbl_glob;
-EXT MGVTBL vtbl_mglob;
-EXT MGVTBL vtbl_nkeys;
-EXT MGVTBL vtbl_taint;
-EXT MGVTBL vtbl_substr;
-EXT MGVTBL vtbl_vec;
-EXT MGVTBL vtbl_pos;
-EXT MGVTBL vtbl_bm;
-EXT MGVTBL vtbl_fm;
-EXT MGVTBL vtbl_uvar;
+EXT MGVTBL PL_vtbl_sv;
+EXT MGVTBL PL_vtbl_env;
+EXT MGVTBL PL_vtbl_envelem;
+EXT MGVTBL PL_vtbl_sig;
+EXT MGVTBL PL_vtbl_sigelem;
+EXT MGVTBL PL_vtbl_pack;
+EXT MGVTBL PL_vtbl_packelem;
+EXT MGVTBL PL_vtbl_dbline;
+EXT MGVTBL PL_vtbl_isa;
+EXT MGVTBL PL_vtbl_isaelem;
+EXT MGVTBL PL_vtbl_arylen;
+EXT MGVTBL PL_vtbl_glob;
+EXT MGVTBL PL_vtbl_mglob;
+EXT MGVTBL PL_vtbl_nkeys;
+EXT MGVTBL PL_vtbl_taint;
+EXT MGVTBL PL_vtbl_substr;
+EXT MGVTBL PL_vtbl_vec;
+EXT MGVTBL PL_vtbl_pos;
+EXT MGVTBL PL_vtbl_bm;
+EXT MGVTBL PL_vtbl_fm;
+EXT MGVTBL PL_vtbl_uvar;
 
 #ifdef USE_THREADS
-EXT MGVTBL vtbl_mutex;
+EXT MGVTBL PL_vtbl_mutex;
 #endif /* USE_THREADS */
 
-EXT MGVTBL vtbl_defelem;
-EXT MGVTBL vtbl_regexp;
-EXT MGVTBL vtbl_regdata;
-EXT MGVTBL vtbl_regdatum;
+EXT MGVTBL PL_vtbl_defelem;
+EXT MGVTBL PL_vtbl_regexp;
+EXT MGVTBL PL_vtbl_regdata;
+EXT MGVTBL PL_vtbl_regdatum;
 
 #ifdef USE_LOCALE_COLLATE
-EXT MGVTBL vtbl_collxfrm;
+EXT MGVTBL PL_vtbl_collxfrm;
 #endif
 
 #ifdef OVERLOAD
-EXT MGVTBL vtbl_amagic;
-EXT MGVTBL vtbl_amagicelem;
+EXT MGVTBL PL_vtbl_amagic;
+EXT MGVTBL PL_vtbl_amagicelem;
 #endif /* OVERLOAD */
 
 #endif /* !DOINIT */
@@ -2481,7 +2474,7 @@ EXT MGVTBL vtbl_amagicelem;
 
 #define NofAMmeth 58
 #ifdef DOINIT
-EXTCONST char * AMG_names[NofAMmeth] = {
+EXTCONST char * PL_AMG_names[NofAMmeth] = {
   "fallback",  "abs",                  /* "fallback" should be the first. */
   "bool",      "nomethod",
   "\"\"",      "0+",
@@ -2513,7 +2506,7 @@ EXTCONST char * AMG_names[NofAMmeth] = {
   "=",         "neg"
 };
 #else
-EXTCONST char * AMG_names[NofAMmeth];
+EXTCONST char * PL_AMG_names[NofAMmeth];
 #endif /* def INITAMAGIC */
 
 struct am_table {
index 07d4140..51c3ab2 100644 (file)
@@ -7,7 +7,7 @@
 # Create the export list for perl.
 # Needed by AIX to do dynamic linking.
 #
-# This simple program relies on 'global.sym' and few other *.sym files
+# This simple program relies on global.sym and few other *.sym files
 # and the *var*.h files being up to date with all of the global
 # symbols that a dynamic link library might want to access.
 #
@@ -52,9 +52,10 @@ echo "#!" > perl.exp
 # No interp.sym since 5.005_03.
 # perlio.sym will added later if needed.
 
-syms="global.sym thread.sym"
+syms="global.sym pp.sym"
 
 sed -n '/^[A-Za-z]/ s/^/Perl_/p' $syms                 >> perl.exp
+sed -n '/^[A-Za-z]/ s/^/PL_/p'   globvar.sym           >> perl.exp
 
 sed -n 's/^PERLVAR.*(G\([^[,]*\).*/PL_\1/p' perlvars.h >> perl.exp
 sed -n 's/^PERLVAR.*(I\([^[,]*\).*/PL_\1/p' intrpvar.h >> perl.exp
@@ -99,9 +100,6 @@ perl_call_sv
 perl_eval_pv
 perl_eval_sv
 perl_require_pv
-cast_i32
-cast_iv
-cast_uv
 END
 
 case "$ccflags" in
index d42353d..17924a9 100644 (file)
@@ -10,7 +10,7 @@
  * and how they're initialized.
  *
  * The 'G' prefix is only needed for vars that need appropriate #defines
- * generated when built with or without EMBED.  It is also used to generate
+ * generated in embed*.h.  Such symbols are also used to generate
  * the appropriate export list for win32.
  *
  * Avoid build-specific #ifdefs here, like DEBUGGING.  That way,
@@ -70,11 +70,7 @@ PERLVAR(Ghe_root,    HE *)           /* free he list--shared by interpreters */
 PERLVAR(Gnice_chunk,   char *)         /* a nice chunk of memory to reuse */
 PERLVAR(Gnice_chunk_size,      U32)    /* how nice the chunk of memory is */
 
-#ifdef PERL_OBJECT
 PERLVARI(Grunops,      runops_proc_t,  FUNC_NAME_TO_PTR(RUNOPS_DEFAULT))
-#else
-PERLVARI(Grunops,      runops_proc_t *,        RUNOPS_DEFAULT)
-#endif
 
 PERLVAR(Gtokenbuf[256],        char)
 PERLVAR(Gna,           STRLEN)         /* for use in SvPV when length is
diff --git a/perly.c b/perly.c
index 2f9c045..a13d388 100644 (file)
--- a/perly.c
+++ b/perly.c
@@ -30,7 +30,7 @@ dep(void)
 
 #line 30 "perly.y"
 #define YYERRCODE 256
-short yylhs[] = {                                        -1,
+static short yylhs[] = {                                        -1,
    45,    0,    9,    7,   10,    8,   11,   11,   11,   12,
    12,   12,   12,   24,   24,   24,   24,   24,   24,   24,
    15,   15,   15,   14,   14,   42,   42,   13,   13,   13,
@@ -50,7 +50,7 @@ short yylhs[] = {                                        -1,
    34,   34,   34,    2,    2,   43,   23,   18,   19,   20,
    21,   22,   35,   35,   35,   35,
 };
-short yylen[] = {                                         2,
+static short yylen[] = {                                         2,
     0,    2,    4,    0,    4,    0,    0,    2,    2,    2,
     1,    2,    3,    1,    1,    3,    3,    3,    3,    3,
     0,    2,    6,    7,    7,    0,    2,    8,    8,   10,
@@ -70,7 +70,7 @@ short yylen[] = {                                         2,
     0,    1,    2,    1,    1,    1,    2,    2,    2,    2,
     2,    2,    1,    1,    1,    1,
 };
-short yydefred[] = {                                      1,
+static short yydefred[] = {                                      1,
     0,    7,    0,   45,   56,   54,    0,   54,    8,   46,
     9,   11,    0,   47,   48,   49,    0,    0,    0,   63,
    64,   14,    4,  157,    0,    0,  130,    0,  152,    0,
@@ -109,14 +109,14 @@ short yydefred[] = {                                      1,
    22,    0,    0,    0,   31,    5,    0,   30,    0,    0,
    33,    0,   23,
 };
-short yydgoto[] = {                                       1,
+static short yydgoto[] = {                                       1,
     9,   66,   10,   18,   95,   17,   86,  339,   89,  328,
     3,   11,   12,   68,  344,  263,   70,   71,   72,   73,
    74,   75,   76,  269,   78,  270,  259,  261,  264,  272,
   260,  262,  113,  198,   91,   79,  238,   81,   83,  179,
   250,  142,  267,   13,    2,   14,   15,   16,   85,  256,
 };
-short yysindex[] = {                                      0,
+static short yysindex[] = {                                      0,
     0,    0,  -66,    0,    0,    0,  -48,    0,    0,    0,
     0,    0,  645,    0,    0,    0, -232, -227,  -27,    0,
     0,    0,    0,    0,  -23,  -23,    0,   -6,    0, 2099,
@@ -155,7 +155,7 @@ short yysindex[] = {                                      0,
     0, 2099, -206,  256,    0,    0,  259,    0,   92,   92,
     0, -238,    0,
 };
-short yyrindex[] = {                                      0,
+static short yyrindex[] = {                                      0,
     0,    0,  249,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,  184,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -194,7 +194,7 @@ short yyrindex[] = {                                      0,
     0,    0,   59,    0,    0,    0,    0,    0,    0,    0,
     0,  154,    0,
 };
-short yygindex[] = {                                      0,
+static short yygindex[] = {                                      0,
     0,    0,    0,  374,  351,    0,  -12,    0,  946,  413,
   -83,    0,    0,    0, -311,  -13, 4007, 2893,    0,    0,
     0,    0,    0,  372,   -8,    0,    0,  246, -131,   43,
@@ -202,7 +202,7 @@ short yygindex[] = {                                      0,
     0, -271,    0,    0,    0,    0,    0,    0,    0,    0,
 };
 #define YYTABLESIZE 4293
-short yytable[] = {                                      69,
+static short yytable[] = {                                      69,
   207,   62,  181,  104,  168,  102,  104,  204,  168,  248,
    20,  208,   62,  253,   58,  285,  274,  170,  298,  345,
   104,  104,  172,  202,   80,  104,  311,  148,  149,   82,
@@ -634,7 +634,7 @@ short yytable[] = {                                      69,
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     0,    0,  317,
 };
-short yycheck[] = {                                      13,
+static short yycheck[] = {                                      13,
    41,   36,   86,   41,   91,   40,   44,   59,   91,   59,
    59,   93,   36,  183,   59,   59,   41,   91,   41,  331,
    58,   59,   91,   40,  257,   63,   41,  297,  298,  257,
@@ -1072,7 +1072,7 @@ short yycheck[] = {                                      13,
 #endif
 #define YYMAXTOKEN 314
 #if YYDEBUG
-char *yyname[] = {
+static char *yyname[] = {
 "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,0,0,0,0,0,0,
 0,0,0,0,0,"':'","';'",0,0,0,"'?'","'@'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -1089,7 +1089,7 @@ char *yyname[] = {
 "SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP","PREINC","PREDEC","POSTINC",
 "POSTDEC","ARROW",
 };
-char *yyrule[] = {
+static char *yyrule[] = {
 "$accept : prog",
 "$$1 :",
 "prog : $$1 lineseq",
index 769fd01..7ccb80e 100644 (file)
@@ -2778,7 +2778,7 @@ indicated number of bytes (remember to reserve space for an extra
 trailing NUL character).  Calls C<sv_grow> to perform the expansion if
 necessary.  Returns a pointer to the character buffer.
 
-       char*   SvGROW( SV* sv, int len )
+       char*   SvGROW( SV* sv, STRLEN len )
 
 =item sv_grow
 
diff --git a/pp.c b/pp.c
index 63f20b8..babf2c5 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -233,14 +233,14 @@ PP(pp_rv2gv)
            if (!SvOK(sv)) {
                if (PL_op->op_flags & OPf_REF ||
                    PL_op->op_private & HINT_STRICT_REFS)
-                   DIE(no_usym, "a symbol");
+                   DIE(PL_no_usym, "a symbol");
                if (ckWARN(WARN_UNINITIALIZED))
-                   warner(WARN_UNINITIALIZED, warn_uninit);
+                   warner(WARN_UNINITIALIZED, PL_warn_uninit);
                RETSETUNDEF;
            }
            sym = SvPV(sv, PL_na);
            if (PL_op->op_private & HINT_STRICT_REFS)
-               DIE(no_symref, sym, "a symbol");
+               DIE(PL_no_symref, sym, "a symbol");
            sv = (SV*)gv_fetchpv(sym, TRUE, SVt_PVGV);
        }
     }
@@ -277,14 +277,14 @@ PP(pp_rv2sv)
            if (!SvOK(sv)) {
                if (PL_op->op_flags & OPf_REF ||
                    PL_op->op_private & HINT_STRICT_REFS)
-                   DIE(no_usym, "a SCALAR");
+                   DIE(PL_no_usym, "a SCALAR");
                if (ckWARN(WARN_UNINITIALIZED))
-                   warner(WARN_UNINITIALIZED, warn_uninit);
+                   warner(WARN_UNINITIALIZED, PL_warn_uninit);
                RETSETUNDEF;
            }
            sym = SvPV(sv, PL_na);
            if (PL_op->op_private & HINT_STRICT_REFS)
-               DIE(no_symref, sym, "a SCALAR");
+               DIE(PL_no_symref, sym, "a SCALAR");
            gv = (GV*)gv_fetchpv(sym, TRUE, SVt_PV);
        }
        sv = GvSV(gv);
@@ -390,13 +390,16 @@ PP(pp_prototype)
                char str[ MAX_ARGS_OP * 2 + 2 ]; /* One ';', one '\0' */
 
                while (i < MAXO) {      /* The slow way. */
-                   if (strEQ(s + 6, op_name[i]) || strEQ(s + 6, op_desc[i]))
+                   if (strEQ(s + 6, PL_op_name[i])
+                       || strEQ(s + 6, PL_op_desc[i]))
+                   {
                        goto found;
+                   }
                    i++;
                }
                goto nonesuch;          /* Should not happen... */
              found:
-               oa = opargs[i] >> OASHIFT;
+               oa = PL_opargs[i] >> OASHIFT;
                while (oa) {
                    if (oa & OA_OPTIONAL) {
                        seen_question = 1;
@@ -812,7 +815,7 @@ PP(pp_predec)
 {
     djSP;
     if (SvREADONLY(TOPs) || SvTYPE(TOPs) > SVt_PVLV)
-       croak(no_modify);
+       croak(PL_no_modify);
     if (SvIOK(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) &&
        SvIVX(TOPs) != IV_MIN)
     {
@@ -829,7 +832,7 @@ PP(pp_postinc)
 {
     djSP; dTARGET;
     if (SvREADONLY(TOPs) || SvTYPE(TOPs) > SVt_PVLV)
-       croak(no_modify);
+       croak(PL_no_modify);
     sv_setsv(TARG, TOPs);
     if (SvIOK(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) &&
        SvIVX(TOPs) != IV_MAX)
@@ -850,7 +853,7 @@ PP(pp_postdec)
 {
     djSP; dTARGET;
     if(SvREADONLY(TOPs) || SvTYPE(TOPs) > SVt_PVLV)
-       croak(no_modify);
+       croak(PL_no_modify);
     sv_setsv(TARG, TOPs);
     if (SvIOK(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) &&
        SvIVX(TOPs) != IV_MIN)
@@ -2509,7 +2512,7 @@ PP(pp_aslice)
            svp = av_fetch(av, elem, lval);
            if (lval) {
                if (!svp || *svp == &PL_sv_undef)
-                   DIE(no_aelem, elem);
+                   DIE(PL_no_aelem, elem);
                if (PL_op->op_private & OPpLVAL_INTRO)
                    save_aelem(av, elem, svp);
            }
@@ -2649,7 +2652,7 @@ PP(pp_hslice)
            }
            if (lval) {
                if (!svp || *svp == &PL_sv_undef)
-                   DIE(no_helem, SvPV(keysv, PL_na));
+                   DIE(PL_no_helem, SvPV(keysv, PL_na));
                if (PL_op->op_private & OPpLVAL_INTRO)
                    save_helem(hv, keysv, svp);
            }
@@ -2801,7 +2804,7 @@ PP(pp_splice)
        else
            offset -= PL_curcop->cop_arybase;
        if (offset < 0)
-           DIE(no_aelem, i);
+           DIE(PL_no_aelem, i);
        if (++MARK < SP) {
            length = SvIVx(*MARK++);
            if (length < 0) {
diff --git a/pp.h b/pp.h
index 6fe91f4..8e2c7d3 100644 (file)
--- a/pp.h
+++ b/pp.h
 #define ARGS
 #define dARGS
 #endif /* USE_THREADS */
-#ifdef PERL_OBJECT
-#define PP(s) OP * CPerlObj::s(ARGSproto)
-#else
+
 #define PP(s) OP * s(ARGSproto)
-#endif
 
 #define SP sp
 #define MARK mark
diff --git a/pp.sym b/pp.sym
new file mode 100644 (file)
index 0000000..e991d6b
--- /dev/null
+++ b/pp.sym
@@ -0,0 +1,344 @@
+pp_null
+pp_stub
+pp_scalar
+pp_pushmark
+pp_wantarray
+pp_const
+pp_gvsv
+pp_gv
+pp_gelem
+pp_padsv
+pp_padav
+pp_padhv
+pp_padany
+pp_pushre
+pp_rv2gv
+pp_rv2sv
+pp_av2arylen
+pp_rv2cv
+pp_anoncode
+pp_prototype
+pp_refgen
+pp_srefgen
+pp_ref
+pp_bless
+pp_backtick
+pp_glob
+pp_readline
+pp_rcatline
+pp_regcmaybe
+pp_regcreset
+pp_regcomp
+pp_match
+pp_qr
+pp_subst
+pp_substcont
+pp_trans
+pp_sassign
+pp_aassign
+pp_chop
+pp_schop
+pp_chomp
+pp_schomp
+pp_defined
+pp_undef
+pp_study
+pp_pos
+pp_preinc
+pp_predec
+pp_postinc
+pp_postdec
+pp_pow
+pp_multiply
+pp_i_multiply
+pp_divide
+pp_i_divide
+pp_modulo
+pp_i_modulo
+pp_repeat
+pp_add
+pp_i_add
+pp_subtract
+pp_i_subtract
+pp_concat
+pp_stringify
+pp_left_shift
+pp_right_shift
+pp_lt
+pp_i_lt
+pp_gt
+pp_i_gt
+pp_le
+pp_i_le
+pp_ge
+pp_i_ge
+pp_eq
+pp_i_eq
+pp_ne
+pp_i_ne
+pp_ncmp
+pp_i_ncmp
+pp_slt
+pp_sgt
+pp_sle
+pp_sge
+pp_seq
+pp_sne
+pp_scmp
+pp_bit_and
+pp_bit_xor
+pp_bit_or
+pp_negate
+pp_i_negate
+pp_not
+pp_complement
+pp_atan2
+pp_sin
+pp_cos
+pp_rand
+pp_srand
+pp_exp
+pp_log
+pp_sqrt
+pp_int
+pp_hex
+pp_oct
+pp_abs
+pp_length
+pp_substr
+pp_vec
+pp_index
+pp_rindex
+pp_sprintf
+pp_formline
+pp_ord
+pp_chr
+pp_crypt
+pp_ucfirst
+pp_lcfirst
+pp_uc
+pp_lc
+pp_quotemeta
+pp_rv2av
+pp_aelemfast
+pp_aelem
+pp_aslice
+pp_each
+pp_values
+pp_keys
+pp_delete
+pp_exists
+pp_rv2hv
+pp_helem
+pp_hslice
+pp_unpack
+pp_pack
+pp_split
+pp_join
+pp_list
+pp_lslice
+pp_anonlist
+pp_anonhash
+pp_splice
+pp_push
+pp_pop
+pp_shift
+pp_unshift
+pp_sort
+pp_reverse
+pp_grepstart
+pp_grepwhile
+pp_mapstart
+pp_mapwhile
+pp_range
+pp_flip
+pp_flop
+pp_and
+pp_or
+pp_xor
+pp_cond_expr
+pp_andassign
+pp_orassign
+pp_method
+pp_entersub
+pp_leavesub
+pp_caller
+pp_warn
+pp_die
+pp_reset
+pp_lineseq
+pp_nextstate
+pp_dbstate
+pp_unstack
+pp_enter
+pp_leave
+pp_scope
+pp_enteriter
+pp_iter
+pp_enterloop
+pp_leaveloop
+pp_return
+pp_last
+pp_next
+pp_redo
+pp_dump
+pp_goto
+pp_exit
+pp_open
+pp_close
+pp_pipe_op
+pp_fileno
+pp_umask
+pp_binmode
+pp_tie
+pp_untie
+pp_tied
+pp_dbmopen
+pp_dbmclose
+pp_sselect
+pp_select
+pp_getc
+pp_read
+pp_enterwrite
+pp_leavewrite
+pp_prtf
+pp_print
+pp_sysopen
+pp_sysseek
+pp_sysread
+pp_syswrite
+pp_send
+pp_recv
+pp_eof
+pp_tell
+pp_seek
+pp_truncate
+pp_fcntl
+pp_ioctl
+pp_flock
+pp_socket
+pp_sockpair
+pp_bind
+pp_connect
+pp_listen
+pp_accept
+pp_shutdown
+pp_gsockopt
+pp_ssockopt
+pp_getsockname
+pp_getpeername
+pp_lstat
+pp_stat
+pp_ftrread
+pp_ftrwrite
+pp_ftrexec
+pp_fteread
+pp_ftewrite
+pp_fteexec
+pp_ftis
+pp_fteowned
+pp_ftrowned
+pp_ftzero
+pp_ftsize
+pp_ftmtime
+pp_ftatime
+pp_ftctime
+pp_ftsock
+pp_ftchr
+pp_ftblk
+pp_ftfile
+pp_ftdir
+pp_ftpipe
+pp_ftlink
+pp_ftsuid
+pp_ftsgid
+pp_ftsvtx
+pp_fttty
+pp_fttext
+pp_ftbinary
+pp_chdir
+pp_chown
+pp_chroot
+pp_unlink
+pp_chmod
+pp_utime
+pp_rename
+pp_link
+pp_symlink
+pp_readlink
+pp_mkdir
+pp_rmdir
+pp_open_dir
+pp_readdir
+pp_telldir
+pp_seekdir
+pp_rewinddir
+pp_closedir
+pp_fork
+pp_wait
+pp_waitpid
+pp_system
+pp_exec
+pp_kill
+pp_getppid
+pp_getpgrp
+pp_setpgrp
+pp_getpriority
+pp_setpriority
+pp_time
+pp_tms
+pp_localtime
+pp_gmtime
+pp_alarm
+pp_sleep
+pp_shmget
+pp_shmctl
+pp_shmread
+pp_shmwrite
+pp_msgget
+pp_msgctl
+pp_msgsnd
+pp_msgrcv
+pp_semget
+pp_semctl
+pp_semop
+pp_require
+pp_dofile
+pp_entereval
+pp_leaveeval
+pp_entertry
+pp_leavetry
+pp_ghbyname
+pp_ghbyaddr
+pp_ghostent
+pp_gnbyname
+pp_gnbyaddr
+pp_gnetent
+pp_gpbyname
+pp_gpbynumber
+pp_gprotoent
+pp_gsbyname
+pp_gsbyport
+pp_gservent
+pp_shostent
+pp_snetent
+pp_sprotoent
+pp_sservent
+pp_ehostent
+pp_enetent
+pp_eprotoent
+pp_eservent
+pp_gpwnam
+pp_gpwuid
+pp_gpwent
+pp_spwent
+pp_epwent
+pp_ggrnam
+pp_ggrgid
+pp_ggrent
+pp_sgrent
+pp_egrent
+pp_getlogin
+pp_syscall
+pp_lock
+pp_threadsv
index 5a8cf00..c9ccb3a 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -852,7 +852,7 @@ PP(pp_sort)
            }
            PL_sortcop = CvSTART(cv);
            SAVESPTR(CvROOT(cv)->op_ppaddr);
-           CvROOT(cv)->op_ppaddr = ppaddr[OP_NULL];
+           CvROOT(cv)->op_ppaddr = PL_ppaddr[OP_NULL];
 
            SAVESPTR(PL_curpad);
            PL_curpad = AvARRAY((AV*)AvARRAY(CvPADLIST(cv))[1]);
@@ -1047,22 +1047,22 @@ dopoptolabel(char *label)
        case CXt_SUBST:
            if (ckWARN(WARN_UNSAFE))
                warner(WARN_UNSAFE, "Exiting substitution via %s", 
-                       op_name[PL_op->op_type]);
+                       PL_op_name[PL_op->op_type]);
            break;
        case CXt_SUB:
            if (ckWARN(WARN_UNSAFE))
                warner(WARN_UNSAFE, "Exiting subroutine via %s", 
-                       op_name[PL_op->op_type]);
+                       PL_op_name[PL_op->op_type]);
            break;
        case CXt_EVAL:
            if (ckWARN(WARN_UNSAFE))
                warner(WARN_UNSAFE, "Exiting eval via %s", 
-                       op_name[PL_op->op_type]);
+                       PL_op_name[PL_op->op_type]);
            break;
        case CXt_NULL:
            if (ckWARN(WARN_UNSAFE))
                warner(WARN_UNSAFE, "Exiting pseudo-block via %s", 
-                       op_name[PL_op->op_type]);
+                       PL_op_name[PL_op->op_type]);
            return -1;
        case CXt_LOOP:
            if (!cx->blk_loop.label ||
@@ -1167,22 +1167,22 @@ dopoptoloop(I32 startingblock)
        case CXt_SUBST:
            if (ckWARN(WARN_UNSAFE))
                warner(WARN_UNSAFE, "Exiting substitution via %s", 
-                       op_name[PL_op->op_type]);
+                       PL_op_name[PL_op->op_type]);
            break;
        case CXt_SUB:
            if (ckWARN(WARN_UNSAFE))
                warner(WARN_UNSAFE, "Exiting subroutine via %s", 
-                       op_name[PL_op->op_type]);
+                       PL_op_name[PL_op->op_type]);
            break;
        case CXt_EVAL:
            if (ckWARN(WARN_UNSAFE))
                warner(WARN_UNSAFE, "Exiting eval via %s", 
-                       op_name[PL_op->op_type]);
+                       PL_op_name[PL_op->op_type]);
            break;
        case CXt_NULL:
            if (ckWARN(WARN_UNSAFE))
                warner(WARN_UNSAFE, "Exiting pseudo-block via %s", 
-                       op_name[PL_op->op_type]);
+                       PL_op_name[PL_op->op_type]);
            return -1;
        case CXt_LOOP:
            DEBUG_l( deb("(Found loop #%ld)\n", (long)i));
@@ -1203,7 +1203,7 @@ dounwind(I32 cxix)
     while (cxstack_ix > cxix) {
        cx = &cxstack[cxstack_ix];
        DEBUG_l(PerlIO_printf(Perl_debug_log, "Unwinding block %ld, type %s\n",
-                             (long) cxstack_ix, block_type[CxTYPE(cx)]));
+                             (long) cxstack_ix, PL_block_type[CxTYPE(cx)]));
        /* Note: we don't need to restore the base context info till the end. */
        switch (CxTYPE(cx)) {
        case CXt_SUBST:
@@ -2459,7 +2459,7 @@ sv_compile_2op(SV *sv, OP** startop, char *code, AV** avp)
     POPEVAL(cx);
 
     (*startop)->op_type = OP_NULL;
-    (*startop)->op_ppaddr = ppaddr[OP_NULL];
+    (*startop)->op_ppaddr = PL_ppaddr[OP_NULL];
     lex_end();
     *avp = (AV*)SvREFCNT_inc(PL_comppad);
     LEAVE;
index 53d42d8..26bf29c 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -220,7 +220,7 @@ PP(pp_preinc)
 {
     djSP;
     if (SvREADONLY(TOPs) || SvTYPE(TOPs) > SVt_PVLV)
-       croak(no_modify);
+       croak(PL_no_modify);
     if (SvIOK(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) &&
        SvIVX(TOPs) != IV_MAX)
     {
@@ -438,16 +438,16 @@ PP(pp_rv2av)
                if (!SvOK(sv)) {
                    if (PL_op->op_flags & OPf_REF ||
                      PL_op->op_private & HINT_STRICT_REFS)
-                       DIE(no_usym, "an ARRAY");
+                       DIE(PL_no_usym, "an ARRAY");
                    if (ckWARN(WARN_UNINITIALIZED))
-                       warner(WARN_UNINITIALIZED, warn_uninit);
+                       warner(WARN_UNINITIALIZED, PL_warn_uninit);
                    if (GIMME == G_ARRAY)
                        RETURN;
                    RETPUSHUNDEF;
                }
                sym = SvPV(sv,PL_na);
                if (PL_op->op_private & HINT_STRICT_REFS)
-                   DIE(no_symref, sym, "an ARRAY");
+                   DIE(PL_no_symref, sym, "an ARRAY");
                gv = (GV*)gv_fetchpv(sym, TRUE, SVt_PVAV);
            } else {
                gv = (GV*)sv;
@@ -522,9 +522,9 @@ PP(pp_rv2hv)
                if (!SvOK(sv)) {
                    if (PL_op->op_flags & OPf_REF ||
                      PL_op->op_private & HINT_STRICT_REFS)
-                       DIE(no_usym, "a HASH");
+                       DIE(PL_no_usym, "a HASH");
                    if (ckWARN(WARN_UNINITIALIZED))
-                       warner(WARN_UNINITIALIZED, warn_uninit);
+                       warner(WARN_UNINITIALIZED, PL_warn_uninit);
                    if (GIMME == G_ARRAY) {
                        SP--;
                        RETURN;
@@ -533,7 +533,7 @@ PP(pp_rv2hv)
                }
                sym = SvPV(sv,PL_na);
                if (PL_op->op_private & HINT_STRICT_REFS)
-                   DIE(no_symref, sym, "a HASH");
+                   DIE(PL_no_symref, sym, "a HASH");
                gv = (GV*)gv_fetchpv(sym, TRUE, SVt_PVHV);
            } else {
                gv = (GV*)sv;
@@ -690,7 +690,7 @@ PP(pp_aassign)
            if (SvTHINKFIRST(sv)) {
                if (SvREADONLY(sv) && PL_curcop != &PL_compiling) {
                    if (!SvIMMORTAL(sv))
-                       DIE(no_modify);
+                       DIE(PL_no_modify);
                    if (relem <= lastrelem)
                        relem++;
                    break;
@@ -1368,7 +1368,7 @@ PP(pp_helem)
            SV* lv;
            SV* key2;
            if (!defer)
-               DIE(no_helem, SvPV(keysv, PL_na));
+               DIE(PL_no_helem, SvPV(keysv, PL_na));
            lv = sv_newmortal();
            sv_upgrade(lv, SVt_PVLV);
            LvTYPE(lv) = 'y';
@@ -1598,7 +1598,7 @@ PP(pp_subst)
     if (SvREADONLY(TARG)
        || (SvTYPE(TARG) > SVt_PVLV
            && !(SvTYPE(TARG) == SVt_PVGV && SvFAKE(TARG))))
-       croak(no_modify);
+       croak(PL_no_modify);
     PUTBACK;
 
     s = SvPV(TARG, len);
@@ -2010,9 +2010,9 @@ PP(pp_entersub)
            else
                sym = SvPV(sv, PL_na);
            if (!sym)
-               DIE(no_usym, "a subroutine");
+               DIE(PL_no_usym, "a subroutine");
            if (PL_op->op_private & HINT_STRICT_REFS)
-               DIE(no_symref, sym, "a subroutine");
+               DIE(PL_no_symref, sym, "a subroutine");
            cv = perl_get_cv(sym, TRUE);
            break;
        }
@@ -2427,7 +2427,7 @@ PP(pp_aelem)
        if (!svp || *svp == &PL_sv_undef) {
            SV* lv;
            if (!defer)
-               DIE(no_aelem, elem);
+               DIE(PL_no_aelem, elem);
            lv = sv_newmortal();
            sv_upgrade(lv, SVt_PVLV);
            LvTYPE(lv) = 'y';
@@ -2457,7 +2457,7 @@ vivify_ref(SV *sv, U32 to_what)
        mg_get(sv);
     if (!SvOK(sv)) {
        if (SvREADONLY(sv))
-           croak(no_modify);
+           croak(PL_no_modify);
        if (SvTYPE(sv) < SVt_RV)
            sv_upgrade(sv, SVt_RV);
        else if (SvTYPE(sv) >= SVt_PV) {
index ad82696..76ac6f4 100644 (file)
-PPDEF(pp_null)
-PPDEF(pp_stub)
-PPDEF(pp_scalar)
-PPDEF(pp_pushmark)
-PPDEF(pp_wantarray)
-PPDEF(pp_const)
-PPDEF(pp_gvsv)
-PPDEF(pp_gv)
-PPDEF(pp_gelem)
-PPDEF(pp_padsv)
-PPDEF(pp_padav)
-PPDEF(pp_padhv)
-PPDEF(pp_padany)
-PPDEF(pp_pushre)
-PPDEF(pp_rv2gv)
-PPDEF(pp_rv2sv)
-PPDEF(pp_av2arylen)
-PPDEF(pp_rv2cv)
-PPDEF(pp_anoncode)
-PPDEF(pp_prototype)
-PPDEF(pp_refgen)
-PPDEF(pp_srefgen)
-PPDEF(pp_ref)
-PPDEF(pp_bless)
-PPDEF(pp_backtick)
-PPDEF(pp_glob)
-PPDEF(pp_readline)
-PPDEF(pp_rcatline)
-PPDEF(pp_regcmaybe)
-PPDEF(pp_regcreset)
-PPDEF(pp_regcomp)
-PPDEF(pp_match)
-PPDEF(pp_qr)
-PPDEF(pp_subst)
-PPDEF(pp_substcont)
-PPDEF(pp_trans)
-PPDEF(pp_sassign)
-PPDEF(pp_aassign)
-PPDEF(pp_chop)
-PPDEF(pp_schop)
-PPDEF(pp_chomp)
-PPDEF(pp_schomp)
-PPDEF(pp_defined)
-PPDEF(pp_undef)
-PPDEF(pp_study)
-PPDEF(pp_pos)
-PPDEF(pp_preinc)
-PPDEF(pp_predec)
-PPDEF(pp_postinc)
-PPDEF(pp_postdec)
-PPDEF(pp_pow)
-PPDEF(pp_multiply)
-PPDEF(pp_i_multiply)
-PPDEF(pp_divide)
-PPDEF(pp_i_divide)
-PPDEF(pp_modulo)
-PPDEF(pp_i_modulo)
-PPDEF(pp_repeat)
-PPDEF(pp_add)
-PPDEF(pp_i_add)
-PPDEF(pp_subtract)
-PPDEF(pp_i_subtract)
-PPDEF(pp_concat)
-PPDEF(pp_stringify)
-PPDEF(pp_left_shift)
-PPDEF(pp_right_shift)
-PPDEF(pp_lt)
-PPDEF(pp_i_lt)
-PPDEF(pp_gt)
-PPDEF(pp_i_gt)
-PPDEF(pp_le)
-PPDEF(pp_i_le)
-PPDEF(pp_ge)
-PPDEF(pp_i_ge)
-PPDEF(pp_eq)
-PPDEF(pp_i_eq)
-PPDEF(pp_ne)
-PPDEF(pp_i_ne)
-PPDEF(pp_ncmp)
-PPDEF(pp_i_ncmp)
-PPDEF(pp_slt)
-PPDEF(pp_sgt)
-PPDEF(pp_sle)
-PPDEF(pp_sge)
-PPDEF(pp_seq)
-PPDEF(pp_sne)
-PPDEF(pp_scmp)
-PPDEF(pp_bit_and)
-PPDEF(pp_bit_xor)
-PPDEF(pp_bit_or)
-PPDEF(pp_negate)
-PPDEF(pp_i_negate)
-PPDEF(pp_not)
-PPDEF(pp_complement)
-PPDEF(pp_atan2)
-PPDEF(pp_sin)
-PPDEF(pp_cos)
-PPDEF(pp_rand)
-PPDEF(pp_srand)
-PPDEF(pp_exp)
-PPDEF(pp_log)
-PPDEF(pp_sqrt)
-PPDEF(pp_int)
-PPDEF(pp_hex)
-PPDEF(pp_oct)
-PPDEF(pp_abs)
-PPDEF(pp_length)
-PPDEF(pp_substr)
-PPDEF(pp_vec)
-PPDEF(pp_index)
-PPDEF(pp_rindex)
-PPDEF(pp_sprintf)
-PPDEF(pp_formline)
-PPDEF(pp_ord)
-PPDEF(pp_chr)
-PPDEF(pp_crypt)
-PPDEF(pp_ucfirst)
-PPDEF(pp_lcfirst)
-PPDEF(pp_uc)
-PPDEF(pp_lc)
-PPDEF(pp_quotemeta)
-PPDEF(pp_rv2av)
-PPDEF(pp_aelemfast)
-PPDEF(pp_aelem)
-PPDEF(pp_aslice)
-PPDEF(pp_each)
-PPDEF(pp_values)
-PPDEF(pp_keys)
-PPDEF(pp_delete)
-PPDEF(pp_exists)
-PPDEF(pp_rv2hv)
-PPDEF(pp_helem)
-PPDEF(pp_hslice)
-PPDEF(pp_unpack)
-PPDEF(pp_pack)
-PPDEF(pp_split)
-PPDEF(pp_join)
-PPDEF(pp_list)
-PPDEF(pp_lslice)
-PPDEF(pp_anonlist)
-PPDEF(pp_anonhash)
-PPDEF(pp_splice)
-PPDEF(pp_push)
-PPDEF(pp_pop)
-PPDEF(pp_shift)
-PPDEF(pp_unshift)
-PPDEF(pp_sort)
-PPDEF(pp_reverse)
-PPDEF(pp_grepstart)
-PPDEF(pp_grepwhile)
-PPDEF(pp_mapstart)
-PPDEF(pp_mapwhile)
-PPDEF(pp_range)
-PPDEF(pp_flip)
-PPDEF(pp_flop)
-PPDEF(pp_and)
-PPDEF(pp_or)
-PPDEF(pp_xor)
-PPDEF(pp_cond_expr)
-PPDEF(pp_andassign)
-PPDEF(pp_orassign)
-PPDEF(pp_method)
-PPDEF(pp_entersub)
-PPDEF(pp_leavesub)
-PPDEF(pp_caller)
-PPDEF(pp_warn)
-PPDEF(pp_die)
-PPDEF(pp_reset)
-PPDEF(pp_lineseq)
-PPDEF(pp_nextstate)
-PPDEF(pp_dbstate)
-PPDEF(pp_unstack)
-PPDEF(pp_enter)
-PPDEF(pp_leave)
-PPDEF(pp_scope)
-PPDEF(pp_enteriter)
-PPDEF(pp_iter)
-PPDEF(pp_enterloop)
-PPDEF(pp_leaveloop)
-PPDEF(pp_return)
-PPDEF(pp_last)
-PPDEF(pp_next)
-PPDEF(pp_redo)
-PPDEF(pp_dump)
-PPDEF(pp_goto)
-PPDEF(pp_exit)
-PPDEF(pp_open)
-PPDEF(pp_close)
-PPDEF(pp_pipe_op)
-PPDEF(pp_fileno)
-PPDEF(pp_umask)
-PPDEF(pp_binmode)
-PPDEF(pp_tie)
-PPDEF(pp_untie)
-PPDEF(pp_tied)
-PPDEF(pp_dbmopen)
-PPDEF(pp_dbmclose)
-PPDEF(pp_sselect)
-PPDEF(pp_select)
-PPDEF(pp_getc)
-PPDEF(pp_read)
-PPDEF(pp_enterwrite)
-PPDEF(pp_leavewrite)
-PPDEF(pp_prtf)
-PPDEF(pp_print)
-PPDEF(pp_sysopen)
-PPDEF(pp_sysseek)
-PPDEF(pp_sysread)
-PPDEF(pp_syswrite)
-PPDEF(pp_send)
-PPDEF(pp_recv)
-PPDEF(pp_eof)
-PPDEF(pp_tell)
-PPDEF(pp_seek)
-PPDEF(pp_truncate)
-PPDEF(pp_fcntl)
-PPDEF(pp_ioctl)
-PPDEF(pp_flock)
-PPDEF(pp_socket)
-PPDEF(pp_sockpair)
-PPDEF(pp_bind)
-PPDEF(pp_connect)
-PPDEF(pp_listen)
-PPDEF(pp_accept)
-PPDEF(pp_shutdown)
-PPDEF(pp_gsockopt)
-PPDEF(pp_ssockopt)
-PPDEF(pp_getsockname)
-PPDEF(pp_getpeername)
-PPDEF(pp_lstat)
-PPDEF(pp_stat)
-PPDEF(pp_ftrread)
-PPDEF(pp_ftrwrite)
-PPDEF(pp_ftrexec)
-PPDEF(pp_fteread)
-PPDEF(pp_ftewrite)
-PPDEF(pp_fteexec)
-PPDEF(pp_ftis)
-PPDEF(pp_fteowned)
-PPDEF(pp_ftrowned)
-PPDEF(pp_ftzero)
-PPDEF(pp_ftsize)
-PPDEF(pp_ftmtime)
-PPDEF(pp_ftatime)
-PPDEF(pp_ftctime)
-PPDEF(pp_ftsock)
-PPDEF(pp_ftchr)
-PPDEF(pp_ftblk)
-PPDEF(pp_ftfile)
-PPDEF(pp_ftdir)
-PPDEF(pp_ftpipe)
-PPDEF(pp_ftlink)
-PPDEF(pp_ftsuid)
-PPDEF(pp_ftsgid)
-PPDEF(pp_ftsvtx)
-PPDEF(pp_fttty)
-PPDEF(pp_fttext)
-PPDEF(pp_ftbinary)
-PPDEF(pp_chdir)
-PPDEF(pp_chown)
-PPDEF(pp_chroot)
-PPDEF(pp_unlink)
-PPDEF(pp_chmod)
-PPDEF(pp_utime)
-PPDEF(pp_rename)
-PPDEF(pp_link)
-PPDEF(pp_symlink)
-PPDEF(pp_readlink)
-PPDEF(pp_mkdir)
-PPDEF(pp_rmdir)
-PPDEF(pp_open_dir)
-PPDEF(pp_readdir)
-PPDEF(pp_telldir)
-PPDEF(pp_seekdir)
-PPDEF(pp_rewinddir)
-PPDEF(pp_closedir)
-PPDEF(pp_fork)
-PPDEF(pp_wait)
-PPDEF(pp_waitpid)
-PPDEF(pp_system)
-PPDEF(pp_exec)
-PPDEF(pp_kill)
-PPDEF(pp_getppid)
-PPDEF(pp_getpgrp)
-PPDEF(pp_setpgrp)
-PPDEF(pp_getpriority)
-PPDEF(pp_setpriority)
-PPDEF(pp_time)
-PPDEF(pp_tms)
-PPDEF(pp_localtime)
-PPDEF(pp_gmtime)
-PPDEF(pp_alarm)
-PPDEF(pp_sleep)
-PPDEF(pp_shmget)
-PPDEF(pp_shmctl)
-PPDEF(pp_shmread)
-PPDEF(pp_shmwrite)
-PPDEF(pp_msgget)
-PPDEF(pp_msgctl)
-PPDEF(pp_msgsnd)
-PPDEF(pp_msgrcv)
-PPDEF(pp_semget)
-PPDEF(pp_semctl)
-PPDEF(pp_semop)
-PPDEF(pp_require)
-PPDEF(pp_dofile)
-PPDEF(pp_entereval)
-PPDEF(pp_leaveeval)
-PPDEF(pp_entertry)
-PPDEF(pp_leavetry)
-PPDEF(pp_ghbyname)
-PPDEF(pp_ghbyaddr)
-PPDEF(pp_ghostent)
-PPDEF(pp_gnbyname)
-PPDEF(pp_gnbyaddr)
-PPDEF(pp_gnetent)
-PPDEF(pp_gpbyname)
-PPDEF(pp_gpbynumber)
-PPDEF(pp_gprotoent)
-PPDEF(pp_gsbyname)
-PPDEF(pp_gsbyport)
-PPDEF(pp_gservent)
-PPDEF(pp_shostent)
-PPDEF(pp_snetent)
-PPDEF(pp_sprotoent)
-PPDEF(pp_sservent)
-PPDEF(pp_ehostent)
-PPDEF(pp_enetent)
-PPDEF(pp_eprotoent)
-PPDEF(pp_eservent)
-PPDEF(pp_gpwnam)
-PPDEF(pp_gpwuid)
-PPDEF(pp_gpwent)
-PPDEF(pp_spwent)
-PPDEF(pp_epwent)
-PPDEF(pp_ggrnam)
-PPDEF(pp_ggrgid)
-PPDEF(pp_ggrent)
-PPDEF(pp_sgrent)
-PPDEF(pp_egrent)
-PPDEF(pp_getlogin)
-PPDEF(pp_syscall)
-PPDEF(pp_lock)
-PPDEF(pp_threadsv)
+PERL_CKDEF(ck_anoncode)
+PERL_CKDEF(ck_bitop)
+PERL_CKDEF(ck_concat)
+PERL_CKDEF(ck_delete)
+PERL_CKDEF(ck_eof)
+PERL_CKDEF(ck_eval)
+PERL_CKDEF(ck_exec)
+PERL_CKDEF(ck_exists)
+PERL_CKDEF(ck_ftst)
+PERL_CKDEF(ck_fun)
+PERL_CKDEF(ck_fun_locale)
+PERL_CKDEF(ck_glob)
+PERL_CKDEF(ck_grep)
+PERL_CKDEF(ck_index)
+PERL_CKDEF(ck_lengthconst)
+PERL_CKDEF(ck_lfun)
+PERL_CKDEF(ck_listiob)
+PERL_CKDEF(ck_match)
+PERL_CKDEF(ck_null)
+PERL_CKDEF(ck_repeat)
+PERL_CKDEF(ck_require)
+PERL_CKDEF(ck_rfun)
+PERL_CKDEF(ck_rvconst)
+PERL_CKDEF(ck_scmp)
+PERL_CKDEF(ck_select)
+PERL_CKDEF(ck_shift)
+PERL_CKDEF(ck_sort)
+PERL_CKDEF(ck_spair)
+PERL_CKDEF(ck_split)
+PERL_CKDEF(ck_subr)
+PERL_CKDEF(ck_svconst)
+PERL_CKDEF(ck_trunc)
+
+
+PERL_PPDEF(pp_null)
+PERL_PPDEF(pp_stub)
+PERL_PPDEF(pp_scalar)
+PERL_PPDEF(pp_pushmark)
+PERL_PPDEF(pp_wantarray)
+PERL_PPDEF(pp_const)
+PERL_PPDEF(pp_gvsv)
+PERL_PPDEF(pp_gv)
+PERL_PPDEF(pp_gelem)
+PERL_PPDEF(pp_padsv)
+PERL_PPDEF(pp_padav)
+PERL_PPDEF(pp_padhv)
+PERL_PPDEF(pp_padany)
+PERL_PPDEF(pp_pushre)
+PERL_PPDEF(pp_rv2gv)
+PERL_PPDEF(pp_rv2sv)
+PERL_PPDEF(pp_av2arylen)
+PERL_PPDEF(pp_rv2cv)
+PERL_PPDEF(pp_anoncode)
+PERL_PPDEF(pp_prototype)
+PERL_PPDEF(pp_refgen)
+PERL_PPDEF(pp_srefgen)
+PERL_PPDEF(pp_ref)
+PERL_PPDEF(pp_bless)
+PERL_PPDEF(pp_backtick)
+PERL_PPDEF(pp_glob)
+PERL_PPDEF(pp_readline)
+PERL_PPDEF(pp_rcatline)
+PERL_PPDEF(pp_regcmaybe)
+PERL_PPDEF(pp_regcreset)
+PERL_PPDEF(pp_regcomp)
+PERL_PPDEF(pp_match)
+PERL_PPDEF(pp_qr)
+PERL_PPDEF(pp_subst)
+PERL_PPDEF(pp_substcont)
+PERL_PPDEF(pp_trans)
+PERL_PPDEF(pp_sassign)
+PERL_PPDEF(pp_aassign)
+PERL_PPDEF(pp_chop)
+PERL_PPDEF(pp_schop)
+PERL_PPDEF(pp_chomp)
+PERL_PPDEF(pp_schomp)
+PERL_PPDEF(pp_defined)
+PERL_PPDEF(pp_undef)
+PERL_PPDEF(pp_study)
+PERL_PPDEF(pp_pos)
+PERL_PPDEF(pp_preinc)
+PERL_PPDEF(pp_predec)
+PERL_PPDEF(pp_postinc)
+PERL_PPDEF(pp_postdec)
+PERL_PPDEF(pp_pow)
+PERL_PPDEF(pp_multiply)
+PERL_PPDEF(pp_i_multiply)
+PERL_PPDEF(pp_divide)
+PERL_PPDEF(pp_i_divide)
+PERL_PPDEF(pp_modulo)
+PERL_PPDEF(pp_i_modulo)
+PERL_PPDEF(pp_repeat)
+PERL_PPDEF(pp_add)
+PERL_PPDEF(pp_i_add)
+PERL_PPDEF(pp_subtract)
+PERL_PPDEF(pp_i_subtract)
+PERL_PPDEF(pp_concat)
+PERL_PPDEF(pp_stringify)
+PERL_PPDEF(pp_left_shift)
+PERL_PPDEF(pp_right_shift)
+PERL_PPDEF(pp_lt)
+PERL_PPDEF(pp_i_lt)
+PERL_PPDEF(pp_gt)
+PERL_PPDEF(pp_i_gt)
+PERL_PPDEF(pp_le)
+PERL_PPDEF(pp_i_le)
+PERL_PPDEF(pp_ge)
+PERL_PPDEF(pp_i_ge)
+PERL_PPDEF(pp_eq)
+PERL_PPDEF(pp_i_eq)
+PERL_PPDEF(pp_ne)
+PERL_PPDEF(pp_i_ne)
+PERL_PPDEF(pp_ncmp)
+PERL_PPDEF(pp_i_ncmp)
+PERL_PPDEF(pp_slt)
+PERL_PPDEF(pp_sgt)
+PERL_PPDEF(pp_sle)
+PERL_PPDEF(pp_sge)
+PERL_PPDEF(pp_seq)
+PERL_PPDEF(pp_sne)
+PERL_PPDEF(pp_scmp)
+PERL_PPDEF(pp_bit_and)
+PERL_PPDEF(pp_bit_xor)
+PERL_PPDEF(pp_bit_or)
+PERL_PPDEF(pp_negate)
+PERL_PPDEF(pp_i_negate)
+PERL_PPDEF(pp_not)
+PERL_PPDEF(pp_complement)
+PERL_PPDEF(pp_atan2)
+PERL_PPDEF(pp_sin)
+PERL_PPDEF(pp_cos)
+PERL_PPDEF(pp_rand)
+PERL_PPDEF(pp_srand)
+PERL_PPDEF(pp_exp)
+PERL_PPDEF(pp_log)
+PERL_PPDEF(pp_sqrt)
+PERL_PPDEF(pp_int)
+PERL_PPDEF(pp_hex)
+PERL_PPDEF(pp_oct)
+PERL_PPDEF(pp_abs)
+PERL_PPDEF(pp_length)
+PERL_PPDEF(pp_substr)
+PERL_PPDEF(pp_vec)
+PERL_PPDEF(pp_index)
+PERL_PPDEF(pp_rindex)
+PERL_PPDEF(pp_sprintf)
+PERL_PPDEF(pp_formline)
+PERL_PPDEF(pp_ord)
+PERL_PPDEF(pp_chr)
+PERL_PPDEF(pp_crypt)
+PERL_PPDEF(pp_ucfirst)
+PERL_PPDEF(pp_lcfirst)
+PERL_PPDEF(pp_uc)
+PERL_PPDEF(pp_lc)
+PERL_PPDEF(pp_quotemeta)
+PERL_PPDEF(pp_rv2av)
+PERL_PPDEF(pp_aelemfast)
+PERL_PPDEF(pp_aelem)
+PERL_PPDEF(pp_aslice)
+PERL_PPDEF(pp_each)
+PERL_PPDEF(pp_values)
+PERL_PPDEF(pp_keys)
+PERL_PPDEF(pp_delete)
+PERL_PPDEF(pp_exists)
+PERL_PPDEF(pp_rv2hv)
+PERL_PPDEF(pp_helem)
+PERL_PPDEF(pp_hslice)
+PERL_PPDEF(pp_unpack)
+PERL_PPDEF(pp_pack)
+PERL_PPDEF(pp_split)
+PERL_PPDEF(pp_join)
+PERL_PPDEF(pp_list)
+PERL_PPDEF(pp_lslice)
+PERL_PPDEF(pp_anonlist)
+PERL_PPDEF(pp_anonhash)
+PERL_PPDEF(pp_splice)
+PERL_PPDEF(pp_push)
+PERL_PPDEF(pp_pop)
+PERL_PPDEF(pp_shift)
+PERL_PPDEF(pp_unshift)
+PERL_PPDEF(pp_sort)
+PERL_PPDEF(pp_reverse)
+PERL_PPDEF(pp_grepstart)
+PERL_PPDEF(pp_grepwhile)
+PERL_PPDEF(pp_mapstart)
+PERL_PPDEF(pp_mapwhile)
+PERL_PPDEF(pp_range)
+PERL_PPDEF(pp_flip)
+PERL_PPDEF(pp_flop)
+PERL_PPDEF(pp_and)
+PERL_PPDEF(pp_or)
+PERL_PPDEF(pp_xor)
+PERL_PPDEF(pp_cond_expr)
+PERL_PPDEF(pp_andassign)
+PERL_PPDEF(pp_orassign)
+PERL_PPDEF(pp_method)
+PERL_PPDEF(pp_entersub)
+PERL_PPDEF(pp_leavesub)
+PERL_PPDEF(pp_caller)
+PERL_PPDEF(pp_warn)
+PERL_PPDEF(pp_die)
+PERL_PPDEF(pp_reset)
+PERL_PPDEF(pp_lineseq)
+PERL_PPDEF(pp_nextstate)
+PERL_PPDEF(pp_dbstate)
+PERL_PPDEF(pp_unstack)
+PERL_PPDEF(pp_enter)
+PERL_PPDEF(pp_leave)
+PERL_PPDEF(pp_scope)
+PERL_PPDEF(pp_enteriter)
+PERL_PPDEF(pp_iter)
+PERL_PPDEF(pp_enterloop)
+PERL_PPDEF(pp_leaveloop)
+PERL_PPDEF(pp_return)
+PERL_PPDEF(pp_last)
+PERL_PPDEF(pp_next)
+PERL_PPDEF(pp_redo)
+PERL_PPDEF(pp_dump)
+PERL_PPDEF(pp_goto)
+PERL_PPDEF(pp_exit)
+PERL_PPDEF(pp_open)
+PERL_PPDEF(pp_close)
+PERL_PPDEF(pp_pipe_op)
+PERL_PPDEF(pp_fileno)
+PERL_PPDEF(pp_umask)
+PERL_PPDEF(pp_binmode)
+PERL_PPDEF(pp_tie)
+PERL_PPDEF(pp_untie)
+PERL_PPDEF(pp_tied)
+PERL_PPDEF(pp_dbmopen)
+PERL_PPDEF(pp_dbmclose)
+PERL_PPDEF(pp_sselect)
+PERL_PPDEF(pp_select)
+PERL_PPDEF(pp_getc)
+PERL_PPDEF(pp_read)
+PERL_PPDEF(pp_enterwrite)
+PERL_PPDEF(pp_leavewrite)
+PERL_PPDEF(pp_prtf)
+PERL_PPDEF(pp_print)
+PERL_PPDEF(pp_sysopen)
+PERL_PPDEF(pp_sysseek)
+PERL_PPDEF(pp_sysread)
+PERL_PPDEF(pp_syswrite)
+PERL_PPDEF(pp_send)
+PERL_PPDEF(pp_recv)
+PERL_PPDEF(pp_eof)
+PERL_PPDEF(pp_tell)
+PERL_PPDEF(pp_seek)
+PERL_PPDEF(pp_truncate)
+PERL_PPDEF(pp_fcntl)
+PERL_PPDEF(pp_ioctl)
+PERL_PPDEF(pp_flock)
+PERL_PPDEF(pp_socket)
+PERL_PPDEF(pp_sockpair)
+PERL_PPDEF(pp_bind)
+PERL_PPDEF(pp_connect)
+PERL_PPDEF(pp_listen)
+PERL_PPDEF(pp_accept)
+PERL_PPDEF(pp_shutdown)
+PERL_PPDEF(pp_gsockopt)
+PERL_PPDEF(pp_ssockopt)
+PERL_PPDEF(pp_getsockname)
+PERL_PPDEF(pp_getpeername)
+PERL_PPDEF(pp_lstat)
+PERL_PPDEF(pp_stat)
+PERL_PPDEF(pp_ftrread)
+PERL_PPDEF(pp_ftrwrite)
+PERL_PPDEF(pp_ftrexec)
+PERL_PPDEF(pp_fteread)
+PERL_PPDEF(pp_ftewrite)
+PERL_PPDEF(pp_fteexec)
+PERL_PPDEF(pp_ftis)
+PERL_PPDEF(pp_fteowned)
+PERL_PPDEF(pp_ftrowned)
+PERL_PPDEF(pp_ftzero)
+PERL_PPDEF(pp_ftsize)
+PERL_PPDEF(pp_ftmtime)
+PERL_PPDEF(pp_ftatime)
+PERL_PPDEF(pp_ftctime)
+PERL_PPDEF(pp_ftsock)
+PERL_PPDEF(pp_ftchr)
+PERL_PPDEF(pp_ftblk)
+PERL_PPDEF(pp_ftfile)
+PERL_PPDEF(pp_ftdir)
+PERL_PPDEF(pp_ftpipe)
+PERL_PPDEF(pp_ftlink)
+PERL_PPDEF(pp_ftsuid)
+PERL_PPDEF(pp_ftsgid)
+PERL_PPDEF(pp_ftsvtx)
+PERL_PPDEF(pp_fttty)
+PERL_PPDEF(pp_fttext)
+PERL_PPDEF(pp_ftbinary)
+PERL_PPDEF(pp_chdir)
+PERL_PPDEF(pp_chown)
+PERL_PPDEF(pp_chroot)
+PERL_PPDEF(pp_unlink)
+PERL_PPDEF(pp_chmod)
+PERL_PPDEF(pp_utime)
+PERL_PPDEF(pp_rename)
+PERL_PPDEF(pp_link)
+PERL_PPDEF(pp_symlink)
+PERL_PPDEF(pp_readlink)
+PERL_PPDEF(pp_mkdir)
+PERL_PPDEF(pp_rmdir)
+PERL_PPDEF(pp_open_dir)
+PERL_PPDEF(pp_readdir)
+PERL_PPDEF(pp_telldir)
+PERL_PPDEF(pp_seekdir)
+PERL_PPDEF(pp_rewinddir)
+PERL_PPDEF(pp_closedir)
+PERL_PPDEF(pp_fork)
+PERL_PPDEF(pp_wait)
+PERL_PPDEF(pp_waitpid)
+PERL_PPDEF(pp_system)
+PERL_PPDEF(pp_exec)
+PERL_PPDEF(pp_kill)
+PERL_PPDEF(pp_getppid)
+PERL_PPDEF(pp_getpgrp)
+PERL_PPDEF(pp_setpgrp)
+PERL_PPDEF(pp_getpriority)
+PERL_PPDEF(pp_setpriority)
+PERL_PPDEF(pp_time)
+PERL_PPDEF(pp_tms)
+PERL_PPDEF(pp_localtime)
+PERL_PPDEF(pp_gmtime)
+PERL_PPDEF(pp_alarm)
+PERL_PPDEF(pp_sleep)
+PERL_PPDEF(pp_shmget)
+PERL_PPDEF(pp_shmctl)
+PERL_PPDEF(pp_shmread)
+PERL_PPDEF(pp_shmwrite)
+PERL_PPDEF(pp_msgget)
+PERL_PPDEF(pp_msgctl)
+PERL_PPDEF(pp_msgsnd)
+PERL_PPDEF(pp_msgrcv)
+PERL_PPDEF(pp_semget)
+PERL_PPDEF(pp_semctl)
+PERL_PPDEF(pp_semop)
+PERL_PPDEF(pp_require)
+PERL_PPDEF(pp_dofile)
+PERL_PPDEF(pp_entereval)
+PERL_PPDEF(pp_leaveeval)
+PERL_PPDEF(pp_entertry)
+PERL_PPDEF(pp_leavetry)
+PERL_PPDEF(pp_ghbyname)
+PERL_PPDEF(pp_ghbyaddr)
+PERL_PPDEF(pp_ghostent)
+PERL_PPDEF(pp_gnbyname)
+PERL_PPDEF(pp_gnbyaddr)
+PERL_PPDEF(pp_gnetent)
+PERL_PPDEF(pp_gpbyname)
+PERL_PPDEF(pp_gpbynumber)
+PERL_PPDEF(pp_gprotoent)
+PERL_PPDEF(pp_gsbyname)
+PERL_PPDEF(pp_gsbyport)
+PERL_PPDEF(pp_gservent)
+PERL_PPDEF(pp_shostent)
+PERL_PPDEF(pp_snetent)
+PERL_PPDEF(pp_sprotoent)
+PERL_PPDEF(pp_sservent)
+PERL_PPDEF(pp_ehostent)
+PERL_PPDEF(pp_enetent)
+PERL_PPDEF(pp_eprotoent)
+PERL_PPDEF(pp_eservent)
+PERL_PPDEF(pp_gpwnam)
+PERL_PPDEF(pp_gpwuid)
+PERL_PPDEF(pp_gpwent)
+PERL_PPDEF(pp_spwent)
+PERL_PPDEF(pp_epwent)
+PERL_PPDEF(pp_ggrnam)
+PERL_PPDEF(pp_ggrgid)
+PERL_PPDEF(pp_ggrent)
+PERL_PPDEF(pp_sgrent)
+PERL_PPDEF(pp_egrent)
+PERL_PPDEF(pp_getlogin)
+PERL_PPDEF(pp_syscall)
+PERL_PPDEF(pp_lock)
+PERL_PPDEF(pp_threadsv)
index 32ce19f..6ab33d4 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -359,7 +359,7 @@ PP(pp_glob)
         * so for security reasons we must assume the worst.
         */
        TAINT;
-       taint_proper(no_security, "glob");
+       taint_proper(PL_no_security, "glob");
     }
 #endif /* !VMS */
 
@@ -484,12 +484,12 @@ PP(pp_open)
     if (MAXARG > 1)
        sv = POPs;
     if (!isGV(TOPs))
-       DIE(no_usym, "filehandle");
+       DIE(PL_no_usym, "filehandle");
     if (MAXARG <= 1)
        sv = GvSV(TOPs);
     gv = (GV*)POPs;
     if (!isGV(gv))
-       DIE(no_usym, "filehandle");
+       DIE(PL_no_usym, "filehandle");
     if (GvIOp(gv))
        IoFLAGS(GvIOp(gv)) &= ~IOf_UNTAINT;
     tmps = SvPV(sv, len);
@@ -545,7 +545,7 @@ PP(pp_pipe_op)
        goto badexit;
 
     if (SvTYPE(rgv) != SVt_PVGV || SvTYPE(wgv) != SVt_PVGV)
-       DIE(no_usym, "filehandle");
+       DIE(PL_no_usym, "filehandle");
     rstio = GvIOn(rgv);
     wstio = GvIOn(wgv);
 
@@ -576,7 +576,7 @@ PP(pp_pipe_op)
 badexit:
     RETPUSHUNDEF;
 #else
-    DIE(no_func, "pipe");
+    DIE(PL_no_func, "pipe");
 #endif
 }
 
@@ -1404,7 +1404,7 @@ PP(pp_sysread)
     }
 #else
     if (PL_op->op_type == OP_RECV)
-       DIE(no_sock_func, "recv");
+       DIE(PL_no_sock_func, "recv");
 #endif
     if (offset < 0) {
        if (-offset > blen)
@@ -1542,7 +1542,7 @@ PP(pp_send)
 
 #else
     else
-       DIE(no_sock_func, "send");
+       DIE(PL_no_sock_func, "send");
 #endif
     if (length < 0)
        goto say_undef;
@@ -1733,7 +1733,7 @@ PP(pp_ioctl)
     if (SvPOK(argsv)) {
        if (s[SvCUR(argsv)] != 17)
            DIE("Possible memory corruption: %s overflowed 3rd argument",
-               op_name[optype]);
+               PL_op_name[optype]);
        s[SvCUR(argsv)] = 0;            /* put our null back */
        SvSETMAGIC(argsv);              /* Assume it has changed */
     }
@@ -1776,7 +1776,7 @@ PP(pp_flock)
     PUSHi(value);
     RETURN;
 #else
-    DIE(no_func, "flock()");
+    DIE(PL_no_func, "flock()");
 #endif
 }
 
@@ -1820,7 +1820,7 @@ PP(pp_socket)
 
     RETPUSHYES;
 #else
-    DIE(no_sock_func, "socket");
+    DIE(PL_no_sock_func, "socket");
 #endif
 }
 
@@ -1870,7 +1870,7 @@ PP(pp_sockpair)
 
     RETPUSHYES;
 #else
-    DIE(no_sock_func, "socketpair");
+    DIE(PL_no_sock_func, "socketpair");
 #endif
 }
 
@@ -1929,7 +1929,7 @@ nuts:
     SETERRNO(EBADF,SS$_IVCHAN);
     RETPUSHUNDEF;
 #else
-    DIE(no_sock_func, "bind");
+    DIE(PL_no_sock_func, "bind");
 #endif
 }
 
@@ -1959,7 +1959,7 @@ nuts:
     SETERRNO(EBADF,SS$_IVCHAN);
     RETPUSHUNDEF;
 #else
-    DIE(no_sock_func, "connect");
+    DIE(PL_no_sock_func, "connect");
 #endif
 }
 
@@ -1985,7 +1985,7 @@ nuts:
     SETERRNO(EBADF,SS$_IVCHAN);
     RETPUSHUNDEF;
 #else
-    DIE(no_sock_func, "listen");
+    DIE(PL_no_sock_func, "listen");
 #endif
 }
 
@@ -2042,7 +2042,7 @@ badexit:
     RETPUSHUNDEF;
 
 #else
-    DIE(no_sock_func, "accept");
+    DIE(PL_no_sock_func, "accept");
 #endif
 }
 
@@ -2066,7 +2066,7 @@ nuts:
     SETERRNO(EBADF,SS$_IVCHAN);
     RETPUSHUNDEF;
 #else
-    DIE(no_sock_func, "shutdown");
+    DIE(PL_no_sock_func, "shutdown");
 #endif
 }
 
@@ -2075,7 +2075,7 @@ PP(pp_gsockopt)
 #ifdef HAS_SOCKET
     return pp_ssockopt(ARGS);
 #else
-    DIE(no_sock_func, "getsockopt");
+    DIE(PL_no_sock_func, "getsockopt");
 #endif
 }
 
@@ -2146,7 +2146,7 @@ nuts2:
     RETPUSHUNDEF;
 
 #else
-    DIE(no_sock_func, "setsockopt");
+    DIE(PL_no_sock_func, "setsockopt");
 #endif
 }
 
@@ -2155,7 +2155,7 @@ PP(pp_getsockname)
 #ifdef HAS_SOCKET
     return pp_getpeername(ARGS);
 #else
-    DIE(no_sock_func, "getsockname");
+    DIE(PL_no_sock_func, "getsockname");
 #endif
 }
 
@@ -2219,7 +2219,7 @@ nuts2:
     RETPUSHUNDEF;
 
 #else
-    DIE(no_sock_func, "getpeername");
+    DIE(PL_no_sock_func, "getpeername");
 #endif
 }
 
@@ -2271,7 +2271,7 @@ PP(pp_stat)
            PL_laststatval = PerlLIO_stat(SvPV(PL_statname, PL_na), &PL_statcache);
        if (PL_laststatval < 0) {
            if (ckWARN(WARN_NEWLINE) && strchr(SvPV(PL_statname, PL_na), '\n'))
-               warner(WARN_NEWLINE, warn_nl, "stat");
+               warner(WARN_NEWLINE, PL_warn_nl, "stat");
            max = 0;
        }
     }
@@ -2785,7 +2785,7 @@ PP(pp_fttext)
 #endif
        if (i < 0) {
            if (ckWARN(WARN_NEWLINE) && strchr(SvPV(sv, PL_na), '\n'))
-               warner(WARN_NEWLINE, warn_nl, "open");
+               warner(WARN_NEWLINE, PL_warn_nl, "open");
            RETPUSHUNDEF;
        }
        PL_laststatval = PerlLIO_fstat(i, &PL_statcache);
@@ -2882,7 +2882,7 @@ PP(pp_chown)
     PUSHi(value);
     RETURN;
 #else
-    DIE(no_func, "Unsupported function chown");
+    DIE(PL_no_func, "Unsupported function chown");
 #endif
 }
 
@@ -2896,7 +2896,7 @@ PP(pp_chroot)
     PUSHi( chroot(tmps) >= 0 );
     RETURN;
 #else
-    DIE(no_func, "chroot");
+    DIE(PL_no_func, "chroot");
 #endif
 }
 
@@ -2965,7 +2965,7 @@ PP(pp_link)
     TAINT_PROPER("link");
     SETi( link(tmps, tmps2) >= 0 );
 #else
-    DIE(no_func, "Unsupported function link");
+    DIE(PL_no_func, "Unsupported function link");
 #endif
     RETURN;
 }
@@ -2980,7 +2980,7 @@ PP(pp_symlink)
     SETi( symlink(tmps, tmps2) >= 0 );
     RETURN;
 #else
-    DIE(no_func, "symlink");
+    DIE(PL_no_func, "symlink");
 #endif
 }
 
@@ -3157,7 +3157,7 @@ nope:
        SETERRNO(EBADF,RMS$_DIR);
     RETPUSHUNDEF;
 #else
-    DIE(no_dir_func, "opendir");
+    DIE(PL_no_dir_func, "opendir");
 #endif
 }
 
@@ -3213,7 +3213,7 @@ nope:
     else
        RETPUSHUNDEF;
 #else
-    DIE(no_dir_func, "readdir");
+    DIE(PL_no_dir_func, "readdir");
 #endif
 }
 
@@ -3237,7 +3237,7 @@ nope:
        SETERRNO(EBADF,RMS$_ISI);
     RETPUSHUNDEF;
 #else
-    DIE(no_dir_func, "telldir");
+    DIE(PL_no_dir_func, "telldir");
 #endif
 }
 
@@ -3260,7 +3260,7 @@ nope:
        SETERRNO(EBADF,RMS$_ISI);
     RETPUSHUNDEF;
 #else
-    DIE(no_dir_func, "seekdir");
+    DIE(PL_no_dir_func, "seekdir");
 #endif
 }
 
@@ -3281,7 +3281,7 @@ nope:
        SETERRNO(EBADF,RMS$_ISI);
     RETPUSHUNDEF;
 #else
-    DIE(no_dir_func, "rewinddir");
+    DIE(PL_no_dir_func, "rewinddir");
 #endif
 }
 
@@ -3311,7 +3311,7 @@ nope:
        SETERRNO(EBADF,RMS$_IFI);
     RETPUSHUNDEF;
 #else
-    DIE(no_dir_func, "closedir");
+    DIE(PL_no_dir_func, "closedir");
 #endif
 }
 
@@ -3337,7 +3337,7 @@ PP(pp_fork)
     PUSHi(childpid);
     RETURN;
 #else
-    DIE(no_func, "Unsupported function fork");
+    DIE(PL_no_func, "Unsupported function fork");
 #endif
 }
 
@@ -3353,7 +3353,7 @@ PP(pp_wait)
     XPUSHi(childpid);
     RETURN;
 #else
-    DIE(no_func, "Unsupported function wait");
+    DIE(PL_no_func, "Unsupported function wait");
 #endif
 }
 
@@ -3372,7 +3372,7 @@ PP(pp_waitpid)
     SETi(childpid);
     RETURN;
 #else
-    DIE(no_func, "Unsupported function waitpid");
+    DIE(PL_no_func, "Unsupported function waitpid");
 #endif
 }
 
@@ -3498,7 +3498,7 @@ PP(pp_kill)
     PUSHi(value);
     RETURN;
 #else
-    DIE(no_func, "Unsupported function kill");
+    DIE(PL_no_func, "Unsupported function kill");
 #endif
 }
 
@@ -3509,7 +3509,7 @@ PP(pp_getppid)
     XPUSHi( getppid() );
     RETURN;
 #else
-    DIE(no_func, "getppid");
+    DIE(PL_no_func, "getppid");
 #endif
 }
 
@@ -3534,7 +3534,7 @@ PP(pp_getpgrp)
     XPUSHi(value);
     RETURN;
 #else
-    DIE(no_func, "getpgrp()");
+    DIE(PL_no_func, "getpgrp()");
 #endif
 }
 
@@ -3563,7 +3563,7 @@ PP(pp_setpgrp)
 #endif /* USE_BSDPGRP */
     RETURN;
 #else
-    DIE(no_func, "setpgrp()");
+    DIE(PL_no_func, "setpgrp()");
 #endif
 }
 
@@ -3578,7 +3578,7 @@ PP(pp_getpriority)
     SETi( getpriority(which, who) );
     RETURN;
 #else
-    DIE(no_func, "getpriority()");
+    DIE(PL_no_func, "getpriority()");
 #endif
 }
 
@@ -3596,7 +3596,7 @@ PP(pp_setpriority)
     SETi( setpriority(which, who, niceval) >= 0 );
     RETURN;
 #else
-    DIE(no_func, "setpriority()");
+    DIE(PL_no_func, "setpriority()");
 #endif
 }
 
@@ -3728,7 +3728,7 @@ PP(pp_alarm)
     PUSHi((I32)anum);
     RETURN;
 #else
-    DIE(no_func, "Unsupported function alarm");
+    DIE(PL_no_func, "Unsupported function alarm");
 #endif
 }
 
@@ -3876,7 +3876,7 @@ PP(pp_ghbyname)
 #ifdef HAS_GETHOSTBYNAME
     return pp_ghostent(ARGS);
 #else
-    DIE(no_sock_func, "gethostbyname");
+    DIE(PL_no_sock_func, "gethostbyname");
 #endif
 }
 
@@ -3885,7 +3885,7 @@ PP(pp_ghbyaddr)
 #ifdef HAS_GETHOSTBYADDR
     return pp_ghostent(ARGS);
 #else
-    DIE(no_sock_func, "gethostbyaddr");
+    DIE(PL_no_sock_func, "gethostbyaddr");
 #endif
 }
 
@@ -3909,7 +3909,7 @@ PP(pp_ghostent)
 #ifdef HAS_GETHOSTBYNAME
        hent = PerlSock_gethostbyname(POPp);
 #else
-       DIE(no_sock_func, "gethostbyname");
+       DIE(PL_no_sock_func, "gethostbyname");
 #endif
     else if (which == OP_GHBYADDR) {
 #ifdef HAS_GETHOSTBYADDR
@@ -3920,14 +3920,14 @@ PP(pp_ghostent)
 
        hent = PerlSock_gethostbyaddr(addr, (Netdb_hlen_t) addrlen, addrtype);
 #else
-       DIE(no_sock_func, "gethostbyaddr");
+       DIE(PL_no_sock_func, "gethostbyaddr");
 #endif
     }
     else
 #ifdef HAS_GETHOSTENT
        hent = PerlSock_gethostent();
 #else
-       DIE(no_sock_func, "gethostent");
+       DIE(PL_no_sock_func, "gethostent");
 #endif
 
 #ifdef HOST_NOT_FOUND
@@ -3975,7 +3975,7 @@ PP(pp_ghostent)
     }
     RETURN;
 #else
-    DIE(no_sock_func, "gethostent");
+    DIE(PL_no_sock_func, "gethostent");
 #endif
 }
 
@@ -3984,7 +3984,7 @@ PP(pp_gnbyname)
 #ifdef HAS_GETNETBYNAME
     return pp_gnetent(ARGS);
 #else
-    DIE(no_sock_func, "getnetbyname");
+    DIE(PL_no_sock_func, "getnetbyname");
 #endif
 }
 
@@ -3993,7 +3993,7 @@ PP(pp_gnbyaddr)
 #ifdef HAS_GETNETBYADDR
     return pp_gnetent(ARGS);
 #else
-    DIE(no_sock_func, "getnetbyaddr");
+    DIE(PL_no_sock_func, "getnetbyaddr");
 #endif
 }
 
@@ -4015,7 +4015,7 @@ PP(pp_gnetent)
 #ifdef HAS_GETNETBYNAME
        nent = PerlSock_getnetbyname(POPp);
 #else
-        DIE(no_sock_func, "getnetbyname");
+        DIE(PL_no_sock_func, "getnetbyname");
 #endif
     else if (which == OP_GNBYADDR) {
 #ifdef HAS_GETNETBYADDR
@@ -4023,14 +4023,14 @@ PP(pp_gnetent)
        Netdb_net_t addr = (Netdb_net_t) U_L(POPn);
        nent = PerlSock_getnetbyaddr(addr, addrtype);
 #else
-       DIE(no_sock_func, "getnetbyaddr");
+       DIE(PL_no_sock_func, "getnetbyaddr");
 #endif
     }
     else
 #ifdef HAS_GETNETENT
        nent = PerlSock_getnetent();
 #else
-        DIE(no_sock_func, "getnetent");
+        DIE(PL_no_sock_func, "getnetent");
 #endif
 
     EXTEND(SP, 4);
@@ -4062,7 +4062,7 @@ PP(pp_gnetent)
 
     RETURN;
 #else
-    DIE(no_sock_func, "getnetent");
+    DIE(PL_no_sock_func, "getnetent");
 #endif
 }
 
@@ -4071,7 +4071,7 @@ PP(pp_gpbyname)
 #ifdef HAS_GETPROTOBYNAME
     return pp_gprotoent(ARGS);
 #else
-    DIE(no_sock_func, "getprotobyname");
+    DIE(PL_no_sock_func, "getprotobyname");
 #endif
 }
 
@@ -4080,7 +4080,7 @@ PP(pp_gpbynumber)
 #ifdef HAS_GETPROTOBYNUMBER
     return pp_gprotoent(ARGS);
 #else
-    DIE(no_sock_func, "getprotobynumber");
+    DIE(PL_no_sock_func, "getprotobynumber");
 #endif
 }
 
@@ -4102,19 +4102,19 @@ PP(pp_gprotoent)
 #ifdef HAS_GETPROTOBYNAME
        pent = PerlSock_getprotobyname(POPp);
 #else
-       DIE(no_sock_func, "getprotobyname");
+       DIE(PL_no_sock_func, "getprotobyname");
 #endif
     else if (which == OP_GPBYNUMBER)
 #ifdef HAS_GETPROTOBYNUMBER
        pent = PerlSock_getprotobynumber(POPi);
 #else
-    DIE(no_sock_func, "getprotobynumber");
+    DIE(PL_no_sock_func, "getprotobynumber");
 #endif
     else
 #ifdef HAS_GETPROTOENT
        pent = PerlSock_getprotoent();
 #else
-       DIE(no_sock_func, "getprotoent");
+       DIE(PL_no_sock_func, "getprotoent");
 #endif
 
     EXTEND(SP, 3);
@@ -4144,7 +4144,7 @@ PP(pp_gprotoent)
 
     RETURN;
 #else
-    DIE(no_sock_func, "getprotoent");
+    DIE(PL_no_sock_func, "getprotoent");
 #endif
 }
 
@@ -4153,7 +4153,7 @@ PP(pp_gsbyname)
 #ifdef HAS_GETSERVBYNAME
     return pp_gservent(ARGS);
 #else
-    DIE(no_sock_func, "getservbyname");
+    DIE(PL_no_sock_func, "getservbyname");
 #endif
 }
 
@@ -4162,7 +4162,7 @@ PP(pp_gsbyport)
 #ifdef HAS_GETSERVBYPORT
     return pp_gservent(ARGS);
 #else
-    DIE(no_sock_func, "getservbyport");
+    DIE(PL_no_sock_func, "getservbyport");
 #endif
 }
 
@@ -4190,7 +4190,7 @@ PP(pp_gservent)
 
        sent = PerlSock_getservbyname(name, proto);
 #else
-       DIE(no_sock_func, "getservbyname");
+       DIE(PL_no_sock_func, "getservbyname");
 #endif
     }
     else if (which == OP_GSBYPORT) {
@@ -4203,14 +4203,14 @@ PP(pp_gservent)
 #endif
        sent = PerlSock_getservbyport(port, proto);
 #else
-       DIE(no_sock_func, "getservbyport");
+       DIE(PL_no_sock_func, "getservbyport");
 #endif
     }
     else
 #ifdef HAS_GETSERVENT
        sent = PerlSock_getservent();
 #else
-       DIE(no_sock_func, "getservent");
+       DIE(PL_no_sock_func, "getservent");
 #endif
 
     EXTEND(SP, 4);
@@ -4251,7 +4251,7 @@ PP(pp_gservent)
 
     RETURN;
 #else
-    DIE(no_sock_func, "getservent");
+    DIE(PL_no_sock_func, "getservent");
 #endif
 }
 
@@ -4262,7 +4262,7 @@ PP(pp_shostent)
     PerlSock_sethostent(TOPi);
     RETSETYES;
 #else
-    DIE(no_sock_func, "sethostent");
+    DIE(PL_no_sock_func, "sethostent");
 #endif
 }
 
@@ -4273,7 +4273,7 @@ PP(pp_snetent)
     PerlSock_setnetent(TOPi);
     RETSETYES;
 #else
-    DIE(no_sock_func, "setnetent");
+    DIE(PL_no_sock_func, "setnetent");
 #endif
 }
 
@@ -4284,7 +4284,7 @@ PP(pp_sprotoent)
     PerlSock_setprotoent(TOPi);
     RETSETYES;
 #else
-    DIE(no_sock_func, "setprotoent");
+    DIE(PL_no_sock_func, "setprotoent");
 #endif
 }
 
@@ -4295,7 +4295,7 @@ PP(pp_sservent)
     PerlSock_setservent(TOPi);
     RETSETYES;
 #else
-    DIE(no_sock_func, "setservent");
+    DIE(PL_no_sock_func, "setservent");
 #endif
 }
 
@@ -4307,7 +4307,7 @@ PP(pp_ehostent)
     EXTEND(SP,1);
     RETPUSHYES;
 #else
-    DIE(no_sock_func, "endhostent");
+    DIE(PL_no_sock_func, "endhostent");
 #endif
 }
 
@@ -4319,7 +4319,7 @@ PP(pp_enetent)
     EXTEND(SP,1);
     RETPUSHYES;
 #else
-    DIE(no_sock_func, "endnetent");
+    DIE(PL_no_sock_func, "endnetent");
 #endif
 }
 
@@ -4331,7 +4331,7 @@ PP(pp_eprotoent)
     EXTEND(SP,1);
     RETPUSHYES;
 #else
-    DIE(no_sock_func, "endprotoent");
+    DIE(PL_no_sock_func, "endprotoent");
 #endif
 }
 
@@ -4343,7 +4343,7 @@ PP(pp_eservent)
     EXTEND(SP,1);
     RETPUSHYES;
 #else
-    DIE(no_sock_func, "endservent");
+    DIE(PL_no_sock_func, "endservent");
 #endif
 }
 
@@ -4352,7 +4352,7 @@ PP(pp_gpwnam)
 #ifdef HAS_PASSWD
     return pp_gpwent(ARGS);
 #else
-    DIE(no_func, "getpwnam");
+    DIE(PL_no_func, "getpwnam");
 #endif
 }
 
@@ -4361,7 +4361,7 @@ PP(pp_gpwuid)
 #ifdef HAS_PASSWD
     return pp_gpwent(ARGS);
 #else
-    DIE(no_func, "getpwuid");
+    DIE(PL_no_func, "getpwuid");
 #endif
 }
 
@@ -4453,7 +4453,7 @@ PP(pp_gpwent)
     }
     RETURN;
 #else
-    DIE(no_func, "getpwent");
+    DIE(PL_no_func, "getpwent");
 #endif
 }
 
@@ -4464,7 +4464,7 @@ PP(pp_spwent)
     setpwent();
     RETPUSHYES;
 #else
-    DIE(no_func, "setpwent");
+    DIE(PL_no_func, "setpwent");
 #endif
 }
 
@@ -4475,7 +4475,7 @@ PP(pp_epwent)
     endpwent();
     RETPUSHYES;
 #else
-    DIE(no_func, "endpwent");
+    DIE(PL_no_func, "endpwent");
 #endif
 }
 
@@ -4484,7 +4484,7 @@ PP(pp_ggrnam)
 #ifdef HAS_GROUP
     return pp_ggrent(ARGS);
 #else
-    DIE(no_func, "getgrnam");
+    DIE(PL_no_func, "getgrnam");
 #endif
 }
 
@@ -4493,7 +4493,7 @@ PP(pp_ggrgid)
 #ifdef HAS_GROUP
     return pp_ggrent(ARGS);
 #else
-    DIE(no_func, "getgrgid");
+    DIE(PL_no_func, "getgrgid");
 #endif
 }
 
@@ -4547,7 +4547,7 @@ PP(pp_ggrent)
 
     RETURN;
 #else
-    DIE(no_func, "getgrent");
+    DIE(PL_no_func, "getgrent");
 #endif
 }
 
@@ -4558,7 +4558,7 @@ PP(pp_sgrent)
     setgrent();
     RETPUSHYES;
 #else
-    DIE(no_func, "setgrent");
+    DIE(PL_no_func, "setgrent");
 #endif
 }
 
@@ -4569,7 +4569,7 @@ PP(pp_egrent)
     endgrent();
     RETPUSHYES;
 #else
-    DIE(no_func, "endgrent");
+    DIE(PL_no_func, "endgrent");
 #endif
 }
 
@@ -4584,7 +4584,7 @@ PP(pp_getlogin)
     PUSHp(tmps, strlen(tmps));
     RETURN;
 #else
-    DIE(no_func, "getlogin");
+    DIE(PL_no_func, "getlogin");
 #endif
 }
 
@@ -4683,7 +4683,7 @@ PP(pp_syscall)
     PUSHi(retval);
     RETURN;
 #else
-    DIE(no_func, "syscall");
+    DIE(PL_no_func, "syscall");
 #endif
 }
 
diff --git a/proto.h b/proto.h
index 2bd96f0..fab5250 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -56,14 +56,14 @@ VIRTUAL int block_start _((int full));
 VIRTUAL void   boot_core_UNIVERSAL _((void));
 VIRTUAL void   call_list _((I32 oldscope, AV* av_list));
 VIRTUAL I32    cando _((I32 bit, I32 effective, Stat_t* statbufp));
-#ifndef CASTNEGFLOAT
 VIRTUAL U32    cast_ulong _((double f));
-#endif
+VIRTUAL I32    cast_i32 _((double f));
+VIRTUAL IV     cast_iv _((double f));
+VIRTUAL UV     cast_uv _((double f));
 #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
 VIRTUAL I32    my_chsize _((int fd, Off_t length));
 #endif
-VIRTUAL OP*    ck_gvconst _((OP*  o));
-VIRTUAL OP*    ck_retarget _((OP* o));
+
 #ifdef USE_THREADS
 VIRTUAL MAGIC *        condpair_magic _((SV *sv));
 #endif
@@ -593,11 +593,7 @@ VIRTUAL I32        sv_eq _((SV* sv1, SV* sv2));
 VIRTUAL void   sv_free _((SV* sv));
 VIRTUAL void   sv_free_arenas _((void));
 VIRTUAL char*  sv_gets _((SV* sv, PerlIO* fp, I32 append));
-#ifndef DOSISH
-VIRTUAL char*  sv_grow _((SV* sv, I32 newlen));
-#else
-VIRTUAL char*  sv_grow _((SV* sv, unsigned long newlen));
-#endif
+VIRTUAL char*  sv_grow _((SV* sv, STRLEN newlen));
 VIRTUAL void   sv_inc _((SV* sv));
 VIRTUAL void   sv_insert _((SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen));
 VIRTUAL int    sv_isa _((SV* sv, char* name));
@@ -674,7 +670,7 @@ VIRTUAL int yyerror _((char* s));
 #ifdef USE_PURE_BISON
 # define PERL_YYLEX_PARAM_DECL YYSTYPE *lvalp, int *lcharp
 #else
-# define PERL_YYLEX_PARAM_DECL
+# define PERL_YYLEX_PARAM_DECL void
 #endif
 VIRTUAL int    yylex _((PERL_YYLEX_PARAM_DECL));
 VIRTUAL int    yyparse _((void));
@@ -903,43 +899,14 @@ I32 do_trans_CU_simple _((SV *sv));
 I32 do_trans_UC_trivial _((SV *sv));
 I32 do_trans_CU_trivial _((SV *sv));
 
-#define PPDEF(s) OP* CPerlObj::s _((ARGSproto));
+#undef PERL_CKDEF
+#undef PERL_PPDEF
+#define PERL_CKDEF(s) OP* s _((OP *o));
+#define PERL_PPDEF(s) OP* s _((ARGSproto));
 public:
 
 #include "pp_proto.h"
 
-OP * ck_ftst _((OP *o));
-OP *ck_anoncode _((OP *o));
-OP *ck_bitop _((OP *o));
-OP *ck_concat _((OP *o));
-OP *ck_spair _((OP *o));
-OP *ck_delete _((OP *o));
-OP *ck_eof _((OP *o));
-OP *ck_eval _((OP *o));
-OP *ck_exec _((OP *o));
-OP *ck_exists _((OP *o));
-OP *ck_rvconst _((OP *o));
-OP *ck_fun _((OP *o));
-OP *ck_glob _((OP *o));
-OP *ck_grep _((OP *o));
-OP *ck_index _((OP *o));
-OP *ck_lengthconst _((OP *o));
-OP *ck_lfun _((OP *o));
-OP *ck_rfun _((OP *o));
-OP *ck_listiob _((OP *o));
-OP *ck_fun_locale _((OP *o));
-OP *ck_scmp _((OP *o));
-OP *ck_match _((OP *o));
-OP *ck_null _((OP *o));
-OP *ck_repeat _((OP *o));
-OP *ck_require _((OP *o));
-OP *ck_select _((OP *o));
-OP *ck_shift _((OP *o));
-OP *ck_sort _((OP *o));
-OP *ck_split _((OP *o));
-OP *ck_subr _((OP *o));
-OP *ck_svconst _((OP *o));
-OP *ck_trunc _((OP *o));
 void unwind_handler_stack _((void *p));
 void restore_magic _((void *p));
 void restore_rsfp _((void *f));
index ca0fd09..4fcef36 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -259,7 +259,7 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
     while (scan && OP(scan) != END && scan < last) {
        /* Peephole optimizer: */
 
-       if (regkind[(U8)OP(scan)] == EXACT) {
+       if (PL_regkind[(U8)OP(scan)] == EXACT) {
            regnode *n = regnext(scan);
            U32 stringok = 1;
 #ifdef DEBUGGING
@@ -269,13 +269,13 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
            next = scan + (*OPERAND(scan) + 2 - 1)/sizeof(regnode) + 2;
            /* Skip NOTHING, merge EXACT*. */
            while (n &&
-                  ( regkind[(U8)OP(n)] == NOTHING || 
+                  ( PL_regkind[(U8)OP(n)] == NOTHING || 
                     (stringok && (OP(n) == OP(scan))))
                   && NEXT_OFF(n)
                   && NEXT_OFF(scan) + NEXT_OFF(n) < I16_MAX) {
                if (OP(n) == TAIL || n > next)
                    stringok = 0;
-               if (regkind[(U8)OP(n)] == NOTHING) {
+               if (PL_regkind[(U8)OP(n)] == NOTHING) {
                    NEXT_OFF(scan) += NEXT_OFF(n);
                    next = n + NODE_STEP_REGNODE;
 #ifdef DEBUGGING
@@ -311,7 +311,7 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
                 * don't initialize the OP() slot of a node when that node
                 * is occupied by just the trailing null of the string in
                 * an EXACT node */
-               if (regkind[(U8)OP(n)] != NOTHING || OP(n) == NOTHING) {
+               if (PL_regkind[(U8)OP(n)] != NOTHING || OP(n) == NOTHING) {
                    OP(n) = OPTIMIZED;
                    NEXT_OFF(n) = 0;
                }
@@ -331,7 +331,7 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
            
            /* Skip NOTHING and LONGJMP. */
            while ((n = regnext(n))
-                  && ((regkind[(U8)OP(n)] == NOTHING && (noff = NEXT_OFF(n)))
+                  && ((PL_regkind[(U8)OP(n)] == NOTHING && (noff = NEXT_OFF(n)))
                       || ((OP(n) == LONGJMP) && (noff = ARG(n))))
                   && off + noff < max)
                off += noff;
@@ -420,7 +420,7 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
                data->flags &= ~SF_BEFORE_EOL;
            }
        }
-       else if (regkind[(U8)OP(scan)] == EXACT) {
+       else if (PL_regkind[(U8)OP(scan)] == EXACT) {
            I32 l = *OPERAND(scan);
            if (flags & SCF_DO_SUBSTR) 
                scan_commit(data);
@@ -438,11 +438,11 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
            if (data && (flags & SCF_DO_SUBSTR))
                data->pos_min += l;
        }
-       else if (strchr(varies,OP(scan))) {
+       else if (strchr(PL_varies,OP(scan))) {
            I32 mincount, maxcount, minnext, deltanext, pos_before, fl;
            regnode *oscan = scan;
            
-           switch (regkind[(U8)OP(scan)]) {
+           switch (PL_regkind[(U8)OP(scan)]) {
            case WHILEM:
                scan = NEXTOPER(scan);
                goto finish;
@@ -513,8 +513,8 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
 
                    /* Skip open. */
                    nxt = regnext(nxt);
-                   if (!strchr(simple,OP(nxt))
-                       && !(regkind[(U8)OP(nxt)] == EXACT
+                   if (!strchr(PL_simple,OP(nxt))
+                       && !(PL_regkind[(U8)OP(nxt)] == EXACT
                             && *OPERAND(nxt) == 1)) 
                        goto nogo;
                    nxt2 = nxt;
@@ -646,7 +646,7 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
                    data->flags |= SF_HAS_EVAL;
              optimize_curly_tail:
                if (OP(oscan) != CURLYX) {
-                   while (regkind[(U8)OP(next = regnext(oscan))] == NOTHING
+                   while (PL_regkind[(U8)OP(next = regnext(oscan))] == NOTHING
                           && NEXT_OFF(next))
                        NEXT_OFF(oscan) += NEXT_OFF(next);
                }
@@ -660,19 +660,19 @@ study_chunk(regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32
                break;
            }
        }
-       else if (strchr(simple,OP(scan)) || regkind[(U8)OP(scan)] == ANYUTF8) {
+       else if (strchr(PL_simple,OP(scan)) || PL_regkind[(U8)OP(scan)] == ANYUTF8) {
            if (flags & SCF_DO_SUBSTR) {
                scan_commit(data);
                data->pos_min++;
            }
            min++;
        }
-       else if (regkind[(U8)OP(scan)] == EOL && flags & SCF_DO_SUBSTR) {
+       else if (PL_regkind[(U8)OP(scan)] == EOL && flags & SCF_DO_SUBSTR) {
            data->flags |= (OP(scan) == MEOL
                            ? SF_BEFORE_MEOL
                            : SF_BEFORE_SEOL);
        }
-       else if (regkind[(U8)OP(scan)] == BRANCHJ
+       else if (PL_regkind[(U8)OP(scan)] == BRANCHJ
                   && (scan->flags || data)
                   && (OP(scan) == IFMATCH || OP(scan) == UNLESSM)) {
            I32 deltanext, minnext;
@@ -839,7 +839,7 @@ pregcomp(char *exp, char *xend, PMOP *pm)
     PL_regnpar = 1;
     PL_regsize = 0L;
     PL_regcode = &PL_regdummy;
-    regc((U8)MAGIC, (char*)PL_regcode);
+    regc((U8)REG_MAGIC, (char*)PL_regcode);
     if (reg(0, &flags) == NULL) {
        Safefree(PL_regprecomp);
        PL_regprecomp = Nullch;
@@ -874,7 +874,7 @@ pregcomp(char *exp, char *xend, PMOP *pm)
     PL_regcode = r->program;
     /* Store the count of eval-groups for security checks: */
     PL_regcode->next_off = ((PL_seen_evals > U16_MAX) ? U16_MAX : PL_seen_evals);
-    regc((U8)MAGIC, (char*) PL_regcode++);
+    regc((U8)REG_MAGIC, (char*) PL_regcode++);
     r->data = 0;
     if (reg(0, &flags) == NULL)
        return(NULL);
@@ -905,7 +905,7 @@ pregcomp(char *exp, char *xend, PMOP *pm)
            (OP(first) == BRANCH && OP(regnext(first)) != BRANCH) ||
            (OP(first) == PLUS) ||
            (OP(first) == MINMOD) ||
-           (regkind[(U8)OP(first)] == CURLY && ARG1(first) > 0) ) {
+           (PL_regkind[(U8)OP(first)] == CURLY && ARG1(first) > 0) ) {
                if (OP(first) == PLUS)
                    sawplus = 1;
                else
@@ -916,12 +916,12 @@ pregcomp(char *exp, char *xend, PMOP *pm)
        /* Starting-point info. */
       again:
        if (OP(first) == EXACT);        /* Empty, get anchored substr later. */
-       else if (strchr(simple+4,OP(first)))
+       else if (strchr(PL_simple+4,OP(first)))
            r->regstclass = first;
-       else if (regkind[(U8)OP(first)] == BOUND ||
-                regkind[(U8)OP(first)] == NBOUND)
+       else if (PL_regkind[(U8)OP(first)] == BOUND ||
+                PL_regkind[(U8)OP(first)] == NBOUND)
            r->regstclass = first;
-       else if (regkind[(U8)OP(first)] == BOL) {
+       else if (PL_regkind[(U8)OP(first)] == BOL) {
            r->reganch |= (OP(first) == MBOL ? ROPT_ANCH_MBOL: ROPT_ANCH_BOL);
            first = NEXTOPER(first);
            goto again;
@@ -932,7 +932,7 @@ pregcomp(char *exp, char *xend, PMOP *pm)
            goto again;
        }
        else if ((OP(first) == STAR &&
-           regkind[(U8)OP(NEXTOPER(first))] == ANY) &&
+           PL_regkind[(U8)OP(NEXTOPER(first))] == REG_ANY) &&
            !(r->reganch & ROPT_ANCH) )
        {
            /* turn .* into ^.* with an implied $*=1 */
@@ -1658,7 +1658,7 @@ tryagain:
            if (PL_regflags & PMf_SINGLELINE)
                ret = reg_node(SANY);
            else
-               ret = reg_node(ANY);
+               ret = reg_node(REG_ANY);
            *flagp |= HASWIDTH|SIMPLE;
        }
        PL_regnaughty++;
@@ -2295,7 +2295,7 @@ regclass(void)
     if (!SIZE_ONLY && (*opnd & (0xFF ^ ANYOF_INVERT)) == ANYOF_FOLD) {
        for (value = 0; value < 256; ++value) {
            if (ANYOF_TEST(opnd, value)) {
-               I32 cf = fold[value];
+               I32 cf = PL_fold[value];
                ANYOF_SET(opnd, cf);
            }
        }
@@ -2654,7 +2654,7 @@ reginsert(U8 op, regnode *opnd)
     register regnode *place;
     register int offset = regarglen[(U8)op];
     
-/* (regkind[(U8)op] == CURLY ? EXTRA_STEP_2ARGS : 0); */
+/* (PL_regkind[(U8)op] == CURLY ? EXTRA_STEP_2ARGS : 0); */
 
     if (SIZE_ONLY) {
        PL_regsize += NODE_STEP_REGNODE + offset;
@@ -2714,10 +2714,10 @@ regoptail(regnode *p, regnode *val)
     /* "Operandless" and "op != BRANCH" are synonymous in practice. */
     if (p == NULL || SIZE_ONLY)
        return;
-    if (regkind[(U8)OP(p)] == BRANCH) {
+    if (PL_regkind[(U8)OP(p)] == BRANCH) {
        regtail(NEXTOPER(p), val);
     }
-    else if ( regkind[(U8)OP(p)] == BRANCHJ) {
+    else if ( PL_regkind[(U8)OP(p)] == BRANCHJ) {
        regtail(NEXTOPER(NEXTOPER(p)), val);
     }
     else
@@ -2773,7 +2773,7 @@ dumpuntil(regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
            PerlIO_printf(Perl_debug_log, "(%d)", next - start);
        (void)PerlIO_putc(Perl_debug_log, '\n');
       after_print:
-       if (regkind[(U8)op] == BRANCHJ) {
+       if (PL_regkind[(U8)op] == BRANCHJ) {
            register regnode *nnode = (OP(next) == LONGJMP 
                                       ? regnext(next) 
                                       : next);
@@ -2781,14 +2781,14 @@ dumpuntil(regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
                nnode = last;
            node = dumpuntil(start, NEXTOPER(NEXTOPER(node)), nnode, sv, l + 1);
        }
-       else if (regkind[(U8)op] == BRANCH) {
+       else if (PL_regkind[(U8)op] == BRANCH) {
            node = dumpuntil(start, NEXTOPER(node), next, sv, l + 1);
        }
        else if ( op == CURLY) {   /* `next' might be very big: optimizer */
            node = dumpuntil(start, NEXTOPER(node) + EXTRA_STEP_2ARGS,
                             NEXTOPER(node) + EXTRA_STEP_2ARGS + 1, sv, l + 1);
        }
-       else if (regkind[(U8)op] == CURLY && op != CURLYX) {
+       else if (PL_regkind[(U8)op] == CURLY && op != CURLYX) {
            node = dumpuntil(start, NEXTOPER(node) + EXTRA_STEP_2ARGS,
                             next, sv, l + 1);
        }
@@ -2799,7 +2799,7 @@ dumpuntil(regnode *start, regnode *node, regnode *last, SV* sv, I32 l)
            node = NEXTOPER(node);
            node += ANY_SKIP;
        }
-       else if (regkind[(U8)op] == EXACT) {
+       else if (PL_regkind[(U8)op] == EXACT) {
             /* Literal string, where present. */
            node += ((*OPERAND(node)) + 2 + sizeof(regnode) - 1) / sizeof(regnode);
            node = NEXTOPER(node);
@@ -2915,7 +2915,7 @@ regprop(SV *sv, regnode *o)
     case SEOL:
        p = "SEOL";
        break;
-    case ANY:
+    case REG_ANY:
        p = "ANY";
        break;
     case SANY:
index 38b15ac..fef317a 100644 (file)
--- a/regcomp.h
+++ b/regcomp.h
@@ -150,7 +150,7 @@ struct regnode_2 {
 #define FILL_ADVANCE_NODE_ARG(ptr, op, arg) STMT_START { \
     ARG_SET(ptr, arg);  FILL_ADVANCE_NODE(ptr, op); (ptr) += 1; } STMT_END
 
-#define MAGIC 0234
+#define REG_MAGIC 0234
 
 #define SIZE_ONLY (PL_regcode == &PL_regdummy)
 
@@ -200,9 +200,9 @@ struct regnode_2 {
 
 /* The following have no fixed length. char* since we do strchr on it. */
 #ifndef DOINIT
-EXTCONST char varies[];
+EXTCONST char PL_varies[];
 #else
-EXTCONST char varies[] = {
+EXTCONST char PL_varies[] = {
     BRANCH, BACK, STAR, PLUS, CURLY, CURLYX, REF, REFF, REFFL, 
     WHILEM, CURLYM, CURLYN, BRANCHJ, IFTHEN, SUSPEND, CLUMP, 0
 };
@@ -211,10 +211,10 @@ EXTCONST char varies[] = {
 /* The following always have a length of 1. char* since we do strchr on it. */
 /* (Note that lenght 1 means "one character" under UTF8, not "one octet".) */
 #ifndef DOINIT
-EXTCONST char simple[];
+EXTCONST char PL_simple[];
 #else
-EXTCONST char simple[] = {
-    ANY, ANYUTF8, SANY, SANYUTF8, ANYOF, ANYOFUTF8,
+EXTCONST char PL_simple[] = {
+    REG_ANY, ANYUTF8, SANY, SANYUTF8, ANYOF, ANYOFUTF8,
     ALNUM, ALNUMUTF8, ALNUML, ALNUMLUTF8,
     NALNUM, NALNUMUTF8, NALNUML, NALNUMLUTF8,
     SPACE, SPACEUTF8, SPACEL, SPACELUTF8,
index cfe59ad..d783218 100644 (file)
@@ -39,9 +39,9 @@ EOP
 print OUT <<EOP;
 
 #ifndef DOINIT
-EXTCONST U8 regkind[];
+EXTCONST U8 PL_regkind[];
 #else
-EXTCONST U8 regkind[] = {
+EXTCONST U8 PL_regkind[] = {
 EOP
 
 $ind = 0;
index c831bce..1391dfb 100644 (file)
@@ -26,10 +26,10 @@ NBOUNDLUTF8 NBOUND, no      Match "" at any word non-boundary
 GPOS           GPOS,   no      Matches where last m//g left off.
 
 # [Special] alternatives
-ANY            ANY,    no      Match any one character (except newline).
-ANYUTF8                ANY,    no      Match any one Unicode character (except newline).
-SANY           ANY,    no      Match any one character.
-SANYUTF8       ANY,    no      Match any one Unicode character.
+REG_ANY                REG_ANY,    no  Match any one character (except newline).
+ANYUTF8                REG_ANY,    no  Match any one Unicode character (except newline).
+SANY           REG_ANY,    no  Match any one character.
+SANYUTF8       REG_ANY,    no  Match any one Unicode character.
 ANYOF          ANYOF,  sv      Match character in (or not in) this class.
 ANYOFUTF8      ANYOF,  sv 1    Match character in (or not in) this class.
 ALNUM          ALNUM,  no      Match any alphanumeric character
index a3a3192..1fc37fc 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -73,7 +73,6 @@
  */
 #include "EXTERN.h"
 #include "perl.h"
-typedef MAGIC *my_magic;
 
 #include "regcomp.h"
 
@@ -315,7 +314,7 @@ regexec_flags(register regexp *prog, char *stringarg, register char *strend,
     }
 
     /* Check validity of program. */
-    if (UCHARAT(prog->program) != MAGIC) {
+    if (UCHARAT(prog->program) != REG_MAGIC) {
        FAIL("corrupted regexp program");
     }
 
@@ -1213,7 +1212,7 @@ regmatch(regnode *prog)
                sayNO;
            nextchr = UCHARAT(++locinput);
            break;
-       case ANY:
+       case REG_ANY:
            if (!nextchr && locinput >= PL_regeol || nextchr == '\n')
                sayNO;
            nextchr = UCHARAT(++locinput);
@@ -1262,7 +1261,7 @@ regmatch(regnode *prog)
            /* Inline the first character, for speed. */
            if (UCHARAT(s) != nextchr &&
                UCHARAT(s) != ((OP(scan) == EXACTF)
-                              ? fold : fold_locale)[nextchr])
+                              ? PL_fold : PL_fold_locale)[nextchr])
                sayNO;
            if (PL_regeol - locinput < ln)
                sayNO;
@@ -1560,7 +1559,7 @@ regmatch(regnode *prog)
            if (UCHARAT(s) != nextchr &&
                (OP(scan) == REF ||
                 (UCHARAT(s) != ((OP(scan) == REFF
-                                 ? fold : fold_locale)[nextchr]))))
+                                 ? PL_fold : PL_fold_locale)[nextchr]))))
                sayNO;
            ln = PL_regendp[n] - s;
            if (locinput + ln > PL_regeol)
@@ -1604,7 +1603,7 @@ regmatch(regnode *prog)
            if (logical) {
                if (logical == 2) {     /* Postponed subexpression. */
                    regexp *re;
-                   my_magic mg = Null(my_magic);
+                   MAGIC *mg = Null(MAGIC*);
                    re_cc_state state;
                    CURCUR cctmp;
                    CHECKPOINT cp, lastcp;
@@ -1977,12 +1976,12 @@ regmatch(regnode *prog)
                    && !(paren && ln == 0))
                    ln = n;
                locinput = PL_reginput;
-               if (regkind[(U8)OP(next)] == EXACT) {
+               if (PL_regkind[(U8)OP(next)] == EXACT) {
                    c1 = UCHARAT(OPERAND(next) + 1);
                    if (OP(next) == EXACTF)
-                       c2 = fold[c1];
+                       c2 = PL_fold[c1];
                    else if (OP(next) == EXACTFL)
-                       c2 = fold_locale[c1];
+                       c2 = PL_fold_locale[c1];
                    else
                        c2 = c1;
                }
@@ -2033,12 +2032,12 @@ regmatch(regnode *prog)
                                  REPORT_CODE_OFF+PL_regindent*2, "", n, l)
                    );
                if (n >= ln) {
-                   if (regkind[(U8)OP(next)] == EXACT) {
+                   if (PL_regkind[(U8)OP(next)] == EXACT) {
                        c1 = UCHARAT(OPERAND(next) + 1);
                        if (OP(next) == EXACTF)
-                           c2 = fold[c1];
+                           c2 = PL_fold[c1];
                        else if (OP(next) == EXACTFL)
-                           c2 = fold_locale[c1];
+                           c2 = PL_fold_locale[c1];
                        else
                            c2 = c1;
                    }
@@ -2110,12 +2109,12 @@ regmatch(regnode *prog)
            * Lookahead to avoid useless match attempts
            * when we know what character comes next.
            */
-           if (regkind[(U8)OP(next)] == EXACT) {
+           if (PL_regkind[(U8)OP(next)] == EXACT) {
                c1 = UCHARAT(OPERAND(next) + 1);
                if (OP(next) == EXACTF)
-                   c2 = fold[c1];
+                   c2 = PL_fold[c1];
                else if (OP(next) == EXACTFL)
-                   c2 = fold_locale[c1];
+                   c2 = PL_fold_locale[c1];
                else
                    c2 = c1;
            }
@@ -2161,7 +2160,7 @@ regmatch(regnode *prog)
                CHECKPOINT lastcp;
                n = regrepeat(scan, n);
                locinput = PL_reginput;
-               if (ln < n && regkind[(U8)OP(next)] == EOL &&
+               if (ln < n && PL_regkind[(U8)OP(next)] == EOL &&
                    (!PL_multiline  || OP(next) == SEOL))
                    ln = n;                     /* why back off? */
                REGCP_SET;
@@ -2355,7 +2354,7 @@ regrepeat(regnode *p, I32 max)
       loceol = scan + max;
     opnd = (char *) OPERAND(p);
     switch (OP(p)) {
-    case ANY:
+    case REG_ANY:
        while (scan < loceol && *scan != '\n')
            scan++;
        break;
@@ -2384,14 +2383,14 @@ regrepeat(regnode *p, I32 max)
     case EXACTF:       /* length of string is 1 */
        c = UCHARAT(++opnd);
        while (scan < loceol &&
-              (UCHARAT(scan) == c || UCHARAT(scan) == fold[c]))
+              (UCHARAT(scan) == c || UCHARAT(scan) == PL_fold[c]))
            scan++;
        break;
     case EXACTFL:      /* length of string is 1 */
        PL_reg_flags |= RF_tainted;
        c = UCHARAT(++opnd);
        while (scan < loceol &&
-              (UCHARAT(scan) == c || UCHARAT(scan) == fold_locale[c]))
+              (UCHARAT(scan) == c || UCHARAT(scan) == PL_fold_locale[c]))
            scan++;
        break;
     case ANYOFUTF8:
@@ -2619,10 +2618,10 @@ reginclass(register char *p, register I32 c)
        I32 cf;
        if (flags & ANYOF_LOCALE) {
            PL_reg_flags |= RF_tainted;
-           cf = fold_locale[c];
+           cf = PL_fold_locale[c];
        }
        else
-           cf = fold[c];
+           cf = PL_fold[c];
        if (ANYOF_TEST(p, cf))
            match = TRUE;
     }
index c64c4b7..8e834ee 100644 (file)
@@ -3,7 +3,7 @@
    Any changes made here will be lost!
 */
 
-#define        END     0       /*  0x0 End of program. */
+#define        END     0       /*    0 End of program. */
 #define        SUCCEED 1       /*  0x1 Return from a subroutine, basically. */
 #define        BOL     2       /*  0x2 Match "" at beginning of line. */
 #define        MBOL    3       /*  0x3 Same, assuming multiline. */
@@ -21,7 +21,7 @@
 #define        NBOUNDL 15      /*  0xf Match "" at any word non-boundary */
 #define        NBOUNDLUTF8     16      /* 0x10 Match "" at any word non-boundary */
 #define        GPOS    17      /* 0x11 Matches where last m//g left off. */
-#define        ANY     18      /* 0x12 Match any one character (except newline). */
+#define        REG_ANY 18      /* 0x12 Match any one character (except newline). */
 #define        ANYUTF8 19      /* 0x13 Match any one Unicode character (except newline). */
 #define        SANY    20      /* 0x14 Match any one character. */
 #define        SANYUTF8        21      /* 0x15 Match any one Unicode character. */
@@ -81,9 +81,9 @@
 #define        OPTIMIZED       75      /* 0x4b Placeholder for dump. */
 
 #ifndef DOINIT
-EXTCONST U8 regkind[];
+EXTCONST U8 PL_regkind[];
 #else
-EXTCONST U8 regkind[] = {
+EXTCONST U8 PL_regkind[] = {
        END,            /* END */
        END,            /* SUCCEED */
        BOL,            /* BOL */
@@ -102,10 +102,10 @@ EXTCONST U8 regkind[] = {
        NBOUND,         /* NBOUNDL */
        NBOUND,         /* NBOUNDLUTF8 */
        GPOS,           /* GPOS */
-       ANY,            /* ANY */
-       ANY,            /* ANYUTF8 */
-       ANY,            /* SANY */
-       ANY,            /* SANYUTF8 */
+       REG_ANY,                /* REG_ANY */
+       REG_ANY,                /* ANYUTF8 */
+       REG_ANY,                /* SANY */
+       REG_ANY,                /* SANYUTF8 */
        ANYOF,          /* ANYOF */
        ANYOF,          /* ANYOFUTF8 */
        ALNUM,          /* ALNUM */
@@ -184,7 +184,7 @@ const static U8 regarglen[] = {
        0,              /* NBOUNDL */
        0,              /* NBOUNDLUTF8 */
        0,              /* GPOS */
-       0,              /* ANY */
+       0,              /* REG_ANY */
        0,              /* ANYUTF8 */
        0,              /* SANY */
        0,              /* SANYUTF8 */
@@ -263,7 +263,7 @@ const static char reg_off_by_arg[] = {
        0,              /* NBOUNDL */
        0,              /* NBOUNDLUTF8 */
        0,              /* GPOS */
-       0,              /* ANY */
+       0,              /* REG_ANY */
        0,              /* ANYUTF8 */
        0,              /* SANY */
        0,              /* SANYUTF8 */
diff --git a/run.c b/run.c
index 97444ec..c38df7f 100644 (file)
--- a/run.c
+++ b/run.c
@@ -34,10 +34,6 @@ runops_standard(void)
 }
 
 #ifdef DEBUGGING
-
-dEXT char **watchaddr = 0;
-dEXT char *watchok;
-
 #ifndef PERL_OBJECT
 static void debprof _((OP*o));
 #endif
@@ -56,9 +52,9 @@ runops_debug(void)
 
     do {
        if (PL_debug) {
-           if (watchaddr != 0 && *watchaddr != watchok)
+           if (PL_watchaddr != 0 && *PL_watchaddr != PL_watchok)
                PerlIO_printf(Perl_debug_log, "WARNING: %lx changed from %lx to %lx\n",
-                   (long)watchaddr, (long)watchok, (long)*watchaddr);
+                   (long)PL_watchaddr, (long)PL_watchok, (long)*PL_watchaddr);
            DEBUG_s(debstack());
            DEBUG_t(debop(PL_op));
            DEBUG_P(debprof(PL_op));
@@ -77,7 +73,7 @@ debop(OP *o)
 {
 #ifdef DEBUGGING
     SV *sv;
-    deb("%s", op_name[o->op_type]);
+    deb("%s", PL_op_name[o->op_type]);
     switch (o->op_type) {
     case OP_CONST:
        PerlIO_printf(Perl_debug_log, "(%s)", SvPEEK(cSVOPo->op_sv));
@@ -105,10 +101,11 @@ void
 watch(char **addr)
 {
 #ifdef DEBUGGING
-    watchaddr = addr;
-    watchok = *addr;
+    dTHR;
+    PL_watchaddr = addr;
+    PL_watchok = *addr;
     PerlIO_printf(Perl_debug_log, "WATCHING, %lx is currently %lx\n",
-       (long)watchaddr, (long)watchok);
+       (long)PL_watchaddr, (long)PL_watchok);
 #endif /* DEBUGGING */
 }
 
@@ -133,7 +130,7 @@ debprofdump(void)
        if (PL_profiledata[i])
            PerlIO_printf(Perl_debug_log,
                          "%5lu %s\n", (unsigned long)PL_profiledata[i],
-                                       op_name[i]);
+                                       PL_op_name[i]);
     }
 #endif /* DEBUGGING */
 }
diff --git a/scope.c b/scope.c
index 020713f..b6c0c0a 100644 (file)
--- a/scope.c
+++ b/scope.c
@@ -863,7 +863,7 @@ cx_dump(PERL_CONTEXT *cx)
 {
 #ifdef DEBUGGING
     dTHR;
-    PerlIO_printf(Perl_debug_log, "CX %ld = %s\n", (long)(cx - cxstack), block_type[CxTYPE(cx)]);
+    PerlIO_printf(Perl_debug_log, "CX %ld = %s\n", (long)(cx - cxstack), PL_block_type[CxTYPE(cx)]);
     if (CxTYPE(cx) != CXt_SUBST) {
        PerlIO_printf(Perl_debug_log, "BLK_OLDSP = %ld\n", (long)cx->blk_oldsp);
        PerlIO_printf(Perl_debug_log, "BLK_OLDCOP = 0x%lx\n", (long)cx->blk_oldcop);
@@ -893,8 +893,8 @@ cx_dump(PERL_CONTEXT *cx)
        PerlIO_printf(Perl_debug_log, "BLK_EVAL.OLD_IN_EVAL = %ld\n",
                (long)cx->blk_eval.old_in_eval);
        PerlIO_printf(Perl_debug_log, "BLK_EVAL.OLD_OP_TYPE = %s (%s)\n",
-               op_name[cx->blk_eval.old_op_type],
-               op_desc[cx->blk_eval.old_op_type]);
+               PL_op_name[cx->blk_eval.old_op_type],
+               PL_op_desc[cx->blk_eval.old_op_type]);
        PerlIO_printf(Perl_debug_log, "BLK_EVAL.OLD_NAME = %s\n",
                cx->blk_eval.old_name);
        PerlIO_printf(Perl_debug_log, "BLK_EVAL.OLD_EVAL_ROOT = 0x%lx\n",
diff --git a/sv.c b/sv.c
index ab419e4..90a4e0d 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -1088,11 +1088,7 @@ sv_backoff(register SV *sv)
 }
 
 char *
-#ifndef DOSISH
-sv_grow(register SV *sv, register I32 newlen)
-#else
-sv_grow(SV* sv, unsigned long newlen)
-#endif
+sv_grow(register SV *sv, register STRLEN newlen)
 {
     register char *s;
 
@@ -1169,7 +1165,7 @@ sv_setiv(register SV *sv, IV i)
        {
            dTHR;
            croak("Can't coerce %s to integer in %s", sv_reftype(sv,0),
-                 op_desc[PL_op->op_type]);
+                 PL_op_desc[PL_op->op_type]);
        }
     }
     (void)SvIOK_only(sv);                      /* validate number */
@@ -1229,7 +1225,7 @@ sv_setnv(register SV *sv, double num)
        {
            dTHR;
            croak("Can't coerce %s to number in %s", sv_reftype(sv,0),
-                 op_name[PL_op->op_type]);
+                 PL_op_name[PL_op->op_type]);
        }
     }
     SvNVX(sv) = num;
@@ -1294,7 +1290,7 @@ not_a_number(SV *sv)
 
     if (PL_op)
        warner(WARN_NUMERIC, "Argument \"%s\" isn't numeric in %s", tmpbuf,
-               op_name[PL_op->op_type]);
+               PL_op_name[PL_op->op_type]);
     else
        warner(WARN_NUMERIC, "Argument \"%s\" isn't numeric", tmpbuf);
 }
@@ -1320,7 +1316,7 @@ sv_2iv(register SV *sv)
            if (!(SvFLAGS(sv) & SVs_PADTMP)) {
                dTHR;
                if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing)
-                   warner(WARN_UNINITIALIZED, warn_uninit);
+                   warner(WARN_UNINITIALIZED, PL_warn_uninit);
            }
            return 0;
        }
@@ -1346,7 +1342,7 @@ sv_2iv(register SV *sv)
            {
                dTHR;
                if (ckWARN(WARN_UNINITIALIZED))
-                   warner(WARN_UNINITIALIZED, warn_uninit);
+                   warner(WARN_UNINITIALIZED, PL_warn_uninit);
            }
            return 0;
        }
@@ -1376,7 +1372,7 @@ sv_2iv(register SV *sv)
     else  {
        dTHR;
        if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing && !(SvFLAGS(sv) & SVs_PADTMP))
-           warner(WARN_UNINITIALIZED, warn_uninit);
+           warner(WARN_UNINITIALIZED, PL_warn_uninit);
        return 0;
     }
     DEBUG_c(PerlIO_printf(Perl_debug_log, "0x%lx 2iv(%ld)\n",
@@ -1401,7 +1397,7 @@ sv_2uv(register SV *sv)
            if (!(SvFLAGS(sv) & SVs_PADTMP)) {
                dTHR;
                if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing)
-                   warner(WARN_UNINITIALIZED, warn_uninit);
+                   warner(WARN_UNINITIALIZED, PL_warn_uninit);
            }
            return 0;
        }
@@ -1424,7 +1420,7 @@ sv_2uv(register SV *sv)
            {
                dTHR;
                if (ckWARN(WARN_UNINITIALIZED))
-                   warner(WARN_UNINITIALIZED, warn_uninit);
+                   warner(WARN_UNINITIALIZED, PL_warn_uninit);
            }
            return 0;
        }
@@ -1452,7 +1448,7 @@ sv_2uv(register SV *sv)
        if (!(SvFLAGS(sv) & SVs_PADTMP)) {
            dTHR;
            if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing)
-               warner(WARN_UNINITIALIZED, warn_uninit);
+               warner(WARN_UNINITIALIZED, PL_warn_uninit);
        }
        return 0;
     }
@@ -1483,7 +1479,7 @@ sv_2nv(register SV *sv)
            if (!(SvFLAGS(sv) & SVs_PADTMP)) {
                dTHR;
                if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing)
-                   warner(WARN_UNINITIALIZED, warn_uninit);
+                   warner(WARN_UNINITIALIZED, PL_warn_uninit);
            }
             return 0;
         }
@@ -1508,7 +1504,7 @@ sv_2nv(register SV *sv)
            if (SvIOKp(sv))
                return (double)SvIVX(sv);
            if (ckWARN(WARN_UNINITIALIZED))
-               warner(WARN_UNINITIALIZED, warn_uninit);
+               warner(WARN_UNINITIALIZED, PL_warn_uninit);
            return 0.0;
        }
     }
@@ -1538,7 +1534,7 @@ sv_2nv(register SV *sv)
     else  {
        dTHR;
        if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing && !(SvFLAGS(sv) & SVs_PADTMP))
-           warner(WARN_UNINITIALIZED, warn_uninit);
+           warner(WARN_UNINITIALIZED, PL_warn_uninit);
        return 0.0;
     }
     SvNOK_on(sv);
@@ -1699,7 +1695,7 @@ sv_2pv(register SV *sv, STRLEN *lp)
            if (!(SvFLAGS(sv) & SVs_PADTMP)) {
                dTHR;
                if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing)
-                   warner(WARN_UNINITIALIZED, warn_uninit);
+                   warner(WARN_UNINITIALIZED, PL_warn_uninit);
            }
             *lp = 0;
             return "";
@@ -1807,7 +1803,7 @@ sv_2pv(register SV *sv, STRLEN *lp)
            {
                dTHR;
                if (ckWARN(WARN_UNINITIALIZED))
-                   warner(WARN_UNINITIALIZED, warn_uninit);
+                   warner(WARN_UNINITIALIZED, PL_warn_uninit);
            }
            *lp = 0;
            return "";
@@ -1856,7 +1852,7 @@ sv_2pv(register SV *sv, STRLEN *lp)
     else {
        dTHR;
        if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing && !(SvFLAGS(sv) & SVs_PADTMP))
-           warner(WARN_UNINITIALIZED, warn_uninit);
+           warner(WARN_UNINITIALIZED, PL_warn_uninit);
        *lp = 0;
        return "";
     }
@@ -2064,7 +2060,7 @@ sv_setsv(SV *dstr, register SV *sstr)
     case SVt_PVIO:
        if (PL_op)
            croak("Bizarre copy of %s in %s", sv_reftype(sstr, 0),
-               op_name[PL_op->op_type]);
+               PL_op_name[PL_op->op_type]);
        else
            croak("Bizarre copy of %s", sv_reftype(sstr, 0));
        break;
@@ -2434,7 +2430,7 @@ sv_check_thinkfirst(register SV *sv)
     if (SvREADONLY(sv)) {
        dTHR;
        if (PL_curcop != &PL_compiling)
-           croak(no_modify);
+           croak(PL_no_modify);
     }
     if (SvROK(sv))
        sv_unref(sv);
@@ -2560,7 +2556,7 @@ sv_magic(register SV *sv, SV *obj, int how, char *name, I32 namlen)
     if (SvREADONLY(sv)) {
        dTHR;
        if (PL_curcop != &PL_compiling && !strchr("gBf", how))
-           croak(no_modify);
+           croak(PL_no_modify);
     }
     if (SvMAGICAL(sv) || (how == 't' && SvTYPE(sv) >= SVt_PVMG)) {
        if (SvMAGIC(sv) && (mg = mg_find(sv, how))) {
@@ -2593,106 +2589,106 @@ sv_magic(register SV *sv, SV *obj, int how, char *name, I32 namlen)
     
     switch (how) {
     case 0:
-       mg->mg_virtual = &vtbl_sv;
+       mg->mg_virtual = &PL_vtbl_sv;
        break;
 #ifdef OVERLOAD
     case 'A':
-        mg->mg_virtual = &vtbl_amagic;
+        mg->mg_virtual = &PL_vtbl_amagic;
         break;
     case 'a':
-        mg->mg_virtual = &vtbl_amagicelem;
+        mg->mg_virtual = &PL_vtbl_amagicelem;
         break;
     case 'c':
         mg->mg_virtual = 0;
         break;
 #endif /* OVERLOAD */
     case 'B':
-       mg->mg_virtual = &vtbl_bm;
+       mg->mg_virtual = &PL_vtbl_bm;
        break;
     case 'D':
-       mg->mg_virtual = &vtbl_regdata;
+       mg->mg_virtual = &PL_vtbl_regdata;
        break;
     case 'd':
-       mg->mg_virtual = &vtbl_regdatum;
+       mg->mg_virtual = &PL_vtbl_regdatum;
        break;
     case 'E':
-       mg->mg_virtual = &vtbl_env;
+       mg->mg_virtual = &PL_vtbl_env;
        break;
     case 'f':
-       mg->mg_virtual = &vtbl_fm;
+       mg->mg_virtual = &PL_vtbl_fm;
        break;
     case 'e':
-       mg->mg_virtual = &vtbl_envelem;
+       mg->mg_virtual = &PL_vtbl_envelem;
        break;
     case 'g':
-       mg->mg_virtual = &vtbl_mglob;
+       mg->mg_virtual = &PL_vtbl_mglob;
        break;
     case 'I':
-       mg->mg_virtual = &vtbl_isa;
+       mg->mg_virtual = &PL_vtbl_isa;
        break;
     case 'i':
-       mg->mg_virtual = &vtbl_isaelem;
+       mg->mg_virtual = &PL_vtbl_isaelem;
        break;
     case 'k':
-       mg->mg_virtual = &vtbl_nkeys;
+       mg->mg_virtual = &PL_vtbl_nkeys;
        break;
     case 'L':
        SvRMAGICAL_on(sv);
        mg->mg_virtual = 0;
        break;
     case 'l':
-       mg->mg_virtual = &vtbl_dbline;
+       mg->mg_virtual = &PL_vtbl_dbline;
        break;
 #ifdef USE_THREADS
     case 'm':
-       mg->mg_virtual = &vtbl_mutex;
+       mg->mg_virtual = &PL_vtbl_mutex;
        break;
 #endif /* USE_THREADS */
 #ifdef USE_LOCALE_COLLATE
     case 'o':
-        mg->mg_virtual = &vtbl_collxfrm;
+        mg->mg_virtual = &PL_vtbl_collxfrm;
         break;
 #endif /* USE_LOCALE_COLLATE */
     case 'P':
-       mg->mg_virtual = &vtbl_pack;
+       mg->mg_virtual = &PL_vtbl_pack;
        break;
     case 'p':
     case 'q':
-       mg->mg_virtual = &vtbl_packelem;
+       mg->mg_virtual = &PL_vtbl_packelem;
        break;
     case 'r':
-       mg->mg_virtual = &vtbl_regexp;
+       mg->mg_virtual = &PL_vtbl_regexp;
        break;
     case 'S':
-       mg->mg_virtual = &vtbl_sig;
+       mg->mg_virtual = &PL_vtbl_sig;
        break;
     case 's':
-       mg->mg_virtual = &vtbl_sigelem;
+       mg->mg_virtual = &PL_vtbl_sigelem;
        break;
     case 't':
-       mg->mg_virtual = &vtbl_taint;
+       mg->mg_virtual = &PL_vtbl_taint;
        mg->mg_len = 1;
        break;
     case 'U':
-       mg->mg_virtual = &vtbl_uvar;
+       mg->mg_virtual = &PL_vtbl_uvar;
        break;
     case 'v':
-       mg->mg_virtual = &vtbl_vec;
+       mg->mg_virtual = &PL_vtbl_vec;
        break;
     case 'x':
-       mg->mg_virtual = &vtbl_substr;
+       mg->mg_virtual = &PL_vtbl_substr;
        break;
     case 'y':
-       mg->mg_virtual = &vtbl_defelem;
+       mg->mg_virtual = &PL_vtbl_defelem;
        break;
     case '*':
-       mg->mg_virtual = &vtbl_glob;
+       mg->mg_virtual = &PL_vtbl_glob;
        break;
     case '#':
-       mg->mg_virtual = &vtbl_arylen;
+       mg->mg_virtual = &PL_vtbl_arylen;
        break;
     case '.':
-       mg->mg_virtual = &vtbl_pos;
+       mg->mg_virtual = &PL_vtbl_pos;
        break;
     case '~':  /* Reserved for use by extensions not perl internals.   */
        /* Useful for attaching extension internal data to perl vars.   */
@@ -3602,7 +3598,7 @@ sv_inc(register SV *sv)
        if (SvREADONLY(sv)) {
            dTHR;
            if (PL_curcop != &PL_compiling)
-               croak(no_modify);
+               croak(PL_no_modify);
        }
        if (SvROK(sv)) {
            IV i;
@@ -3696,7 +3692,7 @@ sv_dec(register SV *sv)
        if (SvREADONLY(sv)) {
            dTHR;
            if (PL_curcop != &PL_compiling)
-               croak(no_modify);
+               croak(PL_no_modify);
        }
        if (SvROK(sv)) {
            IV i;
@@ -4009,7 +4005,7 @@ sv_2io(SV *sv)
        break;
     default:
        if (!SvOK(sv))
-           croak(no_usym, "filehandle");
+           croak(PL_no_usym, "filehandle");
        if (SvROK(sv))
            return sv_2io(SvRV(sv));
        gv = gv_fetchpv(SvPV(sv,PL_na), FALSE, SVt_PVIO);
@@ -4154,7 +4150,7 @@ sv_pvn_force(SV *sv, STRLEN *lp)
     if (SvREADONLY(sv)) {
        dTHR;
        if (PL_curcop != &PL_compiling)
-           croak(no_modify);
+           croak(PL_no_modify);
     }
     
     if (SvPOK(sv)) {
@@ -4170,7 +4166,7 @@ sv_pvn_force(SV *sv, STRLEN *lp)
            else {
                dTHR;
                croak("Can't coerce %s to string in %s", sv_reftype(sv,0),
-                   op_name[PL_op->op_type]);
+                   PL_op_name[PL_op->op_type]);
            }
        }
        else
@@ -4331,7 +4327,7 @@ sv_bless(SV *sv, HV *stash)
     tmpRef = SvRV(sv);
     if (SvFLAGS(tmpRef) & (SVs_OBJECT|SVf_READONLY)) {
        if (SvREADONLY(tmpRef))
-           croak(no_modify);
+           croak(PL_no_modify);
        if (SvOBJECT(tmpRef)) {
            if (SvTYPE(tmpRef) != SVt_PVIO)
                --PL_sv_objcount;
index d1332f0..13c5917 100644 (file)
@@ -24,8 +24,15 @@ print "ok 4\n";
 print "not " unless -r 'TEST';
 print "ok 5\n";
 
-print "not " if -w 'TEST';
-print "ok 6\n";
+# make sure TEST is r-x
+eval { chmod 0555, 'TEST' };
+if ($@) {
+  print "#[$@]\nok 6 # skipped\n";
+}
+else {
+  print "not " if -w 'TEST';
+  print "ok 6\n";
+}
 
 # Scripts are not -x everywhere.
 
diff --git a/taint.c b/taint.c
index 05a1a44..5a88699 100644 (file)
--- a/taint.c
+++ b/taint.c
@@ -17,6 +17,8 @@ taint_proper(const char *f, char *s)
             "%s %d %d %d\n", s, PL_tainted, PL_uid, PL_euid));
 
     if (PL_tainted) {
+       if (!f)
+           f = PL_no_security;
        if (PL_euid != PL_uid)
            ug = " while running setuid";
        else if (PL_egid != PL_gid)
index 958db6d..fb45e47 100644 (file)
--- a/thrdvar.h
+++ b/thrdvar.h
@@ -162,7 +162,10 @@ PERLVARI(Tregexecp,        regexec_t, FUNC_NAME_TO_PTR(regexec_flags))
                                        /* Pointer to RE executer */
 PERLVARI(Treginterp_cnt,int,       0)  /* Whether `Regexp'
                                                   was interpolated. */
-
+#ifdef DEBUGGING
+PERLVARI(Twatchaddr,   char **,    0)
+PERLVAR(Twatchok,      char *)
+#endif
 
 /* Note that the variables below are all explicitly referenced in the code
  * as thr->whatever and therefore don't need the 'T' prefix. */
diff --git a/thread.sym b/thread.sym
deleted file mode 100644 (file)
index 1e0ca6a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-# 
diff --git a/toke.c b/toke.c
index d2dbca7..9a2fbd6 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -112,10 +112,8 @@ static char ident_too_long[] = "Identifier too long";
 #ifdef USE_PURE_BISON
 YYSTYPE* yylval_pointer = NULL;
 int* yychar_pointer = NULL;
-#  ifdef EMBED
-#    undef yylval
-#    undef yychar
-#  endif
+#  undef yylval
+#  undef yychar
 #  define yylval (*yylval_pointer)
 #  define yychar (*yychar_pointer)
 #  define PERL_YYLEX_PARAM yylval_pointer,yychar_pointer
@@ -1614,7 +1612,7 @@ int yylex(PERL_YYLEX_PARAM_DECL)
        */
        if (PL_in_my) {
            if (strchr(PL_tokenbuf,':'))
-               croak(no_myglob,PL_tokenbuf);
+               croak(PL_no_myglob,PL_tokenbuf);
 
            yylval.opval = newOP(OP_PADANY, 0);
            yylval.opval->op_targ = pad_allocmy(PL_tokenbuf);
@@ -2532,7 +2530,7 @@ int yylex(PERL_YYLEX_PARAM_DECL)
        if (PL_expect == XOPERATOR) {
            if (ckWARN(WARN_SEMICOLON) && isIDFIRST_lazy(s) && PL_bufptr == PL_linestart) {
                PL_curcop->cop_line--;
-               warner(WARN_SEMICOLON, warn_nosemi);
+               warner(WARN_SEMICOLON, PL_warn_nosemi);
                PL_curcop->cop_line++;
            }
            BAop(OP_BIT_AND);
@@ -3065,7 +3063,7 @@ int yylex(PERL_YYLEX_PARAM_DECL)
                if (PL_expect == XOPERATOR) {
                    if (PL_bufptr == PL_linestart) {
                        PL_curcop->cop_line--;
-                       warner(WARN_SEMICOLON, warn_nosemi);
+                       warner(WARN_SEMICOLON, PL_warn_nosemi);
                        PL_curcop->cop_line++;
                    }
                    else
@@ -3121,7 +3119,7 @@ int yylex(PERL_YYLEX_PARAM_DECL)
                    (PL_oldoldbufptr == PL_last_lop || PL_oldoldbufptr == PL_last_uni) &&
                    /* NO SKIPSPACE BEFORE HERE! */
                    (PL_expect == XREF 
-                    || ((opargs[PL_last_lop_op] >> OASHIFT)& 7) == OA_FILEREF
+                    || ((PL_opargs[PL_last_lop_op] >> OASHIFT)& 7) == OA_FILEREF
                     || (PL_last_lop_op == OP_ENTERSUB 
                         && PL_last_proto 
                         && PL_last_proto[PL_last_proto[0] == ';' ? 1 : 0] == '*')) )
@@ -3251,7 +3249,7 @@ int yylex(PERL_YYLEX_PARAM_DECL)
                    if (lastchar != '-') {
                        for (d = PL_tokenbuf; *d && isLOWER(*d); d++) ;
                        if (!*d)
-                           warner(WARN_RESERVED, warn_reserved, PL_tokenbuf);
+                           warner(WARN_RESERVED, PL_warn_reserved, PL_tokenbuf);
                    }
                }
 
diff --git a/util.c b/util.c
index 873fcd8..ffc2fd3 100644 (file)
--- a/util.c
+++ b/util.c
@@ -97,7 +97,7 @@ safemalloc(MEM_SIZE size)
     else if (PL_nomemok)
        return Nullch;
     else {
-       PerlIO_puts(PerlIO_stderr(),no_mem) FLUSH;
+       PerlIO_puts(PerlIO_stderr(),PL_no_mem) FLUSH;
        my_exit(1);
         return Nullch;
     }
@@ -151,7 +151,7 @@ saferealloc(Malloc_t where,MEM_SIZE size)
     else if (PL_nomemok)
        return Nullch;
     else {
-       PerlIO_puts(PerlIO_stderr(),no_mem) FLUSH;
+       PerlIO_puts(PerlIO_stderr(),PL_no_mem) FLUSH;
        my_exit(1);
        return Nullch;
     }
@@ -206,7 +206,7 @@ safecalloc(MEM_SIZE count, MEM_SIZE size)
     else if (PL_nomemok)
        return Nullch;
     else {
-       PerlIO_puts(PerlIO_stderr(),no_mem) FLUSH;
+       PerlIO_puts(PerlIO_stderr(),PL_no_mem) FLUSH;
        my_exit(1);
        return Nullch;
     }
@@ -486,11 +486,11 @@ perl_new_ctype(char *newctype)
 
     for (i = 0; i < 256; i++) {
        if (isUPPER_LC(i))
-           fold_locale[i] = toLOWER_LC(i);
+           PL_fold_locale[i] = toLOWER_LC(i);
        else if (isLOWER_LC(i))
-           fold_locale[i] = toUPPER_LC(i);
+           PL_fold_locale[i] = toUPPER_LC(i);
        else
-           fold_locale[i] = i;
+           PL_fold_locale[i] = i;
     }
 
 #endif /* USE_LOCALE_CTYPE */
@@ -928,9 +928,9 @@ fbm_compile(SV *sv, U32 flags /* not used yet */)
 
     s = (unsigned char*)(SvPVX(sv));           /* deeper magic */
     for (i = 0; i < len; i++) {
-       if (freq[s[i]] < frequency) {
+       if (PL_freq[s[i]] < frequency) {
            rarest = i;
-           frequency = freq[s[i]];
+           frequency = PL_freq[s[i]];
        }
     }
     BmRARE(sv) = s[rarest];
@@ -1137,7 +1137,7 @@ ibcmp(char *s1, char *s2, register I32 len)
     register U8 *a = (U8 *)s1;
     register U8 *b = (U8 *)s2;
     while (len--) {
-       if (*a != *b && *a != fold[*b])
+       if (*a != *b && *a != PL_fold[*b])
            return 1;
        a++,b++;
     }
@@ -1150,7 +1150,7 @@ ibcmp_locale(char *s1, char *s2, register I32 len)
     register U8 *a = (U8 *)s1;
     register U8 *b = (U8 *)s2;
     while (len--) {
-       if (*a != *b && *a != fold_locale[*b])
+       if (*a != *b && *a != PL_fold_locale[*b])
            return 1;
        a++,b++;
     }
@@ -2300,10 +2300,8 @@ repeatcpy(register char *to, register char *from, I32 len, register I32 count)
     }
 }
 
-#ifndef CASTNEGFLOAT
 U32
-cast_ulong(f)
-double f;
+cast_ulong(double f)
 {
     long along;
 
@@ -2318,9 +2316,6 @@ double f;
     return (unsigned long)along;
 }
 # undef BIGDOUBLE
-#endif
-
-#ifndef CASTI32
 
 /* Unfortunately, on some systems the cast_uv() function doesn't
    work with the system-supplied definition of ULONG_MAX.  The
@@ -2343,8 +2338,7 @@ double f;
 #endif
 
 I32
-cast_i32(f)
-double f;
+cast_i32(double f)
 {
     if (f >= I32_MAX)
        return (I32) I32_MAX;
@@ -2354,8 +2348,7 @@ double f;
 }
 
 IV
-cast_iv(f)
-double f;
+cast_iv(double f)
 {
     if (f >= IV_MAX)
        return (IV) IV_MAX;
@@ -2365,21 +2358,16 @@ double f;
 }
 
 UV
-cast_uv(f)
-double f;
+cast_uv(double f)
 {
     if (f >= MY_UV_MAX)
        return (UV) MY_UV_MAX;
     return (UV) f;
 }
 
-#endif
-
 #ifndef HAS_RENAME
 I32
-same_dirent(a,b)
-char *a;
-char *b;
+same_dirent(char *a, char *b)
 {
     char *fa = strrchr(a,'/');
     char *fb = strrchr(b,'/');
@@ -2698,15 +2686,13 @@ schedule(void)
 }
 
 void
-perl_cond_init(cp)
-perl_cond *cp;
+perl_cond_init(perl_cond *cp)
 {
     *cp = 0;
 }
 
 void
-perl_cond_signal(cp)
-perl_cond *cp;
+perl_cond_signal(perl_cond *cp)
 {
     perl_os_thread t;
     perl_cond cond = *cp;
@@ -2726,8 +2712,7 @@ perl_cond *cp;
 }
 
 void
-perl_cond_broadcast(cp)
-perl_cond *cp;
+perl_cond_broadcast(perl_cond *cp)
 {
     perl_os_thread t;
     perl_cond cond, cond_next;
@@ -2748,8 +2733,7 @@ perl_cond *cp;
 }
 
 void
-perl_cond_wait(cp)
-perl_cond *cp;
+perl_cond_wait(perl_cond *cp)
 {
     perl_cond cond;
 
@@ -2960,28 +2944,27 @@ Perl_GetVars(void)
 char **
 get_op_names(void)
 {
- return op_name;
+ return PL_op_name;
 }
 
 char **
 get_op_descs(void)
 {
- return op_desc;
+ return PL_op_desc;
 }
 
 char *
 get_no_modify(void)
 {
- return (char*)no_modify;
+ return (char*)PL_no_modify;
 }
 
 U32 *
 get_opargs(void)
 {
- return opargs;
+ return PL_opargs;
 }
 
-
 SV **
 get_specialsv_list(void)
 {
index d6b6dda..d70a3f8 100644 (file)
@@ -661,7 +661,7 @@ $(DLL_OBJ)  : $(CORE_H)
 $(PERL95_OBJ)  : $(CORE_H)
 $(X2P_OBJ)     : $(CORE_H)
 
-perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym makedef.pl
+perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym makedef.pl
        $(MINIPERL) -w makedef.pl $(OPTIMIZE) $(DEFINES) $(OBJECT) \
            CCTYPE=$(CCTYPE) > perldll.def
 
@@ -881,7 +881,7 @@ distclean: clean
        -del /f perl95.c
        -del /f bin\*.bat
        cd $(EXTDIR)
-       -del /s *.lib *.def *.map *.bs Makefile *$(o) pm_to_blib
+       -del /s *.lib *.def *.map *.pdb *.bs Makefile *$(o) pm_to_blib
        cd ..\win32
        -rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR)
        -rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR)
index 69620ab..d91fbb9 100644 (file)
@@ -546,7 +546,8 @@ shrpenv=''
 shsharp='true'
 sig_name='ZERO NUM01 INT QUIT ILL NUM05 NUM06 NUM07 FPE KILL NUM10 SEGV NUM12 PIPE ALRM TERM USR1 USR2 CHLD NUM19 USR3 BREAK ABRT STOP NUM24 CONT CLD'
 sig_name_init='"ZERO", "NUM01", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "NUM19", "USR3", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0'
-sig_num='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 18, 0'
+sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 18 0'
+sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 18, 0'
 signal_t='void'
 sitearch='~INST_TOP~\site~INST_VER~\lib\~archname~'
 sitearchexp='~INST_TOP~\site~INST_VER~\lib\~archname~'
index c4c6d1a..745d407 100644 (file)
@@ -546,7 +546,8 @@ shrpenv=''
 shsharp='true'
 sig_name='ZERO NUM01 INT QUIT ILL NUM05 NUM06 NUM07 FPE KILL NUM10 SEGV NUM12 PIPE ALRM TERM NUM16 NUM17 NUM18 NUM19 CHLD BREAK ABRT STOP NUM24 CONT CLD'
 sig_name_init='"ZERO", "NUM01", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0'
-sig_num='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0'
+sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 20 0'
+sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0'
 signal_t='void'
 sitearch='~INST_TOP~\site~INST_VER~\lib\~archname~'
 sitearchexp='~INST_TOP~\site~INST_VER~\lib\~archname~'
index c9ef76c..1a99dd9 100644 (file)
@@ -546,7 +546,8 @@ shrpenv=''
 shsharp='true'
 sig_name='ZERO NUM01 INT QUIT ILL NUM05 NUM06 NUM07 FPE KILL NUM10 SEGV NUM12 PIPE ALRM TERM NUM16 NUM17 NUM18 NUM19 CHLD BREAK ABRT STOP NUM24 CONT CLD'
 sig_name_init='"ZERO", "NUM01", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0'
-sig_num='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0'
+sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 20 0'
+sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0'
 signal_t='void'
 sitearch='~INST_TOP~\site~INST_VER~\lib\~archname~'
 sitearchexp='~INST_TOP~\site~INST_VER~\lib\~archname~'
index 8c06b36..58ce965 100644 (file)
  *     the sig_name list.
  */
 #define SIG_NAME "ZERO", "NUM01", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "NUM19", "USR3", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0                /**/
-#define SIG_NUM  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 18, 0                   /**/
+#define SIG_NUM  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 18, 0           /**/
 
 /* VOIDFLAGS:
  *     This symbol indicates how much support of the void type is given by this
 #define SCHED_YIELD            /**/
 /*#define HAS_SCHED_YIELD      /**/
 
-/* PTHREADS_CREATED_JOINABLE:
- *     This symbol, if defined, indicates that pthreads are created
- *     in the joinable (aka undetached) state.
+/* I_MACH_CTHREADS:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <mach/cthreads.h>.
  */
-/*#define PTHREADS_CREATED_JOINABLE /**/
+/*#define   I_MACH_CTHREADS    /**/
 
 /* MULTIPLICITY:
  *     This symbol, if defined, indicates that Perl should
index 0e178b6..f048f67 100644 (file)
  *     the sig_name list.
  */
 #define SIG_NAME "ZERO", "NUM01", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0             /**/
-#define SIG_NUM  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0                   /**/
+#define SIG_NUM  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0           /**/
 
 /* VOIDFLAGS:
  *     This symbol indicates how much support of the void type is given by this
 #define SCHED_YIELD            /**/
 /*#define HAS_SCHED_YIELD      /**/
 
-/* PTHREADS_CREATED_JOINABLE:
- *     This symbol, if defined, indicates that pthreads are created
- *     in the joinable (aka undetached) state.
+/* I_MACH_CTHREADS:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <mach/cthreads.h>.
  */
-/*#define PTHREADS_CREATED_JOINABLE /**/
+/*#define   I_MACH_CTHREADS    /**/
 
 /* MULTIPLICITY:
  *     This symbol, if defined, indicates that Perl should
  *     be built to use multiplicity.
  */
-#define        MULTIPLICITY            /**/
+/*#define      MULTIPLICITY            /**/
 
 /* USE_THREADS:
  *     This symbol, if defined, indicates that Perl should
index 82d6218..c12fedc 100644 (file)
  *     the sig_name list.
  */
 #define SIG_NAME "ZERO", "NUM01", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0             /**/
-#define SIG_NUM  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0                   /**/
+#define SIG_NUM  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0           /**/
 
 /* VOIDFLAGS:
  *     This symbol indicates how much support of the void type is given by this
 #define SCHED_YIELD            /**/
 /*#define HAS_SCHED_YIELD      /**/
 
-/* PTHREADS_CREATED_JOINABLE:
- *     This symbol, if defined, indicates that pthreads are created
- *     in the joinable (aka undetached) state.
+/* I_MACH_CTHREADS:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <mach/cthreads.h>.
  */
-/*#define PTHREADS_CREATED_JOINABLE /**/
+/*#define   I_MACH_CTHREADS    /**/
 
 /* MULTIPLICITY:
  *     This symbol, if defined, indicates that Perl should
index 80ea5e3..537f09a 100644 (file)
@@ -1,18 +1,8 @@
 #!../miniperl
 
-# Written: 10 April 1996 Gary Ng (71564.1743@compuserve.com)
+# Create the export list for perl. Needed by WIN32 for creating perl.dll.
 
-# Create the export list for perl.
-# Needed by WIN32 for creating perl.dll
-# based on perl_exp.SH in the main perl distribution directory
-
-# This simple program relys on 'global.sym' being up to date
-# with all of the global symbols that a dynamicly link library
-# might want to access.
-
-# There is some symbol defined in global.sym and interp.sym
-# that does not present in the WIN32 port but there is no easy
-# way to find them so I just put a exception list here
+# reads global.sym, pp.sym, perlvars.h, intrpvar.h, thrdvar.h, config.h
 
 my $CCTYPE = "MSVC";   # default
 
@@ -143,7 +133,6 @@ Perl_pp_evalonce
 Perl_pp_interp
 Perl_pp_map
 Perl_pp_nswitch
-Perl_q
 Perl_reall_srchlen
 Perl_same_dirent
 Perl_saw_return
@@ -228,7 +217,7 @@ PL_nthreads_cond
 PL_threadnum
 PL_threadsv_names
 PL_thrsv
-Perl_vtbl_mutex
+PL_vtbl_mutex
 Perl_getTHR
 Perl_setTHR
 Perl_condpair_magic
@@ -292,8 +281,8 @@ unless ($define{'DEBUGGING'})
     Perl_debstackptrs
     Perl_runops_debug
     Perl_sv_peek
-    Perl_watchaddr
-    Perl_watchok)];
+    PL_watchaddr
+    PL_watchok)];
  }
 
 if ($define{'HAVE_DES_FCRYPT'})
@@ -301,23 +290,25 @@ if ($define{'HAVE_DES_FCRYPT'})
   emit_symbols [qw(win32_crypt)];
  }
 
-open (GLOBAL, "<../global.sym") || die "failed to open global.sym" . $!;
-while (<GLOBAL>) 
+# functions from *.sym files
+
+for my $syms ('../global.sym','../pp.sym', '../globvar.sym')
  {
-  next if (!/^[A-Za-z]/);
-  next if (/_amg[ \t]*$/);
-  # All symbols have a Perl_ prefix because that's what embed.h
-  # sticks in front of them.
-  chomp($_);
-  my $symbol = "Perl_$_";
-  emit_symbol($symbol) unless exists $skip{$symbol};
+  open (GLOBAL, "<$syms") || die "failed to open $syms" . $!;
+  while (<GLOBAL>) 
+   {
+    next if (!/^[A-Za-z]/);
+    # Functions have a Perl_ prefix
+    # Variables have a PL_ prefix
+    chomp($_);
+    my $symbol = ($syms =~ /var\.sym$/i ? "PL_" : "Perl_");
+    $symbol .= $_;
+    emit_symbol($symbol) unless exists $skip{$symbol};
+   }
+  close(GLOBAL);
  }
-close(GLOBAL);
 
-# also add symbols from interp.sym
-# They are only needed if -DMULTIPLICITY is not set but it
-# doesn't hurt to include them anyway.
-# these don't have Perl prefix
+# variables
 
 unless ($define{'PERL_GLOBAL_STRUCT'})
  {
index 80f01fa..50f2ab7 100644 (file)
@@ -220,7 +220,7 @@ OPTIMIZE    = -O2 $(RUNTIME)
 LINK_DBG       = 
 .ENDIF
 
-CFLAGS         = -w -g0 -a4 -tWM -tWD $(INCLUDES) $(DEFINES) $(LOCDEFS) \
+CFLAGS         = -w -g0 -tWM -tWD $(INCLUDES) $(DEFINES) $(LOCDEFS) \
                $(PCHFLAGS) $(OPTIMIZE)
 LINK_FLAGS     = $(LINK_DBG) -L$(CCLIBDIR) $(EXTRALIBDIRS:^"-L")
 OBJOUT_FLAG    = -o
@@ -791,7 +791,7 @@ $(DLL_OBJ)  : $(CORE_H)
 $(PERL95_OBJ)  : $(CORE_H)
 $(X2P_OBJ)     : $(CORE_H)
 
-perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym makedef.pl
+perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym makedef.pl
        $(MINIPERL) -w makedef.pl $(OPTIMIZE) $(DEFINES) $(OBJECT) \
            CCTYPE=$(CCTYPE) > perldll.def
 
@@ -1032,7 +1032,8 @@ distclean: clean
        -rmdir /s /q $(LIBDIR)\Data || rmdir /s $(LIBDIR)\Data
        -del /f $(PODDIR)\*.html
        -del /f $(PODDIR)\*.bat
-       -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc pstruct *.bat
+       -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc \
+           pstruct *.bat
        -cd ..\x2p && del /f find2perl s2p *.bat
        -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new
        -del /f $(CONFIGPM)
@@ -1040,7 +1041,8 @@ distclean: clean
        -del /f perl95.c
 .ENDIF
        -del /f bin\*.bat
-       -cd $(EXTDIR) && del /s *$(a) *.def *.map *.bs Makefile *$(o) pm_to_blib
+       -cd $(EXTDIR) && del /s *$(a) *.def *.map *.pdb *.bs Makefile *$(o) \
+           pm_to_blib
        -rmdir /s /q $(AUTODIR) || rmdir /s $(AUTODIR)
        -rmdir /s /q $(COREDIR) || rmdir /s $(COREDIR)
 
index 842d9c3..2190809 100644 (file)
@@ -861,13 +861,13 @@ public:
            {
                try
                {
-                   pPerl->perl_construct();
+                   perl_construct();
                }
                catch(...)
                {
                    win32_fprintf(stderr, "%s\n",
                                  "Error: Unable to construct data structures");
-                   pPerl->perl_free();
+                   perl_free();
                    pPerl = NULL;
                }
            }
@@ -884,7 +884,7 @@ public:
        int retVal;
        try
        {
-           retVal = pPerl->perl_parse(xs_init, argc, argv, env);
+           retVal = perl_parse(xs_init, argc, argv, env);
        }
        catch(int x)
        {
@@ -904,7 +904,7 @@ public:
        int retVal;
        try
        {
-           retVal = pPerl->perl_run();
+           retVal = perl_run();
        }
        catch(int x)
        {
@@ -922,8 +922,8 @@ public:
     {
        try
        {
-           pPerl->perl_destruct();
-           pPerl->perl_free();
+           perl_destruct();
+           perl_free();
        }
        catch(...)
        {