1 |
root |
1.1 |
/***********************************************/ |
2 |
|
|
/* Global only to current interpreter instance */ |
3 |
|
|
/***********************************************/ |
4 |
|
|
|
5 |
|
|
/* Don't forget to re-run embed.pl to propagate changes! */ |
6 |
|
|
|
7 |
|
|
/* New variables must be added to the very end for binary compatibility. |
8 |
|
|
* XSUB.h provides wrapper functions via perlapi.h that make this |
9 |
|
|
* irrelevant, but not all code may be expected to #include XSUB.h. */ |
10 |
|
|
|
11 |
|
|
/* Don't forget to add your variable also to perl_clone()! */ |
12 |
|
|
|
13 |
|
|
/* The 'I' prefix is only needed for vars that need appropriate #defines |
14 |
|
|
* generated when built with or without MULTIPLICITY. It is also used |
15 |
|
|
* to generate the appropriate export list for win32. |
16 |
|
|
* |
17 |
|
|
* When building without MULTIPLICITY, these variables will be truly global. */ |
18 |
|
|
|
19 |
|
|
/* pseudo environmental stuff */ |
20 |
|
|
PERLVAR(Iorigargc, int) |
21 |
|
|
PERLVAR(Iorigargv, char **) |
22 |
|
|
PERLVAR(Ienvgv, GV *) |
23 |
|
|
PERLVAR(Iincgv, GV *) |
24 |
|
|
PERLVAR(Ihintgv, GV *) |
25 |
|
|
PERLVAR(Iorigfilename, char *) |
26 |
|
|
PERLVAR(Idiehook, SV *) |
27 |
|
|
PERLVAR(Iwarnhook, SV *) |
28 |
|
|
|
29 |
|
|
/* switches */ |
30 |
|
|
PERLVAR(Iminus_c, bool) |
31 |
|
|
PERLVAR(Ipatchlevel, SV *) |
32 |
|
|
PERLVAR(Ilocalpatches, char **) |
33 |
|
|
PERLVARI(Isplitstr, char *, " ") |
34 |
|
|
PERLVAR(Ipreprocess, bool) |
35 |
|
|
PERLVAR(Iminus_n, bool) |
36 |
|
|
PERLVAR(Iminus_p, bool) |
37 |
|
|
PERLVAR(Iminus_l, bool) |
38 |
|
|
PERLVAR(Iminus_a, bool) |
39 |
|
|
PERLVAR(Iminus_F, bool) |
40 |
|
|
PERLVAR(Idoswitches, bool) |
41 |
|
|
|
42 |
|
|
/* |
43 |
|
|
=head1 Global Variables |
44 |
|
|
|
45 |
|
|
=for apidoc mn|bool|PL_dowarn |
46 |
|
|
|
47 |
|
|
The C variable which corresponds to Perl's $^W warning variable. |
48 |
|
|
|
49 |
|
|
=cut |
50 |
|
|
*/ |
51 |
|
|
|
52 |
|
|
PERLVAR(Idowarn, U8) |
53 |
|
|
PERLVAR(Iwidesyscalls, bool) /* unused since 5.8.1 */ |
54 |
|
|
PERLVAR(Idoextract, bool) |
55 |
|
|
PERLVAR(Isawampersand, bool) /* must save all match strings */ |
56 |
|
|
PERLVAR(Iunsafe, bool) |
57 |
|
|
PERLVAR(Iinplace, char *) |
58 |
|
|
PERLVAR(Ie_script, SV *) |
59 |
|
|
PERLVAR(Iperldb, U32) |
60 |
|
|
|
61 |
|
|
/* This value may be set when embedding for full cleanup */ |
62 |
|
|
/* 0=none, 1=full, 2=full with checks */ |
63 |
|
|
PERLVARI(Iperl_destruct_level, int, 0) |
64 |
|
|
|
65 |
|
|
/* magical thingies */ |
66 |
|
|
PERLVAR(Ibasetime, Time_t) /* $^T */ |
67 |
|
|
PERLVAR(Iformfeed, SV *) /* $^L */ |
68 |
|
|
|
69 |
|
|
|
70 |
|
|
PERLVARI(Imaxsysfd, I32, MAXSYSFD) |
71 |
|
|
/* top fd to pass to subprocesses */ |
72 |
|
|
PERLVAR(Imultiline, int) /* $*--do strings hold >1 line? */ |
73 |
|
|
PERLVAR(Istatusvalue, I32) /* $? */ |
74 |
|
|
PERLVAR(Iexit_flags, U8) /* was exit() unexpected, etc. */ |
75 |
|
|
#ifdef VMS |
76 |
|
|
PERLVAR(Istatusvalue_vms,U32) |
77 |
|
|
#endif |
78 |
|
|
|
79 |
|
|
/* shortcuts to various I/O objects */ |
80 |
|
|
PERLVAR(Istdingv, GV *) |
81 |
|
|
PERLVAR(Istderrgv, GV *) |
82 |
|
|
PERLVAR(Idefgv, GV *) |
83 |
|
|
PERLVAR(Iargvgv, GV *) |
84 |
|
|
PERLVAR(Iargvoutgv, GV *) |
85 |
|
|
PERLVAR(Iargvout_stack, AV *) |
86 |
|
|
|
87 |
|
|
/* shortcuts to regexp stuff */ |
88 |
|
|
/* this one needs to be moved to thrdvar.h and accessed via |
89 |
|
|
* find_threadsv() when USE_5005THREADS */ |
90 |
|
|
PERLVAR(Ireplgv, GV *) |
91 |
|
|
|
92 |
|
|
/* shortcuts to misc objects */ |
93 |
|
|
PERLVAR(Ierrgv, GV *) |
94 |
|
|
|
95 |
|
|
/* shortcuts to debugging objects */ |
96 |
|
|
PERLVAR(IDBgv, GV *) |
97 |
|
|
PERLVAR(IDBline, GV *) |
98 |
|
|
|
99 |
|
|
/* |
100 |
|
|
=for apidoc mn|GV *|PL_DBsub |
101 |
|
|
When Perl is run in debugging mode, with the B<-d> switch, this GV contains |
102 |
|
|
the SV which holds the name of the sub being debugged. This is the C |
103 |
|
|
variable which corresponds to Perl's $DB::sub variable. See |
104 |
|
|
C<PL_DBsingle>. |
105 |
|
|
|
106 |
|
|
=for apidoc mn|SV *|PL_DBsingle |
107 |
|
|
When Perl is run in debugging mode, with the B<-d> switch, this SV is a |
108 |
|
|
boolean which indicates whether subs are being single-stepped. |
109 |
|
|
Single-stepping is automatically turned on after every step. This is the C |
110 |
|
|
variable which corresponds to Perl's $DB::single variable. See |
111 |
|
|
C<PL_DBsub>. |
112 |
|
|
|
113 |
|
|
=for apidoc mn|SV *|PL_DBtrace |
114 |
|
|
Trace variable used when Perl is run in debugging mode, with the B<-d> |
115 |
|
|
switch. This is the C variable which corresponds to Perl's $DB::trace |
116 |
|
|
variable. See C<PL_DBsingle>. |
117 |
|
|
|
118 |
|
|
=cut |
119 |
|
|
*/ |
120 |
|
|
|
121 |
|
|
PERLVAR(IDBsub, GV *) |
122 |
|
|
PERLVAR(IDBsingle, SV *) |
123 |
|
|
PERLVAR(IDBtrace, SV *) |
124 |
|
|
PERLVAR(IDBsignal, SV *) |
125 |
|
|
PERLVAR(Ilineary, AV *) /* lines of script for debugger */ |
126 |
|
|
PERLVAR(Idbargs, AV *) /* args to call listed by caller function */ |
127 |
|
|
|
128 |
|
|
/* symbol tables */ |
129 |
|
|
PERLVAR(Idebstash, HV *) /* symbol table for perldb package */ |
130 |
|
|
PERLVAR(Iglobalstash, HV *) /* global keyword overrides imported here */ |
131 |
|
|
PERLVAR(Icurstname, SV *) /* name of current package */ |
132 |
|
|
PERLVAR(Ibeginav, AV *) /* names of BEGIN subroutines */ |
133 |
|
|
PERLVAR(Iendav, AV *) /* names of END subroutines */ |
134 |
|
|
PERLVAR(Icheckav, AV *) /* names of CHECK subroutines */ |
135 |
|
|
PERLVAR(Iinitav, AV *) /* names of INIT subroutines */ |
136 |
|
|
PERLVAR(Istrtab, HV *) /* shared string table */ |
137 |
|
|
PERLVARI(Isub_generation,U32,1) /* incr to invalidate method cache */ |
138 |
|
|
|
139 |
|
|
/* memory management */ |
140 |
|
|
PERLVAR(Isv_count, I32) /* how many SV* are currently allocated */ |
141 |
|
|
PERLVAR(Isv_objcount, I32) /* how many objects are currently allocated */ |
142 |
|
|
PERLVAR(Isv_root, SV*) /* storage for SVs belonging to interp */ |
143 |
|
|
PERLVAR(Isv_arenaroot, SV*) /* list of areas for garbage collection */ |
144 |
|
|
|
145 |
|
|
/* funky return mechanisms */ |
146 |
|
|
PERLVAR(Iforkprocess, int) /* so do_open |- can return proc# */ |
147 |
|
|
|
148 |
|
|
/* subprocess state */ |
149 |
|
|
PERLVAR(Ifdpid, AV *) /* keep fd-to-pid mappings for my_popen */ |
150 |
|
|
|
151 |
|
|
/* internal state */ |
152 |
|
|
PERLVAR(Itainting, bool) /* doing taint checks */ |
153 |
|
|
PERLVARI(Iop_mask, char *, NULL) /* masked operations for safe evals */ |
154 |
|
|
|
155 |
|
|
/* current interpreter roots */ |
156 |
|
|
PERLVAR(Imain_cv, CV *) |
157 |
|
|
PERLVAR(Imain_root, OP *) |
158 |
|
|
PERLVAR(Imain_start, OP *) |
159 |
|
|
PERLVAR(Ieval_root, OP *) |
160 |
|
|
PERLVAR(Ieval_start, OP *) |
161 |
|
|
|
162 |
|
|
/* runtime control stuff */ |
163 |
|
|
PERLVARI(Icurcopdb, COP *, NULL) |
164 |
|
|
PERLVARI(Icopline, line_t, NOLINE) |
165 |
|
|
|
166 |
|
|
/* statics moved here for shared library purposes */ |
167 |
|
|
PERLVAR(Ifilemode, int) /* so nextargv() can preserve mode */ |
168 |
|
|
PERLVAR(Ilastfd, int) /* what to preserve mode on */ |
169 |
|
|
PERLVAR(Ioldname, char *) /* what to preserve mode on */ |
170 |
|
|
PERLVAR(IArgv, char **) /* stuff to free from do_aexec, vfork safe */ |
171 |
|
|
PERLVAR(ICmd, char *) /* stuff to free from do_aexec, vfork safe */ |
172 |
|
|
PERLVARI(Igensym, I32, 0) /* next symbol for getsym() to define */ |
173 |
|
|
PERLVAR(Ipreambled, bool) |
174 |
|
|
PERLVAR(Ipreambleav, AV *) |
175 |
|
|
PERLVARI(Ilaststatval, int, -1) |
176 |
|
|
PERLVARI(Ilaststype, I32, OP_STAT) |
177 |
|
|
PERLVAR(Imess_sv, SV *) |
178 |
|
|
|
179 |
|
|
/* XXX shouldn't these be per-thread? --GSAR */ |
180 |
|
|
PERLVAR(Iors_sv, SV *) /* output record separator $\ */ |
181 |
|
|
PERLVAR(Iofmt, char *) /* output format for numbers $# */ |
182 |
|
|
|
183 |
|
|
/* interpreter atexit processing */ |
184 |
|
|
PERLVARI(Iexitlist, PerlExitListEntry *, NULL) |
185 |
|
|
/* list of exit functions */ |
186 |
|
|
PERLVARI(Iexitlistlen, I32, 0) /* length of same */ |
187 |
|
|
|
188 |
|
|
/* |
189 |
|
|
=for apidoc Amn|HV*|PL_modglobal |
190 |
|
|
|
191 |
|
|
C<PL_modglobal> is a general purpose, interpreter global HV for use by |
192 |
|
|
extensions that need to keep information on a per-interpreter basis. |
193 |
|
|
In a pinch, it can also be used as a symbol table for extensions |
194 |
|
|
to share data among each other. It is a good idea to use keys |
195 |
|
|
prefixed by the package name of the extension that owns the data. |
196 |
|
|
|
197 |
|
|
=cut |
198 |
|
|
*/ |
199 |
|
|
|
200 |
|
|
PERLVAR(Imodglobal, HV *) /* per-interp module data */ |
201 |
|
|
|
202 |
|
|
/* these used to be in global before 5.004_68 */ |
203 |
|
|
PERLVARI(Iprofiledata, U32 *, NULL) /* table of ops, counts */ |
204 |
|
|
PERLVARI(Irsfp, PerlIO * VOL, Nullfp) /* current source file pointer */ |
205 |
|
|
PERLVARI(Irsfp_filters, AV *, Nullav) /* keeps active source filters */ |
206 |
|
|
|
207 |
|
|
PERLVAR(Icompiling, COP) /* compiling/done executing marker */ |
208 |
|
|
|
209 |
|
|
PERLVAR(Icompcv, CV *) /* currently compiling subroutine */ |
210 |
|
|
PERLVAR(IBINCOMPAT0, AV *) /* filler for binary compatibility */ |
211 |
|
|
PERLVAR(Icomppad_name, AV *) /* variable names for "my" variables */ |
212 |
|
|
PERLVAR(Icomppad_name_fill, I32) /* last "introduced" variable offset */ |
213 |
|
|
PERLVAR(Icomppad_name_floor, I32) /* start of vars in innermost block */ |
214 |
|
|
|
215 |
|
|
#ifdef HAVE_INTERP_INTERN |
216 |
|
|
PERLVAR(Isys_intern, struct interp_intern) |
217 |
|
|
/* platform internals */ |
218 |
|
|
#endif |
219 |
|
|
|
220 |
|
|
/* more statics moved here */ |
221 |
|
|
PERLVARI(Igeneration, int, 100) /* from op.c */ |
222 |
|
|
PERLVAR(IDBcv, CV *) /* from perl.c */ |
223 |
|
|
|
224 |
|
|
PERLVARI(Iin_clean_objs,bool, FALSE) /* from sv.c */ |
225 |
|
|
PERLVARI(Iin_clean_all, bool, FALSE) /* from sv.c */ |
226 |
|
|
|
227 |
|
|
PERLVAR(Ilinestart, char *) /* beg. of most recently read line */ |
228 |
|
|
PERLVAR(Ipending_ident, char) /* pending identifier lookup */ |
229 |
|
|
PERLVAR(Isublex_info, SUBLEXINFO) /* from toke.c */ |
230 |
|
|
|
231 |
|
|
#ifdef USE_5005THREADS |
232 |
|
|
PERLVAR(Ithrsv, SV *) /* struct perl_thread for main thread */ |
233 |
|
|
PERLVARI(Ithreadnum, U32, 0) /* incremented each thread creation */ |
234 |
|
|
PERLVAR(Istrtab_mutex, perl_mutex) /* Mutex for string table access */ |
235 |
|
|
#endif /* USE_5005THREADS */ |
236 |
|
|
|
237 |
|
|
PERLVAR(Iuid, Uid_t) /* current real user id */ |
238 |
|
|
PERLVAR(Ieuid, Uid_t) /* current effective user id */ |
239 |
|
|
PERLVAR(Igid, Gid_t) /* current real group id */ |
240 |
|
|
PERLVAR(Iegid, Gid_t) /* current effective group id */ |
241 |
|
|
PERLVAR(Inomemok, bool) /* let malloc context handle nomem */ |
242 |
|
|
PERLVARI(Ian, U32, 0) /* malloc sequence number */ |
243 |
|
|
PERLVARI(Icop_seqmax, U32, 0) /* statement sequence number */ |
244 |
|
|
PERLVARI(Iop_seqmax, U16, 0) /* op sequence number */ |
245 |
|
|
PERLVARI(Ievalseq, U32, 0) /* eval sequence number */ |
246 |
|
|
PERLVAR(Iorigenviron, char **) |
247 |
|
|
PERLVAR(Iorigalen, U32) |
248 |
|
|
PERLVAR(Ipidstatus, HV *) /* pid-to-status mappings for waitpid */ |
249 |
|
|
PERLVARI(Imaxo, int, MAXO) /* maximum number of ops */ |
250 |
|
|
PERLVAR(Iosname, char *) /* operating system */ |
251 |
|
|
|
252 |
|
|
/* For binary compatibility with older versions only */ |
253 |
|
|
PERLVARI(Ish_path_compat, char *, SH_PATH)/* full path of shell */ |
254 |
|
|
|
255 |
|
|
PERLVAR(Isighandlerp, Sighandler_t) |
256 |
|
|
|
257 |
|
|
PERLVAR(Ixiv_arenaroot, XPV*) /* list of allocated xiv areas */ |
258 |
|
|
PERLVAR(Ixiv_root, IV *) /* free xiv list */ |
259 |
|
|
PERLVAR(Ixnv_root, NV *) /* free xnv list */ |
260 |
|
|
PERLVAR(Ixrv_root, XRV *) /* free xrv list */ |
261 |
|
|
PERLVAR(Ixpv_root, XPV *) /* free xpv list */ |
262 |
|
|
PERLVAR(Ixpviv_root, XPVIV *) /* free xpviv list */ |
263 |
|
|
PERLVAR(Ixpvnv_root, XPVNV *) /* free xpvnv list */ |
264 |
|
|
PERLVAR(Ixpvcv_root, XPVCV *) /* free xpvcv list */ |
265 |
|
|
PERLVAR(Ixpvav_root, XPVAV *) /* free xpvav list */ |
266 |
|
|
PERLVAR(Ixpvhv_root, XPVHV *) /* free xpvhv list */ |
267 |
|
|
PERLVAR(Ixpvmg_root, XPVMG *) /* free xpvmg list */ |
268 |
|
|
PERLVAR(Ixpvlv_root, XPVLV *) /* free xpvlv list */ |
269 |
|
|
PERLVAR(Ixpvbm_root, XPVBM *) /* free xpvbm list */ |
270 |
|
|
PERLVAR(Ihe_root, HE *) /* free he list */ |
271 |
|
|
PERLVAR(Inice_chunk, char *) /* a nice chunk of memory to reuse */ |
272 |
|
|
PERLVAR(Inice_chunk_size, U32) /* how nice the chunk of memory is */ |
273 |
|
|
|
274 |
|
|
PERLVARI(Irunops, runops_proc_t, MEMBER_TO_FPTR(RUNOPS_DEFAULT)) |
275 |
|
|
|
276 |
|
|
PERLVARA(Itokenbuf,256, char) |
277 |
|
|
|
278 |
|
|
/* |
279 |
|
|
=for apidoc Amn|SV|PL_sv_undef |
280 |
|
|
This is the C<undef> SV. Always refer to this as C<&PL_sv_undef>. |
281 |
|
|
|
282 |
|
|
=for apidoc Amn|SV|PL_sv_no |
283 |
|
|
This is the C<false> SV. See C<PL_sv_yes>. Always refer to this as |
284 |
|
|
C<&PL_sv_no>. |
285 |
|
|
|
286 |
|
|
=for apidoc Amn|SV|PL_sv_yes |
287 |
|
|
This is the C<true> SV. See C<PL_sv_no>. Always refer to this as |
288 |
|
|
C<&PL_sv_yes>. |
289 |
|
|
|
290 |
|
|
=cut |
291 |
|
|
*/ |
292 |
|
|
|
293 |
|
|
PERLVAR(Isv_undef, SV) |
294 |
|
|
PERLVAR(Isv_no, SV) |
295 |
|
|
PERLVAR(Isv_yes, SV) |
296 |
|
|
|
297 |
|
|
#ifdef CSH |
298 |
|
|
PERLVARI(Icshname, char *, CSH) |
299 |
|
|
PERLVARI(Icshlen, I32, 0) |
300 |
|
|
#endif |
301 |
|
|
|
302 |
|
|
PERLVAR(Ilex_state, U32) /* next token is determined */ |
303 |
|
|
PERLVAR(Ilex_defer, U32) /* state after determined token */ |
304 |
|
|
PERLVAR(Ilex_expect, int) /* expect after determined token */ |
305 |
|
|
PERLVAR(Ilex_brackets, I32) /* bracket count */ |
306 |
|
|
PERLVAR(Ilex_formbrack, I32) /* bracket count at outer format level */ |
307 |
|
|
PERLVAR(Ilex_casemods, I32) /* casemod count */ |
308 |
|
|
PERLVAR(Ilex_dojoin, I32) /* doing an array interpolation */ |
309 |
|
|
PERLVAR(Ilex_starts, I32) /* how many interps done on level */ |
310 |
|
|
PERLVAR(Ilex_stuff, SV *) /* runtime pattern from m// or s/// */ |
311 |
|
|
PERLVAR(Ilex_repl, SV *) /* runtime replacement from s/// */ |
312 |
|
|
PERLVAR(Ilex_op, OP *) /* extra info to pass back on op */ |
313 |
|
|
PERLVAR(Ilex_inpat, OP *) /* in pattern $) and $| are special */ |
314 |
|
|
PERLVAR(Ilex_inwhat, I32) /* what kind of quoting are we in */ |
315 |
|
|
PERLVAR(Ilex_brackstack,char *) /* what kind of brackets to pop */ |
316 |
|
|
PERLVAR(Ilex_casestack, char *) /* what kind of case mods in effect */ |
317 |
|
|
|
318 |
|
|
/* What we know when we're in LEX_KNOWNEXT state. */ |
319 |
|
|
PERLVARA(Inextval,5, YYSTYPE) /* value of next token, if any */ |
320 |
|
|
PERLVARA(Inexttype,5, I32) /* type of next token */ |
321 |
|
|
PERLVAR(Inexttoke, I32) |
322 |
|
|
|
323 |
|
|
PERLVAR(Ilinestr, SV *) |
324 |
|
|
PERLVAR(Ibufptr, char *) |
325 |
|
|
PERLVAR(Ioldbufptr, char *) |
326 |
|
|
PERLVAR(Ioldoldbufptr, char *) |
327 |
|
|
PERLVAR(Ibufend, char *) |
328 |
|
|
PERLVARI(Iexpect,int, XSTATE) /* how to interpret ambiguous tokens */ |
329 |
|
|
|
330 |
|
|
PERLVAR(Imulti_start, I32) /* 1st line of multi-line string */ |
331 |
|
|
PERLVAR(Imulti_end, I32) /* last line of multi-line string */ |
332 |
|
|
PERLVAR(Imulti_open, I32) /* delimiter of said string */ |
333 |
|
|
PERLVAR(Imulti_close, I32) /* delimiter of said string */ |
334 |
|
|
|
335 |
|
|
PERLVAR(Ierror_count, I32) /* how many errors so far, max 10 */ |
336 |
|
|
PERLVAR(Isubline, I32) /* line this subroutine began on */ |
337 |
|
|
PERLVAR(Isubname, SV *) /* name of current subroutine */ |
338 |
|
|
|
339 |
|
|
PERLVAR(Imin_intro_pending, I32) /* start of vars to introduce */ |
340 |
|
|
PERLVAR(Imax_intro_pending, I32) /* end of vars to introduce */ |
341 |
|
|
PERLVAR(Ipadix, I32) /* max used index in current "register" pad */ |
342 |
|
|
PERLVAR(Ipadix_floor, I32) /* how low may inner block reset padix */ |
343 |
|
|
PERLVAR(Ipad_reset_pending, I32) /* reset pad on next attempted alloc */ |
344 |
|
|
|
345 |
|
|
PERLVAR(Ilast_uni, char *) /* position of last named-unary op */ |
346 |
|
|
PERLVAR(Ilast_lop, char *) /* position of last list operator */ |
347 |
|
|
PERLVAR(Ilast_lop_op, OPCODE) /* last list operator */ |
348 |
|
|
PERLVAR(Iin_my, I32) /* we're compiling a "my" (or "our") declaration */ |
349 |
|
|
PERLVAR(Iin_my_stash, HV *) /* declared class of this "my" declaration */ |
350 |
|
|
#ifdef FCRYPT |
351 |
|
|
PERLVARI(Icryptseen, bool, FALSE) /* has fast crypt() been initialized? */ |
352 |
|
|
#endif |
353 |
|
|
|
354 |
|
|
PERLVAR(Ihints, U32) /* pragma-tic compile-time flags */ |
355 |
|
|
|
356 |
|
|
PERLVAR(Idebug, VOL U32) /* flags given to -D switch */ |
357 |
|
|
|
358 |
|
|
PERLVARI(Iamagic_generation, long, 0) |
359 |
|
|
|
360 |
|
|
#ifdef USE_LOCALE_COLLATE |
361 |
|
|
PERLVARI(Icollation_ix, U32, 0) /* Collation generation index */ |
362 |
|
|
PERLVAR(Icollation_name,char *) /* Name of current collation */ |
363 |
|
|
PERLVARI(Icollation_standard, bool, TRUE) |
364 |
|
|
/* Assume simple collation */ |
365 |
|
|
PERLVAR(Icollxfrm_base, Size_t) /* Basic overhead in *xfrm() */ |
366 |
|
|
PERLVARI(Icollxfrm_mult,Size_t, 2) /* Expansion factor in *xfrm() */ |
367 |
|
|
#endif /* USE_LOCALE_COLLATE */ |
368 |
|
|
|
369 |
|
|
#ifdef USE_LOCALE_NUMERIC |
370 |
|
|
|
371 |
|
|
PERLVAR(Inumeric_name, char *) /* Name of current numeric locale */ |
372 |
|
|
PERLVARI(Inumeric_standard, bool, TRUE) |
373 |
|
|
/* Assume simple numerics */ |
374 |
|
|
PERLVARI(Inumeric_local, bool, TRUE) |
375 |
|
|
/* Assume local numerics */ |
376 |
|
|
|
377 |
|
|
PERLVAR(Inumeric_compat1, char) |
378 |
|
|
/* Used to be numeric_radix */ |
379 |
|
|
#endif /* !USE_LOCALE_NUMERIC */ |
380 |
|
|
|
381 |
|
|
/* utf8 character classes */ |
382 |
|
|
PERLVAR(Iutf8_alnum, SV *) |
383 |
|
|
PERLVAR(Iutf8_alnumc, SV *) |
384 |
|
|
PERLVAR(Iutf8_ascii, SV *) |
385 |
|
|
PERLVAR(Iutf8_alpha, SV *) |
386 |
|
|
PERLVAR(Iutf8_space, SV *) |
387 |
|
|
PERLVAR(Iutf8_cntrl, SV *) |
388 |
|
|
PERLVAR(Iutf8_graph, SV *) |
389 |
|
|
PERLVAR(Iutf8_digit, SV *) |
390 |
|
|
PERLVAR(Iutf8_upper, SV *) |
391 |
|
|
PERLVAR(Iutf8_lower, SV *) |
392 |
|
|
PERLVAR(Iutf8_print, SV *) |
393 |
|
|
PERLVAR(Iutf8_punct, SV *) |
394 |
|
|
PERLVAR(Iutf8_xdigit, SV *) |
395 |
|
|
PERLVAR(Iutf8_mark, SV *) |
396 |
|
|
PERLVAR(Iutf8_toupper, SV *) |
397 |
|
|
PERLVAR(Iutf8_totitle, SV *) |
398 |
|
|
PERLVAR(Iutf8_tolower, SV *) |
399 |
|
|
PERLVAR(Iutf8_tofold, SV *) |
400 |
|
|
PERLVAR(Ilast_swash_hv, HV *) |
401 |
|
|
PERLVAR(Ilast_swash_klen, U32) |
402 |
|
|
PERLVARA(Ilast_swash_key,10, U8) |
403 |
|
|
PERLVAR(Ilast_swash_tmps, U8 *) |
404 |
|
|
PERLVAR(Ilast_swash_slen, STRLEN) |
405 |
|
|
|
406 |
|
|
/* perly.c globals */ |
407 |
|
|
PERLVAR(Iyydebug, int) |
408 |
|
|
PERLVAR(Iyynerrs, int) |
409 |
|
|
PERLVAR(Iyyerrflag, int) |
410 |
|
|
PERLVAR(Iyychar, int) |
411 |
|
|
PERLVAR(Iyyval, YYSTYPE) |
412 |
|
|
PERLVAR(Iyylval, YYSTYPE) |
413 |
|
|
|
414 |
|
|
PERLVARI(Iglob_index, int, 0) |
415 |
|
|
PERLVAR(Isrand_called, bool) |
416 |
|
|
PERLVARA(Iuudmap,256, char) |
417 |
|
|
PERLVAR(Ibitcount, char *) |
418 |
|
|
|
419 |
|
|
#ifdef USE_5005THREADS |
420 |
|
|
PERLVAR(Isv_mutex, perl_mutex) /* Mutex for allocating SVs in sv.c */ |
421 |
|
|
PERLVAR(Ieval_mutex, perl_mutex) /* Mutex for doeval */ |
422 |
|
|
PERLVAR(Ieval_cond, perl_cond) /* Condition variable for doeval */ |
423 |
|
|
PERLVAR(Ieval_owner, struct perl_thread *) |
424 |
|
|
/* Owner thread for doeval */ |
425 |
|
|
PERLVAR(Inthreads, int) /* Number of threads currently */ |
426 |
|
|
PERLVAR(Ithreads_mutex, perl_mutex) /* Mutex for nthreads and thread list */ |
427 |
|
|
PERLVAR(Inthreads_cond, perl_cond) /* Condition variable for nthreads */ |
428 |
|
|
PERLVAR(Isvref_mutex, perl_mutex) /* Mutex for SvREFCNT_{inc,dec} */ |
429 |
|
|
PERLVARI(Ithreadsv_names,char *, THREADSV_NAMES) |
430 |
|
|
#ifdef FAKE_THREADS |
431 |
|
|
PERLVAR(Icurthr, struct perl_thread *) |
432 |
|
|
/* Currently executing (fake) thread */ |
433 |
|
|
#endif |
434 |
|
|
|
435 |
|
|
PERLVAR(Icred_mutex, perl_mutex) /* altered credentials in effect */ |
436 |
|
|
|
437 |
|
|
#endif /* USE_5005THREADS */ |
438 |
|
|
|
439 |
|
|
PERLVAR(Ipsig_ptr, SV**) |
440 |
|
|
PERLVAR(Ipsig_name, SV**) |
441 |
|
|
|
442 |
|
|
#if defined(PERL_IMPLICIT_SYS) |
443 |
|
|
PERLVAR(IMem, struct IPerlMem*) |
444 |
|
|
PERLVAR(IMemShared, struct IPerlMem*) |
445 |
|
|
PERLVAR(IMemParse, struct IPerlMem*) |
446 |
|
|
PERLVAR(IEnv, struct IPerlEnv*) |
447 |
|
|
PERLVAR(IStdIO, struct IPerlStdIO*) |
448 |
|
|
PERLVAR(ILIO, struct IPerlLIO*) |
449 |
|
|
PERLVAR(IDir, struct IPerlDir*) |
450 |
|
|
PERLVAR(ISock, struct IPerlSock*) |
451 |
|
|
PERLVAR(IProc, struct IPerlProc*) |
452 |
|
|
#endif |
453 |
|
|
|
454 |
|
|
#if defined(USE_ITHREADS) |
455 |
|
|
PERLVAR(Iptr_table, PTR_TBL_t*) |
456 |
|
|
#endif |
457 |
|
|
PERLVARI(Ibeginav_save, AV*, Nullav) /* save BEGIN{}s when compiling */ |
458 |
|
|
|
459 |
|
|
#ifdef USE_5005THREADS |
460 |
|
|
PERLVAR(Ifdpid_mutex, perl_mutex) /* mutex for fdpid array */ |
461 |
|
|
PERLVAR(Isv_lock_mutex, perl_mutex) /* mutex for SvLOCK macro */ |
462 |
|
|
#endif |
463 |
|
|
|
464 |
|
|
PERLVAR(Inullstash, HV *) /* illegal symbols end up here */ |
465 |
|
|
|
466 |
|
|
PERLVAR(Ixnv_arenaroot, XPV*) /* list of allocated xnv areas */ |
467 |
|
|
PERLVAR(Ixrv_arenaroot, XPV*) /* list of allocated xrv areas */ |
468 |
|
|
PERLVAR(Ixpv_arenaroot, XPV*) /* list of allocated xpv areas */ |
469 |
|
|
PERLVAR(Ixpviv_arenaroot,XPVIV*) /* list of allocated xpviv areas */ |
470 |
|
|
PERLVAR(Ixpvnv_arenaroot,XPVNV*) /* list of allocated xpvnv areas */ |
471 |
|
|
PERLVAR(Ixpvcv_arenaroot,XPVCV*) /* list of allocated xpvcv areas */ |
472 |
|
|
PERLVAR(Ixpvav_arenaroot,XPVAV*) /* list of allocated xpvav areas */ |
473 |
|
|
PERLVAR(Ixpvhv_arenaroot,XPVHV*) /* list of allocated xpvhv areas */ |
474 |
|
|
PERLVAR(Ixpvmg_arenaroot,XPVMG*) /* list of allocated xpvmg areas */ |
475 |
|
|
PERLVAR(Ixpvlv_arenaroot,XPVLV*) /* list of allocated xpvlv areas */ |
476 |
|
|
PERLVAR(Ixpvbm_arenaroot,XPVBM*) /* list of allocated xpvbm areas */ |
477 |
|
|
PERLVAR(Ihe_arenaroot, XPV*) /* list of allocated he areas */ |
478 |
|
|
|
479 |
|
|
/* 5.6.0 stopped here */ |
480 |
|
|
|
481 |
|
|
PERLVAR(Ipsig_pend, int *) /* per-signal "count" of pending */ |
482 |
|
|
PERLVARI(Isig_pending, int,0) /* Number if highest signal pending */ |
483 |
|
|
|
484 |
|
|
#ifdef USE_LOCALE_NUMERIC |
485 |
|
|
|
486 |
|
|
PERLVAR(Inumeric_radix_sv, SV *) /* The radix separator if not '.' */ |
487 |
|
|
|
488 |
|
|
#endif |
489 |
|
|
|
490 |
|
|
#if defined(USE_ITHREADS) |
491 |
|
|
PERLVAR(Iregex_pad, SV**) /* All regex objects */ |
492 |
|
|
PERLVAR(Iregex_padav, AV*) /* All regex objects */ |
493 |
|
|
|
494 |
|
|
#endif |
495 |
|
|
|
496 |
|
|
#ifdef USE_REENTRANT_API |
497 |
|
|
PERLVAR(Ireentrant_buffer, REENTR*) /* here we store the _r buffers */ |
498 |
|
|
#endif |
499 |
|
|
|
500 |
|
|
PERLVARI(Isavebegin, bool, FALSE) /* save BEGINs for compiler */ |
501 |
|
|
|
502 |
|
|
PERLVAR(Icustom_op_names, HV*) /* Names of user defined ops */ |
503 |
|
|
PERLVAR(Icustom_op_descs, HV*) /* Descriptions of user defined ops */ |
504 |
|
|
|
505 |
|
|
#ifdef PERLIO_LAYERS |
506 |
|
|
PERLVARI(Iperlio, PerlIO *,NULL) |
507 |
|
|
PERLVARI(Iknown_layers, PerlIO_list_t *,NULL) |
508 |
|
|
PERLVARI(Idef_layerlist, PerlIO_list_t *,NULL) |
509 |
|
|
#endif |
510 |
|
|
|
511 |
|
|
PERLVARI(Iencoding, SV*, Nullsv) /* character encoding */ |
512 |
|
|
|
513 |
|
|
PERLVAR(Idebug_pad, struct perl_debug_pad) /* always needed because of the re extension */ |
514 |
|
|
|
515 |
|
|
PERLVAR(Itaint_warn, bool) /* taint warns instead of dying */ |
516 |
|
|
|
517 |
|
|
#ifdef PL_OP_SLAB_ALLOC |
518 |
|
|
PERLVAR(IOpPtr,I32 **) |
519 |
|
|
PERLVARI(IOpSpace,I32,0) |
520 |
|
|
PERLVAR(IOpSlab,I32 *) |
521 |
|
|
#endif |
522 |
|
|
|
523 |
|
|
PERLVAR(Iutf8locale, bool) /* utf8 locale detected */ |
524 |
|
|
|
525 |
|
|
PERLVAR(Iutf8_idstart, SV *) |
526 |
|
|
PERLVAR(Iutf8_idcont, SV *) |
527 |
|
|
|
528 |
|
|
PERLVAR(Isort_RealCmp, SVCOMPARE_t) |
529 |
|
|
|
530 |
|
|
PERLVARI(Icheckav_save, AV*, Nullav) /* save CHECK{}s when compiling */ |
531 |
|
|
|
532 |
|
|
PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */ |
533 |
|
|
|
534 |
|
|
PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */ |
535 |
|
|
|
536 |
|
|
PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */ |
537 |
|
|
|
538 |
|
|
PERLVAR(Isignals, U32) /* Using which pre-5.8 signals */ |
539 |
|
|
|
540 |
|
|
PERLVAR(Istashcache, HV *) /* Cache to speed up S_method_common */ |
541 |
|
|
|
542 |
|
|
PERLVAR(Ireentrant_retint, int) /* Integer return value from reentrant functions */ |
543 |
|
|
|
544 |
|
|
/* Hooks to shared SVs and locks. */ |
545 |
|
|
PERLVARI(Isharehook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing)) |
546 |
|
|
PERLVARI(Ilockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nolocking)) |
547 |
|
|
PERLVARI(Iunlockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nounlocking)) |
548 |
|
|
PERLVARI(Ithreadhook, thrhook_proc_t, MEMBER_TO_FPTR(Perl_nothreadhook)) |
549 |
|
|
|
550 |
|
|
/* Force inclusion of both runops options */ |
551 |
|
|
PERLVARI(Irunops_std, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_standard)) |
552 |
|
|
PERLVARI(Irunops_dbg, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_debug)) |
553 |
|
|
|
554 |
|
|
/* Stores the PPID */ |
555 |
|
|
#ifdef THREADS_HAVE_PIDS |
556 |
|
|
PERLVARI(Ippid, IV, 0) |
557 |
|
|
#endif |
558 |
|
|
|
559 |
|
|
PERLVARI(Ihash_seed, UV, 0) /* Hash initializer */ |
560 |
|
|
|
561 |
|
|
PERLVARI(Ihash_seed_set, bool, FALSE) /* Hash initialized? */ |
562 |
|
|
|
563 |
|
|
PERLVARI(Irehash_seed, UV, 0) /* 582 hash initializer */ |
564 |
|
|
|
565 |
|
|
PERLVARI(Irehash_seed_set, bool, FALSE) /* 582 hash initialized? */ |
566 |
|
|
|
567 |
|
|
/* These two variables are needed to preserve 5.8.x bincompat because we can't |
568 |
|
|
change function prototypes of two exported functions. Probably should be |
569 |
|
|
taken out of blead soon, and relevant prototypes changed. */ |
570 |
|
|
PERLVARI(Ifdscript, int, -1) /* fd for script */ |
571 |
|
|
PERLVARI(Isuidscript, int, -1) /* fd for suid script */ |
572 |
|
|
/* New variables must be added to the very end, before this comment, |
573 |
|
|
* for binary compatibility (the offsets of the old members must not change). |
574 |
|
|
* (Don't forget to add your variable also to perl_clone()!) |
575 |
|
|
* XSUB.h provides wrapper functions via perlapi.h that make this |
576 |
|
|
* irrelevant, but not all code may be expected to #include XSUB.h. |
577 |
|
|
*/ |
578 |
|
|
|
579 |
|
|
#if defined(USE_ITHREADS) |
580 |
|
|
PERLVAR(Ipte_root, struct ptr_tbl_ent *) /* free ptr_tbl_ent list */ |
581 |
|
|
PERLVAR(Ipte_arenaroot, XPV*) /* list of allocated pte areas */ |
582 |
|
|
#endif |