From cea2e8a9dd23747fd2b66edc86c58c64e9970321 Mon Sep 17 00:00:00 2001 From: Gurusamy Sarathy Date: Wed, 9 Jun 1999 18:03:01 +0000 Subject: [PATCH] more complete support for implicit thread/interpreter pointer, enabled via -DPERL_IMPLICIT_CONTEXT (all changes are noops without that enabled): - USE_THREADS now enables PERL_IMPLICIT_CONTEXT, so dTHR is a noop; tests pass on Solaris; should be faster now! - MULTIPLICITY has been tested with and without PERL_IMPLICIT_CONTEXT on Solaris - improved function database now merged with embed.pl - everything except the varargs functions have foo(a,b,c) macros to provide compatibility - varargs functions default to compatibility variants that get the context pointer using dTHX - there should be almost no source compatibility issues as a result of all this - dl_foo.xs changes other than dl_dlopen.xs untested - still needs documentation, fixups for win32 etc Next step: migrate most non-mutex variables from perlvars.h to intrpvar.h p4raw-id: //depot/perl@3524 --- MANIFEST | 3 +- XSUB.h | 24 +- av.c | 26 +- bytecode.pl | 5 +- cv.h | 2 +- doio.c | 74 +- doop.c | 40 +- dump.c | 266 +-- ebcdic.c | 4 +- embed.h | 4957 ++++++++++++++++++++++++++++------------- embed.pl | 1721 +++++++++++--- embedvar.h | 134 +- ext/B/B.xs | 38 +- ext/B/typemap | 4 +- ext/ByteLoader/ByteLoader.xs | 2 +- ext/ByteLoader/bytecode.h | 4 +- ext/ByteLoader/byterun.c | 5 +- ext/ByteLoader/byterun.h | 25 + ext/Data/Dumper/Dumper.xs | 34 +- ext/Devel/Peek/Peek.xs | 6 +- ext/DynaLoader/dl_aix.xs | 16 +- ext/DynaLoader/dl_beos.xs | 14 +- ext/DynaLoader/dl_cygwin32.xs | 14 +- ext/DynaLoader/dl_dld.xs | 24 +- ext/DynaLoader/dl_dlopen.xs | 16 +- ext/DynaLoader/dl_hpux.xs | 18 +- ext/DynaLoader/dl_mpeix.xs | 18 +- ext/DynaLoader/dl_next.xs | 18 +- ext/DynaLoader/dl_rhapsody.xs | 18 +- ext/DynaLoader/dl_vmesa.xs | 18 +- ext/DynaLoader/dl_vms.xs | 12 +- ext/DynaLoader/dlutils.c | 6 +- ext/Opcode/Opcode.xs | 83 +- ext/POSIX/POSIX.xs | 2 +- ext/Thread/Thread.xs | 16 +- ext/re/re.xs | 16 +- global.sym | 369 +-- globals.c | 2 +- gv.c | 78 +- hv.c | 20 +- lib/ExtUtils/xsubpp | 8 +- malloc.c | 76 +- mg.c | 70 +- mg.h | 10 +- miniperlmain.c | 1 + objXSUB.h | 4508 +++++++++++++++++-------------------- op.c | 274 +-- opcode.h | 10 +- opcode.pl | 14 +- perl.c | 296 +-- perl.h | 212 +- perlio.c | 27 +- perlsfio.h | 6 +- perly.c | 2 +- pp.c | 140 +- pp.h | 6 +- pp_ctl.c | 208 +- pp_hot.c | 114 +- pp_sys.c | 416 ++-- proto.h | 1314 ++++------- proto.pl | 1095 --------- regcomp.c | 90 +- regcomp.h | 16 +- regexec.c | 44 +- run.c | 6 +- scope.c | 22 +- scope.h | 12 +- sv.c | 248 ++- taint.c | 4 +- thrdvar.h | 6 +- thread.h | 51 +- toke.c | 322 +-- universal.c | 14 +- utf8.c | 12 +- util.c | 172 +- win32/Makefile | 2 + win32/makefile.mk | 2 + writemain.SH | 4 +- 78 files changed, 9752 insertions(+), 8234 deletions(-) delete mode 100755 proto.pl diff --git a/MANIFEST b/MANIFEST index f16120e..8ec17f5 100644 --- a/MANIFEST +++ b/MANIFEST @@ -157,7 +157,7 @@ emacs/cperl-mode.el An alternate perl-mode emacs/e2ctags.pl etags to ctags converter emacs/ptags Creates smart TAGS file embed.h Maps symbols to safer names -embed.pl Produces embed.h +embed.pl Produces {embed,embedvar,objXSUB,proto}.h, global.sym embedvar.h C namespace management ext/B/B.pm Compiler backend support functions and methods ext/B/B.xs Compiler backend external subroutines @@ -1025,7 +1025,6 @@ pp_hot.c Push/Pop code for heavily used opcodes pp_proto.h C++ definitions for Push/Pop code pp_sys.c Push/Pop code for system interaction proto.h Prototypes -proto.pl Produces proto.h and global.sym qnx/ar QNX implementation of "ar" utility qnx/cpp QNX implementation of preprocessor filter regcomp.c Regular expression compiler diff --git a/XSUB.h b/XSUB.h index 5c3ec64..44e2f7d 100644 --- a/XSUB.h +++ b/XSUB.h @@ -1,17 +1,13 @@ #define ST(off) PL_stack_base[ax + (off)] -#ifdef CAN_PROTOTYPE -# ifdef PERL_OBJECT -# define XS(name) void name(CV* cv, CPerlObj* pPerl) +#ifdef PERL_OBJECT +# define XS(name) void name(CV* cv, CPerlObj* pPerl) +#else +# if defined(CYGWIN32) && defined(USE_DYNAMIC_LOADING) +# define XS(name) __declspec(dllexport) void name(pTHX_ CV* cv) # else -# if defined(CYGWIN32) && defined(USE_DYNAMIC_LOADING) -# define XS(name) __declspec(dllexport) void name(CV* cv) -# else -# define XS(name) void name(CV* cv) -# endif +# define XS(name) void name(pTHX_ CV* cv) # endif -#else -# define XS(name) void name(cv) CV* cv; #endif #define dXSARGS \ @@ -31,7 +27,7 @@ #define dXSFUNCTION(ret) XSINTERFACE_CVT(ret,XSFUNCTION) #define XSINTERFACE_FUNC(ret,cv,f) ((XSINTERFACE_CVT(ret,))(f)) #define XSINTERFACE_FUNC_SET(cv,f) \ - CvXSUBANY(cv).any_dptr = (void (*) (void*))(f) + CvXSUBANY(cv).any_dptr = (void (*) (pTHX_ void*))(f) #define XSRETURN(off) \ STMT_START { \ @@ -69,14 +65,14 @@ tmpsv = ST(1); \ else { \ /* XXX GV_ADDWARN */ \ - tmpsv = get_sv(form("%s::%s", module, \ + tmpsv = get_sv(Perl_form(aTHX_ "%s::%s", module, \ vn = "XS_VERSION"), FALSE); \ if (!tmpsv || !SvOK(tmpsv)) \ - tmpsv = get_sv(form("%s::%s", module, \ + tmpsv = get_sv(Perl_form(aTHX_ "%s::%s", module, \ vn = "VERSION"), FALSE); \ } \ if (tmpsv && (!SvOK(tmpsv) || strNE(XS_VERSION, SvPV(tmpsv, n_a)))) \ - croak("%s object version %s does not match %s%s%s%s %_", \ + Perl_croak(aTHX_ "%s object version %s does not match %s%s%s%s %_", \ module, XS_VERSION, \ vn ? "$" : "", vn ? module : "", vn ? "::" : "", \ vn ? vn : "bootstrap parameter", tmpsv); \ diff --git a/av.c b/av.c index 265eb71..3b0913a 100644 --- a/av.c +++ b/av.c @@ -26,7 +26,7 @@ Perl_av_reify(pTHX_ AV *av) return; #ifdef DEBUGGING if (SvTIED_mg((SV*)av, 'P')) - warn("av_reify called on tied array"); + Perl_warn(aTHX_ "av_reify called on tied array"); #endif key = AvMAX(av) + 1; while (key > AvFILLp(av) + 1) @@ -215,7 +215,7 @@ Perl_av_store(pTHX_ register AV *av, I32 key, SV *val) } if (SvREADONLY(av) && key >= AvFILL(av)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); if (SvRMAGICAL(av)) { if (mg_find((SV*)av,'P')) { @@ -326,7 +326,7 @@ Perl_av_clear(pTHX_ register AV *av) #ifdef DEBUGGING if (SvREFCNT(av) <= 0) { - warn("Attempt to clear deleted array"); + Perl_warn(aTHX_ "Attempt to clear deleted array"); } #endif if (!av) @@ -334,7 +334,7 @@ Perl_av_clear(pTHX_ register AV *av) /*SUPPRESS 560*/ if (SvREADONLY(av)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); /* Give any tie a chance to cleanup first */ if (SvRMAGICAL(av)) @@ -394,7 +394,7 @@ Perl_av_push(pTHX_ register AV *av, SV *val) if (!av) return; if (SvREADONLY(av)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); if (mg = SvTIED_mg((SV*)av, 'P')) { dSP; @@ -422,7 +422,7 @@ Perl_av_pop(pTHX_ register AV *av) if (!av || AvFILL(av) < 0) return &PL_sv_undef; if (SvREADONLY(av)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); if (mg = SvTIED_mg((SV*)av, 'P')) { dSP; PUSHSTACKi(PERLSI_MAGIC); @@ -456,7 +456,7 @@ Perl_av_unshift(pTHX_ register AV *av, register I32 num) if (!av || num <= 0) return; if (SvREADONLY(av)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); if (mg = SvTIED_mg((SV*)av, 'P')) { dSP; @@ -508,7 +508,7 @@ Perl_av_shift(pTHX_ register AV *av) if (!av || AvFILL(av) < 0) return &PL_sv_undef; if (SvREADONLY(av)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); if (mg = SvTIED_mg((SV*)av, 'P')) { dSP; PUSHSTACKi(PERLSI_MAGIC); @@ -547,7 +547,7 @@ Perl_av_fill(pTHX_ register AV *av, I32 fill) { MAGIC *mg; if (!av) - croak("panic: null array"); + Perl_croak(aTHX_ "panic: null array"); if (fill < 0) fill = -1; if (mg = SvTIED_mg((SV*)av, 'P')) { @@ -596,11 +596,11 @@ Perl_av_fill(pTHX_ register AV *av, I32 fill) */ STATIC I32 -avhv_index_sv(pTHX_ SV* sv) +S_avhv_index_sv(pTHX_ SV* sv) { I32 index = SvIV(sv); if (index < 1) - croak("Bad index while coercing array into hash"); + Perl_croak(aTHX_ "Bad index while coercing array into hash"); return index; } @@ -618,7 +618,7 @@ Perl_avhv_keys(pTHX_ AV *av) return (HV*)sv; } } - croak("Can't coerce array into hash"); + Perl_croak(aTHX_ "Can't coerce array into hash"); return Nullhv; } @@ -631,7 +631,7 @@ Perl_avhv_fetch_ent(pTHX_ AV *av, SV *keysv, I32 lval, U32 hash) he = hv_fetch_ent(keys, keysv, FALSE, hash); if (!he) - croak("No such array field"); + Perl_croak(aTHX_ "No such array field"); return av_fetch(av, avhv_index_sv(HeVAL(he)), lval); } diff --git a/bytecode.pl b/bytecode.pl index 93457ea..c9bb491 100644 --- a/bytecode.pl +++ b/bytecode.pl @@ -102,7 +102,8 @@ bset_obj_store(void *obj, I32 ix) return obj; } -void byterun(struct bytestream bs) +void +byterun(pTHX_ struct bytestream bs) { dTHR; int insn; @@ -173,7 +174,7 @@ EOT # print BYTERUN_C <<'EOT'; default: - croak("Illegal bytecode instruction %d\n", insn); + Perl_croak(aTHX_ "Illegal bytecode instruction %d\n", insn); /* NOTREACHED */ } } diff --git a/cv.h b/cv.h index 482a257..d862aeb 100644 --- a/cv.h +++ b/cv.h @@ -21,7 +21,7 @@ struct xpvcv { HV * xcv_stash; OP * xcv_start; OP * xcv_root; - void (*xcv_xsub) (CV* _CPERLproto); + void (*xcv_xsub) (pTHX_ CV*); ANY xcv_xsubany; GV * xcv_gv; GV * xcv_filegv; diff --git a/doio.c b/doio.c index aac69f8..92a463c 100644 --- a/doio.c +++ b/doio.c @@ -191,7 +191,7 @@ Perl_do_open(pTHX_ GV *gv, register char *name, I32 len, int as_raw, int rawmode if (*name == '\0') { /* command is missing 19990114 */ dTHR; if (ckWARN(WARN_PIPE)) - warner(WARN_PIPE, "Missing command in piped open"); + Perl_warner(aTHX_ WARN_PIPE, "Missing command in piped open"); errno = EPIPE; goto say_false; } @@ -202,7 +202,7 @@ Perl_do_open(pTHX_ GV *gv, register char *name, I32 len, int as_raw, int rawmode dTHR; name[strlen(name)-1] = '\0' ; if (ckWARN(WARN_PIPE)) - warner(WARN_PIPE, "Can't do bidirectional pipe"); + Perl_warner(aTHX_ WARN_PIPE, "Can't do bidirectional pipe"); } fp = PerlProc_popen(name,"w"); writing = 1; @@ -295,7 +295,7 @@ Perl_do_open(pTHX_ GV *gv, register char *name, I32 len, int as_raw, int rawmode if (*name == '\0') { /* command is missing 19990114 */ dTHR; if (ckWARN(WARN_PIPE)) - warner(WARN_PIPE, "Missing command in piped open"); + Perl_warner(aTHX_ WARN_PIPE, "Missing command in piped open"); errno = EPIPE; goto say_false; } @@ -320,7 +320,7 @@ Perl_do_open(pTHX_ GV *gv, register char *name, I32 len, int as_raw, int rawmode if (!fp) { dTHR; if (ckWARN(WARN_NEWLINE) && IoTYPE(io) == '<' && strchr(name, '\n')) - warner(WARN_NEWLINE, PL_warn_nl, "open"); + Perl_warner(aTHX_ WARN_NEWLINE, PL_warn_nl, "open"); goto say_false; } if (IoTYPE(io) && @@ -455,7 +455,7 @@ Perl_nextargv(pTHX_ register GV *gv) fileuid = PL_statbuf.st_uid; filegid = PL_statbuf.st_gid; if (!S_ISREG(PL_filemode)) { - warn("Can't do inplace edit: %s is not a regular file", + Perl_warn(aTHX_ "Can't do inplace edit: %s is not a regular file", PL_oldname ); do_close(gv,FALSE); continue; @@ -484,7 +484,7 @@ Perl_nextargv(pTHX_ register GV *gv) || (_djstat_fail_bits & _STFAIL_TRUENAME)!=0 #endif ) { - warn("Can't do inplace edit: %s would not be unique", + Perl_warn(aTHX_ "Can't do inplace edit: %s would not be unique", SvPVX(sv) ); do_close(gv,FALSE); continue; @@ -493,7 +493,7 @@ Perl_nextargv(pTHX_ register GV *gv) #ifdef HAS_RENAME #ifndef DOSISH if (PerlLIO_rename(PL_oldname,SvPVX(sv)) < 0) { - warn("Can't rename %s to %s: %s, skipping file", + Perl_warn(aTHX_ "Can't rename %s to %s: %s, skipping file", PL_oldname, SvPVX(sv), Strerror(errno) ); do_close(gv,FALSE); continue; @@ -507,7 +507,7 @@ Perl_nextargv(pTHX_ register GV *gv) #else (void)UNLINK(SvPVX(sv)); if (link(PL_oldname,SvPVX(sv)) < 0) { - warn("Can't rename %s to %s: %s, skipping file", + Perl_warn(aTHX_ "Can't rename %s to %s: %s, skipping file", PL_oldname, SvPVX(sv), Strerror(errno) ); do_close(gv,FALSE); continue; @@ -519,14 +519,14 @@ Perl_nextargv(pTHX_ register GV *gv) #if !defined(DOSISH) && !defined(AMIGAOS) # ifndef VMS /* Don't delete; use automatic file versioning */ if (UNLINK(PL_oldname) < 0) { - warn("Can't remove %s: %s, skipping file", + Perl_warn(aTHX_ "Can't remove %s: %s, skipping file", PL_oldname, Strerror(errno) ); do_close(gv,FALSE); continue; } # endif #else - croak("Can't do inplace edit without backup"); + Perl_croak(aTHX_ "Can't do inplace edit without backup"); #endif } @@ -540,7 +540,7 @@ Perl_nextargv(pTHX_ register GV *gv) if (!do_open(PL_argvoutgv,SvPVX(sv),SvCUR(sv),PL_inplace!=0, O_WRONLY|O_CREAT|OPEN_EXCL,0666,Nullfp)) { #endif - warn("Can't do inplace edit on %s: %s", + Perl_warn(aTHX_ "Can't do inplace edit on %s: %s", PL_oldname, Strerror(errno) ); do_close(gv,FALSE); continue; @@ -643,7 +643,7 @@ Perl_do_close(pTHX_ GV *gv, bool not_implicit) if (not_implicit) { dTHR; if (ckWARN(WARN_UNOPENED)) - warner(WARN_UNOPENED, + Perl_warner(aTHX_ WARN_UNOPENED, "Close on unopened file <%s>",GvENAME(gv)); SETERRNO(EBADF,SS$_IVCHAN); } @@ -744,7 +744,7 @@ Perl_do_tell(pTHX_ GV *gv) { dTHR; if (ckWARN(WARN_UNOPENED)) - warner(WARN_UNOPENED, "tell() on unopened file"); + Perl_warner(aTHX_ WARN_UNOPENED, "tell() on unopened file"); } SETERRNO(EBADF,RMS$_IFI); return (Off_t)-1; @@ -766,7 +766,7 @@ Perl_do_seek(pTHX_ GV *gv, Off_t pos, int whence) { dTHR; if (ckWARN(WARN_UNOPENED)) - warner(WARN_UNOPENED, "seek() on unopened file"); + Perl_warner(aTHX_ WARN_UNOPENED, "seek() on unopened file"); } SETERRNO(EBADF,RMS$_IFI); return FALSE; @@ -783,7 +783,7 @@ Perl_do_sysseek(pTHX_ GV *gv, Off_t pos, int whence) { dTHR; if (ckWARN(WARN_UNOPENED)) - warner(WARN_UNOPENED, "sysseek() on unopened file"); + Perl_warner(aTHX_ WARN_UNOPENED, "sysseek() on unopened file"); } SETERRNO(EBADF,RMS$_IFI); return -1L; @@ -793,7 +793,7 @@ int Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int flag) { if (flag != TRUE) - croak("panic: unsetting binmode"); /* Not implemented yet */ + Perl_croak(aTHX_ "panic: unsetting binmode"); /* Not implemented yet */ #ifdef DOSISH #if defined(atarist) || defined(__MINT__) if (!PerlIO_flush(fp) && (fp->_flag |= _IOBIN)) @@ -907,7 +907,7 @@ Perl_do_print(pTHX_ register SV *sv, PerlIO *fp) { dTHR; if (ckWARN(WARN_UNINITIALIZED)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); } return TRUE; case SVt_IV: @@ -931,7 +931,7 @@ Perl_do_print(pTHX_ register SV *sv, PerlIO *fp) } I32 -Perl_my_stat(pTHX_ ARGSproto) +Perl_my_stat(pTHX) { djSP; IO *io; @@ -952,7 +952,7 @@ Perl_my_stat(pTHX_ ARGSproto) if (tmpgv == PL_defgv) return PL_laststatval; if (ckWARN(WARN_UNOPENED)) - warner(WARN_UNOPENED, "Stat on unopened file <%s>", + Perl_warner(aTHX_ WARN_UNOPENED, "Stat on unopened file <%s>", GvENAME(tmpgv)); PL_statgv = Nullgv; sv_setpv(PL_statname,""); @@ -979,13 +979,13 @@ Perl_my_stat(pTHX_ 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, PL_warn_nl, "stat"); + Perl_warner(aTHX_ WARN_NEWLINE, PL_warn_nl, "stat"); return PL_laststatval; } } I32 -Perl_my_lstat(pTHX_ ARGSproto) +Perl_my_lstat(pTHX) { djSP; SV *sv; @@ -994,10 +994,10 @@ Perl_my_lstat(pTHX_ ARGSproto) EXTEND(SP,1); if (cGVOP->op_gv == PL_defgv) { if (PL_laststype != OP_LSTAT) - croak("The stat preceding -l _ wasn't an lstat"); + Perl_croak(aTHX_ "The stat preceding -l _ wasn't an lstat"); return PL_laststatval; } - croak("You can't use -l on a filehandle"); + Perl_croak(aTHX_ "You can't use -l on a filehandle"); } PL_laststype = OP_LSTAT; @@ -1007,7 +1007,7 @@ Perl_my_lstat(pTHX_ ARGSproto) sv_setpv(PL_statname,SvPV(sv, n_a)); PL_laststatval = PerlLIO_lstat(SvPV(sv, n_a),&PL_statcache); if (PL_laststatval < 0 && ckWARN(WARN_NEWLINE) && strchr(SvPV(sv, n_a), '\n')) - warner(WARN_NEWLINE, PL_warn_nl, "lstat"); + Perl_warner(aTHX_ WARN_NEWLINE, PL_warn_nl, "lstat"); return PL_laststatval; } @@ -1036,7 +1036,7 @@ Perl_do_aexec(pTHX_ SV *really, register SV **mark, register SV **sp) else PerlProc_execvp(PL_Argv[0],PL_Argv); if (ckWARN(WARN_EXEC)) - warner(WARN_EXEC, "Can't exec \"%s\": %s", + Perl_warner(aTHX_ WARN_EXEC, "Can't exec \"%s\": %s", PL_Argv[0], Strerror(errno)); } do_execfree(); @@ -1150,7 +1150,7 @@ Perl_do_exec3(pTHX_ char *cmd, int fd, int do_report) int e = errno; if (ckWARN(WARN_EXEC)) - warner(WARN_EXEC, "Can't exec \"%s\": %s", + Perl_warner(aTHX_ WARN_EXEC, "Can't exec \"%s\": %s", PL_Argv[0], Strerror(errno)); if (do_report) { PerlLIO_write(fd, (void*)&e, sizeof(int)); @@ -1242,7 +1242,7 @@ nothing in the core. if (*s == 'S' && s[1] == 'I' && s[2] == 'G') s += 3; if (!(val = whichsig(s))) - croak("Unrecognized signal name \"%s\"",s); + Perl_croak(aTHX_ "Unrecognized signal name \"%s\"",s); } else val = SvIVx(*mark); @@ -1469,7 +1469,7 @@ Perl_do_ipcget(pTHX_ I32 optype, SV **mark, SV **sp) #endif #if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM) default: - croak("%s not implemented", PL_op_desc[optype]); + Perl_croak(aTHX_ "%s not implemented", PL_op_desc[optype]); #endif } return -1; /* should never happen */ @@ -1524,13 +1524,13 @@ Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp) than guessing about u_?short(_t)? */ } #else - croak("%s not implemented", PL_op_desc[optype]); + Perl_croak(aTHX_ "%s not implemented", PL_op_desc[optype]); #endif break; #endif #if !defined(HAS_MSG) || !defined(HAS_SEM) || !defined(HAS_SHM) default: - croak("%s not implemented", PL_op_desc[optype]); + Perl_croak(aTHX_ "%s not implemented", PL_op_desc[optype]); #endif } @@ -1546,7 +1546,7 @@ Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp) { a = SvPV(astr, len); if (len != infosize) - croak("Bad arg length for %s, is %lu, should be %ld", + Perl_croak(aTHX_ "Bad arg length for %s, is %lu, should be %ld", PL_op_desc[optype], (unsigned long)len, (long)infosize); @@ -1573,7 +1573,7 @@ Perl_do_ipcctl(pTHX_ I32 optype, SV **mark, SV **sp) unsemds.buf = (struct semid_ds *)a; ret = Semctl(id, n, cmd, unsemds); #else - croak("%s not implemented", PL_op_desc[optype]); + Perl_croak(aTHX_ "%s not implemented", PL_op_desc[optype]); #endif } break; @@ -1607,11 +1607,11 @@ Perl_do_msgsnd(pTHX_ SV **mark, SV **sp) flags = SvIVx(*++mark); mbuf = SvPV(mstr, len); if ((msize = len - sizeof(long)) < 0) - croak("Arg too short for msgsnd"); + Perl_croak(aTHX_ "Arg too short for msgsnd"); SETERRNO(0,0); return msgsnd(id, (struct msgbuf *)mbuf, msize, flags); #else - croak("msgsnd not implemented"); + Perl_croak(aTHX_ "msgsnd not implemented"); #endif } @@ -1642,7 +1642,7 @@ Perl_do_msgrcv(pTHX_ SV **mark, SV **sp) } return ret; #else - croak("msgrcv not implemented"); + Perl_croak(aTHX_ "msgrcv not implemented"); #endif } @@ -1667,7 +1667,7 @@ Perl_do_semop(pTHX_ SV **mark, SV **sp) SETERRNO(0,0); return semop(id, (struct sembuf *)opbuf, opsize/sizeof(struct sembuf)); #else - croak("semop not implemented"); + Perl_croak(aTHX_ "semop not implemented"); #endif } @@ -1717,7 +1717,7 @@ Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp) } return shmdt(shm); #else - croak("shm I/O not implemented"); + Perl_croak(aTHX_ "shm I/O not implemented"); #endif } diff --git a/doop.c b/doop.c index 7b5f751..2857792 100644 --- a/doop.c +++ b/doop.c @@ -20,7 +20,7 @@ #endif STATIC I32 -do_trans_CC_simple(pTHX_ SV *sv) +S_do_trans_CC_simple(pTHX_ SV *sv) { dTHR; U8 *s; @@ -32,7 +32,7 @@ do_trans_CC_simple(pTHX_ SV *sv) tbl = (short*)cPVOP->op_pv; if (!tbl) - croak("panic: do_trans"); + Perl_croak(aTHX_ "panic: do_trans"); s = (U8*)SvPV(sv, len); send = s + len; @@ -50,7 +50,7 @@ do_trans_CC_simple(pTHX_ SV *sv) } STATIC I32 -do_trans_CC_count(pTHX_ SV *sv) +S_do_trans_CC_count(pTHX_ SV *sv) { dTHR; U8 *s; @@ -61,7 +61,7 @@ do_trans_CC_count(pTHX_ SV *sv) tbl = (short*)cPVOP->op_pv; if (!tbl) - croak("panic: do_trans"); + Perl_croak(aTHX_ "panic: do_trans"); s = (U8*)SvPV(sv, len); send = s + len; @@ -76,7 +76,7 @@ do_trans_CC_count(pTHX_ SV *sv) } STATIC I32 -do_trans_CC_complex(pTHX_ SV *sv) +S_do_trans_CC_complex(pTHX_ SV *sv) { dTHR; U8 *s; @@ -89,7 +89,7 @@ do_trans_CC_complex(pTHX_ SV *sv) tbl = (short*)cPVOP->op_pv; if (!tbl) - croak("panic: do_trans"); + Perl_croak(aTHX_ "panic: do_trans"); s = (U8*)SvPV(sv, len); send = s + len; @@ -133,7 +133,7 @@ do_trans_CC_complex(pTHX_ SV *sv) } STATIC I32 -do_trans_UU_simple(pTHX_ SV *sv) +S_do_trans_UU_simple(pTHX_ SV *sv) { dTHR; U8 *s; @@ -185,7 +185,7 @@ do_trans_UU_simple(pTHX_ SV *sv) } STATIC I32 -do_trans_UU_count(pTHX_ SV *sv) +S_do_trans_UU_count(pTHX_ SV *sv) { dTHR; U8 *s; @@ -212,7 +212,7 @@ do_trans_UU_count(pTHX_ SV *sv) } STATIC I32 -do_trans_UC_simple(pTHX_ SV *sv) +S_do_trans_UC_simple(pTHX_ SV *sv) { dTHR; U8 *s; @@ -265,7 +265,7 @@ do_trans_UC_simple(pTHX_ SV *sv) } STATIC I32 -do_trans_CU_simple(pTHX_ SV *sv) +S_do_trans_CU_simple(pTHX_ SV *sv) { dTHR; U8 *s; @@ -328,7 +328,7 @@ do_trans_CU_simple(pTHX_ SV *sv) /* utf-8 to latin-1 */ STATIC I32 -do_trans_UC_trivial(pTHX_ SV *sv) +S_do_trans_UC_trivial(pTHX_ SV *sv) { dTHR; U8 *s; @@ -360,7 +360,7 @@ do_trans_UC_trivial(pTHX_ SV *sv) /* latin-1 to utf-8 */ STATIC I32 -do_trans_CU_trivial(pTHX_ SV *sv) +S_do_trans_CU_trivial(pTHX_ SV *sv) { dTHR; U8 *s; @@ -394,7 +394,7 @@ do_trans_CU_trivial(pTHX_ SV *sv) } STATIC I32 -do_trans_UU_complex(pTHX_ SV *sv) +S_do_trans_UU_complex(pTHX_ SV *sv) { dTHR; U8 *s; @@ -585,7 +585,7 @@ Perl_do_trans(pTHX_ SV *sv) STRLEN len; if (SvREADONLY(sv) && !(PL_op->op_private & OPpTRANS_IDENTICAL)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); (void)SvPV(sv, len); if (!len) @@ -594,7 +594,7 @@ Perl_do_trans(pTHX_ SV *sv) (void)SvPV_force(sv, len); (void)SvPOK_only(sv); - DEBUG_t( deb("2.TBL\n")); + DEBUG_t( Perl_deb(aTHX_ "2.TBL\n")); switch (PL_op->op_private & 63) { case 0: @@ -777,7 +777,7 @@ Perl_do_chop(pTHX_ register SV *astr, register SV *sv) return; } else if (SvREADONLY(sv)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); s = SvPV(sv, len); if (len && !SvPOK(sv)) s = SvPV_force(sv, len); @@ -789,7 +789,7 @@ Perl_do_chop(pTHX_ register SV *astr, register SV *sv) while ((*s & 0xc0) == 0x80) --s; if (UTF8SKIP(s) != send - s) - warn("Malformed UTF-8 character"); + Perl_warn(aTHX_ "Malformed UTF-8 character"); sv_setpvn(astr, s, send - s); *s = '\0'; SvCUR_set(sv, s - start); @@ -846,7 +846,7 @@ Perl_do_chomp(pTHX_ register SV *sv) return count; } else if (SvREADONLY(sv)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); s = SvPV(sv, len); if (len && !SvPOKp(sv)) s = SvPV_force(sv, len); @@ -1005,7 +1005,7 @@ Perl_do_vop(pTHX_ I32 optype, SV *sv, SV *left, SV *right) } OP * -Perl_do_kv(pTHX_ ARGSproto) +Perl_do_kv(pTHX) { djSP; HV *hv = (HV*)POPs; @@ -1077,7 +1077,7 @@ Perl_do_kv(pTHX_ ARGSproto) PUTBACK; tmpstr = realhv ? hv_iterval(hv,entry) : avhv_iterval((AV*)hv,entry); - DEBUG_H(sv_setpvf(tmpstr, "%lu%%%d=%lu", + DEBUG_H(Perl_sv_setpvf(aTHX_ tmpstr, "%lu%%%d=%lu", (unsigned long)HeHASH(entry), HvMAX(keys)+1, (unsigned long)(HeHASH(entry) & HvMAX(keys)))); diff --git a/dump.c b/dump.c index 063d296..ef0d858 100644 --- a/dump.c +++ b/dump.c @@ -74,15 +74,15 @@ Perl_dump_sub(pTHX_ GV *gv) SV *sv = sv_newmortal(); gv_fullname3(sv, gv, Nullch); - dump_indent(0, Perl_debug_log, "\nSUB %s = ", SvPVX(sv)); + Perl_dump_indent(aTHX_ 0, Perl_debug_log, "\nSUB %s = ", SvPVX(sv)); if (CvXSUB(GvCV(gv))) - dump_indent(0, Perl_debug_log, "(xsub 0x%x %d)\n", + Perl_dump_indent(aTHX_ 0, Perl_debug_log, "(xsub 0x%x %d)\n", (long)CvXSUB(GvCV(gv)), CvXSUBANY(GvCV(gv)).any_i32); else if (CvROOT(GvCV(gv))) op_dump(CvROOT(GvCV(gv))); else - dump_indent(0, Perl_debug_log, "\n"); + Perl_dump_indent(aTHX_ 0, Perl_debug_log, "\n"); } void @@ -91,11 +91,11 @@ Perl_dump_form(pTHX_ GV *gv) SV *sv = sv_newmortal(); gv_fullname3(sv, gv, Nullch); - dump_indent(0, Perl_debug_log, "\nFORMAT %s = ", SvPVX(sv)); + Perl_dump_indent(aTHX_ 0, Perl_debug_log, "\nFORMAT %s = ", SvPVX(sv)); if (CvROOT(GvFORM(gv))) op_dump(CvROOT(GvFORM(gv))); else - dump_indent(0, Perl_debug_log, "\n"); + Perl_dump_indent(aTHX_ 0, Perl_debug_log, "\n"); } void @@ -129,9 +129,9 @@ Perl_pv_display(pTHX_ SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) } else { if (cur && isDIGIT(*(pv+1))) - sv_catpvf(sv, "\\%03o", *pv); + Perl_sv_catpvf(aTHX_ sv, "\\%03o", *pv); else - sv_catpvf(sv, "\\%o", *pv); + Perl_sv_catpvf(aTHX_ sv, "\\%o", *pv); } } sv_catpvn(sv, "\"", 1); @@ -246,7 +246,7 @@ Perl_sv_peek(pTHX_ SV *sv) break; case SVt_PVCV: if (CvGV(sv)) - sv_catpvf(t, "CV(%s)", GvNAME(CvGV(sv))); + Perl_sv_catpvf(aTHX_ t, "CV(%s)", GvNAME(CvGV(sv))); else sv_catpv(t, "CV()"); goto finish; @@ -271,20 +271,20 @@ Perl_sv_peek(pTHX_ SV *sv) SV *tmp = newSVpvn("", 0); sv_catpv(t, "("); if (SvOOK(sv)) - sv_catpvf(t, "[%s]", pv_display(tmp, SvPVX(sv)-SvIVX(sv), SvIVX(sv), 0, 127)); - sv_catpvf(t, "%s)", pv_display(tmp, SvPVX(sv), SvCUR(sv), SvLEN(sv), 127)); + Perl_sv_catpvf(aTHX_ t, "[%s]", pv_display(tmp, SvPVX(sv)-SvIVX(sv), SvIVX(sv), 0, 127)); + Perl_sv_catpvf(aTHX_ t, "%s)", pv_display(tmp, SvPVX(sv), SvCUR(sv), SvLEN(sv), 127)); SvREFCNT_dec(tmp); } } else if (SvNOKp(sv)) { SET_NUMERIC_STANDARD(); - sv_catpvf(t, "(%g)",SvNVX(sv)); + Perl_sv_catpvf(aTHX_ t, "(%g)",SvNVX(sv)); } else if (SvIOKp(sv)) { /* XXXX: IV, UV? */ if (SvIsUV(sv)) - sv_catpvf(t, "(%lu)",(unsigned long)SvUVX(sv)); + Perl_sv_catpvf(aTHX_ t, "(%lu)",(unsigned long)SvUVX(sv)); else - sv_catpvf(t, "(%ld)",(long)SvIVX(sv)); + Perl_sv_catpvf(aTHX_ t, "(%ld)",(long)SvIVX(sv)); } else sv_catpv(t, "()"); @@ -303,23 +303,23 @@ Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm) char ch; if (!pm) { - dump_indent(level, file, "{}\n"); + Perl_dump_indent(aTHX_ level, file, "{}\n"); return; } - dump_indent(level, file, "{\n"); + Perl_dump_indent(aTHX_ level, file, "{\n"); level++; if (pm->op_pmflags & PMf_ONCE) ch = '?'; else ch = '/'; if (pm->op_pmregexp) - dump_indent(level, file, "PMf_PRE %c%s%c%s\n", + Perl_dump_indent(aTHX_ level, file, "PMf_PRE %c%s%c%s\n", ch, pm->op_pmregexp->precomp, ch, (pm->op_private & OPpRUNTIME) ? " (RUNTIME)" : ""); else - dump_indent(level, file, "PMf_PRE (RUNTIME)\n"); + Perl_dump_indent(aTHX_ level, file, "PMf_PRE (RUNTIME)\n"); if (pm->op_type != OP_PUSHRE && pm->op_pmreplroot) { - dump_indent(level, file, "PMf_REPL = "); + Perl_dump_indent(aTHX_ level, file, "PMf_REPL = "); op_dump(pm->op_pmreplroot); } if (pm->op_pmflags || (pm->op_pmregexp && pm->op_pmregexp->check_substr)) { @@ -350,11 +350,11 @@ Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm) sv_catpv(tmpsv, ",RETAINT"); if (pm->op_pmflags & PMf_EVAL) sv_catpv(tmpsv, ",EVAL"); - dump_indent(level, file, "PMFLAGS = (%s)\n", SvCUR(tmpsv) ? SvPVX(tmpsv) + 1 : ""); + Perl_dump_indent(aTHX_ level, file, "PMFLAGS = (%s)\n", SvCUR(tmpsv) ? SvPVX(tmpsv) + 1 : ""); SvREFCNT_dec(tmpsv); } - dump_indent(level-1, file, "}\n"); + Perl_dump_indent(aTHX_ level-1, file, "}\n"); } void @@ -368,7 +368,7 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) { dTHR; STRLEN n_a; - dump_indent(level, file, "{\n"); + Perl_dump_indent(aTHX_ level, file, "{\n"); level++; if (o->op_seq) PerlIO_printf(file, "%-4d", o->op_seq); @@ -385,12 +385,12 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) PerlIO_printf(file, "DONE\n"); if (o->op_targ) { if (o->op_type == OP_NULL) - dump_indent(level, file, " (was %s)\n", PL_op_name[o->op_targ]); + Perl_dump_indent(aTHX_ level, file, " (was %s)\n", PL_op_name[o->op_targ]); else - dump_indent(level, file, "TARG = %d\n", o->op_targ); + Perl_dump_indent(aTHX_ level, file, "TARG = %d\n", o->op_targ); } #ifdef DUMPADDR - dump_indent(level, file, "ADDR = 0x%lx => 0x%lx\n",o, o->op_next); + Perl_dump_indent(aTHX_ level, file, "ADDR = 0x%lx => 0x%lx\n",o, o->op_next); #endif if (o->op_flags) { SV *tmpsv = newSVpvn("", 0); @@ -420,7 +420,7 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) sv_catpv(tmpsv, ",MOD"); if (o->op_flags & OPf_SPECIAL) sv_catpv(tmpsv, ",SPECIAL"); - dump_indent(level, file, "FLAGS = (%s)\n", SvCUR(tmpsv) ? SvPVX(tmpsv) + 1 : ""); + Perl_dump_indent(aTHX_ level, file, "FLAGS = (%s)\n", SvCUR(tmpsv) ? SvPVX(tmpsv) + 1 : ""); SvREFCNT_dec(tmpsv); } if (o->op_private) { @@ -496,7 +496,7 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) if (o->op_flags & OPf_MOD && o->op_private & OPpLVAL_INTRO) sv_catpv(tmpsv, ",INTRO"); if (SvCUR(tmpsv)) - dump_indent(level, file, "PRIVATE = (%s)\n", SvPVX(tmpsv) + 1); + Perl_dump_indent(aTHX_ level, file, "PRIVATE = (%s)\n", SvPVX(tmpsv) + 1); SvREFCNT_dec(tmpsv); } @@ -508,46 +508,46 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) ENTER; SAVEFREESV(tmpsv); gv_fullname3(tmpsv, cGVOPo->op_gv, Nullch); - dump_indent(level, file, "GV = %s\n", SvPV(tmpsv, n_a)); + Perl_dump_indent(aTHX_ level, file, "GV = %s\n", SvPV(tmpsv, n_a)); LEAVE; } else - dump_indent(level, file, "GV = NULL\n"); + Perl_dump_indent(aTHX_ level, file, "GV = NULL\n"); break; case OP_CONST: - dump_indent(level, file, "SV = %s\n", SvPEEK(cSVOPo->op_sv)); + Perl_dump_indent(aTHX_ level, file, "SV = %s\n", SvPEEK(cSVOPo->op_sv)); break; case OP_NEXTSTATE: case OP_DBSTATE: if (cCOPo->cop_line) - dump_indent(level, file, "LINE = %d\n",cCOPo->cop_line); + Perl_dump_indent(aTHX_ level, file, "LINE = %d\n",cCOPo->cop_line); if (cCOPo->cop_label) - dump_indent(level, file, "LABEL = \"%s\"\n",cCOPo->cop_label); + Perl_dump_indent(aTHX_ level, file, "LABEL = \"%s\"\n",cCOPo->cop_label); break; case OP_ENTERLOOP: - dump_indent(level, file, "REDO ===> "); + Perl_dump_indent(aTHX_ level, file, "REDO ===> "); if (cLOOPo->op_redoop) PerlIO_printf(file, "%d\n", cLOOPo->op_redoop->op_seq); else PerlIO_printf(file, "DONE\n"); - dump_indent(level, file, "NEXT ===> "); + Perl_dump_indent(aTHX_ level, file, "NEXT ===> "); if (cLOOPo->op_nextop) PerlIO_printf(file, "%d\n", cLOOPo->op_nextop->op_seq); else PerlIO_printf(file, "DONE\n"); - dump_indent(level, file, "LAST ===> "); + Perl_dump_indent(aTHX_ level, file, "LAST ===> "); if (cLOOPo->op_lastop) PerlIO_printf(file, "%d\n", cLOOPo->op_lastop->op_seq); else PerlIO_printf(file, "DONE\n"); break; case OP_COND_EXPR: - dump_indent(level, file, "TRUE ===> "); + Perl_dump_indent(aTHX_ level, file, "TRUE ===> "); if (cCONDOPo->op_true) PerlIO_printf(file, "%d\n", cCONDOPo->op_true->op_seq); else PerlIO_printf(file, "DONE\n"); - dump_indent(level, file, "FALSE ===> "); + Perl_dump_indent(aTHX_ level, file, "FALSE ===> "); if (cCONDOPo->op_false) PerlIO_printf(file, "%d\n", cCONDOPo->op_false->op_seq); else @@ -557,7 +557,7 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) case OP_GREPWHILE: case OP_OR: case OP_AND: - dump_indent(level, file, "OTHER ===> "); + Perl_dump_indent(aTHX_ level, file, "OTHER ===> "); if (cLOGOPo->op_other) PerlIO_printf(file, "%d\n", cLOGOPo->op_other->op_seq); else @@ -577,7 +577,7 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o) for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling) do_op_dump(level, file, kid); } - dump_indent(level-1, file, "}\n"); + Perl_dump_indent(aTHX_ level-1, file, "}\n"); } void @@ -598,20 +598,20 @@ Perl_gv_dump(pTHX_ GV *gv) sv = sv_newmortal(); PerlIO_printf(Perl_debug_log, "{\n"); gv_fullname3(sv, gv, Nullch); - dump_indent(1, Perl_debug_log, "GV_NAME = %s", SvPVX(sv)); + Perl_dump_indent(aTHX_ 1, Perl_debug_log, "GV_NAME = %s", SvPVX(sv)); if (gv != GvEGV(gv)) { gv_efullname3(sv, GvEGV(gv), Nullch); - dump_indent(1, Perl_debug_log, "-> %s", SvPVX(sv)); + Perl_dump_indent(aTHX_ 1, Perl_debug_log, "-> %s", SvPVX(sv)); } PerlIO_putc(Perl_debug_log, '\n'); - dump_indent(0, Perl_debug_log, "}\n"); + Perl_dump_indent(aTHX_ 0, Perl_debug_log, "}\n"); } void Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim) { for (; mg; mg = mg->mg_moremagic) { - dump_indent(level, file, " MAGIC = 0x%lx\n", (long)mg); + Perl_dump_indent(aTHX_ level, file, " MAGIC = 0x%lx\n", (long)mg); if (mg->mg_virtual) { MGVTBL *v = mg->mg_virtual; char *s = 0; @@ -643,41 +643,41 @@ Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxne else if (v == &PL_vtbl_amagicelem) s = "amagicelem"; else if (v == &PL_vtbl_backref) s = "backref"; if (s) - dump_indent(level, file, " MG_VIRTUAL = &PL_vtbl_%s\n", s); + Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = &PL_vtbl_%s\n", s); else - dump_indent(level, file, " MG_VIRTUAL = 0x%lx\n", (long)v); + Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = 0x%lx\n", (long)v); } else - dump_indent(level, file, " MG_VIRTUAL = 0\n"); + Perl_dump_indent(aTHX_ level, file, " MG_VIRTUAL = 0\n"); if (mg->mg_private) - dump_indent(level, file, " MG_PRIVATE = %d\n", mg->mg_private); + Perl_dump_indent(aTHX_ level, file, " MG_PRIVATE = %d\n", mg->mg_private); if (isPRINT(mg->mg_type)) - dump_indent(level, file, " MG_TYPE = '%c'\n", mg->mg_type); + Perl_dump_indent(aTHX_ level, file, " MG_TYPE = '%c'\n", mg->mg_type); else - dump_indent(level, file, " MG_TYPE = '\\%o'\n", mg->mg_type); + Perl_dump_indent(aTHX_ level, file, " MG_TYPE = '\\%o'\n", mg->mg_type); if (mg->mg_flags) { - dump_indent(level, file, " MG_FLAGS = 0x%02X\n", mg->mg_flags); + Perl_dump_indent(aTHX_ level, file, " MG_FLAGS = 0x%02X\n", mg->mg_flags); if (mg->mg_flags & MGf_TAINTEDDIR) - dump_indent(level, file, " TAINTEDDIR\n"); + Perl_dump_indent(aTHX_ level, file, " TAINTEDDIR\n"); if (mg->mg_flags & MGf_REFCOUNTED) - dump_indent(level, file, " REFCOUNTED\n"); + Perl_dump_indent(aTHX_ level, file, " REFCOUNTED\n"); if (mg->mg_flags & MGf_GSKIP) - dump_indent(level, file, " GSKIP\n"); + Perl_dump_indent(aTHX_ level, file, " GSKIP\n"); if (mg->mg_flags & MGf_MINMATCH) - dump_indent(level, file, " MINMATCH\n"); + Perl_dump_indent(aTHX_ level, file, " MINMATCH\n"); } if (mg->mg_obj) { - dump_indent(level, file, " MG_OBJ = 0x%lx\n", (long)mg->mg_obj); + Perl_dump_indent(aTHX_ level, file, " MG_OBJ = 0x%lx\n", (long)mg->mg_obj); if (mg->mg_flags & MGf_REFCOUNTED) do_sv_dump(level+2, file, mg->mg_obj, nest+1, maxnest, dumpops, pvlim); /* MG is already +1 */ } if (mg->mg_len) - dump_indent(level, file, " MG_LEN = %d\n", mg->mg_len); + Perl_dump_indent(aTHX_ level, file, " MG_LEN = %d\n", mg->mg_len); if (mg->mg_ptr) { - dump_indent(level, file, " MG_PTR = 0x%lx", (long)mg->mg_ptr); + Perl_dump_indent(aTHX_ level, file, " MG_PTR = 0x%lx", (long)mg->mg_ptr); if (mg->mg_len >= 0) { SV *sv = newSVpvn("", 0); PerlIO_printf(file, " %s", pv_display(sv, mg->mg_ptr, mg->mg_len, 0, pvlim)); @@ -704,7 +704,7 @@ Perl_magic_dump(pTHX_ MAGIC *mg) void Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv) { - dump_indent(level, file, "%s = 0x%lx", name, (long)sv); + Perl_dump_indent(aTHX_ level, file, "%s = 0x%lx", name, (long)sv); if (sv && HvNAME(sv)) PerlIO_printf(file, "\t\"%s\"\n", HvNAME(sv)); else @@ -714,7 +714,7 @@ Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv) void Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv) { - dump_indent(level, file, "%s = 0x%lx", name, (long)sv); + Perl_dump_indent(aTHX_ level, file, "%s = 0x%lx", name, (long)sv); if (sv && GvNAME(sv)) PerlIO_printf(file, "\t\"%s\"\n", GvNAME(sv)); else @@ -724,7 +724,7 @@ Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv) void Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv) { - dump_indent(level, file, "%s = 0x%lx", name, (long)sv); + Perl_dump_indent(aTHX_ level, file, "%s = 0x%lx", name, (long)sv); if (sv && GvNAME(sv)) { PerlIO_printf(file, "\t\""); if (GvSTASH(sv) && HvNAME(GvSTASH(sv))) @@ -746,14 +746,14 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo STRLEN n_a; if (!sv) { - dump_indent(level, file, "SV = 0\n"); + Perl_dump_indent(aTHX_ level, file, "SV = 0\n"); return; } flags = SvFLAGS(sv); type = SvTYPE(sv); - sv_setpvf(d, "(0x%lx) at 0x%lx\n%*s REFCNT = %ld\n%*s FLAGS = (", + Perl_sv_setpvf(aTHX_ d, "(0x%lx) at 0x%lx\n%*s REFCNT = %ld\n%*s FLAGS = (", (unsigned long)SvANY(sv), (unsigned long)sv, PL_dumpindent*level, "", (long)SvREFCNT(sv), PL_dumpindent*level, ""); @@ -831,7 +831,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo sv_catpv(d, ")"); s = SvPVX(d); - dump_indent(level, file, "SV = "); + Perl_dump_indent(aTHX_ level, file, "SV = "); switch (type) { case SVt_NULL: PerlIO_printf(file, "NULL%s\n", s); @@ -887,19 +887,19 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo } if (type >= SVt_PVIV || type == SVt_IV) { if (SvIsUV(sv)) - dump_indent(level, file, " UV = %lu", (unsigned long)SvUVX(sv)); + Perl_dump_indent(aTHX_ level, file, " UV = %lu", (unsigned long)SvUVX(sv)); else - dump_indent(level, file, " IV = %ld", (long)SvIVX(sv)); + Perl_dump_indent(aTHX_ level, file, " IV = %ld", (long)SvIVX(sv)); if (SvOOK(sv)) PerlIO_printf(file, " (OFFSET)"); PerlIO_putc(file, '\n'); } if (type >= SVt_PVNV || type == SVt_NV) { SET_NUMERIC_STANDARD(); - dump_indent(level, file, " NV = %.*g\n", DBL_DIG, SvNVX(sv)); + Perl_dump_indent(aTHX_ level, file, " NV = %.*g\n", DBL_DIG, SvNVX(sv)); } if (SvROK(sv)) { - dump_indent(level, file, " RV = 0x%lx\n", (long)SvRV(sv)); + Perl_dump_indent(aTHX_ level, file, " RV = 0x%lx\n", (long)SvRV(sv)); if (nest < maxnest) do_sv_dump(level+1, file, SvRV(sv), nest+1, maxnest, dumpops, pvlim); return; @@ -908,15 +908,15 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo return; if (type <= SVt_PVLV) { if (SvPVX(sv)) { - dump_indent(level, file," PV = 0x%lx ", (long)SvPVX(sv)); + Perl_dump_indent(aTHX_ level, file," PV = 0x%lx ", (long)SvPVX(sv)); if (SvOOK(sv)) PerlIO_printf(file, "( %s . ) ", pv_display(d, SvPVX(sv)-SvIVX(sv), SvIVX(sv), 0, pvlim)); PerlIO_printf(file, "%s\n", pv_display(d, SvPVX(sv), SvCUR(sv), SvLEN(sv), pvlim)); - dump_indent(level, file, " CUR = %ld\n", (long)SvCUR(sv)); - dump_indent(level, file, " LEN = %ld\n", (long)SvLEN(sv)); + Perl_dump_indent(aTHX_ level, file, " CUR = %ld\n", (long)SvCUR(sv)); + Perl_dump_indent(aTHX_ level, file, " LEN = %ld\n", (long)SvLEN(sv)); } else - dump_indent(level, file, " PV = 0\n"); + Perl_dump_indent(aTHX_ level, file, " PV = 0\n"); } if (type >= SVt_PVMG) { if (SvMAGIC(sv)) @@ -926,43 +926,43 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo } switch (type) { case SVt_PVLV: - dump_indent(level, file, " TYPE = %c\n", LvTYPE(sv)); - dump_indent(level, file, " TARGOFF = %ld\n", (long)LvTARGOFF(sv)); - dump_indent(level, file, " TARGLEN = %ld\n", (long)LvTARGLEN(sv)); - dump_indent(level, file, " TARG = 0x%lx\n", (long)LvTARG(sv)); + Perl_dump_indent(aTHX_ level, file, " TYPE = %c\n", LvTYPE(sv)); + Perl_dump_indent(aTHX_ level, file, " TARGOFF = %ld\n", (long)LvTARGOFF(sv)); + Perl_dump_indent(aTHX_ level, file, " TARGLEN = %ld\n", (long)LvTARGLEN(sv)); + Perl_dump_indent(aTHX_ level, file, " TARG = 0x%lx\n", (long)LvTARG(sv)); /* XXX level+1 ??? */ do_sv_dump(level, file, LvTARG(sv), nest+1, maxnest, dumpops, pvlim); break; case SVt_PVAV: - dump_indent(level, file, " ARRAY = 0x%lx", (long)AvARRAY(sv)); + Perl_dump_indent(aTHX_ level, file, " ARRAY = 0x%lx", (long)AvARRAY(sv)); if (AvARRAY(sv) != AvALLOC(sv)) { PerlIO_printf(file, " (offset=%d)\n", (AvARRAY(sv) - AvALLOC(sv))); - dump_indent(level, file, " ALLOC = 0x%lx\n", (long)AvALLOC(sv)); + Perl_dump_indent(aTHX_ level, file, " ALLOC = 0x%lx\n", (long)AvALLOC(sv)); } else PerlIO_putc(file, '\n'); - dump_indent(level, file, " FILL = %ld\n", (long)AvFILLp(sv)); - dump_indent(level, file, " MAX = %ld\n", (long)AvMAX(sv)); - dump_indent(level, file, " ARYLEN = 0x%lx\n", (long)AvARYLEN(sv)); + Perl_dump_indent(aTHX_ level, file, " FILL = %ld\n", (long)AvFILLp(sv)); + Perl_dump_indent(aTHX_ level, file, " MAX = %ld\n", (long)AvMAX(sv)); + Perl_dump_indent(aTHX_ level, file, " ARYLEN = 0x%lx\n", (long)AvARYLEN(sv)); flags = AvFLAGS(sv); sv_setpv(d, ""); if (flags & AVf_REAL) sv_catpv(d, ",REAL"); if (flags & AVf_REIFY) sv_catpv(d, ",REIFY"); if (flags & AVf_REUSED) sv_catpv(d, ",REUSED"); - dump_indent(level, file, " FLAGS = (%s)\n", SvCUR(d) ? SvPVX(d) + 1 : ""); + Perl_dump_indent(aTHX_ level, file, " FLAGS = (%s)\n", SvCUR(d) ? SvPVX(d) + 1 : ""); if (nest < maxnest && av_len((AV*)sv) >= 0) { int count; for (count = 0; count <= av_len((AV*)sv) && count < maxnest; count++) { SV** elt = av_fetch((AV*)sv,count,0); - dump_indent(level + 1, file, "Elt No. %ld\n", (long)count); + Perl_dump_indent(aTHX_ level + 1, file, "Elt No. %ld\n", (long)count); if (elt) do_sv_dump(level+1, file, *elt, nest+1, maxnest, dumpops, pvlim); } } break; case SVt_PVHV: - dump_indent(level, file, " ARRAY = 0x%lx",(long)HvARRAY(sv)); + Perl_dump_indent(aTHX_ level, file, " ARRAY = 0x%lx",(long)HvARRAY(sv)); if (HvARRAY(sv) && HvKEYS(sv)) { /* Show distribution of HEs in the ARRAY */ int freq[200]; @@ -1004,18 +1004,18 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo theoret = HvKEYS(sv); theoret += theoret * theoret/pow2; PerlIO_putc(file, '\n'); - dump_indent(level, file, " hash quality = %.1f%%", theoret/sum*100); + Perl_dump_indent(aTHX_ level, file, " hash quality = %.1f%%", theoret/sum*100); } PerlIO_putc(file, '\n'); - dump_indent(level, file, " KEYS = %ld\n", (long)HvKEYS(sv)); - dump_indent(level, file, " FILL = %ld\n", (long)HvFILL(sv)); - dump_indent(level, file, " MAX = %ld\n", (long)HvMAX(sv)); - dump_indent(level, file, " RITER = %ld\n", (long)HvRITER(sv)); - dump_indent(level, file, " EITER = 0x%lx\n",(long) HvEITER(sv)); + Perl_dump_indent(aTHX_ level, file, " KEYS = %ld\n", (long)HvKEYS(sv)); + Perl_dump_indent(aTHX_ level, file, " FILL = %ld\n", (long)HvFILL(sv)); + Perl_dump_indent(aTHX_ level, file, " MAX = %ld\n", (long)HvMAX(sv)); + Perl_dump_indent(aTHX_ level, file, " RITER = %ld\n", (long)HvRITER(sv)); + Perl_dump_indent(aTHX_ level, file, " EITER = 0x%lx\n",(long) HvEITER(sv)); if (HvPMROOT(sv)) - dump_indent(level, file, " PMROOT = 0x%lx\n",(long)HvPMROOT(sv)); + Perl_dump_indent(aTHX_ level, file, " PMROOT = 0x%lx\n",(long)HvPMROOT(sv)); if (HvNAME(sv)) - dump_indent(level, file, " NAME = \"%s\"\n", HvNAME(sv)); + Perl_dump_indent(aTHX_ level, file, " NAME = \"%s\"\n", HvNAME(sv)); if (nest < maxnest && !HvEITER(sv)) { /* Try to preserve iterator */ HE *he; HV *hv = (HV*)sv; @@ -1030,7 +1030,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo key = hv_iterkey(he, &len); elt = hv_iterval(hv, he); - dump_indent(level+1, file, "Elt %s HASH = 0x%lx\n", pv_display(d, key, len, 0, pvlim), hash); + Perl_dump_indent(aTHX_ level+1, file, "Elt %s HASH = 0x%lx\n", pv_display(d, key, len, 0, pvlim), hash); do_sv_dump(level+1, file, elt, nest+1, maxnest, dumpops, pvlim); } hv_iterinit(hv); /* Return to status quo */ @@ -1038,28 +1038,28 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo break; case SVt_PVCV: if (SvPOK(sv)) - dump_indent(level, file, " PROTOTYPE = \"%s\"\n", SvPV(sv,n_a)); + Perl_dump_indent(aTHX_ level, file, " PROTOTYPE = \"%s\"\n", SvPV(sv,n_a)); /* FALL THROUGH */ case SVt_PVFM: do_hv_dump(level, file, " COMP_STASH", CvSTASH(sv)); if (CvSTART(sv)) - dump_indent(level, file, " START = 0x%lx ===> %d\n", (long)CvSTART(sv), CvSTART(sv)->op_seq); - dump_indent(level, file, " ROOT = 0x%lx\n", (long)CvROOT(sv)); + Perl_dump_indent(aTHX_ level, file, " START = 0x%lx ===> %d\n", (long)CvSTART(sv), CvSTART(sv)->op_seq); + Perl_dump_indent(aTHX_ level, file, " ROOT = 0x%lx\n", (long)CvROOT(sv)); if (CvROOT(sv) && dumpops) do_op_dump(level+1, file, CvROOT(sv)); - dump_indent (level, file, " XSUB = 0x%lx\n", (long)CvXSUB(sv)); - dump_indent (level, file, " XSUBANY = %ld\n", (long)CvXSUBANY(sv).any_i32); + Perl_dump_indent(aTHX_ level, file, " XSUB = 0x%lx\n", (long)CvXSUB(sv)); + Perl_dump_indent(aTHX_ level, file, " XSUBANY = %ld\n", (long)CvXSUBANY(sv).any_i32); do_gvgv_dump(level, file, " GVGV::GV", CvGV(sv)); - do_gv_dump (level, file, " FILEGV", CvFILEGV(sv)); - dump_indent (level, file, " DEPTH = %ld\n", (long)CvDEPTH(sv)); + do_gv_dump(level, file, " FILEGV", CvFILEGV(sv)); + Perl_dump_indent(aTHX_ level, file, " DEPTH = %ld\n", (long)CvDEPTH(sv)); #ifdef USE_THREADS - dump_indent (level, file, " MUTEXP = 0x%lx\n", (long)CvMUTEXP(sv)); - dump_indent (level, file, " OWNER = 0x%lx\n", (long)CvOWNER(sv)); + Perl_dump_indent(aTHX_ level, file, " MUTEXP = 0x%lx\n", (long)CvMUTEXP(sv)); + Perl_dump_indent(aTHX_ level, file, " OWNER = 0x%lx\n", (long)CvOWNER(sv)); #endif /* USE_THREADS */ - dump_indent (level, file, " FLAGS = 0x%lx\n", (unsigned long)CvFLAGS(sv)); + Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%lx\n", (unsigned long)CvFLAGS(sv)); if (type == SVt_PVFM) - dump_indent(level, file, " LINES = %ld\n", (long)FmLINES(sv)); - dump_indent(level, file, " PADLIST = 0x%lx\n", (long)CvPADLIST(sv)); + Perl_dump_indent(aTHX_ level, file, " LINES = %ld\n", (long)FmLINES(sv)); + Perl_dump_indent(aTHX_ level, file, " PADLIST = 0x%lx\n", (long)CvPADLIST(sv)); if (nest < maxnest && CvPADLIST(sv)) { AV* padlist = CvPADLIST(sv); AV* pad_name = (AV*)*av_fetch(padlist, 0, FALSE); @@ -1070,7 +1070,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo for (ix = 1; ix <= AvFILL(pad_name); ix++) { if (SvPOK(pname[ix])) - dump_indent(level, /* %5d below is enough whitespace. */ + Perl_dump_indent(aTHX_ level, /* %5d below is enough whitespace. */ file, "%5d. 0x%lx (%s\"%s\" %ld-%ld)\n", ix, ppad[ix], @@ -1082,7 +1082,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo } { CV *outside = CvOUTSIDE(sv); - dump_indent(level, file, " OUTSIDE = 0x%lx (%s)\n", + Perl_dump_indent(aTHX_ level, file, " OUTSIDE = 0x%lx (%s)\n", (long)outside, (!outside ? "null" : CvANON(outside) ? "ANON" @@ -1094,47 +1094,47 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo do_sv_dump(level+1, file, (SV*)CvOUTSIDE(sv), nest+1, maxnest, dumpops, pvlim); break; case SVt_PVGV: - dump_indent(level, file, " NAME = \"%s\"\n", GvNAME(sv)); - dump_indent(level, file, " NAMELEN = %ld\n", (long)GvNAMELEN(sv)); + Perl_dump_indent(aTHX_ level, file, " NAME = \"%s\"\n", GvNAME(sv)); + Perl_dump_indent(aTHX_ level, file, " NAMELEN = %ld\n", (long)GvNAMELEN(sv)); do_hv_dump (level, file, " GvSTASH", GvSTASH(sv)); - dump_indent(level, file, " GP = 0x%lx\n", (long)GvGP(sv)); - dump_indent(level, file, " SV = 0x%lx\n", (long)GvSV(sv)); - dump_indent(level, file, " REFCNT = %ld\n", (long)GvREFCNT(sv)); - dump_indent(level, file, " IO = 0x%lx\n", (long)GvIOp(sv)); - dump_indent(level, file, " FORM = 0x%lx\n", (long)GvFORM(sv)); - dump_indent(level, file, " AV = 0x%lx\n", (long)GvAV(sv)); - dump_indent(level, file, " HV = 0x%lx\n", (long)GvHV(sv)); - dump_indent(level, file, " CV = 0x%lx\n", (long)GvCV(sv)); - dump_indent(level, file, " CVGEN = 0x%lx\n", (long)GvCVGEN(sv)); - dump_indent(level, file, " LASTEXPR = %ld\n", (long)GvLASTEXPR(sv)); - dump_indent(level, file, " LINE = %ld\n", (long)GvLINE(sv)); - dump_indent(level, file, " FLAGS = 0x%x\n", (int)GvFLAGS(sv)); + Perl_dump_indent(aTHX_ level, file, " GP = 0x%lx\n", (long)GvGP(sv)); + Perl_dump_indent(aTHX_ level, file, " SV = 0x%lx\n", (long)GvSV(sv)); + Perl_dump_indent(aTHX_ level, file, " REFCNT = %ld\n", (long)GvREFCNT(sv)); + Perl_dump_indent(aTHX_ level, file, " IO = 0x%lx\n", (long)GvIOp(sv)); + Perl_dump_indent(aTHX_ level, file, " FORM = 0x%lx\n", (long)GvFORM(sv)); + Perl_dump_indent(aTHX_ level, file, " AV = 0x%lx\n", (long)GvAV(sv)); + Perl_dump_indent(aTHX_ level, file, " HV = 0x%lx\n", (long)GvHV(sv)); + Perl_dump_indent(aTHX_ level, file, " CV = 0x%lx\n", (long)GvCV(sv)); + Perl_dump_indent(aTHX_ level, file, " CVGEN = 0x%lx\n", (long)GvCVGEN(sv)); + Perl_dump_indent(aTHX_ level, file, " LASTEXPR = %ld\n", (long)GvLASTEXPR(sv)); + Perl_dump_indent(aTHX_ level, file, " LINE = %ld\n", (long)GvLINE(sv)); + Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%x\n", (int)GvFLAGS(sv)); do_gv_dump (level, file, " FILEGV", GvFILEGV(sv)); do_gv_dump (level, file, " EGV", GvEGV(sv)); break; case SVt_PVIO: - dump_indent(level, file, " IFP = 0x%lx\n", (long)IoIFP(sv)); - dump_indent(level, file, " OFP = 0x%lx\n", (long)IoOFP(sv)); - dump_indent(level, file, " DIRP = 0x%lx\n", (long)IoDIRP(sv)); - dump_indent(level, file, " LINES = %ld\n", (long)IoLINES(sv)); - dump_indent(level, file, " PAGE = %ld\n", (long)IoPAGE(sv)); - dump_indent(level, file, " PAGE_LEN = %ld\n", (long)IoPAGE_LEN(sv)); - dump_indent(level, file, " LINES_LEFT = %ld\n", (long)IoLINES_LEFT(sv)); + Perl_dump_indent(aTHX_ level, file, " IFP = 0x%lx\n", (long)IoIFP(sv)); + Perl_dump_indent(aTHX_ level, file, " OFP = 0x%lx\n", (long)IoOFP(sv)); + Perl_dump_indent(aTHX_ level, file, " DIRP = 0x%lx\n", (long)IoDIRP(sv)); + Perl_dump_indent(aTHX_ level, file, " LINES = %ld\n", (long)IoLINES(sv)); + Perl_dump_indent(aTHX_ level, file, " PAGE = %ld\n", (long)IoPAGE(sv)); + Perl_dump_indent(aTHX_ level, file, " PAGE_LEN = %ld\n", (long)IoPAGE_LEN(sv)); + Perl_dump_indent(aTHX_ level, file, " LINES_LEFT = %ld\n", (long)IoLINES_LEFT(sv)); if (IoTOP_NAME(sv)) - dump_indent(level, file, " TOP_NAME = \"%s\"\n", IoTOP_NAME(sv)); + Perl_dump_indent(aTHX_ level, file, " TOP_NAME = \"%s\"\n", IoTOP_NAME(sv)); do_gv_dump (level, file, " TOP_GV", IoTOP_GV(sv)); if (IoFMT_NAME(sv)) - dump_indent(level, file, " FMT_NAME = \"%s\"\n", IoFMT_NAME(sv)); + Perl_dump_indent(aTHX_ level, file, " FMT_NAME = \"%s\"\n", IoFMT_NAME(sv)); do_gv_dump (level, file, " FMT_GV", IoFMT_GV(sv)); if (IoBOTTOM_NAME(sv)) - dump_indent(level, file, " BOTTOM_NAME = \"%s\"\n", IoBOTTOM_NAME(sv)); + Perl_dump_indent(aTHX_ level, file, " BOTTOM_NAME = \"%s\"\n", IoBOTTOM_NAME(sv)); do_gv_dump (level, file, " BOTTOM_GV", IoBOTTOM_GV(sv)); - dump_indent(level, file, " SUBPROCESS = %ld\n", (long)IoSUBPROCESS(sv)); + Perl_dump_indent(aTHX_ level, file, " SUBPROCESS = %ld\n", (long)IoSUBPROCESS(sv)); if (isPRINT(IoTYPE(sv))) - dump_indent(level, file, " TYPE = '%c'\n", IoTYPE(sv)); + Perl_dump_indent(aTHX_ level, file, " TYPE = '%c'\n", IoTYPE(sv)); else - dump_indent(level, file, " TYPE = '\\%o'\n", IoTYPE(sv)); - dump_indent(level, file, " FLAGS = 0x%lx\n", (long)IoFLAGS(sv)); + Perl_dump_indent(aTHX_ level, file, " TYPE = '\\%o'\n", IoTYPE(sv)); + Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%lx\n", (long)IoFLAGS(sv)); break; } } diff --git a/ebcdic.c b/ebcdic.c index 14e3955..d743510 100644 --- a/ebcdic.c +++ b/ebcdic.c @@ -15,7 +15,7 @@ ebcdic_control(int ch) ch = toupper(ch); if ((ctlp = strchr(controllablechars, ch)) == 0) { - die("unrecognised control character '%c'\n", ch); + Perl_die(aTHX_ "unrecognised control character '%c'\n", ch); } if (ctlp == controllablechars) @@ -28,6 +28,6 @@ ebcdic_control(int ch) else if (0 < ch && ch < (sizeof(controllablechars) - 1)) return(controllablechars[ch+1]); else - die("invalid control request: '\\%03o'\n", ch & 0xFF); + Perl_die(aTHX_ "invalid control request: '\\%03o'\n", ch & 0xFF); } } diff --git a/embed.h b/embed.h index f7cf5bc..2db477c 100644 --- a/embed.h +++ b/embed.h @@ -1,5 +1,5 @@ /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by embed.pl from global.sym, pp.sym, intrpvar.h, + This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -10,15 +10,19 @@ /* Hide global symbols */ #if !defined(PERL_OBJECT) +#if !defined(PERL_IMPLICIT_CONTEXT) -#define ErrorNo Perl_ErrorNo -#define GetVars Perl_GetVars -#define Gv_AMupdate Perl_Gv_AMupdate #define amagic_call Perl_amagic_call +#define Gv_AMupdate Perl_Gv_AMupdate #define append_elem Perl_append_elem #define append_list Perl_append_list #define apply Perl_apply #define assertref Perl_assertref +#define avhv_exists_ent Perl_avhv_exists_ent +#define avhv_fetch_ent Perl_avhv_fetch_ent +#define avhv_iternext Perl_avhv_iternext +#define avhv_iterval Perl_avhv_iterval +#define avhv_keys Perl_avhv_keys #define av_clear Perl_av_clear #define av_extend Perl_av_extend #define av_fake Perl_av_fake @@ -33,151 +37,120 @@ #define av_store Perl_av_store #define av_undef Perl_av_undef #define av_unshift Perl_av_unshift -#define avhv_exists_ent Perl_avhv_exists_ent -#define avhv_fetch_ent Perl_avhv_fetch_ent -#define avhv_iternext Perl_avhv_iternext -#define avhv_iterval Perl_avhv_iterval -#define avhv_keys Perl_avhv_keys #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 boot_core_UNIVERSAL Perl_boot_core_UNIVERSAL -#define bset_obj_store Perl_bset_obj_store -#define call_argv Perl_call_argv -#define call_atexit Perl_call_atexit #define call_list Perl_call_list -#define call_method Perl_call_method -#define call_pv Perl_call_pv -#define call_sv Perl_call_sv #define cando Perl_cando +#define cast_ulong Perl_cast_ulong #define cast_i32 Perl_cast_i32 #define cast_iv Perl_cast_iv -#define cast_ulong Perl_cast_ulong #define cast_uv Perl_cast_uv -#define ck_anoncode Perl_ck_anoncode -#define ck_bitop Perl_ck_bitop -#define ck_concat Perl_ck_concat -#define ck_defined Perl_ck_defined -#define ck_delete Perl_ck_delete -#define ck_eof Perl_ck_eof -#define ck_eval Perl_ck_eval -#define ck_exec Perl_ck_exec -#define ck_exists Perl_ck_exists -#define ck_ftst Perl_ck_ftst -#define ck_fun Perl_ck_fun -#define ck_fun_locale Perl_ck_fun_locale -#define ck_glob Perl_ck_glob -#define ck_grep Perl_ck_grep -#define ck_index Perl_ck_index -#define ck_lengthconst Perl_ck_lengthconst -#define ck_lfun Perl_ck_lfun -#define ck_listiob Perl_ck_listiob -#define ck_match Perl_ck_match -#define ck_null Perl_ck_null -#define ck_repeat Perl_ck_repeat -#define ck_require Perl_ck_require -#define ck_rfun Perl_ck_rfun -#define ck_rvconst Perl_ck_rvconst -#define ck_scmp Perl_ck_scmp -#define ck_select Perl_ck_select -#define ck_shift Perl_ck_shift -#define ck_sort Perl_ck_sort -#define ck_spair Perl_ck_spair -#define ck_split Perl_ck_split -#define ck_subr Perl_ck_subr -#define ck_svconst Perl_ck_svconst -#define ck_trunc Perl_ck_trunc +#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) +#define my_chsize Perl_my_chsize +#endif +#if defined(USE_THREADS) #define condpair_magic Perl_condpair_magic +#endif #define convert Perl_convert #define croak Perl_croak +#if defined(PERL_IMPLICIT_CONTEXT) +#define croak_nocontext Perl_croak_nocontext +#define die_nocontext Perl_die_nocontext +#define form_nocontext Perl_form_nocontext +#define warn_nocontext Perl_warn_nocontext +#define newSVpvf_nocontext Perl_newSVpvf_nocontext +#define sv_catpvf_nocontext Perl_sv_catpvf_nocontext +#define sv_setpvf_nocontext Perl_sv_setpvf_nocontext +#define sv_catpvf_mg_nocontext Perl_sv_catpvf_mg_nocontext +#define sv_setpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext +#endif #define cv_ckproto Perl_cv_ckproto #define cv_clone Perl_cv_clone #define cv_const_sv Perl_cv_const_sv +#define op_const_sv Perl_op_const_sv #define cv_undef Perl_cv_undef #define cx_dump Perl_cx_dump +#define filter_add Perl_filter_add +#define filter_del Perl_filter_del +#define filter_read Perl_filter_read +#define get_op_descs Perl_get_op_descs +#define get_op_names Perl_get_op_names +#define get_no_modify Perl_get_no_modify +#define get_opargs Perl_get_opargs #define cxinc Perl_cxinc #define deb Perl_deb #define deb_growlevel Perl_deb_growlevel -#define debop Perl_debop #define debprofdump Perl_debprofdump +#define debop Perl_debop #define debstack Perl_debstack #define debstackptrs Perl_debstackptrs -#define default_protect Perl_default_protect #define delimcpy Perl_delimcpy #define deprecate Perl_deprecate #define die Perl_die #define die_where Perl_die_where +#define dounwind Perl_dounwind #define do_aexec Perl_do_aexec #define do_binmode Perl_do_binmode -#define do_chomp Perl_do_chomp #define do_chop Perl_do_chop #define do_close Perl_do_close #define do_eof Perl_do_eof #define do_exec Perl_do_exec +#if !defined(WIN32) #define do_exec3 Perl_do_exec3 +#endif #define do_execfree Perl_do_execfree -#define do_gv_dump Perl_do_gv_dump -#define do_gvgv_dump Perl_do_gvgv_dump -#define do_hv_dump Perl_do_hv_dump +#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) #define do_ipcctl Perl_do_ipcctl #define do_ipcget Perl_do_ipcget -#define do_join Perl_do_join -#define do_kv Perl_do_kv -#define do_magic_dump Perl_do_magic_dump #define do_msgrcv Perl_do_msgrcv #define do_msgsnd Perl_do_msgsnd -#define do_op_dump Perl_do_op_dump +#define do_semop Perl_do_semop +#define do_shmio Perl_do_shmio +#endif +#define do_join Perl_do_join +#define do_kv Perl_do_kv #define do_open Perl_do_open #define do_pipe Perl_do_pipe -#define do_pmop_dump Perl_do_pmop_dump #define do_print Perl_do_print #define do_readline Perl_do_readline +#define do_chomp Perl_do_chomp #define do_seek Perl_do_seek -#define do_semop Perl_do_semop -#define do_shmio Perl_do_shmio #define do_sprintf Perl_do_sprintf -#define do_sv_dump Perl_do_sv_dump #define do_sysseek Perl_do_sysseek #define do_tell Perl_do_tell #define do_trans Perl_do_trans #define do_vecset Perl_do_vecset #define do_vop Perl_do_vop #define dofile Perl_dofile -#define dounwind Perl_dounwind #define dowantarray Perl_dowantarray #define dump_all Perl_dump_all #define dump_eval Perl_dump_eval +#if defined(DUMP_FDS) #define dump_fds Perl_dump_fds +#endif #define dump_form Perl_dump_form -#define dump_indent Perl_dump_indent -#define dump_mstats Perl_dump_mstats +#define gv_dump Perl_gv_dump +#define op_dump Perl_op_dump +#define pmop_dump Perl_pmop_dump #define dump_packsubs Perl_dump_packsubs #define dump_sub Perl_dump_sub -#define eval_pv Perl_eval_pv -#define eval_sv Perl_eval_sv #define fbm_compile Perl_fbm_compile #define fbm_instr Perl_fbm_instr -#define filter_add Perl_filter_add -#define filter_del Perl_filter_del -#define filter_read Perl_filter_read #define find_script Perl_find_script +#if defined(USE_THREADS) #define find_threadsv Perl_find_threadsv -#define fold_constants Perl_fold_constants +#endif #define force_list Perl_force_list +#define fold_constants Perl_fold_constants #define form Perl_form #define free_tmps Perl_free_tmps #define gen_constant_list Perl_gen_constant_list -#define get_av Perl_get_av -#define get_cv Perl_get_cv -#define get_hv Perl_get_hv -#define get_no_modify Perl_get_no_modify -#define get_op_descs Perl_get_op_descs -#define get_op_names Perl_get_op_names -#define get_opargs Perl_get_opargs -#define get_sv Perl_get_sv -#define get_vtbl Perl_get_vtbl +#if !defined(HAS_GETENV_LEN) #define getenv_len Perl_getenv_len +#endif #define gp_free Perl_gp_free #define gp_ref Perl_gp_ref #define gv_AVadd Perl_gv_AVadd @@ -185,7 +158,6 @@ #define gv_IOadd Perl_gv_IOadd #define gv_autoload4 Perl_gv_autoload4 #define gv_check Perl_gv_check -#define gv_dump Perl_gv_dump #define gv_efullname Perl_gv_efullname #define gv_efullname3 Perl_gv_efullname3 #define gv_fetchfile Perl_gv_fetchfile @@ -222,38 +194,42 @@ #define ibcmp Perl_ibcmp #define ibcmp_locale Perl_ibcmp_locale #define ingroup Perl_ingroup -#define init_i18nl10n Perl_init_i18nl10n -#define init_i18nl14n Perl_init_i18nl14n #define init_stacks Perl_init_stacks -#define instr Perl_instr #define intro_my Perl_intro_my -#define invert Perl_invert +#define instr Perl_instr #define io_close Perl_io_close +#define invert Perl_invert #define is_uni_alnum Perl_is_uni_alnum -#define is_uni_alnum_lc Perl_is_uni_alnum_lc +#define is_uni_idfirst Perl_is_uni_idfirst #define is_uni_alpha Perl_is_uni_alpha -#define is_uni_alpha_lc Perl_is_uni_alpha_lc +#define is_uni_space Perl_is_uni_space #define is_uni_digit Perl_is_uni_digit -#define is_uni_digit_lc Perl_is_uni_digit_lc -#define is_uni_idfirst Perl_is_uni_idfirst -#define is_uni_idfirst_lc Perl_is_uni_idfirst_lc +#define is_uni_upper Perl_is_uni_upper #define is_uni_lower Perl_is_uni_lower -#define is_uni_lower_lc Perl_is_uni_lower_lc #define is_uni_print Perl_is_uni_print -#define is_uni_print_lc Perl_is_uni_print_lc -#define is_uni_space Perl_is_uni_space +#define to_uni_upper Perl_to_uni_upper +#define to_uni_title Perl_to_uni_title +#define to_uni_lower Perl_to_uni_lower +#define is_uni_alnum_lc Perl_is_uni_alnum_lc +#define is_uni_idfirst_lc Perl_is_uni_idfirst_lc +#define is_uni_alpha_lc Perl_is_uni_alpha_lc #define is_uni_space_lc Perl_is_uni_space_lc -#define is_uni_upper Perl_is_uni_upper +#define is_uni_digit_lc Perl_is_uni_digit_lc #define is_uni_upper_lc Perl_is_uni_upper_lc +#define is_uni_lower_lc Perl_is_uni_lower_lc +#define is_uni_print_lc Perl_is_uni_print_lc +#define to_uni_upper_lc Perl_to_uni_upper_lc +#define to_uni_title_lc Perl_to_uni_title_lc +#define to_uni_lower_lc Perl_to_uni_lower_lc #define is_utf8_alnum Perl_is_utf8_alnum +#define is_utf8_idfirst Perl_is_utf8_idfirst #define is_utf8_alpha Perl_is_utf8_alpha +#define is_utf8_space Perl_is_utf8_space #define is_utf8_digit Perl_is_utf8_digit -#define is_utf8_idfirst Perl_is_utf8_idfirst +#define is_utf8_upper Perl_is_utf8_upper #define is_utf8_lower Perl_is_utf8_lower -#define is_utf8_mark Perl_is_utf8_mark #define is_utf8_print Perl_is_utf8_print -#define is_utf8_space Perl_is_utf8_space -#define is_utf8_upper Perl_is_utf8_upper +#define is_utf8_mark Perl_is_utf8_mark #define jmaybe Perl_jmaybe #define keyword Perl_keyword #define leave_scope Perl_leave_scope @@ -264,11 +240,10 @@ #define listkids Perl_listkids #define localize Perl_localize #define looks_like_number Perl_looks_like_number -#define magic_clear_all_env Perl_magic_clear_all_env #define magic_clearenv Perl_magic_clearenv +#define magic_clear_all_env Perl_magic_clear_all_env #define magic_clearpack Perl_magic_clearpack #define magic_clearsig Perl_magic_clearsig -#define magic_dump Perl_magic_dump #define magic_existspack Perl_magic_existspack #define magic_freeregexp Perl_magic_freeregexp #define magic_get Perl_magic_get @@ -283,24 +258,26 @@ #define magic_gettaint Perl_magic_gettaint #define magic_getuvar Perl_magic_getuvar #define magic_getvec Perl_magic_getvec -#define magic_killbackrefs Perl_magic_killbackrefs #define magic_len Perl_magic_len +#if defined(USE_THREADS) #define magic_mutexfree Perl_magic_mutexfree +#endif #define magic_nextpack Perl_magic_nextpack #define magic_regdata_cnt Perl_magic_regdata_cnt #define magic_regdatum_get Perl_magic_regdatum_get #define magic_set Perl_magic_set -#define magic_set_all_env Perl_magic_set_all_env #define magic_setamagic Perl_magic_setamagic #define magic_setarylen Perl_magic_setarylen #define magic_setbm Perl_magic_setbm -#define magic_setcollxfrm Perl_magic_setcollxfrm #define magic_setdbline Perl_magic_setdbline +#if defined(USE_LOCALE_COLLATE) +#define magic_setcollxfrm Perl_magic_setcollxfrm +#endif #define magic_setdefelem Perl_magic_setdefelem #define magic_setenv Perl_magic_setenv #define magic_setfm Perl_magic_setfm -#define magic_setglob Perl_magic_setglob #define magic_setisa Perl_magic_setisa +#define magic_setglob Perl_magic_setglob #define magic_setmglob Perl_magic_setmglob #define magic_setnkeys Perl_magic_setnkeys #define magic_setpack Perl_magic_setpack @@ -310,12 +287,17 @@ #define magic_settaint Perl_magic_settaint #define magic_setuvar Perl_magic_setuvar #define magic_setvec Perl_magic_setvec +#define magic_set_all_env Perl_magic_set_all_env #define magic_sizepack Perl_magic_sizepack #define magic_wipepack Perl_magic_wipepack #define magicname Perl_magicname +#if defined(MYMALLOC) #define malloced_size Perl_malloced_size +#endif #define markstack_grow Perl_markstack_grow +#if defined(USE_LOCALE_COLLATE) #define mem_collxfrm Perl_mem_collxfrm +#endif #define mess Perl_mess #define mg_clear Perl_mg_clear #define mg_copy Perl_mg_copy @@ -329,100 +311,679 @@ #define mod Perl_mod #define moreswitches Perl_moreswitches #define my Perl_my +#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY) #define my_bcopy Perl_my_bcopy +#endif +#if !defined(HAS_BZERO) && !defined(HAS_MEMSET) #define my_bzero Perl_my_bzero -#define my_chsize Perl_my_chsize +#endif #define my_exit Perl_my_exit #define my_failure_exit Perl_my_failure_exit #define my_fflush_all Perl_my_fflush_all -#define my_htonl Perl_my_htonl #define my_lstat Perl_my_lstat +#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP) #define my_memcmp Perl_my_memcmp +#endif +#if !defined(HAS_MEMSET) #define my_memset Perl_my_memset -#define my_ntohl Perl_my_ntohl +#endif +#if !defined(PERL_OBJECT) #define my_pclose Perl_my_pclose #define my_popen Perl_my_popen +#endif #define my_setenv Perl_my_setenv #define my_stat Perl_my_stat +#if defined(MYSWAP) #define my_swap Perl_my_swap +#define my_htonl Perl_my_htonl +#define my_ntohl Perl_my_ntohl +#endif #define my_unexec Perl_my_unexec -#define newANONHASH Perl_newANONHASH #define newANONLIST Perl_newANONLIST +#define newANONHASH Perl_newANONHASH #define newANONSUB Perl_newANONSUB #define newASSIGNOP Perl_newASSIGNOP -#define newAV Perl_newAV -#define newAVREF Perl_newAVREF -#define newBINOP Perl_newBINOP #define newCONDOP Perl_newCONDOP #define newCONSTSUB Perl_newCONSTSUB -#define newCVREF Perl_newCVREF #define newFORM Perl_newFORM #define newFOROP Perl_newFOROP -#define newGVOP Perl_newGVOP -#define newGVREF Perl_newGVREF -#define newGVgen Perl_newGVgen -#define newHV Perl_newHV -#define newHVREF Perl_newHVREF -#define newHVhv Perl_newHVhv -#define newIO Perl_newIO -#define newLISTOP Perl_newLISTOP #define newLOGOP Perl_newLOGOP #define newLOOPEX Perl_newLOOPEX #define newLOOPOP Perl_newLOOPOP #define newNULLLIST Perl_newNULLLIST #define newOP Perl_newOP -#define newPMOP Perl_newPMOP #define newPROG Perl_newPROG -#define newPVOP Perl_newPVOP #define newRANGE Perl_newRANGE -#define newRV Perl_newRV -#define newRV_noinc Perl_newRV_noinc #define newSLICEOP Perl_newSLICEOP #define newSTATEOP Perl_newSTATEOP #define newSUB Perl_newSUB +#define newXS Perl_newXS +#define newAV Perl_newAV +#define newAVREF Perl_newAVREF +#define newBINOP Perl_newBINOP +#define newCVREF Perl_newCVREF +#define newGVOP Perl_newGVOP +#define newGVgen Perl_newGVgen +#define newGVREF Perl_newGVREF +#define newHVREF Perl_newHVREF +#define newHV Perl_newHV +#define newHVhv Perl_newHVhv +#define newIO Perl_newIO +#define newLISTOP Perl_newLISTOP +#define newPMOP Perl_newPMOP +#define newPVOP Perl_newPVOP +#define newRV Perl_newRV +#define newRV_noinc Perl_newRV_noinc #define newSV Perl_newSV -#define newSVOP Perl_newSVOP #define newSVREF Perl_newSVREF +#define newSVOP Perl_newSVOP #define newSViv Perl_newSViv #define newSVnv Perl_newSVnv #define newSVpv Perl_newSVpv -#define newSVpvf Perl_newSVpvf #define newSVpvn Perl_newSVpvn +#define newSVpvf Perl_newSVpvf #define newSVrv Perl_newSVrv #define newSVsv Perl_newSVsv #define newUNOP Perl_newUNOP #define newWHILEOP Perl_newWHILEOP -#define newXS Perl_newXS -#define new_collate Perl_new_collate -#define new_ctype Perl_new_ctype -#define new_numeric Perl_new_numeric -#define new_stackinfo Perl_new_stackinfo +#if defined(USE_THREADS) #define new_struct_thread Perl_new_struct_thread +#endif +#define new_stackinfo Perl_new_stackinfo #define nextargv Perl_nextargv #define ninstr Perl_ninstr -#define oopsAV Perl_oopsAV #define oopsCV Perl_oopsCV -#define oopsHV Perl_oopsHV -#define op_const_sv Perl_op_const_sv -#define op_dump Perl_op_dump #define op_free Perl_op_free #define package Perl_package #define pad_alloc Perl_pad_alloc #define pad_allocmy Perl_pad_allocmy #define pad_findmy Perl_pad_findmy -#define pad_free Perl_pad_free +#define oopsAV Perl_oopsAV +#define oopsHV Perl_oopsHV #define pad_leavemy Perl_pad_leavemy -#define pad_reset Perl_pad_reset #define pad_sv Perl_pad_sv +#define pad_free Perl_pad_free +#define pad_reset Perl_pad_reset #define pad_swipe Perl_pad_swipe #define peep Perl_peep +#define call_atexit Perl_call_atexit +#define call_argv Perl_call_argv +#define call_method Perl_call_method +#define call_pv Perl_call_pv +#define call_sv Perl_call_sv +#define eval_pv Perl_eval_pv +#define eval_sv Perl_eval_sv +#define get_sv Perl_get_sv +#define get_av Perl_get_av +#define get_hv Perl_get_hv +#define get_cv Perl_get_cv +#define init_i18nl10n Perl_init_i18nl10n +#define init_i18nl14n Perl_init_i18nl14n +#define new_collate Perl_new_collate +#define new_ctype Perl_new_ctype +#define new_numeric Perl_new_numeric +#define set_numeric_local Perl_set_numeric_local +#define set_numeric_standard Perl_set_numeric_standard +#define require_pv Perl_require_pv #define pidgone Perl_pidgone #define pmflag Perl_pmflag -#define pmop_dump Perl_pmop_dump #define pmruntime Perl_pmruntime #define pmtrans Perl_pmtrans #define pop_return Perl_pop_return #define pop_scope Perl_pop_scope +#define prepend_elem Perl_prepend_elem +#define push_return Perl_push_return +#define push_scope Perl_push_scope +#define ref Perl_ref +#define refkids Perl_refkids +#define regdump Perl_regdump +#define pregexec Perl_pregexec +#define pregfree Perl_pregfree +#define pregcomp Perl_pregcomp +#define regexec_flags Perl_regexec_flags +#define regnext Perl_regnext +#define regprop Perl_regprop +#define repeatcpy Perl_repeatcpy +#define rninstr Perl_rninstr +#define rsignal Perl_rsignal +#define rsignal_restore Perl_rsignal_restore +#define rsignal_save Perl_rsignal_save +#define rsignal_state Perl_rsignal_state +#define rxres_free Perl_rxres_free +#define rxres_restore Perl_rxres_restore +#define rxres_save Perl_rxres_save +#if !defined(HAS_RENAME) +#define same_dirent Perl_same_dirent +#endif +#define savepv Perl_savepv +#define savepvn Perl_savepvn +#define savestack_grow Perl_savestack_grow +#define save_aelem Perl_save_aelem +#define save_alloc Perl_save_alloc +#define save_aptr Perl_save_aptr +#define save_ary Perl_save_ary +#define save_clearsv Perl_save_clearsv +#define save_delete Perl_save_delete +#define save_destructor Perl_save_destructor +#define save_freesv Perl_save_freesv +#define save_freeop Perl_save_freeop +#define save_freepv Perl_save_freepv +#define save_generic_svref Perl_save_generic_svref +#define save_gp Perl_save_gp +#define save_hash Perl_save_hash +#define save_helem Perl_save_helem +#define save_hints Perl_save_hints +#define save_hptr Perl_save_hptr +#define save_I16 Perl_save_I16 +#define save_I32 Perl_save_I32 +#define save_int Perl_save_int +#define save_item Perl_save_item +#define save_iv Perl_save_iv +#define save_list Perl_save_list +#define save_long Perl_save_long +#define save_nogv Perl_save_nogv +#define save_op Perl_save_op +#define save_scalar Perl_save_scalar +#define save_pptr Perl_save_pptr +#define save_re_context Perl_save_re_context +#define save_sptr Perl_save_sptr +#define save_svref Perl_save_svref +#define save_threadsv Perl_save_threadsv +#define sawparens Perl_sawparens +#define scalar Perl_scalar +#define scalarkids Perl_scalarkids +#define scalarseq Perl_scalarseq +#define scalarvoid Perl_scalarvoid +#define scan_bin Perl_scan_bin +#define scan_hex Perl_scan_hex +#define scan_num Perl_scan_num +#define scan_oct Perl_scan_oct +#define scope Perl_scope +#define screaminstr Perl_screaminstr +#if !defined(VMS) +#define setenv_getix Perl_setenv_getix +#endif +#define setdefout Perl_setdefout +#define sharepvn Perl_sharepvn +#define share_hek Perl_share_hek +#define sighandler Perl_sighandler +#define stack_grow Perl_stack_grow +#define start_subparse Perl_start_subparse +#define sub_crush_depth Perl_sub_crush_depth +#define sv_2bool Perl_sv_2bool +#define sv_2cv Perl_sv_2cv +#define sv_2io Perl_sv_2io +#define sv_2iv Perl_sv_2iv +#define sv_2mortal Perl_sv_2mortal +#define sv_2nv Perl_sv_2nv +#define sv_2pv Perl_sv_2pv +#define sv_2uv Perl_sv_2uv +#define sv_iv Perl_sv_iv +#define sv_uv Perl_sv_uv +#define sv_nv Perl_sv_nv +#define sv_pvn Perl_sv_pvn +#define sv_true Perl_sv_true +#define sv_add_arena Perl_sv_add_arena +#define sv_backoff Perl_sv_backoff +#define sv_bless Perl_sv_bless +#define sv_catpvf Perl_sv_catpvf +#define sv_catpv Perl_sv_catpv +#define sv_catpvn Perl_sv_catpvn +#define sv_catsv Perl_sv_catsv +#define sv_chop Perl_sv_chop +#define sv_clean_all Perl_sv_clean_all +#define sv_clean_objs Perl_sv_clean_objs +#define sv_clear Perl_sv_clear +#define sv_cmp Perl_sv_cmp +#define sv_cmp_locale Perl_sv_cmp_locale +#if defined(USE_LOCALE_COLLATE) +#define sv_collxfrm Perl_sv_collxfrm +#endif +#define sv_compile_2op Perl_sv_compile_2op +#define sv_dec Perl_sv_dec +#define sv_dump Perl_sv_dump +#define sv_derived_from Perl_sv_derived_from +#define sv_eq Perl_sv_eq +#define sv_free Perl_sv_free +#define sv_free_arenas Perl_sv_free_arenas +#define sv_gets Perl_sv_gets +#define sv_grow Perl_sv_grow +#define sv_inc Perl_sv_inc +#define sv_insert Perl_sv_insert +#define sv_isa Perl_sv_isa +#define sv_isobject Perl_sv_isobject +#define sv_len Perl_sv_len +#define sv_len_utf8 Perl_sv_len_utf8 +#define sv_magic Perl_sv_magic +#define sv_mortalcopy Perl_sv_mortalcopy +#define sv_newmortal Perl_sv_newmortal +#define sv_newref Perl_sv_newref +#define sv_peek Perl_sv_peek +#define sv_pos_u2b Perl_sv_pos_u2b +#define sv_pos_b2u Perl_sv_pos_b2u +#define sv_pvn_force Perl_sv_pvn_force +#define sv_reftype Perl_sv_reftype +#define sv_replace Perl_sv_replace +#define sv_report_used Perl_sv_report_used +#define sv_reset Perl_sv_reset +#define sv_setpvf Perl_sv_setpvf +#define sv_setiv Perl_sv_setiv +#define sv_setpviv Perl_sv_setpviv +#define sv_setuv Perl_sv_setuv +#define sv_setnv Perl_sv_setnv +#define sv_setref_iv Perl_sv_setref_iv +#define sv_setref_nv Perl_sv_setref_nv +#define sv_setref_pv Perl_sv_setref_pv +#define sv_setref_pvn Perl_sv_setref_pvn +#define sv_setpv Perl_sv_setpv +#define sv_setpvn Perl_sv_setpvn +#define sv_setsv Perl_sv_setsv +#define sv_taint Perl_sv_taint +#define sv_tainted Perl_sv_tainted +#define sv_unmagic Perl_sv_unmagic +#define sv_unref Perl_sv_unref +#define sv_untaint Perl_sv_untaint +#define sv_upgrade Perl_sv_upgrade +#define sv_usepvn Perl_sv_usepvn +#define sv_vcatpvfn Perl_sv_vcatpvfn +#define sv_vsetpvfn Perl_sv_vsetpvfn +#define swash_init Perl_swash_init +#define swash_fetch Perl_swash_fetch +#define taint_env Perl_taint_env +#define taint_proper Perl_taint_proper +#define to_utf8_lower Perl_to_utf8_lower +#define to_utf8_upper Perl_to_utf8_upper +#define to_utf8_title Perl_to_utf8_title +#if defined(UNLINK_ALL_VERSIONS) +#define unlnk Perl_unlnk +#endif +#if defined(USE_THREADS) +#define unlock_condpair Perl_unlock_condpair +#endif +#define unsharepvn Perl_unsharepvn +#define unshare_hek Perl_unshare_hek +#define utilize Perl_utilize +#define utf16_to_utf8 Perl_utf16_to_utf8 +#define utf16_to_utf8_reversed Perl_utf16_to_utf8_reversed +#define utf8_distance Perl_utf8_distance +#define utf8_hop Perl_utf8_hop +#define utf8_to_uv Perl_utf8_to_uv +#define uv_to_utf8 Perl_uv_to_utf8 +#define vivify_defelem Perl_vivify_defelem +#define vivify_ref Perl_vivify_ref +#define wait4pid Perl_wait4pid +#define warn Perl_warn +#define warner Perl_warner +#define watch Perl_watch +#define whichsig Perl_whichsig +#define yyerror Perl_yyerror +#if defined(USE_PURE_BISON) +#define yylex Perl_yylex +#else +#define yylex Perl_yylex +#endif +#define yyparse Perl_yyparse +#define yywarn Perl_yywarn +#if defined(MYMALLOC) +#define dump_mstats Perl_dump_mstats +#endif +#define safesysmalloc Perl_safesysmalloc +#define safesyscalloc Perl_safesyscalloc +#define safesysrealloc Perl_safesysrealloc +#define safesysfree Perl_safesysfree +#if defined(LEAKTEST) +#define safexmalloc Perl_safexmalloc +#define safexcalloc Perl_safexcalloc +#define safexrealloc Perl_safexrealloc +#define safexfree Perl_safexfree +#endif +#if defined(PERL_GLOBAL_STRUCT) +#define GetVars Perl_GetVars +#endif +#define yydestruct Perl_yydestruct +#define runops_standard Perl_runops_standard +#define runops_debug Perl_runops_debug +#if defined(WIN32) +#define ErrorNo Perl_ErrorNo +#endif +#define sv_catpvf_mg Perl_sv_catpvf_mg +#define sv_catpv_mg Perl_sv_catpv_mg +#define sv_catpvn_mg Perl_sv_catpvn_mg +#define sv_catsv_mg Perl_sv_catsv_mg +#define sv_setpvf_mg Perl_sv_setpvf_mg +#define sv_setiv_mg Perl_sv_setiv_mg +#define sv_setpviv_mg Perl_sv_setpviv_mg +#define sv_setuv_mg Perl_sv_setuv_mg +#define sv_setnv_mg Perl_sv_setnv_mg +#define sv_setpv_mg Perl_sv_setpv_mg +#define sv_setpvn_mg Perl_sv_setpvn_mg +#define sv_setsv_mg Perl_sv_setsv_mg +#define sv_usepvn_mg Perl_sv_usepvn_mg +#define get_vtbl Perl_get_vtbl +#define pv_display Perl_pv_display +#define dump_indent Perl_dump_indent +#define do_gv_dump Perl_do_gv_dump +#define do_gvgv_dump Perl_do_gvgv_dump +#define do_hv_dump Perl_do_hv_dump +#define do_magic_dump Perl_do_magic_dump +#define do_op_dump Perl_do_op_dump +#define do_pmop_dump Perl_do_pmop_dump +#define do_sv_dump Perl_do_sv_dump +#define magic_dump Perl_magic_dump +#define default_protect Perl_default_protect +#define reginitcolors Perl_reginitcolors +#define sv_2pv_nolen Perl_sv_2pv_nolen +#define sv_pv Perl_sv_pv +#define sv_force_normal Perl_sv_force_normal +#define tmps_grow Perl_tmps_grow +#define sv_rvweaken Perl_sv_rvweaken +#define magic_killbackrefs Perl_magic_killbackrefs +#if defined(PERL_IN_AV_C) +#define avhv_index_sv S_avhv_index_sv +#endif +#if defined(PERL_IN_DOOP_C) +#define do_trans_CC_simple S_do_trans_CC_simple +#define do_trans_CC_count S_do_trans_CC_count +#define do_trans_CC_complex S_do_trans_CC_complex +#define do_trans_UU_simple S_do_trans_UU_simple +#define do_trans_UU_count S_do_trans_UU_count +#define do_trans_UU_complex S_do_trans_UU_complex +#define do_trans_UC_simple S_do_trans_UC_simple +#define do_trans_CU_simple S_do_trans_CU_simple +#define do_trans_UC_trivial S_do_trans_UC_trivial +#define do_trans_CU_trivial S_do_trans_CU_trivial +#endif +#if defined(PERL_IN_GLOBALS_C) +# if defined(WIN32) +#define do_aspawn S_do_aspawn +# endif +#endif +#if defined(PERL_IN_GV_C) +#define gv_init_sv S_gv_init_sv +#endif +#if defined(PERL_IN_HV_C) +#define hsplit S_hsplit +#define hfreeentries S_hfreeentries +#define more_he S_more_he +#define new_he S_new_he +#define del_he S_del_he +#define save_hek S_save_hek +#define hv_magic_check S_hv_magic_check +#endif +#if defined(PERL_IN_MG_C) +#define save_magic S_save_magic +#define magic_methpack S_magic_methpack +#define magic_methcall S_magic_methcall +#define unwind_handler_stack S_unwind_handler_stack +#define restore_magic S_restore_magic +#endif +#if defined(PERL_IN_OP_C) +#define list_assignment S_list_assignment +#define bad_type S_bad_type +#define modkids S_modkids +#define no_bareword_allowed S_no_bareword_allowed +#define no_fh_allowed S_no_fh_allowed +#define scalarboolean S_scalarboolean +#define too_few_arguments S_too_few_arguments +#define too_many_arguments S_too_many_arguments +#define null S_null +#define pad_findlex S_pad_findlex +#define newDEFSVOP S_newDEFSVOP +#define new_logop S_new_logop +#define simplify_sort S_simplify_sort +#define is_handle_constructor S_is_handle_constructor +#define gv_ename S_gv_ename +#define cv_clone2 S_cv_clone2 +#define scalar_mod_type S_scalar_mod_type +# if defined(PL_OP_SLAB_ALLOC) +#define Slab_Alloc S_Slab_Alloc +# endif +#endif +#if defined(PERL_IN_PERL_C) +#define find_beginning S_find_beginning +#define forbid_setid S_forbid_setid +#define incpush S_incpush +#define init_interp S_init_interp +#define init_ids S_init_ids +#define init_debugger S_init_debugger +#define init_lexer S_init_lexer +#define init_main_stash S_init_main_stash +#define init_perllib S_init_perllib +#define init_postdump_symbols S_init_postdump_symbols +#define init_predump_symbols S_init_predump_symbols +#define my_exit_jump S_my_exit_jump +#define nuke_stacks S_nuke_stacks +#define open_script S_open_script +#define usage S_usage +#define validate_suid S_validate_suid +#define read_e_script S_read_e_script +# if defined(IAMSUID) +#define fd_on_nosuid_fs S_fd_on_nosuid_fs +# endif +#define parse_body S_parse_body +#define run_body S_run_body +#define call_body S_call_body +#define call_xbody S_call_xbody +#define call_list_body S_call_list_body +# if defined(USE_THREADS) +#define init_main_thread S_init_main_thread +# endif +#endif +#if defined(PERL_IN_PP_C) +#define doencodes S_doencodes +#define refto S_refto +#define seed S_seed +#define mul128 S_mul128 +#define is_an_int S_is_an_int +#define div128 S_div128 +#endif +#if defined(PERL_IN_PP_CTL_C) +#define docatch S_docatch +#define docatch_body S_docatch_body +#define dofindlabel S_dofindlabel +#define doparseform S_doparseform +#define dopoptoeval S_dopoptoeval +#define dopoptolabel S_dopoptolabel +#define dopoptoloop S_dopoptoloop +#define dopoptosub S_dopoptosub +#define dopoptosub_at S_dopoptosub_at +#define free_closures S_free_closures +#define save_lines S_save_lines +#define doeval S_doeval +#define doopen_pmc S_doopen_pmc +#define qsortsv S_qsortsv +#define sortcv S_sortcv +#define sv_ncmp S_sv_ncmp +#define sv_i_ncmp S_sv_i_ncmp +#define amagic_ncmp S_amagic_ncmp +#define amagic_i_ncmp S_amagic_i_ncmp +#define amagic_cmp S_amagic_cmp +#define amagic_cmp_locale S_amagic_cmp_locale +#endif +#if defined(PERL_IN_PP_HOT_C) +#define get_db_sub S_get_db_sub +# if defined(USE_THREADS) +#define unset_cvowner S_unset_cvowner +# endif +#endif +#if defined(PERL_IN_PP_SYS_C) +#define doform S_doform +#define emulate_eaccess S_emulate_eaccess +# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +#define dooneliner S_dooneliner +# endif +#endif +#if defined(PERL_IN_REGCOMP_C) +#define reg S_reg +#define reganode S_reganode +#define regatom S_regatom +#define regbranch S_regbranch +#define regc S_regc +#define reguni S_reguni +#define regclass S_regclass +#define regclassutf8 S_regclassutf8 +#define regcurly S_regcurly +#define reg_node S_reg_node +#define regpiece S_regpiece +#define reginsert S_reginsert +#define regoptail S_regoptail +#define regtail S_regtail +#define regwhite S_regwhite +#define nextchar S_nextchar +#define dumpuntil S_dumpuntil +#define scan_commit S_scan_commit +#define study_chunk S_study_chunk +#define add_data S_add_data +#define re_croak2 S_re_croak2 +#define regpposixcc S_regpposixcc +#define clear_re S_clear_re +#endif +#if defined(PERL_IN_REGEXEC_C) +#define regmatch S_regmatch +#define regrepeat S_regrepeat +#define regrepeat_hard S_regrepeat_hard +#define regtry S_regtry +#define reginclass S_reginclass +#define reginclassutf8 S_reginclassutf8 +#define regcppush S_regcppush +#define regcppop S_regcppop +#define regcp_set_to S_regcp_set_to +#define cache_re S_cache_re +#define restore_pos S_restore_pos +#define reghop S_reghop +#define reghopmaybe S_reghopmaybe +#endif +#if defined(PERL_IN_RUN_C) +#define debprof S_debprof +#endif +#if defined(PERL_IN_SCOPE_C) +#define save_scalar_at S_save_scalar_at +#endif +#if defined(PERL_IN_SV_C) +#define asIV S_asIV +#define asUV S_asUV +#define more_sv S_more_sv +#define more_xiv S_more_xiv +#define more_xnv S_more_xnv +#define more_xpv S_more_xpv +#define more_xrv S_more_xrv +#define new_xiv S_new_xiv +#define new_xnv S_new_xnv +#define new_xpv S_new_xpv +#define new_xrv S_new_xrv +#define del_xiv S_del_xiv +#define del_xnv S_del_xnv +#define del_xpv S_del_xpv +#define del_xrv S_del_xrv +#define sv_unglob S_sv_unglob +#define do_report_used S_do_report_used +#define do_clean_objs S_do_clean_objs +#define do_clean_named_objs S_do_clean_named_objs +#define do_clean_all S_do_clean_all +#define not_a_number S_not_a_number +#define visit S_visit +# if defined(PURIFY) +#define reg_add S_reg_add +#define reg_remove S_reg_remove +# else +#define my_safemalloc S_my_safemalloc +# endif +#define sv_add_backref S_sv_add_backref +#define sv_del_backref S_sv_del_backref +# if defined(DEBUGGING) +#define del_sv S_del_sv +# endif +#endif +#if defined(PERL_IN_TOKE_C) +#define check_uni S_check_uni +#define force_next S_force_next +#define force_version S_force_version +#define force_word S_force_word +#define tokeq S_tokeq +#define scan_const S_scan_const +#define scan_formline S_scan_formline +#define scan_heredoc S_scan_heredoc +#define scan_ident S_scan_ident +#define scan_inputsymbol S_scan_inputsymbol +#define scan_pat S_scan_pat +#define scan_str S_scan_str +#define scan_subst S_scan_subst +#define scan_trans S_scan_trans +#define scan_word S_scan_word +#define skipspace S_skipspace +#define checkcomma S_checkcomma +#define force_ident S_force_ident +#define incline S_incline +#define intuit_method S_intuit_method +#define intuit_more S_intuit_more +#define lop S_lop +#define missingterm S_missingterm +#define no_op S_no_op +#define set_csh S_set_csh +#define sublex_done S_sublex_done +#define sublex_push S_sublex_push +#define sublex_start S_sublex_start +#define filter_gets S_filter_gets +#define new_constant S_new_constant +#define ao S_ao +#define depcom S_depcom +#define incl_perldb S_incl_perldb +#define utf16_textfilter S_utf16_textfilter +#define utf16rev_textfilter S_utf16rev_textfilter +#define restore_rsfp S_restore_rsfp +#define restore_expect S_restore_expect +#define restore_lex_expect S_restore_lex_expect +# if defined(CRIPPLED_CC) +#define uni S_uni +# endif +# if defined(WIN32) +#define win32_textfilter S_win32_textfilter +# endif +#endif +#if defined(PERL_IN_UNIVERSAL_C) +#define isa_lookup S_isa_lookup +#endif +#if defined(PERL_IN_UTIL_C) +#define mess_alloc S_mess_alloc +#define do_croak S_do_croak +#define do_warn S_do_warn +# if defined(LEAKTEST) +#define xstat S_xstat +# endif +#endif +#define ck_anoncode Perl_ck_anoncode +#define ck_bitop Perl_ck_bitop +#define ck_concat Perl_ck_concat +#define ck_defined Perl_ck_defined +#define ck_delete Perl_ck_delete +#define ck_eof Perl_ck_eof +#define ck_eval Perl_ck_eval +#define ck_exec Perl_ck_exec +#define ck_exists Perl_ck_exists +#define ck_ftst Perl_ck_ftst +#define ck_fun Perl_ck_fun +#define ck_fun_locale Perl_ck_fun_locale +#define ck_glob Perl_ck_glob +#define ck_grep Perl_ck_grep +#define ck_index Perl_ck_index +#define ck_lengthconst Perl_ck_lengthconst +#define ck_lfun Perl_ck_lfun +#define ck_listiob Perl_ck_listiob +#define ck_match Perl_ck_match +#define ck_null Perl_ck_null +#define ck_repeat Perl_ck_repeat +#define ck_require Perl_ck_require +#define ck_rfun Perl_ck_rfun +#define ck_rvconst Perl_ck_rvconst +#define ck_scmp Perl_ck_scmp +#define ck_select Perl_ck_select +#define ck_shift Perl_ck_shift +#define ck_sort Perl_ck_sort +#define ck_spair Perl_ck_spair +#define ck_split Perl_ck_split +#define ck_subr Perl_ck_subr +#define ck_svconst Perl_ck_svconst +#define ck_trunc Perl_ck_trunc #define pp_aassign Perl_pp_aassign #define pp_abs Perl_pp_abs #define pp_accept Perl_pp_accept @@ -767,1454 +1328,2688 @@ #define pp_wantarray Perl_pp_wantarray #define pp_warn Perl_pp_warn #define pp_xor Perl_pp_xor -#define pregcomp Perl_pregcomp -#define pregexec Perl_pregexec -#define pregfree Perl_pregfree -#define prepend_elem Perl_prepend_elem -#define push_return Perl_push_return -#define push_scope Perl_push_scope -#define pv_display Perl_pv_display -#define ref Perl_ref -#define refkids Perl_refkids -#define regdump Perl_regdump -#define regexec_flags Perl_regexec_flags -#define reginitcolors Perl_reginitcolors -#define regnext Perl_regnext -#define regprop Perl_regprop -#define repeatcpy Perl_repeatcpy -#define require_pv Perl_require_pv -#define rninstr Perl_rninstr -#define rsignal Perl_rsignal -#define rsignal_restore Perl_rsignal_restore -#define rsignal_save Perl_rsignal_save -#define rsignal_state Perl_rsignal_state -#define runops_debug Perl_runops_debug -#define runops_standard Perl_runops_standard -#define rxres_free Perl_rxres_free -#define rxres_restore Perl_rxres_restore -#define rxres_save Perl_rxres_save -#define safesyscalloc Perl_safesyscalloc -#define safesysfree Perl_safesysfree -#define safesysmalloc Perl_safesysmalloc -#define safesysrealloc Perl_safesysrealloc -#define safexcalloc Perl_safexcalloc -#define safexfree Perl_safexfree -#define safexmalloc Perl_safexmalloc -#define safexrealloc Perl_safexrealloc -#define same_dirent Perl_same_dirent -#define save_I16 Perl_save_I16 -#define save_I32 Perl_save_I32 -#define save_aelem Perl_save_aelem -#define save_alloc Perl_save_alloc -#define save_aptr Perl_save_aptr -#define save_ary Perl_save_ary -#define save_clearsv Perl_save_clearsv -#define save_delete Perl_save_delete -#define save_destructor Perl_save_destructor -#define save_freeop Perl_save_freeop -#define save_freepv Perl_save_freepv -#define save_freesv Perl_save_freesv -#define save_generic_svref Perl_save_generic_svref -#define save_gp Perl_save_gp -#define save_hash Perl_save_hash -#define save_helem Perl_save_helem -#define save_hints Perl_save_hints -#define save_hptr Perl_save_hptr -#define save_int Perl_save_int -#define save_item Perl_save_item -#define save_iv Perl_save_iv -#define save_list Perl_save_list -#define save_long Perl_save_long -#define save_nogv Perl_save_nogv -#define save_op Perl_save_op -#define save_pptr Perl_save_pptr -#define save_re_context Perl_save_re_context -#define save_scalar Perl_save_scalar -#define save_sptr Perl_save_sptr -#define save_svref Perl_save_svref -#define save_threadsv Perl_save_threadsv -#define savepv Perl_savepv -#define savepvn Perl_savepvn -#define savestack_grow Perl_savestack_grow -#define sawparens Perl_sawparens -#define scalar Perl_scalar -#define scalarkids Perl_scalarkids -#define scalarseq Perl_scalarseq -#define scalarvoid Perl_scalarvoid -#define scan_bin Perl_scan_bin -#define scan_hex Perl_scan_hex -#define scan_num Perl_scan_num -#define scan_oct Perl_scan_oct -#define scope Perl_scope -#define screaminstr Perl_screaminstr -#define set_numeric_local Perl_set_numeric_local -#define set_numeric_standard Perl_set_numeric_standard -#define setdefout Perl_setdefout -#define setenv_getix Perl_setenv_getix -#define share_hek Perl_share_hek -#define sharepvn Perl_sharepvn + +#else /* PERL_IMPLICIT_CONTEXT */ + +#define amagic_call(a,b,c,d) Perl_amagic_call(aTHX_ a,b,c,d) +#define Gv_AMupdate(a) Perl_Gv_AMupdate(aTHX_ a) +#define append_elem(a,b,c) Perl_append_elem(aTHX_ a,b,c) +#define append_list(a,b,c) Perl_append_list(aTHX_ a,b,c) +#define apply(a,b,c) Perl_apply(aTHX_ a,b,c) +#define assertref(a) Perl_assertref(aTHX_ a) +#define avhv_exists_ent(a,b,c) Perl_avhv_exists_ent(aTHX_ a,b,c) +#define avhv_fetch_ent(a,b,c,d) Perl_avhv_fetch_ent(aTHX_ a,b,c,d) +#define avhv_iternext(a) Perl_avhv_iternext(aTHX_ a) +#define avhv_iterval(a,b) Perl_avhv_iterval(aTHX_ a,b) +#define avhv_keys(a) Perl_avhv_keys(aTHX_ a) +#define av_clear(a) Perl_av_clear(aTHX_ a) +#define av_extend(a,b) Perl_av_extend(aTHX_ a,b) +#define av_fake(a,b) Perl_av_fake(aTHX_ a,b) +#define av_fetch(a,b,c) Perl_av_fetch(aTHX_ a,b,c) +#define av_fill(a,b) Perl_av_fill(aTHX_ a,b) +#define av_len(a) Perl_av_len(aTHX_ a) +#define av_make(a,b) Perl_av_make(aTHX_ a,b) +#define av_pop(a) Perl_av_pop(aTHX_ a) +#define av_push(a,b) Perl_av_push(aTHX_ a,b) +#define av_reify(a) Perl_av_reify(aTHX_ a) +#define av_shift(a) Perl_av_shift(aTHX_ a) +#define av_store(a,b,c) Perl_av_store(aTHX_ a,b,c) +#define av_undef(a) Perl_av_undef(aTHX_ a) +#define av_unshift(a,b) Perl_av_unshift(aTHX_ a,b) +#define bind_match(a,b,c) Perl_bind_match(aTHX_ a,b,c) +#define block_end(a,b) Perl_block_end(aTHX_ a,b) +#define block_gimme() Perl_block_gimme(aTHX) +#define block_start(a) Perl_block_start(aTHX_ a) +#define boot_core_UNIVERSAL() Perl_boot_core_UNIVERSAL(aTHX) +#define call_list(a,b) Perl_call_list(aTHX_ a,b) +#define cando(a,b,c) Perl_cando(aTHX_ a,b,c) +#define cast_ulong(a) Perl_cast_ulong(aTHX_ a) +#define cast_i32(a) Perl_cast_i32(aTHX_ a) +#define cast_iv(a) Perl_cast_iv(aTHX_ a) +#define cast_uv(a) Perl_cast_uv(aTHX_ a) +#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) +#define my_chsize(a,b) Perl_my_chsize(aTHX_ a,b) +#endif +#if defined(USE_THREADS) +#define condpair_magic(a) Perl_condpair_magic(aTHX_ a) +#endif +#define convert(a,b,c) Perl_convert(aTHX_ a,b,c) +#if defined(PERL_IMPLICIT_CONTEXT) +#endif +#define cv_ckproto(a,b,c) Perl_cv_ckproto(aTHX_ a,b,c) +#define cv_clone(a) Perl_cv_clone(aTHX_ a) +#define cv_const_sv(a) Perl_cv_const_sv(aTHX_ a) +#define op_const_sv(a,b) Perl_op_const_sv(aTHX_ a,b) +#define cv_undef(a) Perl_cv_undef(aTHX_ a) +#define cx_dump(a) Perl_cx_dump(aTHX_ a) +#define filter_add(a,b) Perl_filter_add(aTHX_ a,b) +#define filter_del(a) Perl_filter_del(aTHX_ a) +#define filter_read(a,b,c) Perl_filter_read(aTHX_ a,b,c) +#define get_op_descs() Perl_get_op_descs(aTHX) +#define get_op_names() Perl_get_op_names(aTHX) +#define get_no_modify() Perl_get_no_modify(aTHX) +#define get_opargs() Perl_get_opargs(aTHX) +#define cxinc() Perl_cxinc(aTHX) +#define deb_growlevel() Perl_deb_growlevel(aTHX) +#define debprofdump() Perl_debprofdump(aTHX) +#define debop(a) Perl_debop(aTHX_ a) +#define debstack() Perl_debstack(aTHX) +#define debstackptrs() Perl_debstackptrs(aTHX) +#define delimcpy(a,b,c,d,e,f) Perl_delimcpy(aTHX_ a,b,c,d,e,f) +#define deprecate(a) Perl_deprecate(aTHX_ a) +#define die_where(a,b) Perl_die_where(aTHX_ a,b) +#define dounwind(a) Perl_dounwind(aTHX_ a) +#define do_aexec(a,b,c) Perl_do_aexec(aTHX_ a,b,c) +#define do_binmode(a,b,c) Perl_do_binmode(aTHX_ a,b,c) +#define do_chop(a,b) Perl_do_chop(aTHX_ a,b) +#define do_close(a,b) Perl_do_close(aTHX_ a,b) +#define do_eof(a) Perl_do_eof(aTHX_ a) +#define do_exec(a) Perl_do_exec(aTHX_ a) +#if !defined(WIN32) +#define do_exec3(a,b,c) Perl_do_exec3(aTHX_ a,b,c) +#endif +#define do_execfree() Perl_do_execfree(aTHX) +#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) +#define do_ipcctl(a,b,c) Perl_do_ipcctl(aTHX_ a,b,c) +#define do_ipcget(a,b,c) Perl_do_ipcget(aTHX_ a,b,c) +#define do_msgrcv(a,b) Perl_do_msgrcv(aTHX_ a,b) +#define do_msgsnd(a,b) Perl_do_msgsnd(aTHX_ a,b) +#define do_semop(a,b) Perl_do_semop(aTHX_ a,b) +#define do_shmio(a,b,c) Perl_do_shmio(aTHX_ a,b,c) +#endif +#define do_join(a,b,c,d) Perl_do_join(aTHX_ a,b,c,d) +#define do_kv() Perl_do_kv(aTHX) +#define do_open(a,b,c,d,e,f,g) Perl_do_open(aTHX_ a,b,c,d,e,f,g) +#define do_pipe(a,b,c) Perl_do_pipe(aTHX_ a,b,c) +#define do_print(a,b) Perl_do_print(aTHX_ a,b) +#define do_readline() Perl_do_readline(aTHX) +#define do_chomp(a) Perl_do_chomp(aTHX_ a) +#define do_seek(a,b,c) Perl_do_seek(aTHX_ a,b,c) +#define do_sprintf(a,b,c) Perl_do_sprintf(aTHX_ a,b,c) +#define do_sysseek(a,b,c) Perl_do_sysseek(aTHX_ a,b,c) +#define do_tell(a) Perl_do_tell(aTHX_ a) +#define do_trans(a) Perl_do_trans(aTHX_ a) +#define do_vecset(a) Perl_do_vecset(aTHX_ a) +#define do_vop(a,b,c,d) Perl_do_vop(aTHX_ a,b,c,d) +#define dofile(a) Perl_dofile(aTHX_ a) +#define dowantarray() Perl_dowantarray(aTHX) +#define dump_all() Perl_dump_all(aTHX) +#define dump_eval() Perl_dump_eval(aTHX) +#if defined(DUMP_FDS) +#define dump_fds(a) Perl_dump_fds(aTHX_ a) +#endif +#define dump_form(a) Perl_dump_form(aTHX_ a) +#define gv_dump(a) Perl_gv_dump(aTHX_ a) +#define op_dump(a) Perl_op_dump(aTHX_ a) +#define pmop_dump(a) Perl_pmop_dump(aTHX_ a) +#define dump_packsubs(a) Perl_dump_packsubs(aTHX_ a) +#define dump_sub(a) Perl_dump_sub(aTHX_ a) +#define fbm_compile(a,b) Perl_fbm_compile(aTHX_ a,b) +#define fbm_instr(a,b,c,d) Perl_fbm_instr(aTHX_ a,b,c,d) +#define find_script(a,b,c,d) Perl_find_script(aTHX_ a,b,c,d) +#if defined(USE_THREADS) +#define find_threadsv(a) Perl_find_threadsv(aTHX_ a) +#endif +#define force_list(a) Perl_force_list(aTHX_ a) +#define fold_constants(a) Perl_fold_constants(aTHX_ a) +#define free_tmps() Perl_free_tmps(aTHX) +#define gen_constant_list(a) Perl_gen_constant_list(aTHX_ a) +#if !defined(HAS_GETENV_LEN) +#define getenv_len(a,b) Perl_getenv_len(aTHX_ a,b) +#endif +#define gp_free(a) Perl_gp_free(aTHX_ a) +#define gp_ref(a) Perl_gp_ref(aTHX_ a) +#define gv_AVadd(a) Perl_gv_AVadd(aTHX_ a) +#define gv_HVadd(a) Perl_gv_HVadd(aTHX_ a) +#define gv_IOadd(a) Perl_gv_IOadd(aTHX_ a) +#define gv_autoload4(a,b,c,d) Perl_gv_autoload4(aTHX_ a,b,c,d) +#define gv_check(a) Perl_gv_check(aTHX_ a) +#define gv_efullname(a,b) Perl_gv_efullname(aTHX_ a,b) +#define gv_efullname3(a,b,c) Perl_gv_efullname3(aTHX_ a,b,c) +#define gv_fetchfile(a) Perl_gv_fetchfile(aTHX_ a) +#define gv_fetchmeth(a,b,c,d) Perl_gv_fetchmeth(aTHX_ a,b,c,d) +#define gv_fetchmethod(a,b) Perl_gv_fetchmethod(aTHX_ a,b) +#define gv_fetchmethod_autoload(a,b,c) Perl_gv_fetchmethod_autoload(aTHX_ a,b,c) +#define gv_fetchpv(a,b,c) Perl_gv_fetchpv(aTHX_ a,b,c) +#define gv_fullname(a,b) Perl_gv_fullname(aTHX_ a,b) +#define gv_fullname3(a,b,c) Perl_gv_fullname3(aTHX_ a,b,c) +#define gv_init(a,b,c,d,e) Perl_gv_init(aTHX_ a,b,c,d,e) +#define gv_stashpv(a,b) Perl_gv_stashpv(aTHX_ a,b) +#define gv_stashpvn(a,b,c) Perl_gv_stashpvn(aTHX_ a,b,c) +#define gv_stashsv(a,b) Perl_gv_stashsv(aTHX_ a,b) +#define hv_clear(a) Perl_hv_clear(aTHX_ a) +#define hv_delayfree_ent(a,b) Perl_hv_delayfree_ent(aTHX_ a,b) +#define hv_delete(a,b,c,d) Perl_hv_delete(aTHX_ a,b,c,d) +#define hv_delete_ent(a,b,c,d) Perl_hv_delete_ent(aTHX_ a,b,c,d) +#define hv_exists(a,b,c) Perl_hv_exists(aTHX_ a,b,c) +#define hv_exists_ent(a,b,c) Perl_hv_exists_ent(aTHX_ a,b,c) +#define hv_fetch(a,b,c,d) Perl_hv_fetch(aTHX_ a,b,c,d) +#define hv_fetch_ent(a,b,c,d) Perl_hv_fetch_ent(aTHX_ a,b,c,d) +#define hv_free_ent(a,b) Perl_hv_free_ent(aTHX_ a,b) +#define hv_iterinit(a) Perl_hv_iterinit(aTHX_ a) +#define hv_iterkey(a,b) Perl_hv_iterkey(aTHX_ a,b) +#define hv_iterkeysv(a) Perl_hv_iterkeysv(aTHX_ a) +#define hv_iternext(a) Perl_hv_iternext(aTHX_ a) +#define hv_iternextsv(a,b,c) Perl_hv_iternextsv(aTHX_ a,b,c) +#define hv_iterval(a,b) Perl_hv_iterval(aTHX_ a,b) +#define hv_ksplit(a,b) Perl_hv_ksplit(aTHX_ a,b) +#define hv_magic(a,b,c) Perl_hv_magic(aTHX_ a,b,c) +#define hv_store(a,b,c,d,e) Perl_hv_store(aTHX_ a,b,c,d,e) +#define hv_store_ent(a,b,c,d) Perl_hv_store_ent(aTHX_ a,b,c,d) +#define hv_undef(a) Perl_hv_undef(aTHX_ a) +#define ibcmp(a,b,c) Perl_ibcmp(aTHX_ a,b,c) +#define ibcmp_locale(a,b,c) Perl_ibcmp_locale(aTHX_ a,b,c) +#define ingroup(a,b) Perl_ingroup(aTHX_ a,b) +#define init_stacks() Perl_init_stacks(aTHX) +#define intro_my() Perl_intro_my(aTHX) +#define instr(a,b) Perl_instr(aTHX_ a,b) +#define io_close(a) Perl_io_close(aTHX_ a) +#define invert(a) Perl_invert(aTHX_ a) +#define is_uni_alnum(a) Perl_is_uni_alnum(aTHX_ a) +#define is_uni_idfirst(a) Perl_is_uni_idfirst(aTHX_ a) +#define is_uni_alpha(a) Perl_is_uni_alpha(aTHX_ a) +#define is_uni_space(a) Perl_is_uni_space(aTHX_ a) +#define is_uni_digit(a) Perl_is_uni_digit(aTHX_ a) +#define is_uni_upper(a) Perl_is_uni_upper(aTHX_ a) +#define is_uni_lower(a) Perl_is_uni_lower(aTHX_ a) +#define is_uni_print(a) Perl_is_uni_print(aTHX_ a) +#define to_uni_upper(a) Perl_to_uni_upper(aTHX_ a) +#define to_uni_title(a) Perl_to_uni_title(aTHX_ a) +#define to_uni_lower(a) Perl_to_uni_lower(aTHX_ a) +#define is_uni_alnum_lc(a) Perl_is_uni_alnum_lc(aTHX_ a) +#define is_uni_idfirst_lc(a) Perl_is_uni_idfirst_lc(aTHX_ a) +#define is_uni_alpha_lc(a) Perl_is_uni_alpha_lc(aTHX_ a) +#define is_uni_space_lc(a) Perl_is_uni_space_lc(aTHX_ a) +#define is_uni_digit_lc(a) Perl_is_uni_digit_lc(aTHX_ a) +#define is_uni_upper_lc(a) Perl_is_uni_upper_lc(aTHX_ a) +#define is_uni_lower_lc(a) Perl_is_uni_lower_lc(aTHX_ a) +#define is_uni_print_lc(a) Perl_is_uni_print_lc(aTHX_ a) +#define to_uni_upper_lc(a) Perl_to_uni_upper_lc(aTHX_ a) +#define to_uni_title_lc(a) Perl_to_uni_title_lc(aTHX_ a) +#define to_uni_lower_lc(a) Perl_to_uni_lower_lc(aTHX_ a) +#define is_utf8_alnum(a) Perl_is_utf8_alnum(aTHX_ a) +#define is_utf8_idfirst(a) Perl_is_utf8_idfirst(aTHX_ a) +#define is_utf8_alpha(a) Perl_is_utf8_alpha(aTHX_ a) +#define is_utf8_space(a) Perl_is_utf8_space(aTHX_ a) +#define is_utf8_digit(a) Perl_is_utf8_digit(aTHX_ a) +#define is_utf8_upper(a) Perl_is_utf8_upper(aTHX_ a) +#define is_utf8_lower(a) Perl_is_utf8_lower(aTHX_ a) +#define is_utf8_print(a) Perl_is_utf8_print(aTHX_ a) +#define is_utf8_mark(a) Perl_is_utf8_mark(aTHX_ a) +#define jmaybe(a) Perl_jmaybe(aTHX_ a) +#define keyword(a,b) Perl_keyword(aTHX_ a,b) +#define leave_scope(a) Perl_leave_scope(aTHX_ a) +#define lex_end() Perl_lex_end(aTHX) +#define lex_start(a) Perl_lex_start(aTHX_ a) +#define linklist(a) Perl_linklist(aTHX_ a) +#define list(a) Perl_list(aTHX_ a) +#define listkids(a) Perl_listkids(aTHX_ a) +#define localize(a,b) Perl_localize(aTHX_ a,b) +#define looks_like_number(a) Perl_looks_like_number(aTHX_ a) +#define magic_clearenv(a,b) Perl_magic_clearenv(aTHX_ a,b) +#define magic_clear_all_env(a,b) Perl_magic_clear_all_env(aTHX_ a,b) +#define magic_clearpack(a,b) Perl_magic_clearpack(aTHX_ a,b) +#define magic_clearsig(a,b) Perl_magic_clearsig(aTHX_ a,b) +#define magic_existspack(a,b) Perl_magic_existspack(aTHX_ a,b) +#define magic_freeregexp(a,b) Perl_magic_freeregexp(aTHX_ a,b) +#define magic_get(a,b) Perl_magic_get(aTHX_ a,b) +#define magic_getarylen(a,b) Perl_magic_getarylen(aTHX_ a,b) +#define magic_getdefelem(a,b) Perl_magic_getdefelem(aTHX_ a,b) +#define magic_getglob(a,b) Perl_magic_getglob(aTHX_ a,b) +#define magic_getnkeys(a,b) Perl_magic_getnkeys(aTHX_ a,b) +#define magic_getpack(a,b) Perl_magic_getpack(aTHX_ a,b) +#define magic_getpos(a,b) Perl_magic_getpos(aTHX_ a,b) +#define magic_getsig(a,b) Perl_magic_getsig(aTHX_ a,b) +#define magic_getsubstr(a,b) Perl_magic_getsubstr(aTHX_ a,b) +#define magic_gettaint(a,b) Perl_magic_gettaint(aTHX_ a,b) +#define magic_getuvar(a,b) Perl_magic_getuvar(aTHX_ a,b) +#define magic_getvec(a,b) Perl_magic_getvec(aTHX_ a,b) +#define magic_len(a,b) Perl_magic_len(aTHX_ a,b) +#if defined(USE_THREADS) +#define magic_mutexfree(a,b) Perl_magic_mutexfree(aTHX_ a,b) +#endif +#define magic_nextpack(a,b,c) Perl_magic_nextpack(aTHX_ a,b,c) +#define magic_regdata_cnt(a,b) Perl_magic_regdata_cnt(aTHX_ a,b) +#define magic_regdatum_get(a,b) Perl_magic_regdatum_get(aTHX_ a,b) +#define magic_set(a,b) Perl_magic_set(aTHX_ a,b) +#define magic_setamagic(a,b) Perl_magic_setamagic(aTHX_ a,b) +#define magic_setarylen(a,b) Perl_magic_setarylen(aTHX_ a,b) +#define magic_setbm(a,b) Perl_magic_setbm(aTHX_ a,b) +#define magic_setdbline(a,b) Perl_magic_setdbline(aTHX_ a,b) +#if defined(USE_LOCALE_COLLATE) +#define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b) +#endif +#define magic_setdefelem(a,b) Perl_magic_setdefelem(aTHX_ a,b) +#define magic_setenv(a,b) Perl_magic_setenv(aTHX_ a,b) +#define magic_setfm(a,b) Perl_magic_setfm(aTHX_ a,b) +#define magic_setisa(a,b) Perl_magic_setisa(aTHX_ a,b) +#define magic_setglob(a,b) Perl_magic_setglob(aTHX_ a,b) +#define magic_setmglob(a,b) Perl_magic_setmglob(aTHX_ a,b) +#define magic_setnkeys(a,b) Perl_magic_setnkeys(aTHX_ a,b) +#define magic_setpack(a,b) Perl_magic_setpack(aTHX_ a,b) +#define magic_setpos(a,b) Perl_magic_setpos(aTHX_ a,b) +#define magic_setsig(a,b) Perl_magic_setsig(aTHX_ a,b) +#define magic_setsubstr(a,b) Perl_magic_setsubstr(aTHX_ a,b) +#define magic_settaint(a,b) Perl_magic_settaint(aTHX_ a,b) +#define magic_setuvar(a,b) Perl_magic_setuvar(aTHX_ a,b) +#define magic_setvec(a,b) Perl_magic_setvec(aTHX_ a,b) +#define magic_set_all_env(a,b) Perl_magic_set_all_env(aTHX_ a,b) +#define magic_sizepack(a,b) Perl_magic_sizepack(aTHX_ a,b) +#define magic_wipepack(a,b) Perl_magic_wipepack(aTHX_ a,b) +#define magicname(a,b,c) Perl_magicname(aTHX_ a,b,c) +#if defined(MYMALLOC) +#define malloced_size Perl_malloced_size +#endif +#define markstack_grow() Perl_markstack_grow(aTHX) +#if defined(USE_LOCALE_COLLATE) +#define mem_collxfrm(a,b,c) Perl_mem_collxfrm(aTHX_ a,b,c) +#endif +#define mess(a,b) Perl_mess(aTHX_ a,b) +#define mg_clear(a) Perl_mg_clear(aTHX_ a) +#define mg_copy(a,b,c,d) Perl_mg_copy(aTHX_ a,b,c,d) +#define mg_find(a,b) Perl_mg_find(aTHX_ a,b) +#define mg_free(a) Perl_mg_free(aTHX_ a) +#define mg_get(a) Perl_mg_get(aTHX_ a) +#define mg_length(a) Perl_mg_length(aTHX_ a) +#define mg_magical(a) Perl_mg_magical(aTHX_ a) +#define mg_set(a) Perl_mg_set(aTHX_ a) +#define mg_size(a) Perl_mg_size(aTHX_ a) +#define mod(a,b) Perl_mod(aTHX_ a,b) +#define moreswitches(a) Perl_moreswitches(aTHX_ a) +#define my(a) Perl_my(aTHX_ a) +#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY) +#define my_bcopy(a,b,c) Perl_my_bcopy(aTHX_ a,b,c) +#endif +#if !defined(HAS_BZERO) && !defined(HAS_MEMSET) +#define my_bzero(a,b) Perl_my_bzero(aTHX_ a,b) +#endif +#define my_exit(a) Perl_my_exit(aTHX_ a) +#define my_failure_exit() Perl_my_failure_exit(aTHX) +#define my_fflush_all() Perl_my_fflush_all(aTHX) +#define my_lstat() Perl_my_lstat(aTHX) +#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP) +#define my_memcmp(a,b,c) Perl_my_memcmp(aTHX_ a,b,c) +#endif +#if !defined(HAS_MEMSET) +#define my_memset(a,b,c) Perl_my_memset(aTHX_ a,b,c) +#endif +#if !defined(PERL_OBJECT) +#define my_pclose(a) Perl_my_pclose(aTHX_ a) +#define my_popen(a,b) Perl_my_popen(aTHX_ a,b) +#endif +#define my_setenv(a,b) Perl_my_setenv(aTHX_ a,b) +#define my_stat() Perl_my_stat(aTHX) +#if defined(MYSWAP) +#define my_swap(a) Perl_my_swap(aTHX_ a) +#define my_htonl(a) Perl_my_htonl(aTHX_ a) +#define my_ntohl(a) Perl_my_ntohl(aTHX_ a) +#endif +#define my_unexec() Perl_my_unexec(aTHX) +#define newANONLIST(a) Perl_newANONLIST(aTHX_ a) +#define newANONHASH(a) Perl_newANONHASH(aTHX_ a) +#define newANONSUB(a,b,c) Perl_newANONSUB(aTHX_ a,b,c) +#define newASSIGNOP(a,b,c,d) Perl_newASSIGNOP(aTHX_ a,b,c,d) +#define newCONDOP(a,b,c,d) Perl_newCONDOP(aTHX_ a,b,c,d) +#define newCONSTSUB(a,b,c) Perl_newCONSTSUB(aTHX_ a,b,c) +#define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c) +#define newFOROP(a,b,c,d,e,f,g) Perl_newFOROP(aTHX_ a,b,c,d,e,f,g) +#define newLOGOP(a,b,c,d) Perl_newLOGOP(aTHX_ a,b,c,d) +#define newLOOPEX(a,b) Perl_newLOOPEX(aTHX_ a,b) +#define newLOOPOP(a,b,c,d) Perl_newLOOPOP(aTHX_ a,b,c,d) +#define newNULLLIST() Perl_newNULLLIST(aTHX) +#define newOP(a,b) Perl_newOP(aTHX_ a,b) +#define newPROG(a) Perl_newPROG(aTHX_ a) +#define newRANGE(a,b,c) Perl_newRANGE(aTHX_ a,b,c) +#define newSLICEOP(a,b,c) Perl_newSLICEOP(aTHX_ a,b,c) +#define newSTATEOP(a,b,c) Perl_newSTATEOP(aTHX_ a,b,c) +#define newSUB(a,b,c,d) Perl_newSUB(aTHX_ a,b,c,d) +#define newXS(a,b,c) Perl_newXS(aTHX_ a,b,c) +#define newAV() Perl_newAV(aTHX) +#define newAVREF(a) Perl_newAVREF(aTHX_ a) +#define newBINOP(a,b,c,d) Perl_newBINOP(aTHX_ a,b,c,d) +#define newCVREF(a,b) Perl_newCVREF(aTHX_ a,b) +#define newGVOP(a,b,c) Perl_newGVOP(aTHX_ a,b,c) +#define newGVgen(a) Perl_newGVgen(aTHX_ a) +#define newGVREF(a,b) Perl_newGVREF(aTHX_ a,b) +#define newHVREF(a) Perl_newHVREF(aTHX_ a) +#define newHV() Perl_newHV(aTHX) +#define newHVhv(a) Perl_newHVhv(aTHX_ a) +#define newIO() Perl_newIO(aTHX) +#define newLISTOP(a,b,c,d) Perl_newLISTOP(aTHX_ a,b,c,d) +#define newPMOP(a,b) Perl_newPMOP(aTHX_ a,b) +#define newPVOP(a,b,c) Perl_newPVOP(aTHX_ a,b,c) +#define newRV(a) Perl_newRV(aTHX_ a) +#define newRV_noinc(a) Perl_newRV_noinc(aTHX_ a) +#define newSV(a) Perl_newSV(aTHX_ a) +#define newSVREF(a) Perl_newSVREF(aTHX_ a) +#define newSVOP(a,b,c) Perl_newSVOP(aTHX_ a,b,c) +#define newSViv(a) Perl_newSViv(aTHX_ a) +#define newSVnv(a) Perl_newSVnv(aTHX_ a) +#define newSVpv(a,b) Perl_newSVpv(aTHX_ a,b) +#define newSVpvn(a,b) Perl_newSVpvn(aTHX_ a,b) +#define newSVrv(a,b) Perl_newSVrv(aTHX_ a,b) +#define newSVsv(a) Perl_newSVsv(aTHX_ a) +#define newUNOP(a,b,c) Perl_newUNOP(aTHX_ a,b,c) +#define newWHILEOP(a,b,c,d,e,f,g) Perl_newWHILEOP(aTHX_ a,b,c,d,e,f,g) +#if defined(USE_THREADS) +#define new_struct_thread(a) Perl_new_struct_thread(aTHX_ a) +#endif +#define new_stackinfo(a,b) Perl_new_stackinfo(aTHX_ a,b) +#define nextargv(a) Perl_nextargv(aTHX_ a) +#define ninstr(a,b,c,d) Perl_ninstr(aTHX_ a,b,c,d) +#define oopsCV(a) Perl_oopsCV(aTHX_ a) +#define op_free(a) Perl_op_free(aTHX_ a) +#define package(a) Perl_package(aTHX_ a) +#define pad_alloc(a,b) Perl_pad_alloc(aTHX_ a,b) +#define pad_allocmy(a) Perl_pad_allocmy(aTHX_ a) +#define pad_findmy(a) Perl_pad_findmy(aTHX_ a) +#define oopsAV(a) Perl_oopsAV(aTHX_ a) +#define oopsHV(a) Perl_oopsHV(aTHX_ a) +#define pad_leavemy(a) Perl_pad_leavemy(aTHX_ a) +#define pad_sv(a) Perl_pad_sv(aTHX_ a) +#define pad_free(a) Perl_pad_free(aTHX_ a) +#define pad_reset() Perl_pad_reset(aTHX) +#define pad_swipe(a) Perl_pad_swipe(aTHX_ a) +#define peep(a) Perl_peep(aTHX_ a) +#define call_atexit(a,b) Perl_call_atexit(aTHX_ a,b) +#define call_argv(a,b,c) Perl_call_argv(aTHX_ a,b,c) +#define call_method(a,b) Perl_call_method(aTHX_ a,b) +#define call_pv(a,b) Perl_call_pv(aTHX_ a,b) +#define call_sv(a,b) Perl_call_sv(aTHX_ a,b) +#define eval_pv(a,b) Perl_eval_pv(aTHX_ a,b) +#define eval_sv(a,b) Perl_eval_sv(aTHX_ a,b) +#define get_sv(a,b) Perl_get_sv(aTHX_ a,b) +#define get_av(a,b) Perl_get_av(aTHX_ a,b) +#define get_hv(a,b) Perl_get_hv(aTHX_ a,b) +#define get_cv(a,b) Perl_get_cv(aTHX_ a,b) +#define init_i18nl10n(a) Perl_init_i18nl10n(aTHX_ a) +#define init_i18nl14n(a) Perl_init_i18nl14n(aTHX_ a) +#define new_collate(a) Perl_new_collate(aTHX_ a) +#define new_ctype(a) Perl_new_ctype(aTHX_ a) +#define new_numeric(a) Perl_new_numeric(aTHX_ a) +#define set_numeric_local() Perl_set_numeric_local(aTHX) +#define set_numeric_standard() Perl_set_numeric_standard(aTHX) +#define require_pv(a) Perl_require_pv(aTHX_ a) +#define pidgone(a,b) Perl_pidgone(aTHX_ a,b) +#define pmflag(a,b) Perl_pmflag(aTHX_ a,b) +#define pmruntime(a,b,c) Perl_pmruntime(aTHX_ a,b,c) +#define pmtrans(a,b,c) Perl_pmtrans(aTHX_ a,b,c) +#define pop_return() Perl_pop_return(aTHX) +#define pop_scope() Perl_pop_scope(aTHX) +#define prepend_elem(a,b,c) Perl_prepend_elem(aTHX_ a,b,c) +#define push_return(a) Perl_push_return(aTHX_ a) +#define push_scope() Perl_push_scope(aTHX) +#define ref(a,b) Perl_ref(aTHX_ a,b) +#define refkids(a,b) Perl_refkids(aTHX_ a,b) +#define regdump(a) Perl_regdump(aTHX_ a) +#define pregexec(a,b,c,d,e,f,g) Perl_pregexec(aTHX_ a,b,c,d,e,f,g) +#define pregfree(a) Perl_pregfree(aTHX_ a) +#define pregcomp(a,b,c) Perl_pregcomp(aTHX_ a,b,c) +#define regexec_flags(a,b,c,d,e,f,g,h) Perl_regexec_flags(aTHX_ a,b,c,d,e,f,g,h) +#define regnext(a) Perl_regnext(aTHX_ a) +#define regprop(a,b) Perl_regprop(aTHX_ a,b) +#define repeatcpy(a,b,c,d) Perl_repeatcpy(aTHX_ a,b,c,d) +#define rninstr(a,b,c,d) Perl_rninstr(aTHX_ a,b,c,d) +#define rsignal(a,b) Perl_rsignal(aTHX_ a,b) +#define rsignal_restore(a,b) Perl_rsignal_restore(aTHX_ a,b) +#define rsignal_save(a,b,c) Perl_rsignal_save(aTHX_ a,b,c) +#define rsignal_state(a) Perl_rsignal_state(aTHX_ a) +#define rxres_free(a) Perl_rxres_free(aTHX_ a) +#define rxres_restore(a,b) Perl_rxres_restore(aTHX_ a,b) +#define rxres_save(a,b) Perl_rxres_save(aTHX_ a,b) +#if !defined(HAS_RENAME) +#define same_dirent(a,b) Perl_same_dirent(aTHX_ a,b) +#endif +#define savepv(a) Perl_savepv(aTHX_ a) +#define savepvn(a,b) Perl_savepvn(aTHX_ a,b) +#define savestack_grow() Perl_savestack_grow(aTHX) +#define save_aelem(a,b,c) Perl_save_aelem(aTHX_ a,b,c) +#define save_alloc(a,b) Perl_save_alloc(aTHX_ a,b) +#define save_aptr(a) Perl_save_aptr(aTHX_ a) +#define save_ary(a) Perl_save_ary(aTHX_ a) +#define save_clearsv(a) Perl_save_clearsv(aTHX_ a) +#define save_delete(a,b,c) Perl_save_delete(aTHX_ a,b,c) +#define save_destructor(a,b) Perl_save_destructor(aTHX_ a,b) +#define save_freesv(a) Perl_save_freesv(aTHX_ a) +#define save_freeop(a) Perl_save_freeop(aTHX_ a) +#define save_freepv(a) Perl_save_freepv(aTHX_ a) +#define save_generic_svref(a) Perl_save_generic_svref(aTHX_ a) +#define save_gp(a,b) Perl_save_gp(aTHX_ a,b) +#define save_hash(a) Perl_save_hash(aTHX_ a) +#define save_helem(a,b,c) Perl_save_helem(aTHX_ a,b,c) +#define save_hints() Perl_save_hints(aTHX) +#define save_hptr(a) Perl_save_hptr(aTHX_ a) +#define save_I16(a) Perl_save_I16(aTHX_ a) +#define save_I32(a) Perl_save_I32(aTHX_ a) +#define save_int(a) Perl_save_int(aTHX_ a) +#define save_item(a) Perl_save_item(aTHX_ a) +#define save_iv(a) Perl_save_iv(aTHX_ a) +#define save_list(a,b) Perl_save_list(aTHX_ a,b) +#define save_long(a) Perl_save_long(aTHX_ a) +#define save_nogv(a) Perl_save_nogv(aTHX_ a) +#define save_op() Perl_save_op(aTHX) +#define save_scalar(a) Perl_save_scalar(aTHX_ a) +#define save_pptr(a) Perl_save_pptr(aTHX_ a) +#define save_re_context() Perl_save_re_context(aTHX) +#define save_sptr(a) Perl_save_sptr(aTHX_ a) +#define save_svref(a) Perl_save_svref(aTHX_ a) +#define save_threadsv(a) Perl_save_threadsv(aTHX_ a) +#define sawparens(a) Perl_sawparens(aTHX_ a) +#define scalar(a) Perl_scalar(aTHX_ a) +#define scalarkids(a) Perl_scalarkids(aTHX_ a) +#define scalarseq(a) Perl_scalarseq(aTHX_ a) +#define scalarvoid(a) Perl_scalarvoid(aTHX_ a) +#define scan_bin(a,b,c) Perl_scan_bin(aTHX_ a,b,c) +#define scan_hex(a,b,c) Perl_scan_hex(aTHX_ a,b,c) +#define scan_num(a) Perl_scan_num(aTHX_ a) +#define scan_oct(a,b,c) Perl_scan_oct(aTHX_ a,b,c) +#define scope(a) Perl_scope(aTHX_ a) +#define screaminstr(a,b,c,d,e,f) Perl_screaminstr(aTHX_ a,b,c,d,e,f) +#if !defined(VMS) +#define setenv_getix(a) Perl_setenv_getix(aTHX_ a) +#endif +#define setdefout(a) Perl_setdefout(aTHX_ a) +#define sharepvn(a,b,c) Perl_sharepvn(aTHX_ a,b,c) +#define share_hek(a,b,c) Perl_share_hek(aTHX_ a,b,c) #define sighandler Perl_sighandler -#define stack_grow Perl_stack_grow -#define start_subparse Perl_start_subparse -#define sub_crush_depth Perl_sub_crush_depth -#define sv_2bool Perl_sv_2bool -#define sv_2cv Perl_sv_2cv -#define sv_2io Perl_sv_2io -#define sv_2iv Perl_sv_2iv -#define sv_2mortal Perl_sv_2mortal -#define sv_2nv Perl_sv_2nv -#define sv_2pv Perl_sv_2pv -#define sv_2pv_nolen Perl_sv_2pv_nolen -#define sv_2uv Perl_sv_2uv -#define sv_add_arena Perl_sv_add_arena -#define sv_backoff Perl_sv_backoff -#define sv_bless Perl_sv_bless -#define sv_catpv Perl_sv_catpv -#define sv_catpv_mg Perl_sv_catpv_mg -#define sv_catpvf Perl_sv_catpvf -#define sv_catpvf_mg Perl_sv_catpvf_mg -#define sv_catpvn Perl_sv_catpvn -#define sv_catpvn_mg Perl_sv_catpvn_mg -#define sv_catsv Perl_sv_catsv -#define sv_catsv_mg Perl_sv_catsv_mg -#define sv_chop Perl_sv_chop -#define sv_clean_all Perl_sv_clean_all -#define sv_clean_objs Perl_sv_clean_objs -#define sv_clear Perl_sv_clear -#define sv_cmp Perl_sv_cmp -#define sv_cmp_locale Perl_sv_cmp_locale -#define sv_collxfrm Perl_sv_collxfrm -#define sv_compile_2op Perl_sv_compile_2op -#define sv_dec Perl_sv_dec -#define sv_derived_from Perl_sv_derived_from -#define sv_dump Perl_sv_dump -#define sv_eq Perl_sv_eq -#define sv_force_normal Perl_sv_force_normal -#define sv_free Perl_sv_free -#define sv_free_arenas Perl_sv_free_arenas -#define sv_gets Perl_sv_gets -#define sv_grow Perl_sv_grow -#define sv_inc Perl_sv_inc -#define sv_insert Perl_sv_insert -#define sv_isa Perl_sv_isa -#define sv_isobject Perl_sv_isobject -#define sv_iv Perl_sv_iv -#define sv_len Perl_sv_len -#define sv_len_utf8 Perl_sv_len_utf8 -#define sv_magic Perl_sv_magic -#define sv_mortalcopy Perl_sv_mortalcopy -#define sv_newmortal Perl_sv_newmortal -#define sv_newref Perl_sv_newref -#define sv_nv Perl_sv_nv -#define sv_peek Perl_sv_peek -#define sv_pos_b2u Perl_sv_pos_b2u -#define sv_pos_u2b Perl_sv_pos_u2b -#define sv_pv Perl_sv_pv -#define sv_pvn Perl_sv_pvn -#define sv_pvn_force Perl_sv_pvn_force -#define sv_reftype Perl_sv_reftype -#define sv_replace Perl_sv_replace -#define sv_report_used Perl_sv_report_used -#define sv_reset Perl_sv_reset -#define sv_rvweaken Perl_sv_rvweaken -#define sv_setiv Perl_sv_setiv -#define sv_setiv_mg Perl_sv_setiv_mg -#define sv_setnv Perl_sv_setnv -#define sv_setnv_mg Perl_sv_setnv_mg -#define sv_setpv Perl_sv_setpv -#define sv_setpv_mg Perl_sv_setpv_mg -#define sv_setpvf Perl_sv_setpvf -#define sv_setpvf_mg Perl_sv_setpvf_mg -#define sv_setpviv Perl_sv_setpviv -#define sv_setpviv_mg Perl_sv_setpviv_mg -#define sv_setpvn Perl_sv_setpvn -#define sv_setpvn_mg Perl_sv_setpvn_mg -#define sv_setref_iv Perl_sv_setref_iv -#define sv_setref_nv Perl_sv_setref_nv -#define sv_setref_pv Perl_sv_setref_pv -#define sv_setref_pvn Perl_sv_setref_pvn -#define sv_setsv Perl_sv_setsv -#define sv_setsv_mg Perl_sv_setsv_mg -#define sv_setuv Perl_sv_setuv -#define sv_setuv_mg Perl_sv_setuv_mg -#define sv_taint Perl_sv_taint -#define sv_tainted Perl_sv_tainted -#define sv_true Perl_sv_true -#define sv_unmagic Perl_sv_unmagic -#define sv_unref Perl_sv_unref -#define sv_untaint Perl_sv_untaint -#define sv_upgrade Perl_sv_upgrade -#define sv_usepvn Perl_sv_usepvn -#define sv_usepvn_mg Perl_sv_usepvn_mg -#define sv_uv Perl_sv_uv -#define sv_vcatpvfn Perl_sv_vcatpvfn -#define sv_vsetpvfn Perl_sv_vsetpvfn -#define swash_fetch Perl_swash_fetch -#define swash_init Perl_swash_init -#define taint_env Perl_taint_env -#define taint_proper Perl_taint_proper -#define tmps_grow Perl_tmps_grow -#define to_uni_lower Perl_to_uni_lower -#define to_uni_lower_lc Perl_to_uni_lower_lc -#define to_uni_title Perl_to_uni_title -#define to_uni_title_lc Perl_to_uni_title_lc -#define to_uni_upper Perl_to_uni_upper -#define to_uni_upper_lc Perl_to_uni_upper_lc -#define to_utf8_lower Perl_to_utf8_lower -#define to_utf8_title Perl_to_utf8_title -#define to_utf8_upper Perl_to_utf8_upper -#define unlnk Perl_unlnk -#define unlock_condpair Perl_unlock_condpair -#define unshare_hek Perl_unshare_hek -#define unsharepvn Perl_unsharepvn -#define utf16_to_utf8 Perl_utf16_to_utf8 -#define utf16_to_utf8_reversed Perl_utf16_to_utf8_reversed -#define utf8_distance Perl_utf8_distance -#define utf8_hop Perl_utf8_hop -#define utf8_to_uv Perl_utf8_to_uv -#define utilize Perl_utilize -#define uv_to_utf8 Perl_uv_to_utf8 -#define vivify_defelem Perl_vivify_defelem -#define vivify_ref Perl_vivify_ref -#define wait4pid Perl_wait4pid -#define warn Perl_warn -#define warner Perl_warner -#define watch Perl_watch -#define whichsig Perl_whichsig -#define yydestruct Perl_yydestruct -#define yyerror Perl_yyerror -#define yylex Perl_yylex -#define yyparse Perl_yyparse -#define yywarn Perl_yywarn +#define stack_grow(a,b,c) Perl_stack_grow(aTHX_ a,b,c) +#define start_subparse(a,b) Perl_start_subparse(aTHX_ a,b) +#define sub_crush_depth(a) Perl_sub_crush_depth(aTHX_ a) +#define sv_2bool(a) Perl_sv_2bool(aTHX_ a) +#define sv_2cv(a,b,c,d) Perl_sv_2cv(aTHX_ a,b,c,d) +#define sv_2io(a) Perl_sv_2io(aTHX_ a) +#define sv_2iv(a) Perl_sv_2iv(aTHX_ a) +#define sv_2mortal(a) Perl_sv_2mortal(aTHX_ a) +#define sv_2nv(a) Perl_sv_2nv(aTHX_ a) +#define sv_2pv(a,b) Perl_sv_2pv(aTHX_ a,b) +#define sv_2uv(a) Perl_sv_2uv(aTHX_ a) +#define sv_iv(a) Perl_sv_iv(aTHX_ a) +#define sv_uv(a) Perl_sv_uv(aTHX_ a) +#define sv_nv(a) Perl_sv_nv(aTHX_ a) +#define sv_pvn(a,b) Perl_sv_pvn(aTHX_ a,b) +#define sv_true(a) Perl_sv_true(aTHX_ a) +#define sv_add_arena(a,b,c) Perl_sv_add_arena(aTHX_ a,b,c) +#define sv_backoff(a) Perl_sv_backoff(aTHX_ a) +#define sv_bless(a,b) Perl_sv_bless(aTHX_ a,b) +#define sv_catpv(a,b) Perl_sv_catpv(aTHX_ a,b) +#define sv_catpvn(a,b,c) Perl_sv_catpvn(aTHX_ a,b,c) +#define sv_catsv(a,b) Perl_sv_catsv(aTHX_ a,b) +#define sv_chop(a,b) Perl_sv_chop(aTHX_ a,b) +#define sv_clean_all() Perl_sv_clean_all(aTHX) +#define sv_clean_objs() Perl_sv_clean_objs(aTHX) +#define sv_clear(a) Perl_sv_clear(aTHX_ a) +#define sv_cmp(a,b) Perl_sv_cmp(aTHX_ a,b) +#define sv_cmp_locale(a,b) Perl_sv_cmp_locale(aTHX_ a,b) +#if defined(USE_LOCALE_COLLATE) +#define sv_collxfrm(a,b) Perl_sv_collxfrm(aTHX_ a,b) +#endif +#define sv_compile_2op(a,b,c,d) Perl_sv_compile_2op(aTHX_ a,b,c,d) +#define sv_dec(a) Perl_sv_dec(aTHX_ a) +#define sv_dump(a) Perl_sv_dump(aTHX_ a) +#define sv_derived_from(a,b) Perl_sv_derived_from(aTHX_ a,b) +#define sv_eq(a,b) Perl_sv_eq(aTHX_ a,b) +#define sv_free(a) Perl_sv_free(aTHX_ a) +#define sv_free_arenas() Perl_sv_free_arenas(aTHX) +#define sv_gets(a,b,c) Perl_sv_gets(aTHX_ a,b,c) +#define sv_grow(a,b) Perl_sv_grow(aTHX_ a,b) +#define sv_inc(a) Perl_sv_inc(aTHX_ a) +#define sv_insert(a,b,c,d,e) Perl_sv_insert(aTHX_ a,b,c,d,e) +#define sv_isa(a,b) Perl_sv_isa(aTHX_ a,b) +#define sv_isobject(a) Perl_sv_isobject(aTHX_ a) +#define sv_len(a) Perl_sv_len(aTHX_ a) +#define sv_len_utf8(a) Perl_sv_len_utf8(aTHX_ a) +#define sv_magic(a,b,c,d,e) Perl_sv_magic(aTHX_ a,b,c,d,e) +#define sv_mortalcopy(a) Perl_sv_mortalcopy(aTHX_ a) +#define sv_newmortal() Perl_sv_newmortal(aTHX) +#define sv_newref(a) Perl_sv_newref(aTHX_ a) +#define sv_peek(a) Perl_sv_peek(aTHX_ a) +#define sv_pos_u2b(a,b,c) Perl_sv_pos_u2b(aTHX_ a,b,c) +#define sv_pos_b2u(a,b) Perl_sv_pos_b2u(aTHX_ a,b) +#define sv_pvn_force(a,b) Perl_sv_pvn_force(aTHX_ a,b) +#define sv_reftype(a,b) Perl_sv_reftype(aTHX_ a,b) +#define sv_replace(a,b) Perl_sv_replace(aTHX_ a,b) +#define sv_report_used() Perl_sv_report_used(aTHX) +#define sv_reset(a,b) Perl_sv_reset(aTHX_ a,b) +#define sv_setiv(a,b) Perl_sv_setiv(aTHX_ a,b) +#define sv_setpviv(a,b) Perl_sv_setpviv(aTHX_ a,b) +#define sv_setuv(a,b) Perl_sv_setuv(aTHX_ a,b) +#define sv_setnv(a,b) Perl_sv_setnv(aTHX_ a,b) +#define sv_setref_iv(a,b,c) Perl_sv_setref_iv(aTHX_ a,b,c) +#define sv_setref_nv(a,b,c) Perl_sv_setref_nv(aTHX_ a,b,c) +#define sv_setref_pv(a,b,c) Perl_sv_setref_pv(aTHX_ a,b,c) +#define sv_setref_pvn(a,b,c,d) Perl_sv_setref_pvn(aTHX_ a,b,c,d) +#define sv_setpv(a,b) Perl_sv_setpv(aTHX_ a,b) +#define sv_setpvn(a,b,c) Perl_sv_setpvn(aTHX_ a,b,c) +#define sv_setsv(a,b) Perl_sv_setsv(aTHX_ a,b) +#define sv_taint(a) Perl_sv_taint(aTHX_ a) +#define sv_tainted(a) Perl_sv_tainted(aTHX_ a) +#define sv_unmagic(a,b) Perl_sv_unmagic(aTHX_ a,b) +#define sv_unref(a) Perl_sv_unref(aTHX_ a) +#define sv_untaint(a) Perl_sv_untaint(aTHX_ a) +#define sv_upgrade(a,b) Perl_sv_upgrade(aTHX_ a,b) +#define sv_usepvn(a,b,c) Perl_sv_usepvn(aTHX_ a,b,c) +#define sv_vcatpvfn(a,b,c,d,e,f,g) Perl_sv_vcatpvfn(aTHX_ a,b,c,d,e,f,g) +#define sv_vsetpvfn(a,b,c,d,e,f,g) Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g) +#define swash_init(a,b,c,d,e) Perl_swash_init(aTHX_ a,b,c,d,e) +#define swash_fetch(a,b) Perl_swash_fetch(aTHX_ a,b) +#define taint_env() Perl_taint_env(aTHX) +#define taint_proper(a,b) Perl_taint_proper(aTHX_ a,b) +#define to_utf8_lower(a) Perl_to_utf8_lower(aTHX_ a) +#define to_utf8_upper(a) Perl_to_utf8_upper(aTHX_ a) +#define to_utf8_title(a) Perl_to_utf8_title(aTHX_ a) +#if defined(UNLINK_ALL_VERSIONS) +#define unlnk(a) Perl_unlnk(aTHX_ a) +#endif +#if defined(USE_THREADS) +#define unlock_condpair(a) Perl_unlock_condpair(aTHX_ a) +#endif +#define unsharepvn(a,b,c) Perl_unsharepvn(aTHX_ a,b,c) +#define unshare_hek(a) Perl_unshare_hek(aTHX_ a) +#define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e) +#define utf16_to_utf8(a,b,c) Perl_utf16_to_utf8(aTHX_ a,b,c) +#define utf16_to_utf8_reversed(a,b,c) Perl_utf16_to_utf8_reversed(aTHX_ a,b,c) +#define utf8_distance(a,b) Perl_utf8_distance(aTHX_ a,b) +#define utf8_hop(a,b) Perl_utf8_hop(aTHX_ a,b) +#define utf8_to_uv(a,b) Perl_utf8_to_uv(aTHX_ a,b) +#define uv_to_utf8(a,b) Perl_uv_to_utf8(aTHX_ a,b) +#define vivify_defelem(a) Perl_vivify_defelem(aTHX_ a) +#define vivify_ref(a,b) Perl_vivify_ref(aTHX_ a,b) +#define wait4pid(a,b,c) Perl_wait4pid(aTHX_ a,b,c) +#define watch(a) Perl_watch(aTHX_ a) +#define whichsig(a) Perl_whichsig(aTHX_ a) +#define yyerror(a) Perl_yyerror(aTHX_ a) +#if defined(USE_PURE_BISON) +#define yylex(a,b) Perl_yylex(aTHX_ a,b) +#else +#define yylex() Perl_yylex(aTHX) +#endif +#define yyparse() Perl_yyparse(aTHX) +#define yywarn(a) Perl_yywarn(aTHX_ a) +#if defined(MYMALLOC) +#define dump_mstats(a) Perl_dump_mstats(aTHX_ a) +#endif +#define safesysmalloc(a) Perl_safesysmalloc(aTHX_ a) +#define safesyscalloc(a,b) Perl_safesyscalloc(aTHX_ a,b) +#define safesysrealloc(a,b) Perl_safesysrealloc(aTHX_ a,b) +#define safesysfree(a) Perl_safesysfree(aTHX_ a) +#if defined(LEAKTEST) +#define safexmalloc(a,b) Perl_safexmalloc(aTHX_ a,b) +#define safexcalloc(a,b,c) Perl_safexcalloc(aTHX_ a,b,c) +#define safexrealloc(a,b) Perl_safexrealloc(aTHX_ a,b) +#define safexfree(a) Perl_safexfree(aTHX_ a) +#endif +#if defined(PERL_GLOBAL_STRUCT) +#define GetVars() Perl_GetVars(aTHX) +#endif +#define yydestruct(a) Perl_yydestruct(aTHX_ a) +#define runops_standard() Perl_runops_standard(aTHX) +#define runops_debug() Perl_runops_debug(aTHX) +#if defined(WIN32) +#define ErrorNo() Perl_ErrorNo(aTHX) +#endif +#define sv_catpv_mg(a,b) Perl_sv_catpv_mg(aTHX_ a,b) +#define sv_catpvn_mg(a,b,c) Perl_sv_catpvn_mg(aTHX_ a,b,c) +#define sv_catsv_mg(a,b) Perl_sv_catsv_mg(aTHX_ a,b) +#define sv_setiv_mg(a,b) Perl_sv_setiv_mg(aTHX_ a,b) +#define sv_setpviv_mg(a,b) Perl_sv_setpviv_mg(aTHX_ a,b) +#define sv_setuv_mg(a,b) Perl_sv_setuv_mg(aTHX_ a,b) +#define sv_setnv_mg(a,b) Perl_sv_setnv_mg(aTHX_ a,b) +#define sv_setpv_mg(a,b) Perl_sv_setpv_mg(aTHX_ a,b) +#define sv_setpvn_mg(a,b,c) Perl_sv_setpvn_mg(aTHX_ a,b,c) +#define sv_setsv_mg(a,b) Perl_sv_setsv_mg(aTHX_ a,b) +#define sv_usepvn_mg(a,b,c) Perl_sv_usepvn_mg(aTHX_ a,b,c) +#define get_vtbl(a) Perl_get_vtbl(aTHX_ a) +#define pv_display(a,b,c,d,e) Perl_pv_display(aTHX_ a,b,c,d,e) +#define do_gv_dump(a,b,c,d) Perl_do_gv_dump(aTHX_ a,b,c,d) +#define do_gvgv_dump(a,b,c,d) Perl_do_gvgv_dump(aTHX_ a,b,c,d) +#define do_hv_dump(a,b,c,d) Perl_do_hv_dump(aTHX_ a,b,c,d) +#define do_magic_dump(a,b,c,d,e,f,g) Perl_do_magic_dump(aTHX_ a,b,c,d,e,f,g) +#define do_op_dump(a,b,c) Perl_do_op_dump(aTHX_ a,b,c) +#define do_pmop_dump(a,b,c) Perl_do_pmop_dump(aTHX_ a,b,c) +#define do_sv_dump(a,b,c,d,e,f,g) Perl_do_sv_dump(aTHX_ a,b,c,d,e,f,g) +#define magic_dump(a) Perl_magic_dump(aTHX_ a) +#define reginitcolors() Perl_reginitcolors(aTHX) +#define sv_2pv_nolen(a) Perl_sv_2pv_nolen(aTHX_ a) +#define sv_pv(a) Perl_sv_pv(aTHX_ a) +#define sv_force_normal(a) Perl_sv_force_normal(aTHX_ a) +#define tmps_grow(a) Perl_tmps_grow(aTHX_ a) +#define sv_rvweaken(a) Perl_sv_rvweaken(aTHX_ a) +#define magic_killbackrefs(a,b) Perl_magic_killbackrefs(aTHX_ a,b) +#if defined(PERL_IN_AV_C) +#define avhv_index_sv(a) S_avhv_index_sv(aTHX_ a) +#endif +#if defined(PERL_IN_DOOP_C) +#define do_trans_CC_simple(a) S_do_trans_CC_simple(aTHX_ a) +#define do_trans_CC_count(a) S_do_trans_CC_count(aTHX_ a) +#define do_trans_CC_complex(a) S_do_trans_CC_complex(aTHX_ a) +#define do_trans_UU_simple(a) S_do_trans_UU_simple(aTHX_ a) +#define do_trans_UU_count(a) S_do_trans_UU_count(aTHX_ a) +#define do_trans_UU_complex(a) S_do_trans_UU_complex(aTHX_ a) +#define do_trans_UC_simple(a) S_do_trans_UC_simple(aTHX_ a) +#define do_trans_CU_simple(a) S_do_trans_CU_simple(aTHX_ a) +#define do_trans_UC_trivial(a) S_do_trans_UC_trivial(aTHX_ a) +#define do_trans_CU_trivial(a) S_do_trans_CU_trivial(aTHX_ a) +#endif +#if defined(PERL_IN_GLOBALS_C) +# if defined(WIN32) +#define do_aspawn(a,b,c) S_do_aspawn(aTHX_ a,b,c) +# endif +#endif +#if defined(PERL_IN_GV_C) +#define gv_init_sv(a,b) S_gv_init_sv(aTHX_ a,b) +#endif +#if defined(PERL_IN_HV_C) +#define hsplit(a) S_hsplit(aTHX_ a) +#define hfreeentries(a) S_hfreeentries(aTHX_ a) +#define more_he() S_more_he(aTHX) +#define new_he() S_new_he(aTHX) +#define del_he(a) S_del_he(aTHX_ a) +#define save_hek(a,b,c) S_save_hek(aTHX_ a,b,c) +#define hv_magic_check(a,b,c) S_hv_magic_check(aTHX_ a,b,c) +#endif +#if defined(PERL_IN_MG_C) +#define save_magic(a,b) S_save_magic(aTHX_ a,b) +#define magic_methpack(a,b,c) S_magic_methpack(aTHX_ a,b,c) +#define magic_methcall(a,b,c,d,e,f) S_magic_methcall(aTHX_ a,b,c,d,e,f) +#define unwind_handler_stack(a) S_unwind_handler_stack(aTHX_ a) +#define restore_magic(a) S_restore_magic(aTHX_ a) +#endif +#if defined(PERL_IN_OP_C) +#define list_assignment(a) S_list_assignment(aTHX_ a) +#define bad_type(a,b,c,d) S_bad_type(aTHX_ a,b,c,d) +#define modkids(a,b) S_modkids(aTHX_ a,b) +#define no_bareword_allowed(a) S_no_bareword_allowed(aTHX_ a) +#define no_fh_allowed(a) S_no_fh_allowed(aTHX_ a) +#define scalarboolean(a) S_scalarboolean(aTHX_ a) +#define too_few_arguments(a,b) S_too_few_arguments(aTHX_ a,b) +#define too_many_arguments(a,b) S_too_many_arguments(aTHX_ a,b) +#define null(a) S_null(aTHX_ a) +#define pad_findlex(a,b,c,d,e,f,g) S_pad_findlex(aTHX_ a,b,c,d,e,f,g) +#define newDEFSVOP() S_newDEFSVOP(aTHX) +#define new_logop(a,b,c,d) S_new_logop(aTHX_ a,b,c,d) +#define simplify_sort(a) S_simplify_sort(aTHX_ a) +#define is_handle_constructor(a,b) S_is_handle_constructor(aTHX_ a,b) +#define gv_ename(a) S_gv_ename(aTHX_ a) +#define cv_clone2(a,b) S_cv_clone2(aTHX_ a,b) +#define scalar_mod_type(a,b) S_scalar_mod_type(aTHX_ a,b) +# if defined(PL_OP_SLAB_ALLOC) +#define Slab_Alloc(a,b) S_Slab_Alloc(aTHX_ a,b) +# endif +#endif +#if defined(PERL_IN_PERL_C) +#define find_beginning() S_find_beginning(aTHX) +#define forbid_setid(a) S_forbid_setid(aTHX_ a) +#define incpush(a,b) S_incpush(aTHX_ a,b) +#define init_interp() S_init_interp(aTHX) +#define init_ids() S_init_ids(aTHX) +#define init_debugger() S_init_debugger(aTHX) +#define init_lexer() S_init_lexer(aTHX) +#define init_main_stash() S_init_main_stash(aTHX) +#define init_perllib() S_init_perllib(aTHX) +#define init_postdump_symbols(a,b,c) S_init_postdump_symbols(aTHX_ a,b,c) +#define init_predump_symbols() S_init_predump_symbols(aTHX) +#define my_exit_jump() S_my_exit_jump(aTHX) +#define nuke_stacks() S_nuke_stacks(aTHX) +#define open_script(a,b,c,d) S_open_script(aTHX_ a,b,c,d) +#define usage(a) S_usage(aTHX_ a) +#define validate_suid(a,b,c) S_validate_suid(aTHX_ a,b,c) +#define read_e_script(a,b,c) S_read_e_script(aTHX_ a,b,c) +# if defined(IAMSUID) +#define fd_on_nosuid_fs(a) S_fd_on_nosuid_fs(aTHX_ a) +# endif +#define parse_body(a) S_parse_body(aTHX_ a) +#define run_body(a) S_run_body(aTHX_ a) +#define call_body(a) S_call_body(aTHX_ a) +#define call_xbody(a,b) S_call_xbody(aTHX_ a,b) +#define call_list_body(a) S_call_list_body(aTHX_ a) +# if defined(USE_THREADS) +#define init_main_thread() S_init_main_thread(aTHX) +# endif +#endif +#if defined(PERL_IN_PP_C) +#define doencodes(a,b,c) S_doencodes(aTHX_ a,b,c) +#define refto(a) S_refto(aTHX_ a) +#define seed() S_seed(aTHX) +#define mul128(a,b) S_mul128(aTHX_ a,b) +#define is_an_int(a,b) S_is_an_int(aTHX_ a,b) +#define div128(a,b) S_div128(aTHX_ a,b) +#endif +#if defined(PERL_IN_PP_CTL_C) +#define docatch(a) S_docatch(aTHX_ a) +#define docatch_body(a) S_docatch_body(aTHX_ a) +#define dofindlabel(a,b,c,d) S_dofindlabel(aTHX_ a,b,c,d) +#define doparseform(a) S_doparseform(aTHX_ a) +#define dopoptoeval(a) S_dopoptoeval(aTHX_ a) +#define dopoptolabel(a) S_dopoptolabel(aTHX_ a) +#define dopoptoloop(a) S_dopoptoloop(aTHX_ a) +#define dopoptosub(a) S_dopoptosub(aTHX_ a) +#define dopoptosub_at(a,b) S_dopoptosub_at(aTHX_ a,b) +#define free_closures() S_free_closures(aTHX) +#define save_lines(a,b) S_save_lines(aTHX_ a,b) +#define doeval(a,b) S_doeval(aTHX_ a,b) +#define doopen_pmc(a,b) S_doopen_pmc(aTHX_ a,b) +#define qsortsv(a,b,c) S_qsortsv(aTHX_ a,b,c) +#define sortcv(a,b) S_sortcv(aTHX_ a,b) +#define sv_ncmp(a,b) S_sv_ncmp(aTHX_ a,b) +#define sv_i_ncmp(a,b) S_sv_i_ncmp(aTHX_ a,b) +#define amagic_ncmp(a,b) S_amagic_ncmp(aTHX_ a,b) +#define amagic_i_ncmp(a,b) S_amagic_i_ncmp(aTHX_ a,b) +#define amagic_cmp(a,b) S_amagic_cmp(aTHX_ a,b) +#define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b) +#endif +#if defined(PERL_IN_PP_HOT_C) +#define get_db_sub(a,b) S_get_db_sub(aTHX_ a,b) +# if defined(USE_THREADS) +#define unset_cvowner(a) S_unset_cvowner(aTHX_ a) +# endif +#endif +#if defined(PERL_IN_PP_SYS_C) +#define doform(a,b,c) S_doform(aTHX_ a,b,c) +#define emulate_eaccess(a,b) S_emulate_eaccess(aTHX_ a,b) +# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +#define dooneliner(a,b) S_dooneliner(aTHX_ a,b) +# endif +#endif +#if defined(PERL_IN_REGCOMP_C) +#define reg(a,b) S_reg(aTHX_ a,b) +#define reganode(a,b) S_reganode(aTHX_ a,b) +#define regatom(a) S_regatom(aTHX_ a) +#define regbranch(a,b) S_regbranch(aTHX_ a,b) +#define regc(a,b) S_regc(aTHX_ a,b) +#define reguni(a,b,c) S_reguni(aTHX_ a,b,c) +#define regclass() S_regclass(aTHX) +#define regclassutf8() S_regclassutf8(aTHX) +#define regcurly(a) S_regcurly(aTHX_ a) +#define reg_node(a) S_reg_node(aTHX_ a) +#define regpiece(a) S_regpiece(aTHX_ a) +#define reginsert(a,b) S_reginsert(aTHX_ a,b) +#define regoptail(a,b) S_regoptail(aTHX_ a,b) +#define regtail(a,b) S_regtail(aTHX_ a,b) +#define regwhite(a,b) S_regwhite(aTHX_ a,b) +#define nextchar() S_nextchar(aTHX) +#define dumpuntil(a,b,c,d,e) S_dumpuntil(aTHX_ a,b,c,d,e) +#define scan_commit(a) S_scan_commit(aTHX_ a) +#define study_chunk(a,b,c,d,e) S_study_chunk(aTHX_ a,b,c,d,e) +#define add_data(a,b) S_add_data(aTHX_ a,b) +#define regpposixcc(a) S_regpposixcc(aTHX_ a) +#define clear_re(a) S_clear_re(aTHX_ a) +#endif +#if defined(PERL_IN_REGEXEC_C) +#define regmatch(a) S_regmatch(aTHX_ a) +#define regrepeat(a,b) S_regrepeat(aTHX_ a,b) +#define regrepeat_hard(a,b,c) S_regrepeat_hard(aTHX_ a,b,c) +#define regtry(a,b) S_regtry(aTHX_ a,b) +#define reginclass(a,b) S_reginclass(aTHX_ a,b) +#define reginclassutf8(a,b) S_reginclassutf8(aTHX_ a,b) +#define regcppush(a) S_regcppush(aTHX_ a) +#define regcppop() S_regcppop(aTHX) +#define regcp_set_to(a) S_regcp_set_to(aTHX_ a) +#define cache_re(a) S_cache_re(aTHX_ a) +#define restore_pos(a) S_restore_pos(aTHX_ a) +#define reghop(a,b) S_reghop(aTHX_ a,b) +#define reghopmaybe(a,b) S_reghopmaybe(aTHX_ a,b) +#endif +#if defined(PERL_IN_RUN_C) +#define debprof(a) S_debprof(aTHX_ a) +#endif +#if defined(PERL_IN_SCOPE_C) +#define save_scalar_at(a) S_save_scalar_at(aTHX_ a) +#endif +#if defined(PERL_IN_SV_C) +#define asIV(a) S_asIV(aTHX_ a) +#define asUV(a) S_asUV(aTHX_ a) +#define more_sv() S_more_sv(aTHX) +#define more_xiv() S_more_xiv(aTHX) +#define more_xnv() S_more_xnv(aTHX) +#define more_xpv() S_more_xpv(aTHX) +#define more_xrv() S_more_xrv(aTHX) +#define new_xiv() S_new_xiv(aTHX) +#define new_xnv() S_new_xnv(aTHX) +#define new_xpv() S_new_xpv(aTHX) +#define new_xrv() S_new_xrv(aTHX) +#define del_xiv(a) S_del_xiv(aTHX_ a) +#define del_xnv(a) S_del_xnv(aTHX_ a) +#define del_xpv(a) S_del_xpv(aTHX_ a) +#define del_xrv(a) S_del_xrv(aTHX_ a) +#define sv_unglob(a) S_sv_unglob(aTHX_ a) +#define do_report_used(a) S_do_report_used(aTHX_ a) +#define do_clean_objs(a) S_do_clean_objs(aTHX_ a) +#define do_clean_named_objs(a) S_do_clean_named_objs(aTHX_ a) +#define do_clean_all(a) S_do_clean_all(aTHX_ a) +#define not_a_number(a) S_not_a_number(aTHX_ a) +#define visit(a) S_visit(aTHX_ a) +# if defined(PURIFY) +#define reg_add(a) S_reg_add(aTHX_ a) +#define reg_remove(a) S_reg_remove(aTHX_ a) +# else +#define my_safemalloc(a) S_my_safemalloc(aTHX_ a) +# endif +#define sv_add_backref(a,b) S_sv_add_backref(aTHX_ a,b) +#define sv_del_backref(a) S_sv_del_backref(aTHX_ a) +# if defined(DEBUGGING) +#define del_sv(a) S_del_sv(aTHX_ a) +# endif +#endif +#if defined(PERL_IN_TOKE_C) +#define check_uni() S_check_uni(aTHX) +#define force_next(a) S_force_next(aTHX_ a) +#define force_version(a) S_force_version(aTHX_ a) +#define force_word(a,b,c,d,e) S_force_word(aTHX_ a,b,c,d,e) +#define tokeq(a) S_tokeq(aTHX_ a) +#define scan_const(a) S_scan_const(aTHX_ a) +#define scan_formline(a) S_scan_formline(aTHX_ a) +#define scan_heredoc(a) S_scan_heredoc(aTHX_ a) +#define scan_ident(a,b,c,d,e) S_scan_ident(aTHX_ a,b,c,d,e) +#define scan_inputsymbol(a) S_scan_inputsymbol(aTHX_ a) +#define scan_pat(a,b) S_scan_pat(aTHX_ a,b) +#define scan_str(a) S_scan_str(aTHX_ a) +#define scan_subst(a) S_scan_subst(aTHX_ a) +#define scan_trans(a) S_scan_trans(aTHX_ a) +#define scan_word(a,b,c,d,e) S_scan_word(aTHX_ a,b,c,d,e) +#define skipspace(a) S_skipspace(aTHX_ a) +#define checkcomma(a,b,c) S_checkcomma(aTHX_ a,b,c) +#define force_ident(a,b) S_force_ident(aTHX_ a,b) +#define incline(a) S_incline(aTHX_ a) +#define intuit_method(a,b) S_intuit_method(aTHX_ a,b) +#define intuit_more(a) S_intuit_more(aTHX_ a) +#define lop(a,b,c) S_lop(aTHX_ a,b,c) +#define missingterm(a) S_missingterm(aTHX_ a) +#define no_op(a,b) S_no_op(aTHX_ a,b) +#define set_csh() S_set_csh(aTHX) +#define sublex_done() S_sublex_done(aTHX) +#define sublex_push() S_sublex_push(aTHX) +#define sublex_start() S_sublex_start(aTHX) +#define filter_gets(a,b,c) S_filter_gets(aTHX_ a,b,c) +#define new_constant(a,b,c,d,e,f) S_new_constant(aTHX_ a,b,c,d,e,f) +#define ao(a) S_ao(aTHX_ a) +#define depcom() S_depcom(aTHX) +#define incl_perldb() S_incl_perldb(aTHX) +#define utf16_textfilter(a,b,c) S_utf16_textfilter(aTHX_ a,b,c) +#define utf16rev_textfilter(a,b,c) S_utf16rev_textfilter(aTHX_ a,b,c) +#define restore_rsfp(a) S_restore_rsfp(aTHX_ a) +#define restore_expect(a) S_restore_expect(aTHX_ a) +#define restore_lex_expect(a) S_restore_lex_expect(aTHX_ a) +# if defined(CRIPPLED_CC) +#define uni(a,b) S_uni(aTHX_ a,b) +# endif +# if defined(WIN32) +#define win32_textfilter(a,b,c) S_win32_textfilter(aTHX_ a,b,c) +# endif +#endif +#if defined(PERL_IN_UNIVERSAL_C) +#define isa_lookup(a,b,c,d) S_isa_lookup(aTHX_ a,b,c,d) +#endif +#if defined(PERL_IN_UTIL_C) +#define mess_alloc() S_mess_alloc(aTHX) +#define do_croak(a,b) S_do_croak(aTHX_ a,b) +#define do_warn(a,b) S_do_warn(aTHX_ a,b) +# if defined(LEAKTEST) +#define xstat(a) S_xstat(aTHX_ a) +# endif +#endif +#define ck_anoncode(a) Perl_ck_anoncode(aTHX_ a) +#define ck_bitop(a) Perl_ck_bitop(aTHX_ a) +#define ck_concat(a) Perl_ck_concat(aTHX_ a) +#define ck_defined(a) Perl_ck_defined(aTHX_ a) +#define ck_delete(a) Perl_ck_delete(aTHX_ a) +#define ck_eof(a) Perl_ck_eof(aTHX_ a) +#define ck_eval(a) Perl_ck_eval(aTHX_ a) +#define ck_exec(a) Perl_ck_exec(aTHX_ a) +#define ck_exists(a) Perl_ck_exists(aTHX_ a) +#define ck_ftst(a) Perl_ck_ftst(aTHX_ a) +#define ck_fun(a) Perl_ck_fun(aTHX_ a) +#define ck_fun_locale(a) Perl_ck_fun_locale(aTHX_ a) +#define ck_glob(a) Perl_ck_glob(aTHX_ a) +#define ck_grep(a) Perl_ck_grep(aTHX_ a) +#define ck_index(a) Perl_ck_index(aTHX_ a) +#define ck_lengthconst(a) Perl_ck_lengthconst(aTHX_ a) +#define ck_lfun(a) Perl_ck_lfun(aTHX_ a) +#define ck_listiob(a) Perl_ck_listiob(aTHX_ a) +#define ck_match(a) Perl_ck_match(aTHX_ a) +#define ck_null(a) Perl_ck_null(aTHX_ a) +#define ck_repeat(a) Perl_ck_repeat(aTHX_ a) +#define ck_require(a) Perl_ck_require(aTHX_ a) +#define ck_rfun(a) Perl_ck_rfun(aTHX_ a) +#define ck_rvconst(a) Perl_ck_rvconst(aTHX_ a) +#define ck_scmp(a) Perl_ck_scmp(aTHX_ a) +#define ck_select(a) Perl_ck_select(aTHX_ a) +#define ck_shift(a) Perl_ck_shift(aTHX_ a) +#define ck_sort(a) Perl_ck_sort(aTHX_ a) +#define ck_spair(a) Perl_ck_spair(aTHX_ a) +#define ck_split(a) Perl_ck_split(aTHX_ a) +#define ck_subr(a) Perl_ck_subr(aTHX_ a) +#define ck_svconst(a) Perl_ck_svconst(aTHX_ a) +#define ck_trunc(a) Perl_ck_trunc(aTHX_ a) +#define pp_aassign() Perl_pp_aassign(aTHX) +#define pp_abs() Perl_pp_abs(aTHX) +#define pp_accept() Perl_pp_accept(aTHX) +#define pp_add() Perl_pp_add(aTHX) +#define pp_aelem() Perl_pp_aelem(aTHX) +#define pp_aelemfast() Perl_pp_aelemfast(aTHX) +#define pp_alarm() Perl_pp_alarm(aTHX) +#define pp_and() Perl_pp_and(aTHX) +#define pp_andassign() Perl_pp_andassign(aTHX) +#define pp_anoncode() Perl_pp_anoncode(aTHX) +#define pp_anonhash() Perl_pp_anonhash(aTHX) +#define pp_anonlist() Perl_pp_anonlist(aTHX) +#define pp_aslice() Perl_pp_aslice(aTHX) +#define pp_atan2() Perl_pp_atan2(aTHX) +#define pp_av2arylen() Perl_pp_av2arylen(aTHX) +#define pp_backtick() Perl_pp_backtick(aTHX) +#define pp_bind() Perl_pp_bind(aTHX) +#define pp_binmode() Perl_pp_binmode(aTHX) +#define pp_bit_and() Perl_pp_bit_and(aTHX) +#define pp_bit_or() Perl_pp_bit_or(aTHX) +#define pp_bit_xor() Perl_pp_bit_xor(aTHX) +#define pp_bless() Perl_pp_bless(aTHX) +#define pp_caller() Perl_pp_caller(aTHX) +#define pp_chdir() Perl_pp_chdir(aTHX) +#define pp_chmod() Perl_pp_chmod(aTHX) +#define pp_chomp() Perl_pp_chomp(aTHX) +#define pp_chop() Perl_pp_chop(aTHX) +#define pp_chown() Perl_pp_chown(aTHX) +#define pp_chr() Perl_pp_chr(aTHX) +#define pp_chroot() Perl_pp_chroot(aTHX) +#define pp_close() Perl_pp_close(aTHX) +#define pp_closedir() Perl_pp_closedir(aTHX) +#define pp_complement() Perl_pp_complement(aTHX) +#define pp_concat() Perl_pp_concat(aTHX) +#define pp_cond_expr() Perl_pp_cond_expr(aTHX) +#define pp_connect() Perl_pp_connect(aTHX) +#define pp_const() Perl_pp_const(aTHX) +#define pp_cos() Perl_pp_cos(aTHX) +#define pp_crypt() Perl_pp_crypt(aTHX) +#define pp_dbmclose() Perl_pp_dbmclose(aTHX) +#define pp_dbmopen() Perl_pp_dbmopen(aTHX) +#define pp_dbstate() Perl_pp_dbstate(aTHX) +#define pp_defined() Perl_pp_defined(aTHX) +#define pp_delete() Perl_pp_delete(aTHX) +#define pp_die() Perl_pp_die(aTHX) +#define pp_divide() Perl_pp_divide(aTHX) +#define pp_dofile() Perl_pp_dofile(aTHX) +#define pp_dump() Perl_pp_dump(aTHX) +#define pp_each() Perl_pp_each(aTHX) +#define pp_egrent() Perl_pp_egrent(aTHX) +#define pp_ehostent() Perl_pp_ehostent(aTHX) +#define pp_enetent() Perl_pp_enetent(aTHX) +#define pp_enter() Perl_pp_enter(aTHX) +#define pp_entereval() Perl_pp_entereval(aTHX) +#define pp_enteriter() Perl_pp_enteriter(aTHX) +#define pp_enterloop() Perl_pp_enterloop(aTHX) +#define pp_entersub() Perl_pp_entersub(aTHX) +#define pp_entertry() Perl_pp_entertry(aTHX) +#define pp_enterwrite() Perl_pp_enterwrite(aTHX) +#define pp_eof() Perl_pp_eof(aTHX) +#define pp_eprotoent() Perl_pp_eprotoent(aTHX) +#define pp_epwent() Perl_pp_epwent(aTHX) +#define pp_eq() Perl_pp_eq(aTHX) +#define pp_eservent() Perl_pp_eservent(aTHX) +#define pp_exec() Perl_pp_exec(aTHX) +#define pp_exists() Perl_pp_exists(aTHX) +#define pp_exit() Perl_pp_exit(aTHX) +#define pp_exp() Perl_pp_exp(aTHX) +#define pp_fcntl() Perl_pp_fcntl(aTHX) +#define pp_fileno() Perl_pp_fileno(aTHX) +#define pp_flip() Perl_pp_flip(aTHX) +#define pp_flock() Perl_pp_flock(aTHX) +#define pp_flop() Perl_pp_flop(aTHX) +#define pp_fork() Perl_pp_fork(aTHX) +#define pp_formline() Perl_pp_formline(aTHX) +#define pp_ftatime() Perl_pp_ftatime(aTHX) +#define pp_ftbinary() Perl_pp_ftbinary(aTHX) +#define pp_ftblk() Perl_pp_ftblk(aTHX) +#define pp_ftchr() Perl_pp_ftchr(aTHX) +#define pp_ftctime() Perl_pp_ftctime(aTHX) +#define pp_ftdir() Perl_pp_ftdir(aTHX) +#define pp_fteexec() Perl_pp_fteexec(aTHX) +#define pp_fteowned() Perl_pp_fteowned(aTHX) +#define pp_fteread() Perl_pp_fteread(aTHX) +#define pp_ftewrite() Perl_pp_ftewrite(aTHX) +#define pp_ftfile() Perl_pp_ftfile(aTHX) +#define pp_ftis() Perl_pp_ftis(aTHX) +#define pp_ftlink() Perl_pp_ftlink(aTHX) +#define pp_ftmtime() Perl_pp_ftmtime(aTHX) +#define pp_ftpipe() Perl_pp_ftpipe(aTHX) +#define pp_ftrexec() Perl_pp_ftrexec(aTHX) +#define pp_ftrowned() Perl_pp_ftrowned(aTHX) +#define pp_ftrread() Perl_pp_ftrread(aTHX) +#define pp_ftrwrite() Perl_pp_ftrwrite(aTHX) +#define pp_ftsgid() Perl_pp_ftsgid(aTHX) +#define pp_ftsize() Perl_pp_ftsize(aTHX) +#define pp_ftsock() Perl_pp_ftsock(aTHX) +#define pp_ftsuid() Perl_pp_ftsuid(aTHX) +#define pp_ftsvtx() Perl_pp_ftsvtx(aTHX) +#define pp_fttext() Perl_pp_fttext(aTHX) +#define pp_fttty() Perl_pp_fttty(aTHX) +#define pp_ftzero() Perl_pp_ftzero(aTHX) +#define pp_ge() Perl_pp_ge(aTHX) +#define pp_gelem() Perl_pp_gelem(aTHX) +#define pp_getc() Perl_pp_getc(aTHX) +#define pp_getlogin() Perl_pp_getlogin(aTHX) +#define pp_getpeername() Perl_pp_getpeername(aTHX) +#define pp_getpgrp() Perl_pp_getpgrp(aTHX) +#define pp_getppid() Perl_pp_getppid(aTHX) +#define pp_getpriority() Perl_pp_getpriority(aTHX) +#define pp_getsockname() Perl_pp_getsockname(aTHX) +#define pp_ggrent() Perl_pp_ggrent(aTHX) +#define pp_ggrgid() Perl_pp_ggrgid(aTHX) +#define pp_ggrnam() Perl_pp_ggrnam(aTHX) +#define pp_ghbyaddr() Perl_pp_ghbyaddr(aTHX) +#define pp_ghbyname() Perl_pp_ghbyname(aTHX) +#define pp_ghostent() Perl_pp_ghostent(aTHX) +#define pp_glob() Perl_pp_glob(aTHX) +#define pp_gmtime() Perl_pp_gmtime(aTHX) +#define pp_gnbyaddr() Perl_pp_gnbyaddr(aTHX) +#define pp_gnbyname() Perl_pp_gnbyname(aTHX) +#define pp_gnetent() Perl_pp_gnetent(aTHX) +#define pp_goto() Perl_pp_goto(aTHX) +#define pp_gpbyname() Perl_pp_gpbyname(aTHX) +#define pp_gpbynumber() Perl_pp_gpbynumber(aTHX) +#define pp_gprotoent() Perl_pp_gprotoent(aTHX) +#define pp_gpwent() Perl_pp_gpwent(aTHX) +#define pp_gpwnam() Perl_pp_gpwnam(aTHX) +#define pp_gpwuid() Perl_pp_gpwuid(aTHX) +#define pp_grepstart() Perl_pp_grepstart(aTHX) +#define pp_grepwhile() Perl_pp_grepwhile(aTHX) +#define pp_gsbyname() Perl_pp_gsbyname(aTHX) +#define pp_gsbyport() Perl_pp_gsbyport(aTHX) +#define pp_gservent() Perl_pp_gservent(aTHX) +#define pp_gsockopt() Perl_pp_gsockopt(aTHX) +#define pp_gt() Perl_pp_gt(aTHX) +#define pp_gv() Perl_pp_gv(aTHX) +#define pp_gvsv() Perl_pp_gvsv(aTHX) +#define pp_helem() Perl_pp_helem(aTHX) +#define pp_hex() Perl_pp_hex(aTHX) +#define pp_hslice() Perl_pp_hslice(aTHX) +#define pp_i_add() Perl_pp_i_add(aTHX) +#define pp_i_divide() Perl_pp_i_divide(aTHX) +#define pp_i_eq() Perl_pp_i_eq(aTHX) +#define pp_i_ge() Perl_pp_i_ge(aTHX) +#define pp_i_gt() Perl_pp_i_gt(aTHX) +#define pp_i_le() Perl_pp_i_le(aTHX) +#define pp_i_lt() Perl_pp_i_lt(aTHX) +#define pp_i_modulo() Perl_pp_i_modulo(aTHX) +#define pp_i_multiply() Perl_pp_i_multiply(aTHX) +#define pp_i_ncmp() Perl_pp_i_ncmp(aTHX) +#define pp_i_ne() Perl_pp_i_ne(aTHX) +#define pp_i_negate() Perl_pp_i_negate(aTHX) +#define pp_i_subtract() Perl_pp_i_subtract(aTHX) +#define pp_index() Perl_pp_index(aTHX) +#define pp_int() Perl_pp_int(aTHX) +#define pp_ioctl() Perl_pp_ioctl(aTHX) +#define pp_iter() Perl_pp_iter(aTHX) +#define pp_join() Perl_pp_join(aTHX) +#define pp_keys() Perl_pp_keys(aTHX) +#define pp_kill() Perl_pp_kill(aTHX) +#define pp_last() Perl_pp_last(aTHX) +#define pp_lc() Perl_pp_lc(aTHX) +#define pp_lcfirst() Perl_pp_lcfirst(aTHX) +#define pp_le() Perl_pp_le(aTHX) +#define pp_leave() Perl_pp_leave(aTHX) +#define pp_leaveeval() Perl_pp_leaveeval(aTHX) +#define pp_leaveloop() Perl_pp_leaveloop(aTHX) +#define pp_leavesub() Perl_pp_leavesub(aTHX) +#define pp_leavetry() Perl_pp_leavetry(aTHX) +#define pp_leavewrite() Perl_pp_leavewrite(aTHX) +#define pp_left_shift() Perl_pp_left_shift(aTHX) +#define pp_length() Perl_pp_length(aTHX) +#define pp_lineseq() Perl_pp_lineseq(aTHX) +#define pp_link() Perl_pp_link(aTHX) +#define pp_list() Perl_pp_list(aTHX) +#define pp_listen() Perl_pp_listen(aTHX) +#define pp_localtime() Perl_pp_localtime(aTHX) +#define pp_lock() Perl_pp_lock(aTHX) +#define pp_log() Perl_pp_log(aTHX) +#define pp_lslice() Perl_pp_lslice(aTHX) +#define pp_lstat() Perl_pp_lstat(aTHX) +#define pp_lt() Perl_pp_lt(aTHX) +#define pp_mapstart() Perl_pp_mapstart(aTHX) +#define pp_mapwhile() Perl_pp_mapwhile(aTHX) +#define pp_match() Perl_pp_match(aTHX) +#define pp_method() Perl_pp_method(aTHX) +#define pp_mkdir() Perl_pp_mkdir(aTHX) +#define pp_modulo() Perl_pp_modulo(aTHX) +#define pp_msgctl() Perl_pp_msgctl(aTHX) +#define pp_msgget() Perl_pp_msgget(aTHX) +#define pp_msgrcv() Perl_pp_msgrcv(aTHX) +#define pp_msgsnd() Perl_pp_msgsnd(aTHX) +#define pp_multiply() Perl_pp_multiply(aTHX) +#define pp_ncmp() Perl_pp_ncmp(aTHX) +#define pp_ne() Perl_pp_ne(aTHX) +#define pp_negate() Perl_pp_negate(aTHX) +#define pp_next() Perl_pp_next(aTHX) +#define pp_nextstate() Perl_pp_nextstate(aTHX) +#define pp_not() Perl_pp_not(aTHX) +#define pp_null() Perl_pp_null(aTHX) +#define pp_oct() Perl_pp_oct(aTHX) +#define pp_open() Perl_pp_open(aTHX) +#define pp_open_dir() Perl_pp_open_dir(aTHX) +#define pp_or() Perl_pp_or(aTHX) +#define pp_orassign() Perl_pp_orassign(aTHX) +#define pp_ord() Perl_pp_ord(aTHX) +#define pp_pack() Perl_pp_pack(aTHX) +#define pp_padany() Perl_pp_padany(aTHX) +#define pp_padav() Perl_pp_padav(aTHX) +#define pp_padhv() Perl_pp_padhv(aTHX) +#define pp_padsv() Perl_pp_padsv(aTHX) +#define pp_pipe_op() Perl_pp_pipe_op(aTHX) +#define pp_pop() Perl_pp_pop(aTHX) +#define pp_pos() Perl_pp_pos(aTHX) +#define pp_postdec() Perl_pp_postdec(aTHX) +#define pp_postinc() Perl_pp_postinc(aTHX) +#define pp_pow() Perl_pp_pow(aTHX) +#define pp_predec() Perl_pp_predec(aTHX) +#define pp_preinc() Perl_pp_preinc(aTHX) +#define pp_print() Perl_pp_print(aTHX) +#define pp_prototype() Perl_pp_prototype(aTHX) +#define pp_prtf() Perl_pp_prtf(aTHX) +#define pp_push() Perl_pp_push(aTHX) +#define pp_pushmark() Perl_pp_pushmark(aTHX) +#define pp_pushre() Perl_pp_pushre(aTHX) +#define pp_qr() Perl_pp_qr(aTHX) +#define pp_quotemeta() Perl_pp_quotemeta(aTHX) +#define pp_rand() Perl_pp_rand(aTHX) +#define pp_range() Perl_pp_range(aTHX) +#define pp_rcatline() Perl_pp_rcatline(aTHX) +#define pp_read() Perl_pp_read(aTHX) +#define pp_readdir() Perl_pp_readdir(aTHX) +#define pp_readline() Perl_pp_readline(aTHX) +#define pp_readlink() Perl_pp_readlink(aTHX) +#define pp_recv() Perl_pp_recv(aTHX) +#define pp_redo() Perl_pp_redo(aTHX) +#define pp_ref() Perl_pp_ref(aTHX) +#define pp_refgen() Perl_pp_refgen(aTHX) +#define pp_regcmaybe() Perl_pp_regcmaybe(aTHX) +#define pp_regcomp() Perl_pp_regcomp(aTHX) +#define pp_regcreset() Perl_pp_regcreset(aTHX) +#define pp_rename() Perl_pp_rename(aTHX) +#define pp_repeat() Perl_pp_repeat(aTHX) +#define pp_require() Perl_pp_require(aTHX) +#define pp_reset() Perl_pp_reset(aTHX) +#define pp_return() Perl_pp_return(aTHX) +#define pp_reverse() Perl_pp_reverse(aTHX) +#define pp_rewinddir() Perl_pp_rewinddir(aTHX) +#define pp_right_shift() Perl_pp_right_shift(aTHX) +#define pp_rindex() Perl_pp_rindex(aTHX) +#define pp_rmdir() Perl_pp_rmdir(aTHX) +#define pp_rv2av() Perl_pp_rv2av(aTHX) +#define pp_rv2cv() Perl_pp_rv2cv(aTHX) +#define pp_rv2gv() Perl_pp_rv2gv(aTHX) +#define pp_rv2hv() Perl_pp_rv2hv(aTHX) +#define pp_rv2sv() Perl_pp_rv2sv(aTHX) +#define pp_sassign() Perl_pp_sassign(aTHX) +#define pp_scalar() Perl_pp_scalar(aTHX) +#define pp_schomp() Perl_pp_schomp(aTHX) +#define pp_schop() Perl_pp_schop(aTHX) +#define pp_scmp() Perl_pp_scmp(aTHX) +#define pp_scope() Perl_pp_scope(aTHX) +#define pp_seek() Perl_pp_seek(aTHX) +#define pp_seekdir() Perl_pp_seekdir(aTHX) +#define pp_select() Perl_pp_select(aTHX) +#define pp_semctl() Perl_pp_semctl(aTHX) +#define pp_semget() Perl_pp_semget(aTHX) +#define pp_semop() Perl_pp_semop(aTHX) +#define pp_send() Perl_pp_send(aTHX) +#define pp_seq() Perl_pp_seq(aTHX) +#define pp_setpgrp() Perl_pp_setpgrp(aTHX) +#define pp_setpriority() Perl_pp_setpriority(aTHX) +#define pp_sge() Perl_pp_sge(aTHX) +#define pp_sgrent() Perl_pp_sgrent(aTHX) +#define pp_sgt() Perl_pp_sgt(aTHX) +#define pp_shift() Perl_pp_shift(aTHX) +#define pp_shmctl() Perl_pp_shmctl(aTHX) +#define pp_shmget() Perl_pp_shmget(aTHX) +#define pp_shmread() Perl_pp_shmread(aTHX) +#define pp_shmwrite() Perl_pp_shmwrite(aTHX) +#define pp_shostent() Perl_pp_shostent(aTHX) +#define pp_shutdown() Perl_pp_shutdown(aTHX) +#define pp_sin() Perl_pp_sin(aTHX) +#define pp_sle() Perl_pp_sle(aTHX) +#define pp_sleep() Perl_pp_sleep(aTHX) +#define pp_slt() Perl_pp_slt(aTHX) +#define pp_sne() Perl_pp_sne(aTHX) +#define pp_snetent() Perl_pp_snetent(aTHX) +#define pp_socket() Perl_pp_socket(aTHX) +#define pp_sockpair() Perl_pp_sockpair(aTHX) +#define pp_sort() Perl_pp_sort(aTHX) +#define pp_splice() Perl_pp_splice(aTHX) +#define pp_split() Perl_pp_split(aTHX) +#define pp_sprintf() Perl_pp_sprintf(aTHX) +#define pp_sprotoent() Perl_pp_sprotoent(aTHX) +#define pp_spwent() Perl_pp_spwent(aTHX) +#define pp_sqrt() Perl_pp_sqrt(aTHX) +#define pp_srand() Perl_pp_srand(aTHX) +#define pp_srefgen() Perl_pp_srefgen(aTHX) +#define pp_sselect() Perl_pp_sselect(aTHX) +#define pp_sservent() Perl_pp_sservent(aTHX) +#define pp_ssockopt() Perl_pp_ssockopt(aTHX) +#define pp_stat() Perl_pp_stat(aTHX) +#define pp_stringify() Perl_pp_stringify(aTHX) +#define pp_stub() Perl_pp_stub(aTHX) +#define pp_study() Perl_pp_study(aTHX) +#define pp_subst() Perl_pp_subst(aTHX) +#define pp_substcont() Perl_pp_substcont(aTHX) +#define pp_substr() Perl_pp_substr(aTHX) +#define pp_subtract() Perl_pp_subtract(aTHX) +#define pp_symlink() Perl_pp_symlink(aTHX) +#define pp_syscall() Perl_pp_syscall(aTHX) +#define pp_sysopen() Perl_pp_sysopen(aTHX) +#define pp_sysread() Perl_pp_sysread(aTHX) +#define pp_sysseek() Perl_pp_sysseek(aTHX) +#define pp_system() Perl_pp_system(aTHX) +#define pp_syswrite() Perl_pp_syswrite(aTHX) +#define pp_tell() Perl_pp_tell(aTHX) +#define pp_telldir() Perl_pp_telldir(aTHX) +#define pp_threadsv() Perl_pp_threadsv(aTHX) +#define pp_tie() Perl_pp_tie(aTHX) +#define pp_tied() Perl_pp_tied(aTHX) +#define pp_time() Perl_pp_time(aTHX) +#define pp_tms() Perl_pp_tms(aTHX) +#define pp_trans() Perl_pp_trans(aTHX) +#define pp_truncate() Perl_pp_truncate(aTHX) +#define pp_uc() Perl_pp_uc(aTHX) +#define pp_ucfirst() Perl_pp_ucfirst(aTHX) +#define pp_umask() Perl_pp_umask(aTHX) +#define pp_undef() Perl_pp_undef(aTHX) +#define pp_unlink() Perl_pp_unlink(aTHX) +#define pp_unpack() Perl_pp_unpack(aTHX) +#define pp_unshift() Perl_pp_unshift(aTHX) +#define pp_unstack() Perl_pp_unstack(aTHX) +#define pp_untie() Perl_pp_untie(aTHX) +#define pp_utime() Perl_pp_utime(aTHX) +#define pp_values() Perl_pp_values(aTHX) +#define pp_vec() Perl_pp_vec(aTHX) +#define pp_wait() Perl_pp_wait(aTHX) +#define pp_waitpid() Perl_pp_waitpid(aTHX) +#define pp_wantarray() Perl_pp_wantarray(aTHX) +#define pp_warn() Perl_pp_warn(aTHX) +#define pp_xor() Perl_pp_xor(aTHX) +#endif /* PERL_IMPLICIT_CONTEXT */ #else /* PERL_OBJECT */ -#define Perl_ErrorNo CPerlObj::Perl_ErrorNo -#define Perl_GetVars CPerlObj::Perl_GetVars -#define Perl_Gv_AMupdate CPerlObj::Perl_Gv_AMupdate -#define Perl_amagic_call CPerlObj::Perl_amagic_call -#define Perl_append_elem CPerlObj::Perl_append_elem -#define Perl_append_list CPerlObj::Perl_append_list -#define Perl_apply CPerlObj::Perl_apply -#define Perl_assertref CPerlObj::Perl_assertref -#define Perl_av_clear CPerlObj::Perl_av_clear -#define Perl_av_extend CPerlObj::Perl_av_extend -#define Perl_av_fake CPerlObj::Perl_av_fake -#define Perl_av_fetch CPerlObj::Perl_av_fetch -#define Perl_av_fill CPerlObj::Perl_av_fill -#define Perl_av_len CPerlObj::Perl_av_len -#define Perl_av_make CPerlObj::Perl_av_make -#define Perl_av_pop CPerlObj::Perl_av_pop -#define Perl_av_push CPerlObj::Perl_av_push -#define Perl_av_reify CPerlObj::Perl_av_reify -#define Perl_av_shift CPerlObj::Perl_av_shift -#define Perl_av_store CPerlObj::Perl_av_store -#define Perl_av_undef CPerlObj::Perl_av_undef -#define Perl_av_unshift CPerlObj::Perl_av_unshift -#define Perl_avhv_exists_ent CPerlObj::Perl_avhv_exists_ent -#define Perl_avhv_fetch_ent CPerlObj::Perl_avhv_fetch_ent -#define Perl_avhv_iternext CPerlObj::Perl_avhv_iternext -#define Perl_avhv_iterval CPerlObj::Perl_avhv_iterval -#define Perl_avhv_keys CPerlObj::Perl_avhv_keys -#define Perl_bind_match CPerlObj::Perl_bind_match -#define Perl_block_end CPerlObj::Perl_block_end -#define Perl_block_gimme CPerlObj::Perl_block_gimme -#define Perl_block_start CPerlObj::Perl_block_start -#define Perl_boot_core_UNIVERSAL CPerlObj::Perl_boot_core_UNIVERSAL -#define Perl_bset_obj_store CPerlObj::Perl_bset_obj_store -#define Perl_call_argv CPerlObj::Perl_call_argv -#define Perl_call_atexit CPerlObj::Perl_call_atexit -#define Perl_call_list CPerlObj::Perl_call_list -#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_cando CPerlObj::Perl_cando -#define Perl_cast_i32 CPerlObj::Perl_cast_i32 -#define Perl_cast_iv CPerlObj::Perl_cast_iv -#define Perl_cast_ulong CPerlObj::Perl_cast_ulong -#define Perl_cast_uv CPerlObj::Perl_cast_uv -#define Perl_ck_anoncode CPerlObj::Perl_ck_anoncode -#define Perl_ck_bitop CPerlObj::Perl_ck_bitop -#define Perl_ck_concat CPerlObj::Perl_ck_concat -#define Perl_ck_defined CPerlObj::Perl_ck_defined -#define Perl_ck_delete CPerlObj::Perl_ck_delete -#define Perl_ck_eof CPerlObj::Perl_ck_eof -#define Perl_ck_eval CPerlObj::Perl_ck_eval -#define Perl_ck_exec CPerlObj::Perl_ck_exec -#define Perl_ck_exists CPerlObj::Perl_ck_exists -#define Perl_ck_ftst CPerlObj::Perl_ck_ftst -#define Perl_ck_fun CPerlObj::Perl_ck_fun -#define Perl_ck_fun_locale CPerlObj::Perl_ck_fun_locale -#define Perl_ck_glob CPerlObj::Perl_ck_glob -#define Perl_ck_grep CPerlObj::Perl_ck_grep -#define Perl_ck_index CPerlObj::Perl_ck_index -#define Perl_ck_lengthconst CPerlObj::Perl_ck_lengthconst -#define Perl_ck_lfun CPerlObj::Perl_ck_lfun -#define Perl_ck_listiob CPerlObj::Perl_ck_listiob -#define Perl_ck_match CPerlObj::Perl_ck_match -#define Perl_ck_null CPerlObj::Perl_ck_null -#define Perl_ck_repeat CPerlObj::Perl_ck_repeat -#define Perl_ck_require CPerlObj::Perl_ck_require -#define Perl_ck_rfun CPerlObj::Perl_ck_rfun -#define Perl_ck_rvconst CPerlObj::Perl_ck_rvconst -#define Perl_ck_scmp CPerlObj::Perl_ck_scmp -#define Perl_ck_select CPerlObj::Perl_ck_select -#define Perl_ck_shift CPerlObj::Perl_ck_shift -#define Perl_ck_sort CPerlObj::Perl_ck_sort -#define Perl_ck_spair CPerlObj::Perl_ck_spair -#define Perl_ck_split CPerlObj::Perl_ck_split -#define Perl_ck_subr CPerlObj::Perl_ck_subr -#define Perl_ck_svconst CPerlObj::Perl_ck_svconst -#define Perl_ck_trunc CPerlObj::Perl_ck_trunc -#define Perl_condpair_magic CPerlObj::Perl_condpair_magic -#define Perl_convert CPerlObj::Perl_convert -#define Perl_croak CPerlObj::Perl_croak -#define Perl_cv_ckproto CPerlObj::Perl_cv_ckproto -#define Perl_cv_clone CPerlObj::Perl_cv_clone -#define Perl_cv_const_sv CPerlObj::Perl_cv_const_sv -#define Perl_cv_undef CPerlObj::Perl_cv_undef -#define Perl_cx_dump CPerlObj::Perl_cx_dump -#define Perl_cxinc CPerlObj::Perl_cxinc -#define Perl_deb CPerlObj::Perl_deb -#define Perl_deb_growlevel CPerlObj::Perl_deb_growlevel -#define Perl_debop CPerlObj::Perl_debop -#define Perl_debprofdump CPerlObj::Perl_debprofdump -#define Perl_debstack CPerlObj::Perl_debstack -#define Perl_debstackptrs CPerlObj::Perl_debstackptrs -#define Perl_default_protect CPerlObj::Perl_default_protect -#define Perl_delimcpy CPerlObj::Perl_delimcpy -#define Perl_deprecate CPerlObj::Perl_deprecate -#define Perl_die CPerlObj::Perl_die -#define Perl_die_where CPerlObj::Perl_die_where -#define Perl_do_aexec CPerlObj::Perl_do_aexec -#define Perl_do_binmode CPerlObj::Perl_do_binmode -#define Perl_do_chomp CPerlObj::Perl_do_chomp -#define Perl_do_chop CPerlObj::Perl_do_chop -#define Perl_do_close CPerlObj::Perl_do_close -#define Perl_do_eof CPerlObj::Perl_do_eof -#define Perl_do_exec CPerlObj::Perl_do_exec -#define Perl_do_exec3 CPerlObj::Perl_do_exec3 -#define Perl_do_execfree CPerlObj::Perl_do_execfree -#define Perl_do_gv_dump CPerlObj::Perl_do_gv_dump -#define Perl_do_gvgv_dump CPerlObj::Perl_do_gvgv_dump -#define Perl_do_hv_dump CPerlObj::Perl_do_hv_dump -#define Perl_do_ipcctl CPerlObj::Perl_do_ipcctl -#define Perl_do_ipcget CPerlObj::Perl_do_ipcget -#define Perl_do_join CPerlObj::Perl_do_join -#define Perl_do_kv CPerlObj::Perl_do_kv -#define Perl_do_magic_dump CPerlObj::Perl_do_magic_dump -#define Perl_do_msgrcv CPerlObj::Perl_do_msgrcv -#define Perl_do_msgsnd CPerlObj::Perl_do_msgsnd -#define Perl_do_op_dump CPerlObj::Perl_do_op_dump -#define Perl_do_open CPerlObj::Perl_do_open -#define Perl_do_pipe CPerlObj::Perl_do_pipe -#define Perl_do_pmop_dump CPerlObj::Perl_do_pmop_dump -#define Perl_do_print CPerlObj::Perl_do_print -#define Perl_do_readline CPerlObj::Perl_do_readline -#define Perl_do_seek CPerlObj::Perl_do_seek -#define Perl_do_semop CPerlObj::Perl_do_semop -#define Perl_do_shmio CPerlObj::Perl_do_shmio -#define Perl_do_sprintf CPerlObj::Perl_do_sprintf -#define Perl_do_sv_dump CPerlObj::Perl_do_sv_dump -#define Perl_do_sysseek CPerlObj::Perl_do_sysseek -#define Perl_do_tell CPerlObj::Perl_do_tell -#define Perl_do_trans CPerlObj::Perl_do_trans -#define Perl_do_vecset CPerlObj::Perl_do_vecset -#define Perl_do_vop CPerlObj::Perl_do_vop -#define Perl_dofile CPerlObj::Perl_dofile -#define Perl_dounwind CPerlObj::Perl_dounwind -#define Perl_dowantarray CPerlObj::Perl_dowantarray -#define Perl_dump_all CPerlObj::Perl_dump_all -#define Perl_dump_eval CPerlObj::Perl_dump_eval -#define Perl_dump_fds CPerlObj::Perl_dump_fds -#define Perl_dump_form CPerlObj::Perl_dump_form -#define Perl_dump_indent CPerlObj::Perl_dump_indent -#define Perl_dump_mstats CPerlObj::Perl_dump_mstats -#define Perl_dump_packsubs CPerlObj::Perl_dump_packsubs -#define Perl_dump_sub CPerlObj::Perl_dump_sub -#define Perl_eval_pv CPerlObj::Perl_eval_pv -#define Perl_eval_sv CPerlObj::Perl_eval_sv -#define Perl_fbm_compile CPerlObj::Perl_fbm_compile -#define Perl_fbm_instr CPerlObj::Perl_fbm_instr -#define Perl_filter_add CPerlObj::Perl_filter_add -#define Perl_filter_del CPerlObj::Perl_filter_del -#define Perl_filter_read CPerlObj::Perl_filter_read -#define Perl_find_script CPerlObj::Perl_find_script -#define Perl_find_threadsv CPerlObj::Perl_find_threadsv -#define Perl_fold_constants CPerlObj::Perl_fold_constants -#define Perl_force_list CPerlObj::Perl_force_list -#define Perl_form CPerlObj::Perl_form -#define Perl_free_tmps CPerlObj::Perl_free_tmps -#define Perl_gen_constant_list CPerlObj::Perl_gen_constant_list -#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_no_modify CPerlObj::Perl_get_no_modify -#define Perl_get_op_descs CPerlObj::Perl_get_op_descs -#define Perl_get_op_names CPerlObj::Perl_get_op_names -#define Perl_get_opargs CPerlObj::Perl_get_opargs -#define Perl_get_sv CPerlObj::Perl_get_sv -#define Perl_get_vtbl CPerlObj::Perl_get_vtbl -#define Perl_getenv_len CPerlObj::Perl_getenv_len -#define Perl_gp_free CPerlObj::Perl_gp_free -#define Perl_gp_ref CPerlObj::Perl_gp_ref -#define Perl_gv_AVadd CPerlObj::Perl_gv_AVadd -#define Perl_gv_HVadd CPerlObj::Perl_gv_HVadd -#define Perl_gv_IOadd CPerlObj::Perl_gv_IOadd -#define Perl_gv_autoload4 CPerlObj::Perl_gv_autoload4 -#define Perl_gv_check CPerlObj::Perl_gv_check -#define Perl_gv_dump CPerlObj::Perl_gv_dump -#define Perl_gv_efullname CPerlObj::Perl_gv_efullname -#define Perl_gv_efullname3 CPerlObj::Perl_gv_efullname3 -#define Perl_gv_fetchfile CPerlObj::Perl_gv_fetchfile -#define Perl_gv_fetchmeth CPerlObj::Perl_gv_fetchmeth -#define Perl_gv_fetchmethod CPerlObj::Perl_gv_fetchmethod -#define Perl_gv_fetchmethod_autoload CPerlObj::Perl_gv_fetchmethod_autoload -#define Perl_gv_fetchpv CPerlObj::Perl_gv_fetchpv -#define Perl_gv_fullname CPerlObj::Perl_gv_fullname -#define Perl_gv_fullname3 CPerlObj::Perl_gv_fullname3 -#define Perl_gv_init CPerlObj::Perl_gv_init -#define Perl_gv_stashpv CPerlObj::Perl_gv_stashpv -#define Perl_gv_stashpvn CPerlObj::Perl_gv_stashpvn -#define Perl_gv_stashsv CPerlObj::Perl_gv_stashsv -#define Perl_hv_clear CPerlObj::Perl_hv_clear -#define Perl_hv_delayfree_ent CPerlObj::Perl_hv_delayfree_ent -#define Perl_hv_delete CPerlObj::Perl_hv_delete -#define Perl_hv_delete_ent CPerlObj::Perl_hv_delete_ent -#define Perl_hv_exists CPerlObj::Perl_hv_exists -#define Perl_hv_exists_ent CPerlObj::Perl_hv_exists_ent -#define Perl_hv_fetch CPerlObj::Perl_hv_fetch -#define Perl_hv_fetch_ent CPerlObj::Perl_hv_fetch_ent -#define Perl_hv_free_ent CPerlObj::Perl_hv_free_ent -#define Perl_hv_iterinit CPerlObj::Perl_hv_iterinit -#define Perl_hv_iterkey CPerlObj::Perl_hv_iterkey -#define Perl_hv_iterkeysv CPerlObj::Perl_hv_iterkeysv -#define Perl_hv_iternext CPerlObj::Perl_hv_iternext -#define Perl_hv_iternextsv CPerlObj::Perl_hv_iternextsv -#define Perl_hv_iterval CPerlObj::Perl_hv_iterval -#define Perl_hv_ksplit CPerlObj::Perl_hv_ksplit -#define Perl_hv_magic CPerlObj::Perl_hv_magic -#define Perl_hv_store CPerlObj::Perl_hv_store -#define Perl_hv_store_ent CPerlObj::Perl_hv_store_ent -#define Perl_hv_undef CPerlObj::Perl_hv_undef -#define Perl_ibcmp CPerlObj::Perl_ibcmp -#define Perl_ibcmp_locale CPerlObj::Perl_ibcmp_locale -#define Perl_ingroup CPerlObj::Perl_ingroup -#define Perl_init_i18nl10n CPerlObj::Perl_init_i18nl10n -#define Perl_init_i18nl14n CPerlObj::Perl_init_i18nl14n -#define Perl_init_stacks CPerlObj::Perl_init_stacks -#define Perl_instr CPerlObj::Perl_instr -#define Perl_intro_my CPerlObj::Perl_intro_my -#define Perl_invert CPerlObj::Perl_invert -#define Perl_io_close CPerlObj::Perl_io_close -#define Perl_is_uni_alnum CPerlObj::Perl_is_uni_alnum -#define Perl_is_uni_alnum_lc CPerlObj::Perl_is_uni_alnum_lc -#define Perl_is_uni_alpha CPerlObj::Perl_is_uni_alpha -#define Perl_is_uni_alpha_lc CPerlObj::Perl_is_uni_alpha_lc -#define Perl_is_uni_digit CPerlObj::Perl_is_uni_digit -#define Perl_is_uni_digit_lc CPerlObj::Perl_is_uni_digit_lc -#define Perl_is_uni_idfirst CPerlObj::Perl_is_uni_idfirst -#define Perl_is_uni_idfirst_lc CPerlObj::Perl_is_uni_idfirst_lc -#define Perl_is_uni_lower CPerlObj::Perl_is_uni_lower -#define Perl_is_uni_lower_lc CPerlObj::Perl_is_uni_lower_lc -#define Perl_is_uni_print CPerlObj::Perl_is_uni_print -#define Perl_is_uni_print_lc CPerlObj::Perl_is_uni_print_lc -#define Perl_is_uni_space CPerlObj::Perl_is_uni_space -#define Perl_is_uni_space_lc CPerlObj::Perl_is_uni_space_lc -#define Perl_is_uni_upper CPerlObj::Perl_is_uni_upper -#define Perl_is_uni_upper_lc CPerlObj::Perl_is_uni_upper_lc -#define Perl_is_utf8_alnum CPerlObj::Perl_is_utf8_alnum -#define Perl_is_utf8_alpha CPerlObj::Perl_is_utf8_alpha -#define Perl_is_utf8_digit CPerlObj::Perl_is_utf8_digit -#define Perl_is_utf8_idfirst CPerlObj::Perl_is_utf8_idfirst -#define Perl_is_utf8_lower CPerlObj::Perl_is_utf8_lower -#define Perl_is_utf8_mark CPerlObj::Perl_is_utf8_mark -#define Perl_is_utf8_print CPerlObj::Perl_is_utf8_print -#define Perl_is_utf8_space CPerlObj::Perl_is_utf8_space -#define Perl_is_utf8_upper CPerlObj::Perl_is_utf8_upper -#define Perl_jmaybe CPerlObj::Perl_jmaybe -#define Perl_keyword CPerlObj::Perl_keyword -#define Perl_leave_scope CPerlObj::Perl_leave_scope -#define Perl_lex_end CPerlObj::Perl_lex_end -#define Perl_lex_start CPerlObj::Perl_lex_start -#define Perl_linklist CPerlObj::Perl_linklist -#define Perl_list CPerlObj::Perl_list -#define Perl_listkids CPerlObj::Perl_listkids -#define Perl_localize CPerlObj::Perl_localize -#define Perl_looks_like_number CPerlObj::Perl_looks_like_number -#define Perl_magic_clear_all_env CPerlObj::Perl_magic_clear_all_env -#define Perl_magic_clearenv CPerlObj::Perl_magic_clearenv -#define Perl_magic_clearpack CPerlObj::Perl_magic_clearpack -#define Perl_magic_clearsig CPerlObj::Perl_magic_clearsig -#define Perl_magic_dump CPerlObj::Perl_magic_dump -#define Perl_magic_existspack CPerlObj::Perl_magic_existspack -#define Perl_magic_freeregexp CPerlObj::Perl_magic_freeregexp -#define Perl_magic_get CPerlObj::Perl_magic_get -#define Perl_magic_getarylen CPerlObj::Perl_magic_getarylen -#define Perl_magic_getdefelem CPerlObj::Perl_magic_getdefelem -#define Perl_magic_getglob CPerlObj::Perl_magic_getglob -#define Perl_magic_getnkeys CPerlObj::Perl_magic_getnkeys -#define Perl_magic_getpack CPerlObj::Perl_magic_getpack -#define Perl_magic_getpos CPerlObj::Perl_magic_getpos -#define Perl_magic_getsig CPerlObj::Perl_magic_getsig -#define Perl_magic_getsubstr CPerlObj::Perl_magic_getsubstr -#define Perl_magic_gettaint CPerlObj::Perl_magic_gettaint -#define Perl_magic_getuvar CPerlObj::Perl_magic_getuvar -#define Perl_magic_getvec CPerlObj::Perl_magic_getvec -#define Perl_magic_killbackrefs CPerlObj::Perl_magic_killbackrefs -#define Perl_magic_len CPerlObj::Perl_magic_len -#define Perl_magic_mutexfree CPerlObj::Perl_magic_mutexfree -#define Perl_magic_nextpack CPerlObj::Perl_magic_nextpack -#define Perl_magic_regdata_cnt CPerlObj::Perl_magic_regdata_cnt -#define Perl_magic_regdatum_get CPerlObj::Perl_magic_regdatum_get -#define Perl_magic_set CPerlObj::Perl_magic_set -#define Perl_magic_set_all_env CPerlObj::Perl_magic_set_all_env -#define Perl_magic_setamagic CPerlObj::Perl_magic_setamagic -#define Perl_magic_setarylen CPerlObj::Perl_magic_setarylen -#define Perl_magic_setbm CPerlObj::Perl_magic_setbm -#define Perl_magic_setcollxfrm CPerlObj::Perl_magic_setcollxfrm -#define Perl_magic_setdbline CPerlObj::Perl_magic_setdbline -#define Perl_magic_setdefelem CPerlObj::Perl_magic_setdefelem -#define Perl_magic_setenv CPerlObj::Perl_magic_setenv -#define Perl_magic_setfm CPerlObj::Perl_magic_setfm -#define Perl_magic_setglob CPerlObj::Perl_magic_setglob -#define Perl_magic_setisa CPerlObj::Perl_magic_setisa -#define Perl_magic_setmglob CPerlObj::Perl_magic_setmglob -#define Perl_magic_setnkeys CPerlObj::Perl_magic_setnkeys -#define Perl_magic_setpack CPerlObj::Perl_magic_setpack -#define Perl_magic_setpos CPerlObj::Perl_magic_setpos -#define Perl_magic_setsig CPerlObj::Perl_magic_setsig -#define Perl_magic_setsubstr CPerlObj::Perl_magic_setsubstr -#define Perl_magic_settaint CPerlObj::Perl_magic_settaint -#define Perl_magic_setuvar CPerlObj::Perl_magic_setuvar -#define Perl_magic_setvec CPerlObj::Perl_magic_setvec -#define Perl_magic_sizepack CPerlObj::Perl_magic_sizepack -#define Perl_magic_wipepack CPerlObj::Perl_magic_wipepack -#define Perl_magicname CPerlObj::Perl_magicname -#define Perl_malloced_size CPerlObj::Perl_malloced_size -#define Perl_markstack_grow CPerlObj::Perl_markstack_grow -#define Perl_mem_collxfrm CPerlObj::Perl_mem_collxfrm -#define Perl_mess CPerlObj::Perl_mess -#define Perl_mg_clear CPerlObj::Perl_mg_clear -#define Perl_mg_copy CPerlObj::Perl_mg_copy -#define Perl_mg_find CPerlObj::Perl_mg_find -#define Perl_mg_free CPerlObj::Perl_mg_free -#define Perl_mg_get CPerlObj::Perl_mg_get -#define Perl_mg_length CPerlObj::Perl_mg_length -#define Perl_mg_magical CPerlObj::Perl_mg_magical -#define Perl_mg_set CPerlObj::Perl_mg_set -#define Perl_mg_size CPerlObj::Perl_mg_size -#define Perl_mod CPerlObj::Perl_mod -#define Perl_moreswitches CPerlObj::Perl_moreswitches -#define Perl_my CPerlObj::Perl_my -#define Perl_my_bcopy CPerlObj::Perl_my_bcopy -#define Perl_my_bzero CPerlObj::Perl_my_bzero -#define Perl_my_chsize CPerlObj::Perl_my_chsize -#define Perl_my_exit CPerlObj::Perl_my_exit -#define Perl_my_failure_exit CPerlObj::Perl_my_failure_exit -#define Perl_my_fflush_all CPerlObj::Perl_my_fflush_all -#define Perl_my_htonl CPerlObj::Perl_my_htonl -#define Perl_my_lstat CPerlObj::Perl_my_lstat -#define Perl_my_memcmp CPerlObj::Perl_my_memcmp -#define Perl_my_memset CPerlObj::Perl_my_memset -#define Perl_my_ntohl CPerlObj::Perl_my_ntohl -#define Perl_my_pclose CPerlObj::Perl_my_pclose -#define Perl_my_popen CPerlObj::Perl_my_popen -#define Perl_my_setenv CPerlObj::Perl_my_setenv -#define Perl_my_stat CPerlObj::Perl_my_stat -#define Perl_my_swap CPerlObj::Perl_my_swap -#define Perl_my_unexec CPerlObj::Perl_my_unexec -#define Perl_newANONHASH CPerlObj::Perl_newANONHASH -#define Perl_newANONLIST CPerlObj::Perl_newANONLIST -#define Perl_newANONSUB CPerlObj::Perl_newANONSUB -#define Perl_newASSIGNOP CPerlObj::Perl_newASSIGNOP -#define Perl_newAV CPerlObj::Perl_newAV -#define Perl_newAVREF CPerlObj::Perl_newAVREF -#define Perl_newBINOP CPerlObj::Perl_newBINOP -#define Perl_newCONDOP CPerlObj::Perl_newCONDOP -#define Perl_newCONSTSUB CPerlObj::Perl_newCONSTSUB -#define Perl_newCVREF CPerlObj::Perl_newCVREF -#define Perl_newFORM CPerlObj::Perl_newFORM -#define Perl_newFOROP CPerlObj::Perl_newFOROP -#define Perl_newGVOP CPerlObj::Perl_newGVOP -#define Perl_newGVREF CPerlObj::Perl_newGVREF -#define Perl_newGVgen CPerlObj::Perl_newGVgen -#define Perl_newHV CPerlObj::Perl_newHV -#define Perl_newHVREF CPerlObj::Perl_newHVREF -#define Perl_newHVhv CPerlObj::Perl_newHVhv -#define Perl_newIO CPerlObj::Perl_newIO -#define Perl_newLISTOP CPerlObj::Perl_newLISTOP -#define Perl_newLOGOP CPerlObj::Perl_newLOGOP -#define Perl_newLOOPEX CPerlObj::Perl_newLOOPEX -#define Perl_newLOOPOP CPerlObj::Perl_newLOOPOP -#define Perl_newNULLLIST CPerlObj::Perl_newNULLLIST -#define Perl_newOP CPerlObj::Perl_newOP -#define Perl_newPMOP CPerlObj::Perl_newPMOP -#define Perl_newPROG CPerlObj::Perl_newPROG -#define Perl_newPVOP CPerlObj::Perl_newPVOP -#define Perl_newRANGE CPerlObj::Perl_newRANGE -#define Perl_newRV CPerlObj::Perl_newRV -#define Perl_newRV_noinc CPerlObj::Perl_newRV_noinc -#define Perl_newSLICEOP CPerlObj::Perl_newSLICEOP -#define Perl_newSTATEOP CPerlObj::Perl_newSTATEOP -#define Perl_newSUB CPerlObj::Perl_newSUB -#define Perl_newSV CPerlObj::Perl_newSV -#define Perl_newSVOP CPerlObj::Perl_newSVOP -#define Perl_newSVREF CPerlObj::Perl_newSVREF -#define Perl_newSViv CPerlObj::Perl_newSViv -#define Perl_newSVnv CPerlObj::Perl_newSVnv -#define Perl_newSVpv CPerlObj::Perl_newSVpv -#define Perl_newSVpvf CPerlObj::Perl_newSVpvf -#define Perl_newSVpvn CPerlObj::Perl_newSVpvn -#define Perl_newSVrv CPerlObj::Perl_newSVrv -#define Perl_newSVsv CPerlObj::Perl_newSVsv -#define Perl_newUNOP CPerlObj::Perl_newUNOP -#define Perl_newWHILEOP CPerlObj::Perl_newWHILEOP -#define Perl_newXS CPerlObj::Perl_newXS -#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_new_stackinfo CPerlObj::Perl_new_stackinfo -#define Perl_new_struct_thread CPerlObj::Perl_new_struct_thread -#define Perl_nextargv CPerlObj::Perl_nextargv -#define Perl_ninstr CPerlObj::Perl_ninstr -#define Perl_oopsAV CPerlObj::Perl_oopsAV -#define Perl_oopsCV CPerlObj::Perl_oopsCV -#define Perl_oopsHV CPerlObj::Perl_oopsHV -#define Perl_op_const_sv CPerlObj::Perl_op_const_sv -#define Perl_op_dump CPerlObj::Perl_op_dump -#define Perl_op_free CPerlObj::Perl_op_free -#define Perl_package CPerlObj::Perl_package -#define Perl_pad_alloc CPerlObj::Perl_pad_alloc -#define Perl_pad_allocmy CPerlObj::Perl_pad_allocmy -#define Perl_pad_findmy CPerlObj::Perl_pad_findmy -#define Perl_pad_free CPerlObj::Perl_pad_free -#define Perl_pad_leavemy CPerlObj::Perl_pad_leavemy -#define Perl_pad_reset CPerlObj::Perl_pad_reset -#define Perl_pad_sv CPerlObj::Perl_pad_sv -#define Perl_pad_swipe CPerlObj::Perl_pad_swipe -#define Perl_peep CPerlObj::Perl_peep -#define Perl_pidgone CPerlObj::Perl_pidgone -#define Perl_pmflag CPerlObj::Perl_pmflag -#define Perl_pmop_dump CPerlObj::Perl_pmop_dump -#define Perl_pmruntime CPerlObj::Perl_pmruntime -#define Perl_pmtrans CPerlObj::Perl_pmtrans -#define Perl_pop_return CPerlObj::Perl_pop_return -#define Perl_pop_scope CPerlObj::Perl_pop_scope -#define Perl_pp_aassign CPerlObj::Perl_pp_aassign -#define Perl_pp_abs CPerlObj::Perl_pp_abs -#define Perl_pp_accept CPerlObj::Perl_pp_accept -#define Perl_pp_add CPerlObj::Perl_pp_add -#define Perl_pp_aelem CPerlObj::Perl_pp_aelem -#define Perl_pp_aelemfast CPerlObj::Perl_pp_aelemfast -#define Perl_pp_alarm CPerlObj::Perl_pp_alarm -#define Perl_pp_and CPerlObj::Perl_pp_and -#define Perl_pp_andassign CPerlObj::Perl_pp_andassign -#define Perl_pp_anoncode CPerlObj::Perl_pp_anoncode -#define Perl_pp_anonhash CPerlObj::Perl_pp_anonhash -#define Perl_pp_anonlist CPerlObj::Perl_pp_anonlist -#define Perl_pp_aslice CPerlObj::Perl_pp_aslice -#define Perl_pp_atan2 CPerlObj::Perl_pp_atan2 -#define Perl_pp_av2arylen CPerlObj::Perl_pp_av2arylen -#define Perl_pp_backtick CPerlObj::Perl_pp_backtick -#define Perl_pp_bind CPerlObj::Perl_pp_bind -#define Perl_pp_binmode CPerlObj::Perl_pp_binmode -#define Perl_pp_bit_and CPerlObj::Perl_pp_bit_and -#define Perl_pp_bit_or CPerlObj::Perl_pp_bit_or -#define Perl_pp_bit_xor CPerlObj::Perl_pp_bit_xor -#define Perl_pp_bless CPerlObj::Perl_pp_bless -#define Perl_pp_caller CPerlObj::Perl_pp_caller -#define Perl_pp_chdir CPerlObj::Perl_pp_chdir -#define Perl_pp_chmod CPerlObj::Perl_pp_chmod -#define Perl_pp_chomp CPerlObj::Perl_pp_chomp -#define Perl_pp_chop CPerlObj::Perl_pp_chop -#define Perl_pp_chown CPerlObj::Perl_pp_chown -#define Perl_pp_chr CPerlObj::Perl_pp_chr -#define Perl_pp_chroot CPerlObj::Perl_pp_chroot -#define Perl_pp_close CPerlObj::Perl_pp_close -#define Perl_pp_closedir CPerlObj::Perl_pp_closedir -#define Perl_pp_complement CPerlObj::Perl_pp_complement -#define Perl_pp_concat CPerlObj::Perl_pp_concat -#define Perl_pp_cond_expr CPerlObj::Perl_pp_cond_expr -#define Perl_pp_connect CPerlObj::Perl_pp_connect -#define Perl_pp_const CPerlObj::Perl_pp_const -#define Perl_pp_cos CPerlObj::Perl_pp_cos -#define Perl_pp_crypt CPerlObj::Perl_pp_crypt -#define Perl_pp_dbmclose CPerlObj::Perl_pp_dbmclose -#define Perl_pp_dbmopen CPerlObj::Perl_pp_dbmopen -#define Perl_pp_dbstate CPerlObj::Perl_pp_dbstate -#define Perl_pp_defined CPerlObj::Perl_pp_defined -#define Perl_pp_delete CPerlObj::Perl_pp_delete -#define Perl_pp_die CPerlObj::Perl_pp_die -#define Perl_pp_divide CPerlObj::Perl_pp_divide -#define Perl_pp_dofile CPerlObj::Perl_pp_dofile -#define Perl_pp_dump CPerlObj::Perl_pp_dump -#define Perl_pp_each CPerlObj::Perl_pp_each -#define Perl_pp_egrent CPerlObj::Perl_pp_egrent -#define Perl_pp_ehostent CPerlObj::Perl_pp_ehostent -#define Perl_pp_enetent CPerlObj::Perl_pp_enetent -#define Perl_pp_enter CPerlObj::Perl_pp_enter -#define Perl_pp_entereval CPerlObj::Perl_pp_entereval -#define Perl_pp_enteriter CPerlObj::Perl_pp_enteriter -#define Perl_pp_enterloop CPerlObj::Perl_pp_enterloop -#define Perl_pp_entersub CPerlObj::Perl_pp_entersub -#define Perl_pp_entertry CPerlObj::Perl_pp_entertry -#define Perl_pp_enterwrite CPerlObj::Perl_pp_enterwrite -#define Perl_pp_eof CPerlObj::Perl_pp_eof -#define Perl_pp_eprotoent CPerlObj::Perl_pp_eprotoent -#define Perl_pp_epwent CPerlObj::Perl_pp_epwent -#define Perl_pp_eq CPerlObj::Perl_pp_eq -#define Perl_pp_eservent CPerlObj::Perl_pp_eservent -#define Perl_pp_exec CPerlObj::Perl_pp_exec -#define Perl_pp_exists CPerlObj::Perl_pp_exists -#define Perl_pp_exit CPerlObj::Perl_pp_exit -#define Perl_pp_exp CPerlObj::Perl_pp_exp -#define Perl_pp_fcntl CPerlObj::Perl_pp_fcntl -#define Perl_pp_fileno CPerlObj::Perl_pp_fileno -#define Perl_pp_flip CPerlObj::Perl_pp_flip -#define Perl_pp_flock CPerlObj::Perl_pp_flock -#define Perl_pp_flop CPerlObj::Perl_pp_flop -#define Perl_pp_fork CPerlObj::Perl_pp_fork -#define Perl_pp_formline CPerlObj::Perl_pp_formline -#define Perl_pp_ftatime CPerlObj::Perl_pp_ftatime -#define Perl_pp_ftbinary CPerlObj::Perl_pp_ftbinary -#define Perl_pp_ftblk CPerlObj::Perl_pp_ftblk -#define Perl_pp_ftchr CPerlObj::Perl_pp_ftchr -#define Perl_pp_ftctime CPerlObj::Perl_pp_ftctime -#define Perl_pp_ftdir CPerlObj::Perl_pp_ftdir -#define Perl_pp_fteexec CPerlObj::Perl_pp_fteexec -#define Perl_pp_fteowned CPerlObj::Perl_pp_fteowned -#define Perl_pp_fteread CPerlObj::Perl_pp_fteread -#define Perl_pp_ftewrite CPerlObj::Perl_pp_ftewrite -#define Perl_pp_ftfile CPerlObj::Perl_pp_ftfile -#define Perl_pp_ftis CPerlObj::Perl_pp_ftis -#define Perl_pp_ftlink CPerlObj::Perl_pp_ftlink -#define Perl_pp_ftmtime CPerlObj::Perl_pp_ftmtime -#define Perl_pp_ftpipe CPerlObj::Perl_pp_ftpipe -#define Perl_pp_ftrexec CPerlObj::Perl_pp_ftrexec -#define Perl_pp_ftrowned CPerlObj::Perl_pp_ftrowned -#define Perl_pp_ftrread CPerlObj::Perl_pp_ftrread -#define Perl_pp_ftrwrite CPerlObj::Perl_pp_ftrwrite -#define Perl_pp_ftsgid CPerlObj::Perl_pp_ftsgid -#define Perl_pp_ftsize CPerlObj::Perl_pp_ftsize -#define Perl_pp_ftsock CPerlObj::Perl_pp_ftsock -#define Perl_pp_ftsuid CPerlObj::Perl_pp_ftsuid -#define Perl_pp_ftsvtx CPerlObj::Perl_pp_ftsvtx -#define Perl_pp_fttext CPerlObj::Perl_pp_fttext -#define Perl_pp_fttty CPerlObj::Perl_pp_fttty -#define Perl_pp_ftzero CPerlObj::Perl_pp_ftzero -#define Perl_pp_ge CPerlObj::Perl_pp_ge -#define Perl_pp_gelem CPerlObj::Perl_pp_gelem -#define Perl_pp_getc CPerlObj::Perl_pp_getc -#define Perl_pp_getlogin CPerlObj::Perl_pp_getlogin -#define Perl_pp_getpeername CPerlObj::Perl_pp_getpeername -#define Perl_pp_getpgrp CPerlObj::Perl_pp_getpgrp -#define Perl_pp_getppid CPerlObj::Perl_pp_getppid -#define Perl_pp_getpriority CPerlObj::Perl_pp_getpriority -#define Perl_pp_getsockname CPerlObj::Perl_pp_getsockname -#define Perl_pp_ggrent CPerlObj::Perl_pp_ggrent -#define Perl_pp_ggrgid CPerlObj::Perl_pp_ggrgid -#define Perl_pp_ggrnam CPerlObj::Perl_pp_ggrnam -#define Perl_pp_ghbyaddr CPerlObj::Perl_pp_ghbyaddr -#define Perl_pp_ghbyname CPerlObj::Perl_pp_ghbyname -#define Perl_pp_ghostent CPerlObj::Perl_pp_ghostent -#define Perl_pp_glob CPerlObj::Perl_pp_glob -#define Perl_pp_gmtime CPerlObj::Perl_pp_gmtime -#define Perl_pp_gnbyaddr CPerlObj::Perl_pp_gnbyaddr -#define Perl_pp_gnbyname CPerlObj::Perl_pp_gnbyname -#define Perl_pp_gnetent CPerlObj::Perl_pp_gnetent -#define Perl_pp_goto CPerlObj::Perl_pp_goto -#define Perl_pp_gpbyname CPerlObj::Perl_pp_gpbyname -#define Perl_pp_gpbynumber CPerlObj::Perl_pp_gpbynumber -#define Perl_pp_gprotoent CPerlObj::Perl_pp_gprotoent -#define Perl_pp_gpwent CPerlObj::Perl_pp_gpwent -#define Perl_pp_gpwnam CPerlObj::Perl_pp_gpwnam -#define Perl_pp_gpwuid CPerlObj::Perl_pp_gpwuid -#define Perl_pp_grepstart CPerlObj::Perl_pp_grepstart -#define Perl_pp_grepwhile CPerlObj::Perl_pp_grepwhile -#define Perl_pp_gsbyname CPerlObj::Perl_pp_gsbyname -#define Perl_pp_gsbyport CPerlObj::Perl_pp_gsbyport -#define Perl_pp_gservent CPerlObj::Perl_pp_gservent -#define Perl_pp_gsockopt CPerlObj::Perl_pp_gsockopt -#define Perl_pp_gt CPerlObj::Perl_pp_gt -#define Perl_pp_gv CPerlObj::Perl_pp_gv -#define Perl_pp_gvsv CPerlObj::Perl_pp_gvsv -#define Perl_pp_helem CPerlObj::Perl_pp_helem -#define Perl_pp_hex CPerlObj::Perl_pp_hex -#define Perl_pp_hslice CPerlObj::Perl_pp_hslice -#define Perl_pp_i_add CPerlObj::Perl_pp_i_add -#define Perl_pp_i_divide CPerlObj::Perl_pp_i_divide -#define Perl_pp_i_eq CPerlObj::Perl_pp_i_eq -#define Perl_pp_i_ge CPerlObj::Perl_pp_i_ge -#define Perl_pp_i_gt CPerlObj::Perl_pp_i_gt -#define Perl_pp_i_le CPerlObj::Perl_pp_i_le -#define Perl_pp_i_lt CPerlObj::Perl_pp_i_lt -#define Perl_pp_i_modulo CPerlObj::Perl_pp_i_modulo -#define Perl_pp_i_multiply CPerlObj::Perl_pp_i_multiply -#define Perl_pp_i_ncmp CPerlObj::Perl_pp_i_ncmp -#define Perl_pp_i_ne CPerlObj::Perl_pp_i_ne -#define Perl_pp_i_negate CPerlObj::Perl_pp_i_negate -#define Perl_pp_i_subtract CPerlObj::Perl_pp_i_subtract -#define Perl_pp_index CPerlObj::Perl_pp_index -#define Perl_pp_int CPerlObj::Perl_pp_int -#define Perl_pp_ioctl CPerlObj::Perl_pp_ioctl -#define Perl_pp_iter CPerlObj::Perl_pp_iter -#define Perl_pp_join CPerlObj::Perl_pp_join -#define Perl_pp_keys CPerlObj::Perl_pp_keys -#define Perl_pp_kill CPerlObj::Perl_pp_kill -#define Perl_pp_last CPerlObj::Perl_pp_last -#define Perl_pp_lc CPerlObj::Perl_pp_lc -#define Perl_pp_lcfirst CPerlObj::Perl_pp_lcfirst -#define Perl_pp_le CPerlObj::Perl_pp_le -#define Perl_pp_leave CPerlObj::Perl_pp_leave -#define Perl_pp_leaveeval CPerlObj::Perl_pp_leaveeval -#define Perl_pp_leaveloop CPerlObj::Perl_pp_leaveloop -#define Perl_pp_leavesub CPerlObj::Perl_pp_leavesub -#define Perl_pp_leavetry CPerlObj::Perl_pp_leavetry -#define Perl_pp_leavewrite CPerlObj::Perl_pp_leavewrite -#define Perl_pp_left_shift CPerlObj::Perl_pp_left_shift -#define Perl_pp_length CPerlObj::Perl_pp_length -#define Perl_pp_lineseq CPerlObj::Perl_pp_lineseq -#define Perl_pp_link CPerlObj::Perl_pp_link -#define Perl_pp_list CPerlObj::Perl_pp_list -#define Perl_pp_listen CPerlObj::Perl_pp_listen -#define Perl_pp_localtime CPerlObj::Perl_pp_localtime -#define Perl_pp_lock CPerlObj::Perl_pp_lock -#define Perl_pp_log CPerlObj::Perl_pp_log -#define Perl_pp_lslice CPerlObj::Perl_pp_lslice -#define Perl_pp_lstat CPerlObj::Perl_pp_lstat -#define Perl_pp_lt CPerlObj::Perl_pp_lt -#define Perl_pp_mapstart CPerlObj::Perl_pp_mapstart -#define Perl_pp_mapwhile CPerlObj::Perl_pp_mapwhile -#define Perl_pp_match CPerlObj::Perl_pp_match -#define Perl_pp_method CPerlObj::Perl_pp_method -#define Perl_pp_mkdir CPerlObj::Perl_pp_mkdir -#define Perl_pp_modulo CPerlObj::Perl_pp_modulo -#define Perl_pp_msgctl CPerlObj::Perl_pp_msgctl -#define Perl_pp_msgget CPerlObj::Perl_pp_msgget -#define Perl_pp_msgrcv CPerlObj::Perl_pp_msgrcv -#define Perl_pp_msgsnd CPerlObj::Perl_pp_msgsnd -#define Perl_pp_multiply CPerlObj::Perl_pp_multiply -#define Perl_pp_ncmp CPerlObj::Perl_pp_ncmp -#define Perl_pp_ne CPerlObj::Perl_pp_ne -#define Perl_pp_negate CPerlObj::Perl_pp_negate -#define Perl_pp_next CPerlObj::Perl_pp_next -#define Perl_pp_nextstate CPerlObj::Perl_pp_nextstate -#define Perl_pp_not CPerlObj::Perl_pp_not -#define Perl_pp_null CPerlObj::Perl_pp_null -#define Perl_pp_oct CPerlObj::Perl_pp_oct -#define Perl_pp_open CPerlObj::Perl_pp_open -#define Perl_pp_open_dir CPerlObj::Perl_pp_open_dir -#define Perl_pp_or CPerlObj::Perl_pp_or -#define Perl_pp_orassign CPerlObj::Perl_pp_orassign -#define Perl_pp_ord CPerlObj::Perl_pp_ord -#define Perl_pp_pack CPerlObj::Perl_pp_pack -#define Perl_pp_padany CPerlObj::Perl_pp_padany -#define Perl_pp_padav CPerlObj::Perl_pp_padav -#define Perl_pp_padhv CPerlObj::Perl_pp_padhv -#define Perl_pp_padsv CPerlObj::Perl_pp_padsv -#define Perl_pp_pipe_op CPerlObj::Perl_pp_pipe_op -#define Perl_pp_pop CPerlObj::Perl_pp_pop -#define Perl_pp_pos CPerlObj::Perl_pp_pos -#define Perl_pp_postdec CPerlObj::Perl_pp_postdec -#define Perl_pp_postinc CPerlObj::Perl_pp_postinc -#define Perl_pp_pow CPerlObj::Perl_pp_pow -#define Perl_pp_predec CPerlObj::Perl_pp_predec -#define Perl_pp_preinc CPerlObj::Perl_pp_preinc -#define Perl_pp_print CPerlObj::Perl_pp_print -#define Perl_pp_prototype CPerlObj::Perl_pp_prototype -#define Perl_pp_prtf CPerlObj::Perl_pp_prtf -#define Perl_pp_push CPerlObj::Perl_pp_push -#define Perl_pp_pushmark CPerlObj::Perl_pp_pushmark -#define Perl_pp_pushre CPerlObj::Perl_pp_pushre -#define Perl_pp_qr CPerlObj::Perl_pp_qr -#define Perl_pp_quotemeta CPerlObj::Perl_pp_quotemeta -#define Perl_pp_rand CPerlObj::Perl_pp_rand -#define Perl_pp_range CPerlObj::Perl_pp_range -#define Perl_pp_rcatline CPerlObj::Perl_pp_rcatline -#define Perl_pp_read CPerlObj::Perl_pp_read -#define Perl_pp_readdir CPerlObj::Perl_pp_readdir -#define Perl_pp_readline CPerlObj::Perl_pp_readline -#define Perl_pp_readlink CPerlObj::Perl_pp_readlink -#define Perl_pp_recv CPerlObj::Perl_pp_recv -#define Perl_pp_redo CPerlObj::Perl_pp_redo -#define Perl_pp_ref CPerlObj::Perl_pp_ref -#define Perl_pp_refgen CPerlObj::Perl_pp_refgen -#define Perl_pp_regcmaybe CPerlObj::Perl_pp_regcmaybe -#define Perl_pp_regcomp CPerlObj::Perl_pp_regcomp -#define Perl_pp_regcreset CPerlObj::Perl_pp_regcreset -#define Perl_pp_rename CPerlObj::Perl_pp_rename -#define Perl_pp_repeat CPerlObj::Perl_pp_repeat -#define Perl_pp_require CPerlObj::Perl_pp_require -#define Perl_pp_reset CPerlObj::Perl_pp_reset -#define Perl_pp_return CPerlObj::Perl_pp_return -#define Perl_pp_reverse CPerlObj::Perl_pp_reverse -#define Perl_pp_rewinddir CPerlObj::Perl_pp_rewinddir -#define Perl_pp_right_shift CPerlObj::Perl_pp_right_shift -#define Perl_pp_rindex CPerlObj::Perl_pp_rindex -#define Perl_pp_rmdir CPerlObj::Perl_pp_rmdir -#define Perl_pp_rv2av CPerlObj::Perl_pp_rv2av -#define Perl_pp_rv2cv CPerlObj::Perl_pp_rv2cv -#define Perl_pp_rv2gv CPerlObj::Perl_pp_rv2gv -#define Perl_pp_rv2hv CPerlObj::Perl_pp_rv2hv -#define Perl_pp_rv2sv CPerlObj::Perl_pp_rv2sv -#define Perl_pp_sassign CPerlObj::Perl_pp_sassign -#define Perl_pp_scalar CPerlObj::Perl_pp_scalar -#define Perl_pp_schomp CPerlObj::Perl_pp_schomp -#define Perl_pp_schop CPerlObj::Perl_pp_schop -#define Perl_pp_scmp CPerlObj::Perl_pp_scmp -#define Perl_pp_scope CPerlObj::Perl_pp_scope -#define Perl_pp_seek CPerlObj::Perl_pp_seek -#define Perl_pp_seekdir CPerlObj::Perl_pp_seekdir -#define Perl_pp_select CPerlObj::Perl_pp_select -#define Perl_pp_semctl CPerlObj::Perl_pp_semctl -#define Perl_pp_semget CPerlObj::Perl_pp_semget -#define Perl_pp_semop CPerlObj::Perl_pp_semop -#define Perl_pp_send CPerlObj::Perl_pp_send -#define Perl_pp_seq CPerlObj::Perl_pp_seq -#define Perl_pp_setpgrp CPerlObj::Perl_pp_setpgrp -#define Perl_pp_setpriority CPerlObj::Perl_pp_setpriority -#define Perl_pp_sge CPerlObj::Perl_pp_sge -#define Perl_pp_sgrent CPerlObj::Perl_pp_sgrent -#define Perl_pp_sgt CPerlObj::Perl_pp_sgt -#define Perl_pp_shift CPerlObj::Perl_pp_shift -#define Perl_pp_shmctl CPerlObj::Perl_pp_shmctl -#define Perl_pp_shmget CPerlObj::Perl_pp_shmget -#define Perl_pp_shmread CPerlObj::Perl_pp_shmread -#define Perl_pp_shmwrite CPerlObj::Perl_pp_shmwrite -#define Perl_pp_shostent CPerlObj::Perl_pp_shostent -#define Perl_pp_shutdown CPerlObj::Perl_pp_shutdown -#define Perl_pp_sin CPerlObj::Perl_pp_sin -#define Perl_pp_sle CPerlObj::Perl_pp_sle -#define Perl_pp_sleep CPerlObj::Perl_pp_sleep -#define Perl_pp_slt CPerlObj::Perl_pp_slt -#define Perl_pp_sne CPerlObj::Perl_pp_sne -#define Perl_pp_snetent CPerlObj::Perl_pp_snetent -#define Perl_pp_socket CPerlObj::Perl_pp_socket -#define Perl_pp_sockpair CPerlObj::Perl_pp_sockpair -#define Perl_pp_sort CPerlObj::Perl_pp_sort -#define Perl_pp_splice CPerlObj::Perl_pp_splice -#define Perl_pp_split CPerlObj::Perl_pp_split -#define Perl_pp_sprintf CPerlObj::Perl_pp_sprintf -#define Perl_pp_sprotoent CPerlObj::Perl_pp_sprotoent -#define Perl_pp_spwent CPerlObj::Perl_pp_spwent -#define Perl_pp_sqrt CPerlObj::Perl_pp_sqrt -#define Perl_pp_srand CPerlObj::Perl_pp_srand -#define Perl_pp_srefgen CPerlObj::Perl_pp_srefgen -#define Perl_pp_sselect CPerlObj::Perl_pp_sselect -#define Perl_pp_sservent CPerlObj::Perl_pp_sservent -#define Perl_pp_ssockopt CPerlObj::Perl_pp_ssockopt -#define Perl_pp_stat CPerlObj::Perl_pp_stat -#define Perl_pp_stringify CPerlObj::Perl_pp_stringify -#define Perl_pp_stub CPerlObj::Perl_pp_stub -#define Perl_pp_study CPerlObj::Perl_pp_study -#define Perl_pp_subst CPerlObj::Perl_pp_subst -#define Perl_pp_substcont CPerlObj::Perl_pp_substcont -#define Perl_pp_substr CPerlObj::Perl_pp_substr -#define Perl_pp_subtract CPerlObj::Perl_pp_subtract -#define Perl_pp_symlink CPerlObj::Perl_pp_symlink -#define Perl_pp_syscall CPerlObj::Perl_pp_syscall -#define Perl_pp_sysopen CPerlObj::Perl_pp_sysopen -#define Perl_pp_sysread CPerlObj::Perl_pp_sysread -#define Perl_pp_sysseek CPerlObj::Perl_pp_sysseek -#define Perl_pp_system CPerlObj::Perl_pp_system -#define Perl_pp_syswrite CPerlObj::Perl_pp_syswrite -#define Perl_pp_tell CPerlObj::Perl_pp_tell -#define Perl_pp_telldir CPerlObj::Perl_pp_telldir -#define Perl_pp_threadsv CPerlObj::Perl_pp_threadsv -#define Perl_pp_tie CPerlObj::Perl_pp_tie -#define Perl_pp_tied CPerlObj::Perl_pp_tied -#define Perl_pp_time CPerlObj::Perl_pp_time -#define Perl_pp_tms CPerlObj::Perl_pp_tms -#define Perl_pp_trans CPerlObj::Perl_pp_trans -#define Perl_pp_truncate CPerlObj::Perl_pp_truncate -#define Perl_pp_uc CPerlObj::Perl_pp_uc -#define Perl_pp_ucfirst CPerlObj::Perl_pp_ucfirst -#define Perl_pp_umask CPerlObj::Perl_pp_umask -#define Perl_pp_undef CPerlObj::Perl_pp_undef -#define Perl_pp_unlink CPerlObj::Perl_pp_unlink -#define Perl_pp_unpack CPerlObj::Perl_pp_unpack -#define Perl_pp_unshift CPerlObj::Perl_pp_unshift -#define Perl_pp_unstack CPerlObj::Perl_pp_unstack -#define Perl_pp_untie CPerlObj::Perl_pp_untie -#define Perl_pp_utime CPerlObj::Perl_pp_utime -#define Perl_pp_values CPerlObj::Perl_pp_values -#define Perl_pp_vec CPerlObj::Perl_pp_vec -#define Perl_pp_wait CPerlObj::Perl_pp_wait -#define Perl_pp_waitpid CPerlObj::Perl_pp_waitpid -#define Perl_pp_wantarray CPerlObj::Perl_pp_wantarray -#define Perl_pp_warn CPerlObj::Perl_pp_warn -#define Perl_pp_xor CPerlObj::Perl_pp_xor -#define Perl_pregcomp CPerlObj::Perl_pregcomp -#define Perl_pregexec CPerlObj::Perl_pregexec -#define Perl_pregfree CPerlObj::Perl_pregfree -#define Perl_prepend_elem CPerlObj::Perl_prepend_elem -#define Perl_push_return CPerlObj::Perl_push_return -#define Perl_push_scope CPerlObj::Perl_push_scope -#define Perl_pv_display CPerlObj::Perl_pv_display -#define Perl_ref CPerlObj::Perl_ref -#define Perl_refkids CPerlObj::Perl_refkids -#define Perl_regdump CPerlObj::Perl_regdump -#define Perl_regexec_flags CPerlObj::Perl_regexec_flags -#define Perl_reginitcolors CPerlObj::Perl_reginitcolors -#define Perl_regnext CPerlObj::Perl_regnext -#define Perl_regprop CPerlObj::Perl_regprop -#define Perl_repeatcpy CPerlObj::Perl_repeatcpy -#define Perl_require_pv CPerlObj::Perl_require_pv -#define Perl_rninstr CPerlObj::Perl_rninstr -#define Perl_rsignal CPerlObj::Perl_rsignal -#define Perl_rsignal_restore CPerlObj::Perl_rsignal_restore -#define Perl_rsignal_save CPerlObj::Perl_rsignal_save -#define Perl_rsignal_state CPerlObj::Perl_rsignal_state -#define Perl_runops_debug CPerlObj::Perl_runops_debug -#define Perl_runops_standard CPerlObj::Perl_runops_standard -#define Perl_rxres_free CPerlObj::Perl_rxres_free -#define Perl_rxres_restore CPerlObj::Perl_rxres_restore -#define Perl_rxres_save CPerlObj::Perl_rxres_save -#define Perl_safesyscalloc CPerlObj::Perl_safesyscalloc -#define Perl_safesysfree CPerlObj::Perl_safesysfree -#define Perl_safesysmalloc CPerlObj::Perl_safesysmalloc -#define Perl_safesysrealloc CPerlObj::Perl_safesysrealloc -#define Perl_safexcalloc CPerlObj::Perl_safexcalloc -#define Perl_safexfree CPerlObj::Perl_safexfree -#define Perl_safexmalloc CPerlObj::Perl_safexmalloc -#define Perl_safexrealloc CPerlObj::Perl_safexrealloc -#define Perl_same_dirent CPerlObj::Perl_same_dirent -#define Perl_save_I16 CPerlObj::Perl_save_I16 -#define Perl_save_I32 CPerlObj::Perl_save_I32 -#define Perl_save_aelem CPerlObj::Perl_save_aelem -#define Perl_save_alloc CPerlObj::Perl_save_alloc -#define Perl_save_aptr CPerlObj::Perl_save_aptr -#define Perl_save_ary CPerlObj::Perl_save_ary -#define Perl_save_clearsv CPerlObj::Perl_save_clearsv -#define Perl_save_delete CPerlObj::Perl_save_delete -#define Perl_save_destructor CPerlObj::Perl_save_destructor -#define Perl_save_freeop CPerlObj::Perl_save_freeop -#define Perl_save_freepv CPerlObj::Perl_save_freepv -#define Perl_save_freesv CPerlObj::Perl_save_freesv -#define Perl_save_generic_svref CPerlObj::Perl_save_generic_svref -#define Perl_save_gp CPerlObj::Perl_save_gp -#define Perl_save_hash CPerlObj::Perl_save_hash -#define Perl_save_helem CPerlObj::Perl_save_helem -#define Perl_save_hints CPerlObj::Perl_save_hints -#define Perl_save_hptr CPerlObj::Perl_save_hptr -#define Perl_save_int CPerlObj::Perl_save_int -#define Perl_save_item CPerlObj::Perl_save_item -#define Perl_save_iv CPerlObj::Perl_save_iv -#define Perl_save_list CPerlObj::Perl_save_list -#define Perl_save_long CPerlObj::Perl_save_long -#define Perl_save_nogv CPerlObj::Perl_save_nogv -#define Perl_save_op CPerlObj::Perl_save_op -#define Perl_save_pptr CPerlObj::Perl_save_pptr -#define Perl_save_re_context CPerlObj::Perl_save_re_context -#define Perl_save_scalar CPerlObj::Perl_save_scalar -#define Perl_save_sptr CPerlObj::Perl_save_sptr -#define Perl_save_svref CPerlObj::Perl_save_svref -#define Perl_save_threadsv CPerlObj::Perl_save_threadsv -#define Perl_savepv CPerlObj::Perl_savepv -#define Perl_savepvn CPerlObj::Perl_savepvn -#define Perl_savestack_grow CPerlObj::Perl_savestack_grow -#define Perl_sawparens CPerlObj::Perl_sawparens -#define Perl_scalar CPerlObj::Perl_scalar -#define Perl_scalarkids CPerlObj::Perl_scalarkids -#define Perl_scalarseq CPerlObj::Perl_scalarseq -#define Perl_scalarvoid CPerlObj::Perl_scalarvoid -#define Perl_scan_bin CPerlObj::Perl_scan_bin -#define Perl_scan_hex CPerlObj::Perl_scan_hex -#define Perl_scan_num CPerlObj::Perl_scan_num -#define Perl_scan_oct CPerlObj::Perl_scan_oct -#define Perl_scope CPerlObj::Perl_scope -#define Perl_screaminstr CPerlObj::Perl_screaminstr -#define Perl_set_numeric_local CPerlObj::Perl_set_numeric_local -#define Perl_set_numeric_standard CPerlObj::Perl_set_numeric_standard -#define Perl_setdefout CPerlObj::Perl_setdefout -#define Perl_setenv_getix CPerlObj::Perl_setenv_getix -#define Perl_share_hek CPerlObj::Perl_share_hek -#define Perl_sharepvn CPerlObj::Perl_sharepvn -#define Perl_sighandler CPerlObj::Perl_sighandler -#define Perl_stack_grow CPerlObj::Perl_stack_grow -#define Perl_start_subparse CPerlObj::Perl_start_subparse -#define Perl_sub_crush_depth CPerlObj::Perl_sub_crush_depth -#define Perl_sv_2bool CPerlObj::Perl_sv_2bool -#define Perl_sv_2cv CPerlObj::Perl_sv_2cv -#define Perl_sv_2io CPerlObj::Perl_sv_2io -#define Perl_sv_2iv CPerlObj::Perl_sv_2iv -#define Perl_sv_2mortal CPerlObj::Perl_sv_2mortal -#define Perl_sv_2nv CPerlObj::Perl_sv_2nv -#define Perl_sv_2pv CPerlObj::Perl_sv_2pv -#define Perl_sv_2pv_nolen CPerlObj::Perl_sv_2pv_nolen -#define Perl_sv_2uv CPerlObj::Perl_sv_2uv -#define Perl_sv_add_arena CPerlObj::Perl_sv_add_arena -#define Perl_sv_backoff CPerlObj::Perl_sv_backoff -#define Perl_sv_bless CPerlObj::Perl_sv_bless -#define Perl_sv_catpv CPerlObj::Perl_sv_catpv -#define Perl_sv_catpv_mg CPerlObj::Perl_sv_catpv_mg -#define Perl_sv_catpvf CPerlObj::Perl_sv_catpvf -#define Perl_sv_catpvf_mg CPerlObj::Perl_sv_catpvf_mg -#define Perl_sv_catpvn CPerlObj::Perl_sv_catpvn -#define Perl_sv_catpvn_mg CPerlObj::Perl_sv_catpvn_mg -#define Perl_sv_catsv CPerlObj::Perl_sv_catsv -#define Perl_sv_catsv_mg CPerlObj::Perl_sv_catsv_mg -#define Perl_sv_chop CPerlObj::Perl_sv_chop -#define Perl_sv_clean_all CPerlObj::Perl_sv_clean_all -#define Perl_sv_clean_objs CPerlObj::Perl_sv_clean_objs -#define Perl_sv_clear CPerlObj::Perl_sv_clear -#define Perl_sv_cmp CPerlObj::Perl_sv_cmp -#define Perl_sv_cmp_locale CPerlObj::Perl_sv_cmp_locale -#define Perl_sv_collxfrm CPerlObj::Perl_sv_collxfrm -#define Perl_sv_compile_2op CPerlObj::Perl_sv_compile_2op -#define Perl_sv_dec CPerlObj::Perl_sv_dec -#define Perl_sv_derived_from CPerlObj::Perl_sv_derived_from -#define Perl_sv_dump CPerlObj::Perl_sv_dump -#define Perl_sv_eq CPerlObj::Perl_sv_eq -#define Perl_sv_force_normal CPerlObj::Perl_sv_force_normal -#define Perl_sv_free CPerlObj::Perl_sv_free -#define Perl_sv_free_arenas CPerlObj::Perl_sv_free_arenas -#define Perl_sv_gets CPerlObj::Perl_sv_gets -#define Perl_sv_grow CPerlObj::Perl_sv_grow -#define Perl_sv_inc CPerlObj::Perl_sv_inc -#define Perl_sv_insert CPerlObj::Perl_sv_insert -#define Perl_sv_isa CPerlObj::Perl_sv_isa -#define Perl_sv_isobject CPerlObj::Perl_sv_isobject -#define Perl_sv_iv CPerlObj::Perl_sv_iv -#define Perl_sv_len CPerlObj::Perl_sv_len -#define Perl_sv_len_utf8 CPerlObj::Perl_sv_len_utf8 -#define Perl_sv_magic CPerlObj::Perl_sv_magic -#define Perl_sv_mortalcopy CPerlObj::Perl_sv_mortalcopy -#define Perl_sv_newmortal CPerlObj::Perl_sv_newmortal -#define Perl_sv_newref CPerlObj::Perl_sv_newref -#define Perl_sv_nv CPerlObj::Perl_sv_nv -#define Perl_sv_peek CPerlObj::Perl_sv_peek -#define Perl_sv_pos_b2u CPerlObj::Perl_sv_pos_b2u -#define Perl_sv_pos_u2b CPerlObj::Perl_sv_pos_u2b -#define Perl_sv_pv CPerlObj::Perl_sv_pv -#define Perl_sv_pvn CPerlObj::Perl_sv_pvn -#define Perl_sv_pvn_force CPerlObj::Perl_sv_pvn_force -#define Perl_sv_reftype CPerlObj::Perl_sv_reftype -#define Perl_sv_replace CPerlObj::Perl_sv_replace -#define Perl_sv_report_used CPerlObj::Perl_sv_report_used -#define Perl_sv_reset CPerlObj::Perl_sv_reset -#define Perl_sv_rvweaken CPerlObj::Perl_sv_rvweaken -#define Perl_sv_setiv CPerlObj::Perl_sv_setiv -#define Perl_sv_setiv_mg CPerlObj::Perl_sv_setiv_mg -#define Perl_sv_setnv CPerlObj::Perl_sv_setnv -#define Perl_sv_setnv_mg CPerlObj::Perl_sv_setnv_mg -#define Perl_sv_setpv CPerlObj::Perl_sv_setpv -#define Perl_sv_setpv_mg CPerlObj::Perl_sv_setpv_mg -#define Perl_sv_setpvf CPerlObj::Perl_sv_setpvf -#define Perl_sv_setpvf_mg CPerlObj::Perl_sv_setpvf_mg -#define Perl_sv_setpviv CPerlObj::Perl_sv_setpviv -#define Perl_sv_setpviv_mg CPerlObj::Perl_sv_setpviv_mg -#define Perl_sv_setpvn CPerlObj::Perl_sv_setpvn -#define Perl_sv_setpvn_mg CPerlObj::Perl_sv_setpvn_mg -#define Perl_sv_setref_iv CPerlObj::Perl_sv_setref_iv -#define Perl_sv_setref_nv CPerlObj::Perl_sv_setref_nv -#define Perl_sv_setref_pv CPerlObj::Perl_sv_setref_pv -#define Perl_sv_setref_pvn CPerlObj::Perl_sv_setref_pvn -#define Perl_sv_setsv CPerlObj::Perl_sv_setsv -#define Perl_sv_setsv_mg CPerlObj::Perl_sv_setsv_mg -#define Perl_sv_setuv CPerlObj::Perl_sv_setuv -#define Perl_sv_setuv_mg CPerlObj::Perl_sv_setuv_mg -#define Perl_sv_taint CPerlObj::Perl_sv_taint -#define Perl_sv_tainted CPerlObj::Perl_sv_tainted -#define Perl_sv_true CPerlObj::Perl_sv_true -#define Perl_sv_unmagic CPerlObj::Perl_sv_unmagic -#define Perl_sv_unref CPerlObj::Perl_sv_unref -#define Perl_sv_untaint CPerlObj::Perl_sv_untaint -#define Perl_sv_upgrade CPerlObj::Perl_sv_upgrade -#define Perl_sv_usepvn CPerlObj::Perl_sv_usepvn -#define Perl_sv_usepvn_mg CPerlObj::Perl_sv_usepvn_mg -#define Perl_sv_uv CPerlObj::Perl_sv_uv -#define Perl_sv_vcatpvfn CPerlObj::Perl_sv_vcatpvfn -#define Perl_sv_vsetpvfn CPerlObj::Perl_sv_vsetpvfn -#define Perl_swash_fetch CPerlObj::Perl_swash_fetch -#define Perl_swash_init CPerlObj::Perl_swash_init -#define Perl_taint_env CPerlObj::Perl_taint_env -#define Perl_taint_proper CPerlObj::Perl_taint_proper -#define Perl_tmps_grow CPerlObj::Perl_tmps_grow -#define Perl_to_uni_lower CPerlObj::Perl_to_uni_lower -#define Perl_to_uni_lower_lc CPerlObj::Perl_to_uni_lower_lc -#define Perl_to_uni_title CPerlObj::Perl_to_uni_title -#define Perl_to_uni_title_lc CPerlObj::Perl_to_uni_title_lc -#define Perl_to_uni_upper CPerlObj::Perl_to_uni_upper -#define Perl_to_uni_upper_lc CPerlObj::Perl_to_uni_upper_lc -#define Perl_to_utf8_lower CPerlObj::Perl_to_utf8_lower -#define Perl_to_utf8_title CPerlObj::Perl_to_utf8_title -#define Perl_to_utf8_upper CPerlObj::Perl_to_utf8_upper -#define Perl_unlnk CPerlObj::Perl_unlnk -#define Perl_unlock_condpair CPerlObj::Perl_unlock_condpair -#define Perl_unshare_hek CPerlObj::Perl_unshare_hek -#define Perl_unsharepvn CPerlObj::Perl_unsharepvn -#define Perl_utf16_to_utf8 CPerlObj::Perl_utf16_to_utf8 -#define Perl_utf16_to_utf8_reversed CPerlObj::Perl_utf16_to_utf8_reversed -#define Perl_utf8_distance CPerlObj::Perl_utf8_distance -#define Perl_utf8_hop CPerlObj::Perl_utf8_hop -#define Perl_utf8_to_uv CPerlObj::Perl_utf8_to_uv -#define Perl_utilize CPerlObj::Perl_utilize -#define Perl_uv_to_utf8 CPerlObj::Perl_uv_to_utf8 -#define Perl_vivify_defelem CPerlObj::Perl_vivify_defelem -#define Perl_vivify_ref CPerlObj::Perl_vivify_ref -#define Perl_wait4pid CPerlObj::Perl_wait4pid -#define Perl_warn CPerlObj::Perl_warn -#define Perl_warner CPerlObj::Perl_warner -#define Perl_watch CPerlObj::Perl_watch -#define Perl_whichsig CPerlObj::Perl_whichsig -#define Perl_yydestruct CPerlObj::Perl_yydestruct -#define Perl_yyerror CPerlObj::Perl_yyerror -#define Perl_yylex CPerlObj::Perl_yylex -#define Perl_yyparse CPerlObj::Perl_yyparse -#define Perl_yywarn CPerlObj::Perl_yywarn -#define add_data CPerlObj::Perl_add_data -#define amagic_cmp CPerlObj::Perl_amagic_cmp -#define amagic_cmp_locale CPerlObj::Perl_amagic_cmp_locale -#define amagic_i_ncmp CPerlObj::Perl_amagic_i_ncmp -#define amagic_ncmp CPerlObj::Perl_amagic_ncmp -#define ao CPerlObj::Perl_ao -#define asIV CPerlObj::Perl_asIV -#define asUV CPerlObj::Perl_asUV -#define avhv_index_sv CPerlObj::Perl_avhv_index_sv -#define bad_type CPerlObj::Perl_bad_type -#define cache_re CPerlObj::Perl_cache_re -#define call_list_body CPerlObj::Perl_call_list_body -#define check_uni CPerlObj::Perl_check_uni -#define checkcomma CPerlObj::Perl_checkcomma -#define clear_re CPerlObj::Perl_clear_re -#define cv_clone2 CPerlObj::Perl_cv_clone2 -#define debprof CPerlObj::Perl_debprof -#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 depcom CPerlObj::Perl_depcom -#define div128 CPerlObj::Perl_div128 -#define do_aspawn CPerlObj::Perl_do_aspawn -#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_report_used CPerlObj::Perl_do_report_used -#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 docatch CPerlObj::Perl_docatch -#define docatch_body CPerlObj::Perl_docatch_body -#define doencodes CPerlObj::Perl_doencodes -#define doeval CPerlObj::Perl_doeval -#define dofindlabel CPerlObj::Perl_dofindlabel -#define doform CPerlObj::Perl_doform -#define doopen_pmc CPerlObj::Perl_doopen_pmc -#define doparseform CPerlObj::Perl_doparseform -#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 dump CPerlObj::Perl_dump -#define dumpuntil CPerlObj::Perl_dumpuntil -#define emulate_eaccess CPerlObj::Perl_emulate_eaccess -#define filter_gets CPerlObj::Perl_filter_gets -#define find_beginning CPerlObj::Perl_find_beginning -#define forbid_setid CPerlObj::Perl_forbid_setid -#define force_ident CPerlObj::Perl_force_ident -#define force_next CPerlObj::Perl_force_next -#define force_version CPerlObj::Perl_force_version -#define force_word CPerlObj::Perl_force_word -#define free_closures CPerlObj::Perl_free_closures -#define get_db_sub CPerlObj::Perl_get_db_sub -#define gv_ename CPerlObj::Perl_gv_ename -#define gv_init_sv CPerlObj::Perl_gv_init_sv -#define hfreeentries CPerlObj::Perl_hfreeentries -#define hsplit CPerlObj::Perl_hsplit -#define incl_perldb CPerlObj::Perl_incl_perldb -#define incline CPerlObj::Perl_incline -#define incpush CPerlObj::Perl_incpush -#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 intuit_method CPerlObj::Perl_intuit_method -#define intuit_more CPerlObj::Perl_intuit_more -#define is_an_int CPerlObj::Perl_is_an_int -#define is_handle_constructor CPerlObj::Perl_is_handle_constructor -#define isa_lookup CPerlObj::Perl_isa_lookup -#define list_assignment CPerlObj::Perl_list_assignment -#define lop CPerlObj::Perl_lop -#define magic_methcall CPerlObj::Perl_magic_methcall -#define magic_methcall CPerlObj::Perl_magic_methcall -#define magic_methpack CPerlObj::Perl_magic_methpack -#define main CPerlObj::Perl_main -#define mess_alloc CPerlObj::Perl_mess_alloc -#define missingterm CPerlObj::Perl_missingterm -#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 mul128 CPerlObj::Perl_mul128 -#define my_exit_jump CPerlObj::Perl_my_exit_jump -#define my_safemalloc CPerlObj::Perl_my_safemalloc -#define newDEFSVOP CPerlObj::Perl_newDEFSVOP -#define new_constant CPerlObj::Perl_new_constant -#define new_he CPerlObj::Perl_new_he -#define new_logop CPerlObj::Perl_new_logop -#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 nextchar CPerlObj::Perl_nextchar -#define no_bareword_allowed CPerlObj::Perl_no_bareword_allowed -#define no_fh_allowed CPerlObj::Perl_no_fh_allowed -#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 open_script CPerlObj::Perl_open_script -#define pad_findlex CPerlObj::Perl_pad_findlex -#define perl_alloc CPerlObj::perl_alloc -#define perl_atexit CPerlObj::perl_atexit -#define perl_call_argv CPerlObj::perl_call_argv -#define perl_call_body CPerlObj::perl_call_body -#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_call_xbody CPerlObj::perl_call_xbody -#define perl_construct CPerlObj::perl_construct -#define perl_construct CPerlObj::perl_construct -#define perl_destruct CPerlObj::perl_destruct -#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_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_parse CPerlObj::perl_parse -#define perl_parse_body CPerlObj::perl_parse_body -#define perl_require_pv CPerlObj::perl_require_pv -#define perl_run CPerlObj::perl_run -#define perl_run CPerlObj::perl_run -#define perl_run_body CPerlObj::perl_run_body -#define perl_set_numeric_local CPerlObj::perl_set_numeric_local -#define perl_set_numeric_standard CPerlObj::perl_set_numeric_standard -#define qsortsv CPerlObj::Perl_qsortsv -#define re_croak2 CPerlObj::Perl_re_croak2 -#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 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 regoptail CPerlObj::Perl_regoptail -#define regpiece CPerlObj::Perl_regpiece -#define regpposixcc CPerlObj::Perl_regpposixcc -#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 restore_expect CPerlObj::Perl_restore_expect -#define restore_lex_expect CPerlObj::Perl_restore_lex_expect -#define restore_magic CPerlObj::Perl_restore_magic -#define restore_pos CPerlObj::Perl_restore_pos -#define restore_rsfp CPerlObj::Perl_restore_rsfp -#define save_hek CPerlObj::Perl_save_hek -#define save_lines CPerlObj::Perl_save_lines -#define save_magic CPerlObj::Perl_save_magic -#define save_scalar_at CPerlObj::Perl_save_scalar_at -#define scalarboolean CPerlObj::Perl_scalarboolean -#define scan_commit CPerlObj::Perl_scan_commit -#define scan_const CPerlObj::Perl_scan_const -#define scan_formline CPerlObj::Perl_scan_formline -#define scan_heredoc CPerlObj::Perl_scan_heredoc -#define scan_ident CPerlObj::Perl_scan_ident -#define scan_inputsymbol CPerlObj::Perl_scan_inputsymbol -#define scan_pat CPerlObj::Perl_scan_pat -#define scan_str CPerlObj::Perl_scan_str -#define scan_subst CPerlObj::Perl_scan_subst -#define scan_trans CPerlObj::Perl_scan_trans -#define scan_word CPerlObj::Perl_scan_word -#define seed CPerlObj::Perl_seed -#define set_csh CPerlObj::Perl_set_csh -#define simplify_sort CPerlObj::Perl_simplify_sort -#define skipspace CPerlObj::Perl_skipspace -#define sortcv CPerlObj::Perl_sortcv -#define study_chunk CPerlObj::Perl_study_chunk -#define sublex_done CPerlObj::Perl_sublex_done -#define sublex_push CPerlObj::Perl_sublex_push -#define sublex_start CPerlObj::Perl_sublex_start -#define sv_add_backref CPerlObj::Perl_sv_add_backref -#define sv_del_backref CPerlObj::Perl_sv_del_backref -#define sv_i_ncmp CPerlObj::Perl_sv_i_ncmp -#define sv_ncmp CPerlObj::Perl_sv_ncmp -#define sv_unglob CPerlObj::Perl_sv_unglob -#define tokeq CPerlObj::Perl_tokeq -#define too_few_arguments CPerlObj::Perl_too_few_arguments -#define too_many_arguments CPerlObj::Perl_too_many_arguments -#define uni CPerlObj::Perl_uni -#define unwind_handler_stack CPerlObj::Perl_unwind_handler_stack -#define usage CPerlObj::Perl_usage -#define validate_suid CPerlObj::Perl_validate_suid -#define visit CPerlObj::Perl_visit -#define win32_textfilter CPerlObj::Perl_win32_textfilter +#define Perl_amagic_call CPerlObj::amagic_call +#define Perl_Gv_AMupdate CPerlObj::Gv_AMupdate +#define Perl_append_elem CPerlObj::append_elem +#define Perl_append_list CPerlObj::append_list +#define Perl_apply CPerlObj::apply +#define Perl_assertref CPerlObj::assertref +#define Perl_avhv_exists_ent CPerlObj::avhv_exists_ent +#define Perl_avhv_fetch_ent CPerlObj::avhv_fetch_ent +#define Perl_avhv_iternext CPerlObj::avhv_iternext +#define Perl_avhv_iterval CPerlObj::avhv_iterval +#define Perl_avhv_keys CPerlObj::avhv_keys +#define Perl_av_clear CPerlObj::av_clear +#define Perl_av_extend CPerlObj::av_extend +#define Perl_av_fake CPerlObj::av_fake +#define Perl_av_fetch CPerlObj::av_fetch +#define Perl_av_fill CPerlObj::av_fill +#define Perl_av_len CPerlObj::av_len +#define Perl_av_make CPerlObj::av_make +#define Perl_av_pop CPerlObj::av_pop +#define Perl_av_push CPerlObj::av_push +#define Perl_av_reify CPerlObj::av_reify +#define Perl_av_shift CPerlObj::av_shift +#define Perl_av_store CPerlObj::av_store +#define Perl_av_undef CPerlObj::av_undef +#define Perl_av_unshift CPerlObj::av_unshift +#define Perl_bind_match CPerlObj::bind_match +#define Perl_block_end CPerlObj::block_end +#define Perl_block_gimme CPerlObj::block_gimme +#define Perl_block_start CPerlObj::block_start +#define Perl_boot_core_UNIVERSAL CPerlObj::boot_core_UNIVERSAL +#define Perl_call_list CPerlObj::call_list +#define Perl_cando CPerlObj::cando +#define Perl_cast_ulong CPerlObj::cast_ulong +#define Perl_cast_i32 CPerlObj::cast_i32 +#define Perl_cast_iv CPerlObj::cast_iv +#define Perl_cast_uv CPerlObj::cast_uv +#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) +#define Perl_my_chsize CPerlObj::my_chsize +#endif +#if defined(USE_THREADS) +#define Perl_condpair_magic CPerlObj::condpair_magic +#endif +#define Perl_convert CPerlObj::convert +#define Perl_croak CPerlObj::croak +#if defined(PERL_IMPLICIT_CONTEXT) +#define Perl_croak_nocontext CPerlObj::croak_nocontext +#define Perl_die_nocontext CPerlObj::die_nocontext +#define Perl_form_nocontext CPerlObj::form_nocontext +#define Perl_warn_nocontext CPerlObj::warn_nocontext +#define Perl_newSVpvf_nocontext CPerlObj::newSVpvf_nocontext +#define Perl_sv_catpvf_nocontext CPerlObj::sv_catpvf_nocontext +#define Perl_sv_setpvf_nocontext CPerlObj::sv_setpvf_nocontext +#define Perl_sv_catpvf_mg_nocontext CPerlObj::sv_catpvf_mg_nocontext +#define Perl_sv_setpvf_mg_nocontext CPerlObj::sv_setpvf_mg_nocontext +#endif +#define Perl_cv_ckproto CPerlObj::cv_ckproto +#define Perl_cv_clone CPerlObj::cv_clone +#define Perl_cv_const_sv CPerlObj::cv_const_sv +#define Perl_op_const_sv CPerlObj::op_const_sv +#define Perl_cv_undef CPerlObj::cv_undef +#define Perl_cx_dump CPerlObj::cx_dump +#define Perl_filter_add CPerlObj::filter_add +#define Perl_filter_del CPerlObj::filter_del +#define Perl_filter_read CPerlObj::filter_read +#define Perl_get_op_descs CPerlObj::get_op_descs +#define Perl_get_op_names CPerlObj::get_op_names +#define Perl_get_no_modify CPerlObj::get_no_modify +#define Perl_get_opargs CPerlObj::get_opargs +#define Perl_cxinc CPerlObj::cxinc +#define Perl_deb CPerlObj::deb +#define Perl_deb_growlevel CPerlObj::deb_growlevel +#define Perl_debprofdump CPerlObj::debprofdump +#define Perl_debop CPerlObj::debop +#define Perl_debstack CPerlObj::debstack +#define Perl_debstackptrs CPerlObj::debstackptrs +#define Perl_delimcpy CPerlObj::delimcpy +#define Perl_deprecate CPerlObj::deprecate +#define Perl_die CPerlObj::die +#define Perl_die_where CPerlObj::die_where +#define Perl_dounwind CPerlObj::dounwind +#define Perl_do_aexec CPerlObj::do_aexec +#define Perl_do_binmode CPerlObj::do_binmode +#define Perl_do_chop CPerlObj::do_chop +#define Perl_do_close CPerlObj::do_close +#define Perl_do_eof CPerlObj::do_eof +#define Perl_do_exec CPerlObj::do_exec +#if !defined(WIN32) +#define Perl_do_exec3 CPerlObj::do_exec3 +#endif +#define Perl_do_execfree CPerlObj::do_execfree +#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) +#define Perl_do_ipcctl CPerlObj::do_ipcctl +#define Perl_do_ipcget CPerlObj::do_ipcget +#define Perl_do_msgrcv CPerlObj::do_msgrcv +#define Perl_do_msgsnd CPerlObj::do_msgsnd +#define Perl_do_semop CPerlObj::do_semop +#define Perl_do_shmio CPerlObj::do_shmio +#endif +#define Perl_do_join CPerlObj::do_join +#define Perl_do_kv CPerlObj::do_kv +#define Perl_do_open CPerlObj::do_open +#define Perl_do_pipe CPerlObj::do_pipe +#define Perl_do_print CPerlObj::do_print +#define Perl_do_readline CPerlObj::do_readline +#define Perl_do_chomp CPerlObj::do_chomp +#define Perl_do_seek CPerlObj::do_seek +#define Perl_do_sprintf CPerlObj::do_sprintf +#define Perl_do_sysseek CPerlObj::do_sysseek +#define Perl_do_tell CPerlObj::do_tell +#define Perl_do_trans CPerlObj::do_trans +#define Perl_do_vecset CPerlObj::do_vecset +#define Perl_do_vop CPerlObj::do_vop +#define Perl_dofile CPerlObj::dofile +#define Perl_dowantarray CPerlObj::dowantarray +#define Perl_dump_all CPerlObj::dump_all +#define Perl_dump_eval CPerlObj::dump_eval +#if defined(DUMP_FDS) +#define Perl_dump_fds CPerlObj::dump_fds +#endif +#define Perl_dump_form CPerlObj::dump_form +#define Perl_gv_dump CPerlObj::gv_dump +#define Perl_op_dump CPerlObj::op_dump +#define Perl_pmop_dump CPerlObj::pmop_dump +#define Perl_dump_packsubs CPerlObj::dump_packsubs +#define Perl_dump_sub CPerlObj::dump_sub +#define Perl_fbm_compile CPerlObj::fbm_compile +#define Perl_fbm_instr CPerlObj::fbm_instr +#define Perl_find_script CPerlObj::find_script +#if defined(USE_THREADS) +#define Perl_find_threadsv CPerlObj::find_threadsv +#endif +#define Perl_force_list CPerlObj::force_list +#define Perl_fold_constants CPerlObj::fold_constants +#define Perl_form CPerlObj::form +#define Perl_free_tmps CPerlObj::free_tmps +#define Perl_gen_constant_list CPerlObj::gen_constant_list +#if !defined(HAS_GETENV_LEN) +#define Perl_getenv_len CPerlObj::getenv_len +#endif +#define Perl_gp_free CPerlObj::gp_free +#define Perl_gp_ref CPerlObj::gp_ref +#define Perl_gv_AVadd CPerlObj::gv_AVadd +#define Perl_gv_HVadd CPerlObj::gv_HVadd +#define Perl_gv_IOadd CPerlObj::gv_IOadd +#define Perl_gv_autoload4 CPerlObj::gv_autoload4 +#define Perl_gv_check CPerlObj::gv_check +#define Perl_gv_efullname CPerlObj::gv_efullname +#define Perl_gv_efullname3 CPerlObj::gv_efullname3 +#define Perl_gv_fetchfile CPerlObj::gv_fetchfile +#define Perl_gv_fetchmeth CPerlObj::gv_fetchmeth +#define Perl_gv_fetchmethod CPerlObj::gv_fetchmethod +#define Perl_gv_fetchmethod_autoload CPerlObj::gv_fetchmethod_autoload +#define Perl_gv_fetchpv CPerlObj::gv_fetchpv +#define Perl_gv_fullname CPerlObj::gv_fullname +#define Perl_gv_fullname3 CPerlObj::gv_fullname3 +#define Perl_gv_init CPerlObj::gv_init +#define Perl_gv_stashpv CPerlObj::gv_stashpv +#define Perl_gv_stashpvn CPerlObj::gv_stashpvn +#define Perl_gv_stashsv CPerlObj::gv_stashsv +#define Perl_hv_clear CPerlObj::hv_clear +#define Perl_hv_delayfree_ent CPerlObj::hv_delayfree_ent +#define Perl_hv_delete CPerlObj::hv_delete +#define Perl_hv_delete_ent CPerlObj::hv_delete_ent +#define Perl_hv_exists CPerlObj::hv_exists +#define Perl_hv_exists_ent CPerlObj::hv_exists_ent +#define Perl_hv_fetch CPerlObj::hv_fetch +#define Perl_hv_fetch_ent CPerlObj::hv_fetch_ent +#define Perl_hv_free_ent CPerlObj::hv_free_ent +#define Perl_hv_iterinit CPerlObj::hv_iterinit +#define Perl_hv_iterkey CPerlObj::hv_iterkey +#define Perl_hv_iterkeysv CPerlObj::hv_iterkeysv +#define Perl_hv_iternext CPerlObj::hv_iternext +#define Perl_hv_iternextsv CPerlObj::hv_iternextsv +#define Perl_hv_iterval CPerlObj::hv_iterval +#define Perl_hv_ksplit CPerlObj::hv_ksplit +#define Perl_hv_magic CPerlObj::hv_magic +#define Perl_hv_store CPerlObj::hv_store +#define Perl_hv_store_ent CPerlObj::hv_store_ent +#define Perl_hv_undef CPerlObj::hv_undef +#define Perl_ibcmp CPerlObj::ibcmp +#define Perl_ibcmp_locale CPerlObj::ibcmp_locale +#define Perl_ingroup CPerlObj::ingroup +#define Perl_init_stacks CPerlObj::init_stacks +#define Perl_intro_my CPerlObj::intro_my +#define Perl_instr CPerlObj::instr +#define Perl_io_close CPerlObj::io_close +#define Perl_invert CPerlObj::invert +#define Perl_is_uni_alnum CPerlObj::is_uni_alnum +#define Perl_is_uni_idfirst CPerlObj::is_uni_idfirst +#define Perl_is_uni_alpha CPerlObj::is_uni_alpha +#define Perl_is_uni_space CPerlObj::is_uni_space +#define Perl_is_uni_digit CPerlObj::is_uni_digit +#define Perl_is_uni_upper CPerlObj::is_uni_upper +#define Perl_is_uni_lower CPerlObj::is_uni_lower +#define Perl_is_uni_print CPerlObj::is_uni_print +#define Perl_to_uni_upper CPerlObj::to_uni_upper +#define Perl_to_uni_title CPerlObj::to_uni_title +#define Perl_to_uni_lower CPerlObj::to_uni_lower +#define Perl_is_uni_alnum_lc CPerlObj::is_uni_alnum_lc +#define Perl_is_uni_idfirst_lc CPerlObj::is_uni_idfirst_lc +#define Perl_is_uni_alpha_lc CPerlObj::is_uni_alpha_lc +#define Perl_is_uni_space_lc CPerlObj::is_uni_space_lc +#define Perl_is_uni_digit_lc CPerlObj::is_uni_digit_lc +#define Perl_is_uni_upper_lc CPerlObj::is_uni_upper_lc +#define Perl_is_uni_lower_lc CPerlObj::is_uni_lower_lc +#define Perl_is_uni_print_lc CPerlObj::is_uni_print_lc +#define Perl_to_uni_upper_lc CPerlObj::to_uni_upper_lc +#define Perl_to_uni_title_lc CPerlObj::to_uni_title_lc +#define Perl_to_uni_lower_lc CPerlObj::to_uni_lower_lc +#define Perl_is_utf8_alnum CPerlObj::is_utf8_alnum +#define Perl_is_utf8_idfirst CPerlObj::is_utf8_idfirst +#define Perl_is_utf8_alpha CPerlObj::is_utf8_alpha +#define Perl_is_utf8_space CPerlObj::is_utf8_space +#define Perl_is_utf8_digit CPerlObj::is_utf8_digit +#define Perl_is_utf8_upper CPerlObj::is_utf8_upper +#define Perl_is_utf8_lower CPerlObj::is_utf8_lower +#define Perl_is_utf8_print CPerlObj::is_utf8_print +#define Perl_is_utf8_mark CPerlObj::is_utf8_mark +#define Perl_jmaybe CPerlObj::jmaybe +#define Perl_keyword CPerlObj::keyword +#define Perl_leave_scope CPerlObj::leave_scope +#define Perl_lex_end CPerlObj::lex_end +#define Perl_lex_start CPerlObj::lex_start +#define Perl_linklist CPerlObj::linklist +#define Perl_list CPerlObj::list +#define Perl_listkids CPerlObj::listkids +#define Perl_localize CPerlObj::localize +#define Perl_looks_like_number CPerlObj::looks_like_number +#define Perl_magic_clearenv CPerlObj::magic_clearenv +#define Perl_magic_clear_all_env CPerlObj::magic_clear_all_env +#define Perl_magic_clearpack CPerlObj::magic_clearpack +#define Perl_magic_clearsig CPerlObj::magic_clearsig +#define Perl_magic_existspack CPerlObj::magic_existspack +#define Perl_magic_freeregexp CPerlObj::magic_freeregexp +#define Perl_magic_get CPerlObj::magic_get +#define Perl_magic_getarylen CPerlObj::magic_getarylen +#define Perl_magic_getdefelem CPerlObj::magic_getdefelem +#define Perl_magic_getglob CPerlObj::magic_getglob +#define Perl_magic_getnkeys CPerlObj::magic_getnkeys +#define Perl_magic_getpack CPerlObj::magic_getpack +#define Perl_magic_getpos CPerlObj::magic_getpos +#define Perl_magic_getsig CPerlObj::magic_getsig +#define Perl_magic_getsubstr CPerlObj::magic_getsubstr +#define Perl_magic_gettaint CPerlObj::magic_gettaint +#define Perl_magic_getuvar CPerlObj::magic_getuvar +#define Perl_magic_getvec CPerlObj::magic_getvec +#define Perl_magic_len CPerlObj::magic_len +#if defined(USE_THREADS) +#define Perl_magic_mutexfree CPerlObj::magic_mutexfree +#endif +#define Perl_magic_nextpack CPerlObj::magic_nextpack +#define Perl_magic_regdata_cnt CPerlObj::magic_regdata_cnt +#define Perl_magic_regdatum_get CPerlObj::magic_regdatum_get +#define Perl_magic_set CPerlObj::magic_set +#define Perl_magic_setamagic CPerlObj::magic_setamagic +#define Perl_magic_setarylen CPerlObj::magic_setarylen +#define Perl_magic_setbm CPerlObj::magic_setbm +#define Perl_magic_setdbline CPerlObj::magic_setdbline +#if defined(USE_LOCALE_COLLATE) +#define Perl_magic_setcollxfrm CPerlObj::magic_setcollxfrm +#endif +#define Perl_magic_setdefelem CPerlObj::magic_setdefelem +#define Perl_magic_setenv CPerlObj::magic_setenv +#define Perl_magic_setfm CPerlObj::magic_setfm +#define Perl_magic_setisa CPerlObj::magic_setisa +#define Perl_magic_setglob CPerlObj::magic_setglob +#define Perl_magic_setmglob CPerlObj::magic_setmglob +#define Perl_magic_setnkeys CPerlObj::magic_setnkeys +#define Perl_magic_setpack CPerlObj::magic_setpack +#define Perl_magic_setpos CPerlObj::magic_setpos +#define Perl_magic_setsig CPerlObj::magic_setsig +#define Perl_magic_setsubstr CPerlObj::magic_setsubstr +#define Perl_magic_settaint CPerlObj::magic_settaint +#define Perl_magic_setuvar CPerlObj::magic_setuvar +#define Perl_magic_setvec CPerlObj::magic_setvec +#define Perl_magic_set_all_env CPerlObj::magic_set_all_env +#define Perl_magic_sizepack CPerlObj::magic_sizepack +#define Perl_magic_wipepack CPerlObj::magic_wipepack +#define Perl_magicname CPerlObj::magicname +#if defined(MYMALLOC) +#define Perl_malloced_size CPerlObj::malloced_size +#endif +#define Perl_markstack_grow CPerlObj::markstack_grow +#if defined(USE_LOCALE_COLLATE) +#define Perl_mem_collxfrm CPerlObj::mem_collxfrm +#endif +#define Perl_mess CPerlObj::mess +#define Perl_mg_clear CPerlObj::mg_clear +#define Perl_mg_copy CPerlObj::mg_copy +#define Perl_mg_find CPerlObj::mg_find +#define Perl_mg_free CPerlObj::mg_free +#define Perl_mg_get CPerlObj::mg_get +#define Perl_mg_length CPerlObj::mg_length +#define Perl_mg_magical CPerlObj::mg_magical +#define Perl_mg_set CPerlObj::mg_set +#define Perl_mg_size CPerlObj::mg_size +#define Perl_mod CPerlObj::mod +#define Perl_moreswitches CPerlObj::moreswitches +#define Perl_my CPerlObj::my +#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY) +#define Perl_my_bcopy CPerlObj::my_bcopy +#endif +#if !defined(HAS_BZERO) && !defined(HAS_MEMSET) +#define Perl_my_bzero CPerlObj::my_bzero +#endif +#define Perl_my_exit CPerlObj::my_exit +#define Perl_my_failure_exit CPerlObj::my_failure_exit +#define Perl_my_fflush_all CPerlObj::my_fflush_all +#define Perl_my_lstat CPerlObj::my_lstat +#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP) +#define Perl_my_memcmp CPerlObj::my_memcmp +#endif +#if !defined(HAS_MEMSET) +#define Perl_my_memset CPerlObj::my_memset +#endif +#if !defined(PERL_OBJECT) +#define Perl_my_pclose CPerlObj::my_pclose +#define Perl_my_popen CPerlObj::my_popen +#endif +#define Perl_my_setenv CPerlObj::my_setenv +#define Perl_my_stat CPerlObj::my_stat +#if defined(MYSWAP) +#define Perl_my_swap CPerlObj::my_swap +#define Perl_my_htonl CPerlObj::my_htonl +#define Perl_my_ntohl CPerlObj::my_ntohl +#endif +#define Perl_my_unexec CPerlObj::my_unexec +#define Perl_newANONLIST CPerlObj::newANONLIST +#define Perl_newANONHASH CPerlObj::newANONHASH +#define Perl_newANONSUB CPerlObj::newANONSUB +#define Perl_newASSIGNOP CPerlObj::newASSIGNOP +#define Perl_newCONDOP CPerlObj::newCONDOP +#define Perl_newCONSTSUB CPerlObj::newCONSTSUB +#define Perl_newFORM CPerlObj::newFORM +#define Perl_newFOROP CPerlObj::newFOROP +#define Perl_newLOGOP CPerlObj::newLOGOP +#define Perl_newLOOPEX CPerlObj::newLOOPEX +#define Perl_newLOOPOP CPerlObj::newLOOPOP +#define Perl_newNULLLIST CPerlObj::newNULLLIST +#define Perl_newOP CPerlObj::newOP +#define Perl_newPROG CPerlObj::newPROG +#define Perl_newRANGE CPerlObj::newRANGE +#define Perl_newSLICEOP CPerlObj::newSLICEOP +#define Perl_newSTATEOP CPerlObj::newSTATEOP +#define Perl_newSUB CPerlObj::newSUB +#define Perl_newXS CPerlObj::newXS +#define Perl_newAV CPerlObj::newAV +#define Perl_newAVREF CPerlObj::newAVREF +#define Perl_newBINOP CPerlObj::newBINOP +#define Perl_newCVREF CPerlObj::newCVREF +#define Perl_newGVOP CPerlObj::newGVOP +#define Perl_newGVgen CPerlObj::newGVgen +#define Perl_newGVREF CPerlObj::newGVREF +#define Perl_newHVREF CPerlObj::newHVREF +#define Perl_newHV CPerlObj::newHV +#define Perl_newHVhv CPerlObj::newHVhv +#define Perl_newIO CPerlObj::newIO +#define Perl_newLISTOP CPerlObj::newLISTOP +#define Perl_newPMOP CPerlObj::newPMOP +#define Perl_newPVOP CPerlObj::newPVOP +#define Perl_newRV CPerlObj::newRV +#define Perl_newRV_noinc CPerlObj::newRV_noinc +#define Perl_newSV CPerlObj::newSV +#define Perl_newSVREF CPerlObj::newSVREF +#define Perl_newSVOP CPerlObj::newSVOP +#define Perl_newSViv CPerlObj::newSViv +#define Perl_newSVnv CPerlObj::newSVnv +#define Perl_newSVpv CPerlObj::newSVpv +#define Perl_newSVpvn CPerlObj::newSVpvn +#define Perl_newSVpvf CPerlObj::newSVpvf +#define Perl_newSVrv CPerlObj::newSVrv +#define Perl_newSVsv CPerlObj::newSVsv +#define Perl_newUNOP CPerlObj::newUNOP +#define Perl_newWHILEOP CPerlObj::newWHILEOP +#if defined(USE_THREADS) +#define Perl_new_struct_thread CPerlObj::new_struct_thread +#endif +#define Perl_new_stackinfo CPerlObj::new_stackinfo +#define Perl_nextargv CPerlObj::nextargv +#define Perl_ninstr CPerlObj::ninstr +#define Perl_oopsCV CPerlObj::oopsCV +#define Perl_op_free CPerlObj::op_free +#define Perl_package CPerlObj::package +#define Perl_pad_alloc CPerlObj::pad_alloc +#define Perl_pad_allocmy CPerlObj::pad_allocmy +#define Perl_pad_findmy CPerlObj::pad_findmy +#define Perl_oopsAV CPerlObj::oopsAV +#define Perl_oopsHV CPerlObj::oopsHV +#define Perl_pad_leavemy CPerlObj::pad_leavemy +#define Perl_pad_sv CPerlObj::pad_sv +#define Perl_pad_free CPerlObj::pad_free +#define Perl_pad_reset CPerlObj::pad_reset +#define Perl_pad_swipe CPerlObj::pad_swipe +#define Perl_peep CPerlObj::peep +#define Perl_call_atexit CPerlObj::call_atexit +#define Perl_call_argv CPerlObj::call_argv +#define Perl_call_method CPerlObj::call_method +#define Perl_call_pv CPerlObj::call_pv +#define Perl_call_sv CPerlObj::call_sv +#define Perl_eval_pv CPerlObj::eval_pv +#define Perl_eval_sv CPerlObj::eval_sv +#define Perl_get_sv CPerlObj::get_sv +#define Perl_get_av CPerlObj::get_av +#define Perl_get_hv CPerlObj::get_hv +#define Perl_get_cv CPerlObj::get_cv +#define Perl_init_i18nl10n CPerlObj::init_i18nl10n +#define Perl_init_i18nl14n CPerlObj::init_i18nl14n +#define Perl_new_collate CPerlObj::new_collate +#define Perl_new_ctype CPerlObj::new_ctype +#define Perl_new_numeric CPerlObj::new_numeric +#define Perl_set_numeric_local CPerlObj::set_numeric_local +#define Perl_set_numeric_standard CPerlObj::set_numeric_standard +#define Perl_require_pv CPerlObj::require_pv +#define Perl_pidgone CPerlObj::pidgone +#define Perl_pmflag CPerlObj::pmflag +#define Perl_pmruntime CPerlObj::pmruntime +#define Perl_pmtrans CPerlObj::pmtrans +#define Perl_pop_return CPerlObj::pop_return +#define Perl_pop_scope CPerlObj::pop_scope +#define Perl_prepend_elem CPerlObj::prepend_elem +#define Perl_push_return CPerlObj::push_return +#define Perl_push_scope CPerlObj::push_scope +#define Perl_ref CPerlObj::ref +#define Perl_refkids CPerlObj::refkids +#define Perl_regdump CPerlObj::regdump +#define Perl_pregexec CPerlObj::pregexec +#define Perl_pregfree CPerlObj::pregfree +#define Perl_pregcomp CPerlObj::pregcomp +#define Perl_regexec_flags CPerlObj::regexec_flags +#define Perl_regnext CPerlObj::regnext +#define Perl_regprop CPerlObj::regprop +#define Perl_repeatcpy CPerlObj::repeatcpy +#define Perl_rninstr CPerlObj::rninstr +#define Perl_rsignal CPerlObj::rsignal +#define Perl_rsignal_restore CPerlObj::rsignal_restore +#define Perl_rsignal_save CPerlObj::rsignal_save +#define Perl_rsignal_state CPerlObj::rsignal_state +#define Perl_rxres_free CPerlObj::rxres_free +#define Perl_rxres_restore CPerlObj::rxres_restore +#define Perl_rxres_save CPerlObj::rxres_save +#if !defined(HAS_RENAME) +#define Perl_same_dirent CPerlObj::same_dirent +#endif +#define Perl_savepv CPerlObj::savepv +#define Perl_savepvn CPerlObj::savepvn +#define Perl_savestack_grow CPerlObj::savestack_grow +#define Perl_save_aelem CPerlObj::save_aelem +#define Perl_save_alloc CPerlObj::save_alloc +#define Perl_save_aptr CPerlObj::save_aptr +#define Perl_save_ary CPerlObj::save_ary +#define Perl_save_clearsv CPerlObj::save_clearsv +#define Perl_save_delete CPerlObj::save_delete +#define Perl_save_destructor CPerlObj::save_destructor +#define Perl_save_freesv CPerlObj::save_freesv +#define Perl_save_freeop CPerlObj::save_freeop +#define Perl_save_freepv CPerlObj::save_freepv +#define Perl_save_generic_svref CPerlObj::save_generic_svref +#define Perl_save_gp CPerlObj::save_gp +#define Perl_save_hash CPerlObj::save_hash +#define Perl_save_helem CPerlObj::save_helem +#define Perl_save_hints CPerlObj::save_hints +#define Perl_save_hptr CPerlObj::save_hptr +#define Perl_save_I16 CPerlObj::save_I16 +#define Perl_save_I32 CPerlObj::save_I32 +#define Perl_save_int CPerlObj::save_int +#define Perl_save_item CPerlObj::save_item +#define Perl_save_iv CPerlObj::save_iv +#define Perl_save_list CPerlObj::save_list +#define Perl_save_long CPerlObj::save_long +#define Perl_save_nogv CPerlObj::save_nogv +#define Perl_save_op CPerlObj::save_op +#define Perl_save_scalar CPerlObj::save_scalar +#define Perl_save_pptr CPerlObj::save_pptr +#define Perl_save_re_context CPerlObj::save_re_context +#define Perl_save_sptr CPerlObj::save_sptr +#define Perl_save_svref CPerlObj::save_svref +#define Perl_save_threadsv CPerlObj::save_threadsv +#define Perl_sawparens CPerlObj::sawparens +#define Perl_scalar CPerlObj::scalar +#define Perl_scalarkids CPerlObj::scalarkids +#define Perl_scalarseq CPerlObj::scalarseq +#define Perl_scalarvoid CPerlObj::scalarvoid +#define Perl_scan_bin CPerlObj::scan_bin +#define Perl_scan_hex CPerlObj::scan_hex +#define Perl_scan_num CPerlObj::scan_num +#define Perl_scan_oct CPerlObj::scan_oct +#define Perl_scope CPerlObj::scope +#define Perl_screaminstr CPerlObj::screaminstr +#if !defined(VMS) +#define Perl_setenv_getix CPerlObj::setenv_getix +#endif +#define Perl_setdefout CPerlObj::setdefout +#define Perl_sharepvn CPerlObj::sharepvn +#define Perl_share_hek CPerlObj::share_hek +#define Perl_sighandler CPerlObj::sighandler +#define Perl_stack_grow CPerlObj::stack_grow +#define Perl_start_subparse CPerlObj::start_subparse +#define Perl_sub_crush_depth CPerlObj::sub_crush_depth +#define Perl_sv_2bool CPerlObj::sv_2bool +#define Perl_sv_2cv CPerlObj::sv_2cv +#define Perl_sv_2io CPerlObj::sv_2io +#define Perl_sv_2iv CPerlObj::sv_2iv +#define Perl_sv_2mortal CPerlObj::sv_2mortal +#define Perl_sv_2nv CPerlObj::sv_2nv +#define Perl_sv_2pv CPerlObj::sv_2pv +#define Perl_sv_2uv CPerlObj::sv_2uv +#define Perl_sv_iv CPerlObj::sv_iv +#define Perl_sv_uv CPerlObj::sv_uv +#define Perl_sv_nv CPerlObj::sv_nv +#define Perl_sv_pvn CPerlObj::sv_pvn +#define Perl_sv_true CPerlObj::sv_true +#define Perl_sv_add_arena CPerlObj::sv_add_arena +#define Perl_sv_backoff CPerlObj::sv_backoff +#define Perl_sv_bless CPerlObj::sv_bless +#define Perl_sv_catpvf CPerlObj::sv_catpvf +#define Perl_sv_catpv CPerlObj::sv_catpv +#define Perl_sv_catpvn CPerlObj::sv_catpvn +#define Perl_sv_catsv CPerlObj::sv_catsv +#define Perl_sv_chop CPerlObj::sv_chop +#define Perl_sv_clean_all CPerlObj::sv_clean_all +#define Perl_sv_clean_objs CPerlObj::sv_clean_objs +#define Perl_sv_clear CPerlObj::sv_clear +#define Perl_sv_cmp CPerlObj::sv_cmp +#define Perl_sv_cmp_locale CPerlObj::sv_cmp_locale +#if defined(USE_LOCALE_COLLATE) +#define Perl_sv_collxfrm CPerlObj::sv_collxfrm +#endif +#define Perl_sv_compile_2op CPerlObj::sv_compile_2op +#define Perl_sv_dec CPerlObj::sv_dec +#define Perl_sv_dump CPerlObj::sv_dump +#define Perl_sv_derived_from CPerlObj::sv_derived_from +#define Perl_sv_eq CPerlObj::sv_eq +#define Perl_sv_free CPerlObj::sv_free +#define Perl_sv_free_arenas CPerlObj::sv_free_arenas +#define Perl_sv_gets CPerlObj::sv_gets +#define Perl_sv_grow CPerlObj::sv_grow +#define Perl_sv_inc CPerlObj::sv_inc +#define Perl_sv_insert CPerlObj::sv_insert +#define Perl_sv_isa CPerlObj::sv_isa +#define Perl_sv_isobject CPerlObj::sv_isobject +#define Perl_sv_len CPerlObj::sv_len +#define Perl_sv_len_utf8 CPerlObj::sv_len_utf8 +#define Perl_sv_magic CPerlObj::sv_magic +#define Perl_sv_mortalcopy CPerlObj::sv_mortalcopy +#define Perl_sv_newmortal CPerlObj::sv_newmortal +#define Perl_sv_newref CPerlObj::sv_newref +#define Perl_sv_peek CPerlObj::sv_peek +#define Perl_sv_pos_u2b CPerlObj::sv_pos_u2b +#define Perl_sv_pos_b2u CPerlObj::sv_pos_b2u +#define Perl_sv_pvn_force CPerlObj::sv_pvn_force +#define Perl_sv_reftype CPerlObj::sv_reftype +#define Perl_sv_replace CPerlObj::sv_replace +#define Perl_sv_report_used CPerlObj::sv_report_used +#define Perl_sv_reset CPerlObj::sv_reset +#define Perl_sv_setpvf CPerlObj::sv_setpvf +#define Perl_sv_setiv CPerlObj::sv_setiv +#define Perl_sv_setpviv CPerlObj::sv_setpviv +#define Perl_sv_setuv CPerlObj::sv_setuv +#define Perl_sv_setnv CPerlObj::sv_setnv +#define Perl_sv_setref_iv CPerlObj::sv_setref_iv +#define Perl_sv_setref_nv CPerlObj::sv_setref_nv +#define Perl_sv_setref_pv CPerlObj::sv_setref_pv +#define Perl_sv_setref_pvn CPerlObj::sv_setref_pvn +#define Perl_sv_setpv CPerlObj::sv_setpv +#define Perl_sv_setpvn CPerlObj::sv_setpvn +#define Perl_sv_setsv CPerlObj::sv_setsv +#define Perl_sv_taint CPerlObj::sv_taint +#define Perl_sv_tainted CPerlObj::sv_tainted +#define Perl_sv_unmagic CPerlObj::sv_unmagic +#define Perl_sv_unref CPerlObj::sv_unref +#define Perl_sv_untaint CPerlObj::sv_untaint +#define Perl_sv_upgrade CPerlObj::sv_upgrade +#define Perl_sv_usepvn CPerlObj::sv_usepvn +#define Perl_sv_vcatpvfn CPerlObj::sv_vcatpvfn +#define Perl_sv_vsetpvfn CPerlObj::sv_vsetpvfn +#define Perl_swash_init CPerlObj::swash_init +#define Perl_swash_fetch CPerlObj::swash_fetch +#define Perl_taint_env CPerlObj::taint_env +#define Perl_taint_proper CPerlObj::taint_proper +#define Perl_to_utf8_lower CPerlObj::to_utf8_lower +#define Perl_to_utf8_upper CPerlObj::to_utf8_upper +#define Perl_to_utf8_title CPerlObj::to_utf8_title +#if defined(UNLINK_ALL_VERSIONS) +#define Perl_unlnk CPerlObj::unlnk +#endif +#if defined(USE_THREADS) +#define Perl_unlock_condpair CPerlObj::unlock_condpair +#endif +#define Perl_unsharepvn CPerlObj::unsharepvn +#define Perl_unshare_hek CPerlObj::unshare_hek +#define Perl_utilize CPerlObj::utilize +#define Perl_utf16_to_utf8 CPerlObj::utf16_to_utf8 +#define Perl_utf16_to_utf8_reversed CPerlObj::utf16_to_utf8_reversed +#define Perl_utf8_distance CPerlObj::utf8_distance +#define Perl_utf8_hop CPerlObj::utf8_hop +#define Perl_utf8_to_uv CPerlObj::utf8_to_uv +#define Perl_uv_to_utf8 CPerlObj::uv_to_utf8 +#define Perl_vivify_defelem CPerlObj::vivify_defelem +#define Perl_vivify_ref CPerlObj::vivify_ref +#define Perl_wait4pid CPerlObj::wait4pid +#define Perl_warn CPerlObj::warn +#define Perl_warner CPerlObj::warner +#define Perl_watch CPerlObj::watch +#define Perl_whichsig CPerlObj::whichsig +#define Perl_yyerror CPerlObj::yyerror +#if defined(USE_PURE_BISON) +#define Perl_yylex CPerlObj::yylex +#else +#define Perl_yylex CPerlObj::yylex +#endif +#define Perl_yyparse CPerlObj::yyparse +#define Perl_yywarn CPerlObj::yywarn +#if defined(MYMALLOC) +#define Perl_dump_mstats CPerlObj::dump_mstats +#endif +#define Perl_safesysmalloc CPerlObj::safesysmalloc +#define Perl_safesyscalloc CPerlObj::safesyscalloc +#define Perl_safesysrealloc CPerlObj::safesysrealloc +#define Perl_safesysfree CPerlObj::safesysfree +#if defined(LEAKTEST) +#define Perl_safexmalloc CPerlObj::safexmalloc +#define Perl_safexcalloc CPerlObj::safexcalloc +#define Perl_safexrealloc CPerlObj::safexrealloc +#define Perl_safexfree CPerlObj::safexfree +#endif +#if defined(PERL_GLOBAL_STRUCT) +#define Perl_GetVars CPerlObj::GetVars +#endif +#define Perl_yydestruct CPerlObj::yydestruct +#define Perl_runops_standard CPerlObj::runops_standard +#define Perl_runops_debug CPerlObj::runops_debug +#if defined(WIN32) +#define Perl_ErrorNo CPerlObj::ErrorNo +#endif +#define Perl_sv_catpvf_mg CPerlObj::sv_catpvf_mg +#define Perl_sv_catpv_mg CPerlObj::sv_catpv_mg +#define Perl_sv_catpvn_mg CPerlObj::sv_catpvn_mg +#define Perl_sv_catsv_mg CPerlObj::sv_catsv_mg +#define Perl_sv_setpvf_mg CPerlObj::sv_setpvf_mg +#define Perl_sv_setiv_mg CPerlObj::sv_setiv_mg +#define Perl_sv_setpviv_mg CPerlObj::sv_setpviv_mg +#define Perl_sv_setuv_mg CPerlObj::sv_setuv_mg +#define Perl_sv_setnv_mg CPerlObj::sv_setnv_mg +#define Perl_sv_setpv_mg CPerlObj::sv_setpv_mg +#define Perl_sv_setpvn_mg CPerlObj::sv_setpvn_mg +#define Perl_sv_setsv_mg CPerlObj::sv_setsv_mg +#define Perl_sv_usepvn_mg CPerlObj::sv_usepvn_mg +#define Perl_get_vtbl CPerlObj::get_vtbl +#define Perl_pv_display CPerlObj::pv_display +#define Perl_dump_indent CPerlObj::dump_indent +#define Perl_do_gv_dump CPerlObj::do_gv_dump +#define Perl_do_gvgv_dump CPerlObj::do_gvgv_dump +#define Perl_do_hv_dump CPerlObj::do_hv_dump +#define Perl_do_magic_dump CPerlObj::do_magic_dump +#define Perl_do_op_dump CPerlObj::do_op_dump +#define Perl_do_pmop_dump CPerlObj::do_pmop_dump +#define Perl_do_sv_dump CPerlObj::do_sv_dump +#define Perl_magic_dump CPerlObj::magic_dump +#define Perl_default_protect CPerlObj::default_protect +#define Perl_reginitcolors CPerlObj::reginitcolors +#define Perl_sv_2pv_nolen CPerlObj::sv_2pv_nolen +#define Perl_sv_pv CPerlObj::sv_pv +#define Perl_sv_force_normal CPerlObj::sv_force_normal +#define Perl_tmps_grow CPerlObj::tmps_grow +#define Perl_sv_rvweaken CPerlObj::sv_rvweaken +#define Perl_magic_killbackrefs CPerlObj::magic_killbackrefs +#if defined(PERL_IN_AV_C) +#define S_avhv_index_sv CPerlObj::avhv_index_sv +#endif +#if defined(PERL_IN_DOOP_C) +#define S_do_trans_CC_simple CPerlObj::do_trans_CC_simple +#define S_do_trans_CC_count CPerlObj::do_trans_CC_count +#define S_do_trans_CC_complex CPerlObj::do_trans_CC_complex +#define S_do_trans_UU_simple CPerlObj::do_trans_UU_simple +#define S_do_trans_UU_count CPerlObj::do_trans_UU_count +#define S_do_trans_UU_complex CPerlObj::do_trans_UU_complex +#define S_do_trans_UC_simple CPerlObj::do_trans_UC_simple +#define S_do_trans_CU_simple CPerlObj::do_trans_CU_simple +#define S_do_trans_UC_trivial CPerlObj::do_trans_UC_trivial +#define S_do_trans_CU_trivial CPerlObj::do_trans_CU_trivial +#endif +#if defined(PERL_IN_GLOBALS_C) +# if defined(WIN32) +#define S_do_aspawn CPerlObj::do_aspawn +# endif +#endif +#if defined(PERL_IN_GV_C) +#define S_gv_init_sv CPerlObj::gv_init_sv +#endif +#if defined(PERL_IN_HV_C) +#define S_hsplit CPerlObj::hsplit +#define S_hfreeentries CPerlObj::hfreeentries +#define S_more_he CPerlObj::more_he +#define S_new_he CPerlObj::new_he +#define S_del_he CPerlObj::del_he +#define S_save_hek CPerlObj::save_hek +#define S_hv_magic_check CPerlObj::hv_magic_check +#endif +#if defined(PERL_IN_MG_C) +#define S_save_magic CPerlObj::save_magic +#define S_magic_methpack CPerlObj::magic_methpack +#define S_magic_methcall CPerlObj::magic_methcall +#define S_unwind_handler_stack CPerlObj::unwind_handler_stack +#define S_restore_magic CPerlObj::restore_magic +#endif +#if defined(PERL_IN_OP_C) +#define S_list_assignment CPerlObj::list_assignment +#define S_bad_type CPerlObj::bad_type +#define S_modkids CPerlObj::modkids +#define S_no_bareword_allowed CPerlObj::no_bareword_allowed +#define S_no_fh_allowed CPerlObj::no_fh_allowed +#define S_scalarboolean CPerlObj::scalarboolean +#define S_too_few_arguments CPerlObj::too_few_arguments +#define S_too_many_arguments CPerlObj::too_many_arguments +#define S_null CPerlObj::null +#define S_pad_findlex CPerlObj::pad_findlex +#define S_newDEFSVOP CPerlObj::newDEFSVOP +#define S_new_logop CPerlObj::new_logop +#define S_simplify_sort CPerlObj::simplify_sort +#define S_is_handle_constructor CPerlObj::is_handle_constructor +#define S_gv_ename CPerlObj::gv_ename +#define S_cv_clone2 CPerlObj::cv_clone2 +#define S_scalar_mod_type CPerlObj::scalar_mod_type +# if defined(PL_OP_SLAB_ALLOC) +#define S_Slab_Alloc CPerlObj::Slab_Alloc +# endif +#endif +#if defined(PERL_IN_PERL_C) +#define S_find_beginning CPerlObj::find_beginning +#define S_forbid_setid CPerlObj::forbid_setid +#define S_incpush CPerlObj::incpush +#define S_init_interp CPerlObj::init_interp +#define S_init_ids CPerlObj::init_ids +#define S_init_debugger CPerlObj::init_debugger +#define S_init_lexer CPerlObj::init_lexer +#define S_init_main_stash CPerlObj::init_main_stash +#define S_init_perllib CPerlObj::init_perllib +#define S_init_postdump_symbols CPerlObj::init_postdump_symbols +#define S_init_predump_symbols CPerlObj::init_predump_symbols +#define S_my_exit_jump CPerlObj::my_exit_jump +#define S_nuke_stacks CPerlObj::nuke_stacks +#define S_open_script CPerlObj::open_script +#define S_usage CPerlObj::usage +#define S_validate_suid CPerlObj::validate_suid +#define S_read_e_script CPerlObj::read_e_script +# if defined(IAMSUID) +#define S_fd_on_nosuid_fs CPerlObj::fd_on_nosuid_fs +# endif +#define S_parse_body CPerlObj::parse_body +#define S_run_body CPerlObj::run_body +#define S_call_body CPerlObj::call_body +#define S_call_xbody CPerlObj::call_xbody +#define S_call_list_body CPerlObj::call_list_body +# if defined(USE_THREADS) +#define S_init_main_thread CPerlObj::init_main_thread +# endif +#endif +#if defined(PERL_IN_PP_C) +#define S_doencodes CPerlObj::doencodes +#define S_refto CPerlObj::refto +#define S_seed CPerlObj::seed +#define S_mul128 CPerlObj::mul128 +#define S_is_an_int CPerlObj::is_an_int +#define S_div128 CPerlObj::div128 +#endif +#if defined(PERL_IN_PP_CTL_C) +#define S_docatch CPerlObj::docatch +#define S_docatch_body CPerlObj::docatch_body +#define S_dofindlabel CPerlObj::dofindlabel +#define S_doparseform CPerlObj::doparseform +#define S_dopoptoeval CPerlObj::dopoptoeval +#define S_dopoptolabel CPerlObj::dopoptolabel +#define S_dopoptoloop CPerlObj::dopoptoloop +#define S_dopoptosub CPerlObj::dopoptosub +#define S_dopoptosub_at CPerlObj::dopoptosub_at +#define S_free_closures CPerlObj::free_closures +#define S_save_lines CPerlObj::save_lines +#define S_doeval CPerlObj::doeval +#define S_doopen_pmc CPerlObj::doopen_pmc +#define S_qsortsv CPerlObj::qsortsv +#define S_sortcv CPerlObj::sortcv +#define S_sv_ncmp CPerlObj::sv_ncmp +#define S_sv_i_ncmp CPerlObj::sv_i_ncmp +#define S_amagic_ncmp CPerlObj::amagic_ncmp +#define S_amagic_i_ncmp CPerlObj::amagic_i_ncmp +#define S_amagic_cmp CPerlObj::amagic_cmp +#define S_amagic_cmp_locale CPerlObj::amagic_cmp_locale +#endif +#if defined(PERL_IN_PP_HOT_C) +#define S_get_db_sub CPerlObj::get_db_sub +# if defined(USE_THREADS) +#define S_unset_cvowner CPerlObj::unset_cvowner +# endif +#endif +#if defined(PERL_IN_PP_SYS_C) +#define S_doform CPerlObj::doform +#define S_emulate_eaccess CPerlObj::emulate_eaccess +# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +#define S_dooneliner CPerlObj::dooneliner +# endif +#endif +#if defined(PERL_IN_REGCOMP_C) +#define S_reg CPerlObj::reg +#define S_reganode CPerlObj::reganode +#define S_regatom CPerlObj::regatom +#define S_regbranch CPerlObj::regbranch +#define S_regc CPerlObj::regc +#define S_reguni CPerlObj::reguni +#define S_regclass CPerlObj::regclass +#define S_regclassutf8 CPerlObj::regclassutf8 +#define S_regcurly CPerlObj::regcurly +#define S_reg_node CPerlObj::reg_node +#define S_regpiece CPerlObj::regpiece +#define S_reginsert CPerlObj::reginsert +#define S_regoptail CPerlObj::regoptail +#define S_regtail CPerlObj::regtail +#define S_regwhite CPerlObj::regwhite +#define S_nextchar CPerlObj::nextchar +#define S_dumpuntil CPerlObj::dumpuntil +#define S_scan_commit CPerlObj::scan_commit +#define S_study_chunk CPerlObj::study_chunk +#define S_add_data CPerlObj::add_data +#define S_re_croak2 CPerlObj::re_croak2 +#define S_regpposixcc CPerlObj::regpposixcc +#define S_clear_re CPerlObj::clear_re +#endif +#if defined(PERL_IN_REGEXEC_C) +#define S_regmatch CPerlObj::regmatch +#define S_regrepeat CPerlObj::regrepeat +#define S_regrepeat_hard CPerlObj::regrepeat_hard +#define S_regtry CPerlObj::regtry +#define S_reginclass CPerlObj::reginclass +#define S_reginclassutf8 CPerlObj::reginclassutf8 +#define S_regcppush CPerlObj::regcppush +#define S_regcppop CPerlObj::regcppop +#define S_regcp_set_to CPerlObj::regcp_set_to +#define S_cache_re CPerlObj::cache_re +#define S_restore_pos CPerlObj::restore_pos +#define S_reghop CPerlObj::reghop +#define S_reghopmaybe CPerlObj::reghopmaybe +#endif +#if defined(PERL_IN_RUN_C) +#define S_debprof CPerlObj::debprof +#endif +#if defined(PERL_IN_SCOPE_C) +#define S_save_scalar_at CPerlObj::save_scalar_at +#endif +#if defined(PERL_IN_SV_C) +#define S_asIV CPerlObj::asIV +#define S_asUV CPerlObj::asUV +#define S_more_sv CPerlObj::more_sv +#define S_more_xiv CPerlObj::more_xiv +#define S_more_xnv CPerlObj::more_xnv +#define S_more_xpv CPerlObj::more_xpv +#define S_more_xrv CPerlObj::more_xrv +#define S_new_xiv CPerlObj::new_xiv +#define S_new_xnv CPerlObj::new_xnv +#define S_new_xpv CPerlObj::new_xpv +#define S_new_xrv CPerlObj::new_xrv +#define S_del_xiv CPerlObj::del_xiv +#define S_del_xnv CPerlObj::del_xnv +#define S_del_xpv CPerlObj::del_xpv +#define S_del_xrv CPerlObj::del_xrv +#define S_sv_unglob CPerlObj::sv_unglob +#define S_do_report_used CPerlObj::do_report_used +#define S_do_clean_objs CPerlObj::do_clean_objs +#define S_do_clean_named_objs CPerlObj::do_clean_named_objs +#define S_do_clean_all CPerlObj::do_clean_all +#define S_not_a_number CPerlObj::not_a_number +#define S_visit CPerlObj::visit +# if defined(PURIFY) +#define S_reg_add CPerlObj::reg_add +#define S_reg_remove CPerlObj::reg_remove +# else +#define S_my_safemalloc CPerlObj::my_safemalloc +# endif +#define S_sv_add_backref CPerlObj::sv_add_backref +#define S_sv_del_backref CPerlObj::sv_del_backref +# if defined(DEBUGGING) +#define S_del_sv CPerlObj::del_sv +# endif +#endif +#if defined(PERL_IN_TOKE_C) +#define S_check_uni CPerlObj::check_uni +#define S_force_next CPerlObj::force_next +#define S_force_version CPerlObj::force_version +#define S_force_word CPerlObj::force_word +#define S_tokeq CPerlObj::tokeq +#define S_scan_const CPerlObj::scan_const +#define S_scan_formline CPerlObj::scan_formline +#define S_scan_heredoc CPerlObj::scan_heredoc +#define S_scan_ident CPerlObj::scan_ident +#define S_scan_inputsymbol CPerlObj::scan_inputsymbol +#define S_scan_pat CPerlObj::scan_pat +#define S_scan_str CPerlObj::scan_str +#define S_scan_subst CPerlObj::scan_subst +#define S_scan_trans CPerlObj::scan_trans +#define S_scan_word CPerlObj::scan_word +#define S_skipspace CPerlObj::skipspace +#define S_checkcomma CPerlObj::checkcomma +#define S_force_ident CPerlObj::force_ident +#define S_incline CPerlObj::incline +#define S_intuit_method CPerlObj::intuit_method +#define S_intuit_more CPerlObj::intuit_more +#define S_lop CPerlObj::lop +#define S_missingterm CPerlObj::missingterm +#define S_no_op CPerlObj::no_op +#define S_set_csh CPerlObj::set_csh +#define S_sublex_done CPerlObj::sublex_done +#define S_sublex_push CPerlObj::sublex_push +#define S_sublex_start CPerlObj::sublex_start +#define S_filter_gets CPerlObj::filter_gets +#define S_new_constant CPerlObj::new_constant +#define S_ao CPerlObj::ao +#define S_depcom CPerlObj::depcom +#define S_incl_perldb CPerlObj::incl_perldb +#define S_utf16_textfilter CPerlObj::utf16_textfilter +#define S_utf16rev_textfilter CPerlObj::utf16rev_textfilter +#define S_restore_rsfp CPerlObj::restore_rsfp +#define S_restore_expect CPerlObj::restore_expect +#define S_restore_lex_expect CPerlObj::restore_lex_expect +# if defined(CRIPPLED_CC) +#define S_uni CPerlObj::uni +# endif +# if defined(WIN32) +#define S_win32_textfilter CPerlObj::win32_textfilter +# endif +#endif +#if defined(PERL_IN_UNIVERSAL_C) +#define S_isa_lookup CPerlObj::isa_lookup +#endif +#if defined(PERL_IN_UTIL_C) +#define S_mess_alloc CPerlObj::mess_alloc +#define S_do_croak CPerlObj::do_croak +#define S_do_warn CPerlObj::do_warn +# if defined(LEAKTEST) +#define S_xstat CPerlObj::xstat +# endif +#endif +#define Perl_ck_anoncode CPerlObj::ck_anoncode +#define Perl_ck_bitop CPerlObj::ck_bitop +#define Perl_ck_concat CPerlObj::ck_concat +#define Perl_ck_defined CPerlObj::ck_defined +#define Perl_ck_delete CPerlObj::ck_delete +#define Perl_ck_eof CPerlObj::ck_eof +#define Perl_ck_eval CPerlObj::ck_eval +#define Perl_ck_exec CPerlObj::ck_exec +#define Perl_ck_exists CPerlObj::ck_exists +#define Perl_ck_ftst CPerlObj::ck_ftst +#define Perl_ck_fun CPerlObj::ck_fun +#define Perl_ck_fun_locale CPerlObj::ck_fun_locale +#define Perl_ck_glob CPerlObj::ck_glob +#define Perl_ck_grep CPerlObj::ck_grep +#define Perl_ck_index CPerlObj::ck_index +#define Perl_ck_lengthconst CPerlObj::ck_lengthconst +#define Perl_ck_lfun CPerlObj::ck_lfun +#define Perl_ck_listiob CPerlObj::ck_listiob +#define Perl_ck_match CPerlObj::ck_match +#define Perl_ck_null CPerlObj::ck_null +#define Perl_ck_repeat CPerlObj::ck_repeat +#define Perl_ck_require CPerlObj::ck_require +#define Perl_ck_rfun CPerlObj::ck_rfun +#define Perl_ck_rvconst CPerlObj::ck_rvconst +#define Perl_ck_scmp CPerlObj::ck_scmp +#define Perl_ck_select CPerlObj::ck_select +#define Perl_ck_shift CPerlObj::ck_shift +#define Perl_ck_sort CPerlObj::ck_sort +#define Perl_ck_spair CPerlObj::ck_spair +#define Perl_ck_split CPerlObj::ck_split +#define Perl_ck_subr CPerlObj::ck_subr +#define Perl_ck_svconst CPerlObj::ck_svconst +#define Perl_ck_trunc CPerlObj::ck_trunc +#define Perl_pp_aassign CPerlObj::pp_aassign +#define Perl_pp_abs CPerlObj::pp_abs +#define Perl_pp_accept CPerlObj::pp_accept +#define Perl_pp_add CPerlObj::pp_add +#define Perl_pp_aelem CPerlObj::pp_aelem +#define Perl_pp_aelemfast CPerlObj::pp_aelemfast +#define Perl_pp_alarm CPerlObj::pp_alarm +#define Perl_pp_and CPerlObj::pp_and +#define Perl_pp_andassign CPerlObj::pp_andassign +#define Perl_pp_anoncode CPerlObj::pp_anoncode +#define Perl_pp_anonhash CPerlObj::pp_anonhash +#define Perl_pp_anonlist CPerlObj::pp_anonlist +#define Perl_pp_aslice CPerlObj::pp_aslice +#define Perl_pp_atan2 CPerlObj::pp_atan2 +#define Perl_pp_av2arylen CPerlObj::pp_av2arylen +#define Perl_pp_backtick CPerlObj::pp_backtick +#define Perl_pp_bind CPerlObj::pp_bind +#define Perl_pp_binmode CPerlObj::pp_binmode +#define Perl_pp_bit_and CPerlObj::pp_bit_and +#define Perl_pp_bit_or CPerlObj::pp_bit_or +#define Perl_pp_bit_xor CPerlObj::pp_bit_xor +#define Perl_pp_bless CPerlObj::pp_bless +#define Perl_pp_caller CPerlObj::pp_caller +#define Perl_pp_chdir CPerlObj::pp_chdir +#define Perl_pp_chmod CPerlObj::pp_chmod +#define Perl_pp_chomp CPerlObj::pp_chomp +#define Perl_pp_chop CPerlObj::pp_chop +#define Perl_pp_chown CPerlObj::pp_chown +#define Perl_pp_chr CPerlObj::pp_chr +#define Perl_pp_chroot CPerlObj::pp_chroot +#define Perl_pp_close CPerlObj::pp_close +#define Perl_pp_closedir CPerlObj::pp_closedir +#define Perl_pp_complement CPerlObj::pp_complement +#define Perl_pp_concat CPerlObj::pp_concat +#define Perl_pp_cond_expr CPerlObj::pp_cond_expr +#define Perl_pp_connect CPerlObj::pp_connect +#define Perl_pp_const CPerlObj::pp_const +#define Perl_pp_cos CPerlObj::pp_cos +#define Perl_pp_crypt CPerlObj::pp_crypt +#define Perl_pp_dbmclose CPerlObj::pp_dbmclose +#define Perl_pp_dbmopen CPerlObj::pp_dbmopen +#define Perl_pp_dbstate CPerlObj::pp_dbstate +#define Perl_pp_defined CPerlObj::pp_defined +#define Perl_pp_delete CPerlObj::pp_delete +#define Perl_pp_die CPerlObj::pp_die +#define Perl_pp_divide CPerlObj::pp_divide +#define Perl_pp_dofile CPerlObj::pp_dofile +#define Perl_pp_dump CPerlObj::pp_dump +#define Perl_pp_each CPerlObj::pp_each +#define Perl_pp_egrent CPerlObj::pp_egrent +#define Perl_pp_ehostent CPerlObj::pp_ehostent +#define Perl_pp_enetent CPerlObj::pp_enetent +#define Perl_pp_enter CPerlObj::pp_enter +#define Perl_pp_entereval CPerlObj::pp_entereval +#define Perl_pp_enteriter CPerlObj::pp_enteriter +#define Perl_pp_enterloop CPerlObj::pp_enterloop +#define Perl_pp_entersub CPerlObj::pp_entersub +#define Perl_pp_entertry CPerlObj::pp_entertry +#define Perl_pp_enterwrite CPerlObj::pp_enterwrite +#define Perl_pp_eof CPerlObj::pp_eof +#define Perl_pp_eprotoent CPerlObj::pp_eprotoent +#define Perl_pp_epwent CPerlObj::pp_epwent +#define Perl_pp_eq CPerlObj::pp_eq +#define Perl_pp_eservent CPerlObj::pp_eservent +#define Perl_pp_exec CPerlObj::pp_exec +#define Perl_pp_exists CPerlObj::pp_exists +#define Perl_pp_exit CPerlObj::pp_exit +#define Perl_pp_exp CPerlObj::pp_exp +#define Perl_pp_fcntl CPerlObj::pp_fcntl +#define Perl_pp_fileno CPerlObj::pp_fileno +#define Perl_pp_flip CPerlObj::pp_flip +#define Perl_pp_flock CPerlObj::pp_flock +#define Perl_pp_flop CPerlObj::pp_flop +#define Perl_pp_fork CPerlObj::pp_fork +#define Perl_pp_formline CPerlObj::pp_formline +#define Perl_pp_ftatime CPerlObj::pp_ftatime +#define Perl_pp_ftbinary CPerlObj::pp_ftbinary +#define Perl_pp_ftblk CPerlObj::pp_ftblk +#define Perl_pp_ftchr CPerlObj::pp_ftchr +#define Perl_pp_ftctime CPerlObj::pp_ftctime +#define Perl_pp_ftdir CPerlObj::pp_ftdir +#define Perl_pp_fteexec CPerlObj::pp_fteexec +#define Perl_pp_fteowned CPerlObj::pp_fteowned +#define Perl_pp_fteread CPerlObj::pp_fteread +#define Perl_pp_ftewrite CPerlObj::pp_ftewrite +#define Perl_pp_ftfile CPerlObj::pp_ftfile +#define Perl_pp_ftis CPerlObj::pp_ftis +#define Perl_pp_ftlink CPerlObj::pp_ftlink +#define Perl_pp_ftmtime CPerlObj::pp_ftmtime +#define Perl_pp_ftpipe CPerlObj::pp_ftpipe +#define Perl_pp_ftrexec CPerlObj::pp_ftrexec +#define Perl_pp_ftrowned CPerlObj::pp_ftrowned +#define Perl_pp_ftrread CPerlObj::pp_ftrread +#define Perl_pp_ftrwrite CPerlObj::pp_ftrwrite +#define Perl_pp_ftsgid CPerlObj::pp_ftsgid +#define Perl_pp_ftsize CPerlObj::pp_ftsize +#define Perl_pp_ftsock CPerlObj::pp_ftsock +#define Perl_pp_ftsuid CPerlObj::pp_ftsuid +#define Perl_pp_ftsvtx CPerlObj::pp_ftsvtx +#define Perl_pp_fttext CPerlObj::pp_fttext +#define Perl_pp_fttty CPerlObj::pp_fttty +#define Perl_pp_ftzero CPerlObj::pp_ftzero +#define Perl_pp_ge CPerlObj::pp_ge +#define Perl_pp_gelem CPerlObj::pp_gelem +#define Perl_pp_getc CPerlObj::pp_getc +#define Perl_pp_getlogin CPerlObj::pp_getlogin +#define Perl_pp_getpeername CPerlObj::pp_getpeername +#define Perl_pp_getpgrp CPerlObj::pp_getpgrp +#define Perl_pp_getppid CPerlObj::pp_getppid +#define Perl_pp_getpriority CPerlObj::pp_getpriority +#define Perl_pp_getsockname CPerlObj::pp_getsockname +#define Perl_pp_ggrent CPerlObj::pp_ggrent +#define Perl_pp_ggrgid CPerlObj::pp_ggrgid +#define Perl_pp_ggrnam CPerlObj::pp_ggrnam +#define Perl_pp_ghbyaddr CPerlObj::pp_ghbyaddr +#define Perl_pp_ghbyname CPerlObj::pp_ghbyname +#define Perl_pp_ghostent CPerlObj::pp_ghostent +#define Perl_pp_glob CPerlObj::pp_glob +#define Perl_pp_gmtime CPerlObj::pp_gmtime +#define Perl_pp_gnbyaddr CPerlObj::pp_gnbyaddr +#define Perl_pp_gnbyname CPerlObj::pp_gnbyname +#define Perl_pp_gnetent CPerlObj::pp_gnetent +#define Perl_pp_goto CPerlObj::pp_goto +#define Perl_pp_gpbyname CPerlObj::pp_gpbyname +#define Perl_pp_gpbynumber CPerlObj::pp_gpbynumber +#define Perl_pp_gprotoent CPerlObj::pp_gprotoent +#define Perl_pp_gpwent CPerlObj::pp_gpwent +#define Perl_pp_gpwnam CPerlObj::pp_gpwnam +#define Perl_pp_gpwuid CPerlObj::pp_gpwuid +#define Perl_pp_grepstart CPerlObj::pp_grepstart +#define Perl_pp_grepwhile CPerlObj::pp_grepwhile +#define Perl_pp_gsbyname CPerlObj::pp_gsbyname +#define Perl_pp_gsbyport CPerlObj::pp_gsbyport +#define Perl_pp_gservent CPerlObj::pp_gservent +#define Perl_pp_gsockopt CPerlObj::pp_gsockopt +#define Perl_pp_gt CPerlObj::pp_gt +#define Perl_pp_gv CPerlObj::pp_gv +#define Perl_pp_gvsv CPerlObj::pp_gvsv +#define Perl_pp_helem CPerlObj::pp_helem +#define Perl_pp_hex CPerlObj::pp_hex +#define Perl_pp_hslice CPerlObj::pp_hslice +#define Perl_pp_i_add CPerlObj::pp_i_add +#define Perl_pp_i_divide CPerlObj::pp_i_divide +#define Perl_pp_i_eq CPerlObj::pp_i_eq +#define Perl_pp_i_ge CPerlObj::pp_i_ge +#define Perl_pp_i_gt CPerlObj::pp_i_gt +#define Perl_pp_i_le CPerlObj::pp_i_le +#define Perl_pp_i_lt CPerlObj::pp_i_lt +#define Perl_pp_i_modulo CPerlObj::pp_i_modulo +#define Perl_pp_i_multiply CPerlObj::pp_i_multiply +#define Perl_pp_i_ncmp CPerlObj::pp_i_ncmp +#define Perl_pp_i_ne CPerlObj::pp_i_ne +#define Perl_pp_i_negate CPerlObj::pp_i_negate +#define Perl_pp_i_subtract CPerlObj::pp_i_subtract +#define Perl_pp_index CPerlObj::pp_index +#define Perl_pp_int CPerlObj::pp_int +#define Perl_pp_ioctl CPerlObj::pp_ioctl +#define Perl_pp_iter CPerlObj::pp_iter +#define Perl_pp_join CPerlObj::pp_join +#define Perl_pp_keys CPerlObj::pp_keys +#define Perl_pp_kill CPerlObj::pp_kill +#define Perl_pp_last CPerlObj::pp_last +#define Perl_pp_lc CPerlObj::pp_lc +#define Perl_pp_lcfirst CPerlObj::pp_lcfirst +#define Perl_pp_le CPerlObj::pp_le +#define Perl_pp_leave CPerlObj::pp_leave +#define Perl_pp_leaveeval CPerlObj::pp_leaveeval +#define Perl_pp_leaveloop CPerlObj::pp_leaveloop +#define Perl_pp_leavesub CPerlObj::pp_leavesub +#define Perl_pp_leavetry CPerlObj::pp_leavetry +#define Perl_pp_leavewrite CPerlObj::pp_leavewrite +#define Perl_pp_left_shift CPerlObj::pp_left_shift +#define Perl_pp_length CPerlObj::pp_length +#define Perl_pp_lineseq CPerlObj::pp_lineseq +#define Perl_pp_link CPerlObj::pp_link +#define Perl_pp_list CPerlObj::pp_list +#define Perl_pp_listen CPerlObj::pp_listen +#define Perl_pp_localtime CPerlObj::pp_localtime +#define Perl_pp_lock CPerlObj::pp_lock +#define Perl_pp_log CPerlObj::pp_log +#define Perl_pp_lslice CPerlObj::pp_lslice +#define Perl_pp_lstat CPerlObj::pp_lstat +#define Perl_pp_lt CPerlObj::pp_lt +#define Perl_pp_mapstart CPerlObj::pp_mapstart +#define Perl_pp_mapwhile CPerlObj::pp_mapwhile +#define Perl_pp_match CPerlObj::pp_match +#define Perl_pp_method CPerlObj::pp_method +#define Perl_pp_mkdir CPerlObj::pp_mkdir +#define Perl_pp_modulo CPerlObj::pp_modulo +#define Perl_pp_msgctl CPerlObj::pp_msgctl +#define Perl_pp_msgget CPerlObj::pp_msgget +#define Perl_pp_msgrcv CPerlObj::pp_msgrcv +#define Perl_pp_msgsnd CPerlObj::pp_msgsnd +#define Perl_pp_multiply CPerlObj::pp_multiply +#define Perl_pp_ncmp CPerlObj::pp_ncmp +#define Perl_pp_ne CPerlObj::pp_ne +#define Perl_pp_negate CPerlObj::pp_negate +#define Perl_pp_next CPerlObj::pp_next +#define Perl_pp_nextstate CPerlObj::pp_nextstate +#define Perl_pp_not CPerlObj::pp_not +#define Perl_pp_null CPerlObj::pp_null +#define Perl_pp_oct CPerlObj::pp_oct +#define Perl_pp_open CPerlObj::pp_open +#define Perl_pp_open_dir CPerlObj::pp_open_dir +#define Perl_pp_or CPerlObj::pp_or +#define Perl_pp_orassign CPerlObj::pp_orassign +#define Perl_pp_ord CPerlObj::pp_ord +#define Perl_pp_pack CPerlObj::pp_pack +#define Perl_pp_padany CPerlObj::pp_padany +#define Perl_pp_padav CPerlObj::pp_padav +#define Perl_pp_padhv CPerlObj::pp_padhv +#define Perl_pp_padsv CPerlObj::pp_padsv +#define Perl_pp_pipe_op CPerlObj::pp_pipe_op +#define Perl_pp_pop CPerlObj::pp_pop +#define Perl_pp_pos CPerlObj::pp_pos +#define Perl_pp_postdec CPerlObj::pp_postdec +#define Perl_pp_postinc CPerlObj::pp_postinc +#define Perl_pp_pow CPerlObj::pp_pow +#define Perl_pp_predec CPerlObj::pp_predec +#define Perl_pp_preinc CPerlObj::pp_preinc +#define Perl_pp_print CPerlObj::pp_print +#define Perl_pp_prototype CPerlObj::pp_prototype +#define Perl_pp_prtf CPerlObj::pp_prtf +#define Perl_pp_push CPerlObj::pp_push +#define Perl_pp_pushmark CPerlObj::pp_pushmark +#define Perl_pp_pushre CPerlObj::pp_pushre +#define Perl_pp_qr CPerlObj::pp_qr +#define Perl_pp_quotemeta CPerlObj::pp_quotemeta +#define Perl_pp_rand CPerlObj::pp_rand +#define Perl_pp_range CPerlObj::pp_range +#define Perl_pp_rcatline CPerlObj::pp_rcatline +#define Perl_pp_read CPerlObj::pp_read +#define Perl_pp_readdir CPerlObj::pp_readdir +#define Perl_pp_readline CPerlObj::pp_readline +#define Perl_pp_readlink CPerlObj::pp_readlink +#define Perl_pp_recv CPerlObj::pp_recv +#define Perl_pp_redo CPerlObj::pp_redo +#define Perl_pp_ref CPerlObj::pp_ref +#define Perl_pp_refgen CPerlObj::pp_refgen +#define Perl_pp_regcmaybe CPerlObj::pp_regcmaybe +#define Perl_pp_regcomp CPerlObj::pp_regcomp +#define Perl_pp_regcreset CPerlObj::pp_regcreset +#define Perl_pp_rename CPerlObj::pp_rename +#define Perl_pp_repeat CPerlObj::pp_repeat +#define Perl_pp_require CPerlObj::pp_require +#define Perl_pp_reset CPerlObj::pp_reset +#define Perl_pp_return CPerlObj::pp_return +#define Perl_pp_reverse CPerlObj::pp_reverse +#define Perl_pp_rewinddir CPerlObj::pp_rewinddir +#define Perl_pp_right_shift CPerlObj::pp_right_shift +#define Perl_pp_rindex CPerlObj::pp_rindex +#define Perl_pp_rmdir CPerlObj::pp_rmdir +#define Perl_pp_rv2av CPerlObj::pp_rv2av +#define Perl_pp_rv2cv CPerlObj::pp_rv2cv +#define Perl_pp_rv2gv CPerlObj::pp_rv2gv +#define Perl_pp_rv2hv CPerlObj::pp_rv2hv +#define Perl_pp_rv2sv CPerlObj::pp_rv2sv +#define Perl_pp_sassign CPerlObj::pp_sassign +#define Perl_pp_scalar CPerlObj::pp_scalar +#define Perl_pp_schomp CPerlObj::pp_schomp +#define Perl_pp_schop CPerlObj::pp_schop +#define Perl_pp_scmp CPerlObj::pp_scmp +#define Perl_pp_scope CPerlObj::pp_scope +#define Perl_pp_seek CPerlObj::pp_seek +#define Perl_pp_seekdir CPerlObj::pp_seekdir +#define Perl_pp_select CPerlObj::pp_select +#define Perl_pp_semctl CPerlObj::pp_semctl +#define Perl_pp_semget CPerlObj::pp_semget +#define Perl_pp_semop CPerlObj::pp_semop +#define Perl_pp_send CPerlObj::pp_send +#define Perl_pp_seq CPerlObj::pp_seq +#define Perl_pp_setpgrp CPerlObj::pp_setpgrp +#define Perl_pp_setpriority CPerlObj::pp_setpriority +#define Perl_pp_sge CPerlObj::pp_sge +#define Perl_pp_sgrent CPerlObj::pp_sgrent +#define Perl_pp_sgt CPerlObj::pp_sgt +#define Perl_pp_shift CPerlObj::pp_shift +#define Perl_pp_shmctl CPerlObj::pp_shmctl +#define Perl_pp_shmget CPerlObj::pp_shmget +#define Perl_pp_shmread CPerlObj::pp_shmread +#define Perl_pp_shmwrite CPerlObj::pp_shmwrite +#define Perl_pp_shostent CPerlObj::pp_shostent +#define Perl_pp_shutdown CPerlObj::pp_shutdown +#define Perl_pp_sin CPerlObj::pp_sin +#define Perl_pp_sle CPerlObj::pp_sle +#define Perl_pp_sleep CPerlObj::pp_sleep +#define Perl_pp_slt CPerlObj::pp_slt +#define Perl_pp_sne CPerlObj::pp_sne +#define Perl_pp_snetent CPerlObj::pp_snetent +#define Perl_pp_socket CPerlObj::pp_socket +#define Perl_pp_sockpair CPerlObj::pp_sockpair +#define Perl_pp_sort CPerlObj::pp_sort +#define Perl_pp_splice CPerlObj::pp_splice +#define Perl_pp_split CPerlObj::pp_split +#define Perl_pp_sprintf CPerlObj::pp_sprintf +#define Perl_pp_sprotoent CPerlObj::pp_sprotoent +#define Perl_pp_spwent CPerlObj::pp_spwent +#define Perl_pp_sqrt CPerlObj::pp_sqrt +#define Perl_pp_srand CPerlObj::pp_srand +#define Perl_pp_srefgen CPerlObj::pp_srefgen +#define Perl_pp_sselect CPerlObj::pp_sselect +#define Perl_pp_sservent CPerlObj::pp_sservent +#define Perl_pp_ssockopt CPerlObj::pp_ssockopt +#define Perl_pp_stat CPerlObj::pp_stat +#define Perl_pp_stringify CPerlObj::pp_stringify +#define Perl_pp_stub CPerlObj::pp_stub +#define Perl_pp_study CPerlObj::pp_study +#define Perl_pp_subst CPerlObj::pp_subst +#define Perl_pp_substcont CPerlObj::pp_substcont +#define Perl_pp_substr CPerlObj::pp_substr +#define Perl_pp_subtract CPerlObj::pp_subtract +#define Perl_pp_symlink CPerlObj::pp_symlink +#define Perl_pp_syscall CPerlObj::pp_syscall +#define Perl_pp_sysopen CPerlObj::pp_sysopen +#define Perl_pp_sysread CPerlObj::pp_sysread +#define Perl_pp_sysseek CPerlObj::pp_sysseek +#define Perl_pp_system CPerlObj::pp_system +#define Perl_pp_syswrite CPerlObj::pp_syswrite +#define Perl_pp_tell CPerlObj::pp_tell +#define Perl_pp_telldir CPerlObj::pp_telldir +#define Perl_pp_threadsv CPerlObj::pp_threadsv +#define Perl_pp_tie CPerlObj::pp_tie +#define Perl_pp_tied CPerlObj::pp_tied +#define Perl_pp_time CPerlObj::pp_time +#define Perl_pp_tms CPerlObj::pp_tms +#define Perl_pp_trans CPerlObj::pp_trans +#define Perl_pp_truncate CPerlObj::pp_truncate +#define Perl_pp_uc CPerlObj::pp_uc +#define Perl_pp_ucfirst CPerlObj::pp_ucfirst +#define Perl_pp_umask CPerlObj::pp_umask +#define Perl_pp_undef CPerlObj::pp_undef +#define Perl_pp_unlink CPerlObj::pp_unlink +#define Perl_pp_unpack CPerlObj::pp_unpack +#define Perl_pp_unshift CPerlObj::pp_unshift +#define Perl_pp_unstack CPerlObj::pp_unstack +#define Perl_pp_untie CPerlObj::pp_untie +#define Perl_pp_utime CPerlObj::pp_utime +#define Perl_pp_values CPerlObj::pp_values +#define Perl_pp_vec CPerlObj::pp_vec +#define Perl_pp_wait CPerlObj::pp_wait +#define Perl_pp_waitpid CPerlObj::pp_waitpid +#define Perl_pp_wantarray CPerlObj::pp_wantarray +#define Perl_pp_warn CPerlObj::pp_warn +#define Perl_pp_xor CPerlObj::pp_xor #endif /* PERL_OBJECT */ -/* compatibility stubs */ +/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to + disable them. + */ + +#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) + +# 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) + + +/* Compatibility for various misnamed functions. All functions + in the API that begin with "perl_" (not "Perl_") take an explicit + interpreter context pointer. + The following are not like that, but since they had a "perl_" + prefix in previous versions, we provide compatibility macros. + */ +# define perl_atexit call_atexit +# define perl_call_argv call_argv +# define perl_call_pv call_pv +# define perl_call_method call_method +# define perl_call_sv call_sv +# define perl_eval_sv eval_sv +# define perl_eval_pv eval_pv +# define perl_require_pv require_pv +# define perl_get_sv get_sv +# define perl_get_av get_av +# define perl_get_hv get_hv +# define perl_get_cv get_cv +# define perl_init_i18nl10n init_i18nl10n +# define perl_init_i18nl14n init_i18nl14n +# define perl_new_ctype new_ctype +# define perl_new_collate new_collate +# define perl_new_numeric new_numeric + +/* varargs functions can't be handled with CPP macros. :-( + This provides a set of compatibility functions that don't take + an extra argument but grab the context pointer using the macro + dTHX. + */ +#if defined(PERL_IMPLICIT_CONTEXT) +# define croak Perl_croak_nocontext +# define die Perl_die_nocontext +# define form Perl_form_nocontext +# define newSVpvf Perl_newSVpvf_nocontext +# define sv_catpvf Perl_sv_catpvf_nocontext +# define sv_setpvf Perl_sv_setpvf_nocontext +# define warn Perl_warn_nocontext +# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext +# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext +#endif + +#endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */ -#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) -#define perl_atexit call_atexit -#define perl_call_argv call_argv -#define perl_call_pv call_pv -#define perl_call_method call_method -#define perl_call_sv call_sv -#define perl_eval_sv eval_sv -#define perl_eval_pv eval_pv -#define perl_require_pv require_pv -#define perl_get_sv get_sv -#define perl_get_av get_av -#define perl_get_hv get_hv -#define perl_get_cv get_cv -#define perl_init_i18nl10n init_i18nl10n -#define perl_init_i18nl14n init_i18nl14n -#define perl_new_ctype new_ctype -#define perl_new_collate new_collate -#define perl_new_numeric new_numeric +#if !defined(PERL_IMPLICIT_CONTEXT) +/* undefined symbols, point them back at the usual ones */ +# define Perl_croak_nocontext Perl_croak +# define Perl_die_nocontext Perl_die +# define Perl_form_nocontext Perl_form +# define Perl_newSVpvf_nocontext Perl_newSVpvf +# define Perl_sv_catpvf_nocontext Perl_sv_catpvf +# define Perl_sv_setpvf_nocontext Perl_sv_setpvf +# define Perl_warn_nocontext Perl_warn +# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg +# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg +#endif diff --git a/embed.pl b/embed.pl index c877f0d..6fad124 100755 --- a/embed.pl +++ b/embed.pl @@ -2,6 +2,169 @@ require 5.003; +# +# See database of global and static function prototypes at the __END__. +# This is used to generate prototype headers under various configurations, +# export symbols lists for different platforms, and macros to provide an +# implicit interpreter context argument. +# + +my $END = tell DATA; + +# walk table providing an array of components in each line to +# subroutine, printing the result +sub walk_table (&@) { + my $function = shift; + my $filename = shift || '-'; + my $leader = shift; + my $trailer = shift; + my $F; + local *F; + if (ref $filename) { # filehandle + $F = $filename; + } + else { + open F, ">$filename" or die "Can't open $filename: $!"; + $F = \*F; + } + print $F $leader if $leader; + seek DATA, $END, 0; # so we may restart + while () { + chomp; + while (s|\\$||) { + $_ .= ; + chomp; + } + my @args; + if (/^\s*(#|$)/) { + @args = $_; + } + else { + @args = split /\s*\|\s*/, $_; + } + print $F $function->(@args); + } + print $F $trailer if $trailer; + close $F unless ref $filename; +} + +sub munge_c_files () { + my $functions = {}; + unless (@ARGV) { + warn "\@ARGV empty, nothing to do\n"; + return; + } + walk_table { + if (@_ > 1) { + $functions->{$_[2]} = \@_ if $_[@_-1] =~ /\.\.\./; + } + } '/dev/null'; + local $^I = '.bak'; + while (<>) { +# if (/^#\s*include\s+"perl.h"/) { +# my $file = uc $ARGV; +# $file =~ s/\./_/g; +# print "#define PERL_IN_$file\n"; +# } +# s{^(\w+)\s*\(} +# { +# my $f = $1; +# my $repl = "$f("; +# if (exists $functions->{$f}) { +# my $flags = $functions->{$f}[0]; +# $repl = "Perl_$repl" if $flags =~ /p/; +# unless ($flags =~ /n/) { +# $repl .= "pTHX"; +# $repl .= "_ " if @{$functions->{$f}} > 3; +# } +# warn("$ARGV:$.:$repl\n"); +# } +# $repl; +# }e; + s{(\b(\w+)[ \t]*\([ \t]*(?!aTHX))} + { + my $repl = $1; + my $f = $2; + if (exists $functions->{$f}) { + $repl .= "aTHX_ "; + warn("$ARGV:$.:$`#$repl#$'"); + } + $repl; + }eg; + print; + close ARGV if eof; # restart $. + } + exit; +} + +#munge_c_files(); + +# generate proto.h +sub write_protos { + my $ret = ""; + if (@_ == 1) { + my $arg = shift; + $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/; + } + else { + my ($flags,$retval,$func,@args) = @_; + if ($flags =~ /s/) { + $retval = "STATIC $retval"; + $func = "S_$func"; + } + elsif ($flags =~ /p/) { + $func = "Perl_$func"; + } + $ret .= "$retval\t$func("; + unless ($flags =~ /n/) { + $ret .= "pTHX"; + $ret .= "_ " if @args; + } + if (@args) { + $ret .= join ", ", @args; + } + else { + $ret .= "void" if $flags =~ /n/; + } + $ret .= ")"; + $ret .= " __attribute__((noreturn))" if $flags =~ /r/; + $ret .= ";\n"; + } + $ret; +} + +# generates global.sym, and populates %global with global symbols +sub write_global_sym { + my $ret = ""; + if (@_ > 1) { + my ($flags,$retval,$func,@args) = @_; + unless ($flags =~ /s/) { + $func = "Perl_$func" if $flags =~ /p/; + $ret = "$func\n"; + } + } + $ret; +} + + +walk_table(\&write_protos, 'proto.h', <<'EOT'); +/* + * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! + * This file is autogenerated from data in embed.pl. Edit that file + * and run 'make regen_headers' to effect changes. + */ + +EOT + +walk_table(\&write_global_sym, 'global.sym', <<'EOT'); +# +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is autogenerated from data in embed.pl. Edit that file +# and run 'make regen_headers' to effect changes. +# + +EOT + # XXX others that may need adding # warnhook # hints @@ -39,8 +202,8 @@ sub readsyms (\%$) { close(FILE); } -readsyms %global, 'global.sym'; -readsyms %global, 'pp.sym'; +# Perl_pp_* and Perl_ck_* are in pp.sym +readsyms my %ppsym, 'pp.sym'; sub readvars(\%$$@) { my ($syms, $file,$pre,$keep_pre) = @_; @@ -68,32 +231,9 @@ readvars %thread, 'thrdvar.h','T'; readvars %globvar, 'perlvars.h','G'; readvars %objvar, 'intrpvar.h','pi', 1; -foreach my $sym (sort keys %intrp) - { - if (exists $global{$sym}) - { - delete $global{$sym}; - warn "$sym in {global,pp}.sym as well as intrpvar.h\n"; - } - } - -foreach my $sym (sort keys %globvar) - { - if (exists $global{$sym}) - { - delete $global{$sym}; - warn "$sym in {global,pp}.sym as well as perlvars.h\n"; - } - } - foreach my $sym (sort keys %thread) { warn "$sym in intrpvar.h as well as thrdvar.h\n" if exists $intrp{$sym}; - if (exists $global{$sym}) - { - delete $global{$sym}; - warn "$sym in {global,pp}.sym as well as thrdvar.h\n"; - } } sub undefine ($) { @@ -107,24 +247,6 @@ sub hide ($$) { "#define $from" . "\t" x ($t < 3 ? 3 - $t : 1) . "$to\n"; } -sub embed ($) { - my ($sym) = @_; - my $def = $sym; - hide($def, $sym) if $def =~ s/^Perl_//; -} - -sub embedobj ($) { - my ($sym) = @_; - hide($sym, $sym =~ /^perl_/i ? "CPerlObj::$sym" : "CPerlObj::Perl_$sym"); -} - -sub objxsub_func ($) { - my ($sym) = @_; - undefine($sym) . hide($sym, $sym =~ /^perl_/i - ? "pPerl->$sym" - : "pPerl->Perl_$sym"); -} - sub objxsub_var ($) { my ($sym) = @_; undefine("PL_$sym") . hide("PL_$sym", "pPerl->PL_$sym"); @@ -146,12 +268,11 @@ sub multoff ($$) { } unlink 'embed.h'; -open(EM, '> embed.h') - or die "Can't create embed.h: $!\n"; +open(EM, '> embed.h') or die "Can't create embed.h: $!\n"; print EM <<'END'; /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by embed.pl from global.sym, pp.sym, intrpvar.h, + This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -162,277 +283,197 @@ print EM <<'END'; /* Hide global symbols */ #if !defined(PERL_OBJECT) +#if !defined(PERL_IMPLICIT_CONTEXT) END -for $sym (sort keys %global) { - next if $sym =~ /^Perl_(malloc|calloc|realloc|mfree)$/; - print EM embed($sym); +walk_table { + my $ret = ""; + if (@_ == 1) { + my $arg = shift; + $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/; + } + else { + my ($flags,$retval,$func,@args) = @_; + unless ($flags =~ /o/) { + if ($flags =~ /s/) { + $ret .= hide($func,"S_$func"); + } + elsif ($flags =~ /p/) { + $ret .= hide($func,"Perl_$func"); + } + } + } + $ret; +} \*EM; + +for $sym (sort keys %ppsym) { + $sym =~ s/^Perl_//; + print EM hide($sym, "Perl_$sym"); +} + +print EM <<'END'; + +#else /* PERL_IMPLICIT_CONTEXT */ + +END + +my @az = ('a'..'z'); + +walk_table { + my $ret = ""; + if (@_ == 1) { + my $arg = shift; + $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/; + } + else { + my ($flags,$retval,$func,@args) = @_; + unless ($flags =~ /o/) { + my $args = scalar @args; + if ($args and $args[$args-1] =~ /\.\.\./) { + # we're out of luck for varargs functions under CPP + } + elsif ($flags =~ /n/) { + if ($flags =~ /s/) { + $ret .= hide($func,"S_$func"); + } + elsif ($flags =~ /p/) { + $ret .= hide($func,"Perl_$func"); + } + } + else { + my $alist = join(",", @az[0..$args-1]); + $ret = "#define $func($alist)"; + my $t = int(length($ret) / 8); + $ret .= "\t" x ($t < 4 ? 4 - $t : 1); + if ($flags =~ /s/) { + $ret .= "S_$func(aTHX"; + } + elsif ($flags =~ /p/) { + $ret .= "Perl_$func(aTHX"; + } + $ret .= "_ " if $alist; + $ret .= $alist . ")\n"; + } + } + } + $ret; +} \*EM; + +for $sym (sort keys %ppsym) { + $sym =~ s/^Perl_//; + if ($sym =~ /^ck_/) { + print EM hide("$sym(a)", "Perl_$sym(aTHX_ a)"); + } + elsif ($sym =~ /^pp_/) { + print EM hide("$sym()", "Perl_$sym(aTHX)"); + } + else { + warn "Illegal symbol '$sym' in pp.sym"; + } } print EM <<'END'; +#endif /* PERL_IMPLICIT_CONTEXT */ #else /* PERL_OBJECT */ END -# XXX these should be in a *.sym file -my @staticfuncs = 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_unglob - 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 - docatch_body - perl_parse_body - perl_run_body - perl_call_body - perl_call_xbody - call_list_body - dofindlabel - doparseform - dopoptoeval - dopoptolabel - dopoptoloop - dopoptosub - dopoptosub_at - free_closures - save_lines - doeval - doopen_pmc - sv_ncmp - sv_i_ncmp - amagic_ncmp - amagic_i_ncmp - amagic_cmp - amagic_cmp_locale - mul128 - is_an_int - div128 - 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 - no_bareword_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 - regpposixcc - clear_re - regmatch - regrepeat - regrepeat_hard - regtry - reginclass - reginclassutf8 - regcppush - regcppop - regcp_set_to - cache_re - restore_pos - reghop - reghopmaybe - dump - do_aspawn - debprof - new_logop - simplify_sort - is_handle_constructor - sv_add_backref - sv_del_backref - 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 - del_sv -); - -for $sym (sort(keys(%global),@staticfuncs)) { - next if $sym =~ /^Perl_(malloc|calloc|realloc|mfree)$/; - print EM embedobj($sym); +walk_table { + my $ret = ""; + if (@_ == 1) { + my $arg = shift; + $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/; + } + else { + my ($flags,$retval,$func,@args) = @_; + unless ($flags =~ /o/) { + if ($flags =~ /s/) { + $ret .= hide("S_$func","CPerlObj::$func"); + } + elsif ($flags =~ /p/) { + $ret .= hide("Perl_$func","CPerlObj::$func"); + } + } + } + $ret; +} \*EM; + +for $sym (sort keys %ppsym) { + $sym =~ s/^Perl_//; + print EM hide("Perl_$sym", "CPerlObj::$sym"); } print EM <<'END'; #endif /* PERL_OBJECT */ -/* compatibility stubs */ - -#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) -#define perl_atexit call_atexit -#define perl_call_argv call_argv -#define perl_call_pv call_pv -#define perl_call_method call_method -#define perl_call_sv call_sv -#define perl_eval_sv eval_sv -#define perl_eval_pv eval_pv -#define perl_require_pv require_pv -#define perl_get_sv get_sv -#define perl_get_av get_av -#define perl_get_hv get_hv -#define perl_get_cv get_cv -#define perl_init_i18nl10n init_i18nl10n -#define perl_init_i18nl14n init_i18nl14n -#define perl_new_ctype new_ctype -#define perl_new_collate new_collate -#define perl_new_numeric new_numeric +/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to + disable them. + */ + +#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) + +# 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) + + +/* Compatibility for various misnamed functions. All functions + in the API that begin with "perl_" (not "Perl_") take an explicit + interpreter context pointer. + The following are not like that, but since they had a "perl_" + prefix in previous versions, we provide compatibility macros. + */ +# define perl_atexit call_atexit +# define perl_call_argv call_argv +# define perl_call_pv call_pv +# define perl_call_method call_method +# define perl_call_sv call_sv +# define perl_eval_sv eval_sv +# define perl_eval_pv eval_pv +# define perl_require_pv require_pv +# define perl_get_sv get_sv +# define perl_get_av get_av +# define perl_get_hv get_hv +# define perl_get_cv get_cv +# define perl_init_i18nl10n init_i18nl10n +# define perl_init_i18nl14n init_i18nl14n +# define perl_new_ctype new_ctype +# define perl_new_collate new_collate +# define perl_new_numeric new_numeric + +/* varargs functions can't be handled with CPP macros. :-( + This provides a set of compatibility functions that don't take + an extra argument but grab the context pointer using the macro + dTHX. + */ +#if defined(PERL_IMPLICIT_CONTEXT) +# define croak Perl_croak_nocontext +# define die Perl_die_nocontext +# define form Perl_form_nocontext +# define newSVpvf Perl_newSVpvf_nocontext +# define sv_catpvf Perl_sv_catpvf_nocontext +# define sv_setpvf Perl_sv_setpvf_nocontext +# define warn Perl_warn_nocontext +# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext +# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext +#endif + +#endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */ + +#if !defined(PERL_IMPLICIT_CONTEXT) +/* undefined symbols, point them back at the usual ones */ +# define Perl_croak_nocontext Perl_croak +# define Perl_die_nocontext Perl_die +# define Perl_form_nocontext Perl_form +# define Perl_newSVpvf_nocontext Perl_newSVpvf +# define Perl_sv_catpvf_nocontext Perl_sv_catpvf +# define Perl_sv_setpvf_nocontext Perl_sv_setpvf +# define Perl_warn_nocontext Perl_warn +# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg +# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg +#endif END @@ -444,7 +485,7 @@ open(EM, '> embedvar.h') print EM <<'END'; /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by embed.pl from global.sym, pp.sym, intrpvar.h, + This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -457,14 +498,32 @@ print EM <<'END'; #ifndef USE_THREADS /* If we do not have threads then per-thread vars are per-interpreter */ +#ifdef PERL_IMPLICIT_CONTEXT + +/* everything has an implicit context pointer */ + +END + +for $sym (sort keys %thread) { + print EM multon($sym,'T','my_perl->'); +} + +print EM <<'END'; + +#else /* !PERL_IMPLICIT_CONTEXT */ + +/* traditional MULTIPLICITY (intepreter is in a global) */ + END + for $sym (sort keys %thread) { print EM multon($sym,'T','PL_curinterp->'); } print EM <<'END'; +#endif /* !PERL_IMPLICIT_CONTEXT */ #endif /* !USE_THREADS */ /* These are always per-interpreter if there is more than one */ @@ -592,7 +651,7 @@ open(OBX, '> objXSUB.h') print OBX <<'EOT'; /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by embed.pl from global.sym, pp.sym, intrpvar.h, + This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -617,15 +676,1067 @@ print OBX <<'EOT'; EOT +walk_table { + my $ret = ""; + if (@_ == 1) { + my $arg = shift; + $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/; + } + else { + my ($flags,$retval,$func,@args) = @_; + unless ($flags =~ /o/) { + if ($flags =~ /p/) { + $ret .= undefine($func) . hide($func,"pPerl->$func"); + } + } + } + $ret; +} \*OBX; -for $sym (sort(keys(%global),@staticfuncs)) { - print OBX objxsub_func($sym); +for $sym (sort keys %ppsym) { + $sym =~ s/^Perl_//; + print OBX undefine($sym) . hide($sym, "pPerl->$sym"); } - print OBX <<'EOT'; #endif /* __objXSUB_h__ */ EOT close(OBX); + +__END__ + +# Lines are of the form: +# flags|return_type|function_name|return_type|arg1|arg2|...|argN +# +# They may continue on multiple lines when \w| begins the next line. +# Leading and trailing whitespace will be ignored in each component. +# +# flags are single letters with following meanings: +# s static function, should have an S_ prefix in source +# file +# n has no implicit interpreter/thread context argument +# p function has a Perl_ prefix +# r function never returns +# o has no compatibility macro (#define foo Perl_foo) +# +# Individual flags may be separated by whitespace. +# +# New global functions should be added at the end for binary compatibility +# in some configurations. +# +# TODO: 1) Add a flag to mark the functions that are part of the public API. +# 2) Add a field for documentation, so that L +# may be autogenerated. +# + +p |SV* |amagic_call |SV* left|SV* right|int method|int dir +p |bool |Gv_AMupdate |HV* stash +p |OP* |append_elem |I32 optype|OP* head|OP* tail +p |OP* |append_list |I32 optype|LISTOP* first|LISTOP* last +p |I32 |apply |I32 type|SV** mark|SV** sp +p |void |assertref |OP* o +p |bool |avhv_exists_ent|AV *ar|SV* keysv|U32 hash +p |SV** |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash +p |HE* |avhv_iternext |AV *ar +p |SV* |avhv_iterval |AV *ar|HE* entry +p |HV* |avhv_keys |AV *ar +p |void |av_clear |AV* ar +p |void |av_extend |AV* ar|I32 key +p |AV* |av_fake |I32 size|SV** svp +p |SV** |av_fetch |AV* ar|I32 key|I32 lval +p |void |av_fill |AV* ar|I32 fill +p |I32 |av_len |AV* ar +p |AV* |av_make |I32 size|SV** svp +p |SV* |av_pop |AV* ar +p |void |av_push |AV* ar|SV* val +p |void |av_reify |AV* ar +p |SV* |av_shift |AV* ar +p |SV** |av_store |AV* ar|I32 key|SV* val +p |void |av_undef |AV* ar +p |void |av_unshift |AV* ar|I32 num +p |OP* |bind_match |I32 type|OP* left|OP* pat +p |OP* |block_end |I32 floor|OP* seq +p |I32 |block_gimme +p |int |block_start |int full +p |void |boot_core_UNIVERSAL +p |void |call_list |I32 oldscope|AV* av_list +p |I32 |cando |I32 bit|I32 effective|Stat_t* statbufp +p |U32 |cast_ulong |double f +p |I32 |cast_i32 |double f +p |IV |cast_iv |double f +p |UV |cast_uv |double f +#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) +p |I32 |my_chsize |int fd|Off_t length +#endif +#if defined(USE_THREADS) +p |MAGIC* |condpair_magic |SV *sv +#endif +p |OP* |convert |I32 optype|I32 flags|OP* o +pr |void |croak |const char* pat|... +#if defined(PERL_IMPLICIT_CONTEXT) +npr |void |croak_nocontext|const char* pat|... +np |OP* |die_nocontext |const char* pat|... +np |char* |form_nocontext |const char* pat|... +np |void |warn_nocontext |const char* pat|... +np |SV* |newSVpvf_nocontext|const char* pat|... +np |void |sv_catpvf_nocontext|SV* sv|const char* pat|... +np |void |sv_setpvf_nocontext|SV* sv|const char* pat|... +np |void |sv_catpvf_mg_nocontext|SV* sv|const char* pat|... +np |void |sv_setpvf_mg_nocontext|SV* sv|const char* pat|... +#endif +p |void |cv_ckproto |CV* cv|GV* gv|char* p +p |CV* |cv_clone |CV* proto +p |SV* |cv_const_sv |CV* cv +p |SV* |op_const_sv |OP* o|CV* cv +p |void |cv_undef |CV* cv +p |void |cx_dump |PERL_CONTEXT* cs +p |SV* |filter_add |filter_t funcp|SV* datasv +p |void |filter_del |filter_t funcp +p |I32 |filter_read |int idx|SV* buffer|int maxlen +p |char** |get_op_descs +p |char** |get_op_names +p |char* |get_no_modify +p |U32* |get_opargs +p |I32 |cxinc +p |void |deb |const char* pat|... +p |void |deb_growlevel +p |void |debprofdump +p |I32 |debop |OP* o +p |I32 |debstack +p |I32 |debstackptrs +p |char* |delimcpy |char* to|char* toend|char* from \ + |char* fromend|int delim|I32* retlen +p |void |deprecate |char* s +p |OP* |die |const char* pat|... +p |OP* |die_where |char* message|STRLEN msglen +p |void |dounwind |I32 cxix +p |bool |do_aexec |SV* really|SV** mark|SV** sp +p |int |do_binmode |PerlIO *fp|int iotype|int flag +p |void |do_chop |SV* asv|SV* sv +p |bool |do_close |GV* gv|bool not_implicit +p |bool |do_eof |GV* gv +p |bool |do_exec |char* cmd +#if !defined(WIN32) +p |bool |do_exec3 |char* cmd|int fd|int flag +#endif +p |void |do_execfree +#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) +p |I32 |do_ipcctl |I32 optype|SV** mark|SV** sp +p |I32 |do_ipcget |I32 optype|SV** mark|SV** sp +p |I32 |do_msgrcv |SV** mark|SV** sp +p |I32 |do_msgsnd |SV** mark|SV** sp +p |I32 |do_semop |SV** mark|SV** sp +p |I32 |do_shmio |I32 optype|SV** mark|SV** sp +#endif +p |void |do_join |SV* sv|SV* del|SV** mark|SV** sp +p |OP* |do_kv +p |bool |do_open |GV* gv|char* name|I32 len|int as_raw \ + |int rawmode|int rawperm|PerlIO* supplied_fp +p |void |do_pipe |SV* sv|GV* rgv|GV* wgv +p |bool |do_print |SV* sv|PerlIO* fp +p |OP* |do_readline +p |I32 |do_chomp |SV* sv +p |bool |do_seek |GV* gv|Off_t pos|int whence +p |void |do_sprintf |SV* sv|I32 len|SV** sarg +p |Off_t |do_sysseek |GV* gv|Off_t pos|int whence +p |Off_t |do_tell |GV* gv +p |I32 |do_trans |SV* sv +p |void |do_vecset |SV* sv +p |void |do_vop |I32 optype|SV* sv|SV* left|SV* right +p |OP* |dofile |OP* term +p |I32 |dowantarray +p |void |dump_all +p |void |dump_eval +#if defined(DUMP_FDS) +p |void |dump_fds |char* s +#endif +p |void |dump_form |GV* gv +p |void |gv_dump |GV* gv +p |void |op_dump |OP* arg +p |void |pmop_dump |PMOP* pm +p |void |dump_packsubs |HV* stash +p |void |dump_sub |GV* gv +p |void |fbm_compile |SV* sv|U32 flags +p |char* |fbm_instr |unsigned char* big|unsigned char* bigend \ + |SV* littlesv|U32 flags +p |char* |find_script |char *scriptname|bool dosearch \ + |char **search_ext|I32 flags +#if defined(USE_THREADS) +p |PADOFFSET|find_threadsv|const char *name +#endif +p |OP* |force_list |OP* arg +p |OP* |fold_constants |OP* arg +p |char* |form |const char* pat|... +p |void |free_tmps +p |OP* |gen_constant_list|OP* o +#if !defined(HAS_GETENV_LEN) +p |char* |getenv_len |char* key|unsigned long *len +#endif +p |void |gp_free |GV* gv +p |GP* |gp_ref |GP* gp +p |GV* |gv_AVadd |GV* gv +p |GV* |gv_HVadd |GV* gv +p |GV* |gv_IOadd |GV* gv +p |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \ + |I32 method +p |void |gv_check |HV* stash +p |void |gv_efullname |SV* sv|GV* gv +p |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix +p |GV* |gv_fetchfile |const char* name +p |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \ + |I32 level +p |GV* |gv_fetchmethod |HV* stash|const char* name +p |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \ + |I32 autoload +p |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type +p |void |gv_fullname |SV* sv|GV* gv +p |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix +p |void |gv_init |GV* gv|HV* stash|const char* name \ + |STRLEN len|int multi +p |HV* |gv_stashpv |const char* name|I32 create +p |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create +p |HV* |gv_stashsv |SV* sv|I32 create +p |void |hv_clear |HV* tb +p |void |hv_delayfree_ent|HV* hv|HE* entry +p |SV* |hv_delete |HV* tb|const char* key|U32 klen|I32 flags +p |SV* |hv_delete_ent |HV* tb|SV* key|I32 flags|U32 hash +p |bool |hv_exists |HV* tb|const char* key|U32 klen +p |bool |hv_exists_ent |HV* tb|SV* key|U32 hash +p |SV** |hv_fetch |HV* tb|const char* key|U32 klen|I32 lval +p |HE* |hv_fetch_ent |HV* tb|SV* key|I32 lval|U32 hash +p |void |hv_free_ent |HV* hv|HE* entry +p |I32 |hv_iterinit |HV* tb +p |char* |hv_iterkey |HE* entry|I32* retlen +p |SV* |hv_iterkeysv |HE* entry +p |HE* |hv_iternext |HV* tb +p |SV* |hv_iternextsv |HV* hv|char** key|I32* retlen +p |SV* |hv_iterval |HV* tb|HE* entry +p |void |hv_ksplit |HV* hv|IV newmax +p |void |hv_magic |HV* hv|GV* gv|int how +p |SV** |hv_store |HV* tb|const char* key|U32 klen|SV* val \ + |U32 hash +p |HE* |hv_store_ent |HV* tb|SV* key|SV* val|U32 hash +p |void |hv_undef |HV* tb +p |I32 |ibcmp |const char* a|const char* b|I32 len +p |I32 |ibcmp_locale |const char* a|const char* b|I32 len +p |I32 |ingroup |I32 testgid|I32 effective +p |void |init_stacks +p |U32 |intro_my +p |char* |instr |const char* big|const char* little +p |bool |io_close |IO* io +p |OP* |invert |OP* cmd +p |bool |is_uni_alnum |U32 c +p |bool |is_uni_idfirst |U32 c +p |bool |is_uni_alpha |U32 c +p |bool |is_uni_space |U32 c +p |bool |is_uni_digit |U32 c +p |bool |is_uni_upper |U32 c +p |bool |is_uni_lower |U32 c +p |bool |is_uni_print |U32 c +p |U32 |to_uni_upper |U32 c +p |U32 |to_uni_title |U32 c +p |U32 |to_uni_lower |U32 c +p |bool |is_uni_alnum_lc|U32 c +p |bool |is_uni_idfirst_lc|U32 c +p |bool |is_uni_alpha_lc|U32 c +p |bool |is_uni_space_lc|U32 c +p |bool |is_uni_digit_lc|U32 c +p |bool |is_uni_upper_lc|U32 c +p |bool |is_uni_lower_lc|U32 c +p |bool |is_uni_print_lc|U32 c +p |U32 |to_uni_upper_lc|U32 c +p |U32 |to_uni_title_lc|U32 c +p |U32 |to_uni_lower_lc|U32 c +p |bool |is_utf8_alnum |U8 *p +p |bool |is_utf8_idfirst|U8 *p +p |bool |is_utf8_alpha |U8 *p +p |bool |is_utf8_space |U8 *p +p |bool |is_utf8_digit |U8 *p +p |bool |is_utf8_upper |U8 *p +p |bool |is_utf8_lower |U8 *p +p |bool |is_utf8_print |U8 *p +p |bool |is_utf8_mark |U8 *p +p |OP* |jmaybe |OP* arg +p |I32 |keyword |char* d|I32 len +p |void |leave_scope |I32 base +p |void |lex_end +p |void |lex_start |SV* line +p |OP* |linklist |OP* o +p |OP* |list |OP* o +p |OP* |listkids |OP* o +p |OP* |localize |OP* arg|I32 lexical +p |I32 |looks_like_number|SV* sv +p |int |magic_clearenv |SV* sv|MAGIC* mg +p |int |magic_clear_all_env|SV* sv|MAGIC* mg +p |int |magic_clearpack|SV* sv|MAGIC* mg +p |int |magic_clearsig |SV* sv|MAGIC* mg +p |int |magic_existspack|SV* sv|MAGIC* mg +p |int |magic_freeregexp|SV* sv|MAGIC* mg +p |int |magic_get |SV* sv|MAGIC* mg +p |int |magic_getarylen|SV* sv|MAGIC* mg +p |int |magic_getdefelem|SV* sv|MAGIC* mg +p |int |magic_getglob |SV* sv|MAGIC* mg +p |int |magic_getnkeys |SV* sv|MAGIC* mg +p |int |magic_getpack |SV* sv|MAGIC* mg +p |int |magic_getpos |SV* sv|MAGIC* mg +p |int |magic_getsig |SV* sv|MAGIC* mg +p |int |magic_getsubstr|SV* sv|MAGIC* mg +p |int |magic_gettaint |SV* sv|MAGIC* mg +p |int |magic_getuvar |SV* sv|MAGIC* mg +p |int |magic_getvec |SV* sv|MAGIC* mg +p |U32 |magic_len |SV* sv|MAGIC* mg +#if defined(USE_THREADS) +p |int |magic_mutexfree|SV* sv|MAGIC* mg +#endif +p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key +p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg +p |int |magic_regdatum_get|SV* sv|MAGIC* mg +p |int |magic_set |SV* sv|MAGIC* mg +p |int |magic_setamagic|SV* sv|MAGIC* mg +p |int |magic_setarylen|SV* sv|MAGIC* mg +p |int |magic_setbm |SV* sv|MAGIC* mg +p |int |magic_setdbline|SV* sv|MAGIC* mg +#if defined(USE_LOCALE_COLLATE) +p |int |magic_setcollxfrm|SV* sv|MAGIC* mg +#endif +p |int |magic_setdefelem|SV* sv|MAGIC* mg +p |int |magic_setenv |SV* sv|MAGIC* mg +p |int |magic_setfm |SV* sv|MAGIC* mg +p |int |magic_setisa |SV* sv|MAGIC* mg +p |int |magic_setglob |SV* sv|MAGIC* mg +p |int |magic_setmglob |SV* sv|MAGIC* mg +p |int |magic_setnkeys |SV* sv|MAGIC* mg +p |int |magic_setpack |SV* sv|MAGIC* mg +p |int |magic_setpos |SV* sv|MAGIC* mg +p |int |magic_setsig |SV* sv|MAGIC* mg +p |int |magic_setsubstr|SV* sv|MAGIC* mg +p |int |magic_settaint |SV* sv|MAGIC* mg +p |int |magic_setuvar |SV* sv|MAGIC* mg +p |int |magic_setvec |SV* sv|MAGIC* mg +p |int |magic_set_all_env|SV* sv|MAGIC* mg +p |U32 |magic_sizepack |SV* sv|MAGIC* mg +p |int |magic_wipepack |SV* sv|MAGIC* mg +p |void |magicname |char* sym|char* name|I32 namlen +no |int |main |int argc|char** argv|char** env +#if defined(MYMALLOC) +np |MEM_SIZE|malloced_size |void *p +#endif +p |void |markstack_grow +#if defined(USE_LOCALE_COLLATE) +p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen +#endif +p |SV* |mess |const char* pat|va_list* args +p |int |mg_clear |SV* sv +p |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen +p |MAGIC* |mg_find |SV* sv|int type +p |int |mg_free |SV* sv +p |int |mg_get |SV* sv +p |U32 |mg_length |SV* sv +p |void |mg_magical |SV* sv +p |int |mg_set |SV* sv +p |I32 |mg_size |SV* sv +p |OP* |mod |OP* o|I32 type +p |char* |moreswitches |char* s +p |OP* |my |OP* o +#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY) +p |char* |my_bcopy |const char* from|char* to|I32 len +#endif +#if !defined(HAS_BZERO) && !defined(HAS_MEMSET) +p |char* |my_bzero |char* loc|I32 len +#endif +pr |void |my_exit |U32 status +pr |void |my_failure_exit +p |I32 |my_fflush_all +p |I32 |my_lstat +#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP) +p |I32 |my_memcmp |const char* s1|const char* s2|I32 len +#endif +#if !defined(HAS_MEMSET) +p |void* |my_memset |char* loc|I32 ch|I32 len +#endif +#if !defined(PERL_OBJECT) +p |I32 |my_pclose |PerlIO* ptr +p |PerlIO*|my_popen |char* cmd|char* mode +#endif +p |void |my_setenv |char* nam|char* val +p |I32 |my_stat +#if defined(MYSWAP) +p |short |my_swap |short s +p |long |my_htonl |long l +p |long |my_ntohl |long l +#endif +p |void |my_unexec +p |OP* |newANONLIST |OP* o +p |OP* |newANONHASH |OP* o +p |OP* |newANONSUB |I32 floor|OP* proto|OP* block +p |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right +p |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop +p |void |newCONSTSUB |HV* stash|char* name|SV* sv +p |void |newFORM |I32 floor|OP* o|OP* block +p |OP* |newFOROP |I32 flags|char* label|line_t forline \ + |OP* sclr|OP* expr|OP*block|OP*cont +p |OP* |newLOGOP |I32 optype|I32 flags|OP* left|OP* right +p |OP* |newLOOPEX |I32 type|OP* label +p |OP* |newLOOPOP |I32 flags|I32 debuggable|OP* expr|OP* block +p |OP* |newNULLLIST +p |OP* |newOP |I32 optype|I32 flags +p |void |newPROG |OP* o +p |OP* |newRANGE |I32 flags|OP* left|OP* right +p |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop +p |OP* |newSTATEOP |I32 flags|char* label|OP* o +p |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block +p |CV* |newXS |char* name|XSUBADDR_t f|char* filename +p |AV* |newAV +p |OP* |newAVREF |OP* o +p |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last +p |OP* |newCVREF |I32 flags|OP* o +p |OP* |newGVOP |I32 type|I32 flags|GV* gv +p |GV* |newGVgen |char* pack +p |OP* |newGVREF |I32 type|OP* o +p |OP* |newHVREF |OP* o +p |HV* |newHV +p |HV* |newHVhv |HV* hv +p |IO* |newIO +p |OP* |newLISTOP |I32 type|I32 flags|OP* first|OP* last +p |OP* |newPMOP |I32 type|I32 flags +p |OP* |newPVOP |I32 type|I32 flags|char* pv +p |SV* |newRV |SV* pref +p |SV* |newRV_noinc |SV *sv +p |SV* |newSV |STRLEN len +p |OP* |newSVREF |OP* o +p |OP* |newSVOP |I32 type|I32 flags|SV* sv +p |SV* |newSViv |IV i +p |SV* |newSVnv |double n +p |SV* |newSVpv |const char* s|STRLEN len +p |SV* |newSVpvn |const char* s|STRLEN len +p |SV* |newSVpvf |const char* pat|... +p |SV* |newSVrv |SV* rv|const char* classname +p |SV* |newSVsv |SV* old +p |OP* |newUNOP |I32 type|I32 flags|OP* first +p |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \ + |I32 whileline|OP* expr|OP* block|OP* cont +#if defined(USE_THREADS) +p |struct perl_thread*|new_struct_thread|struct perl_thread *t +#endif +p |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems +p |PerlIO*|nextargv |GV* gv +p |char* |ninstr |const char* big|const char* bigend \ + |const char* little|const char* lend +p |OP* |oopsCV |OP* o +p |void |op_free |OP* arg +p |void |package |OP* o +p |PADOFFSET|pad_alloc |I32 optype|U32 tmptype +p |PADOFFSET|pad_allocmy |char* name +p |PADOFFSET|pad_findmy |char* name +p |OP* |oopsAV |OP* o +p |OP* |oopsHV |OP* o +p |void |pad_leavemy |I32 fill +p |SV* |pad_sv |PADOFFSET po +p |void |pad_free |PADOFFSET po +p |void |pad_reset +p |void |pad_swipe |PADOFFSET po +p |void |peep |OP* o +no |PerlInterpreter* |perl_alloc +p |void |call_atexit |ATEXIT_t fn|void *ptr +p |I32 |call_argv |const char* sub_name|I32 flags|char** argv +p |I32 |call_method |const char* methname|I32 flags +p |I32 |call_pv |const char* sub_name|I32 flags +p |I32 |call_sv |SV* sv|I32 flags +no |void |perl_construct |PerlInterpreter* sv_interp +no |void |perl_destruct |PerlInterpreter* sv_interp +p |SV* |eval_pv |const char* p|I32 croak_on_error +p |I32 |eval_sv |SV* sv|I32 flags +no |void |perl_free |PerlInterpreter* sv_interp +p |SV* |get_sv |const char* name|I32 create +p |AV* |get_av |const char* name|I32 create +p |HV* |get_hv |const char* name|I32 create +p |CV* |get_cv |const char* name|I32 create +p |int |init_i18nl10n |int printwarn +p |int |init_i18nl14n |int printwarn +p |void |new_collate |const char* newcoll +p |void |new_ctype |const char* newctype +p |void |new_numeric |const char* newcoll +p |void |set_numeric_local +p |void |set_numeric_standard +no |int |perl_parse |PerlInterpreter* sv_interp|XSINIT_t xsinit \ + |int argc|char** argv|char** env +p |void |require_pv |const char* pv +no |int |perl_run |PerlInterpreter* sv_interp +p |void |pidgone |int pid|int status +p |void |pmflag |U16* pmfl|int ch +p |OP* |pmruntime |OP* pm|OP* expr|OP* repl +p |OP* |pmtrans |OP* o|OP* expr|OP* repl +p |OP* |pop_return +p |void |pop_scope +p |OP* |prepend_elem |I32 optype|OP* head|OP* tail +p |void |push_return |OP* o +p |void |push_scope +p |OP* |ref |OP* o|I32 type +p |OP* |refkids |OP* o|I32 type +p |void |regdump |regexp* r +p |I32 |pregexec |regexp* prog|char* stringarg \ + |char* strend|char* strbeg|I32 minend \ + |SV* screamer|U32 nosave +p |void |pregfree |struct regexp* r +p |regexp*|pregcomp |char* exp|char* xend|PMOP* pm +p |I32 |regexec_flags |regexp* prog|char* stringarg \ + |char* strend|char* strbeg|I32 minend \ + |SV* screamer|void* data|U32 flags +p |regnode*|regnext |regnode* p +p |void |regprop |SV* sv|regnode* o +p |void |repeatcpy |char* to|const char* from|I32 len|I32 count +p |char* |rninstr |const char* big|const char* bigend \ + |const char* little|const char* lend +p |Sighandler_t|rsignal |int i|Sighandler_t t +p |int |rsignal_restore|int i|Sigsave_t* t +p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2 +p |Sighandler_t|rsignal_state|int i +p |void |rxres_free |void** rsp +p |void |rxres_restore |void** rsp|REGEXP* prx +p |void |rxres_save |void** rsp|REGEXP* prx +#if !defined(HAS_RENAME) +p |I32 |same_dirent |char* a|char* b +#endif +p |char* |savepv |const char* sv +p |char* |savepvn |const char* sv|I32 len +p |void |savestack_grow +p |void |save_aelem |AV* av|I32 idx|SV **sptr +p |I32 |save_alloc |I32 size|I32 pad +p |void |save_aptr |AV** aptr +p |AV* |save_ary |GV* gv +p |void |save_clearsv |SV** svp +p |void |save_delete |HV* hv|char* key|I32 klen +p |void |save_destructor|DESTRUCTORFUNC_t f|void* p +p |void |save_freesv |SV* sv +p |void |save_freeop |OP* o +p |void |save_freepv |char* pv +p |void |save_generic_svref|SV** sptr +p |void |save_gp |GV* gv|I32 empty +p |HV* |save_hash |GV* gv +p |void |save_helem |HV* hv|SV *key|SV **sptr +p |void |save_hints +p |void |save_hptr |HV** hptr +p |void |save_I16 |I16* intp +p |void |save_I32 |I32* intp +p |void |save_int |int* intp +p |void |save_item |SV* item +p |void |save_iv |IV* iv +p |void |save_list |SV** sarg|I32 maxsarg +p |void |save_long |long* longp +p |void |save_nogv |GV* gv +p |void |save_op +p |SV* |save_scalar |GV* gv +p |void |save_pptr |char** pptr +p |void |save_re_context +p |void |save_sptr |SV** sptr +p |SV* |save_svref |SV** sptr +p |SV** |save_threadsv |PADOFFSET i +p |OP* |sawparens |OP* o +p |OP* |scalar |OP* o +p |OP* |scalarkids |OP* o +p |OP* |scalarseq |OP* o +p |OP* |scalarvoid |OP* o +p |UV |scan_bin |char* start|I32 len|I32* retlen +p |UV |scan_hex |char* start|I32 len|I32* retlen +p |char* |scan_num |char* s +p |UV |scan_oct |char* start|I32 len|I32* retlen +p |OP* |scope |OP* o +p |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \ + |I32 end_shift|I32 *state|I32 last +#if !defined(VMS) +p |I32 |setenv_getix |char* nam +#endif +p |void |setdefout |GV* gv +p |char* |sharepvn |const char* sv|I32 len|U32 hash +p |HEK* |share_hek |const char* sv|I32 len|U32 hash +np |Signal_t |sighandler |int sig +p |SV** |stack_grow |SV** sp|SV**p|int n +p |I32 |start_subparse |I32 is_format|U32 flags +p |void |sub_crush_depth|CV* cv +p |bool |sv_2bool |SV* sv +p |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref +p |IO* |sv_2io |SV* sv +p |IV |sv_2iv |SV* sv +p |SV* |sv_2mortal |SV* sv +p |double |sv_2nv |SV* sv +p |char* |sv_2pv |SV* sv|STRLEN* lp +p |UV |sv_2uv |SV* sv +p |IV |sv_iv |SV* sv +p |UV |sv_uv |SV* sv +p |double |sv_nv |SV* sv +p |char* |sv_pvn |SV *sv|STRLEN *len +p |I32 |sv_true |SV *sv +p |void |sv_add_arena |char* ptr|U32 size|U32 flags +p |int |sv_backoff |SV* sv +p |SV* |sv_bless |SV* sv|HV* stash +p |void |sv_catpvf |SV* sv|const char* pat|... +p |void |sv_catpv |SV* sv|const char* ptr +p |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len +p |void |sv_catsv |SV* dsv|SV* ssv +p |void |sv_chop |SV* sv|char* ptr +p |void |sv_clean_all +p |void |sv_clean_objs +p |void |sv_clear |SV* sv +p |I32 |sv_cmp |SV* sv1|SV* sv2 +p |I32 |sv_cmp_locale |SV* sv1|SV* sv2 +#if defined(USE_LOCALE_COLLATE) +p |char* |sv_collxfrm |SV* sv|STRLEN* nxp +#endif +p |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp +p |void |sv_dec |SV* sv +p |void |sv_dump |SV* sv +p |bool |sv_derived_from|SV* sv|const char* name +p |I32 |sv_eq |SV* sv1|SV* sv2 +p |void |sv_free |SV* sv +p |void |sv_free_arenas +p |char* |sv_gets |SV* sv|PerlIO* fp|I32 append +p |char* |sv_grow |SV* sv|STRLEN newlen +p |void |sv_inc |SV* sv +p |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \ + |char* little|STRLEN littlelen +p |int |sv_isa |SV* sv|const char* name +p |int |sv_isobject |SV* sv +p |STRLEN |sv_len |SV* sv +p |STRLEN |sv_len_utf8 |SV* sv +p |void |sv_magic |SV* sv|SV* obj|int how|const char* name \ + |I32 namlen +p |SV* |sv_mortalcopy |SV* oldsv +p |SV* |sv_newmortal +p |SV* |sv_newref |SV* sv +p |char* |sv_peek |SV* sv +p |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp +p |void |sv_pos_b2u |SV* sv|I32* offsetp +p |char* |sv_pvn_force |SV* sv|STRLEN* lp +p |char* |sv_reftype |SV* sv|int ob +p |void |sv_replace |SV* sv|SV* nsv +p |void |sv_report_used +p |void |sv_reset |char* s|HV* stash +p |void |sv_setpvf |SV* sv|const char* pat|... +p |void |sv_setiv |SV* sv|IV num +p |void |sv_setpviv |SV* sv|IV num +p |void |sv_setuv |SV* sv|UV num +p |void |sv_setnv |SV* sv|double num +p |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv +p |SV* |sv_setref_nv |SV* rv|const char* classname|double nv +p |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv +p |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \ + |STRLEN n +p |void |sv_setpv |SV* sv|const char* ptr +p |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len +p |void |sv_setsv |SV* dsv|SV* ssv +p |void |sv_taint |SV* sv +p |bool |sv_tainted |SV* sv +p |int |sv_unmagic |SV* sv|int type +p |void |sv_unref |SV* sv +p |void |sv_untaint |SV* sv +p |bool |sv_upgrade |SV* sv|U32 mt +p |void |sv_usepvn |SV* sv|char* ptr|STRLEN len +p |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \ + |va_list* args|SV** svargs|I32 svmax \ + |bool *used_locale +p |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \ + |va_list* args|SV** svargs|I32 svmax \ + |bool *used_locale +p |SV* |swash_init |char* pkg|char* name|SV* listsv \ + |I32 minbits|I32 none +p |UV |swash_fetch |SV *sv|U8 *ptr +p |void |taint_env +p |void |taint_proper |const char* f|char* s +p |UV |to_utf8_lower |U8 *p +p |UV |to_utf8_upper |U8 *p +p |UV |to_utf8_title |U8 *p +#if defined(UNLINK_ALL_VERSIONS) +p |I32 |unlnk |char* f +#endif +#if defined(USE_THREADS) +p |void |unlock_condpair|void* svv +#endif +p |void |unsharepvn |const char* sv|I32 len|U32 hash +p |void |unshare_hek |HEK* hek +p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg +p |U8* |utf16_to_utf8 |U16* p|U8 *d|I32 bytelen +p |U8* |utf16_to_utf8_reversed|U16* p|U8 *d|I32 bytelen +p |I32 |utf8_distance |U8 *a|U8 *b +p |U8* |utf8_hop |U8 *s|I32 off +p |UV |utf8_to_uv |U8 *s|I32* retlen +p |U8* |uv_to_utf8 |U8 *d|UV uv +p |void |vivify_defelem |SV* sv +p |void |vivify_ref |SV* sv|U32 to_what +p |I32 |wait4pid |int pid|int* statusp|int flags +p |void |warn |const char* pat|... +p |void |warner |U32 err|const char* pat|... +p |void |watch |char** addr +p |I32 |whichsig |char* sig +p |int |yyerror |char* s +#if defined(USE_PURE_BISON) +p |int |yylex |YYSTYPE *lvalp|int *lcharp +#else +p |int |yylex +#endif +p |int |yyparse +p |int |yywarn |char* s +#if defined(MYMALLOC) +p |void |dump_mstats |char* s +pno |Malloc_t|malloc |MEM_SIZE nbytes +pno |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size +pno |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes +pno |Free_t |mfree |Malloc_t where +#endif +p |Malloc_t|safesysmalloc |MEM_SIZE nbytes +p |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size +p |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes +p |Free_t |safesysfree |Malloc_t where +#if defined(LEAKTEST) +p |Malloc_t|safexmalloc |I32 x|MEM_SIZE size +p |Malloc_t|safexcalloc |I32 x|MEM_SIZE elements|MEM_SIZE size +p |Malloc_t|safexrealloc |Malloc_t where|MEM_SIZE size +p |void |safexfree |Malloc_t where +#endif +#if defined(PERL_GLOBAL_STRUCT) +p |struct perl_vars *|GetVars +#endif +p |void |yydestruct |void *ptr +p |int |runops_standard +p |int |runops_debug + +#if defined(WIN32) +p |int& |ErrorNo +#endif +p |void |sv_catpvf_mg |SV *sv|const char* pat|... +p |void |sv_catpv_mg |SV *sv|const char *ptr +p |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len +p |void |sv_catsv_mg |SV *dstr|SV *sstr +p |void |sv_setpvf_mg |SV *sv|const char* pat|... +p |void |sv_setiv_mg |SV *sv|IV i +p |void |sv_setpviv_mg |SV *sv|IV iv +p |void |sv_setuv_mg |SV *sv|UV u +p |void |sv_setnv_mg |SV *sv|double num +p |void |sv_setpv_mg |SV *sv|const char *ptr +p |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len +p |void |sv_setsv_mg |SV *dstr|SV *sstr +p |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len +p |MGVTBL*|get_vtbl |int vtbl_id +p |char* |pv_display |SV *sv|char *pv|STRLEN cur|STRLEN len \ + |STRLEN pvlim +p |void |dump_indent |I32 level|PerlIO *file|const char* pat|... +p |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv +p |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv +p |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv +p |void |do_magic_dump |I32 level|PerlIO *file|MAGIC *mg|I32 nest \ + |I32 maxnest|bool dumpops|STRLEN pvlim +p |void |do_op_dump |I32 level|PerlIO *file|OP *o +p |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm +p |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \ + |I32 maxnest|bool dumpops|STRLEN pvlim +p |void |magic_dump |MAGIC *mg +p |void* |default_protect|int *excpt|protect_body_t body|... +p |void |reginitcolors +p |char* |sv_2pv_nolen |SV* sv +p |char* |sv_pv |SV *sv +p |void |sv_force_normal|SV *sv +p |void |tmps_grow |I32 n +p |SV* |sv_rvweaken |SV *sv +p |int |magic_killbackrefs|SV *sv|MAGIC *mg + +#if defined(PERL_IN_AV_C) +s |I32 |avhv_index_sv |SV* sv +#endif + +#if defined(PERL_IN_DOOP_C) +s |I32 |do_trans_CC_simple |SV *sv +s |I32 |do_trans_CC_count |SV *sv +s |I32 |do_trans_CC_complex |SV *sv +s |I32 |do_trans_UU_simple |SV *sv +s |I32 |do_trans_UU_count |SV *sv +s |I32 |do_trans_UU_complex |SV *sv +s |I32 |do_trans_UC_simple |SV *sv +s |I32 |do_trans_CU_simple |SV *sv +s |I32 |do_trans_UC_trivial |SV *sv +s |I32 |do_trans_CU_trivial |SV *sv +#endif + +#if defined(PERL_IN_GLOBALS_C) +# if defined(WIN32) +s |int |do_aspawn |void *vreally|void **vmark|void **vsp +# endif +#endif + +#if defined(PERL_IN_GV_C) +s |void |gv_init_sv |GV *gv|I32 sv_type +#endif + +#if defined(PERL_IN_HV_C) +s |void |hsplit |HV *hv +s |void |hfreeentries |HV *hv +s |void |more_he +s |HE* |new_he +s |void |del_he |HE *p +s |HEK* |save_hek |const char *str|I32 len|U32 hash +s |void |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store +#endif + +#if defined(PERL_IN_MG_C) +s |void |save_magic |I32 mgs_ix|SV *sv +s |int |magic_methpack |SV *sv|MAGIC *mg|char *meth +s |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \ + |int n|SV *val +s |void |unwind_handler_stack |void *p +s |void |restore_magic |void *p +#endif + +#if defined(PERL_IN_OP_C) +s |I32 |list_assignment|OP *o +s |void |bad_type |I32 n|char *t|char *name|OP *kid +s |OP* |modkids |OP *o|I32 type +s |void |no_bareword_allowed|OP *o +s |OP* |no_fh_allowed |OP *o +s |OP* |scalarboolean |OP *o +s |OP* |too_few_arguments|OP *o|char* name +s |OP* |too_many_arguments|OP *o|char* name +s |void |null |OP* o +s |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \ + |CV* startcv|I32 cx_ix|I32 saweval|U32 flags +s |OP* |newDEFSVOP +s |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp +s |void |simplify_sort |OP *o +s |bool |is_handle_constructor |OP *o|I32 argnum +s |char* |gv_ename |GV *gv +s |CV* |cv_clone2 |CV *proto|CV *outside +s |bool |scalar_mod_type|OP *o|I32 type +# if defined(PL_OP_SLAB_ALLOC) +s |void* |Slab_Alloc |int m|size_t sz +# endif +#endif + +#if defined(PERL_IN_PERL_C) +s |void |find_beginning +s |void |forbid_setid |char * +s |void |incpush |char *|int +s |void |init_interp +s |void |init_ids +s |void |init_debugger +s |void |init_lexer +s |void |init_main_stash +s |void |init_perllib +s |void |init_postdump_symbols|int|char **|char ** +s |void |init_predump_symbols +rs |void |my_exit_jump +s |void |nuke_stacks +s |void |open_script |char *|bool|SV *|int *fd +s |void |usage |char * +s |void |validate_suid |char *|char*|int +s |I32 |read_e_script |int idx|SV *buf_sv|int maxlen +# if defined(IAMSUID) +s |int |fd_on_nosuid_fs|int fd +# endif +s |void* |parse_body |va_list args +s |void* |run_body |va_list args +s |void* |call_body |va_list args +s |void |call_xbody |OP *myop|int is_eval +s |void* |call_list_body |va_list args +# if defined(USE_THREADS) +s |struct perl_thread * |init_main_thread +# endif +#endif + +#if defined(PERL_IN_PP_C) +s |void |doencodes |SV* sv|char* s|I32 len +s |SV* |refto |SV* sv +s |U32 |seed +s |SV* |mul128 |SV *sv|U8 m +s |SV* |is_an_int |char *s|STRLEN l +s |int |div128 |SV *pnum|bool *done +#endif + +#if defined(PERL_IN_PP_CTL_C) +s |OP* |docatch |OP *o +s |void* |docatch_body |va_list args +s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit +s |void |doparseform |SV *sv +s |I32 |dopoptoeval |I32 startingblock +s |I32 |dopoptolabel |char *label +s |I32 |dopoptoloop |I32 startingblock +s |I32 |dopoptosub |I32 startingblock +s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock +s |void |free_closures +s |void |save_lines |AV *array|SV *sv +s |OP* |doeval |int gimme|OP** startop +s |PerlIO *|doopen_pmc |const char *name|const char *mode +s |void |qsortsv |SV ** array|size_t num_elts|SVCOMPARE_t f +s |I32 |sortcv |SV *a|SV *b +s |I32 |sv_ncmp |SV *a|SV *b +s |I32 |sv_i_ncmp |SV *a|SV *b +s |I32 |amagic_ncmp |SV *a|SV *b +s |I32 |amagic_i_ncmp |SV *a|SV *b +s |I32 |amagic_cmp |SV *str1|SV *str2 +s |I32 |amagic_cmp_locale|SV *str1|SV *str2 +#endif + +#if defined(PERL_IN_PP_HOT_C) +s |CV* |get_db_sub |SV **svp|CV *cv +# if defined(USE_THREADS) +s |void |unset_cvowner |void *cvarg +# endif +#endif + +#if defined(PERL_IN_PP_SYS_C) +s |OP* |doform |CV *cv|GV *gv|OP *retop +s |int |emulate_eaccess|const char* path|int mode +# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +s |int |dooneliner |char *cmd|char *filename +# endif +#endif + +#if defined(PERL_IN_REGCOMP_C) +s |regnode*|reg |I32|I32 * +s |regnode*|reganode |U8|U32 +s |regnode*|regatom |I32 * +s |regnode*|regbranch |I32 *|I32 +s |void |regc |U8|char * +s |void |reguni |UV|char *|I32* +s |regnode*|regclass +s |regnode*|regclassutf8 +s |I32 |regcurly |char * +s |regnode*|reg_node |U8 +s |regnode*|regpiece |I32 * +s |void |reginsert |U8|regnode * +s |void |regoptail |regnode *|regnode * +s |void |regtail |regnode *|regnode * +s |char*|regwhite |char *|char * +s |char*|nextchar +s |regnode*|dumpuntil |regnode *start|regnode *node \ + |regnode *last|SV* sv|I32 l +s |void |scan_commit |scan_data_t *data +s |I32 |study_chunk |regnode **scanp|I32 *deltap \ + |regnode *last|scan_data_t *data|U32 flags +s |I32 |add_data |I32 n|char *s +rs |void|re_croak2 |const char* pat1|const char* pat2|... +s |char*|regpposixcc |I32 value +s |void |clear_re |void *r +#endif + +#if defined(PERL_IN_REGEXEC_C) +s |I32 |regmatch |regnode *prog +s |I32 |regrepeat |regnode *p|I32 max +s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp +s |I32 |regtry |regexp *prog|char *startpos +s |bool |reginclass |char *p|I32 c +s |bool |reginclassutf8 |regnode *f|U8* p +s |CHECKPOINT|regcppush |I32 parenfloor +s |char*|regcppop +s |char*|regcp_set_to |I32 ss +s |void |cache_re |regexp *prog +s |void |restore_pos |void *arg +s |U8* |reghop |U8 *pos|I32 off +s |U8* |reghopmaybe |U8 *pos|I32 off +#endif + +#if defined(PERL_IN_RUN_C) +s |void |debprof |OP *o +#endif + +#if defined(PERL_IN_SCOPE_C) +s |SV* |save_scalar_at |SV **sptr +#endif + +#if defined(PERL_IN_SV_C) +s |IV |asIV |SV* sv +s |UV |asUV |SV* sv +s |SV* |more_sv +s |void |more_xiv +s |void |more_xnv +s |void |more_xpv +s |void |more_xrv +s |XPVIV* |new_xiv +s |XPVNV* |new_xnv +s |XPV* |new_xpv +s |XRV* |new_xrv +s |void |del_xiv |XPVIV* p +s |void |del_xnv |XPVNV* p +s |void |del_xpv |XPV* p +s |void |del_xrv |XRV* p +s |void |sv_unglob |SV* sv +s |void |do_report_used |SV *sv +s |void |do_clean_objs |SV *sv +s |void |do_clean_named_objs|SV *sv +s |void |do_clean_all |SV *sv +s |void |not_a_number |SV *sv +s |void |visit |SVFUNC_t f +# if defined(PURIFY) +s |void |reg_add |SV *sv +s |void |reg_remove |SV *sv +# else +s |void* |my_safemalloc |MEM_SIZE size +# endif +s |void |sv_add_backref |SV *tsv|SV *sv +s |void |sv_del_backref |SV *sv +# if defined(DEBUGGING) +s |void |del_sv |SV *p +# endif +#endif + +#if defined(PERL_IN_TOKE_C) +s |void |check_uni +s |void |force_next |I32 type +s |char* |force_version |char *start +s |char* |force_word |char *start|int token|int check_keyword \ + |int allow_pack|int allow_tick +s |SV* |tokeq |SV *sv +s |char* |scan_const |char *start +s |char* |scan_formline |char *s +s |char* |scan_heredoc |char *s +s |char* |scan_ident |char *s|char *send|char *dest \ + |STRLEN destlen|I32 ck_uni +s |char* |scan_inputsymbol|char *start +s |char* |scan_pat |char *start|I32 type +s |char* |scan_str |char *start +s |char* |scan_subst |char *start +s |char* |scan_trans |char *start +s |char* |scan_word |char *s|char *dest|STRLEN destlen \ + |int allow_package|STRLEN *slp +s |char* |skipspace |char *s +s |void |checkcomma |char *s|char *name|char *what +s |void |force_ident |char *s|int kind +s |void |incline |char *s +s |int |intuit_method |char *s|GV *gv +s |int |intuit_more |char *s +s |I32 |lop |I32 f|expectation x|char *s +s |void |missingterm |char *s +s |void |no_op |char *what|char *s +s |void |set_csh +s |I32 |sublex_done +s |I32 |sublex_push +s |I32 |sublex_start +s |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append +s |SV* |new_constant |char *s|STRLEN len|char *key|SV *sv \ + |SV *pv|char *type +s |int |ao |int toketype +s |void |depcom +s |char* |incl_perldb +s |I32 |utf16_textfilter|int idx|SV *sv|int maxlen +s |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen +s |void |restore_rsfp |void *f +s |void |restore_expect |void *e +s |void |restore_lex_expect |void *e +# if defined(CRIPPLED_CC) +s |int |uni |I32 f|char *s +# endif +# if defined(WIN32) +s |I32 |win32_textfilter |int idx|SV *sv|int maxlen +# endif +#endif + +#if defined(PERL_IN_UNIVERSAL_C) +s |SV*|isa_lookup |HV *stash|const char *name|int len|int level +#endif + +#if defined(PERL_IN_UTIL_C) +s |SV* |mess_alloc +rs |void |do_croak |const char *pat|va_list *args +s |void |do_warn |const char *pat|va_list *args +# if defined(LEAKTEST) +s |void |xstat |int +# endif +#endif diff --git a/embedvar.h b/embedvar.h index f9bd011..ed529ad 100644 --- a/embedvar.h +++ b/embedvar.h @@ -1,5 +1,5 @@ /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by embed.pl from global.sym, pp.sym, intrpvar.h, + This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -12,6 +12,137 @@ #ifndef USE_THREADS /* If we do not have threads then per-thread vars are per-interpreter */ +#ifdef PERL_IMPLICIT_CONTEXT + +/* everything has an implicit context pointer */ + +#define PL_Sv (my_perl->TSv) +#define PL_Xpv (my_perl->TXpv) +#define PL_av_fetch_sv (my_perl->Tav_fetch_sv) +#define PL_bodytarget (my_perl->Tbodytarget) +#define PL_bostr (my_perl->Tbostr) +#define PL_chopset (my_perl->Tchopset) +#define PL_colors (my_perl->Tcolors) +#define PL_colorset (my_perl->Tcolorset) +#define PL_curcop (my_perl->Tcurcop) +#define PL_curpad (my_perl->Tcurpad) +#define PL_curpm (my_perl->Tcurpm) +#define PL_curstack (my_perl->Tcurstack) +#define PL_curstackinfo (my_perl->Tcurstackinfo) +#define PL_curstash (my_perl->Tcurstash) +#define PL_defoutgv (my_perl->Tdefoutgv) +#define PL_defstash (my_perl->Tdefstash) +#define PL_delaymagic (my_perl->Tdelaymagic) +#define PL_dirty (my_perl->Tdirty) +#define PL_dumpindent (my_perl->Tdumpindent) +#define PL_extralen (my_perl->Textralen) +#define PL_firstgv (my_perl->Tfirstgv) +#define PL_formtarget (my_perl->Tformtarget) +#define PL_hv_fetch_ent_mh (my_perl->Thv_fetch_ent_mh) +#define PL_hv_fetch_sv (my_perl->Thv_fetch_sv) +#define PL_in_eval (my_perl->Tin_eval) +#define PL_last_in_gv (my_perl->Tlast_in_gv) +#define PL_lastgotoprobe (my_perl->Tlastgotoprobe) +#define PL_lastscream (my_perl->Tlastscream) +#define PL_localizing (my_perl->Tlocalizing) +#define PL_mainstack (my_perl->Tmainstack) +#define PL_markstack (my_perl->Tmarkstack) +#define PL_markstack_max (my_perl->Tmarkstack_max) +#define PL_markstack_ptr (my_perl->Tmarkstack_ptr) +#define PL_maxscream (my_perl->Tmaxscream) +#define PL_modcount (my_perl->Tmodcount) +#define PL_na (my_perl->Tna) +#define PL_nrs (my_perl->Tnrs) +#define PL_ofs (my_perl->Tofs) +#define PL_ofslen (my_perl->Tofslen) +#define PL_op (my_perl->Top) +#define PL_opsave (my_perl->Topsave) +#define PL_protect (my_perl->Tprotect) +#define PL_reg_call_cc (my_perl->Treg_call_cc) +#define PL_reg_curpm (my_perl->Treg_curpm) +#define PL_reg_eval_set (my_perl->Treg_eval_set) +#define PL_reg_flags (my_perl->Treg_flags) +#define PL_reg_ganch (my_perl->Treg_ganch) +#define PL_reg_magic (my_perl->Treg_magic) +#define PL_reg_oldcurpm (my_perl->Treg_oldcurpm) +#define PL_reg_oldpos (my_perl->Treg_oldpos) +#define PL_reg_oldsaved (my_perl->Treg_oldsaved) +#define PL_reg_oldsavedlen (my_perl->Treg_oldsavedlen) +#define PL_reg_re (my_perl->Treg_re) +#define PL_reg_start_tmp (my_perl->Treg_start_tmp) +#define PL_reg_start_tmpl (my_perl->Treg_start_tmpl) +#define PL_reg_starttry (my_perl->Treg_starttry) +#define PL_reg_sv (my_perl->Treg_sv) +#define PL_regbol (my_perl->Tregbol) +#define PL_regcc (my_perl->Tregcc) +#define PL_regcode (my_perl->Tregcode) +#define PL_regcomp_parse (my_perl->Tregcomp_parse) +#define PL_regcomp_rx (my_perl->Tregcomp_rx) +#define PL_regcompp (my_perl->Tregcompp) +#define PL_regdata (my_perl->Tregdata) +#define PL_regdummy (my_perl->Tregdummy) +#define PL_regendp (my_perl->Tregendp) +#define PL_regeol (my_perl->Tregeol) +#define PL_regexecp (my_perl->Tregexecp) +#define PL_regflags (my_perl->Tregflags) +#define PL_regindent (my_perl->Tregindent) +#define PL_reginput (my_perl->Treginput) +#define PL_reginterp_cnt (my_perl->Treginterp_cnt) +#define PL_reglastparen (my_perl->Treglastparen) +#define PL_regnarrate (my_perl->Tregnarrate) +#define PL_regnaughty (my_perl->Tregnaughty) +#define PL_regnpar (my_perl->Tregnpar) +#define PL_regprecomp (my_perl->Tregprecomp) +#define PL_regprev (my_perl->Tregprev) +#define PL_regprogram (my_perl->Tregprogram) +#define PL_regsawback (my_perl->Tregsawback) +#define PL_regseen (my_perl->Tregseen) +#define PL_regsize (my_perl->Tregsize) +#define PL_regstartp (my_perl->Tregstartp) +#define PL_regtill (my_perl->Tregtill) +#define PL_regxend (my_perl->Tregxend) +#define PL_restartop (my_perl->Trestartop) +#define PL_retstack (my_perl->Tretstack) +#define PL_retstack_ix (my_perl->Tretstack_ix) +#define PL_retstack_max (my_perl->Tretstack_max) +#define PL_rs (my_perl->Trs) +#define PL_savestack (my_perl->Tsavestack) +#define PL_savestack_ix (my_perl->Tsavestack_ix) +#define PL_savestack_max (my_perl->Tsavestack_max) +#define PL_scopestack (my_perl->Tscopestack) +#define PL_scopestack_ix (my_perl->Tscopestack_ix) +#define PL_scopestack_max (my_perl->Tscopestack_max) +#define PL_screamfirst (my_perl->Tscreamfirst) +#define PL_screamnext (my_perl->Tscreamnext) +#define PL_secondgv (my_perl->Tsecondgv) +#define PL_seen_evals (my_perl->Tseen_evals) +#define PL_seen_zerolen (my_perl->Tseen_zerolen) +#define PL_sortcop (my_perl->Tsortcop) +#define PL_sortcxix (my_perl->Tsortcxix) +#define PL_sortstash (my_perl->Tsortstash) +#define PL_stack_base (my_perl->Tstack_base) +#define PL_stack_max (my_perl->Tstack_max) +#define PL_stack_sp (my_perl->Tstack_sp) +#define PL_start_env (my_perl->Tstart_env) +#define PL_statbuf (my_perl->Tstatbuf) +#define PL_statcache (my_perl->Tstatcache) +#define PL_statgv (my_perl->Tstatgv) +#define PL_statname (my_perl->Tstatname) +#define PL_tainted (my_perl->Ttainted) +#define PL_timesbuf (my_perl->Ttimesbuf) +#define PL_tmps_floor (my_perl->Ttmps_floor) +#define PL_tmps_ix (my_perl->Ttmps_ix) +#define PL_tmps_max (my_perl->Ttmps_max) +#define PL_tmps_stack (my_perl->Ttmps_stack) +#define PL_top_env (my_perl->Ttop_env) +#define PL_toptarget (my_perl->Ttoptarget) +#define PL_watchaddr (my_perl->Twatchaddr) +#define PL_watchok (my_perl->Twatchok) + +#else /* !PERL_IMPLICIT_CONTEXT */ + +/* traditional MULTIPLICITY (intepreter is in a global) */ + #define PL_Sv (PL_curinterp->TSv) #define PL_Xpv (PL_curinterp->TXpv) #define PL_av_fetch_sv (PL_curinterp->Tav_fetch_sv) @@ -135,6 +266,7 @@ #define PL_watchaddr (PL_curinterp->Twatchaddr) #define PL_watchok (PL_curinterp->Twatchok) +#endif /* !PERL_IMPLICIT_CONTEXT */ #endif /* !USE_THREADS */ /* These are always per-interpreter if there is more than one */ diff --git a/ext/B/B.xs b/ext/B/B.xs index 36d61f3..f9193ae 100644 --- a/ext/B/B.xs +++ b/ext/B/B.xs @@ -86,7 +86,7 @@ static int walkoptree_debug = 0; /* Flag for walkoptree debug hook */ static SV *specialsv_list[4]; static opclass -cc_opclass(OP *o) +cc_opclass(pTHX_ OP *o) { if (!o) return OPc_NULL; @@ -188,13 +188,13 @@ cc_opclass(OP *o) } static char * -cc_opclassname(OP *o) +cc_opclassname(pTHX_ OP *o) { - return opclassnames[cc_opclass(o)]; + return opclassnames[cc_opclass(aTHX_ o)]; } static SV * -make_sv_object(SV *arg, SV *sv) +make_sv_object(pTHX_ SV *arg, SV *sv) { char *type = 0; IV iv; @@ -214,14 +214,14 @@ make_sv_object(SV *arg, SV *sv) } static SV * -make_mg_object(SV *arg, MAGIC *mg) +make_mg_object(pTHX_ SV *arg, MAGIC *mg) { sv_setiv(newSVrv(arg, "B::MAGIC"), (IV)mg); return arg; } static SV * -cstring(SV *sv) +cstring(pTHX_ SV *sv) { SV *sstr = newSVpvn("", 0); STRLEN len; @@ -274,7 +274,7 @@ cstring(SV *sv) } static SV * -cchar(SV *sv) +cchar(pTHX_ SV *sv) { SV *sstr = newSVpvn("'", 1); STRLEN n_a; @@ -314,7 +314,7 @@ cchar(SV *sv) } void -walkoptree(SV *opsv, char *method) +walkoptree(pTHX_ SV *opsv, char *method) { dSP; OP *o; @@ -337,8 +337,8 @@ walkoptree(SV *opsv, char *method) OP *kid; for (kid = ((UNOP*)o)->op_first; kid; kid = kid->op_sibling) { /* Use the same opsv. Rely on methods not to mess it up. */ - sv_setiv(newSVrv(opsv, cc_opclassname(kid)), (IV)kid); - walkoptree(opsv, method); + sv_setiv(newSVrv(opsv, cc_opclassname(aTHX_ kid)), (IV)kid); + walkoptree(aTHX_ opsv, method); } } } @@ -431,6 +431,8 @@ void walkoptree(opsv, method) SV * opsv char * method + CODE: + walkoptree(aTHX_ opsv, method); int walkoptree_debug(...) @@ -527,10 +529,18 @@ minus_c() SV * cstring(sv) SV * sv + CODE: + RETVAL = cstring(aTHX_ sv); + OUTPUT: + RETVAL SV * cchar(sv) SV * sv + CODE: + RETVAL = cchar(aTHX_ sv); + OUTPUT: + RETVAL void threadsv_names() @@ -664,7 +674,7 @@ PMOP_pmreplroot(o) (IV)root); } else { - sv_setiv(newSVrv(ST(0), cc_opclassname(root)), (IV)root); + sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ root)), (IV)root); } B::OP @@ -864,7 +874,7 @@ SvMAGIC(sv) MAGIC * mg = NO_INIT PPCODE: for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) - XPUSHs(make_mg_object(sv_newmortal(), mg)); + XPUSHs(make_mg_object(aTHX_ sv_newmortal(), mg)); MODULE = B PACKAGE = B::PVMG @@ -1103,7 +1113,7 @@ AvARRAY(av) SV **svp = AvARRAY(av); I32 i; for (i = 0; i <= AvFILL(av); i++) - XPUSHs(make_sv_object(sv_newmortal(), svp[i])); + XPUSHs(make_sv_object(aTHX_ sv_newmortal(), svp[i])); } MODULE = B PACKAGE = B::AV @@ -1204,6 +1214,6 @@ HvARRAY(hv) EXTEND(sp, HvKEYS(hv) * 2); while (sv = hv_iternextsv(hv, &key, &len)) { PUSHs(newSVpvn(key, len)); - PUSHs(make_sv_object(sv_newmortal(), sv)); + PUSHs(make_sv_object(aTHX_ sv_newmortal(), sv)); } } diff --git a/ext/B/typemap b/ext/B/typemap index 7206a6a..3531c49 100644 --- a/ext/B/typemap +++ b/ext/B/typemap @@ -59,10 +59,10 @@ T_MG_OBJ OUTPUT T_OP_OBJ - sv_setiv(newSVrv($arg, cc_opclassname((OP*)$var)), (IV)$var); + sv_setiv(newSVrv($arg, cc_opclassname(aTHX_ (OP*)$var)), (IV)$var); T_SV_OBJ - make_sv_object(($arg), (SV*)($var)); + make_sv_object(aTHX_ ($arg), (SV*)($var)); T_MG_OBJ diff --git a/ext/ByteLoader/ByteLoader.xs b/ext/ByteLoader/ByteLoader.xs index dd300be..e927d16 100644 --- a/ext/ByteLoader/ByteLoader.xs +++ b/ext/ByteLoader/ByteLoader.xs @@ -16,7 +16,7 @@ static I32 #ifdef PERL_OBJECT byteloader_filter(CPerlObj *pPerl, int idx, SV *buf_sv, int maxlen) #else -byteloader_filter(int idx, SV *buf_sv, int maxlen) +byteloader_filter(pTHX_ int idx, SV *buf_sv, int maxlen) #endif { dTHR; diff --git a/ext/ByteLoader/bytecode.h b/ext/ByteLoader/bytecode.h index abab1e4..e743583 100644 --- a/ext/ByteLoader/bytecode.h +++ b/ext/ByteLoader/bytecode.h @@ -111,7 +111,7 @@ typedef IV IV64; #define BSET_pv_free(pv) Safefree(pv.xpv_pv) #define BSET_pregcomp(o, arg) \ ((PMOP*)o)->op_pmregexp = arg ? \ - CALLREGCOMP(arg, arg + bytecode_pv.xpv_cur, ((PMOP*)o)) : 0 + CALLREGCOMP(aTHX_ arg, arg + bytecode_pv.xpv_cur, ((PMOP*)o)) : 0 #define BSET_newsv(sv, arg) sv = NEWSV(666,0); SvUPGRADE(sv, arg) #define BSET_newop(o, arg) o = (OP*)safemalloc(optype_size[arg]) #define BSET_newopn(o, arg) STMT_START { \ @@ -132,7 +132,7 @@ typedef IV IV64; arg = OP_GREPSTART; \ o->op_ppaddr = PL_ppaddr[arg]; \ } STMT_END -#define BSET_op_ppaddr(o, arg) croak("op_ppaddr not yet implemented") +#define BSET_op_ppaddr(o, arg) Perl_croak(aTHX_ "op_ppaddr not yet implemented") #define BSET_curpad(pad, arg) STMT_START { \ PL_comppad = (AV *)arg; \ pad = AvARRAY(arg); \ diff --git a/ext/ByteLoader/byterun.c b/ext/ByteLoader/byterun.c index ab5b5fc..e124c23 100644 --- a/ext/ByteLoader/byterun.c +++ b/ext/ByteLoader/byterun.c @@ -51,7 +51,8 @@ bset_obj_store(void *obj, I32 ix) return obj; } -void byterun(struct bytestream bs) +void +byterun(pTHX_ struct bytestream bs) { dTHR; int insn; @@ -894,7 +895,7 @@ void byterun(struct bytestream bs) break; } default: - croak("Illegal bytecode instruction %d\n", insn); + Perl_croak(aTHX_ "Illegal bytecode instruction %d\n", insn); /* NOTREACHED */ } } diff --git a/ext/ByteLoader/byterun.h b/ext/ByteLoader/byterun.h index f95f9f8..c293160 100644 --- a/ext/ByteLoader/byterun.h +++ b/ext/ByteLoader/byterun.h @@ -154,3 +154,28 @@ enum { OPt_COP /* 11 */ }; +EXT int PL_optype_size[] +#ifdef DOINIT += { + sizeof(OP), + sizeof(UNOP), + sizeof(BINOP), + sizeof(LOGOP), + sizeof(CONDOP), + sizeof(LISTOP), + sizeof(PMOP), + sizeof(SVOP), + sizeof(GVOP), + sizeof(PVOP), + sizeof(LOOP), + sizeof(COP) +} +#endif /* DOINIT */ +; + +#define INIT_SPECIALSV_LIST STMT_START { \ + PL_specialsv_list[0] = Nullsv; \ + PL_specialsv_list[1] = &PL_sv_undef; \ + PL_specialsv_list[2] = &PL_sv_yes; \ + PL_specialsv_list[3] = &PL_sv_no; \ + } STMT_END diff --git a/ext/Data/Dumper/Dumper.xs b/ext/Data/Dumper/Dumper.xs index c1faea2..e0ca403 100644 --- a/ext/Data/Dumper/Dumper.xs +++ b/ext/Data/Dumper/Dumper.xs @@ -21,8 +21,8 @@ static I32 num_q (char *s, STRLEN slen); static I32 esc_q (char *dest, char *src, STRLEN slen); -static SV *sv_x (SV *sv, char *str, STRLEN len, I32 n); -static I32 DD_dump (SV *val, char *name, STRLEN namelen, SV *retval, +static SV *sv_x (pTHX_ SV *sv, char *str, STRLEN len, I32 n); +static I32 DD_dump (pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, AV *postav, I32 *levelp, I32 indent, SV *pad, SV *xpad, SV *apad, SV *sep, SV *freezer, SV *toaster, @@ -95,7 +95,7 @@ esc_q(register char *d, register char *s, register STRLEN slen) /* append a repeated string to an SV */ static SV * -sv_x(SV *sv, register char *str, STRLEN len, I32 n) +sv_x(pTHX_ SV *sv, register char *str, STRLEN len, I32 n) { if (sv == Nullsv) sv = newSVpvn("", 0); @@ -126,7 +126,7 @@ sv_x(SV *sv, register char *str, STRLEN len, I32 n) * efficiency raisins.) Ugggh! */ static I32 -DD_dump(SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, +DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, AV *postav, I32 *levelp, I32 indent, SV *pad, SV *xpad, SV *apad, SV *sep, SV *freezer, SV *toaster, I32 purity, I32 deepcopy, I32 quotekeys, SV *bless) @@ -253,7 +253,7 @@ DD_dump(SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, } (*levelp)++; - ipad = sv_x(Nullsv, SvPVX(xpad), SvCUR(xpad), *levelp); + ipad = sv_x(aTHX_ Nullsv, SvPVX(xpad), SvCUR(xpad), *levelp); if (realpack) { /* we have a blessed ref */ STRLEN blesslen; @@ -263,7 +263,7 @@ DD_dump(SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, if (indent >= 2) { blesspad = apad; apad = newSVsv(apad); - sv_x(apad, " ", 1, blesslen+2); + sv_x(aTHX_ apad, " ", 1, blesslen+2); } } @@ -273,14 +273,14 @@ DD_dump(SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, sv_catpvn(namesv, "}", 1); if (realpack) { /* blessed */ sv_catpvn(retval, "do{\\(my $o = ", 13); - DD_dump(ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv, + DD_dump(aTHX_ ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv, postav, levelp, indent, pad, xpad, apad, sep, freezer, toaster, purity, deepcopy, quotekeys, bless); sv_catpvn(retval, ")}", 2); } /* plain */ else { sv_catpvn(retval, "\\", 1); - DD_dump(ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv, + DD_dump(aTHX_ ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv, postav, levelp, indent, pad, xpad, apad, sep, freezer, toaster, purity, deepcopy, quotekeys, bless); } @@ -291,7 +291,7 @@ DD_dump(SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, sv_catpvn(namesv, name, namelen); sv_catpvn(namesv, "}", 1); sv_catpvn(retval, "\\", 1); - DD_dump(ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv, + DD_dump(aTHX_ ival, SvPVX(namesv), SvCUR(namesv), retval, seenhv, postav, levelp, indent, pad, xpad, apad, sep, freezer, toaster, purity, deepcopy, quotekeys, bless); SvREFCNT_dec(namesv); @@ -359,14 +359,14 @@ DD_dump(SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, } sv_catsv(retval, totpad); sv_catsv(retval, ipad); - DD_dump(elem, iname, ilen, retval, seenhv, postav, + DD_dump(aTHX_ elem, iname, ilen, retval, seenhv, postav, levelp, indent, pad, xpad, apad, sep, freezer, toaster, purity, deepcopy, quotekeys, bless); if (ix < ixmax) sv_catpvn(retval, ",", 1); } if (ixmax >= 0) { - SV *opad = sv_x(Nullsv, SvPVX(xpad), SvCUR(xpad), (*levelp)-1); + SV *opad = sv_x(aTHX_ Nullsv, SvPVX(xpad), SvCUR(xpad), (*levelp)-1); sv_catsv(retval, totpad); sv_catsv(retval, opad); SvREFCNT_dec(opad); @@ -465,7 +465,7 @@ DD_dump(SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, else newapad = apad; - DD_dump(hval, SvPVX(sname), SvCUR(sname), retval, seenhv, + DD_dump(aTHX_ hval, SvPVX(sname), SvCUR(sname), retval, seenhv, postav, levelp, indent, pad, xpad, newapad, sep, freezer, toaster, purity, deepcopy, quotekeys, bless); SvREFCNT_dec(sname); @@ -474,7 +474,7 @@ DD_dump(SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, SvREFCNT_dec(newapad); } if (i) { - SV *opad = sv_x(Nullsv, SvPVX(xpad), SvCUR(xpad), *levelp-1); + SV *opad = sv_x(aTHX_ Nullsv, SvPVX(xpad), SvCUR(xpad), *levelp-1); sv_catsv(retval, totpad); sv_catsv(retval, opad); SvREFCNT_dec(opad); @@ -602,9 +602,9 @@ DD_dump(SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv, SvCUR(newapad) = 0; if (indent >= 2) - (void)sv_x(newapad, " ", 1, SvCUR(postentry)); + (void)sv_x(aTHX_ newapad, " ", 1, SvCUR(postentry)); - DD_dump(e, SvPVX(nname), SvCUR(nname), postentry, + DD_dump(aTHX_ e, SvPVX(nname), SvCUR(nname), postentry, seenhv, postav, &nlevel, indent, pad, xpad, newapad, sep, freezer, toaster, purity, deepcopy, quotekeys, bless); @@ -804,7 +804,7 @@ Data_Dumper_Dumpxs(href, ...) } if (indent >= 2) { - SV *tmpsv = sv_x(Nullsv, " ", 1, SvCUR(name)+3); + SV *tmpsv = sv_x(aTHX_ Nullsv, " ", 1, SvCUR(name)+3); newapad = newSVsv(apad); sv_catsv(newapad, tmpsv); SvREFCNT_dec(tmpsv); @@ -812,7 +812,7 @@ Data_Dumper_Dumpxs(href, ...) else newapad = apad; - DD_dump(val, SvPVX(name), SvCUR(name), valstr, seenhv, + DD_dump(aTHX_ val, SvPVX(name), SvCUR(name), valstr, seenhv, postav, &level, indent, pad, xpad, newapad, sep, freezer, toaster, purity, deepcopy, quotekeys, bless); diff --git a/ext/Devel/Peek/Peek.xs b/ext/Devel/Peek/Peek.xs index d5066c1..3119266 100644 --- a/ext/Devel/Peek/Peek.xs +++ b/ext/Devel/Peek/Peek.xs @@ -6,7 +6,7 @@ #define DeadCode() NULL #else SV * -DeadCode() +DeadCode(pTHX) { SV* sva; SV* sv, *dbg; @@ -201,3 +201,7 @@ PPCODE: SV * DeadCode() +CODE: + RETVAL = DeadCode(aTHX); +OUTPUT: + RETVAL diff --git a/ext/DynaLoader/dl_aix.xs b/ext/DynaLoader/dl_aix.xs index ea50408..2e7cd4a 100644 --- a/ext/DynaLoader/dl_aix.xs +++ b/ext/DynaLoader/dl_aix.xs @@ -597,15 +597,15 @@ static void * findMain(void) static void -dl_private_init() +dl_private_init(pTHX) { - (void)dl_generic_private_init(); + (void)dl_generic_private_init(aTHX); } MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); void * @@ -615,12 +615,12 @@ dl_load_file(filename, flags=0) CODE: DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dl_load_file(%s,%x):\n", filename,flags)); if (flags & 0x01) - warn("Can't make loaded symbols global on this platform while loading %s",filename); + Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename); RETVAL = dlopen(filename, 1) ; DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), " libref=%x\n", RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -636,7 +636,7 @@ dl_find_symbol(libhandle, symbolname) DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), " symbolref = %x\n", RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -657,7 +657,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%x)\n", perl_name, symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dl_beos.xs b/ext/DynaLoader/dl_beos.xs index 4e773df..1bd16a6 100644 --- a/ext/DynaLoader/dl_beos.xs +++ b/ext/DynaLoader/dl_beos.xs @@ -18,15 +18,15 @@ #include "dlutils.c" /* SaveError() etc */ static void -dl_private_init() +dl_private_init(pTHX) { - (void)dl_generic_private_init(); + (void)dl_generic_private_init(aTHX); } MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); void * @@ -50,7 +50,7 @@ dl_load_file(filename, flags=0) DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), " libref=%lx\n", (unsigned long) RETVAL)); ST(0) = sv_newmortal() ; if (bogo < 0) { - SaveError("%s", strerror(bogo)); + SaveError(aTHX_ "%s", strerror(bogo)); PerlIO_printf(PerlIO_stderr(), "load_add_on(%s) : %d (%s)\n", path, bogo, strerror(bogo)); } else { RETVAL = (void *) bogo; @@ -80,7 +80,7 @@ dl_find_symbol(libhandle, symbolname) " symbolref = %lx\n", (unsigned long) RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) { - SaveError("%s", strerror(retcode)) ; + SaveError(aTHX_ "%s", strerror(retcode)) ; PerlIO_printf(PerlIO_stderr(), "retcode = %p (%s)\n", retcode, strerror(retcode)); } else sv_setiv( ST(0), (IV)RETVAL); @@ -102,7 +102,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%lx)\n", perl_name, (unsigned long) symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)(CV *))symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dl_cygwin32.xs b/ext/DynaLoader/dl_cygwin32.xs index 95afcf5..6a2b0fe 100644 --- a/ext/DynaLoader/dl_cygwin32.xs +++ b/ext/DynaLoader/dl_cygwin32.xs @@ -64,16 +64,16 @@ GetProcAddress( #include "dlutils.c" /* SaveError() etc */ static void -dl_private_init() +dl_private_init(pTHX) { - (void)dl_generic_private_init(); + (void)dl_generic_private_init(aTHX); } MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); void * dl_load_file(filename,flags=0) @@ -93,7 +93,7 @@ dl_load_file(filename,flags=0) DLDEBUG(2,PerlIO_printf(PerlIO_stderr()," libref=%x\n", RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL){ - SaveError("%d",GetLastError()) ; + SaveError(aTHX_ "%d",GetLastError()) ; } else { sv_setiv( ST(0), (IV)RETVAL); } @@ -112,7 +112,7 @@ dl_find_symbol(libhandle, symbolname) DLDEBUG(2,PerlIO_printf(PerlIO_stderr()," symbolref = %x\n", RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%d",GetLastError()) ; + SaveError(aTHX_ "%d",GetLastError()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -133,7 +133,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(),"dl_install_xsub(name=%s, symref=%x)\n", perl_name, symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dl_dld.xs b/ext/DynaLoader/dl_dld.xs index 2443ab0..1ddc443 100644 --- a/ext/DynaLoader/dl_dld.xs +++ b/ext/DynaLoader/dl_dld.xs @@ -48,12 +48,12 @@ static AV *dl_resolve_using = Nullav; static AV *dl_require_symbols = Nullav; static void -dl_private_init() +dl_private_init(pTHX) { int dlderr; - dl_generic_private_init(); - dl_resolve_using = perl_get_av("DynaLoader::dl_resolve_using", 0x4); - dl_require_symbols = perl_get_av("DynaLoader::dl_require_symbols", 0x4); + dl_generic_private_init(aTHX); + dl_resolve_using = get_av("DynaLoader::dl_resolve_using", 0x4); + dl_require_symbols = get_av("DynaLoader::dl_require_symbols", 0x4); #ifdef __linux__ dlderr = dld_init("/proc/self/exe"); if (dlderr) { @@ -61,7 +61,7 @@ dl_private_init() dlderr = dld_init(dld_find_executable(PL_origargv[0])); if (dlderr) { char *msg = dld_strerror(dlderr); - SaveError("dld_init(%s) failed: %s", PL_origargv[0], msg); + SaveError(aTHX_ "dld_init(%s) failed: %s", PL_origargv[0], msg); DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "%s", LastError)); } #ifdef __linux__ @@ -87,13 +87,13 @@ dl_load_file(filename, flags=0) RETVAL = filename; DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dl_load_file(%s,%x):\n", filename,flags)); if (flags & 0x01) - croak("Can't make loaded symbols global on this platform while loading %s",filename); + Perl_croak(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename); max = AvFILL(dl_require_symbols); for (x = 0; x <= max; x++) { char *sym = SvPVX(*av_fetch(dl_require_symbols, x, 0)); DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dld_create_ref(%s)\n", sym)); if (dlderr = dld_create_reference(sym)) { - SaveError("dld_create_reference(%s): %s", sym, + SaveError(aTHX_ "dld_create_reference(%s): %s", sym, dld_strerror(dlderr)); goto haverror; } @@ -101,7 +101,7 @@ dl_load_file(filename, flags=0) DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dld_link(%s)\n", filename)); if (dlderr = dld_link(filename)) { - SaveError("dld_link(%s): %s", filename, dld_strerror(dlderr)); + SaveError(aTHX_ "dld_link(%s): %s", filename, dld_strerror(dlderr)); goto haverror; } @@ -110,7 +110,7 @@ dl_load_file(filename, flags=0) char *sym = SvPVX(*av_fetch(dl_resolve_using, x, 0)); DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dld_link(%s)\n", sym)); if (dlderr = dld_link(sym)) { - SaveError("dld_link(%s): %s", sym, dld_strerror(dlderr)); + SaveError(aTHX_ "dld_link(%s): %s", sym, dld_strerror(dlderr)); goto haverror; } } @@ -133,7 +133,7 @@ dl_find_symbol(libhandle, symbolname) DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), " symbolref = %x\n", RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("dl_find_symbol: Unable to find '%s' symbol", symbolname) ; + SaveError(aTHX_ "dl_find_symbol: Unable to find '%s' symbol", symbolname) ; else sv_setiv(ST(0), (IV)RETVAL); @@ -162,7 +162,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%x)\n", perl_name, symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dl_dlopen.xs b/ext/DynaLoader/dl_dlopen.xs index b2dbf3d..a317208 100644 --- a/ext/DynaLoader/dl_dlopen.xs +++ b/ext/DynaLoader/dl_dlopen.xs @@ -131,15 +131,15 @@ static void -dl_private_init() +dl_private_init(pTHX) { - (void)dl_generic_private_init(); + (void)dl_generic_private_init(aTHX); } MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); void * @@ -157,14 +157,14 @@ dl_load_file(filename, flags=0) #ifdef RTLD_GLOBAL mode |= RTLD_GLOBAL; #else - warn("Can't make loaded symbols global on this platform while loading %s",filename); + Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename); #endif DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dl_load_file(%s,%x):\n", filename,flags)); RETVAL = dlopen(filename, mode) ; DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), " libref=%lx\n", (unsigned long) RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -185,7 +185,7 @@ dl_find_symbol(libhandle, symbolname) " symbolref = %lx\n", (unsigned long) RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -206,7 +206,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%lx)\n", perl_name, (unsigned long) symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)(CV *))symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dl_hpux.xs b/ext/DynaLoader/dl_hpux.xs index a82e0ea..ce45459 100644 --- a/ext/DynaLoader/dl_hpux.xs +++ b/ext/DynaLoader/dl_hpux.xs @@ -33,16 +33,16 @@ static AV *dl_resolve_using = Nullav; static void -dl_private_init() +dl_private_init(pTHX) { - (void)dl_generic_private_init(); - dl_resolve_using = perl_get_av("DynaLoader::dl_resolve_using", 0x4); + (void)dl_generic_private_init(aTHX); + dl_resolve_using = get_av("DynaLoader::dl_resolve_using", 0x4); } MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); void * @@ -55,7 +55,7 @@ dl_load_file(filename, flags=0) CODE: DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dl_load_file(%s,%x):\n", filename,flags)); if (flags & 0x01) - warn("Can't make loaded symbols global on this platform while loading %s",filename); + Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename); if (dl_nonlazy) { bind_type = BIND_IMMEDIATE|BIND_VERBOSE; } else { @@ -90,7 +90,7 @@ dl_load_file(filename, flags=0) end: ST(0) = sv_newmortal() ; if (obj == NULL) - SaveError("%s",Strerror(errno)); + SaveError(aTHX_ "%s",Strerror(errno)); else sv_setiv( ST(0), (IV)obj); @@ -122,7 +122,7 @@ dl_find_symbol(libhandle, symbolname) } if (status == -1) { - SaveError("%s",(errno) ? Strerror(errno) : "Symbol not found") ; + SaveError(aTHX_ "%s",(errno) ? Strerror(errno) : "Symbol not found") ; } else { sv_setiv( ST(0), (IV)symaddr); } @@ -144,7 +144,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%x)\n", perl_name, symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dl_mpeix.xs b/ext/DynaLoader/dl_mpeix.xs index 4cc07ec..4c5d176 100644 --- a/ext/DynaLoader/dl_mpeix.xs +++ b/ext/DynaLoader/dl_mpeix.xs @@ -33,16 +33,16 @@ typedef struct { static AV *dl_resolve_using = Nullav; static void -dl_private_init() +dl_private_init(pTHX) { - (void)dl_generic_private_init(); - dl_resolve_using = perl_get_av("DynaLoader::dl_resolve_using", 0x4); + (void)dl_generic_private_init(aTHX); + dl_resolve_using = get_av("DynaLoader::dl_resolve_using", 0x4); } MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); void * dl_load_file(filename, flags=0) @@ -56,7 +56,7 @@ dl_load_file(filename, flags=0) DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dl_load_file(%s,%x):\n", filename, flags)); if (flags & 0x01) - warn("Can't make loaded symbols global on this platform while loading %s + Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s ",filename); obj = (p_mpe_dld) safemalloc(sizeof(t_mpe_dld)); memzero(obj, sizeof(t_mpe_dld)); @@ -72,7 +72,7 @@ flags)); ST(0) = sv_newmortal() ; if (obj == NULL) - SaveError("%s",Strerror(errno)); + SaveError(aTHX_"%s",Strerror(errno)); else sv_setiv( ST(0), (IV)obj); @@ -98,7 +98,7 @@ dl_find_symbol(libhandle, symbolname) DLDEBUG(2,PerlIO_printf(PerlIO_stderr()," symbolref(PROCEDURE) = %x, status=%x\n", symaddr, status)); if (status != 0) { - SaveError("%s",(errno) ? Strerror(errno) : "Symbol not found") ; + SaveError(aTHX_"%s",(errno) ? Strerror(errno) : "Symbol not found") ; } else { sv_setiv( ST(0), (IV)symaddr); } @@ -117,7 +117,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(),"dl_install_xsub(name=%s, symref=%x)\n", perl_name, symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * dl_error() diff --git a/ext/DynaLoader/dl_next.xs b/ext/DynaLoader/dl_next.xs index dfa8a3e..114489a 100644 --- a/ext/DynaLoader/dl_next.xs +++ b/ext/DynaLoader/dl_next.xs @@ -222,16 +222,16 @@ char *symbol; static void -dl_private_init() +dl_private_init(pTHX) { - (void)dl_generic_private_init(); - dl_resolve_using = perl_get_av("DynaLoader::dl_resolve_using", 0x4); + (void)dl_generic_private_init(aTHX); + dl_resolve_using = get_av("DynaLoader::dl_resolve_using", 0x4); } MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); @@ -244,12 +244,12 @@ dl_load_file(filename, flags=0) CODE: DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dl_load_file(%s,%x):\n", filename,flags)); if (flags & 0x01) - warn("Can't make loaded symbols global on this platform while loading %s",filename); + Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename); RETVAL = dlopen(filename, mode) ; DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), " libref=%x\n", RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -270,7 +270,7 @@ dl_find_symbol(libhandle, symbolname) " symbolref = %lx\n", (unsigned long) RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -291,7 +291,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%x)\n", perl_name, symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dl_rhapsody.xs b/ext/DynaLoader/dl_rhapsody.xs index 7513bf2..76ecb05 100644 --- a/ext/DynaLoader/dl_rhapsody.xs +++ b/ext/DynaLoader/dl_rhapsody.xs @@ -136,16 +136,16 @@ char *symbol; static void -dl_private_init() +dl_private_init(pTHX) { - (void)dl_generic_private_init(); - dl_resolve_using = perl_get_av("DynaLoader::dl_resolve_using", 0x4); + (void)dl_generic_private_init(aTHX); + dl_resolve_using = get_av("DynaLoader::dl_resolve_using", 0x4); } MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); @@ -158,12 +158,12 @@ dl_load_file(filename, flags=0) CODE: DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dl_load_file(%s,%x):\n", filename,flags)); if (flags & 0x01) - warn("Can't make loaded symbols global on this platform while loading %s",filename); + Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename); RETVAL = dlopen(filename, mode) ; DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), " libref=%x\n", RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -182,7 +182,7 @@ dl_find_symbol(libhandle, symbolname) " symbolref = %lx\n", (unsigned long) RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -203,7 +203,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%x)\n", perl_name, symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dl_vmesa.xs b/ext/DynaLoader/dl_vmesa.xs index 8c4fd1b..ff1b60b 100644 --- a/ext/DynaLoader/dl_vmesa.xs +++ b/ext/DynaLoader/dl_vmesa.xs @@ -81,7 +81,7 @@ RETVAL = dlopen(filename) ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; Note that SaveError() takes a printf format string. Use a "%s" as the first parameter if the error may contain and % characters. @@ -98,15 +98,15 @@ static void -dl_private_init() +dl_private_init(pTHX) { - (void)dl_generic_private_init(); + (void)dl_generic_private_init(aTHX); } MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); void * @@ -115,13 +115,13 @@ dl_load_file(filename, flags=0) int flags CODE: if (flags & 0x01) - warn("Can't make loaded symbols global on this platform while loading %s",filename); + Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename); DLDEBUG(1,PerlIO_printf(PerlIO_stderr(), "dl_load_file(%s,%x):\n", filename,flags)); RETVAL = dlopen(filename) ; DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), " libref=%lx\n", (unsigned long) RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -139,7 +139,7 @@ dl_find_symbol(libhandle, symbolname) " symbolref = %lx\n", (unsigned long) RETVAL)); ST(0) = sv_newmortal() ; if (RETVAL == NULL) - SaveError("%s",dlerror()) ; + SaveError(aTHX_ "%s",dlerror()) ; else sv_setiv( ST(0), (IV)RETVAL); @@ -160,7 +160,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%lx)\n", perl_name, (unsigned long) symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)(CV *))symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dl_vms.xs b/ext/DynaLoader/dl_vms.xs index 2a9ba3c..3640b0f 100644 --- a/ext/DynaLoader/dl_vms.xs +++ b/ext/DynaLoader/dl_vms.xs @@ -146,10 +146,10 @@ my_find_image_symbol(struct dsc$descriptor_s *imgname, static void -dl_private_init() +dl_private_init(pTHX) { - dl_generic_private_init(); - dl_require_symbols = perl_get_av("DynaLoader::dl_require_symbols", 0x4); + dl_generic_private_init(aTHX); + dl_require_symbols = get_av("DynaLoader::dl_require_symbols", 0x4); /* Set up the static control blocks for dl_expand_filespec() */ dlfab = cc$rms_fab; dlnam = cc$rms_nam; @@ -162,7 +162,7 @@ dl_private_init() MODULE = DynaLoader PACKAGE = DynaLoader BOOT: - (void)dl_private_init(); + (void)dl_private_init(aTHX); void dl_expandspec(filespec) @@ -343,7 +343,9 @@ dl_install_xsub(perl_name, symref, filename="$Package") CODE: DLDEBUG(2,PerlIO_printf(PerlIO_stderr(), "dl_install_xsub(name=%s, symref=%x)\n", perl_name, symref)); - ST(0)=sv_2mortal(newRV((SV*)newXS(perl_name, (void(*)())symref, filename))); + ST(0) = sv_2mortal(newRV((SV*)newXS(perl_name, + (void(*)(pTHX_ CV *))symref, + filename))); char * diff --git a/ext/DynaLoader/dlutils.c b/ext/DynaLoader/dlutils.c index 3bd58ed..b1e0bd6 100644 --- a/ext/DynaLoader/dlutils.c +++ b/ext/DynaLoader/dlutils.c @@ -26,11 +26,11 @@ static int dl_debug = 0; /* value copied from $DynaLoader::dl_error */ static void -dl_generic_private_init(CPERLarg) /* called by dl_*.xs dl_private_init() */ +dl_generic_private_init(pTHX) /* called by dl_*.xs dl_private_init() */ { char *perl_dl_nonlazy; #ifdef DEBUGGING - dl_debug = SvIV( perl_get_sv("DynaLoader::dl_debug", 0x04) ); + dl_debug = SvIV(get_sv("DynaLoader::dl_debug", 0x04) ); #endif if ( (perl_dl_nonlazy = getenv("PERL_DL_NONLAZY")) != NULL ) dl_nonlazy = atoi(perl_dl_nonlazy); @@ -45,7 +45,7 @@ dl_generic_private_init(CPERLarg) /* called by dl_*.xs dl_private_init() */ /* SaveError() takes printf style args and saves the result in LastError */ static void -SaveError(CPERLarg_ char* pat, ...) +SaveError(pTHX_ char* pat, ...) { va_list args; SV *msv; diff --git a/ext/Opcode/Opcode.xs b/ext/Opcode/Opcode.xs index b07159c..100e6f8 100644 --- a/ext/Opcode/Opcode.xs +++ b/ext/Opcode/Opcode.xs @@ -11,11 +11,11 @@ static SV *opset_all; /* mask with all bits set */ static IV opset_len; /* length of opmasks in bytes */ static int opcode_debug = 0; -static SV *new_opset (SV *old_opset); -static int verify_opset (SV *opset, int fatal); -static void set_opset_bits (char *bitmap, SV *bitspec, int on, char *opname); -static void put_op_bitspec (char *optag, STRLEN len, SV *opset); -static SV *get_op_bitspec (char *opname, STRLEN len, int fatal); +static SV *new_opset (pTHX_ SV *old_opset); +static int verify_opset (pTHX_ SV *opset, int fatal); +static void set_opset_bits (pTHX_ char *bitmap, SV *bitspec, int on, char *opname); +static void put_op_bitspec (pTHX_ char *optag, STRLEN len, SV *opset); +static SV *get_op_bitspec (pTHX_ char *opname, STRLEN len, int fatal); /* Initialise our private op_named_bits HV. @@ -27,7 +27,7 @@ static SV *get_op_bitspec (char *opname, STRLEN len, int fatal); */ static void -op_names_init(void) +op_names_init(pTHX) { int i; STRLEN len; @@ -43,16 +43,16 @@ op_names_init(void) hv_store(op_named_bits, op_names[i], strlen(op_names[i]), sv, 0); } - put_op_bitspec(":none",0, sv_2mortal(new_opset(Nullsv))); + put_op_bitspec(aTHX_ ":none",0, sv_2mortal(new_opset(aTHX_ Nullsv))); - opset_all = new_opset(Nullsv); + opset_all = new_opset(aTHX_ Nullsv); bitmap = SvPV(opset_all, len); i = len-1; /* deal with last byte specially, see below */ while(i-- > 0) bitmap[i] = 0xFF; /* Take care to set the right number of bits in the last byte */ bitmap[len-1] = (PL_maxo & 0x07) ? ~(0xFF << (PL_maxo & 0x07)) : 0xFF; - put_op_bitspec(":all",0, opset_all); /* don't mortalise */ + put_op_bitspec(aTHX_ ":all",0, opset_all); /* don't mortalise */ } @@ -62,10 +62,10 @@ op_names_init(void) */ static void -put_op_bitspec(char *optag, STRLEN len, SV *mask) +put_op_bitspec(pTHX_ char *optag, STRLEN len, SV *mask) { SV **svp; - verify_opset(mask,1); + verify_opset(aTHX_ mask,1); if (!len) len = strlen(optag); svp = hv_fetch(op_named_bits, optag, len, 1); @@ -83,7 +83,7 @@ put_op_bitspec(char *optag, STRLEN len, SV *mask) */ static SV * -get_op_bitspec(char *opname, STRLEN len, int fatal) +get_op_bitspec(pTHX_ char *opname, STRLEN len, int fatal) { SV **svp; if (!len) @@ -106,11 +106,11 @@ get_op_bitspec(char *opname, STRLEN len, int fatal) static SV * -new_opset(SV *old_opset) +new_opset(pTHX_ SV *old_opset) { SV *opset; if (old_opset) { - verify_opset(old_opset,1); + verify_opset(aTHX_ old_opset,1); opset = newSVsv(old_opset); } else { @@ -125,7 +125,7 @@ new_opset(SV *old_opset) static int -verify_opset(SV *opset, int fatal) +verify_opset(pTHX_ SV *opset, int fatal) { char *err = Nullch; if (!SvOK(opset)) err = "undefined"; @@ -139,7 +139,7 @@ verify_opset(SV *opset, int fatal) static void -set_opset_bits(char *bitmap, SV *bitspec, int on, char *opname) +set_opset_bits(pTHX_ char *bitmap, SV *bitspec, int on, char *opname) { if (SvIOK(bitspec)) { int myopcode = SvIV(bitspec); @@ -173,14 +173,14 @@ set_opset_bits(char *bitmap, SV *bitspec, int on, char *opname) static void -opmask_add(SV *opset) /* THE ONLY FUNCTION TO EDIT PL_op_mask ITSELF */ +opmask_add(pTHX_ SV *opset) /* THE ONLY FUNCTION TO EDIT PL_op_mask ITSELF */ { int i,j; char *bitmask; STRLEN len; int myopcode = 0; - verify_opset(opset,1); /* croaks on bad opset */ + verify_opset(aTHX_ opset,1); /* croaks on bad opset */ if (!PL_op_mask) /* caller must ensure PL_op_mask exists */ croak("Can't add to uninitialised PL_op_mask"); @@ -200,7 +200,7 @@ opmask_add(SV *opset) /* THE ONLY FUNCTION TO EDIT PL_op_mask ITSELF */ } static void -opmask_addlocal(SV *opset, char *op_mask_buf) /* Localise PL_op_mask then opmask_add() */ +opmask_addlocal(pTHX_ SV *opset, char *op_mask_buf) /* Localise PL_op_mask then opmask_add() */ { char *orig_op_mask = PL_op_mask; SAVEPPTR(PL_op_mask); @@ -216,7 +216,7 @@ opmask_addlocal(SV *opset, char *op_mask_buf) /* Localise PL_op_mask then opmask Copy(orig_op_mask, PL_op_mask, PL_maxo, char); else Zero(PL_op_mask, PL_maxo, char); - opmask_add(opset); + opmask_add(aTHX_ opset); } @@ -230,7 +230,7 @@ BOOT: opset_len = (PL_maxo + 7) / 8; if (opcode_debug >= 1) warn("opset_len %ld\n", (long)opset_len); - op_names_init(); + op_names_init(aTHX); void @@ -244,7 +244,7 @@ PPCODE: ENTER; - opmask_addlocal(mask, op_mask_buf); + opmask_addlocal(aTHX_ mask, op_mask_buf); save_aptr(&PL_endav); PL_endav = (AV*)sv_2mortal((SV*)newAV()); /* ignore END blocks for now */ @@ -270,7 +270,10 @@ int verify_opset(opset, fatal = 0) SV *opset int fatal - +CODE: + RETVAL = verify_opset(aTHX_ opset,fatal); +OUTPUT: + RETVAL void invert_opset(opset) @@ -279,7 +282,7 @@ CODE: { char *bitmap; STRLEN len = opset_len; - opset = sv_2mortal(new_opset(opset)); /* verify and clone opset */ + opset = sv_2mortal(new_opset(aTHX_ opset)); /* verify and clone opset */ bitmap = SvPVX(opset); while(len-- > 0) bitmap[len] = ~bitmap[len]; @@ -300,7 +303,7 @@ PPCODE: int i, j, myopcode; char *bitmap = SvPV(opset, len); char **names = (desc) ? get_op_descs() : get_op_names(); - verify_opset(opset,1); + verify_opset(aTHX_ opset,1); for (myopcode=0, i=0; i < opset_len; i++) { U16 bits = bitmap[i]; for (j=0; j < 8 && myopcode < PL_maxo; j++, myopcode++) { @@ -318,21 +321,21 @@ CODE: SV *bitspec, *opset; char *bitmap; STRLEN len, on; - opset = sv_2mortal(new_opset(Nullsv)); + opset = sv_2mortal(new_opset(aTHX_ Nullsv)); bitmap = SvPVX(opset); for (i = 0; i < items; i++) { char *opname; on = 1; - if (verify_opset(ST(i),0)) { + if (verify_opset(aTHX_ ST(i),0)) { opname = "(opset)"; bitspec = ST(i); } else { opname = SvPV(ST(i), len); if (*opname == '!') { on=0; ++opname;--len; } - bitspec = get_op_bitspec(opname, len, 1); + bitspec = get_op_bitspec(aTHX_ opname, len, 1); } - set_opset_bits(bitmap, bitspec, on, opname); + set_opset_bits(aTHX_ bitmap, bitspec, on, opname); } ST(0) = opset; @@ -357,13 +360,13 @@ CODE: croak("Not a Safe object"); mask = *hv_fetch((HV*)SvRV(safe), "Mask",4, 1); if (ONLY_THESE) /* *_only = new mask, else edit current */ - sv_setsv(mask, sv_2mortal(new_opset(PERMITING ? opset_all : Nullsv))); + sv_setsv(mask, sv_2mortal(new_opset(aTHX_ PERMITING ? opset_all : Nullsv))); else - verify_opset(mask,1); /* croaks */ + verify_opset(aTHX_ mask,1); /* croaks */ bitmap = SvPVX(mask); for (i = 1; i < items; i++) { on = PERMITING ? 0 : 1; /* deny = mask bit on */ - if (verify_opset(ST(i),0)) { /* it's a valid mask */ + if (verify_opset(aTHX_ ST(i),0)) { /* it's a valid mask */ opname = "(opset)"; bitspec = ST(i); } @@ -371,9 +374,9 @@ CODE: opname = SvPV(ST(i), len); /* invert if op has ! prefix (only one allowed) */ if (*opname == '!') { on = !on; ++opname; --len; } - bitspec = get_op_bitspec(opname, len, 1); /* croaks */ + bitspec = get_op_bitspec(aTHX_ opname, len, 1); /* croaks */ } - set_opset_bits(bitmap, bitspec, on, opname); + set_opset_bits(aTHX_ bitmap, bitspec, on, opname); } ST(0) = &PL_sv_yes; @@ -391,7 +394,7 @@ PPCODE: args = (SV**)SvPVX(sv_2mortal(newSVpvn((char*)&ST(0), items*sizeof(SV*)))); for (i = 0; i < items; i++) { char *opname = SvPV(args[i], len); - SV *bitspec = get_op_bitspec(opname, len, 1); + SV *bitspec = get_op_bitspec(aTHX_ opname, len, 1); if (SvIOK(bitspec)) { myopcode = SvIV(bitspec); if (myopcode < 0 || myopcode >= PL_maxo) @@ -423,19 +426,19 @@ define_optag(optagsv, mask) CODE: STRLEN len; char *optag = SvPV(optagsv, len); - put_op_bitspec(optag, len, mask); /* croaks */ + put_op_bitspec(aTHX_ optag, len, mask); /* croaks */ ST(0) = &PL_sv_yes; void empty_opset() CODE: - ST(0) = sv_2mortal(new_opset(Nullsv)); + ST(0) = sv_2mortal(new_opset(aTHX_ Nullsv)); void full_opset() CODE: - ST(0) = sv_2mortal(new_opset(opset_all)); + ST(0) = sv_2mortal(new_opset(aTHX_ opset_all)); void opmask_add(opset) @@ -443,6 +446,8 @@ opmask_add(opset) PREINIT: if (!PL_op_mask) Newz(0, PL_op_mask, PL_maxo, char); +CODE: + opmask_add(aTHX_ opset); void opcodes() @@ -457,7 +462,7 @@ PPCODE: void opmask() CODE: - ST(0) = sv_2mortal(new_opset(Nullsv)); + ST(0) = sv_2mortal(new_opset(aTHX_ Nullsv)); if (PL_op_mask) { char *bitmap = SvPVX(ST(0)); int myopcode; diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index b196963..33f9b88 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -3202,7 +3202,7 @@ sigaction(sig, action, oldaction = 0) croak("Can't supply an action without a HANDLER"); sv_setpv(*sigsvp, SvPV(*svp, n_a)); mg_set(*sigsvp); /* handles DEFAULT and IGNORE */ - act.sa_handler = sighandler; + act.sa_handler = PL_sighandlerp; /* Set up any desired mask. */ svp = hv_fetch(action, "MASK", 4, FALSE); diff --git a/ext/Thread/Thread.xs b/ext/Thread/Thread.xs index 8ae50d1..f8b544d 100644 --- a/ext/Thread/Thread.xs +++ b/ext/Thread/Thread.xs @@ -20,7 +20,7 @@ static int sig_pipe[2]; #endif static void -remove_thread(struct perl_thread *t) +remove_thread(pTHX_ struct perl_thread *t) { #ifdef USE_THREADS DEBUG_S(WITH_THR(PerlIO_printf(PerlIO_stderr(), @@ -194,7 +194,7 @@ threadstart(void *arg) case THRf_R_JOINED: ThrSETSTATE(thr, THRf_DEAD); MUTEX_UNLOCK(&thr->mutex); - remove_thread(thr); + remove_thread(aTHX_ thr); DEBUG_S(PerlIO_printf(PerlIO_stderr(), "%p: R_JOINED thread finished\n", thr)); break; @@ -204,7 +204,7 @@ threadstart(void *arg) SvREFCNT_dec(av); DEBUG_S(PerlIO_printf(PerlIO_stderr(), "%p: DETACHED thread finished\n", thr)); - remove_thread(thr); /* This might trigger main thread to finish */ + remove_thread(aTHX_ thr); /* This might trigger main thread to finish */ break; default: MUTEX_UNLOCK(&thr->mutex); @@ -221,7 +221,7 @@ threadstart(void *arg) } static SV * -newthread (SV *startsv, AV *initargs, char *classname) +newthread (pTHX_ SV *startsv, AV *initargs, char *classname) { #ifdef USE_THREADS dSP; @@ -289,7 +289,7 @@ newthread (SV *startsv, AV *initargs, char *classname) savethread, thr, err)); /* Thread creation failed--clean up */ SvREFCNT_dec(thr->cvcache); - remove_thread(thr); + remove_thread(aTHX_ thr); MUTEX_DESTROY(&thr->mutex); for (i = 0; i <= AvFILL(initargs); i++) SvREFCNT_dec(*av_fetch(initargs, i, FALSE)); @@ -344,7 +344,7 @@ new(classname, startsv, ...) SV * startsv AV * av = av_make(items - 2, &ST(2)); PPCODE: - XPUSHs(sv_2mortal(newthread(startsv, av, classname))); + XPUSHs(sv_2mortal(newthread(aTHX_ startsv, av, classname))); void join(t) @@ -365,7 +365,7 @@ join(t) case THRf_ZOMBIE: ThrSETSTATE(t, THRf_DEAD); MUTEX_UNLOCK(&t->mutex); - remove_thread(t); + remove_thread(aTHX_ t); break; default: MUTEX_UNLOCK(&t->mutex); @@ -408,7 +408,7 @@ detach(t) ThrSETSTATE(t, THRf_DEAD); DETACH(t); MUTEX_UNLOCK(&t->mutex); - remove_thread(t); + remove_thread(aTHX_ t); break; default: MUTEX_UNLOCK(&t->mutex); diff --git a/ext/re/re.xs b/ext/re/re.xs index baa990d..b49a110 100644 --- a/ext/re/re.xs +++ b/ext/re/re.xs @@ -7,8 +7,8 @@ #include "perl.h" #include "XSUB.h" -extern regexp* my_regcomp (char* exp, char* xend, PMOP* pm); -extern I32 my_regexec (regexp* prog, char* stringarg, char* strend, +extern regexp* my_regcomp (pTHX_ char* exp, char* xend, PMOP* pm); +extern I32 my_regexec (pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags); @@ -17,17 +17,17 @@ static int oldfl; #define R_DB 512 static void -deinstall(void) +deinstall(pTHX) { dTHR; - PL_regexecp = ®exec_flags; - PL_regcompp = &pregcomp; + PL_regexecp = &Perl_regexec_flags; + PL_regcompp = &Perl_pregcomp; if (!oldfl) PL_debug &= ~R_DB; } static void -install(void) +install(pTHX) { dTHR; PL_colorset = 0; /* Allow reinspection of ENV. */ @@ -41,6 +41,10 @@ MODULE = re PACKAGE = re void install() + CODE: + install(aTHX); void deinstall() + CODE: + deinstall(aTHX); diff --git a/global.sym b/global.sym index 4c7f6c2..f3e6494 100644 --- a/global.sym +++ b/global.sym @@ -1,15 +1,20 @@ +# # !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is autogenerated from data in proto.pl. Edit that file +# This file is autogenerated from data in embed.pl. Edit that file # and run 'make regen_headers' to effect changes. # -Perl_ErrorNo -Perl_GetVars -Perl_Gv_AMupdate + Perl_amagic_call +Perl_Gv_AMupdate Perl_append_elem Perl_append_list Perl_apply Perl_assertref +Perl_avhv_exists_ent +Perl_avhv_fetch_ent +Perl_avhv_iternext +Perl_avhv_iterval +Perl_avhv_keys Perl_av_clear Perl_av_extend Perl_av_fake @@ -24,118 +29,103 @@ Perl_av_shift Perl_av_store Perl_av_undef Perl_av_unshift -Perl_avhv_exists_ent -Perl_avhv_fetch_ent -Perl_avhv_iternext -Perl_avhv_iterval -Perl_avhv_keys Perl_bind_match Perl_block_end Perl_block_gimme Perl_block_start Perl_boot_core_UNIVERSAL -Perl_bset_obj_store -Perl_call_argv -Perl_call_atexit Perl_call_list -Perl_call_method -Perl_call_pv -Perl_call_sv -Perl_calloc Perl_cando +Perl_cast_ulong Perl_cast_i32 Perl_cast_iv -Perl_cast_ulong Perl_cast_uv +Perl_my_chsize Perl_condpair_magic Perl_convert Perl_croak +Perl_croak_nocontext +Perl_die_nocontext +Perl_form_nocontext +Perl_warn_nocontext +Perl_newSVpvf_nocontext +Perl_sv_catpvf_nocontext +Perl_sv_setpvf_nocontext +Perl_sv_catpvf_mg_nocontext +Perl_sv_setpvf_mg_nocontext Perl_cv_ckproto Perl_cv_clone Perl_cv_const_sv +Perl_op_const_sv Perl_cv_undef Perl_cx_dump +Perl_filter_add +Perl_filter_del +Perl_filter_read +Perl_get_op_descs +Perl_get_op_names +Perl_get_no_modify +Perl_get_opargs Perl_cxinc Perl_deb Perl_deb_growlevel -Perl_debop Perl_debprofdump +Perl_debop Perl_debstack Perl_debstackptrs -Perl_default_protect Perl_delimcpy Perl_deprecate Perl_die Perl_die_where +Perl_dounwind Perl_do_aexec Perl_do_binmode -Perl_do_chomp Perl_do_chop Perl_do_close Perl_do_eof Perl_do_exec Perl_do_exec3 Perl_do_execfree -Perl_do_gv_dump -Perl_do_gvgv_dump -Perl_do_hv_dump Perl_do_ipcctl Perl_do_ipcget -Perl_do_join -Perl_do_kv -Perl_do_magic_dump Perl_do_msgrcv Perl_do_msgsnd -Perl_do_op_dump +Perl_do_semop +Perl_do_shmio +Perl_do_join +Perl_do_kv Perl_do_open Perl_do_pipe -Perl_do_pmop_dump Perl_do_print Perl_do_readline +Perl_do_chomp Perl_do_seek -Perl_do_semop -Perl_do_shmio Perl_do_sprintf -Perl_do_sv_dump Perl_do_sysseek Perl_do_tell Perl_do_trans Perl_do_vecset Perl_do_vop Perl_dofile -Perl_dounwind Perl_dowantarray Perl_dump_all Perl_dump_eval Perl_dump_fds Perl_dump_form -Perl_dump_indent -Perl_dump_mstats +Perl_gv_dump +Perl_op_dump +Perl_pmop_dump Perl_dump_packsubs Perl_dump_sub -Perl_eval_pv -Perl_eval_sv Perl_fbm_compile Perl_fbm_instr -Perl_filter_add -Perl_filter_del -Perl_filter_read Perl_find_script Perl_find_threadsv -Perl_fold_constants Perl_force_list +Perl_fold_constants Perl_form Perl_free_tmps Perl_gen_constant_list -Perl_get_av -Perl_get_cv -Perl_get_hv -Perl_get_no_modify -Perl_get_op_descs -Perl_get_op_names -Perl_get_opargs -Perl_get_sv -Perl_get_vtbl Perl_getenv_len Perl_gp_free Perl_gp_ref @@ -144,7 +134,6 @@ Perl_gv_HVadd Perl_gv_IOadd Perl_gv_autoload4 Perl_gv_check -Perl_gv_dump Perl_gv_efullname Perl_gv_efullname3 Perl_gv_fetchfile @@ -181,38 +170,42 @@ Perl_hv_undef Perl_ibcmp Perl_ibcmp_locale Perl_ingroup -Perl_init_i18nl10n -Perl_init_i18nl14n Perl_init_stacks -Perl_instr Perl_intro_my -Perl_invert +Perl_instr Perl_io_close +Perl_invert Perl_is_uni_alnum -Perl_is_uni_alnum_lc +Perl_is_uni_idfirst Perl_is_uni_alpha -Perl_is_uni_alpha_lc +Perl_is_uni_space Perl_is_uni_digit -Perl_is_uni_digit_lc -Perl_is_uni_idfirst -Perl_is_uni_idfirst_lc +Perl_is_uni_upper Perl_is_uni_lower -Perl_is_uni_lower_lc Perl_is_uni_print -Perl_is_uni_print_lc -Perl_is_uni_space +Perl_to_uni_upper +Perl_to_uni_title +Perl_to_uni_lower +Perl_is_uni_alnum_lc +Perl_is_uni_idfirst_lc +Perl_is_uni_alpha_lc Perl_is_uni_space_lc -Perl_is_uni_upper +Perl_is_uni_digit_lc Perl_is_uni_upper_lc +Perl_is_uni_lower_lc +Perl_is_uni_print_lc +Perl_to_uni_upper_lc +Perl_to_uni_title_lc +Perl_to_uni_lower_lc Perl_is_utf8_alnum +Perl_is_utf8_idfirst Perl_is_utf8_alpha +Perl_is_utf8_space Perl_is_utf8_digit -Perl_is_utf8_idfirst +Perl_is_utf8_upper Perl_is_utf8_lower -Perl_is_utf8_mark Perl_is_utf8_print -Perl_is_utf8_space -Perl_is_utf8_upper +Perl_is_utf8_mark Perl_jmaybe Perl_keyword Perl_leave_scope @@ -223,11 +216,10 @@ Perl_list Perl_listkids Perl_localize Perl_looks_like_number -Perl_magic_clear_all_env Perl_magic_clearenv +Perl_magic_clear_all_env Perl_magic_clearpack Perl_magic_clearsig -Perl_magic_dump Perl_magic_existspack Perl_magic_freeregexp Perl_magic_get @@ -242,24 +234,22 @@ Perl_magic_getsubstr Perl_magic_gettaint Perl_magic_getuvar Perl_magic_getvec -Perl_magic_killbackrefs Perl_magic_len Perl_magic_mutexfree Perl_magic_nextpack Perl_magic_regdata_cnt Perl_magic_regdatum_get Perl_magic_set -Perl_magic_set_all_env Perl_magic_setamagic Perl_magic_setarylen Perl_magic_setbm -Perl_magic_setcollxfrm Perl_magic_setdbline +Perl_magic_setcollxfrm Perl_magic_setdefelem Perl_magic_setenv Perl_magic_setfm -Perl_magic_setglob Perl_magic_setisa +Perl_magic_setglob Perl_magic_setmglob Perl_magic_setnkeys Perl_magic_setpack @@ -269,16 +259,15 @@ Perl_magic_setsubstr Perl_magic_settaint Perl_magic_setuvar Perl_magic_setvec +Perl_magic_set_all_env Perl_magic_sizepack Perl_magic_wipepack Perl_magicname main -Perl_malloc Perl_malloced_size Perl_markstack_grow Perl_mem_collxfrm Perl_mess -Perl_mfree Perl_mg_clear Perl_mg_copy Perl_mg_find @@ -293,142 +282,141 @@ Perl_moreswitches Perl_my Perl_my_bcopy Perl_my_bzero -Perl_my_chsize Perl_my_exit Perl_my_failure_exit Perl_my_fflush_all -Perl_my_htonl Perl_my_lstat Perl_my_memcmp Perl_my_memset -Perl_my_ntohl Perl_my_pclose Perl_my_popen Perl_my_setenv Perl_my_stat Perl_my_swap +Perl_my_htonl +Perl_my_ntohl Perl_my_unexec -Perl_newANONHASH Perl_newANONLIST +Perl_newANONHASH Perl_newANONSUB Perl_newASSIGNOP -Perl_newAV -Perl_newAVREF -Perl_newBINOP Perl_newCONDOP Perl_newCONSTSUB -Perl_newCVREF Perl_newFORM Perl_newFOROP -Perl_newGVOP -Perl_newGVREF -Perl_newGVgen -Perl_newHV -Perl_newHVREF -Perl_newHVhv -Perl_newIO -Perl_newLISTOP Perl_newLOGOP Perl_newLOOPEX Perl_newLOOPOP Perl_newNULLLIST Perl_newOP -Perl_newPMOP Perl_newPROG -Perl_newPVOP Perl_newRANGE -Perl_newRV -Perl_newRV_noinc Perl_newSLICEOP Perl_newSTATEOP Perl_newSUB +Perl_newXS +Perl_newAV +Perl_newAVREF +Perl_newBINOP +Perl_newCVREF +Perl_newGVOP +Perl_newGVgen +Perl_newGVREF +Perl_newHVREF +Perl_newHV +Perl_newHVhv +Perl_newIO +Perl_newLISTOP +Perl_newPMOP +Perl_newPVOP +Perl_newRV +Perl_newRV_noinc Perl_newSV -Perl_newSVOP Perl_newSVREF +Perl_newSVOP Perl_newSViv Perl_newSVnv Perl_newSVpv -Perl_newSVpvf Perl_newSVpvn +Perl_newSVpvf Perl_newSVrv Perl_newSVsv Perl_newUNOP Perl_newWHILEOP -Perl_newXS -Perl_new_collate -Perl_new_ctype -Perl_new_numeric -Perl_new_stackinfo Perl_new_struct_thread +Perl_new_stackinfo Perl_nextargv Perl_ninstr -Perl_oopsAV Perl_oopsCV -Perl_oopsHV -Perl_op_const_sv -Perl_op_dump Perl_op_free Perl_package Perl_pad_alloc Perl_pad_allocmy Perl_pad_findmy -Perl_pad_free +Perl_oopsAV +Perl_oopsHV Perl_pad_leavemy -Perl_pad_reset Perl_pad_sv +Perl_pad_free +Perl_pad_reset Perl_pad_swipe Perl_peep perl_alloc +Perl_call_atexit +Perl_call_argv +Perl_call_method +Perl_call_pv +Perl_call_sv perl_construct perl_destruct +Perl_eval_pv +Perl_eval_sv perl_free +Perl_get_sv +Perl_get_av +Perl_get_hv +Perl_get_cv +Perl_init_i18nl10n +Perl_init_i18nl14n +Perl_new_collate +Perl_new_ctype +Perl_new_numeric +Perl_set_numeric_local +Perl_set_numeric_standard perl_parse +Perl_require_pv perl_run Perl_pidgone Perl_pmflag -Perl_pmop_dump Perl_pmruntime Perl_pmtrans Perl_pop_return Perl_pop_scope -Perl_pregcomp -Perl_pregexec -Perl_pregfree Perl_prepend_elem Perl_push_return Perl_push_scope -Perl_pv_display -Perl_realloc Perl_ref Perl_refkids Perl_regdump +Perl_pregexec +Perl_pregfree +Perl_pregcomp Perl_regexec_flags -Perl_reginitcolors Perl_regnext Perl_regprop Perl_repeatcpy -Perl_require_pv Perl_rninstr Perl_rsignal Perl_rsignal_restore Perl_rsignal_save Perl_rsignal_state -Perl_runops_debug -Perl_runops_standard Perl_rxres_free Perl_rxres_restore Perl_rxres_save -Perl_safesyscalloc -Perl_safesysfree -Perl_safesysmalloc -Perl_safesysrealloc -Perl_safexcalloc -Perl_safexfree -Perl_safexmalloc -Perl_safexrealloc Perl_same_dirent -Perl_save_I16 -Perl_save_I32 +Perl_savepv +Perl_savepvn +Perl_savestack_grow Perl_save_aelem Perl_save_alloc Perl_save_aptr @@ -436,15 +424,17 @@ Perl_save_ary Perl_save_clearsv Perl_save_delete Perl_save_destructor +Perl_save_freesv Perl_save_freeop Perl_save_freepv -Perl_save_freesv Perl_save_generic_svref Perl_save_gp Perl_save_hash Perl_save_helem Perl_save_hints Perl_save_hptr +Perl_save_I16 +Perl_save_I32 Perl_save_int Perl_save_item Perl_save_iv @@ -452,15 +442,12 @@ Perl_save_list Perl_save_long Perl_save_nogv Perl_save_op +Perl_save_scalar Perl_save_pptr Perl_save_re_context -Perl_save_scalar Perl_save_sptr Perl_save_svref Perl_save_threadsv -Perl_savepv -Perl_savepvn -Perl_savestack_grow Perl_sawparens Perl_scalar Perl_scalarkids @@ -472,12 +459,10 @@ Perl_scan_num Perl_scan_oct Perl_scope Perl_screaminstr -Perl_set_numeric_local -Perl_set_numeric_standard -Perl_setdefout Perl_setenv_getix -Perl_share_hek +Perl_setdefout Perl_sharepvn +Perl_share_hek Perl_sighandler Perl_stack_grow Perl_start_subparse @@ -489,19 +474,19 @@ Perl_sv_2iv Perl_sv_2mortal Perl_sv_2nv Perl_sv_2pv -Perl_sv_2pv_nolen Perl_sv_2uv +Perl_sv_iv +Perl_sv_uv +Perl_sv_nv +Perl_sv_pvn +Perl_sv_true Perl_sv_add_arena Perl_sv_backoff Perl_sv_bless -Perl_sv_catpv -Perl_sv_catpv_mg Perl_sv_catpvf -Perl_sv_catpvf_mg +Perl_sv_catpv Perl_sv_catpvn -Perl_sv_catpvn_mg Perl_sv_catsv -Perl_sv_catsv_mg Perl_sv_chop Perl_sv_clean_all Perl_sv_clean_objs @@ -511,10 +496,9 @@ Perl_sv_cmp_locale Perl_sv_collxfrm Perl_sv_compile_2op Perl_sv_dec -Perl_sv_derived_from Perl_sv_dump +Perl_sv_derived_from Perl_sv_eq -Perl_sv_force_normal Perl_sv_free Perl_sv_free_arenas Perl_sv_gets @@ -523,81 +507,58 @@ Perl_sv_inc Perl_sv_insert Perl_sv_isa Perl_sv_isobject -Perl_sv_iv Perl_sv_len Perl_sv_len_utf8 Perl_sv_magic Perl_sv_mortalcopy Perl_sv_newmortal Perl_sv_newref -Perl_sv_nv Perl_sv_peek -Perl_sv_pos_b2u Perl_sv_pos_u2b -Perl_sv_pv -Perl_sv_pvn +Perl_sv_pos_b2u Perl_sv_pvn_force Perl_sv_reftype Perl_sv_replace Perl_sv_report_used Perl_sv_reset -Perl_sv_rvweaken -Perl_sv_setiv -Perl_sv_setiv_mg -Perl_sv_setnv -Perl_sv_setnv_mg -Perl_sv_setpv -Perl_sv_setpv_mg Perl_sv_setpvf -Perl_sv_setpvf_mg +Perl_sv_setiv Perl_sv_setpviv -Perl_sv_setpviv_mg -Perl_sv_setpvn -Perl_sv_setpvn_mg +Perl_sv_setuv +Perl_sv_setnv Perl_sv_setref_iv Perl_sv_setref_nv Perl_sv_setref_pv Perl_sv_setref_pvn +Perl_sv_setpv +Perl_sv_setpvn Perl_sv_setsv -Perl_sv_setsv_mg -Perl_sv_setuv -Perl_sv_setuv_mg Perl_sv_taint Perl_sv_tainted -Perl_sv_true Perl_sv_unmagic Perl_sv_unref Perl_sv_untaint Perl_sv_upgrade Perl_sv_usepvn -Perl_sv_usepvn_mg -Perl_sv_uv Perl_sv_vcatpvfn Perl_sv_vsetpvfn -Perl_swash_fetch Perl_swash_init +Perl_swash_fetch Perl_taint_env Perl_taint_proper -Perl_tmps_grow -Perl_to_uni_lower -Perl_to_uni_lower_lc -Perl_to_uni_title -Perl_to_uni_title_lc -Perl_to_uni_upper -Perl_to_uni_upper_lc Perl_to_utf8_lower -Perl_to_utf8_title Perl_to_utf8_upper +Perl_to_utf8_title Perl_unlnk Perl_unlock_condpair -Perl_unshare_hek Perl_unsharepvn +Perl_unshare_hek +Perl_utilize Perl_utf16_to_utf8 Perl_utf16_to_utf8_reversed Perl_utf8_distance Perl_utf8_hop Perl_utf8_to_uv -Perl_utilize Perl_uv_to_utf8 Perl_vivify_defelem Perl_vivify_ref @@ -606,8 +567,58 @@ Perl_warn Perl_warner Perl_watch Perl_whichsig -Perl_yydestruct Perl_yyerror Perl_yylex +Perl_yylex Perl_yyparse Perl_yywarn +Perl_dump_mstats +Perl_malloc +Perl_calloc +Perl_realloc +Perl_mfree +Perl_safesysmalloc +Perl_safesyscalloc +Perl_safesysrealloc +Perl_safesysfree +Perl_safexmalloc +Perl_safexcalloc +Perl_safexrealloc +Perl_safexfree +Perl_GetVars +Perl_yydestruct +Perl_runops_standard +Perl_runops_debug +Perl_ErrorNo +Perl_sv_catpvf_mg +Perl_sv_catpv_mg +Perl_sv_catpvn_mg +Perl_sv_catsv_mg +Perl_sv_setpvf_mg +Perl_sv_setiv_mg +Perl_sv_setpviv_mg +Perl_sv_setuv_mg +Perl_sv_setnv_mg +Perl_sv_setpv_mg +Perl_sv_setpvn_mg +Perl_sv_setsv_mg +Perl_sv_usepvn_mg +Perl_get_vtbl +Perl_pv_display +Perl_dump_indent +Perl_do_gv_dump +Perl_do_gvgv_dump +Perl_do_hv_dump +Perl_do_magic_dump +Perl_do_op_dump +Perl_do_pmop_dump +Perl_do_sv_dump +Perl_magic_dump +Perl_default_protect +Perl_reginitcolors +Perl_sv_2pv_nolen +Perl_sv_pv +Perl_sv_force_normal +Perl_tmps_grow +Perl_sv_rvweaken +Perl_magic_killbackrefs diff --git a/globals.c b/globals.c index b31b9b1..857a32c 100644 --- a/globals.c +++ b/globals.c @@ -58,7 +58,7 @@ Perl_do_exec(pTHX_ char *cmd) } int -do_aspawn(pTHX_ void *vreally, void **vmark, void **vsp) +S_do_aspawn(pTHX_ void *vreally, void **vmark, void **vsp) { return PerlProc_aspawn(vreally, vmark, vsp); } diff --git a/gv.c b/gv.c index 5ae3cd3..e531204 100644 --- a/gv.c +++ b/gv.c @@ -24,7 +24,7 @@ GV * Perl_gv_AVadd(pTHX_ register GV *gv) { if (!gv || SvTYPE((SV*)gv) != SVt_PVGV) - croak("Bad symbol for array"); + Perl_croak(aTHX_ "Bad symbol for array"); if (!GvAV(gv)) GvAV(gv) = newAV(); return gv; @@ -34,7 +34,7 @@ GV * Perl_gv_HVadd(pTHX_ register GV *gv) { if (!gv || SvTYPE((SV*)gv) != SVt_PVGV) - croak("Bad symbol for hash"); + Perl_croak(aTHX_ "Bad symbol for hash"); if (!GvHV(gv)) GvHV(gv) = newHV(); return gv; @@ -44,7 +44,7 @@ GV * Perl_gv_IOadd(pTHX_ register GV *gv) { if (!gv || SvTYPE((SV*)gv) != SVt_PVGV) - croak("Bad symbol for filehandle"); + Perl_croak(aTHX_ "Bad symbol for filehandle"); if (!GvIOp(gv)) GvIOp(gv) = newIO(); return gv; @@ -137,7 +137,7 @@ Perl_gv_init(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, int multi) } STATIC void -gv_init_sv(pTHX_ GV *gv, I32 sv_type) +S_gv_init_sv(pTHX_ GV *gv, I32 sv_type) { switch (sv_type) { case SVt_PVIO: @@ -164,10 +164,10 @@ Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level) if (!stash) return 0; if ((level > 100) || (level < -100)) - croak("Recursive inheritance detected while looking for method '%s' in package '%s'", + Perl_croak(aTHX_ "Recursive inheritance detected while looking for method '%s' in package '%s'", name, HvNAME(stash)); - DEBUG_o( deb("Looking for method %s in package %s\n",name,HvNAME(stash)) ); + DEBUG_o( Perl_deb(aTHX_ "Looking for method %s in package %s\n",name,HvNAME(stash)) ); gvp = (GV**)hv_fetch(stash, name, len, (level >= 0)); if (!gvp) @@ -207,7 +207,7 @@ Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level) dTHR; /* just for SvREFCNT_dec */ gvp = (GV**)hv_fetch(stash, "ISA", 3, TRUE); if (!gvp || !(gv = *gvp)) - croak("Cannot create %s::ISA", HvNAME(stash)); + Perl_croak(aTHX_ "Cannot create %s::ISA", HvNAME(stash)); if (SvTYPE(gv) != SVt_PVGV) gv_init(gv, stash, "ISA", 3, TRUE); SvREFCNT_dec(GvAV(gv)); @@ -226,7 +226,7 @@ Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level) if (!basestash) { dTHR; /* just for ckWARN */ if (ckWARN(WARN_MISC)) - warner(WARN_MISC, "Can't locate package %s for @%s::ISA", + Perl_warner(aTHX_ WARN_MISC, "Can't locate package %s for @%s::ISA", SvPVX(sv), HvNAME(stash)); continue; } @@ -300,10 +300,10 @@ Perl_gv_fetchmethod_autoload(pTHX_ HV *stash, const char *name, I32 autoload) --nsplit; if ((nsplit - origname) == 5 && strnEQ(origname, "SUPER", 5)) { /* ->SUPER::method should really be looked up in original stash */ - SV *tmpstr = sv_2mortal(newSVpvf("%s::SUPER", + SV *tmpstr = sv_2mortal(Perl_newSVpvf(aTHX_ "%s::SUPER", HvNAME(PL_curcop->cop_stash))); stash = gv_stashpvn(SvPVX(tmpstr), SvCUR(tmpstr), TRUE); - DEBUG_o( deb("Treating %s as %s::%s\n", + DEBUG_o( Perl_deb(aTHX_ "Treating %s as %s::%s\n", origname, HvNAME(stash), name) ); } else @@ -363,7 +363,7 @@ Perl_gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method) */ if (ckWARN(WARN_DEPRECATED) && !method && (GvCVGEN(gv) || GvSTASH(gv) != stash)) - warner(WARN_DEPRECATED, + Perl_warner(aTHX_ WARN_DEPRECATED, "Use of inherited AUTOLOAD for non-method %s::%.*s() is deprecated", HvNAME(stash), (int)len, name); @@ -548,12 +548,12 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type) sv_type == SVt_PVAV && !GvIMPORTED_AV(*gvp) || sv_type == SVt_PVHV && !GvIMPORTED_HV(*gvp) ) { - warn("Variable \"%c%s\" is not imported", + Perl_warn(aTHX_ "Variable \"%c%s\" is not imported", sv_type == SVt_PVAV ? '@' : sv_type == SVt_PVHV ? '%' : '$', name); if (GvCVu(*gvp)) - warn("(Did you mean &%s instead?)\n", name); + Perl_warn(aTHX_ "(Did you mean &%s instead?)\n", name); stash = 0; } } @@ -576,10 +576,10 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type) : (sv_type == SVt_PVHV) ? '%' : 0); if (sv_type_char) - warn("Global symbol \"%c%s\" requires explicit package name", + Perl_warn(aTHX_ "Global symbol \"%c%s\" requires explicit package name", sv_type_char, name); else - warn("Global symbol \"%s\" requires explicit package name", + Perl_warn(aTHX_ "Global symbol \"%s\" requires explicit package name", name); } ++PL_error_count; @@ -610,7 +610,7 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type) /* Adding a new symbol */ if (add & GV_ADDWARN) - warn("Had to create %s unexpectedly", nambeg); + Perl_warn(aTHX_ "Had to create %s unexpectedly", nambeg); gv_init(gv, stash, name, len, add & GV_ADDMULTI); gv_init_sv(gv, sv_type); GvFLAGS(gv) |= add_gvflags; @@ -718,11 +718,11 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type) if(!stash || !(gv_fetchmethod(stash, "TIEHASH"))) { dSP; PUTBACK; - perl_require_pv("Errno.pm"); + require_pv("Errno.pm"); SPAGAIN; stash = gv_stashpvn("Errno",5,FALSE); if (!stash || !(gv_fetchmethod(stash, "TIEHASH"))) - croak("Can't use %%! because Errno.pm is not available"); + Perl_croak(aTHX_ "Can't use %%! because Errno.pm is not available"); } } goto magicalize; @@ -737,7 +737,7 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type) case '#': case '*': if (ckWARN(WARN_DEPRECATED) && len == 1 && sv_type == SVt_PV) - warner(WARN_DEPRECATED, "Use of $%s is deprecated", name); + Perl_warner(aTHX_ WARN_DEPRECATED, "Use of $%s is deprecated", name); /* FALL THROUGH */ case '[': case '^': @@ -905,7 +905,7 @@ Perl_gv_check(pTHX_ HV *stash) PL_curcop->cop_filegv = filegv; if (filegv && GvMULTI(filegv)) /* Filename began with slash */ continue; - warner(WARN_ONCE, + Perl_warner(aTHX_ WARN_ONCE, "Name \"%s::%s\" used only once: possible typo", HvNAME(stash), GvNAME(gv)); } @@ -916,7 +916,7 @@ Perl_gv_check(pTHX_ HV *stash) GV * Perl_newGVgen(pTHX_ char *pack) { - return gv_fetchpv(form("%s::_GEN_%ld", pack, (long)PL_gensym++), + return gv_fetchpv(Perl_form(aTHX_ "%s::_GEN_%ld", pack, (long)PL_gensym++), TRUE, SVt_PVGV); } @@ -950,7 +950,7 @@ Perl_gp_free(pTHX_ GV *gv) if (!gv || !(gp = GvGP(gv))) return; if (gp->gp_refcnt == 0) { - warn("Attempt to free unreferenced glob pointers"); + Perl_warn(aTHX_ "Attempt to free unreferenced glob pointers"); return; } if (gp->gp_cv) { @@ -1026,7 +1026,7 @@ Perl_Gv_AMupdate(pTHX_ HV *stash) } sv_unmagic((SV*)stash, 'c'); - DEBUG_o( deb("Recalcing overload magic in package %s\n",HvNAME(stash)) ); + DEBUG_o( Perl_deb(aTHX_ "Recalcing overload magic in package %s\n",HvNAME(stash)) ); amt.was_ok_am = PL_amagic_generation; amt.was_ok_sub = PL_sub_generation; @@ -1069,7 +1069,7 @@ Perl_Gv_AMupdate(pTHX_ HV *stash) /* FALL THROUGH */ case SVt_PVHV: case SVt_PVAV: - croak("Not a subroutine reference in overload table"); + Perl_croak(aTHX_ "Not a subroutine reference in overload table"); return FALSE; case SVt_PVCV: cv = (CV*)sv; @@ -1081,7 +1081,7 @@ Perl_Gv_AMupdate(pTHX_ HV *stash) } if (cv) filled=1; else { - croak("Method for operation %s not found in package %.256s during blessing\n", + Perl_croak(aTHX_ "Method for operation %s not found in package %.256s during blessing\n", cp,HvNAME(stash)); return FALSE; } @@ -1107,8 +1107,8 @@ Perl_Gv_AMupdate(pTHX_ HV *stash) } for (i = 1; i < NofAMmeth; i++) { - SV *cookie = sv_2mortal(newSVpvf("(%s", cp = PL_AMG_names[i])); - DEBUG_o( deb("Checking overloading of `%s' in package `%.256s'\n", + SV *cookie = sv_2mortal(Perl_newSVpvf(aTHX_ "(%s", cp = PL_AMG_names[i])); + DEBUG_o( Perl_deb(aTHX_ "Checking overloading of `%s' in package `%.256s'\n", cp, HvNAME(stash)) ); /* don't fill the cache while looking up! */ gv = gv_fetchmeth(stash, SvPVX(cookie), SvCUR(cookie), -1); @@ -1119,7 +1119,7 @@ Perl_Gv_AMupdate(pTHX_ HV *stash) /* GvSV contains the name of the method. */ GV *ngv; - DEBUG_o( deb("Resolving method `%.256s' for overloaded `%s' in package `%.256s'\n", + DEBUG_o( Perl_deb(aTHX_ "Resolving method `%.256s' for overloaded `%s' in package `%.256s'\n", SvPV(GvSV(gv), n_a), cp, HvNAME(stash)) ); if (!SvPOK(GvSV(gv)) || !(ngv = gv_fetchmethod_autoload(stash, SvPVX(GvSV(gv)), @@ -1127,17 +1127,17 @@ Perl_Gv_AMupdate(pTHX_ HV *stash) { /* Can be an import stub (created by `can'). */ if (GvCVGEN(gv)) { - croak("Stub found while resolving method `%.256s' overloading `%s' in package `%.256s'", + Perl_croak(aTHX_ "Stub found while resolving method `%.256s' overloading `%s' in package `%.256s'", (SvPOK(GvSV(gv)) ? SvPVX(GvSV(gv)) : "???" ), cp, HvNAME(stash)); } else - croak("Can't resolve method `%.256s' overloading `%s' in package `%.256s'", + Perl_croak(aTHX_ "Can't resolve method `%.256s' overloading `%s' in package `%.256s'", (SvPOK(GvSV(gv)) ? SvPVX(GvSV(gv)) : "???" ), cp, HvNAME(stash)); } cv = GvCV(gv = ngv); } - DEBUG_o( deb("Overloading `%s' in package `%.256s' via `%.256s::%.256s' \n", + DEBUG_o( Perl_deb(aTHX_ "Overloading `%s' in package `%.256s' via `%.256s::%.256s' \n", cp, HvNAME(stash), HvNAME(GvSTASH(CvGV(cv))), GvNAME(CvGV(cv))) ); filled = 1; @@ -1327,7 +1327,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags) } else { SV *msg; if (off==-1) off=method; - msg = sv_2mortal(newSVpvf( + msg = sv_2mortal(Perl_newSVpvf(aTHX_ "Operation `%s': no method found,%sargument %s%s%s%s", PL_AMG_names[method + assignshift], (flags & AMGf_unary ? " " : "\n\tleft "), @@ -1346,9 +1346,9 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags) HvNAME(SvSTASH(SvRV(right))): "")); if (amtp && amtp->fallback >= AMGfallYES) { - DEBUG_o( deb("%s", SvPVX(msg)) ); + DEBUG_o( Perl_deb(aTHX_ "%s", SvPVX(msg)) ); } else { - croak("%_", msg); + Perl_croak(aTHX_ "%_", msg); } return NULL; } @@ -1356,7 +1356,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags) } } if (!notfound) { - DEBUG_o( deb( + DEBUG_o( Perl_deb(aTHX_ "Overloaded operator `%s'%s%s%s:\n\tmethod%s found%s in package %s%s\n", PL_AMG_names[off], method+assignshift==off? "" : @@ -1415,7 +1415,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags) if (PERLDB_SUB && PL_curstash != PL_debstash) PL_op->op_private |= OPpENTERSUB_DB; PUTBACK; - pp_pushmark(ARGS); + pp_pushmark(); EXTEND(SP, notfound + 5); PUSHs(lr>0? right: left); @@ -1427,8 +1427,8 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags) PUSHs((SV*)cv); PUTBACK; - if (PL_op = pp_entersub(ARGS)) - CALLRUNOPS(); + if (PL_op = Perl_pp_entersub(aTHX)) + CALLRUNOPS(aTHX); LEAVE; SPAGAIN; @@ -1467,7 +1467,7 @@ Perl_amagic_call(pTHX_ SV *left, SV *right, int method, int flags) return boolSV(ans); } else if (method==copy_amg) { if (!SvROK(res)) { - croak("Copy method did not return a reference"); + Perl_croak(aTHX_ "Copy method did not return a reference"); } return SvREFCNT_inc(SvRV(res)); } else { diff --git a/hv.c b/hv.c index 9a7b31f..8656fa0 100644 --- a/hv.c +++ b/hv.c @@ -25,7 +25,7 @@ #endif STATIC HE* -new_he(pTHX) +S_new_he(pTHX) { HE* he; LOCK_SV_MUTEX; @@ -38,7 +38,7 @@ new_he(pTHX) } STATIC void -del_he(pTHX_ HE *p) +S_del_he(pTHX_ HE *p) { LOCK_SV_MUTEX; HeNEXT(p) = (HE*)PL_he_root; @@ -47,7 +47,7 @@ del_he(pTHX_ HE *p) } STATIC void -more_he(pTHX) +S_more_he(pTHX) { register HE* he; register HE* heend; @@ -62,7 +62,7 @@ more_he(pTHX) } STATIC HEK * -save_hek(pTHX_ const char *str, I32 len, U32 hash) +S_save_hek(pTHX_ const char *str, I32 len, U32 hash) { char *k; register HEK *hek; @@ -253,7 +253,7 @@ Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, register U32 hash) } STATIC void -hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store) +S_hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store) { MAGIC *mg = SvMAGIC(hv); *needs_copy = FALSE; @@ -700,7 +700,7 @@ Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash) } STATIC void -hsplit(pTHX_ HV *hv) +S_hsplit(pTHX_ HV *hv) { register XPVHV* xhv = (XPVHV*)SvANY(hv); I32 oldsize = (I32) xhv->xhv_max + 1; /* sic(k) */ @@ -957,7 +957,7 @@ Perl_hv_clear(pTHX_ HV *hv) } STATIC void -hfreeentries(pTHX_ HV *hv) +S_hfreeentries(pTHX_ HV *hv) { register HE **array; register HE *entry; @@ -1018,7 +1018,7 @@ Perl_hv_iterinit(pTHX_ HV *hv) HE *entry; if (!hv) - croak("Bad hash"); + Perl_croak(aTHX_ "Bad hash"); xhv = (XPVHV*)SvANY(hv); entry = xhv->xhv_eiter; if (entry && HvLAZYDEL(hv)) { /* was deleted earlier? */ @@ -1039,7 +1039,7 @@ Perl_hv_iternext(pTHX_ HV *hv) MAGIC* mg; if (!hv) - croak("Bad hash"); + Perl_croak(aTHX_ "Bad hash"); xhv = (XPVHV*)SvANY(hv); oldentry = entry = xhv->xhv_eiter; @@ -1205,7 +1205,7 @@ Perl_unsharepvn(pTHX_ const char *str, I32 len, U32 hash) UNLOCK_STRTAB_MUTEX; if (!found) - warn("Attempt to free non-existent shared string"); + Perl_warn(aTHX_ "Attempt to free non-existent shared string"); } /* get a (constant) string ptr from the global string table diff --git a/lib/ExtUtils/xsubpp b/lib/ExtUtils/xsubpp index 1ee7b29..416c1d5 100755 --- a/lib/ExtUtils/xsubpp +++ b/lib/ExtUtils/xsubpp @@ -1024,12 +1024,12 @@ EOF if ($ALIAS) { print Q<<"EOF" if $cond } # if ($cond) -# croak("Usage: %s($orig_args)", GvNAME(CvGV(cv))); +# Perl_croak(aTHX_ "Usage: %s($orig_args)", GvNAME(CvGV(cv))); EOF else { print Q<<"EOF" if $cond } # if ($cond) -# croak("Usage: $pname($orig_args)"); +# Perl_croak(aTHX_ "Usage: $pname($orig_args)"); EOF print Q<<"EOF" if $PPCODE; @@ -1080,7 +1080,7 @@ EOF # do code if (/^\s*NOT_IMPLEMENTED_YET/) { - print "\n\tcroak(\"$pname: not implemented yet\");\n"; + print "\n\tPerl_croak(aTHX_ \"$pname: not implemented yet\");\n"; $_ = '' ; } else { if ($ret_type ne "void") { @@ -1176,7 +1176,7 @@ EOF print Q<>LOG_OF_MIN_ARENA) + 1)<mgs_sv = sv; @@ -64,7 +64,7 @@ save_magic(pTHX_ I32 mgs_ix, SV *sv) } STATIC void -restore_magic(pTHX_ void *p) +S_restore_magic(pTHX_ void *p) { dTHR; MGS* mgs = SSPTR((I32)p, MGS*); @@ -138,7 +138,7 @@ Perl_mg_get(pTHX_ SV *sv) while ((mg = *mgp) != 0) { MGVTBL* vtbl = mg->mg_virtual; if (!(mg->mg_flags & MGf_GSKIP) && vtbl && (vtbl->svt_get != NULL)) { - (VTBL->svt_get)(sv, mg); + (VTBL->svt_get)(aTHX_ sv, mg); /* Ignore this magic if it's been deleted */ if ((mg == (mgp_valid ? *mgp : SvMAGIC(sv))) && (mg->mg_flags & MGf_GSKIP)) @@ -176,7 +176,7 @@ Perl_mg_set(pTHX_ SV *sv) (SSPTR(mgs_ix, MGS*))->mgs_flags = 0; } if (vtbl && (vtbl->svt_set != NULL)) - (VTBL->svt_set)(sv, mg); + (VTBL->svt_set)(aTHX_ sv, mg); } restore_magic((void*)mgs_ix); @@ -198,7 +198,7 @@ Perl_mg_length(pTHX_ SV *sv) mgs_ix = SSNEW(sizeof(MGS)); save_magic(mgs_ix, sv); /* omit MGf_GSKIP -- not changed here */ - len = (VTBL->svt_len)(sv, mg); + len = (VTBL->svt_len)(aTHX_ sv, mg); restore_magic((void*)mgs_ix); return len; } @@ -222,7 +222,7 @@ Perl_mg_size(pTHX_ SV *sv) mgs_ix = SSNEW(sizeof(MGS)); save_magic(mgs_ix, sv); /* omit MGf_GSKIP -- not changed here */ - len = (VTBL->svt_len)(sv, mg); + len = (VTBL->svt_len)(aTHX_ sv, mg); restore_magic((void*)mgs_ix); return len; } @@ -235,7 +235,7 @@ Perl_mg_size(pTHX_ SV *sv) case SVt_PVHV: /* FIXME */ default: - croak("Size magic not implemented"); + Perl_croak(aTHX_ "Size magic not implemented"); break; } return 0; @@ -255,7 +255,7 @@ Perl_mg_clear(pTHX_ SV *sv) /* omit GSKIP -- never set here */ if (vtbl && (vtbl->svt_clear != NULL)) - (VTBL->svt_clear)(sv, mg); + (VTBL->svt_clear)(aTHX_ sv, mg); } restore_magic((void*)mgs_ix); @@ -298,7 +298,7 @@ Perl_mg_free(pTHX_ SV *sv) MGVTBL* vtbl = mg->mg_virtual; moremagic = mg->mg_moremagic; if (vtbl && (vtbl->svt_free != NULL)) - (VTBL->svt_free)(sv, mg); + (VTBL->svt_free)(aTHX_ sv, mg); if (mg->mg_ptr && mg->mg_type != 'g') if (mg->mg_len >= 0) Safefree(mg->mg_ptr); @@ -733,18 +733,18 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg) break; case '(': sv_setiv(sv, (IV)PL_gid); - sv_setpvf(sv, "%Vd", (IV)PL_gid); + Perl_sv_setpvf(aTHX_ sv, "%Vd", (IV)PL_gid); goto add_groups; case ')': sv_setiv(sv, (IV)PL_egid); - sv_setpvf(sv, "%Vd", (IV)PL_egid); + Perl_sv_setpvf(aTHX_ sv, "%Vd", (IV)PL_egid); add_groups: #ifdef HAS_GETGROUPS { Groups_t gary[NGROUPS]; i = getgroups(NGROUPS,gary); while (--i >= 0) - sv_catpvf(sv, " %Vd", (IV)gary[i]); + Perl_sv_catpvf(aTHX_ sv, " %Vd", (IV)gary[i]); } #endif SvIOK_on(sv); /* what a wonderful hack! */ @@ -860,7 +860,7 @@ int Perl_magic_set_all_env(pTHX_ SV *sv, MAGIC *mg) { #if defined(VMS) - die("Can't make list assignment to %%ENV on this system"); + Perl_die(aTHX_ "Can't make list assignment to %%ENV on this system"); #else dTHR; if (PL_localizing) { @@ -882,7 +882,7 @@ int Perl_magic_clear_all_env(pTHX_ SV *sv, MAGIC *mg) { #if defined(VMS) - die("Can't make list assignment to %%ENV on this system"); + Perl_die(aTHX_ "Can't make list assignment to %%ENV on this system"); #else # ifdef WIN32 char *envv = GetEnvironmentStrings(); @@ -980,7 +980,7 @@ Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg) else if (strEQ(s,"__PARSE__")) svp = &PL_parsehook; else - croak("No such hook: %s", s); + Perl_croak(aTHX_ "No such hook: %s", s); i = 0; if (*svp) { SvREFCNT_dec(*svp); @@ -991,7 +991,7 @@ Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg) i = whichsig(s); /* ...no, a brick */ if (!i) { if (ckWARN(WARN_SIGNAL) || strEQ(s,"ALARM")) - warner(WARN_SIGNAL, "No such signal: SIG%s", s); + Perl_warner(aTHX_ WARN_SIGNAL, "No such signal: SIG%s", s); return 0; } SvREFCNT_dec(PL_psig_name[i]); @@ -1087,7 +1087,7 @@ Perl_magic_setnkeys(pTHX_ SV *sv, MAGIC *mg) /* caller is responsible for stack switching/cleanup */ STATIC int -magic_methcall(pTHX_ SV *sv, MAGIC *mg, char *meth, I32 flags, int n, SV *val) +S_magic_methcall(pTHX_ SV *sv, MAGIC *mg, char *meth, I32 flags, int n, SV *val) { dSP; @@ -1114,7 +1114,7 @@ magic_methcall(pTHX_ SV *sv, MAGIC *mg, char *meth, I32 flags, int n, SV *val) } STATIC int -magic_methpack(pTHX_ SV *sv, MAGIC *mg, char *meth) +S_magic_methpack(pTHX_ SV *sv, MAGIC *mg, char *meth) { dSP; @@ -1179,7 +1179,8 @@ Perl_magic_sizepack(pTHX_ SV *sv, MAGIC *mg) return retval; } -int magic_wipepack(SV *sv, MAGIC *mg) +int +Perl_magic_wipepack(pTHX_ SV *sv, MAGIC *mg) { dSP; @@ -1242,7 +1243,7 @@ Perl_magic_setdbline(pTHX_ SV *sv, MAGIC *mg) if (svp && SvIOKp(*svp) && (o = (OP*)SvSTASH(*svp))) o->op_private = i; else - warn("Can't break at that line\n"); + Perl_warn(aTHX_ "Can't break at that line\n"); return 0; } @@ -1571,7 +1572,7 @@ Perl_vivify_defelem(pTHX_ SV *sv) value = *svp; } if (!value || value == &PL_sv_undef) - croak(PL_no_helem, SvPV(mg->mg_obj, n_a)); + Perl_croak(aTHX_ PL_no_helem, SvPV(mg->mg_obj, n_a)); } else { AV* av = (AV*)LvTARG(sv); @@ -1580,7 +1581,7 @@ Perl_vivify_defelem(pTHX_ SV *sv) else { SV** svp = av_fetch(av, LvTARGOFF(sv), TRUE); if (!svp || (value = *svp) == &PL_sv_undef) - croak(PL_no_aelem, (I32)LvTARGOFF(sv)); + Perl_croak(aTHX_ PL_no_aelem, (I32)LvTARGOFF(sv)); } } (void)SvREFCNT_inc(value); @@ -1601,7 +1602,7 @@ Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg) while (i >= 0) { if (svp[i] && svp[i] != &PL_sv_undef) { if (!SvWEAKREF(svp[i])) - croak("panic: magic_killbackrefs"); + Perl_croak(aTHX_ "panic: magic_killbackrefs"); /* XXX Should we check that it hasn't changed? */ SvRV(svp[i]) = 0; SvOK_off(svp[i]); @@ -1872,7 +1873,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) (void)PerlProc_setuid(PL_uid); else { PL_uid = (I32)PerlProc_getuid(); - croak("setruid() not implemented"); + Perl_croak(aTHX_ "setruid() not implemented"); } #endif #endif @@ -1899,7 +1900,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) PerlProc_setuid(PL_euid); else { PL_euid = (I32)PerlProc_geteuid(); - croak("seteuid() not implemented"); + Perl_croak(aTHX_ "seteuid() not implemented"); } #endif #endif @@ -1926,7 +1927,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) (void)PerlProc_setgid(PL_gid); else { PL_gid = (I32)PerlProc_getgid(); - croak("setrgid() not implemented"); + Perl_croak(aTHX_ "setrgid() not implemented"); } #endif #endif @@ -1976,7 +1977,7 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg) (void)PerlProc_setgid(PL_egid); else { PL_egid = (I32)PerlProc_getegid(); - croak("setegid() not implemented"); + Perl_croak(aTHX_ "setegid() not implemented"); } #endif #endif @@ -2061,7 +2062,7 @@ Perl_magic_mutexfree(pTHX_ SV *sv, MAGIC *mg) DEBUG_S(PerlIO_printf(PerlIO_stderr(), "0x%lx: magic_mutexfree 0x%lx\n", (unsigned long)thr, (unsigned long)sv);) if (MgOWNER(mg)) - croak("panic: magic_mutexfree"); + Perl_croak(aTHX_ "panic: magic_mutexfree"); MUTEX_DESTROY(MgMUTEXP(mg)); COND_DESTROY(MgCONDP(mg)); return 0; @@ -2090,7 +2091,7 @@ Perl_whichsig(pTHX_ char *sig) static SV* sig_sv; STATIC void -unwind_handler_stack(pTHX_ void *p) +S_unwind_handler_stack(pTHX_ void *p) { dTHR; U32 flags = *(U32*)p; @@ -2103,8 +2104,9 @@ unwind_handler_stack(pTHX_ void *p) } Signal_t -Perl_sighandler(pTHX_ int sig) +Perl_sighandler(int sig) { + dTHX; dSP; GV *gv = Nullgv; HV *st; @@ -2125,7 +2127,7 @@ Perl_sighandler(pTHX_ int sig) flags |= 16; if (!PL_psig_ptr[sig]) - die("Signal SIG%s received, but no signal handler set.\n", + Perl_die(aTHX_ "Signal SIG%s received, but no signal handler set.\n", PL_sig_name[sig]); /* Max number of items pushed there is 3*n or 4. We cannot fix @@ -2133,7 +2135,7 @@ Perl_sighandler(pTHX_ int sig) if (flags & 1) { PL_savestack_ix += 5; /* Protect save in progress. */ o_save_i = PL_savestack_ix; - SAVEDESTRUCTOR(unwind_handler_stack, (void*)&flags); + SAVEDESTRUCTOR(S_unwind_handler_stack, (void*)&flags); } if (flags & 4) PL_markstack_ptr++; /* Protect mark. */ @@ -2150,7 +2152,7 @@ Perl_sighandler(pTHX_ int sig) if (!cv || !CvROOT(cv)) { if (ckWARN(WARN_SIGNAL)) - warner(WARN_SIGNAL, "SIG%s handler \"%s\" not defined.\n", + Perl_warner(aTHX_ WARN_SIGNAL, "SIG%s handler \"%s\" not defined.\n", PL_sig_name[sig], (gv ? GvENAME(gv) : ((cv && CvGV(cv)) ? GvENAME(CvGV(cv)) diff --git a/mg.h b/mg.h index ebd47c3..6a8afdc 100644 --- a/mg.h +++ b/mg.h @@ -11,11 +11,11 @@ STRUCT_MGVTBL_DEFINITION; #else struct mgvtbl { - int (CPERLscope(*svt_get)) (SV *sv, MAGIC* mg); - int (CPERLscope(*svt_set)) (SV *sv, MAGIC* mg); - U32 (CPERLscope(*svt_len)) (SV *sv, MAGIC* mg); - int (CPERLscope(*svt_clear)) (SV *sv, MAGIC* mg); - int (CPERLscope(*svt_free)) (SV *sv, MAGIC* mg); + int (CPERLscope(*svt_get)) (pTHX_ SV *sv, MAGIC* mg); + int (CPERLscope(*svt_set)) (pTHX_ SV *sv, MAGIC* mg); + U32 (CPERLscope(*svt_len)) (pTHX_ SV *sv, MAGIC* mg); + int (CPERLscope(*svt_clear))(pTHX_ SV *sv, MAGIC* mg); + int (CPERLscope(*svt_free)) (pTHX_ SV *sv, MAGIC* mg); }; #endif diff --git a/miniperlmain.c b/miniperlmain.c index 3265bc7..1ac5de4 100644 --- a/miniperlmain.c +++ b/miniperlmain.c @@ -13,6 +13,7 @@ static void xs_init (pTHX); static PerlInterpreter *my_perl; +static struct perl_thread *thr; /* XXXXXX testing */ #if defined (__MINT__) || defined (atarist) /* The Atari operating system doesn't have a dynamic stack. The diff --git a/objXSUB.h b/objXSUB.h index 161a530..cdb9138 100644 --- a/objXSUB.h +++ b/objXSUB.h @@ -1,5 +1,5 @@ /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by embed.pl from global.sym, pp.sym, intrpvar.h, + This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -789,2421 +789,2095 @@ /* Functions */ -#undef Perl_ErrorNo -#define Perl_ErrorNo pPerl->Perl_ErrorNo -#undef Perl_GetVars -#define Perl_GetVars pPerl->Perl_GetVars -#undef Perl_Gv_AMupdate -#define Perl_Gv_AMupdate pPerl->Perl_Gv_AMupdate -#undef Perl_amagic_call -#define Perl_amagic_call pPerl->Perl_amagic_call -#undef Perl_append_elem -#define Perl_append_elem pPerl->Perl_append_elem -#undef Perl_append_list -#define Perl_append_list pPerl->Perl_append_list -#undef Perl_apply -#define Perl_apply pPerl->Perl_apply -#undef Perl_assertref -#define Perl_assertref pPerl->Perl_assertref -#undef Perl_av_clear -#define Perl_av_clear pPerl->Perl_av_clear -#undef Perl_av_extend -#define Perl_av_extend pPerl->Perl_av_extend -#undef Perl_av_fake -#define Perl_av_fake pPerl->Perl_av_fake -#undef Perl_av_fetch -#define Perl_av_fetch pPerl->Perl_av_fetch -#undef Perl_av_fill -#define Perl_av_fill pPerl->Perl_av_fill -#undef Perl_av_len -#define Perl_av_len pPerl->Perl_av_len -#undef Perl_av_make -#define Perl_av_make pPerl->Perl_av_make -#undef Perl_av_pop -#define Perl_av_pop pPerl->Perl_av_pop -#undef Perl_av_push -#define Perl_av_push pPerl->Perl_av_push -#undef Perl_av_reify -#define Perl_av_reify pPerl->Perl_av_reify -#undef Perl_av_shift -#define Perl_av_shift pPerl->Perl_av_shift -#undef Perl_av_store -#define Perl_av_store pPerl->Perl_av_store -#undef Perl_av_undef -#define Perl_av_undef pPerl->Perl_av_undef -#undef Perl_av_unshift -#define Perl_av_unshift pPerl->Perl_av_unshift -#undef Perl_avhv_exists_ent -#define Perl_avhv_exists_ent pPerl->Perl_avhv_exists_ent -#undef Perl_avhv_fetch_ent -#define Perl_avhv_fetch_ent pPerl->Perl_avhv_fetch_ent -#undef Perl_avhv_iternext -#define Perl_avhv_iternext pPerl->Perl_avhv_iternext -#undef Perl_avhv_iterval -#define Perl_avhv_iterval pPerl->Perl_avhv_iterval -#undef Perl_avhv_keys -#define Perl_avhv_keys pPerl->Perl_avhv_keys -#undef Perl_bind_match -#define Perl_bind_match pPerl->Perl_bind_match -#undef Perl_block_end -#define Perl_block_end pPerl->Perl_block_end -#undef Perl_block_gimme -#define Perl_block_gimme pPerl->Perl_block_gimme -#undef Perl_block_start -#define Perl_block_start pPerl->Perl_block_start -#undef Perl_boot_core_UNIVERSAL -#define Perl_boot_core_UNIVERSAL pPerl->Perl_boot_core_UNIVERSAL -#undef Perl_bset_obj_store -#define Perl_bset_obj_store pPerl->Perl_bset_obj_store -#undef Perl_call_argv -#define Perl_call_argv pPerl->Perl_call_argv -#undef Perl_call_atexit -#define Perl_call_atexit pPerl->Perl_call_atexit -#undef Perl_call_list -#define Perl_call_list pPerl->Perl_call_list -#undef Perl_call_method -#define Perl_call_method pPerl->Perl_call_method -#undef Perl_call_pv -#define Perl_call_pv pPerl->Perl_call_pv -#undef Perl_call_sv -#define Perl_call_sv pPerl->Perl_call_sv -#undef Perl_calloc -#define Perl_calloc pPerl->Perl_calloc -#undef Perl_cando -#define Perl_cando pPerl->Perl_cando -#undef Perl_cast_i32 -#define Perl_cast_i32 pPerl->Perl_cast_i32 -#undef Perl_cast_iv -#define Perl_cast_iv pPerl->Perl_cast_iv -#undef Perl_cast_ulong -#define Perl_cast_ulong pPerl->Perl_cast_ulong -#undef Perl_cast_uv -#define Perl_cast_uv pPerl->Perl_cast_uv -#undef Perl_ck_anoncode -#define Perl_ck_anoncode pPerl->Perl_ck_anoncode -#undef Perl_ck_bitop -#define Perl_ck_bitop pPerl->Perl_ck_bitop -#undef Perl_ck_concat -#define Perl_ck_concat pPerl->Perl_ck_concat -#undef Perl_ck_defined -#define Perl_ck_defined pPerl->Perl_ck_defined -#undef Perl_ck_delete -#define Perl_ck_delete pPerl->Perl_ck_delete -#undef Perl_ck_eof -#define Perl_ck_eof pPerl->Perl_ck_eof -#undef Perl_ck_eval -#define Perl_ck_eval pPerl->Perl_ck_eval -#undef Perl_ck_exec -#define Perl_ck_exec pPerl->Perl_ck_exec -#undef Perl_ck_exists -#define Perl_ck_exists pPerl->Perl_ck_exists -#undef Perl_ck_ftst -#define Perl_ck_ftst pPerl->Perl_ck_ftst -#undef Perl_ck_fun -#define Perl_ck_fun pPerl->Perl_ck_fun -#undef Perl_ck_fun_locale -#define Perl_ck_fun_locale pPerl->Perl_ck_fun_locale -#undef Perl_ck_glob -#define Perl_ck_glob pPerl->Perl_ck_glob -#undef Perl_ck_grep -#define Perl_ck_grep pPerl->Perl_ck_grep -#undef Perl_ck_index -#define Perl_ck_index pPerl->Perl_ck_index -#undef Perl_ck_lengthconst -#define Perl_ck_lengthconst pPerl->Perl_ck_lengthconst -#undef Perl_ck_lfun -#define Perl_ck_lfun pPerl->Perl_ck_lfun -#undef Perl_ck_listiob -#define Perl_ck_listiob pPerl->Perl_ck_listiob -#undef Perl_ck_match -#define Perl_ck_match pPerl->Perl_ck_match -#undef Perl_ck_null -#define Perl_ck_null pPerl->Perl_ck_null -#undef Perl_ck_repeat -#define Perl_ck_repeat pPerl->Perl_ck_repeat -#undef Perl_ck_require -#define Perl_ck_require pPerl->Perl_ck_require -#undef Perl_ck_rfun -#define Perl_ck_rfun pPerl->Perl_ck_rfun -#undef Perl_ck_rvconst -#define Perl_ck_rvconst pPerl->Perl_ck_rvconst -#undef Perl_ck_scmp -#define Perl_ck_scmp pPerl->Perl_ck_scmp -#undef Perl_ck_select -#define Perl_ck_select pPerl->Perl_ck_select -#undef Perl_ck_shift -#define Perl_ck_shift pPerl->Perl_ck_shift -#undef Perl_ck_sort -#define Perl_ck_sort pPerl->Perl_ck_sort -#undef Perl_ck_spair -#define Perl_ck_spair pPerl->Perl_ck_spair -#undef Perl_ck_split -#define Perl_ck_split pPerl->Perl_ck_split -#undef Perl_ck_subr -#define Perl_ck_subr pPerl->Perl_ck_subr -#undef Perl_ck_svconst -#define Perl_ck_svconst pPerl->Perl_ck_svconst -#undef Perl_ck_trunc -#define Perl_ck_trunc pPerl->Perl_ck_trunc -#undef Perl_condpair_magic -#define Perl_condpair_magic pPerl->Perl_condpair_magic -#undef Perl_convert -#define Perl_convert pPerl->Perl_convert -#undef Perl_croak -#define Perl_croak pPerl->Perl_croak -#undef Perl_cv_ckproto -#define Perl_cv_ckproto pPerl->Perl_cv_ckproto -#undef Perl_cv_clone -#define Perl_cv_clone pPerl->Perl_cv_clone -#undef Perl_cv_const_sv -#define Perl_cv_const_sv pPerl->Perl_cv_const_sv -#undef Perl_cv_undef -#define Perl_cv_undef pPerl->Perl_cv_undef -#undef Perl_cx_dump -#define Perl_cx_dump pPerl->Perl_cx_dump -#undef Perl_cxinc -#define Perl_cxinc pPerl->Perl_cxinc -#undef Perl_deb -#define Perl_deb pPerl->Perl_deb -#undef Perl_deb_growlevel -#define Perl_deb_growlevel pPerl->Perl_deb_growlevel -#undef Perl_debop -#define Perl_debop pPerl->Perl_debop -#undef Perl_debprofdump -#define Perl_debprofdump pPerl->Perl_debprofdump -#undef Perl_debstack -#define Perl_debstack pPerl->Perl_debstack -#undef Perl_debstackptrs -#define Perl_debstackptrs pPerl->Perl_debstackptrs -#undef Perl_default_protect -#define Perl_default_protect pPerl->Perl_default_protect -#undef Perl_delimcpy -#define Perl_delimcpy pPerl->Perl_delimcpy -#undef Perl_deprecate -#define Perl_deprecate pPerl->Perl_deprecate -#undef Perl_die -#define Perl_die pPerl->Perl_die -#undef Perl_die_where -#define Perl_die_where pPerl->Perl_die_where -#undef Perl_do_aexec -#define Perl_do_aexec pPerl->Perl_do_aexec -#undef Perl_do_binmode -#define Perl_do_binmode pPerl->Perl_do_binmode -#undef Perl_do_chomp -#define Perl_do_chomp pPerl->Perl_do_chomp -#undef Perl_do_chop -#define Perl_do_chop pPerl->Perl_do_chop -#undef Perl_do_close -#define Perl_do_close pPerl->Perl_do_close -#undef Perl_do_eof -#define Perl_do_eof pPerl->Perl_do_eof -#undef Perl_do_exec -#define Perl_do_exec pPerl->Perl_do_exec -#undef Perl_do_exec3 -#define Perl_do_exec3 pPerl->Perl_do_exec3 -#undef Perl_do_execfree -#define Perl_do_execfree pPerl->Perl_do_execfree -#undef Perl_do_gv_dump -#define Perl_do_gv_dump pPerl->Perl_do_gv_dump -#undef Perl_do_gvgv_dump -#define Perl_do_gvgv_dump pPerl->Perl_do_gvgv_dump -#undef Perl_do_hv_dump -#define Perl_do_hv_dump pPerl->Perl_do_hv_dump -#undef Perl_do_ipcctl -#define Perl_do_ipcctl pPerl->Perl_do_ipcctl -#undef Perl_do_ipcget -#define Perl_do_ipcget pPerl->Perl_do_ipcget -#undef Perl_do_join -#define Perl_do_join pPerl->Perl_do_join -#undef Perl_do_kv -#define Perl_do_kv pPerl->Perl_do_kv -#undef Perl_do_magic_dump -#define Perl_do_magic_dump pPerl->Perl_do_magic_dump -#undef Perl_do_msgrcv -#define Perl_do_msgrcv pPerl->Perl_do_msgrcv -#undef Perl_do_msgsnd -#define Perl_do_msgsnd pPerl->Perl_do_msgsnd -#undef Perl_do_op_dump -#define Perl_do_op_dump pPerl->Perl_do_op_dump -#undef Perl_do_open -#define Perl_do_open pPerl->Perl_do_open -#undef Perl_do_pipe -#define Perl_do_pipe pPerl->Perl_do_pipe -#undef Perl_do_pmop_dump -#define Perl_do_pmop_dump pPerl->Perl_do_pmop_dump -#undef Perl_do_print -#define Perl_do_print pPerl->Perl_do_print -#undef Perl_do_readline -#define Perl_do_readline pPerl->Perl_do_readline -#undef Perl_do_seek -#define Perl_do_seek pPerl->Perl_do_seek -#undef Perl_do_semop -#define Perl_do_semop pPerl->Perl_do_semop -#undef Perl_do_shmio -#define Perl_do_shmio pPerl->Perl_do_shmio -#undef Perl_do_sprintf -#define Perl_do_sprintf pPerl->Perl_do_sprintf -#undef Perl_do_sv_dump -#define Perl_do_sv_dump pPerl->Perl_do_sv_dump -#undef Perl_do_sysseek -#define Perl_do_sysseek pPerl->Perl_do_sysseek -#undef Perl_do_tell -#define Perl_do_tell pPerl->Perl_do_tell -#undef Perl_do_trans -#define Perl_do_trans pPerl->Perl_do_trans -#undef Perl_do_vecset -#define Perl_do_vecset pPerl->Perl_do_vecset -#undef Perl_do_vop -#define Perl_do_vop pPerl->Perl_do_vop -#undef Perl_dofile -#define Perl_dofile pPerl->Perl_dofile -#undef Perl_dounwind -#define Perl_dounwind pPerl->Perl_dounwind -#undef Perl_dowantarray -#define Perl_dowantarray pPerl->Perl_dowantarray -#undef Perl_dump_all -#define Perl_dump_all pPerl->Perl_dump_all -#undef Perl_dump_eval -#define Perl_dump_eval pPerl->Perl_dump_eval -#undef Perl_dump_fds -#define Perl_dump_fds pPerl->Perl_dump_fds -#undef Perl_dump_form -#define Perl_dump_form pPerl->Perl_dump_form -#undef Perl_dump_indent -#define Perl_dump_indent pPerl->Perl_dump_indent -#undef Perl_dump_mstats -#define Perl_dump_mstats pPerl->Perl_dump_mstats -#undef Perl_dump_packsubs -#define Perl_dump_packsubs pPerl->Perl_dump_packsubs -#undef Perl_dump_sub -#define Perl_dump_sub pPerl->Perl_dump_sub -#undef Perl_eval_pv -#define Perl_eval_pv pPerl->Perl_eval_pv -#undef Perl_eval_sv -#define Perl_eval_sv pPerl->Perl_eval_sv -#undef Perl_fbm_compile -#define Perl_fbm_compile pPerl->Perl_fbm_compile -#undef Perl_fbm_instr -#define Perl_fbm_instr pPerl->Perl_fbm_instr -#undef Perl_filter_add -#define Perl_filter_add pPerl->Perl_filter_add -#undef Perl_filter_del -#define Perl_filter_del pPerl->Perl_filter_del -#undef Perl_filter_read -#define Perl_filter_read pPerl->Perl_filter_read -#undef Perl_find_script -#define Perl_find_script pPerl->Perl_find_script -#undef Perl_find_threadsv -#define Perl_find_threadsv pPerl->Perl_find_threadsv -#undef Perl_fold_constants -#define Perl_fold_constants pPerl->Perl_fold_constants -#undef Perl_force_list -#define Perl_force_list pPerl->Perl_force_list -#undef Perl_form -#define Perl_form pPerl->Perl_form -#undef Perl_free_tmps -#define Perl_free_tmps pPerl->Perl_free_tmps -#undef Perl_gen_constant_list -#define Perl_gen_constant_list pPerl->Perl_gen_constant_list -#undef Perl_get_av -#define Perl_get_av pPerl->Perl_get_av -#undef Perl_get_cv -#define Perl_get_cv pPerl->Perl_get_cv -#undef Perl_get_hv -#define Perl_get_hv pPerl->Perl_get_hv -#undef Perl_get_no_modify -#define Perl_get_no_modify pPerl->Perl_get_no_modify -#undef Perl_get_op_descs -#define Perl_get_op_descs pPerl->Perl_get_op_descs -#undef Perl_get_op_names -#define Perl_get_op_names pPerl->Perl_get_op_names -#undef Perl_get_opargs -#define Perl_get_opargs pPerl->Perl_get_opargs -#undef Perl_get_sv -#define Perl_get_sv pPerl->Perl_get_sv -#undef Perl_get_vtbl -#define Perl_get_vtbl pPerl->Perl_get_vtbl -#undef Perl_getenv_len -#define Perl_getenv_len pPerl->Perl_getenv_len -#undef Perl_gp_free -#define Perl_gp_free pPerl->Perl_gp_free -#undef Perl_gp_ref -#define Perl_gp_ref pPerl->Perl_gp_ref -#undef Perl_gv_AVadd -#define Perl_gv_AVadd pPerl->Perl_gv_AVadd -#undef Perl_gv_HVadd -#define Perl_gv_HVadd pPerl->Perl_gv_HVadd -#undef Perl_gv_IOadd -#define Perl_gv_IOadd pPerl->Perl_gv_IOadd -#undef Perl_gv_autoload4 -#define Perl_gv_autoload4 pPerl->Perl_gv_autoload4 -#undef Perl_gv_check -#define Perl_gv_check pPerl->Perl_gv_check -#undef Perl_gv_dump -#define Perl_gv_dump pPerl->Perl_gv_dump -#undef Perl_gv_efullname -#define Perl_gv_efullname pPerl->Perl_gv_efullname -#undef Perl_gv_efullname3 -#define Perl_gv_efullname3 pPerl->Perl_gv_efullname3 -#undef Perl_gv_fetchfile -#define Perl_gv_fetchfile pPerl->Perl_gv_fetchfile -#undef Perl_gv_fetchmeth -#define Perl_gv_fetchmeth pPerl->Perl_gv_fetchmeth -#undef Perl_gv_fetchmethod -#define Perl_gv_fetchmethod pPerl->Perl_gv_fetchmethod -#undef Perl_gv_fetchmethod_autoload -#define Perl_gv_fetchmethod_autoload pPerl->Perl_gv_fetchmethod_autoload -#undef Perl_gv_fetchpv -#define Perl_gv_fetchpv pPerl->Perl_gv_fetchpv -#undef Perl_gv_fullname -#define Perl_gv_fullname pPerl->Perl_gv_fullname -#undef Perl_gv_fullname3 -#define Perl_gv_fullname3 pPerl->Perl_gv_fullname3 -#undef Perl_gv_init -#define Perl_gv_init pPerl->Perl_gv_init -#undef Perl_gv_stashpv -#define Perl_gv_stashpv pPerl->Perl_gv_stashpv -#undef Perl_gv_stashpvn -#define Perl_gv_stashpvn pPerl->Perl_gv_stashpvn -#undef Perl_gv_stashsv -#define Perl_gv_stashsv pPerl->Perl_gv_stashsv -#undef Perl_hv_clear -#define Perl_hv_clear pPerl->Perl_hv_clear -#undef Perl_hv_delayfree_ent -#define Perl_hv_delayfree_ent pPerl->Perl_hv_delayfree_ent -#undef Perl_hv_delete -#define Perl_hv_delete pPerl->Perl_hv_delete -#undef Perl_hv_delete_ent -#define Perl_hv_delete_ent pPerl->Perl_hv_delete_ent -#undef Perl_hv_exists -#define Perl_hv_exists pPerl->Perl_hv_exists -#undef Perl_hv_exists_ent -#define Perl_hv_exists_ent pPerl->Perl_hv_exists_ent -#undef Perl_hv_fetch -#define Perl_hv_fetch pPerl->Perl_hv_fetch -#undef Perl_hv_fetch_ent -#define Perl_hv_fetch_ent pPerl->Perl_hv_fetch_ent -#undef Perl_hv_free_ent -#define Perl_hv_free_ent pPerl->Perl_hv_free_ent -#undef Perl_hv_iterinit -#define Perl_hv_iterinit pPerl->Perl_hv_iterinit -#undef Perl_hv_iterkey -#define Perl_hv_iterkey pPerl->Perl_hv_iterkey -#undef Perl_hv_iterkeysv -#define Perl_hv_iterkeysv pPerl->Perl_hv_iterkeysv -#undef Perl_hv_iternext -#define Perl_hv_iternext pPerl->Perl_hv_iternext -#undef Perl_hv_iternextsv -#define Perl_hv_iternextsv pPerl->Perl_hv_iternextsv -#undef Perl_hv_iterval -#define Perl_hv_iterval pPerl->Perl_hv_iterval -#undef Perl_hv_ksplit -#define Perl_hv_ksplit pPerl->Perl_hv_ksplit -#undef Perl_hv_magic -#define Perl_hv_magic pPerl->Perl_hv_magic -#undef Perl_hv_store -#define Perl_hv_store pPerl->Perl_hv_store -#undef Perl_hv_store_ent -#define Perl_hv_store_ent pPerl->Perl_hv_store_ent -#undef Perl_hv_undef -#define Perl_hv_undef pPerl->Perl_hv_undef -#undef Perl_ibcmp -#define Perl_ibcmp pPerl->Perl_ibcmp -#undef Perl_ibcmp_locale -#define Perl_ibcmp_locale pPerl->Perl_ibcmp_locale -#undef Perl_ingroup -#define Perl_ingroup pPerl->Perl_ingroup -#undef Perl_init_i18nl10n -#define Perl_init_i18nl10n pPerl->Perl_init_i18nl10n -#undef Perl_init_i18nl14n -#define Perl_init_i18nl14n pPerl->Perl_init_i18nl14n -#undef Perl_init_stacks -#define Perl_init_stacks pPerl->Perl_init_stacks -#undef Perl_instr -#define Perl_instr pPerl->Perl_instr -#undef Perl_intro_my -#define Perl_intro_my pPerl->Perl_intro_my -#undef Perl_invert -#define Perl_invert pPerl->Perl_invert -#undef Perl_io_close -#define Perl_io_close pPerl->Perl_io_close -#undef Perl_is_uni_alnum -#define Perl_is_uni_alnum pPerl->Perl_is_uni_alnum -#undef Perl_is_uni_alnum_lc -#define Perl_is_uni_alnum_lc pPerl->Perl_is_uni_alnum_lc -#undef Perl_is_uni_alpha -#define Perl_is_uni_alpha pPerl->Perl_is_uni_alpha -#undef Perl_is_uni_alpha_lc -#define Perl_is_uni_alpha_lc pPerl->Perl_is_uni_alpha_lc -#undef Perl_is_uni_digit -#define Perl_is_uni_digit pPerl->Perl_is_uni_digit -#undef Perl_is_uni_digit_lc -#define Perl_is_uni_digit_lc pPerl->Perl_is_uni_digit_lc -#undef Perl_is_uni_idfirst -#define Perl_is_uni_idfirst pPerl->Perl_is_uni_idfirst -#undef Perl_is_uni_idfirst_lc -#define Perl_is_uni_idfirst_lc pPerl->Perl_is_uni_idfirst_lc -#undef Perl_is_uni_lower -#define Perl_is_uni_lower pPerl->Perl_is_uni_lower -#undef Perl_is_uni_lower_lc -#define Perl_is_uni_lower_lc pPerl->Perl_is_uni_lower_lc -#undef Perl_is_uni_print -#define Perl_is_uni_print pPerl->Perl_is_uni_print -#undef Perl_is_uni_print_lc -#define Perl_is_uni_print_lc pPerl->Perl_is_uni_print_lc -#undef Perl_is_uni_space -#define Perl_is_uni_space pPerl->Perl_is_uni_space -#undef Perl_is_uni_space_lc -#define Perl_is_uni_space_lc pPerl->Perl_is_uni_space_lc -#undef Perl_is_uni_upper -#define Perl_is_uni_upper pPerl->Perl_is_uni_upper -#undef Perl_is_uni_upper_lc -#define Perl_is_uni_upper_lc pPerl->Perl_is_uni_upper_lc -#undef Perl_is_utf8_alnum -#define Perl_is_utf8_alnum pPerl->Perl_is_utf8_alnum -#undef Perl_is_utf8_alpha -#define Perl_is_utf8_alpha pPerl->Perl_is_utf8_alpha -#undef Perl_is_utf8_digit -#define Perl_is_utf8_digit pPerl->Perl_is_utf8_digit -#undef Perl_is_utf8_idfirst -#define Perl_is_utf8_idfirst pPerl->Perl_is_utf8_idfirst -#undef Perl_is_utf8_lower -#define Perl_is_utf8_lower pPerl->Perl_is_utf8_lower -#undef Perl_is_utf8_mark -#define Perl_is_utf8_mark pPerl->Perl_is_utf8_mark -#undef Perl_is_utf8_print -#define Perl_is_utf8_print pPerl->Perl_is_utf8_print -#undef Perl_is_utf8_space -#define Perl_is_utf8_space pPerl->Perl_is_utf8_space -#undef Perl_is_utf8_upper -#define Perl_is_utf8_upper pPerl->Perl_is_utf8_upper -#undef Perl_jmaybe -#define Perl_jmaybe pPerl->Perl_jmaybe -#undef Perl_keyword -#define Perl_keyword pPerl->Perl_keyword -#undef Perl_leave_scope -#define Perl_leave_scope pPerl->Perl_leave_scope -#undef Perl_lex_end -#define Perl_lex_end pPerl->Perl_lex_end -#undef Perl_lex_start -#define Perl_lex_start pPerl->Perl_lex_start -#undef Perl_linklist -#define Perl_linklist pPerl->Perl_linklist -#undef Perl_list -#define Perl_list pPerl->Perl_list -#undef Perl_listkids -#define Perl_listkids pPerl->Perl_listkids -#undef Perl_localize -#define Perl_localize pPerl->Perl_localize -#undef Perl_looks_like_number -#define Perl_looks_like_number pPerl->Perl_looks_like_number -#undef Perl_magic_clear_all_env -#define Perl_magic_clear_all_env pPerl->Perl_magic_clear_all_env -#undef Perl_magic_clearenv -#define Perl_magic_clearenv pPerl->Perl_magic_clearenv -#undef Perl_magic_clearpack -#define Perl_magic_clearpack pPerl->Perl_magic_clearpack -#undef Perl_magic_clearsig -#define Perl_magic_clearsig pPerl->Perl_magic_clearsig -#undef Perl_magic_dump -#define Perl_magic_dump pPerl->Perl_magic_dump -#undef Perl_magic_existspack -#define Perl_magic_existspack pPerl->Perl_magic_existspack -#undef Perl_magic_freeregexp -#define Perl_magic_freeregexp pPerl->Perl_magic_freeregexp -#undef Perl_magic_get -#define Perl_magic_get pPerl->Perl_magic_get -#undef Perl_magic_getarylen -#define Perl_magic_getarylen pPerl->Perl_magic_getarylen -#undef Perl_magic_getdefelem -#define Perl_magic_getdefelem pPerl->Perl_magic_getdefelem -#undef Perl_magic_getglob -#define Perl_magic_getglob pPerl->Perl_magic_getglob -#undef Perl_magic_getnkeys -#define Perl_magic_getnkeys pPerl->Perl_magic_getnkeys -#undef Perl_magic_getpack -#define Perl_magic_getpack pPerl->Perl_magic_getpack -#undef Perl_magic_getpos -#define Perl_magic_getpos pPerl->Perl_magic_getpos -#undef Perl_magic_getsig -#define Perl_magic_getsig pPerl->Perl_magic_getsig -#undef Perl_magic_getsubstr -#define Perl_magic_getsubstr pPerl->Perl_magic_getsubstr -#undef Perl_magic_gettaint -#define Perl_magic_gettaint pPerl->Perl_magic_gettaint -#undef Perl_magic_getuvar -#define Perl_magic_getuvar pPerl->Perl_magic_getuvar -#undef Perl_magic_getvec -#define Perl_magic_getvec pPerl->Perl_magic_getvec -#undef Perl_magic_killbackrefs -#define Perl_magic_killbackrefs pPerl->Perl_magic_killbackrefs -#undef Perl_magic_len -#define Perl_magic_len pPerl->Perl_magic_len -#undef Perl_magic_mutexfree -#define Perl_magic_mutexfree pPerl->Perl_magic_mutexfree -#undef Perl_magic_nextpack -#define Perl_magic_nextpack pPerl->Perl_magic_nextpack -#undef Perl_magic_regdata_cnt -#define Perl_magic_regdata_cnt pPerl->Perl_magic_regdata_cnt -#undef Perl_magic_regdatum_get -#define Perl_magic_regdatum_get pPerl->Perl_magic_regdatum_get -#undef Perl_magic_set -#define Perl_magic_set pPerl->Perl_magic_set -#undef Perl_magic_set_all_env -#define Perl_magic_set_all_env pPerl->Perl_magic_set_all_env -#undef Perl_magic_setamagic -#define Perl_magic_setamagic pPerl->Perl_magic_setamagic -#undef Perl_magic_setarylen -#define Perl_magic_setarylen pPerl->Perl_magic_setarylen -#undef Perl_magic_setbm -#define Perl_magic_setbm pPerl->Perl_magic_setbm -#undef Perl_magic_setcollxfrm -#define Perl_magic_setcollxfrm pPerl->Perl_magic_setcollxfrm -#undef Perl_magic_setdbline -#define Perl_magic_setdbline pPerl->Perl_magic_setdbline -#undef Perl_magic_setdefelem -#define Perl_magic_setdefelem pPerl->Perl_magic_setdefelem -#undef Perl_magic_setenv -#define Perl_magic_setenv pPerl->Perl_magic_setenv -#undef Perl_magic_setfm -#define Perl_magic_setfm pPerl->Perl_magic_setfm -#undef Perl_magic_setglob -#define Perl_magic_setglob pPerl->Perl_magic_setglob -#undef Perl_magic_setisa -#define Perl_magic_setisa pPerl->Perl_magic_setisa -#undef Perl_magic_setmglob -#define Perl_magic_setmglob pPerl->Perl_magic_setmglob -#undef Perl_magic_setnkeys -#define Perl_magic_setnkeys pPerl->Perl_magic_setnkeys -#undef Perl_magic_setpack -#define Perl_magic_setpack pPerl->Perl_magic_setpack -#undef Perl_magic_setpos -#define Perl_magic_setpos pPerl->Perl_magic_setpos -#undef Perl_magic_setsig -#define Perl_magic_setsig pPerl->Perl_magic_setsig -#undef Perl_magic_setsubstr -#define Perl_magic_setsubstr pPerl->Perl_magic_setsubstr -#undef Perl_magic_settaint -#define Perl_magic_settaint pPerl->Perl_magic_settaint -#undef Perl_magic_setuvar -#define Perl_magic_setuvar pPerl->Perl_magic_setuvar -#undef Perl_magic_setvec -#define Perl_magic_setvec pPerl->Perl_magic_setvec -#undef Perl_magic_sizepack -#define Perl_magic_sizepack pPerl->Perl_magic_sizepack -#undef Perl_magic_wipepack -#define Perl_magic_wipepack pPerl->Perl_magic_wipepack -#undef Perl_magicname -#define Perl_magicname pPerl->Perl_magicname -#undef Perl_malloc -#define Perl_malloc pPerl->Perl_malloc -#undef Perl_malloced_size -#define Perl_malloced_size pPerl->Perl_malloced_size -#undef Perl_markstack_grow -#define Perl_markstack_grow pPerl->Perl_markstack_grow -#undef Perl_mem_collxfrm -#define Perl_mem_collxfrm pPerl->Perl_mem_collxfrm -#undef Perl_mess -#define Perl_mess pPerl->Perl_mess -#undef Perl_mfree -#define Perl_mfree pPerl->Perl_mfree -#undef Perl_mg_clear -#define Perl_mg_clear pPerl->Perl_mg_clear -#undef Perl_mg_copy -#define Perl_mg_copy pPerl->Perl_mg_copy -#undef Perl_mg_find -#define Perl_mg_find pPerl->Perl_mg_find -#undef Perl_mg_free -#define Perl_mg_free pPerl->Perl_mg_free -#undef Perl_mg_get -#define Perl_mg_get pPerl->Perl_mg_get -#undef Perl_mg_length -#define Perl_mg_length pPerl->Perl_mg_length -#undef Perl_mg_magical -#define Perl_mg_magical pPerl->Perl_mg_magical -#undef Perl_mg_set -#define Perl_mg_set pPerl->Perl_mg_set -#undef Perl_mg_size -#define Perl_mg_size pPerl->Perl_mg_size -#undef Perl_mod -#define Perl_mod pPerl->Perl_mod -#undef Perl_moreswitches -#define Perl_moreswitches pPerl->Perl_moreswitches -#undef Perl_my -#define Perl_my pPerl->Perl_my -#undef Perl_my_bcopy -#define Perl_my_bcopy pPerl->Perl_my_bcopy -#undef Perl_my_bzero -#define Perl_my_bzero pPerl->Perl_my_bzero -#undef Perl_my_chsize -#define Perl_my_chsize pPerl->Perl_my_chsize -#undef Perl_my_exit -#define Perl_my_exit pPerl->Perl_my_exit -#undef Perl_my_failure_exit -#define Perl_my_failure_exit pPerl->Perl_my_failure_exit -#undef Perl_my_fflush_all -#define Perl_my_fflush_all pPerl->Perl_my_fflush_all -#undef Perl_my_htonl -#define Perl_my_htonl pPerl->Perl_my_htonl -#undef Perl_my_lstat -#define Perl_my_lstat pPerl->Perl_my_lstat -#undef Perl_my_memcmp -#define Perl_my_memcmp pPerl->Perl_my_memcmp -#undef Perl_my_memset -#define Perl_my_memset pPerl->Perl_my_memset -#undef Perl_my_ntohl -#define Perl_my_ntohl pPerl->Perl_my_ntohl -#undef Perl_my_pclose -#define Perl_my_pclose pPerl->Perl_my_pclose -#undef Perl_my_popen -#define Perl_my_popen pPerl->Perl_my_popen -#undef Perl_my_setenv -#define Perl_my_setenv pPerl->Perl_my_setenv -#undef Perl_my_stat -#define Perl_my_stat pPerl->Perl_my_stat -#undef Perl_my_swap -#define Perl_my_swap pPerl->Perl_my_swap -#undef Perl_my_unexec -#define Perl_my_unexec pPerl->Perl_my_unexec -#undef Perl_newANONHASH -#define Perl_newANONHASH pPerl->Perl_newANONHASH -#undef Perl_newANONLIST -#define Perl_newANONLIST pPerl->Perl_newANONLIST -#undef Perl_newANONSUB -#define Perl_newANONSUB pPerl->Perl_newANONSUB -#undef Perl_newASSIGNOP -#define Perl_newASSIGNOP pPerl->Perl_newASSIGNOP -#undef Perl_newAV -#define Perl_newAV pPerl->Perl_newAV -#undef Perl_newAVREF -#define Perl_newAVREF pPerl->Perl_newAVREF -#undef Perl_newBINOP -#define Perl_newBINOP pPerl->Perl_newBINOP -#undef Perl_newCONDOP -#define Perl_newCONDOP pPerl->Perl_newCONDOP -#undef Perl_newCONSTSUB -#define Perl_newCONSTSUB pPerl->Perl_newCONSTSUB -#undef Perl_newCVREF -#define Perl_newCVREF pPerl->Perl_newCVREF -#undef Perl_newFORM -#define Perl_newFORM pPerl->Perl_newFORM -#undef Perl_newFOROP -#define Perl_newFOROP pPerl->Perl_newFOROP -#undef Perl_newGVOP -#define Perl_newGVOP pPerl->Perl_newGVOP -#undef Perl_newGVREF -#define Perl_newGVREF pPerl->Perl_newGVREF -#undef Perl_newGVgen -#define Perl_newGVgen pPerl->Perl_newGVgen -#undef Perl_newHV -#define Perl_newHV pPerl->Perl_newHV -#undef Perl_newHVREF -#define Perl_newHVREF pPerl->Perl_newHVREF -#undef Perl_newHVhv -#define Perl_newHVhv pPerl->Perl_newHVhv -#undef Perl_newIO -#define Perl_newIO pPerl->Perl_newIO -#undef Perl_newLISTOP -#define Perl_newLISTOP pPerl->Perl_newLISTOP -#undef Perl_newLOGOP -#define Perl_newLOGOP pPerl->Perl_newLOGOP -#undef Perl_newLOOPEX -#define Perl_newLOOPEX pPerl->Perl_newLOOPEX -#undef Perl_newLOOPOP -#define Perl_newLOOPOP pPerl->Perl_newLOOPOP -#undef Perl_newNULLLIST -#define Perl_newNULLLIST pPerl->Perl_newNULLLIST -#undef Perl_newOP -#define Perl_newOP pPerl->Perl_newOP -#undef Perl_newPMOP -#define Perl_newPMOP pPerl->Perl_newPMOP -#undef Perl_newPROG -#define Perl_newPROG pPerl->Perl_newPROG -#undef Perl_newPVOP -#define Perl_newPVOP pPerl->Perl_newPVOP -#undef Perl_newRANGE -#define Perl_newRANGE pPerl->Perl_newRANGE -#undef Perl_newRV -#define Perl_newRV pPerl->Perl_newRV -#undef Perl_newRV_noinc -#define Perl_newRV_noinc pPerl->Perl_newRV_noinc -#undef Perl_newSLICEOP -#define Perl_newSLICEOP pPerl->Perl_newSLICEOP -#undef Perl_newSTATEOP -#define Perl_newSTATEOP pPerl->Perl_newSTATEOP -#undef Perl_newSUB -#define Perl_newSUB pPerl->Perl_newSUB -#undef Perl_newSV -#define Perl_newSV pPerl->Perl_newSV -#undef Perl_newSVOP -#define Perl_newSVOP pPerl->Perl_newSVOP -#undef Perl_newSVREF -#define Perl_newSVREF pPerl->Perl_newSVREF -#undef Perl_newSViv -#define Perl_newSViv pPerl->Perl_newSViv -#undef Perl_newSVnv -#define Perl_newSVnv pPerl->Perl_newSVnv -#undef Perl_newSVpv -#define Perl_newSVpv pPerl->Perl_newSVpv -#undef Perl_newSVpvf -#define Perl_newSVpvf pPerl->Perl_newSVpvf -#undef Perl_newSVpvn -#define Perl_newSVpvn pPerl->Perl_newSVpvn -#undef Perl_newSVrv -#define Perl_newSVrv pPerl->Perl_newSVrv -#undef Perl_newSVsv -#define Perl_newSVsv pPerl->Perl_newSVsv -#undef Perl_newUNOP -#define Perl_newUNOP pPerl->Perl_newUNOP -#undef Perl_newWHILEOP -#define Perl_newWHILEOP pPerl->Perl_newWHILEOP -#undef Perl_newXS -#define Perl_newXS pPerl->Perl_newXS -#undef Perl_new_collate -#define Perl_new_collate pPerl->Perl_new_collate -#undef Perl_new_ctype -#define Perl_new_ctype pPerl->Perl_new_ctype -#undef Perl_new_numeric -#define Perl_new_numeric pPerl->Perl_new_numeric -#undef Perl_new_stackinfo -#define Perl_new_stackinfo pPerl->Perl_new_stackinfo -#undef Perl_new_struct_thread -#define Perl_new_struct_thread pPerl->Perl_new_struct_thread -#undef Perl_nextargv -#define Perl_nextargv pPerl->Perl_nextargv -#undef Perl_ninstr -#define Perl_ninstr pPerl->Perl_ninstr -#undef Perl_oopsAV -#define Perl_oopsAV pPerl->Perl_oopsAV -#undef Perl_oopsCV -#define Perl_oopsCV pPerl->Perl_oopsCV -#undef Perl_oopsHV -#define Perl_oopsHV pPerl->Perl_oopsHV -#undef Perl_op_const_sv -#define Perl_op_const_sv pPerl->Perl_op_const_sv -#undef Perl_op_dump -#define Perl_op_dump pPerl->Perl_op_dump -#undef Perl_op_free -#define Perl_op_free pPerl->Perl_op_free -#undef Perl_package -#define Perl_package pPerl->Perl_package -#undef Perl_pad_alloc -#define Perl_pad_alloc pPerl->Perl_pad_alloc -#undef Perl_pad_allocmy -#define Perl_pad_allocmy pPerl->Perl_pad_allocmy -#undef Perl_pad_findmy -#define Perl_pad_findmy pPerl->Perl_pad_findmy -#undef Perl_pad_free -#define Perl_pad_free pPerl->Perl_pad_free -#undef Perl_pad_leavemy -#define Perl_pad_leavemy pPerl->Perl_pad_leavemy -#undef Perl_pad_reset -#define Perl_pad_reset pPerl->Perl_pad_reset -#undef Perl_pad_sv -#define Perl_pad_sv pPerl->Perl_pad_sv -#undef Perl_pad_swipe -#define Perl_pad_swipe pPerl->Perl_pad_swipe -#undef Perl_peep -#define Perl_peep pPerl->Perl_peep -#undef Perl_pidgone -#define Perl_pidgone pPerl->Perl_pidgone -#undef Perl_pmflag -#define Perl_pmflag pPerl->Perl_pmflag -#undef Perl_pmop_dump -#define Perl_pmop_dump pPerl->Perl_pmop_dump -#undef Perl_pmruntime -#define Perl_pmruntime pPerl->Perl_pmruntime -#undef Perl_pmtrans -#define Perl_pmtrans pPerl->Perl_pmtrans -#undef Perl_pop_return -#define Perl_pop_return pPerl->Perl_pop_return -#undef Perl_pop_scope -#define Perl_pop_scope pPerl->Perl_pop_scope -#undef Perl_pp_aassign -#define Perl_pp_aassign pPerl->Perl_pp_aassign -#undef Perl_pp_abs -#define Perl_pp_abs pPerl->Perl_pp_abs -#undef Perl_pp_accept -#define Perl_pp_accept pPerl->Perl_pp_accept -#undef Perl_pp_add -#define Perl_pp_add pPerl->Perl_pp_add -#undef Perl_pp_aelem -#define Perl_pp_aelem pPerl->Perl_pp_aelem -#undef Perl_pp_aelemfast -#define Perl_pp_aelemfast pPerl->Perl_pp_aelemfast -#undef Perl_pp_alarm -#define Perl_pp_alarm pPerl->Perl_pp_alarm -#undef Perl_pp_and -#define Perl_pp_and pPerl->Perl_pp_and -#undef Perl_pp_andassign -#define Perl_pp_andassign pPerl->Perl_pp_andassign -#undef Perl_pp_anoncode -#define Perl_pp_anoncode pPerl->Perl_pp_anoncode -#undef Perl_pp_anonhash -#define Perl_pp_anonhash pPerl->Perl_pp_anonhash -#undef Perl_pp_anonlist -#define Perl_pp_anonlist pPerl->Perl_pp_anonlist -#undef Perl_pp_aslice -#define Perl_pp_aslice pPerl->Perl_pp_aslice -#undef Perl_pp_atan2 -#define Perl_pp_atan2 pPerl->Perl_pp_atan2 -#undef Perl_pp_av2arylen -#define Perl_pp_av2arylen pPerl->Perl_pp_av2arylen -#undef Perl_pp_backtick -#define Perl_pp_backtick pPerl->Perl_pp_backtick -#undef Perl_pp_bind -#define Perl_pp_bind pPerl->Perl_pp_bind -#undef Perl_pp_binmode -#define Perl_pp_binmode pPerl->Perl_pp_binmode -#undef Perl_pp_bit_and -#define Perl_pp_bit_and pPerl->Perl_pp_bit_and -#undef Perl_pp_bit_or -#define Perl_pp_bit_or pPerl->Perl_pp_bit_or -#undef Perl_pp_bit_xor -#define Perl_pp_bit_xor pPerl->Perl_pp_bit_xor -#undef Perl_pp_bless -#define Perl_pp_bless pPerl->Perl_pp_bless -#undef Perl_pp_caller -#define Perl_pp_caller pPerl->Perl_pp_caller -#undef Perl_pp_chdir -#define Perl_pp_chdir pPerl->Perl_pp_chdir -#undef Perl_pp_chmod -#define Perl_pp_chmod pPerl->Perl_pp_chmod -#undef Perl_pp_chomp -#define Perl_pp_chomp pPerl->Perl_pp_chomp -#undef Perl_pp_chop -#define Perl_pp_chop pPerl->Perl_pp_chop -#undef Perl_pp_chown -#define Perl_pp_chown pPerl->Perl_pp_chown -#undef Perl_pp_chr -#define Perl_pp_chr pPerl->Perl_pp_chr -#undef Perl_pp_chroot -#define Perl_pp_chroot pPerl->Perl_pp_chroot -#undef Perl_pp_close -#define Perl_pp_close pPerl->Perl_pp_close -#undef Perl_pp_closedir -#define Perl_pp_closedir pPerl->Perl_pp_closedir -#undef Perl_pp_complement -#define Perl_pp_complement pPerl->Perl_pp_complement -#undef Perl_pp_concat -#define Perl_pp_concat pPerl->Perl_pp_concat -#undef Perl_pp_cond_expr -#define Perl_pp_cond_expr pPerl->Perl_pp_cond_expr -#undef Perl_pp_connect -#define Perl_pp_connect pPerl->Perl_pp_connect -#undef Perl_pp_const -#define Perl_pp_const pPerl->Perl_pp_const -#undef Perl_pp_cos -#define Perl_pp_cos pPerl->Perl_pp_cos -#undef Perl_pp_crypt -#define Perl_pp_crypt pPerl->Perl_pp_crypt -#undef Perl_pp_dbmclose -#define Perl_pp_dbmclose pPerl->Perl_pp_dbmclose -#undef Perl_pp_dbmopen -#define Perl_pp_dbmopen pPerl->Perl_pp_dbmopen -#undef Perl_pp_dbstate -#define Perl_pp_dbstate pPerl->Perl_pp_dbstate -#undef Perl_pp_defined -#define Perl_pp_defined pPerl->Perl_pp_defined -#undef Perl_pp_delete -#define Perl_pp_delete pPerl->Perl_pp_delete -#undef Perl_pp_die -#define Perl_pp_die pPerl->Perl_pp_die -#undef Perl_pp_divide -#define Perl_pp_divide pPerl->Perl_pp_divide -#undef Perl_pp_dofile -#define Perl_pp_dofile pPerl->Perl_pp_dofile -#undef Perl_pp_dump -#define Perl_pp_dump pPerl->Perl_pp_dump -#undef Perl_pp_each -#define Perl_pp_each pPerl->Perl_pp_each -#undef Perl_pp_egrent -#define Perl_pp_egrent pPerl->Perl_pp_egrent -#undef Perl_pp_ehostent -#define Perl_pp_ehostent pPerl->Perl_pp_ehostent -#undef Perl_pp_enetent -#define Perl_pp_enetent pPerl->Perl_pp_enetent -#undef Perl_pp_enter -#define Perl_pp_enter pPerl->Perl_pp_enter -#undef Perl_pp_entereval -#define Perl_pp_entereval pPerl->Perl_pp_entereval -#undef Perl_pp_enteriter -#define Perl_pp_enteriter pPerl->Perl_pp_enteriter -#undef Perl_pp_enterloop -#define Perl_pp_enterloop pPerl->Perl_pp_enterloop -#undef Perl_pp_entersub -#define Perl_pp_entersub pPerl->Perl_pp_entersub -#undef Perl_pp_entertry -#define Perl_pp_entertry pPerl->Perl_pp_entertry -#undef Perl_pp_enterwrite -#define Perl_pp_enterwrite pPerl->Perl_pp_enterwrite -#undef Perl_pp_eof -#define Perl_pp_eof pPerl->Perl_pp_eof -#undef Perl_pp_eprotoent -#define Perl_pp_eprotoent pPerl->Perl_pp_eprotoent -#undef Perl_pp_epwent -#define Perl_pp_epwent pPerl->Perl_pp_epwent -#undef Perl_pp_eq -#define Perl_pp_eq pPerl->Perl_pp_eq -#undef Perl_pp_eservent -#define Perl_pp_eservent pPerl->Perl_pp_eservent -#undef Perl_pp_exec -#define Perl_pp_exec pPerl->Perl_pp_exec -#undef Perl_pp_exists -#define Perl_pp_exists pPerl->Perl_pp_exists -#undef Perl_pp_exit -#define Perl_pp_exit pPerl->Perl_pp_exit -#undef Perl_pp_exp -#define Perl_pp_exp pPerl->Perl_pp_exp -#undef Perl_pp_fcntl -#define Perl_pp_fcntl pPerl->Perl_pp_fcntl -#undef Perl_pp_fileno -#define Perl_pp_fileno pPerl->Perl_pp_fileno -#undef Perl_pp_flip -#define Perl_pp_flip pPerl->Perl_pp_flip -#undef Perl_pp_flock -#define Perl_pp_flock pPerl->Perl_pp_flock -#undef Perl_pp_flop -#define Perl_pp_flop pPerl->Perl_pp_flop -#undef Perl_pp_fork -#define Perl_pp_fork pPerl->Perl_pp_fork -#undef Perl_pp_formline -#define Perl_pp_formline pPerl->Perl_pp_formline -#undef Perl_pp_ftatime -#define Perl_pp_ftatime pPerl->Perl_pp_ftatime -#undef Perl_pp_ftbinary -#define Perl_pp_ftbinary pPerl->Perl_pp_ftbinary -#undef Perl_pp_ftblk -#define Perl_pp_ftblk pPerl->Perl_pp_ftblk -#undef Perl_pp_ftchr -#define Perl_pp_ftchr pPerl->Perl_pp_ftchr -#undef Perl_pp_ftctime -#define Perl_pp_ftctime pPerl->Perl_pp_ftctime -#undef Perl_pp_ftdir -#define Perl_pp_ftdir pPerl->Perl_pp_ftdir -#undef Perl_pp_fteexec -#define Perl_pp_fteexec pPerl->Perl_pp_fteexec -#undef Perl_pp_fteowned -#define Perl_pp_fteowned pPerl->Perl_pp_fteowned -#undef Perl_pp_fteread -#define Perl_pp_fteread pPerl->Perl_pp_fteread -#undef Perl_pp_ftewrite -#define Perl_pp_ftewrite pPerl->Perl_pp_ftewrite -#undef Perl_pp_ftfile -#define Perl_pp_ftfile pPerl->Perl_pp_ftfile -#undef Perl_pp_ftis -#define Perl_pp_ftis pPerl->Perl_pp_ftis -#undef Perl_pp_ftlink -#define Perl_pp_ftlink pPerl->Perl_pp_ftlink -#undef Perl_pp_ftmtime -#define Perl_pp_ftmtime pPerl->Perl_pp_ftmtime -#undef Perl_pp_ftpipe -#define Perl_pp_ftpipe pPerl->Perl_pp_ftpipe -#undef Perl_pp_ftrexec -#define Perl_pp_ftrexec pPerl->Perl_pp_ftrexec -#undef Perl_pp_ftrowned -#define Perl_pp_ftrowned pPerl->Perl_pp_ftrowned -#undef Perl_pp_ftrread -#define Perl_pp_ftrread pPerl->Perl_pp_ftrread -#undef Perl_pp_ftrwrite -#define Perl_pp_ftrwrite pPerl->Perl_pp_ftrwrite -#undef Perl_pp_ftsgid -#define Perl_pp_ftsgid pPerl->Perl_pp_ftsgid -#undef Perl_pp_ftsize -#define Perl_pp_ftsize pPerl->Perl_pp_ftsize -#undef Perl_pp_ftsock -#define Perl_pp_ftsock pPerl->Perl_pp_ftsock -#undef Perl_pp_ftsuid -#define Perl_pp_ftsuid pPerl->Perl_pp_ftsuid -#undef Perl_pp_ftsvtx -#define Perl_pp_ftsvtx pPerl->Perl_pp_ftsvtx -#undef Perl_pp_fttext -#define Perl_pp_fttext pPerl->Perl_pp_fttext -#undef Perl_pp_fttty -#define Perl_pp_fttty pPerl->Perl_pp_fttty -#undef Perl_pp_ftzero -#define Perl_pp_ftzero pPerl->Perl_pp_ftzero -#undef Perl_pp_ge -#define Perl_pp_ge pPerl->Perl_pp_ge -#undef Perl_pp_gelem -#define Perl_pp_gelem pPerl->Perl_pp_gelem -#undef Perl_pp_getc -#define Perl_pp_getc pPerl->Perl_pp_getc -#undef Perl_pp_getlogin -#define Perl_pp_getlogin pPerl->Perl_pp_getlogin -#undef Perl_pp_getpeername -#define Perl_pp_getpeername pPerl->Perl_pp_getpeername -#undef Perl_pp_getpgrp -#define Perl_pp_getpgrp pPerl->Perl_pp_getpgrp -#undef Perl_pp_getppid -#define Perl_pp_getppid pPerl->Perl_pp_getppid -#undef Perl_pp_getpriority -#define Perl_pp_getpriority pPerl->Perl_pp_getpriority -#undef Perl_pp_getsockname -#define Perl_pp_getsockname pPerl->Perl_pp_getsockname -#undef Perl_pp_ggrent -#define Perl_pp_ggrent pPerl->Perl_pp_ggrent -#undef Perl_pp_ggrgid -#define Perl_pp_ggrgid pPerl->Perl_pp_ggrgid -#undef Perl_pp_ggrnam -#define Perl_pp_ggrnam pPerl->Perl_pp_ggrnam -#undef Perl_pp_ghbyaddr -#define Perl_pp_ghbyaddr pPerl->Perl_pp_ghbyaddr -#undef Perl_pp_ghbyname -#define Perl_pp_ghbyname pPerl->Perl_pp_ghbyname -#undef Perl_pp_ghostent -#define Perl_pp_ghostent pPerl->Perl_pp_ghostent -#undef Perl_pp_glob -#define Perl_pp_glob pPerl->Perl_pp_glob -#undef Perl_pp_gmtime -#define Perl_pp_gmtime pPerl->Perl_pp_gmtime -#undef Perl_pp_gnbyaddr -#define Perl_pp_gnbyaddr pPerl->Perl_pp_gnbyaddr -#undef Perl_pp_gnbyname -#define Perl_pp_gnbyname pPerl->Perl_pp_gnbyname -#undef Perl_pp_gnetent -#define Perl_pp_gnetent pPerl->Perl_pp_gnetent -#undef Perl_pp_goto -#define Perl_pp_goto pPerl->Perl_pp_goto -#undef Perl_pp_gpbyname -#define Perl_pp_gpbyname pPerl->Perl_pp_gpbyname -#undef Perl_pp_gpbynumber -#define Perl_pp_gpbynumber pPerl->Perl_pp_gpbynumber -#undef Perl_pp_gprotoent -#define Perl_pp_gprotoent pPerl->Perl_pp_gprotoent -#undef Perl_pp_gpwent -#define Perl_pp_gpwent pPerl->Perl_pp_gpwent -#undef Perl_pp_gpwnam -#define Perl_pp_gpwnam pPerl->Perl_pp_gpwnam -#undef Perl_pp_gpwuid -#define Perl_pp_gpwuid pPerl->Perl_pp_gpwuid -#undef Perl_pp_grepstart -#define Perl_pp_grepstart pPerl->Perl_pp_grepstart -#undef Perl_pp_grepwhile -#define Perl_pp_grepwhile pPerl->Perl_pp_grepwhile -#undef Perl_pp_gsbyname -#define Perl_pp_gsbyname pPerl->Perl_pp_gsbyname -#undef Perl_pp_gsbyport -#define Perl_pp_gsbyport pPerl->Perl_pp_gsbyport -#undef Perl_pp_gservent -#define Perl_pp_gservent pPerl->Perl_pp_gservent -#undef Perl_pp_gsockopt -#define Perl_pp_gsockopt pPerl->Perl_pp_gsockopt -#undef Perl_pp_gt -#define Perl_pp_gt pPerl->Perl_pp_gt -#undef Perl_pp_gv -#define Perl_pp_gv pPerl->Perl_pp_gv -#undef Perl_pp_gvsv -#define Perl_pp_gvsv pPerl->Perl_pp_gvsv -#undef Perl_pp_helem -#define Perl_pp_helem pPerl->Perl_pp_helem -#undef Perl_pp_hex -#define Perl_pp_hex pPerl->Perl_pp_hex -#undef Perl_pp_hslice -#define Perl_pp_hslice pPerl->Perl_pp_hslice -#undef Perl_pp_i_add -#define Perl_pp_i_add pPerl->Perl_pp_i_add -#undef Perl_pp_i_divide -#define Perl_pp_i_divide pPerl->Perl_pp_i_divide -#undef Perl_pp_i_eq -#define Perl_pp_i_eq pPerl->Perl_pp_i_eq -#undef Perl_pp_i_ge -#define Perl_pp_i_ge pPerl->Perl_pp_i_ge -#undef Perl_pp_i_gt -#define Perl_pp_i_gt pPerl->Perl_pp_i_gt -#undef Perl_pp_i_le -#define Perl_pp_i_le pPerl->Perl_pp_i_le -#undef Perl_pp_i_lt -#define Perl_pp_i_lt pPerl->Perl_pp_i_lt -#undef Perl_pp_i_modulo -#define Perl_pp_i_modulo pPerl->Perl_pp_i_modulo -#undef Perl_pp_i_multiply -#define Perl_pp_i_multiply pPerl->Perl_pp_i_multiply -#undef Perl_pp_i_ncmp -#define Perl_pp_i_ncmp pPerl->Perl_pp_i_ncmp -#undef Perl_pp_i_ne -#define Perl_pp_i_ne pPerl->Perl_pp_i_ne -#undef Perl_pp_i_negate -#define Perl_pp_i_negate pPerl->Perl_pp_i_negate -#undef Perl_pp_i_subtract -#define Perl_pp_i_subtract pPerl->Perl_pp_i_subtract -#undef Perl_pp_index -#define Perl_pp_index pPerl->Perl_pp_index -#undef Perl_pp_int -#define Perl_pp_int pPerl->Perl_pp_int -#undef Perl_pp_ioctl -#define Perl_pp_ioctl pPerl->Perl_pp_ioctl -#undef Perl_pp_iter -#define Perl_pp_iter pPerl->Perl_pp_iter -#undef Perl_pp_join -#define Perl_pp_join pPerl->Perl_pp_join -#undef Perl_pp_keys -#define Perl_pp_keys pPerl->Perl_pp_keys -#undef Perl_pp_kill -#define Perl_pp_kill pPerl->Perl_pp_kill -#undef Perl_pp_last -#define Perl_pp_last pPerl->Perl_pp_last -#undef Perl_pp_lc -#define Perl_pp_lc pPerl->Perl_pp_lc -#undef Perl_pp_lcfirst -#define Perl_pp_lcfirst pPerl->Perl_pp_lcfirst -#undef Perl_pp_le -#define Perl_pp_le pPerl->Perl_pp_le -#undef Perl_pp_leave -#define Perl_pp_leave pPerl->Perl_pp_leave -#undef Perl_pp_leaveeval -#define Perl_pp_leaveeval pPerl->Perl_pp_leaveeval -#undef Perl_pp_leaveloop -#define Perl_pp_leaveloop pPerl->Perl_pp_leaveloop -#undef Perl_pp_leavesub -#define Perl_pp_leavesub pPerl->Perl_pp_leavesub -#undef Perl_pp_leavetry -#define Perl_pp_leavetry pPerl->Perl_pp_leavetry -#undef Perl_pp_leavewrite -#define Perl_pp_leavewrite pPerl->Perl_pp_leavewrite -#undef Perl_pp_left_shift -#define Perl_pp_left_shift pPerl->Perl_pp_left_shift -#undef Perl_pp_length -#define Perl_pp_length pPerl->Perl_pp_length -#undef Perl_pp_lineseq -#define Perl_pp_lineseq pPerl->Perl_pp_lineseq -#undef Perl_pp_link -#define Perl_pp_link pPerl->Perl_pp_link -#undef Perl_pp_list -#define Perl_pp_list pPerl->Perl_pp_list -#undef Perl_pp_listen -#define Perl_pp_listen pPerl->Perl_pp_listen -#undef Perl_pp_localtime -#define Perl_pp_localtime pPerl->Perl_pp_localtime -#undef Perl_pp_lock -#define Perl_pp_lock pPerl->Perl_pp_lock -#undef Perl_pp_log -#define Perl_pp_log pPerl->Perl_pp_log -#undef Perl_pp_lslice -#define Perl_pp_lslice pPerl->Perl_pp_lslice -#undef Perl_pp_lstat -#define Perl_pp_lstat pPerl->Perl_pp_lstat -#undef Perl_pp_lt -#define Perl_pp_lt pPerl->Perl_pp_lt -#undef Perl_pp_mapstart -#define Perl_pp_mapstart pPerl->Perl_pp_mapstart -#undef Perl_pp_mapwhile -#define Perl_pp_mapwhile pPerl->Perl_pp_mapwhile -#undef Perl_pp_match -#define Perl_pp_match pPerl->Perl_pp_match -#undef Perl_pp_method -#define Perl_pp_method pPerl->Perl_pp_method -#undef Perl_pp_mkdir -#define Perl_pp_mkdir pPerl->Perl_pp_mkdir -#undef Perl_pp_modulo -#define Perl_pp_modulo pPerl->Perl_pp_modulo -#undef Perl_pp_msgctl -#define Perl_pp_msgctl pPerl->Perl_pp_msgctl -#undef Perl_pp_msgget -#define Perl_pp_msgget pPerl->Perl_pp_msgget -#undef Perl_pp_msgrcv -#define Perl_pp_msgrcv pPerl->Perl_pp_msgrcv -#undef Perl_pp_msgsnd -#define Perl_pp_msgsnd pPerl->Perl_pp_msgsnd -#undef Perl_pp_multiply -#define Perl_pp_multiply pPerl->Perl_pp_multiply -#undef Perl_pp_ncmp -#define Perl_pp_ncmp pPerl->Perl_pp_ncmp -#undef Perl_pp_ne -#define Perl_pp_ne pPerl->Perl_pp_ne -#undef Perl_pp_negate -#define Perl_pp_negate pPerl->Perl_pp_negate -#undef Perl_pp_next -#define Perl_pp_next pPerl->Perl_pp_next -#undef Perl_pp_nextstate -#define Perl_pp_nextstate pPerl->Perl_pp_nextstate -#undef Perl_pp_not -#define Perl_pp_not pPerl->Perl_pp_not -#undef Perl_pp_null -#define Perl_pp_null pPerl->Perl_pp_null -#undef Perl_pp_oct -#define Perl_pp_oct pPerl->Perl_pp_oct -#undef Perl_pp_open -#define Perl_pp_open pPerl->Perl_pp_open -#undef Perl_pp_open_dir -#define Perl_pp_open_dir pPerl->Perl_pp_open_dir -#undef Perl_pp_or -#define Perl_pp_or pPerl->Perl_pp_or -#undef Perl_pp_orassign -#define Perl_pp_orassign pPerl->Perl_pp_orassign -#undef Perl_pp_ord -#define Perl_pp_ord pPerl->Perl_pp_ord -#undef Perl_pp_pack -#define Perl_pp_pack pPerl->Perl_pp_pack -#undef Perl_pp_padany -#define Perl_pp_padany pPerl->Perl_pp_padany -#undef Perl_pp_padav -#define Perl_pp_padav pPerl->Perl_pp_padav -#undef Perl_pp_padhv -#define Perl_pp_padhv pPerl->Perl_pp_padhv -#undef Perl_pp_padsv -#define Perl_pp_padsv pPerl->Perl_pp_padsv -#undef Perl_pp_pipe_op -#define Perl_pp_pipe_op pPerl->Perl_pp_pipe_op -#undef Perl_pp_pop -#define Perl_pp_pop pPerl->Perl_pp_pop -#undef Perl_pp_pos -#define Perl_pp_pos pPerl->Perl_pp_pos -#undef Perl_pp_postdec -#define Perl_pp_postdec pPerl->Perl_pp_postdec -#undef Perl_pp_postinc -#define Perl_pp_postinc pPerl->Perl_pp_postinc -#undef Perl_pp_pow -#define Perl_pp_pow pPerl->Perl_pp_pow -#undef Perl_pp_predec -#define Perl_pp_predec pPerl->Perl_pp_predec -#undef Perl_pp_preinc -#define Perl_pp_preinc pPerl->Perl_pp_preinc -#undef Perl_pp_print -#define Perl_pp_print pPerl->Perl_pp_print -#undef Perl_pp_prototype -#define Perl_pp_prototype pPerl->Perl_pp_prototype -#undef Perl_pp_prtf -#define Perl_pp_prtf pPerl->Perl_pp_prtf -#undef Perl_pp_push -#define Perl_pp_push pPerl->Perl_pp_push -#undef Perl_pp_pushmark -#define Perl_pp_pushmark pPerl->Perl_pp_pushmark -#undef Perl_pp_pushre -#define Perl_pp_pushre pPerl->Perl_pp_pushre -#undef Perl_pp_qr -#define Perl_pp_qr pPerl->Perl_pp_qr -#undef Perl_pp_quotemeta -#define Perl_pp_quotemeta pPerl->Perl_pp_quotemeta -#undef Perl_pp_rand -#define Perl_pp_rand pPerl->Perl_pp_rand -#undef Perl_pp_range -#define Perl_pp_range pPerl->Perl_pp_range -#undef Perl_pp_rcatline -#define Perl_pp_rcatline pPerl->Perl_pp_rcatline -#undef Perl_pp_read -#define Perl_pp_read pPerl->Perl_pp_read -#undef Perl_pp_readdir -#define Perl_pp_readdir pPerl->Perl_pp_readdir -#undef Perl_pp_readline -#define Perl_pp_readline pPerl->Perl_pp_readline -#undef Perl_pp_readlink -#define Perl_pp_readlink pPerl->Perl_pp_readlink -#undef Perl_pp_recv -#define Perl_pp_recv pPerl->Perl_pp_recv -#undef Perl_pp_redo -#define Perl_pp_redo pPerl->Perl_pp_redo -#undef Perl_pp_ref -#define Perl_pp_ref pPerl->Perl_pp_ref -#undef Perl_pp_refgen -#define Perl_pp_refgen pPerl->Perl_pp_refgen -#undef Perl_pp_regcmaybe -#define Perl_pp_regcmaybe pPerl->Perl_pp_regcmaybe -#undef Perl_pp_regcomp -#define Perl_pp_regcomp pPerl->Perl_pp_regcomp -#undef Perl_pp_regcreset -#define Perl_pp_regcreset pPerl->Perl_pp_regcreset -#undef Perl_pp_rename -#define Perl_pp_rename pPerl->Perl_pp_rename -#undef Perl_pp_repeat -#define Perl_pp_repeat pPerl->Perl_pp_repeat -#undef Perl_pp_require -#define Perl_pp_require pPerl->Perl_pp_require -#undef Perl_pp_reset -#define Perl_pp_reset pPerl->Perl_pp_reset -#undef Perl_pp_return -#define Perl_pp_return pPerl->Perl_pp_return -#undef Perl_pp_reverse -#define Perl_pp_reverse pPerl->Perl_pp_reverse -#undef Perl_pp_rewinddir -#define Perl_pp_rewinddir pPerl->Perl_pp_rewinddir -#undef Perl_pp_right_shift -#define Perl_pp_right_shift pPerl->Perl_pp_right_shift -#undef Perl_pp_rindex -#define Perl_pp_rindex pPerl->Perl_pp_rindex -#undef Perl_pp_rmdir -#define Perl_pp_rmdir pPerl->Perl_pp_rmdir -#undef Perl_pp_rv2av -#define Perl_pp_rv2av pPerl->Perl_pp_rv2av -#undef Perl_pp_rv2cv -#define Perl_pp_rv2cv pPerl->Perl_pp_rv2cv -#undef Perl_pp_rv2gv -#define Perl_pp_rv2gv pPerl->Perl_pp_rv2gv -#undef Perl_pp_rv2hv -#define Perl_pp_rv2hv pPerl->Perl_pp_rv2hv -#undef Perl_pp_rv2sv -#define Perl_pp_rv2sv pPerl->Perl_pp_rv2sv -#undef Perl_pp_sassign -#define Perl_pp_sassign pPerl->Perl_pp_sassign -#undef Perl_pp_scalar -#define Perl_pp_scalar pPerl->Perl_pp_scalar -#undef Perl_pp_schomp -#define Perl_pp_schomp pPerl->Perl_pp_schomp -#undef Perl_pp_schop -#define Perl_pp_schop pPerl->Perl_pp_schop -#undef Perl_pp_scmp -#define Perl_pp_scmp pPerl->Perl_pp_scmp -#undef Perl_pp_scope -#define Perl_pp_scope pPerl->Perl_pp_scope -#undef Perl_pp_seek -#define Perl_pp_seek pPerl->Perl_pp_seek -#undef Perl_pp_seekdir -#define Perl_pp_seekdir pPerl->Perl_pp_seekdir -#undef Perl_pp_select -#define Perl_pp_select pPerl->Perl_pp_select -#undef Perl_pp_semctl -#define Perl_pp_semctl pPerl->Perl_pp_semctl -#undef Perl_pp_semget -#define Perl_pp_semget pPerl->Perl_pp_semget -#undef Perl_pp_semop -#define Perl_pp_semop pPerl->Perl_pp_semop -#undef Perl_pp_send -#define Perl_pp_send pPerl->Perl_pp_send -#undef Perl_pp_seq -#define Perl_pp_seq pPerl->Perl_pp_seq -#undef Perl_pp_setpgrp -#define Perl_pp_setpgrp pPerl->Perl_pp_setpgrp -#undef Perl_pp_setpriority -#define Perl_pp_setpriority pPerl->Perl_pp_setpriority -#undef Perl_pp_sge -#define Perl_pp_sge pPerl->Perl_pp_sge -#undef Perl_pp_sgrent -#define Perl_pp_sgrent pPerl->Perl_pp_sgrent -#undef Perl_pp_sgt -#define Perl_pp_sgt pPerl->Perl_pp_sgt -#undef Perl_pp_shift -#define Perl_pp_shift pPerl->Perl_pp_shift -#undef Perl_pp_shmctl -#define Perl_pp_shmctl pPerl->Perl_pp_shmctl -#undef Perl_pp_shmget -#define Perl_pp_shmget pPerl->Perl_pp_shmget -#undef Perl_pp_shmread -#define Perl_pp_shmread pPerl->Perl_pp_shmread -#undef Perl_pp_shmwrite -#define Perl_pp_shmwrite pPerl->Perl_pp_shmwrite -#undef Perl_pp_shostent -#define Perl_pp_shostent pPerl->Perl_pp_shostent -#undef Perl_pp_shutdown -#define Perl_pp_shutdown pPerl->Perl_pp_shutdown -#undef Perl_pp_sin -#define Perl_pp_sin pPerl->Perl_pp_sin -#undef Perl_pp_sle -#define Perl_pp_sle pPerl->Perl_pp_sle -#undef Perl_pp_sleep -#define Perl_pp_sleep pPerl->Perl_pp_sleep -#undef Perl_pp_slt -#define Perl_pp_slt pPerl->Perl_pp_slt -#undef Perl_pp_sne -#define Perl_pp_sne pPerl->Perl_pp_sne -#undef Perl_pp_snetent -#define Perl_pp_snetent pPerl->Perl_pp_snetent -#undef Perl_pp_socket -#define Perl_pp_socket pPerl->Perl_pp_socket -#undef Perl_pp_sockpair -#define Perl_pp_sockpair pPerl->Perl_pp_sockpair -#undef Perl_pp_sort -#define Perl_pp_sort pPerl->Perl_pp_sort -#undef Perl_pp_splice -#define Perl_pp_splice pPerl->Perl_pp_splice -#undef Perl_pp_split -#define Perl_pp_split pPerl->Perl_pp_split -#undef Perl_pp_sprintf -#define Perl_pp_sprintf pPerl->Perl_pp_sprintf -#undef Perl_pp_sprotoent -#define Perl_pp_sprotoent pPerl->Perl_pp_sprotoent -#undef Perl_pp_spwent -#define Perl_pp_spwent pPerl->Perl_pp_spwent -#undef Perl_pp_sqrt -#define Perl_pp_sqrt pPerl->Perl_pp_sqrt -#undef Perl_pp_srand -#define Perl_pp_srand pPerl->Perl_pp_srand -#undef Perl_pp_srefgen -#define Perl_pp_srefgen pPerl->Perl_pp_srefgen -#undef Perl_pp_sselect -#define Perl_pp_sselect pPerl->Perl_pp_sselect -#undef Perl_pp_sservent -#define Perl_pp_sservent pPerl->Perl_pp_sservent -#undef Perl_pp_ssockopt -#define Perl_pp_ssockopt pPerl->Perl_pp_ssockopt -#undef Perl_pp_stat -#define Perl_pp_stat pPerl->Perl_pp_stat -#undef Perl_pp_stringify -#define Perl_pp_stringify pPerl->Perl_pp_stringify -#undef Perl_pp_stub -#define Perl_pp_stub pPerl->Perl_pp_stub -#undef Perl_pp_study -#define Perl_pp_study pPerl->Perl_pp_study -#undef Perl_pp_subst -#define Perl_pp_subst pPerl->Perl_pp_subst -#undef Perl_pp_substcont -#define Perl_pp_substcont pPerl->Perl_pp_substcont -#undef Perl_pp_substr -#define Perl_pp_substr pPerl->Perl_pp_substr -#undef Perl_pp_subtract -#define Perl_pp_subtract pPerl->Perl_pp_subtract -#undef Perl_pp_symlink -#define Perl_pp_symlink pPerl->Perl_pp_symlink -#undef Perl_pp_syscall -#define Perl_pp_syscall pPerl->Perl_pp_syscall -#undef Perl_pp_sysopen -#define Perl_pp_sysopen pPerl->Perl_pp_sysopen -#undef Perl_pp_sysread -#define Perl_pp_sysread pPerl->Perl_pp_sysread -#undef Perl_pp_sysseek -#define Perl_pp_sysseek pPerl->Perl_pp_sysseek -#undef Perl_pp_system -#define Perl_pp_system pPerl->Perl_pp_system -#undef Perl_pp_syswrite -#define Perl_pp_syswrite pPerl->Perl_pp_syswrite -#undef Perl_pp_tell -#define Perl_pp_tell pPerl->Perl_pp_tell -#undef Perl_pp_telldir -#define Perl_pp_telldir pPerl->Perl_pp_telldir -#undef Perl_pp_threadsv -#define Perl_pp_threadsv pPerl->Perl_pp_threadsv -#undef Perl_pp_tie -#define Perl_pp_tie pPerl->Perl_pp_tie -#undef Perl_pp_tied -#define Perl_pp_tied pPerl->Perl_pp_tied -#undef Perl_pp_time -#define Perl_pp_time pPerl->Perl_pp_time -#undef Perl_pp_tms -#define Perl_pp_tms pPerl->Perl_pp_tms -#undef Perl_pp_trans -#define Perl_pp_trans pPerl->Perl_pp_trans -#undef Perl_pp_truncate -#define Perl_pp_truncate pPerl->Perl_pp_truncate -#undef Perl_pp_uc -#define Perl_pp_uc pPerl->Perl_pp_uc -#undef Perl_pp_ucfirst -#define Perl_pp_ucfirst pPerl->Perl_pp_ucfirst -#undef Perl_pp_umask -#define Perl_pp_umask pPerl->Perl_pp_umask -#undef Perl_pp_undef -#define Perl_pp_undef pPerl->Perl_pp_undef -#undef Perl_pp_unlink -#define Perl_pp_unlink pPerl->Perl_pp_unlink -#undef Perl_pp_unpack -#define Perl_pp_unpack pPerl->Perl_pp_unpack -#undef Perl_pp_unshift -#define Perl_pp_unshift pPerl->Perl_pp_unshift -#undef Perl_pp_unstack -#define Perl_pp_unstack pPerl->Perl_pp_unstack -#undef Perl_pp_untie -#define Perl_pp_untie pPerl->Perl_pp_untie -#undef Perl_pp_utime -#define Perl_pp_utime pPerl->Perl_pp_utime -#undef Perl_pp_values -#define Perl_pp_values pPerl->Perl_pp_values -#undef Perl_pp_vec -#define Perl_pp_vec pPerl->Perl_pp_vec -#undef Perl_pp_wait -#define Perl_pp_wait pPerl->Perl_pp_wait -#undef Perl_pp_waitpid -#define Perl_pp_waitpid pPerl->Perl_pp_waitpid -#undef Perl_pp_wantarray -#define Perl_pp_wantarray pPerl->Perl_pp_wantarray -#undef Perl_pp_warn -#define Perl_pp_warn pPerl->Perl_pp_warn -#undef Perl_pp_xor -#define Perl_pp_xor pPerl->Perl_pp_xor -#undef Perl_pregcomp -#define Perl_pregcomp pPerl->Perl_pregcomp -#undef Perl_pregexec -#define Perl_pregexec pPerl->Perl_pregexec -#undef Perl_pregfree -#define Perl_pregfree pPerl->Perl_pregfree -#undef Perl_prepend_elem -#define Perl_prepend_elem pPerl->Perl_prepend_elem -#undef Perl_push_return -#define Perl_push_return pPerl->Perl_push_return -#undef Perl_push_scope -#define Perl_push_scope pPerl->Perl_push_scope -#undef Perl_pv_display -#define Perl_pv_display pPerl->Perl_pv_display -#undef Perl_realloc -#define Perl_realloc pPerl->Perl_realloc -#undef Perl_ref -#define Perl_ref pPerl->Perl_ref -#undef Perl_refkids -#define Perl_refkids pPerl->Perl_refkids -#undef Perl_regdump -#define Perl_regdump pPerl->Perl_regdump -#undef Perl_regexec_flags -#define Perl_regexec_flags pPerl->Perl_regexec_flags -#undef Perl_reginitcolors -#define Perl_reginitcolors pPerl->Perl_reginitcolors -#undef Perl_regnext -#define Perl_regnext pPerl->Perl_regnext -#undef Perl_regprop -#define Perl_regprop pPerl->Perl_regprop -#undef Perl_repeatcpy -#define Perl_repeatcpy pPerl->Perl_repeatcpy -#undef Perl_require_pv -#define Perl_require_pv pPerl->Perl_require_pv -#undef Perl_rninstr -#define Perl_rninstr pPerl->Perl_rninstr -#undef Perl_rsignal -#define Perl_rsignal pPerl->Perl_rsignal -#undef Perl_rsignal_restore -#define Perl_rsignal_restore pPerl->Perl_rsignal_restore -#undef Perl_rsignal_save -#define Perl_rsignal_save pPerl->Perl_rsignal_save -#undef Perl_rsignal_state -#define Perl_rsignal_state pPerl->Perl_rsignal_state -#undef Perl_runops_debug -#define Perl_runops_debug pPerl->Perl_runops_debug -#undef Perl_runops_standard -#define Perl_runops_standard pPerl->Perl_runops_standard -#undef Perl_rxres_free -#define Perl_rxres_free pPerl->Perl_rxres_free -#undef Perl_rxres_restore -#define Perl_rxres_restore pPerl->Perl_rxres_restore -#undef Perl_rxres_save -#define Perl_rxres_save pPerl->Perl_rxres_save -#undef Perl_safesyscalloc -#define Perl_safesyscalloc pPerl->Perl_safesyscalloc -#undef Perl_safesysfree -#define Perl_safesysfree pPerl->Perl_safesysfree -#undef Perl_safesysmalloc -#define Perl_safesysmalloc pPerl->Perl_safesysmalloc -#undef Perl_safesysrealloc -#define Perl_safesysrealloc pPerl->Perl_safesysrealloc -#undef Perl_safexcalloc -#define Perl_safexcalloc pPerl->Perl_safexcalloc -#undef Perl_safexfree -#define Perl_safexfree pPerl->Perl_safexfree -#undef Perl_safexmalloc -#define Perl_safexmalloc pPerl->Perl_safexmalloc -#undef Perl_safexrealloc -#define Perl_safexrealloc pPerl->Perl_safexrealloc -#undef Perl_same_dirent -#define Perl_same_dirent pPerl->Perl_same_dirent -#undef Perl_save_I16 -#define Perl_save_I16 pPerl->Perl_save_I16 -#undef Perl_save_I32 -#define Perl_save_I32 pPerl->Perl_save_I32 -#undef Perl_save_aelem -#define Perl_save_aelem pPerl->Perl_save_aelem -#undef Perl_save_alloc -#define Perl_save_alloc pPerl->Perl_save_alloc -#undef Perl_save_aptr -#define Perl_save_aptr pPerl->Perl_save_aptr -#undef Perl_save_ary -#define Perl_save_ary pPerl->Perl_save_ary -#undef Perl_save_clearsv -#define Perl_save_clearsv pPerl->Perl_save_clearsv -#undef Perl_save_delete -#define Perl_save_delete pPerl->Perl_save_delete -#undef Perl_save_destructor -#define Perl_save_destructor pPerl->Perl_save_destructor -#undef Perl_save_freeop -#define Perl_save_freeop pPerl->Perl_save_freeop -#undef Perl_save_freepv -#define Perl_save_freepv pPerl->Perl_save_freepv -#undef Perl_save_freesv -#define Perl_save_freesv pPerl->Perl_save_freesv -#undef Perl_save_generic_svref -#define Perl_save_generic_svref pPerl->Perl_save_generic_svref -#undef Perl_save_gp -#define Perl_save_gp pPerl->Perl_save_gp -#undef Perl_save_hash -#define Perl_save_hash pPerl->Perl_save_hash -#undef Perl_save_helem -#define Perl_save_helem pPerl->Perl_save_helem -#undef Perl_save_hints -#define Perl_save_hints pPerl->Perl_save_hints -#undef Perl_save_hptr -#define Perl_save_hptr pPerl->Perl_save_hptr -#undef Perl_save_int -#define Perl_save_int pPerl->Perl_save_int -#undef Perl_save_item -#define Perl_save_item pPerl->Perl_save_item -#undef Perl_save_iv -#define Perl_save_iv pPerl->Perl_save_iv -#undef Perl_save_list -#define Perl_save_list pPerl->Perl_save_list -#undef Perl_save_long -#define Perl_save_long pPerl->Perl_save_long -#undef Perl_save_nogv -#define Perl_save_nogv pPerl->Perl_save_nogv -#undef Perl_save_op -#define Perl_save_op pPerl->Perl_save_op -#undef Perl_save_pptr -#define Perl_save_pptr pPerl->Perl_save_pptr -#undef Perl_save_re_context -#define Perl_save_re_context pPerl->Perl_save_re_context -#undef Perl_save_scalar -#define Perl_save_scalar pPerl->Perl_save_scalar -#undef Perl_save_sptr -#define Perl_save_sptr pPerl->Perl_save_sptr -#undef Perl_save_svref -#define Perl_save_svref pPerl->Perl_save_svref -#undef Perl_save_threadsv -#define Perl_save_threadsv pPerl->Perl_save_threadsv -#undef Perl_savepv -#define Perl_savepv pPerl->Perl_savepv -#undef Perl_savepvn -#define Perl_savepvn pPerl->Perl_savepvn -#undef Perl_savestack_grow -#define Perl_savestack_grow pPerl->Perl_savestack_grow -#undef Perl_sawparens -#define Perl_sawparens pPerl->Perl_sawparens -#undef Perl_scalar -#define Perl_scalar pPerl->Perl_scalar -#undef Perl_scalarkids -#define Perl_scalarkids pPerl->Perl_scalarkids -#undef Perl_scalarseq -#define Perl_scalarseq pPerl->Perl_scalarseq -#undef Perl_scalarvoid -#define Perl_scalarvoid pPerl->Perl_scalarvoid -#undef Perl_scan_bin -#define Perl_scan_bin pPerl->Perl_scan_bin -#undef Perl_scan_hex -#define Perl_scan_hex pPerl->Perl_scan_hex -#undef Perl_scan_num -#define Perl_scan_num pPerl->Perl_scan_num -#undef Perl_scan_oct -#define Perl_scan_oct pPerl->Perl_scan_oct -#undef Perl_scope -#define Perl_scope pPerl->Perl_scope -#undef Perl_screaminstr -#define Perl_screaminstr pPerl->Perl_screaminstr -#undef Perl_set_numeric_local -#define Perl_set_numeric_local pPerl->Perl_set_numeric_local -#undef Perl_set_numeric_standard -#define Perl_set_numeric_standard pPerl->Perl_set_numeric_standard -#undef Perl_setdefout -#define Perl_setdefout pPerl->Perl_setdefout -#undef Perl_setenv_getix -#define Perl_setenv_getix pPerl->Perl_setenv_getix -#undef Perl_share_hek -#define Perl_share_hek pPerl->Perl_share_hek -#undef Perl_sharepvn -#define Perl_sharepvn pPerl->Perl_sharepvn -#undef Perl_sighandler -#define Perl_sighandler pPerl->Perl_sighandler -#undef Perl_stack_grow -#define Perl_stack_grow pPerl->Perl_stack_grow -#undef Perl_start_subparse -#define Perl_start_subparse pPerl->Perl_start_subparse -#undef Perl_sub_crush_depth -#define Perl_sub_crush_depth pPerl->Perl_sub_crush_depth -#undef Perl_sv_2bool -#define Perl_sv_2bool pPerl->Perl_sv_2bool -#undef Perl_sv_2cv -#define Perl_sv_2cv pPerl->Perl_sv_2cv -#undef Perl_sv_2io -#define Perl_sv_2io pPerl->Perl_sv_2io -#undef Perl_sv_2iv -#define Perl_sv_2iv pPerl->Perl_sv_2iv -#undef Perl_sv_2mortal -#define Perl_sv_2mortal pPerl->Perl_sv_2mortal -#undef Perl_sv_2nv -#define Perl_sv_2nv pPerl->Perl_sv_2nv -#undef Perl_sv_2pv -#define Perl_sv_2pv pPerl->Perl_sv_2pv -#undef Perl_sv_2pv_nolen -#define Perl_sv_2pv_nolen pPerl->Perl_sv_2pv_nolen -#undef Perl_sv_2uv -#define Perl_sv_2uv pPerl->Perl_sv_2uv -#undef Perl_sv_add_arena -#define Perl_sv_add_arena pPerl->Perl_sv_add_arena -#undef Perl_sv_backoff -#define Perl_sv_backoff pPerl->Perl_sv_backoff -#undef Perl_sv_bless -#define Perl_sv_bless pPerl->Perl_sv_bless -#undef Perl_sv_catpv -#define Perl_sv_catpv pPerl->Perl_sv_catpv -#undef Perl_sv_catpv_mg -#define Perl_sv_catpv_mg pPerl->Perl_sv_catpv_mg -#undef Perl_sv_catpvf -#define Perl_sv_catpvf pPerl->Perl_sv_catpvf -#undef Perl_sv_catpvf_mg -#define Perl_sv_catpvf_mg pPerl->Perl_sv_catpvf_mg -#undef Perl_sv_catpvn -#define Perl_sv_catpvn pPerl->Perl_sv_catpvn -#undef Perl_sv_catpvn_mg -#define Perl_sv_catpvn_mg pPerl->Perl_sv_catpvn_mg -#undef Perl_sv_catsv -#define Perl_sv_catsv pPerl->Perl_sv_catsv -#undef Perl_sv_catsv_mg -#define Perl_sv_catsv_mg pPerl->Perl_sv_catsv_mg -#undef Perl_sv_chop -#define Perl_sv_chop pPerl->Perl_sv_chop -#undef Perl_sv_clean_all -#define Perl_sv_clean_all pPerl->Perl_sv_clean_all -#undef Perl_sv_clean_objs -#define Perl_sv_clean_objs pPerl->Perl_sv_clean_objs -#undef Perl_sv_clear -#define Perl_sv_clear pPerl->Perl_sv_clear -#undef Perl_sv_cmp -#define Perl_sv_cmp pPerl->Perl_sv_cmp -#undef Perl_sv_cmp_locale -#define Perl_sv_cmp_locale pPerl->Perl_sv_cmp_locale -#undef Perl_sv_collxfrm -#define Perl_sv_collxfrm pPerl->Perl_sv_collxfrm -#undef Perl_sv_compile_2op -#define Perl_sv_compile_2op pPerl->Perl_sv_compile_2op -#undef Perl_sv_dec -#define Perl_sv_dec pPerl->Perl_sv_dec -#undef Perl_sv_derived_from -#define Perl_sv_derived_from pPerl->Perl_sv_derived_from -#undef Perl_sv_dump -#define Perl_sv_dump pPerl->Perl_sv_dump -#undef Perl_sv_eq -#define Perl_sv_eq pPerl->Perl_sv_eq -#undef Perl_sv_force_normal -#define Perl_sv_force_normal pPerl->Perl_sv_force_normal -#undef Perl_sv_free -#define Perl_sv_free pPerl->Perl_sv_free -#undef Perl_sv_free_arenas -#define Perl_sv_free_arenas pPerl->Perl_sv_free_arenas -#undef Perl_sv_gets -#define Perl_sv_gets pPerl->Perl_sv_gets -#undef Perl_sv_grow -#define Perl_sv_grow pPerl->Perl_sv_grow -#undef Perl_sv_inc -#define Perl_sv_inc pPerl->Perl_sv_inc -#undef Perl_sv_insert -#define Perl_sv_insert pPerl->Perl_sv_insert -#undef Perl_sv_isa -#define Perl_sv_isa pPerl->Perl_sv_isa -#undef Perl_sv_isobject -#define Perl_sv_isobject pPerl->Perl_sv_isobject -#undef Perl_sv_iv -#define Perl_sv_iv pPerl->Perl_sv_iv -#undef Perl_sv_len -#define Perl_sv_len pPerl->Perl_sv_len -#undef Perl_sv_len_utf8 -#define Perl_sv_len_utf8 pPerl->Perl_sv_len_utf8 -#undef Perl_sv_magic -#define Perl_sv_magic pPerl->Perl_sv_magic -#undef Perl_sv_mortalcopy -#define Perl_sv_mortalcopy pPerl->Perl_sv_mortalcopy -#undef Perl_sv_newmortal -#define Perl_sv_newmortal pPerl->Perl_sv_newmortal -#undef Perl_sv_newref -#define Perl_sv_newref pPerl->Perl_sv_newref -#undef Perl_sv_nv -#define Perl_sv_nv pPerl->Perl_sv_nv -#undef Perl_sv_peek -#define Perl_sv_peek pPerl->Perl_sv_peek -#undef Perl_sv_pos_b2u -#define Perl_sv_pos_b2u pPerl->Perl_sv_pos_b2u -#undef Perl_sv_pos_u2b -#define Perl_sv_pos_u2b pPerl->Perl_sv_pos_u2b -#undef Perl_sv_pv -#define Perl_sv_pv pPerl->Perl_sv_pv -#undef Perl_sv_pvn -#define Perl_sv_pvn pPerl->Perl_sv_pvn -#undef Perl_sv_pvn_force -#define Perl_sv_pvn_force pPerl->Perl_sv_pvn_force -#undef Perl_sv_reftype -#define Perl_sv_reftype pPerl->Perl_sv_reftype -#undef Perl_sv_replace -#define Perl_sv_replace pPerl->Perl_sv_replace -#undef Perl_sv_report_used -#define Perl_sv_report_used pPerl->Perl_sv_report_used -#undef Perl_sv_reset -#define Perl_sv_reset pPerl->Perl_sv_reset -#undef Perl_sv_rvweaken -#define Perl_sv_rvweaken pPerl->Perl_sv_rvweaken -#undef Perl_sv_setiv -#define Perl_sv_setiv pPerl->Perl_sv_setiv -#undef Perl_sv_setiv_mg -#define Perl_sv_setiv_mg pPerl->Perl_sv_setiv_mg -#undef Perl_sv_setnv -#define Perl_sv_setnv pPerl->Perl_sv_setnv -#undef Perl_sv_setnv_mg -#define Perl_sv_setnv_mg pPerl->Perl_sv_setnv_mg -#undef Perl_sv_setpv -#define Perl_sv_setpv pPerl->Perl_sv_setpv -#undef Perl_sv_setpv_mg -#define Perl_sv_setpv_mg pPerl->Perl_sv_setpv_mg -#undef Perl_sv_setpvf -#define Perl_sv_setpvf pPerl->Perl_sv_setpvf -#undef Perl_sv_setpvf_mg -#define Perl_sv_setpvf_mg pPerl->Perl_sv_setpvf_mg -#undef Perl_sv_setpviv -#define Perl_sv_setpviv pPerl->Perl_sv_setpviv -#undef Perl_sv_setpviv_mg -#define Perl_sv_setpviv_mg pPerl->Perl_sv_setpviv_mg -#undef Perl_sv_setpvn -#define Perl_sv_setpvn pPerl->Perl_sv_setpvn -#undef Perl_sv_setpvn_mg -#define Perl_sv_setpvn_mg pPerl->Perl_sv_setpvn_mg -#undef Perl_sv_setref_iv -#define Perl_sv_setref_iv pPerl->Perl_sv_setref_iv -#undef Perl_sv_setref_nv -#define Perl_sv_setref_nv pPerl->Perl_sv_setref_nv -#undef Perl_sv_setref_pv -#define Perl_sv_setref_pv pPerl->Perl_sv_setref_pv -#undef Perl_sv_setref_pvn -#define Perl_sv_setref_pvn pPerl->Perl_sv_setref_pvn -#undef Perl_sv_setsv -#define Perl_sv_setsv pPerl->Perl_sv_setsv -#undef Perl_sv_setsv_mg -#define Perl_sv_setsv_mg pPerl->Perl_sv_setsv_mg -#undef Perl_sv_setuv -#define Perl_sv_setuv pPerl->Perl_sv_setuv -#undef Perl_sv_setuv_mg -#define Perl_sv_setuv_mg pPerl->Perl_sv_setuv_mg -#undef Perl_sv_taint -#define Perl_sv_taint pPerl->Perl_sv_taint -#undef Perl_sv_tainted -#define Perl_sv_tainted pPerl->Perl_sv_tainted -#undef Perl_sv_true -#define Perl_sv_true pPerl->Perl_sv_true -#undef Perl_sv_unmagic -#define Perl_sv_unmagic pPerl->Perl_sv_unmagic -#undef Perl_sv_unref -#define Perl_sv_unref pPerl->Perl_sv_unref -#undef Perl_sv_untaint -#define Perl_sv_untaint pPerl->Perl_sv_untaint -#undef Perl_sv_upgrade -#define Perl_sv_upgrade pPerl->Perl_sv_upgrade -#undef Perl_sv_usepvn -#define Perl_sv_usepvn pPerl->Perl_sv_usepvn -#undef Perl_sv_usepvn_mg -#define Perl_sv_usepvn_mg pPerl->Perl_sv_usepvn_mg -#undef Perl_sv_uv -#define Perl_sv_uv pPerl->Perl_sv_uv -#undef Perl_sv_vcatpvfn -#define Perl_sv_vcatpvfn pPerl->Perl_sv_vcatpvfn -#undef Perl_sv_vsetpvfn -#define Perl_sv_vsetpvfn pPerl->Perl_sv_vsetpvfn -#undef Perl_swash_fetch -#define Perl_swash_fetch pPerl->Perl_swash_fetch -#undef Perl_swash_init -#define Perl_swash_init pPerl->Perl_swash_init -#undef Perl_taint_env -#define Perl_taint_env pPerl->Perl_taint_env -#undef Perl_taint_proper -#define Perl_taint_proper pPerl->Perl_taint_proper -#undef Perl_tmps_grow -#define Perl_tmps_grow pPerl->Perl_tmps_grow -#undef Perl_to_uni_lower -#define Perl_to_uni_lower pPerl->Perl_to_uni_lower -#undef Perl_to_uni_lower_lc -#define Perl_to_uni_lower_lc pPerl->Perl_to_uni_lower_lc -#undef Perl_to_uni_title -#define Perl_to_uni_title pPerl->Perl_to_uni_title -#undef Perl_to_uni_title_lc -#define Perl_to_uni_title_lc pPerl->Perl_to_uni_title_lc -#undef Perl_to_uni_upper -#define Perl_to_uni_upper pPerl->Perl_to_uni_upper -#undef Perl_to_uni_upper_lc -#define Perl_to_uni_upper_lc pPerl->Perl_to_uni_upper_lc -#undef Perl_to_utf8_lower -#define Perl_to_utf8_lower pPerl->Perl_to_utf8_lower -#undef Perl_to_utf8_title -#define Perl_to_utf8_title pPerl->Perl_to_utf8_title -#undef Perl_to_utf8_upper -#define Perl_to_utf8_upper pPerl->Perl_to_utf8_upper -#undef Perl_unlnk -#define Perl_unlnk pPerl->Perl_unlnk -#undef Perl_unlock_condpair -#define Perl_unlock_condpair pPerl->Perl_unlock_condpair -#undef Perl_unshare_hek -#define Perl_unshare_hek pPerl->Perl_unshare_hek -#undef Perl_unsharepvn -#define Perl_unsharepvn pPerl->Perl_unsharepvn -#undef Perl_utf16_to_utf8 -#define Perl_utf16_to_utf8 pPerl->Perl_utf16_to_utf8 -#undef Perl_utf16_to_utf8_reversed -#define Perl_utf16_to_utf8_reversed pPerl->Perl_utf16_to_utf8_reversed -#undef Perl_utf8_distance -#define Perl_utf8_distance pPerl->Perl_utf8_distance -#undef Perl_utf8_hop -#define Perl_utf8_hop pPerl->Perl_utf8_hop -#undef Perl_utf8_to_uv -#define Perl_utf8_to_uv pPerl->Perl_utf8_to_uv -#undef Perl_utilize -#define Perl_utilize pPerl->Perl_utilize -#undef Perl_uv_to_utf8 -#define Perl_uv_to_utf8 pPerl->Perl_uv_to_utf8 -#undef Perl_vivify_defelem -#define Perl_vivify_defelem pPerl->Perl_vivify_defelem -#undef Perl_vivify_ref -#define Perl_vivify_ref pPerl->Perl_vivify_ref -#undef Perl_wait4pid -#define Perl_wait4pid pPerl->Perl_wait4pid -#undef Perl_warn -#define Perl_warn pPerl->Perl_warn -#undef Perl_warner -#define Perl_warner pPerl->Perl_warner -#undef Perl_watch -#define Perl_watch pPerl->Perl_watch -#undef Perl_whichsig -#define Perl_whichsig pPerl->Perl_whichsig -#undef Perl_yydestruct -#define Perl_yydestruct pPerl->Perl_yydestruct -#undef Perl_yyerror -#define Perl_yyerror pPerl->Perl_yyerror -#undef Perl_yylex -#define Perl_yylex pPerl->Perl_yylex -#undef Perl_yyparse -#define Perl_yyparse pPerl->Perl_yyparse -#undef Perl_yywarn -#define Perl_yywarn pPerl->Perl_yywarn -#undef add_data -#define add_data pPerl->Perl_add_data -#undef amagic_cmp -#define amagic_cmp pPerl->Perl_amagic_cmp -#undef amagic_cmp_locale -#define amagic_cmp_locale pPerl->Perl_amagic_cmp_locale -#undef amagic_i_ncmp -#define amagic_i_ncmp pPerl->Perl_amagic_i_ncmp -#undef amagic_ncmp -#define amagic_ncmp pPerl->Perl_amagic_ncmp -#undef ao -#define ao pPerl->Perl_ao -#undef asIV -#define asIV pPerl->Perl_asIV -#undef asUV -#define asUV pPerl->Perl_asUV -#undef avhv_index_sv -#define avhv_index_sv pPerl->Perl_avhv_index_sv -#undef bad_type -#define bad_type pPerl->Perl_bad_type -#undef cache_re -#define cache_re pPerl->Perl_cache_re -#undef call_list_body -#define call_list_body pPerl->Perl_call_list_body -#undef check_uni -#define check_uni pPerl->Perl_check_uni -#undef checkcomma -#define checkcomma pPerl->Perl_checkcomma -#undef clear_re -#define clear_re pPerl->Perl_clear_re -#undef cv_clone2 -#define cv_clone2 pPerl->Perl_cv_clone2 -#undef debprof -#define debprof pPerl->Perl_debprof -#undef del_he -#define del_he pPerl->Perl_del_he -#undef del_sv -#define del_sv pPerl->Perl_del_sv -#undef del_xiv -#define del_xiv pPerl->Perl_del_xiv -#undef del_xnv -#define del_xnv pPerl->Perl_del_xnv -#undef del_xpv -#define del_xpv pPerl->Perl_del_xpv -#undef del_xrv -#define del_xrv pPerl->Perl_del_xrv -#undef depcom -#define depcom pPerl->Perl_depcom -#undef div128 -#define div128 pPerl->Perl_div128 -#undef do_aspawn -#define do_aspawn pPerl->Perl_do_aspawn -#undef do_clean_all -#define do_clean_all pPerl->Perl_do_clean_all -#undef do_clean_named_objs -#define do_clean_named_objs pPerl->Perl_do_clean_named_objs -#undef do_clean_objs -#define do_clean_objs pPerl->Perl_do_clean_objs -#undef do_report_used -#define do_report_used pPerl->Perl_do_report_used -#undef do_trans_CC_complex -#define do_trans_CC_complex pPerl->Perl_do_trans_CC_complex -#undef do_trans_CC_count -#define do_trans_CC_count pPerl->Perl_do_trans_CC_count -#undef do_trans_CC_simple -#define do_trans_CC_simple pPerl->Perl_do_trans_CC_simple -#undef do_trans_CU_simple -#define do_trans_CU_simple pPerl->Perl_do_trans_CU_simple -#undef do_trans_CU_trivial -#define do_trans_CU_trivial pPerl->Perl_do_trans_CU_trivial -#undef do_trans_UC_simple -#define do_trans_UC_simple pPerl->Perl_do_trans_UC_simple -#undef do_trans_UC_trivial -#define do_trans_UC_trivial pPerl->Perl_do_trans_UC_trivial -#undef do_trans_UU_complex -#define do_trans_UU_complex pPerl->Perl_do_trans_UU_complex -#undef do_trans_UU_count -#define do_trans_UU_count pPerl->Perl_do_trans_UU_count -#undef do_trans_UU_simple -#define do_trans_UU_simple pPerl->Perl_do_trans_UU_simple -#undef docatch -#define docatch pPerl->Perl_docatch -#undef docatch_body -#define docatch_body pPerl->Perl_docatch_body -#undef doencodes -#define doencodes pPerl->Perl_doencodes -#undef doeval -#define doeval pPerl->Perl_doeval -#undef dofindlabel -#define dofindlabel pPerl->Perl_dofindlabel -#undef doform -#define doform pPerl->Perl_doform -#undef doopen_pmc -#define doopen_pmc pPerl->Perl_doopen_pmc -#undef doparseform -#define doparseform pPerl->Perl_doparseform -#undef dopoptoeval -#define dopoptoeval pPerl->Perl_dopoptoeval -#undef dopoptolabel -#define dopoptolabel pPerl->Perl_dopoptolabel -#undef dopoptoloop -#define dopoptoloop pPerl->Perl_dopoptoloop -#undef dopoptosub -#define dopoptosub pPerl->Perl_dopoptosub -#undef dopoptosub_at -#define dopoptosub_at pPerl->Perl_dopoptosub_at -#undef dump -#define dump pPerl->Perl_dump -#undef dumpuntil -#define dumpuntil pPerl->Perl_dumpuntil -#undef emulate_eaccess -#define emulate_eaccess pPerl->Perl_emulate_eaccess -#undef filter_gets -#define filter_gets pPerl->Perl_filter_gets -#undef find_beginning -#define find_beginning pPerl->Perl_find_beginning -#undef forbid_setid -#define forbid_setid pPerl->Perl_forbid_setid -#undef force_ident -#define force_ident pPerl->Perl_force_ident -#undef force_next -#define force_next pPerl->Perl_force_next -#undef force_version -#define force_version pPerl->Perl_force_version -#undef force_word -#define force_word pPerl->Perl_force_word -#undef free_closures -#define free_closures pPerl->Perl_free_closures -#undef get_db_sub -#define get_db_sub pPerl->Perl_get_db_sub -#undef gv_ename -#define gv_ename pPerl->Perl_gv_ename -#undef gv_init_sv -#define gv_init_sv pPerl->Perl_gv_init_sv -#undef hfreeentries -#define hfreeentries pPerl->Perl_hfreeentries -#undef hsplit -#define hsplit pPerl->Perl_hsplit -#undef incl_perldb -#define incl_perldb pPerl->Perl_incl_perldb -#undef incline -#define incline pPerl->Perl_incline -#undef incpush -#define incpush pPerl->Perl_incpush -#undef init_debugger -#define init_debugger pPerl->Perl_init_debugger -#undef init_ids -#define init_ids pPerl->Perl_init_ids -#undef init_interp -#define init_interp pPerl->Perl_init_interp -#undef init_lexer -#define init_lexer pPerl->Perl_init_lexer -#undef init_main_stash -#define init_main_stash pPerl->Perl_init_main_stash -#undef init_perllib -#define init_perllib pPerl->Perl_init_perllib -#undef init_postdump_symbols -#define init_postdump_symbols pPerl->Perl_init_postdump_symbols -#undef init_predump_symbols -#define init_predump_symbols pPerl->Perl_init_predump_symbols -#undef intuit_method -#define intuit_method pPerl->Perl_intuit_method -#undef intuit_more -#define intuit_more pPerl->Perl_intuit_more -#undef is_an_int -#define is_an_int pPerl->Perl_is_an_int -#undef is_handle_constructor -#define is_handle_constructor pPerl->Perl_is_handle_constructor -#undef isa_lookup -#define isa_lookup pPerl->Perl_isa_lookup -#undef list_assignment -#define list_assignment pPerl->Perl_list_assignment -#undef lop -#define lop pPerl->Perl_lop -#undef magic_methcall -#define magic_methcall pPerl->Perl_magic_methcall -#undef magic_methcall -#define magic_methcall pPerl->Perl_magic_methcall -#undef magic_methpack -#define magic_methpack pPerl->Perl_magic_methpack -#undef main -#define main pPerl->Perl_main -#undef mess_alloc -#define mess_alloc pPerl->Perl_mess_alloc -#undef missingterm -#define missingterm pPerl->Perl_missingterm -#undef modkids -#define modkids pPerl->Perl_modkids -#undef more_he -#define more_he pPerl->Perl_more_he -#undef more_sv -#define more_sv pPerl->Perl_more_sv -#undef more_xiv -#define more_xiv pPerl->Perl_more_xiv -#undef more_xnv -#define more_xnv pPerl->Perl_more_xnv -#undef more_xpv -#define more_xpv pPerl->Perl_more_xpv -#undef more_xrv -#define more_xrv pPerl->Perl_more_xrv -#undef mul128 -#define mul128 pPerl->Perl_mul128 -#undef my_exit_jump -#define my_exit_jump pPerl->Perl_my_exit_jump -#undef my_safemalloc -#define my_safemalloc pPerl->Perl_my_safemalloc -#undef newDEFSVOP -#define newDEFSVOP pPerl->Perl_newDEFSVOP -#undef new_constant -#define new_constant pPerl->Perl_new_constant -#undef new_he -#define new_he pPerl->Perl_new_he -#undef new_logop -#define new_logop pPerl->Perl_new_logop -#undef new_xiv -#define new_xiv pPerl->Perl_new_xiv -#undef new_xnv -#define new_xnv pPerl->Perl_new_xnv -#undef new_xpv -#define new_xpv pPerl->Perl_new_xpv -#undef new_xrv -#define new_xrv pPerl->Perl_new_xrv -#undef nextchar -#define nextchar pPerl->Perl_nextchar -#undef no_bareword_allowed -#define no_bareword_allowed pPerl->Perl_no_bareword_allowed -#undef no_fh_allowed -#define no_fh_allowed pPerl->Perl_no_fh_allowed -#undef no_op -#define no_op pPerl->Perl_no_op -#undef not_a_number -#define not_a_number pPerl->Perl_not_a_number -#undef nuke_stacks -#define nuke_stacks pPerl->Perl_nuke_stacks -#undef null -#define null pPerl->Perl_null -#undef open_script -#define open_script pPerl->Perl_open_script -#undef pad_findlex -#define pad_findlex pPerl->Perl_pad_findlex -#undef perl_alloc -#define perl_alloc pPerl->perl_alloc -#undef perl_atexit -#define perl_atexit pPerl->perl_atexit -#undef perl_call_argv -#define perl_call_argv pPerl->perl_call_argv -#undef perl_call_body -#define perl_call_body pPerl->perl_call_body -#undef perl_call_method -#define perl_call_method pPerl->perl_call_method -#undef perl_call_pv -#define perl_call_pv pPerl->perl_call_pv -#undef perl_call_sv -#define perl_call_sv pPerl->perl_call_sv -#undef perl_call_xbody -#define perl_call_xbody pPerl->perl_call_xbody -#undef perl_construct -#define perl_construct pPerl->perl_construct -#undef perl_construct -#define perl_construct pPerl->perl_construct -#undef perl_destruct -#define perl_destruct pPerl->perl_destruct -#undef perl_destruct -#define perl_destruct pPerl->perl_destruct -#undef perl_eval_pv -#define perl_eval_pv pPerl->perl_eval_pv -#undef perl_eval_sv -#define perl_eval_sv pPerl->perl_eval_sv -#undef perl_free -#define perl_free pPerl->perl_free -#undef perl_free -#define perl_free pPerl->perl_free -#undef perl_get_av -#define perl_get_av pPerl->perl_get_av -#undef perl_get_cv -#define perl_get_cv pPerl->perl_get_cv -#undef perl_get_hv -#define perl_get_hv pPerl->perl_get_hv -#undef perl_get_sv -#define perl_get_sv pPerl->perl_get_sv -#undef perl_init_i18nl10n -#define perl_init_i18nl10n pPerl->perl_init_i18nl10n -#undef perl_init_i18nl14n -#define perl_init_i18nl14n pPerl->perl_init_i18nl14n -#undef perl_new_collate -#define perl_new_collate pPerl->perl_new_collate -#undef perl_new_ctype -#define perl_new_ctype pPerl->perl_new_ctype -#undef perl_new_numeric -#define perl_new_numeric pPerl->perl_new_numeric -#undef perl_parse -#define perl_parse pPerl->perl_parse -#undef perl_parse -#define perl_parse pPerl->perl_parse -#undef perl_parse_body -#define perl_parse_body pPerl->perl_parse_body -#undef perl_require_pv -#define perl_require_pv pPerl->perl_require_pv -#undef perl_run -#define perl_run pPerl->perl_run -#undef perl_run -#define perl_run pPerl->perl_run -#undef perl_run_body -#define perl_run_body pPerl->perl_run_body -#undef perl_set_numeric_local -#define perl_set_numeric_local pPerl->perl_set_numeric_local -#undef perl_set_numeric_standard -#define perl_set_numeric_standard pPerl->perl_set_numeric_standard -#undef qsortsv -#define qsortsv pPerl->Perl_qsortsv -#undef re_croak2 -#define re_croak2 pPerl->Perl_re_croak2 -#undef refto -#define refto pPerl->Perl_refto -#undef reg -#define reg pPerl->Perl_reg -#undef reg_node -#define reg_node pPerl->Perl_reg_node -#undef reganode -#define reganode pPerl->Perl_reganode -#undef regatom -#define regatom pPerl->Perl_regatom -#undef regbranch -#define regbranch pPerl->Perl_regbranch -#undef regc -#define regc pPerl->Perl_regc -#undef regclass -#define regclass pPerl->Perl_regclass -#undef regclassutf8 -#define regclassutf8 pPerl->Perl_regclassutf8 -#undef regcp_set_to -#define regcp_set_to pPerl->Perl_regcp_set_to -#undef regcppop -#define regcppop pPerl->Perl_regcppop -#undef regcppush -#define regcppush pPerl->Perl_regcppush -#undef regcurly -#define regcurly pPerl->Perl_regcurly -#undef reghop -#define reghop pPerl->Perl_reghop -#undef reghopmaybe -#define reghopmaybe pPerl->Perl_reghopmaybe -#undef reginclass -#define reginclass pPerl->Perl_reginclass -#undef reginclassutf8 -#define reginclassutf8 pPerl->Perl_reginclassutf8 -#undef reginsert -#define reginsert pPerl->Perl_reginsert -#undef regmatch -#define regmatch pPerl->Perl_regmatch -#undef regoptail -#define regoptail pPerl->Perl_regoptail -#undef regpiece -#define regpiece pPerl->Perl_regpiece -#undef regpposixcc -#define regpposixcc pPerl->Perl_regpposixcc -#undef regrepeat -#define regrepeat pPerl->Perl_regrepeat -#undef regrepeat_hard -#define regrepeat_hard pPerl->Perl_regrepeat_hard -#undef regset -#define regset pPerl->Perl_regset -#undef regtail -#define regtail pPerl->Perl_regtail -#undef regtry -#define regtry pPerl->Perl_regtry -#undef reguni -#define reguni pPerl->Perl_reguni -#undef regwhite -#define regwhite pPerl->Perl_regwhite -#undef restore_expect -#define restore_expect pPerl->Perl_restore_expect -#undef restore_lex_expect -#define restore_lex_expect pPerl->Perl_restore_lex_expect -#undef restore_magic -#define restore_magic pPerl->Perl_restore_magic -#undef restore_pos -#define restore_pos pPerl->Perl_restore_pos -#undef restore_rsfp -#define restore_rsfp pPerl->Perl_restore_rsfp -#undef save_hek -#define save_hek pPerl->Perl_save_hek -#undef save_lines -#define save_lines pPerl->Perl_save_lines -#undef save_magic -#define save_magic pPerl->Perl_save_magic -#undef save_scalar_at -#define save_scalar_at pPerl->Perl_save_scalar_at -#undef scalarboolean -#define scalarboolean pPerl->Perl_scalarboolean -#undef scan_commit -#define scan_commit pPerl->Perl_scan_commit -#undef scan_const -#define scan_const pPerl->Perl_scan_const -#undef scan_formline -#define scan_formline pPerl->Perl_scan_formline -#undef scan_heredoc -#define scan_heredoc pPerl->Perl_scan_heredoc -#undef scan_ident -#define scan_ident pPerl->Perl_scan_ident -#undef scan_inputsymbol -#define scan_inputsymbol pPerl->Perl_scan_inputsymbol -#undef scan_pat -#define scan_pat pPerl->Perl_scan_pat -#undef scan_str -#define scan_str pPerl->Perl_scan_str -#undef scan_subst -#define scan_subst pPerl->Perl_scan_subst -#undef scan_trans -#define scan_trans pPerl->Perl_scan_trans -#undef scan_word -#define scan_word pPerl->Perl_scan_word -#undef seed -#define seed pPerl->Perl_seed -#undef set_csh -#define set_csh pPerl->Perl_set_csh -#undef simplify_sort -#define simplify_sort pPerl->Perl_simplify_sort -#undef skipspace -#define skipspace pPerl->Perl_skipspace -#undef sortcv -#define sortcv pPerl->Perl_sortcv -#undef study_chunk -#define study_chunk pPerl->Perl_study_chunk -#undef sublex_done -#define sublex_done pPerl->Perl_sublex_done -#undef sublex_push -#define sublex_push pPerl->Perl_sublex_push -#undef sublex_start -#define sublex_start pPerl->Perl_sublex_start -#undef sv_add_backref -#define sv_add_backref pPerl->Perl_sv_add_backref -#undef sv_del_backref -#define sv_del_backref pPerl->Perl_sv_del_backref -#undef sv_i_ncmp -#define sv_i_ncmp pPerl->Perl_sv_i_ncmp -#undef sv_ncmp -#define sv_ncmp pPerl->Perl_sv_ncmp -#undef sv_unglob -#define sv_unglob pPerl->Perl_sv_unglob -#undef tokeq -#define tokeq pPerl->Perl_tokeq -#undef too_few_arguments -#define too_few_arguments pPerl->Perl_too_few_arguments -#undef too_many_arguments -#define too_many_arguments pPerl->Perl_too_many_arguments -#undef uni -#define uni pPerl->Perl_uni -#undef unwind_handler_stack -#define unwind_handler_stack pPerl->Perl_unwind_handler_stack -#undef usage -#define usage pPerl->Perl_usage -#undef validate_suid -#define validate_suid pPerl->Perl_validate_suid -#undef visit -#define visit pPerl->Perl_visit -#undef win32_textfilter -#define win32_textfilter pPerl->Perl_win32_textfilter +#undef amagic_call +#define amagic_call pPerl->amagic_call +#undef Gv_AMupdate +#define Gv_AMupdate pPerl->Gv_AMupdate +#undef append_elem +#define append_elem pPerl->append_elem +#undef append_list +#define append_list pPerl->append_list +#undef apply +#define apply pPerl->apply +#undef assertref +#define assertref pPerl->assertref +#undef avhv_exists_ent +#define avhv_exists_ent pPerl->avhv_exists_ent +#undef avhv_fetch_ent +#define avhv_fetch_ent pPerl->avhv_fetch_ent +#undef avhv_iternext +#define avhv_iternext pPerl->avhv_iternext +#undef avhv_iterval +#define avhv_iterval pPerl->avhv_iterval +#undef avhv_keys +#define avhv_keys pPerl->avhv_keys +#undef av_clear +#define av_clear pPerl->av_clear +#undef av_extend +#define av_extend pPerl->av_extend +#undef av_fake +#define av_fake pPerl->av_fake +#undef av_fetch +#define av_fetch pPerl->av_fetch +#undef av_fill +#define av_fill pPerl->av_fill +#undef av_len +#define av_len pPerl->av_len +#undef av_make +#define av_make pPerl->av_make +#undef av_pop +#define av_pop pPerl->av_pop +#undef av_push +#define av_push pPerl->av_push +#undef av_reify +#define av_reify pPerl->av_reify +#undef av_shift +#define av_shift pPerl->av_shift +#undef av_store +#define av_store pPerl->av_store +#undef av_undef +#define av_undef pPerl->av_undef +#undef av_unshift +#define av_unshift pPerl->av_unshift +#undef bind_match +#define bind_match pPerl->bind_match +#undef block_end +#define block_end pPerl->block_end +#undef block_gimme +#define block_gimme pPerl->block_gimme +#undef block_start +#define block_start pPerl->block_start +#undef boot_core_UNIVERSAL +#define boot_core_UNIVERSAL pPerl->boot_core_UNIVERSAL +#undef call_list +#define call_list pPerl->call_list +#undef cando +#define cando pPerl->cando +#undef cast_ulong +#define cast_ulong pPerl->cast_ulong +#undef cast_i32 +#define cast_i32 pPerl->cast_i32 +#undef cast_iv +#define cast_iv pPerl->cast_iv +#undef cast_uv +#define cast_uv pPerl->cast_uv +#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) +#undef my_chsize +#define my_chsize pPerl->my_chsize +#endif +#if defined(USE_THREADS) +#undef condpair_magic +#define condpair_magic pPerl->condpair_magic +#endif +#undef convert +#define convert pPerl->convert +#undef croak +#define croak pPerl->croak +#if defined(PERL_IMPLICIT_CONTEXT) +#undef croak_nocontext +#define croak_nocontext pPerl->croak_nocontext +#undef die_nocontext +#define die_nocontext pPerl->die_nocontext +#undef form_nocontext +#define form_nocontext pPerl->form_nocontext +#undef warn_nocontext +#define warn_nocontext pPerl->warn_nocontext +#undef newSVpvf_nocontext +#define newSVpvf_nocontext pPerl->newSVpvf_nocontext +#undef sv_catpvf_nocontext +#define sv_catpvf_nocontext pPerl->sv_catpvf_nocontext +#undef sv_setpvf_nocontext +#define sv_setpvf_nocontext pPerl->sv_setpvf_nocontext +#undef sv_catpvf_mg_nocontext +#define sv_catpvf_mg_nocontext pPerl->sv_catpvf_mg_nocontext +#undef sv_setpvf_mg_nocontext +#define sv_setpvf_mg_nocontext pPerl->sv_setpvf_mg_nocontext +#endif +#undef cv_ckproto +#define cv_ckproto pPerl->cv_ckproto +#undef cv_clone +#define cv_clone pPerl->cv_clone +#undef cv_const_sv +#define cv_const_sv pPerl->cv_const_sv +#undef op_const_sv +#define op_const_sv pPerl->op_const_sv +#undef cv_undef +#define cv_undef pPerl->cv_undef +#undef cx_dump +#define cx_dump pPerl->cx_dump +#undef filter_add +#define filter_add pPerl->filter_add +#undef filter_del +#define filter_del pPerl->filter_del +#undef filter_read +#define filter_read pPerl->filter_read +#undef get_op_descs +#define get_op_descs pPerl->get_op_descs +#undef get_op_names +#define get_op_names pPerl->get_op_names +#undef get_no_modify +#define get_no_modify pPerl->get_no_modify +#undef get_opargs +#define get_opargs pPerl->get_opargs +#undef cxinc +#define cxinc pPerl->cxinc +#undef deb +#define deb pPerl->deb +#undef deb_growlevel +#define deb_growlevel pPerl->deb_growlevel +#undef debprofdump +#define debprofdump pPerl->debprofdump +#undef debop +#define debop pPerl->debop +#undef debstack +#define debstack pPerl->debstack +#undef debstackptrs +#define debstackptrs pPerl->debstackptrs +#undef delimcpy +#define delimcpy pPerl->delimcpy +#undef deprecate +#define deprecate pPerl->deprecate +#undef die +#define die pPerl->die +#undef die_where +#define die_where pPerl->die_where +#undef dounwind +#define dounwind pPerl->dounwind +#undef do_aexec +#define do_aexec pPerl->do_aexec +#undef do_binmode +#define do_binmode pPerl->do_binmode +#undef do_chop +#define do_chop pPerl->do_chop +#undef do_close +#define do_close pPerl->do_close +#undef do_eof +#define do_eof pPerl->do_eof +#undef do_exec +#define do_exec pPerl->do_exec +#if !defined(WIN32) +#undef do_exec3 +#define do_exec3 pPerl->do_exec3 +#endif +#undef do_execfree +#define do_execfree pPerl->do_execfree +#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) +#undef do_ipcctl +#define do_ipcctl pPerl->do_ipcctl +#undef do_ipcget +#define do_ipcget pPerl->do_ipcget +#undef do_msgrcv +#define do_msgrcv pPerl->do_msgrcv +#undef do_msgsnd +#define do_msgsnd pPerl->do_msgsnd +#undef do_semop +#define do_semop pPerl->do_semop +#undef do_shmio +#define do_shmio pPerl->do_shmio +#endif +#undef do_join +#define do_join pPerl->do_join +#undef do_kv +#define do_kv pPerl->do_kv +#undef do_open +#define do_open pPerl->do_open +#undef do_pipe +#define do_pipe pPerl->do_pipe +#undef do_print +#define do_print pPerl->do_print +#undef do_readline +#define do_readline pPerl->do_readline +#undef do_chomp +#define do_chomp pPerl->do_chomp +#undef do_seek +#define do_seek pPerl->do_seek +#undef do_sprintf +#define do_sprintf pPerl->do_sprintf +#undef do_sysseek +#define do_sysseek pPerl->do_sysseek +#undef do_tell +#define do_tell pPerl->do_tell +#undef do_trans +#define do_trans pPerl->do_trans +#undef do_vecset +#define do_vecset pPerl->do_vecset +#undef do_vop +#define do_vop pPerl->do_vop +#undef dofile +#define dofile pPerl->dofile +#undef dowantarray +#define dowantarray pPerl->dowantarray +#undef dump_all +#define dump_all pPerl->dump_all +#undef dump_eval +#define dump_eval pPerl->dump_eval +#if defined(DUMP_FDS) +#undef dump_fds +#define dump_fds pPerl->dump_fds +#endif +#undef dump_form +#define dump_form pPerl->dump_form +#undef gv_dump +#define gv_dump pPerl->gv_dump +#undef op_dump +#define op_dump pPerl->op_dump +#undef pmop_dump +#define pmop_dump pPerl->pmop_dump +#undef dump_packsubs +#define dump_packsubs pPerl->dump_packsubs +#undef dump_sub +#define dump_sub pPerl->dump_sub +#undef fbm_compile +#define fbm_compile pPerl->fbm_compile +#undef fbm_instr +#define fbm_instr pPerl->fbm_instr +#undef find_script +#define find_script pPerl->find_script +#if defined(USE_THREADS) +#undef find_threadsv +#define find_threadsv pPerl->find_threadsv +#endif +#undef force_list +#define force_list pPerl->force_list +#undef fold_constants +#define fold_constants pPerl->fold_constants +#undef form +#define form pPerl->form +#undef free_tmps +#define free_tmps pPerl->free_tmps +#undef gen_constant_list +#define gen_constant_list pPerl->gen_constant_list +#if !defined(HAS_GETENV_LEN) +#undef getenv_len +#define getenv_len pPerl->getenv_len +#endif +#undef gp_free +#define gp_free pPerl->gp_free +#undef gp_ref +#define gp_ref pPerl->gp_ref +#undef gv_AVadd +#define gv_AVadd pPerl->gv_AVadd +#undef gv_HVadd +#define gv_HVadd pPerl->gv_HVadd +#undef gv_IOadd +#define gv_IOadd pPerl->gv_IOadd +#undef gv_autoload4 +#define gv_autoload4 pPerl->gv_autoload4 +#undef gv_check +#define gv_check pPerl->gv_check +#undef gv_efullname +#define gv_efullname pPerl->gv_efullname +#undef gv_efullname3 +#define gv_efullname3 pPerl->gv_efullname3 +#undef gv_fetchfile +#define gv_fetchfile pPerl->gv_fetchfile +#undef gv_fetchmeth +#define gv_fetchmeth pPerl->gv_fetchmeth +#undef gv_fetchmethod +#define gv_fetchmethod pPerl->gv_fetchmethod +#undef gv_fetchmethod_autoload +#define gv_fetchmethod_autoload pPerl->gv_fetchmethod_autoload +#undef gv_fetchpv +#define gv_fetchpv pPerl->gv_fetchpv +#undef gv_fullname +#define gv_fullname pPerl->gv_fullname +#undef gv_fullname3 +#define gv_fullname3 pPerl->gv_fullname3 +#undef gv_init +#define gv_init pPerl->gv_init +#undef gv_stashpv +#define gv_stashpv pPerl->gv_stashpv +#undef gv_stashpvn +#define gv_stashpvn pPerl->gv_stashpvn +#undef gv_stashsv +#define gv_stashsv pPerl->gv_stashsv +#undef hv_clear +#define hv_clear pPerl->hv_clear +#undef hv_delayfree_ent +#define hv_delayfree_ent pPerl->hv_delayfree_ent +#undef hv_delete +#define hv_delete pPerl->hv_delete +#undef hv_delete_ent +#define hv_delete_ent pPerl->hv_delete_ent +#undef hv_exists +#define hv_exists pPerl->hv_exists +#undef hv_exists_ent +#define hv_exists_ent pPerl->hv_exists_ent +#undef hv_fetch +#define hv_fetch pPerl->hv_fetch +#undef hv_fetch_ent +#define hv_fetch_ent pPerl->hv_fetch_ent +#undef hv_free_ent +#define hv_free_ent pPerl->hv_free_ent +#undef hv_iterinit +#define hv_iterinit pPerl->hv_iterinit +#undef hv_iterkey +#define hv_iterkey pPerl->hv_iterkey +#undef hv_iterkeysv +#define hv_iterkeysv pPerl->hv_iterkeysv +#undef hv_iternext +#define hv_iternext pPerl->hv_iternext +#undef hv_iternextsv +#define hv_iternextsv pPerl->hv_iternextsv +#undef hv_iterval +#define hv_iterval pPerl->hv_iterval +#undef hv_ksplit +#define hv_ksplit pPerl->hv_ksplit +#undef hv_magic +#define hv_magic pPerl->hv_magic +#undef hv_store +#define hv_store pPerl->hv_store +#undef hv_store_ent +#define hv_store_ent pPerl->hv_store_ent +#undef hv_undef +#define hv_undef pPerl->hv_undef +#undef ibcmp +#define ibcmp pPerl->ibcmp +#undef ibcmp_locale +#define ibcmp_locale pPerl->ibcmp_locale +#undef ingroup +#define ingroup pPerl->ingroup +#undef init_stacks +#define init_stacks pPerl->init_stacks +#undef intro_my +#define intro_my pPerl->intro_my +#undef instr +#define instr pPerl->instr +#undef io_close +#define io_close pPerl->io_close +#undef invert +#define invert pPerl->invert +#undef is_uni_alnum +#define is_uni_alnum pPerl->is_uni_alnum +#undef is_uni_idfirst +#define is_uni_idfirst pPerl->is_uni_idfirst +#undef is_uni_alpha +#define is_uni_alpha pPerl->is_uni_alpha +#undef is_uni_space +#define is_uni_space pPerl->is_uni_space +#undef is_uni_digit +#define is_uni_digit pPerl->is_uni_digit +#undef is_uni_upper +#define is_uni_upper pPerl->is_uni_upper +#undef is_uni_lower +#define is_uni_lower pPerl->is_uni_lower +#undef is_uni_print +#define is_uni_print pPerl->is_uni_print +#undef to_uni_upper +#define to_uni_upper pPerl->to_uni_upper +#undef to_uni_title +#define to_uni_title pPerl->to_uni_title +#undef to_uni_lower +#define to_uni_lower pPerl->to_uni_lower +#undef is_uni_alnum_lc +#define is_uni_alnum_lc pPerl->is_uni_alnum_lc +#undef is_uni_idfirst_lc +#define is_uni_idfirst_lc pPerl->is_uni_idfirst_lc +#undef is_uni_alpha_lc +#define is_uni_alpha_lc pPerl->is_uni_alpha_lc +#undef is_uni_space_lc +#define is_uni_space_lc pPerl->is_uni_space_lc +#undef is_uni_digit_lc +#define is_uni_digit_lc pPerl->is_uni_digit_lc +#undef is_uni_upper_lc +#define is_uni_upper_lc pPerl->is_uni_upper_lc +#undef is_uni_lower_lc +#define is_uni_lower_lc pPerl->is_uni_lower_lc +#undef is_uni_print_lc +#define is_uni_print_lc pPerl->is_uni_print_lc +#undef to_uni_upper_lc +#define to_uni_upper_lc pPerl->to_uni_upper_lc +#undef to_uni_title_lc +#define to_uni_title_lc pPerl->to_uni_title_lc +#undef to_uni_lower_lc +#define to_uni_lower_lc pPerl->to_uni_lower_lc +#undef is_utf8_alnum +#define is_utf8_alnum pPerl->is_utf8_alnum +#undef is_utf8_idfirst +#define is_utf8_idfirst pPerl->is_utf8_idfirst +#undef is_utf8_alpha +#define is_utf8_alpha pPerl->is_utf8_alpha +#undef is_utf8_space +#define is_utf8_space pPerl->is_utf8_space +#undef is_utf8_digit +#define is_utf8_digit pPerl->is_utf8_digit +#undef is_utf8_upper +#define is_utf8_upper pPerl->is_utf8_upper +#undef is_utf8_lower +#define is_utf8_lower pPerl->is_utf8_lower +#undef is_utf8_print +#define is_utf8_print pPerl->is_utf8_print +#undef is_utf8_mark +#define is_utf8_mark pPerl->is_utf8_mark +#undef jmaybe +#define jmaybe pPerl->jmaybe +#undef keyword +#define keyword pPerl->keyword +#undef leave_scope +#define leave_scope pPerl->leave_scope +#undef lex_end +#define lex_end pPerl->lex_end +#undef lex_start +#define lex_start pPerl->lex_start +#undef linklist +#define linklist pPerl->linklist +#undef list +#define list pPerl->list +#undef listkids +#define listkids pPerl->listkids +#undef localize +#define localize pPerl->localize +#undef looks_like_number +#define looks_like_number pPerl->looks_like_number +#undef magic_clearenv +#define magic_clearenv pPerl->magic_clearenv +#undef magic_clear_all_env +#define magic_clear_all_env pPerl->magic_clear_all_env +#undef magic_clearpack +#define magic_clearpack pPerl->magic_clearpack +#undef magic_clearsig +#define magic_clearsig pPerl->magic_clearsig +#undef magic_existspack +#define magic_existspack pPerl->magic_existspack +#undef magic_freeregexp +#define magic_freeregexp pPerl->magic_freeregexp +#undef magic_get +#define magic_get pPerl->magic_get +#undef magic_getarylen +#define magic_getarylen pPerl->magic_getarylen +#undef magic_getdefelem +#define magic_getdefelem pPerl->magic_getdefelem +#undef magic_getglob +#define magic_getglob pPerl->magic_getglob +#undef magic_getnkeys +#define magic_getnkeys pPerl->magic_getnkeys +#undef magic_getpack +#define magic_getpack pPerl->magic_getpack +#undef magic_getpos +#define magic_getpos pPerl->magic_getpos +#undef magic_getsig +#define magic_getsig pPerl->magic_getsig +#undef magic_getsubstr +#define magic_getsubstr pPerl->magic_getsubstr +#undef magic_gettaint +#define magic_gettaint pPerl->magic_gettaint +#undef magic_getuvar +#define magic_getuvar pPerl->magic_getuvar +#undef magic_getvec +#define magic_getvec pPerl->magic_getvec +#undef magic_len +#define magic_len pPerl->magic_len +#if defined(USE_THREADS) +#undef magic_mutexfree +#define magic_mutexfree pPerl->magic_mutexfree +#endif +#undef magic_nextpack +#define magic_nextpack pPerl->magic_nextpack +#undef magic_regdata_cnt +#define magic_regdata_cnt pPerl->magic_regdata_cnt +#undef magic_regdatum_get +#define magic_regdatum_get pPerl->magic_regdatum_get +#undef magic_set +#define magic_set pPerl->magic_set +#undef magic_setamagic +#define magic_setamagic pPerl->magic_setamagic +#undef magic_setarylen +#define magic_setarylen pPerl->magic_setarylen +#undef magic_setbm +#define magic_setbm pPerl->magic_setbm +#undef magic_setdbline +#define magic_setdbline pPerl->magic_setdbline +#if defined(USE_LOCALE_COLLATE) +#undef magic_setcollxfrm +#define magic_setcollxfrm pPerl->magic_setcollxfrm +#endif +#undef magic_setdefelem +#define magic_setdefelem pPerl->magic_setdefelem +#undef magic_setenv +#define magic_setenv pPerl->magic_setenv +#undef magic_setfm +#define magic_setfm pPerl->magic_setfm +#undef magic_setisa +#define magic_setisa pPerl->magic_setisa +#undef magic_setglob +#define magic_setglob pPerl->magic_setglob +#undef magic_setmglob +#define magic_setmglob pPerl->magic_setmglob +#undef magic_setnkeys +#define magic_setnkeys pPerl->magic_setnkeys +#undef magic_setpack +#define magic_setpack pPerl->magic_setpack +#undef magic_setpos +#define magic_setpos pPerl->magic_setpos +#undef magic_setsig +#define magic_setsig pPerl->magic_setsig +#undef magic_setsubstr +#define magic_setsubstr pPerl->magic_setsubstr +#undef magic_settaint +#define magic_settaint pPerl->magic_settaint +#undef magic_setuvar +#define magic_setuvar pPerl->magic_setuvar +#undef magic_setvec +#define magic_setvec pPerl->magic_setvec +#undef magic_set_all_env +#define magic_set_all_env pPerl->magic_set_all_env +#undef magic_sizepack +#define magic_sizepack pPerl->magic_sizepack +#undef magic_wipepack +#define magic_wipepack pPerl->magic_wipepack +#undef magicname +#define magicname pPerl->magicname +#if defined(MYMALLOC) +#undef malloced_size +#define malloced_size pPerl->malloced_size +#endif +#undef markstack_grow +#define markstack_grow pPerl->markstack_grow +#if defined(USE_LOCALE_COLLATE) +#undef mem_collxfrm +#define mem_collxfrm pPerl->mem_collxfrm +#endif +#undef mess +#define mess pPerl->mess +#undef mg_clear +#define mg_clear pPerl->mg_clear +#undef mg_copy +#define mg_copy pPerl->mg_copy +#undef mg_find +#define mg_find pPerl->mg_find +#undef mg_free +#define mg_free pPerl->mg_free +#undef mg_get +#define mg_get pPerl->mg_get +#undef mg_length +#define mg_length pPerl->mg_length +#undef mg_magical +#define mg_magical pPerl->mg_magical +#undef mg_set +#define mg_set pPerl->mg_set +#undef mg_size +#define mg_size pPerl->mg_size +#undef mod +#define mod pPerl->mod +#undef moreswitches +#define moreswitches pPerl->moreswitches +#undef my +#define my pPerl->my +#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY) +#undef my_bcopy +#define my_bcopy pPerl->my_bcopy +#endif +#if !defined(HAS_BZERO) && !defined(HAS_MEMSET) +#undef my_bzero +#define my_bzero pPerl->my_bzero +#endif +#undef my_exit +#define my_exit pPerl->my_exit +#undef my_failure_exit +#define my_failure_exit pPerl->my_failure_exit +#undef my_fflush_all +#define my_fflush_all pPerl->my_fflush_all +#undef my_lstat +#define my_lstat pPerl->my_lstat +#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP) +#undef my_memcmp +#define my_memcmp pPerl->my_memcmp +#endif +#if !defined(HAS_MEMSET) +#undef my_memset +#define my_memset pPerl->my_memset +#endif +#if !defined(PERL_OBJECT) +#undef my_pclose +#define my_pclose pPerl->my_pclose +#undef my_popen +#define my_popen pPerl->my_popen +#endif +#undef my_setenv +#define my_setenv pPerl->my_setenv +#undef my_stat +#define my_stat pPerl->my_stat +#if defined(MYSWAP) +#undef my_swap +#define my_swap pPerl->my_swap +#undef my_htonl +#define my_htonl pPerl->my_htonl +#undef my_ntohl +#define my_ntohl pPerl->my_ntohl +#endif +#undef my_unexec +#define my_unexec pPerl->my_unexec +#undef newANONLIST +#define newANONLIST pPerl->newANONLIST +#undef newANONHASH +#define newANONHASH pPerl->newANONHASH +#undef newANONSUB +#define newANONSUB pPerl->newANONSUB +#undef newASSIGNOP +#define newASSIGNOP pPerl->newASSIGNOP +#undef newCONDOP +#define newCONDOP pPerl->newCONDOP +#undef newCONSTSUB +#define newCONSTSUB pPerl->newCONSTSUB +#undef newFORM +#define newFORM pPerl->newFORM +#undef newFOROP +#define newFOROP pPerl->newFOROP +#undef newLOGOP +#define newLOGOP pPerl->newLOGOP +#undef newLOOPEX +#define newLOOPEX pPerl->newLOOPEX +#undef newLOOPOP +#define newLOOPOP pPerl->newLOOPOP +#undef newNULLLIST +#define newNULLLIST pPerl->newNULLLIST +#undef newOP +#define newOP pPerl->newOP +#undef newPROG +#define newPROG pPerl->newPROG +#undef newRANGE +#define newRANGE pPerl->newRANGE +#undef newSLICEOP +#define newSLICEOP pPerl->newSLICEOP +#undef newSTATEOP +#define newSTATEOP pPerl->newSTATEOP +#undef newSUB +#define newSUB pPerl->newSUB +#undef newXS +#define newXS pPerl->newXS +#undef newAV +#define newAV pPerl->newAV +#undef newAVREF +#define newAVREF pPerl->newAVREF +#undef newBINOP +#define newBINOP pPerl->newBINOP +#undef newCVREF +#define newCVREF pPerl->newCVREF +#undef newGVOP +#define newGVOP pPerl->newGVOP +#undef newGVgen +#define newGVgen pPerl->newGVgen +#undef newGVREF +#define newGVREF pPerl->newGVREF +#undef newHVREF +#define newHVREF pPerl->newHVREF +#undef newHV +#define newHV pPerl->newHV +#undef newHVhv +#define newHVhv pPerl->newHVhv +#undef newIO +#define newIO pPerl->newIO +#undef newLISTOP +#define newLISTOP pPerl->newLISTOP +#undef newPMOP +#define newPMOP pPerl->newPMOP +#undef newPVOP +#define newPVOP pPerl->newPVOP +#undef newRV +#define newRV pPerl->newRV +#undef newRV_noinc +#define newRV_noinc pPerl->newRV_noinc +#undef newSV +#define newSV pPerl->newSV +#undef newSVREF +#define newSVREF pPerl->newSVREF +#undef newSVOP +#define newSVOP pPerl->newSVOP +#undef newSViv +#define newSViv pPerl->newSViv +#undef newSVnv +#define newSVnv pPerl->newSVnv +#undef newSVpv +#define newSVpv pPerl->newSVpv +#undef newSVpvn +#define newSVpvn pPerl->newSVpvn +#undef newSVpvf +#define newSVpvf pPerl->newSVpvf +#undef newSVrv +#define newSVrv pPerl->newSVrv +#undef newSVsv +#define newSVsv pPerl->newSVsv +#undef newUNOP +#define newUNOP pPerl->newUNOP +#undef newWHILEOP +#define newWHILEOP pPerl->newWHILEOP +#if defined(USE_THREADS) +#undef new_struct_thread +#define new_struct_thread pPerl->new_struct_thread +#endif +#undef new_stackinfo +#define new_stackinfo pPerl->new_stackinfo +#undef nextargv +#define nextargv pPerl->nextargv +#undef ninstr +#define ninstr pPerl->ninstr +#undef oopsCV +#define oopsCV pPerl->oopsCV +#undef op_free +#define op_free pPerl->op_free +#undef package +#define package pPerl->package +#undef pad_alloc +#define pad_alloc pPerl->pad_alloc +#undef pad_allocmy +#define pad_allocmy pPerl->pad_allocmy +#undef pad_findmy +#define pad_findmy pPerl->pad_findmy +#undef oopsAV +#define oopsAV pPerl->oopsAV +#undef oopsHV +#define oopsHV pPerl->oopsHV +#undef pad_leavemy +#define pad_leavemy pPerl->pad_leavemy +#undef pad_sv +#define pad_sv pPerl->pad_sv +#undef pad_free +#define pad_free pPerl->pad_free +#undef pad_reset +#define pad_reset pPerl->pad_reset +#undef pad_swipe +#define pad_swipe pPerl->pad_swipe +#undef peep +#define peep pPerl->peep +#undef call_atexit +#define call_atexit pPerl->call_atexit +#undef call_argv +#define call_argv pPerl->call_argv +#undef call_method +#define call_method pPerl->call_method +#undef call_pv +#define call_pv pPerl->call_pv +#undef call_sv +#define call_sv pPerl->call_sv +#undef eval_pv +#define eval_pv pPerl->eval_pv +#undef eval_sv +#define eval_sv pPerl->eval_sv +#undef get_sv +#define get_sv pPerl->get_sv +#undef get_av +#define get_av pPerl->get_av +#undef get_hv +#define get_hv pPerl->get_hv +#undef get_cv +#define get_cv pPerl->get_cv +#undef init_i18nl10n +#define init_i18nl10n pPerl->init_i18nl10n +#undef init_i18nl14n +#define init_i18nl14n pPerl->init_i18nl14n +#undef new_collate +#define new_collate pPerl->new_collate +#undef new_ctype +#define new_ctype pPerl->new_ctype +#undef new_numeric +#define new_numeric pPerl->new_numeric +#undef set_numeric_local +#define set_numeric_local pPerl->set_numeric_local +#undef set_numeric_standard +#define set_numeric_standard pPerl->set_numeric_standard +#undef require_pv +#define require_pv pPerl->require_pv +#undef pidgone +#define pidgone pPerl->pidgone +#undef pmflag +#define pmflag pPerl->pmflag +#undef pmruntime +#define pmruntime pPerl->pmruntime +#undef pmtrans +#define pmtrans pPerl->pmtrans +#undef pop_return +#define pop_return pPerl->pop_return +#undef pop_scope +#define pop_scope pPerl->pop_scope +#undef prepend_elem +#define prepend_elem pPerl->prepend_elem +#undef push_return +#define push_return pPerl->push_return +#undef push_scope +#define push_scope pPerl->push_scope +#undef ref +#define ref pPerl->ref +#undef refkids +#define refkids pPerl->refkids +#undef regdump +#define regdump pPerl->regdump +#undef pregexec +#define pregexec pPerl->pregexec +#undef pregfree +#define pregfree pPerl->pregfree +#undef pregcomp +#define pregcomp pPerl->pregcomp +#undef regexec_flags +#define regexec_flags pPerl->regexec_flags +#undef regnext +#define regnext pPerl->regnext +#undef regprop +#define regprop pPerl->regprop +#undef repeatcpy +#define repeatcpy pPerl->repeatcpy +#undef rninstr +#define rninstr pPerl->rninstr +#undef rsignal +#define rsignal pPerl->rsignal +#undef rsignal_restore +#define rsignal_restore pPerl->rsignal_restore +#undef rsignal_save +#define rsignal_save pPerl->rsignal_save +#undef rsignal_state +#define rsignal_state pPerl->rsignal_state +#undef rxres_free +#define rxres_free pPerl->rxres_free +#undef rxres_restore +#define rxres_restore pPerl->rxres_restore +#undef rxres_save +#define rxres_save pPerl->rxres_save +#if !defined(HAS_RENAME) +#undef same_dirent +#define same_dirent pPerl->same_dirent +#endif +#undef savepv +#define savepv pPerl->savepv +#undef savepvn +#define savepvn pPerl->savepvn +#undef savestack_grow +#define savestack_grow pPerl->savestack_grow +#undef save_aelem +#define save_aelem pPerl->save_aelem +#undef save_alloc +#define save_alloc pPerl->save_alloc +#undef save_aptr +#define save_aptr pPerl->save_aptr +#undef save_ary +#define save_ary pPerl->save_ary +#undef save_clearsv +#define save_clearsv pPerl->save_clearsv +#undef save_delete +#define save_delete pPerl->save_delete +#undef save_destructor +#define save_destructor pPerl->save_destructor +#undef save_freesv +#define save_freesv pPerl->save_freesv +#undef save_freeop +#define save_freeop pPerl->save_freeop +#undef save_freepv +#define save_freepv pPerl->save_freepv +#undef save_generic_svref +#define save_generic_svref pPerl->save_generic_svref +#undef save_gp +#define save_gp pPerl->save_gp +#undef save_hash +#define save_hash pPerl->save_hash +#undef save_helem +#define save_helem pPerl->save_helem +#undef save_hints +#define save_hints pPerl->save_hints +#undef save_hptr +#define save_hptr pPerl->save_hptr +#undef save_I16 +#define save_I16 pPerl->save_I16 +#undef save_I32 +#define save_I32 pPerl->save_I32 +#undef save_int +#define save_int pPerl->save_int +#undef save_item +#define save_item pPerl->save_item +#undef save_iv +#define save_iv pPerl->save_iv +#undef save_list +#define save_list pPerl->save_list +#undef save_long +#define save_long pPerl->save_long +#undef save_nogv +#define save_nogv pPerl->save_nogv +#undef save_op +#define save_op pPerl->save_op +#undef save_scalar +#define save_scalar pPerl->save_scalar +#undef save_pptr +#define save_pptr pPerl->save_pptr +#undef save_re_context +#define save_re_context pPerl->save_re_context +#undef save_sptr +#define save_sptr pPerl->save_sptr +#undef save_svref +#define save_svref pPerl->save_svref +#undef save_threadsv +#define save_threadsv pPerl->save_threadsv +#undef sawparens +#define sawparens pPerl->sawparens +#undef scalar +#define scalar pPerl->scalar +#undef scalarkids +#define scalarkids pPerl->scalarkids +#undef scalarseq +#define scalarseq pPerl->scalarseq +#undef scalarvoid +#define scalarvoid pPerl->scalarvoid +#undef scan_bin +#define scan_bin pPerl->scan_bin +#undef scan_hex +#define scan_hex pPerl->scan_hex +#undef scan_num +#define scan_num pPerl->scan_num +#undef scan_oct +#define scan_oct pPerl->scan_oct +#undef scope +#define scope pPerl->scope +#undef screaminstr +#define screaminstr pPerl->screaminstr +#if !defined(VMS) +#undef setenv_getix +#define setenv_getix pPerl->setenv_getix +#endif +#undef setdefout +#define setdefout pPerl->setdefout +#undef sharepvn +#define sharepvn pPerl->sharepvn +#undef share_hek +#define share_hek pPerl->share_hek +#undef sighandler +#define sighandler pPerl->sighandler +#undef stack_grow +#define stack_grow pPerl->stack_grow +#undef start_subparse +#define start_subparse pPerl->start_subparse +#undef sub_crush_depth +#define sub_crush_depth pPerl->sub_crush_depth +#undef sv_2bool +#define sv_2bool pPerl->sv_2bool +#undef sv_2cv +#define sv_2cv pPerl->sv_2cv +#undef sv_2io +#define sv_2io pPerl->sv_2io +#undef sv_2iv +#define sv_2iv pPerl->sv_2iv +#undef sv_2mortal +#define sv_2mortal pPerl->sv_2mortal +#undef sv_2nv +#define sv_2nv pPerl->sv_2nv +#undef sv_2pv +#define sv_2pv pPerl->sv_2pv +#undef sv_2uv +#define sv_2uv pPerl->sv_2uv +#undef sv_iv +#define sv_iv pPerl->sv_iv +#undef sv_uv +#define sv_uv pPerl->sv_uv +#undef sv_nv +#define sv_nv pPerl->sv_nv +#undef sv_pvn +#define sv_pvn pPerl->sv_pvn +#undef sv_true +#define sv_true pPerl->sv_true +#undef sv_add_arena +#define sv_add_arena pPerl->sv_add_arena +#undef sv_backoff +#define sv_backoff pPerl->sv_backoff +#undef sv_bless +#define sv_bless pPerl->sv_bless +#undef sv_catpvf +#define sv_catpvf pPerl->sv_catpvf +#undef sv_catpv +#define sv_catpv pPerl->sv_catpv +#undef sv_catpvn +#define sv_catpvn pPerl->sv_catpvn +#undef sv_catsv +#define sv_catsv pPerl->sv_catsv +#undef sv_chop +#define sv_chop pPerl->sv_chop +#undef sv_clean_all +#define sv_clean_all pPerl->sv_clean_all +#undef sv_clean_objs +#define sv_clean_objs pPerl->sv_clean_objs +#undef sv_clear +#define sv_clear pPerl->sv_clear +#undef sv_cmp +#define sv_cmp pPerl->sv_cmp +#undef sv_cmp_locale +#define sv_cmp_locale pPerl->sv_cmp_locale +#if defined(USE_LOCALE_COLLATE) +#undef sv_collxfrm +#define sv_collxfrm pPerl->sv_collxfrm +#endif +#undef sv_compile_2op +#define sv_compile_2op pPerl->sv_compile_2op +#undef sv_dec +#define sv_dec pPerl->sv_dec +#undef sv_dump +#define sv_dump pPerl->sv_dump +#undef sv_derived_from +#define sv_derived_from pPerl->sv_derived_from +#undef sv_eq +#define sv_eq pPerl->sv_eq +#undef sv_free +#define sv_free pPerl->sv_free +#undef sv_free_arenas +#define sv_free_arenas pPerl->sv_free_arenas +#undef sv_gets +#define sv_gets pPerl->sv_gets +#undef sv_grow +#define sv_grow pPerl->sv_grow +#undef sv_inc +#define sv_inc pPerl->sv_inc +#undef sv_insert +#define sv_insert pPerl->sv_insert +#undef sv_isa +#define sv_isa pPerl->sv_isa +#undef sv_isobject +#define sv_isobject pPerl->sv_isobject +#undef sv_len +#define sv_len pPerl->sv_len +#undef sv_len_utf8 +#define sv_len_utf8 pPerl->sv_len_utf8 +#undef sv_magic +#define sv_magic pPerl->sv_magic +#undef sv_mortalcopy +#define sv_mortalcopy pPerl->sv_mortalcopy +#undef sv_newmortal +#define sv_newmortal pPerl->sv_newmortal +#undef sv_newref +#define sv_newref pPerl->sv_newref +#undef sv_peek +#define sv_peek pPerl->sv_peek +#undef sv_pos_u2b +#define sv_pos_u2b pPerl->sv_pos_u2b +#undef sv_pos_b2u +#define sv_pos_b2u pPerl->sv_pos_b2u +#undef sv_pvn_force +#define sv_pvn_force pPerl->sv_pvn_force +#undef sv_reftype +#define sv_reftype pPerl->sv_reftype +#undef sv_replace +#define sv_replace pPerl->sv_replace +#undef sv_report_used +#define sv_report_used pPerl->sv_report_used +#undef sv_reset +#define sv_reset pPerl->sv_reset +#undef sv_setpvf +#define sv_setpvf pPerl->sv_setpvf +#undef sv_setiv +#define sv_setiv pPerl->sv_setiv +#undef sv_setpviv +#define sv_setpviv pPerl->sv_setpviv +#undef sv_setuv +#define sv_setuv pPerl->sv_setuv +#undef sv_setnv +#define sv_setnv pPerl->sv_setnv +#undef sv_setref_iv +#define sv_setref_iv pPerl->sv_setref_iv +#undef sv_setref_nv +#define sv_setref_nv pPerl->sv_setref_nv +#undef sv_setref_pv +#define sv_setref_pv pPerl->sv_setref_pv +#undef sv_setref_pvn +#define sv_setref_pvn pPerl->sv_setref_pvn +#undef sv_setpv +#define sv_setpv pPerl->sv_setpv +#undef sv_setpvn +#define sv_setpvn pPerl->sv_setpvn +#undef sv_setsv +#define sv_setsv pPerl->sv_setsv +#undef sv_taint +#define sv_taint pPerl->sv_taint +#undef sv_tainted +#define sv_tainted pPerl->sv_tainted +#undef sv_unmagic +#define sv_unmagic pPerl->sv_unmagic +#undef sv_unref +#define sv_unref pPerl->sv_unref +#undef sv_untaint +#define sv_untaint pPerl->sv_untaint +#undef sv_upgrade +#define sv_upgrade pPerl->sv_upgrade +#undef sv_usepvn +#define sv_usepvn pPerl->sv_usepvn +#undef sv_vcatpvfn +#define sv_vcatpvfn pPerl->sv_vcatpvfn +#undef sv_vsetpvfn +#define sv_vsetpvfn pPerl->sv_vsetpvfn +#undef swash_init +#define swash_init pPerl->swash_init +#undef swash_fetch +#define swash_fetch pPerl->swash_fetch +#undef taint_env +#define taint_env pPerl->taint_env +#undef taint_proper +#define taint_proper pPerl->taint_proper +#undef to_utf8_lower +#define to_utf8_lower pPerl->to_utf8_lower +#undef to_utf8_upper +#define to_utf8_upper pPerl->to_utf8_upper +#undef to_utf8_title +#define to_utf8_title pPerl->to_utf8_title +#if defined(UNLINK_ALL_VERSIONS) +#undef unlnk +#define unlnk pPerl->unlnk +#endif +#if defined(USE_THREADS) +#undef unlock_condpair +#define unlock_condpair pPerl->unlock_condpair +#endif +#undef unsharepvn +#define unsharepvn pPerl->unsharepvn +#undef unshare_hek +#define unshare_hek pPerl->unshare_hek +#undef utilize +#define utilize pPerl->utilize +#undef utf16_to_utf8 +#define utf16_to_utf8 pPerl->utf16_to_utf8 +#undef utf16_to_utf8_reversed +#define utf16_to_utf8_reversed pPerl->utf16_to_utf8_reversed +#undef utf8_distance +#define utf8_distance pPerl->utf8_distance +#undef utf8_hop +#define utf8_hop pPerl->utf8_hop +#undef utf8_to_uv +#define utf8_to_uv pPerl->utf8_to_uv +#undef uv_to_utf8 +#define uv_to_utf8 pPerl->uv_to_utf8 +#undef vivify_defelem +#define vivify_defelem pPerl->vivify_defelem +#undef vivify_ref +#define vivify_ref pPerl->vivify_ref +#undef wait4pid +#define wait4pid pPerl->wait4pid +#undef warn +#define warn pPerl->warn +#undef warner +#define warner pPerl->warner +#undef watch +#define watch pPerl->watch +#undef whichsig +#define whichsig pPerl->whichsig +#undef yyerror +#define yyerror pPerl->yyerror +#if defined(USE_PURE_BISON) +#undef yylex +#define yylex pPerl->yylex +#else +#undef yylex +#define yylex pPerl->yylex +#endif +#undef yyparse +#define yyparse pPerl->yyparse +#undef yywarn +#define yywarn pPerl->yywarn +#if defined(MYMALLOC) +#undef dump_mstats +#define dump_mstats pPerl->dump_mstats +#endif +#undef safesysmalloc +#define safesysmalloc pPerl->safesysmalloc +#undef safesyscalloc +#define safesyscalloc pPerl->safesyscalloc +#undef safesysrealloc +#define safesysrealloc pPerl->safesysrealloc +#undef safesysfree +#define safesysfree pPerl->safesysfree +#if defined(LEAKTEST) +#undef safexmalloc +#define safexmalloc pPerl->safexmalloc +#undef safexcalloc +#define safexcalloc pPerl->safexcalloc +#undef safexrealloc +#define safexrealloc pPerl->safexrealloc +#undef safexfree +#define safexfree pPerl->safexfree +#endif +#if defined(PERL_GLOBAL_STRUCT) +#undef GetVars +#define GetVars pPerl->GetVars +#endif +#undef yydestruct +#define yydestruct pPerl->yydestruct +#undef runops_standard +#define runops_standard pPerl->runops_standard +#undef runops_debug +#define runops_debug pPerl->runops_debug +#if defined(WIN32) +#undef ErrorNo +#define ErrorNo pPerl->ErrorNo +#endif +#undef sv_catpvf_mg +#define sv_catpvf_mg pPerl->sv_catpvf_mg +#undef sv_catpv_mg +#define sv_catpv_mg pPerl->sv_catpv_mg +#undef sv_catpvn_mg +#define sv_catpvn_mg pPerl->sv_catpvn_mg +#undef sv_catsv_mg +#define sv_catsv_mg pPerl->sv_catsv_mg +#undef sv_setpvf_mg +#define sv_setpvf_mg pPerl->sv_setpvf_mg +#undef sv_setiv_mg +#define sv_setiv_mg pPerl->sv_setiv_mg +#undef sv_setpviv_mg +#define sv_setpviv_mg pPerl->sv_setpviv_mg +#undef sv_setuv_mg +#define sv_setuv_mg pPerl->sv_setuv_mg +#undef sv_setnv_mg +#define sv_setnv_mg pPerl->sv_setnv_mg +#undef sv_setpv_mg +#define sv_setpv_mg pPerl->sv_setpv_mg +#undef sv_setpvn_mg +#define sv_setpvn_mg pPerl->sv_setpvn_mg +#undef sv_setsv_mg +#define sv_setsv_mg pPerl->sv_setsv_mg +#undef sv_usepvn_mg +#define sv_usepvn_mg pPerl->sv_usepvn_mg +#undef get_vtbl +#define get_vtbl pPerl->get_vtbl +#undef pv_display +#define pv_display pPerl->pv_display +#undef dump_indent +#define dump_indent pPerl->dump_indent +#undef do_gv_dump +#define do_gv_dump pPerl->do_gv_dump +#undef do_gvgv_dump +#define do_gvgv_dump pPerl->do_gvgv_dump +#undef do_hv_dump +#define do_hv_dump pPerl->do_hv_dump +#undef do_magic_dump +#define do_magic_dump pPerl->do_magic_dump +#undef do_op_dump +#define do_op_dump pPerl->do_op_dump +#undef do_pmop_dump +#define do_pmop_dump pPerl->do_pmop_dump +#undef do_sv_dump +#define do_sv_dump pPerl->do_sv_dump +#undef magic_dump +#define magic_dump pPerl->magic_dump +#undef default_protect +#define default_protect pPerl->default_protect +#undef reginitcolors +#define reginitcolors pPerl->reginitcolors +#undef sv_2pv_nolen +#define sv_2pv_nolen pPerl->sv_2pv_nolen +#undef sv_pv +#define sv_pv pPerl->sv_pv +#undef sv_force_normal +#define sv_force_normal pPerl->sv_force_normal +#undef tmps_grow +#define tmps_grow pPerl->tmps_grow +#undef sv_rvweaken +#define sv_rvweaken pPerl->sv_rvweaken +#undef magic_killbackrefs +#define magic_killbackrefs pPerl->magic_killbackrefs +#if defined(PERL_IN_AV_C) +#endif +#if defined(PERL_IN_DOOP_C) +#endif +#if defined(PERL_IN_GLOBALS_C) +# if defined(WIN32) +# endif +#endif +#if defined(PERL_IN_GV_C) +#endif +#if defined(PERL_IN_HV_C) +#endif +#if defined(PERL_IN_MG_C) +#endif +#if defined(PERL_IN_OP_C) +# if defined(PL_OP_SLAB_ALLOC) +# endif +#endif +#if defined(PERL_IN_PERL_C) +# if defined(IAMSUID) +# endif +# if defined(USE_THREADS) +# endif +#endif +#if defined(PERL_IN_PP_C) +#endif +#if defined(PERL_IN_PP_CTL_C) +#endif +#if defined(PERL_IN_PP_HOT_C) +# if defined(USE_THREADS) +# endif +#endif +#if defined(PERL_IN_PP_SYS_C) +# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +# endif +#endif +#if defined(PERL_IN_REGCOMP_C) +#endif +#if defined(PERL_IN_REGEXEC_C) +#endif +#if defined(PERL_IN_RUN_C) +#endif +#if defined(PERL_IN_SCOPE_C) +#endif +#if defined(PERL_IN_SV_C) +# if defined(PURIFY) +# else +# endif +# if defined(DEBUGGING) +# endif +#endif +#if defined(PERL_IN_TOKE_C) +# if defined(CRIPPLED_CC) +# endif +# if defined(WIN32) +# endif +#endif +#if defined(PERL_IN_UNIVERSAL_C) +#endif +#if defined(PERL_IN_UTIL_C) +# if defined(LEAKTEST) +# endif +#endif +#undef ck_anoncode +#define ck_anoncode pPerl->ck_anoncode +#undef ck_bitop +#define ck_bitop pPerl->ck_bitop +#undef ck_concat +#define ck_concat pPerl->ck_concat +#undef ck_defined +#define ck_defined pPerl->ck_defined +#undef ck_delete +#define ck_delete pPerl->ck_delete +#undef ck_eof +#define ck_eof pPerl->ck_eof +#undef ck_eval +#define ck_eval pPerl->ck_eval +#undef ck_exec +#define ck_exec pPerl->ck_exec +#undef ck_exists +#define ck_exists pPerl->ck_exists +#undef ck_ftst +#define ck_ftst pPerl->ck_ftst +#undef ck_fun +#define ck_fun pPerl->ck_fun +#undef ck_fun_locale +#define ck_fun_locale pPerl->ck_fun_locale +#undef ck_glob +#define ck_glob pPerl->ck_glob +#undef ck_grep +#define ck_grep pPerl->ck_grep +#undef ck_index +#define ck_index pPerl->ck_index +#undef ck_lengthconst +#define ck_lengthconst pPerl->ck_lengthconst +#undef ck_lfun +#define ck_lfun pPerl->ck_lfun +#undef ck_listiob +#define ck_listiob pPerl->ck_listiob +#undef ck_match +#define ck_match pPerl->ck_match +#undef ck_null +#define ck_null pPerl->ck_null +#undef ck_repeat +#define ck_repeat pPerl->ck_repeat +#undef ck_require +#define ck_require pPerl->ck_require +#undef ck_rfun +#define ck_rfun pPerl->ck_rfun +#undef ck_rvconst +#define ck_rvconst pPerl->ck_rvconst +#undef ck_scmp +#define ck_scmp pPerl->ck_scmp +#undef ck_select +#define ck_select pPerl->ck_select +#undef ck_shift +#define ck_shift pPerl->ck_shift +#undef ck_sort +#define ck_sort pPerl->ck_sort +#undef ck_spair +#define ck_spair pPerl->ck_spair +#undef ck_split +#define ck_split pPerl->ck_split +#undef ck_subr +#define ck_subr pPerl->ck_subr +#undef ck_svconst +#define ck_svconst pPerl->ck_svconst +#undef ck_trunc +#define ck_trunc pPerl->ck_trunc +#undef pp_aassign +#define pp_aassign pPerl->pp_aassign +#undef pp_abs +#define pp_abs pPerl->pp_abs +#undef pp_accept +#define pp_accept pPerl->pp_accept +#undef pp_add +#define pp_add pPerl->pp_add +#undef pp_aelem +#define pp_aelem pPerl->pp_aelem +#undef pp_aelemfast +#define pp_aelemfast pPerl->pp_aelemfast +#undef pp_alarm +#define pp_alarm pPerl->pp_alarm +#undef pp_and +#define pp_and pPerl->pp_and +#undef pp_andassign +#define pp_andassign pPerl->pp_andassign +#undef pp_anoncode +#define pp_anoncode pPerl->pp_anoncode +#undef pp_anonhash +#define pp_anonhash pPerl->pp_anonhash +#undef pp_anonlist +#define pp_anonlist pPerl->pp_anonlist +#undef pp_aslice +#define pp_aslice pPerl->pp_aslice +#undef pp_atan2 +#define pp_atan2 pPerl->pp_atan2 +#undef pp_av2arylen +#define pp_av2arylen pPerl->pp_av2arylen +#undef pp_backtick +#define pp_backtick pPerl->pp_backtick +#undef pp_bind +#define pp_bind pPerl->pp_bind +#undef pp_binmode +#define pp_binmode pPerl->pp_binmode +#undef pp_bit_and +#define pp_bit_and pPerl->pp_bit_and +#undef pp_bit_or +#define pp_bit_or pPerl->pp_bit_or +#undef pp_bit_xor +#define pp_bit_xor pPerl->pp_bit_xor +#undef pp_bless +#define pp_bless pPerl->pp_bless +#undef pp_caller +#define pp_caller pPerl->pp_caller +#undef pp_chdir +#define pp_chdir pPerl->pp_chdir +#undef pp_chmod +#define pp_chmod pPerl->pp_chmod +#undef pp_chomp +#define pp_chomp pPerl->pp_chomp +#undef pp_chop +#define pp_chop pPerl->pp_chop +#undef pp_chown +#define pp_chown pPerl->pp_chown +#undef pp_chr +#define pp_chr pPerl->pp_chr +#undef pp_chroot +#define pp_chroot pPerl->pp_chroot +#undef pp_close +#define pp_close pPerl->pp_close +#undef pp_closedir +#define pp_closedir pPerl->pp_closedir +#undef pp_complement +#define pp_complement pPerl->pp_complement +#undef pp_concat +#define pp_concat pPerl->pp_concat +#undef pp_cond_expr +#define pp_cond_expr pPerl->pp_cond_expr +#undef pp_connect +#define pp_connect pPerl->pp_connect +#undef pp_const +#define pp_const pPerl->pp_const +#undef pp_cos +#define pp_cos pPerl->pp_cos +#undef pp_crypt +#define pp_crypt pPerl->pp_crypt +#undef pp_dbmclose +#define pp_dbmclose pPerl->pp_dbmclose +#undef pp_dbmopen +#define pp_dbmopen pPerl->pp_dbmopen +#undef pp_dbstate +#define pp_dbstate pPerl->pp_dbstate +#undef pp_defined +#define pp_defined pPerl->pp_defined +#undef pp_delete +#define pp_delete pPerl->pp_delete +#undef pp_die +#define pp_die pPerl->pp_die +#undef pp_divide +#define pp_divide pPerl->pp_divide +#undef pp_dofile +#define pp_dofile pPerl->pp_dofile +#undef pp_dump +#define pp_dump pPerl->pp_dump +#undef pp_each +#define pp_each pPerl->pp_each +#undef pp_egrent +#define pp_egrent pPerl->pp_egrent +#undef pp_ehostent +#define pp_ehostent pPerl->pp_ehostent +#undef pp_enetent +#define pp_enetent pPerl->pp_enetent +#undef pp_enter +#define pp_enter pPerl->pp_enter +#undef pp_entereval +#define pp_entereval pPerl->pp_entereval +#undef pp_enteriter +#define pp_enteriter pPerl->pp_enteriter +#undef pp_enterloop +#define pp_enterloop pPerl->pp_enterloop +#undef pp_entersub +#define pp_entersub pPerl->pp_entersub +#undef pp_entertry +#define pp_entertry pPerl->pp_entertry +#undef pp_enterwrite +#define pp_enterwrite pPerl->pp_enterwrite +#undef pp_eof +#define pp_eof pPerl->pp_eof +#undef pp_eprotoent +#define pp_eprotoent pPerl->pp_eprotoent +#undef pp_epwent +#define pp_epwent pPerl->pp_epwent +#undef pp_eq +#define pp_eq pPerl->pp_eq +#undef pp_eservent +#define pp_eservent pPerl->pp_eservent +#undef pp_exec +#define pp_exec pPerl->pp_exec +#undef pp_exists +#define pp_exists pPerl->pp_exists +#undef pp_exit +#define pp_exit pPerl->pp_exit +#undef pp_exp +#define pp_exp pPerl->pp_exp +#undef pp_fcntl +#define pp_fcntl pPerl->pp_fcntl +#undef pp_fileno +#define pp_fileno pPerl->pp_fileno +#undef pp_flip +#define pp_flip pPerl->pp_flip +#undef pp_flock +#define pp_flock pPerl->pp_flock +#undef pp_flop +#define pp_flop pPerl->pp_flop +#undef pp_fork +#define pp_fork pPerl->pp_fork +#undef pp_formline +#define pp_formline pPerl->pp_formline +#undef pp_ftatime +#define pp_ftatime pPerl->pp_ftatime +#undef pp_ftbinary +#define pp_ftbinary pPerl->pp_ftbinary +#undef pp_ftblk +#define pp_ftblk pPerl->pp_ftblk +#undef pp_ftchr +#define pp_ftchr pPerl->pp_ftchr +#undef pp_ftctime +#define pp_ftctime pPerl->pp_ftctime +#undef pp_ftdir +#define pp_ftdir pPerl->pp_ftdir +#undef pp_fteexec +#define pp_fteexec pPerl->pp_fteexec +#undef pp_fteowned +#define pp_fteowned pPerl->pp_fteowned +#undef pp_fteread +#define pp_fteread pPerl->pp_fteread +#undef pp_ftewrite +#define pp_ftewrite pPerl->pp_ftewrite +#undef pp_ftfile +#define pp_ftfile pPerl->pp_ftfile +#undef pp_ftis +#define pp_ftis pPerl->pp_ftis +#undef pp_ftlink +#define pp_ftlink pPerl->pp_ftlink +#undef pp_ftmtime +#define pp_ftmtime pPerl->pp_ftmtime +#undef pp_ftpipe +#define pp_ftpipe pPerl->pp_ftpipe +#undef pp_ftrexec +#define pp_ftrexec pPerl->pp_ftrexec +#undef pp_ftrowned +#define pp_ftrowned pPerl->pp_ftrowned +#undef pp_ftrread +#define pp_ftrread pPerl->pp_ftrread +#undef pp_ftrwrite +#define pp_ftrwrite pPerl->pp_ftrwrite +#undef pp_ftsgid +#define pp_ftsgid pPerl->pp_ftsgid +#undef pp_ftsize +#define pp_ftsize pPerl->pp_ftsize +#undef pp_ftsock +#define pp_ftsock pPerl->pp_ftsock +#undef pp_ftsuid +#define pp_ftsuid pPerl->pp_ftsuid +#undef pp_ftsvtx +#define pp_ftsvtx pPerl->pp_ftsvtx +#undef pp_fttext +#define pp_fttext pPerl->pp_fttext +#undef pp_fttty +#define pp_fttty pPerl->pp_fttty +#undef pp_ftzero +#define pp_ftzero pPerl->pp_ftzero +#undef pp_ge +#define pp_ge pPerl->pp_ge +#undef pp_gelem +#define pp_gelem pPerl->pp_gelem +#undef pp_getc +#define pp_getc pPerl->pp_getc +#undef pp_getlogin +#define pp_getlogin pPerl->pp_getlogin +#undef pp_getpeername +#define pp_getpeername pPerl->pp_getpeername +#undef pp_getpgrp +#define pp_getpgrp pPerl->pp_getpgrp +#undef pp_getppid +#define pp_getppid pPerl->pp_getppid +#undef pp_getpriority +#define pp_getpriority pPerl->pp_getpriority +#undef pp_getsockname +#define pp_getsockname pPerl->pp_getsockname +#undef pp_ggrent +#define pp_ggrent pPerl->pp_ggrent +#undef pp_ggrgid +#define pp_ggrgid pPerl->pp_ggrgid +#undef pp_ggrnam +#define pp_ggrnam pPerl->pp_ggrnam +#undef pp_ghbyaddr +#define pp_ghbyaddr pPerl->pp_ghbyaddr +#undef pp_ghbyname +#define pp_ghbyname pPerl->pp_ghbyname +#undef pp_ghostent +#define pp_ghostent pPerl->pp_ghostent +#undef pp_glob +#define pp_glob pPerl->pp_glob +#undef pp_gmtime +#define pp_gmtime pPerl->pp_gmtime +#undef pp_gnbyaddr +#define pp_gnbyaddr pPerl->pp_gnbyaddr +#undef pp_gnbyname +#define pp_gnbyname pPerl->pp_gnbyname +#undef pp_gnetent +#define pp_gnetent pPerl->pp_gnetent +#undef pp_goto +#define pp_goto pPerl->pp_goto +#undef pp_gpbyname +#define pp_gpbyname pPerl->pp_gpbyname +#undef pp_gpbynumber +#define pp_gpbynumber pPerl->pp_gpbynumber +#undef pp_gprotoent +#define pp_gprotoent pPerl->pp_gprotoent +#undef pp_gpwent +#define pp_gpwent pPerl->pp_gpwent +#undef pp_gpwnam +#define pp_gpwnam pPerl->pp_gpwnam +#undef pp_gpwuid +#define pp_gpwuid pPerl->pp_gpwuid +#undef pp_grepstart +#define pp_grepstart pPerl->pp_grepstart +#undef pp_grepwhile +#define pp_grepwhile pPerl->pp_grepwhile +#undef pp_gsbyname +#define pp_gsbyname pPerl->pp_gsbyname +#undef pp_gsbyport +#define pp_gsbyport pPerl->pp_gsbyport +#undef pp_gservent +#define pp_gservent pPerl->pp_gservent +#undef pp_gsockopt +#define pp_gsockopt pPerl->pp_gsockopt +#undef pp_gt +#define pp_gt pPerl->pp_gt +#undef pp_gv +#define pp_gv pPerl->pp_gv +#undef pp_gvsv +#define pp_gvsv pPerl->pp_gvsv +#undef pp_helem +#define pp_helem pPerl->pp_helem +#undef pp_hex +#define pp_hex pPerl->pp_hex +#undef pp_hslice +#define pp_hslice pPerl->pp_hslice +#undef pp_i_add +#define pp_i_add pPerl->pp_i_add +#undef pp_i_divide +#define pp_i_divide pPerl->pp_i_divide +#undef pp_i_eq +#define pp_i_eq pPerl->pp_i_eq +#undef pp_i_ge +#define pp_i_ge pPerl->pp_i_ge +#undef pp_i_gt +#define pp_i_gt pPerl->pp_i_gt +#undef pp_i_le +#define pp_i_le pPerl->pp_i_le +#undef pp_i_lt +#define pp_i_lt pPerl->pp_i_lt +#undef pp_i_modulo +#define pp_i_modulo pPerl->pp_i_modulo +#undef pp_i_multiply +#define pp_i_multiply pPerl->pp_i_multiply +#undef pp_i_ncmp +#define pp_i_ncmp pPerl->pp_i_ncmp +#undef pp_i_ne +#define pp_i_ne pPerl->pp_i_ne +#undef pp_i_negate +#define pp_i_negate pPerl->pp_i_negate +#undef pp_i_subtract +#define pp_i_subtract pPerl->pp_i_subtract +#undef pp_index +#define pp_index pPerl->pp_index +#undef pp_int +#define pp_int pPerl->pp_int +#undef pp_ioctl +#define pp_ioctl pPerl->pp_ioctl +#undef pp_iter +#define pp_iter pPerl->pp_iter +#undef pp_join +#define pp_join pPerl->pp_join +#undef pp_keys +#define pp_keys pPerl->pp_keys +#undef pp_kill +#define pp_kill pPerl->pp_kill +#undef pp_last +#define pp_last pPerl->pp_last +#undef pp_lc +#define pp_lc pPerl->pp_lc +#undef pp_lcfirst +#define pp_lcfirst pPerl->pp_lcfirst +#undef pp_le +#define pp_le pPerl->pp_le +#undef pp_leave +#define pp_leave pPerl->pp_leave +#undef pp_leaveeval +#define pp_leaveeval pPerl->pp_leaveeval +#undef pp_leaveloop +#define pp_leaveloop pPerl->pp_leaveloop +#undef pp_leavesub +#define pp_leavesub pPerl->pp_leavesub +#undef pp_leavetry +#define pp_leavetry pPerl->pp_leavetry +#undef pp_leavewrite +#define pp_leavewrite pPerl->pp_leavewrite +#undef pp_left_shift +#define pp_left_shift pPerl->pp_left_shift +#undef pp_length +#define pp_length pPerl->pp_length +#undef pp_lineseq +#define pp_lineseq pPerl->pp_lineseq +#undef pp_link +#define pp_link pPerl->pp_link +#undef pp_list +#define pp_list pPerl->pp_list +#undef pp_listen +#define pp_listen pPerl->pp_listen +#undef pp_localtime +#define pp_localtime pPerl->pp_localtime +#undef pp_lock +#define pp_lock pPerl->pp_lock +#undef pp_log +#define pp_log pPerl->pp_log +#undef pp_lslice +#define pp_lslice pPerl->pp_lslice +#undef pp_lstat +#define pp_lstat pPerl->pp_lstat +#undef pp_lt +#define pp_lt pPerl->pp_lt +#undef pp_mapstart +#define pp_mapstart pPerl->pp_mapstart +#undef pp_mapwhile +#define pp_mapwhile pPerl->pp_mapwhile +#undef pp_match +#define pp_match pPerl->pp_match +#undef pp_method +#define pp_method pPerl->pp_method +#undef pp_mkdir +#define pp_mkdir pPerl->pp_mkdir +#undef pp_modulo +#define pp_modulo pPerl->pp_modulo +#undef pp_msgctl +#define pp_msgctl pPerl->pp_msgctl +#undef pp_msgget +#define pp_msgget pPerl->pp_msgget +#undef pp_msgrcv +#define pp_msgrcv pPerl->pp_msgrcv +#undef pp_msgsnd +#define pp_msgsnd pPerl->pp_msgsnd +#undef pp_multiply +#define pp_multiply pPerl->pp_multiply +#undef pp_ncmp +#define pp_ncmp pPerl->pp_ncmp +#undef pp_ne +#define pp_ne pPerl->pp_ne +#undef pp_negate +#define pp_negate pPerl->pp_negate +#undef pp_next +#define pp_next pPerl->pp_next +#undef pp_nextstate +#define pp_nextstate pPerl->pp_nextstate +#undef pp_not +#define pp_not pPerl->pp_not +#undef pp_null +#define pp_null pPerl->pp_null +#undef pp_oct +#define pp_oct pPerl->pp_oct +#undef pp_open +#define pp_open pPerl->pp_open +#undef pp_open_dir +#define pp_open_dir pPerl->pp_open_dir +#undef pp_or +#define pp_or pPerl->pp_or +#undef pp_orassign +#define pp_orassign pPerl->pp_orassign +#undef pp_ord +#define pp_ord pPerl->pp_ord +#undef pp_pack +#define pp_pack pPerl->pp_pack +#undef pp_padany +#define pp_padany pPerl->pp_padany +#undef pp_padav +#define pp_padav pPerl->pp_padav +#undef pp_padhv +#define pp_padhv pPerl->pp_padhv +#undef pp_padsv +#define pp_padsv pPerl->pp_padsv +#undef pp_pipe_op +#define pp_pipe_op pPerl->pp_pipe_op +#undef pp_pop +#define pp_pop pPerl->pp_pop +#undef pp_pos +#define pp_pos pPerl->pp_pos +#undef pp_postdec +#define pp_postdec pPerl->pp_postdec +#undef pp_postinc +#define pp_postinc pPerl->pp_postinc +#undef pp_pow +#define pp_pow pPerl->pp_pow +#undef pp_predec +#define pp_predec pPerl->pp_predec +#undef pp_preinc +#define pp_preinc pPerl->pp_preinc +#undef pp_print +#define pp_print pPerl->pp_print +#undef pp_prototype +#define pp_prototype pPerl->pp_prototype +#undef pp_prtf +#define pp_prtf pPerl->pp_prtf +#undef pp_push +#define pp_push pPerl->pp_push +#undef pp_pushmark +#define pp_pushmark pPerl->pp_pushmark +#undef pp_pushre +#define pp_pushre pPerl->pp_pushre +#undef pp_qr +#define pp_qr pPerl->pp_qr +#undef pp_quotemeta +#define pp_quotemeta pPerl->pp_quotemeta +#undef pp_rand +#define pp_rand pPerl->pp_rand +#undef pp_range +#define pp_range pPerl->pp_range +#undef pp_rcatline +#define pp_rcatline pPerl->pp_rcatline +#undef pp_read +#define pp_read pPerl->pp_read +#undef pp_readdir +#define pp_readdir pPerl->pp_readdir +#undef pp_readline +#define pp_readline pPerl->pp_readline +#undef pp_readlink +#define pp_readlink pPerl->pp_readlink +#undef pp_recv +#define pp_recv pPerl->pp_recv +#undef pp_redo +#define pp_redo pPerl->pp_redo +#undef pp_ref +#define pp_ref pPerl->pp_ref +#undef pp_refgen +#define pp_refgen pPerl->pp_refgen +#undef pp_regcmaybe +#define pp_regcmaybe pPerl->pp_regcmaybe +#undef pp_regcomp +#define pp_regcomp pPerl->pp_regcomp +#undef pp_regcreset +#define pp_regcreset pPerl->pp_regcreset +#undef pp_rename +#define pp_rename pPerl->pp_rename +#undef pp_repeat +#define pp_repeat pPerl->pp_repeat +#undef pp_require +#define pp_require pPerl->pp_require +#undef pp_reset +#define pp_reset pPerl->pp_reset +#undef pp_return +#define pp_return pPerl->pp_return +#undef pp_reverse +#define pp_reverse pPerl->pp_reverse +#undef pp_rewinddir +#define pp_rewinddir pPerl->pp_rewinddir +#undef pp_right_shift +#define pp_right_shift pPerl->pp_right_shift +#undef pp_rindex +#define pp_rindex pPerl->pp_rindex +#undef pp_rmdir +#define pp_rmdir pPerl->pp_rmdir +#undef pp_rv2av +#define pp_rv2av pPerl->pp_rv2av +#undef pp_rv2cv +#define pp_rv2cv pPerl->pp_rv2cv +#undef pp_rv2gv +#define pp_rv2gv pPerl->pp_rv2gv +#undef pp_rv2hv +#define pp_rv2hv pPerl->pp_rv2hv +#undef pp_rv2sv +#define pp_rv2sv pPerl->pp_rv2sv +#undef pp_sassign +#define pp_sassign pPerl->pp_sassign +#undef pp_scalar +#define pp_scalar pPerl->pp_scalar +#undef pp_schomp +#define pp_schomp pPerl->pp_schomp +#undef pp_schop +#define pp_schop pPerl->pp_schop +#undef pp_scmp +#define pp_scmp pPerl->pp_scmp +#undef pp_scope +#define pp_scope pPerl->pp_scope +#undef pp_seek +#define pp_seek pPerl->pp_seek +#undef pp_seekdir +#define pp_seekdir pPerl->pp_seekdir +#undef pp_select +#define pp_select pPerl->pp_select +#undef pp_semctl +#define pp_semctl pPerl->pp_semctl +#undef pp_semget +#define pp_semget pPerl->pp_semget +#undef pp_semop +#define pp_semop pPerl->pp_semop +#undef pp_send +#define pp_send pPerl->pp_send +#undef pp_seq +#define pp_seq pPerl->pp_seq +#undef pp_setpgrp +#define pp_setpgrp pPerl->pp_setpgrp +#undef pp_setpriority +#define pp_setpriority pPerl->pp_setpriority +#undef pp_sge +#define pp_sge pPerl->pp_sge +#undef pp_sgrent +#define pp_sgrent pPerl->pp_sgrent +#undef pp_sgt +#define pp_sgt pPerl->pp_sgt +#undef pp_shift +#define pp_shift pPerl->pp_shift +#undef pp_shmctl +#define pp_shmctl pPerl->pp_shmctl +#undef pp_shmget +#define pp_shmget pPerl->pp_shmget +#undef pp_shmread +#define pp_shmread pPerl->pp_shmread +#undef pp_shmwrite +#define pp_shmwrite pPerl->pp_shmwrite +#undef pp_shostent +#define pp_shostent pPerl->pp_shostent +#undef pp_shutdown +#define pp_shutdown pPerl->pp_shutdown +#undef pp_sin +#define pp_sin pPerl->pp_sin +#undef pp_sle +#define pp_sle pPerl->pp_sle +#undef pp_sleep +#define pp_sleep pPerl->pp_sleep +#undef pp_slt +#define pp_slt pPerl->pp_slt +#undef pp_sne +#define pp_sne pPerl->pp_sne +#undef pp_snetent +#define pp_snetent pPerl->pp_snetent +#undef pp_socket +#define pp_socket pPerl->pp_socket +#undef pp_sockpair +#define pp_sockpair pPerl->pp_sockpair +#undef pp_sort +#define pp_sort pPerl->pp_sort +#undef pp_splice +#define pp_splice pPerl->pp_splice +#undef pp_split +#define pp_split pPerl->pp_split +#undef pp_sprintf +#define pp_sprintf pPerl->pp_sprintf +#undef pp_sprotoent +#define pp_sprotoent pPerl->pp_sprotoent +#undef pp_spwent +#define pp_spwent pPerl->pp_spwent +#undef pp_sqrt +#define pp_sqrt pPerl->pp_sqrt +#undef pp_srand +#define pp_srand pPerl->pp_srand +#undef pp_srefgen +#define pp_srefgen pPerl->pp_srefgen +#undef pp_sselect +#define pp_sselect pPerl->pp_sselect +#undef pp_sservent +#define pp_sservent pPerl->pp_sservent +#undef pp_ssockopt +#define pp_ssockopt pPerl->pp_ssockopt +#undef pp_stat +#define pp_stat pPerl->pp_stat +#undef pp_stringify +#define pp_stringify pPerl->pp_stringify +#undef pp_stub +#define pp_stub pPerl->pp_stub +#undef pp_study +#define pp_study pPerl->pp_study +#undef pp_subst +#define pp_subst pPerl->pp_subst +#undef pp_substcont +#define pp_substcont pPerl->pp_substcont +#undef pp_substr +#define pp_substr pPerl->pp_substr +#undef pp_subtract +#define pp_subtract pPerl->pp_subtract +#undef pp_symlink +#define pp_symlink pPerl->pp_symlink +#undef pp_syscall +#define pp_syscall pPerl->pp_syscall +#undef pp_sysopen +#define pp_sysopen pPerl->pp_sysopen +#undef pp_sysread +#define pp_sysread pPerl->pp_sysread +#undef pp_sysseek +#define pp_sysseek pPerl->pp_sysseek +#undef pp_system +#define pp_system pPerl->pp_system +#undef pp_syswrite +#define pp_syswrite pPerl->pp_syswrite +#undef pp_tell +#define pp_tell pPerl->pp_tell +#undef pp_telldir +#define pp_telldir pPerl->pp_telldir +#undef pp_threadsv +#define pp_threadsv pPerl->pp_threadsv +#undef pp_tie +#define pp_tie pPerl->pp_tie +#undef pp_tied +#define pp_tied pPerl->pp_tied +#undef pp_time +#define pp_time pPerl->pp_time +#undef pp_tms +#define pp_tms pPerl->pp_tms +#undef pp_trans +#define pp_trans pPerl->pp_trans +#undef pp_truncate +#define pp_truncate pPerl->pp_truncate +#undef pp_uc +#define pp_uc pPerl->pp_uc +#undef pp_ucfirst +#define pp_ucfirst pPerl->pp_ucfirst +#undef pp_umask +#define pp_umask pPerl->pp_umask +#undef pp_undef +#define pp_undef pPerl->pp_undef +#undef pp_unlink +#define pp_unlink pPerl->pp_unlink +#undef pp_unpack +#define pp_unpack pPerl->pp_unpack +#undef pp_unshift +#define pp_unshift pPerl->pp_unshift +#undef pp_unstack +#define pp_unstack pPerl->pp_unstack +#undef pp_untie +#define pp_untie pPerl->pp_untie +#undef pp_utime +#define pp_utime pPerl->pp_utime +#undef pp_values +#define pp_values pPerl->pp_values +#undef pp_vec +#define pp_vec pPerl->pp_vec +#undef pp_wait +#define pp_wait pPerl->pp_wait +#undef pp_waitpid +#define pp_waitpid pPerl->pp_waitpid +#undef pp_wantarray +#define pp_wantarray pPerl->pp_wantarray +#undef pp_warn +#define pp_warn pPerl->pp_warn +#undef pp_xor +#define pp_xor pPerl->pp_xor #endif /* __objXSUB_h__ */ diff --git a/op.c b/op.c index 91e996e..5097156 100644 --- a/op.c +++ b/op.c @@ -38,7 +38,7 @@ static int PL_OpSpace = 0; } while (0) STATIC void * -Slab_Alloc(pTHX_ int m, size_t sz) +S_Slab_Alloc(pTHX_ int m, size_t sz) { Newz(m,PL_OpPtr,SLAB_SIZE,char); PL_OpSpace = SLAB_SIZE - sz; @@ -55,14 +55,14 @@ Slab_Alloc(pTHX_ int m, size_t sz) #define CHECKOP(type,o) \ ((PL_op_mask && PL_op_mask[type]) \ ? ( op_free((OP*)o), \ - croak("%s trapped by operation mask", PL_op_desc[type]), \ + Perl_croak(aTHX_ "%s trapped by operation mask", PL_op_desc[type]), \ Nullop ) \ - : (CHECKCALL[type])((OP*)o)) + : (CHECKCALL[type])(aTHX_ (OP*)o)) #define PAD_MAX 999999999 STATIC char* -gv_ename(pTHX_ GV *gv) +S_gv_ename(pTHX_ GV *gv) { STRLEN n_a; SV* tmpsv = sv_newmortal(); @@ -71,38 +71,38 @@ gv_ename(pTHX_ GV *gv) } STATIC OP * -no_fh_allowed(pTHX_ OP *o) +S_no_fh_allowed(pTHX_ OP *o) { - yyerror(form("Missing comma after first argument to %s function", + yyerror(Perl_form(aTHX_ "Missing comma after first argument to %s function", PL_op_desc[o->op_type])); return o; } STATIC OP * -too_few_arguments(pTHX_ OP *o, char *name) +S_too_few_arguments(pTHX_ OP *o, char *name) { - yyerror(form("Not enough arguments for %s", name)); + yyerror(Perl_form(aTHX_ "Not enough arguments for %s", name)); return o; } STATIC OP * -too_many_arguments(pTHX_ OP *o, char *name) +S_too_many_arguments(pTHX_ OP *o, char *name) { - yyerror(form("Too many arguments for %s", name)); + yyerror(Perl_form(aTHX_ "Too many arguments for %s", name)); return o; } STATIC void -bad_type(pTHX_ I32 n, char *t, char *name, OP *kid) +S_bad_type(pTHX_ I32 n, char *t, char *name, OP *kid) { - yyerror(form("Type of arg %d to %s must be %s (not %s)", + yyerror(Perl_form(aTHX_ "Type of arg %d to %s must be %s (not %s)", (int)n, name, t, PL_op_desc[kid->op_type])); } STATIC void -no_bareword_allowed(pTHX_ OP *o) +S_no_bareword_allowed(pTHX_ OP *o) { - warn("Bareword \"%s\" not allowed while \"strict subs\" in use", + Perl_warn(aTHX_ "Bareword \"%s\" not allowed while \"strict subs\" in use", SvPV_nolen(cSVOPo->op_sv)); ++PL_error_count; } @@ -112,14 +112,14 @@ Perl_assertref(pTHX_ 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", PL_op_desc[type])); + yyerror(Perl_form(aTHX_ "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( - newSVpvf("(Did you mean $ or @ instead of %c?)\n", + Perl_newSVpvf(aTHX_ "(Did you mean $ or @ instead of %c?)\n", type == OP_ENTERSUB ? '&' : '%')); if (PL_in_eval & EVAL_WARNONLY) - warn("%_", msg); + Perl_warn(aTHX_ "%_", msg); else if (PL_in_eval) sv_catsv(GvSV(PL_errgv), msg); else @@ -161,7 +161,7 @@ Perl_pad_allocmy(pTHX_ char *name) name[2] = toCTRL(name[1]); name[1] = '^'; } - yyerror(form("Can't use global %s in \"my\"",name)); + yyerror(Perl_form(aTHX_ "Can't use global %s in \"my\"",name)); } if (ckWARN(WARN_UNSAFE) && AvFILLp(PL_comppad_name) >= 0) { SV **svp = AvARRAY(PL_comppad_name); @@ -171,7 +171,7 @@ Perl_pad_allocmy(pTHX_ char *name) && (SvIVX(sv) == PAD_MAX || SvIVX(sv) == 0) && strEQ(name, SvPVX(sv))) { - warner(WARN_UNSAFE, + Perl_warner(aTHX_ WARN_UNSAFE, "\"my\" variable %s masks earlier declaration in same %s", name, (SvIVX(sv) == PAD_MAX ? "scope" : "statement")); break; @@ -184,7 +184,7 @@ Perl_pad_allocmy(pTHX_ char *name) sv_setpv(sv, name); if (PL_in_my_stash) { if (*name != '$') - yyerror(form("Can't declare class for non-scalar %s in \"my\"", + yyerror(Perl_form(aTHX_ "Can't declare class for non-scalar %s in \"my\"", name)); SvOBJECT_on(sv); (void)SvUPGRADE(sv, SVt_PVMG); @@ -208,7 +208,7 @@ Perl_pad_allocmy(pTHX_ char *name) #define FINDLEX_NOSEARCH 1 /* don't search outer contexts */ STATIC PADOFFSET -pad_findlex(pTHX_ char *name, PADOFFSET newoff, U32 seq, CV* startcv, +S_pad_findlex(pTHX_ char *name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval, U32 flags) { dTHR; @@ -283,7 +283,7 @@ pad_findlex(pTHX_ char *name, PADOFFSET newoff, U32 seq, CV* startcv, if (ckWARN(WARN_CLOSURE) && !CvUNIQUE(bcv) && !CvUNIQUE(cv)) { - warner(WARN_CLOSURE, + Perl_warner(aTHX_ WARN_CLOSURE, "Variable \"%s\" may be unavailable", name); } @@ -294,7 +294,7 @@ pad_findlex(pTHX_ char *name, PADOFFSET newoff, U32 seq, CV* startcv, } else if (!CvUNIQUE(PL_compcv)) { if (ckWARN(WARN_CLOSURE) && !SvFAKE(sv) && !CvUNIQUE(cv)) - warner(WARN_CLOSURE, + Perl_warner(aTHX_ WARN_CLOSURE, "Variable \"%s\" will not stay shared", name); } } @@ -420,7 +420,7 @@ Perl_pad_leavemy(pTHX_ I32 fill) if (PL_min_intro_pending && fill < PL_min_intro_pending) { for (off = PL_max_intro_pending; off >= PL_min_intro_pending; off--) { if ((sv = svp[off]) && sv != &PL_sv_undef) - warn("%s never introduced", SvPVX(sv)); + Perl_warn(aTHX_ "%s never introduced", SvPVX(sv)); } } /* "Deintroduce" my variables that are leaving with this scope. */ @@ -438,7 +438,7 @@ Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype) I32 retval; if (AvARRAY(PL_comppad) != PL_curpad) - croak("panic: pad_alloc"); + Perl_croak(aTHX_ "panic: pad_alloc"); if (PL_pad_reset_pending) pad_reset(); if (tmptype & SVs_PADMY) { @@ -488,7 +488,7 @@ Perl_pad_sv(pTHX_ PADOFFSET po) (unsigned long) thr, (unsigned long) PL_curpad, po)); #else if (!po) - croak("panic: pad_sv po"); + Perl_croak(aTHX_ "panic: pad_sv po"); DEBUG_X(PerlIO_printf(Perl_debug_log, "Pad 0x%lx sv %d\n", (unsigned long) PL_curpad, po)); #endif /* USE_THREADS */ @@ -502,9 +502,9 @@ Perl_pad_free(pTHX_ PADOFFSET po) if (!PL_curpad) return; if (AvARRAY(PL_comppad) != PL_curpad) - croak("panic: pad_free curpad"); + Perl_croak(aTHX_ "panic: pad_free curpad"); if (!po) - croak("panic: pad_free po"); + Perl_croak(aTHX_ "panic: pad_free po"); #ifdef USE_THREADS DEBUG_X(PerlIO_printf(Perl_debug_log, "0x%lx Pad 0x%lx free %d\n", (unsigned long) thr, (unsigned long) PL_curpad, po)); @@ -523,9 +523,9 @@ Perl_pad_swipe(pTHX_ PADOFFSET po) { dTHR; if (AvARRAY(PL_comppad) != PL_curpad) - croak("panic: pad_swipe curpad"); + Perl_croak(aTHX_ "panic: pad_swipe curpad"); if (!po) - croak("panic: pad_swipe po"); + Perl_croak(aTHX_ "panic: pad_swipe po"); #ifdef USE_THREADS DEBUG_X(PerlIO_printf(Perl_debug_log, "0x%lx Pad 0x%lx swipe %d\n", (unsigned long) thr, (unsigned long) PL_curpad, po)); @@ -554,7 +554,7 @@ Perl_pad_reset(pTHX) register I32 po; if (AvARRAY(PL_comppad) != PL_curpad) - croak("panic: pad_reset curpad"); + Perl_croak(aTHX_ "panic: pad_reset curpad"); #ifdef USE_THREADS DEBUG_X(PerlIO_printf(Perl_debug_log, "0x%lx Pad 0x%lx reset\n", (unsigned long) thr, (unsigned long) PL_curpad)); @@ -676,7 +676,7 @@ Perl_op_free(pTHX_ OP *o) #endif /* USE_THREADS */ default: if (!(o->op_flags & OPf_REF) - || (PL_check[o->op_type] != FUNC_NAME_TO_PTR(ck_ftst))) + || (PL_check[o->op_type] != FUNC_NAME_TO_PTR(Perl_ck_ftst))) break; /* FALL THROUGH */ case OP_GVSV: @@ -730,7 +730,7 @@ Perl_op_free(pTHX_ OP *o) } STATIC void -null(pTHX_ OP *o) +S_null(pTHX_ OP *o) { if (o->op_type != OP_NULL && o->op_type != OP_THREADSV && o->op_targ > 0) pad_free(o->op_targ); @@ -779,7 +779,7 @@ Perl_scalarkids(pTHX_ OP *o) } STATIC OP * -scalarboolean(pTHX_ OP *o) +S_scalarboolean(pTHX_ OP *o) { if (o->op_type == OP_SASSIGN && cBINOPo->op_first->op_type == OP_CONST) { dTHR; @@ -788,7 +788,7 @@ scalarboolean(pTHX_ OP *o) if (PL_copline != NOLINE) PL_curcop->cop_line = PL_copline; - warner(WARN_SYNTAX, "Found = in conditional, should be =="); + Perl_warner(aTHX_ WARN_SYNTAX, "Found = in conditional, should be =="); PL_curcop->cop_line = oldline; } } @@ -1057,7 +1057,7 @@ Perl_scalarvoid(pTHX_ OP *o) if (useless) { dTHR; if (ckWARN(WARN_VOID)) - warner(WARN_VOID, "Useless use of %s in void context", useless); + Perl_warner(aTHX_ WARN_VOID, "Useless use of %s in void context", useless); } return o; } @@ -1169,7 +1169,7 @@ Perl_scalarseq(pTHX_ OP *o) } STATIC OP * -modkids(pTHX_ OP *o, I32 type) +S_modkids(pTHX_ OP *o, I32 type) { OP *kid; if (o && o->op_flags & OPf_KIDS) { @@ -1208,7 +1208,7 @@ Perl_mod(pTHX_ OP *o, I32 type) else if (type == OP_REFGEN) goto nomod; else - croak("That use of $[ is unsupported"); + Perl_croak(aTHX_ "That use of $[ is unsupported"); break; case OP_STUB: if (o->op_flags & OPf_PARENS) @@ -1229,7 +1229,7 @@ Perl_mod(pTHX_ OP *o, I32 type) /* grep, foreach, subcalls, refgen */ if (type == OP_GREPSTART || type == OP_ENTERSUB || type == OP_REFGEN) break; - yyerror(form("Can't modify %s in %s", + yyerror(Perl_form(aTHX_ "Can't modify %s in %s", (o->op_type == OP_NULL && (o->op_flags & OPf_SPECIAL) ? "do block" : PL_op_desc[o->op_type]), type ? PL_op_desc[type] : "local")); @@ -1268,7 +1268,7 @@ Perl_mod(pTHX_ OP *o, I32 type) case OP_RV2AV: case OP_RV2HV: if (!type && cUNOPo->op_first->op_type != OP_GV) - croak("Can't localize through a reference"); + Perl_croak(aTHX_ "Can't localize through a reference"); if (type == OP_REFGEN && o->op_flags & OPf_PARENS) { PL_modcount = 10000; return o; /* Treat \(@foo) like ordinary list. */ @@ -1290,7 +1290,7 @@ Perl_mod(pTHX_ OP *o, I32 type) break; case OP_RV2SV: if (!type && cUNOPo->op_first->op_type != OP_GV) - croak("Can't localize through a reference"); + Perl_croak(aTHX_ "Can't localize through a reference"); ref(cUNOPo->op_first, o->op_type); /* FALL THROUGH */ case OP_GV: @@ -1314,7 +1314,7 @@ Perl_mod(pTHX_ OP *o, I32 type) case OP_PADSV: PL_modcount++; if (!type) - croak("Can't localize lexical variable %s", + Perl_croak(aTHX_ "Can't localize lexical variable %s", SvPV(*av_fetch(PL_comppad_name, o->op_targ, 4), n_a)); break; @@ -1391,7 +1391,7 @@ Perl_mod(pTHX_ OP *o, I32 type) } STATIC bool -scalar_mod_type(pTHX_ OP *o, I32 type) +S_scalar_mod_type(pTHX_ OP *o, I32 type) { switch (type) { case OP_SASSIGN: @@ -1438,7 +1438,7 @@ scalar_mod_type(pTHX_ OP *o, I32 type) } STATIC bool -is_handle_constructor(pTHX_ OP *o, I32 argnum) +S_is_handle_constructor(pTHX_ OP *o, I32 argnum) { switch (o->op_type) { case OP_PIPE_OP: @@ -1580,7 +1580,7 @@ Perl_my(pTHX_ OP *o) type != OP_PADHV && type != OP_PUSHMARK) { - yyerror(form("Can't declare %s in my", PL_op_desc[o->op_type])); + yyerror(Perl_form(aTHX_ "Can't declare %s in my", PL_op_desc[o->op_type])); return o; } o->op_flags |= OPf_MOD; @@ -1613,7 +1613,7 @@ Perl_bind_match(pTHX_ I32 type, OP *left, OP *right) char *sample = ((left->op_type == OP_RV2AV || left->op_type == OP_PADAV) ? "@array" : "%hash"); - warner(WARN_UNSAFE, + Perl_warner(aTHX_ WARN_UNSAFE, "Applying %s to %s will act on scalar(%s)", desc, sample, sample); } @@ -1732,7 +1732,7 @@ Perl_block_end(pTHX_ I32 floor, OP *seq) } STATIC OP * -newDEFSVOP(pTHX) +S_newDEFSVOP(pTHX) { #ifdef USE_THREADS OP *o = newOP(OP_THREADSV, 0); @@ -1792,7 +1792,7 @@ Perl_localize(pTHX_ OP *o, I32 lex) char *s; for (s = PL_bufptr; *s && (isALNUM(*s) || (*s & 0x80) || strchr("@$%, ",*s)); s++) ; if (*s == ';' || *s == '=') - warner(WARN_PARENTHESIS, "Parentheses missing around \"%s\" list", + Perl_warner(aTHX_ WARN_PARENTHESIS, "Parentheses missing around \"%s\" list", lex ? "my" : "local"); } } @@ -1876,7 +1876,7 @@ Perl_fold_constants(pTHX_ register OP *o) curop = LINKLIST(o); o->op_next = 0; PL_op = curop; - CALLRUNOPS(); + CALLRUNOPS(aTHX); sv = *(PL_stack_sp--); if (o->op_targ && sv == PAD_SV(o->op_targ)) /* grab pad temp? */ pad_swipe(o->op_targ); @@ -1940,10 +1940,10 @@ Perl_gen_constant_list(pTHX_ register OP *o) PL_op = curop = LINKLIST(o); o->op_next = 0; - pp_pushmark(ARGS); - CALLRUNOPS(); + pp_pushmark(); + CALLRUNOPS(aTHX); PL_op = curop; - pp_anonlist(ARGS); + pp_anonlist(); PL_tmps_floor = oldtmps_floor; o->op_type = OP_RV2AV; @@ -2352,15 +2352,15 @@ Perl_pmtrans(pTHX_ OP *o, OP *expr, OP *repl) if (rfirst == 0xffffffff) { diff = tdiff; /* oops, pretend rdiff is infinite */ if (diff > 0) - sv_catpvf(listsv, "%04x\t%04x\tXXXX\n", tfirst, tlast); + Perl_sv_catpvf(aTHX_ listsv, "%04x\t%04x\tXXXX\n", tfirst, tlast); else - sv_catpvf(listsv, "%04x\t\tXXXX\n", tfirst); + Perl_sv_catpvf(aTHX_ listsv, "%04x\t\tXXXX\n", tfirst); } else { if (diff > 0) - sv_catpvf(listsv, "%04x\t%04x\t%04x\n", tfirst, tfirst + diff, rfirst); + Perl_sv_catpvf(aTHX_ listsv, "%04x\t%04x\t%04x\n", tfirst, tfirst + diff, rfirst); else - sv_catpvf(listsv, "%04x\t\t%04x\n", tfirst, rfirst); + Perl_sv_catpvf(aTHX_ listsv, "%04x\t\t%04x\n", tfirst, rfirst); if (rfirst + diff > max) max = rfirst + diff; @@ -2507,7 +2507,7 @@ Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl) p = SvPV(pat, plen); pm->op_pmflags |= PMf_SKIPWHITE; } - pm->op_pmregexp = CALLREGCOMP(p, p + plen, pm); + pm->op_pmregexp = CALLREGCOMP(aTHX_ p, p + plen, pm); if (strEQ("\\s+", pm->op_pmregexp->precomp)) pm->op_pmflags |= PMf_WHITE; op_free(expr); @@ -2723,7 +2723,7 @@ Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *id, OP *arg) GV *gv; if (id->op_type != OP_CONST) - croak("Module name must be constant"); + Perl_croak(aTHX_ "Module name must be constant"); veop = Nullop; @@ -2738,7 +2738,7 @@ Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *id, OP *arg) OP *meth; if (version->op_type != OP_CONST || !SvNIOK(vesv)) - croak("Version number must be constant number"); + Perl_croak(aTHX_ "Version number must be constant number"); /* Make copy of id so we don't free it twice */ pack = newSVOP(OP_CONST, 0, newSVsv(((SVOP*)id)->op_sv)); @@ -2834,7 +2834,7 @@ Perl_newSLICEOP(pTHX_ I32 flags, OP *subscript, OP *listval) } STATIC I32 -list_assignment(pTHX_ register OP *o) +S_list_assignment(pTHX_ register OP *o) { if (!o) return TRUE; @@ -3092,7 +3092,7 @@ Perl_newLOGOP(pTHX_ I32 type, I32 flags, OP *first, OP *other) } STATIC OP * -new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp) +S_new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp) { dTHR; LOGOP *logop; @@ -3121,7 +3121,7 @@ new_logop(pTHX_ 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", + Perl_warner(aTHX_ WARN_PRECEDENCE, "Probable precedence problem on %s", PL_op_desc[type]); if ((type == OP_AND) == (SvTRUE(((SVOP*)first)->op_sv))) { op_free(first); @@ -3163,7 +3163,7 @@ new_logop(pTHX_ I32 type, I32 flags, OP** firstp, OP** otherp) if (warnop) { line_t oldline = PL_curcop->cop_line; PL_curcop->cop_line = PL_copline; - warner(WARN_UNSAFE, + Perl_warner(aTHX_ WARN_UNSAFE, "Value of %s%s can be \"0\"; test with defined()", PL_op_desc[warnop], ((warnop == OP_READLINE || warnop == OP_GLOB) @@ -3469,7 +3469,7 @@ Perl_newFOROP(pTHX_ I32 flags,char *label,line_t forline,OP *sv,OP *expr,OP *blo sv = Nullop; } else - croak("Can't use %s for loop variable", PL_op_desc[sv->op_type]); + Perl_croak(aTHX_ "Can't use %s for loop variable", PL_op_desc[sv->op_type]); } else { #ifdef USE_THREADS @@ -3574,10 +3574,10 @@ Perl_cv_undef(pTHX_ CV *cv) if (!CvXSUB(cv) && CvROOT(cv)) { #ifdef USE_THREADS if (CvDEPTH(cv) || (CvOWNER(cv) && CvOWNER(cv) != thr)) - croak("Can't undef active subroutine"); + Perl_croak(aTHX_ "Can't undef active subroutine"); #else if (CvDEPTH(cv)) - croak("Can't undef active subroutine"); + Perl_croak(aTHX_ "Can't undef active subroutine"); #endif /* USE_THREADS */ ENTER; @@ -3664,7 +3664,7 @@ cv_dump(CV *cv) #endif /* DEBUG_CLOSURES */ STATIC CV * -cv_clone2(pTHX_ CV *proto, CV *outside) +S_cv_clone2(pTHX_ CV *proto, CV *outside) { dTHR; AV* av; @@ -3738,7 +3738,7 @@ cv_clone2(pTHX_ CV *proto, CV *outside) if (!off) PL_curpad[ix] = SvREFCNT_inc(ppad[ix]); else if (off != ix) - croak("panic: cv_clone: %s", name); + Perl_croak(aTHX_ "panic: cv_clone: %s", name); } else { /* our own lexical */ SV* sv; @@ -3816,15 +3816,15 @@ Perl_cv_ckproto(pTHX_ CV *cv, GV *gv, char *p) gv_efullname3(name = sv_newmortal(), gv, Nullch); sv_setpv(msg, "Prototype mismatch:"); if (name) - sv_catpvf(msg, " sub %_", name); + Perl_sv_catpvf(aTHX_ msg, " sub %_", name); if (SvPOK(cv)) - sv_catpvf(msg, " (%s)", SvPVX(cv)); + Perl_sv_catpvf(aTHX_ msg, " (%s)", SvPVX(cv)); sv_catpv(msg, " vs "); if (p) - sv_catpvf(msg, "(%s)", p); + Perl_sv_catpvf(aTHX_ msg, "(%s)", p); else sv_catpv(msg, "none"); - warn("%_", msg); + Perl_warn(aTHX_ "%_", msg); } } @@ -3895,7 +3895,7 @@ Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block) maximum a prototype before. */ if (SvTYPE(gv) > SVt_NULL) { if (!SvPOK((SV*)gv) && !(SvIOK((SV*)gv) && SvIVX((SV*)gv) == -1)) - warn("Runaway prototype"); + Perl_warn(aTHX_ "Runaway prototype"); cv_ckproto((CV*)gv, NULL, ps); } if (ps) @@ -3923,7 +3923,7 @@ Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block) } /* ahem, death to those who redefine active sort subs */ if (PL_curstackinfo->si_type == PERLSI_SORT && PL_sortcop == CvSTART(cv)) - croak("Can't redefine active sort subroutine %s", name); + Perl_croak(aTHX_ "Can't redefine active sort subroutine %s", name); if(const_sv = cv_const_sv(cv)) const_changed = sv_cmp(const_sv, op_const_sv(block, Nullcv)); if ((const_sv && const_changed) || ckWARN(WARN_REDEFINE) @@ -3933,7 +3933,7 @@ Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block) "autouse"))) { line_t oldline = PL_curcop->cop_line; PL_curcop->cop_line = PL_copline; - warner(WARN_REDEFINE, + Perl_warner(aTHX_ WARN_REDEFINE, const_sv ? "Constant subroutine %s redefined" : "Subroutine %s redefined", name); PL_curcop->cop_line = oldline; @@ -3985,11 +3985,11 @@ Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block) char *not_safe = "BEGIN not safe after errors--compilation aborted"; if (PL_in_eval & EVAL_KEEPERR) - croak(not_safe); + Perl_croak(aTHX_ not_safe); else { /* force display of errors found but not reported */ sv_catpv(ERRSV, not_safe); - croak("%s", SvPVx(ERRSV, n_a)); + Perl_croak(aTHX_ "%s", SvPVx(ERRSV, n_a)); } } } @@ -4055,7 +4055,7 @@ Perl_newSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *block) CV *cv; HV *hv; - sv_setpvf(sv, "%_:%ld-%ld", + Perl_sv_setpvf(aTHX_ sv, "%_:%ld-%ld", GvSV(PL_curcop->cop_filegv), (long)PL_subline, (long)PL_curcop->cop_line); gv_efullname3(tmpstr, gv, Nullch); @@ -4164,7 +4164,7 @@ Perl_newXS(pTHX_ char *name, XSUBADDR_t subaddr, char *filename) line_t oldline = PL_curcop->cop_line; if (PL_copline != NOLINE) PL_curcop->cop_line = PL_copline; - warner(WARN_REDEFINE, "Subroutine %s redefined",name); + Perl_warner(aTHX_ WARN_REDEFINE, "Subroutine %s redefined",name); PL_curcop->cop_line = oldline; } SvREFCNT_dec(cv); @@ -4245,7 +4245,7 @@ Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block) line_t oldline = PL_curcop->cop_line; PL_curcop->cop_line = PL_copline; - warner(WARN_REDEFINE, "Format %s redefined",name); + Perl_warner(aTHX_ WARN_REDEFINE, "Format %s redefined",name); PL_curcop->cop_line = oldline; } SvREFCNT_dec(cv); @@ -4306,7 +4306,7 @@ Perl_oopsAV(pTHX_ OP *o) break; default: - warn("oops: oopsAV"); + Perl_warn(aTHX_ "oops: oopsAV"); break; } return o; @@ -4330,7 +4330,7 @@ Perl_oopsHV(pTHX_ OP *o) break; default: - warn("oops: oopsHV"); + Perl_warn(aTHX_ "oops: oopsHV"); break; } return o; @@ -4369,7 +4369,7 @@ Perl_newHVREF(pTHX_ OP *o) OP * Perl_oopsCV(pTHX_ OP *o) { - croak("NOT IMPL LINE %d",__LINE__); + Perl_croak(aTHX_ "NOT IMPL LINE %d",__LINE__); /* STUB */ return o; } @@ -4398,7 +4398,7 @@ Perl_newSVREF(pTHX_ OP *o) /* Check routines. */ OP * -ck_anoncode(OP *o) +Perl_ck_anoncode(pTHX_ OP *o) { PADOFFSET ix; SV* name; @@ -4418,14 +4418,14 @@ ck_anoncode(OP *o) } OP * -ck_bitop(OP *o) +Perl_ck_bitop(pTHX_ OP *o) { o->op_private = PL_hints; return o; } OP * -ck_concat(OP *o) +Perl_ck_concat(pTHX_ OP *o) { if (cUNOPo->op_first->op_type == OP_CONCAT) o->op_flags |= OPf_STACKED; @@ -4433,7 +4433,7 @@ ck_concat(OP *o) } OP * -ck_spair(OP *o) +Perl_ck_spair(pTHX_ OP *o) { if (o->op_flags & OPf_KIDS) { OP* newop; @@ -4458,7 +4458,7 @@ ck_spair(OP *o) } OP * -ck_delete(OP *o) +Perl_ck_delete(pTHX_ OP *o) { o = ck_fun(o); o->op_private = 0; @@ -4467,7 +4467,7 @@ ck_delete(OP *o) if (kid->op_type == OP_HSLICE) o->op_private |= OPpSLICE; else if (kid->op_type != OP_HELEM) - croak("%s argument is not a HASH element or slice", + Perl_croak(aTHX_ "%s argument is not a HASH element or slice", PL_op_desc[o->op_type]); null(kid); } @@ -4475,7 +4475,7 @@ ck_delete(OP *o) } OP * -ck_eof(OP *o) +Perl_ck_eof(pTHX_ OP *o) { I32 type = o->op_type; @@ -4491,7 +4491,7 @@ ck_eof(OP *o) } OP * -ck_eval(OP *o) +Perl_ck_eval(pTHX_ OP *o) { PL_hints |= HINT_BLOCK_SCOPE; if (o->op_flags & OPf_KIDS) { @@ -4534,7 +4534,7 @@ ck_eval(OP *o) } OP * -ck_exec(OP *o) +Perl_ck_exec(pTHX_ OP *o) { OP *kid; if (o->op_flags & OPf_STACKED) { @@ -4549,13 +4549,13 @@ ck_exec(OP *o) } OP * -ck_exists(OP *o) +Perl_ck_exists(pTHX_ OP *o) { o = ck_fun(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", PL_op_desc[o->op_type]); + Perl_croak(aTHX_ "%s argument is not a HASH element", PL_op_desc[o->op_type]); null(kid); } return o; @@ -4563,7 +4563,7 @@ ck_exists(OP *o) #if 0 OP * -ck_gvconst(register OP *o) +Perl_ck_gvconst(pTHX_ register OP *o) { o = fold_constants(o); if (o->op_type == OP_CONST) @@ -4573,7 +4573,7 @@ ck_gvconst(register OP *o) #endif OP * -ck_rvconst(register OP *o) +Perl_ck_rvconst(pTHX_ register OP *o) { dTHR; SVOP *kid = (SVOP*)cUNOPo->op_first; @@ -4620,7 +4620,7 @@ ck_rvconst(register OP *o) break; } if (badtype) - croak("Constant is not %s reference", badtype); + Perl_croak(aTHX_ "Constant is not %s reference", badtype); return o; } name = SvPV(kidsv, n_a); @@ -4638,7 +4638,7 @@ ck_rvconst(register OP *o) break; } if (badthing) - croak( + Perl_croak(aTHX_ "Can't use bareword (\"%s\") as %s ref while \"strict refs\" in use", name, badthing); } @@ -4674,7 +4674,7 @@ ck_rvconst(register OP *o) } OP * -ck_ftst(OP *o) +Perl_ck_ftst(pTHX_ OP *o) { dTHR; I32 type = o->op_type; @@ -4705,7 +4705,7 @@ ck_ftst(OP *o) } OP * -ck_fun(OP *o) +Perl_ck_fun(pTHX_ OP *o) { dTHR; register OP *kid; @@ -4764,7 +4764,7 @@ ck_fun(OP *o) OP *newop = newAVREF(newGVOP(OP_GV, 0, gv_fetchpv(name, TRUE, SVt_PVAV) )); if (ckWARN(WARN_SYNTAX)) - warner(WARN_SYNTAX, + Perl_warner(aTHX_ WARN_SYNTAX, "Array @%s missing the @ in argument %ld of %s()", name, (long)numargs, PL_op_desc[type]); op_free(kid); @@ -4784,7 +4784,7 @@ ck_fun(OP *o) OP *newop = newHVREF(newGVOP(OP_GV, 0, gv_fetchpv(name, TRUE, SVt_PVHV) )); if (ckWARN(WARN_SYNTAX)) - warner(WARN_SYNTAX, + Perl_warner(aTHX_ WARN_SYNTAX, "Hash %%%s missing the %% in argument %ld of %s()", name, (long)numargs, PL_op_desc[type]); op_free(kid); @@ -4879,7 +4879,7 @@ ck_fun(OP *o) } OP * -ck_glob(OP *o) +Perl_ck_glob(pTHX_ OP *o) { GV *gv; @@ -4912,7 +4912,7 @@ ck_glob(OP *o) } OP * -ck_grep(OP *o) +Perl_ck_grep(pTHX_ OP *o) { LOGOP *gwop; OP *kid; @@ -4941,7 +4941,7 @@ ck_grep(OP *o) return o; kid = cLISTOPo->op_first->op_sibling; if (kid->op_type != OP_NULL) - croak("panic: ck_grep"); + Perl_croak(aTHX_ "panic: ck_grep"); kid = kUNOP->op_first; gwop->op_type = type; @@ -4963,7 +4963,7 @@ ck_grep(OP *o) } OP * -ck_index(OP *o) +Perl_ck_index(pTHX_ OP *o) { if (o->op_flags & OPf_KIDS) { OP *kid = cLISTOPo->op_first->op_sibling; /* get past pushmark */ @@ -4976,21 +4976,21 @@ ck_index(OP *o) } OP * -ck_lengthconst(OP *o) +Perl_ck_lengthconst(pTHX_ OP *o) { /* XXX length optimization goes here */ return ck_fun(o); } OP * -ck_lfun(OP *o) +Perl_ck_lfun(pTHX_ OP *o) { OPCODE type = o->op_type; return modkids(ck_fun(o), type); } OP * -ck_defined(OP *o) /* 19990527 MJD */ +Perl_ck_defined(pTHX_ OP *o) /* 19990527 MJD */ { dTHR; if (ckWARN(WARN_DEPRECATED)) { @@ -4998,13 +4998,13 @@ ck_defined(OP *o) /* 19990527 MJD */ case OP_RV2AV: case OP_PADAV: case OP_AASSIGN: /* Is this a good idea? */ - warner(WARN_DEPRECATED, "defined(@array) is deprecated (and not really meaningful)"); - warner(WARN_DEPRECATED, "(Maybe you should just omit the defined()?)\n"); + Perl_warner(aTHX_ WARN_DEPRECATED, "defined(@array) is deprecated (and not really meaningful)"); + Perl_warner(aTHX_ WARN_DEPRECATED, "(Maybe you should just omit the defined()?)\n"); break; case OP_RV2HV: case OP_PADHV: - warner(WARN_DEPRECATED, "defined(%hash) is deprecated (and not really meaningful)"); - warner(WARN_DEPRECATED, "(Maybe you should just omit the defined()?)\n"); + Perl_warner(aTHX_ WARN_DEPRECATED, "defined(%hash) is deprecated (and not really meaningful)"); + Perl_warner(aTHX_ WARN_DEPRECATED, "(Maybe you should just omit the defined()?)\n"); break; default: /* no warning */ @@ -5015,14 +5015,14 @@ ck_defined(OP *o) /* 19990527 MJD */ } OP * -ck_rfun(OP *o) +Perl_ck_rfun(pTHX_ OP *o) { OPCODE type = o->op_type; return refkids(ck_fun(o), type); } OP * -ck_listiob(OP *o) +Perl_ck_listiob(pTHX_ OP *o) { register OP *kid; @@ -5060,7 +5060,7 @@ ck_listiob(OP *o) } OP * -ck_fun_locale(OP *o) +Perl_ck_fun_locale(pTHX_ OP *o) { o = ck_fun(o); @@ -5074,7 +5074,7 @@ ck_fun_locale(OP *o) } OP * -ck_scmp(OP *o) +Perl_ck_scmp(pTHX_ OP *o) { o->op_private = 0; #ifdef USE_LOCALE @@ -5086,20 +5086,20 @@ ck_scmp(OP *o) } OP * -ck_match(OP *o) +Perl_ck_match(pTHX_ OP *o) { o->op_private |= OPpRUNTIME; return o; } OP * -ck_null(OP *o) +Perl_ck_null(pTHX_ OP *o) { return o; } OP * -ck_repeat(OP *o) +Perl_ck_repeat(pTHX_ OP *o) { if (cBINOPo->op_first->op_flags & OPf_PARENS) { o->op_private |= OPpREPEAT_DOLIST; @@ -5111,7 +5111,7 @@ ck_repeat(OP *o) } OP * -ck_require(OP *o) +Perl_ck_require(pTHX_ OP *o) { if (o->op_flags & OPf_KIDS) { /* Shall we supply missing .pm? */ SVOP *kid = (SVOP*)cUNOPo->op_first; @@ -5133,16 +5133,16 @@ ck_require(OP *o) #if 0 OP * -ck_retarget(OP *o) +Perl_ck_retarget(pTHX_ OP *o) { - croak("NOT IMPL LINE %d",__LINE__); + Perl_croak(aTHX_ "NOT IMPL LINE %d",__LINE__); /* STUB */ return o; } #endif OP * -ck_select(OP *o) +Perl_ck_select(pTHX_ OP *o) { OP* kid; if (o->op_flags & OPf_KIDS) { @@ -5162,7 +5162,7 @@ ck_select(OP *o) } OP * -ck_shift(OP *o) +Perl_ck_shift(pTHX_ OP *o) { I32 type = o->op_type; @@ -5191,7 +5191,7 @@ ck_shift(OP *o) } OP * -ck_sort(OP *o) +Perl_ck_sort(pTHX_ OP *o) { o->op_private = 0; #ifdef USE_LOCALE @@ -5243,7 +5243,7 @@ ck_sort(OP *o) } STATIC void -simplify_sort(pTHX_ OP *o) +S_simplify_sort(pTHX_ OP *o) { dTHR; register OP *kid = cLISTOPo->op_first->op_sibling; /* get past pushmark */ @@ -5305,7 +5305,7 @@ simplify_sort(pTHX_ OP *o) } OP * -ck_split(OP *o) +Perl_ck_split(pTHX_ OP *o) { register OP *kid; @@ -5314,7 +5314,7 @@ ck_split(OP *o) kid = cLISTOPo->op_first; if (kid->op_type != OP_NULL) - croak("panic: ck_split"); + Perl_croak(aTHX_ "panic: ck_split"); kid = kid->op_sibling; op_free(cLISTOPo->op_first); cLISTOPo->op_first = kid; @@ -5356,7 +5356,7 @@ ck_split(OP *o) } OP * -ck_subr(OP *o) +Perl_ck_subr(pTHX_ OP *o) { dTHR; OP *prev = ((cUNOPo->op_first->op_sibling) @@ -5503,7 +5503,7 @@ ck_subr(OP *o) continue; default: oops: - croak("Malformed prototype for %s: %s", + Perl_croak(aTHX_ "Malformed prototype for %s: %s", gv_ename(namegv), SvPV((SV*)cv, n_a)); } } @@ -5520,14 +5520,14 @@ ck_subr(OP *o) } OP * -ck_svconst(OP *o) +Perl_ck_svconst(pTHX_ OP *o) { SvREADONLY_on(cSVOPo->op_sv); return o; } OP * -ck_trunc(OP *o) +Perl_ck_trunc(pTHX_ OP *o) { if (o->op_flags & OPf_KIDS) { SVOP *kid = (SVOP*)cUNOPo->op_first; @@ -5682,8 +5682,8 @@ Perl_peep(pTHX_ register OP *o) line_t oldline = PL_curcop->cop_line; PL_curcop->cop_line = ((COP*)o->op_next)->cop_line; - warner(WARN_SYNTAX, "Statement unlikely to be reached"); - warner(WARN_SYNTAX, "(Maybe you meant system() when you said exec()?)\n"); + Perl_warner(aTHX_ WARN_SYNTAX, "Statement unlikely to be reached"); + Perl_warner(aTHX_ WARN_SYNTAX, "(Maybe you meant system() when you said exec()?)\n"); PL_curcop->cop_line = oldline; } } @@ -5714,12 +5714,12 @@ Perl_peep(pTHX_ register OP *o) key = SvPV(*svp, keylen); indsvp = hv_fetch(GvHV(*fields), key, keylen, FALSE); if (!indsvp) { - croak("No such field \"%s\" in variable %s of type %s", + Perl_croak(aTHX_ "No such field \"%s\" in variable %s of type %s", key, SvPV(lexname, n_a), HvNAME(SvSTASH(lexname))); } ind = SvIV(*indsvp); if (ind < 1) - croak("Bad index while coercing array into hash"); + Perl_croak(aTHX_ "Bad index while coercing array into hash"); rop->op_type = OP_RV2AV; rop->op_ppaddr = PL_ppaddr[OP_RV2AV]; o->op_type = OP_AELEM; diff --git a/opcode.h b/opcode.h index c4bd9ae..370fb6a 100644 --- a/opcode.h +++ b/opcode.h @@ -1073,7 +1073,7 @@ START_EXTERN_C #undef PERL_CKDEF #undef PERL_PPDEF #define PERL_CKDEF(s) OP *s (pTHX_ OP *o); -#define PERL_PPDEF(s) OP *s (pTHX_ ARGSproto); +#define PERL_PPDEF(s) OP *s (pTHX); #include "pp_proto.h" @@ -1082,9 +1082,9 @@ END_EXTERN_C #endif /* PERL_OBJECT */ #ifndef DOINIT -EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto); +EXT OP * (CPERLscope(*PL_ppaddr)[])(pTHX); #else -EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto) = { +EXT OP * (CPERLscope(*PL_ppaddr)[])(pTHX) = { Perl_pp_null, Perl_pp_stub, Perl_pp_scalar, @@ -1437,9 +1437,9 @@ EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto) = { #endif #ifndef DOINIT -EXT OP * (CPERLscope(*PL_check)[]) (OP *op); +EXT OP * (CPERLscope(*PL_check)[]) (pTHX_ OP *op); #else -EXT OP * (CPERLscope(*PL_check)[]) (OP *op) = { +EXT OP * (CPERLscope(*PL_check)[]) (pTHX_ OP *op) = { Perl_ck_null, /* null */ Perl_ck_null, /* stub */ Perl_ck_fun, /* scalar */ diff --git a/opcode.pl b/opcode.pl index b9b0b8a..98e18da 100755 --- a/opcode.pl +++ b/opcode.pl @@ -83,7 +83,7 @@ START_EXTERN_C #undef PERL_CKDEF #undef PERL_PPDEF #define PERL_CKDEF(s) OP *s (pTHX_ OP *o); -#define PERL_PPDEF(s) OP *s (pTHX_ ARGSproto); +#define PERL_PPDEF(s) OP *s (pTHX); #include "pp_proto.h" @@ -92,13 +92,13 @@ END # Emit function declarations. #for (sort keys %ckname) { -# print "OP *\t", &tab(3,$_),"(OP* o);\n"; +# print "OP *\t", &tab(3,$_),"(pTHX_ OP* o);\n"; #} # #print "\n"; # #for (@ops) { -# print "OP *\t", &tab(3, "pp_$_"), "(ARGSproto);\n"; +# print "OP *\t", &tab(3, "pp_$_"), "(pTHX);\n"; #} # Emit ppcode switch array. @@ -109,9 +109,9 @@ END_EXTERN_C #endif /* PERL_OBJECT */ #ifndef DOINIT -EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto); +EXT OP * (CPERLscope(*PL_ppaddr)[])(pTHX); #else -EXT OP * (CPERLscope(*PL_ppaddr)[])(ARGSproto) = { +EXT OP * (CPERLscope(*PL_ppaddr)[])(pTHX) = { END for (@ops) { @@ -128,9 +128,9 @@ END print < 0) - PL_exitlist[PL_exitlistlen].fn(PERL_OBJECT_THIS_ PL_exitlist[PL_exitlistlen].ptr); + PL_exitlist[PL_exitlistlen].fn(aTHX_ PL_exitlist[PL_exitlistlen].ptr); Safefree(PL_exitlist); @@ -449,16 +452,16 @@ perl_destruct(register PerlInterpreter *sv_interp) FREETMPS; if (destruct_level >= 2) { if (PL_scopestack_ix != 0) - warn("Unbalanced scopes: %ld more ENTERs than LEAVEs\n", + Perl_warn(aTHX_ "Unbalanced scopes: %ld more ENTERs than LEAVEs\n", (long)PL_scopestack_ix); if (PL_savestack_ix != 0) - warn("Unbalanced saves: %ld more saves than restores\n", + Perl_warn(aTHX_ "Unbalanced saves: %ld more saves than restores\n", (long)PL_savestack_ix); if (PL_tmps_floor != -1) - warn("Unbalanced tmps: %ld more allocs than frees\n", + Perl_warn(aTHX_ "Unbalanced tmps: %ld more allocs than frees\n", (long)PL_tmps_floor + 1); if (cxstack_ix != -1) - warn("Unbalanced context: %ld more PUSHes than POPs\n", + Perl_warn(aTHX_ "Unbalanced context: %ld more PUSHes than POPs\n", (long)cxstack_ix + 1); } @@ -488,7 +491,7 @@ perl_destruct(register PerlInterpreter *sv_interp) hent = array[0]; for (;;) { if (hent) { - warn("Unbalanced string table refcount: (%d) for \"%s\"", + Perl_warn(aTHX_ "Unbalanced string table refcount: (%d) for \"%s\"", HeVAL(hent) - Nullsv, HeKEY(hent)); HeVAL(hent) = Nullsv; hent = HeNEXT(hent); @@ -503,7 +506,7 @@ perl_destruct(register PerlInterpreter *sv_interp) SvREFCNT_dec(PL_strtab); if (PL_sv_count != 0) - warn("Scalars leaked: %ld\n", (long)PL_sv_count); + Perl_warn(aTHX_ "Scalars leaked: %ld\n", (long)PL_sv_count); sv_free_arenas(); @@ -562,14 +565,16 @@ perl_destruct(register PerlInterpreter *sv_interp) } void -perl_free(PerlInterpreter *sv_interp) +perl_free(PerlInterpreter *my_perl) { #ifdef PERL_OBJECT Safefree(this); #else - if (!(PL_curinterp = sv_interp)) +# if !defined(PERL_IMPLICIT_CONTEXT) + if (!(PL_curinterp = my_perl)) return; - Safefree(sv_interp); +# endif + Safefree(my_perl); #endif } @@ -583,22 +588,25 @@ Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr) } int -perl_parse(PerlInterpreter *sv_interp, XSINIT_t xsinit, int argc, char **argv, char **env) +perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char **argv, char **env) { dTHR; I32 oldscope; int ret; +#ifdef USE_THREADS + dTHX; +#endif #ifdef SETUID_SCRIPTS_ARE_SECURE_NOW #ifdef IAMSUID #undef IAMSUID - croak("suidperl is no longer needed since the kernel can now execute\n\ + Perl_croak(aTHX_ "suidperl is no longer needed since the kernel can now execute\n\ setuid perl scripts securely.\n"); #endif #endif -#ifndef PERL_OBJECT - if (!(PL_curinterp = sv_interp)) +#if !defined(PERL_OBJECT) && !defined(PERL_IMPLICIT_CONTEXT) + if (!(PL_curinterp = my_perl)) return 255; #endif @@ -638,7 +646,7 @@ setuid perl scripts securely.\n"); oldscope = PL_scopestack_ix; PL_dowarn = G_WARN_OFF; - CALLPROTECT(&ret, FUNC_NAME_TO_PTR(parse_body), env, xsinit); + CALLPROTECT(aTHX_ &ret, FUNC_NAME_TO_PTR(S_parse_body), env, xsinit); switch (ret) { case 0: return 0; @@ -662,7 +670,7 @@ setuid perl scripts securely.\n"); } STATIC void * -parse_body(pTHX_ va_list args) +S_parse_body(pTHX_ va_list args) { dTHR; int argc = PL_origargc; @@ -730,10 +738,10 @@ parse_body(pTHX_ va_list args) case 'e': if (PL_euid != PL_uid || PL_egid != PL_gid) - croak("No -e allowed in setuid scripts"); + Perl_croak(aTHX_ "No -e allowed in setuid scripts"); if (!PL_e_script) { PL_e_script = newSVpvn("",0); - filter_add(read_e_script, NULL); + filter_add(S_read_e_script, NULL); } if (*++s) sv_catpv(PL_e_script, s); @@ -742,7 +750,7 @@ parse_body(pTHX_ va_list args) argc--,argv++; } else - croak("No code specified for -e"); + Perl_croak(aTHX_ "No code specified for -e"); sv_catpv(PL_e_script, "\n"); break; @@ -801,16 +809,16 @@ parse_body(pTHX_ va_list args) sv_catpv(PL_Sv,"\" Locally applied patches:\\n\","); for (i = 1; i <= LOCAL_PATCH_COUNT; i++) { if (PL_localpatches[i]) - sv_catpvf(PL_Sv,"q\" \t%s\n\",",PL_localpatches[i]); + Perl_sv_catpvf(aTHX_ PL_Sv,"q\" \t%s\n\",",PL_localpatches[i]); } } #endif - sv_catpvf(PL_Sv,"\" Built under %s\\n\"",OSNAME); + Perl_sv_catpvf(aTHX_ PL_Sv,"\" Built under %s\\n\"",OSNAME); #ifdef __DATE__ # ifdef __TIME__ - sv_catpvf(PL_Sv,",\" Compiled at %s %s\\n\"",__DATE__,__TIME__); + Perl_sv_catpvf(aTHX_ PL_Sv,",\" Compiled at %s %s\\n\"",__DATE__,__TIME__); # else - sv_catpvf(PL_Sv,",\" Compiled on %s\\n\"",__DATE__); + Perl_sv_catpvf(aTHX_ PL_Sv,",\" Compiled on %s\\n\"",__DATE__); # endif #endif sv_catpv(PL_Sv, "; \ @@ -853,7 +861,7 @@ print \" \\@INC:\\n @INC\\n\";"); s--; /* FALL THROUGH */ default: - croak("Unrecognized switch: -%s (-h will show valid options)",s); + Perl_croak(aTHX_ "Unrecognized switch: -%s (-h will show valid options)",s); } } switch_end: @@ -879,7 +887,7 @@ print \" \\@INC:\\n @INC\\n\";"); if (!*s) break; if (!strchr("DIMUdmw", *s)) - croak("Illegal switch in PERL5OPT: -%c", *s); + Perl_croak(aTHX_ "Illegal switch in PERL5OPT: -%c", *s); s = moreswitches(s); } } @@ -937,7 +945,7 @@ print \" \\@INC:\\n @INC\\n\";"); boot_core_UNIVERSAL(); if (xsinit) - (*xsinit)(PERL_OBJECT_THIS); /* in case linked C routines want magical variables */ + (*xsinit)(aTHX); /* in case linked C routines want magical variables */ #if defined(VMS) || defined(WIN32) || defined(DJGPP) init_os_extras(); #endif @@ -957,9 +965,9 @@ print \" \\@INC:\\n @INC\\n\";"); PL_error_count = 0; if (yyparse() || PL_error_count) { if (PL_minus_c) - croak("%s had compilation errors.\n", PL_origfilename); + Perl_croak(aTHX_ "%s had compilation errors.\n", PL_origfilename); else { - croak("Execution of %s aborted due to compilation errors.\n", + Perl_croak(aTHX_ "Execution of %s aborted due to compilation errors.\n", PL_origfilename); } } @@ -995,21 +1003,24 @@ print \" \\@INC:\\n @INC\\n\";"); } int -perl_run(PerlInterpreter *sv_interp) +perl_run(PerlInterpreter *my_perl) { dTHR; I32 oldscope; int ret; +#ifdef USE_THREADS + dTHX; +#endif -#ifndef PERL_OBJECT - if (!(PL_curinterp = sv_interp)) +#if !defined(PERL_OBJECT) && !defined(PERL_IMPLICIT_CONTEXT) + if (!(PL_curinterp = my_perl)) return 255; #endif oldscope = PL_scopestack_ix; redo_body: - CALLPROTECT(&ret, FUNC_NAME_TO_PTR(run_body), oldscope); + CALLPROTECT(aTHX_ &ret, FUNC_NAME_TO_PTR(S_run_body), oldscope); switch (ret) { case 1: cxstack_ix = -1; /* start context stack again */ @@ -1042,7 +1053,7 @@ perl_run(PerlInterpreter *sv_interp) } STATIC void * -run_body(pTHX_ va_list args) +S_run_body(pTHX_ va_list args) { dTHR; I32 oldscope = va_arg(args, I32); @@ -1071,12 +1082,12 @@ run_body(pTHX_ va_list args) if (PL_restartop) { PL_op = PL_restartop; PL_restartop = 0; - CALLRUNOPS(); + CALLRUNOPS(aTHX); } else if (PL_main_start) { CvDEPTH(PL_main_cv) = 1; PL_op = PL_main_start; - CALLRUNOPS(); + CALLRUNOPS(aTHX); } return NULL; @@ -1181,7 +1192,7 @@ Perl_call_method(pTHX_ const char *methname, I32 flags) PL_op = &myop; XPUSHs(sv_2mortal(newSVpv(methname,0))); PUTBACK; - pp_method(ARGS); + pp_method(); if(PL_op == &myop) PL_op = Nullop; return call_sv(*PL_stack_sp--, flags); @@ -1262,7 +1273,7 @@ Perl_call_sv(pTHX_ SV *sv, I32 flags) PL_markstack_ptr++; redo_body: - CALLPROTECT(&ret, FUNC_NAME_TO_PTR(call_body), (OP*)&myop, FALSE); + CALLPROTECT(aTHX_ &ret, FUNC_NAME_TO_PTR(S_call_body), (OP*)&myop, FALSE); switch (ret) { case 0: retval = PL_stack_sp - (PL_stack_base + oldmark); @@ -1277,7 +1288,7 @@ Perl_call_sv(pTHX_ SV *sv, I32 flags) PL_curstash = PL_defstash; FREETMPS; if (PL_statusvalue) - croak("Callback called exit"); + Perl_croak(aTHX_ "Callback called exit"); my_exit_jump(); /* NOTREACHED */ case 3: @@ -1322,7 +1333,7 @@ Perl_call_sv(pTHX_ SV *sv, I32 flags) } STATIC void * -call_body(pTHX_ va_list args) +S_call_body(pTHX_ va_list args) { OP *myop = va_arg(args, OP*); int is_eval = va_arg(args, int); @@ -1332,18 +1343,18 @@ call_body(pTHX_ va_list args) } STATIC void -call_xbody(pTHX_ OP *myop, int is_eval) +S_call_xbody(pTHX_ OP *myop, int is_eval) { dTHR; if (PL_op == myop) { if (is_eval) - PL_op = pp_entereval(ARGS); + PL_op = Perl_pp_entereval(aTHX); else - PL_op = pp_entersub(ARGS); + PL_op = Perl_pp_entersub(aTHX); } if (PL_op) - CALLRUNOPS(); + CALLRUNOPS(aTHX); } /* Eval a string. The G_EVAL flag is always assumed. */ @@ -1384,7 +1395,7 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags) myop.op_flags |= OPf_SPECIAL; redo_body: - CALLPROTECT(&ret, FUNC_NAME_TO_PTR(call_body), (OP*)&myop, TRUE); + CALLPROTECT(aTHX_ &ret, FUNC_NAME_TO_PTR(S_call_body), (OP*)&myop, TRUE); switch (ret) { case 0: retval = PL_stack_sp - (PL_stack_base + oldmark); @@ -1399,7 +1410,7 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags) PL_curstash = PL_defstash; FREETMPS; if (PL_statusvalue) - croak("Callback called exit"); + Perl_croak(aTHX_ "Callback called exit"); my_exit_jump(); /* NOTREACHED */ case 3: @@ -1444,7 +1455,7 @@ Perl_eval_pv(pTHX_ const char *p, I32 croak_on_error) if (croak_on_error && SvTRUE(ERRSV)) { STRLEN n_a; - croak(SvPVx(ERRSV, n_a)); + Perl_croak(aTHX_ SvPVx(ERRSV, n_a)); } return sv; @@ -1478,7 +1489,7 @@ Perl_magicname(pTHX_ char *sym, char *name, I32 namlen) } STATIC void -usage(pTHX_ char *name) /* XXX move this out into a module ? */ +S_usage(pTHX_ char *name) /* XXX move this out into a module ? */ { /* This message really ought to be max 23 lines. * Removed -h because the user already knows that opton. Others? */ @@ -1558,7 +1569,7 @@ Perl_moreswitches(pTHX_ char *s) forbid_setid("-d"); s++; if (*s == ':' || *s == '=') { - my_setenv("PERL5DB", form("use Devel::%s;", ++s)); + my_setenv("PERL5DB", Perl_form(aTHX_ "use Devel::%s;", ++s)); s += strlen(s); } if (!PL_perldb) { @@ -1582,7 +1593,7 @@ Perl_moreswitches(pTHX_ char *s) } PL_debug |= 0x80000000; #else - warn("Recompile perl with -DDEBUGGING to use -D switch\n"); + Perl_warn(aTHX_ "Recompile perl with -DDEBUGGING to use -D switch\n"); for (s++; isALNUM(*s); s++) ; #endif /*SUPPRESS 530*/ @@ -1616,7 +1627,7 @@ Perl_moreswitches(pTHX_ char *s) s = e; } else - croak("No space allowed after -I"); + Perl_croak(aTHX_ "No space allowed after -I"); return s; case 'l': PL_minus_l = TRUE; @@ -1659,7 +1670,7 @@ Perl_moreswitches(pTHX_ char *s) sv_catpv(sv, start); if (*(start-1) == 'm') { if (*s != '\0') - croak("Can't use '%c' after -mname", *s); + Perl_croak(aTHX_ "Can't use '%c' after -mname", *s); sv_catpv( sv, " ()"); } } else { @@ -1674,7 +1685,7 @@ Perl_moreswitches(pTHX_ char *s) av_push(PL_preambleav, sv); } else - croak("No space allowed after -%c", *(s-1)); + Perl_croak(aTHX_ "No space allowed after -%c", *(s-1)); return s; case 'n': PL_minus_n = TRUE; @@ -1691,7 +1702,7 @@ Perl_moreswitches(pTHX_ char *s) return s; case 'T': if (!PL_tainting) - croak("Too late for \"-T\" option"); + Perl_croak(aTHX_ "Too late for \"-T\" option"); s++; return s; case 'u': @@ -1799,7 +1810,7 @@ Internet, point your browser at http://www.perl.com/, the Perl Home Page.\n\n"); return s+1; /* FALL THROUGH */ default: - croak("Can't emulate -%.1s on #! line",s); + Perl_croak(aTHX_ "Can't emulate -%.1s on #! line",s); } return Nullch; } @@ -1838,7 +1849,7 @@ Perl_my_unexec(pTHX) /* initialize curinterp */ STATIC void -init_interp(pTHX) +S_init_interp(pTHX) { #ifdef PERL_OBJECT /* XXX kludge */ @@ -1879,8 +1890,13 @@ init_interp(pTHX) #else # ifdef MULTIPLICITY # define PERLVAR(var,type) -# define PERLVARI(var,type,init) PL_curinterp->var = init; -# define PERLVARIC(var,type,init) PL_curinterp->var = init; +# if defined(PERL_IMPLICIT_CONTEXT) +# define PERLVARI(var,type,init) my_perl->var = init; +# define PERLVARIC(var,type,init) my_perl->var = init; +# else +# define PERLVARI(var,type,init) PL_curinterp->var = init; +# define PERLVARIC(var,type,init) PL_curinterp->var = init; +# endif # include "intrpvar.h" # ifndef USE_THREADS # include "thrdvar.h" @@ -1905,7 +1921,7 @@ init_interp(pTHX) } STATIC void -init_main_stash(pTHX) +S_init_main_stash(pTHX) { dTHR; GV *gv; @@ -1936,7 +1952,7 @@ init_main_stash(pTHX) GvMULTI_on(PL_errgv); PL_replgv = gv_fetchpv("\022", TRUE, SVt_PV); /* ^R */ GvMULTI_on(PL_replgv); - (void)form("%240s",""); /* Preallocate temp - for immediate signals. */ + (void)Perl_form(aTHX_ "%240s",""); /* Preallocate temp - for immediate signals. */ sv_grow(ERRSV, 240); /* Preallocate - for immediate signals. */ sv_setpvn(ERRSV, "", 0); PL_curstash = PL_defstash; @@ -1948,7 +1964,7 @@ init_main_stash(pTHX) } STATIC void -open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript) +S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript) { dTHR; register char *s; @@ -1991,14 +2007,14 @@ open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript) SV *cmd = NEWSV(0,0); if (strEQ(cpp_cfg, "cppstdin")) - sv_catpvf(cpp, "%s/", BIN_EXP); + Perl_sv_catpvf(aTHX_ cpp, "%s/", BIN_EXP); sv_catpv(cpp, cpp_cfg); sv_catpv(sv,"-I"); sv_catpv(sv,PRIVLIB_EXP); #ifdef MSDOS - sv_setpvf(cmd, "\ + Perl_sv_setpvf(aTHX_ cmd, "\ sed %s -e \"/^[^#]/b\" \ -e \"/^#[ ]*include[ ]/b\" \ -e \"/^#[ ]*define[ ]/b\" \ @@ -2014,7 +2030,7 @@ sed %s -e \"/^[^#]/b\" \ (PL_doextract ? "-e \"1,/^#/d\n\"" : ""), #else # ifdef __OPEN_VM - sv_setpvf(cmd, "\ + Perl_sv_setpvf(aTHX_ cmd, "\ %s %s -e '/^[^#]/b' \ -e '/^#[ ]*include[ ]/b' \ -e '/^#[ ]*define[ ]/b' \ @@ -2028,7 +2044,7 @@ sed %s -e \"/^[^#]/b\" \ -e 's/^[ ]*#.*//' \ %s | %_ %_ %s", # else - sv_setpvf(cmd, "\ + Perl_sv_setpvf(aTHX_ cmd, "\ %s %s -e '/^[^#]/b' \ -e '/^#[ ]*include[ ]/b' \ -e '/^#[ ]*define[ ]/b' \ @@ -2067,7 +2083,7 @@ sed %s -e \"/^[^#]/b\" \ #endif #endif if (PerlProc_geteuid() != PL_uid) - croak("Can't do seteuid!\n"); + Perl_croak(aTHX_ "Can't do seteuid!\n"); } #endif /* IAMSUID */ PL_rsfp = PerlProc_popen(SvPVX(cmd), "r"); @@ -2093,12 +2109,12 @@ sed %s -e \"/^[^#]/b\" \ PL_statbuf.st_mode & (S_ISUID|S_ISGID)) { /* try again */ - PerlProc_execv(form("%s/sperl%s", BIN_EXP, PL_patchlevel), PL_origargv); - croak("Can't do setuid\n"); + PerlProc_execv(Perl_form(aTHX_ "%s/sperl%s", BIN_EXP, PL_patchlevel), PL_origargv); + Perl_croak(aTHX_ "Can't do setuid\n"); } #endif #endif - croak("Can't open perl script \"%s\": %s\n", + Perl_croak(aTHX_ "Can't open perl script \"%s\": %s\n", SvPVX(GvSV(PL_curcop->cop_filegv)), Strerror(errno)); } } @@ -2112,7 +2128,7 @@ sed %s -e \"/^[^#]/b\" \ #ifdef IAMSUID STATIC int -fd_on_nosuid_fs(pTHX_ int fd) +S_fd_on_nosuid_fs(pTHX_ int fd) { int on_nosuid = 0; int check_okay = 0; @@ -2169,13 +2185,13 @@ fd_on_nosuid_fs(pTHX_ int fd) # endif /* statfs */ # endif /* statvfs */ if (!check_okay) - croak("Can't check filesystem of script \"%s\"", PL_origfilename); + Perl_croak(aTHX_ "Can't check filesystem of script \"%s\"", PL_origfilename); return on_nosuid; } #endif /* IAMSUID */ STATIC void -validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) +S_validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) { int which; @@ -2204,7 +2220,7 @@ validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) char *s, *s2; if (PerlLIO_fstat(PerlIO_fileno(PL_rsfp),&PL_statbuf) < 0) /* normal stat is insecure */ - croak("Can't stat script \"%s\"",PL_origfilename); + Perl_croak(aTHX_ "Can't stat script \"%s\"",PL_origfilename); if (fdscript < 0 && PL_statbuf.st_mode & (S_ISUID|S_ISGID)) { I32 len; STRLEN n_a; @@ -2220,7 +2236,7 @@ validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) * it says access() is useful in setuid programs. */ if (PerlLIO_access(SvPVX(GvSV(PL_curcop->cop_filegv)),1)) /*double check*/ - croak("Permission denied"); + Perl_croak(aTHX_ "Permission denied"); #else /* If we can swap euid and uid, then we can determine access rights * with a simple stat of the file, and then compare device and @@ -2239,12 +2255,12 @@ validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) # endif #endif || PerlProc_getuid() != PL_euid || PerlProc_geteuid() != PL_uid) - croak("Can't swap uid and euid"); /* really paranoid */ + Perl_croak(aTHX_ "Can't swap uid and euid"); /* really paranoid */ if (PerlLIO_stat(SvPVX(GvSV(PL_curcop->cop_filegv)),&tmpstatbuf) < 0) - croak("Permission denied"); /* testing full pathname here */ + Perl_croak(aTHX_ "Permission denied"); /* testing full pathname here */ #if defined(IAMSUID) && !defined(NO_NOSUID_CHECK) if (fd_on_nosuid_fs(PerlIO_fileno(PL_rsfp))) - croak("Permission denied"); + Perl_croak(aTHX_ "Permission denied"); #endif if (tmpstatbuf.st_dev != PL_statbuf.st_dev || tmpstatbuf.st_ino != PL_statbuf.st_ino) { @@ -2259,7 +2275,7 @@ validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) (long)PL_statbuf.st_uid, (long)PL_statbuf.st_gid); (void)PerlProc_pclose(PL_rsfp); } - croak("Permission denied\n"); + Perl_croak(aTHX_ "Permission denied\n"); } if ( #ifdef HAS_SETREUID @@ -2270,29 +2286,29 @@ validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) # endif #endif || PerlProc_getuid() != PL_uid || PerlProc_geteuid() != PL_euid) - croak("Can't reswap uid and euid"); + Perl_croak(aTHX_ "Can't reswap uid and euid"); if (!cando(S_IXUSR,FALSE,&PL_statbuf)) /* can real uid exec? */ - croak("Permission denied\n"); + Perl_croak(aTHX_ "Permission denied\n"); } #endif /* HAS_SETREUID */ #endif /* IAMSUID */ if (!S_ISREG(PL_statbuf.st_mode)) - croak("Permission denied"); + Perl_croak(aTHX_ "Permission denied"); if (PL_statbuf.st_mode & S_IWOTH) - croak("Setuid/gid script is writable by world"); + Perl_croak(aTHX_ "Setuid/gid script is writable by world"); PL_doswitches = FALSE; /* -s is insecure in suid */ PL_curcop->cop_line++; if (sv_gets(PL_linestr, PL_rsfp, 0) == Nullch || strnNE(SvPV(PL_linestr,n_a),"#!",2) ) /* required even on Sys V */ - croak("No #! line"); + Perl_croak(aTHX_ "No #! line"); s = SvPV(PL_linestr,n_a)+2; if (*s == ' ') s++; while (!isSPACE(*s)) s++; for (s2 = s; (s2 > SvPV(PL_linestr,n_a)+2 && (isDIGIT(s2[-1]) || strchr("._-", s2[-1]))); s2--) ; if (strnNE(s2-4,"perl",4) && strnNE(s-9,"perl",4)) /* sanity check */ - croak("Not a perl script"); + Perl_croak(aTHX_ "Not a perl script"); while (*s == ' ' || *s == '\t') s++; /* * #! arg must be what we saw above. They can invoke it by @@ -2302,13 +2318,13 @@ validate_suid(pTHX_ char *validarg, char *scriptname, int fdscript) len = strlen(validarg); if (strEQ(validarg," PHOOEY ") || strnNE(s,validarg,len) || !isSPACE(s[len])) - croak("Args must match #! line"); + Perl_croak(aTHX_ "Args must match #! line"); #ifndef IAMSUID if (PL_euid != PL_uid && (PL_statbuf.st_mode & S_ISUID) && PL_euid == PL_statbuf.st_uid) if (!PL_do_undump) - croak("YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!\n\ + Perl_croak(aTHX_ "YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!\n\ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n"); #endif /* IAMSUID */ @@ -2316,9 +2332,9 @@ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n"); (void)PerlIO_close(PL_rsfp); #ifndef IAMSUID /* try again */ - PerlProc_execv(form("%s/sperl%s", BIN_EXP, PL_patchlevel), PL_origargv); + PerlProc_execv(Perl_form(aTHX_ "%s/sperl%s", BIN_EXP, PL_patchlevel), PL_origargv); #endif - croak("Can't do setuid\n"); + Perl_croak(aTHX_ "Can't do setuid\n"); } if (PL_statbuf.st_mode & S_ISGID && PL_statbuf.st_gid != PL_egid) { @@ -2336,7 +2352,7 @@ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n"); #endif #endif if (PerlProc_getegid() != PL_statbuf.st_gid) - croak("Can't do setegid!\n"); + Perl_croak(aTHX_ "Can't do setegid!\n"); } if (PL_statbuf.st_mode & S_ISUID) { if (PL_statbuf.st_uid != PL_euid) @@ -2354,7 +2370,7 @@ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n"); #endif #endif if (PerlProc_geteuid() != PL_statbuf.st_uid) - croak("Can't do seteuid!\n"); + Perl_croak(aTHX_ "Can't do seteuid!\n"); } else if (PL_uid) { /* oops, mustn't run as root */ #ifdef HAS_SETEUID @@ -2371,19 +2387,19 @@ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n"); #endif #endif if (PerlProc_geteuid() != PL_uid) - croak("Can't do seteuid!\n"); + Perl_croak(aTHX_ "Can't do seteuid!\n"); } init_ids(); if (!cando(S_IXUSR,TRUE,&PL_statbuf)) - croak("Permission denied\n"); /* they can't do this */ + Perl_croak(aTHX_ "Permission denied\n"); /* they can't do this */ } #ifdef IAMSUID else if (PL_preprocess) - croak("-P not allowed for setuid/setgid script\n"); + Perl_croak(aTHX_ "-P not allowed for setuid/setgid script\n"); else if (fdscript >= 0) - croak("fd script not allowed in suidperl\n"); + Perl_croak(aTHX_ "fd script not allowed in suidperl\n"); else - croak("Script is not setuid/setgid in suidperl\n"); + Perl_croak(aTHX_ "Script is not setuid/setgid in suidperl\n"); /* We absolutely must clear out any saved ids here, so we */ /* exec the real perl, substituting fd script for scriptname. */ @@ -2392,14 +2408,14 @@ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n"); PerlLIO_lseek(PerlIO_fileno(PL_rsfp),(Off_t)0,0); /* just in case rewind didn't */ for (which = 1; PL_origargv[which] && PL_origargv[which] != scriptname; which++) ; if (!PL_origargv[which]) - croak("Permission denied"); - PL_origargv[which] = savepv(form("/dev/fd/%d/%s", + Perl_croak(aTHX_ "Permission denied"); + PL_origargv[which] = savepv(Perl_form(aTHX_ "/dev/fd/%d/%s", PerlIO_fileno(PL_rsfp), PL_origargv[which])); #if defined(HAS_FCNTL) && defined(F_SETFD) fcntl(PerlIO_fileno(PL_rsfp),F_SETFD,0); /* ensure no close-on-exec */ #endif - PerlProc_execv(form("%s/perl%s", BIN_EXP, PL_patchlevel), PL_origargv);/* try again */ - croak("Can't do setuid\n"); + PerlProc_execv(Perl_form(aTHX_ "%s/perl%s", BIN_EXP, PL_patchlevel), PL_origargv);/* try again */ + Perl_croak(aTHX_ "Can't do setuid\n"); #endif /* IAMSUID */ #else /* !DOSUID */ if (PL_euid != PL_uid || PL_egid != PL_gid) { /* (suidperl doesn't exist, in fact) */ @@ -2411,7 +2427,7 @@ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n"); (PL_egid != PL_gid && PL_egid == PL_statbuf.st_gid && PL_statbuf.st_mode & S_ISGID) ) if (!PL_do_undump) - croak("YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!\n\ + Perl_croak(aTHX_ "YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!\n\ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n"); #endif /* SETUID_SCRIPTS_ARE_SECURE_NOW */ /* not set-id, must be wrapped */ @@ -2420,7 +2436,7 @@ FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!\n"); } STATIC void -find_beginning(pTHX) +S_find_beginning(pTHX) { register char *s, *s2; @@ -2429,7 +2445,7 @@ find_beginning(pTHX) forbid_setid("-x"); while (PL_doextract) { if ((s = sv_gets(PL_linestr, PL_rsfp, 0)) == Nullch) - croak("No Perl script found in input\n"); + Perl_croak(aTHX_ "No Perl script found in input\n"); if (*s == '#' && s[1] == '!' && (s = instr(s,"perl"))) { PerlIO_ungetc(PL_rsfp, '\n'); /* to keep line count right */ PL_doextract = FALSE; @@ -2443,14 +2459,14 @@ find_beginning(pTHX) while (s = moreswitches(s)) ; } if (PL_cddir && PerlDir_chdir(PL_cddir) < 0) - croak("Can't chdir to %s",PL_cddir); + Perl_croak(aTHX_ "Can't chdir to %s",PL_cddir); } } } STATIC void -init_ids(pTHX) +S_init_ids(pTHX) { PL_uid = (int)PerlProc_getuid(); PL_euid = (int)PerlProc_geteuid(); @@ -2464,16 +2480,16 @@ init_ids(pTHX) } STATIC void -forbid_setid(pTHX_ char *s) +S_forbid_setid(pTHX_ char *s) { if (PL_euid != PL_uid) - croak("No %s allowed while running setuid", s); + Perl_croak(aTHX_ "No %s allowed while running setuid", s); if (PL_egid != PL_gid) - croak("No %s allowed while running setgid", s); + Perl_croak(aTHX_ "No %s allowed while running setgid", s); } STATIC void -init_debugger(pTHX) +S_init_debugger(pTHX) { dTHR; PL_curstash = PL_debstash; @@ -2498,7 +2514,7 @@ init_debugger(pTHX) #endif void -Perl_init_stacks(pTHX_ ARGSproto) +Perl_init_stacks(pTHX) { /* start with 128-item stack and 8K cxstack */ PL_curstackinfo = new_stackinfo(REASONABLE(128), @@ -2538,7 +2554,7 @@ Perl_init_stacks(pTHX_ ARGSproto) #undef REASONABLE STATIC void -nuke_stacks(pTHX) +S_nuke_stacks(pTHX) { dTHR; while (PL_curstackinfo->si_next) @@ -2566,7 +2582,7 @@ static PerlIO *tmpfp; /* moved outside init_lexer() because of UNICOS bug */ #endif STATIC void -init_lexer(pTHX) +S_init_lexer(pTHX) { #ifdef PERL_OBJECT PerlIO *tmpfp; @@ -2579,7 +2595,7 @@ init_lexer(pTHX) } STATIC void -init_predump_symbols(pTHX) +S_init_predump_symbols(pTHX) { dTHR; GV *tmpgv; @@ -2615,7 +2631,7 @@ init_predump_symbols(pTHX) } STATIC void -init_postdump_symbols(pTHX_ register int argc, register char **argv, register char **env) +S_init_postdump_symbols(pTHX_ register int argc, register char **argv, register char **env) { dTHR; char *s; @@ -2703,7 +2719,7 @@ init_postdump_symbols(pTHX_ register int argc, register char **argv, register ch } STATIC void -init_perllib(pTHX) +S_init_perllib(pTHX) { char *s; if (!PL_tainting) { @@ -2774,7 +2790,7 @@ init_perllib(pTHX) #endif STATIC void -incpush(pTHX_ char *p, int addsubdirs) +S_incpush(pTHX_ char *p, int addsubdirs) { SV *subdir = Nullsv; @@ -2862,9 +2878,11 @@ incpush(pTHX_ char *p, int addsubdirs) #ifdef USE_THREADS STATIC struct perl_thread * -init_main_thread(pTHX) +S_init_main_thread(pTHX) { +#ifndef PERL_IMPLICIT_CONTEXT struct perl_thread *thr; +#endif XPV *xpv; Newz(53, thr, 1, struct perl_thread); @@ -2923,8 +2941,8 @@ init_main_thread(pTHX) (void) find_threadsv("@"); /* Ensure $@ is initialised early */ PL_maxscream = -1; - PL_regcompp = FUNC_NAME_TO_PTR(pregcomp); - PL_regexecp = FUNC_NAME_TO_PTR(regexec_flags); + PL_regcompp = FUNC_NAME_TO_PTR(Perl_pregcomp); + PL_regexecp = FUNC_NAME_TO_PTR(Perl_regexec_flags); PL_regindent = 0; PL_reginterp_cnt = 0; @@ -2945,7 +2963,7 @@ Perl_call_list(pTHX_ I32 oldscope, AV *paramList) while (AvFILL(paramList) >= 0) { cv = (CV*)av_shift(paramList); SAVEFREESV(cv); - CALLPROTECT(&ret, FUNC_NAME_TO_PTR(call_list_body), cv); + CALLPROTECT(aTHX_ &ret, FUNC_NAME_TO_PTR(S_call_list_body), cv); switch (ret) { case 0: (void)SvPV(atsv, len); @@ -2958,7 +2976,7 @@ Perl_call_list(pTHX_ I32 oldscope, AV *paramList) sv_catpv(atsv, "END failed--cleanup aborted"); while (PL_scopestack_ix > oldscope) LEAVE; - croak("%s", SvPVX(atsv)); + Perl_croak(aTHX_ "%s", SvPVX(atsv)); } break; case 1: @@ -2976,9 +2994,9 @@ Perl_call_list(pTHX_ I32 oldscope, AV *paramList) PL_curcop->cop_line = oldline; if (PL_statusvalue) { if (paramList == PL_beginav) - croak("BEGIN failed--compilation aborted"); + Perl_croak(aTHX_ "BEGIN failed--compilation aborted"); else - croak("END failed--cleanup aborted"); + Perl_croak(aTHX_ "END failed--cleanup aborted"); } my_exit_jump(); /* NOTREACHED */ @@ -2996,7 +3014,7 @@ Perl_call_list(pTHX_ I32 oldscope, AV *paramList) } STATIC void * -call_list_body(pTHX_ va_list args) +S_call_list_body(pTHX_ va_list args) { dTHR; CV *cv = va_arg(args, CV*); @@ -3057,7 +3075,7 @@ Perl_my_failure_exit(pTHX) } STATIC void -my_exit_jump(pTHX) +S_my_exit_jump(pTHX) { dTHR; register PERL_CONTEXT *cx; @@ -3087,14 +3105,14 @@ my_exit_jump(pTHX) #include "XSUB.h" STATIC I32 -read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen) +S_read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen) { char *p, *nl; p = SvPVX(PL_e_script); nl = strchr(p, '\n'); nl = (nl) ? nl+1 : SvEND(PL_e_script); if (nl-p == 0) { - filter_del(read_e_script); + filter_del(S_read_e_script); return 0; } sv_catpvn(buf_sv, p, nl-p); diff --git a/perl.h b/perl.h index cd46b7d..73f1dc6 100644 --- a/perl.h +++ b/perl.h @@ -9,6 +9,8 @@ #ifndef H_PERL #define H_PERL 1 +/*#define PERL_IMPLICIT_CONTEXT*/ + #ifdef PERL_FOR_X2P /* * This file is being used for x2p stuff. @@ -133,8 +135,9 @@ class CPerlObj; #define VOIDUSED 1 #include "config.h" -#if !defined(PERL_FOR_X2P) -# include "embed.h" +/* XXXXXX testing threads via implicit pointer */ +#ifdef USE_THREADS +#define PERL_IMPLICIT_CONTEXT #endif #undef START_EXTERN_C @@ -182,7 +185,7 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER)); #endif #define NOOP (void)0 - +#define dNOOP extern int Perl___notused #define WITH_THR(s) STMT_START { dTHR; s; } STMT_END /* @@ -379,6 +382,10 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER)); # include #endif +#if !defined(PERL_FOR_X2P) +# include "embed.h" +#endif + #define MEM_SIZE Size_t /* This comes after so we don't try to change the standard @@ -1299,16 +1306,6 @@ typedef union any ANY; # endif #endif -#ifdef PERL_OBJECT -typedef I32 (*filter_t) (CPerlObj*, int, SV *, int); -#else -typedef I32 (*filter_t) (int, SV *, int); -#endif - -#define FILTER_READ(idx, sv, len) filter_read(idx, sv, len) -#define FILTER_DATA(idx) (AvARRAY(PL_rsfp_filters)[idx]) -#define FILTER_ISREADER(idx) (idx >= AvFILLp(PL_rsfp_filters)) - #if defined(__OPEN_VM) # include "vmesa/vmesaish.h" #endif @@ -1492,24 +1489,6 @@ typedef pthread_key_t perl_key; # endif #endif -#ifdef UNION_ANY_DEFINITION -UNION_ANY_DEFINITION; -#else -union any { - void* any_ptr; - I32 any_i32; - IV any_iv; - long any_long; - void (CPERLscope(*any_dptr)) (void*); -}; -#endif - -#ifdef USE_THREADS -#define ARGSproto struct perl_thread *thr -#else -#define ARGSproto void -#endif /* USE_THREADS */ - #if defined(CYGWIN32) /* USEMYBINMODE * This symbol, if defined, indicates that the program should @@ -1522,22 +1501,73 @@ union any { (PerlLIO_setmode(PerlIO_fileno(fp), O_BINARY) != -1 ? TRUE : NULL) #endif +#ifdef PERL_IMPLICIT_CONTEXT +# ifdef USE_THREADS +struct perl_thread; +# define pTHX struct perl_thread *thr +# define pTHX_ pTHX, +# define _pTHX ,pTHX +# define aTHX thr +# define aTHX_ aTHX, +# define _aTHX ,aTHX +# define dTHX pTHX = (struct perl_thread *)SvPVX(PL_thrsv) +# define dTHR dNOOP +# else +# define MULTIPLICITY +# define pTHX PerlInterpreter *my_perl +# define pTHX_ pTHX, +# define _pTHX ,pTHX +# define aTHX my_perl +# define aTHX_ aTHX, +# define _aTHX ,aTHX +# define dTHX pTHX = PL_curinterp +# endif +#endif + #ifndef pTHX # define pTHX void # define pTHX_ # define _pTHX -#endif - -#ifndef aTHX # define aTHX # define aTHX_ # define _aTHX +# define dTHX dNOOP #endif +#define WITH_THX(s) STMT_START { dTHX; s; } STMT_END + #ifndef STATIC # define STATIC static #endif +#ifdef UNION_ANY_DEFINITION +UNION_ANY_DEFINITION; +#else +union any { + void* any_ptr; + I32 any_i32; + IV any_iv; + long any_long; + void (CPERLscope(*any_dptr)) (pTHX_ void*); +}; +#endif + +#ifdef USE_THREADS +#define ARGSproto struct perl_thread *thr +#else +#define ARGSproto +#endif /* USE_THREADS */ + +#ifdef PERL_OBJECT +typedef I32 (*filter_t) (CPerlObj*, int, SV *, int); +#else +typedef I32 (*filter_t) (pTHX_ int, SV *, int); +#endif + +#define FILTER_READ(idx, sv, len) filter_read(idx, sv, len) +#define FILTER_DATA(idx) (AvARRAY(PL_rsfp_filters)[idx]) +#define FILTER_ISREADER(idx) (idx >= AvFILLp(PL_rsfp_filters)) + #include "regexp.h" #include "sv.h" #include "util.h" @@ -1723,7 +1753,7 @@ Gid_t getegid (void); #define DEBUG_o(a) if (PL_debug & 16) a #define DEBUG_c(a) if (PL_debug & 32) a #define DEBUG_P(a) if (PL_debug & 64) a -# ifdef PERL_OBJECT +# if defined(PERL_OBJECT) || defined(PERL_IMPLICIT_CONTEXT) # define DEBUG_m(a) if (PL_debug & 128) a # else # define DEBUG_m(a) if (PL_curinterp && PL_debug & 128) a @@ -1767,9 +1797,9 @@ Gid_t getegid (void); #ifndef assert /* might have been included somehow */ #define assert(what) DEB( { \ if (!(what)) { \ - croak("Assertion failed: file \"%s\", line %d", \ + Perl_croak(aTHX_ "Assertion failed: file \"%s\", line %d", \ __FILE__, __LINE__); \ - PerlProc_exit(1); \ + PerlProc_exit(1); \ }}) #endif @@ -1871,10 +1901,10 @@ typedef Sighandler_t Sigsave_t; # define register # endif # define PAD_SV(po) pad_sv(po) -# define RUNOPS_DEFAULT runops_debug +# define RUNOPS_DEFAULT Perl_runops_debug #else # define PAD_SV(po) PL_curpad[po] -# define RUNOPS_DEFAULT runops_standard +# define RUNOPS_DEFAULT Perl_runops_standard #endif #ifdef MYMALLOC @@ -1906,10 +1936,10 @@ typedef Sighandler_t Sigsave_t; */ #ifndef PERL_OBJECT -typedef int (*runops_proc_t) (void); -int runops_standard (void); +typedef int (*runops_proc_t) (pTHX); +int Perl_runops_standard (pTHX); #ifdef DEBUGGING -int runops_debug (void); +int Perl_runops_debug (pTHX); #endif #endif @@ -2292,8 +2322,8 @@ typedef I32 (CPerlObj::*regexec_t) (regexp* prog, char* stringarg, I32 minend, SV* screamer, void* data, U32 flags); #else -typedef regexp*(*regcomp_t) (char* exp, char* xend, PMOP* pm); -typedef I32 (*regexec_t) (regexp* prog, char* stringarg, char* strend, char* +typedef regexp*(*regcomp_t) (pTHX_ char* exp, char* xend, PMOP* pm); +typedef I32 (*regexec_t) (pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags); @@ -2309,7 +2339,7 @@ typedef struct exitlistentry { #ifdef PERL_OBJECT void (*fn) (CPerlObj*, void*); #else - void (*fn) (void*); + void (*fn) (pTHX_ void*); #endif void *ptr; } PerlExitListEntry; @@ -2504,85 +2534,85 @@ PERLVAR(object_compatibility[30], char) #ifdef DOINIT -EXT MGVTBL PL_vtbl_sv = {magic_get, - magic_set, - magic_len, +EXT MGVTBL PL_vtbl_sv = {Perl_magic_get, + Perl_magic_set, + Perl_magic_len, 0, 0}; -EXT MGVTBL PL_vtbl_env = {0, magic_set_all_env, - 0, magic_clear_all_env, +EXT MGVTBL PL_vtbl_env = {0, Perl_magic_set_all_env, + 0, Perl_magic_clear_all_env, 0}; -EXT MGVTBL PL_vtbl_envelem = {0, magic_setenv, - 0, magic_clearenv, +EXT MGVTBL PL_vtbl_envelem = {0, Perl_magic_setenv, + 0, Perl_magic_clearenv, 0}; EXT MGVTBL PL_vtbl_sig = {0, 0, 0, 0, 0}; -EXT MGVTBL PL_vtbl_sigelem = {magic_getsig, - magic_setsig, - 0, magic_clearsig, +EXT MGVTBL PL_vtbl_sigelem = {Perl_magic_getsig, + Perl_magic_setsig, + 0, Perl_magic_clearsig, 0}; -EXT MGVTBL PL_vtbl_pack = {0, 0, magic_sizepack, magic_wipepack, +EXT MGVTBL PL_vtbl_pack = {0, 0, Perl_magic_sizepack, Perl_magic_wipepack, 0}; -EXT MGVTBL PL_vtbl_packelem = {magic_getpack, - magic_setpack, - 0, magic_clearpack, +EXT MGVTBL PL_vtbl_packelem = {Perl_magic_getpack, + Perl_magic_setpack, + 0, Perl_magic_clearpack, 0}; -EXT MGVTBL PL_vtbl_dbline = {0, magic_setdbline, +EXT MGVTBL PL_vtbl_dbline = {0, Perl_magic_setdbline, 0, 0, 0}; -EXT MGVTBL PL_vtbl_isa = {0, magic_setisa, - 0, magic_setisa, +EXT MGVTBL PL_vtbl_isa = {0, Perl_magic_setisa, + 0, Perl_magic_setisa, 0}; -EXT MGVTBL PL_vtbl_isaelem = {0, magic_setisa, +EXT MGVTBL PL_vtbl_isaelem = {0, Perl_magic_setisa, 0, 0, 0}; -EXT MGVTBL PL_vtbl_arylen = {magic_getarylen, - magic_setarylen, +EXT MGVTBL PL_vtbl_arylen = {Perl_magic_getarylen, + Perl_magic_setarylen, 0, 0, 0}; -EXT MGVTBL PL_vtbl_glob = {magic_getglob, - magic_setglob, +EXT MGVTBL PL_vtbl_glob = {Perl_magic_getglob, + Perl_magic_setglob, 0, 0, 0}; -EXT MGVTBL PL_vtbl_mglob = {0, magic_setmglob, +EXT MGVTBL PL_vtbl_mglob = {0, Perl_magic_setmglob, 0, 0, 0}; -EXT MGVTBL PL_vtbl_nkeys = {magic_getnkeys, - magic_setnkeys, +EXT MGVTBL PL_vtbl_nkeys = {Perl_magic_getnkeys, + Perl_magic_setnkeys, 0, 0, 0}; -EXT MGVTBL PL_vtbl_taint = {magic_gettaint,magic_settaint, +EXT MGVTBL PL_vtbl_taint = {Perl_magic_gettaint,Perl_magic_settaint, 0, 0, 0}; -EXT MGVTBL PL_vtbl_substr = {magic_getsubstr, magic_setsubstr, +EXT MGVTBL PL_vtbl_substr = {Perl_magic_getsubstr, Perl_magic_setsubstr, 0, 0, 0}; -EXT MGVTBL PL_vtbl_vec = {magic_getvec, - magic_setvec, +EXT MGVTBL PL_vtbl_vec = {Perl_magic_getvec, + Perl_magic_setvec, 0, 0, 0}; -EXT MGVTBL PL_vtbl_pos = {magic_getpos, - magic_setpos, +EXT MGVTBL PL_vtbl_pos = {Perl_magic_getpos, + Perl_magic_setpos, 0, 0, 0}; -EXT MGVTBL PL_vtbl_bm = {0, magic_setbm, +EXT MGVTBL PL_vtbl_bm = {0, Perl_magic_setbm, 0, 0, 0}; -EXT MGVTBL PL_vtbl_fm = {0, magic_setfm, +EXT MGVTBL PL_vtbl_fm = {0, Perl_magic_setfm, 0, 0, 0}; -EXT MGVTBL PL_vtbl_uvar = {magic_getuvar, - magic_setuvar, +EXT MGVTBL PL_vtbl_uvar = {Perl_magic_getuvar, + Perl_magic_setuvar, 0, 0, 0}; #ifdef USE_THREADS -EXT MGVTBL PL_vtbl_mutex = {0, 0, 0, 0, magic_mutexfree}; +EXT MGVTBL PL_vtbl_mutex = {0, 0, 0, 0, Perl_magic_mutexfree}; #endif /* USE_THREADS */ -EXT MGVTBL PL_vtbl_defelem = {magic_getdefelem,magic_setdefelem, +EXT MGVTBL PL_vtbl_defelem = {Perl_magic_getdefelem,Perl_magic_setdefelem, 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}; +EXT MGVTBL PL_vtbl_regexp = {0,0,0,0, Perl_magic_freeregexp}; +EXT MGVTBL PL_vtbl_regdata = {0, 0, Perl_magic_regdata_cnt, 0, 0}; +EXT MGVTBL PL_vtbl_regdatum = {Perl_magic_regdatum_get, 0, 0, 0, 0}; #ifdef USE_LOCALE_COLLATE EXT MGVTBL PL_vtbl_collxfrm = {0, - magic_setcollxfrm, + Perl_magic_setcollxfrm, 0, 0, 0}; #endif -EXT MGVTBL PL_vtbl_amagic = {0, magic_setamagic, - 0, 0, magic_setamagic}; -EXT MGVTBL PL_vtbl_amagicelem = {0, magic_setamagic, - 0, 0, magic_setamagic}; +EXT MGVTBL PL_vtbl_amagic = {0, Perl_magic_setamagic, + 0, 0, Perl_magic_setamagic}; +EXT MGVTBL PL_vtbl_amagicelem = {0, Perl_magic_setamagic, + 0, 0, Perl_magic_setamagic}; EXT MGVTBL PL_vtbl_backref = {0, 0, - 0, 0, magic_killbackrefs}; + 0, 0, Perl_magic_killbackrefs}; #else /* !DOINIT */ diff --git a/perlio.c b/perlio.c index a71acba..3094ea7 100644 --- a/perlio.c +++ b/perlio.c @@ -142,11 +142,11 @@ void PerlIO_set_cnt(PerlIO *f, int cnt) { if (cnt < -1) - warn("Setting cnt to %d\n",cnt); + Perl_warn(aTHX_ "Setting cnt to %d\n",cnt); #if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE) FILE_cnt(f) = cnt; #else - croak("Cannot set 'cnt' of FILE * on this system"); + Perl_croak(aTHX_ "Cannot set 'cnt' of FILE * on this system"); #endif } @@ -158,19 +158,19 @@ PerlIO_set_ptrcnt(PerlIO *f, STDCHAR *ptr, int cnt) STDCHAR *e = FILE_base(f) + FILE_bufsiz(f); int ec = e - ptr; if (ptr > e + 1) - warn("Setting ptr %p > end+1 %p\n", ptr, e + 1); + Perl_warn(aTHX_ "Setting ptr %p > end+1 %p\n", ptr, e + 1); if (cnt != ec) - warn("Setting cnt to %d, ptr implies %d\n",cnt,ec); + Perl_warn(aTHX_ "Setting cnt to %d, ptr implies %d\n",cnt,ec); #endif #if defined(USE_STDIO_PTR) && defined(STDIO_PTR_LVALUE) FILE_ptr(f) = ptr; #else - croak("Cannot set 'ptr' of FILE * on this system"); + Perl_croak(aTHX_ "Cannot set 'ptr' of FILE * on this system"); #endif #if defined(USE_STDIO_PTR) && defined(STDIO_CNT_LVALUE) FILE_cnt(f) = cnt; #else - croak("Cannot set 'cnt' of FILE * on this system"); + Perl_croak(aTHX_ "Cannot set 'cnt' of FILE * on this system"); #endif } @@ -181,7 +181,7 @@ PerlIO_get_cnt(PerlIO *f) #ifdef FILE_cnt return FILE_cnt(f); #else - croak("Cannot get 'cnt' of FILE * on this system"); + Perl_croak(aTHX_ "Cannot get 'cnt' of FILE * on this system"); return -1; #endif } @@ -193,7 +193,7 @@ PerlIO_get_bufsiz(PerlIO *f) #ifdef FILE_bufsiz return FILE_bufsiz(f); #else - croak("Cannot get 'bufsiz' of FILE * on this system"); + Perl_croak(aTHX_ "Cannot get 'bufsiz' of FILE * on this system"); return -1; #endif } @@ -205,7 +205,7 @@ PerlIO_get_ptr(PerlIO *f) #ifdef FILE_ptr return FILE_ptr(f); #else - croak("Cannot get 'ptr' of FILE * on this system"); + Perl_croak(aTHX_ "Cannot get 'ptr' of FILE * on this system"); return NULL; #endif } @@ -217,7 +217,7 @@ PerlIO_get_base(PerlIO *f) #ifdef FILE_base return FILE_base(f); #else - croak("Cannot get 'base' of FILE * on this system"); + Perl_croak(aTHX_ "Cannot get 'base' of FILE * on this system"); return NULL; #endif } @@ -282,7 +282,7 @@ PerlIO_getname(PerlIO *f, char *buf) #ifdef VMS return fgetname(f,buf); #else - croak("Don't know how to get file name"); + Perl_croak(aTHX_ "Don't know how to get file name"); return NULL; #endif } @@ -537,7 +537,10 @@ PerlIO_vsprintf(char *s, int n, const char *fmt, va_list ap) if (strlen(s) >= (STRLEN)n) { PerlIO_puts(PerlIO_stderr(),"panic: sprintf overflow - memory corrupted!\n"); - my_exit(1); + { + dTHX; + my_exit(1); + } } } return val; diff --git a/perlsfio.h b/perlsfio.h index 8c9387f..d6731e4 100644 --- a/perlsfio.h +++ b/perlsfio.h @@ -34,10 +34,10 @@ extern int _stdprintf _ARG_((const char*, ...)); #define PerlIO_rewind(f) (void) sfseek((f),0L,0) #define PerlIO_tmpfile() sftmp(0) -#define PerlIO_importFILE(f,fl) croak("Import from FILE * unimplemeted") -#define PerlIO_exportFILE(f,fl) croak("Export to FILE * unimplemeted") +#define PerlIO_importFILE(f,fl) Perl_croak(aTHX_ "Import from FILE * unimplemeted") +#define PerlIO_exportFILE(f,fl) Perl_croak(aTHX_ "Export to FILE * unimplemeted") #define PerlIO_findFILE(f) NULL -#define PerlIO_releaseFILE(p,f) croak("Release of FILE * unimplemeted") +#define PerlIO_releaseFILE(p,f) Perl_croak(aTHX_ "Release of FILE * unimplemeted") #define PerlIO_setlinebuf(f) sfset(f,SF_LINE,1) diff --git a/perly.c b/perly.c index 8b77303..1a31506 100644 --- a/perly.c +++ b/perly.c @@ -1350,7 +1350,7 @@ Perl_yyparse(pTHX) struct ysv *ysave; New(73, ysave, 1, struct ysv); - SAVEDESTRUCTOR(yydestruct, ysave); + SAVEDESTRUCTOR(Perl_yydestruct, ysave); ysave->oldyydebug = yydebug; ysave->oldyynerrs = yynerrs; ysave->oldyyerrflag = yyerrflag; diff --git a/pp.c b/pp.c index fed72bb..8874b30 100644 --- a/pp.c +++ b/pp.c @@ -186,12 +186,12 @@ PP(pp_padhv) RETURN; gimme = GIMME_V; if (gimme == G_ARRAY) { - RETURNOP(do_kv(ARGS)); + RETURNOP(do_kv()); } else if (gimme == G_SCALAR) { SV* sv = sv_newmortal(); if (HvFILL((HV*)TARG)) - sv_setpvf(sv, "%ld/%ld", + Perl_sv_setpvf(aTHX_ sv, "%ld/%ld", (long)HvFILL((HV*)TARG), (long)HvMAX((HV*)TARG) + 1); else sv_setiv(sv, 0); @@ -202,7 +202,7 @@ PP(pp_padhv) PP(pp_padany) { - DIE("NOT IMPL LINE %d",__LINE__); + DIE(aTHX_ "NOT IMPL LINE %d",__LINE__); } /* Translations. */ @@ -224,7 +224,7 @@ PP(pp_rv2gv) sv = (SV*) gv; } else if (SvTYPE(sv) != SVt_PVGV) - DIE("Not a GLOB reference"); + DIE(aTHX_ "Not a GLOB reference"); } else { if (SvTYPE(sv) != SVt_PVGV) { @@ -257,9 +257,9 @@ PP(pp_rv2gv) } if (PL_op->op_flags & OPf_REF || PL_op->op_private & HINT_STRICT_REFS) - DIE(PL_no_usym, "a symbol"); + DIE(aTHX_ PL_no_usym, "a symbol"); if (ckWARN(WARN_UNINITIALIZED)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); RETSETUNDEF; } sym = SvPV(sv, n_a); @@ -272,7 +272,7 @@ PP(pp_rv2gv) } else { if (PL_op->op_private & HINT_STRICT_REFS) - DIE(PL_no_symref, sym, "a symbol"); + DIE(aTHX_ PL_no_symref, sym, "a symbol"); sv = (SV*)gv_fetchpv(sym, TRUE, SVt_PVGV); } } @@ -296,7 +296,7 @@ PP(pp_rv2sv) case SVt_PVAV: case SVt_PVHV: case SVt_PVCV: - DIE("Not a SCALAR reference"); + DIE(aTHX_ "Not a SCALAR reference"); } } else { @@ -313,9 +313,9 @@ PP(pp_rv2sv) if (!SvOK(sv)) { if (PL_op->op_flags & OPf_REF || PL_op->op_private & HINT_STRICT_REFS) - DIE(PL_no_usym, "a SCALAR"); + DIE(aTHX_ PL_no_usym, "a SCALAR"); if (ckWARN(WARN_UNINITIALIZED)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); RETSETUNDEF; } sym = SvPV(sv, n_a); @@ -328,7 +328,7 @@ PP(pp_rv2sv) } else { if (PL_op->op_private & HINT_STRICT_REFS) - DIE(PL_no_symref, sym, "a SCALAR"); + DIE(aTHX_ PL_no_symref, sym, "a SCALAR"); gv = (GV*)gv_fetchpv(sym, TRUE, SVt_PV); } } @@ -467,7 +467,7 @@ PP(pp_prototype) goto set; else { /* None such */ nonesuch: - croak("Can't find an opnumber for \"%s\"", s+6); + Perl_croak(aTHX_ "Can't find an opnumber for \"%s\"", s+6); } } } @@ -516,7 +516,7 @@ PP(pp_refgen) } STATIC SV* -refto(pTHX_ SV *sv) +S_refto(pTHX_ SV *sv) { SV* rv; @@ -573,7 +573,7 @@ PP(pp_bless) STRLEN len; char *ptr = SvPV(ssv,len); if (ckWARN(WARN_UNSAFE) && len == 0) - warner(WARN_UNSAFE, + Perl_warner(aTHX_ WARN_UNSAFE, "Explicit blessing to '' (assuming package main)"); stash = gv_stashpvn(ptr, len, TRUE); } @@ -689,7 +689,7 @@ PP(pp_study) snext = PL_screamnext; if (!sfirst || !snext) - DIE("do_study: out of memory"); + DIE(aTHX_ "do_study: out of memory"); for (ch = 256; ch; --ch) *sfirst++ = -1; @@ -820,7 +820,7 @@ PP(pp_undef) break; case SVt_PVCV: if (ckWARN(WARN_UNSAFE) && cv_const_sv((CV*)sv)) - warner(WARN_UNSAFE, "Constant subroutine %s undefined", + Perl_warner(aTHX_ WARN_UNSAFE, "Constant subroutine %s undefined", CvANON((CV*)sv) ? "(anonymous)" : GvENAME(CvGV((CV*)sv))); /* FALL THROUGH */ case SVt_PVFM: @@ -863,7 +863,7 @@ PP(pp_predec) { djSP; if (SvREADONLY(TOPs) || SvTYPE(TOPs) > SVt_PVLV) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); if (SvIOK_notUV(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MIN) { @@ -880,7 +880,7 @@ PP(pp_postinc) { djSP; dTARGET; if (SvREADONLY(TOPs) || SvTYPE(TOPs) > SVt_PVLV) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); sv_setsv(TARG, TOPs); if (SvIOK_notUV(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MAX) @@ -901,7 +901,7 @@ PP(pp_postdec) { djSP; dTARGET; if(SvREADONLY(TOPs) || SvTYPE(TOPs) > SVt_PVLV) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); sv_setsv(TARG, TOPs); if (SvIOK_notUV(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MIN) @@ -945,7 +945,7 @@ PP(pp_divide) dPOPPOPnnrl; double value; if (right == 0.0) - DIE("Illegal division by zero"); + DIE(aTHX_ "Illegal division by zero"); #ifdef SLOPPYDIVIDE /* insure that 20./5. == 4. */ { @@ -1032,7 +1032,7 @@ PP(pp_modulo) dleft = floor(dleft + 0.5); if (!dright) - DIE("Illegal modulus zero"); + DIE(aTHX_ "Illegal modulus zero"); dans = fmod(dleft, dright); if ((left_neg != right_neg) && dans) @@ -1046,7 +1046,7 @@ PP(pp_modulo) do_uv: if (!right) - DIE("Illegal modulus zero"); + DIE(aTHX_ "Illegal modulus zero"); ans = left % right; if ((left_neg != right_neg) && ans) @@ -1493,7 +1493,7 @@ PP(pp_i_divide) { dPOPiv; if (value == 0) - DIE("Illegal division by zero"); + DIE(aTHX_ "Illegal division by zero"); value = POPi / value; PUSHi( value ); RETURN; @@ -1506,7 +1506,7 @@ PP(pp_i_modulo) { dPOPTOPiirl; if (!right) - DIE("Illegal modulus zero"); + DIE(aTHX_ "Illegal modulus zero"); SETi( left % right ); RETURN; } @@ -1702,7 +1702,7 @@ PP(pp_srand) } STATIC U32 -seed(pTHX) +S_seed(pTHX) { /* * This is really just a quick hack which grabs various garbage @@ -1803,7 +1803,7 @@ PP(pp_log) value = POPn; if (value <= 0.0) { SET_NUMERIC_STANDARD(); - DIE("Can't take log of %g", value); + DIE(aTHX_ "Can't take log of %g", value); } value = log(value); XPUSHn(value); @@ -1819,7 +1819,7 @@ PP(pp_sqrt) value = POPn; if (value < 0.0) { SET_NUMERIC_STANDARD(); - DIE("Can't take sqrt of %g", value); + DIE(aTHX_ "Can't take sqrt of %g", value); } value = sqrt(value); XPUSHn(value); @@ -2000,7 +2000,7 @@ PP(pp_substr) } if (fail < 0) { if (ckWARN(WARN_SUBSTR) || lvalue || repl) - warner(WARN_SUBSTR, "substr outside of string"); + Perl_warner(aTHX_ WARN_SUBSTR, "substr outside of string"); RETPUSHUNDEF; } else { @@ -2014,7 +2014,7 @@ PP(pp_substr) STRLEN n_a; SvPV_force(sv,n_a); if (ckWARN(WARN_SUBSTR)) - warner(WARN_SUBSTR, + Perl_warner(aTHX_ WARN_SUBSTR, "Attempt to use reference as lvalue in substr"); } if (SvOK(sv)) /* is it defined ? */ @@ -2274,7 +2274,7 @@ PP(pp_crypt) sv_setpv(TARG, PerlProc_crypt(tmps, SvPV(right, n_a))); #endif #else - DIE( + DIE(aTHX_ "The crypt() function is unimplemented due to excessive paranoia."); #endif SETs(TARG); @@ -2611,7 +2611,7 @@ PP(pp_aslice) svp = av_fetch(av, elem, lval); if (lval) { if (!svp || *svp == &PL_sv_undef) - DIE(PL_no_aelem, elem); + DIE(aTHX_ PL_no_aelem, elem); if (PL_op->op_private & OPpLVAL_INTRO) save_aelem(av, elem, svp); } @@ -2661,12 +2661,12 @@ PP(pp_each) PP(pp_values) { - return do_kv(ARGS); + return do_kv(); } PP(pp_keys) { - return do_kv(ARGS); + return do_kv(); } PP(pp_delete) @@ -2686,7 +2686,7 @@ PP(pp_delete) if (hvtype == SVt_PVHV) sv = hv_delete_ent(hv, *MARK, discard, 0); else - DIE("Not a HASH reference"); + DIE(aTHX_ "Not a HASH reference"); *MARK = sv ? sv : &PL_sv_undef; } if (discard) @@ -2703,7 +2703,7 @@ PP(pp_delete) if (SvTYPE(hv) == SVt_PVHV) sv = hv_delete_ent(hv, keysv, discard, 0); else - DIE("Not a HASH reference"); + DIE(aTHX_ "Not a HASH reference"); if (!sv) sv = &PL_sv_undef; if (!discard) @@ -2726,7 +2726,7 @@ PP(pp_exists) RETPUSHYES; } else { - DIE("Not a HASH reference"); + DIE(aTHX_ "Not a HASH reference"); } RETPUSHNO; } @@ -2739,7 +2739,7 @@ PP(pp_hslice) I32 realhv = (SvTYPE(hv) == SVt_PVHV); if (!realhv && PL_op->op_private & OPpLVAL_INTRO) - DIE("Can't localize pseudo-hash element"); + DIE(aTHX_ "Can't localize pseudo-hash element"); if (realhv || SvTYPE(hv) == SVt_PVAV) { while (++MARK <= SP) { @@ -2755,7 +2755,7 @@ PP(pp_hslice) if (lval) { if (!svp || *svp == &PL_sv_undef) { STRLEN n_a; - DIE(PL_no_helem, SvPV(keysv, n_a)); + DIE(aTHX_ PL_no_helem, SvPV(keysv, n_a)); } if (PL_op->op_private & OPpLVAL_INTRO) save_helem(hv, keysv, svp); @@ -2862,7 +2862,7 @@ PP(pp_anonhash) if (MARK < SP) sv_setsv(val, *++MARK); else if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Odd number of elements in hash assignment"); + Perl_warner(aTHX_ WARN_UNSAFE, "Odd number of elements in hash assignment"); (void)hv_store_ent(hv,key,val,0); } SP = ORIGMARK; @@ -2905,7 +2905,7 @@ PP(pp_splice) else offset -= PL_curcop->cop_arybase; if (offset < 0) - DIE(PL_no_aelem, i); + DIE(aTHX_ PL_no_aelem, i); if (++MARK < SP) { length = SvIVx(*MARK++); if (length < 0) { @@ -3198,7 +3198,7 @@ PP(pp_reverse) s += UTF8SKIP(s); down = (char*)(s - 1); if (s > send || !((*down & 0xc0) == 0x80)) { - warn("Malformed UTF-8 character"); + Perl_warn(aTHX_ "Malformed UTF-8 character"); break; } while (down > up) { @@ -3225,7 +3225,7 @@ PP(pp_reverse) } STATIC SV * -mul128(pTHX_ SV *sv, U8 m) +S_mul128(pTHX_ SV *sv, U8 m) { STRLEN len; char *s = SvPV(sv, len); @@ -3336,7 +3336,7 @@ PP(pp_unpack) pat++; } else - croak("'!' allowed only after types %s", natstr); + Perl_croak(aTHX_ "'!' allowed only after types %s", natstr); } if (pat >= patend) len = 1; @@ -3353,10 +3353,10 @@ PP(pp_unpack) len = (datumtype != '@'); switch(datumtype) { default: - croak("Invalid type in unpack: '%c'", (int)datumtype); + Perl_croak(aTHX_ "Invalid type in unpack: '%c'", (int)datumtype); case ',': /* grandfather in commas but with a warning */ if (commas++ == 0 && ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Invalid type in unpack: '%c'", (int)datumtype); + Perl_warner(aTHX_ WARN_UNSAFE, "Invalid type in unpack: '%c'", (int)datumtype); break; case '%': if (len == 1 && pat[-1] != '1') @@ -3369,17 +3369,17 @@ PP(pp_unpack) break; case '@': if (len > strend - strbeg) - DIE("@ outside of string"); + DIE(aTHX_ "@ outside of string"); s = strbeg + len; break; case 'X': if (len > s - strbeg) - DIE("X outside of string"); + DIE(aTHX_ "X outside of string"); s -= len; break; case 'x': if (len > strend - s) - DIE("x outside of string"); + DIE(aTHX_ "x outside of string"); s += len; break; case 'A': @@ -3984,7 +3984,7 @@ PP(pp_unpack) char *t; STRLEN n_a; - sv = newSVpvf("%.*Vu", (int)TYPE_DIGITS(UV), auv); + sv = Perl_newSVpvf(aTHX_ "%.*Vu", (int)TYPE_DIGITS(UV), auv); while (s < strend) { sv = mul128(sv, *s & 0x7f); if (!(*s++ & 0x80)) { @@ -4002,7 +4002,7 @@ PP(pp_unpack) } } if ((s >= strend) && bytes) - croak("Unterminated compressed integer"); + Perl_croak(aTHX_ "Unterminated compressed integer"); } break; case 'P': @@ -4210,7 +4210,7 @@ PP(pp_unpack) } STATIC void -doencodes(pTHX_ register SV *sv, register char *s, register I32 len) +S_doencodes(pTHX_ register SV *sv, register char *s, register I32 len) { char hunk[5]; @@ -4238,7 +4238,7 @@ doencodes(pTHX_ register SV *sv, register char *s, register I32 len) } STATIC SV * -is_an_int(pTHX_ char *s, STRLEN l) +S_is_an_int(pTHX_ char *s, STRLEN l) { STRLEN n_a; SV *result = newSVpvn(s, l); @@ -4288,7 +4288,7 @@ is_an_int(pTHX_ char *s, STRLEN l) /* pnum must be '\0' terminated */ STATIC int -div128(pTHX_ SV *pnum, bool *done) +S_div128(pTHX_ SV *pnum, bool *done) { STRLEN len; char *s = SvPV(pnum, len); @@ -4369,7 +4369,7 @@ PP(pp_pack) pat++; } else - croak("'!' allowed only after types %s", natstr); + Perl_croak(aTHX_ "'!' allowed only after types %s", natstr); } if (*pat == '*') { len = strchr("@Xxu", datumtype) ? 0 : items; @@ -4384,13 +4384,13 @@ PP(pp_pack) len = 1; switch(datumtype) { default: - croak("Invalid type in pack: '%c'", (int)datumtype); + Perl_croak(aTHX_ "Invalid type in pack: '%c'", (int)datumtype); case ',': /* grandfather in commas but with a warning */ if (commas++ == 0 && ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Invalid type in pack: '%c'", (int)datumtype); + Perl_warner(aTHX_ WARN_UNSAFE, "Invalid type in pack: '%c'", (int)datumtype); break; case '%': - DIE("%% may only be used in unpack"); + DIE(aTHX_ "%% may only be used in unpack"); case '@': len -= SvCUR(cat); if (len > 0) @@ -4402,7 +4402,7 @@ PP(pp_pack) case 'X': shrink: if (SvCUR(cat) < len) - DIE("X outside of string"); + DIE(aTHX_ "X outside of string"); SvCUR(cat) -= len; *SvEND(cat) = '\0'; break; @@ -4670,7 +4670,7 @@ PP(pp_pack) adouble = floor(SvNV(fromstr)); if (adouble < 0) - croak("Cannot compress negative numbers"); + Perl_croak(aTHX_ "Cannot compress negative numbers"); if ( #ifdef BW_BITS @@ -4704,7 +4704,7 @@ PP(pp_pack) /* Copy string and check for compliance */ from = SvPV(fromstr, len); if ((norm = is_an_int(from, len)) == NULL) - croak("can compress only unsigned integer"); + Perl_croak(aTHX_ "can compress only unsigned integer"); New('w', result, len, char); in = result + len; @@ -4724,14 +4724,14 @@ PP(pp_pack) double next = floor(adouble / 128); *--in = (unsigned char)(adouble - (next * 128)) | 0x80; if (--in < buf) /* this cannot happen ;-) */ - croak ("Cannot compress integer"); + Perl_croak(aTHX_ "Cannot compress integer"); adouble = next; } while (adouble > 0); buf[sizeof(buf) - 1] &= 0x7f; /* clear continue bit */ sv_catpvn(cat, in, (buf + sizeof(buf)) - in); } else - croak("Cannot compress non integer"); + Perl_croak(aTHX_ "Cannot compress non integer"); } break; case 'i': @@ -4831,7 +4831,7 @@ PP(pp_pack) * gone. */ if (ckWARN(WARN_UNSAFE) && (SvTEMP(fromstr) || SvPADTMP(fromstr))) - warner(WARN_UNSAFE, + Perl_warner(aTHX_ WARN_UNSAFE, "Attempt to pack pointer to temporary value"); if (SvPOK(fromstr) || SvNIOK(fromstr)) aptr = SvPV(fromstr,n_a); @@ -4903,7 +4903,7 @@ PP(pp_split) pm = (PMOP*)POPs; #endif if (!pm || !s) - DIE("panic: do_split"); + DIE(aTHX_ "panic: do_split"); rx = pm->op_pmregexp; TAINT_IF((pm->op_pmflags & PMf_LOCALE) && @@ -5037,7 +5037,7 @@ PP(pp_split) else { maxiters += (strend - s) * rx->nparens; while (s < strend && --limit && - CALLREGEXEC(rx, s, strend, orig, 1, sv, NULL, 0)) + CALLREGEXEC(aTHX_ rx, s, strend, orig, 1, sv, NULL, 0)) { TAINT_IF(RX_MATCH_TAINTED(rx)); if (RX_MATCH_COPIED(rx) && rx->subbeg != orig) { @@ -5075,7 +5075,7 @@ PP(pp_split) LEAVE_SCOPE(oldsave); iters = (SP - PL_stack_base) - base; if (iters > maxiters) - DIE("Split loop"); + DIE(aTHX_ "Split loop"); /* keep field after final delim? */ if (s < strend || (iters && origlimit)) { @@ -5143,10 +5143,10 @@ Perl_unlock_condpair(pTHX_ void *svv) MAGIC *mg = mg_find((SV*)svv, 'm'); if (!mg) - croak("panic: unlock_condpair unlocking non-mutex"); + Perl_croak(aTHX_ "panic: unlock_condpair unlocking non-mutex"); MUTEX_LOCK(MgMUTEXP(mg)); if (MgOWNER(mg) != thr) - croak("panic: unlock_condpair unlocking mutex that we don't own"); + Perl_croak(aTHX_ "panic: unlock_condpair unlocking mutex that we don't own"); MgOWNER(mg) = 0; COND_SIGNAL(MgOWNERCONDP(mg)); DEBUG_S(PerlIO_printf(PerlIO_stderr(), "0x%lx: unlock 0x%lx\n", @@ -5177,7 +5177,7 @@ PP(pp_lock) DEBUG_S(PerlIO_printf(PerlIO_stderr(), "0x%lx: pp_lock lock 0x%lx\n", (unsigned long)thr, (unsigned long)sv);) MUTEX_UNLOCK(MgMUTEXP(mg)); - save_destructor(unlock_condpair, sv); + save_destructor(Perl_unlock_condpair, sv); } #endif /* USE_THREADS */ if (SvTYPE(retsv) == SVt_PVAV || SvTYPE(retsv) == SVt_PVHV @@ -5199,6 +5199,6 @@ PP(pp_threadsv) PUSHs(THREADSV(PL_op->op_targ)); RETURN; #else - DIE("tried to access per-thread data in non-threaded perl"); + DIE(aTHX_ "tried to access per-thread data in non-threaded perl"); #endif /* USE_THREADS */ } diff --git a/pp.h b/pp.h index 2b8f233..ca8dc35 100644 --- a/pp.h +++ b/pp.h @@ -15,7 +15,7 @@ #define dARGS #endif /* USE_THREADS */ -#define PP(s) OP * s(ARGSproto) +#define PP(s) OP * Perl_##s(pTHX) #define SP sp #define MARK mark @@ -50,7 +50,7 @@ #define dTARG SV *targ #define NORMAL PL_op->op_next -#define DIE return die +#define DIE return Perl_die #define PUTBACK PL_stack_sp = sp #define RETURN return PUTBACK, NORMAL @@ -218,7 +218,7 @@ #define setAGAIN(ref) sv = arg = ref; \ if (!SvROK(ref)) \ - croak("Overloaded dereference did not return a reference"); \ + Perl_croak(aTHX_ "Overloaded dereference did not return a reference"); \ goto am_again; #define tryAMAGICunDEREF(meth) tryAMAGICunW(meth,setAGAIN,0,(void)0) diff --git a/pp_ctl.c b/pp_ctl.c index f6baf4e..e253b92 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -101,7 +101,7 @@ PP(pp_regcomp) PL_reginterp_cnt = I32_MAX; /* Mark as safe. */ pm->op_pmflags = pm->op_pmpermflags; /* reset case sensitivity */ - pm->op_pmregexp = CALLREGCOMP(t, t + len, pm); + pm->op_pmregexp = CALLREGCOMP(aTHX_ t, t + len, pm); PL_reginterp_cnt = 0; /* XXXX Be extra paranoid - needed inside tie/overload accessors. */ } @@ -143,14 +143,14 @@ PP(pp_substcont) if (cx->sb_iters++) { if (cx->sb_iters > cx->sb_maxiters) - DIE("Substitution loop"); + DIE(aTHX_ "Substitution loop"); if (!(cx->sb_rxtainted & 2) && SvTAINTED(TOPs)) cx->sb_rxtainted |= 2; sv_catsv(dstr, POPs); /* Are we done */ - if (cx->sb_once || !CALLREGEXEC(rx, s, cx->sb_strend, orig, + if (cx->sb_once || !CALLREGEXEC(aTHX_ rx, s, cx->sb_strend, orig, s == m, cx->sb_targ, NULL, ((cx->sb_rflags & REXEC_COPY_STR) ? (REXEC_IGNOREPOS|REXEC_NOT_FIRST) @@ -350,7 +350,7 @@ PP(pp_formline) else { sv = &PL_sv_no; if (ckWARN(WARN_SYNTAX)) - warner(WARN_SYNTAX, "Not enough format arguments"); + Perl_warner(aTHX_ WARN_SYNTAX, "Not enough format arguments"); } break; @@ -593,7 +593,7 @@ PP(pp_formline) if (lines == 200) { arg = t - linemark; if (strnEQ(linemark, linemark - arg, arg)) - DIE("Runaway format"); + DIE(aTHX_ "Runaway format"); } FmLINES(PL_formtarget) = lines; SP = ORIGMARK; @@ -653,8 +653,8 @@ PP(pp_grepstart) RETURNOP(PL_op->op_next->op_next); } PL_stack_sp = PL_stack_base + *PL_markstack_ptr + 1; - pp_pushmark(ARGS); /* push dst */ - pp_pushmark(ARGS); /* push src */ + pp_pushmark(); /* push dst */ + pp_pushmark(); /* push src */ ENTER; /* enter outer scope */ SAVETMPS; @@ -669,13 +669,13 @@ PP(pp_grepstart) PUTBACK; if (PL_op->op_type == OP_MAPSTART) - pp_pushmark(ARGS); /* push top */ + pp_pushmark(); /* push top */ return ((LOGOP*)PL_op->op_next)->op_other; } PP(pp_mapstart) { - DIE("panic: mapstart"); /* uses grepstart */ + DIE(aTHX_ "panic: mapstart"); /* uses grepstart */ } PP(pp_mapwhile) @@ -742,7 +742,7 @@ PP(pp_mapwhile) } STATIC I32 -sv_ncmp(pTHX_ SV *a, SV *b) +S_sv_ncmp(pTHX_ SV *a, SV *b) { double nv1 = SvNV(a); double nv2 = SvNV(b); @@ -750,7 +750,7 @@ sv_ncmp(pTHX_ SV *a, SV *b) } STATIC I32 -sv_i_ncmp(pTHX_ SV *a, SV *b) +S_sv_i_ncmp(pTHX_ SV *a, SV *b) { IV iv1 = SvIV(a); IV iv2 = SvIV(b); @@ -768,7 +768,7 @@ sv_i_ncmp(pTHX_ SV *a, SV *b) } STMT_END STATIC I32 -amagic_ncmp(pTHX_ register SV *a, register SV *b) +S_amagic_ncmp(pTHX_ register SV *a, register SV *b) { SV *tmpsv; tryCALL_AMAGICbin(a,b,ncmp,&tmpsv); @@ -790,7 +790,7 @@ amagic_ncmp(pTHX_ register SV *a, register SV *b) } STATIC I32 -amagic_i_ncmp(pTHX_ register SV *a, register SV *b) +S_amagic_i_ncmp(pTHX_ register SV *a, register SV *b) { SV *tmpsv; tryCALL_AMAGICbin(a,b,ncmp,&tmpsv); @@ -812,7 +812,7 @@ amagic_i_ncmp(pTHX_ register SV *a, register SV *b) } STATIC I32 -amagic_cmp(pTHX_ register SV *str1, register SV *str2) +S_amagic_cmp(pTHX_ register SV *str1, register SV *str2) { SV *tmpsv; tryCALL_AMAGICbin(str1,str2,scmp,&tmpsv); @@ -834,7 +834,7 @@ amagic_cmp(pTHX_ register SV *str1, register SV *str2) } STATIC I32 -amagic_cmp_locale(pTHX_ register SV *str1, register SV *str2) +S_amagic_cmp_locale(pTHX_ register SV *str1, register SV *str2) { SV *tmpsv; tryCALL_AMAGICbin(str1,str2,scmp,&tmpsv); @@ -890,16 +890,16 @@ PP(pp_sort) SV *tmpstr = sv_newmortal(); gv_efullname3(tmpstr, gv, Nullch); if (cv && CvXSUB(cv)) - DIE("Xsub \"%s\" called in sort", SvPVX(tmpstr)); - DIE("Undefined sort subroutine \"%s\" called", + DIE(aTHX_ "Xsub \"%s\" called in sort", SvPVX(tmpstr)); + DIE(aTHX_ "Undefined sort subroutine \"%s\" called", SvPVX(tmpstr)); } if (cv) { if (CvXSUB(cv)) - DIE("Xsub called in sort"); - DIE("Undefined subroutine in sort"); + DIE(aTHX_ "Xsub called in sort"); + DIE(aTHX_ "Undefined subroutine in sort"); } - DIE("Not a CODE reference in sort"); + DIE(aTHX_ "Not a CODE reference in sort"); } PL_sortcop = CvSTART(cv); SAVESPTR(CvROOT(cv)->op_ppaddr); @@ -960,7 +960,7 @@ PP(pp_sort) (void)SvREFCNT_inc(cv); /* in preparation for POPSUB */ } PL_sortcxix = cxstack_ix; - qsortsv((myorigmark+1), max, FUNC_NAME_TO_PTR(sortcv)); + qsortsv((myorigmark+1), max, FUNC_NAME_TO_PTR(S_sortcv)); POPBLOCK(cx,PL_curpm); PL_stack_sp = newsp; @@ -975,18 +975,18 @@ PP(pp_sort) (PL_op->op_private & OPpSORT_NUMERIC) ? ( (PL_op->op_private & OPpSORT_INTEGER) ? ( overloading - ? FUNC_NAME_TO_PTR(amagic_i_ncmp) - : FUNC_NAME_TO_PTR(sv_i_ncmp)) + ? FUNC_NAME_TO_PTR(S_amagic_i_ncmp) + : FUNC_NAME_TO_PTR(S_sv_i_ncmp)) : ( overloading - ? FUNC_NAME_TO_PTR(amagic_ncmp) - : FUNC_NAME_TO_PTR(sv_ncmp))) + ? FUNC_NAME_TO_PTR(S_amagic_ncmp) + : FUNC_NAME_TO_PTR(S_sv_ncmp))) : ( (PL_op->op_private & OPpLOCALE) ? ( overloading - ? FUNC_NAME_TO_PTR(amagic_cmp_locale) - : FUNC_NAME_TO_PTR(sv_cmp_locale)) + ? FUNC_NAME_TO_PTR(S_amagic_cmp_locale) + : FUNC_NAME_TO_PTR(Perl_sv_cmp_locale)) : ( overloading - ? FUNC_NAME_TO_PTR(amagic_cmp) - : FUNC_NAME_TO_PTR(sv_cmp) ))); + ? FUNC_NAME_TO_PTR(S_amagic_cmp) + : FUNC_NAME_TO_PTR(Perl_sv_cmp) ))); if (PL_op->op_private & OPpSORT_REVERSE) { SV **p = ORIGMARK+1; SV **q = ORIGMARK+max; @@ -1066,7 +1066,7 @@ PP(pp_flop) (looks_like_number(left) && *SvPVX(left) != '0') ) { if (SvNV(left) < IV_MIN || SvNV(right) > IV_MAX) - croak("Range iterator outside integer range"); + Perl_croak(aTHX_ "Range iterator outside integer range"); i = SvIV(left); max = SvIV(right); if (max >= i) { @@ -1116,7 +1116,7 @@ PP(pp_flop) /* Control. */ STATIC I32 -dopoptolabel(pTHX_ char *label) +S_dopoptolabel(pTHX_ char *label) { dTHR; register I32 i; @@ -1127,32 +1127,32 @@ dopoptolabel(pTHX_ char *label) switch (CxTYPE(cx)) { case CXt_SUBST: if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Exiting substitution via %s", + Perl_warner(aTHX_ WARN_UNSAFE, "Exiting substitution via %s", PL_op_name[PL_op->op_type]); break; case CXt_SUB: if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Exiting subroutine via %s", + Perl_warner(aTHX_ WARN_UNSAFE, "Exiting subroutine via %s", PL_op_name[PL_op->op_type]); break; case CXt_EVAL: if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Exiting eval via %s", + Perl_warner(aTHX_ WARN_UNSAFE, "Exiting eval via %s", PL_op_name[PL_op->op_type]); break; case CXt_NULL: if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Exiting pseudo-block via %s", + Perl_warner(aTHX_ WARN_UNSAFE, "Exiting pseudo-block via %s", PL_op_name[PL_op->op_type]); return -1; case CXt_LOOP: if (!cx->blk_loop.label || strNE(label, cx->blk_loop.label) ) { - DEBUG_l(deb("(Skipping label #%ld %s)\n", + DEBUG_l(Perl_deb(aTHX_ "(Skipping label #%ld %s)\n", (long)i, cx->blk_loop.label)); continue; } - DEBUG_l( deb("(Found label #%ld %s)\n", (long)i, label)); + DEBUG_l( Perl_deb(aTHX_ "(Found label #%ld %s)\n", (long)i, label)); return i; } } @@ -1184,21 +1184,21 @@ Perl_block_gimme(pTHX) case G_ARRAY: return G_ARRAY; default: - croak("panic: bad gimme: %d\n", cxstack[cxix].blk_gimme); + Perl_croak(aTHX_ "panic: bad gimme: %d\n", cxstack[cxix].blk_gimme); /* NOTREACHED */ return 0; } } STATIC I32 -dopoptosub(pTHX_ I32 startingblock) +S_dopoptosub(pTHX_ I32 startingblock) { dTHR; return dopoptosub_at(cxstack, startingblock); } STATIC I32 -dopoptosub_at(pTHX_ PERL_CONTEXT *cxstk, I32 startingblock) +S_dopoptosub_at(pTHX_ PERL_CONTEXT *cxstk, I32 startingblock) { dTHR; I32 i; @@ -1210,7 +1210,7 @@ dopoptosub_at(pTHX_ PERL_CONTEXT *cxstk, I32 startingblock) continue; case CXt_EVAL: case CXt_SUB: - DEBUG_l( deb("(Found sub #%ld)\n", (long)i)); + DEBUG_l( Perl_deb(aTHX_ "(Found sub #%ld)\n", (long)i)); return i; } } @@ -1218,7 +1218,7 @@ dopoptosub_at(pTHX_ PERL_CONTEXT *cxstk, I32 startingblock) } STATIC I32 -dopoptoeval(pTHX_ I32 startingblock) +S_dopoptoeval(pTHX_ I32 startingblock) { dTHR; I32 i; @@ -1229,7 +1229,7 @@ dopoptoeval(pTHX_ I32 startingblock) default: continue; case CXt_EVAL: - DEBUG_l( deb("(Found eval #%ld)\n", (long)i)); + DEBUG_l( Perl_deb(aTHX_ "(Found eval #%ld)\n", (long)i)); return i; } } @@ -1237,7 +1237,7 @@ dopoptoeval(pTHX_ I32 startingblock) } STATIC I32 -dopoptoloop(pTHX_ I32 startingblock) +S_dopoptoloop(pTHX_ I32 startingblock) { dTHR; I32 i; @@ -1247,26 +1247,26 @@ dopoptoloop(pTHX_ I32 startingblock) switch (CxTYPE(cx)) { case CXt_SUBST: if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Exiting substitution via %s", + Perl_warner(aTHX_ WARN_UNSAFE, "Exiting substitution via %s", PL_op_name[PL_op->op_type]); break; case CXt_SUB: if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Exiting subroutine via %s", + Perl_warner(aTHX_ WARN_UNSAFE, "Exiting subroutine via %s", PL_op_name[PL_op->op_type]); break; case CXt_EVAL: if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Exiting eval via %s", + Perl_warner(aTHX_ WARN_UNSAFE, "Exiting eval via %s", PL_op_name[PL_op->op_type]); break; case CXt_NULL: if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Exiting pseudo-block via %s", + Perl_warner(aTHX_ WARN_UNSAFE, "Exiting pseudo-block via %s", PL_op_name[PL_op->op_type]); return -1; case CXt_LOOP: - DEBUG_l( deb("(Found loop #%ld)\n", (long)i)); + DEBUG_l( Perl_deb(aTHX_ "(Found loop #%ld)\n", (long)i)); return i; } } @@ -1316,7 +1316,7 @@ Perl_dounwind(pTHX_ I32 cxix) * relying on the incidental global values. */ STATIC void -free_closures(pTHX) +S_free_closures(pTHX) { dTHR; SV **svp = AvARRAY(PL_comppad_name); @@ -1371,7 +1371,7 @@ Perl_die_where(pTHX_ char *message, STRLEN msglen) sv_catpvn(err, message, msglen); if (ckWARN(WARN_UNSAFE)) { STRLEN start = SvCUR(err)-msglen-sizeof(prefix)+1; - warner(WARN_UNSAFE, SvPVX(err)+start); + Perl_warner(aTHX_ WARN_UNSAFE, SvPVX(err)+start); } } sv_inc(*svp); @@ -1410,7 +1410,7 @@ Perl_die_where(pTHX_ char *message, STRLEN msglen) if (optype == OP_REQUIRE) { char* msg = SvPVx(ERRSV, n_a); - DIE("%s", *msg ? msg : "Compilation failed in require"); + DIE(aTHX_ "%s", *msg ? msg : "Compilation failed in require"); } return pop_return(); } @@ -1577,7 +1577,7 @@ PP(pp_caller) } STATIC I32 -sortcv(pTHX_ SV *a, SV *b) +S_sortcv(pTHX_ SV *a, SV *b) { dTHR; I32 oldsaveix = PL_savestack_ix; @@ -1587,11 +1587,11 @@ sortcv(pTHX_ SV *a, SV *b) GvSV(PL_secondgv) = b; PL_stack_sp = PL_stack_base; PL_op = PL_sortcop; - CALLRUNOPS(); + CALLRUNOPS(aTHX); if (PL_stack_sp != PL_stack_base + 1) - croak("Sort subroutine didn't return single value"); + Perl_croak(aTHX_ "Sort subroutine didn't return single value"); if (!SvNIOKp(*PL_stack_sp)) - croak("Sort subroutine didn't return a numeric value"); + Perl_croak(aTHX_ "Sort subroutine didn't return a numeric value"); result = SvIV(*PL_stack_sp); while (PL_scopestack_ix > oldscopeix) { LEAVE; @@ -1639,7 +1639,7 @@ PP(pp_dbstate) gv = PL_DBgv; cv = GvCV(gv); if (!cv) - DIE("No DB::DB routine defined"); + DIE(aTHX_ "No DB::DB routine defined"); if (CvDEPTH(cv) >= 1 && !(PL_debug & (1<<30))) /* don't do recursive DB::DB call */ return NORMAL; @@ -1712,7 +1712,7 @@ PP(pp_enteriter) (looks_like_number(sv) && *SvPVX(sv) != '0')) { if (SvNV(sv) < IV_MIN || SvNV((SV*)cx->blk_loop.iterary) >= IV_MAX) - croak("Range iterator outside integer range"); + Perl_croak(aTHX_ "Range iterator outside integer range"); cx->blk_loop.iterix = SvIV(sv); cx->blk_loop.itermax = SvIV((SV*)cx->blk_loop.iterary); } @@ -1810,7 +1810,7 @@ PP(pp_return) cxix = dopoptosub(cxstack_ix); if (cxix < 0) - DIE("Can't return outside a subroutine"); + DIE(aTHX_ "Can't return outside a subroutine"); if (cxix < cxstack_ix) dounwind(cxix); @@ -1831,11 +1831,11 @@ PP(pp_return) /* Unassume the success we assumed earlier. */ char *name = cx->blk_eval.old_name; (void)hv_delete(GvHVn(PL_incgv), name, strlen(name), G_DISCARD); - DIE("%s did not return a true value", name); + DIE(aTHX_ "%s did not return a true value", name); } break; default: - DIE("panic: return"); + DIE(aTHX_ "panic: return"); } TAINT_NOT; @@ -1895,12 +1895,12 @@ PP(pp_last) if (PL_op->op_flags & OPf_SPECIAL) { cxix = dopoptoloop(cxstack_ix); if (cxix < 0) - DIE("Can't \"last\" outside a block"); + DIE(aTHX_ "Can't \"last\" outside a block"); } else { cxix = dopoptolabel(cPVOP->op_pv); if (cxix < 0) - DIE("Label not found for \"last %s\"", cPVOP->op_pv); + DIE(aTHX_ "Label not found for \"last %s\"", cPVOP->op_pv); } if (cxix < cxstack_ix) dounwind(cxix); @@ -1922,7 +1922,7 @@ PP(pp_last) nextop = pop_return(); break; default: - DIE("panic: last"); + DIE(aTHX_ "panic: last"); } TAINT_NOT; @@ -1968,12 +1968,12 @@ PP(pp_next) if (PL_op->op_flags & OPf_SPECIAL) { cxix = dopoptoloop(cxstack_ix); if (cxix < 0) - DIE("Can't \"next\" outside a block"); + DIE(aTHX_ "Can't \"next\" outside a block"); } else { cxix = dopoptolabel(cPVOP->op_pv); if (cxix < 0) - DIE("Label not found for \"next %s\"", cPVOP->op_pv); + DIE(aTHX_ "Label not found for \"next %s\"", cPVOP->op_pv); } if (cxix < cxstack_ix) dounwind(cxix); @@ -1993,12 +1993,12 @@ PP(pp_redo) if (PL_op->op_flags & OPf_SPECIAL) { cxix = dopoptoloop(cxstack_ix); if (cxix < 0) - DIE("Can't \"redo\" outside a block"); + DIE(aTHX_ "Can't \"redo\" outside a block"); } else { cxix = dopoptolabel(cPVOP->op_pv); if (cxix < 0) - DIE("Label not found for \"redo %s\"", cPVOP->op_pv); + DIE(aTHX_ "Label not found for \"redo %s\"", cPVOP->op_pv); } if (cxix < cxstack_ix) dounwind(cxix); @@ -2010,14 +2010,14 @@ PP(pp_redo) } STATIC OP * -dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit) +S_dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit) { OP *kid; OP **ops = opstack; static char too_deep[] = "Target of goto is too deeply nested"; if (ops >= oplimit) - croak(too_deep); + Perl_croak(aTHX_ too_deep); if (o->op_type == OP_LEAVE || o->op_type == OP_SCOPE || o->op_type == OP_LEAVELOOP || @@ -2025,7 +2025,7 @@ dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit) { *ops++ = cUNOPo->op_first; if (ops >= oplimit) - croak(too_deep); + Perl_croak(aTHX_ too_deep); } *ops = 0; if (o->op_flags & OPf_KIDS) { @@ -2054,7 +2054,7 @@ dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit) PP(pp_dump) { - return pp_goto(ARGS); + return pp_goto(); /*NOTREACHED*/ } @@ -2100,20 +2100,20 @@ PP(pp_goto) goto retry; tmpstr = sv_newmortal(); gv_efullname3(tmpstr, gv, Nullch); - DIE("Goto undefined subroutine &%s",SvPVX(tmpstr)); + DIE(aTHX_ "Goto undefined subroutine &%s",SvPVX(tmpstr)); } - DIE("Goto undefined subroutine"); + DIE(aTHX_ "Goto undefined subroutine"); } /* First do some returnish stuff. */ cxix = dopoptosub(cxstack_ix); if (cxix < 0) - DIE("Can't goto subroutine outside a subroutine"); + DIE(aTHX_ "Can't goto subroutine outside a subroutine"); if (cxix < cxstack_ix) dounwind(cxix); TOPBLOCK(cx); if (CxTYPE(cx) == CXt_EVAL && cx->blk_eval.old_op_type == OP_ENTEREVAL) - DIE("Can't goto subroutine from an eval-string"); + DIE(aTHX_ "Can't goto subroutine from an eval-string"); mark = PL_stack_sp; if (CxTYPE(cx) == CXt_SUB && cx->blk_sub.hasargs) { /* put @_ back onto stack */ @@ -2179,7 +2179,7 @@ PP(pp_goto) PL_stack_sp--; /* There is no cv arg. */ /* Push a mark for the start of arglist */ PUSHMARK(mark); - (void)(*CvXSUB(cv))(cv _PERL_OBJECT_THIS); + (void)(*CvXSUB(cv))(aTHX_ cv); /* Pop the current context like a decent sub should */ POPBLOCK(cx, PL_curpm); /* Do _not_ use PUTBACK, keep the XSUB's return stack! */ @@ -2328,12 +2328,12 @@ PP(pp_goto) else { label = SvPV(sv,n_a); if (!(do_dump || *label)) - DIE(must_have_label); + DIE(aTHX_ must_have_label); } } else if (PL_op->op_flags & OPf_SPECIAL) { if (! do_dump) - DIE(must_have_label); + DIE(aTHX_ must_have_label); } else label = cPVOP->op_pv; @@ -2369,10 +2369,10 @@ PP(pp_goto) } /* FALL THROUGH */ case CXt_NULL: - DIE("Can't \"goto\" outside a block"); + DIE(aTHX_ "Can't \"goto\" outside a block"); default: if (ix) - DIE("panic: goto"); + DIE(aTHX_ "panic: goto"); gotoprobe = PL_main_root; break; } @@ -2383,7 +2383,7 @@ PP(pp_goto) PL_lastgotoprobe = gotoprobe; } if (!retop) - DIE("Can't find label %s", label); + DIE(aTHX_ "Can't find label %s", label); /* pop unwanted frames */ @@ -2407,9 +2407,9 @@ PP(pp_goto) /* Eventually we may want to stack the needed arguments * for each op. For now, we punt on the hard ones. */ if (PL_op->op_type == OP_ENTERITER) - DIE("Can't \"goto\" into the middle of a foreach loop", + DIE(aTHX_ "Can't \"goto\" into the middle of a foreach loop", label); - (CALLOP->op_ppaddr)(ARGS); + (CALLOP->op_ppaddr)(aTHX); } PL_op = oldop; } @@ -2494,7 +2494,7 @@ PP(pp_cswitch) /* Eval. */ STATIC void -save_lines(pTHX_ AV *array, SV *sv) +S_save_lines(pTHX_ AV *array, SV *sv) { register char *s = SvPVX(sv); register char *send = SvPVX(sv) + SvCUR(sv); @@ -2518,14 +2518,14 @@ save_lines(pTHX_ AV *array, SV *sv) } STATIC void * -docatch_body(pTHX_ va_list args) +S_docatch_body(pTHX_ va_list args) { - CALLRUNOPS(); + CALLRUNOPS(aTHX); return NULL; } STATIC OP * -docatch(pTHX_ OP *o) +S_docatch(pTHX_ OP *o) { dTHR; int ret; @@ -2536,7 +2536,7 @@ docatch(pTHX_ OP *o) #endif PL_op = o; redo_body: - CALLPROTECT(&ret, FUNC_NAME_TO_PTR(docatch_body)); + CALLPROTECT(aTHX_ &ret, FUNC_NAME_TO_PTR(S_docatch_body)); switch (ret) { case 0: break; @@ -2625,7 +2625,7 @@ Perl_sv_compile_2op(pTHX_ SV *sv, OP** startop, char *code, AV** avp) /* With USE_THREADS, eval_owner must be held on entry to doeval */ STATIC OP * -doeval(pTHX_ int gimme, OP** startop) +S_doeval(pTHX_ int gimme, OP** startop) { dSP; OP *saveop = PL_op; @@ -2738,13 +2738,13 @@ doeval(pTHX_ int gimme, OP** startop) LEAVE; if (optype == OP_REQUIRE) { char* msg = SvPVx(ERRSV, n_a); - DIE("%s", *msg ? msg : "Compilation failed in require"); + DIE(aTHX_ "%s", *msg ? msg : "Compilation failed in require"); } else if (startop) { char* msg = SvPVx(ERRSV, n_a); POPBLOCK(cx,PL_curpm); POPEVAL(cx); - croak("%sCompilation failed in regexp", (*msg ? msg : "Unknown error\n")); + Perl_croak(aTHX_ "%sCompilation failed in regexp", (*msg ? msg : "Unknown error\n")); } SvREFCNT_dec(PL_rs); PL_rs = SvREFCNT_inc(PL_nrs); @@ -2802,13 +2802,13 @@ doeval(pTHX_ int gimme, OP** startop) } STATIC PerlIO * -doopen_pmc(pTHX_ const char *name, const char *mode) +S_doopen_pmc(pTHX_ const char *name, const char *mode) { STRLEN namelen = strlen(name); PerlIO *fp; if (namelen > 3 && strcmp(name + namelen - 3, ".pm") == 0) { - SV *pmcsv = newSVpvf("%s%c", name, 'c'); + SV *pmcsv = Perl_newSVpvf(aTHX_ "%s%c", name, 'c'); char *pmc = SvPV_nolen(pmcsv); Stat_t pmstat; Stat_t pmcstat; @@ -2851,13 +2851,13 @@ PP(pp_require) if (SvNIOKp(sv) && !SvPOKp(sv)) { SET_NUMERIC_STANDARD(); if (atof(PL_patchlevel) + 0.00000999 < SvNV(sv)) - DIE("Perl %s required--this is only version %s, stopped", + DIE(aTHX_ "Perl %s required--this is only version %s, stopped", SvPV(sv,n_a),PL_patchlevel); RETPUSHYES; } name = SvPV(sv, len); if (!(name && len > 0 && *name)) - DIE("Null filename used"); + DIE(aTHX_ "Null filename used"); TAINT_PROPER("require"); if (PL_op->op_type == OP_REQUIRE && (svp = hv_fetch(GvHVn(PL_incgv), name, len, 0)) && @@ -2903,7 +2903,7 @@ PP(pp_require) sv_setpv(namesv, unixdir); sv_catpv(namesv, unixname); #else - sv_setpvf(namesv, "%s/%s", dir, name); + Perl_sv_setpvf(aTHX_ namesv, "%s/%s", dir, name); #endif TAINT_PROPER("require"); tryname = SvPVX(namesv); @@ -2935,14 +2935,14 @@ PP(pp_require) sv_catpv(msg, " (@INC contains:"); for (i = 0; i <= AvFILL(ar); i++) { char *dir = SvPVx(*av_fetch(ar, i, TRUE), n_a); - sv_setpvf(dirmsgsv, " %s", dir); + Perl_sv_setpvf(aTHX_ dirmsgsv, " %s", dir); sv_catsv(msg, dirmsgsv); } sv_catpvn(msg, ")", 1); SvREFCNT_dec(dirmsgsv); msgstr = SvPV_nolen(msg); } - DIE("Can't locate %s", msgstr); + DIE(aTHX_ "Can't locate %s", msgstr); } RETPUSHUNDEF; @@ -2992,7 +2992,7 @@ PP(pp_require) PP(pp_dofile) { - return pp_require(ARGS); + return pp_require(); } PP(pp_entereval) @@ -3119,7 +3119,7 @@ PP(pp_leaveeval) /* Unassume the success we assumed earlier. */ char *name = cx->blk_eval.old_name; (void)hv_delete(GvHVn(PL_incgv), name, strlen(name), G_DISCARD); - retop = die("%s did not return a true value", name); + retop = Perl_die(aTHX_ "%s did not return a true value", name); /* die_where() did LEAVE, or we won't be here */ } else { @@ -3199,7 +3199,7 @@ PP(pp_leavetry) } STATIC void -doparseform(pTHX_ SV *sv) +S_doparseform(pTHX_ SV *sv) { STRLEN len; register char *s = SvPV_force(sv, len); @@ -3216,7 +3216,7 @@ doparseform(pTHX_ SV *sv) bool ischop; if (len == 0) - croak("Null picture in formline"); + Perl_croak(aTHX_ "Null picture in formline"); New(804, fops, (send - s)*3+10, U16); /* Almost certainly too long... */ fpc = fops; @@ -3569,7 +3569,7 @@ doqsort_all_asserts( /* ****************************************************************** qsort */ STATIC void -qsortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t compare) +S_qsortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t compare) { register SV * temp; diff --git a/pp_hot.c b/pp_hot.c index 36a33ff..b652a63 100644 --- a/pp_hot.c +++ b/pp_hot.c @@ -35,7 +35,7 @@ #ifdef USE_THREADS STATIC void -unset_cvowner(pTHX_ void *cvarg) +S_unset_cvowner(pTHX_ void *cvarg) { register CV* cv = (CV *) cvarg; #ifdef DEBUGGING @@ -212,7 +212,7 @@ PP(pp_readline) dSP; XPUSHs((SV*)PL_last_in_gv); PUTBACK; - pp_rv2gv(ARGS); + pp_rv2gv(); PL_last_in_gv = (GV*)(*PL_stack_sp--); } } @@ -233,7 +233,7 @@ PP(pp_preinc) { djSP; if (SvREADONLY(TOPs) || SvTYPE(TOPs) > SVt_PVLV) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); if (SvIOK_notUV(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MAX) { @@ -351,7 +351,7 @@ PP(pp_print) if (ckWARN(WARN_UNOPENED)) { SV* sv = sv_newmortal(); gv_fullname3(sv, gv, Nullch); - warner(WARN_UNOPENED, "Filehandle %s never opened", SvPV(sv,n_a)); + Perl_warner(aTHX_ WARN_UNOPENED, "Filehandle %s never opened", SvPV(sv,n_a)); } SETERRNO(EBADF,RMS$_IFI); @@ -362,10 +362,10 @@ PP(pp_print) SV* sv = sv_newmortal(); gv_fullname3(sv, gv, Nullch); if (IoIFP(io)) - warner(WARN_IO, "Filehandle %s opened only for input", + Perl_warner(aTHX_ WARN_IO, "Filehandle %s opened only for input", SvPV(sv,n_a)); else if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "print on closed filehandle %s", + Perl_warner(aTHX_ WARN_CLOSED, "print on closed filehandle %s", SvPV(sv,n_a)); } SETERRNO(EBADF,IoIFP(io)?RMS$_FAC:RMS$_IFI); @@ -426,7 +426,7 @@ PP(pp_rv2av) av = (AV*)SvRV(sv); if (SvTYPE(av) != SVt_PVAV) - DIE("Not an ARRAY reference"); + DIE(aTHX_ "Not an ARRAY reference"); if (PL_op->op_flags & OPf_REF) { SETs((SV*)av); RETURN; @@ -455,9 +455,9 @@ PP(pp_rv2av) if (!SvOK(sv)) { if (PL_op->op_flags & OPf_REF || PL_op->op_private & HINT_STRICT_REFS) - DIE(PL_no_usym, "an ARRAY"); + DIE(aTHX_ PL_no_usym, "an ARRAY"); if (ckWARN(WARN_UNINITIALIZED)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); if (GIMME == G_ARRAY) { (void)POPs; RETURN; @@ -474,7 +474,7 @@ PP(pp_rv2av) } else { if (PL_op->op_private & HINT_STRICT_REFS) - DIE(PL_no_symref, sym, "an ARRAY"); + DIE(aTHX_ PL_no_symref, sym, "an ARRAY"); gv = (GV*)gv_fetchpv(sym, TRUE, SVt_PVAV); } } @@ -526,7 +526,7 @@ PP(pp_rv2hv) hv = (HV*)SvRV(sv); if (SvTYPE(hv) != SVt_PVHV && SvTYPE(hv) != SVt_PVAV) - DIE("Not a HASH reference"); + DIE(aTHX_ "Not a HASH reference"); if (PL_op->op_flags & OPf_REF) { SETs((SV*)hv); RETURN; @@ -555,9 +555,9 @@ PP(pp_rv2hv) if (!SvOK(sv)) { if (PL_op->op_flags & OPf_REF || PL_op->op_private & HINT_STRICT_REFS) - DIE(PL_no_usym, "a HASH"); + DIE(aTHX_ PL_no_usym, "a HASH"); if (ckWARN(WARN_UNINITIALIZED)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); if (GIMME == G_ARRAY) { SP--; RETURN; @@ -574,7 +574,7 @@ PP(pp_rv2hv) } else { if (PL_op->op_private & HINT_STRICT_REFS) - DIE(PL_no_symref, sym, "a HASH"); + DIE(aTHX_ PL_no_symref, sym, "a HASH"); gv = (GV*)gv_fetchpv(sym, TRUE, SVt_PVHV); } } @@ -593,14 +593,14 @@ PP(pp_rv2hv) if (GIMME == G_ARRAY) { /* array wanted */ *PL_stack_sp = (SV*)hv; - return do_kv(ARGS); + return do_kv(); } else { dTARGET; if (SvTYPE(hv) == SVt_PVAV) hv = avhv_keys((AV*)hv); if (HvFILL(hv)) - sv_setpvf(TARG, "%ld/%ld", + Perl_sv_setpvf(aTHX_ TARG, "%ld/%ld", (long)HvFILL(hv), (long)HvMAX(hv) + 1); else sv_setiv(TARG, 0); @@ -711,9 +711,9 @@ PP(pp_aassign) SvROK(*relem) && ( SvTYPE(SvRV(*relem)) == SVt_PVAV || SvTYPE(SvRV(*relem)) == SVt_PVHV ) ) - warner(WARN_UNSAFE, "Reference found where even-sized list expected"); + Perl_warner(aTHX_ WARN_UNSAFE, "Reference found where even-sized list expected"); else - warner(WARN_UNSAFE, "Odd number of elements in hash assignment"); + Perl_warner(aTHX_ WARN_UNSAFE, "Odd number of elements in hash assignment"); } tmpstr = NEWSV(29,0); didstore = hv_store_ent(hash,*relem,tmpstr,0); @@ -767,7 +767,7 @@ PP(pp_aassign) # endif /* HAS_SETEUID */ if (PL_delaymagic & DM_UID) { if (PL_uid != PL_euid) - DIE("No setreuid available"); + DIE(aTHX_ "No setreuid available"); (void)PerlProc_setuid(PL_uid); } # endif /* HAS_SETREUID */ @@ -796,7 +796,7 @@ PP(pp_aassign) # endif /* HAS_SETEGID */ if (PL_delaymagic & DM_GID) { if (PL_gid != PL_egid) - DIE("No setregid available"); + DIE(aTHX_ "No setregid available"); (void)PerlProc_setgid(PL_gid); } # endif /* HAS_SETREGID */ @@ -869,7 +869,7 @@ PP(pp_match) s = SvPV(TARG, len); strend = s + len; if (!s) - DIE("panic: do_match"); + DIE(aTHX_ "panic: do_match"); rxtainted = ((pm->op_pmdynflags & PMdf_TAINTED) || (PL_tainted && (pm->op_pmflags & PMf_RETAINT))); TAINT_NOT; @@ -998,7 +998,7 @@ play_it_again: rx->float_substr = Nullsv; } } - if (CALLREGEXEC(rx, s, strend, truebase, minmatch, TARG, NULL, r_flags)) + if (CALLREGEXEC(aTHX_ rx, s, strend, truebase, minmatch, TARG, NULL, r_flags)) { PL_curpm = pm; if (pm->op_pmflags & PMf_ONCE) @@ -1305,10 +1305,10 @@ Perl_do_readline(pTHX) if (!fp) { if (ckWARN(WARN_CLOSED) && io && !(IoFLAGS(io) & IOf_START)) { if (type == OP_GLOB) - warner(WARN_CLOSED, "glob failed (can't start child: %s)", + Perl_warner(aTHX_ WARN_CLOSED, "glob failed (can't start child: %s)", Strerror(errno)); else - warner(WARN_CLOSED, "Read on closed filehandle <%s>", + Perl_warner(aTHX_ WARN_CLOSED, "Read on closed filehandle <%s>", GvENAME(PL_last_in_gv)); } if (gimme == G_SCALAR) { @@ -1357,7 +1357,7 @@ Perl_do_readline(pTHX) } else if (type == OP_GLOB) { if (!do_close(PL_last_in_gv, FALSE) && ckWARN(WARN_CLOSED)) { - warner(WARN_CLOSED, + Perl_warner(aTHX_ WARN_CLOSED, "glob failed (child exited with status %d%s)", STATUS_CURRENT >> 8, (STATUS_CURRENT & 0x80) ? ", core dumped" : ""); @@ -1454,7 +1454,7 @@ PP(pp_helem) } else if (SvTYPE(hv) == SVt_PVAV) { if (PL_op->op_private & OPpLVAL_INTRO) - DIE("Can't localize pseudo-hash element"); + DIE(aTHX_ "Can't localize pseudo-hash element"); svp = avhv_fetch_ent((AV*)hv, keysv, lval && !defer, 0); } else { @@ -1466,7 +1466,7 @@ PP(pp_helem) SV* key2; if (!defer) { STRLEN n_a; - DIE(PL_no_helem, SvPV(keysv, n_a)); + DIE(aTHX_ PL_no_helem, SvPV(keysv, n_a)); } lv = sv_newmortal(); sv_upgrade(lv, SVt_PVLV); @@ -1566,7 +1566,7 @@ PP(pp_iter) EXTEND(SP, 1); cx = &cxstack[cxstack_ix]; if (CxTYPE(cx) != CXt_LOOP) - DIE("panic: pp_iter"); + DIE(aTHX_ "panic: pp_iter"); av = cx->blk_loop.iterary; if (SvTYPE(av) != SVt_PVAV) { @@ -1696,7 +1696,7 @@ PP(pp_subst) if (SvREADONLY(TARG) || (SvTYPE(TARG) > SVt_PVLV && !(SvTYPE(TARG) == SVt_PVGV && SvFAKE(TARG)))) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); PUTBACK; s = SvPV(TARG, len); @@ -1710,7 +1710,7 @@ PP(pp_subst) force_it: if (!pm || !s) - DIE("panic: do_subst"); + DIE(aTHX_ "panic: do_subst"); strend = s + len; maxiters = 2*(strend - s) + 10; /* We can match twice at each @@ -1784,7 +1784,7 @@ PP(pp_subst) /* can do inplace substitution? */ if (c && clen <= rx->minlen && (once || !(r_flags & REXEC_COPY_STR)) && !(rx->reganch & ROPT_LOOKBEHIND_SEEN)) { - if (!CALLREGEXEC(rx, s, strend, orig, 0, TARG, NULL, r_flags)) { + if (!CALLREGEXEC(aTHX_ rx, s, strend, orig, 0, TARG, NULL, r_flags)) { SPAGAIN; PUSHs(&PL_sv_no); LEAVE_SCOPE(oldsave); @@ -1842,7 +1842,7 @@ PP(pp_subst) else { do { if (iters++ > maxiters) - DIE("Substitution loop"); + DIE(aTHX_ "Substitution loop"); rxtainted |= RX_MATCH_TAINTED(rx); m = rx->startp[0] + orig; /*SUPPRESS 560*/ @@ -1856,7 +1856,7 @@ PP(pp_subst) d += clen; } s = rx->endp[0] + orig; - } while (CALLREGEXEC(rx, s, strend, orig, s == m, + } while (CALLREGEXEC(aTHX_ rx, s, strend, orig, s == m, Nullsv, NULL, REXEC_NOT_FIRST)); /* don't match same null twice */ if (s != d) { i = strend - s; @@ -1879,7 +1879,7 @@ PP(pp_subst) RETURN; } - if (CALLREGEXEC(rx, s, strend, orig, 0, TARG, NULL, r_flags)) { + if (CALLREGEXEC(aTHX_ rx, s, strend, orig, 0, TARG, NULL, r_flags)) { if (force_on_match) { force_on_match = 0; s = SvPV_force(TARG, len); @@ -1898,7 +1898,7 @@ PP(pp_subst) r_flags |= REXEC_IGNOREPOS | REXEC_NOT_FIRST; do { if (iters++ > maxiters) - DIE("Substitution loop"); + DIE(aTHX_ "Substitution loop"); rxtainted |= RX_MATCH_TAINTED(rx); if (RX_MATCH_COPIED(rx) && rx->subbeg != orig) { m = s; @@ -1914,7 +1914,7 @@ PP(pp_subst) sv_catpvn(dstr, c, clen); if (once) break; - } while (CALLREGEXEC(rx, s, strend, orig, s == m, TARG, NULL, r_flags)); + } while (CALLREGEXEC(aTHX_ rx, s, strend, orig, s == m, TARG, NULL, r_flags)); sv_catpvn(dstr, s, strend - s); (void)SvOOK_off(TARG); @@ -2041,7 +2041,7 @@ PP(pp_leavesub) } STATIC CV * -get_db_sub(pTHX_ SV **svp, CV *cv) +S_get_db_sub(pTHX_ SV **svp, CV *cv) { dTHR; SV *dbsv = GvSV(PL_DBsub); @@ -2087,7 +2087,7 @@ PP(pp_entersub) bool hasargs = (PL_op->op_flags & OPf_STACKED) != 0; if (!sv) - DIE("Not a CODE reference"); + DIE(aTHX_ "Not a CODE reference"); switch (SvTYPE(sv)) { default: if (!SvROK(sv)) { @@ -2106,9 +2106,9 @@ PP(pp_entersub) else sym = SvPV(sv, n_a); if (!sym) - DIE(PL_no_usym, "a subroutine"); + DIE(aTHX_ PL_no_usym, "a subroutine"); if (PL_op->op_private & HINT_STRICT_REFS) - DIE(PL_no_symref, sym, "a subroutine"); + DIE(aTHX_ PL_no_symref, sym, "a subroutine"); cv = get_cv(sym, TRUE); break; } @@ -2122,7 +2122,7 @@ PP(pp_entersub) /* FALL THROUGH */ case SVt_PVHV: case SVt_PVAV: - DIE("Not a CODE reference"); + DIE(aTHX_ "Not a CODE reference"); case SVt_PVCV: cv = (CV*)sv; break; @@ -2147,7 +2147,7 @@ PP(pp_entersub) /* anonymous or undef'd function leaves us no recourse */ if (CvANON(cv) || !(gv = CvGV(cv))) - DIE("Undefined subroutine called"); + DIE(aTHX_ "Undefined subroutine called"); /* autoloaded stub? */ if (cv != GvCV(gv)) { @@ -2165,11 +2165,11 @@ try_autoload: else { sub_name = sv_newmortal(); gv_efullname3(sub_name, gv, Nullch); - DIE("Undefined subroutine &%s called", SvPVX(sub_name)); + DIE(aTHX_ "Undefined subroutine &%s called", SvPVX(sub_name)); } } if (!cv) - DIE("Not a CODE reference"); + DIE(aTHX_ "Not a CODE reference"); goto retry; } @@ -2177,7 +2177,7 @@ try_autoload: if ((PL_op->op_private & OPpENTERSUB_DB) && GvCV(PL_DBsub) && !CvNODEBUG(cv)) { cv = get_db_sub(&sv, cv); if (!cv) - DIE("No DBsub routine"); + DIE(aTHX_ "No DBsub routine"); } #ifdef USE_THREADS @@ -2200,7 +2200,7 @@ try_autoload: || !(sv = AvARRAY(av)[0])) { MUTEX_UNLOCK(CvMUTEXP(cv)); - croak("no argument for locked method call"); + Perl_croak(aTHX_ "no argument for locked method call"); } } if (SvROK(sv)) @@ -2226,7 +2226,7 @@ try_autoload: DEBUG_S(PerlIO_printf(PerlIO_stderr(), "%p: pp_entersub lock %p\n", thr, sv);) MUTEX_UNLOCK(MgMUTEXP(mg)); - save_destructor(unlock_condpair, sv); + save_destructor(Perl_unlock_condpair, sv); } MUTEX_LOCK(CvMUTEXP(cv)); } @@ -2271,7 +2271,7 @@ try_autoload: CvOWNER(cv) = thr; SvREFCNT_inc(cv); if (CvDEPTH(cv) == 0) - SAVEDESTRUCTOR(unset_cvowner, (void*) cv); + SAVEDESTRUCTOR(S_unset_cvowner, (void*) cv); } else { /* (2) => grab ownership of cv. (3) => make clone */ @@ -2308,7 +2308,7 @@ try_autoload: DEBUG_S(if (CvDEPTH(cv) != 0) PerlIO_printf(PerlIO_stderr(), "depth %ld != 0\n", CvDEPTH(cv));); - SAVEDESTRUCTOR(unset_cvowner, (void*) cv); + SAVEDESTRUCTOR(S_unset_cvowner, (void*) cv); } } #endif /* USE_THREADS */ @@ -2366,7 +2366,7 @@ try_autoload: PL_curcopdb = NULL; } /* Do we need to open block here? XXXX */ - (void)(*CvXSUB(cv))(cv _PERL_OBJECT_THIS); + (void)(*CvXSUB(cv))(aTHX_ cv); /* Enforce some sanity in scalar context. */ if (gimme == G_SCALAR && ++markix != PL_stack_sp - PL_stack_base ) { @@ -2515,11 +2515,11 @@ void Perl_sub_crush_depth(pTHX_ CV *cv) { if (CvANON(cv)) - warner(WARN_RECURSION, "Deep recursion on anonymous subroutine"); + Perl_warner(aTHX_ WARN_RECURSION, "Deep recursion on anonymous subroutine"); else { SV* tmpstr = sv_newmortal(); gv_efullname3(tmpstr, CvGV(cv), Nullch); - warner(WARN_RECURSION, "Deep recursion on subroutine \"%s\"", + Perl_warner(aTHX_ WARN_RECURSION, "Deep recursion on subroutine \"%s\"", SvPVX(tmpstr)); } } @@ -2543,7 +2543,7 @@ PP(pp_aelem) if (!svp || *svp == &PL_sv_undef) { SV* lv; if (!defer) - DIE(PL_no_aelem, elem); + DIE(aTHX_ PL_no_aelem, elem); lv = sv_newmortal(); sv_upgrade(lv, SVt_PVLV); LvTYPE(lv) = 'y'; @@ -2573,7 +2573,7 @@ Perl_vivify_ref(pTHX_ SV *sv, U32 to_what) mg_get(sv); if (!SvOK(sv)) { if (SvREADONLY(sv)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); if (SvTYPE(sv) < SVt_RV) sv_upgrade(sv, SVt_RV); else if (SvTYPE(sv) >= SVt_PV) { @@ -2638,7 +2638,7 @@ PP(pp_method) : !isIDFIRST(*packname) )) { - DIE("Can't call method \"%s\" %s", name, + DIE(aTHX_ "Can't call method \"%s\" %s", name, SvOK(sv)? "without a package or object reference" : "on an undefined value"); } @@ -2649,7 +2649,7 @@ PP(pp_method) } if (!ob || !SvOBJECT(ob)) - DIE("Can't call method \"%s\" on unblessed reference", name); + DIE(aTHX_ "Can't call method \"%s\" on unblessed reference", name); stash = SvSTASH(ob); @@ -2674,7 +2674,7 @@ PP(pp_method) packname = name; packlen = sep - name; } - DIE("Can't locate object method \"%s\" via package \"%.*s\"", + DIE(aTHX_ "Can't locate object method \"%s\" via package \"%.*s\"", leaf, (int)packlen, packname); } SETs(isGV(gv) ? (SV*)GvCV(gv) : (SV*)gv); diff --git a/pp_sys.c b/pp_sys.c index 7ffc1c2..f2d0bc3 100644 --- a/pp_sys.c +++ b/pp_sys.c @@ -227,7 +227,7 @@ static char zero_but_true[ZBTLEN + 1] = "0 but true"; || defined(HAS_SETREGID) || defined(HAS_SETRESGID)) /* The Hard Way. */ STATIC int -emulate_eaccess(pTHX_ const char* path, int mode) +S_emulate_eaccess(pTHX_ const char* path, int mode) { Uid_t ruid = getuid(); Uid_t euid = geteuid(); @@ -237,7 +237,7 @@ emulate_eaccess(pTHX_ const char* path, int mode) MUTEX_LOCK(&PL_cred_mutex); #if !defined(HAS_SETREUID) && !defined(HAS_SETRESUID) - croak("switching effective uid is not implemented"); + Perl_croak(aTHX_ "switching effective uid is not implemented"); #else #ifdef HAS_SETREUID if (setreuid(euid, ruid)) @@ -246,11 +246,11 @@ emulate_eaccess(pTHX_ const char* path, int mode) if (setresuid(euid, ruid, (Uid_t)-1)) #endif #endif - croak("entering effective uid failed"); + Perl_croak(aTHX_ "entering effective uid failed"); #endif #if !defined(HAS_SETREGID) && !defined(HAS_SETRESGID) - croak("switching effective gid is not implemented"); + Perl_croak(aTHX_ "switching effective gid is not implemented"); #else #ifdef HAS_SETREGID if (setregid(egid, rgid)) @@ -259,7 +259,7 @@ emulate_eaccess(pTHX_ const char* path, int mode) if (setresgid(egid, rgid, (Gid_t)-1)) #endif #endif - croak("entering effective gid failed"); + Perl_croak(aTHX_ "entering effective gid failed"); #endif res = access(path, mode); @@ -271,7 +271,7 @@ emulate_eaccess(pTHX_ const char* path, int mode) if (setresuid(ruid, euid, (Uid_t)-1)) #endif #endif - croak("leaving effective uid failed"); + Perl_croak(aTHX_ "leaving effective uid failed"); #ifdef HAS_SETREGID if (setregid(rgid, egid)) @@ -280,7 +280,7 @@ emulate_eaccess(pTHX_ const char* path, int mode) if (setresgid(rgid, egid, (Gid_t)-1)) #endif #endif - croak("leaving effective gid failed"); + Perl_croak(aTHX_ "leaving effective gid failed"); MUTEX_UNLOCK(&PL_cred_mutex); return res; @@ -292,9 +292,9 @@ emulate_eaccess(pTHX_ const char* path, int mode) #if !defined(PERL_EFF_ACCESS_R_OK) STATIC int -emulate_eaccess(pTHX_ const char* path, int mode) +S_emulate_eaccess(pTHX_ const char* path, int mode) { - croak("switching effective uid is not implemented"); + Perl_croak(aTHX_ "switching effective uid is not implemented"); /*NOTREACHED*/ return -1; } @@ -430,7 +430,7 @@ PP(pp_warn) if (!tmps || !len) tmpsv = sv_2mortal(newSVpvn("Warning: something's wrong", 26)); - warn("%_", tmpsv); + Perl_warn(aTHX_ "%_", tmpsv); RETSETYES; } @@ -476,7 +476,7 @@ PP(pp_die) sv_setsv(error,*PL_stack_sp--); } } - DIE(Nullch); + DIE(aTHX_ Nullch); } else { if (SvPOK(error) && SvCUR(error)) @@ -488,7 +488,7 @@ PP(pp_die) if (!tmps || !len) tmpsv = sv_2mortal(newSVpvn("Died", 4)); - DIE("%_", tmpsv); + DIE(aTHX_ "%_", tmpsv); } /* I/O. */ @@ -505,12 +505,12 @@ PP(pp_open) if (MAXARG > 1) sv = POPs; if (!isGV(TOPs)) - DIE(PL_no_usym, "filehandle"); + DIE(aTHX_ PL_no_usym, "filehandle"); if (MAXARG <= 1) sv = GvSV(TOPs); gv = (GV*)POPs; if (!isGV(gv)) - DIE(PL_no_usym, "filehandle"); + DIE(aTHX_ PL_no_usym, "filehandle"); if (GvIOp(gv)) IoFLAGS(GvIOp(gv)) &= ~IOf_UNTAINT; @@ -595,7 +595,7 @@ PP(pp_pipe_op) goto badexit; if (SvTYPE(rgv) != SVt_PVGV || SvTYPE(wgv) != SVt_PVGV) - DIE(PL_no_usym, "filehandle"); + DIE(aTHX_ PL_no_usym, "filehandle"); rstio = GvIOn(rgv); wstio = GvIOn(wgv); @@ -629,7 +629,7 @@ PP(pp_pipe_op) badexit: RETPUSHUNDEF; #else - DIE(PL_no_func, "pipe"); + DIE(aTHX_ PL_no_func, "pipe"); #endif } @@ -681,7 +681,7 @@ PP(pp_umask) * Otherwise it's harmless and more useful to just return undef * since 'group' and 'other' concepts probably don't exist here. */ if (MAXARG >= 1 && (POPi & 0700)) - DIE("umask not implemented"); + DIE(aTHX_ "umask not implemented"); XPUSHs(&PL_sv_undef); #endif RETURN; @@ -770,7 +770,7 @@ PP(pp_tie) */ stash = gv_stashsv(*MARK, FALSE); if (!stash || !(gv = gv_fetchmethod(stash, methname))) { - DIE("Can't locate object method \"%s\" via package \"%s\"", + DIE(aTHX_ "Can't locate object method \"%s\" via package \"%s\"", methname, SvPV(*MARK,n_a)); } ENTER; @@ -806,7 +806,7 @@ PP(pp_untie) MAGIC * mg ; if (mg = SvTIED_mg(sv, how)) { if (mg && SvREFCNT(SvRV(mg->mg_obj)) > 1) - warner(WARN_UNTIE, + Perl_warner(aTHX_ WARN_UNTIE, "untie attempted while %lu inner references still exist", (unsigned long)SvREFCNT(SvRV(mg->mg_obj)) - 1 ) ; } @@ -852,7 +852,7 @@ PP(pp_dbmopen) require_pv("AnyDBM_File.pm"); SPAGAIN; if (!(gv = gv_fetchmethod(stash, "TIEHASH"))) - DIE("No dbm on this machine"); + DIE(aTHX_ "No dbm on this machine"); } ENTER; @@ -892,7 +892,7 @@ PP(pp_dbmopen) PP(pp_dbmclose) { - return pp_untie(ARGS); + return pp_untie(); } PP(pp_sselect) @@ -1032,7 +1032,7 @@ PP(pp_sselect) } RETURN; #else - DIE("select not implemented"); + DIE(aTHX_ "select not implemented"); #endif } @@ -1118,11 +1118,11 @@ PP(pp_getc) PP(pp_read) { - return pp_sysread(ARGS); + return pp_sysread(); } STATIC OP * -doform(pTHX_ CV *cv, GV *gv, OP *retop) +S_doform(pTHX_ CV *cv, GV *gv, OP *retop) { dTHR; register PERL_CONTEXT *cx; @@ -1173,9 +1173,9 @@ PP(pp_enterwrite) if (fgv) { SV *tmpsv = sv_newmortal(); gv_efullname3(tmpsv, fgv, Nullch); - DIE("Undefined format \"%s\" called",SvPVX(tmpsv)); + DIE(aTHX_ "Undefined format \"%s\" called",SvPVX(tmpsv)); } - DIE("Not a format reference"); + DIE(aTHX_ "Not a format reference"); } if (CvCLONE(cv)) cv = (CV*)sv_2mortal((SV*)cv_clone(cv)); @@ -1209,7 +1209,7 @@ PP(pp_leavewrite) if (!IoTOP_NAME(io)) { if (!IoFMT_NAME(io)) IoFMT_NAME(io) = savepv(GvNAME(gv)); - topname = sv_2mortal(newSVpvf("%s_TOP", IoFMT_NAME(io))); + topname = sv_2mortal(Perl_newSVpvf(aTHX_ "%s_TOP", IoFMT_NAME(io))); topgv = gv_fetchpv(SvPVX(topname), FALSE, SVt_PVFM); if ((topgv && GvFORM(topgv)) || !gv_fetchpv("top",FALSE,SVt_PVFM)) @@ -1249,12 +1249,12 @@ PP(pp_leavewrite) IoFLAGS(io) |= IOf_DIDTOP; fgv = IoTOP_GV(io); if (!fgv) - DIE("bad top format reference"); + DIE(aTHX_ "bad top format reference"); cv = GvFORM(fgv); if (!cv) { SV *tmpsv = sv_newmortal(); gv_efullname3(tmpsv, fgv, Nullch); - DIE("Undefined top format \"%s\" called",SvPVX(tmpsv)); + DIE(aTHX_ "Undefined top format \"%s\" called",SvPVX(tmpsv)); } if (CvCLONE(cv)) cv = (CV*)sv_2mortal((SV*)cv_clone(cv)); @@ -1270,16 +1270,16 @@ PP(pp_leavewrite) if (!fp) { if (ckWARN2(WARN_CLOSED,WARN_IO)) { if (IoIFP(io)) - warner(WARN_IO, "Filehandle only opened for input"); + Perl_warner(aTHX_ WARN_IO, "Filehandle only opened for input"); else if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "Write on closed filehandle"); + Perl_warner(aTHX_ WARN_CLOSED, "Write on closed filehandle"); } PUSHs(&PL_sv_no); } else { if ((IoLINES_LEFT(io) -= FmLINES(PL_formtarget)) < 0) { if (ckWARN(WARN_IO)) - warner(WARN_IO, "page overflow"); + Perl_warner(aTHX_ WARN_IO, "page overflow"); } if (!PerlIO_write(ofp, SvPVX(PL_formtarget), SvCUR(PL_formtarget)) || PerlIO_error(fp)) @@ -1337,7 +1337,7 @@ PP(pp_prtf) if (!(io = GvIO(gv))) { if (ckWARN(WARN_UNOPENED)) { gv_fullname3(sv, gv, Nullch); - warner(WARN_UNOPENED, "Filehandle %s never opened", SvPV(sv,n_a)); + Perl_warner(aTHX_ WARN_UNOPENED, "Filehandle %s never opened", SvPV(sv,n_a)); } SETERRNO(EBADF,RMS$_IFI); goto just_say_no; @@ -1346,10 +1346,10 @@ PP(pp_prtf) if (ckWARN2(WARN_CLOSED,WARN_IO)) { gv_fullname3(sv, gv, Nullch); if (IoIFP(io)) - warner(WARN_IO, "Filehandle %s opened only for input", + Perl_warner(aTHX_ WARN_IO, "Filehandle %s opened only for input", SvPV(sv,n_a)); else if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "printf on closed filehandle %s", + Perl_warner(aTHX_ WARN_CLOSED, "printf on closed filehandle %s", SvPV(sv,n_a)); } SETERRNO(EBADF,IoIFP(io)?RMS$_FAC:RMS$_IFI); @@ -1451,7 +1451,7 @@ PP(pp_sysread) buffer = SvPV_force(bufsv, blen); length = SvIVx(*++MARK); if (length < 0) - DIE("Negative length"); + DIE(aTHX_ "Negative length"); SETERRNO(0,0); if (MARK < SP) offset = SvIVx(*++MARK); @@ -1488,11 +1488,11 @@ PP(pp_sysread) } #else if (PL_op->op_type == OP_RECV) - DIE(PL_no_sock_func, "recv"); + DIE(aTHX_ PL_no_sock_func, "recv"); #endif if (offset < 0) { if (-offset > blen) - DIE("Offset outside string"); + DIE(aTHX_ "Offset outside string"); offset += blen; } bufsize = SvCUR(bufsv); @@ -1562,7 +1562,7 @@ PP(pp_syswrite) PUSHs(sv); PUTBACK; } - return pp_send(ARGS); + return pp_send(); } PP(pp_send) @@ -1598,16 +1598,16 @@ PP(pp_send) buffer = SvPV(bufsv, blen); length = SvIVx(*++MARK); if (length < 0) - DIE("Negative length"); + DIE(aTHX_ "Negative length"); SETERRNO(0,0); io = GvIO(gv); if (!io || !IoIFP(io)) { length = -1; if (ckWARN(WARN_CLOSED)) { if (PL_op->op_type == OP_SYSWRITE) - warner(WARN_CLOSED, "Syswrite on closed filehandle"); + Perl_warner(aTHX_ WARN_CLOSED, "Syswrite on closed filehandle"); else - warner(WARN_CLOSED, "Send on closed socket"); + Perl_warner(aTHX_ WARN_CLOSED, "Send on closed socket"); } } else if (PL_op->op_type == OP_SYSWRITE) { @@ -1615,10 +1615,10 @@ PP(pp_send) offset = SvIVx(*++MARK); if (offset < 0) { if (-offset > blen) - DIE("Offset outside string"); + DIE(aTHX_ "Offset outside string"); offset += blen; } else if (offset >= blen && blen > 0) - DIE("Offset outside string"); + DIE(aTHX_ "Offset outside string"); } else offset = 0; if (length > blen - offset) @@ -1648,7 +1648,7 @@ PP(pp_send) #else else - DIE(PL_no_sock_func, "send"); + DIE(aTHX_ PL_no_sock_func, "send"); #endif if (length < 0) goto say_undef; @@ -1663,7 +1663,7 @@ PP(pp_send) PP(pp_recv) { - return pp_sysread(ARGS); + return pp_sysread(); } PP(pp_eof) @@ -1720,7 +1720,7 @@ PP(pp_tell) PP(pp_seek) { - return pp_sysseek(ARGS); + return pp_sysseek(); } PP(pp_sysseek) @@ -1818,13 +1818,13 @@ PP(pp_truncate) SETERRNO(EBADF,RMS$_IFI); RETPUSHUNDEF; #else - DIE("truncate not implemented"); + DIE(aTHX_ "truncate not implemented"); #endif } PP(pp_fcntl) { - return pp_ioctl(ARGS); + return pp_ioctl(); } PP(pp_ioctl) @@ -1866,7 +1866,7 @@ PP(pp_ioctl) #ifdef HAS_IOCTL retval = PerlLIO_ioctl(PerlIO_fileno(IoIFP(io)), func, s); #else - DIE("ioctl is not implemented"); + DIE(aTHX_ "ioctl is not implemented"); #endif else #ifdef HAS_FCNTL @@ -1876,12 +1876,12 @@ PP(pp_ioctl) retval = fcntl(PerlIO_fileno(IoIFP(io)), func, s); #endif #else - DIE("fcntl is not implemented"); + DIE(aTHX_ "fcntl is not implemented"); #endif if (SvPOK(argsv)) { if (s[SvCUR(argsv)] != 17) - DIE("Possible memory corruption: %s overflowed 3rd argument", + DIE(aTHX_ "Possible memory corruption: %s overflowed 3rd argument", PL_op_name[optype]); s[SvCUR(argsv)] = 0; /* put our null back */ SvSETMAGIC(argsv); /* Assume it has changed */ @@ -1925,7 +1925,7 @@ PP(pp_flock) PUSHi(value); RETURN; #else - DIE(PL_no_func, "flock()"); + DIE(aTHX_ PL_no_func, "flock()"); #endif } @@ -1969,7 +1969,7 @@ PP(pp_socket) RETPUSHYES; #else - DIE(PL_no_sock_func, "socket"); + DIE(aTHX_ PL_no_sock_func, "socket"); #endif } @@ -2019,7 +2019,7 @@ PP(pp_sockpair) RETPUSHYES; #else - DIE(PL_no_sock_func, "socketpair"); + DIE(aTHX_ PL_no_sock_func, "socketpair"); #endif } @@ -2074,11 +2074,11 @@ PP(pp_bind) nuts: if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "bind() on closed fd"); + Perl_warner(aTHX_ WARN_CLOSED, "bind() on closed fd"); SETERRNO(EBADF,SS$_IVCHAN); RETPUSHUNDEF; #else - DIE(PL_no_sock_func, "bind"); + DIE(aTHX_ PL_no_sock_func, "bind"); #endif } @@ -2104,11 +2104,11 @@ PP(pp_connect) nuts: if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "connect() on closed fd"); + Perl_warner(aTHX_ WARN_CLOSED, "connect() on closed fd"); SETERRNO(EBADF,SS$_IVCHAN); RETPUSHUNDEF; #else - DIE(PL_no_sock_func, "connect"); + DIE(aTHX_ PL_no_sock_func, "connect"); #endif } @@ -2130,11 +2130,11 @@ PP(pp_listen) nuts: if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "listen() on closed fd"); + Perl_warner(aTHX_ WARN_CLOSED, "listen() on closed fd"); SETERRNO(EBADF,SS$_IVCHAN); RETPUSHUNDEF; #else - DIE(PL_no_sock_func, "listen"); + DIE(aTHX_ PL_no_sock_func, "listen"); #endif } @@ -2184,14 +2184,14 @@ PP(pp_accept) nuts: if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "accept() on closed fd"); + Perl_warner(aTHX_ WARN_CLOSED, "accept() on closed fd"); SETERRNO(EBADF,SS$_IVCHAN); badexit: RETPUSHUNDEF; #else - DIE(PL_no_sock_func, "accept"); + DIE(aTHX_ PL_no_sock_func, "accept"); #endif } @@ -2211,20 +2211,20 @@ PP(pp_shutdown) nuts: if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "shutdown() on closed fd"); + Perl_warner(aTHX_ WARN_CLOSED, "shutdown() on closed fd"); SETERRNO(EBADF,SS$_IVCHAN); RETPUSHUNDEF; #else - DIE(PL_no_sock_func, "shutdown"); + DIE(aTHX_ PL_no_sock_func, "shutdown"); #endif } PP(pp_gsockopt) { #ifdef HAS_SOCKET - return pp_ssockopt(ARGS); + return pp_ssockopt(); #else - DIE(PL_no_sock_func, "getsockopt"); + DIE(aTHX_ PL_no_sock_func, "getsockopt"); #endif } @@ -2290,22 +2290,22 @@ PP(pp_ssockopt) nuts: if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "[gs]etsockopt() on closed fd"); + Perl_warner(aTHX_ WARN_CLOSED, "[gs]etsockopt() on closed fd"); SETERRNO(EBADF,SS$_IVCHAN); nuts2: RETPUSHUNDEF; #else - DIE(PL_no_sock_func, "setsockopt"); + DIE(aTHX_ PL_no_sock_func, "setsockopt"); #endif } PP(pp_getsockname) { #ifdef HAS_SOCKET - return pp_getpeername(ARGS); + return pp_getpeername(); #else - DIE(PL_no_sock_func, "getsockname"); + DIE(aTHX_ PL_no_sock_func, "getsockname"); #endif } @@ -2363,13 +2363,13 @@ PP(pp_getpeername) nuts: if (ckWARN(WARN_CLOSED)) - warner(WARN_CLOSED, "get{sock, peer}name() on closed fd"); + Perl_warner(aTHX_ WARN_CLOSED, "get{sock, peer}name() on closed fd"); SETERRNO(EBADF,SS$_IVCHAN); nuts2: RETPUSHUNDEF; #else - DIE(PL_no_sock_func, "getpeername"); + DIE(aTHX_ PL_no_sock_func, "getpeername"); #endif } @@ -2377,7 +2377,7 @@ nuts2: PP(pp_lstat) { - return pp_stat(ARGS); + return pp_stat(); } PP(pp_stat) @@ -2422,7 +2422,7 @@ PP(pp_stat) PL_laststatval = PerlLIO_stat(SvPV(PL_statname, n_a), &PL_statcache); if (PL_laststatval < 0) { if (ckWARN(WARN_NEWLINE) && strchr(SvPV(PL_statname, n_a), '\n')) - warner(WARN_NEWLINE, PL_warn_nl, "stat"); + Perl_warner(aTHX_ WARN_NEWLINE, PL_warn_nl, "stat"); max = 0; } } @@ -2483,9 +2483,9 @@ PP(pp_ftrread) RETPUSHNO; } else - result = my_stat(ARGS); + result = my_stat(); #else - result = my_stat(ARGS); + result = my_stat(); #endif SPAGAIN; if (result < 0) @@ -2510,9 +2510,9 @@ PP(pp_ftrwrite) RETPUSHNO; } else - result = my_stat(ARGS); + result = my_stat(); #else - result = my_stat(ARGS); + result = my_stat(); #endif SPAGAIN; if (result < 0) @@ -2537,9 +2537,9 @@ PP(pp_ftrexec) RETPUSHNO; } else - result = my_stat(ARGS); + result = my_stat(); #else - result = my_stat(ARGS); + result = my_stat(); #endif SPAGAIN; if (result < 0) @@ -2564,9 +2564,9 @@ PP(pp_fteread) RETPUSHNO; } else - result = my_stat(ARGS); + result = my_stat(); #else - result = my_stat(ARGS); + result = my_stat(); #endif SPAGAIN; if (result < 0) @@ -2591,9 +2591,9 @@ PP(pp_ftewrite) RETPUSHNO; } else - result = my_stat(ARGS); + result = my_stat(); #else - result = my_stat(ARGS); + result = my_stat(); #endif SPAGAIN; if (result < 0) @@ -2618,9 +2618,9 @@ PP(pp_fteexec) RETPUSHNO; } else - result = my_stat(ARGS); + result = my_stat(); #else - result = my_stat(ARGS); + result = my_stat(); #endif SPAGAIN; if (result < 0) @@ -2632,7 +2632,7 @@ PP(pp_fteexec) PP(pp_ftis) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2641,12 +2641,12 @@ PP(pp_ftis) PP(pp_fteowned) { - return pp_ftrowned(ARGS); + return pp_ftrowned(); } PP(pp_ftrowned) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2657,7 +2657,7 @@ PP(pp_ftrowned) PP(pp_ftzero) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2668,7 +2668,7 @@ PP(pp_ftzero) PP(pp_ftsize) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; dTARGET; if (result < 0) RETPUSHUNDEF; @@ -2678,7 +2678,7 @@ PP(pp_ftsize) PP(pp_ftmtime) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; dTARGET; if (result < 0) RETPUSHUNDEF; @@ -2688,7 +2688,7 @@ PP(pp_ftmtime) PP(pp_ftatime) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; dTARGET; if (result < 0) RETPUSHUNDEF; @@ -2698,7 +2698,7 @@ PP(pp_ftatime) PP(pp_ftctime) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; dTARGET; if (result < 0) RETPUSHUNDEF; @@ -2708,7 +2708,7 @@ PP(pp_ftctime) PP(pp_ftsock) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2719,7 +2719,7 @@ PP(pp_ftsock) PP(pp_ftchr) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2730,7 +2730,7 @@ PP(pp_ftchr) PP(pp_ftblk) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2741,7 +2741,7 @@ PP(pp_ftblk) PP(pp_ftfile) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2752,7 +2752,7 @@ PP(pp_ftfile) PP(pp_ftdir) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2763,7 +2763,7 @@ PP(pp_ftdir) PP(pp_ftpipe) { - I32 result = my_stat(ARGS); + I32 result = my_stat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2774,7 +2774,7 @@ PP(pp_ftpipe) PP(pp_ftlink) { - I32 result = my_lstat(ARGS); + I32 result = my_lstat(); djSP; if (result < 0) RETPUSHUNDEF; @@ -2787,7 +2787,7 @@ PP(pp_ftsuid) { djSP; #ifdef S_ISUID - I32 result = my_stat(ARGS); + I32 result = my_stat(); SPAGAIN; if (result < 0) RETPUSHUNDEF; @@ -2801,7 +2801,7 @@ PP(pp_ftsgid) { djSP; #ifdef S_ISGID - I32 result = my_stat(ARGS); + I32 result = my_stat(); SPAGAIN; if (result < 0) RETPUSHUNDEF; @@ -2815,7 +2815,7 @@ PP(pp_ftsvtx) { djSP; #ifdef S_ISVTX - I32 result = my_stat(ARGS); + I32 result = my_stat(); SPAGAIN; if (result < 0) RETPUSHUNDEF; @@ -2901,7 +2901,7 @@ PP(pp_fttext) } if (io && IoIFP(io)) { if (! PerlIO_has_base(IoIFP(io))) - DIE("-T and -B not implemented on filehandles"); + DIE(aTHX_ "-T and -B not implemented on filehandles"); PL_laststatval = PerlLIO_fstat(PerlIO_fileno(IoIFP(io)), &PL_statcache); if (PL_laststatval < 0) RETPUSHUNDEF; @@ -2925,7 +2925,7 @@ PP(pp_fttext) } else { if (ckWARN(WARN_UNOPENED)) - warner(WARN_UNOPENED, "Test on unopened file <%s>", + Perl_warner(aTHX_ WARN_UNOPENED, "Test on unopened file <%s>", GvENAME(cGVOP->op_gv)); SETERRNO(EBADF,RMS$_IFI); RETPUSHUNDEF; @@ -2944,7 +2944,7 @@ PP(pp_fttext) #endif if (i < 0) { if (ckWARN(WARN_NEWLINE) && strchr(SvPV(sv, n_a), '\n')) - warner(WARN_NEWLINE, PL_warn_nl, "open"); + Perl_warner(aTHX_ WARN_NEWLINE, PL_warn_nl, "open"); RETPUSHUNDEF; } PL_laststatval = PerlLIO_fstat(i, &PL_statcache); @@ -2989,7 +2989,7 @@ PP(pp_fttext) PP(pp_ftbinary) { - return pp_fttext(ARGS); + return pp_fttext(); } /* File calls. */ @@ -3042,7 +3042,7 @@ PP(pp_chown) PUSHi(value); RETURN; #else - DIE(PL_no_func, "Unsupported function chown"); + DIE(aTHX_ PL_no_func, "Unsupported function chown"); #endif } @@ -3057,7 +3057,7 @@ PP(pp_chroot) PUSHi( chroot(tmps) >= 0 ); RETURN; #else - DIE(PL_no_func, "chroot"); + DIE(aTHX_ PL_no_func, "chroot"); #endif } @@ -3128,7 +3128,7 @@ PP(pp_link) TAINT_PROPER("link"); SETi( link(tmps, tmps2) >= 0 ); #else - DIE(PL_no_func, "Unsupported function link"); + DIE(aTHX_ PL_no_func, "Unsupported function link"); #endif RETURN; } @@ -3144,7 +3144,7 @@ PP(pp_symlink) SETi( symlink(tmps, tmps2) >= 0 ); RETURN; #else - DIE(PL_no_func, "symlink"); + DIE(aTHX_ PL_no_func, "symlink"); #endif } @@ -3175,7 +3175,7 @@ PP(pp_readlink) #if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) STATIC int -dooneliner(pTHX_ char *cmd, char *filename) +S_dooneliner(pTHX_ char *cmd, char *filename) { char *save_filename = filename; char *cmdline; @@ -3323,7 +3323,7 @@ nope: SETERRNO(EBADF,RMS$_DIR); RETPUSHUNDEF; #else - DIE(PL_no_dir_func, "opendir"); + DIE(aTHX_ PL_no_dir_func, "opendir"); #endif } @@ -3379,7 +3379,7 @@ nope: else RETPUSHUNDEF; #else - DIE(PL_no_dir_func, "readdir"); + DIE(aTHX_ PL_no_dir_func, "readdir"); #endif } @@ -3407,7 +3407,7 @@ nope: SETERRNO(EBADF,RMS$_ISI); RETPUSHUNDEF; #else - DIE(PL_no_dir_func, "telldir"); + DIE(aTHX_ PL_no_dir_func, "telldir"); #endif } @@ -3430,7 +3430,7 @@ nope: SETERRNO(EBADF,RMS$_ISI); RETPUSHUNDEF; #else - DIE(PL_no_dir_func, "seekdir"); + DIE(aTHX_ PL_no_dir_func, "seekdir"); #endif } @@ -3451,7 +3451,7 @@ nope: SETERRNO(EBADF,RMS$_ISI); RETPUSHUNDEF; #else - DIE(PL_no_dir_func, "rewinddir"); + DIE(aTHX_ PL_no_dir_func, "rewinddir"); #endif } @@ -3481,7 +3481,7 @@ nope: SETERRNO(EBADF,RMS$_IFI); RETPUSHUNDEF; #else - DIE(PL_no_dir_func, "closedir"); + DIE(aTHX_ PL_no_dir_func, "closedir"); #endif } @@ -3508,7 +3508,7 @@ PP(pp_fork) PUSHi(childpid); RETURN; #else - DIE(PL_no_func, "Unsupported function fork"); + DIE(aTHX_ PL_no_func, "Unsupported function fork"); #endif } @@ -3524,7 +3524,7 @@ PP(pp_wait) XPUSHi(childpid); RETURN; #else - DIE(PL_no_func, "Unsupported function wait"); + DIE(aTHX_ PL_no_func, "Unsupported function wait"); #endif } @@ -3543,7 +3543,7 @@ PP(pp_waitpid) SETi(childpid); RETURN; #else - DIE(PL_no_func, "Unsupported function waitpid"); + DIE(aTHX_ PL_no_func, "Unsupported function waitpid"); #endif } @@ -3673,7 +3673,7 @@ PP(pp_kill) PUSHi(value); RETURN; #else - DIE(PL_no_func, "Unsupported function kill"); + DIE(aTHX_ PL_no_func, "Unsupported function kill"); #endif } @@ -3684,7 +3684,7 @@ PP(pp_getppid) XPUSHi( getppid() ); RETURN; #else - DIE(PL_no_func, "getppid"); + DIE(aTHX_ PL_no_func, "getppid"); #endif } @@ -3703,13 +3703,13 @@ PP(pp_getpgrp) value = (I32)BSD_GETPGRP(pid); #else if (pid != 0 && pid != getpid()) - DIE("POSIX getpgrp can't take an argument"); + DIE(aTHX_ "POSIX getpgrp can't take an argument"); value = (I32)getpgrp(); #endif XPUSHi(value); RETURN; #else - DIE(PL_no_func, "getpgrp()"); + DIE(aTHX_ PL_no_func, "getpgrp()"); #endif } @@ -3733,12 +3733,12 @@ PP(pp_setpgrp) SETi( BSD_SETPGRP(pid, pgrp) >= 0 ); #else if ((pgrp != 0 && pgrp != getpid()) || (pid != 0 && pid != getpid())) - DIE("POSIX setpgrp can't take an argument"); + DIE(aTHX_ "POSIX setpgrp can't take an argument"); SETi( setpgrp() >= 0 ); #endif /* USE_BSDPGRP */ RETURN; #else - DIE(PL_no_func, "setpgrp()"); + DIE(aTHX_ PL_no_func, "setpgrp()"); #endif } @@ -3753,7 +3753,7 @@ PP(pp_getpriority) SETi( getpriority(which, who) ); RETURN; #else - DIE(PL_no_func, "getpriority()"); + DIE(aTHX_ PL_no_func, "getpriority()"); #endif } @@ -3771,7 +3771,7 @@ PP(pp_setpriority) SETi( setpriority(which, who, niceval) >= 0 ); RETURN; #else - DIE(PL_no_func, "setpriority()"); + DIE(aTHX_ PL_no_func, "setpriority()"); #endif } @@ -3809,7 +3809,7 @@ PP(pp_tms) djSP; #ifndef HAS_TIMES - DIE("times not implemented"); + DIE(aTHX_ "times not implemented"); #else EXTEND(SP, 4); @@ -3833,7 +3833,7 @@ PP(pp_tms) PP(pp_localtime) { - return pp_gmtime(ARGS); + return pp_gmtime(); } PP(pp_gmtime) @@ -3866,7 +3866,7 @@ PP(pp_gmtime) SV *tsv; if (!tmbuf) RETPUSHUNDEF; - tsv = newSVpvf("%s %s %2d %02d:%02d:%02d %d", + tsv = Perl_newSVpvf(aTHX_ "%s %s %2d %02d:%02d:%02d %d", dayname[tmbuf->tm_wday], monname[tmbuf->tm_mon], tmbuf->tm_mday, @@ -3903,7 +3903,7 @@ PP(pp_alarm) PUSHi((I32)anum); RETURN; #else - DIE(PL_no_func, "Unsupported function alarm"); + DIE(aTHX_ PL_no_func, "Unsupported function alarm"); #endif } @@ -3930,17 +3930,17 @@ PP(pp_sleep) PP(pp_shmget) { - return pp_semget(ARGS); + return pp_semget(); } PP(pp_shmctl) { - return pp_semctl(ARGS); + return pp_semctl(); } PP(pp_shmread) { - return pp_shmwrite(ARGS); + return pp_shmwrite(); } PP(pp_shmwrite) @@ -3952,7 +3952,7 @@ PP(pp_shmwrite) PUSHi(value); RETURN; #else - return pp_semget(ARGS); + return pp_semget(); #endif } @@ -3960,12 +3960,12 @@ PP(pp_shmwrite) PP(pp_msgget) { - return pp_semget(ARGS); + return pp_semget(); } PP(pp_msgctl) { - return pp_semctl(ARGS); + return pp_semctl(); } PP(pp_msgsnd) @@ -3977,7 +3977,7 @@ PP(pp_msgsnd) PUSHi(value); RETURN; #else - return pp_semget(ARGS); + return pp_semget(); #endif } @@ -3990,7 +3990,7 @@ PP(pp_msgrcv) PUSHi(value); RETURN; #else - return pp_semget(ARGS); + return pp_semget(); #endif } @@ -4007,7 +4007,7 @@ PP(pp_semget) PUSHi(anum); RETURN; #else - DIE("System V IPC is not implemented on this machine"); + DIE(aTHX_ "System V IPC is not implemented on this machine"); #endif } @@ -4027,7 +4027,7 @@ PP(pp_semctl) } RETURN; #else - return pp_semget(ARGS); + return pp_semget(); #endif } @@ -4040,7 +4040,7 @@ PP(pp_semop) PUSHi(value); RETURN; #else - return pp_semget(ARGS); + return pp_semget(); #endif } @@ -4049,18 +4049,18 @@ PP(pp_semop) PP(pp_ghbyname) { #ifdef HAS_GETHOSTBYNAME - return pp_ghostent(ARGS); + return pp_ghostent(); #else - DIE(PL_no_sock_func, "gethostbyname"); + DIE(aTHX_ PL_no_sock_func, "gethostbyname"); #endif } PP(pp_ghbyaddr) { #ifdef HAS_GETHOSTBYADDR - return pp_ghostent(ARGS); + return pp_ghostent(); #else - DIE(PL_no_sock_func, "gethostbyaddr"); + DIE(aTHX_ PL_no_sock_func, "gethostbyaddr"); #endif } @@ -4085,7 +4085,7 @@ PP(pp_ghostent) #ifdef HAS_GETHOSTBYNAME hent = PerlSock_gethostbyname(POPpx); #else - DIE(PL_no_sock_func, "gethostbyname"); + DIE(aTHX_ PL_no_sock_func, "gethostbyname"); #endif else if (which == OP_GHBYADDR) { #ifdef HAS_GETHOSTBYADDR @@ -4096,14 +4096,14 @@ PP(pp_ghostent) hent = PerlSock_gethostbyaddr(addr, (Netdb_hlen_t) addrlen, addrtype); #else - DIE(PL_no_sock_func, "gethostbyaddr"); + DIE(aTHX_ PL_no_sock_func, "gethostbyaddr"); #endif } else #ifdef HAS_GETHOSTENT hent = PerlSock_gethostent(); #else - DIE(PL_no_sock_func, "gethostent"); + DIE(aTHX_ PL_no_sock_func, "gethostent"); #endif #ifdef HOST_NOT_FOUND @@ -4151,25 +4151,25 @@ PP(pp_ghostent) } RETURN; #else - DIE(PL_no_sock_func, "gethostent"); + DIE(aTHX_ PL_no_sock_func, "gethostent"); #endif } PP(pp_gnbyname) { #ifdef HAS_GETNETBYNAME - return pp_gnetent(ARGS); + return pp_gnetent(); #else - DIE(PL_no_sock_func, "getnetbyname"); + DIE(aTHX_ PL_no_sock_func, "getnetbyname"); #endif } PP(pp_gnbyaddr) { #ifdef HAS_GETNETBYADDR - return pp_gnetent(ARGS); + return pp_gnetent(); #else - DIE(PL_no_sock_func, "getnetbyaddr"); + DIE(aTHX_ PL_no_sock_func, "getnetbyaddr"); #endif } @@ -4192,7 +4192,7 @@ PP(pp_gnetent) #ifdef HAS_GETNETBYNAME nent = PerlSock_getnetbyname(POPpx); #else - DIE(PL_no_sock_func, "getnetbyname"); + DIE(aTHX_ PL_no_sock_func, "getnetbyname"); #endif else if (which == OP_GNBYADDR) { #ifdef HAS_GETNETBYADDR @@ -4200,14 +4200,14 @@ PP(pp_gnetent) Netdb_net_t addr = (Netdb_net_t) U_L(POPn); nent = PerlSock_getnetbyaddr(addr, addrtype); #else - DIE(PL_no_sock_func, "getnetbyaddr"); + DIE(aTHX_ PL_no_sock_func, "getnetbyaddr"); #endif } else #ifdef HAS_GETNETENT nent = PerlSock_getnetent(); #else - DIE(PL_no_sock_func, "getnetent"); + DIE(aTHX_ PL_no_sock_func, "getnetent"); #endif EXTEND(SP, 4); @@ -4239,25 +4239,25 @@ PP(pp_gnetent) RETURN; #else - DIE(PL_no_sock_func, "getnetent"); + DIE(aTHX_ PL_no_sock_func, "getnetent"); #endif } PP(pp_gpbyname) { #ifdef HAS_GETPROTOBYNAME - return pp_gprotoent(ARGS); + return pp_gprotoent(); #else - DIE(PL_no_sock_func, "getprotobyname"); + DIE(aTHX_ PL_no_sock_func, "getprotobyname"); #endif } PP(pp_gpbynumber) { #ifdef HAS_GETPROTOBYNUMBER - return pp_gprotoent(ARGS); + return pp_gprotoent(); #else - DIE(PL_no_sock_func, "getprotobynumber"); + DIE(aTHX_ PL_no_sock_func, "getprotobynumber"); #endif } @@ -4280,19 +4280,19 @@ PP(pp_gprotoent) #ifdef HAS_GETPROTOBYNAME pent = PerlSock_getprotobyname(POPpx); #else - DIE(PL_no_sock_func, "getprotobyname"); + DIE(aTHX_ PL_no_sock_func, "getprotobyname"); #endif else if (which == OP_GPBYNUMBER) #ifdef HAS_GETPROTOBYNUMBER pent = PerlSock_getprotobynumber(POPi); #else - DIE(PL_no_sock_func, "getprotobynumber"); + DIE(aTHX_ PL_no_sock_func, "getprotobynumber"); #endif else #ifdef HAS_GETPROTOENT pent = PerlSock_getprotoent(); #else - DIE(PL_no_sock_func, "getprotoent"); + DIE(aTHX_ PL_no_sock_func, "getprotoent"); #endif EXTEND(SP, 3); @@ -4322,25 +4322,25 @@ PP(pp_gprotoent) RETURN; #else - DIE(PL_no_sock_func, "getprotoent"); + DIE(aTHX_ PL_no_sock_func, "getprotoent"); #endif } PP(pp_gsbyname) { #ifdef HAS_GETSERVBYNAME - return pp_gservent(ARGS); + return pp_gservent(); #else - DIE(PL_no_sock_func, "getservbyname"); + DIE(aTHX_ PL_no_sock_func, "getservbyname"); #endif } PP(pp_gsbyport) { #ifdef HAS_GETSERVBYPORT - return pp_gservent(ARGS); + return pp_gservent(); #else - DIE(PL_no_sock_func, "getservbyport"); + DIE(aTHX_ PL_no_sock_func, "getservbyport"); #endif } @@ -4369,7 +4369,7 @@ PP(pp_gservent) sent = PerlSock_getservbyname(name, proto); #else - DIE(PL_no_sock_func, "getservbyname"); + DIE(aTHX_ PL_no_sock_func, "getservbyname"); #endif } else if (which == OP_GSBYPORT) { @@ -4382,14 +4382,14 @@ PP(pp_gservent) #endif sent = PerlSock_getservbyport(port, proto); #else - DIE(PL_no_sock_func, "getservbyport"); + DIE(aTHX_ PL_no_sock_func, "getservbyport"); #endif } else #ifdef HAS_GETSERVENT sent = PerlSock_getservent(); #else - DIE(PL_no_sock_func, "getservent"); + DIE(aTHX_ PL_no_sock_func, "getservent"); #endif EXTEND(SP, 4); @@ -4430,7 +4430,7 @@ PP(pp_gservent) RETURN; #else - DIE(PL_no_sock_func, "getservent"); + DIE(aTHX_ PL_no_sock_func, "getservent"); #endif } @@ -4441,7 +4441,7 @@ PP(pp_shostent) PerlSock_sethostent(TOPi); RETSETYES; #else - DIE(PL_no_sock_func, "sethostent"); + DIE(aTHX_ PL_no_sock_func, "sethostent"); #endif } @@ -4452,7 +4452,7 @@ PP(pp_snetent) PerlSock_setnetent(TOPi); RETSETYES; #else - DIE(PL_no_sock_func, "setnetent"); + DIE(aTHX_ PL_no_sock_func, "setnetent"); #endif } @@ -4463,7 +4463,7 @@ PP(pp_sprotoent) PerlSock_setprotoent(TOPi); RETSETYES; #else - DIE(PL_no_sock_func, "setprotoent"); + DIE(aTHX_ PL_no_sock_func, "setprotoent"); #endif } @@ -4474,7 +4474,7 @@ PP(pp_sservent) PerlSock_setservent(TOPi); RETSETYES; #else - DIE(PL_no_sock_func, "setservent"); + DIE(aTHX_ PL_no_sock_func, "setservent"); #endif } @@ -4486,7 +4486,7 @@ PP(pp_ehostent) EXTEND(SP,1); RETPUSHYES; #else - DIE(PL_no_sock_func, "endhostent"); + DIE(aTHX_ PL_no_sock_func, "endhostent"); #endif } @@ -4498,7 +4498,7 @@ PP(pp_enetent) EXTEND(SP,1); RETPUSHYES; #else - DIE(PL_no_sock_func, "endnetent"); + DIE(aTHX_ PL_no_sock_func, "endnetent"); #endif } @@ -4510,7 +4510,7 @@ PP(pp_eprotoent) EXTEND(SP,1); RETPUSHYES; #else - DIE(PL_no_sock_func, "endprotoent"); + DIE(aTHX_ PL_no_sock_func, "endprotoent"); #endif } @@ -4522,25 +4522,25 @@ PP(pp_eservent) EXTEND(SP,1); RETPUSHYES; #else - DIE(PL_no_sock_func, "endservent"); + DIE(aTHX_ PL_no_sock_func, "endservent"); #endif } PP(pp_gpwnam) { #ifdef HAS_PASSWD - return pp_gpwent(ARGS); + return pp_gpwent(); #else - DIE(PL_no_func, "getpwnam"); + DIE(aTHX_ PL_no_func, "getpwnam"); #endif } PP(pp_gpwuid) { #ifdef HAS_PASSWD - return pp_gpwent(ARGS); + return pp_gpwent(); #else - DIE(PL_no_func, "getpwuid"); + DIE(aTHX_ PL_no_func, "getpwuid"); #endif } @@ -4658,7 +4658,7 @@ PP(pp_gpwent) } RETURN; #else - DIE(PL_no_func, "getpwent"); + DIE(aTHX_ PL_no_func, "getpwent"); #endif } @@ -4672,7 +4672,7 @@ PP(pp_spwent) # endif RETPUSHYES; #else - DIE(PL_no_func, "setpwent"); + DIE(aTHX_ PL_no_func, "setpwent"); #endif } @@ -4686,25 +4686,25 @@ PP(pp_epwent) # endif RETPUSHYES; #else - DIE(PL_no_func, "endpwent"); + DIE(aTHX_ PL_no_func, "endpwent"); #endif } PP(pp_ggrnam) { #ifdef HAS_GROUP - return pp_ggrent(ARGS); + return pp_ggrent(); #else - DIE(PL_no_func, "getgrnam"); + DIE(aTHX_ PL_no_func, "getgrnam"); #endif } PP(pp_ggrgid) { #ifdef HAS_GROUP - return pp_ggrent(ARGS); + return pp_ggrent(); #else - DIE(PL_no_func, "getgrgid"); + DIE(aTHX_ PL_no_func, "getgrgid"); #endif } @@ -4759,7 +4759,7 @@ PP(pp_ggrent) RETURN; #else - DIE(PL_no_func, "getgrent"); + DIE(aTHX_ PL_no_func, "getgrent"); #endif } @@ -4770,7 +4770,7 @@ PP(pp_sgrent) setgrent(); RETPUSHYES; #else - DIE(PL_no_func, "setgrent"); + DIE(aTHX_ PL_no_func, "setgrent"); #endif } @@ -4781,7 +4781,7 @@ PP(pp_egrent) endgrent(); RETPUSHYES; #else - DIE(PL_no_func, "endgrent"); + DIE(aTHX_ PL_no_func, "endgrent"); #endif } @@ -4796,7 +4796,7 @@ PP(pp_getlogin) PUSHp(tmps, strlen(tmps)); RETURN; #else - DIE(PL_no_func, "getlogin"); + DIE(aTHX_ PL_no_func, "getlogin"); #endif } @@ -4840,9 +4840,9 @@ PP(pp_syscall) } switch (items) { default: - DIE("Too many args to syscall"); + DIE(aTHX_ "Too many args to syscall"); case 0: - DIE("Too few args to syscall"); + DIE(aTHX_ "Too few args to syscall"); case 1: retval = syscall(a[0]); break; @@ -4896,7 +4896,7 @@ PP(pp_syscall) PUSHi(retval); RETURN; #else - DIE(PL_no_func, "syscall"); + DIE(aTHX_ PL_no_func, "syscall"); #endif } @@ -4906,8 +4906,8 @@ PP(pp_syscall) What's really needed is a good file locking module. */ -STATIC int -fcntl_emulate_flock(pTHX_ int fd, int operation) +static int +fcntl_emulate_flock(int fd, int operation) { struct flock flock; @@ -4963,8 +4963,8 @@ fcntl_emulate_flock(pTHX_ int fd, int operation) # define F_TEST 3 /* Test a region for other processes locks */ # endif -STATIC int -lockf_emulate_flock(pTHX_ int fd, int operation) +static int +lockf_emulate_flock(int fd, int operation) { int i; int save_errno; diff --git a/proto.h b/proto.h index 95b0831..dad622a 100644 --- a/proto.h +++ b/proto.h @@ -1,15 +1,20 @@ -#if defined(WIN32) -int& Perl_ErrorNo(pTHX); -#endif -#if defined(PERL_GLOBAL_STRUCT) -struct perl_vars * Perl_GetVars(pTHX); -#endif -bool Perl_Gv_AMupdate(pTHX_ HV* stash); +/* + * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! + * This file is autogenerated from data in embed.pl. Edit that file + * and run 'make regen_headers' to effect changes. + */ + SV* Perl_amagic_call(pTHX_ SV* left, SV* right, int method, int dir); +bool Perl_Gv_AMupdate(pTHX_ HV* stash); OP* Perl_append_elem(pTHX_ I32 optype, OP* head, OP* tail); OP* Perl_append_list(pTHX_ I32 optype, LISTOP* first, LISTOP* last); I32 Perl_apply(pTHX_ I32 type, SV** mark, SV** sp); void Perl_assertref(pTHX_ OP* o); +bool Perl_avhv_exists_ent(pTHX_ AV *ar, SV* keysv, U32 hash); +SV** Perl_avhv_fetch_ent(pTHX_ AV *ar, SV* keysv, I32 lval, U32 hash); +HE* Perl_avhv_iternext(pTHX_ AV *ar); +SV* Perl_avhv_iterval(pTHX_ AV *ar, HE* entry); +HV* Perl_avhv_keys(pTHX_ AV *ar); void Perl_av_clear(pTHX_ AV* ar); void Perl_av_extend(pTHX_ AV* ar, I32 key); AV* Perl_av_fake(pTHX_ I32 size, SV** svp); @@ -24,56 +29,63 @@ SV* Perl_av_shift(pTHX_ AV* ar); SV** Perl_av_store(pTHX_ AV* ar, I32 key, SV* val); void Perl_av_undef(pTHX_ AV* ar); void Perl_av_unshift(pTHX_ AV* ar, I32 num); -bool Perl_avhv_exists_ent(pTHX_ AV *ar, SV* keysv, U32 hash); -SV** Perl_avhv_fetch_ent(pTHX_ AV *ar, SV* keysv, I32 lval, U32 hash); -HE* Perl_avhv_iternext(pTHX_ AV *ar); -SV* Perl_avhv_iterval(pTHX_ AV *ar, HE* entry); -HV* Perl_avhv_keys(pTHX_ AV *ar); OP* Perl_bind_match(pTHX_ I32 type, OP* left, OP* pat); OP* Perl_block_end(pTHX_ I32 floor, OP* seq); I32 Perl_block_gimme(pTHX); int Perl_block_start(pTHX_ int full); void Perl_boot_core_UNIVERSAL(pTHX); -void* Perl_bset_obj_store(pTHX_ void *obj, I32 ix); -I32 Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv); -void Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr); void Perl_call_list(pTHX_ I32 oldscope, AV* av_list); -I32 Perl_call_method(pTHX_ const char* methname, I32 flags); -I32 Perl_call_pv(pTHX_ const char* sub_name, I32 flags); -I32 Perl_call_sv(pTHX_ SV* sv, I32 flags); -#if defined(MYMALLOC) -Malloc_t Perl_calloc(pTHX_ MEM_SIZE elements, MEM_SIZE size); -#endif I32 Perl_cando(pTHX_ I32 bit, I32 effective, Stat_t* statbufp); +U32 Perl_cast_ulong(pTHX_ double f); I32 Perl_cast_i32(pTHX_ double f); IV Perl_cast_iv(pTHX_ double f); -U32 Perl_cast_ulong(pTHX_ double f); UV Perl_cast_uv(pTHX_ double f); +#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) +I32 Perl_my_chsize(pTHX_ int fd, Off_t length); +#endif #if defined(USE_THREADS) MAGIC* Perl_condpair_magic(pTHX_ SV *sv); #endif OP* Perl_convert(pTHX_ I32 optype, I32 flags, OP* o); void Perl_croak(pTHX_ const char* pat, ...) __attribute__((noreturn)); +#if defined(PERL_IMPLICIT_CONTEXT) +void Perl_croak_nocontext(const char* pat, ...) __attribute__((noreturn)); +OP* Perl_die_nocontext(const char* pat, ...); +char* Perl_form_nocontext(const char* pat, ...); +void Perl_warn_nocontext(const char* pat, ...); +SV* Perl_newSVpvf_nocontext(const char* pat, ...); +void Perl_sv_catpvf_nocontext(SV* sv, const char* pat, ...); +void Perl_sv_setpvf_nocontext(SV* sv, const char* pat, ...); +void Perl_sv_catpvf_mg_nocontext(SV* sv, const char* pat, ...); +void Perl_sv_setpvf_mg_nocontext(SV* sv, const char* pat, ...); +#endif void Perl_cv_ckproto(pTHX_ CV* cv, GV* gv, char* p); CV* Perl_cv_clone(pTHX_ CV* proto); SV* Perl_cv_const_sv(pTHX_ CV* cv); +SV* Perl_op_const_sv(pTHX_ OP* o, CV* cv); void Perl_cv_undef(pTHX_ CV* cv); void Perl_cx_dump(pTHX_ PERL_CONTEXT* cs); +SV* Perl_filter_add(pTHX_ filter_t funcp, SV* datasv); +void Perl_filter_del(pTHX_ filter_t funcp); +I32 Perl_filter_read(pTHX_ int idx, SV* buffer, int maxlen); +char** Perl_get_op_descs(pTHX); +char** Perl_get_op_names(pTHX); +char* Perl_get_no_modify(pTHX); +U32* Perl_get_opargs(pTHX); I32 Perl_cxinc(pTHX); void Perl_deb(pTHX_ const char* pat, ...); void Perl_deb_growlevel(pTHX); -I32 Perl_debop(pTHX_ OP* o); void Perl_debprofdump(pTHX); +I32 Perl_debop(pTHX_ OP* o); I32 Perl_debstack(pTHX); I32 Perl_debstackptrs(pTHX); -void* Perl_default_protect(pTHX_ int *excpt, protect_body_t body, ...); char* Perl_delimcpy(pTHX_ char* to, char* toend, char* from, char* fromend, int delim, I32* retlen); void Perl_deprecate(pTHX_ char* s); OP* Perl_die(pTHX_ const char* pat, ...); OP* Perl_die_where(pTHX_ char* message, STRLEN msglen); +void Perl_dounwind(pTHX_ I32 cxix); bool Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp); int Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int flag); -I32 Perl_do_chomp(pTHX_ SV* sv); void Perl_do_chop(pTHX_ SV* asv, SV* sv); bool Perl_do_close(pTHX_ GV* gv, bool not_implicit); bool Perl_do_eof(pTHX_ GV* gv); @@ -82,46 +94,29 @@ bool Perl_do_exec(pTHX_ char* cmd); bool Perl_do_exec3(pTHX_ char* cmd, int fd, int flag); #endif void Perl_do_execfree(pTHX); -void Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv); -void Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv); -void Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv); #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) I32 Perl_do_ipcctl(pTHX_ I32 optype, SV** mark, SV** sp); -#endif -#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) I32 Perl_do_ipcget(pTHX_ I32 optype, SV** mark, SV** sp); -#endif -void Perl_do_join(pTHX_ SV* sv, SV* del, SV** mark, SV** sp); -OP* Perl_do_kv(pTHX_ ARGSproto); -void Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim); -#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) I32 Perl_do_msgrcv(pTHX_ SV** mark, SV** sp); -#endif -#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) I32 Perl_do_msgsnd(pTHX_ SV** mark, SV** sp); +I32 Perl_do_semop(pTHX_ SV** mark, SV** sp); +I32 Perl_do_shmio(pTHX_ I32 optype, SV** mark, SV** sp); #endif -void Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o); +void Perl_do_join(pTHX_ SV* sv, SV* del, SV** mark, SV** sp); +OP* Perl_do_kv(pTHX); bool Perl_do_open(pTHX_ GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp); void Perl_do_pipe(pTHX_ SV* sv, GV* rgv, GV* wgv); -void Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm); bool Perl_do_print(pTHX_ SV* sv, PerlIO* fp); OP* Perl_do_readline(pTHX); +I32 Perl_do_chomp(pTHX_ SV* sv); bool Perl_do_seek(pTHX_ GV* gv, Off_t pos, int whence); -#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) -I32 Perl_do_semop(pTHX_ SV** mark, SV** sp); -#endif -#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) -I32 Perl_do_shmio(pTHX_ I32 optype, SV** mark, SV** sp); -#endif void Perl_do_sprintf(pTHX_ SV* sv, I32 len, SV** sarg); -void Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim); Off_t Perl_do_sysseek(pTHX_ GV* gv, Off_t pos, int whence); Off_t Perl_do_tell(pTHX_ GV* gv); I32 Perl_do_trans(pTHX_ SV* sv); void Perl_do_vecset(pTHX_ SV* sv); void Perl_do_vop(pTHX_ I32 optype, SV* sv, SV* left, SV* right); OP* Perl_dofile(pTHX_ OP* term); -void Perl_dounwind(pTHX_ I32 cxix); I32 Perl_dowantarray(pTHX); void Perl_dump_all(pTHX); void Perl_dump_eval(pTHX); @@ -129,37 +124,22 @@ void Perl_dump_eval(pTHX); void Perl_dump_fds(pTHX_ char* s); #endif void Perl_dump_form(pTHX_ GV* gv); -void Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...); -#if defined(MYMALLOC) -void Perl_dump_mstats(pTHX_ char* s); -#endif +void Perl_gv_dump(pTHX_ GV* gv); +void Perl_op_dump(pTHX_ OP* arg); +void Perl_pmop_dump(pTHX_ PMOP* pm); void Perl_dump_packsubs(pTHX_ HV* stash); void Perl_dump_sub(pTHX_ GV* gv); -SV* Perl_eval_pv(pTHX_ const char* p, I32 croak_on_error); -I32 Perl_eval_sv(pTHX_ SV* sv, I32 flags); void Perl_fbm_compile(pTHX_ SV* sv, U32 flags); char* Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags); -SV* Perl_filter_add(pTHX_ filter_t funcp, SV* datasv); -void Perl_filter_del(pTHX_ filter_t funcp); -I32 Perl_filter_read(pTHX_ int idx, SV* buffer, int maxlen); char* Perl_find_script(pTHX_ char *scriptname, bool dosearch, char **search_ext, I32 flags); #if defined(USE_THREADS) PADOFFSET Perl_find_threadsv(pTHX_ const char *name); #endif -OP* Perl_fold_constants(pTHX_ OP* arg); OP* Perl_force_list(pTHX_ OP* arg); +OP* Perl_fold_constants(pTHX_ OP* arg); char* Perl_form(pTHX_ const char* pat, ...); void Perl_free_tmps(pTHX); OP* Perl_gen_constant_list(pTHX_ OP* o); -AV* Perl_get_av(pTHX_ const char* name, I32 create); -CV* Perl_get_cv(pTHX_ const char* name, I32 create); -HV* Perl_get_hv(pTHX_ const char* name, I32 create); -char* Perl_get_no_modify(pTHX); -char** Perl_get_op_descs(pTHX); -char** Perl_get_op_names(pTHX); -U32* Perl_get_opargs(pTHX); -SV* Perl_get_sv(pTHX_ const char* name, I32 create); -MGVTBL* Perl_get_vtbl(pTHX_ int vtbl_id); #if !defined(HAS_GETENV_LEN) char* Perl_getenv_len(pTHX_ char* key, unsigned long *len); #endif @@ -170,7 +150,6 @@ GV* Perl_gv_HVadd(pTHX_ GV* gv); GV* Perl_gv_IOadd(pTHX_ GV* gv); GV* Perl_gv_autoload4(pTHX_ HV* stash, const char* name, STRLEN len, I32 method); void Perl_gv_check(pTHX_ HV* stash); -void Perl_gv_dump(pTHX_ GV* gv); void Perl_gv_efullname(pTHX_ SV* sv, GV* gv); void Perl_gv_efullname3(pTHX_ SV* sv, GV* gv, const char* prefix); GV* Perl_gv_fetchfile(pTHX_ const char* name); @@ -207,38 +186,42 @@ void Perl_hv_undef(pTHX_ HV* tb); I32 Perl_ibcmp(pTHX_ const char* a, const char* b, I32 len); I32 Perl_ibcmp_locale(pTHX_ const char* a, const char* b, I32 len); I32 Perl_ingroup(pTHX_ I32 testgid, I32 effective); -int Perl_init_i18nl10n(pTHX_ int printwarn); -int Perl_init_i18nl14n(pTHX_ int printwarn); -void Perl_init_stacks(pTHX_ ARGSproto); -char* Perl_instr(pTHX_ const char* big, const char* little); +void Perl_init_stacks(pTHX); U32 Perl_intro_my(pTHX); -OP* Perl_invert(pTHX_ OP* cmd); +char* Perl_instr(pTHX_ const char* big, const char* little); bool Perl_io_close(pTHX_ IO* io); +OP* Perl_invert(pTHX_ OP* cmd); bool Perl_is_uni_alnum(pTHX_ U32 c); -bool Perl_is_uni_alnum_lc(pTHX_ U32 c); +bool Perl_is_uni_idfirst(pTHX_ U32 c); bool Perl_is_uni_alpha(pTHX_ U32 c); -bool Perl_is_uni_alpha_lc(pTHX_ U32 c); +bool Perl_is_uni_space(pTHX_ U32 c); bool Perl_is_uni_digit(pTHX_ U32 c); -bool Perl_is_uni_digit_lc(pTHX_ U32 c); -bool Perl_is_uni_idfirst(pTHX_ U32 c); -bool Perl_is_uni_idfirst_lc(pTHX_ U32 c); +bool Perl_is_uni_upper(pTHX_ U32 c); bool Perl_is_uni_lower(pTHX_ U32 c); -bool Perl_is_uni_lower_lc(pTHX_ U32 c); bool Perl_is_uni_print(pTHX_ U32 c); -bool Perl_is_uni_print_lc(pTHX_ U32 c); -bool Perl_is_uni_space(pTHX_ U32 c); +U32 Perl_to_uni_upper(pTHX_ U32 c); +U32 Perl_to_uni_title(pTHX_ U32 c); +U32 Perl_to_uni_lower(pTHX_ U32 c); +bool Perl_is_uni_alnum_lc(pTHX_ U32 c); +bool Perl_is_uni_idfirst_lc(pTHX_ U32 c); +bool Perl_is_uni_alpha_lc(pTHX_ U32 c); bool Perl_is_uni_space_lc(pTHX_ U32 c); -bool Perl_is_uni_upper(pTHX_ U32 c); +bool Perl_is_uni_digit_lc(pTHX_ U32 c); bool Perl_is_uni_upper_lc(pTHX_ U32 c); +bool Perl_is_uni_lower_lc(pTHX_ U32 c); +bool Perl_is_uni_print_lc(pTHX_ U32 c); +U32 Perl_to_uni_upper_lc(pTHX_ U32 c); +U32 Perl_to_uni_title_lc(pTHX_ U32 c); +U32 Perl_to_uni_lower_lc(pTHX_ U32 c); bool Perl_is_utf8_alnum(pTHX_ U8 *p); +bool Perl_is_utf8_idfirst(pTHX_ U8 *p); bool Perl_is_utf8_alpha(pTHX_ U8 *p); +bool Perl_is_utf8_space(pTHX_ U8 *p); bool Perl_is_utf8_digit(pTHX_ U8 *p); -bool Perl_is_utf8_idfirst(pTHX_ U8 *p); +bool Perl_is_utf8_upper(pTHX_ U8 *p); bool Perl_is_utf8_lower(pTHX_ U8 *p); -bool Perl_is_utf8_mark(pTHX_ U8 *p); bool Perl_is_utf8_print(pTHX_ U8 *p); -bool Perl_is_utf8_space(pTHX_ U8 *p); -bool Perl_is_utf8_upper(pTHX_ U8 *p); +bool Perl_is_utf8_mark(pTHX_ U8 *p); OP* Perl_jmaybe(pTHX_ OP* arg); I32 Perl_keyword(pTHX_ char* d, I32 len); void Perl_leave_scope(pTHX_ I32 base); @@ -249,11 +232,10 @@ OP* Perl_list(pTHX_ OP* o); OP* Perl_listkids(pTHX_ OP* o); OP* Perl_localize(pTHX_ OP* arg, I32 lexical); I32 Perl_looks_like_number(pTHX_ SV* sv); -int Perl_magic_clear_all_env(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_clearenv(pTHX_ SV* sv, MAGIC* mg); +int Perl_magic_clear_all_env(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_clearpack(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_clearsig(pTHX_ SV* sv, MAGIC* mg); -void Perl_magic_dump(pTHX_ MAGIC *mg); int Perl_magic_existspack(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_freeregexp(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_get(pTHX_ SV* sv, MAGIC* mg); @@ -268,7 +250,6 @@ int Perl_magic_getsubstr(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_gettaint(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_getuvar(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_getvec(pTHX_ SV* sv, MAGIC* mg); -int Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg); U32 Perl_magic_len(pTHX_ SV* sv, MAGIC* mg); #if defined(USE_THREADS) int Perl_magic_mutexfree(pTHX_ SV* sv, MAGIC* mg); @@ -277,19 +258,18 @@ int Perl_magic_nextpack(pTHX_ SV* sv, MAGIC* mg, SV* key); U32 Perl_magic_regdata_cnt(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_regdatum_get(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_set(pTHX_ SV* sv, MAGIC* mg); -int Perl_magic_set_all_env(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setamagic(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setarylen(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setbm(pTHX_ SV* sv, MAGIC* mg); +int Perl_magic_setdbline(pTHX_ SV* sv, MAGIC* mg); #if defined(USE_LOCALE_COLLATE) int Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg); #endif -int Perl_magic_setdbline(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setdefelem(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setenv(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setfm(pTHX_ SV* sv, MAGIC* mg); -int Perl_magic_setglob(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setisa(pTHX_ SV* sv, MAGIC* mg); +int Perl_magic_setglob(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setmglob(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setnkeys(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setpack(pTHX_ SV* sv, MAGIC* mg); @@ -299,24 +279,19 @@ int Perl_magic_setsubstr(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_settaint(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setuvar(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_setvec(pTHX_ SV* sv, MAGIC* mg); +int Perl_magic_set_all_env(pTHX_ SV* sv, MAGIC* mg); U32 Perl_magic_sizepack(pTHX_ SV* sv, MAGIC* mg); int Perl_magic_wipepack(pTHX_ SV* sv, MAGIC* mg); void Perl_magicname(pTHX_ char* sym, char* name, I32 namlen); int main(int argc, char** argv, char** env); #if defined(MYMALLOC) -Malloc_t Perl_malloc(pTHX_ MEM_SIZE nbytes); -#endif -#if defined(MYMALLOC) -MEM_SIZE Perl_malloced_size(pTHX_ void *p); +MEM_SIZE Perl_malloced_size(void *p); #endif void Perl_markstack_grow(pTHX); #if defined(USE_LOCALE_COLLATE) char* Perl_mem_collxfrm(pTHX_ const char* s, STRLEN len, STRLEN* xlen); #endif SV* Perl_mess(pTHX_ const char* pat, va_list* args); -#if defined(MYMALLOC) -Free_t Perl_mfree(pTHX_ Malloc_t where); -#endif int Perl_mg_clear(pTHX_ SV* sv); int Perl_mg_copy(pTHX_ SV* sv, SV* nsv, const char* key, I32 klen); MAGIC* Perl_mg_find(pTHX_ SV* sv, int type); @@ -335,174 +310,153 @@ char* Perl_my_bcopy(pTHX_ const char* from, char* to, I32 len); #if !defined(HAS_BZERO) && !defined(HAS_MEMSET) char* Perl_my_bzero(pTHX_ char* loc, I32 len); #endif -#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) -I32 Perl_my_chsize(pTHX_ int fd, Off_t length); -#endif void Perl_my_exit(pTHX_ U32 status) __attribute__((noreturn)); void Perl_my_failure_exit(pTHX) __attribute__((noreturn)); I32 Perl_my_fflush_all(pTHX); -#if defined(MYSWAP) -long Perl_my_htonl(pTHX_ long l); -#endif -I32 Perl_my_lstat(pTHX_ ARGSproto); +I32 Perl_my_lstat(pTHX); #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP) I32 Perl_my_memcmp(pTHX_ const char* s1, const char* s2, I32 len); #endif #if !defined(HAS_MEMSET) void* Perl_my_memset(pTHX_ char* loc, I32 ch, I32 len); #endif -#if defined(MYSWAP) -long Perl_my_ntohl(pTHX_ long l); -#endif #if !defined(PERL_OBJECT) I32 Perl_my_pclose(pTHX_ PerlIO* ptr); -#endif -#if !defined(PERL_OBJECT) PerlIO* Perl_my_popen(pTHX_ char* cmd, char* mode); #endif void Perl_my_setenv(pTHX_ char* nam, char* val); -I32 Perl_my_stat(pTHX_ ARGSproto); +I32 Perl_my_stat(pTHX); #if defined(MYSWAP) short Perl_my_swap(pTHX_ short s); +long Perl_my_htonl(pTHX_ long l); +long Perl_my_ntohl(pTHX_ long l); #endif void Perl_my_unexec(pTHX); -OP* Perl_newANONHASH(pTHX_ OP* o); OP* Perl_newANONLIST(pTHX_ OP* o); +OP* Perl_newANONHASH(pTHX_ OP* o); OP* Perl_newANONSUB(pTHX_ I32 floor, OP* proto, OP* block); OP* Perl_newASSIGNOP(pTHX_ I32 flags, OP* left, I32 optype, OP* right); -AV* Perl_newAV(pTHX); -OP* Perl_newAVREF(pTHX_ OP* o); -OP* Perl_newBINOP(pTHX_ I32 type, I32 flags, OP* first, OP* last); OP* Perl_newCONDOP(pTHX_ I32 flags, OP* expr, OP* trueop, OP* falseop); void Perl_newCONSTSUB(pTHX_ HV* stash, char* name, SV* sv); -OP* Perl_newCVREF(pTHX_ I32 flags, OP* o); void Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block); OP* Perl_newFOROP(pTHX_ I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont); -OP* Perl_newGVOP(pTHX_ I32 type, I32 flags, GV* gv); -OP* Perl_newGVREF(pTHX_ I32 type, OP* o); -GV* Perl_newGVgen(pTHX_ char* pack); -HV* Perl_newHV(pTHX); -OP* Perl_newHVREF(pTHX_ OP* o); -HV* Perl_newHVhv(pTHX_ HV* hv); -IO* Perl_newIO(pTHX); -OP* Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP* first, OP* last); OP* Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP* left, OP* right); OP* Perl_newLOOPEX(pTHX_ I32 type, OP* label); OP* Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP* expr, OP* block); OP* Perl_newNULLLIST(pTHX); OP* Perl_newOP(pTHX_ I32 optype, I32 flags); -OP* Perl_newPMOP(pTHX_ I32 type, I32 flags); void Perl_newPROG(pTHX_ OP* o); -OP* Perl_newPVOP(pTHX_ I32 type, I32 flags, char* pv); OP* Perl_newRANGE(pTHX_ I32 flags, OP* left, OP* right); -SV* Perl_newRV(pTHX_ SV* pref); -SV* Perl_newRV_noinc(pTHX_ SV *sv); OP* Perl_newSLICEOP(pTHX_ I32 flags, OP* subscript, OP* listop); OP* Perl_newSTATEOP(pTHX_ I32 flags, char* label, OP* o); CV* Perl_newSUB(pTHX_ I32 floor, OP* o, OP* proto, OP* block); +CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename); +AV* Perl_newAV(pTHX); +OP* Perl_newAVREF(pTHX_ OP* o); +OP* Perl_newBINOP(pTHX_ I32 type, I32 flags, OP* first, OP* last); +OP* Perl_newCVREF(pTHX_ I32 flags, OP* o); +OP* Perl_newGVOP(pTHX_ I32 type, I32 flags, GV* gv); +GV* Perl_newGVgen(pTHX_ char* pack); +OP* Perl_newGVREF(pTHX_ I32 type, OP* o); +OP* Perl_newHVREF(pTHX_ OP* o); +HV* Perl_newHV(pTHX); +HV* Perl_newHVhv(pTHX_ HV* hv); +IO* Perl_newIO(pTHX); +OP* Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP* first, OP* last); +OP* Perl_newPMOP(pTHX_ I32 type, I32 flags); +OP* Perl_newPVOP(pTHX_ I32 type, I32 flags, char* pv); +SV* Perl_newRV(pTHX_ SV* pref); +SV* Perl_newRV_noinc(pTHX_ SV *sv); SV* Perl_newSV(pTHX_ STRLEN len); -OP* Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv); OP* Perl_newSVREF(pTHX_ OP* o); +OP* Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv); SV* Perl_newSViv(pTHX_ IV i); SV* Perl_newSVnv(pTHX_ double n); SV* Perl_newSVpv(pTHX_ const char* s, STRLEN len); -SV* Perl_newSVpvf(pTHX_ const char* pat, ...); SV* Perl_newSVpvn(pTHX_ const char* s, STRLEN len); +SV* Perl_newSVpvf(pTHX_ const char* pat, ...); SV* Perl_newSVrv(pTHX_ SV* rv, const char* classname); SV* Perl_newSVsv(pTHX_ SV* old); OP* Perl_newUNOP(pTHX_ I32 type, I32 flags, OP* first); OP* Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont); -CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename); -void Perl_new_collate(pTHX_ const char* newcoll); -void Perl_new_ctype(pTHX_ const char* newctype); -void Perl_new_numeric(pTHX_ const char* newcoll); -PERL_SI* Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems); #if defined(USE_THREADS) struct perl_thread* Perl_new_struct_thread(pTHX_ struct perl_thread *t); #endif +PERL_SI* Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems); PerlIO* Perl_nextargv(pTHX_ GV* gv); char* Perl_ninstr(pTHX_ const char* big, const char* bigend, const char* little, const char* lend); -OP* Perl_oopsAV(pTHX_ OP* o); OP* Perl_oopsCV(pTHX_ OP* o); -OP* Perl_oopsHV(pTHX_ OP* o); -SV* Perl_op_const_sv(pTHX_ OP* o, CV* cv); -void Perl_op_dump(pTHX_ OP* arg); void Perl_op_free(pTHX_ OP* arg); void Perl_package(pTHX_ OP* o); PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype); PADOFFSET Perl_pad_allocmy(pTHX_ char* name); PADOFFSET Perl_pad_findmy(pTHX_ char* name); -void Perl_pad_free(pTHX_ PADOFFSET po); +OP* Perl_oopsAV(pTHX_ OP* o); +OP* Perl_oopsHV(pTHX_ OP* o); void Perl_pad_leavemy(pTHX_ I32 fill); -void Perl_pad_reset(pTHX); SV* Perl_pad_sv(pTHX_ PADOFFSET po); +void Perl_pad_free(pTHX_ PADOFFSET po); +void Perl_pad_reset(pTHX); void Perl_pad_swipe(pTHX_ PADOFFSET po); void Perl_peep(pTHX_ OP* o); -#if !defined(PERL_OBJECT) PerlInterpreter* perl_alloc(void); -#endif +void Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr); +I32 Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv); +I32 Perl_call_method(pTHX_ const char* methname, I32 flags); +I32 Perl_call_pv(pTHX_ const char* sub_name, I32 flags); +I32 Perl_call_sv(pTHX_ SV* sv, I32 flags); void perl_construct(PerlInterpreter* sv_interp); void perl_destruct(PerlInterpreter* sv_interp); +SV* Perl_eval_pv(pTHX_ const char* p, I32 croak_on_error); +I32 Perl_eval_sv(pTHX_ SV* sv, I32 flags); void perl_free(PerlInterpreter* sv_interp); +SV* Perl_get_sv(pTHX_ const char* name, I32 create); +AV* Perl_get_av(pTHX_ const char* name, I32 create); +HV* Perl_get_hv(pTHX_ const char* name, I32 create); +CV* Perl_get_cv(pTHX_ const char* name, I32 create); +int Perl_init_i18nl10n(pTHX_ int printwarn); +int Perl_init_i18nl14n(pTHX_ int printwarn); +void Perl_new_collate(pTHX_ const char* newcoll); +void Perl_new_ctype(pTHX_ const char* newctype); +void Perl_new_numeric(pTHX_ const char* newcoll); +void Perl_set_numeric_local(pTHX); +void Perl_set_numeric_standard(pTHX); int perl_parse(PerlInterpreter* sv_interp, XSINIT_t xsinit, int argc, char** argv, char** env); +void Perl_require_pv(pTHX_ const char* pv); int perl_run(PerlInterpreter* sv_interp); void Perl_pidgone(pTHX_ int pid, int status); void Perl_pmflag(pTHX_ U16* pmfl, int ch); -void Perl_pmop_dump(pTHX_ PMOP* pm); OP* Perl_pmruntime(pTHX_ OP* pm, OP* expr, OP* repl); OP* Perl_pmtrans(pTHX_ OP* o, OP* expr, OP* repl); OP* Perl_pop_return(pTHX); void Perl_pop_scope(pTHX); -regexp* Perl_pregcomp(pTHX_ char* exp, char* xend, PMOP* pm); -I32 Perl_pregexec(pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave); -void Perl_pregfree(pTHX_ struct regexp* r); OP* Perl_prepend_elem(pTHX_ I32 optype, OP* head, OP* tail); void Perl_push_return(pTHX_ OP* o); void Perl_push_scope(pTHX); -char* Perl_pv_display(pTHX_ SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim); -#if defined(MYMALLOC) -Malloc_t Perl_realloc(pTHX_ Malloc_t where, MEM_SIZE nbytes); -#endif OP* Perl_ref(pTHX_ OP* o, I32 type); OP* Perl_refkids(pTHX_ OP* o, I32 type); void Perl_regdump(pTHX_ regexp* r); +I32 Perl_pregexec(pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave); +void Perl_pregfree(pTHX_ struct regexp* r); +regexp* Perl_pregcomp(pTHX_ char* exp, char* xend, PMOP* pm); I32 Perl_regexec_flags(pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags); -void Perl_reginitcolors(pTHX); regnode* Perl_regnext(pTHX_ regnode* p); void Perl_regprop(pTHX_ SV* sv, regnode* o); void Perl_repeatcpy(pTHX_ char* to, const char* from, I32 len, I32 count); -void Perl_require_pv(pTHX_ const char* pv); char* Perl_rninstr(pTHX_ const char* big, const char* bigend, const char* little, const char* lend); Sighandler_t Perl_rsignal(pTHX_ int i, Sighandler_t t); int Perl_rsignal_restore(pTHX_ int i, Sigsave_t* t); int Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* t2); Sighandler_t Perl_rsignal_state(pTHX_ int i); -int Perl_runops_debug(pTHX); -int Perl_runops_standard(pTHX); void Perl_rxres_free(pTHX_ void** rsp); void Perl_rxres_restore(pTHX_ void** rsp, REGEXP* prx); void Perl_rxres_save(pTHX_ void** rsp, REGEXP* prx); -Malloc_t Perl_safesyscalloc(pTHX_ MEM_SIZE elements, MEM_SIZE size); -Free_t Perl_safesysfree(pTHX_ Malloc_t where); -Malloc_t Perl_safesysmalloc(pTHX_ MEM_SIZE nbytes); -Malloc_t Perl_safesysrealloc(pTHX_ Malloc_t where, MEM_SIZE nbytes); -#if defined(LEAKTEST) -Malloc_t Perl_safexcalloc(pTHX_ I32 x, MEM_SIZE elements, MEM_SIZE size); +#if !defined(HAS_RENAME) +I32 Perl_same_dirent(pTHX_ char* a, char* b); #endif -#if defined(LEAKTEST) -void Perl_safexfree(pTHX_ Malloc_t where); -#endif -#if defined(LEAKTEST) -Malloc_t Perl_safexmalloc(pTHX_ I32 x, MEM_SIZE size); -#endif -#if defined(LEAKTEST) -Malloc_t Perl_safexrealloc(pTHX_ Malloc_t where, MEM_SIZE size); -#endif -#if !defined(HAS_RENAME) -I32 Perl_same_dirent(pTHX_ char* a, char* b); -#endif -void Perl_save_I16(pTHX_ I16* intp); -void Perl_save_I32(pTHX_ I32* intp); +char* Perl_savepv(pTHX_ const char* sv); +char* Perl_savepvn(pTHX_ const char* sv, I32 len); +void Perl_savestack_grow(pTHX); void Perl_save_aelem(pTHX_ AV* av, I32 idx, SV **sptr); I32 Perl_save_alloc(pTHX_ I32 size, I32 pad); void Perl_save_aptr(pTHX_ AV** aptr); @@ -510,15 +464,17 @@ AV* Perl_save_ary(pTHX_ GV* gv); void Perl_save_clearsv(pTHX_ SV** svp); void Perl_save_delete(pTHX_ HV* hv, char* key, I32 klen); void Perl_save_destructor(pTHX_ DESTRUCTORFUNC_t f, void* p); +void Perl_save_freesv(pTHX_ SV* sv); void Perl_save_freeop(pTHX_ OP* o); void Perl_save_freepv(pTHX_ char* pv); -void Perl_save_freesv(pTHX_ SV* sv); void Perl_save_generic_svref(pTHX_ SV** sptr); void Perl_save_gp(pTHX_ GV* gv, I32 empty); HV* Perl_save_hash(pTHX_ GV* gv); void Perl_save_helem(pTHX_ HV* hv, SV *key, SV **sptr); void Perl_save_hints(pTHX); void Perl_save_hptr(pTHX_ HV** hptr); +void Perl_save_I16(pTHX_ I16* intp); +void Perl_save_I32(pTHX_ I32* intp); void Perl_save_int(pTHX_ int* intp); void Perl_save_item(pTHX_ SV* item); void Perl_save_iv(pTHX_ IV* iv); @@ -526,15 +482,12 @@ void Perl_save_list(pTHX_ SV** sarg, I32 maxsarg); void Perl_save_long(pTHX_ long* longp); void Perl_save_nogv(pTHX_ GV* gv); void Perl_save_op(pTHX); +SV* Perl_save_scalar(pTHX_ GV* gv); void Perl_save_pptr(pTHX_ char** pptr); void Perl_save_re_context(pTHX); -SV* Perl_save_scalar(pTHX_ GV* gv); void Perl_save_sptr(pTHX_ SV** sptr); SV* Perl_save_svref(pTHX_ SV** sptr); SV** Perl_save_threadsv(pTHX_ PADOFFSET i); -char* Perl_savepv(pTHX_ const char* sv); -char* Perl_savepvn(pTHX_ const char* sv, I32 len); -void Perl_savestack_grow(pTHX); OP* Perl_sawparens(pTHX_ OP* o); OP* Perl_scalar(pTHX_ OP* o); OP* Perl_scalarkids(pTHX_ OP* o); @@ -546,15 +499,13 @@ char* Perl_scan_num(pTHX_ char* s); UV Perl_scan_oct(pTHX_ char* start, I32 len, I32* retlen); OP* Perl_scope(pTHX_ OP* o); char* Perl_screaminstr(pTHX_ SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last); -void Perl_set_numeric_local(pTHX); -void Perl_set_numeric_standard(pTHX); -void Perl_setdefout(pTHX_ GV* gv); #if !defined(VMS) I32 Perl_setenv_getix(pTHX_ char* nam); #endif -HEK* Perl_share_hek(pTHX_ const char* sv, I32 len, U32 hash); +void Perl_setdefout(pTHX_ GV* gv); char* Perl_sharepvn(pTHX_ const char* sv, I32 len, U32 hash); -Signal_t Perl_sighandler(pTHX_ int sig); +HEK* Perl_share_hek(pTHX_ const char* sv, I32 len, U32 hash); +Signal_t Perl_sighandler(int sig); SV** Perl_stack_grow(pTHX_ SV** sp, SV**p, int n); I32 Perl_start_subparse(pTHX_ I32 is_format, U32 flags); void Perl_sub_crush_depth(pTHX_ CV* cv); @@ -565,19 +516,19 @@ IV Perl_sv_2iv(pTHX_ SV* sv); SV* Perl_sv_2mortal(pTHX_ SV* sv); double Perl_sv_2nv(pTHX_ SV* sv); char* Perl_sv_2pv(pTHX_ SV* sv, STRLEN* lp); -char* Perl_sv_2pv_nolen(pTHX_ SV* sv); UV Perl_sv_2uv(pTHX_ SV* sv); +IV Perl_sv_iv(pTHX_ SV* sv); +UV Perl_sv_uv(pTHX_ SV* sv); +double Perl_sv_nv(pTHX_ SV* sv); +char* Perl_sv_pvn(pTHX_ SV *sv, STRLEN *len); +I32 Perl_sv_true(pTHX_ SV *sv); void Perl_sv_add_arena(pTHX_ char* ptr, U32 size, U32 flags); int Perl_sv_backoff(pTHX_ SV* sv); SV* Perl_sv_bless(pTHX_ SV* sv, HV* stash); -void Perl_sv_catpv(pTHX_ SV* sv, const char* ptr); -void Perl_sv_catpv_mg(pTHX_ SV *sv, const char *ptr); void Perl_sv_catpvf(pTHX_ SV* sv, const char* pat, ...); -void Perl_sv_catpvf_mg(pTHX_ SV *sv, const char* pat, ...); +void Perl_sv_catpv(pTHX_ SV* sv, const char* ptr); void Perl_sv_catpvn(pTHX_ SV* sv, const char* ptr, STRLEN len); -void Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len); void Perl_sv_catsv(pTHX_ SV* dsv, SV* ssv); -void Perl_sv_catsv_mg(pTHX_ SV *dstr, SV *sstr); void Perl_sv_chop(pTHX_ SV* sv, char* ptr); void Perl_sv_clean_all(pTHX); void Perl_sv_clean_objs(pTHX); @@ -589,10 +540,9 @@ char* Perl_sv_collxfrm(pTHX_ SV* sv, STRLEN* nxp); #endif OP* Perl_sv_compile_2op(pTHX_ SV* sv, OP** startp, char* code, AV** avp); void Perl_sv_dec(pTHX_ SV* sv); -bool Perl_sv_derived_from(pTHX_ SV* sv, const char* name); void Perl_sv_dump(pTHX_ SV* sv); +bool Perl_sv_derived_from(pTHX_ SV* sv, const char* name); I32 Perl_sv_eq(pTHX_ SV* sv1, SV* sv2); -void Perl_sv_force_normal(pTHX_ SV *sv); void Perl_sv_free(pTHX_ SV* sv); void Perl_sv_free_arenas(pTHX); char* Perl_sv_gets(pTHX_ SV* sv, PerlIO* fp, I32 append); @@ -601,85 +551,62 @@ void Perl_sv_inc(pTHX_ SV* sv); void Perl_sv_insert(pTHX_ SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen); int Perl_sv_isa(pTHX_ SV* sv, const char* name); int Perl_sv_isobject(pTHX_ SV* sv); -IV Perl_sv_iv(pTHX_ SV* sv); STRLEN Perl_sv_len(pTHX_ SV* sv); STRLEN Perl_sv_len_utf8(pTHX_ SV* sv); void Perl_sv_magic(pTHX_ SV* sv, SV* obj, int how, const char* name, I32 namlen); SV* Perl_sv_mortalcopy(pTHX_ SV* oldsv); SV* Perl_sv_newmortal(pTHX); SV* Perl_sv_newref(pTHX_ SV* sv); -double Perl_sv_nv(pTHX_ SV* sv); char* Perl_sv_peek(pTHX_ SV* sv); -void Perl_sv_pos_b2u(pTHX_ SV* sv, I32* offsetp); void Perl_sv_pos_u2b(pTHX_ SV* sv, I32* offsetp, I32* lenp); -char* Perl_sv_pv(pTHX_ SV *sv); -char* Perl_sv_pvn(pTHX_ SV *sv, STRLEN *len); +void Perl_sv_pos_b2u(pTHX_ SV* sv, I32* offsetp); char* Perl_sv_pvn_force(pTHX_ SV* sv, STRLEN* lp); char* Perl_sv_reftype(pTHX_ SV* sv, int ob); void Perl_sv_replace(pTHX_ SV* sv, SV* nsv); void Perl_sv_report_used(pTHX); void Perl_sv_reset(pTHX_ char* s, HV* stash); -SV* Perl_sv_rvweaken(pTHX_ SV *sv); -void Perl_sv_setiv(pTHX_ SV* sv, IV num); -void Perl_sv_setiv_mg(pTHX_ SV *sv, IV i); -void Perl_sv_setnv(pTHX_ SV* sv, double num); -void Perl_sv_setnv_mg(pTHX_ SV *sv, double num); -void Perl_sv_setpv(pTHX_ SV* sv, const char* ptr); -void Perl_sv_setpv_mg(pTHX_ SV *sv, const char *ptr); void Perl_sv_setpvf(pTHX_ SV* sv, const char* pat, ...); -void Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...); +void Perl_sv_setiv(pTHX_ SV* sv, IV num); void Perl_sv_setpviv(pTHX_ SV* sv, IV num); -void Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv); -void Perl_sv_setpvn(pTHX_ SV* sv, const char* ptr, STRLEN len); -void Perl_sv_setpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len); +void Perl_sv_setuv(pTHX_ SV* sv, UV num); +void Perl_sv_setnv(pTHX_ SV* sv, double num); SV* Perl_sv_setref_iv(pTHX_ SV* rv, const char* classname, IV iv); SV* Perl_sv_setref_nv(pTHX_ SV* rv, const char* classname, double nv); SV* Perl_sv_setref_pv(pTHX_ SV* rv, const char* classname, void* pv); SV* Perl_sv_setref_pvn(pTHX_ SV* rv, const char* classname, char* pv, STRLEN n); +void Perl_sv_setpv(pTHX_ SV* sv, const char* ptr); +void Perl_sv_setpvn(pTHX_ SV* sv, const char* ptr, STRLEN len); void Perl_sv_setsv(pTHX_ SV* dsv, SV* ssv); -void Perl_sv_setsv_mg(pTHX_ SV *dstr, SV *sstr); -void Perl_sv_setuv(pTHX_ SV* sv, UV num); -void Perl_sv_setuv_mg(pTHX_ SV *sv, UV u); void Perl_sv_taint(pTHX_ SV* sv); bool Perl_sv_tainted(pTHX_ SV* sv); -I32 Perl_sv_true(pTHX_ SV *sv); int Perl_sv_unmagic(pTHX_ SV* sv, int type); void Perl_sv_unref(pTHX_ SV* sv); void Perl_sv_untaint(pTHX_ SV* sv); bool Perl_sv_upgrade(pTHX_ SV* sv, U32 mt); void Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len); -void Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len); -UV Perl_sv_uv(pTHX_ SV* sv); void Perl_sv_vcatpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale); void Perl_sv_vsetpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *used_locale); -UV Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr); SV* Perl_swash_init(pTHX_ char* pkg, char* name, SV* listsv, I32 minbits, I32 none); +UV Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr); void Perl_taint_env(pTHX); void Perl_taint_proper(pTHX_ const char* f, char* s); -void Perl_tmps_grow(pTHX_ I32 n); -U32 Perl_to_uni_lower(pTHX_ U32 c); -U32 Perl_to_uni_lower_lc(pTHX_ U32 c); -U32 Perl_to_uni_title(pTHX_ U32 c); -U32 Perl_to_uni_title_lc(pTHX_ U32 c); -U32 Perl_to_uni_upper(pTHX_ U32 c); -U32 Perl_to_uni_upper_lc(pTHX_ U32 c); UV Perl_to_utf8_lower(pTHX_ U8 *p); -UV Perl_to_utf8_title(pTHX_ U8 *p); UV Perl_to_utf8_upper(pTHX_ U8 *p); +UV Perl_to_utf8_title(pTHX_ U8 *p); #if defined(UNLINK_ALL_VERSIONS) I32 Perl_unlnk(pTHX_ char* f); #endif #if defined(USE_THREADS) void Perl_unlock_condpair(pTHX_ void* svv); #endif -void Perl_unshare_hek(pTHX_ HEK* hek); void Perl_unsharepvn(pTHX_ const char* sv, I32 len, U32 hash); +void Perl_unshare_hek(pTHX_ HEK* hek); +void Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* id, OP* arg); U8* Perl_utf16_to_utf8(pTHX_ U16* p, U8 *d, I32 bytelen); U8* Perl_utf16_to_utf8_reversed(pTHX_ U16* p, U8 *d, I32 bytelen); I32 Perl_utf8_distance(pTHX_ U8 *a, U8 *b); U8* Perl_utf8_hop(pTHX_ U8 *s, I32 off); UV Perl_utf8_to_uv(pTHX_ U8 *s, I32* retlen); -void Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* id, OP* arg); U8* Perl_uv_to_utf8(pTHX_ U8 *d, UV uv); void Perl_vivify_defelem(pTHX_ SV* sv); void Perl_vivify_ref(pTHX_ SV* sv, U32 to_what); @@ -688,667 +615,342 @@ void Perl_warn(pTHX_ const char* pat, ...); void Perl_warner(pTHX_ U32 err, const char* pat, ...); void Perl_watch(pTHX_ char** addr); I32 Perl_whichsig(pTHX_ char* sig); -void Perl_yydestruct(pTHX_ void *ptr); int Perl_yyerror(pTHX_ char* s); -#if !defined(USE_PURE_BISON) +#if defined(USE_PURE_BISON) +int Perl_yylex(pTHX_ YYSTYPE *lvalp, int *lcharp); +#else int Perl_yylex(pTHX); #endif int Perl_yyparse(pTHX); int Perl_yywarn(pTHX_ char* s); -#if defined(PL_OP_SLAB_ALLOC) && defined(PERL_IN_OP_C) -STATIC void* Slab_Alloc(pTHX_ int m, size_t sz); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC I32 add_data(pTHX_ I32 n, char *s); -#endif -#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C) -STATIC void add_to_chain(pTHX_ void *p, MEM_SIZE size, MEM_SIZE chip); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 amagic_cmp(pTHX_ SV *str1, SV *str2); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 amagic_cmp_locale(pTHX_ SV *str1, SV *str2); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 amagic_i_ncmp(pTHX_ SV *a, SV *b); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 amagic_ncmp(pTHX_ SV *a, SV *b); +#if defined(MYMALLOC) +void Perl_dump_mstats(pTHX_ char* s); +Malloc_t Perl_malloc(MEM_SIZE nbytes); +Malloc_t Perl_calloc(MEM_SIZE elements, MEM_SIZE size); +Malloc_t Perl_realloc(Malloc_t where, MEM_SIZE nbytes); +Free_t Perl_mfree(Malloc_t where); #endif -#if defined(PERL_IN_TOKE_C) -STATIC int ao(pTHX_ int toketype); +Malloc_t Perl_safesysmalloc(pTHX_ MEM_SIZE nbytes); +Malloc_t Perl_safesyscalloc(pTHX_ MEM_SIZE elements, MEM_SIZE size); +Malloc_t Perl_safesysrealloc(pTHX_ Malloc_t where, MEM_SIZE nbytes); +Free_t Perl_safesysfree(pTHX_ Malloc_t where); +#if defined(LEAKTEST) +Malloc_t Perl_safexmalloc(pTHX_ I32 x, MEM_SIZE size); +Malloc_t Perl_safexcalloc(pTHX_ I32 x, MEM_SIZE elements, MEM_SIZE size); +Malloc_t Perl_safexrealloc(pTHX_ Malloc_t where, MEM_SIZE size); +void Perl_safexfree(pTHX_ Malloc_t where); #endif -#if defined(PERL_IN_SV_C) -STATIC IV asIV(pTHX_ SV* sv); +#if defined(PERL_GLOBAL_STRUCT) +struct perl_vars * Perl_GetVars(pTHX); #endif -#if defined(PERL_IN_SV_C) -STATIC UV asUV(pTHX_ SV* sv); +void Perl_yydestruct(pTHX_ void *ptr); +int Perl_runops_standard(pTHX); +int Perl_runops_debug(pTHX); +#if defined(WIN32) +int& Perl_ErrorNo(pTHX); #endif +void Perl_sv_catpvf_mg(pTHX_ SV *sv, const char* pat, ...); +void Perl_sv_catpv_mg(pTHX_ SV *sv, const char *ptr); +void Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len); +void Perl_sv_catsv_mg(pTHX_ SV *dstr, SV *sstr); +void Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...); +void Perl_sv_setiv_mg(pTHX_ SV *sv, IV i); +void Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv); +void Perl_sv_setuv_mg(pTHX_ SV *sv, UV u); +void Perl_sv_setnv_mg(pTHX_ SV *sv, double num); +void Perl_sv_setpv_mg(pTHX_ SV *sv, const char *ptr); +void Perl_sv_setpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len); +void Perl_sv_setsv_mg(pTHX_ SV *dstr, SV *sstr); +void Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len); +MGVTBL* Perl_get_vtbl(pTHX_ int vtbl_id); +char* Perl_pv_display(pTHX_ SV *sv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim); +void Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...); +void Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv); +void Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv); +void Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv); +void Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim); +void Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o); +void Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm); +void Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim); +void Perl_magic_dump(pTHX_ MAGIC *mg); +void* Perl_default_protect(pTHX_ int *excpt, protect_body_t body, ...); +void Perl_reginitcolors(pTHX); +char* Perl_sv_2pv_nolen(pTHX_ SV* sv); +char* Perl_sv_pv(pTHX_ SV *sv); +void Perl_sv_force_normal(pTHX_ SV *sv); +void Perl_tmps_grow(pTHX_ I32 n); +SV* Perl_sv_rvweaken(pTHX_ SV *sv); +int Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg); #if defined(PERL_IN_AV_C) -STATIC I32 avhv_index_sv(pTHX_ SV* sv); -#endif -#if defined(PERL_IN_OP_C) -STATIC void bad_type(pTHX_ I32 n, char *t, char *name, OP *kid); -#endif -#if defined(MYMALLOC) && defined(DEBUGGING) && defined(PERL_IN_MALLOC_C) -STATIC void botch(pTHX_ char *diag, char *s); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC void cache_re(pTHX_ regexp *prog); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void* call_body(pTHX_ va_list args); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void* call_list_body(pTHX_ va_list args); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void call_xbody(pTHX_ OP *myop, int is_eval); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void check_uni(pTHX); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void checkcomma(pTHX_ char *s, char *name, char *what); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC void clear_re(pTHX_ void *r); -#endif -#if defined(PERL_IN_OP_C) -STATIC CV* cv_clone2(pTHX_ CV *proto, CV *outside); -#endif -#if defined(PERL_IN_RUN_C) -STATIC void debprof(pTHX_ OP *o); -#endif -#if defined(PERL_IN_HV_C) -STATIC void del_he(pTHX_ HE *p); -#endif -#if defined(DEBUGGING) && defined(PERL_IN_SV_C) -STATIC void del_sv(pTHX_ SV *p); -#endif -#if defined(PERL_IN_SV_C) -STATIC void del_xiv(pTHX_ XPVIV* p); -#endif -#if defined(PERL_IN_SV_C) -STATIC void del_xnv(pTHX_ XPVNV* p); -#endif -#if defined(PERL_IN_SV_C) -STATIC void del_xpv(pTHX_ XPV* p); -#endif -#if defined(PERL_IN_SV_C) -STATIC void del_xrv(pTHX_ XRV* p); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void depcom(pTHX); -#endif -#if defined(PERL_IN_PP_C) -STATIC int div128(pTHX_ SV *pnum, bool *done); -#endif -#if defined(WIN32) && defined(PERL_IN_GLOBALS_C) -STATIC int do_aspawn(pTHX_ void *vreally, void **vmark, void **vsp); -#endif -#if defined(PERL_IN_SV_C) -STATIC void do_clean_all(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_SV_C) -STATIC void do_clean_named_objs(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_SV_C) -STATIC void do_clean_objs(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_SV_C) -STATIC void do_report_used(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_CC_complex(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_CC_count(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_CC_simple(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_CU_simple(pTHX_ SV *sv); +STATIC I32 S_avhv_index_sv(pTHX_ SV* sv); #endif #if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_CU_trivial(pTHX_ SV *sv); +STATIC I32 S_do_trans_CC_simple(pTHX_ SV *sv); +STATIC I32 S_do_trans_CC_count(pTHX_ SV *sv); +STATIC I32 S_do_trans_CC_complex(pTHX_ SV *sv); +STATIC I32 S_do_trans_UU_simple(pTHX_ SV *sv); +STATIC I32 S_do_trans_UU_count(pTHX_ SV *sv); +STATIC I32 S_do_trans_UU_complex(pTHX_ SV *sv); +STATIC I32 S_do_trans_UC_simple(pTHX_ SV *sv); +STATIC I32 S_do_trans_CU_simple(pTHX_ SV *sv); +STATIC I32 S_do_trans_UC_trivial(pTHX_ SV *sv); +STATIC I32 S_do_trans_CU_trivial(pTHX_ SV *sv); +#endif +#if defined(PERL_IN_GLOBALS_C) +# if defined(WIN32) +STATIC int S_do_aspawn(pTHX_ void *vreally, void **vmark, void **vsp); +# endif #endif -#if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_UC_simple(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_UC_trivial(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_UU_complex(pTHX_ SV *sv); +#if defined(PERL_IN_GV_C) +STATIC void S_gv_init_sv(pTHX_ GV *gv, I32 sv_type); #endif -#if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_UU_count(pTHX_ SV *sv); +#if defined(PERL_IN_HV_C) +STATIC void S_hsplit(pTHX_ HV *hv); +STATIC void S_hfreeentries(pTHX_ HV *hv); +STATIC void S_more_he(pTHX); +STATIC HE* S_new_he(pTHX); +STATIC void S_del_he(pTHX_ HE *p); +STATIC HEK* S_save_hek(pTHX_ const char *str, I32 len, U32 hash); +STATIC void S_hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store); #endif -#if defined(PERL_IN_DOOP_C) -STATIC I32 do_trans_UU_simple(pTHX_ SV *sv); +#if defined(PERL_IN_MG_C) +STATIC void S_save_magic(pTHX_ I32 mgs_ix, SV *sv); +STATIC int S_magic_methpack(pTHX_ SV *sv, MAGIC *mg, char *meth); +STATIC int S_magic_methcall(pTHX_ SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val); +STATIC void S_unwind_handler_stack(pTHX_ void *p); +STATIC void S_restore_magic(pTHX_ void *p); #endif -#if defined(PERL_IN_PP_CTL_C) -STATIC OP* docatch(pTHX_ OP *o); +#if defined(PERL_IN_OP_C) +STATIC I32 S_list_assignment(pTHX_ OP *o); +STATIC void S_bad_type(pTHX_ I32 n, char *t, char *name, OP *kid); +STATIC OP* S_modkids(pTHX_ OP *o, I32 type); +STATIC void S_no_bareword_allowed(pTHX_ OP *o); +STATIC OP* S_no_fh_allowed(pTHX_ OP *o); +STATIC OP* S_scalarboolean(pTHX_ OP *o); +STATIC OP* S_too_few_arguments(pTHX_ OP *o, char* name); +STATIC OP* S_too_many_arguments(pTHX_ OP *o, char* name); +STATIC void S_null(pTHX_ OP* o); +STATIC PADOFFSET S_pad_findlex(pTHX_ char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval, U32 flags); +STATIC OP* S_newDEFSVOP(pTHX); +STATIC OP* S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp); +STATIC void S_simplify_sort(pTHX_ OP *o); +STATIC bool S_is_handle_constructor(pTHX_ OP *o, I32 argnum); +STATIC char* S_gv_ename(pTHX_ GV *gv); +STATIC CV* S_cv_clone2(pTHX_ CV *proto, CV *outside); +STATIC bool S_scalar_mod_type(pTHX_ OP *o, I32 type); +# if defined(PL_OP_SLAB_ALLOC) +STATIC void* S_Slab_Alloc(pTHX_ int m, size_t sz); +# endif #endif -#if defined(PERL_IN_PP_CTL_C) -STATIC void* docatch_body(pTHX_ va_list args); +#if defined(PERL_IN_PERL_C) +STATIC void S_find_beginning(pTHX); +STATIC void S_forbid_setid(pTHX_ char *); +STATIC void S_incpush(pTHX_ char *, int); +STATIC void S_init_interp(pTHX); +STATIC void S_init_ids(pTHX); +STATIC void S_init_debugger(pTHX); +STATIC void S_init_lexer(pTHX); +STATIC void S_init_main_stash(pTHX); +STATIC void S_init_perllib(pTHX); +STATIC void S_init_postdump_symbols(pTHX_ int, char **, char **); +STATIC void S_init_predump_symbols(pTHX); +STATIC void S_my_exit_jump(pTHX) __attribute__((noreturn)); +STATIC void S_nuke_stacks(pTHX); +STATIC void S_open_script(pTHX_ char *, bool, SV *, int *fd); +STATIC void S_usage(pTHX_ char *); +STATIC void S_validate_suid(pTHX_ char *, char*, int); +STATIC I32 S_read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen); +# if defined(IAMSUID) +STATIC int S_fd_on_nosuid_fs(pTHX_ int fd); +# endif +STATIC void* S_parse_body(pTHX_ va_list args); +STATIC void* S_run_body(pTHX_ va_list args); +STATIC void* S_call_body(pTHX_ va_list args); +STATIC void S_call_xbody(pTHX_ OP *myop, int is_eval); +STATIC void* S_call_list_body(pTHX_ va_list args); +# if defined(USE_THREADS) +STATIC struct perl_thread * S_init_main_thread(pTHX); +# endif #endif #if defined(PERL_IN_PP_C) -STATIC void doencodes(pTHX_ SV* sv, char* s, I32 len); +STATIC void S_doencodes(pTHX_ SV* sv, char* s, I32 len); +STATIC SV* S_refto(pTHX_ SV* sv); +STATIC U32 S_seed(pTHX); +STATIC SV* S_mul128(pTHX_ SV *sv, U8 m); +STATIC SV* S_is_an_int(pTHX_ char *s, STRLEN l); +STATIC int S_div128(pTHX_ SV *pnum, bool *done); #endif #if defined(PERL_IN_PP_CTL_C) -STATIC OP* doeval(pTHX_ int gimme, OP** startop); +STATIC OP* S_docatch(pTHX_ OP *o); +STATIC void* S_docatch_body(pTHX_ va_list args); +STATIC OP* S_dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit); +STATIC void S_doparseform(pTHX_ SV *sv); +STATIC I32 S_dopoptoeval(pTHX_ I32 startingblock); +STATIC I32 S_dopoptolabel(pTHX_ char *label); +STATIC I32 S_dopoptoloop(pTHX_ I32 startingblock); +STATIC I32 S_dopoptosub(pTHX_ I32 startingblock); +STATIC I32 S_dopoptosub_at(pTHX_ PERL_CONTEXT* cxstk, I32 startingblock); +STATIC void S_free_closures(pTHX); +STATIC void S_save_lines(pTHX_ AV *array, SV *sv); +STATIC OP* S_doeval(pTHX_ int gimme, OP** startop); +STATIC PerlIO * S_doopen_pmc(pTHX_ const char *name, const char *mode); +STATIC void S_qsortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t f); +STATIC I32 S_sortcv(pTHX_ SV *a, SV *b); +STATIC I32 S_sv_ncmp(pTHX_ SV *a, SV *b); +STATIC I32 S_sv_i_ncmp(pTHX_ SV *a, SV *b); +STATIC I32 S_amagic_ncmp(pTHX_ SV *a, SV *b); +STATIC I32 S_amagic_i_ncmp(pTHX_ SV *a, SV *b); +STATIC I32 S_amagic_cmp(pTHX_ SV *str1, SV *str2); +STATIC I32 S_amagic_cmp_locale(pTHX_ SV *str1, SV *str2); #endif -#if defined(PERL_IN_PP_CTL_C) -STATIC OP* dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit); +#if defined(PERL_IN_PP_HOT_C) +STATIC CV* S_get_db_sub(pTHX_ SV **svp, CV *cv); +# if defined(USE_THREADS) +STATIC void S_unset_cvowner(pTHX_ void *cvarg); +# endif #endif #if defined(PERL_IN_PP_SYS_C) -STATIC OP* doform(pTHX_ CV *cv, GV *gv, OP *retop); -#endif -#if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) && defined(PERL_IN_PP_SYS_C) -STATIC int dooneliner(pTHX_ char *cmd, char *filename); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC PerlIO * doopen_pmc(pTHX_ const char *name, const char *mode); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC void doparseform(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 dopoptoeval(pTHX_ I32 startingblock); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 dopoptolabel(pTHX_ char *label); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 dopoptoloop(pTHX_ I32 startingblock); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 dopoptosub(pTHX_ I32 startingblock); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 dopoptosub_at(pTHX_ PERL_CONTEXT* cxstk, I32 startingblock); +STATIC OP* S_doform(pTHX_ CV *cv, GV *gv, OP *retop); +STATIC int S_emulate_eaccess(pTHX_ const char* path, int mode); +# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) +STATIC int S_dooneliner(pTHX_ char *cmd, char *filename); +# endif #endif #if defined(PERL_IN_REGCOMP_C) -STATIC regnode* dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l); -#endif -#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C) -STATIC Malloc_t emergency_sbrk(pTHX_ MEM_SIZE size); +STATIC regnode* S_reg(pTHX_ I32, I32 *); +STATIC regnode* S_reganode(pTHX_ U8, U32); +STATIC regnode* S_regatom(pTHX_ I32 *); +STATIC regnode* S_regbranch(pTHX_ I32 *, I32); +STATIC void S_regc(pTHX_ U8, char *); +STATIC void S_reguni(pTHX_ UV, char *, I32*); +STATIC regnode* S_regclass(pTHX); +STATIC regnode* S_regclassutf8(pTHX); +STATIC I32 S_regcurly(pTHX_ char *); +STATIC regnode* S_reg_node(pTHX_ U8); +STATIC regnode* S_regpiece(pTHX_ I32 *); +STATIC void S_reginsert(pTHX_ U8, regnode *); +STATIC void S_regoptail(pTHX_ regnode *, regnode *); +STATIC void S_regtail(pTHX_ regnode *, regnode *); +STATIC char* S_regwhite(pTHX_ char *, char *); +STATIC char* S_nextchar(pTHX); +STATIC regnode* S_dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l); +STATIC void S_scan_commit(pTHX_ scan_data_t *data); +STATIC I32 S_study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags); +STATIC I32 S_add_data(pTHX_ I32 n, char *s); +STATIC void S_re_croak2(pTHX_ const char* pat1, const char* pat2, ...) __attribute__((noreturn)); +STATIC char* S_regpposixcc(pTHX_ I32 value); +STATIC void S_clear_re(pTHX_ void *r); #endif -#if defined(PERL_IN_PP_SYS_C) -STATIC int emulate_eaccess(pTHX_ const char* path, int mode); -#endif -#if defined(FCNTL_EMULATE_FLOCK) && defined(PERL_IN_PP_SYS_C) -STATIC int fcntl_emulate_flock(pTHX_ int fd, int operation); -#endif -#if defined(IAMSUID) && defined(PERL_IN_PERL_C) -STATIC int fd_on_nosuid_fs(pTHX_ int fd); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char * filter_gets(pTHX_ SV *sv, PerlIO *fp, STRLEN append); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void find_beginning(pTHX); +#if defined(PERL_IN_REGEXEC_C) +STATIC I32 S_regmatch(pTHX_ regnode *prog); +STATIC I32 S_regrepeat(pTHX_ regnode *p, I32 max); +STATIC I32 S_regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp); +STATIC I32 S_regtry(pTHX_ regexp *prog, char *startpos); +STATIC bool S_reginclass(pTHX_ char *p, I32 c); +STATIC bool S_reginclassutf8(pTHX_ regnode *f, U8* p); +STATIC CHECKPOINT S_regcppush(pTHX_ I32 parenfloor); +STATIC char* S_regcppop(pTHX); +STATIC char* S_regcp_set_to(pTHX_ I32 ss); +STATIC void S_cache_re(pTHX_ regexp *prog); +STATIC void S_restore_pos(pTHX_ void *arg); +STATIC U8* S_reghop(pTHX_ U8 *pos, I32 off); +STATIC U8* S_reghopmaybe(pTHX_ U8 *pos, I32 off); #endif -#if defined(PERL_IN_PERL_C) -STATIC void forbid_setid(pTHX_ char *); +#if defined(PERL_IN_RUN_C) +STATIC void S_debprof(pTHX_ OP *o); #endif -#if defined(PERL_IN_TOKE_C) -STATIC void force_ident(pTHX_ char *s, int kind); +#if defined(PERL_IN_SCOPE_C) +STATIC SV* S_save_scalar_at(pTHX_ SV **sptr); #endif -#if defined(PERL_IN_TOKE_C) -STATIC void force_next(pTHX_ I32 type); +#if defined(PERL_IN_SV_C) +STATIC IV S_asIV(pTHX_ SV* sv); +STATIC UV S_asUV(pTHX_ SV* sv); +STATIC SV* S_more_sv(pTHX); +STATIC void S_more_xiv(pTHX); +STATIC void S_more_xnv(pTHX); +STATIC void S_more_xpv(pTHX); +STATIC void S_more_xrv(pTHX); +STATIC XPVIV* S_new_xiv(pTHX); +STATIC XPVNV* S_new_xnv(pTHX); +STATIC XPV* S_new_xpv(pTHX); +STATIC XRV* S_new_xrv(pTHX); +STATIC void S_del_xiv(pTHX_ XPVIV* p); +STATIC void S_del_xnv(pTHX_ XPVNV* p); +STATIC void S_del_xpv(pTHX_ XPV* p); +STATIC void S_del_xrv(pTHX_ XRV* p); +STATIC void S_sv_unglob(pTHX_ SV* sv); +STATIC void S_do_report_used(pTHX_ SV *sv); +STATIC void S_do_clean_objs(pTHX_ SV *sv); +STATIC void S_do_clean_named_objs(pTHX_ SV *sv); +STATIC void S_do_clean_all(pTHX_ SV *sv); +STATIC void S_not_a_number(pTHX_ SV *sv); +STATIC void S_visit(pTHX_ SVFUNC_t f); +# if defined(PURIFY) +STATIC void S_reg_add(pTHX_ SV *sv); +STATIC void S_reg_remove(pTHX_ SV *sv); +# else +STATIC void* S_my_safemalloc(pTHX_ MEM_SIZE size); +# endif +STATIC void S_sv_add_backref(pTHX_ SV *tsv, SV *sv); +STATIC void S_sv_del_backref(pTHX_ SV *sv); +# if defined(DEBUGGING) +STATIC void S_del_sv(pTHX_ SV *p); +# endif +#endif +#if defined(PERL_IN_TOKE_C) +STATIC void S_check_uni(pTHX); +STATIC void S_force_next(pTHX_ I32 type); +STATIC char* S_force_version(pTHX_ char *start); +STATIC char* S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack, int allow_tick); +STATIC SV* S_tokeq(pTHX_ SV *sv); +STATIC char* S_scan_const(pTHX_ char *start); +STATIC char* S_scan_formline(pTHX_ char *s); +STATIC char* S_scan_heredoc(pTHX_ char *s); +STATIC char* S_scan_ident(pTHX_ char *s, char *send, char *dest, STRLEN destlen, I32 ck_uni); +STATIC char* S_scan_inputsymbol(pTHX_ char *start); +STATIC char* S_scan_pat(pTHX_ char *start, I32 type); +STATIC char* S_scan_str(pTHX_ char *start); +STATIC char* S_scan_subst(pTHX_ char *start); +STATIC char* S_scan_trans(pTHX_ char *start); +STATIC char* S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp); +STATIC char* S_skipspace(pTHX_ char *s); +STATIC void S_checkcomma(pTHX_ char *s, char *name, char *what); +STATIC void S_force_ident(pTHX_ char *s, int kind); +STATIC void S_incline(pTHX_ char *s); +STATIC int S_intuit_method(pTHX_ char *s, GV *gv); +STATIC int S_intuit_more(pTHX_ char *s); +STATIC I32 S_lop(pTHX_ I32 f, expectation x, char *s); +STATIC void S_missingterm(pTHX_ char *s); +STATIC void S_no_op(pTHX_ char *what, char *s); +STATIC void S_set_csh(pTHX); +STATIC I32 S_sublex_done(pTHX); +STATIC I32 S_sublex_push(pTHX); +STATIC I32 S_sublex_start(pTHX); +STATIC char * S_filter_gets(pTHX_ SV *sv, PerlIO *fp, STRLEN append); +STATIC SV* S_new_constant(pTHX_ char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type); +STATIC int S_ao(pTHX_ int toketype); +STATIC void S_depcom(pTHX); +STATIC char* S_incl_perldb(pTHX); +STATIC I32 S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen); +STATIC I32 S_utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen); +STATIC void S_restore_rsfp(pTHX_ void *f); +STATIC void S_restore_expect(pTHX_ void *e); +STATIC void S_restore_lex_expect(pTHX_ void *e); +# if defined(CRIPPLED_CC) +STATIC int S_uni(pTHX_ I32 f, char *s); +# endif +# if defined(WIN32) +STATIC I32 S_win32_textfilter(pTHX_ int idx, SV *sv, int maxlen); +# endif #endif -#if defined(PERL_IN_TOKE_C) -STATIC char* force_version(pTHX_ char *start); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack, int allow_tick); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC void free_closures(pTHX); -#endif -#if defined(PERL_IN_PP_HOT_C) -STATIC CV* get_db_sub(pTHX_ SV **svp, CV *cv); -#endif -#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C) -STATIC void* get_from_bigger_buckets(pTHX_ int bucket, MEM_SIZE size); -#endif -#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C) -STATIC void* get_from_chain(pTHX_ MEM_SIZE size); -#endif -#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C) -STATIC union overhead * getpages(pTHX_ int needed, int *nblksp, int bucket); -#endif -#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C) -STATIC int getpages_adjacent(pTHX_ int require); -#endif -#if defined(PERL_IN_OP_C) -STATIC char* gv_ename(pTHX_ GV *gv); -#endif -#if defined(PERL_IN_GV_C) -STATIC void gv_init_sv(pTHX_ GV *gv, I32 sv_type); -#endif -#if defined(PERL_IN_HV_C) -STATIC void hfreeentries(pTHX_ HV *hv); -#endif -#if defined(PERL_IN_HV_C) -STATIC void hsplit(pTHX_ HV *hv); -#endif -#if defined(PERL_IN_HV_C) -STATIC void hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* incl_perldb(pTHX); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void incline(pTHX_ char *s); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void incpush(pTHX_ char *, int); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void init_debugger(pTHX); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void init_ids(pTHX); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void init_interp(pTHX); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void init_lexer(pTHX); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void init_main_stash(pTHX); -#endif -#if defined(USE_THREADS) && defined(PERL_IN_PERL_C) -STATIC struct perl_thread * init_main_thread(pTHX); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void init_perllib(pTHX); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void init_postdump_symbols(pTHX_ int, char **, char **); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void init_predump_symbols(pTHX); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC int intuit_method(pTHX_ char *s, GV *gv); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC int intuit_more(pTHX_ char *s); -#endif -#if defined(PERL_IN_PP_C) -STATIC SV* is_an_int(pTHX_ char *s, STRLEN l); -#endif -#if defined(PERL_IN_OP_C) -STATIC bool is_handle_constructor(pTHX_ OP *o, I32 argnum); -#endif -#if defined(PERL_IN_UNIVERSAL_C) -STATIC SV* isa_lookup(pTHX_ HV *stash, const char *name, int len, int level); -#endif -#if defined(PERL_IN_OP_C) -STATIC I32 list_assignment(pTHX_ OP *o); -#endif -#if defined(LOCKF_EMULATE_FLOCK) && defined(PERL_IN_PP_SYS_C) -STATIC int lockf_emulate_flock(pTHX_ int fd, int operation); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC I32 lop(pTHX_ I32 f, expectation x, char *s); -#endif -#if defined(PERL_IN_MG_C) -STATIC int magic_methcall(pTHX_ SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val); -#endif -#if defined(PERL_IN_MG_C) -STATIC int magic_methpack(pTHX_ SV *sv, MAGIC *mg, char *meth); +#if defined(PERL_IN_UNIVERSAL_C) +STATIC SV* S_isa_lookup(pTHX_ HV *stash, const char *name, int len, int level); #endif #if defined(PERL_IN_UTIL_C) -STATIC SV* mess_alloc(pTHX); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void missingterm(pTHX_ char *s); -#endif -#if defined(PERL_IN_OP_C) -STATIC OP* modkids(pTHX_ OP *o, I32 type); -#endif -#if defined(PERL_IN_HV_C) -STATIC void more_he(pTHX); -#endif -#if defined(PERL_IN_SV_C) -STATIC SV* more_sv(pTHX); -#endif -#if defined(PERL_IN_SV_C) -STATIC void more_xiv(pTHX); -#endif -#if defined(PERL_IN_SV_C) -STATIC void more_xnv(pTHX); -#endif -#if defined(PERL_IN_SV_C) -STATIC void more_xpv(pTHX); -#endif -#if defined(PERL_IN_SV_C) -STATIC void more_xrv(pTHX); -#endif -#if defined(MYMALLOC) && defined(PERL_IN_MALLOC_C) -STATIC void morecore(pTHX_ int bucket); -#endif -#if defined(PERL_IN_PP_C) -STATIC SV* mul128(pTHX_ SV *sv, U8 m); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void my_exit_jump(pTHX) __attribute__((noreturn)); -#endif -#if !defined(PURIFY) && defined(PERL_IN_SV_C) -STATIC void* my_safemalloc(pTHX_ MEM_SIZE size); -#endif -#if defined(PERL_IN_OP_C) -STATIC OP* newDEFSVOP(pTHX); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC SV* new_constant(pTHX_ char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type); -#endif -#if defined(PERL_IN_HV_C) -STATIC HE* new_he(pTHX); -#endif -#if defined(PERL_IN_OP_C) -STATIC OP* new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp); -#endif -#if defined(PERL_IN_SV_C) -STATIC XPVIV* new_xiv(pTHX); -#endif -#if defined(PERL_IN_SV_C) -STATIC XPVNV* new_xnv(pTHX); -#endif -#if defined(PERL_IN_SV_C) -STATIC XPV* new_xpv(pTHX); -#endif -#if defined(PERL_IN_SV_C) -STATIC XRV* new_xrv(pTHX); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC char* nextchar(pTHX); -#endif -#if defined(PERL_IN_OP_C) -STATIC void no_bareword_allowed(pTHX_ OP *o); -#endif -#if defined(PERL_IN_OP_C) -STATIC OP* no_fh_allowed(pTHX_ OP *o); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void no_op(pTHX_ char *what, char *s); -#endif -#if defined(PERL_IN_SV_C) -STATIC void not_a_number(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void nuke_stacks(pTHX); -#endif -#if defined(PERL_IN_OP_C) -STATIC void null(pTHX_ OP* o); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void open_script(pTHX_ char *, bool, SV *, int *fd); -#endif -#if defined(PERL_IN_OP_C) -STATIC PADOFFSET pad_findlex(pTHX_ char* name, PADOFFSET newoff, U32 seq, CV* startcv, I32 cx_ix, I32 saweval, U32 flags); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void* parse_body(pTHX_ va_list args); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC void qsortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t f); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC void re_croak2(pTHX_ const char* pat1, const char* pat2, ...) __attribute__((noreturn)); -#endif -#if defined(PERL_IN_PERL_C) -STATIC I32 read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen); -#endif -#if defined(PERL_IN_PP_C) -STATIC SV* refto(pTHX_ SV* sv); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC regnode* reg(pTHX_ I32, I32 *); -#endif -#if defined(PURIFY) && defined(PERL_IN_SV_C) -STATIC void reg_add(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC regnode* reg_node(pTHX_ U8); -#endif -#if defined(PURIFY) && defined(PERL_IN_SV_C) -STATIC void reg_remove(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC regnode* reganode(pTHX_ U8, U32); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC regnode* regatom(pTHX_ I32 *); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC regnode* regbranch(pTHX_ I32 *, I32); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC void regc(pTHX_ U8, char *); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC regnode* regclass(pTHX); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC regnode* regclassutf8(pTHX); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC char* regcp_set_to(pTHX_ I32 ss); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC char* regcppop(pTHX); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC CHECKPOINT regcppush(pTHX_ I32 parenfloor); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC I32 regcurly(pTHX_ char *); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC U8* reghop(pTHX_ U8 *pos, I32 off); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC U8* reghopmaybe(pTHX_ U8 *pos, I32 off); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC bool reginclass(pTHX_ char *p, I32 c); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC bool reginclassutf8(pTHX_ regnode *f, U8* p); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC void reginsert(pTHX_ U8, regnode *); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC I32 regmatch(pTHX_ regnode *prog); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC void regoptail(pTHX_ regnode *, regnode *); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC regnode* regpiece(pTHX_ I32 *); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC char* regpposixcc(pTHX_ I32 value); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC I32 regrepeat(pTHX_ regnode *p, I32 max); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC I32 regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC void regset(pTHX_ char *, I32); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC void regtail(pTHX_ regnode *, regnode *); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC I32 regtry(pTHX_ regexp *prog, char *startpos); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC void reguni(pTHX_ UV, char *, I32*); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC char* regwhite(pTHX_ char *, char *); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void restore_expect(pTHX_ void *e); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void restore_lex_expect(pTHX_ void *e); -#endif -#if defined(PERL_IN_MG_C) -STATIC void restore_magic(pTHX_ void *p); -#endif -#if defined(PERL_IN_REGEXEC_C) -STATIC void restore_pos(pTHX_ void *arg); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void restore_rsfp(pTHX_ void *f); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void* run_body(pTHX_ va_list args); -#endif -#if defined(PERL_IN_HV_C) -STATIC HEK* save_hek(pTHX_ const char *str, I32 len, U32 hash); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC void save_lines(pTHX_ AV *array, SV *sv); -#endif -#if defined(PERL_IN_MG_C) -STATIC void save_magic(pTHX_ I32 mgs_ix, SV *sv); -#endif -#if defined(PERL_IN_SCOPE_C) -STATIC SV* save_scalar_at(pTHX_ SV **sptr); -#endif -#if defined(PERL_IN_OP_C) -STATIC bool scalar_mod_type(pTHX_ OP *o, I32 type); -#endif -#if defined(PERL_IN_OP_C) -STATIC OP* scalarboolean(pTHX_ OP *o); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC void scan_commit(pTHX_ scan_data_t *data); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_const(pTHX_ char *start); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_formline(pTHX_ char *s); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_heredoc(pTHX_ char *s); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_ident(pTHX_ char *s, char *send, char *dest, STRLEN destlen, I32 ck_uni); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_inputsymbol(pTHX_ char *start); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_pat(pTHX_ char *start, I32 type); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_str(pTHX_ char *start); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_subst(pTHX_ char *start); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_trans(pTHX_ char *start); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp); -#endif -#if defined(PERL_IN_PP_C) -STATIC U32 seed(pTHX); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC void set_csh(pTHX); -#endif -#if defined(PERL_IN_OP_C) -STATIC void simplify_sort(pTHX_ OP *o); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC char* skipspace(pTHX_ char *s); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 sortcv(pTHX_ SV *a, SV *b); -#endif -#if defined(PERL_IN_REGCOMP_C) -STATIC I32 study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC I32 sublex_done(pTHX); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC I32 sublex_push(pTHX); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC I32 sublex_start(pTHX); -#endif -#if defined(PERL_IN_SV_C) -STATIC void sv_add_backref(pTHX_ SV *tsv, SV *sv); -#endif -#if defined(PERL_IN_SV_C) -STATIC void sv_del_backref(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 sv_i_ncmp(pTHX_ SV *a, SV *b); -#endif -#if defined(PERL_IN_PP_CTL_C) -STATIC I32 sv_ncmp(pTHX_ SV *a, SV *b); -#endif -#if defined(PERL_IN_SV_C) -STATIC void sv_unglob(pTHX_ SV* sv); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC SV* tokeq(pTHX_ SV *sv); -#endif -#if defined(PERL_IN_OP_C) -STATIC OP* too_few_arguments(pTHX_ OP *o, char* name); -#endif -#if defined(PERL_IN_OP_C) -STATIC OP* too_many_arguments(pTHX_ OP *o, char* name); -#endif -#if defined(CRIPPLED_CC) && defined(PERL_IN_TOKE_C) -STATIC int uni(pTHX_ I32 f, char *s); -#endif -#if defined(USE_THREADS) && defined(PERL_IN_PP_HOT_C) -STATIC void unset_cvowner(pTHX_ void *cvarg); -#endif -#if defined(PERL_IN_MG_C) -STATIC void unwind_handler_stack(pTHX_ void *p); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void usage(pTHX_ char *); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC I32 utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen); -#endif -#if defined(PERL_IN_TOKE_C) -STATIC I32 utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen); -#endif -#if defined(PERL_IN_PERL_C) -STATIC void validate_suid(pTHX_ char *, char*, int); -#endif -#if defined(PERL_IN_SV_C) -STATIC void visit(pTHX_ SVFUNC_t f); -#endif -#if defined(WIN32) && defined(PERL_IN_TOKE_C) -STATIC I32 win32_textfilter(pTHX_ int idx, SV *sv, int maxlen); -#endif -#if defined(LEAKTEST) && defined(PERL_IN_UTIL_C) -STATIC void xstat(pTHX_ int); +STATIC SV* S_mess_alloc(pTHX); +STATIC void S_do_croak(pTHX_ const char *pat, va_list *args) __attribute__((noreturn)); +STATIC void S_do_warn(pTHX_ const char *pat, va_list *args); +# if defined(LEAKTEST) +STATIC void S_xstat(pTHX_ int); +# endif #endif diff --git a/proto.pl b/proto.pl deleted file mode 100755 index 124aff0..0000000 --- a/proto.pl +++ /dev/null @@ -1,1095 +0,0 @@ -#!/usr/bin/perl -w - -# -# Database of global and static function prototypes. This is used -# to generate prototype headers under various configurations, -# export symbols lists for different platforms, and macros to -# provide an implicit interpreter context argument. -# -use strict; - -sub read_table (\%) { - my $functions = shift; - while () { - next if /^\s*(#|$)/; - chomp; - while (s|\\$||) { - $_ .= ; - chomp; - } - my $cond; - if (s/^c\s*\[([^\]]+)\]\s*//) { - $cond = $1; - } - my($flags,$retval,$func,@args) = split /\s*\|\s*/, $_; - warn "dup $func\n" if exists $functions->{$func}; - $functions->{$func}{retval} = $retval; - $functions->{$func}{args} = \@args; - $functions->{$func}{conditional} = $cond if $cond; - if ($flags =~ s|s\[([^\]]+)\]\s*|| && $1) { - $functions->{$func}{static} = $1; - } - $functions->{$func}{flags} = $flags; - } -} - -# generate proto.h -sub write_protos ($\%) { - my $file = shift; - my $functions = shift; - local *F; - open F, ">$file" or die "Can't open $file: $!"; - my @globals = sort grep { !exists $functions->{$_}{static} } keys %$functions; - my @statics = sort grep { exists $functions->{$_}{static} } keys %$functions; - for my $func (@globals, @statics) { - my $fentry = $functions->{$func}; - my $cond = $fentry->{conditional} || ""; - my $flags = $fentry->{flags} || ""; - my $retval = $fentry->{retval} || ""; - my $args = $fentry->{args} || ""; - my $static = $fentry->{static} || ""; - if ($static) { - $cond .= " && " if $cond; - $cond .= "defined(PERL_IN_\U$static\E_C)"; - $retval = "STATIC $retval"; - } - print F "#if $cond\n" if $cond; - $func = "Perl_$func" if $flags =~ /p/; - my $context = ""; - unless ($flags =~ /n/) { - $context = "pTHX"; - $context .= "_ " if @$args; - } - print F "$retval\t$func($context"; - if (@$args) { - print F join(", ", @$args); - } - else { - print F "void" if $flags =~ /n/; - } - print F ")"; - print F " __attribute__((noreturn))" if $flags =~ /r/; - print F ";\n"; - print F "#endif\n" if $cond; - } - close F; -} - -sub munge_c_files (\%) { - my $functions = shift; - unless (@ARGV) { - warn "\@ARGV empty, nothing to do\n"; - return; - } - local $^I = '.bak'; - while (<>) { - if (/^#\s*include\s+"perl.h"/) { - my $file = uc $ARGV; - $file =~ s/\./_/g; - print "#define PERL_IN_$file\n"; - } - s{^(\w+)\s*\(} - { - my $f = $1; - my $repl = "$f("; - if (exists $functions->{$f}) { - my $flags = $functions->{$f}{flags}; - $repl = "Perl_$repl" if $flags =~ /p/; - unless ($flags =~ /n/) { - $repl .= "pTHX"; - $repl .= "_ " if @{$functions->{$f}{args}}; - } - warn("$ARGV:$.:$repl\n"); - } - $repl; - }e; - print; - close ARGV if eof; # restart $. - } -} - -sub write_global_sym ($\%) { - my $file = shift; - my $functions = shift; - local *F; - open F, ">$file" or die "Can't open $file: $!"; - print F <<'EOT'; -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is autogenerated from data in proto.pl. Edit that file -# and run 'make regen_headers' to effect changes. -# -EOT - my @globals = sort grep { !exists $functions->{$_}{static} } - keys %$functions; - for my $func (@globals) { - my $fentry = $functions->{$func}; - my $flags = $fentry->{flags} || ""; - $func = "Perl_$func" if $flags =~ /p/; - print F "$func\n"; - } - close F; -} - -my %functions; -read_table(%functions); -sub get_table { \%functions } - -write_protos('proto.h', %functions); -write_global_sym('global.sym', %functions); -#munge_c_files(%functions); - -__END__ - -# New function prototypes must be added at the end of this file to -# maintain binary compatibility in some configurations - -# Lines are of the form: -# flags|return_type|function_name|return_type|arg1|arg2|...|argN -# -# Lines may continue on multiple lines when \w| begins the next line. -# Leading and trailing whitespace will be ignored in each component. -# -# flags are single letters with following meanings: -# c[CONDITION] function available #if CONDITION (must come first) -# s[foo] static, local to foo.c (everything else is global) -# n function has no implicit interpreter context argument -# p function has a Perl_ prefix -# r function never returns -# Individual flags may be separated by whitespace. -# - -p |SV* |amagic_call |SV* left|SV* right|int method|int dir -p |bool |Gv_AMupdate |HV* stash -p |OP* |append_elem |I32 optype|OP* head|OP* tail -p |OP* |append_list |I32 optype|LISTOP* first|LISTOP* last -p |I32 |apply |I32 type|SV** mark|SV** sp -p |void |assertref |OP* o -p |bool |avhv_exists_ent|AV *ar|SV* keysv|U32 hash -p |SV** |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash -p |HE* |avhv_iternext |AV *ar -p |SV* |avhv_iterval |AV *ar|HE* entry -p |HV* |avhv_keys |AV *ar -p |void |av_clear |AV* ar -p |void |av_extend |AV* ar|I32 key -p |AV* |av_fake |I32 size|SV** svp -p |SV** |av_fetch |AV* ar|I32 key|I32 lval -p |void |av_fill |AV* ar|I32 fill -p |I32 |av_len |AV* ar -p |AV* |av_make |I32 size|SV** svp -p |SV* |av_pop |AV* ar -p |void |av_push |AV* ar|SV* val -p |void |av_reify |AV* ar -p |SV* |av_shift |AV* ar -p |SV** |av_store |AV* ar|I32 key|SV* val -p |void |av_undef |AV* ar -p |void |av_unshift |AV* ar|I32 num -p |OP* |bind_match |I32 type|OP* left|OP* pat -p |OP* |block_end |I32 floor|OP* seq -p |I32 |block_gimme -p |int |block_start |int full -p |void |boot_core_UNIVERSAL -p |void |call_list |I32 oldscope|AV* av_list -p |I32 |cando |I32 bit|I32 effective|Stat_t* statbufp -p |U32 |cast_ulong |double f -p |I32 |cast_i32 |double f -p |IV |cast_iv |double f -p |UV |cast_uv |double f -c[!defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)] \ -p |I32 |my_chsize |int fd|Off_t length -c[defined(USE_THREADS)] \ -p |MAGIC* |condpair_magic |SV *sv -p |OP* |convert |I32 optype|I32 flags|OP* o -pr |void |croak |const char* pat|... -p |void |cv_ckproto |CV* cv|GV* gv|char* p -p |CV* |cv_clone |CV* proto -p |SV* |cv_const_sv |CV* cv -p |SV* |op_const_sv |OP* o|CV* cv -p |void |cv_undef |CV* cv -p |void |cx_dump |PERL_CONTEXT* cs -p |SV* |filter_add |filter_t funcp|SV* datasv -p |void |filter_del |filter_t funcp -p |I32 |filter_read |int idx|SV* buffer|int maxlen -p |char** |get_op_descs -p |char** |get_op_names -p |char* |get_no_modify -p |U32* |get_opargs -p |I32 |cxinc -p |void |deb |const char* pat|... -p |void |deb_growlevel -p |void |debprofdump -p |I32 |debop |OP* o -p |I32 |debstack -p |I32 |debstackptrs -p |char* |delimcpy |char* to|char* toend|char* from \ - |char* fromend|int delim|I32* retlen -p |void |deprecate |char* s -p |OP* |die |const char* pat|... -p |OP* |die_where |char* message|STRLEN msglen -p |void |dounwind |I32 cxix -p |bool |do_aexec |SV* really|SV** mark|SV** sp -p |int |do_binmode |PerlIO *fp|int iotype|int flag -p |void |do_chop |SV* asv|SV* sv -p |bool |do_close |GV* gv|bool not_implicit -p |bool |do_eof |GV* gv -p |bool |do_exec |char* cmd -c[!defined(WIN32)] \ -p |bool |do_exec3 |char* cmd|int fd|int flag -p |void |do_execfree -c[defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)] \ -p |I32 |do_ipcctl |I32 optype|SV** mark|SV** sp -c[defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)] \ -p |I32 |do_ipcget |I32 optype|SV** mark|SV** sp -p |void |do_join |SV* sv|SV* del|SV** mark|SV** sp -p |OP* |do_kv |ARGSproto -c[defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)] \ -p |I32 |do_msgrcv |SV** mark|SV** sp -c[defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)] \ -p |I32 |do_msgsnd |SV** mark|SV** sp -p |bool |do_open |GV* gv|char* name|I32 len|int as_raw \ - |int rawmode|int rawperm|PerlIO* supplied_fp -p |void |do_pipe |SV* sv|GV* rgv|GV* wgv -p |bool |do_print |SV* sv|PerlIO* fp -p |OP* |do_readline -p |I32 |do_chomp |SV* sv -p |bool |do_seek |GV* gv|Off_t pos|int whence -c[defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)] \ -p |I32 |do_semop |SV** mark|SV** sp -c[defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)] \ -p |I32 |do_shmio |I32 optype|SV** mark|SV** sp -p |void |do_sprintf |SV* sv|I32 len|SV** sarg -p |Off_t |do_sysseek |GV* gv|Off_t pos|int whence -p |Off_t |do_tell |GV* gv -p |I32 |do_trans |SV* sv -p |void |do_vecset |SV* sv -p |void |do_vop |I32 optype|SV* sv|SV* left|SV* right -p |OP* |dofile |OP* term -p |I32 |dowantarray -p |void |dump_all -p |void |dump_eval -c[defined(DUMP_FDS)] \ -p |void |dump_fds |char* s -p |void |dump_form |GV* gv -p |void |gv_dump |GV* gv -p |void |op_dump |OP* arg -p |void |pmop_dump |PMOP* pm -p |void |dump_packsubs |HV* stash -p |void |dump_sub |GV* gv -p |void |fbm_compile |SV* sv|U32 flags -p |char* |fbm_instr |unsigned char* big|unsigned char* bigend \ - |SV* littlesv|U32 flags -p |char* |find_script |char *scriptname|bool dosearch \ - |char **search_ext|I32 flags -c[defined(USE_THREADS)] \ -p |PADOFFSET|find_threadsv|const char *name -p |OP* |force_list |OP* arg -p |OP* |fold_constants |OP* arg -p |char* |form |const char* pat|... -p |void |free_tmps -p |OP* |gen_constant_list|OP* o -c[!defined(HAS_GETENV_LEN)] \ -p |char* |getenv_len |char* key|unsigned long *len -p |void |gp_free |GV* gv -p |GP* |gp_ref |GP* gp -p |GV* |gv_AVadd |GV* gv -p |GV* |gv_HVadd |GV* gv -p |GV* |gv_IOadd |GV* gv -p |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \ - |I32 method -p |void |gv_check |HV* stash -p |void |gv_efullname |SV* sv|GV* gv -p |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix -p |GV* |gv_fetchfile |const char* name -p |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \ - |I32 level -p |GV* |gv_fetchmethod |HV* stash|const char* name -p |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \ - |I32 autoload -p |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type -p |void |gv_fullname |SV* sv|GV* gv -p |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix -p |void |gv_init |GV* gv|HV* stash|const char* name \ - |STRLEN len|int multi -p |HV* |gv_stashpv |const char* name|I32 create -p |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create -p |HV* |gv_stashsv |SV* sv|I32 create -p |void |hv_clear |HV* tb -p |void |hv_delayfree_ent|HV* hv|HE* entry -p |SV* |hv_delete |HV* tb|const char* key|U32 klen|I32 flags -p |SV* |hv_delete_ent |HV* tb|SV* key|I32 flags|U32 hash -p |bool |hv_exists |HV* tb|const char* key|U32 klen -p |bool |hv_exists_ent |HV* tb|SV* key|U32 hash -p |SV** |hv_fetch |HV* tb|const char* key|U32 klen|I32 lval -p |HE* |hv_fetch_ent |HV* tb|SV* key|I32 lval|U32 hash -p |void |hv_free_ent |HV* hv|HE* entry -p |I32 |hv_iterinit |HV* tb -p |char* |hv_iterkey |HE* entry|I32* retlen -p |SV* |hv_iterkeysv |HE* entry -p |HE* |hv_iternext |HV* tb -p |SV* |hv_iternextsv |HV* hv|char** key|I32* retlen -p |SV* |hv_iterval |HV* tb|HE* entry -p |void |hv_ksplit |HV* hv|IV newmax -p |void |hv_magic |HV* hv|GV* gv|int how -p |SV** |hv_store |HV* tb|const char* key|U32 klen|SV* val \ - |U32 hash -p |HE* |hv_store_ent |HV* tb|SV* key|SV* val|U32 hash -p |void |hv_undef |HV* tb -p |I32 |ibcmp |const char* a|const char* b|I32 len -p |I32 |ibcmp_locale |const char* a|const char* b|I32 len -p |I32 |ingroup |I32 testgid|I32 effective -p |void |init_stacks |ARGSproto -p |U32 |intro_my -p |char* |instr |const char* big|const char* little -p |bool |io_close |IO* io -p |OP* |invert |OP* cmd -p |bool |is_uni_alnum |U32 c -p |bool |is_uni_idfirst |U32 c -p |bool |is_uni_alpha |U32 c -p |bool |is_uni_space |U32 c -p |bool |is_uni_digit |U32 c -p |bool |is_uni_upper |U32 c -p |bool |is_uni_lower |U32 c -p |bool |is_uni_print |U32 c -p |U32 |to_uni_upper |U32 c -p |U32 |to_uni_title |U32 c -p |U32 |to_uni_lower |U32 c -p |bool |is_uni_alnum_lc|U32 c -p |bool |is_uni_idfirst_lc|U32 c -p |bool |is_uni_alpha_lc|U32 c -p |bool |is_uni_space_lc|U32 c -p |bool |is_uni_digit_lc|U32 c -p |bool |is_uni_upper_lc|U32 c -p |bool |is_uni_lower_lc|U32 c -p |bool |is_uni_print_lc|U32 c -p |U32 |to_uni_upper_lc|U32 c -p |U32 |to_uni_title_lc|U32 c -p |U32 |to_uni_lower_lc|U32 c -p |bool |is_utf8_alnum |U8 *p -p |bool |is_utf8_idfirst|U8 *p -p |bool |is_utf8_alpha |U8 *p -p |bool |is_utf8_space |U8 *p -p |bool |is_utf8_digit |U8 *p -p |bool |is_utf8_upper |U8 *p -p |bool |is_utf8_lower |U8 *p -p |bool |is_utf8_print |U8 *p -p |bool |is_utf8_mark |U8 *p -p |OP* |jmaybe |OP* arg -p |I32 |keyword |char* d|I32 len -p |void |leave_scope |I32 base -p |void |lex_end -p |void |lex_start |SV* line -p |OP* |linklist |OP* o -p |OP* |list |OP* o -p |OP* |listkids |OP* o -p |OP* |localize |OP* arg|I32 lexical -p |I32 |looks_like_number|SV* sv -p |int |magic_clearenv |SV* sv|MAGIC* mg -p |int |magic_clear_all_env|SV* sv|MAGIC* mg -p |int |magic_clearpack|SV* sv|MAGIC* mg -p |int |magic_clearsig |SV* sv|MAGIC* mg -p |int |magic_existspack|SV* sv|MAGIC* mg -p |int |magic_freeregexp|SV* sv|MAGIC* mg -p |int |magic_get |SV* sv|MAGIC* mg -p |int |magic_getarylen|SV* sv|MAGIC* mg -p |int |magic_getdefelem|SV* sv|MAGIC* mg -p |int |magic_getglob |SV* sv|MAGIC* mg -p |int |magic_getnkeys |SV* sv|MAGIC* mg -p |int |magic_getpack |SV* sv|MAGIC* mg -p |int |magic_getpos |SV* sv|MAGIC* mg -p |int |magic_getsig |SV* sv|MAGIC* mg -p |int |magic_getsubstr|SV* sv|MAGIC* mg -p |int |magic_gettaint |SV* sv|MAGIC* mg -p |int |magic_getuvar |SV* sv|MAGIC* mg -p |int |magic_getvec |SV* sv|MAGIC* mg -p |U32 |magic_len |SV* sv|MAGIC* mg -c[defined(USE_THREADS)] \ -p |int |magic_mutexfree|SV* sv|MAGIC* mg -p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key -p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg -p |int |magic_regdatum_get|SV* sv|MAGIC* mg -p |int |magic_set |SV* sv|MAGIC* mg -p |int |magic_setamagic|SV* sv|MAGIC* mg -p |int |magic_setarylen|SV* sv|MAGIC* mg -p |int |magic_setbm |SV* sv|MAGIC* mg -p |int |magic_setdbline|SV* sv|MAGIC* mg -c[defined(USE_LOCALE_COLLATE)] \ -p |int |magic_setcollxfrm|SV* sv|MAGIC* mg -p |int |magic_setdefelem|SV* sv|MAGIC* mg -p |int |magic_setenv |SV* sv|MAGIC* mg -p |int |magic_setfm |SV* sv|MAGIC* mg -p |int |magic_setisa |SV* sv|MAGIC* mg -p |int |magic_setglob |SV* sv|MAGIC* mg -p |int |magic_setmglob |SV* sv|MAGIC* mg -p |int |magic_setnkeys |SV* sv|MAGIC* mg -p |int |magic_setpack |SV* sv|MAGIC* mg -p |int |magic_setpos |SV* sv|MAGIC* mg -p |int |magic_setsig |SV* sv|MAGIC* mg -p |int |magic_setsubstr|SV* sv|MAGIC* mg -p |int |magic_settaint |SV* sv|MAGIC* mg -p |int |magic_setuvar |SV* sv|MAGIC* mg -p |int |magic_setvec |SV* sv|MAGIC* mg -p |int |magic_set_all_env|SV* sv|MAGIC* mg -p |U32 |magic_sizepack |SV* sv|MAGIC* mg -p |int |magic_wipepack |SV* sv|MAGIC* mg -p |void |magicname |char* sym|char* name|I32 namlen -n |int |main |int argc|char** argv|char** env -c[defined(MYMALLOC)] \ -p |MEM_SIZE|malloced_size |void *p -p |void |markstack_grow -c[defined(USE_LOCALE_COLLATE)] \ -p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen -p |SV* |mess |const char* pat|va_list* args -p |int |mg_clear |SV* sv -p |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen -p |MAGIC* |mg_find |SV* sv|int type -p |int |mg_free |SV* sv -p |int |mg_get |SV* sv -p |U32 |mg_length |SV* sv -p |void |mg_magical |SV* sv -p |int |mg_set |SV* sv -p |I32 |mg_size |SV* sv -p |OP* |mod |OP* o|I32 type -p |char* |moreswitches |char* s -p |OP* |my |OP* o -c[!defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)] \ -p |char* |my_bcopy |const char* from|char* to|I32 len -c[!defined(HAS_BZERO) && !defined(HAS_MEMSET)] \ -p |char* |my_bzero |char* loc|I32 len -pr |void |my_exit |U32 status -pr |void |my_failure_exit -p |I32 |my_fflush_all -p |I32 |my_lstat |ARGSproto -c[!defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)] \ -p |I32 |my_memcmp |const char* s1|const char* s2|I32 len -c[!defined(HAS_MEMSET)] \ -p |void* |my_memset |char* loc|I32 ch|I32 len -c[!defined(PERL_OBJECT)] \ -p |I32 |my_pclose |PerlIO* ptr -c[!defined(PERL_OBJECT)] \ -p |PerlIO*|my_popen |char* cmd|char* mode -p |void |my_setenv |char* nam|char* val -p |I32 |my_stat |ARGSproto -c[defined(MYSWAP)] \ -p |short |my_swap |short s -c[defined(MYSWAP)] \ -p |long |my_htonl |long l -c[defined(MYSWAP)] \ -p |long |my_ntohl |long l -p |void |my_unexec -p |OP* |newANONLIST |OP* o -p |OP* |newANONHASH |OP* o -p |OP* |newANONSUB |I32 floor|OP* proto|OP* block -p |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right -p |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop -p |void |newCONSTSUB |HV* stash|char* name|SV* sv -p |void |newFORM |I32 floor|OP* o|OP* block -p |OP* |newFOROP |I32 flags|char* label|line_t forline \ - |OP* sclr|OP* expr|OP*block|OP*cont -p |OP* |newLOGOP |I32 optype|I32 flags|OP* left|OP* right -p |OP* |newLOOPEX |I32 type|OP* label -p |OP* |newLOOPOP |I32 flags|I32 debuggable|OP* expr|OP* block -p |OP* |newNULLLIST -p |OP* |newOP |I32 optype|I32 flags -p |void |newPROG |OP* o -p |OP* |newRANGE |I32 flags|OP* left|OP* right -p |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop -p |OP* |newSTATEOP |I32 flags|char* label|OP* o -p |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block -p |CV* |newXS |char* name|XSUBADDR_t f|char* filename -p |AV* |newAV -p |OP* |newAVREF |OP* o -p |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last -p |OP* |newCVREF |I32 flags|OP* o -p |OP* |newGVOP |I32 type|I32 flags|GV* gv -p |GV* |newGVgen |char* pack -p |OP* |newGVREF |I32 type|OP* o -p |OP* |newHVREF |OP* o -p |HV* |newHV -p |HV* |newHVhv |HV* hv -p |IO* |newIO -p |OP* |newLISTOP |I32 type|I32 flags|OP* first|OP* last -p |OP* |newPMOP |I32 type|I32 flags -p |OP* |newPVOP |I32 type|I32 flags|char* pv -p |SV* |newRV |SV* pref -p |SV* |newRV_noinc |SV *sv -p |SV* |newSV |STRLEN len -p |OP* |newSVREF |OP* o -p |OP* |newSVOP |I32 type|I32 flags|SV* sv -p |SV* |newSViv |IV i -p |SV* |newSVnv |double n -p |SV* |newSVpv |const char* s|STRLEN len -p |SV* |newSVpvn |const char* s|STRLEN len -p |SV* |newSVpvf |const char* pat|... -p |SV* |newSVrv |SV* rv|const char* classname -p |SV* |newSVsv |SV* old -p |OP* |newUNOP |I32 type|I32 flags|OP* first -p |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \ - |I32 whileline|OP* expr|OP* block|OP* cont -c[defined(USE_THREADS)] \ -p |struct perl_thread*|new_struct_thread|struct perl_thread *t -p |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems -p |PerlIO*|nextargv |GV* gv -p |char* |ninstr |const char* big|const char* bigend \ - |const char* little|const char* lend -p |OP* |oopsCV |OP* o -p |void |op_free |OP* arg -p |void |package |OP* o -p |PADOFFSET|pad_alloc |I32 optype|U32 tmptype -p |PADOFFSET|pad_allocmy |char* name -p |PADOFFSET|pad_findmy |char* name -p |OP* |oopsAV |OP* o -p |OP* |oopsHV |OP* o -p |void |pad_leavemy |I32 fill -p |SV* |pad_sv |PADOFFSET po -p |void |pad_free |PADOFFSET po -p |void |pad_reset -p |void |pad_swipe |PADOFFSET po -p |void |peep |OP* o -c[!defined(PERL_OBJECT)] \ -n |PerlInterpreter* |perl_alloc -p |void |call_atexit |ATEXIT_t fn|void *ptr -p |I32 |call_argv |const char* sub_name|I32 flags|char** argv -p |I32 |call_method |const char* methname|I32 flags -p |I32 |call_pv |const char* sub_name|I32 flags -p |I32 |call_sv |SV* sv|I32 flags -n |void |perl_construct |PerlInterpreter* sv_interp -n |void |perl_destruct |PerlInterpreter* sv_interp -p |SV* |eval_pv |const char* p|I32 croak_on_error -p |I32 |eval_sv |SV* sv|I32 flags -n |void |perl_free |PerlInterpreter* sv_interp -p |SV* |get_sv |const char* name|I32 create -p |AV* |get_av |const char* name|I32 create -p |HV* |get_hv |const char* name|I32 create -p |CV* |get_cv |const char* name|I32 create -p |int |init_i18nl10n |int printwarn -p |int |init_i18nl14n |int printwarn -p |void |new_collate |const char* newcoll -p |void |new_ctype |const char* newctype -p |void |new_numeric |const char* newcoll -p |void |set_numeric_local -p |void |set_numeric_standard -n |int |perl_parse |PerlInterpreter* sv_interp|XSINIT_t xsinit \ - |int argc|char** argv|char** env -p |void |require_pv |const char* pv -n |int |perl_run |PerlInterpreter* sv_interp -p |void |pidgone |int pid|int status -p |void |pmflag |U16* pmfl|int ch -p |OP* |pmruntime |OP* pm|OP* expr|OP* repl -p |OP* |pmtrans |OP* o|OP* expr|OP* repl -p |OP* |pop_return -p |void |pop_scope -p |OP* |prepend_elem |I32 optype|OP* head|OP* tail -p |void |push_return |OP* o -p |void |push_scope -p |OP* |ref |OP* o|I32 type -p |OP* |refkids |OP* o|I32 type -p |void |regdump |regexp* r -p |I32 |pregexec |regexp* prog|char* stringarg \ - |char* strend|char* strbeg|I32 minend \ - |SV* screamer|U32 nosave -p |void |pregfree |struct regexp* r -p |regexp*|pregcomp |char* exp|char* xend|PMOP* pm -p |I32 |regexec_flags |regexp* prog|char* stringarg \ - |char* strend|char* strbeg|I32 minend \ - |SV* screamer|void* data|U32 flags -p |regnode*|regnext |regnode* p -p |void |regprop |SV* sv|regnode* o -p |void |repeatcpy |char* to|const char* from|I32 len|I32 count -p |char* |rninstr |const char* big|const char* bigend \ - |const char* little|const char* lend -p |Sighandler_t|rsignal |int i|Sighandler_t t -p |int |rsignal_restore|int i|Sigsave_t* t -p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2 -p |Sighandler_t|rsignal_state|int i -p |void |rxres_free |void** rsp -p |void |rxres_restore |void** rsp|REGEXP* prx -p |void |rxres_save |void** rsp|REGEXP* prx -c[!defined(HAS_RENAME)] \ -p |I32 |same_dirent |char* a|char* b -p |char* |savepv |const char* sv -p |char* |savepvn |const char* sv|I32 len -p |void |savestack_grow -p |void |save_aelem |AV* av|I32 idx|SV **sptr -p |I32 |save_alloc |I32 size|I32 pad -p |void |save_aptr |AV** aptr -p |AV* |save_ary |GV* gv -p |void |save_clearsv |SV** svp -p |void |save_delete |HV* hv|char* key|I32 klen -p |void |save_destructor|DESTRUCTORFUNC_t f|void* p -p |void |save_freesv |SV* sv -p |void |save_freeop |OP* o -p |void |save_freepv |char* pv -p |void |save_generic_svref|SV** sptr -p |void |save_gp |GV* gv|I32 empty -p |HV* |save_hash |GV* gv -p |void |save_helem |HV* hv|SV *key|SV **sptr -p |void |save_hints -p |void |save_hptr |HV** hptr -p |void |save_I16 |I16* intp -p |void |save_I32 |I32* intp -p |void |save_int |int* intp -p |void |save_item |SV* item -p |void |save_iv |IV* iv -p |void |save_list |SV** sarg|I32 maxsarg -p |void |save_long |long* longp -p |void |save_nogv |GV* gv -p |void |save_op -p |SV* |save_scalar |GV* gv -p |void |save_pptr |char** pptr -p |void |save_re_context -p |void |save_sptr |SV** sptr -p |SV* |save_svref |SV** sptr -p |SV** |save_threadsv |PADOFFSET i -p |OP* |sawparens |OP* o -p |OP* |scalar |OP* o -p |OP* |scalarkids |OP* o -p |OP* |scalarseq |OP* o -p |OP* |scalarvoid |OP* o -p |UV |scan_bin |char* start|I32 len|I32* retlen -p |UV |scan_hex |char* start|I32 len|I32* retlen -p |char* |scan_num |char* s -p |UV |scan_oct |char* start|I32 len|I32* retlen -p |OP* |scope |OP* o -p |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \ - |I32 end_shift|I32 *state|I32 last -c[!defined(VMS)] \ -p |I32 |setenv_getix |char* nam -p |void |setdefout |GV* gv -p |char* |sharepvn |const char* sv|I32 len|U32 hash -p |HEK* |share_hek |const char* sv|I32 len|U32 hash -p |Signal_t |sighandler |int sig -p |SV** |stack_grow |SV** sp|SV**p|int n -p |I32 |start_subparse |I32 is_format|U32 flags -p |void |sub_crush_depth|CV* cv -p |bool |sv_2bool |SV* sv -p |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref -p |IO* |sv_2io |SV* sv -p |IV |sv_2iv |SV* sv -p |SV* |sv_2mortal |SV* sv -p |double |sv_2nv |SV* sv -p |char* |sv_2pv |SV* sv|STRLEN* lp -p |UV |sv_2uv |SV* sv -p |IV |sv_iv |SV* sv -p |UV |sv_uv |SV* sv -p |double |sv_nv |SV* sv -p |char* |sv_pvn |SV *sv|STRLEN *len -p |I32 |sv_true |SV *sv -p |void |sv_add_arena |char* ptr|U32 size|U32 flags -p |int |sv_backoff |SV* sv -p |SV* |sv_bless |SV* sv|HV* stash -p |void |sv_catpvf |SV* sv|const char* pat|... -p |void |sv_catpv |SV* sv|const char* ptr -p |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len -p |void |sv_catsv |SV* dsv|SV* ssv -p |void |sv_chop |SV* sv|char* ptr -p |void |sv_clean_all -p |void |sv_clean_objs -p |void |sv_clear |SV* sv -p |I32 |sv_cmp |SV* sv1|SV* sv2 -p |I32 |sv_cmp_locale |SV* sv1|SV* sv2 -c[defined(USE_LOCALE_COLLATE)] \ -p |char* |sv_collxfrm |SV* sv|STRLEN* nxp -p |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp -p |void |sv_dec |SV* sv -p |void |sv_dump |SV* sv -p |bool |sv_derived_from|SV* sv|const char* name -p |I32 |sv_eq |SV* sv1|SV* sv2 -p |void |sv_free |SV* sv -p |void |sv_free_arenas -p |char* |sv_gets |SV* sv|PerlIO* fp|I32 append -p |char* |sv_grow |SV* sv|STRLEN newlen -p |void |sv_inc |SV* sv -p |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \ - |char* little|STRLEN littlelen -p |int |sv_isa |SV* sv|const char* name -p |int |sv_isobject |SV* sv -p |STRLEN |sv_len |SV* sv -p |STRLEN |sv_len_utf8 |SV* sv -p |void |sv_magic |SV* sv|SV* obj|int how|const char* name \ - |I32 namlen -p |SV* |sv_mortalcopy |SV* oldsv -p |SV* |sv_newmortal -p |SV* |sv_newref |SV* sv -p |char* |sv_peek |SV* sv -p |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp -p |void |sv_pos_b2u |SV* sv|I32* offsetp -p |char* |sv_pvn_force |SV* sv|STRLEN* lp -p |char* |sv_reftype |SV* sv|int ob -p |void |sv_replace |SV* sv|SV* nsv -p |void |sv_report_used -p |void |sv_reset |char* s|HV* stash -p |void |sv_setpvf |SV* sv|const char* pat|... -p |void |sv_setiv |SV* sv|IV num -p |void |sv_setpviv |SV* sv|IV num -p |void |sv_setuv |SV* sv|UV num -p |void |sv_setnv |SV* sv|double num -p |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv -p |SV* |sv_setref_nv |SV* rv|const char* classname|double nv -p |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv -p |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \ - |STRLEN n -p |void |sv_setpv |SV* sv|const char* ptr -p |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len -p |void |sv_setsv |SV* dsv|SV* ssv -p |void |sv_taint |SV* sv -p |bool |sv_tainted |SV* sv -p |int |sv_unmagic |SV* sv|int type -p |void |sv_unref |SV* sv -p |void |sv_untaint |SV* sv -p |bool |sv_upgrade |SV* sv|U32 mt -p |void |sv_usepvn |SV* sv|char* ptr|STRLEN len -p |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \ - |va_list* args|SV** svargs|I32 svmax \ - |bool *used_locale -p |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \ - |va_list* args|SV** svargs|I32 svmax \ - |bool *used_locale -p |SV* |swash_init |char* pkg|char* name|SV* listsv \ - |I32 minbits|I32 none -p |UV |swash_fetch |SV *sv|U8 *ptr -p |void |taint_env -p |void |taint_proper |const char* f|char* s -p |UV |to_utf8_lower |U8 *p -p |UV |to_utf8_upper |U8 *p -p |UV |to_utf8_title |U8 *p -c[defined(UNLINK_ALL_VERSIONS)] \ -p |I32 |unlnk |char* f -c[defined(USE_THREADS)] \ -p |void |unlock_condpair|void* svv -p |void |unsharepvn |const char* sv|I32 len|U32 hash -p |void |unshare_hek |HEK* hek -p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg -p |U8* |utf16_to_utf8 |U16* p|U8 *d|I32 bytelen -p |U8* |utf16_to_utf8_reversed|U16* p|U8 *d|I32 bytelen -p |I32 |utf8_distance |U8 *a|U8 *b -p |U8* |utf8_hop |U8 *s|I32 off -p |UV |utf8_to_uv |U8 *s|I32* retlen -p |U8* |uv_to_utf8 |U8 *d|UV uv -p |void |vivify_defelem |SV* sv -p |void |vivify_ref |SV* sv|U32 to_what -p |I32 |wait4pid |int pid|int* statusp|int flags -p |void |warn |const char* pat|... -p |void |warner |U32 err|const char* pat|... -p |void |watch |char** addr -p |I32 |whichsig |char* sig -p |int |yyerror |char* s -c[!defined(USE_PURE_BISON)] \ -p |int |yylex -p |int |yyparse -p |int |yywarn |char* s -c[defined(MYMALLOC)] \ -p |void |dump_mstats |char* s -c[defined(MYMALLOC)] \ -p |Malloc_t|malloc |MEM_SIZE nbytes -c[defined(MYMALLOC)] \ -p |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size -c[defined(MYMALLOC)] \ -p |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes -c[defined(MYMALLOC)] \ -p |Free_t |mfree |Malloc_t where -p |Malloc_t|safesysmalloc |MEM_SIZE nbytes -p |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size -p |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes -p |Free_t |safesysfree |Malloc_t where -c[defined(LEAKTEST)] \ -p |Malloc_t|safexmalloc |I32 x|MEM_SIZE size -c[defined(LEAKTEST)] \ -p |Malloc_t|safexcalloc |I32 x|MEM_SIZE elements|MEM_SIZE size -c[defined(LEAKTEST)] \ -p |Malloc_t|safexrealloc |Malloc_t where|MEM_SIZE size -c[defined(LEAKTEST)] \ -p |void |safexfree |Malloc_t where -c[defined(PERL_GLOBAL_STRUCT)] \ -p |struct perl_vars *|GetVars -p |void |yydestruct |void *ptr -p |int |runops_standard -p |int |runops_debug - -c[defined(WIN32)] \ -p |int& |ErrorNo -p |void |sv_catpvf_mg |SV *sv|const char* pat|... -p |void |sv_catpv_mg |SV *sv|const char *ptr -p |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len -p |void |sv_catsv_mg |SV *dstr|SV *sstr -p |void |sv_setpvf_mg |SV *sv|const char* pat|... -p |void |sv_setiv_mg |SV *sv|IV i -p |void |sv_setpviv_mg |SV *sv|IV iv -p |void |sv_setuv_mg |SV *sv|UV u -p |void |sv_setnv_mg |SV *sv|double num -p |void |sv_setpv_mg |SV *sv|const char *ptr -p |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len -p |void |sv_setsv_mg |SV *dstr|SV *sstr -p |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len -p |MGVTBL*|get_vtbl |int vtbl_id -p |char* |pv_display |SV *sv|char *pv|STRLEN cur|STRLEN len \ - |STRLEN pvlim -p |void |dump_indent |I32 level|PerlIO *file|const char* pat|... -p |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv -p |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv -p |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv -p |void |do_magic_dump |I32 level|PerlIO *file|MAGIC *mg|I32 nest \ - |I32 maxnest|bool dumpops|STRLEN pvlim -p |void |do_op_dump |I32 level|PerlIO *file|OP *o -p |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm -p |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \ - |I32 maxnest|bool dumpops|STRLEN pvlim -p |void |magic_dump |MAGIC *mg -p |void* |default_protect|int *excpt|protect_body_t body|... -p |void |reginitcolors -p |char* |sv_2pv_nolen |SV* sv -p |char* |sv_pv |SV *sv -p |void |sv_force_normal|SV *sv -p |void |tmps_grow |I32 n -p |void* |bset_obj_store |void *obj|I32 ix -p |SV* |sv_rvweaken |SV *sv -p |int |magic_killbackrefs|SV *sv|MAGIC *mg - -s[av] |I32 |avhv_index_sv |SV* sv -s[hv] |void |hsplit |HV *hv -s[hv] |void |hfreeentries |HV *hv -s[hv] |void |more_he -s[hv] |HE* |new_he -s[hv] |void |del_he |HE *p -s[hv] |HEK* |save_hek |const char *str|I32 len|U32 hash -s[hv] |void |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store -s[util] |SV* |mess_alloc -c[defined(LEAKTEST)] \ -s[util] |void |xstat |int -s[gv] |void |gv_init_sv |GV *gv|I32 sv_type -s[scope]|SV* |save_scalar_at |SV **sptr -s[sv] |IV |asIV |SV* sv -s[sv] |UV |asUV |SV* sv -s[sv] |SV* |more_sv -s[sv] |void |more_xiv -s[sv] |void |more_xnv -s[sv] |void |more_xpv -s[sv] |void |more_xrv -s[sv] |XPVIV* |new_xiv -s[sv] |XPVNV* |new_xnv -s[sv] |XPV* |new_xpv -s[sv] |XRV* |new_xrv -s[sv] |void |del_xiv |XPVIV* p -s[sv] |void |del_xnv |XPVNV* p -s[sv] |void |del_xpv |XPV* p -s[sv] |void |del_xrv |XRV* p -s[sv] |void |sv_unglob |SV* sv -s[sv] |void |do_report_used |SV *sv -s[sv] |void |do_clean_objs |SV *sv -s[sv] |void |do_clean_named_objs|SV *sv -s[sv] |void |do_clean_all |SV *sv -s[sv] |void |not_a_number |SV *sv -s[sv] |void |visit |SVFUNC_t f -c[!defined(PURIFY)] \ -s[sv] |void* |my_safemalloc |MEM_SIZE size -c[defined(PURIFY)] \ -s[sv] |void |reg_add |SV *sv -c[defined(PURIFY)] \ -s[sv] |void |reg_remove |SV *sv -s[mg] |void |save_magic |I32 mgs_ix|SV *sv -s[mg] |int |magic_methpack |SV *sv|MAGIC *mg|char *meth -s[mg] |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \ - |int n|SV *val -s[pp] |void |doencodes |SV* sv|char* s|I32 len -s[pp] |SV* |refto |SV* sv -s[pp] |U32 |seed -s[perl] |void* |parse_body |va_list args -s[perl] |void* |run_body |va_list args -s[perl] |void* |call_body |va_list args -s[perl] |void |call_xbody |OP *myop|int is_eval -s[perl] |void* |call_list_body |va_list args -s[pp_ctl]|OP* |docatch |OP *o -s[pp_ctl]|void* |docatch_body |va_list args -s[pp_ctl]|OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit -s[pp_ctl]|void |doparseform |SV *sv -s[pp_ctl]|I32 |dopoptoeval |I32 startingblock -s[pp_ctl]|I32 |dopoptolabel |char *label -s[pp_ctl]|I32 |dopoptoloop |I32 startingblock -s[pp_ctl]|I32 |dopoptosub |I32 startingblock -s[pp_ctl]|I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock -s[pp_ctl]|void |free_closures -s[pp_ctl]|void |save_lines |AV *array|SV *sv -s[pp_ctl]|OP* |doeval |int gimme|OP** startop -s[pp_ctl]|PerlIO *|doopen_pmc |const char *name|const char *mode -s[pp_ctl]|void |qsortsv |SV ** array|size_t num_elts|SVCOMPARE_t f -s[pp_ctl]|I32 |sortcv |SV *a|SV *b -s[pp_ctl]|I32 |sv_ncmp |SV *a|SV *b -s[pp_ctl]|I32 |sv_i_ncmp |SV *a|SV *b -s[pp_ctl]|I32 |amagic_ncmp |SV *a|SV *b -s[pp_ctl]|I32 |amagic_i_ncmp |SV *a|SV *b -s[pp_ctl]|I32 |amagic_cmp |SV *str1|SV *str2 -s[pp_ctl]|I32 |amagic_cmp_locale|SV *str1|SV *str2 -s[pp] |SV* |mul128 |SV *sv|U8 m -s[pp] |SV* |is_an_int |char *s|STRLEN l -s[pp] |int |div128 |SV *pnum|bool *done -s[toke] |void |check_uni -s[toke] |void |force_next |I32 type -s[toke] |char* |force_version |char *start -s[toke] |char* |force_word |char *start|int token|int check_keyword \ - |int allow_pack|int allow_tick -s[toke] |SV* |tokeq |SV *sv -s[toke] |char* |scan_const |char *start -s[toke] |char* |scan_formline |char *s -s[toke] |char* |scan_heredoc |char *s -s[toke] |char* |scan_ident |char *s|char *send|char *dest \ - |STRLEN destlen|I32 ck_uni -s[toke] |char* |scan_inputsymbol|char *start -s[toke] |char* |scan_pat |char *start|I32 type -s[toke] |char* |scan_str |char *start -s[toke] |char* |scan_subst |char *start -s[toke] |char* |scan_trans |char *start -s[toke] |char* |scan_word |char *s|char *dest|STRLEN destlen \ - |int allow_package|STRLEN *slp -s[toke] |char* |skipspace |char *s -s[toke] |void |checkcomma |char *s|char *name|char *what -s[toke] |void |force_ident |char *s|int kind -s[toke] |void |incline |char *s -s[toke] |int |intuit_method |char *s|GV *gv -s[toke] |int |intuit_more |char *s -s[toke] |I32 |lop |I32 f|expectation x|char *s -s[toke] |void |missingterm |char *s -s[toke] |void |no_op |char *what|char *s -s[toke] |void |set_csh -s[toke] |I32 |sublex_done -s[toke] |I32 |sublex_push -s[toke] |I32 |sublex_start -s[toke] |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append -s[toke] |SV* |new_constant |char *s|STRLEN len|char *key|SV *sv \ - |SV *pv|char *type -s[toke] |int |ao |int toketype -s[toke] |void |depcom -s[toke] |char* |incl_perldb -s[toke] |I32 |utf16_textfilter|int idx|SV *sv|int maxlen -s[toke] |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen -s[universal]|SV*|isa_lookup |HV *stash|const char *name|int len|int level -s[pp_hot]|CV* |get_db_sub |SV **svp|CV *cv -c[defined(USE_THREADS)] \ -s[pp_hot]|void |unset_cvowner |void *cvarg -s[op] |I32 |list_assignment|OP *o -s[op] |void |bad_type |I32 n|char *t|char *name|OP *kid -s[op] |OP* |modkids |OP *o|I32 type -s[op] |void |no_bareword_allowed|OP *o -s[op] |OP* |no_fh_allowed |OP *o -s[op] |OP* |scalarboolean |OP *o -s[op] |OP* |too_few_arguments|OP *o|char* name -s[op] |OP* |too_many_arguments|OP *o|char* name -s[op] |void |null |OP* o -s[op] |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \ - |CV* startcv|I32 cx_ix|I32 saweval|U32 flags -s[op] |OP* |newDEFSVOP -s[op] |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp -s[op] |void |simplify_sort |OP *o -s[op] |bool |is_handle_constructor |OP *o|I32 argnum -s[op] |char* |gv_ename |GV *gv -s[op] |CV* |cv_clone2 |CV *proto|CV *outside -s[op] |bool |scalar_mod_type|OP *o|I32 type -c[defined(PL_OP_SLAB_ALLOC)] \ -s[op] |void* |Slab_Alloc |int m|size_t sz -s[perl] |void |find_beginning -s[perl] |void |forbid_setid |char * -s[perl] |void |incpush |char *|int -s[perl] |void |init_interp -s[perl] |void |init_ids -s[perl] |void |init_debugger -s[perl] |void |init_lexer -s[perl] |void |init_main_stash -s[perl] |void |init_perllib -s[perl] |void |init_postdump_symbols|int|char **|char ** -s[perl] |void |init_predump_symbols -rs[perl]|void |my_exit_jump -s[perl] |void |nuke_stacks -s[perl] |void |open_script |char *|bool|SV *|int *fd -s[perl] |void |usage |char * -s[perl] |void |validate_suid |char *|char*|int -s[perl] |I32 |read_e_script |int idx|SV *buf_sv|int maxlen -c[defined(IAMSUID)] \ -s[perl] |int |fd_on_nosuid_fs|int fd -s[pp_sys]|OP* |doform |CV *cv|GV *gv|OP *retop -s[pp_sys]|int |emulate_eaccess|const char* path|int mode -c[!defined(HAS_MKDIR) || !defined(HAS_RMDIR)] \ -s[pp_sys]|int |dooneliner |char *cmd|char *filename -c[defined(FCNTL_EMULATE_FLOCK)] \ -s[pp_sys]|int |fcntl_emulate_flock|int fd|int operation -c[defined(LOCKF_EMULATE_FLOCK)] \ -s[pp_sys]|int |lockf_emulate_flock|int fd|int operation -s[regcomp]|regnode*|reg |I32|I32 * -s[regcomp]|regnode*|reganode |U8|U32 -s[regcomp]|regnode*|regatom |I32 * -s[regcomp]|regnode*|regbranch |I32 *|I32 -s[regcomp]|void |regc |U8|char * -s[regcomp]|void |reguni |UV|char *|I32* -s[regcomp]|regnode*|regclass -s[regcomp]|regnode*|regclassutf8 -s[regcomp]|I32 |regcurly |char * -s[regcomp]|regnode*|reg_node |U8 -s[regcomp]|regnode*|regpiece |I32 * -s[regcomp]|void |reginsert |U8|regnode * -s[regcomp]|void |regoptail |regnode *|regnode * -s[regcomp]|void |regset |char *|I32 -s[regcomp]|void |regtail |regnode *|regnode * -s[regcomp]|char*|regwhite |char *|char * -s[regcomp]|char*|nextchar -s[regcomp]|regnode*|dumpuntil |regnode *start|regnode *node \ - |regnode *last|SV* sv|I32 l -s[regcomp]|void |scan_commit |scan_data_t *data -s[regcomp]|I32 |study_chunk |regnode **scanp|I32 *deltap \ - |regnode *last|scan_data_t *data|U32 flags -s[regcomp]|I32 |add_data |I32 n|char *s -rs[regcomp]|void|re_croak2 |const char* pat1|const char* pat2|... -s[regcomp]|char*|regpposixcc |I32 value -s[regcomp]|void |clear_re |void *r -s[regexec]|I32 |regmatch |regnode *prog -s[regexec]|I32 |regrepeat |regnode *p|I32 max -s[regexec]|I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp -s[regexec]|I32 |regtry |regexp *prog|char *startpos -s[regexec]|bool |reginclass |char *p|I32 c -s[regexec]|bool |reginclassutf8 |regnode *f|U8* p -s[regexec]|CHECKPOINT|regcppush |I32 parenfloor -s[regexec]|char*|regcppop -s[regexec]|char*|regcp_set_to |I32 ss -s[regexec]|void |cache_re |regexp *prog -s[regexec]|void |restore_pos |void *arg -s[regexec]|U8* |reghop |U8 *pos|I32 off -s[regexec]|U8* |reghopmaybe |U8 *pos|I32 off -s[run] |void |debprof |OP *o -s[sv] |void |sv_add_backref |SV *tsv|SV *sv -s[sv] |void |sv_del_backref |SV *sv -s[doop] |I32 |do_trans_CC_simple |SV *sv -s[doop] |I32 |do_trans_CC_count |SV *sv -s[doop] |I32 |do_trans_CC_complex |SV *sv -s[doop] |I32 |do_trans_UU_simple |SV *sv -s[doop] |I32 |do_trans_UU_count |SV *sv -s[doop] |I32 |do_trans_UU_complex |SV *sv -s[doop] |I32 |do_trans_UC_simple |SV *sv -s[doop] |I32 |do_trans_CU_simple |SV *sv -s[doop] |I32 |do_trans_UC_trivial |SV *sv -s[doop] |I32 |do_trans_CU_trivial |SV *sv -s[mg] |void |unwind_handler_stack |void *p -s[mg] |void |restore_magic |void *p -s[toke] |void |restore_rsfp |void *f -s[toke] |void |restore_expect |void *e -s[toke] |void |restore_lex_expect |void *e -c[defined(USE_THREADS)] \ -s[perl] |struct perl_thread * |init_main_thread -c[defined(WIN32)] \ -s[globals]|int |do_aspawn |void *vreally|void **vmark|void **vsp -c[defined(DEBUGGING)] \ -s[sv] |void |del_sv |SV *p -c[defined(WIN32)] \ -s[toke] |I32 |win32_textfilter |int idx|SV *sv|int maxlen -c[defined(CRIPPLED_CC)] \ -s[toke] |int |uni |I32 f|char *s -c[defined(MYMALLOC) && defined(DEBUGGING)] \ -s[malloc]|void |botch |char *diag|char *s -c[defined(MYMALLOC)] \ -s[malloc]|void |morecore |int bucket -c[defined(MYMALLOC)] \ -s[malloc]|void |add_to_chain |void *p|MEM_SIZE size|MEM_SIZE chip -c[defined(MYMALLOC)] \ -s[malloc]|Malloc_t|emergency_sbrk|MEM_SIZE size -c[defined(MYMALLOC)] \ -s[malloc]|void* |get_from_chain |MEM_SIZE size -c[defined(MYMALLOC)] \ -s[malloc]|void* |get_from_bigger_buckets|int bucket|MEM_SIZE size -c[defined(MYMALLOC)] \ -s[malloc]|union overhead *|getpages|int needed|int *nblksp|int bucket -c[defined(MYMALLOC)] \ -s[malloc]|int |getpages_adjacent|int require diff --git a/regcomp.c b/regcomp.c index d0d451b..76ae523 100644 --- a/regcomp.c +++ b/regcomp.c @@ -166,13 +166,13 @@ static scan_data_t zero_scan_data = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #define CHR_DIST(a,b) (UTF ? utf8_distance(a,b) : a - b) STATIC void -clear_re(pTHX_ void *r) +S_clear_re(pTHX_ void *r) { ReREFCNT_dec((regexp *)r); } STATIC void -scan_commit(pTHX_ scan_data_t *data) +S_scan_commit(pTHX_ scan_data_t *data) { dTHR; STRLEN l = CHR_SVLEN(data->last_found); @@ -209,7 +209,7 @@ scan_commit(pTHX_ scan_data_t *data) to the position after last scanned or to NULL. */ STATIC I32 -study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags) +S_study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags) /* scanp: Start here (read-write). */ /* deltap: Write maxlen-minlen here. */ /* last: Stop before this one. */ @@ -461,7 +461,7 @@ study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data if (ckWARN(WARN_UNSAFE) && (minnext + deltanext == 0) && !(data->flags & (SF_HAS_PAR|SF_IN_PAR)) && maxcount <= REG_INFTY/3) /* Complement check for big count */ - warner(WARN_UNSAFE, "Strange *+?{} on zero-length expression"); + Perl_warner(aTHX_ WARN_UNSAFE, "Strange *+?{} on zero-length expression"); min += minnext * mincount; is_inf_internal |= (maxcount == REG_INFTY && (minnext + deltanext) > 0 @@ -706,7 +706,7 @@ study_chunk(pTHX_ regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data } STATIC I32 -add_data(pTHX_ I32 n, char *s) +S_add_data(pTHX_ I32 n, char *s) { dTHR; if (PL_regcomp_rx->data) { @@ -1044,7 +1044,7 @@ Perl_pregcomp(pTHX_ char *exp, char *xend, PMOP *pm) * follows makes it hard to avoid. */ STATIC regnode * -reg(pTHX_ I32 paren, I32 *flagp) +S_reg(pTHX_ I32 paren, I32 *flagp) /* paren: Parenthesized? 0=top, 1=(, inside: changed to letter. */ { dTHR; @@ -1373,7 +1373,7 @@ reg(pTHX_ I32 paren, I32 *flagp) * Implements the concatenation operator. */ STATIC regnode * -regbranch(pTHX_ I32 *flagp, I32 first) +S_regbranch(pTHX_ I32 *flagp, I32 first) { dTHR; register regnode *ret; @@ -1439,7 +1439,7 @@ regbranch(pTHX_ I32 *flagp, I32 first) * endmarker role is not redundant. */ STATIC regnode * -regpiece(pTHX_ I32 *flagp) +S_regpiece(pTHX_ I32 *flagp) { dTHR; register regnode *ret; @@ -1564,7 +1564,7 @@ regpiece(pTHX_ I32 *flagp) } nest_check: if (ckWARN(WARN_UNSAFE) && !SIZE_ONLY && !(flags&HASWIDTH) && max > REG_INFTY/3) { - warner(WARN_UNSAFE, "%.*s matches null string many times", + Perl_warner(aTHX_ WARN_UNSAFE, "%.*s matches null string many times", PL_regcomp_parse - origparse, origparse); } @@ -1590,7 +1590,7 @@ regpiece(pTHX_ I32 *flagp) * [Yes, it is worth fixing, some scripts can run twice the speed.] */ STATIC regnode * -regatom(pTHX_ I32 *flagp) +S_regatom(pTHX_ I32 *flagp) { dTHR; register regnode *ret = 0; @@ -1985,7 +1985,7 @@ tryagain: /* FALL THROUGH */ default: if (!SIZE_ONLY && ckWARN(WARN_UNSAFE) && isALPHA(*p)) - warner(WARN_UNSAFE, + Perl_warner(aTHX_ WARN_UNSAFE, "/%.127s/: Unrecognized escape \\%c passed through", PL_regprecomp, *p); @@ -2058,7 +2058,7 @@ tryagain: } STATIC char * -regwhite(pTHX_ char *p, char *e) +S_regwhite(pTHX_ char *p, char *e) { while (p < e) { if (isSPACE(*p)) @@ -2076,7 +2076,7 @@ regwhite(pTHX_ char *p, char *e) /* parse POSIX character classes like [[:foo:]] */ STATIC char* -regpposixcc(pTHX_ I32 value) +S_regpposixcc(pTHX_ I32 value) { dTHR; char *posixcc = 0; @@ -2102,7 +2102,7 @@ regpposixcc(pTHX_ I32 value) * The text between e.g. [: and :] would start * at s + 1 and stop at regcomp_parse - 2. */ if (ckWARN(WARN_UNSAFE) && !SIZE_ONLY) - warner(WARN_UNSAFE, + Perl_warner(aTHX_ WARN_UNSAFE, "Character class syntax [%c %c] is reserved for future extensions", c, c); PL_regcomp_parse++; /* skip over the ending ] */ posixcc = s + 1; @@ -2118,7 +2118,7 @@ regpposixcc(pTHX_ I32 value) } STATIC regnode * -regclass(pTHX) +S_regclass(pTHX) { dTHR; register char *opnd, *s; @@ -2316,7 +2316,7 @@ regclass(pTHX) } STATIC regnode * -regclassutf8(pTHX) +S_regclassutf8(pTHX) { register char *opnd, *e; register U32 value; @@ -2362,7 +2362,7 @@ regclassutf8(pTHX) if (LOC) flags |= ANYOF_ALNUML; - sv_catpvf(listsv, "+utf8::IsAlnum\n"); + Perl_sv_catpvf(aTHX_ listsv, "+utf8::IsAlnum\n"); } lastvalue = 123456; continue; @@ -2371,7 +2371,7 @@ regclassutf8(pTHX) if (LOC) flags |= ANYOF_NALNUML; - sv_catpvf(listsv, + Perl_sv_catpvf(aTHX_ listsv, "-utf8::IsAlpha\n-utf8::IsDigit\n0000\t%04x\n%04x\tffff\n", '_' - 1, '_' + 1); @@ -2382,7 +2382,7 @@ regclassutf8(pTHX) if (!SIZE_ONLY) { if (LOC) flags |= ANYOF_SPACEL; - sv_catpvf(listsv, "+utf8::IsSpace\n"); + Perl_sv_catpvf(aTHX_ listsv, "+utf8::IsSpace\n"); if (!PL_utf8_space) is_utf8_space((U8*)" "); } @@ -2392,7 +2392,7 @@ regclassutf8(pTHX) if (!SIZE_ONLY) { if (LOC) flags |= ANYOF_NSPACEL; - sv_catpvf(listsv, + Perl_sv_catpvf(aTHX_ listsv, "!utf8::IsSpace\n"); if (!PL_utf8_space) is_utf8_space((U8*)" "); @@ -2401,13 +2401,13 @@ regclassutf8(pTHX) continue; case 'd': if (!SIZE_ONLY) { - sv_catpvf(listsv, "+utf8::IsDigit\n"); + Perl_sv_catpvf(aTHX_ listsv, "+utf8::IsDigit\n"); } lastvalue = 123456; continue; case 'D': if (!SIZE_ONLY) { - sv_catpvf(listsv, + Perl_sv_catpvf(aTHX_ listsv, "!utf8::IsDigit\n"); } lastvalue = 123456; @@ -2426,9 +2426,9 @@ regclassutf8(pTHX) } if (!SIZE_ONLY) { if (value == 'p') - sv_catpvf(listsv, "+utf8::%.*s\n", n, PL_regcomp_parse); + Perl_sv_catpvf(aTHX_ listsv, "+utf8::%.*s\n", n, PL_regcomp_parse); else - sv_catpvf(listsv, + Perl_sv_catpvf(aTHX_ listsv, "!utf8::%.*s\n", n, PL_regcomp_parse); } PL_regcomp_parse = e + 1; @@ -2483,7 +2483,7 @@ regclassutf8(pTHX) if (lastvalue > value) FAIL("invalid [] range in regexp"); if (!SIZE_ONLY) - sv_catpvf(listsv, "%04x\t%04x\n", lastvalue, value); + Perl_sv_catpvf(aTHX_ listsv, "%04x\t%04x\n", lastvalue, value); lastvalue = value; range = 0; } @@ -2496,7 +2496,7 @@ regclassutf8(pTHX) continue; /* do it next time */ } if (!SIZE_ONLY) - sv_catpvf(listsv, "%04x\n", value); + Perl_sv_catpvf(aTHX_ listsv, "%04x\n", value); } } @@ -2515,7 +2515,7 @@ regclassutf8(pTHX) } STATIC char* -nextchar(pTHX) +S_nextchar(pTHX) { dTHR; char* retval = PL_regcomp_parse++; @@ -2548,7 +2548,7 @@ nextchar(pTHX) - reg_node - emit a node */ STATIC regnode * /* Location. */ -reg_node(pTHX_ U8 op) +S_reg_node(pTHX_ U8 op) { dTHR; register regnode *ret; @@ -2573,7 +2573,7 @@ reg_node(pTHX_ U8 op) - reganode - emit a node with an argument */ STATIC regnode * /* Location. */ -reganode(pTHX_ U8 op, U32 arg) +S_reganode(pTHX_ U8 op, U32 arg) { dTHR; register regnode *ret; @@ -2598,7 +2598,7 @@ reganode(pTHX_ U8 op, U32 arg) - regc - emit (if appropriate) a Unicode character */ STATIC void -reguni(pTHX_ UV uv, char* s, I32* lenp) +S_reguni(pTHX_ UV uv, char* s, I32* lenp) { dTHR; if (SIZE_ONLY) { @@ -2614,7 +2614,7 @@ reguni(pTHX_ UV uv, char* s, I32* lenp) - regc - emit (if appropriate) a byte of code */ STATIC void -regc(pTHX_ U8 b, char* s) +S_regc(pTHX_ U8 b, char* s) { dTHR; if (!SIZE_ONLY) @@ -2627,7 +2627,7 @@ regc(pTHX_ U8 b, char* s) * Means relocating the operand. */ STATIC void -reginsert(pTHX_ U8 op, regnode *opnd) +S_reginsert(pTHX_ U8 op, regnode *opnd) { dTHR; register regnode *src; @@ -2658,7 +2658,7 @@ reginsert(pTHX_ U8 op, regnode *opnd) - regtail - set the next-pointer at the end of a node chain of p to val. */ STATIC void -regtail(pTHX_ regnode *p, regnode *val) +S_regtail(pTHX_ regnode *p, regnode *val) { dTHR; register regnode *scan; @@ -2689,7 +2689,7 @@ regtail(pTHX_ regnode *p, regnode *val) - regoptail - regtail on operand of first argument; nop if operandless */ STATIC void -regoptail(pTHX_ regnode *p, regnode *val) +S_regoptail(pTHX_ regnode *p, regnode *val) { dTHR; /* "Operandless" and "op != BRANCH" are synonymous in practice. */ @@ -2709,7 +2709,7 @@ regoptail(pTHX_ regnode *p, regnode *val) - regcurly - a little FSA that accepts {\d+,?\d*} */ STATIC I32 -regcurly(pTHX_ register char *s) +S_regcurly(pTHX_ register char *s) { if (*s++ != '{') return FALSE; @@ -2728,7 +2728,7 @@ regcurly(pTHX_ register char *s) STATIC regnode * -dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l) +S_dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l) { #ifdef DEBUGGING register char op = EXACT; /* Arbitrary non-END op. */ @@ -2881,18 +2881,18 @@ Perl_regprop(pTHX_ SV *sv, regnode *o) k = PL_regkind[(U8)OP(o)]; if (k == EXACT) - sv_catpvf(sv, " <%s%s%s>", PL_colors[0], OPERAND(o) + 1, PL_colors[1]); + Perl_sv_catpvf(aTHX_ sv, " <%s%s%s>", PL_colors[0], OPERAND(o) + 1, PL_colors[1]); else if (k == CURLY) { if (OP(o) == CURLYM || OP(o) == CURLYN) - sv_catpvf(sv, "[%d]", o->flags); /* Parenth number */ - sv_catpvf(sv, " {%d,%d}", ARG1(o), ARG2(o)); + Perl_sv_catpvf(aTHX_ sv, "[%d]", o->flags); /* Parenth number */ + Perl_sv_catpvf(aTHX_ sv, " {%d,%d}", ARG1(o), ARG2(o)); } else if (k == REF || k == OPEN || k == CLOSE || k == GROUPP ) - sv_catpvf(sv, "%d", ARG(o)); /* Parenth number */ + Perl_sv_catpvf(aTHX_ sv, "%d", ARG(o)); /* Parenth number */ else if (k == LOGICAL) - sv_catpvf(sv, "[%d]", ARG(o)); /* 2: embedded, otherwise 1 */ + Perl_sv_catpvf(aTHX_ sv, "[%d]", ARG(o)); /* 2: embedded, otherwise 1 */ else if (k == BRANCHJ && (OP(o) == UNLESSM || OP(o) == IFMATCH)) - sv_catpvf(sv, "[-%d]", o->flags); + Perl_sv_catpvf(aTHX_ sv, "[-%d]", o->flags); #endif /* DEBUGGING */ } @@ -2929,7 +2929,7 @@ Perl_pregfree(pTHX_ struct regexp *r) break; case 'o': if (new_comppad == NULL) - croak("panic: pregfree comppad"); + Perl_croak(aTHX_ "panic: pregfree comppad"); old_comppad = PL_comppad; old_curpad = PL_curpad; PL_comppad = new_comppad; @@ -2977,7 +2977,7 @@ Perl_regnext(pTHX_ register regnode *p) } STATIC void -re_croak2(pTHX_ const char* pat1,const char* pat2,...) +S_re_croak2(pTHX_ const char* pat1,const char* pat2,...) { va_list args; STRLEN l1 = strlen(pat1); @@ -3007,7 +3007,7 @@ re_croak2(pTHX_ const char* pat1,const char* pat2,...) l1 = 512; Copy(message, buf, l1 , char); buf[l1] = '\0'; /* Overwrite \n */ - croak("%s", buf); + Perl_croak(aTHX_ "%s", buf); } /* XXX Here's a total kludge. But we need to re-enter for swash routines. */ diff --git a/regcomp.h b/regcomp.h index 1538f8a..5097d97 100644 --- a/regcomp.h +++ b/regcomp.h @@ -187,17 +187,17 @@ struct regnode_2 { #endif /* lint */ #define FAIL(m) \ - STMT_START { \ - if (!SIZE_ONLY) \ - SAVEDESTRUCTOR(clear_re,(void*)PL_regcomp_rx); \ - croak ("/%.127s/: %s", PL_regprecomp,m); \ + STMT_START { \ + if (!SIZE_ONLY) \ + SAVEDESTRUCTOR(S_clear_re,(void*)PL_regcomp_rx); \ + Perl_croak(aTHX_ "/%.127s/: %s", PL_regprecomp,m); \ } STMT_END #define FAIL2(pat,m) \ - STMT_START { \ - if (!SIZE_ONLY) \ - SAVEDESTRUCTOR(clear_re,(void*)PL_regcomp_rx); \ - re_croak2("/%.127s/: ",pat,PL_regprecomp,m); \ + STMT_START { \ + if (!SIZE_ONLY) \ + SAVEDESTRUCTOR(S_clear_re,(void*)PL_regcomp_rx); \ + S_re_croak2(aTHX_ "/%.127s/: ",pat,PL_regprecomp,m); \ } STMT_END #define EXTRA_SIZE(guy) ((sizeof(guy)-1)/sizeof(struct regnode)) diff --git a/regexec.c b/regexec.c index d1f8189..833e4bd 100644 --- a/regexec.c +++ b/regexec.c @@ -110,7 +110,7 @@ #define HOPMAYBEc(pos,off) ((char*)HOPMAYBE(pos,off)) STATIC CHECKPOINT -regcppush(pTHX_ I32 parenfloor) +S_regcppush(pTHX_ I32 parenfloor) { dTHR; int retval = PL_savestack_ix; @@ -143,7 +143,7 @@ regcppush(pTHX_ I32 parenfloor) lastcp, PL_savestack_ix) : 0); regcpblow(lastcp) STATIC char * -regcppop(pTHX) +S_regcppop(pTHX) { dTHR; I32 i = SSPOPINT; @@ -187,7 +187,7 @@ regcppop(pTHX) } STATIC char * -regcp_set_to(pTHX_ I32 ss) +S_regcp_set_to(pTHX_ I32 ss) { dTHR; I32 tmp = PL_savestack_ix; @@ -230,7 +230,7 @@ Perl_pregexec(pTHX_ register regexp *prog, char *stringarg, register char *stren } STATIC void -cache_re(pTHX_ regexp *prog) +S_cache_re(pTHX_ regexp *prog) { dTHR; PL_regprecomp = prog->precomp; /* Needed for FAIL. */ @@ -243,7 +243,7 @@ cache_re(pTHX_ regexp *prog) } STATIC void -restore_pos(pTHX_ void *arg) +S_restore_pos(pTHX_ void *arg) { dTHR; if (PL_reg_eval_set) { @@ -297,7 +297,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char * /* Be paranoid... */ if (prog == NULL || startpos == NULL) { - croak("NULL regexp parameter"); + Perl_croak(aTHX_ "NULL regexp parameter"); return 0; } @@ -314,7 +314,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char * /* Check validity of program. */ if (UCHARAT(prog->program) != REG_MAGIC) { - croak("corrupted regexp program"); + Perl_croak(aTHX_ "corrupted regexp program"); } PL_reg_flags = 0; @@ -1030,7 +1030,7 @@ phooey: - regtry - try match at specific point */ STATIC I32 /* 0 failure, 1 success */ -regtry(pTHX_ regexp *prog, char *startpos) +S_regtry(pTHX_ regexp *prog, char *startpos) { dTHR; register I32 i; @@ -1071,7 +1071,7 @@ regtry(pTHX_ regexp *prog, char *startpos) } PL_reg_magic = mg; PL_reg_oldpos = mg->mg_len; - SAVEDESTRUCTOR(restore_pos, 0); + SAVEDESTRUCTOR(S_restore_pos, 0); } if (!PL_reg_curpm) New(22,PL_reg_curpm, 1, PMOP); @@ -1142,7 +1142,7 @@ regtry(pTHX_ regexp *prog, char *startpos) * advantage of machines that use a register save mask on subroutine entry. */ STATIC I32 /* 0 failure, 1 success */ -regmatch(pTHX_ regnode *prog) +S_regmatch(pTHX_ regnode *prog) { dTHR; register regnode *scan; /* Current node. */ @@ -1676,7 +1676,7 @@ regmatch(pTHX_ regnode *prog) PL_curpad = AvARRAY((AV*)PL_regdata->data[n + 2]); PL_regendp[0] = PL_reg_magic->mg_len = locinput - PL_bostr; - CALLRUNOPS(); /* Scalar context. */ + CALLRUNOPS(aTHX); /* Scalar context. */ SPAGAIN; ret = POPs; PUTBACK; @@ -1711,7 +1711,7 @@ regmatch(pTHX_ regnode *prog) I32 onpar = PL_regnpar; pm.op_pmflags = 0; - re = CALLREGCOMP(t, t + len, &pm); + re = CALLREGCOMP(aTHX_ t, t + len, &pm); if (!(SvFLAGS(ret) & (SVs_TEMP | SVs_PADTMP | SVf_READONLY))) sv_magic(ret,(SV*)ReREFCNT_inc(re),'r',0,0); @@ -1905,7 +1905,7 @@ regmatch(pTHX_ regnode *prog) if (ckWARN(WARN_UNSAFE) && n >= REG_INFTY && !(PL_reg_flags & RF_warned)) { PL_reg_flags |= RF_warned; - warner(WARN_UNSAFE, "%s limit (%d) exceeded", + Perl_warner(aTHX_ WARN_UNSAFE, "%s limit (%d) exceeded", "Complex regular subexpression recursion", REG_INFTY - 1); } @@ -1962,7 +1962,7 @@ regmatch(pTHX_ regnode *prog) if (ckWARN(WARN_UNSAFE) && n >= REG_INFTY && !(PL_reg_flags & RF_warned)) { PL_reg_flags |= RF_warned; - warner(WARN_UNSAFE, "%s limit (%d) exceeded", + Perl_warner(aTHX_ WARN_UNSAFE, "%s limit (%d) exceeded", "Complex regular subexpression recursion", REG_INFTY - 1); } @@ -2454,7 +2454,7 @@ regmatch(pTHX_ regnode *prog) default: PerlIO_printf(PerlIO_stderr(), "%lx %d\n", (unsigned long)scan, OP(scan)); - croak("regexp memory corruption"); + Perl_croak(aTHX_ "regexp memory corruption"); } scan = next; } @@ -2463,7 +2463,7 @@ regmatch(pTHX_ regnode *prog) * We get here only if there's trouble -- normally "case END" is * the terminating point. */ - croak("corrupted regexp pointers"); + Perl_croak(aTHX_ "corrupted regexp pointers"); /*NOTREACHED*/ sayNO; @@ -2489,7 +2489,7 @@ no: * rather than incrementing count on every character. [Er, except utf8.]] */ STATIC I32 -regrepeat(pTHX_ regnode *p, I32 max) +S_regrepeat(pTHX_ regnode *p, I32 max) { dTHR; register char *scan; @@ -2703,7 +2703,7 @@ regrepeat(pTHX_ regnode *p, I32 max) */ STATIC I32 -regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp) +S_regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp) { dTHR; register char *scan; @@ -2754,7 +2754,7 @@ regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp) */ STATIC bool -reginclass(pTHX_ register char *p, register I32 c) +S_reginclass(pTHX_ register char *p, register I32 c) { dTHR; char flags = *p; @@ -2791,7 +2791,7 @@ reginclass(pTHX_ register char *p, register I32 c) } STATIC bool -reginclassutf8(pTHX_ regnode *f, U8 *p) +S_reginclassutf8(pTHX_ regnode *f, U8 *p) { dTHR; char flags = ARG1(f); @@ -2829,7 +2829,7 @@ reginclassutf8(pTHX_ regnode *f, U8 *p) } STATIC U8 * -reghop(pTHX_ U8 *s, I32 off) +S_reghop(pTHX_ U8 *s, I32 off) { dTHR; if (off >= 0) { @@ -2851,7 +2851,7 @@ reghop(pTHX_ U8 *s, I32 off) } STATIC U8 * -reghopmaybe(pTHX_ U8* s, I32 off) +S_reghopmaybe(pTHX_ U8* s, I32 off) { dTHR; if (off >= 0) { diff --git a/run.c b/run.c index 36fffd7..9d3189d 100644 --- a/run.c +++ b/run.c @@ -40,7 +40,7 @@ Perl_runops_debug(pTHX) #ifdef DEBUGGING dTHR; if (!PL_op) { - warn("NULL OP IN RUN"); + Perl_warn(aTHX_ "NULL OP IN RUN"); return 0; } @@ -68,7 +68,7 @@ Perl_debop(pTHX_ OP *o) #ifdef DEBUGGING SV *sv; STRLEN n_a; - deb("%s", PL_op_name[o->op_type]); + Perl_deb(aTHX_ "%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,7 +105,7 @@ Perl_watch(pTHX_ char **addr) } STATIC void -debprof(pTHX_ OP *o) +S_debprof(pTHX_ OP *o) { #ifdef DEBUGGING if (!PL_profiledata) diff --git a/scope.c b/scope.c index 58272e1..f87689e 100644 --- a/scope.c +++ b/scope.c @@ -25,14 +25,14 @@ Perl_default_protect(pTHX_ int *excpt, protect_body_t body, ...) int ex; void *ret; - DEBUG_l(deb("Setting up local jumplevel %p, was %p\n", + DEBUG_l(Perl_deb(aTHX_ "Setting up local jumplevel %p, was %p\n", &cur_env, PL_top_env)); JMPENV_PUSH(ex); if (ex) ret = NULL; else { va_start(args, body); - ret = CALL_FPTR(body)(args); + ret = CALL_FPTR(body)(aTHX_ args); va_end(args); } *excpt = ex; @@ -189,7 +189,7 @@ Perl_free_tmps(pTHX) } STATIC SV * -save_scalar_at(pTHX_ SV **sptr) +S_save_scalar_at(pTHX_ SV **sptr) { dTHR; register SV *sv; @@ -435,7 +435,7 @@ Perl_save_threadsv(pTHX_ PADOFFSET i) save_svref(svp); return svp; #else - croak("panic: save_threadsv called in non-threaded perl"); + Perl_croak(aTHX_ "panic: save_threadsv called in non-threaded perl"); return 0; #endif /* USE_THREADS */ } @@ -534,11 +534,7 @@ Perl_save_list(pTHX_ register SV **sarg, I32 maxsarg) } void -#ifdef PERL_OBJECT -Perl_save_destructor(pTHX_ DESTRUCTORFUNC f, void* p) -#else -Perl_save_destructor(pTHX_ void (*f) (void *), void *p) -#endif +Perl_save_destructor(pTHX_ DESTRUCTORFUNC_t f, void* p) { dTHR; SSCHECK(3); @@ -611,7 +607,7 @@ Perl_leave_scope(pTHX_ I32 base) I32 i; if (base < -1) - croak("panic: corrupt saved stack index"); + Perl_croak(aTHX_ "panic: corrupt saved stack index"); while (PL_savestack_ix > base) { switch (SSPOPINT) { case SAVEt_ITEM: /* normal string */ @@ -795,7 +791,7 @@ Perl_leave_scope(pTHX_ I32 base) hv_clear((HV*)sv); break; case SVt_PVCV: - croak("panic: leave_scope pad code"); + Perl_croak(aTHX_ "panic: leave_scope pad code"); case SVt_RV: case SVt_IV: case SVt_NV: @@ -828,7 +824,7 @@ Perl_leave_scope(pTHX_ I32 base) break; case SAVEt_DESTRUCTOR: ptr = SSPOPPTR; - CALLDESTRUCTOR(ptr); + CALLDESTRUCTOR(aTHX_ ptr); break; case SAVEt_REGCONTEXT: case SAVEt_ALLOC: @@ -887,7 +883,7 @@ Perl_leave_scope(pTHX_ I32 base) *(I32*)&PL_hints = (I32)SSPOPINT; break; default: - croak("panic: leave_scope inconsistency"); + Perl_croak(aTHX_ "panic: leave_scope inconsistency"); } } } diff --git a/scope.h b/scope.h index 01fc083..7ebccf4 100644 --- a/scope.h +++ b/scope.h @@ -48,12 +48,12 @@ #define ENTER \ STMT_START { \ push_scope(); \ - DEBUG_l(WITH_THR(deb("ENTER scope %ld at %s:%d\n", \ + DEBUG_l(WITH_THR(Perl_deb(aTHX_ "ENTER scope %ld at %s:%d\n", \ PL_scopestack_ix, __FILE__, __LINE__))); \ } STMT_END #define LEAVE \ STMT_START { \ - DEBUG_l(WITH_THR(deb("LEAVE scope %ld at %s:%d\n", \ + DEBUG_l(WITH_THR(Perl_deb(aTHX_ "LEAVE scope %ld at %s:%d\n", \ PL_scopestack_ix, __FILE__, __LINE__))); \ pop_scope(); \ } STMT_END @@ -82,9 +82,9 @@ #define SAVEDELETE(h,k,l) \ save_delete(SOFT_CAST(HV*)(h), SOFT_CAST(char*)(k), (I32)(l)) #ifdef PERL_OBJECT -#define CALLDESTRUCTOR(p) this->*SSPOPDPTR(p) +#define CALLDESTRUCTOR this->*SSPOPDPTR #else -#define CALLDESTRUCTOR(p) (*SSPOPDPTR)(aTHX_ p) +#define CALLDESTRUCTOR (*SSPOPDPTR) #endif #define SAVEDESTRUCTOR(f,p) \ save_destructor((DESTRUCTORFUNC_t)(FUNC_NAME_TO_PTR(f)), \ @@ -156,8 +156,8 @@ typedef struct jmpenv JMPENV; * Function that catches/throws, and its callback for the * body of protected processing. */ -typedef void *(CPERLscope(*protect_body_t)) (va_list); -typedef void *(CPERLscope(*protect_proc_t)) (int *, protect_body_t, ...); +typedef void *(CPERLscope(*protect_body_t)) (pTHX_ va_list); +typedef void *(CPERLscope(*protect_proc_t)) (pTHX_ int *, protect_body_t, ...); /* * How to build the first jmpenv. diff --git a/sv.c b/sv.c index abb2da7..889d9f9 100644 --- a/sv.c +++ b/sv.c @@ -82,7 +82,7 @@ static I32 registry_size; if (++i >= registry_size) \ i = 0; \ if (i == h) \ - die("SV registry bug"); \ + Perl_die(aTHX_ "SV registry bug"); \ } \ registry[i] = (b); \ } STMT_END @@ -91,7 +91,7 @@ static I32 registry_size; #define REG_REMOVE(sv) REG_REPLACE(sv,sv,Nullsv) STATIC void -reg_add(pTHX_ SV *sv) +S_reg_add(pTHX_ SV *sv) { if (PL_sv_count >= (registry_size >> 1)) { @@ -118,14 +118,14 @@ reg_add(pTHX_ SV *sv) } STATIC void -reg_remove(pTHX_ SV *sv) +S_reg_remove(pTHX_ SV *sv) { REG_REMOVE(sv); --PL_sv_count; } STATIC void -visit(pTHX_ SVFUNC_t f) +S_visit(pTHX_ SVFUNC_t f) { I32 i; @@ -191,7 +191,7 @@ Perl_sv_add_arena(pTHX_ char *ptr, U32 size, U32 flags) } STMT_END STATIC void -del_sv(pTHX_ SV *p) +S_del_sv(pTHX_ SV *p) { if (PL_debug & 32768) { SV* sva; @@ -205,7 +205,7 @@ del_sv(pTHX_ SV *p) ok = 1; } if (!ok) { - warn("Attempt to free non-arena SV: 0x%lx", (unsigned long)p); + Perl_warn(aTHX_ "Attempt to free non-arena SV: 0x%lx", (unsigned long)p); return; } } @@ -247,7 +247,7 @@ Perl_sv_add_arena(pTHX_ char *ptr, U32 size, U32 flags) /* sv_mutex must be held while calling more_sv() */ STATIC SV* -more_sv(pTHX) +S_more_sv(pTHX) { register SV* sv; @@ -265,7 +265,7 @@ more_sv(pTHX) } STATIC void -visit(pTHX_ SVFUNC_t f) +S_visit(pTHX_ SVFUNC_t f) { SV* sva; SV* sv; @@ -275,7 +275,7 @@ visit(pTHX_ SVFUNC_t f) svend = &sva[SvREFCNT(sva)]; for (sv = sva + 1; sv < svend; ++sv) { if (SvTYPE(sv) != SVTYPEMASK) - (FCALL)(sv); + (FCALL)(aTHX_ sv); } } } @@ -283,7 +283,7 @@ visit(pTHX_ SVFUNC_t f) #endif /* PURIFY */ STATIC void -do_report_used(pTHX_ SV *sv) +S_do_report_used(pTHX_ SV *sv) { if (SvTYPE(sv) != SVTYPEMASK) { /* XXX Perhaps this ought to go to Perl_debug_log, if DEBUGGING. */ @@ -295,11 +295,11 @@ do_report_used(pTHX_ SV *sv) void Perl_sv_report_used(pTHX) { - visit(FUNC_NAME_TO_PTR(do_report_used)); + visit(FUNC_NAME_TO_PTR(S_do_report_used)); } STATIC void -do_clean_objs(pTHX_ SV *sv) +S_do_clean_objs(pTHX_ SV *sv) { SV* rv; @@ -315,7 +315,7 @@ do_clean_objs(pTHX_ SV *sv) #ifndef DISABLE_DESTRUCTOR_KLUDGE STATIC void -do_clean_named_objs(pTHX_ SV *sv) +S_do_clean_named_objs(pTHX_ SV *sv) { if (SvTYPE(sv) == SVt_PVGV) { if ( SvOBJECT(GvSV(sv)) || @@ -335,16 +335,16 @@ void Perl_sv_clean_objs(pTHX) { PL_in_clean_objs = TRUE; - visit(FUNC_NAME_TO_PTR(do_clean_objs)); + visit(FUNC_NAME_TO_PTR(S_do_clean_objs)); #ifndef DISABLE_DESTRUCTOR_KLUDGE /* some barnacles may yet remain, clinging to typeglobs */ - visit(FUNC_NAME_TO_PTR(do_clean_named_objs)); + visit(FUNC_NAME_TO_PTR(S_do_clean_named_objs)); #endif PL_in_clean_objs = FALSE; } STATIC void -do_clean_all(pTHX_ SV *sv) +S_do_clean_all(pTHX_ SV *sv) { DEBUG_D((PerlIO_printf(Perl_debug_log, "Cleaning loops: SV at 0x%lx\n", sv) );) SvFLAGS(sv) |= SVf_BREAK; @@ -355,7 +355,7 @@ void Perl_sv_clean_all(pTHX) { PL_in_clean_all = TRUE; - visit(FUNC_NAME_TO_PTR(do_clean_all)); + visit(FUNC_NAME_TO_PTR(S_do_clean_all)); PL_in_clean_all = FALSE; } @@ -386,7 +386,7 @@ Perl_sv_free_arenas(pTHX) } STATIC XPVIV* -new_xiv(pTHX) +S_new_xiv(pTHX) { IV* xiv; LOCK_SV_MUTEX; @@ -402,7 +402,7 @@ new_xiv(pTHX) } STATIC void -del_xiv(pTHX_ XPVIV *p) +S_del_xiv(pTHX_ XPVIV *p) { IV* xiv = (IV*)((char*)(p) + STRUCT_OFFSET(XPVIV, xiv_iv)); LOCK_SV_MUTEX; @@ -412,7 +412,7 @@ del_xiv(pTHX_ XPVIV *p) } STATIC void -more_xiv(pTHX) +S_more_xiv(pTHX) { register IV* xiv; register IV* xivend; @@ -433,7 +433,7 @@ more_xiv(pTHX) } STATIC XPVNV* -new_xnv(pTHX) +S_new_xnv(pTHX) { double* xnv; LOCK_SV_MUTEX; @@ -446,7 +446,7 @@ new_xnv(pTHX) } STATIC void -del_xnv(pTHX_ XPVNV *p) +S_del_xnv(pTHX_ XPVNV *p) { double* xnv = (double*)((char*)(p) + STRUCT_OFFSET(XPVNV, xnv_nv)); LOCK_SV_MUTEX; @@ -456,7 +456,7 @@ del_xnv(pTHX_ XPVNV *p) } STATIC void -more_xnv(pTHX) +S_more_xnv(pTHX) { register double* xnv; register double* xnvend; @@ -472,7 +472,7 @@ more_xnv(pTHX) } STATIC XRV* -new_xrv(pTHX) +S_new_xrv(pTHX) { XRV* xrv; LOCK_SV_MUTEX; @@ -485,7 +485,7 @@ new_xrv(pTHX) } STATIC void -del_xrv(pTHX_ XRV *p) +S_del_xrv(pTHX_ XRV *p) { LOCK_SV_MUTEX; p->xrv_rv = (SV*)PL_xrv_root; @@ -494,7 +494,7 @@ del_xrv(pTHX_ XRV *p) } STATIC void -more_xrv(pTHX) +S_more_xrv(pTHX) { register XRV* xrv; register XRV* xrvend; @@ -509,7 +509,7 @@ more_xrv(pTHX) } STATIC XPV* -new_xpv(pTHX) +S_new_xpv(pTHX) { XPV* xpv; LOCK_SV_MUTEX; @@ -522,7 +522,7 @@ new_xpv(pTHX) } STATIC void -del_xpv(pTHX_ XPV *p) +S_del_xpv(pTHX_ XPV *p) { LOCK_SV_MUTEX; p->xpv_pv = (char*)PL_xpv_root; @@ -531,7 +531,7 @@ del_xpv(pTHX_ XPV *p) } STATIC void -more_xpv(pTHX) +S_more_xpv(pTHX) { register XPV* xpv; register XPV* xpvend; @@ -582,7 +582,7 @@ more_xpv(pTHX) # define my_safefree(s) safefree(s) #else STATIC void* -my_safemalloc(pTHX_ MEM_SIZE size) +S_my_safemalloc(pTHX_ MEM_SIZE size) { char *p; New(717, p, size, char); @@ -733,12 +733,12 @@ Perl_sv_upgrade(pTHX_ register SV *sv, U32 mt) del_XPVMG(SvANY(sv)); break; default: - croak("Can't upgrade that kind of scalar"); + Perl_croak(aTHX_ "Can't upgrade that kind of scalar"); } switch (mt) { case SVt_NULL: - croak("Can't upgrade to undef"); + Perl_croak(aTHX_ "Can't upgrade to undef"); case SVt_IV: SvANY(sv) = new_XIV(); SvIVX(sv) = iv; @@ -985,7 +985,7 @@ Perl_sv_setiv(pTHX_ register SV *sv, IV i) case SVt_PVIO: { dTHR; - croak("Can't coerce %s to integer in %s", sv_reftype(sv,0), + Perl_croak(aTHX_ "Can't coerce %s to integer in %s", sv_reftype(sv,0), PL_op_desc[PL_op->op_type]); } } @@ -1039,7 +1039,7 @@ Perl_sv_setnv(pTHX_ register SV *sv, double num) case SVt_PVIO: { dTHR; - croak("Can't coerce %s to number in %s", sv_reftype(sv,0), + Perl_croak(aTHX_ "Can't coerce %s to number in %s", sv_reftype(sv,0), PL_op_name[PL_op->op_type]); } } @@ -1056,7 +1056,7 @@ Perl_sv_setnv_mg(pTHX_ register SV *sv, double num) } STATIC void -not_a_number(pTHX_ SV *sv) +S_not_a_number(pTHX_ SV *sv) { dTHR; char tmpbuf[64]; @@ -1104,10 +1104,10 @@ not_a_number(pTHX_ SV *sv) *d = '\0'; if (PL_op) - warner(WARN_NUMERIC, "Argument \"%s\" isn't numeric in %s", tmpbuf, + Perl_warner(aTHX_ WARN_NUMERIC, "Argument \"%s\" isn't numeric in %s", tmpbuf, PL_op_name[PL_op->op_type]); else - warner(WARN_NUMERIC, "Argument \"%s\" isn't numeric", tmpbuf); + Perl_warner(aTHX_ WARN_NUMERIC, "Argument \"%s\" isn't numeric", tmpbuf); } /* the number can be converted to _integer_ with atol() */ @@ -1137,7 +1137,7 @@ Perl_sv_2iv(pTHX_ register SV *sv) if (!(SvFLAGS(sv) & SVs_PADTMP)) { dTHR; if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); } return 0; } @@ -1158,7 +1158,7 @@ Perl_sv_2iv(pTHX_ register SV *sv) { dTHR; if (ckWARN(WARN_UNINITIALIZED)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); } return 0; } @@ -1251,7 +1251,7 @@ Perl_sv_2iv(pTHX_ register SV *sv) else { dTHR; if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing && !(SvFLAGS(sv) & SVs_PADTMP)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); if (SvTYPE(sv) < SVt_IV) /* Typically the caller expects that sv_any is not NULL now. */ sv_upgrade(sv, SVt_IV); @@ -1279,7 +1279,7 @@ Perl_sv_2uv(pTHX_ register SV *sv) if (!(SvFLAGS(sv) & SVs_PADTMP)) { dTHR; if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); } return 0; } @@ -1300,7 +1300,7 @@ Perl_sv_2uv(pTHX_ register SV *sv) { dTHR; if (ckWARN(WARN_UNINITIALIZED)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); } return 0; } @@ -1409,7 +1409,7 @@ Perl_sv_2uv(pTHX_ register SV *sv) if (!(SvFLAGS(sv) & SVs_PADTMP)) { dTHR; if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); } if (SvTYPE(sv) < SVt_IV) /* Typically the caller expects that sv_any is not NULL now. */ @@ -1448,7 +1448,7 @@ Perl_sv_2nv(pTHX_ register SV *sv) if (!(SvFLAGS(sv) & SVs_PADTMP)) { dTHR; if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); } return 0; } @@ -1475,7 +1475,7 @@ Perl_sv_2nv(pTHX_ register SV *sv) return (double)SvIVX(sv); } if (ckWARN(WARN_UNINITIALIZED)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); return 0.0; } } @@ -1505,7 +1505,7 @@ Perl_sv_2nv(pTHX_ register SV *sv) else { dTHR; if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing && !(SvFLAGS(sv) & SVs_PADTMP)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); if (SvTYPE(sv) < SVt_NV) /* Typically the caller expects that sv_any is not NULL now. */ sv_upgrade(sv, SVt_NV); @@ -1519,7 +1519,7 @@ Perl_sv_2nv(pTHX_ register SV *sv) } STATIC IV -asIV(pTHX_ SV *sv) +S_asIV(pTHX_ SV *sv) { I32 numtype = looks_like_number(sv); double d; @@ -1537,7 +1537,7 @@ asIV(pTHX_ SV *sv) } STATIC UV -asUV(pTHX_ SV *sv) +S_asUV(pTHX_ SV *sv) { I32 numtype = looks_like_number(sv); @@ -1734,7 +1734,7 @@ Perl_sv_2pv(pTHX_ register SV *sv, STRLEN *lp) if (!(SvFLAGS(sv) & SVs_PADTMP)) { dTHR; if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); } *lp = 0; return ""; @@ -1816,11 +1816,11 @@ Perl_sv_2pv(pTHX_ register SV *sv, STRLEN *lp) } tsv = NEWSV(0,0); if (SvOBJECT(sv)) - sv_setpvf(tsv, "%s=%s", HvNAME(SvSTASH(sv)), s); + Perl_sv_setpvf(aTHX_ tsv, "%s=%s", HvNAME(SvSTASH(sv)), s); else sv_setpv(tsv, s); /* XXXX 64-bit? */ - sv_catpvf(tsv, "(0x%lx)", (unsigned long)sv); + Perl_sv_catpvf(aTHX_ tsv, "(0x%lx)", (unsigned long)sv); goto tokensaveref; } *lp = strlen(s); @@ -1848,7 +1848,7 @@ Perl_sv_2pv(pTHX_ register SV *sv, STRLEN *lp) { dTHR; if (ckWARN(WARN_UNINITIALIZED)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); } *lp = 0; return ""; @@ -1906,7 +1906,7 @@ Perl_sv_2pv(pTHX_ register SV *sv, STRLEN *lp) else { dTHR; if (ckWARN(WARN_UNINITIALIZED) && !PL_localizing && !(SvFLAGS(sv) & SVs_PADTMP)) - warner(WARN_UNINITIALIZED, PL_warn_uninit); + Perl_warner(aTHX_ WARN_UNINITIALIZED, PL_warn_uninit); *lp = 0; if (SvTYPE(sv) < SVt_PV) /* Typically the caller expects that sv_any is not NULL now. */ @@ -2106,10 +2106,10 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr) case SVt_PVCV: case SVt_PVIO: if (PL_op) - croak("Bizarre copy of %s in %s", sv_reftype(sstr, 0), + Perl_croak(aTHX_ "Bizarre copy of %s in %s", sv_reftype(sstr, 0), PL_op_name[PL_op->op_type]); else - croak("Bizarre copy of %s", sv_reftype(sstr, 0)); + Perl_croak(aTHX_ "Bizarre copy of %s", sv_reftype(sstr, 0)); break; case SVt_PVGV: @@ -2128,7 +2128,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr) /* ahem, death to those who redefine active sort subs */ else if (PL_curstackinfo->si_type == PERLSI_SORT && GvCV(dstr) && PL_sortcop == CvSTART(GvCV(dstr))) - croak("Can't redefine active sort subroutine %s", + Perl_croak(aTHX_ "Can't redefine active sort subroutine %s", GvNAME(dstr)); (void)SvOK_off(dstr); GvINTRO_off(dstr); /* one-shot flag */ @@ -2224,7 +2224,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr) * active sort subs */ if (PL_curstackinfo->si_type == PERLSI_SORT && PL_sortcop == CvSTART(cv)) - croak( + Perl_croak(aTHX_ "Can't redefine active sort subroutine %s", GvENAME((GV*)dstr)); if (ckWARN(WARN_REDEFINE) || (const_changed && const_sv)) { @@ -2232,7 +2232,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr) && HvNAME(GvSTASH(CvGV(cv))) && strEQ(HvNAME(GvSTASH(CvGV(cv))), "autouse"))) - warner(WARN_REDEFINE, const_sv ? + Perl_warner(aTHX_ WARN_REDEFINE, const_sv ? "Constant subroutine %s redefined" : "Subroutine %s redefined", GvENAME((GV*)dstr)); @@ -2370,7 +2370,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr) else { if (dtype == SVt_PVGV) { if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Undefined value assigned to typeglob"); + Perl_warner(aTHX_ WARN_UNSAFE, "Undefined value assigned to typeglob"); } else (void)SvOK_off(dstr); @@ -2475,7 +2475,7 @@ Perl_sv_force_normal(pTHX_ register SV *sv) if (SvREADONLY(sv)) { dTHR; if (PL_curcop != &PL_compiling) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); } if (SvROK(sv)) sv_unref(sv); @@ -2607,7 +2607,7 @@ Perl_sv_magic(pTHX_ register SV *sv, SV *obj, int how, const char *name, I32 nam if (SvREADONLY(sv)) { dTHR; if (PL_curcop != &PL_compiling && !strchr("gBf", how)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); } if (SvMAGICAL(sv) || (how == 't' && SvTYPE(sv) >= SVt_PVMG)) { if (SvMAGIC(sv) && (mg = mg_find(sv, how))) { @@ -2749,7 +2749,7 @@ Perl_sv_magic(pTHX_ register SV *sv, SV *obj, int how, const char *name, I32 nam SvRMAGICAL_on(sv); break; default: - croak("Don't know how to handle magic of type '%c'", how); + Perl_croak(aTHX_ "Don't know how to handle magic of type '%c'", how); } mg_magical(sv); if (SvGMAGICAL(sv)) @@ -2769,7 +2769,7 @@ Perl_sv_unmagic(pTHX_ SV *sv, int type) MGVTBL* vtbl = mg->mg_virtual; *mgp = mg->mg_moremagic; if (vtbl && (vtbl->svt_free != NULL)) - (VTBL->svt_free)(sv, mg); + (VTBL->svt_free)(aTHX_ sv, mg); if (mg->mg_ptr && mg->mg_type != 'g') if (mg->mg_len >= 0) Safefree(mg->mg_ptr); @@ -2797,11 +2797,11 @@ Perl_sv_rvweaken(pTHX_ SV *sv) if (!SvOK(sv)) /* let undefs pass */ return sv; if (!SvROK(sv)) - croak("Can't weaken a nonreference"); + Perl_croak(aTHX_ "Can't weaken a nonreference"); else if (SvWEAKREF(sv)) { dTHR; if (ckWARN(WARN_MISC)) - warner(WARN_MISC, "Reference is already weak"); + Perl_warner(aTHX_ WARN_MISC, "Reference is already weak"); return sv; } tsv = SvRV(sv); @@ -2812,7 +2812,7 @@ Perl_sv_rvweaken(pTHX_ SV *sv) } STATIC void -sv_add_backref(pTHX_ SV *tsv, SV *sv) +S_sv_add_backref(pTHX_ SV *tsv, SV *sv) { AV *av; MAGIC *mg; @@ -2827,7 +2827,7 @@ sv_add_backref(pTHX_ SV *tsv, SV *sv) } STATIC void -sv_del_backref(pTHX_ SV *sv) +S_sv_del_backref(pTHX_ SV *sv) { AV *av; SV **svp; @@ -2835,7 +2835,7 @@ sv_del_backref(pTHX_ SV *sv) SV *tsv = SvRV(sv); MAGIC *mg; if (!SvMAGICAL(tsv) || !(mg = mg_find(tsv, '<'))) - croak("panic: del_backref"); + Perl_croak(aTHX_ "panic: del_backref"); av = (AV *)mg->mg_obj; svp = AvARRAY(av); i = AvFILLp(av); @@ -2859,7 +2859,7 @@ Perl_sv_insert(pTHX_ SV *bigstr, STRLEN offset, STRLEN len, char *little, STRLEN if (!bigstr) - croak("Can't modify non-existent substring"); + Perl_croak(aTHX_ "Can't modify non-existent substring"); SvPV_force(bigstr, curlen); if (offset + len > curlen) { SvGROW(bigstr, offset+len+1); @@ -2893,7 +2893,7 @@ Perl_sv_insert(pTHX_ SV *bigstr, STRLEN offset, STRLEN len, char *little, STRLEN bigend = big + SvCUR(bigstr); if (midend > bigend) - croak("panic: sv_insert"); + Perl_croak(aTHX_ "panic: sv_insert"); if (mid - big > bigend - midend) { /* faster to shorten from end */ if (littlelen) { @@ -2938,7 +2938,7 @@ Perl_sv_replace(pTHX_ register SV *sv, register SV *nsv) U32 refcnt = SvREFCNT(sv); SV_CHECK_THINKFIRST(sv); if (SvREFCNT(nsv) != 1) - warn("Reference miscount in sv_replace()"); + Perl_warn(aTHX_ "Reference miscount in sv_replace()"); if (SvMAGICAL(sv)) { if (SvMAGICAL(nsv)) mg_free(nsv); @@ -3002,7 +3002,7 @@ Perl_sv_clear(pTHX_ register SV *sv) if (SvREFCNT(sv)) { if (PL_in_clean_objs) - croak("DESTROY created new reference to dead object '%s'", + Perl_croak(aTHX_ "DESTROY created new reference to dead object '%s'", HvNAME(stash)); /* DESTROY gave object new lease on life */ return; @@ -3169,7 +3169,7 @@ Perl_sv_free(pTHX_ SV *sv) SvREFCNT(sv) = (~(U32)0)/2; return; } - warn("Attempt to free unreferenced scalar"); + Perl_warn(aTHX_ "Attempt to free unreferenced scalar"); return; } ATOMIC_DEC_AND_TEST(refcount_is_zero, SvREFCNT(sv)); @@ -3177,7 +3177,7 @@ Perl_sv_free(pTHX_ SV *sv) return; #ifdef DEBUGGING if (SvTEMP(sv)) { - warn("Attempt to free temp prematurely: SV 0x%lx", (unsigned long)sv); + Perl_warn(aTHX_ "Attempt to free temp prematurely: SV 0x%lx", (unsigned long)sv); return; } #endif @@ -3275,7 +3275,7 @@ Perl_sv_pos_b2u(pTHX_ register SV *sv, I32* offsetp) s = (U8*)SvPV(sv, len); if (len < *offsetp) - croak("panic: bad byte offset"); + Perl_croak(aTHX_ "panic: bad byte offset"); send = s + *offsetp; len = 0; while (s < send) { @@ -3283,7 +3283,7 @@ Perl_sv_pos_b2u(pTHX_ register SV *sv, I32* offsetp) ++len; } if (s != send) { - warn("Malformed UTF-8 character"); + Perl_warn(aTHX_ "Malformed UTF-8 character"); --len; } *offsetp = len; @@ -3721,7 +3721,7 @@ Perl_sv_inc(pTHX_ register SV *sv) if (SvREADONLY(sv)) { dTHR; if (PL_curcop != &PL_compiling) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); } if (SvROK(sv)) { IV i; @@ -3822,7 +3822,7 @@ Perl_sv_dec(pTHX_ register SV *sv) if (SvREADONLY(sv)) { dTHR; if (PL_curcop != &PL_compiling) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); } if (SvROK(sv)) { IV i; @@ -3940,9 +3940,11 @@ Perl_newSVpvn(pTHX_ const char *s, STRLEN len) return sv; } +#if defined(PERL_IMPLICIT_CONTEXT) SV * -Perl_newSVpvf(pTHX_ const char* pat, ...) +Perl_newSVpvf_nocontext(const char* pat, ...) { + dTHX; register SV *sv; va_list args; @@ -3952,7 +3954,20 @@ Perl_newSVpvf(pTHX_ const char* pat, ...) va_end(args); return sv; } +#endif +SV * +Perl_newSVpvf(pTHX_ const char* pat, ...) +{ + register SV *sv; + va_list args; + + new_SV(sv); + va_start(args, pat); + sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + va_end(args); + return sv; +} SV * Perl_newSVnv(pTHX_ double n) @@ -4004,7 +4019,7 @@ Perl_newSVsv(pTHX_ register SV *old) if (!old) return Nullsv; if (SvTYPE(old) == SVTYPEMASK) { - warn("semi-panic: attempt to dup freed string"); + Perl_warn(aTHX_ "semi-panic: attempt to dup freed string"); return Nullsv; } new_SV(sv); @@ -4105,11 +4120,11 @@ Perl_sv_2io(pTHX_ SV *sv) gv = (GV*)sv; io = GvIO(gv); if (!io) - croak("Bad filehandle: %s", GvNAME(gv)); + Perl_croak(aTHX_ "Bad filehandle: %s", GvNAME(gv)); break; default: if (!SvOK(sv)) - croak(PL_no_usym, "filehandle"); + Perl_croak(aTHX_ PL_no_usym, "filehandle"); if (SvROK(sv)) return sv_2io(SvRV(sv)); gv = gv_fetchpv(SvPV(sv,n_a), FALSE, SVt_PVIO); @@ -4118,7 +4133,7 @@ Perl_sv_2io(pTHX_ SV *sv) else io = 0; if (!io) - croak("Bad filehandle: %s", SvPV(sv,n_a)); + Perl_croak(aTHX_ "Bad filehandle: %s", SvPV(sv,n_a)); break; } return io; @@ -4166,7 +4181,7 @@ Perl_sv_2cv(pTHX_ SV *sv, HV **st, GV **gvp, I32 lref) else if(isGV(sv)) gv = (GV*)sv; else - croak("Not a subroutine reference"); + Perl_croak(aTHX_ "Not a subroutine reference"); } else if (isGV(sv)) gv = (GV*)sv; @@ -4191,7 +4206,7 @@ Perl_sv_2cv(pTHX_ SV *sv, HV **st, GV **gvp, I32 lref) Nullop); LEAVE; if (!GvCVu(gv)) - croak("Unable to create sub named \"%s\"", SvPV(sv,n_a)); + Perl_croak(aTHX_ "Unable to create sub named \"%s\"", SvPV(sv,n_a)); } return GvCVu(gv); } @@ -4290,7 +4305,7 @@ Perl_sv_pvn_force(pTHX_ SV *sv, STRLEN *lp) else { if (SvTYPE(sv) > SVt_PVLV && SvTYPE(sv) != SVt_PVFM) { dTHR; - croak("Can't coerce %s to string in %s", sv_reftype(sv,0), + Perl_croak(aTHX_ "Can't coerce %s to string in %s", sv_reftype(sv,0), PL_op_name[PL_op->op_type]); } else @@ -4442,11 +4457,11 @@ Perl_sv_bless(pTHX_ SV *sv, HV *stash) dTHR; SV *tmpRef; if (!SvROK(sv)) - croak("Can't bless non-reference value"); + Perl_croak(aTHX_ "Can't bless non-reference value"); tmpRef = SvRV(sv); if (SvFLAGS(tmpRef) & (SVs_OBJECT|SVf_READONLY)) { if (SvREADONLY(tmpRef)) - croak(PL_no_modify); + Perl_croak(aTHX_ PL_no_modify); if (SvOBJECT(tmpRef)) { if (SvTYPE(tmpRef) != SVt_PVIO) --PL_sv_objcount; @@ -4468,7 +4483,7 @@ Perl_sv_bless(pTHX_ SV *sv, HV *stash) } STATIC void -sv_unglob(pTHX_ SV *sv) +S_sv_unglob(pTHX_ SV *sv) { assert(SvTYPE(sv) == SVt_PVGV); SvFAKE_off(sv); @@ -4553,6 +4568,30 @@ Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv) SvSETMAGIC(sv); } +#if defined(PERL_IMPLICIT_CONTEXT) +void +Perl_sv_setpvf_nocontext(SV *sv, const char* pat, ...) +{ + dTHX; + va_list args; + va_start(args, pat); + sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + va_end(args); +} + + +void +Perl_sv_setpvf_mg_nocontext(SV *sv, const char* pat, ...) +{ + dTHX; + va_list args; + va_start(args, pat); + sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + va_end(args); + SvSETMAGIC(sv); +} +#endif + void Perl_sv_setpvf(pTHX_ SV *sv, const char* pat, ...) { @@ -4573,6 +4612,29 @@ Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...) SvSETMAGIC(sv); } +#if defined(PERL_IMPLICIT_CONTEXT) +void +Perl_sv_catpvf_nocontext(SV *sv, const char* pat, ...) +{ + dTHX; + va_list args; + va_start(args, pat); + sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + va_end(args); +} + +void +Perl_sv_catpvf_mg_nocontext(SV *sv, const char* pat, ...) +{ + dTHX; + va_list args; + va_start(args, pat); + sv_vcatpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + va_end(args); + SvSETMAGIC(sv); +} +#endif + void Perl_sv_catpvf(pTHX_ SV *sv, const char* pat, ...) { @@ -4987,7 +5049,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV i = PERL_INT_MIN; (void)frexp(nv, &i); if (i == PERL_INT_MIN) - die("panic: frexp"); + Perl_die(aTHX_ "panic: frexp"); if (i > 0) need = BIT_DIGITS(i); } @@ -5064,14 +5126,14 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV if (!args && ckWARN(WARN_PRINTF) && (PL_op->op_type == OP_PRTF || PL_op->op_type == OP_SPRINTF)) { SV *msg = sv_newmortal(); - sv_setpvf(msg, "Invalid conversion in %s: ", + Perl_sv_setpvf(aTHX_ msg, "Invalid conversion in %s: ", (PL_op->op_type == OP_PRTF) ? "printf" : "sprintf"); if (c) - sv_catpvf(msg, isPRINT(c) ? "\"%%%c\"" : "\"%%\\%03o\"", + Perl_sv_catpvf(aTHX_ msg, isPRINT(c) ? "\"%%%c\"" : "\"%%\\%03o\"", c & 0xFF); else sv_catpv(msg, "end of string"); - warner(WARN_PRINTF, "%_", msg); /* yes, this is reentrant */ + Perl_warner(aTHX_ WARN_PRINTF, "%_", msg); /* yes, this is reentrant */ } /* output mangled stuff ... */ diff --git a/taint.c b/taint.c index 4d000a1..0fe6f32 100644 --- a/taint.c +++ b/taint.c @@ -27,9 +27,9 @@ Perl_taint_proper(pTHX_ const char *f, char *s) else ug = " while running with -T switch"; if (!PL_unsafe) - croak(f, s, ug); + Perl_croak(aTHX_ f, s, ug); else if (ckWARN(WARN_TAINT)) - warner(WARN_TAINT, f, s, ug); + Perl_warner(aTHX_ WARN_TAINT, f, s, ug); } } diff --git a/thrdvar.h b/thrdvar.h index dcaaccb..a442367 100644 --- a/thrdvar.h +++ b/thrdvar.h @@ -96,7 +96,7 @@ PERLVAR(Tmainstack, AV *) /* the stack when nothing funny is happening */ PERLVAR(Ttop_env, JMPENV *) /* ptr. to current sigjmp() environment */ PERLVAR(Tstart_env, JMPENV) /* empty startup sigjmp() environment */ -PERLVARI(Tprotect, protect_proc_t, FUNC_NAME_TO_PTR(default_protect)) +PERLVARI(Tprotect, protect_proc_t, FUNC_NAME_TO_PTR(Perl_default_protect)) /* statics "owned" by various functions */ PERLVAR(Tav_fetch_sv, SV *) /* owned by av_fetch() */ @@ -169,9 +169,9 @@ PERLVARI(Treg_curpm, PMOP*, NULL) /* curpm during match */ PERLVAR(Treg_oldsaved, char*) /* old saved substr during match */ PERLVAR(Treg_oldsavedlen, STRLEN) /* old length of saved substr during match */ -PERLVARI(Tregcompp, regcomp_t, FUNC_NAME_TO_PTR(pregcomp)) +PERLVARI(Tregcompp, regcomp_t, FUNC_NAME_TO_PTR(Perl_pregcomp)) /* Pointer to RE compiler */ -PERLVARI(Tregexecp, regexec_t, FUNC_NAME_TO_PTR(regexec_flags)) +PERLVARI(Tregexecp, regexec_t, FUNC_NAME_TO_PTR(Perl_regexec_flags)) /* Pointer to RE executer */ PERLVARI(Treginterp_cnt,int, 0) /* Whether `Regexp' was interpolated. */ diff --git a/thread.h b/thread.h index 5c8205e..f6c468c 100644 --- a/thread.h +++ b/thread.h @@ -8,7 +8,7 @@ STMT_START { \ if (pthread_detach(&(t)->self)) { \ MUTEX_UNLOCK(&(t)->mutex); \ - croak("panic: DETACH"); \ + Perl_croak(aTHX_ "panic: DETACH"); \ } \ } STMT_END # define THR getTHR() @@ -70,7 +70,7 @@ struct perl_thread *getTHR (void); if (*m) { \ mutex_init(*m); \ } else { \ - croak("panic: MUTEX_INIT"); \ + Perl_croak(aTHX_ "panic: MUTEX_INIT"); \ } \ } STMT_END @@ -88,7 +88,7 @@ struct perl_thread *getTHR (void); if (*c) { \ condition_init(*c); \ } else { \ - croak("panic: COND_INIT"); \ + Perl_croak(aTHX_ "panic: COND_INIT"); \ } \ } STMT_END @@ -147,29 +147,39 @@ struct perl_thread *getTHR (void); STMT_START { \ Zero((m), 1, perl_mutex); \ if (pthread_mutex_init((m), pthread_mutexattr_default)) \ - croak("panic: MUTEX_INIT"); \ + Perl_croak(aTHX_ "panic: MUTEX_INIT"); \ } STMT_END #else #define MUTEX_INIT(m) \ STMT_START { \ if (pthread_mutex_init((m), pthread_mutexattr_default)) \ - croak("panic: MUTEX_INIT"); \ + Perl_croak(aTHX_ "panic: MUTEX_INIT"); \ } STMT_END #endif #define MUTEX_LOCK(m) \ STMT_START { \ if (pthread_mutex_lock((m))) \ - croak("panic: MUTEX_LOCK"); \ + Perl_croak(aTHX_ "panic: MUTEX_LOCK"); \ } STMT_END #define MUTEX_UNLOCK(m) \ STMT_START { \ if (pthread_mutex_unlock((m))) \ - croak("panic: MUTEX_UNLOCK"); \ + Perl_croak(aTHX_ "panic: MUTEX_UNLOCK"); \ + } STMT_END +#define MUTEX_LOCK_NOCONTEXT(m) \ + STMT_START { \ + if (pthread_mutex_lock((m))) \ + Perl_croak_nocontext("panic: MUTEX_LOCK"); \ + } STMT_END +#define MUTEX_UNLOCK_NOCONTEXT(m) \ + STMT_START { \ + if (pthread_mutex_unlock((m))) \ + Perl_croak_nocontext("panic: MUTEX_UNLOCK");\ } STMT_END #define MUTEX_DESTROY(m) \ STMT_START { \ if (pthread_mutex_destroy((m))) \ - croak("panic: MUTEX_DESTROY"); \ + Perl_croak(aTHX_ "panic: MUTEX_DESTROY"); \ } STMT_END #endif /* MUTEX_INIT */ @@ -177,27 +187,27 @@ struct perl_thread *getTHR (void); #define COND_INIT(c) \ STMT_START { \ if (pthread_cond_init((c), pthread_condattr_default)) \ - croak("panic: COND_INIT"); \ + Perl_croak(aTHX_ "panic: COND_INIT"); \ } STMT_END #define COND_SIGNAL(c) \ STMT_START { \ if (pthread_cond_signal((c))) \ - croak("panic: COND_SIGNAL"); \ + Perl_croak(aTHX_ "panic: COND_SIGNAL"); \ } STMT_END #define COND_BROADCAST(c) \ STMT_START { \ if (pthread_cond_broadcast((c))) \ - croak("panic: COND_BROADCAST"); \ + Perl_croak(aTHX_ "panic: COND_BROADCAST"); \ } STMT_END #define COND_WAIT(c, m) \ STMT_START { \ if (pthread_cond_wait((c), (m))) \ - croak("panic: COND_WAIT"); \ + Perl_croak(aTHX_ "panic: COND_WAIT"); \ } STMT_END #define COND_DESTROY(c) \ STMT_START { \ if (pthread_cond_destroy((c))) \ - croak("panic: COND_DESTROY"); \ + Perl_croak(aTHX_ "panic: COND_DESTROY"); \ } STMT_END #endif /* COND_INIT */ @@ -207,7 +217,7 @@ struct perl_thread *getTHR (void); STMT_START { \ if (pthread_detach((t)->self)) { \ MUTEX_UNLOCK(&(t)->mutex); \ - croak("panic: DETACH"); \ + Perl_croak(aTHX_ "panic: DETACH"); \ } \ } STMT_END #endif /* DETACH */ @@ -216,7 +226,7 @@ struct perl_thread *getTHR (void); #define JOIN(t, avp) \ STMT_START { \ if (pthread_join((t)->self, (void**)(avp))) \ - croak("panic: pthread_join"); \ + Perl_croak(aTHX_ "panic: pthread_join"); \ } STMT_END #endif /* JOIN */ @@ -224,7 +234,7 @@ struct perl_thread *getTHR (void); #define SET_THR(t) \ STMT_START { \ if (pthread_setspecific(PL_thr_key, (void *) (t))) \ - croak("panic: pthread_setspecific"); \ + Perl_croak(aTHX_ "panic: pthread_setspecific"); \ } STMT_END #endif /* SET_THR */ @@ -325,7 +335,9 @@ typedef struct condpair { #else /* USE_THREADS is not defined */ #define MUTEX_LOCK(m) +#define MUTEX_LOCK_NOCONTEXT(m) #define MUTEX_UNLOCK(m) +#define MUTEX_UNLOCK_NOCONTEXT(m) #define MUTEX_INIT(m) #define MUTEX_DESTROY(m) #define COND_INIT(c) @@ -339,10 +351,5 @@ typedef struct condpair { #define UNLOCK_STRTAB_MUTEX #define THR -/* Rats: if dTHR is just blank then the subsequent ";" throws an error */ -#ifdef WIN32 -#define dTHR extern int Perl___notused -#else -#define dTHR extern int errno -#endif +#define dTHR dNOOP #endif /* USE_THREADS */ diff --git a/toke.c b/toke.c index af93ad8..4b4e140 100644 --- a/toke.c +++ b/toke.c @@ -81,9 +81,8 @@ int* yychar_pointer = NULL; # define yylval (*yylval_pointer) # define yychar (*yychar_pointer) # define PERL_YYLEX_PARAM yylval_pointer,yychar_pointer -# define yylex(a,b) Perl_yylex(aTHX_ a, b) -#else -# define PERL_YYLEX_PARAM +# undef yylex +# define yylex() Perl_yylex(aTHX_ yylval_pointer, yychar_pointer) #endif #include "keywords.h" @@ -133,7 +132,7 @@ int* yychar_pointer = NULL; #define OLDLOP(f) return(yylval.ival=f,PL_expect = XTERM,PL_bufptr = s,(int)LSTOP) STATIC int -ao(pTHX_ int toketype) +S_ao(pTHX_ int toketype) { if (*PL_bufptr == '=') { PL_bufptr++; @@ -147,32 +146,32 @@ ao(pTHX_ int toketype) } STATIC void -no_op(pTHX_ char *what, char *s) +S_no_op(pTHX_ char *what, char *s) { char *oldbp = PL_bufptr; bool is_first = (PL_oldbufptr == PL_linestart); PL_bufptr = s; - yywarn(form("%s found where operator expected", what)); + yywarn(Perl_form(aTHX_ "%s found where operator expected", what)); if (is_first) - warn("\t(Missing semicolon on previous line?)\n"); + Perl_warn(aTHX_ "\t(Missing semicolon on previous line?)\n"); else if (PL_oldoldbufptr && isIDFIRST_lazy(PL_oldoldbufptr)) { char *t; for (t = PL_oldoldbufptr; *t && (isALNUM_lazy(t) || *t == ':'); t++) ; if (t < PL_bufptr && isSPACE(*t)) - warn("\t(Do you need to predeclare %.*s?)\n", + Perl_warn(aTHX_ "\t(Do you need to predeclare %.*s?)\n", t - PL_oldoldbufptr, PL_oldoldbufptr); } else if (s <= oldbp) - warn("\t(Missing operator before end of line?)\n"); + Perl_warn(aTHX_ "\t(Missing operator before end of line?)\n"); else - warn("\t(Missing operator before %.*s?)\n", s - oldbp, oldbp); + Perl_warn(aTHX_ "\t(Missing operator before %.*s?)\n", s - oldbp, oldbp); PL_bufptr = oldbp; } STATIC void -missingterm(pTHX_ char *s) +S_missingterm(pTHX_ char *s) { char tmpbuf[3]; char q; @@ -200,7 +199,7 @@ missingterm(pTHX_ char *s) s = tmpbuf; } q = strchr(s,'"') ? '\'' : '"'; - croak("Can't find string terminator %c%s%c anywhere before EOF",q,s,q); + Perl_croak(aTHX_ "Can't find string terminator %c%s%c anywhere before EOF",q,s,q); } void @@ -208,11 +207,11 @@ Perl_deprecate(pTHX_ char *s) { dTHR; if (ckWARN(WARN_DEPRECATED)) - warner(WARN_DEPRECATED, "Use of %s is deprecated", s); + Perl_warner(aTHX_ WARN_DEPRECATED, "Use of %s is deprecated", s); } STATIC void -depcom(pTHX) +S_depcom(pTHX) { deprecate("comma-less variable list"); } @@ -220,7 +219,7 @@ depcom(pTHX) #ifdef WIN32 STATIC I32 -win32_textfilter(pTHX_ int idx, SV *sv, int maxlen) +S_win32_textfilter(pTHX_ int idx, SV *sv, int maxlen) { I32 count = FILTER_READ(idx+1, sv, maxlen); if (count > 0 && !maxlen) @@ -230,7 +229,7 @@ win32_textfilter(pTHX_ int idx, SV *sv, int maxlen) #endif STATIC I32 -utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen) +S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen) { I32 count = FILTER_READ(idx+1, sv, maxlen); if (count) { @@ -245,7 +244,7 @@ utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen) } STATIC I32 -utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen) +S_utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen) { I32 count = FILTER_READ(idx+1, sv, maxlen); if (count) { @@ -283,12 +282,12 @@ Perl_lex_start(pTHX_ SV *line) SAVESPTR(PL_linestr); SAVEPPTR(PL_lex_brackstack); SAVEPPTR(PL_lex_casestack); - SAVEDESTRUCTOR(restore_rsfp, PL_rsfp); + SAVEDESTRUCTOR(S_restore_rsfp, PL_rsfp); SAVESPTR(PL_lex_stuff); SAVEI32(PL_lex_defer); SAVESPTR(PL_lex_repl); - SAVEDESTRUCTOR(restore_expect, PL_tokenbuf + PL_expect); /* encode as pointer */ - SAVEDESTRUCTOR(restore_lex_expect, PL_tokenbuf + PL_expect); + SAVEDESTRUCTOR(S_restore_expect, PL_tokenbuf + PL_expect); /* encode as pointer */ + SAVEDESTRUCTOR(S_restore_lex_expect, PL_tokenbuf + PL_expect); PL_lex_state = LEX_NORMAL; PL_lex_defer = 0; @@ -331,7 +330,7 @@ Perl_lex_end(pTHX) } STATIC void -restore_rsfp(pTHX_ void *f) +S_restore_rsfp(pTHX_ void *f) { PerlIO *fp = (PerlIO*)f; @@ -343,21 +342,21 @@ restore_rsfp(pTHX_ void *f) } STATIC void -restore_expect(pTHX_ void *e) +S_restore_expect(pTHX_ void *e) { /* a safe way to store a small integer in a pointer */ PL_expect = (expectation)((char *)e - PL_tokenbuf); } STATIC void -restore_lex_expect(pTHX_ void *e) +S_restore_lex_expect(pTHX_ void *e) { /* a safe way to store a small integer in a pointer */ PL_lex_expect = (expectation)((char *)e - PL_tokenbuf); } STATIC void -incline(pTHX_ char *s) +S_incline(pTHX_ char *s) { dTHR; char *t; @@ -398,7 +397,7 @@ incline(pTHX_ char *s) } STATIC char * -skipspace(pTHX_ register char *s) +S_skipspace(pTHX_ register char *s) { dTHR; if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) { @@ -461,7 +460,7 @@ skipspace(pTHX_ register char *s) } STATIC void -check_uni(pTHX) +S_check_uni(pTHX) { char *s; char ch; @@ -476,7 +475,7 @@ check_uni(pTHX) return; ch = *s; *s = '\0'; - warn("Warning: Use of \"%s\" without parens is ambiguous", PL_last_uni); + Perl_warn(aTHX_ "Warning: Use of \"%s\" without parens is ambiguous", PL_last_uni); *s = ch; } @@ -486,7 +485,7 @@ check_uni(pTHX) #define UNI(f) return uni(f,s) STATIC int -uni(pTHX_ I32 f, char *s) +S_uni(pTHX_ I32 f, char *s) { yylval.ival = f; PL_expect = XTERM; @@ -507,7 +506,7 @@ uni(pTHX_ I32 f, char *s) #define LOP(f,x) return lop(f,x,s) STATIC I32 -lop(pTHX_ I32 f, expectation x, char *s) +S_lop(pTHX_ I32 f, expectation x, char *s) { dTHR; yylval.ival = f; @@ -528,7 +527,7 @@ lop(pTHX_ I32 f, expectation x, char *s) } STATIC void -force_next(pTHX_ I32 type) +S_force_next(pTHX_ I32 type) { PL_nexttype[PL_nexttoke] = type; PL_nexttoke++; @@ -540,7 +539,7 @@ force_next(pTHX_ I32 type) } STATIC char * -force_word(pTHX_ register char *start, int token, int check_keyword, int allow_pack, int allow_initial_tick) +S_force_word(pTHX_ register char *start, int token, int check_keyword, int allow_pack, int allow_initial_tick) { register char *s; STRLEN len; @@ -570,7 +569,7 @@ force_word(pTHX_ register char *start, int token, int check_keyword, int allow_p } STATIC void -force_ident(pTHX_ register char *s, int kind) +S_force_ident(pTHX_ register char *s, int kind) { if (s && *s) { OP* o = (OP*)newSVOP(OP_CONST, 0, newSVpv(s,0)); @@ -593,7 +592,7 @@ force_ident(pTHX_ register char *s, int kind) } STATIC char * -force_version(pTHX_ char *s) +S_force_version(pTHX_ char *s) { OP *version = Nullop; @@ -620,7 +619,7 @@ force_version(pTHX_ char *s) } STATIC SV * -tokeq(pTHX_ SV *sv) +S_tokeq(pTHX_ SV *sv) { register char *s; register char *send; @@ -658,7 +657,7 @@ tokeq(pTHX_ SV *sv) } STATIC I32 -sublex_start(pTHX) +S_sublex_start(pTHX) { register I32 op_type = yylval.ival; @@ -702,7 +701,7 @@ sublex_start(pTHX) } STATIC I32 -sublex_push(pTHX) +S_sublex_push(pTHX) { dTHR; ENTER; @@ -755,7 +754,7 @@ sublex_push(pTHX) } STATIC I32 -sublex_done(pTHX) +S_sublex_done(pTHX) { if (!PL_lex_starts++) { PL_expect = XOPERATOR; @@ -765,7 +764,7 @@ sublex_done(pTHX) if (PL_lex_casemods) { /* oops, we've got some unbalanced parens */ PL_lex_state = LEX_INTERPCASEMOD; - return yylex(PERL_YYLEX_PARAM); + return yylex(); } /* Is there a right-hand side to take care of? */ @@ -878,7 +877,7 @@ sublex_done(pTHX) */ STATIC char * -scan_const(pTHX_ char *start) +S_scan_const(pTHX_ char *start) { register char *send = PL_bufend; /* end of the constant */ SV *sv = NEWSV(93, send - start); /* sv for the constant */ @@ -1035,7 +1034,7 @@ scan_const(pTHX_ char *start) { dTHR; /* only for ckWARN */ if (ckWARN(WARN_SYNTAX)) - warner(WARN_SYNTAX, "\\%c better written as $%c", *s, *s); + Perl_warner(aTHX_ WARN_SYNTAX, "\\%c better written as $%c", *s, *s); *--s = '$'; break; } @@ -1060,7 +1059,7 @@ scan_const(pTHX_ char *start) { dTHR; if (ckWARN(WARN_UNSAFE) && isALPHA(*s)) - warner(WARN_UNSAFE, + Perl_warner(aTHX_ WARN_UNSAFE, "Unrecognized escape \\%c passed through", *s); /* default action is to copy the quoted character */ @@ -1088,7 +1087,7 @@ scan_const(pTHX_ char *start) if (!utf) { dTHR; if (ckWARN(WARN_UTF8)) - warner(WARN_UTF8, + Perl_warner(aTHX_ WARN_UTF8, "Use of \\x{} without utf8 declaration"); } /* note: utf always shorter than hex */ @@ -1108,7 +1107,7 @@ scan_const(pTHX_ char *start) if (uv >= 127 && UTF) { dTHR; if (ckWARN(WARN_UTF8)) - warner(WARN_UTF8, + Perl_warner(aTHX_ WARN_UTF8, "\\x%.*s will produce malformed UTF-8 character; use \\x{%.*s} for that", len,s,len,s); } @@ -1192,7 +1191,7 @@ scan_const(pTHX_ char *start) /* This is the one truly awful dwimmer necessary to conflate C and sed. */ STATIC int -intuit_more(pTHX_ register char *s) +S_intuit_more(pTHX_ register char *s) { if (PL_lex_brackets) return TRUE; @@ -1322,7 +1321,7 @@ intuit_more(pTHX_ register char *s) } STATIC int -intuit_method(pTHX_ char *start, GV *gv) +S_intuit_method(pTHX_ char *start, GV *gv) { char *s = start + (*start == '$'); char tmpbuf[sizeof PL_tokenbuf]; @@ -1381,7 +1380,7 @@ intuit_method(pTHX_ char *start, GV *gv) } STATIC char* -incl_perldb(pTHX) +S_incl_perldb(pTHX) { if (PL_perldb) { char *pdb = PerlEnv_getenv("PERL5DB"); @@ -1423,11 +1422,11 @@ Perl_filter_add(pTHX_ filter_t funcp, SV *datasv) if (!datasv) datasv = NEWSV(255,0); if (!SvUPGRADE(datasv, SVt_PVIO)) - die("Can't upgrade filter_add data to SVt_PVIO"); + Perl_die(aTHX_ "Can't upgrade filter_add data to SVt_PVIO"); IoDIRP(datasv) = (DIR*)funcp; /* stash funcp into spare field */ if (PL_filter_debug) { STRLEN n_a; - warn("filter_add func %p (%s)", funcp, SvPV(datasv, n_a)); + Perl_warn(aTHX_ "filter_add func %p (%s)", funcp, SvPV(datasv, n_a)); } av_unshift(PL_rsfp_filters, 1); av_store(PL_rsfp_filters, 0, datasv) ; @@ -1440,7 +1439,7 @@ void Perl_filter_del(pTHX_ filter_t funcp) { if (PL_filter_debug) - warn("filter_del func %p", funcp); + Perl_warn(aTHX_ "filter_del func %p", funcp); if (!PL_rsfp_filters || AvFILLp(PL_rsfp_filters)<0) return; /* if filter is on top of stack (usual case) just pop it off */ @@ -1451,7 +1450,7 @@ Perl_filter_del(pTHX_ filter_t funcp) return; } /* we need to search for the correct entry and clear it */ - die("filter_del can only delete in reverse order (currently)"); + Perl_die(aTHX_ "filter_del can only delete in reverse order (currently)"); } @@ -1471,7 +1470,7 @@ Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen) /* Provide a default input filter to make life easy. */ /* Note that we append to the line. This is handy. */ if (PL_filter_debug) - warn("filter_read %d: from rsfp\n", idx); + Perl_warn(aTHX_ "filter_read %d: from rsfp\n", idx); if (maxlen) { /* Want a block */ int len ; @@ -1500,24 +1499,24 @@ Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen) /* Skip this filter slot if filter has been deleted */ if ( (datasv = FILTER_DATA(idx)) == &PL_sv_undef){ if (PL_filter_debug) - warn("filter_read %d: skipped (filter deleted)\n", idx); + Perl_warn(aTHX_ "filter_read %d: skipped (filter deleted)\n", idx); return FILTER_READ(idx+1, buf_sv, maxlen); /* recurse */ } /* Get function pointer hidden within datasv */ funcp = (filter_t)IoDIRP(datasv); if (PL_filter_debug) { STRLEN n_a; - warn("filter_read %d: via function %p (%s)\n", + Perl_warn(aTHX_ "filter_read %d: via function %p (%s)\n", idx, funcp, SvPV(datasv,n_a)); } /* Call function. The function is expected to */ /* call "FILTER_READ(idx+1, buf_sv)" first. */ /* Return: <0:error, =0:eof, >0:not eof */ - return (*funcp)(PERL_OBJECT_THIS_ idx, buf_sv, maxlen); + return (*funcp)(aTHX_ idx, buf_sv, maxlen); } STATIC char * -filter_gets(pTHX_ register SV *sv, register PerlIO *fp, STRLEN append) +S_filter_gets(pTHX_ register SV *sv, register PerlIO *fp, STRLEN append) { #ifdef WIN32FILTER if (!PL_rsfp_filters) { @@ -1570,9 +1569,9 @@ filter_gets(pTHX_ register SV *sv, register PerlIO *fp, STRLEN append) int #ifdef USE_PURE_BISON -yylex(pTHX_ YYSTYPE *lvalp, int *lcharp) +Perl_yylex(pTHX_ YYSTYPE *lvalp, int *lcharp) #else -yylex(pTHX) +Perl_yylex(pTHX) #endif { dTHR; @@ -1602,7 +1601,7 @@ yylex(pTHX) */ if (PL_in_my) { if (strchr(PL_tokenbuf,':')) - yyerror(form(PL_no_myglob,PL_tokenbuf)); + yyerror(Perl_form(aTHX_ PL_no_myglob,PL_tokenbuf)); yylval.opval = newOP(OP_PADANY, 0); yylval.opval->op_targ = pad_allocmy(PL_tokenbuf); @@ -1645,7 +1644,7 @@ yylex(pTHX) d++) { if (strnEQ(d,"<=>",3) || strnEQ(d,"cmp",3)) { - croak("Can't use \"my %s\" in sort comparison", + Perl_croak(aTHX_ "Can't use \"my %s\" in sort comparison", PL_tokenbuf); } } @@ -1665,7 +1664,7 @@ yylex(pTHX) if (pit == '@' && PL_lex_state != LEX_NORMAL && !PL_lex_brackets) { GV *gv = gv_fetchpv(PL_tokenbuf+1, FALSE, SVt_PVAV); if (!gv || ((PL_tokenbuf[0] == '@') ? !GvAV(gv) : !GvHV(gv))) - yyerror(form("In string, %s now must be written as \\%s", + yyerror(Perl_form(aTHX_ "In string, %s now must be written as \\%s", PL_tokenbuf, PL_tokenbuf)); } @@ -1705,7 +1704,7 @@ yylex(pTHX) case LEX_INTERPCASEMOD: #ifdef DEBUGGING if (PL_bufptr != PL_bufend && *PL_bufptr != '\\') - croak("panic: INTERPCASEMOD"); + Perl_croak(aTHX_ "panic: INTERPCASEMOD"); #endif /* handle \E or end of string */ if (PL_bufptr == PL_bufend || PL_bufptr[1] == 'E') { @@ -1725,7 +1724,7 @@ yylex(pTHX) if (PL_bufptr != PL_bufend) PL_bufptr += 2; PL_lex_state = LEX_INTERPCONCAT; - return yylex(PERL_YYLEX_PARAM); + return yylex(); } else { s = PL_bufptr + 1; @@ -1760,7 +1759,7 @@ yylex(pTHX) else if (*s == 'Q') PL_nextval[PL_nexttoke].ival = OP_QUOTEMETA; else - croak("panic: yylex"); + Perl_croak(aTHX_ "panic: yylex"); PL_bufptr = s + 1; force_next(FUNC); if (PL_lex_starts) { @@ -1769,7 +1768,7 @@ yylex(pTHX) Aop(OP_CONCAT); } else - return yylex(PERL_YYLEX_PARAM); + return yylex(); } case LEX_INTERPPUSH: @@ -1802,7 +1801,7 @@ yylex(pTHX) s = PL_bufptr; Aop(OP_CONCAT); } - return yylex(PERL_YYLEX_PARAM); + return yylex(); case LEX_INTERPENDMAYBE: if (intuit_more(PL_bufptr)) { @@ -1821,14 +1820,14 @@ yylex(pTHX) && SvEVALED(PL_lex_repl)) { if (PL_bufptr != PL_bufend) - croak("Bad evalled substitution pattern"); + Perl_croak(aTHX_ "Bad evalled substitution pattern"); PL_lex_repl = Nullsv; } /* FALLTHROUGH */ case LEX_INTERPCONCAT: #ifdef DEBUGGING if (PL_lex_brackets) - croak("panic: INTERPCONCAT"); + Perl_croak(aTHX_ "panic: INTERPCONCAT"); #endif if (PL_bufptr == PL_bufend) return sublex_done(); @@ -1858,11 +1857,11 @@ yylex(pTHX) Aop(OP_CONCAT); else { PL_bufptr = s; - return yylex(PERL_YYLEX_PARAM); + return yylex(); } } - return yylex(PERL_YYLEX_PARAM); + return yylex(); case LEX_FORMLINE: PL_lex_state = LEX_NORMAL; s = scan_formline(PL_bufptr); @@ -1883,7 +1882,7 @@ yylex(pTHX) default: if (isIDFIRST_lazy(s)) goto keylookup; - croak("Unrecognized character \\x%02X", *s & 255); + Perl_croak(aTHX_ "Unrecognized character \\x%02X", *s & 255); case 4: case 26: goto fake_eof; /* emulate EOF on ^D or ^Z */ @@ -1925,20 +1924,20 @@ yylex(pTHX) if (PL_minus_F) { if (strchr("/'\"", *PL_splitstr) && strchr(PL_splitstr + 1, *PL_splitstr)) - sv_catpvf(PL_linestr, "@F=split(%s);", PL_splitstr); + Perl_sv_catpvf(aTHX_ PL_linestr, "@F=split(%s);", PL_splitstr); else { char delim; s = "'~#\200\1'"; /* surely one char is unused...*/ while (s[1] && strchr(PL_splitstr, *s)) s++; delim = *s; - sv_catpvf(PL_linestr, "@F=split(%s%c", + Perl_sv_catpvf(aTHX_ PL_linestr, "@F=split(%s%c", "q" + (delim == '\''), delim); for (s = PL_splitstr; *s; s++) { if (*s == '\\') sv_catpvn(PL_linestr, "\\", 1); sv_catpvn(PL_linestr, s, 1); } - sv_catpvf(PL_linestr, "%c);", delim); + Perl_sv_catpvf(aTHX_ PL_linestr, "%c);", delim); } } else @@ -2102,7 +2101,7 @@ yylex(pTHX) newargv = PL_origargv; newargv[0] = ipath; PerlProc_execv(ipath, newargv); - croak("Can't exec %s", ipath); + Perl_croak(aTHX_ "Can't exec %s", ipath); } if (d) { U32 oldpdb = PL_perldb; @@ -2117,7 +2116,7 @@ yylex(pTHX) if (*d == 'M' || *d == 'm') { char *m = d; while (*d && !isSPACE(*d)) d++; - croak("Too late for \"-%.*s\" option", + Perl_croak(aTHX_ "Too late for \"-%.*s\" option", (int)(d - m), m); } d = moreswitches(d); @@ -2142,13 +2141,13 @@ yylex(pTHX) if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) { PL_bufptr = s; PL_lex_state = LEX_FORMLINE; - return yylex(PERL_YYLEX_PARAM); + return yylex(); } goto retry; case '\r': #ifdef PERL_STRICT_CR - warn("Illegal character \\%03o (carriage return)", '\r'); - croak( + Perl_warn(aTHX_ "Illegal character \\%03o (carriage return)", '\r'); + Perl_croak(aTHX_ "(Maybe you didn't strip carriage returns after a network transfer?)\n"); #endif case ' ': case '\t': case '\f': case 013: @@ -2166,7 +2165,7 @@ yylex(pTHX) if (PL_lex_formbrack && PL_lex_brackets <= PL_lex_formbrack) { PL_bufptr = s; PL_lex_state = LEX_FORMLINE; - return yylex(PERL_YYLEX_PARAM); + return yylex(); } } else { @@ -2218,7 +2217,7 @@ yylex(pTHX) case 'A': gv_fetchpv("\024",TRUE, SVt_PV); FTST(OP_FTATIME); case 'C': gv_fetchpv("\024",TRUE, SVt_PV); FTST(OP_FTCTIME); default: - croak("Unrecognized file test: -%c", (int)tmp); + Perl_croak(aTHX_ "Unrecognized file test: -%c", (int)tmp); break; } } @@ -2503,7 +2502,7 @@ yylex(pTHX) if (PL_lex_fakebrack) { PL_lex_state = LEX_INTERPEND; PL_bufptr = s; - return yylex(PERL_YYLEX_PARAM); /* ignore fake brackets */ + return yylex(); /* ignore fake brackets */ } if (*s == '-' && s[1] == '>') PL_lex_state = LEX_INTERPENDMAYBE; @@ -2514,7 +2513,7 @@ yylex(pTHX) if (PL_lex_brackets < PL_lex_fakebrack) { PL_bufptr = s; PL_lex_fakebrack = 0; - return yylex(PERL_YYLEX_PARAM); /* ignore fake brackets */ + return yylex(); /* ignore fake brackets */ } force_next('}'); TOKEN(';'); @@ -2527,7 +2526,7 @@ yylex(pTHX) if (PL_expect == XOPERATOR) { if (ckWARN(WARN_SEMICOLON) && isIDFIRST_lazy(s) && PL_bufptr == PL_linestart) { PL_curcop->cop_line--; - warner(WARN_SEMICOLON, PL_warn_nosemi); + Perl_warner(aTHX_ WARN_SEMICOLON, PL_warn_nosemi); PL_curcop->cop_line++; } BAop(OP_BIT_AND); @@ -2560,7 +2559,7 @@ yylex(pTHX) if (tmp == '~') PMop(OP_MATCH); if (ckWARN(WARN_SYNTAX) && tmp && isSPACE(*s) && strchr("+-*/%.^&|<",tmp)) - warner(WARN_SYNTAX, "Reversed %c= operator",(int)tmp); + Perl_warner(aTHX_ WARN_SYNTAX, "Reversed %c= operator",(int)tmp); s--; if (PL_expect == XSTATE && isALPHA(tmp) && (s == PL_linestart+1 || s[-2] == '\n') ) @@ -2703,7 +2702,7 @@ yylex(pTHX) PL_bufptr = skipspace(PL_bufptr); while (t < PL_bufend && *t != ']') t++; - warner(WARN_SYNTAX, + Perl_warner(aTHX_ WARN_SYNTAX, "Multidimensional syntax %.*s not supported", (t - PL_bufptr) + 1, PL_bufptr); } @@ -2721,7 +2720,7 @@ yylex(pTHX) t = scan_word(t, tmpbuf, sizeof tmpbuf, TRUE, &len); for (; isSPACE(*t); t++) ; if (*t == ';' && get_cv(tmpbuf, FALSE)) - warner(WARN_SYNTAX, + Perl_warner(aTHX_ WARN_SYNTAX, "You need to quote \"%s\"", tmpbuf); } } @@ -2800,7 +2799,7 @@ yylex(pTHX) if (*t == '}' || *t == ']') { t++; PL_bufptr = skipspace(PL_bufptr); - warner(WARN_SYNTAX, + Perl_warner(aTHX_ WARN_SYNTAX, "Scalar value %.*s better written as $%.*s", t-PL_bufptr, PL_bufptr, t-PL_bufptr-1, PL_bufptr+1); } @@ -2914,7 +2913,7 @@ yylex(pTHX) case '\\': s++; if (ckWARN(WARN_SYNTAX) && PL_lex_inwhat && isDIGIT(*s)) - warner(WARN_SYNTAX,"Can't use \\%c to mean $%c in expression", + Perl_warner(aTHX_ WARN_SYNTAX,"Can't use \\%c to mean $%c in expression", *s, *s); if (PL_expect == XOPERATOR) no_op("Backslash",s); @@ -3033,7 +3032,7 @@ yylex(pTHX) gvp = 0; if (ckWARN(WARN_AMBIGUOUS) && hgv && tmp != KEY_x && tmp != KEY_CORE) /* never ambiguous */ - warner(WARN_AMBIGUOUS, + Perl_warner(aTHX_ WARN_AMBIGUOUS, "Ambiguous call resolved as CORE::%s(), %s", GvENAME(hgv), "qualify as such or use &"); } @@ -3054,7 +3053,7 @@ yylex(pTHX) s = scan_word(s, PL_tokenbuf + len, sizeof PL_tokenbuf - len, TRUE, &morelen); if (!morelen) - croak("Bad name after %s%s", PL_tokenbuf, + Perl_croak(aTHX_ "Bad name after %s%s", PL_tokenbuf, *s == '\'' ? "'" : "::"); len += morelen; } @@ -3062,7 +3061,7 @@ yylex(pTHX) if (PL_expect == XOPERATOR) { if (PL_bufptr == PL_linestart) { PL_curcop->cop_line--; - warner(WARN_SEMICOLON, PL_warn_nosemi); + Perl_warner(aTHX_ WARN_SEMICOLON, PL_warn_nosemi); PL_curcop->cop_line++; } else @@ -3077,7 +3076,7 @@ yylex(pTHX) PL_tokenbuf[len - 2] == ':' && PL_tokenbuf[len - 1] == ':') { if (ckWARN(WARN_UNSAFE) && ! gv_fetchpv(PL_tokenbuf, FALSE, SVt_PVHV)) - warner(WARN_UNSAFE, + Perl_warner(aTHX_ WARN_UNSAFE, "Bareword \"%s\" refers to nonexistent package", PL_tokenbuf); len -= 2; @@ -3181,7 +3180,7 @@ yylex(pTHX) if (gv && GvCVu(gv)) { CV* cv; if (lastchar == '-') - warn("Ambiguous use of -%s resolved as -&%s()", + Perl_warn(aTHX_ "Ambiguous use of -%s resolved as -&%s()", PL_tokenbuf, PL_tokenbuf); /* Check for a constant sub */ cv = GvCV(gv); @@ -3228,7 +3227,7 @@ yylex(pTHX) if (lastchar != '-') { for (d = PL_tokenbuf; *d && isLOWER(*d); d++) ; if (!*d) - warner(WARN_RESERVED, PL_warn_reserved, + Perl_warner(aTHX_ WARN_RESERVED, PL_warn_reserved, PL_tokenbuf); } } @@ -3236,9 +3235,9 @@ yylex(pTHX) safe_bareword: if (lastchar && strchr("*%&", lastchar)) { - warn("Operator or semicolon missing before %c%s", + Perl_warn(aTHX_ "Operator or semicolon missing before %c%s", lastchar, PL_tokenbuf); - warn("Ambiguous use of %c resolved as operator %c", + Perl_warn(aTHX_ "Ambiguous use of %c resolved as operator %c", lastchar, lastchar); } TOKEN(WORD); @@ -3251,7 +3250,7 @@ yylex(pTHX) case KEY___LINE__: yylval.opval = (OP*)newSVOP(OP_CONST, 0, - newSVpvf("%ld", (long)PL_curcop->cop_line)); + Perl_newSVpvf(aTHX_ "%ld", (long)PL_curcop->cop_line)); TERM(THING); case KEY___PACKAGE__: @@ -3270,7 +3269,7 @@ yylex(pTHX) char *pname = "main"; if (PL_tokenbuf[2] == 'D') pname = HvNAME(PL_curstash ? PL_curstash : PL_defstash); - gv = gv_fetchpv(form("%s::DATA", pname), TRUE, SVt_PVIO); + gv = gv_fetchpv(Perl_form(aTHX_ "%s::DATA", pname), TRUE, SVt_PVIO); GvMULTI_on(gv); if (!GvIO(gv)) GvIOp(gv) = newIO(); @@ -3485,7 +3484,7 @@ yylex(pTHX) p += 2; p = skipspace(p); if (isIDFIRST_lazy(p)) - croak("Missing $ on loop variable"); + Perl_croak(aTHX_ "Missing $ on loop variable"); } OPERATOR(FOR); @@ -3729,7 +3728,7 @@ yylex(pTHX) for (d = s; isALNUM_lazy(d); d++) ; t = skipspace(d); if (strchr("|&*+-=!?:.", *t)) - warn("Precedence problem: open %.*s should be open(%.*s)", + Perl_warn(aTHX_ "Precedence problem: open %.*s should be open(%.*s)", d-s,s, d-s,s); } LOP(OP_OPEN,XTERM); @@ -3803,12 +3802,12 @@ yylex(pTHX) if (!warned && ckWARN(WARN_SYNTAX)) { for (; !isSPACE(*d) && len; --len, ++d) { if (*d == ',') { - warner(WARN_SYNTAX, + Perl_warner(aTHX_ WARN_SYNTAX, "Possible attempt to separate words with commas"); ++warned; } else if (*d == '#') { - warner(WARN_SYNTAX, + Perl_warner(aTHX_ WARN_SYNTAX, "Possible attempt to put comments in qw() list"); ++warned; } @@ -4008,7 +4007,7 @@ yylex(pTHX) checkcomma(s,PL_tokenbuf,"subroutine name"); s = skipspace(s); if (*s == ';' || *s == ')') /* probably a close */ - croak("sort is now a reserved word"); + Perl_croak(aTHX_ "sort is now a reserved word"); PL_expect = XTERM; s = force_word(s,WORD,TRUE,TRUE,FALSE); LOP(OP_SORT,XREF); @@ -4078,7 +4077,7 @@ yylex(pTHX) if (PL_lex_stuff) SvREFCNT_dec(PL_lex_stuff); PL_lex_stuff = Nullsv; - croak("Prototype not terminated"); + Perl_croak(aTHX_ "Prototype not terminated"); } /* strip spaces */ d = SvPVX(PL_lex_stuff); @@ -4393,7 +4392,7 @@ Perl_keyword(pTHX_ register char *d, I32 len) break; case 6: if (strEQ(d,"exists")) return KEY_exists; - if (strEQ(d,"elseif")) warn("elseif should be elsif"); + if (strEQ(d,"elseif")) Perl_warn(aTHX_ "elseif should be elsif"); break; case 8: if (strEQ(d,"endgrent")) return -KEY_endgrent; @@ -4889,7 +4888,7 @@ Perl_keyword(pTHX_ register char *d, I32 len) } STATIC void -checkcomma(pTHX_ register char *s, char *name, char *what) +S_checkcomma(pTHX_ register char *s, char *name, char *what) { char *w; @@ -4906,7 +4905,7 @@ checkcomma(pTHX_ register char *s, char *name, char *what) if (*w) for (; *w && isSPACE(*w); w++) ; if (!*w || !strchr(";|})]oaiuw!=", *w)) /* an advisory hack only... */ - warner(WARN_SYNTAX, "%s (...) interpreted as function",name); + Perl_warner(aTHX_ WARN_SYNTAX, "%s (...) interpreted as function",name); } } while (s < PL_bufend && isSPACE(*s)) @@ -4928,13 +4927,13 @@ checkcomma(pTHX_ register char *s, char *name, char *what) *s = ','; if (kw) return; - croak("No comma allowed after %s", what); + Perl_croak(aTHX_ "No comma allowed after %s", what); } } } STATIC SV * -new_constant(pTHX_ char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type) +S_new_constant(pTHX_ char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type) { dSP; HV *table = GvHV(PL_hintgv); /* ^H */ @@ -4976,7 +4975,7 @@ new_constant(pTHX_ char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type) if (PERLDB_SUB && PL_curstash != PL_debstash) PL_op->op_private |= OPpENTERSUB_DB; PUTBACK; - pp_pushmark(ARGS); + Perl_pp_pushmark(aTHX); EXTEND(sp, 4); PUSHs(pv); @@ -4985,8 +4984,8 @@ new_constant(pTHX_ char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type) PUSHs(cv); PUTBACK; - if (PL_op = pp_entersub(ARGS)) - CALLRUNOPS(); + if (PL_op = Perl_pp_entersub(aTHX)) + CALLRUNOPS(aTHX); LEAVE; SPAGAIN; @@ -5004,13 +5003,13 @@ new_constant(pTHX_ char *s, STRLEN len, char *key, SV *sv, SV *pv, char *type) } STATIC char * -scan_word(pTHX_ register char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp) +S_scan_word(pTHX_ register char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp) { register char *d = dest; register char *e = d + destlen - 3; /* two-character token, ending NUL */ for (;;) { if (d >= e) - croak(ident_too_long); + Perl_croak(aTHX_ ident_too_long); if (isALNUM(*s)) /* UTF handled below */ *d++ = *s++; else if (*s == '\'' && allow_package && isIDFIRST_lazy(s+1)) { @@ -5027,7 +5026,7 @@ scan_word(pTHX_ register char *s, char *dest, STRLEN destlen, int allow_package, while (*t & 0x80 && is_utf8_mark((U8*)t)) t += UTF8SKIP(t); if (d + (t - s) > e) - croak(ident_too_long); + Perl_croak(aTHX_ ident_too_long); Copy(s, d, t - s, char); d += t - s; s = t; @@ -5041,7 +5040,7 @@ scan_word(pTHX_ register char *s, char *dest, STRLEN destlen, int allow_package, } STATIC char * -scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destlen, I32 ck_uni) +S_scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destlen, I32 ck_uni) { register char *d; register char *e; @@ -5057,14 +5056,14 @@ scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destl if (isDIGIT(*s)) { while (isDIGIT(*s)) { if (d >= e) - croak(ident_too_long); + Perl_croak(aTHX_ ident_too_long); *d++ = *s++; } } else { for (;;) { if (d >= e) - croak(ident_too_long); + Perl_croak(aTHX_ ident_too_long); if (isALNUM(*s)) /* UTF handled below */ *d++ = *s++; else if (*s == '\'' && isIDFIRST_lazy(s+1)) { @@ -5081,7 +5080,7 @@ scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destl while (*t & 0x80 && is_utf8_mark((U8*)t)) t += UTF8SKIP(t); if (d + (t - s) > e) - croak(ident_too_long); + Perl_croak(aTHX_ ident_too_long); Copy(s, d, t - s, char); d += t - s; s = t; @@ -5142,7 +5141,7 @@ scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destl while ((isALNUM(*s) || *s == ':') && d < e) *d++ = *s++; if (d >= e) - croak(ident_too_long); + Perl_croak(aTHX_ ident_too_long); } *d = '\0'; while (s < send && (*s == ' ' || *s == '\t')) s++; @@ -5150,7 +5149,7 @@ scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destl dTHR; /* only for ckWARN */ if (ckWARN(WARN_AMBIGUOUS) && keyword(dest, d - dest)) { char *brack = *s == '[' ? "[...]" : "{...}"; - warner(WARN_AMBIGUOUS, + Perl_warner(aTHX_ WARN_AMBIGUOUS, "Ambiguous use of %c{%s%s} resolved to %c%s%s", funny, dest, brack, funny, dest, brack); } @@ -5170,7 +5169,7 @@ scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destl *d++ = *s++; } if (d >= e) - croak(ident_too_long); + Perl_croak(aTHX_ ident_too_long); *d = '\0'; } if (*s == '}') { @@ -5184,7 +5183,7 @@ scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destl if (ckWARN(WARN_AMBIGUOUS) && (keyword(dest, d - dest) || get_cv(dest, FALSE))) { - warner(WARN_AMBIGUOUS, + Perl_warner(aTHX_ WARN_AMBIGUOUS, "Ambiguous use of %c{%s} resolved to %c%s", funny, dest, funny, dest); } @@ -5200,7 +5199,8 @@ scan_ident(pTHX_ register char *s, register char *send, char *dest, STRLEN destl return s; } -void pmflag(U16 *pmfl, int ch) +void +Perl_pmflag(pTHX_ U16 *pmfl, int ch) { if (ch == 'i') *pmfl |= PMf_FOLD; @@ -5219,7 +5219,7 @@ void pmflag(U16 *pmfl, int ch) } STATIC char * -scan_pat(pTHX_ char *start, I32 type) +S_scan_pat(pTHX_ char *start, I32 type) { PMOP *pm; char *s; @@ -5229,7 +5229,7 @@ scan_pat(pTHX_ char *start, I32 type) if (PL_lex_stuff) SvREFCNT_dec(PL_lex_stuff); PL_lex_stuff = Nullsv; - croak("Search pattern not terminated"); + Perl_croak(aTHX_ "Search pattern not terminated"); } pm = (PMOP*)newPMOP(type, 0); @@ -5251,7 +5251,7 @@ scan_pat(pTHX_ char *start, I32 type) } STATIC char * -scan_subst(pTHX_ char *start) +S_scan_subst(pTHX_ char *start) { register char *s; register PMOP *pm; @@ -5266,7 +5266,7 @@ scan_subst(pTHX_ char *start) if (PL_lex_stuff) SvREFCNT_dec(PL_lex_stuff); PL_lex_stuff = Nullsv; - croak("Substitution pattern not terminated"); + Perl_croak(aTHX_ "Substitution pattern not terminated"); } if (s[-1] == PL_multi_open) @@ -5281,7 +5281,7 @@ scan_subst(pTHX_ char *start) if (PL_lex_repl) SvREFCNT_dec(PL_lex_repl); PL_lex_repl = Nullsv; - croak("Substitution replacement not terminated"); + Perl_croak(aTHX_ "Substitution replacement not terminated"); } PL_multi_start = first_start; /* so whole substitution is taken together */ @@ -5321,7 +5321,7 @@ scan_subst(pTHX_ char *start) } STATIC char * -scan_trans(pTHX_ char *start) +S_scan_trans(pTHX_ char *start) { register char* s; OP *o; @@ -5339,7 +5339,7 @@ scan_trans(pTHX_ char *start) if (PL_lex_stuff) SvREFCNT_dec(PL_lex_stuff); PL_lex_stuff = Nullsv; - croak("Transliteration pattern not terminated"); + Perl_croak(aTHX_ "Transliteration pattern not terminated"); } if (s[-1] == PL_multi_open) s--; @@ -5352,7 +5352,7 @@ scan_trans(pTHX_ char *start) if (PL_lex_repl) SvREFCNT_dec(PL_lex_repl); PL_lex_repl = Nullsv; - croak("Transliteration replacement not terminated"); + Perl_croak(aTHX_ "Transliteration replacement not terminated"); } if (UTF) { @@ -5388,7 +5388,7 @@ scan_trans(pTHX_ char *start) utf8 |= OPpTRANS_TO_UTF; break; default: - croak("Too many /C and /U options"); + Perl_croak(aTHX_ "Too many /C and /U options"); } } s++; @@ -5401,7 +5401,7 @@ scan_trans(pTHX_ char *start) } STATIC char * -scan_heredoc(pTHX_ register char *s) +S_scan_heredoc(pTHX_ register char *s) { dTHR; SV *herewas; @@ -5441,7 +5441,7 @@ scan_heredoc(pTHX_ register char *s) } } if (d >= PL_tokenbuf + sizeof PL_tokenbuf - 1) - croak("Delimiter for here document is too long"); + Perl_croak(aTHX_ "Delimiter for here document is too long"); *d++ = '\n'; *d = '\0'; len = d - PL_tokenbuf; @@ -5611,7 +5611,7 @@ retval: */ STATIC char * -scan_inputsymbol(pTHX_ char *start) +S_scan_inputsymbol(pTHX_ char *start) { register char *s = start; /* current position in buffer */ register char *d; @@ -5631,9 +5631,9 @@ scan_inputsymbol(pTHX_ char *start) */ if (len >= sizeof PL_tokenbuf) - croak("Excessively long <> operator"); + Perl_croak(aTHX_ "Excessively long <> operator"); if (s >= end) - croak("Unterminated <> operator"); + Perl_croak(aTHX_ "Unterminated <> operator"); s++; @@ -5661,7 +5661,7 @@ scan_inputsymbol(pTHX_ char *start) set_csh(); s = scan_str(start); if (!s) - croak("Glob not terminated"); + Perl_croak(aTHX_ "Glob not terminated"); return s; } else { @@ -5751,7 +5751,7 @@ scan_inputsymbol(pTHX_ char *start) */ STATIC char * -scan_str(pTHX_ char *start) +S_scan_str(pTHX_ char *start) { dTHR; SV *sv; /* scalar value: string */ @@ -5954,7 +5954,7 @@ Perl_scan_num(pTHX_ char *start) switch (*s) { default: - croak("panic: scan_num"); + Perl_croak(aTHX_ "panic: scan_num"); /* if it starts with a 0, it could be an octal number, a decimal in 0.13 disguise, or a hexadecimal number, or a binary number. @@ -6009,17 +6009,17 @@ Perl_scan_num(pTHX_ char *start) /* 8 and 9 are not octal */ case '8': case '9': if (shift == 3) - yyerror(form("Illegal octal digit '%c'", *s)); + yyerror(Perl_form(aTHX_ "Illegal octal digit '%c'", *s)); else if (shift == 1) - yyerror(form("Illegal binary digit '%c'", *s)); + yyerror(Perl_form(aTHX_ "Illegal binary digit '%c'", *s)); /* FALL THROUGH */ /* octal digits */ case '2': case '3': case '4': case '5': case '6': case '7': if (shift == 1) - yyerror(form("Illegal binary digit '%c'", *s)); + yyerror(Perl_form(aTHX_ "Illegal binary digit '%c'", *s)); /* FALL THROUGH */ case '0': case '1': @@ -6042,7 +6042,7 @@ Perl_scan_num(pTHX_ char *start) n = u << shift; /* make room for the digit */ if (!overflowed && (n >> shift) != u && !(PL_hints & HINT_NEW_BINARY)) { - warn("Integer overflow in %s number", + Perl_warn(aTHX_ "Integer overflow in %s number", (shift == 4) ? "hex" : ((shift == 3) ? "octal" : "binary")); overflowed = TRUE; @@ -6082,13 +6082,13 @@ Perl_scan_num(pTHX_ char *start) if (*s == '_') { dTHR; /* only for ckWARN */ if (ckWARN(WARN_SYNTAX) && lastub && s - lastub != 3) - warner(WARN_SYNTAX, "Misplaced _ in number"); + Perl_warner(aTHX_ WARN_SYNTAX, "Misplaced _ in number"); lastub = ++s; } else { /* check for end of fixed-length buffer */ if (d >= e) - croak(number_too_long); + Perl_croak(aTHX_ number_too_long); /* if we're ok, copy the character */ *d++ = *s++; } @@ -6098,7 +6098,7 @@ Perl_scan_num(pTHX_ char *start) if (lastub && s - lastub != 3) { dTHR; if (ckWARN(WARN_SYNTAX)) - warner(WARN_SYNTAX, "Misplaced _ in number"); + Perl_warner(aTHX_ WARN_SYNTAX, "Misplaced _ in number"); } /* read a decimal portion if there is one. avoid @@ -6115,7 +6115,7 @@ Perl_scan_num(pTHX_ char *start) for (; isDIGIT(*s) || *s == '_'; s++) { /* fixed length buffer check */ if (d >= e) - croak(number_too_long); + Perl_croak(aTHX_ number_too_long); if (*s != '_') *d++ = *s; } @@ -6136,7 +6136,7 @@ Perl_scan_num(pTHX_ char *start) /* read digits of exponent (no underbars :-) */ while (isDIGIT(*s)) { if (d >= e) - croak(number_too_long); + Perl_croak(aTHX_ number_too_long); *d++ = *s++; } } @@ -6179,7 +6179,7 @@ Perl_scan_num(pTHX_ char *start) } STATIC char * -scan_formline(pTHX_ register char *s) +S_scan_formline(pTHX_ register char *s) { dTHR; register char *eol; @@ -6253,7 +6253,7 @@ scan_formline(pTHX_ register char *s) } STATIC void -set_csh(pTHX) +S_set_csh(pTHX) { #ifdef CSH if (!PL_cshlen) @@ -6368,34 +6368,34 @@ Perl_yyerror(pTHX_ char *s) else { SV *where_sv = sv_2mortal(newSVpvn("next char ", 10)); if (yychar < 32) - sv_catpvf(where_sv, "^%c", toCTRL(yychar)); + Perl_sv_catpvf(aTHX_ where_sv, "^%c", toCTRL(yychar)); else if (isPRINT_LC(yychar)) - sv_catpvf(where_sv, "%c", yychar); + Perl_sv_catpvf(aTHX_ where_sv, "%c", yychar); else - sv_catpvf(where_sv, "\\%03o", yychar & 255); + Perl_sv_catpvf(aTHX_ where_sv, "\\%03o", yychar & 255); where = SvPVX(where_sv); } msg = sv_2mortal(newSVpv(s, 0)); - sv_catpvf(msg, " at %_ line %ld, ", + Perl_sv_catpvf(aTHX_ msg, " at %_ line %ld, ", GvSV(PL_curcop->cop_filegv), (long)PL_curcop->cop_line); if (context) - sv_catpvf(msg, "near \"%.*s\"\n", contlen, context); + Perl_sv_catpvf(aTHX_ msg, "near \"%.*s\"\n", contlen, context); else - sv_catpvf(msg, "%s\n", where); + Perl_sv_catpvf(aTHX_ msg, "%s\n", where); if (PL_multi_start < PL_multi_end && (U32)(PL_curcop->cop_line - PL_multi_end) <= 1) { - sv_catpvf(msg, + Perl_sv_catpvf(aTHX_ msg, " (Might be a runaway multi-line %c%c string starting on line %ld)\n", (int)PL_multi_open,(int)PL_multi_close,(long)PL_multi_start); PL_multi_end = 0; } if (PL_in_eval & EVAL_WARNONLY) - warn("%_", msg); + Perl_warn(aTHX_ "%_", msg); else if (PL_in_eval) sv_catsv(ERRSV, msg); else PerlIO_write(PerlIO_stderr(), SvPVX(msg), SvCUR(msg)); if (++PL_error_count >= 10) - croak("%_ has too many errors.\n", GvSV(PL_curcop->cop_filegv)); + Perl_croak(aTHX_ "%_ has too many errors.\n", GvSV(PL_curcop->cop_filegv)); PL_in_my = 0; PL_in_my_stash = Nullhv; return 0; diff --git a/universal.c b/universal.c index 6ee0d76..63c6910 100644 --- a/universal.c +++ b/universal.c @@ -8,7 +8,7 @@ */ STATIC SV * -isa_lookup(pTHX_ HV *stash, const char *name, int len, int level) +S_isa_lookup(pTHX_ HV *stash, const char *name, int len, int level) { AV* av; GV* gv; @@ -22,7 +22,7 @@ isa_lookup(pTHX_ HV *stash, const char *name, int len, int level) return &PL_sv_yes; if (level > 100) - croak("Recursive inheritance detected in package '%s'", HvNAME(stash)); + Perl_croak(aTHX_ "Recursive inheritance detected in package '%s'", HvNAME(stash)); gvp = (GV**)hv_fetch(stash, "::ISA::CACHE::", 14, FALSE); @@ -56,7 +56,7 @@ isa_lookup(pTHX_ HV *stash, const char *name, int len, int level) if (!basestash) { dTHR; if (ckWARN(WARN_MISC)) - warner(WARN_SYNTAX, + Perl_warner(aTHX_ WARN_SYNTAX, "Can't locate package %s for @%s::ISA", SvPVX(sv), HvNAME(stash)); continue; @@ -117,7 +117,7 @@ XS(XS_UNIVERSAL_isa) STRLEN n_a; if (items != 2) - croak("Usage: UNIVERSAL::isa(reference, kind)"); + Perl_croak(aTHX_ "Usage: UNIVERSAL::isa(reference, kind)"); sv = ST(0); name = (char *)SvPV(ST(1),n_a); @@ -136,7 +136,7 @@ XS(XS_UNIVERSAL_can) STRLEN n_a; if (items != 2) - croak("Usage: UNIVERSAL::can(object-ref, method)"); + Perl_croak(aTHX_ "Usage: UNIVERSAL::can(object-ref, method)"); sv = ST(0); name = (char *)SvPV(ST(1),n_a); @@ -174,7 +174,7 @@ XS(XS_UNIVERSAL_VERSION) if(SvROK(ST(0))) { sv = (SV*)SvRV(ST(0)); if(!SvOBJECT(sv)) - croak("Cannot find version of an unblessed reference"); + Perl_croak(aTHX_ "Cannot find version of an unblessed reference"); pkg = SvSTASH(sv); } else { @@ -196,7 +196,7 @@ XS(XS_UNIVERSAL_VERSION) if (items > 1 && (undef || (req = SvNV(ST(1)), req > SvNV(sv)))) { STRLEN n_a; - croak("%s version %s required--this is only version %s", + Perl_croak(aTHX_ "%s version %s required--this is only version %s", HvNAME(pkg), SvPV(ST(1),n_a), undef ? undef : SvPV(sv,n_a)); } diff --git a/utf8.c b/utf8.c index 5faaa3e..8c7aee2 100644 --- a/utf8.c +++ b/utf8.c @@ -107,7 +107,7 @@ Perl_utf8_to_uv(pTHX_ U8* s, I32* retlen) return *s; } if (!(uv & 0x40)) { - warn("Malformed UTF-8 character"); + Perl_warn(aTHX_ "Malformed UTF-8 character"); if (retlen) *retlen = 1; return *s; @@ -127,7 +127,7 @@ Perl_utf8_to_uv(pTHX_ U8* s, I32* retlen) s++; while (len--) { if ((*s & 0xc0) != 0x80) { - warn("Malformed UTF-8 character"); + Perl_warn(aTHX_ "Malformed UTF-8 character"); if (retlen) *retlen -= len + 1; return 0xfffd; @@ -205,7 +205,7 @@ Perl_utf16_to_utf8(pTHX_ U16* p, U8* d, I32 bytelen) if (uv >= 0xd800 && uv < 0xdbff) { /* surrogates */ int low = *p++; if (low < 0xdc00 || low >= 0xdfff) { - warn("Malformed UTF-16 surrogate"); + Perl_warn(aTHX_ "Malformed UTF-16 surrogate"); p--; uv = 0xfffd; } @@ -547,7 +547,7 @@ Perl_swash_init(pTHX_ char* pkg, char* name, SV *listsv, I32 minbits, I32 none) PL_curcop->op_private = PL_hints; } if (!SvROK(retval) || SvTYPE(SvRV(retval)) != SVt_PVHV) - croak("SWASHNEW didn't return an HV ref"); + Perl_croak(aTHX_ "SWASHNEW didn't return an HV ref"); return retval; } @@ -609,7 +609,7 @@ Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr) svp = hv_store(hv, (char*)ptr, klen, retval, 0); if (!svp || !(tmps = (U8*)SvPV(*svp, slen)) || slen < 8) - croak("SWASHGET didn't return result of proper length"); + Perl_croak(aTHX_ "SWASHGET didn't return result of proper length"); } PL_last_swash_hv = hv; @@ -634,6 +634,6 @@ Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr) off <<= 2; return (tmps[off] << 24) + (tmps[off+1] << 16) + (tmps[off+2] << 8) + tmps[off + 3] ; } - croak("panic: swash_fetch"); + Perl_croak(aTHX_ "panic: swash_fetch"); return 0; } diff --git a/util.c b/util.c index 9c0df21..2c897a4 100644 --- a/util.c +++ b/util.c @@ -82,7 +82,7 @@ Perl_safesysmalloc(pTHX_ MEM_SIZE size) #endif /* HAS_64K_LIMIT */ #ifdef DEBUGGING if ((long)size < 0) - croak("panic: malloc"); + Perl_croak(aTHX_ "panic: malloc"); #endif ptr = PerlMem_malloc(size?size:1); /* malloc(0) is NASTY on our system */ #if !(defined(I286) || defined(atarist)) @@ -128,7 +128,7 @@ Perl_safesysrealloc(pTHX_ Malloc_t where,MEM_SIZE size) return safesysmalloc(size); #ifdef DEBUGGING if ((long)size < 0) - croak("panic: realloc"); + Perl_croak(aTHX_ "panic: realloc"); #endif ptr = PerlMem_realloc(where,size); @@ -188,7 +188,7 @@ Perl_safesyscalloc(pTHX_ MEM_SIZE count, MEM_SIZE size) #endif /* HAS_64K_LIMIT */ #ifdef DEBUGGING if ((long)size < 0 || (long)count < 0) - croak("panic: calloc"); + Perl_croak(aTHX_ "panic: calloc"); #endif size *= count; ptr = PerlMem_malloc(size?size:1); /* malloc(0) is NASTY on our system */ @@ -297,7 +297,7 @@ Perl_safexcalloc(pTHX_ I32 x,MEM_SIZE count, MEM_SIZE size) } STATIC void -xstat(pTHX_ int flag) +S_xstat(pTHX_ int flag) { register I32 i, j, total = 0; I32 subtot[MAXYCOUNT]; @@ -527,7 +527,7 @@ Perl_new_collate(pTHX_ const char *newcoll) Size_t fb = strxfrm(xbuf, "ab", XFRMBUFSIZE); SSize_t mult = fb - fa; if (mult < 1) - croak("strxfrm() gets absurd"); + Perl_croak(aTHX_ "strxfrm() gets absurd"); PL_collxfrm_base = (fa > mult) ? (fa - mult) : 0; PL_collxfrm_mult = mult; } @@ -1307,10 +1307,10 @@ Perl_savepvn(pTHX_ const char *sv, register I32 len) return newaddr; } -/* the SV for form() and mess() is not kept in an arena */ +/* the SV for Perl_form() and mess() is not kept in an arena */ STATIC SV * -mess_alloc(pTHX) +S_mess_alloc(pTHX) { dTHR; SV *sv; @@ -1332,6 +1332,20 @@ mess_alloc(pTHX) return sv; } +#ifdef PERL_IMPLICIT_CONTEXT +char * +Perl_form_nocontext(const char* pat, ...) +{ + dTHX; + SV *sv = mess_alloc(); + va_list args; + va_start(args, pat); + sv_vsetpvfn(sv, pat, strlen(pat), &args, Null(SV**), 0, Null(bool*)); + va_end(args); + return SvPVX(sv); +} +#endif + char * Perl_form(pTHX_ const char* pat, ...) { @@ -1353,12 +1367,12 @@ Perl_mess(pTHX_ const char *pat, va_list *args) if (!SvCUR(sv) || *(SvEND(sv) - 1) != '\n') { dTHR; if (PL_curcop->cop_line) - sv_catpvf(sv, " at %_ line %ld", + Perl_sv_catpvf(aTHX_ sv, " at %_ line %ld", GvSV(PL_curcop->cop_filegv), (long)PL_curcop->cop_line); if (GvIO(PL_last_in_gv) && IoLINES(GvIOp(PL_last_in_gv))) { bool line_mode = (RsSIMPLE(PL_rs) && SvCUR(PL_rs) == 1 && *SvPVX(PL_rs) == '\n'); - sv_catpvf(sv, ", <%s> %s %ld", + Perl_sv_catpvf(aTHX_ sv, ", <%s> %s %ld", PL_last_in_gv == PL_argvgv ? "" : GvNAME(PL_last_in_gv), line_mode ? "line" : "chunk", (long)IoLINES(GvIOp(PL_last_in_gv))); @@ -1368,11 +1382,10 @@ Perl_mess(pTHX_ const char *pat, va_list *args) return sv; } -OP * -Perl_die(pTHX_ const char* pat, ...) +static OP * +do_die(pTHX_ const char* pat, va_list *args) { dTHR; - va_list args; char *message; int was_in_eval = PL_in_eval; HV *stash; @@ -1385,21 +1398,19 @@ Perl_die(pTHX_ const char* pat, ...) "%p: die: curstack = %p, mainstack = %p\n", thr, PL_curstack, PL_mainstack)); - va_start(args, pat); if (pat) { - msv = mess(pat, &args); + msv = mess(pat, args); message = SvPV(msv,msglen); } else { message = Nullch; } - va_end(args); DEBUG_S(PerlIO_printf(PerlIO_stderr(), "%p: die: message = %s\ndiehook = %p\n", thr, message, PL_diehook)); if (PL_diehook) { - /* sv_2cv might call croak() */ + /* sv_2cv might call Perl_croak() */ SV *olddiehook = PL_diehook; ENTER; SAVESPTR(PL_diehook); @@ -1439,11 +1450,35 @@ Perl_die(pTHX_ const char* pat, ...) return PL_restartop; } -void -Perl_croak(pTHX_ const char* pat, ...) +#ifdef PERL_IMPLICIT_CONTEXT +OP * +Perl_die_nocontext(const char* pat, ...) { - dTHR; + dTHX; + OP *o; va_list args; + va_start(args, pat); + o = do_die(aTHX_ pat, &args); + va_end(args); + return o; +} +#endif + +OP * +Perl_die(pTHX_ const char* pat, ...) +{ + OP *o; + va_list args; + va_start(args, pat); + o = do_die(aTHX_ pat, &args); + va_end(args); + return o; +} + +STATIC void +S_do_croak(pTHX_ const char* pat, va_list *args) +{ + dTHR; char *message; HV *stash; GV *gv; @@ -1451,13 +1486,11 @@ Perl_croak(pTHX_ const char* pat, ...) SV *msv; STRLEN msglen; - va_start(args, pat); - msv = mess(pat, &args); + msv = mess(pat, args); message = SvPV(msv,msglen); - va_end(args); DEBUG_S(PerlIO_printf(PerlIO_stderr(), "croak: 0x%lx %s", (unsigned long) thr, message)); if (PL_diehook) { - /* sv_2cv might call croak() */ + /* sv_2cv might call Perl_croak() */ SV *olddiehook = PL_diehook; ENTER; SAVESPTR(PL_diehook); @@ -1500,10 +1533,32 @@ Perl_croak(pTHX_ const char* pat, ...) my_failure_exit(); } +#ifdef PERL_IMPLICIT_CONTEXT void -Perl_warn(pTHX_ const char* pat,...) +Perl_croak_nocontext(const char *pat, ...) { + dTHX; va_list args; + va_start(args, pat); + do_croak(pat, &args); + /* NOTREACHED */ + va_end(args); +} +#endif /* PERL_IMPLICIT_CONTEXT */ + +void +Perl_croak(pTHX_ const char *pat, ...) +{ + va_list args; + va_start(args, pat); + do_croak(pat, &args); + /* NOTREACHED */ + va_end(args); +} + +STATIC void +S_do_warn(pTHX_ const char* pat, va_list *args) +{ char *message; HV *stash; GV *gv; @@ -1511,13 +1566,11 @@ Perl_warn(pTHX_ const char* pat,...) SV *msv; STRLEN msglen; - va_start(args, pat); - msv = mess(pat, &args); + msv = mess(pat, args); message = SvPV(msv, msglen); - va_end(args); if (PL_warnhook) { - /* sv_2cv might call warn() */ + /* sv_2cv might call Perl_warn() */ dTHR; SV *oldwarnhook = PL_warnhook; ENTER; @@ -1556,6 +1609,27 @@ Perl_warn(pTHX_ const char* pat,...) (void)PerlIO_flush(PerlIO_stderr()); } +#ifdef PERL_IMPLICIT_CONTEXT +void +Perl_warn_nocontext(const char *pat, ...) +{ + dTHX; + va_list args; + va_start(args, pat); + do_warn(pat, &args); + va_end(args); +} +#endif /* PERL_IMPLICIT_CONTEXT */ + +void +Perl_warn(pTHX_ const char *pat, ...) +{ + va_list args; + va_start(args, pat); + do_warn(pat, &args); + va_end(args); +} + void Perl_warner(pTHX_ U32 err, const char* pat,...) { @@ -1578,7 +1652,7 @@ Perl_warner(pTHX_ U32 err, const char* pat,...) DEBUG_S(PerlIO_printf(PerlIO_stderr(), "croak: 0x%lx %s", (unsigned long) thr, message)); #endif /* USE_THREADS */ if (PL_diehook) { - /* sv_2cv might call croak() */ + /* sv_2cv might call Perl_croak() */ SV *olddiehook = PL_diehook; ENTER; SAVESPTR(PL_diehook); @@ -1613,7 +1687,7 @@ Perl_warner(pTHX_ U32 err, const char* pat,...) } else { if (PL_warnhook) { - /* sv_2cv might call warn() */ + /* sv_2cv might call Perl_warn() */ dTHR; SV *oldwarnhook = PL_warnhook; ENTER; @@ -1925,7 +1999,7 @@ Perl_my_htonl(pTHX_ long l) return u.result; #else #if ((BYTEORDER - 0x1111) & 0x444) || !(BYTEORDER & 0xf) - croak("Unknown BYTEORDER\n"); + Perl_croak(aTHX_ "Unknown BYTEORDER\n"); #else register I32 o; register I32 s; @@ -1954,7 +2028,7 @@ Perl_my_ntohl(pTHX_ long l) return u.l; #else #if ((BYTEORDER - 0x1111) & 0x444) || !(BYTEORDER & 0xf) - croak("Unknown BYTEORDER\n"); + Perl_croak(aTHX_ "Unknown BYTEORDER\n"); #else register I32 o; register I32 s; @@ -2064,7 +2138,7 @@ Perl_my_popen(pTHX_ char *cmd, char *mode) PerlLIO_close(pp[1]); } if (!doexec) - croak("Can't fork"); + Perl_croak(aTHX_ "Can't fork"); return Nullfp; } sleep(5); @@ -2139,7 +2213,7 @@ Perl_my_popen(pTHX_ char *cmd, char *mode) } if (n) { /* Error */ if (n != sizeof(int)) - croak("panic: kid popen errno read"); + Perl_croak(aTHX_ "panic: kid popen errno read"); PerlLIO_close(pp[0]); errno = errkid; /* Propagate errno from kid */ return Nullfp; @@ -2422,7 +2496,7 @@ Perl_wait4pid(pTHX_ int pid, int *statusp, int flags) { I32 result; if (flags) - croak("Can't do waitpid with flags"); + Perl_croak(aTHX_ "Can't do waitpid with flags"); else { while ((result = PerlProc_wait(statusp)) != pid && pid > 0 && result >= 0) pidgone(result,*statusp); @@ -2613,7 +2687,7 @@ Perl_scan_bin(pTHX_ char *start, I32 len, I32 *retlen) while (len && *s >= '0' && *s <= '1') { register UV n = retval << 1; if (!overflowed && (n >> 1) != retval) { - warn("Integer overflow in binary number"); + Perl_warn(aTHX_ "Integer overflow in binary number"); overflowed = TRUE; } retval = n | (*s++ - '0'); @@ -2622,7 +2696,7 @@ Perl_scan_bin(pTHX_ char *start, I32 len, I32 *retlen) if (len && (*s >= '2' && *s <= '9')) { dTHR; if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE, "Illegal binary digit '%c' ignored", *s); + Perl_warner(aTHX_ WARN_UNSAFE, "Illegal binary digit '%c' ignored", *s); } *retlen = s - start; return retval; @@ -2637,7 +2711,7 @@ Perl_scan_oct(pTHX_ char *start, I32 len, I32 *retlen) while (len && *s >= '0' && *s <= '7') { register UV n = retval << 3; if (!overflowed && (n >> 3) != retval) { - warn("Integer overflow in octal number"); + Perl_warn(aTHX_ "Integer overflow in octal number"); overflowed = TRUE; } retval = n | (*s++ - '0'); @@ -2646,7 +2720,7 @@ Perl_scan_oct(pTHX_ char *start, I32 len, I32 *retlen) if (len && (*s == '8' || *s == '9')) { dTHR; if (ckWARN(WARN_OCTAL)) - warner(WARN_OCTAL, "Illegal octal digit '%c' ignored", *s); + Perl_warner(aTHX_ WARN_OCTAL, "Illegal octal digit '%c' ignored", *s); } *retlen = s - start; return retval; @@ -2670,13 +2744,13 @@ Perl_scan_hex(pTHX_ char *start, I32 len, I32 *retlen) dTHR; --s; if (ckWARN(WARN_UNSAFE)) - warner(WARN_UNSAFE,"Illegal hex digit '%c' ignored", *s); + Perl_warner(aTHX_ WARN_UNSAFE,"Illegal hex digit '%c' ignored", *s); break; } } n = retval << 4; if (!overflowed && (n >> 4) != retval) { - warn("Integer overflow in hex number"); + Perl_warn(aTHX_ "Integer overflow in hex number"); overflowed = TRUE; } retval = n | ((tmp - PL_hexdigit) & 15); @@ -2885,7 +2959,7 @@ Perl_find_script(pTHX_ char *scriptname, bool dosearch, char **search_ext, I32 f seen_dot = 1; /* Disable message. */ if (!xfound) { if (flags & 1) { /* do or die? */ - croak("Can't %s %s%s%s", + Perl_croak(aTHX_ "Can't %s %s%s%s", (xfailed ? "execute" : "find"), (xfailed ? xfailed : scriptname), (xfailed ? "" : " on PATH"), @@ -2963,7 +3037,7 @@ Perl_cond_wait(pTHX_ perl_cond *cp) perl_cond cond; if (thr->i.next_run == thr) - croak("panic: perl_cond_wait called by last runnable thread"); + Perl_croak(aTHX_ "panic: perl_cond_wait called by last runnable thread"); New(666, cond, 1, struct perl_wait_queue); cond->thread = thr; @@ -2983,7 +3057,7 @@ Perl_getTHR(pTHX) pthread_addr_t t; if (pthread_getspecific(PL_thr_key, &t)) - croak("panic: pthread_getspecific"); + Perl_croak(aTHX_ "panic: pthread_getspecific"); return (struct perl_thread *) t; } #endif @@ -3036,7 +3110,9 @@ Perl_condpair_magic(pTHX_ SV *sv) struct perl_thread * Perl_new_struct_thread(pTHX_ struct perl_thread *t) { +#ifndef PERL_IMPLICIT_CONTEXT struct perl_thread *thr; +#endif SV *sv; SV **svp; I32 i; @@ -3058,10 +3134,10 @@ Perl_new_struct_thread(pTHX_ struct perl_thread *t) Zero(thr, 1, struct perl_thread); #endif - PL_protect = FUNC_NAME_TO_PTR(default_protect); + PL_protect = FUNC_NAME_TO_PTR(Perl_default_protect); thr->oursv = sv; - init_stacks(ARGS); + init_stacks(); PL_curcop = &PL_compiling; thr->cvcache = newHV(); @@ -3090,8 +3166,8 @@ Perl_new_struct_thread(pTHX_ struct perl_thread *t) PL_statname = NEWSV(66,0); PL_maxscream = -1; - PL_regcompp = FUNC_NAME_TO_PTR(pregcomp); - PL_regexecp = FUNC_NAME_TO_PTR(regexec_flags); + PL_regcompp = FUNC_NAME_TO_PTR(Perl_pregcomp); + PL_regexecp = FUNC_NAME_TO_PTR(Perl_regexec_flags); PL_regindent = 0; PL_reginterp_cnt = 0; PL_lastscream = Nullsv; diff --git a/win32/Makefile b/win32/Makefile index 3d8570e..e1a864f 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -49,6 +49,8 @@ INST_VER = \5.00557 #CCTYPE = MSVC60 # +# XXX Do not enable. This is currently undergoing a rewrite and will +# NOT work. # uncomment next line if you want to use the perl object # Currently, this cannot be enabled if you ask for threads above # diff --git a/win32/makefile.mk b/win32/makefile.mk index c6605ec..1b2fa4e 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -60,6 +60,8 @@ CCTYPE *= BORLAND #CCTYPE *= GCC # +# XXX Do not enable. This is currently undergoing a rewrite and will +# NOT work. # uncomment next line if you want to use the perl object # Currently, this cannot be enabled if you ask for threads above, or # if you are using GCC or EGCS. diff --git a/writemain.SH b/writemain.SH index 3a81fa6..18544c1 100644 --- a/writemain.SH +++ b/writemain.SH @@ -65,14 +65,14 @@ if test X"$args" != "X" ; then mname=`echo $ext | sed 's!/!::!g'` cname=`echo $mname | sed 's!:!_!g'` -echo "EXTERN_C void boot_${cname} (CV* cv);" +echo "EXTERN_C void boot_${cname} (pTHX_ CV* cv);" done fi cat << 'EOP' static void -xs_init() +xs_init(pTHX) { EOP -- 1.8.3.1