This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
BUG: Integer floatifies? +PATCH: reading BIG integers with SMALL floats
[perl5.git] / intrpvar.h
index 9731bc3..39d14c9 100644 (file)
@@ -8,10 +8,7 @@
  * generated when built with or without MULTIPLICITY.  It is also used
  * to generate the appropriate export list for win32.
  *
- * When building without MULTIPLICITY, these variables will be truly global.
- *
- * Avoid build-specific #ifdefs here, like DEBUGGING.  That way,
- * we can keep binary compatibility of the curinterp structure */
+ * When building without MULTIPLICITY, these variables will be truly global. */
 
 /* pseudo environmental stuff */
 PERLVAR(Iorigargc,     int)
@@ -25,7 +22,7 @@ PERLVAR(Iwarnhook,    SV *)
 
 /* switches */
 PERLVAR(Iminus_c,      bool)
-PERLVARA(Ipatchlevel,10,char)
+PERLVAR(Ipatchlevel,   SV *)
 PERLVAR(Ilocalpatches, char **)
 PERLVARI(Isplitstr,    char *, " ")
 PERLVAR(Ipreprocess,   bool)
@@ -35,7 +32,17 @@ PERLVAR(Iminus_l,    bool)
 PERLVAR(Iminus_a,      bool)
 PERLVAR(Iminus_F,      bool)
 PERLVAR(Idoswitches,   bool)
-PERLVAR(Idowarn,       bool)
+
+/*
+=for apidoc Amn|bool|PL_dowarn
+
+The C variable which corresponds to Perl's $^W warning variable.
+
+=cut
+*/
+
+PERLVAR(Idowarn,       U8)
+PERLVAR(Iwidesyscalls, bool)           /* wide system calls */
 PERLVAR(Idoextract,    bool)
 PERLVAR(Isawampersand, bool)           /* must save all match strings */
 PERLVAR(Iunsafe,       bool)
@@ -80,6 +87,29 @@ PERLVAR(Ierrgv,              GV *)
 /* shortcuts to debugging objects */
 PERLVAR(IDBgv,         GV *)
 PERLVAR(IDBline,       GV *)
+
+/*
+=for apidoc Amn|GV *|PL_DBsub
+When Perl is run in debugging mode, with the B<-d> switch, this GV contains
+the SV which holds the name of the sub being debugged.  This is the C
+variable which corresponds to Perl's $DB::sub variable.  See
+C<PL_DBsingle>.
+
+=for apidoc Amn|SV *|PL_DBsingle
+When Perl is run in debugging mode, with the B<-d> switch, this SV is a
+boolean which indicates whether subs are being single-stepped. 
+Single-stepping is automatically turned on after every step.  This is the C
+variable which corresponds to Perl's $DB::single variable.  See
+C<PL_DBsub>.
+
+=for apidoc Amn|SV *|PL_DBtrace
+Trace variable used when Perl is run in debugging mode, with the B<-d>
+switch.  This is the C variable which corresponds to Perl's $DB::trace
+variable.  See C<PL_DBsingle>.
+
+=cut
+*/
+
 PERLVAR(IDBsub,                GV *)
 PERLVAR(IDBsingle,     SV *)
 PERLVAR(IDBtrace,      SV *)
@@ -93,7 +123,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(Istopav,       AV *)           /* names of STOP subroutines */
+PERLVAR(Icheckav,      AV *)           /* names of CHECK subroutines */
 PERLVAR(Iinitav,       AV *)           /* names of INIT subroutines */
 PERLVAR(Istrtab,       HV *)           /* shared string table */
 PERLVARI(Isub_generation,U32,1)                /* incr to invalidate method cache */
@@ -147,6 +177,19 @@ PERLVAR(Iofmt,             char *)         /* output format for numbers $# */
 PERLVARI(Iexitlist,    PerlExitListEntry *, NULL)
                                        /* list of exit functions */
 PERLVARI(Iexitlistlen, I32, 0)         /* length of same */
+
+/*
+=for apidoc Amn|HV*|PL_modglobal
+
+C<PL_modglobal> is a general purpose, interpreter global HV for use by 
+extensions that need to keep information on a per-interpreter basis.
+In a pinch, it can also be used as a symbol table for extensions 
+to share data among each other.  It is a good idea to use keys 
+prefixed by the package name of the extension that owns the data.
+
+=cut
+*/
+
 PERLVAR(Imodglobal,    HV *)           /* per-interp module data */
 
 /* these used to be in global before 5.004_68 */
@@ -170,7 +213,6 @@ PERLVAR(Isys_intern,        struct interp_intern)
 /* more statics moved here */
 PERLVARI(Igeneration,  int,    100)    /* from op.c */
 PERLVAR(IDBcv,         CV *)           /* from perl.c */
-PERLVAR(Iarchpat_auto, char*)          /* from perl.c */
 
 PERLVARI(Iin_clean_objs,bool,    FALSE)        /* from sv.c */
 PERLVARI(Iin_clean_all,        bool,    FALSE) /* from sv.c */
@@ -223,6 +265,21 @@ PERLVARI(Irunops,  runops_proc_t,  MEMBER_TO_FPTR(RUNOPS_DEFAULT))
 
 PERLVARA(Itokenbuf,256,        char)
 
+/*
+=for apidoc Amn|SV|PL_sv_undef
+This is the C<undef> SV.  Always refer to this as C<&PL_sv_undef>.
+
+=for apidoc Amn|SV|PL_sv_no
+This is the C<false> SV.  See C<PL_sv_yes>.  Always refer to this as
+C<&PL_sv_no>.
+
+=for apidoc Amn|SV|PL_sv_yes
+This is the C<true> SV.  See C<PL_sv_no>.  Always refer to this as
+C<&PL_sv_yes>.
+
+=cut
+*/
+
 PERLVAR(Isv_undef,     SV)
 PERLVAR(Isv_no,                SV)
 PERLVAR(Isv_yes,       SV)
@@ -234,10 +291,9 @@ PERLVAR(Icshlen,   I32)
 
 PERLVAR(Ilex_state,    U32)            /* next token is determined */
 PERLVAR(Ilex_defer,    U32)            /* state after determined token */
-PERLVAR(Ilex_expect,   expectation)    /* expect 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_fakebrack,        I32)            /* outer bracket is mere delimiter */
 PERLVAR(Ilex_casemods, I32)            /* casemod count */
 PERLVAR(Ilex_dojoin,   I32)            /* doing an array interpolation */
 PERLVAR(Ilex_starts,   I32)            /* how many interps done on level */
@@ -259,7 +315,7 @@ PERLVAR(Ibufptr,    char *)
 PERLVAR(Ioldbufptr,    char *)
 PERLVAR(Ioldoldbufptr, char *)
 PERLVAR(Ibufend,       char *)
-PERLVARI(Iexpect,expectation,  XSTATE) /* how to interpret ambiguous tokens */
+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 */
@@ -350,7 +406,6 @@ PERLVARA(Iuudmap,256,       char)
 PERLVAR(Ibitcount,     char *)
 
 #ifdef USE_THREADS
-PERLVAR(Ithr_key,      perl_key)       /* For per-thread struct perl_thread* */
 PERLVAR(Isv_mutex,     perl_mutex)     /* Mutex for allocating SVs in sv.c */
 PERLVAR(Ieval_mutex,   perl_mutex)     /* Mutex for doeval */
 PERLVAR(Ieval_cond,    perl_cond)      /* Condition variable for doeval */