X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/d3b97530399d61590a1500b52bdba553d657bda5..154e47c821a043f6b3b7346ca0c21e3282802f49:/intrpvar.h diff --git a/intrpvar.h b/intrpvar.h index 94b7425..4f48e4b 100644 --- a/intrpvar.h +++ b/intrpvar.h @@ -8,6 +8,8 @@ * */ +#include "handy.h" + /* =head1 Per-Interpreter Variables */ @@ -31,42 +33,124 @@ * Important ones in the first cache line (if alignment is done right) */ PERLVAR(I, stack_sp, SV **) /* top of the stack */ -#ifdef OP_IN_REGISTER -PERLVAR(I, opsave, OP *) -#else PERLVAR(I, op, OP *) /* currently executing op */ -#endif PERLVAR(I, curpad, SV **) /* active pad (lexicals+tmps) */ PERLVAR(I, stack_base, SV **) PERLVAR(I, stack_max, SV **) -PERLVAR(I, scopestack, I32 *) /* scopes we've ENTERed */ -/* name of the scopes we've ENTERed. Only used with -DDEBUGGING, but needs to be - present always, as -DDEUBGGING must be binary compatible with non. */ -PERLVARI(I, scopestack_name, const char * *, NULL) -PERLVAR(I, scopestack_ix, I32) -PERLVAR(I, scopestack_max, I32) - PERLVAR(I, savestack, ANY *) /* items that need to be restored when LEAVEing scopes we've ENTERed */ PERLVAR(I, savestack_ix, I32) PERLVAR(I, savestack_max, I32) +PERLVAR(I, scopestack, I32 *) /* scopes we've ENTERed */ +PERLVAR(I, scopestack_ix, I32) +PERLVAR(I, scopestack_max, I32) + PERLVAR(I, tmps_stack, SV **) /* mortals we've made */ -PERLVARI(I, tmps_ix, I32, -1) -PERLVARI(I, tmps_floor, I32, -1) -PERLVAR(I, tmps_max, I32) -PERLVAR(I, modcount, I32) /* how much op_lvalue()ification in - assignment? */ +PERLVARI(I, tmps_ix, SSize_t, -1) +PERLVARI(I, tmps_floor, SSize_t, -1) +PERLVAR(I, tmps_max, SSize_t) + +PERLVARI(I, sub_generation, U32, 1) /* incr to invalidate method cache */ PERLVAR(I, markstack, I32 *) /* stack_sp locations we're remembering */ PERLVAR(I, markstack_ptr, I32 *) PERLVAR(I, markstack_max, I32 *) +#ifdef PERL_HASH_RANDOMIZE_KEYS +#ifdef USE_PERL_PERTURB_KEYS +PERLVARI(I, hash_rand_bits_enabled, U8, 1) /* used to randomize hash stuff 0 == no-random, 1 == random, 2 == determinsitic */ +#endif +PERLVARI(I, hash_rand_bits, UV, 0) /* used to randomize hash stuff */ +#endif +PERLVAR(I, strtab, HV *) /* shared string table */ + +/* Fields used by magic variables such as $@, $/ and so on */ +PERLVAR(I, curpm, PMOP *) /* what to do \ interps in REs from */ + +PERLVAR(I, tainting, bool) /* doing taint checks */ +PERLVAR(I, tainted, bool) /* using variables controlled by $< */ +PERLVAR(I, delaymagic, U16) /* ($<,$>) = ... */ +PERLVAR(I, localizing, U8) /* are we processing a local() list? */ +PERLVAR(I, in_eval, U8) /* trap "fatal" errors? */ +/* + +=for apidoc mn|bool|PL_dowarn + +The C variable which corresponds to Perl's $^W warning variable. + +=cut +*/ + +PERLVAR(I, dowarn, U8) + +#if defined (PERL_UTF8_CACHE_ASSERT) || defined (DEBUGGING) +# define PERL___I -1 +#else +# define PERL___I 1 +#endif +PERLVARI(I, utf8cache, I8, PERL___I) /* Is the utf8 caching code enabled? */ +#undef PERL___I + + +/* Stashes */ +PERLVAR(I, defstash, HV *) /* main symbol table */ +PERLVAR(I, curstash, HV *) /* symbol table for current package */ + +PERLVAR(I, curcop, COP *) +PERLVAR(I, curstack, AV *) /* THE STACK */ +PERLVAR(I, curstackinfo, PERL_SI *) /* current stack + context */ +PERLVAR(I, mainstack, AV *) /* the stack when nothing funny is + happening */ + +/* memory management */ +PERLVAR(I, sv_count, IV) /* how many SV* are currently allocated */ +PERLVAR(I, sv_objcount, IV) /* DEPRECATED AND UNMAINTAINED. + * Will be removed in Perl 5.20. + * Used to be: how many objects are currently allocated. */ + +PERLVAR(I, sv_root, SV *) /* storage for SVs belonging to interp */ +PERLVAR(I, sv_arenaroot, SV *) /* list of areas for garbage collection */ + +/* fake PMOP that PL_curpm points to while in (?{}) so $1 et al are visible */ +PERLVARI(I, reg_curpm, PMOP*, NULL) + +/* the currently active slab in a chain of slabs of regmatch states, + * and the currently active state within that slab. This stack of states + * is shared amongst re-entrant calls to the regex engine */ + +PERLVARI(I, regmatch_slab, regmatch_slab *, NULL) +PERLVAR(I, regmatch_state, regmatch_state *) + +PERLVAR(I, comppad, PAD *) /* storage for lexically scoped temporaries */ + +/* +=for apidoc Amn|SV|PL_sv_undef +This is the C SV. Always refer to this as C<&PL_sv_undef>. + +=for apidoc Amn|SV|PL_sv_no +This is the C SV. See C. Always refer to this as +C<&PL_sv_no>. + +=for apidoc Amn|SV|PL_sv_yes +This is the C SV. See C. Always refer to this as +C<&PL_sv_yes>. + +=cut +*/ + +PERLVAR(I, sv_undef, SV) +PERLVAR(I, sv_no, SV) +PERLVAR(I, sv_yes, SV) PERLVAR(I, Sv, SV *) /* used to hold temporary values */ -PERLVAR(I, Xpv, XPV *) /* used to hold temporary values */ + +PERLVAR(I, parser, yy_parser *) /* current parser state */ + +PERLVAR(I, stashcache, HV *) /* Cache to speed up S_method_common */ + /* =for apidoc Amn|STRLEN|PL_na @@ -92,9 +176,6 @@ PERLVARI(I, statname, SV *, NULL) PERLVAR(I, timesbuf, struct tms) #endif -/* Fields used by magic variables such as $@, $/ and so on */ -PERLVAR(I, curpm, PMOP *) /* what to do \ interps in REs from */ - /* =for apidoc mn|SV*|PL_rs @@ -102,7 +183,7 @@ The input record separator - C<$/> in Perl space. =for apidoc mn|GV*|PL_last_in_gv -The GV which was last used for a filehandle input operation. (C<< >>) +The GV which was last used for a filehandle input operation. (C<< >>) =for apidoc mn|GV*|PL_ofsgv @@ -120,17 +201,9 @@ PERLVAR(I, formtarget, SV *) PERLVAR(I, bodytarget, SV *) PERLVAR(I, toptarget, SV *) -/* Stashes */ -PERLVAR(I, defstash, HV *) /* main symbol table */ -PERLVAR(I, curstash, HV *) /* symbol table for current package */ PERLVAR(I, restartop, OP *) /* propagating an error from croak? */ PERLVAR(I, restartjmpenv, JMPENV *) /* target frame for longjmp in die */ -PERLVAR(I, curcop, COP *) -PERLVAR(I, curstack, AV *) /* THE STACK */ -PERLVAR(I, curstackinfo, PERL_SI *) /* current stack + context */ -PERLVAR(I, mainstack, AV *) /* the stack when nothing funny is - happening */ PERLVAR(I, top_env, JMPENV *) /* ptr to current sigjmp environment */ PERLVAR(I, start_env, JMPENV) /* empty startup sigjmp environment */ @@ -151,20 +224,14 @@ PERLVAR(I, secondgv, GV *) /* $b */ PERLVAR(I, efloatbuf, char *) PERLVAR(I, efloatsize, STRLEN) -/* regex stuff */ - -PERLVAR(I, reg_state, struct re_save_state) - -PERLVAR(I, regdummy, regnode) /* from regcomp.c */ - PERLVARI(I, dumpindent, U16, 4) /* number of blanks per dump indentation level */ +PERLVAR(I, exit_flags, U8) /* was exit() unexpected, etc. */ 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 */ +PERLVARA(I, colors,6, char *) /* values from PERL_RE_COLORS env var */ /* =for apidoc Amn|peep_t|PL_peepp @@ -230,33 +297,12 @@ PERLVARI(I, opfreehook, Perl_ophook_t, 0) /* op_free() hook */ PERLVARI(I, watchaddr, char **, 0) PERLVAR(I, watchok, char *) -/* the currently active slab in a chain of slabs of regmatch states, - * and the currently active state within that slab */ - -PERLVARI(I, regmatch_slab, regmatch_slab *, NULL) -PERLVAR(I, regmatch_state, regmatch_state *) - -/* Put anything new that is pointer aligned here. */ - -PERLVAR(I, delaymagic, U16) /* ($<,$>) = ... */ -PERLVAR(I, localizing, U8) /* are we processing a local() list? */ -PERLVAR(I, colorset, bool) /* from regcomp.c */ -PERLVAR(I, in_eval, U8) /* trap "fatal" errors? */ -PERLVAR(I, tainted, bool) /* using variables controlled by $< */ -PERLVAR(I, tainting, bool) /* doing taint checks */ - -/* 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 */ -PERLVARI(I, perl_destruct_level, signed char, 0) - -/* current phase the interpreter is in */ -PERLVARI(I, phase, enum perl_phase, PERL_PHASE_CONSTRUCT) - PERLVAR(I, perldb, U32) PERLVAR(I, signals, U32) /* Using which pre-5.8 signals */ +PERLVAR(I, reentrant_retint, int) /* Integer return value from reentrant functions */ + /* pseudo environmental stuff */ PERLVAR(I, origargc, int) PERLVAR(I, origargv, char **) @@ -282,27 +328,10 @@ PERLVAR(I, minus_F, bool) PERLVAR(I, doswitches, bool) PERLVAR(I, minus_E, bool) -/* - -=for apidoc mn|bool|PL_dowarn - -The C variable which corresponds to Perl's $^W warning variable. - -=cut -*/ - -PERLVAR(I, dowarn, U8) -PERLVAR(I, sawampersand, U8) /* must save all match strings */ -PERLVAR(I, unsafe, bool) -PERLVAR(I, exit_flags, U8) /* was exit() unexpected, etc. */ - 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 */ @@ -371,17 +400,6 @@ PERLVAR(I, endav, AV *) /* names of END subroutines */ PERLVAR(I, unitcheckav, AV *) /* names of UNITCHECK subroutines */ PERLVAR(I, checkav, AV *) /* names of CHECK subroutines */ PERLVAR(I, initav, AV *) /* names of INIT subroutines */ -PERLVAR(I, strtab, HV *) /* shared string table */ -PERLVARI(I, sub_generation, U32, 1) /* incr to invalidate method cache */ - -/* funky return mechanisms */ -PERLVAR(I, forkprocess, int) /* so do_open |- can return proc# */ - -/* memory management */ -PERLVAR(I, sv_count, I32) /* how many SV* are currently allocated */ -PERLVAR(I, sv_objcount, I32) /* how many objects are currently allocated */ -PERLVAR(I, sv_root, SV *) /* storage for SVs belonging to interp */ -PERLVAR(I, sv_arenaroot, SV *) /* list of areas for garbage collection */ /* subprocess state */ PERLVAR(I, fdpid, AV *) /* keep fd-to-pid mappings for my_popen */ @@ -411,13 +429,21 @@ PERLVAR(I, Cmd, char *) /* stuff to free from do_aexec, vfork safe */ PERLVAR(I, preambleav, AV *) PERLVAR(I, mess_sv, SV *) PERLVAR(I, ors_sv, SV *) /* output record separator $\ */ + +/* funky return mechanisms */ +PERLVAR(I, forkprocess, int) /* so do_open |- can return proc# */ + /* statics moved here for shared library purposes */ PERLVARI(I, gensym, I32, 0) /* next symbol for getsym() to define */ PERLVARI(I, cv_has_eval, bool, FALSE) /* PL_compcv includes an entereval or similar */ PERLVAR(I, taint_warn, bool) /* taint warns instead of dying */ PERLVARI(I, laststype, U16, OP_STAT) + PERLVARI(I, laststatval, int, -1) +PERLVAR(I, modcount, I32) /* how much op_lvalue()ification in + assignment? */ + /* interpreter atexit processing */ PERLVARI(I, exitlistlen, I32, 0) /* length of same */ PERLVARI(I, exitlist, PerlExitListEntry *, NULL) @@ -443,7 +469,6 @@ PERLVARI(I, profiledata, U32 *, NULL) /* table of ops, counts */ PERLVAR(I, compiling, COP) /* compiling/done executing marker */ PERLVAR(I, compcv, CV *) /* currently compiling subroutine */ -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 */ @@ -457,17 +482,23 @@ PERLVAR(I, sys_intern, struct interp_intern) PERLVAR(I, DBcv, CV *) /* from perl.c */ PERLVARI(I, generation, int, 100) /* from op.c */ +PERLVAR(I, unicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */ + PERLVARI(I, in_clean_objs,bool, FALSE) /* from sv.c */ PERLVARI(I, in_clean_all, bool, FALSE) /* ptrs to freed SVs now legal */ PERLVAR(I, nomemok, bool) /* let malloc context handle nomem */ PERLVARI(I, savebegin, bool, FALSE) /* save BEGINs for compiler */ + 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 */ +/* Perl_Ibreakable_sub_generation_ptr was too long for VMS, hence "gen" */ +PERLVARI(I, breakable_sub_gen, U32, 0) + #ifdef DEBUGGING /* exercise wrap-around */ #define PERL_COP_SEQMAX (U32_MAX-50) @@ -489,31 +520,12 @@ PERLVAR(I, sighandlerp, Sighandler_t) PERLVARA(I, body_roots, PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */ -PERLVAR(I, unicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */ +PERLVAR(I, debug, VOL U32) /* flags given to -D switch */ PERLVARI(I, maxo, int, MAXO) /* maximum number of ops */ PERLVARI(I, runops, runops_proc_t, RUNOPS_DEFAULT) -/* -=for apidoc Amn|SV|PL_sv_undef -This is the C SV. Always refer to this as C<&PL_sv_undef>. - -=for apidoc Amn|SV|PL_sv_no -This is the C SV. See C. Always refer to this as -C<&PL_sv_no>. - -=for apidoc Amn|SV|PL_sv_yes -This is the C SV. See C. Always refer to this as -C<&PL_sv_yes>. - -=cut -*/ - -PERLVAR(I, sv_undef, SV) -PERLVAR(I, sv_no, SV) -PERLVAR(I, sv_yes, SV) - PERLVAR(I, subname, SV *) /* name of current subroutine */ PERLVAR(I, subline, I32) /* line this subroutine began on */ @@ -524,13 +536,6 @@ PERLVAR(I, padix, I32) /* max used index in current "register" pad */ PERLVAR(I, padix_floor, I32) /* how low may inner block reset padix */ -PERLVAR(I, hints, U32) /* pragma-tic compile-time flags */ - -PERLVAR(I, debug, VOL U32) /* flags given to -D switch */ - -/* Perl_Ibreakable_sub_generation_ptr was too long for VMS, hence "gen" */ -PERLVARI(I, breakable_sub_gen, U32, 0) - #ifdef USE_LOCALE_COLLATE PERLVAR(I, collation_name, char *) /* Name of current collation */ PERLVAR(I, collxfrm_base, Size_t) /* Basic overhead in *xfrm() */ @@ -540,15 +545,24 @@ PERLVARI(I, collation_standard, bool, TRUE) /* Assume simple collation */ #endif /* USE_LOCALE_COLLATE */ - -#if defined (PERL_UTF8_CACHE_ASSERT) || defined (DEBUGGING) -# define PERL___I -1 -#else -# define PERL___I 1 +#ifdef PERL_SAWAMPERSAND +PERLVAR(I, sawampersand, U8) /* must save all match strings */ #endif -PERLVARI(I, utf8cache, I8, PERL___I) /* Is the utf8 caching code enabled? */ -#undef PERL___I +PERLVAR(I, unsafe, bool) +PERLVAR(I, colorset, bool) /* PERL_RE_COLORS env var is in use */ + +/* current phase the interpreter is in + for ordering this structure to remove holes, we're assuming that this is 4 + bytes. */ +PERLVARI(I, phase, enum perl_phase, PERL_PHASE_CONSTRUCT) + +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 */ +/* mod_perl is special, and also assigns a meaning -1 */ +PERLVARI(I, perl_destruct_level, signed char, 0) #ifdef USE_LOCALE_NUMERIC @@ -562,100 +576,43 @@ PERLVAR(I, numeric_radix_sv, SV *) /* The radix separator if not '.' */ #endif /* !USE_LOCALE_NUMERIC */ /* Unicode inversion lists */ -PERLVAR(I, ASCII, SV *) PERLVAR(I, Latin1, SV *) +PERLVAR(I, UpperLatin1, SV *) /* Code points 128 - 255 */ PERLVAR(I, AboveLatin1, SV *) -PERLVAR(I, PerlSpace, SV *) -PERLVAR(I, XPerlSpace, SV *) - -PERLVAR(I, L1PosixAlnum,SV *) -PERLVAR(I, PosixAlnum, SV *) - -PERLVAR(I, L1PosixAlpha,SV *) -PERLVAR(I, PosixAlpha, SV *) - -PERLVAR(I, PosixBlank, SV *) -PERLVAR(I, XPosixBlank, SV *) - -PERLVAR(I, L1Cased, SV *) - -PERLVAR(I, PosixCntrl, SV *) -PERLVAR(I, XPosixCntrl, SV *) - -PERLVAR(I, PosixDigit, SV *) - -PERLVAR(I, L1PosixGraph,SV *) -PERLVAR(I, PosixGraph, SV *) - -PERLVAR(I, L1PosixLower,SV *) -PERLVAR(I, PosixLower, SV *) - -PERLVAR(I, L1PosixPrint,SV *) -PERLVAR(I, PosixPrint, SV *) - -PERLVAR(I, L1PosixPunct,SV *) -PERLVAR(I, PosixPunct, SV *) - -PERLVAR(I, PosixSpace, SV *) -PERLVAR(I, XPosixSpace, SV *) - -PERLVAR(I, L1PosixUpper,SV *) -PERLVAR(I, PosixUpper, SV *) - -PERLVAR(I, L1PosixWord, SV *) -PERLVAR(I, PosixWord, SV *) - -PERLVAR(I, PosixXDigit, SV *) -PERLVAR(I, XPosixXDigit, SV *) - -PERLVAR(I, VertSpace, SV *) - PERLVAR(I, NonL1NonFinalFold, SV *) +PERLVAR(I, HasMultiCharFold, SV *) /* utf8 character class swashes */ -PERLVAR(I, utf8_alnum, SV *) -PERLVAR(I, utf8_alpha, SV *) -PERLVAR(I, utf8_blank, 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 *) PERLVAR(I, utf8_mark, SV *) PERLVAR(I, utf8_X_regular_begin, SV *) PERLVAR(I, utf8_X_extend, SV *) -PERLVAR(I, utf8_X_prepend, SV *) -PERLVAR(I, utf8_X_special_begin, SV *) -PERLVAR(I, utf8_X_L, SV *) -PERLVAR(I, utf8_X_LVT, SV *) -PERLVAR(I, utf8_X_RI, 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_quotemeta, 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 PERLVARI(I, cryptseen, bool, FALSE) /* has fast crypt() been initialized? */ +#else +/* One byte hole in the interpreter structure. */ #endif PERLVAR(I, pad_reset_pending, bool) /* reset pad on next attempted alloc */ PERLVAR(I, srand_called, bool) -PERLVARI(I, in_load_module, bool, FALSE) /* to prevent recursions in PerlIO_find_layer */ - -PERLVAR(I, parser, yy_parser *) /* current parser state */ /* Array of signal handlers, indexed by signal number, through which the C signal handler dispatches. */ @@ -711,12 +668,11 @@ PERLVARI(I, def_layerlist, PerlIO_list_t *, NULL) PERLVARI(I, encoding, SV *, NULL) /* character encoding */ -PERLVAR(I, debug_pad, struct perl_debug_pad) /* always needed because of the re extension */ - 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) @@ -727,8 +683,6 @@ PERLVARI(I, unitcheckav_save, AV *, NULL) PERLVARI(I, clocktick, long, 0) /* this many times() ticks in a second */ -PERLVAR(I, stashcache, HV *) /* Cache to speed up S_method_common */ - /* Hooks to shared SVs and locks. */ PERLVARI(I, sharehook, share_proc_t, Perl_sv_nosharing) PERLVARI(I, lockhook, share_proc_t, Perl_sv_nosharing) @@ -749,10 +703,6 @@ PERLVARI(I, destroyhook, destroyable_proc_t, Perl_sv_destroyable) 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. @@ -774,18 +724,22 @@ PERLVARI(I, utf8_foldable, SV *, NULL) PERLVAR(I, custom_ops, HV *) /* custom op registrations */ +PERLVAR(I, Xpv, XPV *) /* (unused) held temporary value */ + +/* name of the scopes we've ENTERed. Only used with -DDEBUGGING, but needs to be + present always, as -DDEBUGGING must be binary compatible with non. */ +PERLVARI(I, scopestack_name, const char * *, NULL) + +PERLVAR(I, debug_pad, struct perl_debug_pad) /* always needed because of the re extension */ + /* Hook for File::Glob */ PERLVARI(I, globhook, globhook_t, NULL) -PERLVARI(I, glob_index, int, 0) -PERLVARI(I, padlist_generation, U32, 1) /* id to identify padlist clones */ -PERLVAR(I, reentrant_retint, int) /* Integer return value from reentrant functions */ - -/* The last unconditional member of the interpreter structure when 5.10.0 was +/* The last unconditional member of the interpreter structure when 5.19.8 was released. The offset of the end of this is baked into a global variable in any shared perl library which will allow a sanity test in future perl releases. */ -#define PERL_LAST_5_16_0_INTERP_MEMBER Ireentrant_retint +#define PERL_LAST_5_18_0_INTERP_MEMBER Iglobhook #ifdef PERL_IMPLICIT_CONTEXT PERLVARI(I, my_cxt_list, void **, NULL) /* per-module array of MY_CXT pointers */ @@ -815,6 +769,19 @@ PERLVARI(I, xmlfp, PerlIO *, NULL) PERLVARI(I, sv_serial, U32, 0) /* SV serial number, used in sv.c */ #endif +PERLVARA(I, sv_consts, SV_CONSTS_COUNT, SV*) /* constant SVs with precomputed hash value */ + +#ifdef PERL_TRACE_OPS +PERLVARA(I, op_exec_cnt, OP_max+2, UV) /* Counts of executed OPs of the given type. + If PERL_TRACE_OPS is enabled, we'll dump + a summary count of all ops executed in the + program at perl_destruct time. For + profiling/debugging only. Works only if + DEBUGGING is enabled, too. */ +#endif + +PERLVAR(I, random_state, PL_RANDOM_STATE_TYPE) + /* 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. */