/* New variables must be added to the very end for binary compatibility. */
-/* Don't forget to add your variable also to perl_clone()! (in sv.c) */
+/* DON'T FORGET to add your variable also to perl_clone()! (in sv.c) */
/* The 'I' prefix is only needed for vars that need appropriate #defines
* generated when built with or without MULTIPLICITY. It is also used
PERLVAR(I, curpm, PMOP *) /* what to do \ interps in REs from */
PERLVAR(I, curpm_under, PMOP *) /* what to do \ interps in REs from */
-PERLVAR(I, tainting, bool) /* doing taint checks */
+PERLVAR(I, tainting, bool) /* ? doing taint checks */
PERLVARI(I, tainted, bool, FALSE) /* using variables controlled by $< */
/* PL_delaymagic is currently used for two purposes: to assure simultaneous
*/
PERLVAR(I, delaymagic, U16) /* ($<,$>) = ... */
+/*
+=for apidoc Amn|GV *|PL_defgv
+
+The GV representing C<*_>. Useful for access to C<$_>.
+
+=cut
+*/
+
PERLVAR(I, localizing, U8) /* are we processing a local() list? */
PERLVAR(I, in_eval, U8) /* trap "fatal" errors? */
PERLVAR(I, defgv, GV *) /* the *_ glob */
PERLVARI(I, utf8cache, I8, PERL___I) /* Is the utf8 caching code enabled? */
#undef PERL___I
+/*
+=for apidoc Amn|HV*|PL_curstash
+
+The stash for the package code will be compiled into.
+
+=cut
+*/
/* Stashes */
PERLVAR(I, defstash, HV *) /* main symbol table */
PERLVAR(I, curstash, HV *) /* symbol table for current package */
+/*
+=for apidoc Amn|COP*|PL_curcop
+
+The currently active COP (control op) roughly representing the current
+statement in the source.
+
+=cut
+*/
+
PERLVAR(I, curcop, COP *)
PERLVAR(I, curstack, AV *) /* THE STACK */
PERLVAR(I, curstackinfo, PERL_SI *) /* current stack + context */
PERLVAR(I, padname_undef, PADNAME)
PERLVAR(I, padname_const, PADNAME)
PERLVAR(I, Sv, SV *) /* used to hold temporary values */
-
PERLVAR(I, parser, yy_parser *) /* current parser state */
PERLVAR(I, stashcache, HV *) /* Cache to speed up S_method_common */
PERLVARI(I, dumpindent, U16, 4) /* number of blanks per dump
indentation level */
+/*
+=for apidoc Amn|U8|PL_exit_flags
+
+Contains flags controlling perl's behaviour on exit():
+
+=over
+
+=item * C<PERL_EXIT_DESTRUCT_END>
+
+If set, END blocks are executed when the interpreter is destroyed.
+This is normally set by perl itself after the interpreter is
+constructed.
+
+=item * C<PERL_EXIT_ABORT>
+
+Call C<abort()> on exit. This is used internally by perl itself to
+abort if exit is called while processing exit.
+
+=item * C<PERL_EXIT_WARN>
+
+Warn on exit.
+
+=item * C<PERL_EXIT_EXPECTED>
+
+Set by the L<perlfunc/exit> operator.
+
+=back
+
+=cut
+*/
+
PERLVAR(I, exit_flags, U8) /* was exit() unexpected, etc. */
PERLVAR(I, utf8locale, bool) /* utf8 locale detected */
PERLVAR(I, in_utf8_CTYPE_locale, bool)
PERLVAR(I, in_utf8_COLLATE_locale, bool)
+PERLVAR(I, in_utf8_turkic_locale, bool)
+#if defined(USE_ITHREADS) && ! defined(USE_THREAD_SAFE_LOCALE)
+PERLVARI(I, lc_numeric_mutex_depth, int, 0) /* Emulate general semaphore */
+#endif
+PERLVARA(I, locale_utf8ness, 256, char)
+
#ifdef USE_LOCALE_CTYPE
PERLVAR(I, warn_locale, SV *)
#endif
PERLVAR(I, filemode, int) /* so nextargv() can preserve mode */
PERLVAR(I, lastfd, int) /* what to preserve mode on */
PERLVAR(I, oldname, char *) /* what to preserve mode on */
-PERLVAR(I, Argv, const char **) /* stuff to free from do_aexec, vfork safe */
-PERLVAR(I, Cmd, char *) /* stuff to free from do_aexec, vfork safe */
/* Elements in this array have ';' appended and are injected as a single line
into the tokeniser. You can't put any (literal) newlines into any program
you stuff in into this array, as the point where it's injected is expecting
PERLVARI(I, padlist_generation, U32, 1) /* id to identify padlist clones */
+/*
+=for apidoc Amn|runops_proc_t|PL_runops
+
+See L<perlguts/Pluggable runops>.
+
+=cut
+*/
+
PERLVARI(I, runops, runops_proc_t, RUNOPS_DEFAULT)
PERLVAR(I, subname, SV *) /* name of current subroutine */
PERLVAR(I, padix_floor, PADOFFSET) /* how low may inner block reset padix */
+#if defined(USE_POSIX_2008_LOCALE) \
+ && defined(USE_THREAD_SAFE_LOCALE) \
+ && ! defined(HAS_QUERYLOCALE)
+
+PERLVARA(I, curlocales, 12, char *)
+
+#endif
#ifdef USE_LOCALE_COLLATE
+
PERLVAR(I, collation_name, char *) /* Name of current collation */
PERLVAR(I, collxfrm_base, Size_t) /* Basic overhead in *xfrm() */
PERLVARI(I, collxfrm_mult,Size_t, 2) /* Expansion factor in *xfrm() */
PERLVARI(I, langinfo_buf, char *, NULL)
PERLVARI(I, langinfo_bufsize, Size_t, 0)
+PERLVARI(I, setlocale_buf, char *, NULL)
+PERLVARI(I, setlocale_bufsize, Size_t, 0)
#ifdef PERL_SAWAMPERSAND
PERLVAR(I, sawampersand, U8) /* must save all match strings */
PERLVARI(I, in_load_module, bool, FALSE) /* to prevent recursions in PerlIO_find_layer */
-/* This value may be set when embedding for full cleanup */
-/* 0=none, 1=full, 2=full with checks */
+/*
+=for apidoc Amn|signed char|PL_perl_destruct_level
+
+This value may be set when embedding for full cleanup.
+
+Possible values:
+
+=over
+
+=item * 0 - none
+
+=item * 1 - full
+
+=item * 2 or greater - full with checks.
+
+=back
+
+If C<$ENV{PERL_DESTRUCT_LEVEL}> is set to an integer greater than the
+value of C<PL_perl_destruct_level> its value is used instead.
+
+=cut
+*/
/* mod_perl is special, and also assigns a meaning -1 */
PERLVARI(I, perl_destruct_level, signed char, 0)
#ifdef USE_LOCALE_NUMERIC
PERLVARI(I, numeric_standard, int, TRUE)
- /* Assume simple numerics */
-PERLVARI(I, numeric_local, bool, TRUE)
- /* Assume local numerics */
+ /* Assume C locale numerics */
+PERLVARI(I, numeric_underlying, bool, TRUE)
+ /* Assume underlying locale numerics */
+PERLVARI(I, numeric_underlying_is_standard, bool, TRUE)
PERLVAR(I, numeric_name, char *) /* Name of current numeric locale */
PERLVAR(I, numeric_radix_sv, SV *) /* The radix separator if not '.' */
-#endif /* !USE_LOCALE_NUMERIC */
+# ifdef HAS_POSIX_2008_LOCALE
-/* Unicode inversion lists */
-PERLVAR(I, Latin1, SV *)
-PERLVAR(I, UpperLatin1, SV *) /* Code points 128 - 255 */
-PERLVAR(I, AboveLatin1, SV *)
-PERLVAR(I, InBitmap, SV *)
+PERLVARI(I, underlying_numeric_obj, locale_t, NULL)
-PERLVAR(I, NonL1NonFinalFold, SV *)
-PERLVAR(I, HasMultiCharFold, SV *)
+# endif
+#endif /* !USE_LOCALE_NUMERIC */
/* utf8 character class swashes */
-PERLVAR(I, utf8_mark, SV *)
-PERLVAR(I, utf8_toupper, SV *)
-PERLVAR(I, utf8_totitle, SV *)
-PERLVAR(I, utf8_tolower, SV *)
-PERLVAR(I, utf8_tofold, SV *)
-PERLVAR(I, utf8_charname_begin, SV *)
-PERLVAR(I, utf8_charname_continue, SV *)
-
-PERLVARA(I, utf8_swash_ptrs, POSIX_SWASH_COUNT, SV *)
-PERLVARA(I, Posix_ptrs, POSIX_CC_COUNT, SV *)
-PERLVARA(I, XPosix_ptrs, POSIX_CC_COUNT, SV *)
-PERLVAR(I, GCB_invlist, SV *)
-PERLVAR(I, LB_invlist, SV *)
-PERLVAR(I, SB_invlist, SV *)
-PERLVAR(I, WB_invlist, SV *)
-PERLVAR(I, Assigned_invlist, SV *)
PERLVAR(I, seen_deprecated_macro, HV *)
PERLVAR(I, last_swash_hv, HV *)
PERLVARI(I, def_layerlist, PerlIO_list_t *, NULL)
#endif
-PERLVAR(I, utf8_idstart, SV *)
-PERLVAR(I, utf8_idcont, SV *)
-PERLVAR(I, utf8_xidstart, SV *)
-PERLVAR(I, utf8_perl_idstart, SV *)
-PERLVAR(I, utf8_perl_idcont, SV *)
-PERLVAR(I, utf8_xidcont, SV *)
-
PERLVAR(I, sort_RealCmp, SVCOMPARE_t)
PERLVARI(I, checkav_save, AV *, NULL) /* save CHECK{}s when compiling */
/* Hooks to shared SVs and locks. */
PERLVARI(I, sharehook, share_proc_t, Perl_sv_nosharing)
PERLVARI(I, lockhook, share_proc_t, Perl_sv_nosharing)
+
+GCC_DIAG_IGNORE(-Wdeprecated-declarations)
#ifdef NO_MATHOMS
# define PERL_UNLOCK_HOOK Perl_sv_nosharing
#else
#endif
PERLVARI(I, unlockhook, share_proc_t, PERL_UNLOCK_HOOK)
+GCC_DIAG_RESTORE
+
PERLVARI(I, threadhook, thrhook_proc_t, Perl_nothreadhook)
/* Can shared object be destroyed */
/* Compile-time block start/end hooks */
PERLVAR(I, blockhooks, AV *)
-/* Everything that folds to a given character, for case insensitivity regex
- * matching */
-PERLVARI(I, utf8_foldclosures, HV *, NULL)
-
-/* List of characters that participate in folds (except marks, etc in
- * multi-char folds) */
-PERLVARI(I, utf8_foldable, SV *, NULL)
-
PERLVAR(I, custom_ops, HV *) /* custom op registrations */
PERLVAR(I, Xpv, XPV *) /* (unused) held temporary value */
#ifdef PERL_IMPLICIT_CONTEXT
PERLVARI(I, my_cxt_list, void **, NULL) /* per-module array of MY_CXT pointers */
PERLVARI(I, my_cxt_size, int, 0) /* size of PL_my_cxt_list */
-# ifdef PERL_GLOBAL_STRUCT_PRIVATE
-PERLVARI(I, my_cxt_keys, const char **, NULL) /* per-module array of pointers to MY_CXT_KEY constants */
-# endif
#endif
#if defined(PERL_IMPLICIT_CONTEXT) || defined(PERL_DEBUG_READONLY_COW)
PERLVAR(I, random_state, PL_RANDOM_STATE_TYPE)
-PERLVARI(I, dump_re_max_len, STRLEN, 0)
+PERLVARI(I, dump_re_max_len, STRLEN, 60)
/* For internal uses of randomness, this ensures the sequence of
* random numbers returned by rand() isn't modified by perl's internal