X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=intrpvar.h;h=dbb9a12ebdd6c707b0ec65bd5aac9a40b594fce7;hb=7996736c5ecb6da6273386229ce113837049152c;hp=6447b272c4056243df5ec6148290fc72ba70f707;hpb=1fcf4c126eb604a2803256137e52891a03090e84;p=p5sagit%2Fp5-mst-13.2.git diff --git a/intrpvar.h b/intrpvar.h index 6447b27..dbb9a12 100644 --- a/intrpvar.h +++ b/intrpvar.h @@ -4,6 +4,12 @@ /* Don't forget to re-run embed.pl to propagate changes! */ +/* New variables must be added to the very end for binary compatibility. + * XSUB.h provides wrapper functions via perlapi.h that make this + * irrelevant, but not all code may be expected to #include XSUB.h. */ + +/* Don't forget to add your variable also to perl_clone()! */ + /* 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. @@ -34,6 +40,8 @@ PERLVAR(Iminus_F, bool) PERLVAR(Idoswitches, bool) /* +=head1 Global Variables + =for apidoc mn|bool|PL_dowarn The C variable which corresponds to Perl's $^W warning variable. @@ -42,7 +50,7 @@ The C variable which corresponds to Perl's $^W warning variable. */ PERLVAR(Idowarn, U8) -PERLVAR(Iwidesyscalls, bool) /* wide system calls */ +PERLVAR(Iwidesyscalls, bool) /* unused since 5.8.1 */ PERLVAR(Idoextract, bool) PERLVAR(Isawampersand, bool) /* must save all match strings */ PERLVAR(Iunsafe, bool) @@ -78,7 +86,7 @@ PERLVAR(Iargvout_stack, AV *) /* shortcuts to regexp stuff */ /* this one needs to be moved to thrdvar.h and accessed via - * find_threadsv() when USE_THREADS */ + * find_threadsv() when USE_5005THREADS */ PERLVAR(Ireplgv, GV *) /* shortcuts to misc objects */ @@ -220,12 +228,6 @@ PERLVAR(Ilinestart, char *) /* beg. of most recently read line */ PERLVAR(Ipending_ident, char) /* pending identifier lookup */ PERLVAR(Isublex_info, SUBLEXINFO) /* from toke.c */ -#ifdef USE_THREADS -PERLVAR(Ithrsv, SV *) /* struct perl_thread for main thread */ -PERLVARI(Ithreadnum, U32, 0) /* incremented each thread creation */ -PERLVAR(Istrtab_mutex, perl_mutex) /* Mutex for string table access */ -#endif /* USE_THREADS */ - PERLVAR(Iuid, Uid_t) /* current real user id */ PERLVAR(Ieuid, Uid_t) /* current effective user id */ PERLVAR(Igid, Gid_t) /* current real group id */ @@ -240,7 +242,10 @@ PERLVAR(Iorigalen, U32) PERLVAR(Ipidstatus, HV *) /* pid-to-status mappings for waitpid */ PERLVARI(Imaxo, int, MAXO) /* maximum number of ops */ PERLVAR(Iosname, char *) /* operating system */ -PERLVARI(Ish_path, char *, SH_PATH)/* full path of shell */ + +/* For binary compatibility with older versions only */ +PERLVARI(Ish_path_compat, char *, SH_PATH)/* full path of shell */ + PERLVAR(Isighandlerp, Sighandler_t) PERLVAR(Ixiv_arenaroot, XPV*) /* list of allocated xiv areas */ @@ -385,6 +390,7 @@ PERLVAR(Iutf8_mark, SV *) PERLVAR(Iutf8_toupper, SV *) PERLVAR(Iutf8_totitle, SV *) PERLVAR(Iutf8_tolower, SV *) +PERLVAR(Iutf8_tofold, SV *) PERLVAR(Ilast_swash_hv, HV *) PERLVAR(Ilast_swash_klen, U32) PERLVARA(Ilast_swash_key,10, U8) @@ -404,26 +410,6 @@ PERLVAR(Isrand_called, bool) PERLVARA(Iuudmap,256, char) PERLVAR(Ibitcount, char *) -#ifdef USE_THREADS -PERLVAR(Isv_mutex, perl_mutex) /* Mutex for allocating SVs in sv.c */ -PERLVAR(Ieval_mutex, perl_mutex) /* Mutex for doeval */ -PERLVAR(Ieval_cond, perl_cond) /* Condition variable for doeval */ -PERLVAR(Ieval_owner, struct perl_thread *) - /* Owner thread for doeval */ -PERLVAR(Inthreads, int) /* Number of threads currently */ -PERLVAR(Ithreads_mutex, perl_mutex) /* Mutex for nthreads and thread list */ -PERLVAR(Inthreads_cond, perl_cond) /* Condition variable for nthreads */ -PERLVAR(Isvref_mutex, perl_mutex) /* Mutex for SvREFCNT_{inc,dec} */ -PERLVARI(Ithreadsv_names,char *, THREADSV_NAMES) -#ifdef FAKE_THREADS -PERLVAR(Icurthr, struct perl_thread *) - /* Currently executing (fake) thread */ -#endif - -PERLVAR(Icred_mutex, perl_mutex) /* altered credentials in effect */ - -#endif /* USE_THREADS */ - PERLVAR(Ipsig_ptr, SV**) PERLVAR(Ipsig_name, SV**) @@ -444,13 +430,6 @@ PERLVAR(Iptr_table, PTR_TBL_t*) #endif PERLVARI(Ibeginav_save, AV*, Nullav) /* save BEGIN{}s when compiling */ -#ifdef USE_THREADS -PERLVAR(Ifdpid_mutex, perl_mutex) /* mutex for fdpid array */ -PERLVAR(Isv_lock_mutex, perl_mutex) /* mutex for SvLOCK macro */ -#endif - -PERLVAR(Inullstash, HV *) /* illegal symbols end up here */ - PERLVAR(Ixnv_arenaroot, XPV*) /* list of allocated xnv areas */ PERLVAR(Ixrv_arenaroot, XPV*) /* list of allocated xrv areas */ PERLVAR(Ixpv_arenaroot, XPV*) /* list of allocated xpv areas */ @@ -476,13 +455,89 @@ 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**) /* All regex objects */ +PERLVAR(Iregex_padav, AV*) /* All regex objects */ + +#ifdef USE_REENTRANT_API +PERLVAR(Ireentrant_buffer, REENTR*) /* here we store the _r buffers */ #endif -/* New variables must be added to the very end for binary compatibility. - * XSUB.h provides wrapper functions via perlapi.h that make this - * irrelevant, but not all code may be expected to #include XSUB.h. */ +#endif + +PERLVAR(Isavebegin, bool) /* save BEGINs for compiler */ + +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(Iknown_layers, PerlIO_list_t *,NULL) +PERLVARI(Idef_layerlist, PerlIO_list_t *,NULL) +#endif +PERLVARI(Iencoding, SV*, Nullsv) /* character encoding */ +PERLVAR(Idebug_pad, struct perl_debug_pad) /* always needed because of the re extension */ + +PERLVAR(Itaint_warn, bool) /* taint warns instead of dying */ + +#ifdef PL_OP_SLAB_ALLOC +PERLVAR(IOpPtr,I32 **) +PERLVARI(IOpSpace,I32,0) +PERLVAR(IOpSlab,I32 *) +#endif + +PERLVAR(Iutf8locale, bool) /* utf8 locale detected */ + +PERLVAR(Iutf8_idstart, SV *) +PERLVAR(Iutf8_idcont, SV *) + +PERLVAR(Isort_RealCmp, SVCOMPARE_t) + +PERLVARI(Icheckav_save, AV*, Nullav) /* save CHECK{}s when compiling */ + +PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */ + +PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */ + +PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */ + +PERLVAR(Isignals, U32) /* Using which pre-5.8 signals */ + +PERLVAR(Istashcache, HV *) /* Cache to speed up S_method_common */ + +PERLVAR(Ireentrant_retint, int) /* Integer return value from reentrant functions */ + +/* Hooks to shared SVs and locks. */ +PERLVARI(Isharehook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing)) +PERLVARI(Ilockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nolocking)) +PERLVARI(Iunlockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nounlocking)) +PERLVARI(Ithreadhook, thrhook_proc_t, MEMBER_TO_FPTR(Perl_nothreadhook)) + +/* Force inclusion of both runops options */ +PERLVARI(Irunops_std, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_standard)) +PERLVARI(Irunops_dbg, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_debug)) + +/* Stores the PPID */ +#ifdef THREADS_HAVE_PIDS +PERLVARI(Ippid, IV, 0) +#endif + +PERLVARI(Ihash_seed, UV, 0) /* Hash initializer */ + +PERLVARI(Ihash_seed_set, bool, FALSE) /* Hash initialized? */ + +PERLVAR(IDBassertion, SV *) + +PERLVARI(Icv_has_eval, I32, 0) /* PL_compcv includes an entereval or similar */ + +/* Restricted hashes placeholder value */ +PERLVAR(Isv_placeholder, SV) + +/* New variables must be added to the very end, before this comment, + * for binary compatibility (the offsets of the old members must not change). + * (Don't forget to add your variable also to perl_clone()!) + * XSUB.h provides wrapper functions via perlapi.h that make this + * irrelevant, but not all code may be expected to #include XSUB.h. + */