X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=intrpvar.h;h=4a627792886d39d6596783c3ed1acf47782d52ca;hb=cbb9e8a748b5e5e3976f6136bbf786e27be09152;hp=a6a4a1c641d6ae97a7158ddcaeee7abc616990a2;hpb=c3c974a67f0c45348e2d8d31bc20ceb1672d9fa5;p=p5sagit%2Fp5-mst-13.2.git diff --git a/intrpvar.h b/intrpvar.h index a6a4a1c..4a62779 100644 --- a/intrpvar.h +++ b/intrpvar.h @@ -124,7 +124,7 @@ PERLVAR(Idefstash, HV *) /* main symbol table */ PERLVAR(Icurstash, HV *) /* symbol table for current package */ PERLVAR(Irestartop, OP *) /* propagating an error from croak? */ -PERLVAR(Icurcop, COP * VOL) +PERLVAR(Icurcop, COP *) PERLVAR(Icurstack, AV *) /* THE STACK */ PERLVAR(Icurstackinfo, PERL_SI *) /* current stack + context */ PERLVAR(Imainstack, AV *) /* the stack when nothing funny is @@ -162,7 +162,9 @@ PERLVAR(Iregdummy, regnode) /* from regcomp.c */ PERLVARI(Idumpindent, U16, 4) /* number of blanks per dump indentation level */ -/* Space for U16 here without increasing the structure size */ + +PERLVAR(Iutf8locale, bool) /* utf8 locale detected */ +PERLVARI(Irehash_seed_set, bool, FALSE) /* 582 hash initialized? */ PERLVARA(Icolors,6, char *) /* from regcomp.c */ @@ -187,12 +189,13 @@ PERLVAR(Ilocalizing, U8) /* are we processing a local() list? */ PERLVAR(Icolorset, bool) /* from regcomp.c */ PERLVARI(Idirty, bool, FALSE) /* in the middle of tearing things down? */ -PERLVAR(Iin_eval, VOL U8) /* trap "fatal" errors? */ +PERLVAR(Iin_eval, U8) /* trap "fatal" errors? */ PERLVAR(Itainted, bool) /* using variables controlled by $< */ /* This value may be set when embedding for full cleanup */ /* 0=none, 1=full, 2=full with checks */ -PERLVARI(Iperl_destruct_level, U8, 0) +/* mod_perl is special, and also assigns a meaning -1 */ +PERLVARI(Iperl_destruct_level, signed char, 0) PERLVAR(Iperldb, U32) @@ -212,14 +215,12 @@ PERLVAR(Ilocalpatches, const char * const *) PERLVARI(Isplitstr, const char *, " ") PERLVAR(Iminus_c, bool) -PERLVAR(Ipreprocess, bool) PERLVAR(Iminus_n, bool) PERLVAR(Iminus_p, bool) PERLVAR(Iminus_l, bool) PERLVAR(Iminus_a, bool) PERLVAR(Iminus_F, bool) PERLVAR(Idoswitches, bool) - PERLVAR(Iminus_E, bool) /* @@ -239,6 +240,7 @@ 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 */ +/* Space for a U8 */ PERLVAR(Iinplace, char *) PERLVAR(Ie_script, SV *) @@ -256,10 +258,8 @@ PERLVAR(Istatusvalue_vms,U32) PERLVAR(Istatusvalue_posix,I32) #endif -#ifdef CSH -PERLVARI(Icshlen, I32, 0) -PERLVARI(Icshname, const char *, CSH) -#endif +PERLVARI(Isig_pending, int,0) /* Number if highest signal pending */ +PERLVAR(Ipsig_pend, int *) /* per-signal "count" of pending */ /* shortcuts to various I/O objects */ PERLVAR(Istdingv, GV *) @@ -347,7 +347,7 @@ PERLVARI(Icurcopdb, COP *, NULL) PERLVAR(Ifilemode, int) /* so nextargv() can preserve mode */ PERLVAR(Ilastfd, int) /* what to preserve mode on */ PERLVAR(Ioldname, char *) /* what to preserve mode on */ -PERLVAR(IArgv, char **) /* stuff to free from do_aexec, vfork safe */ +PERLVAR(IArgv, const char **) /* stuff to free from do_aexec, vfork safe */ PERLVAR(ICmd, 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 @@ -359,6 +359,7 @@ PERLVAR(Iors_sv, SV *) /* output record separator $\ */ /* statics moved here for shared library purposes */ PERLVARI(Igensym, I32, 0) /* next symbol for getsym() to define */ PERLVARI(Icv_has_eval, bool, FALSE) /* PL_compcv includes an entereval or similar */ +PERLVAR(Itaint_warn, bool) /* taint warns instead of dying */ PERLVARI(Ilaststype, U16, OP_STAT) PERLVARI(Ilaststatval, int, -1) @@ -551,13 +552,6 @@ PERLVARI(Ibeginav_save, AV*, NULL) /* save BEGIN{}s when compiling */ PERLVAR(Ibody_arenas, void*) /* pointer to list of body-arenas */ -PERLVAR(Ipsig_pend, int *) /* per-signal "count" of pending */ -PERLVARI(Isig_pending, int,0) /* Number if highest signal pending */ - - -PERLVAR(Itaint_warn, bool) /* taint warns instead of dying */ -PERLVAR(Iutf8locale, bool) /* utf8 locale detected */ -PERLVARI(Irehash_seed_set, bool, FALSE) /* 582 hash initialized? */ #ifdef USE_LOCALE_NUMERIC @@ -566,22 +560,19 @@ PERLVAR(Inumeric_radix_sv, SV *) /* The radix separator if not '.' */ #endif #if defined(USE_ITHREADS) -PERLVAR(Iregex_pad, SV**) /* All regex objects */ -PERLVAR(Iregex_padav, AV*) /* All regex objects */ - +PERLVAR(Iregex_pad, SV**) /* Shortcut into the array of + regex_padav */ +PERLVAR(Iregex_padav, AV*) /* All regex objects, indexed via the + values in op_pmoffset of pmop. + Entry 0 is an SV whose PV is a + "packed" list of IVs listing + the now-free slots in the array */ #endif #ifdef USE_REENTRANT_API PERLVAR(Ireentrant_buffer, REENTR*) /* here we store the _r buffers */ #endif - -#ifdef PERL_MAD -PERLVARI(Imadskills, bool, FALSE) /* preserve all syntactic info */ - /* (MAD = Misc Attribute Decoration) */ -PERLVARI(Ixmlfp, PerlIO *,NULL) -#endif - PERLVAR(Icustom_op_names, HV*) /* Names of user defined ops */ PERLVAR(Icustom_op_descs, HV*) /* Descriptions of user defined ops */ @@ -595,12 +586,6 @@ PERLVARI(Iencoding, SV*, NULL) /* character encoding */ PERLVAR(Idebug_pad, struct perl_debug_pad) /* always needed because of the re extension */ -#ifdef PL_OP_SLAB_ALLOC -PERLVAR(IOpPtr,I32 **) -PERLVARI(IOpSpace,I32,0) -PERLVAR(IOpSlab,I32 *) -#endif - PERLVAR(Iutf8_idstart, SV *) PERLVAR(Iutf8_idcont, SV *) @@ -634,28 +619,24 @@ PERLVARI(Iunlockhook, share_proc_t, MEMBER_TO_FPTR(PERL_UNLOCK_HOOK)) PERLVARI(Ithreadhook, thrhook_proc_t, MEMBER_TO_FPTR(Perl_nothreadhook)) -/* Stores the PPID */ -#ifdef THREADS_HAVE_PIDS -PERLVARI(Ippid, IV, 0) -#endif - PERLVARI(Ihash_seed, UV, 0) /* Hash initializer */ -PERLVAR(IDBassertion, SV *) - PERLVARI(Irehash_seed, UV, 0) /* 582 hash initializer */ -#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP -/* File descriptor to talk to the child which dumps scalars. */ -PERLVARI(Idumper_fd, int, -1) -#endif +PERLVARI(Iisarev, HV*, NULL) /* Reverse map of @ISA dependencies */ + +/* 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 #ifdef PERL_IMPLICIT_CONTEXT PERLVARI(Imy_cxt_size, int, 0) /* size of PL_my_cxt_list */ PERLVARI(Imy_cxt_list, void **, NULL) /* per-module array of MY_CXT pointers */ -#ifdef PERL_GLOBAL_STRUCT_PRIVATE +# ifdef PERL_GLOBAL_STRUCT_PRIVATE PERLVARI(Imy_cxt_keys, const char **, NULL) /* per-module array of pointers to MY_CXT_KEY constants */ -#endif +# endif #endif #ifdef PERL_TRACK_MEMPOOL @@ -663,15 +644,38 @@ PERLVARI(Imy_cxt_keys, const char **, NULL) /* per-module array of pointers to M PERLVAR(Imemory_debug_header, struct perl_memory_debug_header) #endif +#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP +/* File descriptor to talk to the child which dumps scalars. */ +PERLVARI(Idumper_fd, int, -1) +#endif + +/* Stores the PPID */ +#ifdef THREADS_HAVE_PIDS +PERLVARI(Ippid, IV, 0) +#endif + +#ifdef PERL_MAD +PERLVARI(Imadskills, bool, FALSE) /* preserve all syntactic info */ + /* (MAD = Misc Attribute Decoration) */ +PERLVARI(Ixmlfp, PerlIO *,NULL) +#endif + +#ifdef PL_OP_SLAB_ALLOC +PERLVAR(IOpPtr,I32 **) +PERLVARI(IOpSpace,I32,0) +PERLVAR(IOpSlab,I32 *) +#endif + #ifdef PERL_DEBUG_READONLY_OPS PERLVARI(Islabs, I32**, NULL) /* Array of slabs that have been allocated */ PERLVARI(Islab_count, U32, 0) /* Size of the array */ #endif -PERLVARI(Iisarev, HV*, NULL) /* Reverse map of @ISA dependencies */ +/* Can shared object be destroyed */ +PERLVARI(Idestroyhook, destroyable_proc_t, MEMBER_TO_FPTR(Perl_sv_destroyable)) -/* If you are adding a U8 or U16, see the 'Space' comments above on where - * there are gaps which currently will be structure padding. */ +/* 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. */ /* Within a stable branch, new variables must be added to the very end, before * this comment, for binary compatibility (the offsets of the old members must