This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
embed.fnc: Restrict access to non-public functions
[perl5.git] / intrpvar.h
index 7966a3f..2a2913c 100644 (file)
 
  * Don't forget to re-run regen/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. */
+/* New variables must be added to the very end for binary compatibility. */
 
-/* Don't forget to add your variable also to perl_clone()! */
+/* Don't forget to add your variable also to perl_clone()! (in sv.c) */
 
 /* The 'I' prefix is only needed for vars that need appropriate #defines
  * generated when built with or without MULTIPLICITY.  It is also used
@@ -164,7 +162,6 @@ PERLVARI(I, dumpindent,     U16,    4)      /* number of blanks per dump
 
 
 PERLVAR(I, utf8locale, bool)           /* utf8 locale detected */
-PERLVARI(I, rehash_seed_set, bool, FALSE)      /* 582 hash initialized? */
 
 PERLVARA(I, colors,6,  char *)         /* from regcomp.c */
 
@@ -229,8 +226,6 @@ When you replace this variable, it is considered a good practice to store the po
 
 PERLVARI(I, opfreehook,        Perl_ophook_t, 0) /* op_free() hook */
 
-/* Space for U32 */
-PERLVARI(I, reginterp_cnt,I32,  0)     /* Whether "Regexp" was interpolated. */
 PERLVARI(I, watchaddr, char **, 0)
 PERLVAR(I, watchok,    char *)
 
@@ -296,19 +291,14 @@ The C variable which corresponds to Perl's $^W warning variable.
 */
 
 PERLVAR(I, dowarn,     U8)
-PERLVAR(I, sawampersand, bool)         /* must save all match strings */
+PERLVAR(I, sawampersand, U8)           /* must save all match strings */
 PERLVAR(I, unsafe,     bool)
 PERLVAR(I, exit_flags, U8)             /* was exit() unexpected, etc. */
-PERLVAR(I, srand_called, bool)
-PERLVARI(I, in_load_module, bool, FALSE)       /* to prevent recursions in PerlIO_find_layer */
-     /* Space for a U16  */
+
 PERLVAR(I, inplace,    char *)
 PERLVAR(I, e_script,   SV *)
 
-/* magical thingies */
 PERLVAR(I, basetime,   Time_t)         /* $^T */
-PERLVAR(I, formfeed,   SV *)           /* $^L */
-
 
 PERLVARI(I, maxsysfd,  I32,    MAXSYSFD)
                                        /* top fd to pass to subprocesses */
@@ -449,8 +439,8 @@ PERLVARI(I, profiledata, U32 *,     NULL)   /* table of ops, counts */
 PERLVAR(I, compiling,  COP)            /* compiling/done executing marker */
 
 PERLVAR(I, compcv,     CV *)           /* currently compiling subroutine */
-PERLVAR(I, comppad,    AV *)           /* storage for lexically scoped temporaries */
-PERLVAR(I, comppad_name, AV *)         /* variable names for "my" variables */
+PERLVAR(I, comppad,    PAD *)          /* storage for lexically scoped temporaries */
+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 */
 
@@ -468,10 +458,10 @@ PERLVARI(I, in_clean_all, bool,    FALSE) /* ptrs to freed SVs now legal */
 PERLVAR(I, nomemok,    bool)           /* let malloc context handle nomem */
 PERLVARI(I, savebegin, bool,   FALSE)  /* save BEGINs for compiler     */
 
-PERLVAR(I, uid,                Uid_t)          /* current real user id */
-PERLVAR(I, euid,       Uid_t)          /* current effective user id */
-PERLVAR(I, gid,                Gid_t)          /* current real group id */
-PERLVAR(I, egid,       Gid_t)          /* current effective group id */
+PERLVAR(I, delaymagic_uid,     Uid_t)  /* current real user id, only for delaymagic */
+PERLVAR(I, delaymagic_euid,    Uid_t)  /* current effective user id, only for delaymagic */
+PERLVAR(I, delaymagic_gid,     Gid_t)  /* current real group id, only for delaymagic */
+PERLVAR(I, delaymagic_egid,    Gid_t)  /* current effective group id, only for delaymagic */
 PERLVARI(I, an,                U32,    0)      /* malloc sequence number */
 
 #ifdef DEBUGGING
@@ -537,8 +527,6 @@ PERLVAR(I, debug,   VOL U32)        /* flags given to -D switch */
 /* Perl_Ibreakable_sub_generation_ptr was too long for VMS, hence "gen"  */
 PERLVARI(I, breakable_sub_gen, U32, 0)
 
-PERLVARI(I, amagic_generation, long, 0)
-
 #ifdef USE_LOCALE_COLLATE
 PERLVAR(I, collation_name, char *)     /* Name of current collation */
 PERLVAR(I, collxfrm_base, Size_t)      /* Basic overhead in *xfrm() */
@@ -569,9 +557,63 @@ PERLVAR(I, numeric_radix_sv, SV *) /* The radix separator if not '.' */
 
 #endif /* !USE_LOCALE_NUMERIC */
 
-/* utf8 character classes */
+/* Unicode inversion lists */
+PERLVAR(I, ASCII,      SV *)
+PERLVAR(I, Latin1,     SV *)
+PERLVAR(I, AboveLatin1,        SV *)
+
+PERLVAR(I, PerlSpace,  SV *)
+PERLVAR(I, XPerlSpace, SV *)
+
+PERLVAR(I, L1PosixAlnum,SV *)
+PERLVAR(I, PosixAlnum, SV *)
+
+PERLVAR(I, L1PosixAlpha,SV *)
+PERLVAR(I, PosixAlpha, SV *)
+
+PERLVAR(I, PosixBlank, SV *)
+PERLVAR(I, XPosixBlank,        SV *)
+
+PERLVAR(I, L1Cased,    SV *)
+
+PERLVAR(I, PosixCntrl, SV *)
+PERLVAR(I, XPosixCntrl,        SV *)
+
+PERLVAR(I, PosixDigit, SV *)
+
+PERLVAR(I, L1PosixGraph,SV *)
+PERLVAR(I, PosixGraph, SV *)
+
+PERLVAR(I, L1PosixLower,SV *)
+PERLVAR(I, PosixLower, SV *)
+
+PERLVAR(I, L1PosixPrint,SV *)
+PERLVAR(I, PosixPrint, SV *)
+
+PERLVAR(I, L1PosixPunct,SV *)
+PERLVAR(I, PosixPunct, SV *)
+
+PERLVAR(I, PosixSpace, SV *)
+PERLVAR(I, XPosixSpace,        SV *)
+
+PERLVAR(I, L1PosixUpper,SV *)
+PERLVAR(I, PosixUpper, SV *)
+
+PERLVAR(I, L1PosixWord,        SV *)
+PERLVAR(I, PosixWord,  SV *)
+
+PERLVAR(I, PosixXDigit,        SV *)
+PERLVAR(I, XPosixXDigit, SV *)
+
+PERLVAR(I, VertSpace,   SV *)
+
+PERLVAR(I, NonL1NonFinalFold,   SV *)
+PERLVAR(I, HasMultiCharFold,   SV *)
+
+/* utf8 character class swashes */
 PERLVAR(I, utf8_alnum, SV *)
 PERLVAR(I, utf8_alpha, SV *)
+PERLVAR(I, utf8_blank, SV *)
 PERLVAR(I, utf8_space, SV *)
 PERLVAR(I, utf8_graph, SV *)
 PERLVAR(I, utf8_digit, SV *)
@@ -581,34 +623,28 @@ PERLVAR(I, utf8_print,    SV *)
 PERLVAR(I, utf8_punct, SV *)
 PERLVAR(I, utf8_xdigit,        SV *)
 PERLVAR(I, utf8_mark,  SV *)
-PERLVAR(I, utf8_X_begin, SV *)
+PERLVAR(I, utf8_X_regular_begin, SV *)
 PERLVAR(I, utf8_X_extend, SV *)
-PERLVAR(I, utf8_X_prepend, SV *)
-PERLVAR(I, utf8_X_non_hangul, SV *)
-PERLVAR(I, utf8_X_L,   SV *)
-PERLVAR(I, utf8_X_LV,  SV *)
 PERLVAR(I, utf8_X_LVT, SV *)
-PERLVAR(I, utf8_X_T,   SV *)
-PERLVAR(I, utf8_X_V,   SV *)
-PERLVAR(I, utf8_X_LV_LVT_V, SV *)
 PERLVAR(I, utf8_toupper, SV *)
 PERLVAR(I, utf8_totitle, SV *)
 PERLVAR(I, utf8_tolower, SV *)
 PERLVAR(I, utf8_tofold,        SV *)
+PERLVAR(I, utf8_charname_begin, SV *)
+PERLVAR(I, utf8_charname_continue, SV *)
 PERLVAR(I, last_swash_hv, HV *)
 PERLVAR(I, last_swash_tmps, U8 *)
 PERLVAR(I, last_swash_slen, STRLEN)
-PERLVARA(I, last_swash_key,10, U8)
-PERLVAR(I, last_swash_klen, U8)                /* Only needs to store 0-10  */
+PERLVARA(I, last_swash_key,12, U8)
+PERLVAR(I, last_swash_klen, U8)                /* Only needs to store 0-12  */
 
 #ifdef FCRYPT
 PERLVARI(I, cryptseen, bool,   FALSE)  /* has fast crypt() been initialized? */
 #endif
 
 PERLVAR(I, pad_reset_pending, bool)    /* reset pad on next attempted alloc */
-
-PERLVARI(I, glob_index,        int,    0)
-
+PERLVAR(I, srand_called, bool)
+PERLVARI(I, in_load_module, bool, FALSE)       /* to prevent recursions in PerlIO_find_layer */
 
 PERLVAR(I, parser,     yy_parser *)    /* current parser state */
 
@@ -646,6 +682,9 @@ PERLVAR(I, regex_padav,   AV *)             /* All regex objects, indexed via the
                                           Entry 0 is an SV whose PV is a
                                           "packed" list of IVs listing
                                           the now-free slots in the array */
+PERLVAR(I, stashpad,    HV **)         /* for CopSTASH */
+PERLVARI(I, stashpadmax, PADOFFSET, 64)
+PERLVARI(I, stashpadix, PADOFFSET, 0)
 #endif
 
 #ifdef USE_REENTRANT_API
@@ -668,6 +707,7 @@ PERLVAR(I, debug_pad,       struct perl_debug_pad)  /* always needed because of the re
 PERLVAR(I, utf8_idstart, SV *)
 PERLVAR(I, utf8_idcont,        SV *)
 PERLVAR(I, utf8_xidstart, SV *)
+PERLVAR(I, utf8_perl_idstart, SV *)
 PERLVAR(I, utf8_xidcont, SV *)
 
 PERLVAR(I, sort_RealCmp, SVCOMPARE_t)
@@ -700,10 +740,6 @@ PERLVARI(I, destroyhook, destroyable_proc_t, Perl_sv_destroyable)
 PERLVARI(I, signalhook,        despatch_signals_proc_t, Perl_despatch_signals)
 #endif
 
-PERLVARI(I, hash_seed, UV,     0)      /* Hash initializer */
-
-PERLVARI(I, rehash_seed, UV,   0)      /* 582 hash initializer */
-
 PERLVARI(I, isarev, HV *, NULL)                /* Reverse map of @ISA dependencies */
 
 /* Register of known Method Resolution Orders.
@@ -725,6 +761,11 @@ PERLVARI(I, utf8_foldable, SV *, NULL)
 
 PERLVAR(I, custom_ops, HV *)           /* custom op registrations */
 
+/* Hook for File::Glob */
+PERLVARI(I, globhook,  globhook_t, NULL)
+
+PERLVARI(I, glob_index,        int,    0)
+
 PERLVAR(I, reentrant_retint, int)      /* Integer return value from reentrant functions */
 
 /* The last unconditional member of the interpreter structure when 5.10.0 was
@@ -734,8 +775,8 @@ PERLVAR(I, reentrant_retint, int)   /* Integer return value from reentrant functio
 #define PERL_LAST_5_16_0_INTERP_MEMBER Ireentrant_retint
 
 #ifdef PERL_IMPLICIT_CONTEXT
-PERLVARI(I, my_cxt_size, int,  0)      /* size of PL_my_cxt_list */
 PERLVARI(I, my_cxt_list, void **, NULL) /* per-module array of MY_CXT pointers */
+PERLVARI(I, my_cxt_size, int,  0)      /* size of PL_my_cxt_list */
 #  ifdef PERL_GLOBAL_STRUCT_PRIVATE
 PERLVARI(I, my_cxt_keys, const char **, NULL) /* per-module array of pointers to MY_CXT_KEY constants */
 #  endif
@@ -751,28 +792,12 @@ PERLVAR(I, memory_debug_header, struct perl_memory_debug_header)
 PERLVARI(I, dumper_fd, int,    -1)
 #endif
 
-/* Stores the PPID */
-#ifdef THREADS_HAVE_PIDS
-PERLVARI(I, ppid,      IV,     0)
-#endif
-
 #ifdef PERL_MAD
 PERLVARI(I, madskills, bool,   FALSE)  /* preserve all syntactic info */
                                        /* (MAD = Misc Attribute Decoration) */
 PERLVARI(I, xmlfp,     PerlIO *, NULL)
 #endif
 
-#ifdef PL_OP_SLAB_ALLOC
-PERLVAR(I, OpPtr,      I32 **)
-PERLVARI(I, OpSpace,   I32,    0)
-PERLVAR(I, OpSlab,     I32 *)
-#endif
-
-#ifdef PERL_DEBUG_READONLY_OPS
-PERLVARI(I, slabs,     I32**,  NULL)   /* Array of slabs that have been allocated */
-PERLVARI(I, slab_count, U32,   0)      /* Size of the array */
-#endif
-
 #ifdef DEBUG_LEAKING_SCALARS
 PERLVARI(I, sv_serial, U32,    0)      /* SV serial number, used in sv.c */
 #endif