This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
PL_in_load_module only has values 0 and 1, so can be a bool instead of int.
[perl5.git] / intrpvar.h
index 3265ac2..bfa613c 100644 (file)
@@ -43,6 +43,9 @@ PERLVAR(Istack_base,  SV **)
 PERLVAR(Istack_max,    SV **)
 
 PERLVAR(Iscopestack,   I32 *)          /* scopes we've ENTERed */
+/* name of the scopes we've ENTERed. Only used with -DDEBUGGING, but needs to be
+   present always, as -DDEUBGGING must be binary compatible with non.  */
+PERLVARI(Iscopestack_name, const char * *, NULL)
 PERLVAR(Iscopestack_ix,        I32)
 PERLVAR(Iscopestack_max,I32)
 
@@ -123,6 +126,7 @@ PERLVAR(Idefstash,  HV *)           /* main symbol table */
 PERLVAR(Icurstash,     HV *)           /* symbol table for current package */
 
 PERLVAR(Irestartop,    OP *)           /* propagating an error from croak? */
+PERLVAR(Irestartjmpenv,        JMPENV *)       /* target frame for longjmp in die */
 PERLVAR(Icurcop,       COP *)
 PERLVAR(Icurstack,     AV *)           /* THE STACK */
 PERLVAR(Icurstackinfo, PERL_SI *)      /* current stack + context */
@@ -170,6 +174,20 @@ PERLVARA(Icolors,6,        char *)         /* from regcomp.c */
 PERLVARI(Ipeepp,       peep_t, MEMBER_TO_FPTR(Perl_peep))
                                        /* Pointer to peephole optimizer */
 
+/*
+=for apidoc Amn|Perl_ophook_t|PL_opfreehook
+
+When non-C<NULL>, the function pointed by this variable will be called each time an OP is freed with the corresponding OP as the argument.
+This allows extensions to free any extra attribute they have locally attached to an OP.
+It is also assured to first fire for the parent OP and then for its kids.
+
+When you replace this variable, it is considered a good practice to store the possibly previously installed hook and that you recall it inside your own.
+
+=cut
+*/
+
+PERLVARI(Iopfreehook,  Perl_ophook_t, 0) /* op_free() hook */
+
 PERLVARI(Imaxscream,   I32,    -1)
 PERLVARI(Ireginterp_cnt,I32,    0)     /* Whether "Regexp" was interpolated. */
 PERLVARI(Iwatchaddr,   char **, 0)
@@ -239,7 +257,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 */
+PERLVARI(Iin_load_module, bool, FALSE) /* to prevent recursions in PerlIO_find_layer */
 PERLVAR(Iinplace,      char *)
 PERLVAR(Ie_script,     SV *)
 
@@ -499,10 +517,12 @@ PERLVAR(Inumeric_name,    char *)         /* Name of current numeric locale */
 
 /* utf8 character classes */
 PERLVAR(Iutf8_alnum,   SV *)
-PERLVAR(Iutf8_alnumc,  SV *)
 PERLVAR(Iutf8_ascii,   SV *)
 PERLVAR(Iutf8_alpha,   SV *)
 PERLVAR(Iutf8_space,   SV *)
+PERLVAR(Iutf8_perl_space,      SV *)
+PERLVAR(Iutf8_perl_word,       SV *)
+PERLVAR(Iutf8_posix_digit,     SV *)
 PERLVAR(Iutf8_cntrl,   SV *)
 PERLVAR(Iutf8_graph,   SV *)
 PERLVAR(Iutf8_digit,   SV *)
@@ -512,6 +532,16 @@ PERLVAR(Iutf8_print,       SV *)
 PERLVAR(Iutf8_punct,   SV *)
 PERLVAR(Iutf8_xdigit,  SV *)
 PERLVAR(Iutf8_mark,    SV *)
+PERLVAR(Iutf8_X_begin, SV *)
+PERLVAR(Iutf8_X_extend,        SV *)
+PERLVAR(Iutf8_X_prepend,       SV *)
+PERLVAR(Iutf8_X_non_hangul,    SV *)
+PERLVAR(Iutf8_X_L,     SV *)
+PERLVAR(Iutf8_X_LV,    SV *)
+PERLVAR(Iutf8_X_LVT,   SV *)
+PERLVAR(Iutf8_X_T,     SV *)
+PERLVAR(Iutf8_X_V,     SV *)
+PERLVAR(Iutf8_X_LV_LVT_V,      SV *)
 PERLVAR(Iutf8_toupper, SV *)
 PERLVAR(Iutf8_totitle, SV *)
 PERLVAR(Iutf8_tolower, SV *)
@@ -537,7 +567,8 @@ PERLVAR(Iparser,    yy_parser *)    /* current parser state */
    signal handler dispatches.  */
 PERLVAR(Ipsig_ptr, SV**)
 /* Array of names of signals, indexed by signal number, for (re)use as the first
-   argument to a signal handler.   */
+   argument to a signal handler.   Only one block of memory is allocated for
+   both psig_name and psig_ptr.  */
 PERLVAR(Ipsig_name, SV**)              
 
 #if defined(PERL_IMPLICIT_SYS)
@@ -601,7 +632,7 @@ PERLVARI(Iunitcheckav_save, AV*, NULL)      /* save UNITCHECK{}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 */
+/* Space for an int */
 
 PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */