summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-06-09 18:03:01 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-06-09 18:03:01 +0000
commitcea2e8a9dd23747fd2b66edc86c58c64e9970321 (patch)
tree50e1ad203239e885681b4e804c46363e763ca432
parentf019efd000a9017df645fb6c4cce1e7401ac9445 (diff)
downloadperl-cea2e8a9dd23747fd2b66edc86c58c64e9970321.tar.gz
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
-rw-r--r--MANIFEST3
-rw-r--r--XSUB.h24
-rw-r--r--av.c26
-rw-r--r--bytecode.pl5
-rw-r--r--cv.h2
-rw-r--r--doio.c74
-rw-r--r--doop.c40
-rw-r--r--dump.c266
-rw-r--r--ebcdic.c4
-rw-r--r--embed.h4957
-rwxr-xr-xembed.pl1721
-rw-r--r--embedvar.h134
-rw-r--r--ext/B/B.xs38
-rw-r--r--ext/B/typemap4
-rw-r--r--ext/ByteLoader/ByteLoader.xs2
-rw-r--r--ext/ByteLoader/bytecode.h4
-rw-r--r--ext/ByteLoader/byterun.c5
-rw-r--r--ext/ByteLoader/byterun.h25
-rw-r--r--ext/Data/Dumper/Dumper.xs34
-rw-r--r--ext/Devel/Peek/Peek.xs6
-rw-r--r--ext/DynaLoader/dl_aix.xs16
-rw-r--r--ext/DynaLoader/dl_beos.xs14
-rw-r--r--ext/DynaLoader/dl_cygwin32.xs14
-rw-r--r--ext/DynaLoader/dl_dld.xs24
-rw-r--r--ext/DynaLoader/dl_dlopen.xs16
-rw-r--r--ext/DynaLoader/dl_hpux.xs18
-rw-r--r--ext/DynaLoader/dl_mpeix.xs18
-rw-r--r--ext/DynaLoader/dl_next.xs18
-rw-r--r--ext/DynaLoader/dl_rhapsody.xs18
-rw-r--r--ext/DynaLoader/dl_vmesa.xs18
-rw-r--r--ext/DynaLoader/dl_vms.xs12
-rw-r--r--ext/DynaLoader/dlutils.c6
-rw-r--r--ext/Opcode/Opcode.xs83
-rw-r--r--ext/POSIX/POSIX.xs2
-rw-r--r--ext/Thread/Thread.xs16
-rw-r--r--ext/re/re.xs16
-rw-r--r--global.sym369
-rw-r--r--globals.c2
-rw-r--r--gv.c78
-rw-r--r--hv.c20
-rwxr-xr-xlib/ExtUtils/xsubpp8
-rw-r--r--malloc.c76
-rw-r--r--mg.c70
-rw-r--r--mg.h10
-rw-r--r--miniperlmain.c1
-rw-r--r--objXSUB.h4508
-rw-r--r--op.c274
-rw-r--r--opcode.h10
-rwxr-xr-xopcode.pl14
-rw-r--r--perl.c296
-rw-r--r--perl.h212
-rw-r--r--perlio.c27
-rw-r--r--perlsfio.h6
-rw-r--r--perly.c2
-rw-r--r--pp.c140
-rw-r--r--pp.h6
-rw-r--r--pp_ctl.c208
-rw-r--r--pp_hot.c114
-rw-r--r--pp_sys.c416
-rw-r--r--proto.h1300
-rwxr-xr-xproto.pl1095
-rw-r--r--regcomp.c90
-rw-r--r--regcomp.h16
-rw-r--r--regexec.c44
-rw-r--r--run.c6
-rw-r--r--scope.c22
-rw-r--r--scope.h12
-rw-r--r--sv.c248
-rw-r--r--taint.c4
-rw-r--r--thrdvar.h6
-rw-r--r--thread.h51
-rw-r--r--toke.c322
-rw-r--r--universal.c14
-rw-r--r--utf8.c12
-rw-r--r--util.c172
-rw-r--r--win32/Makefile2
-rw-r--r--win32/makefile.mk2
-rw-r--r--writemain.SH4
78 files changed, 9745 insertions, 8227 deletions
diff --git a/MANIFEST b/MANIFEST
index f16120eddc..8ec17f5acc 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 5c3ec647ea..44e2f7db00 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 265eb71103..3b0913a976 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 93457eaaed..c9bb491009 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 482a2578e8..d862aeb190 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 aac69f85c5..92a463c0cd 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 7b5f751a2c..2857792778 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 063d296a17..ef0d858630 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, "<undef>\n");
+ Perl_dump_indent(aTHX_ 0, Perl_debug_log, "<undef>\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, "<undef>\n");
+ Perl_dump_indent(aTHX_ 0, Perl_debug_log, "<undef>\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 14e3955096..d74351078d 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 f7cf5bc889..2db477c5ea 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 c877f0dce9..6fad12441f 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 (<DATA>) {
+ chomp;
+ while (s|\\$||) {
+ $_ .= <DATA>;
+ 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<perlguts/"API LISTING">
+# 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 f9bd01166c..ed529ad515 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 36d61f3a57..f9193ae692 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 7206a6a2e1..3531c49fb2 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 dd300be3be..e927d16f31 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 abab1e41d8..e743583b61 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 ab5b5fc6dc..e124c23efc 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 f95f9f8de2..c293160340 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 c1faea2a28..e0ca4035d3 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 d5066c1d5e..3119266fd2 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 ea5040857d..2e7cd4a7af 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 4e773df202..1bd16a69a1 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 95afcf5453..6a2b0fea03 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 2443ab0d69..1ddc443cfa 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 b2dbf3d96a..a3172088c2 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 a82e0eac11..ce454598c0 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 4cc07ec4c3..4c5d17635a 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 dfa8a3eac8..114489ae0b 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 7513bf2620..76ecb05e95 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 8c4fd1b51b..ff1b60bedf 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 2a9ba3cb0f..3640b0f64e 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 3bd58ed9b3..b1e0bd6fbf 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 b07159cfe7..100e6f8d68 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 b196963eaf..33f9b88adb 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 8ae50d14a8..f8b544da91 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 baa990d2ad..b49a110377 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 = &regexec_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 4c7f6c2da9..f3e6494355 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 b31b9b160d..857a32c78a 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 5ae3cd3436..e5312049b1 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 9a7b31f031..8656fa0756 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 1ee7b29449..416c1d50b9 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<<EOF if $except;
# if (errbuf[0])
-# croak(errbuf);
+# Perl_croak(aTHX_ errbuf);
EOF
if ($ret_type ne "void" or $EXPLICIT_RETURN) {
diff --git a/malloc.c b/malloc.c
index 32c669bbe0..1bd777a8af 100644
--- a/malloc.c
+++ b/malloc.c
@@ -147,8 +147,8 @@
warn(format, arg) fprintf(stderr, idem)
# Locking/unlocking for MT operation
- MALLOC_LOCK MUTEX_LOCK(&PL_malloc_mutex)
- MALLOC_UNLOCK MUTEX_UNLOCK(&PL_malloc_mutex)
+ MALLOC_LOCK MUTEX_LOCK_NOCONTEXT(&PL_malloc_mutex)
+ MALLOC_UNLOCK MUTEX_UNLOCK_NOCONTEXT(&PL_malloc_mutex)
# Locking/unlocking mutex for MT operation
MUTEX_LOCK(l) void
@@ -229,6 +229,10 @@
# include "EXTERN.h"
#define PERL_IN_MALLOC_C
# include "perl.h"
+# if defined(PERL_IMPLICIT_CONTEXT)
+# define croak Perl_croak_nocontext
+# define warn Perl_warn_nocontext
+# endif
#else
# ifdef PERL_FOR_X2P
# include "../EXTERN.h"
@@ -274,6 +278,12 @@
# ifdef DEBUGGING
# undef DEBUGGING
# endif
+# ifndef pTHX
+# define pTHX void
+# define pTHX_
+# define dTHX extern int Perl___notused
+# define WITH_THX(s) s
+# endif
#endif
#ifndef MUTEX_LOCK
@@ -285,11 +295,11 @@
#endif
#ifndef MALLOC_LOCK
-# define MALLOC_LOCK MUTEX_LOCK(&PL_malloc_mutex)
+# define MALLOC_LOCK MUTEX_LOCK_NOCONTEXT(&PL_malloc_mutex)
#endif
#ifndef MALLOC_UNLOCK
-# define MALLOC_UNLOCK MUTEX_UNLOCK(&PL_malloc_mutex)
+# define MALLOC_UNLOCK MUTEX_UNLOCK_NOCONTEXT(&PL_malloc_mutex)
#endif
# ifndef fatalcroak /* make depend */
@@ -710,8 +720,20 @@ static char bucket_of[] =
static char *emergency_buffer;
static MEM_SIZE emergency_buffer_size;
-STATIC Malloc_t
-emergency_sbrk(pTHX_ MEM_SIZE size)
+static int findbucket (union overhead *freep, int srchlen);
+static void morecore (register int bucket);
+# if defined(DEBUGGING)
+static void botch (char *diag, char *s);
+# endif
+static void add_to_chain (void *p, MEM_SIZE size, MEM_SIZE chip);
+static Malloc_t emergency_sbrk (MEM_SIZE size);
+static void* get_from_chain (MEM_SIZE size);
+static void* get_from_bigger_buckets(int bucket, MEM_SIZE size);
+static union overhead *getpages (int needed, int *nblksp, int bucket);
+static int getpages_adjacent(int require);
+
+static Malloc_t
+emergency_sbrk(MEM_SIZE size)
{
MEM_SIZE rsize = (((size - 1)>>LOG_OF_MIN_ARENA) + 1)<<LOG_OF_MIN_ARENA;
@@ -728,7 +750,7 @@ emergency_sbrk(pTHX_ MEM_SIZE size)
emergency_buffer += rsize;
return old;
} else {
- dTHR;
+ dTHX;
/* First offense, give a possibility to recover by dieing. */
/* No malloc involved here: */
GV **gvp = (GV**)hv_fetch(PL_defstash, "^M", 2, 0);
@@ -809,8 +831,8 @@ static u_int goodsbrk;
#ifdef DEBUGGING
#undef ASSERT
#define ASSERT(p,diag) if (!(p)) botch(diag,STRINGIFY(p)); else
-STATIC void
-botch(pTHX_ char *diag, char *s)
+static void
+botch(char *diag, char *s)
{
PerlIO_printf(PerlIO_stderr(), "assertion botched (%s?): %s\n", diag, s);
PerlProc_abort();
@@ -833,7 +855,7 @@ Perl_malloc(register size_t nbytes)
BARK_64K_LIMIT("Allocation",nbytes,nbytes);
#ifdef DEBUGGING
if ((long)nbytes < 0)
- croak("%s", "panic: malloc");
+ croak("%s", "panic: malloc");
#endif
MALLOC_LOCK;
@@ -879,7 +901,7 @@ Perl_malloc(register size_t nbytes)
#ifdef PERL_CORE
if (!PL_nomemok) {
PerlIO_puts(PerlIO_stderr(),"Out of memory!\n");
- my_exit(1);
+ WITH_THX(my_exit(1));
}
#else
return (NULL);
@@ -947,8 +969,8 @@ static int n_chunks;
static char max_bucket;
/* Cutoff a piece of one of the chunks in the chain. Prefer smaller chunk. */
-STATIC void *
-get_from_chain(pTHX_ MEM_SIZE size)
+static void *
+get_from_chain(MEM_SIZE size)
{
struct chunk_chain_s *elt = chunk_chain, **oldp = &chunk_chain;
struct chunk_chain_s **oldgoodp = NULL;
@@ -985,8 +1007,8 @@ get_from_chain(pTHX_ MEM_SIZE size)
}
}
-STATIC void
-add_to_chain(pTHX_ void *p, MEM_SIZE size, MEM_SIZE chip)
+static void
+add_to_chain(void *p, MEM_SIZE size, MEM_SIZE chip)
{
struct chunk_chain_s *next = chunk_chain;
char *cp = (char*)p;
@@ -998,8 +1020,8 @@ add_to_chain(pTHX_ void *p, MEM_SIZE size, MEM_SIZE chip)
n_chunks++;
}
-STATIC void *
-get_from_bigger_buckets(pTHX_ int bucket, MEM_SIZE size)
+static void *
+get_from_bigger_buckets(int bucket, MEM_SIZE size)
{
int price = 1;
static int bucketprice[NBUCKETS];
@@ -1028,8 +1050,8 @@ get_from_bigger_buckets(pTHX_ int bucket, MEM_SIZE size)
return NULL;
}
-STATIC union overhead *
-getpages(pTHX_ int needed, int *nblksp, int bucket)
+static union overhead *
+getpages(int needed, int *nblksp, int bucket)
{
/* Need to do (possibly expensive) system call. Try to
optimize it for rare calling. */
@@ -1181,8 +1203,8 @@ getpages(pTHX_ int needed, int *nblksp, int bucket)
return ovp;
}
-STATIC int
-getpages_adjacent(pTHX_ int require)
+static int
+getpages_adjacent(int require)
{
if (require <= sbrked_remains) {
sbrked_remains -= require;
@@ -1225,8 +1247,8 @@ getpages_adjacent(pTHX_ int require)
/*
* Allocate more memory to the indicated bucket.
*/
-STATIC void
-morecore(pTHX_ register int bucket)
+static void
+morecore(register int bucket)
{
register union overhead *ovp;
register int rnu; /* 2^rnu bytes will be requested */
@@ -1324,7 +1346,7 @@ morecore(pTHX_ register int bucket)
Free_t
Perl_mfree(void *mp)
-{
+{
register MEM_SIZE size;
register union overhead *ovp;
char *cp = (char*)mp;
@@ -1406,7 +1428,7 @@ Perl_mfree(void *mp)
Malloc_t
Perl_realloc(void *mp, size_t nbytes)
-{
+{
register MEM_SIZE onb;
union overhead *ovp;
char *res;
@@ -1419,7 +1441,7 @@ Perl_realloc(void *mp, size_t nbytes)
MEM_SIZE size = nbytes;
if ((long)nbytes < 0)
- croak("%s", "panic: realloc");
+ croak("%s", "panic: realloc");
#endif
BARK_64K_LIMIT("Reallocation",nbytes,size);
@@ -1606,7 +1628,7 @@ Perl_calloc(register size_t elements, register size_t size)
}
MEM_SIZE
-Perl_malloced_size(pTHX_ void *p)
+Perl_malloced_size(void *p)
{
union overhead *ovp = (union overhead *)
((caddr_t)p - sizeof (union overhead) * CHUNK_SHIFT);
diff --git a/mg.c b/mg.c
index fb8d4bacbc..770452fd07 100644
--- a/mg.c
+++ b/mg.c
@@ -45,13 +45,13 @@ struct magic_state {
/* MGS is typedef'ed to struct magic_state in perl.h */
STATIC void
-save_magic(pTHX_ I32 mgs_ix, SV *sv)
+S_save_magic(pTHX_ I32 mgs_ix, SV *sv)
{
dTHR;
MGS* mgs;
assert(SvMAGICAL(sv));
- SAVEDESTRUCTOR(restore_magic, (void*)mgs_ix);
+ SAVEDESTRUCTOR(S_restore_magic, (void*)mgs_ix);
mgs = SSPTR(mgs_ix, MGS*);
mgs->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 ebd47c3a9b..6a8afdc13b 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 3265bc76da..1ac5de4723 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 161a5300a9..cdb91386dd 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 91e996eac2..509715665d 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 c4bd9ae408..370fb6a705 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 b9b0b8aaa3..98e18da93b 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 <<END;
#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) = {
END
for (@ops) {
diff --git a/perl.c b/perl.c
index 87aa87082e..c137c22f7a 100644
--- a/perl.c
+++ b/perl.c
@@ -55,18 +55,20 @@ CPerlObj* perl_alloc(IPerlMem* ipM, IPerlEnv* ipE, IPerlStdIO* ipStd,
}
#else
PerlInterpreter *
-perl_alloc(pTHX)
+perl_alloc(void)
{
- PerlInterpreter *sv_interp;
+ PerlInterpreter *my_perl;
+#if !defined(PERL_IMPLICIT_CONTEXT)
PL_curinterp = 0;
- New(53, sv_interp, 1, PerlInterpreter);
- return sv_interp;
+#endif
+ New(53, my_perl, 1, PerlInterpreter);
+ return my_perl;
}
#endif /* PERL_OBJECT */
void
-perl_construct(register PerlInterpreter *sv_interp)
+perl_construct(register PerlInterpreter *my_perl)
{
#ifdef USE_THREADS
int i;
@@ -76,13 +78,13 @@ perl_construct(register PerlInterpreter *sv_interp)
#endif /* USE_THREADS */
#ifndef PERL_OBJECT
- if (!(PL_curinterp = sv_interp))
+ if (!(PL_curinterp = my_perl))
return;
#endif
#ifdef MULTIPLICITY
++PL_ninterps;
- Zero(sv_interp, 1, PerlInterpreter);
+ Zero(my_perl, 1, PerlInterpreter);
#endif
/* Init the real globals (and main thread)? */
@@ -94,7 +96,7 @@ perl_construct(register PerlInterpreter *sv_interp)
ALLOC_THREAD_KEY;
#else
if (pthread_key_create(&PL_thr_key, 0))
- croak("panic: pthread_key_create");
+ Perl_croak(aTHX_ "panic: pthread_key_create");
#endif
MUTEX_INIT(&PL_sv_mutex);
/*
@@ -114,7 +116,7 @@ perl_construct(register PerlInterpreter *sv_interp)
thr = init_main_thread();
#endif /* USE_THREADS */
- PL_protect = FUNC_NAME_TO_PTR(default_protect); /* for exceptions */
+ PL_protect = FUNC_NAME_TO_PTR(Perl_default_protect); /* for exceptions */
PL_curcop = &PL_compiling; /* needed by ckWARN, right away */
@@ -143,7 +145,7 @@ perl_construct(register PerlInterpreter *sv_interp)
/* TODO: */
/* PL_sighandlerp = sighandler; */
#else
- PL_sighandlerp = sighandler;
+ PL_sighandlerp = Perl_sighandler;
#endif
PL_pidstatus = newHV();
@@ -161,7 +163,7 @@ perl_construct(register PerlInterpreter *sv_interp)
PL_nrs = newSVpvn("\n", 1);
PL_rs = SvREFCNT_inc(PL_nrs);
- init_stacks(ARGS);
+ init_stacks();
#ifdef MULTIPLICITY
init_interp();
PL_perl_destruct_level = 1;
@@ -204,7 +206,7 @@ perl_construct(register PerlInterpreter *sv_interp)
}
void
-perl_destruct(register PerlInterpreter *sv_interp)
+perl_destruct(register PerlInterpreter *my_perl)
{
dTHR;
int destruct_level; /* 0=none, 1=full, 2=full with checks */
@@ -212,10 +214,11 @@ perl_destruct(register PerlInterpreter *sv_interp)
HV *hv;
#ifdef USE_THREADS
Thread t;
+ dTHX;
#endif /* USE_THREADS */
-#ifndef PERL_OBJECT
- if (!(PL_curinterp = sv_interp))
+#if !defined(PERL_OBJECT) && !defined(PERL_IMPLICIT_CONTEXT)
+ if (!(PL_curinterp = my_perl))
return;
#endif
@@ -341,7 +344,7 @@ perl_destruct(register PerlInterpreter *sv_interp)
/* call exit list functions */
while (PL_exitlistlen-- > 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 cd46b7d471..73f1dc6fcf 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 <stdlib.h>
#endif
+#if !defined(PERL_FOR_X2P)
+# include "embed.h"
+#endif
+
#define MEM_SIZE Size_t
/* This comes after <stdlib.h> 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 /* <assert.h> 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 a71acba783..3094ea767c 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 8c9387fbd0..d6731e46ac 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 8b77303f1e..1a31506367 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 fed72bba70..8874b30578 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 2b8f233e6a..ca8dc35640 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 f6baf4e1be..e253b92cb0 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 36a33ff04d..b652a63b49 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 7ffc1c2787..f2d0bc342c 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 95b0831503..dad622a265 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);
-#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);
-#endif
-#if defined(PERL_IN_DOOP_C)
-STATIC I32 do_trans_CU_trivial(pTHX_ SV *sv);
-#endif
-#if defined(PERL_IN_DOOP_C)
-STATIC I32 do_trans_UC_simple(pTHX_ SV *sv);
+STATIC I32 S_avhv_index_sv(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);
-#endif
-#if defined(PERL_IN_DOOP_C)
-STATIC I32 do_trans_UU_count(pTHX_ SV *sv);
-#endif
-#if defined(PERL_IN_DOOP_C)
-STATIC I32 do_trans_UU_simple(pTHX_ SV *sv);
-#endif
-#if defined(PERL_IN_PP_CTL_C)
-STATIC OP* docatch(pTHX_ OP *o);
-#endif
-#if defined(PERL_IN_PP_CTL_C)
-STATIC void* docatch_body(pTHX_ va_list args);
-#endif
-#if defined(PERL_IN_PP_C)
-STATIC void doencodes(pTHX_ SV* sv, char* s, I32 len);
-#endif
-#if defined(PERL_IN_PP_CTL_C)
-STATIC OP* doeval(pTHX_ int gimme, OP** startop);
-#endif
-#if defined(PERL_IN_PP_CTL_C)
-STATIC OP* dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit);
-#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);
-#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);
-#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);
-#endif
-#if defined(PERL_IN_PERL_C)
-STATIC void forbid_setid(pTHX_ char *);
-#endif
-#if defined(PERL_IN_TOKE_C)
-STATIC void force_ident(pTHX_ char *s, int kind);
-#endif
-#if defined(PERL_IN_TOKE_C)
-STATIC void force_next(pTHX_ I32 type);
-#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);
+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_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);
+STATIC void S_gv_init_sv(pTHX_ GV *gv, I32 sv_type);
#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);
+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_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);
-#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);
+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_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));
+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_PERL_C)
-STATIC I32 read_e_script(pTHX_ int idx, SV *buf_sv, int maxlen);
+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 SV* refto(pTHX_ SV* sv);
+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_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 *);
+#if defined(PERL_IN_PP_CTL_C)
+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_REGEXEC_C)
-STATIC I32 regtry(pTHX_ regexp *prog, char *startpos);
+#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_REGCOMP_C)
-STATIC void reguni(pTHX_ UV, char *, I32*);
+#if defined(PERL_IN_PP_SYS_C)
+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 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);
+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_REGEXEC_C)
-STATIC void restore_pos(pTHX_ void *arg);
+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_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);
+#if defined(PERL_IN_RUN_C)
+STATIC void S_debprof(pTHX_ OP *o);
#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);
+STATIC SV* S_save_scalar_at(pTHX_ SV **sptr);
#endif
#if defined(PERL_IN_SV_C)
-STATIC void visit(pTHX_ SVFUNC_t f);
+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(WIN32) && defined(PERL_IN_TOKE_C)
-STATIC I32 win32_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+#if defined(PERL_IN_UNIVERSAL_C)
+STATIC SV* S_isa_lookup(pTHX_ HV *stash, const char *name, int len, int level);
#endif
-#if defined(LEAKTEST) && defined(PERL_IN_UTIL_C)
-STATIC void xstat(pTHX_ int);
+#if defined(PERL_IN_UTIL_C)
+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 124aff0038..0000000000
--- 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 (<DATA>) {
- next if /^\s*(#|$)/;
- chomp;
- while (s|\\$||) {
- $_ .= <DATA>;
- 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 d0d451bec3..76ae52376e 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 1538f8ab58..5097d97169 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 d1f8189ec0..833e4bde94 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 36fffd762b..9d3189dc90 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 58272e12a5..f87689e387 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 01fc083804..7ebccf45d3 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 abb2da7594..889d9f9f43 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 4d000a1b36..0fe6f3286a 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 dcaaccbce5..a442367f6b 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 5c8205e609..f6c468c675 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 af93ad80e4..4b4e1401f1 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 6ee0d7697c..63c6910c12 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 5faaa3e6d1..8c7aee2d89 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 9c0df21793..2c897a4776 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 3d8570e21b..e1a864fa96 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 c6605ec0b9..1b2fa4ebd2 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 3a81fa679a..18544c1f81 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