/* switches */
PERLVAR(Iminus_c, bool)
PERLVAR(Ipatchlevel, SV *)
-PERLVAR(Ilocalpatches, char **)
-PERLVARI(Isplitstr, char *, " ")
+PERLVAR(Ilocalpatches, const char * const *)
+PERLVARI(Isplitstr, const char *, " ")
PERLVAR(Ipreprocess, bool)
PERLVAR(Iminus_n, bool)
PERLVAR(Iminus_p, bool)
PERLVAR(Iexit_flags, U8) /* was exit() unexpected, etc. */
#ifdef VMS
PERLVAR(Istatusvalue_vms,U32)
+#else
+PERLVAR(Istatusvalue_posix,I32)
#endif
/* shortcuts to various I/O objects */
/* XXX shouldn't these be per-thread? --GSAR */
PERLVAR(Iors_sv, SV *) /* output record separator $\ */
-PERLVAR(Iofmt, char *) /* output format for numbers $# */
/* interpreter atexit processing */
PERLVARI(Iexitlist, PerlExitListEntry *, NULL)
PERLVAR(Inomemok, bool) /* let malloc context handle nomem */
PERLVARI(Ian, U32, 0) /* malloc sequence number */
PERLVARI(Icop_seqmax, U32, 0) /* statement sequence number */
-PERLVARI(Iop_seqmax, U16, 0) /* op sequence number */
PERLVARI(Ievalseq, U32, 0) /* eval sequence number */
PERLVAR(Iorigenviron, char **)
PERLVAR(Iorigalen, U32)
PERLVARI(Imaxo, int, MAXO) /* maximum number of ops */
PERLVAR(Iosname, char *) /* operating system */
-/* 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 */
-PERLVAR(Ixiv_root, IV *) /* free xiv list */
PERLVAR(Ixnv_root, NV *) /* free xnv list */
-PERLVAR(Ixrv_root, XRV *) /* free xrv list */
-PERLVAR(Ixpv_root, XPV *) /* free xpv list */
-PERLVAR(Ixpviv_root, XPVIV *) /* free xpviv list */
+PERLVAR(Ixpv_root, xpv_allocated *) /* free xpv list */
+PERLVAR(Ixpviv_root, xpviv_allocated *) /* free xpviv list */
PERLVAR(Ixpvnv_root, XPVNV *) /* free xpvnv list */
PERLVAR(Ixpvcv_root, XPVCV *) /* free xpvcv list */
-PERLVAR(Ixpvav_root, XPVAV *) /* free xpvav list */
-PERLVAR(Ixpvhv_root, XPVHV *) /* free xpvhv list */
+PERLVAR(Ixpvav_root, xpvav_allocated *) /* free xpvav list */
+PERLVAR(Ixpvhv_root, xpvhv_allocated *) /* free xpvhv list */
PERLVAR(Ixpvmg_root, XPVMG *) /* free xpvmg list */
+PERLVAR(Ixpvgv_root, XPVGV *) /* free xpvgv list */
PERLVAR(Ixpvlv_root, XPVLV *) /* free xpvlv list */
PERLVAR(Ixpvbm_root, XPVBM *) /* free xpvbm list */
PERLVAR(Ihe_root, HE *) /* free he list */
+#if defined(USE_ITHREADS)
+PERLVAR(Ipte_root, struct ptr_tbl_ent *) /* free ptr_tbl_ent list */
+#endif
PERLVAR(Inice_chunk, char *) /* a nice chunk of memory to reuse */
PERLVAR(Inice_chunk_size, U32) /* how nice the chunk of memory is */
PERLVAR(Isv_yes, SV)
#ifdef CSH
-PERLVARI(Icshname, char *, CSH)
+PERLVARI(Icshname, const char *, CSH)
PERLVARI(Icshlen, I32, 0)
#endif
PERLVAR(Ilast_swash_tmps, U8 *)
PERLVAR(Ilast_swash_slen, STRLEN)
+/* perly.c globals */
+PERLVAR(Iyycharp, int *)
+PERLVAR(Iyylvalp, YYSTYPE *)
+
PERLVARI(Iglob_index, int, 0)
PERLVAR(Isrand_called, bool)
PERLVARA(Iuudmap,256, char)
PERLVARI(Ibeginav_save, AV*, Nullav) /* save BEGIN{}s when compiling */
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 */
-PERLVAR(Ixpviv_arenaroot,XPVIV*) /* list of allocated xpviv areas */
+PERLVAR(Ixpv_arenaroot, xpv_allocated *) /* list of allocated xpv areas */
+PERLVAR(Ixpviv_arenaroot,xpviv_allocated*) /* list of allocated xpviv areas */
PERLVAR(Ixpvnv_arenaroot,XPVNV*) /* list of allocated xpvnv areas */
PERLVAR(Ixpvcv_arenaroot,XPVCV*) /* list of allocated xpvcv areas */
-PERLVAR(Ixpvav_arenaroot,XPVAV*) /* list of allocated xpvav areas */
-PERLVAR(Ixpvhv_arenaroot,XPVHV*) /* list of allocated xpvhv areas */
+PERLVAR(Ixpvav_arenaroot,xpvav_allocated*) /* list of allocated xpvav areas */
+PERLVAR(Ixpvhv_arenaroot,xpvhv_allocated*) /* list of allocated xpvhv areas */
PERLVAR(Ixpvmg_arenaroot,XPVMG*) /* list of allocated xpvmg areas */
+PERLVAR(Ixpvgv_arenaroot,XPVGV*) /* list of allocated xpvgv areas */
PERLVAR(Ixpvlv_arenaroot,XPVLV*) /* list of allocated xpvlv areas */
PERLVAR(Ixpvbm_arenaroot,XPVBM*) /* list of allocated xpvbm areas */
-PERLVAR(Ihe_arenaroot, XPV*) /* list of allocated he areas */
-
+PERLVAR(Ihe_arenaroot, HE *) /* list of allocated he areas */
+#if defined(USE_ITHREADS)
+PERLVAR(Ipte_arenaroot, struct ptr_tbl_ent *) /* list of allocated pte areas */
+#endif
/* 5.6.0 stopped here */
PERLVAR(Ipsig_pend, int *) /* per-signal "count" of pending */
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
+#ifdef USE_REENTRANT_API
+PERLVAR(Ireentrant_buffer, REENTR*) /* here we store the _r buffers */
#endif
PERLVARI(Isavebegin, bool, FALSE) /* save BEGINs for compiler */
PERLVARI(Irehash_seed_set, bool, FALSE) /* 582 hash initialized? */
+/* These two variables are needed to preserve 5.8.x bincompat because we can't
+ change function prototypes of two exported functions. Probably should be
+ taken out of blead soon, and relevant prototypes changed. */
+PERLVARI(Ifdscript, int, -1) /* fd for script */
+PERLVARI(Isuidscript, int, -1) /* fd for suid script */
+#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
+/* File descriptor to talk to the child which dumps scalars. */
+PERLVARI(Idumper_fd, int, -1)
+#endif
/* 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.
*/
-