This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
startp and endp can allocate their array of I32s from the same block of
[perl5.git] / intrpvar.h
index 04ea137..a8d8131 100644 (file)
@@ -70,7 +70,6 @@ PERLVAR(Iformfeed,    SV *)           /* $^L */
 
 PERLVARI(Imaxsysfd,    I32,    MAXSYSFD)
                                        /* top fd to pass to subprocesses */
-PERLVAR(Imultiline,    int)            /* $*--do strings hold >1 line? */
 PERLVAR(Istatusvalue,  I32)            /* $? */
 PERLVAR(Iexit_flags,   U8)             /* was exit() unexpected, etc. */
 #ifdef VMS
@@ -134,6 +133,7 @@ PERLVAR(Iglobalstash,       HV *)           /* global keyword overrides imported here */
 PERLVAR(Icurstname,    SV *)           /* name of current package */
 PERLVAR(Ibeginav,      AV *)           /* names of BEGIN subroutines */
 PERLVAR(Iendav,                AV *)           /* names of END subroutines */
+PERLVAR(Iunitcheckav,  AV *)           /* names of UNITCHECK subroutines */
 PERLVAR(Icheckav,      AV *)           /* names of CHECK subroutines */
 PERLVAR(Iinitav,       AV *)           /* names of INIT subroutines */
 PERLVAR(Istrtab,       HV *)           /* shared string table */
@@ -173,7 +173,6 @@ PERLVAR(Ioldname,   char *)         /* what to preserve mode on */
 PERLVAR(IArgv,         char **)        /* stuff to free from do_aexec, vfork safe */
 PERLVAR(ICmd,          char *)         /* stuff to free from do_aexec, vfork safe */
 PERLVARI(Igensym,      I32,    0)      /* next symbol for getsym() to define */
-PERLVAR(Ipreambled,    bool)
 PERLVAR(Ipreambleav,   AV *)
 PERLVARI(Ilaststatval, int,    -1)
 PERLVARI(Ilaststype,   I32,    OP_STAT)
@@ -203,7 +202,7 @@ PERLVAR(Imodglobal, HV *)           /* per-interp module data */
 
 /* these used to be in global before 5.004_68 */
 PERLVARI(Iprofiledata, U32 *,  NULL)   /* table of ops, counts */
-PERLVARI(Irsfp,        PerlIO * VOL,   Nullfp) /* current source file pointer */
+PERLVARI(Irsfp,        PerlIO * VOL,   NULL)   /* current source file pointer */
 PERLVARI(Irsfp_filters,        AV *,   NULL)   /* keeps active source filters */
 
 PERLVAR(Icompiling,    COP)            /* compiling/done executing marker */
@@ -227,8 +226,6 @@ PERLVARI(Iin_clean_objs,bool,    FALSE)     /* from sv.c */
 PERLVARI(Iin_clean_all,        bool,    FALSE) /* from sv.c */
 
 PERLVAR(Ilinestart,    char *)         /* beg. of most recently read line */
-PERLVAR(Ipending_ident,        char)           /* pending identifier lookup */
-PERLVAR(Isublex_info,  SUBLEXINFO)     /* from toke.c */
 
 PERLVAR(Iuid,          Uid_t)          /* current real user id */
 PERLVAR(Ieuid,         Uid_t)          /* current effective user id */
@@ -248,7 +245,7 @@ PERLVAR(Iosname,    char *)         /* operating system */
 
 PERLVAR(Isighandlerp,  Sighandler_t)
 
-PERLVARA(Ibody_roots,  SVt_LAST, void*) /* array of body roots */
+PERLVARA(Ibody_roots,  PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */
 
 PERLVAR(Inice_chunk,   char *)         /* a nice chunk of memory to reuse */
 PERLVAR(Inice_chunk_size,      U32)    /* how nice the chunk of memory is */
@@ -282,25 +279,16 @@ PERLVARI(Icshlen, I32,    0)
 #endif
 
 PERLVAR(Ilex_state,    U32)            /* next token is determined */
-PERLVAR(Ilex_defer,    U32)            /* state after determined token */
-PERLVAR(Ilex_expect,   int)            /* expect after determined token */
-PERLVAR(Ilex_brackets, I32)            /* bracket count */
-PERLVAR(Ilex_formbrack,        I32)            /* bracket count at outer format level */
-PERLVAR(Ilex_casemods, I32)            /* casemod count */
-PERLVAR(Ilex_dojoin,   I32)            /* doing an array interpolation */
-PERLVAR(Ilex_starts,   I32)            /* how many interps done on level */
-PERLVAR(Ilex_stuff,    SV *)           /* runtime pattern from m// or s/// */
-PERLVAR(Ilex_repl,     SV *)           /* runtime replacement from s/// */
-PERLVAR(Ilex_op,       OP *)           /* extra info to pass back on op */
-PERLVAR(Ilex_inpat,    OP *)           /* in pattern $) and $| are special */
-PERLVAR(Ilex_inwhat,   I32)            /* what kind of quoting are we in */
-PERLVAR(Ilex_brackstack,char *)                /* what kind of brackets to pop */
-PERLVAR(Ilex_casestack,        char *)         /* what kind of case mods in effect */
 
 /* What we know when we're in LEX_KNOWNEXT state. */
+#ifdef PERL_MAD
+PERLVARA(Inexttoke,5,  NEXTTOKE)       /* value of next token, if any */
+PERLVAR(Icurforce,     I32)
+#else
 PERLVARA(Inextval,5,   YYSTYPE)        /* value of next token, if any */
 PERLVARA(Inexttype,5,  I32)            /* type of next token */
 PERLVAR(Inexttoke,     I32)
+#endif
 
 PERLVAR(Ilinestr,      SV *)
 PERLVAR(Ibufptr,       char *)
@@ -309,10 +297,7 @@ PERLVAR(Ioldoldbufptr,     char *)
 PERLVAR(Ibufend,       char *)
 PERLVARI(Iexpect,int,  XSTATE)         /* how to interpret ambiguous tokens */
 
-PERLVAR(Imulti_start,  I32)            /* 1st line of multi-line string */
 PERLVAR(Imulti_end,    I32)            /* last line of multi-line string */
-PERLVAR(Imulti_open,   I32)            /* delimiter of said string */
-PERLVAR(Imulti_close,  I32)            /* delimiter of said string */
 
 PERLVAR(Ierror_count,  I32)            /* how many errors so far, max 10 */
 PERLVAR(Isubline,      I32)            /* line this subroutine began on */
@@ -385,9 +370,7 @@ PERLVARA(Ilast_swash_key,10,        U8)
 PERLVAR(Ilast_swash_tmps,      U8 *)
 PERLVAR(Ilast_swash_slen,      STRLEN)
 
-/* perly.c globals */
-PERLVAR(Iyycharp,      int *)
-PERLVAR(Iyylvalp,      YYSTYPE *)
+PERLVAR(Iparser,       yy_parser *)    /* current parser state */
 
 PERLVARI(Iglob_index,  int,    0)
 PERLVAR(Isrand_called, bool)
@@ -409,12 +392,10 @@ PERLVAR(ISock,            struct IPerlSock*)
 PERLVAR(IProc,         struct IPerlProc*)
 #endif
 
-#if defined(USE_ITHREADS)
 PERLVAR(Iptr_table,    PTR_TBL_t*)
-#endif
 PERLVARI(Ibeginav_save, AV*, NULL)     /* save BEGIN{}s when compiling */
 
-PERLVARA(Ibody_arenaroots, SVt_LAST, void*) /* consolidated body-arena pointers */
+PERLVAR(Ibody_arenas, void*) /* pointer to list of body-arenas */
 
      /* 5.6.0 stopped here */
 
@@ -439,6 +420,12 @@ PERLVAR(Ireentrant_buffer, REENTR*)        /* here we store the _r buffers */
 
 PERLVARI(Isavebegin,     bool, FALSE)  /* save BEGINs for compiler     */
 
+#ifdef PERL_MAD
+PERLVARI(Imadskills,   bool, FALSE)    /* preserve all syntactic info */
+                                       /* (MAD = Misc Attribute Decoration) */
+PERLVARI(Ixmlfp, PerlIO *,NULL)
+#endif
+
 PERLVAR(Icustom_op_names, HV*)  /* Names of user defined ops */
 PERLVAR(Icustom_op_descs, HV*)  /* Descriptions of user defined ops */
 
@@ -448,7 +435,7 @@ PERLVARI(Iknown_layers, PerlIO_list_t *,NULL)
 PERLVARI(Idef_layerlist, PerlIO_list_t *,NULL)
 #endif
 
-PERLVARI(Iencoding,    SV*, Nullsv)            /* character encoding */
+PERLVARI(Iencoding,    SV*, NULL)              /* character encoding */
 
 PERLVAR(Idebug_pad,    struct perl_debug_pad)  /* always needed because of the re extension */
 
@@ -468,6 +455,7 @@ PERLVAR(Iutf8_idcont,       SV *)
 PERLVAR(Isort_RealCmp,  SVCOMPARE_t)
 
 PERLVARI(Icheckav_save, AV*, NULL)     /* save CHECK{}s when compiling */
+PERLVARI(Iunitcheckav_save, AV*, NULL) /* save UNITCHECK{}s when compiling */
 
 PERLVARI(Iclocktick, long, 0)  /* this many times() ticks in a second */
 
@@ -484,7 +472,14 @@ 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_nosharing))
-PERLVARI(Iunlockhook,  share_proc_t,   MEMBER_TO_FPTR(Perl_sv_nosharing))
+#ifdef NO_MATHOMS
+#  define PERL_UNLOCK_HOOK Perl_sv_nosharing
+#else
+/* This reference ensures that the mathoms are linked with perl */
+#  define PERL_UNLOCK_HOOK Perl_sv_nounlocking
+#endif
+PERLVARI(Iunlockhook,  share_proc_t,   MEMBER_TO_FPTR(PERL_UNLOCK_HOOK))
+
 PERLVARI(Ithreadhook,  thrhook_proc_t, MEMBER_TO_FPTR(Perl_nothreadhook))
 
 /* Force inclusion of both runops options */
@@ -508,15 +503,30 @@ PERLVARI(Irehash_seed, UV, 0)             /* 582 hash initializer */
 
 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
+
+#ifdef PERL_IMPLICIT_CONTEXT
+PERLVARI(Imy_cxt_size, int, 0)         /* size of PL_my_cxt_list */
+PERLVARI(Imy_cxt_list, void **, NULL) /* per-module array of MY_CXT pointers */
+#ifdef PERL_GLOBAL_STRUCT_PRIVATE
+PERLVARI(Imy_cxt_keys, const char **, NULL) /* per-module array of pointers to MY_CXT_KEY constants */
+#endif
+#endif
+
+#ifdef PERL_TRACK_MEMPOOL
+/* For use with the memory debugging code in util.c  */
+PERLVAR(Imemory_debug_header, struct perl_memory_debug_header)
+#endif
+
+#ifdef PERL_UTF8_CACHE_ASSERT
+PERLVARI(Iutf8cache, I8, -1)   /* Is the utf8 caching code enabled? */
+#else
+PERLVARI(Iutf8cache, I8, 1)    /* Is the utf8 caching code enabled? */
+#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()!)