X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/1830b3d9c87f8b1473b0a80759846f7a5dccae5a..84ce4b0a74e6ece2ecf7294149e4492bcc512f9d:/intrpvar.h diff --git a/intrpvar.h b/intrpvar.h index d10feec..b2d4d5c 100644 --- a/intrpvar.h +++ b/intrpvar.h @@ -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. * @@ -154,10 +155,6 @@ PERLVAR(Iefloatsize, STRLEN) /* regex stuff */ -PERLVAR(Iscreamfirst, I32 *) -PERLVAR(Iscreamnext, I32 *) -PERLVAR(Ilastscream, SV *) - PERLVAR(Ireg_state, struct re_save_state) PERLVAR(Iregdummy, regnode) /* from regcomp.c */ @@ -232,7 +229,7 @@ When you replace this variable, it is considered a good practice to store the po PERLVARI(Iopfreehook, Perl_ophook_t, 0) /* op_free() hook */ -PERLVARI(Imaxscream, I32, -1) +/* Space for U32 */ PERLVARI(Ireginterp_cnt,I32, 0) /* Whether "Regexp" was interpolated. */ PERLVARI(Iwatchaddr, char **, 0) PERLVAR(Iwatchok, char *) @@ -250,17 +247,20 @@ PERLVAR(Ilocalizing, U8) /* are we processing a local() list? */ PERLVAR(Icolorset, bool) /* from regcomp.c */ 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) +PERLVAR(Itainting, 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(Iperl_destruct_level, signed char, 0) +/* current phase the interpreter is in */ +PERLVARI(Iphase, enum perl_phase, PERL_PHASE_CONSTRUCT) + PERLVAR(Iperldb, U32) +PERLVAR(Isignals, U32) /* Using which pre-5.8 signals */ + /* pseudo environmental stuff */ PERLVAR(Iorigargc, int) PERLVAR(Iorigargv, char **) @@ -296,14 +296,12 @@ The C variable which corresponds to Perl's $^W warning variable. */ PERLVAR(Idowarn, U8) - /* 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 */ PERLVARI(Iin_load_module, bool, FALSE) /* to prevent recursions in PerlIO_find_layer */ + /* Space for a U16 */ PERLVAR(Iinplace, char *) PERLVAR(Ie_script, SV *) @@ -475,7 +473,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 **) @@ -658,7 +665,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 @@ -669,6 +676,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) @@ -677,10 +686,6 @@ PERLVARI(Iunitcheckav_save, AV*, NULL) /* save UNITCHECK{}s when compiling */ PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */ -PERLVAR(Isignals, U32) /* Using which pre-5.8 signals */ - -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. */ @@ -696,7 +701,12 @@ PERLVARI(Iunlockhook, share_proc_t, PERL_UNLOCK_HOOK) PERLVARI(Ithreadhook, thrhook_proc_t, Perl_nothreadhook) +/* Can shared object be destroyed */ +PERLVARI(Idestroyhook, destroyable_proc_t, Perl_sv_destroyable) + +#ifndef PERL_MICRO PERLVARI(Isignalhook, despatch_signals_proc_t, Perl_despatch_signals) +#endif PERLVARI(Ihash_seed, UV, 0) /* Hash initializer */ @@ -704,11 +714,32 @@ PERLVARI(Irehash_seed, UV, 0) /* 582 hash initializer */ PERLVARI(Iisarev, HV*, NULL) /* Reverse map of @ISA dependencies */ +/* Register of known Method Resolution Orders. + What this actually points to is an implementation detail (it may change to + a structure incorporating a reference count - use mro_get_from_name to + retrieve a C */ +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, SV *, NULL) + +PERLVAR(Icustom_ops, HV *) /* custom op registrations */ + +PERLVAR(Ireentrant_retint, int) /* Integer return value from reentrant functions */ + /* The last unconditional member of the interpreter structure when 5.10.0 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_10_0_INTERP_MEMBER Iisarev +#define PERL_LAST_5_16_0_INTERP_MEMBER Ireentrant_retint #ifdef PERL_IMPLICIT_CONTEXT PERLVARI(Imy_cxt_size, int, 0) /* size of PL_my_cxt_list */ @@ -750,28 +781,10 @@ PERLVARI(Islabs, I32**, NULL) /* Array of slabs that have been allocated */ PERLVARI(Islab_count, U32, 0) /* Size of the array */ #endif -/* Can shared object be destroyed */ -PERLVARI(Idestroyhook, destroyable_proc_t, Perl_sv_destroyable) - #ifdef DEBUG_LEAKING_SCALARS PERLVARI(Isv_serial, U32, 0) /* SV serial number, used in sv.c */ #endif -/* Register of known Method Resolution Orders. - What this actually points to is an implementation detail (it may change to - a structure incorporating a reference count - use mro_get_from_name to - retrieve a C */ -PERLVAR(Iregistered_mros, HV *) - -/* Compile-time block start/end hooks */ -PERLVAR(Iblockhooks, AV *) - - -/* Everything that folds to a character, for case insensitivity regex matching */ -PERLVARI(Iutf8_foldclosures, 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. */