X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/e897f2d79346a5c1b43d0948c1c0720cbb220cfa..47280b208d546ec0bb8c3d14cf015fb8f2665f58:/intrpvar.h diff --git a/intrpvar.h b/intrpvar.h index 3f43fd9..3cc8388 100644 --- a/intrpvar.h +++ b/intrpvar.h @@ -73,6 +73,7 @@ PERLVAR(I, multideref_pc, UNOP_AUX_item *) /* Fields used by magic variables such as $@, $/ and so on */ 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 */ PERLVARI(I, tainted, bool, FALSE) /* using variables controlled by $< */ @@ -97,9 +98,11 @@ PERLVAR(I, in_eval, U8) /* trap "fatal" errors? */ PERLVAR(I, defgv, GV *) /* the *_ glob */ /* -=for apidoc mn|bool|PL_dowarn +=for apidoc mn|U8|PL_dowarn -The C variable which corresponds to Perl's C<$^W> warning variable. +The C variable that roughly corresponds to Perl's C<$^W> warning variable. +However, C<$^W> is treated as a boolean, whereas C is a +collection of flag bits. =cut */ @@ -155,12 +158,26 @@ C<&PL_sv_no>. This is the C SV. See C>. Always refer to this as C<&PL_sv_yes>. +=for apidoc Amn|SV|PL_sv_zero +This readonly SV has a zero numeric value and a C<"0"> string value. It's +similar to C> except for its string value. Can be used as a +cheap alternative to C for example. Always refer to this as +C<&PL_sv_zero>. Introduced in 5.28. + =cut */ +#ifdef MULTIPLICITY +PERLVAR(I, sv_yes, SV) PERLVAR(I, sv_undef, SV) PERLVAR(I, sv_no, SV) -PERLVAR(I, sv_yes, SV) +PERLVAR(I, sv_zero, SV) +#else +/* store the immortals as an array to ensure they are contiguous in + * memory: makes SvIMMORTAL_INTERP(sv) possible */ +PERLVARA(I, sv_immortals, 4, SV) +#endif + PERLVAR(I, padname_undef, PADNAME) PERLVAR(I, padname_const, PADNAME) PERLVAR(I, Sv, SV *) /* used to hold temporary values */ @@ -185,7 +202,6 @@ PERLVAR(I, na, STRLEN) /* for use in SvPV when length is Not Applicable */ /* stat stuff */ -PERLVAR(I, statbuf, Stat_t) PERLVAR(I, statcache, Stat_t) /* _ */ PERLVAR(I, statgv, GV *) PERLVARI(I, statname, SV *, NULL) @@ -246,6 +262,8 @@ 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) +PERLVARA(I, locale_utf8ness, 256, char) + #ifdef USE_LOCALE_CTYPE PERLVAR(I, warn_locale, SV *) #endif @@ -440,8 +458,6 @@ PERLVARI(I, curcopdb, COP *, NULL) 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 @@ -490,8 +506,8 @@ PERLVAR(I, compiling, COP) /* compiling/done executing marker */ PERLVAR(I, compcv, CV *) /* currently compiling subroutine */ 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, comppad_name_fill, PADOFFSET)/* last "introduced" variable offset */ +PERLVAR(I, comppad_name_floor, PADOFFSET)/* start of vars in innermost block */ #ifdef HAVE_INTERP_INTERN PERLVAR(I, sys_intern, struct interp_intern) @@ -541,7 +557,7 @@ PERLVAR(I, sighandlerp, Sighandler_t) PERLVARA(I, body_roots, PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */ -PERLVAR(I, debug, VOL U32) /* flags given to -D switch */ +PERLVAR(I, debug, volatile U32) /* flags given to -D switch */ PERLVARI(I, padlist_generation, U32, 1) /* id to identify padlist clones */ @@ -550,21 +566,21 @@ PERLVARI(I, runops, runops_proc_t, RUNOPS_DEFAULT) PERLVAR(I, subname, SV *) /* name of current subroutine */ PERLVAR(I, subline, I32) /* line this subroutine began on */ -PERLVAR(I, min_intro_pending, I32) /* start of vars to introduce */ +PERLVAR(I, min_intro_pending, PADOFFSET)/* start of vars to introduce */ -PERLVAR(I, max_intro_pending, I32) /* end of vars to introduce */ -PERLVAR(I, padix, I32) /* lowest unused index - 1 +PERLVAR(I, max_intro_pending, PADOFFSET)/* end of vars to introduce */ +PERLVAR(I, padix, PADOFFSET) /* lowest unused index - 1 in current "register" pad */ -PERLVAR(I, constpadix, I32) /* lowest unused for constants */ +PERLVAR(I, constpadix, PADOFFSET) /* lowest unused for constants */ -PERLVAR(I, padix_floor, I32) /* how low may inner block reset padix */ +PERLVAR(I, padix_floor, PADOFFSET) /* how low may inner block reset padix */ #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, collation_ix, U32, 0) /* Collation generation index */ -PERLVARA(I, strxfrm_min_char, 3, char) +PERLVARI(I, strxfrm_NUL_replacement, U8, 0) /* Code point to replace NULs */ PERLVARI(I, strxfrm_is_behaved, bool, TRUE) /* Assume until proven otherwise that it works */ PERLVARI(I, strxfrm_max_cp, U8, 0) /* Highest collating cp in locale */ @@ -572,6 +588,9 @@ PERLVARI(I, collation_standard, bool, TRUE) /* Assume simple collation */ #endif /* USE_LOCALE_COLLATE */ +PERLVARI(I, langinfo_buf, char *, NULL) +PERLVARI(I, langinfo_bufsize, Size_t, 0) + #ifdef PERL_SAWAMPERSAND PERLVAR(I, sawampersand, U8) /* must save all match strings */ #endif @@ -594,9 +613,10 @@ 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 '.' */ @@ -621,12 +641,14 @@ 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, SCX_invlist, SV *) PERLVAR(I, WB_invlist, SV *) +PERLVAR(I, Assigned_invlist, SV *) +PERLVAR(I, seen_deprecated_macro, HV *) PERLVAR(I, last_swash_hv, HV *) PERLVAR(I, last_swash_tmps, U8 *) @@ -807,7 +829,15 @@ PERLVARA(I, op_exec_cnt, OP_max+2, UV) /* Counts of executed OPs of the given ty 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 + * use of randomness. + * This is important if the user has called srand() with a seed. + */ + +PERLVAR(I, internal_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. */