From 22c35a8c2392967a5ba6b5370695be464bd7012c Mon Sep 17 00:00:00 2001 From: Gurusamy Sarathy Date: Fri, 30 Oct 1998 02:51:39 +0000 Subject: [PATCH] phase 1 of somewhat major rearrangement of PERL_OBJECT stuff (objpp.h is gone, embed.pl now does some of that); objXSUB.h should soon be automated also; the global variables that escaped the PL_foo conversion are now reined in; renamed MAGIC in regcomp.h to REG_MAGIC to avoid collision with the type of same name; duplicated lists of pp_things in various places is now gone; result has only been tested on win32 p4raw-id: //depot/perl@2133 --- MANIFEST | 4 +- Makefile.SH | 9 +- av.c | 12 +- bytecode.h | 2 +- byterun.h | 2 + cop.h | 4 +- doio.c | 8 +- doop.c | 2 +- dump.c | 4 +- embed.h | 1346 ++++++++++++++++++++++++++++++++++++----- embed.pl | 291 +++++++-- embedvar.h | 22 +- ext/B/B.xs | 22 +- ext/POSIX/POSIX.xs | 2 - ext/Thread/Thread.xs | 2 +- global.sym | 521 +--------------- globals.c | 1414 +------------------------------------------- globvar.sym | 68 +++ gv.c | 28 +- malloc.c | 2 +- mg.c | 52 +- objXSUB.h | 12 +- objpp.h | 1611 -------------------------------------------------- op.c | 200 ++++--- opcode.h | 410 +------------ opcode.pl | 63 +- perl.c | 17 +- perl.h | 261 ++++---- perl_exp.SH | 8 +- perlvars.h | 6 +- perly.c | 22 +- pod/perlguts.pod | 2 +- pp.c | 31 +- pp.h | 5 +- pp.sym | 344 +++++++++++ pp_ctl.c | 22 +- pp_hot.c | 28 +- pp_proto.h | 722 +++++++++++----------- pp_sys.c | 172 +++--- proto.h | 53 +- regcomp.c | 64 +- regcomp.h | 12 +- regcomp.pl | 4 +- regcomp.sym | 8 +- regexec.c | 41 +- regnodes.h | 20 +- run.c | 19 +- scope.c | 6 +- sv.c | 112 ++-- t/op/filetest.t | 11 +- taint.c | 2 + thrdvar.h | 5 +- thread.sym | 1 - toke.c | 16 +- util.c | 63 +- win32/Makefile | 4 +- win32/config.bc | 3 +- win32/config.gc | 3 +- win32/config.vc | 3 +- win32/config_H.bc | 10 +- win32/config_H.gc | 12 +- win32/config_H.vc | 10 +- win32/makedef.pl | 51 +- win32/makefile.mk | 10 +- win32/perlhost.h | 12 +- 65 files changed, 3039 insertions(+), 5269 deletions(-) create mode 100644 globvar.sym delete mode 100644 objpp.h create mode 100644 pp.sym delete mode 100644 thread.sym diff --git a/MANIFEST b/MANIFEST index a458adc..c40608e 100644 --- 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 diff --git a/Makefile.SH b/Makefile.SH index 13f553d..3660bf5 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -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 --- 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); diff --git a/bytecode.h b/bytecode.h index e28dd43..fadc28f 100644 --- a/bytecode.h +++ b/bytecode.h @@ -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) diff --git a/byterun.h b/byterun.h index bd54c76..6e559ef 100644 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 @@ -51,22 +36,19 @@ #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 @@ -104,12 +84,8 @@ #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 @@ -117,21 +93,16 @@ #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 @@ -164,7 +135,6 @@ #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 @@ -175,10 +145,6 @@ #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 @@ -188,17 +154,13 @@ #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 @@ -207,7 +169,6 @@ #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 @@ -249,7 +210,6 @@ #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 @@ -285,8 +245,6 @@ #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 @@ -294,11 +252,7 @@ #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 @@ -360,13 +314,9 @@ #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 @@ -384,9 +334,6 @@ #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 @@ -439,33 +386,13 @@ #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 @@ -482,8 +409,6 @@ #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 @@ -523,7 +448,6 @@ #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 @@ -542,7 +466,6 @@ #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 @@ -550,7 +473,6 @@ #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 @@ -643,7 +565,6 @@ #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 @@ -671,7 +592,6 @@ #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 @@ -689,7 +609,6 @@ #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 @@ -834,30 +753,20 @@ #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 @@ -910,7 +819,6 @@ #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 @@ -930,32 +838,17 @@ #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 @@ -1073,63 +966,1196 @@ #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 */ diff --git a/embed.pl b/embed.pl index 52c93ab..2ca20d0 100755 --- 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 () { 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 () { 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 diff --git a/embedvar.h b/embedvar.h index 67761b1..a0bbea0 100644 --- a/embedvar.h +++ b/embedvar.h @@ -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 @@ -128,6 +120,8 @@ #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 */ @@ -511,19 +505,18 @@ #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 */ @@ -638,6 +631,8 @@ #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 */ @@ -907,10 +902,7 @@ #define PL_Gyynerrs PL_yynerrs #define PL_Gyyval PL_yyval -#ifdef EMBED - -#endif /* EMBED */ #endif /* PERL_GLOBAL_STRUCT */ diff --git a/ext/B/B.xs b/ext/B/B.xs index 855b3fd..ccc3f26 100644 --- a/ext/B/B.xs +++ b/ext/B/B.xs @@ -13,12 +13,12 @@ #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) diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index 1ef70eb..7b97586 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -10,8 +10,6 @@ # undef open # undef setmode # define open PerlLIO_open3 -# undef TAINT_PROPER -# define TAINT_PROPER(a) #endif #include #ifdef I_DIRENT /* XXX maybe better to just rely on perl.h? */ diff --git a/ext/Thread/Thread.xs b/ext/Thread/Thread.xs index b9036c0..208daf2 100644 --- a/ext/Thread/Thread.xs +++ b/ext/Thread/Thread.xs @@ -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)));); diff --git a/global.sym b/global.sym index 8c08a1b..5974a32 100644 --- a/global.sym +++ b/global.sym @@ -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 diff --git a/globals.c b/globals.c index 1d8ef92..b8d7c38 100644 --- a/globals.c +++ b/globals.c @@ -2,1412 +2,6 @@ #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 index 0000000..91329ca --- /dev/null +++ b/globvar.sym @@ -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 --- 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; diff --git a/malloc.c b/malloc.c index 1b75b67..13f20ff 100644 --- 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 --- 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); diff --git a/objXSUB.h b/objXSUB.h index a88cff7..315e710 100644 --- a/objXSUB.h +++ b/objXSUB.h @@ -962,7 +962,7 @@ #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 @@ -1494,6 +1494,16 @@ #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 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 --- 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; diff --git a/opcode.h b/opcode.h index 2abaa47..abd9bff 100644 --- 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 */ diff --git a/opcode.pl b/opcode.pl index 92330a6..0243847 100755 --- a/opcode.pl +++ b/opcode.pl @@ -47,9 +47,9 @@ print "\n#define MAXO ", scalar @ops, "\n\n"; print <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 --- 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 --- 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 { diff --git a/perl_exp.SH b/perl_exp.SH index 07d4140..51c3ab2 100644 --- a/perl_exp.SH +++ b/perl_exp.SH @@ -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 diff --git a/perlvars.h b/perlvars.h index d42353d..17924a9 100644 --- a/perlvars.h +++ b/perlvars.h @@ -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 --- 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", diff --git a/pod/perlguts.pod b/pod/perlguts.pod index 769fd01..7ccb80e 100644 --- a/pod/perlguts.pod +++ b/pod/perlguts.pod @@ -2778,7 +2778,7 @@ indicated number of bytes (remember to reserve space for an extra trailing NUL character). Calls C 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 --- 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 --- a/pp.h +++ b/pp.h @@ -14,11 +14,8 @@ #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 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 diff --git a/pp_ctl.c b/pp_ctl.c index 5a8cf00..c9ccb3a 100644 --- 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; diff --git a/pp_hot.c b/pp_hot.c index 53d42d8..26bf29c 100644 --- 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) { diff --git a/pp_proto.h b/pp_proto.h index ad82696..76ac6f4 100644 --- a/pp_proto.h +++ b/pp_proto.h @@ -1,344 +1,378 @@ -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) diff --git a/pp_sys.c b/pp_sys.c index 32ce19f..6ab33d4 100644 --- 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 0aec76d..03d7d0c 100644 --- 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 *, int * #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)); diff --git a/regcomp.c b/regcomp.c index ca0fd09..4fcef36 100644 --- 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: diff --git a/regcomp.h b/regcomp.h index 38b15ac..fef317a 100644 --- 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, diff --git a/regcomp.pl b/regcomp.pl index cfe59ad..d783218 100644 --- a/regcomp.pl +++ b/regcomp.pl @@ -39,9 +39,9 @@ EOP print OUT <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; } diff --git a/regnodes.h b/regnodes.h index c64c4b7..8e834ee 100644 --- a/regnodes.h +++ b/regnodes.h @@ -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 --- 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 --- 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 --- 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; diff --git a/t/op/filetest.t b/t/op/filetest.t index d1332f0..13c5917 100644 --- a/t/op/filetest.t +++ b/t/op/filetest.t @@ -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 --- 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) diff --git a/thrdvar.h b/thrdvar.h index 958db6d..fb45e47 100644 --- 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 index 1e0ca6a..0000000 --- a/thread.sym +++ /dev/null @@ -1 +0,0 @@ -# diff --git a/toke.c b/toke.c index d2dbca7..9a2fbd6 100644 --- 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 --- 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) { diff --git a/win32/Makefile b/win32/Makefile index d6b6dda..d70a3f8 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -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) diff --git a/win32/config.bc b/win32/config.bc index 69620ab..d91fbb9 100644 --- a/win32/config.bc +++ b/win32/config.bc @@ -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~' diff --git a/win32/config.gc b/win32/config.gc index c4c6d1a..745d407 100644 --- a/win32/config.gc +++ b/win32/config.gc @@ -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~' diff --git a/win32/config.vc b/win32/config.vc index c9ef76c..1a99dd9 100644 --- a/win32/config.vc +++ b/win32/config.vc @@ -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~' diff --git a/win32/config_H.bc b/win32/config_H.bc index 8c06b36..58ce965 100644 --- a/win32/config_H.bc +++ b/win32/config_H.bc @@ -1851,7 +1851,7 @@ * 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 @@ -2268,11 +2268,11 @@ #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 . */ -/*#define PTHREADS_CREATED_JOINABLE /**/ +/*#define I_MACH_CTHREADS /**/ /* MULTIPLICITY: * This symbol, if defined, indicates that Perl should diff --git a/win32/config_H.gc b/win32/config_H.gc index 0e178b6..f048f67 100644 --- a/win32/config_H.gc +++ b/win32/config_H.gc @@ -1851,7 +1851,7 @@ * 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 @@ -2268,17 +2268,17 @@ #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 . */ -/*#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 diff --git a/win32/config_H.vc b/win32/config_H.vc index 82d6218..c12fedc 100644 --- a/win32/config_H.vc +++ b/win32/config_H.vc @@ -1851,7 +1851,7 @@ * 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 @@ -2268,11 +2268,11 @@ #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 . */ -/*#define PTHREADS_CREATED_JOINABLE /**/ +/*#define I_MACH_CTHREADS /**/ /* MULTIPLICITY: * This symbol, if defined, indicates that Perl should diff --git a/win32/makedef.pl b/win32/makedef.pl index 80ea5e3..537f09a 100644 --- a/win32/makedef.pl +++ b/win32/makedef.pl @@ -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 () +# 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 () + { + 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'}) { diff --git a/win32/makefile.mk b/win32/makefile.mk index 80f01fa..50f2ab7 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -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) diff --git a/win32/perlhost.h b/win32/perlhost.h index 842d9c3..2190809 100644 --- a/win32/perlhost.h +++ b/win32/perlhost.h @@ -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(...) { -- 1.8.3.1