summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/CORE
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-05-21 00:15:27 +0000
committerKarl Berry <karl@freefriends.org>2012-05-21 00:15:27 +0000
commita4c42bfb2337d37da89d789cb8cc226367994e32 (patch)
treec3eabdef5d565a4e515d2be0d9d4d0540bde0250 /Master/tlpkg/tlperl/lib/CORE
parent8274475057f024d35332ac47c2e2f23ea156e6ed (diff)
perl 5.14.2 from siep
git-svn-id: svn://tug.org/texlive/trunk@26525 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/CORE')
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/XSUB.h62
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/av.h11
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/cc_runtime.h85
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/config.h2583
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/cop.h476
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/cv.h27
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/embed.h5637
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/embedvar.h79
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/gv.h47
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/handy.h463
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/hv.h105
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/intrpvar.h144
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/iperlsys.h22
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/keywords.h11
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h265
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/libperl514.a (renamed from Master/tlpkg/tlperl/lib/CORE/libperl512.a)bin1053702 -> 882018 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/malloc_ctl.h10
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/metaconfig.h44
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/mg.h18
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/mydtrace.h16
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/op.h292
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/op_reg_common.h110
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/opcode.h2308
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/opnames.h20
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/overload.h148
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/pad.h6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/parser.h28
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/patchlevel.h24
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perl.h578
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlapi.h675
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlhost.h17
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlio.h7
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perliol.h7
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlsdio.h6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlvars.h15
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perly.h349
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/pp.h174
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/pp_proto.h678
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/proto.h7377
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/reentr.h5
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regcharclass.h91
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regcomp.h194
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regexp.h195
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regnodes.h535
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/scope.h18
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/sv.h214
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/sys/socket.h79
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/uconfig.h2632
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/utf8.h237
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/utfebcdic.h133
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/util.h15
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/warnings.h17
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/win32.h119
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/win32iop.h1
54 files changed, 13042 insertions, 14367 deletions
diff --git a/Master/tlpkg/tlperl/lib/CORE/XSUB.h b/Master/tlpkg/tlperl/lib/CORE/XSUB.h
index 0d2c24f8b76..a2cfccd8db2 100644
--- a/Master/tlpkg/tlperl/lib/CORE/XSUB.h
+++ b/Master/tlpkg/tlperl/lib/CORE/XSUB.h
@@ -72,8 +72,9 @@ Sets up the C<ix> variable for an XSUB which has aliases. This is usually
handled automatically by C<xsubpp>.
=for apidoc Ams||dUNDERBAR
-Sets up the C<padoff_du> variable for an XSUB that wishes to use
-C<UNDERBAR>.
+Sets up any variable needed by the C<UNDERBAR> macro. It used to define
+C<padoff_du>, but it is currently a noop. However, it is strongly advised
+to still use it for ensuring past and future compatibility.
=for apidoc AmU||UNDERBAR
The SV* corresponding to the $_ variable. Works even if there
@@ -166,10 +167,8 @@ is a lexical $_ in scope.
#define XSINTERFACE_FUNC_SET(cv,f) \
CvXSUBANY(cv).any_dxptr = (void (*) (pTHX_ void*))(f)
-#define dUNDERBAR PADOFFSET padoff_du = find_rundefsvoffset()
-#define UNDERBAR ((padoff_du == NOT_IN_PAD \
- || PAD_COMPNAME_FLAGS_isOUR(padoff_du)) \
- ? DEFSV : PAD_SVl(padoff_du))
+#define dUNDERBAR dNOOP
+#define UNDERBAR find_rundefsv()
/* Simple macros to put new mortal values onto the stack. */
/* Typically used to return values from XS functions. */
@@ -244,6 +243,10 @@ Macro to verify that a PM module's $VERSION variable matches the XS
module's C<XS_VERSION> variable. This is usually handled automatically by
C<xsubpp>. See L<perlxs/"The VERSIONCHECK: Keyword">.
+=for apidoc Ams||XS_APIVERSION_BOOTCHECK
+Macro to verify that the perl api version an XS module has been compiled against
+matches the api version of the perl interpreter it's being loaded into.
+
=head1 Simple Exception Handling Macros
=for apidoc Ams||dXCPT
@@ -295,47 +298,14 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
#ifdef XS_VERSION
# define XS_VERSION_BOOTCHECK \
- STMT_START { \
- SV *_sv; \
- const char *vn = NULL, *module = SvPV_nolen_const(ST(0)); \
- if (items >= 2) /* version supplied as bootstrap arg */ \
- _sv = ST(1); \
- else { \
- /* XXX GV_ADDWARN */ \
- _sv = get_sv(Perl_form(aTHX_ "%s::%s", module, \
- vn = "XS_VERSION"), FALSE); \
- if (!_sv || !SvOK(_sv)) \
- _sv = get_sv(Perl_form(aTHX_ "%s::%s", module, \
- vn = "VERSION"), FALSE); \
- } \
- if (_sv) { \
- SV *xpt = NULL; \
- SV *xssv = Perl_newSVpvn(aTHX_ STR_WITH_LEN(XS_VERSION)); \
- SV *pmsv = sv_derived_from(_sv, "version") \
- ? SvREFCNT_inc_simple_NN(_sv) \
- : new_version(_sv); \
- xssv = upg_version(xssv, 0); \
- if ( vcmp(pmsv,xssv) ) { \
- xpt = Perl_newSVpvf(aTHX_ "%s object version %"SVf \
- " does not match %s%s%s%s %"SVf, \
- module, \
- SVfARG(Perl_sv_2mortal(aTHX_ vstringify(xssv))), \
- vn ? "$" : "", vn ? module : "", \
- vn ? "::" : "", \
- vn ? vn : "bootstrap parameter", \
- SVfARG(Perl_sv_2mortal(aTHX_ vstringify(pmsv)))); \
- Perl_sv_2mortal(aTHX_ xpt); \
- } \
- SvREFCNT_dec(xssv); \
- SvREFCNT_dec(pmsv); \
- if (xpt) \
- Perl_croak(aTHX_ "%s", SvPVX(xpt)); \
- } \
- } STMT_END
+ Perl_xs_version_bootcheck(aTHX_ items, ax, STR_WITH_LEN(XS_VERSION))
#else
# define XS_VERSION_BOOTCHECK
#endif
+#define XS_APIVERSION_BOOTCHECK \
+ Perl_xs_apiversion_bootcheck(aTHX_ ST(0), STR_WITH_LEN("v" PERL_API_VERSION_STRING))
+
#ifdef NO_XSLOCKS
# define dXCPT dJMPENV; int rEtV = 0
# define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0)
@@ -344,9 +314,9 @@ Rethrows a previously caught exception. See L<perlguts/"Exception Handling">.
# define XCPT_RETHROW JMPENV_JUMP(rEtV)
#endif
-/*
- The DBM_setFilter & DBM_ckFilter macros are only used by
- the *DB*_File modules
+/*
+ The DBM_setFilter & DBM_ckFilter macros are only used by
+ the *DB*_File modules
*/
#define DBM_setFilter(db_type,code) \
diff --git a/Master/tlpkg/tlperl/lib/CORE/av.h b/Master/tlpkg/tlperl/lib/CORE/av.h
index f8c9d1bdc24..de54fa92826 100644
--- a/Master/tlpkg/tlperl/lib/CORE/av.h
+++ b/Master/tlpkg/tlperl/lib/CORE/av.h
@@ -9,14 +9,13 @@
*/
struct xpvav {
- union _xnvu xnv_u;
+ HV* xmg_stash; /* class package */
+ union _xmgu xmg_u;
SSize_t xav_fill; /* Index of last element present */
SSize_t xav_max; /* max index for which array has space */
- _XPVMG_HEAD;
+ SV** xav_alloc; /* pointer to beginning of C array of SVs */
};
-/* SV** xav_alloc; */
-#define xav_alloc xiv_u.xivu_p1
/* SV* xav_arylen; */
/* SVpav_REAL is set for all AVs whose xav_array contents are refcounted.
@@ -29,7 +28,7 @@ struct xpvav {
* real if the array needs to be modified in some way. Functions that
* modify fake AVs check both flags to call av_reify() as appropriate.
*
- * Note that the Perl stack and @DB::args have neither flag set. (Thus,
+ * Note that the Perl stack has neither flag set. (Thus,
* items that go on the stack are never refcounted.)
*
* These internal details are subject to change any time. AV
@@ -58,7 +57,7 @@ Same as C<av_len()>. Deprecated, use C<av_len()> instead.
#endif
#define AvARRAY(av) ((av)->sv_u.svu_array)
-#define AvALLOC(av) (*((SV***)&((XPVAV*) SvANY(av))->xav_alloc))
+#define AvALLOC(av) ((XPVAV*) SvANY(av))->xav_alloc
#define AvMAX(av) ((XPVAV*) SvANY(av))->xav_max
#define AvFILLp(av) ((XPVAV*) SvANY(av))->xav_fill
#define AvARYLEN(av) (*Perl_av_arylen_p(aTHX_ MUTABLE_AV(av)))
diff --git a/Master/tlpkg/tlperl/lib/CORE/cc_runtime.h b/Master/tlpkg/tlperl/lib/CORE/cc_runtime.h
deleted file mode 100644
index 90826dfb0e0..00000000000
--- a/Master/tlpkg/tlperl/lib/CORE/cc_runtime.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* cc_runtime.h
- *
- * Copyright (C) 1999, 2000, 2001, 2004, 2006, 2008 by Larry Wall and others
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Artistic License, as specified in the README file.
- *
- */
-
-#define DOOP(ppname) PUTBACK; PL_op = ppname(aTHX); SPAGAIN
-#define CCPP(s) OP * s(pTHX)
-
-#define PP_LIST(g) do { \
- dMARK; \
- if (g != G_ARRAY) { \
- if (++MARK <= SP) \
- *MARK = *SP; \
- else \
- *MARK = &PL_sv_undef; \
- SP = MARK; \
- } \
- } while (0)
-
-#define MAYBE_TAINT_SASSIGN_SRC(sv) \
- if (PL_tainting && PL_tainted && (!SvGMAGICAL(left) || !SvSMAGICAL(left) || \
- !((mg=mg_find(left, PERL_MAGIC_taint)) && mg->mg_len & 1)))\
- TAINT_NOT
-
-#define PP_PREINC(sv) do { \
- if (SvIOK(sv)) { \
- ++SvIVX(sv); \
- SvFLAGS(sv) &= ~(SVf_NOK|SVf_POK|SVp_NOK|SVp_POK); \
- } \
- else \
- sv_inc(sv); \
- SvSETMAGIC(sv); \
- } while (0)
-
-#define PP_UNSTACK do { \
- TAINT_NOT; \
- PL_stack_sp = PL_stack_base + cxstack[cxstack_ix].blk_oldsp; \
- FREETMPS; \
- oldsave = PL_scopestack[PL_scopestack_ix - 1]; \
- LEAVE_SCOPE(oldsave); \
- SPAGAIN; \
- } while(0)
-
-/* Anyone using eval "" deserves this mess */
-#define PP_EVAL(ppaddr, nxt) do { \
- dJMPENV; \
- int ret; \
- PUTBACK; \
- JMPENV_PUSH(ret); \
- switch (ret) { \
- case 0: \
- PL_op = ppaddr(aTHX); \
- cxstack[cxstack_ix].blk_eval.retop = Nullop; \
- if (PL_op != nxt) CALLRUNOPS(aTHX); \
- JMPENV_POP; \
- break; \
- case 1: JMPENV_POP; JMPENV_JUMP(1); \
- case 2: JMPENV_POP; JMPENV_JUMP(2); \
- case 3: \
- JMPENV_POP; \
- if (PL_restartop && PL_restartop != nxt) \
- JMPENV_JUMP(3); \
- } \
- PL_op = nxt; \
- SPAGAIN; \
- } while (0)
-
-#define PP_ENTERTRY(label) \
- STMT_START { \
- dJMPENV; \
- int ret; \
- JMPENV_PUSH(ret); \
- switch (ret) { \
- case 1: JMPENV_POP; JMPENV_JUMP(1);\
- case 2: JMPENV_POP; JMPENV_JUMP(2);\
- case 3: JMPENV_POP; SPAGAIN; goto label;\
- } \
- } STMT_END
-
-#define PP_LEAVETRY \
- STMT_START{ PL_top_env=PL_top_env->je_prev; }STMT_END
diff --git a/Master/tlpkg/tlperl/lib/CORE/config.h b/Master/tlpkg/tlperl/lib/CORE/config.h
index 0dd6de31bf0..8a65c234e73 100644
--- a/Master/tlpkg/tlperl/lib/CORE/config.h
+++ b/Master/tlpkg/tlperl/lib/CORE/config.h
@@ -1,19 +1,15 @@
-/*
- * This file was produced by running the config_h.SH script, which
+/* This file was produced by running the config_h.SH script, which
* gets its values from undef, which is generally produced by
* running Configure.
*
* Feel free to modify any of this as the need arises. Note, however,
* that running config_h.SH again will wipe out any changes you've made.
* For a more permanent change edit undef and rerun config_h.SH.
- *
- * $Id: Config_h.U 1 2006-08-24 12:32:52Z rmanfredi $
*/
-/*
- * Package name : perl5
+/* Package name : perl5
* Source directory :
- * Configuration time: Thu Feb 10 14:38:06 2011
+ * Configuration time: Fri May 18 10:52:25 2012
* Configured by : siepo
* Target system :
*/
@@ -910,7 +906,7 @@
/* HAS_QUAD:
* This symbol, if defined, tells that there's a 64-bit integer type,
- * Quad_t, and its unsigned counterpar, Uquad_t. QUADKIND will be one
+ * Quad_t, and its unsigned counterpart, Uquad_t. QUADKIND will be one
* of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT64_T.
*/
#define HAS_QUAD /**/
@@ -924,18 +920,28 @@
# define QUAD_IS_INT64_T 4
#endif
-/* OSNAME:
- * This symbol contains the name of the operating system, as determined
- * by Configure. You shouldn't rely on it too much; the specific
- * feature tests from Configure are generally more reliable.
+/* USE_CROSS_COMPILE:
+ * This symbol, if defined, indicates that Perl is being cross-compiled.
*/
-/* OSVERS:
- * This symbol contains the version of the operating system, as determined
- * by Configure. You shouldn't rely on it too much; the specific
- * feature tests from Configure are generally more reliable.
+/* PERL_TARGETARCH:
+ * This symbol, if defined, indicates the target architecture
+ * Perl has been cross-compiled to. Undefined if not a cross-compile.
*/
-#define OSNAME "MSWin32" /**/
-#define OSVERS "5.1" /**/
+#ifndef USE_CROSS_COMPILE
+/*#define USE_CROSS_COMPILE / **/
+#define PERL_TARGETARCH "" /**/
+#endif
+
+/* MEM_ALIGNBYTES:
+ * This symbol contains the number of bytes required to align a
+ * double, or a long double when applicable. Usual values are 2,
+ * 4 and 8. The default is eight, for safety.
+ */
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
+# define MEM_ALIGNBYTES 8
+#else
+#define MEM_ALIGNBYTES 8
+#endif
/* ARCHLIB:
* This variable, if defined, holds the name of the directory in
@@ -950,7 +956,7 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "c:\\perl\\lib" /**/
+#define ARCHLIB "x:\\tlperl\\lib" /**/
/*#define ARCHLIB_EXP "" / **/
/* ARCHNAME:
@@ -973,67 +979,58 @@
* This symbol, if defined, indicates that we'd like to relocate entries
* in @INC at run time based on the location of the perl binary.
*/
-#define BIN "c:\\perl\\bin" /**/
-#define BIN_EXP "c:\\perl\\bin" /**/
+#define BIN "x:\\tlperl\\bin" /**/
+#define BIN_EXP "x:\\tlperl\\bin" /**/
#define PERL_RELOCATABLE_INC "undef" /**/
-/* CAT2:
- * This macro concatenates 2 tokens together.
- */
-/* STRINGIFY:
- * This macro surrounds its token with double quotes.
- */
-#if 42 == 1
-#define CAT2(a,b) a/**/b
-#define STRINGIFY(a) "a"
-#endif
-#if 42 == 42
-#define PeRl_CaTiFy(a, b) a ## b
-#define PeRl_StGiFy(a) #a
-#define CAT2(a,b) PeRl_CaTiFy(a,b)
-#define StGiFy(a) PeRl_StGiFy(a)
-#define STRINGIFY(a) PeRl_StGiFy(a)
-#endif
-#if 42 != 1 && 42 != 42
-#include "Bletch: How does this C preprocessor concatenate tokens?"
-#endif
-
-/* CPPSTDIN:
- * This symbol contains the first part of the string which will invoke
- * the C preprocessor on the standard input and produce to standard
- * output. Typical value of "cc -E" or "/lib/cpp", but it can also
- * call a wrapper. See CPPRUN.
- */
-/* CPPMINUS:
- * This symbol contains the second part of the string which will invoke
- * the C preprocessor on the standard input and produce to standard
- * output. This symbol will have the value "-" if CPPSTDIN needs a minus
- * to specify standard input, otherwise the value is "".
- */
-/* CPPRUN:
- * This symbol contains the string which will invoke a C preprocessor on
- * the standard input and produce to standard output. It needs to end
- * with CPPLAST, after all other preprocessor flags have been specified.
- * The main difference with CPPSTDIN is that this program will never be a
- * pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
- * available directly to the user. Note that it may well be different from
- * the preprocessor used to compile the C program.
- */
-/* CPPLAST:
- * This symbol is intended to be used along with CPPRUN in the same manner
- * symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "".
+/* BYTEORDER:
+ * This symbol holds the hexadecimal constant defined in byteorder,
+ * in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
+ * If the compiler supports cross-compiling or multiple-architecture
+ * binaries (eg. on NeXT systems), use compiler-defined macros to
+ * determine the byte order.
+ * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
+ * Binaries (MAB) on either big endian or little endian machines.
+ * The endian-ness is available at compile-time. This only matters
+ * for perl, where the config.h can be generated and installed on
+ * one system, and used by a different architecture to build an
+ * extension. Older versions of NeXT that might not have
+ * defined either *_ENDIAN__ were all on Motorola 680x0 series,
+ * so the default case (for NeXT) is big endian to catch them.
+ * This might matter for NeXT 3.0.
*/
-#define CPPSTDIN "gcc -E"
-#define CPPMINUS "-"
-#define CPPRUN "gcc -E"
-#define CPPLAST ""
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
+# ifdef __LITTLE_ENDIAN__
+# if LONGSIZE == 4
+# define BYTEORDER 0x1234
+# else
+# if LONGSIZE == 8
+# define BYTEORDER 0x12345678
+# endif
+# endif
+# else
+# ifdef __BIG_ENDIAN__
+# if LONGSIZE == 4
+# define BYTEORDER 0x4321
+# else
+# if LONGSIZE == 8
+# define BYTEORDER 0x87654321
+# endif
+# endif
+# endif
+# endif
+# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
+# define BYTEORDER 0x4321
+# endif
+#else
+#define BYTEORDER 0x1234 /* large digits for MSB */
+#endif /* NeXT */
-/* HAS_ACCESS:
- * This manifest constant lets the C program know that the access()
- * system call is available to check for accessibility using real UID/GID.
- * (always present on UNIX.)
+/* CHARBITS:
+ * This symbol contains the size of a char, so that the C preprocessor
+ * can make decisions based on it.
*/
-#define HAS_ACCESS /**/
+#define CHARBITS 8 /**/
/* HAS_ACCESSX:
* This symbol, if defined, indicates that the accessx routine is
@@ -1054,53 +1051,32 @@
/*#define HAS_ASCTIME_R / **/
#define ASCTIME_R_PROTO 0 /**/
-/* HASATTRIBUTE_FORMAT:
- * Can we handle GCC attribute for checking printf-style formats
- */
-/* PRINTF_FORMAT_NULL_OK:
- * Allows __printf__ format to be null when checking printf-style
- */
-/* HASATTRIBUTE_MALLOC:
- * Can we handle GCC attribute for malloc-style functions.
- */
-/* HASATTRIBUTE_NONNULL:
- * Can we handle GCC attribute for nonnull function parms.
- */
-/* HASATTRIBUTE_NORETURN:
- * Can we handle GCC attribute for functions that do not return
- */
-/* HASATTRIBUTE_PURE:
- * Can we handle GCC attribute for pure functions
- */
-/* HASATTRIBUTE_UNUSED:
- * Can we handle GCC attribute for unused variables and arguments
+/* CASTI32:
+ * This symbol is defined if the C compiler can cast negative
+ * or large floating point numbers to 32-bit ints.
*/
-/* HASATTRIBUTE_DEPRECATED:
- * Can we handle GCC attribute for marking deprecated APIs
+#define CASTI32 /**/
+
+/* CASTNEGFLOAT:
+ * This symbol is defined if the C compiler can cast negative
+ * numbers to unsigned longs, ints and shorts.
*/
-/* HASATTRIBUTE_WARN_UNUSED_RESULT:
- * Can we handle GCC attribute for warning on unused results
+/* CASTFLAGS:
+ * This symbol contains flags that say what difficulties the compiler
+ * has casting odd floating values to unsigned long:
+ * 0 = ok
+ * 1 = couldn't cast < 0
+ * 2 = couldn't cast >= 0x80000000
+ * 4 = couldn't cast in argument expression list
*/
-/*#define HASATTRIBUTE_DEPRECATED / **/
-/*#define HASATTRIBUTE_FORMAT / **/
-/*#define PRINTF_FORMAT_NULL_OK / **/
-/*#define HASATTRIBUTE_NORETURN / **/
-/*#define HASATTRIBUTE_MALLOC / **/
-/*#define HASATTRIBUTE_NONNULL / **/
-/*#define HASATTRIBUTE_PURE / **/
-/*#define HASATTRIBUTE_UNUSED / **/
-/*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/
+#define CASTNEGFLOAT /**/
+#define CASTFLAGS 0 /**/
-/* HASCONST:
- * This symbol, if defined, indicates that this C compiler knows about
- * the const type. There is no need to actually test for that symbol
- * within your programs. The mere use of the "const" keyword will
- * trigger the necessary tests.
+/* VOID_CLOSEDIR:
+ * This symbol, if defined, indicates that the closedir() routine
+ * does not return a value.
*/
-#define HASCONST /**/
-#ifndef HASCONST
-#define const
-#endif
+/*#define VOID_CLOSEDIR / **/
/* HAS_CRYPT_R:
* This symbol, if defined, indicates that the crypt_r routine
@@ -1115,17 +1091,6 @@
/*#define HAS_CRYPT_R / **/
#define CRYPT_R_PROTO 0 /**/
-/* HAS_CSH:
- * This symbol, if defined, indicates that the C-shell exists.
- */
-/* CSH:
- * This symbol, if defined, contains the full pathname of csh.
- */
-/*#define HAS_CSH / **/
-#ifdef HAS_CSH
-#define CSH "" /**/
-#endif
-
/* HAS_CTERMID_R:
* This symbol, if defined, indicates that the ctermid_r routine
* is available to ctermid re-entrantly.
@@ -1165,26 +1130,12 @@
/*#define HAS_DRAND48_R / **/
#define DRAND48_R_PROTO 0 /**/
-/* HAS_DRAND48_PROTO:
- * This symbol, if defined, indicates that the system provides
- * a prototype for the drand48() function. Otherwise, it is up
- * to the program to supply one. A good guess is
- * extern double drand48(void);
- */
-/*#define HAS_DRAND48_PROTO / **/
-
/* HAS_EACCESS:
* This symbol, if defined, indicates that the eaccess routine is
* available to do extended access checks.
*/
/*#define HAS_EACCESS / **/
-/* HAS_ENDGRENT:
- * This symbol, if defined, indicates that the getgrent routine is
- * available for finalizing sequential access of the group database.
- */
-/*#define HAS_ENDGRENT / **/
-
/* HAS_ENDGRENT_R:
* This symbol, if defined, indicates that the endgrent_r routine
* is available to endgrent re-entrantly.
@@ -1198,12 +1149,6 @@
/*#define HAS_ENDGRENT_R / **/
#define ENDGRENT_R_PROTO 0 /**/
-/* HAS_ENDHOSTENT:
- * This symbol, if defined, indicates that the endhostent() routine is
- * available to close whatever was being used for host queries.
- */
-/*#define HAS_ENDHOSTENT / **/
-
/* HAS_ENDHOSTENT_R:
* This symbol, if defined, indicates that the endhostent_r routine
* is available to endhostent re-entrantly.
@@ -1217,12 +1162,6 @@
/*#define HAS_ENDHOSTENT_R / **/
#define ENDHOSTENT_R_PROTO 0 /**/
-/* HAS_ENDNETENT:
- * This symbol, if defined, indicates that the endnetent() routine is
- * available to close whatever was being used for network queries.
- */
-/*#define HAS_ENDNETENT / **/
-
/* HAS_ENDNETENT_R:
* This symbol, if defined, indicates that the endnetent_r routine
* is available to endnetent re-entrantly.
@@ -1236,12 +1175,6 @@
/*#define HAS_ENDNETENT_R / **/
#define ENDNETENT_R_PROTO 0 /**/
-/* HAS_ENDPROTOENT:
- * This symbol, if defined, indicates that the endprotoent() routine is
- * available to close whatever was being used for protocol queries.
- */
-/*#define HAS_ENDPROTOENT / **/
-
/* HAS_ENDPROTOENT_R:
* This symbol, if defined, indicates that the endprotoent_r routine
* is available to endprotoent re-entrantly.
@@ -1255,12 +1188,6 @@
/*#define HAS_ENDPROTOENT_R / **/
#define ENDPROTOENT_R_PROTO 0 /**/
-/* HAS_ENDPWENT:
- * This symbol, if defined, indicates that the getgrent routine is
- * available for finalizing sequential access of the passwd database.
- */
-/*#define HAS_ENDPWENT / **/
-
/* HAS_ENDPWENT_R:
* This symbol, if defined, indicates that the endpwent_r routine
* is available to endpwent re-entrantly.
@@ -1274,12 +1201,6 @@
/*#define HAS_ENDPWENT_R / **/
#define ENDPWENT_R_PROTO 0 /**/
-/* HAS_ENDSERVENT:
- * This symbol, if defined, indicates that the endservent() routine is
- * available to close whatever was being used for service queries.
- */
-/*#define HAS_ENDSERVENT / **/
-
/* HAS_ENDSERVENT_R:
* This symbol, if defined, indicates that the endservent_r routine
* is available to endservent re-entrantly.
@@ -1293,17 +1214,28 @@
/*#define HAS_ENDSERVENT_R / **/
#define ENDSERVENT_R_PROTO 0 /**/
-/* FLEXFILENAMES:
- * This symbol, if defined, indicates that the system supports filenames
- * longer than 14 characters.
+/* HAS_FD_SET:
+ * This symbol, when defined, indicates presence of the fd_set typedef
+ * in <sys/types.h>
*/
-#define FLEXFILENAMES /**/
+#define HAS_FD_SET /**/
-/* HAS_GETGRENT:
- * This symbol, if defined, indicates that the getgrent routine is
- * available for sequential access of the group database.
+/* Gconvert:
+ * This preprocessor macro is defined to convert a floating point
+ * number to a string without a trailing decimal point. This
+ * emulates the behavior of sprintf("%g"), but is sometimes much more
+ * efficient. If gconvert() is not available, but gcvt() drops the
+ * trailing decimal point, then gcvt() is used. If all else fails,
+ * a macro using sprintf("%g") is used. Arguments for the Gconvert
+ * macro are: value, number of digits, whether trailing zeros should
+ * be retained, and the output buffer.
+ * The usual values are:
+ * d_Gconvert='gconvert((x),(n),(t),(b))'
+ * d_Gconvert='gcvt((x),(n),(b))'
+ * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+ * The last two assume trailing zeros should not be kept.
*/
-/*#define HAS_GETGRENT / **/
+#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
/* HAS_GETGRENT_R:
* This symbol, if defined, indicates that the getgrent_r routine
@@ -1344,53 +1276,6 @@
/*#define HAS_GETGRNAM_R / **/
#define GETGRNAM_R_PROTO 0 /**/
-/* HAS_GETHOSTBYADDR:
- * This symbol, if defined, indicates that the gethostbyaddr() routine is
- * available to look up hosts by their IP addresses.
- */
-#define HAS_GETHOSTBYADDR /**/
-
-/* HAS_GETHOSTBYNAME:
- * This symbol, if defined, indicates that the gethostbyname() routine is
- * available to look up host names in some data base or other.
- */
-#define HAS_GETHOSTBYNAME /**/
-
-/* HAS_GETHOSTENT:
- * This symbol, if defined, indicates that the gethostent() routine is
- * available to look up host names in some data base or another.
- */
-/*#define HAS_GETHOSTENT / **/
-
-/* HAS_GETHOSTNAME:
- * This symbol, if defined, indicates that the C program may use the
- * gethostname() routine to derive the host name. See also HAS_UNAME
- * and PHOSTNAME.
- */
-/* HAS_UNAME:
- * This symbol, if defined, indicates that the C program may use the
- * uname() routine to derive the host name. See also HAS_GETHOSTNAME
- * and PHOSTNAME.
- */
-/* PHOSTNAME:
- * This symbol, if defined, indicates the command to feed to the
- * popen() routine to derive the host name. See also HAS_GETHOSTNAME
- * and HAS_UNAME. Note that the command uses a fully qualified path,
- * so that it is safe even if used by a process with super-user
- * privileges.
- */
-/* HAS_PHOSTNAME:
- * This symbol, if defined, indicates that the C program may use the
- * contents of PHOSTNAME as a command to feed to the popen() routine
- * to derive the host name.
- */
-#define HAS_GETHOSTNAME /**/
-#define HAS_UNAME /**/
-/*#define HAS_PHOSTNAME / **/
-#ifdef HAS_PHOSTNAME
-#define PHOSTNAME "" /* How to get the host name */
-#endif
-
/* HAS_GETHOSTBYADDR_R:
* This symbol, if defined, indicates that the gethostbyaddr_r routine
* is available to gethostbyaddr re-entrantly.
@@ -1430,14 +1315,6 @@
/*#define HAS_GETHOSTENT_R / **/
#define GETHOSTENT_R_PROTO 0 /**/
-/* HAS_GETHOST_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for gethostent(), gethostbyname(), and
- * gethostbyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-#define HAS_GETHOST_PROTOS /**/
-
/* HAS_GETLOGIN_R:
* This symbol, if defined, indicates that the getlogin_r routine
* is available to getlogin re-entrantly.
@@ -1451,24 +1328,6 @@
/*#define HAS_GETLOGIN_R / **/
#define GETLOGIN_R_PROTO 0 /**/
-/* HAS_GETNETBYADDR:
- * This symbol, if defined, indicates that the getnetbyaddr() routine is
- * available to look up networks by their IP addresses.
- */
-/*#define HAS_GETNETBYADDR / **/
-
-/* HAS_GETNETBYNAME:
- * This symbol, if defined, indicates that the getnetbyname() routine is
- * available to look up networks by their names.
- */
-/*#define HAS_GETNETBYNAME / **/
-
-/* HAS_GETNETENT:
- * This symbol, if defined, indicates that the getnetent() routine is
- * available to look up network names in some data base or another.
- */
-/*#define HAS_GETNETENT / **/
-
/* HAS_GETNETBYADDR_R:
* This symbol, if defined, indicates that the getnetbyaddr_r routine
* is available to getnetbyaddr re-entrantly.
@@ -1508,41 +1367,12 @@
/*#define HAS_GETNETENT_R / **/
#define GETNETENT_R_PROTO 0 /**/
-/* HAS_GETNET_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for getnetent(), getnetbyname(), and
- * getnetbyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-/*#define HAS_GETNET_PROTOS / **/
-
-/* HAS_GETPROTOENT:
- * This symbol, if defined, indicates that the getprotoent() routine is
- * available to look up protocols in some data base or another.
- */
-/*#define HAS_GETPROTOENT / **/
-
-/* HAS_GETPGRP:
- * This symbol, if defined, indicates that the getpgrp routine is
- * available to get the current process group.
- */
-/* USE_BSD_GETPGRP:
- * This symbol, if defined, indicates that getpgrp needs one
- * arguments whereas USG one needs none.
- */
-/*#define HAS_GETPGRP / **/
-/*#define USE_BSD_GETPGRP / **/
-
-/* HAS_GETPROTOBYNAME:
- * This symbol, if defined, indicates that the getprotobyname()
- * routine is available to look up protocols by their name.
- */
-/* HAS_GETPROTOBYNUMBER:
- * This symbol, if defined, indicates that the getprotobynumber()
- * routine is available to look up protocols by their number.
+/* HAS_GETPAGESIZE:
+ * This symbol, if defined, indicates that the getpagesize system call
+ * is available to get system page size, which is the granularity of
+ * many memory management calls.
*/
-#define HAS_GETPROTOBYNAME /**/
-#define HAS_GETPROTOBYNUMBER /**/
+/*#define HAS_GETPAGESIZE / **/
/* HAS_GETPROTOBYNAME_R:
* This symbol, if defined, indicates that the getprotobyname_r routine
@@ -1583,21 +1413,6 @@
/*#define HAS_GETPROTOENT_R / **/
#define GETPROTOENT_R_PROTO 0 /**/
-/* HAS_GETPROTO_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for getprotoent(), getprotobyname(), and
- * getprotobyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-#define HAS_GETPROTO_PROTOS /**/
-
-/* HAS_GETPWENT:
- * This symbol, if defined, indicates that the getpwent routine is
- * available for sequential access of the passwd database.
- * If this is not available, the older getpw() function may be available.
- */
-/*#define HAS_GETPWENT / **/
-
/* HAS_GETPWENT_R:
* This symbol, if defined, indicates that the getpwent_r routine
* is available to getpwent re-entrantly.
@@ -1637,12 +1452,6 @@
/*#define HAS_GETPWUID_R / **/
#define GETPWUID_R_PROTO 0 /**/
-/* HAS_GETSERVENT:
- * This symbol, if defined, indicates that the getservent() routine is
- * available to look up network services in some data base or another.
- */
-/*#define HAS_GETSERVENT / **/
-
/* HAS_GETSERVBYNAME_R:
* This symbol, if defined, indicates that the getservbyname_r routine
* is available to getservbyname re-entrantly.
@@ -1682,14 +1491,6 @@
/*#define HAS_GETSERVENT_R / **/
#define GETSERVENT_R_PROTO 0 /**/
-/* HAS_GETSERV_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for getservent(), getservbyname(), and
- * getservbyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-#define HAS_GETSERV_PROTOS /**/
-
/* HAS_GETSPNAM_R:
* This symbol, if defined, indicates that the getspnam_r routine
* is available to getspnam re-entrantly.
@@ -1703,17 +1504,6 @@
/*#define HAS_GETSPNAM_R / **/
#define GETSPNAM_R_PROTO 0 /**/
-/* HAS_GETSERVBYNAME:
- * This symbol, if defined, indicates that the getservbyname()
- * routine is available to look up services by their name.
- */
-/* HAS_GETSERVBYPORT:
- * This symbol, if defined, indicates that the getservbyport()
- * routine is available to look up services by their port.
- */
-#define HAS_GETSERVBYNAME /**/
-#define HAS_GETSERVBYPORT /**/
-
/* HAS_GMTIME_R:
* This symbol, if defined, indicates that the gmtime_r routine
* is available to gmtime re-entrantly.
@@ -1727,30 +1517,28 @@
/*#define HAS_GMTIME_R / **/
#define GMTIME_R_PROTO 0 /**/
-/* HAS_HTONL:
- * This symbol, if defined, indicates that the htonl() routine (and
- * friends htons() ntohl() ntohs()) are available to do network
- * order byte swapping.
- */
-/* HAS_HTONS:
- * This symbol, if defined, indicates that the htons() routine (and
- * friends htonl() ntohl() ntohs()) are available to do network
- * order byte swapping.
+/* HAS_GNULIBC:
+ * This symbol, if defined, indicates to the C program that
+ * the GNU C library is being used. A better check is to use
+ * the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc.
*/
-/* HAS_NTOHL:
- * This symbol, if defined, indicates that the ntohl() routine (and
- * friends htonl() htons() ntohs()) are available to do network
- * order byte swapping.
+/*#define HAS_GNULIBC / **/
+#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
+# define _GNU_SOURCE
+#endif
+
+/* HAS_ISASCII:
+ * This manifest constant lets the C program know that isascii
+ * is available.
*/
-/* HAS_NTOHS:
- * This symbol, if defined, indicates that the ntohs() routine (and
- * friends htonl() htons() ntohl()) are available to do network
- * order byte swapping.
+#define HAS_ISASCII /**/
+
+/* HAS_LCHOWN:
+ * This symbol, if defined, indicates that the lchown routine is
+ * available to operate on a symbolic link (instead of following the
+ * link).
*/
-#define HAS_HTONL /**/
-#define HAS_HTONS /**/
-#define HAS_NTOHL /**/
-#define HAS_NTOHS /**/
+/*#define HAS_LCHOWN / **/
/* HAS_LOCALTIME_R:
* This symbol, if defined, indicates that the localtime_r routine
@@ -1778,71 +1566,11 @@
/*#define HAS_LOCALTIME_R / **/
#define LOCALTIME_R_PROTO 0 /**/
-/* HAS_LONG_DOUBLE:
- * This symbol will be defined if the C compiler supports long
- * doubles.
- */
-/* LONG_DOUBLESIZE:
- * This symbol contains the size of a long double, so that the
- * C preprocessor can make decisions based on it. It is only
- * defined if the system supports long doubles.
- */
-#define HAS_LONG_DOUBLE /**/
-#ifdef HAS_LONG_DOUBLE
-#define LONG_DOUBLESIZE 12 /**/
-#endif
-
-/* HAS_LONG_LONG:
- * This symbol will be defined if the C compiler supports long long.
- */
-/* LONGLONGSIZE:
- * This symbol contains the size of a long long, so that the
- * C preprocessor can make decisions based on it. It is only
- * defined if the system supports long long.
- */
-/*#define HAS_LONG_LONG / **/
-#ifdef HAS_LONG_LONG
-#define LONGLONGSIZE 8 /**/
-#endif
-
-/* HAS_LSEEK_PROTO:
- * This symbol, if defined, indicates that the system provides
- * a prototype for the lseek() function. Otherwise, it is up
- * to the program to supply one. A good guess is
- * extern off_t lseek(int, off_t, int);
- */
-#define HAS_LSEEK_PROTO /**/
-
-/* HAS_MEMCHR:
- * This symbol, if defined, indicates that the memchr routine is available
- * to locate characters within a C string.
- */
-#define HAS_MEMCHR /**/
-
-/* HAS_MKSTEMP:
- * This symbol, if defined, indicates that the mkstemp routine is
- * available to exclusively create and open a uniquely named
- * temporary file.
- */
-/*#define HAS_MKSTEMP / **/
-
-/* HAS_MMAP:
- * This symbol, if defined, indicates that the mmap system call is
- * available to map a file into memory.
- */
-/* Mmap_t:
- * This symbol holds the return type of the mmap() system call
- * (and simultaneously the type of the first argument).
- * Usually set to 'void *' or 'caddr_t'.
- */
-/*#define HAS_MMAP / **/
-#define Mmap_t void * /**/
-
-/* HAS_MSG:
- * This symbol, if defined, indicates that the entire msg*(2) library is
- * supported (IPC mechanism based on message queues).
+/* HAS_OPEN3:
+ * This manifest constant lets the C program know that the three
+ * argument form of open(2) is available.
*/
-/*#define HAS_MSG / **/
+/*#define HAS_OPEN3 / **/
/* OLD_PTHREAD_CREATE_JOINABLE:
* This symbol, if defined, indicates how to create pthread
@@ -1918,17 +1646,28 @@
/*#define HAS_READDIR_R / **/
#define READDIR_R_PROTO 0 /**/
-/* HAS_SEM:
- * This symbol, if defined, indicates that the entire sem*(2) library is
- * supported.
+/* HAS_SAFE_BCOPY:
+ * This symbol, if defined, indicates that the bcopy routine is available
+ * to copy potentially overlapping memory blocks. Normally, you should
+ * probably use memmove() or memcpy(). If neither is defined, roll your
+ * own version.
*/
-/*#define HAS_SEM / **/
+/*#define HAS_SAFE_BCOPY / **/
-/* HAS_SETGRENT:
- * This symbol, if defined, indicates that the setgrent routine is
- * available for initializing sequential access of the group database.
+/* HAS_SAFE_MEMCPY:
+ * This symbol, if defined, indicates that the memcpy routine is available
+ * to copy potentially overlapping memory blocks. If you need to
+ * copy overlapping memory blocks, you should check HAS_MEMMOVE and
+ * use memmove() instead, if available.
*/
-/*#define HAS_SETGRENT / **/
+/*#define HAS_SAFE_MEMCPY / **/
+
+/* HAS_SANE_MEMCMP:
+ * This symbol, if defined, indicates that the memcmp routine is available
+ * and can be used to compare relative magnitudes of chars with their high
+ * bits set. If it is not defined, roll your own version.
+ */
+#define HAS_SANE_MEMCMP /**/
/* HAS_SETGRENT_R:
* This symbol, if defined, indicates that the setgrent_r routine
@@ -1943,12 +1682,6 @@
/*#define HAS_SETGRENT_R / **/
#define SETGRENT_R_PROTO 0 /**/
-/* HAS_SETHOSTENT:
- * This symbol, if defined, indicates that the sethostent() routine is
- * available.
- */
-/*#define HAS_SETHOSTENT / **/
-
/* HAS_SETHOSTENT_R:
* This symbol, if defined, indicates that the sethostent_r routine
* is available to sethostent re-entrantly.
@@ -1975,12 +1708,6 @@
/*#define HAS_SETLOCALE_R / **/
#define SETLOCALE_R_PROTO 0 /**/
-/* HAS_SETNETENT:
- * This symbol, if defined, indicates that the setnetent() routine is
- * available.
- */
-/*#define HAS_SETNETENT / **/
-
/* HAS_SETNETENT_R:
* This symbol, if defined, indicates that the setnetent_r routine
* is available to setnetent re-entrantly.
@@ -1994,24 +1721,6 @@
/*#define HAS_SETNETENT_R / **/
#define SETNETENT_R_PROTO 0 /**/
-/* HAS_SETPROTOENT:
- * This symbol, if defined, indicates that the setprotoent() routine is
- * available.
- */
-/*#define HAS_SETPROTOENT / **/
-
-/* HAS_SETPGRP:
- * This symbol, if defined, indicates that the setpgrp routine is
- * available to set the current process group.
- */
-/* USE_BSD_SETPGRP:
- * This symbol, if defined, indicates that setpgrp needs two
- * arguments whereas USG one needs none. See also HAS_SETPGID
- * for a POSIX interface.
- */
-/*#define HAS_SETPGRP / **/
-/*#define USE_BSD_SETPGRP / **/
-
/* HAS_SETPROTOENT_R:
* This symbol, if defined, indicates that the setprotoent_r routine
* is available to setprotoent re-entrantly.
@@ -2025,12 +1734,6 @@
/*#define HAS_SETPROTOENT_R / **/
#define SETPROTOENT_R_PROTO 0 /**/
-/* HAS_SETPWENT:
- * This symbol, if defined, indicates that the setpwent routine is
- * available for initializing sequential access of the passwd database.
- */
-/*#define HAS_SETPWENT / **/
-
/* HAS_SETPWENT_R:
* This symbol, if defined, indicates that the setpwent_r routine
* is available to setpwent re-entrantly.
@@ -2044,12 +1747,6 @@
/*#define HAS_SETPWENT_R / **/
#define SETPWENT_R_PROTO 0 /**/
-/* HAS_SETSERVENT:
- * This symbol, if defined, indicates that the setservent() routine is
- * available.
- */
-/*#define HAS_SETSERVENT / **/
-
/* HAS_SETSERVENT_R:
* This symbol, if defined, indicates that the setservent_r routine
* is available to setservent re-entrantly.
@@ -2063,6 +1760,933 @@
/*#define HAS_SETSERVENT_R / **/
#define SETSERVENT_R_PROTO 0 /**/
+/* HAS_SIGACTION:
+ * This symbol, if defined, indicates that Vr4's sigaction() routine
+ * is available.
+ */
+/*#define HAS_SIGACTION / **/
+
+/* HAS_SIGSETJMP:
+ * This variable indicates to the C program that the sigsetjmp()
+ * routine is available to save the calling process's registers
+ * and stack environment for later use by siglongjmp(), and
+ * to optionally save the process's signal mask. See
+ * Sigjmp_buf, Sigsetjmp, and Siglongjmp.
+ */
+/* Sigjmp_buf:
+ * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
+ */
+/* Sigsetjmp:
+ * This macro is used in the same way as sigsetjmp(), but will invoke
+ * traditional setjmp() if sigsetjmp isn't available.
+ * See HAS_SIGSETJMP.
+ */
+/* Siglongjmp:
+ * This macro is used in the same way as siglongjmp(), but will invoke
+ * traditional longjmp() if siglongjmp isn't available.
+ * See HAS_SIGSETJMP.
+ */
+/*#define HAS_SIGSETJMP / **/
+#ifdef HAS_SIGSETJMP
+#define Sigjmp_buf sigjmp_buf
+#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
+#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
+#else
+#define Sigjmp_buf jmp_buf
+#define Sigsetjmp(buf,save_mask) setjmp((buf))
+#define Siglongjmp(buf,retval) longjmp((buf),(retval))
+#endif
+
+/* HAS_SRAND48_R:
+ * This symbol, if defined, indicates that the srand48_r routine
+ * is available to srand48 re-entrantly.
+ */
+/* SRAND48_R_PROTO:
+ * This symbol encodes the prototype of srand48_r.
+ * It is zero if d_srand48_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srand48_r
+ * is defined.
+ */
+/*#define HAS_SRAND48_R / **/
+#define SRAND48_R_PROTO 0 /**/
+
+/* HAS_SRANDOM_R:
+ * This symbol, if defined, indicates that the srandom_r routine
+ * is available to srandom re-entrantly.
+ */
+/* SRANDOM_R_PROTO:
+ * This symbol encodes the prototype of srandom_r.
+ * It is zero if d_srandom_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srandom_r
+ * is defined.
+ */
+/*#define HAS_SRANDOM_R / **/
+#define SRANDOM_R_PROTO 0 /**/
+
+/* USE_STDIO_PTR:
+ * This symbol is defined if the _ptr and _cnt fields (or similar)
+ * of the stdio FILE structure can be used to access the stdio buffer
+ * for a file handle. If this is defined, then the FILE_ptr(fp)
+ * and FILE_cnt(fp) macros will also be defined and should be used
+ * to access these fields.
+ */
+/* FILE_ptr:
+ * This macro is used to access the _ptr field (or equivalent) of the
+ * FILE structure pointed to by its argument. This macro will always be
+ * defined if USE_STDIO_PTR is defined.
+ */
+/* STDIO_PTR_LVALUE:
+ * This symbol is defined if the FILE_ptr macro can be used as an
+ * lvalue.
+ */
+/* FILE_cnt:
+ * This macro is used to access the _cnt field (or equivalent) of the
+ * FILE structure pointed to by its argument. This macro will always be
+ * defined if USE_STDIO_PTR is defined.
+ */
+/* STDIO_CNT_LVALUE:
+ * This symbol is defined if the FILE_cnt macro can be used as an
+ * lvalue.
+ */
+/* STDIO_PTR_LVAL_SETS_CNT:
+ * This symbol is defined if using the FILE_ptr macro as an lvalue
+ * to increase the pointer by n has the side effect of decreasing the
+ * value of File_cnt(fp) by n.
+ */
+/* STDIO_PTR_LVAL_NOCHANGE_CNT:
+ * This symbol is defined if using the FILE_ptr macro as an lvalue
+ * to increase the pointer by n leaves File_cnt(fp) unchanged.
+ */
+#define USE_STDIO_PTR /**/
+#ifdef USE_STDIO_PTR
+#define FILE_ptr(fp) ((fp)->_ptr)
+#define STDIO_PTR_LVALUE /**/
+#define FILE_cnt(fp) ((fp)->_cnt)
+#define STDIO_CNT_LVALUE /**/
+/*#define STDIO_PTR_LVAL_SETS_CNT / **/
+#define STDIO_PTR_LVAL_NOCHANGE_CNT /**/
+#endif
+
+/* USE_STDIO_BASE:
+ * This symbol is defined if the _base field (or similar) of the
+ * stdio FILE structure can be used to access the stdio buffer for
+ * a file handle. If this is defined, then the FILE_base(fp) macro
+ * will also be defined and should be used to access this field.
+ * Also, the FILE_bufsiz(fp) macro will be defined and should be used
+ * to determine the number of bytes in the buffer. USE_STDIO_BASE
+ * will never be defined unless USE_STDIO_PTR is.
+ */
+/* FILE_base:
+ * This macro is used to access the _base field (or equivalent) of the
+ * FILE structure pointed to by its argument. This macro will always be
+ * defined if USE_STDIO_BASE is defined.
+ */
+/* FILE_bufsiz:
+ * This macro is used to determine the number of bytes in the I/O
+ * buffer pointed to by _base field (or equivalent) of the FILE
+ * structure pointed to its argument. This macro will always be defined
+ * if USE_STDIO_BASE is defined.
+ */
+#define USE_STDIO_BASE /**/
+#ifdef USE_STDIO_BASE
+#define FILE_base(fp) ((fp)->_base)
+#define FILE_bufsiz(fp) ((fp)->_cnt + (fp)->_ptr - (fp)->_base)
+#endif
+
+/* HAS_STRERROR_R:
+ * This symbol, if defined, indicates that the strerror_r routine
+ * is available to strerror re-entrantly.
+ */
+/* STRERROR_R_PROTO:
+ * This symbol encodes the prototype of strerror_r.
+ * It is zero if d_strerror_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r
+ * is defined.
+ */
+/*#define HAS_STRERROR_R / **/
+#define STRERROR_R_PROTO 0 /**/
+
+/* HAS_TMPNAM_R:
+ * This symbol, if defined, indicates that the tmpnam_r routine
+ * is available to tmpnam re-entrantly.
+ */
+/* TMPNAM_R_PROTO:
+ * This symbol encodes the prototype of tmpnam_r.
+ * It is zero if d_tmpnam_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_tmpnam_r
+ * is defined.
+ */
+/*#define HAS_TMPNAM_R / **/
+#define TMPNAM_R_PROTO 0 /**/
+
+/* HAS_TTYNAME_R:
+ * This symbol, if defined, indicates that the ttyname_r routine
+ * is available to ttyname re-entrantly.
+ */
+/* TTYNAME_R_PROTO:
+ * This symbol encodes the prototype of ttyname_r.
+ * It is zero if d_ttyname_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ttyname_r
+ * is defined.
+ */
+/*#define HAS_TTYNAME_R / **/
+#define TTYNAME_R_PROTO 0 /**/
+
+/* HAS_VPRINTF:
+ * This symbol, if defined, indicates that the vprintf routine is available
+ * to printf with a pointer to an argument list. If unavailable, you
+ * may need to write your own, probably in terms of _doprnt().
+ */
+/* USE_CHAR_VSPRINTF:
+ * This symbol is defined if this system has vsprintf() returning type
+ * (char*). The trend seems to be to declare it as "int vsprintf()". It
+ * is up to the package author to declare vsprintf correctly based on the
+ * symbol.
+ */
+#define HAS_VPRINTF /**/
+/*#define USE_CHAR_VSPRINTF / **/
+
+/* DOUBLESIZE:
+ * This symbol contains the size of a double, so that the C preprocessor
+ * can make decisions based on it.
+ */
+#define DOUBLESIZE 8 /**/
+
+/* I_MACH_CTHREADS:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <mach/cthreads.h>.
+ */
+/*#define I_MACH_CTHREADS / **/
+
+/* I_PTHREAD:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <pthread.h>.
+ */
+/*#define I_PTHREAD / **/
+
+/* I_SYS_ACCESS:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <sys/access.h>.
+ */
+/*#define I_SYS_ACCESS / **/
+
+/* I_SYS_SECURITY:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <sys/security.h>.
+ */
+/*#define I_SYS_SECURITY / **/
+
+/* I_TIME:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <time.h>.
+ */
+/* I_SYS_TIME:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <sys/time.h>.
+ */
+/* I_SYS_TIME_KERNEL:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <sys/time.h> with KERNEL defined.
+ */
+/* HAS_TM_TM_ZONE:
+ * This symbol, if defined, indicates to the C program that
+ * the struct tm has a tm_zone field.
+ */
+/* HAS_TM_TM_GMTOFF:
+ * This symbol, if defined, indicates to the C program that
+ * the struct tm has a tm_gmtoff field.
+ */
+#define I_TIME /**/
+/*#define I_SYS_TIME / **/
+/*#define I_SYS_TIME_KERNEL / **/
+/*#define HAS_TM_TM_ZONE / **/
+/*#define HAS_TM_TM_GMTOFF / **/
+
+/* PERL_INC_VERSION_LIST:
+ * This variable specifies the list of subdirectories in over
+ * which perl.c:incpush() and lib/lib.pm will automatically
+ * search when adding directories to @INC, in a format suitable
+ * for a C initialization string. See the inc_version_list entry
+ * in Porting/Glossary for more details.
+ */
+/*#define PERL_INC_VERSION_LIST 0 / **/
+
+/* INSTALL_USR_BIN_PERL:
+ * This symbol, if defined, indicates that Perl is to be installed
+ * also as /usr/bin/perl.
+ */
+/*#define INSTALL_USR_BIN_PERL / **/
+
+/* VAL_O_NONBLOCK:
+ * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
+ * non-blocking I/O for the file descriptor. Note that there is no way
+ * back, i.e. you cannot turn it blocking again this way. If you wish to
+ * alternatively switch between blocking and non-blocking, use the
+ * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
+ */
+/* VAL_EAGAIN:
+ * This symbol holds the errno error code set by read() when no data was
+ * present on the non-blocking file descriptor.
+ */
+/* RD_NODATA:
+ * This symbol holds the return code from read() when no data is present
+ * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
+ * not defined, then you can't distinguish between no data and EOF by
+ * issuing a read(). You'll have to find another way to tell for sure!
+ */
+/* EOF_NONBLOCK:
+ * This symbol, if defined, indicates to the C program that a read() on
+ * a non-blocking file descriptor will return 0 on EOF, and not the value
+ * held in RD_NODATA (-1 usually, in that case!).
+ */
+#define VAL_O_NONBLOCK O_NONBLOCK
+#define VAL_EAGAIN EAGAIN
+#define RD_NODATA -1
+#define EOF_NONBLOCK
+
+/* PERL_OTHERLIBDIRS:
+ * This variable contains a colon-separated set of paths for the perl
+ * binary to search for additional library files or modules.
+ * These directories will be tacked to the end of @INC.
+ * Perl will automatically search below each path for version-
+ * and architecture-specific directories. See PERL_INC_VERSION_LIST
+ * for more details.
+ */
+/*#define PERL_OTHERLIBDIRS "" / **/
+
+/* PRIVLIB:
+ * This symbol contains the name of the private library for this package.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world. The program
+ * should be prepared to do ~ expansion.
+ */
+/* PRIVLIB_EXP:
+ * This symbol contains the ~name expanded version of PRIVLIB, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+#define PRIVLIB "x:\\tlperl\\lib" /**/
+#define PRIVLIB_EXP (win32_get_privlib(PERL_VERSION_STRING, NULL)) /**/
+
+/* PTRSIZE:
+ * This symbol contains the size of a pointer, so that the C preprocessor
+ * can make decisions based on it. It will be sizeof(void *) if
+ * the compiler supports (void *); otherwise it will be
+ * sizeof(char *).
+ */
+#define PTRSIZE 4 /**/
+
+/* Drand01:
+ * This macro is to be used to generate uniformly distributed
+ * random numbers over the range [0., 1.[. You may have to supply
+ * an 'extern double drand48();' in your program since SunOS 4.1.3
+ * doesn't provide you with anything relevant in its headers.
+ * See HAS_DRAND48_PROTO.
+ */
+/* Rand_seed_t:
+ * This symbol defines the type of the argument of the
+ * random seed function.
+ */
+/* seedDrand01:
+ * This symbol defines the macro to be used in seeding the
+ * random number generator (see Drand01).
+ */
+/* RANDBITS:
+ * This symbol indicates how many bits are produced by the
+ * function used to generate normalized random numbers.
+ * Values include 15, 16, 31, and 48.
+ */
+#define Drand01() (rand()/(double)((unsigned)1<<RANDBITS)) /**/
+#define Rand_seed_t unsigned /**/
+#define seedDrand01(x) srand((Rand_seed_t)x) /**/
+#define RANDBITS 15 /**/
+
+/* SITEARCH:
+ * This symbol contains the name of the private library for this package.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world. The program
+ * should be prepared to do ~ expansion.
+ * The standard distribution will put nothing in this directory.
+ * After perl has been installed, users may install their own local
+ * architecture-dependent modules in this directory with
+ * MakeMaker Makefile.PL
+ * or equivalent. See INSTALL for details.
+ */
+/* SITEARCH_EXP:
+ * This symbol contains the ~name expanded version of SITEARCH, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+#define SITEARCH "x:\\tlperl\\site\\lib" /**/
+/*#define SITEARCH_EXP "" / **/
+
+/* SITELIB:
+ * This symbol contains the name of the private library for this package.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world. The program
+ * should be prepared to do ~ expansion.
+ * The standard distribution will put nothing in this directory.
+ * After perl has been installed, users may install their own local
+ * architecture-independent modules in this directory with
+ * MakeMaker Makefile.PL
+ * or equivalent. See INSTALL for details.
+ */
+/* SITELIB_EXP:
+ * This symbol contains the ~name expanded version of SITELIB, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/* SITELIB_STEM:
+ * This define is SITELIB_EXP with any trailing version-specific component
+ * removed. The elements in inc_version_list (inc_version_list.U) can
+ * be tacked onto this variable to generate a list of directories to search.
+ */
+#define SITELIB "x:\\tlperl\\site\\lib" /**/
+#define SITELIB_EXP (win32_get_sitelib(PERL_VERSION_STRING, NULL)) /**/
+#define SITELIB_STEM "" /**/
+
+/* SSize_t:
+ * This symbol holds the type used by functions that return
+ * a count of bytes or an error condition. It must be a signed type.
+ * It is usually ssize_t, but may be long or int, etc.
+ * It may be necessary to include <sys/types.h> or <unistd.h>
+ * to get any typedef'ed information.
+ * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
+ */
+#define SSize_t int /* signed count of bytes */
+
+/* USE_ITHREADS:
+ * This symbol, if defined, indicates that Perl should be built to
+ * use the interpreter-based threading implementation.
+ */
+/* USE_5005THREADS:
+ * This symbol, if defined, indicates that Perl should be built to
+ * use the 5.005-based threading implementation.
+ * Only valid up to 5.8.x.
+ */
+/* OLD_PTHREADS_API:
+ * This symbol, if defined, indicates that Perl should
+ * be built to use the old draft POSIX threads API.
+ */
+/* USE_REENTRANT_API:
+ * This symbol, if defined, indicates that Perl should
+ * try to use the various _r versions of library functions.
+ * This is extremely experimental.
+ */
+/*#define USE_5005THREADS / **/
+#define USE_ITHREADS /**/
+#if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
+#define USE_THREADS /* until src is revised*/
+#endif
+/*#define OLD_PTHREADS_API / **/
+/*#define USE_REENTRANT_API / **/
+
+/* PERL_VENDORARCH:
+ * If defined, this symbol contains the name of a private library.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world.
+ * It may have a ~ on the front.
+ * The standard distribution will put nothing in this directory.
+ * Vendors who distribute perl may wish to place their own
+ * architecture-dependent modules and extensions in this directory with
+ * MakeMaker Makefile.PL INSTALLDIRS=vendor
+ * or equivalent. See INSTALL for details.
+ */
+/* PERL_VENDORARCH_EXP:
+ * This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/*#define PERL_VENDORARCH "" / **/
+/*#define PERL_VENDORARCH_EXP "" / **/
+
+/* PERL_VENDORLIB_EXP:
+ * This symbol contains the ~name expanded version of VENDORLIB, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/* PERL_VENDORLIB_STEM:
+ * This define is PERL_VENDORLIB_EXP with any trailing version-specific component
+ * removed. The elements in inc_version_list (inc_version_list.U) can
+ * be tacked onto this variable to generate a list of directories to search.
+ */
+/*#define PERL_VENDORLIB_EXP "" / **/
+/*#define PERL_VENDORLIB_STEM "" / **/
+
+/* HAS_STATIC_INLINE:
+ * This symbol, if defined, indicates that the C compiler supports
+ * C99-style static inline. That is, the function can't be called
+ * from another translation unit.
+ */
+/* PERL_STATIC_INLINE:
+ * This symbol gives the best-guess incantation to use for static
+ * inline functions. If HAS_STATIC_INLINE is defined, this will
+ * give C99-style inline. If HAS_STATIC_INLINE is not defined,
+ * this will give a plain 'static'. It will always be defined
+ * to something that gives static linkage.
+ * Possibilities include
+ * static inline (c99)
+ * static __inline__ (gcc -ansi)
+ * static __inline (MSVC)
+ * static _inline (older MSVC)
+ * static (c89 compilers)
+ */
+#define HAS_STATIC_INLINE /**/
+#define PERL_STATIC_INLINE static __inline__ /**/
+
+/* EBCDIC:
+ * This symbol, if defined, indicates that this system uses
+ * EBCDIC encoding.
+ */
+/*#define EBCDIC / **/
+
+/* OSNAME:
+ * This symbol contains the name of the operating system, as determined
+ * by Configure. You shouldn't rely on it too much; the specific
+ * feature tests from Configure are generally more reliable.
+ */
+/* OSVERS:
+ * This symbol contains the version of the operating system, as determined
+ * by Configure. You shouldn't rely on it too much; the specific
+ * feature tests from Configure are generally more reliable.
+ */
+#define OSNAME "MSWin32" /**/
+#define OSVERS "5.1" /**/
+
+/* CAT2:
+ * This macro concatenates 2 tokens together.
+ */
+/* STRINGIFY:
+ * This macro surrounds its token with double quotes.
+ */
+#if 42 == 1
+#define CAT2(a,b) a/**/b
+#define STRINGIFY(a) "a"
+#endif
+#if 42 == 42
+#define PeRl_CaTiFy(a, b) a ## b
+#define PeRl_StGiFy(a) #a
+#define CAT2(a,b) PeRl_CaTiFy(a,b)
+#define StGiFy(a) PeRl_StGiFy(a)
+#define STRINGIFY(a) PeRl_StGiFy(a)
+#endif
+#if 42 != 1 && 42 != 42
+#include "Bletch: How does this C preprocessor concatenate tokens?"
+#endif
+
+/* CPPSTDIN:
+ * This symbol contains the first part of the string which will invoke
+ * the C preprocessor on the standard input and produce to standard
+ * output. Typical value of "cc -E" or "/lib/cpp", but it can also
+ * call a wrapper. See CPPRUN.
+ */
+/* CPPMINUS:
+ * This symbol contains the second part of the string which will invoke
+ * the C preprocessor on the standard input and produce to standard
+ * output. This symbol will have the value "-" if CPPSTDIN needs a minus
+ * to specify standard input, otherwise the value is "".
+ */
+/* CPPRUN:
+ * This symbol contains the string which will invoke a C preprocessor on
+ * the standard input and produce to standard output. It needs to end
+ * with CPPLAST, after all other preprocessor flags have been specified.
+ * The main difference with CPPSTDIN is that this program will never be a
+ * pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
+ * available directly to the user. Note that it may well be different from
+ * the preprocessor used to compile the C program.
+ */
+/* CPPLAST:
+ * This symbol is intended to be used along with CPPRUN in the same manner
+ * symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "".
+ */
+#define CPPSTDIN "gcc -E"
+#define CPPMINUS "-"
+#define CPPRUN "gcc -E"
+#define CPPLAST ""
+
+/* HAS_ACCESS:
+ * This manifest constant lets the C program know that the access()
+ * system call is available to check for accessibility using real UID/GID.
+ * (always present on UNIX.)
+ */
+#define HAS_ACCESS /**/
+
+/* HASATTRIBUTE_FORMAT:
+ * Can we handle GCC attribute for checking printf-style formats
+ */
+/* PRINTF_FORMAT_NULL_OK:
+ * Allows __printf__ format to be null when checking printf-style
+ */
+/* HASATTRIBUTE_MALLOC:
+ * Can we handle GCC attribute for malloc-style functions.
+ */
+/* HASATTRIBUTE_NONNULL:
+ * Can we handle GCC attribute for nonnull function parms.
+ */
+/* HASATTRIBUTE_NORETURN:
+ * Can we handle GCC attribute for functions that do not return
+ */
+/* HASATTRIBUTE_PURE:
+ * Can we handle GCC attribute for pure functions
+ */
+/* HASATTRIBUTE_UNUSED:
+ * Can we handle GCC attribute for unused variables and arguments
+ */
+/* HASATTRIBUTE_DEPRECATED:
+ * Can we handle GCC attribute for marking deprecated APIs
+ */
+/* HASATTRIBUTE_WARN_UNUSED_RESULT:
+ * Can we handle GCC attribute for warning on unused results
+ */
+/*#define HASATTRIBUTE_DEPRECATED / **/
+/*#define HASATTRIBUTE_FORMAT / **/
+/*#define PRINTF_FORMAT_NULL_OK / **/
+/*#define HASATTRIBUTE_NORETURN / **/
+/*#define HASATTRIBUTE_MALLOC / **/
+/*#define HASATTRIBUTE_NONNULL / **/
+/*#define HASATTRIBUTE_PURE / **/
+/*#define HASATTRIBUTE_UNUSED / **/
+/*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/
+
+/* HASCONST:
+ * This symbol, if defined, indicates that this C compiler knows about
+ * the const type. There is no need to actually test for that symbol
+ * within your programs. The mere use of the "const" keyword will
+ * trigger the necessary tests.
+ */
+#define HASCONST /**/
+#ifndef HASCONST
+#define const
+#endif
+
+/* HAS_CSH:
+ * This symbol, if defined, indicates that the C-shell exists.
+ */
+/* CSH:
+ * This symbol, if defined, contains the full pathname of csh.
+ */
+/*#define HAS_CSH / **/
+#ifdef HAS_CSH
+#define CSH "" /**/
+#endif
+
+/* SETUID_SCRIPTS_ARE_SECURE_NOW:
+ * This symbol, if defined, indicates that the bug that prevents
+ * setuid scripts from being secure is not present in this kernel.
+ */
+/* DOSUID:
+ * This symbol, if defined, indicates that the C program should
+ * check the script that it is executing for setuid/setgid bits, and
+ * attempt to emulate setuid/setgid on systems that have disabled
+ * setuid #! scripts because the kernel can't do it securely.
+ * It is up to the package designer to make sure that this emulation
+ * is done securely. Among other things, it should do an fstat on
+ * the script it just opened to make sure it really is a setuid/setgid
+ * script, it should make sure the arguments passed correspond exactly
+ * to the argument on the #! line, and it should not trust any
+ * subprocesses to which it must pass the filename rather than the
+ * file descriptor of the script to be executed.
+ */
+/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
+/*#define DOSUID / **/
+
+/* HAS_ENDGRENT:
+ * This symbol, if defined, indicates that the getgrent routine is
+ * available for finalizing sequential access of the group database.
+ */
+/*#define HAS_ENDGRENT / **/
+
+/* HAS_ENDHOSTENT:
+ * This symbol, if defined, indicates that the endhostent() routine is
+ * available to close whatever was being used for host queries.
+ */
+/*#define HAS_ENDHOSTENT / **/
+
+/* HAS_ENDNETENT:
+ * This symbol, if defined, indicates that the endnetent() routine is
+ * available to close whatever was being used for network queries.
+ */
+/*#define HAS_ENDNETENT / **/
+
+/* HAS_ENDPROTOENT:
+ * This symbol, if defined, indicates that the endprotoent() routine is
+ * available to close whatever was being used for protocol queries.
+ */
+/*#define HAS_ENDPROTOENT / **/
+
+/* HAS_ENDPWENT:
+ * This symbol, if defined, indicates that the getgrent routine is
+ * available for finalizing sequential access of the passwd database.
+ */
+/*#define HAS_ENDPWENT / **/
+
+/* HAS_ENDSERVENT:
+ * This symbol, if defined, indicates that the endservent() routine is
+ * available to close whatever was being used for service queries.
+ */
+/*#define HAS_ENDSERVENT / **/
+
+/* FLEXFILENAMES:
+ * This symbol, if defined, indicates that the system supports filenames
+ * longer than 14 characters.
+ */
+#define FLEXFILENAMES /**/
+
+/* HAS_GETGRENT:
+ * This symbol, if defined, indicates that the getgrent routine is
+ * available for sequential access of the group database.
+ */
+/*#define HAS_GETGRENT / **/
+
+/* HAS_GETHOSTBYADDR:
+ * This symbol, if defined, indicates that the gethostbyaddr() routine is
+ * available to look up hosts by their IP addresses.
+ */
+#define HAS_GETHOSTBYADDR /**/
+
+/* HAS_GETHOSTBYNAME:
+ * This symbol, if defined, indicates that the gethostbyname() routine is
+ * available to look up host names in some data base or other.
+ */
+#define HAS_GETHOSTBYNAME /**/
+
+/* HAS_GETHOSTENT:
+ * This symbol, if defined, indicates that the gethostent() routine is
+ * available to look up host names in some data base or another.
+ */
+/*#define HAS_GETHOSTENT / **/
+
+/* HAS_GETHOSTNAME:
+ * This symbol, if defined, indicates that the C program may use the
+ * gethostname() routine to derive the host name. See also HAS_UNAME
+ * and PHOSTNAME.
+ */
+/* HAS_UNAME:
+ * This symbol, if defined, indicates that the C program may use the
+ * uname() routine to derive the host name. See also HAS_GETHOSTNAME
+ * and PHOSTNAME.
+ */
+/* PHOSTNAME:
+ * This symbol, if defined, indicates the command to feed to the
+ * popen() routine to derive the host name. See also HAS_GETHOSTNAME
+ * and HAS_UNAME. Note that the command uses a fully qualified path,
+ * so that it is safe even if used by a process with super-user
+ * privileges.
+ */
+/* HAS_PHOSTNAME:
+ * This symbol, if defined, indicates that the C program may use the
+ * contents of PHOSTNAME as a command to feed to the popen() routine
+ * to derive the host name.
+ */
+#define HAS_GETHOSTNAME /**/
+#define HAS_UNAME /**/
+/*#define HAS_PHOSTNAME / **/
+#ifdef HAS_PHOSTNAME
+#define PHOSTNAME "" /* How to get the host name */
+#endif
+
+/* HAS_GETNETBYADDR:
+ * This symbol, if defined, indicates that the getnetbyaddr() routine is
+ * available to look up networks by their IP addresses.
+ */
+/*#define HAS_GETNETBYADDR / **/
+
+/* HAS_GETNETBYNAME:
+ * This symbol, if defined, indicates that the getnetbyname() routine is
+ * available to look up networks by their names.
+ */
+/*#define HAS_GETNETBYNAME / **/
+
+/* HAS_GETNETENT:
+ * This symbol, if defined, indicates that the getnetent() routine is
+ * available to look up network names in some data base or another.
+ */
+/*#define HAS_GETNETENT / **/
+
+/* HAS_GETPROTOENT:
+ * This symbol, if defined, indicates that the getprotoent() routine is
+ * available to look up protocols in some data base or another.
+ */
+/*#define HAS_GETPROTOENT / **/
+
+/* HAS_GETPGRP:
+ * This symbol, if defined, indicates that the getpgrp routine is
+ * available to get the current process group.
+ */
+/* USE_BSD_GETPGRP:
+ * This symbol, if defined, indicates that getpgrp needs one
+ * arguments whereas USG one needs none.
+ */
+/*#define HAS_GETPGRP / **/
+/*#define USE_BSD_GETPGRP / **/
+
+/* HAS_GETPROTOBYNAME:
+ * This symbol, if defined, indicates that the getprotobyname()
+ * routine is available to look up protocols by their name.
+ */
+/* HAS_GETPROTOBYNUMBER:
+ * This symbol, if defined, indicates that the getprotobynumber()
+ * routine is available to look up protocols by their number.
+ */
+#define HAS_GETPROTOBYNAME /**/
+#define HAS_GETPROTOBYNUMBER /**/
+
+/* HAS_GETPWENT:
+ * This symbol, if defined, indicates that the getpwent routine is
+ * available for sequential access of the passwd database.
+ * If this is not available, the older getpw() function may be available.
+ */
+/*#define HAS_GETPWENT / **/
+
+/* HAS_GETSERVENT:
+ * This symbol, if defined, indicates that the getservent() routine is
+ * available to look up network services in some data base or another.
+ */
+/*#define HAS_GETSERVENT / **/
+
+/* HAS_GETSERVBYNAME:
+ * This symbol, if defined, indicates that the getservbyname()
+ * routine is available to look up services by their name.
+ */
+/* HAS_GETSERVBYPORT:
+ * This symbol, if defined, indicates that the getservbyport()
+ * routine is available to look up services by their port.
+ */
+#define HAS_GETSERVBYNAME /**/
+#define HAS_GETSERVBYPORT /**/
+
+/* HAS_HTONL:
+ * This symbol, if defined, indicates that the htonl() routine (and
+ * friends htons() ntohl() ntohs()) are available to do network
+ * order byte swapping.
+ */
+/* HAS_HTONS:
+ * This symbol, if defined, indicates that the htons() routine (and
+ * friends htonl() ntohl() ntohs()) are available to do network
+ * order byte swapping.
+ */
+/* HAS_NTOHL:
+ * This symbol, if defined, indicates that the ntohl() routine (and
+ * friends htonl() htons() ntohs()) are available to do network
+ * order byte swapping.
+ */
+/* HAS_NTOHS:
+ * This symbol, if defined, indicates that the ntohs() routine (and
+ * friends htonl() htons() ntohl()) are available to do network
+ * order byte swapping.
+ */
+#define HAS_HTONL /**/
+#define HAS_HTONS /**/
+#define HAS_NTOHL /**/
+#define HAS_NTOHS /**/
+
+/* HAS_LONG_DOUBLE:
+ * This symbol will be defined if the C compiler supports long
+ * doubles.
+ */
+/* LONG_DOUBLESIZE:
+ * This symbol contains the size of a long double, so that the
+ * C preprocessor can make decisions based on it. It is only
+ * defined if the system supports long doubles.
+ */
+#define HAS_LONG_DOUBLE /**/
+#ifdef HAS_LONG_DOUBLE
+#define LONG_DOUBLESIZE 12 /**/
+#endif
+
+/* HAS_LONG_LONG:
+ * This symbol will be defined if the C compiler supports long long.
+ */
+/* LONGLONGSIZE:
+ * This symbol contains the size of a long long, so that the
+ * C preprocessor can make decisions based on it. It is only
+ * defined if the system supports long long.
+ */
+/*#define HAS_LONG_LONG / **/
+#ifdef HAS_LONG_LONG
+#define LONGLONGSIZE 8 /**/
+#endif
+
+/* HAS_MEMCHR:
+ * This symbol, if defined, indicates that the memchr routine is available
+ * to locate characters within a C string.
+ */
+#define HAS_MEMCHR /**/
+
+/* HAS_MKSTEMP:
+ * This symbol, if defined, indicates that the mkstemp routine is
+ * available to exclusively create and open a uniquely named
+ * temporary file.
+ */
+/*#define HAS_MKSTEMP / **/
+
+/* HAS_MMAP:
+ * This symbol, if defined, indicates that the mmap system call is
+ * available to map a file into memory.
+ */
+/* Mmap_t:
+ * This symbol holds the return type of the mmap() system call
+ * (and simultaneously the type of the first argument).
+ * Usually set to 'void *' or 'caddr_t'.
+ */
+/*#define HAS_MMAP / **/
+#define Mmap_t void * /**/
+
+/* HAS_MSG:
+ * This symbol, if defined, indicates that the entire msg*(2) library is
+ * supported (IPC mechanism based on message queues).
+ */
+/*#define HAS_MSG / **/
+
+/* HAS_SEM:
+ * This symbol, if defined, indicates that the entire sem*(2) library is
+ * supported.
+ */
+/*#define HAS_SEM / **/
+
+/* HAS_SETGRENT:
+ * This symbol, if defined, indicates that the setgrent routine is
+ * available for initializing sequential access of the group database.
+ */
+/*#define HAS_SETGRENT / **/
+
+/* HAS_SETHOSTENT:
+ * This symbol, if defined, indicates that the sethostent() routine is
+ * available.
+ */
+/*#define HAS_SETHOSTENT / **/
+
+/* HAS_SETNETENT:
+ * This symbol, if defined, indicates that the setnetent() routine is
+ * available.
+ */
+/*#define HAS_SETNETENT / **/
+
+/* HAS_SETPROTOENT:
+ * This symbol, if defined, indicates that the setprotoent() routine is
+ * available.
+ */
+/*#define HAS_SETPROTOENT / **/
+
+/* HAS_SETPGRP:
+ * This symbol, if defined, indicates that the setpgrp routine is
+ * available to set the current process group.
+ */
+/* USE_BSD_SETPGRP:
+ * This symbol, if defined, indicates that setpgrp needs two
+ * arguments whereas USG one needs none. See also HAS_SETPGID
+ * for a POSIX interface.
+ */
+/*#define HAS_SETPGRP / **/
+/*#define USE_BSD_SETPGRP / **/
+
+/* HAS_SETPWENT:
+ * This symbol, if defined, indicates that the setpwent routine is
+ * available for initializing sequential access of the passwd database.
+ */
+/*#define HAS_SETPWENT / **/
+
+/* HAS_SETSERVENT:
+ * This symbol, if defined, indicates that the setservent() routine is
+ * available.
+ */
+/*#define HAS_SETSERVENT / **/
+
/* HAS_SETVBUF:
* This symbol, if defined, indicates that the setvbuf routine is
* available to change buffering on an open stdio stream.
@@ -2128,40 +2752,25 @@
* Checking just with #ifdef might not be enough because this symbol
* has been known to be an enum.
*/
+/* HAS_SOCKADDR_SA_LEN:
+ * This symbol, if defined, indicates that the struct sockaddr
+ * structure has a member called sa_len, indicating the length of
+ * the structure.
+ */
+/* HAS_SIN6_SCOPE_ID:
+ * This symbol, if defined, indicates that the struct sockaddr_in6
+ * structure has a member called sin6_scope_id.
+ */
#define HAS_SOCKET /**/
/*#define HAS_SOCKETPAIR / **/
+/*#define HAS_SOCKADDR_SA_LEN / **/
/*#define HAS_MSG_CTRUNC / **/
/*#define HAS_MSG_DONTROUTE / **/
/*#define HAS_MSG_OOB / **/
/*#define HAS_MSG_PEEK / **/
/*#define HAS_MSG_PROXY / **/
/*#define HAS_SCM_RIGHTS / **/
-
-/* HAS_SRAND48_R:
- * This symbol, if defined, indicates that the srand48_r routine
- * is available to srand48 re-entrantly.
- */
-/* SRAND48_R_PROTO:
- * This symbol encodes the prototype of srand48_r.
- * It is zero if d_srand48_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srand48_r
- * is defined.
- */
-/*#define HAS_SRAND48_R / **/
-#define SRAND48_R_PROTO 0 /**/
-
-/* HAS_SRANDOM_R:
- * This symbol, if defined, indicates that the srandom_r routine
- * is available to srandom re-entrantly.
- */
-/* SRANDOM_R_PROTO:
- * This symbol encodes the prototype of srandom_r.
- * It is zero if d_srandom_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srandom_r
- * is defined.
- */
-/*#define HAS_SRANDOM_R / **/
-#define SRANDOM_R_PROTO 0 /**/
+#define HAS_SIN6_SCOPE_ID /**/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
@@ -2197,69 +2806,12 @@
#define HAS_SYS_ERRLIST /**/
#define Strerror(e) strerror(e)
-/* HAS_STRERROR_R:
- * This symbol, if defined, indicates that the strerror_r routine
- * is available to strerror re-entrantly.
- */
-/* STRERROR_R_PROTO:
- * This symbol encodes the prototype of strerror_r.
- * It is zero if d_strerror_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r
- * is defined.
- */
-/*#define HAS_STRERROR_R / **/
-#define STRERROR_R_PROTO 0 /**/
-
/* HAS_STRTOUL:
* This symbol, if defined, indicates that the strtoul routine is
* available to provide conversion of strings to unsigned long.
*/
#define HAS_STRTOUL /**/
-/* HAS_TIME:
- * This symbol, if defined, indicates that the time() routine exists.
- */
-/* Time_t:
- * This symbol holds the type returned by time(). It can be long,
- * or time_t on BSD sites (in which case <sys/types.h> should be
- * included).
- */
-#define HAS_TIME /**/
-#define Time_t time_t /* Time type */
-
-/* HAS_TIMES:
- * This symbol, if defined, indicates that the times() routine exists.
- * Note that this became obsolete on some systems (SUNOS), which now
- * use getrusage(). It may be necessary to include <sys/times.h>.
- */
-#define HAS_TIMES /**/
-
-/* HAS_TMPNAM_R:
- * This symbol, if defined, indicates that the tmpnam_r routine
- * is available to tmpnam re-entrantly.
- */
-/* TMPNAM_R_PROTO:
- * This symbol encodes the prototype of tmpnam_r.
- * It is zero if d_tmpnam_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_tmpnam_r
- * is defined.
- */
-/*#define HAS_TMPNAM_R / **/
-#define TMPNAM_R_PROTO 0 /**/
-
-/* HAS_TTYNAME_R:
- * This symbol, if defined, indicates that the ttyname_r routine
- * is available to ttyname re-entrantly.
- */
-/* TTYNAME_R_PROTO:
- * This symbol encodes the prototype of ttyname_r.
- * It is zero if d_ttyname_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ttyname_r
- * is defined.
- */
-/*#define HAS_TTYNAME_R / **/
-#define TTYNAME_R_PROTO 0 /**/
-
/* HAS_UNION_SEMUN:
* This symbol, if defined, indicates that the union semun is
* defined by including <sys/sem.h>. If not, the user code
@@ -2310,38 +2862,6 @@
#define volatile
#endif
-/* Fpos_t:
- * This symbol holds the type used to declare file positions in libc.
- * It can be fpos_t, long, uint, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Fpos_t fpos_t /* File position type */
-
-/* Gid_t_f:
- * This symbol defines the format string used for printing a Gid_t.
- */
-#define Gid_t_f "ld" /**/
-
-/* Gid_t_sign:
- * This symbol holds the signedess of a Gid_t.
- * 1 for unsigned, -1 for signed.
- */
-#define Gid_t_sign -1 /* GID sign */
-
-/* Gid_t_size:
- * This symbol holds the size of a Gid_t in bytes.
- */
-#define Gid_t_size 4 /* GID size */
-
-/* Gid_t:
- * This symbol holds the return type of getgid() and the type of
- * argument to setrgid() and related functions. Typically,
- * it is the type of group ids in the kernel. It can be int, ushort,
- * gid_t, etc... It may be necessary to include <sys/types.h> to get
- * any typedef'ed information.
- */
-#define Gid_t gid_t /* Type for getgid(), etc... */
-
/* I_DIRENT:
* This symbol, if defined, indicates to the C program that it should
* include <dirent.h>. Using this symbol also triggers the definition
@@ -2373,12 +2893,6 @@
/*#define I_GRP / **/
/*#define GRPASSWD / **/
-/* I_MACH_CTHREADS:
- * This symbol, if defined, indicates to the C program that it should
- * include <mach/cthreads.h>.
- */
-/*#define I_MACH_CTHREADS / **/
-
/* I_NDBM:
* This symbol, if defined, indicates that <ndbm.h> exists and should
* be included.
@@ -2430,12 +2944,6 @@
*/
/*#define I_NET_ERRNO / **/
-/* I_PTHREAD:
- * This symbol, if defined, indicates to the C program that it should
- * include <pthread.h>.
- */
-/*#define I_PTHREAD / **/
-
/* I_PWD:
* This symbol, if defined, indicates to the C program that it should
* include <pwd.h>.
@@ -2482,18 +2990,6 @@
/*#define PWGECOS / **/
/*#define PWPASSWD / **/
-/* I_SYS_ACCESS:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/access.h>.
- */
-/*#define I_SYS_ACCESS / **/
-
-/* I_SYS_SECURITY:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/security.h>.
- */
-/*#define I_SYS_SECURITY / **/
-
/* I_SYSUIO:
* This symbol, if defined, indicates that <sys/uio.h> exists and
* should be included.
@@ -2511,36 +3007,6 @@
#define I_STDARG /**/
/*#define I_VARARGS / **/
-/* PERL_INC_VERSION_LIST:
- * This variable specifies the list of subdirectories in over
- * which perl.c:incpush() and lib/lib.pm will automatically
- * search when adding directories to @INC, in a format suitable
- * for a C initialization string. See the inc_version_list entry
- * in Porting/Glossary for more details.
- */
-/*#define PERL_INC_VERSION_LIST 0 / **/
-
-/* INSTALL_USR_BIN_PERL:
- * This symbol, if defined, indicates that Perl is to be installed
- * also as /usr/bin/perl.
- */
-/*#define INSTALL_USR_BIN_PERL / **/
-
-/* Off_t:
- * This symbol holds the type used to declare offsets in the kernel.
- * It can be int, long, off_t, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-/* LSEEKSIZE:
- * This symbol holds the number of bytes used by the Off_t.
- */
-/* Off_t_size:
- * This symbol holds the number of bytes used by the Off_t.
- */
-#define Off_t long long /* <offset> type */
-#define LSEEKSIZE 8 /* <offset> size */
-#define Off_t_size 8 /* <offset> size */
-
/* Free_t:
* This variable contains the return type of free(). It is usually
* void, but occasionally int.
@@ -2561,65 +3027,6 @@
*/
/*#define MYMALLOC / **/
-/* Mode_t:
- * This symbol holds the type used to declare file modes
- * for systems calls. It is usually mode_t, but may be
- * int or unsigned short. It may be necessary to include <sys/types.h>
- * to get any typedef'ed information.
- */
-#define Mode_t mode_t /* file mode parameter for system calls */
-
-/* Netdb_host_t:
- * This symbol holds the type used for the 1st argument
- * to gethostbyaddr().
- */
-/* Netdb_hlen_t:
- * This symbol holds the type used for the 2nd argument
- * to gethostbyaddr().
- */
-/* Netdb_name_t:
- * This symbol holds the type used for the argument to
- * gethostbyname().
- */
-/* Netdb_net_t:
- * This symbol holds the type used for the 1st argument to
- * getnetbyaddr().
- */
-#define Netdb_host_t char * /**/
-#define Netdb_hlen_t int /**/
-#define Netdb_name_t char * /**/
-#define Netdb_net_t long /**/
-
-/* PERL_OTHERLIBDIRS:
- * This variable contains a colon-separated set of paths for the perl
- * binary to search for additional library files or modules.
- * These directories will be tacked to the end of @INC.
- * Perl will automatically search below each path for version-
- * and architecture-specific directories. See PERL_INC_VERSION_LIST
- * for more details.
- */
-/*#define PERL_OTHERLIBDIRS "" / **/
-
-/* Pid_t:
- * This symbol holds the type used to declare process ids in the kernel.
- * It can be int, uint, pid_t, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Pid_t int /* PID type */
-
-/* PRIVLIB:
- * This symbol contains the name of the private library for this package.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world. The program
- * should be prepared to do ~ expansion.
- */
-/* PRIVLIB_EXP:
- * This symbol contains the ~name expanded version of PRIVLIB, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-#define PRIVLIB "c:\\perl\\lib" /**/
-#define PRIVLIB_EXP (win32_get_privlib(PERL_VERSION_STRING, NULL)) /**/
-
/* CAN_PROTOTYPE:
* If defined, this macro indicates that the C compiler can handle
* function prototypes.
@@ -2638,14 +3045,6 @@
#define _(args) ()
#endif
-/* Select_fd_set_t:
- * This symbol holds the type used for the 2nd, 3rd, and 4th
- * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
- * is defined, and 'int *' otherwise. This is only useful if you
- * have select(), of course.
- */
-#define Select_fd_set_t Perl_fd_set * /**/
-
/* SH_PATH:
* This symbol contains the full pathname to the shell used on this
* on this system to execute Bourne shell scripts. Usually, this will be
@@ -2695,152 +3094,12 @@
#define SIG_NUM 0, 1, 2, 21, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0 /**/
#define SIG_SIZE 27 /**/
-/* SITEARCH:
- * This symbol contains the name of the private library for this package.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world. The program
- * should be prepared to do ~ expansion.
- * The standard distribution will put nothing in this directory.
- * After perl has been installed, users may install their own local
- * architecture-dependent modules in this directory with
- * MakeMaker Makefile.PL
- * or equivalent. See INSTALL for details.
- */
-/* SITEARCH_EXP:
- * This symbol contains the ~name expanded version of SITEARCH, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-#define SITEARCH "c:\\perl\\site\\lib" /**/
-/*#define SITEARCH_EXP "" / **/
-
-/* SITELIB:
- * This symbol contains the name of the private library for this package.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world. The program
- * should be prepared to do ~ expansion.
- * The standard distribution will put nothing in this directory.
- * After perl has been installed, users may install their own local
- * architecture-independent modules in this directory with
- * MakeMaker Makefile.PL
- * or equivalent. See INSTALL for details.
- */
-/* SITELIB_EXP:
- * This symbol contains the ~name expanded version of SITELIB, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-/* SITELIB_STEM:
- * This define is SITELIB_EXP with any trailing version-specific component
- * removed. The elements in inc_version_list (inc_version_list.U) can
- * be tacked onto this variable to generate a list of directories to search.
- */
-#define SITELIB "c:\\perl\\site\\lib" /**/
-#define SITELIB_EXP (win32_get_sitelib(PERL_VERSION_STRING, NULL)) /**/
-#define SITELIB_STEM "" /**/
-
-/* Size_t_size:
- * This symbol holds the size of a Size_t in bytes.
- */
-#define Size_t_size 4 /**/
-
-/* Size_t:
- * This symbol holds the type used to declare length parameters
- * for string functions. It is usually size_t, but may be
- * unsigned long, int, etc. It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Size_t size_t /* length paramater for string functions */
-
-/* Sock_size_t:
- * This symbol holds the type used for the size argument of
- * various socket calls (just the base type, not the pointer-to).
- */
-#define Sock_size_t int /**/
-
/* STDCHAR:
* This symbol is defined to be the type of char used in stdio.h.
* It has the values "unsigned char" or "char".
*/
#define STDCHAR char /**/
-/* Uid_t_f:
- * This symbol defines the format string used for printing a Uid_t.
- */
-#define Uid_t_f "ld" /**/
-
-/* Uid_t_sign:
- * This symbol holds the signedess of a Uid_t.
- * 1 for unsigned, -1 for signed.
- */
-#define Uid_t_sign -1 /* UID sign */
-
-/* Uid_t_size:
- * This symbol holds the size of a Uid_t in bytes.
- */
-#define Uid_t_size 4 /* UID size */
-
-/* Uid_t:
- * This symbol holds the type used to declare user ids in the kernel.
- * It can be int, ushort, uid_t, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Uid_t uid_t /* UID type */
-
-/* USE_ITHREADS:
- * This symbol, if defined, indicates that Perl should be built to
- * use the interpreter-based threading implementation.
- */
-/* USE_5005THREADS:
- * This symbol, if defined, indicates that Perl should be built to
- * use the 5.005-based threading implementation.
- * Only valid up to 5.8.x.
- */
-/* OLD_PTHREADS_API:
- * This symbol, if defined, indicates that Perl should
- * be built to use the old draft POSIX threads API.
- */
-/* USE_REENTRANT_API:
- * This symbol, if defined, indicates that Perl should
- * try to use the various _r versions of library functions.
- * This is extremely experimental.
- */
-/*#define USE_5005THREADS / **/
-#define USE_ITHREADS /**/
-#if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
-#define USE_THREADS /* until src is revised*/
-#endif
-/*#define OLD_PTHREADS_API / **/
-/*#define USE_REENTRANT_API / **/
-
-/* PERL_VENDORARCH:
- * If defined, this symbol contains the name of a private library.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world.
- * It may have a ~ on the front.
- * The standard distribution will put nothing in this directory.
- * Vendors who distribute perl may wish to place their own
- * architecture-dependent modules and extensions in this directory with
- * MakeMaker Makefile.PL INSTALLDIRS=vendor
- * or equivalent. See INSTALL for details.
- */
-/* PERL_VENDORARCH_EXP:
- * This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-/*#define PERL_VENDORARCH "" / **/
-/*#define PERL_VENDORARCH_EXP "" / **/
-
-/* PERL_VENDORLIB_EXP:
- * This symbol contains the ~name expanded version of VENDORLIB, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-/* PERL_VENDORLIB_STEM:
- * This define is PERL_VENDORLIB_EXP with any trailing version-specific component
- * removed. The elements in inc_version_list (inc_version_list.U) can
- * be tacked onto this variable to generate a list of directories to search.
- */
-/*#define PERL_VENDORLIB_EXP "" / **/
-/*#define PERL_VENDORLIB_STEM "" / **/
-
/* VOIDFLAGS:
* This symbol indicates how much support of the void type is given by this
* compiler. What various bits mean:
@@ -2849,7 +3108,7 @@
* 2 = supports arrays of pointers to functions returning void
* 4 = supports comparisons between pointers to void functions and
* addresses of void functions
- * 8 = suports declaration of generic void pointers
+ * 8 = supports declaration of generic void pointers
*
* The package designer should define VOIDUSED to indicate the requirements
* of the package. This can be done either by #defining VOIDUSED before
@@ -2866,436 +3125,6 @@
#define M_VOID /* Xenix strikes again */
#endif
-/* USE_CROSS_COMPILE:
- * This symbol, if defined, indicates that Perl is being cross-compiled.
- */
-/* PERL_TARGETARCH:
- * This symbol, if defined, indicates the target architecture
- * Perl has been cross-compiled to. Undefined if not a cross-compile.
- */
-#ifndef USE_CROSS_COMPILE
-/*#define USE_CROSS_COMPILE / **/
-#define PERL_TARGETARCH "" /**/
-#endif
-
-/* MEM_ALIGNBYTES:
- * This symbol contains the number of bytes required to align a
- * double, or a long double when applicable. Usual values are 2,
- * 4 and 8. The default is eight, for safety.
- */
-#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
-# define MEM_ALIGNBYTES 8
-#else
-#define MEM_ALIGNBYTES 8
-#endif
-
-/* BYTEORDER:
- * This symbol holds the hexadecimal constant defined in byteorder,
- * in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
- * If the compiler supports cross-compiling or multiple-architecture
- * binaries (eg. on NeXT systems), use compiler-defined macros to
- * determine the byte order.
- * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
- * Binaries (MAB) on either big endian or little endian machines.
- * The endian-ness is available at compile-time. This only matters
- * for perl, where the config.h can be generated and installed on
- * one system, and used by a different architecture to build an
- * extension. Older versions of NeXT that might not have
- * defined either *_ENDIAN__ were all on Motorola 680x0 series,
- * so the default case (for NeXT) is big endian to catch them.
- * This might matter for NeXT 3.0.
- */
-#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
-# ifdef __LITTLE_ENDIAN__
-# if LONGSIZE == 4
-# define BYTEORDER 0x1234
-# else
-# if LONGSIZE == 8
-# define BYTEORDER 0x12345678
-# endif
-# endif
-# else
-# ifdef __BIG_ENDIAN__
-# if LONGSIZE == 4
-# define BYTEORDER 0x4321
-# else
-# if LONGSIZE == 8
-# define BYTEORDER 0x87654321
-# endif
-# endif
-# endif
-# endif
-# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
-# define BYTEORDER 0x4321
-# endif
-#else
-#define BYTEORDER 0x1234 /* large digits for MSB */
-#endif /* NeXT */
-
-/* CHARBITS:
- * This symbol contains the size of a char, so that the C preprocessor
- * can make decisions based on it.
- */
-#define CHARBITS 8 /**/
-
-/* CASTI32:
- * This symbol is defined if the C compiler can cast negative
- * or large floating point numbers to 32-bit ints.
- */
-#define CASTI32 /**/
-
-/* CASTNEGFLOAT:
- * This symbol is defined if the C compiler can cast negative
- * numbers to unsigned longs, ints and shorts.
- */
-/* CASTFLAGS:
- * This symbol contains flags that say what difficulties the compiler
- * has casting odd floating values to unsigned long:
- * 0 = ok
- * 1 = couldn't cast < 0
- * 2 = couldn't cast >= 0x80000000
- * 4 = couldn't cast in argument expression list
- */
-#define CASTNEGFLOAT /**/
-#define CASTFLAGS 0 /**/
-
-/* VOID_CLOSEDIR:
- * This symbol, if defined, indicates that the closedir() routine
- * does not return a value.
- */
-/*#define VOID_CLOSEDIR / **/
-
-/* HAS_FD_SET:
- * This symbol, when defined, indicates presence of the fd_set typedef
- * in <sys/types.h>
- */
-#define HAS_FD_SET /**/
-
-/* Gconvert:
- * This preprocessor macro is defined to convert a floating point
- * number to a string without a trailing decimal point. This
- * emulates the behavior of sprintf("%g"), but is sometimes much more
- * efficient. If gconvert() is not available, but gcvt() drops the
- * trailing decimal point, then gcvt() is used. If all else fails,
- * a macro using sprintf("%g") is used. Arguments for the Gconvert
- * macro are: value, number of digits, whether trailing zeros should
- * be retained, and the output buffer.
- * The usual values are:
- * d_Gconvert='gconvert((x),(n),(t),(b))'
- * d_Gconvert='gcvt((x),(n),(b))'
- * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
- * The last two assume trailing zeros should not be kept.
- */
-#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
-
-/* HAS_GETPAGESIZE:
- * This symbol, if defined, indicates that the getpagesize system call
- * is available to get system page size, which is the granularity of
- * many memory management calls.
- */
-/*#define HAS_GETPAGESIZE / **/
-
-/* HAS_GNULIBC:
- * This symbol, if defined, indicates to the C program that
- * the GNU C library is being used. A better check is to use
- * the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc.
- */
-/*#define HAS_GNULIBC / **/
-#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
-# define _GNU_SOURCE
-#endif
-
-/* HAS_ISASCII:
- * This manifest constant lets the C program know that isascii
- * is available.
- */
-#define HAS_ISASCII /**/
-
-/* HAS_LCHOWN:
- * This symbol, if defined, indicates that the lchown routine is
- * available to operate on a symbolic link (instead of following the
- * link).
- */
-/*#define HAS_LCHOWN / **/
-
-/* HAS_OPEN3:
- * This manifest constant lets the C program know that the three
- * argument form of open(2) is available.
- */
-/*#define HAS_OPEN3 / **/
-
-/* HAS_SAFE_BCOPY:
- * This symbol, if defined, indicates that the bcopy routine is available
- * to copy potentially overlapping memory blocks. Normally, you should
- * probably use memmove() or memcpy(). If neither is defined, roll your
- * own version.
- */
-/*#define HAS_SAFE_BCOPY / **/
-
-/* HAS_SAFE_MEMCPY:
- * This symbol, if defined, indicates that the memcpy routine is available
- * to copy potentially overlapping memory blocks. If you need to
- * copy overlapping memory blocks, you should check HAS_MEMMOVE and
- * use memmove() instead, if available.
- */
-/*#define HAS_SAFE_MEMCPY / **/
-
-/* HAS_SANE_MEMCMP:
- * This symbol, if defined, indicates that the memcmp routine is available
- * and can be used to compare relative magnitudes of chars with their high
- * bits set. If it is not defined, roll your own version.
- */
-#define HAS_SANE_MEMCMP /**/
-
-/* HAS_SIGACTION:
- * This symbol, if defined, indicates that Vr4's sigaction() routine
- * is available.
- */
-/*#define HAS_SIGACTION / **/
-
-/* HAS_SIGSETJMP:
- * This variable indicates to the C program that the sigsetjmp()
- * routine is available to save the calling process's registers
- * and stack environment for later use by siglongjmp(), and
- * to optionally save the process's signal mask. See
- * Sigjmp_buf, Sigsetjmp, and Siglongjmp.
- */
-/* Sigjmp_buf:
- * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
- */
-/* Sigsetjmp:
- * This macro is used in the same way as sigsetjmp(), but will invoke
- * traditional setjmp() if sigsetjmp isn't available.
- * See HAS_SIGSETJMP.
- */
-/* Siglongjmp:
- * This macro is used in the same way as siglongjmp(), but will invoke
- * traditional longjmp() if siglongjmp isn't available.
- * See HAS_SIGSETJMP.
- */
-/*#define HAS_SIGSETJMP / **/
-#ifdef HAS_SIGSETJMP
-#define Sigjmp_buf sigjmp_buf
-#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
-#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
-#else
-#define Sigjmp_buf jmp_buf
-#define Sigsetjmp(buf,save_mask) setjmp((buf))
-#define Siglongjmp(buf,retval) longjmp((buf),(retval))
-#endif
-
-/* USE_STDIO_PTR:
- * This symbol is defined if the _ptr and _cnt fields (or similar)
- * of the stdio FILE structure can be used to access the stdio buffer
- * for a file handle. If this is defined, then the FILE_ptr(fp)
- * and FILE_cnt(fp) macros will also be defined and should be used
- * to access these fields.
- */
-/* FILE_ptr:
- * This macro is used to access the _ptr field (or equivalent) of the
- * FILE structure pointed to by its argument. This macro will always be
- * defined if USE_STDIO_PTR is defined.
- */
-/* STDIO_PTR_LVALUE:
- * This symbol is defined if the FILE_ptr macro can be used as an
- * lvalue.
- */
-/* FILE_cnt:
- * This macro is used to access the _cnt field (or equivalent) of the
- * FILE structure pointed to by its argument. This macro will always be
- * defined if USE_STDIO_PTR is defined.
- */
-/* STDIO_CNT_LVALUE:
- * This symbol is defined if the FILE_cnt macro can be used as an
- * lvalue.
- */
-/* STDIO_PTR_LVAL_SETS_CNT:
- * This symbol is defined if using the FILE_ptr macro as an lvalue
- * to increase the pointer by n has the side effect of decreasing the
- * value of File_cnt(fp) by n.
- */
-/* STDIO_PTR_LVAL_NOCHANGE_CNT:
- * This symbol is defined if using the FILE_ptr macro as an lvalue
- * to increase the pointer by n leaves File_cnt(fp) unchanged.
- */
-#define USE_STDIO_PTR /**/
-#ifdef USE_STDIO_PTR
-#define FILE_ptr(fp) ((fp)->_ptr)
-#define STDIO_PTR_LVALUE /**/
-#define FILE_cnt(fp) ((fp)->_cnt)
-#define STDIO_CNT_LVALUE /**/
-/*#define STDIO_PTR_LVAL_SETS_CNT / **/
-#define STDIO_PTR_LVAL_NOCHANGE_CNT /**/
-#endif
-
-/* USE_STDIO_BASE:
- * This symbol is defined if the _base field (or similar) of the
- * stdio FILE structure can be used to access the stdio buffer for
- * a file handle. If this is defined, then the FILE_base(fp) macro
- * will also be defined and should be used to access this field.
- * Also, the FILE_bufsiz(fp) macro will be defined and should be used
- * to determine the number of bytes in the buffer. USE_STDIO_BASE
- * will never be defined unless USE_STDIO_PTR is.
- */
-/* FILE_base:
- * This macro is used to access the _base field (or equivalent) of the
- * FILE structure pointed to by its argument. This macro will always be
- * defined if USE_STDIO_BASE is defined.
- */
-/* FILE_bufsiz:
- * This macro is used to determine the number of bytes in the I/O
- * buffer pointed to by _base field (or equivalent) of the FILE
- * structure pointed to its argument. This macro will always be defined
- * if USE_STDIO_BASE is defined.
- */
-#define USE_STDIO_BASE /**/
-#ifdef USE_STDIO_BASE
-#define FILE_base(fp) ((fp)->_base)
-#define FILE_bufsiz(fp) ((fp)->_cnt + (fp)->_ptr - (fp)->_base)
-#endif
-
-/* HAS_VPRINTF:
- * This symbol, if defined, indicates that the vprintf routine is available
- * to printf with a pointer to an argument list. If unavailable, you
- * may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- * This symbol is defined if this system has vsprintf() returning type
- * (char*). The trend seems to be to declare it as "int vsprintf()". It
- * is up to the package author to declare vsprintf correctly based on the
- * symbol.
- */
-#define HAS_VPRINTF /**/
-/*#define USE_CHAR_VSPRINTF / **/
-
-/* DOUBLESIZE:
- * This symbol contains the size of a double, so that the C preprocessor
- * can make decisions based on it.
- */
-#define DOUBLESIZE 8 /**/
-
-/* I_TIME:
- * This symbol, if defined, indicates to the C program that it should
- * include <time.h>.
- */
-/* I_SYS_TIME:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/time.h>.
- */
-/* I_SYS_TIME_KERNEL:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/time.h> with KERNEL defined.
- */
-/* HAS_TM_TM_ZONE:
- * This symbol, if defined, indicates to the C program that
- * the struct tm has a tm_zone field.
- */
-/* HAS_TM_TM_GMTOFF:
- * This symbol, if defined, indicates to the C program that
- * the struct tm has a tm_gmtoff field.
- */
-#define I_TIME /**/
-/*#define I_SYS_TIME / **/
-/*#define I_SYS_TIME_KERNEL / **/
-/*#define HAS_TM_TM_ZONE / **/
-/*#define HAS_TM_TM_GMTOFF / **/
-
-/* VAL_O_NONBLOCK:
- * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
- * non-blocking I/O for the file descriptor. Note that there is no way
- * back, i.e. you cannot turn it blocking again this way. If you wish to
- * alternatively switch between blocking and non-blocking, use the
- * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
- */
-/* VAL_EAGAIN:
- * This symbol holds the errno error code set by read() when no data was
- * present on the non-blocking file descriptor.
- */
-/* RD_NODATA:
- * This symbol holds the return code from read() when no data is present
- * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
- * not defined, then you can't distinguish between no data and EOF by
- * issuing a read(). You'll have to find another way to tell for sure!
- */
-/* EOF_NONBLOCK:
- * This symbol, if defined, indicates to the C program that a read() on
- * a non-blocking file descriptor will return 0 on EOF, and not the value
- * held in RD_NODATA (-1 usually, in that case!).
- */
-#define VAL_O_NONBLOCK O_NONBLOCK
-#define VAL_EAGAIN EAGAIN
-#define RD_NODATA -1
-#define EOF_NONBLOCK
-
-/* PTRSIZE:
- * This symbol contains the size of a pointer, so that the C preprocessor
- * can make decisions based on it. It will be sizeof(void *) if
- * the compiler supports (void *); otherwise it will be
- * sizeof(char *).
- */
-#define PTRSIZE 4 /**/
-
-/* Drand01:
- * This macro is to be used to generate uniformly distributed
- * random numbers over the range [0., 1.[. You may have to supply
- * an 'extern double drand48();' in your program since SunOS 4.1.3
- * doesn't provide you with anything relevant in its headers.
- * See HAS_DRAND48_PROTO.
- */
-/* Rand_seed_t:
- * This symbol defines the type of the argument of the
- * random seed function.
- */
-/* seedDrand01:
- * This symbol defines the macro to be used in seeding the
- * random number generator (see Drand01).
- */
-/* RANDBITS:
- * This symbol indicates how many bits are produced by the
- * function used to generate normalized random numbers.
- * Values include 15, 16, 31, and 48.
- */
-#define Drand01() (rand()/(double)((unsigned)1<<RANDBITS)) /**/
-#define Rand_seed_t unsigned /**/
-#define seedDrand01(x) srand((Rand_seed_t)x) /**/
-#define RANDBITS 15 /**/
-
-/* SSize_t:
- * This symbol holds the type used by functions that return
- * a count of bytes or an error condition. It must be a signed type.
- * It is usually ssize_t, but may be long or int, etc.
- * It may be necessary to include <sys/types.h> or <unistd.h>
- * to get any typedef'ed information.
- * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
- */
-#define SSize_t int /* signed count of bytes */
-
-/* EBCDIC:
- * This symbol, if defined, indicates that this system uses
- * EBCDIC encoding.
- */
-/*#define EBCDIC / **/
-
-/* SETUID_SCRIPTS_ARE_SECURE_NOW:
- * This symbol, if defined, indicates that the bug that prevents
- * setuid scripts from being secure is not present in this kernel.
- */
-/* DOSUID:
- * This symbol, if defined, indicates that the C program should
- * check the script that it is executing for setuid/setgid bits, and
- * attempt to emulate setuid/setgid on systems that have disabled
- * setuid #! scripts because the kernel can't do it securely.
- * It is up to the package designer to make sure that this emulation
- * is done securely. Among other things, it should do an fstat on
- * the script it just opened to make sure it really is a setuid/setgid
- * script, it should make sure the arguments passed correspond exactly
- * to the argument on the #! line, and it should not trust any
- * subprocesses to which it must pass the filename rather than the
- * file descriptor of the script to be executed.
- */
-/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
-/*#define DOSUID / **/
-
/* PERL_USE_DEVEL:
* This symbol, if defined, indicates that Perl was configured with
* -Dusedevel, to enable development features. This should not be
@@ -3583,7 +3412,7 @@
/* HAS_GETESPWNAM:
* This symbol, if defined, indicates that the getespwnam system call is
- * available to retrieve enchanced (shadow) password entries by name.
+ * available to retrieve enhanced (shadow) password entries by name.
*/
/*#define HAS_GETESPWNAM / **/
@@ -3724,7 +3553,7 @@
/* HAS_MKSTEMPS:
* This symbol, if defined, indicates that the mkstemps routine is
- * available to excluslvely create and open a uniquely named
+ * available to exclusively create and open a uniquely named
* (with a suffix) temporary file.
*/
/*#define HAS_MKSTEMPS / **/
@@ -3774,6 +3603,17 @@
*/
/*#define HAS_OFF64_T / **/
+/* HAS_PRCTL:
+ * This symbol, if defined, indicates that the prctl routine is
+ * available to set process title.
+ */
+/* HAS_PRCTL_SET_NAME:
+ * This symbol, if defined, indicates that the prctl routine is
+ * available to set process title and supports PR_SET_NAME.
+ */
+/*#define HAS_PRCTL / **/
+/*#define HAS_PRCTL_SET_NAME / **/
+
/* HAS_PROCSELFEXE:
* This symbol is defined if PROCSELFEXE_PATH is a symlink
* to the absolute pathname of the executing program.
@@ -4413,7 +4253,7 @@
/* NV_OVERFLOWS_INTEGERS_AT:
* This symbol gives the largest integer value that NVs can hold. This
* value + 1.0 cannot be stored accurately. It is expressed as constant
- * floating point expression to reduce the chance of decimale/binary
+ * floating point expression to reduce the chance of decimal/binary
* conversion issues. If it can not be determined, the value 0 is given.
*/
/* NV_ZERO_IS_ALLBITS_ZERO:
@@ -4644,4 +4484,203 @@
/*#define USE_SOCKS / **/
#endif
+/* HAS_DRAND48_PROTO:
+ * This symbol, if defined, indicates that the system provides
+ * a prototype for the drand48() function. Otherwise, it is up
+ * to the program to supply one. A good guess is
+ * extern double drand48(void);
+ */
+/*#define HAS_DRAND48_PROTO / **/
+
+/* HAS_GETHOST_PROTOS:
+ * This symbol, if defined, indicates that <netdb.h> includes
+ * prototypes for gethostent(), gethostbyname(), and
+ * gethostbyaddr(). Otherwise, it is up to the program to guess
+ * them. See netdbtype.U for probing for various Netdb_xxx_t types.
+ */
+#define HAS_GETHOST_PROTOS /**/
+
+/* HAS_GETNET_PROTOS:
+ * This symbol, if defined, indicates that <netdb.h> includes
+ * prototypes for getnetent(), getnetbyname(), and
+ * getnetbyaddr(). Otherwise, it is up to the program to guess
+ * them. See netdbtype.U for probing for various Netdb_xxx_t types.
+ */
+/*#define HAS_GETNET_PROTOS / **/
+
+/* HAS_GETPROTO_PROTOS:
+ * This symbol, if defined, indicates that <netdb.h> includes
+ * prototypes for getprotoent(), getprotobyname(), and
+ * getprotobyaddr(). Otherwise, it is up to the program to guess
+ * them. See netdbtype.U for probing for various Netdb_xxx_t types.
+ */
+#define HAS_GETPROTO_PROTOS /**/
+
+/* HAS_GETSERV_PROTOS:
+ * This symbol, if defined, indicates that <netdb.h> includes
+ * prototypes for getservent(), getservbyname(), and
+ * getservbyaddr(). Otherwise, it is up to the program to guess
+ * them. See netdbtype.U for probing for various Netdb_xxx_t types.
+ */
+#define HAS_GETSERV_PROTOS /**/
+
+/* HAS_LSEEK_PROTO:
+ * This symbol, if defined, indicates that the system provides
+ * a prototype for the lseek() function. Otherwise, it is up
+ * to the program to supply one. A good guess is
+ * extern off_t lseek(int, off_t, int);
+ */
+#define HAS_LSEEK_PROTO /**/
+
+/* Netdb_host_t:
+ * This symbol holds the type used for the 1st argument
+ * to gethostbyaddr().
+ */
+/* Netdb_hlen_t:
+ * This symbol holds the type used for the 2nd argument
+ * to gethostbyaddr().
+ */
+/* Netdb_name_t:
+ * This symbol holds the type used for the argument to
+ * gethostbyname().
+ */
+/* Netdb_net_t:
+ * This symbol holds the type used for the 1st argument to
+ * getnetbyaddr().
+ */
+#define Netdb_host_t char * /**/
+#define Netdb_hlen_t int /**/
+#define Netdb_name_t char * /**/
+#define Netdb_net_t long /**/
+
+/* Select_fd_set_t:
+ * This symbol holds the type used for the 2nd, 3rd, and 4th
+ * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
+ * is defined, and 'int *' otherwise. This is only useful if you
+ * have select(), of course.
+ */
+#define Select_fd_set_t Perl_fd_set * /**/
+
+/* Sock_size_t:
+ * This symbol holds the type used for the size argument of
+ * various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t int /**/
+
+/* HAS_TIME:
+ * This symbol, if defined, indicates that the time() routine exists.
+ */
+/* Time_t:
+ * This symbol holds the type returned by time(). It can be long,
+ * or time_t on BSD sites (in which case <sys/types.h> should be
+ * included).
+ */
+#define HAS_TIME /**/
+#define Time_t time_t /* Time type */
+
+/* HAS_TIMES:
+ * This symbol, if defined, indicates that the times() routine exists.
+ * Note that this became obsolete on some systems (SUNOS), which now
+ * use getrusage(). It may be necessary to include <sys/times.h>.
+ */
+#define HAS_TIMES /**/
+
+/* Fpos_t:
+ * This symbol holds the type used to declare file positions in libc.
+ * It can be fpos_t, long, uint, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Fpos_t fpos_t /* File position type */
+
+/* Gid_t_f:
+ * This symbol defines the format string used for printing a Gid_t.
+ */
+#define Gid_t_f "ld" /**/
+
+/* Gid_t_sign:
+ * This symbol holds the signedess of a Gid_t.
+ * 1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign -1 /* GID sign */
+
+/* Gid_t_size:
+ * This symbol holds the size of a Gid_t in bytes.
+ */
+#define Gid_t_size 4 /* GID size */
+
+/* Gid_t:
+ * This symbol holds the return type of getgid() and the type of
+ * argument to setrgid() and related functions. Typically,
+ * it is the type of group ids in the kernel. It can be int, ushort,
+ * gid_t, etc... It may be necessary to include <sys/types.h> to get
+ * any typedef'ed information.
+ */
+#define Gid_t gid_t /* Type for getgid(), etc... */
+
+/* Off_t:
+ * This symbol holds the type used to declare offsets in the kernel.
+ * It can be int, long, off_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+/* LSEEKSIZE:
+ * This symbol holds the number of bytes used by the Off_t.
+ */
+/* Off_t_size:
+ * This symbol holds the number of bytes used by the Off_t.
+ */
+#define Off_t long long /* <offset> type */
+#define LSEEKSIZE 8 /* <offset> size */
+#define Off_t_size 8 /* <offset> size */
+
+/* Mode_t:
+ * This symbol holds the type used to declare file modes
+ * for systems calls. It is usually mode_t, but may be
+ * int or unsigned short. It may be necessary to include <sys/types.h>
+ * to get any typedef'ed information.
+ */
+#define Mode_t mode_t /* file mode parameter for system calls */
+
+/* Pid_t:
+ * This symbol holds the type used to declare process ids in the kernel.
+ * It can be int, uint, pid_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Pid_t int /* PID type */
+
+/* Size_t_size:
+ * This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size 4 /**/
+
+/* Size_t:
+ * This symbol holds the type used to declare length parameters
+ * for string functions. It is usually size_t, but may be
+ * unsigned long, int, etc. It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Size_t size_t /* length parameter for string functions */
+
+/* Uid_t_f:
+ * This symbol defines the format string used for printing a Uid_t.
+ */
+#define Uid_t_f "ld" /**/
+
+/* Uid_t_sign:
+ * This symbol holds the signedess of a Uid_t.
+ * 1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign -1 /* UID sign */
+
+/* Uid_t_size:
+ * This symbol holds the size of a Uid_t in bytes.
+ */
+#define Uid_t_size 4 /* UID size */
+
+/* Uid_t:
+ * This symbol holds the type used to declare user ids in the kernel.
+ * It can be int, ushort, uid_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Uid_t uid_t /* UID type */
+
#endif
diff --git a/Master/tlpkg/tlperl/lib/CORE/cop.h b/Master/tlpkg/tlperl/lib/CORE/cop.h
index 13ce794ce20..ad0ee9b7239 100644
--- a/Master/tlpkg/tlperl/lib/CORE/cop.h
+++ b/Master/tlpkg/tlperl/lib/CORE/cop.h
@@ -14,11 +14,12 @@
*/
/* A jmpenv packages the state required to perform a proper non-local jump.
- * Note that there is a start_env initialized when perl starts, and top_env
- * points to this initially, so top_env should always be non-null.
+ * Note that there is a PL_start_env initialized when perl starts, and
+ * PL_top_env points to this initially, so PL_top_env should always be
+ * non-null.
*
- * Existence of a non-null top_env->je_prev implies it is valid to call
- * longjmp() at that runlevel (we make sure start_env.je_prev is always
+ * Existence of a non-null PL_top_env->je_prev implies it is valid to call
+ * longjmp() at that runlevel (we make sure PL_start_env.je_prev is always
* null to ensure this).
*
* je_mustcatch, when set at any runlevel to TRUE, means eval ops must
@@ -91,17 +92,20 @@ typedef struct jmpenv JMPENV;
*
* The original patches that introduces flexible exceptions were:
*
- * http://public.activestate.com/cgi-bin/perlbrowse?patch=3386
- * http://public.activestate.com/cgi-bin/perlbrowse?patch=5162
+ * http://perl5.git.perl.org/perl.git/commit/312caa8e97f1c7ee342a9895c2f0e749625b4929
+ * http://perl5.git.perl.org/perl.git/commit/14dd3ad8c9bf82cf09798a22cc89a9862dfd6d1a
+ *
*/
#define dJMPENV JMPENV cur_env
#define JMPENV_PUSH(v) \
STMT_START { \
- DEBUG_l(Perl_deb(aTHX_ "Setting up jumplevel %p, was %p at %s:%d\n", \
- (void*)&cur_env, (void*)PL_top_env, \
- __FILE__, __LINE__)); \
+ DEBUG_l({ \
+ int i = 0; JMPENV *p = PL_top_env; \
+ while (p) { i++; p = p->je_prev; } \
+ Perl_deb(aTHX_ "JUMPENV_PUSH level=%d at %s:%d\n", \
+ i, __FILE__, __LINE__);}) \
cur_env.je_prev = PL_top_env; \
OP_REG_TO_MEM; \
cur_env.je_ret = PerlProc_setjmp(cur_env.je_buf, SCOPE_SAVES_SIGNAL_MASK); \
@@ -113,15 +117,22 @@ typedef struct jmpenv JMPENV;
#define JMPENV_POP \
STMT_START { \
- DEBUG_l(Perl_deb(aTHX_ "popping jumplevel was %p, now %p at %s:%d\n", \
- (void*)PL_top_env, (void*)cur_env.je_prev, \
- __FILE__, __LINE__)); \
+ DEBUG_l({ \
+ int i = -1; JMPENV *p = PL_top_env; \
+ while (p) { i++; p = p->je_prev; } \
+ Perl_deb(aTHX_ "JUMPENV_POP level=%d at %s:%d\n", \
+ i, __FILE__, __LINE__);}) \
assert(PL_top_env == &cur_env); \
PL_top_env = cur_env.je_prev; \
} STMT_END
#define JMPENV_JUMP(v) \
STMT_START { \
+ DEBUG_l({ \
+ int i = -1; JMPENV *p = PL_top_env; \
+ while (p) { i++; p = p->je_prev; } \
+ Perl_deb(aTHX_ "JUMPENV_JUMP(%d) level=%d at %s:%d\n", \
+ (int)v, i, __FILE__, __LINE__);}) \
OP_REG_TO_MEM; \
if (PL_top_env->je_prev) \
PerlProc_longjmp(PL_top_env->je_buf, (v)); \
@@ -132,8 +143,240 @@ typedef struct jmpenv JMPENV;
} STMT_END
#define CATCH_GET (PL_top_env->je_mustcatch)
-#define CATCH_SET(v) (PL_top_env->je_mustcatch = (v))
+#define CATCH_SET(v) \
+ STMT_START { \
+ DEBUG_l( \
+ Perl_deb(aTHX_ \
+ "JUMPLEVEL set catch %d => %d (for %p) at %s:%d\n", \
+ PL_top_env->je_mustcatch, v, (void*)PL_top_env, \
+ __FILE__, __LINE__);) \
+ PL_top_env->je_mustcatch = (v); \
+ } STMT_END
+
+/*
+=head1 COP Hint Hashes
+*/
+
+typedef struct refcounted_he COPHH;
+
+#define COPHH_KEY_UTF8 REFCOUNTED_HE_KEY_UTF8
+
+/*
+=for apidoc Amx|SV *|cophh_fetch_pvn|const COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
+
+Look up the entry in the cop hints hash I<cophh> with the key specified by
+I<keypv> and I<keylen>. If I<flags> has the C<COPHH_KEY_UTF8> bit set,
+the key octets are interpreted as UTF-8, otherwise they are interpreted
+as Latin-1. I<hash> is a precomputed hash of the key string, or zero if
+it has not been precomputed. Returns a mortal scalar copy of the value
+associated with the key, or C<&PL_sv_placeholder> if there is no value
+associated with the key.
+
+=cut
+*/
+
+#define cophh_fetch_pvn(cophh, keypv, keylen, hash, flags) \
+ Perl_refcounted_he_fetch_pvn(aTHX_ cophh, keypv, keylen, hash, flags)
+
+/*
+=for apidoc Amx|SV *|cophh_fetch_pvs|const COPHH *cophh|const char *key|U32 flags
+
+Like L</cophh_fetch_pvn>, but takes a literal string instead of a
+string/length pair, and no precomputed hash.
+
+=cut
+*/
+
+#define cophh_fetch_pvs(cophh, key, flags) \
+ Perl_refcounted_he_fetch_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0, flags)
+
+/*
+=for apidoc Amx|SV *|cophh_fetch_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
+Like L</cophh_fetch_pvn>, but takes a nul-terminated string instead of
+a string/length pair.
+
+=cut
+*/
+
+#define cophh_fetch_pv(cophh, key, hash, flags) \
+ Perl_refcounted_he_fetch_pv(aTHX_ cophh, key, hash, flags)
+
+/*
+=for apidoc Amx|SV *|cophh_fetch_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
+
+Like L</cophh_fetch_pvn>, but takes a Perl scalar instead of a
+string/length pair.
+
+=cut
+*/
+
+#define cophh_fetch_sv(cophh, key, hash, flags) \
+ Perl_refcounted_he_fetch_sv(aTHX_ cophh, key, hash, flags)
+
+/*
+=for apidoc Amx|HV *|cophh_2hv|const COPHH *cophh|U32 flags
+
+Generates and returns a standard Perl hash representing the full set of
+key/value pairs in the cop hints hash I<cophh>. I<flags> is currently
+unused and must be zero.
+
+=cut
+*/
+
+#define cophh_2hv(cophh, flags) \
+ Perl_refcounted_he_chain_2hv(aTHX_ cophh, flags)
+
+/*
+=for apidoc Amx|COPHH *|cophh_copy|COPHH *cophh
+
+Make and return a complete copy of the cop hints hash I<cophh>.
+
+=cut
+*/
+
+#define cophh_copy(cophh) Perl_refcounted_he_inc(aTHX_ cophh)
+
+/*
+=for apidoc Amx|void|cophh_free|COPHH *cophh
+
+Discard the cop hints hash I<cophh>, freeing all resources associated
+with it.
+
+=cut
+*/
+
+#define cophh_free(cophh) Perl_refcounted_he_free(aTHX_ cophh)
+
+/*
+=for apidoc Amx|COPHH *|cophh_new_empty
+
+Generate and return a fresh cop hints hash containing no entries.
+
+=cut
+*/
+
+#define cophh_new_empty() ((COPHH *)NULL)
+
+/*
+=for apidoc Amx|COPHH *|cophh_store_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|SV *value|U32 flags
+
+Stores a value, associated with a key, in the cop hints hash I<cophh>,
+and returns the modified hash. The returned hash pointer is in general
+not the same as the hash pointer that was passed in. The input hash is
+consumed by the function, and the pointer to it must not be subsequently
+used. Use L</cophh_copy> if you need both hashes.
+
+The key is specified by I<keypv> and I<keylen>. If I<flags> has the
+C<COPHH_KEY_UTF8> bit set, the key octets are interpreted as UTF-8,
+otherwise they are interpreted as Latin-1. I<hash> is a precomputed
+hash of the key string, or zero if it has not been precomputed.
+
+I<value> is the scalar value to store for this key. I<value> is copied
+by this function, which thus does not take ownership of any reference
+to it, and later changes to the scalar will not be reflected in the
+value visible in the cop hints hash. Complex types of scalar will not
+be stored with referential integrity, but will be coerced to strings.
+
+=cut
+*/
+
+#define cophh_store_pvn(cophh, keypv, keylen, hash, value, flags) \
+ Perl_refcounted_he_new_pvn(aTHX_ cophh, keypv, keylen, hash, value, flags)
+
+/*
+=for apidoc Amx|COPHH *|cophh_store_pvs|const COPHH *cophh|const char *key|SV *value|U32 flags
+
+Like L</cophh_store_pvn>, but takes a literal string instead of a
+string/length pair, and no precomputed hash.
+
+=cut
+*/
+
+#define cophh_store_pvs(cophh, key, value, flags) \
+ Perl_refcounted_he_new_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0, value, flags)
+
+/*
+=for apidoc Amx|COPHH *|cophh_store_pv|const COPHH *cophh|const char *key|U32 hash|SV *value|U32 flags
+
+Like L</cophh_store_pvn>, but takes a nul-terminated string instead of
+a string/length pair.
+
+=cut
+*/
+
+#define cophh_store_pv(cophh, key, hash, value, flags) \
+ Perl_refcounted_he_new_pv(aTHX_ cophh, key, hash, value, flags)
+
+/*
+=for apidoc Amx|COPHH *|cophh_store_sv|const COPHH *cophh|SV *key|U32 hash|SV *value|U32 flags
+
+Like L</cophh_store_pvn>, but takes a Perl scalar instead of a
+string/length pair.
+
+=cut
+*/
+
+#define cophh_store_sv(cophh, key, hash, value, flags) \
+ Perl_refcounted_he_new_sv(aTHX_ cophh, key, hash, value, flags)
+
+/*
+=for apidoc Amx|COPHH *|cophh_delete_pvn|COPHH *cophh|const char *keypv|STRLEN keylen|U32 hash|U32 flags
+
+Delete a key and its associated value from the cop hints hash I<cophh>,
+and returns the modified hash. The returned hash pointer is in general
+not the same as the hash pointer that was passed in. The input hash is
+consumed by the function, and the pointer to it must not be subsequently
+used. Use L</cophh_copy> if you need both hashes.
+
+The key is specified by I<keypv> and I<keylen>. If I<flags> has the
+C<COPHH_KEY_UTF8> bit set, the key octets are interpreted as UTF-8,
+otherwise they are interpreted as Latin-1. I<hash> is a precomputed
+hash of the key string, or zero if it has not been precomputed.
+
+=cut
+*/
+
+#define cophh_delete_pvn(cophh, keypv, keylen, hash, flags) \
+ Perl_refcounted_he_new_pvn(aTHX_ cophh, keypv, keylen, hash, \
+ (SV *)NULL, flags)
+
+/*
+=for apidoc Amx|COPHH *|cophh_delete_pvs|const COPHH *cophh|const char *key|U32 flags
+
+Like L</cophh_delete_pvn>, but takes a literal string instead of a
+string/length pair, and no precomputed hash.
+
+=cut
+*/
+
+#define cophh_delete_pvs(cophh, key, flags) \
+ Perl_refcounted_he_new_pvn(aTHX_ cophh, STR_WITH_LEN(key), 0, \
+ (SV *)NULL, flags)
+
+/*
+=for apidoc Amx|COPHH *|cophh_delete_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
+
+Like L</cophh_delete_pvn>, but takes a nul-terminated string instead of
+a string/length pair.
+
+=cut
+*/
+
+#define cophh_delete_pv(cophh, key, hash, flags) \
+ Perl_refcounted_he_new_pv(aTHX_ cophh, key, hash, (SV *)NULL, flags)
+
+/*
+=for apidoc Amx|COPHH *|cophh_delete_sv|const COPHH *cophh|SV *key|U32 hash|U32 flags
+
+Like L</cophh_delete_pvn>, but takes a Perl scalar instead of a
+string/length pair.
+
+=cut
+*/
+
+#define cophh_delete_sv(cophh, key, hash, flags) \
+ Perl_refcounted_he_new_sv(aTHX_ cophh, key, hash, (SV *)NULL, flags)
#include "mydtrace.h"
@@ -156,7 +399,7 @@ struct cop {
STRLEN * cop_warnings; /* lexical warnings bitmask */
/* compile time state of %^H. See the comment in op.c for how this is
used to recreate a hash to return from caller. */
- struct refcounted_he * cop_hints_hash;
+ COPHH * cop_hints_hash;
};
#ifdef USE_ITHREADS
@@ -225,7 +468,81 @@ struct cop {
# define CopFILE_free(c) (SvREFCNT_dec(CopFILEGV(c)),(CopFILEGV(c) = NULL))
#endif /* USE_ITHREADS */
-#define CopLABEL(c) Perl_fetch_cop_label(aTHX_ (c)->cop_hints_hash, NULL, NULL)
+
+#define CopHINTHASH_get(c) ((COPHH*)((c)->cop_hints_hash))
+#define CopHINTHASH_set(c,h) ((c)->cop_hints_hash = (h))
+
+/*
+=head1 COP Hint Reading
+*/
+
+/*
+=for apidoc Am|SV *|cop_hints_fetch_pvn|const COP *cop|const char *keypv|STRLEN keylen|U32 hash|U32 flags
+
+Look up the hint entry in the cop I<cop> with the key specified by
+I<keypv> and I<keylen>. If I<flags> has the C<COPHH_KEY_UTF8> bit set,
+the key octets are interpreted as UTF-8, otherwise they are interpreted
+as Latin-1. I<hash> is a precomputed hash of the key string, or zero if
+it has not been precomputed. Returns a mortal scalar copy of the value
+associated with the key, or C<&PL_sv_placeholder> if there is no value
+associated with the key.
+
+=cut
+*/
+
+#define cop_hints_fetch_pvn(cop, keypv, keylen, hash, flags) \
+ cophh_fetch_pvn(CopHINTHASH_get(cop), keypv, keylen, hash, flags)
+
+/*
+=for apidoc Am|SV *|cop_hints_fetch_pvs|const COP *cop|const char *key|U32 flags
+
+Like L</cop_hints_fetch_pvn>, but takes a literal string instead of a
+string/length pair, and no precomputed hash.
+
+=cut
+*/
+
+#define cop_hints_fetch_pvs(cop, key, flags) \
+ cophh_fetch_pvs(CopHINTHASH_get(cop), key, flags)
+
+/*
+=for apidoc Am|SV *|cop_hints_fetch_pv|const COP *cop|const char *key|U32 hash|U32 flags
+
+Like L</cop_hints_fetch_pvn>, but takes a nul-terminated string instead
+of a string/length pair.
+
+=cut
+*/
+
+#define cop_hints_fetch_pv(cop, key, hash, flags) \
+ cophh_fetch_pv(CopHINTHASH_get(cop), key, hash, flags)
+
+/*
+=for apidoc Am|SV *|cop_hints_fetch_sv|const COP *cop|SV *key|U32 hash|U32 flags
+
+Like L</cop_hints_fetch_pvn>, but takes a Perl scalar instead of a
+string/length pair.
+
+=cut
+*/
+
+#define cop_hints_fetch_sv(cop, key, hash, flags) \
+ cophh_fetch_sv(CopHINTHASH_get(cop), key, hash, flags)
+
+/*
+=for apidoc Am|HV *|cop_hints_2hv|const COP *cop|U32 flags
+
+Generates and returns a standard Perl hash representing the full set of
+hint entries in the cop I<cop>. I<flags> is currently unused and must
+be zero.
+
+=cut
+*/
+
+#define cop_hints_2hv(cop, flags) \
+ cophh_2hv(CopHINTHASH_get(cop), flags)
+
+#define CopLABEL(c) Perl_fetch_cop_label(aTHX_ (c), NULL, NULL)
#define CopLABEL_alloc(pv) ((pv)?savepv(pv):NULL)
#define CopSTASH_ne(c,hv) (!CopSTASH_eq(c,hv))
@@ -239,12 +556,11 @@ struct cop {
/* If $[ is non-zero, it's stored in cop_hints under the key "$[", and
HINT_ARYBASE is set to indicate this.
- Setting it is ineficient due to the need to create 2 mortal SVs, but as
+ Setting it is inefficient due to the need to create 2 mortal SVs, but as
using $[ is highly discouraged, no sane Perl code will be using it. */
#define CopARYBASE_get(c) \
((CopHINTS_get(c) & HINT_ARYBASE) \
- ? SvIV(Perl_refcounted_he_fetch(aTHX_ (c)->cop_hints_hash, 0, \
- "$[", 2, 0, 0)) \
+ ? SvIV(cop_hints_fetch_pvs((c), "$[", 0)) \
: 0)
#define CopARYBASE_set(c, b) STMT_START { \
if (b || ((c)->cop_hints & HINT_ARYBASE)) { \
@@ -255,10 +571,9 @@ struct cop {
mg_set(val); \
PL_hints |= HINT_ARYBASE; \
} else { \
- (c)->cop_hints_hash \
- = Perl_refcounted_he_new(aTHX_ (c)->cop_hints_hash, \
- newSVpvs_flags("$[", SVs_TEMP), \
- sv_2mortal(newSViv(b))); \
+ CopHINTHASH_set((c), \
+ cophh_store_pvs(CopHINTHASH_get((c)), "$[", \
+ sv_2mortal(newSViv(b)), 0)); \
} \
} \
} STMT_END
@@ -303,7 +618,8 @@ struct block_format {
#define PUSHSUB_BASE(cx) \
ENTRY_PROBE(GvENAME(CvGV(cv)), \
CopFILE((const COP *)CvSTART(cv)), \
- CopLINE((const COP *)CvSTART(cv))); \
+ CopLINE((const COP *)CvSTART(cv)), \
+ CopSTASHPV((const COP *)CvSTART(cv))); \
\
cx->blk_sub.cv = cv; \
cx->blk_sub.olddepth = CvDEPTH(cv); \
@@ -353,7 +669,8 @@ struct block_format {
STMT_START { \
RETURN_PROBE(GvENAME(CvGV((const CV*)cx->blk_sub.cv)), \
CopFILE((COP*)CvSTART((const CV*)cx->blk_sub.cv)), \
- CopLINE((COP*)CvSTART((const CV*)cx->blk_sub.cv))); \
+ CopLINE((COP*)CvSTART((const CV*)cx->blk_sub.cv)), \
+ CopSTASHPV((COP*)CvSTART((const CV*)cx->blk_sub.cv))); \
\
if (CxHASARGS(cx)) { \
POP_SAVEARRAY(); \
@@ -429,16 +746,11 @@ struct block_eval {
struct block_loop {
I32 resetsp;
LOOP * my_op; /* My op, that contains redo, next and last ops. */
- /* (except for non_ithreads we need to modify next_op in pp_ctl.c, hence
- why next_op is conditionally defined below.) */
-#ifdef USE_ITHREADS
- PAD *oldcomppad; /* Also used for the GV, if targoffset is 0 */
- /* This is also accesible via cx->blk_loop.my_op->op_targ */
- PADOFFSET targoffset;
-#else
- OP * next_op;
- SV ** itervar;
-#endif
+ union { /* different ways of locating the iteration variable */
+ SV **svp;
+ GV *gv;
+ PAD *oldcomppad; /* only used in ITHREADS */
+ } itervar_u;
union {
struct { /* valid if type is LOOP_FOR or LOOP_PLAIN (but {NULL,0})*/
AV * ary; /* use the stack if this is NULL */
@@ -456,49 +768,36 @@ struct block_loop {
};
#ifdef USE_ITHREADS
-# define CxITERVAR(c) \
- ((c)->blk_loop.oldcomppad \
- ? (CxPADLOOP(c) \
- ? &CX_CURPAD_SV( (c)->blk_loop, (c)->blk_loop.targoffset ) \
- : &GvSV((GV*)(c)->blk_loop.oldcomppad)) \
- : (SV**)NULL)
-# define CX_ITERDATA_SET(cx,idata,o) \
- if ((cx->blk_loop.targoffset = (o))) \
- CX_CURPAD_SAVE(cx->blk_loop); \
- else \
- cx->blk_loop.oldcomppad = (idata);
+# define CxITERVAR_PADSV(c) \
+ &CX_CURPAD_SV( (c)->blk_loop.itervar_u, (c)->blk_loop.my_op->op_targ)
#else
-# define CxITERVAR(c) ((c)->blk_loop.itervar)
-# define CX_ITERDATA_SET(cx,ivar,o) \
- cx->blk_loop.itervar = (SV**)(ivar);
+# define CxITERVAR_PADSV(c) ((c)->blk_loop.itervar_u.svp)
#endif
+
+#define CxITERVAR(c) \
+ ((c)->blk_loop.itervar_u.oldcomppad \
+ ? (CxPADLOOP(c) \
+ ? CxITERVAR_PADSV(c) \
+ : &GvSV((c)->blk_loop.itervar_u.gv)) \
+ : (SV**)NULL)
+
#define CxLABEL(c) (0 + CopLABEL((c)->blk_oldcop))
#define CxHASARGS(c) (((c)->cx_type & CXp_HASARGS) == CXp_HASARGS)
#define CxLVAL(c) (0 + (c)->blk_u16)
-#ifdef USE_ITHREADS
-# define PUSHLOOP_OP_NEXT /* No need to do anything. */
-# define CX_LOOP_NEXTOP_GET(cx) ((cx)->blk_loop.my_op->op_nextop + 0)
-#else
-# define PUSHLOOP_OP_NEXT cx->blk_loop.next_op = cLOOP->op_nextop
-# define CX_LOOP_NEXTOP_GET(cx) ((cx)->blk_loop.next_op + 0)
-#endif
-
#define PUSHLOOP_PLAIN(cx, s) \
cx->blk_loop.resetsp = s - PL_stack_base; \
cx->blk_loop.my_op = cLOOP; \
- PUSHLOOP_OP_NEXT; \
cx->blk_loop.state_u.ary.ary = NULL; \
cx->blk_loop.state_u.ary.ix = 0; \
- CX_ITERDATA_SET(cx, NULL, 0);
+ cx->blk_loop.itervar_u.svp = NULL;
-#define PUSHLOOP_FOR(cx, dat, s, offset) \
+#define PUSHLOOP_FOR(cx, ivar, s) \
cx->blk_loop.resetsp = s - PL_stack_base; \
cx->blk_loop.my_op = cLOOP; \
- PUSHLOOP_OP_NEXT; \
cx->blk_loop.state_u.ary.ary = NULL; \
cx->blk_loop.state_u.ary.ix = 0; \
- CX_ITERDATA_SET(cx, dat, offset);
+ cx->blk_loop.itervar_u.svp = (SV**)(ivar);
#define POPLOOP(cx) \
if (CxTYPE(cx) == CXt_LOOP_LAZYSV) { \
@@ -550,6 +849,16 @@ struct block {
#define blk_loop cx_u.cx_blk.blk_u.blku_loop
#define blk_givwhen cx_u.cx_blk.blk_u.blku_givwhen
+#define DEBUG_CX(action) \
+ DEBUG_l( \
+ Perl_deb(aTHX_ "CX %ld %s %s (scope %ld,%ld) at %s:%d\n", \
+ (long)cxstack_ix, \
+ action, \
+ PL_block_type[CxTYPE(&cxstack[cxstack_ix])], \
+ (long)PL_scopestack_ix, \
+ (long)(cxstack[cxstack_ix].blk_oldscopesp), \
+ __FILE__, __LINE__));
+
/* Enter a block. */
#define PUSHBLOCK(cx,t,sp) CXINC, cx = &cxstack[cxstack_ix], \
cx->cx_type = t, \
@@ -559,28 +868,27 @@ struct block {
cx->blk_oldscopesp = PL_scopestack_ix, \
cx->blk_oldpm = PL_curpm, \
cx->blk_gimme = (U8)gimme; \
- DEBUG_l( PerlIO_printf(Perl_debug_log, "Entering block %ld, type %s\n", \
- (long)cxstack_ix, PL_block_type[CxTYPE(cx)]); )
+ DEBUG_CX("PUSH");
/* Exit a block (RETURN and LAST). */
-#define POPBLOCK(cx,pm) cx = &cxstack[cxstack_ix--], \
+#define POPBLOCK(cx,pm) \
+ DEBUG_CX("POP"); \
+ cx = &cxstack[cxstack_ix--], \
newsp = PL_stack_base + cx->blk_oldsp, \
PL_curcop = cx->blk_oldcop, \
PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp, \
PL_scopestack_ix = cx->blk_oldscopesp, \
pm = cx->blk_oldpm, \
- gimme = cx->blk_gimme; \
- DEBUG_SCOPE("POPBLOCK"); \
- DEBUG_l( PerlIO_printf(Perl_debug_log, "Leaving block %ld, type %s\n", \
- (long)cxstack_ix+1,PL_block_type[CxTYPE(cx)]); )
+ gimme = cx->blk_gimme;
/* Continue a block elsewhere (NEXT and REDO). */
-#define TOPBLOCK(cx) cx = &cxstack[cxstack_ix], \
+#define TOPBLOCK(cx) \
+ DEBUG_CX("TOP"); \
+ cx = &cxstack[cxstack_ix], \
PL_stack_sp = PL_stack_base + cx->blk_oldsp, \
PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp, \
PL_scopestack_ix = cx->blk_oldscopesp, \
- PL_curpm = cx->blk_oldpm; \
- DEBUG_SCOPE("TOPBLOCK");
+ PL_curpm = cx->blk_oldpm;
/* substitution context */
struct subst {
@@ -603,7 +911,6 @@ struct subst {
#define sb_maxiters cx_u.cx_subst.sbu_maxiters
#define sb_rflags cx_u.cx_subst.sbu_rflags
#define sb_oldsave cx_u.cx_subst.sbu_oldsave
-#define sb_once cx_u.cx_subst.sbu_once
#define sb_rxtainted cx_u.cx_subst.sbu_rxtainted
#define sb_orig cx_u.cx_subst.sbu_orig
#define sb_dstr cx_u.cx_subst.sbu_dstr
@@ -686,9 +993,7 @@ struct context {
/* private flags for CXt_LOOP */
#define CXp_FOR_DEF 0x10 /* foreach using $_ */
-#ifdef USE_ITHREADS
-# define CxPADLOOP(c) ((c)->blk_loop.targoffset)
-#endif
+#define CxPADLOOP(c) ((c)->blk_loop.my_op->op_targ)
/* private flags for CXt_SUBST */
#define CXp_ONCE 0x10 /* What was sbu_once in struct subst */
@@ -751,11 +1056,16 @@ L<perlcall>.
hash actions codes defined in hv.h */
#define G_EVAL 8 /* Assume eval {} around subroutine call. */
#define G_NOARGS 16 /* Don't construct a @_ array. */
-#define G_KEEPERR 32 /* Append errors to $@, don't overwrite it */
+#define G_KEEPERR 32 /* Warn for errors, don't overwrite $@ */
#define G_NODEBUG 64 /* Disable debugging at toplevel. */
#define G_METHOD 128 /* Calling method. */
#define G_FAKINGEVAL 256 /* Faking an eval context for call_sv or
fold_constants. */
+#define G_UNDEF_FILL 512 /* Fill the stack with &PL_sv_undef
+ A special case for UNSHIFT in
+ Perl_magic_methcall(). */
+#define G_WRITING_TO_STDERR 1024 /* Perl_write_to_stderr() is calling
+ Perl_magic_methcall(). */
/* flag bits for PL_in_eval */
#define EVAL_NULL 0 /* not in an eval */
@@ -809,6 +1119,11 @@ typedef struct stackinfo PERL_SI;
#define PUSHSTACKi(type) \
STMT_START { \
PERL_SI *next = PL_curstackinfo->si_next; \
+ DEBUG_l({ \
+ int i = 0; PERL_SI *p = PL_curstackinfo; \
+ while (p) { i++; p = p->si_prev; } \
+ Perl_deb(aTHX_ "push STACKINFO %d at %s:%d\n", \
+ i, __FILE__, __LINE__);}) \
if (!next) { \
next = new_stackinfo(32, 2048/sizeof(PERL_CONTEXT) - 1); \
next->si_prev = PL_curstackinfo; \
@@ -830,6 +1145,11 @@ typedef struct stackinfo PERL_SI;
STMT_START { \
dSP; \
PERL_SI * const prev = PL_curstackinfo->si_prev; \
+ DEBUG_l({ \
+ int i = -1; PERL_SI *p = PL_curstackinfo; \
+ while (p) { i++; p = p->si_prev; } \
+ Perl_deb(aTHX_ "pop STACKINFO %d at %s:%d\n", \
+ i, __FILE__, __LINE__);}) \
if (!prev) { \
PerlIO_printf(Perl_error_log, "panic: POPSTACK\n"); \
my_exit(1); \
@@ -908,8 +1228,8 @@ See L<perlcall/Lightweight Callbacks>.
#define POP_MULTICALL \
STMT_START { \
- LEAVESUB(multicall_cv); \
- CvDEPTH(multicall_cv)--; \
+ if (! --CvDEPTH(multicall_cv)) \
+ LEAVESUB(multicall_cv); \
POPBLOCK(cx,PL_curpm); \
POPSTACK; \
CATCH_SET(multicall_oldcatch); \
diff --git a/Master/tlpkg/tlperl/lib/CORE/cv.h b/Master/tlpkg/tlperl/lib/CORE/cv.h
index 290019d9add..6fdf5cbaf2a 100644
--- a/Master/tlpkg/tlperl/lib/CORE/cv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/cv.h
@@ -12,8 +12,8 @@
struct xpvcv {
_XPV_HEAD;
- _XPVMG_HEAD;
_XPVCV_COMMON;
+ I32 xcv_depth; /* >= 2 indicates recursive call */
};
/*
@@ -36,12 +36,14 @@ Returns the stash of the CV.
# define Nullcv Null(CV*)
#endif
-#define CvSTASH(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_stash
+#define CvSTASH(sv) (0+((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_stash)
+#define CvSTASH_set(cv,st) Perl_cvstash_set(aTHX_ cv, st)
#define CvSTART(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_start_u.xcv_start
#define CvROOT(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_root_u.xcv_root
#define CvXSUB(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_root_u.xcv_xsub
#define CvXSUBANY(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_start_u.xcv_xsubany
-#define CvGV(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_gv
+#define CvGV(sv) (0+((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_gv)
+#define CvGV_set(cv,gv) Perl_cvgv_set(aTHX_ cv, gv)
#define CvFILE(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_file
#ifdef USE_ITHREADS
# define CvFILE_set_from_cop(sv, cop) (CvFILE(sv) = savepv(CopFILE(cop)))
@@ -52,10 +54,10 @@ Returns the stash of the CV.
#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
# define CvDEPTH(sv) (*({const CV *const _cvdepth = (const CV *)sv; \
assert(SvTYPE(_cvdepth) == SVt_PVCV); \
- &((XPVCV*)SvANY(_cvdepth))->xiv_u.xivu_i32; \
+ &((XPVCV*)SvANY(_cvdepth))->xcv_depth; \
}))
#else
-# define CvDEPTH(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xiv_u.xivu_i32
+# define CvDEPTH(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_depth
#endif
#define CvPADLIST(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_padlist
#define CvOUTSIDE(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_outside
@@ -63,18 +65,19 @@ Returns the stash of the CV.
#define CvOUTSIDE_SEQ(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_outside_seq
#define CVf_METHOD 0x0001 /* CV is explicitly marked as a method */
-#define CVf_LVALUE 0x0004 /* CV return value can be used as lvalue */
+#define CVf_LVALUE 0x0002 /* CV return value can be used as lvalue */
+#define CVf_CONST 0x0004 /* inlinable sub */
+#define CVf_ISXSUB 0x0008 /* CV is an XSUB, not pure perl. */
#define CVf_WEAKOUTSIDE 0x0010 /* CvOUTSIDE isn't ref counted */
#define CVf_CLONE 0x0020 /* anon CV uses external lexicals */
#define CVf_CLONED 0x0040 /* a clone of one of those */
-#define CVf_ANON 0x0080 /* CvGV() can't be trusted */
+#define CVf_ANON 0x0080 /* CV is not pointed to by a GV */
#define CVf_UNIQUE 0x0100 /* sub is only called once (eg PL_main_cv,
* require, eval). */
#define CVf_NODEBUG 0x0200 /* no DB::sub indirection for this CV
(esp. useful for special XSUBs) */
-#define CVf_CONST 0x0400 /* inlinable sub */
-#define CVf_ISXSUB 0x0800 /* CV is an XSUB, not pure perl. */
+#define CVf_CVGV_RC 0x0400 /* CvGV is reference counted */
/* This symbol for optimised communication between toke.c and op.c: */
#define CVf_BUILTIN_ATTRS (CVf_METHOD|CVf_LVALUE)
@@ -128,6 +131,10 @@ Returns the stash of the CV.
#define CvISXSUB_on(cv) (CvFLAGS(cv) |= CVf_ISXSUB)
#define CvISXSUB_off(cv) (CvFLAGS(cv) &= ~CVf_ISXSUB)
+#define CvCVGV_RC(cv) (CvFLAGS(cv) & CVf_CVGV_RC)
+#define CvCVGV_RC_on(cv) (CvFLAGS(cv) |= CVf_CVGV_RC)
+#define CvCVGV_RC_off(cv) (CvFLAGS(cv) &= ~CVf_CVGV_RC)
+
/* Flags for newXS_flags */
#define XS_DYNAMIC_FILENAME 0x01 /* The filename isn't static */
@@ -186,6 +193,8 @@ should print 123:
=cut
*/
+typedef OP *(*Perl_call_checker)(pTHX_ OP *, GV *, SV *);
+
/*
* Local variables:
* c-indentation-style: bsd
diff --git a/Master/tlpkg/tlperl/lib/CORE/embed.h b/Master/tlpkg/tlperl/lib/CORE/embed.h
index 2b80af0458a..04b32d18089 100644
--- a/Master/tlpkg/tlperl/lib/CORE/embed.h
+++ b/Master/tlpkg/tlperl/lib/CORE/embed.h
@@ -1,16 +1,16 @@
-/* -*- buffer-read-only: t -*-
+/* -*- buffer-read-only: t -*-
*
* embed.h
*
- * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- * 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+ * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by embed.pl from data in embed.fnc, embed.pl,
- * pp.sym, intrpvar.h, and perlvars.h.
+ * This file is built by regen/embed.pl from data in embed.fnc,
+ * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
* Any changes made here will be lost!
*
* Edit those files and run 'make regen_headers' to effect changes.
@@ -26,2454 +26,14 @@
/* Hide global symbols */
-#if !defined(PERL_IMPLICIT_CONTEXT)
-
-#if defined(PERL_IMPLICIT_SYS)
-#endif
-#define doing_taint Perl_doing_taint
-#if defined(USE_ITHREADS)
-# if defined(PERL_IMPLICIT_SYS)
-# endif
-#endif
-#if defined(MYMALLOC)
-#ifdef PERL_CORE
-#define malloced_size Perl_malloced_size
-#define malloc_good_size Perl_malloc_good_size
-#endif
-#endif
-#define get_context Perl_get_context
-#define set_context Perl_set_context
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regcurly Perl_regcurly
-#endif
-#define amagic_call Perl_amagic_call
-#define Gv_AMupdate Perl_Gv_AMupdate
-#define gv_handler Perl_gv_handler
-#ifdef PERL_CORE
-#define append_elem Perl_append_elem
-#define append_list Perl_append_list
-#define apply Perl_apply
-#endif
-#define apply_attrs_string Perl_apply_attrs_string
-#define av_clear Perl_av_clear
-#define av_delete Perl_av_delete
-#define av_exists Perl_av_exists
-#define av_extend Perl_av_extend
-#define av_fetch Perl_av_fetch
-#define av_fill Perl_av_fill
-#define av_len Perl_av_len
-#define av_make Perl_av_make
-#define av_pop Perl_av_pop
-#define av_push Perl_av_push
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define av_reify Perl_av_reify
-#endif
-#define av_shift Perl_av_shift
-#define av_store Perl_av_store
-#define av_undef Perl_av_undef
-#define av_unshift Perl_av_unshift
-#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define get_aux_mg S_get_aux_mg
-#endif
-#endif
-#ifdef PERL_CORE
-#define bind_match Perl_bind_match
-#define block_end Perl_block_end
-#endif
-#define block_gimme Perl_block_gimme
-#ifdef PERL_CORE
-#define block_start Perl_block_start
-#define boot_core_UNIVERSAL Perl_boot_core_UNIVERSAL
-#define boot_core_PerlIO Perl_boot_core_PerlIO
-#endif
-#define call_list Perl_call_list
-#ifdef PERL_CORE
-#define cando Perl_cando
-#endif
-#define cast_ulong Perl_cast_ulong
-#define cast_i32 Perl_cast_i32
-#define cast_iv Perl_cast_iv
-#define cast_uv Perl_cast_uv
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-#define my_chsize Perl_my_chsize
-#endif
-#ifdef PERL_CORE
-#define convert Perl_convert
-#define create_eval_scope Perl_create_eval_scope
-#endif
-#define croak Perl_croak
-#define vcroak Perl_vcroak
-#define croak_xs_usage Perl_croak_xs_usage
-#if defined(PERL_IMPLICIT_CONTEXT)
-#define croak_nocontext Perl_croak_nocontext
-#define die_nocontext Perl_die_nocontext
-#define deb_nocontext Perl_deb_nocontext
-#define form_nocontext Perl_form_nocontext
-#define load_module_nocontext Perl_load_module_nocontext
-#define mess_nocontext Perl_mess_nocontext
-#define warn_nocontext Perl_warn_nocontext
-#define warner_nocontext Perl_warner_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
-#define fprintf_nocontext Perl_fprintf_nocontext
-#define printf_nocontext Perl_printf_nocontext
-#endif
-#ifdef PERL_CORE
-#define cv_ckproto_len Perl_cv_ckproto_len
-#define cv_clone Perl_cv_clone
-#endif
-#define gv_const_sv Perl_gv_const_sv
-#define cv_const_sv Perl_cv_const_sv
-#ifdef PERL_CORE
-#define op_const_sv Perl_op_const_sv
-#endif
-#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
-#ifdef PERL_CORE
-#define get_no_modify Perl_get_no_modify
-#define get_opargs Perl_get_opargs
-#endif
-#define get_ppaddr Perl_get_ppaddr
-#define cxinc Perl_cxinc
-#define deb Perl_deb
-#define vdeb Perl_vdeb
-#define debprofdump Perl_debprofdump
-#define debop Perl_debop
-#define debstack Perl_debstack
-#define debstackptrs Perl_debstackptrs
-#define delimcpy Perl_delimcpy
-#ifdef PERL_CORE
-#define delete_eval_scope Perl_delete_eval_scope
-#endif
-#define die Perl_die
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define vdie S_vdie
-#endif
-#endif
-#ifdef PERL_CORE
-#define die_where Perl_die_where
-#endif
-#define dounwind Perl_dounwind
-#ifdef PERL_CORE
-#define do_aexec5 Perl_do_aexec5
-#endif
-#define do_binmode Perl_do_binmode
-#ifdef PERL_CORE
-#define do_chop Perl_do_chop
-#endif
-#define do_close Perl_do_close
-#ifdef PERL_CORE
-#define do_eof Perl_do_eof
-#endif
-#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-#else
-#ifdef PERL_CORE
-#define do_exec Perl_do_exec
-#endif
-#endif
-#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS)
-#define do_aspawn Perl_do_aspawn
-#define do_spawn Perl_do_spawn
-#define do_spawn_nowait Perl_do_spawn_nowait
-#endif
-#if !defined(WIN32)
-#ifdef PERL_CORE
-#define do_exec3 Perl_do_exec3
-#endif
-#endif
-#ifdef PERL_CORE
-#define do_execfree Perl_do_execfree
-#endif
-#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define exec_failed S_exec_failed
-#endif
-#endif
-#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-#ifdef PERL_CORE
-#define do_ipcctl Perl_do_ipcctl
-#define do_ipcget Perl_do_ipcget
-#define do_msgrcv Perl_do_msgrcv
-#define do_msgsnd Perl_do_msgsnd
-#define do_semop Perl_do_semop
-#define do_shmio Perl_do_shmio
-#endif
-#endif
-#define do_join Perl_do_join
-#ifdef PERL_CORE
-#define do_kv Perl_do_kv
-#endif
-#define do_open9 Perl_do_open9
-#define do_openn Perl_do_openn
-#ifdef PERL_CORE
-#define do_print Perl_do_print
-#define do_readline Perl_do_readline
-#define do_chomp Perl_do_chomp
-#define do_seek Perl_do_seek
-#endif
-#define do_sprintf Perl_do_sprintf
-#ifdef PERL_CORE
-#define do_sysseek Perl_do_sysseek
-#define do_tell Perl_do_tell
-#define do_trans Perl_do_trans
-#define do_vecget Perl_do_vecget
-#define do_vecset Perl_do_vecset
-#define do_vop Perl_do_vop
-#define dofile Perl_dofile
-#endif
-#define dowantarray Perl_dowantarray
-#define dump_all Perl_dump_all
-#ifdef PERL_CORE
-#define dump_all_perl Perl_dump_all_perl
-#endif
-#define dump_eval Perl_dump_eval
-#if defined(DUMP_FDS)
-#define dump_fds Perl_dump_fds
-#endif
-#define dump_form Perl_dump_form
-#define gv_dump Perl_gv_dump
-#define op_dump Perl_op_dump
-#define pmop_dump Perl_pmop_dump
-#define dump_packsubs Perl_dump_packsubs
-#ifdef PERL_CORE
-#define dump_packsubs_perl Perl_dump_packsubs_perl
-#endif
-#define dump_sub Perl_dump_sub
-#ifdef PERL_CORE
-#define dump_sub_perl Perl_dump_sub_perl
-#endif
-#define fbm_compile Perl_fbm_compile
-#define fbm_instr Perl_fbm_instr
-#ifdef PERL_CORE
-#define find_script Perl_find_script
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define force_list S_force_list
-#define fold_constants S_fold_constants
-#endif
-#endif
-#define form Perl_form
-#define vform Perl_vform
-#define free_tmps Perl_free_tmps
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define gen_constant_list S_gen_constant_list
-#endif
-#endif
-#if !defined(HAS_GETENV_LEN)
-#ifdef PERL_CORE
-#define getenv_len Perl_getenv_len
-#endif
-#endif
-#define gp_free Perl_gp_free
-#define gp_ref Perl_gp_ref
-#define gv_add_by_type Perl_gv_add_by_type
-#define gv_autoload4 Perl_gv_autoload4
-#define gv_check Perl_gv_check
-#define gv_efullname Perl_gv_efullname
-#define gv_efullname4 Perl_gv_efullname4
-#define gv_fetchfile Perl_gv_fetchfile
-#define gv_fetchfile_flags Perl_gv_fetchfile_flags
-#define gv_fetchmeth Perl_gv_fetchmeth
-#define gv_fetchmeth_autoload Perl_gv_fetchmeth_autoload
-#define gv_fetchmethod_autoload Perl_gv_fetchmethod_autoload
-#define gv_fetchmethod_flags Perl_gv_fetchmethod_flags
-#define gv_fetchpv Perl_gv_fetchpv
-#define gv_fullname Perl_gv_fullname
-#define gv_fullname4 Perl_gv_fullname4
-#define gv_init Perl_gv_init
-#define gv_name_set Perl_gv_name_set
-#ifdef PERL_CORE
-#define gv_try_downgrade Perl_gv_try_downgrade
-#endif
-#define gv_stashpv Perl_gv_stashpv
-#define gv_stashpvn Perl_gv_stashpvn
-#define gv_stashsv Perl_gv_stashsv
-#define hv_clear Perl_hv_clear
-#define hv_delayfree_ent Perl_hv_delayfree_ent
-#define hv_common Perl_hv_common
-#define hv_common_key_len Perl_hv_common_key_len
-#define hv_free_ent Perl_hv_free_ent
-#define hv_iterinit Perl_hv_iterinit
-#define hv_iterkey Perl_hv_iterkey
-#define hv_iterkeysv Perl_hv_iterkeysv
-#define hv_iternextsv Perl_hv_iternextsv
-#define hv_iternext_flags Perl_hv_iternext_flags
-#define hv_iterval Perl_hv_iterval
-#define hv_ksplit Perl_hv_ksplit
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define refcounted_he_new_common S_refcounted_he_new_common
-#endif
-#endif
-#define hv_undef Perl_hv_undef
-#define ibcmp Perl_ibcmp
-#define ibcmp_locale Perl_ibcmp_locale
-#define ibcmp_utf8 Perl_ibcmp_utf8
-#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define ingroup S_ingroup
-#endif
-#endif
-#ifdef PERL_CORE
-#define init_argv_symbols Perl_init_argv_symbols
-#endif
-#ifdef PERL_CORE
-#define init_debugger Perl_init_debugger
-#endif
-#define init_stacks Perl_init_stacks
-#define init_tm Perl_init_tm
-#ifdef PERL_CORE
-#define intro_my Perl_intro_my
-#endif
-#define instr Perl_instr
-#ifdef PERL_CORE
-#define io_close Perl_io_close
-#define invert Perl_invert
-#endif
-#define is_lvalue_sub Perl_is_lvalue_sub
-#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_uni_alnum Perl_is_uni_alnum
-#define is_uni_idfirst Perl_is_uni_idfirst
-#define is_uni_alpha Perl_is_uni_alpha
-#define is_uni_ascii Perl_is_uni_ascii
-#define is_uni_space Perl_is_uni_space
-#define is_uni_cntrl Perl_is_uni_cntrl
-#define is_uni_graph Perl_is_uni_graph
-#define is_uni_digit Perl_is_uni_digit
-#define is_uni_upper Perl_is_uni_upper
-#define is_uni_lower Perl_is_uni_lower
-#define is_uni_print Perl_is_uni_print
-#define is_uni_punct Perl_is_uni_punct
-#define is_uni_xdigit Perl_is_uni_xdigit
-#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 to_uni_fold Perl_to_uni_fold
-#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_ascii_lc Perl_is_uni_ascii_lc
-#define is_uni_space_lc Perl_is_uni_space_lc
-#define is_uni_cntrl_lc Perl_is_uni_cntrl_lc
-#define is_uni_graph_lc Perl_is_uni_graph_lc
-#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 is_uni_punct_lc Perl_is_uni_punct_lc
-#define is_uni_xdigit_lc Perl_is_uni_xdigit_lc
-#define is_ascii_string Perl_is_ascii_string
-#define is_utf8_char Perl_is_utf8_char
-#define is_utf8_string Perl_is_utf8_string
-#define is_utf8_string_loclen Perl_is_utf8_string_loclen
-#define is_utf8_alnum Perl_is_utf8_alnum
-#define is_utf8_idfirst Perl_is_utf8_idfirst
-#define is_utf8_idcont Perl_is_utf8_idcont
-#define is_utf8_alpha Perl_is_utf8_alpha
-#define is_utf8_ascii Perl_is_utf8_ascii
-#define is_utf8_space Perl_is_utf8_space
-#define is_utf8_perl_space Perl_is_utf8_perl_space
-#define is_utf8_perl_word Perl_is_utf8_perl_word
-#define is_utf8_cntrl Perl_is_utf8_cntrl
-#define is_utf8_digit Perl_is_utf8_digit
-#define is_utf8_posix_digit Perl_is_utf8_posix_digit
-#define is_utf8_graph Perl_is_utf8_graph
-#define is_utf8_upper Perl_is_utf8_upper
-#define is_utf8_lower Perl_is_utf8_lower
-#define is_utf8_print Perl_is_utf8_print
-#define is_utf8_punct Perl_is_utf8_punct
-#define is_utf8_xdigit Perl_is_utf8_xdigit
-#define is_utf8_mark Perl_is_utf8_mark
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define is_utf8_X_begin Perl_is_utf8_X_begin
-#define is_utf8_X_extend Perl_is_utf8_X_extend
-#define is_utf8_X_prepend Perl_is_utf8_X_prepend
-#define is_utf8_X_non_hangul Perl_is_utf8_X_non_hangul
-#define is_utf8_X_L Perl_is_utf8_X_L
-#define is_utf8_X_LV Perl_is_utf8_X_LV
-#define is_utf8_X_LVT Perl_is_utf8_X_LVT
-#define is_utf8_X_LV_LVT_V Perl_is_utf8_X_LV_LVT_V
-#define is_utf8_X_T Perl_is_utf8_X_T
-#define is_utf8_X_V Perl_is_utf8_X_V
-#endif
-#ifdef PERL_CORE
-#define jmaybe Perl_jmaybe
-#define keyword Perl_keyword
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define opt_scalarhv S_opt_scalarhv
-#define is_inplace_av S_is_inplace_av
-#endif
-#endif
-#define leave_scope Perl_leave_scope
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define lex_end Perl_lex_end
-#endif
-#ifdef PERL_CORE
-#define lex_start Perl_lex_start
-#endif
-#define lex_bufutf8 Perl_lex_bufutf8
-#define lex_grow_linestr Perl_lex_grow_linestr
-#define lex_stuff_pvn Perl_lex_stuff_pvn
-#define lex_stuff_sv Perl_lex_stuff_sv
-#define lex_unstuff Perl_lex_unstuff
-#define lex_read_to Perl_lex_read_to
-#define lex_discard_to Perl_lex_discard_to
-#define lex_next_chunk Perl_lex_next_chunk
-#define lex_peek_unichar Perl_lex_peek_unichar
-#define lex_read_unichar Perl_lex_read_unichar
-#define lex_read_space Perl_lex_read_space
-#define op_null Perl_op_null
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define op_clear Perl_op_clear
-#endif
-#define op_refcnt_lock Perl_op_refcnt_lock
-#define op_refcnt_unlock Perl_op_refcnt_unlock
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define linklist S_linklist
-#define listkids S_listkids
-#endif
-#endif
-#ifdef PERL_CORE
-#define list Perl_list
-#endif
-#define load_module Perl_load_module
-#define vload_module Perl_vload_module
-#ifdef PERL_CORE
-#define localize Perl_localize
-#endif
-#define looks_like_number Perl_looks_like_number
-#define grok_bin Perl_grok_bin
-#define grok_hex Perl_grok_hex
-#define grok_number Perl_grok_number
-#define grok_numeric_radix Perl_grok_numeric_radix
-#define grok_oct Perl_grok_oct
-#ifdef PERL_CORE
-#define magic_clearenv Perl_magic_clearenv
-#define magic_clear_all_env Perl_magic_clear_all_env
-#define magic_clearhint Perl_magic_clearhint
-#define magic_clearhints Perl_magic_clearhints
-#define magic_clearisa Perl_magic_clearisa
-#define magic_clearpack Perl_magic_clearpack
-#define magic_clearsig Perl_magic_clearsig
-#define magic_existspack Perl_magic_existspack
-#define magic_freeovrld Perl_magic_freeovrld
-#define magic_get Perl_magic_get
-#define magic_getarylen Perl_magic_getarylen
-#define magic_getdefelem Perl_magic_getdefelem
-#define magic_getnkeys Perl_magic_getnkeys
-#define magic_getpack Perl_magic_getpack
-#define magic_getpos Perl_magic_getpos
-#define magic_getsig Perl_magic_getsig
-#define magic_getsubstr Perl_magic_getsubstr
-#define magic_gettaint Perl_magic_gettaint
-#define magic_getuvar Perl_magic_getuvar
-#define magic_getvec Perl_magic_getvec
-#define magic_len Perl_magic_len
-#define magic_nextpack Perl_magic_nextpack
-#define magic_regdata_cnt Perl_magic_regdata_cnt
-#define magic_regdatum_get Perl_magic_regdatum_get
-#define magic_regdatum_set Perl_magic_regdatum_set
-#define magic_set Perl_magic_set
-#define magic_setamagic Perl_magic_setamagic
-#define magic_setarylen Perl_magic_setarylen
-#define magic_freearylen_p Perl_magic_freearylen_p
-#define magic_setdbline Perl_magic_setdbline
-#define magic_setdefelem Perl_magic_setdefelem
-#define magic_setenv Perl_magic_setenv
-#define magic_sethint Perl_magic_sethint
-#define magic_setisa Perl_magic_setisa
-#define magic_setmglob Perl_magic_setmglob
-#define magic_setnkeys Perl_magic_setnkeys
-#define magic_setpack Perl_magic_setpack
-#define magic_setpos Perl_magic_setpos
-#define magic_setregexp Perl_magic_setregexp
-#define magic_setsig Perl_magic_setsig
-#define magic_setsubstr Perl_magic_setsubstr
-#define magic_settaint Perl_magic_settaint
-#define magic_setuvar Perl_magic_setuvar
-#define magic_setvec Perl_magic_setvec
-#define magic_setutf8 Perl_magic_setutf8
-#define magic_set_all_env Perl_magic_set_all_env
-#define magic_sizepack Perl_magic_sizepack
-#define magic_wipepack Perl_magic_wipepack
-#endif
-#define markstack_grow Perl_markstack_grow
-#if defined(USE_LOCALE_COLLATE)
-#ifdef PERL_CORE
-#define magic_setcollxfrm Perl_magic_setcollxfrm
-#define mem_collxfrm Perl_mem_collxfrm
-#endif
-#endif
-#define mess Perl_mess
-#define vmess Perl_vmess
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define qerror Perl_qerror
-#endif
-#define sortsv Perl_sortsv
-#define sortsv_flags Perl_sortsv_flags
-#define mg_clear Perl_mg_clear
-#define mg_copy Perl_mg_copy
-#ifdef PERL_CORE
-#define mg_localize Perl_mg_localize
-#endif
-#define mg_find Perl_mg_find
-#define mg_free Perl_mg_free
-#define mg_get Perl_mg_get
-#define mg_length Perl_mg_length
-#define mg_magical Perl_mg_magical
-#define mg_set Perl_mg_set
-#define mg_size Perl_mg_size
-#define mini_mktime Perl_mini_mktime
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define mod Perl_mod
-#endif
-#ifdef PERL_CORE
-#define mode_from_discipline Perl_mode_from_discipline
-#endif
-#define moreswitches Perl_moreswitches
-#define my_atof Perl_my_atof
-#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
-#define my_bcopy Perl_my_bcopy
-#endif
-#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-#define my_bzero Perl_my_bzero
-#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_fork Perl_my_fork
-#define atfork_lock Perl_atfork_lock
-#define atfork_unlock Perl_atfork_unlock
-#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
-#endif
-#define my_pclose Perl_my_pclose
-#define my_popen Perl_my_popen
-#define my_popen_list Perl_my_popen_list
-#define my_setenv Perl_my_setenv
-#define my_stat Perl_my_stat
-#define my_strftime Perl_my_strftime
-#if defined(MYSWAP)
-#define my_swap Perl_my_swap
-#define my_htonl Perl_my_htonl
-#define my_ntohl Perl_my_ntohl
-#endif
-#ifdef PERL_CORE
-#define my_unexec Perl_my_unexec
-#endif
-#define newANONLIST Perl_newANONLIST
-#define newANONHASH Perl_newANONHASH
-#define newANONSUB Perl_newANONSUB
-#define newASSIGNOP Perl_newASSIGNOP
-#define newCONDOP Perl_newCONDOP
-#define newCONSTSUB Perl_newCONSTSUB
-#ifdef PERL_MAD
-#define newFORM Perl_newFORM
-#else
-#define newFORM Perl_newFORM
-#endif
-#define newFOROP Perl_newFOROP
-#define newGIVENOP Perl_newGIVENOP
-#define newLOGOP Perl_newLOGOP
-#define newLOOPEX Perl_newLOOPEX
-#define newLOOPOP Perl_newLOOPOP
-#define newNULLLIST Perl_newNULLLIST
-#define newOP Perl_newOP
-#define newPROG Perl_newPROG
-#define newRANGE Perl_newRANGE
-#define newSLICEOP Perl_newSLICEOP
-#define newSTATEOP Perl_newSTATEOP
-#define newSUB Perl_newSUB
-#define newXS_flags Perl_newXS_flags
-#define newXS Perl_newXS
-#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 newHVhv Perl_newHVhv
-#define newLISTOP Perl_newLISTOP
-#ifdef USE_ITHREADS
-#define newPADOP Perl_newPADOP
-#endif
-#define newPMOP Perl_newPMOP
-#define newPVOP Perl_newPVOP
-#define newRV Perl_newRV
-#define newRV_noinc Perl_newRV_noinc
-#define newSV Perl_newSV
-#define newSVREF Perl_newSVREF
-#define newSVOP Perl_newSVOP
-#define newSViv Perl_newSViv
-#define newSVuv Perl_newSVuv
-#define newSVnv Perl_newSVnv
-#define newSVpv Perl_newSVpv
-#define newSVpvn Perl_newSVpvn
-#define newSVpvn_flags Perl_newSVpvn_flags
-#define newSVhek Perl_newSVhek
-#define newSVpvn_share Perl_newSVpvn_share
-#define newSVpvf Perl_newSVpvf
-#define vnewSVpvf Perl_vnewSVpvf
-#define newSVrv Perl_newSVrv
-#define newSVsv Perl_newSVsv
-#define newSV_type Perl_newSV_type
-#define newUNOP Perl_newUNOP
-#define newWHENOP Perl_newWHENOP
-#define newWHILEOP Perl_newWHILEOP
-#define new_stackinfo Perl_new_stackinfo
-#define scan_vstring Perl_scan_vstring
-#define scan_version Perl_scan_version
-#define prescan_version Perl_prescan_version
-#define new_version Perl_new_version
-#define upg_version Perl_upg_version
-#define vverify Perl_vverify
-#define vnumify Perl_vnumify
-#define vnormal Perl_vnormal
-#define vstringify Perl_vstringify
-#define vcmp Perl_vcmp
-#ifdef PERL_CORE
-#define nextargv Perl_nextargv
-#endif
-#define ninstr Perl_ninstr
-#define op_free Perl_op_free
-#ifdef PERL_MAD
-#ifdef PERL_CORE
-#define package Perl_package
-#endif
-#else
-#ifdef PERL_CORE
-#define package Perl_package
-#endif
-#endif
-#ifdef PERL_CORE
-#define package_version Perl_package_version
-#define pad_alloc Perl_pad_alloc
-#define allocmy Perl_allocmy
-#endif
-#define pad_findmy Perl_pad_findmy
-#define find_rundefsvoffset Perl_find_rundefsvoffset
-#ifdef PERL_CORE
-#define oopsAV Perl_oopsAV
-#define oopsHV Perl_oopsHV
-#define pad_leavemy Perl_pad_leavemy
-#endif
-#ifdef DEBUGGING
-#define pad_sv Perl_pad_sv
-#endif
-#ifdef PERL_CORE
-#define pad_free Perl_pad_free
-#endif
-#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define pad_reset S_pad_reset
-#endif
-#endif
-#ifdef PERL_CORE
-#define pad_swipe Perl_pad_swipe
-#define peep Perl_peep
-#endif
-#if defined(USE_REENTRANT_API)
-#define reentrant_size Perl_reentrant_size
-#define reentrant_init Perl_reentrant_init
-#define reentrant_free Perl_reentrant_free
-#define reentrant_retry Perl_reentrant_retry
-#endif
-#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 despatch_signals Perl_despatch_signals
-#define doref Perl_doref
-#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 get_cvn_flags Perl_get_cvn_flags
-#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_radix Perl_set_numeric_radix
-#define set_numeric_standard Perl_set_numeric_standard
-#define require_pv Perl_require_pv
-#define pack_cat Perl_pack_cat
-#define packlist Perl_packlist
-#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
-#ifdef PERL_CORE
-#define pidgone S_pidgone
-#endif
-#endif
-#ifdef PERL_CORE
-#define pmruntime Perl_pmruntime
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define pmtrans S_pmtrans
-#endif
-#endif
-#define pop_scope Perl_pop_scope
-#ifdef PERL_CORE
-#define prepend_elem Perl_prepend_elem
-#endif
-#define push_scope Perl_push_scope
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define refkids S_refkids
-#endif
-#endif
-#define regdump Perl_regdump
-#define regdump Perl_regdump
-#define regclass_swash Perl_regclass_swash
-#define pregexec Perl_pregexec
-#define pregfree Perl_pregfree
-#define pregfree2 Perl_pregfree2
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg_temp_copy Perl_reg_temp_copy
-#endif
-#define regfree_internal Perl_regfree_internal
-#if defined(USE_ITHREADS)
-#define regdupe_internal Perl_regdupe_internal
-#endif
-#define pregcomp Perl_pregcomp
-#define re_compile Perl_re_compile
-#define re_intuit_start Perl_re_intuit_start
-#define re_intuit_string Perl_re_intuit_string
-#define regexec_flags Perl_regexec_flags
-#define regnext Perl_regnext
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg_named_buff Perl_reg_named_buff
-#define reg_named_buff_iter Perl_reg_named_buff_iter
-#endif
-#define reg_named_buff_fetch Perl_reg_named_buff_fetch
-#define reg_named_buff_exists Perl_reg_named_buff_exists
-#define reg_named_buff_firstkey Perl_reg_named_buff_firstkey
-#define reg_named_buff_nextkey Perl_reg_named_buff_nextkey
-#define reg_named_buff_scalar Perl_reg_named_buff_scalar
-#define reg_named_buff_all Perl_reg_named_buff_all
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg_numbered_buff_fetch Perl_reg_numbered_buff_fetch
-#define reg_numbered_buff_store Perl_reg_numbered_buff_store
-#define reg_numbered_buff_length Perl_reg_numbered_buff_length
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg_qr_package Perl_reg_qr_package
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regprop Perl_regprop
-#endif
-#define repeatcpy Perl_repeatcpy
-#define rninstr Perl_rninstr
-#define rsignal Perl_rsignal
-#ifdef PERL_CORE
-#define rsignal_restore Perl_rsignal_restore
-#define rsignal_save Perl_rsignal_save
-#endif
-#define rsignal_state Perl_rsignal_state
-#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define rxres_free S_rxres_free
-#define rxres_restore S_rxres_restore
-#endif
-#endif
-#ifdef PERL_CORE
-#define rxres_save Perl_rxres_save
-#endif
-#if !defined(HAS_RENAME)
-#ifdef PERL_CORE
-#define same_dirent Perl_same_dirent
-#endif
-#endif
-#define savepv Perl_savepv
-#define savepvn Perl_savepvn
-#define savesharedpv Perl_savesharedpv
-#define savesharedpvn Perl_savesharedpvn
-#define savesvpv Perl_savesvpv
-#define savestack_grow Perl_savestack_grow
-#define savestack_grow_cnt Perl_savestack_grow_cnt
-#define save_aelem_flags Perl_save_aelem_flags
-#define save_alloc Perl_save_alloc
-#define save_aptr Perl_save_aptr
-#define save_ary Perl_save_ary
-#define save_bool Perl_save_bool
-#define save_clearsv Perl_save_clearsv
-#define save_delete Perl_save_delete
-#define save_hdelete Perl_save_hdelete
-#define save_adelete Perl_save_adelete
-#define save_destructor Perl_save_destructor
-#define save_destructor_x Perl_save_destructor_x
-#define save_generic_svref Perl_save_generic_svref
-#define save_generic_pvref Perl_save_generic_pvref
-#define save_shared_pvref Perl_save_shared_pvref
-#define save_gp Perl_save_gp
-#define save_hash Perl_save_hash
-#ifdef PERL_CORE
-#define save_hints Perl_save_hints
-#endif
-#define save_helem_flags Perl_save_helem_flags
-#define save_hptr Perl_save_hptr
-#define save_I16 Perl_save_I16
-#define save_I32 Perl_save_I32
-#define save_I8 Perl_save_I8
-#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_scalar Perl_save_scalar
-#define save_pptr Perl_save_pptr
-#define save_vptr Perl_save_vptr
-#define save_re_context Perl_save_re_context
-#define save_padsv_and_mortalize Perl_save_padsv_and_mortalize
-#define save_sptr Perl_save_sptr
-#define save_svref Perl_save_svref
-#define save_pushptr Perl_save_pushptr
-#ifdef PERL_CORE
-#define save_pushi32ptr Perl_save_pushi32ptr
-#define save_pushptrptr Perl_save_pushptrptr
-#endif
-#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define save_pushptri32ptr S_save_pushptri32ptr
-#endif
-#endif
-#ifdef PERL_CORE
-#define sawparens Perl_sawparens
-#define scalar Perl_scalar
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define scalarkids S_scalarkids
-#define scalarseq S_scalarseq
-#endif
-#endif
-#ifdef PERL_CORE
-#define scalarvoid Perl_scalarvoid
-#endif
-#define scan_bin Perl_scan_bin
-#define scan_hex Perl_scan_hex
-#define scan_num Perl_scan_num
-#define scan_oct Perl_scan_oct
-#ifdef PERL_CORE
-#define scope Perl_scope
-#endif
-#define screaminstr Perl_screaminstr
-#define setdefout Perl_setdefout
-#define share_hek Perl_share_hek
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-#ifdef PERL_CORE
-#define sighandler Perl_sighandler
-#endif
-#define csighandler Perl_csighandler
-#else
-#ifdef PERL_CORE
-#define sighandler Perl_sighandler
-#endif
-#define csighandler Perl_csighandler
-#endif
-#define stack_grow Perl_stack_grow
-#define start_subparse Perl_start_subparse
-#ifdef PERL_CORE
-#define sub_crush_depth Perl_sub_crush_depth
-#endif
-#define sv_2bool Perl_sv_2bool
-#define sv_2cv Perl_sv_2cv
-#define sv_2io Perl_sv_2io
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define glob_2number S_glob_2number
-#endif
-#endif
-#define sv_2iv_flags Perl_sv_2iv_flags
-#define sv_2mortal Perl_sv_2mortal
-#define sv_2nv Perl_sv_2nv
-#ifdef PERL_CORE
-#define sv_2num Perl_sv_2num
-#endif
-#define sv_2pv_flags Perl_sv_2pv_flags
-#define sv_2pvutf8 Perl_sv_2pvutf8
-#define sv_2pvbyte Perl_sv_2pvbyte
-#define sv_pvn_nomg Perl_sv_pvn_nomg
-#define sv_2uv_flags Perl_sv_2uv_flags
-#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_pvutf8n Perl_sv_pvutf8n
-#define sv_pvbyten Perl_sv_pvbyten
-#define sv_true Perl_sv_true
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define sv_add_arena S_sv_add_arena
-#endif
-#endif
-#define sv_backoff Perl_sv_backoff
-#define sv_bless Perl_sv_bless
-#define sv_catpvf Perl_sv_catpvf
-#define sv_vcatpvf Perl_sv_vcatpvf
-#define sv_catpv Perl_sv_catpv
-#define sv_chop Perl_sv_chop
-#ifdef PERL_CORE
-#define sv_clean_all Perl_sv_clean_all
-#define sv_clean_objs Perl_sv_clean_objs
-#endif
-#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 getcwd_sv Perl_getcwd_sv
-#define sv_dec Perl_sv_dec
-#define sv_dump Perl_sv_dump
-#define sv_derived_from Perl_sv_derived_from
-#define sv_does Perl_sv_does
-#define sv_eq Perl_sv_eq
-#define sv_free Perl_sv_free
-#ifdef PERL_CORE
-#define sv_free_arenas Perl_sv_free_arenas
-#endif
-#define sv_gets Perl_sv_gets
-#define sv_grow Perl_sv_grow
-#define sv_inc Perl_sv_inc
-#define sv_insert_flags Perl_sv_insert_flags
-#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_magicext Perl_sv_magicext
-#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_u2b_flags Perl_sv_pos_u2b_flags
-#define sv_pos_b2u Perl_sv_pos_b2u
-#define sv_pvutf8n_force Perl_sv_pvutf8n_force
-#define sv_pvbyten_force Perl_sv_pvbyten_force
-#define sv_recode_to_utf8 Perl_sv_recode_to_utf8
-#define sv_cat_decode Perl_sv_cat_decode
-#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_vsetpvf Perl_sv_vsetpvf
-#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_uv Perl_sv_setref_uv
-#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_tainted Perl_sv_tainted
-#define sv_unmagic Perl_sv_unmagic
-#define sv_unref_flags Perl_sv_unref_flags
-#define sv_untaint Perl_sv_untaint
-#define sv_upgrade Perl_sv_upgrade
-#define sv_usepvn_flags Perl_sv_usepvn_flags
-#define sv_vcatpvfn Perl_sv_vcatpvfn
-#define sv_vsetpvfn Perl_sv_vsetpvfn
-#define str_to_version Perl_str_to_version
-#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_case Perl_to_utf8_case
-#define to_utf8_lower Perl_to_utf8_lower
-#define to_utf8_upper Perl_to_utf8_upper
-#define to_utf8_title Perl_to_utf8_title
-#define to_utf8_fold Perl_to_utf8_fold
-#if defined(UNLINK_ALL_VERSIONS)
-#define unlnk Perl_unlnk
-#endif
-#define unpack_str Perl_unpack_str
-#define unpackstring Perl_unpackstring
-#define unsharepvn Perl_unsharepvn
-#ifdef PERL_CORE
-#define unshare_hek Perl_unshare_hek
-#endif
-#ifdef PERL_MAD
-#ifdef PERL_CORE
-#define utilize Perl_utilize
-#endif
-#else
-#ifdef PERL_CORE
-#define utilize Perl_utilize
-#endif
-#endif
-#define utf16_to_utf8 Perl_utf16_to_utf8
-#define utf16_to_utf8_reversed Perl_utf16_to_utf8_reversed
-#define utf8_length Perl_utf8_length
-#define utf8_distance Perl_utf8_distance
-#define utf8_hop Perl_utf8_hop
-#define utf8_to_bytes Perl_utf8_to_bytes
-#define bytes_from_utf8 Perl_bytes_from_utf8
-#define bytes_to_utf8 Perl_bytes_to_utf8
-#define utf8_to_uvchr Perl_utf8_to_uvchr
-#define utf8_to_uvuni Perl_utf8_to_uvuni
-#ifdef EBCDIC
-#define utf8n_to_uvchr Perl_utf8n_to_uvchr
-#else
-#endif
-#define utf8n_to_uvuni Perl_utf8n_to_uvuni
-#ifdef EBCDIC
-#define uvchr_to_utf8 Perl_uvchr_to_utf8
-#else
-#endif
-#define uvchr_to_utf8_flags Perl_uvchr_to_utf8_flags
-#define uvuni_to_utf8_flags Perl_uvuni_to_utf8_flags
-#define pv_uni_display Perl_pv_uni_display
-#define sv_uni_display Perl_sv_uni_display
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define vivify_defelem Perl_vivify_defelem
-#endif
-#ifdef PERL_CORE
-#define vivify_ref Perl_vivify_ref
-#define wait4pid Perl_wait4pid
-#define parse_unicode_opts Perl_parse_unicode_opts
-#endif
-#define seed Perl_seed
-#ifdef PERL_CORE
-#define get_hash_seed Perl_get_hash_seed
-#define report_evil_fh Perl_report_evil_fh
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define report_uninit Perl_report_uninit
-#endif
-#define warn Perl_warn
-#define vwarn Perl_vwarn
-#define warner Perl_warner
-#define ck_warner Perl_ck_warner
-#define ck_warner_d Perl_ck_warner_d
-#define vwarner Perl_vwarner
-#ifdef PERL_CORE
-#define watch Perl_watch
-#endif
-#define whichsig Perl_whichsig
-#ifdef PERL_CORE
-#define write_to_stderr Perl_write_to_stderr
-#define yyerror Perl_yyerror
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define yylex Perl_yylex
-#endif
-#ifdef PERL_CORE
-#define yyparse Perl_yyparse
-#define parser_free Perl_parser_free
-#endif
-#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define yywarn S_yywarn
-#endif
-#endif
-#if defined(MYMALLOC)
-#define dump_mstats Perl_dump_mstats
-#define get_mstats Perl_get_mstats
-#endif
-#define safesysmalloc Perl_safesysmalloc
-#define safesyscalloc Perl_safesyscalloc
-#define safesysrealloc Perl_safesysrealloc
-#define safesysfree Perl_safesysfree
-#if defined(PERL_GLOBAL_STRUCT)
-#define GetVars Perl_GetVars
-#define init_global_struct Perl_init_global_struct
-#define free_global_struct Perl_free_global_struct
-#endif
-#define runops_standard Perl_runops_standard
-#define runops_debug Perl_runops_debug
-#define sv_catpvf_mg Perl_sv_catpvf_mg
-#define sv_vcatpvf_mg Perl_sv_vcatpvf_mg
-#define sv_catpv_mg Perl_sv_catpv_mg
-#define sv_setpvf_mg Perl_sv_setpvf_mg
-#define sv_vsetpvf_mg Perl_sv_vsetpvf_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 get_vtbl Perl_get_vtbl
-#define pv_display Perl_pv_display
-#define pv_escape Perl_pv_escape
-#define pv_pretty Perl_pv_pretty
-#define dump_indent Perl_dump_indent
-#define dump_vindent Perl_dump_vindent
-#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 reginitcolors Perl_reginitcolors
-#define sv_utf8_downgrade Perl_sv_utf8_downgrade
-#define sv_utf8_encode Perl_sv_utf8_encode
-#define sv_utf8_decode Perl_sv_utf8_decode
-#define sv_force_normal_flags Perl_sv_force_normal_flags
-#define tmps_grow Perl_tmps_grow
-#define sv_rvweaken Perl_sv_rvweaken
-#ifdef PERL_CORE
-#define magic_killbackrefs Perl_magic_killbackrefs
-#endif
-#define newANONATTRSUB Perl_newANONATTRSUB
-#define newATTRSUB Perl_newATTRSUB
-#ifdef PERL_MAD
-#define newMYSUB Perl_newMYSUB
-#else
-#define newMYSUB Perl_newMYSUB
-#endif
-#ifdef PERL_CORE
-#define my_attrs Perl_my_attrs
-#endif
-#if defined(USE_ITHREADS)
-#define cx_dup Perl_cx_dup
-#define si_dup Perl_si_dup
-#define ss_dup Perl_ss_dup
-#define any_dup Perl_any_dup
-#define he_dup Perl_he_dup
-#define hek_dup Perl_hek_dup
-#define re_dup_guts Perl_re_dup_guts
-#define fp_dup Perl_fp_dup
-#define dirp_dup Perl_dirp_dup
-#define gp_dup Perl_gp_dup
-#define mg_dup Perl_mg_dup
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define sv_dup_inc_multiple S_sv_dup_inc_multiple
-#endif
-#endif
-#define sv_dup Perl_sv_dup
-#define rvpv_dup Perl_rvpv_dup
-#define parser_dup Perl_parser_dup
-#endif
-#define ptr_table_new Perl_ptr_table_new
-#define ptr_table_fetch Perl_ptr_table_fetch
-#define ptr_table_store Perl_ptr_table_store
-#define ptr_table_split Perl_ptr_table_split
-#define ptr_table_clear Perl_ptr_table_clear
-#define ptr_table_free Perl_ptr_table_free
-#if defined(USE_ITHREADS)
-# if defined(HAVE_INTERP_INTERN)
-#define sys_intern_dup Perl_sys_intern_dup
-# endif
-#endif
-#if defined(HAVE_INTERP_INTERN)
-#define sys_intern_clear Perl_sys_intern_clear
-#define sys_intern_init Perl_sys_intern_init
-#endif
-#define custom_op_name Perl_custom_op_name
-#define custom_op_desc Perl_custom_op_desc
-#define sv_nosharing Perl_sv_nosharing
-#define sv_destroyable Perl_sv_destroyable
-#ifdef NO_MATHOMS
-#else
-#define sv_nounlocking Perl_sv_nounlocking
-#endif
-#define nothreadhook Perl_nothreadhook
-#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define do_trans_simple S_do_trans_simple
-#define do_trans_count S_do_trans_count
-#define do_trans_complex S_do_trans_complex
-#define do_trans_simple_utf8 S_do_trans_simple_utf8
-#define do_trans_count_utf8 S_do_trans_count_utf8
-#define do_trans_complex_utf8 S_do_trans_complex_utf8
-#endif
-#endif
-#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define gv_init_sv S_gv_init_sv
-#define gv_get_super_pkg S_gv_get_super_pkg
-#define require_tie_mod S_require_tie_mod
-#endif
-#endif
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define hsplit S_hsplit
-#define hfreeentries S_hfreeentries
-#define anonymise_cv S_anonymise_cv
-#define new_he S_new_he
-#define save_hek_flags S_save_hek_flags
-#define hv_magic_check S_hv_magic_check
-#define unshare_hek_or_pvn S_unshare_hek_or_pvn
-#define share_hek_flags S_share_hek_flags
-#define hv_notallowed S_hv_notallowed
-#define hv_auxinit S_hv_auxinit
-#define hv_delete_common S_hv_delete_common
-#define clear_placeholders S_clear_placeholders
-#define refcounted_he_value S_refcounted_he_value
-#endif
-#endif
-#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define save_magic S_save_magic
-#define magic_methpack S_magic_methpack
-#define magic_methcall S_magic_methcall
-#define restore_magic S_restore_magic
-#define unwind_handler_stack S_unwind_handler_stack
-#endif
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#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_die Perl_ck_die
-#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_exit Perl_ck_exit
-#define ck_ftst Perl_ck_ftst
-#define ck_fun Perl_ck_fun
-#define ck_glob Perl_ck_glob
-#define ck_grep Perl_ck_grep
-#define ck_index Perl_ck_index
-#define ck_join Perl_ck_join
-#define ck_lfun Perl_ck_lfun
-#define ck_listiob Perl_ck_listiob
-#define ck_match Perl_ck_match
-#define ck_method Perl_ck_method
-#define ck_null Perl_ck_null
-#define ck_open Perl_ck_open
-#define ck_readline Perl_ck_readline
-#define ck_repeat Perl_ck_repeat
-#define ck_require Perl_ck_require
-#define ck_return Perl_ck_return
-#define ck_rfun Perl_ck_rfun
-#define ck_rvconst Perl_ck_rvconst
-#define ck_sassign Perl_ck_sassign
-#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_substr Perl_ck_substr
-#define ck_svconst Perl_ck_svconst
-#define ck_trunc Perl_ck_trunc
-#define ck_unpack Perl_ck_unpack
-#define ck_each Perl_ck_each
-#define is_handle_constructor S_is_handle_constructor
-#define is_list_assignment S_is_list_assignment
-#endif
-# ifdef USE_ITHREADS
-# else
-# endif
-#ifdef PERL_CORE
-#define find_and_forget_pmops S_find_and_forget_pmops
-#define cop_free S_cop_free
-#define modkids S_modkids
-#define scalarboolean S_scalarboolean
-#define newDEFSVOP S_newDEFSVOP
-#define search_const S_search_const
-#define new_logop S_new_logop
-#define simplify_sort S_simplify_sort
-#define gv_ename S_gv_ename
-#define scalar_mod_type S_scalar_mod_type
-#define my_kid S_my_kid
-#define dup_attrlist S_dup_attrlist
-#define apply_attrs S_apply_attrs
-#define apply_attrs_my S_apply_attrs_my
-#define bad_type S_bad_type
-#define no_bareword_allowed S_no_bareword_allowed
-#define no_fh_allowed S_no_fh_allowed
-#define too_few_arguments S_too_few_arguments
-#define too_many_arguments S_too_many_arguments
-#define looks_like_bool S_looks_like_bool
-#define newGIVWHENOP S_newGIVWHENOP
-#define ref_array_or_hash S_ref_array_or_hash
-#define process_special_blocks S_process_special_blocks
-#endif
-#endif
-#if defined(PL_OP_SLAB_ALLOC)
-#define Slab_Alloc Perl_Slab_Alloc
-#define Slab_Free Perl_Slab_Free
-# if defined(PERL_DEBUG_READONLY_OPS)
-# if defined(PERL_IN_OP_C)
-#ifdef PERL_CORE
-#define Slab_to_rw S_Slab_to_rw
-#endif
-# endif
-# endif
-#endif
-#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define find_beginning S_find_beginning
-#define forbid_setid S_forbid_setid
-#define incpush S_incpush
-#define incpush_use_sep S_incpush_use_sep
-#define init_interp S_init_interp
-#define init_ids S_init_ids
-#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
-#endif
-#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
-#endif
-#ifdef PERL_CORE
-#define parse_body S_parse_body
-#define run_body S_run_body
-#define incpush_if_exists S_incpush_if_exists
-#endif
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define do_delete_local S_do_delete_local
-#define refto S_refto
-#endif
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define unpack_rec S_unpack_rec
-#define pack_rec S_pack_rec
-#define mul128 S_mul128
-#define measure_struct S_measure_struct
-#define next_symbol S_next_symbol
-#define is_an_int S_is_an_int
-#define div128 S_div128
-#define group_end S_group_end
-#define get_num S_get_num
-#define need_utf8 S_need_utf8
-#define first_symbol S_first_symbol
-#define sv_exp_grow S_sv_exp_grow
-#define bytes_to_uni S_bytes_to_uni
-#endif
-#endif
-#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define docatch S_docatch
-#define dofindlabel S_dofindlabel
-#define doparseform S_doparseform
-#define num_overflow S_num_overflow
-#define dopoptoeval S_dopoptoeval
-#define dopoptogiven S_dopoptogiven
-#define dopoptolabel S_dopoptolabel
-#define dopoptoloop S_dopoptoloop
-#define dopoptosub_at S_dopoptosub_at
-#define dopoptowhen S_dopoptowhen
-#define save_lines S_save_lines
-#define doeval S_doeval
-#define check_type_and_open S_check_type_and_open
-#endif
-#ifndef PERL_DISABLE_PMC
-#ifdef PERL_CORE
-#define doopen_pm S_doopen_pm
-#endif
-#endif
-#ifdef PERL_CORE
-#define path_is_absolute S_path_is_absolute
-#define run_user_filter S_run_user_filter
-#define make_matcher S_make_matcher
-#define matcher_matches_sv S_matcher_matches_sv
-#define destroy_matcher S_destroy_matcher
-#define do_smartmatch S_do_smartmatch
-#endif
-#endif
-#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define do_oddball S_do_oddball
-#define method_common S_method_common
-#endif
-#endif
-#if defined(PERL_IN_PP_SORT_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#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
-#define sortcv S_sortcv
-#define sortcv_xsub S_sortcv_xsub
-#define sortcv_stacked S_sortcv_stacked
-#define qsortsvu S_qsortsvu
-#endif
-#endif
-#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define doform S_doform
-#endif
-# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-#ifdef PERL_CORE
-#define dooneliner S_dooneliner
-#endif
-# endif
-#ifdef PERL_CORE
-#define space_join_names_mortal S_space_join_names_mortal
-#endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg S_reg
-#define reganode S_reganode
-#define regatom S_regatom
-#define regbranch S_regbranch
-#define reguni S_reguni
-#define regclass S_regclass
-#define reg_node S_reg_node
-#define reg_recode S_reg_recode
-#define regpiece S_regpiece
-#define reg_namedseq S_reg_namedseq
-#define reginsert S_reginsert
-#define regtail S_regtail
-#define reg_scan_name S_reg_scan_name
-#define join_exact S_join_exact
-#define regwhite S_regwhite
-#define nextchar S_nextchar
-#define reg_skipcomment S_reg_skipcomment
-#define scan_commit S_scan_commit
-#define cl_anything S_cl_anything
-#define cl_is_anything S_cl_is_anything
-#define cl_init S_cl_init
-#define cl_init_zero S_cl_init_zero
-#define cl_and S_cl_and
-#define cl_or S_cl_or
-#define study_chunk S_study_chunk
-#define add_data S_add_data
-#endif
-#ifdef PERL_CORE
-#define re_croak2 S_re_croak2
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regpposixcc S_regpposixcc
-#define checkposixcc S_checkposixcc
-#define make_trie S_make_trie
-#define make_trie_failtable S_make_trie_failtable
-#endif
-# ifdef DEBUGGING
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regdump_extflags S_regdump_extflags
-#define dumpuntil S_dumpuntil
-#define put_byte S_put_byte
-#define dump_trie S_dump_trie
-#define dump_trie_interim_list S_dump_trie_interim_list
-#define dump_trie_interim_table S_dump_trie_interim_table
-#define regtail_study S_regtail_study
-#endif
-# endif
-#endif
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regmatch S_regmatch
-#define regrepeat S_regrepeat
-#define regtry S_regtry
-#define reginclass S_reginclass
-#define regcppush S_regcppush
-#define regcppop S_regcppop
-#define reghop3 S_reghop3
-#endif
-#ifdef XXX_dmq
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reghop4 S_reghop4
-#endif
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reghopmaybe3 S_reghopmaybe3
-#define find_byclass S_find_byclass
-#define to_utf8_substr S_to_utf8_substr
-#define to_byte_substr S_to_byte_substr
-#define reg_check_named_buff_matched S_reg_check_named_buff_matched
-#endif
-# ifdef DEBUGGING
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define dump_exec_pos S_dump_exec_pos
-#define debug_start_match S_debug_start_match
-#endif
-# endif
-#endif
-#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define deb_curcv S_deb_curcv
-#define debprof S_debprof
-#define sequence S_sequence
-#define sequence_tail S_sequence_tail
-#define sequence_num S_sequence_num
-#define pm_description S_pm_description
-#endif
-#endif
-#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define save_scalar_at S_save_scalar_at
-#endif
-#endif
-#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#endif
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define uiv_2buf S_uiv_2buf
-#define sv_unglob S_sv_unglob
-#define not_a_number S_not_a_number
-#define visit S_visit
-#define sv_del_backref S_sv_del_backref
-#define varname S_varname
-#endif
-# ifdef DEBUGGING
-#ifdef PERL_CORE
-#define del_sv S_del_sv
-#endif
-# endif
-# if !defined(NV_PRESERVES_UV)
-# ifdef DEBUGGING
-#ifdef PERL_CORE
-#define sv_2iuv_non_preserve S_sv_2iuv_non_preserve
-#endif
-# else
-#ifdef PERL_CORE
-#define sv_2iuv_non_preserve S_sv_2iuv_non_preserve
-#endif
-# endif
-# endif
-#ifdef PERL_CORE
-#define expect_number S_expect_number
-#endif
-#ifdef PERL_CORE
-#define sv_pos_u2b_forwards S_sv_pos_u2b_forwards
-#define sv_pos_u2b_midway S_sv_pos_u2b_midway
-#define sv_pos_u2b_cached S_sv_pos_u2b_cached
-#define utf8_mg_pos_cache_update S_utf8_mg_pos_cache_update
-#define sv_pos_b2u_midway S_sv_pos_b2u_midway
-#define F0convert S_F0convert
-#endif
-# if defined(PERL_OLD_COPY_ON_WRITE)
-#ifdef PERL_CORE
-#define sv_release_COW S_sv_release_COW
-#endif
-# endif
-#ifdef PERL_CORE
-#define more_sv S_more_sv
-#define more_bodies S_more_bodies
-#define sv_2iuv_common S_sv_2iuv_common
-#define glob_assign_glob S_glob_assign_glob
-#define glob_assign_ref S_glob_assign_ref
-#define ptr_table_find S_ptr_table_find
-#endif
-#endif
-#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define check_uni S_check_uni
-#define force_next S_force_next
-#define force_version S_force_version
-#define force_strict_version S_force_strict_version
-#define force_word S_force_word
-#define tokeq S_tokeq
-#define readpipe_override S_readpipe_override
-#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 update_debugger_info S_update_debugger_info
-#define skipspace S_skipspace
-#define swallow_bom S_swallow_bom
-#endif
-#ifndef PERL_NO_UTF16_FILTER
-#ifdef PERL_CORE
-#define utf16_textfilter S_utf16_textfilter
-#define add_utf16_textfilter S_add_utf16_textfilter
-#endif
-#endif
-#ifdef PERL_CORE
-#define checkcomma S_checkcomma
-#define feature_is_enabled S_feature_is_enabled
-#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 sublex_done S_sublex_done
-#define sublex_push S_sublex_push
-#define sublex_start S_sublex_start
-#define filter_gets S_filter_gets
-#define find_in_my_stash S_find_in_my_stash
-#define tokenize_use S_tokenize_use
-#endif
-#ifdef PERL_CORE
-#define deprecate_commaless_var_list S_deprecate_commaless_var_list
-#define ao S_ao
-#endif
-# if defined(PERL_CR_FILTER)
-#ifdef PERL_CORE
-#define cr_textfilter S_cr_textfilter
-#define strip_return S_strip_return
-#endif
-# endif
-# if defined(DEBUGGING)
-#ifdef PERL_CORE
-#define tokereport S_tokereport
-#define printbuf S_printbuf
-#endif
-# endif
-#endif
-#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define isa_lookup S_isa_lookup
-#endif
-#endif
-#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
-#if defined(USE_LOCALE_NUMERIC) || defined(USE_LOCALE_COLLATE)
-#ifdef PERL_CORE
-#define stdize_locale S_stdize_locale
-#endif
-#endif
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define closest_cop S_closest_cop
-#define mess_alloc S_mess_alloc
-#define vdie_croak_common S_vdie_croak_common
-#define vdie_common S_vdie_common
-#define write_no_mem S_write_no_mem
-#endif
-#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
-#ifdef PERL_CORE
-#define mem_log_common S_mem_log_common
-#endif
-#endif
-#endif
-#if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define mulexp10 S_mulexp10
-#endif
-#endif
-#if defined(PERL_IN_UTF8_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define is_utf8_char_slow S_is_utf8_char_slow
-#define is_utf8_common S_is_utf8_common
-#define swash_get S_swash_get
-#endif
-#endif
-#define sv_setsv_flags Perl_sv_setsv_flags
-#define sv_catpvn_flags Perl_sv_catpvn_flags
-#define sv_catsv_flags Perl_sv_catsv_flags
-#define sv_utf8_upgrade_flags_grow Perl_sv_utf8_upgrade_flags_grow
-#define sv_pvn_force_flags Perl_sv_pvn_force_flags
-#define sv_copypv Perl_sv_copypv
-#define my_atof2 Perl_my_atof2
-#define my_socketpair Perl_my_socketpair
-#define my_dirfd Perl_my_dirfd
-#ifdef PERL_OLD_COPY_ON_WRITE
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define sv_setsv_cow Perl_sv_setsv_cow
-#endif
-#endif
-#if defined(USE_PERLIO) && !defined(USE_SFIO)
-#define PerlIO_close Perl_PerlIO_close
-#define PerlIO_fill Perl_PerlIO_fill
-#define PerlIO_fileno Perl_PerlIO_fileno
-#define PerlIO_eof Perl_PerlIO_eof
-#define PerlIO_error Perl_PerlIO_error
-#define PerlIO_flush Perl_PerlIO_flush
-#define PerlIO_clearerr Perl_PerlIO_clearerr
-#define PerlIO_set_cnt Perl_PerlIO_set_cnt
-#define PerlIO_set_ptrcnt Perl_PerlIO_set_ptrcnt
-#define PerlIO_setlinebuf Perl_PerlIO_setlinebuf
-#define PerlIO_read Perl_PerlIO_read
-#define PerlIO_write Perl_PerlIO_write
-#define PerlIO_unread Perl_PerlIO_unread
-#define PerlIO_tell Perl_PerlIO_tell
-#define PerlIO_seek Perl_PerlIO_seek
-#define PerlIO_get_base Perl_PerlIO_get_base
-#define PerlIO_get_ptr Perl_PerlIO_get_ptr
-#define PerlIO_get_bufsiz Perl_PerlIO_get_bufsiz
-#define PerlIO_get_cnt Perl_PerlIO_get_cnt
-#define PerlIO_stdin Perl_PerlIO_stdin
-#define PerlIO_stdout Perl_PerlIO_stdout
-#define PerlIO_stderr Perl_PerlIO_stderr
-#endif /* PERLIO_LAYERS */
-#ifdef PERL_CORE
-#define deb_stack_all Perl_deb_stack_all
-#endif
-#if defined(PERL_IN_DEB_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define deb_stack_n S_deb_stack_n
-#endif
-#endif
-#ifdef PERL_CORE
-#define pad_new Perl_pad_new
-#define pad_undef Perl_pad_undef
-#define pad_add_name Perl_pad_add_name
-#define pad_add_anon Perl_pad_add_anon
-#endif
-#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define pad_check_dup S_pad_check_dup
-#endif
-#endif
-#ifdef DEBUGGING
-#ifdef PERL_CORE
-#define pad_setsv Perl_pad_setsv
-#endif
-#endif
-#ifdef PERL_CORE
-#define pad_block_start Perl_pad_block_start
-#define pad_tidy Perl_pad_tidy
-#define do_dump_pad Perl_do_dump_pad
-#define pad_fixup_inner_anons Perl_pad_fixup_inner_anons
-#endif
-#ifdef PERL_CORE
-#define pad_push Perl_pad_push
-#define pad_compname_type Perl_pad_compname_type
-#endif
-#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define pad_findlex S_pad_findlex
-#define pad_add_name_sv S_pad_add_name_sv
-#endif
-# if defined(DEBUGGING)
-#ifdef PERL_CORE
-#define cv_dump S_cv_dump
-#endif
-# endif
-#endif
-#define find_runcv Perl_find_runcv
-#ifdef PERL_CORE
-#define free_tied_hv_pool Perl_free_tied_hv_pool
-#endif
-#if defined(DEBUGGING)
-#ifdef PERL_CORE
-#define get_debug_opts Perl_get_debug_opts
-#endif
-#endif
-#define save_set_svflags Perl_save_set_svflags
-#ifdef DEBUGGING
-#endif
-#define hv_scalar Perl_hv_scalar
-#define hv_name_set Perl_hv_name_set
-#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#endif
-#define hv_clear_placeholders Perl_hv_clear_placeholders
-#ifdef PERL_CORE
-#define magic_scalarpack Perl_magic_scalarpack
-#endif
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define find_hash_subscript S_find_hash_subscript
-#define find_array_subscript S_find_array_subscript
-#define find_uninit_var S_find_uninit_var
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLE16
-#ifdef PERL_CORE
-#define my_htole16 Perl_my_htole16
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOH16
-#ifdef PERL_CORE
-#define my_letoh16 Perl_my_letoh16
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBE16
-#ifdef PERL_CORE
-#define my_htobe16 Perl_my_htobe16
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOH16
-#ifdef PERL_CORE
-#define my_betoh16 Perl_my_betoh16
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLE32
-#ifdef PERL_CORE
-#define my_htole32 Perl_my_htole32
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOH32
-#ifdef PERL_CORE
-#define my_letoh32 Perl_my_letoh32
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBE32
-#ifdef PERL_CORE
-#define my_htobe32 Perl_my_htobe32
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOH32
-#ifdef PERL_CORE
-#define my_betoh32 Perl_my_betoh32
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLE64
-#ifdef PERL_CORE
-#define my_htole64 Perl_my_htole64
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOH64
-#ifdef PERL_CORE
-#define my_letoh64 Perl_my_letoh64
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBE64
-#ifdef PERL_CORE
-#define my_htobe64 Perl_my_htobe64
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOH64
-#ifdef PERL_CORE
-#define my_betoh64 Perl_my_betoh64
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLES
-#ifdef PERL_CORE
-#define my_htoles Perl_my_htoles
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOHS
-#ifdef PERL_CORE
-#define my_letohs Perl_my_letohs
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBES
-#ifdef PERL_CORE
-#define my_htobes Perl_my_htobes
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOHS
-#ifdef PERL_CORE
-#define my_betohs Perl_my_betohs
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLEI
-#ifdef PERL_CORE
-#define my_htolei Perl_my_htolei
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOHI
-#ifdef PERL_CORE
-#define my_letohi Perl_my_letohi
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBEI
-#ifdef PERL_CORE
-#define my_htobei Perl_my_htobei
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOHI
-#ifdef PERL_CORE
-#define my_betohi Perl_my_betohi
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLEL
-#ifdef PERL_CORE
-#define my_htolel Perl_my_htolel
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOHL
-#ifdef PERL_CORE
-#define my_letohl Perl_my_letohl
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBEL
-#ifdef PERL_CORE
-#define my_htobel Perl_my_htobel
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOHL
-#ifdef PERL_CORE
-#define my_betohl Perl_my_betohl
-#endif
-#endif
-#ifdef PERL_CORE
-#define my_swabn Perl_my_swabn
-#endif
-#define gv_fetchpvn_flags Perl_gv_fetchpvn_flags
-#define gv_fetchsv Perl_gv_fetchsv
-#ifdef PERL_CORE
-#define is_gv_magical_sv Perl_is_gv_magical_sv
-#endif
-#define stashpv_hvname_match Perl_stashpv_hvname_match
-#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
-#ifdef PERL_CORE
-#define dump_sv_child Perl_dump_sv_child
-#endif
-#endif
-#ifdef PERL_DONT_CREATE_GVSV
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define ckwarn_common S_ckwarn_common
-#endif
-#endif
-#ifdef PERL_CORE
-#define offer_nice_chunk Perl_offer_nice_chunk
-#endif
-#ifndef SPRINTF_RETURNS_STRLEN
-#endif
-#ifdef PERL_CORE
-#define my_clearenv Perl_my_clearenv
-#endif
-#ifdef PERL_IMPLICIT_CONTEXT
-#ifdef PERL_GLOBAL_STRUCT_PRIVATE
-#else
-#endif
-#endif
-#ifndef HAS_STRLCAT
-#endif
-#ifndef HAS_STRLCPY
-#endif
-#ifdef PERL_MAD
-#ifdef PERL_CORE
-#define pad_peg Perl_pad_peg
-#endif
-#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define xmldump_attr S_xmldump_attr
-#endif
-#endif
-#ifdef PERL_CORE
-#define xmldump_indent Perl_xmldump_indent
-#define xmldump_vindent Perl_xmldump_vindent
-#define xmldump_all Perl_xmldump_all
-#define xmldump_all_perl Perl_xmldump_all_perl
-#define xmldump_packsubs Perl_xmldump_packsubs
-#define xmldump_packsubs_perl Perl_xmldump_packsubs_perl
-#define xmldump_sub Perl_xmldump_sub
-#define xmldump_sub_perl Perl_xmldump_sub_perl
-#define xmldump_form Perl_xmldump_form
-#define xmldump_eval Perl_xmldump_eval
-#define sv_catxmlsv Perl_sv_catxmlsv
-#define sv_catxmlpvn Perl_sv_catxmlpvn
-#define sv_xmlpeek Perl_sv_xmlpeek
-#define do_pmop_xmldump Perl_do_pmop_xmldump
-#define pmop_xmldump Perl_pmop_xmldump
-#define do_op_xmldump Perl_do_op_xmldump
-#define op_xmldump Perl_op_xmldump
-#endif
-#ifdef PERL_CORE
-#define newTOKEN Perl_newTOKEN
-#define token_free Perl_token_free
-#define token_getmad Perl_token_getmad
-#define op_getmad_weak Perl_op_getmad_weak
-#define op_getmad Perl_op_getmad
-#define prepend_madprops Perl_prepend_madprops
-#define append_madprops Perl_append_madprops
-#define addmad Perl_addmad
-#define newMADsv Perl_newMADsv
-#define newMADPROP Perl_newMADPROP
-#define mad_free Perl_mad_free
-#endif
-# if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define skipspace0 S_skipspace0
-#define skipspace1 S_skipspace1
-#define skipspace2 S_skipspace2
-#define start_force S_start_force
-#define curmad S_curmad
-#endif
-# endif
-#ifdef PERL_CORE
-#define madlex Perl_madlex
-#define madparse Perl_madparse
-#endif
-#endif
-#if !defined(HAS_SIGNBIT)
-#endif
-#if defined(USE_ITHREADS)
-#ifdef PERL_CORE
-#define mro_meta_dup Perl_mro_meta_dup
-#endif
-#endif
-#define mro_get_linear_isa Perl_mro_get_linear_isa
-#if defined(PERL_IN_MRO_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define mro_get_linear_isa_dfs S_mro_get_linear_isa_dfs
-#endif
-#endif
-#ifdef PERL_CORE
-#define mro_isa_changed_in Perl_mro_isa_changed_in
-#endif
-#define mro_method_changed_in Perl_mro_method_changed_in
-#ifdef PERL_CORE
-#define boot_core_mro Perl_boot_core_mro
-#endif
-#define ck_anoncode Perl_ck_anoncode
-#define ck_bitop Perl_ck_bitop
-#define ck_chdir Perl_ck_chdir
-#define ck_concat Perl_ck_concat
-#define ck_defined Perl_ck_defined
-#define ck_delete Perl_ck_delete
-#define ck_die Perl_ck_die
-#define ck_each Perl_ck_each
-#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_exit Perl_ck_exit
-#define ck_ftst Perl_ck_ftst
-#define ck_fun Perl_ck_fun
-#define ck_glob Perl_ck_glob
-#define ck_grep Perl_ck_grep
-#define ck_index Perl_ck_index
-#define ck_join Perl_ck_join
-#define ck_lfun Perl_ck_lfun
-#define ck_listiob Perl_ck_listiob
-#define ck_match Perl_ck_match
-#define ck_method Perl_ck_method
-#define ck_null Perl_ck_null
-#define ck_open Perl_ck_open
-#define ck_readline Perl_ck_readline
-#define ck_repeat Perl_ck_repeat
-#define ck_require Perl_ck_require
-#define ck_return Perl_ck_return
-#define ck_rfun Perl_ck_rfun
-#define ck_rvconst Perl_ck_rvconst
-#define ck_sassign Perl_ck_sassign
-#define ck_select Perl_ck_select
-#define ck_shift Perl_ck_shift
-#define ck_smartmatch Perl_ck_smartmatch
-#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_substr Perl_ck_substr
-#define ck_svconst Perl_ck_svconst
-#define ck_trunc Perl_ck_trunc
-#define ck_unpack Perl_ck_unpack
-#define pp_aassign Perl_pp_aassign
-#define pp_abs Perl_pp_abs
-#define pp_accept Perl_pp_accept
-#define pp_add Perl_pp_add
-#define pp_aeach Perl_pp_aeach
-#define pp_aelem Perl_pp_aelem
-#define pp_aelemfast Perl_pp_aelemfast
-#define pp_akeys Perl_pp_akeys
-#define pp_alarm Perl_pp_alarm
-#define pp_and Perl_pp_and
-#define pp_andassign Perl_pp_andassign
-#define pp_anoncode Perl_pp_anoncode
-#define pp_anonhash Perl_pp_anonhash
-#define pp_anonlist Perl_pp_anonlist
-#define pp_aslice Perl_pp_aslice
-#define pp_atan2 Perl_pp_atan2
-#define pp_av2arylen Perl_pp_av2arylen
-#define pp_avalues Perl_pp_avalues
-#define pp_backtick Perl_pp_backtick
-#define pp_bind Perl_pp_bind
-#define pp_binmode Perl_pp_binmode
-#define pp_bit_and Perl_pp_bit_and
-#define pp_bit_or Perl_pp_bit_or
-#define pp_bit_xor Perl_pp_bit_xor
-#define pp_bless Perl_pp_bless
-#define pp_boolkeys Perl_pp_boolkeys
-#define pp_break Perl_pp_break
-#define pp_caller Perl_pp_caller
-#define pp_chdir Perl_pp_chdir
-#define pp_chmod Perl_pp_chmod
-#define pp_chomp Perl_pp_chomp
-#define pp_chop Perl_pp_chop
-#define pp_chown Perl_pp_chown
-#define pp_chr Perl_pp_chr
-#define pp_chroot Perl_pp_chroot
-#define pp_close Perl_pp_close
-#define pp_closedir Perl_pp_closedir
-#define pp_complement Perl_pp_complement
-#define pp_concat Perl_pp_concat
-#define pp_cond_expr Perl_pp_cond_expr
-#define pp_connect Perl_pp_connect
-#define pp_const Perl_pp_const
-#define pp_continue Perl_pp_continue
-#define pp_cos Perl_pp_cos
-#define pp_crypt Perl_pp_crypt
-#define pp_dbmclose Perl_pp_dbmclose
-#define pp_dbmopen Perl_pp_dbmopen
-#define pp_dbstate Perl_pp_dbstate
-#define pp_defined Perl_pp_defined
-#define pp_delete Perl_pp_delete
-#define pp_die Perl_pp_die
-#define pp_divide Perl_pp_divide
-#define pp_dofile Perl_pp_dofile
-#define pp_dor Perl_pp_dor
-#define pp_dorassign Perl_pp_dorassign
-#define pp_dump Perl_pp_dump
-#define pp_each Perl_pp_each
-#define pp_egrent Perl_pp_egrent
-#define pp_ehostent Perl_pp_ehostent
-#define pp_enetent Perl_pp_enetent
-#define pp_enter Perl_pp_enter
-#define pp_entereval Perl_pp_entereval
-#define pp_entergiven Perl_pp_entergiven
-#define pp_enteriter Perl_pp_enteriter
-#define pp_enterloop Perl_pp_enterloop
-#define pp_entersub Perl_pp_entersub
-#define pp_entertry Perl_pp_entertry
-#define pp_enterwhen Perl_pp_enterwhen
-#define pp_enterwrite Perl_pp_enterwrite
-#define pp_eof Perl_pp_eof
-#define pp_eprotoent Perl_pp_eprotoent
-#define pp_epwent Perl_pp_epwent
-#define pp_eq Perl_pp_eq
-#define pp_eservent Perl_pp_eservent
-#define pp_exec Perl_pp_exec
-#define pp_exists Perl_pp_exists
-#define pp_exit Perl_pp_exit
-#define pp_exp Perl_pp_exp
-#define pp_fcntl Perl_pp_fcntl
-#define pp_fileno Perl_pp_fileno
-#define pp_flip Perl_pp_flip
-#define pp_flock Perl_pp_flock
-#define pp_flop Perl_pp_flop
-#define pp_fork Perl_pp_fork
-#define pp_formline Perl_pp_formline
-#define pp_ftatime Perl_pp_ftatime
-#define pp_ftbinary Perl_pp_ftbinary
-#define pp_ftblk Perl_pp_ftblk
-#define pp_ftchr Perl_pp_ftchr
-#define pp_ftctime Perl_pp_ftctime
-#define pp_ftdir Perl_pp_ftdir
-#define pp_fteexec Perl_pp_fteexec
-#define pp_fteowned Perl_pp_fteowned
-#define pp_fteread Perl_pp_fteread
-#define pp_ftewrite Perl_pp_ftewrite
-#define pp_ftfile Perl_pp_ftfile
-#define pp_ftis Perl_pp_ftis
-#define pp_ftlink Perl_pp_ftlink
-#define pp_ftmtime Perl_pp_ftmtime
-#define pp_ftpipe Perl_pp_ftpipe
-#define pp_ftrexec Perl_pp_ftrexec
-#define pp_ftrowned Perl_pp_ftrowned
-#define pp_ftrread Perl_pp_ftrread
-#define pp_ftrwrite Perl_pp_ftrwrite
-#define pp_ftsgid Perl_pp_ftsgid
-#define pp_ftsize Perl_pp_ftsize
-#define pp_ftsock Perl_pp_ftsock
-#define pp_ftsuid Perl_pp_ftsuid
-#define pp_ftsvtx Perl_pp_ftsvtx
-#define pp_fttext Perl_pp_fttext
-#define pp_fttty Perl_pp_fttty
-#define pp_ftzero Perl_pp_ftzero
-#define pp_ge Perl_pp_ge
-#define pp_gelem Perl_pp_gelem
-#define pp_getc Perl_pp_getc
-#define pp_getlogin Perl_pp_getlogin
-#define pp_getpeername Perl_pp_getpeername
-#define pp_getpgrp Perl_pp_getpgrp
-#define pp_getppid Perl_pp_getppid
-#define pp_getpriority Perl_pp_getpriority
-#define pp_getsockname Perl_pp_getsockname
-#define pp_ggrent Perl_pp_ggrent
-#define pp_ggrgid Perl_pp_ggrgid
-#define pp_ggrnam Perl_pp_ggrnam
-#define pp_ghbyaddr Perl_pp_ghbyaddr
-#define pp_ghbyname Perl_pp_ghbyname
-#define pp_ghostent Perl_pp_ghostent
-#define pp_glob Perl_pp_glob
-#define pp_gmtime Perl_pp_gmtime
-#define pp_gnbyaddr Perl_pp_gnbyaddr
-#define pp_gnbyname Perl_pp_gnbyname
-#define pp_gnetent Perl_pp_gnetent
-#define pp_goto Perl_pp_goto
-#define pp_gpbyname Perl_pp_gpbyname
-#define pp_gpbynumber Perl_pp_gpbynumber
-#define pp_gprotoent Perl_pp_gprotoent
-#define pp_gpwent Perl_pp_gpwent
-#define pp_gpwnam Perl_pp_gpwnam
-#define pp_gpwuid Perl_pp_gpwuid
-#define pp_grepstart Perl_pp_grepstart
-#define pp_grepwhile Perl_pp_grepwhile
-#define pp_gsbyname Perl_pp_gsbyname
-#define pp_gsbyport Perl_pp_gsbyport
-#define pp_gservent Perl_pp_gservent
-#define pp_gsockopt Perl_pp_gsockopt
-#define pp_gt Perl_pp_gt
-#define pp_gv Perl_pp_gv
-#define pp_gvsv Perl_pp_gvsv
-#define pp_helem Perl_pp_helem
-#define pp_hex Perl_pp_hex
-#define pp_hintseval Perl_pp_hintseval
-#define pp_hslice Perl_pp_hslice
-#define pp_i_add Perl_pp_i_add
-#define pp_i_divide Perl_pp_i_divide
-#define pp_i_eq Perl_pp_i_eq
-#define pp_i_ge Perl_pp_i_ge
-#define pp_i_gt Perl_pp_i_gt
-#define pp_i_le Perl_pp_i_le
-#define pp_i_lt Perl_pp_i_lt
-#define pp_i_modulo Perl_pp_i_modulo
-#define pp_i_multiply Perl_pp_i_multiply
-#define pp_i_ncmp Perl_pp_i_ncmp
-#define pp_i_ne Perl_pp_i_ne
-#define pp_i_negate Perl_pp_i_negate
-#define pp_i_subtract Perl_pp_i_subtract
-#define pp_index Perl_pp_index
-#define pp_int Perl_pp_int
-#define pp_ioctl Perl_pp_ioctl
-#define pp_iter Perl_pp_iter
-#define pp_join Perl_pp_join
-#define pp_keys Perl_pp_keys
-#define pp_kill Perl_pp_kill
-#define pp_last Perl_pp_last
-#define pp_lc Perl_pp_lc
-#define pp_lcfirst Perl_pp_lcfirst
-#define pp_le Perl_pp_le
-#define pp_leave Perl_pp_leave
-#define pp_leaveeval Perl_pp_leaveeval
-#define pp_leavegiven Perl_pp_leavegiven
-#define pp_leaveloop Perl_pp_leaveloop
-#define pp_leavesub Perl_pp_leavesub
-#define pp_leavesublv Perl_pp_leavesublv
-#define pp_leavetry Perl_pp_leavetry
-#define pp_leavewhen Perl_pp_leavewhen
-#define pp_leavewrite Perl_pp_leavewrite
-#define pp_left_shift Perl_pp_left_shift
-#define pp_length Perl_pp_length
-#define pp_lineseq Perl_pp_lineseq
-#define pp_link Perl_pp_link
-#define pp_list Perl_pp_list
-#define pp_listen Perl_pp_listen
-#define pp_localtime Perl_pp_localtime
-#define pp_lock Perl_pp_lock
-#define pp_log Perl_pp_log
-#define pp_lslice Perl_pp_lslice
-#define pp_lstat Perl_pp_lstat
-#define pp_lt Perl_pp_lt
-#define pp_mapstart Perl_pp_mapstart
-#define pp_mapwhile Perl_pp_mapwhile
-#define pp_match Perl_pp_match
-#define pp_method Perl_pp_method
-#define pp_method_named Perl_pp_method_named
-#define pp_mkdir Perl_pp_mkdir
-#define pp_modulo Perl_pp_modulo
-#define pp_msgctl Perl_pp_msgctl
-#define pp_msgget Perl_pp_msgget
-#define pp_msgrcv Perl_pp_msgrcv
-#define pp_msgsnd Perl_pp_msgsnd
-#define pp_multiply Perl_pp_multiply
-#define pp_ncmp Perl_pp_ncmp
-#define pp_ne Perl_pp_ne
-#define pp_negate Perl_pp_negate
-#define pp_next Perl_pp_next
-#define pp_nextstate Perl_pp_nextstate
-#define pp_not Perl_pp_not
-#define pp_null Perl_pp_null
-#define pp_oct Perl_pp_oct
-#define pp_once Perl_pp_once
-#define pp_open Perl_pp_open
-#define pp_open_dir Perl_pp_open_dir
-#define pp_or Perl_pp_or
-#define pp_orassign Perl_pp_orassign
-#define pp_ord Perl_pp_ord
-#define pp_pack Perl_pp_pack
-#define pp_padany Perl_pp_padany
-#define pp_padav Perl_pp_padav
-#define pp_padhv Perl_pp_padhv
-#define pp_padsv Perl_pp_padsv
-#define pp_pipe_op Perl_pp_pipe_op
-#define pp_pop Perl_pp_pop
-#define pp_pos Perl_pp_pos
-#define pp_postdec Perl_pp_postdec
-#define pp_postinc Perl_pp_postinc
-#define pp_pow Perl_pp_pow
-#define pp_predec Perl_pp_predec
-#define pp_preinc Perl_pp_preinc
-#define pp_print Perl_pp_print
-#define pp_prototype Perl_pp_prototype
-#define pp_prtf Perl_pp_prtf
-#define pp_push Perl_pp_push
-#define pp_pushmark Perl_pp_pushmark
-#define pp_pushre Perl_pp_pushre
-#define pp_qr Perl_pp_qr
-#define pp_quotemeta Perl_pp_quotemeta
-#define pp_rand Perl_pp_rand
-#define pp_range Perl_pp_range
-#define pp_rcatline Perl_pp_rcatline
-#define pp_read Perl_pp_read
-#define pp_readdir Perl_pp_readdir
-#define pp_readline Perl_pp_readline
-#define pp_readlink Perl_pp_readlink
-#define pp_recv Perl_pp_recv
-#define pp_redo Perl_pp_redo
-#define pp_ref Perl_pp_ref
-#define pp_refgen Perl_pp_refgen
-#define pp_regcmaybe Perl_pp_regcmaybe
-#define pp_regcomp Perl_pp_regcomp
-#define pp_regcreset Perl_pp_regcreset
-#define pp_rename Perl_pp_rename
-#define pp_repeat Perl_pp_repeat
-#define pp_require Perl_pp_require
-#define pp_reset Perl_pp_reset
-#define pp_return Perl_pp_return
-#define pp_reverse Perl_pp_reverse
-#define pp_rewinddir Perl_pp_rewinddir
-#define pp_right_shift Perl_pp_right_shift
-#define pp_rindex Perl_pp_rindex
-#define pp_rmdir Perl_pp_rmdir
-#define pp_rv2av Perl_pp_rv2av
-#define pp_rv2cv Perl_pp_rv2cv
-#define pp_rv2gv Perl_pp_rv2gv
-#define pp_rv2hv Perl_pp_rv2hv
-#define pp_rv2sv Perl_pp_rv2sv
-#define pp_sassign Perl_pp_sassign
-#define pp_say Perl_pp_say
-#define pp_scalar Perl_pp_scalar
-#define pp_schomp Perl_pp_schomp
-#define pp_schop Perl_pp_schop
-#define pp_scmp Perl_pp_scmp
-#define pp_scope Perl_pp_scope
-#define pp_seek Perl_pp_seek
-#define pp_seekdir Perl_pp_seekdir
-#define pp_select Perl_pp_select
-#define pp_semctl Perl_pp_semctl
-#define pp_semget Perl_pp_semget
-#define pp_semop Perl_pp_semop
-#define pp_send Perl_pp_send
-#define pp_seq Perl_pp_seq
-#define pp_setpgrp Perl_pp_setpgrp
-#define pp_setpriority Perl_pp_setpriority
-#define pp_sge Perl_pp_sge
-#define pp_sgrent Perl_pp_sgrent
-#define pp_sgt Perl_pp_sgt
-#define pp_shift Perl_pp_shift
-#define pp_shmctl Perl_pp_shmctl
-#define pp_shmget Perl_pp_shmget
-#define pp_shmread Perl_pp_shmread
-#define pp_shmwrite Perl_pp_shmwrite
-#define pp_shostent Perl_pp_shostent
-#define pp_shutdown Perl_pp_shutdown
-#define pp_sin Perl_pp_sin
-#define pp_sle Perl_pp_sle
-#define pp_sleep Perl_pp_sleep
-#define pp_slt Perl_pp_slt
-#define pp_smartmatch Perl_pp_smartmatch
-#define pp_sne Perl_pp_sne
-#define pp_snetent Perl_pp_snetent
-#define pp_socket Perl_pp_socket
-#define pp_sockpair Perl_pp_sockpair
-#define pp_sort Perl_pp_sort
-#define pp_splice Perl_pp_splice
-#define pp_split Perl_pp_split
-#define pp_sprintf Perl_pp_sprintf
-#define pp_sprotoent Perl_pp_sprotoent
-#define pp_spwent Perl_pp_spwent
-#define pp_sqrt Perl_pp_sqrt
-#define pp_srand Perl_pp_srand
-#define pp_srefgen Perl_pp_srefgen
-#define pp_sselect Perl_pp_sselect
-#define pp_sservent Perl_pp_sservent
-#define pp_ssockopt Perl_pp_ssockopt
-#define pp_stat Perl_pp_stat
-#define pp_stringify Perl_pp_stringify
-#define pp_stub Perl_pp_stub
-#define pp_study Perl_pp_study
-#define pp_subst Perl_pp_subst
-#define pp_substcont Perl_pp_substcont
-#define pp_substr Perl_pp_substr
-#define pp_subtract Perl_pp_subtract
-#define pp_symlink Perl_pp_symlink
-#define pp_syscall Perl_pp_syscall
-#define pp_sysopen Perl_pp_sysopen
-#define pp_sysread Perl_pp_sysread
-#define pp_sysseek Perl_pp_sysseek
-#define pp_system Perl_pp_system
-#define pp_syswrite Perl_pp_syswrite
-#define pp_tell Perl_pp_tell
-#define pp_telldir Perl_pp_telldir
-#define pp_tie Perl_pp_tie
-#define pp_tied Perl_pp_tied
-#define pp_time Perl_pp_time
-#define pp_tms Perl_pp_tms
-#define pp_trans Perl_pp_trans
-#define pp_truncate Perl_pp_truncate
-#define pp_uc Perl_pp_uc
-#define pp_ucfirst Perl_pp_ucfirst
-#define pp_umask Perl_pp_umask
-#define pp_undef Perl_pp_undef
-#define pp_unlink Perl_pp_unlink
-#define pp_unpack Perl_pp_unpack
-#define pp_unshift Perl_pp_unshift
-#define pp_unstack Perl_pp_unstack
-#define pp_untie Perl_pp_untie
-#define pp_utime Perl_pp_utime
-#define pp_values Perl_pp_values
-#define pp_vec Perl_pp_vec
-#define pp_wait Perl_pp_wait
-#define pp_waitpid Perl_pp_waitpid
-#define pp_wantarray Perl_pp_wantarray
-#define pp_warn Perl_pp_warn
-#define pp_xor Perl_pp_xor
-
-#else /* PERL_IMPLICIT_CONTEXT */
-
-#if defined(PERL_IMPLICIT_SYS)
-#endif
-#define doing_taint Perl_doing_taint
-#if defined(USE_ITHREADS)
-# if defined(PERL_IMPLICIT_SYS)
-# endif
-#endif
-#if defined(MYMALLOC)
-#ifdef PERL_CORE
-#define malloced_size Perl_malloced_size
-#define malloc_good_size Perl_malloc_good_size
-#endif
-#endif
-#define get_context Perl_get_context
-#define set_context Perl_set_context
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regcurly Perl_regcurly
-#endif
-#define amagic_call(a,b,c,d) Perl_amagic_call(aTHX_ a,b,c,d)
#define Gv_AMupdate(a,b) Perl_Gv_AMupdate(aTHX_ a,b)
-#define gv_handler(a,b) Perl_gv_handler(aTHX_ a,b)
-#ifdef PERL_CORE
-#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)
-#endif
+#define _to_uni_fold_flags(a,b,c,d) Perl__to_uni_fold_flags(aTHX_ a,b,c,d)
+#define _to_utf8_fold_flags(a,b,c,d) Perl__to_utf8_fold_flags(aTHX_ a,b,c,d)
+#define amagic_call(a,b,c,d) Perl_amagic_call(aTHX_ a,b,c,d)
+#define amagic_deref_call(a,b) Perl_amagic_deref_call(aTHX_ a,b)
#define apply_attrs_string(a,b,c,d) Perl_apply_attrs_string(aTHX_ a,b,c,d)
+#define atfork_lock Perl_atfork_lock
+#define atfork_unlock Perl_atfork_unlock
#define av_clear(a) Perl_av_clear(aTHX_ a)
#define av_delete(a,b,c) Perl_av_delete(aTHX_ a,b,c)
#define av_exists(a,b) Perl_av_exists(aTHX_ a,b)
@@ -2484,207 +44,126 @@
#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)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define av_reify(a) Perl_av_reify(aTHX_ a)
-#endif
#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)
-#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define get_aux_mg(a) S_get_aux_mg(aTHX_ a)
-#endif
-#endif
-#ifdef PERL_CORE
-#define bind_match(a,b,c) Perl_bind_match(aTHX_ a,b,c)
-#define block_end(a,b) Perl_block_end(aTHX_ a,b)
-#endif
#define block_gimme() Perl_block_gimme(aTHX)
-#ifdef PERL_CORE
-#define block_start(a) Perl_block_start(aTHX_ a)
-#define boot_core_UNIVERSAL() Perl_boot_core_UNIVERSAL(aTHX)
-#define boot_core_PerlIO() Perl_boot_core_PerlIO(aTHX)
-#endif
+#define bytes_cmp_utf8(a,b,c,d) Perl_bytes_cmp_utf8(aTHX_ a,b,c,d)
+#define bytes_from_utf8(a,b,c) Perl_bytes_from_utf8(aTHX_ a,b,c)
+#define bytes_to_utf8(a,b) Perl_bytes_to_utf8(aTHX_ a,b)
+#define call_argv(a,b,c) Perl_call_argv(aTHX_ a,b,c)
+#define call_atexit(a,b) Perl_call_atexit(aTHX_ a,b)
#define call_list(a,b) Perl_call_list(aTHX_ a,b)
-#ifdef PERL_CORE
-#define cando(a,b,c) Perl_cando(aTHX_ a,b,c)
-#endif
-#define cast_ulong(a) Perl_cast_ulong(aTHX_ a)
+#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 caller_cx(a,b) Perl_caller_cx(aTHX_ a,b)
#define cast_i32(a) Perl_cast_i32(aTHX_ a)
#define cast_iv(a) Perl_cast_iv(aTHX_ a)
+#define cast_ulong(a) Perl_cast_ulong(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)
+#define ck_entersub_args_list(a) Perl_ck_entersub_args_list(aTHX_ a)
+#define ck_entersub_args_proto(a,b,c) Perl_ck_entersub_args_proto(aTHX_ a,b,c)
+#define ck_entersub_args_proto_or_list(a,b,c) Perl_ck_entersub_args_proto_or_list(aTHX_ a,b,c)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define ck_warner Perl_ck_warner
+#define ck_warner_d Perl_ck_warner_d
#endif
-#ifdef PERL_CORE
-#define convert(a,b,c) Perl_convert(aTHX_ a,b,c)
-#define create_eval_scope(a) Perl_create_eval_scope(aTHX_ a)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define croak Perl_croak
#endif
-#define vcroak(a,b) Perl_vcroak(aTHX_ a,b)
+#define croak_no_modify() Perl_croak_no_modify(aTHX)
+#define croak_sv(a) Perl_croak_sv(aTHX_ a)
#define croak_xs_usage(a,b) Perl_croak_xs_usage(aTHX_ a,b)
-#if defined(PERL_IMPLICIT_CONTEXT)
-#endif
-#ifdef PERL_CORE
-#define cv_ckproto_len(a,b,c,d) Perl_cv_ckproto_len(aTHX_ a,b,c,d)
-#define cv_clone(a) Perl_cv_clone(aTHX_ a)
-#endif
-#define gv_const_sv(a) Perl_gv_const_sv(aTHX_ a)
+#define custom_op_desc(a) Perl_custom_op_desc(aTHX_ a)
+#define custom_op_name(a) Perl_custom_op_name(aTHX_ a)
#define cv_const_sv(a) Perl_cv_const_sv(aTHX_ a)
-#ifdef PERL_CORE
-#define op_const_sv(a,b) Perl_op_const_sv(aTHX_ a,b)
-#endif
+#define cv_get_call_checker(a,b,c) Perl_cv_get_call_checker(aTHX_ a,b,c)
+#define cv_set_call_checker(a,b,c) Perl_cv_set_call_checker(aTHX_ a,b,c)
#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)
-#ifdef PERL_CORE
-#define get_no_modify() Perl_get_no_modify(aTHX)
-#define get_opargs() Perl_get_opargs(aTHX)
-#endif
-#define get_ppaddr() Perl_get_ppaddr(aTHX)
#define cxinc() Perl_cxinc(aTHX)
-#define vdeb(a,b) Perl_vdeb(aTHX_ a,b)
-#define debprofdump() Perl_debprofdump(aTHX)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define deb Perl_deb
+#endif
#define debop(a) Perl_debop(aTHX_ a)
+#define debprofdump() Perl_debprofdump(aTHX)
#define debstack() Perl_debstack(aTHX)
#define debstackptrs() Perl_debstackptrs(aTHX)
#define delimcpy Perl_delimcpy
-#ifdef PERL_CORE
-#define delete_eval_scope() Perl_delete_eval_scope(aTHX)
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define vdie(a,b) S_vdie(aTHX_ a,b)
-#endif
-#endif
-#ifdef PERL_CORE
-#define die_where(a) Perl_die_where(aTHX_ a)
-#endif
-#define dounwind(a) Perl_dounwind(aTHX_ a)
-#ifdef PERL_CORE
-#define do_aexec5(a,b,c,d,e) Perl_do_aexec5(aTHX_ a,b,c,d,e)
+#define despatch_signals() Perl_despatch_signals(aTHX)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define die Perl_die
#endif
+#define die_sv(a) Perl_die_sv(aTHX_ a)
#define do_binmode(a,b,c) Perl_do_binmode(aTHX_ a,b,c)
-#ifdef PERL_CORE
-#define do_chop(a,b) Perl_do_chop(aTHX_ a,b)
-#endif
#define do_close(a,b) Perl_do_close(aTHX_ a,b)
-#ifdef PERL_CORE
-#define do_eof(a) Perl_do_eof(aTHX_ a)
-#endif
-#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-#ifdef PERL_CORE
-#endif
-#else
-#ifdef PERL_CORE
-#define do_exec(a) Perl_do_exec(aTHX_ a)
-#endif
-#endif
-#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS)
-#define do_aspawn(a,b,c) Perl_do_aspawn(aTHX_ a,b,c)
-#define do_spawn(a) Perl_do_spawn(aTHX_ a)
-#define do_spawn_nowait(a) Perl_do_spawn_nowait(aTHX_ a)
-#endif
-#if !defined(WIN32)
-#ifdef PERL_CORE
-#define do_exec3(a,b,c) Perl_do_exec3(aTHX_ a,b,c)
-#endif
-#endif
-#ifdef PERL_CORE
-#define do_execfree() Perl_do_execfree(aTHX)
-#endif
-#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define exec_failed(a,b,c) S_exec_failed(aTHX_ a,b,c)
-#endif
-#endif
-#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-#ifdef PERL_CORE
-#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
-#endif
+#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_join(a,b,c,d) Perl_do_join(aTHX_ a,b,c,d)
-#ifdef PERL_CORE
-#define do_kv() Perl_do_kv(aTHX)
-#endif
+#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_open9(a,b,c,d,e,f,g,h,i) Perl_do_open9(aTHX_ a,b,c,d,e,f,g,h,i)
#define do_openn(a,b,c,d,e,f,g,h,i) Perl_do_openn(aTHX_ a,b,c,d,e,f,g,h,i)
-#ifdef PERL_CORE
-#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)
-#endif
+#define do_pmop_dump(a,b,c) Perl_do_pmop_dump(aTHX_ a,b,c)
#define do_sprintf(a,b,c) Perl_do_sprintf(aTHX_ a,b,c)
-#ifdef PERL_CORE
-#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_vecget(a,b,c) Perl_do_vecget(aTHX_ a,b,c)
-#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,b) Perl_dofile(aTHX_ a,b)
-#endif
+#define do_sv_dump(a,b,c,d,e,f,g) Perl_do_sv_dump(aTHX_ a,b,c,d,e,f,g)
+#define doing_taint Perl_doing_taint
+#define doref(a,b,c) Perl_doref(aTHX_ a,b,c)
+#define dounwind(a) Perl_dounwind(aTHX_ a)
#define dowantarray() Perl_dowantarray(aTHX)
#define dump_all() Perl_dump_all(aTHX)
-#ifdef PERL_CORE
-#define dump_all_perl(a) Perl_dump_all_perl(aTHX_ a)
-#endif
#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)
-#ifdef PERL_CORE
-#define dump_packsubs_perl(a,b) Perl_dump_packsubs_perl(aTHX_ a,b)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define dump_indent Perl_dump_indent
#endif
+#define dump_packsubs(a) Perl_dump_packsubs(aTHX_ a)
#define dump_sub(a) Perl_dump_sub(aTHX_ a)
-#ifdef PERL_CORE
-#define dump_sub_perl(a,b) Perl_dump_sub_perl(aTHX_ a,b)
-#endif
+#define dump_vindent(a,b,c,d) Perl_dump_vindent(aTHX_ a,b,c,d)
+#define eval_pv(a,b) Perl_eval_pv(aTHX_ a,b)
+#define eval_sv(a,b) Perl_eval_sv(aTHX_ a,b)
#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)
-#ifdef PERL_CORE
-#define find_script(a,b,c,d) Perl_find_script(aTHX_ a,b,c,d)
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define force_list(a) S_force_list(aTHX_ a)
-#define fold_constants(a) S_fold_constants(aTHX_ a)
-#endif
+#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 find_runcv(a) Perl_find_runcv(aTHX_ a)
+#define find_rundefsv() Perl_find_rundefsv(aTHX)
+#define find_rundefsvoffset() Perl_find_rundefsvoffset(aTHX)
+#define foldEQ Perl_foldEQ
+#define foldEQ_latin1 Perl_foldEQ_latin1
+#define foldEQ_locale Perl_foldEQ_locale
+#define foldEQ_utf8_flags(a,b,c,d,e,f,g,h,i) Perl_foldEQ_utf8_flags(aTHX_ a,b,c,d,e,f,g,h,i)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define form Perl_form
#endif
-#define vform(a,b) Perl_vform(aTHX_ a,b)
#define free_tmps() Perl_free_tmps(aTHX)
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define gen_constant_list(a) S_gen_constant_list(aTHX_ a)
-#endif
-#endif
-#if !defined(HAS_GETENV_LEN)
-#ifdef PERL_CORE
-#define getenv_len(a,b) Perl_getenv_len(aTHX_ a,b)
-#endif
-#endif
-#ifdef PERL_CORE
-#endif
+#define get_av(a,b) Perl_get_av(aTHX_ a,b)
+#define get_context Perl_get_context
+#define get_cv(a,b) Perl_get_cv(aTHX_ a,b)
+#define get_cvn_flags(a,b,c) Perl_get_cvn_flags(aTHX_ a,b,c)
+#define get_hv(a,b) Perl_get_hv(aTHX_ a,b)
+#define get_op_descs() Perl_get_op_descs(aTHX)
+#define get_op_names() Perl_get_op_names(aTHX)
+#define get_ppaddr() Perl_get_ppaddr(aTHX)
+#define get_sv(a,b) Perl_get_sv(aTHX_ a,b)
+#define get_vtbl(a) Perl_get_vtbl(aTHX_ a)
+#define getcwd_sv(a) Perl_getcwd_sv(aTHX_ a)
#define gp_free(a) Perl_gp_free(aTHX_ a)
#define gp_ref(a) Perl_gp_ref(aTHX_ a)
+#define grok_bin(a,b,c,d) Perl_grok_bin(aTHX_ a,b,c,d)
+#define grok_hex(a,b,c,d) Perl_grok_hex(aTHX_ a,b,c,d)
+#define grok_number(a,b,c) Perl_grok_number(aTHX_ a,b,c)
+#define grok_numeric_radix(a,b) Perl_grok_numeric_radix(aTHX_ a,b)
+#define grok_oct(a,b,c,d) Perl_grok_oct(aTHX_ a,b,c,d)
#define gv_add_by_type(a,b) Perl_gv_add_by_type(aTHX_ a,b)
#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_const_sv(a) Perl_gv_const_sv(aTHX_ a)
+#define gv_dump(a) Perl_gv_dump(aTHX_ a)
#define gv_efullname(a,b) Perl_gv_efullname(aTHX_ a,b)
#define gv_efullname4(a,b,c,d) Perl_gv_efullname4(aTHX_ a,b,c,d)
#define gv_fetchfile(a) Perl_gv_fetchfile(aTHX_ a)
@@ -2694,537 +173,276 @@
#define gv_fetchmethod_autoload(a,b,c) Perl_gv_fetchmethod_autoload(aTHX_ a,b,c)
#define gv_fetchmethod_flags(a,b,c) Perl_gv_fetchmethod_flags(aTHX_ a,b,c)
#define gv_fetchpv(a,b,c) Perl_gv_fetchpv(aTHX_ a,b,c)
+#define gv_fetchpvn_flags(a,b,c,d) Perl_gv_fetchpvn_flags(aTHX_ a,b,c,d)
+#define gv_fetchsv(a,b,c) Perl_gv_fetchsv(aTHX_ a,b,c)
#define gv_fullname(a,b) Perl_gv_fullname(aTHX_ a,b)
#define gv_fullname4(a,b,c,d) Perl_gv_fullname4(aTHX_ a,b,c,d)
-#ifdef PERL_CORE
-#endif
+#define gv_handler(a,b) Perl_gv_handler(aTHX_ a,b)
#define gv_init(a,b,c,d,e) Perl_gv_init(aTHX_ a,b,c,d,e)
#define gv_name_set(a,b,c,d) Perl_gv_name_set(aTHX_ a,b,c,d)
-#ifdef PERL_CORE
-#define gv_try_downgrade(a) Perl_gv_try_downgrade(aTHX_ a)
-#endif
#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)
-#ifdef PERL_CORE
-#endif
-#define hv_delayfree_ent(a,b) Perl_hv_delayfree_ent(aTHX_ a,b)
+#define hv_clear_placeholders(a) Perl_hv_clear_placeholders(aTHX_ a)
#define hv_common(a,b,c,d,e,f,g,h) Perl_hv_common(aTHX_ a,b,c,d,e,f,g,h)
#define hv_common_key_len(a,b,c,d,e,f) Perl_hv_common_key_len(aTHX_ a,b,c,d,e,f)
+#define hv_copy_hints_hv(a) Perl_hv_copy_hints_hv(aTHX_ a)
+#define hv_delayfree_ent(a,b) Perl_hv_delayfree_ent(aTHX_ a,b)
#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_iternextsv(a,b,c) Perl_hv_iternextsv(aTHX_ a,b,c)
#define hv_iternext_flags(a,b) Perl_hv_iternext_flags(aTHX_ a,b)
+#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)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#endif
-#ifdef PERL_CORE
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#endif
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define refcounted_he_new_common(a,b,c,d,e,f,g) S_refcounted_he_new_common(aTHX_ a,b,c,d,e,f,g)
-#endif
-#endif
-#define hv_undef(a) Perl_hv_undef(aTHX_ a)
-#define ibcmp Perl_ibcmp
-#define ibcmp_locale Perl_ibcmp_locale
-#define ibcmp_utf8(a,b,c,d,e,f,g,h) Perl_ibcmp_utf8(aTHX_ a,b,c,d,e,f,g,h)
-#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define ingroup(a,b) S_ingroup(aTHX_ a,b)
-#endif
-#endif
-#ifdef PERL_CORE
-#define init_argv_symbols(a,b) Perl_init_argv_symbols(aTHX_ a,b)
-#define init_debugger() Perl_init_debugger(aTHX)
-#endif
+#define hv_name_set(a,b,c,d) Perl_hv_name_set(aTHX_ a,b,c,d)
+#define hv_scalar(a) Perl_hv_scalar(aTHX_ a)
+#define init_i18nl10n(a) Perl_init_i18nl10n(aTHX_ a)
+#define init_i18nl14n(a) Perl_init_i18nl14n(aTHX_ a)
#define init_stacks() Perl_init_stacks(aTHX)
#define init_tm(a) Perl_init_tm(aTHX_ a)
-#ifdef PERL_CORE
-#define intro_my() Perl_intro_my(aTHX)
-#endif
#define instr Perl_instr
-#ifdef PERL_CORE
-#define io_close(a,b) Perl_io_close(aTHX_ a,b)
-#define invert(a) Perl_invert(aTHX_ a)
-#endif
+#define is_ascii_string Perl_is_ascii_string
#define is_lvalue_sub() Perl_is_lvalue_sub(aTHX)
-#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_uni_alnum(a) Perl_is_uni_alnum(aTHX_ a)
-#define is_uni_idfirst(a) Perl_is_uni_idfirst(aTHX_ a)
+#define is_uni_alnum_lc(a) Perl_is_uni_alnum_lc(aTHX_ a)
#define is_uni_alpha(a) Perl_is_uni_alpha(aTHX_ a)
+#define is_uni_alpha_lc(a) Perl_is_uni_alpha_lc(aTHX_ a)
#define is_uni_ascii(a) Perl_is_uni_ascii(aTHX_ a)
-#define is_uni_space(a) Perl_is_uni_space(aTHX_ a)
+#define is_uni_ascii_lc(a) Perl_is_uni_ascii_lc(aTHX_ a)
#define is_uni_cntrl(a) Perl_is_uni_cntrl(aTHX_ a)
-#define is_uni_graph(a) Perl_is_uni_graph(aTHX_ a)
+#define is_uni_cntrl_lc(a) Perl_is_uni_cntrl_lc(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_digit_lc(a) Perl_is_uni_digit_lc(aTHX_ a)
+#define is_uni_graph(a) Perl_is_uni_graph(aTHX_ a)
+#define is_uni_graph_lc(a) Perl_is_uni_graph_lc(aTHX_ a)
+#define is_uni_idfirst(a) Perl_is_uni_idfirst(aTHX_ a)
+#define is_uni_idfirst_lc(a) Perl_is_uni_idfirst_lc(aTHX_ a)
#define is_uni_lower(a) Perl_is_uni_lower(aTHX_ a)
+#define is_uni_lower_lc(a) Perl_is_uni_lower_lc(aTHX_ a)
#define is_uni_print(a) Perl_is_uni_print(aTHX_ a)
+#define is_uni_print_lc(a) Perl_is_uni_print_lc(aTHX_ a)
#define is_uni_punct(a) Perl_is_uni_punct(aTHX_ a)
-#define is_uni_xdigit(a) Perl_is_uni_xdigit(aTHX_ a)
-#define to_uni_upper(a,b,c) Perl_to_uni_upper(aTHX_ a,b,c)
-#define to_uni_title(a,b,c) Perl_to_uni_title(aTHX_ a,b,c)
-#define to_uni_lower(a,b,c) Perl_to_uni_lower(aTHX_ a,b,c)
-#define to_uni_fold(a,b,c) Perl_to_uni_fold(aTHX_ a,b,c)
-#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_ascii_lc(a) Perl_is_uni_ascii_lc(aTHX_ a)
+#define is_uni_punct_lc(a) Perl_is_uni_punct_lc(aTHX_ a)
+#define is_uni_space(a) Perl_is_uni_space(aTHX_ a)
#define is_uni_space_lc(a) Perl_is_uni_space_lc(aTHX_ a)
-#define is_uni_cntrl_lc(a) Perl_is_uni_cntrl_lc(aTHX_ a)
-#define is_uni_graph_lc(a) Perl_is_uni_graph_lc(aTHX_ a)
-#define is_uni_digit_lc(a) Perl_is_uni_digit_lc(aTHX_ a)
+#define is_uni_upper(a) Perl_is_uni_upper(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 is_uni_punct_lc(a) Perl_is_uni_punct_lc(aTHX_ a)
+#define is_uni_xdigit(a) Perl_is_uni_xdigit(aTHX_ a)
#define is_uni_xdigit_lc(a) Perl_is_uni_xdigit_lc(aTHX_ a)
-#define is_ascii_string Perl_is_ascii_string
-#define is_utf8_char Perl_is_utf8_char
-#define is_utf8_string Perl_is_utf8_string
-#define is_utf8_string_loclen Perl_is_utf8_string_loclen
#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_idcont(a) Perl_is_utf8_idcont(aTHX_ a)
#define is_utf8_alpha(a) Perl_is_utf8_alpha(aTHX_ a)
#define is_utf8_ascii(a) Perl_is_utf8_ascii(aTHX_ a)
-#define is_utf8_space(a) Perl_is_utf8_space(aTHX_ a)
-#define is_utf8_perl_space(a) Perl_is_utf8_perl_space(aTHX_ a)
-#define is_utf8_perl_word(a) Perl_is_utf8_perl_word(aTHX_ a)
+#define is_utf8_char Perl_is_utf8_char
#define is_utf8_cntrl(a) Perl_is_utf8_cntrl(aTHX_ a)
#define is_utf8_digit(a) Perl_is_utf8_digit(aTHX_ a)
-#define is_utf8_posix_digit(a) Perl_is_utf8_posix_digit(aTHX_ a)
#define is_utf8_graph(a) Perl_is_utf8_graph(aTHX_ a)
-#define is_utf8_upper(a) Perl_is_utf8_upper(aTHX_ a)
+#define is_utf8_idcont(a) Perl_is_utf8_idcont(aTHX_ a)
+#define is_utf8_idfirst(a) Perl_is_utf8_idfirst(aTHX_ a)
#define is_utf8_lower(a) Perl_is_utf8_lower(aTHX_ a)
+#define is_utf8_mark(a) Perl_is_utf8_mark(aTHX_ a)
+#define is_utf8_perl_space(a) Perl_is_utf8_perl_space(aTHX_ a)
+#define is_utf8_perl_word(a) Perl_is_utf8_perl_word(aTHX_ a)
+#define is_utf8_posix_digit(a) Perl_is_utf8_posix_digit(aTHX_ a)
#define is_utf8_print(a) Perl_is_utf8_print(aTHX_ a)
#define is_utf8_punct(a) Perl_is_utf8_punct(aTHX_ a)
+#define is_utf8_space(a) Perl_is_utf8_space(aTHX_ a)
+#define is_utf8_string Perl_is_utf8_string
+#define is_utf8_string_loclen Perl_is_utf8_string_loclen
+#define is_utf8_upper(a) Perl_is_utf8_upper(aTHX_ a)
#define is_utf8_xdigit(a) Perl_is_utf8_xdigit(aTHX_ a)
-#define is_utf8_mark(a) Perl_is_utf8_mark(aTHX_ a)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define is_utf8_X_begin(a) Perl_is_utf8_X_begin(aTHX_ a)
-#define is_utf8_X_extend(a) Perl_is_utf8_X_extend(aTHX_ a)
-#define is_utf8_X_prepend(a) Perl_is_utf8_X_prepend(aTHX_ a)
-#define is_utf8_X_non_hangul(a) Perl_is_utf8_X_non_hangul(aTHX_ a)
-#define is_utf8_X_L(a) Perl_is_utf8_X_L(aTHX_ a)
-#define is_utf8_X_LV(a) Perl_is_utf8_X_LV(aTHX_ a)
-#define is_utf8_X_LVT(a) Perl_is_utf8_X_LVT(aTHX_ a)
-#define is_utf8_X_LV_LVT_V(a) Perl_is_utf8_X_LV_LVT_V(aTHX_ a)
-#define is_utf8_X_T(a) Perl_is_utf8_X_T(aTHX_ a)
-#define is_utf8_X_V(a) Perl_is_utf8_X_V(aTHX_ a)
-#endif
-#ifdef PERL_CORE
-#define jmaybe(a) Perl_jmaybe(aTHX_ a)
-#define keyword(a,b,c) Perl_keyword(aTHX_ a,b,c)
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define opt_scalarhv(a) S_opt_scalarhv(aTHX_ a)
-#define is_inplace_av(a,b) S_is_inplace_av(aTHX_ a,b)
-#endif
-#endif
+#define is_utf8_xidcont(a) Perl_is_utf8_xidcont(aTHX_ a)
+#define is_utf8_xidfirst(a) Perl_is_utf8_xidfirst(aTHX_ a)
#define leave_scope(a) Perl_leave_scope(aTHX_ a)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define lex_end() Perl_lex_end(aTHX)
-#endif
-#ifdef PERL_CORE
-#define lex_start(a,b,c) Perl_lex_start(aTHX_ a,b,c)
-#endif
#define lex_bufutf8() Perl_lex_bufutf8(aTHX)
-#define lex_grow_linestr(a) Perl_lex_grow_linestr(aTHX_ a)
-#define lex_stuff_pvn(a,b,c) Perl_lex_stuff_pvn(aTHX_ a,b,c)
-#define lex_stuff_sv(a,b) Perl_lex_stuff_sv(aTHX_ a,b)
-#define lex_unstuff(a) Perl_lex_unstuff(aTHX_ a)
-#define lex_read_to(a) Perl_lex_read_to(aTHX_ a)
#define lex_discard_to(a) Perl_lex_discard_to(aTHX_ a)
+#define lex_grow_linestr(a) Perl_lex_grow_linestr(aTHX_ a)
#define lex_next_chunk(a) Perl_lex_next_chunk(aTHX_ a)
#define lex_peek_unichar(a) Perl_lex_peek_unichar(aTHX_ a)
-#define lex_read_unichar(a) Perl_lex_read_unichar(aTHX_ a)
#define lex_read_space(a) Perl_lex_read_space(aTHX_ a)
-#define op_null(a) Perl_op_null(aTHX_ a)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define op_clear(a) Perl_op_clear(aTHX_ a)
-#endif
-#define op_refcnt_lock() Perl_op_refcnt_lock(aTHX)
-#define op_refcnt_unlock() Perl_op_refcnt_unlock(aTHX)
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define linklist(a) S_linklist(aTHX_ a)
-#define listkids(a) S_listkids(aTHX_ a)
-#endif
-#endif
-#ifdef PERL_CORE
-#define list(a) Perl_list(aTHX_ a)
-#endif
-#define vload_module(a,b,c,d) Perl_vload_module(aTHX_ a,b,c,d)
-#ifdef PERL_CORE
-#define localize(a,b) Perl_localize(aTHX_ a,b)
+#define lex_read_to(a) Perl_lex_read_to(aTHX_ a)
+#define lex_read_unichar(a) Perl_lex_read_unichar(aTHX_ a)
+#define lex_start(a,b,c) Perl_lex_start(aTHX_ a,b,c)
+#define lex_stuff_pv(a,b) Perl_lex_stuff_pv(aTHX_ a,b)
+#define lex_stuff_pvn(a,b,c) Perl_lex_stuff_pvn(aTHX_ a,b,c)
+#define lex_stuff_sv(a,b) Perl_lex_stuff_sv(aTHX_ a,b)
+#define lex_unstuff(a) Perl_lex_unstuff(aTHX_ a)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define load_module Perl_load_module
#endif
#define looks_like_number(a) Perl_looks_like_number(aTHX_ a)
-#define grok_bin(a,b,c,d) Perl_grok_bin(aTHX_ a,b,c,d)
-#define grok_hex(a,b,c,d) Perl_grok_hex(aTHX_ a,b,c,d)
-#define grok_number(a,b,c) Perl_grok_number(aTHX_ a,b,c)
-#define grok_numeric_radix(a,b) Perl_grok_numeric_radix(aTHX_ a,b)
-#define grok_oct(a,b,c,d) Perl_grok_oct(aTHX_ a,b,c,d)
-#ifdef PERL_CORE
-#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_clearhint(a,b) Perl_magic_clearhint(aTHX_ a,b)
-#define magic_clearhints(a,b) Perl_magic_clearhints(aTHX_ a,b)
-#define magic_clearisa(a,b) Perl_magic_clearisa(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_freeovrld(a,b) Perl_magic_freeovrld(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_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)
-#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_regdatum_set(a,b) Perl_magic_regdatum_set(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_freearylen_p(a,b) Perl_magic_freearylen_p(aTHX_ a,b)
-#define magic_setdbline(a,b) Perl_magic_setdbline(aTHX_ a,b)
-#define magic_setdefelem(a,b) Perl_magic_setdefelem(aTHX_ a,b)
-#define magic_setenv(a,b) Perl_magic_setenv(aTHX_ a,b)
-#define magic_sethint(a,b) Perl_magic_sethint(aTHX_ a,b)
-#define magic_setisa(a,b) Perl_magic_setisa(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_setregexp(a,b) Perl_magic_setregexp(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_setutf8(a,b) Perl_magic_setutf8(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)
-#endif
+#define magic_dump(a) Perl_magic_dump(aTHX_ a)
#define markstack_grow() Perl_markstack_grow(aTHX)
-#if defined(USE_LOCALE_COLLATE)
-#ifdef PERL_CORE
-#define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b)
-#define mem_collxfrm(a,b,c) Perl_mem_collxfrm(aTHX_ a,b,c)
-#endif
-#endif
-#define vmess(a,b) Perl_vmess(aTHX_ a,b)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define qerror(a) Perl_qerror(aTHX_ a)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define mess Perl_mess
#endif
-#define sortsv(a,b,c) Perl_sortsv(aTHX_ a,b,c)
-#define sortsv_flags(a,b,c,d) Perl_sortsv_flags(aTHX_ a,b,c,d)
+#define mess_sv(a,b) Perl_mess_sv(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)
-#ifdef PERL_CORE
-#define mg_localize(a,b,c) Perl_mg_localize(aTHX_ a,b,c)
-#endif
#define mg_find(a,b) Perl_mg_find(aTHX_ a,b)
+#define mg_findext(a,b,c) Perl_mg_findext(aTHX_ a,b,c)
#define mg_free(a) Perl_mg_free(aTHX_ a)
+#define mg_free_type(a,b) Perl_mg_free_type(aTHX_ a,b)
#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 mini_mktime(a) Perl_mini_mktime(aTHX_ a)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define mod(a,b) Perl_mod(aTHX_ a,b)
-#endif
-#ifdef PERL_CORE
-#define mode_from_discipline(a,b) Perl_mode_from_discipline(aTHX_ a,b)
-#endif
#define moreswitches(a) Perl_moreswitches(aTHX_ a)
+#define mro_get_linear_isa(a) Perl_mro_get_linear_isa(aTHX_ a)
+#define mro_method_changed_in(a) Perl_mro_method_changed_in(aTHX_ a)
#define my_atof(a) Perl_my_atof(aTHX_ a)
-#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
-#define my_bcopy Perl_my_bcopy
-#endif
-#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-#define my_bzero Perl_my_bzero
-#endif
+#define my_atof2(a,b) Perl_my_atof2(aTHX_ a,b)
+#define my_dirfd(a) Perl_my_dirfd(aTHX_ a)
#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_fork Perl_my_fork
-#define atfork_lock Perl_atfork_lock
-#define atfork_unlock Perl_atfork_unlock
-#define my_lstat() Perl_my_lstat(aTHX)
-#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
-#endif
#define my_pclose(a) Perl_my_pclose(aTHX_ a)
#define my_popen(a,b) Perl_my_popen(aTHX_ a,b)
#define my_popen_list(a,b,c) Perl_my_popen_list(aTHX_ a,b,c)
#define my_setenv(a,b) Perl_my_setenv(aTHX_ a,b)
-#define my_stat() Perl_my_stat(aTHX)
+#define my_socketpair Perl_my_socketpair
#define my_strftime(a,b,c,d,e,f,g,h,i,j) Perl_my_strftime(aTHX_ a,b,c,d,e,f,g,h,i,j)
-#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
-#ifdef PERL_CORE
-#define my_unexec() Perl_my_unexec(aTHX)
-#endif
-#define newANONLIST(a) Perl_newANONLIST(aTHX_ a)
+#define newANONATTRSUB(a,b,c,d) Perl_newANONATTRSUB(aTHX_ a,b,c,d)
#define newANONHASH(a) Perl_newANONHASH(aTHX_ a)
+#define newANONLIST(a) Perl_newANONLIST(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)
-#ifdef PERL_MAD
-#define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c)
-#else
-#define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c)
-#endif
-#define newFOROP(a,b,c,d,e,f,g) Perl_newFOROP(aTHX_ a,b,c,d,e,f,g)
-#define newGIVENOP(a,b,c) Perl_newGIVENOP(aTHX_ a,b,c)
-#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_flags(a,b,c,d,e) Perl_newXS_flags(aTHX_ a,b,c,d,e)
-#define newXS(a,b,c) Perl_newXS(aTHX_ a,b,c)
+#define newATTRSUB(a,b,c,d,e) Perl_newATTRSUB(aTHX_ a,b,c,d,e)
#define newAVREF(a) Perl_newAVREF(aTHX_ a)
#define newBINOP(a,b,c,d) Perl_newBINOP(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 newCVREF(a,b) Perl_newCVREF(aTHX_ a,b)
+#define newFOROP(a,b,c,d,e) Perl_newFOROP(aTHX_ a,b,c,d,e)
+#define newGIVENOP(a,b,c) Perl_newGIVENOP(aTHX_ a,b,c)
#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 newGVgen(a) Perl_newGVgen(aTHX_ a)
#define newHVREF(a) Perl_newHVREF(aTHX_ a)
#define newHVhv(a) Perl_newHVhv(aTHX_ a)
#define newLISTOP(a,b,c,d) Perl_newLISTOP(aTHX_ a,b,c,d)
-#ifdef USE_ITHREADS
-#define newPADOP(a,b,c) Perl_newPADOP(aTHX_ a,b,c)
-#endif
+#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 newPMOP(a,b) Perl_newPMOP(aTHX_ a,b)
+#define newPROG(a) Perl_newPROG(aTHX_ a)
#define newPVOP(a,b,c) Perl_newPVOP(aTHX_ a,b,c)
+#define newRANGE(a,b,c) Perl_newRANGE(aTHX_ a,b,c)
#define newRV(a) Perl_newRV(aTHX_ a)
#define newRV_noinc(a) Perl_newRV_noinc(aTHX_ a)
+#define newSLICEOP(a,b,c) Perl_newSLICEOP(aTHX_ a,b,c)
+#define newSTATEOP(a,b,c) Perl_newSTATEOP(aTHX_ a,b,c)
#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 newSVREF(a) Perl_newSVREF(aTHX_ a)
+#define newSV_type(a) Perl_newSV_type(aTHX_ a)
+#define newSVhek(a) Perl_newSVhek(aTHX_ a)
#define newSViv(a) Perl_newSViv(aTHX_ a)
-#define newSVuv(a) Perl_newSVuv(aTHX_ a)
#define newSVnv(a) Perl_newSVnv(aTHX_ a)
#define newSVpv(a,b) Perl_newSVpv(aTHX_ a,b)
+#define newSVpv_share(a,b) Perl_newSVpv_share(aTHX_ a,b)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define newSVpvf Perl_newSVpvf
+#endif
#define newSVpvn(a,b) Perl_newSVpvn(aTHX_ a,b)
#define newSVpvn_flags(a,b,c) Perl_newSVpvn_flags(aTHX_ a,b,c)
-#define newSVhek(a) Perl_newSVhek(aTHX_ a)
#define newSVpvn_share(a,b,c) Perl_newSVpvn_share(aTHX_ a,b,c)
-#define vnewSVpvf(a,b) Perl_vnewSVpvf(aTHX_ a,b)
#define newSVrv(a,b) Perl_newSVrv(aTHX_ a,b)
#define newSVsv(a) Perl_newSVsv(aTHX_ a)
-#define newSV_type(a) Perl_newSV_type(aTHX_ a)
+#define newSVuv(a) Perl_newSVuv(aTHX_ a)
#define newUNOP(a,b,c) Perl_newUNOP(aTHX_ a,b,c)
#define newWHENOP(a,b) Perl_newWHENOP(aTHX_ a,b)
-#define newWHILEOP(a,b,c,d,e,f,g,h) Perl_newWHILEOP(aTHX_ a,b,c,d,e,f,g,h)
+#define newWHILEOP(a,b,c,d,e,f,g) Perl_newWHILEOP(aTHX_ a,b,c,d,e,f,g)
+#define newXS(a,b,c) Perl_newXS(aTHX_ a,b,c)
+#define newXS_flags(a,b,c,d,e) Perl_newXS_flags(aTHX_ a,b,c,d,e)
+#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 new_stackinfo(a,b) Perl_new_stackinfo(aTHX_ a,b)
-#define scan_vstring(a,b,c) Perl_scan_vstring(aTHX_ a,b,c)
-#define scan_version(a,b,c) Perl_scan_version(aTHX_ a,b,c)
-#define prescan_version(a,b,c,d,e,f,g) Perl_prescan_version(aTHX_ a,b,c,d,e,f,g)
#define new_version(a) Perl_new_version(aTHX_ a)
-#define upg_version(a,b) Perl_upg_version(aTHX_ a,b)
-#define vverify(a) Perl_vverify(aTHX_ a)
-#define vnumify(a) Perl_vnumify(aTHX_ a)
-#define vnormal(a) Perl_vnormal(aTHX_ a)
-#define vstringify(a) Perl_vstringify(aTHX_ a)
-#define vcmp(a,b) Perl_vcmp(aTHX_ a,b)
-#ifdef PERL_CORE
-#define nextargv(a) Perl_nextargv(aTHX_ a)
-#endif
#define ninstr Perl_ninstr
+#define nothreadhook() Perl_nothreadhook(aTHX)
+#define op_append_elem(a,b,c) Perl_op_append_elem(aTHX_ a,b,c)
+#define op_append_list(a,b,c) Perl_op_append_list(aTHX_ a,b,c)
+#define op_contextualize(a,b) Perl_op_contextualize(aTHX_ a,b)
+#define op_dump(a) Perl_op_dump(aTHX_ a)
#define op_free(a) Perl_op_free(aTHX_ a)
-#ifdef PERL_MAD
-#ifdef PERL_CORE
-#define package(a) Perl_package(aTHX_ a)
-#endif
-#else
-#ifdef PERL_CORE
-#define package(a) Perl_package(aTHX_ a)
-#endif
-#endif
-#ifdef PERL_CORE
-#define package_version(a) Perl_package_version(aTHX_ a)
-#define pad_alloc(a,b) Perl_pad_alloc(aTHX_ a,b)
-#define allocmy(a,b,c) Perl_allocmy(aTHX_ a,b,c)
-#endif
-#define pad_findmy(a,b,c) Perl_pad_findmy(aTHX_ a,b,c)
-#define find_rundefsvoffset() Perl_find_rundefsvoffset(aTHX)
-#ifdef PERL_CORE
-#define oopsAV(a) Perl_oopsAV(aTHX_ a)
-#define oopsHV(a) Perl_oopsHV(aTHX_ a)
-#define pad_leavemy() Perl_pad_leavemy(aTHX)
-#endif
-#ifdef DEBUGGING
-#define pad_sv(a) Perl_pad_sv(aTHX_ a)
-#endif
-#ifdef PERL_CORE
-#define pad_free(a) Perl_pad_free(aTHX_ a)
-#endif
-#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define pad_reset() S_pad_reset(aTHX)
-#endif
-#endif
-#ifdef PERL_CORE
-#define pad_swipe(a,b) Perl_pad_swipe(aTHX_ a,b)
-#define peep(a) Perl_peep(aTHX_ a)
-#endif
-#if defined(USE_REENTRANT_API)
-#define reentrant_size() Perl_reentrant_size(aTHX)
-#define reentrant_init() Perl_reentrant_init(aTHX)
-#define reentrant_free() Perl_reentrant_free(aTHX)
-#endif
-#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 despatch_signals() Perl_despatch_signals(aTHX)
-#define doref(a,b,c) Perl_doref(aTHX_ a,b,c)
-#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 get_cvn_flags(a,b,c) Perl_get_cvn_flags(aTHX_ a,b,c)
-#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_radix() Perl_set_numeric_radix(aTHX)
-#define set_numeric_standard() Perl_set_numeric_standard(aTHX)
-#define require_pv(a) Perl_require_pv(aTHX_ a)
+#define op_linklist(a) Perl_op_linklist(aTHX_ a)
+#define op_lvalue(a,b) Perl_op_lvalue(aTHX_ a,b)
+#define op_null(a) Perl_op_null(aTHX_ a)
+#define op_prepend_elem(a,b,c) Perl_op_prepend_elem(aTHX_ a,b,c)
+#define op_refcnt_lock() Perl_op_refcnt_lock(aTHX)
+#define op_refcnt_unlock() Perl_op_refcnt_unlock(aTHX)
+#define op_scope(a) Perl_op_scope(aTHX_ a)
#define pack_cat(a,b,c,d,e,f,g) Perl_pack_cat(aTHX_ a,b,c,d,e,f,g)
#define packlist(a,b,c,d,e) Perl_packlist(aTHX_ a,b,c,d,e)
-#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
-#ifdef PERL_CORE
-#define pidgone(a,b) S_pidgone(aTHX_ a,b)
-#endif
-#endif
-#ifdef PERL_CORE
-#define pmruntime(a,b,c) Perl_pmruntime(aTHX_ a,b,c)
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define pmtrans(a,b,c) S_pmtrans(aTHX_ a,b,c)
-#endif
-#endif
+#define pad_findmy(a,b,c) Perl_pad_findmy(aTHX_ a,b,c)
+#define parse_arithexpr(a) Perl_parse_arithexpr(aTHX_ a)
+#define parse_barestmt(a) Perl_parse_barestmt(aTHX_ a)
+#define parse_block(a) Perl_parse_block(aTHX_ a)
+#define parse_fullexpr(a) Perl_parse_fullexpr(aTHX_ a)
+#define parse_fullstmt(a) Perl_parse_fullstmt(aTHX_ a)
+#define parse_label(a) Perl_parse_label(aTHX_ a)
+#define parse_listexpr(a) Perl_parse_listexpr(aTHX_ a)
+#define parse_stmtseq(a) Perl_parse_stmtseq(aTHX_ a)
+#define parse_termexpr(a) Perl_parse_termexpr(aTHX_ a)
+#define pmop_dump(a) Perl_pmop_dump(aTHX_ a)
#define pop_scope() Perl_pop_scope(aTHX)
-#ifdef PERL_CORE
-#define prepend_elem(a,b,c) Perl_prepend_elem(aTHX_ a,b,c)
-#endif
-#define push_scope() Perl_push_scope(aTHX)
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define refkids(a,b) S_refkids(aTHX_ a,b)
-#endif
-#endif
-#define regdump(a) Perl_regdump(aTHX_ a)
-#define regdump(a) Perl_regdump(aTHX_ a)
-#define regclass_swash(a,b,c,d,e) Perl_regclass_swash(aTHX_ a,b,c,d,e)
+#define pregcomp(a,b) Perl_pregcomp(aTHX_ a,b)
#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 pregfree2(a) Perl_pregfree2(aTHX_ a)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg_temp_copy(a,b) Perl_reg_temp_copy(aTHX_ a,b)
-#endif
-#define regfree_internal(a) Perl_regfree_internal(aTHX_ a)
-#if defined(USE_ITHREADS)
-#define regdupe_internal(a,b) Perl_regdupe_internal(aTHX_ a,b)
-#endif
-#define pregcomp(a,b) Perl_pregcomp(aTHX_ a,b)
+#define prescan_version(a,b,c,d,e,f,g) Perl_prescan_version(aTHX_ a,b,c,d,e,f,g)
+#define ptr_table_clear(a) Perl_ptr_table_clear(aTHX_ a)
+#define ptr_table_fetch(a,b) Perl_ptr_table_fetch(aTHX_ a,b)
+#define ptr_table_free(a) Perl_ptr_table_free(aTHX_ a)
+#define ptr_table_new() Perl_ptr_table_new(aTHX)
+#define ptr_table_split(a) Perl_ptr_table_split(aTHX_ a)
+#define ptr_table_store(a,b,c) Perl_ptr_table_store(aTHX_ a,b,c)
+#define push_scope() Perl_push_scope(aTHX)
+#define pv_display(a,b,c,d,e) Perl_pv_display(aTHX_ a,b,c,d,e)
+#define pv_escape(a,b,c,d,e,f) Perl_pv_escape(aTHX_ a,b,c,d,e,f)
+#define pv_pretty(a,b,c,d,e,f,g) Perl_pv_pretty(aTHX_ a,b,c,d,e,f,g)
+#define pv_uni_display(a,b,c,d,e) Perl_pv_uni_display(aTHX_ a,b,c,d,e)
#define re_compile(a,b) Perl_re_compile(aTHX_ a,b)
#define re_intuit_start(a,b,c,d,e,f) Perl_re_intuit_start(aTHX_ a,b,c,d,e,f)
#define re_intuit_string(a) Perl_re_intuit_string(aTHX_ a)
-#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)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg_named_buff(a,b,c,d) Perl_reg_named_buff(aTHX_ a,b,c,d)
-#define reg_named_buff_iter(a,b,c) Perl_reg_named_buff_iter(aTHX_ a,b,c)
-#endif
-#define reg_named_buff_fetch(a,b,c) Perl_reg_named_buff_fetch(aTHX_ a,b,c)
+#define reg_named_buff_all(a,b) Perl_reg_named_buff_all(aTHX_ a,b)
#define reg_named_buff_exists(a,b,c) Perl_reg_named_buff_exists(aTHX_ a,b,c)
+#define reg_named_buff_fetch(a,b,c) Perl_reg_named_buff_fetch(aTHX_ a,b,c)
#define reg_named_buff_firstkey(a,b) Perl_reg_named_buff_firstkey(aTHX_ a,b)
#define reg_named_buff_nextkey(a,b) Perl_reg_named_buff_nextkey(aTHX_ a,b)
#define reg_named_buff_scalar(a,b) Perl_reg_named_buff_scalar(aTHX_ a,b)
-#define reg_named_buff_all(a,b) Perl_reg_named_buff_all(aTHX_ a,b)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg_numbered_buff_fetch(a,b,c) Perl_reg_numbered_buff_fetch(aTHX_ a,b,c)
-#define reg_numbered_buff_store(a,b,c) Perl_reg_numbered_buff_store(aTHX_ a,b,c)
-#define reg_numbered_buff_length(a,b,c) Perl_reg_numbered_buff_length(aTHX_ a,b,c)
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg_qr_package(a) Perl_reg_qr_package(aTHX_ a)
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regprop(a,b,c) Perl_regprop(aTHX_ a,b,c)
-#endif
+#define regclass_swash(a,b,c,d,e) Perl_regclass_swash(aTHX_ a,b,c,d,e)
+#define regdump(a) Perl_regdump(aTHX_ a)
+#define regdump(a) Perl_regdump(aTHX_ a)
+#define regexec_flags(a,b,c,d,e,f,g,h) Perl_regexec_flags(aTHX_ a,b,c,d,e,f,g,h)
+#define regfree_internal(a) Perl_regfree_internal(aTHX_ a)
+#define reginitcolors() Perl_reginitcolors(aTHX)
+#define regnext(a) Perl_regnext(aTHX_ a)
#define repeatcpy Perl_repeatcpy
+#define require_pv(a) Perl_require_pv(aTHX_ a)
#define rninstr Perl_rninstr
#define rsignal(a,b) Perl_rsignal(aTHX_ a,b)
-#ifdef PERL_CORE
-#define rsignal_restore(a,b) Perl_rsignal_restore(aTHX_ a,b)
-#define rsignal_save(a,b,c) Perl_rsignal_save(aTHX_ a,b,c)
-#endif
#define rsignal_state(a) Perl_rsignal_state(aTHX_ a)
-#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define rxres_free(a) S_rxres_free(aTHX_ a)
-#define rxres_restore(a,b) S_rxres_restore(aTHX_ a,b)
-#endif
-#endif
-#ifdef PERL_CORE
-#define rxres_save(a,b) Perl_rxres_save(aTHX_ a,b)
-#endif
-#if !defined(HAS_RENAME)
-#ifdef PERL_CORE
-#define same_dirent(a,b) Perl_same_dirent(aTHX_ a,b)
-#endif
-#endif
-#define savepv(a) Perl_savepv(aTHX_ a)
-#define savepvn(a,b) Perl_savepvn(aTHX_ a,b)
-#define savesharedpv(a) Perl_savesharedpv(aTHX_ a)
-#define savesharedpvn(a,b) Perl_savesharedpvn(aTHX_ a,b)
-#define savesvpv(a) Perl_savesvpv(aTHX_ a)
-#define savestack_grow() Perl_savestack_grow(aTHX)
-#define savestack_grow_cnt(a) Perl_savestack_grow_cnt(aTHX_ a)
+#define runops_debug() Perl_runops_debug(aTHX)
+#define runops_standard() Perl_runops_standard(aTHX)
+#define rv2cv_op_cv(a,b) Perl_rv2cv_op_cv(aTHX_ a,b)
+#define safesyscalloc Perl_safesyscalloc
+#define safesysfree Perl_safesysfree
+#define safesysmalloc Perl_safesysmalloc
+#define safesysrealloc Perl_safesysrealloc
+#define save_I16(a) Perl_save_I16(aTHX_ a)
+#define save_I32(a) Perl_save_I32(aTHX_ a)
+#define save_I8(a) Perl_save_I8(aTHX_ a)
+#define save_adelete(a,b) Perl_save_adelete(aTHX_ a,b)
#define save_aelem_flags(a,b,c,d) Perl_save_aelem_flags(aTHX_ a,b,c,d)
#define save_alloc(a,b) Perl_save_alloc(aTHX_ a,b)
#define save_aptr(a) Perl_save_aptr(aTHX_ a)
@@ -3232,152 +450,107 @@
#define save_bool(a) Perl_save_bool(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_hdelete(a,b) Perl_save_hdelete(aTHX_ a,b)
-#define save_adelete(a,b) Perl_save_adelete(aTHX_ a,b)
#define save_destructor(a,b) Perl_save_destructor(aTHX_ a,b)
#define save_destructor_x(a,b) Perl_save_destructor_x(aTHX_ a,b)
-#ifdef PERL_CORE
-#endif
-#define save_generic_svref(a) Perl_save_generic_svref(aTHX_ a)
#define save_generic_pvref(a) Perl_save_generic_pvref(aTHX_ a)
-#define save_shared_pvref(a) Perl_save_shared_pvref(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)
-#ifdef PERL_CORE
-#define save_hints() Perl_save_hints(aTHX)
-#endif
+#define save_hdelete(a,b) Perl_save_hdelete(aTHX_ a,b)
#define save_helem_flags(a,b,c,d) Perl_save_helem_flags(aTHX_ a,b,c,d)
+#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_I8(a) Perl_save_I8(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)
-#ifdef PERL_CORE
-#endif
-#define save_scalar(a) Perl_save_scalar(aTHX_ a)
+#define save_padsv_and_mortalize(a) Perl_save_padsv_and_mortalize(aTHX_ a)
#define save_pptr(a) Perl_save_pptr(aTHX_ a)
-#define save_vptr(a) Perl_save_vptr(aTHX_ a)
+#define save_pushi32ptr(a,b,c) Perl_save_pushi32ptr(aTHX_ a,b,c)
+#define save_pushptr(a,b) Perl_save_pushptr(aTHX_ a,b)
+#define save_pushptrptr(a,b,c) Perl_save_pushptrptr(aTHX_ a,b,c)
#define save_re_context() Perl_save_re_context(aTHX)
-#define save_padsv_and_mortalize(a) Perl_save_padsv_and_mortalize(aTHX_ a)
+#define save_scalar(a) Perl_save_scalar(aTHX_ a)
+#define save_set_svflags(a,b,c) Perl_save_set_svflags(aTHX_ a,b,c)
+#define save_shared_pvref(a) Perl_save_shared_pvref(aTHX_ a)
#define save_sptr(a) Perl_save_sptr(aTHX_ a)
#define save_svref(a) Perl_save_svref(aTHX_ a)
-#define save_pushptr(a,b) Perl_save_pushptr(aTHX_ a,b)
-#ifdef PERL_CORE
-#define save_pushi32ptr(a,b,c) Perl_save_pushi32ptr(aTHX_ a,b,c)
-#define save_pushptrptr(a,b,c) Perl_save_pushptrptr(aTHX_ a,b,c)
-#endif
-#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define save_pushptri32ptr(a,b,c,d) S_save_pushptri32ptr(aTHX_ a,b,c,d)
-#endif
-#endif
-#ifdef PERL_CORE
-#define sawparens(a) Perl_sawparens(aTHX_ a)
-#define scalar(a) Perl_scalar(aTHX_ a)
-#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define scalarkids(a) S_scalarkids(aTHX_ a)
-#define scalarseq(a) S_scalarseq(aTHX_ a)
-#endif
-#endif
-#ifdef PERL_CORE
-#define scalarvoid(a) Perl_scalarvoid(aTHX_ a)
-#endif
+#define save_vptr(a) Perl_save_vptr(aTHX_ a)
+#define savepv(a) Perl_savepv(aTHX_ a)
+#define savepvn(a,b) Perl_savepvn(aTHX_ a,b)
+#define savesharedpv(a) Perl_savesharedpv(aTHX_ a)
+#define savesharedpvn(a,b) Perl_savesharedpvn(aTHX_ a,b)
+#define savesharedsvpv(a) Perl_savesharedsvpv(aTHX_ a)
+#define savestack_grow() Perl_savestack_grow(aTHX)
+#define savestack_grow_cnt(a) Perl_savestack_grow_cnt(aTHX_ a)
+#define savesvpv(a) Perl_savesvpv(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,b) Perl_scan_num(aTHX_ a,b)
#define scan_oct(a,b,c) Perl_scan_oct(aTHX_ a,b,c)
-#ifdef PERL_CORE
-#define scope(a) Perl_scope(aTHX_ a)
-#endif
+#define scan_version(a,b,c) Perl_scan_version(aTHX_ a,b,c)
+#define scan_vstring(a,b,c) Perl_scan_vstring(aTHX_ a,b,c)
#define screaminstr(a,b,c,d,e,f) Perl_screaminstr(aTHX_ a,b,c,d,e,f)
+#define seed() Perl_seed(aTHX)
+#define set_context Perl_set_context
+#define set_numeric_local() Perl_set_numeric_local(aTHX)
+#define set_numeric_radix() Perl_set_numeric_radix(aTHX)
+#define set_numeric_standard() Perl_set_numeric_standard(aTHX)
#define setdefout(a) Perl_setdefout(aTHX_ a)
#define share_hek(a,b,c) Perl_share_hek(aTHX_ a,b,c)
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-#ifdef PERL_CORE
-#define sighandler Perl_sighandler
-#endif
-#define csighandler Perl_csighandler
-#else
-#ifdef PERL_CORE
-#define sighandler Perl_sighandler
-#endif
-#define csighandler Perl_csighandler
-#endif
+#define sortsv(a,b,c) Perl_sortsv(aTHX_ a,b,c)
+#define sortsv_flags(a,b,c,d) Perl_sortsv_flags(aTHX_ a,b,c,d)
#define stack_grow(a,b,c) Perl_stack_grow(aTHX_ a,b,c)
#define start_subparse(a,b) Perl_start_subparse(aTHX_ a,b)
-#ifdef PERL_CORE
-#define sub_crush_depth(a) Perl_sub_crush_depth(aTHX_ a)
-#endif
-#define sv_2bool(a) Perl_sv_2bool(aTHX_ a)
+#define stashpv_hvname_match(a,b) Perl_stashpv_hvname_match(aTHX_ a,b)
+#define str_to_version(a) Perl_str_to_version(aTHX_ a)
+#define sv_2bool_flags(a,b) Perl_sv_2bool_flags(aTHX_ a,b)
#define sv_2cv(a,b,c,d) Perl_sv_2cv(aTHX_ a,b,c,d)
#define sv_2io(a) Perl_sv_2io(aTHX_ a)
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define glob_2number(a) S_glob_2number(aTHX_ a)
-#endif
-#endif
#define sv_2iv_flags(a,b) Perl_sv_2iv_flags(aTHX_ a,b)
#define sv_2mortal(a) Perl_sv_2mortal(aTHX_ a)
-#define sv_2nv(a) Perl_sv_2nv(aTHX_ a)
-#ifdef PERL_CORE
-#define sv_2num(a) Perl_sv_2num(aTHX_ a)
-#endif
+#define sv_2nv_flags(a,b) Perl_sv_2nv_flags(aTHX_ a,b)
#define sv_2pv_flags(a,b,c) Perl_sv_2pv_flags(aTHX_ a,b,c)
-#define sv_2pvutf8(a,b) Perl_sv_2pvutf8(aTHX_ a,b)
#define sv_2pvbyte(a,b) Perl_sv_2pvbyte(aTHX_ a,b)
-#define sv_pvn_nomg(a,b) Perl_sv_pvn_nomg(aTHX_ a,b)
+#define sv_2pvutf8(a,b) Perl_sv_2pvutf8(aTHX_ a,b)
#define sv_2uv_flags(a,b) Perl_sv_2uv_flags(aTHX_ a,b)
-#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_pvutf8n(a,b) Perl_sv_pvutf8n(aTHX_ a,b)
-#define sv_pvbyten(a,b) Perl_sv_pvbyten(aTHX_ a,b)
-#define sv_true(a) Perl_sv_true(aTHX_ a)
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define sv_add_arena(a,b,c) S_sv_add_arena(aTHX_ a,b,c)
-#endif
-#endif
#define sv_backoff(a) Perl_sv_backoff(aTHX_ a)
#define sv_bless(a,b) Perl_sv_bless(aTHX_ a,b)
-#define sv_vcatpvf(a,b,c) Perl_sv_vcatpvf(aTHX_ a,b,c)
+#define sv_cat_decode(a,b,c,d,e,f) Perl_sv_cat_decode(aTHX_ a,b,c,d,e,f)
#define sv_catpv(a,b) Perl_sv_catpv(aTHX_ a,b)
-#define sv_chop(a,b) Perl_sv_chop(aTHX_ a,b)
-#ifdef PERL_CORE
-#define sv_clean_all() Perl_sv_clean_all(aTHX)
-#define sv_clean_objs() Perl_sv_clean_objs(aTHX)
+#define sv_catpv_flags(a,b,c) Perl_sv_catpv_flags(aTHX_ a,b,c)
+#define sv_catpv_mg(a,b) Perl_sv_catpv_mg(aTHX_ a,b)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define sv_catpvf Perl_sv_catpvf
+#define sv_catpvf_mg Perl_sv_catpvf_mg
#endif
+#define sv_catpvn_flags(a,b,c,d) Perl_sv_catpvn_flags(aTHX_ a,b,c,d)
+#define sv_catsv_flags(a,b,c) Perl_sv_catsv_flags(aTHX_ a,b,c)
+#define sv_chop(a,b) Perl_sv_chop(aTHX_ a,b)
#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_cmp_flags(a,b,c) Perl_sv_cmp_flags(aTHX_ a,b,c)
+#define sv_cmp_locale_flags(a,b,c) Perl_sv_cmp_locale_flags(aTHX_ a,b,c)
#define sv_compile_2op(a,b,c,d) Perl_sv_compile_2op(aTHX_ a,b,c,d)
-#define getcwd_sv(a) Perl_getcwd_sv(aTHX_ a)
+#define sv_copypv(a,b) Perl_sv_copypv(aTHX_ a,b)
#define sv_dec(a) Perl_sv_dec(aTHX_ a)
-#define sv_dump(a) Perl_sv_dump(aTHX_ a)
+#define sv_dec_nomg(a) Perl_sv_dec_nomg(aTHX_ a)
#define sv_derived_from(a,b) Perl_sv_derived_from(aTHX_ a,b)
+#define sv_destroyable(a) Perl_sv_destroyable(aTHX_ a)
#define sv_does(a,b) Perl_sv_does(aTHX_ a,b)
-#define sv_eq(a,b) Perl_sv_eq(aTHX_ a,b)
+#define sv_dump(a) Perl_sv_dump(aTHX_ a)
+#define sv_eq_flags(a,b,c) Perl_sv_eq_flags(aTHX_ a,b,c)
+#define sv_force_normal_flags(a,b) Perl_sv_force_normal_flags(aTHX_ a,b)
#define sv_free(a) Perl_sv_free(aTHX_ a)
-#ifdef PERL_CORE
-#define sv_free_arenas() Perl_sv_free_arenas(aTHX)
-#endif
#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_inc_nomg(a) Perl_sv_inc_nomg(aTHX_ a)
#define sv_insert_flags(a,b,c,d,e,f) Perl_sv_insert_flags(aTHX_ a,b,c,d,e,f)
#define sv_isa(a,b) Perl_sv_isa(aTHX_ a,b)
#define sv_isobject(a) Perl_sv_isobject(aTHX_ a)
+#define sv_iv(a) Perl_sv_iv(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)
@@ -3385,283 +558,399 @@
#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_nosharing(a) Perl_sv_nosharing(aTHX_ a)
+#define sv_nv(a) Perl_sv_nv(aTHX_ a)
#define sv_peek(a) Perl_sv_peek(aTHX_ a)
+#define sv_pos_b2u(a,b) Perl_sv_pos_b2u(aTHX_ a,b)
#define sv_pos_u2b(a,b,c) Perl_sv_pos_u2b(aTHX_ a,b,c)
#define sv_pos_u2b_flags(a,b,c,d) Perl_sv_pos_u2b_flags(aTHX_ a,b,c,d)
-#define sv_pos_b2u(a,b) Perl_sv_pos_b2u(aTHX_ a,b)
-#define sv_pvutf8n_force(a,b) Perl_sv_pvutf8n_force(aTHX_ a,b)
+#define sv_pvbyten(a,b) Perl_sv_pvbyten(aTHX_ a,b)
#define sv_pvbyten_force(a,b) Perl_sv_pvbyten_force(aTHX_ a,b)
+#define sv_pvn(a,b) Perl_sv_pvn(aTHX_ a,b)
+#define sv_pvn_force_flags(a,b,c) Perl_sv_pvn_force_flags(aTHX_ a,b,c)
+#define sv_pvn_nomg(a,b) Perl_sv_pvn_nomg(aTHX_ a,b)
+#define sv_pvutf8n(a,b) Perl_sv_pvutf8n(aTHX_ a,b)
+#define sv_pvutf8n_force(a,b) Perl_sv_pvutf8n_force(aTHX_ a,b)
#define sv_recode_to_utf8(a,b) Perl_sv_recode_to_utf8(aTHX_ a,b)
-#define sv_cat_decode(a,b,c,d,e,f) Perl_sv_cat_decode(aTHX_ a,b,c,d,e,f)
#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_vsetpvf(a,b,c) Perl_sv_vsetpvf(aTHX_ a,b,c)
+#define sv_rvweaken(a) Perl_sv_rvweaken(aTHX_ a)
#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_setiv_mg(a,b) Perl_sv_setiv_mg(aTHX_ a,b)
#define sv_setnv(a,b) Perl_sv_setnv(aTHX_ a,b)
+#define sv_setnv_mg(a,b) Perl_sv_setnv_mg(aTHX_ a,b)
+#define sv_setpv(a,b) Perl_sv_setpv(aTHX_ a,b)
+#define sv_setpv_mg(a,b) Perl_sv_setpv_mg(aTHX_ a,b)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define sv_setpvf Perl_sv_setpvf
+#define sv_setpvf_mg Perl_sv_setpvf_mg
+#endif
+#define sv_setpviv(a,b) Perl_sv_setpviv(aTHX_ a,b)
+#define sv_setpviv_mg(a,b) Perl_sv_setpviv_mg(aTHX_ a,b)
+#define sv_setpvn(a,b,c) Perl_sv_setpvn(aTHX_ a,b,c)
+#define sv_setpvn_mg(a,b,c) Perl_sv_setpvn_mg(aTHX_ a,b,c)
#define sv_setref_iv(a,b,c) Perl_sv_setref_iv(aTHX_ a,b,c)
-#define sv_setref_uv(a,b,c) Perl_sv_setref_uv(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_setref_uv(a,b,c) Perl_sv_setref_uv(aTHX_ a,b,c)
+#define sv_setsv_flags(a,b,c) Perl_sv_setsv_flags(aTHX_ a,b,c)
+#define sv_setsv_mg(a,b) Perl_sv_setsv_mg(aTHX_ a,b)
+#define sv_setuv(a,b) Perl_sv_setuv(aTHX_ a,b)
+#define sv_setuv_mg(a,b) Perl_sv_setuv_mg(aTHX_ a,b)
#define sv_tainted(a) Perl_sv_tainted(aTHX_ a)
+#define sv_true(a) Perl_sv_true(aTHX_ a)
+#define sv_uni_display(a,b,c,d) Perl_sv_uni_display(aTHX_ a,b,c,d)
#define sv_unmagic(a,b) Perl_sv_unmagic(aTHX_ a,b)
+#define sv_unmagicext(a,b,c) Perl_sv_unmagicext(aTHX_ a,b,c)
#define sv_unref_flags(a,b) Perl_sv_unref_flags(aTHX_ a,b)
#define sv_untaint(a) Perl_sv_untaint(aTHX_ a)
#define sv_upgrade(a,b) Perl_sv_upgrade(aTHX_ a,b)
#define sv_usepvn_flags(a,b,c,d) Perl_sv_usepvn_flags(aTHX_ a,b,c,d)
+#define sv_utf8_decode(a) Perl_sv_utf8_decode(aTHX_ a)
+#define sv_utf8_downgrade(a,b) Perl_sv_utf8_downgrade(aTHX_ a,b)
+#define sv_utf8_encode(a) Perl_sv_utf8_encode(aTHX_ a)
+#define sv_utf8_upgrade_flags_grow(a,b,c) Perl_sv_utf8_upgrade_flags_grow(aTHX_ a,b,c)
+#define sv_uv(a) Perl_sv_uv(aTHX_ a)
+#define sv_vcatpvf(a,b,c) Perl_sv_vcatpvf(aTHX_ a,b,c)
+#define sv_vcatpvf_mg(a,b,c) Perl_sv_vcatpvf_mg(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_vsetpvf(a,b,c) Perl_sv_vsetpvf(aTHX_ a,b,c)
+#define sv_vsetpvf_mg(a,b,c) Perl_sv_vsetpvf_mg(aTHX_ a,b,c)
#define sv_vsetpvfn(a,b,c,d,e,f,g) Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g)
-#define str_to_version(a) Perl_str_to_version(aTHX_ a)
-#define swash_init(a,b,c,d,e) Perl_swash_init(aTHX_ a,b,c,d,e)
#define swash_fetch(a,b,c) Perl_swash_fetch(aTHX_ a,b,c)
+#define swash_init(a,b,c,d,e) Perl_swash_init(aTHX_ a,b,c,d,e)
#define taint_env() Perl_taint_env(aTHX)
#define taint_proper(a,b) Perl_taint_proper(aTHX_ a,b)
+#define tmps_grow(a) Perl_tmps_grow(aTHX_ a)
+#define to_uni_lower(a,b,c) Perl_to_uni_lower(aTHX_ a,b,c)
+#define to_uni_lower_lc(a) Perl_to_uni_lower_lc(aTHX_ a)
+#define to_uni_title(a,b,c) Perl_to_uni_title(aTHX_ a,b,c)
+#define to_uni_title_lc(a) Perl_to_uni_title_lc(aTHX_ a)
+#define to_uni_upper(a,b,c) Perl_to_uni_upper(aTHX_ a,b,c)
+#define to_uni_upper_lc(a) Perl_to_uni_upper_lc(aTHX_ a)
#define to_utf8_case(a,b,c,d,e,f) Perl_to_utf8_case(aTHX_ a,b,c,d,e,f)
#define to_utf8_lower(a,b,c) Perl_to_utf8_lower(aTHX_ a,b,c)
-#define to_utf8_upper(a,b,c) Perl_to_utf8_upper(aTHX_ a,b,c)
#define to_utf8_title(a,b,c) Perl_to_utf8_title(aTHX_ a,b,c)
-#define to_utf8_fold(a,b,c) Perl_to_utf8_fold(aTHX_ a,b,c)
-#if defined(UNLINK_ALL_VERSIONS)
-#define unlnk(a) Perl_unlnk(aTHX_ a)
-#endif
+#define to_utf8_upper(a,b,c) Perl_to_utf8_upper(aTHX_ a,b,c)
#define unpack_str(a,b,c,d,e,f,g,h) Perl_unpack_str(aTHX_ a,b,c,d,e,f,g,h)
#define unpackstring(a,b,c,d,e) Perl_unpackstring(aTHX_ a,b,c,d,e)
#define unsharepvn(a,b,c) Perl_unsharepvn(aTHX_ a,b,c)
-#ifdef PERL_CORE
-#define unshare_hek(a) Perl_unshare_hek(aTHX_ a)
-#endif
-#ifdef PERL_MAD
-#ifdef PERL_CORE
-#define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e)
-#endif
-#else
-#ifdef PERL_CORE
-#define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e)
-#endif
-#endif
+#define upg_version(a,b) Perl_upg_version(aTHX_ a,b)
#define utf16_to_utf8(a,b,c,d) Perl_utf16_to_utf8(aTHX_ a,b,c,d)
#define utf16_to_utf8_reversed(a,b,c,d) Perl_utf16_to_utf8_reversed(aTHX_ a,b,c,d)
-#define utf8_length(a,b) Perl_utf8_length(aTHX_ a,b)
#define utf8_distance(a,b) Perl_utf8_distance(aTHX_ a,b)
#define utf8_hop(a,b) Perl_utf8_hop(aTHX_ a,b)
+#define utf8_length(a,b) Perl_utf8_length(aTHX_ a,b)
#define utf8_to_bytes(a,b) Perl_utf8_to_bytes(aTHX_ a,b)
-#define bytes_from_utf8(a,b,c) Perl_bytes_from_utf8(aTHX_ a,b,c)
-#define bytes_to_utf8(a,b) Perl_bytes_to_utf8(aTHX_ a,b)
#define utf8_to_uvchr(a,b) Perl_utf8_to_uvchr(aTHX_ a,b)
#define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b)
-#ifdef EBCDIC
-#define utf8n_to_uvchr(a,b,c,d) Perl_utf8n_to_uvchr(aTHX_ a,b,c,d)
-#else
-#endif
#define utf8n_to_uvuni(a,b,c,d) Perl_utf8n_to_uvuni(aTHX_ a,b,c,d)
-#ifdef EBCDIC
-#define uvchr_to_utf8(a,b) Perl_uvchr_to_utf8(aTHX_ a,b)
-#else
-#endif
#define uvchr_to_utf8_flags(a,b,c) Perl_uvchr_to_utf8_flags(aTHX_ a,b,c)
#define uvuni_to_utf8_flags(a,b,c) Perl_uvuni_to_utf8_flags(aTHX_ a,b,c)
-#define pv_uni_display(a,b,c,d,e) Perl_pv_uni_display(aTHX_ a,b,c,d,e)
-#define sv_uni_display(a,b,c,d) Perl_sv_uni_display(aTHX_ a,b,c,d)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define vivify_defelem(a) Perl_vivify_defelem(aTHX_ a)
+#define vcmp(a,b) Perl_vcmp(aTHX_ a,b)
+#define vcroak(a,b) Perl_vcroak(aTHX_ a,b)
+#define vdeb(a,b) Perl_vdeb(aTHX_ a,b)
+#define vform(a,b) Perl_vform(aTHX_ a,b)
+#define vload_module(a,b,c,d) Perl_vload_module(aTHX_ a,b,c,d)
+#define vmess(a,b) Perl_vmess(aTHX_ a,b)
+#define vnewSVpvf(a,b) Perl_vnewSVpvf(aTHX_ a,b)
+#define vnormal(a) Perl_vnormal(aTHX_ a)
+#define vnumify(a) Perl_vnumify(aTHX_ a)
+#define vstringify(a) Perl_vstringify(aTHX_ a)
+#define vverify(a) Perl_vverify(aTHX_ a)
+#define vwarn(a,b) Perl_vwarn(aTHX_ a,b)
+#define vwarner(a,b,c) Perl_vwarner(aTHX_ a,b,c)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define warn Perl_warn
#endif
-#ifdef PERL_CORE
-#define vivify_ref(a,b) Perl_vivify_ref(aTHX_ a,b)
-#define wait4pid(a,b,c) Perl_wait4pid(aTHX_ a,b,c)
-#define parse_unicode_opts(a) Perl_parse_unicode_opts(aTHX_ a)
+#define warn_sv(a) Perl_warn_sv(aTHX_ a)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define warner Perl_warner
#endif
-#define seed() Perl_seed(aTHX)
-#ifdef PERL_CORE
-#define get_hash_seed() Perl_get_hash_seed(aTHX)
-#define report_evil_fh(a,b,c) Perl_report_evil_fh(aTHX_ a,b,c)
+#define whichsig(a) Perl_whichsig(aTHX_ a)
+#if !(defined(HAS_SIGACTION) && defined(SA_SIGINFO))
+#define csighandler Perl_csighandler
#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define report_uninit(a) Perl_report_uninit(aTHX_ a)
+#if !(defined(NO_MATHOMS))
+#define sv_nounlocking(a) Perl_sv_nounlocking(aTHX_ a)
#endif
-#define vwarn(a,b) Perl_vwarn(aTHX_ a,b)
-#define vwarner(a,b,c) Perl_vwarner(aTHX_ a,b,c)
-#ifdef PERL_CORE
-#define watch(a) Perl_watch(aTHX_ a)
+#if !(defined(PERL_MAD))
+#define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c)
+#define newMYSUB(a,b,c,d,e) Perl_newMYSUB(aTHX_ a,b,c,d,e)
#endif
-#define whichsig(a) Perl_whichsig(aTHX_ a)
-#ifdef PERL_CORE
-#define write_to_stderr(a) Perl_write_to_stderr(aTHX_ a)
-#define yyerror(a) Perl_yyerror(aTHX_ a)
+#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
+#define my_bzero Perl_my_bzero
#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define yylex() Perl_yylex(aTHX)
+#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
+#define my_memcmp Perl_my_memcmp
#endif
-#ifdef PERL_CORE
-#define yyparse() Perl_yyparse(aTHX)
-#define parser_free(a) Perl_parser_free(aTHX_ a)
+#if !defined(HAS_MEMSET)
+#define my_memset Perl_my_memset
#endif
-#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define yywarn(a) S_yywarn(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(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
+#define my_bcopy Perl_my_bcopy
+#endif
+#if defined(DEBUGGING)
+#define pad_sv(a) Perl_pad_sv(aTHX_ a)
+#endif
+#if defined(DUMP_FDS)
+#define dump_fds(a) Perl_dump_fds(aTHX_ a)
+#endif
+#if defined(EBCDIC)
+#define utf8n_to_uvchr(a,b,c,d) Perl_utf8n_to_uvchr(aTHX_ a,b,c,d)
+#define uvchr_to_utf8(a,b) Perl_uvchr_to_utf8(aTHX_ a,b)
+#endif
+#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#define csighandler Perl_csighandler
#endif
+#if defined(HAVE_INTERP_INTERN)
+#define sys_intern_clear() Perl_sys_intern_clear(aTHX)
+#define sys_intern_init() Perl_sys_intern_init(aTHX)
+# if defined(USE_ITHREADS)
+#define sys_intern_dup(a,b) Perl_sys_intern_dup(aTHX_ a,b)
+# endif
#endif
#if defined(MYMALLOC)
#define dump_mstats(a) Perl_dump_mstats(aTHX_ a)
#define get_mstats(a,b,c) Perl_get_mstats(aTHX_ a,b,c)
#endif
-#define safesysmalloc Perl_safesysmalloc
-#define safesyscalloc Perl_safesyscalloc
-#define safesysrealloc Perl_safesysrealloc
-#define safesysfree Perl_safesysfree
+#if defined(MYSWAP)
+#define my_htonl(a) Perl_my_htonl(aTHX_ a)
+#define my_ntohl(a) Perl_my_ntohl(aTHX_ a)
+#define my_swap(a) Perl_my_swap(aTHX_ a)
+#endif
#if defined(PERL_GLOBAL_STRUCT)
#define GetVars() Perl_GetVars(aTHX)
-#define init_global_struct() Perl_init_global_struct(aTHX)
#define free_global_struct(a) Perl_free_global_struct(aTHX_ a)
+#define init_global_struct() Perl_init_global_struct(aTHX)
#endif
-#define runops_standard() Perl_runops_standard(aTHX)
-#define runops_debug() Perl_runops_debug(aTHX)
-#define sv_vcatpvf_mg(a,b,c) Perl_sv_vcatpvf_mg(aTHX_ a,b,c)
-#define sv_catpv_mg(a,b) Perl_sv_catpv_mg(aTHX_ a,b)
-#define sv_vsetpvf_mg(a,b,c) Perl_sv_vsetpvf_mg(aTHX_ a,b,c)
-#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 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 pv_escape(a,b,c,d,e,f) Perl_pv_escape(aTHX_ a,b,c,d,e,f)
-#define pv_pretty(a,b,c,d,e,f,g) Perl_pv_pretty(aTHX_ a,b,c,d,e,f,g)
-#define dump_vindent(a,b,c,d) Perl_dump_vindent(aTHX_ a,b,c,d)
-#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_utf8_downgrade(a,b) Perl_sv_utf8_downgrade(aTHX_ a,b)
-#define sv_utf8_encode(a) Perl_sv_utf8_encode(aTHX_ a)
-#define sv_utf8_decode(a) Perl_sv_utf8_decode(aTHX_ a)
-#define sv_force_normal_flags(a,b) Perl_sv_force_normal_flags(aTHX_ a,b)
-#define tmps_grow(a) Perl_tmps_grow(aTHX_ a)
-#define sv_rvweaken(a) Perl_sv_rvweaken(aTHX_ a)
-#ifdef PERL_CORE
-#define magic_killbackrefs(a,b) Perl_magic_killbackrefs(aTHX_ a,b)
+#if defined(PERL_IMPLICIT_CONTEXT)
+#define croak_nocontext Perl_croak_nocontext
+#define deb_nocontext Perl_deb_nocontext
+#define die_nocontext Perl_die_nocontext
+#define form_nocontext Perl_form_nocontext
+#define fprintf_nocontext Perl_fprintf_nocontext
+#define load_module_nocontext Perl_load_module_nocontext
+#define mess_nocontext Perl_mess_nocontext
+#define newSVpvf_nocontext Perl_newSVpvf_nocontext
+#define printf_nocontext Perl_printf_nocontext
+#define sv_catpvf_mg_nocontext Perl_sv_catpvf_mg_nocontext
+#define sv_catpvf_nocontext Perl_sv_catpvf_nocontext
+#define sv_setpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext
+#define sv_setpvf_nocontext Perl_sv_setpvf_nocontext
+#define warn_nocontext Perl_warn_nocontext
+#define warner_nocontext Perl_warner_nocontext
#endif
-#define newANONATTRSUB(a,b,c,d) Perl_newANONATTRSUB(aTHX_ a,b,c,d)
-#define newATTRSUB(a,b,c,d,e) Perl_newATTRSUB(aTHX_ a,b,c,d,e)
-#ifdef PERL_MAD
-#define newMYSUB(a,b,c,d,e) Perl_newMYSUB(aTHX_ a,b,c,d,e)
-#else
+#if defined(PERL_MAD)
+#define newFORM(a,b,c) Perl_newFORM(aTHX_ a,b,c)
#define newMYSUB(a,b,c,d,e) Perl_newMYSUB(aTHX_ a,b,c,d,e)
#endif
-#ifdef PERL_CORE
-#define my_attrs(a,b) Perl_my_attrs(aTHX_ a,b)
+#if defined(PL_OP_SLAB_ALLOC)
+#define Slab_Alloc(a) Perl_Slab_Alloc(aTHX_ a)
+#define Slab_Free(a) Perl_Slab_Free(aTHX_ a)
+#endif
+#if defined(UNLINK_ALL_VERSIONS)
+#define unlnk(a) Perl_unlnk(aTHX_ a)
#endif
#if defined(USE_ITHREADS)
-#define cx_dup(a,b,c,d) Perl_cx_dup(aTHX_ a,b,c,d)
-#define si_dup(a,b) Perl_si_dup(aTHX_ a,b)
-#define ss_dup(a,b) Perl_ss_dup(aTHX_ a,b)
#define any_dup(a,b) Perl_any_dup(aTHX_ a,b)
-#define he_dup(a,b,c) Perl_he_dup(aTHX_ a,b,c)
-#define hek_dup(a,b) Perl_hek_dup(aTHX_ a,b)
-#define re_dup_guts(a,b,c) Perl_re_dup_guts(aTHX_ a,b,c)
+#define cx_dup(a,b,c,d) Perl_cx_dup(aTHX_ a,b,c,d)
+#define dirp_dup(a,b) Perl_dirp_dup(aTHX_ a,b)
#define fp_dup(a,b,c) Perl_fp_dup(aTHX_ a,b,c)
-#define dirp_dup(a) Perl_dirp_dup(aTHX_ a)
#define gp_dup(a,b) Perl_gp_dup(aTHX_ a,b)
+#define he_dup(a,b,c) Perl_he_dup(aTHX_ a,b,c)
+#define hek_dup(a,b) Perl_hek_dup(aTHX_ a,b)
#define mg_dup(a,b) Perl_mg_dup(aTHX_ a,b)
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define sv_dup_inc_multiple(a,b,c,d) S_sv_dup_inc_multiple(aTHX_ a,b,c,d)
-#endif
-#endif
-#define sv_dup(a,b) Perl_sv_dup(aTHX_ a,b)
-#define rvpv_dup(a,b,c) Perl_rvpv_dup(aTHX_ a,b,c)
+#define newPADOP(a,b,c) Perl_newPADOP(aTHX_ a,b,c)
#define parser_dup(a,b) Perl_parser_dup(aTHX_ a,b)
+#define re_dup_guts(a,b,c) Perl_re_dup_guts(aTHX_ a,b,c)
+#define regdupe_internal(a,b) Perl_regdupe_internal(aTHX_ a,b)
+#define rvpv_dup(a,b,c) Perl_rvpv_dup(aTHX_ a,b,c)
+#define si_dup(a,b) Perl_si_dup(aTHX_ a,b)
+#define ss_dup(a,b) Perl_ss_dup(aTHX_ a,b)
+#define sv_dup(a,b) Perl_sv_dup(aTHX_ a,b)
+#define sv_dup_inc(a,b) Perl_sv_dup_inc(aTHX_ a,b)
#endif
-#define ptr_table_new() Perl_ptr_table_new(aTHX)
-#define ptr_table_fetch(a,b) Perl_ptr_table_fetch(aTHX_ a,b)
-#define ptr_table_store(a,b,c) Perl_ptr_table_store(aTHX_ a,b,c)
-#define ptr_table_split(a) Perl_ptr_table_split(aTHX_ a)
-#define ptr_table_clear(a) Perl_ptr_table_clear(aTHX_ a)
-#define ptr_table_free(a) Perl_ptr_table_free(aTHX_ a)
-#if defined(USE_ITHREADS)
-# if defined(HAVE_INTERP_INTERN)
-#define sys_intern_dup(a,b) Perl_sys_intern_dup(aTHX_ a,b)
-# endif
-#endif
-#if defined(HAVE_INTERP_INTERN)
-#define sys_intern_clear() Perl_sys_intern_clear(aTHX)
-#define sys_intern_init() Perl_sys_intern_init(aTHX)
-#endif
-#define custom_op_name(a) Perl_custom_op_name(aTHX_ a)
-#define custom_op_desc(a) Perl_custom_op_desc(aTHX_ a)
-#define sv_nosharing(a) Perl_sv_nosharing(aTHX_ a)
-#define sv_destroyable(a) Perl_sv_destroyable(aTHX_ a)
-#ifdef NO_MATHOMS
-#else
-#define sv_nounlocking(a) Perl_sv_nounlocking(aTHX_ a)
-#endif
-#define nothreadhook() Perl_nothreadhook(aTHX)
-#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define do_trans_simple(a) S_do_trans_simple(aTHX_ a)
-#define do_trans_count(a) S_do_trans_count(aTHX_ a)
-#define do_trans_complex(a) S_do_trans_complex(aTHX_ a)
-#define do_trans_simple_utf8(a) S_do_trans_simple_utf8(aTHX_ a)
-#define do_trans_count_utf8(a) S_do_trans_count_utf8(aTHX_ a)
-#define do_trans_complex_utf8(a) S_do_trans_complex_utf8(aTHX_ a)
-#endif
-#endif
-#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define gv_init_sv(a,b) S_gv_init_sv(aTHX_ a,b)
-#define gv_get_super_pkg(a,b) S_gv_get_super_pkg(aTHX_ a,b)
-#define require_tie_mod(a,b,c,d,e) S_require_tie_mod(aTHX_ a,b,c,d,e)
-#endif
-#endif
-#ifdef PERL_CORE
+#if defined(USE_LOCALE_COLLATE)
+#define sv_collxfrm_flags(a,b,c) Perl_sv_collxfrm_flags(aTHX_ a,b,c)
#endif
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define hsplit(a) S_hsplit(aTHX_ a)
-#define hfreeentries(a) S_hfreeentries(aTHX_ a)
-#define anonymise_cv(a,b) S_anonymise_cv(aTHX_ a,b)
-#define new_he() S_new_he(aTHX)
-#define save_hek_flags S_save_hek_flags
-#define hv_magic_check S_hv_magic_check
-#define unshare_hek_or_pvn(a,b,c,d) S_unshare_hek_or_pvn(aTHX_ a,b,c,d)
-#define share_hek_flags(a,b,c,d) S_share_hek_flags(aTHX_ a,b,c,d)
-#define hv_notallowed(a,b,c,d) S_hv_notallowed(aTHX_ a,b,c,d)
-#define hv_auxinit S_hv_auxinit
-#define hv_delete_common(a,b,c,d,e,f,g) S_hv_delete_common(aTHX_ a,b,c,d,e,f,g)
-#define clear_placeholders(a,b) S_clear_placeholders(aTHX_ a,b)
-#define refcounted_he_value(a) S_refcounted_he_value(aTHX_ a)
+#if defined(USE_PERLIO) && !defined(USE_SFIO)
+#define PerlIO_clearerr(a) Perl_PerlIO_clearerr(aTHX_ a)
+#define PerlIO_close(a) Perl_PerlIO_close(aTHX_ a)
+#define PerlIO_eof(a) Perl_PerlIO_eof(aTHX_ a)
+#define PerlIO_error(a) Perl_PerlIO_error(aTHX_ a)
+#define PerlIO_fileno(a) Perl_PerlIO_fileno(aTHX_ a)
+#define PerlIO_fill(a) Perl_PerlIO_fill(aTHX_ a)
+#define PerlIO_flush(a) Perl_PerlIO_flush(aTHX_ a)
+#define PerlIO_get_base(a) Perl_PerlIO_get_base(aTHX_ a)
+#define PerlIO_get_bufsiz(a) Perl_PerlIO_get_bufsiz(aTHX_ a)
+#define PerlIO_get_cnt(a) Perl_PerlIO_get_cnt(aTHX_ a)
+#define PerlIO_get_ptr(a) Perl_PerlIO_get_ptr(aTHX_ a)
+#define PerlIO_read(a,b,c) Perl_PerlIO_read(aTHX_ a,b,c)
+#define PerlIO_seek(a,b,c) Perl_PerlIO_seek(aTHX_ a,b,c)
+#define PerlIO_set_cnt(a,b) Perl_PerlIO_set_cnt(aTHX_ a,b)
+#define PerlIO_set_ptrcnt(a,b,c) Perl_PerlIO_set_ptrcnt(aTHX_ a,b,c)
+#define PerlIO_setlinebuf(a) Perl_PerlIO_setlinebuf(aTHX_ a)
+#define PerlIO_stderr() Perl_PerlIO_stderr(aTHX)
+#define PerlIO_stdin() Perl_PerlIO_stdin(aTHX)
+#define PerlIO_stdout() Perl_PerlIO_stdout(aTHX)
+#define PerlIO_tell(a) Perl_PerlIO_tell(aTHX_ a)
+#define PerlIO_unread(a,b,c) Perl_PerlIO_unread(aTHX_ a,b,c)
+#define PerlIO_write(a,b,c) Perl_PerlIO_write(aTHX_ a,b,c)
#endif
+#if defined(USE_REENTRANT_API)
+#define reentrant_free() Perl_reentrant_free(aTHX)
+#define reentrant_init() Perl_reentrant_init(aTHX)
+#define reentrant_retry Perl_reentrant_retry
+#define reentrant_size() Perl_reentrant_size(aTHX)
#endif
-#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#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 restore_magic(a) S_restore_magic(aTHX_ a)
-#define unwind_handler_stack(a) S_unwind_handler_stack(aTHX_ a)
+#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS)
+#define do_aspawn(a,b,c) Perl_do_aspawn(aTHX_ a,b,c)
+#define do_spawn(a) Perl_do_spawn(aTHX_ a)
+#define do_spawn_nowait(a) Perl_do_spawn_nowait(aTHX_ a)
#endif
+#if defined(PERL_CORE) || defined(PERL_EXT)
+#define _append_range_to_invlist(a,b,c) Perl__append_range_to_invlist(aTHX_ a,b,c)
+#define _new_invlist(a) Perl__new_invlist(aTHX_ a)
+#define _swash_inversion_hash(a) Perl__swash_inversion_hash(aTHX_ a)
+#define _swash_to_invlist(a) Perl__swash_to_invlist(aTHX_ a)
+#define av_reify(a) Perl_av_reify(aTHX_ a)
+#define is_utf8_X_L(a) Perl_is_utf8_X_L(aTHX_ a)
+#define is_utf8_X_LV(a) Perl_is_utf8_X_LV(aTHX_ a)
+#define is_utf8_X_LVT(a) Perl_is_utf8_X_LVT(aTHX_ a)
+#define is_utf8_X_LV_LVT_V(a) Perl_is_utf8_X_LV_LVT_V(aTHX_ a)
+#define is_utf8_X_T(a) Perl_is_utf8_X_T(aTHX_ a)
+#define is_utf8_X_V(a) Perl_is_utf8_X_V(aTHX_ a)
+#define is_utf8_X_begin(a) Perl_is_utf8_X_begin(aTHX_ a)
+#define is_utf8_X_extend(a) Perl_is_utf8_X_extend(aTHX_ a)
+#define is_utf8_X_non_hangul(a) Perl_is_utf8_X_non_hangul(aTHX_ a)
+#define is_utf8_X_prepend(a) Perl_is_utf8_X_prepend(aTHX_ a)
+#define mod(a,b) Perl_mod(aTHX_ a,b)
+#define op_clear(a) Perl_op_clear(aTHX_ a)
+#define qerror(a) Perl_qerror(aTHX_ a)
+#define reg_named_buff(a,b,c,d) Perl_reg_named_buff(aTHX_ a,b,c,d)
+#define reg_named_buff_iter(a,b,c) Perl_reg_named_buff_iter(aTHX_ a,b,c)
+#define reg_numbered_buff_fetch(a,b,c) Perl_reg_numbered_buff_fetch(aTHX_ a,b,c)
+#define reg_numbered_buff_length(a,b,c) Perl_reg_numbered_buff_length(aTHX_ a,b,c)
+#define reg_numbered_buff_store(a,b,c) Perl_reg_numbered_buff_store(aTHX_ a,b,c)
+#define reg_qr_package(a) Perl_reg_qr_package(aTHX_ a)
+#define reg_temp_copy(a,b) Perl_reg_temp_copy(aTHX_ a,b)
+#define regprop(a,b,c) Perl_regprop(aTHX_ a,b,c)
+#define report_uninit(a) Perl_report_uninit(aTHX_ a)
+#define vivify_defelem(a) Perl_vivify_defelem(aTHX_ a)
+#define yylex() Perl_yylex(aTHX)
+# if defined(DEBUGGING)
+# if defined(PERL_IN_REGCOMP_C)
+#define dump_trie(a,b,c,d) S_dump_trie(aTHX_ a,b,c,d)
+#define dump_trie_interim_list(a,b,c,d,e) S_dump_trie_interim_list(aTHX_ a,b,c,d,e)
+#define dump_trie_interim_table(a,b,c,d,e) S_dump_trie_interim_table(aTHX_ a,b,c,d,e)
+#define dumpuntil(a,b,c,d,e,f,g,h) S_dumpuntil(aTHX_ a,b,c,d,e,f,g,h)
+#define put_byte(a,b) S_put_byte(aTHX_ a,b)
+#define regdump_extflags(a,b) S_regdump_extflags(aTHX_ a,b)
+#define regtail_study(a,b,c,d) S_regtail_study(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_IN_REGEXEC_C)
+#define debug_start_match(a,b,c,d,e) S_debug_start_match(aTHX_ a,b,c,d,e)
+#define dump_exec_pos(a,b,c,d,e,f) S_dump_exec_pos(aTHX_ a,b,c,d,e,f)
+# endif
+# endif
+# if defined(PERL_IN_DQUOTE_STATIC_C)
+#define grok_bslash_c(a,b,c) S_grok_bslash_c(aTHX_ a,b,c)
+#define grok_bslash_o(a,b,c,d,e) S_grok_bslash_o(aTHX_ a,b,c,d,e)
+#define regcurly(a) S_regcurly(aTHX_ a)
+# endif
+# if defined(PERL_IN_REGCOMP_C)
+#define add_alternate(a,b,c) S_add_alternate(aTHX_ a,b,c)
+#define add_cp_to_invlist(a,b) S_add_cp_to_invlist(aTHX_ a,b)
+#define add_data S_add_data
+#define add_range_to_invlist(a,b,c) S_add_range_to_invlist(aTHX_ a,b,c)
+#define checkposixcc(a) S_checkposixcc(aTHX_ a)
+#define cl_and S_cl_and
+#define cl_anything S_cl_anything
+#define cl_init S_cl_init
+#define cl_is_anything S_cl_is_anything
+#define cl_or S_cl_or
+#define invlist_array(a) S_invlist_array(aTHX_ a)
+#define invlist_destroy(a) S_invlist_destroy(aTHX_ a)
+#define invlist_extend(a,b) S_invlist_extend(aTHX_ a,b)
+#define invlist_intersection(a,b) S_invlist_intersection(aTHX_ a,b)
+#define invlist_len(a) S_invlist_len(aTHX_ a)
+#define invlist_max(a) S_invlist_max(aTHX_ a)
+#define invlist_set_len(a,b) S_invlist_set_len(aTHX_ a,b)
+#define invlist_set_max(a,b) S_invlist_set_max(aTHX_ a,b)
+#define invlist_trim(a) S_invlist_trim(aTHX_ a)
+#define invlist_union(a,b) S_invlist_union(aTHX_ a,b)
+#define join_exact(a,b,c,d,e,f) S_join_exact(aTHX_ a,b,c,d,e,f)
+#define make_trie(a,b,c,d,e,f,g,h) S_make_trie(aTHX_ a,b,c,d,e,f,g,h)
+#define make_trie_failtable(a,b,c,d) S_make_trie_failtable(aTHX_ a,b,c,d)
+#define nextchar(a) S_nextchar(aTHX_ a)
+#define reg(a,b,c,d) S_reg(aTHX_ a,b,c,d)
+#define reg_namedseq(a,b,c,d) S_reg_namedseq(aTHX_ a,b,c,d)
+#define reg_node(a,b) S_reg_node(aTHX_ a,b)
+#define reg_recode(a,b) S_reg_recode(aTHX_ a,b)
+#define reg_scan_name(a,b) S_reg_scan_name(aTHX_ a,b)
+#define reg_skipcomment(a) S_reg_skipcomment(aTHX_ a)
+#define reganode(a,b,c) S_reganode(aTHX_ a,b,c)
+#define regatom(a,b,c) S_regatom(aTHX_ a,b,c)
+#define regbranch(a,b,c,d) S_regbranch(aTHX_ a,b,c,d)
+#define regclass(a,b) S_regclass(aTHX_ a,b)
+#define reginsert(a,b,c,d) S_reginsert(aTHX_ a,b,c,d)
+#define regpiece(a,b,c) S_regpiece(aTHX_ a,b,c)
+#define regpposixcc(a,b) S_regpposixcc(aTHX_ a,b)
+#define regtail(a,b,c,d) S_regtail(aTHX_ a,b,c,d)
+#define reguni(a,b,c) S_reguni(aTHX_ a,b,c)
+#define regwhite S_regwhite
+#define scan_commit(a,b,c,d) S_scan_commit(aTHX_ a,b,c,d)
+#define set_regclass_bit(a,b,c,d,e) S_set_regclass_bit(aTHX_ a,b,c,d,e)
+#define set_regclass_bit_fold(a,b,c,d,e) S_set_regclass_bit_fold(aTHX_ a,b,c,d,e)
+#define study_chunk(a,b,c,d,e,f,g,h,i,j,k) S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
+# endif
+# if defined(PERL_IN_REGEXEC_C)
+#define find_byclass(a,b,c,d,e) S_find_byclass(aTHX_ a,b,c,d,e)
+#define reg_check_named_buff_matched(a,b) S_reg_check_named_buff_matched(aTHX_ a,b)
+#define regcppop(a) S_regcppop(aTHX_ a)
+#define regcppush(a) S_regcppush(aTHX_ a)
+#define reghop3 S_reghop3
+#define reghopmaybe3 S_reghopmaybe3
+#define reginclass(a,b,c,d,e) S_reginclass(aTHX_ a,b,c,d,e)
+#define regmatch(a,b) S_regmatch(aTHX_ a,b)
+#define regrepeat(a,b,c,d) S_regrepeat(aTHX_ a,b,c,d)
+#define regtry(a,b) S_regtry(aTHX_ a,b)
+#define to_byte_substr(a) S_to_byte_substr(aTHX_ a)
+#define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a)
+# if defined(XXX_dmq)
+#define reghop4 S_reghop4
+# endif
+# endif
+# if defined(PERL_OLD_COPY_ON_WRITE)
+#define sv_setsv_cow(a,b) Perl_sv_setsv_cow(aTHX_ a,b)
+# endif
#endif
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
#ifdef PERL_CORE
+#define allocmy(a,b,c) Perl_allocmy(aTHX_ a,b,c)
+#define apply(a,b,c) Perl_apply(aTHX_ a,b,c)
+#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_start(a) Perl_block_start(aTHX_ a)
+#define boot_core_PerlIO() Perl_boot_core_PerlIO(aTHX)
+#define boot_core_UNIVERSAL() Perl_boot_core_UNIVERSAL(aTHX)
+#define boot_core_mro() Perl_boot_core_mro(aTHX)
+#define cando(a,b,c) Perl_cando(aTHX_ a,b,c)
+#define check_utf8_print(a,b) Perl_check_utf8_print(aTHX_ a,b)
#define ck_anoncode(a) Perl_ck_anoncode(aTHX_ a)
#define ck_bitop(a) Perl_ck_bitop(aTHX_ a)
+#define ck_chdir(a) Perl_ck_chdir(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_die(a) Perl_ck_die(aTHX_ a)
+#define ck_each(a) Perl_ck_each(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)
@@ -3688,6 +977,7 @@
#define ck_sassign(a) Perl_ck_sassign(aTHX_ a)
#define ck_select(a) Perl_ck_select(aTHX_ a)
#define ck_shift(a) Perl_ck_shift(aTHX_ a)
+#define ck_smartmatch(a) Perl_ck_smartmatch(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)
@@ -3696,64 +986,383 @@
#define ck_svconst(a) Perl_ck_svconst(aTHX_ a)
#define ck_trunc(a) Perl_ck_trunc(aTHX_ a)
#define ck_unpack(a) Perl_ck_unpack(aTHX_ a)
-#define ck_each(a) Perl_ck_each(aTHX_ a)
-#define is_handle_constructor S_is_handle_constructor
-#define is_list_assignment(a) S_is_list_assignment(aTHX_ a)
-#endif
-# ifdef USE_ITHREADS
-#ifdef PERL_CORE
-#endif
-# else
-#ifdef PERL_CORE
+#define convert(a,b,c) Perl_convert(aTHX_ a,b,c)
+#define create_eval_scope(a) Perl_create_eval_scope(aTHX_ a)
+#define cv_ckproto_len(a,b,c,d) Perl_cv_ckproto_len(aTHX_ a,b,c,d)
+#define cv_clone(a) Perl_cv_clone(aTHX_ a)
+#define cvgv_set(a,b) Perl_cvgv_set(aTHX_ a,b)
+#define cvstash_set(a,b) Perl_cvstash_set(aTHX_ a,b)
+#define deb_stack_all() Perl_deb_stack_all(aTHX)
+#define delete_eval_scope() Perl_delete_eval_scope(aTHX)
+#define die_unwind(a) Perl_die_unwind(aTHX_ a)
+#define do_aexec5(a,b,c,d,e) Perl_do_aexec5(aTHX_ a,b,c,d,e)
+#define do_dump_pad(a,b,c,d) Perl_do_dump_pad(aTHX_ a,b,c,d)
+#define do_eof(a) Perl_do_eof(aTHX_ a)
+#define do_execfree() Perl_do_execfree(aTHX)
+#define do_print(a,b) Perl_do_print(aTHX_ a,b)
+#define do_readline() Perl_do_readline(aTHX)
+#define do_seek(a,b,c) Perl_do_seek(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_vecget(a,b,c) Perl_do_vecget(aTHX_ a,b,c)
+#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,b) Perl_dofile(aTHX_ a,b)
+#define dump_all_perl(a) Perl_dump_all_perl(aTHX_ a)
+#define dump_packsubs_perl(a,b) Perl_dump_packsubs_perl(aTHX_ a,b)
+#define dump_sub_perl(a,b) Perl_dump_sub_perl(aTHX_ a,b)
+#define find_script(a,b,c,d) Perl_find_script(aTHX_ a,b,c,d)
+#define free_tied_hv_pool() Perl_free_tied_hv_pool(aTHX)
+#define get_hash_seed() Perl_get_hash_seed(aTHX)
+#define get_no_modify() Perl_get_no_modify(aTHX)
+#define get_opargs() Perl_get_opargs(aTHX)
+#define gv_try_downgrade(a) Perl_gv_try_downgrade(aTHX_ a)
+#define hv_ename_add(a,b,c,d) Perl_hv_ename_add(aTHX_ a,b,c,d)
+#define hv_ename_delete(a,b,c,d) Perl_hv_ename_delete(aTHX_ a,b,c,d)
+#define init_argv_symbols(a,b) Perl_init_argv_symbols(aTHX_ a,b)
+#define init_debugger() Perl_init_debugger(aTHX)
+#define intro_my() Perl_intro_my(aTHX)
+#define invert(a) Perl_invert(aTHX_ a)
+#define io_close(a,b) Perl_io_close(aTHX_ a,b)
+#define is_gv_magical_sv(a,b) Perl_is_gv_magical_sv(aTHX_ a,b)
+#define jmaybe(a) Perl_jmaybe(aTHX_ a)
+#define keyword(a,b,c) Perl_keyword(aTHX_ a,b,c)
+#define list(a) Perl_list(aTHX_ a)
+#define localize(a,b) Perl_localize(aTHX_ a,b)
+#define magic_clear_all_env(a,b) Perl_magic_clear_all_env(aTHX_ a,b)
+#define magic_clearenv(a,b) Perl_magic_clearenv(aTHX_ a,b)
+#define magic_clearhint(a,b) Perl_magic_clearhint(aTHX_ a,b)
+#define magic_clearhints(a,b) Perl_magic_clearhints(aTHX_ a,b)
+#define magic_clearisa(a,b) Perl_magic_clearisa(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_freearylen_p(a,b) Perl_magic_freearylen_p(aTHX_ a,b)
+#define magic_freeovrld(a,b) Perl_magic_freeovrld(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_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_killbackrefs(a,b) Perl_magic_killbackrefs(aTHX_ a,b)
+#define magic_len(a,b) Perl_magic_len(aTHX_ a,b)
+#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_regdatum_set(a,b) Perl_magic_regdatum_set(aTHX_ a,b)
+#define magic_scalarpack(a,b) Perl_magic_scalarpack(aTHX_ a,b)
+#define magic_set(a,b) Perl_magic_set(aTHX_ a,b)
+#define magic_set_all_env(a,b) Perl_magic_set_all_env(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_setdbline(a,b) Perl_magic_setdbline(aTHX_ a,b)
+#define magic_setdefelem(a,b) Perl_magic_setdefelem(aTHX_ a,b)
+#define magic_setenv(a,b) Perl_magic_setenv(aTHX_ a,b)
+#define magic_sethint(a,b) Perl_magic_sethint(aTHX_ a,b)
+#define magic_setisa(a,b) Perl_magic_setisa(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_setregexp(a,b) Perl_magic_setregexp(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_setutf8(a,b) Perl_magic_setutf8(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_sizepack(a,b) Perl_magic_sizepack(aTHX_ a,b)
+#define magic_wipepack(a,b) Perl_magic_wipepack(aTHX_ a,b)
+#define mg_localize(a,b,c) Perl_mg_localize(aTHX_ a,b,c)
+#define mode_from_discipline(a,b) Perl_mode_from_discipline(aTHX_ a,b)
+#define mro_isa_changed_in(a) Perl_mro_isa_changed_in(aTHX_ a)
+#define mro_package_moved(a,b,c,d) Perl_mro_package_moved(aTHX_ a,b,c,d)
+#define munge_qwlist_to_paren_list(a) Perl_munge_qwlist_to_paren_list(aTHX_ a)
+#define my_attrs(a,b) Perl_my_attrs(aTHX_ a,b)
+#define my_clearenv() Perl_my_clearenv(aTHX)
+#define my_lstat_flags(a) Perl_my_lstat_flags(aTHX_ a)
+#define my_stat_flags(a) Perl_my_stat_flags(aTHX_ a)
+#define my_swabn Perl_my_swabn
+#define my_unexec() Perl_my_unexec(aTHX)
+#define nextargv(a) Perl_nextargv(aTHX_ a)
+#define oopsAV(a) Perl_oopsAV(aTHX_ a)
+#define oopsHV(a) Perl_oopsHV(aTHX_ a)
+#define op_const_sv(a,b) Perl_op_const_sv(aTHX_ a,b)
+#define package_version(a) Perl_package_version(aTHX_ a)
+#define pad_add_anon(a,b) Perl_pad_add_anon(aTHX_ a,b)
+#define pad_add_name(a,b,c,d,e) Perl_pad_add_name(aTHX_ a,b,c,d,e)
+#define pad_alloc(a,b) Perl_pad_alloc(aTHX_ a,b)
+#define pad_block_start(a) Perl_pad_block_start(aTHX_ a)
+#define pad_compname_type(a) Perl_pad_compname_type(aTHX_ a)
+#define pad_fixup_inner_anons(a,b,c) Perl_pad_fixup_inner_anons(aTHX_ a,b,c)
+#define pad_free(a) Perl_pad_free(aTHX_ a)
+#define pad_leavemy() Perl_pad_leavemy(aTHX)
+#define pad_new(a) Perl_pad_new(aTHX_ a)
+#define pad_push(a,b) Perl_pad_push(aTHX_ a,b)
+#define pad_swipe(a,b) Perl_pad_swipe(aTHX_ a,b)
+#define pad_tidy(a) Perl_pad_tidy(aTHX_ a)
+#define parse_unicode_opts(a) Perl_parse_unicode_opts(aTHX_ a)
+#define parser_free(a) Perl_parser_free(aTHX_ a)
+#define peep(a) Perl_peep(aTHX_ a)
+#define pmruntime(a,b,c) Perl_pmruntime(aTHX_ a,b,c)
+#define refcounted_he_chain_2hv(a,b) Perl_refcounted_he_chain_2hv(aTHX_ a,b)
+#define refcounted_he_fetch_pv(a,b,c,d) Perl_refcounted_he_fetch_pv(aTHX_ a,b,c,d)
+#define refcounted_he_fetch_pvn(a,b,c,d,e) Perl_refcounted_he_fetch_pvn(aTHX_ a,b,c,d,e)
+#define refcounted_he_fetch_sv(a,b,c,d) Perl_refcounted_he_fetch_sv(aTHX_ a,b,c,d)
+#define refcounted_he_free(a) Perl_refcounted_he_free(aTHX_ a)
+#define refcounted_he_inc(a) Perl_refcounted_he_inc(aTHX_ a)
+#define refcounted_he_new_pv(a,b,c,d,e) Perl_refcounted_he_new_pv(aTHX_ a,b,c,d,e)
+#define refcounted_he_new_pvn(a,b,c,d,e,f) Perl_refcounted_he_new_pvn(aTHX_ a,b,c,d,e,f)
+#define refcounted_he_new_sv(a,b,c,d,e) Perl_refcounted_he_new_sv(aTHX_ a,b,c,d,e)
+#define report_evil_fh(a) Perl_report_evil_fh(aTHX_ a)
+#define report_wrongway_fh(a,b) Perl_report_wrongway_fh(aTHX_ a,b)
+#define rpeep(a) Perl_rpeep(aTHX_ a)
+#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 rxres_save(a,b) Perl_rxres_save(aTHX_ a,b)
+#define sawparens(a) Perl_sawparens(aTHX_ a)
+#define scalar(a) Perl_scalar(aTHX_ a)
+#define scalarvoid(a) Perl_scalarvoid(aTHX_ a)
+#define sub_crush_depth(a) Perl_sub_crush_depth(aTHX_ a)
+#define sv_2num(a) Perl_sv_2num(aTHX_ a)
+#define sv_clean_all() Perl_sv_clean_all(aTHX)
+#define sv_clean_objs() Perl_sv_clean_objs(aTHX)
+#define sv_del_backref(a,b) Perl_sv_del_backref(aTHX_ a,b)
+#define sv_free_arenas() Perl_sv_free_arenas(aTHX)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define tied_method Perl_tied_method
#endif
+#define unshare_hek(a) Perl_unshare_hek(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 write_to_stderr(a) Perl_write_to_stderr(aTHX_ a)
+#define yyerror(a) Perl_yyerror(aTHX_ a)
+#define yyparse(a) Perl_yyparse(aTHX_ a)
+#define yyunlex() Perl_yyunlex(aTHX)
+# if !(defined(DEBUGGING))
+# if !defined(NV_PRESERVES_UV)
+# if defined(PERL_IN_SV_C)
+#define sv_2iuv_non_preserve(a) S_sv_2iuv_non_preserve(aTHX_ a)
+# endif
+# endif
# endif
-#ifdef PERL_CORE
-#define find_and_forget_pmops(a) S_find_and_forget_pmops(aTHX_ a)
+# if !(defined(HAS_SIGACTION) && defined(SA_SIGINFO))
+#define sighandler Perl_sighandler
+# endif
+# if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
+#define do_exec(a) Perl_do_exec(aTHX_ a)
+# endif
+# if !(defined(PERL_MAD))
+#define package(a) Perl_package(aTHX_ a)
+#define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e)
+# endif
+# if !defined(HAS_GETENV_LEN)
+#define getenv_len(a,b) Perl_getenv_len(aTHX_ a,b)
+# endif
+# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+# if defined(PERL_IN_PP_SYS_C)
+#define dooneliner(a,b) S_dooneliner(aTHX_ a,b)
+# endif
+# endif
+# if !defined(HAS_RENAME)
+#define same_dirent(a,b) Perl_same_dirent(aTHX_ a,b)
+# endif
+# if !defined(NV_PRESERVES_UV)
+# if defined(DEBUGGING)
+# if defined(PERL_IN_SV_C)
+#define sv_2iuv_non_preserve(a,b) S_sv_2iuv_non_preserve(aTHX_ a,b)
+# endif
+# endif
+# endif
+# if !defined(PERL_DISABLE_PMC)
+# if defined(PERL_IN_PP_CTL_C)
+#define doopen_pm(a) S_doopen_pm(aTHX_ a)
+# endif
+# endif
+# if !defined(PERL_IS_MINIPERL)
+# if defined(PERL_IN_PERL_C)
+#define incpush_if_exists(a,b,c) S_incpush_if_exists(aTHX_ a,b,c)
+# endif
+# endif
+# if !defined(PERL_NO_UTF16_FILTER)
+# if defined(PERL_IN_TOKE_C)
+#define add_utf16_textfilter(a,b) S_add_utf16_textfilter(aTHX_ a,b)
+#define utf16_textfilter(a,b,c) S_utf16_textfilter(aTHX_ a,b,c)
+# endif
+# endif
+# if !defined(WIN32)
+#define do_exec3(a,b,c) Perl_do_exec3(aTHX_ a,b,c)
+# endif
+# if defined(DEBUGGING)
+#define get_debug_opts(a,b) Perl_get_debug_opts(aTHX_ a,b)
+#define pad_setsv(a,b) Perl_pad_setsv(aTHX_ a,b)
+# if defined(PERL_IN_PAD_C)
+#define cv_dump(a,b) S_cv_dump(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_SV_C)
+#define del_sv(a) S_del_sv(aTHX_ a)
+# endif
+# if defined(PERL_IN_TOKE_C)
+#define printbuf(a,b) S_printbuf(aTHX_ a,b)
+#define tokereport(a,b) S_tokereport(aTHX_ a,b)
+# endif
+# endif
+# if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
+#define dump_sv_child(a) Perl_dump_sv_child(aTHX_ a)
+# endif
+# 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
+# if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+#define sighandler Perl_sighandler
+# endif
+# if defined(MYMALLOC)
+#define malloc_good_size Perl_malloc_good_size
+#define malloced_size Perl_malloced_size
+# endif
+# if defined(PERL_CR_FILTER)
+# if defined(PERL_IN_TOKE_C)
+#define cr_textfilter(a,b,c) S_cr_textfilter(aTHX_ a,b,c)
+#define strip_return(a) S_strip_return(aTHX_ a)
+# endif
+# endif
+# if defined(PERL_DEBUG_READONLY_OPS)
+# if defined(PERL_IN_OP_C)
+# if defined(PL_OP_SLAB_ALLOC)
+#define Slab_to_rw(a) S_Slab_to_rw(aTHX_ a)
+# endif
+# endif
+# endif
+# if defined(PERL_IN_AV_C)
+#define get_aux_mg(a) S_get_aux_mg(aTHX_ a)
+# endif
+# if defined(PERL_IN_DEB_C)
+#define deb_stack_n(a,b,c,d,e) S_deb_stack_n(aTHX_ a,b,c,d,e)
+# endif
+# if defined(PERL_IN_DOIO_C)
+#define exec_failed(a,b,c) S_exec_failed(aTHX_ a,b,c)
+#define ingroup(a,b) S_ingroup(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_DOOP_C)
+#define do_trans_complex(a) S_do_trans_complex(aTHX_ a)
+#define do_trans_complex_utf8(a) S_do_trans_complex_utf8(aTHX_ a)
+#define do_trans_count(a) S_do_trans_count(aTHX_ a)
+#define do_trans_count_utf8(a) S_do_trans_count_utf8(aTHX_ a)
+#define do_trans_simple(a) S_do_trans_simple(aTHX_ a)
+#define do_trans_simple_utf8(a) S_do_trans_simple_utf8(aTHX_ a)
+# endif
+# if defined(PERL_IN_DUMP_C)
+#define deb_curcv(a) S_deb_curcv(aTHX_ a)
+#define debprof(a) S_debprof(aTHX_ a)
+#define pm_description(a) S_pm_description(aTHX_ a)
+#define sequence(a) S_sequence(aTHX_ a)
+#define sequence_num(a) S_sequence_num(aTHX_ a)
+#define sequence_tail(a) S_sequence_tail(aTHX_ a)
+# endif
+# if defined(PERL_IN_GV_C)
+#define gv_get_super_pkg(a,b) S_gv_get_super_pkg(aTHX_ a,b)
+#define gv_init_sv(a,b) S_gv_init_sv(aTHX_ a,b)
+#define gv_magicalize_isa(a) S_gv_magicalize_isa(aTHX_ a)
+#define gv_magicalize_overload(a) S_gv_magicalize_overload(aTHX_ a)
+#define require_tie_mod(a,b,c,d,e) S_require_tie_mod(aTHX_ a,b,c,d,e)
+# endif
+# if defined(PERL_IN_HV_C)
+#define clear_placeholders(a,b) S_clear_placeholders(aTHX_ a,b)
+#define hfreeentries(a) S_hfreeentries(aTHX_ a)
+#define hsplit(a) S_hsplit(aTHX_ a)
+#define hv_auxinit S_hv_auxinit
+#define hv_delete_common(a,b,c,d,e,f,g) S_hv_delete_common(aTHX_ a,b,c,d,e,f,g)
+#define hv_magic_check S_hv_magic_check
+#define hv_notallowed(a,b,c,d) S_hv_notallowed(aTHX_ a,b,c,d)
+#define new_he() S_new_he(aTHX)
+#define refcounted_he_value(a) S_refcounted_he_value(aTHX_ a)
+#define save_hek_flags S_save_hek_flags
+#define share_hek_flags(a,b,c,d) S_share_hek_flags(aTHX_ a,b,c,d)
+#define unshare_hek_or_pvn(a,b,c,d) S_unshare_hek_or_pvn(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_IN_LOCALE_C)
+# if defined(USE_LOCALE_NUMERIC) || defined(USE_LOCALE_COLLATE)
+#define stdize_locale(a) S_stdize_locale(aTHX_ a)
+# endif
+# endif
+# if defined(PERL_IN_MG_C)
+#define magic_methcall1(a,b,c,d,e,f) S_magic_methcall1(aTHX_ a,b,c,d,e,f)
+#define magic_methpack(a,b,c) S_magic_methpack(aTHX_ a,b,c)
+#define restore_magic(a) S_restore_magic(aTHX_ a)
+#define save_magic(a,b) S_save_magic(aTHX_ a,b)
+#define unwind_handler_stack(a) S_unwind_handler_stack(aTHX_ a)
+# endif
+# if defined(PERL_IN_MRO_C)
+#define mro_clean_isarev(a,b,c,d) S_mro_clean_isarev(aTHX_ a,b,c,d)
+#define mro_gather_and_rename(a,b,c,d,e) S_mro_gather_and_rename(aTHX_ a,b,c,d,e)
+#define mro_get_linear_isa_dfs(a,b) S_mro_get_linear_isa_dfs(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_NUMERIC_C)
+#define mulexp10 S_mulexp10
+# endif
+# if defined(PERL_IN_OP_C)
+#define apply_attrs(a,b,c,d) S_apply_attrs(aTHX_ a,b,c,d)
+#define apply_attrs_my(a,b,c,d) S_apply_attrs_my(aTHX_ a,b,c,d)
+#define bad_type(a,b,c,d) S_bad_type(aTHX_ a,b,c,d)
#define cop_free(a) S_cop_free(aTHX_ a)
+#define dup_attrlist(a) S_dup_attrlist(aTHX_ a)
+#define find_and_forget_pmops(a) S_find_and_forget_pmops(aTHX_ a)
+#define fold_constants(a) S_fold_constants(aTHX_ a)
+#define force_list(a) S_force_list(aTHX_ a)
+#define gen_constant_list(a) S_gen_constant_list(aTHX_ a)
+#define gv_ename(a) S_gv_ename(aTHX_ a)
+#define is_handle_constructor S_is_handle_constructor
+#define is_inplace_av(a,b) S_is_inplace_av(aTHX_ a,b)
+#define is_list_assignment(a) S_is_list_assignment(aTHX_ a)
+#define listkids(a) S_listkids(aTHX_ a)
+#define looks_like_bool(a) S_looks_like_bool(aTHX_ a)
#define modkids(a,b) S_modkids(aTHX_ a,b)
-#define scalarboolean(a) S_scalarboolean(aTHX_ a)
+#define my_kid(a,b,c) S_my_kid(aTHX_ a,b,c)
#define newDEFSVOP() S_newDEFSVOP(aTHX)
-#define search_const(a) S_search_const(aTHX_ a)
+#define newGIVWHENOP(a,b,c,d,e) S_newGIVWHENOP(aTHX_ a,b,c,d,e)
#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 gv_ename(a) S_gv_ename(aTHX_ a)
-#define scalar_mod_type S_scalar_mod_type
-#define my_kid(a,b,c) S_my_kid(aTHX_ a,b,c)
-#define dup_attrlist(a) S_dup_attrlist(aTHX_ a)
-#define apply_attrs(a,b,c,d) S_apply_attrs(aTHX_ a,b,c,d)
-#define apply_attrs_my(a,b,c,d) S_apply_attrs_my(aTHX_ a,b,c,d)
-#define bad_type(a,b,c,d) S_bad_type(aTHX_ a,b,c,d)
#define no_bareword_allowed(a) S_no_bareword_allowed(aTHX_ a)
#define no_fh_allowed(a) S_no_fh_allowed(aTHX_ a)
+#define opt_scalarhv(a) S_opt_scalarhv(aTHX_ a)
+#define pmtrans(a,b,c) S_pmtrans(aTHX_ a,b,c)
+#define process_special_blocks(a,b,c) S_process_special_blocks(aTHX_ a,b,c)
+#define ref_array_or_hash(a) S_ref_array_or_hash(aTHX_ a)
+#define refkids(a,b) S_refkids(aTHX_ a,b)
+#define scalar_mod_type S_scalar_mod_type
+#define scalarboolean(a) S_scalarboolean(aTHX_ a)
+#define scalarkids(a) S_scalarkids(aTHX_ a)
+#define scalarseq(a) S_scalarseq(aTHX_ a)
+#define search_const(a) S_search_const(aTHX_ a)
+#define simplify_sort(a) S_simplify_sort(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 looks_like_bool(a) S_looks_like_bool(aTHX_ a)
-#define newGIVWHENOP(a,b,c,d,e) S_newGIVWHENOP(aTHX_ a,b,c,d,e)
-#define ref_array_or_hash(a) S_ref_array_or_hash(aTHX_ a)
-#define process_special_blocks(a,b,c) S_process_special_blocks(aTHX_ a,b,c)
-#endif
-#endif
-#if defined(PL_OP_SLAB_ALLOC)
-#define Slab_Alloc(a) Perl_Slab_Alloc(aTHX_ a)
-#define Slab_Free(a) Perl_Slab_Free(aTHX_ a)
-# if defined(PERL_DEBUG_READONLY_OPS)
-#ifdef PERL_CORE
-#endif
-# if defined(PERL_IN_OP_C)
-#ifdef PERL_CORE
-#define Slab_to_rw(a) S_Slab_to_rw(aTHX_ a)
-#endif
-# endif
# endif
-#endif
-#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
+# if defined(PERL_IN_PAD_C)
+#define pad_add_name_sv(a,b,c,d) S_pad_add_name_sv(aTHX_ a,b,c,d)
+#define pad_check_dup(a,b,c) S_pad_check_dup(aTHX_ a,b,c)
+#define pad_findlex(a,b,c,d,e,f,g) S_pad_findlex(aTHX_ a,b,c,d,e,f,g)
+#define pad_reset() S_pad_reset(aTHX)
+# endif
+# if defined(PERL_IN_PERL_C)
#define find_beginning(a,b) S_find_beginning(aTHX_ a,b)
#define forbid_setid(a,b) S_forbid_setid(aTHX_ a,b)
#define incpush(a,b,c) S_incpush(aTHX_ a,b,c)
#define incpush_use_sep(a,b,c) S_incpush_use_sep(aTHX_ a,b,c)
-#define init_interp() S_init_interp(aTHX)
#define init_ids() S_init_ids(aTHX)
+#define init_interp() S_init_interp(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)
@@ -3761,267 +1370,131 @@
#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)
-#endif
-#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
-#ifdef PERL_CORE
-#endif
-#endif
-#ifdef PERL_CORE
#define parse_body(a,b) S_parse_body(aTHX_ a,b)
#define run_body(a) S_run_body(aTHX_ a)
-#define incpush_if_exists(a,b,c) S_incpush_if_exists(aTHX_ a,b,c)
-#endif
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
+#define usage(a) S_usage(aTHX_ a)
+# endif
+# if defined(PERL_IN_PP_C)
+#define do_chomp(a,b,c) S_do_chomp(aTHX_ a,b,c)
#define do_delete_local() S_do_delete_local(aTHX)
#define refto(a) S_refto(aTHX_ a)
-#endif
-#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#endif
-#endif
-#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define unpack_rec(a,b,c,d,e) S_unpack_rec(aTHX_ a,b,c,d,e)
-#define pack_rec(a,b,c,d) S_pack_rec(aTHX_ a,b,c,d)
-#define mul128(a,b) S_mul128(aTHX_ a,b)
-#define measure_struct(a) S_measure_struct(aTHX_ a)
-#define next_symbol(a) S_next_symbol(aTHX_ a)
-#define is_an_int(a,b) S_is_an_int(aTHX_ a,b)
-#define div128(a,b) S_div128(aTHX_ a,b)
-#define group_end(a,b,c) S_group_end(aTHX_ a,b,c)
-#define get_num(a,b) S_get_num(aTHX_ a,b)
-#define need_utf8 S_need_utf8
-#define first_symbol S_first_symbol
-#define sv_exp_grow(a,b) S_sv_exp_grow(aTHX_ a,b)
-#define bytes_to_uni S_bytes_to_uni
-#endif
-#endif
-#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
+# endif
+# if defined(PERL_IN_PP_CTL_C)
+#define check_type_and_open(a) S_check_type_and_open(aTHX_ a)
+#define destroy_matcher(a) S_destroy_matcher(aTHX_ a)
+#define do_smartmatch(a,b) S_do_smartmatch(aTHX_ a,b)
#define docatch(a) S_docatch(aTHX_ a)
+#define doeval(a,b,c,d) S_doeval(aTHX_ a,b,c,d)
#define dofindlabel(a,b,c,d) S_dofindlabel(aTHX_ a,b,c,d)
#define doparseform(a) S_doparseform(aTHX_ a)
-#define num_overflow S_num_overflow
#define dopoptoeval(a) S_dopoptoeval(aTHX_ a)
#define dopoptogiven(a) S_dopoptogiven(aTHX_ a)
#define dopoptolabel(a) S_dopoptolabel(aTHX_ a)
#define dopoptoloop(a) S_dopoptoloop(aTHX_ a)
#define dopoptosub_at(a,b) S_dopoptosub_at(aTHX_ a,b)
#define dopoptowhen(a) S_dopoptowhen(aTHX_ a)
-#define save_lines(a,b) S_save_lines(aTHX_ a,b)
-#define doeval(a,b,c,d) S_doeval(aTHX_ a,b,c,d)
-#define check_type_and_open(a) S_check_type_and_open(aTHX_ a)
-#endif
-#ifndef PERL_DISABLE_PMC
-#ifdef PERL_CORE
-#define doopen_pm(a,b) S_doopen_pm(aTHX_ a,b)
-#endif
-#endif
-#ifdef PERL_CORE
-#define path_is_absolute S_path_is_absolute
-#define run_user_filter(a,b,c) S_run_user_filter(aTHX_ a,b,c)
#define make_matcher(a) S_make_matcher(aTHX_ a)
#define matcher_matches_sv(a,b) S_matcher_matches_sv(aTHX_ a,b)
-#define destroy_matcher(a) S_destroy_matcher(aTHX_ a)
-#define do_smartmatch(a,b) S_do_smartmatch(aTHX_ a,b)
-#endif
-#endif
-#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
+#define num_overflow S_num_overflow
+#define path_is_absolute S_path_is_absolute
+#define run_user_filter(a,b,c) S_run_user_filter(aTHX_ a,b,c)
+#define rxres_free(a) S_rxres_free(aTHX_ a)
+#define rxres_restore(a,b) S_rxres_restore(aTHX_ a,b)
+#define save_lines(a,b) S_save_lines(aTHX_ a,b)
+# endif
+# if defined(PERL_IN_PP_HOT_C)
#define do_oddball(a,b,c) S_do_oddball(aTHX_ a,b,c)
#define method_common(a,b) S_method_common(aTHX_ a,b)
-#endif
-#endif
-#if defined(PERL_IN_PP_SORT_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#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)
+# endif
+# if defined(PERL_IN_PP_PACK_C)
+#define bytes_to_uni S_bytes_to_uni
+#define div128(a,b) S_div128(aTHX_ a,b)
+#define first_symbol S_first_symbol
+#define get_num(a,b) S_get_num(aTHX_ a,b)
+#define group_end(a,b,c) S_group_end(aTHX_ a,b,c)
+#define is_an_int(a,b) S_is_an_int(aTHX_ a,b)
+#define measure_struct(a) S_measure_struct(aTHX_ a)
+#define mul128(a,b) S_mul128(aTHX_ a,b)
+#define need_utf8 S_need_utf8
+#define next_symbol(a) S_next_symbol(aTHX_ a)
+#define pack_rec(a,b,c,d) S_pack_rec(aTHX_ a,b,c,d)
+#define sv_exp_grow(a,b) S_sv_exp_grow(aTHX_ a,b)
+#define unpack_rec(a,b,c,d,e) S_unpack_rec(aTHX_ a,b,c,d,e)
+# endif
+# if defined(PERL_IN_PP_SORT_C)
#define amagic_cmp(a,b) S_amagic_cmp(aTHX_ a,b)
#define amagic_cmp_locale(a,b) S_amagic_cmp_locale(aTHX_ a,b)
+#define amagic_i_ncmp(a,b) S_amagic_i_ncmp(aTHX_ a,b)
+#define amagic_ncmp(a,b) S_amagic_ncmp(aTHX_ a,b)
+#define qsortsvu(a,b,c) S_qsortsvu(aTHX_ a,b,c)
#define sortcv(a,b) S_sortcv(aTHX_ a,b)
-#define sortcv_xsub(a,b) S_sortcv_xsub(aTHX_ a,b)
#define sortcv_stacked(a,b) S_sortcv_stacked(aTHX_ a,b)
-#define qsortsvu(a,b,c) S_qsortsvu(aTHX_ a,b,c)
-#endif
-#endif
-#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define doform(a,b,c) S_doform(aTHX_ a,b,c)
-#endif
-# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-#ifdef PERL_CORE
-#define dooneliner(a,b) S_dooneliner(aTHX_ a,b)
-#endif
+#define sortcv_xsub(a,b) S_sortcv_xsub(aTHX_ a,b)
+#define sv_i_ncmp(a,b) S_sv_i_ncmp(aTHX_ a,b)
+#define sv_ncmp(a,b) S_sv_ncmp(aTHX_ a,b)
# endif
-#ifdef PERL_CORE
+# if defined(PERL_IN_PP_SYS_C)
+#define doform(a,b,c) S_doform(aTHX_ a,b,c)
#define space_join_names_mortal(a) S_space_join_names_mortal(aTHX_ a)
-#endif
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reg(a,b,c,d) S_reg(aTHX_ a,b,c,d)
-#define reganode(a,b,c) S_reganode(aTHX_ a,b,c)
-#define regatom(a,b,c) S_regatom(aTHX_ a,b,c)
-#define regbranch(a,b,c,d) S_regbranch(aTHX_ a,b,c,d)
-#define reguni(a,b,c) S_reguni(aTHX_ a,b,c)
-#define regclass(a,b) S_regclass(aTHX_ a,b)
-#define reg_node(a,b) S_reg_node(aTHX_ a,b)
-#define reg_recode(a,b) S_reg_recode(aTHX_ a,b)
-#define regpiece(a,b,c) S_regpiece(aTHX_ a,b,c)
-#define reg_namedseq(a,b,c) S_reg_namedseq(aTHX_ a,b,c)
-#define reginsert(a,b,c,d) S_reginsert(aTHX_ a,b,c,d)
-#define regtail(a,b,c,d) S_regtail(aTHX_ a,b,c,d)
-#define reg_scan_name(a,b) S_reg_scan_name(aTHX_ a,b)
-#define join_exact(a,b,c,d,e,f) S_join_exact(aTHX_ a,b,c,d,e,f)
-#define regwhite S_regwhite
-#define nextchar(a) S_nextchar(aTHX_ a)
-#define reg_skipcomment(a) S_reg_skipcomment(aTHX_ a)
-#define scan_commit(a,b,c,d) S_scan_commit(aTHX_ a,b,c,d)
-#define cl_anything S_cl_anything
-#define cl_is_anything S_cl_is_anything
-#define cl_init S_cl_init
-#define cl_init_zero S_cl_init_zero
-#define cl_and S_cl_and
-#define cl_or S_cl_or
-#define study_chunk(a,b,c,d,e,f,g,h,i,j,k) S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
-#define add_data S_add_data
-#endif
-#ifdef PERL_CORE
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regpposixcc(a,b) S_regpposixcc(aTHX_ a,b)
-#define checkposixcc(a) S_checkposixcc(aTHX_ a)
-#define make_trie(a,b,c,d,e,f,g,h) S_make_trie(aTHX_ a,b,c,d,e,f,g,h)
-#define make_trie_failtable(a,b,c,d) S_make_trie_failtable(aTHX_ a,b,c,d)
-#endif
-# ifdef DEBUGGING
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regdump_extflags(a,b) S_regdump_extflags(aTHX_ a,b)
-#define dumpuntil(a,b,c,d,e,f,g,h) S_dumpuntil(aTHX_ a,b,c,d,e,f,g,h)
-#define put_byte(a,b) S_put_byte(aTHX_ a,b)
-#define dump_trie(a,b,c,d) S_dump_trie(aTHX_ a,b,c,d)
-#define dump_trie_interim_list(a,b,c,d,e) S_dump_trie_interim_list(aTHX_ a,b,c,d,e)
-#define dump_trie_interim_table(a,b,c,d,e) S_dump_trie_interim_table(aTHX_ a,b,c,d,e)
-#define regtail_study(a,b,c,d) S_regtail_study(aTHX_ a,b,c,d)
-#endif
-# endif
-#endif
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define regmatch(a,b) S_regmatch(aTHX_ a,b)
-#define regrepeat(a,b,c,d) S_regrepeat(aTHX_ a,b,c,d)
-#define regtry(a,b) S_regtry(aTHX_ a,b)
-#define reginclass(a,b,c,d,e) S_reginclass(aTHX_ a,b,c,d,e)
-#define regcppush(a) S_regcppush(aTHX_ a)
-#define regcppop(a) S_regcppop(aTHX_ a)
-#define reghop3 S_reghop3
-#endif
-#ifdef XXX_dmq
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reghop4 S_reghop4
-#endif
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define reghopmaybe3 S_reghopmaybe3
-#define find_byclass(a,b,c,d,e) S_find_byclass(aTHX_ a,b,c,d,e)
-#define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a)
-#define to_byte_substr(a) S_to_byte_substr(aTHX_ a)
-#define reg_check_named_buff_matched(a,b) S_reg_check_named_buff_matched(aTHX_ a,b)
-#endif
-# ifdef DEBUGGING
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define dump_exec_pos(a,b,c,d,e,f) S_dump_exec_pos(aTHX_ a,b,c,d,e,f)
-#define debug_start_match(a,b,c,d,e) S_debug_start_match(aTHX_ a,b,c,d,e)
-#endif
# endif
-#endif
-#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define deb_curcv(a) S_deb_curcv(aTHX_ a)
-#define debprof(a) S_debprof(aTHX_ a)
-#define sequence(a) S_sequence(aTHX_ a)
-#define sequence_tail(a) S_sequence_tail(aTHX_ a)
-#define sequence_num(a) S_sequence_num(aTHX_ a)
-#define pm_description(a) S_pm_description(aTHX_ a)
-#endif
-#endif
-#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
+# if defined(PERL_IN_SCOPE_C)
+#define save_pushptri32ptr(a,b,c,d) S_save_pushptri32ptr(aTHX_ a,b,c,d)
#define save_scalar_at(a,b) S_save_scalar_at(aTHX_ a,b)
-#endif
-#endif
-#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#endif
-#endif
-#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#endif
-#endif
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define uiv_2buf S_uiv_2buf
-#define sv_unglob(a) S_sv_unglob(aTHX_ a)
-#define not_a_number(a) S_not_a_number(aTHX_ a)
-#define visit(a,b,c) S_visit(aTHX_ a,b,c)
-#define sv_del_backref(a,b) S_sv_del_backref(aTHX_ a,b)
-#define varname(a,b,c,d,e,f) S_varname(aTHX_ a,b,c,d,e,f)
-#endif
-# ifdef DEBUGGING
-#ifdef PERL_CORE
-#define del_sv(a) S_del_sv(aTHX_ a)
-#endif
# endif
-# if !defined(NV_PRESERVES_UV)
-# ifdef DEBUGGING
-#ifdef PERL_CORE
-#define sv_2iuv_non_preserve(a,b) S_sv_2iuv_non_preserve(aTHX_ a,b)
-#endif
-# else
-#ifdef PERL_CORE
-#define sv_2iuv_non_preserve(a) S_sv_2iuv_non_preserve(aTHX_ a)
-#endif
-# endif
-# endif
-#ifdef PERL_CORE
+# if defined(PERL_IN_SV_C)
+#define F0convert S_F0convert
+#define anonymise_cv_maybe(a,b) S_anonymise_cv_maybe(aTHX_ a,b)
+#define assert_uft8_cache_coherent(a,b,c,d) S_assert_uft8_cache_coherent(aTHX_ a,b,c,d)
+#define curse(a,b) S_curse(aTHX_ a,b)
#define expect_number(a) S_expect_number(aTHX_ a)
-#endif
-#ifdef PERL_CORE
+#define find_array_subscript(a,b) S_find_array_subscript(aTHX_ a,b)
+#define find_hash_subscript(a,b) S_find_hash_subscript(aTHX_ a,b)
+#define find_uninit_var(a,b,c) S_find_uninit_var(aTHX_ a,b,c)
+#define glob_2number(a) S_glob_2number(aTHX_ a)
+#define glob_assign_glob(a,b,c) S_glob_assign_glob(aTHX_ a,b,c)
+#define glob_assign_ref(a,b) S_glob_assign_ref(aTHX_ a,b)
+#define more_sv() S_more_sv(aTHX)
+#define not_a_number(a) S_not_a_number(aTHX_ a)
+#define ptr_table_find S_ptr_table_find
+#define sv_2iuv_common(a) S_sv_2iuv_common(aTHX_ a)
+#define sv_add_arena(a,b,c) S_sv_add_arena(aTHX_ a,b,c)
+#define sv_pos_b2u_midway(a,b,c,d) S_sv_pos_b2u_midway(aTHX_ a,b,c,d)
+#define sv_pos_u2b_cached(a,b,c,d,e,f,g) S_sv_pos_u2b_cached(aTHX_ a,b,c,d,e,f,g)
#define sv_pos_u2b_forwards S_sv_pos_u2b_forwards
#define sv_pos_u2b_midway S_sv_pos_u2b_midway
-#define sv_pos_u2b_cached(a,b,c,d,e,f,g) S_sv_pos_u2b_cached(aTHX_ a,b,c,d,e,f,g)
+#define sv_unglob(a) S_sv_unglob(aTHX_ a)
+#define uiv_2buf S_uiv_2buf
+#define utf8_mg_len_cache_update(a,b,c) S_utf8_mg_len_cache_update(aTHX_ a,b,c)
#define utf8_mg_pos_cache_update(a,b,c,d,e) S_utf8_mg_pos_cache_update(aTHX_ a,b,c,d,e)
-#define sv_pos_b2u_midway(a,b,c,d) S_sv_pos_b2u_midway(aTHX_ a,b,c,d)
-#define F0convert S_F0convert
-#endif
-# if defined(PERL_OLD_COPY_ON_WRITE)
-#ifdef PERL_CORE
+#define varname(a,b,c,d,e,f) S_varname(aTHX_ a,b,c,d,e,f)
+#define visit(a,b,c) S_visit(aTHX_ a,b,c)
+# if defined(PERL_OLD_COPY_ON_WRITE)
#define sv_release_COW(a,b,c) S_sv_release_COW(aTHX_ a,b,c)
-#endif
+# endif
+# if defined(USE_ITHREADS)
+#define sv_dup_common(a,b) S_sv_dup_common(aTHX_ a,b)
+#define sv_dup_inc_multiple(a,b,c,d) S_sv_dup_inc_multiple(aTHX_ a,b,c,d)
+#define unreferenced_to_tmp_stack(a) S_unreferenced_to_tmp_stack(aTHX_ a)
+# endif
# endif
-#ifdef PERL_CORE
-#define more_sv() S_more_sv(aTHX)
-#define more_bodies(a) S_more_bodies(aTHX_ a)
-#define sv_2iuv_common(a) S_sv_2iuv_common(aTHX_ a)
-#define glob_assign_glob(a,b,c) S_glob_assign_glob(aTHX_ a,b,c)
-#define glob_assign_ref(a,b) S_glob_assign_ref(aTHX_ a,b)
-#define ptr_table_find S_ptr_table_find
-#endif
-#endif
-#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
+# if defined(PERL_IN_TOKE_C)
+#define ao(a) S_ao(aTHX_ a)
#define check_uni() S_check_uni(aTHX)
+#define checkcomma(a,b,c) S_checkcomma(aTHX_ a,b,c)
+#define deprecate_commaless_var_list() S_deprecate_commaless_var_list(aTHX)
+#define filter_gets(a,b) S_filter_gets(aTHX_ a,b)
+#define find_in_my_stash(a,b) S_find_in_my_stash(aTHX_ a,b)
+#define force_ident(a,b) S_force_ident(aTHX_ a,b)
#define force_next(a) S_force_next(aTHX_ a)
-#define force_version(a,b) S_force_version(aTHX_ a,b)
#define force_strict_version(a) S_force_strict_version(aTHX_ a)
+#define force_version(a,b) S_force_version(aTHX_ a,b)
#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 incline(a) S_incline(aTHX_ a)
+#define intuit_method(a,b,c) S_intuit_method(aTHX_ a,b,c)
+#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 readpipe_override() S_readpipe_override(aTHX)
#define scan_const(a) S_scan_const(aTHX_ a)
#define scan_formline(a) S_scan_formline(aTHX_ a)
@@ -4033,851 +1506,167 @@
#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 update_debugger_info(a,b,c) S_update_debugger_info(aTHX_ a,b,c)
#define skipspace(a) S_skipspace(aTHX_ a)
-#define swallow_bom(a) S_swallow_bom(aTHX_ a)
-#endif
-#ifndef PERL_NO_UTF16_FILTER
-#ifdef PERL_CORE
-#define utf16_textfilter(a,b,c) S_utf16_textfilter(aTHX_ a,b,c)
-#define add_utf16_textfilter(a,b) S_add_utf16_textfilter(aTHX_ a,b)
-#endif
-#endif
-#ifdef PERL_CORE
-#define checkcomma(a,b,c) S_checkcomma(aTHX_ a,b,c)
-#define feature_is_enabled(a,b) S_feature_is_enabled(aTHX_ a,b)
-#define force_ident(a,b) S_force_ident(aTHX_ a,b)
-#define incline(a) S_incline(aTHX_ a)
-#define intuit_method(a,b,c) S_intuit_method(aTHX_ a,b,c)
-#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 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) S_filter_gets(aTHX_ a,b)
-#define find_in_my_stash(a,b) S_find_in_my_stash(aTHX_ a,b)
+#define swallow_bom(a) S_swallow_bom(aTHX_ a)
#define tokenize_use(a,b) S_tokenize_use(aTHX_ a,b)
-#define deprecate_commaless_var_list() S_deprecate_commaless_var_list(aTHX)
-#define ao(a) S_ao(aTHX_ a)
-#endif
-# if defined(PERL_CR_FILTER)
-#ifdef PERL_CORE
-#define cr_textfilter(a,b,c) S_cr_textfilter(aTHX_ a,b,c)
-#define strip_return(a) S_strip_return(aTHX_ a)
-#endif
-# endif
-# if defined(DEBUGGING)
-#ifdef PERL_CORE
-#define tokereport(a,b) S_tokereport(aTHX_ a,b)
-#define printbuf(a,b) S_printbuf(aTHX_ a,b)
-#endif
+#define tokeq(a) S_tokeq(aTHX_ a)
+#define update_debugger_info(a,b,c) S_update_debugger_info(aTHX_ a,b,c)
+#define yywarn(a) S_yywarn(aTHX_ a)
+# if defined(PERL_MAD)
+#define curmad(a,b) S_curmad(aTHX_ a,b)
+#define skipspace0(a) S_skipspace0(aTHX_ a)
+#define skipspace1(a) S_skipspace1(aTHX_ a)
+#define skipspace2(a,b) S_skipspace2(aTHX_ a,b)
+#define start_force(a) S_start_force(aTHX_ a)
+# endif
# endif
-#endif
-#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
+# if defined(PERL_IN_UNIVERSAL_C)
#define isa_lookup(a,b) S_isa_lookup(aTHX_ a,b)
-#endif
-#endif
-#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
-#if defined(USE_LOCALE_NUMERIC) || defined(USE_LOCALE_COLLATE)
-#ifdef PERL_CORE
-#define stdize_locale(a) S_stdize_locale(aTHX_ a)
-#endif
-#endif
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
+# endif
+# if defined(PERL_IN_UTF8_C)
+#define is_utf8_char_slow S_is_utf8_char_slow
+#define is_utf8_common(a,b,c) S_is_utf8_common(aTHX_ a,b,c)
+#define swash_get(a,b,c) S_swash_get(aTHX_ a,b,c)
+# endif
+# if defined(PERL_IN_UTIL_C)
+#define ckwarn_common(a) S_ckwarn_common(aTHX_ a)
#define closest_cop(a,b) S_closest_cop(aTHX_ a,b)
+#define invoke_exception_hook(a,b) S_invoke_exception_hook(aTHX_ a,b)
#define mess_alloc() S_mess_alloc(aTHX)
-#define vdie_croak_common(a,b) S_vdie_croak_common(aTHX_ a,b)
-#define vdie_common(a,b) S_vdie_common(aTHX_ a,b)
+#define with_queued_errors(a) S_with_queued_errors(aTHX_ a)
#define write_no_mem() S_write_no_mem(aTHX)
-#endif
-#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
-#ifdef PERL_CORE
+# if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
#define mem_log_common S_mem_log_common
-#endif
-#endif
-#endif
-#if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define mulexp10 S_mulexp10
-#endif
-#endif
-#if defined(PERL_IN_UTF8_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define is_utf8_char_slow S_is_utf8_char_slow
-#define is_utf8_common(a,b,c) S_is_utf8_common(aTHX_ a,b,c)
-#define swash_get(a,b,c) S_swash_get(aTHX_ a,b,c)
-#endif
-#endif
-#define sv_setsv_flags(a,b,c) Perl_sv_setsv_flags(aTHX_ a,b,c)
-#define sv_catpvn_flags(a,b,c,d) Perl_sv_catpvn_flags(aTHX_ a,b,c,d)
-#define sv_catsv_flags(a,b,c) Perl_sv_catsv_flags(aTHX_ a,b,c)
-#define sv_utf8_upgrade_flags_grow(a,b,c) Perl_sv_utf8_upgrade_flags_grow(aTHX_ a,b,c)
-#define sv_pvn_force_flags(a,b,c) Perl_sv_pvn_force_flags(aTHX_ a,b,c)
-#define sv_copypv(a,b) Perl_sv_copypv(aTHX_ a,b)
-#define my_atof2(a,b) Perl_my_atof2(aTHX_ a,b)
-#define my_socketpair Perl_my_socketpair
-#define my_dirfd(a) Perl_my_dirfd(aTHX_ a)
-#ifdef PERL_OLD_COPY_ON_WRITE
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#define sv_setsv_cow(a,b) Perl_sv_setsv_cow(aTHX_ a,b)
-#endif
-#endif
-#if defined(USE_PERLIO) && !defined(USE_SFIO)
-#define PerlIO_close(a) Perl_PerlIO_close(aTHX_ a)
-#define PerlIO_fill(a) Perl_PerlIO_fill(aTHX_ a)
-#define PerlIO_fileno(a) Perl_PerlIO_fileno(aTHX_ a)
-#define PerlIO_eof(a) Perl_PerlIO_eof(aTHX_ a)
-#define PerlIO_error(a) Perl_PerlIO_error(aTHX_ a)
-#define PerlIO_flush(a) Perl_PerlIO_flush(aTHX_ a)
-#define PerlIO_clearerr(a) Perl_PerlIO_clearerr(aTHX_ a)
-#define PerlIO_set_cnt(a,b) Perl_PerlIO_set_cnt(aTHX_ a,b)
-#define PerlIO_set_ptrcnt(a,b,c) Perl_PerlIO_set_ptrcnt(aTHX_ a,b,c)
-#define PerlIO_setlinebuf(a) Perl_PerlIO_setlinebuf(aTHX_ a)
-#define PerlIO_read(a,b,c) Perl_PerlIO_read(aTHX_ a,b,c)
-#define PerlIO_write(a,b,c) Perl_PerlIO_write(aTHX_ a,b,c)
-#define PerlIO_unread(a,b,c) Perl_PerlIO_unread(aTHX_ a,b,c)
-#define PerlIO_tell(a) Perl_PerlIO_tell(aTHX_ a)
-#define PerlIO_seek(a,b,c) Perl_PerlIO_seek(aTHX_ a,b,c)
-#define PerlIO_get_base(a) Perl_PerlIO_get_base(aTHX_ a)
-#define PerlIO_get_ptr(a) Perl_PerlIO_get_ptr(aTHX_ a)
-#define PerlIO_get_bufsiz(a) Perl_PerlIO_get_bufsiz(aTHX_ a)
-#define PerlIO_get_cnt(a) Perl_PerlIO_get_cnt(aTHX_ a)
-#define PerlIO_stdin() Perl_PerlIO_stdin(aTHX)
-#define PerlIO_stdout() Perl_PerlIO_stdout(aTHX)
-#define PerlIO_stderr() Perl_PerlIO_stderr(aTHX)
-#endif /* PERLIO_LAYERS */
-#ifdef PERL_CORE
-#define deb_stack_all() Perl_deb_stack_all(aTHX)
-#endif
-#if defined(PERL_IN_DEB_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define deb_stack_n(a,b,c,d,e) S_deb_stack_n(aTHX_ a,b,c,d,e)
-#endif
-#endif
-#ifdef PERL_CORE
-#define pad_new(a) Perl_pad_new(aTHX_ a)
-#define pad_undef(a) Perl_pad_undef(aTHX_ a)
-#define pad_add_name(a,b,c,d,e) Perl_pad_add_name(aTHX_ a,b,c,d,e)
-#define pad_add_anon(a,b) Perl_pad_add_anon(aTHX_ a,b)
-#endif
-#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define pad_check_dup(a,b,c) S_pad_check_dup(aTHX_ a,b,c)
-#endif
-#endif
-#ifdef DEBUGGING
-#ifdef PERL_CORE
-#define pad_setsv(a,b) Perl_pad_setsv(aTHX_ a,b)
-#endif
-#endif
-#ifdef PERL_CORE
-#define pad_block_start(a) Perl_pad_block_start(aTHX_ a)
-#define pad_tidy(a) Perl_pad_tidy(aTHX_ a)
-#define do_dump_pad(a,b,c,d) Perl_do_dump_pad(aTHX_ a,b,c,d)
-#define pad_fixup_inner_anons(a,b,c) Perl_pad_fixup_inner_anons(aTHX_ a,b,c)
-#endif
-#ifdef PERL_CORE
-#define pad_push(a,b) Perl_pad_push(aTHX_ a,b)
-#define pad_compname_type(a) Perl_pad_compname_type(aTHX_ a)
-#endif
-#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define pad_findlex(a,b,c,d,e,f,g) S_pad_findlex(aTHX_ a,b,c,d,e,f,g)
-#define pad_add_name_sv(a,b,c,d) S_pad_add_name_sv(aTHX_ a,b,c,d)
-#endif
-# if defined(DEBUGGING)
-#ifdef PERL_CORE
-#define cv_dump(a,b) S_cv_dump(aTHX_ a,b)
-#endif
+# endif
# endif
+# if defined(PERL_MAD)
+#define addmad(a,b,c) Perl_addmad(aTHX_ a,b,c)
+#define append_madprops(a,b,c) Perl_append_madprops(aTHX_ a,b,c)
+#define do_op_xmldump(a,b,c) Perl_do_op_xmldump(aTHX_ a,b,c)
+#define do_pmop_xmldump(a,b,c) Perl_do_pmop_xmldump(aTHX_ a,b,c)
+#define mad_free(a) Perl_mad_free(aTHX_ a)
+#define madlex() Perl_madlex(aTHX)
+#define madparse(a) Perl_madparse(aTHX_ a)
+#define newMADPROP(a,b,c,d) Perl_newMADPROP(aTHX_ a,b,c,d)
+#define newMADsv(a,b) Perl_newMADsv(aTHX_ a,b)
+#define newTOKEN(a,b,c) Perl_newTOKEN(aTHX_ a,b,c)
+#define op_getmad(a,b,c) Perl_op_getmad(aTHX_ a,b,c)
+#define op_getmad_weak(a,b,c) Perl_op_getmad_weak(aTHX_ a,b,c)
+#define op_xmldump(a) Perl_op_xmldump(aTHX_ a)
+#define package(a) Perl_package(aTHX_ a)
+#define pad_peg Perl_pad_peg
+#define pmop_xmldump(a) Perl_pmop_xmldump(aTHX_ a)
+#define prepend_madprops(a,b,c) Perl_prepend_madprops(aTHX_ a,b,c)
+#define sv_catxmlpv(a,b,c) Perl_sv_catxmlpv(aTHX_ a,b,c)
+#define sv_catxmlpvn(a,b,c,d) Perl_sv_catxmlpvn(aTHX_ a,b,c,d)
+#define sv_catxmlsv(a,b) Perl_sv_catxmlsv(aTHX_ a,b)
+#define sv_xmlpeek(a) Perl_sv_xmlpeek(aTHX_ a)
+#define token_free(a) Perl_token_free(aTHX_ a)
+#define token_getmad(a,b,c) Perl_token_getmad(aTHX_ a,b,c)
+#define utilize(a,b,c,d,e) Perl_utilize(aTHX_ a,b,c,d,e)
+#define xmldump_all() Perl_xmldump_all(aTHX)
+#define xmldump_all_perl(a) Perl_xmldump_all_perl(aTHX_ a)
+#define xmldump_eval() Perl_xmldump_eval(aTHX)
+#define xmldump_form(a) Perl_xmldump_form(aTHX_ a)
+#ifndef PERL_IMPLICIT_CONTEXT
+#define xmldump_indent Perl_xmldump_indent
#endif
-#define find_runcv(a) Perl_find_runcv(aTHX_ a)
-#ifdef PERL_CORE
-#define free_tied_hv_pool() Perl_free_tied_hv_pool(aTHX)
-#endif
-#if defined(DEBUGGING)
-#ifdef PERL_CORE
-#define get_debug_opts(a,b) Perl_get_debug_opts(aTHX_ a,b)
-#endif
-#endif
-#define save_set_svflags(a,b,c) Perl_save_set_svflags(aTHX_ a,b,c)
-#ifdef DEBUGGING
-#endif
-#define hv_scalar(a) Perl_hv_scalar(aTHX_ a)
-#define hv_name_set(a,b,c,d) Perl_hv_name_set(aTHX_ a,b,c,d)
-#ifdef PERL_CORE
-#endif
-#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#endif
-#endif
-#define hv_clear_placeholders(a) Perl_hv_clear_placeholders(aTHX_ a)
-#ifdef PERL_CORE
-#define magic_scalarpack(a,b) Perl_magic_scalarpack(aTHX_ a,b)
-#endif
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define find_hash_subscript(a,b) S_find_hash_subscript(aTHX_ a,b)
-#define find_array_subscript(a,b) S_find_array_subscript(aTHX_ a,b)
-#define find_uninit_var(a,b,c) S_find_uninit_var(aTHX_ a,b,c)
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLE16
-#ifdef PERL_CORE
-#define my_htole16 Perl_my_htole16
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOH16
-#ifdef PERL_CORE
-#define my_letoh16 Perl_my_letoh16
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBE16
-#ifdef PERL_CORE
-#define my_htobe16 Perl_my_htobe16
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOH16
-#ifdef PERL_CORE
+#define xmldump_packsubs(a) Perl_xmldump_packsubs(aTHX_ a)
+#define xmldump_packsubs_perl(a,b) Perl_xmldump_packsubs_perl(aTHX_ a,b)
+#define xmldump_sub(a) Perl_xmldump_sub(aTHX_ a)
+#define xmldump_sub_perl(a,b) Perl_xmldump_sub_perl(aTHX_ a,b)
+#define xmldump_vindent(a,b,c,d) Perl_xmldump_vindent(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_NEED_MY_BETOH16)
#define my_betoh16 Perl_my_betoh16
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLE32
-#ifdef PERL_CORE
-#define my_htole32 Perl_my_htole32
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOH32
-#ifdef PERL_CORE
-#define my_letoh32 Perl_my_letoh32
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBE32
-#ifdef PERL_CORE
-#define my_htobe32 Perl_my_htobe32
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOH32
-#ifdef PERL_CORE
+# endif
+# if defined(PERL_NEED_MY_BETOH32)
#define my_betoh32 Perl_my_betoh32
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLE64
-#ifdef PERL_CORE
-#define my_htole64 Perl_my_htole64
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOH64
-#ifdef PERL_CORE
-#define my_letoh64 Perl_my_letoh64
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBE64
-#ifdef PERL_CORE
-#define my_htobe64 Perl_my_htobe64
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOH64
-#ifdef PERL_CORE
+# endif
+# if defined(PERL_NEED_MY_BETOH64)
#define my_betoh64 Perl_my_betoh64
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLES
-#ifdef PERL_CORE
-#define my_htoles Perl_my_htoles
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOHS
-#ifdef PERL_CORE
-#define my_letohs Perl_my_letohs
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBES
-#ifdef PERL_CORE
-#define my_htobes Perl_my_htobes
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOHS
-#ifdef PERL_CORE
+# endif
+# if defined(PERL_NEED_MY_BETOHI)
+#define my_betohi Perl_my_betohi
+# endif
+# if defined(PERL_NEED_MY_BETOHL)
+#define my_betohl Perl_my_betohl
+# endif
+# if defined(PERL_NEED_MY_BETOHS)
#define my_betohs Perl_my_betohs
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLEI
-#ifdef PERL_CORE
-#define my_htolei Perl_my_htolei
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOHI
-#ifdef PERL_CORE
-#define my_letohi Perl_my_letohi
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBEI
-#ifdef PERL_CORE
+# endif
+# if defined(PERL_NEED_MY_HTOBE16)
+#define my_htobe16 Perl_my_htobe16
+# endif
+# if defined(PERL_NEED_MY_HTOBE32)
+#define my_htobe32 Perl_my_htobe32
+# endif
+# if defined(PERL_NEED_MY_HTOBE64)
+#define my_htobe64 Perl_my_htobe64
+# endif
+# if defined(PERL_NEED_MY_HTOBEI)
#define my_htobei Perl_my_htobei
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOHI
-#ifdef PERL_CORE
-#define my_betohi Perl_my_betohi
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOLEL
-#ifdef PERL_CORE
+# endif
+# if defined(PERL_NEED_MY_HTOBEL)
+#define my_htobel Perl_my_htobel
+# endif
+# if defined(PERL_NEED_MY_HTOBES)
+#define my_htobes Perl_my_htobes
+# endif
+# if defined(PERL_NEED_MY_HTOLE16)
+#define my_htole16 Perl_my_htole16
+# endif
+# if defined(PERL_NEED_MY_HTOLE32)
+#define my_htole32 Perl_my_htole32
+# endif
+# if defined(PERL_NEED_MY_HTOLE64)
+#define my_htole64 Perl_my_htole64
+# endif
+# if defined(PERL_NEED_MY_HTOLEI)
+#define my_htolei Perl_my_htolei
+# endif
+# if defined(PERL_NEED_MY_HTOLEL)
#define my_htolel Perl_my_htolel
-#endif
-#endif
-#ifdef PERL_NEED_MY_LETOHL
-#ifdef PERL_CORE
+# endif
+# if defined(PERL_NEED_MY_HTOLES)
+#define my_htoles Perl_my_htoles
+# endif
+# if defined(PERL_NEED_MY_LETOH16)
+#define my_letoh16 Perl_my_letoh16
+# endif
+# if defined(PERL_NEED_MY_LETOH32)
+#define my_letoh32 Perl_my_letoh32
+# endif
+# if defined(PERL_NEED_MY_LETOH64)
+#define my_letoh64 Perl_my_letoh64
+# endif
+# if defined(PERL_NEED_MY_LETOHI)
+#define my_letohi Perl_my_letohi
+# endif
+# if defined(PERL_NEED_MY_LETOHL)
#define my_letohl Perl_my_letohl
-#endif
-#endif
-#ifdef PERL_NEED_MY_HTOBEL
-#ifdef PERL_CORE
-#define my_htobel Perl_my_htobel
-#endif
-#endif
-#ifdef PERL_NEED_MY_BETOHL
-#ifdef PERL_CORE
-#define my_betohl Perl_my_betohl
-#endif
-#endif
-#ifdef PERL_CORE
-#define my_swabn Perl_my_swabn
-#endif
-#define gv_fetchpvn_flags(a,b,c,d) Perl_gv_fetchpvn_flags(aTHX_ a,b,c,d)
-#define gv_fetchsv(a,b,c) Perl_gv_fetchsv(aTHX_ a,b,c)
-#ifdef PERL_CORE
-#define is_gv_magical_sv(a,b) Perl_is_gv_magical_sv(aTHX_ a,b)
-#endif
-#define stashpv_hvname_match(a,b) Perl_stashpv_hvname_match(aTHX_ a,b)
-#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
-#ifdef PERL_CORE
-#define dump_sv_child(a) Perl_dump_sv_child(aTHX_ a)
-#endif
-#endif
-#ifdef PERL_DONT_CREATE_GVSV
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define ckwarn_common(a) S_ckwarn_common(aTHX_ a)
-#endif
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#endif
-#ifdef PERL_CORE
-#define offer_nice_chunk(a,b) Perl_offer_nice_chunk(aTHX_ a,b)
-#endif
-#ifndef SPRINTF_RETURNS_STRLEN
-#endif
-#ifdef PERL_CORE
-#define my_clearenv() Perl_my_clearenv(aTHX)
-#endif
-#ifdef PERL_IMPLICIT_CONTEXT
-#ifdef PERL_GLOBAL_STRUCT_PRIVATE
-#else
-#endif
-#endif
-#ifndef HAS_STRLCAT
-#endif
-#ifndef HAS_STRLCPY
-#endif
-#ifdef PERL_MAD
-#ifdef PERL_CORE
-#define pad_peg Perl_pad_peg
-#endif
-#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#endif
-#endif
-#ifdef PERL_CORE
-#define xmldump_vindent(a,b,c,d) Perl_xmldump_vindent(aTHX_ a,b,c,d)
-#define xmldump_all() Perl_xmldump_all(aTHX)
-#define xmldump_all_perl(a) Perl_xmldump_all_perl(aTHX_ a)
-#define xmldump_packsubs(a) Perl_xmldump_packsubs(aTHX_ a)
-#define xmldump_packsubs_perl(a,b) Perl_xmldump_packsubs_perl(aTHX_ a,b)
-#define xmldump_sub(a) Perl_xmldump_sub(aTHX_ a)
-#define xmldump_sub_perl(a,b) Perl_xmldump_sub_perl(aTHX_ a,b)
-#define xmldump_form(a) Perl_xmldump_form(aTHX_ a)
-#define xmldump_eval() Perl_xmldump_eval(aTHX)
-#define sv_catxmlsv(a,b) Perl_sv_catxmlsv(aTHX_ a,b)
-#define sv_catxmlpvn(a,b,c,d) Perl_sv_catxmlpvn(aTHX_ a,b,c,d)
-#define sv_xmlpeek(a) Perl_sv_xmlpeek(aTHX_ a)
-#define do_pmop_xmldump(a,b,c) Perl_do_pmop_xmldump(aTHX_ a,b,c)
-#define pmop_xmldump(a) Perl_pmop_xmldump(aTHX_ a)
-#define do_op_xmldump(a,b,c) Perl_do_op_xmldump(aTHX_ a,b,c)
-#define op_xmldump(a) Perl_op_xmldump(aTHX_ a)
-#endif
-#ifdef PERL_CORE
-#define newTOKEN(a,b,c) Perl_newTOKEN(aTHX_ a,b,c)
-#define token_free(a) Perl_token_free(aTHX_ a)
-#define token_getmad(a,b,c) Perl_token_getmad(aTHX_ a,b,c)
-#define op_getmad_weak(a,b,c) Perl_op_getmad_weak(aTHX_ a,b,c)
-#define op_getmad(a,b,c) Perl_op_getmad(aTHX_ a,b,c)
-#define prepend_madprops(a,b,c) Perl_prepend_madprops(aTHX_ a,b,c)
-#define append_madprops(a,b,c) Perl_append_madprops(aTHX_ a,b,c)
-#define addmad(a,b,c) Perl_addmad(aTHX_ a,b,c)
-#define newMADsv(a,b) Perl_newMADsv(aTHX_ a,b)
-#define newMADPROP(a,b,c,d) Perl_newMADPROP(aTHX_ a,b,c,d)
-#define mad_free(a) Perl_mad_free(aTHX_ a)
-#endif
-# if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define skipspace0(a) S_skipspace0(aTHX_ a)
-#define skipspace1(a) S_skipspace1(aTHX_ a)
-#define skipspace2(a,b) S_skipspace2(aTHX_ a,b)
-#define start_force(a) S_start_force(aTHX_ a)
-#define curmad(a,b) S_curmad(aTHX_ a,b)
-#endif
# endif
-#ifdef PERL_CORE
-#define madlex() Perl_madlex(aTHX)
-#define madparse() Perl_madparse(aTHX)
-#endif
-#endif
-#if !defined(HAS_SIGNBIT)
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
-#endif
-#ifdef PERL_CORE
-#endif
-#if defined(USE_ITHREADS)
-#ifdef PERL_CORE
+# if defined(PERL_NEED_MY_LETOHS)
+#define my_letohs Perl_my_letohs
+# endif
+# if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
+#define pidgone(a,b) S_pidgone(aTHX_ a,b)
+# endif
+# if defined(USE_ITHREADS)
#define mro_meta_dup(a,b) Perl_mro_meta_dup(aTHX_ a,b)
+#define padlist_dup(a,b) Perl_padlist_dup(aTHX_ a,b)
+# endif
+# if defined(USE_LOCALE_COLLATE)
+#define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b)
+#define mem_collxfrm(a,b,c) Perl_mem_collxfrm(aTHX_ a,b,c)
+# endif
#endif
-#endif
-#define mro_get_linear_isa(a) Perl_mro_get_linear_isa(aTHX_ a)
-#if defined(PERL_IN_MRO_C) || defined(PERL_DECL_PROT)
-#ifdef PERL_CORE
-#define mro_get_linear_isa_dfs(a,b) S_mro_get_linear_isa_dfs(aTHX_ a,b)
-#endif
-#endif
-#ifdef PERL_CORE
-#define mro_isa_changed_in(a) Perl_mro_isa_changed_in(aTHX_ a)
-#endif
-#define mro_method_changed_in(a) Perl_mro_method_changed_in(aTHX_ a)
-#ifdef PERL_CORE
-#define boot_core_mro() Perl_boot_core_mro(aTHX)
-#endif
-#ifdef PERL_CORE
-#endif
-#ifdef PERL_CORE
-#endif
-#define ck_anoncode(a) Perl_ck_anoncode(aTHX_ a)
-#define ck_bitop(a) Perl_ck_bitop(aTHX_ a)
-#define ck_chdir(a) Perl_ck_chdir(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_die(a) Perl_ck_die(aTHX_ a)
-#define ck_each(a) Perl_ck_each(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_exit(a) Perl_ck_exit(aTHX_ a)
-#define ck_ftst(a) Perl_ck_ftst(aTHX_ a)
-#define ck_fun(a) Perl_ck_fun(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_join(a) Perl_ck_join(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_method(a) Perl_ck_method(aTHX_ a)
-#define ck_null(a) Perl_ck_null(aTHX_ a)
-#define ck_open(a) Perl_ck_open(aTHX_ a)
-#define ck_readline(a) Perl_ck_readline(aTHX_ a)
-#define ck_repeat(a) Perl_ck_repeat(aTHX_ a)
-#define ck_require(a) Perl_ck_require(aTHX_ a)
-#define ck_return(a) Perl_ck_return(aTHX_ a)
-#define ck_rfun(a) Perl_ck_rfun(aTHX_ a)
-#define ck_rvconst(a) Perl_ck_rvconst(aTHX_ a)
-#define ck_sassign(a) Perl_ck_sassign(aTHX_ a)
-#define ck_select(a) Perl_ck_select(aTHX_ a)
-#define ck_shift(a) Perl_ck_shift(aTHX_ a)
-#define ck_smartmatch(a) Perl_ck_smartmatch(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_substr(a) Perl_ck_substr(aTHX_ a)
-#define ck_svconst(a) Perl_ck_svconst(aTHX_ a)
-#define ck_trunc(a) Perl_ck_trunc(aTHX_ a)
-#define ck_unpack(a) Perl_ck_unpack(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_aeach() Perl_pp_aeach(aTHX)
-#define pp_aelem() Perl_pp_aelem(aTHX)
-#define pp_aelemfast() Perl_pp_aelemfast(aTHX)
-#define pp_akeys() Perl_pp_akeys(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_avalues() Perl_pp_avalues(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_boolkeys() Perl_pp_boolkeys(aTHX)
-#define pp_break() Perl_pp_break(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_continue() Perl_pp_continue(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_dor() Perl_pp_dor(aTHX)
-#define pp_dorassign() Perl_pp_dorassign(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_entergiven() Perl_pp_entergiven(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_enterwhen() Perl_pp_enterwhen(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_hintseval() Perl_pp_hintseval(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_leavegiven() Perl_pp_leavegiven(aTHX)
-#define pp_leaveloop() Perl_pp_leaveloop(aTHX)
-#define pp_leavesub() Perl_pp_leavesub(aTHX)
-#define pp_leavesublv() Perl_pp_leavesublv(aTHX)
-#define pp_leavetry() Perl_pp_leavetry(aTHX)
-#define pp_leavewhen() Perl_pp_leavewhen(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_method_named() Perl_pp_method_named(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_once() Perl_pp_once(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_say() Perl_pp_say(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_smartmatch() Perl_pp_smartmatch(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_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 */
#endif /* #ifndef PERL_NO_SHORT_NAMES */
-
/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to
disable them.
*/
@@ -4897,21 +1686,21 @@
*/
# define perl_atexit(a,b) call_atexit(a,b)
# define perl_call_argv(a,b,c) call_argv(a,b,c)
-# define perl_call_pv(a,b) call_pv(a,b)
# define perl_call_method(a,b) call_method(a,b)
+# define perl_call_pv(a,b) call_pv(a,b)
# define perl_call_sv(a,b) call_sv(a,b)
-# define perl_eval_sv(a,b) eval_sv(a,b)
# define perl_eval_pv(a,b) eval_pv(a,b)
-# define perl_require_pv(a) require_pv(a)
-# define perl_get_sv(a,b) get_sv(a,b)
+# define perl_eval_sv(a,b) eval_sv(a,b)
# define perl_get_av(a,b) get_av(a,b)
-# define perl_get_hv(a,b) get_hv(a,b)
# define perl_get_cv(a,b) get_cv(a,b)
+# define perl_get_hv(a,b) get_hv(a,b)
+# define perl_get_sv(a,b) get_sv(a,b)
# define perl_init_i18nl10n(a) init_i18nl10n(a)
# define perl_init_i18nl14n(a) init_i18nl14n(a)
-# define perl_new_ctype(a) new_ctype(a)
# define perl_new_collate(a) new_collate(a)
+# define perl_new_ctype(a) new_ctype(a)
# define perl_new_numeric(a) new_numeric(a)
+# define perl_require_pv(a) require_pv(a)
/* varargs functions can't be handled with CPP macros. :-(
This provides a set of compatibility functions that don't take
@@ -4919,38 +1708,38 @@
dTHX.
*/
#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_SHORT_NAMES)
-# define croak Perl_croak_nocontext
-# define deb Perl_deb_nocontext
-# define die Perl_die_nocontext
-# define form Perl_form_nocontext
-# define load_module Perl_load_module_nocontext
-# define mess Perl_mess_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 warner Perl_warner_nocontext
-# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
-# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
+# define croak Perl_croak_nocontext
+# define deb Perl_deb_nocontext
+# define die Perl_die_nocontext
+# define form Perl_form_nocontext
+# define load_module Perl_load_module_nocontext
+# define mess Perl_mess_nocontext
+# define newSVpvf Perl_newSVpvf_nocontext
+# define sv_catpvf Perl_sv_catpvf_nocontext
+# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
+# define sv_setpvf Perl_sv_setpvf_nocontext
+# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
+# define warn Perl_warn_nocontext
+# define warner Perl_warner_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_deb_nocontext Perl_deb
-# define Perl_form_nocontext Perl_form
+# define Perl_croak_nocontext Perl_croak
+# define Perl_deb_nocontext Perl_deb
+# define Perl_die_nocontext Perl_die
+# define Perl_form_nocontext Perl_form
# define Perl_load_module_nocontext Perl_load_module
-# define Perl_mess_nocontext Perl_mess
+# define Perl_mess_nocontext Perl_mess
# 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_warner_nocontext Perl_warner
# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg
+# define Perl_sv_setpvf_nocontext Perl_sv_setpvf
# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg
+# define Perl_warn_nocontext Perl_warn
+# define Perl_warner_nocontext Perl_warner
#endif
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/embedvar.h b/Master/tlpkg/tlperl/lib/CORE/embedvar.h
index 63ed46ee2ab..bb179fdcf44 100644
--- a/Master/tlpkg/tlperl/lib/CORE/embedvar.h
+++ b/Master/tlpkg/tlperl/lib/CORE/embedvar.h
@@ -1,16 +1,16 @@
-/* -*- buffer-read-only: t -*-
+/* -*- buffer-read-only: t -*-
*
* embedvar.h
*
- * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- * 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+ * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by embed.pl from data in embed.fnc, embed.pl,
- * pp.sym, intrpvar.h, and perlvars.h.
+ * This file is built by regen/embed.pl from data in embed.fnc,
+ * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
* Any changes made here will be lost!
*
* Edit those files and run 'make regen_headers' to effect changes.
@@ -65,12 +65,14 @@
#define PL_Xpv (vTHX->IXpv)
#define PL_amagic_generation (vTHX->Iamagic_generation)
#define PL_an (vTHX->Ian)
+#define PL_apiversion (vTHX->Iapiversion)
#define PL_argvgv (vTHX->Iargvgv)
#define PL_argvout_stack (vTHX->Iargvout_stack)
#define PL_argvoutgv (vTHX->Iargvoutgv)
#define PL_basetime (vTHX->Ibasetime)
#define PL_beginav (vTHX->Ibeginav)
#define PL_beginav_save (vTHX->Ibeginav_save)
+#define PL_blockhooks (vTHX->Iblockhooks)
#define PL_body_arenas (vTHX->Ibody_arenas)
#define PL_body_roots (vTHX->Ibody_roots)
#define PL_bodytarget (vTHX->Ibodytarget)
@@ -104,6 +106,7 @@
#define PL_curstname (vTHX->Icurstname)
#define PL_custom_op_descs (vTHX->Icustom_op_descs)
#define PL_custom_op_names (vTHX->Icustom_op_names)
+#define PL_custom_ops (vTHX->Icustom_ops)
#define PL_cv_has_eval (vTHX->Icv_has_eval)
#define PL_dbargs (vTHX->Idbargs)
#define PL_debstash (vTHX->Idebstash)
@@ -116,8 +119,6 @@
#define PL_delaymagic (vTHX->Idelaymagic)
#define PL_destroyhook (vTHX->Idestroyhook)
#define PL_diehook (vTHX->Idiehook)
-#define PL_dirty (vTHX->Idirty)
-#define PL_doextract (vTHX->Idoextract)
#define PL_doswitches (vTHX->Idoswitches)
#define PL_dowarn (vTHX->Idowarn)
#define PL_dumper_fd (vTHX->Idumper_fd)
@@ -204,8 +205,6 @@
#define PL_my_cxt_list (vTHX->Imy_cxt_list)
#define PL_my_cxt_size (vTHX->Imy_cxt_size)
#define PL_na (vTHX->Ina)
-#define PL_nice_chunk (vTHX->Inice_chunk)
-#define PL_nice_chunk_size (vTHX->Inice_chunk_size)
#define PL_nomemok (vTHX->Inomemok)
#define PL_numeric_local (vTHX->Inumeric_local)
#define PL_numeric_name (vTHX->Inumeric_name)
@@ -233,6 +232,7 @@
#define PL_perl_destruct_level (vTHX->Iperl_destruct_level)
#define PL_perldb (vTHX->Iperldb)
#define PL_perlio (vTHX->Iperlio)
+#define PL_phase (vTHX->Iphase)
#define PL_pidstatus (vTHX->Ipidstatus)
#define PL_ppid (vTHX->Ippid)
#define PL_preambleav (vTHX->Ipreambleav)
@@ -254,7 +254,9 @@
#define PL_rehash_seed (vTHX->Irehash_seed)
#define PL_rehash_seed_set (vTHX->Irehash_seed_set)
#define PL_replgv (vTHX->Ireplgv)
+#define PL_restartjmpenv (vTHX->Irestartjmpenv)
#define PL_restartop (vTHX->Irestartop)
+#define PL_rpeepp (vTHX->Irpeepp)
#define PL_rs (vTHX->Irs)
#define PL_runops (vTHX->Irunops)
#define PL_savebegin (vTHX->Isavebegin)
@@ -272,6 +274,7 @@
#define PL_sharehook (vTHX->Isharehook)
#define PL_sig_pending (vTHX->Isig_pending)
#define PL_sighandlerp (vTHX->Isighandlerp)
+#define PL_signalhook (vTHX->Isignalhook)
#define PL_signals (vTHX->Isignals)
#define PL_slab_count (vTHX->Islab_count)
#define PL_slabs (vTHX->Islabs)
@@ -339,6 +342,8 @@
#define PL_utf8_ascii (vTHX->Iutf8_ascii)
#define PL_utf8_cntrl (vTHX->Iutf8_cntrl)
#define PL_utf8_digit (vTHX->Iutf8_digit)
+#define PL_utf8_foldable (vTHX->Iutf8_foldable)
+#define PL_utf8_foldclosures (vTHX->Iutf8_foldclosures)
#define PL_utf8_graph (vTHX->Iutf8_graph)
#define PL_utf8_idcont (vTHX->Iutf8_idcont)
#define PL_utf8_idstart (vTHX->Iutf8_idstart)
@@ -356,6 +361,8 @@
#define PL_utf8_toupper (vTHX->Iutf8_toupper)
#define PL_utf8_upper (vTHX->Iutf8_upper)
#define PL_utf8_xdigit (vTHX->Iutf8_xdigit)
+#define PL_utf8_xidcont (vTHX->Iutf8_xidcont)
+#define PL_utf8_xidstart (vTHX->Iutf8_xidstart)
#define PL_utf8cache (vTHX->Iutf8cache)
#define PL_utf8locale (vTHX->Iutf8locale)
#define PL_warnhook (vTHX->Iwarnhook)
@@ -392,12 +399,14 @@
#define PL_IXpv PL_Xpv
#define PL_Iamagic_generation PL_amagic_generation
#define PL_Ian PL_an
+#define PL_Iapiversion PL_apiversion
#define PL_Iargvgv PL_argvgv
#define PL_Iargvout_stack PL_argvout_stack
#define PL_Iargvoutgv PL_argvoutgv
#define PL_Ibasetime PL_basetime
#define PL_Ibeginav PL_beginav
#define PL_Ibeginav_save PL_beginav_save
+#define PL_Iblockhooks PL_blockhooks
#define PL_Ibody_arenas PL_body_arenas
#define PL_Ibody_roots PL_body_roots
#define PL_Ibodytarget PL_bodytarget
@@ -431,6 +440,7 @@
#define PL_Icurstname PL_curstname
#define PL_Icustom_op_descs PL_custom_op_descs
#define PL_Icustom_op_names PL_custom_op_names
+#define PL_Icustom_ops PL_custom_ops
#define PL_Icv_has_eval PL_cv_has_eval
#define PL_Idbargs PL_dbargs
#define PL_Idebstash PL_debstash
@@ -443,8 +453,6 @@
#define PL_Idelaymagic PL_delaymagic
#define PL_Idestroyhook PL_destroyhook
#define PL_Idiehook PL_diehook
-#define PL_Idirty PL_dirty
-#define PL_Idoextract PL_doextract
#define PL_Idoswitches PL_doswitches
#define PL_Idowarn PL_dowarn
#define PL_Idumper_fd PL_dumper_fd
@@ -531,8 +539,6 @@
#define PL_Imy_cxt_list PL_my_cxt_list
#define PL_Imy_cxt_size PL_my_cxt_size
#define PL_Ina PL_na
-#define PL_Inice_chunk PL_nice_chunk
-#define PL_Inice_chunk_size PL_nice_chunk_size
#define PL_Inomemok PL_nomemok
#define PL_Inumeric_local PL_numeric_local
#define PL_Inumeric_name PL_numeric_name
@@ -560,6 +566,7 @@
#define PL_Iperl_destruct_level PL_perl_destruct_level
#define PL_Iperldb PL_perldb
#define PL_Iperlio PL_perlio
+#define PL_Iphase PL_phase
#define PL_Ipidstatus PL_pidstatus
#define PL_Ippid PL_ppid
#define PL_Ipreambleav PL_preambleav
@@ -581,7 +588,9 @@
#define PL_Irehash_seed PL_rehash_seed
#define PL_Irehash_seed_set PL_rehash_seed_set
#define PL_Ireplgv PL_replgv
+#define PL_Irestartjmpenv PL_restartjmpenv
#define PL_Irestartop PL_restartop
+#define PL_Irpeepp PL_rpeepp
#define PL_Irs PL_rs
#define PL_Irunops PL_runops
#define PL_Isavebegin PL_savebegin
@@ -599,6 +608,7 @@
#define PL_Isharehook PL_sharehook
#define PL_Isig_pending PL_sig_pending
#define PL_Isighandlerp PL_sighandlerp
+#define PL_Isignalhook PL_signalhook
#define PL_Isignals PL_signals
#define PL_Islab_count PL_slab_count
#define PL_Islabs PL_slabs
@@ -666,6 +676,8 @@
#define PL_Iutf8_ascii PL_utf8_ascii
#define PL_Iutf8_cntrl PL_utf8_cntrl
#define PL_Iutf8_digit PL_utf8_digit
+#define PL_Iutf8_foldable PL_utf8_foldable
+#define PL_Iutf8_foldclosures PL_utf8_foldclosures
#define PL_Iutf8_graph PL_utf8_graph
#define PL_Iutf8_idcont PL_utf8_idcont
#define PL_Iutf8_idstart PL_utf8_idstart
@@ -683,6 +695,8 @@
#define PL_Iutf8_toupper PL_utf8_toupper
#define PL_Iutf8_upper PL_utf8_upper
#define PL_Iutf8_xdigit PL_utf8_xdigit
+#define PL_Iutf8_xidcont PL_utf8_xidcont
+#define PL_Iutf8_xidstart PL_utf8_xidstart
#define PL_Iutf8cache PL_utf8cache
#define PL_Iutf8locale PL_utf8locale
#define PL_Iwarnhook PL_warnhook
@@ -701,6 +715,8 @@
#define PL_GYes (my_vars->GYes)
#define PL_appctx (my_vars->Gappctx)
#define PL_Gappctx (my_vars->Gappctx)
+#define PL_charclass (my_vars->Gcharclass)
+#define PL_Gcharclass (my_vars->Gcharclass)
#define PL_check (my_vars->Gcheck)
#define PL_Gcheck (my_vars->Gcheck)
#define PL_csighandlerp (my_vars->Gcsighandlerp)
@@ -765,8 +781,6 @@
#define PL_Gsig_handlers_initted (my_vars->Gsig_handlers_initted)
#define PL_sig_ignoring (my_vars->Gsig_ignoring)
#define PL_Gsig_ignoring (my_vars->Gsig_ignoring)
-#define PL_sig_sv (my_vars->Gsig_sv)
-#define PL_Gsig_sv (my_vars->Gsig_sv)
#define PL_sig_trapped (my_vars->Gsig_trapped)
#define PL_Gsig_trapped (my_vars->Gsig_trapped)
#define PL_sigfpe_saved (my_vars->Gsigfpe_saved)
@@ -793,6 +807,7 @@
#define PL_GNo PL_No
#define PL_GYes PL_Yes
#define PL_Gappctx PL_appctx
+#define PL_Gcharclass PL_charclass
#define PL_Gcheck PL_check
#define PL_Gcsighandlerp PL_csighandlerp
#define PL_Gcurinterp PL_curinterp
@@ -825,7 +840,6 @@
#define PL_Gsig_defaulting PL_sig_defaulting
#define PL_Gsig_handlers_initted PL_sig_handlers_initted
#define PL_Gsig_ignoring PL_sig_ignoring
-#define PL_Gsig_sv PL_sig_sv
#define PL_Gsig_trapped PL_sig_trapped
#define PL_Gsigfpe_saved PL_sigfpe_saved
#define PL_Gsubversion PL_subversion
@@ -839,37 +853,4 @@
#endif /* PERL_GLOBAL_STRUCT */
-#ifdef PERL_POLLUTE /* disabled by default in 5.6.0 */
-
-#define DBassertion PL_DBassertion
-#define DBsingle PL_DBsingle
-#define DBsub PL_DBsub
-#define compiling PL_compiling
-#define curcop PL_curcop
-#define curstash PL_curstash
-#define debstash PL_debstash
-#define defgv PL_defgv
-#define diehook PL_diehook
-#define dirty PL_dirty
-#define dowarn PL_dowarn
-#define errgv PL_errgv
-#define na PL_na
-#define no_modify PL_no_modify
-#define perl_destruct_level PL_perl_destruct_level
-#define perldb PL_perldb
-#define ppaddr PL_ppaddr
-#define rsfp PL_rsfp
-#define rsfp_filters PL_rsfp_filters
-#define stack_base PL_stack_base
-#define stack_sp PL_stack_sp
-#define stdingv PL_stdingv
-#define sv_arenaroot PL_sv_arenaroot
-#define sv_no PL_sv_no
-#define sv_undef PL_sv_undef
-#define sv_yes PL_sv_yes
-#define tainted PL_tainted
-#define tainting PL_tainting
-
-#endif /* PERL_POLLUTE */
-
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/gv.h b/Master/tlpkg/tlperl/lib/CORE/gv.h
index 4986b43cc60..ab5c7889872 100644
--- a/Master/tlpkg/tlperl/lib/CORE/gv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/gv.h
@@ -27,10 +27,15 @@ struct gp {
#if defined (DEBUGGING) && defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) && !defined(__INTEL_COMPILER)
# define GvGP(gv) \
- (*({GV *const _gvgp = (GV *) (gv); \
+ (0+(*({GV *const _gvgp = (GV *) (gv); \
assert(SvTYPE(_gvgp) == SVt_PVGV || SvTYPE(_gvgp) == SVt_PVLV); \
assert(isGV_with_GP(_gvgp)); \
- &((_gvgp)->sv_u.svu_gp);}))
+ &((_gvgp)->sv_u.svu_gp);})))
+# define GvGP_set(gv,gp) \
+ {GV *const _gvgp = (GV *) (gv); \
+ assert(SvTYPE(_gvgp) == SVt_PVGV || SvTYPE(_gvgp) == SVt_PVLV); \
+ assert(isGV_with_GP(_gvgp)); \
+ (_gvgp)->sv_u.svu_gp = (gp); }
# define GvFLAGS(gv) \
(*({GV *const _gvflags = (GV *) (gv); \
assert(SvTYPE(_gvflags) == SVt_PVGV || SvTYPE(_gvflags) == SVt_PVLV); \
@@ -52,7 +57,8 @@ struct gp {
# define GvNAME_get(gv) ({ assert(GvNAME_HEK(gv)); (char *)HEK_KEY(GvNAME_HEK(gv)); })
# define GvNAMELEN_get(gv) ({ assert(GvNAME_HEK(gv)); HEK_LEN(GvNAME_HEK(gv)); })
#else
-# define GvGP(gv) ((gv)->sv_u.svu_gp)
+# define GvGP(gv) (0+(gv)->sv_u.svu_gp)
+# define GvGP_set(gv,gp) ((gv)->sv_u.svu_gp = (gp))
# define GvFLAGS(gv) (GvXPVGV(gv)->xpv_cur)
# define GvSTASH(gv) (GvXPVGV(gv)->xnv_u.xgv_stash)
# define GvNAME_HEK(gv) (GvXPVGV(gv)->xiv_u.xivu_namehek)
@@ -88,7 +94,17 @@ Return the SV from the GV.
#endif
#define GvREFCNT(gv) (GvGP(gv)->gp_refcnt)
-#define GvIO(gv) ((gv) && SvTYPE((const SV*)gv) == SVt_PVGV && GvGP(gv) ? GvIOp(gv) : NULL)
+#define GvIO(gv) \
+ ( \
+ (gv) \
+ && ( \
+ SvTYPE((const SV*)(gv)) == SVt_PVGV \
+ || SvTYPE((const SV*)(gv)) == SVt_PVLV \
+ ) \
+ && GvGP(gv) \
+ ? GvIOp(gv) \
+ : NULL \
+ )
#define GvIOp(gv) (GvGP(gv)->gp_io)
#define GvIOn(gv) (GvIO(gv) ? GvIOp(gv) : GvIOp(gv_IOadd(gv)))
@@ -104,7 +120,8 @@ Return the SV from the GV.
GvGP(gv)->gp_hv : \
GvGP(gv_HVadd(gv))->gp_hv)
-#define GvCV(gv) (GvGP(gv)->gp_cv)
+#define GvCV(gv) (0+GvGP(gv)->gp_cv)
+#define GvCV_set(gv,cv) (GvGP(gv)->gp_cv = (cv))
#define GvCVGEN(gv) (GvGP(gv)->gp_cvgen)
#define GvCVu(gv) (GvGP(gv)->gp_cvgen ? NULL : GvGP(gv)->gp_cv)
@@ -114,6 +131,7 @@ Return the SV from the GV.
#define GvFILEGV(gv) (gv_fetchfile(GvFILE(gv)))
#define GvEGV(gv) (GvGP(gv)->gp_egv)
+#define GvEGVx(gv) (isGV_with_GP(gv) ? GvEGV(gv) : NULL)
#define GvENAME(gv) GvNAME(GvEGV(gv) ? GvEGV(gv) : gv)
#define GvESTASH(gv) GvSTASH(GvEGV(gv) ? GvEGV(gv) : gv)
@@ -127,6 +145,9 @@ Return the SV from the GV.
#define GVf_IMPORTED_HV 0x40
#define GVf_IMPORTED_CV 0x80
+/* Temporary flag for the tie $handle deprecation warnings. */
+#define GVf_TIEWARNED 0x100
+
#define GvINTRO(gv) (GvFLAGS(gv) & GVf_INTRO)
#define GvINTRO_on(gv) (GvFLAGS(gv) |= GVf_INTRO)
#define GvINTRO_off(gv) (GvFLAGS(gv) &= ~GVf_INTRO)
@@ -167,14 +188,14 @@ Return the SV from the GV.
# define Nullgv Null(GV*)
#endif
-#define DM_UID 0x003
-#define DM_RUID 0x001
-#define DM_EUID 0x002
-#define DM_ARRAY 0x004
-#define DM_GID 0x030
-#define DM_RGID 0x010
-#define DM_EGID 0x020
-#define DM_DELAY 0x100
+#define DM_RUID 0x001
+#define DM_EUID 0x002
+#define DM_UID (DM_RUID|DM_EUID)
+#define DM_ARRAY_ISA 0x004
+#define DM_RGID 0x010
+#define DM_EGID 0x020
+#define DM_GID (DM_RGID|DM_EGID)
+#define DM_DELAY 0x100
/*
* symbol creation flags, for use in gv_fetchpv() and get_*v()
diff --git a/Master/tlpkg/tlperl/lib/CORE/handy.h b/Master/tlpkg/tlperl/lib/CORE/handy.h
index d12972d5297..6541c95c357 100644
--- a/Master/tlpkg/tlperl/lib/CORE/handy.h
+++ b/Master/tlpkg/tlperl/lib/CORE/handy.h
@@ -110,6 +110,12 @@ Null SV pointer. (No longer available when C<PERL_CORE> is defined.)
# define HAS_BOOL 1
#endif
+/* a simple (bool) cast may not do the right thing: if bool is defined
+ * as char for example, then the cast from int is implementation-defined
+ */
+
+#define cBOOL(cbool) ((bool)!!(cbool))
+
/* Try to figure out __func__ or __FUNCTION__ equivalent, if any.
* XXX Should really be a Configure probe, with HAS__FUNCTION__
* and FUNCTION__ as results.
@@ -202,19 +208,6 @@ typedef U64TYPE U64;
# endif
#endif
-/* HMB H.Merijn Brand - a placeholder for preparing Configure patches:
- *
- * USE_DTRACE HAS_PSEUDOFORK HAS_TIMEGM LOCALTIME_R_NEEDS_TZSET
- * GMTIME_MAX GMTIME_MIN LOCALTIME_MAX LOCALTIME_MIN
- * HAS_CTIME64 HAS_LOCALTIME64 HAS_GMTIME64 HAS_DIFFTIME64
- * HAS_MKTIME64 HAS_ASCTIME64 HAS_GETADDRINFO HAS_GETNAMEINFO
- * HAS_INETNTOP HAS_INETPTON CHARBITS
- * Not (yet) used at top level, but mention them for metaconfig
- */
-
-/* Mention I8SIZE, U8SIZE, I16SIZE, U16SIZE, I32SIZE, U32SIZE,
- I64SIZE, and U64SIZE here so that metaconfig pulls them in. */
-
#if defined(UINT8_MAX) && defined(INT16_MAX) && defined(INT32_MAX)
/* I8_MAX and I8_MIN constants are not defined, as I8 is an ambiguous type.
@@ -283,17 +276,41 @@ pair.
Like C<newSVpvn_share>, but takes a literal string instead of a string/length
pair and omits the hash parameter.
+=for apidoc Am|void|sv_catpvs_flags|SV* sv|const char* s|I32 flags
+Like C<sv_catpvn_flags>, but takes a literal string instead of a
+string/length pair.
+
+=for apidoc Am|void|sv_catpvs_nomg|SV* sv|const char* s
+Like C<sv_catpvn_nomg>, but takes a literal string instead of a
+string/length pair.
+
=for apidoc Am|void|sv_catpvs|SV* sv|const char* s
Like C<sv_catpvn>, but takes a literal string instead of a string/length pair.
+=for apidoc Am|void|sv_catpvs_mg|SV* sv|const char* s
+Like C<sv_catpvn_mg>, but takes a literal string instead of a
+string/length pair.
+
=for apidoc Am|void|sv_setpvs|SV* sv|const char* s
Like C<sv_setpvn>, but takes a literal string instead of a string/length pair.
+=for apidoc Am|void|sv_setpvs_mg|SV* sv|const char* s
+Like C<sv_setpvn_mg>, but takes a literal string instead of a
+string/length pair.
+
+=for apidoc Am|SV *|sv_setref_pvs|const char* s
+Like C<sv_setref_pvn>, but takes a literal string instead of a
+string/length pair.
+
=head1 Memory Management
=for apidoc Ama|char*|savepvs|const char* s
Like C<savepvn>, but takes a literal string instead of a string/length pair.
+=for apidoc Ama|char*|savesharedpvs|const char* s
+A version of C<savepvs()> which allocates the duplicate string in memory
+which is shared between threads.
+
=head1 GV Functions
=for apidoc Am|HV*|gv_stashpvs|const char* name|I32 create
@@ -308,6 +325,13 @@ Like C<hv_fetch>, but takes a literal string instead of a string/length pair.
Like C<hv_store>, but takes a literal string instead of a string/length pair
and omits the hash parameter.
+=head1 Lexer interface
+
+=for apidoc Amx|void|lex_stuff_pvs|const char *pv|U32 flags
+
+Like L</lex_stuff_pvn>, but takes a literal string instead of a
+string/length pair.
+
=cut
*/
@@ -324,11 +348,28 @@ and omits the hash parameter.
#define newSVpvs_flags(str,flags) \
Perl_newSVpvn_flags(aTHX_ STR_WITH_LEN(str), flags)
#define newSVpvs_share(str) Perl_newSVpvn_share(aTHX_ STR_WITH_LEN(str), 0)
-#define sv_catpvs(sv, str) Perl_sv_catpvn_flags(aTHX_ sv, STR_WITH_LEN(str), SV_GMAGIC)
+#define sv_catpvs_flags(sv, str, flags) \
+ Perl_sv_catpvn_flags(aTHX_ sv, STR_WITH_LEN(str), flags)
+#define sv_catpvs_nomg(sv, str) \
+ Perl_sv_catpvn_flags(aTHX_ sv, STR_WITH_LEN(str), 0)
+#define sv_catpvs(sv, str) \
+ Perl_sv_catpvn_flags(aTHX_ sv, STR_WITH_LEN(str), SV_GMAGIC)
+#define sv_catpvs_mg(sv, str) \
+ Perl_sv_catpvn_flags(aTHX_ sv, STR_WITH_LEN(str), SV_GMAGIC|SV_SMAGIC)
#define sv_setpvs(sv, str) Perl_sv_setpvn(aTHX_ sv, STR_WITH_LEN(str))
+#define sv_setpvs_mg(sv, str) Perl_sv_setpvn_mg(aTHX_ sv, STR_WITH_LEN(str))
+#define sv_setref_pvs(rv, classname, str) \
+ Perl_sv_setref_pvn(aTHX_ rv, classname, STR_WITH_LEN(str))
#define savepvs(str) Perl_savepvn(aTHX_ STR_WITH_LEN(str))
-#define gv_stashpvs(str, create) Perl_gv_stashpvn(aTHX_ STR_WITH_LEN(str), create)
-#define gv_fetchpvs(namebeg, add, sv_type) Perl_gv_fetchpvn_flags(aTHX_ STR_WITH_LEN(namebeg), add, sv_type)
+#define savesharedpvs(str) Perl_savesharedpvn(aTHX_ STR_WITH_LEN(str))
+#define gv_stashpvs(str, create) \
+ Perl_gv_stashpvn(aTHX_ STR_WITH_LEN(str), create)
+#define gv_fetchpvs(namebeg, add, sv_type) \
+ Perl_gv_fetchpvn_flags(aTHX_ STR_WITH_LEN(namebeg), add, sv_type)
+#define gv_fetchpvn(namebeg, len, add, sv_type) \
+ Perl_gv_fetchpvn_flags(aTHX_ namebeg, len, add, sv_type)
+#define sv_catxmlpvs(dsv, str, utf8) \
+ Perl_sv_catxmlpvn(aTHX_ dsv, STR_WITH_LEN(str), utf8)
#define hv_fetchs(hv,key,lval) \
((SV **)Perl_hv_common(aTHX_ (hv), NULL, STR_WITH_LEN(key), 0, \
(lval) ? (HV_FETCH_JUST_SV | HV_FETCH_LVALUE) \
@@ -338,6 +379,8 @@ and omits the hash parameter.
((SV **)Perl_hv_common(aTHX_ (hv), NULL, STR_WITH_LEN(key), 0, \
(HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), (val), 0))
+#define lex_stuff_pvs(pv,flags) Perl_lex_stuff_pvn(aTHX_ STR_WITH_LEN(pv), flags)
+
#define get_cvs(str, flags) \
Perl_get_cvn_flags(aTHX_ STR_WITH_LEN(str), (flags))
@@ -398,7 +441,7 @@ C<strncmp>).
#endif
#define memEQs(s1, l, s2) \
- (sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1)))
+ (sizeof(s2)-1 == l && memEQ(s1, ("" s2 ""), (sizeof(s2)-1)))
#define memNEs(s1, l, s2) !memEQs(s1, l, s2)
/*
@@ -423,100 +466,325 @@ C<strncmp>).
/*
=head1 Character classes
-
-=for apidoc Am|bool|isALNUM|char ch
-Returns a boolean indicating whether the C C<char> is a US-ASCII (Basic Latin)
-alphanumeric character (including underscore) or digit.
+There are three variants for all the functions in this section. The base ones
+operate using the character set of the platform Perl is running on. The ones
+with an C<_A> suffix operate on the ASCII character set, and the ones with an
+C<_L1> suffix operate on the full Latin1 character set. All are unaffected by
+locale
+
+For ASCII platforms, the base function with no suffix and the one with the
+C<_A> suffix are identical. The function with the C<_L1> suffix imposes the
+Latin-1 character set onto the platform. That is, the code points that are
+ASCII are unaffected, since ASCII is a subset of Latin-1. But the non-ASCII
+code points are treated as if they are Latin-1 characters. For example,
+C<isSPACE_L1()> will return true when called with the code point 0xA0, which is
+the Latin-1 NO-BREAK SPACE.
+
+For EBCDIC platforms, the base function with no suffix and the one with the
+C<_L1> suffix should be identical, since, as of this writing, the EBCDIC code
+pages that Perl knows about all are equivalent to Latin-1. The function that
+ends in an C<_A> suffix will not return true unless the specified character also
+has an ASCII equivalent.
=for apidoc Am|bool|isALPHA|char ch
-Returns a boolean indicating whether the C C<char> is a US-ASCII (Basic Latin)
-alphabetic character.
+Returns a boolean indicating whether the specified character is an
+alphabetic character in the platform's native character set.
+See the L<top of this section|/Character classes> for an explanation of variants
+C<isALPHA_A> and C<isALPHA_L1>.
-=for apidoc Am|bool|isSPACE|char ch
-Returns a boolean indicating whether the C C<char> is a US-ASCII (Basic Latin)
-whitespace.
+=for apidoc Am|bool|isASCII|char ch
+Returns a boolean indicating whether the specified character is one of the 128
+characters in the ASCII character set. On non-ASCII platforms, it is if this
+character corresponds to an ASCII character. Variants C<isASCII_A()> and
+C<isASCII_L1()> are identical to C<isASCII()>.
=for apidoc Am|bool|isDIGIT|char ch
-Returns a boolean indicating whether the C C<char> is a US-ASCII (Basic Latin)
-digit.
-
-=for apidoc Am|bool|isUPPER|char ch
-Returns a boolean indicating whether the C C<char> is a US-ASCII (Basic Latin)
-uppercase character.
+Returns a boolean indicating whether the specified character is a
+digit in the platform's native character set.
+Variants C<isDIGIT_A> and C<isDIGIT_L1> are identical to C<isDIGIT>.
=for apidoc Am|bool|isLOWER|char ch
-Returns a boolean indicating whether the C C<char> is a US-ASCII (Basic Latin)
-lowercase character.
+Returns a boolean indicating whether the specified character is a
+lowercase character in the platform's native character set.
+See the L<top of this section|/Character classes> for an explanation of variants
+C<isLOWER_A> and C<isLOWER_L1>.
+
+=for apidoc Am|bool|isOCTAL|char ch
+Returns a boolean indicating whether the specified character is an
+octal digit, [0-7] in the platform's native character set.
+Variants C<isOCTAL_A> and C<isOCTAL_L1> are identical to C<isOCTAL>.
+
+=for apidoc Am|bool|isSPACE|char ch
+Returns a boolean indicating whether the specified character is a
+whitespace character in the platform's native character set. This is the same
+as what C<\s> matches in a regular expression.
+See the L<top of this section|/Character classes> for an explanation of variants
+C<isSPACE_A> and C<isSPACE_L1>.
+
+=for apidoc Am|bool|isUPPER|char ch
+Returns a boolean indicating whether the specified character is an
+uppercase character in the platform's native character set.
+See the L<top of this section|/Character classes> for an explanation of variants
+C<isUPPER_A> and C<isUPPER_L1>.
+
+=for apidoc Am|bool|isWORDCHAR|char ch
+Returns a boolean indicating whether the specified character is a
+character that is any of: alphabetic, numeric, or an underscore. This is the
+same as what C<\w> matches in a regular expression.
+C<isALNUM()> is a synonym provided for backward compatibility. Note that it
+does not have the standard C language meaning of alphanumeric, since it matches
+an underscore and the standard meaning does not.
+See the L<top of this section|/Character classes> for an explanation of variants
+C<isWORDCHAR_A> and C<isWORDCHAR_L1>.
+
+=for apidoc Am|bool|isXDIGIT|char ch
+Returns a boolean indicating whether the specified character is a hexadecimal
+digit, [0-9A-Fa-f]. Variants C<isXDIGIT_A()> and C<isXDIGIT_L1()> are
+identical to C<isXDIGIT()>.
+
+=head1 Character case changing
=for apidoc Am|char|toUPPER|char ch
-Converts the specified character to uppercase. Characters outside the
-US-ASCII (Basic Latin) range are viewed as not having any case.
+Converts the specified character to uppercase in the platform's native
+character set, if possible; otherwise returns the input character itself.
=for apidoc Am|char|toLOWER|char ch
-Converts the specified character to lowercase. Characters outside the
-US-ASCII (Basic Latin) range are viewed as not having any case.
+Converts the specified character to lowercase in the platform's native
+character set, if possible; otherwise returns the input character itself.
=cut
+
+Note that these macros are repeated in Devel::PPPort, so should also be
+patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
+
*/
-#define isALNUM(c) (isALPHA(c) || isDIGIT(c) || (c) == '_')
-#define isIDFIRST(c) (isALPHA(c) || (c) == '_')
-#define isALPHA(c) (isUPPER(c) || isLOWER(c))
-/* ALPHAU includes Unicode semantics for latin1 characters. It has an extra
- * >= AA test to speed up ASCII-only tests at the expense of the others */
-#define isALPHAU(c) (isALPHA(c) || (NATIVE_TO_UNI((U8) c) >= 0xAA \
- && ((NATIVE_TO_UNI((U8) c) >= 0xC0 \
- && NATIVE_TO_UNI((U8) c) != 0xD7 && NATIVE_TO_UNI((U8) c) != 0xF7) \
- || NATIVE_TO_UNI((U8) c) == 0xAA \
- || NATIVE_TO_UNI((U8) c) == 0xB5 \
- || NATIVE_TO_UNI((U8) c) == 0xBA)))
-#define isALNUMU(c) (isDIGIT(c) || isALPHAU(c) || (c) == '_')
-
-/* continuation character for legal NAME in \N{NAME} */
-#define isCHARNAME_CONT(c) (isALNUMU(c) || (c) == ' ' || (c) == '-' || (c) == '(' || (c) == ')' || (c) == ':' || NATIVE_TO_UNI((U8) c) == 0xA0)
-#define isSPACE(c) \
- ((c) == ' ' || (c) == '\t' || (c) == '\n' || (c) =='\r' || (c) == '\f')
-#define isPSXSPC(c) (isSPACE(c) || (c) == '\v')
-#define isBLANK(c) ((c) == ' ' || (c) == '\t')
-#define isDIGIT(c) ((c) >= '0' && (c) <= '9')
+/* FITS_IN_8_BITS(c) returns true if c occupies no more than 8 bits. It is
+ * designed to be hopefully bomb-proof, making sure that no bits of
+ * information are lost even on a 64-bit machine, but to get the compiler to
+ * optimize it out if possible. This is because Configure makes sure that the
+ * machine has an 8-bit byte, so if c is stored in a byte, the sizeof()
+ * guarantees that this evaluates to a constant true at compile time. The use
+ * of the mask instead of '< 256' keeps gcc from complaining that it is alway
+ * true, when c's storage class is a byte. Use U64TYPE because U64 is known
+ * only in the perl core, and this macro can be called from outside that */
+#ifdef HAS_QUAD
+# define FITS_IN_8_BITS(c) ((sizeof(c) == 1) || (((U64TYPE)(c) & 0xFF) == (U64TYPE)(c)))
+#else
+# define FITS_IN_8_BITS(c) ((sizeof(c) == 1) || (((U32)(c) & 0xFF) == (U32)(c)))
+#endif
+
+#define isASCII(c) (FITS_IN_8_BITS(c) ? NATIVE_TO_UNI((U8) c) <= 127 : 0)
+#define isASCII_A(c) isASCII(c)
+
+/* ASCII range only */
+#ifdef H_PERL /* If have access to perl.h, lookup in its table */
+/* Bits for PL_charclass[] */
+# define _CC_ALNUMC_A (1<<0)
+# define _CC_ALNUMC_L1 (1<<1)
+# define _CC_ALPHA_A (1<<2)
+# define _CC_ALPHA_L1 (1<<3)
+# define _CC_BLANK_A (1<<4)
+# define _CC_BLANK_L1 (1<<5)
+# define _CC_CHARNAME_CONT (1<<6)
+# define _CC_CNTRL_A (1<<7)
+# define _CC_CNTRL_L1 (1<<8)
+# define _CC_DIGIT_A (1<<9)
+# define _CC_GRAPH_A (1<<10)
+# define _CC_GRAPH_L1 (1<<11)
+# define _CC_IDFIRST_A (1<<12)
+# define _CC_IDFIRST_L1 (1<<13)
+# define _CC_LOWER_A (1<<14)
+# define _CC_LOWER_L1 (1<<15)
+# define _CC_OCTAL_A (1<<16)
+# define _CC_PRINT_A (1<<17)
+# define _CC_PRINT_L1 (1<<18)
+# define _CC_PSXSPC_A (1<<19)
+# define _CC_PSXSPC_L1 (1<<20)
+# define _CC_PUNCT_A (1<<21)
+# define _CC_PUNCT_L1 (1<<22)
+# define _CC_SPACE_A (1<<23)
+# define _CC_SPACE_L1 (1<<24)
+# define _CC_UPPER_A (1<<25)
+# define _CC_UPPER_L1 (1<<26)
+# define _CC_WORDCHAR_A (1<<27)
+# define _CC_WORDCHAR_L1 (1<<28)
+# define _CC_XDIGIT_A (1<<29)
+# define _CC_NONLATIN1_FOLD (1<<30)
+/* Unused
+ * (1<<31)
+ */
+
+# ifdef DOINIT
+EXTCONST U32 PL_charclass[] = {
+# include "l1_char_class_tab.h"
+};
+
+# else /* ! DOINIT */
+EXTCONST U32 PL_charclass[];
+# endif
+
+# define isALNUMC_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_ALNUMC_A))
+# define isALPHA_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_ALPHA_A))
+# define isBLANK_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_BLANK_A))
+# define isCNTRL_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_CNTRL_A))
+# define isDIGIT_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_DIGIT_A))
+# define isGRAPH_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_GRAPH_A))
+# define isIDFIRST_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_IDFIRST_A))
+# define isLOWER_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_LOWER_A))
+# define isOCTAL_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_OCTAL_A))
+# define isPRINT_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_PRINT_A))
+# define isPSXSPC_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_PSXSPC_A))
+# define isPUNCT_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_PUNCT_A))
+# define isSPACE_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_SPACE_A))
+# define isUPPER_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_UPPER_A))
+# define isWORDCHAR_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_WORDCHAR_A))
+# define isXDIGIT_A(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_XDIGIT_A))
+ /* Either participates in a fold with a character above 255, or is a
+ * multi-char fold */
+# define _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) ((! cBOOL(FITS_IN_8_BITS(c))) || (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_NONLATIN1_FOLD))
+#else /* No perl.h. */
+# define isOCTAL_A(c) ((c) >= '0' && (c) <= '9')
+# ifdef EBCDIC
+# define isALNUMC_A(c) (isASCII(c) && isALNUMC(c))
+# define isALPHA_A(c) (isASCII(c) && isALPHA(c))
+# define isBLANK_A(c) (isASCII(c) && isBLANK(c))
+# define isCNTRL_A(c) (isASCII(c) && isCNTRL(c))
+# define isDIGIT_A(c) (isASCII(c) && isDIGIT(c))
+# define isGRAPH_A(c) (isASCII(c) && isGRAPH(c))
+# define isIDFIRST_A(c) (isASCII(c) && isIDFIRST(c))
+# define isLOWER_A(c) (isASCII(c) && isLOWER(c))
+# define isPRINT_A(c) (isASCII(c) && isPRINT(c))
+# define isPSXSPC_A(c) (isASCII(c) && isPSXSPC(c))
+# define isPUNCT_A(c) (isASCII(c) && isPUNCT(c))
+# define isSPACE_A(c) (isASCII(c) && isSPACE(c))
+# define isUPPER_A(c) (isASCII(c) && isUPPER(c))
+# define isWORDCHAR_A(c) (isASCII(c) && isWORDCHAR(c))
+# define isXDIGIT_A(c) (isASCII(c) && isXDIGIT(c))
+# else /* ASCII platform, no perl.h */
+# define isALNUMC_A(c) (isALPHA_A(c) || isDIGIT_A(c))
+# define isALPHA_A(c) (isUPPER_A(c) || isLOWER_A(c))
+# define isBLANK_A(c) ((c) == ' ' || (c) == '\t')
+# define isCNTRL_A(c) (FITS_IN_8_BITS(c) ? ((U8) (c) < ' ' || (c) == 127) : 0)
+# define isDIGIT_A(c) ((c) >= '0' && (c) <= '9')
+# define isGRAPH_A(c) (isWORDCHAR_A(c) || isPUNCT_A(c))
+# define isIDFIRST_A(c) (isALPHA_A(c) || (c) == '_')
+# define isLOWER_A(c) ((c) >= 'a' && (c) <= 'z')
+# define isPRINT_A(c) (((c) >= 32 && (c) < 127))
+# define isPSXSPC_A(c) (isSPACE_A(c) || (c) == '\v')
+# define isPUNCT_A(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126))
+# define isSPACE_A(c) ((c) == ' ' || (c) == '\t' || (c) == '\n' || (c) =='\r' || (c) == '\f')
+# define isUPPER_A(c) ((c) >= 'A' && (c) <= 'Z')
+# define isWORDCHAR_A(c) (isALPHA_A(c) || isDIGIT_A(c) || (c) == '_')
+# define isXDIGIT_A(c) (isDIGIT_A(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
+# endif
+#endif /* ASCII range definitions */
+
+/* Latin1 definitions */
+#ifdef H_PERL
+# define isALNUMC_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_ALNUMC_L1))
+# define isALPHA_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_ALPHA_L1))
+# define isBLANK_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_BLANK_L1))
+/* continuation character for legal NAME in \N{NAME} */
+# define isCHARNAME_CONT(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_CHARNAME_CONT))
+# define isCNTRL_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_CNTRL_L1))
+# define isGRAPH_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_GRAPH_L1))
+# define isIDFIRST_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_IDFIRST_L1))
+# define isLOWER_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_LOWER_L1))
+# define isPRINT_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_PRINT_L1))
+# define isPSXSPC_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_PSXSPC_L1))
+# define isPUNCT_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_PUNCT_L1))
+# define isSPACE_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_SPACE_L1))
+# define isUPPER_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_UPPER_L1))
+# define isWORDCHAR_L1(c) cBOOL(FITS_IN_8_BITS(c) && (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_WORDCHAR_L1))
+#else /* No access to perl.h. Only a few provided here, just in case needed
+ * for backwards compatibility */
+ /* ALPHAU includes Unicode semantics for latin1 characters. It has an extra
+ * >= AA test to speed up ASCII-only tests at the expense of the others */
+# define isALPHA_L1(c) (isALPHA(c) || (NATIVE_TO_UNI((U8) c) >= 0xAA \
+ && ((NATIVE_TO_UNI((U8) c) >= 0xC0 \
+ && NATIVE_TO_UNI((U8) c) != 0xD7 && NATIVE_TO_UNI((U8) c) != 0xF7) \
+ || NATIVE_TO_UNI((U8) c) == 0xAA \
+ || NATIVE_TO_UNI((U8) c) == 0xB5 \
+ || NATIVE_TO_UNI((U8) c) == 0xBA)))
+# define isCHARNAME_CONT(c) (isALNUM_L1(c) || (c) == ' ' || (c) == '-' || (c) == '(' || (c) == ')' || (c) == ':' || NATIVE_TO_UNI((U8) c) == 0xA0)
+#endif
+
+/* Macros for backwards compatibility and for completeness when the ASCII and
+ * Latin1 values are identical */
+#define isALNUM(c) isWORDCHAR(c)
+#define isALNUMU(c) isWORDCHAR_L1(c)
+#define isALPHAU(c) isALPHA_L1(c)
+#define isDIGIT_L1(c) isDIGIT_A(c)
+#define isOCTAL(c) isOCTAL_A(c)
+#define isOCTAL_L1(c) isOCTAL_A(c)
+#define isXDIGIT_L1(c) isXDIGIT_A(c)
+
+/* Macros that differ between EBCDIC and ASCII. Where C89 defines a function,
+ * that is used in the EBCDIC form, because in EBCDIC we do not do locales:
+ * therefore can use native functions. For those where C89 doesn't define a
+ * function, use our function, assuming that the EBCDIC code page is isomorphic
+ * with Latin1, which the three currently recognized by Perl are. Some libc's
+ * have an isblank(), but it's not guaranteed. */
#ifdef EBCDIC
- /* In EBCDIC we do not do locales: therefore() isupper() is fine. */
-# define isUPPER(c) isupper(c)
-# define isLOWER(c) islower(c)
# define isALNUMC(c) isalnum(c)
-# define isASCII(c) isascii(c)
+# define isALPHA(c) isalpha(c)
+# define isBLANK(c) ((c) == ' ' || (c) == '\t' || NATIVE_TO_UNI(c) == 0xA0)
# define isCNTRL(c) iscntrl(c)
+# define isDIGIT(c) isdigit(c)
# define isGRAPH(c) isgraph(c)
+# define isIDFIRST(c) (isALPHA(c) || (c) == '_')
+# define isLOWER(c) islower(c)
# define isPRINT(c) isprint(c)
+# define isPSXSPC(c) isspace(c)
# define isPUNCT(c) ispunct(c)
+# define isSPACE(c) (isPSXSPC(c) && (c) != '\v')
+# define isUPPER(c) isupper(c)
# define isXDIGIT(c) isxdigit(c)
-# define toUPPER(c) toupper(c)
-# define toUPPER_LATIN1_MOD(c) UNI_TO_NATIVE(PL_mod_latin1_uc[(U8) NATIVE_TO_UNI(c)])
+# define isWORDCHAR(c) (isalnum(c) || (c) == '_')
# define toLOWER(c) tolower(c)
-# define toLOWER_LATIN1(c) UNI_TO_NATIVE(PL_latin1_lc[(U8) NATIVE_TO_UNI(c)])
-#else
-# define isUPPER(c) ((c) >= 'A' && (c) <= 'Z')
-# define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
-# define isALNUMC(c) (isALPHA(c) || isDIGIT(c))
-# define isASCII(c) ((c) <= 127)
-# define isCNTRL(c) ((c) < ' ' || (c) == 127)
-# define isGRAPH(c) (isALNUM(c) || isPUNCT(c))
-# define isPRINT(c) (((c) >= 32 && (c) < 127))
-# define isPUNCT(c) (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64) || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126))
-# define isXDIGIT(c) (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
-
-/* Use table lookup for speed */
-# define toLOWER_LATIN1(c) (PL_latin1_lc[(U8) c])
-
-/* Modified uc. Is correct uc except for three non-ascii chars which are
- * all mapped to one of them, and these need special handling */
-# define toUPPER_LATIN1_MOD(c) (PL_mod_latin1_uc[(U8) c])
-
-/* ASCII casing. */
-# define toUPPER(c) (isLOWER(c) ? (c) - ('a' - 'A') : (c))
+# define toUPPER(c) toupper(c)
+#else /* Not EBCDIC: ASCII-only matching */
+# define isALNUMC(c) isALNUMC_A(c)
+# define isALPHA(c) isALPHA_A(c)
+# define isBLANK(c) isBLANK_A(c)
+# define isCNTRL(c) isCNTRL_A(c)
+# define isDIGIT(c) isDIGIT_A(c)
+# define isGRAPH(c) isGRAPH_A(c)
+# define isIDFIRST(c) isIDFIRST_A(c)
+# define isLOWER(c) isLOWER_A(c)
+# define isPRINT(c) isPRINT_A(c)
+# define isPSXSPC(c) isPSXSPC_A(c)
+# define isPUNCT(c) isPUNCT_A(c)
+# define isSPACE(c) isSPACE_A(c)
+# define isUPPER(c) isUPPER_A(c)
+# define isWORDCHAR(c) isWORDCHAR_A(c)
+# define isXDIGIT(c) isXDIGIT_A(c)
+
+ /* ASCII casing. These could also be written as
+ #define toLOWER(c) (isASCII(c) ? toLOWER_LATIN1(c) : (c))
+ #define toUPPER(c) (isASCII(c) ? toUPPER_LATIN1_MOD(c) : (c))
+ which uses table lookup and mask instead of subtraction. (This would
+ work because the _MOD does not apply in the ASCII range) */
# define toLOWER(c) (isUPPER(c) ? (c) + ('a' - 'A') : (c))
+# define toUPPER(c) (isLOWER(c) ? (c) - ('a' - 'A') : (c))
#endif
+
+/* Use table lookup for speed; return error character for input
+ * out-of-range */
+#define toLOWER_LATIN1(c) (FITS_IN_8_BITS(c) \
+ ? UNI_TO_NATIVE(PL_latin1_lc[ \
+ NATIVE_TO_UNI( (U8) (c)) ]) \
+ : UNICODE_REPLACEMENT)
+/* Modified uc. Is correct uc except for three non-ascii chars which are
+ * all mapped to one of them, and these need special handling; error
+ * character for input out-of-range */
+#define toUPPER_LATIN1_MOD(c) (FITS_IN_8_BITS(c) \
+ ? UNI_TO_NATIVE(PL_mod_latin1_uc[ \
+ NATIVE_TO_UNI( (U8) (c)) ]) \
+ : UNICODE_REPLACEMENT)
+
#ifdef USE_NEXT_CTYPE
# define isALNUM_LC(c) \
@@ -615,10 +883,13 @@ US-ASCII (Basic Latin) range are viewed as not having any case.
#define isBLANK_LC_uni(c) isBLANK(c) /* could be wrong */
#define isALNUM_utf8(p) is_utf8_alnum(p)
-/* The ID_Start of Unicode is quite limiting: it assumes a L-class
- * character (meaning that you cannot have, say, a CJK character).
- * Instead, let's allow ID_Continue but not digits. */
-#define isIDFIRST_utf8(p) (is_utf8_idcont(p) && !is_utf8_digit(p))
+/* To prevent S_scan_word in toke.c from hanging, we have to make sure that
+ * IDFIRST is an alnum. See
+ * http://rt.perl.org/rt3/Ticket/Display.html?id=74022
+ * for more detail than you ever wanted to know about. This used to be not the
+ * XID version, but we decided to go with the more modern Unicode definition */
+#define isIDFIRST_utf8(p) (is_utf8_xidfirst(p) && is_utf8_alnum(p))
+#define isIDCONT_utf8(p) is_utf8_xidcont(p)
#define isALPHA_utf8(p) is_utf8_alpha(p)
#define isSPACE_utf8(p) is_utf8_space(p)
#define isDIGIT_utf8(p) is_utf8_digit(p)
@@ -653,16 +924,9 @@ US-ASCII (Basic Latin) range are viewed as not having any case.
#define isPSXSPC_LC_utf8(c) (isSPACE_LC_utf8(c) ||(c) == '\f')
#define isBLANK_LC_utf8(c) isBLANK(c) /* could be wrong */
-#ifdef EBCDIC
-# ifdef PERL_IMPLICIT_CONTEXT
-# define toCTRL(c) Perl_ebcdic_control(aTHX_ c)
-# else
-# define toCTRL Perl_ebcdic_control
-# endif
-#else
- /* This conversion works both ways, strangely enough. */
-# define toCTRL(c) (toUPPER(c) ^ 64)
-#endif
+/* This conversion works both ways, strangely enough. On EBCDIC platforms,
+ * CTRL-@ is 0, CTRL-A is 1, etc, just like on ASCII */
+# define toCTRL(c) (toUPPER(NATIVE_TO_UNI(c)) ^ 64)
/* Line numbers are unsigned, 32 bits. */
typedef U32 line_t;
@@ -912,6 +1176,7 @@ void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumbe
#endif
#define C_ARRAY_LENGTH(a) (sizeof(a)/sizeof((a)[0]))
+#define C_ARRAY_END(a) (a) + (sizeof(a)/sizeof((a)[0]))
#ifdef NEED_VA_COPY
# ifdef va_copy
diff --git a/Master/tlpkg/tlperl/lib/CORE/hv.h b/Master/tlpkg/tlperl/lib/CORE/hv.h
index f38d584d2cc..eae1e70df65 100644
--- a/Master/tlpkg/tlperl/lib/CORE/hv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/hv.h
@@ -72,25 +72,35 @@ struct mro_meta {
Don't access this directly.
*/
+union _xhvnameu {
+ HEK *xhvnameu_name; /* When xhv_name_count is 0 */
+ HEK **xhvnameu_names; /* When xhv_name_count is non-0 */
+};
+
struct xpvhv_aux {
- HEK *xhv_name; /* name, if a symbol table */
+ union _xhvnameu xhv_name_u; /* name, if a symbol table */
AV *xhv_backreferences; /* back references for weak references */
HE *xhv_eiter; /* current entry of iterator */
I32 xhv_riter; /* current root of iterator */
+/* Concerning xhv_name_count: When non-zero, xhv_name_u contains a pointer
+ * to an array of HEK pointers, this being the length. The first element is
+ * the name of the stash, which may be NULL. If xhv_name_count is positive,
+ * then *xhv_name is one of the effective names. If xhv_name_count is nega-
+ * tive, then xhv_name_u.xhvnameu_names[1] is the first effective name.
+ */
+ I32 xhv_name_count;
struct mro_meta *xhv_mro_meta;
};
/* hash structure: */
/* This structure must match the beginning of struct xpvmg in sv.h. */
struct xpvhv {
- union _xnvu xnv_u;
- STRLEN xhv_fill; /* how full xhv_array currently is */
+ HV* xmg_stash; /* class package */
+ union _xmgu xmg_u;
+ STRLEN xhv_keys; /* total keys, including placeholders */
STRLEN xhv_max; /* subscript of last element of xhv_array */
- _XPVMG_HEAD;
};
-#define xhv_keys xiv_u.xivu_iv
-
/* hash a key */
/* FYI: This is the "One-at-a-Time" algorithm by Bob Jenkins
* from requirements by Colin Plumb.
@@ -173,6 +183,14 @@ Null HV pointer.
Returns the package name of a stash, or NULL if C<stash> isn't a stash.
See C<SvSTASH>, C<CvSTASH>.
+=for apidoc Am|char*|HvENAME|HV* stash
+Returns the effective name of a stash, or NULL if there is none. The
+effective name represents a location in the symbol table where this stash
+resides. It is updated automatically when packages are aliased or deleted.
+A stash that is no longer in the symbol table has no effective name. This
+name is preferable to C<HvNAME> for use in MRO linearisations and isa
+caches.
+
=for apidoc Am|void*|HeKEY|HE* he
Returns the actual pointer stored in the key slot of the hash entry. The
pointer may be either C<char*> or C<SV*>, depending on the value of
@@ -236,7 +254,7 @@ C<SV*>.
# define Nullhv Null(HV*)
#endif
#define HvARRAY(hv) ((hv)->sv_u.svu_hash)
-#define HvFILL(hv) ((XPVHV*) SvANY(hv))->xhv_fill
+#define HvFILL(hv) Perl_hv_fill(aTHX_ (const HV *)(hv))
#define HvMAX(hv) ((XPVHV*) SvANY(hv))->xhv_max
/* This quite intentionally does no flag checking first. That's your
responsibility. */
@@ -248,6 +266,7 @@ C<SV*>.
#define HvRITER_get(hv) (SvOOK(hv) ? HvAUX(hv)->xhv_riter : -1)
#define HvEITER_get(hv) (SvOOK(hv) ? HvAUX(hv)->xhv_eiter : NULL)
#define HvNAME(hv) HvNAME_get(hv)
+#define HvENAME(hv) HvENAME_get(hv)
/* Checking that hv is a valid package stash is the
caller's responsibility */
@@ -257,20 +276,44 @@ C<SV*>.
/* FIXME - all of these should use a UTF8 aware API, which should also involve
getting the length. */
+#define HvNAME_HEK_NN(hv) \
+ ( \
+ HvAUX(hv)->xhv_name_count \
+ ? *HvAUX(hv)->xhv_name_u.xhvnameu_names \
+ : HvAUX(hv)->xhv_name_u.xhvnameu_name \
+ )
/* This macro may go away without notice. */
-#define HvNAME_HEK(hv) (SvOOK(hv) ? HvAUX(hv)->xhv_name : NULL)
-#define HvNAME_get(hv) ((SvOOK(hv) && (HvAUX(hv)->xhv_name)) \
- ? HEK_KEY(HvAUX(hv)->xhv_name) : NULL)
-#define HvNAMELEN_get(hv) ((SvOOK(hv) && (HvAUX(hv)->xhv_name)) \
- ? HEK_LEN(HvAUX(hv)->xhv_name) : 0)
-
-/* the number of keys (including any placeholers) */
+#define HvNAME_HEK(hv) \
+ (SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name ? HvNAME_HEK_NN(hv) : NULL)
+#define HvNAME_get(hv) \
+ ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
+ ? HEK_KEY(HvNAME_HEK_NN(hv)) : NULL)
+#define HvNAMELEN_get(hv) \
+ ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvNAME_HEK_NN(hv)) \
+ ? HEK_LEN(HvNAME_HEK_NN(hv)) : 0)
+#define HvENAME_HEK_NN(hv) \
+ ( \
+ HvAUX(hv)->xhv_name_count > 0 ? HvAUX(hv)->xhv_name_u.xhvnameu_names[0] : \
+ HvAUX(hv)->xhv_name_count < -1 ? HvAUX(hv)->xhv_name_u.xhvnameu_names[1] : \
+ HvAUX(hv)->xhv_name_count == -1 ? NULL : \
+ HvAUX(hv)->xhv_name_u.xhvnameu_name \
+ )
+#define HvENAME_HEK(hv) \
+ (SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name ? HvENAME_HEK_NN(hv) : NULL)
+#define HvENAME_get(hv) \
+ ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvENAME_HEK_NN(hv)) \
+ ? HEK_KEY(HvENAME_HEK_NN(hv)) : NULL)
+#define HvENAMELEN_get(hv) \
+ ((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvENAME_HEK_NN(hv)) \
+ ? HEK_LEN(HvENAME_HEK_NN(hv)) : 0)
+
+/* the number of keys (including any placeholders) */
#define XHvTOTALKEYS(xhv) ((xhv)->xhv_keys)
/*
* HvKEYS gets the number of keys that actually exist(), and is provided
* for backwards compatibility with old XS code. The core uses HvUSEDKEYS
- * (keys, excluding placeholdes) and HvTOTALKEYS (including placeholders)
+ * (keys, excluding placeholders) and HvTOTALKEYS (including placeholders)
*/
#define HvKEYS(hv) HvUSEDKEYS(hv)
#define HvUSEDKEYS(hv) (HvTOTALKEYS(hv) - HvPLACEHOLDERS_get(hv))
@@ -397,6 +440,7 @@ C<SV*>.
#define hv_iternext(hv) hv_iternext_flags(hv, 0)
#define hv_magic(hv, gv, how) sv_magic(MUTABLE_SV(hv), MUTABLE_SV(gv), how, NULL, 0)
+#define hv_undef(hv) Perl_hv_undef_flags(aTHX_ hv, 0)
/* available as a function in hv.c */
#define Perl_sharepvn(sv, len, hash) HEK_KEY(share_hek(sv, len, hash))
@@ -454,6 +498,9 @@ C<SV*>.
struct refcounted_he;
+/* flags for the refcounted_he API */
+#define REFCOUNTED_HE_KEY_UTF8 0x00000001
+
#ifdef PERL_CORE
/* Gosh. This really isn't a good name any longer. */
@@ -477,6 +524,30 @@ struct refcounted_he {
char refcounted_he_data[1];
};
+/*
+=for apidoc m|SV *|refcounted_he_fetch_pvs|const struct refcounted_he *chain|const char *key|U32 flags
+
+Like L</refcounted_he_fetch_pvn>, but takes a literal string instead of
+a string/length pair, and no precomputed hash.
+
+=cut
+*/
+
+#define refcounted_he_fetch_pvs(chain, key, flags) \
+ Perl_refcounted_he_fetch_pvn(aTHX_ chain, STR_WITH_LEN(key), 0, flags)
+
+/*
+=for apidoc m|struct refcounted_he *|refcounted_he_new_pvs|struct refcounted_he *parent|const char *key|SV *value|U32 flags
+
+Like L</refcounted_he_new_pvn>, but takes a literal string instead of
+a string/length pair, and no precomputed hash.
+
+=cut
+*/
+
+#define refcounted_he_new_pvs(parent, key, value, flags) \
+ Perl_refcounted_he_new_pvn(aTHX_ parent, STR_WITH_LEN(key), 0, value, flags)
+
/* Flag bits are HVhek_UTF8, HVhek_WASUTF8, then */
#define HVrhek_undef 0x00 /* Value is undef. */
#define HVrhek_delete 0x10 /* Value is placeholder - signifies delete. */
@@ -524,6 +595,10 @@ struct refcounted_he {
#define HV_FETCH_LVALUE 0x10
#define HV_FETCH_JUST_SV 0x20
#define HV_DELETE 0x40
+#define HV_FETCH_EMPTY_HE 0x80 /* Leave HeVAL null. */
+
+/* Must not conflict with HVhek_UTF8 */
+#define HV_NAME_SETALL 0x02
/*
=for apidoc newHV
diff --git a/Master/tlpkg/tlperl/lib/CORE/intrpvar.h b/Master/tlpkg/tlperl/lib/CORE/intrpvar.h
index 8fe641c29c7..824bf20820b 100644
--- a/Master/tlpkg/tlperl/lib/CORE/intrpvar.h
+++ b/Master/tlpkg/tlperl/lib/CORE/intrpvar.h
@@ -15,7 +15,7 @@
/* These variables are per-interpreter in threaded/multiplicity builds,
* global otherwise.
- * Don't forget to re-run embed.pl to propagate changes! */
+ * Don't forget to re-run regen/embed.pl to propagate changes! */
/* New variables must be added to the very end for binary compatibility.
* XSUB.h provides wrapper functions via perlapi.h that make this
@@ -25,7 +25,8 @@
/* The 'I' prefix is only needed for vars that need appropriate #defines
* generated when built with or without MULTIPLICITY. It is also used
- * to generate the appropriate export list for win32.
+ * to generate the appropriate export list for win32. If the variable
+ * needs to be initialized, use PERLVARI.
*
* When building without MULTIPLICITY, these variables will be truly global.
*
@@ -58,7 +59,7 @@ PERLVAR(Itmps_stack, SV **) /* mortals we've made */
PERLVARI(Itmps_ix, I32, -1)
PERLVARI(Itmps_floor, I32, -1)
PERLVAR(Itmps_max, I32)
-PERLVAR(Imodcount, I32) /* how much mod()ification in
+PERLVAR(Imodcount, I32) /* how much op_lvalue()ification in
assignment? */
PERLVAR(Imarkstack, I32 *) /* stack_sp locations we're
@@ -126,6 +127,7 @@ PERLVAR(Idefstash, HV *) /* main symbol table */
PERLVAR(Icurstash, HV *) /* symbol table for current package */
PERLVAR(Irestartop, OP *) /* propagating an error from croak? */
+PERLVAR(Irestartjmpenv, JMPENV *) /* target frame for longjmp in die */
PERLVAR(Icurcop, COP *)
PERLVAR(Icurstack, AV *) /* THE STACK */
PERLVAR(Icurstackinfo, PERL_SI *) /* current stack + context */
@@ -170,8 +172,52 @@ PERLVARI(Irehash_seed_set, bool, FALSE) /* 582 hash initialized? */
PERLVARA(Icolors,6, char *) /* from regcomp.c */
-PERLVARI(Ipeepp, peep_t, MEMBER_TO_FPTR(Perl_peep))
- /* Pointer to peephole optimizer */
+/*
+=for apidoc Amn|peep_t|PL_peepp
+
+Pointer to the per-subroutine peephole optimiser. This is a function
+that gets called at the end of compilation of a Perl subroutine (or
+equivalently independent piece of Perl code) to perform fixups of
+some ops and to perform small-scale optimisations. The function is
+called once for each subroutine that is compiled, and is passed, as sole
+parameter, a pointer to the op that is the entry point to the subroutine.
+It modifies the op tree in place.
+
+The peephole optimiser should never be completely replaced. Rather,
+add code to it by wrapping the existing optimiser. The basic way to do
+this can be seen in L<perlguts/Compile pass 3: peephole optimization>.
+If the new code wishes to operate on ops throughout the subroutine's
+structure, rather than just at the top level, it is likely to be more
+convenient to wrap the L</PL_rpeepp> hook.
+
+=cut
+*/
+
+PERLVARI(Ipeepp, peep_t, Perl_peep)
+
+/*
+=for apidoc Amn|peep_t|PL_rpeepp
+
+Pointer to the recursive peephole optimiser. This is a function
+that gets called at the end of compilation of a Perl subroutine (or
+equivalently independent piece of Perl code) to perform fixups of some
+ops and to perform small-scale optimisations. The function is called
+once for each chain of ops linked through their C<op_next> fields;
+it is recursively called to handle each side chain. It is passed, as
+sole parameter, a pointer to the op that is at the head of the chain.
+It modifies the op tree in place.
+
+The peephole optimiser should never be completely replaced. Rather,
+add code to it by wrapping the existing optimiser. The basic way to do
+this can be seen in L<perlguts/Compile pass 3: peephole optimization>.
+If the new code wishes to operate only on ops at a subroutine's top level,
+rather than throughout the structure, it is likely to be more convenient
+to wrap the L</PL_peepp> hook.
+
+=cut
+*/
+
+PERLVARI(Irpeepp, peep_t, Perl_rpeep)
/*
=for apidoc Amn|Perl_ophook_t|PL_opfreehook
@@ -203,11 +249,12 @@ PERLVAR(Iregmatch_state, regmatch_state *)
PERLVAR(Idelaymagic, U16) /* ($<,$>) = ... */
PERLVAR(Ilocalizing, U8) /* are we processing a local() list? */
PERLVAR(Icolorset, bool) /* from regcomp.c */
-PERLVARI(Idirty, bool, FALSE) /* in the middle of tearing things
- down? */
PERLVAR(Iin_eval, U8) /* trap "fatal" errors? */
PERLVAR(Itainted, bool) /* using variables controlled by $< */
+/* current phase the interpreter is in */
+PERLVARI(Iphase, enum perl_phase, PERL_PHASE_CONSTRUCT)
+
/* This value may be set when embedding for full cleanup */
/* 0=none, 1=full, 2=full with checks */
/* mod_perl is special, and also assigns a meaning -1 */
@@ -227,6 +274,7 @@ PERLVAR(Iwarnhook, SV *)
/* switches */
PERLVAR(Ipatchlevel, SV *)
+PERLVAR(Iapiversion, SV *)
PERLVAR(Ilocalpatches, const char * const *)
PERLVARI(Isplitstr, const char *, " ")
@@ -249,14 +297,14 @@ The C variable which corresponds to Perl's $^W warning variable.
*/
PERLVAR(Idowarn, U8)
-PERLVAR(Idoextract, bool)
+ /* Space for a U8 */
PERLVAR(Isawampersand, bool) /* must save all match strings */
PERLVAR(Iunsafe, bool)
PERLVAR(Iexit_flags, U8) /* was exit() unexpected, etc. */
PERLVAR(Isrand_called, bool)
/* Part of internal state, but makes the 16th 1 byte variable in a row. */
PERLVAR(Itainting, bool) /* doing taint checks */
-/* Space for a U8 */
+PERLVARI(Iin_load_module, bool, FALSE) /* to prevent recursions in PerlIO_find_layer */
PERLVAR(Iinplace, char *)
PERLVAR(Ie_script, SV *)
@@ -278,22 +326,22 @@ PERLVARI(Isig_pending, int,0) /* Number if highest signal pending */
PERLVAR(Ipsig_pend, int *) /* per-signal "count" of pending */
/* shortcuts to various I/O objects */
-PERLVAR(Istdingv, GV *)
-PERLVAR(Istderrgv, GV *)
+PERLVAR(Istdingv, GV *) /* *STDIN */
+PERLVAR(Istderrgv, GV *) /* *STDERR */
PERLVAR(Idefgv, GV *)
-PERLVAR(Iargvgv, GV *)
-PERLVAR(Iargvoutgv, GV *)
+PERLVAR(Iargvgv, GV *) /* *ARGV */
+PERLVAR(Iargvoutgv, GV *) /* *ARGVOUT */
PERLVAR(Iargvout_stack, AV *)
/* shortcuts to regexp stuff */
-PERLVAR(Ireplgv, GV *)
+PERLVAR(Ireplgv, GV *) /* *^R */
/* shortcuts to misc objects */
-PERLVAR(Ierrgv, GV *)
+PERLVAR(Ierrgv, GV *) /* *@ */
/* shortcuts to debugging objects */
-PERLVAR(IDBgv, GV *)
-PERLVAR(IDBline, GV *)
+PERLVAR(IDBgv, GV *) /* *DB::DB */
+PERLVAR(IDBline, GV *) /* *DB::line */
/*
=for apidoc mn|GV *|PL_DBsub
@@ -317,10 +365,10 @@ variable. See C<PL_DBsingle>.
=cut
*/
-PERLVAR(IDBsub, GV *)
-PERLVAR(IDBsingle, SV *)
-PERLVAR(IDBtrace, SV *)
-PERLVAR(IDBsignal, SV *)
+PERLVAR(IDBsub, GV *) /* *DB::sub */
+PERLVAR(IDBsingle, SV *) /* $DB::single */
+PERLVAR(IDBtrace, SV *) /* $DB::trace */
+PERLVAR(IDBsignal, SV *) /* $DB::signal */
PERLVAR(Idbargs, AV *) /* args to call listed by caller function */
/* symbol tables */
@@ -419,7 +467,7 @@ PERLVAR(IDBcv, CV *) /* from perl.c */
PERLVARI(Igeneration, int, 100) /* from op.c */
PERLVARI(Iin_clean_objs,bool, FALSE) /* from sv.c */
-PERLVARI(Iin_clean_all, bool, FALSE) /* from sv.c */
+PERLVARI(Iin_clean_all, bool, FALSE) /* ptrs to freed SVs now legal */
PERLVAR(Inomemok, bool) /* let malloc context handle nomem */
PERLVARI(Isavebegin, bool, FALSE) /* save BEGINs for compiler */
@@ -428,7 +476,16 @@ PERLVAR(Ieuid, Uid_t) /* current effective user id */
PERLVAR(Igid, Gid_t) /* current real group id */
PERLVAR(Iegid, Gid_t) /* current effective group id */
PERLVARI(Ian, U32, 0) /* malloc sequence number */
-PERLVARI(Icop_seqmax, U32, 0) /* statement sequence number */
+
+#ifdef DEBUGGING
+ /* exercise wrap-around */
+ #define PERL_COP_SEQMAX (U32_MAX-50)
+#else
+ #define PERL_COP_SEQMAX 0
+#endif
+PERLVARI(Icop_seqmax, U32, PERL_COP_SEQMAX) /* statement sequence number */
+#undef PERL_COP_SEQMAX
+
PERLVARI(Ievalseq, U32, 0) /* eval sequence number */
PERLVAR(Iorigalen, U32)
PERLVAR(Iorigenviron, char **)
@@ -441,12 +498,11 @@ PERLVAR(Isighandlerp, Sighandler_t)
PERLVARA(Ibody_roots, PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */
-PERLVAR(Inice_chunk, char *) /* a nice chunk of memory to reuse */
-PERLVAR(Inice_chunk_size, U32) /* how nice the chunk of memory is */
+PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */
PERLVARI(Imaxo, int, MAXO) /* maximum number of ops */
-PERLVARI(Irunops, runops_proc_t, MEMBER_TO_FPTR(RUNOPS_DEFAULT))
+PERLVARI(Irunops, runops_proc_t, RUNOPS_DEFAULT)
/*
=for apidoc Amn|SV|PL_sv_undef
@@ -612,7 +668,7 @@ PERLVAR(Icustom_op_names, HV*) /* Names of user defined ops */
PERLVAR(Icustom_op_descs, HV*) /* Descriptions of user defined ops */
#ifdef PERLIO_LAYERS
-PERLVARI(Iperlio, PerlIO *,NULL)
+PERLVARI(Iperlio, PerlIOl *,NULL)
PERLVARI(Iknown_layers, PerlIO_list_t *,NULL)
PERLVARI(Idef_layerlist, PerlIO_list_t *,NULL)
#endif
@@ -623,6 +679,8 @@ PERLVAR(Idebug_pad, struct perl_debug_pad) /* always needed because of the re ex
PERLVAR(Iutf8_idstart, SV *)
PERLVAR(Iutf8_idcont, SV *)
+PERLVAR(Iutf8_xidstart, SV *)
+PERLVAR(Iutf8_xidcont, SV *)
PERLVAR(Isort_RealCmp, SVCOMPARE_t)
@@ -631,10 +689,6 @@ PERLVARI(Iunitcheckav_save, AV*, NULL) /* save UNITCHECK{}s when compiling */
PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */
-PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */
-
-PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */
-
PERLVAR(Isignals, U32) /* Using which pre-5.8 signals */
PERLVAR(Ireentrant_retint, int) /* Integer return value from reentrant functions */
@@ -642,17 +696,21 @@ PERLVAR(Ireentrant_retint, int) /* Integer return value from reentrant functions
PERLVAR(Istashcache, HV *) /* Cache to speed up S_method_common */
/* Hooks to shared SVs and locks. */
-PERLVARI(Isharehook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing))
-PERLVARI(Ilockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing))
+PERLVARI(Isharehook, share_proc_t, Perl_sv_nosharing)
+PERLVARI(Ilockhook, share_proc_t, Perl_sv_nosharing)
#ifdef NO_MATHOMS
# define PERL_UNLOCK_HOOK Perl_sv_nosharing
#else
/* This reference ensures that the mathoms are linked with perl */
# define PERL_UNLOCK_HOOK Perl_sv_nounlocking
#endif
-PERLVARI(Iunlockhook, share_proc_t, MEMBER_TO_FPTR(PERL_UNLOCK_HOOK))
+PERLVARI(Iunlockhook, share_proc_t, PERL_UNLOCK_HOOK)
-PERLVARI(Ithreadhook, thrhook_proc_t, MEMBER_TO_FPTR(Perl_nothreadhook))
+PERLVARI(Ithreadhook, thrhook_proc_t, Perl_nothreadhook)
+
+#ifndef PERL_MICRO
+PERLVARI(Isignalhook, despatch_signals_proc_t, Perl_despatch_signals)
+#endif
PERLVARI(Ihash_seed, UV, 0) /* Hash initializer */
@@ -707,7 +765,7 @@ PERLVARI(Islab_count, U32, 0) /* Size of the array */
#endif
/* Can shared object be destroyed */
-PERLVARI(Idestroyhook, destroyable_proc_t, MEMBER_TO_FPTR(Perl_sv_destroyable))
+PERLVARI(Idestroyhook, destroyable_proc_t, Perl_sv_destroyable)
#ifdef DEBUG_LEAKING_SCALARS
PERLVARI(Isv_serial, U32, 0) /* SV serial number, used in sv.c */
@@ -719,6 +777,20 @@ PERLVARI(Isv_serial, U32, 0) /* SV serial number, used in sv.c */
retrieve a C<struct mro_alg *> */
PERLVAR(Iregistered_mros, HV *)
+/* Compile-time block start/end hooks */
+PERLVAR(Iblockhooks, AV *)
+
+
+/* Everything that folds to a given character, for case insensitivity regex
+ * matching */
+PERLVARI(Iutf8_foldclosures, HV *, NULL)
+
+/* List of characters that participate in folds (except marks, etc in
+ * multi-char folds) */
+PERLVARI(Iutf8_foldable, HV *, NULL)
+
+PERLVAR(Icustom_ops, HV *) /* custom op registrations */
+
/* If you are adding a U8 or U16, check to see if there are 'Space' comments
* above on where there are gaps which currently will be structure padding. */
diff --git a/Master/tlpkg/tlperl/lib/CORE/iperlsys.h b/Master/tlpkg/tlperl/lib/CORE/iperlsys.h
index 76f5c41ae67..0bfad3ce09f 100644
--- a/Master/tlpkg/tlperl/lib/CORE/iperlsys.h
+++ b/Master/tlpkg/tlperl/lib/CORE/iperlsys.h
@@ -77,9 +77,9 @@ typedef STDCHAR* (*LPGetBase)(struct IPerlStdIO*, FILE*);
typedef int (*LPGetBufsiz)(struct IPerlStdIO*, FILE*);
typedef int (*LPGetCnt)(struct IPerlStdIO*, FILE*);
typedef STDCHAR* (*LPGetPtr)(struct IPerlStdIO*, FILE*);
-typedef char* (*LPGets)(struct IPerlStdIO*, FILE*, char*, int);
-typedef int (*LPPutc)(struct IPerlStdIO*, FILE*, int);
-typedef int (*LPPuts)(struct IPerlStdIO*, FILE*, const char*);
+typedef char* (*LPGets)(struct IPerlStdIO*, char*, int, FILE*);
+typedef int (*LPPutc)(struct IPerlStdIO*, int, FILE*);
+typedef int (*LPPuts)(struct IPerlStdIO*, const char *, FILE*);
typedef int (*LPFlush)(struct IPerlStdIO*, FILE*);
typedef int (*LPUngetc)(struct IPerlStdIO*, int,FILE*);
typedef int (*LPFileno)(struct IPerlStdIO*, FILE*);
@@ -225,14 +225,14 @@ struct IPerlStdIOInfo
(*PL_StdIO->pGetCnt)(PL_StdIO, (f))
#define PerlSIO_get_ptr(f) \
(*PL_StdIO->pGetPtr)(PL_StdIO, (f))
-#define PerlSIO_fputc(f,c) \
+#define PerlSIO_fputc(c,f) \
(*PL_StdIO->pPutc)(PL_StdIO, (c),(f))
-#define PerlSIO_fputs(f,s) \
+#define PerlSIO_fputs(s,f) \
(*PL_StdIO->pPuts)(PL_StdIO, (s),(f))
#define PerlSIO_fflush(f) \
(*PL_StdIO->pFlush)(PL_StdIO, (f))
-#define PerlSIO_fgets(s, n, fp) \
- (*PL_StdIO->pGets)(PL_StdIO, (fp), s, n)
+#define PerlSIO_fgets(s, n, f) \
+ (*PL_StdIO->pGets)(PL_StdIO, s, n, (f))
#define PerlSIO_ungetc(c,f) \
(*PL_StdIO->pUngetc)(PL_StdIO, (c),(f))
#define PerlSIO_fileno(f) \
@@ -311,12 +311,12 @@ struct IPerlStdIOInfo
#define PerlSIO_get_cnt(f) 0
#define PerlSIO_get_ptr(f) NULL
#endif
-#define PerlSIO_fputc(f,c) fputc(c,f)
-#define PerlSIO_fputs(f,s) fputs(s,f)
+#define PerlSIO_fputc(c,f) fputc(c,f)
+#define PerlSIO_fputs(s,f) fputs(s,f)
#define PerlSIO_fflush(f) Fflush(f)
-#define PerlSIO_fgets(s, n, fp) fgets(s,n,fp)
+#define PerlSIO_fgets(s, n, f) fgets(s,n,f)
#if defined(VMS) && defined(__DECC)
- /* Unusual definition of ungetc() here to accomodate fast_sv_gets()'
+ /* Unusual definition of ungetc() here to accommodate fast_sv_gets()'
* belief that it can mix getc/ungetc with reads from stdio buffer */
int decc$ungetc(int __c, FILE *__stream);
# define PerlSIO_ungetc(c,f) ((c) == EOF ? EOF : \
diff --git a/Master/tlpkg/tlperl/lib/CORE/keywords.h b/Master/tlpkg/tlperl/lib/CORE/keywords.h
index b2e996db886..b821121780b 100644
--- a/Master/tlpkg/tlperl/lib/CORE/keywords.h
+++ b/Master/tlpkg/tlperl/lib/CORE/keywords.h
@@ -3,15 +3,16 @@
* keywords.h
*
* Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2005,
- * 2006, 2007, by Larry Wall and others
+ * 2006, 2007 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by keywords.pl from its data. Any changes made here
- * will be lost!
+ * This file is built by regen/keywords.pl from its data.
+ * Any changes made here will be lost!
*/
+
#define KEY_NULL 0
#define KEY___FILE__ 1
#define KEY___LINE__ 2
@@ -266,4 +267,6 @@
#define KEY_xor 251
#define KEY_y 252
-/* ex: set ro: */
+/* Generated from:
+ * 28d95638560707fb8bee100dab74c90107c3e000f635e3bd310d4e2501d3b073 regen/keywords.pl
+ * ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h b/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
new file mode 100644
index 00000000000..d43f87ad777
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
@@ -0,0 +1,265 @@
+/* -*- buffer-read-only: t -*-
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ * This file is built by regen/mk_PL_charclass.pl from
+ * lib/unicore/CaseFolding.txt.
+ * Any changes made here will be lost!
+ */
+
+/* U+00 NUL */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+01 SOH */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+02 STX */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+03 ETX */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+04 EOT */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+05 ENQ */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+06 ACK */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+07 BEL */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+08 BS */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+09 HT */ _CC_BLANK_A|_CC_BLANK_L1|_CC_CNTRL_A|_CC_CNTRL_L1|_CC_PSXSPC_A|_CC_PSXSPC_L1|_CC_SPACE_A|_CC_SPACE_L1,
+/* U+0A LF */ _CC_CNTRL_A|_CC_CNTRL_L1|_CC_PSXSPC_A|_CC_PSXSPC_L1|_CC_SPACE_A|_CC_SPACE_L1,
+/* U+0B VT */ _CC_CNTRL_A|_CC_CNTRL_L1|_CC_PSXSPC_A|_CC_PSXSPC_L1,
+/* U+0C FF */ _CC_CNTRL_A|_CC_CNTRL_L1|_CC_PSXSPC_A|_CC_PSXSPC_L1|_CC_SPACE_A|_CC_SPACE_L1,
+/* U+0D CR */ _CC_CNTRL_A|_CC_CNTRL_L1|_CC_PSXSPC_A|_CC_PSXSPC_L1|_CC_SPACE_A|_CC_SPACE_L1,
+/* U+0E SO */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+0F SI */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+10 DLE */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+11 DC1 */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+12 DC2 */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+13 DC3 */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+14 DC4 */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+15 NAK */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+16 SYN */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+17 ETB */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+18 CAN */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+19 EOM */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+1A SUB */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+1B ESC */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+1C FS */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+1D GS */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+1E RS */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+1F US */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+20 SPACE */ _CC_BLANK_A|_CC_BLANK_L1|_CC_CHARNAME_CONT|_CC_PRINT_A|_CC_PRINT_L1|_CC_PSXSPC_A|_CC_PSXSPC_L1|_CC_SPACE_A|_CC_SPACE_L1,
+/* U+21 '!' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+22 '"' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+23 '#' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+24 '$' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+25 '%' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+26 '&' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+27 ''' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+28 '(' */ _CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+29 ')' */ _CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+2A '*' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+2B '+' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+2C ',' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+2D '-' */ _CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+2E '.' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+2F '/' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+30 '0' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_OCTAL_A|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+31 '1' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_OCTAL_A|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+32 '2' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_OCTAL_A|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+33 '3' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_OCTAL_A|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+34 '4' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_OCTAL_A|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+35 '5' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_OCTAL_A|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+36 '6' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_OCTAL_A|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+37 '7' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_OCTAL_A|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+38 '8' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+39 '9' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_CHARNAME_CONT|_CC_DIGIT_A|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+3A ':' */ _CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+3B ';' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+3C '<' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+3D '=' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+3E '>' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+3F '?' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+40 '@' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+41 'A' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+42 'B' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+43 'C' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+44 'D' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+45 'E' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+46 'F' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+47 'G' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+48 'H' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+49 'I' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+4A 'J' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+4B 'K' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+4C 'L' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+4D 'M' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+4E 'N' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+4F 'O' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+50 'P' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+51 'Q' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+52 'R' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+53 'S' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+54 'T' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+55 'U' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+56 'V' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+57 'W' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+58 'X' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+59 'Y' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+5A 'Z' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_UPPER_A|_CC_UPPER_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+5B '[' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+5C '\' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+5D ']' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+5E '^' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+5F '_' */ _CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+60 '`' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+61 'a' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+62 'b' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+63 'c' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+64 'd' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+65 'e' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+66 'f' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1|_CC_XDIGIT_A,
+/* U+67 'g' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+68 'h' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+69 'i' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+6A 'j' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+6B 'k' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+6C 'l' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+6D 'm' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+6E 'n' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+6F 'o' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+70 'p' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+71 'q' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+72 'r' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+73 's' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+74 't' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+75 'u' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+76 'v' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+77 'w' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+78 'x' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+79 'y' */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+7A 'z' */ _CC_ALNUMC_A|_CC_ALNUMC_L1|_CC_ALPHA_A|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_A|_CC_GRAPH_L1|_CC_IDFIRST_A|_CC_IDFIRST_L1|_CC_LOWER_A|_CC_LOWER_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_WORDCHAR_A|_CC_WORDCHAR_L1,
+/* U+7B '{' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+7C '|' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+7D '}' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+7E '~' */ _CC_GRAPH_A|_CC_GRAPH_L1|_CC_PRINT_A|_CC_PRINT_L1|_CC_PUNCT_A|_CC_PUNCT_L1,
+/* U+7F DEL */ _CC_CNTRL_A|_CC_CNTRL_L1,
+/* U+80 PAD */ _CC_CNTRL_L1,
+/* U+81 HOP */ _CC_CNTRL_L1,
+/* U+82 BPH */ _CC_CNTRL_L1,
+/* U+83 NBH */ _CC_CNTRL_L1,
+/* U+84 IND */ _CC_CNTRL_L1,
+/* U+85 NEL */ _CC_CNTRL_L1|_CC_PSXSPC_L1|_CC_SPACE_L1,
+/* U+86 SSA */ _CC_CNTRL_L1,
+/* U+87 ESA */ _CC_CNTRL_L1,
+/* U+88 HTS */ _CC_CNTRL_L1,
+/* U+89 HTJ */ _CC_CNTRL_L1,
+/* U+8A VTS */ _CC_CNTRL_L1,
+/* U+8B PLD */ _CC_CNTRL_L1,
+/* U+8C PLU */ _CC_CNTRL_L1,
+/* U+8D RI */ _CC_CNTRL_L1,
+/* U+8E SS2 */ _CC_CNTRL_L1,
+/* U+8F SS3 */ _CC_CNTRL_L1,
+/* U+90 DCS */ _CC_CNTRL_L1,
+/* U+91 PU1 */ _CC_CNTRL_L1,
+/* U+92 PU2 */ _CC_CNTRL_L1,
+/* U+93 STS */ _CC_CNTRL_L1,
+/* U+94 CCH */ _CC_CNTRL_L1,
+/* U+95 MW */ _CC_CNTRL_L1,
+/* U+96 SPA */ _CC_CNTRL_L1,
+/* U+97 EPA */ _CC_CNTRL_L1,
+/* U+98 SOS */ _CC_CNTRL_L1,
+/* U+99 SGC */ _CC_CNTRL_L1,
+/* U+9A SCI */ _CC_CNTRL_L1,
+/* U+9B CSI */ _CC_CNTRL_L1,
+/* U+9C ST */ _CC_CNTRL_L1,
+/* U+9D OSC */ _CC_CNTRL_L1,
+/* U+9E PM */ _CC_CNTRL_L1,
+/* U+9F APC */ _CC_CNTRL_L1,
+/* U+A0 NO-BREAK SPACE */ _CC_BLANK_L1|_CC_CHARNAME_CONT|_CC_PRINT_L1|_CC_PSXSPC_L1|_CC_SPACE_L1,
+/* U+A1 INVERTED EXCLAMATION MARK */ _CC_GRAPH_L1|_CC_PRINT_L1|_CC_PUNCT_L1,
+/* U+A2 CENT SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+A3 POUND SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+A4 CURRENCY SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+A5 YEN SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+A6 BROKEN BAR */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+A7 SECTION SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+A8 DIAERESIS */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+A9 COPYRIGHT SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+AA FEMININE ORDINAL INDICATOR */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ _CC_GRAPH_L1|_CC_PRINT_L1|_CC_PUNCT_L1,
+/* U+AC NOT SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+AD SOFT HYPHEN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+AE REGISTERED SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+AF MACRON */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+B0 DEGREE SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+B1 PLUS-MINUS SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+B2 SUPERSCRIPT TWO */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+B3 SUPERSCRIPT THREE */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+B4 ACUTE ACCENT */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+B5 MICRO SIGN */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+B6 PILCROW SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+B7 MIDDLE DOT */ _CC_GRAPH_L1|_CC_PRINT_L1|_CC_PUNCT_L1,
+/* U+B8 CEDILLA */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+B9 SUPERSCRIPT ONE */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+BA MASCULINE ORDINAL INDICATOR */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ _CC_GRAPH_L1|_CC_PRINT_L1|_CC_PUNCT_L1,
+/* U+BC VULGAR FRACTION ONE QUARTER */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+BD VULGAR FRACTION ONE HALF */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+BE VULGAR FRACTION THREE QUARTERS */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+BF INVERTED QUESTION MARK */ _CC_GRAPH_L1|_CC_PRINT_L1|_CC_PUNCT_L1,
+/* U+C0 A WITH GRAVE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+C1 A WITH ACUTE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+C2 A WITH CIRCUMFLEX */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+C3 A WITH TILDE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+C4 A WITH DIAERESIS */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+C5 A WITH RING ABOVE */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+C6 AE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+C7 C WITH CEDILLA */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+C8 E WITH GRAVE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+C9 E WITH ACUTE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+CA E WITH CIRCUMFLEX */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+CB E WITH DIAERESIS */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+CC I WITH GRAVE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+CD I WITH ACUTE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+CE I WITH CIRCUMFLEX */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+CF I WITH DIAERESIS */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+D0 ETH */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+D1 N WITH TILDE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+D2 O WITH GRAVE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+D3 O WITH ACUTE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+D4 O WITH CIRCUMFLEX */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+D5 O WITH TILDE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+D6 O WITH DIAERESIS */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+D7 MULTIPLICATION SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+D8 O WITH STROKE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+D9 U WITH GRAVE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+DA U WITH ACUTE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+DB U WITH CIRCUMFLEX */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+DC U WITH DIAERESIS */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+DD Y WITH ACUTE */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+DE THORN */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_PRINT_L1|_CC_UPPER_L1|_CC_WORDCHAR_L1,
+/* U+DF sharp s */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E0 a with grave */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E1 a with acute */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E2 a with circumflex */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E3 a with tilde */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E4 a with diaeresis */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E5 a with ring above */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E6 ae */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E7 c with cedilla */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E8 e with grave */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+E9 e with acute */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+EA e with circumflex */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+EB e with diaeresis */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+EC i with grave */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+ED i with acute */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+EE i with circumflex */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+EF i with diaeresis */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+F0 eth */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+F1 n with tilde */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+F2 o with grave */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+F3 o with acute */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+F4 o with circumflex */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+F5 o with tilde */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+F6 o with diaeresis */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+F7 DIVISION SIGN */ _CC_GRAPH_L1|_CC_PRINT_L1,
+/* U+F8 o with stroke */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+F9 u with grave */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+FA u with acute */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+FB u with circumflex */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+FC u with diaeresis */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+FD y with acute */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+FE thorn */ _CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+/* U+FF y with diaeresis */ _CC_NONLATIN1_FOLD|_CC_ALNUMC_L1|_CC_ALPHA_L1|_CC_CHARNAME_CONT|_CC_GRAPH_L1|_CC_IDFIRST_L1|_CC_LOWER_L1|_CC_PRINT_L1|_CC_WORDCHAR_L1,
+
+/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/libperl512.a b/Master/tlpkg/tlperl/lib/CORE/libperl514.a
index d837df3ee31..534fd81f84f 100644
--- a/Master/tlpkg/tlperl/lib/CORE/libperl512.a
+++ b/Master/tlpkg/tlperl/lib/CORE/libperl514.a
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/CORE/malloc_ctl.h b/Master/tlpkg/tlperl/lib/CORE/malloc_ctl.h
index 7a6aed0db73..d74637289b5 100644
--- a/Master/tlpkg/tlperl/lib/CORE/malloc_ctl.h
+++ b/Master/tlpkg/tlperl/lib/CORE/malloc_ctl.h
@@ -14,14 +14,12 @@ struct perl_mstats {
};
typedef struct perl_mstats perl_mstats_t;
-START_EXTERN_C
-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);
+PERL_CALLCONV Malloc_t Perl_malloc (MEM_SIZE nbytes);
+PERL_CALLCONV Malloc_t Perl_calloc (MEM_SIZE elements, MEM_SIZE size);
+PERL_CALLCONV Malloc_t Perl_realloc (Malloc_t where, MEM_SIZE nbytes);
/* 'mfree' rather than 'free', since there is already a 'perl_free'
* that causes clashes with case-insensitive linkers */
-Free_t Perl_mfree (Malloc_t where);
-END_EXTERN_C
+PERL_CALLCONV Free_t Perl_mfree (Malloc_t where);
#ifndef NO_MALLOC_DYNAMIC_CFG
diff --git a/Master/tlpkg/tlperl/lib/CORE/metaconfig.h b/Master/tlpkg/tlperl/lib/CORE/metaconfig.h
new file mode 100644
index 00000000000..95aba26b87e
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CORE/metaconfig.h
@@ -0,0 +1,44 @@
+/* This is a placeholder file for symbols that should be exported
+ * into config_h.SH and Porting/Glossary. See also metaconfig.SH
+ *
+ * First version was created from the part in handy.h (which includes this)
+ * H.Merijn Brand 21 Dec 2010 (Tux)
+ *
+ * Mentioned variables are forced to be included into config_h.SH
+ * as they are only included if meta finds them referenced. That
+ * implies that noone can use them unless they are available and
+ * they won't be available unless used. When new symbols are probed
+ * in Configure, this is the way to force them into availability.
+ *
+ * CHARBITS
+ * GMTIME_MAX
+ * GMTIME_MIN
+ * HAS_ASCTIME64
+ * HAS_CTIME64
+ * HAS_DIFFTIME64
+ * HAS_GETADDRINFO
+ * HAS_GETNAMEINFO
+ * HAS_GMTIME64
+ * HAS_INETNTOP
+ * HAS_INETPTON
+ * HAS_LOCALTIME64
+ * HAS_MKTIME64
+ * HAS_PRCTL
+ * HAS_PSEUDOFORK
+ * HAS_SIN6_SCOPE_ID
+ * HAS_SOCKADDR_SA_LEN
+ * HAS_TIMEGM
+ * I16SIZE
+ * I32SIZE
+ * I64SIZE
+ * I8SIZE
+ * LOCALTIME_MAX
+ * LOCALTIME_MIN
+ * LOCALTIME_R_NEEDS_TZSET
+ * U16SIZE
+ * U32SIZE
+ * U64SIZE
+ * U8SIZE
+ * USE_DTRACE
+ *
+ */
diff --git a/Master/tlpkg/tlperl/lib/CORE/mg.h b/Master/tlpkg/tlperl/lib/CORE/mg.h
index fcac4111131..848f735d6cb 100644
--- a/Master/tlpkg/tlperl/lib/CORE/mg.h
+++ b/Master/tlpkg/tlperl/lib/CORE/mg.h
@@ -12,15 +12,15 @@
STRUCT_MGVTBL_DEFINITION;
#else
struct mgvtbl {
- 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);
- int (CPERLscope(*svt_copy)) (pTHX_ SV *sv, MAGIC* mg,
+ int (*svt_get) (pTHX_ SV *sv, MAGIC* mg);
+ int (*svt_set) (pTHX_ SV *sv, MAGIC* mg);
+ U32 (*svt_len) (pTHX_ SV *sv, MAGIC* mg);
+ int (*svt_clear)(pTHX_ SV *sv, MAGIC* mg);
+ int (*svt_free) (pTHX_ SV *sv, MAGIC* mg);
+ int (*svt_copy) (pTHX_ SV *sv, MAGIC* mg,
SV *nsv, const char *name, I32 namlen);
- int (CPERLscope(*svt_dup)) (pTHX_ MAGIC *mg, CLONE_PARAMS *param);
- int (CPERLscope(*svt_local))(pTHX_ SV *nsv, MAGIC *mg);
+ int (*svt_dup) (pTHX_ MAGIC *mg, CLONE_PARAMS *param);
+ int (*svt_local)(pTHX_ SV *nsv, MAGIC *mg);
};
#endif
@@ -38,7 +38,7 @@ struct magic {
#define MGf_TAINTEDDIR 1 /* PERL_MAGIC_envelem only */
#define MGf_MINMATCH 1 /* PERL_MAGIC_regex_global only */
#define MGf_REFCOUNTED 2
-#define MGf_GSKIP 4
+#define MGf_GSKIP 4 /* skip further GETs until after next SET */
#define MGf_COPY 8 /* has an svt_copy MGVTBL entry */
#define MGf_DUP 0x10 /* has an svt_dup MGVTBL entry */
#define MGf_LOCAL 0x20 /* has an svt_local MGVTBL entry */
diff --git a/Master/tlpkg/tlperl/lib/CORE/mydtrace.h b/Master/tlpkg/tlperl/lib/CORE/mydtrace.h
index daabcfa0b9c..75e6918015d 100644
--- a/Master/tlpkg/tlperl/lib/CORE/mydtrace.h
+++ b/Master/tlpkg/tlperl/lib/CORE/mydtrace.h
@@ -13,21 +13,21 @@
# include "perldtrace.h"
-# define ENTRY_PROBE(func, file, line) \
- if (PERL_SUB_ENTRY_ENABLED()) { \
- PERL_SUB_ENTRY(func, file, line); \
+# define ENTRY_PROBE(func, file, line, stash) \
+ if (PERL_SUB_ENTRY_ENABLED()) { \
+ PERL_SUB_ENTRY(func, file, line, stash); \
}
-# define RETURN_PROBE(func, file, line) \
- if (PERL_SUB_RETURN_ENABLED()) { \
- PERL_SUB_RETURN(func, file, line); \
+# define RETURN_PROBE(func, file, line, stash) \
+ if (PERL_SUB_RETURN_ENABLED()) { \
+ PERL_SUB_RETURN(func, file, line, stash); \
}
#else
/* NOPs */
-# define ENTRY_PROBE(func, file, line)
-# define RETURN_PROBE(func, file, line)
+# define ENTRY_PROBE(func, file, line, stash)
+# define RETURN_PROBE(func, file, line, stash)
#endif
diff --git a/Master/tlpkg/tlperl/lib/CORE/op.h b/Master/tlpkg/tlperl/lib/CORE/op.h
index 25b59ea5c22..ae6989acb89 100644
--- a/Master/tlpkg/tlperl/lib/CORE/op.h
+++ b/Master/tlpkg/tlperl/lib/CORE/op.h
@@ -36,6 +36,7 @@
* the operation is privatized by a check routine,
* which may or may not check number of children).
*/
+#include "op_reg_common.h"
#define OPCODE U16
@@ -53,7 +54,7 @@ typedef PERL_BITFIELD16 Optype;
#define BASEOP \
OP* op_next; \
OP* op_sibling; \
- OP* (CPERLscope(*op_ppaddr))(pTHX); \
+ OP* (*op_ppaddr)(pTHX); \
MADPROP_IN_BASEOP \
PADOFFSET op_targ; \
PERL_BITFIELD16 op_type:9; \
@@ -85,7 +86,7 @@ typedef PERL_BITFIELD16 Optype;
=for apidoc Amn|U32|GIMME_V
The XSUB-writer's equivalent to Perl's C<wantarray>. Returns C<G_VOID>,
C<G_SCALAR> or C<G_ARRAY> for void, scalar or list context,
-respectively.
+respectively. See L<perlcall> for a usage example.
=for apidoc Amn|U32|GIMME
A backward-compatible version of C<GIMME_V> which can only return
@@ -122,7 +123,6 @@ Deprecated. Use C<GIMME_V> instead.
/* On OP_ENTERSUB || OP_NULL, saw a "do". */
/* On OP_EXISTS, treat av as av, not avhv. */
/* On OP_(ENTER|LEAVE)EVAL, don't clear $@ */
- /* On OP_ENTERITER, loop var is per-thread */
/* On pushre, rx is used as part of split, e.g. split " " */
/* On regcomp, "use re 'eval'" was in scope */
/* On OP_READLINE, was <$filehandle> */
@@ -130,7 +130,7 @@ Deprecated. Use C<GIMME_V> instead.
defined()*/
/* On OP_DBSTATE, indicates breakpoint
* (runtime property) */
- /* On OP_AELEMFAST, indiciates pad var */
+ /* On OP_AELEMFAST, indicates pad var */
/* On OP_REQUIRE, was seen as CORE::require */
/* On OP_ENTERWHEN, there's no condition */
/* On OP_BREAK, an implicit break */
@@ -141,6 +141,12 @@ Deprecated. Use C<GIMME_V> instead.
/* On OP_HELEM and OP_HSLICE, localization will be followed
by assignment, so do not wipe the target if it is special
(e.g. a glob or a magic SV) */
+ /* On OP_MATCH, OP_SUBST & OP_TRANS, the
+ operand of a logical or conditional
+ that was optimised away, so it should
+ not be bound via =~ */
+ /* On OP_CONST, from a constant CV */
+ /* On OP_GLOB, use Perl glob function */
/* old names; don't use in new code, but don't break them, either */
#define OPf_LIST OPf_WANT_LIST
@@ -153,7 +159,7 @@ Deprecated. Use C<GIMME_V> instead.
: G_SCALAR) \
: dowantarray())
-/* NOTE: OP_NEXTSTATE, OP_DBSTATE, and OP_SETSTATE (i.e. COPs) carry lower
+/* NOTE: OP_NEXTSTATE and OP_DBSTATE (i.e. COPs) carry lower
* bits of PL_hints in op_private */
/* Private for lvalues */
@@ -191,10 +197,12 @@ Deprecated. Use C<GIMME_V> instead.
#define OPpDEREF_AV 32 /* Want ref to AV. */
#define OPpDEREF_HV 64 /* Want ref to HV. */
#define OPpDEREF_SV (32|64) /* Want ref to SV. */
+/* Private for OP_RV2SV, OP_RV2AV, OP_RV2AV */
+#define OPpDEREFed 4 /* prev op was OPpDEREF */
/* OP_ENTERSUB only */
#define OPpENTERSUB_DB 16 /* Debug subroutine. */
#define OPpENTERSUB_HASTARG 32 /* Called from OP tree. */
-#define OPpENTERSUB_NOMOD 64 /* Immune to mod() for :attrlist. */
+#define OPpENTERSUB_NOMOD 64 /* Immune to op_lvalue() for :attrlist. */
/* OP_ENTERSUB and OP_RV2CV only */
#define OPpENTERSUB_AMPER 8 /* Used & form to call. */
#define OPpENTERSUB_NOPAREN 128 /* bare sub call (without parens) */
@@ -230,7 +238,7 @@ Deprecated. Use C<GIMME_V> instead.
/* Private for OP_CONST */
#define OPpCONST_NOVER 2 /* no 6; */
#define OPpCONST_SHORTCIRCUIT 4 /* eg the constant 5 in (5 || foo) */
-#define OPpCONST_STRICT 8 /* bearword subject to strict 'subs' */
+#define OPpCONST_STRICT 8 /* bareword subject to strict 'subs' */
#define OPpCONST_ENTERED 16 /* Has been entered as symbol. */
#define OPpCONST_ARYBASE 32 /* Was a $[ translated to constant. */
#define OPpCONST_BARE 64 /* Was a bare word (filehandle?). */
@@ -357,39 +365,44 @@ struct pmop {
#define PM_SETRE(o,r) ((o)->op_pmregexp = (r))
#endif
+/* Leave some space, so future bit allocations can go either in the shared or
+ * unshared area without affecting binary compatibility */
+#define PMf_BASE_SHIFT (_RXf_PMf_SHIFT_NEXT+6)
-#define PMf_RETAINT 0x00000040 /* taint $1 etc. if target tainted */
-#define PMf_ONCE 0x00000080 /* match successfully only once per
- reset, with related flag RXf_USED
- in re->extflags holding state.
- This is used only for ?? matches,
- and only on OP_MATCH and OP_QR */
+/* 'use re "taint"' in scope: taint $1 etc. if target tainted */
+#define PMf_RETAINT (1<<(PMf_BASE_SHIFT+0))
-#define PMf_UNUSED 0x00000100 /* free for use */
-#define PMf_MAYBE_CONST 0x00000200 /* replacement contains variables */
+/* match successfully only once per reset, with related flag RXf_USED in
+ * re->extflags holding state. This is used only for ?? matches, and only on
+ * OP_MATCH and OP_QR */
+#define PMf_ONCE (1<<(PMf_BASE_SHIFT+1))
-#define PMf_USED 0x00000400 /* PMf_ONCE has matched successfully.
- Not used under threading. */
+/* replacement contains variables */
+#define PMf_MAYBE_CONST (1<<(PMf_BASE_SHIFT+2))
-#define PMf_CONST 0x00000800 /* subst replacement is constant */
-#define PMf_KEEP 0x00001000 /* keep 1st runtime pattern forever */
-#define PMf_GLOBAL 0x00002000 /* pattern had a g modifier */
-#define PMf_CONTINUE 0x00004000 /* don't reset pos() if //g fails */
-#define PMf_EVAL 0x00008000 /* evaluating replacement as expr */
+/* PMf_ONCE has matched successfully. Not used under threading. */
+#define PMf_USED (1<<(PMf_BASE_SHIFT+3))
-/* The following flags have exact equivalents in regcomp.h with the prefix RXf_
- * which are stored in the regexp->extflags member. If you change them here,
- * you have to change them there, and vice versa.
- */
-#define PMf_MULTILINE 0x00000001 /* assume multiple lines */
-#define PMf_SINGLELINE 0x00000002 /* assume single line */
-#define PMf_FOLD 0x00000004 /* case insensitivity */
-#define PMf_EXTENDED 0x00000008 /* chuck embedded whitespace */
-#define PMf_KEEPCOPY 0x00000010 /* copy the string when matching */
-#define PMf_LOCALE 0x00000020 /* use locale for character types */
+/* subst replacement is constant */
+#define PMf_CONST (1<<(PMf_BASE_SHIFT+4))
+
+/* keep 1st runtime pattern forever */
+#define PMf_KEEP (1<<(PMf_BASE_SHIFT+5))
+
+#define PMf_GLOBAL (1<<(PMf_BASE_SHIFT+6)) /* pattern had a g modifier */
+
+/* don't reset pos() if //g fails */
+#define PMf_CONTINUE (1<<(PMf_BASE_SHIFT+7))
-/* mask of bits that need to be transfered to re->extflags */
-#define PMf_COMPILETIME (PMf_MULTILINE|PMf_SINGLELINE|PMf_LOCALE|PMf_FOLD|PMf_EXTENDED|PMf_KEEPCOPY)
+/* evaluating replacement as expr */
+#define PMf_EVAL (1<<(PMf_BASE_SHIFT+8))
+
+/* Return substituted string instead of modifying it. */
+#define PMf_NONDESTRUCT (1<<(PMf_BASE_SHIFT+9))
+
+#if PMf_BASE_SHIFT+9 > 31
+# error Too many PMf_ bits used. See above and regnodes.h for any spare in middle
+#endif
#ifdef USE_ITHREADS
@@ -530,14 +543,13 @@ struct loop {
#define OA_FOLDCONST 2
#define OA_RETSCALAR 4
#define OA_TARGET 8
-#define OA_RETINTEGER 16
+#define OA_TARGLEX 16
#define OA_OTHERINT 32
#define OA_DANGEROUS 64
#define OA_DEFGV 128
-#define OA_TARGLEX 256
/* The next 4 bits encode op class information */
-#define OCSHIFT 9
+#define OCSHIFT 8
#define OA_CLASS_MASK (15 << OCSHIFT)
@@ -556,7 +568,7 @@ struct loop {
#define OA_FILESTATOP (12 << OCSHIFT)
#define OA_LOOPEXOP (13 << OCSHIFT)
-#define OASHIFT 13
+#define OASHIFT 12
/* Remaining nybbles of PL_opargs */
#define OA_SCALAR 1
@@ -612,6 +624,21 @@ struct loop {
#define ref(o, type) doref(o, type, TRUE)
#endif
+/*
+=head1 Optree Manipulation Functions
+
+=for apidoc Am|OP*|LINKLIST|OP *o
+Given the root of an optree, link the tree in execution order using the
+C<op_next> pointers and return the first op executed. If this has
+already been done, it will not be redone, and C<< o->op_next >> will be
+returned. If C<< o->op_next >> is not already set, I<o> should be at
+least an C<UNOP>.
+
+=cut
+*/
+
+#define LINKLIST(o) ((o)->op_next ? (o)->op_next : op_linklist((OP*)o))
+
/* no longer used anywhere in core */
#ifndef PERL_CORE
#define cv_ckproto(cv, gv, p) \
@@ -641,6 +668,195 @@ struct loop {
#define FreeOp(p) PerlMemShared_free(p)
#endif
+struct block_hooks {
+ U32 bhk_flags;
+ void (*bhk_start) (pTHX_ int full);
+ void (*bhk_pre_end) (pTHX_ OP **seq);
+ void (*bhk_post_end) (pTHX_ OP **seq);
+ void (*bhk_eval) (pTHX_ OP *const saveop);
+};
+
+/*
+=head1 Compile-time scope hooks
+
+=for apidoc mx|U32|BhkFLAGS|BHK *hk
+Return the BHK's flags.
+
+=for apidoc mx|void *|BhkENTRY|BHK *hk|which
+Return an entry from the BHK structure. I<which> is a preprocessor token
+indicating which entry to return. If the appropriate flag is not set
+this will return NULL. The type of the return value depends on which
+entry you ask for.
+
+=for apidoc Amx|void|BhkENTRY_set|BHK *hk|which|void *ptr
+Set an entry in the BHK structure, and set the flags to indicate it is
+valid. I<which> is a preprocessing token indicating which entry to set.
+The type of I<ptr> depends on the entry.
+
+=for apidoc Amx|void|BhkDISABLE|BHK *hk|which
+Temporarily disable an entry in this BHK structure, by clearing the
+appropriate flag. I<which> is a preprocessor token indicating which
+entry to disable.
+
+=for apidoc Amx|void|BhkENABLE|BHK *hk|which
+Re-enable an entry in this BHK structure, by setting the appropriate
+flag. I<which> is a preprocessor token indicating which entry to enable.
+This will assert (under -DDEBUGGING) if the entry doesn't contain a valid
+pointer.
+
+=for apidoc mx|void|CALL_BLOCK_HOOKS|which|arg
+Call all the registered block hooks for type I<which>. I<which> is a
+preprocessing token; the type of I<arg> depends on I<which>.
+
+=cut
+*/
+
+#define BhkFLAGS(hk) ((hk)->bhk_flags)
+
+#define BHKf_bhk_start 0x01
+#define BHKf_bhk_pre_end 0x02
+#define BHKf_bhk_post_end 0x04
+#define BHKf_bhk_eval 0x08
+
+#define BhkENTRY(hk, which) \
+ ((BhkFLAGS(hk) & BHKf_ ## which) ? ((hk)->which) : NULL)
+
+#define BhkENABLE(hk, which) \
+ STMT_START { \
+ BhkFLAGS(hk) |= BHKf_ ## which; \
+ assert(BhkENTRY(hk, which)); \
+ } STMT_END
+
+#define BhkDISABLE(hk, which) \
+ STMT_START { \
+ BhkFLAGS(hk) &= ~(BHKf_ ## which); \
+ } STMT_END
+
+#define BhkENTRY_set(hk, which, ptr) \
+ STMT_START { \
+ (hk)->which = ptr; \
+ BhkENABLE(hk, which); \
+ } STMT_END
+
+#define CALL_BLOCK_HOOKS(which, arg) \
+ STMT_START { \
+ if (PL_blockhooks) { \
+ I32 i; \
+ for (i = av_len(PL_blockhooks); i >= 0; i--) { \
+ SV *sv = AvARRAY(PL_blockhooks)[i]; \
+ BHK *hk; \
+ \
+ assert(SvIOK(sv)); \
+ if (SvUOK(sv)) \
+ hk = INT2PTR(BHK *, SvUVX(sv)); \
+ else \
+ hk = INT2PTR(BHK *, SvIVX(sv)); \
+ \
+ if (BhkENTRY(hk, which)) \
+ BhkENTRY(hk, which)(aTHX_ arg); \
+ } \
+ } \
+ } STMT_END
+
+/* flags for rv2cv_op_cv */
+
+#define RV2CVOPCV_MARK_EARLY 0x00000001
+#define RV2CVOPCV_RETURN_NAME_GV 0x00000002
+
+/*
+=head1 Custom Operators
+
+=for apidoc Am|U32|XopFLAGS|XOP *xop
+Return the XOP's flags.
+
+=for apidoc Am||XopENTRY|XOP *xop|which
+Return a member of the XOP structure. I<which> is a cpp token indicating
+which entry to return. If the member is not set this will return a
+default value. The return type depends on I<which>.
+
+=for apidoc Am|void|XopENTRY_set|XOP *xop|which|value
+Set a member of the XOP structure. I<which> is a cpp token indicating
+which entry to set. See L<perlguts/"Custom Operators"> for details about
+the available members and how they are used.
+
+=for apidoc Am|void|XopDISABLE|XOP *xop|which
+Temporarily disable a member of the XOP, by clearing the appropriate flag.
+
+=for apidoc Am|void|XopENABLE|XOP *xop|which
+Reenable a member of the XOP which has been disabled.
+
+=cut
+*/
+
+struct custom_op {
+ U32 xop_flags;
+ const char *xop_name;
+ const char *xop_desc;
+ U32 xop_class;
+ void (*xop_peep)(pTHX_ OP *o, OP *oldop);
+};
+
+#define XopFLAGS(xop) ((xop)->xop_flags)
+
+#define XOPf_xop_name 0x01
+#define XOPf_xop_desc 0x02
+#define XOPf_xop_class 0x04
+#define XOPf_xop_peep 0x08
+
+#define XOPd_xop_name PL_op_name[OP_CUSTOM]
+#define XOPd_xop_desc PL_op_desc[OP_CUSTOM]
+#define XOPd_xop_class OA_BASEOP
+#define XOPd_xop_peep ((Perl_cpeep_t)0)
+
+#define XopENTRY_set(xop, which, to) \
+ STMT_START { \
+ (xop)->which = (to); \
+ (xop)->xop_flags |= XOPf_ ## which; \
+ } STMT_END
+
+#define XopENTRY(xop, which) \
+ ((XopFLAGS(xop) & XOPf_ ## which) ? (xop)->which : XOPd_ ## which)
+
+#define XopDISABLE(xop, which) ((xop)->xop_flags &= ~XOPf_ ## which)
+#define XopENABLE(xop, which) \
+ STMT_START { \
+ (xop)->xop_flags |= XOPf_ ## which; \
+ assert(XopENTRY(xop, which)); \
+ } STMT_END
+
+/*
+=head1 Optree Manipulation Functions
+
+=for apidoc Am|const char *|OP_NAME|OP *o
+Return the name of the provided OP. For core ops this looks up the name
+from the op_type; for custom ops from the op_ppaddr.
+
+=for apidoc Am|const char *|OP_DESC|OP *o
+Return a short description of the provided OP.
+
+=for apidoc Am|U32|OP_CLASS|OP *o
+Return the class of the provided OP: that is, which of the *OP
+structures it uses. For core ops this currently gets the information out
+of PL_opargs, which does not always accurately reflect the type used.
+For custom ops the type is returned from the registration, and it is up
+to the registree to ensure it is accurate. The value returned will be
+one of the OA_* constants from op.h.
+
+=cut
+*/
+
+#define OP_NAME(o) ((o)->op_type == OP_CUSTOM \
+ ? XopENTRY(Perl_custom_op_xop(aTHX_ o), xop_name) \
+ : PL_op_name[(o)->op_type])
+#define OP_DESC(o) ((o)->op_type == OP_CUSTOM \
+ ? XopENTRY(Perl_custom_op_xop(aTHX_ o), xop_desc) \
+ : PL_op_desc[(o)->op_type])
+#define OP_CLASS(o) ((o)->op_type == OP_CUSTOM \
+ ? XopENTRY(Perl_custom_op_xop(aTHX_ o), xop_class) \
+ : (PL_opargs[(o)->op_type] & OA_CLASS_MASK))
+
+#define newSUB(f, o, p, b) Perl_newATTRSUB(aTHX_ (f), (o), (p), NULL, (b))
+
#ifdef PERL_MAD
# define MAD_NULL 1
# define MAD_PV 2
diff --git a/Master/tlpkg/tlperl/lib/CORE/op_reg_common.h b/Master/tlpkg/tlperl/lib/CORE/op_reg_common.h
new file mode 100644
index 00000000000..4c3fe2c42c2
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/CORE/op_reg_common.h
@@ -0,0 +1,110 @@
+/* op_reg_common.h
+ *
+ * Definitions common to by op.h and regexp.h
+ *
+ * Copyright (C) 2010 by Larry Wall and others
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ */
+
+/* These defines are used in both op.h and regexp.h The definitions use the
+ * shift form so that ext/B/defsubs_h.PL will pick them up.
+ *
+ * Data structures used in the two headers have common fields, and in fact one
+ * is copied onto the other. This makes it easy to keep them in sync */
+
+/* This tells where the first of these bits is. Setting it to 0 saved cycles
+ * and memory. I (khw) think the code will work if changed back, but haven't
+ * tested it */
+/* Make sure to update ext/re/re.pm when changing this! */
+#ifndef RXf_PMf_STD_PMMOD_SHIFT /* Only expand #include of this file once */
+
+#define RXf_PMf_STD_PMMOD_SHIFT 0
+
+/* The bits need to be ordered so that the msix are contiguous starting at bit
+ * RXf_PMf_STD_PMMOD_SHIFT, followed by the p. See STD_PAT_MODS and
+ * INT_PAT_MODS in regexp.h for the reason contiguity is needed */
+/* Make sure to update lib/re.pm when changing these! */
+#define RXf_PMf_MULTILINE (1 << (RXf_PMf_STD_PMMOD_SHIFT+0)) /* /m */
+#define RXf_PMf_SINGLELINE (1 << (RXf_PMf_STD_PMMOD_SHIFT+1)) /* /s */
+#define RXf_PMf_FOLD (1 << (RXf_PMf_STD_PMMOD_SHIFT+2)) /* /i */
+#define RXf_PMf_EXTENDED (1 << (RXf_PMf_STD_PMMOD_SHIFT+3)) /* /x */
+#define RXf_PMf_KEEPCOPY (1 << (RXf_PMf_STD_PMMOD_SHIFT+4)) /* /p */
+
+/* The character set for the regex is stored in a field of more than one bit
+ * using an enum, for reasons of compactness and to ensure that the options are
+ * mutually exclusive */
+/* Make sure to update ext/re/re.pm when changing this! */
+typedef enum {
+ REGEX_DEPENDS_CHARSET = 0,
+ REGEX_LOCALE_CHARSET,
+ REGEX_UNICODE_CHARSET,
+ REGEX_ASCII_RESTRICTED_CHARSET,
+ REGEX_ASCII_MORE_RESTRICTED_CHARSET
+} regex_charset;
+
+#define _RXf_PMf_CHARSET_SHIFT ((RXf_PMf_STD_PMMOD_SHIFT)+5)
+#define RXf_PMf_CHARSET (7 << (_RXf_PMf_CHARSET_SHIFT)) /* 3 bits */
+
+/* embed.pl doesn't yet know how to handle static inline functions, so
+ manually decorate them here with gcc-style attributes.
+*/
+PERL_STATIC_INLINE void
+set_regex_charset(U32 * const flags, const regex_charset cs)
+ __attribute__nonnull__(1);
+
+PERL_STATIC_INLINE void
+set_regex_charset(U32 * const flags, const regex_charset cs)
+{
+ /* Sets the character set portion of 'flags' to 'cs', which is a member of
+ * the above enum */
+
+ *flags &= ~RXf_PMf_CHARSET;
+ *flags |= (cs << _RXf_PMf_CHARSET_SHIFT);
+}
+
+PERL_STATIC_INLINE regex_charset
+get_regex_charset(const U32 flags)
+ __attribute__warn_unused_result__;
+
+PERL_STATIC_INLINE regex_charset
+get_regex_charset(const U32 flags)
+{
+ /* Returns the enum corresponding to the character set in 'flags' */
+
+ return (regex_charset) ((flags & RXf_PMf_CHARSET) >> _RXf_PMf_CHARSET_SHIFT);
+}
+
+/* Next available bit after the above. Name begins with '_' so won't be
+ * exported by B */
+#define _RXf_PMf_SHIFT_NEXT (RXf_PMf_STD_PMMOD_SHIFT+8)
+
+/* Mask of the above bits. These need to be transferred from op_pmflags to
+ * re->extflags during compilation */
+#define RXf_PMf_COMPILETIME (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_CHARSET|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_KEEPCOPY)
+
+/* These copies need to be numerical or defsubs_h.PL won't know about them. */
+#define PMf_MULTILINE 1<<0
+#define PMf_SINGLELINE 1<<1
+#define PMf_FOLD 1<<2
+#define PMf_EXTENDED 1<<3
+#define PMf_KEEPCOPY 1<<4
+
+#if PMf_MULTILINE != RXf_PMf_MULTILINE || PMf_SINGLELINE != RXf_PMf_SINGLELINE || PMf_FOLD != RXf_PMf_FOLD || PMf_EXTENDED != RXf_PMf_EXTENDED || PMf_KEEPCOPY != RXf_PMf_KEEPCOPY
+# error RXf_PMf defines are wrong
+#endif
+
+#define PMf_COMPILETIME RXf_PMf_COMPILETIME
+
+/* Error check that haven't left something out of this. This isn't done
+ * directly in the #define because doing so confuses regcomp.pl.
+ * (2**n - 1) is n 1 bits, so the below gets the contiguous bits between the
+ * beginning and ending shifts */
+#if RXf_PMf_COMPILETIME != (((1 << (_RXf_PMf_SHIFT_NEXT))-1) \
+ & (~((1 << RXf_PMf_STD_PMMOD_SHIFT)-1)))
+# error RXf_PMf_COMPILETIME is invalid
+#endif
+
+#endif /* Include only once */
diff --git a/Master/tlpkg/tlperl/lib/CORE/opcode.h b/Master/tlpkg/tlperl/lib/CORE/opcode.h
index 0849839c7a5..4f0e1c658a4 100644
--- a/Master/tlpkg/tlperl/lib/CORE/opcode.h
+++ b/Master/tlpkg/tlperl/lib/CORE/opcode.h
@@ -2,33 +2,145 @@
*
* opcode.h
*
- * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- * 2001, 2002, 2003, 2004, 2005, 2006, 2007 by Larry Wall and others
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+ * 2002, 2003, 2004, 2005, 2006, 2007 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by opcode.pl from its data. Any changes made here
- * will be lost!
+ * This file is built by regen/opcode.pl from its data.
+ * Any changes made here will be lost!
*/
#ifndef PERL_GLOBAL_STRUCT_INIT
+#define Perl_pp_scalar Perl_pp_null
+#define Perl_pp_padany Perl_unimplemented_op
+#define Perl_pp_regcmaybe Perl_pp_null
+#define Perl_pp_chomp Perl_pp_chop
+#define Perl_pp_schomp Perl_pp_schop
#define Perl_pp_i_preinc Perl_pp_preinc
#define Perl_pp_i_predec Perl_pp_predec
#define Perl_pp_i_postinc Perl_pp_postinc
#define Perl_pp_i_postdec Perl_pp_postdec
-
-PERL_PPDEF(Perl_unimplemented_op)
-
+#define Perl_pp_slt Perl_pp_sle
+#define Perl_pp_sgt Perl_pp_sle
+#define Perl_pp_sge Perl_pp_sle
+#define Perl_pp_bit_xor Perl_pp_bit_or
+#define Perl_pp_cos Perl_pp_sin
+#define Perl_pp_exp Perl_pp_sin
+#define Perl_pp_log Perl_pp_sin
+#define Perl_pp_sqrt Perl_pp_sin
+#define Perl_pp_hex Perl_pp_oct
+#define Perl_pp_rindex Perl_pp_index
+#define Perl_pp_lcfirst Perl_pp_ucfirst
+#define Perl_pp_avalues Perl_pp_akeys
+#define Perl_pp_values Perl_do_kv
+#define Perl_pp_keys Perl_do_kv
+#define Perl_pp_rv2hv Perl_pp_rv2av
+#define Perl_pp_pop Perl_pp_shift
+#define Perl_pp_mapstart Perl_unimplemented_op
+#define Perl_pp_dor Perl_pp_defined
+#define Perl_pp_andassign Perl_pp_and
+#define Perl_pp_orassign Perl_pp_or
+#define Perl_pp_dorassign Perl_pp_defined
+#define Perl_pp_lineseq Perl_pp_null
+#define Perl_pp_scope Perl_pp_null
+#define Perl_pp_dump Perl_pp_goto
+#define Perl_pp_dbmclose Perl_pp_untie
+#define Perl_pp_read Perl_pp_sysread
+#define Perl_pp_say Perl_pp_print
+#define Perl_pp_seek Perl_pp_sysseek
+#define Perl_pp_fcntl Perl_pp_ioctl
+#ifdef HAS_SOCKET
+#define Perl_pp_send Perl_pp_syswrite
+#define Perl_pp_recv Perl_pp_sysread
+#else
+#define Perl_pp_send Perl_unimplemented_op
+#define Perl_pp_recv Perl_unimplemented_op
+#define Perl_pp_socket Perl_unimplemented_op
+#endif
+#ifdef HAS_SOCKET
+#define Perl_pp_connect Perl_pp_bind
+#define Perl_pp_gsockopt Perl_pp_ssockopt
+#define Perl_pp_getsockname Perl_pp_getpeername
+#else
+#define Perl_pp_bind Perl_unimplemented_op
+#define Perl_pp_connect Perl_unimplemented_op
+#define Perl_pp_listen Perl_unimplemented_op
+#define Perl_pp_accept Perl_unimplemented_op
+#define Perl_pp_shutdown Perl_unimplemented_op
+#define Perl_pp_gsockopt Perl_unimplemented_op
+#define Perl_pp_ssockopt Perl_unimplemented_op
+#define Perl_pp_getsockname Perl_unimplemented_op
+#define Perl_pp_getpeername Perl_unimplemented_op
+#endif
+#define Perl_pp_lstat Perl_pp_stat
+#define Perl_pp_ftrwrite Perl_pp_ftrread
+#define Perl_pp_ftrexec Perl_pp_ftrread
+#define Perl_pp_fteread Perl_pp_ftrread
+#define Perl_pp_ftewrite Perl_pp_ftrread
+#define Perl_pp_fteexec Perl_pp_ftrread
+#define Perl_pp_ftsize Perl_pp_ftis
+#define Perl_pp_ftmtime Perl_pp_ftis
+#define Perl_pp_ftatime Perl_pp_ftis
+#define Perl_pp_ftctime Perl_pp_ftis
+#define Perl_pp_fteowned Perl_pp_ftrowned
+#define Perl_pp_ftzero Perl_pp_ftrowned
+#define Perl_pp_ftsock Perl_pp_ftrowned
+#define Perl_pp_ftchr Perl_pp_ftrowned
+#define Perl_pp_ftblk Perl_pp_ftrowned
+#define Perl_pp_ftfile Perl_pp_ftrowned
+#define Perl_pp_ftdir Perl_pp_ftrowned
+#define Perl_pp_ftpipe Perl_pp_ftrowned
+#define Perl_pp_ftsuid Perl_pp_ftrowned
+#define Perl_pp_ftsgid Perl_pp_ftrowned
+#define Perl_pp_ftsvtx Perl_pp_ftrowned
+#define Perl_pp_ftbinary Perl_pp_fttext
+#define Perl_pp_unlink Perl_pp_chown
+#define Perl_pp_chmod Perl_pp_chown
+#define Perl_pp_utime Perl_pp_chown
+#define Perl_pp_symlink Perl_pp_link
+#define Perl_pp_kill Perl_pp_chown
+#define Perl_pp_localtime Perl_pp_gmtime
+#define Perl_pp_shmget Perl_pp_semget
+#define Perl_pp_shmctl Perl_pp_semctl
+#define Perl_pp_shmread Perl_pp_shmwrite
+#define Perl_pp_msgget Perl_pp_semget
+#define Perl_pp_msgctl Perl_pp_semctl
+#define Perl_pp_msgsnd Perl_pp_shmwrite
+#define Perl_pp_msgrcv Perl_pp_shmwrite
+#define Perl_pp_semop Perl_pp_shmwrite
+#define Perl_pp_dofile Perl_pp_require
+#define Perl_pp_ghbyname Perl_pp_ghostent
+#define Perl_pp_ghbyaddr Perl_pp_ghostent
+#define Perl_pp_gnbyname Perl_pp_gnetent
+#define Perl_pp_gnbyaddr Perl_pp_gnetent
+#define Perl_pp_gpbyname Perl_pp_gprotoent
+#define Perl_pp_gpbynumber Perl_pp_gprotoent
+#define Perl_pp_gsbyname Perl_pp_gservent
+#define Perl_pp_gsbyport Perl_pp_gservent
+#define Perl_pp_snetent Perl_pp_shostent
+#define Perl_pp_sprotoent Perl_pp_shostent
+#define Perl_pp_sservent Perl_pp_shostent
+#define Perl_pp_enetent Perl_pp_ehostent
+#define Perl_pp_eprotoent Perl_pp_ehostent
+#define Perl_pp_eservent Perl_pp_ehostent
+#define Perl_pp_gpwnam Perl_pp_gpwent
+#define Perl_pp_gpwuid Perl_pp_gpwent
+#define Perl_pp_spwent Perl_pp_ehostent
+#define Perl_pp_epwent Perl_pp_ehostent
+#define Perl_pp_ggrnam Perl_pp_ggrent
+#define Perl_pp_ggrgid Perl_pp_ggrent
+#define Perl_pp_sgrent Perl_pp_ehostent
+#define Perl_pp_egrent Perl_pp_ehostent
+#define Perl_pp_custom Perl_unimplemented_op
+#define Perl_pp_reach Perl_pp_rkeys
+#define Perl_pp_rvalues Perl_pp_rkeys
+#define Perl_pp_transr Perl_pp_trans
START_EXTERN_C
-#define OP_NAME(o) ((o)->op_type == OP_CUSTOM ? custom_op_name(o) : \
- PL_op_name[(o)->op_type])
-#define OP_DESC(o) ((o)->op_type == OP_CUSTOM ? custom_op_desc(o) : \
- PL_op_desc[(o)->op_type])
-
#ifndef DOINIT
EXTCONST char* const PL_op_name[];
#else
@@ -399,6 +511,10 @@ EXTCONST char* const PL_op_name[] = {
"lock",
"once",
"custom",
+ "reach",
+ "rkeys",
+ "rvalues",
+ "transr",
};
#endif
@@ -772,6 +888,10 @@ EXTCONST char* const PL_op_desc[] = {
"lock",
"once",
"unknown custom operator",
+ "each on reference",
+ "keys on reference",
+ "values on reference",
+ "transliteration (tr///)",
};
#endif
@@ -793,372 +913,376 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
#if (defined(DOINIT) && !defined(PERL_GLOBAL_STRUCT)) || defined(PERL_GLOBAL_STRUCT_INIT)
# define PERL_PPADDR_INITED
= {
- MEMBER_TO_FPTR(Perl_pp_null),
- MEMBER_TO_FPTR(Perl_pp_stub),
- MEMBER_TO_FPTR(Perl_pp_null), /* Perl_pp_scalar */
- MEMBER_TO_FPTR(Perl_pp_pushmark),
- MEMBER_TO_FPTR(Perl_pp_wantarray),
- MEMBER_TO_FPTR(Perl_pp_const),
- MEMBER_TO_FPTR(Perl_pp_gvsv),
- MEMBER_TO_FPTR(Perl_pp_gv),
- MEMBER_TO_FPTR(Perl_pp_gelem),
- MEMBER_TO_FPTR(Perl_pp_padsv),
- MEMBER_TO_FPTR(Perl_pp_padav),
- MEMBER_TO_FPTR(Perl_pp_padhv),
- MEMBER_TO_FPTR(Perl_unimplemented_op), /* Perl_pp_padany */
- MEMBER_TO_FPTR(Perl_pp_pushre),
- MEMBER_TO_FPTR(Perl_pp_rv2gv),
- MEMBER_TO_FPTR(Perl_pp_rv2sv),
- MEMBER_TO_FPTR(Perl_pp_av2arylen),
- MEMBER_TO_FPTR(Perl_pp_rv2cv),
- MEMBER_TO_FPTR(Perl_pp_anoncode),
- MEMBER_TO_FPTR(Perl_pp_prototype),
- MEMBER_TO_FPTR(Perl_pp_refgen),
- MEMBER_TO_FPTR(Perl_pp_srefgen),
- MEMBER_TO_FPTR(Perl_pp_ref),
- MEMBER_TO_FPTR(Perl_pp_bless),
- MEMBER_TO_FPTR(Perl_pp_backtick),
- MEMBER_TO_FPTR(Perl_pp_glob),
- MEMBER_TO_FPTR(Perl_pp_readline),
- MEMBER_TO_FPTR(Perl_pp_rcatline),
- MEMBER_TO_FPTR(Perl_pp_null), /* Perl_pp_regcmaybe */
- MEMBER_TO_FPTR(Perl_pp_regcreset),
- MEMBER_TO_FPTR(Perl_pp_regcomp),
- MEMBER_TO_FPTR(Perl_pp_match),
- MEMBER_TO_FPTR(Perl_pp_qr),
- MEMBER_TO_FPTR(Perl_pp_subst),
- MEMBER_TO_FPTR(Perl_pp_substcont),
- MEMBER_TO_FPTR(Perl_pp_trans),
- MEMBER_TO_FPTR(Perl_pp_sassign),
- MEMBER_TO_FPTR(Perl_pp_aassign),
- MEMBER_TO_FPTR(Perl_pp_chop),
- MEMBER_TO_FPTR(Perl_pp_schop),
- MEMBER_TO_FPTR(Perl_pp_chomp),
- MEMBER_TO_FPTR(Perl_pp_schomp),
- MEMBER_TO_FPTR(Perl_pp_defined),
- MEMBER_TO_FPTR(Perl_pp_undef),
- MEMBER_TO_FPTR(Perl_pp_study),
- MEMBER_TO_FPTR(Perl_pp_pos),
- MEMBER_TO_FPTR(Perl_pp_preinc),
- MEMBER_TO_FPTR(Perl_pp_i_preinc),
- MEMBER_TO_FPTR(Perl_pp_predec),
- MEMBER_TO_FPTR(Perl_pp_i_predec),
- MEMBER_TO_FPTR(Perl_pp_postinc),
- MEMBER_TO_FPTR(Perl_pp_i_postinc),
- MEMBER_TO_FPTR(Perl_pp_postdec),
- MEMBER_TO_FPTR(Perl_pp_i_postdec),
- MEMBER_TO_FPTR(Perl_pp_pow),
- MEMBER_TO_FPTR(Perl_pp_multiply),
- MEMBER_TO_FPTR(Perl_pp_i_multiply),
- MEMBER_TO_FPTR(Perl_pp_divide),
- MEMBER_TO_FPTR(Perl_pp_i_divide),
- MEMBER_TO_FPTR(Perl_pp_modulo),
- MEMBER_TO_FPTR(Perl_pp_i_modulo),
- MEMBER_TO_FPTR(Perl_pp_repeat),
- MEMBER_TO_FPTR(Perl_pp_add),
- MEMBER_TO_FPTR(Perl_pp_i_add),
- MEMBER_TO_FPTR(Perl_pp_subtract),
- MEMBER_TO_FPTR(Perl_pp_i_subtract),
- MEMBER_TO_FPTR(Perl_pp_concat),
- MEMBER_TO_FPTR(Perl_pp_stringify),
- MEMBER_TO_FPTR(Perl_pp_left_shift),
- MEMBER_TO_FPTR(Perl_pp_right_shift),
- MEMBER_TO_FPTR(Perl_pp_lt),
- MEMBER_TO_FPTR(Perl_pp_i_lt),
- MEMBER_TO_FPTR(Perl_pp_gt),
- MEMBER_TO_FPTR(Perl_pp_i_gt),
- MEMBER_TO_FPTR(Perl_pp_le),
- MEMBER_TO_FPTR(Perl_pp_i_le),
- MEMBER_TO_FPTR(Perl_pp_ge),
- MEMBER_TO_FPTR(Perl_pp_i_ge),
- MEMBER_TO_FPTR(Perl_pp_eq),
- MEMBER_TO_FPTR(Perl_pp_i_eq),
- MEMBER_TO_FPTR(Perl_pp_ne),
- MEMBER_TO_FPTR(Perl_pp_i_ne),
- MEMBER_TO_FPTR(Perl_pp_ncmp),
- MEMBER_TO_FPTR(Perl_pp_i_ncmp),
- MEMBER_TO_FPTR(Perl_pp_sle), /* Perl_pp_slt */
- MEMBER_TO_FPTR(Perl_pp_sle), /* Perl_pp_sgt */
- MEMBER_TO_FPTR(Perl_pp_sle),
- MEMBER_TO_FPTR(Perl_pp_sle), /* Perl_pp_sge */
- MEMBER_TO_FPTR(Perl_pp_seq),
- MEMBER_TO_FPTR(Perl_pp_sne),
- MEMBER_TO_FPTR(Perl_pp_scmp),
- MEMBER_TO_FPTR(Perl_pp_bit_and),
- MEMBER_TO_FPTR(Perl_pp_bit_or), /* Perl_pp_bit_xor */
- MEMBER_TO_FPTR(Perl_pp_bit_or),
- MEMBER_TO_FPTR(Perl_pp_negate),
- MEMBER_TO_FPTR(Perl_pp_i_negate),
- MEMBER_TO_FPTR(Perl_pp_not),
- MEMBER_TO_FPTR(Perl_pp_complement),
- MEMBER_TO_FPTR(Perl_pp_smartmatch),
- MEMBER_TO_FPTR(Perl_pp_atan2),
- MEMBER_TO_FPTR(Perl_pp_sin),
- MEMBER_TO_FPTR(Perl_pp_sin), /* Perl_pp_cos */
- MEMBER_TO_FPTR(Perl_pp_rand),
- MEMBER_TO_FPTR(Perl_pp_srand),
- MEMBER_TO_FPTR(Perl_pp_sin), /* Perl_pp_exp */
- MEMBER_TO_FPTR(Perl_pp_sin), /* Perl_pp_log */
- MEMBER_TO_FPTR(Perl_pp_sin), /* Perl_pp_sqrt */
- MEMBER_TO_FPTR(Perl_pp_int),
- MEMBER_TO_FPTR(Perl_pp_oct), /* Perl_pp_hex */
- MEMBER_TO_FPTR(Perl_pp_oct),
- MEMBER_TO_FPTR(Perl_pp_abs),
- MEMBER_TO_FPTR(Perl_pp_length),
- MEMBER_TO_FPTR(Perl_pp_substr),
- MEMBER_TO_FPTR(Perl_pp_vec),
- MEMBER_TO_FPTR(Perl_pp_index),
- MEMBER_TO_FPTR(Perl_pp_index), /* Perl_pp_rindex */
- MEMBER_TO_FPTR(Perl_pp_sprintf),
- MEMBER_TO_FPTR(Perl_pp_formline),
- MEMBER_TO_FPTR(Perl_pp_ord),
- MEMBER_TO_FPTR(Perl_pp_chr),
- MEMBER_TO_FPTR(Perl_pp_crypt),
- MEMBER_TO_FPTR(Perl_pp_ucfirst),
- MEMBER_TO_FPTR(Perl_pp_ucfirst), /* Perl_pp_lcfirst */
- MEMBER_TO_FPTR(Perl_pp_uc),
- MEMBER_TO_FPTR(Perl_pp_lc),
- MEMBER_TO_FPTR(Perl_pp_quotemeta),
- MEMBER_TO_FPTR(Perl_pp_rv2av),
- MEMBER_TO_FPTR(Perl_pp_aelemfast),
- MEMBER_TO_FPTR(Perl_pp_aelem),
- MEMBER_TO_FPTR(Perl_pp_aslice),
- MEMBER_TO_FPTR(Perl_pp_aeach),
- MEMBER_TO_FPTR(Perl_pp_akeys),
- MEMBER_TO_FPTR(Perl_pp_akeys), /* Perl_pp_avalues */
- MEMBER_TO_FPTR(Perl_pp_each),
- MEMBER_TO_FPTR(Perl_do_kv), /* Perl_pp_values */
- MEMBER_TO_FPTR(Perl_do_kv), /* Perl_pp_keys */
- MEMBER_TO_FPTR(Perl_pp_delete),
- MEMBER_TO_FPTR(Perl_pp_exists),
- MEMBER_TO_FPTR(Perl_pp_rv2av), /* Perl_pp_rv2hv */
- MEMBER_TO_FPTR(Perl_pp_helem),
- MEMBER_TO_FPTR(Perl_pp_hslice),
- MEMBER_TO_FPTR(Perl_pp_boolkeys),
- MEMBER_TO_FPTR(Perl_pp_unpack),
- MEMBER_TO_FPTR(Perl_pp_pack),
- MEMBER_TO_FPTR(Perl_pp_split),
- MEMBER_TO_FPTR(Perl_pp_join),
- MEMBER_TO_FPTR(Perl_pp_list),
- MEMBER_TO_FPTR(Perl_pp_lslice),
- MEMBER_TO_FPTR(Perl_pp_anonlist),
- MEMBER_TO_FPTR(Perl_pp_anonhash),
- MEMBER_TO_FPTR(Perl_pp_splice),
- MEMBER_TO_FPTR(Perl_pp_push),
- MEMBER_TO_FPTR(Perl_pp_shift), /* Perl_pp_pop */
- MEMBER_TO_FPTR(Perl_pp_shift),
- MEMBER_TO_FPTR(Perl_pp_unshift),
- MEMBER_TO_FPTR(Perl_pp_sort),
- MEMBER_TO_FPTR(Perl_pp_reverse),
- MEMBER_TO_FPTR(Perl_pp_grepstart),
- MEMBER_TO_FPTR(Perl_pp_grepwhile),
- MEMBER_TO_FPTR(Perl_unimplemented_op), /* Perl_pp_mapstart */
- MEMBER_TO_FPTR(Perl_pp_mapwhile),
- MEMBER_TO_FPTR(Perl_pp_range),
- MEMBER_TO_FPTR(Perl_pp_flip),
- MEMBER_TO_FPTR(Perl_pp_flop),
- MEMBER_TO_FPTR(Perl_pp_and),
- MEMBER_TO_FPTR(Perl_pp_or),
- MEMBER_TO_FPTR(Perl_pp_xor),
- MEMBER_TO_FPTR(Perl_pp_defined), /* Perl_pp_dor */
- MEMBER_TO_FPTR(Perl_pp_cond_expr),
- MEMBER_TO_FPTR(Perl_pp_and), /* Perl_pp_andassign */
- MEMBER_TO_FPTR(Perl_pp_or), /* Perl_pp_orassign */
- MEMBER_TO_FPTR(Perl_pp_defined), /* Perl_pp_dorassign */
- MEMBER_TO_FPTR(Perl_pp_method),
- MEMBER_TO_FPTR(Perl_pp_entersub),
- MEMBER_TO_FPTR(Perl_pp_leavesub),
- MEMBER_TO_FPTR(Perl_pp_leavesublv),
- MEMBER_TO_FPTR(Perl_pp_caller),
- MEMBER_TO_FPTR(Perl_pp_warn),
- MEMBER_TO_FPTR(Perl_pp_die),
- MEMBER_TO_FPTR(Perl_pp_reset),
- MEMBER_TO_FPTR(Perl_pp_null), /* Perl_pp_lineseq */
- MEMBER_TO_FPTR(Perl_pp_nextstate),
- MEMBER_TO_FPTR(Perl_pp_dbstate),
- MEMBER_TO_FPTR(Perl_pp_unstack),
- MEMBER_TO_FPTR(Perl_pp_enter),
- MEMBER_TO_FPTR(Perl_pp_leave),
- MEMBER_TO_FPTR(Perl_pp_null), /* Perl_pp_scope */
- MEMBER_TO_FPTR(Perl_pp_enteriter),
- MEMBER_TO_FPTR(Perl_pp_iter),
- MEMBER_TO_FPTR(Perl_pp_enterloop),
- MEMBER_TO_FPTR(Perl_pp_leaveloop),
- MEMBER_TO_FPTR(Perl_pp_return),
- MEMBER_TO_FPTR(Perl_pp_last),
- MEMBER_TO_FPTR(Perl_pp_next),
- MEMBER_TO_FPTR(Perl_pp_redo),
- MEMBER_TO_FPTR(Perl_pp_goto), /* Perl_pp_dump */
- MEMBER_TO_FPTR(Perl_pp_goto),
- MEMBER_TO_FPTR(Perl_pp_exit),
- MEMBER_TO_FPTR(Perl_pp_method_named),
- MEMBER_TO_FPTR(Perl_pp_entergiven),
- MEMBER_TO_FPTR(Perl_pp_leavegiven),
- MEMBER_TO_FPTR(Perl_pp_enterwhen),
- MEMBER_TO_FPTR(Perl_pp_leavewhen),
- MEMBER_TO_FPTR(Perl_pp_break),
- MEMBER_TO_FPTR(Perl_pp_continue),
- MEMBER_TO_FPTR(Perl_pp_open),
- MEMBER_TO_FPTR(Perl_pp_close),
- MEMBER_TO_FPTR(Perl_pp_pipe_op),
- MEMBER_TO_FPTR(Perl_pp_fileno),
- MEMBER_TO_FPTR(Perl_pp_umask),
- MEMBER_TO_FPTR(Perl_pp_binmode),
- MEMBER_TO_FPTR(Perl_pp_tie),
- MEMBER_TO_FPTR(Perl_pp_untie),
- MEMBER_TO_FPTR(Perl_pp_tied),
- MEMBER_TO_FPTR(Perl_pp_dbmopen),
- MEMBER_TO_FPTR(Perl_pp_untie), /* Perl_pp_dbmclose */
- MEMBER_TO_FPTR(Perl_pp_sselect),
- MEMBER_TO_FPTR(Perl_pp_select),
- MEMBER_TO_FPTR(Perl_pp_getc),
- MEMBER_TO_FPTR(Perl_pp_sysread), /* Perl_pp_read */
- MEMBER_TO_FPTR(Perl_pp_enterwrite),
- MEMBER_TO_FPTR(Perl_pp_leavewrite),
- MEMBER_TO_FPTR(Perl_pp_prtf),
- MEMBER_TO_FPTR(Perl_pp_print),
- MEMBER_TO_FPTR(Perl_pp_print), /* Perl_pp_say */
- MEMBER_TO_FPTR(Perl_pp_sysopen),
- MEMBER_TO_FPTR(Perl_pp_sysseek),
- MEMBER_TO_FPTR(Perl_pp_sysread),
- MEMBER_TO_FPTR(Perl_pp_send), /* Perl_pp_syswrite */
- MEMBER_TO_FPTR(Perl_pp_eof),
- MEMBER_TO_FPTR(Perl_pp_tell),
- MEMBER_TO_FPTR(Perl_pp_sysseek), /* Perl_pp_seek */
- MEMBER_TO_FPTR(Perl_pp_truncate),
- MEMBER_TO_FPTR(Perl_pp_ioctl), /* Perl_pp_fcntl */
- MEMBER_TO_FPTR(Perl_pp_ioctl),
- MEMBER_TO_FPTR(Perl_pp_flock),
- MEMBER_TO_FPTR(Perl_pp_send),
- MEMBER_TO_FPTR(Perl_pp_sysread), /* Perl_pp_recv */
- MEMBER_TO_FPTR(Perl_pp_socket),
- MEMBER_TO_FPTR(Perl_pp_sockpair),
- MEMBER_TO_FPTR(Perl_pp_bind),
- MEMBER_TO_FPTR(Perl_pp_connect),
- MEMBER_TO_FPTR(Perl_pp_listen),
- MEMBER_TO_FPTR(Perl_pp_accept),
- MEMBER_TO_FPTR(Perl_pp_shutdown),
- MEMBER_TO_FPTR(Perl_pp_ssockopt), /* Perl_pp_gsockopt */
- MEMBER_TO_FPTR(Perl_pp_ssockopt),
- MEMBER_TO_FPTR(Perl_pp_getpeername), /* Perl_pp_getsockname */
- MEMBER_TO_FPTR(Perl_pp_getpeername),
- MEMBER_TO_FPTR(Perl_pp_stat), /* Perl_pp_lstat */
- MEMBER_TO_FPTR(Perl_pp_stat),
- MEMBER_TO_FPTR(Perl_pp_ftrread),
- MEMBER_TO_FPTR(Perl_pp_ftrread), /* Perl_pp_ftrwrite */
- MEMBER_TO_FPTR(Perl_pp_ftrread), /* Perl_pp_ftrexec */
- MEMBER_TO_FPTR(Perl_pp_ftrread), /* Perl_pp_fteread */
- MEMBER_TO_FPTR(Perl_pp_ftrread), /* Perl_pp_ftewrite */
- MEMBER_TO_FPTR(Perl_pp_ftrread), /* Perl_pp_fteexec */
- MEMBER_TO_FPTR(Perl_pp_ftis),
- MEMBER_TO_FPTR(Perl_pp_ftis), /* Perl_pp_ftsize */
- MEMBER_TO_FPTR(Perl_pp_ftis), /* Perl_pp_ftmtime */
- MEMBER_TO_FPTR(Perl_pp_ftis), /* Perl_pp_ftatime */
- MEMBER_TO_FPTR(Perl_pp_ftis), /* Perl_pp_ftctime */
- MEMBER_TO_FPTR(Perl_pp_ftrowned),
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_fteowned */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftzero */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftsock */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftchr */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftblk */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftfile */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftdir */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftpipe */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftsuid */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftsgid */
- MEMBER_TO_FPTR(Perl_pp_ftrowned), /* Perl_pp_ftsvtx */
- MEMBER_TO_FPTR(Perl_pp_ftlink),
- MEMBER_TO_FPTR(Perl_pp_fttty),
- MEMBER_TO_FPTR(Perl_pp_fttext),
- MEMBER_TO_FPTR(Perl_pp_fttext), /* Perl_pp_ftbinary */
- MEMBER_TO_FPTR(Perl_pp_chdir),
- MEMBER_TO_FPTR(Perl_pp_chown),
- MEMBER_TO_FPTR(Perl_pp_chroot),
- MEMBER_TO_FPTR(Perl_pp_chown), /* Perl_pp_unlink */
- MEMBER_TO_FPTR(Perl_pp_chown), /* Perl_pp_chmod */
- MEMBER_TO_FPTR(Perl_pp_chown), /* Perl_pp_utime */
- MEMBER_TO_FPTR(Perl_pp_rename),
- MEMBER_TO_FPTR(Perl_pp_link),
- MEMBER_TO_FPTR(Perl_pp_link), /* Perl_pp_symlink */
- MEMBER_TO_FPTR(Perl_pp_readlink),
- MEMBER_TO_FPTR(Perl_pp_mkdir),
- MEMBER_TO_FPTR(Perl_pp_rmdir),
- MEMBER_TO_FPTR(Perl_pp_open_dir),
- MEMBER_TO_FPTR(Perl_pp_readdir),
- MEMBER_TO_FPTR(Perl_pp_telldir),
- MEMBER_TO_FPTR(Perl_pp_seekdir),
- MEMBER_TO_FPTR(Perl_pp_rewinddir),
- MEMBER_TO_FPTR(Perl_pp_closedir),
- MEMBER_TO_FPTR(Perl_pp_fork),
- MEMBER_TO_FPTR(Perl_pp_wait),
- MEMBER_TO_FPTR(Perl_pp_waitpid),
- MEMBER_TO_FPTR(Perl_pp_system),
- MEMBER_TO_FPTR(Perl_pp_exec),
- MEMBER_TO_FPTR(Perl_pp_chown), /* Perl_pp_kill */
- MEMBER_TO_FPTR(Perl_pp_getppid),
- MEMBER_TO_FPTR(Perl_pp_getpgrp),
- MEMBER_TO_FPTR(Perl_pp_setpgrp),
- MEMBER_TO_FPTR(Perl_pp_getpriority),
- MEMBER_TO_FPTR(Perl_pp_setpriority),
- MEMBER_TO_FPTR(Perl_pp_time),
- MEMBER_TO_FPTR(Perl_pp_tms),
- MEMBER_TO_FPTR(Perl_pp_gmtime), /* Perl_pp_localtime */
- MEMBER_TO_FPTR(Perl_pp_gmtime),
- MEMBER_TO_FPTR(Perl_pp_alarm),
- MEMBER_TO_FPTR(Perl_pp_sleep),
- MEMBER_TO_FPTR(Perl_pp_semget), /* Perl_pp_shmget */
- MEMBER_TO_FPTR(Perl_pp_semctl), /* Perl_pp_shmctl */
- MEMBER_TO_FPTR(Perl_pp_shmwrite), /* Perl_pp_shmread */
- MEMBER_TO_FPTR(Perl_pp_shmwrite),
- MEMBER_TO_FPTR(Perl_pp_semget), /* Perl_pp_msgget */
- MEMBER_TO_FPTR(Perl_pp_semctl), /* Perl_pp_msgctl */
- MEMBER_TO_FPTR(Perl_pp_shmwrite), /* Perl_pp_msgsnd */
- MEMBER_TO_FPTR(Perl_pp_shmwrite), /* Perl_pp_msgrcv */
- MEMBER_TO_FPTR(Perl_pp_shmwrite), /* Perl_pp_semop */
- MEMBER_TO_FPTR(Perl_pp_semget),
- MEMBER_TO_FPTR(Perl_pp_semctl),
- MEMBER_TO_FPTR(Perl_pp_require),
- MEMBER_TO_FPTR(Perl_pp_require), /* Perl_pp_dofile */
- MEMBER_TO_FPTR(Perl_pp_hintseval),
- MEMBER_TO_FPTR(Perl_pp_entereval),
- MEMBER_TO_FPTR(Perl_pp_leaveeval),
- MEMBER_TO_FPTR(Perl_pp_entertry),
- MEMBER_TO_FPTR(Perl_pp_leavetry),
- MEMBER_TO_FPTR(Perl_pp_ghostent), /* Perl_pp_ghbyname */
- MEMBER_TO_FPTR(Perl_pp_ghostent), /* Perl_pp_ghbyaddr */
- MEMBER_TO_FPTR(Perl_pp_ghostent),
- MEMBER_TO_FPTR(Perl_pp_gnetent), /* Perl_pp_gnbyname */
- MEMBER_TO_FPTR(Perl_pp_gnetent), /* Perl_pp_gnbyaddr */
- MEMBER_TO_FPTR(Perl_pp_gnetent),
- MEMBER_TO_FPTR(Perl_pp_gprotoent), /* Perl_pp_gpbyname */
- MEMBER_TO_FPTR(Perl_pp_gprotoent), /* Perl_pp_gpbynumber */
- MEMBER_TO_FPTR(Perl_pp_gprotoent),
- MEMBER_TO_FPTR(Perl_pp_gservent), /* Perl_pp_gsbyname */
- MEMBER_TO_FPTR(Perl_pp_gservent), /* Perl_pp_gsbyport */
- MEMBER_TO_FPTR(Perl_pp_gservent),
- MEMBER_TO_FPTR(Perl_pp_shostent),
- MEMBER_TO_FPTR(Perl_pp_snetent),
- MEMBER_TO_FPTR(Perl_pp_sprotoent),
- MEMBER_TO_FPTR(Perl_pp_sservent),
- MEMBER_TO_FPTR(Perl_pp_ehostent),
- MEMBER_TO_FPTR(Perl_pp_enetent),
- MEMBER_TO_FPTR(Perl_pp_eprotoent),
- MEMBER_TO_FPTR(Perl_pp_eservent),
- MEMBER_TO_FPTR(Perl_pp_gpwent), /* Perl_pp_gpwnam */
- MEMBER_TO_FPTR(Perl_pp_gpwent), /* Perl_pp_gpwuid */
- MEMBER_TO_FPTR(Perl_pp_gpwent),
- MEMBER_TO_FPTR(Perl_pp_spwent),
- MEMBER_TO_FPTR(Perl_pp_epwent),
- MEMBER_TO_FPTR(Perl_pp_ggrent), /* Perl_pp_ggrnam */
- MEMBER_TO_FPTR(Perl_pp_ggrent), /* Perl_pp_ggrgid */
- MEMBER_TO_FPTR(Perl_pp_ggrent),
- MEMBER_TO_FPTR(Perl_pp_sgrent),
- MEMBER_TO_FPTR(Perl_pp_egrent),
- MEMBER_TO_FPTR(Perl_pp_getlogin),
- MEMBER_TO_FPTR(Perl_pp_syscall),
- MEMBER_TO_FPTR(Perl_pp_lock),
- MEMBER_TO_FPTR(Perl_pp_once),
- MEMBER_TO_FPTR(Perl_unimplemented_op), /* Perl_pp_custom */
+ Perl_pp_null,
+ Perl_pp_stub,
+ Perl_pp_scalar, /* implemented by Perl_pp_null */
+ Perl_pp_pushmark,
+ Perl_pp_wantarray,
+ Perl_pp_const,
+ Perl_pp_gvsv,
+ Perl_pp_gv,
+ Perl_pp_gelem,
+ Perl_pp_padsv,
+ Perl_pp_padav,
+ Perl_pp_padhv,
+ Perl_pp_padany, /* implemented by Perl_unimplemented_op */
+ Perl_pp_pushre,
+ Perl_pp_rv2gv,
+ Perl_pp_rv2sv,
+ Perl_pp_av2arylen,
+ Perl_pp_rv2cv,
+ Perl_pp_anoncode,
+ Perl_pp_prototype,
+ Perl_pp_refgen,
+ Perl_pp_srefgen,
+ Perl_pp_ref,
+ Perl_pp_bless,
+ Perl_pp_backtick,
+ Perl_pp_glob,
+ Perl_pp_readline,
+ Perl_pp_rcatline,
+ Perl_pp_regcmaybe, /* implemented by Perl_pp_null */
+ Perl_pp_regcreset,
+ Perl_pp_regcomp,
+ Perl_pp_match,
+ Perl_pp_qr,
+ Perl_pp_subst,
+ Perl_pp_substcont,
+ Perl_pp_trans,
+ Perl_pp_sassign,
+ Perl_pp_aassign,
+ Perl_pp_chop,
+ Perl_pp_schop,
+ Perl_pp_chomp, /* implemented by Perl_pp_chop */
+ Perl_pp_schomp, /* implemented by Perl_pp_schop */
+ Perl_pp_defined,
+ Perl_pp_undef,
+ Perl_pp_study,
+ Perl_pp_pos,
+ Perl_pp_preinc,
+ Perl_pp_i_preinc, /* implemented by Perl_pp_preinc */
+ Perl_pp_predec,
+ Perl_pp_i_predec, /* implemented by Perl_pp_predec */
+ Perl_pp_postinc,
+ Perl_pp_i_postinc, /* implemented by Perl_pp_postinc */
+ Perl_pp_postdec,
+ Perl_pp_i_postdec, /* implemented by Perl_pp_postdec */
+ Perl_pp_pow,
+ Perl_pp_multiply,
+ Perl_pp_i_multiply,
+ Perl_pp_divide,
+ Perl_pp_i_divide,
+ Perl_pp_modulo,
+ Perl_pp_i_modulo,
+ Perl_pp_repeat,
+ Perl_pp_add,
+ Perl_pp_i_add,
+ Perl_pp_subtract,
+ Perl_pp_i_subtract,
+ Perl_pp_concat,
+ Perl_pp_stringify,
+ Perl_pp_left_shift,
+ Perl_pp_right_shift,
+ Perl_pp_lt,
+ Perl_pp_i_lt,
+ Perl_pp_gt,
+ Perl_pp_i_gt,
+ Perl_pp_le,
+ Perl_pp_i_le,
+ Perl_pp_ge,
+ Perl_pp_i_ge,
+ Perl_pp_eq,
+ Perl_pp_i_eq,
+ Perl_pp_ne,
+ Perl_pp_i_ne,
+ Perl_pp_ncmp,
+ Perl_pp_i_ncmp,
+ Perl_pp_slt, /* implemented by Perl_pp_sle */
+ Perl_pp_sgt, /* implemented by Perl_pp_sle */
+ Perl_pp_sle,
+ Perl_pp_sge, /* implemented by Perl_pp_sle */
+ Perl_pp_seq,
+ Perl_pp_sne,
+ Perl_pp_scmp,
+ Perl_pp_bit_and,
+ Perl_pp_bit_xor, /* implemented by Perl_pp_bit_or */
+ Perl_pp_bit_or,
+ Perl_pp_negate,
+ Perl_pp_i_negate,
+ Perl_pp_not,
+ Perl_pp_complement,
+ Perl_pp_smartmatch,
+ Perl_pp_atan2,
+ Perl_pp_sin,
+ Perl_pp_cos, /* implemented by Perl_pp_sin */
+ Perl_pp_rand,
+ Perl_pp_srand,
+ Perl_pp_exp, /* implemented by Perl_pp_sin */
+ Perl_pp_log, /* implemented by Perl_pp_sin */
+ Perl_pp_sqrt, /* implemented by Perl_pp_sin */
+ Perl_pp_int,
+ Perl_pp_hex, /* implemented by Perl_pp_oct */
+ Perl_pp_oct,
+ Perl_pp_abs,
+ Perl_pp_length,
+ Perl_pp_substr,
+ Perl_pp_vec,
+ Perl_pp_index,
+ Perl_pp_rindex, /* implemented by Perl_pp_index */
+ Perl_pp_sprintf,
+ Perl_pp_formline,
+ Perl_pp_ord,
+ Perl_pp_chr,
+ Perl_pp_crypt,
+ Perl_pp_ucfirst,
+ Perl_pp_lcfirst, /* implemented by Perl_pp_ucfirst */
+ Perl_pp_uc,
+ Perl_pp_lc,
+ Perl_pp_quotemeta,
+ Perl_pp_rv2av,
+ Perl_pp_aelemfast,
+ Perl_pp_aelem,
+ Perl_pp_aslice,
+ Perl_pp_aeach,
+ Perl_pp_akeys,
+ Perl_pp_avalues, /* implemented by Perl_pp_akeys */
+ Perl_pp_each,
+ Perl_pp_values, /* implemented by Perl_do_kv */
+ Perl_pp_keys, /* implemented by Perl_do_kv */
+ Perl_pp_delete,
+ Perl_pp_exists,
+ Perl_pp_rv2hv, /* implemented by Perl_pp_rv2av */
+ Perl_pp_helem,
+ Perl_pp_hslice,
+ Perl_pp_boolkeys,
+ Perl_pp_unpack,
+ Perl_pp_pack,
+ Perl_pp_split,
+ Perl_pp_join,
+ Perl_pp_list,
+ Perl_pp_lslice,
+ Perl_pp_anonlist,
+ Perl_pp_anonhash,
+ Perl_pp_splice,
+ Perl_pp_push,
+ Perl_pp_pop, /* implemented by Perl_pp_shift */
+ Perl_pp_shift,
+ Perl_pp_unshift,
+ Perl_pp_sort,
+ Perl_pp_reverse,
+ Perl_pp_grepstart,
+ Perl_pp_grepwhile,
+ Perl_pp_mapstart, /* implemented by Perl_unimplemented_op */
+ Perl_pp_mapwhile,
+ Perl_pp_range,
+ Perl_pp_flip,
+ Perl_pp_flop,
+ Perl_pp_and,
+ Perl_pp_or,
+ Perl_pp_xor,
+ Perl_pp_dor, /* implemented by Perl_pp_defined */
+ Perl_pp_cond_expr,
+ Perl_pp_andassign, /* implemented by Perl_pp_and */
+ Perl_pp_orassign, /* implemented by Perl_pp_or */
+ Perl_pp_dorassign, /* implemented by Perl_pp_defined */
+ Perl_pp_method,
+ Perl_pp_entersub,
+ Perl_pp_leavesub,
+ Perl_pp_leavesublv,
+ Perl_pp_caller,
+ Perl_pp_warn,
+ Perl_pp_die,
+ Perl_pp_reset,
+ Perl_pp_lineseq, /* implemented by Perl_pp_null */
+ Perl_pp_nextstate,
+ Perl_pp_dbstate,
+ Perl_pp_unstack,
+ Perl_pp_enter,
+ Perl_pp_leave,
+ Perl_pp_scope, /* implemented by Perl_pp_null */
+ Perl_pp_enteriter,
+ Perl_pp_iter,
+ Perl_pp_enterloop,
+ Perl_pp_leaveloop,
+ Perl_pp_return,
+ Perl_pp_last,
+ Perl_pp_next,
+ Perl_pp_redo,
+ Perl_pp_dump, /* implemented by Perl_pp_goto */
+ Perl_pp_goto,
+ Perl_pp_exit,
+ Perl_pp_method_named,
+ Perl_pp_entergiven,
+ Perl_pp_leavegiven,
+ Perl_pp_enterwhen,
+ Perl_pp_leavewhen,
+ Perl_pp_break,
+ Perl_pp_continue,
+ Perl_pp_open,
+ Perl_pp_close,
+ Perl_pp_pipe_op,
+ Perl_pp_fileno,
+ Perl_pp_umask,
+ Perl_pp_binmode,
+ Perl_pp_tie,
+ Perl_pp_untie,
+ Perl_pp_tied,
+ Perl_pp_dbmopen,
+ Perl_pp_dbmclose, /* implemented by Perl_pp_untie */
+ Perl_pp_sselect,
+ Perl_pp_select,
+ Perl_pp_getc,
+ Perl_pp_read, /* implemented by Perl_pp_sysread */
+ Perl_pp_enterwrite,
+ Perl_pp_leavewrite,
+ Perl_pp_prtf,
+ Perl_pp_print,
+ Perl_pp_say, /* implemented by Perl_pp_print */
+ Perl_pp_sysopen,
+ Perl_pp_sysseek,
+ Perl_pp_sysread,
+ Perl_pp_syswrite,
+ Perl_pp_eof,
+ Perl_pp_tell,
+ Perl_pp_seek, /* implemented by Perl_pp_sysseek */
+ Perl_pp_truncate,
+ Perl_pp_fcntl, /* implemented by Perl_pp_ioctl */
+ Perl_pp_ioctl,
+ Perl_pp_flock,
+ Perl_pp_send, /* implemented by Perl_pp_syswrite */
+ Perl_pp_recv, /* implemented by Perl_pp_sysread */
+ Perl_pp_socket,
+ Perl_pp_sockpair,
+ Perl_pp_bind,
+ Perl_pp_connect, /* implemented by Perl_pp_bind */
+ Perl_pp_listen,
+ Perl_pp_accept,
+ Perl_pp_shutdown,
+ Perl_pp_gsockopt, /* implemented by Perl_pp_ssockopt */
+ Perl_pp_ssockopt,
+ Perl_pp_getsockname, /* implemented by Perl_pp_getpeername */
+ Perl_pp_getpeername,
+ Perl_pp_lstat, /* implemented by Perl_pp_stat */
+ Perl_pp_stat,
+ Perl_pp_ftrread,
+ Perl_pp_ftrwrite, /* implemented by Perl_pp_ftrread */
+ Perl_pp_ftrexec, /* implemented by Perl_pp_ftrread */
+ Perl_pp_fteread, /* implemented by Perl_pp_ftrread */
+ Perl_pp_ftewrite, /* implemented by Perl_pp_ftrread */
+ Perl_pp_fteexec, /* implemented by Perl_pp_ftrread */
+ Perl_pp_ftis,
+ Perl_pp_ftsize, /* implemented by Perl_pp_ftis */
+ Perl_pp_ftmtime, /* implemented by Perl_pp_ftis */
+ Perl_pp_ftatime, /* implemented by Perl_pp_ftis */
+ Perl_pp_ftctime, /* implemented by Perl_pp_ftis */
+ Perl_pp_ftrowned,
+ Perl_pp_fteowned, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftzero, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftsock, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftchr, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftblk, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftfile, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftdir, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftpipe, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftsuid, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftsgid, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftsvtx, /* implemented by Perl_pp_ftrowned */
+ Perl_pp_ftlink,
+ Perl_pp_fttty,
+ Perl_pp_fttext,
+ Perl_pp_ftbinary, /* implemented by Perl_pp_fttext */
+ Perl_pp_chdir,
+ Perl_pp_chown,
+ Perl_pp_chroot,
+ Perl_pp_unlink, /* implemented by Perl_pp_chown */
+ Perl_pp_chmod, /* implemented by Perl_pp_chown */
+ Perl_pp_utime, /* implemented by Perl_pp_chown */
+ Perl_pp_rename,
+ Perl_pp_link,
+ Perl_pp_symlink, /* implemented by Perl_pp_link */
+ Perl_pp_readlink,
+ Perl_pp_mkdir,
+ Perl_pp_rmdir,
+ Perl_pp_open_dir,
+ Perl_pp_readdir,
+ Perl_pp_telldir,
+ Perl_pp_seekdir,
+ Perl_pp_rewinddir,
+ Perl_pp_closedir,
+ Perl_pp_fork,
+ Perl_pp_wait,
+ Perl_pp_waitpid,
+ Perl_pp_system,
+ Perl_pp_exec,
+ Perl_pp_kill, /* implemented by Perl_pp_chown */
+ Perl_pp_getppid,
+ Perl_pp_getpgrp,
+ Perl_pp_setpgrp,
+ Perl_pp_getpriority,
+ Perl_pp_setpriority,
+ Perl_pp_time,
+ Perl_pp_tms,
+ Perl_pp_localtime, /* implemented by Perl_pp_gmtime */
+ Perl_pp_gmtime,
+ Perl_pp_alarm,
+ Perl_pp_sleep,
+ Perl_pp_shmget, /* implemented by Perl_pp_semget */
+ Perl_pp_shmctl, /* implemented by Perl_pp_semctl */
+ Perl_pp_shmread, /* implemented by Perl_pp_shmwrite */
+ Perl_pp_shmwrite,
+ Perl_pp_msgget, /* implemented by Perl_pp_semget */
+ Perl_pp_msgctl, /* implemented by Perl_pp_semctl */
+ Perl_pp_msgsnd, /* implemented by Perl_pp_shmwrite */
+ Perl_pp_msgrcv, /* implemented by Perl_pp_shmwrite */
+ Perl_pp_semop, /* implemented by Perl_pp_shmwrite */
+ Perl_pp_semget,
+ Perl_pp_semctl,
+ Perl_pp_require,
+ Perl_pp_dofile, /* implemented by Perl_pp_require */
+ Perl_pp_hintseval,
+ Perl_pp_entereval,
+ Perl_pp_leaveeval,
+ Perl_pp_entertry,
+ Perl_pp_leavetry,
+ Perl_pp_ghbyname, /* implemented by Perl_pp_ghostent */
+ Perl_pp_ghbyaddr, /* implemented by Perl_pp_ghostent */
+ Perl_pp_ghostent,
+ Perl_pp_gnbyname, /* implemented by Perl_pp_gnetent */
+ Perl_pp_gnbyaddr, /* implemented by Perl_pp_gnetent */
+ Perl_pp_gnetent,
+ Perl_pp_gpbyname, /* implemented by Perl_pp_gprotoent */
+ Perl_pp_gpbynumber, /* implemented by Perl_pp_gprotoent */
+ Perl_pp_gprotoent,
+ Perl_pp_gsbyname, /* implemented by Perl_pp_gservent */
+ Perl_pp_gsbyport, /* implemented by Perl_pp_gservent */
+ Perl_pp_gservent,
+ Perl_pp_shostent,
+ Perl_pp_snetent, /* implemented by Perl_pp_shostent */
+ Perl_pp_sprotoent, /* implemented by Perl_pp_shostent */
+ Perl_pp_sservent, /* implemented by Perl_pp_shostent */
+ Perl_pp_ehostent,
+ Perl_pp_enetent, /* implemented by Perl_pp_ehostent */
+ Perl_pp_eprotoent, /* implemented by Perl_pp_ehostent */
+ Perl_pp_eservent, /* implemented by Perl_pp_ehostent */
+ Perl_pp_gpwnam, /* implemented by Perl_pp_gpwent */
+ Perl_pp_gpwuid, /* implemented by Perl_pp_gpwent */
+ Perl_pp_gpwent,
+ Perl_pp_spwent, /* implemented by Perl_pp_ehostent */
+ Perl_pp_epwent, /* implemented by Perl_pp_ehostent */
+ Perl_pp_ggrnam, /* implemented by Perl_pp_ggrent */
+ Perl_pp_ggrgid, /* implemented by Perl_pp_ggrent */
+ Perl_pp_ggrent,
+ Perl_pp_sgrent, /* implemented by Perl_pp_ehostent */
+ Perl_pp_egrent, /* implemented by Perl_pp_ehostent */
+ Perl_pp_getlogin,
+ Perl_pp_syscall,
+ Perl_pp_lock,
+ Perl_pp_once,
+ Perl_pp_custom, /* implemented by Perl_unimplemented_op */
+ Perl_pp_reach, /* implemented by Perl_pp_rkeys */
+ Perl_pp_rkeys,
+ Perl_pp_rvalues, /* implemented by Perl_pp_rkeys */
+ Perl_pp_transr, /* implemented by Perl_pp_trans */
}
#endif
#ifdef PERL_PPADDR_INITED
@@ -1177,372 +1301,376 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
#if (defined(DOINIT) && !defined(PERL_GLOBAL_STRUCT)) || defined(PERL_GLOBAL_STRUCT_INIT)
# define PERL_CHECK_INITED
= {
- MEMBER_TO_FPTR(Perl_ck_null), /* null */
- MEMBER_TO_FPTR(Perl_ck_null), /* stub */
- MEMBER_TO_FPTR(Perl_ck_fun), /* scalar */
- MEMBER_TO_FPTR(Perl_ck_null), /* pushmark */
- MEMBER_TO_FPTR(Perl_ck_null), /* wantarray */
- MEMBER_TO_FPTR(Perl_ck_svconst), /* const */
- MEMBER_TO_FPTR(Perl_ck_null), /* gvsv */
- MEMBER_TO_FPTR(Perl_ck_null), /* gv */
- MEMBER_TO_FPTR(Perl_ck_null), /* gelem */
- MEMBER_TO_FPTR(Perl_ck_null), /* padsv */
- MEMBER_TO_FPTR(Perl_ck_null), /* padav */
- MEMBER_TO_FPTR(Perl_ck_null), /* padhv */
- MEMBER_TO_FPTR(Perl_ck_null), /* padany */
- MEMBER_TO_FPTR(Perl_ck_null), /* pushre */
- MEMBER_TO_FPTR(Perl_ck_rvconst), /* rv2gv */
- MEMBER_TO_FPTR(Perl_ck_rvconst), /* rv2sv */
- MEMBER_TO_FPTR(Perl_ck_null), /* av2arylen */
- MEMBER_TO_FPTR(Perl_ck_rvconst), /* rv2cv */
- MEMBER_TO_FPTR(Perl_ck_anoncode), /* anoncode */
- MEMBER_TO_FPTR(Perl_ck_null), /* prototype */
- MEMBER_TO_FPTR(Perl_ck_spair), /* refgen */
- MEMBER_TO_FPTR(Perl_ck_null), /* srefgen */
- MEMBER_TO_FPTR(Perl_ck_fun), /* ref */
- MEMBER_TO_FPTR(Perl_ck_fun), /* bless */
- MEMBER_TO_FPTR(Perl_ck_open), /* backtick */
- MEMBER_TO_FPTR(Perl_ck_glob), /* glob */
- MEMBER_TO_FPTR(Perl_ck_readline), /* readline */
- MEMBER_TO_FPTR(Perl_ck_null), /* rcatline */
- MEMBER_TO_FPTR(Perl_ck_fun), /* regcmaybe */
- MEMBER_TO_FPTR(Perl_ck_fun), /* regcreset */
- MEMBER_TO_FPTR(Perl_ck_null), /* regcomp */
- MEMBER_TO_FPTR(Perl_ck_match), /* match */
- MEMBER_TO_FPTR(Perl_ck_match), /* qr */
- MEMBER_TO_FPTR(Perl_ck_match), /* subst */
- MEMBER_TO_FPTR(Perl_ck_null), /* substcont */
- MEMBER_TO_FPTR(Perl_ck_match), /* trans */
- MEMBER_TO_FPTR(Perl_ck_sassign), /* sassign */
- MEMBER_TO_FPTR(Perl_ck_null), /* aassign */
- MEMBER_TO_FPTR(Perl_ck_spair), /* chop */
- MEMBER_TO_FPTR(Perl_ck_null), /* schop */
- MEMBER_TO_FPTR(Perl_ck_spair), /* chomp */
- MEMBER_TO_FPTR(Perl_ck_null), /* schomp */
- MEMBER_TO_FPTR(Perl_ck_defined), /* defined */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* undef */
- MEMBER_TO_FPTR(Perl_ck_fun), /* study */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* pos */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* preinc */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* i_preinc */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* predec */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* i_predec */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* postinc */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* i_postinc */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* postdec */
- MEMBER_TO_FPTR(Perl_ck_lfun), /* i_postdec */
- MEMBER_TO_FPTR(Perl_ck_null), /* pow */
- MEMBER_TO_FPTR(Perl_ck_null), /* multiply */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_multiply */
- MEMBER_TO_FPTR(Perl_ck_null), /* divide */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_divide */
- MEMBER_TO_FPTR(Perl_ck_null), /* modulo */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_modulo */
- MEMBER_TO_FPTR(Perl_ck_repeat), /* repeat */
- MEMBER_TO_FPTR(Perl_ck_null), /* add */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_add */
- MEMBER_TO_FPTR(Perl_ck_null), /* subtract */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_subtract */
- MEMBER_TO_FPTR(Perl_ck_concat), /* concat */
- MEMBER_TO_FPTR(Perl_ck_fun), /* stringify */
- MEMBER_TO_FPTR(Perl_ck_bitop), /* left_shift */
- MEMBER_TO_FPTR(Perl_ck_bitop), /* right_shift */
- MEMBER_TO_FPTR(Perl_ck_null), /* lt */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_lt */
- MEMBER_TO_FPTR(Perl_ck_null), /* gt */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_gt */
- MEMBER_TO_FPTR(Perl_ck_null), /* le */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_le */
- MEMBER_TO_FPTR(Perl_ck_null), /* ge */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_ge */
- MEMBER_TO_FPTR(Perl_ck_null), /* eq */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_eq */
- MEMBER_TO_FPTR(Perl_ck_null), /* ne */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_ne */
- MEMBER_TO_FPTR(Perl_ck_null), /* ncmp */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_ncmp */
- MEMBER_TO_FPTR(Perl_ck_null), /* slt */
- MEMBER_TO_FPTR(Perl_ck_null), /* sgt */
- MEMBER_TO_FPTR(Perl_ck_null), /* sle */
- MEMBER_TO_FPTR(Perl_ck_null), /* sge */
- MEMBER_TO_FPTR(Perl_ck_null), /* seq */
- MEMBER_TO_FPTR(Perl_ck_null), /* sne */
- MEMBER_TO_FPTR(Perl_ck_null), /* scmp */
- MEMBER_TO_FPTR(Perl_ck_bitop), /* bit_and */
- MEMBER_TO_FPTR(Perl_ck_bitop), /* bit_xor */
- MEMBER_TO_FPTR(Perl_ck_bitop), /* bit_or */
- MEMBER_TO_FPTR(Perl_ck_null), /* negate */
- MEMBER_TO_FPTR(Perl_ck_null), /* i_negate */
- MEMBER_TO_FPTR(Perl_ck_null), /* not */
- MEMBER_TO_FPTR(Perl_ck_bitop), /* complement */
- MEMBER_TO_FPTR(Perl_ck_smartmatch), /* smartmatch */
- MEMBER_TO_FPTR(Perl_ck_fun), /* atan2 */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sin */
- MEMBER_TO_FPTR(Perl_ck_fun), /* cos */
- MEMBER_TO_FPTR(Perl_ck_fun), /* rand */
- MEMBER_TO_FPTR(Perl_ck_fun), /* srand */
- MEMBER_TO_FPTR(Perl_ck_fun), /* exp */
- MEMBER_TO_FPTR(Perl_ck_fun), /* log */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sqrt */
- MEMBER_TO_FPTR(Perl_ck_fun), /* int */
- MEMBER_TO_FPTR(Perl_ck_fun), /* hex */
- MEMBER_TO_FPTR(Perl_ck_fun), /* oct */
- MEMBER_TO_FPTR(Perl_ck_fun), /* abs */
- MEMBER_TO_FPTR(Perl_ck_fun), /* length */
- MEMBER_TO_FPTR(Perl_ck_substr), /* substr */
- MEMBER_TO_FPTR(Perl_ck_fun), /* vec */
- MEMBER_TO_FPTR(Perl_ck_index), /* index */
- MEMBER_TO_FPTR(Perl_ck_index), /* rindex */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sprintf */
- MEMBER_TO_FPTR(Perl_ck_fun), /* formline */
- MEMBER_TO_FPTR(Perl_ck_fun), /* ord */
- MEMBER_TO_FPTR(Perl_ck_fun), /* chr */
- MEMBER_TO_FPTR(Perl_ck_fun), /* crypt */
- MEMBER_TO_FPTR(Perl_ck_fun), /* ucfirst */
- MEMBER_TO_FPTR(Perl_ck_fun), /* lcfirst */
- MEMBER_TO_FPTR(Perl_ck_fun), /* uc */
- MEMBER_TO_FPTR(Perl_ck_fun), /* lc */
- MEMBER_TO_FPTR(Perl_ck_fun), /* quotemeta */
- MEMBER_TO_FPTR(Perl_ck_rvconst), /* rv2av */
- MEMBER_TO_FPTR(Perl_ck_null), /* aelemfast */
- MEMBER_TO_FPTR(Perl_ck_null), /* aelem */
- MEMBER_TO_FPTR(Perl_ck_null), /* aslice */
- MEMBER_TO_FPTR(Perl_ck_each), /* aeach */
- MEMBER_TO_FPTR(Perl_ck_each), /* akeys */
- MEMBER_TO_FPTR(Perl_ck_each), /* avalues */
- MEMBER_TO_FPTR(Perl_ck_each), /* each */
- MEMBER_TO_FPTR(Perl_ck_each), /* values */
- MEMBER_TO_FPTR(Perl_ck_each), /* keys */
- MEMBER_TO_FPTR(Perl_ck_delete), /* delete */
- MEMBER_TO_FPTR(Perl_ck_exists), /* exists */
- MEMBER_TO_FPTR(Perl_ck_rvconst), /* rv2hv */
- MEMBER_TO_FPTR(Perl_ck_null), /* helem */
- MEMBER_TO_FPTR(Perl_ck_null), /* hslice */
- MEMBER_TO_FPTR(Perl_ck_fun), /* boolkeys */
- MEMBER_TO_FPTR(Perl_ck_unpack), /* unpack */
- MEMBER_TO_FPTR(Perl_ck_fun), /* pack */
- MEMBER_TO_FPTR(Perl_ck_split), /* split */
- MEMBER_TO_FPTR(Perl_ck_join), /* join */
- MEMBER_TO_FPTR(Perl_ck_null), /* list */
- MEMBER_TO_FPTR(Perl_ck_null), /* lslice */
- MEMBER_TO_FPTR(Perl_ck_fun), /* anonlist */
- MEMBER_TO_FPTR(Perl_ck_fun), /* anonhash */
- MEMBER_TO_FPTR(Perl_ck_fun), /* splice */
- MEMBER_TO_FPTR(Perl_ck_fun), /* push */
- MEMBER_TO_FPTR(Perl_ck_shift), /* pop */
- MEMBER_TO_FPTR(Perl_ck_shift), /* shift */
- MEMBER_TO_FPTR(Perl_ck_fun), /* unshift */
- MEMBER_TO_FPTR(Perl_ck_sort), /* sort */
- MEMBER_TO_FPTR(Perl_ck_fun), /* reverse */
- MEMBER_TO_FPTR(Perl_ck_grep), /* grepstart */
- MEMBER_TO_FPTR(Perl_ck_null), /* grepwhile */
- MEMBER_TO_FPTR(Perl_ck_grep), /* mapstart */
- MEMBER_TO_FPTR(Perl_ck_null), /* mapwhile */
- MEMBER_TO_FPTR(Perl_ck_null), /* range */
- MEMBER_TO_FPTR(Perl_ck_null), /* flip */
- MEMBER_TO_FPTR(Perl_ck_null), /* flop */
- MEMBER_TO_FPTR(Perl_ck_null), /* and */
- MEMBER_TO_FPTR(Perl_ck_null), /* or */
- MEMBER_TO_FPTR(Perl_ck_null), /* xor */
- MEMBER_TO_FPTR(Perl_ck_null), /* dor */
- MEMBER_TO_FPTR(Perl_ck_null), /* cond_expr */
- MEMBER_TO_FPTR(Perl_ck_null), /* andassign */
- MEMBER_TO_FPTR(Perl_ck_null), /* orassign */
- MEMBER_TO_FPTR(Perl_ck_null), /* dorassign */
- MEMBER_TO_FPTR(Perl_ck_method), /* method */
- MEMBER_TO_FPTR(Perl_ck_subr), /* entersub */
- MEMBER_TO_FPTR(Perl_ck_null), /* leavesub */
- MEMBER_TO_FPTR(Perl_ck_null), /* leavesublv */
- MEMBER_TO_FPTR(Perl_ck_fun), /* caller */
- MEMBER_TO_FPTR(Perl_ck_fun), /* warn */
- MEMBER_TO_FPTR(Perl_ck_die), /* die */
- MEMBER_TO_FPTR(Perl_ck_fun), /* reset */
- MEMBER_TO_FPTR(Perl_ck_null), /* lineseq */
- MEMBER_TO_FPTR(Perl_ck_null), /* nextstate */
- MEMBER_TO_FPTR(Perl_ck_null), /* dbstate */
- MEMBER_TO_FPTR(Perl_ck_null), /* unstack */
- MEMBER_TO_FPTR(Perl_ck_null), /* enter */
- MEMBER_TO_FPTR(Perl_ck_null), /* leave */
- MEMBER_TO_FPTR(Perl_ck_null), /* scope */
- MEMBER_TO_FPTR(Perl_ck_null), /* enteriter */
- MEMBER_TO_FPTR(Perl_ck_null), /* iter */
- MEMBER_TO_FPTR(Perl_ck_null), /* enterloop */
- MEMBER_TO_FPTR(Perl_ck_null), /* leaveloop */
- MEMBER_TO_FPTR(Perl_ck_return), /* return */
- MEMBER_TO_FPTR(Perl_ck_null), /* last */
- MEMBER_TO_FPTR(Perl_ck_null), /* next */
- MEMBER_TO_FPTR(Perl_ck_null), /* redo */
- MEMBER_TO_FPTR(Perl_ck_null), /* dump */
- MEMBER_TO_FPTR(Perl_ck_null), /* goto */
- MEMBER_TO_FPTR(Perl_ck_exit), /* exit */
- MEMBER_TO_FPTR(Perl_ck_null), /* method_named */
- MEMBER_TO_FPTR(Perl_ck_null), /* entergiven */
- MEMBER_TO_FPTR(Perl_ck_null), /* leavegiven */
- MEMBER_TO_FPTR(Perl_ck_null), /* enterwhen */
- MEMBER_TO_FPTR(Perl_ck_null), /* leavewhen */
- MEMBER_TO_FPTR(Perl_ck_null), /* break */
- MEMBER_TO_FPTR(Perl_ck_null), /* continue */
- MEMBER_TO_FPTR(Perl_ck_open), /* open */
- MEMBER_TO_FPTR(Perl_ck_fun), /* close */
- MEMBER_TO_FPTR(Perl_ck_fun), /* pipe_op */
- MEMBER_TO_FPTR(Perl_ck_fun), /* fileno */
- MEMBER_TO_FPTR(Perl_ck_fun), /* umask */
- MEMBER_TO_FPTR(Perl_ck_fun), /* binmode */
- MEMBER_TO_FPTR(Perl_ck_fun), /* tie */
- MEMBER_TO_FPTR(Perl_ck_fun), /* untie */
- MEMBER_TO_FPTR(Perl_ck_fun), /* tied */
- MEMBER_TO_FPTR(Perl_ck_fun), /* dbmopen */
- MEMBER_TO_FPTR(Perl_ck_fun), /* dbmclose */
- MEMBER_TO_FPTR(Perl_ck_select), /* sselect */
- MEMBER_TO_FPTR(Perl_ck_select), /* select */
- MEMBER_TO_FPTR(Perl_ck_eof), /* getc */
- MEMBER_TO_FPTR(Perl_ck_fun), /* read */
- MEMBER_TO_FPTR(Perl_ck_fun), /* enterwrite */
- MEMBER_TO_FPTR(Perl_ck_null), /* leavewrite */
- MEMBER_TO_FPTR(Perl_ck_listiob), /* prtf */
- MEMBER_TO_FPTR(Perl_ck_listiob), /* print */
- MEMBER_TO_FPTR(Perl_ck_listiob), /* say */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sysopen */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sysseek */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sysread */
- MEMBER_TO_FPTR(Perl_ck_fun), /* syswrite */
- MEMBER_TO_FPTR(Perl_ck_eof), /* eof */
- MEMBER_TO_FPTR(Perl_ck_fun), /* tell */
- MEMBER_TO_FPTR(Perl_ck_fun), /* seek */
- MEMBER_TO_FPTR(Perl_ck_trunc), /* truncate */
- MEMBER_TO_FPTR(Perl_ck_fun), /* fcntl */
- MEMBER_TO_FPTR(Perl_ck_fun), /* ioctl */
- MEMBER_TO_FPTR(Perl_ck_fun), /* flock */
- MEMBER_TO_FPTR(Perl_ck_fun), /* send */
- MEMBER_TO_FPTR(Perl_ck_fun), /* recv */
- MEMBER_TO_FPTR(Perl_ck_fun), /* socket */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sockpair */
- MEMBER_TO_FPTR(Perl_ck_fun), /* bind */
- MEMBER_TO_FPTR(Perl_ck_fun), /* connect */
- MEMBER_TO_FPTR(Perl_ck_fun), /* listen */
- MEMBER_TO_FPTR(Perl_ck_fun), /* accept */
- MEMBER_TO_FPTR(Perl_ck_fun), /* shutdown */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gsockopt */
- MEMBER_TO_FPTR(Perl_ck_fun), /* ssockopt */
- MEMBER_TO_FPTR(Perl_ck_fun), /* getsockname */
- MEMBER_TO_FPTR(Perl_ck_fun), /* getpeername */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* lstat */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* stat */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftrread */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftrwrite */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftrexec */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* fteread */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftewrite */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* fteexec */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftis */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftsize */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftmtime */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftatime */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftctime */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftrowned */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* fteowned */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftzero */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftsock */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftchr */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftblk */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftfile */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftdir */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftpipe */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftsuid */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftsgid */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftsvtx */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftlink */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* fttty */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* fttext */
- MEMBER_TO_FPTR(Perl_ck_ftst), /* ftbinary */
- MEMBER_TO_FPTR(Perl_ck_chdir), /* chdir */
- MEMBER_TO_FPTR(Perl_ck_fun), /* chown */
- MEMBER_TO_FPTR(Perl_ck_fun), /* chroot */
- MEMBER_TO_FPTR(Perl_ck_fun), /* unlink */
- MEMBER_TO_FPTR(Perl_ck_fun), /* chmod */
- MEMBER_TO_FPTR(Perl_ck_fun), /* utime */
- MEMBER_TO_FPTR(Perl_ck_fun), /* rename */
- MEMBER_TO_FPTR(Perl_ck_fun), /* link */
- MEMBER_TO_FPTR(Perl_ck_fun), /* symlink */
- MEMBER_TO_FPTR(Perl_ck_fun), /* readlink */
- MEMBER_TO_FPTR(Perl_ck_fun), /* mkdir */
- MEMBER_TO_FPTR(Perl_ck_fun), /* rmdir */
- MEMBER_TO_FPTR(Perl_ck_fun), /* open_dir */
- MEMBER_TO_FPTR(Perl_ck_fun), /* readdir */
- MEMBER_TO_FPTR(Perl_ck_fun), /* telldir */
- MEMBER_TO_FPTR(Perl_ck_fun), /* seekdir */
- MEMBER_TO_FPTR(Perl_ck_fun), /* rewinddir */
- MEMBER_TO_FPTR(Perl_ck_fun), /* closedir */
- MEMBER_TO_FPTR(Perl_ck_null), /* fork */
- MEMBER_TO_FPTR(Perl_ck_null), /* wait */
- MEMBER_TO_FPTR(Perl_ck_fun), /* waitpid */
- MEMBER_TO_FPTR(Perl_ck_exec), /* system */
- MEMBER_TO_FPTR(Perl_ck_exec), /* exec */
- MEMBER_TO_FPTR(Perl_ck_fun), /* kill */
- MEMBER_TO_FPTR(Perl_ck_null), /* getppid */
- MEMBER_TO_FPTR(Perl_ck_fun), /* getpgrp */
- MEMBER_TO_FPTR(Perl_ck_fun), /* setpgrp */
- MEMBER_TO_FPTR(Perl_ck_fun), /* getpriority */
- MEMBER_TO_FPTR(Perl_ck_fun), /* setpriority */
- MEMBER_TO_FPTR(Perl_ck_null), /* time */
- MEMBER_TO_FPTR(Perl_ck_null), /* tms */
- MEMBER_TO_FPTR(Perl_ck_fun), /* localtime */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gmtime */
- MEMBER_TO_FPTR(Perl_ck_fun), /* alarm */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sleep */
- MEMBER_TO_FPTR(Perl_ck_fun), /* shmget */
- MEMBER_TO_FPTR(Perl_ck_fun), /* shmctl */
- MEMBER_TO_FPTR(Perl_ck_fun), /* shmread */
- MEMBER_TO_FPTR(Perl_ck_fun), /* shmwrite */
- MEMBER_TO_FPTR(Perl_ck_fun), /* msgget */
- MEMBER_TO_FPTR(Perl_ck_fun), /* msgctl */
- MEMBER_TO_FPTR(Perl_ck_fun), /* msgsnd */
- MEMBER_TO_FPTR(Perl_ck_fun), /* msgrcv */
- MEMBER_TO_FPTR(Perl_ck_fun), /* semop */
- MEMBER_TO_FPTR(Perl_ck_fun), /* semget */
- MEMBER_TO_FPTR(Perl_ck_fun), /* semctl */
- MEMBER_TO_FPTR(Perl_ck_require), /* require */
- MEMBER_TO_FPTR(Perl_ck_fun), /* dofile */
- MEMBER_TO_FPTR(Perl_ck_svconst), /* hintseval */
- MEMBER_TO_FPTR(Perl_ck_eval), /* entereval */
- MEMBER_TO_FPTR(Perl_ck_null), /* leaveeval */
- MEMBER_TO_FPTR(Perl_ck_eval), /* entertry */
- MEMBER_TO_FPTR(Perl_ck_null), /* leavetry */
- MEMBER_TO_FPTR(Perl_ck_fun), /* ghbyname */
- MEMBER_TO_FPTR(Perl_ck_fun), /* ghbyaddr */
- MEMBER_TO_FPTR(Perl_ck_null), /* ghostent */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gnbyname */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gnbyaddr */
- MEMBER_TO_FPTR(Perl_ck_null), /* gnetent */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gpbyname */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gpbynumber */
- MEMBER_TO_FPTR(Perl_ck_null), /* gprotoent */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gsbyname */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gsbyport */
- MEMBER_TO_FPTR(Perl_ck_null), /* gservent */
- MEMBER_TO_FPTR(Perl_ck_fun), /* shostent */
- MEMBER_TO_FPTR(Perl_ck_fun), /* snetent */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sprotoent */
- MEMBER_TO_FPTR(Perl_ck_fun), /* sservent */
- MEMBER_TO_FPTR(Perl_ck_null), /* ehostent */
- MEMBER_TO_FPTR(Perl_ck_null), /* enetent */
- MEMBER_TO_FPTR(Perl_ck_null), /* eprotoent */
- MEMBER_TO_FPTR(Perl_ck_null), /* eservent */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gpwnam */
- MEMBER_TO_FPTR(Perl_ck_fun), /* gpwuid */
- MEMBER_TO_FPTR(Perl_ck_null), /* gpwent */
- MEMBER_TO_FPTR(Perl_ck_null), /* spwent */
- MEMBER_TO_FPTR(Perl_ck_null), /* epwent */
- MEMBER_TO_FPTR(Perl_ck_fun), /* ggrnam */
- MEMBER_TO_FPTR(Perl_ck_fun), /* ggrgid */
- MEMBER_TO_FPTR(Perl_ck_null), /* ggrent */
- MEMBER_TO_FPTR(Perl_ck_null), /* sgrent */
- MEMBER_TO_FPTR(Perl_ck_null), /* egrent */
- MEMBER_TO_FPTR(Perl_ck_null), /* getlogin */
- MEMBER_TO_FPTR(Perl_ck_fun), /* syscall */
- MEMBER_TO_FPTR(Perl_ck_rfun), /* lock */
- MEMBER_TO_FPTR(Perl_ck_null), /* once */
- MEMBER_TO_FPTR(Perl_ck_null), /* custom */
+ Perl_ck_null, /* null */
+ Perl_ck_null, /* stub */
+ Perl_ck_fun, /* scalar */
+ Perl_ck_null, /* pushmark */
+ Perl_ck_null, /* wantarray */
+ Perl_ck_svconst, /* const */
+ Perl_ck_null, /* gvsv */
+ Perl_ck_null, /* gv */
+ Perl_ck_null, /* gelem */
+ Perl_ck_null, /* padsv */
+ Perl_ck_null, /* padav */
+ Perl_ck_null, /* padhv */
+ Perl_ck_null, /* padany */
+ Perl_ck_null, /* pushre */
+ Perl_ck_rvconst, /* rv2gv */
+ Perl_ck_rvconst, /* rv2sv */
+ Perl_ck_null, /* av2arylen */
+ Perl_ck_rvconst, /* rv2cv */
+ Perl_ck_anoncode, /* anoncode */
+ Perl_ck_null, /* prototype */
+ Perl_ck_spair, /* refgen */
+ Perl_ck_null, /* srefgen */
+ Perl_ck_fun, /* ref */
+ Perl_ck_fun, /* bless */
+ Perl_ck_open, /* backtick */
+ Perl_ck_glob, /* glob */
+ Perl_ck_readline, /* readline */
+ Perl_ck_null, /* rcatline */
+ Perl_ck_fun, /* regcmaybe */
+ Perl_ck_fun, /* regcreset */
+ Perl_ck_null, /* regcomp */
+ Perl_ck_match, /* match */
+ Perl_ck_match, /* qr */
+ Perl_ck_match, /* subst */
+ Perl_ck_null, /* substcont */
+ Perl_ck_match, /* trans */
+ Perl_ck_sassign, /* sassign */
+ Perl_ck_null, /* aassign */
+ Perl_ck_spair, /* chop */
+ Perl_ck_null, /* schop */
+ Perl_ck_spair, /* chomp */
+ Perl_ck_null, /* schomp */
+ Perl_ck_defined, /* defined */
+ Perl_ck_lfun, /* undef */
+ Perl_ck_fun, /* study */
+ Perl_ck_lfun, /* pos */
+ Perl_ck_lfun, /* preinc */
+ Perl_ck_lfun, /* i_preinc */
+ Perl_ck_lfun, /* predec */
+ Perl_ck_lfun, /* i_predec */
+ Perl_ck_lfun, /* postinc */
+ Perl_ck_lfun, /* i_postinc */
+ Perl_ck_lfun, /* postdec */
+ Perl_ck_lfun, /* i_postdec */
+ Perl_ck_null, /* pow */
+ Perl_ck_null, /* multiply */
+ Perl_ck_null, /* i_multiply */
+ Perl_ck_null, /* divide */
+ Perl_ck_null, /* i_divide */
+ Perl_ck_null, /* modulo */
+ Perl_ck_null, /* i_modulo */
+ Perl_ck_repeat, /* repeat */
+ Perl_ck_null, /* add */
+ Perl_ck_null, /* i_add */
+ Perl_ck_null, /* subtract */
+ Perl_ck_null, /* i_subtract */
+ Perl_ck_concat, /* concat */
+ Perl_ck_fun, /* stringify */
+ Perl_ck_bitop, /* left_shift */
+ Perl_ck_bitop, /* right_shift */
+ Perl_ck_null, /* lt */
+ Perl_ck_null, /* i_lt */
+ Perl_ck_null, /* gt */
+ Perl_ck_null, /* i_gt */
+ Perl_ck_null, /* le */
+ Perl_ck_null, /* i_le */
+ Perl_ck_null, /* ge */
+ Perl_ck_null, /* i_ge */
+ Perl_ck_null, /* eq */
+ Perl_ck_null, /* i_eq */
+ Perl_ck_null, /* ne */
+ Perl_ck_null, /* i_ne */
+ Perl_ck_null, /* ncmp */
+ Perl_ck_null, /* i_ncmp */
+ Perl_ck_null, /* slt */
+ Perl_ck_null, /* sgt */
+ Perl_ck_null, /* sle */
+ Perl_ck_null, /* sge */
+ Perl_ck_null, /* seq */
+ Perl_ck_null, /* sne */
+ Perl_ck_null, /* scmp */
+ Perl_ck_bitop, /* bit_and */
+ Perl_ck_bitop, /* bit_xor */
+ Perl_ck_bitop, /* bit_or */
+ Perl_ck_null, /* negate */
+ Perl_ck_null, /* i_negate */
+ Perl_ck_null, /* not */
+ Perl_ck_bitop, /* complement */
+ Perl_ck_smartmatch, /* smartmatch */
+ Perl_ck_fun, /* atan2 */
+ Perl_ck_fun, /* sin */
+ Perl_ck_fun, /* cos */
+ Perl_ck_fun, /* rand */
+ Perl_ck_fun, /* srand */
+ Perl_ck_fun, /* exp */
+ Perl_ck_fun, /* log */
+ Perl_ck_fun, /* sqrt */
+ Perl_ck_fun, /* int */
+ Perl_ck_fun, /* hex */
+ Perl_ck_fun, /* oct */
+ Perl_ck_fun, /* abs */
+ Perl_ck_fun, /* length */
+ Perl_ck_substr, /* substr */
+ Perl_ck_fun, /* vec */
+ Perl_ck_index, /* index */
+ Perl_ck_index, /* rindex */
+ Perl_ck_fun, /* sprintf */
+ Perl_ck_fun, /* formline */
+ Perl_ck_fun, /* ord */
+ Perl_ck_fun, /* chr */
+ Perl_ck_fun, /* crypt */
+ Perl_ck_fun, /* ucfirst */
+ Perl_ck_fun, /* lcfirst */
+ Perl_ck_fun, /* uc */
+ Perl_ck_fun, /* lc */
+ Perl_ck_fun, /* quotemeta */
+ Perl_ck_rvconst, /* rv2av */
+ Perl_ck_null, /* aelemfast */
+ Perl_ck_null, /* aelem */
+ Perl_ck_null, /* aslice */
+ Perl_ck_each, /* aeach */
+ Perl_ck_each, /* akeys */
+ Perl_ck_each, /* avalues */
+ Perl_ck_each, /* each */
+ Perl_ck_each, /* values */
+ Perl_ck_each, /* keys */
+ Perl_ck_delete, /* delete */
+ Perl_ck_exists, /* exists */
+ Perl_ck_rvconst, /* rv2hv */
+ Perl_ck_null, /* helem */
+ Perl_ck_null, /* hslice */
+ Perl_ck_fun, /* boolkeys */
+ Perl_ck_unpack, /* unpack */
+ Perl_ck_fun, /* pack */
+ Perl_ck_split, /* split */
+ Perl_ck_join, /* join */
+ Perl_ck_null, /* list */
+ Perl_ck_null, /* lslice */
+ Perl_ck_fun, /* anonlist */
+ Perl_ck_fun, /* anonhash */
+ Perl_ck_fun, /* splice */
+ Perl_ck_fun, /* push */
+ Perl_ck_shift, /* pop */
+ Perl_ck_shift, /* shift */
+ Perl_ck_fun, /* unshift */
+ Perl_ck_sort, /* sort */
+ Perl_ck_fun, /* reverse */
+ Perl_ck_grep, /* grepstart */
+ Perl_ck_null, /* grepwhile */
+ Perl_ck_grep, /* mapstart */
+ Perl_ck_null, /* mapwhile */
+ Perl_ck_null, /* range */
+ Perl_ck_null, /* flip */
+ Perl_ck_null, /* flop */
+ Perl_ck_null, /* and */
+ Perl_ck_null, /* or */
+ Perl_ck_null, /* xor */
+ Perl_ck_null, /* dor */
+ Perl_ck_null, /* cond_expr */
+ Perl_ck_null, /* andassign */
+ Perl_ck_null, /* orassign */
+ Perl_ck_null, /* dorassign */
+ Perl_ck_method, /* method */
+ Perl_ck_subr, /* entersub */
+ Perl_ck_null, /* leavesub */
+ Perl_ck_null, /* leavesublv */
+ Perl_ck_fun, /* caller */
+ Perl_ck_fun, /* warn */
+ Perl_ck_die, /* die */
+ Perl_ck_fun, /* reset */
+ Perl_ck_null, /* lineseq */
+ Perl_ck_null, /* nextstate */
+ Perl_ck_null, /* dbstate */
+ Perl_ck_null, /* unstack */
+ Perl_ck_null, /* enter */
+ Perl_ck_null, /* leave */
+ Perl_ck_null, /* scope */
+ Perl_ck_null, /* enteriter */
+ Perl_ck_null, /* iter */
+ Perl_ck_null, /* enterloop */
+ Perl_ck_null, /* leaveloop */
+ Perl_ck_return, /* return */
+ Perl_ck_null, /* last */
+ Perl_ck_null, /* next */
+ Perl_ck_null, /* redo */
+ Perl_ck_null, /* dump */
+ Perl_ck_null, /* goto */
+ Perl_ck_exit, /* exit */
+ Perl_ck_null, /* method_named */
+ Perl_ck_null, /* entergiven */
+ Perl_ck_null, /* leavegiven */
+ Perl_ck_null, /* enterwhen */
+ Perl_ck_null, /* leavewhen */
+ Perl_ck_null, /* break */
+ Perl_ck_null, /* continue */
+ Perl_ck_open, /* open */
+ Perl_ck_fun, /* close */
+ Perl_ck_fun, /* pipe_op */
+ Perl_ck_fun, /* fileno */
+ Perl_ck_fun, /* umask */
+ Perl_ck_fun, /* binmode */
+ Perl_ck_fun, /* tie */
+ Perl_ck_fun, /* untie */
+ Perl_ck_fun, /* tied */
+ Perl_ck_fun, /* dbmopen */
+ Perl_ck_fun, /* dbmclose */
+ Perl_ck_select, /* sselect */
+ Perl_ck_select, /* select */
+ Perl_ck_eof, /* getc */
+ Perl_ck_fun, /* read */
+ Perl_ck_fun, /* enterwrite */
+ Perl_ck_null, /* leavewrite */
+ Perl_ck_listiob, /* prtf */
+ Perl_ck_listiob, /* print */
+ Perl_ck_listiob, /* say */
+ Perl_ck_fun, /* sysopen */
+ Perl_ck_fun, /* sysseek */
+ Perl_ck_fun, /* sysread */
+ Perl_ck_fun, /* syswrite */
+ Perl_ck_eof, /* eof */
+ Perl_ck_fun, /* tell */
+ Perl_ck_fun, /* seek */
+ Perl_ck_trunc, /* truncate */
+ Perl_ck_fun, /* fcntl */
+ Perl_ck_fun, /* ioctl */
+ Perl_ck_fun, /* flock */
+ Perl_ck_fun, /* send */
+ Perl_ck_fun, /* recv */
+ Perl_ck_fun, /* socket */
+ Perl_ck_fun, /* sockpair */
+ Perl_ck_fun, /* bind */
+ Perl_ck_fun, /* connect */
+ Perl_ck_fun, /* listen */
+ Perl_ck_fun, /* accept */
+ Perl_ck_fun, /* shutdown */
+ Perl_ck_fun, /* gsockopt */
+ Perl_ck_fun, /* ssockopt */
+ Perl_ck_fun, /* getsockname */
+ Perl_ck_fun, /* getpeername */
+ Perl_ck_ftst, /* lstat */
+ Perl_ck_ftst, /* stat */
+ Perl_ck_ftst, /* ftrread */
+ Perl_ck_ftst, /* ftrwrite */
+ Perl_ck_ftst, /* ftrexec */
+ Perl_ck_ftst, /* fteread */
+ Perl_ck_ftst, /* ftewrite */
+ Perl_ck_ftst, /* fteexec */
+ Perl_ck_ftst, /* ftis */
+ Perl_ck_ftst, /* ftsize */
+ Perl_ck_ftst, /* ftmtime */
+ Perl_ck_ftst, /* ftatime */
+ Perl_ck_ftst, /* ftctime */
+ Perl_ck_ftst, /* ftrowned */
+ Perl_ck_ftst, /* fteowned */
+ Perl_ck_ftst, /* ftzero */
+ Perl_ck_ftst, /* ftsock */
+ Perl_ck_ftst, /* ftchr */
+ Perl_ck_ftst, /* ftblk */
+ Perl_ck_ftst, /* ftfile */
+ Perl_ck_ftst, /* ftdir */
+ Perl_ck_ftst, /* ftpipe */
+ Perl_ck_ftst, /* ftsuid */
+ Perl_ck_ftst, /* ftsgid */
+ Perl_ck_ftst, /* ftsvtx */
+ Perl_ck_ftst, /* ftlink */
+ Perl_ck_ftst, /* fttty */
+ Perl_ck_ftst, /* fttext */
+ Perl_ck_ftst, /* ftbinary */
+ Perl_ck_chdir, /* chdir */
+ Perl_ck_fun, /* chown */
+ Perl_ck_fun, /* chroot */
+ Perl_ck_fun, /* unlink */
+ Perl_ck_fun, /* chmod */
+ Perl_ck_fun, /* utime */
+ Perl_ck_fun, /* rename */
+ Perl_ck_fun, /* link */
+ Perl_ck_fun, /* symlink */
+ Perl_ck_fun, /* readlink */
+ Perl_ck_fun, /* mkdir */
+ Perl_ck_fun, /* rmdir */
+ Perl_ck_fun, /* open_dir */
+ Perl_ck_fun, /* readdir */
+ Perl_ck_fun, /* telldir */
+ Perl_ck_fun, /* seekdir */
+ Perl_ck_fun, /* rewinddir */
+ Perl_ck_fun, /* closedir */
+ Perl_ck_null, /* fork */
+ Perl_ck_null, /* wait */
+ Perl_ck_fun, /* waitpid */
+ Perl_ck_exec, /* system */
+ Perl_ck_exec, /* exec */
+ Perl_ck_fun, /* kill */
+ Perl_ck_null, /* getppid */
+ Perl_ck_fun, /* getpgrp */
+ Perl_ck_fun, /* setpgrp */
+ Perl_ck_fun, /* getpriority */
+ Perl_ck_fun, /* setpriority */
+ Perl_ck_null, /* time */
+ Perl_ck_null, /* tms */
+ Perl_ck_fun, /* localtime */
+ Perl_ck_fun, /* gmtime */
+ Perl_ck_fun, /* alarm */
+ Perl_ck_fun, /* sleep */
+ Perl_ck_fun, /* shmget */
+ Perl_ck_fun, /* shmctl */
+ Perl_ck_fun, /* shmread */
+ Perl_ck_fun, /* shmwrite */
+ Perl_ck_fun, /* msgget */
+ Perl_ck_fun, /* msgctl */
+ Perl_ck_fun, /* msgsnd */
+ Perl_ck_fun, /* msgrcv */
+ Perl_ck_fun, /* semop */
+ Perl_ck_fun, /* semget */
+ Perl_ck_fun, /* semctl */
+ Perl_ck_require, /* require */
+ Perl_ck_fun, /* dofile */
+ Perl_ck_svconst, /* hintseval */
+ Perl_ck_eval, /* entereval */
+ Perl_ck_null, /* leaveeval */
+ Perl_ck_eval, /* entertry */
+ Perl_ck_null, /* leavetry */
+ Perl_ck_fun, /* ghbyname */
+ Perl_ck_fun, /* ghbyaddr */
+ Perl_ck_null, /* ghostent */
+ Perl_ck_fun, /* gnbyname */
+ Perl_ck_fun, /* gnbyaddr */
+ Perl_ck_null, /* gnetent */
+ Perl_ck_fun, /* gpbyname */
+ Perl_ck_fun, /* gpbynumber */
+ Perl_ck_null, /* gprotoent */
+ Perl_ck_fun, /* gsbyname */
+ Perl_ck_fun, /* gsbyport */
+ Perl_ck_null, /* gservent */
+ Perl_ck_fun, /* shostent */
+ Perl_ck_fun, /* snetent */
+ Perl_ck_fun, /* sprotoent */
+ Perl_ck_fun, /* sservent */
+ Perl_ck_null, /* ehostent */
+ Perl_ck_null, /* enetent */
+ Perl_ck_null, /* eprotoent */
+ Perl_ck_null, /* eservent */
+ Perl_ck_fun, /* gpwnam */
+ Perl_ck_fun, /* gpwuid */
+ Perl_ck_null, /* gpwent */
+ Perl_ck_null, /* spwent */
+ Perl_ck_null, /* epwent */
+ Perl_ck_fun, /* ggrnam */
+ Perl_ck_fun, /* ggrgid */
+ Perl_ck_null, /* ggrent */
+ Perl_ck_null, /* sgrent */
+ Perl_ck_null, /* egrent */
+ Perl_ck_null, /* getlogin */
+ Perl_ck_fun, /* syscall */
+ Perl_ck_rfun, /* lock */
+ Perl_ck_null, /* once */
+ Perl_ck_null, /* custom */
+ Perl_ck_each, /* reach */
+ Perl_ck_each, /* rkeys */
+ Perl_ck_each, /* rvalues */
+ Perl_ck_match, /* transr */
}
#endif
#ifdef PERL_CHECK_INITED
@@ -1557,370 +1685,374 @@ EXTCONST U32 PL_opargs[];
EXTCONST U32 PL_opargs[] = {
0x00000000, /* null */
0x00000000, /* stub */
- 0x00003604, /* scalar */
+ 0x00001b04, /* scalar */
0x00000004, /* pushmark */
- 0x00000014, /* wantarray */
- 0x00000c04, /* const */
- 0x00000c44, /* gvsv */
- 0x00000c44, /* gv */
- 0x00022440, /* gelem */
+ 0x00000004, /* wantarray */
+ 0x00000604, /* const */
+ 0x00000644, /* gvsv */
+ 0x00000644, /* gv */
+ 0x00011240, /* gelem */
0x00000044, /* padsv */
0x00000040, /* padav */
0x00000040, /* padhv */
0x00000040, /* padany */
- 0x00000a40, /* pushre */
- 0x00000244, /* rv2gv */
- 0x00000244, /* rv2sv */
- 0x00000214, /* av2arylen */
- 0x00000240, /* rv2cv */
- 0x00000c00, /* anoncode */
- 0x00003604, /* prototype */
- 0x00004201, /* refgen */
- 0x00002206, /* srefgen */
- 0x0001368c, /* ref */
- 0x00122804, /* bless */
- 0x00013688, /* backtick */
- 0x00012808, /* glob */
- 0x0001d608, /* readline */
- 0x00000c08, /* rcatline */
- 0x00002204, /* regcmaybe */
- 0x00002204, /* regcreset */
- 0x00002604, /* regcomp */
- 0x00000a40, /* match */
- 0x00000a04, /* qr */
- 0x00002a54, /* subst */
- 0x00000654, /* substcont */
- 0x00003014, /* trans */
+ 0x00000540, /* pushre */
+ 0x00000144, /* rv2gv */
+ 0x00000144, /* rv2sv */
+ 0x00000104, /* av2arylen */
+ 0x00000140, /* rv2cv */
+ 0x00000600, /* anoncode */
+ 0x00001b04, /* prototype */
+ 0x00002101, /* refgen */
+ 0x00001106, /* srefgen */
+ 0x00009b8c, /* ref */
+ 0x00091404, /* bless */
+ 0x00009b88, /* backtick */
+ 0x00009408, /* glob */
+ 0x0000eb08, /* readline */
+ 0x00000608, /* rcatline */
+ 0x00001104, /* regcmaybe */
+ 0x00001104, /* regcreset */
+ 0x00001304, /* regcomp */
+ 0x00000540, /* match */
+ 0x00000504, /* qr */
+ 0x00001544, /* subst */
+ 0x00000344, /* substcont */
+ 0x00001804, /* trans */
0x00000004, /* sassign */
- 0x00044408, /* aassign */
- 0x0000560d, /* chop */
- 0x0001368c, /* schop */
- 0x0000570d, /* chomp */
- 0x0001378c, /* schomp */
- 0x00013694, /* defined */
- 0x00013604, /* undef */
- 0x00013684, /* study */
- 0x0001368c, /* pos */
- 0x00002264, /* preinc */
- 0x00002254, /* i_preinc */
- 0x00002264, /* predec */
- 0x00002254, /* i_predec */
- 0x0000226c, /* postinc */
- 0x0000235c, /* i_postinc */
- 0x0000226c, /* postdec */
- 0x0000235c, /* i_postdec */
- 0x0002250e, /* pow */
- 0x0002252e, /* multiply */
- 0x0002251e, /* i_multiply */
- 0x0002252e, /* divide */
- 0x0002251e, /* i_divide */
- 0x0002253e, /* modulo */
- 0x0002251e, /* i_modulo */
- 0x00024409, /* repeat */
- 0x0002252e, /* add */
- 0x0002251e, /* i_add */
- 0x0002252e, /* subtract */
- 0x0002251e, /* i_subtract */
- 0x0002250e, /* concat */
- 0x0000290e, /* stringify */
- 0x0002250e, /* left_shift */
- 0x0002250e, /* right_shift */
- 0x00022436, /* lt */
- 0x00022416, /* i_lt */
- 0x00022436, /* gt */
- 0x00022416, /* i_gt */
- 0x00022436, /* le */
- 0x00022416, /* i_le */
- 0x00022436, /* ge */
- 0x00022416, /* i_ge */
- 0x00022436, /* eq */
- 0x00022416, /* i_eq */
- 0x00022436, /* ne */
- 0x00022416, /* i_ne */
- 0x0002243e, /* ncmp */
- 0x0002241e, /* i_ncmp */
- 0x00022416, /* slt */
- 0x00022416, /* sgt */
- 0x00022416, /* sle */
- 0x00022416, /* sge */
- 0x00022416, /* seq */
- 0x00022416, /* sne */
- 0x0002241e, /* scmp */
- 0x0002240e, /* bit_and */
- 0x0002240e, /* bit_xor */
- 0x0002240e, /* bit_or */
- 0x0000222e, /* negate */
- 0x0000231e, /* i_negate */
- 0x00002216, /* not */
- 0x0000220e, /* complement */
- 0x00000404, /* smartmatch */
- 0x0002290e, /* atan2 */
- 0x0001378e, /* sin */
- 0x0001378e, /* cos */
- 0x0001370c, /* rand */
- 0x00013604, /* srand */
- 0x0001378e, /* exp */
- 0x0001378e, /* log */
- 0x0001378e, /* sqrt */
- 0x0001378e, /* int */
- 0x0001378e, /* hex */
- 0x0001378e, /* oct */
- 0x0001378e, /* abs */
- 0x0001379e, /* length */
- 0x1322280c, /* substr */
- 0x0022281c, /* vec */
- 0x0122291c, /* index */
- 0x0122291c, /* rindex */
- 0x0004280f, /* sprintf */
- 0x00042805, /* formline */
- 0x0001379e, /* ord */
- 0x0001378e, /* chr */
- 0x0002290e, /* crypt */
- 0x0001368e, /* ucfirst */
- 0x0001368e, /* lcfirst */
- 0x0001368e, /* uc */
- 0x0001368e, /* lc */
- 0x0001368e, /* quotemeta */
- 0x00000248, /* rv2av */
- 0x00026c04, /* aelemfast */
- 0x00026404, /* aelem */
- 0x00046801, /* aslice */
- 0x00007600, /* aeach */
- 0x00007608, /* akeys */
- 0x00007608, /* avalues */
- 0x00009600, /* each */
- 0x00009608, /* values */
- 0x00009608, /* keys */
- 0x00003600, /* delete */
- 0x00003614, /* exists */
- 0x00000248, /* rv2hv */
- 0x00028404, /* helem */
- 0x00048801, /* hslice */
- 0x00009600, /* boolkeys */
- 0x00122800, /* unpack */
- 0x0004280d, /* pack */
- 0x00222808, /* split */
- 0x0004280d, /* join */
- 0x00004801, /* list */
- 0x00448400, /* lslice */
- 0x00004805, /* anonlist */
- 0x00004805, /* anonhash */
- 0x05326801, /* splice */
- 0x0004691d, /* push */
- 0x00017604, /* pop */
- 0x00017604, /* shift */
- 0x0004691d, /* unshift */
- 0x0005a841, /* sort */
- 0x00004809, /* reverse */
- 0x0004a841, /* grepstart */
- 0x00000648, /* grepwhile */
- 0x0004a841, /* mapstart */
- 0x00000648, /* mapwhile */
- 0x00022600, /* range */
- 0x00022200, /* flip */
- 0x00000200, /* flop */
- 0x00000600, /* and */
- 0x00000600, /* or */
- 0x00022406, /* xor */
- 0x00000600, /* dor */
- 0x00000640, /* cond_expr */
- 0x00000604, /* andassign */
- 0x00000604, /* orassign */
- 0x00000604, /* dorassign */
- 0x00000240, /* method */
- 0x00004249, /* entersub */
- 0x00000200, /* leavesub */
- 0x00000200, /* leavesublv */
- 0x00013608, /* caller */
- 0x0000481d, /* warn */
- 0x0000485d, /* die */
- 0x00013614, /* reset */
- 0x00000800, /* lineseq */
- 0x00001404, /* nextstate */
- 0x00001404, /* dbstate */
+ 0x00022208, /* aassign */
+ 0x00002b0d, /* chop */
+ 0x00009b8c, /* schop */
+ 0x00002b1d, /* chomp */
+ 0x00009b9c, /* schomp */
+ 0x00009b84, /* defined */
+ 0x00009b04, /* undef */
+ 0x00009b84, /* study */
+ 0x00009b8c, /* pos */
+ 0x00001164, /* preinc */
+ 0x00001144, /* i_preinc */
+ 0x00001164, /* predec */
+ 0x00001144, /* i_predec */
+ 0x0000116c, /* postinc */
+ 0x0000115c, /* i_postinc */
+ 0x0000116c, /* postdec */
+ 0x0000115c, /* i_postdec */
+ 0x0001121e, /* pow */
+ 0x0001123e, /* multiply */
+ 0x0001121e, /* i_multiply */
+ 0x0001123e, /* divide */
+ 0x0001121e, /* i_divide */
+ 0x0001123e, /* modulo */
+ 0x0001121e, /* i_modulo */
+ 0x00012209, /* repeat */
+ 0x0001123e, /* add */
+ 0x0001121e, /* i_add */
+ 0x0001123e, /* subtract */
+ 0x0001121e, /* i_subtract */
+ 0x0001121e, /* concat */
+ 0x0000141e, /* stringify */
+ 0x0001121e, /* left_shift */
+ 0x0001121e, /* right_shift */
+ 0x00011226, /* lt */
+ 0x00011206, /* i_lt */
+ 0x00011226, /* gt */
+ 0x00011206, /* i_gt */
+ 0x00011226, /* le */
+ 0x00011206, /* i_le */
+ 0x00011226, /* ge */
+ 0x00011206, /* i_ge */
+ 0x00011226, /* eq */
+ 0x00011206, /* i_eq */
+ 0x00011226, /* ne */
+ 0x00011206, /* i_ne */
+ 0x0001122e, /* ncmp */
+ 0x0001120e, /* i_ncmp */
+ 0x00011206, /* slt */
+ 0x00011206, /* sgt */
+ 0x00011206, /* sle */
+ 0x00011206, /* sge */
+ 0x00011206, /* seq */
+ 0x00011206, /* sne */
+ 0x0001120e, /* scmp */
+ 0x0001120e, /* bit_and */
+ 0x0001120e, /* bit_xor */
+ 0x0001120e, /* bit_or */
+ 0x0000112e, /* negate */
+ 0x0000111e, /* i_negate */
+ 0x00001106, /* not */
+ 0x0000110e, /* complement */
+ 0x00000204, /* smartmatch */
+ 0x0001141e, /* atan2 */
+ 0x00009b9e, /* sin */
+ 0x00009b9e, /* cos */
+ 0x00009b1c, /* rand */
+ 0x00009b1c, /* srand */
+ 0x00009b9e, /* exp */
+ 0x00009b9e, /* log */
+ 0x00009b9e, /* sqrt */
+ 0x00009b9e, /* int */
+ 0x00009b9e, /* hex */
+ 0x00009b9e, /* oct */
+ 0x00009b9e, /* abs */
+ 0x00009b9e, /* length */
+ 0x0991140c, /* substr */
+ 0x0011140c, /* vec */
+ 0x0091141c, /* index */
+ 0x0091141c, /* rindex */
+ 0x0002140f, /* sprintf */
+ 0x00021405, /* formline */
+ 0x00009b9e, /* ord */
+ 0x00009b9e, /* chr */
+ 0x0001141e, /* crypt */
+ 0x00009b8e, /* ucfirst */
+ 0x00009b8e, /* lcfirst */
+ 0x00009b8e, /* uc */
+ 0x00009b8e, /* lc */
+ 0x00009b8e, /* quotemeta */
+ 0x00000148, /* rv2av */
+ 0x00013604, /* aelemfast */
+ 0x00013204, /* aelem */
+ 0x00023401, /* aslice */
+ 0x00003b00, /* aeach */
+ 0x00003b08, /* akeys */
+ 0x00003b08, /* avalues */
+ 0x00004b00, /* each */
+ 0x00004b08, /* values */
+ 0x00004b08, /* keys */
+ 0x00001b00, /* delete */
+ 0x00001b04, /* exists */
+ 0x00000148, /* rv2hv */
+ 0x00014204, /* helem */
+ 0x00024401, /* hslice */
+ 0x00004b00, /* boolkeys */
+ 0x00091400, /* unpack */
+ 0x0002140d, /* pack */
+ 0x00111408, /* split */
+ 0x0002140d, /* join */
+ 0x00002401, /* list */
+ 0x00224200, /* lslice */
+ 0x00002405, /* anonlist */
+ 0x00002405, /* anonhash */
+ 0x02993401, /* splice */
+ 0x0002341d, /* push */
+ 0x0000bb04, /* pop */
+ 0x0000bb04, /* shift */
+ 0x0002341d, /* unshift */
+ 0x0002d441, /* sort */
+ 0x00002409, /* reverse */
+ 0x00025441, /* grepstart */
+ 0x00000348, /* grepwhile */
+ 0x00025441, /* mapstart */
+ 0x00000348, /* mapwhile */
+ 0x00011300, /* range */
+ 0x00011100, /* flip */
+ 0x00000100, /* flop */
+ 0x00000300, /* and */
+ 0x00000300, /* or */
+ 0x00011206, /* xor */
+ 0x00000300, /* dor */
+ 0x00000340, /* cond_expr */
+ 0x00000304, /* andassign */
+ 0x00000304, /* orassign */
+ 0x00000304, /* dorassign */
+ 0x00000140, /* method */
+ 0x00002149, /* entersub */
+ 0x00000100, /* leavesub */
+ 0x00000100, /* leavesublv */
+ 0x00009b08, /* caller */
+ 0x0000240d, /* warn */
+ 0x0000244d, /* die */
+ 0x00009b04, /* reset */
+ 0x00000400, /* lineseq */
+ 0x00000a04, /* nextstate */
+ 0x00000a04, /* dbstate */
0x00000004, /* unstack */
0x00000000, /* enter */
- 0x00000800, /* leave */
- 0x00000800, /* scope */
- 0x00001240, /* enteriter */
+ 0x00000400, /* leave */
+ 0x00000400, /* scope */
+ 0x00000940, /* enteriter */
0x00000000, /* iter */
- 0x00001240, /* enterloop */
- 0x00000400, /* leaveloop */
- 0x00004841, /* return */
- 0x00001a44, /* last */
- 0x00001a44, /* next */
- 0x00001a44, /* redo */
- 0x00001a44, /* dump */
- 0x00001a44, /* goto */
- 0x00013644, /* exit */
- 0x00000c40, /* method_named */
- 0x00000640, /* entergiven */
- 0x00000200, /* leavegiven */
- 0x00000640, /* enterwhen */
- 0x00000200, /* leavewhen */
+ 0x00000940, /* enterloop */
+ 0x00000200, /* leaveloop */
+ 0x00002441, /* return */
+ 0x00000d44, /* last */
+ 0x00000d44, /* next */
+ 0x00000d44, /* redo */
+ 0x00000d44, /* dump */
+ 0x00000d44, /* goto */
+ 0x00009b44, /* exit */
+ 0x00000640, /* method_named */
+ 0x00000340, /* entergiven */
+ 0x00000100, /* leavegiven */
+ 0x00000340, /* enterwhen */
+ 0x00000100, /* leavewhen */
0x00000000, /* break */
0x00000000, /* continue */
- 0x0052c81d, /* open */
- 0x0001d614, /* close */
- 0x000cc814, /* pipe_op */
- 0x0000d61c, /* fileno */
- 0x0001361c, /* umask */
- 0x0012c804, /* binmode */
- 0x0042e855, /* tie */
- 0x0000f614, /* untie */
- 0x0000f604, /* tied */
- 0x00228814, /* dbmopen */
- 0x00009614, /* dbmclose */
- 0x02222808, /* sselect */
- 0x0001c80c, /* select */
- 0x0001d60c, /* getc */
- 0x122ec81d, /* read */
- 0x0001d654, /* enterwrite */
- 0x00000200, /* leavewrite */
- 0x0005c815, /* prtf */
- 0x0005c815, /* print */
- 0x0005c815, /* say */
- 0x1222c804, /* sysopen */
- 0x0022c804, /* sysseek */
- 0x122ec81d, /* sysread */
- 0x1322c81d, /* syswrite */
- 0x0001d614, /* eof */
- 0x0001d60c, /* tell */
- 0x0022c804, /* seek */
- 0x00022814, /* truncate */
- 0x0022c80c, /* fcntl */
- 0x0022c80c, /* ioctl */
- 0x0002c91c, /* flock */
- 0x1222c81d, /* send */
- 0x022ec81d, /* recv */
- 0x0222c814, /* socket */
- 0x222cc814, /* sockpair */
- 0x0002c814, /* bind */
- 0x0002c814, /* connect */
- 0x0002c814, /* listen */
- 0x000cc81c, /* accept */
- 0x0002c81c, /* shutdown */
- 0x0022c814, /* gsockopt */
- 0x0222c814, /* ssockopt */
- 0x0000d614, /* getsockname */
- 0x0000d614, /* getpeername */
- 0x0000d880, /* lstat */
- 0x0000d880, /* stat */
- 0x0000d894, /* ftrread */
- 0x0000d894, /* ftrwrite */
- 0x0000d894, /* ftrexec */
- 0x0000d894, /* fteread */
- 0x0000d894, /* ftewrite */
- 0x0000d894, /* fteexec */
- 0x0000d894, /* ftis */
- 0x0000d89c, /* ftsize */
- 0x0000d88c, /* ftmtime */
- 0x0000d88c, /* ftatime */
- 0x0000d88c, /* ftctime */
- 0x0000d894, /* ftrowned */
- 0x0000d894, /* fteowned */
- 0x0000d894, /* ftzero */
- 0x0000d894, /* ftsock */
- 0x0000d894, /* ftchr */
- 0x0000d894, /* ftblk */
- 0x0000d894, /* ftfile */
- 0x0000d894, /* ftdir */
- 0x0000d894, /* ftpipe */
- 0x0000d894, /* ftsuid */
- 0x0000d894, /* ftsgid */
- 0x0000d894, /* ftsvtx */
- 0x0000d894, /* ftlink */
- 0x0000d814, /* fttty */
- 0x0000d894, /* fttext */
- 0x0000d894, /* ftbinary */
- 0x0001371c, /* chdir */
- 0x0000491d, /* chown */
- 0x0001379c, /* chroot */
- 0x0000499d, /* unlink */
- 0x0000491d, /* chmod */
- 0x0000491d, /* utime */
- 0x0002291c, /* rename */
- 0x0002291c, /* link */
- 0x0002291c, /* symlink */
- 0x0001368c, /* readlink */
- 0x0013299c, /* mkdir */
- 0x0001379c, /* rmdir */
- 0x0002c814, /* open_dir */
- 0x0000d600, /* readdir */
- 0x0000d60c, /* telldir */
- 0x0002c804, /* seekdir */
- 0x0000d604, /* rewinddir */
- 0x0000d614, /* closedir */
- 0x0000001c, /* fork */
- 0x0000011c, /* wait */
- 0x0002291c, /* waitpid */
- 0x0005291d, /* system */
- 0x0005295d, /* exec */
- 0x0000495d, /* kill */
- 0x0000011c, /* getppid */
- 0x0001371c, /* getpgrp */
- 0x0013291c, /* setpgrp */
- 0x0002291c, /* getpriority */
- 0x0022291c, /* setpriority */
- 0x0000011c, /* time */
+ 0x0029640d, /* open */
+ 0x0000eb04, /* close */
+ 0x00066404, /* pipe_op */
+ 0x00006b0c, /* fileno */
+ 0x00009b0c, /* umask */
+ 0x00096404, /* binmode */
+ 0x00217445, /* tie */
+ 0x00007b04, /* untie */
+ 0x00007b04, /* tied */
+ 0x00114404, /* dbmopen */
+ 0x00004b04, /* dbmclose */
+ 0x01111408, /* sselect */
+ 0x0000e40c, /* select */
+ 0x0000eb0c, /* getc */
+ 0x0917640d, /* read */
+ 0x0000eb44, /* enterwrite */
+ 0x00000100, /* leavewrite */
+ 0x0002e405, /* prtf */
+ 0x0002e405, /* print */
+ 0x0002e405, /* say */
+ 0x09116404, /* sysopen */
+ 0x00116404, /* sysseek */
+ 0x0917640d, /* sysread */
+ 0x0991640d, /* syswrite */
+ 0x0000eb04, /* eof */
+ 0x0000eb0c, /* tell */
+ 0x00116404, /* seek */
+ 0x00011404, /* truncate */
+ 0x0011640c, /* fcntl */
+ 0x0011640c, /* ioctl */
+ 0x0001641c, /* flock */
+ 0x0911640d, /* send */
+ 0x0117640d, /* recv */
+ 0x01116404, /* socket */
+ 0x11166404, /* sockpair */
+ 0x00016404, /* bind */
+ 0x00016404, /* connect */
+ 0x00016404, /* listen */
+ 0x0006640c, /* accept */
+ 0x0001640c, /* shutdown */
+ 0x00116404, /* gsockopt */
+ 0x01116404, /* ssockopt */
+ 0x00006b04, /* getsockname */
+ 0x00006b04, /* getpeername */
+ 0x00006c80, /* lstat */
+ 0x00006c80, /* stat */
+ 0x00006c84, /* ftrread */
+ 0x00006c84, /* ftrwrite */
+ 0x00006c84, /* ftrexec */
+ 0x00006c84, /* fteread */
+ 0x00006c84, /* ftewrite */
+ 0x00006c84, /* fteexec */
+ 0x00006c84, /* ftis */
+ 0x00006c8c, /* ftsize */
+ 0x00006c8c, /* ftmtime */
+ 0x00006c8c, /* ftatime */
+ 0x00006c8c, /* ftctime */
+ 0x00006c84, /* ftrowned */
+ 0x00006c84, /* fteowned */
+ 0x00006c84, /* ftzero */
+ 0x00006c84, /* ftsock */
+ 0x00006c84, /* ftchr */
+ 0x00006c84, /* ftblk */
+ 0x00006c84, /* ftfile */
+ 0x00006c84, /* ftdir */
+ 0x00006c84, /* ftpipe */
+ 0x00006c84, /* ftsuid */
+ 0x00006c84, /* ftsgid */
+ 0x00006c84, /* ftsvtx */
+ 0x00006c84, /* ftlink */
+ 0x00006c04, /* fttty */
+ 0x00006c84, /* fttext */
+ 0x00006c84, /* ftbinary */
+ 0x00009b1c, /* chdir */
+ 0x0000241d, /* chown */
+ 0x00009b9c, /* chroot */
+ 0x0000249d, /* unlink */
+ 0x0000241d, /* chmod */
+ 0x0000241d, /* utime */
+ 0x0001141c, /* rename */
+ 0x0001141c, /* link */
+ 0x0001141c, /* symlink */
+ 0x00009b8c, /* readlink */
+ 0x0009949c, /* mkdir */
+ 0x00009b9c, /* rmdir */
+ 0x00016404, /* open_dir */
+ 0x00006b00, /* readdir */
+ 0x00006b0c, /* telldir */
+ 0x00016404, /* seekdir */
+ 0x00006b04, /* rewinddir */
+ 0x00006b04, /* closedir */
+ 0x0000000c, /* fork */
+ 0x0000001c, /* wait */
+ 0x0001141c, /* waitpid */
+ 0x0002941d, /* system */
+ 0x0002945d, /* exec */
+ 0x0000245d, /* kill */
+ 0x0000001c, /* getppid */
+ 0x00009b1c, /* getpgrp */
+ 0x0009941c, /* setpgrp */
+ 0x0001141c, /* getpriority */
+ 0x0011141c, /* setpriority */
+ 0x0000001c, /* time */
0x00000000, /* tms */
- 0x00013608, /* localtime */
- 0x00013608, /* gmtime */
- 0x0001369c, /* alarm */
- 0x0001371c, /* sleep */
- 0x0022281d, /* shmget */
- 0x0022281d, /* shmctl */
- 0x0222281d, /* shmread */
- 0x0222281d, /* shmwrite */
- 0x0002281d, /* msgget */
- 0x0022281d, /* msgctl */
- 0x0022281d, /* msgsnd */
- 0x2222281d, /* msgrcv */
- 0x0002281d, /* semop */
- 0x0022281d, /* semget */
- 0x0222281d, /* semctl */
- 0x000136c0, /* require */
- 0x00002240, /* dofile */
- 0x00000c04, /* hintseval */
- 0x00003640, /* entereval */
- 0x00002200, /* leaveeval */
- 0x00001640, /* entertry */
- 0x00000800, /* leavetry */
- 0x00003600, /* ghbyname */
- 0x00022800, /* ghbyaddr */
+ 0x00009b08, /* localtime */
+ 0x00009b08, /* gmtime */
+ 0x00009b8c, /* alarm */
+ 0x00009b1c, /* sleep */
+ 0x0011140d, /* shmget */
+ 0x0011140d, /* shmctl */
+ 0x0111140d, /* shmread */
+ 0x0111140d, /* shmwrite */
+ 0x0001140d, /* msgget */
+ 0x0011140d, /* msgctl */
+ 0x0011140d, /* msgsnd */
+ 0x1111140d, /* msgrcv */
+ 0x0001140d, /* semop */
+ 0x0011140d, /* semget */
+ 0x0111140d, /* semctl */
+ 0x00009bc0, /* require */
+ 0x00001140, /* dofile */
+ 0x00000604, /* hintseval */
+ 0x00001b40, /* entereval */
+ 0x00001100, /* leaveeval */
+ 0x00000340, /* entertry */
+ 0x00000400, /* leavetry */
+ 0x00001b00, /* ghbyname */
+ 0x00011400, /* ghbyaddr */
0x00000000, /* ghostent */
- 0x00003600, /* gnbyname */
- 0x00022800, /* gnbyaddr */
+ 0x00001b00, /* gnbyname */
+ 0x00011400, /* gnbyaddr */
0x00000000, /* gnetent */
- 0x00003600, /* gpbyname */
- 0x00002800, /* gpbynumber */
+ 0x00001b00, /* gpbyname */
+ 0x00001400, /* gpbynumber */
0x00000000, /* gprotoent */
- 0x00022800, /* gsbyname */
- 0x00022800, /* gsbyport */
+ 0x00011400, /* gsbyname */
+ 0x00011400, /* gsbyport */
0x00000000, /* gservent */
- 0x00003614, /* shostent */
- 0x00003614, /* snetent */
- 0x00003614, /* sprotoent */
- 0x00003614, /* sservent */
- 0x00000014, /* ehostent */
- 0x00000014, /* enetent */
- 0x00000014, /* eprotoent */
- 0x00000014, /* eservent */
- 0x00003600, /* gpwnam */
- 0x00003600, /* gpwuid */
+ 0x00001b04, /* shostent */
+ 0x00001b04, /* snetent */
+ 0x00001b04, /* sprotoent */
+ 0x00001b04, /* sservent */
+ 0x00000004, /* ehostent */
+ 0x00000004, /* enetent */
+ 0x00000004, /* eprotoent */
+ 0x00000004, /* eservent */
+ 0x00001b00, /* gpwnam */
+ 0x00001b00, /* gpwuid */
0x00000000, /* gpwent */
- 0x00000014, /* spwent */
- 0x00000014, /* epwent */
- 0x00003600, /* ggrnam */
- 0x00003600, /* ggrgid */
+ 0x00000004, /* spwent */
+ 0x00000004, /* epwent */
+ 0x00001b00, /* ggrnam */
+ 0x00001b00, /* ggrgid */
0x00000000, /* ggrent */
- 0x00000014, /* sgrent */
- 0x00000014, /* egrent */
+ 0x00000004, /* sgrent */
+ 0x00000004, /* egrent */
0x0000000c, /* getlogin */
- 0x0004281d, /* syscall */
- 0x0000f604, /* lock */
- 0x00000600, /* once */
+ 0x0002140d, /* syscall */
+ 0x00007b04, /* lock */
+ 0x00000300, /* once */
0x00000000, /* custom */
+ 0x00001b00, /* reach */
+ 0x00001b08, /* rkeys */
+ 0x00001b08, /* rvalues */
+ 0x00001804, /* transr */
};
#endif
diff --git a/Master/tlpkg/tlperl/lib/CORE/opnames.h b/Master/tlpkg/tlperl/lib/CORE/opnames.h
index d63e548bdef..f3fab8b1f86 100644
--- a/Master/tlpkg/tlperl/lib/CORE/opnames.h
+++ b/Master/tlpkg/tlperl/lib/CORE/opnames.h
@@ -2,16 +2,15 @@
*
* opnames.h
*
- * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008 by Larry Wall and others
+ * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+ * 2008 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
- *
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by opcode.pl from its data. Any changes made here
- * will be lost!
+ * This file is built by regen/opcode.pl from its data.
+ * Any changes made here will be lost!
*/
typedef enum opcode {
@@ -381,17 +380,18 @@ typedef enum opcode {
OP_LOCK = 363,
OP_ONCE = 364,
OP_CUSTOM = 365,
+ OP_REACH = 366,
+ OP_RKEYS = 367,
+ OP_RVALUES = 368,
+ OP_TRANSR = 369,
OP_max
} opcode;
-#define MAXO 366
-#define OP_phoney_INPUT_ONLY -1
-#define OP_phoney_OUTPUT_ONLY -2
-
+#define MAXO 370
/* the OP_IS_(SOCKET|FILETEST) macros are optimized to a simple range
check because all the member OPs are contiguous in opcode.pl
- <DATA> table. opcode.pl verifies the range contiguity. */
+ <OPS> table. opcode.pl verifies the range contiguity. */
#define OP_IS_SOCKET(op) \
((op) >= OP_SEND && (op) <= OP_GETPEERNAME)
diff --git a/Master/tlpkg/tlperl/lib/CORE/overload.h b/Master/tlpkg/tlperl/lib/CORE/overload.h
index bbef5cb9a0c..24cde2ad131 100644
--- a/Master/tlpkg/tlperl/lib/CORE/overload.h
+++ b/Master/tlpkg/tlperl/lib/CORE/overload.h
@@ -2,89 +2,91 @@
*
* overload.h
*
- * Copyright (C) 1997, 1998, 2000, 2001, 2005, 2006, 2007 by Larry Wall
- * and others
+ * Copyright (C) 1997, 1998, 2000, 2001, 2005, 2006, 2007, 2011
+ * by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
- * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by overload.pl
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ * This file is built by regen/overload.pl.
+ * Any changes made here will be lost!
*/
enum {
- fallback_amg,
- to_sv_amg,
- to_av_amg,
- to_hv_amg,
- to_gv_amg,
- to_cv_amg,
- inc_amg,
- dec_amg,
- bool__amg,
- numer_amg,
- string_amg,
- not_amg,
- copy_amg,
- abs_amg,
- neg_amg,
- iter_amg,
- int_amg,
- lt_amg,
- le_amg,
- gt_amg,
- ge_amg,
- eq_amg,
- ne_amg,
- slt_amg,
- sle_amg,
- sgt_amg,
- sge_amg,
- seq_amg,
- sne_amg,
- nomethod_amg,
- add_amg,
- add_ass_amg,
- subtr_amg,
- subtr_ass_amg,
- mult_amg,
- mult_ass_amg,
- div_amg,
- div_ass_amg,
- modulo_amg,
- modulo_ass_amg,
- pow_amg,
- pow_ass_amg,
- lshift_amg,
- lshift_ass_amg,
- rshift_amg,
- rshift_ass_amg,
- band_amg,
- band_ass_amg,
- bor_amg,
- bor_ass_amg,
- bxor_amg,
- bxor_ass_amg,
- ncmp_amg,
- scmp_amg,
- compl_amg,
- atan2_amg,
- cos_amg,
- sin_amg,
- exp_amg,
- log_amg,
- sqrt_amg,
- repeat_amg,
- repeat_ass_amg,
- concat_amg,
- concat_ass_amg,
- smart_amg,
- ftest_amg,
- regexp_amg,
- DESTROY_amg,
+ fallback_amg, /* 0x00 fallback */
+ to_sv_amg, /* 0x01 ${} */
+ to_av_amg, /* 0x02 @{} */
+ to_hv_amg, /* 0x03 %{} */
+ to_gv_amg, /* 0x04 *{} */
+ to_cv_amg, /* 0x05 &{} */
+ inc_amg, /* 0x06 ++ */
+ dec_amg, /* 0x07 -- */
+ bool__amg, /* 0x08 bool */
+ numer_amg, /* 0x09 0+ */
+ string_amg, /* 0x0a "" */
+ not_amg, /* 0x0b ! */
+ copy_amg, /* 0x0c = */
+ abs_amg, /* 0x0d abs */
+ neg_amg, /* 0x0e neg */
+ iter_amg, /* 0x0f <> */
+ int_amg, /* 0x10 int */
+ lt_amg, /* 0x11 < */
+ le_amg, /* 0x12 <= */
+ gt_amg, /* 0x13 > */
+ ge_amg, /* 0x14 >= */
+ eq_amg, /* 0x15 == */
+ ne_amg, /* 0x16 != */
+ slt_amg, /* 0x17 lt */
+ sle_amg, /* 0x18 le */
+ sgt_amg, /* 0x19 gt */
+ sge_amg, /* 0x1a ge */
+ seq_amg, /* 0x1b eq */
+ sne_amg, /* 0x1c ne */
+ nomethod_amg, /* 0x1d nomethod */
+ add_amg, /* 0x1e + */
+ add_ass_amg, /* 0x1f += */
+ subtr_amg, /* 0x20 - */
+ subtr_ass_amg, /* 0x21 -= */
+ mult_amg, /* 0x22 * */
+ mult_ass_amg, /* 0x23 *= */
+ div_amg, /* 0x24 / */
+ div_ass_amg, /* 0x25 /= */
+ modulo_amg, /* 0x26 % */
+ modulo_ass_amg, /* 0x27 %= */
+ pow_amg, /* 0x28 ** */
+ pow_ass_amg, /* 0x29 **= */
+ lshift_amg, /* 0x2a << */
+ lshift_ass_amg, /* 0x2b <<= */
+ rshift_amg, /* 0x2c >> */
+ rshift_ass_amg, /* 0x2d >>= */
+ band_amg, /* 0x2e & */
+ band_ass_amg, /* 0x2f &= */
+ bor_amg, /* 0x30 | */
+ bor_ass_amg, /* 0x31 |= */
+ bxor_amg, /* 0x32 ^ */
+ bxor_ass_amg, /* 0x33 ^= */
+ ncmp_amg, /* 0x34 <=> */
+ scmp_amg, /* 0x35 cmp */
+ compl_amg, /* 0x36 ~ */
+ atan2_amg, /* 0x37 atan2 */
+ cos_amg, /* 0x38 cos */
+ sin_amg, /* 0x39 sin */
+ exp_amg, /* 0x3a exp */
+ log_amg, /* 0x3b log */
+ sqrt_amg, /* 0x3c sqrt */
+ repeat_amg, /* 0x3d x */
+ repeat_ass_amg, /* 0x3e x= */
+ concat_amg, /* 0x3f . */
+ concat_ass_amg, /* 0x40 .= */
+ smart_amg, /* 0x41 ~~ */
+ ftest_amg, /* 0x42 -X */
+ regexp_amg, /* 0x43 qr */
+ DESTROY_amg, /* 0x44 DESTROY */
max_amg_code
/* Do not leave a trailing comma here. C9X allows it, C89 doesn't. */
};
#define NofAMmeth max_amg_code
+/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/pad.h b/Master/tlpkg/tlperl/lib/CORE/pad.h
index 8602eda7f78..dec267ae27b 100644
--- a/Master/tlpkg/tlperl/lib/CORE/pad.h
+++ b/Master/tlpkg/tlperl/lib/CORE/pad.h
@@ -31,6 +31,12 @@ typedef U64TYPE PADOFFSET;
#endif
#define NOT_IN_PAD ((PADOFFSET) -1)
+/* a value that PL_cop_seqmax is guaranteed never to be,
+ * flagging that a lexical is being introduced, or has not yet left scope
+ */
+#define PERL_PADSEQ_INTRO U32_MAX
+
+
/* B.xs needs these for the benefit of B::Deparse */
/* Low range end is exclusive (valid from the cop seq after this one) */
/* High range end is inclusive (valid up to this cop seq) */
diff --git a/Master/tlpkg/tlperl/lib/CORE/parser.h b/Master/tlpkg/tlperl/lib/CORE/parser.h
index 4ef460836cc..17ced8f073a 100644
--- a/Master/tlpkg/tlperl/lib/CORE/parser.h
+++ b/Master/tlpkg/tlperl/lib/CORE/parser.h
@@ -39,7 +39,7 @@ typedef struct yy_parser {
/* lexer state */
- I32 lex_brackets; /* bracket count */
+ I32 lex_brackets; /* square and curly bracket count */
I32 lex_casemods; /* casemod count */
char *lex_brackstack;/* what kind of brackets to pop */
char *lex_casestack; /* what kind of case mods in effect */
@@ -61,7 +61,7 @@ typedef struct yy_parser {
char multi_close; /* delimiter of said string */
char pending_ident; /* pending identifier lookup */
bool preambled;
- /* XXX I32 space */
+ I32 lex_allbrackets;/* (), [], {}, ?: bracket count */
SUBLEXINFO sublex_info;
SV *linestr; /* current chunk of src text */
char *bufptr;
@@ -105,11 +105,35 @@ typedef struct yy_parser {
COP *saved_curcop; /* the previous PL_curcop */
char tokenbuf[256];
+ bool in_pod; /* lexer is within a =pod section */
+ U8 lex_fakeeof; /* precedence at which to fake EOF */
} yy_parser;
/* flags for lexer API */
#define LEX_STUFF_UTF8 0x00000001
#define LEX_KEEP_PREVIOUS 0x00000002
+#ifdef PERL_CORE
+# define LEX_START_SAME_FILTER 0x00000001
+#endif
+
+/* flags for parser API */
+#define PARSE_OPTIONAL 0x00000001
+
+/* values for lex_fakeeof */
+enum {
+ LEX_FAKEEOF_NEVER, /* don't fake EOF */
+ LEX_FAKEEOF_CLOSING, /* fake EOF at unmatched closing punctuation */
+ LEX_FAKEEOF_NONEXPR, /* ... and at token that can't be in expression */
+ LEX_FAKEEOF_LOWLOGIC, /* ... and at low-precedence logic operator */
+ LEX_FAKEEOF_COMMA, /* ... and at comma */
+ LEX_FAKEEOF_ASSIGN, /* ... and at assignment operator */
+ LEX_FAKEEOF_IFELSE, /* ... and at ?: operator */
+ LEX_FAKEEOF_RANGE, /* ... and at range operator */
+ LEX_FAKEEOF_LOGIC, /* ... and at logic operator */
+ LEX_FAKEEOF_BITWISE, /* ... and at bitwise operator */
+ LEX_FAKEEOF_COMPARE, /* ... and at comparison operator */
+ LEX_FAKEEOF_MAX
+};
/*
* Local variables:
diff --git a/Master/tlpkg/tlperl/lib/CORE/patchlevel.h b/Master/tlpkg/tlperl/lib/CORE/patchlevel.h
index af54dc98daf..5dc2a53beb1 100644
--- a/Master/tlpkg/tlperl/lib/CORE/patchlevel.h
+++ b/Master/tlpkg/tlperl/lib/CORE/patchlevel.h
@@ -14,8 +14,8 @@
* exactly on the third column */
#define PERL_REVISION 5 /* age */
-#define PERL_VERSION 12 /* epoch */
-#define PERL_SUBVERSION 3 /* generation */
+#define PERL_VERSION 14 /* epoch */
+#define PERL_SUBVERSION 2 /* generation */
/* The following numbers describe the earliest compatible version of
Perl ("compatibility" here being defined as sufficient binary/API
@@ -26,13 +26,17 @@
options such as usemultiplicity tend to break binary compatibility
more often.
- This is used by Configure et al to figure out
+ This is used by Configure et al to figure out
PERL_INC_VERSION_LIST, which lists version libraries
to include in @INC. See INSTALL for how this works.
+
+ Porting/bump-perl-version will automatically set these to the version of perl
+ to be released for blead releases, and to 5.X.0 for maint releases. Manually
+ changing them should not be necessary.
*/
-#define PERL_API_REVISION 5 /* Adjust manually as needed. */
-#define PERL_API_VERSION 12 /* Adjust manually as needed. */
-#define PERL_API_SUBVERSION 0 /* Adjust manually as needed. */
+#define PERL_API_REVISION 5
+#define PERL_API_VERSION 14
+#define PERL_API_SUBVERSION 0
/*
XXX Note: The selection of non-default Configure options, such
as -Duselonglong may invalidate these settings. Currently, Configure
@@ -66,8 +70,8 @@
+ ,"MINE001 - my new patch"
,NULL
};
-
- please change it to
+
+ please change it to
*** patchlevel.h.orig <date here>
--- patchlevel.h <date here>
*** 41,43 ***
@@ -75,7 +79,7 @@
+ ,"MINE001 - my new patch"
,NULL
};
-
+
(Note changes to line numbers as well as removal of context lines.)
This will prevent patch from choking if someone has previously
applied different patches than you.
@@ -92,6 +96,8 @@ my $seen=0;
while (<PLIN>) {
if (/\t,NULL/ and $seen) {
while (my $c = shift @ARGV){
+ $c =~ s|\\|\\\\|g;
+ $c =~ s|"|\\"|g;
print PLOUT qq{\t,"$c"\n};
}
}
diff --git a/Master/tlpkg/tlperl/lib/CORE/perl.h b/Master/tlpkg/tlperl/lib/CORE/perl.h
index 5988e7845a8..facdacfbf49 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perl.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perl.h
@@ -140,6 +140,18 @@
# define EXTERN_C extern
#endif
+/* Fallback definitions in case we don't have definitions from config.h.
+ This should only matter for systems that don't use Configure and
+ haven't been modified to define PERL_STATIC_INLINE yet.
+*/
+#if !defined(PERL_STATIC_INLINE)
+# ifdef HAS_STATIC_INLINE
+# define PERL_STATIC_INLINE static inline
+# else
+# define PERL_STATIC_INLINE static
+# endif
+#endif
+
#ifdef PERL_GLOBAL_STRUCT
# ifndef PERL_GET_VARS
# ifdef PERL_GLOBAL_STRUCT_PRIVATE
@@ -198,6 +210,13 @@
#endif
#define STATIC static
+
+#ifndef PERL_CORE
+/* Do not use these macros. They were part of PERL_OBJECT, which was an
+ * implementation of multiplicity using C++ objects. They have been left
+ * here solely for the sake of XS code which has incorrectly
+ * cargo-culted them.
+ */
#define CPERLscope(x) x
#define CPERLarg void
#define CPERLarg_
@@ -206,76 +225,77 @@
#define _PERL_OBJECT_THIS
#define PERL_OBJECT_THIS_
#define CALL_FPTR(fptr) (*fptr)
+#define MEMBER_TO_FPTR(name) name
+#endif /* !PERL_CORE */
-#define CALLRUNOPS CALL_FPTR(PL_runops)
+#define CALLRUNOPS PL_runops
#define CALLREGCOMP(sv, flags) Perl_pregcomp(aTHX_ (sv),(flags))
-#define CALLREGCOMP_ENG(prog, sv, flags) \
- CALL_FPTR(((prog)->comp))(aTHX_ sv, flags)
+#define CALLREGCOMP_ENG(prog, sv, flags) (prog)->comp(aTHX_ sv, flags)
#define CALLREGEXEC(prog,stringarg,strend,strbeg,minend,screamer,data,flags) \
- CALL_FPTR(RX_ENGINE(prog)->exec)(aTHX_ (prog),(stringarg),(strend), \
+ RX_ENGINE(prog)->exec(aTHX_ (prog),(stringarg),(strend), \
(strbeg),(minend),(screamer),(data),(flags))
#define CALLREG_INTUIT_START(prog,sv,strpos,strend,flags,data) \
- CALL_FPTR(RX_ENGINE(prog)->intuit)(aTHX_ (prog), (sv), (strpos), \
+ RX_ENGINE(prog)->intuit(aTHX_ (prog), (sv), (strpos), \
(strend),(flags),(data))
#define CALLREG_INTUIT_STRING(prog) \
- CALL_FPTR(RX_ENGINE(prog)->checkstr)(aTHX_ (prog))
+ RX_ENGINE(prog)->checkstr(aTHX_ (prog))
#define CALLREGFREE(prog) \
Perl_pregfree(aTHX_ (prog))
#define CALLREGFREE_PVT(prog) \
- if(prog) CALL_FPTR(RX_ENGINE(prog)->free)(aTHX_ (prog))
+ if(prog) RX_ENGINE(prog)->free(aTHX_ (prog))
#define CALLREG_NUMBUF_FETCH(rx,paren,usesv) \
- CALL_FPTR(RX_ENGINE(rx)->numbered_buff_FETCH)(aTHX_ (rx),(paren),(usesv))
+ RX_ENGINE(rx)->numbered_buff_FETCH(aTHX_ (rx),(paren),(usesv))
#define CALLREG_NUMBUF_STORE(rx,paren,value) \
- CALL_FPTR(RX_ENGINE(rx)->numbered_buff_STORE)(aTHX_ (rx),(paren),(value))
+ RX_ENGINE(rx)->numbered_buff_STORE(aTHX_ (rx),(paren),(value))
#define CALLREG_NUMBUF_LENGTH(rx,sv,paren) \
- CALL_FPTR(RX_ENGINE(rx)->numbered_buff_LENGTH)(aTHX_ (rx),(sv),(paren))
+ RX_ENGINE(rx)->numbered_buff_LENGTH(aTHX_ (rx),(sv),(paren))
#define CALLREG_NAMED_BUFF_FETCH(rx, key, flags) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff)(aTHX_ (rx), (key), NULL, ((flags) | RXapif_FETCH))
+ RX_ENGINE(rx)->named_buff(aTHX_ (rx), (key), NULL, ((flags) | RXapif_FETCH))
#define CALLREG_NAMED_BUFF_STORE(rx, key, value, flags) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff)(aTHX_ (rx), (key), (value), ((flags) | RXapif_STORE))
+ RX_ENGINE(rx)->named_buff(aTHX_ (rx), (key), (value), ((flags) | RXapif_STORE))
#define CALLREG_NAMED_BUFF_DELETE(rx, key, flags) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff)(aTHX_ (rx),(key), NULL, ((flags) | RXapif_DELETE))
+ RX_ENGINE(rx)->named_buff(aTHX_ (rx),(key), NULL, ((flags) | RXapif_DELETE))
#define CALLREG_NAMED_BUFF_CLEAR(rx, flags) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff)(aTHX_ (rx), NULL, NULL, ((flags) | RXapif_CLEAR))
+ RX_ENGINE(rx)->named_buff(aTHX_ (rx), NULL, NULL, ((flags) | RXapif_CLEAR))
#define CALLREG_NAMED_BUFF_EXISTS(rx, key, flags) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff)(aTHX_ (rx), (key), NULL, ((flags) | RXapif_EXISTS))
+ RX_ENGINE(rx)->named_buff(aTHX_ (rx), (key), NULL, ((flags) | RXapif_EXISTS))
#define CALLREG_NAMED_BUFF_FIRSTKEY(rx, flags) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff_iter)(aTHX_ (rx), NULL, ((flags) | RXapif_FIRSTKEY))
+ RX_ENGINE(rx)->named_buff_iter(aTHX_ (rx), NULL, ((flags) | RXapif_FIRSTKEY))
#define CALLREG_NAMED_BUFF_NEXTKEY(rx, lastkey, flags) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff_iter)(aTHX_ (rx), (lastkey), ((flags) | RXapif_NEXTKEY))
+ RX_ENGINE(rx)->named_buff_iter(aTHX_ (rx), (lastkey), ((flags) | RXapif_NEXTKEY))
#define CALLREG_NAMED_BUFF_SCALAR(rx, flags) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff)(aTHX_ (rx), NULL, NULL, ((flags) | RXapif_SCALAR))
+ RX_ENGINE(rx)->named_buff(aTHX_ (rx), NULL, NULL, ((flags) | RXapif_SCALAR))
#define CALLREG_NAMED_BUFF_COUNT(rx) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff)(aTHX_ (rx), NULL, NULL, RXapif_REGNAMES_COUNT)
+ RX_ENGINE(rx)->named_buff(aTHX_ (rx), NULL, NULL, RXapif_REGNAMES_COUNT)
#define CALLREG_NAMED_BUFF_ALL(rx, flags) \
- CALL_FPTR(RX_ENGINE(rx)->named_buff)(aTHX_ (rx), NULL, NULL, flags)
+ RX_ENGINE(rx)->named_buff(aTHX_ (rx), NULL, NULL, flags)
#define CALLREG_PACKAGE(rx) \
- CALL_FPTR(RX_ENGINE(rx)->qr_package)(aTHX_ (rx))
+ RX_ENGINE(rx)->qr_package(aTHX_ (rx))
#if defined(USE_ITHREADS)
#define CALLREGDUPE(prog,param) \
Perl_re_dup(aTHX_ (prog),(param))
#define CALLREGDUPE_PVT(prog,param) \
- (prog ? CALL_FPTR(RX_ENGINE(prog)->dupe)(aTHX_ (prog),(param)) \
+ (prog ? RX_ENGINE(prog)->dupe(aTHX_ (prog),(param)) \
: (REGEXP *)NULL)
#endif
@@ -521,6 +541,15 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER));
#define TAINT_ENV() if (PL_tainting) { taint_env(); }
#define TAINT_PROPER(s) if (PL_tainting) { taint_proper(NULL, s); }
+/* flags used internally only within pp_subst and pp_substcont */
+#ifdef PERL_CORE
+# define SUBST_TAINT_STR 1 /* string tainted */
+# define SUBST_TAINT_PAT 2 /* pattern tainted */
+# define SUBST_TAINT_REPL 4 /* replacement tainted */
+# define SUBST_TAINT_RETAINT 8 /* use re'taint' in scope */
+# define SUBST_TAINT_BOOLRET 16 /* return is boolean (don't taint) */
+#endif
+
/* XXX All process group stuff is handled in pp_sys.c. Should these
defines move there? If so, I could simplify this a lot. --AD 9/96.
*/
@@ -571,7 +600,7 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER));
# endif
#endif
-/* HP-UX 10.X CMA (Common Multithreaded Architecure) insists that
+/* HP-UX 10.X CMA (Common Multithreaded Architecture) insists that
pthread.h must be included before all other header files.
*/
#if defined(USE_ITHREADS) && defined(PTHREAD_H_FIRST) && defined(I_PTHREAD)
@@ -967,6 +996,14 @@ EXTERN_C int usleep(unsigned int);
#define PERL_STRLEN_ROUNDUP_QUANTUM Size_t_size
#endif
+/* sv_grow() will expand strings by at least a certain percentage of
+ the previously *used* length to avoid excessive calls to realloc().
+ The default is 25% of the current length.
+*/
+#ifndef PERL_STRLEN_EXPAND_SHIFT
+# define PERL_STRLEN_EXPAND_SHIFT 2
+#endif
+
#if defined(STANDARD_C) && defined(I_STDDEF)
# include <stddef.h>
# define STRUCT_OFFSET(s,m) offsetof(s,m)
@@ -2198,7 +2235,7 @@ int isnan(double d);
# include <limits.h>
#endif
/* Included values.h above if necessary; still including limits.h down here,
- * despite doing above, because math.h might have overriden... XXX - Allen */
+ * despite doing above, because math.h might have overridden... XXX - Allen */
/*
* Try to figure out max and min values for the integral types. THE CORRECT
@@ -2359,10 +2396,6 @@ int isnan(double d);
#endif
-#ifdef MYMALLOC
-# include "malloc_ctl.h"
-#endif
-
struct RExC_state_t;
struct _reg_trie_data;
@@ -2385,6 +2418,9 @@ typedef struct padop PADOP;
typedef struct pvop PVOP;
typedef struct loop LOOP;
+typedef struct block_hooks BHK;
+typedef struct custom_op XOP;
+
typedef struct interpreter PerlInterpreter;
/* Amdahl's <ksync.h> has struct sv */
@@ -2398,7 +2434,6 @@ typedef struct STRUCT_SV SV;
typedef struct av AV;
typedef struct hv HV;
typedef struct cv CV;
-typedef struct regexp ORANGE; /* This is the body structure. */
typedef struct p5rx REGEXP;
typedef struct gp GP;
typedef struct gv GV;
@@ -3094,10 +3129,6 @@ typedef pthread_key_t perl_key;
#define PERL_EXIT_EXPECTED 0x01
#define PERL_EXIT_DESTRUCT_END 0x02 /* Run END in perl_destruct */
-#ifndef MEMBER_TO_FPTR
-# define MEMBER_TO_FPTR(name) name
-#endif
-
#ifndef PERL_CORE
/* format to use for version numbers in file/directory names */
/* XXX move to Configure? */
@@ -3154,7 +3185,7 @@ typedef pthread_key_t perl_key;
All that is required is that the perl source does not
use "%-p" or "%-<number>p" or "%<number>p" formats.
These formats will still work in perl code.
- See comments in sv.c for futher details.
+ See comments in sv.c for further details.
Robin Barker 2005-07-14
@@ -3180,7 +3211,7 @@ typedef pthread_key_t perl_key;
#define SVfARG(p) ((void*)(p))
#ifdef PERL_CORE
-/* not used; but needed for backward compatibilty with XS code? - RMB */
+/* not used; but needed for backward compatibility with XS code? - RMB */
# undef VDf
#else
# ifndef VDf
@@ -3189,7 +3220,7 @@ typedef pthread_key_t perl_key;
#endif
#ifdef PERL_CORE
-/* not used; but needed for backward compatibilty with XS code? - RMB */
+/* not used; but needed for backward compatibility with XS code? - RMB */
# undef UVf
#else
# ifndef UVf
@@ -3197,14 +3228,6 @@ typedef pthread_key_t perl_key;
# endif
#endif
-#if !defined(PERL_CORE) && !defined(PERL_NO_SHORT_NAMES)
-# if defined(PERL_IMPLICIT_CONTEXT)
-# define pmflag(a,b) Perl_pmflag(aTHX_ a,b)
-# else
-# define pmflag Perl_pmflag
-# endif
-#endif
-
#ifdef HASATTRIBUTE_DEPRECATED
# define __attribute__deprecated__ __attribute__((deprecated))
#endif
@@ -3332,6 +3355,7 @@ union any {
void* any_ptr;
I32 any_i32;
IV any_iv;
+ UV any_uv;
long any_long;
bool any_bool;
void (*any_dptr) (void*);
@@ -3432,6 +3456,10 @@ struct nexttoken {
#include "warnings.h"
#include "utf8.h"
+/* these would be in doio.h if there was such a file */
+#define my_stat() my_stat_flags(SV_GMAGIC)
+#define my_lstat() my_lstat_flags(SV_GMAGIC)
+
/* defined in sv.c, but also used in [ach]v.c */
#undef _XPV_HEAD
#undef _XPVMG_HEAD
@@ -3453,9 +3481,6 @@ typedef struct magic_state MGS; /* struct magic_state defined in mg.c */
struct scan_data_t; /* Used in S_* functions in regcomp.c */
struct regnode_charclass_class; /* Used in S_* functions in regcomp.c */
-/* Keep next first in this structure, because sv_free_arenas take
- advantage of this to share code between the pte arenas and the SV
- body arenas */
struct ptr_tbl_ent {
struct ptr_tbl_ent* next;
const void* oldval;
@@ -3466,6 +3491,9 @@ struct ptr_tbl {
struct ptr_tbl_ent** tbl_ary;
UV tbl_max;
UV tbl_items;
+ struct ptr_tbl_arena *tbl_arena;
+ struct ptr_tbl_ent *tbl_arena_next;
+ struct ptr_tbl_ent *tbl_arena_end;
};
#if defined(iAPX286) || defined(M_I286) || defined(I80286)
@@ -3679,6 +3707,7 @@ Gid_t getegid (void);
# define DEBUG_B_TEST_ (PL_debug & DEBUG_B_FLAG)
# define DEBUG_Xv_TEST_ (DEBUG_X_TEST_ && DEBUG_v_TEST_)
# define DEBUG_Uv_TEST_ (DEBUG_U_TEST_ && DEBUG_v_TEST_)
+# define DEBUG_Pv_TEST_ (DEBUG_P_TEST_ && DEBUG_v_TEST_)
#ifdef DEBUGGING
@@ -3709,6 +3738,7 @@ Gid_t getegid (void);
# define DEBUG_B_TEST DEBUG_B_TEST_
# define DEBUG_Xv_TEST DEBUG_Xv_TEST_
# define DEBUG_Uv_TEST DEBUG_Uv_TEST_
+# define DEBUG_Pv_TEST DEBUG_Pv_TEST_
# define PERL_DEB(a) a
# define PERL_DEBUG(a) if (PL_debug) a
@@ -3746,6 +3776,7 @@ Gid_t getegid (void);
# define DEBUG_D(a) DEBUG__(DEBUG_D_TEST, a)
# define DEBUG_Xv(a) DEBUG__(DEBUG_Xv_TEST, a)
# define DEBUG_Uv(a) DEBUG__(DEBUG_Uv_TEST, a)
+# define DEBUG_Pv(a) DEBUG__(DEBUG_Pv_TEST, a)
# define DEBUG_T(a) DEBUG__(DEBUG_T_TEST, a)
# define DEBUG_R(a) DEBUG__(DEBUG_R_TEST, a)
@@ -3785,6 +3816,7 @@ Gid_t getegid (void);
# define DEBUG_B_TEST (0)
# define DEBUG_Xv_TEST (0)
# define DEBUG_Uv_TEST (0)
+# define DEBUG_Pv_TEST (0)
# define PERL_DEB(a)
# define PERL_DEBUG(a)
@@ -3814,12 +3846,15 @@ Gid_t getegid (void);
# define DEBUG_B(a)
# define DEBUG_Xv(a)
# define DEBUG_Uv(a)
+# define DEBUG_Pv(a)
#endif /* DEBUGGING */
#define DEBUG_SCOPE(where) \
- DEBUG_l(WITH_THR(Perl_deb(aTHX_ "%s scope %ld at %s:%d\n", \
- where, (long)PL_scopestack_ix, __FILE__, __LINE__)));
+ DEBUG_l( \
+ Perl_deb(aTHX_ "%s scope %ld (savestack=%ld) at %s:%d\n", \
+ where, (long)PL_scopestack_ix, (long)PL_savestack_ix, \
+ __FILE__, __LINE__));
@@ -3876,6 +3911,7 @@ Gid_t getegid (void);
#define PERL_MAGIC_rhash '%' /* extra data for restricted hashes */
#define PERL_MAGIC_arylen_p '@' /* to move arylen out of XPVAV */
#define PERL_MAGIC_ext '~' /* Available for use by extensions */
+#define PERL_MAGIC_checkcall ']' /* inlining/mutation of call to this CV */
#if defined(DEBUGGING) && defined(I_ASSERT)
# include <assert.h>
@@ -4189,14 +4225,12 @@ struct perl_memory_debug_header {
# endif
#endif
-typedef int (CPERLscope(*runops_proc_t)) (pTHX);
-typedef void (CPERLscope(*share_proc_t)) (pTHX_ SV *sv);
-typedef int (CPERLscope(*thrhook_proc_t)) (pTHX);
-typedef OP* (CPERLscope(*PPADDR_t)[]) (pTHX);
-typedef bool (CPERLscope(*destroyable_proc_t)) (pTHX_ SV *sv);
-
-/* _ (for $_) must be first in the following list (DEFSV requires it) */
-#define THREADSV_NAMES "_123456789&`'+/.,\\\";^-%=|~:\001\005!@"
+typedef int (*runops_proc_t)(pTHX);
+typedef void (*share_proc_t) (pTHX_ SV *sv);
+typedef int (*thrhook_proc_t) (pTHX);
+typedef OP* (*PPADDR_t[]) (pTHX);
+typedef bool (*destroyable_proc_t) (pTHX_ SV *sv);
+typedef void (*despatch_signals_proc_t) (pTHX);
/* NeXT has problems with crt0.o globals */
#if defined(__DYNAMIC__) && \
@@ -4292,45 +4326,16 @@ EXTCONST char* const PL_sig_name[];
EXTCONST int PL_sig_num[];
#endif
-/* fast conversion and case folding tables */
+/* fast conversion and case folding tables. The folding tables complement the
+ * fold, so that 'a' maps to 'A' and 'A' maps to 'a', ignoring more complicated
+ * folds such as outside the range or to multiple characters. */
#ifdef DOINIT
-#ifdef EBCDIC
-EXTCONST unsigned char PL_fold[] = { /* fast EBCDIC case folding table */
- 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 138, 139, 140, 141, 142, 143,
- 144, 'J', 'K', 'L', 'M', 'N', 'O', 'P',
- 'Q', 'R', 154, 155, 156, 157, 158, 159,
- 160, 161, 'S', 'T', 'U', 'V', 'W', 'X',
- 'Y', 'Z', 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 202, 203, 204, 205, 206, 207,
- 208, 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 218, 219, 220, 221, 222, 223,
- 224, 225, 's', 't', 'u', 'v', 'w', 'x',
- 'y', 'z', 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 255
-};
-#else /* ascii rather than ebcdic */
+#ifndef EBCDIC
+
+/* The EBCDIC fold table depends on the code page, and hence is found in
+ * utfebcdic.h */
+
EXTCONST unsigned char PL_fold[] = {
0, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15,
@@ -4365,6 +4370,49 @@ EXTCONST unsigned char PL_fold[] = {
240, 241, 242, 243, 244, 245, 246, 247,
248, 249, 250, 251, 252, 253, 254, 255
};
+EXTCONST unsigned char PL_fold_latin1[] = {
+ /* Full latin1 complement folding, except for three problematic code points:
+ * Micro sign (181 = 0xB5) and y with diearesis (255 = 0xFF) have their
+ * fold complements outside the Latin1 range, so can't match something
+ * that isn't in utf8.
+ * German lower case sharp s (223 = 0xDF) folds to two characters, 'ss',
+ * not one, so can't be represented in this table.
+ *
+ * All have to be specially handled */
+ 0, 1, 2, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
+ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
+ 'x', 'y', 'z', 91, 92, 93, 94, 95,
+ 96, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
+ 'X', 'Y', 'Z', 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181 /*micro */, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191,
+ 192+32, 193+32, 194+32, 195+32, 196+32, 197+32, 198+32, 199+32,
+ 200+32, 201+32, 202+32, 203+32, 204+32, 205+32, 206+32, 207+32,
+ 208+32, 209+32, 210+32, 211+32, 212+32, 213+32, 214+32, 215,
+ 216+32, 217+32, 218+32, 219+32, 220+32, 221+32, 222+32, 223 /* ss */,
+ 224-32, 225-32, 226-32, 227-32, 228-32, 229-32, 230-32, 231-32,
+ 232-32, 233-32, 234-32, 235-32, 236-32, 237-32, 238-32, 239-32,
+ 240-32, 241-32, 242-32, 243-32, 244-32, 245-32, 246-32, 247,
+ 248-32, 249-32, 250-32, 251-32, 252-32, 253-32, 254-32,
+ 255 /* y with diaeresis */
+};
#endif /* !EBCDIC, but still in DOINIT */
/* If these tables are accessed through ebcdic, the access will be converted to
@@ -4442,6 +4490,7 @@ EXTCONST unsigned char PL_mod_latin1_uc[] = {
};
#else /* ! DOINIT */
EXTCONST unsigned char PL_fold[];
+EXTCONST unsigned char PL_fold_latin1[];
EXTCONST unsigned char PL_mod_latin1_uc[];
EXTCONST unsigned char PL_latin1_lc[];
#endif
@@ -4677,18 +4726,51 @@ EXTCONST char PL_bincompat_options[] =
# endif
# ifdef VMS_DO_SOCKETS
" VMS_DO_SOCKETS"
-# ifdef DECCRTL_SOCKETS
- " DECCRTL_SOCKETS"
-# endif
# endif
# ifdef VMS_WE_ARE_CASE_SENSITIVE
" VMS_SYMBOL_CASE_AS_IS"
# endif
+# ifdef VMS_SHORTEN_LONG_SYMBOLS
+ " VMS_SHORTEN_LONG_SYMBOLS"
+# endif
"";
#else
EXTCONST char PL_bincompat_options[];
#endif
+/* The interpreter phases. If these ever change, PL_phase_names right below will
+ * need to be updated accordingly. */
+enum perl_phase {
+ PERL_PHASE_CONSTRUCT = 0,
+ PERL_PHASE_START = 1,
+ PERL_PHASE_CHECK = 2,
+ PERL_PHASE_INIT = 3,
+ PERL_PHASE_RUN = 4,
+ PERL_PHASE_END = 5,
+ PERL_PHASE_DESTRUCT = 6
+};
+
+#ifdef DOINIT
+EXTCONST char *const PL_phase_names[] = {
+ "CONSTRUCT",
+ "START",
+ "CHECK",
+ "INIT",
+ "RUN",
+ "END",
+ "DESTRUCT"
+};
+#else
+EXTCONST char *const PL_phase_names[];
+#endif
+
+#ifndef PERL_CORE
+/* Do not use this macro. It only exists for extensions that rely on PL_dirty
+ * instead of using the newer PL_phase, which provides everything PL_dirty
+ * provided, and more. */
+# define PL_dirty (PL_phase == PERL_PHASE_DESTRUCT)
+#endif /* !PERL_CORE */
+
END_EXTERN_C
/*****************************************************************************/
@@ -4793,6 +4875,8 @@ enum { /* pass one of these to get_vtbl */
#define HINT_NO_AMAGIC 0x01000000 /* overloading pragma */
+#define HINT_RE_FLAGS 0x02000000 /* re '/xism' pragma */
+
/* The following are stored in $^H{sort}, not in PL_hints */
#define HINT_SORT_SORT_BITS 0x000000FF /* allow 256 different ones */
#define HINT_SORT_QUICKSORT 0x00000001
@@ -4819,18 +4903,19 @@ struct perl_debug_pad {
PERL_DEBUG_PAD(i))
/* Enable variables which are pointers to functions */
-typedef void (CPERLscope(*peep_t))(pTHX_ OP* o);
-typedef regexp*(CPERLscope(*regcomp_t)) (pTHX_ char* exp, char* xend, PMOP* pm);
-typedef I32 (CPERLscope(*regexec_t)) (pTHX_ regexp* prog, char* stringarg,
+typedef void (*peep_t)(pTHX_ OP* o);
+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);
-typedef char* (CPERLscope(*re_intuit_start_t)) (pTHX_ regexp *prog, SV *sv,
+typedef char* (*re_intuit_start_t) (pTHX_ regexp *prog, SV *sv,
char *strpos, char *strend,
U32 flags,
re_scream_pos_data *d);
-typedef SV* (CPERLscope(*re_intuit_string_t)) (pTHX_ regexp *prog);
-typedef void (CPERLscope(*regfree_t)) (pTHX_ struct regexp* r);
-typedef regexp*(CPERLscope(*regdupe_t)) (pTHX_ const regexp* r, CLONE_PARAMS *param);
+typedef SV* (*re_intuit_string_t) (pTHX_ regexp *prog);
+typedef void (*regfree_t) (pTHX_ struct regexp* r);
+typedef regexp* (*regdupe_t) (pTHX_ const regexp* r, CLONE_PARAMS *param);
+typedef I32 (*re_fold_t)(const char *, char const *, I32);
typedef void (*DESTRUCTORFUNC_NOCONTEXT_t) (void*);
typedef void (*DESTRUCTORFUNC_t) (pTHX_ void*);
@@ -4847,10 +4932,11 @@ typedef void (*XSUBADDR_t) (pTHX_ CV *);
#define PERLVARIC(var,type,init) type var;
#define PERLVARISC(var,init) const char var[sizeof(init)];
-typedef OP* (CPERLscope(*Perl_ppaddr_t))(pTHX);
-typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
-typedef void(CPERLscope(*Perl_ophook_t))(pTHX_ OP*);
-typedef int (CPERLscope(*Perl_keyword_plugin_t))(pTHX_ char*, STRLEN, OP**);
+typedef OP* (*Perl_ppaddr_t)(pTHX);
+typedef OP* (*Perl_check_t) (pTHX_ OP*);
+typedef void(*Perl_ophook_t)(pTHX_ OP*);
+typedef int (*Perl_keyword_plugin_t)(pTHX_ char*, STRLEN, OP**);
+typedef void(*Perl_cpeep_t)(pTHX_ OP *, OP *);
#define KEYWORD_PLUGIN_DECLINE 0
#define KEYWORD_PLUGIN_STMT 1
@@ -4880,6 +4966,10 @@ typedef struct exitlistentry {
STRINGIFY(PERL_VERSION) "." \
STRINGIFY(PERL_SUBVERSION)
+#define PERL_API_VERSION_STRING STRINGIFY(PERL_API_REVISION) "." \
+ STRINGIFY(PERL_API_VERSION) "." \
+ STRINGIFY(PERL_API_SUBVERSION)
+
#ifdef PERL_GLOBAL_STRUCT
struct perl_vars {
# include "perlvars.h"
@@ -4943,6 +5033,10 @@ struct tempsym; /* defined in pp_pack.c */
#define PERL_CKDEF(s) PERL_CALLCONV OP *s (pTHX_ OP *o);
#define PERL_PPDEF(s) PERL_CALLCONV OP *s (pTHX);
+#ifdef MYMALLOC
+# include "malloc_ctl.h"
+#endif
+
#include "proto.h"
/* this has structure inits, so it cannot be included before here */
@@ -5030,11 +5124,24 @@ START_EXTERN_C
* not the same beast. ANSI doesn't allow the assignment from one to the other.
* (although most, but not all, compilers are prepared to do it)
*/
+
+/* args are:
+ vtable
+ get
+ set
+ len
+ clear
+ free
+ copy
+ dup
+ local
+*/
+
MGVTBL_SET(
PL_vtbl_sv,
- MEMBER_TO_FPTR(Perl_magic_get),
- MEMBER_TO_FPTR(Perl_magic_set),
- MEMBER_TO_FPTR(Perl_magic_len),
+ Perl_magic_get,
+ Perl_magic_set,
+ Perl_magic_len,
0,
0,
0,
@@ -5045,9 +5152,9 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_env,
0,
- MEMBER_TO_FPTR(Perl_magic_set_all_env),
+ Perl_magic_set_all_env,
0,
- MEMBER_TO_FPTR(Perl_magic_clear_all_env),
+ Perl_magic_clear_all_env,
0,
0,
0,
@@ -5057,9 +5164,9 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_envelem,
0,
- MEMBER_TO_FPTR(Perl_magic_setenv),
+ Perl_magic_setenv,
0,
- MEMBER_TO_FPTR(Perl_magic_clearenv),
+ Perl_magic_clearenv,
0,
0,
0,
@@ -5094,10 +5201,10 @@ MGVTBL_SET(
#else
MGVTBL_SET(
PL_vtbl_sigelem,
- MEMBER_TO_FPTR(Perl_magic_getsig),
- MEMBER_TO_FPTR(Perl_magic_setsig),
+ Perl_magic_getsig,
+ Perl_magic_setsig,
0,
- MEMBER_TO_FPTR(Perl_magic_clearsig),
+ Perl_magic_clearsig,
0,
0,
0,
@@ -5109,8 +5216,8 @@ MGVTBL_SET(
PL_vtbl_pack,
0,
0,
- MEMBER_TO_FPTR(Perl_magic_sizepack),
- MEMBER_TO_FPTR(Perl_magic_wipepack),
+ Perl_magic_sizepack,
+ Perl_magic_wipepack,
0,
0,
0,
@@ -5119,10 +5226,10 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_packelem,
- MEMBER_TO_FPTR(Perl_magic_getpack),
- MEMBER_TO_FPTR(Perl_magic_setpack),
+ Perl_magic_getpack,
+ Perl_magic_setpack,
0,
- MEMBER_TO_FPTR(Perl_magic_clearpack),
+ Perl_magic_clearpack,
0,
0,
0,
@@ -5132,7 +5239,7 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_dbline,
0,
- MEMBER_TO_FPTR(Perl_magic_setdbline),
+ Perl_magic_setdbline,
0,
0,
0,
@@ -5144,9 +5251,9 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_isa,
0,
- MEMBER_TO_FPTR(Perl_magic_setisa),
+ Perl_magic_setisa,
0,
- MEMBER_TO_FPTR(Perl_magic_clearisa),
+ Perl_magic_clearisa,
0,
0,
0,
@@ -5156,7 +5263,7 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_isaelem,
0,
- MEMBER_TO_FPTR(Perl_magic_setisa),
+ Perl_magic_setisa,
0,
0,
0,
@@ -5167,8 +5274,8 @@ MGVTBL_SET(
MGVTBL_SET_CONST_MAGIC_GET(
PL_vtbl_arylen,
- MEMBER_TO_FPTR(Perl_magic_getarylen),
- MEMBER_TO_FPTR(Perl_magic_setarylen),
+ Perl_magic_getarylen,
+ Perl_magic_setarylen,
0,
0,
0,
@@ -5183,7 +5290,7 @@ MGVTBL_SET(
0,
0,
0,
- MEMBER_TO_FPTR(Perl_magic_freearylen_p),
+ Perl_magic_freearylen_p,
0,
0,
0
@@ -5192,7 +5299,7 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_mglob,
0,
- MEMBER_TO_FPTR(Perl_magic_setmglob),
+ Perl_magic_setmglob,
0,
0,
0,
@@ -5203,8 +5310,8 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_nkeys,
- MEMBER_TO_FPTR(Perl_magic_getnkeys),
- MEMBER_TO_FPTR(Perl_magic_setnkeys),
+ Perl_magic_getnkeys,
+ Perl_magic_setnkeys,
0,
0,
0,
@@ -5215,8 +5322,8 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_taint,
- MEMBER_TO_FPTR(Perl_magic_gettaint),
- MEMBER_TO_FPTR(Perl_magic_settaint),
+ Perl_magic_gettaint,
+ Perl_magic_settaint,
0,
0,
0,
@@ -5227,8 +5334,8 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_substr,
- MEMBER_TO_FPTR(Perl_magic_getsubstr),
- MEMBER_TO_FPTR(Perl_magic_setsubstr),
+ Perl_magic_getsubstr,
+ Perl_magic_setsubstr,
0,
0,
0,
@@ -5239,8 +5346,8 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_vec,
- MEMBER_TO_FPTR(Perl_magic_getvec),
- MEMBER_TO_FPTR(Perl_magic_setvec),
+ Perl_magic_getvec,
+ Perl_magic_setvec,
0,
0,
0,
@@ -5251,8 +5358,8 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_pos,
- MEMBER_TO_FPTR(Perl_magic_getpos),
- MEMBER_TO_FPTR(Perl_magic_setpos),
+ Perl_magic_getpos,
+ Perl_magic_setpos,
0,
0,
0,
@@ -5264,7 +5371,7 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_bm,
0,
- MEMBER_TO_FPTR(Perl_magic_setregexp),
+ Perl_magic_setregexp,
0,
0,
0,
@@ -5276,7 +5383,7 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_fm,
0,
- MEMBER_TO_FPTR(Perl_magic_setregexp),
+ Perl_magic_setregexp,
0,
0,
0,
@@ -5287,8 +5394,8 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_uvar,
- MEMBER_TO_FPTR(Perl_magic_getuvar),
- MEMBER_TO_FPTR(Perl_magic_setuvar),
+ Perl_magic_getuvar,
+ Perl_magic_setuvar,
0,
0,
0,
@@ -5299,8 +5406,8 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_defelem,
- MEMBER_TO_FPTR(Perl_magic_getdefelem),
- MEMBER_TO_FPTR(Perl_magic_setdefelem),
+ Perl_magic_getdefelem,
+ Perl_magic_setdefelem,
0,
0,
0,
@@ -5312,7 +5419,7 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_regexp,
0,
- MEMBER_TO_FPTR(Perl_magic_setregexp),
+ Perl_magic_setregexp,
0,
0,
0,
@@ -5325,7 +5432,7 @@ MGVTBL_SET(
PL_vtbl_regdata,
0,
0,
- MEMBER_TO_FPTR(Perl_magic_regdata_cnt),
+ Perl_magic_regdata_cnt,
0,
0,
0,
@@ -5335,8 +5442,8 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_regdatum,
- MEMBER_TO_FPTR(Perl_magic_regdatum_get),
- MEMBER_TO_FPTR(Perl_magic_regdatum_set),
+ Perl_magic_regdatum_get,
+ Perl_magic_regdatum_set,
0,
0,
0,
@@ -5348,10 +5455,10 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_amagic,
0,
- MEMBER_TO_FPTR(Perl_magic_setamagic),
+ Perl_magic_setamagic,
0,
0,
- MEMBER_TO_FPTR(Perl_magic_setamagic),
+ Perl_magic_setamagic,
0,
0,
0
@@ -5360,10 +5467,10 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_amagicelem,
0,
- MEMBER_TO_FPTR(Perl_magic_setamagic),
+ Perl_magic_setamagic,
0,
0,
- MEMBER_TO_FPTR(Perl_magic_setamagic),
+ Perl_magic_setamagic,
0,
0,
0
@@ -5375,7 +5482,7 @@ MGVTBL_SET(
0,
0,
0,
- MEMBER_TO_FPTR(Perl_magic_killbackrefs),
+ Perl_magic_killbackrefs,
0,
0,
0
@@ -5387,7 +5494,7 @@ MGVTBL_SET(
0,
0,
0,
- MEMBER_TO_FPTR(Perl_magic_freeovrld),
+ Perl_magic_freeovrld,
0,
0,
0
@@ -5396,7 +5503,7 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_utf8,
0,
- MEMBER_TO_FPTR(Perl_magic_setutf8),
+ Perl_magic_setutf8,
0,
0,
0,
@@ -5408,7 +5515,7 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_collxfrm,
0,
- MEMBER_TO_FPTR(Perl_magic_setcollxfrm),
+ Perl_magic_setcollxfrm,
0,
0,
0,
@@ -5421,9 +5528,9 @@ MGVTBL_SET(
MGVTBL_SET(
PL_vtbl_hintselem,
0,
- MEMBER_TO_FPTR(Perl_magic_sethint),
+ Perl_magic_sethint,
0,
- MEMBER_TO_FPTR(Perl_magic_clearhint),
+ Perl_magic_clearhint,
0,
0,
0,
@@ -5435,7 +5542,7 @@ MGVTBL_SET(
0,
0,
0,
- MEMBER_TO_FPTR(Perl_magic_clearhints),
+ Perl_magic_clearhints,
0,
0,
0,
@@ -5525,7 +5632,7 @@ typedef struct am_table_short AMTS;
#define PERLDBf_NAMEEVAL 0x100 /* Informative names for evals */
#define PERLDBf_NAMEANON 0x200 /* Informative names for anon subs */
#define PERLDBf_SAVESRC 0x400 /* Save source lines into @{"_<$filename"} */
-#define PERLDBf_SAVESRC_NOSUBS 0x800 /* Including evals that generate no subrouties */
+#define PERLDBf_SAVESRC_NOSUBS 0x800 /* Including evals that generate no subroutines */
#define PERLDBf_SAVESRC_INVALID 0x1000 /* Save source that did not compile */
#define PERLDB_SUB (PL_perldb && (PL_perldb & PERLDBf_SUB))
@@ -5682,7 +5789,7 @@ typedef struct am_table_short AMTS;
#ifndef PERL_MICRO
# ifndef PERL_ASYNC_CHECK
-# define PERL_ASYNC_CHECK() if (PL_sig_pending) despatch_signals()
+# define PERL_ASYNC_CHECK() if (PL_sig_pending) PL_signalhook(aTHX)
# endif
#endif
@@ -5756,98 +5863,72 @@ typedef struct am_table_short AMTS;
#if defined(PERL_IMPLICIT_CONTEXT)
-#ifdef PERL_GLOBAL_STRUCT_PRIVATE
-
-/* This must appear in all extensions that define a my_cxt_t structure,
+/* START_MY_CXT must appear in all extensions that define a my_cxt_t structure,
* right after the definition (i.e. at file scope). The non-threads
* case below uses it to declare the data as static. */
-#define START_MY_CXT
-#define MY_CXT_INDEX Perl_my_cxt_index(aTHX_ MY_CXT_KEY)
+# ifdef PERL_GLOBAL_STRUCT_PRIVATE
+# define START_MY_CXT
+# define MY_CXT_INDEX Perl_my_cxt_index(aTHX_ MY_CXT_KEY)
+# define MY_CXT_INIT_ARG MY_CXT_KEY
+# else
+# define START_MY_CXT static int my_cxt_index = -1;
+# define MY_CXT_INDEX my_cxt_index
+# define MY_CXT_INIT_ARG &my_cxt_index
+# endif /* #ifdef PERL_GLOBAL_STRUCT_PRIVATE */
/* Creates and zeroes the per-interpreter data.
* (We allocate my_cxtp in a Perl SV so that it will be released when
* the interpreter goes away.) */
-#define MY_CXT_INIT \
+# define MY_CXT_INIT \
my_cxt_t *my_cxtp = \
- (my_cxt_t*)Perl_my_cxt_init(aTHX_ MY_CXT_KEY, sizeof(my_cxt_t))
-#define MY_CXT_INIT_INTERP(my_perl) \
+ (my_cxt_t*)Perl_my_cxt_init(aTHX_ MY_CXT_INIT_ARG, sizeof(my_cxt_t))
+# define MY_CXT_INIT_INTERP(my_perl) \
my_cxt_t *my_cxtp = \
- (my_cxt_t*)Perl_my_cxt_init(my_perl, MY_CXT_KEY, sizeof(my_cxt_t))
+ (my_cxt_t*)Perl_my_cxt_init(my_perl, MY_CXT_INIT_ARG, sizeof(my_cxt_t))
/* This declaration should be used within all functions that use the
* interpreter-local data. */
-#define dMY_CXT \
+# define dMY_CXT \
my_cxt_t *my_cxtp = (my_cxt_t *)PL_my_cxt_list[MY_CXT_INDEX]
-#define dMY_CXT_INTERP(my_perl) \
+# define dMY_CXT_INTERP(my_perl) \
my_cxt_t *my_cxtp = (my_cxt_t *)(my_perl)->Imy_cxt_list[MY_CXT_INDEX]
/* Clones the per-interpreter data. */
-#define MY_CXT_CLONE \
+# define MY_CXT_CLONE \
my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
Copy(PL_my_cxt_list[MY_CXT_INDEX], my_cxtp, 1, my_cxt_t);\
PL_my_cxt_list[MY_CXT_INDEX] = my_cxtp \
-#else /* #ifdef PERL_GLOBAL_STRUCT_PRIVATE */
-
-/* This must appear in all extensions that define a my_cxt_t structure,
- * right after the definition (i.e. at file scope). The non-threads
- * case below uses it to declare the data as static. */
-#define START_MY_CXT static int my_cxt_index = -1;
-
-/* This declaration should be used within all functions that use the
- * interpreter-local data. */
-#define dMY_CXT \
- my_cxt_t *my_cxtp = (my_cxt_t *)PL_my_cxt_list[my_cxt_index]
-#define dMY_CXT_INTERP(my_perl) \
- my_cxt_t *my_cxtp = (my_cxt_t *)(my_perl)->Imy_cxt_list[my_cxt_index]
-
-/* Creates and zeroes the per-interpreter data.
- * (We allocate my_cxtp in a Perl SV so that it will be released when
- * the interpreter goes away.) */
-#define MY_CXT_INIT \
- my_cxt_t *my_cxtp = \
- (my_cxt_t*)Perl_my_cxt_init(aTHX_ &my_cxt_index, sizeof(my_cxt_t))
-#define MY_CXT_INIT_INTERP(my_perl) \
- my_cxt_t *my_cxtp = \
- (my_cxt_t*)Perl_my_cxt_init(my_perl, &my_cxt_index, sizeof(my_cxt_t))
-
-/* Clones the per-interpreter data. */
-#define MY_CXT_CLONE \
- my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
- Copy(PL_my_cxt_list[my_cxt_index], my_cxtp, 1, my_cxt_t);\
- PL_my_cxt_list[my_cxt_index] = my_cxtp \
-
-#endif /* #ifdef PERL_GLOBAL_STRUCT_PRIVATE */
/* This macro must be used to access members of the my_cxt_t structure.
* e.g. MYCXT.some_data */
-#define MY_CXT (*my_cxtp)
+# define MY_CXT (*my_cxtp)
/* Judicious use of these macros can reduce the number of times dMY_CXT
* is used. Use is similar to pTHX, aTHX etc. */
-#define pMY_CXT my_cxt_t *my_cxtp
-#define pMY_CXT_ pMY_CXT,
-#define _pMY_CXT ,pMY_CXT
-#define aMY_CXT my_cxtp
-#define aMY_CXT_ aMY_CXT,
-#define _aMY_CXT ,aMY_CXT
+# define pMY_CXT my_cxt_t *my_cxtp
+# define pMY_CXT_ pMY_CXT,
+# define _pMY_CXT ,pMY_CXT
+# define aMY_CXT my_cxtp
+# define aMY_CXT_ aMY_CXT,
+# define _aMY_CXT ,aMY_CXT
#else /* PERL_IMPLICIT_CONTEXT */
-#define START_MY_CXT static my_cxt_t my_cxt;
-#define dMY_CXT_SV dNOOP
-#define dMY_CXT dNOOP
-#define dMY_CXT_INTERP(my_perl) dNOOP
-#define MY_CXT_INIT NOOP
-#define MY_CXT_CLONE NOOP
-#define MY_CXT my_cxt
-
-#define pMY_CXT void
-#define pMY_CXT_
-#define _pMY_CXT
-#define aMY_CXT
-#define aMY_CXT_
-#define _aMY_CXT
+# define START_MY_CXT static my_cxt_t my_cxt;
+# define dMY_CXT_SV dNOOP
+# define dMY_CXT dNOOP
+# define dMY_CXT_INTERP(my_perl) dNOOP
+# define MY_CXT_INIT NOOP
+# define MY_CXT_CLONE NOOP
+# define MY_CXT my_cxt
+
+# define pMY_CXT void
+# define pMY_CXT_
+# define _pMY_CXT
+# define aMY_CXT
+# define aMY_CXT_
+# define _aMY_CXT
#endif /* !defined(PERL_IMPLICIT_CONTEXT) */
@@ -6013,36 +6094,6 @@ extern void moncontrol(int);
#define PERL_SIGNALS_UNSAFE_FLAG 0x0001
-/* From sigaction(2) (FreeBSD man page):
- * | Signal routines normally execute with the signal that
- * | caused their invocation blocked, but other signals may
- * | yet occur.
- * Emulation of this behavior (from within Perl) is enabled
- * by defining PERL_BLOCK_SIGNALS.
- */
-#define PERL_BLOCK_SIGNALS
-
-#if defined(HAS_SIGPROCMASK) && defined(PERL_BLOCK_SIGNALS)
-# define PERL_BLOCKSIG_ADD(set,sig) \
- sigset_t set; sigemptyset(&(set)); sigaddset(&(set), sig)
-# define PERL_BLOCKSIG_BLOCK(set) \
- sigprocmask(SIG_BLOCK, &(set), NULL)
-# define PERL_BLOCKSIG_UNBLOCK(set) \
- sigprocmask(SIG_UNBLOCK, &(set), NULL)
-#endif /* HAS_SIGPROCMASK && PERL_BLOCK_SIGNALS */
-
-/* How about the old style of sigblock()? */
-
-#ifndef PERL_BLOCKSIG_ADD
-# define PERL_BLOCKSIG_ADD(set, sig) NOOP
-#endif
-#ifndef PERL_BLOCKSIG_BLOCK
-# define PERL_BLOCKSIG_BLOCK(set) NOOP
-#endif
-#ifndef PERL_BLOCKSIG_UNBLOCK
-# define PERL_BLOCKSIG_UNBLOCK(set) NOOP
-#endif
-
/* Use instead of abs() since abs() forces its argument to be an int,
* but also beware since this evaluates its argument twice, so no x++. */
#define PERL_ABS(x) ((x) < 0 ? -(x) : (x))
@@ -6083,6 +6134,7 @@ extern void moncontrol(int);
#define PERL_PV_ESCAPE_UNI 0x0100
#define PERL_PV_ESCAPE_UNI_DETECT 0x0200
+#define PERL_PV_ESCAPE_NONASCII 0x0400
#define PERL_PV_ESCAPE_ALL 0x1000
#define PERL_PV_ESCAPE_NOBACKSLASH 0x2000
@@ -6093,7 +6145,15 @@ extern void moncontrol(int);
/* used by pv_display in dump.c*/
#define PERL_PV_PRETTY_DUMP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_QUOTE
-#define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE
+#define PERL_PV_PRETTY_REGPROP PERL_PV_PRETTY_ELLIPSES|PERL_PV_PRETTY_LTGT|PERL_PV_ESCAPE_RE|PERL_PV_ESCAPE_NONASCII
+
+#ifdef PERL_CORE
+# define FEATURE_IS_ENABLED(name) \
+ ((0 != (PL_hints & HINT_LOCALIZE_HH)) \
+ && Perl_feature_is_enabled(aTHX_ STR_WITH_LEN(name)))
+/* The longest string we pass in. */
+# define MAX_FEATURE_LEN (sizeof("unicode_strings")-1)
+#endif
/*
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlapi.h b/Master/tlpkg/tlperl/lib/CORE/perlapi.h
index 54ddab03108..d7d55d6d97e 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlapi.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlapi.h
@@ -1,16 +1,16 @@
-/* -*- buffer-read-only: t -*-
+/* -*- buffer-read-only: t -*-
*
* perlapi.h
*
- * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- * 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+ * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by embed.pl from data in embed.fnc, embed.pl,
- * pp.sym, intrpvar.h, and perlvars.h.
+ * This file is built by regen/embed.pl from data in embed.fnc,
+ * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
* Any changes made here will be lost!
*
* Edit those files and run 'make regen_headers' to effect changes.
@@ -20,7 +20,7 @@
#ifndef __perlapi_h__
#define __perlapi_h__
-#if defined (MULTIPLICITY)
+#if defined (MULTIPLICITY) && defined (PERL_GLOBAL_STRUCT)
START_EXTERN_C
@@ -37,7 +37,6 @@ START_EXTERN_C
#define PERLVARISC(v,i) typedef const char PL_##v##_t[sizeof(i)]; \
EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX);
-#include "intrpvar.h"
#include "perlvars.h"
#undef PERLVAR
@@ -46,20 +45,11 @@ START_EXTERN_C
#undef PERLVARIC
#undef PERLVARISC
-#ifndef PERL_GLOBAL_STRUCT
-EXTERN_C Perl_ppaddr_t** Perl_Gppaddr_ptr(pTHX);
-EXTERN_C Perl_check_t** Perl_Gcheck_ptr(pTHX);
-EXTERN_C unsigned char** Perl_Gfold_locale_ptr(pTHX);
-#define Perl_ppaddr_ptr Perl_Gppaddr_ptr
-#define Perl_check_ptr Perl_Gcheck_ptr
-#define Perl_fold_locale_ptr Perl_Gfold_locale_ptr
-#endif
-
END_EXTERN_C
#if defined(PERL_CORE)
-/* accessor functions for Perl variables (provide binary compatibility) */
+/* accessor functions for Perl "global" variables */
/* these need to be mentioned here, or most linkers won't put them in
the perl executable */
@@ -95,7 +85,6 @@ EXTCONST void * const PL_force_link_funcs[] = {
#pragma message disable (nonstandcast)
#endif
-#include "intrpvar.h"
#include "perlvars.h"
#if defined(__DECC) && defined(__osf__)
@@ -116,656 +105,14 @@ END_EXTERN_C
#else /* !PERL_CORE */
-#undef PL_Argv
-#define PL_Argv (*Perl_IArgv_ptr(aTHX))
-#undef PL_Cmd
-#define PL_Cmd (*Perl_ICmd_ptr(aTHX))
-#undef PL_DBcv
-#define PL_DBcv (*Perl_IDBcv_ptr(aTHX))
-#undef PL_DBgv
-#define PL_DBgv (*Perl_IDBgv_ptr(aTHX))
-#undef PL_DBline
-#define PL_DBline (*Perl_IDBline_ptr(aTHX))
-#undef PL_DBsignal
-#define PL_DBsignal (*Perl_IDBsignal_ptr(aTHX))
-#undef PL_DBsingle
-#define PL_DBsingle (*Perl_IDBsingle_ptr(aTHX))
-#undef PL_DBsub
-#define PL_DBsub (*Perl_IDBsub_ptr(aTHX))
-#undef PL_DBtrace
-#define PL_DBtrace (*Perl_IDBtrace_ptr(aTHX))
-#undef PL_Dir
-#define PL_Dir (*Perl_IDir_ptr(aTHX))
-#undef PL_Env
-#define PL_Env (*Perl_IEnv_ptr(aTHX))
-#undef PL_LIO
-#define PL_LIO (*Perl_ILIO_ptr(aTHX))
-#undef PL_Mem
-#define PL_Mem (*Perl_IMem_ptr(aTHX))
-#undef PL_MemParse
-#define PL_MemParse (*Perl_IMemParse_ptr(aTHX))
-#undef PL_MemShared
-#define PL_MemShared (*Perl_IMemShared_ptr(aTHX))
-#undef PL_OpPtr
-#define PL_OpPtr (*Perl_IOpPtr_ptr(aTHX))
-#undef PL_OpSlab
-#define PL_OpSlab (*Perl_IOpSlab_ptr(aTHX))
-#undef PL_OpSpace
-#define PL_OpSpace (*Perl_IOpSpace_ptr(aTHX))
-#undef PL_Proc
-#define PL_Proc (*Perl_IProc_ptr(aTHX))
-#undef PL_Sock
-#define PL_Sock (*Perl_ISock_ptr(aTHX))
-#undef PL_StdIO
-#define PL_StdIO (*Perl_IStdIO_ptr(aTHX))
-#undef PL_Sv
-#define PL_Sv (*Perl_ISv_ptr(aTHX))
-#undef PL_Xpv
-#define PL_Xpv (*Perl_IXpv_ptr(aTHX))
-#undef PL_amagic_generation
-#define PL_amagic_generation (*Perl_Iamagic_generation_ptr(aTHX))
-#undef PL_an
-#define PL_an (*Perl_Ian_ptr(aTHX))
-#undef PL_argvgv
-#define PL_argvgv (*Perl_Iargvgv_ptr(aTHX))
-#undef PL_argvout_stack
-#define PL_argvout_stack (*Perl_Iargvout_stack_ptr(aTHX))
-#undef PL_argvoutgv
-#define PL_argvoutgv (*Perl_Iargvoutgv_ptr(aTHX))
-#undef PL_basetime
-#define PL_basetime (*Perl_Ibasetime_ptr(aTHX))
-#undef PL_beginav
-#define PL_beginav (*Perl_Ibeginav_ptr(aTHX))
-#undef PL_beginav_save
-#define PL_beginav_save (*Perl_Ibeginav_save_ptr(aTHX))
-#undef PL_body_arenas
-#define PL_body_arenas (*Perl_Ibody_arenas_ptr(aTHX))
-#undef PL_body_roots
-#define PL_body_roots (*Perl_Ibody_roots_ptr(aTHX))
-#undef PL_bodytarget
-#define PL_bodytarget (*Perl_Ibodytarget_ptr(aTHX))
-#undef PL_breakable_sub_gen
-#define PL_breakable_sub_gen (*Perl_Ibreakable_sub_gen_ptr(aTHX))
-#undef PL_checkav
-#define PL_checkav (*Perl_Icheckav_ptr(aTHX))
-#undef PL_checkav_save
-#define PL_checkav_save (*Perl_Icheckav_save_ptr(aTHX))
-#undef PL_chopset
-#define PL_chopset (*Perl_Ichopset_ptr(aTHX))
-#undef PL_clocktick
-#define PL_clocktick (*Perl_Iclocktick_ptr(aTHX))
-#undef PL_collation_ix
-#define PL_collation_ix (*Perl_Icollation_ix_ptr(aTHX))
-#undef PL_collation_name
-#define PL_collation_name (*Perl_Icollation_name_ptr(aTHX))
-#undef PL_collation_standard
-#define PL_collation_standard (*Perl_Icollation_standard_ptr(aTHX))
-#undef PL_collxfrm_base
-#define PL_collxfrm_base (*Perl_Icollxfrm_base_ptr(aTHX))
-#undef PL_collxfrm_mult
-#define PL_collxfrm_mult (*Perl_Icollxfrm_mult_ptr(aTHX))
-#undef PL_colors
-#define PL_colors (*Perl_Icolors_ptr(aTHX))
-#undef PL_colorset
-#define PL_colorset (*Perl_Icolorset_ptr(aTHX))
-#undef PL_compcv
-#define PL_compcv (*Perl_Icompcv_ptr(aTHX))
-#undef PL_compiling
-#define PL_compiling (*Perl_Icompiling_ptr(aTHX))
-#undef PL_comppad
-#define PL_comppad (*Perl_Icomppad_ptr(aTHX))
-#undef PL_comppad_name
-#define PL_comppad_name (*Perl_Icomppad_name_ptr(aTHX))
-#undef PL_comppad_name_fill
-#define PL_comppad_name_fill (*Perl_Icomppad_name_fill_ptr(aTHX))
-#undef PL_comppad_name_floor
-#define PL_comppad_name_floor (*Perl_Icomppad_name_floor_ptr(aTHX))
-#undef PL_cop_seqmax
-#define PL_cop_seqmax (*Perl_Icop_seqmax_ptr(aTHX))
-#undef PL_cryptseen
-#define PL_cryptseen (*Perl_Icryptseen_ptr(aTHX))
-#undef PL_curcop
-#define PL_curcop (*Perl_Icurcop_ptr(aTHX))
-#undef PL_curcopdb
-#define PL_curcopdb (*Perl_Icurcopdb_ptr(aTHX))
-#undef PL_curpad
-#define PL_curpad (*Perl_Icurpad_ptr(aTHX))
-#undef PL_curpm
-#define PL_curpm (*Perl_Icurpm_ptr(aTHX))
-#undef PL_curstack
-#define PL_curstack (*Perl_Icurstack_ptr(aTHX))
-#undef PL_curstackinfo
-#define PL_curstackinfo (*Perl_Icurstackinfo_ptr(aTHX))
-#undef PL_curstash
-#define PL_curstash (*Perl_Icurstash_ptr(aTHX))
-#undef PL_curstname
-#define PL_curstname (*Perl_Icurstname_ptr(aTHX))
-#undef PL_custom_op_descs
-#define PL_custom_op_descs (*Perl_Icustom_op_descs_ptr(aTHX))
-#undef PL_custom_op_names
-#define PL_custom_op_names (*Perl_Icustom_op_names_ptr(aTHX))
-#undef PL_cv_has_eval
-#define PL_cv_has_eval (*Perl_Icv_has_eval_ptr(aTHX))
-#undef PL_dbargs
-#define PL_dbargs (*Perl_Idbargs_ptr(aTHX))
-#undef PL_debstash
-#define PL_debstash (*Perl_Idebstash_ptr(aTHX))
-#undef PL_debug
-#define PL_debug (*Perl_Idebug_ptr(aTHX))
-#undef PL_debug_pad
-#define PL_debug_pad (*Perl_Idebug_pad_ptr(aTHX))
-#undef PL_def_layerlist
-#define PL_def_layerlist (*Perl_Idef_layerlist_ptr(aTHX))
-#undef PL_defgv
-#define PL_defgv (*Perl_Idefgv_ptr(aTHX))
-#undef PL_defoutgv
-#define PL_defoutgv (*Perl_Idefoutgv_ptr(aTHX))
-#undef PL_defstash
-#define PL_defstash (*Perl_Idefstash_ptr(aTHX))
-#undef PL_delaymagic
-#define PL_delaymagic (*Perl_Idelaymagic_ptr(aTHX))
-#undef PL_destroyhook
-#define PL_destroyhook (*Perl_Idestroyhook_ptr(aTHX))
-#undef PL_diehook
-#define PL_diehook (*Perl_Idiehook_ptr(aTHX))
-#undef PL_dirty
-#define PL_dirty (*Perl_Idirty_ptr(aTHX))
-#undef PL_doextract
-#define PL_doextract (*Perl_Idoextract_ptr(aTHX))
-#undef PL_doswitches
-#define PL_doswitches (*Perl_Idoswitches_ptr(aTHX))
-#undef PL_dowarn
-#define PL_dowarn (*Perl_Idowarn_ptr(aTHX))
-#undef PL_dumper_fd
-#define PL_dumper_fd (*Perl_Idumper_fd_ptr(aTHX))
-#undef PL_dumpindent
-#define PL_dumpindent (*Perl_Idumpindent_ptr(aTHX))
-#undef PL_e_script
-#define PL_e_script (*Perl_Ie_script_ptr(aTHX))
-#undef PL_efloatbuf
-#define PL_efloatbuf (*Perl_Iefloatbuf_ptr(aTHX))
-#undef PL_efloatsize
-#define PL_efloatsize (*Perl_Iefloatsize_ptr(aTHX))
-#undef PL_egid
-#define PL_egid (*Perl_Iegid_ptr(aTHX))
-#undef PL_encoding
-#define PL_encoding (*Perl_Iencoding_ptr(aTHX))
-#undef PL_endav
-#define PL_endav (*Perl_Iendav_ptr(aTHX))
-#undef PL_envgv
-#define PL_envgv (*Perl_Ienvgv_ptr(aTHX))
-#undef PL_errgv
-#define PL_errgv (*Perl_Ierrgv_ptr(aTHX))
-#undef PL_errors
-#define PL_errors (*Perl_Ierrors_ptr(aTHX))
-#undef PL_euid
-#define PL_euid (*Perl_Ieuid_ptr(aTHX))
-#undef PL_eval_root
-#define PL_eval_root (*Perl_Ieval_root_ptr(aTHX))
-#undef PL_eval_start
-#define PL_eval_start (*Perl_Ieval_start_ptr(aTHX))
-#undef PL_evalseq
-#define PL_evalseq (*Perl_Ievalseq_ptr(aTHX))
-#undef PL_exit_flags
-#define PL_exit_flags (*Perl_Iexit_flags_ptr(aTHX))
-#undef PL_exitlist
-#define PL_exitlist (*Perl_Iexitlist_ptr(aTHX))
-#undef PL_exitlistlen
-#define PL_exitlistlen (*Perl_Iexitlistlen_ptr(aTHX))
-#undef PL_fdpid
-#define PL_fdpid (*Perl_Ifdpid_ptr(aTHX))
-#undef PL_filemode
-#define PL_filemode (*Perl_Ifilemode_ptr(aTHX))
-#undef PL_firstgv
-#define PL_firstgv (*Perl_Ifirstgv_ptr(aTHX))
-#undef PL_forkprocess
-#define PL_forkprocess (*Perl_Iforkprocess_ptr(aTHX))
-#undef PL_formfeed
-#define PL_formfeed (*Perl_Iformfeed_ptr(aTHX))
-#undef PL_formtarget
-#define PL_formtarget (*Perl_Iformtarget_ptr(aTHX))
-#undef PL_generation
-#define PL_generation (*Perl_Igeneration_ptr(aTHX))
-#undef PL_gensym
-#define PL_gensym (*Perl_Igensym_ptr(aTHX))
-#undef PL_gid
-#define PL_gid (*Perl_Igid_ptr(aTHX))
-#undef PL_glob_index
-#define PL_glob_index (*Perl_Iglob_index_ptr(aTHX))
-#undef PL_globalstash
-#define PL_globalstash (*Perl_Iglobalstash_ptr(aTHX))
-#undef PL_hash_seed
-#define PL_hash_seed (*Perl_Ihash_seed_ptr(aTHX))
-#undef PL_hintgv
-#define PL_hintgv (*Perl_Ihintgv_ptr(aTHX))
-#undef PL_hints
-#define PL_hints (*Perl_Ihints_ptr(aTHX))
-#undef PL_hv_fetch_ent_mh
-#define PL_hv_fetch_ent_mh (*Perl_Ihv_fetch_ent_mh_ptr(aTHX))
-#undef PL_in_clean_all
-#define PL_in_clean_all (*Perl_Iin_clean_all_ptr(aTHX))
-#undef PL_in_clean_objs
-#define PL_in_clean_objs (*Perl_Iin_clean_objs_ptr(aTHX))
-#undef PL_in_eval
-#define PL_in_eval (*Perl_Iin_eval_ptr(aTHX))
-#undef PL_in_load_module
-#define PL_in_load_module (*Perl_Iin_load_module_ptr(aTHX))
-#undef PL_incgv
-#define PL_incgv (*Perl_Iincgv_ptr(aTHX))
-#undef PL_initav
-#define PL_initav (*Perl_Iinitav_ptr(aTHX))
-#undef PL_inplace
-#define PL_inplace (*Perl_Iinplace_ptr(aTHX))
-#undef PL_isarev
-#define PL_isarev (*Perl_Iisarev_ptr(aTHX))
-#undef PL_known_layers
-#define PL_known_layers (*Perl_Iknown_layers_ptr(aTHX))
-#undef PL_last_in_gv
-#define PL_last_in_gv (*Perl_Ilast_in_gv_ptr(aTHX))
-#undef PL_last_swash_hv
-#define PL_last_swash_hv (*Perl_Ilast_swash_hv_ptr(aTHX))
-#undef PL_last_swash_key
-#define PL_last_swash_key (*Perl_Ilast_swash_key_ptr(aTHX))
-#undef PL_last_swash_klen
-#define PL_last_swash_klen (*Perl_Ilast_swash_klen_ptr(aTHX))
-#undef PL_last_swash_slen
-#define PL_last_swash_slen (*Perl_Ilast_swash_slen_ptr(aTHX))
-#undef PL_last_swash_tmps
-#define PL_last_swash_tmps (*Perl_Ilast_swash_tmps_ptr(aTHX))
-#undef PL_lastfd
-#define PL_lastfd (*Perl_Ilastfd_ptr(aTHX))
-#undef PL_lastgotoprobe
-#define PL_lastgotoprobe (*Perl_Ilastgotoprobe_ptr(aTHX))
-#undef PL_lastscream
-#define PL_lastscream (*Perl_Ilastscream_ptr(aTHX))
-#undef PL_laststatval
-#define PL_laststatval (*Perl_Ilaststatval_ptr(aTHX))
-#undef PL_laststype
-#define PL_laststype (*Perl_Ilaststype_ptr(aTHX))
-#undef PL_localizing
-#define PL_localizing (*Perl_Ilocalizing_ptr(aTHX))
-#undef PL_localpatches
-#define PL_localpatches (*Perl_Ilocalpatches_ptr(aTHX))
-#undef PL_lockhook
-#define PL_lockhook (*Perl_Ilockhook_ptr(aTHX))
-#undef PL_madskills
-#define PL_madskills (*Perl_Imadskills_ptr(aTHX))
-#undef PL_main_cv
-#define PL_main_cv (*Perl_Imain_cv_ptr(aTHX))
-#undef PL_main_root
-#define PL_main_root (*Perl_Imain_root_ptr(aTHX))
-#undef PL_main_start
-#define PL_main_start (*Perl_Imain_start_ptr(aTHX))
-#undef PL_mainstack
-#define PL_mainstack (*Perl_Imainstack_ptr(aTHX))
-#undef PL_markstack
-#define PL_markstack (*Perl_Imarkstack_ptr(aTHX))
-#undef PL_markstack_max
-#define PL_markstack_max (*Perl_Imarkstack_max_ptr(aTHX))
-#undef PL_markstack_ptr
-#define PL_markstack_ptr (*Perl_Imarkstack_ptr_ptr(aTHX))
-#undef PL_max_intro_pending
-#define PL_max_intro_pending (*Perl_Imax_intro_pending_ptr(aTHX))
-#undef PL_maxo
-#define PL_maxo (*Perl_Imaxo_ptr(aTHX))
-#undef PL_maxscream
-#define PL_maxscream (*Perl_Imaxscream_ptr(aTHX))
-#undef PL_maxsysfd
-#define PL_maxsysfd (*Perl_Imaxsysfd_ptr(aTHX))
-#undef PL_memory_debug_header
-#define PL_memory_debug_header (*Perl_Imemory_debug_header_ptr(aTHX))
-#undef PL_mess_sv
-#define PL_mess_sv (*Perl_Imess_sv_ptr(aTHX))
-#undef PL_min_intro_pending
-#define PL_min_intro_pending (*Perl_Imin_intro_pending_ptr(aTHX))
-#undef PL_minus_E
-#define PL_minus_E (*Perl_Iminus_E_ptr(aTHX))
-#undef PL_minus_F
-#define PL_minus_F (*Perl_Iminus_F_ptr(aTHX))
-#undef PL_minus_a
-#define PL_minus_a (*Perl_Iminus_a_ptr(aTHX))
-#undef PL_minus_c
-#define PL_minus_c (*Perl_Iminus_c_ptr(aTHX))
-#undef PL_minus_l
-#define PL_minus_l (*Perl_Iminus_l_ptr(aTHX))
-#undef PL_minus_n
-#define PL_minus_n (*Perl_Iminus_n_ptr(aTHX))
-#undef PL_minus_p
-#define PL_minus_p (*Perl_Iminus_p_ptr(aTHX))
-#undef PL_modcount
-#define PL_modcount (*Perl_Imodcount_ptr(aTHX))
-#undef PL_modglobal
-#define PL_modglobal (*Perl_Imodglobal_ptr(aTHX))
-#undef PL_my_cxt_keys
-#define PL_my_cxt_keys (*Perl_Imy_cxt_keys_ptr(aTHX))
-#undef PL_my_cxt_list
-#define PL_my_cxt_list (*Perl_Imy_cxt_list_ptr(aTHX))
-#undef PL_my_cxt_size
-#define PL_my_cxt_size (*Perl_Imy_cxt_size_ptr(aTHX))
-#undef PL_na
-#define PL_na (*Perl_Ina_ptr(aTHX))
-#undef PL_nice_chunk
-#define PL_nice_chunk (*Perl_Inice_chunk_ptr(aTHX))
-#undef PL_nice_chunk_size
-#define PL_nice_chunk_size (*Perl_Inice_chunk_size_ptr(aTHX))
-#undef PL_nomemok
-#define PL_nomemok (*Perl_Inomemok_ptr(aTHX))
-#undef PL_numeric_local
-#define PL_numeric_local (*Perl_Inumeric_local_ptr(aTHX))
-#undef PL_numeric_name
-#define PL_numeric_name (*Perl_Inumeric_name_ptr(aTHX))
-#undef PL_numeric_radix_sv
-#define PL_numeric_radix_sv (*Perl_Inumeric_radix_sv_ptr(aTHX))
-#undef PL_numeric_standard
-#define PL_numeric_standard (*Perl_Inumeric_standard_ptr(aTHX))
-#undef PL_ofsgv
-#define PL_ofsgv (*Perl_Iofsgv_ptr(aTHX))
-#undef PL_oldname
-#define PL_oldname (*Perl_Ioldname_ptr(aTHX))
-#undef PL_op
-#define PL_op (*Perl_Iop_ptr(aTHX))
-#undef PL_op_mask
-#define PL_op_mask (*Perl_Iop_mask_ptr(aTHX))
-#undef PL_opfreehook
-#define PL_opfreehook (*Perl_Iopfreehook_ptr(aTHX))
-#undef PL_opsave
-#define PL_opsave (*Perl_Iopsave_ptr(aTHX))
-#undef PL_origalen
-#define PL_origalen (*Perl_Iorigalen_ptr(aTHX))
-#undef PL_origargc
-#define PL_origargc (*Perl_Iorigargc_ptr(aTHX))
-#undef PL_origargv
-#define PL_origargv (*Perl_Iorigargv_ptr(aTHX))
-#undef PL_origenviron
-#define PL_origenviron (*Perl_Iorigenviron_ptr(aTHX))
-#undef PL_origfilename
-#define PL_origfilename (*Perl_Iorigfilename_ptr(aTHX))
-#undef PL_ors_sv
-#define PL_ors_sv (*Perl_Iors_sv_ptr(aTHX))
-#undef PL_osname
-#define PL_osname (*Perl_Iosname_ptr(aTHX))
-#undef PL_pad_reset_pending
-#define PL_pad_reset_pending (*Perl_Ipad_reset_pending_ptr(aTHX))
-#undef PL_padix
-#define PL_padix (*Perl_Ipadix_ptr(aTHX))
-#undef PL_padix_floor
-#define PL_padix_floor (*Perl_Ipadix_floor_ptr(aTHX))
-#undef PL_parser
-#define PL_parser (*Perl_Iparser_ptr(aTHX))
-#undef PL_patchlevel
-#define PL_patchlevel (*Perl_Ipatchlevel_ptr(aTHX))
-#undef PL_peepp
-#define PL_peepp (*Perl_Ipeepp_ptr(aTHX))
-#undef PL_perl_destruct_level
-#define PL_perl_destruct_level (*Perl_Iperl_destruct_level_ptr(aTHX))
-#undef PL_perldb
-#define PL_perldb (*Perl_Iperldb_ptr(aTHX))
-#undef PL_perlio
-#define PL_perlio (*Perl_Iperlio_ptr(aTHX))
-#undef PL_pidstatus
-#define PL_pidstatus (*Perl_Ipidstatus_ptr(aTHX))
-#undef PL_ppid
-#define PL_ppid (*Perl_Ippid_ptr(aTHX))
-#undef PL_preambleav
-#define PL_preambleav (*Perl_Ipreambleav_ptr(aTHX))
-#undef PL_profiledata
-#define PL_profiledata (*Perl_Iprofiledata_ptr(aTHX))
-#undef PL_psig_name
-#define PL_psig_name (*Perl_Ipsig_name_ptr(aTHX))
-#undef PL_psig_pend
-#define PL_psig_pend (*Perl_Ipsig_pend_ptr(aTHX))
-#undef PL_psig_ptr
-#define PL_psig_ptr (*Perl_Ipsig_ptr_ptr(aTHX))
-#undef PL_ptr_table
-#define PL_ptr_table (*Perl_Iptr_table_ptr(aTHX))
-#undef PL_reentrant_buffer
-#define PL_reentrant_buffer (*Perl_Ireentrant_buffer_ptr(aTHX))
-#undef PL_reentrant_retint
-#define PL_reentrant_retint (*Perl_Ireentrant_retint_ptr(aTHX))
-#undef PL_reg_state
-#define PL_reg_state (*Perl_Ireg_state_ptr(aTHX))
-#undef PL_regdummy
-#define PL_regdummy (*Perl_Iregdummy_ptr(aTHX))
-#undef PL_regex_pad
-#define PL_regex_pad (*Perl_Iregex_pad_ptr(aTHX))
-#undef PL_regex_padav
-#define PL_regex_padav (*Perl_Iregex_padav_ptr(aTHX))
-#undef PL_reginterp_cnt
-#define PL_reginterp_cnt (*Perl_Ireginterp_cnt_ptr(aTHX))
-#undef PL_registered_mros
-#define PL_registered_mros (*Perl_Iregistered_mros_ptr(aTHX))
-#undef PL_regmatch_slab
-#define PL_regmatch_slab (*Perl_Iregmatch_slab_ptr(aTHX))
-#undef PL_regmatch_state
-#define PL_regmatch_state (*Perl_Iregmatch_state_ptr(aTHX))
-#undef PL_rehash_seed
-#define PL_rehash_seed (*Perl_Irehash_seed_ptr(aTHX))
-#undef PL_rehash_seed_set
-#define PL_rehash_seed_set (*Perl_Irehash_seed_set_ptr(aTHX))
-#undef PL_replgv
-#define PL_replgv (*Perl_Ireplgv_ptr(aTHX))
-#undef PL_restartop
-#define PL_restartop (*Perl_Irestartop_ptr(aTHX))
-#undef PL_rs
-#define PL_rs (*Perl_Irs_ptr(aTHX))
-#undef PL_runops
-#define PL_runops (*Perl_Irunops_ptr(aTHX))
-#undef PL_savebegin
-#define PL_savebegin (*Perl_Isavebegin_ptr(aTHX))
-#undef PL_savestack
-#define PL_savestack (*Perl_Isavestack_ptr(aTHX))
-#undef PL_savestack_ix
-#define PL_savestack_ix (*Perl_Isavestack_ix_ptr(aTHX))
-#undef PL_savestack_max
-#define PL_savestack_max (*Perl_Isavestack_max_ptr(aTHX))
-#undef PL_sawampersand
-#define PL_sawampersand (*Perl_Isawampersand_ptr(aTHX))
-#undef PL_scopestack
-#define PL_scopestack (*Perl_Iscopestack_ptr(aTHX))
-#undef PL_scopestack_ix
-#define PL_scopestack_ix (*Perl_Iscopestack_ix_ptr(aTHX))
-#undef PL_scopestack_max
-#define PL_scopestack_max (*Perl_Iscopestack_max_ptr(aTHX))
-#undef PL_scopestack_name
-#define PL_scopestack_name (*Perl_Iscopestack_name_ptr(aTHX))
-#undef PL_screamfirst
-#define PL_screamfirst (*Perl_Iscreamfirst_ptr(aTHX))
-#undef PL_screamnext
-#define PL_screamnext (*Perl_Iscreamnext_ptr(aTHX))
-#undef PL_secondgv
-#define PL_secondgv (*Perl_Isecondgv_ptr(aTHX))
-#undef PL_sharehook
-#define PL_sharehook (*Perl_Isharehook_ptr(aTHX))
-#undef PL_sig_pending
-#define PL_sig_pending (*Perl_Isig_pending_ptr(aTHX))
-#undef PL_sighandlerp
-#define PL_sighandlerp (*Perl_Isighandlerp_ptr(aTHX))
-#undef PL_signals
-#define PL_signals (*Perl_Isignals_ptr(aTHX))
-#undef PL_slab_count
-#define PL_slab_count (*Perl_Islab_count_ptr(aTHX))
-#undef PL_slabs
-#define PL_slabs (*Perl_Islabs_ptr(aTHX))
-#undef PL_sort_RealCmp
-#define PL_sort_RealCmp (*Perl_Isort_RealCmp_ptr(aTHX))
-#undef PL_sortcop
-#define PL_sortcop (*Perl_Isortcop_ptr(aTHX))
-#undef PL_sortstash
-#define PL_sortstash (*Perl_Isortstash_ptr(aTHX))
-#undef PL_splitstr
-#define PL_splitstr (*Perl_Isplitstr_ptr(aTHX))
-#undef PL_srand_called
-#define PL_srand_called (*Perl_Isrand_called_ptr(aTHX))
-#undef PL_stack_base
-#define PL_stack_base (*Perl_Istack_base_ptr(aTHX))
-#undef PL_stack_max
-#define PL_stack_max (*Perl_Istack_max_ptr(aTHX))
-#undef PL_stack_sp
-#define PL_stack_sp (*Perl_Istack_sp_ptr(aTHX))
-#undef PL_start_env
-#define PL_start_env (*Perl_Istart_env_ptr(aTHX))
-#undef PL_stashcache
-#define PL_stashcache (*Perl_Istashcache_ptr(aTHX))
-#undef PL_statbuf
-#define PL_statbuf (*Perl_Istatbuf_ptr(aTHX))
-#undef PL_statcache
-#define PL_statcache (*Perl_Istatcache_ptr(aTHX))
-#undef PL_statgv
-#define PL_statgv (*Perl_Istatgv_ptr(aTHX))
-#undef PL_statname
-#define PL_statname (*Perl_Istatname_ptr(aTHX))
-#undef PL_statusvalue
-#define PL_statusvalue (*Perl_Istatusvalue_ptr(aTHX))
-#undef PL_statusvalue_posix
-#define PL_statusvalue_posix (*Perl_Istatusvalue_posix_ptr(aTHX))
-#undef PL_statusvalue_vms
-#define PL_statusvalue_vms (*Perl_Istatusvalue_vms_ptr(aTHX))
-#undef PL_stderrgv
-#define PL_stderrgv (*Perl_Istderrgv_ptr(aTHX))
-#undef PL_stdingv
-#define PL_stdingv (*Perl_Istdingv_ptr(aTHX))
-#undef PL_strtab
-#define PL_strtab (*Perl_Istrtab_ptr(aTHX))
-#undef PL_sub_generation
-#define PL_sub_generation (*Perl_Isub_generation_ptr(aTHX))
-#undef PL_subline
-#define PL_subline (*Perl_Isubline_ptr(aTHX))
-#undef PL_subname
-#define PL_subname (*Perl_Isubname_ptr(aTHX))
-#undef PL_sv_arenaroot
-#define PL_sv_arenaroot (*Perl_Isv_arenaroot_ptr(aTHX))
-#undef PL_sv_count
-#define PL_sv_count (*Perl_Isv_count_ptr(aTHX))
-#undef PL_sv_no
-#define PL_sv_no (*Perl_Isv_no_ptr(aTHX))
-#undef PL_sv_objcount
-#define PL_sv_objcount (*Perl_Isv_objcount_ptr(aTHX))
-#undef PL_sv_root
-#define PL_sv_root (*Perl_Isv_root_ptr(aTHX))
-#undef PL_sv_serial
-#define PL_sv_serial (*Perl_Isv_serial_ptr(aTHX))
-#undef PL_sv_undef
-#define PL_sv_undef (*Perl_Isv_undef_ptr(aTHX))
-#undef PL_sv_yes
-#define PL_sv_yes (*Perl_Isv_yes_ptr(aTHX))
-#undef PL_sys_intern
-#define PL_sys_intern (*Perl_Isys_intern_ptr(aTHX))
-#undef PL_taint_warn
-#define PL_taint_warn (*Perl_Itaint_warn_ptr(aTHX))
-#undef PL_tainted
-#define PL_tainted (*Perl_Itainted_ptr(aTHX))
-#undef PL_tainting
-#define PL_tainting (*Perl_Itainting_ptr(aTHX))
-#undef PL_threadhook
-#define PL_threadhook (*Perl_Ithreadhook_ptr(aTHX))
-#undef PL_timesbuf
-#define PL_timesbuf (*Perl_Itimesbuf_ptr(aTHX))
-#undef PL_tmps_floor
-#define PL_tmps_floor (*Perl_Itmps_floor_ptr(aTHX))
-#undef PL_tmps_ix
-#define PL_tmps_ix (*Perl_Itmps_ix_ptr(aTHX))
-#undef PL_tmps_max
-#define PL_tmps_max (*Perl_Itmps_max_ptr(aTHX))
-#undef PL_tmps_stack
-#define PL_tmps_stack (*Perl_Itmps_stack_ptr(aTHX))
-#undef PL_top_env
-#define PL_top_env (*Perl_Itop_env_ptr(aTHX))
-#undef PL_toptarget
-#define PL_toptarget (*Perl_Itoptarget_ptr(aTHX))
-#undef PL_uid
-#define PL_uid (*Perl_Iuid_ptr(aTHX))
-#undef PL_unicode
-#define PL_unicode (*Perl_Iunicode_ptr(aTHX))
-#undef PL_unitcheckav
-#define PL_unitcheckav (*Perl_Iunitcheckav_ptr(aTHX))
-#undef PL_unitcheckav_save
-#define PL_unitcheckav_save (*Perl_Iunitcheckav_save_ptr(aTHX))
-#undef PL_unlockhook
-#define PL_unlockhook (*Perl_Iunlockhook_ptr(aTHX))
-#undef PL_unsafe
-#define PL_unsafe (*Perl_Iunsafe_ptr(aTHX))
-#undef PL_utf8_X_L
-#define PL_utf8_X_L (*Perl_Iutf8_X_L_ptr(aTHX))
-#undef PL_utf8_X_LV
-#define PL_utf8_X_LV (*Perl_Iutf8_X_LV_ptr(aTHX))
-#undef PL_utf8_X_LVT
-#define PL_utf8_X_LVT (*Perl_Iutf8_X_LVT_ptr(aTHX))
-#undef PL_utf8_X_LV_LVT_V
-#define PL_utf8_X_LV_LVT_V (*Perl_Iutf8_X_LV_LVT_V_ptr(aTHX))
-#undef PL_utf8_X_T
-#define PL_utf8_X_T (*Perl_Iutf8_X_T_ptr(aTHX))
-#undef PL_utf8_X_V
-#define PL_utf8_X_V (*Perl_Iutf8_X_V_ptr(aTHX))
-#undef PL_utf8_X_begin
-#define PL_utf8_X_begin (*Perl_Iutf8_X_begin_ptr(aTHX))
-#undef PL_utf8_X_extend
-#define PL_utf8_X_extend (*Perl_Iutf8_X_extend_ptr(aTHX))
-#undef PL_utf8_X_non_hangul
-#define PL_utf8_X_non_hangul (*Perl_Iutf8_X_non_hangul_ptr(aTHX))
-#undef PL_utf8_X_prepend
-#define PL_utf8_X_prepend (*Perl_Iutf8_X_prepend_ptr(aTHX))
-#undef PL_utf8_alnum
-#define PL_utf8_alnum (*Perl_Iutf8_alnum_ptr(aTHX))
-#undef PL_utf8_alpha
-#define PL_utf8_alpha (*Perl_Iutf8_alpha_ptr(aTHX))
-#undef PL_utf8_ascii
-#define PL_utf8_ascii (*Perl_Iutf8_ascii_ptr(aTHX))
-#undef PL_utf8_cntrl
-#define PL_utf8_cntrl (*Perl_Iutf8_cntrl_ptr(aTHX))
-#undef PL_utf8_digit
-#define PL_utf8_digit (*Perl_Iutf8_digit_ptr(aTHX))
-#undef PL_utf8_graph
-#define PL_utf8_graph (*Perl_Iutf8_graph_ptr(aTHX))
-#undef PL_utf8_idcont
-#define PL_utf8_idcont (*Perl_Iutf8_idcont_ptr(aTHX))
-#undef PL_utf8_idstart
-#define PL_utf8_idstart (*Perl_Iutf8_idstart_ptr(aTHX))
-#undef PL_utf8_lower
-#define PL_utf8_lower (*Perl_Iutf8_lower_ptr(aTHX))
-#undef PL_utf8_mark
-#define PL_utf8_mark (*Perl_Iutf8_mark_ptr(aTHX))
-#undef PL_utf8_perl_space
-#define PL_utf8_perl_space (*Perl_Iutf8_perl_space_ptr(aTHX))
-#undef PL_utf8_perl_word
-#define PL_utf8_perl_word (*Perl_Iutf8_perl_word_ptr(aTHX))
-#undef PL_utf8_posix_digit
-#define PL_utf8_posix_digit (*Perl_Iutf8_posix_digit_ptr(aTHX))
-#undef PL_utf8_print
-#define PL_utf8_print (*Perl_Iutf8_print_ptr(aTHX))
-#undef PL_utf8_punct
-#define PL_utf8_punct (*Perl_Iutf8_punct_ptr(aTHX))
-#undef PL_utf8_space
-#define PL_utf8_space (*Perl_Iutf8_space_ptr(aTHX))
-#undef PL_utf8_tofold
-#define PL_utf8_tofold (*Perl_Iutf8_tofold_ptr(aTHX))
-#undef PL_utf8_tolower
-#define PL_utf8_tolower (*Perl_Iutf8_tolower_ptr(aTHX))
-#undef PL_utf8_totitle
-#define PL_utf8_totitle (*Perl_Iutf8_totitle_ptr(aTHX))
-#undef PL_utf8_toupper
-#define PL_utf8_toupper (*Perl_Iutf8_toupper_ptr(aTHX))
-#undef PL_utf8_upper
-#define PL_utf8_upper (*Perl_Iutf8_upper_ptr(aTHX))
-#undef PL_utf8_xdigit
-#define PL_utf8_xdigit (*Perl_Iutf8_xdigit_ptr(aTHX))
-#undef PL_utf8cache
-#define PL_utf8cache (*Perl_Iutf8cache_ptr(aTHX))
-#undef PL_utf8locale
-#define PL_utf8locale (*Perl_Iutf8locale_ptr(aTHX))
-#undef PL_warnhook
-#define PL_warnhook (*Perl_Iwarnhook_ptr(aTHX))
-#undef PL_watchaddr
-#define PL_watchaddr (*Perl_Iwatchaddr_ptr(aTHX))
-#undef PL_watchok
-#define PL_watchok (*Perl_Iwatchok_ptr(aTHX))
-#undef PL_xmlfp
-#define PL_xmlfp (*Perl_Ixmlfp_ptr(aTHX))
#undef PL_No
#define PL_No (*Perl_GNo_ptr(NULL))
#undef PL_Yes
#define PL_Yes (*Perl_GYes_ptr(NULL))
#undef PL_appctx
#define PL_appctx (*Perl_Gappctx_ptr(NULL))
+#undef PL_charclass
+#define PL_charclass (*Perl_Gcharclass_ptr(NULL))
#undef PL_check
#define PL_check (*Perl_Gcheck_ptr(NULL))
#undef PL_csighandlerp
@@ -830,8 +177,6 @@ END_EXTERN_C
#define PL_sig_handlers_initted (*Perl_Gsig_handlers_initted_ptr(NULL))
#undef PL_sig_ignoring
#define PL_sig_ignoring (*Perl_Gsig_ignoring_ptr(NULL))
-#undef PL_sig_sv
-#define PL_sig_sv (*Perl_Gsig_sv_ptr(NULL))
#undef PL_sig_trapped
#define PL_sig_trapped (*Perl_Gsig_trapped_ptr(NULL))
#undef PL_sigfpe_saved
@@ -854,7 +199,7 @@ END_EXTERN_C
#define PL_watch_pvx (*Perl_Gwatch_pvx_ptr(NULL))
#endif /* !PERL_CORE */
-#endif /* MULTIPLICITY */
+#endif /* MULTIPLICITY && PERL_GLOBAL_STRUCT */
#endif /* __perlapi_h__ */
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlhost.h b/Master/tlpkg/tlperl/lib/CORE/perlhost.h
index be7d61de02c..0240044c114 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlhost.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlhost.h
@@ -663,19 +663,19 @@ PerlStdIOGetPtr(struct IPerlStdIO* piPerl, FILE* pf)
}
char*
-PerlStdIOGets(struct IPerlStdIO* piPerl, FILE* pf, char* s, int n)
+PerlStdIOGets(struct IPerlStdIO* piPerl, char* s, int n, FILE* pf)
{
return win32_fgets(s, n, pf);
}
int
-PerlStdIOPutc(struct IPerlStdIO* piPerl, FILE* pf, int c)
+PerlStdIOPutc(struct IPerlStdIO* piPerl, int c, FILE* pf)
{
return win32_fputc(c, pf);
}
int
-PerlStdIOPuts(struct IPerlStdIO* piPerl, FILE* pf, const char *s)
+PerlStdIOPuts(struct IPerlStdIO* piPerl, const char *s, FILE* pf)
{
return win32_fputs(s, pf);
}
@@ -1727,11 +1727,6 @@ win32_start_child(LPVOID arg)
w32_pseudo_id = id;
#else
w32_pseudo_id = GetCurrentThreadId();
- if (IsWin95()) {
- int pid = (int)w32_pseudo_id;
- if (pid < 0)
- w32_pseudo_id = -pid;
- }
#endif
if (tmpgv = gv_fetchpv("$", TRUE, SVt_PV)) {
SV *sv = GvSV(tmpgv);
@@ -1880,13 +1875,9 @@ PerlProcFork(struct IPerlProc* piPerl)
errno = EAGAIN;
return -1;
}
- if (IsWin95()) {
- int pid = (int)id;
- if (pid < 0)
- id = -pid;
- }
w32_pseudo_child_handles[w32_num_pseudo_children] = handle;
w32_pseudo_child_pids[w32_num_pseudo_children] = id;
+ w32_pseudo_child_sigterm[w32_num_pseudo_children] = 0;
++w32_num_pseudo_children;
# endif
return -(int)id;
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlio.h b/Master/tlpkg/tlperl/lib/CORE/perlio.h
index a6902d4a956..0575cb17bdf 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlio.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlio.h
@@ -25,7 +25,7 @@
then there are two modes determined by USE_SFIO:
USE_SFIO - If set causes PerlIO_xxx() to be #define-d onto sfio functions.
- A backward compatability mode for some specialist applications.
+ A backward compatibility mode for some specialist applications.
If USE_SFIO is not set then PerlIO_xxx() are real functions
defined in perlio.c which implement extra functionality
@@ -189,6 +189,11 @@ PERL_EXPORT_C void PerlIO_clone(pTHX_ PerlInterpreter *proto,
#define BUFSIZ 1024
#endif
+/* The default buffer size for the perlio buffering layer */
+#ifndef PERLIOBUF_DEFAULT_BUFSIZ
+#define PERLIOBUF_DEFAULT_BUFSIZ (BUFSIZ > 8192 ? BUFSIZ : 8192)
+#endif
+
#ifndef SEEK_SET
#define SEEK_SET 0
#endif
diff --git a/Master/tlpkg/tlperl/lib/CORE/perliol.h b/Master/tlpkg/tlperl/lib/CORE/perliol.h
index 6b714bb6efa..a51f99b9039 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perliol.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perliol.h
@@ -67,6 +67,7 @@ struct _PerlIO {
PerlIOl *next; /* Lower layer */
PerlIO_funcs *tab; /* Functions for this layer */
U32 flags; /* Various flags for state */
+ PerlIOl *head; /* our ultimate parent pointer */
};
/*--------------------------------------------------------------------------------------*/
@@ -89,6 +90,7 @@ struct _PerlIO {
#define PERLIO_F_FASTGETS 0x00400000
#define PERLIO_F_TTY 0x00800000
#define PERLIO_F_NOTREG 0x01000000
+#define PERLIO_F_CLEARED 0x02000000 /* layer cleared but not freed */
#define PerlIOBase(f) (*(f))
#define PerlIOSelf(f,type) ((type *)PerlIOBase(f))
@@ -150,7 +152,7 @@ PERL_EXPORT_C PerlIO_funcs *PerlIO_layer_fetch(pTHX_ PerlIO_list_t *av, IV n, Pe
PERL_EXPORT_C SV *PerlIO_sv_dup(pTHX_ SV *arg, CLONE_PARAMS *param);
-PERL_EXPORT_C void PerlIO_cleantable(pTHX_ PerlIO **tablep);
+PERL_EXPORT_C void PerlIO_cleantable(pTHX_ PerlIOl **tablep);
PERL_EXPORT_C SV * PerlIO_tab_sv(pTHX_ PerlIO_funcs *tab);
PERL_EXPORT_C void PerlIO_default_buffer(pTHX_ PerlIO_list_t *av);
PERL_EXPORT_C void PerlIO_stdstreams(pTHX);
@@ -187,6 +189,7 @@ PERL_EXPORT_C IV PerlIOBase_noop_fail(pTHX_ PerlIO *f);
PERL_EXPORT_C IV PerlIOBase_noop_ok(pTHX_ PerlIO *f);
PERL_EXPORT_C IV PerlIOBase_popped(pTHX_ PerlIO *f);
PERL_EXPORT_C IV PerlIOBase_pushed(pTHX_ PerlIO *f, const char *mode, SV *arg, PerlIO_funcs *tab);
+PERL_EXPORT_C PerlIO * PerlIOBase_open(pTHX_ PerlIO_funcs *self, PerlIO_list_t *layers, IV n, const char *mode, int fd, int imode, int perm, PerlIO *old, int narg, SV **args);
PERL_EXPORT_C SSize_t PerlIOBase_read(pTHX_ PerlIO *f, void *vbuf, Size_t count);
PERL_EXPORT_C void PerlIOBase_setlinebuf(pTHX_ PerlIO *f);
PERL_EXPORT_C SSize_t PerlIOBase_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
@@ -244,7 +247,6 @@ PERL_EXPORT_C void PerlIOPending_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR * ptr,
PERL_EXPORT_C IV PerlIOPop_pushed(pTHX_ PerlIO *f, const char *mode, SV *arg, PerlIO_funcs *tab);
/* Raw */
-PERL_EXPORT_C PerlIO * PerlIORaw_open(pTHX_ PerlIO_funcs *self, PerlIO_list_t *layers, IV n, const char *mode, int fd, int imode, int perm, PerlIO *old, int narg, SV **args);
PERL_EXPORT_C IV PerlIORaw_pushed(pTHX_ PerlIO *f, const char *mode, SV *arg, PerlIO_funcs *tab);
/* Stdio */
@@ -277,6 +279,7 @@ PERL_EXPORT_C IV PerlIOUnix_pushed(pTHX_ PerlIO *f, const char *mode, SV
PERL_EXPORT_C SSize_t PerlIOUnix_read(pTHX_ PerlIO *f, void *vbuf, Size_t count);
PERL_EXPORT_C int PerlIOUnix_refcnt_dec(int fd);
PERL_EXPORT_C void PerlIOUnix_refcnt_inc(int fd);
+PERL_EXPORT_C int PerlIOUnix_refcnt(int fd);
PERL_EXPORT_C IV PerlIOUnix_seek(pTHX_ PerlIO *f, Off_t offset, int whence);
PERL_EXPORT_C Off_t PerlIOUnix_tell(pTHX_ PerlIO *f);
PERL_EXPORT_C SSize_t PerlIOUnix_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count);
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlsdio.h b/Master/tlpkg/tlperl/lib/CORE/perlsdio.h
index 1a6f2f01c4c..691ee325711 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlsdio.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlsdio.h
@@ -34,11 +34,11 @@
#define PerlIO_fdopen PerlSIO_fdopen
#define PerlIO_reopen PerlSIO_freopen
#define PerlIO_close(f) PerlSIO_fclose(f)
-#define PerlIO_puts(f,s) PerlSIO_fputs(f,s)
-#define PerlIO_putc(f,c) PerlSIO_fputc(f,c)
+#define PerlIO_puts(f,s) PerlSIO_fputs(s,f)
+#define PerlIO_putc(f,c) PerlSIO_fputc(c,f)
#if defined(VMS)
# if defined(__DECC)
- /* Unusual definition of ungetc() here to accomodate fast_sv_gets()'
+ /* Unusual definition of ungetc() here to accommodate fast_sv_gets()'
* belief that it can mix getc/ungetc with reads from stdio buffer */
int decc$ungetc(int __c, FILE *__stream);
# define PerlIO_ungetc(f,c) ((c) == EOF ? EOF : \
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlvars.h b/Master/tlpkg/tlperl/lib/CORE/perlvars.h
index 3d378917c94..1a44e22e4e9 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlvars.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlvars.h
@@ -12,7 +12,7 @@
=head1 Global Variables
*/
-/* Don't forget to re-run embed.pl to propagate changes! */
+/* Don't forget to re-run regen/embed.pl to propagate changes! */
/* This file describes the "global" variables used by perl
* This used to be in perl.h directly but we want to abstract out into
@@ -102,10 +102,6 @@ PERLVARA(Gsig_ignoring, SIG_SIZE, int) /* which signals we are ignoring */
PERLVARA(Gsig_defaulting, SIG_SIZE, int)
#endif
-#ifndef PERL_IMPLICIT_CONTEXT
-PERLVAR(Gsig_sv, SV*)
-#endif
-
/* XXX signals are process-wide anyway, so we
* ignore the implications of this for threading */
#ifndef HAS_SIGACTION
@@ -120,6 +116,7 @@ PERLVAR(Gwatch_pvx, char*)
PERLVAR(Gppaddr, Perl_ppaddr_t*) /* or opcode.h */
PERLVAR(Gcheck, Perl_check_t *) /* or opcode.h */
PERLVARA(Gfold_locale, 256, unsigned char) /* or perl.h */
+PERLVARA(Gcharclass, 256, U32)
#endif
#ifdef PERL_NEED_APPCTX
@@ -157,8 +154,8 @@ PERLVARI(Gveto_cleanup, int, FALSE) /* exit without cleanup */
/* dummy variables that hold pointers to both runops functions, thus forcing
* them *both* to get linked in (useful for Peek.xs, debugging etc) */
-PERLVARI(Grunops_std, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_standard))
-PERLVARI(Grunops_dbg, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_debug))
+PERLVARI(Grunops_std, runops_proc_t, Perl_runops_standard)
+PERLVARI(Grunops_dbg, runops_proc_t, Perl_runops_debug)
/* These are baked at compile time into any shared perl library.
@@ -212,7 +209,7 @@ introduced by the keyword. See L</Lexer interface> for details.
When a keyword is being handled, the plugin function must build
a tree of C<OP> structures, representing the code that was parsed.
The root of the tree must be stored in C<*op_ptr>. The function then
-returns a contant indicating the syntactic role of the construct that
+returns a constant indicating the syntactic role of the construct that
it has parsed: C<KEYWORD_PLUGIN_STMT> if it is a complete statement, or
C<KEYWORD_PLUGIN_EXPR> if it is an expression. Note that a statement
construct cannot be used inside an expression (except via C<do BLOCK>
@@ -240,4 +237,4 @@ the Perl core) will normally return C<KEYWORD_PLUGIN_DECLINE>.
=cut
*/
-PERLVARI(Gkeyword_plugin, Perl_keyword_plugin_t, MEMBER_TO_FPTR(Perl_keyword_plugin_standard))
+PERLVARI(Gkeyword_plugin, Perl_keyword_plugin_t, Perl_keyword_plugin_standard)
diff --git a/Master/tlpkg/tlperl/lib/CORE/perly.h b/Master/tlpkg/tlperl/lib/CORE/perly.h
index b40a968c106..6c282bfae14 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perly.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perly.h
@@ -1,24 +1,31 @@
-#ifdef PERL_CORE
+/* -*- buffer-read-only: t -*-
+ !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ This file is built by regen_perly.pl from perly.y.
+ Any changes made here will be lost!
+ */
-/* A Bison parser, made by GNU Bison 2.4.1. */
+#ifdef PERL_CORE
+/* A Bison parser, made by GNU Bison 2.3. */
/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
+
+ This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -29,163 +36,176 @@
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
-
+
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
- WORD = 258,
- METHOD = 259,
- FUNCMETH = 260,
- THING = 261,
- PMFUNC = 262,
- PRIVATEREF = 263,
- FUNC0SUB = 264,
- UNIOPSUB = 265,
- LSTOPSUB = 266,
- PLUGEXPR = 267,
- PLUGSTMT = 268,
- LABEL = 269,
- FORMAT = 270,
- SUB = 271,
- ANONSUB = 272,
- PACKAGE = 273,
- USE = 274,
- WHILE = 275,
- UNTIL = 276,
- IF = 277,
- UNLESS = 278,
- ELSE = 279,
- ELSIF = 280,
- CONTINUE = 281,
- FOR = 282,
- GIVEN = 283,
- WHEN = 284,
- DEFAULT = 285,
- LOOPEX = 286,
- DOTDOT = 287,
- YADAYADA = 288,
- FUNC0 = 289,
- FUNC1 = 290,
- FUNC = 291,
- UNIOP = 292,
- LSTOP = 293,
- RELOP = 294,
- EQOP = 295,
- MULOP = 296,
- ADDOP = 297,
- DOLSHARP = 298,
- DO = 299,
- HASHBRACK = 300,
- NOAMP = 301,
- LOCAL = 302,
- MY = 303,
- MYSUB = 304,
- REQUIRE = 305,
- COLONATTR = 306,
- PREC_LOW = 307,
- DOROP = 308,
- OROP = 309,
- ANDOP = 310,
- NOTOP = 311,
- ASSIGNOP = 312,
- DORDOR = 313,
- OROR = 314,
- ANDAND = 315,
- BITOROP = 316,
- BITANDOP = 317,
- SHIFTOP = 318,
- MATCHOP = 319,
- REFGEN = 320,
- UMINUS = 321,
- POWOP = 322,
- POSTDEC = 323,
- POSTINC = 324,
- PREDEC = 325,
- PREINC = 326,
- ARROW = 327,
- PEG = 328
+ GRAMPROG = 258,
+ GRAMEXPR = 259,
+ GRAMBLOCK = 260,
+ GRAMBARESTMT = 261,
+ GRAMFULLSTMT = 262,
+ GRAMSTMTSEQ = 263,
+ WORD = 264,
+ METHOD = 265,
+ FUNCMETH = 266,
+ THING = 267,
+ PMFUNC = 268,
+ PRIVATEREF = 269,
+ QWLIST = 270,
+ FUNC0SUB = 271,
+ UNIOPSUB = 272,
+ LSTOPSUB = 273,
+ PLUGEXPR = 274,
+ PLUGSTMT = 275,
+ LABEL = 276,
+ FORMAT = 277,
+ SUB = 278,
+ ANONSUB = 279,
+ PACKAGE = 280,
+ USE = 281,
+ WHILE = 282,
+ UNTIL = 283,
+ IF = 284,
+ UNLESS = 285,
+ ELSE = 286,
+ ELSIF = 287,
+ CONTINUE = 288,
+ FOR = 289,
+ GIVEN = 290,
+ WHEN = 291,
+ DEFAULT = 292,
+ LOOPEX = 293,
+ DOTDOT = 294,
+ YADAYADA = 295,
+ FUNC0 = 296,
+ FUNC1 = 297,
+ FUNC = 298,
+ UNIOP = 299,
+ LSTOP = 300,
+ RELOP = 301,
+ EQOP = 302,
+ MULOP = 303,
+ ADDOP = 304,
+ DOLSHARP = 305,
+ DO = 306,
+ HASHBRACK = 307,
+ NOAMP = 308,
+ LOCAL = 309,
+ MY = 310,
+ MYSUB = 311,
+ REQUIRE = 312,
+ COLONATTR = 313,
+ PREC_LOW = 314,
+ DOROP = 315,
+ OROP = 316,
+ ANDOP = 317,
+ NOTOP = 318,
+ ASSIGNOP = 319,
+ DORDOR = 320,
+ OROR = 321,
+ ANDAND = 322,
+ BITOROP = 323,
+ BITANDOP = 324,
+ SHIFTOP = 325,
+ MATCHOP = 326,
+ REFGEN = 327,
+ UMINUS = 328,
+ POWOP = 329,
+ POSTDEC = 330,
+ POSTINC = 331,
+ PREDEC = 332,
+ PREINC = 333,
+ ARROW = 334,
+ PEG = 335
};
#endif
-
/* Tokens. */
-#define WORD 258
-#define METHOD 259
-#define FUNCMETH 260
-#define THING 261
-#define PMFUNC 262
-#define PRIVATEREF 263
-#define FUNC0SUB 264
-#define UNIOPSUB 265
-#define LSTOPSUB 266
-#define PLUGEXPR 267
-#define PLUGSTMT 268
-#define LABEL 269
-#define FORMAT 270
-#define SUB 271
-#define ANONSUB 272
-#define PACKAGE 273
-#define USE 274
-#define WHILE 275
-#define UNTIL 276
-#define IF 277
-#define UNLESS 278
-#define ELSE 279
-#define ELSIF 280
-#define CONTINUE 281
-#define FOR 282
-#define GIVEN 283
-#define WHEN 284
-#define DEFAULT 285
-#define LOOPEX 286
-#define DOTDOT 287
-#define YADAYADA 288
-#define FUNC0 289
-#define FUNC1 290
-#define FUNC 291
-#define UNIOP 292
-#define LSTOP 293
-#define RELOP 294
-#define EQOP 295
-#define MULOP 296
-#define ADDOP 297
-#define DOLSHARP 298
-#define DO 299
-#define HASHBRACK 300
-#define NOAMP 301
-#define LOCAL 302
-#define MY 303
-#define MYSUB 304
-#define REQUIRE 305
-#define COLONATTR 306
-#define PREC_LOW 307
-#define DOROP 308
-#define OROP 309
-#define ANDOP 310
-#define NOTOP 311
-#define ASSIGNOP 312
-#define DORDOR 313
-#define OROR 314
-#define ANDAND 315
-#define BITOROP 316
-#define BITANDOP 317
-#define SHIFTOP 318
-#define MATCHOP 319
-#define REFGEN 320
-#define UMINUS 321
-#define POWOP 322
-#define POSTDEC 323
-#define POSTINC 324
-#define PREDEC 325
-#define PREINC 326
-#define ARROW 327
-#define PEG 328
+#define GRAMPROG 258
+#define GRAMEXPR 259
+#define GRAMBLOCK 260
+#define GRAMBARESTMT 261
+#define GRAMFULLSTMT 262
+#define GRAMSTMTSEQ 263
+#define WORD 264
+#define METHOD 265
+#define FUNCMETH 266
+#define THING 267
+#define PMFUNC 268
+#define PRIVATEREF 269
+#define QWLIST 270
+#define FUNC0SUB 271
+#define UNIOPSUB 272
+#define LSTOPSUB 273
+#define PLUGEXPR 274
+#define PLUGSTMT 275
+#define LABEL 276
+#define FORMAT 277
+#define SUB 278
+#define ANONSUB 279
+#define PACKAGE 280
+#define USE 281
+#define WHILE 282
+#define UNTIL 283
+#define IF 284
+#define UNLESS 285
+#define ELSE 286
+#define ELSIF 287
+#define CONTINUE 288
+#define FOR 289
+#define GIVEN 290
+#define WHEN 291
+#define DEFAULT 292
+#define LOOPEX 293
+#define DOTDOT 294
+#define YADAYADA 295
+#define FUNC0 296
+#define FUNC1 297
+#define FUNC 298
+#define UNIOP 299
+#define LSTOP 300
+#define RELOP 301
+#define EQOP 302
+#define MULOP 303
+#define ADDOP 304
+#define DOLSHARP 305
+#define DO 306
+#define HASHBRACK 307
+#define NOAMP 308
+#define LOCAL 309
+#define MY 310
+#define MYSUB 311
+#define REQUIRE 312
+#define COLONATTR 313
+#define PREC_LOW 314
+#define DOROP 315
+#define OROP 316
+#define ANDOP 317
+#define NOTOP 318
+#define ASSIGNOP 319
+#define DORDOR 320
+#define OROR 321
+#define ANDAND 322
+#define BITOROP 323
+#define BITANDOP 324
+#define SHIFTOP 325
+#define MATCHOP 326
+#define REFGEN 327
+#define UMINUS 328
+#define POWOP 329
+#define POSTDEC 330
+#define POSTINC 331
+#define PREDEC 332
+#define PREINC 333
+#define ARROW 334
+#define PEG 335
+
@@ -193,9 +213,6 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
-
-/* Line 1676 of yacc.c */
-
I32 ival; /* __DEFAULT__ (marker for regen_perly.pl;
must always be 1st union member) */
char *pval;
@@ -211,16 +228,18 @@ typedef union YYSTYPE
#ifdef PERL_MAD
TOKEN* tkval;
#endif
-
-
-
-/* Line 1676 of yacc.c */
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
+}
+/* Line 1489 of yacc.c. */
+ YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
#endif
+/* Generated from:
+ * bd41fc813e5d2d23ff7edef2ab1ef88bbb054176476b7d989db7522dce1c9328 perly.y
+ * dc72db91baa0a3c17a6c95718e5ad70e9ac7b75919df1317df7fe6c3f1649239 regen_perly.pl
+ * ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/pp.h b/Master/tlpkg/tlperl/lib/CORE/pp.h
index c36502a03fa..5cde92b047e 100644
--- a/Master/tlpkg/tlperl/lib/CORE/pp.h
+++ b/Master/tlpkg/tlperl/lib/CORE/pp.h
@@ -86,7 +86,7 @@ Refetch the stack pointer. Used after a callback. See L<perlcall>.
#define dTARG SV *targ
#define NORMAL PL_op->op_next
-#define DIE Perl_die
+#define DIE return Perl_die
/*
=for apidoc Ams||PUTBACK
@@ -328,6 +328,7 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
#define dPOPss SV *sv = POPs
#define dTOPnv NV value = TOPn
#define dPOPnv NV value = POPn
+#define dPOPnv_nomg NV value = (sp--, SvNV_nomg(TOPp1s))
#define dTOPiv IV value = TOPi
#define dPOPiv IV value = POPi
#define dTOPuv UV value = TOPu
@@ -353,6 +354,10 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
IV right = POPi; \
SV *leftsv = CAT2(X,s); \
IV left = USE_LEFT(leftsv) ? SvIV(leftsv) : 0
+#define dPOPXiirl_ul_nomg(X) \
+ IV right = (sp--, SvIV_nomg(TOPp1s)); \
+ SV *leftsv = CAT2(X,s); \
+ IV left = USE_LEFT(leftsv) ? SvIV_nomg(leftsv) : 0
#define dPOPPOPssrl dPOPXssrl(POP)
#define dPOPPOPnnrl dPOPXnnrl(POP)
@@ -363,8 +368,13 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
#define dPOPTOPssrl dPOPXssrl(TOP)
#define dPOPTOPnnrl dPOPXnnrl(TOP)
#define dPOPTOPnnrl_ul dPOPXnnrl_ul(TOP)
+#define dPOPTOPnnrl_nomg \
+ NV right = SvNV_nomg(TOPs); NV left = (sp--, SvNV_nomg(TOPs))
#define dPOPTOPiirl dPOPXiirl(TOP)
#define dPOPTOPiirl_ul dPOPXiirl_ul(TOP)
+#define dPOPTOPiirl_ul_nomg dPOPXiirl_ul_nomg(TOP)
+#define dPOPTOPiirl_nomg \
+ IV right = SvIV_nomg(TOPs); IV left = (sp--, SvIV_nomg(TOPs))
#define RETPUSHYES RETURNX(PUSHs(&PL_sv_yes))
#define RETPUSHNO RETURNX(PUSHs(&PL_sv_no))
@@ -398,107 +408,59 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
#define AMGf_noleft 2
#define AMGf_assign 4
#define AMGf_unary 8
+#define AMGf_numeric 0x10 /* for Perl_try_amagic_bin */
+#define AMGf_set 0x20 /* for Perl_try_amagic_bin */
-#define tryAMAGICbinW_var(meth_enum,assign,set) STMT_START { \
- SV* const left = *(sp-1); \
- SV* const right = *(sp); \
- if ((SvAMAGIC(left)||SvAMAGIC(right))) {\
- SV * const tmpsv = amagic_call(left, \
- right, \
- (meth_enum), \
- (assign)? AMGf_assign: 0); \
- if (tmpsv) { \
- SPAGAIN; \
- (void)POPs; set(tmpsv); RETURN; } \
- } \
- } STMT_END
-
-#define tryAMAGICbinW(meth,assign,set) \
- tryAMAGICbinW_var(CAT2(meth,_amg),assign,set)
-
-#define tryAMAGICbin_var(meth_enum,assign) \
- tryAMAGICbinW_var(meth_enum,assign,SETsv)
-#define tryAMAGICbin(meth,assign) \
- tryAMAGICbin_var(CAT2(meth,_amg),assign)
-#define tryAMAGICbinSET(meth,assign) tryAMAGICbinW(meth,assign,SETs)
+/* do SvGETMAGIC on the stack args before checking for overload */
-#define tryAMAGICbinSET_var(meth_enum,assign) \
- tryAMAGICbinW_var(meth_enum,assign,SETs)
-
-#define AMG_CALLun_var(sv,meth_enum) amagic_call(sv,&PL_sv_undef, \
- meth_enum,AMGf_noright | AMGf_unary)
-#define AMG_CALLun(sv,meth) AMG_CALLun_var(sv,CAT2(meth,_amg))
-
-#define AMG_CALLbinL(left,right,meth) \
- amagic_call(left,right,CAT2(meth,_amg),AMGf_noright)
+#define tryAMAGICun_MG(method, flags) STMT_START { \
+ if ( (SvFLAGS(TOPs) & (SVf_ROK|SVs_GMG)) \
+ && Perl_try_amagic_un(aTHX_ method, flags)) \
+ return NORMAL; \
+ } STMT_END
+#define tryAMAGICbin_MG(method, flags) STMT_START { \
+ if ( ((SvFLAGS(TOPm1s)|SvFLAGS(TOPs)) & (SVf_ROK|SVs_GMG)) \
+ && Perl_try_amagic_bin(aTHX_ method, flags)) \
+ return NORMAL; \
+ } STMT_END
-#define tryAMAGICunW_var(meth_enum,set,shift,ret) STMT_START { \
- SV* tmpsv; \
- SV* arg= sp[shift]; \
- if(0) goto am_again; /* shut up unused warning */ \
- am_again: \
- if ((SvAMAGIC(arg))&&\
- (tmpsv=AMG_CALLun_var(arg,(meth_enum)))) {\
- SPAGAIN; if (shift) sp += shift; \
- set(tmpsv); ret; } \
- } STMT_END
-#define tryAMAGICunW(meth,set,shift,ret) \
- tryAMAGICunW_var(CAT2(meth,_amg),set,shift,ret)
-
-#define FORCE_SETs(sv) STMT_START { sv_setsv(TARG, (sv)); SETTARG; } STMT_END
-
-#define tryAMAGICun_var(meth_enum) tryAMAGICunW_var(meth_enum,SETsvUN,0,RETURN)
-#define tryAMAGICun(meth) tryAMAGICun_var(CAT2(meth,_amg))
-#define tryAMAGICunSET(meth) tryAMAGICunW(meth,SETs,0,RETURN)
-#define tryAMAGICunTARGET(meth, shift) \
- STMT_START { dSP; sp--; /* get TARGET from below PL_stack_sp */ \
- { dTARGETSTACKED; \
- { dSP; tryAMAGICunW(meth,FORCE_SETs,shift,RETURN);}}} STMT_END
-
-#define setAGAIN(ref) \
- STMT_START { \
- sv = ref; \
- if (!SvROK(ref)) \
- Perl_croak(aTHX_ "Overloaded dereference did not return a reference"); \
- if (ref != arg && SvRV(ref) != SvRV(arg)) { \
- arg = ref; \
- goto am_again; \
- } \
+#define AMG_CALLunary(sv,meth) \
+ amagic_call(sv,&PL_sv_undef, meth, AMGf_noright | AMGf_unary)
+
+/* No longer used in core. Use AMG_CALLunary instead */
+#define AMG_CALLun(sv,meth) AMG_CALLunary(sv, CAT2(meth,_amg))
+
+#define tryAMAGICunTARGET(meth, shift, jump) \
+ STMT_START { \
+ dATARGET; \
+ dSP; \
+ SV *tmpsv; \
+ SV *arg= sp[shift]; \
+ if (SvAMAGIC(arg) && \
+ (tmpsv = amagic_call(arg, &PL_sv_undef, meth, \
+ AMGf_noright | AMGf_unary))) { \
+ SPAGAIN; \
+ sp += shift; \
+ sv_setsv(TARG, tmpsv); \
+ if (opASSIGN) \
+ sp--; \
+ SETTARG; \
+ PUTBACK; \
+ if (jump) { \
+ PL_markstack_ptr--; \
+ return NORMAL->op_next->op_next; \
+ } \
+ return NORMAL; \
+ } \
} STMT_END
-#define tryAMAGICunDEREF(meth) tryAMAGICunW(meth,setAGAIN,0,(void)0)
-#define tryAMAGICunDEREF_var(meth_enum) \
- tryAMAGICunW_var(meth_enum,setAGAIN,0,(void)0)
-
-#define tryAMAGICftest(chr) \
- STMT_START { \
- assert(chr != '?'); \
- if ((PL_op->op_flags & OPf_KIDS) \
- && SvAMAGIC(TOPs)) { \
- const char tmpchr = (chr); \
- SV * const tmpsv = amagic_call(TOPs, \
- newSVpvn_flags(&tmpchr, 1, SVs_TEMP), \
- ftest_amg, AMGf_unary); \
- \
- if (tmpsv) { \
- const OP *next = PL_op->op_next; \
- \
- SPAGAIN; \
- \
- if (next->op_type >= OP_FTRREAD && \
- next->op_type <= OP_FTBINARY && \
- next->op_private & OPpFT_STACKED \
- ) { \
- if (SvTRUE(tmpsv)) \
- /* leave the object alone */ \
- RETURN; \
- } \
- \
- SETs(tmpsv); \
- RETURN; \
- } \
- } \
+/* This is no longer used anywhere in the core. You might wish to consider
+ calling amagic_deref_call() directly, as it has a cleaner interface. */
+#define tryAMAGICunDEREF(meth) \
+ STMT_START { \
+ sv = amagic_deref_call(*sp, CAT2(meth,_amg)); \
+ SPAGAIN; \
} STMT_END
@@ -513,17 +475,6 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
{ sv_setsv(TARG, (sv)); SETTARG; } \
else SETs(sv); } STMT_END
-/* newSVsv does not behave as advertised, so we copy missing
- * information by hand */
-
-/* SV* ref causes confusion with the member variable
- changed SV* ref to SV* tmpRef */
-#define RvDEEPCP(rv) STMT_START { SV* tmpRef=SvRV(rv); SV* rv_copy; \
- if (SvREFCNT(tmpRef)>1 && (rv_copy = AMG_CALLun(rv,copy))) { \
- SvRV_set(rv, rv_copy); \
- SvREFCNT_dec(tmpRef); \
- } } STMT_END
-
/*
=for apidoc mU||LVRET
True if this op will be the return value of an lvalue subroutine
@@ -540,6 +491,15 @@ True if this op will be the return value of an lvalue subroutine
) \
)
+#ifdef PERL_CORE
+/* These are just for Perl_tied_method(), which is not part of the public API.
+ Use 0x04 rather than the next available bit, to help the compiler if the
+ architecture can generate more efficient instructions. */
+# define TIED_METHOD_MORTALIZE_NOT_NEEDED 0x04
+# define TIED_METHOD_ARGUMENTS_ON_STACK 0x08
+# define TIED_METHOD_SAY 0x10
+#endif
+
/*
* Local variables:
* c-indentation-style: bsd
diff --git a/Master/tlpkg/tlperl/lib/CORE/pp_proto.h b/Master/tlpkg/tlperl/lib/CORE/pp_proto.h
index d7da4538710..2b01d6b0b66 100644
--- a/Master/tlpkg/tlperl/lib/CORE/pp_proto.h
+++ b/Master/tlpkg/tlperl/lib/CORE/pp_proto.h
@@ -1,414 +1,274 @@
/* -*- buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- This file is built by opcode.pl from its data. Any changes made here
- will be lost!
-*/
+ This file is built by opcode.pl from its data.
+ Any changes made here will be lost!
+ */
-PERL_CKDEF(Perl_ck_anoncode)
-PERL_CKDEF(Perl_ck_bitop)
-PERL_CKDEF(Perl_ck_chdir)
-PERL_CKDEF(Perl_ck_concat)
-PERL_CKDEF(Perl_ck_defined)
-PERL_CKDEF(Perl_ck_delete)
-PERL_CKDEF(Perl_ck_die)
-PERL_CKDEF(Perl_ck_each)
-PERL_CKDEF(Perl_ck_eof)
-PERL_CKDEF(Perl_ck_eval)
-PERL_CKDEF(Perl_ck_exec)
-PERL_CKDEF(Perl_ck_exists)
-PERL_CKDEF(Perl_ck_exit)
-PERL_CKDEF(Perl_ck_ftst)
-PERL_CKDEF(Perl_ck_fun)
-PERL_CKDEF(Perl_ck_glob)
-PERL_CKDEF(Perl_ck_grep)
-PERL_CKDEF(Perl_ck_index)
-PERL_CKDEF(Perl_ck_join)
-PERL_CKDEF(Perl_ck_lfun)
-PERL_CKDEF(Perl_ck_listiob)
-PERL_CKDEF(Perl_ck_match)
-PERL_CKDEF(Perl_ck_method)
-PERL_CKDEF(Perl_ck_null)
-PERL_CKDEF(Perl_ck_open)
-PERL_CKDEF(Perl_ck_readline)
-PERL_CKDEF(Perl_ck_repeat)
-PERL_CKDEF(Perl_ck_require)
-PERL_CKDEF(Perl_ck_return)
-PERL_CKDEF(Perl_ck_rfun)
-PERL_CKDEF(Perl_ck_rvconst)
-PERL_CKDEF(Perl_ck_sassign)
-PERL_CKDEF(Perl_ck_select)
-PERL_CKDEF(Perl_ck_shift)
-PERL_CKDEF(Perl_ck_smartmatch)
-PERL_CKDEF(Perl_ck_sort)
-PERL_CKDEF(Perl_ck_spair)
-PERL_CKDEF(Perl_ck_split)
-PERL_CKDEF(Perl_ck_subr)
-PERL_CKDEF(Perl_ck_substr)
-PERL_CKDEF(Perl_ck_svconst)
-PERL_CKDEF(Perl_ck_trunc)
-PERL_CKDEF(Perl_ck_unpack)
-
-
-PERL_PPDEF(Perl_pp_null)
-PERL_PPDEF(Perl_pp_stub)
-PERL_PPDEF(Perl_pp_scalar)
-PERL_PPDEF(Perl_pp_pushmark)
-PERL_PPDEF(Perl_pp_wantarray)
-PERL_PPDEF(Perl_pp_const)
-PERL_PPDEF(Perl_pp_gvsv)
-PERL_PPDEF(Perl_pp_gv)
-PERL_PPDEF(Perl_pp_gelem)
-PERL_PPDEF(Perl_pp_padsv)
-PERL_PPDEF(Perl_pp_padav)
-PERL_PPDEF(Perl_pp_padhv)
-PERL_PPDEF(Perl_pp_padany)
-PERL_PPDEF(Perl_pp_pushre)
-PERL_PPDEF(Perl_pp_rv2gv)
-PERL_PPDEF(Perl_pp_rv2sv)
-PERL_PPDEF(Perl_pp_av2arylen)
-PERL_PPDEF(Perl_pp_rv2cv)
-PERL_PPDEF(Perl_pp_anoncode)
-PERL_PPDEF(Perl_pp_prototype)
-PERL_PPDEF(Perl_pp_refgen)
-PERL_PPDEF(Perl_pp_srefgen)
-PERL_PPDEF(Perl_pp_ref)
-PERL_PPDEF(Perl_pp_bless)
-PERL_PPDEF(Perl_pp_backtick)
-PERL_PPDEF(Perl_pp_glob)
-PERL_PPDEF(Perl_pp_readline)
-PERL_PPDEF(Perl_pp_rcatline)
-PERL_PPDEF(Perl_pp_regcmaybe)
-PERL_PPDEF(Perl_pp_regcreset)
-PERL_PPDEF(Perl_pp_regcomp)
-PERL_PPDEF(Perl_pp_match)
-PERL_PPDEF(Perl_pp_qr)
-PERL_PPDEF(Perl_pp_subst)
-PERL_PPDEF(Perl_pp_substcont)
-PERL_PPDEF(Perl_pp_trans)
-PERL_PPDEF(Perl_pp_sassign)
-PERL_PPDEF(Perl_pp_aassign)
-PERL_PPDEF(Perl_pp_chop)
-PERL_PPDEF(Perl_pp_schop)
-PERL_PPDEF(Perl_pp_chomp)
-PERL_PPDEF(Perl_pp_schomp)
-PERL_PPDEF(Perl_pp_defined)
-PERL_PPDEF(Perl_pp_undef)
-PERL_PPDEF(Perl_pp_study)
-PERL_PPDEF(Perl_pp_pos)
-PERL_PPDEF(Perl_pp_preinc)
-PERL_PPDEF(Perl_pp_predec)
-PERL_PPDEF(Perl_pp_postinc)
-PERL_PPDEF(Perl_pp_postdec)
-PERL_PPDEF(Perl_pp_pow)
-PERL_PPDEF(Perl_pp_multiply)
-PERL_PPDEF(Perl_pp_i_multiply)
-PERL_PPDEF(Perl_pp_divide)
-PERL_PPDEF(Perl_pp_i_divide)
-PERL_PPDEF(Perl_pp_modulo)
-PERL_PPDEF(Perl_pp_i_modulo)
-PERL_PPDEF(Perl_pp_repeat)
-PERL_PPDEF(Perl_pp_add)
-PERL_PPDEF(Perl_pp_i_add)
-PERL_PPDEF(Perl_pp_subtract)
-PERL_PPDEF(Perl_pp_i_subtract)
-PERL_PPDEF(Perl_pp_concat)
-PERL_PPDEF(Perl_pp_stringify)
-PERL_PPDEF(Perl_pp_left_shift)
-PERL_PPDEF(Perl_pp_right_shift)
-PERL_PPDEF(Perl_pp_lt)
-PERL_PPDEF(Perl_pp_i_lt)
-PERL_PPDEF(Perl_pp_gt)
-PERL_PPDEF(Perl_pp_i_gt)
-PERL_PPDEF(Perl_pp_le)
-PERL_PPDEF(Perl_pp_i_le)
-PERL_PPDEF(Perl_pp_ge)
-PERL_PPDEF(Perl_pp_i_ge)
-PERL_PPDEF(Perl_pp_eq)
-PERL_PPDEF(Perl_pp_i_eq)
-PERL_PPDEF(Perl_pp_ne)
-PERL_PPDEF(Perl_pp_i_ne)
-PERL_PPDEF(Perl_pp_ncmp)
-PERL_PPDEF(Perl_pp_i_ncmp)
-PERL_PPDEF(Perl_pp_slt)
-PERL_PPDEF(Perl_pp_sgt)
-PERL_PPDEF(Perl_pp_sle)
-PERL_PPDEF(Perl_pp_sge)
-PERL_PPDEF(Perl_pp_seq)
-PERL_PPDEF(Perl_pp_sne)
-PERL_PPDEF(Perl_pp_scmp)
-PERL_PPDEF(Perl_pp_bit_and)
-PERL_PPDEF(Perl_pp_bit_xor)
-PERL_PPDEF(Perl_pp_bit_or)
-PERL_PPDEF(Perl_pp_negate)
-PERL_PPDEF(Perl_pp_i_negate)
-PERL_PPDEF(Perl_pp_not)
-PERL_PPDEF(Perl_pp_complement)
-PERL_PPDEF(Perl_pp_smartmatch)
-PERL_PPDEF(Perl_pp_atan2)
-PERL_PPDEF(Perl_pp_sin)
-PERL_PPDEF(Perl_pp_cos)
-PERL_PPDEF(Perl_pp_rand)
-PERL_PPDEF(Perl_pp_srand)
-PERL_PPDEF(Perl_pp_exp)
-PERL_PPDEF(Perl_pp_log)
-PERL_PPDEF(Perl_pp_sqrt)
-PERL_PPDEF(Perl_pp_int)
-PERL_PPDEF(Perl_pp_hex)
-PERL_PPDEF(Perl_pp_oct)
-PERL_PPDEF(Perl_pp_abs)
-PERL_PPDEF(Perl_pp_length)
-PERL_PPDEF(Perl_pp_substr)
-PERL_PPDEF(Perl_pp_vec)
-PERL_PPDEF(Perl_pp_index)
-PERL_PPDEF(Perl_pp_rindex)
-PERL_PPDEF(Perl_pp_sprintf)
-PERL_PPDEF(Perl_pp_formline)
-PERL_PPDEF(Perl_pp_ord)
-PERL_PPDEF(Perl_pp_chr)
-PERL_PPDEF(Perl_pp_crypt)
-PERL_PPDEF(Perl_pp_ucfirst)
-PERL_PPDEF(Perl_pp_lcfirst)
-PERL_PPDEF(Perl_pp_uc)
-PERL_PPDEF(Perl_pp_lc)
-PERL_PPDEF(Perl_pp_quotemeta)
-PERL_PPDEF(Perl_pp_rv2av)
-PERL_PPDEF(Perl_pp_aelemfast)
-PERL_PPDEF(Perl_pp_aelem)
-PERL_PPDEF(Perl_pp_aslice)
-PERL_PPDEF(Perl_pp_aeach)
-PERL_PPDEF(Perl_pp_akeys)
-PERL_PPDEF(Perl_pp_avalues)
-PERL_PPDEF(Perl_pp_each)
-PERL_PPDEF(Perl_pp_values)
-PERL_PPDEF(Perl_pp_keys)
-PERL_PPDEF(Perl_pp_delete)
-PERL_PPDEF(Perl_pp_exists)
-PERL_PPDEF(Perl_pp_rv2hv)
-PERL_PPDEF(Perl_pp_helem)
-PERL_PPDEF(Perl_pp_hslice)
-PERL_PPDEF(Perl_pp_boolkeys)
-PERL_PPDEF(Perl_pp_unpack)
-PERL_PPDEF(Perl_pp_pack)
-PERL_PPDEF(Perl_pp_split)
-PERL_PPDEF(Perl_pp_join)
-PERL_PPDEF(Perl_pp_list)
-PERL_PPDEF(Perl_pp_lslice)
-PERL_PPDEF(Perl_pp_anonlist)
-PERL_PPDEF(Perl_pp_anonhash)
-PERL_PPDEF(Perl_pp_splice)
-PERL_PPDEF(Perl_pp_push)
-PERL_PPDEF(Perl_pp_pop)
-PERL_PPDEF(Perl_pp_shift)
-PERL_PPDEF(Perl_pp_unshift)
-PERL_PPDEF(Perl_pp_sort)
-PERL_PPDEF(Perl_pp_reverse)
-PERL_PPDEF(Perl_pp_grepstart)
-PERL_PPDEF(Perl_pp_grepwhile)
-PERL_PPDEF(Perl_pp_mapstart)
-PERL_PPDEF(Perl_pp_mapwhile)
-PERL_PPDEF(Perl_pp_range)
-PERL_PPDEF(Perl_pp_flip)
-PERL_PPDEF(Perl_pp_flop)
-PERL_PPDEF(Perl_pp_and)
-PERL_PPDEF(Perl_pp_or)
-PERL_PPDEF(Perl_pp_xor)
-PERL_PPDEF(Perl_pp_dor)
-PERL_PPDEF(Perl_pp_cond_expr)
-PERL_PPDEF(Perl_pp_andassign)
-PERL_PPDEF(Perl_pp_orassign)
-PERL_PPDEF(Perl_pp_dorassign)
-PERL_PPDEF(Perl_pp_method)
-PERL_PPDEF(Perl_pp_entersub)
-PERL_PPDEF(Perl_pp_leavesub)
-PERL_PPDEF(Perl_pp_leavesublv)
-PERL_PPDEF(Perl_pp_caller)
-PERL_PPDEF(Perl_pp_warn)
-PERL_PPDEF(Perl_pp_die)
-PERL_PPDEF(Perl_pp_reset)
-PERL_PPDEF(Perl_pp_lineseq)
-PERL_PPDEF(Perl_pp_nextstate)
-PERL_PPDEF(Perl_pp_dbstate)
-PERL_PPDEF(Perl_pp_unstack)
-PERL_PPDEF(Perl_pp_enter)
-PERL_PPDEF(Perl_pp_leave)
-PERL_PPDEF(Perl_pp_scope)
-PERL_PPDEF(Perl_pp_enteriter)
-PERL_PPDEF(Perl_pp_iter)
-PERL_PPDEF(Perl_pp_enterloop)
-PERL_PPDEF(Perl_pp_leaveloop)
-PERL_PPDEF(Perl_pp_return)
-PERL_PPDEF(Perl_pp_last)
-PERL_PPDEF(Perl_pp_next)
-PERL_PPDEF(Perl_pp_redo)
-PERL_PPDEF(Perl_pp_dump)
-PERL_PPDEF(Perl_pp_goto)
-PERL_PPDEF(Perl_pp_exit)
-PERL_PPDEF(Perl_pp_method_named)
-PERL_PPDEF(Perl_pp_entergiven)
-PERL_PPDEF(Perl_pp_leavegiven)
-PERL_PPDEF(Perl_pp_enterwhen)
-PERL_PPDEF(Perl_pp_leavewhen)
-PERL_PPDEF(Perl_pp_break)
-PERL_PPDEF(Perl_pp_continue)
-PERL_PPDEF(Perl_pp_open)
-PERL_PPDEF(Perl_pp_close)
-PERL_PPDEF(Perl_pp_pipe_op)
-PERL_PPDEF(Perl_pp_fileno)
-PERL_PPDEF(Perl_pp_umask)
-PERL_PPDEF(Perl_pp_binmode)
-PERL_PPDEF(Perl_pp_tie)
-PERL_PPDEF(Perl_pp_untie)
-PERL_PPDEF(Perl_pp_tied)
-PERL_PPDEF(Perl_pp_dbmopen)
-PERL_PPDEF(Perl_pp_dbmclose)
-PERL_PPDEF(Perl_pp_sselect)
-PERL_PPDEF(Perl_pp_select)
-PERL_PPDEF(Perl_pp_getc)
-PERL_PPDEF(Perl_pp_read)
-PERL_PPDEF(Perl_pp_enterwrite)
-PERL_PPDEF(Perl_pp_leavewrite)
-PERL_PPDEF(Perl_pp_prtf)
-PERL_PPDEF(Perl_pp_print)
-PERL_PPDEF(Perl_pp_say)
-PERL_PPDEF(Perl_pp_sysopen)
-PERL_PPDEF(Perl_pp_sysseek)
-PERL_PPDEF(Perl_pp_sysread)
-PERL_PPDEF(Perl_pp_syswrite)
-PERL_PPDEF(Perl_pp_eof)
-PERL_PPDEF(Perl_pp_tell)
-PERL_PPDEF(Perl_pp_seek)
-PERL_PPDEF(Perl_pp_truncate)
-PERL_PPDEF(Perl_pp_fcntl)
-PERL_PPDEF(Perl_pp_ioctl)
-PERL_PPDEF(Perl_pp_flock)
-PERL_PPDEF(Perl_pp_send)
-PERL_PPDEF(Perl_pp_recv)
-PERL_PPDEF(Perl_pp_socket)
-PERL_PPDEF(Perl_pp_sockpair)
-PERL_PPDEF(Perl_pp_bind)
-PERL_PPDEF(Perl_pp_connect)
-PERL_PPDEF(Perl_pp_listen)
-PERL_PPDEF(Perl_pp_accept)
-PERL_PPDEF(Perl_pp_shutdown)
-PERL_PPDEF(Perl_pp_gsockopt)
-PERL_PPDEF(Perl_pp_ssockopt)
-PERL_PPDEF(Perl_pp_getsockname)
-PERL_PPDEF(Perl_pp_getpeername)
-PERL_PPDEF(Perl_pp_lstat)
-PERL_PPDEF(Perl_pp_stat)
-PERL_PPDEF(Perl_pp_ftrread)
-PERL_PPDEF(Perl_pp_ftrwrite)
-PERL_PPDEF(Perl_pp_ftrexec)
-PERL_PPDEF(Perl_pp_fteread)
-PERL_PPDEF(Perl_pp_ftewrite)
-PERL_PPDEF(Perl_pp_fteexec)
-PERL_PPDEF(Perl_pp_ftis)
-PERL_PPDEF(Perl_pp_ftsize)
-PERL_PPDEF(Perl_pp_ftmtime)
-PERL_PPDEF(Perl_pp_ftatime)
-PERL_PPDEF(Perl_pp_ftctime)
-PERL_PPDEF(Perl_pp_ftrowned)
-PERL_PPDEF(Perl_pp_fteowned)
-PERL_PPDEF(Perl_pp_ftzero)
-PERL_PPDEF(Perl_pp_ftsock)
-PERL_PPDEF(Perl_pp_ftchr)
-PERL_PPDEF(Perl_pp_ftblk)
-PERL_PPDEF(Perl_pp_ftfile)
-PERL_PPDEF(Perl_pp_ftdir)
-PERL_PPDEF(Perl_pp_ftpipe)
-PERL_PPDEF(Perl_pp_ftsuid)
-PERL_PPDEF(Perl_pp_ftsgid)
-PERL_PPDEF(Perl_pp_ftsvtx)
-PERL_PPDEF(Perl_pp_ftlink)
-PERL_PPDEF(Perl_pp_fttty)
-PERL_PPDEF(Perl_pp_fttext)
-PERL_PPDEF(Perl_pp_ftbinary)
-PERL_PPDEF(Perl_pp_chdir)
-PERL_PPDEF(Perl_pp_chown)
-PERL_PPDEF(Perl_pp_chroot)
-PERL_PPDEF(Perl_pp_unlink)
-PERL_PPDEF(Perl_pp_chmod)
-PERL_PPDEF(Perl_pp_utime)
-PERL_PPDEF(Perl_pp_rename)
-PERL_PPDEF(Perl_pp_link)
-PERL_PPDEF(Perl_pp_symlink)
-PERL_PPDEF(Perl_pp_readlink)
-PERL_PPDEF(Perl_pp_mkdir)
-PERL_PPDEF(Perl_pp_rmdir)
-PERL_PPDEF(Perl_pp_open_dir)
-PERL_PPDEF(Perl_pp_readdir)
-PERL_PPDEF(Perl_pp_telldir)
-PERL_PPDEF(Perl_pp_seekdir)
-PERL_PPDEF(Perl_pp_rewinddir)
-PERL_PPDEF(Perl_pp_closedir)
-PERL_PPDEF(Perl_pp_fork)
-PERL_PPDEF(Perl_pp_wait)
-PERL_PPDEF(Perl_pp_waitpid)
-PERL_PPDEF(Perl_pp_system)
-PERL_PPDEF(Perl_pp_exec)
-PERL_PPDEF(Perl_pp_kill)
-PERL_PPDEF(Perl_pp_getppid)
-PERL_PPDEF(Perl_pp_getpgrp)
-PERL_PPDEF(Perl_pp_setpgrp)
-PERL_PPDEF(Perl_pp_getpriority)
-PERL_PPDEF(Perl_pp_setpriority)
-PERL_PPDEF(Perl_pp_time)
-PERL_PPDEF(Perl_pp_tms)
-PERL_PPDEF(Perl_pp_localtime)
-PERL_PPDEF(Perl_pp_gmtime)
-PERL_PPDEF(Perl_pp_alarm)
-PERL_PPDEF(Perl_pp_sleep)
-PERL_PPDEF(Perl_pp_shmget)
-PERL_PPDEF(Perl_pp_shmctl)
-PERL_PPDEF(Perl_pp_shmread)
-PERL_PPDEF(Perl_pp_shmwrite)
-PERL_PPDEF(Perl_pp_msgget)
-PERL_PPDEF(Perl_pp_msgctl)
-PERL_PPDEF(Perl_pp_msgsnd)
-PERL_PPDEF(Perl_pp_msgrcv)
-PERL_PPDEF(Perl_pp_semop)
-PERL_PPDEF(Perl_pp_semget)
-PERL_PPDEF(Perl_pp_semctl)
-PERL_PPDEF(Perl_pp_require)
-PERL_PPDEF(Perl_pp_dofile)
-PERL_PPDEF(Perl_pp_hintseval)
-PERL_PPDEF(Perl_pp_entereval)
-PERL_PPDEF(Perl_pp_leaveeval)
-PERL_PPDEF(Perl_pp_entertry)
-PERL_PPDEF(Perl_pp_leavetry)
-PERL_PPDEF(Perl_pp_ghbyname)
-PERL_PPDEF(Perl_pp_ghbyaddr)
-PERL_PPDEF(Perl_pp_ghostent)
-PERL_PPDEF(Perl_pp_gnbyname)
-PERL_PPDEF(Perl_pp_gnbyaddr)
-PERL_PPDEF(Perl_pp_gnetent)
-PERL_PPDEF(Perl_pp_gpbyname)
-PERL_PPDEF(Perl_pp_gpbynumber)
-PERL_PPDEF(Perl_pp_gprotoent)
-PERL_PPDEF(Perl_pp_gsbyname)
-PERL_PPDEF(Perl_pp_gsbyport)
-PERL_PPDEF(Perl_pp_gservent)
-PERL_PPDEF(Perl_pp_shostent)
-PERL_PPDEF(Perl_pp_snetent)
-PERL_PPDEF(Perl_pp_sprotoent)
-PERL_PPDEF(Perl_pp_sservent)
-PERL_PPDEF(Perl_pp_ehostent)
-PERL_PPDEF(Perl_pp_enetent)
-PERL_PPDEF(Perl_pp_eprotoent)
-PERL_PPDEF(Perl_pp_eservent)
-PERL_PPDEF(Perl_pp_gpwnam)
-PERL_PPDEF(Perl_pp_gpwuid)
-PERL_PPDEF(Perl_pp_gpwent)
-PERL_PPDEF(Perl_pp_spwent)
-PERL_PPDEF(Perl_pp_epwent)
-PERL_PPDEF(Perl_pp_ggrnam)
-PERL_PPDEF(Perl_pp_ggrgid)
-PERL_PPDEF(Perl_pp_ggrent)
-PERL_PPDEF(Perl_pp_sgrent)
-PERL_PPDEF(Perl_pp_egrent)
-PERL_PPDEF(Perl_pp_getlogin)
-PERL_PPDEF(Perl_pp_syscall)
-PERL_PPDEF(Perl_pp_lock)
-PERL_PPDEF(Perl_pp_once)
+PERL_CALLCONV OP *Perl_do_kv(pTHX);
+PERL_CALLCONV OP *Perl_pp_aassign(pTHX);
+PERL_CALLCONV OP *Perl_pp_abs(pTHX);
+PERL_CALLCONV OP *Perl_pp_accept(pTHX);
+PERL_CALLCONV OP *Perl_pp_add(pTHX);
+PERL_CALLCONV OP *Perl_pp_aeach(pTHX);
+PERL_CALLCONV OP *Perl_pp_aelem(pTHX);
+PERL_CALLCONV OP *Perl_pp_aelemfast(pTHX);
+PERL_CALLCONV OP *Perl_pp_akeys(pTHX);
+PERL_CALLCONV OP *Perl_pp_alarm(pTHX);
+PERL_CALLCONV OP *Perl_pp_and(pTHX);
+PERL_CALLCONV OP *Perl_pp_anoncode(pTHX);
+PERL_CALLCONV OP *Perl_pp_anonhash(pTHX);
+PERL_CALLCONV OP *Perl_pp_anonlist(pTHX);
+PERL_CALLCONV OP *Perl_pp_aslice(pTHX);
+PERL_CALLCONV OP *Perl_pp_atan2(pTHX);
+PERL_CALLCONV OP *Perl_pp_av2arylen(pTHX);
+PERL_CALLCONV OP *Perl_pp_backtick(pTHX);
+PERL_CALLCONV OP *Perl_pp_bind(pTHX);
+PERL_CALLCONV OP *Perl_pp_binmode(pTHX);
+PERL_CALLCONV OP *Perl_pp_bit_and(pTHX);
+PERL_CALLCONV OP *Perl_pp_bit_or(pTHX);
+PERL_CALLCONV OP *Perl_pp_bless(pTHX);
+PERL_CALLCONV OP *Perl_pp_boolkeys(pTHX);
+PERL_CALLCONV OP *Perl_pp_break(pTHX);
+PERL_CALLCONV OP *Perl_pp_caller(pTHX);
+PERL_CALLCONV OP *Perl_pp_chdir(pTHX);
+PERL_CALLCONV OP *Perl_pp_chop(pTHX);
+PERL_CALLCONV OP *Perl_pp_chown(pTHX);
+PERL_CALLCONV OP *Perl_pp_chr(pTHX);
+PERL_CALLCONV OP *Perl_pp_chroot(pTHX);
+PERL_CALLCONV OP *Perl_pp_close(pTHX);
+PERL_CALLCONV OP *Perl_pp_closedir(pTHX);
+PERL_CALLCONV OP *Perl_pp_complement(pTHX);
+PERL_CALLCONV OP *Perl_pp_concat(pTHX);
+PERL_CALLCONV OP *Perl_pp_cond_expr(pTHX);
+PERL_CALLCONV OP *Perl_pp_const(pTHX);
+PERL_CALLCONV OP *Perl_pp_continue(pTHX);
+PERL_CALLCONV OP *Perl_pp_crypt(pTHX);
+PERL_CALLCONV OP *Perl_pp_dbmopen(pTHX);
+PERL_CALLCONV OP *Perl_pp_dbstate(pTHX);
+PERL_CALLCONV OP *Perl_pp_defined(pTHX);
+PERL_CALLCONV OP *Perl_pp_delete(pTHX);
+PERL_CALLCONV OP *Perl_pp_die(pTHX);
+PERL_CALLCONV OP *Perl_pp_divide(pTHX);
+PERL_CALLCONV OP *Perl_pp_each(pTHX);
+PERL_CALLCONV OP *Perl_pp_ehostent(pTHX);
+PERL_CALLCONV OP *Perl_pp_enter(pTHX);
+PERL_CALLCONV OP *Perl_pp_entereval(pTHX);
+PERL_CALLCONV OP *Perl_pp_entergiven(pTHX);
+PERL_CALLCONV OP *Perl_pp_enteriter(pTHX);
+PERL_CALLCONV OP *Perl_pp_enterloop(pTHX);
+PERL_CALLCONV OP *Perl_pp_entersub(pTHX);
+PERL_CALLCONV OP *Perl_pp_entertry(pTHX);
+PERL_CALLCONV OP *Perl_pp_enterwhen(pTHX);
+PERL_CALLCONV OP *Perl_pp_enterwrite(pTHX);
+PERL_CALLCONV OP *Perl_pp_eof(pTHX);
+PERL_CALLCONV OP *Perl_pp_eq(pTHX);
+PERL_CALLCONV OP *Perl_pp_exec(pTHX);
+PERL_CALLCONV OP *Perl_pp_exists(pTHX);
+PERL_CALLCONV OP *Perl_pp_exit(pTHX);
+PERL_CALLCONV OP *Perl_pp_fileno(pTHX);
+PERL_CALLCONV OP *Perl_pp_flip(pTHX);
+PERL_CALLCONV OP *Perl_pp_flock(pTHX);
+PERL_CALLCONV OP *Perl_pp_flop(pTHX);
+PERL_CALLCONV OP *Perl_pp_fork(pTHX);
+PERL_CALLCONV OP *Perl_pp_formline(pTHX);
+PERL_CALLCONV OP *Perl_pp_ftis(pTHX);
+PERL_CALLCONV OP *Perl_pp_ftlink(pTHX);
+PERL_CALLCONV OP *Perl_pp_ftrowned(pTHX);
+PERL_CALLCONV OP *Perl_pp_ftrread(pTHX);
+PERL_CALLCONV OP *Perl_pp_fttext(pTHX);
+PERL_CALLCONV OP *Perl_pp_fttty(pTHX);
+PERL_CALLCONV OP *Perl_pp_ge(pTHX);
+PERL_CALLCONV OP *Perl_pp_gelem(pTHX);
+PERL_CALLCONV OP *Perl_pp_getc(pTHX);
+PERL_CALLCONV OP *Perl_pp_getlogin(pTHX);
+PERL_CALLCONV OP *Perl_pp_getpeername(pTHX);
+PERL_CALLCONV OP *Perl_pp_getpgrp(pTHX);
+PERL_CALLCONV OP *Perl_pp_getppid(pTHX);
+PERL_CALLCONV OP *Perl_pp_getpriority(pTHX);
+PERL_CALLCONV OP *Perl_pp_ggrent(pTHX);
+PERL_CALLCONV OP *Perl_pp_ghostent(pTHX);
+PERL_CALLCONV OP *Perl_pp_glob(pTHX);
+PERL_CALLCONV OP *Perl_pp_gmtime(pTHX);
+PERL_CALLCONV OP *Perl_pp_gnetent(pTHX);
+PERL_CALLCONV OP *Perl_pp_goto(pTHX);
+PERL_CALLCONV OP *Perl_pp_gprotoent(pTHX);
+PERL_CALLCONV OP *Perl_pp_gpwent(pTHX);
+PERL_CALLCONV OP *Perl_pp_grepstart(pTHX);
+PERL_CALLCONV OP *Perl_pp_grepwhile(pTHX);
+PERL_CALLCONV OP *Perl_pp_gservent(pTHX);
+PERL_CALLCONV OP *Perl_pp_gt(pTHX);
+PERL_CALLCONV OP *Perl_pp_gv(pTHX);
+PERL_CALLCONV OP *Perl_pp_gvsv(pTHX);
+PERL_CALLCONV OP *Perl_pp_helem(pTHX);
+PERL_CALLCONV OP *Perl_pp_hintseval(pTHX);
+PERL_CALLCONV OP *Perl_pp_hslice(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_add(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_divide(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_eq(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_ge(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_gt(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_le(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_lt(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_modulo(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_multiply(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_ncmp(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_ne(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_negate(pTHX);
+PERL_CALLCONV OP *Perl_pp_i_subtract(pTHX);
+PERL_CALLCONV OP *Perl_pp_index(pTHX);
+PERL_CALLCONV OP *Perl_pp_int(pTHX);
+PERL_CALLCONV OP *Perl_pp_ioctl(pTHX);
+PERL_CALLCONV OP *Perl_pp_iter(pTHX);
+PERL_CALLCONV OP *Perl_pp_join(pTHX);
+PERL_CALLCONV OP *Perl_pp_last(pTHX);
+PERL_CALLCONV OP *Perl_pp_lc(pTHX);
+PERL_CALLCONV OP *Perl_pp_le(pTHX);
+PERL_CALLCONV OP *Perl_pp_leave(pTHX);
+PERL_CALLCONV OP *Perl_pp_leaveeval(pTHX);
+PERL_CALLCONV OP *Perl_pp_leavegiven(pTHX);
+PERL_CALLCONV OP *Perl_pp_leaveloop(pTHX);
+PERL_CALLCONV OP *Perl_pp_leavesub(pTHX);
+PERL_CALLCONV OP *Perl_pp_leavesublv(pTHX);
+PERL_CALLCONV OP *Perl_pp_leavetry(pTHX);
+PERL_CALLCONV OP *Perl_pp_leavewhen(pTHX);
+PERL_CALLCONV OP *Perl_pp_leavewrite(pTHX);
+PERL_CALLCONV OP *Perl_pp_left_shift(pTHX);
+PERL_CALLCONV OP *Perl_pp_length(pTHX);
+PERL_CALLCONV OP *Perl_pp_link(pTHX);
+PERL_CALLCONV OP *Perl_pp_list(pTHX);
+PERL_CALLCONV OP *Perl_pp_listen(pTHX);
+PERL_CALLCONV OP *Perl_pp_lock(pTHX);
+PERL_CALLCONV OP *Perl_pp_lslice(pTHX);
+PERL_CALLCONV OP *Perl_pp_lt(pTHX);
+PERL_CALLCONV OP *Perl_pp_mapwhile(pTHX);
+PERL_CALLCONV OP *Perl_pp_match(pTHX);
+PERL_CALLCONV OP *Perl_pp_method(pTHX);
+PERL_CALLCONV OP *Perl_pp_method_named(pTHX);
+PERL_CALLCONV OP *Perl_pp_mkdir(pTHX);
+PERL_CALLCONV OP *Perl_pp_modulo(pTHX);
+PERL_CALLCONV OP *Perl_pp_multiply(pTHX);
+PERL_CALLCONV OP *Perl_pp_ncmp(pTHX);
+PERL_CALLCONV OP *Perl_pp_ne(pTHX);
+PERL_CALLCONV OP *Perl_pp_negate(pTHX);
+PERL_CALLCONV OP *Perl_pp_next(pTHX);
+PERL_CALLCONV OP *Perl_pp_nextstate(pTHX);
+PERL_CALLCONV OP *Perl_pp_not(pTHX);
+PERL_CALLCONV OP *Perl_pp_null(pTHX);
+PERL_CALLCONV OP *Perl_pp_oct(pTHX);
+PERL_CALLCONV OP *Perl_pp_once(pTHX);
+PERL_CALLCONV OP *Perl_pp_open(pTHX);
+PERL_CALLCONV OP *Perl_pp_open_dir(pTHX);
+PERL_CALLCONV OP *Perl_pp_or(pTHX);
+PERL_CALLCONV OP *Perl_pp_ord(pTHX);
+PERL_CALLCONV OP *Perl_pp_pack(pTHX);
+PERL_CALLCONV OP *Perl_pp_padav(pTHX);
+PERL_CALLCONV OP *Perl_pp_padhv(pTHX);
+PERL_CALLCONV OP *Perl_pp_padsv(pTHX);
+PERL_CALLCONV OP *Perl_pp_pipe_op(pTHX);
+PERL_CALLCONV OP *Perl_pp_pos(pTHX);
+PERL_CALLCONV OP *Perl_pp_postdec(pTHX);
+PERL_CALLCONV OP *Perl_pp_postinc(pTHX);
+PERL_CALLCONV OP *Perl_pp_pow(pTHX);
+PERL_CALLCONV OP *Perl_pp_predec(pTHX);
+PERL_CALLCONV OP *Perl_pp_preinc(pTHX);
+PERL_CALLCONV OP *Perl_pp_print(pTHX);
+PERL_CALLCONV OP *Perl_pp_prototype(pTHX);
+PERL_CALLCONV OP *Perl_pp_prtf(pTHX);
+PERL_CALLCONV OP *Perl_pp_push(pTHX);
+PERL_CALLCONV OP *Perl_pp_pushmark(pTHX);
+PERL_CALLCONV OP *Perl_pp_pushre(pTHX);
+PERL_CALLCONV OP *Perl_pp_qr(pTHX);
+PERL_CALLCONV OP *Perl_pp_quotemeta(pTHX);
+PERL_CALLCONV OP *Perl_pp_rand(pTHX);
+PERL_CALLCONV OP *Perl_pp_range(pTHX);
+PERL_CALLCONV OP *Perl_pp_rcatline(pTHX);
+PERL_CALLCONV OP *Perl_pp_readdir(pTHX);
+PERL_CALLCONV OP *Perl_pp_readline(pTHX);
+PERL_CALLCONV OP *Perl_pp_readlink(pTHX);
+PERL_CALLCONV OP *Perl_pp_redo(pTHX);
+PERL_CALLCONV OP *Perl_pp_ref(pTHX);
+PERL_CALLCONV OP *Perl_pp_refgen(pTHX);
+PERL_CALLCONV OP *Perl_pp_regcomp(pTHX);
+PERL_CALLCONV OP *Perl_pp_regcreset(pTHX);
+PERL_CALLCONV OP *Perl_pp_rename(pTHX);
+PERL_CALLCONV OP *Perl_pp_repeat(pTHX);
+PERL_CALLCONV OP *Perl_pp_require(pTHX);
+PERL_CALLCONV OP *Perl_pp_reset(pTHX);
+PERL_CALLCONV OP *Perl_pp_return(pTHX);
+PERL_CALLCONV OP *Perl_pp_reverse(pTHX);
+PERL_CALLCONV OP *Perl_pp_rewinddir(pTHX);
+PERL_CALLCONV OP *Perl_pp_right_shift(pTHX);
+PERL_CALLCONV OP *Perl_pp_rkeys(pTHX);
+PERL_CALLCONV OP *Perl_pp_rmdir(pTHX);
+PERL_CALLCONV OP *Perl_pp_rv2av(pTHX);
+PERL_CALLCONV OP *Perl_pp_rv2cv(pTHX);
+PERL_CALLCONV OP *Perl_pp_rv2gv(pTHX);
+PERL_CALLCONV OP *Perl_pp_rv2sv(pTHX);
+PERL_CALLCONV OP *Perl_pp_sassign(pTHX);
+PERL_CALLCONV OP *Perl_pp_schop(pTHX);
+PERL_CALLCONV OP *Perl_pp_scmp(pTHX);
+PERL_CALLCONV OP *Perl_pp_seekdir(pTHX);
+PERL_CALLCONV OP *Perl_pp_select(pTHX);
+PERL_CALLCONV OP *Perl_pp_semctl(pTHX);
+PERL_CALLCONV OP *Perl_pp_semget(pTHX);
+PERL_CALLCONV OP *Perl_pp_seq(pTHX);
+PERL_CALLCONV OP *Perl_pp_setpgrp(pTHX);
+PERL_CALLCONV OP *Perl_pp_setpriority(pTHX);
+PERL_CALLCONV OP *Perl_pp_shift(pTHX);
+PERL_CALLCONV OP *Perl_pp_shmwrite(pTHX);
+PERL_CALLCONV OP *Perl_pp_shostent(pTHX);
+PERL_CALLCONV OP *Perl_pp_shutdown(pTHX);
+PERL_CALLCONV OP *Perl_pp_sin(pTHX);
+PERL_CALLCONV OP *Perl_pp_sle(pTHX);
+PERL_CALLCONV OP *Perl_pp_sleep(pTHX);
+PERL_CALLCONV OP *Perl_pp_smartmatch(pTHX);
+PERL_CALLCONV OP *Perl_pp_sne(pTHX);
+PERL_CALLCONV OP *Perl_pp_socket(pTHX);
+PERL_CALLCONV OP *Perl_pp_sockpair(pTHX);
+PERL_CALLCONV OP *Perl_pp_sort(pTHX);
+PERL_CALLCONV OP *Perl_pp_splice(pTHX);
+PERL_CALLCONV OP *Perl_pp_split(pTHX);
+PERL_CALLCONV OP *Perl_pp_sprintf(pTHX);
+PERL_CALLCONV OP *Perl_pp_srand(pTHX);
+PERL_CALLCONV OP *Perl_pp_srefgen(pTHX);
+PERL_CALLCONV OP *Perl_pp_sselect(pTHX);
+PERL_CALLCONV OP *Perl_pp_ssockopt(pTHX);
+PERL_CALLCONV OP *Perl_pp_stat(pTHX);
+PERL_CALLCONV OP *Perl_pp_stringify(pTHX);
+PERL_CALLCONV OP *Perl_pp_stub(pTHX);
+PERL_CALLCONV OP *Perl_pp_study(pTHX);
+PERL_CALLCONV OP *Perl_pp_subst(pTHX);
+PERL_CALLCONV OP *Perl_pp_substcont(pTHX);
+PERL_CALLCONV OP *Perl_pp_substr(pTHX);
+PERL_CALLCONV OP *Perl_pp_subtract(pTHX);
+PERL_CALLCONV OP *Perl_pp_syscall(pTHX);
+PERL_CALLCONV OP *Perl_pp_sysopen(pTHX);
+PERL_CALLCONV OP *Perl_pp_sysread(pTHX);
+PERL_CALLCONV OP *Perl_pp_sysseek(pTHX);
+PERL_CALLCONV OP *Perl_pp_system(pTHX);
+PERL_CALLCONV OP *Perl_pp_syswrite(pTHX);
+PERL_CALLCONV OP *Perl_pp_tell(pTHX);
+PERL_CALLCONV OP *Perl_pp_telldir(pTHX);
+PERL_CALLCONV OP *Perl_pp_tie(pTHX);
+PERL_CALLCONV OP *Perl_pp_tied(pTHX);
+PERL_CALLCONV OP *Perl_pp_time(pTHX);
+PERL_CALLCONV OP *Perl_pp_tms(pTHX);
+PERL_CALLCONV OP *Perl_pp_trans(pTHX);
+PERL_CALLCONV OP *Perl_pp_truncate(pTHX);
+PERL_CALLCONV OP *Perl_pp_uc(pTHX);
+PERL_CALLCONV OP *Perl_pp_ucfirst(pTHX);
+PERL_CALLCONV OP *Perl_pp_umask(pTHX);
+PERL_CALLCONV OP *Perl_pp_undef(pTHX);
+PERL_CALLCONV OP *Perl_pp_unpack(pTHX);
+PERL_CALLCONV OP *Perl_pp_unshift(pTHX);
+PERL_CALLCONV OP *Perl_pp_unstack(pTHX);
+PERL_CALLCONV OP *Perl_pp_untie(pTHX);
+PERL_CALLCONV OP *Perl_pp_vec(pTHX);
+PERL_CALLCONV OP *Perl_pp_wait(pTHX);
+PERL_CALLCONV OP *Perl_pp_waitpid(pTHX);
+PERL_CALLCONV OP *Perl_pp_wantarray(pTHX);
+PERL_CALLCONV OP *Perl_pp_warn(pTHX);
+PERL_CALLCONV OP *Perl_pp_xor(pTHX);
+PERL_CALLCONV OP *Perl_unimplemented_op(pTHX);
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/proto.h b/Master/tlpkg/tlperl/lib/CORE/proto.h
index 3306ab0d052..0b46a791149 100644
--- a/Master/tlpkg/tlperl/lib/CORE/proto.h
+++ b/Master/tlpkg/tlperl/lib/CORE/proto.h
@@ -1,153 +1,76 @@
-/* -*- buffer-read-only: t -*-
+/* -*- buffer-read-only: t -*-
*
* proto.h
*
- * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- * 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+ * 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by embed.pl from data in embed.fnc, embed.pl,
- * pp.sym, intrpvar.h, and perlvars.h.
+ * This file is built by regen/embed.pl from data in embed.fnc,
+ * regen/embed.pl, regen/opcodes, intrpvar.h and perlvars.h.
* Any changes made here will be lost!
*
* Edit those files and run 'make regen_headers' to effect changes.
*/
START_EXTERN_C
+PERL_CALLCONV int Perl_Gv_AMupdate(pTHX_ HV* stash, bool destructing)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_AMUPDATE \
+ assert(stash)
-#if defined(PERL_IMPLICIT_SYS)
-PERL_CALLCONV PerlInterpreter* perl_alloc_using(struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- __attribute__nonnull__(4)
- __attribute__nonnull__(5)
- __attribute__nonnull__(6)
- __attribute__nonnull__(7)
- __attribute__nonnull__(8)
- __attribute__nonnull__(9);
-#define PERL_ARGS_ASSERT_PERL_ALLOC_USING \
- assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
-
-#endif
-PERL_CALLCONV PerlInterpreter* perl_alloc(void);
-PERL_CALLCONV void perl_construct(PerlInterpreter *my_perl)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PERL_CONSTRUCT \
- assert(my_perl)
-
-PERL_CALLCONV int perl_destruct(PerlInterpreter *my_perl)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PERL_DESTRUCT \
- assert(my_perl)
-
-PERL_CALLCONV void perl_free(PerlInterpreter *my_perl)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PERL_FREE \
- assert(my_perl)
-
-PERL_CALLCONV int perl_run(PerlInterpreter *my_perl)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PERL_RUN \
- assert(my_perl)
-
-PERL_CALLCONV int perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char** argv, char** env)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PERL_PARSE \
- assert(my_perl)
-
-PERL_CALLCONV bool Perl_doing_taint(int argc, char** argv, char** env)
- __attribute__warn_unused_result__;
-
-#if defined(USE_ITHREADS)
-PERL_CALLCONV PerlInterpreter* perl_clone(PerlInterpreter *proto_perl, UV flags)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PERL_CLONE \
- assert(proto_perl)
-
-# if defined(PERL_IMPLICIT_SYS)
-PERL_CALLCONV PerlInterpreter* perl_clone_using(PerlInterpreter *proto_perl, UV flags, struct IPerlMem* ipM, struct IPerlMem* ipMS, struct IPerlMem* ipMP, struct IPerlEnv* ipE, struct IPerlStdIO* ipStd, struct IPerlLIO* ipLIO, struct IPerlDir* ipD, struct IPerlSock* ipS, struct IPerlProc* ipP)
- __attribute__nonnull__(1)
- __attribute__nonnull__(3)
- __attribute__nonnull__(4)
- __attribute__nonnull__(5)
- __attribute__nonnull__(6)
- __attribute__nonnull__(7)
- __attribute__nonnull__(8)
- __attribute__nonnull__(9)
- __attribute__nonnull__(10)
- __attribute__nonnull__(11);
-#define PERL_ARGS_ASSERT_PERL_CLONE_USING \
- assert(proto_perl); assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
-
-# endif
-#endif
-
-PERL_CALLCONV Malloc_t Perl_malloc(MEM_SIZE nbytes)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV Malloc_t Perl_calloc(MEM_SIZE elements, MEM_SIZE size)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+PERL_CALLCONV const char * Perl_PerlIO_context_layers(pTHX_ const char *mode);
+PERL_CALLCONV void Perl__append_range_to_invlist(pTHX_ HV* const invlist, const UV start, const UV end)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \
+ assert(invlist)
-PERL_CALLCONV Malloc_t Perl_realloc(Malloc_t where, MEM_SIZE nbytes)
- __attribute__malloc__
+PERL_CALLCONV HV* Perl__new_invlist(pTHX_ IV initial_size)
__attribute__warn_unused_result__;
-PERL_CALLCONV Free_t Perl_mfree(Malloc_t where);
-#if defined(MYMALLOC)
-PERL_CALLCONV MEM_SIZE Perl_malloced_size(void *p)
+PERL_CALLCONV HV* Perl__swash_inversion_hash(pTHX_ SV* const swash)
__attribute__warn_unused_result__
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_MALLOCED_SIZE \
- assert(p)
-
-PERL_CALLCONV MEM_SIZE Perl_malloc_good_size(size_t nbytes)
- __attribute__warn_unused_result__;
-
-#endif
-
-PERL_CALLCONV void* Perl_get_context(void)
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV void Perl_set_context(void *t)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_SET_CONTEXT \
- assert(t)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__SWASH_INVERSION_HASH \
+ assert(swash)
-PERL_CALLCONV I32 Perl_regcurly(const char *s)
+PERL_CALLCONV HV* Perl__swash_to_invlist(pTHX_ SV* const swash)
__attribute__warn_unused_result__
- __attribute__pure__
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_REGCURLY \
- assert(s)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__SWASH_TO_INVLIST \
+ assert(swash)
+PERL_CALLCONV UV Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS \
+ assert(p); assert(lenp)
-END_EXTERN_C
+PERL_CALLCONV UV Perl__to_utf8_fold_flags(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, U8 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS \
+ assert(p); assert(ustrp)
+
+PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_ALLOCMY \
+ assert(name)
-/* functions with flag 'n' should come before here */
-START_EXTERN_C
-# include "pp_proto.h"
PERL_CALLCONV SV* Perl_amagic_call(pTHX_ SV* left, SV* right, int method, int dir)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_AMAGIC_CALL \
assert(left); assert(right)
-PERL_CALLCONV int Perl_Gv_AMupdate(pTHX_ HV* stash, bool destructing)
+PERL_CALLCONV SV * Perl_amagic_deref_call(pTHX_ SV *ref, int method)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_AMUPDATE \
- assert(stash)
-
-PERL_CALLCONV CV* Perl_gv_handler(pTHX_ HV* stash, I32 id)
- __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL \
+ assert(ref)
-PERL_CALLCONV OP* Perl_append_elem(pTHX_ I32 optype, OP* first, OP* last);
-PERL_CALLCONV OP* Perl_append_list(pTHX_ I32 optype, LISTOP* first, LISTOP* last);
PERL_CALLCONV I32 Perl_apply(pTHX_ I32 type, SV** mark, SV** sp)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
@@ -161,11 +84,30 @@ PERL_CALLCONV void Perl_apply_attrs_string(pTHX_ const char *stashpv, CV *cv, co
#define PERL_ARGS_ASSERT_APPLY_ATTRS_STRING \
assert(stashpv); assert(cv); assert(attrstr)
+PERL_CALLCONV void Perl_atfork_lock(void);
+PERL_CALLCONV void Perl_atfork_unlock(void);
+PERL_CALLCONV SV** Perl_av_arylen_p(pTHX_ AV *av)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_AV_ARYLEN_P \
+ assert(av)
+
PERL_CALLCONV void Perl_av_clear(pTHX_ AV *av)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_AV_CLEAR \
assert(av)
+PERL_CALLCONV void Perl_av_create_and_push(pTHX_ AV **const avp, SV *const val)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH \
+ assert(avp); assert(val)
+
+PERL_CALLCONV SV** Perl_av_create_and_unshift_one(pTHX_ AV **const avp, SV *const val)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE \
+ assert(avp); assert(val)
+
PERL_CALLCONV SV* Perl_av_delete(pTHX_ AV *av, I32 key, I32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_AV_DELETE \
@@ -193,6 +135,11 @@ PERL_CALLCONV void Perl_av_fill(pTHX_ AV *av, I32 fill)
#define PERL_ARGS_ASSERT_AV_FILL \
assert(av)
+PERL_CALLCONV IV* Perl_av_iter_p(pTHX_ AV *av)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_AV_ITER_P \
+ assert(av)
+
PERL_CALLCONV I32 Perl_av_len(pTHX_ AV *av)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
@@ -210,12 +157,6 @@ PERL_CALLCONV SV* Perl_av_pop(pTHX_ AV *av)
#define PERL_ARGS_ASSERT_AV_POP \
assert(av)
-PERL_CALLCONV void Perl_av_create_and_push(pTHX_ AV **const avp, SV *const val)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH \
- assert(avp); assert(val)
-
PERL_CALLCONV void Perl_av_push(pTHX_ AV *av, SV *val)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -243,34 +184,11 @@ PERL_CALLCONV void Perl_av_undef(pTHX_ AV *av)
#define PERL_ARGS_ASSERT_AV_UNDEF \
assert(av)
-PERL_CALLCONV SV** Perl_av_create_and_unshift_one(pTHX_ AV **const avp, SV *const val)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_AV_CREATE_AND_UNSHIFT_ONE \
- assert(avp); assert(val)
-
PERL_CALLCONV void Perl_av_unshift(pTHX_ AV *av, I32 num)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_AV_UNSHIFT \
assert(av)
-PERL_CALLCONV SV** Perl_av_arylen_p(pTHX_ AV *av)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_AV_ARYLEN_P \
- assert(av)
-
-PERL_CALLCONV IV* Perl_av_iter_p(pTHX_ AV *av)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_AV_ITER_P \
- assert(av)
-
-#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
-STATIC MAGIC* S_get_aux_mg(pTHX_ AV *av)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_AUX_MG \
- assert(av)
-
-#endif
PERL_CALLCONV OP* Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2)
@@ -287,209 +205,472 @@ PERL_CALLCONV I32 Perl_block_gimme(pTHX)
PERL_CALLCONV int Perl_block_start(pTHX_ int full)
__attribute__warn_unused_result__;
-PERL_CALLCONV void Perl_boot_core_UNIVERSAL(pTHX);
+PERL_CALLCONV void Perl_blockhook_register(pTHX_ BHK *hk)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_BLOCKHOOK_REGISTER \
+ assert(hk)
+
PERL_CALLCONV void Perl_boot_core_PerlIO(pTHX);
+PERL_CALLCONV void Perl_boot_core_UNIVERSAL(pTHX);
+PERL_CALLCONV void Perl_boot_core_mro(pTHX);
+PERL_CALLCONV int Perl_bytes_cmp_utf8(pTHX_ const U8 *b, STRLEN blen, const U8 *u, STRLEN ulen)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_BYTES_CMP_UTF8 \
+ assert(b); assert(u)
+
+PERL_CALLCONV U8* Perl_bytes_from_utf8(pTHX_ const U8 *s, STRLEN *len, bool *is_utf8)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8 \
+ assert(s); assert(len)
+
+PERL_CALLCONV U8* Perl_bytes_to_utf8(pTHX_ const U8 *s, STRLEN *len)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_BYTES_TO_UTF8 \
+ assert(s); assert(len)
+
+PERL_CALLCONV I32 Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_CALL_ARGV \
+ assert(sub_name); assert(argv)
+
+PERL_CALLCONV void Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr);
PERL_CALLCONV void Perl_call_list(pTHX_ I32 oldscope, AV *paramList)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_CALL_LIST \
assert(paramList)
+PERL_CALLCONV I32 Perl_call_method(pTHX_ const char* methname, I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CALL_METHOD \
+ assert(methname)
+
+PERL_CALLCONV I32 Perl_call_pv(pTHX_ const char* sub_name, I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CALL_PV \
+ assert(sub_name)
+
+PERL_CALLCONV I32 Perl_call_sv(pTHX_ SV* sv, VOL I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CALL_SV \
+ assert(sv)
+
+PERL_CALLCONV const PERL_CONTEXT * Perl_caller_cx(pTHX_ I32 level, const PERL_CONTEXT **dbcxp);
+PERL_CALLCONV Malloc_t Perl_calloc(MEM_SIZE elements, MEM_SIZE size)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
PERL_CALLCONV bool Perl_cando(pTHX_ Mode_t mode, bool effective, const Stat_t* statbufp)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_3);
#define PERL_ARGS_ASSERT_CANDO \
assert(statbufp)
-PERL_CALLCONV U32 Perl_cast_ulong(pTHX_ NV f)
- __attribute__warn_unused_result__;
-
PERL_CALLCONV I32 Perl_cast_i32(pTHX_ NV f)
__attribute__warn_unused_result__;
PERL_CALLCONV IV Perl_cast_iv(pTHX_ NV f)
__attribute__warn_unused_result__;
-PERL_CALLCONV UV Perl_cast_uv(pTHX_ NV f)
+PERL_CALLCONV U32 Perl_cast_ulong(pTHX_ NV f)
__attribute__warn_unused_result__;
-#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
-PERL_CALLCONV I32 Perl_my_chsize(pTHX_ int fd, Off_t length)
+PERL_CALLCONV UV Perl_cast_uv(pTHX_ NV f)
__attribute__warn_unused_result__;
-#endif
-PERL_CALLCONV OP* Perl_convert(pTHX_ I32 optype, I32 flags, OP* o)
- __attribute__warn_unused_result__;
+PERL_CALLCONV bool Perl_check_utf8_print(pTHX_ const U8 *s, const STRLEN len)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CHECK_UTF8_PRINT \
+ assert(s)
-PERL_CALLCONV PERL_CONTEXT* Perl_create_eval_scope(pTHX_ U32 flags);
-PERL_CALLCONV void Perl_croak(pTHX_ const char* pat, ...)
- __attribute__noreturn__
- __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
+PERL_CALLCONV OP * Perl_ck_anoncode(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_ANONCODE \
+ assert(o)
-PERL_CALLCONV void Perl_vcroak(pTHX_ const char* pat, va_list* args)
- __attribute__noreturn__;
+PERL_CALLCONV OP * Perl_ck_bitop(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_BITOP \
+ assert(o)
-PERL_CALLCONV void Perl_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
- __attribute__noreturn__
+PERL_CALLCONV OP * Perl_ck_chdir(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_CHDIR \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_concat(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_CONCAT \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_defined(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_DEFINED \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_delete(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_DELETE \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_die(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_DIE \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_each(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_EACH \
+ assert(o)
+
+PERL_CALLCONV OP* Perl_ck_entersub_args_list(pTHX_ OP *entersubop)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_LIST \
+ assert(entersubop)
+
+PERL_CALLCONV OP* Perl_ck_entersub_args_proto(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_CROAK_XS_USAGE \
- assert(cv); assert(params)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO \
+ assert(entersubop); assert(namegv); assert(protosv)
+PERL_CALLCONV OP* Perl_ck_entersub_args_proto_or_list(pTHX_ OP *entersubop, GV *namegv, SV *protosv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_CK_ENTERSUB_ARGS_PROTO_OR_LIST \
+ assert(entersubop); assert(namegv); assert(protosv)
-#if defined(PERL_IMPLICIT_CONTEXT)
-PERL_CALLCONV void Perl_croak_nocontext(const char* pat, ...)
- __attribute__noreturn__
- __attribute__format__null_ok__(__printf__,1,2);
+PERL_CALLCONV OP * Perl_ck_eof(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_EOF \
+ assert(o)
-PERL_CALLCONV OP* Perl_die_nocontext(const char* pat, ...)
- __attribute__format__null_ok__(__printf__,1,2);
+PERL_CALLCONV OP * Perl_ck_eval(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_EVAL \
+ assert(o)
-PERL_CALLCONV void Perl_deb_nocontext(const char* pat, ...)
- __attribute__format__(__printf__,1,2)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_DEB_NOCONTEXT \
- assert(pat)
+PERL_CALLCONV OP * Perl_ck_exec(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_EXEC \
+ assert(o)
-PERL_CALLCONV char* Perl_form_nocontext(const char* pat, ...)
- __attribute__format__(__printf__,1,2)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_FORM_NOCONTEXT \
- assert(pat)
+PERL_CALLCONV OP * Perl_ck_exists(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_EXISTS \
+ assert(o)
-PERL_CALLCONV void Perl_load_module_nocontext(U32 flags, SV* name, SV* ver, ...)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT \
- assert(name)
+PERL_CALLCONV OP * Perl_ck_exit(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_EXIT \
+ assert(o)
-PERL_CALLCONV SV* Perl_mess_nocontext(const char* pat, ...)
- __attribute__format__(__printf__,1,2)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_MESS_NOCONTEXT \
- assert(pat)
+PERL_CALLCONV OP * Perl_ck_ftst(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_FTST \
+ assert(o)
-PERL_CALLCONV void Perl_warn_nocontext(const char* pat, ...)
- __attribute__format__(__printf__,1,2)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_WARN_NOCONTEXT \
- assert(pat)
+PERL_CALLCONV OP * Perl_ck_fun(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_FUN \
+ assert(o)
-PERL_CALLCONV void Perl_warner_nocontext(U32 err, const char* pat, ...)
- __attribute__format__(__printf__,2,3)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_WARNER_NOCONTEXT \
- assert(pat)
+PERL_CALLCONV OP * Perl_ck_glob(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_GLOB \
+ assert(o)
-PERL_CALLCONV SV* Perl_newSVpvf_nocontext(const char *const pat, ...)
- __attribute__format__(__printf__,1,2)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT \
- assert(pat)
+PERL_CALLCONV OP * Perl_ck_grep(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_GREP \
+ assert(o)
-PERL_CALLCONV void Perl_sv_catpvf_nocontext(SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,2,3)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT \
- assert(sv); assert(pat)
+PERL_CALLCONV OP * Perl_ck_index(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_INDEX \
+ assert(o)
-PERL_CALLCONV void Perl_sv_setpvf_nocontext(SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,2,3)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_SV_SETPVF_NOCONTEXT \
- assert(sv); assert(pat)
+PERL_CALLCONV OP * Perl_ck_join(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_JOIN \
+ assert(o)
-PERL_CALLCONV void Perl_sv_catpvf_mg_nocontext(SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,2,3)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT \
- assert(sv); assert(pat)
+PERL_CALLCONV OP * Perl_ck_lfun(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_LFUN \
+ assert(o)
-PERL_CALLCONV void Perl_sv_setpvf_mg_nocontext(SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,2,3)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_SV_SETPVF_MG_NOCONTEXT \
- assert(sv); assert(pat)
+PERL_CALLCONV OP * Perl_ck_listiob(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_LISTIOB \
+ assert(o)
-PERL_CALLCONV int Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
- __attribute__format__(__printf__,2,3)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_FPRINTF_NOCONTEXT \
- assert(stream); assert(format)
+PERL_CALLCONV OP * Perl_ck_match(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_MATCH \
+ assert(o)
-PERL_CALLCONV int Perl_printf_nocontext(const char *format, ...)
- __attribute__format__(__printf__,1,2)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PRINTF_NOCONTEXT \
- assert(format)
+PERL_CALLCONV OP * Perl_ck_method(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_METHOD \
+ assert(o)
-#endif
-PERL_CALLCONV void Perl_cv_ckproto_len(pTHX_ const CV* cv, const GV* gv, const char* p, const STRLEN len)
+PERL_CALLCONV OP * Perl_ck_null(pTHX_ OP *o)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CV_CKPROTO_LEN \
- assert(cv)
+#define PERL_ARGS_ASSERT_CK_NULL \
+ assert(o)
-PERL_CALLCONV CV* Perl_cv_clone(pTHX_ CV* proto)
+PERL_CALLCONV OP * Perl_ck_open(pTHX_ OP *o)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CV_CLONE \
- assert(proto)
+#define PERL_ARGS_ASSERT_CK_OPEN \
+ assert(o)
-PERL_CALLCONV SV* Perl_gv_const_sv(pTHX_ GV* gv)
+PERL_CALLCONV OP * Perl_ck_readline(pTHX_ OP *o)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_CONST_SV \
- assert(gv)
+#define PERL_ARGS_ASSERT_CK_READLINE \
+ assert(o)
-PERL_CALLCONV SV* Perl_cv_const_sv(pTHX_ const CV *const cv)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP * Perl_ck_repeat(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_REPEAT \
+ assert(o)
-PERL_CALLCONV SV* Perl_op_const_sv(pTHX_ const OP* o, CV* cv)
- __attribute__warn_unused_result__;
+PERL_CALLCONV OP * Perl_ck_require(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_REQUIRE \
+ assert(o)
-PERL_CALLCONV void Perl_cv_undef(pTHX_ CV* cv)
+PERL_CALLCONV OP * Perl_ck_return(pTHX_ OP *o)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CV_UNDEF \
- assert(cv)
+#define PERL_ARGS_ASSERT_CK_RETURN \
+ assert(o)
-PERL_CALLCONV void Perl_cx_dump(pTHX_ PERL_CONTEXT* cx)
+PERL_CALLCONV OP * Perl_ck_rfun(pTHX_ OP *o)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CX_DUMP \
- assert(cx)
+#define PERL_ARGS_ASSERT_CK_RFUN \
+ assert(o)
-PERL_CALLCONV SV* Perl_filter_add(pTHX_ filter_t funcp, SV* datasv);
-PERL_CALLCONV void Perl_filter_del(pTHX_ filter_t funcp)
+PERL_CALLCONV OP * Perl_ck_rvconst(pTHX_ OP *o)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FILTER_DEL \
- assert(funcp)
+#define PERL_ARGS_ASSERT_CK_RVCONST \
+ assert(o)
-PERL_CALLCONV I32 Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
+PERL_CALLCONV OP * Perl_ck_sassign(pTHX_ OP *o)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_FILTER_READ \
- assert(buf_sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SASSIGN \
+ assert(o)
-PERL_CALLCONV char** Perl_get_op_descs(pTHX)
+PERL_CALLCONV OP * Perl_ck_select(pTHX_ OP *o)
__attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SELECT \
+ assert(o)
-PERL_CALLCONV char** Perl_get_op_names(pTHX)
+PERL_CALLCONV OP * Perl_ck_shift(pTHX_ OP *o)
__attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SHIFT \
+ assert(o)
-PERL_CALLCONV const char* Perl_get_no_modify(pTHX)
+PERL_CALLCONV OP * Perl_ck_smartmatch(pTHX_ OP *o)
__attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SMARTMATCH \
+ assert(o)
-PERL_CALLCONV U32* Perl_get_opargs(pTHX)
+PERL_CALLCONV OP * Perl_ck_sort(pTHX_ OP *o)
__attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SORT \
+ assert(o)
-PERL_CALLCONV PPADDR_t* Perl_get_ppaddr(pTHX)
+PERL_CALLCONV OP * Perl_ck_spair(pTHX_ OP *o)
__attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SPAIR \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_split(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SPLIT \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_subr(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SUBR \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_substr(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SUBSTR \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_svconst(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_SVCONST \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_trunc(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_TRUNC \
+ assert(o)
+
+PERL_CALLCONV OP * Perl_ck_unpack(pTHX_ OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CK_UNPACK \
+ assert(o)
+
+PERL_CALLCONV void Perl_ck_warner(pTHX_ U32 err, const char* pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_CK_WARNER \
+ assert(pat)
+
+PERL_CALLCONV void Perl_ck_warner_d(pTHX_ U32 err, const char* pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_CK_WARNER_D \
+ assert(pat)
+
+PERL_CALLCONV bool Perl_ckwarn(pTHX_ U32 w);
+PERL_CALLCONV bool Perl_ckwarn_d(pTHX_ U32 w);
+PERL_CALLCONV OP* Perl_convert(pTHX_ I32 optype, I32 flags, OP* o)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV PERL_CONTEXT* Perl_create_eval_scope(pTHX_ U32 flags);
+PERL_CALLCONV void Perl_croak(pTHX_ const char* pat, ...)
+ __attribute__noreturn__
+ __attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
+
+PERL_CALLCONV void Perl_croak_no_modify(pTHX)
+ __attribute__noreturn__;
+
+PERL_CALLCONV void Perl_croak_sv(pTHX_ SV *baseex)
+ __attribute__noreturn__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CROAK_SV \
+ assert(baseex)
+
+PERL_CALLCONV void Perl_croak_xs_usage(pTHX_ const CV *const cv, const char *const params)
+ __attribute__noreturn__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_CROAK_XS_USAGE \
+ assert(cv); assert(params)
+
+PERL_CALLCONV const char * Perl_custom_op_desc(pTHX_ const OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CUSTOM_OP_DESC \
+ assert(o)
+
+PERL_CALLCONV const char * Perl_custom_op_name(pTHX_ const OP *o)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CUSTOM_OP_NAME \
+ assert(o)
+
+PERL_CALLCONV void Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, const XOP *xop)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER \
+ assert(ppaddr); assert(xop)
+
+PERL_CALLCONV const XOP * Perl_custom_op_xop(pTHX_ const OP *o)
+ __attribute__pure__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CUSTOM_OP_XOP \
+ assert(o)
+
+PERL_CALLCONV void Perl_cv_ckproto_len(pTHX_ const CV* cv, const GV* gv, const char* p, const STRLEN len)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CV_CKPROTO_LEN \
+ assert(cv)
+
+PERL_CALLCONV CV* Perl_cv_clone(pTHX_ CV* proto)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CV_CLONE \
+ assert(proto)
+
+PERL_CALLCONV SV* Perl_cv_const_sv(pTHX_ const CV *const cv)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV void Perl_cv_get_call_checker(pTHX_ CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_CV_GET_CALL_CHECKER \
+ assert(cv); assert(ckfun_p); assert(ckobj_p)
+
+PERL_CALLCONV void Perl_cv_set_call_checker(pTHX_ CV *cv, Perl_call_checker ckfun, SV *ckobj)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_CV_SET_CALL_CHECKER \
+ assert(cv); assert(ckfun); assert(ckobj)
+
+PERL_CALLCONV void Perl_cv_undef(pTHX_ CV* cv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CV_UNDEF \
+ assert(cv)
+
+PERL_CALLCONV void Perl_cvgv_set(pTHX_ CV* cv, GV* gv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CVGV_SET \
+ assert(cv)
+
+PERL_CALLCONV void Perl_cvstash_set(pTHX_ CV* cv, HV* stash)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CVSTASH_SET \
+ assert(cv)
+
+PERL_CALLCONV void Perl_cx_dump(pTHX_ PERL_CONTEXT* cx)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_CX_DUMP \
+ assert(cx)
PERL_CALLCONV I32 Perl_cxinc(pTHX)
__attribute__warn_unused_result__;
@@ -500,19 +681,16 @@ PERL_CALLCONV void Perl_deb(pTHX_ const char* pat, ...)
#define PERL_ARGS_ASSERT_DEB \
assert(pat)
-PERL_CALLCONV void Perl_vdeb(pTHX_ const char* pat, va_list* args)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VDEB \
- assert(pat)
-
-PERL_CALLCONV void Perl_debprofdump(pTHX);
+PERL_CALLCONV void Perl_deb_stack_all(pTHX);
PERL_CALLCONV I32 Perl_debop(pTHX_ const OP* o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_DEBOP \
assert(o)
+PERL_CALLCONV void Perl_debprofdump(pTHX);
PERL_CALLCONV I32 Perl_debstack(pTHX);
PERL_CALLCONV I32 Perl_debstackptrs(pTHX);
+PERL_CALLCONV void Perl_delete_eval_scope(pTHX);
PERL_CALLCONV char* Perl_delimcpy(char* to, const char* toend, const char* from, const char* fromend, int delim, I32* retlen)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -522,17 +700,21 @@ PERL_CALLCONV char* Perl_delimcpy(char* to, const char* toend, const char* from,
#define PERL_ARGS_ASSERT_DELIMCPY \
assert(to); assert(toend); assert(from); assert(fromend); assert(retlen)
-PERL_CALLCONV void Perl_delete_eval_scope(pTHX);
+PERL_CALLCONV void Perl_despatch_signals(pTHX);
PERL_CALLCONV OP* Perl_die(pTHX_ const char* pat, ...)
__attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-STATIC OP* S_vdie(pTHX_ const char* pat, va_list* args);
-#endif
-PERL_CALLCONV void Perl_die_where(pTHX_ SV* msv)
- __attribute__noreturn__;
+PERL_CALLCONV OP* Perl_die_sv(pTHX_ SV *baseex)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DIE_SV \
+ assert(baseex)
+
+PERL_CALLCONV void Perl_die_unwind(pTHX_ SV* msv)
+ __attribute__noreturn__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DIE_UNWIND \
+ assert(msv)
-PERL_CALLCONV void Perl_dounwind(pTHX_ I32 cxix);
/* PERL_CALLCONV bool Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3); */
@@ -550,104 +732,36 @@ PERL_CALLCONV int Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode)
#define PERL_ARGS_ASSERT_DO_BINMODE \
assert(fp)
-PERL_CALLCONV void Perl_do_chop(pTHX_ SV *astr, SV *sv)
- __attribute__nonnull__(pTHX_1)
+PERL_CALLCONV bool Perl_do_close(pTHX_ GV* gv, bool not_implicit);
+PERL_CALLCONV void Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_CHOP \
- assert(astr); assert(sv)
+#define PERL_ARGS_ASSERT_DO_DUMP_PAD \
+ assert(file)
-PERL_CALLCONV bool Perl_do_close(pTHX_ GV* gv, bool not_implicit);
PERL_CALLCONV bool Perl_do_eof(pTHX_ GV* gv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_DO_EOF \
assert(gv)
-
-#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-/* PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd)
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_DO_EXEC \
- assert(cmd)
-
-#else
-PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_EXEC \
- assert(cmd)
-
-#endif
-
-#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS)
-PERL_CALLCONV int Perl_do_aspawn(pTHX_ SV* really, SV** mark, SV** sp)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DO_ASPAWN \
- assert(mark); assert(sp)
-
-PERL_CALLCONV int Perl_do_spawn(pTHX_ char* cmd)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_SPAWN \
- assert(cmd)
-
-PERL_CALLCONV int Perl_do_spawn_nowait(pTHX_ char* cmd)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT \
- assert(cmd)
-
-#endif
-#if !defined(WIN32)
-PERL_CALLCONV bool Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_EXEC3 \
- assert(incmd)
-
-#endif
PERL_CALLCONV void Perl_do_execfree(pTHX);
-#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
-STATIC void S_exec_failed(pTHX_ const char *cmd, int fd, int do_report)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_EXEC_FAILED \
- assert(cmd)
-
-#endif
-#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
-PERL_CALLCONV I32 Perl_do_ipcctl(pTHX_ I32 optype, SV** mark, SV** sp)
+PERL_CALLCONV void Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DO_IPCCTL \
- assert(mark); assert(sp)
+#define PERL_ARGS_ASSERT_DO_GV_DUMP \
+ assert(file); assert(name)
-PERL_CALLCONV I32 Perl_do_ipcget(pTHX_ I32 optype, SV** mark, SV** sp)
+PERL_CALLCONV void Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DO_IPCGET \
- assert(mark); assert(sp)
-
-PERL_CALLCONV I32 Perl_do_msgrcv(pTHX_ SV** mark, SV** sp)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_MSGRCV \
- assert(mark); assert(sp)
-
-PERL_CALLCONV I32 Perl_do_msgsnd(pTHX_ SV** mark, SV** sp)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_MSGSND \
- assert(mark); assert(sp)
-
-PERL_CALLCONV I32 Perl_do_semop(pTHX_ SV** mark, SV** sp)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_SEMOP \
- assert(mark); assert(sp)
+#define PERL_ARGS_ASSERT_DO_GVGV_DUMP \
+ assert(file); assert(name)
-PERL_CALLCONV I32 Perl_do_shmio(pTHX_ I32 optype, SV** mark, SV** sp)
+PERL_CALLCONV void Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, const char *name, HV *sv)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DO_SHMIO \
- assert(mark); assert(sp)
+#define PERL_ARGS_ASSERT_DO_HV_DUMP \
+ assert(file); assert(name)
-#endif
PERL_CALLCONV void Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -656,7 +770,17 @@ PERL_CALLCONV void Perl_do_join(pTHX_ SV *sv, SV *delim, SV **mark, SV **sp)
#define PERL_ARGS_ASSERT_DO_JOIN \
assert(sv); assert(delim); assert(mark); assert(sp)
-PERL_CALLCONV OP* Perl_do_kv(pTHX);
+PERL_CALLCONV void Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_DO_MAGIC_DUMP \
+ assert(file); assert(mg)
+
+PERL_CALLCONV void Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_DO_OP_DUMP \
+ assert(file)
+
/* PERL_CALLCONV bool Perl_do_open(pTHX_ GV* gv, const char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2); */
@@ -676,6 +800,11 @@ PERL_CALLCONV bool Perl_do_openn(pTHX_ GV *gv, const char *oname, I32 len, int a
#define PERL_ARGS_ASSERT_DO_OPENN \
assert(gv); assert(oname)
+PERL_CALLCONV void Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, const PMOP *pm)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_DO_PMOP_DUMP \
+ assert(file)
+
PERL_CALLCONV bool Perl_do_print(pTHX_ SV* sv, PerlIO* fp)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_DO_PRINT \
@@ -684,11 +813,6 @@ PERL_CALLCONV bool Perl_do_print(pTHX_ SV* sv, PerlIO* fp)
PERL_CALLCONV OP* Perl_do_readline(pTHX)
__attribute__warn_unused_result__;
-PERL_CALLCONV I32 Perl_do_chomp(pTHX_ SV* sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_CHOMP \
- assert(sv)
-
PERL_CALLCONV bool Perl_do_seek(pTHX_ GV* gv, Off_t pos, int whence);
PERL_CALLCONV void Perl_do_sprintf(pTHX_ SV* sv, I32 len, SV** sarg)
__attribute__nonnull__(pTHX_1)
@@ -696,6 +820,11 @@ PERL_CALLCONV void Perl_do_sprintf(pTHX_ SV* sv, I32 len, SV** sarg)
#define PERL_ARGS_ASSERT_DO_SPRINTF \
assert(sv); assert(sarg)
+PERL_CALLCONV void Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_DO_SV_DUMP \
+ assert(file)
+
PERL_CALLCONV Off_t Perl_do_sysseek(pTHX_ GV* gv, Off_t pos, int whence)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_DO_SYSSEEK \
@@ -734,35 +863,33 @@ PERL_CALLCONV OP* Perl_dofile(pTHX_ OP* term, I32 force_builtin)
#define PERL_ARGS_ASSERT_DOFILE \
assert(term)
+PERL_CALLCONV bool Perl_doing_taint(int argc, char** argv, char** env)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV OP * Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DOREF \
+ assert(o)
+
+PERL_CALLCONV void Perl_dounwind(pTHX_ I32 cxix);
PERL_CALLCONV I32 Perl_dowantarray(pTHX)
__attribute__warn_unused_result__;
PERL_CALLCONV void Perl_dump_all(pTHX);
PERL_CALLCONV void Perl_dump_all_perl(pTHX_ bool justperl);
PERL_CALLCONV void Perl_dump_eval(pTHX);
-#if defined(DUMP_FDS)
-PERL_CALLCONV void Perl_dump_fds(pTHX_ char* s)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DUMP_FDS \
- assert(s)
-
-#endif
PERL_CALLCONV void Perl_dump_form(pTHX_ const GV* gv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_DUMP_FORM \
assert(gv)
-PERL_CALLCONV void Perl_gv_dump(pTHX_ GV* gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_DUMP \
- assert(gv)
-
-PERL_CALLCONV void Perl_op_dump(pTHX_ const OP *o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OP_DUMP \
- assert(o)
+PERL_CALLCONV void Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
+ __attribute__format__(__printf__,pTHX_3,pTHX_4)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_DUMP_INDENT \
+ assert(file); assert(pat)
-PERL_CALLCONV void Perl_pmop_dump(pTHX_ PMOP* pm);
PERL_CALLCONV void Perl_dump_packsubs(pTHX_ const HV* stash)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_DUMP_PACKSUBS \
@@ -783,6 +910,28 @@ PERL_CALLCONV void Perl_dump_sub_perl(pTHX_ const GV* gv, bool justperl)
#define PERL_ARGS_ASSERT_DUMP_SUB_PERL \
assert(gv)
+PERL_CALLCONV void Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_DUMP_VINDENT \
+ assert(file); assert(pat)
+
+PERL_CALLCONV void Perl_emulate_cop_io(pTHX_ const COP *const c, SV *const sv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_EMULATE_COP_IO \
+ assert(c); assert(sv)
+
+PERL_CALLCONV SV* Perl_eval_pv(pTHX_ const char* p, I32 croak_on_error)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_EVAL_PV \
+ assert(p)
+
+PERL_CALLCONV I32 Perl_eval_sv(pTHX_ SV* sv, I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_EVAL_SV \
+ assert(sv)
+
PERL_CALLCONV void Perl_fbm_compile(pTHX_ SV* sv, U32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_FBM_COMPILE \
@@ -796,53 +945,183 @@ PERL_CALLCONV char* Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bige
#define PERL_ARGS_ASSERT_FBM_INSTR \
assert(big); assert(bigend); assert(littlestr)
+PERL_CALLCONV bool Perl_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FEATURE_IS_ENABLED \
+ assert(name)
+
+PERL_CALLCONV const char * Perl_fetch_cop_label(pTHX_ COP *const cop, STRLEN *len, U32 *flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FETCH_COP_LABEL \
+ assert(cop)
+
+PERL_CALLCONV SV* Perl_filter_add(pTHX_ filter_t funcp, SV* datasv);
+PERL_CALLCONV void Perl_filter_del(pTHX_ filter_t funcp)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FILTER_DEL \
+ assert(funcp)
+
+PERL_CALLCONV I32 Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_FILTER_READ \
+ assert(buf_sv)
+
+PERL_CALLCONV CV* Perl_find_runcv(pTHX_ U32 *db_seqp)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV SV* Perl_find_rundefsv(pTHX);
+PERL_CALLCONV PADOFFSET Perl_find_rundefsvoffset(pTHX)
+ __attribute__deprecated__;
+
PERL_CALLCONV char* Perl_find_script(pTHX_ const char *scriptname, bool dosearch, const char *const *const search_ext, I32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_FIND_SCRIPT \
assert(scriptname)
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-STATIC OP* S_force_list(pTHX_ OP* arg);
-STATIC OP* S_fold_constants(pTHX_ OP *o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FOLD_CONSTANTS \
- assert(o)
+PERL_CALLCONV I32 Perl_foldEQ(const char* a, const char* b, I32 len)
+ __attribute__pure__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_FOLDEQ \
+ assert(a); assert(b)
+
+PERL_CALLCONV I32 Perl_foldEQ_latin1(const char* a, const char* b, I32 len)
+ __attribute__pure__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_FOLDEQ_LATIN1 \
+ assert(a); assert(b)
+
+PERL_CALLCONV I32 Perl_foldEQ_locale(const char* a, const char* b, I32 len)
+ __attribute__pure__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_FOLDEQ_LOCALE \
+ assert(a); assert(b)
+
+/* PERL_CALLCONV I32 foldEQ_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_5); */
+
+PERL_CALLCONV I32 Perl_foldEQ_utf8_flags(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2, U32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS \
+ assert(s1); assert(s2)
-#endif
PERL_CALLCONV char* Perl_form(pTHX_ const char* pat, ...)
__attribute__format__(__printf__,pTHX_1,pTHX_2)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_FORM \
assert(pat)
-PERL_CALLCONV char* Perl_vform(pTHX_ const char* pat, va_list* args)
+PERL_CALLCONV void Perl_free_tied_hv_pool(pTHX);
+PERL_CALLCONV void Perl_free_tmps(pTHX);
+PERL_CALLCONV AV* Perl_get_av(pTHX_ const char *name, I32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VFORM \
- assert(pat)
+#define PERL_ARGS_ASSERT_GET_AV \
+ assert(name)
-PERL_CALLCONV void Perl_free_tmps(pTHX);
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-STATIC OP* S_gen_constant_list(pTHX_ OP* o);
-#endif
-#if !defined(HAS_GETENV_LEN)
-PERL_CALLCONV char* Perl_getenv_len(pTHX_ const char *env_elem, unsigned long *len)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GETENV_LEN \
- assert(env_elem); assert(len)
+PERL_CALLCONV void* Perl_get_context(void)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV CV* Perl_get_cv(pTHX_ const char* name, I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GET_CV \
+ assert(name)
+
+PERL_CALLCONV CV* Perl_get_cvn_flags(pTHX_ const char* name, STRLEN len, I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GET_CVN_FLAGS \
+ assert(name)
-#endif
PERL_CALLCONV void Perl_get_db_sub(pTHX_ SV **svp, CV *cv)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_GET_DB_SUB \
assert(cv)
+PERL_CALLCONV UV Perl_get_hash_seed(pTHX)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV HV* Perl_get_hv(pTHX_ const char *name, I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GET_HV \
+ assert(name)
+
+PERL_CALLCONV const char* Perl_get_no_modify(pTHX)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
+PERL_CALLCONV char** Perl_get_op_descs(pTHX)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
+PERL_CALLCONV char** Perl_get_op_names(pTHX)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
+PERL_CALLCONV U32* Perl_get_opargs(pTHX)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
+PERL_CALLCONV PPADDR_t* Perl_get_ppaddr(pTHX)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
+PERL_CALLCONV REGEXP * Perl_get_re_arg(pTHX_ SV *sv);
+PERL_CALLCONV SV* Perl_get_sv(pTHX_ const char *name, I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GET_SV \
+ assert(name)
+
+PERL_CALLCONV MGVTBL* Perl_get_vtbl(pTHX_ int vtbl_id)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV int Perl_getcwd_sv(pTHX_ SV* sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GETCWD_SV \
+ assert(sv)
+
PERL_CALLCONV void Perl_gp_free(pTHX_ GV* gv);
PERL_CALLCONV GP* Perl_gp_ref(pTHX_ GP* gp);
-PERL_CALLCONV GV* Perl_gv_add_by_type(pTHX_ GV *gv, svtype type);
+PERL_CALLCONV UV Perl_grok_bin(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_GROK_BIN \
+ assert(start); assert(len_p); assert(flags)
+
+PERL_CALLCONV UV Perl_grok_hex(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_GROK_HEX \
+ assert(start); assert(len_p); assert(flags)
+
+PERL_CALLCONV int Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GROK_NUMBER \
+ assert(pv)
+
+PERL_CALLCONV bool Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX \
+ assert(sp); assert(send)
+
+PERL_CALLCONV UV Perl_grok_oct(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_GROK_OCT \
+ assert(start); assert(len_p); assert(flags)
+
/* PERL_CALLCONV GV* Perl_gv_AVadd(pTHX_ GV *gv); */
/* PERL_CALLCONV GV* Perl_gv_HVadd(pTHX_ GV *gv); */
/* PERL_CALLCONV GV* Perl_gv_IOadd(pTHX_ GV* gv); */
+PERL_CALLCONV GV* Perl_gv_add_by_type(pTHX_ GV *gv, svtype type);
PERL_CALLCONV GV* Perl_gv_autoload4(pTHX_ HV* stash, const char* name, STRLEN len, I32 method)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2);
@@ -854,6 +1133,17 @@ PERL_CALLCONV void Perl_gv_check(pTHX_ const HV* stash)
#define PERL_ARGS_ASSERT_GV_CHECK \
assert(stash)
+PERL_CALLCONV SV* Perl_gv_const_sv(pTHX_ GV* gv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_CONST_SV \
+ assert(gv)
+
+PERL_CALLCONV void Perl_gv_dump(pTHX_ GV* gv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_DUMP \
+ assert(gv)
+
PERL_CALLCONV void Perl_gv_efullname(pTHX_ SV* sv, const GV* gv)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -915,6 +1205,16 @@ PERL_CALLCONV GV* Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, const svtyp
#define PERL_ARGS_ASSERT_GV_FETCHPV \
assert(nambeg)
+PERL_CALLCONV GV* Perl_gv_fetchpvn_flags(pTHX_ const char* name, STRLEN len, I32 flags, const svtype sv_type)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS \
+ assert(name)
+
+PERL_CALLCONV GV* Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype sv_type)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_FETCHSV \
+ assert(name)
+
PERL_CALLCONV void Perl_gv_fullname(pTHX_ SV* sv, const GV* gv)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -933,10 +1233,8 @@ PERL_CALLCONV void Perl_gv_fullname4(pTHX_ SV* sv, const GV* gv, const char* pre
#define PERL_ARGS_ASSERT_GV_FULLNAME4 \
assert(sv); assert(gv)
-PERL_CALLCONV GP * Perl_newGP(pTHX_ GV *const gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NEWGP \
- assert(gv)
+PERL_CALLCONV CV* Perl_gv_handler(pTHX_ HV* stash, I32 id)
+ __attribute__warn_unused_result__;
PERL_CALLCONV void Perl_gv_init(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, int multi)
__attribute__nonnull__(pTHX_1)
@@ -950,11 +1248,6 @@ PERL_CALLCONV void Perl_gv_name_set(pTHX_ GV* gv, const char *name, U32 len, U32
#define PERL_ARGS_ASSERT_GV_NAME_SET \
assert(gv); assert(name)
-PERL_CALLCONV void Perl_gv_try_downgrade(pTHX_ GV* gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE \
- assert(gv)
-
PERL_CALLCONV HV* Perl_gv_stashpv(pTHX_ const char* name, I32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_GV_STASHPV \
@@ -970,8 +1263,31 @@ PERL_CALLCONV HV* Perl_gv_stashsv(pTHX_ SV* sv, I32 flags)
#define PERL_ARGS_ASSERT_GV_STASHSV \
assert(sv)
+PERL_CALLCONV void Perl_gv_try_downgrade(pTHX_ GV* gv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_TRY_DOWNGRADE \
+ assert(gv)
+
+PERL_CALLCONV AV** Perl_hv_backreferences_p(pTHX_ HV *hv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_BACKREFERENCES_P \
+ assert(hv)
+
PERL_CALLCONV void Perl_hv_clear(pTHX_ HV *hv);
-PERL_CALLCONV HV * Perl_hv_copy_hints_hv(pTHX_ HV *const ohv);
+PERL_CALLCONV void Perl_hv_clear_placeholders(pTHX_ HV *hv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS \
+ assert(hv)
+
+PERL_CALLCONV void* Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char* key, STRLEN klen, int flags, int action, SV *val, U32 hash);
+PERL_CALLCONV void* Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32, const int action, SV *val, const U32 hash)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN \
+ assert(key)
+
+PERL_CALLCONV HV * Perl_hv_copy_hints_hv(pTHX_ HV *const ohv)
+ __attribute__warn_unused_result__;
+
PERL_CALLCONV void Perl_hv_delayfree_ent(pTHX_ HV *hv, HE *entry)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_HV_DELAYFREE_ENT \
@@ -987,6 +1303,29 @@ PERL_CALLCONV void Perl_hv_delayfree_ent(pTHX_ HV *hv, HE *entry)
#define PERL_ARGS_ASSERT_HV_DELETE_ENT \
assert(keysv)
+PERL_CALLCONV HE** Perl_hv_eiter_p(pTHX_ HV *hv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_EITER_P \
+ assert(hv)
+
+PERL_CALLCONV void Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_EITER_SET \
+ assert(hv)
+
+PERL_CALLCONV void Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_HV_ENAME_ADD \
+ assert(hv); assert(name)
+
+PERL_CALLCONV void Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_HV_ENAME_DELETE \
+ assert(hv); assert(name)
+
/* PERL_CALLCONV bool Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2); */
@@ -1009,11 +1348,10 @@ PERL_CALLCONV void Perl_hv_delayfree_ent(pTHX_ HV *hv, HE *entry)
#define PERL_ARGS_ASSERT_HV_FETCH_ENT \
assert(keysv)
-PERL_CALLCONV void* Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char* key, STRLEN klen, int flags, int action, SV *val, U32 hash);
-PERL_CALLCONV void* Perl_hv_common_key_len(pTHX_ HV *hv, const char *key, I32 klen_i32, const int action, SV *val, const U32 hash)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_HV_COMMON_KEY_LEN \
- assert(key)
+PERL_CALLCONV STRLEN Perl_hv_fill(pTHX_ HV const *const hv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_FILL \
+ assert(hv)
PERL_CALLCONV void Perl_hv_free_ent(pTHX_ HV *hv, HE *entryK)
__attribute__nonnull__(pTHX_1);
@@ -1044,6 +1382,12 @@ PERL_CALLCONV SV* Perl_hv_iterkeysv(pTHX_ HE* entry)
#define PERL_ARGS_ASSERT_HV_ITERNEXT \
assert(hv)
+PERL_CALLCONV HE* Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS \
+ assert(hv)
+
PERL_CALLCONV SV* Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
@@ -1052,12 +1396,6 @@ PERL_CALLCONV SV* Perl_hv_iternextsv(pTHX_ HV *hv, char **key, I32 *retlen)
#define PERL_ARGS_ASSERT_HV_ITERNEXTSV \
assert(hv); assert(key); assert(retlen)
-PERL_CALLCONV HE* Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_ITERNEXT_FLAGS \
- assert(hv)
-
PERL_CALLCONV SV* Perl_hv_iterval(pTHX_ HV *hv, HE *entry)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
@@ -1075,47 +1413,62 @@ PERL_CALLCONV void Perl_hv_ksplit(pTHX_ HV *hv, IV newmax)
#define PERL_ARGS_ASSERT_HV_MAGIC \
assert(hv)
-PERL_CALLCONV HV * Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *c);
-PERL_CALLCONV SV * Perl_refcounted_he_fetch(pTHX_ const struct refcounted_he *chain, SV *keysv, const char *key, STRLEN klen, int flags, U32 hash);
-PERL_CALLCONV void Perl_refcounted_he_free(pTHX_ struct refcounted_he *he);
-PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_new(pTHX_ struct refcounted_he *const parent, SV *const key, SV *const value);
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-STATIC struct refcounted_he * S_refcounted_he_new_common(pTHX_ struct refcounted_he *const parent, const char *const key_p, const STRLEN key_len, const char flags, char value_type, const void *value, const STRLEN value_len)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_6);
-#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_COMMON \
- assert(key_p); assert(value)
+PERL_CALLCONV void Perl_hv_name_set(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_NAME_SET \
+ assert(hv)
+
+PERL_CALLCONV I32 Perl_hv_placeholders_get(pTHX_ const HV *hv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET \
+ assert(hv)
+
+PERL_CALLCONV I32* Perl_hv_placeholders_p(pTHX_ HV *hv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P \
+ assert(hv)
+
+PERL_CALLCONV void Perl_hv_placeholders_set(pTHX_ HV *hv, I32 ph)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET \
+ assert(hv)
+
+PERL_CALLCONV I32* Perl_hv_riter_p(pTHX_ HV *hv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_RITER_P \
+ assert(hv)
+
+PERL_CALLCONV void Perl_hv_riter_set(pTHX_ HV *hv, I32 riter)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_RITER_SET \
+ assert(hv)
+
+PERL_CALLCONV SV* Perl_hv_scalar(pTHX_ HV *hv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_SCALAR \
+ assert(hv)
-#endif
/* PERL_CALLCONV SV** Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash); */
/* PERL_CALLCONV HE* Perl_hv_store_ent(pTHX_ HV *hv, SV *key, SV *val, U32 hash); */
/* PERL_CALLCONV SV** Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash, int flags); */
-PERL_CALLCONV void Perl_hv_undef(pTHX_ HV *hv);
-PERL_CALLCONV I32 Perl_ibcmp(const char* a, const char* b, I32 len)
- __attribute__pure__
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_IBCMP \
- assert(a); assert(b)
-
-PERL_CALLCONV I32 Perl_ibcmp_locale(const char* a, const char* b, I32 len)
- __attribute__pure__
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_IBCMP_LOCALE \
- assert(a); assert(b)
+/* PERL_CALLCONV void hv_undef(pTHX_ HV *hv); */
+PERL_CALLCONV void Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags);
+/* PERL_CALLCONV I32 ibcmp(pTHX_ const char* a, const char* b, I32 len)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2); */
-PERL_CALLCONV I32 Perl_ibcmp_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2)
+/* PERL_CALLCONV I32 ibcmp_locale(pTHX_ const char* a, const char* b, I32 len)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_5);
-#define PERL_ARGS_ASSERT_IBCMP_UTF8 \
- assert(s1); assert(s2)
+ __attribute__nonnull__(pTHX_2); */
-#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
-STATIC bool S_ingroup(pTHX_ Gid_t testgid, bool effective)
- __attribute__warn_unused_result__;
+/* PERL_CALLCONV I32 ibcmp_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_5); */
-#endif
PERL_CALLCONV void Perl_init_argv_symbols(pTHX_ int argc, char **argv)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS \
@@ -1123,13 +1476,14 @@ PERL_CALLCONV void Perl_init_argv_symbols(pTHX_ int argc, char **argv)
PERL_CALLCONV void Perl_init_dbargs(pTHX);
PERL_CALLCONV void Perl_init_debugger(pTHX);
+PERL_CALLCONV int Perl_init_i18nl10n(pTHX_ int printwarn);
+PERL_CALLCONV int Perl_init_i18nl14n(pTHX_ int printwarn);
PERL_CALLCONV void Perl_init_stacks(pTHX);
PERL_CALLCONV void Perl_init_tm(pTHX_ struct tm *ptm)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_INIT_TM \
assert(ptm)
-PERL_CALLCONV U32 Perl_intro_my(pTHX);
PERL_CALLCONV char* Perl_instr(const char* big, const char* little)
__attribute__warn_unused_result__
__attribute__pure__
@@ -1138,38 +1492,42 @@ PERL_CALLCONV char* Perl_instr(const char* big, const char* little)
#define PERL_ARGS_ASSERT_INSTR \
assert(big); assert(little)
+PERL_CALLCONV U32 Perl_intro_my(pTHX);
+PERL_CALLCONV OP* Perl_invert(pTHX_ OP* cmd)
+ __attribute__warn_unused_result__;
+
PERL_CALLCONV bool Perl_io_close(pTHX_ IO* io, bool not_implicit)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_IO_CLOSE \
assert(io)
-PERL_CALLCONV OP* Perl_invert(pTHX_ OP* cmd)
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV I32 Perl_is_lvalue_sub(pTHX)
- __attribute__warn_unused_result__;
+PERL_CALLCONV bool Perl_is_ascii_string(const U8 *s, STRLEN len)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_IS_ASCII_STRING \
+ assert(s)
-PERL_CALLCONV U32 Perl_to_uni_upper_lc(pTHX_ U32 c)
+PERL_CALLCONV bool Perl_is_gv_magical_sv(pTHX_ SV *const name_sv, U32 flags)
__attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_GV_MAGICAL_SV \
+ assert(name_sv)
-PERL_CALLCONV U32 Perl_to_uni_title_lc(pTHX_ U32 c)
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV I32 Perl_is_lvalue_sub(pTHX)
+ __attribute__warn_unused_result__;
-PERL_CALLCONV U32 Perl_to_uni_lower_lc(pTHX_ U32 c)
+PERL_CALLCONV bool Perl_is_uni_alnum(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_alnum(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_alnum_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_idfirst(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_alpha(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_alpha(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_alpha_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
@@ -1177,7 +1535,7 @@ PERL_CALLCONV bool Perl_is_uni_ascii(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_space(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_ascii_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
@@ -1185,7 +1543,7 @@ PERL_CALLCONV bool Perl_is_uni_cntrl(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_graph(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_cntrl_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
@@ -1193,95 +1551,67 @@ PERL_CALLCONV bool Perl_is_uni_digit(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_upper(pTHX_ UV c)
- __attribute__warn_unused_result__
- __attribute__pure__;
-
-PERL_CALLCONV bool Perl_is_uni_lower(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_digit_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_print(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_graph(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_punct(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_graph_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_xdigit(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_idfirst(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV UV Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_TO_UNI_UPPER \
- assert(p); assert(lenp)
-
-PERL_CALLCONV UV Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_TO_UNI_TITLE \
- assert(p); assert(lenp)
-
-PERL_CALLCONV UV Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_TO_UNI_LOWER \
- assert(p); assert(lenp)
-
-PERL_CALLCONV UV Perl_to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_TO_UNI_FOLD \
- assert(p); assert(lenp)
-
-PERL_CALLCONV bool Perl_is_uni_alnum_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_idfirst_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_idfirst_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_lower(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_alpha_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_lower_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_ascii_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_print(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_space_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_print_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_cntrl_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_punct(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_graph_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_punct_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_digit_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_space(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_upper_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_space_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_lower_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_upper(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_print_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_upper_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_uni_punct_lc(pTHX_ UV c)
+PERL_CALLCONV bool Perl_is_uni_xdigit(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
@@ -1289,131 +1619,123 @@ PERL_CALLCONV bool Perl_is_uni_xdigit_lc(pTHX_ UV c)
__attribute__warn_unused_result__
__attribute__pure__;
-PERL_CALLCONV bool Perl_is_ascii_string(const U8 *s, STRLEN len)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_IS_ASCII_STRING \
- assert(s)
-
-PERL_CALLCONV STRLEN Perl_is_utf8_char(const U8 *s)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_IS_UTF8_CHAR \
- assert(s)
-
-PERL_CALLCONV bool Perl_is_utf8_string(const U8 *s, STRLEN len)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING \
- assert(s)
-
-/* PERL_CALLCONV bool Perl_is_utf8_string_loc(const U8 *s, STRLEN len, const U8 **p)
- __attribute__nonnull__(1); */
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC \
- assert(s)
+PERL_CALLCONV bool Perl_is_utf8_X_L(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_L \
+ assert(p)
-PERL_CALLCONV bool Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN \
- assert(s)
+PERL_CALLCONV bool Perl_is_utf8_X_LV(pTHX_ const U8 *p)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_UTF8_X_LV \
+ assert(p)
-PERL_CALLCONV bool Perl_is_utf8_alnum(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_X_LVT(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_ALNUM \
+#define PERL_ARGS_ASSERT_IS_UTF8_X_LVT \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_idfirst(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_X_LV_LVT_V(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_IDFIRST \
+#define PERL_ARGS_ASSERT_IS_UTF8_X_LV_LVT_V \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_idcont(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_X_T(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_IDCONT \
+#define PERL_ARGS_ASSERT_IS_UTF8_X_T \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_alpha(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_X_V(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_ALPHA \
+#define PERL_ARGS_ASSERT_IS_UTF8_X_V \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_ascii(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_X_begin(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_ASCII \
+#define PERL_ARGS_ASSERT_IS_UTF8_X_BEGIN \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_space(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_X_extend(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_SPACE \
+#define PERL_ARGS_ASSERT_IS_UTF8_X_EXTEND \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_perl_space(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_X_non_hangul(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_PERL_SPACE \
+#define PERL_ARGS_ASSERT_IS_UTF8_X_NON_HANGUL \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_perl_word(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_X_prepend(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_PERL_WORD \
+#define PERL_ARGS_ASSERT_IS_UTF8_X_PREPEND \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_cntrl(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_alnum(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_CNTRL \
+#define PERL_ARGS_ASSERT_IS_UTF8_ALNUM \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_digit(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_alpha(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_DIGIT \
+#define PERL_ARGS_ASSERT_IS_UTF8_ALPHA \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_posix_digit(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_ascii(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_POSIX_DIGIT \
+#define PERL_ARGS_ASSERT_IS_UTF8_ASCII \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_graph(pTHX_ const U8 *p)
+PERL_CALLCONV STRLEN Perl_is_utf8_char(const U8 *s)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_IS_UTF8_CHAR \
+ assert(s)
+
+PERL_CALLCONV bool Perl_is_utf8_cntrl(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_GRAPH \
+#define PERL_ARGS_ASSERT_IS_UTF8_CNTRL \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_upper(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_digit(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_UPPER \
+#define PERL_ARGS_ASSERT_IS_UTF8_DIGIT \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_lower(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_graph(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_LOWER \
+#define PERL_ARGS_ASSERT_IS_UTF8_GRAPH \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_print(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_idcont(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_PRINT \
+#define PERL_ARGS_ASSERT_IS_UTF8_IDCONT \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_punct(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_idfirst(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_PUNCT \
+#define PERL_ARGS_ASSERT_IS_UTF8_IDFIRST \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_xdigit(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_lower(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_XDIGIT \
+#define PERL_ARGS_ASSERT_IS_UTF8_LOWER \
assert(p)
PERL_CALLCONV bool Perl_is_utf8_mark(pTHX_ const U8 *p)
@@ -1422,64 +1744,79 @@ PERL_CALLCONV bool Perl_is_utf8_mark(pTHX_ const U8 *p)
#define PERL_ARGS_ASSERT_IS_UTF8_MARK \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_begin(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_perl_space(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_BEGIN \
+#define PERL_ARGS_ASSERT_IS_UTF8_PERL_SPACE \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_extend(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_perl_word(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_EXTEND \
+#define PERL_ARGS_ASSERT_IS_UTF8_PERL_WORD \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_prepend(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_posix_digit(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_PREPEND \
+#define PERL_ARGS_ASSERT_IS_UTF8_POSIX_DIGIT \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_non_hangul(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_print(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_NON_HANGUL \
+#define PERL_ARGS_ASSERT_IS_UTF8_PRINT \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_L(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_punct(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_L \
+#define PERL_ARGS_ASSERT_IS_UTF8_PUNCT \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_LV(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_space(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_LV \
+#define PERL_ARGS_ASSERT_IS_UTF8_SPACE \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_LVT(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_string(const U8 *s, STRLEN len)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_IS_UTF8_STRING \
+ assert(s)
+
+/* PERL_CALLCONV bool Perl_is_utf8_string_loc(const U8 *s, STRLEN len, const U8 **p)
+ __attribute__nonnull__(1); */
+#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC \
+ assert(s)
+
+PERL_CALLCONV bool Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN \
+ assert(s)
+
+PERL_CALLCONV bool Perl_is_utf8_upper(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_LVT \
+#define PERL_ARGS_ASSERT_IS_UTF8_UPPER \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_LV_LVT_V(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_xdigit(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_LV_LVT_V \
+#define PERL_ARGS_ASSERT_IS_UTF8_XDIGIT \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_T(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_xidcont(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_T \
+#define PERL_ARGS_ASSERT_IS_UTF8_XIDCONT \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_X_V(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl_is_utf8_xidfirst(pTHX_ const U8 *p)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_UTF8_X_V \
+#define PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST \
assert(p)
PERL_CALLCONV OP* Perl_jmaybe(pTHX_ OP *o)
@@ -1493,83 +1830,56 @@ PERL_CALLCONV I32 Perl_keyword(pTHX_ const char *name, I32 len, bool all_keyword
#define PERL_ARGS_ASSERT_KEYWORD \
assert(name)
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-STATIC OP* S_opt_scalarhv(pTHX_ OP* rep_op)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OPT_SCALARHV \
- assert(rep_op)
-
-STATIC OP* S_is_inplace_av(pTHX_ OP* o, OP* oright)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_INPLACE_AV \
- assert(o)
+PERL_CALLCONV int Perl_keyword_plugin_standard(pTHX_ char* keyword_ptr, STRLEN keyword_len, OP** op_ptr)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD \
+ assert(keyword_ptr); assert(op_ptr)
-#endif
PERL_CALLCONV void Perl_leave_scope(pTHX_ I32 base);
-PERL_CALLCONV void Perl_lex_end(pTHX);
-PERL_CALLCONV void Perl_lex_start(pTHX_ SV* line, PerlIO *rsfp, bool new_filter);
PERL_CALLCONV bool Perl_lex_bufutf8(pTHX);
-PERL_CALLCONV char* Perl_lex_grow_linestr(pTHX_ STRLEN len);
-PERL_CALLCONV void Perl_lex_stuff_pvn(pTHX_ char* pv, STRLEN len, U32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_LEX_STUFF_PVN \
- assert(pv)
-
-PERL_CALLCONV void Perl_lex_stuff_sv(pTHX_ SV* sv, U32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_LEX_STUFF_SV \
- assert(sv)
-
-PERL_CALLCONV void Perl_lex_unstuff(pTHX_ char* ptr)
+PERL_CALLCONV void Perl_lex_discard_to(pTHX_ char* ptr)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_LEX_UNSTUFF \
+#define PERL_ARGS_ASSERT_LEX_DISCARD_TO \
assert(ptr)
+PERL_CALLCONV char* Perl_lex_grow_linestr(pTHX_ STRLEN len);
+PERL_CALLCONV bool Perl_lex_next_chunk(pTHX_ U32 flags);
+PERL_CALLCONV I32 Perl_lex_peek_unichar(pTHX_ U32 flags);
+PERL_CALLCONV void Perl_lex_read_space(pTHX_ U32 flags);
PERL_CALLCONV void Perl_lex_read_to(pTHX_ char* ptr)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_LEX_READ_TO \
assert(ptr)
-PERL_CALLCONV void Perl_lex_discard_to(pTHX_ char* ptr)
+PERL_CALLCONV I32 Perl_lex_read_unichar(pTHX_ U32 flags);
+PERL_CALLCONV void Perl_lex_start(pTHX_ SV* line, PerlIO *rsfp, U32 flags);
+PERL_CALLCONV void Perl_lex_stuff_pv(pTHX_ const char* pv, U32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_LEX_DISCARD_TO \
- assert(ptr)
+#define PERL_ARGS_ASSERT_LEX_STUFF_PV \
+ assert(pv)
-PERL_CALLCONV bool Perl_lex_next_chunk(pTHX_ U32 flags);
-PERL_CALLCONV I32 Perl_lex_peek_unichar(pTHX_ U32 flags);
-PERL_CALLCONV I32 Perl_lex_read_unichar(pTHX_ U32 flags);
-PERL_CALLCONV void Perl_lex_read_space(pTHX_ U32 flags);
-PERL_CALLCONV void Perl_op_null(pTHX_ OP* o)
+PERL_CALLCONV void Perl_lex_stuff_pvn(pTHX_ const char* pv, STRLEN len, U32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OP_NULL \
- assert(o)
+#define PERL_ARGS_ASSERT_LEX_STUFF_PVN \
+ assert(pv)
-PERL_CALLCONV void Perl_op_clear(pTHX_ OP* o)
+PERL_CALLCONV void Perl_lex_stuff_sv(pTHX_ SV* sv, U32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OP_CLEAR \
- assert(o)
+#define PERL_ARGS_ASSERT_LEX_STUFF_SV \
+ assert(sv)
-PERL_CALLCONV void Perl_op_refcnt_lock(pTHX);
-PERL_CALLCONV void Perl_op_refcnt_unlock(pTHX);
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-STATIC OP* S_linklist(pTHX_ OP *o)
+PERL_CALLCONV void Perl_lex_unstuff(pTHX_ char* ptr)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_LINKLIST \
- assert(o)
+#define PERL_ARGS_ASSERT_LEX_UNSTUFF \
+ assert(ptr)
-STATIC OP* S_listkids(pTHX_ OP* o);
-#endif
PERL_CALLCONV OP* Perl_list(pTHX_ OP* o);
PERL_CALLCONV void Perl_load_module(pTHX_ U32 flags, SV* name, SV* ver, ...)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_LOAD_MODULE \
assert(name)
-PERL_CALLCONV void Perl_vload_module(pTHX_ U32 flags, SV* name, SV* ver, va_list* args)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_VLOAD_MODULE \
- assert(name)
-
PERL_CALLCONV OP* Perl_localize(pTHX_ OP *o, I32 lex)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_LOCALIZE \
@@ -1581,38 +1891,11 @@ PERL_CALLCONV I32 Perl_looks_like_number(pTHX_ SV *const sv)
#define PERL_ARGS_ASSERT_LOOKS_LIKE_NUMBER \
assert(sv)
-PERL_CALLCONV UV Perl_grok_bin(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_GROK_BIN \
- assert(start); assert(len_p); assert(flags)
-
-PERL_CALLCONV UV Perl_grok_hex(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_GROK_HEX \
- assert(start); assert(len_p); assert(flags)
-
-PERL_CALLCONV int Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GROK_NUMBER \
- assert(pv)
-
-PERL_CALLCONV bool Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send)
- __attribute__warn_unused_result__
+PERL_CALLCONV int Perl_magic_clear_all_env(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GROK_NUMERIC_RADIX \
- assert(sp); assert(send)
-
-PERL_CALLCONV UV Perl_grok_oct(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_GROK_OCT \
- assert(start); assert(len_p); assert(flags)
+#define PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV \
+ assert(sv); assert(mg)
PERL_CALLCONV int Perl_magic_clearenv(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
@@ -1620,12 +1903,6 @@ PERL_CALLCONV int Perl_magic_clearenv(pTHX_ SV* sv, MAGIC* mg)
#define PERL_ARGS_ASSERT_MAGIC_CLEARENV \
assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_clear_all_env(pTHX_ SV* sv, MAGIC* mg)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_CLEAR_ALL_ENV \
- assert(sv); assert(mg)
-
PERL_CALLCONV int Perl_magic_clearhint(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -1655,12 +1932,19 @@ PERL_CALLCONV int Perl_magic_clearsig(pTHX_ SV* sv, MAGIC* mg)
#define PERL_ARGS_ASSERT_MAGIC_CLEARSIG \
assert(sv); assert(mg)
+PERL_CALLCONV void Perl_magic_dump(pTHX_ const MAGIC *mg);
PERL_CALLCONV int Perl_magic_existspack(pTHX_ SV* sv, const MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_MAGIC_EXISTSPACK \
assert(sv); assert(mg)
+PERL_CALLCONV int Perl_magic_freearylen_p(pTHX_ SV* sv, MAGIC* mg)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P \
+ assert(sv); assert(mg)
+
PERL_CALLCONV int Perl_magic_freeovrld(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -1733,12 +2017,25 @@ PERL_CALLCONV int Perl_magic_getvec(pTHX_ SV* sv, MAGIC* mg)
#define PERL_ARGS_ASSERT_MAGIC_GETVEC \
assert(sv); assert(mg)
+PERL_CALLCONV int Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS \
+ assert(sv); assert(mg)
+
PERL_CALLCONV U32 Perl_magic_len(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_MAGIC_LEN \
assert(sv); assert(mg)
+PERL_CALLCONV SV* Perl_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, const char *meth, U32 flags, U32 argc, ...)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_MAGIC_METHCALL \
+ assert(sv); assert(mg); assert(meth)
+
PERL_CALLCONV int Perl_magic_nextpack(pTHX_ SV *sv, MAGIC *mg, SV *key)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -1765,28 +2062,34 @@ PERL_CALLCONV int Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg)
#define PERL_ARGS_ASSERT_MAGIC_REGDATUM_SET \
assert(sv); assert(mg)
+PERL_CALLCONV SV* Perl_magic_scalarpack(pTHX_ HV *hv, MAGIC *mg)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MAGIC_SCALARPACK \
+ assert(hv); assert(mg)
+
PERL_CALLCONV int Perl_magic_set(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_MAGIC_SET \
assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setamagic(pTHX_ SV* sv, MAGIC* mg)
+PERL_CALLCONV int Perl_magic_set_all_env(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_SETAMAGIC \
+#define PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV \
assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setarylen(pTHX_ SV* sv, MAGIC* mg)
+PERL_CALLCONV int Perl_magic_setamagic(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_SETARYLEN \
+#define PERL_ARGS_ASSERT_MAGIC_SETAMAGIC \
assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_freearylen_p(pTHX_ SV* sv, MAGIC* mg)
+PERL_CALLCONV int Perl_magic_setarylen(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P \
+#define PERL_ARGS_ASSERT_MAGIC_SETARYLEN \
assert(sv); assert(mg)
PERL_CALLCONV int Perl_magic_setdbline(pTHX_ SV* sv, MAGIC* mg)
@@ -1866,28 +2169,22 @@ PERL_CALLCONV int Perl_magic_settaint(pTHX_ SV* sv, MAGIC* mg)
#define PERL_ARGS_ASSERT_MAGIC_SETTAINT \
assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setuvar(pTHX_ SV* sv, MAGIC* mg)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_SETUVAR \
- assert(sv); assert(mg)
-
-PERL_CALLCONV int Perl_magic_setvec(pTHX_ SV* sv, MAGIC* mg)
+PERL_CALLCONV int Perl_magic_setutf8(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_SETVEC \
+#define PERL_ARGS_ASSERT_MAGIC_SETUTF8 \
assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_setutf8(pTHX_ SV* sv, MAGIC* mg)
+PERL_CALLCONV int Perl_magic_setuvar(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_SETUTF8 \
+#define PERL_ARGS_ASSERT_MAGIC_SETUVAR \
assert(sv); assert(mg)
-PERL_CALLCONV int Perl_magic_set_all_env(pTHX_ SV* sv, MAGIC* mg)
+PERL_CALLCONV int Perl_magic_setvec(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_SET_ALL_ENV \
+#define PERL_ARGS_ASSERT_MAGIC_SETVEC \
assert(sv); assert(mg)
PERL_CALLCONV U32 Perl_magic_sizepack(pTHX_ SV* sv, MAGIC* mg)
@@ -1902,47 +2199,23 @@ PERL_CALLCONV int Perl_magic_wipepack(pTHX_ SV* sv, MAGIC* mg)
#define PERL_ARGS_ASSERT_MAGIC_WIPEPACK \
assert(sv); assert(mg)
-PERL_CALLCONV void Perl_markstack_grow(pTHX);
-#if defined(USE_LOCALE_COLLATE)
-PERL_CALLCONV int Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM \
- assert(sv); assert(mg)
-
-PERL_CALLCONV char* Perl_mem_collxfrm(pTHX_ const char* s, STRLEN len, STRLEN* xlen)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_MEM_COLLXFRM \
- assert(s); assert(xlen)
+PERL_CALLCONV Malloc_t Perl_malloc(MEM_SIZE nbytes)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
-#endif
+PERL_CALLCONV void Perl_markstack_grow(pTHX);
PERL_CALLCONV SV* Perl_mess(pTHX_ const char* pat, ...)
__attribute__format__(__printf__,pTHX_1,pTHX_2)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MESS \
assert(pat)
-PERL_CALLCONV SV* Perl_vmess(pTHX_ const char* pat, va_list* args)
+PERL_CALLCONV SV* Perl_mess_sv(pTHX_ SV* basemsg, bool consume)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VMESS \
- assert(pat)
-
-PERL_CALLCONV void Perl_qerror(pTHX_ SV* err)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_QERROR \
- assert(err)
-
-PERL_CALLCONV void Perl_sortsv(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_SORTSV \
- assert(cmp)
-
-PERL_CALLCONV void Perl_sortsv_flags(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_SORTSV_FLAGS \
- assert(cmp)
+#define PERL_ARGS_ASSERT_MESS_SV \
+ assert(basemsg)
+PERL_CALLCONV Free_t Perl_mfree(Malloc_t where);
PERL_CALLCONV int Perl_mg_clear(pTHX_ SV* sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MG_CLEAR \
@@ -1954,20 +2227,22 @@ PERL_CALLCONV int Perl_mg_copy(pTHX_ SV *sv, SV *nsv, const char *key, I32 klen)
#define PERL_ARGS_ASSERT_MG_COPY \
assert(sv); assert(nsv)
-PERL_CALLCONV void Perl_mg_localize(pTHX_ SV* sv, SV* nsv, bool setmagic)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MG_LOCALIZE \
- assert(sv); assert(nsv)
-
PERL_CALLCONV MAGIC* Perl_mg_find(pTHX_ const SV* sv, int type)
__attribute__warn_unused_result__;
+PERL_CALLCONV MAGIC* Perl_mg_findext(pTHX_ const SV* sv, int type, const MGVTBL *vtbl)
+ __attribute__warn_unused_result__;
+
PERL_CALLCONV int Perl_mg_free(pTHX_ SV* sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MG_FREE \
assert(sv)
+PERL_CALLCONV void Perl_mg_free_type(pTHX_ SV* sv, int how)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MG_FREE_TYPE \
+ assert(sv)
+
PERL_CALLCONV int Perl_mg_get(pTHX_ SV* sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MG_GET \
@@ -1978,6 +2253,12 @@ PERL_CALLCONV U32 Perl_mg_length(pTHX_ SV* sv)
#define PERL_ARGS_ASSERT_MG_LENGTH \
assert(sv)
+PERL_CALLCONV void Perl_mg_localize(pTHX_ SV* sv, SV* nsv, bool setmagic)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MG_LOCALIZE \
+ assert(sv); assert(nsv)
+
PERL_CALLCONV void Perl_mg_magical(pTHX_ SV* sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MG_MAGICAL \
@@ -2000,31 +2281,89 @@ PERL_CALLCONV void Perl_mini_mktime(pTHX_ struct tm *ptm)
PERL_CALLCONV OP* Perl_mod(pTHX_ OP* o, I32 type);
PERL_CALLCONV int Perl_mode_from_discipline(pTHX_ const char* s, STRLEN len);
+PERL_CALLCONV void * Perl_more_bodies(pTHX_ const svtype sv_type, const size_t body_size, const size_t arena_size);
PERL_CALLCONV const char* Perl_moreswitches(pTHX_ const char* s)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MORESWITCHES \
assert(s)
+PERL_CALLCONV const struct mro_alg * Perl_mro_get_from_name(pTHX_ SV *name)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_GET_FROM_NAME \
+ assert(name)
+
+PERL_CALLCONV AV* Perl_mro_get_linear_isa(pTHX_ HV* stash)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA \
+ assert(stash)
+
+PERL_CALLCONV SV* Perl_mro_get_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA \
+ assert(smeta); assert(which)
+
+PERL_CALLCONV void Perl_mro_isa_changed_in(pTHX_ HV* stash)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_ISA_CHANGED_IN \
+ assert(stash)
+
+PERL_CALLCONV struct mro_meta* Perl_mro_meta_init(pTHX_ HV* stash)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_META_INIT \
+ assert(stash)
+
+PERL_CALLCONV void Perl_mro_method_changed_in(pTHX_ HV* stash)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_METHOD_CHANGED_IN \
+ assert(stash)
+
+PERL_CALLCONV void Perl_mro_package_moved(pTHX_ HV * const stash, HV * const oldstash, const GV * const gv, U32 flags)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_MRO_PACKAGE_MOVED \
+ assert(gv)
+
+PERL_CALLCONV void Perl_mro_register(pTHX_ const struct mro_alg *mro)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_REGISTER \
+ assert(mro)
+
+PERL_CALLCONV void Perl_mro_set_mro(pTHX_ struct mro_meta *const meta, SV *const name)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MRO_SET_MRO \
+ assert(meta); assert(name)
+
+PERL_CALLCONV SV* Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which, SV *const data)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA \
+ assert(smeta); assert(which); assert(data)
+
+PERL_CALLCONV void Perl_munge_qwlist_to_paren_list(pTHX_ OP* qwlist)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MUNGE_QWLIST_TO_PAREN_LIST \
+ assert(qwlist)
+
PERL_CALLCONV NV Perl_my_atof(pTHX_ const char *s)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MY_ATOF \
assert(s)
-#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
-PERL_CALLCONV char* Perl_my_bcopy(const char* from, char* to, I32 len)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_MY_BCOPY \
- assert(from); assert(to)
+PERL_CALLCONV char* Perl_my_atof2(pTHX_ const char *s, NV* value)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MY_ATOF2 \
+ assert(s); assert(value)
-#endif
-#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
-PERL_CALLCONV char* Perl_my_bzero(char* loc, I32 len)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_MY_BZERO \
- assert(loc)
+PERL_CALLCONV OP * Perl_my_attrs(pTHX_ OP *o, OP *attrs)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MY_ATTRS \
+ assert(o)
-#endif
+PERL_CALLCONV void Perl_my_clearenv(pTHX);
+PERL_CALLCONV int Perl_my_dirfd(pTHX_ DIR* dir);
PERL_CALLCONV void Perl_my_exit(pTHX_ U32 status)
__attribute__noreturn__;
@@ -2033,25 +2372,8 @@ PERL_CALLCONV void Perl_my_failure_exit(pTHX)
PERL_CALLCONV I32 Perl_my_fflush_all(pTHX);
PERL_CALLCONV Pid_t Perl_my_fork(void);
-PERL_CALLCONV void Perl_atfork_lock(void);
-PERL_CALLCONV void Perl_atfork_unlock(void);
-PERL_CALLCONV I32 Perl_my_lstat(pTHX);
-#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
-PERL_CALLCONV I32 Perl_my_memcmp(const char* s1, const char* s2, I32 len)
- __attribute__pure__
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_MY_MEMCMP \
- assert(s1); assert(s2)
-
-#endif
-#if !defined(HAS_MEMSET)
-PERL_CALLCONV void* Perl_my_memset(char* loc, I32 ch, I32 len)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_MY_MEMSET \
- assert(loc)
-
-#endif
+/* PERL_CALLCONV I32 Perl_my_lstat(pTHX); */
+PERL_CALLCONV I32 Perl_my_lstat_flags(pTHX_ const U32 flags);
PERL_CALLCONV I32 Perl_my_pclose(pTHX_ PerlIO* ptr);
PERL_CALLCONV PerlIO* Perl_my_popen(pTHX_ const char* cmd, const char* mode)
__attribute__nonnull__(pTHX_1)
@@ -2066,40 +2388,59 @@ PERL_CALLCONV PerlIO* Perl_my_popen_list(pTHX_ const char* mode, int n, SV ** ar
assert(mode); assert(args)
PERL_CALLCONV void Perl_my_setenv(pTHX_ const char* nam, const char* val);
-PERL_CALLCONV I32 Perl_my_stat(pTHX);
+PERL_CALLCONV int Perl_my_snprintf(char *buffer, const Size_t len, const char *format, ...)
+ __attribute__format__(__printf__,3,4)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_MY_SNPRINTF \
+ assert(buffer); assert(format)
+
+PERL_CALLCONV int Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
+/* PERL_CALLCONV I32 Perl_my_stat(pTHX); */
+PERL_CALLCONV I32 Perl_my_stat_flags(pTHX_ const U32 flags);
PERL_CALLCONV char * Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MY_STRFTIME \
assert(fmt)
-#if defined(MYSWAP)
-PERL_CALLCONV short Perl_my_swap(pTHX_ short s)
- __attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV void Perl_my_swabn(void* ptr, int n)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_MY_SWABN \
+ assert(ptr)
-PERL_CALLCONV long Perl_my_htonl(pTHX_ long l)
- __attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__pure__;
+PERL_CALLCONV void Perl_my_unexec(pTHX);
+PERL_CALLCONV int Perl_my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_MY_VSNPRINTF \
+ assert(buffer); assert(format)
-PERL_CALLCONV long Perl_my_ntohl(pTHX_ long l)
+PERL_CALLCONV OP* Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block);
+PERL_CALLCONV OP* Perl_newANONHASH(pTHX_ OP* o)
__attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
-#endif
-PERL_CALLCONV void Perl_my_unexec(pTHX);
PERL_CALLCONV OP* Perl_newANONLIST(pTHX_ OP* o)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV OP* Perl_newANONHASH(pTHX_ OP* o)
+PERL_CALLCONV OP* Perl_newANONSUB(pTHX_ I32 floor, OP* proto, OP* block);
+PERL_CALLCONV OP* Perl_newASSIGNOP(pTHX_ I32 flags, OP* left, I32 optype, OP* right)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV OP* Perl_newANONSUB(pTHX_ I32 floor, OP* proto, OP* block);
-PERL_CALLCONV OP* Perl_newASSIGNOP(pTHX_ I32 flags, OP* left, I32 optype, OP* right)
+PERL_CALLCONV CV* Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block);
+/* PERL_CALLCONV AV* Perl_newAV(pTHX)
+ __attribute__warn_unused_result__; */
+
+PERL_CALLCONV OP* Perl_newAVREF(pTHX_ OP* o)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_NEWAVREF \
+ assert(o)
+
+PERL_CALLCONV OP* Perl_newBINOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
__attribute__malloc__
__attribute__warn_unused_result__;
@@ -2111,15 +2452,14 @@ PERL_CALLCONV OP* Perl_newCONDOP(pTHX_ I32 flags, OP* first, OP* trueop, OP* fal
assert(first)
PERL_CALLCONV CV* Perl_newCONSTSUB(pTHX_ HV* stash, const char* name, SV* sv);
-#ifdef PERL_MAD
-PERL_CALLCONV OP* Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
-#else
-PERL_CALLCONV void Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
-#endif
-PERL_CALLCONV OP* Perl_newFOROP(pTHX_ I32 flags, char* label, line_t forline, OP* sv, OP* expr, OP* block, OP* cont)
+PERL_CALLCONV OP* Perl_newCVREF(pTHX_ I32 flags, OP* o)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV OP* Perl_newFOROP(pTHX_ I32 flags, OP* sv, OP* expr, OP* block, OP* cont)
__attribute__malloc__
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_5);
+ __attribute__nonnull__(pTHX_3);
#define PERL_ARGS_ASSERT_NEWFOROP \
assert(expr)
@@ -2131,84 +2471,10 @@ PERL_CALLCONV OP* Perl_newGIVENOP(pTHX_ OP* cond, OP* block, PADOFFSET defsv_off
#define PERL_ARGS_ASSERT_NEWGIVENOP \
assert(cond); assert(block)
-PERL_CALLCONV OP* Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP *first, OP *other)
- __attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_NEWLOGOP \
- assert(first); assert(other)
-
-PERL_CALLCONV OP* Perl_newLOOPEX(pTHX_ I32 type, OP* label)
- __attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_NEWLOOPEX \
- assert(label)
-
-PERL_CALLCONV OP* Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP* expr, OP* block)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV OP* Perl_newNULLLIST(pTHX)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV OP* Perl_newOP(pTHX_ I32 optype, I32 flags)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV void Perl_newPROG(pTHX_ OP* o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NEWPROG \
- assert(o)
-
-PERL_CALLCONV OP* Perl_newRANGE(pTHX_ I32 flags, OP* left, OP* right)
- __attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_NEWRANGE \
- assert(left); assert(right)
-
-PERL_CALLCONV OP* Perl_newSLICEOP(pTHX_ I32 flags, OP* subscript, OP* listop)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV OP* Perl_newSTATEOP(pTHX_ I32 flags, char* label, OP* o)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV CV* Perl_newSUB(pTHX_ I32 floor, OP* o, OP* proto, OP* block);
-PERL_CALLCONV CV * Perl_newXS_flags(pTHX_ const char *name, XSUBADDR_t subaddr, const char *const filename, const char *const proto, U32 flags)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_NEWXS_FLAGS \
- assert(subaddr); assert(filename)
-
-PERL_CALLCONV CV* Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_NEWXS \
- assert(subaddr); assert(filename)
-
-/* PERL_CALLCONV AV* Perl_newAV(pTHX)
- __attribute__warn_unused_result__; */
-
-PERL_CALLCONV OP* Perl_newAVREF(pTHX_ OP* o)
- __attribute__malloc__
- __attribute__warn_unused_result__
+PERL_CALLCONV GP * Perl_newGP(pTHX_ GV *const gv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NEWAVREF \
- assert(o)
-
-PERL_CALLCONV OP* Perl_newBINOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV OP* Perl_newCVREF(pTHX_ I32 flags, OP* o)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_NEWGP \
+ assert(gv)
PERL_CALLCONV OP* Perl_newGVOP(pTHX_ I32 type, I32 flags, GV* gv)
__attribute__malloc__
@@ -2217,6 +2483,10 @@ PERL_CALLCONV OP* Perl_newGVOP(pTHX_ I32 type, I32 flags, GV* gv)
#define PERL_ARGS_ASSERT_NEWGVOP \
assert(gv)
+PERL_CALLCONV OP* Perl_newGVREF(pTHX_ I32 type, OP* o)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
PERL_CALLCONV GV* Perl_newGVgen(pTHX_ const char* pack)
__attribute__malloc__
__attribute__warn_unused_result__
@@ -2224,9 +2494,8 @@ PERL_CALLCONV GV* Perl_newGVgen(pTHX_ const char* pack)
#define PERL_ARGS_ASSERT_NEWGVGEN \
assert(pack)
-PERL_CALLCONV OP* Perl_newGVREF(pTHX_ I32 type, OP* o)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+/* PERL_CALLCONV HV* Perl_newHV(pTHX)
+ __attribute__warn_unused_result__; */
PERL_CALLCONV OP* Perl_newHVREF(pTHX_ OP* o)
__attribute__malloc__
@@ -2235,9 +2504,6 @@ PERL_CALLCONV OP* Perl_newHVREF(pTHX_ OP* o)
#define PERL_ARGS_ASSERT_NEWHVREF \
assert(o)
-/* PERL_CALLCONV HV* Perl_newHV(pTHX)
- __attribute__warn_unused_result__; */
-
PERL_CALLCONV HV* Perl_newHVhv(pTHX_ HV *hv)
__attribute__malloc__
__attribute__warn_unused_result__;
@@ -2250,23 +2516,54 @@ PERL_CALLCONV OP* Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
__attribute__malloc__
__attribute__warn_unused_result__;
-#ifdef USE_ITHREADS
-PERL_CALLCONV OP* Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv)
+PERL_CALLCONV OP* Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP *first, OP *other)
__attribute__malloc__
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_NEWPADOP \
- assert(sv)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_NEWLOGOP \
+ assert(first); assert(other)
+
+PERL_CALLCONV OP* Perl_newLOOPEX(pTHX_ I32 type, OP* label)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_NEWLOOPEX \
+ assert(label)
+
+PERL_CALLCONV OP* Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP* expr, OP* block)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV OP* Perl_newNULLLIST(pTHX)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV OP* Perl_newOP(pTHX_ I32 optype, I32 flags)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
-#endif
PERL_CALLCONV OP* Perl_newPMOP(pTHX_ I32 type, I32 flags)
__attribute__malloc__
__attribute__warn_unused_result__;
+PERL_CALLCONV void Perl_newPROG(pTHX_ OP* o)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_NEWPROG \
+ assert(o)
+
PERL_CALLCONV OP* Perl_newPVOP(pTHX_ I32 type, I32 flags, char* pv)
__attribute__malloc__
__attribute__warn_unused_result__;
+PERL_CALLCONV OP* Perl_newRANGE(pTHX_ I32 flags, OP* left, OP* right)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_NEWRANGE \
+ assert(left); assert(right)
+
PERL_CALLCONV SV* Perl_newRV(pTHX_ SV *const sv)
__attribute__malloc__
__attribute__warn_unused_result__
@@ -2281,16 +2578,18 @@ PERL_CALLCONV SV* Perl_newRV_noinc(pTHX_ SV *const sv)
#define PERL_ARGS_ASSERT_NEWRV_NOINC \
assert(sv)
-PERL_CALLCONV SV* Perl_newSV(pTHX_ const STRLEN len)
+PERL_CALLCONV OP* Perl_newSLICEOP(pTHX_ I32 flags, OP* subscript, OP* listop)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV OP* Perl_newSVREF(pTHX_ OP* o)
+PERL_CALLCONV OP* Perl_newSTATEOP(pTHX_ I32 flags, char* label, OP* o)
__attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NEWSVREF \
- assert(o)
+ __attribute__warn_unused_result__;
+
+/* PERL_CALLCONV CV* Perl_newSUB(pTHX_ I32 floor, OP* o, OP* proto, OP* block); */
+PERL_CALLCONV SV* Perl_newSV(pTHX_ const STRLEN len)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv)
__attribute__malloc__
@@ -2299,35 +2598,34 @@ PERL_CALLCONV OP* Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv)
#define PERL_ARGS_ASSERT_NEWSVOP \
assert(sv)
-PERL_CALLCONV SV* Perl_newSViv(pTHX_ const IV i)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV SV* Perl_newSVuv(pTHX_ const UV u)
+PERL_CALLCONV OP* Perl_newSVREF(pTHX_ OP* o)
__attribute__malloc__
- __attribute__warn_unused_result__;
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_NEWSVREF \
+ assert(o)
-PERL_CALLCONV SV* Perl_newSVnv(pTHX_ const NV n)
+PERL_CALLCONV SV* Perl_newSV_type(pTHX_ const svtype type)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV SV* Perl_newSVpv(pTHX_ const char *const s, const STRLEN len)
+PERL_CALLCONV SV* Perl_newSVhek(pTHX_ const HEK *const hek)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV SV* Perl_newSVpvn(pTHX_ const char *const s, const STRLEN len)
+PERL_CALLCONV SV* Perl_newSViv(pTHX_ const IV i)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV SV* Perl_newSVpvn_flags(pTHX_ const char *const s, const STRLEN len, const U32 flags)
+PERL_CALLCONV SV* Perl_newSVnv(pTHX_ const NV n)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV SV* Perl_newSVhek(pTHX_ const HEK *const hek)
+PERL_CALLCONV SV* Perl_newSVpv(pTHX_ const char *const s, const STRLEN len)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV SV* Perl_newSVpvn_share(pTHX_ const char* s, I32 len, U32 hash)
+PERL_CALLCONV SV* Perl_newSVpv_share(pTHX_ const char* s, U32 hash)
__attribute__malloc__
__attribute__warn_unused_result__;
@@ -2339,12 +2637,17 @@ PERL_CALLCONV SV* Perl_newSVpvf(pTHX_ const char *const pat, ...)
#define PERL_ARGS_ASSERT_NEWSVPVF \
assert(pat)
-PERL_CALLCONV SV* Perl_vnewSVpvf(pTHX_ const char *const pat, va_list *const args)
+PERL_CALLCONV SV* Perl_newSVpvn(pTHX_ const char *const s, const STRLEN len)
__attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VNEWSVPVF \
- assert(pat)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV SV* Perl_newSVpvn_flags(pTHX_ const char *const s, const STRLEN len, const U32 flags)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV SV* Perl_newSVpvn_share(pTHX_ const char* s, I32 len, U32 hash)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVrv(pTHX_ SV *const rv, const char *const classname)
__attribute__nonnull__(pTHX_1);
@@ -2355,7 +2658,7 @@ PERL_CALLCONV SV* Perl_newSVsv(pTHX_ SV *const old)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV SV* Perl_newSV_type(pTHX_ const svtype type)
+PERL_CALLCONV SV* Perl_newSVuv(pTHX_ const UV u)
__attribute__malloc__
__attribute__warn_unused_result__;
@@ -2370,67 +2673,44 @@ PERL_CALLCONV OP* Perl_newWHENOP(pTHX_ OP* cond, OP* block)
#define PERL_ARGS_ASSERT_NEWWHENOP \
assert(block)
-PERL_CALLCONV OP* Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont, I32 has_my)
+PERL_CALLCONV OP* Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, OP* expr, OP* block, OP* cont, I32 has_my)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV PERL_SI* Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV char* Perl_scan_vstring(pTHX_ const char *s, const char *const e, SV *sv)
- __attribute__nonnull__(pTHX_1)
+PERL_CALLCONV CV* Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_SCAN_VSTRING \
- assert(s); assert(e); assert(sv)
+#define PERL_ARGS_ASSERT_NEWXS \
+ assert(subaddr); assert(filename)
-PERL_CALLCONV const char* Perl_scan_version(pTHX_ const char *s, SV *rv, bool qv)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SCAN_VERSION \
- assert(s); assert(rv)
+PERL_CALLCONV CV * Perl_newXS_flags(pTHX_ const char *name, XSUBADDR_t subaddr, const char *const filename, const char *const proto, U32 flags)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_NEWXS_FLAGS \
+ assert(subaddr); assert(filename)
-PERL_CALLCONV const char* Perl_prescan_version(pTHX_ const char *s, bool strict, const char** errstr, bool *sqv, int *ssaw_decimal, int *swidth, bool *salpha)
+PERL_CALLCONV void Perl_new_collate(pTHX_ const char* newcoll);
+PERL_CALLCONV void Perl_new_ctype(pTHX_ const char* newctype)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PRESCAN_VERSION \
- assert(s)
+#define PERL_ARGS_ASSERT_NEW_CTYPE \
+ assert(newctype)
+
+PERL_CALLCONV void Perl_new_numeric(pTHX_ const char* newcoll);
+PERL_CALLCONV PERL_SI* Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_new_version(pTHX_ SV *ver)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_NEW_VERSION \
assert(ver)
-PERL_CALLCONV SV* Perl_upg_version(pTHX_ SV *ver, bool qv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_UPG_VERSION \
- assert(ver)
-
-PERL_CALLCONV bool Perl_vverify(pTHX_ SV *vs)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VVERIFY \
- assert(vs)
-
-PERL_CALLCONV SV* Perl_vnumify(pTHX_ SV *vs)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VNUMIFY \
- assert(vs)
-
-PERL_CALLCONV SV* Perl_vnormal(pTHX_ SV *vs)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VNORMAL \
- assert(vs)
-
-PERL_CALLCONV SV* Perl_vstringify(pTHX_ SV *vs)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VSTRINGIFY \
- assert(vs)
-
-PERL_CALLCONV int Perl_vcmp(pTHX_ SV *lhv, SV *rhv)
- __attribute__nonnull__(pTHX_1)
+PERL_CALLCONV STRLEN * Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const char *const bits, STRLEN size)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_VCMP \
- assert(lhv); assert(rhv)
+#define PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD \
+ assert(bits)
PERL_CALLCONV PerlIO* Perl_nextargv(pTHX_ GV* gv)
__attribute__nonnull__(pTHX_1);
@@ -2446,38 +2726,7 @@ PERL_CALLCONV char* Perl_ninstr(const char* big, const char* bigend, const char*
#define PERL_ARGS_ASSERT_NINSTR \
assert(big); assert(bigend); assert(little); assert(lend)
-PERL_CALLCONV void Perl_op_free(pTHX_ OP* arg);
-#ifdef PERL_MAD
-PERL_CALLCONV OP* Perl_package(pTHX_ OP* o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PACKAGE \
- assert(o)
-
-#else
-PERL_CALLCONV void Perl_package(pTHX_ OP* o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PACKAGE \
- assert(o)
-
-#endif
-PERL_CALLCONV void Perl_package_version(pTHX_ OP* v)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PACKAGE_VERSION \
- assert(v)
-
-PERL_CALLCONV PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
-PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_ALLOCMY \
- assert(name)
-
-PERL_CALLCONV PADOFFSET Perl_pad_findmy(pTHX_ const char* name, STRLEN len, U32 flags)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PAD_FINDMY \
- assert(name)
-
-PERL_CALLCONV PADOFFSET Perl_find_rundefsvoffset(pTHX);
+PERL_CALLCONV int Perl_nothreadhook(pTHX);
PERL_CALLCONV OP* Perl_oopsAV(pTHX_ OP* o)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
@@ -2490,112 +2739,42 @@ PERL_CALLCONV OP* Perl_oopsHV(pTHX_ OP* o)
#define PERL_ARGS_ASSERT_OOPSHV \
assert(o)
-PERL_CALLCONV void Perl_pad_leavemy(pTHX);
-#ifdef DEBUGGING
-PERL_CALLCONV SV* Perl_pad_sv(pTHX_ PADOFFSET po);
-#endif
-PERL_CALLCONV void Perl_pad_free(pTHX_ PADOFFSET po);
-#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-STATIC void S_pad_reset(pTHX);
-#endif
-PERL_CALLCONV void Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust);
-PERL_CALLCONV void Perl_peep(pTHX_ OP* o);
-PERL_CALLCONV PerlIO* Perl_start_glob(pTHX_ SV *tmpglob, IO *io)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_START_GLOB \
- assert(tmpglob); assert(io)
-
-#if defined(USE_REENTRANT_API)
-PERL_CALLCONV void Perl_reentrant_size(pTHX);
-PERL_CALLCONV void Perl_reentrant_init(pTHX);
-PERL_CALLCONV void Perl_reentrant_free(pTHX);
-PERL_CALLCONV void* Perl_reentrant_retry(const char *f, ...)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_REENTRANT_RETRY \
- assert(f)
-
-#endif
-PERL_CALLCONV void Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr);
-PERL_CALLCONV I32 Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_CALL_ARGV \
- assert(sub_name); assert(argv)
-
-PERL_CALLCONV I32 Perl_call_method(pTHX_ const char* methname, I32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CALL_METHOD \
- assert(methname)
-
-PERL_CALLCONV I32 Perl_call_pv(pTHX_ const char* sub_name, I32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CALL_PV \
- assert(sub_name)
-
-PERL_CALLCONV I32 Perl_call_sv(pTHX_ SV* sv, VOL I32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CALL_SV \
- assert(sv)
-
-PERL_CALLCONV void Perl_despatch_signals(pTHX);
-PERL_CALLCONV OP * Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref)
+PERL_CALLCONV OP* Perl_op_append_elem(pTHX_ I32 optype, OP* first, OP* last);
+PERL_CALLCONV OP* Perl_op_append_list(pTHX_ I32 optype, OP* first, OP* last);
+PERL_CALLCONV void Perl_op_clear(pTHX_ OP* o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DOREF \
+#define PERL_ARGS_ASSERT_OP_CLEAR \
assert(o)
-PERL_CALLCONV SV* Perl_eval_pv(pTHX_ const char* p, I32 croak_on_error)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_EVAL_PV \
- assert(p)
-
-PERL_CALLCONV I32 Perl_eval_sv(pTHX_ SV* sv, I32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_EVAL_SV \
- assert(sv)
-
-PERL_CALLCONV SV* Perl_get_sv(pTHX_ const char *name, I32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_SV \
- assert(name)
-
-PERL_CALLCONV AV* Perl_get_av(pTHX_ const char *name, I32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_AV \
- assert(name)
-
-PERL_CALLCONV HV* Perl_get_hv(pTHX_ const char *name, I32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_HV \
- assert(name)
+PERL_CALLCONV SV* Perl_op_const_sv(pTHX_ const OP* o, CV* cv)
+ __attribute__warn_unused_result__;
-PERL_CALLCONV CV* Perl_get_cv(pTHX_ const char* name, I32 flags)
+PERL_CALLCONV OP* Perl_op_contextualize(pTHX_ OP* o, I32 context)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_CV \
- assert(name)
+#define PERL_ARGS_ASSERT_OP_CONTEXTUALIZE \
+ assert(o)
-PERL_CALLCONV CV* Perl_get_cvn_flags(pTHX_ const char* name, STRLEN len, I32 flags)
+PERL_CALLCONV void Perl_op_dump(pTHX_ const OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_CVN_FLAGS \
- assert(name)
+#define PERL_ARGS_ASSERT_OP_DUMP \
+ assert(o)
-PERL_CALLCONV int Perl_init_i18nl10n(pTHX_ int printwarn);
-PERL_CALLCONV int Perl_init_i18nl14n(pTHX_ int printwarn);
-PERL_CALLCONV void Perl_new_collate(pTHX_ const char* newcoll);
-PERL_CALLCONV void Perl_new_ctype(pTHX_ const char* newctype)
+PERL_CALLCONV void Perl_op_free(pTHX_ OP* arg);
+PERL_CALLCONV OP* Perl_op_linklist(pTHX_ OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NEW_CTYPE \
- assert(newctype)
+#define PERL_ARGS_ASSERT_OP_LINKLIST \
+ assert(o)
-PERL_CALLCONV void Perl_new_numeric(pTHX_ const char* newcoll);
-PERL_CALLCONV void Perl_set_numeric_local(pTHX);
-PERL_CALLCONV void Perl_set_numeric_radix(pTHX);
-PERL_CALLCONV void Perl_set_numeric_standard(pTHX);
-PERL_CALLCONV void Perl_require_pv(pTHX_ const char* pv)
+PERL_CALLCONV OP* Perl_op_lvalue(pTHX_ OP* o, I32 type);
+PERL_CALLCONV void Perl_op_null(pTHX_ OP* o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REQUIRE_PV \
- assert(pv)
+#define PERL_ARGS_ASSERT_OP_NULL \
+ assert(o)
+PERL_CALLCONV OP* Perl_op_prepend_elem(pTHX_ I32 optype, OP* first, OP* last);
+PERL_CALLCONV void Perl_op_refcnt_lock(pTHX);
+PERL_CALLCONV void Perl_op_refcnt_unlock(pTHX);
+PERL_CALLCONV OP* Perl_op_scope(pTHX_ OP* o);
PERL_CALLCONV void Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -2606,6 +2785,11 @@ PERL_CALLCONV void Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *pat
#define PERL_ARGS_ASSERT_PACK_CAT \
assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist); assert(next_in_list)
+PERL_CALLCONV void Perl_package_version(pTHX_ OP* v)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PACKAGE_VERSION \
+ assert(v)
+
PERL_CALLCONV void Perl_packlist(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -2615,51 +2799,110 @@ PERL_CALLCONV void Perl_packlist(pTHX_ SV *cat, const char *pat, const char *pat
#define PERL_ARGS_ASSERT_PACKLIST \
assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist)
-#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
-STATIC void S_pidgone(pTHX_ Pid_t pid, int status);
-#endif
-PERL_CALLCONV void Perl_pmflag(pTHX_ U32 *pmfl, int ch)
- __attribute__deprecated__
+PERL_CALLCONV PADOFFSET Perl_pad_add_anon(pTHX_ SV* sv, OPCODE op_type)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PMFLAG \
- assert(pmfl)
+#define PERL_ARGS_ASSERT_PAD_ADD_ANON \
+ assert(sv)
-PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP *o, OP *expr, bool isreg)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PMRUNTIME \
- assert(o); assert(expr)
+PERL_CALLCONV PADOFFSET Perl_pad_add_name(pTHX_ const char *name, const STRLEN len, const U32 flags, HV *typestash, HV *ourstash)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME \
+ assert(name)
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-STATIC OP* S_pmtrans(pTHX_ OP* o, OP* expr, OP* repl)
+PERL_CALLCONV PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
+PERL_CALLCONV void Perl_pad_block_start(pTHX_ int full);
+PERL_CALLCONV HV* Perl_pad_compname_type(pTHX_ const PADOFFSET po)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV PADOFFSET Perl_pad_findmy(pTHX_ const char* name, STRLEN len, U32 flags)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PAD_FINDMY \
+ assert(name)
+
+PERL_CALLCONV void Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_PMTRANS \
- assert(o); assert(expr); assert(repl)
+#define PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS \
+ assert(padlist); assert(old_cv); assert(new_cv)
-#endif
-PERL_CALLCONV void Perl_pop_scope(pTHX);
-PERL_CALLCONV OP* Perl_prepend_elem(pTHX_ I32 optype, OP* head, OP* tail);
-PERL_CALLCONV void Perl_push_scope(pTHX);
-/* PERL_CALLCONV OP* Perl_ref(pTHX_ OP* o, I32 type); */
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-STATIC OP* S_refkids(pTHX_ OP* o, I32 type);
-#endif
-PERL_CALLCONV void Perl_regdump(pTHX_ const regexp* r)
+PERL_CALLCONV void Perl_pad_free(pTHX_ PADOFFSET po);
+PERL_CALLCONV void Perl_pad_leavemy(pTHX);
+PERL_CALLCONV PADLIST* Perl_pad_new(pTHX_ int flags)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV void Perl_pad_push(pTHX_ PADLIST *padlist, int depth)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REGDUMP \
- assert(r)
+#define PERL_ARGS_ASSERT_PAD_PUSH \
+ assert(padlist)
-PERL_CALLCONV void Perl_regdump(pTHX_ const regexp* r)
+PERL_CALLCONV void Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust);
+PERL_CALLCONV void Perl_pad_tidy(pTHX_ padtidy_type type);
+PERL_CALLCONV OP* Perl_parse_arithexpr(pTHX_ U32 flags);
+PERL_CALLCONV OP* Perl_parse_barestmt(pTHX_ U32 flags);
+PERL_CALLCONV OP* Perl_parse_block(pTHX_ U32 flags);
+PERL_CALLCONV OP* Perl_parse_fullexpr(pTHX_ U32 flags);
+PERL_CALLCONV OP* Perl_parse_fullstmt(pTHX_ U32 flags);
+PERL_CALLCONV SV* Perl_parse_label(pTHX_ U32 flags);
+PERL_CALLCONV OP* Perl_parse_listexpr(pTHX_ U32 flags);
+PERL_CALLCONV OP* Perl_parse_stmtseq(pTHX_ U32 flags);
+PERL_CALLCONV OP* Perl_parse_termexpr(pTHX_ U32 flags);
+PERL_CALLCONV U32 Perl_parse_unicode_opts(pTHX_ const char **popt)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REGDUMP \
- assert(r)
+#define PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS \
+ assert(popt)
-PERL_CALLCONV SV* Perl_regclass_swash(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **altsvp)
+PERL_CALLCONV void Perl_parser_free(pTHX_ const yy_parser *parser)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PARSER_FREE \
+ assert(parser)
+
+PERL_CALLCONV void Perl_peep(pTHX_ OP* o);
+PERL_CALLCONV PerlInterpreter* perl_alloc(void);
+PERL_CALLCONV void perl_construct(PerlInterpreter *my_perl)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_PERL_CONSTRUCT \
+ assert(my_perl)
+
+PERL_CALLCONV int perl_destruct(PerlInterpreter *my_perl)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_PERL_DESTRUCT \
+ assert(my_perl)
+
+PERL_CALLCONV void perl_free(PerlInterpreter *my_perl)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_PERL_FREE \
+ assert(my_perl)
+
+PERL_CALLCONV int perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char** argv, char** env)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_PERL_PARSE \
+ assert(my_perl)
+
+PERL_CALLCONV int perl_run(PerlInterpreter *my_perl)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_PERL_RUN \
+ assert(my_perl)
+
+PERL_CALLCONV void Perl_pmop_dump(pTHX_ PMOP* pm);
+PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP *o, OP *expr, bool isreg)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_REGCLASS_SWASH \
- assert(node)
+#define PERL_ARGS_ASSERT_PMRUNTIME \
+ assert(o); assert(expr)
+
+PERL_CALLCONV void Perl_pop_scope(pTHX);
+PERL_CALLCONV void Perl_populate_isa(pTHX_ const char *name, STRLEN len, ...)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_POPULATE_ISA \
+ assert(name)
+
+PERL_CALLCONV REGEXP* Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PREGCOMP \
+ assert(pattern)
PERL_CALLCONV I32 Perl_pregexec(pTHX_ REGEXP * const prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave)
__attribute__nonnull__(pTHX_1)
@@ -2676,28 +2919,65 @@ PERL_CALLCONV void Perl_pregfree2(pTHX_ REGEXP *rx)
#define PERL_ARGS_ASSERT_PREGFREE2 \
assert(rx)
-PERL_CALLCONV REGEXP* Perl_reg_temp_copy(pTHX_ REGEXP* ret_x, REGEXP* rx)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_REG_TEMP_COPY \
- assert(rx)
+PERL_CALLCONV const char* Perl_prescan_version(pTHX_ const char *s, bool strict, const char** errstr, bool *sqv, int *ssaw_decimal, int *swidth, bool *salpha)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PRESCAN_VERSION \
+ assert(s)
-PERL_CALLCONV void Perl_regfree_internal(pTHX_ REGEXP *const rx)
+PERL_CALLCONV void Perl_ptr_table_clear(pTHX_ PTR_TBL_t *const tbl)
+ __attribute__deprecated__;
+
+PERL_CALLCONV void* Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *const tbl, const void *const sv)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REGFREE_INTERNAL \
- assert(rx)
+#define PERL_ARGS_ASSERT_PTR_TABLE_FETCH \
+ assert(tbl)
-#if defined(USE_ITHREADS)
-PERL_CALLCONV void* Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS* param)
+PERL_CALLCONV void Perl_ptr_table_free(pTHX_ PTR_TBL_t *const tbl);
+PERL_CALLCONV PTR_TBL_t* Perl_ptr_table_new(pTHX)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV void Perl_ptr_table_split(pTHX_ PTR_TBL_t *const tbl)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PTR_TABLE_SPLIT \
+ assert(tbl)
+
+PERL_CALLCONV void Perl_ptr_table_store(pTHX_ PTR_TBL_t *const tbl, const void *const oldsv, void *const newsv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_PTR_TABLE_STORE \
+ assert(tbl); assert(newsv)
+
+PERL_CALLCONV void Perl_push_scope(pTHX);
+PERL_CALLCONV char* Perl_pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_REGDUPE_INTERNAL \
- assert(r); assert(param)
+#define PERL_ARGS_ASSERT_PV_DISPLAY \
+ assert(dsv); assert(pv)
-#endif
-PERL_CALLCONV REGEXP* Perl_pregcomp(pTHX_ SV * const pattern, const U32 flags)
+PERL_CALLCONV char* Perl_pv_escape(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PV_ESCAPE \
+ assert(dsv); assert(str)
+
+PERL_CALLCONV char* Perl_pv_pretty(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PV_PRETTY \
+ assert(dsv); assert(str)
+
+PERL_CALLCONV char* Perl_pv_uni_display(pTHX_ SV *dsv, const U8 *spv, STRLEN len, STRLEN pvlim, UV flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PV_UNI_DISPLAY \
+ assert(dsv); assert(spv)
+
+PERL_CALLCONV void Perl_qerror(pTHX_ SV* err)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PREGCOMP \
- assert(pattern)
+#define PERL_ARGS_ASSERT_QERROR \
+ assert(err)
PERL_CALLCONV REGEXP* Perl_re_compile(pTHX_ SV * const pattern, U32 flags)
__attribute__nonnull__(pTHX_1);
@@ -2716,46 +2996,76 @@ PERL_CALLCONV SV* Perl_re_intuit_string(pTHX_ REGEXP *const r)
#define PERL_ARGS_ASSERT_RE_INTUIT_STRING \
assert(r)
-PERL_CALLCONV I32 Perl_regexec_flags(pTHX_ REGEXP *const rx, char *stringarg, char *strend, char *strbeg, I32 minend, SV *sv, void *data, U32 flags)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4)
- __attribute__nonnull__(pTHX_6);
-#define PERL_ARGS_ASSERT_REGEXEC_FLAGS \
- assert(rx); assert(stringarg); assert(strend); assert(strbeg); assert(sv)
-
-PERL_CALLCONV regnode* Perl_regnext(pTHX_ regnode* p)
+PERL_CALLCONV Malloc_t Perl_realloc(Malloc_t where, MEM_SIZE nbytes)
+ __attribute__malloc__
__attribute__warn_unused_result__;
+/* PERL_CALLCONV OP* Perl_ref(pTHX_ OP* o, I32 type); */
+PERL_CALLCONV HV * Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *c, U32 flags);
+PERL_CALLCONV SV * Perl_refcounted_he_fetch_pv(pTHX_ const struct refcounted_he *chain, const char *key, U32 hash, U32 flags)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV \
+ assert(key)
+
+PERL_CALLCONV SV * Perl_refcounted_he_fetch_pvn(pTHX_ const struct refcounted_he *chain, const char *keypv, STRLEN keylen, U32 hash, U32 flags)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PVN \
+ assert(keypv)
+
+PERL_CALLCONV SV * Perl_refcounted_he_fetch_sv(pTHX_ const struct refcounted_he *chain, SV *key, U32 hash, U32 flags)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_SV \
+ assert(key)
+
+PERL_CALLCONV void Perl_refcounted_he_free(pTHX_ struct refcounted_he *he);
+PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_inc(pTHX_ struct refcounted_he *he);
+PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_new_pv(pTHX_ struct refcounted_he *parent, const char *key, U32 hash, SV *value, U32 flags)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PV \
+ assert(key)
+
+PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_new_pvn(pTHX_ struct refcounted_he *parent, const char *keypv, STRLEN keylen, U32 hash, SV *value, U32 flags)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_PVN \
+ assert(keypv)
+
+PERL_CALLCONV struct refcounted_he * Perl_refcounted_he_new_sv(pTHX_ struct refcounted_he *parent, SV *key, U32 hash, SV *value, U32 flags)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REFCOUNTED_HE_NEW_SV \
+ assert(key)
PERL_CALLCONV SV* Perl_reg_named_buff(pTHX_ REGEXP * const rx, SV * const key, SV * const value, const U32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_REG_NAMED_BUFF \
assert(rx)
-PERL_CALLCONV SV* Perl_reg_named_buff_iter(pTHX_ REGEXP * const rx, const SV * const lastkey, const U32 flags)
+PERL_CALLCONV SV* Perl_reg_named_buff_all(pTHX_ REGEXP * const rx, const U32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER \
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL \
assert(rx)
-PERL_CALLCONV SV* Perl_reg_named_buff_fetch(pTHX_ REGEXP * const rx, SV * const namesv, const U32 flags)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH \
- assert(rx); assert(namesv)
-
PERL_CALLCONV bool Perl_reg_named_buff_exists(pTHX_ REGEXP * const rx, SV * const key, const U32 flags)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_EXISTS \
assert(rx); assert(key)
+PERL_CALLCONV SV* Perl_reg_named_buff_fetch(pTHX_ REGEXP * const rx, SV * const namesv, const U32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FETCH \
+ assert(rx); assert(namesv)
+
PERL_CALLCONV SV* Perl_reg_named_buff_firstkey(pTHX_ REGEXP * const rx, const U32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_FIRSTKEY \
assert(rx)
+PERL_CALLCONV SV* Perl_reg_named_buff_iter(pTHX_ REGEXP * const rx, const SV * const lastkey, const U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ITER \
+ assert(rx)
+
PERL_CALLCONV SV* Perl_reg_named_buff_nextkey(pTHX_ REGEXP * const rx, const U32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_NEXTKEY \
@@ -2766,34 +3076,64 @@ PERL_CALLCONV SV* Perl_reg_named_buff_scalar(pTHX_ REGEXP * const rx, const U32
#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_SCALAR \
assert(rx)
-PERL_CALLCONV SV* Perl_reg_named_buff_all(pTHX_ REGEXP * const rx, const U32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REG_NAMED_BUFF_ALL \
- assert(rx)
-
-
PERL_CALLCONV void Perl_reg_numbered_buff_fetch(pTHX_ REGEXP * const rx, const I32 paren, SV * const sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_FETCH \
assert(rx)
-PERL_CALLCONV void Perl_reg_numbered_buff_store(pTHX_ REGEXP * const rx, const I32 paren, SV const * const value)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE \
- assert(rx)
-
PERL_CALLCONV I32 Perl_reg_numbered_buff_length(pTHX_ REGEXP * const rx, const SV * const sv, const I32 paren)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_LENGTH \
assert(rx); assert(sv)
+PERL_CALLCONV void Perl_reg_numbered_buff_store(pTHX_ REGEXP * const rx, const I32 paren, SV const * const value)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REG_NUMBERED_BUFF_STORE \
+ assert(rx)
PERL_CALLCONV SV* Perl_reg_qr_package(pTHX_ REGEXP * const rx)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_REG_QR_PACKAGE \
assert(rx)
+PERL_CALLCONV REGEXP* Perl_reg_temp_copy(pTHX_ REGEXP* ret_x, REGEXP* rx)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REG_TEMP_COPY \
+ assert(rx)
+
+PERL_CALLCONV SV* Perl_regclass_swash(pTHX_ const regexp *prog, const struct regnode *node, bool doinit, SV **listsvp, SV **altsvp)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REGCLASS_SWASH \
+ assert(node)
+
+PERL_CALLCONV void Perl_regdump(pTHX_ const regexp* r)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REGDUMP \
+ assert(r)
+
+PERL_CALLCONV void Perl_regdump(pTHX_ const regexp* r)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REGDUMP \
+ assert(r)
+
+PERL_CALLCONV I32 Perl_regexec_flags(pTHX_ REGEXP *const rx, char *stringarg, char *strend, char *strbeg, I32 minend, SV *sv, void *data, U32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4)
+ __attribute__nonnull__(pTHX_6);
+#define PERL_ARGS_ASSERT_REGEXEC_FLAGS \
+ assert(rx); assert(stringarg); assert(strend); assert(strbeg); assert(sv)
+
+PERL_CALLCONV void Perl_regfree_internal(pTHX_ REGEXP *const rx)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REGFREE_INTERNAL \
+ assert(rx)
+
+PERL_CALLCONV void Perl_reginitcolors(pTHX);
+PERL_CALLCONV regnode* Perl_regnext(pTHX_ regnode* p)
+ __attribute__warn_unused_result__;
PERL_CALLCONV void Perl_regprop(pTHX_ const regexp *prog, SV* sv, const regnode* o)
__attribute__nonnull__(pTHX_2)
@@ -2807,6 +3147,14 @@ PERL_CALLCONV void Perl_repeatcpy(char* to, const char* from, I32 len, I32 count
#define PERL_ARGS_ASSERT_REPEATCPY \
assert(to); assert(from)
+PERL_CALLCONV void Perl_report_evil_fh(pTHX_ const GV *gv);
+PERL_CALLCONV void Perl_report_uninit(pTHX_ const SV *uninit_sv);
+PERL_CALLCONV void Perl_report_wrongway_fh(pTHX_ const GV *gv, const char have);
+PERL_CALLCONV void Perl_require_pv(pTHX_ const char* pv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REQUIRE_PV \
+ assert(pv)
+
PERL_CALLCONV char* Perl_rninstr(const char* big, const char* bigend, const char* little, const char* lend)
__attribute__pure__
__attribute__nonnull__(1)
@@ -2816,6 +3164,7 @@ PERL_CALLCONV char* Perl_rninstr(const char* big, const char* bigend, const char
#define PERL_ARGS_ASSERT_RNINSTR \
assert(big); assert(bigend); assert(little); assert(lend)
+PERL_CALLCONV void Perl_rpeep(pTHX_ OP* o);
PERL_CALLCONV Sighandler_t Perl_rsignal(pTHX_ int i, Sighandler_t t);
PERL_CALLCONV int Perl_rsignal_restore(pTHX_ int i, Sigsave_t* t);
PERL_CALLCONV int Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* save)
@@ -2824,61 +3173,52 @@ PERL_CALLCONV int Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* sav
assert(save)
PERL_CALLCONV Sighandler_t Perl_rsignal_state(pTHX_ int i);
-#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
-STATIC void S_rxres_free(pTHX_ void** rsp)
+PERL_CALLCONV int Perl_runops_debug(pTHX);
+PERL_CALLCONV int Perl_runops_standard(pTHX);
+PERL_CALLCONV CV* Perl_rv2cv_op_cv(pTHX_ OP *cvop, U32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_RXRES_FREE \
- assert(rsp)
+#define PERL_ARGS_ASSERT_RV2CV_OP_CV \
+ assert(cvop)
-STATIC void S_rxres_restore(pTHX_ void **rsp, REGEXP *rx)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_RXRES_RESTORE \
- assert(rsp); assert(rx)
-
-#endif
PERL_CALLCONV void Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_RXRES_SAVE \
assert(rsp); assert(rx)
-#if !defined(HAS_RENAME)
-PERL_CALLCONV I32 Perl_same_dirent(pTHX_ const char* a, const char* b)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SAME_DIRENT \
- assert(a); assert(b)
-
-#endif
-PERL_CALLCONV char* Perl_savepv(pTHX_ const char* pv)
+PERL_CALLCONV Malloc_t Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV char* Perl_savepvn(pTHX_ const char* pv, I32 len)
+PERL_CALLCONV Free_t Perl_safesysfree(Malloc_t where);
+PERL_CALLCONV Malloc_t Perl_safesysmalloc(MEM_SIZE nbytes)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV char* Perl_savesharedpv(pTHX_ const char* pv)
+PERL_CALLCONV Malloc_t Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes)
__attribute__malloc__
__attribute__warn_unused_result__;
-PERL_CALLCONV char* Perl_savesharedpvn(pTHX_ const char *const pv, const STRLEN len)
- __attribute__malloc__
- __attribute__warn_unused_result__
+PERL_CALLCONV void Perl_save_I16(pTHX_ I16* intp)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVESHAREDPVN \
- assert(pv)
+#define PERL_ARGS_ASSERT_SAVE_I16 \
+ assert(intp)
-PERL_CALLCONV char* Perl_savesvpv(pTHX_ SV* sv)
- __attribute__malloc__
- __attribute__warn_unused_result__
+PERL_CALLCONV void Perl_save_I32(pTHX_ I32* intp)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVESVPV \
- assert(sv)
+#define PERL_ARGS_ASSERT_SAVE_I32 \
+ assert(intp)
+
+PERL_CALLCONV void Perl_save_I8(pTHX_ I8* bytep)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SAVE_I8 \
+ assert(bytep)
+
+PERL_CALLCONV void Perl_save_adelete(pTHX_ AV *av, I32 key)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SAVE_ADELETE \
+ assert(av)
-PERL_CALLCONV void Perl_savestack_grow(pTHX);
-PERL_CALLCONV void Perl_savestack_grow_cnt(pTHX_ I32 need);
/* PERL_CALLCONV void Perl_save_aelem(pTHX_ AV* av, I32 idx, SV **sptr)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_3); */
@@ -2916,40 +3256,24 @@ PERL_CALLCONV void Perl_save_delete(pTHX_ HV *hv, char *key, I32 klen)
#define PERL_ARGS_ASSERT_SAVE_DELETE \
assert(hv); assert(key)
-PERL_CALLCONV void Perl_save_hdelete(pTHX_ HV *hv, SV *keysv)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SAVE_HDELETE \
- assert(hv); assert(keysv)
-
-PERL_CALLCONV void Perl_save_adelete(pTHX_ AV *av, I32 key)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_ADELETE \
- assert(av)
-
PERL_CALLCONV void Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR \
assert(p)
PERL_CALLCONV void Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void* p);
-/* PERL_CALLCONV void Perl_save_freesv(pTHX_ SV* sv); */
/* PERL_CALLCONV void Perl_save_freeop(pTHX_ OP* o); */
/* PERL_CALLCONV void Perl_save_freepv(pTHX_ char* pv); */
-PERL_CALLCONV void Perl_save_generic_svref(pTHX_ SV** sptr)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_GENERIC_SVREF \
- assert(sptr)
-
+/* PERL_CALLCONV void Perl_save_freesv(pTHX_ SV* sv); */
PERL_CALLCONV void Perl_save_generic_pvref(pTHX_ char** str)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SAVE_GENERIC_PVREF \
assert(str)
-PERL_CALLCONV void Perl_save_shared_pvref(pTHX_ char** str)
+PERL_CALLCONV void Perl_save_generic_svref(pTHX_ SV** sptr)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_SHARED_PVREF \
- assert(str)
+#define PERL_ARGS_ASSERT_SAVE_GENERIC_SVREF \
+ assert(sptr)
PERL_CALLCONV void Perl_save_gp(pTHX_ GV* gv, I32 empty)
__attribute__nonnull__(pTHX_1);
@@ -2961,7 +3285,12 @@ PERL_CALLCONV HV* Perl_save_hash(pTHX_ GV* gv)
#define PERL_ARGS_ASSERT_SAVE_HASH \
assert(gv)
-PERL_CALLCONV void Perl_save_hints(pTHX);
+PERL_CALLCONV void Perl_save_hdelete(pTHX_ HV *hv, SV *keysv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SAVE_HDELETE \
+ assert(hv); assert(keysv)
+
/* PERL_CALLCONV void Perl_save_helem(pTHX_ HV *hv, SV *key, SV **sptr)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -2974,26 +3303,12 @@ PERL_CALLCONV void Perl_save_helem_flags(pTHX_ HV *hv, SV *key, SV **sptr, const
#define PERL_ARGS_ASSERT_SAVE_HELEM_FLAGS \
assert(hv); assert(key); assert(sptr)
+PERL_CALLCONV void Perl_save_hints(pTHX);
PERL_CALLCONV void Perl_save_hptr(pTHX_ HV** hptr)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SAVE_HPTR \
assert(hptr)
-PERL_CALLCONV void Perl_save_I16(pTHX_ I16* intp)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_I16 \
- assert(intp)
-
-PERL_CALLCONV void Perl_save_I32(pTHX_ I32* intp)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_I32 \
- assert(intp)
-
-PERL_CALLCONV void Perl_save_I8(pTHX_ I8* bytep)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_I8 \
- assert(bytep)
-
PERL_CALLCONV void Perl_save_int(pTHX_ int* intp)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SAVE_INT \
@@ -3030,23 +3345,31 @@ PERL_CALLCONV void Perl_save_nogv(pTHX_ GV* gv)
assert(gv)
/* PERL_CALLCONV void Perl_save_op(pTHX); */
+PERL_CALLCONV void Perl_save_padsv_and_mortalize(pTHX_ PADOFFSET off);
+PERL_CALLCONV void Perl_save_pptr(pTHX_ char** pptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SAVE_PPTR \
+ assert(pptr)
+
+PERL_CALLCONV void Perl_save_pushi32ptr(pTHX_ const I32 i, void *const ptr, const int type);
+PERL_CALLCONV void Perl_save_pushptr(pTHX_ void *const ptr, const int type);
+PERL_CALLCONV void Perl_save_pushptrptr(pTHX_ void *const ptr1, void *const ptr2, const int type);
+PERL_CALLCONV void Perl_save_re_context(pTHX);
PERL_CALLCONV SV* Perl_save_scalar(pTHX_ GV* gv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SAVE_SCALAR \
assert(gv)
-PERL_CALLCONV void Perl_save_pptr(pTHX_ char** pptr)
+PERL_CALLCONV void Perl_save_set_svflags(pTHX_ SV *sv, U32 mask, U32 val)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_PPTR \
- assert(pptr)
+#define PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS \
+ assert(sv)
-PERL_CALLCONV void Perl_save_vptr(pTHX_ void *ptr)
+PERL_CALLCONV void Perl_save_shared_pvref(pTHX_ char** str)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_VPTR \
- assert(ptr)
+#define PERL_ARGS_ASSERT_SAVE_SHARED_PVREF \
+ assert(str)
-PERL_CALLCONV void Perl_save_re_context(pTHX);
-PERL_CALLCONV void Perl_save_padsv_and_mortalize(pTHX_ PADOFFSET off);
PERL_CALLCONV void Perl_save_sptr(pTHX_ SV** sptr)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SAVE_SPTR \
@@ -3057,18 +3380,48 @@ PERL_CALLCONV SV* Perl_save_svref(pTHX_ SV** sptr)
#define PERL_ARGS_ASSERT_SAVE_SVREF \
assert(sptr)
-PERL_CALLCONV void Perl_save_pushptr(pTHX_ void *const ptr, const int type);
-PERL_CALLCONV void Perl_save_pushi32ptr(pTHX_ const I32 i, void *const ptr, const int type);
-PERL_CALLCONV void Perl_save_pushptrptr(pTHX_ void *const ptr1, void *const ptr2, const int type);
-#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-STATIC void S_save_pushptri32ptr(pTHX_ void *const ptr1, const I32 i, void *const ptr2, const int type);
-#endif
+PERL_CALLCONV void Perl_save_vptr(pTHX_ void *ptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SAVE_VPTR \
+ assert(ptr)
+
+PERL_CALLCONV char* Perl_savepv(pTHX_ const char* pv)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV char* Perl_savepvn(pTHX_ const char* pv, I32 len)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV char* Perl_savesharedpv(pTHX_ const char* pv)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV char* Perl_savesharedpvn(pTHX_ const char *const pv, const STRLEN len)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SAVESHAREDPVN \
+ assert(pv)
+
+PERL_CALLCONV char* Perl_savesharedsvpv(pTHX_ SV *sv)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SAVESHAREDSVPV \
+ assert(sv)
+
+PERL_CALLCONV void Perl_savestack_grow(pTHX);
+PERL_CALLCONV void Perl_savestack_grow_cnt(pTHX_ I32 need);
+PERL_CALLCONV char* Perl_savesvpv(pTHX_ SV* sv)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SAVESVPV \
+ assert(sv)
+
PERL_CALLCONV OP* Perl_sawparens(pTHX_ OP* o);
PERL_CALLCONV OP* Perl_scalar(pTHX_ OP* o);
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-STATIC OP* S_scalarkids(pTHX_ OP* o);
-STATIC OP* S_scalarseq(pTHX_ OP* o);
-#endif
PERL_CALLCONV OP* Perl_scalarvoid(pTHX_ OP* o)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SCALARVOID \
@@ -3098,7 +3451,19 @@ PERL_CALLCONV NV Perl_scan_oct(pTHX_ const char* start, STRLEN len, STRLEN* retl
#define PERL_ARGS_ASSERT_SCAN_OCT \
assert(start); assert(retlen)
-PERL_CALLCONV OP* Perl_scope(pTHX_ OP* o);
+PERL_CALLCONV const char* Perl_scan_version(pTHX_ const char *s, SV *rv, bool qv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SCAN_VERSION \
+ assert(s); assert(rv)
+
+PERL_CALLCONV char* Perl_scan_vstring(pTHX_ const char *s, const char *const e, SV *sv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_SCAN_VSTRING \
+ assert(s); assert(e); assert(sv)
+
PERL_CALLCONV char* Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_shift, I32 end_shift, I32 *old_posp, I32 last)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -3106,34 +3471,74 @@ PERL_CALLCONV char* Perl_screaminstr(pTHX_ SV *bigstr, SV *littlestr, I32 start_
#define PERL_ARGS_ASSERT_SCREAMINSTR \
assert(bigstr); assert(littlestr); assert(old_posp)
+PERL_CALLCONV U32 Perl_seed(pTHX);
+PERL_CALLCONV void Perl_set_context(void *t)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_SET_CONTEXT \
+ assert(t)
+
+PERL_CALLCONV void Perl_set_numeric_local(pTHX);
+PERL_CALLCONV void Perl_set_numeric_radix(pTHX);
+PERL_CALLCONV void Perl_set_numeric_standard(pTHX);
PERL_CALLCONV void Perl_setdefout(pTHX_ GV* gv);
PERL_CALLCONV HEK* Perl_share_hek(pTHX_ const char* str, I32 len, U32 hash)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SHARE_HEK \
assert(str)
-#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
-PERL_CALLCONV Signal_t Perl_sighandler(int sig, siginfo_t *info, void *uap);
-PERL_CALLCONV Signal_t Perl_csighandler(int sig, siginfo_t *info, void *uap);
-#else
-PERL_CALLCONV Signal_t Perl_sighandler(int sig);
-PERL_CALLCONV Signal_t Perl_csighandler(int sig);
-#endif
+PERL_CALLCONV void Perl_sortsv(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_SORTSV \
+ assert(cmp)
+
+PERL_CALLCONV void Perl_sortsv_flags(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_SORTSV_FLAGS \
+ assert(cmp)
+
PERL_CALLCONV SV** Perl_stack_grow(pTHX_ SV** sp, SV** p, int n)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_STACK_GROW \
assert(sp); assert(p)
+PERL_CALLCONV PerlIO* Perl_start_glob(pTHX_ SV *tmpglob, IO *io)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_START_GLOB \
+ assert(tmpglob); assert(io)
+
PERL_CALLCONV I32 Perl_start_subparse(pTHX_ I32 is_format, U32 flags);
+PERL_CALLCONV bool Perl_stashpv_hvname_match(pTHX_ const COP *c, const HV *hv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_STASHPV_HVNAME_MATCH \
+ assert(c); assert(hv)
+
+PERL_CALLCONV void Perl_store_cop_label(pTHX_ COP *const cop, const char *label, STRLEN len, U32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_STORE_COP_LABEL \
+ assert(cop); assert(label)
+
+PERL_CALLCONV NV Perl_str_to_version(pTHX_ SV *sv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_STR_TO_VERSION \
+ assert(sv)
+
PERL_CALLCONV void Perl_sub_crush_depth(pTHX_ CV* cv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SUB_CRUSH_DEPTH \
assert(cv)
-PERL_CALLCONV bool Perl_sv_2bool(pTHX_ SV *const sv)
+/* PERL_CALLCONV bool sv_2bool(pTHX_ SV *const sv)
+ __attribute__nonnull__(pTHX_1); */
+
+PERL_CALLCONV bool Perl_sv_2bool_flags(pTHX_ SV *const sv, const I32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_2BOOL \
+#define PERL_ARGS_ASSERT_SV_2BOOL_FLAGS \
assert(sv)
PERL_CALLCONV CV* Perl_sv_2cv(pTHX_ SV* sv, HV **const st, GV **const gvp, const I32 lref)
@@ -3147,27 +3552,21 @@ PERL_CALLCONV IO* Perl_sv_2io(pTHX_ SV *const sv)
#define PERL_ARGS_ASSERT_SV_2IO \
assert(sv)
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-STATIC bool S_glob_2number(pTHX_ GV* const gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GLOB_2NUMBER \
- assert(gv)
-
-#endif
/* PERL_CALLCONV IV Perl_sv_2iv(pTHX_ SV *sv); */
PERL_CALLCONV IV Perl_sv_2iv_flags(pTHX_ SV *const sv, const I32 flags);
PERL_CALLCONV SV* Perl_sv_2mortal(pTHX_ SV *const sv);
-PERL_CALLCONV NV Perl_sv_2nv(pTHX_ SV *const sv);
PERL_CALLCONV SV* Perl_sv_2num(pTHX_ SV *const sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SV_2NUM \
assert(sv)
+PERL_CALLCONV NV Perl_sv_2nv_flags(pTHX_ SV *const sv, const I32 flags);
/* PERL_CALLCONV char* Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp); */
PERL_CALLCONV char* Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags);
-PERL_CALLCONV char* Perl_sv_2pvutf8(pTHX_ SV *const sv, STRLEN *const lp)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_2PVUTF8 \
+/* PERL_CALLCONV char* Perl_sv_2pv_nolen(pTHX_ SV* sv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_2PV_NOLEN \
assert(sv)
PERL_CALLCONV char* Perl_sv_2pvbyte(pTHX_ SV *const sv, STRLEN *const lp)
@@ -3175,64 +3574,60 @@ PERL_CALLCONV char* Perl_sv_2pvbyte(pTHX_ SV *const sv, STRLEN *const lp)
#define PERL_ARGS_ASSERT_SV_2PVBYTE \
assert(sv)
-PERL_CALLCONV char* Perl_sv_pvn_nomg(pTHX_ SV* sv, STRLEN* lp)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_PVN_NOMG \
+/* PERL_CALLCONV char* Perl_sv_2pvbyte_nolen(pTHX_ SV* sv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN \
assert(sv)
-/* PERL_CALLCONV UV Perl_sv_2uv(pTHX_ SV *sv); */
-PERL_CALLCONV UV Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags);
-PERL_CALLCONV IV Perl_sv_iv(pTHX_ SV* sv)
+PERL_CALLCONV char* Perl_sv_2pvutf8(pTHX_ SV *const sv, STRLEN *const lp)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_IV \
+#define PERL_ARGS_ASSERT_SV_2PVUTF8 \
assert(sv)
-PERL_CALLCONV UV Perl_sv_uv(pTHX_ SV* sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_UV \
+/* PERL_CALLCONV char* Perl_sv_2pvutf8_nolen(pTHX_ SV* sv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN \
assert(sv)
-PERL_CALLCONV NV Perl_sv_nv(pTHX_ SV* sv)
+/* PERL_CALLCONV UV Perl_sv_2uv(pTHX_ SV *sv); */
+PERL_CALLCONV UV Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags);
+PERL_CALLCONV int Perl_sv_backoff(pTHX_ SV *const sv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_NV \
+#define PERL_ARGS_ASSERT_SV_BACKOFF \
assert(sv)
-PERL_CALLCONV char* Perl_sv_pvn(pTHX_ SV *sv, STRLEN *lp)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_PVN \
- assert(sv); assert(lp)
-
-PERL_CALLCONV char* Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *lp)
+PERL_CALLCONV SV* Perl_sv_bless(pTHX_ SV *const sv, HV *const stash)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_PVUTF8N \
- assert(sv); assert(lp)
+#define PERL_ARGS_ASSERT_SV_BLESS \
+ assert(sv); assert(stash)
-PERL_CALLCONV char* Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *lp)
+PERL_CALLCONV bool Perl_sv_cat_decode(pTHX_ SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_PVBYTEN \
- assert(sv); assert(lp)
-
-PERL_CALLCONV I32 Perl_sv_true(pTHX_ SV *const sv);
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-STATIC void S_sv_add_arena(pTHX_ char *const ptr, const U32 size, const U32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_ADD_ARENA \
- assert(ptr)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4)
+ __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_SV_CAT_DECODE \
+ assert(dsv); assert(encoding); assert(ssv); assert(offset); assert(tstr)
-#endif
-PERL_CALLCONV int Perl_sv_backoff(pTHX_ SV *const sv)
+PERL_CALLCONV void Perl_sv_catpv(pTHX_ SV *const sv, const char* ptr)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_BACKOFF \
+#define PERL_ARGS_ASSERT_SV_CATPV \
assert(sv)
-PERL_CALLCONV SV* Perl_sv_bless(pTHX_ SV *const sv, HV *const stash)
+PERL_CALLCONV void Perl_sv_catpv_flags(pTHX_ SV *dstr, const char *sstr, const I32 flags)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_BLESS \
- assert(sv); assert(stash)
+#define PERL_ARGS_ASSERT_SV_CATPV_FLAGS \
+ assert(dstr); assert(sstr)
+
+PERL_CALLCONV void Perl_sv_catpv_mg(pTHX_ SV *const sv, const char *const ptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_CATPV_MG \
+ assert(sv)
PERL_CALLCONV void Perl_sv_catpvf(pTHX_ SV *const sv, const char *const pat, ...)
__attribute__format__(__printf__,pTHX_2,pTHX_3)
@@ -3241,28 +3636,46 @@ PERL_CALLCONV void Perl_sv_catpvf(pTHX_ SV *const sv, const char *const pat, ...
#define PERL_ARGS_ASSERT_SV_CATPVF \
assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_vcatpvf(pTHX_ SV *const sv, const char *const pat, va_list *const args)
+PERL_CALLCONV void Perl_sv_catpvf_mg(pTHX_ SV *const sv, const char *const pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_VCATPVF \
+#define PERL_ARGS_ASSERT_SV_CATPVF_MG \
assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_catpv(pTHX_ SV *const sv, const char* ptr)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_CATPV \
- assert(sv)
-
/* PERL_CALLCONV void Perl_sv_catpvn(pTHX_ SV *dsv, const char *sstr, STRLEN len)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2); */
#define PERL_ARGS_ASSERT_SV_CATPVN \
assert(dsv); assert(sstr)
+PERL_CALLCONV void Perl_sv_catpvn_flags(pTHX_ SV *const dstr, const char *sstr, const STRLEN len, const I32 flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_CATPVN_FLAGS \
+ assert(dstr); assert(sstr)
+
+/* PERL_CALLCONV void Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2); */
+#define PERL_ARGS_ASSERT_SV_CATPVN_MG \
+ assert(sv); assert(ptr)
+
/* PERL_CALLCONV void Perl_sv_catsv(pTHX_ SV *dstr, SV *sstr)
__attribute__nonnull__(pTHX_1); */
#define PERL_ARGS_ASSERT_SV_CATSV \
assert(dstr)
+PERL_CALLCONV void Perl_sv_catsv_flags(pTHX_ SV *const dsv, SV *const ssv, const I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_CATSV_FLAGS \
+ assert(dsv)
+
+/* PERL_CALLCONV void Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *ssv)
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_CATSV_MG \
+ assert(dsv)
+
PERL_CALLCONV void Perl_sv_chop(pTHX_ SV *const sv, const char *const ptr)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SV_CHOP \
@@ -3270,22 +3683,17 @@ PERL_CALLCONV void Perl_sv_chop(pTHX_ SV *const sv, const char *const ptr)
PERL_CALLCONV I32 Perl_sv_clean_all(pTHX);
PERL_CALLCONV void Perl_sv_clean_objs(pTHX);
-PERL_CALLCONV void Perl_sv_clear(pTHX_ SV *const sv)
+PERL_CALLCONV void Perl_sv_clear(pTHX_ SV *const orig_sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SV_CLEAR \
- assert(sv)
+ assert(orig_sv)
PERL_CALLCONV I32 Perl_sv_cmp(pTHX_ SV *const sv1, SV *const sv2);
+PERL_CALLCONV I32 Perl_sv_cmp_flags(pTHX_ SV *const sv1, SV *const sv2, const U32 flags);
PERL_CALLCONV I32 Perl_sv_cmp_locale(pTHX_ SV *const sv1, SV *const sv2);
-#if defined(USE_LOCALE_COLLATE)
-PERL_CALLCONV char* Perl_sv_collxfrm(pTHX_ SV *const sv, STRLEN *const nxp)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_COLLXFRM \
- assert(sv); assert(nxp)
-
-#endif
+PERL_CALLCONV I32 Perl_sv_cmp_locale_flags(pTHX_ SV *const sv1, SV *const sv2, const U32 flags);
PERL_CALLCONV OP* Perl_sv_compile_2op(pTHX_ SV *sv, OP **startop, const char *code, PAD **padp)
+ __attribute__deprecated__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3)
@@ -3293,16 +3701,27 @@ PERL_CALLCONV OP* Perl_sv_compile_2op(pTHX_ SV *sv, OP **startop, const char *co
#define PERL_ARGS_ASSERT_SV_COMPILE_2OP \
assert(sv); assert(startop); assert(code); assert(padp)
-PERL_CALLCONV int Perl_getcwd_sv(pTHX_ SV* sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GETCWD_SV \
- assert(sv)
+PERL_CALLCONV OP* Perl_sv_compile_2op_is_broken(pTHX_ SV *sv, OP **startop, const char *code, PAD **padp)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_SV_COMPILE_2OP_IS_BROKEN \
+ assert(sv); assert(startop); assert(code); assert(padp)
+
+PERL_CALLCONV void Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_COPYPV \
+ assert(dsv); assert(ssv)
PERL_CALLCONV void Perl_sv_dec(pTHX_ SV *const sv);
-PERL_CALLCONV void Perl_sv_dump(pTHX_ SV* sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_DUMP \
- assert(sv)
+PERL_CALLCONV void Perl_sv_dec_nomg(pTHX_ SV *const sv);
+PERL_CALLCONV void Perl_sv_del_backref(pTHX_ SV *const tsv, SV *const sv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_DEL_BACKREF \
+ assert(tsv); assert(sv)
PERL_CALLCONV bool Perl_sv_derived_from(pTHX_ SV* sv, const char *const name)
__attribute__warn_unused_result__
@@ -3311,6 +3730,7 @@ PERL_CALLCONV bool Perl_sv_derived_from(pTHX_ SV* sv, const char *const name)
#define PERL_ARGS_ASSERT_SV_DERIVED_FROM \
assert(sv); assert(name)
+PERL_CALLCONV bool Perl_sv_destroyable(pTHX_ SV *sv);
PERL_CALLCONV bool Perl_sv_does(pTHX_ SV* sv, const char *const name)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
@@ -3318,7 +3738,23 @@ PERL_CALLCONV bool Perl_sv_does(pTHX_ SV* sv, const char *const name)
#define PERL_ARGS_ASSERT_SV_DOES \
assert(sv); assert(name)
-PERL_CALLCONV I32 Perl_sv_eq(pTHX_ SV* sv1, SV* sv2);
+PERL_CALLCONV void Perl_sv_dump(pTHX_ SV* sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_DUMP \
+ assert(sv)
+
+/* PERL_CALLCONV I32 sv_eq(pTHX_ SV* sv1, SV* sv2); */
+PERL_CALLCONV I32 Perl_sv_eq_flags(pTHX_ SV* sv1, SV* sv2, const U32 flags);
+/* PERL_CALLCONV void Perl_sv_force_normal(pTHX_ SV *sv)
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_force_normal_flags(pTHX_ SV *const sv, const U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS \
+ assert(sv)
+
PERL_CALLCONV void Perl_sv_free(pTHX_ SV *const sv);
PERL_CALLCONV void Perl_sv_free2(pTHX_ SV *const sv)
__attribute__nonnull__(pTHX_1);
@@ -3338,6 +3774,7 @@ PERL_CALLCONV char* Perl_sv_grow(pTHX_ SV *const sv, STRLEN newlen)
assert(sv)
PERL_CALLCONV void Perl_sv_inc(pTHX_ SV *const sv);
+PERL_CALLCONV void Perl_sv_inc_nomg(pTHX_ SV *const sv);
/* PERL_CALLCONV void Perl_sv_insert(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_4); */
@@ -3356,6 +3793,11 @@ PERL_CALLCONV int Perl_sv_isa(pTHX_ SV* sv, const char *const name)
assert(name)
PERL_CALLCONV int Perl_sv_isobject(pTHX_ SV* sv);
+PERL_CALLCONV IV Perl_sv_iv(pTHX_ SV* sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_IV \
+ assert(sv)
+
PERL_CALLCONV STRLEN Perl_sv_len(pTHX_ SV *const sv);
PERL_CALLCONV STRLEN Perl_sv_len_utf8(pTHX_ SV *const sv);
PERL_CALLCONV void Perl_sv_magic(pTHX_ SV *const sv, SV *const obj, const int how, const char *const name, const I32 namlen)
@@ -3376,7 +3818,19 @@ PERL_CALLCONV SV* Perl_sv_newmortal(pTHX)
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_sv_newref(pTHX_ SV *const sv);
+/* PERL_CALLCONV void Perl_sv_nolocking(pTHX_ SV *sv); */
+PERL_CALLCONV void Perl_sv_nosharing(pTHX_ SV *sv);
+PERL_CALLCONV NV Perl_sv_nv(pTHX_ SV* sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_NV \
+ assert(sv)
+
PERL_CALLCONV char* Perl_sv_peek(pTHX_ SV* sv);
+PERL_CALLCONV void Perl_sv_pos_b2u(pTHX_ SV *const sv, I32 *const offsetp)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_POS_B2U \
+ assert(offsetp)
+
PERL_CALLCONV void Perl_sv_pos_u2b(pTHX_ SV *const sv, I32 *const offsetp, I32 *const lenp)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_SV_POS_U2B \
@@ -3387,24 +3841,65 @@ PERL_CALLCONV STRLEN Perl_sv_pos_u2b_flags(pTHX_ SV *const sv, STRLEN uoffset, S
#define PERL_ARGS_ASSERT_SV_POS_U2B_FLAGS \
assert(sv)
-PERL_CALLCONV void Perl_sv_pos_b2u(pTHX_ SV *const sv, I32 *const offsetp)
+/* PERL_CALLCONV char* Perl_sv_pv(pTHX_ SV *sv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_PV \
+ assert(sv)
+
+/* PERL_CALLCONV char* Perl_sv_pvbyte(pTHX_ SV *sv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_PVBYTE \
+ assert(sv)
+
+PERL_CALLCONV char* Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *lp)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_POS_B2U \
- assert(offsetp)
+#define PERL_ARGS_ASSERT_SV_PVBYTEN \
+ assert(sv); assert(lp)
+
+PERL_CALLCONV char* Perl_sv_pvbyten_force(pTHX_ SV *const sv, STRLEN *const lp)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE \
+ assert(sv)
+
+PERL_CALLCONV char* Perl_sv_pvn(pTHX_ SV *sv, STRLEN *lp)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_PVN \
+ assert(sv); assert(lp)
/* PERL_CALLCONV char* Perl_sv_pvn_force(pTHX_ SV* sv, STRLEN* lp)
__attribute__nonnull__(pTHX_1); */
#define PERL_ARGS_ASSERT_SV_PVN_FORCE \
assert(sv)
-PERL_CALLCONV char* Perl_sv_pvutf8n_force(pTHX_ SV *const sv, STRLEN *const lp)
+PERL_CALLCONV char* Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE \
+#define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS \
assert(sv)
-PERL_CALLCONV char* Perl_sv_pvbyten_force(pTHX_ SV *const sv, STRLEN *const lp)
+PERL_CALLCONV char* Perl_sv_pvn_nomg(pTHX_ SV* sv, STRLEN* lp)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_PVBYTEN_FORCE \
+#define PERL_ARGS_ASSERT_SV_PVN_NOMG \
+ assert(sv)
+
+/* PERL_CALLCONV char* Perl_sv_pvutf8(pTHX_ SV *sv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_PVUTF8 \
+ assert(sv)
+
+PERL_CALLCONV char* Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *lp)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_PVUTF8N \
+ assert(sv); assert(lp)
+
+PERL_CALLCONV char* Perl_sv_pvutf8n_force(pTHX_ SV *const sv, STRLEN *const lp)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_PVUTF8N_FORCE \
assert(sv)
PERL_CALLCONV char* Perl_sv_recode_to_utf8(pTHX_ SV* sv, SV *encoding)
@@ -3413,15 +3908,6 @@ PERL_CALLCONV char* Perl_sv_recode_to_utf8(pTHX_ SV* sv, SV *encoding)
#define PERL_ARGS_ASSERT_SV_RECODE_TO_UTF8 \
assert(sv); assert(encoding)
-PERL_CALLCONV bool Perl_sv_cat_decode(pTHX_ SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4)
- __attribute__nonnull__(pTHX_5);
-#define PERL_ARGS_ASSERT_SV_CAT_DECODE \
- assert(dsv); assert(encoding); assert(ssv); assert(offset); assert(tstr)
-
PERL_CALLCONV const char* Perl_sv_reftype(pTHX_ const SV *const sv, const int ob)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
@@ -3440,6 +3926,41 @@ PERL_CALLCONV void Perl_sv_reset(pTHX_ const char* s, HV *const stash)
#define PERL_ARGS_ASSERT_SV_RESET \
assert(s)
+PERL_CALLCONV SV* Perl_sv_rvweaken(pTHX_ SV *const sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_RVWEAKEN \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_setiv(pTHX_ SV *const sv, const IV num)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETIV \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_setiv_mg(pTHX_ SV *const sv, const IV i)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETIV_MG \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_setnv(pTHX_ SV *const sv, const NV num)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETNV \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_setnv_mg(pTHX_ SV *const sv, const NV num)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETNV_MG \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_setpv(pTHX_ SV *const sv, const char *const ptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETPV \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_setpv_mg(pTHX_ SV *const sv, const char *const ptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETPV_MG \
+ assert(sv)
+
PERL_CALLCONV void Perl_sv_setpvf(pTHX_ SV *const sv, const char *const pat, ...)
__attribute__format__(__printf__,pTHX_2,pTHX_3)
__attribute__nonnull__(pTHX_1)
@@ -3447,42 +3968,39 @@ PERL_CALLCONV void Perl_sv_setpvf(pTHX_ SV *const sv, const char *const pat, ...
#define PERL_ARGS_ASSERT_SV_SETPVF \
assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_vsetpvf(pTHX_ SV *const sv, const char *const pat, va_list *const args)
+PERL_CALLCONV void Perl_sv_setpvf_mg(pTHX_ SV *const sv, const char *const pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_VSETPVF \
+#define PERL_ARGS_ASSERT_SV_SETPVF_MG \
assert(sv); assert(pat)
-PERL_CALLCONV void Perl_sv_setiv(pTHX_ SV *const sv, const IV num)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETIV \
- assert(sv)
-
PERL_CALLCONV void Perl_sv_setpviv(pTHX_ SV *const sv, const IV num)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SV_SETPVIV \
assert(sv)
-PERL_CALLCONV void Perl_sv_setuv(pTHX_ SV *const sv, const UV num)
+PERL_CALLCONV void Perl_sv_setpviv_mg(pTHX_ SV *const sv, const IV iv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETUV \
+#define PERL_ARGS_ASSERT_SV_SETPVIV_MG \
assert(sv)
-PERL_CALLCONV void Perl_sv_setnv(pTHX_ SV *const sv, const NV num)
+PERL_CALLCONV void Perl_sv_setpvn(pTHX_ SV *const sv, const char *const ptr, const STRLEN len)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETNV \
+#define PERL_ARGS_ASSERT_SV_SETPVN \
assert(sv)
+PERL_CALLCONV void Perl_sv_setpvn_mg(pTHX_ SV *const sv, const char *const ptr, const STRLEN len)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_SETPVN_MG \
+ assert(sv); assert(ptr)
+
PERL_CALLCONV SV* Perl_sv_setref_iv(pTHX_ SV *const rv, const char *const classname, const IV iv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SV_SETREF_IV \
assert(rv)
-PERL_CALLCONV SV* Perl_sv_setref_uv(pTHX_ SV *const rv, const char *const classname, const UV uv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETREF_UV \
- assert(rv)
-
PERL_CALLCONV SV* Perl_sv_setref_nv(pTHX_ SV *const rv, const char *const classname, const NV nv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SV_SETREF_NV \
@@ -3499,21 +4017,36 @@ PERL_CALLCONV SV* Perl_sv_setref_pvn(pTHX_ SV *const rv, const char *const class
#define PERL_ARGS_ASSERT_SV_SETREF_PVN \
assert(rv); assert(pv)
-PERL_CALLCONV void Perl_sv_setpv(pTHX_ SV *const sv, const char *const ptr)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETPV \
- assert(sv)
-
-PERL_CALLCONV void Perl_sv_setpvn(pTHX_ SV *const sv, const char *const ptr, const STRLEN len)
+PERL_CALLCONV SV* Perl_sv_setref_uv(pTHX_ SV *const rv, const char *const classname, const UV uv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETPVN \
- assert(sv)
+#define PERL_ARGS_ASSERT_SV_SETREF_UV \
+ assert(rv)
/* PERL_CALLCONV void Perl_sv_setsv(pTHX_ SV *dstr, SV *sstr)
__attribute__nonnull__(pTHX_1); */
#define PERL_ARGS_ASSERT_SV_SETSV \
assert(dstr)
+PERL_CALLCONV void Perl_sv_setsv_flags(pTHX_ SV *dstr, SV *sstr, const I32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETSV_FLAGS \
+ assert(dstr)
+
+PERL_CALLCONV void Perl_sv_setsv_mg(pTHX_ SV *const dstr, SV *const sstr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETSV_MG \
+ assert(dstr)
+
+PERL_CALLCONV void Perl_sv_setuv(pTHX_ SV *const sv, const UV num)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETUV \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_setuv_mg(pTHX_ SV *const sv, const UV u)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_SETUV_MG \
+ assert(sv)
+
/* PERL_CALLCONV void Perl_sv_taint(pTHX_ SV* sv)
__attribute__nonnull__(pTHX_1); */
#define PERL_ARGS_ASSERT_SV_TAINT \
@@ -3525,11 +4058,24 @@ PERL_CALLCONV bool Perl_sv_tainted(pTHX_ SV *const sv)
#define PERL_ARGS_ASSERT_SV_TAINTED \
assert(sv)
+PERL_CALLCONV I32 Perl_sv_true(pTHX_ SV *const sv);
+PERL_CALLCONV char* Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_UNI_DISPLAY \
+ assert(dsv); assert(ssv)
+
PERL_CALLCONV int Perl_sv_unmagic(pTHX_ SV *const sv, const int type)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SV_UNMAGIC \
assert(sv)
+PERL_CALLCONV int Perl_sv_unmagicext(pTHX_ SV *const sv, const int type, MGVTBL *vtbl)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_UNMAGICEXT \
+ assert(sv)
+
/* PERL_CALLCONV void Perl_sv_unref(pTHX_ SV* sv)
__attribute__nonnull__(pTHX_1); */
#define PERL_ARGS_ASSERT_SV_UNREF \
@@ -3560,23 +4106,88 @@ PERL_CALLCONV void Perl_sv_usepvn_flags(pTHX_ SV *const sv, char* ptr, const STR
#define PERL_ARGS_ASSERT_SV_USEPVN_FLAGS \
assert(sv)
+/* PERL_CALLCONV void Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len)
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_USEPVN_MG \
+ assert(sv)
+
+PERL_CALLCONV bool Perl_sv_utf8_decode(pTHX_ SV *const sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_UTF8_DECODE \
+ assert(sv)
+
+PERL_CALLCONV bool Perl_sv_utf8_downgrade(pTHX_ SV *const sv, const bool fail_ok)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_utf8_encode(pTHX_ SV *const sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_UTF8_ENCODE \
+ assert(sv)
+
+/* PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade(pTHX_ SV *sv)
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE \
+ assert(sv)
+
+/* PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade_flags(pTHX_ SV *const sv, const I32 flags)
+ __attribute__nonnull__(pTHX_1); */
+
+PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV *const sv, const I32 flags, STRLEN extra)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW \
+ assert(sv)
+
+/* PERL_CALLCONV STRLEN sv_utf8_upgrade_nomg(pTHX_ SV *sv)
+ __attribute__nonnull__(pTHX_1); */
+
+PERL_CALLCONV UV Perl_sv_uv(pTHX_ SV* sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_UV \
+ assert(sv)
+
+PERL_CALLCONV void Perl_sv_vcatpvf(pTHX_ SV *const sv, const char *const pat, va_list *const args)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_VCATPVF \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void Perl_sv_vcatpvf_mg(pTHX_ SV *const sv, const char *const pat, va_list *const args)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_VCATPVF_MG \
+ assert(sv); assert(pat)
+
PERL_CALLCONV void Perl_sv_vcatpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const I32 svmax, bool *const maybe_tainted)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_SV_VCATPVFN \
assert(sv); assert(pat)
+PERL_CALLCONV void Perl_sv_vsetpvf(pTHX_ SV *const sv, const char *const pat, va_list *const args)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_VSETPVF \
+ assert(sv); assert(pat)
+
+PERL_CALLCONV void Perl_sv_vsetpvf_mg(pTHX_ SV *const sv, const char *const pat, va_list *const args)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_VSETPVF_MG \
+ assert(sv); assert(pat)
+
PERL_CALLCONV void Perl_sv_vsetpvfn(pTHX_ SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const I32 svmax, bool *const maybe_tainted)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_SV_VSETPVFN \
assert(sv); assert(pat)
-PERL_CALLCONV NV Perl_str_to_version(pTHX_ SV *sv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_STR_TO_VERSION \
- assert(sv)
+PERL_CALLCONV UV Perl_swash_fetch(pTHX_ SV *swash, const U8 *ptr, bool do_utf8)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SWASH_FETCH \
+ assert(swash); assert(ptr)
PERL_CALLCONV SV* Perl_swash_init(pTHX_ const char* pkg, const char* name, SV* listsv, I32 minbits, I32 none)
__attribute__nonnull__(pTHX_1)
@@ -3585,37 +4196,85 @@ PERL_CALLCONV SV* Perl_swash_init(pTHX_ const char* pkg, const char* name, SV* l
#define PERL_ARGS_ASSERT_SWASH_INIT \
assert(pkg); assert(name); assert(listsv)
-PERL_CALLCONV UV Perl_swash_fetch(pTHX_ SV *swash, const U8 *ptr, bool do_utf8)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SWASH_FETCH \
- assert(swash); assert(ptr)
+PERL_CALLCONV void Perl_sys_init(int* argc, char*** argv)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_SYS_INIT \
+ assert(argc); assert(argv)
+PERL_CALLCONV void Perl_sys_init3(int* argc, char*** argv, char*** env)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_SYS_INIT3 \
+ assert(argc); assert(argv); assert(env)
+
+PERL_CALLCONV void Perl_sys_term(void);
PERL_CALLCONV void Perl_taint_env(pTHX);
PERL_CALLCONV void Perl_taint_proper(pTHX_ const char* f, const char *const s)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_TAINT_PROPER \
assert(s)
+PERL_CALLCONV OP * Perl_tied_method(pTHX_ const char *const methname, SV **sp, SV *const sv, const MAGIC *const mg, const U32 flags, U32 argc, ...)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_TIED_METHOD \
+ assert(methname); assert(sp); assert(sv); assert(mg)
+
+PERL_CALLCONV void Perl_tmps_grow(pTHX_ I32 n);
+/* PERL_CALLCONV UV Perl_to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3); */
+
+PERL_CALLCONV UV Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_TO_UNI_LOWER \
+ assert(p); assert(lenp)
+
+PERL_CALLCONV U32 Perl_to_uni_lower_lc(pTHX_ U32 c)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
+PERL_CALLCONV UV Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_TO_UNI_TITLE \
+ assert(p); assert(lenp)
+
+PERL_CALLCONV U32 Perl_to_uni_title_lc(pTHX_ U32 c)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
+PERL_CALLCONV UV Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_TO_UNI_UPPER \
+ assert(p); assert(lenp)
+
+PERL_CALLCONV U32 Perl_to_uni_upper_lc(pTHX_ U32 c)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
PERL_CALLCONV UV Perl_to_utf8_case(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, const char *normal, const char *special)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_4)
- __attribute__nonnull__(pTHX_5)
- __attribute__nonnull__(pTHX_6);
+ __attribute__nonnull__(pTHX_5);
#define PERL_ARGS_ASSERT_TO_UTF8_CASE \
- assert(p); assert(ustrp); assert(swashp); assert(normal); assert(special)
+ assert(p); assert(ustrp); assert(swashp); assert(normal)
-PERL_CALLCONV UV Perl_to_utf8_lower(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
+/* PERL_CALLCONV UV Perl_to_utf8_fold(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_TO_UTF8_LOWER \
- assert(p); assert(ustrp)
+ __attribute__nonnull__(pTHX_2); */
-PERL_CALLCONV UV Perl_to_utf8_upper(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
+PERL_CALLCONV UV Perl_to_utf8_lower(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_TO_UTF8_UPPER \
+#define PERL_ARGS_ASSERT_TO_UTF8_LOWER \
assert(p); assert(ustrp)
PERL_CALLCONV UV Perl_to_utf8_title(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
@@ -3624,19 +4283,14 @@ PERL_CALLCONV UV Perl_to_utf8_title(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
#define PERL_ARGS_ASSERT_TO_UTF8_TITLE \
assert(p); assert(ustrp)
-PERL_CALLCONV UV Perl_to_utf8_fold(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
+PERL_CALLCONV UV Perl_to_utf8_upper(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_TO_UTF8_FOLD \
+#define PERL_ARGS_ASSERT_TO_UTF8_UPPER \
assert(p); assert(ustrp)
-#if defined(UNLINK_ALL_VERSIONS)
-PERL_CALLCONV I32 Perl_unlnk(pTHX_ const char* f)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_UNLNK \
- assert(f)
-
-#endif
+PERL_CALLCONV bool Perl_try_amagic_bin(pTHX_ int method, int flags);
+PERL_CALLCONV bool Perl_try_amagic_un(pTHX_ int method, int flags);
PERL_CALLCONV I32 Perl_unpack_str(pTHX_ const char *pat, const char *patend, const char *s, const char *strbeg, const char *strend, char **new_s, I32 ocnt, U32 flags)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -3653,21 +4307,13 @@ PERL_CALLCONV I32 Perl_unpackstring(pTHX_ const char *pat, const char *patend, c
#define PERL_ARGS_ASSERT_UNPACKSTRING \
assert(pat); assert(patend); assert(s); assert(strend)
-PERL_CALLCONV void Perl_unsharepvn(pTHX_ const char* sv, I32 len, U32 hash);
PERL_CALLCONV void Perl_unshare_hek(pTHX_ HEK* hek);
-#ifdef PERL_MAD
-PERL_CALLCONV OP * Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_UTILIZE \
- assert(idop)
-
-#else
-PERL_CALLCONV void Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_UTILIZE \
- assert(idop)
+PERL_CALLCONV void Perl_unsharepvn(pTHX_ const char* sv, I32 len, U32 hash);
+PERL_CALLCONV SV* Perl_upg_version(pTHX_ SV *ver, bool qv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_UPG_VERSION \
+ assert(ver)
-#endif
PERL_CALLCONV U8* Perl_utf16_to_utf8(pTHX_ U8* p, U8 *d, I32 bytelen, I32 *newlen)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -3682,14 +4328,6 @@ PERL_CALLCONV U8* Perl_utf16_to_utf8_reversed(pTHX_ U8* p, U8 *d, I32 bytelen, I
#define PERL_ARGS_ASSERT_UTF16_TO_UTF8_REVERSED \
assert(p); assert(d); assert(newlen)
-PERL_CALLCONV STRLEN Perl_utf8_length(pTHX_ const U8* s, const U8 *e)
- __attribute__warn_unused_result__
- __attribute__pure__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_UTF8_LENGTH \
- assert(s); assert(e)
-
PERL_CALLCONV IV Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
__attribute__warn_unused_result__
__attribute__pure__
@@ -3705,22 +4343,18 @@ PERL_CALLCONV U8* Perl_utf8_hop(pTHX_ const U8 *s, I32 off)
#define PERL_ARGS_ASSERT_UTF8_HOP \
assert(s)
-PERL_CALLCONV U8* Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *len)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_UTF8_TO_BYTES \
- assert(s); assert(len)
-
-PERL_CALLCONV U8* Perl_bytes_from_utf8(pTHX_ const U8 *s, STRLEN *len, bool *is_utf8)
+PERL_CALLCONV STRLEN Perl_utf8_length(pTHX_ const U8* s, const U8 *e)
+ __attribute__warn_unused_result__
+ __attribute__pure__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_BYTES_FROM_UTF8 \
- assert(s); assert(len)
+#define PERL_ARGS_ASSERT_UTF8_LENGTH \
+ assert(s); assert(e)
-PERL_CALLCONV U8* Perl_bytes_to_utf8(pTHX_ const U8 *s, STRLEN *len)
+PERL_CALLCONV U8* Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *len)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_BYTES_TO_UTF8 \
+#define PERL_ARGS_ASSERT_UTF8_TO_BYTES \
assert(s); assert(len)
PERL_CALLCONV UV Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
@@ -3733,68 +4367,44 @@ PERL_CALLCONV UV Perl_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
#define PERL_ARGS_ASSERT_UTF8_TO_UVUNI \
assert(s)
-
-#ifdef EBCDIC
-PERL_CALLCONV UV Perl_utf8n_to_uvchr(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR \
- assert(s)
-
-#else
-/* PERL_CALLCONV UV Perl_utf8n_to_uvchr(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR \
- assert(s)
-
-#endif
-
PERL_CALLCONV UV Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_UTF8N_TO_UVUNI \
assert(s)
-
-#ifdef EBCDIC
-PERL_CALLCONV U8* Perl_uvchr_to_utf8(pTHX_ U8 *d, UV uv)
+PERL_CALLCONV U8* Perl_uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8 \
- assert(d)
-
-#else
-/* PERL_CALLCONV U8* Perl_uvchr_to_utf8(pTHX_ U8 *d, UV uv)
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8 \
+#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8_FLAGS \
assert(d)
-#endif
-
/* PERL_CALLCONV U8* Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv)
__attribute__nonnull__(pTHX_1); */
#define PERL_ARGS_ASSERT_UVUNI_TO_UTF8 \
assert(d)
-PERL_CALLCONV U8* Perl_uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8_FLAGS \
- assert(d)
-
PERL_CALLCONV U8* Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_UVUNI_TO_UTF8_FLAGS \
assert(d)
-PERL_CALLCONV char* Perl_pv_uni_display(pTHX_ SV *dsv, const U8 *spv, STRLEN len, STRLEN pvlim, UV flags)
+PERL_CALLCONV int Perl_vcmp(pTHX_ SV *lhv, SV *rhv)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PV_UNI_DISPLAY \
- assert(dsv); assert(spv)
+#define PERL_ARGS_ASSERT_VCMP \
+ assert(lhv); assert(rhv)
-PERL_CALLCONV char* Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_UNI_DISPLAY \
- assert(dsv); assert(ssv)
+PERL_CALLCONV void Perl_vcroak(pTHX_ const char* pat, va_list* args)
+ __attribute__noreturn__;
+
+PERL_CALLCONV void Perl_vdeb(pTHX_ const char* pat, va_list* args)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_VDEB \
+ assert(pat)
+
+PERL_CALLCONV char* Perl_vform(pTHX_ const char* pat, va_list* args)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_VFORM \
+ assert(pat)
PERL_CALLCONV void Perl_vivify_defelem(pTHX_ SV* sv)
__attribute__nonnull__(pTHX_1);
@@ -3806,54 +4416,73 @@ PERL_CALLCONV void Perl_vivify_ref(pTHX_ SV* sv, U32 to_what)
#define PERL_ARGS_ASSERT_VIVIFY_REF \
assert(sv)
-PERL_CALLCONV I32 Perl_wait4pid(pTHX_ Pid_t pid, int* statusp, int flags)
+PERL_CALLCONV void Perl_vload_module(pTHX_ U32 flags, SV* name, SV* ver, va_list* args)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_WAIT4PID \
- assert(statusp)
+#define PERL_ARGS_ASSERT_VLOAD_MODULE \
+ assert(name)
-PERL_CALLCONV U32 Perl_parse_unicode_opts(pTHX_ const char **popt)
+PERL_CALLCONV SV* Perl_vmess(pTHX_ const char* pat, va_list* args)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS \
- assert(popt)
-
-PERL_CALLCONV U32 Perl_seed(pTHX);
-PERL_CALLCONV UV Perl_get_hash_seed(pTHX)
- __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_VMESS \
+ assert(pat)
-PERL_CALLCONV void Perl_report_evil_fh(pTHX_ const GV *gv, const IO *io, I32 op);
-PERL_CALLCONV void Perl_report_uninit(pTHX_ const SV *uninit_sv);
-PERL_CALLCONV void Perl_warn(pTHX_ const char* pat, ...)
- __attribute__format__(__printf__,pTHX_1,pTHX_2)
+PERL_CALLCONV SV* Perl_vnewSVpvf(pTHX_ const char *const pat, va_list *const args)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_WARN \
+#define PERL_ARGS_ASSERT_VNEWSVPVF \
assert(pat)
+PERL_CALLCONV SV* Perl_vnormal(pTHX_ SV *vs)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_VNORMAL \
+ assert(vs)
+
+PERL_CALLCONV SV* Perl_vnumify(pTHX_ SV *vs)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_VNUMIFY \
+ assert(vs)
+
+PERL_CALLCONV SV* Perl_vstringify(pTHX_ SV *vs)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_VSTRINGIFY \
+ assert(vs)
+
+PERL_CALLCONV SV* Perl_vverify(pTHX_ SV *vs)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_VVERIFY \
+ assert(vs)
+
PERL_CALLCONV void Perl_vwarn(pTHX_ const char* pat, va_list* args)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_VWARN \
assert(pat)
-PERL_CALLCONV void Perl_warner(pTHX_ U32 err, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3)
+PERL_CALLCONV void Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_WARNER \
+#define PERL_ARGS_ASSERT_VWARNER \
assert(pat)
-PERL_CALLCONV void Perl_ck_warner(pTHX_ U32 err, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3)
+PERL_CALLCONV I32 Perl_wait4pid(pTHX_ Pid_t pid, int* statusp, int flags)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_CK_WARNER \
- assert(pat)
+#define PERL_ARGS_ASSERT_WAIT4PID \
+ assert(statusp)
-PERL_CALLCONV void Perl_ck_warner_d(pTHX_ U32 err, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_CK_WARNER_D \
+PERL_CALLCONV void Perl_warn(pTHX_ const char* pat, ...)
+ __attribute__format__(__printf__,pTHX_1,pTHX_2)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_WARN \
assert(pat)
-PERL_CALLCONV void Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args)
+PERL_CALLCONV void Perl_warn_sv(pTHX_ SV *baseex)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_WARN_SV \
+ assert(baseex)
+
+PERL_CALLCONV void Perl_warner(pTHX_ U32 err, const char* pat, ...)
+ __attribute__format__(__printf__,pTHX_2,pTHX_3)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_VWARNER \
+#define PERL_ARGS_ASSERT_WARNER \
assert(pat)
PERL_CALLCONV void Perl_watch(pTHX_ char** addr)
@@ -3871,490 +4500,706 @@ PERL_CALLCONV void Perl_write_to_stderr(pTHX_ SV* msv)
#define PERL_ARGS_ASSERT_WRITE_TO_STDERR \
assert(msv)
+PERL_CALLCONV void Perl_xs_apiversion_bootcheck(pTHX_ SV *module, const char *api_p, STRLEN api_len)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_XS_APIVERSION_BOOTCHECK \
+ assert(module); assert(api_p)
+
+PERL_CALLCONV void Perl_xs_version_bootcheck(pTHX_ U32 items, U32 ax, const char *xs_p, STRLEN xs_len)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_XS_VERSION_BOOTCHECK \
+ assert(xs_p)
+
PERL_CALLCONV int Perl_yyerror(pTHX_ const char *const s)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_YYERROR \
assert(s)
PERL_CALLCONV int Perl_yylex(pTHX);
-PERL_CALLCONV int Perl_yyparse(pTHX);
-PERL_CALLCONV void Perl_parser_free(pTHX_ const yy_parser *parser)
+PERL_CALLCONV int Perl_yyparse(pTHX_ int gramtype);
+PERL_CALLCONV void Perl_yyunlex(pTHX);
+#if !(defined(DEBUGGING))
+# if !defined(NV_PRESERVES_UV)
+# if defined(PERL_IN_SV_C)
+STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *const sv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PARSER_FREE \
- assert(parser)
+#define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
+ assert(sv)
-#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-STATIC int S_yywarn(pTHX_ const char *const s)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_YYWARN \
+# endif
+# endif
+#endif
+#if !(defined(EBCDIC))
+/* PERL_CALLCONV UV Perl_utf8n_to_uvchr(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR \
assert(s)
+/* PERL_CALLCONV U8* Perl_uvchr_to_utf8(pTHX_ U8 *d, UV uv)
+ __attribute__nonnull__(pTHX_1); */
+#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8 \
+ assert(d)
+
#endif
-#if defined(MYMALLOC)
-PERL_CALLCONV void Perl_dump_mstats(pTHX_ const char* s)
+#if !(defined(HAS_SIGACTION) && defined(SA_SIGINFO))
+PERL_CALLCONV Signal_t Perl_csighandler(int sig);
+PERL_CALLCONV Signal_t Perl_sighandler(int sig);
+#endif
+#if !(defined(NO_MATHOMS))
+PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv);
+#endif
+#if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
+PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DUMP_MSTATS \
- assert(s)
+#define PERL_ARGS_ASSERT_DO_EXEC \
+ assert(cmd)
-PERL_CALLCONV int Perl_get_mstats(pTHX_ perl_mstats_t *buf, int buflen, int level)
+#endif
+#if !(defined(PERL_GLOBAL_STRUCT_PRIVATE))
+# if defined(PERL_IMPLICIT_CONTEXT)
+PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ int *index, size_t size)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_MSTATS \
- assert(buf)
+#define PERL_ARGS_ASSERT_MY_CXT_INIT \
+ assert(index)
+# endif
#endif
-PERL_CALLCONV Malloc_t Perl_safesysmalloc(MEM_SIZE nbytes)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+#if !(defined(PERL_MAD))
+PERL_CALLCONV void Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
+PERL_CALLCONV void Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
+ __attribute__noreturn__;
-PERL_CALLCONV Malloc_t Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+PERL_CALLCONV void Perl_package(pTHX_ OP* o)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PACKAGE \
+ assert(o)
-PERL_CALLCONV Malloc_t Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+PERL_CALLCONV void Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_UTILIZE \
+ assert(idop)
-PERL_CALLCONV Free_t Perl_safesysfree(Malloc_t where);
-#if defined(PERL_GLOBAL_STRUCT)
-PERL_CALLCONV struct perl_vars * Perl_GetVars(pTHX);
-PERL_CALLCONV struct perl_vars* Perl_init_global_struct(pTHX);
-PERL_CALLCONV void Perl_free_global_struct(pTHX_ struct perl_vars *plvarsp)
+#endif
+#if !(defined(USE_ITHREADS))
+# if defined(PERL_IN_OP_C)
+STATIC void S_forget_pmop(pTHX_ PMOP *const o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FREE_GLOBAL_STRUCT \
- assert(plvarsp)
+#define PERL_ARGS_ASSERT_FORGET_PMOP \
+ assert(o)
+# endif
#endif
-PERL_CALLCONV int Perl_runops_standard(pTHX);
-PERL_CALLCONV int Perl_runops_debug(pTHX);
-PERL_CALLCONV void Perl_sv_catpvf_mg(pTHX_ SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATPVF_MG \
- assert(sv); assert(pat)
+#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
+PERL_CALLCONV char* Perl_my_bzero(char* loc, I32 len)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_MY_BZERO \
+ assert(loc)
-PERL_CALLCONV void Perl_sv_vcatpvf_mg(pTHX_ SV *const sv, const char *const pat, va_list *const args)
+#endif
+#if !defined(HAS_GETENV_LEN)
+PERL_CALLCONV char* Perl_getenv_len(pTHX_ const char *env_elem, unsigned long *len)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_VCATPVF_MG \
- assert(sv); assert(pat)
-
-PERL_CALLCONV void Perl_sv_catpv_mg(pTHX_ SV *const sv, const char *const ptr)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_CATPV_MG \
- assert(sv)
+#define PERL_ARGS_ASSERT_GETENV_LEN \
+ assert(env_elem); assert(len)
-/* PERL_CALLCONV void Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2); */
-#define PERL_ARGS_ASSERT_SV_CATPVN_MG \
- assert(sv); assert(ptr)
+#endif
+#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
+PERL_CALLCONV I32 Perl_my_memcmp(const char* s1, const char* s2, I32 len)
+ __attribute__pure__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_MY_MEMCMP \
+ assert(s1); assert(s2)
-/* PERL_CALLCONV void Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *ssv)
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_CATSV_MG \
- assert(dsv)
+#endif
+#if !defined(HAS_MEMSET)
+PERL_CALLCONV void* Perl_my_memset(char* loc, I32 ch, I32 len)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_MY_MEMSET \
+ assert(loc)
-PERL_CALLCONV void Perl_sv_setpvf_mg(pTHX_ SV *const sv, const char *const pat, ...)
- __attribute__format__(__printf__,pTHX_2,pTHX_3)
+#endif
+#if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
+# if defined(PERL_IN_PP_SYS_C)
+STATIC int S_dooneliner(pTHX_ const char *cmd, const char *filename)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_SETPVF_MG \
- assert(sv); assert(pat)
+#define PERL_ARGS_ASSERT_DOONELINER \
+ assert(cmd); assert(filename)
-PERL_CALLCONV void Perl_sv_vsetpvf_mg(pTHX_ SV *const sv, const char *const pat, va_list *const args)
+# endif
+#endif
+#if !defined(HAS_RENAME)
+PERL_CALLCONV I32 Perl_same_dirent(pTHX_ const char* a, const char* b)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_VSETPVF_MG \
- assert(sv); assert(pat)
+#define PERL_ARGS_ASSERT_SAME_DIRENT \
+ assert(a); assert(b)
-PERL_CALLCONV void Perl_sv_setiv_mg(pTHX_ SV *const sv, const IV i)
+#endif
+#if !defined(HAS_SIGNBIT)
+PERL_CALLCONV int Perl_signbit(NV f)
+ __attribute__pure__;
+
+#endif
+#if !defined(HAS_STRLCAT)
+PERL_CALLCONV Size_t Perl_my_strlcat(char *dst, const char *src, Size_t size);
+#endif
+#if !defined(HAS_STRLCPY)
+PERL_CALLCONV Size_t Perl_my_strlcpy(char *dst, const char *src, Size_t size);
+#endif
+#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
+PERL_CALLCONV I32 Perl_my_chsize(pTHX_ int fd, Off_t length)
+ __attribute__warn_unused_result__;
+
+#endif
+#if !defined(NV_PRESERVES_UV)
+# if defined(DEBUGGING)
+# if defined(PERL_IN_SV_C)
+STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *const sv, I32 numtype)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETIV_MG \
+#define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
assert(sv)
-PERL_CALLCONV void Perl_sv_setpviv_mg(pTHX_ SV *const sv, const IV iv)
+# endif
+# endif
+#endif
+#if !defined(PERL_DISABLE_PMC)
+# if defined(PERL_IN_PP_CTL_C)
+STATIC PerlIO * S_doopen_pm(pTHX_ SV *name)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETPVIV_MG \
- assert(sv)
+#define PERL_ARGS_ASSERT_DOOPEN_PM \
+ assert(name)
-PERL_CALLCONV void Perl_sv_setuv_mg(pTHX_ SV *const sv, const UV u)
+# endif
+#endif
+#if !defined(PERL_IS_MINIPERL)
+# if defined(PERL_IN_PERL_C)
+STATIC SV * S_incpush_if_exists(pTHX_ AV *const av, SV *dir, SV *const stem)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS \
+ assert(av); assert(dir); assert(stem)
+
+# endif
+#endif
+#if !defined(PERL_NO_UTF16_FILTER)
+# if defined(PERL_IN_TOKE_C)
+STATIC U8* S_add_utf16_textfilter(pTHX_ U8 *const s, bool reversed)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETUV_MG \
+#define PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER \
+ assert(s)
+
+STATIC I32 S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_UTF16_TEXTFILTER \
assert(sv)
-PERL_CALLCONV void Perl_sv_setnv_mg(pTHX_ SV *const sv, const NV num)
+# endif
+#endif
+#if !defined(SETUID_SCRIPTS_ARE_SECURE_NOW)
+# if defined(PERL_IN_PERL_C)
+STATIC void S_validate_suid(pTHX_ PerlIO *rsfp)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETNV_MG \
- assert(sv)
+#define PERL_ARGS_ASSERT_VALIDATE_SUID \
+ assert(rsfp)
-PERL_CALLCONV void Perl_sv_setpv_mg(pTHX_ SV *const sv, const char *const ptr)
+# endif
+#endif
+#if !defined(SPRINTF_RETURNS_STRLEN)
+PERL_CALLCONV int Perl_my_sprintf(char *buffer, const char *pat, ...)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_MY_SPRINTF \
+ assert(buffer); assert(pat)
+
+#endif
+#if !defined(WIN32)
+PERL_CALLCONV bool Perl_do_exec3(pTHX_ const char *incmd, int fd, int do_report)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETPV_MG \
- assert(sv)
+#define PERL_ARGS_ASSERT_DO_EXEC3 \
+ assert(incmd)
-PERL_CALLCONV void Perl_sv_setpvn_mg(pTHX_ SV *const sv, const char *const ptr, const STRLEN len)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_SETPVN_MG \
- assert(sv); assert(ptr)
+#endif
+#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
+PERL_CALLCONV char* Perl_my_bcopy(const char* from, char* to, I32 len)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_MY_BCOPY \
+ assert(from); assert(to)
-PERL_CALLCONV void Perl_sv_setsv_mg(pTHX_ SV *const dstr, SV *const sstr)
+#endif
+#if defined(DEBUGGING)
+PERL_CALLCONV int Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETSV_MG \
- assert(dstr)
+#define PERL_ARGS_ASSERT_GET_DEBUG_OPTS \
+ assert(s)
-/* PERL_CALLCONV void Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len)
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_USEPVN_MG \
- assert(sv)
+PERL_CALLCONV void Perl_hv_assert(pTHX_ HV *hv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_ASSERT \
+ assert(hv)
-PERL_CALLCONV MGVTBL* Perl_get_vtbl(pTHX_ int vtbl_id)
- __attribute__warn_unused_result__;
+PERL_CALLCONV void Perl_pad_setsv(pTHX_ PADOFFSET po, SV* sv)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PAD_SETSV \
+ assert(sv)
-PERL_CALLCONV char* Perl_pv_display(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)
+PERL_CALLCONV SV* Perl_pad_sv(pTHX_ PADOFFSET po);
+# if defined(PERL_IN_PAD_C)
+STATIC void S_cv_dump(pTHX_ const CV *cv, const char *title)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PV_DISPLAY \
- assert(dsv); assert(pv)
+#define PERL_ARGS_ASSERT_CV_DUMP \
+ assert(cv); assert(title)
-PERL_CALLCONV char* Perl_pv_escape(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags)
+# endif
+# if defined(PERL_IN_REGCOMP_C)
+STATIC void S_dump_trie(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 depth)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PV_ESCAPE \
- assert(dsv); assert(str)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_DUMP_TRIE \
+ assert(trie); assert(revcharmap)
-PERL_CALLCONV char* Perl_pv_pretty(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags)
+STATIC void S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 next_alloc, U32 depth)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PV_PRETTY \
- assert(dsv); assert(str)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST \
+ assert(trie); assert(revcharmap)
-PERL_CALLCONV void Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_3,pTHX_4)
- __attribute__nonnull__(pTHX_2)
+STATIC void S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 next_alloc, U32 depth)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DUMP_INDENT \
- assert(file); assert(pat)
+#define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE \
+ assert(trie); assert(revcharmap)
-PERL_CALLCONV void Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args)
+STATIC const regnode* S_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, const regnode *plast, SV* sv, I32 indent, U32 depth)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DUMP_VINDENT \
- assert(file); assert(pat)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_6);
+#define PERL_ARGS_ASSERT_DUMPUNTIL \
+ assert(r); assert(start); assert(node); assert(sv)
-PERL_CALLCONV void Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv)
+STATIC void S_put_byte(pTHX_ SV* sv, int c)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_PUT_BYTE \
+ assert(sv)
+
+STATIC void S_regdump_extflags(pTHX_ const char *lead, const U32 flags);
+STATIC U8 S_regtail_study(pTHX_ struct RExC_state_t *pRExC_state, regnode *p, const regnode *val, U32 depth)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DO_GV_DUMP \
- assert(file); assert(name)
+#define PERL_ARGS_ASSERT_REGTAIL_STUDY \
+ assert(pRExC_state); assert(p); assert(val)
-PERL_CALLCONV void Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, const char *name, GV *sv)
+# endif
+# if defined(PERL_IN_REGEXEC_C)
+STATIC void S_debug_start_match(pTHX_ const REGEXP *prog, const bool do_utf8, const char *start, const char *end, const char *blurb)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4)
+ __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_DEBUG_START_MATCH \
+ assert(prog); assert(start); assert(end); assert(blurb)
+
+STATIC void S_dump_exec_pos(pTHX_ const char *locinput, const regnode *scan, const char *loc_regeol, const char *loc_bostr, const char *loc_reg_starttry, const bool do_utf8)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DO_GVGV_DUMP \
- assert(file); assert(name)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4)
+ __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_DUMP_EXEC_POS \
+ assert(locinput); assert(scan); assert(loc_regeol); assert(loc_bostr); assert(loc_reg_starttry)
-PERL_CALLCONV void Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, const char *name, HV *sv)
+# endif
+# if defined(PERL_IN_SV_C)
+STATIC void S_del_sv(pTHX_ SV *p)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DEL_SV \
+ assert(p)
+
+# endif
+# if defined(PERL_IN_TOKE_C)
+STATIC void S_printbuf(pTHX_ const char *const fmt, const char *const s)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PRINTBUF \
+ assert(fmt); assert(s)
+
+STATIC int S_tokereport(pTHX_ I32 rv, const YYSTYPE* lvalp)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_TOKEREPORT \
+ assert(lvalp)
+
+# endif
+#endif
+#if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
+PERL_CALLCONV void Perl_dump_sv_child(pTHX_ SV *sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DUMP_SV_CHILD \
+ assert(sv)
+
+#endif
+#if defined(DUMP_FDS)
+PERL_CALLCONV void Perl_dump_fds(pTHX_ char* s)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DUMP_FDS \
+ assert(s)
+
+#endif
+#if defined(EBCDIC)
+PERL_CALLCONV UV Perl_utf8n_to_uvchr(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR \
+ assert(s)
+
+PERL_CALLCONV U8* Perl_uvchr_to_utf8(pTHX_ U8 *d, UV uv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_UVCHR_TO_UTF8 \
+ assert(d)
+
+#endif
+#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
+PERL_CALLCONV I32 Perl_do_ipcctl(pTHX_ I32 optype, SV** mark, SV** sp)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DO_HV_DUMP \
- assert(file); assert(name)
+#define PERL_ARGS_ASSERT_DO_IPCCTL \
+ assert(mark); assert(sp)
-PERL_CALLCONV void Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, const MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
+PERL_CALLCONV I32 Perl_do_ipcget(pTHX_ I32 optype, SV** mark, SV** sp)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DO_MAGIC_DUMP \
- assert(file); assert(mg)
+#define PERL_ARGS_ASSERT_DO_IPCGET \
+ assert(mark); assert(sp)
-PERL_CALLCONV void Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o)
+PERL_CALLCONV I32 Perl_do_msgrcv(pTHX_ SV** mark, SV** sp)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_OP_DUMP \
- assert(file)
+#define PERL_ARGS_ASSERT_DO_MSGRCV \
+ assert(mark); assert(sp)
-PERL_CALLCONV void Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, const PMOP *pm)
+PERL_CALLCONV I32 Perl_do_msgsnd(pTHX_ SV** mark, SV** sp)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_PMOP_DUMP \
- assert(file)
+#define PERL_ARGS_ASSERT_DO_MSGSND \
+ assert(mark); assert(sp)
-PERL_CALLCONV void Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
+PERL_CALLCONV I32 Perl_do_semop(pTHX_ SV** mark, SV** sp)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_SV_DUMP \
- assert(file)
+#define PERL_ARGS_ASSERT_DO_SEMOP \
+ assert(mark); assert(sp)
-PERL_CALLCONV void Perl_magic_dump(pTHX_ const MAGIC *mg);
-PERL_CALLCONV void Perl_reginitcolors(pTHX);
-/* PERL_CALLCONV char* Perl_sv_2pv_nolen(pTHX_ SV* sv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_2PV_NOLEN \
- assert(sv)
+PERL_CALLCONV I32 Perl_do_shmio(pTHX_ I32 optype, SV** mark, SV** sp)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_DO_SHMIO \
+ assert(mark); assert(sp)
-/* PERL_CALLCONV char* Perl_sv_2pvutf8_nolen(pTHX_ SV* sv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN \
- assert(sv)
+#endif
+#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+PERL_CALLCONV Signal_t Perl_csighandler(int sig, siginfo_t *info, void *uap);
+PERL_CALLCONV Signal_t Perl_sighandler(int sig, siginfo_t *info, void *uap);
+#endif
+#if defined(HAVE_INTERP_INTERN)
+PERL_CALLCONV void Perl_sys_intern_clear(pTHX);
+PERL_CALLCONV void Perl_sys_intern_init(pTHX);
+# if defined(USE_ITHREADS)
+PERL_CALLCONV void Perl_sys_intern_dup(pTHX_ struct interp_intern* src, struct interp_intern* dst)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SYS_INTERN_DUP \
+ assert(src); assert(dst)
-/* PERL_CALLCONV char* Perl_sv_2pvbyte_nolen(pTHX_ SV* sv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN \
- assert(sv)
+# endif
+#endif
+#if defined(MYMALLOC)
+PERL_CALLCONV void Perl_dump_mstats(pTHX_ const char* s)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DUMP_MSTATS \
+ assert(s)
-/* PERL_CALLCONV char* Perl_sv_pv(pTHX_ SV *sv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_PV \
- assert(sv)
+PERL_CALLCONV int Perl_get_mstats(pTHX_ perl_mstats_t *buf, int buflen, int level)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GET_MSTATS \
+ assert(buf)
-/* PERL_CALLCONV char* Perl_sv_pvutf8(pTHX_ SV *sv)
+PERL_CALLCONV MEM_SIZE Perl_malloc_good_size(size_t nbytes)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV MEM_SIZE Perl_malloced_size(void *p)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_PVUTF8 \
- assert(sv)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_MALLOCED_SIZE \
+ assert(p)
-/* PERL_CALLCONV char* Perl_sv_pvbyte(pTHX_ SV *sv)
+#endif
+#if defined(MYSWAP)
+PERL_CALLCONV long Perl_my_htonl(pTHX_ long l)
+ __attribute__malloc__
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_PVBYTE \
- assert(sv)
+ __attribute__pure__;
-/* PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade(pTHX_ SV *sv)
- __attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE \
- assert(sv)
+PERL_CALLCONV long Perl_my_ntohl(pTHX_ long l)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__pure__;
-/* PERL_CALLCONV STRLEN sv_utf8_upgrade_nomg(pTHX_ SV *sv)
- __attribute__nonnull__(pTHX_1); */
+PERL_CALLCONV short Perl_my_swap(pTHX_ short s)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__pure__;
-PERL_CALLCONV bool Perl_sv_utf8_downgrade(pTHX_ SV *const sv, const bool fail_ok)
+#endif
+#if defined(NO_MATHOMS)
+/* PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv); */
+#endif
+#if defined(PERL_CR_FILTER)
+# if defined(PERL_IN_TOKE_C)
+STATIC I32 S_cr_textfilter(pTHX_ int idx, SV *sv, int maxlen);
+STATIC void S_strip_return(pTHX_ SV *sv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_UTF8_DOWNGRADE \
+#define PERL_ARGS_ASSERT_STRIP_RETURN \
assert(sv)
-PERL_CALLCONV void Perl_sv_utf8_encode(pTHX_ SV *const sv)
+# endif
+#endif
+#if defined(PERL_DEBUG_READONLY_OPS)
+# if defined(PERL_IN_OP_C)
+# if defined(PL_OP_SLAB_ALLOC)
+STATIC void S_Slab_to_rw(pTHX_ void *op)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_UTF8_ENCODE \
- assert(sv)
+#define PERL_ARGS_ASSERT_SLAB_TO_RW \
+ assert(op)
-PERL_CALLCONV bool Perl_sv_utf8_decode(pTHX_ SV *const sv)
+# endif
+# endif
+# if defined(PL_OP_SLAB_ALLOC)
+PERL_CALLCONV PADOFFSET Perl_op_refcnt_dec(pTHX_ OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_UTF8_DECODE \
- assert(sv)
+#define PERL_ARGS_ASSERT_OP_REFCNT_DEC \
+ assert(o)
-/* PERL_CALLCONV void Perl_sv_force_normal(pTHX_ SV *sv)
+PERL_CALLCONV OP * Perl_op_refcnt_inc(pTHX_ OP *o);
+PERL_CALLCONV void Perl_pending_Slabs_to_ro(pTHX);
+# endif
+#endif
+#if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
+/* PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd)
__attribute__nonnull__(pTHX_1); */
-#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL \
- assert(sv)
+#define PERL_ARGS_ASSERT_DO_EXEC \
+ assert(cmd)
-PERL_CALLCONV void Perl_sv_force_normal_flags(pTHX_ SV *const sv, const U32 flags)
+#endif
+#if defined(PERL_DONT_CREATE_GVSV)
+/* PERL_CALLCONV GV* Perl_gv_SVadd(pTHX_ GV *gv); */
+#endif
+#if defined(PERL_GLOBAL_STRUCT)
+PERL_CALLCONV struct perl_vars * Perl_GetVars(pTHX);
+PERL_CALLCONV void Perl_free_global_struct(pTHX_ struct perl_vars *plvarsp)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS \
- assert(sv)
+#define PERL_ARGS_ASSERT_FREE_GLOBAL_STRUCT \
+ assert(plvarsp)
-PERL_CALLCONV void Perl_tmps_grow(pTHX_ I32 n);
-PERL_CALLCONV SV* Perl_sv_rvweaken(pTHX_ SV *const sv)
+PERL_CALLCONV struct perl_vars* Perl_init_global_struct(pTHX);
+#endif
+#if defined(PERL_GLOBAL_STRUCT_PRIVATE)
+# if defined(PERL_IMPLICIT_CONTEXT)
+PERL_CALLCONV int Perl_my_cxt_index(pTHX_ const char *my_cxt_key)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_RVWEAKEN \
- assert(sv)
+#define PERL_ARGS_ASSERT_MY_CXT_INDEX \
+ assert(my_cxt_key)
-PERL_CALLCONV int Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_KILLBACKREFS \
- assert(sv); assert(mg)
+PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ const char *my_cxt_key, size_t size)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MY_CXT_INIT \
+ assert(my_cxt_key)
-PERL_CALLCONV OP* Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block);
-PERL_CALLCONV CV* Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block);
-#ifdef PERL_MAD
-PERL_CALLCONV OP * Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
- __attribute__noreturn__;
+# endif
+#endif
+#if defined(PERL_IMPLICIT_CONTEXT)
+PERL_CALLCONV void Perl_croak_nocontext(const char* pat, ...)
+ __attribute__noreturn__
+ __attribute__format__null_ok__(__printf__,1,2);
-#else
-PERL_CALLCONV void Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
- __attribute__noreturn__;
+PERL_CALLCONV void Perl_deb_nocontext(const char* pat, ...)
+ __attribute__format__(__printf__,1,2)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_DEB_NOCONTEXT \
+ assert(pat)
-#endif
-PERL_CALLCONV OP * Perl_my_attrs(pTHX_ OP *o, OP *attrs)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MY_ATTRS \
- assert(o)
+PERL_CALLCONV OP* Perl_die_nocontext(const char* pat, ...)
+ __attribute__format__null_ok__(__printf__,1,2);
-#if defined(USE_ITHREADS)
-PERL_CALLCONV PERL_CONTEXT* Perl_cx_dup(pTHX_ PERL_CONTEXT* cx, I32 ix, I32 max, CLONE_PARAMS* param)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_CX_DUP \
- assert(param)
+PERL_CALLCONV char* Perl_form_nocontext(const char* pat, ...)
+ __attribute__format__(__printf__,1,2)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_FORM_NOCONTEXT \
+ assert(pat)
-PERL_CALLCONV PERL_SI* Perl_si_dup(pTHX_ PERL_SI* si, CLONE_PARAMS* param)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SI_DUP \
- assert(param)
+PERL_CALLCONV int Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...)
+ __attribute__format__(__printf__,2,3)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_FPRINTF_NOCONTEXT \
+ assert(stream); assert(format)
-PERL_CALLCONV ANY* Perl_ss_dup(pTHX_ PerlInterpreter* proto_perl, CLONE_PARAMS* param)
- __attribute__malloc__
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SS_DUP \
- assert(proto_perl); assert(param)
+PERL_CALLCONV void Perl_load_module_nocontext(U32 flags, SV* name, SV* ver, ...)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_LOAD_MODULE_NOCONTEXT \
+ assert(name)
-PERL_CALLCONV void* Perl_any_dup(pTHX_ void* v, const PerlInterpreter* proto_perl)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_ANY_DUP \
- assert(proto_perl)
+PERL_CALLCONV SV* Perl_mess_nocontext(const char* pat, ...)
+ __attribute__format__(__printf__,1,2)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_MESS_NOCONTEXT \
+ assert(pat)
-PERL_CALLCONV HE* Perl_he_dup(pTHX_ const HE* e, bool shared, CLONE_PARAMS* param)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_HE_DUP \
- assert(param)
+PERL_CALLCONV SV* Perl_newSVpvf_nocontext(const char *const pat, ...)
+ __attribute__format__(__printf__,1,2)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT \
+ assert(pat)
-PERL_CALLCONV HEK* Perl_hek_dup(pTHX_ HEK* e, CLONE_PARAMS* param)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_HEK_DUP \
- assert(param)
+PERL_CALLCONV int Perl_printf_nocontext(const char *format, ...)
+ __attribute__format__(__printf__,1,2)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_PRINTF_NOCONTEXT \
+ assert(format)
-PERL_CALLCONV void Perl_re_dup_guts(pTHX_ const REGEXP *sstr, REGEXP *dstr, CLONE_PARAMS* param)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_RE_DUP_GUTS \
- assert(sstr); assert(dstr); assert(param)
+PERL_CALLCONV void Perl_sv_catpvf_mg_nocontext(SV *const sv, const char *const pat, ...)
+ __attribute__format__(__printf__,2,3)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_SV_CATPVF_MG_NOCONTEXT \
+ assert(sv); assert(pat)
-PERL_CALLCONV PerlIO* Perl_fp_dup(pTHX_ PerlIO *const fp, const char type, CLONE_PARAMS *const param)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_FP_DUP \
- assert(param)
+PERL_CALLCONV void Perl_sv_catpvf_nocontext(SV *const sv, const char *const pat, ...)
+ __attribute__format__(__printf__,2,3)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_SV_CATPVF_NOCONTEXT \
+ assert(sv); assert(pat)
-PERL_CALLCONV DIR* Perl_dirp_dup(pTHX_ DIR *const dp)
- __attribute__warn_unused_result__;
+PERL_CALLCONV void Perl_sv_setpvf_mg_nocontext(SV *const sv, const char *const pat, ...)
+ __attribute__format__(__printf__,2,3)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_SV_SETPVF_MG_NOCONTEXT \
+ assert(sv); assert(pat)
-PERL_CALLCONV GP* Perl_gp_dup(pTHX_ GP *const gp, CLONE_PARAMS *const param)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GP_DUP \
- assert(param)
+PERL_CALLCONV void Perl_sv_setpvf_nocontext(SV *const sv, const char *const pat, ...)
+ __attribute__format__(__printf__,2,3)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_SV_SETPVF_NOCONTEXT \
+ assert(sv); assert(pat)
-PERL_CALLCONV MAGIC* Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *const param)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MG_DUP \
- assert(param)
+PERL_CALLCONV void Perl_warn_nocontext(const char* pat, ...)
+ __attribute__format__(__printf__,1,2)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_WARN_NOCONTEXT \
+ assert(pat)
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-STATIC SV ** S_sv_dup_inc_multiple(pTHX_ SV *const *source, SV **dest, SSize_t items, CLONE_PARAMS *const param)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE \
- assert(source); assert(dest); assert(param)
+PERL_CALLCONV void Perl_warner_nocontext(U32 err, const char* pat, ...)
+ __attribute__format__(__printf__,2,3)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_WARNER_NOCONTEXT \
+ assert(pat)
#endif
-PERL_CALLCONV SV* Perl_sv_dup(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_DUP \
- assert(param)
-
-PERL_CALLCONV void Perl_rvpv_dup(pTHX_ SV *const dstr, const SV *const sstr, CLONE_PARAMS *const param)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_RVPV_DUP \
- assert(dstr); assert(sstr); assert(param)
+#if defined(PERL_IMPLICIT_SYS)
+PERL_CALLCONV PerlInterpreter* perl_alloc_using(struct IPerlMem *ipM, struct IPerlMem *ipMS, struct IPerlMem *ipMP, struct IPerlEnv *ipE, struct IPerlStdIO *ipStd, struct IPerlLIO *ipLIO, struct IPerlDir *ipD, struct IPerlSock *ipS, struct IPerlProc *ipP)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5)
+ __attribute__nonnull__(6)
+ __attribute__nonnull__(7)
+ __attribute__nonnull__(8)
+ __attribute__nonnull__(9);
+#define PERL_ARGS_ASSERT_PERL_ALLOC_USING \
+ assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
-PERL_CALLCONV yy_parser* Perl_parser_dup(pTHX_ const yy_parser *const proto, CLONE_PARAMS *const param)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PARSER_DUP \
- assert(param)
+# if defined(USE_ITHREADS)
+PERL_CALLCONV PerlInterpreter* perl_clone_using(PerlInterpreter *proto_perl, UV flags, struct IPerlMem* ipM, struct IPerlMem* ipMS, struct IPerlMem* ipMP, struct IPerlEnv* ipE, struct IPerlStdIO* ipStd, struct IPerlLIO* ipLIO, struct IPerlDir* ipD, struct IPerlSock* ipS, struct IPerlProc* ipP)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5)
+ __attribute__nonnull__(6)
+ __attribute__nonnull__(7)
+ __attribute__nonnull__(8)
+ __attribute__nonnull__(9)
+ __attribute__nonnull__(10)
+ __attribute__nonnull__(11);
+#define PERL_ARGS_ASSERT_PERL_CLONE_USING \
+ assert(proto_perl); assert(ipM); assert(ipMS); assert(ipMP); assert(ipE); assert(ipStd); assert(ipLIO); assert(ipD); assert(ipS); assert(ipP)
+# endif
#endif
-PERL_CALLCONV PTR_TBL_t* Perl_ptr_table_new(pTHX)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV void* Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *const tbl, const void *const sv)
- __attribute__warn_unused_result__
+#if defined(PERL_IN_AV_C)
+STATIC MAGIC* S_get_aux_mg(pTHX_ AV *av)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PTR_TABLE_FETCH \
- assert(tbl)
+#define PERL_ARGS_ASSERT_GET_AUX_MG \
+ assert(av)
-PERL_CALLCONV void Perl_ptr_table_store(pTHX_ PTR_TBL_t *const tbl, const void *const oldsv, void *const newsv)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_PTR_TABLE_STORE \
- assert(tbl); assert(newsv)
+#endif
+#if defined(PERL_IN_DEB_C)
+STATIC void S_deb_stack_n(pTHX_ SV** stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DEB_STACK_N \
+ assert(stack_base)
-PERL_CALLCONV void Perl_ptr_table_split(pTHX_ PTR_TBL_t *const tbl)
+#endif
+#if defined(PERL_IN_DOIO_C)
+STATIC void S_exec_failed(pTHX_ const char *cmd, int fd, int do_report)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PTR_TABLE_SPLIT \
- assert(tbl)
+#define PERL_ARGS_ASSERT_EXEC_FAILED \
+ assert(cmd)
-PERL_CALLCONV void Perl_ptr_table_clear(pTHX_ PTR_TBL_t *const tbl);
-PERL_CALLCONV void Perl_ptr_table_free(pTHX_ PTR_TBL_t *const tbl);
-#if defined(USE_ITHREADS)
-# if defined(HAVE_INTERP_INTERN)
-PERL_CALLCONV void Perl_sys_intern_dup(pTHX_ struct interp_intern* src, struct interp_intern* dst)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SYS_INTERN_DUP \
- assert(src); assert(dst)
+STATIC bool S_ingroup(pTHX_ Gid_t testgid, bool effective)
+ __attribute__warn_unused_result__;
-# endif
-#endif
-#if defined(HAVE_INTERP_INTERN)
-PERL_CALLCONV void Perl_sys_intern_clear(pTHX);
-PERL_CALLCONV void Perl_sys_intern_init(pTHX);
#endif
-
-PERL_CALLCONV const char * Perl_custom_op_name(pTHX_ const OP *o)
+#if defined(PERL_IN_DOOP_C)
+STATIC I32 S_do_trans_complex(pTHX_ SV * const sv)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CUSTOM_OP_NAME \
- assert(o)
+#define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX \
+ assert(sv)
-PERL_CALLCONV const char * Perl_custom_op_desc(pTHX_ const OP *o)
+STATIC I32 S_do_trans_complex_utf8(pTHX_ SV * const sv)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CUSTOM_OP_DESC \
- assert(o)
-
-
-PERL_CALLCONV void Perl_sv_nosharing(pTHX_ SV *sv);
-/* PERL_CALLCONV void Perl_sv_nolocking(pTHX_ SV *sv); */
-PERL_CALLCONV bool Perl_sv_destroyable(pTHX_ SV *sv);
-#ifdef NO_MATHOMS
-/* PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv); */
-#else
-PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv);
-#endif
-PERL_CALLCONV int Perl_nothreadhook(pTHX);
-
-END_EXTERN_C
+#define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX_UTF8 \
+ assert(sv)
-#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
-STATIC I32 S_do_trans_simple(pTHX_ SV * const sv)
+STATIC I32 S_do_trans_count(pTHX_ SV * const sv)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE \
+#define PERL_ARGS_ASSERT_DO_TRANS_COUNT \
assert(sv)
-STATIC I32 S_do_trans_count(pTHX_ SV * const sv)
+STATIC I32 S_do_trans_count_utf8(pTHX_ SV * const sv)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_TRANS_COUNT \
+#define PERL_ARGS_ASSERT_DO_TRANS_COUNT_UTF8 \
assert(sv)
-STATIC I32 S_do_trans_complex(pTHX_ SV * const sv)
+STATIC I32 S_do_trans_simple(pTHX_ SV * const sv)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX \
+#define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE \
assert(sv)
STATIC I32 S_do_trans_simple_utf8(pTHX_ SV * const sv)
@@ -4363,31 +5208,81 @@ STATIC I32 S_do_trans_simple_utf8(pTHX_ SV * const sv)
#define PERL_ARGS_ASSERT_DO_TRANS_SIMPLE_UTF8 \
assert(sv)
-STATIC I32 S_do_trans_count_utf8(pTHX_ SV * const sv)
+#endif
+#if defined(PERL_IN_DQUOTE_STATIC_C)
+STATIC char S_grok_bslash_c(pTHX_ const char source, const bool utf8, const bool output_warning)
+ __attribute__warn_unused_result__;
+
+STATIC bool S_grok_bslash_o(pTHX_ const char* s, UV* uv, STRLEN* len, const char** error_msg, const bool output_warning)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_TRANS_COUNT_UTF8 \
- assert(sv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_GROK_BSLASH_O \
+ assert(s); assert(uv); assert(len); assert(error_msg)
-STATIC I32 S_do_trans_complex_utf8(pTHX_ SV * const sv)
+PERL_STATIC_INLINE I32 S_regcurly(pTHX_ const char *s)
__attribute__warn_unused_result__
+ __attribute__pure__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DO_TRANS_COMPLEX_UTF8 \
- assert(sv)
+#define PERL_ARGS_ASSERT_REGCURLY \
+ assert(s)
#endif
+#if defined(PERL_IN_DUMP_C)
+STATIC CV* S_deb_curcv(pTHX_ const I32 ix);
+STATIC void S_debprof(pTHX_ const OP *o)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DEBPROF \
+ assert(o)
-#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
-STATIC void S_gv_init_sv(pTHX_ GV *gv, const svtype sv_type)
+STATIC SV* S_pm_description(pTHX_ const PMOP *pm)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_INIT_SV \
- assert(gv)
+#define PERL_ARGS_ASSERT_PM_DESCRIPTION \
+ assert(pm)
+
+STATIC void S_sequence(pTHX_ const OP *o);
+STATIC UV S_sequence_num(pTHX_ const OP *o);
+STATIC void S_sequence_tail(pTHX_ const OP *o);
+# if defined(PERL_MAD)
+STATIC void S_xmldump_attr(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
+ __attribute__format__(__printf__,pTHX_3,pTHX_4)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_XMLDUMP_ATTR \
+ assert(file); assert(pat)
+
+# endif
+#endif
+#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
+PERL_CALLCONV void Perl_hv_kill_backrefs(pTHX_ HV *hv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HV_KILL_BACKREFS \
+ assert(hv)
+#endif
+#if defined(PERL_IN_GV_C)
STATIC HV* S_gv_get_super_pkg(pTHX_ const char* name, I32 namelen)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_GV_GET_SUPER_PKG \
assert(name)
+STATIC void S_gv_init_sv(pTHX_ GV *gv, const svtype sv_type)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_INIT_SV \
+ assert(gv)
+
+STATIC void S_gv_magicalize_isa(pTHX_ GV *gv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA \
+ assert(gv)
+
+STATIC void S_gv_magicalize_overload(pTHX_ GV *gv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GV_MAGICALIZE_OVERLOAD \
+ assert(gv)
+
STATIC HV* S_require_tie_mod(pTHX_ GV *gv, const char *varpv, SV* namesv, const char *methpv, const U32 flags)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -4397,16 +5292,18 @@ STATIC HV* S_require_tie_mod(pTHX_ GV *gv, const char *varpv, SV* namesv, const
assert(gv); assert(varpv); assert(namesv); assert(methpv)
#endif
+#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
+PERL_CALLCONV void Perl_sv_add_backref(pTHX_ SV *const tsv, SV *const sv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_ADD_BACKREF \
+ assert(tsv); assert(sv)
-PERL_CALLCONV void* Perl_get_arena(pTHX_ const size_t arenasize, const svtype bodytype)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-
-#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-STATIC void S_hsplit(pTHX_ HV *hv)
+#endif
+#if defined(PERL_IN_HV_C)
+STATIC void S_clear_placeholders(pTHX_ HV *hv, U32 items)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HSPLIT \
+#define PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS \
assert(hv)
STATIC void S_hfreeentries(pTHX_ HV *hv)
@@ -4414,22 +5311,17 @@ STATIC void S_hfreeentries(pTHX_ HV *hv)
#define PERL_ARGS_ASSERT_HFREEENTRIES \
assert(hv)
-STATIC I32 S_anonymise_cv(pTHX_ HEK *stash, SV *val)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_ANONYMISE_CV \
- assert(val)
-
-STATIC HE* S_new_he(pTHX)
- __attribute__malloc__
- __attribute__warn_unused_result__;
+STATIC void S_hsplit(pTHX_ HV *hv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_HSPLIT \
+ assert(hv)
-STATIC HEK* S_save_hek_flags(const char *str, I32 len, U32 hash, int flags)
- __attribute__malloc__
- __attribute__warn_unused_result__
+STATIC struct xpvhv_aux* S_hv_auxinit(HV *hv)
__attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_SAVE_HEK_FLAGS \
- assert(str)
+#define PERL_ARGS_ASSERT_HV_AUXINIT \
+ assert(hv)
+STATIC SV* S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash);
STATIC void S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -4437,13 +5329,6 @@ STATIC void S_hv_magic_check(HV *hv, bool *needs_copy, bool *needs_store)
#define PERL_ARGS_ASSERT_HV_MAGIC_CHECK \
assert(hv); assert(needs_copy); assert(needs_store)
-STATIC void S_unshare_hek_or_pvn(pTHX_ const HEK* hek, const char* str, I32 len, U32 hash);
-STATIC HEK* S_share_hek_flags(pTHX_ const char *str, I32 len, U32 hash, int flags)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SHARE_HEK_FLAGS \
- assert(str)
-
STATIC void S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const char *msg)
__attribute__noreturn__
__attribute__nonnull__(pTHX_2)
@@ -4451,299 +5336,139 @@ STATIC void S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const ch
#define PERL_ARGS_ASSERT_HV_NOTALLOWED \
assert(key); assert(msg)
-STATIC struct xpvhv_aux* S_hv_auxinit(HV *hv)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_HV_AUXINIT \
- assert(hv)
-
-STATIC SV* S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, int k_flags, I32 d_flags, U32 hash);
-STATIC void S_clear_placeholders(pTHX_ HV *hv, U32 items)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CLEAR_PLACEHOLDERS \
- assert(hv)
+STATIC HE* S_new_he(pTHX)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
STATIC SV * S_refcounted_he_value(pTHX_ const struct refcounted_he *he)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE \
assert(he)
-#endif
+STATIC HEK* S_save_hek_flags(const char *str, I32 len, U32 hash, int flags)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_SAVE_HEK_FLAGS \
+ assert(str)
-#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
-STATIC void S_save_magic(pTHX_ I32 mgs_ix, SV *sv)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SAVE_MAGIC \
+STATIC HEK* S_share_hek_flags(pTHX_ const char *str, I32 len, U32 hash, int flags)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SHARE_HEK_FLAGS \
+ assert(str)
+
+STATIC void S_unshare_hek_or_pvn(pTHX_ const HEK* hek, const char* str, I32 len, U32 hash);
+#endif
+#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C)
+PERL_CALLCONV void Perl_sv_kill_backrefs(pTHX_ SV *const sv, AV *const av)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_KILL_BACKREFS \
assert(sv)
-STATIC int S_magic_methpack(pTHX_ SV *sv, const MAGIC *mg, const char *meth)
+#endif
+#if defined(PERL_IN_LOCALE_C)
+# if defined(USE_LOCALE_NUMERIC) || defined(USE_LOCALE_COLLATE)
+STATIC char* S_stdize_locale(pTHX_ char* locs)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_STDIZE_LOCALE \
+ assert(locs)
+
+# endif
+#endif
+#if defined(PERL_IN_MG_C)
+STATIC SV* S_magic_methcall1(pTHX_ SV *sv, const MAGIC *mg, const char *meth, U32 flags, int n, SV *val)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_MAGIC_METHPACK \
+#define PERL_ARGS_ASSERT_MAGIC_METHCALL1 \
assert(sv); assert(mg); assert(meth)
-STATIC int S_magic_methcall(pTHX_ SV *sv, const MAGIC *mg, const char *meth, I32 f, int n, SV *val)
+STATIC int S_magic_methpack(pTHX_ SV *sv, const MAGIC *mg, const char *meth)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_MAGIC_METHCALL \
+#define PERL_ARGS_ASSERT_MAGIC_METHPACK \
assert(sv); assert(mg); assert(meth)
STATIC void S_restore_magic(pTHX_ const void *p);
-STATIC void S_unwind_handler_stack(pTHX_ const void *p)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_UNWIND_HANDLER_STACK \
- assert(p)
-
+STATIC void S_save_magic(pTHX_ I32 mgs_ix, SV *sv)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SAVE_MAGIC \
+ assert(sv)
+STATIC void S_unwind_handler_stack(pTHX_ const void *p);
#endif
+#if defined(PERL_IN_MRO_C)
+STATIC void S_mro_clean_isarev(pTHX_ HV * const isa, const char * const name, const STRLEN len, HV * const exceptions)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MRO_CLEAN_ISAREV \
+ assert(isa); assert(name)
-#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
-PERL_CALLCONV OP* Perl_ck_anoncode(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_ANONCODE \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_bitop(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_BITOP \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_concat(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_CONCAT \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_defined(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_DEFINED \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_delete(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_DELETE \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_die(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_DIE \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_eof(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_EOF \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_eval(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_EVAL \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_exec(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_EXEC \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_exists(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_EXISTS \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_exit(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_EXIT \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_ftst(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_FTST \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_fun(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_FUN \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_glob(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_GLOB \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_grep(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_GREP \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_index(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_INDEX \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_join(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_JOIN \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_lfun(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_LFUN \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_listiob(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_LISTIOB \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_match(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_MATCH \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_method(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_METHOD \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_null(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_NULL \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_open(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_OPEN \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_readline(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_READLINE \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_repeat(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_REPEAT \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_require(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_REQUIRE \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_return(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_RETURN \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_rfun(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_RFUN \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_rvconst(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_RVCONST \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_sassign(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_SASSIGN \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_select(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_SELECT \
- assert(o)
-
-PERL_CALLCONV OP* Perl_ck_shift(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_SHIFT \
- assert(o)
+STATIC void S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes, HV *stash, HV *oldstash, SV *namesv)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_MRO_GATHER_AND_RENAME \
+ assert(stashes); assert(seen_stashes); assert(namesv)
-PERL_CALLCONV OP* Perl_ck_sort(pTHX_ OP *o)
- __attribute__warn_unused_result__
+STATIC AV* S_mro_get_linear_isa_dfs(pTHX_ HV* stash, U32 level)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_SORT \
- assert(o)
+#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_DFS \
+ assert(stash)
-PERL_CALLCONV OP* Perl_ck_spair(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_SPAIR \
- assert(o)
+#endif
+#if defined(PERL_IN_NUMERIC_C)
+STATIC NV S_mulexp10(NV value, I32 exponent);
+#endif
+#if defined(PERL_IN_OP_C)
+STATIC void S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs, bool for_my)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_APPLY_ATTRS \
+ assert(stash); assert(target)
-PERL_CALLCONV OP* Perl_ck_split(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_SPLIT \
- assert(o)
+STATIC void S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_APPLY_ATTRS_MY \
+ assert(stash); assert(target); assert(imopsp)
-PERL_CALLCONV OP* Perl_ck_subr(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_SUBR \
- assert(o)
+STATIC void S_bad_type(pTHX_ I32 n, const char *t, const char *name, const OP *kid)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_BAD_TYPE \
+ assert(t); assert(name); assert(kid)
-PERL_CALLCONV OP* Perl_ck_substr(pTHX_ OP *o)
- __attribute__warn_unused_result__
+STATIC void S_cop_free(pTHX_ COP *cop)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_SUBSTR \
- assert(o)
+#define PERL_ARGS_ASSERT_COP_FREE \
+ assert(cop)
-PERL_CALLCONV OP* Perl_ck_svconst(pTHX_ OP *o)
- __attribute__warn_unused_result__
+STATIC OP * S_dup_attrlist(pTHX_ OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_SVCONST \
+#define PERL_ARGS_ASSERT_DUP_ATTRLIST \
assert(o)
-PERL_CALLCONV OP* Perl_ck_trunc(pTHX_ OP *o)
- __attribute__warn_unused_result__
+STATIC void S_find_and_forget_pmops(pTHX_ OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_TRUNC \
+#define PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS \
assert(o)
-PERL_CALLCONV OP* Perl_ck_unpack(pTHX_ OP *o)
- __attribute__warn_unused_result__
+STATIC OP* S_fold_constants(pTHX_ OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_UNPACK \
+#define PERL_ARGS_ASSERT_FOLD_CONSTANTS \
assert(o)
-PERL_CALLCONV OP* Perl_ck_each(pTHX_ OP *o)
- __attribute__warn_unused_result__
+STATIC OP* S_force_list(pTHX_ OP* arg);
+STATIC OP* S_gen_constant_list(pTHX_ OP* o);
+STATIC const char* S_gv_ename(pTHX_ GV *gv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CK_EACH \
- assert(o)
+#define PERL_ARGS_ASSERT_GV_ENAME \
+ assert(gv)
STATIC bool S_is_handle_constructor(const OP *o, I32 numargs)
__attribute__warn_unused_result__
@@ -4751,46 +5476,33 @@ STATIC bool S_is_handle_constructor(const OP *o, I32 numargs)
#define PERL_ARGS_ASSERT_IS_HANDLE_CONSTRUCTOR \
assert(o)
-STATIC I32 S_is_list_assignment(pTHX_ const OP *o)
- __attribute__warn_unused_result__;
-
-# ifdef USE_ITHREADS
-STATIC void S_forget_pmop(pTHX_ PMOP *const o, U32 flags)
+STATIC OP* S_is_inplace_av(pTHX_ OP* o, OP* oright)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FORGET_PMOP \
+#define PERL_ARGS_ASSERT_IS_INPLACE_AV \
assert(o)
-# else
-STATIC void S_forget_pmop(pTHX_ PMOP *const o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FORGET_PMOP \
- assert(o)
+STATIC I32 S_is_list_assignment(pTHX_ const OP *o)
+ __attribute__warn_unused_result__;
-# endif
-STATIC void S_find_and_forget_pmops(pTHX_ OP *o)
+STATIC OP* S_listkids(pTHX_ OP* o);
+STATIC bool S_looks_like_bool(pTHX_ const OP* o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS \
+#define PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL \
assert(o)
-STATIC void S_cop_free(pTHX_ COP *cop)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_COP_FREE \
- assert(cop)
-
STATIC OP* S_modkids(pTHX_ OP *o, I32 type);
-STATIC OP* S_scalarboolean(pTHX_ OP *o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SCALARBOOLEAN \
- assert(o)
+STATIC OP * S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_MY_KID \
+ assert(imopsp)
STATIC OP* S_newDEFSVOP(pTHX)
__attribute__warn_unused_result__;
-STATIC OP* S_search_const(pTHX_ OP *o)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SEARCH_CONST \
- assert(o)
+STATIC OP* S_newGIVWHENOP(pTHX_ OP* cond, OP *block, I32 enter_opcode, I32 leave_opcode, PADOFFSET entertarg)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_NEWGIVWHENOP \
+ assert(block)
STATIC OP* S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp)
__attribute__warn_unused_result__
@@ -4799,61 +5511,60 @@ STATIC OP* S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp)
#define PERL_ARGS_ASSERT_NEW_LOGOP \
assert(firstp); assert(otherp)
-STATIC void S_simplify_sort(pTHX_ OP *o)
+STATIC void S_no_bareword_allowed(pTHX_ const OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SIMPLIFY_SORT \
+#define PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED \
assert(o)
-STATIC const char* S_gv_ename(pTHX_ GV *gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_ENAME \
- assert(gv)
-
-STATIC bool S_scalar_mod_type(const OP *o, I32 type)
+STATIC OP* S_no_fh_allowed(pTHX_ OP *o)
__attribute__warn_unused_result__
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_SCALAR_MOD_TYPE \
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_NO_FH_ALLOWED \
assert(o)
-STATIC OP * S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_MY_KID \
- assert(imopsp)
-
-STATIC OP * S_dup_attrlist(pTHX_ OP *o)
+STATIC OP* S_opt_scalarhv(pTHX_ OP* rep_op)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DUP_ATTRLIST \
- assert(o)
+#define PERL_ARGS_ASSERT_OPT_SCALARHV \
+ assert(rep_op)
-STATIC void S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs, bool for_my)
+STATIC OP* S_pmtrans(pTHX_ OP* o, OP* expr, OP* repl)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_APPLY_ATTRS \
- assert(stash); assert(target)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_PMTRANS \
+ assert(o); assert(expr); assert(repl)
-STATIC void S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp)
+STATIC void S_process_special_blocks(pTHX_ const char *const fullname, GV *const gv, CV *const cv)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_APPLY_ATTRS_MY \
- assert(stash); assert(target); assert(imopsp)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_PROCESS_SPECIAL_BLOCKS \
+ assert(fullname); assert(gv); assert(cv)
-STATIC void S_bad_type(pTHX_ I32 n, const char *t, const char *name, const OP *kid)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_BAD_TYPE \
- assert(t); assert(name); assert(kid)
+STATIC OP* S_ref_array_or_hash(pTHX_ OP* cond);
+STATIC OP* S_refkids(pTHX_ OP* o, I32 type);
+STATIC bool S_scalar_mod_type(const OP *o, I32 type)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_SCALAR_MOD_TYPE \
+ assert(o)
-STATIC void S_no_bareword_allowed(pTHX_ const OP *o)
+STATIC OP* S_scalarboolean(pTHX_ OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NO_BAREWORD_ALLOWED \
+#define PERL_ARGS_ASSERT_SCALARBOOLEAN \
assert(o)
-STATIC OP* S_no_fh_allowed(pTHX_ OP *o)
+STATIC OP* S_scalarkids(pTHX_ OP* o);
+STATIC OP* S_scalarseq(pTHX_ OP* o);
+STATIC OP* S_search_const(pTHX_ OP *o)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NO_FH_ALLOWED \
+#define PERL_ARGS_ASSERT_SEARCH_CONST \
+ assert(o)
+
+STATIC void S_simplify_sort(pTHX_ OP *o)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SIMPLIFY_SORT \
assert(o)
STATIC OP* S_too_few_arguments(pTHX_ OP *o, const char* name)
@@ -4870,54 +5581,36 @@ STATIC OP* S_too_many_arguments(pTHX_ OP *o, const char* name)
#define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS \
assert(o); assert(name)
-STATIC bool S_looks_like_bool(pTHX_ const OP* o)
+# if defined(USE_ITHREADS)
+STATIC void S_forget_pmop(pTHX_ PMOP *const o, U32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_LOOKS_LIKE_BOOL \
+#define PERL_ARGS_ASSERT_FORGET_PMOP \
assert(o)
-STATIC OP* S_newGIVWHENOP(pTHX_ OP* cond, OP *block, I32 enter_opcode, I32 leave_opcode, PADOFFSET entertarg)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_NEWGIVWHENOP \
- assert(block)
-
-STATIC OP* S_ref_array_or_hash(pTHX_ OP* cond);
-STATIC void S_process_special_blocks(pTHX_ const char *const fullname, GV *const gv, CV *const cv)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_PROCESS_SPECIAL_BLOCKS \
- assert(fullname); assert(gv); assert(cv)
-
+# endif
#endif
-#if defined(PL_OP_SLAB_ALLOC)
-PERL_CALLCONV void* Perl_Slab_Alloc(pTHX_ size_t sz)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV void Perl_Slab_Free(pTHX_ void *op)
+#if defined(PERL_IN_PAD_C)
+STATIC PADOFFSET S_pad_add_name_sv(pTHX_ SV *namesv, const U32 flags, HV *typestash, HV *ourstash)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SLAB_FREE \
- assert(op)
+#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV \
+ assert(namesv)
-# if defined(PERL_DEBUG_READONLY_OPS)
-PERL_CALLCONV void Perl_pending_Slabs_to_ro(pTHX);
-PERL_CALLCONV OP * Perl_op_refcnt_inc(pTHX_ OP *o);
-PERL_CALLCONV PADOFFSET Perl_op_refcnt_dec(pTHX_ OP *o)
+STATIC void S_pad_check_dup(pTHX_ SV *name, const U32 flags, const HV *ourstash)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OP_REFCNT_DEC \
- assert(o)
+#define PERL_ARGS_ASSERT_PAD_CHECK_DUP \
+ assert(name)
-# if defined(PERL_IN_OP_C)
-STATIC void S_Slab_to_rw(pTHX_ void *op)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SLAB_TO_RW \
- assert(op)
+STATIC PADOFFSET S_pad_findlex(pTHX_ const char *name, const CV* cv, U32 seq, int warn, SV** out_capture, SV** out_name_sv, int *out_flags)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_6)
+ __attribute__nonnull__(pTHX_7);
+#define PERL_ARGS_ASSERT_PAD_FINDLEX \
+ assert(name); assert(cv); assert(out_name_sv); assert(out_flags)
-# endif
-# endif
+STATIC void S_pad_reset(pTHX);
#endif
-
-#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
+#if defined(PERL_IN_PERL_C)
STATIC void S_find_beginning(pTHX_ SV* linestr_sv, PerlIO *rsfp)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -4935,8 +5628,8 @@ STATIC void S_incpush_use_sep(pTHX_ const char *p, STRLEN len, U32 flags)
#define PERL_ARGS_ASSERT_INCPUSH_USE_SEP \
assert(p)
-STATIC void S_init_interp(pTHX);
STATIC void S_init_ids(pTHX);
+STATIC void S_init_interp(pTHX);
STATIC void S_init_main_stash(pTHX);
STATIC void S_init_perllib(pTHX);
STATIC void S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env)
@@ -4956,33 +5649,23 @@ STATIC int S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suid
#define PERL_ARGS_ASSERT_OPEN_SCRIPT \
assert(scriptname); assert(suidscript); assert(rsfpp)
+STATIC void* S_parse_body(pTHX_ char **env, XSINIT_t xsinit);
+STATIC void S_run_body(pTHX_ I32 oldscope)
+ __attribute__noreturn__;
+
STATIC void S_usage(pTHX_ const char *name)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_USAGE \
assert(name)
-#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
-STATIC void S_validate_suid(pTHX_ PerlIO *rsfp)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VALIDATE_SUID \
- assert(rsfp)
-
#endif
-
-STATIC void* S_parse_body(pTHX_ char **env, XSINIT_t xsinit);
-STATIC void S_run_body(pTHX_ I32 oldscope)
- __attribute__noreturn__;
-
-STATIC SV * S_incpush_if_exists(pTHX_ AV *const av, SV *dir, SV *const stem)
+#if defined(PERL_IN_PP_C)
+STATIC void S_do_chomp(pTHX_ SV *retval, SV *sv, bool chomping)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_INCPUSH_IF_EXISTS \
- assert(av); assert(dir); assert(stem)
-
-#endif
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_DO_CHOMP \
+ assert(retval); assert(sv)
-#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
STATIC OP* S_do_delete_local(pTHX);
STATIC SV* S_refto(pTHX_ SV* sv)
__attribute__warn_unused_result__
@@ -4991,7 +5674,7 @@ STATIC SV* S_refto(pTHX_ SV* sv)
assert(sv)
#endif
-#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
PERL_CALLCONV GV* Perl_softref2xv(pTHX_ SV *const sv, const char *const what, const svtype type, SV ***spp)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
@@ -5001,95 +5684,23 @@ PERL_CALLCONV GV* Perl_softref2xv(pTHX_ SV *const sv, const char *const what, co
assert(sv); assert(what); assert(spp)
#endif
-
-#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-STATIC I32 S_unpack_rec(pTHX_ struct tempsym* symptr, const char *s, const char *strbeg, const char *strend, const char **new_s)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_UNPACK_REC \
- assert(symptr); assert(s); assert(strbeg); assert(strend)
-
-STATIC SV ** S_pack_rec(pTHX_ SV *cat, struct tempsym* symptr, SV **beglist, SV **endlist)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_PACK_REC \
- assert(cat); assert(symptr); assert(beglist); assert(endlist)
-
-STATIC SV* S_mul128(pTHX_ SV *sv, U8 m)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MUL128 \
- assert(sv)
-
-STATIC I32 S_measure_struct(pTHX_ struct tempsym* symptr)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MEASURE_STRUCT \
- assert(symptr)
-
-STATIC bool S_next_symbol(pTHX_ struct tempsym* symptr)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NEXT_SYMBOL \
- assert(symptr)
-
-STATIC SV* S_is_an_int(pTHX_ const char *s, STRLEN l)
+#if defined(PERL_IN_PP_CTL_C)
+STATIC PerlIO * S_check_type_and_open(pTHX_ SV *name)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_AN_INT \
- assert(s)
-
-STATIC int S_div128(pTHX_ SV *pnum, bool *done)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DIV128 \
- assert(pnum); assert(done)
-
-STATIC const char * S_group_end(pTHX_ const char *patptr, const char *patend, char ender)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GROUP_END \
- assert(patptr); assert(patend)
-
-STATIC const char * S_get_num(pTHX_ const char *patptr, I32 *lenptr)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GET_NUM \
- assert(patptr); assert(lenptr)
-
-STATIC bool S_need_utf8(const char *pat, const char *patend)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_NEED_UTF8 \
- assert(pat); assert(patend)
-
-STATIC char S_first_symbol(const char *pat, const char *patend)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_FIRST_SYMBOL \
- assert(pat); assert(patend)
+#define PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN \
+ assert(name)
-STATIC char * S_sv_exp_grow(pTHX_ SV *sv, STRLEN needed)
- __attribute__warn_unused_result__
+STATIC void S_destroy_matcher(pTHX_ PMOP* matcher)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_EXP_GROW \
- assert(sv)
-
-STATIC char * S_bytes_to_uni(const U8 *start, STRLEN len, char *dest)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_BYTES_TO_UNI \
- assert(start); assert(dest)
-
-#endif
+#define PERL_ARGS_ASSERT_DESTROY_MATCHER \
+ assert(matcher)
-#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
+STATIC OP* S_do_smartmatch(pTHX_ HV* seen_this, HV* seen_other);
STATIC OP* S_docatch(pTHX_ OP *o)
__attribute__warn_unused_result__;
+STATIC bool S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq);
STATIC OP* S_dofindlabel(pTHX_ OP *o, const char *label, OP **opstack, OP **oplimit)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
@@ -5099,15 +5710,11 @@ STATIC OP* S_dofindlabel(pTHX_ OP *o, const char *label, OP **opstack, OP **opli
#define PERL_ARGS_ASSERT_DOFINDLABEL \
assert(o); assert(label); assert(opstack); assert(oplimit)
-STATIC OP* S_doparseform(pTHX_ SV *sv)
- __attribute__warn_unused_result__
+STATIC MAGIC * S_doparseform(pTHX_ SV *sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_DOPARSEFORM \
assert(sv)
-STATIC bool S_num_overflow(NV value, I32 fldsize, I32 frcsize)
- __attribute__warn_unused_result__;
-
STATIC I32 S_dopoptoeval(pTHX_ I32 startingblock)
__attribute__warn_unused_result__;
@@ -5132,26 +5739,22 @@ STATIC I32 S_dopoptosub_at(pTHX_ const PERL_CONTEXT* cxstk, I32 startingblock)
STATIC I32 S_dopoptowhen(pTHX_ I32 startingblock)
__attribute__warn_unused_result__;
-STATIC void S_save_lines(pTHX_ AV *array, SV *sv)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SAVE_LINES \
- assert(sv)
-
-STATIC bool S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq);
-STATIC PerlIO * S_check_type_and_open(pTHX_ const char *name)
+STATIC PMOP* S_make_matcher(pTHX_ REGEXP* re)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CHECK_TYPE_AND_OPEN \
- assert(name)
+#define PERL_ARGS_ASSERT_MAKE_MATCHER \
+ assert(re)
-#ifndef PERL_DISABLE_PMC
-STATIC PerlIO * S_doopen_pm(pTHX_ const char *name, const STRLEN namelen)
+STATIC bool S_matcher_matches_sv(pTHX_ PMOP* matcher, SV* sv)
__attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DOOPEN_PM \
- assert(name)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MATCHER_MATCHES_SV \
+ assert(matcher); assert(sv)
+
+STATIC bool S_num_overflow(NV value, I32 fldsize, I32 frcsize)
+ __attribute__warn_unused_result__;
-#endif
STATIC bool S_path_is_absolute(const char *name)
__attribute__warn_unused_result__
__attribute__nonnull__(1);
@@ -5164,28 +5767,24 @@ STATIC I32 S_run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
#define PERL_ARGS_ASSERT_RUN_USER_FILTER \
assert(buf_sv)
-STATIC PMOP* S_make_matcher(pTHX_ REGEXP* re)
- __attribute__warn_unused_result__
+STATIC void S_rxres_free(pTHX_ void** rsp)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MAKE_MATCHER \
- assert(re)
+#define PERL_ARGS_ASSERT_RXRES_FREE \
+ assert(rsp)
-STATIC bool S_matcher_matches_sv(pTHX_ PMOP* matcher, SV* sv)
- __attribute__warn_unused_result__
+STATIC void S_rxres_restore(pTHX_ void **rsp, REGEXP *rx)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MATCHER_MATCHES_SV \
- assert(matcher); assert(sv)
+#define PERL_ARGS_ASSERT_RXRES_RESTORE \
+ assert(rsp); assert(rx)
-STATIC void S_destroy_matcher(pTHX_ PMOP* matcher)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DESTROY_MATCHER \
- assert(matcher)
+STATIC void S_save_lines(pTHX_ AV *array, SV *sv)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SAVE_LINES \
+ assert(sv)
-STATIC OP* S_do_smartmatch(pTHX_ HV* seen_this, HV* seen_other);
#endif
-
-#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
+#if defined(PERL_IN_PP_HOT_C)
STATIC void S_do_oddball(pTHX_ HV *hash, SV **relem, SV **firstrelem)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -5200,32 +5799,90 @@ STATIC SV* S_method_common(pTHX_ SV* meth, U32* hashp)
assert(meth)
#endif
+#if defined(PERL_IN_PP_PACK_C)
+STATIC char * S_bytes_to_uni(const U8 *start, STRLEN len, char *dest)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_BYTES_TO_UNI \
+ assert(start); assert(dest)
-#if defined(PERL_IN_PP_SORT_C) || defined(PERL_DECL_PROT)
-STATIC I32 S_sv_ncmp(pTHX_ SV *const a, SV *const b)
+STATIC int S_div128(pTHX_ SV *pnum, bool *done)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_NCMP \
- assert(a); assert(b)
+#define PERL_ARGS_ASSERT_DIV128 \
+ assert(pnum); assert(done)
-STATIC I32 S_sv_i_ncmp(pTHX_ SV *const a, SV *const b)
+STATIC char S_first_symbol(const char *pat, const char *patend)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_FIRST_SYMBOL \
+ assert(pat); assert(patend)
+
+STATIC const char * S_get_num(pTHX_ const char *patptr, I32 *lenptr)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_I_NCMP \
- assert(a); assert(b)
+#define PERL_ARGS_ASSERT_GET_NUM \
+ assert(patptr); assert(lenptr)
-STATIC I32 S_amagic_ncmp(pTHX_ SV *const a, SV *const b)
+STATIC const char * S_group_end(pTHX_ const char *patptr, const char *patend, char ender)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_AMAGIC_NCMP \
- assert(a); assert(b)
+#define PERL_ARGS_ASSERT_GROUP_END \
+ assert(patptr); assert(patend)
-STATIC I32 S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b)
+STATIC SV* S_is_an_int(pTHX_ const char *s, STRLEN l)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_IS_AN_INT \
+ assert(s)
+
+STATIC I32 S_measure_struct(pTHX_ struct tempsym* symptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MEASURE_STRUCT \
+ assert(symptr)
+
+STATIC SV* S_mul128(pTHX_ SV *sv, U8 m)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MUL128 \
+ assert(sv)
+
+STATIC bool S_need_utf8(const char *pat, const char *patend)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_NEED_UTF8 \
+ assert(pat); assert(patend)
+
+STATIC bool S_next_symbol(pTHX_ struct tempsym* symptr)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_NEXT_SYMBOL \
+ assert(symptr)
+
+STATIC SV ** S_pack_rec(pTHX_ SV *cat, struct tempsym* symptr, SV **beglist, SV **endlist)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_AMAGIC_I_NCMP \
- assert(a); assert(b)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_PACK_REC \
+ assert(cat); assert(symptr); assert(beglist); assert(endlist)
+
+STATIC char * S_sv_exp_grow(pTHX_ SV *sv, STRLEN needed)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_EXP_GROW \
+ assert(sv)
+STATIC I32 S_unpack_rec(pTHX_ struct tempsym* symptr, const char *s, const char *strbeg, const char *strend, const char **new_s)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_UNPACK_REC \
+ assert(symptr); assert(s); assert(strbeg); assert(strend)
+
+#endif
+#if defined(PERL_IN_PP_SORT_C)
STATIC I32 S_amagic_cmp(pTHX_ SV *const str1, SV *const str2)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
@@ -5238,32 +5895,55 @@ STATIC I32 S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2)
#define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE \
assert(str1); assert(str2)
+STATIC I32 S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_AMAGIC_I_NCMP \
+ assert(a); assert(b)
+
+STATIC I32 S_amagic_ncmp(pTHX_ SV *const a, SV *const b)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_AMAGIC_NCMP \
+ assert(a); assert(b)
+
+STATIC void S_qsortsvu(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t compare)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_QSORTSVU \
+ assert(compare)
+
STATIC I32 S_sortcv(pTHX_ SV *const a, SV *const b)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_SORTCV \
assert(a); assert(b)
+STATIC I32 S_sortcv_stacked(pTHX_ SV *const a, SV *const b)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SORTCV_STACKED \
+ assert(a); assert(b)
+
STATIC I32 S_sortcv_xsub(pTHX_ SV *const a, SV *const b)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_SORTCV_XSUB \
assert(a); assert(b)
-STATIC I32 S_sortcv_stacked(pTHX_ SV *const a, SV *const b)
+STATIC I32 S_sv_i_ncmp(pTHX_ SV *const a, SV *const b)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SORTCV_STACKED \
+#define PERL_ARGS_ASSERT_SV_I_NCMP \
assert(a); assert(b)
-STATIC void S_qsortsvu(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t compare)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_QSORTSVU \
- assert(compare)
+STATIC I32 S_sv_ncmp(pTHX_ SV *const a, SV *const b)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_NCMP \
+ assert(a); assert(b)
#endif
-
-#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
+#if defined(PERL_IN_PP_SYS_C)
STATIC OP* S_doform(pTHX_ CV *cv, GV *gv, OP *retop)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -5271,55 +5951,169 @@ STATIC OP* S_doform(pTHX_ CV *cv, GV *gv, OP *retop)
#define PERL_ARGS_ASSERT_DOFORM \
assert(cv); assert(gv); assert(retop)
-# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
-STATIC int S_dooneliner(pTHX_ const char *cmd, const char *filename)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DOONELINER \
- assert(cmd); assert(filename)
-
-# endif
STATIC SV * S_space_join_names_mortal(pTHX_ char *const *array)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL \
assert(array)
#endif
-
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
-STATIC regnode* S_reg(pTHX_ struct RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+#if defined(PERL_IN_REGCOMP_C)
+STATIC void S_add_alternate(pTHX_ AV** alternate_ptr, U8* string, STRLEN len)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_REG \
- assert(pRExC_state); assert(flagp)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_ADD_ALTERNATE \
+ assert(alternate_ptr); assert(string)
-STATIC regnode* S_reganode(pTHX_ struct RExC_state_t *pRExC_state, U8 op, U32 arg)
+PERL_STATIC_INLINE HV* S_add_cp_to_invlist(pTHX_ HV* invlist, const UV cp)
+ __attribute__warn_unused_result__;
+
+STATIC U32 S_add_data(struct RExC_state_t *pRExC_state, U32 n, const char *s)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_ADD_DATA \
+ assert(pRExC_state); assert(s)
+
+STATIC HV* S_add_range_to_invlist(pTHX_ HV* invlist, const UV start, const UV end)
+ __attribute__warn_unused_result__;
+
+STATIC void S_checkposixcc(pTHX_ struct RExC_state_t *pRExC_state)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REGANODE \
+#define PERL_ARGS_ASSERT_CHECKPOSIXCC \
assert(pRExC_state)
-STATIC regnode* S_regatom(pTHX_ struct RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
+STATIC void S_cl_and(struct regnode_charclass_class *cl, const struct regnode_charclass_class *and_with)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_CL_AND \
+ assert(cl); assert(and_with)
+
+STATIC void S_cl_anything(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_CL_ANYTHING \
+ assert(pRExC_state); assert(cl)
+
+STATIC void S_cl_init(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+#define PERL_ARGS_ASSERT_CL_INIT \
+ assert(pRExC_state); assert(cl)
+
+STATIC int S_cl_is_anything(const struct regnode_charclass_class *cl)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_CL_IS_ANYTHING \
+ assert(cl)
+
+STATIC void S_cl_or(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl, const struct regnode_charclass_class *or_with)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_CL_OR \
+ assert(pRExC_state); assert(cl); assert(or_with)
+
+PERL_STATIC_INLINE UV* S_invlist_array(pTHX_ HV* const invlist)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_ARRAY \
+ assert(invlist)
+
+PERL_STATIC_INLINE void S_invlist_destroy(pTHX_ HV* const invlist)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_DESTROY \
+ assert(invlist)
+
+STATIC void S_invlist_extend(pTHX_ HV* const invlist, const UV len)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_EXTEND \
+ assert(invlist)
+
+STATIC HV* S_invlist_intersection(pTHX_ HV* const a, HV* const b)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_REGATOM \
- assert(pRExC_state); assert(flagp)
+#define PERL_ARGS_ASSERT_INVLIST_INTERSECTION \
+ assert(a); assert(b)
-STATIC regnode* S_regbranch(pTHX_ struct RExC_state_t *pRExC_state, I32 *flagp, I32 first, U32 depth)
+PERL_STATIC_INLINE UV S_invlist_len(pTHX_ HV* const invlist)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_LEN \
+ assert(invlist)
+
+PERL_STATIC_INLINE UV S_invlist_max(pTHX_ HV* const invlist)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_MAX \
+ assert(invlist)
+
+PERL_STATIC_INLINE void S_invlist_set_len(pTHX_ HV* const invlist, const UV len)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_SET_LEN \
+ assert(invlist)
+
+PERL_STATIC_INLINE void S_invlist_set_max(pTHX_ HV* const invlist, const UV max)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_SET_MAX \
+ assert(invlist)
+
+PERL_STATIC_INLINE void S_invlist_trim(pTHX_ HV* const invlist)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INVLIST_TRIM \
+ assert(invlist)
+
+STATIC HV* S_invlist_union(pTHX_ HV* const a, HV* const b)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_REGBRANCH \
- assert(pRExC_state); assert(flagp)
+#define PERL_ARGS_ASSERT_INVLIST_UNION \
+ assert(a); assert(b)
-STATIC STRLEN S_reguni(pTHX_ const struct RExC_state_t *pRExC_state, UV uv, char *s)
+STATIC U32 S_join_exact(pTHX_ struct RExC_state_t *pRExC_state, regnode *scan, I32 *min, U32 flags, regnode *val, U32 depth)
__attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_REGUNI \
- assert(pRExC_state); assert(s)
+#define PERL_ARGS_ASSERT_JOIN_EXACT \
+ assert(pRExC_state); assert(scan); assert(min)
-STATIC regnode* S_regclass(pTHX_ struct RExC_state_t *pRExC_state, U32 depth)
+STATIC I32 S_make_trie(pTHX_ struct RExC_state_t *pRExC_state, regnode *startbranch, regnode *first, regnode *last, regnode *tail, U32 word_count, U32 flags, U32 depth)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4)
+ __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_MAKE_TRIE \
+ assert(pRExC_state); assert(startbranch); assert(first); assert(last); assert(tail)
+
+STATIC void S_make_trie_failtable(pTHX_ struct RExC_state_t *pRExC_state, regnode *source, regnode *stclass, U32 depth)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_MAKE_TRIE_FAILTABLE \
+ assert(pRExC_state); assert(source); assert(stclass)
+
+STATIC char * S_nextchar(pTHX_ struct RExC_state_t *pRExC_state)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REGCLASS \
+#define PERL_ARGS_ASSERT_NEXTCHAR \
+ assert(pRExC_state)
+
+STATIC void S_re_croak2(pTHX_ const char* pat1, const char* pat2, ...)
+ __attribute__noreturn__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_RE_CROAK2 \
+ assert(pat1); assert(pat2)
+
+STATIC regnode* S_reg(pTHX_ struct RExC_state_t *pRExC_state, I32 paren, I32 *flagp, U32 depth)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_REG \
+ assert(pRExC_state); assert(flagp)
+
+STATIC regnode* S_reg_namedseq(pTHX_ struct RExC_state_t *pRExC_state, UV *valuep, I32 *flagp, U32 depth)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REG_NAMEDSEQ \
assert(pRExC_state)
STATIC regnode* S_reg_node(pTHX_ struct RExC_state_t *pRExC_state, U8 op)
@@ -5332,15 +6126,36 @@ STATIC UV S_reg_recode(pTHX_ const char value, SV **encp)
#define PERL_ARGS_ASSERT_REG_RECODE \
assert(encp)
-STATIC regnode* S_regpiece(pTHX_ struct RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
+STATIC SV * S_reg_scan_name(pTHX_ struct RExC_state_t *pRExC_state, U32 flags)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REG_SCAN_NAME \
+ assert(pRExC_state)
+
+STATIC bool S_reg_skipcomment(pTHX_ struct RExC_state_t *pRExC_state)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REG_SKIPCOMMENT \
+ assert(pRExC_state)
+
+STATIC regnode* S_reganode(pTHX_ struct RExC_state_t *pRExC_state, U8 op, U32 arg)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REGANODE \
+ assert(pRExC_state)
+
+STATIC regnode* S_regatom(pTHX_ struct RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_REGPIECE \
+#define PERL_ARGS_ASSERT_REGATOM \
assert(pRExC_state); assert(flagp)
-STATIC regnode* S_reg_namedseq(pTHX_ struct RExC_state_t *pRExC_state, UV *valuep, I32 *flagp)
+STATIC regnode* S_regbranch(pTHX_ struct RExC_state_t *pRExC_state, I32 *flagp, I32 first, U32 depth)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REGBRANCH \
+ assert(pRExC_state); assert(flagp)
+
+STATIC regnode* S_regclass(pTHX_ struct RExC_state_t *pRExC_state, U32 depth)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REG_NAMEDSEQ \
+#define PERL_ARGS_ASSERT_REGCLASS \
assert(pRExC_state)
STATIC void S_reginsert(pTHX_ struct RExC_state_t *pRExC_state, U8 op, regnode *opnd, U32 depth)
@@ -5349,6 +6164,17 @@ STATIC void S_reginsert(pTHX_ struct RExC_state_t *pRExC_state, U8 op, regnode *
#define PERL_ARGS_ASSERT_REGINSERT \
assert(pRExC_state); assert(opnd)
+STATIC regnode* S_regpiece(pTHX_ struct RExC_state_t *pRExC_state, I32 *flagp, U32 depth)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REGPIECE \
+ assert(pRExC_state); assert(flagp)
+
+STATIC I32 S_regpposixcc(pTHX_ struct RExC_state_t *pRExC_state, I32 value)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_REGPPOSIXCC \
+ assert(pRExC_state)
+
STATIC void S_regtail(pTHX_ struct RExC_state_t *pRExC_state, regnode *p, const regnode *val, U32 depth)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -5356,17 +6182,11 @@ STATIC void S_regtail(pTHX_ struct RExC_state_t *pRExC_state, regnode *p, const
#define PERL_ARGS_ASSERT_REGTAIL \
assert(pRExC_state); assert(p); assert(val)
-STATIC SV * S_reg_scan_name(pTHX_ struct RExC_state_t *pRExC_state, U32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REG_SCAN_NAME \
- assert(pRExC_state)
-
-STATIC U32 S_join_exact(pTHX_ struct RExC_state_t *pRExC_state, regnode *scan, I32 *min, U32 flags, regnode *val, U32 depth)
+STATIC STRLEN S_reguni(pTHX_ const struct RExC_state_t *pRExC_state, UV uv, char *s)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_JOIN_EXACT \
- assert(pRExC_state); assert(scan); assert(min)
+#define PERL_ARGS_ASSERT_REGUNI \
+ assert(pRExC_state); assert(s)
STATIC char * S_regwhite(struct RExC_state_t *pRExC_state, char *p)
__attribute__warn_unused_result__
@@ -5375,16 +6195,6 @@ STATIC char * S_regwhite(struct RExC_state_t *pRExC_state, char *p)
#define PERL_ARGS_ASSERT_REGWHITE \
assert(pRExC_state); assert(p)
-STATIC char * S_nextchar(pTHX_ struct RExC_state_t *pRExC_state)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NEXTCHAR \
- assert(pRExC_state)
-
-STATIC bool S_reg_skipcomment(pTHX_ struct RExC_state_t *pRExC_state)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REG_SKIPCOMMENT \
- assert(pRExC_state)
-
STATIC void S_scan_commit(pTHX_ const struct RExC_state_t *pRExC_state, struct scan_data_t *data, I32 *minlenp, int is_inf)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
@@ -5392,136 +6202,76 @@ STATIC void S_scan_commit(pTHX_ const struct RExC_state_t *pRExC_state, struct s
#define PERL_ARGS_ASSERT_SCAN_COMMIT \
assert(pRExC_state); assert(data); assert(minlenp)
-STATIC void S_cl_anything(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_CL_ANYTHING \
- assert(pRExC_state); assert(cl)
-
-STATIC int S_cl_is_anything(const struct regnode_charclass_class *cl)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_CL_IS_ANYTHING \
- assert(cl)
-
-STATIC void S_cl_init(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_CL_INIT \
- assert(pRExC_state); assert(cl)
-
-STATIC void S_cl_init_zero(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_CL_INIT_ZERO \
- assert(pRExC_state); assert(cl)
-
-STATIC void S_cl_and(struct regnode_charclass_class *cl, const struct regnode_charclass_class *and_with)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_CL_AND \
- assert(cl); assert(and_with)
-
-STATIC void S_cl_or(const struct RExC_state_t *pRExC_state, struct regnode_charclass_class *cl, const struct regnode_charclass_class *or_with)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_CL_OR \
- assert(pRExC_state); assert(cl); assert(or_with)
-
-STATIC I32 S_study_chunk(pTHX_ struct RExC_state_t *pRExC_state, regnode **scanp, I32 *minlenp, I32 *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U8* recursed, struct regnode_charclass_class *and_withp, U32 flags, U32 depth)
+PERL_STATIC_INLINE U8 S_set_regclass_bit(pTHX_ struct RExC_state_t* pRExC_state, regnode* node, const U8 value, HV** invlist_ptr, AV** alternate_ptr)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
__attribute__nonnull__(pTHX_4)
__attribute__nonnull__(pTHX_5);
-#define PERL_ARGS_ASSERT_STUDY_CHUNK \
- assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); assert(last)
-
-STATIC U32 S_add_data(struct RExC_state_t *pRExC_state, U32 n, const char *s)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_ADD_DATA \
- assert(pRExC_state); assert(s)
+#define PERL_ARGS_ASSERT_SET_REGCLASS_BIT \
+ assert(pRExC_state); assert(node); assert(invlist_ptr); assert(alternate_ptr)
-STATIC void S_re_croak2(pTHX_ const char* pat1, const char* pat2, ...)
- __attribute__noreturn__
+STATIC U8 S_set_regclass_bit_fold(pTHX_ struct RExC_state_t *pRExC_state, regnode* node, const U8 value, HV** invlist_ptr, AV** alternate_ptr)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_RE_CROAK2 \
- assert(pat1); assert(pat2)
-
-STATIC I32 S_regpposixcc(pTHX_ struct RExC_state_t *pRExC_state, I32 value)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REGPPOSIXCC \
- assert(pRExC_state)
-
-STATIC void S_checkposixcc(pTHX_ struct RExC_state_t *pRExC_state)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CHECKPOSIXCC \
- assert(pRExC_state)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_4)
+ __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_SET_REGCLASS_BIT_FOLD \
+ assert(pRExC_state); assert(node); assert(invlist_ptr); assert(alternate_ptr)
-STATIC I32 S_make_trie(pTHX_ struct RExC_state_t *pRExC_state, regnode *startbranch, regnode *first, regnode *last, regnode *tail, U32 word_count, U32 flags, U32 depth)
+STATIC I32 S_study_chunk(pTHX_ struct RExC_state_t *pRExC_state, regnode **scanp, I32 *minlenp, I32 *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U8* recursed, struct regnode_charclass_class *and_withp, U32 flags, U32 depth)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3)
__attribute__nonnull__(pTHX_4)
__attribute__nonnull__(pTHX_5);
-#define PERL_ARGS_ASSERT_MAKE_TRIE \
- assert(pRExC_state); assert(startbranch); assert(first); assert(last); assert(tail)
+#define PERL_ARGS_ASSERT_STUDY_CHUNK \
+ assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); assert(last)
-STATIC void S_make_trie_failtable(pTHX_ struct RExC_state_t *pRExC_state, regnode *source, regnode *stclass, U32 depth)
+#endif
+#if defined(PERL_IN_REGEXEC_C)
+STATIC char* S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, const char *strend, regmatch_info *reginfo)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_MAKE_TRIE_FAILTABLE \
- assert(pRExC_state); assert(source); assert(stclass)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_FIND_BYCLASS \
+ assert(prog); assert(c); assert(s); assert(strend)
-# ifdef DEBUGGING
-STATIC void S_regdump_extflags(pTHX_ const char *lead, const U32 flags);
-STATIC const regnode* S_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, const regnode *plast, SV* sv, I32 indent, U32 depth)
+STATIC I32 S_reg_check_named_buff_matched(pTHX_ const regexp *rex, const regnode *scan)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_6);
-#define PERL_ARGS_ASSERT_DUMPUNTIL \
- assert(r); assert(start); assert(node); assert(sv)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \
+ assert(rex); assert(scan)
-STATIC void S_put_byte(pTHX_ SV* sv, int c)
+STATIC char* S_regcppop(pTHX_ const regexp *rex)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PUT_BYTE \
- assert(sv)
-
-STATIC void S_dump_trie(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 depth)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DUMP_TRIE \
- assert(trie); assert(revcharmap)
+#define PERL_ARGS_ASSERT_REGCPPOP \
+ assert(rex)
-STATIC void S_dump_trie_interim_list(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 next_alloc, U32 depth)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_LIST \
- assert(trie); assert(revcharmap)
+STATIC CHECKPOINT S_regcppush(pTHX_ I32 parenfloor);
+STATIC U8* S_reghop3(U8 *s, I32 off, const U8 *lim)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_REGHOP3 \
+ assert(s); assert(lim)
-STATIC void S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie, HV* widecharmap, AV *revcharmap, U32 next_alloc, U32 depth)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_DUMP_TRIE_INTERIM_TABLE \
- assert(trie); assert(revcharmap)
+STATIC U8* S_reghopmaybe3(U8 *s, I32 off, const U8 *lim)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_REGHOPMAYBE3 \
+ assert(s); assert(lim)
-STATIC U8 S_regtail_study(pTHX_ struct RExC_state_t *pRExC_state, regnode *p, const regnode *val, U32 depth)
- __attribute__nonnull__(pTHX_1)
+STATIC bool S_reginclass(pTHX_ const regexp * const prog, const regnode * const n, const U8 * const p, STRLEN *lenp, bool const do_utf8sv_is_utf8)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_REGTAIL_STUDY \
- assert(pRExC_state); assert(p); assert(val)
-
-# endif
-#endif
+#define PERL_ARGS_ASSERT_REGINCLASS \
+ assert(n); assert(p)
-#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
STATIC I32 S_regmatch(pTHX_ regmatch_info *reginfo, regnode *prog)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
@@ -5543,27 +6293,17 @@ STATIC I32 S_regtry(pTHX_ regmatch_info *reginfo, char **startpos)
#define PERL_ARGS_ASSERT_REGTRY \
assert(reginfo); assert(startpos)
-STATIC bool S_reginclass(pTHX_ const regexp *prog, const regnode *n, const U8 *p, STRLEN *lenp, bool do_utf8sv_is_utf8)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_REGINCLASS \
- assert(n); assert(p)
-
-STATIC CHECKPOINT S_regcppush(pTHX_ I32 parenfloor);
-STATIC char* S_regcppop(pTHX_ const regexp *rex)
+STATIC void S_to_byte_substr(pTHX_ regexp * prog)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_REGCPPOP \
- assert(rex)
+#define PERL_ARGS_ASSERT_TO_BYTE_SUBSTR \
+ assert(prog)
-STATIC U8* S_reghop3(U8 *s, I32 off, const U8 *lim)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_REGHOP3 \
- assert(s); assert(lim)
+STATIC void S_to_utf8_substr(pTHX_ regexp * prog)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_TO_UTF8_SUBSTR \
+ assert(prog)
-#ifdef XXX_dmq
+# if defined(XXX_dmq)
STATIC U8* S_reghop4(U8 *s, I32 off, const U8 *llim, const U8 *rlim)
__attribute__warn_unused_result__
__attribute__nonnull__(1)
@@ -5572,184 +6312,142 @@ STATIC U8* S_reghop4(U8 *s, I32 off, const U8 *llim, const U8 *rlim)
#define PERL_ARGS_ASSERT_REGHOP4 \
assert(s); assert(llim); assert(rlim)
+# endif
#endif
-STATIC U8* S_reghopmaybe3(U8 *s, I32 off, const U8 *lim)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_REGHOPMAYBE3 \
- assert(s); assert(lim)
-
-STATIC char* S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, const char *strend, regmatch_info *reginfo)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_FIND_BYCLASS \
- assert(prog); assert(c); assert(s); assert(strend)
-
-STATIC void S_to_utf8_substr(pTHX_ regexp * prog)
+#if defined(PERL_IN_SCOPE_C)
+STATIC void S_save_pushptri32ptr(pTHX_ void *const ptr1, const I32 i, void *const ptr2, const int type);
+STATIC SV* S_save_scalar_at(pTHX_ SV **sptr, const U32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_TO_UTF8_SUBSTR \
- assert(prog)
+#define PERL_ARGS_ASSERT_SAVE_SCALAR_AT \
+ assert(sptr)
-STATIC void S_to_byte_substr(pTHX_ regexp * prog)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_TO_BYTE_SUBSTR \
- assert(prog)
+#endif
+#if defined(PERL_IN_SV_C)
+STATIC char * S_F0convert(NV nv, char *const endbuf, STRLEN *const len)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+#define PERL_ARGS_ASSERT_F0CONVERT \
+ assert(endbuf); assert(len)
-STATIC I32 S_reg_check_named_buff_matched(pTHX_ const regexp *rex, const regnode *scan)
- __attribute__warn_unused_result__
+STATIC void S_anonymise_cv_maybe(pTHX_ GV *gv, CV *cv)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \
- assert(rex); assert(scan)
+#define PERL_ARGS_ASSERT_ANONYMISE_CV_MAYBE \
+ assert(gv); assert(cv)
-# ifdef DEBUGGING
-STATIC void S_dump_exec_pos(pTHX_ const char *locinput, const regnode *scan, const char *loc_regeol, const char *loc_bostr, const char *loc_reg_starttry, const bool do_utf8)
+STATIC void S_assert_uft8_cache_coherent(pTHX_ const char *const func, STRLEN from_cache, STRLEN real, SV *const sv)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4)
- __attribute__nonnull__(pTHX_5);
-#define PERL_ARGS_ASSERT_DUMP_EXEC_POS \
- assert(locinput); assert(scan); assert(loc_regeol); assert(loc_bostr); assert(loc_reg_starttry)
-
-STATIC void S_debug_start_match(pTHX_ const REGEXP *prog, const bool do_utf8, const char *start, const char *end, const char *blurb)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4)
- __attribute__nonnull__(pTHX_5);
-#define PERL_ARGS_ASSERT_DEBUG_START_MATCH \
- assert(prog); assert(start); assert(end); assert(blurb)
-
-# endif
-#endif
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_ASSERT_UFT8_CACHE_COHERENT \
+ assert(func); assert(sv)
-#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
-STATIC CV* S_deb_curcv(pTHX_ const I32 ix);
-STATIC void S_debprof(pTHX_ const OP *o)
+STATIC bool S_curse(pTHX_ SV * const sv, const bool check_refcnt)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DEBPROF \
- assert(o)
+#define PERL_ARGS_ASSERT_CURSE \
+ assert(sv)
-STATIC void S_sequence(pTHX_ const OP *o);
-STATIC void S_sequence_tail(pTHX_ const OP *o);
-STATIC UV S_sequence_num(pTHX_ const OP *o);
-STATIC SV* S_pm_description(pTHX_ const PMOP *pm)
+STATIC I32 S_expect_number(pTHX_ char **const pattern)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PM_DESCRIPTION \
- assert(pm)
+#define PERL_ARGS_ASSERT_EXPECT_NUMBER \
+ assert(pattern)
-#endif
+STATIC I32 S_find_array_subscript(pTHX_ const AV *const av, const SV *const val)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT \
+ assert(val)
-#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
-STATIC SV* S_save_scalar_at(pTHX_ SV **sptr, const U32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_SCALAR_AT \
- assert(sptr)
+STATIC SV * S_find_hash_subscript(pTHX_ const HV *const hv, const SV *const val)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_FIND_HASH_SUBSCRIPT \
+ assert(val)
-#endif
+STATIC SV* S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv, bool top);
+STATIC bool S_glob_2number(pTHX_ GV* const gv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_GLOB_2NUMBER \
+ assert(gv)
-#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-PERL_CALLCONV void Perl_sv_add_backref(pTHX_ SV *const tsv, SV *const sv)
+STATIC void S_glob_assign_glob(pTHX_ SV *const dstr, SV *const sstr, const int dtype)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_ADD_BACKREF \
- assert(tsv); assert(sv)
-
-#endif
+#define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB \
+ assert(dstr); assert(sstr)
-#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-PERL_CALLCONV int Perl_sv_kill_backrefs(pTHX_ SV *const sv, AV *const av)
+STATIC void S_glob_assign_ref(pTHX_ SV *const dstr, SV *const sstr)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_KILL_BACKREFS \
- assert(sv); assert(av)
-
-#endif
-
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-STATIC char * S_uiv_2buf(char *const buf, const IV iv, UV uv, const int is_uv, char **const peob)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1)
- __attribute__nonnull__(5);
-#define PERL_ARGS_ASSERT_UIV_2BUF \
- assert(buf); assert(peob)
-
-STATIC void S_sv_unglob(pTHX_ SV *const sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_UNGLOB \
- assert(sv)
+#define PERL_ARGS_ASSERT_GLOB_ASSIGN_REF \
+ assert(dstr); assert(sstr)
+STATIC SV * S_more_sv(pTHX);
STATIC void S_not_a_number(pTHX_ SV *const sv)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_NOT_A_NUMBER \
assert(sv)
-STATIC I32 S_visit(pTHX_ SVFUNC_t f, const U32 flags, const U32 mask)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_VISIT \
- assert(f)
-
-STATIC void S_sv_del_backref(pTHX_ SV *const tsv, SV *const sv)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_DEL_BACKREF \
- assert(tsv); assert(sv)
-
-STATIC SV * S_varname(pTHX_ const GV *const gv, const char gvtype, PADOFFSET targ, const SV *const keyname, I32 aindex, int subscript_type)
- __attribute__warn_unused_result__;
-
-# ifdef DEBUGGING
-STATIC void S_del_sv(pTHX_ SV *p)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DEL_SV \
- assert(p)
+STATIC PTR_TBL_ENT_t * S_ptr_table_find(PTR_TBL_t *const tbl, const void *const sv)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_PTR_TABLE_FIND \
+ assert(tbl)
-# endif
-# if !defined(NV_PRESERVES_UV)
-# ifdef DEBUGGING
-STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *const sv, I32 numtype)
+STATIC bool S_sv_2iuv_common(pTHX_ SV *const sv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
+#define PERL_ARGS_ASSERT_SV_2IUV_COMMON \
assert(sv)
-# else
-STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *const sv)
+STATIC void S_sv_add_arena(pTHX_ char *const ptr, const U32 size, const U32 flags)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_2IUV_NON_PRESERVE \
- assert(sv)
+#define PERL_ARGS_ASSERT_SV_ADD_ARENA \
+ assert(ptr)
-# endif
-# endif
-STATIC I32 S_expect_number(pTHX_ char **const pattern)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_EXPECT_NUMBER \
- assert(pattern)
+STATIC STRLEN S_sv_pos_b2u_midway(pTHX_ const U8 *const s, const U8 *const target, const U8 *end, STRLEN endu)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY \
+ assert(s); assert(target); assert(end)
+
+STATIC STRLEN S_sv_pos_u2b_cached(pTHX_ SV *const sv, MAGIC **const mgp, const U8 *const start, const U8 *const send, STRLEN uoffset, STRLEN uoffset0, STRLEN boffset0)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_SV_POS_U2B_CACHED \
+ assert(sv); assert(mgp); assert(start); assert(send)
-#
-STATIC STRLEN S_sv_pos_u2b_forwards(const U8 *const start, const U8 *const send, STRLEN uoffset)
+STATIC STRLEN S_sv_pos_u2b_forwards(const U8 *const start, const U8 *const send, STRLEN *const uoffset, bool *const at_end)
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4);
#define PERL_ARGS_ASSERT_SV_POS_U2B_FORWARDS \
- assert(start); assert(send)
+ assert(start); assert(send); assert(uoffset); assert(at_end)
-STATIC STRLEN S_sv_pos_u2b_midway(const U8 *const start, const U8 *send, const STRLEN uoffset, const STRLEN uend)
+STATIC STRLEN S_sv_pos_u2b_midway(const U8 *const start, const U8 *send, STRLEN uoffset, const STRLEN uend)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
#define PERL_ARGS_ASSERT_SV_POS_U2B_MIDWAY \
assert(start); assert(send)
-STATIC STRLEN S_sv_pos_u2b_cached(pTHX_ SV *const sv, MAGIC **const mgp, const U8 *const start, const U8 *const send, const STRLEN uoffset, STRLEN uoffset0, STRLEN boffset0)
+STATIC void S_sv_unglob(pTHX_ SV *const sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SV_UNGLOB \
+ assert(sv)
+
+STATIC char * S_uiv_2buf(char *const buf, const IV iv, UV uv, const int is_uv, char **const peob)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(5);
+#define PERL_ARGS_ASSERT_UIV_2BUF \
+ assert(buf); assert(peob)
+
+STATIC void S_utf8_mg_len_cache_update(pTHX_ SV *const sv, MAGIC **const mgp, const STRLEN ulen)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_4);
-#define PERL_ARGS_ASSERT_SV_POS_U2B_CACHED \
- assert(sv); assert(mgp); assert(start); assert(send)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_UTF8_MG_LEN_CACHE_UPDATE \
+ assert(sv); assert(mgp)
STATIC void S_utf8_mg_pos_cache_update(pTHX_ SV *const sv, MAGIC **const mgp, const STRLEN byte, const STRLEN utf8, const STRLEN blen)
__attribute__nonnull__(pTHX_1)
@@ -5757,18 +6455,13 @@ STATIC void S_utf8_mg_pos_cache_update(pTHX_ SV *const sv, MAGIC **const mgp, co
#define PERL_ARGS_ASSERT_UTF8_MG_POS_CACHE_UPDATE \
assert(sv); assert(mgp)
-STATIC STRLEN S_sv_pos_b2u_midway(pTHX_ const U8 *const s, const U8 *const target, const U8 *end, STRLEN endu)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_SV_POS_B2U_MIDWAY \
- assert(s); assert(target); assert(end)
+STATIC SV * S_varname(pTHX_ const GV *const gv, const char gvtype, PADOFFSET targ, const SV *const keyname, I32 aindex, int subscript_type)
+ __attribute__warn_unused_result__;
-STATIC char * S_F0convert(NV nv, char *const endbuf, STRLEN *const len)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_F0CONVERT \
- assert(endbuf); assert(len)
+STATIC I32 S_visit(pTHX_ SVFUNC_t f, const U32 flags, const U32 mask)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_VISIT \
+ assert(f)
# if defined(PERL_OLD_COPY_ON_WRITE)
STATIC void S_sv_release_COW(pTHX_ SV *sv, const char *pvx, SV *after)
@@ -5779,55 +6472,105 @@ STATIC void S_sv_release_COW(pTHX_ SV *sv, const char *pvx, SV *after)
assert(sv); assert(pvx); assert(after)
# endif
-STATIC SV * S_more_sv(pTHX);
-STATIC void * S_more_bodies(pTHX_ const svtype sv_type);
-STATIC bool S_sv_2iuv_common(pTHX_ SV *const sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_2IUV_COMMON \
- assert(sv)
-
-STATIC void S_glob_assign_glob(pTHX_ SV *const dstr, SV *const sstr, const int dtype)
+# if defined(USE_ITHREADS)
+STATIC SV* S_sv_dup_common(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB \
- assert(dstr); assert(sstr)
+#define PERL_ARGS_ASSERT_SV_DUP_COMMON \
+ assert(sstr); assert(param)
-STATIC void S_glob_assign_ref(pTHX_ SV *const dstr, SV *const sstr)
+STATIC SV ** S_sv_dup_inc_multiple(pTHX_ SV *const *source, SV **dest, SSize_t items, CLONE_PARAMS *const param)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GLOB_ASSIGN_REF \
- assert(dstr); assert(sstr)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE \
+ assert(source); assert(dest); assert(param)
-STATIC PTR_TBL_ENT_t * S_ptr_table_find(PTR_TBL_t *const tbl, const void *const sv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PTR_TABLE_FIND \
- assert(tbl)
+STATIC void S_unreferenced_to_tmp_stack(pTHX_ AV *const unreferenced)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_UNREFERENCED_TO_TMP_STACK \
+ assert(unreferenced)
+# endif
#endif
-
-#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
+#if defined(PERL_IN_TOKE_C)
+STATIC int S_ao(pTHX_ int toketype);
STATIC void S_check_uni(pTHX);
-STATIC void S_force_next(pTHX_ I32 type);
-STATIC char* S_force_version(pTHX_ char *s, int guessing)
+STATIC void S_checkcomma(pTHX_ const char *s, const char *name, const char *what)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_CHECKCOMMA \
+ assert(s); assert(name); assert(what)
+
+STATIC int S_deprecate_commaless_var_list(pTHX);
+STATIC char * S_filter_gets(pTHX_ SV *sv, STRLEN append)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FORCE_VERSION \
+#define PERL_ARGS_ASSERT_FILTER_GETS \
+ assert(sv)
+
+STATIC HV * S_find_in_my_stash(pTHX_ const char *pkgname, STRLEN len)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FIND_IN_MY_STASH \
+ assert(pkgname)
+
+STATIC void S_force_ident(pTHX_ const char *s, int kind)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FORCE_IDENT \
assert(s)
+STATIC void S_force_next(pTHX_ I32 type);
STATIC char* S_force_strict_version(pTHX_ char *s)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_FORCE_STRICT_VERSION \
assert(s)
+STATIC char* S_force_version(pTHX_ char *s, int guessing)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FORCE_VERSION \
+ assert(s)
+
STATIC char* S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack, int allow_tick)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_FORCE_WORD \
assert(start)
-STATIC SV* S_tokeq(pTHX_ SV *sv)
+STATIC void S_incline(pTHX_ const char *s)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_TOKEQ \
- assert(sv)
+#define PERL_ARGS_ASSERT_INCLINE \
+ assert(s)
+
+STATIC int S_intuit_method(pTHX_ char *s, GV *gv, CV *cv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INTUIT_METHOD \
+ assert(s)
+
+STATIC int S_intuit_more(pTHX_ char *s)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_INTUIT_MORE \
+ assert(s)
+
+STATIC I32 S_lop(pTHX_ I32 f, int x, char *s)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_LOP \
+ assert(s)
+
+STATIC void S_missingterm(pTHX_ char *s)
+ __attribute__noreturn__;
+
+STATIC SV* S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, STRLEN keylen, SV *sv, SV *pv, const char *type, STRLEN typelen)
+ __attribute__nonnull__(pTHX_3)
+ __attribute__nonnull__(pTHX_5);
+#define PERL_ARGS_ASSERT_NEW_CONSTANT \
+ assert(key); assert(sv)
+
+STATIC void S_no_op(pTHX_ const char *const what, char *s)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_NO_OP \
+ assert(what)
STATIC void S_readpipe_override(pTHX);
STATIC char* S_scan_const(pTHX_ char *start)
@@ -5892,76 +6635,12 @@ STATIC char* S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_pa
#define PERL_ARGS_ASSERT_SCAN_WORD \
assert(s); assert(dest); assert(slp)
-STATIC void S_update_debugger_info(pTHX_ SV *orig_sv, const char *const buf, STRLEN len);
STATIC char* S_skipspace(pTHX_ char *s)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_SKIPSPACE \
assert(s)
-STATIC char* S_swallow_bom(pTHX_ U8 *s)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SWALLOW_BOM \
- assert(s)
-
-#ifndef PERL_NO_UTF16_FILTER
-STATIC I32 S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_UTF16_TEXTFILTER \
- assert(sv)
-
-STATIC U8* S_add_utf16_textfilter(pTHX_ U8 *const s, bool reversed)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_ADD_UTF16_TEXTFILTER \
- assert(s)
-
-#endif
-STATIC void S_checkcomma(pTHX_ const char *s, const char *name, const char *what)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_CHECKCOMMA \
- assert(s); assert(name); assert(what)
-
-STATIC bool S_feature_is_enabled(pTHX_ const char *const name, STRLEN namelen)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FEATURE_IS_ENABLED \
- assert(name)
-
-STATIC void S_force_ident(pTHX_ const char *s, int kind)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FORCE_IDENT \
- assert(s)
-
-STATIC void S_incline(pTHX_ const char *s)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_INCLINE \
- assert(s)
-
-STATIC int S_intuit_method(pTHX_ char *s, GV *gv, CV *cv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_INTUIT_METHOD \
- assert(s)
-
-STATIC int S_intuit_more(pTHX_ char *s)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_INTUIT_MORE \
- assert(s)
-
-STATIC I32 S_lop(pTHX_ I32 f, int x, char *s)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_LOP \
- assert(s)
-
-STATIC void S_missingterm(pTHX_ char *s)
- __attribute__noreturn__;
-
-STATIC void S_no_op(pTHX_ const char *const what, char *s)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_NO_OP \
- assert(what)
-
STATIC I32 S_sublex_done(pTHX)
__attribute__warn_unused_result__;
@@ -5971,17 +6650,11 @@ STATIC I32 S_sublex_push(pTHX)
STATIC I32 S_sublex_start(pTHX)
__attribute__warn_unused_result__;
-STATIC char * S_filter_gets(pTHX_ SV *sv, STRLEN append)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FILTER_GETS \
- assert(sv)
-
-STATIC HV * S_find_in_my_stash(pTHX_ const char *pkgname, STRLEN len)
+STATIC char* S_swallow_bom(pTHX_ U8 *s)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FIND_IN_MY_STASH \
- assert(pkgname)
+#define PERL_ARGS_ASSERT_SWALLOW_BOM \
+ assert(s)
STATIC char * S_tokenize_use(pTHX_ int is_use, char *s)
__attribute__warn_unused_result__
@@ -5989,89 +6662,46 @@ STATIC char * S_tokenize_use(pTHX_ int is_use, char *s)
#define PERL_ARGS_ASSERT_TOKENIZE_USE \
assert(s)
-STATIC SV* S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, STRLEN keylen, SV *sv, SV *pv, const char *type, STRLEN typelen)
- __attribute__nonnull__(pTHX_3)
- __attribute__nonnull__(pTHX_5);
-#define PERL_ARGS_ASSERT_NEW_CONSTANT \
- assert(key); assert(sv)
-
-STATIC int S_deprecate_commaless_var_list(pTHX);
-STATIC int S_ao(pTHX_ int toketype);
-# if defined(PERL_CR_FILTER)
-STATIC I32 S_cr_textfilter(pTHX_ int idx, SV *sv, int maxlen);
-STATIC void S_strip_return(pTHX_ SV *sv)
+STATIC SV* S_tokeq(pTHX_ SV *sv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_STRIP_RETURN \
+#define PERL_ARGS_ASSERT_TOKEQ \
assert(sv)
-# endif
-# if defined(DEBUGGING)
-STATIC int S_tokereport(pTHX_ I32 rv, const YYSTYPE* lvalp)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_TOKEREPORT \
- assert(lvalp)
+STATIC void S_update_debugger_info(pTHX_ SV *orig_sv, const char *const buf, STRLEN len);
+STATIC int S_yywarn(pTHX_ const char *const s)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_YYWARN \
+ assert(s)
-STATIC void S_printbuf(pTHX_ const char *const fmt, const char *const s)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PRINTBUF \
- assert(fmt); assert(s)
+# if defined(PERL_MAD)
+STATIC void S_curmad(pTHX_ char slot, SV *sv);
+STATIC char* S_skipspace0(pTHX_ char *s)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SKIPSPACE0 \
+ assert(s)
+
+STATIC char* S_skipspace1(pTHX_ char *s)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SKIPSPACE1 \
+ assert(s)
+STATIC char* S_skipspace2(pTHX_ char *s, SV **sv)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SKIPSPACE2 \
+ assert(s)
+
+STATIC void S_start_force(pTHX_ int where);
# endif
#endif
-
-#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
+#if defined(PERL_IN_UNIVERSAL_C)
STATIC bool S_isa_lookup(pTHX_ HV *stash, const char * const name)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
#define PERL_ARGS_ASSERT_ISA_LOOKUP \
assert(stash); assert(name)
-STATIC HV * S_get_isa_hash(pTHX_ HV *const stash)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_ISA_HASH \
- assert(stash)
-
#endif
-
-#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
-#if defined(USE_LOCALE_NUMERIC) || defined(USE_LOCALE_COLLATE)
-STATIC char* S_stdize_locale(pTHX_ char* locs)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_STDIZE_LOCALE \
- assert(locs)
-
-#endif
-#endif
-
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-STATIC const COP* S_closest_cop(pTHX_ const COP *cop, const OP *o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_CLOSEST_COP \
- assert(cop)
-
-STATIC SV* S_mess_alloc(pTHX);
-STATIC SV * S_vdie_croak_common(pTHX_ const char *pat, va_list *args);
-STATIC bool S_vdie_common(pTHX_ SV *message, bool warn);
-STATIC char * S_write_no_mem(pTHX)
- __attribute__noreturn__;
-
-#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
-STATIC void S_mem_log_common(enum mem_log_type mlt, const UV n, const UV typesize, const char *type_name, const SV *sv, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname)
- __attribute__nonnull__(4)
- __attribute__nonnull__(8)
- __attribute__nonnull__(10);
-#define PERL_ARGS_ASSERT_MEM_LOG_COMMON \
- assert(type_name); assert(filename); assert(funcname)
-
-#endif
-#endif
-
-#if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
-STATIC NV S_mulexp10(NV value, I32 exponent);
-#endif
-
-#if defined(PERL_IN_UTF8_C) || defined(PERL_DECL_PROT)
+#if defined(PERL_IN_UTF8_C)
STATIC STRLEN S_is_utf8_char_slow(const U8 *s, const STRLEN len)
__attribute__warn_unused_result__
__attribute__nonnull__(1);
@@ -6093,748 +6723,497 @@ STATIC SV* S_swash_get(pTHX_ SV* swash, UV start, UV span)
assert(swash)
#endif
-
-START_EXTERN_C
-
-PERL_CALLCONV void Perl_sv_setsv_flags(pTHX_ SV *dstr, SV *sstr, const I32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_SETSV_FLAGS \
- assert(dstr)
-
-PERL_CALLCONV void Perl_sv_catpvn_flags(pTHX_ SV *const dstr, const char *sstr, const STRLEN len, const I32 flags)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATPVN_FLAGS \
- assert(dstr); assert(sstr)
-
-PERL_CALLCONV void Perl_sv_catsv_flags(pTHX_ SV *const dsv, SV *const ssv, const I32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_CATSV_FLAGS \
- assert(dsv)
-
-/* PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade_flags(pTHX_ SV *const sv, const I32 flags)
- __attribute__nonnull__(pTHX_1); */
-
-PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV *const sv, const I32 flags, STRLEN extra)
+#if defined(PERL_IN_UTIL_C)
+STATIC bool S_ckwarn_common(pTHX_ U32 w);
+STATIC const COP* S_closest_cop(pTHX_ const COP *cop, const OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW \
- assert(sv)
+#define PERL_ARGS_ASSERT_CLOSEST_COP \
+ assert(cop)
-PERL_CALLCONV char* Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
+STATIC bool S_invoke_exception_hook(pTHX_ SV *ex, bool warn);
+STATIC SV* S_mess_alloc(pTHX);
+STATIC SV * S_with_queued_errors(pTHX_ SV *ex)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS \
- assert(sv)
-
-PERL_CALLCONV void Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_COPYPV \
- assert(dsv); assert(ssv)
+#define PERL_ARGS_ASSERT_WITH_QUEUED_ERRORS \
+ assert(ex)
-PERL_CALLCONV char* Perl_my_atof2(pTHX_ const char *s, NV* value)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MY_ATOF2 \
- assert(s); assert(value)
+STATIC char * S_write_no_mem(pTHX)
+ __attribute__noreturn__;
-PERL_CALLCONV int Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
-PERL_CALLCONV int Perl_my_dirfd(pTHX_ DIR* dir);
-#ifdef PERL_OLD_COPY_ON_WRITE
-PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dstr, SV* sstr)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_SETSV_COW \
- assert(sstr)
+# if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
+STATIC void S_mem_log_common(enum mem_log_type mlt, const UV n, const UV typesize, const char *type_name, const SV *sv, Malloc_t oldalloc, Malloc_t newalloc, const char *filename, const int linenumber, const char *funcname)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(8)
+ __attribute__nonnull__(10);
+#define PERL_ARGS_ASSERT_MEM_LOG_COMMON \
+ assert(type_name); assert(filename); assert(funcname)
+# endif
#endif
-
-PERL_CALLCONV const char * Perl_PerlIO_context_layers(pTHX_ const char *mode);
-
-#if defined(USE_PERLIO) && !defined(USE_SFIO)
-PERL_CALLCONV int Perl_PerlIO_close(pTHX_ PerlIO *f);
-PERL_CALLCONV int Perl_PerlIO_fill(pTHX_ PerlIO *f);
-PERL_CALLCONV int Perl_PerlIO_fileno(pTHX_ PerlIO *f);
-PERL_CALLCONV int Perl_PerlIO_eof(pTHX_ PerlIO *f);
-PERL_CALLCONV int Perl_PerlIO_error(pTHX_ PerlIO *f);
-PERL_CALLCONV int Perl_PerlIO_flush(pTHX_ PerlIO *f);
-PERL_CALLCONV void Perl_PerlIO_clearerr(pTHX_ PerlIO *f);
-PERL_CALLCONV void Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, int cnt);
-PERL_CALLCONV void Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, int cnt);
-PERL_CALLCONV void Perl_PerlIO_setlinebuf(pTHX_ PerlIO *f);
-PERL_CALLCONV SSize_t Perl_PerlIO_read(pTHX_ PerlIO *f, void *vbuf, Size_t count)
+#if defined(PERL_MAD)
+PERL_CALLCONV void Perl_addmad(pTHX_ MADPROP* tm, MADPROP** root, char slot);
+PERL_CALLCONV void Perl_append_madprops(pTHX_ MADPROP* tm, OP* o, char slot);
+PERL_CALLCONV void Perl_do_op_xmldump(pTHX_ I32 level, PerlIO *file, const OP *o)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PERLIO_READ \
- assert(vbuf)
+#define PERL_ARGS_ASSERT_DO_OP_XMLDUMP \
+ assert(file)
-PERL_CALLCONV SSize_t Perl_PerlIO_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count)
+PERL_CALLCONV void Perl_do_pmop_xmldump(pTHX_ I32 level, PerlIO *file, const PMOP *pm)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PERLIO_WRITE \
- assert(vbuf)
+#define PERL_ARGS_ASSERT_DO_PMOP_XMLDUMP \
+ assert(file)
-PERL_CALLCONV SSize_t Perl_PerlIO_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count)
+PERL_CALLCONV void Perl_mad_free(pTHX_ MADPROP* mp);
+PERL_CALLCONV int Perl_madlex(pTHX);
+PERL_CALLCONV int Perl_madparse(pTHX_ int gramtype);
+PERL_CALLCONV OP* Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
+PERL_CALLCONV MADPROP* Perl_newMADPROP(pTHX_ char key, char type, void* val, I32 vlen);
+PERL_CALLCONV MADPROP* Perl_newMADsv(pTHX_ char key, SV* sv)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PERLIO_UNREAD \
- assert(vbuf)
-
-PERL_CALLCONV Off_t Perl_PerlIO_tell(pTHX_ PerlIO *f);
-PERL_CALLCONV int Perl_PerlIO_seek(pTHX_ PerlIO *f, Off_t offset, int whence);
-
-PERL_CALLCONV STDCHAR * Perl_PerlIO_get_base(pTHX_ PerlIO *f);
-PERL_CALLCONV STDCHAR * Perl_PerlIO_get_ptr(pTHX_ PerlIO *f);
-PERL_CALLCONV int Perl_PerlIO_get_bufsiz(pTHX_ PerlIO *f)
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV int Perl_PerlIO_get_cnt(pTHX_ PerlIO *f)
- __attribute__warn_unused_result__;
-
-
-PERL_CALLCONV PerlIO * Perl_PerlIO_stdin(pTHX)
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV PerlIO * Perl_PerlIO_stdout(pTHX)
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV PerlIO * Perl_PerlIO_stderr(pTHX)
- __attribute__warn_unused_result__;
-
-#endif /* PERLIO_LAYERS */
-
-PERL_CALLCONV void Perl_deb_stack_all(pTHX);
-#if defined(PERL_IN_DEB_C) || defined(PERL_DECL_PROT)
-STATIC void S_deb_stack_n(pTHX_ SV** stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DEB_STACK_N \
- assert(stack_base)
-
-#endif
-
-PERL_CALLCONV PADLIST* Perl_pad_new(pTHX_ int flags)
- __attribute__malloc__
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV void Perl_pad_undef(pTHX_ CV* cv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PAD_UNDEF \
- assert(cv)
+#define PERL_ARGS_ASSERT_NEWMADSV \
+ assert(sv)
-PERL_CALLCONV PADOFFSET Perl_pad_add_name(pTHX_ const char *name, const STRLEN len, const U32 flags, HV *typestash, HV *ourstash)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PAD_ADD_NAME \
- assert(name)
+PERL_CALLCONV OP * Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
+ __attribute__noreturn__;
-PERL_CALLCONV PADOFFSET Perl_pad_add_anon(pTHX_ SV* sv, OPCODE op_type)
+PERL_CALLCONV TOKEN* Perl_newTOKEN(pTHX_ I32 optype, YYSTYPE lval, MADPROP* madprop);
+PERL_CALLCONV void Perl_op_getmad(pTHX_ OP* from, OP* o, char slot);
+PERL_CALLCONV void Perl_op_getmad_weak(pTHX_ OP* from, OP* o, char slot);
+PERL_CALLCONV void Perl_op_xmldump(pTHX_ const OP *o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PAD_ADD_ANON \
- assert(sv)
+#define PERL_ARGS_ASSERT_OP_XMLDUMP \
+ assert(o)
-#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-STATIC void S_pad_check_dup(pTHX_ SV *name, const U32 flags, const HV *ourstash)
+PERL_CALLCONV OP* Perl_package(pTHX_ OP* o)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PAD_CHECK_DUP \
- assert(name)
-
-#endif
-#ifdef DEBUGGING
-PERL_CALLCONV void Perl_pad_setsv(pTHX_ PADOFFSET po, SV* sv)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_PAD_SETSV \
- assert(sv)
+#define PERL_ARGS_ASSERT_PACKAGE \
+ assert(o)
-#endif
-PERL_CALLCONV void Perl_pad_block_start(pTHX_ int full);
-PERL_CALLCONV void Perl_pad_tidy(pTHX_ padtidy_type type);
-PERL_CALLCONV void Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_DUMP_PAD \
- assert(file)
+PERL_CALLCONV void Perl_pad_peg(const char* s)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_PAD_PEG \
+ assert(s)
-PERL_CALLCONV void Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv)
+PERL_CALLCONV void Perl_pmop_xmldump(pTHX_ const PMOP* pm);
+PERL_CALLCONV void Perl_prepend_madprops(pTHX_ MADPROP* mp, OP* o, char slot);
+PERL_CALLCONV char* Perl_sv_catxmlpv(pTHX_ SV *dsv, const char *pv, int utf8)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_PAD_FIXUP_INNER_ANONS \
- assert(padlist); assert(old_cv); assert(new_cv)
-
-
-PERL_CALLCONV void Perl_pad_push(pTHX_ PADLIST *padlist, int depth)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PAD_PUSH \
- assert(padlist)
-
-PERL_CALLCONV HV* Perl_pad_compname_type(pTHX_ const PADOFFSET po)
- __attribute__warn_unused_result__;
-
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_CATXMLPV \
+ assert(dsv); assert(pv)
-#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-STATIC PADOFFSET S_pad_findlex(pTHX_ const char *name, const CV* cv, U32 seq, int warn, SV** out_capture, SV** out_name_sv, int *out_flags)
+PERL_CALLCONV char* Perl_sv_catxmlpvn(pTHX_ SV *dsv, const char *pv, STRLEN len, int utf8)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_6)
- __attribute__nonnull__(pTHX_7);
-#define PERL_ARGS_ASSERT_PAD_FINDLEX \
- assert(name); assert(cv); assert(out_name_sv); assert(out_flags)
-
-STATIC PADOFFSET S_pad_add_name_sv(pTHX_ SV *namesv, const U32 flags, HV *typestash, HV *ourstash)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_PAD_ADD_NAME_SV \
- assert(namesv)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_SV_CATXMLPVN \
+ assert(dsv); assert(pv)
-# if defined(DEBUGGING)
-STATIC void S_cv_dump(pTHX_ const CV *cv, const char *title)
+PERL_CALLCONV char* Perl_sv_catxmlsv(pTHX_ SV *dsv, SV *ssv)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_CV_DUMP \
- assert(cv); assert(title)
-
-# endif
-#endif
-PERL_CALLCONV CV* Perl_find_runcv(pTHX_ U32 *db_seqp)
- __attribute__warn_unused_result__;
-
-PERL_CALLCONV void Perl_free_tied_hv_pool(pTHX);
-#if defined(DEBUGGING)
-PERL_CALLCONV int Perl_get_debug_opts(pTHX_ const char **s, bool givehelp)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GET_DEBUG_OPTS \
- assert(s)
+#define PERL_ARGS_ASSERT_SV_CATXMLSV \
+ assert(dsv); assert(ssv)
-#endif
-PERL_CALLCONV void Perl_save_set_svflags(pTHX_ SV *sv, U32 mask, U32 val)
+PERL_CALLCONV char* Perl_sv_xmlpeek(pTHX_ SV* sv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SAVE_SET_SVFLAGS \
+#define PERL_ARGS_ASSERT_SV_XMLPEEK \
assert(sv)
-#ifdef DEBUGGING
-PERL_CALLCONV void Perl_hv_assert(pTHX_ HV *hv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_ASSERT \
- assert(hv)
-
-#endif
-
-PERL_CALLCONV SV* Perl_hv_scalar(pTHX_ HV *hv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_SCALAR \
- assert(hv)
-
-PERL_CALLCONV I32* Perl_hv_riter_p(pTHX_ HV *hv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_RITER_P \
- assert(hv)
-
-PERL_CALLCONV HE** Perl_hv_eiter_p(pTHX_ HV *hv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_EITER_P \
- assert(hv)
-
-PERL_CALLCONV void Perl_hv_riter_set(pTHX_ HV *hv, I32 riter)
+PERL_CALLCONV void Perl_token_free(pTHX_ TOKEN *tk)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_RITER_SET \
- assert(hv)
+#define PERL_ARGS_ASSERT_TOKEN_FREE \
+ assert(tk)
-PERL_CALLCONV void Perl_hv_eiter_set(pTHX_ HV *hv, HE *eiter)
+PERL_CALLCONV void Perl_token_getmad(pTHX_ TOKEN *tk, OP *o, char slot)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_EITER_SET \
- assert(hv)
+#define PERL_ARGS_ASSERT_TOKEN_GETMAD \
+ assert(tk)
-PERL_CALLCONV void Perl_hv_name_set(pTHX_ HV *hv, const char *name, U32 len, U32 flags)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_NAME_SET \
- assert(hv)
+PERL_CALLCONV OP * Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg)
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_UTILIZE \
+ assert(idop)
-PERL_CALLCONV AV** Perl_hv_backreferences_p(pTHX_ HV *hv)
+PERL_CALLCONV void Perl_xmldump_all(pTHX);
+PERL_CALLCONV void Perl_xmldump_all_perl(pTHX_ bool justperl);
+PERL_CALLCONV void Perl_xmldump_eval(pTHX);
+PERL_CALLCONV void Perl_xmldump_form(pTHX_ const GV* gv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_BACKREFERENCES_P \
- assert(hv)
+#define PERL_ARGS_ASSERT_XMLDUMP_FORM \
+ assert(gv)
-#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-PERL_CALLCONV void Perl_hv_kill_backrefs(pTHX_ HV *hv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_KILL_BACKREFS \
- assert(hv)
+PERL_CALLCONV void Perl_xmldump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
+ __attribute__format__(__printf__,pTHX_3,pTHX_4)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_XMLDUMP_INDENT \
+ assert(file); assert(pat)
-#endif
-PERL_CALLCONV void Perl_hv_clear_placeholders(pTHX_ HV *hv)
+PERL_CALLCONV void Perl_xmldump_packsubs(pTHX_ const HV* stash)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS \
- assert(hv)
+#define PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS \
+ assert(stash)
-PERL_CALLCONV I32* Perl_hv_placeholders_p(pTHX_ HV *hv)
- __attribute__warn_unused_result__
+PERL_CALLCONV void Perl_xmldump_packsubs_perl(pTHX_ const HV* stash, bool justperl)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_P \
- assert(hv)
+#define PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS_PERL \
+ assert(stash)
-PERL_CALLCONV I32 Perl_hv_placeholders_get(pTHX_ const HV *hv)
- __attribute__warn_unused_result__
+PERL_CALLCONV void Perl_xmldump_sub(pTHX_ const GV* gv)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_GET \
- assert(hv)
+#define PERL_ARGS_ASSERT_XMLDUMP_SUB \
+ assert(gv)
-PERL_CALLCONV void Perl_hv_placeholders_set(pTHX_ HV *hv, I32 ph)
+PERL_CALLCONV void Perl_xmldump_sub_perl(pTHX_ const GV* gv, bool justperl)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_HV_PLACEHOLDERS_SET \
- assert(hv)
-
-
-PERL_CALLCONV SV* Perl_magic_scalarpack(pTHX_ HV *hv, MAGIC *mg)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MAGIC_SCALARPACK \
- assert(hv); assert(mg)
-
-
-#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-STATIC SV * S_find_hash_subscript(pTHX_ const HV *const hv, const SV *const val)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_FIND_HASH_SUBSCRIPT \
- assert(val)
+#define PERL_ARGS_ASSERT_XMLDUMP_SUB_PERL \
+ assert(gv)
-STATIC I32 S_find_array_subscript(pTHX_ const AV *const av, const SV *const val)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT \
- assert(val)
+PERL_CALLCONV void Perl_xmldump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_XMLDUMP_VINDENT \
+ assert(file); assert(pat)
-STATIC SV* S_find_uninit_var(pTHX_ const OP *const obase, const SV *const uninit_sv, bool top);
#endif
-
-#ifdef PERL_NEED_MY_HTOLE16
-PERL_CALLCONV U16 Perl_my_htole16(U16 n);
+#if defined(PERL_NEED_MY_BETOH16)
+PERL_CALLCONV U16 Perl_my_betoh16(U16 n);
#endif
-#ifdef PERL_NEED_MY_LETOH16
-PERL_CALLCONV U16 Perl_my_letoh16(U16 n);
+#if defined(PERL_NEED_MY_BETOH32)
+PERL_CALLCONV U32 Perl_my_betoh32(U32 n);
#endif
-#ifdef PERL_NEED_MY_HTOBE16
-PERL_CALLCONV U16 Perl_my_htobe16(U16 n);
+#if defined(PERL_NEED_MY_BETOH64)
+PERL_CALLCONV U64 Perl_my_betoh64(U64 n);
#endif
-#ifdef PERL_NEED_MY_BETOH16
-PERL_CALLCONV U16 Perl_my_betoh16(U16 n);
+#if defined(PERL_NEED_MY_BETOHI)
+PERL_CALLCONV int Perl_my_betohi(int n);
#endif
-#ifdef PERL_NEED_MY_HTOLE32
-PERL_CALLCONV U32 Perl_my_htole32(U32 n);
+#if defined(PERL_NEED_MY_BETOHL)
+PERL_CALLCONV long Perl_my_betohl(long n);
#endif
-#ifdef PERL_NEED_MY_LETOH32
-PERL_CALLCONV U32 Perl_my_letoh32(U32 n);
+#if defined(PERL_NEED_MY_BETOHS)
+PERL_CALLCONV short Perl_my_betohs(short n);
+#endif
+#if defined(PERL_NEED_MY_HTOBE16)
+PERL_CALLCONV U16 Perl_my_htobe16(U16 n);
#endif
-#ifdef PERL_NEED_MY_HTOBE32
+#if defined(PERL_NEED_MY_HTOBE32)
PERL_CALLCONV U32 Perl_my_htobe32(U32 n);
#endif
-#ifdef PERL_NEED_MY_BETOH32
-PERL_CALLCONV U32 Perl_my_betoh32(U32 n);
+#if defined(PERL_NEED_MY_HTOBE64)
+PERL_CALLCONV U64 Perl_my_htobe64(U64 n);
#endif
-#ifdef PERL_NEED_MY_HTOLE64
-PERL_CALLCONV U64 Perl_my_htole64(U64 n);
+#if defined(PERL_NEED_MY_HTOBEI)
+PERL_CALLCONV int Perl_my_htobei(int n);
#endif
-#ifdef PERL_NEED_MY_LETOH64
-PERL_CALLCONV U64 Perl_my_letoh64(U64 n);
+#if defined(PERL_NEED_MY_HTOBEL)
+PERL_CALLCONV long Perl_my_htobel(long n);
#endif
-#ifdef PERL_NEED_MY_HTOBE64
-PERL_CALLCONV U64 Perl_my_htobe64(U64 n);
+#if defined(PERL_NEED_MY_HTOBES)
+PERL_CALLCONV short Perl_my_htobes(short n);
#endif
-#ifdef PERL_NEED_MY_BETOH64
-PERL_CALLCONV U64 Perl_my_betoh64(U64 n);
+#if defined(PERL_NEED_MY_HTOLE16)
+PERL_CALLCONV U16 Perl_my_htole16(U16 n);
#endif
-
-#ifdef PERL_NEED_MY_HTOLES
-PERL_CALLCONV short Perl_my_htoles(short n);
+#if defined(PERL_NEED_MY_HTOLE32)
+PERL_CALLCONV U32 Perl_my_htole32(U32 n);
#endif
-#ifdef PERL_NEED_MY_LETOHS
-PERL_CALLCONV short Perl_my_letohs(short n);
+#if defined(PERL_NEED_MY_HTOLE64)
+PERL_CALLCONV U64 Perl_my_htole64(U64 n);
#endif
-#ifdef PERL_NEED_MY_HTOBES
-PERL_CALLCONV short Perl_my_htobes(short n);
+#if defined(PERL_NEED_MY_HTOLEI)
+PERL_CALLCONV int Perl_my_htolei(int n);
#endif
-#ifdef PERL_NEED_MY_BETOHS
-PERL_CALLCONV short Perl_my_betohs(short n);
+#if defined(PERL_NEED_MY_HTOLEL)
+PERL_CALLCONV long Perl_my_htolel(long n);
#endif
-#ifdef PERL_NEED_MY_HTOLEI
-PERL_CALLCONV int Perl_my_htolei(int n);
+#if defined(PERL_NEED_MY_HTOLES)
+PERL_CALLCONV short Perl_my_htoles(short n);
#endif
-#ifdef PERL_NEED_MY_LETOHI
-PERL_CALLCONV int Perl_my_letohi(int n);
+#if defined(PERL_NEED_MY_LETOH16)
+PERL_CALLCONV U16 Perl_my_letoh16(U16 n);
#endif
-#ifdef PERL_NEED_MY_HTOBEI
-PERL_CALLCONV int Perl_my_htobei(int n);
+#if defined(PERL_NEED_MY_LETOH32)
+PERL_CALLCONV U32 Perl_my_letoh32(U32 n);
#endif
-#ifdef PERL_NEED_MY_BETOHI
-PERL_CALLCONV int Perl_my_betohi(int n);
+#if defined(PERL_NEED_MY_LETOH64)
+PERL_CALLCONV U64 Perl_my_letoh64(U64 n);
#endif
-#ifdef PERL_NEED_MY_HTOLEL
-PERL_CALLCONV long Perl_my_htolel(long n);
+#if defined(PERL_NEED_MY_LETOHI)
+PERL_CALLCONV int Perl_my_letohi(int n);
#endif
-#ifdef PERL_NEED_MY_LETOHL
+#if defined(PERL_NEED_MY_LETOHL)
PERL_CALLCONV long Perl_my_letohl(long n);
#endif
-#ifdef PERL_NEED_MY_HTOBEL
-PERL_CALLCONV long Perl_my_htobel(long n);
-#endif
-#ifdef PERL_NEED_MY_BETOHL
-PERL_CALLCONV long Perl_my_betohl(long n);
+#if defined(PERL_NEED_MY_LETOHS)
+PERL_CALLCONV short Perl_my_letohs(short n);
#endif
-
-PERL_CALLCONV void Perl_my_swabn(void* ptr, int n)
- __attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_MY_SWABN \
- assert(ptr)
-
-
-PERL_CALLCONV GV* Perl_gv_fetchpvn_flags(pTHX_ const char* name, STRLEN len, I32 flags, const svtype sv_type)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_FETCHPVN_FLAGS \
- assert(name)
-
-PERL_CALLCONV GV* Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype sv_type)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_GV_FETCHSV \
- assert(name)
-
-PERL_CALLCONV bool Perl_is_gv_magical_sv(pTHX_ SV *const name_sv, U32 flags)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_IS_GV_MAGICAL_SV \
- assert(name_sv)
-
-
-PERL_CALLCONV bool Perl_stashpv_hvname_match(pTHX_ const COP *c, const HV *hv)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
+#if defined(PERL_OLD_COPY_ON_WRITE)
+PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dstr, SV* sstr)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_STASHPV_HVNAME_MATCH \
- assert(c); assert(hv)
+#define PERL_ARGS_ASSERT_SV_SETSV_COW \
+ assert(sstr)
+#endif
+#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
+STATIC void S_pidgone(pTHX_ Pid_t pid, int status);
+#endif
+#if defined(PL_OP_SLAB_ALLOC)
+PERL_CALLCONV void* Perl_Slab_Alloc(pTHX_ size_t sz)
+ __attribute__malloc__
+ __attribute__warn_unused_result__;
-#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
-PERL_CALLCONV void Perl_dump_sv_child(pTHX_ SV *sv)
+PERL_CALLCONV void Perl_Slab_Free(pTHX_ void *op)
__attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_DUMP_SV_CHILD \
- assert(sv)
+#define PERL_ARGS_ASSERT_SLAB_FREE \
+ assert(op)
#endif
+#if defined(UNLINK_ALL_VERSIONS)
+PERL_CALLCONV I32 Perl_unlnk(pTHX_ const char* f)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_UNLNK \
+ assert(f)
-#ifdef PERL_DONT_CREATE_GVSV
-/* PERL_CALLCONV GV* Perl_gv_SVadd(pTHX_ GV *gv); */
-#endif
-#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
-STATIC bool S_ckwarn_common(pTHX_ U32 w);
#endif
-PERL_CALLCONV bool Perl_ckwarn(pTHX_ U32 w);
-PERL_CALLCONV bool Perl_ckwarn_d(pTHX_ U32 w);
-PERL_CALLCONV STRLEN * Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const char *const bits, STRLEN size)
- __attribute__malloc__
+#if defined(USE_ITHREADS)
+PERL_CALLCONV void* Perl_any_dup(pTHX_ void* v, const PerlInterpreter* proto_perl)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD \
- assert(bits)
-
-
-PERL_CALLCONV void Perl_offer_nice_chunk(pTHX_ void *const chunk, const U32 chunk_size)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OFFER_NICE_CHUNK \
- assert(chunk)
+#define PERL_ARGS_ASSERT_ANY_DUP \
+ assert(proto_perl)
+PERL_CALLCONV void Perl_clone_params_del(CLONE_PARAMS *param)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_CLONE_PARAMS_DEL \
+ assert(param)
-#ifndef SPRINTF_RETURNS_STRLEN
-PERL_CALLCONV int Perl_my_sprintf(char *buffer, const char *pat, ...)
+PERL_CALLCONV CLONE_PARAMS * Perl_clone_params_new(PerlInterpreter *const from, PerlInterpreter *const to)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_MY_SPRINTF \
- assert(buffer); assert(pat)
+#define PERL_ARGS_ASSERT_CLONE_PARAMS_NEW \
+ assert(from); assert(to)
-#endif
+PERL_CALLCONV PERL_CONTEXT* Perl_cx_dup(pTHX_ PERL_CONTEXT* cx, I32 ix, I32 max, CLONE_PARAMS* param)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_4);
+#define PERL_ARGS_ASSERT_CX_DUP \
+ assert(param)
-PERL_CALLCONV int Perl_my_snprintf(char *buffer, const Size_t len, const char *format, ...)
- __attribute__format__(__printf__,3,4)
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_MY_SNPRINTF \
- assert(buffer); assert(format)
+PERL_CALLCONV DIR* Perl_dirp_dup(pTHX_ DIR *const dp, CLONE_PARAMS *const param)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_DIRP_DUP \
+ assert(param)
-PERL_CALLCONV int Perl_my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap)
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_MY_VSNPRINTF \
- assert(buffer); assert(format)
+PERL_CALLCONV PerlIO* Perl_fp_dup(pTHX_ PerlIO *const fp, const char type, CLONE_PARAMS *const param)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_FP_DUP \
+ assert(param)
+PERL_CALLCONV GP* Perl_gp_dup(pTHX_ GP *const gp, CLONE_PARAMS *const param)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_GP_DUP \
+ assert(param)
-PERL_CALLCONV void Perl_my_clearenv(pTHX);
+PERL_CALLCONV HE* Perl_he_dup(pTHX_ const HE* e, bool shared, CLONE_PARAMS* param)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_HE_DUP \
+ assert(param)
-#ifdef PERL_IMPLICIT_CONTEXT
-#ifdef PERL_GLOBAL_STRUCT_PRIVATE
-PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ const char *my_cxt_key, size_t size)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MY_CXT_INIT \
- assert(my_cxt_key)
+PERL_CALLCONV HEK* Perl_hek_dup(pTHX_ HEK* e, CLONE_PARAMS* param)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_HEK_DUP \
+ assert(param)
-PERL_CALLCONV int Perl_my_cxt_index(pTHX_ const char *my_cxt_key)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MY_CXT_INDEX \
- assert(my_cxt_key)
+PERL_CALLCONV MAGIC* Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *const param)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MG_DUP \
+ assert(param)
-#else
-PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ int *index, size_t size)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MY_CXT_INIT \
- assert(index)
+PERL_CALLCONV struct mro_meta* Perl_mro_meta_dup(pTHX_ struct mro_meta* smeta, CLONE_PARAMS* param)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MRO_META_DUP \
+ assert(smeta); assert(param)
-#endif
-#endif
+PERL_CALLCONV OP* Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_NEWPADOP \
+ assert(sv)
-#ifndef HAS_STRLCAT
-PERL_CALLCONV Size_t Perl_my_strlcat(char *dst, const char *src, Size_t size);
-#endif
+PERL_CALLCONV AV* Perl_padlist_dup(pTHX_ AV *const srcpad, CLONE_PARAMS *const param)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PADLIST_DUP \
+ assert(param)
-#ifndef HAS_STRLCPY
-PERL_CALLCONV Size_t Perl_my_strlcpy(char *dst, const char *src, Size_t size);
-#endif
+PERL_CALLCONV yy_parser* Perl_parser_dup(pTHX_ const yy_parser *const proto, CLONE_PARAMS *const param)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PARSER_DUP \
+ assert(param)
-#ifdef PERL_MAD
-PERL_CALLCONV void Perl_pad_peg(const char* s)
+PERL_CALLCONV PerlInterpreter* perl_clone(PerlInterpreter *proto_perl, UV flags)
__attribute__nonnull__(1);
-#define PERL_ARGS_ASSERT_PAD_PEG \
- assert(s)
+#define PERL_ARGS_ASSERT_PERL_CLONE \
+ assert(proto_perl)
-#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
-STATIC void S_xmldump_attr(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_3,pTHX_4)
+PERL_CALLCONV void Perl_re_dup_guts(pTHX_ const REGEXP *sstr, REGEXP *dstr, CLONE_PARAMS* param)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XMLDUMP_ATTR \
- assert(file); assert(pat)
+#define PERL_ARGS_ASSERT_RE_DUP_GUTS \
+ assert(sstr); assert(dstr); assert(param)
-#endif
-PERL_CALLCONV void Perl_xmldump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
- __attribute__format__(__printf__,pTHX_3,pTHX_4)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XMLDUMP_INDENT \
- assert(file); assert(pat)
+PERL_CALLCONV void* Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS* param)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_REGDUPE_INTERNAL \
+ assert(r); assert(param)
-PERL_CALLCONV void Perl_xmldump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args)
+PERL_CALLCONV void Perl_rvpv_dup(pTHX_ SV *const dstr, const SV *const sstr, CLONE_PARAMS *const param)
+ __attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_XMLDUMP_VINDENT \
- assert(file); assert(pat)
-
-PERL_CALLCONV void Perl_xmldump_all(pTHX);
-PERL_CALLCONV void Perl_xmldump_all_perl(pTHX_ bool justperl);
-PERL_CALLCONV void Perl_xmldump_packsubs(pTHX_ const HV* stash)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS \
- assert(stash)
-
-PERL_CALLCONV void Perl_xmldump_packsubs_perl(pTHX_ const HV* stash, bool justperl)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_PACKSUBS_PERL \
- assert(stash)
-
-PERL_CALLCONV void Perl_xmldump_sub(pTHX_ const GV* gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_SUB \
- assert(gv)
-
-PERL_CALLCONV void Perl_xmldump_sub_perl(pTHX_ const GV* gv, bool justperl)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_SUB_PERL \
- assert(gv)
-
-PERL_CALLCONV void Perl_xmldump_form(pTHX_ const GV* gv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_XMLDUMP_FORM \
- assert(gv)
+#define PERL_ARGS_ASSERT_RVPV_DUP \
+ assert(dstr); assert(sstr); assert(param)
-PERL_CALLCONV void Perl_xmldump_eval(pTHX);
-PERL_CALLCONV char* Perl_sv_catxmlsv(pTHX_ SV *dsv, SV *ssv)
- __attribute__nonnull__(pTHX_1)
+PERL_CALLCONV PERL_SI* Perl_si_dup(pTHX_ PERL_SI* si, CLONE_PARAMS* param)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATXMLSV \
- assert(dsv); assert(ssv)
+#define PERL_ARGS_ASSERT_SI_DUP \
+ assert(param)
-PERL_CALLCONV char* Perl_sv_catxmlpvn(pTHX_ SV *dsv, const char *pv, STRLEN len, int utf8)
+PERL_CALLCONV ANY* Perl_ss_dup(pTHX_ PerlInterpreter* proto_perl, CLONE_PARAMS* param)
+ __attribute__malloc__
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_SV_CATXMLPVN \
- assert(dsv); assert(pv)
-
-PERL_CALLCONV char* Perl_sv_xmlpeek(pTHX_ SV* sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SV_XMLPEEK \
- assert(sv)
-
-PERL_CALLCONV void Perl_do_pmop_xmldump(pTHX_ I32 level, PerlIO *file, const PMOP *pm)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_PMOP_XMLDUMP \
- assert(file)
+#define PERL_ARGS_ASSERT_SS_DUP \
+ assert(proto_perl); assert(param)
-PERL_CALLCONV void Perl_pmop_xmldump(pTHX_ const PMOP* pm);
-PERL_CALLCONV void Perl_do_op_xmldump(pTHX_ I32 level, PerlIO *file, const OP *o)
+PERL_CALLCONV SV* Perl_sv_dup(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_DO_OP_XMLDUMP \
- assert(file)
-
-PERL_CALLCONV void Perl_op_xmldump(pTHX_ const OP *o)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_OP_XMLDUMP \
- assert(o)
-
-
-PERL_CALLCONV TOKEN* Perl_newTOKEN(pTHX_ I32 optype, YYSTYPE lval, MADPROP* madprop);
-PERL_CALLCONV void Perl_token_free(pTHX_ TOKEN *tk)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_TOKEN_FREE \
- assert(tk)
-
-PERL_CALLCONV void Perl_token_getmad(pTHX_ TOKEN *tk, OP *o, char slot)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_TOKEN_GETMAD \
- assert(tk)
+#define PERL_ARGS_ASSERT_SV_DUP \
+ assert(param)
-PERL_CALLCONV void Perl_op_getmad_weak(pTHX_ OP* from, OP* o, char slot);
-PERL_CALLCONV void Perl_op_getmad(pTHX_ OP* from, OP* o, char slot);
-PERL_CALLCONV void Perl_prepend_madprops(pTHX_ MADPROP* mp, OP* o, char slot);
-PERL_CALLCONV void Perl_append_madprops(pTHX_ MADPROP* tm, OP* o, char slot);
-PERL_CALLCONV void Perl_addmad(pTHX_ MADPROP* tm, MADPROP** root, char slot);
-PERL_CALLCONV MADPROP* Perl_newMADsv(pTHX_ char key, SV* sv)
+PERL_CALLCONV SV* Perl_sv_dup_inc(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
+ __attribute__warn_unused_result__
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_NEWMADSV \
- assert(sv)
-
-PERL_CALLCONV MADPROP* Perl_newMADPROP(pTHX_ char key, char type, void* val, I32 vlen);
-PERL_CALLCONV void Perl_mad_free(pTHX_ MADPROP* mp);
-
-# if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
-STATIC char* S_skipspace0(pTHX_ char *s)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SKIPSPACE0 \
- assert(s)
-
-STATIC char* S_skipspace1(pTHX_ char *s)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SKIPSPACE1 \
- assert(s)
-
-STATIC char* S_skipspace2(pTHX_ char *s, SV **sv)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SKIPSPACE2 \
- assert(s)
-
-STATIC void S_start_force(pTHX_ int where);
-STATIC void S_curmad(pTHX_ char slot, SV *sv);
-# endif
-PERL_CALLCONV int Perl_madlex(pTHX);
-PERL_CALLCONV int Perl_madparse(pTHX);
-#endif
-#if !defined(HAS_SIGNBIT)
-PERL_CALLCONV int Perl_signbit(NV f)
- __attribute__pure__;
+#define PERL_ARGS_ASSERT_SV_DUP_INC \
+ assert(param)
#endif
-
-PERL_CALLCONV void Perl_emulate_cop_io(pTHX_ const COP *const c, SV *const sv)
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_EMULATE_COP_IO \
- assert(c); assert(sv)
-
-PERL_CALLCONV REGEXP * Perl_get_re_arg(pTHX_ SV *sv);
-
-PERL_CALLCONV SV* Perl_mro_get_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which)
+#if defined(USE_LOCALE_COLLATE)
+PERL_CALLCONV int Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA \
- assert(smeta); assert(which)
+#define PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM \
+ assert(sv); assert(mg)
-PERL_CALLCONV SV* Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which, SV *const data)
+PERL_CALLCONV char* Perl_mem_collxfrm(pTHX_ const char* s, STRLEN len, STRLEN* xlen)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA \
- assert(smeta); assert(which); assert(data)
-
-PERL_CALLCONV const struct mro_alg * Perl_mro_get_from_name(pTHX_ SV *name)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MRO_GET_FROM_NAME \
- assert(name)
-
-PERL_CALLCONV void Perl_mro_register(pTHX_ const struct mro_alg *mro)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MRO_REGISTER \
- assert(mro)
+#define PERL_ARGS_ASSERT_MEM_COLLXFRM \
+ assert(s); assert(xlen)
-PERL_CALLCONV void Perl_mro_set_mro(pTHX_ struct mro_meta *const meta, SV *const name)
+/* PERL_CALLCONV char* sv_collxfrm(pTHX_ SV *const sv, STRLEN *const nxp)
__attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MRO_SET_MRO \
- assert(meta); assert(name)
-
-PERL_CALLCONV struct mro_meta* Perl_mro_meta_init(pTHX_ HV* stash)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MRO_META_INIT \
- assert(stash)
+ __attribute__nonnull__(pTHX_2); */
-#if defined(USE_ITHREADS)
-PERL_CALLCONV struct mro_meta* Perl_mro_meta_dup(pTHX_ struct mro_meta* smeta, CLONE_PARAMS* param)
+PERL_CALLCONV char* Perl_sv_collxfrm_flags(pTHX_ SV *const sv, STRLEN *const nxp, I32 const flags)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_MRO_META_DUP \
- assert(smeta); assert(param)
+#define PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS \
+ assert(sv); assert(nxp)
#endif
-PERL_CALLCONV AV* Perl_mro_get_linear_isa(pTHX_ HV* stash)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA \
- assert(stash)
+#if defined(USE_PERLIO) && !defined(USE_SFIO)
+PERL_CALLCONV void Perl_PerlIO_clearerr(pTHX_ PerlIO *f);
+PERL_CALLCONV int Perl_PerlIO_close(pTHX_ PerlIO *f);
+PERL_CALLCONV int Perl_PerlIO_eof(pTHX_ PerlIO *f);
+PERL_CALLCONV int Perl_PerlIO_error(pTHX_ PerlIO *f);
+PERL_CALLCONV int Perl_PerlIO_fileno(pTHX_ PerlIO *f);
+PERL_CALLCONV int Perl_PerlIO_fill(pTHX_ PerlIO *f);
+PERL_CALLCONV int Perl_PerlIO_flush(pTHX_ PerlIO *f);
+PERL_CALLCONV STDCHAR * Perl_PerlIO_get_base(pTHX_ PerlIO *f);
+PERL_CALLCONV int Perl_PerlIO_get_bufsiz(pTHX_ PerlIO *f)
+ __attribute__warn_unused_result__;
-#if defined(PERL_IN_MRO_C) || defined(PERL_DECL_PROT)
-STATIC AV* S_mro_get_linear_isa_dfs(pTHX_ HV* stash, U32 level)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MRO_GET_LINEAR_ISA_DFS \
- assert(stash)
+PERL_CALLCONV int Perl_PerlIO_get_cnt(pTHX_ PerlIO *f)
+ __attribute__warn_unused_result__;
-#endif
-PERL_CALLCONV void Perl_mro_isa_changed_in(pTHX_ HV* stash)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MRO_ISA_CHANGED_IN \
- assert(stash)
+PERL_CALLCONV STDCHAR * Perl_PerlIO_get_ptr(pTHX_ PerlIO *f);
+PERL_CALLCONV SSize_t Perl_PerlIO_read(pTHX_ PerlIO *f, void *vbuf, Size_t count)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PERLIO_READ \
+ assert(vbuf)
-PERL_CALLCONV void Perl_mro_method_changed_in(pTHX_ HV* stash)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_MRO_METHOD_CHANGED_IN \
- assert(stash)
+PERL_CALLCONV int Perl_PerlIO_seek(pTHX_ PerlIO *f, Off_t offset, int whence);
+PERL_CALLCONV void Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, int cnt);
+PERL_CALLCONV void Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, int cnt);
+PERL_CALLCONV void Perl_PerlIO_setlinebuf(pTHX_ PerlIO *f);
+PERL_CALLCONV PerlIO * Perl_PerlIO_stderr(pTHX)
+ __attribute__warn_unused_result__;
-PERL_CALLCONV void Perl_boot_core_mro(pTHX);
-PERL_CALLCONV void Perl_sys_init(int* argc, char*** argv)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-#define PERL_ARGS_ASSERT_SYS_INIT \
- assert(argc); assert(argv)
+PERL_CALLCONV PerlIO * Perl_PerlIO_stdin(pTHX)
+ __attribute__warn_unused_result__;
-PERL_CALLCONV void Perl_sys_init3(int* argc, char*** argv, char*** env)
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3);
-#define PERL_ARGS_ASSERT_SYS_INIT3 \
- assert(argc); assert(argv); assert(env)
+PERL_CALLCONV PerlIO * Perl_PerlIO_stdout(pTHX)
+ __attribute__warn_unused_result__;
-PERL_CALLCONV void Perl_sys_term(void);
-PERL_CALLCONV const char * Perl_fetch_cop_label(pTHX_ struct refcounted_he *const chain, STRLEN *len, U32 *flags);
-PERL_CALLCONV struct refcounted_he * Perl_store_cop_label(pTHX_ struct refcounted_he *const chain, const char *label)
+PERL_CALLCONV Off_t Perl_PerlIO_tell(pTHX_ PerlIO *f);
+PERL_CALLCONV SSize_t Perl_PerlIO_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count)
__attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_STORE_COP_LABEL \
- assert(label)
+#define PERL_ARGS_ASSERT_PERLIO_UNREAD \
+ assert(vbuf)
+PERL_CALLCONV SSize_t Perl_PerlIO_write(pTHX_ PerlIO *f, const void *vbuf, Size_t count)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_PERLIO_WRITE \
+ assert(vbuf)
-PERL_CALLCONV int Perl_keyword_plugin_standard(pTHX_ char* keyword_ptr, STRLEN keyword_len, OP** op_ptr)
- __attribute__nonnull__(pTHX_1)
+#endif
+#if defined(USE_REENTRANT_API)
+PERL_CALLCONV void Perl_reentrant_free(pTHX);
+PERL_CALLCONV void Perl_reentrant_init(pTHX);
+PERL_CALLCONV void* Perl_reentrant_retry(const char *f, ...)
+ __attribute__nonnull__(1);
+#define PERL_ARGS_ASSERT_REENTRANT_RETRY \
+ assert(f)
+
+PERL_CALLCONV void Perl_reentrant_size(pTHX);
+#endif
+#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS)
+PERL_CALLCONV int Perl_do_aspawn(pTHX_ SV* really, SV** mark, SV** sp)
+ __attribute__nonnull__(pTHX_2)
__attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_KEYWORD_PLUGIN_STANDARD \
- assert(keyword_ptr); assert(op_ptr)
+#define PERL_ARGS_ASSERT_DO_ASPAWN \
+ assert(mark); assert(sp)
+PERL_CALLCONV int Perl_do_spawn(pTHX_ char* cmd)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DO_SPAWN \
+ assert(cmd)
+
+PERL_CALLCONV int Perl_do_spawn_nowait(pTHX_ char* cmd)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_DO_SPAWN_NOWAIT \
+ assert(cmd)
+#endif
+#ifdef PERL_CORE
+# include "pp_proto.h"
+#endif
END_EXTERN_C
-/*
- * ex: set ts=8 sts=4 sw=4 noet:
- */
+
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/reentr.h b/Master/tlpkg/tlperl/lib/CORE/reentr.h
index 004cc46b6cb..3510fc55457 100644
--- a/Master/tlpkg/tlperl/lib/CORE/reentr.h
+++ b/Master/tlpkg/tlperl/lib/CORE/reentr.h
@@ -7,8 +7,9 @@
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
- * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by reentr.pl from data in reentr.pl.
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ * This file is built by regen/reentr.pl from data in regen/reentr.pl.
+ * Any changes made here will be lost!
*/
#ifndef REENTR_H
diff --git a/Master/tlpkg/tlperl/lib/CORE/regcharclass.h b/Master/tlpkg/tlperl/lib/CORE/regcharclass.h
index f9a1558d66a..47d4b41925b 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regcharclass.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regcharclass.h
@@ -1,17 +1,15 @@
-/* -*- buffer-read-only: t -*-
+/* -*- buffer-read-only: t -*-
*
* regcharclass.h
*
- * Copyright (C) 2007, by Larry Wall and others
+ * Copyright (C) 2007 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- * This file is built by Porting/regcharclass.pl.
- *
+ * This file is built by regen/regcharclass.pl.
* Any changes made here will be lost!
- *
*/
/*
@@ -363,9 +361,12 @@
/*
TRICKYFOLD: Problematic fold case letters.
- 0x00DF # LATIN1 SMALL LETTER SHARP S
+ 0x00DF # LATIN SMALL LETTER SHARP S
0x0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
0x03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+ 0x1E9E # LATIN CAPITAL LETTER SHARP S, because maps to same as 00DF
+ 0x1FD3 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA; maps same as 0390
+ 0x1FE3 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA; maps same as 03B0
*/
/*** GENERATED CODE ***/
#define is_TRICKYFOLD(s,is_utf8) \
@@ -374,12 +375,32 @@
( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \
: ( 0xCE == ((U8*)s)[0] ) ? \
( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0xBA == ((U8*)s)[1] ) ? \
+ ( ( 0x9E == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( 0xBF == ((U8*)s)[1] ) ? \
+ ( ( 0x93 == ((U8*)s)[2] || 0xA3 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : 0 ) \
: 0 ) \
: ( 0xDF == ((U8*)s)[0] ) )
/*** GENERATED CODE ***/
#define is_TRICKYFOLD_safe(s,e,is_utf8) \
-( ((e)-(s) > 1) ? \
+( ((e)-(s) > 2) ? \
+ ( ( is_utf8 ) ? \
+ ( ( 0xC3 == ((U8*)s)[0] ) ? \
+ ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
+ : ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0xBA == ((U8*)s)[1] ) ? \
+ ( ( 0x9E == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : ( 0xBF == ((U8*)s)[1] ) ? \
+ ( ( 0x93 == ((U8*)s)[2] || 0xA3 == ((U8*)s)[2] ) ? 3 : 0 ) \
+ : 0 ) \
+ : 0 ) \
+ : ( 0xDF == ((U8*)s)[0] ) ) \
+: ((e)-(s) > 1) ? \
( ( is_utf8 ) ? \
( ( 0xC3 == ((U8*)s)[0] ) ? \
( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \
@@ -397,7 +418,10 @@
#define is_TRICKYFOLD_cp(cp) \
( 0xDF == cp || ( 0xDF < cp && \
( 0x390 == cp || ( 0x390 < cp && \
-0x3B0 == cp ) ) ) )
+( 0x3B0 == cp || ( 0x3B0 < cp && \
+( 0x1E9E == cp || ( 0x1E9E < cp && \
+( 0x1FD3 == cp || ( 0x1FD3 < cp && \
+0x1FE3 == cp ) ) ) ) ) ) ) ) ) )
/*** GENERATED CODE ***/
#define what_TRICKYFOLD(s,is_utf8) \
@@ -407,12 +431,35 @@
: ( 0xCE == ((U8*)s)[0] ) ? \
( ( 0x90 == ((U8*)s)[1] ) ? 0x390 \
: ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 ) \
+ : ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0xBA == ((U8*)s)[1] ) ? \
+ ( ( 0x9E == ((U8*)s)[2] ) ? 0x1E9E : 0 ) \
+ : ( 0xBF == ((U8*)s)[1] ) ? \
+ ( ( 0x93 == ((U8*)s)[2] ) ? 0x1FD3 \
+ : ( 0xA3 == ((U8*)s)[2] ) ? 0x1FE3 : 0 ) \
+ : 0 ) \
: 0 ) \
: ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 )
/*** GENERATED CODE ***/
#define what_TRICKYFOLD_safe(s,e,is_utf8) \
-( ((e)-(s) > 1) ? \
+( ((e)-(s) > 2) ? \
+ ( ( is_utf8 ) ? \
+ ( ( 0xC3 == ((U8*)s)[0] ) ? \
+ ( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 ) \
+ : ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( 0x90 == ((U8*)s)[1] ) ? 0x390 \
+ : ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 ) \
+ : ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0xBA == ((U8*)s)[1] ) ? \
+ ( ( 0x9E == ((U8*)s)[2] ) ? 0x1E9E : 0 ) \
+ : ( 0xBF == ((U8*)s)[1] ) ? \
+ ( ( 0x93 == ((U8*)s)[2] ) ? 0x1FD3 \
+ : ( 0xA3 == ((U8*)s)[2] ) ? 0x1FE3 : 0 ) \
+ : 0 ) \
+ : 0 ) \
+ : ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 ) \
+: ((e)-(s) > 1) ? \
( ( is_utf8 ) ? \
( ( 0xC3 == ((U8*)s)[0] ) ? \
( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 ) \
@@ -433,12 +480,35 @@
: ( 0xCE == ((U8*)s)[0] ) ? \
( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390 \
: ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 ) \
+ : ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0xBA == ((U8*)s)[1] ) ? \
+ ( ( 0x9E == ((U8*)s)[2] ) ? len=3, 0x1E9E : 0 ) \
+ : ( 0xBF == ((U8*)s)[1] ) ? \
+ ( ( 0x93 == ((U8*)s)[2] ) ? len=3, 0x1FD3 \
+ : ( 0xA3 == ((U8*)s)[2] ) ? len=3, 0x1FE3 : 0 ) \
+ : 0 ) \
: 0 ) \
: ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 )
/*** GENERATED CODE ***/
#define what_len_TRICKYFOLD_safe(s,e,is_utf8,len) \
-( ((e)-(s) > 1) ? \
+( ((e)-(s) > 2) ? \
+ ( ( is_utf8 ) ? \
+ ( ( 0xC3 == ((U8*)s)[0] ) ? \
+ ( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 ) \
+ : ( 0xCE == ((U8*)s)[0] ) ? \
+ ( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390 \
+ : ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 ) \
+ : ( 0xE1 == ((U8*)s)[0] ) ? \
+ ( ( 0xBA == ((U8*)s)[1] ) ? \
+ ( ( 0x9E == ((U8*)s)[2] ) ? len=3, 0x1E9E : 0 ) \
+ : ( 0xBF == ((U8*)s)[1] ) ? \
+ ( ( 0x93 == ((U8*)s)[2] ) ? len=3, 0x1FD3 \
+ : ( 0xA3 == ((U8*)s)[2] ) ? len=3, 0x1FE3 : 0 ) \
+ : 0 ) \
+ : 0 ) \
+ : ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 ) \
+: ((e)-(s) > 1) ? \
( ( is_utf8 ) ? \
( ( 0xC3 == ((U8*)s)[0] ) ? \
( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 ) \
@@ -451,4 +521,5 @@
( ( ( !( is_utf8 ) ) && ( 0xDF == ((U8*)s)[0] ) ) ? len=1, 0xDF : 0 ) \
: 0 )
+
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/regcomp.h b/Master/tlpkg/tlperl/lib/CORE/regcomp.h
index 20b4401ed2f..c8f593b78d8 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regcomp.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regcomp.h
@@ -15,28 +15,9 @@ typedef OP OP_4tree; /* Will be redefined later. */
/* Convert branch sequences to more efficient trie ops? */
#define PERL_ENABLE_TRIE_OPTIMISATION 1
-/* Be really agressive about optimising patterns with trie sequences? */
+/* Be really aggressive about optimising patterns with trie sequences? */
#define PERL_ENABLE_EXTENDED_TRIE_OPTIMISATION 1
-/* Use old style unicode mappings for perl and posix character classes
- *
- * NOTE: Enabling this essentially breaks character class matching against unicode
- * strings, so that POSIX char classes match when they shouldn't, and \d matches
- * way more than 10 characters, and sometimes a charclass and its complement either
- * both match or neither match.
- * NOTE: Disabling this will cause various backwards compatibility issues to rear
- * their head, and tests to fail. However it will make the charclass behaviour
- * consistant regardless of internal string type, and make character class inversions
- * consistant. The tests that fail in the regex engine are basically broken tests.
- *
- * Personally I think 5.12 should disable this for sure. Its a bit more debatable for
- * 5.10, so for now im leaving it enabled.
- * XXX: It is now enabled for 5.11/5.12
- *
- * -demerphq
- */
-#define PERL_LEGACY_UNICODE_CHARCLASS_MAPPINGS 1
-
/* Should the optimiser take positive assertions into account? */
#define PERL_ENABLE_POSITIVE_ASSERTION_STUDY 0
@@ -204,15 +185,16 @@ struct regnode_charclass {
U8 flags;
U8 type;
U16 next_off;
- U32 arg1;
+ U32 arg1; /* used as ptr in S_regclass */
char bitmap[ANYOF_BITMAP_SIZE]; /* only compile-time */
};
-struct regnode_charclass_class { /* has [[:blah:]] classes */
- U8 flags; /* should have ANYOF_CLASS here */
+/* has runtime (locale) \d, \w, ..., [:posix:] classes */
+struct regnode_charclass_class {
+ U8 flags; /* ANYOF_CLASS bit must go here */
U8 type;
U16 next_off;
- U32 arg1;
+ U32 arg1; /* used as ptr in S_regclass */
char bitmap[ANYOF_BITMAP_SIZE]; /* both compile-time */
char classflags[ANYOF_CLASSBITMAP_SIZE]; /* and run-time */
};
@@ -271,6 +253,9 @@ struct regnode_charclass_class { /* has [[:blah:]] classes */
#undef STRING
#define OP(p) ((p)->type)
+#define FLAGS(p) ((p)->flags) /* Caution: Doesn't apply to all \
+ regnode types. For some, it's the \
+ character set of the regnode */
#define OPERAND(p) (((struct regnode_string *)p)->string)
#define MASK(p) ((char*)OPERAND(p))
#define STR_LEN(p) (((struct regnode_string *)p)->str_len)
@@ -306,28 +291,87 @@ struct regnode_charclass_class { /* has [[:blah:]] classes */
#define SIZE_ONLY (RExC_emit == &PL_regdummy)
-/* Flags for node->flags of ANYOF */
+/* If the bitmap doesn't fully represent what this ANYOF node can match, the
+ * ARG is set to this special value (since 0, 1, ... are legal, but will never
+ * reach this high). */
+#define ANYOF_NONBITMAP_EMPTY ((U32) -1)
+
+/* The information used to be stored as as combination of the ANYOF_UTF8 and
+ * ANYOF_NONBITMAP_NON_UTF8 bits in the flags field, but was moved out of there
+ * to free up a bit for other uses. This tries to hide the change from
+ * existing code as much as possible. Now, the data structure that goes in ARG
+ * is not allocated unless it is needed, and that is what is used to determine
+ * if there is something outside the bitmap. The code now assumes that if
+ * that structure exists, that any UTF-8 encoded string should be tried against
+ * it, but a non-UTF8-encoded string will be tried only if the
+ * ANYOF_NONBITMAP_NON_UTF8 bit is also set. */
+#define ANYOF_NONBITMAP(node) (ARG(node) != ANYOF_NONBITMAP_EMPTY)
+
+/* Flags for node->flags of ANYOF. These are in short supply, so some games
+ * are done to share them, as described below. If necessary, the ANYOF_LOCALE
+ * and ANYOF_CLASS bits could be shared with a space penalty for locale nodes,
+ * but this isn't quite so easy, as the optimizer also uses ANYOF_CLASS.
+ * Once the planned change to compile all the above-latin1 code points is done,
+ * then the UNICODE_ALL bit can be freed up, with a small performance penalty.
+ * If flags need to be added that are applicable to the synthetic start class
+ * only, with some work, they could be put in the next-node field, or in an
+ * unused bit of the classflags field. */
+
+#define ANYOF_LOCALE 0x01 /* /l modifier */
+
+/* The fold is calculated and stored in the bitmap where possible at compile
+ * time. However there are two cases where it isn't possible. These share
+ * this bit: 1) under locale, where the actual folding varies depending on
+ * what the locale is at the time of execution; and 2) where the folding is
+ * specified in a swash, not the bitmap, such as characters which aren't
+ * specified in the bitmap, or properties that aren't looked at at compile time
+ */
+#define ANYOF_LOC_NONBITMAP_FOLD 0x02
+
+#define ANYOF_INVERT 0x04
-#define ANYOF_CLASS 0x08 /* has [[:blah:]] classes */
-#define ANYOF_INVERT 0x04
-#define ANYOF_FOLD 0x02
-#define ANYOF_LOCALE 0x01
+/* Set if this is a struct regnode_charclass_class vs a regnode_charclass. This
+ * is used for runtime \d, \w, [:posix:], ..., which are used only in locale
+ * and the optimizer's synthetic start class. Non-locale \d, etc are resolved
+ * at compile-time */
+#define ANYOF_CLASS 0x08
+#define ANYOF_LARGE ANYOF_CLASS /* Same; name retained for back compat */
-/* Used for regstclass only */
-#define ANYOF_EOS 0x10 /* Can match an empty string too */
+/* EOS, meaning that it can match an empty string too, is used for the
+ * synthetic start class only. */
+#define ANYOF_EOS 0x10
-/* There is a character or a range past 0xff */
-#define ANYOF_UNICODE 0x20
-#define ANYOF_UNICODE_ALL 0x40 /* Can match any char past 0xff */
+/* ? Is this node the synthetic start class (ssc). This bit is shared with
+ * ANYOF_EOS, as the latter is used only for the ssc, and then not used by
+ * regexec.c. And, the code is structured so that if it is set, the ssc is
+ * not used, so it is guaranteed to be 0 for the ssc by the time regexec.c
+ * gets executed, and 0 for a non-ssc ANYOF node, as it only ever gets set for
+ * a potential ssc candidate. Thus setting it to 1 after it has been
+ * determined that the ssc will be used is not ambiguous */
+#define ANYOF_IS_SYNTHETIC ANYOF_EOS
-/* size of node is large (includes class pointer) */
-#define ANYOF_LARGE 0x80
+/* Can match something outside the bitmap that isn't in utf8 */
+#define ANYOF_NONBITMAP_NON_UTF8 0x20
-/* Are there any runtime flags on in this node? */
-#define ANYOF_RUNTIME(s) (ANYOF_FLAGS(s) & 0x0f)
+/* Matches every code point 0x100 and above*/
+#define ANYOF_UNICODE_ALL 0x40
+
+/* Match all Latin1 characters that aren't ASCII when the target string is not
+ * in utf8. */
+#define ANYOF_NON_UTF8_LATIN1_ALL 0x80
#define ANYOF_FLAGS_ALL 0xff
+/* These are the flags that ANYOF_INVERT being set or not doesn't affect
+ * whether they are operative or not. e.g., the node still has LOCALE
+ * regardless of being inverted; whereas ANYOF_UNICODE_ALL means something
+ * different if inverted */
+#define INVERSION_UNAFFECTED_FLAGS (ANYOF_LOCALE \
+ |ANYOF_LOC_NONBITMAP_FOLD \
+ |ANYOF_CLASS \
+ |ANYOF_EOS \
+ |ANYOF_NONBITMAP_NON_UTF8)
+
/* Character classes for node->classflags of ANYOF */
/* Should be synchronized with a table in regprop() */
/* 2n should pair with 2n+1 */
@@ -395,6 +439,8 @@ struct regnode_charclass_class { /* has [[:blah:]] classes */
#define ANYOF_CLASS_TEST(p, c) (ANYOF_CLASS_BYTE(p, c) & ANYOF_BIT(c))
#define ANYOF_CLASS_ZERO(ret) Zero(((struct regnode_charclass_class*)(ret))->classflags, ANYOF_CLASSBITMAP_SIZE, char)
+#define ANYOF_CLASS_SETALL(ret) \
+ memset (((struct regnode_charclass_class*)(ret))->classflags, 255, ANYOF_CLASSBITMAP_SIZE)
#define ANYOF_BITMAP_ZERO(ret) Zero(((struct regnode_charclass*)(ret))->bitmap, ANYOF_BITMAP_SIZE, char)
#define ANYOF_BITMAP(p) (((struct regnode_charclass*)(p))->bitmap)
@@ -408,12 +454,20 @@ struct regnode_charclass_class { /* has [[:blah:]] classes */
#define ANYOF_BITMAP_CLEARALL(p) \
Zero (ANYOF_BITMAP(p), ANYOF_BITMAP_SIZE)
/* Check that all 256 bits are all set. Used in S_cl_is_anything() */
-#define ANYOF_BITMAP_TESTALLSET(p) \
+#define ANYOF_BITMAP_TESTALLSET(p) /* Assumes sizeof(p) == 32 */ \
memEQ (ANYOF_BITMAP(p), "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377", ANYOF_BITMAP_SIZE)
#define ANYOF_SKIP ((ANYOF_SIZE - 1)/sizeof(regnode))
#define ANYOF_CLASS_SKIP ((ANYOF_CLASS_SIZE - 1)/sizeof(regnode))
-#define ANYOF_CLASS_ADD_SKIP (ANYOF_CLASS_SKIP - ANYOF_SKIP)
+
+#if ANYOF_CLASSBITMAP_SIZE != 4
+# error ANYOF_CLASSBITMAP_SIZE is expected to be 4
+#endif
+#define ANYOF_CLASS_TEST_ANY_SET(p) ((ANYOF_FLAGS(p) & ANYOF_CLASS) \
+ && memNE (((struct regnode_charclass_class*)(p))->classflags, \
+ "\0\0\0\0", ANYOF_CLASSBITMAP_SIZE))
+/*#define ANYOF_CLASS_ADD_SKIP (ANYOF_CLASS_SKIP - ANYOF_SKIP)
+ * */
/*
@@ -447,37 +501,6 @@ START_EXTERN_C
#include "regnodes.h"
#endif
-/* The following have no fixed length. U8 so we can do strchr() on it. */
-#ifndef DOINIT
-EXTCONST U8 PL_varies[];
-#else
-EXTCONST U8 PL_varies[] = {
- BRANCH, BACK, STAR, PLUS, CURLY, CURLYX, REF, REFF, REFFL,
- WHILEM, CURLYM, CURLYN, BRANCHJ, IFTHEN, SUSPEND, CLUMP,
- NREF, NREFF, NREFFL,
- 0
-};
-#endif
-
-/* The following always have a length of 1. U8 we can do strchr() on it. */
-/* (Note that length 1 means "one character" under UTF8, not "one octet".) */
-#ifndef DOINIT
-EXTCONST U8 PL_simple[];
-#else
-EXTCONST U8 PL_simple[] = {
- REG_ANY, SANY, CANY,
- ANYOF,
- ALNUM, ALNUML,
- NALNUM, NALNUML,
- SPACE, SPACEL,
- NSPACE, NSPACEL,
- DIGIT, NDIGIT,
- VERTWS, NVERTWS,
- HORIZWS, NHORIZWS,
- 0
-};
-#endif
-
#ifndef PLUGGABLE_RE_EXTENSION
#ifndef DOINIT
EXTCONST regexp_engine PL_core_reg_engine;
@@ -507,6 +530,7 @@ END_EXTERN_C
/* .what is a character array with one character for each member of .data
* The character describes the function of the corresponding .data item:
+ * a - AV for paren_name_list under DEBUGGING
* f - start-class data for regstclass optimization
* n - Root of op tree for (?{EVAL}) item
* o - Start op for (?{EVAL}) item
@@ -586,6 +610,15 @@ struct _reg_trie_state {
} trans;
};
+/* info per word; indexed by wordnum */
+typedef struct {
+ U16 prev; /* previous word in acceptance chain; eg in
+ * zzz|abc|ab/ after matching the chars abc, the
+ * accepted word is #2, and the previous accepted
+ * word is #3 */
+ U32 len; /* how many chars long is this word? */
+ U32 accept; /* accept state for this word */
+} reg_trie_wordinfo;
typedef struct _reg_trie_state reg_trie_state;
@@ -603,15 +636,14 @@ struct _reg_trie_data {
reg_trie_state *states; /* state data */
reg_trie_trans *trans; /* array of transition elements */
char *bitmap; /* stclass bitmap */
- U32 *wordlen; /* array of lengths of words */
U16 *jump; /* optional 1 indexed array of offsets before tail
for the node following a given word. */
- U16 *nextword; /* optional 1 indexed array to support linked list
- of duplicate wordnums */
+ reg_trie_wordinfo *wordinfo; /* array of info per word */
U16 uniquecharcount; /* unique chars in trie (width of trans table) */
U32 startstate; /* initial state - used for common prefix optimisation */
STRLEN minlen; /* minimum length of words in trie - build/opt only? */
STRLEN maxlen; /* maximum length of words in trie - build/opt only? */
+ U32 prefixlen; /* #chars in common prefix */
U32 statecount; /* Build only - number of states in the states array
(including the unused zero state) */
U32 wordcount; /* Build only */
@@ -643,7 +675,7 @@ struct _reg_ac_data {
};
typedef struct _reg_ac_data reg_ac_data;
-/* ANY_BIT doesnt use the structure, so we can borrow it here.
+/* ANY_BIT doesn't use the structure, so we can borrow it here.
This is simpler than refactoring all of it as wed end up with
three different sets... */
@@ -789,9 +821,11 @@ re.pm, especially to the documentation.
if (re_debug_flags & RE_DEBUG_EXTRA_GPOS) x )
/* initialization */
-/* get_sv() can return NULL during global destruction. */
+/* get_sv() can return NULL during global destruction. re_debug_flags can get
+ * clobbered by a longjmp, so must be initialized */
#define GET_RE_DEBUG_FLAGS DEBUG_r({ \
SV * re_debug_flags_sv = NULL; \
+ re_debug_flags = 0; \
re_debug_flags_sv = get_sv(RE_DEBUG_FLAGS, 1); \
if (re_debug_flags_sv) { \
if (!SvIOK(re_debug_flags_sv)) \
@@ -802,26 +836,26 @@ re.pm, especially to the documentation.
#ifdef DEBUGGING
-#define GET_RE_DEBUG_FLAGS_DECL IV re_debug_flags = 0; GET_RE_DEBUG_FLAGS;
+#define GET_RE_DEBUG_FLAGS_DECL VOL IV re_debug_flags = 0; GET_RE_DEBUG_FLAGS;
#define RE_PV_COLOR_DECL(rpv,rlen,isuni,dsv,pv,l,m,c1,c2) \
const char * const rpv = \
pv_pretty((dsv), (pv), (l), (m), \
PL_colors[(c1)],PL_colors[(c2)], \
- PERL_PV_ESCAPE_RE |((isuni) ? PERL_PV_ESCAPE_UNI : 0) ); \
+ PERL_PV_ESCAPE_RE|PERL_PV_ESCAPE_NONASCII |((isuni) ? PERL_PV_ESCAPE_UNI : 0) ); \
const int rlen = SvCUR(dsv)
#define RE_SV_ESCAPE(rpv,isuni,dsv,sv,m) \
const char * const rpv = \
pv_pretty((dsv), (SvPV_nolen_const(sv)), (SvCUR(sv)), (m), \
PL_colors[(c1)],PL_colors[(c2)], \
- PERL_PV_ESCAPE_RE |((isuni) ? PERL_PV_ESCAPE_UNI : 0) )
+ PERL_PV_ESCAPE_RE|PERL_PV_ESCAPE_NONASCII |((isuni) ? PERL_PV_ESCAPE_UNI : 0) )
#define RE_PV_QUOTED_DECL(rpv,isuni,dsv,pv,l,m) \
const char * const rpv = \
pv_pretty((dsv), (pv), (l), (m), \
PL_colors[0], PL_colors[1], \
- ( PERL_PV_PRETTY_QUOTE | PERL_PV_ESCAPE_RE | PERL_PV_PRETTY_ELLIPSES | \
+ ( PERL_PV_PRETTY_QUOTE | PERL_PV_ESCAPE_RE | PERL_PV_ESCAPE_NONASCII | PERL_PV_PRETTY_ELLIPSES | \
((isuni) ? PERL_PV_ESCAPE_UNI : 0)) \
)
diff --git a/Master/tlpkg/tlperl/lib/CORE/regexp.h b/Master/tlpkg/tlperl/lib/CORE/regexp.h
index 90e3406a965..5776a9023a7 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regexp.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regexp.h
@@ -70,6 +70,7 @@ typedef struct regexp_paren_pair {
/* what engine created this regexp? */ \
const struct regexp_engine* engine; \
REGEXP *mother_re; /* what re is this a lightweight copy of? */ \
+ HV *paren_names; /* Optional hash of paren names */ \
/* Information about the match that the perl core uses to */ \
/* manage things */ \
U32 extflags; /* Flags used both externally and internally */ \
@@ -103,14 +104,10 @@ typedef struct regexp_paren_pair {
typedef struct regexp {
_XPV_HEAD;
- _XPVMG_HEAD;
_REGEXP_COMMON;
} regexp;
-/* HV *paren_names; Optional hash of paren names
- now stored in the IV union */
-
-#define RXp_PAREN_NAMES(rx) ((rx)->xiv_u.xivu_hv)
+#define RXp_PAREN_NAMES(rx) ((rx)->paren_names)
/* used for high speed searches */
typedef struct re_scream_pos_data_s
@@ -193,20 +190,17 @@ equivalent to the following snippet:
if (SvMAGICAL(sv))
mg_get(sv);
- if (SvROK(sv) &&
- (tmpsv = (SV*)SvRV(sv)) &&
- SvTYPE(tmpsv) == SVt_PVMG &&
- (tmpmg = mg_find(tmpsv, PERL_MAGIC_qr)))
- {
- return (REGEXP *)tmpmg->mg_obj;
- }
+ if (SvROK(sv))
+ sv = MUTABLE_SV(SvRV(sv));
+ if (SvTYPE(sv) == SVt_REGEXP)
+ return (REGEXP*) sv;
NULL will be returned if a REGEXP* is not found.
=for apidoc Am|bool|SvRXOK|SV* sv
-Returns a boolean indicating whether the SV contains qr magic
-(PERL_MAGIC_qr).
+Returns a boolean indicating whether the SV (or the one it references)
+is a REGEXP.
If you want to do something with the REGEXP* later use SvRX instead
and check for NULL.
@@ -221,28 +215,17 @@ and check for NULL.
/* Flags stored in regexp->extflags
* These are used by code external to the regexp engine
*
- * Note that flags starting with RXf_PMf_ have exact equivalents
- * stored in op_pmflags and which are defined in op.h, they are defined
- * numerically here only for clarity.
+ * Note that the flags whose names start with RXf_PMf_ are defined in
+ * op_reg_common.h, being copied from the parallel flags of op_pmflags
*
- * NOTE: if you modify any RXf flags you should run regen.pl or regcomp.pl
- * so that regnodes.h is updated with the changes.
+ * NOTE: if you modify any RXf flags you should run regen.pl or
+ * regen/regcomp.pl so that regnodes.h is updated with the changes.
*
*/
-/* 0x3F of extflags is used by (RXf_)PMf_COMPILETIME
- * If you change these you need to change the equivalent flags in op.h, and
- * vice versa. */
-#define RXf_PMf_MULTILINE 0x00000001 /* /m */
-#define RXf_PMf_SINGLELINE 0x00000002 /* /s */
-#define RXf_PMf_FOLD 0x00000004 /* /i */
-#define RXf_PMf_EXTENDED 0x00000008 /* /x */
-#define RXf_PMf_KEEPCOPY 0x00000010 /* /p */
-#define RXf_PMf_LOCALE 0x00000020 /* use locale */
-/* these flags are transfered from the PMOP->op_pmflags member during compilation */
-#define RXf_PMf_STD_PMMOD_SHIFT 0
+#include "op_reg_common.h"
+
#define RXf_PMf_STD_PMMOD (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_FOLD|RXf_PMf_EXTENDED)
-#define RXf_PMf_COMPILETIME (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_LOCALE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_KEEPCOPY)
#define CASE_STD_PMMOD_FLAGS_PARSE_SET(pmfl) \
case IGNORE_PAT_MOD: *(pmfl) |= RXf_PMf_FOLD; break; \
@@ -250,13 +233,18 @@ and check for NULL.
case SINGLE_PAT_MOD: *(pmfl) |= RXf_PMf_SINGLELINE; break; \
case XTENDED_PAT_MOD: *(pmfl) |= RXf_PMf_EXTENDED; break
+/* Note, includes charset ones, assumes 0 is the default for them */
+#define STD_PMMOD_FLAGS_CLEAR(pmfl) \
+ *(pmfl) &= ~(RXf_PMf_FOLD|RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_EXTENDED|RXf_PMf_CHARSET)
+
/* chars and strings used as regex pattern modifiers
- * Singlular is a 'c'har, plural is a "string"
+ * Singular is a 'c'har, plural is a "string"
*
* NOTE, KEEPCOPY was originally 'k', but was changed to 'p' for preserve
* for compatibility reasons with Regexp::Common which highjacked (?k:...)
* for its own uses. So 'k' is out as well.
*/
+#define DEFAULT_PAT_MOD '^' /* Short for all the default modifiers */
#define EXEC_PAT_MOD 'e'
#define KEEPCOPY_PAT_MOD 'p'
#define ONCE_PAT_MOD 'o'
@@ -266,79 +254,140 @@ and check for NULL.
#define SINGLE_PAT_MOD 's'
#define IGNORE_PAT_MOD 'i'
#define XTENDED_PAT_MOD 'x'
+#define NONDESTRUCT_PAT_MOD 'r'
+#define LOCALE_PAT_MOD 'l'
+#define UNICODE_PAT_MOD 'u'
+#define DEPENDS_PAT_MOD 'd'
+#define ASCII_RESTRICT_PAT_MOD 'a'
#define ONCE_PAT_MODS "o"
#define KEEPCOPY_PAT_MODS "p"
#define EXEC_PAT_MODS "e"
#define LOOP_PAT_MODS "gc"
-
+#define NONDESTRUCT_PAT_MODS "r"
+#define LOCALE_PAT_MODS "l"
+#define UNICODE_PAT_MODS "u"
+#define DEPENDS_PAT_MODS "d"
+#define ASCII_RESTRICT_PAT_MODS "a"
+#define ASCII_MORE_RESTRICT_PAT_MODS "aa"
+
+/* This string is expected by regcomp.c to be ordered so that the first
+ * character is the flag in bit RXf_PMf_STD_PMMOD_SHIFT of extflags; the next
+ * character is bit +1, etc. */
#define STD_PAT_MODS "msix"
+#define CHARSET_PAT_MODS ASCII_RESTRICT_PAT_MODS DEPENDS_PAT_MODS LOCALE_PAT_MODS UNICODE_PAT_MODS
+
+/* This string is expected by XS_re_regexp_pattern() in universal.c to be ordered
+ * so that the first character is the flag in bit RXf_PMf_STD_PMMOD_SHIFT of
+ * extflags; the next character is in bit +1, etc. */
#define INT_PAT_MODS STD_PAT_MODS KEEPCOPY_PAT_MODS
#define EXT_PAT_MODS ONCE_PAT_MODS KEEPCOPY_PAT_MODS
-#define QR_PAT_MODS STD_PAT_MODS EXT_PAT_MODS
+#define QR_PAT_MODS STD_PAT_MODS EXT_PAT_MODS CHARSET_PAT_MODS
#define M_PAT_MODS QR_PAT_MODS LOOP_PAT_MODS
-#define S_PAT_MODS M_PAT_MODS EXEC_PAT_MODS
+#define S_PAT_MODS M_PAT_MODS EXEC_PAT_MODS NONDESTRUCT_PAT_MODS
/*
- * NOTE: if you modify any RXf flags you should run regen.pl or regcomp.pl
- * so that regnodes.h is updated with the changes.
+ * NOTE: if you modify any RXf flags you should run regen.pl or
+ * regen/regcomp.pl so that regnodes.h is updated with the changes.
*
*/
+/* Leave some space, so future bit allocations can go either in the shared or
+ * unshared area without affecting binary compatibility */
+#define RXf_BASE_SHIFT (_RXf_PMf_SHIFT_NEXT+1)
+
+/* embed.pl doesn't yet know how to handle static inline functions, so
+ manually decorate them here with gcc-style attributes.
+*/
+PERL_STATIC_INLINE const char *
+get_regex_charset_name(const U32 flags, STRLEN* const lenp)
+ __attribute__warn_unused_result__;
+
+#define MAX_CHARSET_NAME_LENGTH 2
+
+PERL_STATIC_INLINE const char *
+get_regex_charset_name(const U32 flags, STRLEN* const lenp)
+{
+ /* Returns a string that corresponds to the name of the regex character set
+ * given by 'flags', and *lenp is set the length of that string, which
+ * cannot exceed MAX_CHARSET_NAME_LENGTH characters */
+
+ *lenp = 1;
+ switch (get_regex_charset(flags)) {
+ case REGEX_DEPENDS_CHARSET: return DEPENDS_PAT_MODS;
+ case REGEX_LOCALE_CHARSET: return LOCALE_PAT_MODS;
+ case REGEX_UNICODE_CHARSET: return UNICODE_PAT_MODS;
+ case REGEX_ASCII_RESTRICTED_CHARSET: return ASCII_RESTRICT_PAT_MODS;
+ case REGEX_ASCII_MORE_RESTRICTED_CHARSET:
+ *lenp = 2;
+ return ASCII_MORE_RESTRICT_PAT_MODS;
+ default:
+ return "?"; /* Unknown */
+ }
+ return "?"; /* Unknown */
+}
+
/* Anchor and GPOS related stuff */
-#define RXf_ANCH_BOL 0x00000100
-#define RXf_ANCH_MBOL 0x00000200
-#define RXf_ANCH_SBOL 0x00000400
-#define RXf_ANCH_GPOS 0x00000800
-#define RXf_GPOS_SEEN 0x00001000
-#define RXf_GPOS_FLOAT 0x00002000
+#define RXf_ANCH_BOL (1<<(RXf_BASE_SHIFT+0))
+#define RXf_ANCH_MBOL (1<<(RXf_BASE_SHIFT+1))
+#define RXf_ANCH_SBOL (1<<(RXf_BASE_SHIFT+2))
+#define RXf_ANCH_GPOS (1<<(RXf_BASE_SHIFT+3))
+#define RXf_GPOS_SEEN (1<<(RXf_BASE_SHIFT+4))
+#define RXf_GPOS_FLOAT (1<<(RXf_BASE_SHIFT+5))
/* two bits here */
#define RXf_ANCH (RXf_ANCH_BOL|RXf_ANCH_MBOL|RXf_ANCH_GPOS|RXf_ANCH_SBOL)
#define RXf_GPOS_CHECK (RXf_GPOS_SEEN|RXf_ANCH_GPOS)
#define RXf_ANCH_SINGLE (RXf_ANCH_SBOL|RXf_ANCH_GPOS)
/* What we have seen */
-#define RXf_LOOKBEHIND_SEEN 0x00004000
-#define RXf_EVAL_SEEN 0x00008000
-#define RXf_CANY_SEEN 0x00010000
+#define RXf_LOOKBEHIND_SEEN (1<<(RXf_BASE_SHIFT+6))
+#define RXf_EVAL_SEEN (1<<(RXf_BASE_SHIFT+7))
+#define RXf_CANY_SEEN (1<<(RXf_BASE_SHIFT+8))
/* Special */
-#define RXf_NOSCAN 0x00020000
-#define RXf_CHECK_ALL 0x00040000
+#define RXf_NOSCAN (1<<(RXf_BASE_SHIFT+9))
+#define RXf_CHECK_ALL (1<<(RXf_BASE_SHIFT+10))
/* UTF8 related */
-#define RXf_MATCH_UTF8 0x00100000
+#define RXf_MATCH_UTF8 (1<<(RXf_BASE_SHIFT+11))
/* Intuit related */
-#define RXf_USE_INTUIT_NOML 0x00200000
-#define RXf_USE_INTUIT_ML 0x00400000
-#define RXf_INTUIT_TAIL 0x00800000
+#define RXf_USE_INTUIT_NOML (1<<(RXf_BASE_SHIFT+12))
+#define RXf_USE_INTUIT_ML (1<<(RXf_BASE_SHIFT+13))
+#define RXf_INTUIT_TAIL (1<<(RXf_BASE_SHIFT+14))
/*
Set in Perl_pmruntime if op_flags & OPf_SPECIAL, i.e. split. Will
be used by regex engines to check whether they should set
RXf_SKIPWHITE
*/
-#define RXf_SPLIT 0x01000000
+#define RXf_SPLIT (1<<(RXf_BASE_SHIFT+15))
#define RXf_USE_INTUIT (RXf_USE_INTUIT_NOML|RXf_USE_INTUIT_ML)
/* Copy and tainted info */
-#define RXf_COPY_DONE 0x02000000
-#define RXf_TAINTED_SEEN 0x04000000
-#define RXf_TAINTED 0x08000000 /* this pattern is tainted */
+#define RXf_COPY_DONE (1<<(RXf_BASE_SHIFT+16))
+
+/* during execution: pattern temporarily tainted by executing locale ops;
+ * post-execution: $1 et al are tainted */
+#define RXf_TAINTED_SEEN (1<<(RXf_BASE_SHIFT+17))
+/* this pattern was tainted during compilation */
+#define RXf_TAINTED (1<<(RXf_BASE_SHIFT+18))
/* Flags indicating special patterns */
-#define RXf_START_ONLY 0x10000000 /* Pattern is /^/ */
-#define RXf_SKIPWHITE 0x20000000 /* Pattern is for a split / / */
-#define RXf_WHITE 0x40000000 /* Pattern is /\s+/ */
-#define RXf_NULL 0x80000000 /* Pattern is // */
+#define RXf_START_ONLY (1<<(RXf_BASE_SHIFT+19)) /* Pattern is /^/ */
+#define RXf_SKIPWHITE (1<<(RXf_BASE_SHIFT+20)) /* Pattern is for a split / / */
+#define RXf_WHITE (1<<(RXf_BASE_SHIFT+21)) /* Pattern is /\s+/ */
+#define RXf_NULL (1<<(RXf_BASE_SHIFT+22)) /* Pattern is // */
+#if RXf_BASE_SHIFT+22 > 31
+# error Too many RXf_PMf bits used. See regnodes.h for any spare in middle
+#endif
/*
- * NOTE: if you modify any RXf flags you should run regen.pl or regcomp.pl
- * so that regnodes.h is updated with the changes.
+ * NOTE: if you modify any RXf flags you should run regen.pl or
+ * regen/regcomp.pl so that regnodes.h is updated with the changes.
*
*/
@@ -424,7 +473,7 @@ and check for NULL.
#endif /* PLUGGABLE_RE_EXTENSION */
-/* Stuff that needs to be included in the plugable extension goes below here */
+/* Stuff that needs to be included in the pluggable extension goes below here */
#ifdef PERL_OLD_COPY_ON_WRITE
#define RX_MATCH_COPY_FREE(rx) \
@@ -490,13 +539,6 @@ and check for NULL.
#define FBMrf_MULTILINE 1
-/* an accepting state/position*/
-struct _reg_trie_accepted {
- U8 *endpos;
- U16 wordnum;
-};
-typedef struct _reg_trie_accepted reg_trie_accepted;
-
/* some basic information about the current match that is created by
* Perl_regexec_flags and then passed to regtry(), regmatch() etc */
@@ -557,11 +599,15 @@ typedef struct regmatch_state {
U32 lastparen;
CHECKPOINT cp;
- reg_trie_accepted *accept_buff; /* accepting states we have seen */
- U32 accepted; /* how many accepting states we have seen */
+ U32 accepted; /* how many accepting states left */
U16 *jump; /* positive offsets from me */
regnode *B; /* node following the trie */
regnode *me; /* Which node am I - needed for jump tries*/
+ U8 *firstpos;/* pos in string of first trie match */
+ U32 firstchars;/* len in chars of firstpos from start */
+ U16 nextword;/* next word to try */
+ U16 topword; /* longest accepted word */
+ bool longfold;/* saw a fold with a 1->n char mapping */
} trie;
/* special types - these members are used to store state for special
@@ -607,12 +653,11 @@ typedef struct regmatch_state {
/* this first element must match u.yes */
struct regmatch_state *prev_yes_state;
struct regmatch_state *prev_curlyx; /* previous cur_curlyx */
- regnode *A, *B; /* the nodes corresponding to /A*B/ */
+ regnode *me; /* the CURLYX node */
+ regnode *B; /* the B node in /A*B/ */
CHECKPOINT cp; /* remember current savestack index */
bool minmod;
int parenfloor;/* how far back to strip paren data */
- int min; /* the minimal number of A's to match */
- int max; /* the maximal number of A's to match */
/* these two are modified by WHILEM */
int count; /* how many instances of A we've matched */
diff --git a/Master/tlpkg/tlperl/lib/CORE/regnodes.h b/Master/tlpkg/tlperl/lib/CORE/regnodes.h
index 79de061fb6a..931761beb8c 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regnodes.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regnodes.h
@@ -1,13 +1,13 @@
/* -*- buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- This file is built by regcomp.pl from regcomp.sym.
+ This file is built by regen/regcomp.pl from regcomp.sym.
Any changes made here will be lost!
-*/
+ */
/* Regops and State definitions */
-#define REGNODE_MAX 90
-#define REGMATCH_STATE_MAX 130
+#define REGNODE_MAX 111
+#define REGMATCH_STATE_MAX 151
#define END 0 /* 0000 End of program. */
#define SUCCEED 1 /* 0x01 Return from a subroutine, basically. */
@@ -18,88 +18,109 @@
#define EOL 6 /* 0x06 Match "" at end of line. */
#define MEOL 7 /* 0x07 Same, assuming multiline. */
#define SEOL 8 /* 0x08 Same, assuming singleline. */
-#define BOUND 9 /* 0x09 Match "" at any word boundary */
-#define BOUNDL 10 /* 0x0a Match "" at any word boundary */
-#define NBOUND 11 /* 0x0b Match "" at any word non-boundary */
-#define NBOUNDL 12 /* 0x0c Match "" at any word non-boundary */
-#define GPOS 13 /* 0x0d Matches where last m//g left off. */
-#define REG_ANY 14 /* 0x0e Match any one character (except newline). */
-#define SANY 15 /* 0x0f Match any one character. */
-#define CANY 16 /* 0x10 Match any one byte. */
-#define ANYOF 17 /* 0x11 Match character in (or not in) this class. */
-#define ALNUM 18 /* 0x12 Match any alphanumeric character */
-#define ALNUML 19 /* 0x13 Match any alphanumeric char in locale */
-#define NALNUM 20 /* 0x14 Match any non-alphanumeric character */
-#define NALNUML 21 /* 0x15 Match any non-alphanumeric char in locale */
-#define SPACE 22 /* 0x16 Match any whitespace character */
-#define SPACEL 23 /* 0x17 Match any whitespace char in locale */
-#define NSPACE 24 /* 0x18 Match any non-whitespace character */
-#define NSPACEL 25 /* 0x19 Match any non-whitespace char in locale */
-#define DIGIT 26 /* 0x1a Match any numeric character */
-#define DIGITL 27 /* 0x1b Match any numeric character in locale */
-#define NDIGIT 28 /* 0x1c Match any non-numeric character */
-#define NDIGITL 29 /* 0x1d Match any non-numeric character in locale */
-#define CLUMP 30 /* 0x1e Match any combining character sequence */
-#define BRANCH 31 /* 0x1f Match this alternative, or the next... */
-#define BACK 32 /* 0x20 Match "", "next" ptr points backward. */
-#define EXACT 33 /* 0x21 Match this string (preceded by length). */
-#define EXACTF 34 /* 0x22 Match this string, folded (prec. by length). */
-#define EXACTFL 35 /* 0x23 Match this string, folded in locale (w/len). */
-#define NOTHING 36 /* 0x24 Match empty string. */
-#define TAIL 37 /* 0x25 Match empty string. Can jump here from outside. */
-#define STAR 38 /* 0x26 Match this (simple) thing 0 or more times. */
-#define PLUS 39 /* 0x27 Match this (simple) thing 1 or more times. */
-#define CURLY 40 /* 0x28 Match this simple thing {n,m} times. */
-#define CURLYN 41 /* 0x29 Capture next-after-this simple thing */
-#define CURLYM 42 /* 0x2a Capture this medium-complex thing {n,m} times. */
-#define CURLYX 43 /* 0x2b Match this complex thing {n,m} times. */
-#define WHILEM 44 /* 0x2c Do curly processing and see if rest matches. */
-#define OPEN 45 /* 0x2d Mark this point in input as start of */
-#define CLOSE 46 /* 0x2e Analogous to OPEN. */
-#define REF 47 /* 0x2f Match some already matched string */
-#define REFF 48 /* 0x30 Match already matched string, folded */
-#define REFFL 49 /* 0x31 Match already matched string, folded in loc. */
-#define IFMATCH 50 /* 0x32 Succeeds if the following matches. */
-#define UNLESSM 51 /* 0x33 Fails if the following matches. */
-#define SUSPEND 52 /* 0x34 "Independent" sub-RE. */
-#define IFTHEN 53 /* 0x35 Switch, should be preceeded by switcher . */
-#define GROUPP 54 /* 0x36 Whether the group matched. */
-#define LONGJMP 55 /* 0x37 Jump far away. */
-#define BRANCHJ 56 /* 0x38 BRANCH with long offset. */
-#define EVAL 57 /* 0x39 Execute some Perl code. */
-#define MINMOD 58 /* 0x3a Next operator is not greedy. */
-#define LOGICAL 59 /* 0x3b Next opcode should set the flag only. */
-#define RENUM 60 /* 0x3c Group with independently numbered parens. */
-#define TRIE 61 /* 0x3d Match many EXACT(FL?)? at once. flags==type */
-#define TRIEC 62 /* 0x3e Same as TRIE, but with embedded charclass data */
-#define AHOCORASICK 63 /* 0x3f Aho Corasick stclass. flags==type */
-#define AHOCORASICKC 64 /* 0x40 Same as AHOCORASICK, but with embedded charclass data */
-#define GOSUB 65 /* 0x41 recurse to paren arg1 at (signed) ofs arg2 */
-#define GOSTART 66 /* 0x42 recurse to start of pattern */
-#define NREF 67 /* 0x43 Match some already matched string */
-#define NREFF 68 /* 0x44 Match already matched string, folded */
-#define NREFFL 69 /* 0x45 Match already matched string, folded in loc. */
-#define NGROUPP 70 /* 0x46 Whether the group matched. */
-#define INSUBP 71 /* 0x47 Whether we are in a specific recurse. */
-#define DEFINEP 72 /* 0x48 Never execute directly. */
-#define ENDLIKE 73 /* 0x49 Used only for the type field of verbs */
-#define OPFAIL 74 /* 0x4a Same as (?!) */
-#define ACCEPT 75 /* 0x4b Accepts the current matched string. */
-#define VERB 76 /* 0x4c no-sv 1 Used only for the type field of verbs */
-#define PRUNE 77 /* 0x4d Pattern fails at this startpoint if no-backtracking through this */
-#define MARKPOINT 78 /* 0x4e Push the current location for rollback by cut. */
-#define SKIP 79 /* 0x4f On failure skip forward (to the mark) before retrying */
-#define COMMIT 80 /* 0x50 Pattern fails outright if backtracking through this */
-#define CUTGROUP 81 /* 0x51 On failure go to the next alternation in the group */
-#define KEEPS 82 /* 0x52 $& begins here. */
-#define LNBREAK 83 /* 0x53 generic newline pattern */
-#define VERTWS 84 /* 0x54 vertical whitespace (Perl 6) */
-#define NVERTWS 85 /* 0x55 not vertical whitespace (Perl 6) */
-#define HORIZWS 86 /* 0x56 horizontal whitespace (Perl 6) */
-#define NHORIZWS 87 /* 0x57 not horizontal whitespace (Perl 6) */
-#define FOLDCHAR 88 /* 0x58 codepoint with tricky case folding properties. */
-#define OPTIMIZED 89 /* 0x59 Placeholder for dump. */
-#define PSEUDO 90 /* 0x5a Pseudo opcode for internal use. */
+#define BOUND 9 /* 0x09 Match "" at any word boundary using native charset semantics for non-utf8 */
+#define BOUNDL 10 /* 0x0a Match "" at any locale word boundary */
+#define BOUNDU 11 /* 0x0b Match "" at any word boundary using Unicode semantics */
+#define BOUNDA 12 /* 0x0c Match "" at any word boundary using ASCII semantics */
+#define NBOUND 13 /* 0x0d Match "" at any word non-boundary using native charset semantics for non-utf8 */
+#define NBOUNDL 14 /* 0x0e Match "" at any locale word non-boundary */
+#define NBOUNDU 15 /* 0x0f Match "" at any word non-boundary using Unicode semantics */
+#define NBOUNDA 16 /* 0x10 Match "" at any word non-boundary using ASCII semantics */
+#define GPOS 17 /* 0x11 Matches where last m//g left off. */
+#define REG_ANY 18 /* 0x12 Match any one character (except newline). */
+#define SANY 19 /* 0x13 Match any one character. */
+#define CANY 20 /* 0x14 Match any one byte. */
+#define ANYOF 21 /* 0x15 Match character in (or not in) this class, single char match only */
+#define ANYOFV 22 /* 0x16 Match character in (or not in) this class, can match-multiple chars */
+#define ALNUM 23 /* 0x17 Match any alphanumeric character using native charset semantics for non-utf8 */
+#define ALNUML 24 /* 0x18 Match any alphanumeric char in locale */
+#define ALNUMU 25 /* 0x19 Match any alphanumeric char using Unicode semantics */
+#define ALNUMA 26 /* 0x1a Match [A-Za-z_0-9] */
+#define NALNUM 27 /* 0x1b Match any non-alphanumeric character using native charset semantics for non-utf8 */
+#define NALNUML 28 /* 0x1c Match any non-alphanumeric char in locale */
+#define NALNUMU 29 /* 0x1d Match any non-alphanumeric char using Unicode semantics */
+#define NALNUMA 30 /* 0x1e Match [^A-Za-z_0-9] */
+#define SPACE 31 /* 0x1f Match any whitespace character using native charset semantics for non-utf8 */
+#define SPACEL 32 /* 0x20 Match any whitespace char in locale */
+#define SPACEU 33 /* 0x21 Match any whitespace char using Unicode semantics */
+#define SPACEA 34 /* 0x22 Match [ \t\n\f\r] */
+#define NSPACE 35 /* 0x23 Match any non-whitespace character using native charset semantics for non-utf8 */
+#define NSPACEL 36 /* 0x24 Match any non-whitespace char in locale */
+#define NSPACEU 37 /* 0x25 Match any non-whitespace char using Unicode semantics */
+#define NSPACEA 38 /* 0x26 Match [^ \t\n\f\r] */
+#define DIGIT 39 /* 0x27 Match any numeric character using native charset semantics for non-utf8 */
+#define DIGITL 40 /* 0x28 Match any numeric character in locale */
+#define DIGITA 41 /* 0x29 Match [0-9] */
+#define NDIGIT 42 /* 0x2a Match any non-numeric character using native charset semantics for non-utf8 */
+#define NDIGITL 43 /* 0x2b Match any non-numeric character in locale */
+#define NDIGITA 44 /* 0x2c Match [^0-9] */
+#define CLUMP 45 /* 0x2d Match any extended grapheme cluster sequence */
+#define BRANCH 46 /* 0x2e Match this alternative, or the next... */
+#define BACK 47 /* 0x2f Match "", "next" ptr points backward. */
+#define EXACT 48 /* 0x30 Match this string (preceded by length). */
+#define EXACTF 49 /* 0x31 Match this string, folded, native charset semantics for non-utf8 (prec. by length). */
+#define EXACTFL 50 /* 0x32 Match this string, folded in locale (w/len). */
+#define EXACTFU 51 /* 0x33 Match this string, folded, Unicode semantics for non-utf8 (prec. by length). */
+#define EXACTFA 52 /* 0x34 Match this string, folded, Unicode semantics for non-utf8, but no ASCII-range character matches outside ASCII (prec. by length),. */
+#define NOTHING 53 /* 0x35 Match empty string. */
+#define TAIL 54 /* 0x36 Match empty string. Can jump here from outside. */
+#define STAR 55 /* 0x37 Match this (simple) thing 0 or more times. */
+#define PLUS 56 /* 0x38 Match this (simple) thing 1 or more times. */
+#define CURLY 57 /* 0x39 Match this simple thing {n,m} times. */
+#define CURLYN 58 /* 0x3a Capture next-after-this simple thing */
+#define CURLYM 59 /* 0x3b Capture this medium-complex thing {n,m} times. */
+#define CURLYX 60 /* 0x3c Match this complex thing {n,m} times. */
+#define WHILEM 61 /* 0x3d Do curly processing and see if rest matches. */
+#define OPEN 62 /* 0x3e Mark this point in input as start of */
+#define CLOSE 63 /* 0x3f Analogous to OPEN. */
+#define REF 64 /* 0x40 Match some already matched string */
+#define REFF 65 /* 0x41 Match already matched string, folded using native charset semantics for non-utf8 */
+#define REFFL 66 /* 0x42 Match already matched string, folded in loc. */
+#define REFFU 67 /* 0x43 Match already matched string, folded using unicode semantics for non-utf8 */
+#define REFFA 68 /* 0x44 Match already matched string, folded using unicode semantics for non-utf8, no mixing ASCII, non-ASCII */
+#define NREF 69 /* 0x45 Match some already matched string */
+#define NREFF 70 /* 0x46 Match already matched string, folded using native charset semantics for non-utf8 */
+#define NREFFL 71 /* 0x47 Match already matched string, folded in loc. */
+#define NREFFU 72 /* 0x48 Match already matched string, folded using unicode semantics for non-utf8 */
+#define NREFFA 73 /* 0x49 Match already matched string, folded using unicode semantics for non-utf8, no mixing ASCII, non-ASCII */
+#define IFMATCH 74 /* 0x4a Succeeds if the following matches. */
+#define UNLESSM 75 /* 0x4b Fails if the following matches. */
+#define SUSPEND 76 /* 0x4c "Independent" sub-RE. */
+#define IFTHEN 77 /* 0x4d Switch, should be preceded by switcher . */
+#define GROUPP 78 /* 0x4e Whether the group matched. */
+#define LONGJMP 79 /* 0x4f Jump far away. */
+#define BRANCHJ 80 /* 0x50 BRANCH with long offset. */
+#define EVAL 81 /* 0x51 Execute some Perl code. */
+#define MINMOD 82 /* 0x52 Next operator is not greedy. */
+#define LOGICAL 83 /* 0x53 Next opcode should set the flag only. */
+#define RENUM 84 /* 0x54 Group with independently numbered parens. */
+#define TRIE 85 /* 0x55 Match many EXACT(F[ALU]?)? at once. flags==type */
+#define TRIEC 86 /* 0x56 Same as TRIE, but with embedded charclass data */
+#define AHOCORASICK 87 /* 0x57 Aho Corasick stclass. flags==type */
+#define AHOCORASICKC 88 /* 0x58 Same as AHOCORASICK, but with embedded charclass data */
+#define GOSUB 89 /* 0x59 recurse to paren arg1 at (signed) ofs arg2 */
+#define GOSTART 90 /* 0x5a recurse to start of pattern */
+#define NGROUPP 91 /* 0x5b Whether the group matched. */
+#define INSUBP 92 /* 0x5c Whether we are in a specific recurse. */
+#define DEFINEP 93 /* 0x5d Never execute directly. */
+#define ENDLIKE 94 /* 0x5e Used only for the type field of verbs */
+#define OPFAIL 95 /* 0x5f Same as (?!) */
+#define ACCEPT 96 /* 0x60 Accepts the current matched string. */
+#define VERB 97 /* 0x61 Used only for the type field of verbs */
+#define PRUNE 98 /* 0x62 Pattern fails at this startpoint if no-backtracking through this */
+#define MARKPOINT 99 /* 0x63 Push the current location for rollback by cut. */
+#define SKIP 100 /* 0x64 On failure skip forward (to the mark) before retrying */
+#define COMMIT 101 /* 0x65 Pattern fails outright if backtracking through this */
+#define CUTGROUP 102 /* 0x66 On failure go to the next alternation in the group */
+#define KEEPS 103 /* 0x67 $& begins here. */
+#define LNBREAK 104 /* 0x68 generic newline pattern */
+#define VERTWS 105 /* 0x69 vertical whitespace (Perl 6) */
+#define NVERTWS 106 /* 0x6a not vertical whitespace (Perl 6) */
+#define HORIZWS 107 /* 0x6b horizontal whitespace (Perl 6) */
+#define NHORIZWS 108 /* 0x6c not horizontal whitespace (Perl 6) */
+#define FOLDCHAR 109 /* 0x6d codepoint with tricky case folding properties. */
+#define OPTIMIZED 110 /* 0x6e Placeholder for dump. */
+#define PSEUDO 111 /* 0x6f Pseudo opcode for internal use. */
/* ------------ States ------------- */
#define TRIE_next (REGNODE_MAX + 1) /* state for TRIE */
#define TRIE_next_fail (REGNODE_MAX + 2) /* state for TRIE */
@@ -159,31 +180,48 @@ EXTCONST U8 PL_regkind[] = {
EOL, /* SEOL */
BOUND, /* BOUND */
BOUND, /* BOUNDL */
+ BOUND, /* BOUNDU */
+ BOUND, /* BOUNDA */
NBOUND, /* NBOUND */
NBOUND, /* NBOUNDL */
+ NBOUND, /* NBOUNDU */
+ NBOUND, /* NBOUNDA */
GPOS, /* GPOS */
REG_ANY, /* REG_ANY */
REG_ANY, /* SANY */
REG_ANY, /* CANY */
ANYOF, /* ANYOF */
+ ANYOF, /* ANYOFV */
ALNUM, /* ALNUM */
ALNUM, /* ALNUML */
+ ALNUM, /* ALNUMU */
+ ALNUM, /* ALNUMA */
NALNUM, /* NALNUM */
NALNUM, /* NALNUML */
+ NALNUM, /* NALNUMU */
+ NALNUM, /* NALNUMA */
SPACE, /* SPACE */
SPACE, /* SPACEL */
+ SPACE, /* SPACEU */
+ SPACE, /* SPACEA */
NSPACE, /* NSPACE */
NSPACE, /* NSPACEL */
+ NSPACE, /* NSPACEU */
+ NSPACE, /* NSPACEA */
DIGIT, /* DIGIT */
DIGIT, /* DIGITL */
+ DIGIT, /* DIGITA */
NDIGIT, /* NDIGIT */
NDIGIT, /* NDIGITL */
+ NDIGIT, /* NDIGITA */
CLUMP, /* CLUMP */
BRANCH, /* BRANCH */
BACK, /* BACK */
EXACT, /* EXACT */
EXACT, /* EXACTF */
EXACT, /* EXACTFL */
+ EXACT, /* EXACTFU */
+ EXACT, /* EXACTFA */
NOTHING, /* NOTHING */
NOTHING, /* TAIL */
STAR, /* STAR */
@@ -198,6 +236,13 @@ EXTCONST U8 PL_regkind[] = {
REF, /* REF */
REF, /* REFF */
REF, /* REFFL */
+ REF, /* REFFU */
+ REF, /* REFFA */
+ REF, /* NREF */
+ REF, /* NREFF */
+ REF, /* NREFFL */
+ REF, /* NREFFU */
+ REF, /* NREFFA */
BRANCHJ, /* IFMATCH */
BRANCHJ, /* UNLESSM */
BRANCHJ, /* SUSPEND */
@@ -215,9 +260,6 @@ EXTCONST U8 PL_regkind[] = {
TRIE, /* AHOCORASICKC */
GOSUB, /* GOSUB */
GOSTART, /* GOSTART */
- REF, /* NREF */
- REF, /* NREFF */
- REF, /* NREFFL */
NGROUPP, /* NGROUPP */
INSUBP, /* INSUBP */
DEFINEP, /* DEFINEP */
@@ -298,31 +340,48 @@ static const U8 regarglen[] = {
0, /* SEOL */
0, /* BOUND */
0, /* BOUNDL */
+ 0, /* BOUNDU */
+ 0, /* BOUNDA */
0, /* NBOUND */
0, /* NBOUNDL */
+ 0, /* NBOUNDU */
+ 0, /* NBOUNDA */
0, /* GPOS */
0, /* REG_ANY */
0, /* SANY */
0, /* CANY */
0, /* ANYOF */
+ 0, /* ANYOFV */
0, /* ALNUM */
0, /* ALNUML */
+ 0, /* ALNUMU */
+ 0, /* ALNUMA */
0, /* NALNUM */
0, /* NALNUML */
+ 0, /* NALNUMU */
+ 0, /* NALNUMA */
0, /* SPACE */
0, /* SPACEL */
+ 0, /* SPACEU */
+ 0, /* SPACEA */
0, /* NSPACE */
0, /* NSPACEL */
+ 0, /* NSPACEU */
+ 0, /* NSPACEA */
0, /* DIGIT */
0, /* DIGITL */
+ 0, /* DIGITA */
0, /* NDIGIT */
0, /* NDIGITL */
+ 0, /* NDIGITA */
0, /* CLUMP */
0, /* BRANCH */
0, /* BACK */
0, /* EXACT */
0, /* EXACTF */
0, /* EXACTFL */
+ 0, /* EXACTFU */
+ 0, /* EXACTFA */
0, /* NOTHING */
0, /* TAIL */
0, /* STAR */
@@ -337,6 +396,13 @@ static const U8 regarglen[] = {
EXTRA_SIZE(struct regnode_1), /* REF */
EXTRA_SIZE(struct regnode_1), /* REFF */
EXTRA_SIZE(struct regnode_1), /* REFFL */
+ EXTRA_SIZE(struct regnode_1), /* REFFU */
+ EXTRA_SIZE(struct regnode_1), /* REFFA */
+ EXTRA_SIZE(struct regnode_1), /* NREF */
+ EXTRA_SIZE(struct regnode_1), /* NREFF */
+ EXTRA_SIZE(struct regnode_1), /* NREFFL */
+ EXTRA_SIZE(struct regnode_1), /* NREFFU */
+ EXTRA_SIZE(struct regnode_1), /* NREFFA */
EXTRA_SIZE(struct regnode_1), /* IFMATCH */
EXTRA_SIZE(struct regnode_1), /* UNLESSM */
EXTRA_SIZE(struct regnode_1), /* SUSPEND */
@@ -354,16 +420,13 @@ static const U8 regarglen[] = {
EXTRA_SIZE(struct regnode_charclass), /* AHOCORASICKC */
EXTRA_SIZE(struct regnode_2L), /* GOSUB */
0, /* GOSTART */
- EXTRA_SIZE(struct regnode_1), /* NREF */
- EXTRA_SIZE(struct regnode_1), /* NREFF */
- EXTRA_SIZE(struct regnode_1), /* NREFFL */
EXTRA_SIZE(struct regnode_1), /* NGROUPP */
EXTRA_SIZE(struct regnode_1), /* INSUBP */
EXTRA_SIZE(struct regnode_1), /* DEFINEP */
0, /* ENDLIKE */
0, /* OPFAIL */
EXTRA_SIZE(struct regnode_1), /* ACCEPT */
- 0, /* VERB */
+ EXTRA_SIZE(struct regnode_1), /* VERB */
EXTRA_SIZE(struct regnode_1), /* PRUNE */
EXTRA_SIZE(struct regnode_1), /* MARKPOINT */
EXTRA_SIZE(struct regnode_1), /* SKIP */
@@ -394,31 +457,48 @@ static const char reg_off_by_arg[] = {
0, /* SEOL */
0, /* BOUND */
0, /* BOUNDL */
+ 0, /* BOUNDU */
+ 0, /* BOUNDA */
0, /* NBOUND */
0, /* NBOUNDL */
+ 0, /* NBOUNDU */
+ 0, /* NBOUNDA */
0, /* GPOS */
0, /* REG_ANY */
0, /* SANY */
0, /* CANY */
0, /* ANYOF */
+ 0, /* ANYOFV */
0, /* ALNUM */
0, /* ALNUML */
+ 0, /* ALNUMU */
+ 0, /* ALNUMA */
0, /* NALNUM */
0, /* NALNUML */
+ 0, /* NALNUMU */
+ 0, /* NALNUMA */
0, /* SPACE */
0, /* SPACEL */
+ 0, /* SPACEU */
+ 0, /* SPACEA */
0, /* NSPACE */
0, /* NSPACEL */
+ 0, /* NSPACEU */
+ 0, /* NSPACEA */
0, /* DIGIT */
0, /* DIGITL */
+ 0, /* DIGITA */
0, /* NDIGIT */
0, /* NDIGITL */
+ 0, /* NDIGITA */
0, /* CLUMP */
0, /* BRANCH */
0, /* BACK */
0, /* EXACT */
0, /* EXACTF */
0, /* EXACTFL */
+ 0, /* EXACTFU */
+ 0, /* EXACTFA */
0, /* NOTHING */
0, /* TAIL */
0, /* STAR */
@@ -433,6 +513,13 @@ static const char reg_off_by_arg[] = {
0, /* REF */
0, /* REFF */
0, /* REFFL */
+ 0, /* REFFU */
+ 0, /* REFFA */
+ 0, /* NREF */
+ 0, /* NREFF */
+ 0, /* NREFFL */
+ 0, /* NREFFU */
+ 0, /* NREFFA */
2, /* IFMATCH */
2, /* UNLESSM */
1, /* SUSPEND */
@@ -450,9 +537,6 @@ static const char reg_off_by_arg[] = {
0, /* AHOCORASICKC */
0, /* GOSUB */
0, /* GOSTART */
- 0, /* NREF */
- 0, /* NREFF */
- 0, /* NREFFL */
0, /* NGROUPP */
0, /* INSUBP */
0, /* DEFINEP */
@@ -495,86 +579,107 @@ EXTCONST char * const PL_reg_name[] = {
"SEOL", /* 0x08 */
"BOUND", /* 0x09 */
"BOUNDL", /* 0x0a */
- "NBOUND", /* 0x0b */
- "NBOUNDL", /* 0x0c */
- "GPOS", /* 0x0d */
- "REG_ANY", /* 0x0e */
- "SANY", /* 0x0f */
- "CANY", /* 0x10 */
- "ANYOF", /* 0x11 */
- "ALNUM", /* 0x12 */
- "ALNUML", /* 0x13 */
- "NALNUM", /* 0x14 */
- "NALNUML", /* 0x15 */
- "SPACE", /* 0x16 */
- "SPACEL", /* 0x17 */
- "NSPACE", /* 0x18 */
- "NSPACEL", /* 0x19 */
- "DIGIT", /* 0x1a */
- "DIGITL", /* 0x1b */
- "NDIGIT", /* 0x1c */
- "NDIGITL", /* 0x1d */
- "CLUMP", /* 0x1e */
- "BRANCH", /* 0x1f */
- "BACK", /* 0x20 */
- "EXACT", /* 0x21 */
- "EXACTF", /* 0x22 */
- "EXACTFL", /* 0x23 */
- "NOTHING", /* 0x24 */
- "TAIL", /* 0x25 */
- "STAR", /* 0x26 */
- "PLUS", /* 0x27 */
- "CURLY", /* 0x28 */
- "CURLYN", /* 0x29 */
- "CURLYM", /* 0x2a */
- "CURLYX", /* 0x2b */
- "WHILEM", /* 0x2c */
- "OPEN", /* 0x2d */
- "CLOSE", /* 0x2e */
- "REF", /* 0x2f */
- "REFF", /* 0x30 */
- "REFFL", /* 0x31 */
- "IFMATCH", /* 0x32 */
- "UNLESSM", /* 0x33 */
- "SUSPEND", /* 0x34 */
- "IFTHEN", /* 0x35 */
- "GROUPP", /* 0x36 */
- "LONGJMP", /* 0x37 */
- "BRANCHJ", /* 0x38 */
- "EVAL", /* 0x39 */
- "MINMOD", /* 0x3a */
- "LOGICAL", /* 0x3b */
- "RENUM", /* 0x3c */
- "TRIE", /* 0x3d */
- "TRIEC", /* 0x3e */
- "AHOCORASICK", /* 0x3f */
- "AHOCORASICKC", /* 0x40 */
- "GOSUB", /* 0x41 */
- "GOSTART", /* 0x42 */
- "NREF", /* 0x43 */
- "NREFF", /* 0x44 */
- "NREFFL", /* 0x45 */
- "NGROUPP", /* 0x46 */
- "INSUBP", /* 0x47 */
- "DEFINEP", /* 0x48 */
- "ENDLIKE", /* 0x49 */
- "OPFAIL", /* 0x4a */
- "ACCEPT", /* 0x4b */
- "VERB", /* 0x4c */
- "PRUNE", /* 0x4d */
- "MARKPOINT", /* 0x4e */
- "SKIP", /* 0x4f */
- "COMMIT", /* 0x50 */
- "CUTGROUP", /* 0x51 */
- "KEEPS", /* 0x52 */
- "LNBREAK", /* 0x53 */
- "VERTWS", /* 0x54 */
- "NVERTWS", /* 0x55 */
- "HORIZWS", /* 0x56 */
- "NHORIZWS", /* 0x57 */
- "FOLDCHAR", /* 0x58 */
- "OPTIMIZED", /* 0x59 */
- "PSEUDO", /* 0x5a */
+ "BOUNDU", /* 0x0b */
+ "BOUNDA", /* 0x0c */
+ "NBOUND", /* 0x0d */
+ "NBOUNDL", /* 0x0e */
+ "NBOUNDU", /* 0x0f */
+ "NBOUNDA", /* 0x10 */
+ "GPOS", /* 0x11 */
+ "REG_ANY", /* 0x12 */
+ "SANY", /* 0x13 */
+ "CANY", /* 0x14 */
+ "ANYOF", /* 0x15 */
+ "ANYOFV", /* 0x16 */
+ "ALNUM", /* 0x17 */
+ "ALNUML", /* 0x18 */
+ "ALNUMU", /* 0x19 */
+ "ALNUMA", /* 0x1a */
+ "NALNUM", /* 0x1b */
+ "NALNUML", /* 0x1c */
+ "NALNUMU", /* 0x1d */
+ "NALNUMA", /* 0x1e */
+ "SPACE", /* 0x1f */
+ "SPACEL", /* 0x20 */
+ "SPACEU", /* 0x21 */
+ "SPACEA", /* 0x22 */
+ "NSPACE", /* 0x23 */
+ "NSPACEL", /* 0x24 */
+ "NSPACEU", /* 0x25 */
+ "NSPACEA", /* 0x26 */
+ "DIGIT", /* 0x27 */
+ "DIGITL", /* 0x28 */
+ "DIGITA", /* 0x29 */
+ "NDIGIT", /* 0x2a */
+ "NDIGITL", /* 0x2b */
+ "NDIGITA", /* 0x2c */
+ "CLUMP", /* 0x2d */
+ "BRANCH", /* 0x2e */
+ "BACK", /* 0x2f */
+ "EXACT", /* 0x30 */
+ "EXACTF", /* 0x31 */
+ "EXACTFL", /* 0x32 */
+ "EXACTFU", /* 0x33 */
+ "EXACTFA", /* 0x34 */
+ "NOTHING", /* 0x35 */
+ "TAIL", /* 0x36 */
+ "STAR", /* 0x37 */
+ "PLUS", /* 0x38 */
+ "CURLY", /* 0x39 */
+ "CURLYN", /* 0x3a */
+ "CURLYM", /* 0x3b */
+ "CURLYX", /* 0x3c */
+ "WHILEM", /* 0x3d */
+ "OPEN", /* 0x3e */
+ "CLOSE", /* 0x3f */
+ "REF", /* 0x40 */
+ "REFF", /* 0x41 */
+ "REFFL", /* 0x42 */
+ "REFFU", /* 0x43 */
+ "REFFA", /* 0x44 */
+ "NREF", /* 0x45 */
+ "NREFF", /* 0x46 */
+ "NREFFL", /* 0x47 */
+ "NREFFU", /* 0x48 */
+ "NREFFA", /* 0x49 */
+ "IFMATCH", /* 0x4a */
+ "UNLESSM", /* 0x4b */
+ "SUSPEND", /* 0x4c */
+ "IFTHEN", /* 0x4d */
+ "GROUPP", /* 0x4e */
+ "LONGJMP", /* 0x4f */
+ "BRANCHJ", /* 0x50 */
+ "EVAL", /* 0x51 */
+ "MINMOD", /* 0x52 */
+ "LOGICAL", /* 0x53 */
+ "RENUM", /* 0x54 */
+ "TRIE", /* 0x55 */
+ "TRIEC", /* 0x56 */
+ "AHOCORASICK", /* 0x57 */
+ "AHOCORASICKC", /* 0x58 */
+ "GOSUB", /* 0x59 */
+ "GOSTART", /* 0x5a */
+ "NGROUPP", /* 0x5b */
+ "INSUBP", /* 0x5c */
+ "DEFINEP", /* 0x5d */
+ "ENDLIKE", /* 0x5e */
+ "OPFAIL", /* 0x5f */
+ "ACCEPT", /* 0x60 */
+ "VERB", /* 0x61 */
+ "PRUNE", /* 0x62 */
+ "MARKPOINT", /* 0x63 */
+ "SKIP", /* 0x64 */
+ "COMMIT", /* 0x65 */
+ "CUTGROUP", /* 0x66 */
+ "KEEPS", /* 0x67 */
+ "LNBREAK", /* 0x68 */
+ "VERTWS", /* 0x69 */
+ "NVERTWS", /* 0x6a */
+ "HORIZWS", /* 0x6b */
+ "NHORIZWS", /* 0x6c */
+ "FOLDCHAR", /* 0x6d */
+ "OPTIMIZED", /* 0x6e */
+ "PSEUDO", /* 0x6f */
/* ------------ States ------------- */
"TRIE_next", /* REGNODE_MAX +0x01 */
"TRIE_next_fail", /* REGNODE_MAX +0x02 */
@@ -625,27 +730,27 @@ EXTCONST char * const PL_reg_name[] = {
EXTCONST char * PL_reg_extflags_name[];
#else
EXTCONST char * const PL_reg_extflags_name[] = {
- /* Bits in extflags defined: 11111111111101111111111100111111 */
+ /* Bits in extflags defined: 11111111111111111111111011111111 */
"MULTILINE", /* 0x00000001 */
"SINGLELINE", /* 0x00000002 */
"FOLD", /* 0x00000004 */
"EXTENDED", /* 0x00000008 */
"KEEPCOPY", /* 0x00000010 */
- "LOCALE", /* 0x00000020 */
- "UNUSED_BIT_6", /* 0x00000040 */
- "UNUSED_BIT_7", /* 0x00000080 */
- "ANCH_BOL", /* 0x00000100 */
- "ANCH_MBOL", /* 0x00000200 */
- "ANCH_SBOL", /* 0x00000400 */
- "ANCH_GPOS", /* 0x00000800 */
- "GPOS_SEEN", /* 0x00001000 */
- "GPOS_FLOAT", /* 0x00002000 */
- "LOOKBEHIND_SEEN", /* 0x00004000 */
- "EVAL_SEEN", /* 0x00008000 */
- "CANY_SEEN", /* 0x00010000 */
- "NOSCAN", /* 0x00020000 */
- "CHECK_ALL", /* 0x00040000 */
- "UNUSED_BIT_19", /* 0x00080000 */
+ "CHARSET", /* 0x000000e0 */
+ "CHARSET", /* 0x000000e0 */
+ "CHARSET", /* 0x000000e0 */
+ "UNUSED_BIT_8", /* 0x00000100 */
+ "ANCH_BOL", /* 0x00000200 */
+ "ANCH_MBOL", /* 0x00000400 */
+ "ANCH_SBOL", /* 0x00000800 */
+ "ANCH_GPOS", /* 0x00001000 */
+ "GPOS_SEEN", /* 0x00002000 */
+ "GPOS_FLOAT", /* 0x00004000 */
+ "LOOKBEHIND_SEEN", /* 0x00008000 */
+ "EVAL_SEEN", /* 0x00010000 */
+ "CANY_SEEN", /* 0x00020000 */
+ "NOSCAN", /* 0x00040000 */
+ "CHECK_ALL", /* 0x00080000 */
"MATCH_UTF8", /* 0x00100000 */
"USE_INTUIT_NOML", /* 0x00200000 */
"USE_INTUIT_ML", /* 0x00400000 */
@@ -661,4 +766,50 @@ EXTCONST char * const PL_reg_extflags_name[] = {
};
#endif /* DOINIT */
+/* The following have no fixed length. U8 so we can do strchr() on it. */
+#define REGNODE_VARIES(node) (PL_varies_bitmask[(node) >> 3] & (1 << ((node) & 7)))
+
+#ifndef DOINIT
+EXTCONST U8 PL_varies[] __attribute__deprecated__;
+#else
+EXTCONST U8 PL_varies[] __attribute__deprecated__ = {
+ ANYOFV, CLUMP, BRANCH, BACK, STAR, PLUS, CURLY, CURLYN, CURLYM, CURLYX,
+ WHILEM, REF, REFF, REFFL, REFFU, REFFA, NREF, NREFF, NREFFL, NREFFU,
+ NREFFA, SUSPEND, IFTHEN, BRANCHJ,
+ 0
+};
+#endif /* DOINIT */
+
+#ifndef DOINIT
+EXTCONST U8 PL_varies_bitmask[];
+#else
+EXTCONST U8 PL_varies_bitmask[] = {
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0xE0, 0x80, 0x3F, 0xFF, 0x33, 0x01, 0x00, 0x00, 0x00
+};
+#endif /* DOINIT */
+
+/* The following always have a length of 1. U8 we can do strchr() on it. */
+/* (Note that length 1 means "one character" under UTF8, not "one octet".) */
+#define REGNODE_SIMPLE(node) (PL_simple_bitmask[(node) >> 3] & (1 << ((node) & 7)))
+
+#ifndef DOINIT
+EXTCONST U8 PL_simple[] __attribute__deprecated__;
+#else
+EXTCONST U8 PL_simple[] __attribute__deprecated__ = {
+ REG_ANY, SANY, CANY, ANYOF, ALNUM, ALNUML, ALNUMU, ALNUMA, NALNUM,
+ NALNUML, NALNUMU, NALNUMA, SPACE, SPACEL, SPACEU, SPACEA, NSPACE,
+ NSPACEL, NSPACEU, NSPACEA, DIGIT, DIGITL, DIGITA, NDIGIT, NDIGITL,
+ NDIGITA, VERTWS, NVERTWS, HORIZWS, NHORIZWS,
+ 0
+};
+#endif /* DOINIT */
+
+#ifndef DOINIT
+EXTCONST U8 PL_simple_bitmask[];
+#else
+EXTCONST U8 PL_simple_bitmask[] = {
+ 0x00, 0x00, 0xBC, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E
+};
+#endif /* DOINIT */
+
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/scope.h b/Master/tlpkg/tlperl/lib/CORE/scope.h
index 64e7e279f1f..113f4e8d717 100644
--- a/Master/tlpkg/tlperl/lib/CORE/scope.h
+++ b/Master/tlpkg/tlperl/lib/CORE/scope.h
@@ -55,10 +55,17 @@
#define SAVEt_STACK_CXPOS 44
#define SAVEt_PARSER 45
#define SAVEt_ADELETE 46
+#define SAVEt_I32_SMALL 47
+#define SAVEt_INT_SMALL 48
+#define SAVEt_GVSV 49
+#define SAVEt_FREECOPHH 50
#define SAVEf_SETMAGIC 1
#define SAVEf_KEEPOLDELEM 2
+#define SAVE_TIGHT_SHIFT 6
+#define SAVE_MASK 0x3F
+
#define save_aelem(av,idx,sptr) save_aelem_flags(av,idx,sptr,SAVEf_SETMAGIC)
#define save_helem(hv,key,sptr) save_helem_flags(hv,key,sptr,SAVEf_SETMAGIC)
@@ -72,6 +79,7 @@
#define SSPUSHLONG(i) (PL_savestack[PL_savestack_ix++].any_long = (long)(i))
#define SSPUSHBOOL(p) (PL_savestack[PL_savestack_ix++].any_bool = (p))
#define SSPUSHIV(i) (PL_savestack[PL_savestack_ix++].any_iv = (IV)(i))
+#define SSPUSHUV(u) (PL_savestack[PL_savestack_ix++].any_uv = (UV)(u))
#define SSPUSHPTR(p) (PL_savestack[PL_savestack_ix++].any_ptr = (void*)(p))
#define SSPUSHDPTR(p) (PL_savestack[PL_savestack_ix++].any_dptr = (p))
#define SSPUSHDXPTR(p) (PL_savestack[PL_savestack_ix++].any_dxptr = (p))
@@ -79,6 +87,7 @@
#define SSPOPLONG (PL_savestack[--PL_savestack_ix].any_long)
#define SSPOPBOOL (PL_savestack[--PL_savestack_ix].any_bool)
#define SSPOPIV (PL_savestack[--PL_savestack_ix].any_iv)
+#define SSPOPUV (PL_savestack[--PL_savestack_ix].any_uv)
#define SSPOPPTR (PL_savestack[--PL_savestack_ix].any_ptr)
#define SSPOPDPTR (PL_savestack[--PL_savestack_ix].any_dptr)
#define SSPOPDXPTR (PL_savestack[--PL_savestack_ix].any_dxptr)
@@ -162,7 +171,7 @@ scope has the given name. Name must be a literal string.
#define SAVEINT(i) save_int((int*)&(i))
#define SAVEIV(i) save_iv((IV*)&(i))
#define SAVELONG(l) save_long((long*)&(l))
-#define SAVEBOOL(b) save_bool((bool*)&(b))
+#define SAVEBOOL(b) save_bool(&(b))
#define SAVESPTR(s) save_sptr((SV**)&(s))
#define SAVEPPTR(s) save_pptr((char**)&(s))
#define SAVEVPTR(s) save_vptr((void*)&(s))
@@ -176,6 +185,7 @@ scope has the given name. Name must be a literal string.
#define SAVEGENERICPV(s) save_generic_pvref((char**)&(s))
#define SAVESHAREDPV(s) save_shared_pvref((char**)&(s))
#define SAVESETSVFLAGS(sv,mask,val) save_set_svflags(sv,mask,val)
+#define SAVEFREECOPHH(h) save_pushptr((void *)(h), SAVEt_FREECOPHH)
#define SAVEDELETE(h,k,l) \
save_delete(MUTABLE_HV(h), (char*)(k), (I32)(l))
#define SAVEHDELETE(h,s) \
@@ -192,7 +202,7 @@ scope has the given name. Name must be a literal string.
STMT_START { \
SSCHECK(2); \
SSPUSHINT(PL_stack_sp - PL_stack_base); \
- SSPUSHINT(SAVEt_STACK_POS); \
+ SSPUSHUV(SAVEt_STACK_POS); \
} STMT_END
#define SAVEOP() save_op()
@@ -222,7 +232,7 @@ scope has the given name. Name must be a literal string.
SSCHECK(3); \
SSPUSHINT(cxstack[cxstack_ix].blk_oldsp); \
SSPUSHINT(cxstack_ix); \
- SSPUSHINT(SAVEt_STACK_CXPOS); \
+ SSPUSHUV(SAVEt_STACK_CXPOS); \
} STMT_END
#define SAVEPARSER(p) save_pushptr((p), SAVEt_PARSER)
@@ -246,7 +256,7 @@ scope has the given name. Name must be a literal string.
* pointer would get broken if the savestack is moved on reallocation.
* SSNEWa() works like SSNEW(), but also aligns the data to the specified
* number of bytes. MEM_ALIGNBYTES is perhaps the most useful. The
- * alignment will be preserved therough savestack reallocation *only* if
+ * alignment will be preserved through savestack reallocation *only* if
* realloc returns data aligned to a size divisible by "align"!
*
* SSPTR() converts the index returned by SSNEW/SSNEWa() into a pointer.
diff --git a/Master/tlpkg/tlperl/lib/CORE/sv.h b/Master/tlpkg/tlperl/lib/CORE/sv.h
index fc1b475a65e..7f466754142 100644
--- a/Master/tlpkg/tlperl/lib/CORE/sv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/sv.h
@@ -76,13 +76,9 @@ typedef enum {
#endif
/* There is collusion here with sv_clear - sv_clear exits early for SVt_NULL
- and SVt_IV, so never reaches the clause at the end that uses
- sv_type_details->body_size to determine whether to call safefree(). Hence
- body_size can be set no-zero to record the size of PTEs and HEs, without
- fear of bogus frees. */
-#ifdef PERL_IN_SV_C
-#define PTE_SVSLOT SVt_IV
-#endif
+ so never reaches the clause at the end that uses sv_type_details->body_size
+ to determine whether to call safefree(). Hence body_size can be set
+ non-zero to record the size of HEs, without fear of bogus frees. */
#if defined(PERL_IN_HV_C) || defined(PERL_IN_XS_APITEST)
#define HE_SVSLOT SVt_NULL
#endif
@@ -110,6 +106,7 @@ typedef struct hek HEK;
SV** svu_array; \
HE** svu_hash; \
GP* svu_gp; \
+ PerlIO *svu_fp; \
} sv_u
@@ -119,10 +116,10 @@ struct STRUCT_SV { /* struct sv { */
#ifdef DEBUG_LEAKING_SCALARS
PERL_BITFIELD32 sv_debug_optype:9; /* the type of OP that allocated us */
PERL_BITFIELD32 sv_debug_inpad:1; /* was allocated in a pad for an OP */
- PERL_BITFIELD32 sv_debug_cloned:1; /* was cloned for an ithread */
PERL_BITFIELD32 sv_debug_line:16; /* the line where we were allocated */
- U32 sv_debug_serial; /* serial number of sv allocation */
- char * sv_debug_file; /* the file where we were allocated */
+ UV sv_debug_serial; /* serial number of sv allocation */
+ char * sv_debug_file; /* the file where we were allocated */
+ SV * sv_debug_parent; /* what we were cloned from (ithreads)*/
#endif
};
@@ -391,15 +388,14 @@ perform the upgrade if necessary. See C<svtype>.
#define SVpav_REIFY 0x80000000 /* can become real */
/* PVHV */
#define SVphv_HASKFLAGS 0x80000000 /* keys have flag byte after hash */
-/* PVFM */
-#define SVpfm_COMPILED 0x80000000 /* FORMLINE is compiled */
/* PVGV when SVpbm_VALID is true */
#define SVpbm_TAIL 0x80000000
/* RV upwards. However, SVf_ROK and SVp_IOK are exclusive */
#define SVprv_WEAKREF 0x80000000 /* Weak reference */
-#define _XPV_HEAD \
- union _xnvu xnv_u; \
+#define _XPV_HEAD \
+ HV* xmg_stash; /* class package */ \
+ union _xmgu xmg_u; \
STRLEN xpv_cur; /* length of svu_pv as a C string */ \
STRLEN xpv_len /* allocated size */
@@ -419,12 +415,9 @@ union _xnvu {
union _xivu {
IV xivu_iv; /* integer value */
- /* xpvfm: lines */
UV xivu_uv;
- void * xivu_p1;
- I32 xivu_i32;
+ I32 xivu_i32; /* BmUSEFUL */
HEK * xivu_namehek; /* xpvlv, xpvgv: GvNAME */
- HV * xivu_hv; /* regexp: paren_names */
};
union _xmgu {
@@ -453,23 +446,20 @@ struct xpvuv {
struct xpvnv {
_XPV_HEAD;
union _xivu xiv_u;
+ union _xnvu xnv_u;
};
-#define _XPVMG_HEAD \
- union _xivu xiv_u; \
- union _xmgu xmg_u; \
- HV* xmg_stash /* class package */
-
/* This structure must match the beginning of struct xpvhv in hv.h. */
struct xpvmg {
_XPV_HEAD;
- _XPVMG_HEAD;
+ union _xivu xiv_u;
+ union _xnvu xnv_u;
};
struct xpvlv {
_XPV_HEAD;
- _XPVMG_HEAD;
-
+ union _xivu xiv_u;
+ union _xnvu xnv_u;
STRLEN xlv_targoff;
STRLEN xlv_targlen;
SV* xlv_targ;
@@ -481,7 +471,8 @@ struct xpvlv {
Boyer-Moore. */
struct xpvgv {
_XPV_HEAD;
- _XPVMG_HEAD;
+ union _xivu xiv_u;
+ union _xnvu xnv_u;
};
/* This structure must match XPVCV in cv.h */
@@ -509,44 +500,41 @@ typedef U16 cv_flags_t;
struct xpvfm {
_XPV_HEAD;
- _XPVMG_HEAD;
_XPVCV_COMMON;
+ IV xfm_lines;
};
-#define _XPVIO_TAIL \
- PerlIO * xio_ifp; /* ifp and ofp are normally the same */ \
- PerlIO * xio_ofp; /* but sockets need separate streams */ \
- /* Cray addresses everything by word boundaries (64 bits) and \
- * code and data pointers cannot be mixed (which is exactly what \
- * Perl_filter_add() tries to do with the dirp), hence the \
- * following union trick (as suggested by Gurusamy Sarathy). \
- * For further information see Geir Johansen's problem report \
- * titled [ID 20000612.002] Perl problem on Cray system \
- * The any pointer (known as IoANY()) will also be a good place \
- * to hang any IO disciplines to. \
- */ \
- union { \
- DIR * xiou_dirp; /* for opendir, readdir, etc */ \
- void * xiou_any; /* for alignment */ \
- } xio_dirpu; \
- /* IV xio_lines is now in IVX $. */ \
- IV xio_page; /* $% */ \
- IV xio_page_len; /* $= */ \
- IV xio_lines_left; /* $- */ \
- char * xio_top_name; /* $^ */ \
- GV * xio_top_gv; /* $^ */ \
- char * xio_fmt_name; /* $~ */ \
- GV * xio_fmt_gv; /* $~ */ \
- char * xio_bottom_name;/* $^B */ \
- GV * xio_bottom_gv; /* $^B */ \
- char xio_type; \
- U8 xio_flags
-
struct xpvio {
_XPV_HEAD;
- _XPVMG_HEAD;
- _XPVIO_TAIL;
+ union _xivu xiv_u;
+ /* ifp and ofp are normally the same, but sockets need separate streams */
+ PerlIO * xio_ofp;
+ /* Cray addresses everything by word boundaries (64 bits) and
+ * code and data pointers cannot be mixed (which is exactly what
+ * Perl_filter_add() tries to do with the dirp), hence the
+ * following union trick (as suggested by Gurusamy Sarathy).
+ * For further information see Geir Johansen's problem report
+ * titled [ID 20000612.002] Perl problem on Cray system
+ * The any pointer (known as IoANY()) will also be a good place
+ * to hang any IO disciplines to.
+ */
+ union {
+ DIR * xiou_dirp; /* for opendir, readdir, etc */
+ void * xiou_any; /* for alignment */
+ } xio_dirpu;
+ /* IV xio_lines is now in IVX $. */
+ IV xio_page; /* $% */
+ IV xio_page_len; /* $= */
+ IV xio_lines_left; /* $- */
+ char * xio_top_name; /* $^ */
+ GV * xio_top_gv; /* $^ */
+ char * xio_fmt_name; /* $~ */
+ GV * xio_fmt_gv; /* $~ */
+ char * xio_bottom_name;/* $^B */
+ GV * xio_bottom_gv; /* $^B */
+ char xio_type;
+ U8 xio_flags;
};
#define xio_dirp xio_dirpu.xiou_dirp
@@ -558,7 +546,8 @@ struct xpvio {
#define IOf_DIDTOP 8 /* just did top of form */
#define IOf_UNTAINT 16 /* consider this fp (and its data) "safe" */
#define IOf_NOLINE 32 /* slurped a pseudo-line from empty file */
-#define IOf_FAKE_DIRP 64 /* xio_dirp is fake (source filters kludge) */
+#define IOf_FAKE_DIRP 64 /* xio_dirp is fake (source filters kludge)
+ Also, when this is set, SvPVX() is valid */
/* The following macros define implementation-independent predicates on SVs. */
@@ -932,9 +921,11 @@ the scalar's value cannot change unless written to.
#define SvSCREAM_on(sv) (SvFLAGS(sv) |= SVp_SCREAM)
#define SvSCREAM_off(sv) (SvFLAGS(sv) &= ~SVp_SCREAM)
-#define SvCOMPILED(sv) (SvFLAGS(sv) & SVpfm_COMPILED)
-#define SvCOMPILED_on(sv) (SvFLAGS(sv) |= SVpfm_COMPILED)
-#define SvCOMPILED_off(sv) (SvFLAGS(sv) &= ~SVpfm_COMPILED)
+#ifndef PERL_CORE
+# define SvCOMPILED(sv) 0
+# define SvCOMPILED_on(sv)
+# define SvCOMPILED_off(sv)
+#endif
#define SvEVALED(sv) (SvFLAGS(sv) & SVrepl_EVAL)
#define SvEVALED_on(sv) (SvFLAGS(sv) |= SVrepl_EVAL)
@@ -1054,6 +1045,8 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(_svpvx) != SVt_PVAV); \
assert(SvTYPE(_svpvx) != SVt_PVHV); \
assert(!isGV_with_GP(_svpvx)); \
+ assert(!(SvTYPE(_svpvx) == SVt_PVIO \
+ && !(IoFLAGS(_svpvx) & IOf_FAKE_DIRP))); \
&((_svpvx)->sv_u.svu_pv); \
}))
# define SvCUR(sv) \
@@ -1062,6 +1055,8 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(_svcur) != SVt_PVAV); \
assert(SvTYPE(_svcur) != SVt_PVHV); \
assert(!isGV_with_GP(_svcur)); \
+ assert(!(SvTYPE(_svcur) == SVt_PVIO \
+ && !(IoFLAGS(_svcur) & IOf_FAKE_DIRP))); \
&(((XPV*) MUTABLE_PTR(SvANY(_svcur)))->xpv_cur); \
}))
# define SvIVX(sv) \
@@ -1072,6 +1067,7 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(_svivx) != SVt_PVCV); \
assert(SvTYPE(_svivx) != SVt_PVFM); \
assert(SvTYPE(_svivx) != SVt_PVIO); \
+ assert(SvTYPE(_svivx) != SVt_REGEXP); \
assert(!isGV_with_GP(_svivx)); \
&(((XPVIV*) MUTABLE_PTR(SvANY(_svivx)))->xiv_iv); \
}))
@@ -1083,6 +1079,7 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(_svuvx) != SVt_PVCV); \
assert(SvTYPE(_svuvx) != SVt_PVFM); \
assert(SvTYPE(_svuvx) != SVt_PVIO); \
+ assert(SvTYPE(_svuvx) != SVt_REGEXP); \
assert(!isGV_with_GP(_svuvx)); \
&(((XPVUV*) MUTABLE_PTR(SvANY(_svuvx)))->xuv_uv); \
}))
@@ -1094,6 +1091,7 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(_svnvx) != SVt_PVCV); \
assert(SvTYPE(_svnvx) != SVt_PVFM); \
assert(SvTYPE(_svnvx) != SVt_PVIO); \
+ assert(SvTYPE(_svnvx) != SVt_REGEXP); \
assert(!isGV_with_GP(_svnvx)); \
&(((XPVNV*) MUTABLE_PTR(SvANY(_svnvx)))->xnv_u.xnv_nv); \
}))
@@ -1105,6 +1103,8 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(_svrv) != SVt_PVCV); \
assert(SvTYPE(_svrv) != SVt_PVFM); \
assert(!isGV_with_GP(_svrv)); \
+ assert(!(SvTYPE(_svrv) == SVt_PVIO \
+ && !(IoFLAGS(_svrv) & IOf_FAKE_DIRP))); \
&((_svrv)->sv_u.svu_rv); \
}))
# define SvRV_const(sv) \
@@ -1115,6 +1115,8 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(_svrv) != SVt_PVCV); \
assert(SvTYPE(_svrv) != SVt_PVFM); \
assert(!isGV_with_GP(_svrv)); \
+ assert(!(SvTYPE(_svrv) == SVt_PVIO \
+ && !(IoFLAGS(_svrv) & IOf_FAKE_DIRP))); \
(_svrv)->sv_u.svu_rv; \
})
# define SvMAGIC(sv) \
@@ -1168,6 +1170,9 @@ the scalar's value cannot change unless written to.
#define SvIV_please(sv) \
STMT_START {if (!SvIOKp(sv) && (SvNOK(sv) || SvPOK(sv))) \
(void) SvIV(sv); } STMT_END
+#define SvIV_please_nomg(sv) \
+ STMT_START {if (!SvIOKp(sv) && (SvNOK(sv) || SvPOK(sv))) \
+ (void) SvIV_nomg(sv); } STMT_END
#define SvIV_set(sv, val) \
STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
assert(SvTYPE(sv) != SVt_PVAV); \
@@ -1187,6 +1192,8 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(sv) != SVt_PVAV); \
assert(SvTYPE(sv) != SVt_PVHV); \
assert(!isGV_with_GP(sv)); \
+ assert(!(SvTYPE(sv) == SVt_PVIO \
+ && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
((sv)->sv_u.svu_pv = (val)); } STMT_END
#define SvUV_set(sv, val) \
STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
@@ -1202,6 +1209,8 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(sv) != SVt_PVCV); \
assert(SvTYPE(sv) != SVt_PVFM); \
assert(!isGV_with_GP(sv)); \
+ assert(!(SvTYPE(sv) == SVt_PVIO \
+ && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
((sv)->sv_u.svu_rv = (val)); } STMT_END
#define SvMAGIC_set(sv, val) \
STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
@@ -1214,12 +1223,16 @@ the scalar's value cannot change unless written to.
assert(SvTYPE(sv) != SVt_PVAV); \
assert(SvTYPE(sv) != SVt_PVHV); \
assert(!isGV_with_GP(sv)); \
+ assert(!(SvTYPE(sv) == SVt_PVIO \
+ && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
(((XPV*) SvANY(sv))->xpv_cur = (val)); } STMT_END
#define SvLEN_set(sv, val) \
STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
assert(SvTYPE(sv) != SVt_PVAV); \
assert(SvTYPE(sv) != SVt_PVHV); \
assert(!isGV_with_GP(sv)); \
+ assert(!(SvTYPE(sv) == SVt_PVIO \
+ && !(IoFLAGS(sv) & IOf_FAKE_DIRP))); \
(((XPV*) SvANY(sv))->xpv_len = (val)); } STMT_END
#define SvEND_set(sv, val) \
STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
@@ -1306,14 +1319,14 @@ the scalar's value cannot change unless written to.
#endif
-#define FmLINES(sv) ((XPVFM*) SvANY(sv))->xiv_u.xivu_iv
+#define FmLINES(sv) ((XPVFM*) SvANY(sv))->xfm_lines
#define LvTYPE(sv) ((XPVLV*) SvANY(sv))->xlv_type
#define LvTARG(sv) ((XPVLV*) SvANY(sv))->xlv_targ
#define LvTARGOFF(sv) ((XPVLV*) SvANY(sv))->xlv_targoff
#define LvTARGLEN(sv) ((XPVLV*) SvANY(sv))->xlv_targlen
-#define IoIFP(sv) ((XPVIO*) SvANY(sv))->xio_ifp
+#define IoIFP(sv) (sv)->sv_u.svu_fp
#define IoOFP(sv) ((XPVIO*) SvANY(sv))->xio_ofp
#define IoDIRP(sv) ((XPVIO*) SvANY(sv))->xio_dirp
#define IoANY(sv) ((XPVIO*) SvANY(sv))->xio_any
@@ -1408,6 +1421,9 @@ Returns a pointer to the string in the SV, or a stringified form of
the SV if the SV does not contain a string. The SV may cache the
stringified form becoming C<SvPOK>. Handles 'get' magic.
+=for apidoc Am|char*|SvPV_nomg_nolen|SV* sv
+Like C<SvPV_nolen> but doesn't process magic.
+
=for apidoc Am|IV|SvIV|SV* sv
Coerces the given SV to an integer and returns it. See C<SvIVx> for a
version which guarantees to evaluate sv only once.
@@ -1424,6 +1440,9 @@ otherwise use the more efficient C<SvIV>.
Coerce the given SV to a double and return it. See C<SvNVx> for a version
which guarantees to evaluate sv only once.
+=for apidoc Am|NV|SvNV_nomg|SV* sv
+Like C<SvNV> but doesn't process magic.
+
=for apidoc Am|NV|SvNVx|SV* sv
Coerces the given SV to a double and returns it. Guarantees to evaluate
C<sv> only once. Only use this if C<sv> is an expression with side effects,
@@ -1443,6 +1462,12 @@ otherwise use the more efficient C<SvUV>.
=for apidoc Am|bool|SvTRUE|SV* sv
Returns a boolean indicating whether Perl would evaluate the SV as true or
+false. See SvOK() for a defined/undefined test. Handles 'get' magic
+unless the scalar is already SvPOK, SvIOK or SvNOK (the public, not the
+private flags).
+
+=for apidoc Am|bool|SvTRUE_nomg|SV* sv
+Returns a boolean indicating whether Perl would evaluate the SV as true or
false. See SvOK() for a defined/undefined test. Does not handle 'get' magic.
=for apidoc Am|char*|SvPVutf8_force|SV* sv|STRLEN len
@@ -1495,6 +1520,9 @@ scalar.
=for apidoc Am|void|sv_catpvn_nomg|SV* sv|const char* ptr|STRLEN len
Like C<sv_catpvn> but doesn't process magic.
+=for apidoc Am|void|sv_catpv_nomg|SV* sv|const char* ptr
+Like C<sv_catpv> but doesn't process magic.
+
=for apidoc Am|void|sv_setsv_nomg|SV* dsv|SV* ssv
Like C<sv_setsv> but doesn't process magic.
@@ -1515,6 +1543,7 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>
#define SvIV_nomg(sv) (SvIOK(sv) ? SvIVX(sv) : sv_2iv_flags(sv, 0))
#define SvUV_nomg(sv) (SvIOK(sv) ? SvUVX(sv) : sv_2uv_flags(sv, 0))
+#define SvNV_nomg(sv) (SvNOK(sv) ? SvNVX(sv) : sv_2nv_flags(sv, 0))
/* ----*/
@@ -1560,6 +1589,10 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>
((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
? SvPVX(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC))
+#define SvPV_nomg_nolen(sv) \
+ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
+ ? SvPVX(sv) : sv_2pv_flags(sv, 0, 0))
+
#define SvPV_nolen_const(sv) \
((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \
? SvPVX_const(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC|SV_CONST_RETURN))
@@ -1636,6 +1669,22 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>
: SvNOK(sv) \
? SvNVX(sv) != 0.0 \
: sv_2bool(sv) )
+# define SvTRUE_nomg(sv) ( \
+ !sv \
+ ? 0 \
+ : SvPOK(sv) \
+ ? (({XPV *nxpv = (XPV*)SvANY(sv); \
+ nxpv && \
+ (nxpv->xpv_cur > 1 || \
+ (nxpv->xpv_cur && *(sv)->sv_u.svu_pv != '0')); }) \
+ ? 1 \
+ : 0) \
+ : \
+ SvIOK(sv) \
+ ? SvIVX(sv) != 0 \
+ : SvNOK(sv) \
+ ? SvNVX(sv) != 0.0 \
+ : sv_2bool_flags(sv,0) )
# define SvTRUEx(sv) ({SV *_sv = (sv); SvTRUE(_sv); })
#else /* __GNUC__ */
@@ -1668,6 +1717,21 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>
: SvNOK(sv) \
? SvNVX(sv) != 0.0 \
: sv_2bool(sv) )
+# define SvTRUE_nomg(sv) ( \
+ !sv \
+ ? 0 \
+ : SvPOK(sv) \
+ ? ((PL_Xpv = (XPV*)SvANY(PL_Sv = (sv))) && \
+ (PL_Xpv->xpv_cur > 1 || \
+ (PL_Xpv->xpv_cur && *PL_Sv->sv_u.svu_pv != '0')) \
+ ? 1 \
+ : 0) \
+ : \
+ SvIOK(sv) \
+ ? SvIVX(sv) != 0 \
+ : SvNOK(sv) \
+ ? SvNVX(sv) != 0.0 \
+ : sv_2bool_flags(sv,0) )
# define SvTRUEx(sv) ((PL_Sv = (sv)), SvTRUE(PL_Sv))
#endif /* __GNU__ */
@@ -1698,6 +1762,9 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>
* This is used when the caller has already determined it is, and avoids
* redundant work */
#define SV_FORCE_UTF8_UPGRADE 4096
+/* if (after resolving magic etc), the SV is found to be overloaded,
+ * don't call the overload magic, just return as-is */
+#define SV_SKIP_OVERLOAD 8192
/* The core is safe for this COW optimisation. XS code on CPAN may not be.
So only default to doing the COW setup if we're in the core.
@@ -1760,6 +1827,7 @@ mg.c:1024: warning: left-hand operand of comma expression has no effect
#define sv_utf8_upgrade_flags(sv, flags) sv_utf8_upgrade_flags_grow(sv, flags, 0)
#define sv_utf8_upgrade_nomg(sv) sv_utf8_upgrade_flags(sv, 0)
#define sv_catpvn_nomg(dsv, sstr, slen) sv_catpvn_flags(dsv, sstr, slen, 0)
+#define sv_catpv_nomg(dsv, sstr) sv_catpv_flags(dsv, sstr, 0)
#define sv_setsv(dsv, ssv) \
sv_setsv_flags(dsv, ssv, SV_GMAGIC|SV_DO_COW_SVSETSV)
#define sv_setsv_nomg(dsv, ssv) sv_setsv_flags(dsv, ssv, SV_DO_COW_SVSETSV)
@@ -1778,6 +1846,12 @@ mg.c:1024: warning: left-hand operand of comma expression has no effect
#define sv_utf8_upgrade(sv) sv_utf8_upgrade_flags(sv, SV_GMAGIC)
#define sv_2iv(sv) sv_2iv_flags(sv, SV_GMAGIC)
#define sv_2uv(sv) sv_2uv_flags(sv, SV_GMAGIC)
+#define sv_2nv(sv) sv_2nv_flags(sv, SV_GMAGIC)
+#define sv_eq(sv1, sv2) sv_eq_flags(sv1, sv2, SV_GMAGIC)
+#define sv_cmp(sv1, sv2) sv_cmp_flags(sv1, sv2, SV_GMAGIC)
+#define sv_cmp_locale(sv1, sv2) sv_cmp_locale_flags(sv1, sv2, SV_GMAGIC)
+#define sv_collxfrm(sv, nxp) sv_cmp_flags(sv, nxp, SV_GMAGIC)
+#define sv_2bool(sv) sv_2bool_flags(sv, SV_GMAGIC)
#define sv_insert(bigstr, offset, len, little, littlelen) \
Perl_sv_insert_flags(aTHX_ (bigstr),(offset), (len), (little), \
(littlelen), SV_GMAGIC)
@@ -1855,10 +1929,10 @@ Returns a pointer to the character buffer.
=cut
*/
-#define SvSHARE(sv) CALL_FPTR(PL_sharehook)(aTHX_ sv)
-#define SvLOCK(sv) CALL_FPTR(PL_lockhook)(aTHX_ sv)
-#define SvUNLOCK(sv) CALL_FPTR(PL_unlockhook)(aTHX_ sv)
-#define SvDESTROYABLE(sv) CALL_FPTR(PL_destroyhook)(aTHX_ sv)
+#define SvSHARE(sv) PL_sharehook(aTHX_ sv)
+#define SvLOCK(sv) PL_lockhook(aTHX_ sv)
+#define SvUNLOCK(sv) PL_unlockhook(aTHX_ sv)
+#define SvDESTROYABLE(sv) PL_destroyhook(aTHX_ sv)
#define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END
#define SvSETMAGIC(x) STMT_START { if (SvSMAGICAL(x)) mg_set(x); } STMT_END
@@ -1933,6 +2007,8 @@ struct clone_params {
AV* stashes;
UV flags;
PerlInterpreter *proto_perl;
+ PerlInterpreter *new_perl;
+ AV *unreferenced;
};
/*
diff --git a/Master/tlpkg/tlperl/lib/CORE/sys/socket.h b/Master/tlpkg/tlperl/lib/CORE/sys/socket.h
index a3c53b0e883..3b92b13d546 100644
--- a/Master/tlpkg/tlperl/lib/CORE/sys/socket.h
+++ b/Master/tlpkg/tlperl/lib/CORE/sys/socket.h
@@ -6,30 +6,93 @@
#ifndef _INC_SYS_SOCKET
#define _INC_SYS_SOCKET
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#define WIN32_LEAN_AND_MEAN
#ifdef __GNUC__
# define Win32_Winsock
#endif
#include <windows.h>
-
/* Too late to include winsock2.h if winsock.h has already been loaded */
#ifndef _WINSOCKAPI_
# if defined(UNDER_CE) && UNDER_CE <= 300
/* winsock2 only for 4.00+ */
# include <winsock.h>
# else
-# include <winsock2.h>
-#endif
+# include <winsock2.h>
+ /* We need to include ws2tcpip.h to get the IPv6 definitions.
+ * It will in turn include wspiapi.h. Later versions of that
+ * header in the Windows SDK generate C++ template code that
+ * can't be compiled with VC6 anymore. The _WSPIAPI_COUNTOF
+ * definition below prevents wspiapi.h from generating this
+ * incompatible code.
+ */
+# define _WSPIAPI_COUNTOF(_Array) (sizeof(_Array) / sizeof(_Array[0]))
+# include <ws2tcpip.h>
+
+# ifndef SIO_GET_INTERFACE_LIST_EX
+ /* The ws2tcpip.h header included in VC6 doesn't define the
+ * sin6_scope_id member of sockaddr_in6. We define our own
+ * version and redefine sockaddr_in6 to point to this one
+ * instead for compiling e.g. Socket.xs.
+ */
+ struct my_sockaddr_in6 {
+ short sin6_family; /* AF_INET6 */
+ u_short sin6_port; /* Transport level port number */
+ u_long sin6_flowinfo; /* IPv6 flow information */
+ struct in_addr6 sin6_addr; /* IPv6 address */
+ u_long sin6_scope_id; /* set of interfaces for a scope */
+ };
+# define sockaddr_in6 my_sockaddr_in6
+
+ /* Provide implementations of IN6ADDR_SETANY() and IN6ADDR_SETLOOPBACK
+ * that also initialize the sin6_scope_id field.
+ */
+# undef IN6ADDR_SETANY
+# define IN6ADDR_SETANY(x) {\
+(x)->sin6_family = AF_INET6; \
+(x)->sin6_port = 0; \
+(x)->sin6_flowinfo = 0; \
+*((u_long *)((x)->sin6_addr.s6_addr) ) = 0; \
+*((u_long *)((x)->sin6_addr.s6_addr) + 1) = 0; \
+*((u_long *)((x)->sin6_addr.s6_addr) + 2) = 0; \
+*((u_long *)((x)->sin6_addr.s6_addr) + 3) = 0; \
+(x)->sin6_scope_id = 0; \
+}
+
+# undef IN6ADDR_SETLOOPBACK
+# define IN6ADDR_SETLOOPBACK(x) {\
+(x)->sin6_family = AF_INET6; \
+(x)->sin6_port = 0; \
+(x)->sin6_flowinfo = 0; \
+*((u_long *)((x)->sin6_addr.s6_addr) ) = 0; \
+*((u_long *)((x)->sin6_addr.s6_addr) + 1) = 0; \
+*((u_long *)((x)->sin6_addr.s6_addr) + 2) = 0; \
+*((u_long *)((x)->sin6_addr.s6_addr) + 3) = 1; \
+(x)->sin6_scope_id = 0; \
+}
+
+# endif
+
+# endif
#endif
#include "win32.h"
-#define ENOTSOCK WSAENOTSOCK
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#undef ENOTSOCK
+#define ENOTSOCK WSAENOTSOCK
+
+#undef ECONNABORTED
+#define ECONNABORTED WSAECONNABORTED
+
+#undef ECONNRESET
+#define ECONNRESET WSAECONNRESET
+
+#undef EAFNOSUPPORT
+#define EAFNOSUPPORT WSAEAFNOSUPPORT
#ifdef USE_SOCKETS_AS_HANDLES
diff --git a/Master/tlpkg/tlperl/lib/CORE/uconfig.h b/Master/tlpkg/tlperl/lib/CORE/uconfig.h
index 511a00b8cb1..506cebea816 100644
--- a/Master/tlpkg/tlperl/lib/CORE/uconfig.h
+++ b/Master/tlpkg/tlperl/lib/CORE/uconfig.h
@@ -1,17 +1,13 @@
-/*
- * This file was produced by running the config_h.SH script, which
+/* This file was produced by running the config_h.SH script, which
* gets its values from uconfig.sh, which is generally produced by
* running Configure.
*
* Feel free to modify any of this as the need arises. Note, however,
* that running config_h.SH again will wipe out any changes you've made.
* For a more permanent change edit uconfig.sh and rerun config_h.SH.
- *
- * $Id: Config_h.U 1 2006-08-24 12:32:52Z rmanfredi $
*/
-/*
- * Package name : perl5
+/* Package name : perl5
* Source directory : .
* Configuration time: Thu Jan 1 00:00:00 GMT 1970
* Configured by : root@localhost
@@ -107,26 +103,6 @@
*/
/*#define HAS_DLERROR / **/
-/* SETUID_SCRIPTS_ARE_SECURE_NOW:
- * This symbol, if defined, indicates that the bug that prevents
- * setuid scripts from being secure is not present in this kernel.
- */
-/* DOSUID:
- * This symbol, if defined, indicates that the C program should
- * check the script that it is executing for setuid/setgid bits, and
- * attempt to emulate setuid/setgid on systems that have disabled
- * setuid #! scripts because the kernel can't do it securely.
- * It is up to the package designer to make sure that this emulation
- * is done securely. Among other things, it should do an fstat on
- * the script it just opened to make sure it really is a setuid/setgid
- * script, it should make sure the arguments passed correspond exactly
- * to the argument on the #! line, and it should not trust any
- * subprocesses to which it must pass the filename rather than the
- * file descriptor of the script to be executed.
- */
-/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
-/*#define DOSUID / **/
-
/* HAS_DUP2:
* This symbol, if defined, indicates that the dup2 routine is
* available to duplicate file descriptors.
@@ -304,7 +280,7 @@
* This symbol, if defined, indicates that the memset routine is available
* to set blocks of memory.
*/
-/*#define HAS_MEMSET / **/
+#define HAS_MEMSET /**/
/* HAS_MKDIR:
* This symbol, if defined, indicates that the mkdir routine is available
@@ -737,7 +713,7 @@
* This symbol, if defined, indicates that <stddef.h> exists and should
* be included.
*/
-/*#define I_STDDEF / **/
+#define I_STDDEF /**/
/* I_STDLIB:
* This symbol, if defined, indicates that <stdlib.h> exists and should
@@ -881,6 +857,28 @@
*/
/*#define I_VFORK / **/
+/* CAN_VAPROTO:
+ * This variable is defined on systems supporting prototype declaration
+ * of functions with a variable number of arguments.
+ */
+/* _V:
+ * This macro is used to declare function parameters in prototypes for
+ * functions with a variable number of parameters. Use double parentheses.
+ * For example:
+ *
+ * int printf _V((char *fmt, ...));
+ *
+ * Remember to use the plain simple _() macro when declaring a function
+ * with no variable number of arguments, since it might be possible to
+ * have a non-effect _V() macro and still get prototypes via _().
+ */
+/*#define CAN_VAPROTO / **/
+#ifdef CAN_VAPROTO
+#define _V(args) args
+#else
+#define _V(args) ()
+#endif
+
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -908,7 +906,7 @@
/* HAS_QUAD:
* This symbol, if defined, tells that there's a 64-bit integer type,
- * Quad_t, and its unsigned counterpar, Uquad_t. QUADKIND will be one
+ * Quad_t, and its unsigned counterpart, Uquad_t. QUADKIND will be one
* of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT64_T.
*/
/*#define HAS_QUAD / **/
@@ -922,18 +920,28 @@
# define QUAD_IS_INT64_T 4
#endif
-/* OSNAME:
- * This symbol contains the name of the operating system, as determined
- * by Configure. You shouldn't rely on it too much; the specific
- * feature tests from Configure are generally more reliable.
+/* USE_CROSS_COMPILE:
+ * This symbol, if defined, indicates that Perl is being cross-compiled.
*/
-/* OSVERS:
- * This symbol contains the version of the operating system, as determined
- * by Configure. You shouldn't rely on it too much; the specific
- * feature tests from Configure are generally more reliable.
+/* PERL_TARGETARCH:
+ * This symbol, if defined, indicates the target architecture
+ * Perl has been cross-compiled to. Undefined if not a cross-compile.
*/
-#define OSNAME "unknown" /**/
-#define OSVERS "unknown" /**/
+#ifndef USE_CROSS_COMPILE
+/*#define USE_CROSS_COMPILE / **/
+#define PERL_TARGETARCH "" /**/
+#endif
+
+/* MEM_ALIGNBYTES:
+ * This symbol contains the number of bytes required to align a
+ * double, or a long double when applicable. Usual values are 2,
+ * 4 and 8. The default is eight, for safety.
+ */
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
+# define MEM_ALIGNBYTES 8
+#else
+#define MEM_ALIGNBYTES 4
+#endif
/* ARCHLIB:
* This variable, if defined, holds the name of the directory in
@@ -948,8 +956,8 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-/*#define ARCHLIB "/usr/local/lib/perl5/5.11/unknown" / **/
-/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.11/unknown" / **/
+/*#define ARCHLIB "/usr/local/lib/perl5/5.14/unknown" / **/
+/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.14/unknown" / **/
/* ARCHNAME:
* This symbol holds a string representing the architecture name.
@@ -975,63 +983,54 @@
#define BIN_EXP "/usr/local/bin" /**/
#define PERL_RELOCATABLE_INC "undef" /**/
-/* CAT2:
- * This macro concatenates 2 tokens together.
- */
-/* STRINGIFY:
- * This macro surrounds its token with double quotes.
- */
-#if 42 == 1
-#define CAT2(a,b) a/**/b
-#define STRINGIFY(a) "a"
-#endif
-#if 42 == 42
-#define PeRl_CaTiFy(a, b) a ## b
-#define PeRl_StGiFy(a) #a
-#define CAT2(a,b) PeRl_CaTiFy(a,b)
-#define StGiFy(a) PeRl_StGiFy(a)
-#define STRINGIFY(a) PeRl_StGiFy(a)
-#endif
-#if 42 != 1 && 42 != 42
-#include "Bletch: How does this C preprocessor concatenate tokens?"
-#endif
-
-/* CPPSTDIN:
- * This symbol contains the first part of the string which will invoke
- * the C preprocessor on the standard input and produce to standard
- * output. Typical value of "cc -E" or "/lib/cpp", but it can also
- * call a wrapper. See CPPRUN.
- */
-/* CPPMINUS:
- * This symbol contains the second part of the string which will invoke
- * the C preprocessor on the standard input and produce to standard
- * output. This symbol will have the value "-" if CPPSTDIN needs a minus
- * to specify standard input, otherwise the value is "".
- */
-/* CPPRUN:
- * This symbol contains the string which will invoke a C preprocessor on
- * the standard input and produce to standard output. It needs to end
- * with CPPLAST, after all other preprocessor flags have been specified.
- * The main difference with CPPSTDIN is that this program will never be a
- * pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
- * available directly to the user. Note that it may well be different from
- * the preprocessor used to compile the C program.
- */
-/* CPPLAST:
- * This symbol is intended to be used along with CPPRUN in the same manner
- * symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "".
+/* BYTEORDER:
+ * This symbol holds the hexadecimal constant defined in byteorder,
+ * in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
+ * If the compiler supports cross-compiling or multiple-architecture
+ * binaries (eg. on NeXT systems), use compiler-defined macros to
+ * determine the byte order.
+ * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
+ * Binaries (MAB) on either big endian or little endian machines.
+ * The endian-ness is available at compile-time. This only matters
+ * for perl, where the config.h can be generated and installed on
+ * one system, and used by a different architecture to build an
+ * extension. Older versions of NeXT that might not have
+ * defined either *_ENDIAN__ were all on Motorola 680x0 series,
+ * so the default case (for NeXT) is big endian to catch them.
+ * This might matter for NeXT 3.0.
*/
-#define CPPSTDIN "cc -E"
-#define CPPMINUS "-"
-#define CPPRUN "cc -E"
-#define CPPLAST "-"
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
+# ifdef __LITTLE_ENDIAN__
+# if LONGSIZE == 4
+# define BYTEORDER 0x1234
+# else
+# if LONGSIZE == 8
+# define BYTEORDER 0x12345678
+# endif
+# endif
+# else
+# ifdef __BIG_ENDIAN__
+# if LONGSIZE == 4
+# define BYTEORDER 0x4321
+# else
+# if LONGSIZE == 8
+# define BYTEORDER 0x87654321
+# endif
+# endif
+# endif
+# endif
+# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
+# define BYTEORDER 0x4321
+# endif
+#else
+#define BYTEORDER 0x1234 /* large digits for MSB */
+#endif /* NeXT */
-/* HAS_ACCESS:
- * This manifest constant lets the C program know that the access()
- * system call is available to check for accessibility using real UID/GID.
- * (always present on UNIX.)
+/* CHARBITS:
+ * This symbol contains the size of a char, so that the C preprocessor
+ * can make decisions based on it.
*/
-/*#define HAS_ACCESS / **/
+#define CHARBITS 8 /**/
/* HAS_ACCESSX:
* This symbol, if defined, indicates that the accessx routine is
@@ -1052,53 +1051,32 @@
/*#define HAS_ASCTIME_R / **/
#define ASCTIME_R_PROTO 0 /**/
-/* HASATTRIBUTE_FORMAT:
- * Can we handle GCC attribute for checking printf-style formats
- */
-/* PRINTF_FORMAT_NULL_OK:
- * Allows __printf__ format to be null when checking printf-style
- */
-/* HASATTRIBUTE_MALLOC:
- * Can we handle GCC attribute for malloc-style functions.
- */
-/* HASATTRIBUTE_NONNULL:
- * Can we handle GCC attribute for nonnull function parms.
- */
-/* HASATTRIBUTE_NORETURN:
- * Can we handle GCC attribute for functions that do not return
- */
-/* HASATTRIBUTE_PURE:
- * Can we handle GCC attribute for pure functions
- */
-/* HASATTRIBUTE_UNUSED:
- * Can we handle GCC attribute for unused variables and arguments
+/* CASTI32:
+ * This symbol is defined if the C compiler can cast negative
+ * or large floating point numbers to 32-bit ints.
*/
-/* HASATTRIBUTE_DEPRECATED:
- * Can we handle GCC attribute for marking deprecated APIs
+/*#define CASTI32 / **/
+
+/* CASTNEGFLOAT:
+ * This symbol is defined if the C compiler can cast negative
+ * numbers to unsigned longs, ints and shorts.
*/
-/* HASATTRIBUTE_WARN_UNUSED_RESULT:
- * Can we handle GCC attribute for warning on unused results
+/* CASTFLAGS:
+ * This symbol contains flags that say what difficulties the compiler
+ * has casting odd floating values to unsigned long:
+ * 0 = ok
+ * 1 = couldn't cast < 0
+ * 2 = couldn't cast >= 0x80000000
+ * 4 = couldn't cast in argument expression list
*/
-/*#define HASATTRIBUTE_DEPRECATED / **/
-/*#define HASATTRIBUTE_FORMAT / **/
-/*#define PRINTF_FORMAT_NULL_OK / **/
-/*#define HASATTRIBUTE_NORETURN / **/
-/*#define HASATTRIBUTE_MALLOC / **/
-/*#define HASATTRIBUTE_NONNULL / **/
-/*#define HASATTRIBUTE_PURE / **/
-/*#define HASATTRIBUTE_UNUSED / **/
-/*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/
+/*#define CASTNEGFLOAT / **/
+#define CASTFLAGS 0 /**/
-/* HASCONST:
- * This symbol, if defined, indicates that this C compiler knows about
- * the const type. There is no need to actually test for that symbol
- * within your programs. The mere use of the "const" keyword will
- * trigger the necessary tests.
+/* VOID_CLOSEDIR:
+ * This symbol, if defined, indicates that the closedir() routine
+ * does not return a value.
*/
-/*#define HASCONST / **/
-#ifndef HASCONST
-#define const
-#endif
+/*#define VOID_CLOSEDIR / **/
/* HAS_CRYPT_R:
* This symbol, if defined, indicates that the crypt_r routine
@@ -1113,17 +1091,6 @@
/*#define HAS_CRYPT_R / **/
#define CRYPT_R_PROTO 0 /**/
-/* HAS_CSH:
- * This symbol, if defined, indicates that the C-shell exists.
- */
-/* CSH:
- * This symbol, if defined, contains the full pathname of csh.
- */
-/*#define HAS_CSH / **/
-#ifdef HAS_CSH
-#define CSH "" /**/
-#endif
-
/* HAS_CTERMID_R:
* This symbol, if defined, indicates that the ctermid_r routine
* is available to ctermid re-entrantly.
@@ -1163,26 +1130,12 @@
/*#define HAS_DRAND48_R / **/
#define DRAND48_R_PROTO 0 /**/
-/* HAS_DRAND48_PROTO:
- * This symbol, if defined, indicates that the system provides
- * a prototype for the drand48() function. Otherwise, it is up
- * to the program to supply one. A good guess is
- * extern double drand48(void);
- */
-/*#define HAS_DRAND48_PROTO / **/
-
/* HAS_EACCESS:
* This symbol, if defined, indicates that the eaccess routine is
* available to do extended access checks.
*/
/*#define HAS_EACCESS / **/
-/* HAS_ENDGRENT:
- * This symbol, if defined, indicates that the getgrent routine is
- * available for finalizing sequential access of the group database.
- */
-/*#define HAS_ENDGRENT / **/
-
/* HAS_ENDGRENT_R:
* This symbol, if defined, indicates that the endgrent_r routine
* is available to endgrent re-entrantly.
@@ -1196,12 +1149,6 @@
/*#define HAS_ENDGRENT_R / **/
#define ENDGRENT_R_PROTO 0 /**/
-/* HAS_ENDHOSTENT:
- * This symbol, if defined, indicates that the endhostent() routine is
- * available to close whatever was being used for host queries.
- */
-/*#define HAS_ENDHOSTENT / **/
-
/* HAS_ENDHOSTENT_R:
* This symbol, if defined, indicates that the endhostent_r routine
* is available to endhostent re-entrantly.
@@ -1215,12 +1162,6 @@
/*#define HAS_ENDHOSTENT_R / **/
#define ENDHOSTENT_R_PROTO 0 /**/
-/* HAS_ENDNETENT:
- * This symbol, if defined, indicates that the endnetent() routine is
- * available to close whatever was being used for network queries.
- */
-/*#define HAS_ENDNETENT / **/
-
/* HAS_ENDNETENT_R:
* This symbol, if defined, indicates that the endnetent_r routine
* is available to endnetent re-entrantly.
@@ -1234,12 +1175,6 @@
/*#define HAS_ENDNETENT_R / **/
#define ENDNETENT_R_PROTO 0 /**/
-/* HAS_ENDPROTOENT:
- * This symbol, if defined, indicates that the endprotoent() routine is
- * available to close whatever was being used for protocol queries.
- */
-/*#define HAS_ENDPROTOENT / **/
-
/* HAS_ENDPROTOENT_R:
* This symbol, if defined, indicates that the endprotoent_r routine
* is available to endprotoent re-entrantly.
@@ -1253,12 +1188,6 @@
/*#define HAS_ENDPROTOENT_R / **/
#define ENDPROTOENT_R_PROTO 0 /**/
-/* HAS_ENDPWENT:
- * This symbol, if defined, indicates that the getgrent routine is
- * available for finalizing sequential access of the passwd database.
- */
-/*#define HAS_ENDPWENT / **/
-
/* HAS_ENDPWENT_R:
* This symbol, if defined, indicates that the endpwent_r routine
* is available to endpwent re-entrantly.
@@ -1272,12 +1201,6 @@
/*#define HAS_ENDPWENT_R / **/
#define ENDPWENT_R_PROTO 0 /**/
-/* HAS_ENDSERVENT:
- * This symbol, if defined, indicates that the endservent() routine is
- * available to close whatever was being used for service queries.
- */
-/*#define HAS_ENDSERVENT / **/
-
/* HAS_ENDSERVENT_R:
* This symbol, if defined, indicates that the endservent_r routine
* is available to endservent re-entrantly.
@@ -1291,17 +1214,28 @@
/*#define HAS_ENDSERVENT_R / **/
#define ENDSERVENT_R_PROTO 0 /**/
-/* FLEXFILENAMES:
- * This symbol, if defined, indicates that the system supports filenames
- * longer than 14 characters.
+/* HAS_FD_SET:
+ * This symbol, when defined, indicates presence of the fd_set typedef
+ * in <sys/types.h>
*/
-/*#define FLEXFILENAMES / **/
+/*#define HAS_FD_SET / **/
-/* HAS_GETGRENT:
- * This symbol, if defined, indicates that the getgrent routine is
- * available for sequential access of the group database.
+/* Gconvert:
+ * This preprocessor macro is defined to convert a floating point
+ * number to a string without a trailing decimal point. This
+ * emulates the behavior of sprintf("%g"), but is sometimes much more
+ * efficient. If gconvert() is not available, but gcvt() drops the
+ * trailing decimal point, then gcvt() is used. If all else fails,
+ * a macro using sprintf("%g") is used. Arguments for the Gconvert
+ * macro are: value, number of digits, whether trailing zeros should
+ * be retained, and the output buffer.
+ * The usual values are:
+ * d_Gconvert='gconvert((x),(n),(t),(b))'
+ * d_Gconvert='gcvt((x),(n),(b))'
+ * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+ * The last two assume trailing zeros should not be kept.
*/
-/*#define HAS_GETGRENT / **/
+#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
/* HAS_GETGRENT_R:
* This symbol, if defined, indicates that the getgrent_r routine
@@ -1342,53 +1276,6 @@
/*#define HAS_GETGRNAM_R / **/
#define GETGRNAM_R_PROTO 0 /**/
-/* HAS_GETHOSTBYADDR:
- * This symbol, if defined, indicates that the gethostbyaddr() routine is
- * available to look up hosts by their IP addresses.
- */
-/*#define HAS_GETHOSTBYADDR / **/
-
-/* HAS_GETHOSTBYNAME:
- * This symbol, if defined, indicates that the gethostbyname() routine is
- * available to look up host names in some data base or other.
- */
-/*#define HAS_GETHOSTBYNAME / **/
-
-/* HAS_GETHOSTENT:
- * This symbol, if defined, indicates that the gethostent() routine is
- * available to look up host names in some data base or another.
- */
-/*#define HAS_GETHOSTENT / **/
-
-/* HAS_GETHOSTNAME:
- * This symbol, if defined, indicates that the C program may use the
- * gethostname() routine to derive the host name. See also HAS_UNAME
- * and PHOSTNAME.
- */
-/* HAS_UNAME:
- * This symbol, if defined, indicates that the C program may use the
- * uname() routine to derive the host name. See also HAS_GETHOSTNAME
- * and PHOSTNAME.
- */
-/* PHOSTNAME:
- * This symbol, if defined, indicates the command to feed to the
- * popen() routine to derive the host name. See also HAS_GETHOSTNAME
- * and HAS_UNAME. Note that the command uses a fully qualified path,
- * so that it is safe even if used by a process with super-user
- * privileges.
- */
-/* HAS_PHOSTNAME:
- * This symbol, if defined, indicates that the C program may use the
- * contents of PHOSTNAME as a command to feed to the popen() routine
- * to derive the host name.
- */
-/*#define HAS_GETHOSTNAME / **/
-/*#define HAS_UNAME / **/
-/*#define HAS_PHOSTNAME / **/
-#ifdef HAS_PHOSTNAME
-#define PHOSTNAME "/bin/hostname" /* How to get the host name */
-#endif
-
/* HAS_GETHOSTBYADDR_R:
* This symbol, if defined, indicates that the gethostbyaddr_r routine
* is available to gethostbyaddr re-entrantly.
@@ -1428,14 +1315,6 @@
/*#define HAS_GETHOSTENT_R / **/
#define GETHOSTENT_R_PROTO 0 /**/
-/* HAS_GETHOST_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for gethostent(), gethostbyname(), and
- * gethostbyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-/*#define HAS_GETHOST_PROTOS / **/
-
/* HAS_GETLOGIN_R:
* This symbol, if defined, indicates that the getlogin_r routine
* is available to getlogin re-entrantly.
@@ -1449,24 +1328,6 @@
/*#define HAS_GETLOGIN_R / **/
#define GETLOGIN_R_PROTO 0 /**/
-/* HAS_GETNETBYADDR:
- * This symbol, if defined, indicates that the getnetbyaddr() routine is
- * available to look up networks by their IP addresses.
- */
-/*#define HAS_GETNETBYADDR / **/
-
-/* HAS_GETNETBYNAME:
- * This symbol, if defined, indicates that the getnetbyname() routine is
- * available to look up networks by their names.
- */
-/*#define HAS_GETNETBYNAME / **/
-
-/* HAS_GETNETENT:
- * This symbol, if defined, indicates that the getnetent() routine is
- * available to look up network names in some data base or another.
- */
-/*#define HAS_GETNETENT / **/
-
/* HAS_GETNETBYADDR_R:
* This symbol, if defined, indicates that the getnetbyaddr_r routine
* is available to getnetbyaddr re-entrantly.
@@ -1506,41 +1367,12 @@
/*#define HAS_GETNETENT_R / **/
#define GETNETENT_R_PROTO 0 /**/
-/* HAS_GETNET_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for getnetent(), getnetbyname(), and
- * getnetbyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-/*#define HAS_GETNET_PROTOS / **/
-
-/* HAS_GETPROTOENT:
- * This symbol, if defined, indicates that the getprotoent() routine is
- * available to look up protocols in some data base or another.
- */
-/*#define HAS_GETPROTOENT / **/
-
-/* HAS_GETPGRP:
- * This symbol, if defined, indicates that the getpgrp routine is
- * available to get the current process group.
- */
-/* USE_BSD_GETPGRP:
- * This symbol, if defined, indicates that getpgrp needs one
- * arguments whereas USG one needs none.
- */
-/*#define HAS_GETPGRP / **/
-/*#define USE_BSD_GETPGRP / **/
-
-/* HAS_GETPROTOBYNAME:
- * This symbol, if defined, indicates that the getprotobyname()
- * routine is available to look up protocols by their name.
- */
-/* HAS_GETPROTOBYNUMBER:
- * This symbol, if defined, indicates that the getprotobynumber()
- * routine is available to look up protocols by their number.
+/* HAS_GETPAGESIZE:
+ * This symbol, if defined, indicates that the getpagesize system call
+ * is available to get system page size, which is the granularity of
+ * many memory management calls.
*/
-/*#define HAS_GETPROTOBYNAME / **/
-/*#define HAS_GETPROTOBYNUMBER / **/
+/*#define HAS_GETPAGESIZE / **/
/* HAS_GETPROTOBYNAME_R:
* This symbol, if defined, indicates that the getprotobyname_r routine
@@ -1581,21 +1413,6 @@
/*#define HAS_GETPROTOENT_R / **/
#define GETPROTOENT_R_PROTO 0 /**/
-/* HAS_GETPROTO_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for getprotoent(), getprotobyname(), and
- * getprotobyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-/*#define HAS_GETPROTO_PROTOS / **/
-
-/* HAS_GETPWENT:
- * This symbol, if defined, indicates that the getpwent routine is
- * available for sequential access of the passwd database.
- * If this is not available, the older getpw() function may be available.
- */
-/*#define HAS_GETPWENT / **/
-
/* HAS_GETPWENT_R:
* This symbol, if defined, indicates that the getpwent_r routine
* is available to getpwent re-entrantly.
@@ -1635,12 +1452,6 @@
/*#define HAS_GETPWUID_R / **/
#define GETPWUID_R_PROTO 0 /**/
-/* HAS_GETSERVENT:
- * This symbol, if defined, indicates that the getservent() routine is
- * available to look up network services in some data base or another.
- */
-/*#define HAS_GETSERVENT / **/
-
/* HAS_GETSERVBYNAME_R:
* This symbol, if defined, indicates that the getservbyname_r routine
* is available to getservbyname re-entrantly.
@@ -1680,14 +1491,6 @@
/*#define HAS_GETSERVENT_R / **/
#define GETSERVENT_R_PROTO 0 /**/
-/* HAS_GETSERV_PROTOS:
- * This symbol, if defined, indicates that <netdb.h> includes
- * prototypes for getservent(), getservbyname(), and
- * getservbyaddr(). Otherwise, it is up to the program to guess
- * them. See netdbtype.U for probing for various Netdb_xxx_t types.
- */
-/*#define HAS_GETSERV_PROTOS / **/
-
/* HAS_GETSPNAM_R:
* This symbol, if defined, indicates that the getspnam_r routine
* is available to getspnam re-entrantly.
@@ -1701,17 +1504,6 @@
/*#define HAS_GETSPNAM_R / **/
#define GETSPNAM_R_PROTO 0 /**/
-/* HAS_GETSERVBYNAME:
- * This symbol, if defined, indicates that the getservbyname()
- * routine is available to look up services by their name.
- */
-/* HAS_GETSERVBYPORT:
- * This symbol, if defined, indicates that the getservbyport()
- * routine is available to look up services by their port.
- */
-/*#define HAS_GETSERVBYNAME / **/
-/*#define HAS_GETSERVBYPORT / **/
-
/* HAS_GMTIME_R:
* This symbol, if defined, indicates that the gmtime_r routine
* is available to gmtime re-entrantly.
@@ -1725,30 +1517,28 @@
/*#define HAS_GMTIME_R / **/
#define GMTIME_R_PROTO 0 /**/
-/* HAS_HTONL:
- * This symbol, if defined, indicates that the htonl() routine (and
- * friends htons() ntohl() ntohs()) are available to do network
- * order byte swapping.
- */
-/* HAS_HTONS:
- * This symbol, if defined, indicates that the htons() routine (and
- * friends htonl() ntohl() ntohs()) are available to do network
- * order byte swapping.
+/* HAS_GNULIBC:
+ * This symbol, if defined, indicates to the C program that
+ * the GNU C library is being used. A better check is to use
+ * the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc.
*/
-/* HAS_NTOHL:
- * This symbol, if defined, indicates that the ntohl() routine (and
- * friends htonl() htons() ntohs()) are available to do network
- * order byte swapping.
+/*#define HAS_GNULIBC / **/
+#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
+# define _GNU_SOURCE
+#endif
+
+/* HAS_ISASCII:
+ * This manifest constant lets the C program know that isascii
+ * is available.
*/
-/* HAS_NTOHS:
- * This symbol, if defined, indicates that the ntohs() routine (and
- * friends htonl() htons() ntohl()) are available to do network
- * order byte swapping.
+/*#define HAS_ISASCII / **/
+
+/* HAS_LCHOWN:
+ * This symbol, if defined, indicates that the lchown routine is
+ * available to operate on a symbolic link (instead of following the
+ * link).
*/
-/*#define HAS_HTONL / **/
-/*#define HAS_HTONS / **/
-/*#define HAS_NTOHL / **/
-/*#define HAS_NTOHS / **/
+/*#define HAS_LCHOWN / **/
/* HAS_LOCALTIME_R:
* This symbol, if defined, indicates that the localtime_r routine
@@ -1776,71 +1566,11 @@
/*#define HAS_LOCALTIME_R / **/
#define LOCALTIME_R_PROTO 0 /**/
-/* HAS_LONG_DOUBLE:
- * This symbol will be defined if the C compiler supports long
- * doubles.
- */
-/* LONG_DOUBLESIZE:
- * This symbol contains the size of a long double, so that the
- * C preprocessor can make decisions based on it. It is only
- * defined if the system supports long doubles.
- */
-/*#define HAS_LONG_DOUBLE / **/
-#ifdef HAS_LONG_DOUBLE
-#define LONG_DOUBLESIZE 8 /**/
-#endif
-
-/* HAS_LONG_LONG:
- * This symbol will be defined if the C compiler supports long long.
- */
-/* LONGLONGSIZE:
- * This symbol contains the size of a long long, so that the
- * C preprocessor can make decisions based on it. It is only
- * defined if the system supports long long.
- */
-/*#define HAS_LONG_LONG / **/
-#ifdef HAS_LONG_LONG
-#define LONGLONGSIZE 8 /**/
-#endif
-
-/* HAS_LSEEK_PROTO:
- * This symbol, if defined, indicates that the system provides
- * a prototype for the lseek() function. Otherwise, it is up
- * to the program to supply one. A good guess is
- * extern off_t lseek(int, off_t, int);
- */
-/*#define HAS_LSEEK_PROTO / **/
-
-/* HAS_MEMCHR:
- * This symbol, if defined, indicates that the memchr routine is available
- * to locate characters within a C string.
- */
-#define HAS_MEMCHR /**/
-
-/* HAS_MKSTEMP:
- * This symbol, if defined, indicates that the mkstemp routine is
- * available to exclusively create and open a uniquely named
- * temporary file.
- */
-/*#define HAS_MKSTEMP / **/
-
-/* HAS_MMAP:
- * This symbol, if defined, indicates that the mmap system call is
- * available to map a file into memory.
- */
-/* Mmap_t:
- * This symbol holds the return type of the mmap() system call
- * (and simultaneously the type of the first argument).
- * Usually set to 'void *' or 'caddr_t'.
- */
-/*#define HAS_MMAP / **/
-#define Mmap_t void * /**/
-
-/* HAS_MSG:
- * This symbol, if defined, indicates that the entire msg*(2) library is
- * supported (IPC mechanism based on message queues).
+/* HAS_OPEN3:
+ * This manifest constant lets the C program know that the three
+ * argument form of open(2) is available.
*/
-/*#define HAS_MSG / **/
+/*#define HAS_OPEN3 / **/
/* OLD_PTHREAD_CREATE_JOINABLE:
* This symbol, if defined, indicates how to create pthread
@@ -1916,17 +1646,28 @@
/*#define HAS_READDIR_R / **/
#define READDIR_R_PROTO 0 /**/
-/* HAS_SEM:
- * This symbol, if defined, indicates that the entire sem*(2) library is
- * supported.
+/* HAS_SAFE_BCOPY:
+ * This symbol, if defined, indicates that the bcopy routine is available
+ * to copy potentially overlapping memory blocks. Normally, you should
+ * probably use memmove() or memcpy(). If neither is defined, roll your
+ * own version.
*/
-/*#define HAS_SEM / **/
+/*#define HAS_SAFE_BCOPY / **/
-/* HAS_SETGRENT:
- * This symbol, if defined, indicates that the setgrent routine is
- * available for initializing sequential access of the group database.
+/* HAS_SAFE_MEMCPY:
+ * This symbol, if defined, indicates that the memcpy routine is available
+ * to copy potentially overlapping memory blocks. If you need to
+ * copy overlapping memory blocks, you should check HAS_MEMMOVE and
+ * use memmove() instead, if available.
*/
-/*#define HAS_SETGRENT / **/
+/*#define HAS_SAFE_MEMCPY / **/
+
+/* HAS_SANE_MEMCMP:
+ * This symbol, if defined, indicates that the memcmp routine is available
+ * and can be used to compare relative magnitudes of chars with their high
+ * bits set. If it is not defined, roll your own version.
+ */
+/*#define HAS_SANE_MEMCMP / **/
/* HAS_SETGRENT_R:
* This symbol, if defined, indicates that the setgrent_r routine
@@ -1941,12 +1682,6 @@
/*#define HAS_SETGRENT_R / **/
#define SETGRENT_R_PROTO 0 /**/
-/* HAS_SETHOSTENT:
- * This symbol, if defined, indicates that the sethostent() routine is
- * available.
- */
-/*#define HAS_SETHOSTENT / **/
-
/* HAS_SETHOSTENT_R:
* This symbol, if defined, indicates that the sethostent_r routine
* is available to sethostent re-entrantly.
@@ -1973,12 +1708,6 @@
/*#define HAS_SETLOCALE_R / **/
#define SETLOCALE_R_PROTO 0 /**/
-/* HAS_SETNETENT:
- * This symbol, if defined, indicates that the setnetent() routine is
- * available.
- */
-/*#define HAS_SETNETENT / **/
-
/* HAS_SETNETENT_R:
* This symbol, if defined, indicates that the setnetent_r routine
* is available to setnetent re-entrantly.
@@ -1992,24 +1721,6 @@
/*#define HAS_SETNETENT_R / **/
#define SETNETENT_R_PROTO 0 /**/
-/* HAS_SETPROTOENT:
- * This symbol, if defined, indicates that the setprotoent() routine is
- * available.
- */
-/*#define HAS_SETPROTOENT / **/
-
-/* HAS_SETPGRP:
- * This symbol, if defined, indicates that the setpgrp routine is
- * available to set the current process group.
- */
-/* USE_BSD_SETPGRP:
- * This symbol, if defined, indicates that setpgrp needs two
- * arguments whereas USG one needs none. See also HAS_SETPGID
- * for a POSIX interface.
- */
-/*#define HAS_SETPGRP / **/
-/*#define USE_BSD_SETPGRP / **/
-
/* HAS_SETPROTOENT_R:
* This symbol, if defined, indicates that the setprotoent_r routine
* is available to setprotoent re-entrantly.
@@ -2023,12 +1734,6 @@
/*#define HAS_SETPROTOENT_R / **/
#define SETPROTOENT_R_PROTO 0 /**/
-/* HAS_SETPWENT:
- * This symbol, if defined, indicates that the setpwent routine is
- * available for initializing sequential access of the passwd database.
- */
-/*#define HAS_SETPWENT / **/
-
/* HAS_SETPWENT_R:
* This symbol, if defined, indicates that the setpwent_r routine
* is available to setpwent re-entrantly.
@@ -2042,12 +1747,6 @@
/*#define HAS_SETPWENT_R / **/
#define SETPWENT_R_PROTO 0 /**/
-/* HAS_SETSERVENT:
- * This symbol, if defined, indicates that the setservent() routine is
- * available.
- */
-/*#define HAS_SETSERVENT / **/
-
/* HAS_SETSERVENT_R:
* This symbol, if defined, indicates that the setservent_r routine
* is available to setservent re-entrantly.
@@ -2061,6 +1760,933 @@
/*#define HAS_SETSERVENT_R / **/
#define SETSERVENT_R_PROTO 0 /**/
+/* HAS_SIGACTION:
+ * This symbol, if defined, indicates that Vr4's sigaction() routine
+ * is available.
+ */
+/*#define HAS_SIGACTION / **/
+
+/* HAS_SIGSETJMP:
+ * This variable indicates to the C program that the sigsetjmp()
+ * routine is available to save the calling process's registers
+ * and stack environment for later use by siglongjmp(), and
+ * to optionally save the process's signal mask. See
+ * Sigjmp_buf, Sigsetjmp, and Siglongjmp.
+ */
+/* Sigjmp_buf:
+ * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
+ */
+/* Sigsetjmp:
+ * This macro is used in the same way as sigsetjmp(), but will invoke
+ * traditional setjmp() if sigsetjmp isn't available.
+ * See HAS_SIGSETJMP.
+ */
+/* Siglongjmp:
+ * This macro is used in the same way as siglongjmp(), but will invoke
+ * traditional longjmp() if siglongjmp isn't available.
+ * See HAS_SIGSETJMP.
+ */
+/*#define HAS_SIGSETJMP / **/
+#ifdef HAS_SIGSETJMP
+#define Sigjmp_buf sigjmp_buf
+#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
+#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
+#else
+#define Sigjmp_buf jmp_buf
+#define Sigsetjmp(buf,save_mask) setjmp((buf))
+#define Siglongjmp(buf,retval) longjmp((buf),(retval))
+#endif
+
+/* HAS_SRAND48_R:
+ * This symbol, if defined, indicates that the srand48_r routine
+ * is available to srand48 re-entrantly.
+ */
+/* SRAND48_R_PROTO:
+ * This symbol encodes the prototype of srand48_r.
+ * It is zero if d_srand48_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srand48_r
+ * is defined.
+ */
+/*#define HAS_SRAND48_R / **/
+#define SRAND48_R_PROTO 0 /**/
+
+/* HAS_SRANDOM_R:
+ * This symbol, if defined, indicates that the srandom_r routine
+ * is available to srandom re-entrantly.
+ */
+/* SRANDOM_R_PROTO:
+ * This symbol encodes the prototype of srandom_r.
+ * It is zero if d_srandom_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srandom_r
+ * is defined.
+ */
+/*#define HAS_SRANDOM_R / **/
+#define SRANDOM_R_PROTO 0 /**/
+
+/* USE_STDIO_PTR:
+ * This symbol is defined if the _ptr and _cnt fields (or similar)
+ * of the stdio FILE structure can be used to access the stdio buffer
+ * for a file handle. If this is defined, then the FILE_ptr(fp)
+ * and FILE_cnt(fp) macros will also be defined and should be used
+ * to access these fields.
+ */
+/* FILE_ptr:
+ * This macro is used to access the _ptr field (or equivalent) of the
+ * FILE structure pointed to by its argument. This macro will always be
+ * defined if USE_STDIO_PTR is defined.
+ */
+/* STDIO_PTR_LVALUE:
+ * This symbol is defined if the FILE_ptr macro can be used as an
+ * lvalue.
+ */
+/* FILE_cnt:
+ * This macro is used to access the _cnt field (or equivalent) of the
+ * FILE structure pointed to by its argument. This macro will always be
+ * defined if USE_STDIO_PTR is defined.
+ */
+/* STDIO_CNT_LVALUE:
+ * This symbol is defined if the FILE_cnt macro can be used as an
+ * lvalue.
+ */
+/* STDIO_PTR_LVAL_SETS_CNT:
+ * This symbol is defined if using the FILE_ptr macro as an lvalue
+ * to increase the pointer by n has the side effect of decreasing the
+ * value of File_cnt(fp) by n.
+ */
+/* STDIO_PTR_LVAL_NOCHANGE_CNT:
+ * This symbol is defined if using the FILE_ptr macro as an lvalue
+ * to increase the pointer by n leaves File_cnt(fp) unchanged.
+ */
+/*#define USE_STDIO_PTR / **/
+#ifdef USE_STDIO_PTR
+#define FILE_ptr(fp) ((fp)->_IO_read_ptr)
+/*#define STDIO_PTR_LVALUE / **/
+#define FILE_cnt(fp) ((fp)->_IO_read_end - (fp)->_IO_read_ptr)
+/*#define STDIO_CNT_LVALUE / **/
+/*#define STDIO_PTR_LVAL_SETS_CNT / **/
+/*#define STDIO_PTR_LVAL_NOCHANGE_CNT / **/
+#endif
+
+/* USE_STDIO_BASE:
+ * This symbol is defined if the _base field (or similar) of the
+ * stdio FILE structure can be used to access the stdio buffer for
+ * a file handle. If this is defined, then the FILE_base(fp) macro
+ * will also be defined and should be used to access this field.
+ * Also, the FILE_bufsiz(fp) macro will be defined and should be used
+ * to determine the number of bytes in the buffer. USE_STDIO_BASE
+ * will never be defined unless USE_STDIO_PTR is.
+ */
+/* FILE_base:
+ * This macro is used to access the _base field (or equivalent) of the
+ * FILE structure pointed to by its argument. This macro will always be
+ * defined if USE_STDIO_BASE is defined.
+ */
+/* FILE_bufsiz:
+ * This macro is used to determine the number of bytes in the I/O
+ * buffer pointed to by _base field (or equivalent) of the FILE
+ * structure pointed to its argument. This macro will always be defined
+ * if USE_STDIO_BASE is defined.
+ */
+/*#define USE_STDIO_BASE / **/
+#ifdef USE_STDIO_BASE
+#define FILE_base(fp) ((fp)->_IO_read_base)
+#define FILE_bufsiz(fp) ((fp)->_IO_read_end - (fp)->_IO_read_base)
+#endif
+
+/* HAS_STRERROR_R:
+ * This symbol, if defined, indicates that the strerror_r routine
+ * is available to strerror re-entrantly.
+ */
+/* STRERROR_R_PROTO:
+ * This symbol encodes the prototype of strerror_r.
+ * It is zero if d_strerror_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r
+ * is defined.
+ */
+/*#define HAS_STRERROR_R / **/
+#define STRERROR_R_PROTO 0 /**/
+
+/* HAS_TMPNAM_R:
+ * This symbol, if defined, indicates that the tmpnam_r routine
+ * is available to tmpnam re-entrantly.
+ */
+/* TMPNAM_R_PROTO:
+ * This symbol encodes the prototype of tmpnam_r.
+ * It is zero if d_tmpnam_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_tmpnam_r
+ * is defined.
+ */
+/*#define HAS_TMPNAM_R / **/
+#define TMPNAM_R_PROTO 0 /**/
+
+/* HAS_TTYNAME_R:
+ * This symbol, if defined, indicates that the ttyname_r routine
+ * is available to ttyname re-entrantly.
+ */
+/* TTYNAME_R_PROTO:
+ * This symbol encodes the prototype of ttyname_r.
+ * It is zero if d_ttyname_r is undef, and one of the
+ * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ttyname_r
+ * is defined.
+ */
+/*#define HAS_TTYNAME_R / **/
+#define TTYNAME_R_PROTO 0 /**/
+
+/* HAS_VPRINTF:
+ * This symbol, if defined, indicates that the vprintf routine is available
+ * to printf with a pointer to an argument list. If unavailable, you
+ * may need to write your own, probably in terms of _doprnt().
+ */
+/* USE_CHAR_VSPRINTF:
+ * This symbol is defined if this system has vsprintf() returning type
+ * (char*). The trend seems to be to declare it as "int vsprintf()". It
+ * is up to the package author to declare vsprintf correctly based on the
+ * symbol.
+ */
+#define HAS_VPRINTF /**/
+/*#define USE_CHAR_VSPRINTF / **/
+
+/* DOUBLESIZE:
+ * This symbol contains the size of a double, so that the C preprocessor
+ * can make decisions based on it.
+ */
+#define DOUBLESIZE 8 /**/
+
+/* I_MACH_CTHREADS:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <mach/cthreads.h>.
+ */
+/*#define I_MACH_CTHREADS / **/
+
+/* I_PTHREAD:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <pthread.h>.
+ */
+/*#define I_PTHREAD / **/
+
+/* I_SYS_ACCESS:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <sys/access.h>.
+ */
+/*#define I_SYS_ACCESS / **/
+
+/* I_SYS_SECURITY:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <sys/security.h>.
+ */
+/*#define I_SYS_SECURITY / **/
+
+/* I_TIME:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <time.h>.
+ */
+/* I_SYS_TIME:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <sys/time.h>.
+ */
+/* I_SYS_TIME_KERNEL:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <sys/time.h> with KERNEL defined.
+ */
+/* HAS_TM_TM_ZONE:
+ * This symbol, if defined, indicates to the C program that
+ * the struct tm has a tm_zone field.
+ */
+/* HAS_TM_TM_GMTOFF:
+ * This symbol, if defined, indicates to the C program that
+ * the struct tm has a tm_gmtoff field.
+ */
+#define I_TIME /**/
+/*#define I_SYS_TIME / **/
+/*#define I_SYS_TIME_KERNEL / **/
+/*#define HAS_TM_TM_ZONE / **/
+/*#define HAS_TM_TM_GMTOFF / **/
+
+/* PERL_INC_VERSION_LIST:
+ * This variable specifies the list of subdirectories in over
+ * which perl.c:incpush() and lib/lib.pm will automatically
+ * search when adding directories to @INC, in a format suitable
+ * for a C initialization string. See the inc_version_list entry
+ * in Porting/Glossary for more details.
+ */
+/*#define PERL_INC_VERSION_LIST NULL / **/
+
+/* INSTALL_USR_BIN_PERL:
+ * This symbol, if defined, indicates that Perl is to be installed
+ * also as /usr/bin/perl.
+ */
+/*#define INSTALL_USR_BIN_PERL / **/
+
+/* VAL_O_NONBLOCK:
+ * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
+ * non-blocking I/O for the file descriptor. Note that there is no way
+ * back, i.e. you cannot turn it blocking again this way. If you wish to
+ * alternatively switch between blocking and non-blocking, use the
+ * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
+ */
+/* VAL_EAGAIN:
+ * This symbol holds the errno error code set by read() when no data was
+ * present on the non-blocking file descriptor.
+ */
+/* RD_NODATA:
+ * This symbol holds the return code from read() when no data is present
+ * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
+ * not defined, then you can't distinguish between no data and EOF by
+ * issuing a read(). You'll have to find another way to tell for sure!
+ */
+/* EOF_NONBLOCK:
+ * This symbol, if defined, indicates to the C program that a read() on
+ * a non-blocking file descriptor will return 0 on EOF, and not the value
+ * held in RD_NODATA (-1 usually, in that case!).
+ */
+#define VAL_O_NONBLOCK O_NONBLOCK
+#define VAL_EAGAIN EAGAIN
+#define RD_NODATA -1
+#undef EOF_NONBLOCK
+
+/* PERL_OTHERLIBDIRS:
+ * This variable contains a colon-separated set of paths for the perl
+ * binary to search for additional library files or modules.
+ * These directories will be tacked to the end of @INC.
+ * Perl will automatically search below each path for version-
+ * and architecture-specific directories. See PERL_INC_VERSION_LIST
+ * for more details.
+ */
+/*#define PERL_OTHERLIBDIRS " " / **/
+
+/* PRIVLIB:
+ * This symbol contains the name of the private library for this package.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world. The program
+ * should be prepared to do ~ expansion.
+ */
+/* PRIVLIB_EXP:
+ * This symbol contains the ~name expanded version of PRIVLIB, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+#define PRIVLIB "/usr/local/lib/perl5/5.14" /**/
+#define PRIVLIB_EXP "/usr/local/lib/perl5/5.14" /**/
+
+/* PTRSIZE:
+ * This symbol contains the size of a pointer, so that the C preprocessor
+ * can make decisions based on it. It will be sizeof(void *) if
+ * the compiler supports (void *); otherwise it will be
+ * sizeof(char *).
+ */
+#define PTRSIZE 4 /**/
+
+/* Drand01:
+ * This macro is to be used to generate uniformly distributed
+ * random numbers over the range [0., 1.[. You may have to supply
+ * an 'extern double drand48();' in your program since SunOS 4.1.3
+ * doesn't provide you with anything relevant in its headers.
+ * See HAS_DRAND48_PROTO.
+ */
+/* Rand_seed_t:
+ * This symbol defines the type of the argument of the
+ * random seed function.
+ */
+/* seedDrand01:
+ * This symbol defines the macro to be used in seeding the
+ * random number generator (see Drand01).
+ */
+/* RANDBITS:
+ * This symbol indicates how many bits are produced by the
+ * function used to generate normalized random numbers.
+ * Values include 15, 16, 31, and 48.
+ */
+#define Drand01() ((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15)) /**/
+#define Rand_seed_t int /**/
+#define seedDrand01(x) srand((Rand_seed_t)x) /**/
+#define RANDBITS 48 /**/
+
+/* SITEARCH:
+ * This symbol contains the name of the private library for this package.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world. The program
+ * should be prepared to do ~ expansion.
+ * The standard distribution will put nothing in this directory.
+ * After perl has been installed, users may install their own local
+ * architecture-dependent modules in this directory with
+ * MakeMaker Makefile.PL
+ * or equivalent. See INSTALL for details.
+ */
+/* SITEARCH_EXP:
+ * This symbol contains the ~name expanded version of SITEARCH, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/*#define SITEARCH "/usr/local/lib/perl5/5.14/unknown" / **/
+/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.14/unknown" / **/
+
+/* SITELIB:
+ * This symbol contains the name of the private library for this package.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world. The program
+ * should be prepared to do ~ expansion.
+ * The standard distribution will put nothing in this directory.
+ * After perl has been installed, users may install their own local
+ * architecture-independent modules in this directory with
+ * MakeMaker Makefile.PL
+ * or equivalent. See INSTALL for details.
+ */
+/* SITELIB_EXP:
+ * This symbol contains the ~name expanded version of SITELIB, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/* SITELIB_STEM:
+ * This define is SITELIB_EXP with any trailing version-specific component
+ * removed. The elements in inc_version_list (inc_version_list.U) can
+ * be tacked onto this variable to generate a list of directories to search.
+ */
+#define SITELIB "/usr/local/lib/perl5/5.14" /**/
+#define SITELIB_EXP "/usr/local/lib/perl5/5.14" /**/
+#define SITELIB_STEM "/usr/local/lib/perl5" /**/
+
+/* SSize_t:
+ * This symbol holds the type used by functions that return
+ * a count of bytes or an error condition. It must be a signed type.
+ * It is usually ssize_t, but may be long or int, etc.
+ * It may be necessary to include <sys/types.h> or <unistd.h>
+ * to get any typedef'ed information.
+ * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
+ */
+#define SSize_t int /* signed count of bytes */
+
+/* USE_ITHREADS:
+ * This symbol, if defined, indicates that Perl should be built to
+ * use the interpreter-based threading implementation.
+ */
+/* USE_5005THREADS:
+ * This symbol, if defined, indicates that Perl should be built to
+ * use the 5.005-based threading implementation.
+ * Only valid up to 5.8.x.
+ */
+/* OLD_PTHREADS_API:
+ * This symbol, if defined, indicates that Perl should
+ * be built to use the old draft POSIX threads API.
+ */
+/* USE_REENTRANT_API:
+ * This symbol, if defined, indicates that Perl should
+ * try to use the various _r versions of library functions.
+ * This is extremely experimental.
+ */
+/*#define USE_5005THREADS / **/
+/*#define USE_ITHREADS / **/
+#if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
+#define USE_THREADS /* until src is revised*/
+#endif
+/*#define OLD_PTHREADS_API / **/
+/*#define USE_REENTRANT_API / **/
+
+/* PERL_VENDORARCH:
+ * If defined, this symbol contains the name of a private library.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world.
+ * It may have a ~ on the front.
+ * The standard distribution will put nothing in this directory.
+ * Vendors who distribute perl may wish to place their own
+ * architecture-dependent modules and extensions in this directory with
+ * MakeMaker Makefile.PL INSTALLDIRS=vendor
+ * or equivalent. See INSTALL for details.
+ */
+/* PERL_VENDORARCH_EXP:
+ * This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/*#define PERL_VENDORARCH "" / **/
+/*#define PERL_VENDORARCH_EXP "" / **/
+
+/* PERL_VENDORLIB_EXP:
+ * This symbol contains the ~name expanded version of VENDORLIB, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/* PERL_VENDORLIB_STEM:
+ * This define is PERL_VENDORLIB_EXP with any trailing version-specific component
+ * removed. The elements in inc_version_list (inc_version_list.U) can
+ * be tacked onto this variable to generate a list of directories to search.
+ */
+/*#define PERL_VENDORLIB_EXP "" / **/
+/*#define PERL_VENDORLIB_STEM "" / **/
+
+/* HAS_STATIC_INLINE:
+ * This symbol, if defined, indicates that the C compiler supports
+ * C99-style static inline. That is, the function can't be called
+ * from another translation unit.
+ */
+/* PERL_STATIC_INLINE:
+ * This symbol gives the best-guess incantation to use for static
+ * inline functions. If HAS_STATIC_INLINE is defined, this will
+ * give C99-style inline. If HAS_STATIC_INLINE is not defined,
+ * this will give a plain 'static'. It will always be defined
+ * to something that gives static linkage.
+ * Possibilities include
+ * static inline (c99)
+ * static __inline__ (gcc -ansi)
+ * static __inline (MSVC)
+ * static _inline (older MSVC)
+ * static (c89 compilers)
+ */
+/*#define HAS_STATIC_INLINE / **/
+#define PERL_STATIC_INLINE static /**/
+
+/* EBCDIC:
+ * This symbol, if defined, indicates that this system uses
+ * EBCDIC encoding.
+ */
+/*#define EBCDIC / **/
+
+/* OSNAME:
+ * This symbol contains the name of the operating system, as determined
+ * by Configure. You shouldn't rely on it too much; the specific
+ * feature tests from Configure are generally more reliable.
+ */
+/* OSVERS:
+ * This symbol contains the version of the operating system, as determined
+ * by Configure. You shouldn't rely on it too much; the specific
+ * feature tests from Configure are generally more reliable.
+ */
+#define OSNAME "unknown" /**/
+#define OSVERS "unknown" /**/
+
+/* CAT2:
+ * This macro concatenates 2 tokens together.
+ */
+/* STRINGIFY:
+ * This macro surrounds its token with double quotes.
+ */
+#if 42 == 1
+#define CAT2(a,b) a/**/b
+#define STRINGIFY(a) "a"
+#endif
+#if 42 == 42
+#define PeRl_CaTiFy(a, b) a ## b
+#define PeRl_StGiFy(a) #a
+#define CAT2(a,b) PeRl_CaTiFy(a,b)
+#define StGiFy(a) PeRl_StGiFy(a)
+#define STRINGIFY(a) PeRl_StGiFy(a)
+#endif
+#if 42 != 1 && 42 != 42
+#include "Bletch: How does this C preprocessor concatenate tokens?"
+#endif
+
+/* CPPSTDIN:
+ * This symbol contains the first part of the string which will invoke
+ * the C preprocessor on the standard input and produce to standard
+ * output. Typical value of "cc -E" or "/lib/cpp", but it can also
+ * call a wrapper. See CPPRUN.
+ */
+/* CPPMINUS:
+ * This symbol contains the second part of the string which will invoke
+ * the C preprocessor on the standard input and produce to standard
+ * output. This symbol will have the value "-" if CPPSTDIN needs a minus
+ * to specify standard input, otherwise the value is "".
+ */
+/* CPPRUN:
+ * This symbol contains the string which will invoke a C preprocessor on
+ * the standard input and produce to standard output. It needs to end
+ * with CPPLAST, after all other preprocessor flags have been specified.
+ * The main difference with CPPSTDIN is that this program will never be a
+ * pointer to a shell wrapper, i.e. it will be empty if no preprocessor is
+ * available directly to the user. Note that it may well be different from
+ * the preprocessor used to compile the C program.
+ */
+/* CPPLAST:
+ * This symbol is intended to be used along with CPPRUN in the same manner
+ * symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "".
+ */
+#define CPPSTDIN "cc -E"
+#define CPPMINUS "-"
+#define CPPRUN "cc -E"
+#define CPPLAST "-"
+
+/* HAS_ACCESS:
+ * This manifest constant lets the C program know that the access()
+ * system call is available to check for accessibility using real UID/GID.
+ * (always present on UNIX.)
+ */
+/*#define HAS_ACCESS / **/
+
+/* HASATTRIBUTE_FORMAT:
+ * Can we handle GCC attribute for checking printf-style formats
+ */
+/* PRINTF_FORMAT_NULL_OK:
+ * Allows __printf__ format to be null when checking printf-style
+ */
+/* HASATTRIBUTE_MALLOC:
+ * Can we handle GCC attribute for malloc-style functions.
+ */
+/* HASATTRIBUTE_NONNULL:
+ * Can we handle GCC attribute for nonnull function parms.
+ */
+/* HASATTRIBUTE_NORETURN:
+ * Can we handle GCC attribute for functions that do not return
+ */
+/* HASATTRIBUTE_PURE:
+ * Can we handle GCC attribute for pure functions
+ */
+/* HASATTRIBUTE_UNUSED:
+ * Can we handle GCC attribute for unused variables and arguments
+ */
+/* HASATTRIBUTE_DEPRECATED:
+ * Can we handle GCC attribute for marking deprecated APIs
+ */
+/* HASATTRIBUTE_WARN_UNUSED_RESULT:
+ * Can we handle GCC attribute for warning on unused results
+ */
+/*#define HASATTRIBUTE_DEPRECATED / **/
+/*#define HASATTRIBUTE_FORMAT / **/
+/*#define PRINTF_FORMAT_NULL_OK / **/
+/*#define HASATTRIBUTE_NORETURN / **/
+/*#define HASATTRIBUTE_MALLOC / **/
+/*#define HASATTRIBUTE_NONNULL / **/
+/*#define HASATTRIBUTE_PURE / **/
+/*#define HASATTRIBUTE_UNUSED / **/
+/*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/
+
+/* HASCONST:
+ * This symbol, if defined, indicates that this C compiler knows about
+ * the const type. There is no need to actually test for that symbol
+ * within your programs. The mere use of the "const" keyword will
+ * trigger the necessary tests.
+ */
+/*#define HASCONST / **/
+#ifndef HASCONST
+#define const
+#endif
+
+/* HAS_CSH:
+ * This symbol, if defined, indicates that the C-shell exists.
+ */
+/* CSH:
+ * This symbol, if defined, contains the full pathname of csh.
+ */
+/*#define HAS_CSH / **/
+#ifdef HAS_CSH
+#define CSH "" /**/
+#endif
+
+/* SETUID_SCRIPTS_ARE_SECURE_NOW:
+ * This symbol, if defined, indicates that the bug that prevents
+ * setuid scripts from being secure is not present in this kernel.
+ */
+/* DOSUID:
+ * This symbol, if defined, indicates that the C program should
+ * check the script that it is executing for setuid/setgid bits, and
+ * attempt to emulate setuid/setgid on systems that have disabled
+ * setuid #! scripts because the kernel can't do it securely.
+ * It is up to the package designer to make sure that this emulation
+ * is done securely. Among other things, it should do an fstat on
+ * the script it just opened to make sure it really is a setuid/setgid
+ * script, it should make sure the arguments passed correspond exactly
+ * to the argument on the #! line, and it should not trust any
+ * subprocesses to which it must pass the filename rather than the
+ * file descriptor of the script to be executed.
+ */
+/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
+/*#define DOSUID / **/
+
+/* HAS_ENDGRENT:
+ * This symbol, if defined, indicates that the getgrent routine is
+ * available for finalizing sequential access of the group database.
+ */
+/*#define HAS_ENDGRENT / **/
+
+/* HAS_ENDHOSTENT:
+ * This symbol, if defined, indicates that the endhostent() routine is
+ * available to close whatever was being used for host queries.
+ */
+/*#define HAS_ENDHOSTENT / **/
+
+/* HAS_ENDNETENT:
+ * This symbol, if defined, indicates that the endnetent() routine is
+ * available to close whatever was being used for network queries.
+ */
+/*#define HAS_ENDNETENT / **/
+
+/* HAS_ENDPROTOENT:
+ * This symbol, if defined, indicates that the endprotoent() routine is
+ * available to close whatever was being used for protocol queries.
+ */
+/*#define HAS_ENDPROTOENT / **/
+
+/* HAS_ENDPWENT:
+ * This symbol, if defined, indicates that the getgrent routine is
+ * available for finalizing sequential access of the passwd database.
+ */
+/*#define HAS_ENDPWENT / **/
+
+/* HAS_ENDSERVENT:
+ * This symbol, if defined, indicates that the endservent() routine is
+ * available to close whatever was being used for service queries.
+ */
+/*#define HAS_ENDSERVENT / **/
+
+/* FLEXFILENAMES:
+ * This symbol, if defined, indicates that the system supports filenames
+ * longer than 14 characters.
+ */
+/*#define FLEXFILENAMES / **/
+
+/* HAS_GETGRENT:
+ * This symbol, if defined, indicates that the getgrent routine is
+ * available for sequential access of the group database.
+ */
+/*#define HAS_GETGRENT / **/
+
+/* HAS_GETHOSTBYADDR:
+ * This symbol, if defined, indicates that the gethostbyaddr() routine is
+ * available to look up hosts by their IP addresses.
+ */
+/*#define HAS_GETHOSTBYADDR / **/
+
+/* HAS_GETHOSTBYNAME:
+ * This symbol, if defined, indicates that the gethostbyname() routine is
+ * available to look up host names in some data base or other.
+ */
+/*#define HAS_GETHOSTBYNAME / **/
+
+/* HAS_GETHOSTENT:
+ * This symbol, if defined, indicates that the gethostent() routine is
+ * available to look up host names in some data base or another.
+ */
+/*#define HAS_GETHOSTENT / **/
+
+/* HAS_GETHOSTNAME:
+ * This symbol, if defined, indicates that the C program may use the
+ * gethostname() routine to derive the host name. See also HAS_UNAME
+ * and PHOSTNAME.
+ */
+/* HAS_UNAME:
+ * This symbol, if defined, indicates that the C program may use the
+ * uname() routine to derive the host name. See also HAS_GETHOSTNAME
+ * and PHOSTNAME.
+ */
+/* PHOSTNAME:
+ * This symbol, if defined, indicates the command to feed to the
+ * popen() routine to derive the host name. See also HAS_GETHOSTNAME
+ * and HAS_UNAME. Note that the command uses a fully qualified path,
+ * so that it is safe even if used by a process with super-user
+ * privileges.
+ */
+/* HAS_PHOSTNAME:
+ * This symbol, if defined, indicates that the C program may use the
+ * contents of PHOSTNAME as a command to feed to the popen() routine
+ * to derive the host name.
+ */
+/*#define HAS_GETHOSTNAME / **/
+/*#define HAS_UNAME / **/
+/*#define HAS_PHOSTNAME / **/
+#ifdef HAS_PHOSTNAME
+#define PHOSTNAME "/bin/hostname" /* How to get the host name */
+#endif
+
+/* HAS_GETNETBYADDR:
+ * This symbol, if defined, indicates that the getnetbyaddr() routine is
+ * available to look up networks by their IP addresses.
+ */
+/*#define HAS_GETNETBYADDR / **/
+
+/* HAS_GETNETBYNAME:
+ * This symbol, if defined, indicates that the getnetbyname() routine is
+ * available to look up networks by their names.
+ */
+/*#define HAS_GETNETBYNAME / **/
+
+/* HAS_GETNETENT:
+ * This symbol, if defined, indicates that the getnetent() routine is
+ * available to look up network names in some data base or another.
+ */
+/*#define HAS_GETNETENT / **/
+
+/* HAS_GETPROTOENT:
+ * This symbol, if defined, indicates that the getprotoent() routine is
+ * available to look up protocols in some data base or another.
+ */
+/*#define HAS_GETPROTOENT / **/
+
+/* HAS_GETPGRP:
+ * This symbol, if defined, indicates that the getpgrp routine is
+ * available to get the current process group.
+ */
+/* USE_BSD_GETPGRP:
+ * This symbol, if defined, indicates that getpgrp needs one
+ * arguments whereas USG one needs none.
+ */
+/*#define HAS_GETPGRP / **/
+/*#define USE_BSD_GETPGRP / **/
+
+/* HAS_GETPROTOBYNAME:
+ * This symbol, if defined, indicates that the getprotobyname()
+ * routine is available to look up protocols by their name.
+ */
+/* HAS_GETPROTOBYNUMBER:
+ * This symbol, if defined, indicates that the getprotobynumber()
+ * routine is available to look up protocols by their number.
+ */
+/*#define HAS_GETPROTOBYNAME / **/
+/*#define HAS_GETPROTOBYNUMBER / **/
+
+/* HAS_GETPWENT:
+ * This symbol, if defined, indicates that the getpwent routine is
+ * available for sequential access of the passwd database.
+ * If this is not available, the older getpw() function may be available.
+ */
+/*#define HAS_GETPWENT / **/
+
+/* HAS_GETSERVENT:
+ * This symbol, if defined, indicates that the getservent() routine is
+ * available to look up network services in some data base or another.
+ */
+/*#define HAS_GETSERVENT / **/
+
+/* HAS_GETSERVBYNAME:
+ * This symbol, if defined, indicates that the getservbyname()
+ * routine is available to look up services by their name.
+ */
+/* HAS_GETSERVBYPORT:
+ * This symbol, if defined, indicates that the getservbyport()
+ * routine is available to look up services by their port.
+ */
+/*#define HAS_GETSERVBYNAME / **/
+/*#define HAS_GETSERVBYPORT / **/
+
+/* HAS_HTONL:
+ * This symbol, if defined, indicates that the htonl() routine (and
+ * friends htons() ntohl() ntohs()) are available to do network
+ * order byte swapping.
+ */
+/* HAS_HTONS:
+ * This symbol, if defined, indicates that the htons() routine (and
+ * friends htonl() ntohl() ntohs()) are available to do network
+ * order byte swapping.
+ */
+/* HAS_NTOHL:
+ * This symbol, if defined, indicates that the ntohl() routine (and
+ * friends htonl() htons() ntohs()) are available to do network
+ * order byte swapping.
+ */
+/* HAS_NTOHS:
+ * This symbol, if defined, indicates that the ntohs() routine (and
+ * friends htonl() htons() ntohl()) are available to do network
+ * order byte swapping.
+ */
+/*#define HAS_HTONL / **/
+/*#define HAS_HTONS / **/
+/*#define HAS_NTOHL / **/
+/*#define HAS_NTOHS / **/
+
+/* HAS_LONG_DOUBLE:
+ * This symbol will be defined if the C compiler supports long
+ * doubles.
+ */
+/* LONG_DOUBLESIZE:
+ * This symbol contains the size of a long double, so that the
+ * C preprocessor can make decisions based on it. It is only
+ * defined if the system supports long doubles.
+ */
+/*#define HAS_LONG_DOUBLE / **/
+#ifdef HAS_LONG_DOUBLE
+#define LONG_DOUBLESIZE 8 /**/
+#endif
+
+/* HAS_LONG_LONG:
+ * This symbol will be defined if the C compiler supports long long.
+ */
+/* LONGLONGSIZE:
+ * This symbol contains the size of a long long, so that the
+ * C preprocessor can make decisions based on it. It is only
+ * defined if the system supports long long.
+ */
+/*#define HAS_LONG_LONG / **/
+#ifdef HAS_LONG_LONG
+#define LONGLONGSIZE 8 /**/
+#endif
+
+/* HAS_MEMCHR:
+ * This symbol, if defined, indicates that the memchr routine is available
+ * to locate characters within a C string.
+ */
+#define HAS_MEMCHR /**/
+
+/* HAS_MKSTEMP:
+ * This symbol, if defined, indicates that the mkstemp routine is
+ * available to exclusively create and open a uniquely named
+ * temporary file.
+ */
+/*#define HAS_MKSTEMP / **/
+
+/* HAS_MMAP:
+ * This symbol, if defined, indicates that the mmap system call is
+ * available to map a file into memory.
+ */
+/* Mmap_t:
+ * This symbol holds the return type of the mmap() system call
+ * (and simultaneously the type of the first argument).
+ * Usually set to 'void *' or 'caddr_t'.
+ */
+/*#define HAS_MMAP / **/
+#define Mmap_t void * /**/
+
+/* HAS_MSG:
+ * This symbol, if defined, indicates that the entire msg*(2) library is
+ * supported (IPC mechanism based on message queues).
+ */
+/*#define HAS_MSG / **/
+
+/* HAS_SEM:
+ * This symbol, if defined, indicates that the entire sem*(2) library is
+ * supported.
+ */
+/*#define HAS_SEM / **/
+
+/* HAS_SETGRENT:
+ * This symbol, if defined, indicates that the setgrent routine is
+ * available for initializing sequential access of the group database.
+ */
+/*#define HAS_SETGRENT / **/
+
+/* HAS_SETHOSTENT:
+ * This symbol, if defined, indicates that the sethostent() routine is
+ * available.
+ */
+/*#define HAS_SETHOSTENT / **/
+
+/* HAS_SETNETENT:
+ * This symbol, if defined, indicates that the setnetent() routine is
+ * available.
+ */
+/*#define HAS_SETNETENT / **/
+
+/* HAS_SETPROTOENT:
+ * This symbol, if defined, indicates that the setprotoent() routine is
+ * available.
+ */
+/*#define HAS_SETPROTOENT / **/
+
+/* HAS_SETPGRP:
+ * This symbol, if defined, indicates that the setpgrp routine is
+ * available to set the current process group.
+ */
+/* USE_BSD_SETPGRP:
+ * This symbol, if defined, indicates that setpgrp needs two
+ * arguments whereas USG one needs none. See also HAS_SETPGID
+ * for a POSIX interface.
+ */
+/*#define HAS_SETPGRP / **/
+/*#define USE_BSD_SETPGRP / **/
+
+/* HAS_SETPWENT:
+ * This symbol, if defined, indicates that the setpwent routine is
+ * available for initializing sequential access of the passwd database.
+ */
+/*#define HAS_SETPWENT / **/
+
+/* HAS_SETSERVENT:
+ * This symbol, if defined, indicates that the setservent() routine is
+ * available.
+ */
+/*#define HAS_SETSERVENT / **/
+
/* HAS_SETVBUF:
* This symbol, if defined, indicates that the setvbuf routine is
* available to change buffering on an open stdio stream.
@@ -2126,40 +2752,25 @@
* Checking just with #ifdef might not be enough because this symbol
* has been known to be an enum.
*/
+/* HAS_SOCKADDR_SA_LEN:
+ * This symbol, if defined, indicates that the struct sockaddr
+ * structure has a member called sa_len, indicating the length of
+ * the structure.
+ */
+/* HAS_SIN6_SCOPE_ID:
+ * This symbol, if defined, indicates that the struct sockaddr_in6
+ * structure has a member called sin6_scope_id.
+ */
/*#define HAS_SOCKET / **/
/*#define HAS_SOCKETPAIR / **/
+/*#define HAS_SOCKADDR_SA_LEN / **/
/*#define HAS_MSG_CTRUNC / **/
/*#define HAS_MSG_DONTROUTE / **/
/*#define HAS_MSG_OOB / **/
/*#define HAS_MSG_PEEK / **/
/*#define HAS_MSG_PROXY / **/
/*#define HAS_SCM_RIGHTS / **/
-
-/* HAS_SRAND48_R:
- * This symbol, if defined, indicates that the srand48_r routine
- * is available to srand48 re-entrantly.
- */
-/* SRAND48_R_PROTO:
- * This symbol encodes the prototype of srand48_r.
- * It is zero if d_srand48_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srand48_r
- * is defined.
- */
-/*#define HAS_SRAND48_R / **/
-#define SRAND48_R_PROTO 0 /**/
-
-/* HAS_SRANDOM_R:
- * This symbol, if defined, indicates that the srandom_r routine
- * is available to srandom re-entrantly.
- */
-/* SRANDOM_R_PROTO:
- * This symbol encodes the prototype of srandom_r.
- * It is zero if d_srandom_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_srandom_r
- * is defined.
- */
-/*#define HAS_SRANDOM_R / **/
-#define SRANDOM_R_PROTO 0 /**/
+/*#define HAS_SIN6_SCOPE_ID / **/
/* USE_STAT_BLOCKS:
* This symbol is defined if this system has a stat structure declaring
@@ -2195,69 +2806,12 @@
/*#define HAS_SYS_ERRLIST / **/
#define Strerror(e) strerror(e)
-/* HAS_STRERROR_R:
- * This symbol, if defined, indicates that the strerror_r routine
- * is available to strerror re-entrantly.
- */
-/* STRERROR_R_PROTO:
- * This symbol encodes the prototype of strerror_r.
- * It is zero if d_strerror_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_strerror_r
- * is defined.
- */
-/*#define HAS_STRERROR_R / **/
-#define STRERROR_R_PROTO 0 /**/
-
/* HAS_STRTOUL:
* This symbol, if defined, indicates that the strtoul routine is
* available to provide conversion of strings to unsigned long.
*/
#define HAS_STRTOUL /**/
-/* HAS_TIME:
- * This symbol, if defined, indicates that the time() routine exists.
- */
-/* Time_t:
- * This symbol holds the type returned by time(). It can be long,
- * or time_t on BSD sites (in which case <sys/types.h> should be
- * included).
- */
-#define HAS_TIME /**/
-#define Time_t time_t /* Time type */
-
-/* HAS_TIMES:
- * This symbol, if defined, indicates that the times() routine exists.
- * Note that this became obsolete on some systems (SUNOS), which now
- * use getrusage(). It may be necessary to include <sys/times.h>.
- */
-/*#define HAS_TIMES / **/
-
-/* HAS_TMPNAM_R:
- * This symbol, if defined, indicates that the tmpnam_r routine
- * is available to tmpnam re-entrantly.
- */
-/* TMPNAM_R_PROTO:
- * This symbol encodes the prototype of tmpnam_r.
- * It is zero if d_tmpnam_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_tmpnam_r
- * is defined.
- */
-/*#define HAS_TMPNAM_R / **/
-#define TMPNAM_R_PROTO 0 /**/
-
-/* HAS_TTYNAME_R:
- * This symbol, if defined, indicates that the ttyname_r routine
- * is available to ttyname re-entrantly.
- */
-/* TTYNAME_R_PROTO:
- * This symbol encodes the prototype of ttyname_r.
- * It is zero if d_ttyname_r is undef, and one of the
- * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ttyname_r
- * is defined.
- */
-/*#define HAS_TTYNAME_R / **/
-#define TTYNAME_R_PROTO 0 /**/
-
/* HAS_UNION_SEMUN:
* This symbol, if defined, indicates that the union semun is
* defined by including <sys/sem.h>. If not, the user code
@@ -2308,38 +2862,6 @@
#define volatile
#endif
-/* Fpos_t:
- * This symbol holds the type used to declare file positions in libc.
- * It can be fpos_t, long, uint, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Fpos_t int /* File position type */
-
-/* Gid_t_f:
- * This symbol defines the format string used for printing a Gid_t.
- */
-#define Gid_t_f "lu" /**/
-
-/* Gid_t_sign:
- * This symbol holds the signedess of a Gid_t.
- * 1 for unsigned, -1 for signed.
- */
-#define Gid_t_sign 1 /* GID sign */
-
-/* Gid_t_size:
- * This symbol holds the size of a Gid_t in bytes.
- */
-#define Gid_t_size 4 /* GID size */
-
-/* Gid_t:
- * This symbol holds the return type of getgid() and the type of
- * argument to setrgid() and related functions. Typically,
- * it is the type of group ids in the kernel. It can be int, ushort,
- * gid_t, etc... It may be necessary to include <sys/types.h> to get
- * any typedef'ed information.
- */
-#define Gid_t int /* Type for getgid(), etc... */
-
/* I_DIRENT:
* This symbol, if defined, indicates to the C program that it should
* include <dirent.h>. Using this symbol also triggers the definition
@@ -2371,12 +2893,6 @@
/*#define I_GRP / **/
/*#define GRPASSWD / **/
-/* I_MACH_CTHREADS:
- * This symbol, if defined, indicates to the C program that it should
- * include <mach/cthreads.h>.
- */
-/*#define I_MACH_CTHREADS / **/
-
/* I_NDBM:
* This symbol, if defined, indicates that <ndbm.h> exists and should
* be included.
@@ -2428,12 +2944,6 @@
*/
/*#define I_NET_ERRNO / **/
-/* I_PTHREAD:
- * This symbol, if defined, indicates to the C program that it should
- * include <pthread.h>.
- */
-/*#define I_PTHREAD / **/
-
/* I_PWD:
* This symbol, if defined, indicates to the C program that it should
* include <pwd.h>.
@@ -2480,18 +2990,6 @@
/*#define PWGECOS / **/
/*#define PWPASSWD / **/
-/* I_SYS_ACCESS:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/access.h>.
- */
-/*#define I_SYS_ACCESS / **/
-
-/* I_SYS_SECURITY:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/security.h>.
- */
-/*#define I_SYS_SECURITY / **/
-
/* I_SYSUIO:
* This symbol, if defined, indicates that <sys/uio.h> exists and
* should be included.
@@ -2509,36 +3007,6 @@
#define I_STDARG /**/
/*#define I_VARARGS / **/
-/* PERL_INC_VERSION_LIST:
- * This variable specifies the list of subdirectories in over
- * which perl.c:incpush() and lib/lib.pm will automatically
- * search when adding directories to @INC, in a format suitable
- * for a C initialization string. See the inc_version_list entry
- * in Porting/Glossary for more details.
- */
-/*#define PERL_INC_VERSION_LIST NULL / **/
-
-/* INSTALL_USR_BIN_PERL:
- * This symbol, if defined, indicates that Perl is to be installed
- * also as /usr/bin/perl.
- */
-/*#define INSTALL_USR_BIN_PERL / **/
-
-/* Off_t:
- * This symbol holds the type used to declare offsets in the kernel.
- * It can be int, long, off_t, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-/* LSEEKSIZE:
- * This symbol holds the number of bytes used by the Off_t.
- */
-/* Off_t_size:
- * This symbol holds the number of bytes used by the Off_t.
- */
-#define Off_t int /* <offset> type */
-#define LSEEKSIZE 4 /* <offset> size */
-#define Off_t_size 4 /* <offset> size */
-
/* Free_t:
* This variable contains the return type of free(). It is usually
* void, but occasionally int.
@@ -2559,65 +3027,6 @@
*/
/*#define MYMALLOC / **/
-/* Mode_t:
- * This symbol holds the type used to declare file modes
- * for systems calls. It is usually mode_t, but may be
- * int or unsigned short. It may be necessary to include <sys/types.h>
- * to get any typedef'ed information.
- */
-#define Mode_t int /* file mode parameter for system calls */
-
-/* Netdb_host_t:
- * This symbol holds the type used for the 1st argument
- * to gethostbyaddr().
- */
-/* Netdb_hlen_t:
- * This symbol holds the type used for the 2nd argument
- * to gethostbyaddr().
- */
-/* Netdb_name_t:
- * This symbol holds the type used for the argument to
- * gethostbyname().
- */
-/* Netdb_net_t:
- * This symbol holds the type used for the 1st argument to
- * getnetbyaddr().
- */
-#define Netdb_host_t const char * /**/
-#define Netdb_hlen_t int /**/
-#define Netdb_name_t const char * /**/
-#define Netdb_net_t unsigned long /**/
-
-/* PERL_OTHERLIBDIRS:
- * This variable contains a colon-separated set of paths for the perl
- * binary to search for additional library files or modules.
- * These directories will be tacked to the end of @INC.
- * Perl will automatically search below each path for version-
- * and architecture-specific directories. See PERL_INC_VERSION_LIST
- * for more details.
- */
-/*#define PERL_OTHERLIBDIRS " " / **/
-
-/* Pid_t:
- * This symbol holds the type used to declare process ids in the kernel.
- * It can be int, uint, pid_t, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Pid_t int /* PID type */
-
-/* PRIVLIB:
- * This symbol contains the name of the private library for this package.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world. The program
- * should be prepared to do ~ expansion.
- */
-/* PRIVLIB_EXP:
- * This symbol contains the ~name expanded version of PRIVLIB, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-#define PRIVLIB "/usr/local/lib/perl5/5.11" /**/
-#define PRIVLIB_EXP "/usr/local/lib/perl5/5.11" /**/
-
/* CAN_PROTOTYPE:
* If defined, this macro indicates that the C compiler can handle
* function prototypes.
@@ -2636,14 +3045,6 @@
#define _(args) ()
#endif
-/* Select_fd_set_t:
- * This symbol holds the type used for the 2nd, 3rd, and 4th
- * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
- * is defined, and 'int *' otherwise. This is only useful if you
- * have select(), of course.
- */
-#define Select_fd_set_t int /**/
-
/* SH_PATH:
* This symbol contains the full pathname to the shell used on this
* on this system to execute Bourne shell scripts. Usually, this will be
@@ -2693,152 +3094,12 @@
#define SIG_NUM 0 /**/
#define SIG_SIZE 1 /**/
-/* SITEARCH:
- * This symbol contains the name of the private library for this package.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world. The program
- * should be prepared to do ~ expansion.
- * The standard distribution will put nothing in this directory.
- * After perl has been installed, users may install their own local
- * architecture-dependent modules in this directory with
- * MakeMaker Makefile.PL
- * or equivalent. See INSTALL for details.
- */
-/* SITEARCH_EXP:
- * This symbol contains the ~name expanded version of SITEARCH, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-/*#define SITEARCH "/usr/local/lib/perl5/5.11/unknown" / **/
-/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.11/unknown" / **/
-
-/* SITELIB:
- * This symbol contains the name of the private library for this package.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world. The program
- * should be prepared to do ~ expansion.
- * The standard distribution will put nothing in this directory.
- * After perl has been installed, users may install their own local
- * architecture-independent modules in this directory with
- * MakeMaker Makefile.PL
- * or equivalent. See INSTALL for details.
- */
-/* SITELIB_EXP:
- * This symbol contains the ~name expanded version of SITELIB, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-/* SITELIB_STEM:
- * This define is SITELIB_EXP with any trailing version-specific component
- * removed. The elements in inc_version_list (inc_version_list.U) can
- * be tacked onto this variable to generate a list of directories to search.
- */
-#define SITELIB "/usr/local/lib/perl5/5.11" /**/
-#define SITELIB_EXP "/usr/local/lib/perl5/5.11" /**/
-#define SITELIB_STEM "/usr/local/lib/perl5" /**/
-
-/* Size_t_size:
- * This symbol holds the size of a Size_t in bytes.
- */
-#define Size_t_size 4 /* */
-
-/* Size_t:
- * This symbol holds the type used to declare length parameters
- * for string functions. It is usually size_t, but may be
- * unsigned long, int, etc. It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Size_t size_t /* length paramater for string functions */
-
-/* Sock_size_t:
- * This symbol holds the type used for the size argument of
- * various socket calls (just the base type, not the pointer-to).
- */
-#define Sock_size_t int /**/
-
/* STDCHAR:
* This symbol is defined to be the type of char used in stdio.h.
* It has the values "unsigned char" or "char".
*/
#define STDCHAR char /**/
-/* Uid_t_f:
- * This symbol defines the format string used for printing a Uid_t.
- */
-#define Uid_t_f "lu" /**/
-
-/* Uid_t_sign:
- * This symbol holds the signedess of a Uid_t.
- * 1 for unsigned, -1 for signed.
- */
-#define Uid_t_sign 1 /* UID sign */
-
-/* Uid_t_size:
- * This symbol holds the size of a Uid_t in bytes.
- */
-#define Uid_t_size 4 /* UID size */
-
-/* Uid_t:
- * This symbol holds the type used to declare user ids in the kernel.
- * It can be int, ushort, uid_t, etc... It may be necessary to include
- * <sys/types.h> to get any typedef'ed information.
- */
-#define Uid_t int /* UID type */
-
-/* USE_ITHREADS:
- * This symbol, if defined, indicates that Perl should be built to
- * use the interpreter-based threading implementation.
- */
-/* USE_5005THREADS:
- * This symbol, if defined, indicates that Perl should be built to
- * use the 5.005-based threading implementation.
- * Only valid up to 5.8.x.
- */
-/* OLD_PTHREADS_API:
- * This symbol, if defined, indicates that Perl should
- * be built to use the old draft POSIX threads API.
- */
-/* USE_REENTRANT_API:
- * This symbol, if defined, indicates that Perl should
- * try to use the various _r versions of library functions.
- * This is extremely experimental.
- */
-/*#define USE_5005THREADS / **/
-/*#define USE_ITHREADS / **/
-#if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
-#define USE_THREADS /* until src is revised*/
-#endif
-/*#define OLD_PTHREADS_API / **/
-/*#define USE_REENTRANT_API / **/
-
-/* PERL_VENDORARCH:
- * If defined, this symbol contains the name of a private library.
- * The library is private in the sense that it needn't be in anyone's
- * execution path, but it should be accessible by the world.
- * It may have a ~ on the front.
- * The standard distribution will put nothing in this directory.
- * Vendors who distribute perl may wish to place their own
- * architecture-dependent modules and extensions in this directory with
- * MakeMaker Makefile.PL INSTALLDIRS=vendor
- * or equivalent. See INSTALL for details.
- */
-/* PERL_VENDORARCH_EXP:
- * This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-/*#define PERL_VENDORARCH "" / **/
-/*#define PERL_VENDORARCH_EXP "" / **/
-
-/* PERL_VENDORLIB_EXP:
- * This symbol contains the ~name expanded version of VENDORLIB, to be used
- * in programs that are not prepared to deal with ~ expansion at run-time.
- */
-/* PERL_VENDORLIB_STEM:
- * This define is PERL_VENDORLIB_EXP with any trailing version-specific component
- * removed. The elements in inc_version_list (inc_version_list.U) can
- * be tacked onto this variable to generate a list of directories to search.
- */
-/*#define PERL_VENDORLIB_EXP "" / **/
-/*#define PERL_VENDORLIB_STEM "" / **/
-
/* VOIDFLAGS:
* This symbol indicates how much support of the void type is given by this
* compiler. What various bits mean:
@@ -2847,7 +3108,7 @@
* 2 = supports arrays of pointers to functions returning void
* 4 = supports comparisons between pointers to void functions and
* addresses of void functions
- * 8 = suports declaration of generic void pointers
+ * 8 = supports declaration of generic void pointers
*
* The package designer should define VOIDUSED to indicate the requirements
* of the package. This can be done either by #defining VOIDUSED before
@@ -2864,410 +3125,6 @@
#define M_VOID /* Xenix strikes again */
#endif
-/* USE_CROSS_COMPILE:
- * This symbol, if defined, indicates that Perl is being cross-compiled.
- */
-/* PERL_TARGETARCH:
- * This symbol, if defined, indicates the target architecture
- * Perl has been cross-compiled to. Undefined if not a cross-compile.
- */
-#ifndef USE_CROSS_COMPILE
-/*#define USE_CROSS_COMPILE / **/
-#define PERL_TARGETARCH "" /**/
-#endif
-
-/* MEM_ALIGNBYTES:
- * This symbol contains the number of bytes required to align a
- * double, or a long double when applicable. Usual values are 2,
- * 4 and 8. The default is eight, for safety.
- */
-#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
-# define MEM_ALIGNBYTES 8
-#else
-#define MEM_ALIGNBYTES 4
-#endif
-
-/* BYTEORDER:
- * This symbol holds the hexadecimal constant defined in byteorder,
- * in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc...
- * If the compiler supports cross-compiling or multiple-architecture
- * binaries (eg. on NeXT systems), use compiler-defined macros to
- * determine the byte order.
- * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
- * Binaries (MAB) on either big endian or little endian machines.
- * The endian-ness is available at compile-time. This only matters
- * for perl, where the config.h can be generated and installed on
- * one system, and used by a different architecture to build an
- * extension. Older versions of NeXT that might not have
- * defined either *_ENDIAN__ were all on Motorola 680x0 series,
- * so the default case (for NeXT) is big endian to catch them.
- * This might matter for NeXT 3.0.
- */
-#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
-# ifdef __LITTLE_ENDIAN__
-# if LONGSIZE == 4
-# define BYTEORDER 0x1234
-# else
-# if LONGSIZE == 8
-# define BYTEORDER 0x12345678
-# endif
-# endif
-# else
-# ifdef __BIG_ENDIAN__
-# if LONGSIZE == 4
-# define BYTEORDER 0x4321
-# else
-# if LONGSIZE == 8
-# define BYTEORDER 0x87654321
-# endif
-# endif
-# endif
-# endif
-# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
-# define BYTEORDER 0x4321
-# endif
-#else
-#define BYTEORDER 0x1234 /* large digits for MSB */
-#endif /* NeXT */
-
-/* CASTI32:
- * This symbol is defined if the C compiler can cast negative
- * or large floating point numbers to 32-bit ints.
- */
-/*#define CASTI32 / **/
-
-/* CASTNEGFLOAT:
- * This symbol is defined if the C compiler can cast negative
- * numbers to unsigned longs, ints and shorts.
- */
-/* CASTFLAGS:
- * This symbol contains flags that say what difficulties the compiler
- * has casting odd floating values to unsigned long:
- * 0 = ok
- * 1 = couldn't cast < 0
- * 2 = couldn't cast >= 0x80000000
- * 4 = couldn't cast in argument expression list
- */
-/*#define CASTNEGFLOAT / **/
-#define CASTFLAGS 0 /**/
-
-/* VOID_CLOSEDIR:
- * This symbol, if defined, indicates that the closedir() routine
- * does not return a value.
- */
-/*#define VOID_CLOSEDIR / **/
-
-/* HAS_FD_SET:
- * This symbol, when defined, indicates presence of the fd_set typedef
- * in <sys/types.h>
- */
-/*#define HAS_FD_SET / **/
-
-/* Gconvert:
- * This preprocessor macro is defined to convert a floating point
- * number to a string without a trailing decimal point. This
- * emulates the behavior of sprintf("%g"), but is sometimes much more
- * efficient. If gconvert() is not available, but gcvt() drops the
- * trailing decimal point, then gcvt() is used. If all else fails,
- * a macro using sprintf("%g") is used. Arguments for the Gconvert
- * macro are: value, number of digits, whether trailing zeros should
- * be retained, and the output buffer.
- * The usual values are:
- * d_Gconvert='gconvert((x),(n),(t),(b))'
- * d_Gconvert='gcvt((x),(n),(b))'
- * d_Gconvert='sprintf((b),"%.*g",(n),(x))'
- * The last two assume trailing zeros should not be kept.
- */
-#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x))
-
-/* HAS_GETPAGESIZE:
- * This symbol, if defined, indicates that the getpagesize system call
- * is available to get system page size, which is the granularity of
- * many memory management calls.
- */
-/*#define HAS_GETPAGESIZE / **/
-
-/* HAS_GNULIBC:
- * This symbol, if defined, indicates to the C program that
- * the GNU C library is being used. A better check is to use
- * the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc.
- */
-/*#define HAS_GNULIBC / **/
-#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
-# define _GNU_SOURCE
-#endif
-
-/* HAS_ISASCII:
- * This manifest constant lets the C program know that isascii
- * is available.
- */
-/*#define HAS_ISASCII / **/
-
-/* HAS_LCHOWN:
- * This symbol, if defined, indicates that the lchown routine is
- * available to operate on a symbolic link (instead of following the
- * link).
- */
-/*#define HAS_LCHOWN / **/
-
-/* HAS_OPEN3:
- * This manifest constant lets the C program know that the three
- * argument form of open(2) is available.
- */
-/*#define HAS_OPEN3 / **/
-
-/* HAS_SAFE_BCOPY:
- * This symbol, if defined, indicates that the bcopy routine is available
- * to copy potentially overlapping memory blocks. Normally, you should
- * probably use memmove() or memcpy(). If neither is defined, roll your
- * own version.
- */
-/*#define HAS_SAFE_BCOPY / **/
-
-/* HAS_SAFE_MEMCPY:
- * This symbol, if defined, indicates that the memcpy routine is available
- * to copy potentially overlapping memory blocks. If you need to
- * copy overlapping memory blocks, you should check HAS_MEMMOVE and
- * use memmove() instead, if available.
- */
-/*#define HAS_SAFE_MEMCPY / **/
-
-/* HAS_SANE_MEMCMP:
- * This symbol, if defined, indicates that the memcmp routine is available
- * and can be used to compare relative magnitudes of chars with their high
- * bits set. If it is not defined, roll your own version.
- */
-/*#define HAS_SANE_MEMCMP / **/
-
-/* HAS_SIGACTION:
- * This symbol, if defined, indicates that Vr4's sigaction() routine
- * is available.
- */
-/*#define HAS_SIGACTION / **/
-
-/* HAS_SIGSETJMP:
- * This variable indicates to the C program that the sigsetjmp()
- * routine is available to save the calling process's registers
- * and stack environment for later use by siglongjmp(), and
- * to optionally save the process's signal mask. See
- * Sigjmp_buf, Sigsetjmp, and Siglongjmp.
- */
-/* Sigjmp_buf:
- * This is the buffer type to be used with Sigsetjmp and Siglongjmp.
- */
-/* Sigsetjmp:
- * This macro is used in the same way as sigsetjmp(), but will invoke
- * traditional setjmp() if sigsetjmp isn't available.
- * See HAS_SIGSETJMP.
- */
-/* Siglongjmp:
- * This macro is used in the same way as siglongjmp(), but will invoke
- * traditional longjmp() if siglongjmp isn't available.
- * See HAS_SIGSETJMP.
- */
-/*#define HAS_SIGSETJMP / **/
-#ifdef HAS_SIGSETJMP
-#define Sigjmp_buf sigjmp_buf
-#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))
-#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))
-#else
-#define Sigjmp_buf jmp_buf
-#define Sigsetjmp(buf,save_mask) setjmp((buf))
-#define Siglongjmp(buf,retval) longjmp((buf),(retval))
-#endif
-
-/* USE_STDIO_PTR:
- * This symbol is defined if the _ptr and _cnt fields (or similar)
- * of the stdio FILE structure can be used to access the stdio buffer
- * for a file handle. If this is defined, then the FILE_ptr(fp)
- * and FILE_cnt(fp) macros will also be defined and should be used
- * to access these fields.
- */
-/* FILE_ptr:
- * This macro is used to access the _ptr field (or equivalent) of the
- * FILE structure pointed to by its argument. This macro will always be
- * defined if USE_STDIO_PTR is defined.
- */
-/* STDIO_PTR_LVALUE:
- * This symbol is defined if the FILE_ptr macro can be used as an
- * lvalue.
- */
-/* FILE_cnt:
- * This macro is used to access the _cnt field (or equivalent) of the
- * FILE structure pointed to by its argument. This macro will always be
- * defined if USE_STDIO_PTR is defined.
- */
-/* STDIO_CNT_LVALUE:
- * This symbol is defined if the FILE_cnt macro can be used as an
- * lvalue.
- */
-/* STDIO_PTR_LVAL_SETS_CNT:
- * This symbol is defined if using the FILE_ptr macro as an lvalue
- * to increase the pointer by n has the side effect of decreasing the
- * value of File_cnt(fp) by n.
- */
-/* STDIO_PTR_LVAL_NOCHANGE_CNT:
- * This symbol is defined if using the FILE_ptr macro as an lvalue
- * to increase the pointer by n leaves File_cnt(fp) unchanged.
- */
-/*#define USE_STDIO_PTR / **/
-#ifdef USE_STDIO_PTR
-#define FILE_ptr(fp) ((fp)->_IO_read_ptr)
-/*#define STDIO_PTR_LVALUE / **/
-#define FILE_cnt(fp) ((fp)->_IO_read_end - (fp)->_IO_read_ptr)
-/*#define STDIO_CNT_LVALUE / **/
-/*#define STDIO_PTR_LVAL_SETS_CNT / **/
-/*#define STDIO_PTR_LVAL_NOCHANGE_CNT / **/
-#endif
-
-/* USE_STDIO_BASE:
- * This symbol is defined if the _base field (or similar) of the
- * stdio FILE structure can be used to access the stdio buffer for
- * a file handle. If this is defined, then the FILE_base(fp) macro
- * will also be defined and should be used to access this field.
- * Also, the FILE_bufsiz(fp) macro will be defined and should be used
- * to determine the number of bytes in the buffer. USE_STDIO_BASE
- * will never be defined unless USE_STDIO_PTR is.
- */
-/* FILE_base:
- * This macro is used to access the _base field (or equivalent) of the
- * FILE structure pointed to by its argument. This macro will always be
- * defined if USE_STDIO_BASE is defined.
- */
-/* FILE_bufsiz:
- * This macro is used to determine the number of bytes in the I/O
- * buffer pointed to by _base field (or equivalent) of the FILE
- * structure pointed to its argument. This macro will always be defined
- * if USE_STDIO_BASE is defined.
- */
-/*#define USE_STDIO_BASE / **/
-#ifdef USE_STDIO_BASE
-#define FILE_base(fp) ((fp)->_IO_read_base)
-#define FILE_bufsiz(fp) ((fp)->_IO_read_end - (fp)->_IO_read_base)
-#endif
-
-/* HAS_VPRINTF:
- * This symbol, if defined, indicates that the vprintf routine is available
- * to printf with a pointer to an argument list. If unavailable, you
- * may need to write your own, probably in terms of _doprnt().
- */
-/* USE_CHAR_VSPRINTF:
- * This symbol is defined if this system has vsprintf() returning type
- * (char*). The trend seems to be to declare it as "int vsprintf()". It
- * is up to the package author to declare vsprintf correctly based on the
- * symbol.
- */
-#define HAS_VPRINTF /**/
-/*#define USE_CHAR_VSPRINTF / **/
-
-/* DOUBLESIZE:
- * This symbol contains the size of a double, so that the C preprocessor
- * can make decisions based on it.
- */
-#define DOUBLESIZE 8 /**/
-
-/* I_TIME:
- * This symbol, if defined, indicates to the C program that it should
- * include <time.h>.
- */
-/* I_SYS_TIME:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/time.h>.
- */
-/* I_SYS_TIME_KERNEL:
- * This symbol, if defined, indicates to the C program that it should
- * include <sys/time.h> with KERNEL defined.
- */
-/* HAS_TM_TM_ZONE:
- * This symbol, if defined, indicates to the C program that
- * the struct tm has a tm_zone field.
- */
-/* HAS_TM_TM_GMTOFF:
- * This symbol, if defined, indicates to the C program that
- * the struct tm has a tm_gmtoff field.
- */
-#define I_TIME /**/
-/*#define I_SYS_TIME / **/
-/*#define I_SYS_TIME_KERNEL / **/
-/*#define HAS_TM_TM_ZONE / **/
-/*#define HAS_TM_TM_GMTOFF / **/
-
-/* VAL_O_NONBLOCK:
- * This symbol is to be used during open() or fcntl(F_SETFL) to turn on
- * non-blocking I/O for the file descriptor. Note that there is no way
- * back, i.e. you cannot turn it blocking again this way. If you wish to
- * alternatively switch between blocking and non-blocking, use the
- * ioctl(FIOSNBIO) call instead, but that is not supported by all devices.
- */
-/* VAL_EAGAIN:
- * This symbol holds the errno error code set by read() when no data was
- * present on the non-blocking file descriptor.
- */
-/* RD_NODATA:
- * This symbol holds the return code from read() when no data is present
- * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is
- * not defined, then you can't distinguish between no data and EOF by
- * issuing a read(). You'll have to find another way to tell for sure!
- */
-/* EOF_NONBLOCK:
- * This symbol, if defined, indicates to the C program that a read() on
- * a non-blocking file descriptor will return 0 on EOF, and not the value
- * held in RD_NODATA (-1 usually, in that case!).
- */
-#define VAL_O_NONBLOCK O_NONBLOCK
-#define VAL_EAGAIN EAGAIN
-#define RD_NODATA -1
-#undef EOF_NONBLOCK
-
-/* PTRSIZE:
- * This symbol contains the size of a pointer, so that the C preprocessor
- * can make decisions based on it. It will be sizeof(void *) if
- * the compiler supports (void *); otherwise it will be
- * sizeof(char *).
- */
-#define PTRSIZE 4 /**/
-
-/* Drand01:
- * This macro is to be used to generate uniformly distributed
- * random numbers over the range [0., 1.[. You may have to supply
- * an 'extern double drand48();' in your program since SunOS 4.1.3
- * doesn't provide you with anything relevant in its headers.
- * See HAS_DRAND48_PROTO.
- */
-/* Rand_seed_t:
- * This symbol defines the type of the argument of the
- * random seed function.
- */
-/* seedDrand01:
- * This symbol defines the macro to be used in seeding the
- * random number generator (see Drand01).
- */
-/* RANDBITS:
- * This symbol indicates how many bits are produced by the
- * function used to generate normalized random numbers.
- * Values include 15, 16, 31, and 48.
- */
-#define Drand01() ((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15)) /**/
-#define Rand_seed_t int /**/
-#define seedDrand01(x) srand((Rand_seed_t)x) /**/
-#define RANDBITS 48 /**/
-
-/* SSize_t:
- * This symbol holds the type used by functions that return
- * a count of bytes or an error condition. It must be a signed type.
- * It is usually ssize_t, but may be long or int, etc.
- * It may be necessary to include <sys/types.h> or <unistd.h>
- * to get any typedef'ed information.
- * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t).
- */
-#define SSize_t int /* signed count of bytes */
-
-/* EBCDIC:
- * This symbol, if defined, indicates that this system uses
- * EBCDIC encoding.
- */
-/*#define EBCDIC / **/
-
/* PERL_USE_DEVEL:
* This symbol, if defined, indicates that Perl was configured with
* -Dusedevel, to enable development features. This should not be
@@ -3541,6 +3398,12 @@
*/
/*#define HAS_FUTIMES / **/
+/* HAS_GETADDRINFO:
+ * This symbol, if defined, indicates that the getaddrinfo() function
+ * is available for use.
+ */
+/*#define HAS_GETADDRINFO / **/
+
/* HAS_GETCWD:
* This symbol, if defined, indicates that the getcwd routine is
* available to get the current working directory.
@@ -3549,7 +3412,7 @@
/* HAS_GETESPWNAM:
* This symbol, if defined, indicates that the getespwnam system call is
- * available to retrieve enchanced (shadow) password entries by name.
+ * available to retrieve enhanced (shadow) password entries by name.
*/
/*#define HAS_GETESPWNAM / **/
@@ -3577,6 +3440,12 @@
*/
/*#define HAS_GETMNTENT / **/
+/* HAS_GETNAMEINFO:
+ * This symbol, if defined, indicates that the getnameinfo() function
+ * is available for use.
+ */
+/*#define HAS_GETNAMEINFO / **/
+
/* HAS_GETPRPWNAM:
* This symbol, if defined, indicates that the getprpwnam system call is
* available to retrieve protected (shadow) password entries by name.
@@ -3601,6 +3470,18 @@
*/
/*#define HAS_ILOGBL / **/
+/* HAS_INETNTOP:
+ * This symbol, if defined, indicates that the inet_ntop() function
+ * is available to parse IPv4 and IPv6 strings.
+ */
+/*#define HAS_INETNTOP / **/
+
+/* HAS_INETPTON:
+ * This symbol, if defined, indicates that the inet_pton() function
+ * is available to parse IPv4 and IPv6 strings.
+ */
+/*#define HAS_INETPTON / **/
+
/* HAS_INT64_T:
* This symbol will defined if the C compiler supports int64_t.
* Usually the <inttypes.h> needs to be included, but sometimes
@@ -3672,7 +3553,7 @@
/* HAS_MKSTEMPS:
* This symbol, if defined, indicates that the mkstemps routine is
- * available to excluslvely create and open a uniquely named
+ * available to exclusively create and open a uniquely named
* (with a suffix) temporary file.
*/
/*#define HAS_MKSTEMPS / **/
@@ -3722,6 +3603,17 @@
*/
/*#define HAS_OFF64_T / **/
+/* HAS_PRCTL:
+ * This symbol, if defined, indicates that the prctl routine is
+ * available to set process title.
+ */
+/* HAS_PRCTL_SET_NAME:
+ * This symbol, if defined, indicates that the prctl routine is
+ * available to set process title and supports PR_SET_NAME.
+ */
+/*#define HAS_PRCTL / **/
+/*#define HAS_PRCTL_SET_NAME / **/
+
/* HAS_PROCSELFEXE:
* This symbol is defined if PROCSELFEXE_PATH is a symlink
* to the absolute pathname of the executing program.
@@ -4282,7 +4174,7 @@
* of copying mechanisms, handy.h defines a platform-
* independent macro, Perl_va_copy(src, dst), to do the job.
*/
-/*#define NEED_VA_COPY / **/
+#define NEED_VA_COPY /**/
/* IVTYPE:
* This symbol defines the C type used for Perl's IV.
@@ -4361,7 +4253,7 @@
/* NV_OVERFLOWS_INTEGERS_AT:
* This symbol gives the largest integer value that NVs can hold. This
* value + 1.0 cannot be stored accurately. It is expressed as constant
- * floating point expression to reduce the chance of decimale/binary
+ * floating point expression to reduce the chance of decimal/binary
* conversion issues. If it can not be determined, the value 0 is given.
*/
/* NV_ZERO_IS_ALLBITS_ZERO:
@@ -4370,7 +4262,7 @@
*/
#define IVTYPE long /**/
#define UVTYPE unsigned long /**/
-#define I8TYPE char /**/
+#define I8TYPE signed char /**/
#define U8TYPE unsigned char /**/
#define I16TYPE short /**/
#define U16TYPE unsigned short /**/
@@ -4592,4 +4484,208 @@
/*#define USE_SOCKS / **/
#endif
+/* HAS_DRAND48_PROTO:
+ * This symbol, if defined, indicates that the system provides
+ * a prototype for the drand48() function. Otherwise, it is up
+ * to the program to supply one. A good guess is
+ * extern double drand48(void);
+ */
+/*#define HAS_DRAND48_PROTO / **/
+
+/* HAS_GETHOST_PROTOS:
+ * This symbol, if defined, indicates that <netdb.h> includes
+ * prototypes for gethostent(), gethostbyname(), and
+ * gethostbyaddr(). Otherwise, it is up to the program to guess
+ * them. See netdbtype.U for probing for various Netdb_xxx_t types.
+ */
+/*#define HAS_GETHOST_PROTOS / **/
+
+/* HAS_GETNET_PROTOS:
+ * This symbol, if defined, indicates that <netdb.h> includes
+ * prototypes for getnetent(), getnetbyname(), and
+ * getnetbyaddr(). Otherwise, it is up to the program to guess
+ * them. See netdbtype.U for probing for various Netdb_xxx_t types.
+ */
+/*#define HAS_GETNET_PROTOS / **/
+
+/* HAS_GETPROTO_PROTOS:
+ * This symbol, if defined, indicates that <netdb.h> includes
+ * prototypes for getprotoent(), getprotobyname(), and
+ * getprotobyaddr(). Otherwise, it is up to the program to guess
+ * them. See netdbtype.U for probing for various Netdb_xxx_t types.
+ */
+/*#define HAS_GETPROTO_PROTOS / **/
+
+/* HAS_GETSERV_PROTOS:
+ * This symbol, if defined, indicates that <netdb.h> includes
+ * prototypes for getservent(), getservbyname(), and
+ * getservbyaddr(). Otherwise, it is up to the program to guess
+ * them. See netdbtype.U for probing for various Netdb_xxx_t types.
+ */
+/*#define HAS_GETSERV_PROTOS / **/
+
+/* HAS_LSEEK_PROTO:
+ * This symbol, if defined, indicates that the system provides
+ * a prototype for the lseek() function. Otherwise, it is up
+ * to the program to supply one. A good guess is
+ * extern off_t lseek(int, off_t, int);
+ */
+/*#define HAS_LSEEK_PROTO / **/
+
+/* Netdb_host_t:
+ * This symbol holds the type used for the 1st argument
+ * to gethostbyaddr().
+ */
+/* Netdb_hlen_t:
+ * This symbol holds the type used for the 2nd argument
+ * to gethostbyaddr().
+ */
+/* Netdb_name_t:
+ * This symbol holds the type used for the argument to
+ * gethostbyname().
+ */
+/* Netdb_net_t:
+ * This symbol holds the type used for the 1st argument to
+ * getnetbyaddr().
+ */
+#define Netdb_host_t const char * /**/
+#define Netdb_hlen_t int /**/
+#define Netdb_name_t const char * /**/
+#define Netdb_net_t unsigned long /**/
+
+/* Select_fd_set_t:
+ * This symbol holds the type used for the 2nd, 3rd, and 4th
+ * arguments to select. Usually, this is 'fd_set *', if HAS_FD_SET
+ * is defined, and 'int *' otherwise. This is only useful if you
+ * have select(), of course.
+ */
+#define Select_fd_set_t int /**/
+
+/* Sock_size_t:
+ * This symbol holds the type used for the size argument of
+ * various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t int /**/
+
+/* HAS_TIME:
+ * This symbol, if defined, indicates that the time() routine exists.
+ */
+/* Time_t:
+ * This symbol holds the type returned by time(). It can be long,
+ * or time_t on BSD sites (in which case <sys/types.h> should be
+ * included).
+ */
+#define HAS_TIME /**/
+#define Time_t time_t /* Time type */
+
+/* HAS_TIMES:
+ * This symbol, if defined, indicates that the times() routine exists.
+ * Note that this became obsolete on some systems (SUNOS), which now
+ * use getrusage(). It may be necessary to include <sys/times.h>.
+ */
+/*#define HAS_TIMES / **/
+
+/* Fpos_t:
+ * This symbol holds the type used to declare file positions in libc.
+ * It can be fpos_t, long, uint, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Fpos_t int /* File position type */
+
+/* Gid_t_f:
+ * This symbol defines the format string used for printing a Gid_t.
+ */
+#define Gid_t_f "lu" /**/
+
+/* Gid_t_sign:
+ * This symbol holds the signedess of a Gid_t.
+ * 1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign 1 /* GID sign */
+
+/* Gid_t_size:
+ * This symbol holds the size of a Gid_t in bytes.
+ */
+#define Gid_t_size 4 /* GID size */
+
+/* Gid_t:
+ * This symbol holds the return type of getgid() and the type of
+ * argument to setrgid() and related functions. Typically,
+ * it is the type of group ids in the kernel. It can be int, ushort,
+ * gid_t, etc... It may be necessary to include <sys/types.h> to get
+ * any typedef'ed information.
+ */
+#define Gid_t int /* Type for getgid(), etc... */
+
+/* Off_t:
+ * This symbol holds the type used to declare offsets in the kernel.
+ * It can be int, long, off_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+/* LSEEKSIZE:
+ * This symbol holds the number of bytes used by the Off_t.
+ */
+/* Off_t_size:
+ * This symbol holds the number of bytes used by the Off_t.
+ */
+#define Off_t int /* <offset> type */
+#define LSEEKSIZE 4 /* <offset> size */
+#define Off_t_size 4 /* <offset> size */
+
+/* Mode_t:
+ * This symbol holds the type used to declare file modes
+ * for systems calls. It is usually mode_t, but may be
+ * int or unsigned short. It may be necessary to include <sys/types.h>
+ * to get any typedef'ed information.
+ */
+#define Mode_t int /* file mode parameter for system calls */
+
+/* Pid_t:
+ * This symbol holds the type used to declare process ids in the kernel.
+ * It can be int, uint, pid_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Pid_t int /* PID type */
+
+/* Size_t_size:
+ * This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size 4 /* */
+
+/* Size_t:
+ * This symbol holds the type used to declare length parameters
+ * for string functions. It is usually size_t, but may be
+ * unsigned long, int, etc. It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Size_t size_t /* length parameter for string functions */
+
+/* Uid_t_f:
+ * This symbol defines the format string used for printing a Uid_t.
+ */
+#define Uid_t_f "lu" /**/
+
+/* Uid_t_sign:
+ * This symbol holds the signedess of a Uid_t.
+ * 1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign 1 /* UID sign */
+
+/* Uid_t_size:
+ * This symbol holds the size of a Uid_t in bytes.
+ */
+#define Uid_t_size 4 /* UID size */
+
+/* Uid_t:
+ * This symbol holds the type used to declare user ids in the kernel.
+ * It can be int, ushort, uid_t, etc... It may be necessary to include
+ * <sys/types.h> to get any typedef'ed information.
+ */
+#define Uid_t int /* UID type */
+
#endif
+
+/* Generated from:
+ * 323778627146f2762cd41f4dd1db6659f59006ec9bcaaf6bcc645d0380dda938 config_h.SH
+ * 2cf3a76ed7acc1c0fee31fb6f5117eef18b28c542aa7225a22c84ed74b710c83 uconfig.sh
+ * ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/utf8.h b/Master/tlpkg/tlperl/lib/CORE/utf8.h
index 87653360eae..c40fb5883e1 100644
--- a/Master/tlpkg/tlperl/lib/CORE/utf8.h
+++ b/Master/tlpkg/tlperl/lib/CORE/utf8.h
@@ -16,10 +16,28 @@
# define USE_UTF8_IN_NAMES (PL_hints & HINT_UTF8)
#endif
+#define to_uni_fold(c, p, lenp) _to_uni_fold_flags(c, p, lenp, 1)
+#define to_utf8_fold(c, p, lenp) _to_utf8_fold_flags(c, p, lenp, 1)
+
/* Source backward compatibility. */
#define uvuni_to_utf8(d, uv) uvuni_to_utf8_flags(d, uv, 0)
#define is_utf8_string_loc(s, len, ep) is_utf8_string_loclen(s, len, ep, 0)
+#define foldEQ_utf8(s1, pe1, l1, u1, s2, pe2, l2, u2) \
+ foldEQ_utf8_flags(s1, pe1, l1, u1, s2, pe2, l2, u2, 0)
+#define FOLDEQ_UTF8_NOMIX_ASCII (1 << 0)
+#define FOLDEQ_UTF8_LOCALE (1 << 1)
+
+/*
+=for apidoc ibcmp_utf8
+
+This is a synonym for (! foldEQ_utf8())
+
+=cut
+*/
+#define ibcmp_utf8(s1, pe1, l1, u1, s2, pe2, l2, u2) \
+ cBOOL(! foldEQ_utf8(s1, pe1, l1, u1, s2, pe2, l2, u2))
+
#ifdef EBCDIC
/* The equivalent of these macros but implementing UTF-EBCDIC
are in the following header file:
@@ -104,13 +122,14 @@ As you can see, the continuation bytes all begin with C<10>, and the
leading bits of the start byte tell how many bytes there are in the
encoded character.
-*/
+Perl's extended UTF-8 means we can have start bytes up to FF.
+*/
#define UNI_IS_INVARIANT(c) (((UV)c) < 0x80)
/* Note that C0 and C1 are invalid in legal UTF8, so the lower bound of the
* below might ought to be C2 */
-#define UTF8_IS_START(c) (((U8)c) >= 0xc0 && (((U8)c) <= 0xfd))
+#define UTF8_IS_START(c) (((U8)c) >= 0xc0)
#define UTF8_IS_CONTINUATION(c) (((U8)c) >= 0x80 && (((U8)c) <= 0xbf))
#define UTF8_IS_CONTINUED(c) (((U8)c) & 0x80)
#define UTF8_IS_DOWNGRADEABLE_START(c) (((U8)c & 0xfc) == 0xc0)
@@ -151,6 +170,15 @@ encoded character.
#define UTF8_ACCUMULATE(old, new) (((old) << UTF_ACCUMULATION_SHIFT) | (((U8)new) & UTF_CONTINUATION_MASK))
+/* Convert a two (not one) byte utf8 character to a unicode code point value.
+ * Needs just one iteration of accumulate. Should not be used unless it is
+ * known that the two bytes are legal: 1) two-byte start, and 2) continuation.
+ * Note that the result can be larger than 255 if the input character is not
+ * downgradable */
+#define TWO_BYTE_UTF8_TO_UNI(HI, LO) \
+ UTF8_ACCUMULATE((NATIVE_TO_UTF(HI) & UTF_START_MASK(2)), \
+ NATIVE_TO_UTF(LO))
+
#define UTF8SKIP(s) PL_utf8skip[*(const U8*)(s)]
#define UTF8_IS_INVARIANT(c) UNI_IS_INVARIANT(NATIVE_TO_UTF(c))
@@ -162,8 +190,8 @@ encoded character.
* bytes from an ordinal that is known to fit into two bytes; it must be less
* than 0x3FF to work across both encodings. */
/* Nocast allows these to be used in the case label of a switch statement */
-#define UTF8_TWO_BYTE_HI_nocast(c) UTF_TO_NATIVE(((c)>>UTF_ACCUMULATION_SHIFT)|UTF_START_MARK(2))
-#define UTF8_TWO_BYTE_LO_nocast(c) UTF_TO_NATIVE(((c)&UTF_CONTINUATION_MASK)|UTF_CONTINUATION_MARK)
+#define UTF8_TWO_BYTE_HI_nocast(c) UTF_TO_NATIVE(((c) >> UTF_ACCUMULATION_SHIFT) | (0xFF & UTF_START_MARK(2)))
+#define UTF8_TWO_BYTE_LO_nocast(c) UTF_TO_NATIVE(((c) & UTF_CONTINUATION_MASK) | UTF_CONTINUATION_MARK)
#define UTF8_TWO_BYTE_HI(c) ((U8) (UTF8_TWO_BYTE_HI_nocast(c)))
#define UTF8_TWO_BYTE_LO(c) ((U8) (UTF8_TWO_BYTE_LO_nocast(c)))
@@ -201,61 +229,208 @@ encoded character.
* version. An example of maximal expansion is the U+03B0 which
* uppercases to U+03C5 U+0308 U+0301. The Unicode databases that
* tell these things are UnicodeData.txt, CaseFolding.txt, and
- * SpecialCasing.txt. */
-#define UTF8_MAXBYTES_CASE 6
+ * SpecialCasing.txt. The value is 6 for strict Unicode characters, but it has
+ * to be as big as Perl allows for a single character */
+#define UTF8_MAXBYTES_CASE UTF8_MAXBYTES
+
+/* A Unicode character can fold to up to 3 characters */
+#define UTF8_MAX_FOLD_CHAR_EXPAND 3
#define IN_BYTES (CopHINTS_get(PL_curcop) & HINT_BYTES)
#define DO_UTF8(sv) (SvUTF8(sv) && !IN_BYTES)
#define IN_UNI_8_BIT ( (CopHINTS_get(PL_curcop) & HINT_UNI_8_BIT) \
&& ! IN_LOCALE_RUNTIME && ! IN_BYTES)
-#define UTF8_ALLOW_EMPTY 0x0001
+#define UTF8_ALLOW_EMPTY 0x0001 /* Allow a zero length string */
+
+/* Allow first byte to be a continuation byte */
#define UTF8_ALLOW_CONTINUATION 0x0002
+
+/* Allow second... bytes to be non-continuation bytes */
#define UTF8_ALLOW_NON_CONTINUATION 0x0004
-#define UTF8_ALLOW_FE_FF 0x0008 /* Allow FE or FF start bytes, \
- yields above 0x7fffFFFF */
-#define UTF8_ALLOW_SHORT 0x0010 /* expecting more bytes */
-#define UTF8_ALLOW_SURROGATE 0x0020
-#define UTF8_ALLOW_FFFF 0x0040 /* Allow UNICODE_ILLEGAL */
-#define UTF8_ALLOW_LONG 0x0080 /* expecting fewer bytes */
-#define UTF8_ALLOW_ANYUV (UTF8_ALLOW_EMPTY|UTF8_ALLOW_FE_FF|\
- UTF8_ALLOW_SURROGATE|UTF8_ALLOW_FFFF)
-#define UTF8_ALLOW_ANY 0x00FF
-#define UTF8_CHECK_ONLY 0x0200
+
+/* expecting more bytes than were available in the string */
+#define UTF8_ALLOW_SHORT 0x0008
+
+/* Overlong sequence; i.e., the code point can be specified in fewer bytes. */
+#define UTF8_ALLOW_LONG 0x0010
+
+#define UTF8_DISALLOW_SURROGATE 0x0020 /* Unicode surrogates */
+#define UTF8_WARN_SURROGATE 0x0040
+
+#define UTF8_DISALLOW_NONCHAR 0x0080 /* Unicode non-character */
+#define UTF8_WARN_NONCHAR 0x0100 /* code points */
+
+#define UTF8_DISALLOW_SUPER 0x0200 /* Super-set of Unicode: code */
+#define UTF8_WARN_SUPER 0x0400 /* points above the legal max */
+
+/* Code points which never were part of the original UTF-8 standard, the first
+ * byte of which is a FE or FF on ASCII platforms. */
+#define UTF8_DISALLOW_FE_FF 0x0800
+#define UTF8_WARN_FE_FF 0x1000
+
+#define UTF8_CHECK_ONLY 0x2000
+
+/* For backwards source compatibility. They do nothing, as the default now
+ * includes what they used to mean. The first one's meaning was to allow the
+ * just the single non-character 0xFFFF */
+#define UTF8_ALLOW_FFFF 0
+#define UTF8_ALLOW_SURROGATE 0
+
+#define UTF8_DISALLOW_ILLEGAL_INTERCHANGE (UTF8_DISALLOW_SUPER|UTF8_DISALLOW_NONCHAR|UTF8_DISALLOW_SURROGATE|UTF8_DISALLOW_FE_FF)
+#define UTF8_WARN_ILLEGAL_INTERCHANGE \
+ (UTF8_WARN_SUPER|UTF8_WARN_NONCHAR|UTF8_WARN_SURROGATE|UTF8_WARN_FE_FF)
+#define UTF8_ALLOW_ANY \
+ (~(UTF8_DISALLOW_ILLEGAL_INTERCHANGE|UTF8_WARN_ILLEGAL_INTERCHANGE))
+#define UTF8_ALLOW_ANYUV \
+ (UTF8_ALLOW_EMPTY \
+ & ~(UTF8_DISALLOW_ILLEGAL_INTERCHANGE|UTF8_WARN_ILLEGAL_INTERCHANGE))
#define UTF8_ALLOW_DEFAULT (ckWARN(WARN_UTF8) ? 0 : \
UTF8_ALLOW_ANYUV)
+/* Surrogates, non-character code points and above-Unicode code points are
+ * problematic in some contexts. This allows code that needs to check for
+ * those to to quickly exclude the vast majority of code points it will
+ * encounter */
+#ifdef EBCDIC
+# define UTF8_FIRST_PROBLEMATIC_CODE_POINT_FIRST_BYTE UTF_TO_NATIVE(0xF1)
+#else
+# define UTF8_FIRST_PROBLEMATIC_CODE_POINT_FIRST_BYTE 0xED
+#endif
+
+/* ASCII EBCDIC I8
+ * U+D7FF: \xED\x9F\xBF \xF1\xB5\xBF\xBF last before surrogates
+ * U+D800: \xED\xA0\x80 \xF1\xB6\xA0\xA0 1st surrogate
+ * U+DFFF: \xED\xBF\xBF \xF1\xB7\xBF\xBF final surrogate
+ * U+E000: \xEE\x80\x80 \xF1\xB8\xA0\xA0 next after surrogates
+ */
+#ifdef EBCDIC /* Both versions assume well-formed UTF8 */
+# define UTF8_IS_SURROGATE(s) (*(s) == UTF_TO_NATIVE(0xF1) \
+ && (*((s) +1) == UTF_TO_NATIVE(0xB6)) || *((s) + 1) == UTF_TO_NATIVE(0xB7))
+#else
+# define UTF8_IS_SURROGATE(s) (*(s) == 0xED && *((s) + 1) >= 0xA0)
+#endif
+
+/* ASCII EBCDIC I8
+ * U+10FFFF: \xF4\x8F\xBF\xBF \xF9\xA1\xBF\xBF\xBF max legal Unicode
+ * U+110000: \xF4\x90\x80\x80 \xF9\xA2\xA0\xA0\xA0
+ * U+110001: \xF4\x90\x80\x81 \xF9\xA2\xA0\xA0\xA1
+ */
+#ifdef EBCDIC /* Both versions assume well-formed UTF8 */
+# define UTF8_IS_SUPER(s) (*(s) >= UTF_TO_NATIVE(0xF9) \
+ && (*(s) > UTF_TO_NATIVE(0xF9) || (*((s) + 1) >= UTF_TO_NATIVE(0xA2))))
+#else
+# define UTF8_IS_SUPER(s) (*(s) >= 0xF4 \
+ && (*(s) > 0xF4 || (*((s) + 1) >= 0x90)))
+#endif
+
+/* ASCII EBCDIC I8
+ * U+FDCF: \xEF\xB7\x8F \xF1\xBF\xAE\xAF last before non-char block
+ * U+FDD0: \xEF\xB7\x90 \xF1\xBF\xAE\xB0 first non-char in block
+ * U+FDEF: \xEF\xB7\xAF \xF1\xBF\xAF\xAF last non-char in block
+ * U+FDF0: \xEF\xB7\xB0 \xF1\xBF\xAF\xB0 first after non-char block
+ * U+FFFF: \xEF\xBF\xBF \xF1\xBF\xBF\xBF
+ * U+1FFFF: \xF0\x9F\xBF\xBF \xF3\xBF\xBF\xBF
+ * U+2FFFF: \xF0\xAF\xBF\xBF \xF5\xBF\xBF\xBF
+ * U+3FFFF: \xF0\xBF\xBF\xBF \xF7\xBF\xBF\xBF
+ * U+4FFFF: \xF1\x8F\xBF\xBF \xF8\xA9\xBF\xBF\xBF
+ * U+5FFFF: \xF1\x9F\xBF\xBF \xF8\xAB\xBF\xBF\xBF
+ * U+6FFFF: \xF1\xAF\xBF\xBF \xF8\xAD\xBF\xBF\xBF
+ * U+7FFFF: \xF1\xBF\xBF\xBF \xF8\xAF\xBF\xBF\xBF
+ * U+8FFFF: \xF2\x8F\xBF\xBF \xF8\xB1\xBF\xBF\xBF
+ * U+9FFFF: \xF2\x9F\xBF\xBF \xF8\xB3\xBF\xBF\xBF
+ * U+AFFFF: \xF2\xAF\xBF\xBF \xF8\xB5\xBF\xBF\xBF
+ * U+BFFFF: \xF2\xBF\xBF\xBF \xF8\xB7\xBF\xBF\xBF
+ * U+CFFFF: \xF3\x8F\xBF\xBF \xF8\xB9\xBF\xBF\xBF
+ * U+DFFFF: \xF3\x9F\xBF\xBF \xF8\xBB\xBF\xBF\xBF
+ * U+EFFFF: \xF3\xAF\xBF\xBF \xF8\xBD\xBF\xBF\xBF
+ * U+FFFFF: \xF3\xBF\xBF\xBF \xF8\xBF\xBF\xBF\xBF
+ * U+10FFFF: \xF4\x8F\xBF\xBF \xF9\xA1\xBF\xBF\xBF
+ */
+#define UTF8_IS_NONCHAR_(s) ( \
+ *(s) >= UTF8_FIRST_PROBLEMATIC_CODE_POINT_FIRST_BYTE \
+ && ! UTF8_IS_SUPER(s) \
+ && UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_FIRST_PROBLEMATIC(s) \
+
+#ifdef EBCDIC /* Both versions assume well-formed UTF8 */
+# define UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC(s) \
+ ((*(s) == UTF_TO_NATIVE(0xF1) \
+ && (*((s) + 1) == UTF_TO_NATIVE(0xBF) \
+ && ((*((s) + 2) == UTF_TO_NATIVE(0xAE) \
+ && *((s) + 3) >= UTF_TO_NATIVE(0xB0)) \
+ || (*((s) + 2) == UTF_TO_NATIVE(0xAF) \
+ && *((s) + 3) <= UTF_TO_NATIVE(0xAF))))) \
+ || (UTF8SKIP(*(s)) > 3 \
+ /* (These were all derived by inspection and experimentation with an */ \
+ /* editor) The next line checks the next to final byte in the char */ \
+ && *((s) + UTF8SKIP(*(s)) - 2) == UTF_TO_NATIVE(0xBF) \
+ && *((s) + UTF8SKIP(*(s)) - 3) == UTF_TO_NATIVE(0xBF) \
+ && (NATIVE_TO_UTF(*((s) + UTF8SKIP(*(s)) - 4)) & 0x81) == 0x81 \
+ && (NATIVE_TO_UTF(*((s) + UTF8SKIP(*(s)) - 1)) & 0xBE) == 0XBE))
+#else
+# define UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC(s) \
+ ((*(s) == 0xEF \
+ && ((*((s) + 1) == 0xB7 && (*((s) + 2) >= 0x90 && (*((s) + 2) <= 0xAF)))\
+ /* Gets U+FFF[EF] */ \
+ || (*((s) + 1) == 0xBF && ((*((s) + 2) & 0xBE) == 0xBE)))) \
+ || ((*((s) + 2) == 0xBF \
+ && (*((s) + 3) & 0xBE) == 0xBE \
+ /* Excludes things like U+10FFE = \xF0\x90\xBF\xBE */ \
+ && (*((s) + 1) & 0x8F) == 0x8F)))
+#endif
+
#define UNICODE_SURROGATE_FIRST 0xD800
#define UNICODE_SURROGATE_LAST 0xDFFF
#define UNICODE_REPLACEMENT 0xFFFD
#define UNICODE_BYTE_ORDER_MARK 0xFEFF
-#define UNICODE_ILLEGAL 0xFFFF
/* Though our UTF-8 encoding can go beyond this,
- * let's be conservative and do as Unicode 5.1 says. */
+ * let's be conservative and do as Unicode says. */
#define PERL_UNICODE_MAX 0x10FFFF
-#define UNICODE_ALLOW_SURROGATE 0x0001 /* Allow UTF-16 surrogates (EVIL) */
-#define UNICODE_ALLOW_FDD0 0x0002 /* Allow the U+FDD0...U+FDEF */
-#define UNICODE_ALLOW_FFFF 0x0004 /* Allow U+FFF[EF], U+1FFF[EF], ... */
-#define UNICODE_ALLOW_SUPER 0x0008 /* Allow past 0x10FFFF */
-#define UNICODE_ALLOW_ANY 0x000F
+#define UNICODE_WARN_SURROGATE 0x0001 /* UTF-16 surrogates */
+#define UNICODE_WARN_NONCHAR 0x0002 /* Non-char code points */
+#define UNICODE_WARN_SUPER 0x0004 /* Above 0x10FFFF */
+#define UNICODE_WARN_FE_FF 0x0008 /* Above 0x10FFFF */
+#define UNICODE_DISALLOW_SURROGATE 0x0010
+#define UNICODE_DISALLOW_NONCHAR 0x0020
+#define UNICODE_DISALLOW_SUPER 0x0040
+#define UNICODE_DISALLOW_FE_FF 0x0080
+#define UNICODE_WARN_ILLEGAL_INTERCHANGE \
+ (UNICODE_WARN_SURROGATE|UNICODE_WARN_NONCHAR|UNICODE_WARN_SUPER)
+#define UNICODE_DISALLOW_ILLEGAL_INTERCHANGE \
+ (UNICODE_DISALLOW_SURROGATE|UNICODE_DISALLOW_NONCHAR|UNICODE_DISALLOW_SUPER)
+
+/* For backward source compatibility, as are now the default */
+#define UNICODE_ALLOW_SURROGATE 0
+#define UNICODE_ALLOW_SUPER 0
+#define UNICODE_ALLOW_ANY 0
#define UNICODE_IS_SURROGATE(c) ((c) >= UNICODE_SURROGATE_FIRST && \
(c) <= UNICODE_SURROGATE_LAST)
#define UNICODE_IS_REPLACEMENT(c) ((c) == UNICODE_REPLACEMENT)
#define UNICODE_IS_BYTE_ORDER_MARK(c) ((c) == UNICODE_BYTE_ORDER_MARK)
-#define UNICODE_IS_ILLEGAL(c) ((c) == UNICODE_ILLEGAL)
+#define UNICODE_IS_NONCHAR(c) ((c >= 0xFDD0 && c <= 0xFDEF) \
+ /* The other noncharacters end in FFFE or FFFF, which \
+ * the mask below catches both of, but beyond the last \
+ * official unicode code point, they aren't \
+ * noncharacters, since those aren't Unicode \
+ * characters at all */ \
+ || ((((c & 0xFFFE) == 0xFFFE)) && ! UNICODE_IS_SUPER(c)))
+#define UNICODE_IS_SUPER(c) ((c) > PERL_UNICODE_MAX)
+#define UNICODE_IS_FE_FF(c) ((c) > 0x7FFFFFFF)
#ifdef HAS_QUAD
# define UTF8_QUAD_MAX UINT64_C(0x1000000000)
#endif
-#define UTF8_IS_ASCII(c) UTF8_IS_INVARIANT(c)
-
#define UNICODE_GREEK_CAPITAL_LETTER_SIGMA 0x03A3
#define UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA 0x03C2
#define UNICODE_GREEK_SMALL_LETTER_SIGMA 0x03C3
+#define GREEK_SMALL_LETTER_MU 0x03BC
+#define GREEK_CAPITAL_LETTER_MU 0x039C /* Upper and title case of MICRON */
+#define LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x0178 /* Also is title case */
+#define LATIN_CAPITAL_LETTER_SHARP_S 0x1E9E
#define UNI_DISPLAY_ISPRINT 0x0001
#define UNI_DISPLAY_BACKSLASH 0x0002
@@ -266,12 +441,14 @@ encoded character.
# define LATIN_SMALL_LETTER_SHARP_S 0x00DF
# define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF
# define MICRO_SIGN 0x00B5
+# define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5
+# define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5
#endif
#define ANYOF_FOLD_SHARP_S(node, input, end) \
(ANYOF_BITMAP_TEST(node, LATIN_SMALL_LETTER_SHARP_S) && \
- (ANYOF_FLAGS(node) & ANYOF_UNICODE) && \
- (ANYOF_FLAGS(node) & ANYOF_FOLD) && \
+ (ANYOF_NONBITMAP(node)) && \
+ (ANYOF_FLAGS(node) & ANYOF_LOC_NONBITMAP_FOLD) && \
((end) > (input) + 1) && \
toLOWER((input)[0]) == 's' && \
toLOWER((input)[1]) == 's')
@@ -323,7 +500,7 @@ encoded character.
* UTF-8, anyway). The "slow path" in Perl_is_utf8_char()
* will take care of the "extended UTF-8". */
#define IS_UTF8_CHAR_4c(p) \
- ((p)[0] == 0xF4 && (p)[0] <= 0xF7 && \
+ ((p)[0] >= 0xF4 && (p)[0] <= 0xF7 && \
(p)[1] >= 0x80 && (p)[1] <= 0xBF && \
(p)[2] >= 0x80 && (p)[2] <= 0xBF && \
(p)[3] >= 0x80 && (p)[3] <= 0xBF)
diff --git a/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h b/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h
index c3fe6036eea..a9197a9bef9 100644
--- a/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h
+++ b/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h
@@ -7,7 +7,7 @@
* License or the Artistic License, as specified in the README file.
*
* Macros to implement UTF-EBCDIC as perl's internal encoding
- * Taken from version 7.1 of Unicode Techical Report #16:
+ * Taken from version 7.1 of Unicode Technical Report #16:
* http://www.unicode.org/unicode/reports/tr16
*
* To summarize, the way it works is:
@@ -36,7 +36,7 @@
* ordinal value of 'A' is 193 in EBCDIC, and also is 193 in UTF-EBCDIC.
* Step 1) converts it to 65, Step 2 leaves it at 65, and Step 3 converts
* it back to 193. As an example of how a variant character works, take
- * LATIN SMALL LETTER Y WITH DIAERESIS, which is typicially 0xDF in
+ * LATIN SMALL LETTER Y WITH DIAERESIS, which is typically 0xDF in
* EBCDIC. Step 1 converts it to the Unicode value, 0xFF. Step 2
* converts that to two bytes = 11000111 10111111 = C7 BF, and Step 3
* converts those to 0x8B 0x73. The table is constructed so that the
@@ -81,7 +81,7 @@ START_EXTERN_C
#ifdef DOINIT
/* Indexed by encoded byte this table gives the length of the sequence.
Adapted from the shadow flags table in tr16.
- The entries marked 9 in tr6 are continuation bytes and are marked
+ The entries marked 9 in tr16 are continuation bytes and are marked
as length 1 here so that we can recover.
*/
#if '^' == 95 /* if defined(__MVS__) || defined(??) (VM/ESA?) 1047 */
@@ -272,7 +272,7 @@ unsigned char PL_e2utf[] = { /* EBCDIC (IBM-037) to I8 */
#endif /* 037 */
/* These tables moved from perl.h and converted to hex.
- They map platfrom code page from/to bottom 256 codes of Unicode (i.e. iso-8859-1).
+ They map platform code page from/to bottom 256 codes of Unicode (i.e. iso-8859-1).
*/
#if '^' == 95 /* if defined(__MVS__) || defined(??) (VM/ESA?) 1047 */
@@ -298,6 +298,8 @@ EXTCONST unsigned char PL_a2e[] = { /* ASCII (iso-8859-1) to EBCDIC (IBM-1047) *
#define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0xDF
#define LATIN_SMALL_LETTER_SHARP_S 0x59
#define MICRO_SIGN 0xA0
+#define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0067
+#define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0047
EXTCONST unsigned char PL_e2a[] = { /* EBCDIC (IBM-1047) to ASCII (iso-8859-1) */
0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
@@ -317,6 +319,42 @@ EXTCONST unsigned char PL_e2a[] = { /* EBCDIC (IBM-1047) to ASCII (iso-8859-1) *
0x5C, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0xDB, 0xDC, 0xD9, 0xDA, 0x9F
};
+
+EXTCONST unsigned char PL_fold[] = { /* fast EBCDIC case folding table, 'A' =>
+ 'a'; 'a' => 'A' */
+ 0, 1, 2, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 98, 99, 100, 101, 102, 103,
+ 104, 105, 74, 75, 76, 77, 78, 79,
+ 80, 113, 114, 115, 116, 117, 118, 119,
+ 120, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 66, 67, 68, 69, 70, 71,
+ 72, 73, 106, 107, 108, 109, 110, 111,
+ 128, 81, 82, 83, 84, 85, 86, 87,
+ 88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 138, 139, 172, 186, 174, 143,
+ 144, 'J', 'K', 'L', 'M', 'N', 'O', 'P',
+ 'Q', 'R', 154, 155, 158, 157, 156, 159,
+ 160, 161, 'S', 'T', 'U', 'V', 'W', 'X',
+ 'Y', 'Z', 170, 171, 140, 173, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 141, 187, 188, 189, 190, 191,
+ 192, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 202, 235, 236, 237, 238, 239,
+ 208, 'j', 'k', 'l', 'm', 'n', 'o', 'p',
+ 'q', 'r', 218, 251, 252, 253, 254, 223,
+ 224, 225, 's', 't', 'u', 'v', 'w', 'x',
+ 'y', 'z', 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 219, 220, 221, 222, 255
+};
#endif /* 1047 */
#if '^' == 106 /* if defined(_OSD_POSIX) POSIX-BC */
@@ -342,6 +380,8 @@ EXTCONST unsigned char PL_a2e[] = { /* ASCII (ISO8859-1) to EBCDIC (POSIX-BC) */
#define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0xDF
#define LATIN_SMALL_LETTER_SHARP_S 0x59
#define MICRO_SIGN 0xA0
+#define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0067
+#define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0047
EXTCONST unsigned char PL_e2a[] = { /* EBCDIC (POSIX-BC) to ASCII (ISO8859-1) */
0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
@@ -361,6 +401,42 @@ EXTCONST unsigned char PL_e2a[] = { /* EBCDIC (POSIX-BC) to ASCII (ISO8859-1) */
0xD9, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0x7B, 0xDC, 0x7D, 0xDA, 0x7E
};
+
+EXTCONST unsigned char PL_fold[] = { /* fast EBCDIC case folding table, 'A' =>
+ 'a'; 'a' => 'A' */
+ 0, 1, 2, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 98, 99, 100, 101, 102, 103,
+ 104, 105, 74, 75, 76, 77, 78, 79,
+ 80, 113, 114, 115, 116, 117, 118, 119,
+ 120, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 66, 67, 68, 69, 70, 71,
+ 72, 73, 106, 107, 108, 109, 110, 111,
+ 128, 81, 82, 83, 84, 85, 86, 87,
+ 88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 138, 139, 172, 173, 174, 143,
+ 144, 'J', 'K', 'L', 'M', 'N', 'O', 'P',
+ 'Q', 'R', 154, 155, 158, 157, 156, 159,
+ 160, 161, 'S', 'T', 'U', 'V', 'W', 'X',
+ 'Y', 'Z', 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191,
+ 224, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 202, 235, 236, 237, 238, 239,
+ 208, 'j', 'k', 'l', 'm', 'n', 'o', 'p',
+ 'q', 'r', 218, 221, 252, 219, 254, 223,
+ 192, 225, 's', 't', 'u', 'v', 'w', 'x',
+ 'y', 'z', 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 251, 220, 253, 222, 255
+};
#endif /* POSIX-BC */
#if '^' == 176 /* if defined(??) (OS/400?) 037 */
@@ -387,6 +463,8 @@ EXTCONST unsigned char PL_a2e[] = { /* ASCII (ISO8859-1) to EBCDIC (IBM-037) */
#define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0xDF
#define LATIN_SMALL_LETTER_SHARP_S 0x59
#define MICRO_SIGN 0xA0
+#define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0067
+#define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0047
EXTCONST unsigned char PL_e2a[] = { /* EBCDIC (IBM-037) to ASCII (ISO8859-1) */
0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
@@ -406,6 +484,42 @@ EXTCONST unsigned char PL_e2a[] = { /* EBCDIC (IBM-037) to ASCII (ISO8859-1) */
0x5C, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0xDB, 0xDC, 0xD9, 0xDA, 0x9F
};
+
+EXTCONST unsigned char PL_fold[] = { /* fast EBCDIC case folding table, 'A' =>
+ 'a'; 'a' => 'A' */
+ 0, 1, 2, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 98, 99, 100, 101, 102, 103,
+ 104, 105, 74, 75, 76, 77, 78, 79,
+ 80, 113, 114, 115, 116, 117, 118, 119,
+ 120, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 66, 67, 68, 69, 70, 71,
+ 72, 73, 106, 107, 108, 109, 110, 111,
+ 128, 81, 82, 83, 84, 85, 86, 87,
+ 88, 121, 122, 123, 124, 125, 126, 127,
+ 112, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
+ 'H', 'I', 138, 139, 172, 173, 174, 143,
+ 144, 'J', 'K', 'L', 'M', 'N', 'O', 'P',
+ 'Q', 'R', 154, 155, 158, 157, 156, 159,
+ 160, 161, 'S', 'T', 'U', 'V', 'W', 'X',
+ 'Y', 'Z', 170, 171, 140, 141, 142, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
+ 'h', 'i', 202, 235, 236, 237, 238, 239,
+ 208, 'j', 'k', 'l', 'm', 'n', 'o', 'p',
+ 'q', 'r', 218, 251, 252, 253, 254, 223,
+ 224, 225, 's', 't', 'u', 'v', 'w', 'x',
+ 'y', 'z', 234, 203, 204, 205, 206, 207,
+ 240, 241, 242, 243, 244, 245, 246, 247,
+ 248, 249, 250, 219, 220, 221, 222, 255
+};
#endif /* 037 */
#else
@@ -414,8 +528,13 @@ EXTCONST unsigned char PL_e2utf[];
EXTCONST unsigned char PL_utf2e[];
EXTCONST unsigned char PL_e2a[];
EXTCONST unsigned char PL_a2e[];
+EXTCONST unsigned char PL_fold[];
#endif
+/* Since the EBCDIC code pages are isomorphic to Latin1, that table is merely a
+ * duplicate */
+EXTCONST unsigned char * PL_fold_latin1 = PL_fold;
+
END_EXTERN_C
/* EBCDIC-happy ways of converting native code to UTF-8 */
@@ -423,9 +542,9 @@ END_EXTERN_C
/* Native to iso-8859-1 */
#define NATIVE_TO_ASCII(ch) PL_e2a[(U8)(ch)]
#define ASCII_TO_NATIVE(ch) PL_a2e[(U8)(ch)]
-/* Transform after encoding */
-#define NATIVE_TO_UTF(ch) PL_e2utf[(U8)(ch)]
-#define UTF_TO_NATIVE(ch) PL_utf2e[(U8)(ch)]
+/* Transform after encoding, essentially converts to/from I8 */
+#define NATIVE_TO_UTF(ch) PL_e2utf[(U8)(ch)] /* to I8 */
+#define UTF_TO_NATIVE(ch) PL_utf2e[(U8)(ch)] /* from I8 */
/* Transform in wide UV char space */
#define NATIVE_TO_UNI(ch) (((ch) > 255) ? (ch) : NATIVE_TO_ASCII(ch))
#define UNI_TO_NATIVE(ch) (((ch) > 255) ? (ch) : ASCII_TO_NATIVE(ch))
diff --git a/Master/tlpkg/tlperl/lib/CORE/util.h b/Master/tlpkg/tlperl/lib/CORE/util.h
index 6eab0556860..3981656eae9 100644
--- a/Master/tlpkg/tlperl/lib/CORE/util.h
+++ b/Master/tlpkg/tlperl/lib/CORE/util.h
@@ -39,6 +39,21 @@
#endif /* VMS */
/*
+=for apidoc ibcmp
+
+This is a synonym for (! foldEQ())
+
+=for apidoc ibcmp_locale
+
+This is a synonym for (! foldEQ_locale())
+
+=cut
+*/
+#define ibcmp(s1, s2, len) cBOOL(! foldEQ(s1, s2, len))
+#define ibcmp_locale(s1, s2, len) cBOOL(! foldEQ_locale(s1, s2, len))
+
+
+/*
* Local variables:
* c-indentation-style: bsd
* c-basic-offset: 4
diff --git a/Master/tlpkg/tlperl/lib/CORE/warnings.h b/Master/tlpkg/tlperl/lib/CORE/warnings.h
index 3ed9ecf56d5..39ebe6a78c1 100644
--- a/Master/tlpkg/tlperl/lib/CORE/warnings.h
+++ b/Master/tlpkg/tlperl/lib/CORE/warnings.h
@@ -1,8 +1,8 @@
/* -*- buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- This file is built by warnings.pl
+ This file is built by regen/warnings.pl.
Any changes made here will be lost!
-*/
+ */
#define Off(x) ((x) / 8)
@@ -81,9 +81,15 @@
#define WARN_IMPRECISION 46
#define WARN_ILLEGALPROTO 47
-#define WARNsize 12
-#define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125"
-#define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0"
+/* Warnings Categories added in Perl 5.013 */
+
+#define WARN_NON_UNICODE 48
+#define WARN_NONCHAR 49
+#define WARN_SURROGATE 50
+
+#define WARNsize 13
+#define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125\125"
+#define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0\0"
#define isLEXWARN_on (PL_curcop->cop_warnings != pWARN_STD)
#define isLEXWARN_off (PL_curcop->cop_warnings == pWARN_STD)
@@ -127,4 +133,5 @@
isWARNf_on(PL_curcop->cop_warnings, unpackWARN4(x))))
/* end of file warnings.h */
+
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/win32.h b/Master/tlpkg/tlperl/lib/CORE/win32.h
index 762ab54068b..4c58b8c2520 100644
--- a/Master/tlpkg/tlperl/lib/CORE/win32.h
+++ b/Master/tlpkg/tlperl/lib/CORE/win32.h
@@ -10,7 +10,7 @@
#define _INC_WIN32_PERL5
#ifndef _WIN32_WINNT
-# define _WIN32_WINNT 0x0400 /* needed for TryEnterCriticalSection() etc. */
+# define _WIN32_WINNT 0x0500 /* needed for CreateHardlink() etc. */
#endif
#if defined(PERL_IMPLICIT_SYS)
@@ -41,20 +41,36 @@
/* Define DllExport akin to perl's EXT,
- * If we are in the DLL or mimicing the DLL for Win95 work round
- * then Export the symbol,
+ * If we are in the DLL then Export the symbol,
* otherwise import it.
*/
/* now even GCC supports __declspec() */
-#if defined(PERLDLL) || defined(WIN95FIX)
+#if defined(PERLDLL)
#define DllExport
/*#define DllExport __declspec(dllexport)*/ /* noises with VC5+sp3 */
#else
#define DllExport __declspec(dllimport)
#endif
+/* The Perl APIs can only be called directly inside the perl5xx.dll.
+ * All other code has to import them. By declaring them as "dllimport"
+ * we tell the compiler to generate an indirect call instruction and
+ * avoid redirection through a call thunk.
+ *
+ * The XS code in the re extension is special, in that it redefines
+ * core APIs locally, so don't mark them as "dllimport" because GCC
+ * cannot handle this situation.
+ */
+#if !defined(PERLDLL) && !defined(PERL_EXT_RE_BUILD)
+# ifdef __cplusplus
+# define PERL_CALLCONV extern "C" __declspec(dllimport)
+# else
+# define PERL_CALLCONV __declspec(dllimport)
+# endif
+#endif
+
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
@@ -141,17 +157,6 @@ struct utsname {
#define PERL_NO_FORCE_LINK /* no need for PL_force_link_funcs */
-/* Define USE_FIXED_OSFHANDLE to fix MSVCRT's _open_osfhandle() on W95.
- It now uses some black magic to work seamlessly with the DLL CRT and
- works with MSVC++ 4.0+ or GCC/Mingw32
- -- BKS 1-24-2000
- Only use this fix for VC++ 6.x or earlier (and for GCC, which we assume
- uses MSVCRT.DLL). Later versions use MSVCR70.dll, MSVCR71.dll, etc, which
- do not require the fix. */
-#if (defined(_M_IX86) && _MSC_VER >= 1000 && _MSC_VER <= 1200) || defined(__MINGW32__)
-#define USE_FIXED_OSFHANDLE
-#endif
-
/* Define PERL_WIN32_SOCK_DLOAD to have Perl dynamically load the winsock
DLL when needed. Don't use if your compiler supports delayloading (ie, VC++ 6.0)
-- BKS 5-29-2000 */
@@ -363,12 +368,9 @@ DllExport HWND win32_create_message_window(void);
extern FILE * my_fdopen(int, char *);
#endif
extern int my_fclose(FILE *);
-extern int my_fstat(int fd, Stat_t *sbufptr);
extern char * win32_get_privlib(const char *pl, STRLEN *const len);
extern char * win32_get_sitelib(const char *pl, STRLEN *const len);
extern char * win32_get_vendorlib(const char *pl, STRLEN *const len);
-extern int IsWin95(void);
-extern int IsWinNT(void);
#ifdef PERL_IMPLICIT_SYS
extern void win32_delete_internal_host(void *h);
@@ -420,9 +422,7 @@ struct thread_intern {
# ifdef USE_SOCKETS_AS_HANDLES
int Winit_socktype;
# endif
-# ifdef HAVE_DES_FCRYPT
char Wcrypt_buffer[30];
-# endif
# ifdef USE_RTL_THREAD_API
void * retv; /* slot for thread return value */
# endif
@@ -443,6 +443,7 @@ typedef struct {
DWORD pids[MAXIMUM_WAIT_OBJECTS];
HANDLE handles[MAXIMUM_WAIT_OBJECTS];
HWND message_hwnds[MAXIMUM_WAIT_OBJECTS];
+ char sigterm[MAXIMUM_WAIT_OBJECTS];
} pseudo_child_tab;
#endif
@@ -488,6 +489,7 @@ DllExport int win32_async_check(pTHX);
#define w32_pseudo_child_pids (w32_pseudo_children->pids)
#define w32_pseudo_child_handles (w32_pseudo_children->handles)
#define w32_pseudo_child_message_hwnds (w32_pseudo_children->message_hwnds)
+#define w32_pseudo_child_sigterm (w32_pseudo_children->sigterm)
#define w32_internal_host (PL_sys_intern.internal_host)
#define w32_timerid (PL_sys_intern.timerid)
#define w32_message_hwnd (PL_sys_intern.message_hwnd)
@@ -503,70 +505,8 @@ DllExport int win32_async_check(pTHX);
#define w32_showwindow (PL_sys_intern.thr_intern.Wshowwindow)
#ifdef USE_ITHREADS
-# define PERL_WAIT_FOR_CHILDREN \
- STMT_START { \
- if (w32_pseudo_children && w32_num_pseudo_children) { \
- long children = w32_num_pseudo_children; \
- WaitForMultipleObjects(children, \
- w32_pseudo_child_handles, \
- TRUE, INFINITE); \
- while (children) \
- CloseHandle(w32_pseudo_child_handles[--children]); \
- } \
- } STMT_END
-#endif
-
-#if defined(USE_FIXED_OSFHANDLE) || defined(PERL_MSVCRT_READFIX)
-#ifdef PERL_CORE
-
-/* C doesn't like repeat struct definitions */
-#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION>=3)
-#undef _CRTIMP
-#endif
-#ifndef _CRTIMP
-#define _CRTIMP __declspec(dllimport)
-#endif
-
-/*
- * Control structure for lowio file handles
- */
-typedef struct {
- intptr_t osfhnd;/* underlying OS file HANDLE */
- char osfile; /* attributes of file (e.g., open in text mode?) */
- char pipech; /* one char buffer for handles opened on pipes */
- int lockinitflag;
- CRITICAL_SECTION lock;
-} ioinfo;
-
-
-/*
- * Array of arrays of control structures for lowio files.
- */
-EXTERN_C _CRTIMP ioinfo* __pioinfo[];
-
-/*
- * Definition of IOINFO_L2E, the log base 2 of the number of elements in each
- * array of ioinfo structs.
- */
-#define IOINFO_L2E 5
-
-/*
- * Definition of IOINFO_ARRAY_ELTS, the number of elements in ioinfo array
- */
-#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E)
-
-/*
- * Access macros for getting at an ioinfo struct and its fields from a
- * file handle
- */
-#define _pioinfo(i) (__pioinfo[(i) >> IOINFO_L2E] + ((i) & (IOINFO_ARRAY_ELTS - 1)))
-#define _osfhnd(i) (_pioinfo(i)->osfhnd)
-#define _osfile(i) (_pioinfo(i)->osfile)
-#define _pipech(i) (_pioinfo(i)->pipech)
-
-/* since we are not doing a dup2(), this works fine */
-#define _set_osfhnd(fh, osfh) (void)(_osfhnd(fh) = (intptr_t)osfh)
-#endif
+void win32_wait_for_children(pTHX);
+# define PERL_WAIT_FOR_CHILDREN win32_wait_for_children(aTHX)
#endif
/* IO.xs and POSIX.xs define PERLIO_NOT_STDIO to 1 */
@@ -585,17 +525,6 @@ EXTERN_C _CRTIMP ioinfo* __pioinfo[];
#define EXEC_ARGV_CAST(x) ((const char *const *) x)
-#if !defined(ECONNABORTED) && defined(WSAECONNABORTED)
-#define ECONNABORTED WSAECONNABORTED
-#endif
-#if !defined(ECONNRESET) && defined(WSAECONNRESET)
-#define ECONNRESET WSAECONNRESET
-#endif
-#if !defined(EAFNOSUPPORT) && defined(WSAEAFNOSUPPORT)
-#define EAFNOSUPPORT WSAEAFNOSUPPORT
-#endif
-/* Why not needed for ECONNREFUSED? --abe */
-
DllExport void *win32_signal_context(void);
#define PERL_GET_SIG_CONTEXT win32_signal_context()
diff --git a/Master/tlpkg/tlperl/lib/CORE/win32iop.h b/Master/tlpkg/tlperl/lib/CORE/win32iop.h
index 9c59037c535..45207900de5 100644
--- a/Master/tlpkg/tlperl/lib/CORE/win32iop.h
+++ b/Master/tlpkg/tlperl/lib/CORE/win32iop.h
@@ -124,6 +124,7 @@ DllExport long win32_telldir(DIR *dirp);
DllExport void win32_seekdir(DIR *dirp, long loc);
DllExport void win32_rewinddir(DIR *dirp);
DllExport int win32_closedir(DIR *dirp);
+DllExport DIR* win32_dirp_dup(DIR *const dirp, CLONE_PARAMS *const param);
DllExport char* win32_getenv(const char *name);
DllExport int win32_putenv(const char *name);