*
*/
+#include "handy.h"
+
/*
=head1 Per-Interpreter Variables
*/
/* New variables must be added to the very end for binary compatibility. */
-/* Don't forget to add your variable also to perl_clone()! */
+/* 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, utf8locale, bool) /* utf8 locale detected */
-PERLVARI(I, rehash_seed_set, bool, FALSE) /* 582 hash initialized? */
PERLVARA(I, colors,6, char *) /* from regcomp.c */
*/
PERLVAR(I, dowarn, U8)
-PERLVAR(I, sawampersand, bool) /* must save all match strings */
+#ifdef PERL_SAWAMPERSAND
+PERLVAR(I, sawampersand, U8) /* must save all match strings */
+#endif
PERLVAR(I, unsafe, bool)
PERLVAR(I, exit_flags, U8) /* was exit() unexpected, etc. */
-PERLVARI(I, reginterp_cnt, I32, 0) /* Whether "Regexp" was interpolated. */
-
PERLVAR(I, inplace, char *)
PERLVAR(I, e_script, SV *)
-/* magical thingies */
PERLVAR(I, basetime, Time_t) /* $^T */
-PERLVAR(I, formfeed, SV *) /* $^L */
-
PERLVARI(I, maxsysfd, I32, MAXSYSFD)
/* top fd to pass to subprocesses */
PERLVAR(I, compiling, COP) /* compiling/done executing marker */
PERLVAR(I, compcv, CV *) /* currently compiling subroutine */
-PERLVAR(I, comppad, AV *) /* storage for lexically scoped temporaries */
-PERLVAR(I, comppad_name, AV *) /* variable names for "my" variables */
+PERLVAR(I, comppad, PAD *) /* storage for lexically scoped temporaries */
+PERLVAR(I, comppad_name, PADNAMELIST *) /* variable names for "my" variables */
PERLVAR(I, comppad_name_fill, I32) /* last "introduced" variable offset */
PERLVAR(I, comppad_name_floor, I32) /* start of vars in innermost block */
PERLVAR(I, nomemok, bool) /* let malloc context handle nomem */
PERLVARI(I, savebegin, bool, FALSE) /* save BEGINs for compiler */
-PERLVAR(I, uid, Uid_t) /* current real user id */
-PERLVAR(I, euid, Uid_t) /* current effective user id */
-PERLVAR(I, gid, Gid_t) /* current real group id */
-PERLVAR(I, egid, Gid_t) /* current effective group id */
+PERLVAR(I, delaymagic_uid, Uid_t) /* current real user id, only for delaymagic */
+PERLVAR(I, delaymagic_euid, Uid_t) /* current effective user id, only for delaymagic */
+PERLVAR(I, delaymagic_gid, Gid_t) /* current real group id, only for delaymagic */
+PERLVAR(I, delaymagic_egid, Gid_t) /* current effective group id, only for delaymagic */
PERLVARI(I, an, U32, 0) /* malloc sequence number */
#ifdef DEBUGGING
/* Perl_Ibreakable_sub_generation_ptr was too long for VMS, hence "gen" */
PERLVARI(I, breakable_sub_gen, U32, 0)
-PERLVARI(I, amagic_generation, long, 0)
-
#ifdef USE_LOCALE_COLLATE
PERLVAR(I, collation_name, char *) /* Name of current collation */
PERLVAR(I, collxfrm_base, Size_t) /* Basic overhead in *xfrm() */
#endif /* !USE_LOCALE_NUMERIC */
-/* utf8 character classes */
-PERLVAR(I, utf8_alnum, SV *)
-PERLVAR(I, utf8_alpha, SV *)
-PERLVAR(I, utf8_space, SV *)
-PERLVAR(I, utf8_graph, SV *)
-PERLVAR(I, utf8_digit, SV *)
-PERLVAR(I, utf8_upper, SV *)
-PERLVAR(I, utf8_lower, SV *)
-PERLVAR(I, utf8_print, SV *)
-PERLVAR(I, utf8_punct, SV *)
-PERLVAR(I, utf8_xdigit, SV *)
+/* Unicode inversion lists */
+PERLVAR(I, ASCII, SV *)
+PERLVAR(I, Latin1, SV *)
+PERLVAR(I, AboveLatin1, SV *)
+
+PERLVAR(I, NonL1NonFinalFold, SV *)
+PERLVAR(I, HasMultiCharFold, SV *)
+
+/* utf8 character class swashes */
PERLVAR(I, utf8_mark, SV *)
-PERLVAR(I, utf8_X_begin, SV *)
+PERLVAR(I, utf8_X_regular_begin, SV *)
PERLVAR(I, utf8_X_extend, SV *)
-PERLVAR(I, utf8_X_prepend, SV *)
-PERLVAR(I, utf8_X_non_hangul, SV *)
-PERLVAR(I, utf8_X_L, SV *)
-PERLVAR(I, utf8_X_LV, SV *)
-PERLVAR(I, utf8_X_LVT, SV *)
-PERLVAR(I, utf8_X_T, SV *)
-PERLVAR(I, utf8_X_V, SV *)
-PERLVAR(I, utf8_X_LV_LVT_V, 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, L1Posix_ptrs, POSIX_CC_COUNT, SV *)
+PERLVARA(I, XPosix_ptrs, POSIX_CC_COUNT, SV *)
+
PERLVAR(I, last_swash_hv, HV *)
PERLVAR(I, last_swash_tmps, U8 *)
PERLVAR(I, last_swash_slen, STRLEN)
-PERLVARA(I, last_swash_key,12, U8)
+PERLVARA(I, last_swash_key,UTF8_MAXBYTES-1, U8)
PERLVAR(I, last_swash_klen, U8) /* Only needs to store 0-12 */
#ifdef FCRYPT
Entry 0 is an SV whose PV is a
"packed" list of IVs listing
the now-free slots in the array */
+PERLVAR(I, stashpad, HV **) /* for CopSTASH */
+PERLVARI(I, stashpadmax, PADOFFSET, 64)
+PERLVARI(I, stashpadix, PADOFFSET, 0)
#endif
#ifdef USE_REENTRANT_API
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, signalhook, despatch_signals_proc_t, Perl_despatch_signals)
#endif
-PERLVARI(I, hash_seed, UV, 0) /* Hash initializer */
-
-PERLVARI(I, rehash_seed, UV, 0) /* 582 hash initializer */
-
PERLVARI(I, isarev, HV *, NULL) /* Reverse map of @ISA dependencies */
/* Register of known Method Resolution Orders.
/* Hook for File::Glob */
PERLVARI(I, globhook, globhook_t, NULL)
-PERLVARI(I, glob_index, int, 0)
PERLVAR(I, reentrant_retint, int) /* Integer return value from reentrant functions */
/* The last unconditional member of the interpreter structure when 5.10.0 was
PERLVARI(I, dumper_fd, int, -1)
#endif
-/* Stores the PPID */
-#ifdef THREADS_HAVE_PIDS
-PERLVARI(I, ppid, IV, 0)
-#endif
-
#ifdef PERL_MAD
PERLVARI(I, madskills, bool, FALSE) /* preserve all syntactic info */
/* (MAD = Misc Attribute Decoration) */
PERLVARI(I, xmlfp, PerlIO *, NULL)
#endif
-#ifdef PL_OP_SLAB_ALLOC
-PERLVAR(I, OpPtr, I32 **)
-PERLVARI(I, OpSpace, I32, 0)
-PERLVAR(I, OpSlab, I32 *)
-#endif
-
-#ifdef PERL_DEBUG_READONLY_OPS
-PERLVARI(I, slabs, I32**, NULL) /* Array of slabs that have been allocated */
-PERLVARI(I, slab_count, U32, 0) /* Size of the array */
-#endif
-
#ifdef DEBUG_LEAKING_SCALARS
PERLVARI(I, sv_serial, U32, 0) /* SV serial number, used in sv.c */
#endif