This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re docs
[perl5.git] / intrpvar.h
1 /***********************************************/
2 /* Global only to current interpreter instance */
3 /***********************************************/
4
5 /* pseudo environmental stuff */
6 PERLVAR(Iorigargc,      int)            
7 PERLVAR(Iorigargv,      char **)                
8 PERLVAR(Ienvgv,         GV *)           
9 PERLVAR(Isiggv,         GV *)           
10 PERLVAR(Iincgv,         GV *)           
11 PERLVAR(Iorigfilename,  char *)         
12 PERLVAR(Idiehook,       SV *)           
13 PERLVAR(Iwarnhook,      SV *)           
14 PERLVAR(Iparsehook,     SV *)           
15 PERLVAR(Icddir,         char *)         /* switches */
16 PERLVAR(Iminus_c,       bool)           
17 PERLVAR(Ipatchlevel[10],char)           
18 PERLVAR(Ilocalpatches,  char **)                
19 PERLVARI(Isplitstr,     char *, " ")    
20 PERLVAR(Ipreprocess,    bool)           
21 PERLVAR(Iminus_n,       bool)           
22 PERLVAR(Iminus_p,       bool)           
23 PERLVAR(Iminus_l,       bool)           
24 PERLVAR(Iminus_a,       bool)           
25 PERLVAR(Iminus_F,       bool)           
26 PERLVAR(Idoswitches,    bool)           
27 PERLVAR(Idowarn,        bool)           
28 PERLVAR(Idoextract,     bool)           
29 PERLVAR(Isawampersand,  bool)           /* must save all match strings */
30 PERLVAR(Isawstudy,      bool)           /* do fbm_instr on all strings */
31 PERLVAR(Isawvec,        bool)           
32 PERLVAR(Iunsafe,        bool)           
33 PERLVAR(Iinplace,       char *)         
34 PERLVAR(Ie_script,      SV *)           
35 PERLVAR(Iperldb,        U32)            
36
37 /* This value may be raised by extensions for testing purposes */
38 /* 0=none, 1=full, 2=full with checks */
39 PERLVARI(Iperl_destruct_level,  int,    0)      
40
41 /* magical thingies */
42 PERLVAR(Ibasetime,      Time_t)         /* $^T */
43 PERLVAR(Iformfeed,      SV *)           /* $^L */
44
45
46 PERLVARI(Imaxsysfd,     I32,    MAXSYSFD)       /* top fd to pass to subprocesses */
47 PERLVAR(Imultiline,     int)            /* $*--do strings hold >1 line? */
48 PERLVAR(Istatusvalue,   I32)            /* $? */
49 #ifdef VMS
50 PERLVAR(Istatusvalue_vms,       U32)            
51 #endif
52
53 PERLVAR(Istatcache,     Stat_t) /* _ */
54 PERLVAR(Istatgv,        GV *)           
55 PERLVARI(Istatname,     SV *,   Nullsv) 
56
57 /* shortcuts to various I/O objects */
58 PERLVAR(Istdingv,       GV *)           
59 PERLVAR(Idefgv,         GV *)           
60 PERLVAR(Iargvgv,        GV *)           
61 PERLVAR(Iargvoutgv,     GV *)           
62
63 /* shortcuts to regexp stuff */
64 PERLVAR(Ileftgv,        GV *)           
65 PERLVAR(Iampergv,       GV *)           
66 PERLVAR(Irightgv,       GV *)           
67 PERLVAR(Iscreamfirst,   I32 *)          
68 PERLVAR(Iscreamnext,    I32 *)          
69 PERLVARI(Imaxscream,    I32,    -1)     
70 PERLVAR(Ilastscream,    SV *)           
71 PERLVAR(Ireplgv,        GV *)           
72
73 /* shortcuts to misc objects */
74 PERLVAR(Ierrgv,         GV *)           
75
76 /* shortcuts to debugging objects */
77 PERLVAR(IDBgv,          GV *)           
78 PERLVAR(IDBline,        GV *)           
79 PERLVAR(IDBsub,         GV *)           
80 PERLVAR(IDBsingle,      SV *)           
81 PERLVAR(IDBtrace,       SV *)           
82 PERLVAR(IDBsignal,      SV *)           
83 PERLVAR(Ilineary,       AV *)           /* lines of script for debugger */
84 PERLVAR(Idbargs,        AV *)           /* args to call listed by caller function */
85
86 /* symbol tables */
87 PERLVAR(Idebstash,      HV *)           /* symbol table for perldb package */
88 PERLVAR(Iglobalstash,   HV *)           /* global keyword overrides imported here */
89 PERLVAR(Icurstname,     SV *)           /* name of current package */
90 PERLVAR(Ibeginav,       AV *)           /* names of BEGIN subroutines */
91 PERLVAR(Iendav,         AV *)           /* names of END subroutines */
92 PERLVAR(Iinitav,        AV *)           /* names of INIT subroutines */
93 PERLVAR(Istrtab,        HV *)           /* shared string table */
94
95 /* memory management */
96 PERLVAR(Isv_count,      I32)            /* how many SV* are currently allocated */
97 PERLVAR(Isv_objcount,   I32)            /* how many objects are currently allocated */
98 PERLVAR(Isv_root,       SV*)            /* storage for SVs belonging to interp */
99 PERLVAR(Isv_arenaroot,  SV*)            /* list of areas for garbage collection */
100
101 /* funky return mechanisms */
102 PERLVAR(Ilastspbase,    I32)            
103 PERLVAR(Ilastsize,      I32)            
104 PERLVAR(Iforkprocess,   int)            /* so do_open |- can return proc# */
105
106 /* subprocess state */
107 PERLVAR(Ifdpid,         AV *)           /* keep fd-to-pid mappings for my_popen */
108
109 /* internal state */
110 PERLVAR(Itainting,      bool)           /* doing taint checks */
111 PERLVARI(Iop_mask,      char *, NULL)   /* masked operations for safe evals */
112 PERLVAR(Ilast_proto, char *)            /* Prototype of last sub seen. */
113
114 /* trace state */
115 PERLVAR(Idlevel,        I32)            
116 PERLVARI(Idlmax,        I32,    128)    
117 PERLVAR(Idebname,       char *)         
118 PERLVAR(Idebdelim,      char *)         
119
120 /* current interpreter roots */
121 PERLVAR(Imain_cv,       CV *)           
122 PERLVAR(Imain_root,     OP *)           
123 PERLVAR(Imain_start,    OP *)           
124 PERLVAR(Ieval_root,     OP *)           
125 PERLVAR(Ieval_start,    OP *)           
126
127 /* runtime control stuff */
128 PERLVARI(Icurcopdb,     COP *,  NULL)   
129 PERLVARI(Icopline,      line_t, NOLINE) 
130
131 /* statics moved here for shared library purposes */
132 PERLVAR(Istrchop,       SV)             /* return value from chop */
133 PERLVAR(Ifilemode,      int)            /* so nextargv() can preserve mode */
134 PERLVAR(Ilastfd,        int)            /* what to preserve mode on */
135 PERLVAR(Ioldname,       char *)         /* what to preserve mode on */
136 PERLVAR(IArgv,          char **)        /* stuff to free from do_aexec, vfork safe */
137 PERLVAR(ICmd,           char *)         /* stuff to free from do_aexec, vfork safe */
138 PERLVAR(Isortcop,       OP *)           /* user defined sort routine */
139 PERLVAR(Isortstash,     HV *)           /* which is in some package or other */
140 PERLVAR(Ifirstgv,       GV *)           /* $a */
141 PERLVAR(Isecondgv,      GV *)           /* $b */
142 PERLVAR(Imystrk,        SV *)           /* temp key string for do_each() */
143 PERLVAR(Idumplvl,       I32)            /* indentation level on syntax tree dump */
144 PERLVAR(Ioldlastpm,     PMOP *)         /* for saving regexp context during debugger */
145 PERLVAR(Igensym,        I32)            /* next symbol for getsym() to define */
146 PERLVAR(Ipreambled,     bool)           
147 PERLVAR(Ipreambleav,    AV *)           
148 PERLVARI(Ilaststatval,  int,    -1)     
149 PERLVARI(Ilaststype,    I32,    OP_STAT)        
150 PERLVAR(Imess_sv,       SV *)           
151
152 PERLVAR(Iors,           char *)         /* $\ */
153 PERLVAR(Iorslen,        STRLEN)         
154 PERLVAR(Iofmt,          char *)         /* $# */
155
156 /* interpreter atexit processing */
157 PERLVARI(Iexitlist,     PerlExitListEntry *, NULL)      /* list of exit functions */
158 PERLVARI(Iexitlistlen,  I32, 0)                         /* length of same */
159 PERLVAR(Imodglobal,     HV *)                           /* per-interp module data */
160
161 #ifdef HAVE_INTERP_INTERN
162 PERLVAR(Isys_intern,    struct interp_intern)           /* platform internals */
163 #endif
164
165 /* more statics moved here */
166 PERLVARI(Igeneration,   int,    100)    /* from op.c */
167 PERLVAR(IDBcv,          CV *)           /* from perl.c */
168 PERLVAR(Iarchpat_auto,  char*)          /* from perl.c */
169 PERLVAR(Isortcxix,      I32)            /* from pp_ctl.c */
170 PERLVAR(Ilastgotoprobe, OP*)            /* from pp_ctl.c */
171 PERLVAR(Iregdummy,      regnode)        /* from regcomp.c */
172 PERLVAR(Iregcomp_parse, char*)          /* Input-scan pointer. */
173 PERLVAR(Iregxend,       char*)          /* End of input for compile */
174 PERLVAR(Iregcode,       regnode*)       /* Code-emit pointer; &regdummy = don't. */
175 PERLVAR(Iregnaughty,    I32)            /* How bad is this pattern? */
176 PERLVAR(Iregsawback,    I32)            /* Did we see \1, ...? */
177
178 /* This guys appear both in regcomp.c and regexec.c, */
179 PERLVAR(Iregprecomp,    char *)         /* uncompiled string. */
180 PERLVAR(Iregnpar,       I32)            /* () count. */
181 PERLVAR(Iregsize,       I32)            /* Code size. */
182 PERLVAR(Iregflags,      U16)            /* are we folding, multilining? */
183
184 PERLVAR(Iregseen,       U32)            /* from regcomp.c */
185 PERLVAR(Iseen_zerolen,  I32)            /* from regcomp.c */
186 PERLVAR(Iregcomp_rx,    regexp *)       /* from regcomp.c */
187 PERLVAR(Iextralen,      I32)            /* from regcomp.c */
188 /* #ifdef DEBUGGING -- keep the structure the same with/without DEBUGGING defined */
189 PERLVAR(Icolorset,      int)            /* from regcomp.c */
190 PERLVAR(Icolors[4],     char *)         /* from regcomp.c */
191 /* #endif */
192
193 PERLVAR(Ireginput,      char *)         /* String-input pointer. */
194 PERLVAR(Iregbol,        char *)         /* Beginning of input, for ^ check. */
195 PERLVAR(Iregeol,        char *)         /* End of input, for $ check. */
196 PERLVAR(Iregstartp,     char **)        /* Pointer to startp array. */
197 PERLVAR(Iregendp,       char **)        /* Ditto for endp. */
198 PERLVAR(Ireglastparen,  U32 *)          /* Similarly for lastparen. */
199 PERLVAR(Iregtill,       char *)         /* How far we are required to go. */
200 PERLVAR(Iregprev,       char)           /* char before regbol, \n if none */
201
202 PERLVAR(Ireg_start_tmp, char **)        /* from regexec.c */
203 PERLVAR(Ireg_start_tmpl,U32)            /* from regexec.c */
204 PERLVAR(Iregdata,       struct reg_data *) /* from regexec.c renamed was data */
205 PERLVAR(Ibostr,         char *)         /* from regexec.c */
206 PERLVAR(Ireg_flags,     U32)            /* from regexec.c */
207 PERLVAR(Ireg_eval_set,  I32)            /* from regexec.c */
208
209 /* #ifdef DEBUGGING -- keep the structure the same with/without DEBUGGING defined */
210 PERLVAR(Iregnarrate,    I32)            /* from regexec.c */
211 PERLVAR(Iregprogram,    regnode *)      /* from regexec.c */
212 PERLVARI(Iregindent,    int,        0)  /* from regexec.c */
213 /* #endif */
214
215 PERLVAR(Iregcc,         CURCUR *)       /* from regexec.c */
216 PERLVARI(Iin_clean_objs,bool,       FALSE)  /* from sv.c */
217 PERLVARI(Iin_clean_all, bool,       FALSE)  /* from sv.c */
218
219 PERLVAR(Ilinestart,     char *)         /* beg. of most recently read line */
220 PERLVAR(Ipending_ident, char)           /* pending identifier lookup */
221 PERLVAR(Isublex_info,   SUBLEXINFO)     /* from toke.c */
222
223 #ifdef USE_THREADS
224 PERLVAR(Ithrsv,         SV *)           /* holds struct perl_thread for main thread */
225 PERLVARI(Ithreadnum,    U32,    0)      /* incremented each thread creation */
226 #endif /* USE_THREADS */
227
228 #ifdef PERL_OBJECT
229 PERLVARI(piMem,         IPerlMem*,  NULL)
230 PERLVARI(piENV,         IPerlEnv*,  NULL)
231 PERLVARI(piStdIO,       IPerlStdIO*, NULL)
232 PERLVARI(piLIO,         IPerlLIO*,  NULL)
233 PERLVARI(piDir,         IPerlDir*,  NULL)
234 PERLVARI(piSock,        IPerlSock*, NULL)
235 PERLVARI(piProc,        IPerlProc*, NULL)
236 #endif