Skip to content
Newer
Older
100644 692 lines (524 sloc) 21.3 KB
907b3e2 delete thrdvar.h and move its contents to intrpvar.h
Dave Mitchell authored
1 /* intrpvar.h
2 *
3 * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
4 * 2006, 2007
5 * by Larry Wall and others
6 *
7 * You may distribute under the terms of either the GNU General Public
8 * License or the Artistic License, as specified in the README file.
9 *
10 */
11
12 /*
13 =head1 Per-Interpreter Variables
14 */
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
15
907b3e2 delete thrdvar.h and move its contents to intrpvar.h
Dave Mitchell authored
16 /* These variables are per-interpreter in threaded/multiplicity builds,
17 * global otherwise.
18
19 * Don't forget to re-run embed.pl to propagate changes! */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
20
6537fe7 @schwern -t taint warnings
schwern authored
21 /* New variables must be added to the very end for binary compatibility.
22 * XSUB.h provides wrapper functions via perlapi.h that make this
23 * irrelevant, but not all code may be expected to #include XSUB.h. */
24
02506ef @jhi Add reminders to intrpvar.h about perl_clone(), as suggested by Stas.
jhi authored
25 /* Don't forget to add your variable also to perl_clone()! */
26
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
27 /* The 'I' prefix is only needed for vars that need appropriate #defines
28 * generated when built with or without MULTIPLICITY. It is also used
29 * to generate the appropriate export list for win32.
30 *
907b3e2 delete thrdvar.h and move its contents to intrpvar.h
Dave Mitchell authored
31 * When building without MULTIPLICITY, these variables will be truly global.
32 *
33 * Important ones in the first cache line (if alignment is done right) */
34
35 PERLVAR(Istack_sp, SV **) /* top of the stack */
36 #ifdef OP_IN_REGISTER
37 PERLVAR(Iopsave, OP *)
38 #else
39 PERLVAR(Iop, OP *) /* currently executing op */
40 #endif
41 PERLVAR(Icurpad, SV **) /* active pad (lexicals+tmps) */
42
43 PERLVAR(Istack_base, SV **)
44 PERLVAR(Istack_max, SV **)
45
46 PERLVAR(Iscopestack, I32 *) /* scopes we've ENTERed */
47 PERLVAR(Iscopestack_ix, I32)
48 PERLVAR(Iscopestack_max,I32)
49
50 PERLVAR(Isavestack, ANY *) /* items that need to be restored when
51 LEAVEing scopes we've ENTERed */
52 PERLVAR(Isavestack_ix, I32)
53 PERLVAR(Isavestack_max, I32)
54
55 PERLVAR(Itmps_stack, SV **) /* mortals we've made */
56 PERLVARI(Itmps_ix, I32, -1)
57 PERLVARI(Itmps_floor, I32, -1)
58 PERLVAR(Itmps_max, I32)
59 PERLVAR(Imodcount, I32) /* how much mod()ification in
60 assignment? */
61
62 PERLVAR(Imarkstack, I32 *) /* stack_sp locations we're
63 remembering */
64 PERLVAR(Imarkstack_ptr, I32 *)
65 PERLVAR(Imarkstack_max, I32 *)
66
67 PERLVAR(ISv, SV *) /* used to hold temporary values */
68 PERLVAR(IXpv, XPV *) /* used to hold temporary values */
69
70 /*
71 =for apidoc Amn|STRLEN|PL_na
72
73 A convenience variable which is typically used with C<SvPV> when one
74 doesn't care about the length of the string. It is usually more efficient
75 to either declare a local variable and use that instead or to use the
76 C<SvPV_nolen> macro.
77
78 =cut
79 */
80
81 PERLVAR(Ina, STRLEN) /* for use in SvPV when length is
82 Not Applicable */
83
84 /* stat stuff */
85 PERLVAR(Istatbuf, Stat_t)
86 PERLVAR(Istatcache, Stat_t) /* _ */
87 PERLVAR(Istatgv, GV *)
88 PERLVARI(Istatname, SV *, NULL)
89
90 #ifdef HAS_TIMES
91 PERLVAR(Itimesbuf, struct tms)
92 #endif
93
94 /* Fields used by magic variables such as $@, $/ and so on */
95 PERLVAR(Icurpm, PMOP *) /* what to do \ interps in REs from */
96
97 /*
98 =for apidoc mn|SV*|PL_rs
99
100 The input record separator - C<$/> in Perl space.
101
102 =for apidoc mn|GV*|PL_last_in_gv
103
104 The GV which was last used for a filehandle input operation. (C<< <FH> >>)
105
106 =for apidoc mn|SV*|PL_ofs_sv
107
108 The output field separator - C<$,> in Perl space.
109
110 =cut
111 */
112
113 PERLVAR(Irs, SV *) /* input record separator $/ */
114 PERLVAR(Ilast_in_gv, GV *) /* GV used in last <FH> */
115 PERLVAR(Iofs_sv, SV *) /* output field separator $, */
116 PERLVAR(Idefoutgv, GV *) /* default FH for output */
117 PERLVARI(Ichopset, const char *, " \n-") /* $: */
118 PERLVAR(Iformtarget, SV *)
119 PERLVAR(Ibodytarget, SV *)
120 PERLVAR(Itoptarget, SV *)
121
122 /* Stashes */
123 PERLVAR(Idefstash, HV *) /* main symbol table */
124 PERLVAR(Icurstash, HV *) /* symbol table for current package */
125
126 PERLVAR(Irestartop, OP *) /* propagating an error from croak? */
127 PERLVAR(Icurcop, COP * VOL)
128 PERLVAR(Icurstack, AV *) /* THE STACK */
129 PERLVAR(Icurstackinfo, PERL_SI *) /* current stack + context */
130 PERLVAR(Imainstack, AV *) /* the stack when nothing funny is
131 happening */
132
133 PERLVAR(Itop_env, JMPENV *) /* ptr to current sigjmp environment */
134 PERLVAR(Istart_env, JMPENV) /* empty startup sigjmp environment */
135 PERLVARI(Ierrors, SV *, NULL) /* outstanding queued errors */
136
137 /* statics "owned" by various functions */
138 PERLVAR(Iav_fetch_sv, SV *) /* unused as of change #19268 */
139 PERLVAR(Ihv_fetch_sv, SV *) /* unused as of change #19268 */
140 PERLVAR(Ihv_fetch_ent_mh, HE*) /* owned by hv_fetch_ent() */
141
142
143 PERLVAR(Ilastgotoprobe, OP*) /* from pp_ctl.c */
144
145 /* sort stuff */
146 PERLVAR(Isortcop, OP *) /* user defined sort routine */
147 PERLVAR(Isortstash, HV *) /* which is in some package or other */
148 PERLVAR(Ifirstgv, GV *) /* $a */
149 PERLVAR(Isecondgv, GV *) /* $b */
150
151 /* float buffer */
152 PERLVAR(Iefloatbuf, char *)
153 PERLVAR(Iefloatsize, STRLEN)
154
155 /* regex stuff */
156
157 PERLVAR(Iscreamfirst, I32 *)
158 PERLVAR(Iscreamnext, I32 *)
159 PERLVAR(Ilastscream, SV *)
160
161 PERLVAR(Ireg_state, struct re_save_state)
162
163 PERLVAR(Iregdummy, regnode) /* from regcomp.c */
164
165 PERLVARI(Idumpindent, U16, 4) /* number of blanks per dump
166 indentation level */
167
168 /* Space for U16 here without increasing the structure size */
169
170 PERLVARA(Icolors,6, char *) /* from regcomp.c */
171
172 PERLVARI(Ipeepp, peep_t, MEMBER_TO_FPTR(Perl_peep))
173 /* Pointer to peephole optimizer */
174
175 PERLVARI(Imaxscream, I32, -1)
176 PERLVARI(Ireginterp_cnt,I32, 0) /* Whether "Regexp" was interpolated. */
177 PERLVARI(Iwatchaddr, char **, 0)
178 PERLVAR(Iwatchok, char *)
179
180 /* the currently active slab in a chain of slabs of regmatch states,
181 * and the currently active state within that slab */
182
183 PERLVARI(Iregmatch_slab, regmatch_slab *, NULL)
184 PERLVAR(Iregmatch_state, regmatch_state *)
185
186 PERLVARI(Idelayedisa, HV*, NULL) /* stash for PL_delaymagic for magic_setisa */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
187
907b3e2 delete thrdvar.h and move its contents to intrpvar.h
Dave Mitchell authored
188 /* Put anything new that is pointer aligned here. */
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
189
907b3e2 delete thrdvar.h and move its contents to intrpvar.h
Dave Mitchell authored
190 PERLVAR(Idelaymagic, U16) /* ($<,$>) = ... */
191 PERLVAR(Ilocalizing, U8) /* are we processing a local() list? */
192 PERLVAR(Icolorset, bool) /* from regcomp.c */
193 PERLVARI(Idirty, bool, FALSE) /* in the middle of tearing things
194 down? */
195 PERLVAR(Iin_eval, VOL U8) /* trap "fatal" errors? */
196 PERLVAR(Itainted, bool) /* using variables controlled by $< */
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
197
198 /* This value may be set when embedding for full cleanup */
199 /* 0=none, 1=full, 2=full with checks */
200 PERLVARI(Iperl_destruct_level, U8, 0)
201
202 PERLVAR(Iperldb, U32)
203
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
204 /* pseudo environmental stuff */
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
205 PERLVAR(Iorigargc, int)
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
206 PERLVAR(Iorigargv, char **)
207 PERLVAR(Ienvgv, GV *)
208 PERLVAR(Iincgv, GV *)
b3ac6de added patch for overloading constants, made PERL_OBJECT-aware
Ilya Zakharevich authored
209 PERLVAR(Ihintgv, GV *)
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
210 PERLVAR(Iorigfilename, char *)
211 PERLVAR(Idiehook, SV *)
212 PERLVAR(Iwarnhook, SV *)
1d7c184 integrate mainline changes
Gurusamy Sarathy authored
213
214 /* switches */
a7cb1f9 support for v5.5.640 style version numbers
Gurusamy Sarathy authored
215 PERLVAR(Ipatchlevel, SV *)
27da23d @jhi Symbian port of Perl
jhi authored
216 PERLVAR(Ilocalpatches, const char * const *)
dd37466 @petdance Consting five
petdance authored
217 PERLVARI(Isplitstr, const char *, " ")
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
218
219 PERLVAR(Iminus_c, bool)
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
220 PERLVAR(Ipreprocess, bool)
221 PERLVAR(Iminus_n, bool)
222 PERLVAR(Iminus_p, bool)
223 PERLVAR(Iminus_l, bool)
224 PERLVAR(Iminus_a, bool)
225 PERLVAR(Iminus_F, bool)
226 PERLVAR(Idoswitches, bool)
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
227
bc9b29d Feature bundle is now :5.10, and add -E switch
Robin Houston authored
228 PERLVAR(Iminus_E, bool)
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
229
230 /*
ccfc67b @jhi Missed the =head1 additions.
jhi authored
231
2eb25c9 @jhi Integrate changes #8608,8609,8610,8611,8612,8613 from maintperl.
jhi authored
232 =for apidoc mn|bool|PL_dowarn
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
233
234 The C variable which corresponds to Perl's $^W warning variable.
235
236 =cut
237 */
238
d41ff1b introduce $^U, a global bit to indicate whether system
Gurusamy Sarathy authored
239 PERLVAR(Idowarn, U8)
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
240 PERLVAR(Idoextract, bool)
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
241 PERLVAR(Isawampersand, bool) /* must save all match strings */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
242 PERLVAR(Iunsafe, bool)
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
243 PERLVAR(Iexit_flags, U8) /* was exit() unexpected, etc. */
244 PERLVAR(Isrand_called, bool)
245 /* Part of internal state, but makes the 16th 1 byte variable in a row. */
246 PERLVAR(Itainting, bool) /* doing taint checks */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
247 PERLVAR(Iinplace, char *)
248 PERLVAR(Ie_script, SV *)
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
249
250 /* magical thingies */
251 PERLVAR(Ibasetime, Time_t) /* $^T */
252 PERLVAR(Iformfeed, SV *) /* $^L */
d4cce5f embed.pl now reads *var*.h to do its stuff.
Nick Ing-Simmons authored
253
254
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
255 PERLVARI(Imaxsysfd, I32, MAXSYSFD)
256 /* top fd to pass to subprocesses */
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
257 PERLVAR(Istatusvalue, I32) /* $? */
258 #ifdef VMS
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
259 PERLVAR(Istatusvalue_vms,U32)
e5218da @gisle Well defined $? and introduction of ${^CHILD_ERROR_NATIVE} [PATCH]
gisle authored
260 #else
261 PERLVAR(Istatusvalue_posix,I32)
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
262 #endif
263
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
264 #ifdef CSH
265 PERLVARI(Icshlen, I32, 0)
266 PERLVARI(Icshname, const char *, CSH)
267 #endif
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
268
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
269 /* shortcuts to various I/O objects */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
270 PERLVAR(Istdingv, GV *)
bf49b05 make die/warn and other diagnostics go to wherever STDERR happens
Gurusamy Sarathy authored
271 PERLVAR(Istderrgv, GV *)
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
272 PERLVAR(Idefgv, GV *)
273 PERLVAR(Iargvgv, GV *)
274 PERLVAR(Iargvoutgv, GV *)
1d7c184 integrate mainline changes
Gurusamy Sarathy authored
275 PERLVAR(Iargvout_stack, AV *)
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
276
277 /* shortcuts to regexp stuff */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
278 PERLVAR(Ireplgv, GV *)
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
279
280 /* shortcuts to misc objects */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
281 PERLVAR(Ierrgv, GV *)
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
282
283 /* shortcuts to debugging objects */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
284 PERLVAR(IDBgv, GV *)
285 PERLVAR(IDBline, GV *)
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
286
287 /*
2eb25c9 @jhi Integrate changes #8608,8609,8610,8611,8612,8613 from maintperl.
jhi authored
288 =for apidoc mn|GV *|PL_DBsub
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
289 When Perl is run in debugging mode, with the B<-d> switch, this GV contains
290 the SV which holds the name of the sub being debugged. This is the C
291 variable which corresponds to Perl's $DB::sub variable. See
292 C<PL_DBsingle>.
293
2eb25c9 @jhi Integrate changes #8608,8609,8610,8611,8612,8613 from maintperl.
jhi authored
294 =for apidoc mn|SV *|PL_DBsingle
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
295 When Perl is run in debugging mode, with the B<-d> switch, this SV is a
7889fe5 UTF8 output prework.
Nick Ing-Simmons authored
296 boolean which indicates whether subs are being single-stepped.
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
297 Single-stepping is automatically turned on after every step. This is the C
298 variable which corresponds to Perl's $DB::single variable. See
299 C<PL_DBsub>.
300
2eb25c9 @jhi Integrate changes #8608,8609,8610,8611,8612,8613 from maintperl.
jhi authored
301 =for apidoc mn|SV *|PL_DBtrace
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
302 Trace variable used when Perl is run in debugging mode, with the B<-d>
303 switch. This is the C variable which corresponds to Perl's $DB::trace
304 variable. See C<PL_DBsingle>.
305
306 =cut
307 */
308
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
309 PERLVAR(IDBsub, GV *)
310 PERLVAR(IDBsingle, SV *)
311 PERLVAR(IDBtrace, SV *)
312 PERLVAR(IDBsignal, SV *)
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
313 PERLVAR(Ilineary, AV *) /* lines of script for debugger */
314 PERLVAR(Idbargs, AV *) /* args to call listed by caller function */
315
316 /* symbol tables */
317 PERLVAR(Idebstash, HV *) /* symbol table for perldb package */
318 PERLVAR(Iglobalstash, HV *) /* global keyword overrides imported here */
319 PERLVAR(Icurstname, SV *) /* name of current package */
320 PERLVAR(Ibeginav, AV *) /* names of BEGIN subroutines */
d4cce5f embed.pl now reads *var*.h to do its stuff.
Nick Ing-Simmons authored
321 PERLVAR(Iendav, AV *) /* names of END subroutines */
3c10abe stab at UNITCHECK blocks
Alexander Gough authored
322 PERLVAR(Iunitcheckav, AV *) /* names of UNITCHECK subroutines */
7d30b5c s/STOP/CHECK/ blocks
Gurusamy Sarathy authored
323 PERLVAR(Icheckav, AV *) /* names of CHECK subroutines */
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
324 PERLVAR(Iinitav, AV *) /* names of INIT subroutines */
325 PERLVAR(Istrtab, HV *) /* shared string table */
005a453 add more correct version of change#1350 (as yet untested)
Joshua Pritikin authored
326 PERLVARI(Isub_generation,U32,1) /* incr to invalidate method cache */
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
327
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
328 /* funky return mechanisms */
329 PERLVAR(Iforkprocess, int) /* so do_open |- can return proc# */
330
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
331 /* memory management */
332 PERLVAR(Isv_count, I32) /* how many SV* are currently allocated */
333 PERLVAR(Isv_objcount, I32) /* how many objects are currently allocated */
334 PERLVAR(Isv_root, SV*) /* storage for SVs belonging to interp */
335 PERLVAR(Isv_arenaroot, SV*) /* list of areas for garbage collection */
336
337 /* subprocess state */
d4cce5f embed.pl now reads *var*.h to do its stuff.
Nick Ing-Simmons authored
338 PERLVAR(Ifdpid, AV *) /* keep fd-to-pid mappings for my_popen */
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
339
340 /* internal state */
341 PERLVARI(Iop_mask, char *, NULL) /* masked operations for safe evals */
342
343 /* current interpreter roots */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
344 PERLVAR(Imain_cv, CV *)
345 PERLVAR(Imain_root, OP *)
346 PERLVAR(Imain_start, OP *)
347 PERLVAR(Ieval_root, OP *)
348 PERLVAR(Ieval_start, OP *)
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
349
350 /* runtime control stuff */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
351 PERLVARI(Icurcopdb, COP *, NULL)
49f531d Globals and structs via macros - part 1 of N
Nick Ing-Simmons authored
352
353 PERLVAR(Ifilemode, int) /* so nextargv() can preserve mode */
354 PERLVAR(Ilastfd, int) /* what to preserve mode on */
355 PERLVAR(Ioldname, char *) /* what to preserve mode on */
d4cce5f embed.pl now reads *var*.h to do its stuff.
Nick Ing-Simmons authored
356 PERLVAR(IArgv, char **) /* stuff to free from do_aexec, vfork safe */
357 PERLVAR(ICmd, char *) /* stuff to free from do_aexec, vfork safe */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
358 PERLVAR(Ipreambleav, AV *)
359 PERLVAR(Imess_sv, SV *)
7889fe5 UTF8 output prework.
Nick Ing-Simmons authored
360 PERLVAR(Iors_sv, SV *) /* output record separator $\ */
71eebe1 Shuffling PL_gensym saves 8 bytes on LP64 systems.
Nicholas Clark authored
361 /* statics moved here for shared library purposes */
362 PERLVARI(Igensym, I32, 0) /* next symbol for getsym() to define */
a4021b7 PERL_IMPLICIT_CONTEXT is usually defined for threads, so assume that
Nicholas Clark authored
363 PERLVAR(Ierror_count, U8) /* how many errors so far, max 10 */
364 PERLVARI(Icv_has_eval, bool, FALSE) /* PL_compcv includes an entereval or similar */
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
365 PERLVARI(Ilaststype, U16, OP_STAT)
366 PERLVARI(Ilaststatval, int, -1)
d4cce5f embed.pl now reads *var*.h to do its stuff.
Nick Ing-Simmons authored
367
4b556e6 @jandubois [win32] hand-applied patch along with small tweaks
jandubois authored
368 /* interpreter atexit processing */
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
369 PERLVARI(Iexitlistlen, I32, 0) /* length of same */
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
370 PERLVARI(Iexitlist, PerlExitListEntry *, NULL)
371 /* list of exit functions */
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
372
373 /*
374 =for apidoc Amn|HV*|PL_modglobal
375
7889fe5 UTF8 output prework.
Nick Ing-Simmons authored
376 C<PL_modglobal> is a general purpose, interpreter global HV for use by
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
377 extensions that need to keep information on a per-interpreter basis.
7889fe5 UTF8 output prework.
Nick Ing-Simmons authored
378 In a pinch, it can also be used as a symbol table for extensions
379 to share data among each other. It is a good idea to use keys
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
380 prefixed by the package name of the extension that owns the data.
381
382 =cut
383 */
384
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
385 PERLVAR(Imodglobal, HV *) /* per-interp module data */
386
387 /* these used to be in global before 5.004_68 */
388 PERLVARI(Iprofiledata, U32 *, NULL) /* table of ops, counts */
389
390 PERLVAR(Icompiling, COP) /* compiling/done executing marker */
391
392 PERLVAR(Icompcv, CV *) /* currently compiling subroutine */
393 PERLVAR(Icomppad, AV *) /* storage for lexically scoped temporaries */
394 PERLVAR(Icomppad_name, AV *) /* variable names for "my" variables */
395 PERLVAR(Icomppad_name_fill, I32) /* last "introduced" variable offset */
396 PERLVAR(Icomppad_name_floor, I32) /* start of vars in innermost block */
4b556e6 @jandubois [win32] hand-applied patch along with small tweaks
jandubois authored
397
398 #ifdef HAVE_INTERP_INTERN
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
399 PERLVAR(Isys_intern, struct interp_intern)
400 /* platform internals */
4b556e6 @jandubois [win32] hand-applied patch along with small tweaks
jandubois authored
401 #endif
402
7fae4e6 [asperl] added AS patch#5 (patch #4 was intentionally skipped after
Gurusamy Sarathy authored
403 /* more statics moved here */
404 PERLVAR(IDBcv, CV *) /* from perl.c */
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
405 PERLVARI(Igeneration, int, 100) /* from op.c */
5695360 add patch for C<use re 'debug'>
Ilya Zakharevich authored
406
cb68f92 partial MULTIPLICITY cleanup
Gurusamy Sarathy authored
407 PERLVARI(Iin_clean_objs,bool, FALSE) /* from sv.c */
408 PERLVARI(Iin_clean_all, bool, FALSE) /* from sv.c */
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
409 PERLVAR(Inomemok, bool) /* let malloc context handle nomem */
410 PERLVARI(Isavebegin, bool, FALSE) /* save BEGINs for compiler */
7fae4e6 [asperl] added AS patch#5 (patch #4 was intentionally skipped after
Gurusamy Sarathy authored
411
d8eceb8 @jhi Gratuitous uid and gid casts to I32s and ints removed.
jhi authored
412 PERLVAR(Iuid, Uid_t) /* current real user id */
413 PERLVAR(Ieuid, Uid_t) /* current effective user id */
414 PERLVAR(Igid, Gid_t) /* current real group id */
415 PERLVAR(Iegid, Gid_t) /* current effective group id */
bf9cdc6 embedding perl
Radu Greab authored
416 PERLVARI(Ian, U32, 0) /* malloc sequence number */
417 PERLVARI(Icop_seqmax, U32, 0) /* statement sequence number */
418 PERLVARI(Ievalseq, U32, 0) /* eval sequence number */
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
419 PERLVAR(Iorigalen, U32)
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
420 PERLVAR(Iorigenviron, char **)
ca0c25f Most platforms don't actually need PL_pidstatus, or the associated
Nicholas Clark authored
421 #ifdef PERL_USES_PL_PIDSTATUS
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
422 PERLVAR(Ipidstatus, HV *) /* pid-to-status mappings for waitpid */
ca0c25f Most platforms don't actually need PL_pidstatus, or the associated
Nicholas Clark authored
423 #endif
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
424 PERLVAR(Iosname, char *) /* operating system */
5c728af Integrate:
Ilya Zakharevich authored
425
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
426 PERLVAR(Isighandlerp, Sighandler_t)
427
232d1c1 Steal code from maint, and use PERL_ARENA_ROOTS_SIZE to size the arena
Nicholas Clark authored
428 PERLVARA(Ibody_roots, PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */
93e68bf Re: eliminate discreet arenaroots
Jim Cromie authored
429
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
430 PERLVAR(Inice_chunk, char *) /* a nice chunk of memory to reuse */
431 PERLVAR(Inice_chunk_size, U32) /* how nice the chunk of memory is */
432
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
433 PERLVARI(Imaxo, int, MAXO) /* maximum number of ops */
434
0b94c7b fixups for sundry warnings about function pointers
Gurusamy Sarathy authored
435 PERLVARI(Irunops, runops_proc_t, MEMBER_TO_FPTR(RUNOPS_DEFAULT))
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
436
5137154 more PERL_OBJECT cleanups (changes still untested on Unix!)
Gurusamy Sarathy authored
437 PERLVARA(Itokenbuf,256, char)
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
438
954c199 autogenerate API listing from comments in the source (from Benjamin
Gurusamy Sarathy authored
439 /*
440 =for apidoc Amn|SV|PL_sv_undef
441 This is the C<undef> SV. Always refer to this as C<&PL_sv_undef>.
442
443 =for apidoc Amn|SV|PL_sv_no
444 This is the C<false> SV. See C<PL_sv_yes>. Always refer to this as
445 C<&PL_sv_no>.
446
447 =for apidoc Amn|SV|PL_sv_yes
448 This is the C<true> SV. See C<PL_sv_no>. Always refer to this as
449 C<&PL_sv_yes>.
450
451 =cut
452 */
453
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
454 PERLVAR(Isv_undef, SV)
455 PERLVAR(Isv_no, SV)
456 PERLVAR(Isv_yes, SV)
457
458 PERLVAR(Isubname, SV *) /* name of current subroutine */
459
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
460 PERLVAR(Isubline, I32) /* line this subroutine began on */
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
461 PERLVAR(Imin_intro_pending, I32) /* start of vars to introduce */
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
462
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
463 PERLVAR(Imax_intro_pending, I32) /* end of vars to introduce */
464 PERLVAR(Ipadix, I32) /* max used index in current "register" pad */
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
465
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
466 PERLVAR(Ipadix_floor, I32) /* how low may inner block reset padix */
467 PERLVAR(Ipad_reset_pending, I32) /* reset pad on next attempted alloc */
468
1d7c184 integrate mainline changes
Gurusamy Sarathy authored
469 PERLVAR(Ihints, U32) /* pragma-tic compile-time flags */
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
470
471 PERLVAR(Idebug, VOL U32) /* flags given to -D switch */
472
bf9cdc6 embedding perl
Radu Greab authored
473 PERLVARI(Iamagic_generation, long, 0)
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
474
475 #ifdef USE_LOCALE_COLLATE
476 PERLVAR(Icollation_name,char *) /* Name of current collation */
477 PERLVAR(Icollxfrm_base, Size_t) /* Basic overhead in *xfrm() */
478 PERLVARI(Icollxfrm_mult,Size_t, 2) /* Expansion factor in *xfrm() */
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
479 PERLVARI(Icollation_ix, U32, 0) /* Collation generation index */
480 PERLVARI(Icollation_standard, bool, TRUE)
481 /* Assume simple collation */
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
482 #endif /* USE_LOCALE_COLLATE */
483
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
484
485 #ifdef PERL_UTF8_CACHE_ASSERT
486 PERLVARI(Iutf8cache, I8, -1) /* Is the utf8 caching code enabled? */
487 #else
488 PERLVARI(Iutf8cache, I8, 1) /* Is the utf8 caching code enabled? */
489 #endif
490
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
491 #ifdef USE_LOCALE_NUMERIC
492
493 PERLVARI(Inumeric_standard, bool, TRUE)
494 /* Assume simple numerics */
495 PERLVARI(Inumeric_local, bool, TRUE)
496 /* Assume local numerics */
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
497 PERLVAR(Inumeric_name, char *) /* Name of current numeric locale */
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
498 #endif /* !USE_LOCALE_NUMERIC */
499
500 /* utf8 character classes */
501 PERLVAR(Iutf8_alnum, SV *)
b8c5462 @jhi POSIX [[:character class:]] support for standard, locale,
jhi authored
502 PERLVAR(Iutf8_alnumc, SV *)
503 PERLVAR(Iutf8_ascii, SV *)
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
504 PERLVAR(Iutf8_alpha, SV *)
505 PERLVAR(Iutf8_space, SV *)
b8c5462 @jhi POSIX [[:character class:]] support for standard, locale,
jhi authored
506 PERLVAR(Iutf8_cntrl, SV *)
507 PERLVAR(Iutf8_graph, SV *)
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
508 PERLVAR(Iutf8_digit, SV *)
509 PERLVAR(Iutf8_upper, SV *)
510 PERLVAR(Iutf8_lower, SV *)
511 PERLVAR(Iutf8_print, SV *)
b8c5462 @jhi POSIX [[:character class:]] support for standard, locale,
jhi authored
512 PERLVAR(Iutf8_punct, SV *)
513 PERLVAR(Iutf8_xdigit, SV *)
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
514 PERLVAR(Iutf8_mark, SV *)
515 PERLVAR(Iutf8_toupper, SV *)
516 PERLVAR(Iutf8_totitle, SV *)
517 PERLVAR(Iutf8_tolower, SV *)
b4e400f @jhi Unicode: add ToFold mapping. Not used yet; but basically
jhi authored
518 PERLVAR(Iutf8_tofold, SV *)
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
519 PERLVAR(Ilast_swash_hv, HV *)
520 PERLVAR(Ilast_swash_tmps, U8 *)
521 PERLVAR(Ilast_swash_slen, STRLEN)
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
522 PERLVARA(Ilast_swash_key,10, U8)
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
523 PERLVAR(Ilast_swash_klen, U8) /* Only needs to store 0-10 */
524
525 #ifdef FCRYPT
526 PERLVARI(Icryptseen, bool, FALSE) /* has fast crypt() been initialized? */
527 #endif
528
529 PERLVARI(Iglob_index, int, 0)
530
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
531
5912531 move parser state into new parser object, PL_parser
Dave Mitchell authored
532 PERLVAR(Iparser, yy_parser *) /* current parser state */
12fbd33 make the bison-based parser threadsafe and capable of deep
Dave Mitchell authored
533
0672f40 most globals are now interpreter local; locale initialization
Gurusamy Sarathy authored
534 PERLVAR(Ibitcount, char *)
535
1d7c184 integrate mainline changes
Gurusamy Sarathy authored
536 PERLVAR(Ipsig_ptr, SV**)
537 PERLVAR(Ipsig_name, SV**)
538
c5be433 yet more cleanups of the PERL_OBJECT, MULTIPLICITY and USE_THREADS
Gurusamy Sarathy authored
539 #if defined(PERL_IMPLICIT_SYS)
32e3070 support PERL_IMPLICIT_SYS with MULTIPLICITY/USE_THREADS on
Gurusamy Sarathy authored
540 PERLVAR(IMem, struct IPerlMem*)
1d7c184 integrate mainline changes
Gurusamy Sarathy authored
541 PERLVAR(IMemShared, struct IPerlMem*)
542 PERLVAR(IMemParse, struct IPerlMem*)
32e3070 support PERL_IMPLICIT_SYS with MULTIPLICITY/USE_THREADS on
Gurusamy Sarathy authored
543 PERLVAR(IEnv, struct IPerlEnv*)
544 PERLVAR(IStdIO, struct IPerlStdIO*)
545 PERLVAR(ILIO, struct IPerlLIO*)
546 PERLVAR(IDir, struct IPerlDir*)
547 PERLVAR(ISock, struct IPerlSock*)
548 PERLVAR(IProc, struct IPerlProc*)
76e3520 [asperl] added AS patch#2
Gurusamy Sarathy authored
549 #endif
1d7c184 integrate mainline changes
Gurusamy Sarathy authored
550
551 PERLVAR(Iptr_table, PTR_TBL_t*)
7d49f68 s/Nullav/NULL/g
Nicholas Clark authored
552 PERLVARI(Ibeginav_save, AV*, NULL) /* save BEGIN{}s when compiling */
f180df8 introduce illegal symbols into null package so that gv_fetchpv(...,TRUE)
Gurusamy Sarathy authored
553
fdda85c [patch] arena rework - unify arenaroots
Jim Cromie authored
554 PERLVAR(Ibody_arenas, void*) /* pointer to list of body-arenas */
93e68bf Re: eliminate discreet arenaroots
Jim Cromie authored
555
ce08f86 Provide infrastructure for PERL_ASYNC_CHECK() style safe signals.
Nick Ing-Simmons authored
556 PERLVAR(Ipsig_pend, int *) /* per-signal "count" of pending */
557 PERLVARI(Isig_pending, int,0) /* Number if highest signal pending */
558
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
559
560 PERLVAR(Itaint_warn, bool) /* taint warns instead of dying */
561 PERLVAR(Iutf8locale, bool) /* utf8 locale detected */
562 PERLVARI(Ihash_seed_set, bool, FALSE) /* Hash initialized? */
563 PERLVARI(Irehash_seed_set, bool, FALSE) /* 582 hash initialized? */
564
a453c16 @jhi Change PL_numeric_radix to PL_numeric_radix_sv (and leave in
jhi authored
565 #ifdef USE_LOCALE_NUMERIC
566
567 PERLVAR(Inumeric_radix_sv, SV *) /* The radix separator if not '.' */
568
569 #endif
ce08f86 Provide infrastructure for PERL_ASYNC_CHECK() style safe signals.
Nick Ing-Simmons authored
570
1fcf4c1 Threadsafe PMOPs! We might still win this war.
Artur Bergman authored
571 #if defined(USE_ITHREADS)
aefff11 B && BEGIN handling
James A. Duncan authored
572 PERLVAR(Iregex_pad, SV**) /* All regex objects */
573 PERLVAR(Iregex_padav, AV*) /* All regex objects */
e5dd39f Use reentrant API glibc
Artur Bergman authored
574
1fcf4c1 Threadsafe PMOPs! We might still win this war.
Artur Bergman authored
575 #endif
576
ea68fd6 Move the PERLVAR(Ireentrant_buffer, REENTR*) outside the ITHREADS
Nicholas Clark authored
577 #ifdef USE_REENTRANT_API
578 PERLVAR(Ireentrant_buffer, REENTR*) /* here we store the _r buffers */
f5a8281 @jhi Needed by #11283.
jhi authored
579 #endif
580
aefff11 B && BEGIN handling
James A. Duncan authored
581
598921a Some of the MAD structures in headers, plus PL_madskills and PL_xmlfp,
Nicholas Clark authored
582 #ifdef PERL_MAD
583 PERLVARI(Imadskills, bool, FALSE) /* preserve all syntactic info */
584 /* (MAD = Misc Attribute Decoration) */
585 PERLVARI(Ixmlfp, PerlIO *,NULL)
586 #endif
587
53e06cf Custom Ops
Simon Cozens authored
588 PERLVAR(Icustom_op_names, HV*) /* Names of user defined ops */
589 PERLVAR(Icustom_op_descs, HV*) /* Descriptions of user defined ops */
19e8ce8 Remove #ifdef PERL_CUSTOM_OPS, always build with PERL_CUSTOM_OPS
Artur Bergman authored
590
a1ea730 PerlIO layer table as PL_perlio (per-interpreter)
Nick Ing-Simmons authored
591 #ifdef PERLIO_LAYERS
592 PERLVARI(Iperlio, PerlIO *,NULL)
3a1ee7e Convert rest of PerlIO's memory tables to per-interp and add clone fu…
Nick Ing-Simmons authored
593 PERLVARI(Iknown_layers, PerlIO_list_t *,NULL)
594 PERLVARI(Idef_layerlist, PerlIO_list_t *,NULL)
a1ea730 PerlIO layer table as PL_perlio (per-interpreter)
Nick Ing-Simmons authored
595 #endif
596
a0714e2 Re: [PATCH] s/Null(gv|hv|sv)/NULL/g
Steven Schubiger authored
597 PERLVARI(Iencoding, SV*, NULL) /* character encoding */
0a37880 @jhi Add the encoding pragma to control the "upgrade"
jhi authored
598
128e816 @jhi The debug_pag needs to be visible at all times
jhi authored
599 PERLVAR(Idebug_pad, struct perl_debug_pad) /* always needed because of the re extension */
ce33321 @jhi Create a per-interpeter debug scratchpad container
jhi authored
600
238a4c3 Slab allocator for ops
Nick Ing-Simmons authored
601 #ifdef PL_OP_SLAB_ALLOC
5a8e194 Correct slab allocator for case where sizeof(IV) > sizeof(IV *)
Nick Ing-Simmons authored
602 PERLVAR(IOpPtr,I32 **)
603 PERLVARI(IOpSpace,I32,0)
604 PERLVAR(IOpSlab,I32 *)
238a4c3 Slab allocator for ops
Nick Ing-Simmons authored
605 #endif
606
82686b0 @jhi my $utf8here, our $utf8here, and package variable $utf8here.
jhi authored
607 PERLVAR(Iutf8_idstart, SV *)
608 PERLVAR(Iutf8_idcont, SV *)
609
147f47d Turn the sort RealCmp for stable quicksorts into a
Artur Bergman authored
610 PERLVAR(Isort_RealCmp, SVCOMPARE_t)
611
7d49f68 s/Nullav/NULL/g
Nicholas Clark authored
612 PERLVARI(Icheckav_save, AV*, NULL) /* save CHECK{}s when compiling */
3c10abe stab at UNITCHECK blocks
Alexander Gough authored
613 PERLVARI(Iunitcheckav_save, AV*, NULL) /* save UNITCHECK{}s when compiling */
ece599b @rgs B::check_av() ; B::Deparse for CHECK blocks
rgs authored
614
5311654 @jhi use sysconf(_SC_CLK_TCK) for times()
jhi authored
615 PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */
616
edab1aa @jhi Slight beauty tweak.
jhi authored
617 PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */
618
a05d7eb @jhi The new(er) way of controlling Unicode I/O (and other) features;
jhi authored
619 PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */
620
4ffa73a @jhi PERL_SIGNALS=unsafe enables the old unsafe/immediate signals.
jhi authored
621 PERLVAR(Isignals, U32) /* Using which pre-5.8 signals */
622
57c6e6d @jhi Feel-good cleanup.
jhi authored
623 PERLVAR(Ireentrant_retint, int) /* Integer return value from reentrant functions */
624
9f7da6d By re-ordering declarations in interpvar.h and thrdvar.h, reduce the
Nicholas Clark authored
625 PERLVAR(Istashcache, HV *) /* Cache to speed up S_method_common */
626
15a5279 @jhi Move the thread *hook into interpreter.
jhi authored
627 /* Hooks to shared SVs and locks. */
628 PERLVARI(Isharehook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing))
d5b2b27 Given that sv_nosharing performs the same function as sv_nolocking
Nicholas Clark authored
629 PERLVARI(Ilockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing))
d0647d4 Avoid using space to create 2 functions just to force mathoms to be
Nicholas Clark authored
630 #ifdef NO_MATHOMS
631 # define PERL_UNLOCK_HOOK Perl_sv_nosharing
632 #else
633 /* This reference ensures that the mathoms are linked with perl */
634 # define PERL_UNLOCK_HOOK Perl_sv_nounlocking
635 #endif
636 PERLVARI(Iunlockhook, share_proc_t, MEMBER_TO_FPTR(PERL_UNLOCK_HOOK))
637
15a5279 @jhi Move the thread *hook into interpreter.
jhi authored
638 PERLVARI(Ithreadhook, thrhook_proc_t, MEMBER_TO_FPTR(Perl_nothreadhook))
639
bce260c @jhi More moves to intrpvar.h.
jhi authored
640 /* Force inclusion of both runops options */
641 PERLVARI(Irunops_std, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_standard))
642 PERLVARI(Irunops_dbg, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_debug))
643
644 /* Stores the PPID */
645 #ifdef THREADS_HAVE_PIDS
646 PERLVARI(Ippid, IV, 0)
647 #endif
648
504f80c @jhi Bite the bullet and apply the hash randomisation patch.
jhi authored
649 PERLVARI(Ihash_seed, UV, 0) /* Hash initializer */
650
8b5c210 @jhi Future binary compat wishful thinking:
jhi authored
651 PERLVAR(IDBassertion, SV *)
652
008fb0c s/new_hash/rehash/g (Stas suggested a better name)
Nicholas Clark authored
653 PERLVARI(Irehash_seed, UV, 0) /* 582 hash initializer */
4b5190b Plan C for foiling the algorithmic complexity attack
Nicholas Clark authored
654
41e4abd Extend DEBUG_LEAKING_SCALARS_FORK_DUMP so it can also dump scalars
Nicholas Clark authored
655 #ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
656 /* File descriptor to talk to the child which dumps scalars. */
657 PERLVARI(Idumper_fd, int, -1)
658 #endif
f16dd61 re-implement MY_CXT API more efficiently, and add explicit
Dave Mitchell authored
659
a4021b7 PERL_IMPLICIT_CONTEXT is usually defined for threads, so assume that
Nicholas Clark authored
660 PERLVAR(Imulti_end, I32) /* last line of multi-line string */
661
f16dd61 re-implement MY_CXT API more efficiently, and add explicit
Dave Mitchell authored
662 #ifdef PERL_IMPLICIT_CONTEXT
4c901e7 tidy index arrangements in new MY_CXT code
Dave Mitchell authored
663 PERLVARI(Imy_cxt_size, int, 0) /* size of PL_my_cxt_list */
f16dd61 re-implement MY_CXT API more efficiently, and add explicit
Dave Mitchell authored
664 PERLVARI(Imy_cxt_list, void **, NULL) /* per-module array of MY_CXT pointers */
53d4427 @jhi Symbian port: add Series 90 support
jhi authored
665 #ifdef PERL_GLOBAL_STRUCT_PRIVATE
666 PERLVARI(Imy_cxt_keys, const char **, NULL) /* per-module array of pointers to MY_CXT_KEY constants */
667 #endif
f16dd61 re-implement MY_CXT API more efficiently, and add explicit
Dave Mitchell authored
668 #endif
669
7cb608b Enhance PERL_TRACK_MEMPOOL so that it also emulates the PerlHost
Nicholas Clark authored
670 #ifdef PERL_TRACK_MEMPOOL
671 /* For use with the memory debugging code in util.c */
672 PERLVAR(Imemory_debug_header, struct perl_memory_debug_header)
673 #endif
674
f1fac47 Add a new compile option PERL_DEBUG_READONLY_OPS which marks the optree
Nicholas Clark authored
675 #ifdef PERL_DEBUG_READONLY_OPS
676 PERLVARI(Islabs, I32**, NULL) /* Array of slabs that have been allocated */
677 PERLVARI(Islab_count, U32, 0) /* Size of the array */
678 #endif
679
dd69841 @blblack Re: mro status, etc
blblack authored
680 PERLVARI(Iisarev, HV*, NULL) /* Reverse map of @ISA dependencies */
681
53a7735 move PL_expect and PL_copline into the PL_parser structure
Dave Mitchell authored
682 /* If you are adding a U8 or U16, see the 'Space' comments above on where
683 * there are gaps which currently will be structure padding. */
d95e864 More variable reordering saves another 40 bytes from the interpreter
Nicholas Clark authored
684
685 /* Within a stable branch, new variables must be added to the very end, before
686 * this comment, for binary compatibility (the offsets of the old members must
687 * not change).
b83cd12 @jhi Comment tweakage.
jhi authored
688 * (Don't forget to add your variable also to perl_clone()!)
e3acbfd move new variables to the end of the interpreter structure (for
Gurusamy Sarathy authored
689 * XSUB.h provides wrapper functions via perlapi.h that make this
b83cd12 @jhi Comment tweakage.
jhi authored
690 * irrelevant, but not all code may be expected to #include XSUB.h.
691 */
Something went wrong with that request. Please try again.