This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add PERL_NO_GET_CONTEXT to dl_dlopen.xs
[perl5.git] / intrpvar.h
index 55e91f6..32a013a 100644 (file)
@@ -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.
  *
@@ -58,7 +59,7 @@ PERLVAR(Itmps_stack,  SV **)          /* mortals we've made */
 PERLVARI(Itmps_ix,     I32,    -1)
 PERLVARI(Itmps_floor,  I32,    -1)
 PERLVAR(Itmps_max,     I32)
-PERLVAR(Imodcount,     I32)            /* how much mod()ification in
+PERLVAR(Imodcount,     I32)            /* how much op_lvalue()ification in
                                           assignment? */
 
 PERLVAR(Imarkstack,    I32 *)          /* stack_sp locations we're
@@ -248,11 +249,12 @@ PERLVAR(Iregmatch_state, regmatch_state *)
 PERLVAR(Idelaymagic,   U16)            /* ($<,$>) = ... */
 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,      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)
+
 /* 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 */
@@ -295,7 +297,7 @@ The C variable which corresponds to Perl's $^W warning variable.
 */
 
 PERLVAR(Idowarn,       U8)
-PERLVAR(Idoextract,    bool)
+     /* Space for a U8  */
 PERLVAR(Isawampersand, bool)           /* must save all match strings */
 PERLVAR(Iunsafe,       bool)
 PERLVAR(Iexit_flags,   U8)             /* was exit() unexpected, etc. */
@@ -474,7 +476,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 **)
@@ -657,7 +668,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
@@ -668,6 +679,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)
 
@@ -765,6 +778,17 @@ 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,       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.  */