diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1999-08-20 15:24:08 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-08-20 15:24:08 +0000 |
commit | 54aff467496406992ab0d6d70a050249feb5efbc (patch) | |
tree | 9d705efcb4450c1c8bd376e098de63972ea1fade /embedvar.h | |
parent | a7c6d24429ab2b6db54575a3bdc62c7ed9f881cf (diff) | |
download | perl-54aff467496406992ab0d6d70a050249feb5efbc.tar.gz |
support USE_THREADS+MULTIPLICITY; source compat tweaks for
USE_THREADS and MULTIPLICITY; minor pod adjustments
p4raw-id: //depot/perl@4007
Diffstat (limited to 'embedvar.h')
-rw-r--r-- | embedvar.h | 993 |
1 files changed, 568 insertions, 425 deletions
diff --git a/embedvar.h b/embedvar.h index 39bf22b734..3e83de1d22 100644 --- a/embedvar.h +++ b/embedvar.h @@ -5,287 +5,168 @@ /* (Doing namespace management portably in C is really gross.) */ -/* Put interpreter-specific symbols into a struct? */ +/* + The following combinations of MULTIPLICITY, USE_THREADS, PERL_OBJECT + and PERL_IMPLICIT_CONTEXT are supported: + 1) none + 2) MULTIPLICITY # supported for compatibility + 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT + 4) USE_THREADS && PERL_IMPLICIT_CONTEXT + 5) MULTIPLICITY && USE_THREADS && PERL_IMPLICIT_CONTEXT + 6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT -#ifdef MULTIPLICITY + All other combinations of these flags are errors. -#ifndef USE_THREADS -/* If we do not have threads then per-thread vars are per-interpreter */ - -#ifdef PERL_IMPLICIT_CONTEXT - -/* everything has an implicit context pointer */ - -#define PL_Sv (my_perl->TSv) -#define PL_Xpv (my_perl->TXpv) -#define PL_av_fetch_sv (my_perl->Tav_fetch_sv) -#define PL_bodytarget (my_perl->Tbodytarget) -#define PL_bostr (my_perl->Tbostr) -#define PL_chopset (my_perl->Tchopset) -#define PL_colors (my_perl->Tcolors) -#define PL_colorset (my_perl->Tcolorset) -#define PL_curcop (my_perl->Tcurcop) -#define PL_curpad (my_perl->Tcurpad) -#define PL_curpm (my_perl->Tcurpm) -#define PL_curstack (my_perl->Tcurstack) -#define PL_curstackinfo (my_perl->Tcurstackinfo) -#define PL_curstash (my_perl->Tcurstash) -#define PL_defoutgv (my_perl->Tdefoutgv) -#define PL_defstash (my_perl->Tdefstash) -#define PL_delaymagic (my_perl->Tdelaymagic) -#define PL_dirty (my_perl->Tdirty) -#define PL_dumpindent (my_perl->Tdumpindent) -#define PL_extralen (my_perl->Textralen) -#define PL_firstgv (my_perl->Tfirstgv) -#define PL_formtarget (my_perl->Tformtarget) -#define PL_hv_fetch_ent_mh (my_perl->Thv_fetch_ent_mh) -#define PL_hv_fetch_sv (my_perl->Thv_fetch_sv) -#define PL_in_eval (my_perl->Tin_eval) -#define PL_last_in_gv (my_perl->Tlast_in_gv) -#define PL_lastgotoprobe (my_perl->Tlastgotoprobe) -#define PL_lastscream (my_perl->Tlastscream) -#define PL_localizing (my_perl->Tlocalizing) -#define PL_mainstack (my_perl->Tmainstack) -#define PL_markstack (my_perl->Tmarkstack) -#define PL_markstack_max (my_perl->Tmarkstack_max) -#define PL_markstack_ptr (my_perl->Tmarkstack_ptr) -#define PL_maxscream (my_perl->Tmaxscream) -#define PL_modcount (my_perl->Tmodcount) -#define PL_na (my_perl->Tna) -#define PL_nrs (my_perl->Tnrs) -#define PL_ofs (my_perl->Tofs) -#define PL_ofslen (my_perl->Tofslen) -#define PL_op (my_perl->Top) -#define PL_opsave (my_perl->Topsave) -#define PL_protect (my_perl->Tprotect) -#define PL_reg_call_cc (my_perl->Treg_call_cc) -#define PL_reg_curpm (my_perl->Treg_curpm) -#define PL_reg_eval_set (my_perl->Treg_eval_set) -#define PL_reg_flags (my_perl->Treg_flags) -#define PL_reg_ganch (my_perl->Treg_ganch) -#define PL_reg_leftiter (my_perl->Treg_leftiter) -#define PL_reg_magic (my_perl->Treg_magic) -#define PL_reg_maxiter (my_perl->Treg_maxiter) -#define PL_reg_oldcurpm (my_perl->Treg_oldcurpm) -#define PL_reg_oldpos (my_perl->Treg_oldpos) -#define PL_reg_oldsaved (my_perl->Treg_oldsaved) -#define PL_reg_oldsavedlen (my_perl->Treg_oldsavedlen) -#define PL_reg_poscache (my_perl->Treg_poscache) -#define PL_reg_poscache_size (my_perl->Treg_poscache_size) -#define PL_reg_re (my_perl->Treg_re) -#define PL_reg_start_tmp (my_perl->Treg_start_tmp) -#define PL_reg_start_tmpl (my_perl->Treg_start_tmpl) -#define PL_reg_starttry (my_perl->Treg_starttry) -#define PL_reg_sv (my_perl->Treg_sv) -#define PL_reg_whilem_seen (my_perl->Treg_whilem_seen) -#define PL_regbol (my_perl->Tregbol) -#define PL_regcc (my_perl->Tregcc) -#define PL_regcode (my_perl->Tregcode) -#define PL_regcomp_parse (my_perl->Tregcomp_parse) -#define PL_regcomp_rx (my_perl->Tregcomp_rx) -#define PL_regcompp (my_perl->Tregcompp) -#define PL_regdata (my_perl->Tregdata) -#define PL_regdummy (my_perl->Tregdummy) -#define PL_regendp (my_perl->Tregendp) -#define PL_regeol (my_perl->Tregeol) -#define PL_regexecp (my_perl->Tregexecp) -#define PL_regflags (my_perl->Tregflags) -#define PL_regfree (my_perl->Tregfree) -#define PL_regindent (my_perl->Tregindent) -#define PL_reginput (my_perl->Treginput) -#define PL_regint_start (my_perl->Tregint_start) -#define PL_regint_string (my_perl->Tregint_string) -#define PL_reginterp_cnt (my_perl->Treginterp_cnt) -#define PL_reglastparen (my_perl->Treglastparen) -#define PL_regnarrate (my_perl->Tregnarrate) -#define PL_regnaughty (my_perl->Tregnaughty) -#define PL_regnpar (my_perl->Tregnpar) -#define PL_regprecomp (my_perl->Tregprecomp) -#define PL_regprev (my_perl->Tregprev) -#define PL_regprogram (my_perl->Tregprogram) -#define PL_regsawback (my_perl->Tregsawback) -#define PL_regseen (my_perl->Tregseen) -#define PL_regsize (my_perl->Tregsize) -#define PL_regstartp (my_perl->Tregstartp) -#define PL_regtill (my_perl->Tregtill) -#define PL_regxend (my_perl->Tregxend) -#define PL_restartop (my_perl->Trestartop) -#define PL_retstack (my_perl->Tretstack) -#define PL_retstack_ix (my_perl->Tretstack_ix) -#define PL_retstack_max (my_perl->Tretstack_max) -#define PL_rs (my_perl->Trs) -#define PL_savestack (my_perl->Tsavestack) -#define PL_savestack_ix (my_perl->Tsavestack_ix) -#define PL_savestack_max (my_perl->Tsavestack_max) -#define PL_scopestack (my_perl->Tscopestack) -#define PL_scopestack_ix (my_perl->Tscopestack_ix) -#define PL_scopestack_max (my_perl->Tscopestack_max) -#define PL_screamfirst (my_perl->Tscreamfirst) -#define PL_screamnext (my_perl->Tscreamnext) -#define PL_secondgv (my_perl->Tsecondgv) -#define PL_seen_evals (my_perl->Tseen_evals) -#define PL_seen_zerolen (my_perl->Tseen_zerolen) -#define PL_sortcop (my_perl->Tsortcop) -#define PL_sortcxix (my_perl->Tsortcxix) -#define PL_sortstash (my_perl->Tsortstash) -#define PL_stack_base (my_perl->Tstack_base) -#define PL_stack_max (my_perl->Tstack_max) -#define PL_stack_sp (my_perl->Tstack_sp) -#define PL_start_env (my_perl->Tstart_env) -#define PL_statbuf (my_perl->Tstatbuf) -#define PL_statcache (my_perl->Tstatcache) -#define PL_statgv (my_perl->Tstatgv) -#define PL_statname (my_perl->Tstatname) -#define PL_tainted (my_perl->Ttainted) -#define PL_timesbuf (my_perl->Ttimesbuf) -#define PL_tmps_floor (my_perl->Ttmps_floor) -#define PL_tmps_ix (my_perl->Ttmps_ix) -#define PL_tmps_max (my_perl->Ttmps_max) -#define PL_tmps_stack (my_perl->Ttmps_stack) -#define PL_top_env (my_perl->Ttop_env) -#define PL_toptarget (my_perl->Ttoptarget) -#define PL_watchaddr (my_perl->Twatchaddr) -#define PL_watchok (my_perl->Twatchok) + #3, #4, #5, and #6 are supported directly, while #2 is a special + case of #3 (supported by redefining vTHX appropriately). +*/ -#else /* !PERL_IMPLICIT_CONTEXT */ +#if defined(MULTIPLICITY) +/* cases 2, 3 and 5 above */ -/* traditional MULTIPLICITY (intepreter is in a global) */ +# if defined(PERL_IMPLICIT_CONTEXT) +# define vTHX aTHX +# else +# define vTHX PERL_GET_INTERP +# endif -#define PL_Sv (PERL_GET_INTERP->TSv) -#define PL_Xpv (PERL_GET_INTERP->TXpv) -#define PL_av_fetch_sv (PERL_GET_INTERP->Tav_fetch_sv) -#define PL_bodytarget (PERL_GET_INTERP->Tbodytarget) -#define PL_bostr (PERL_GET_INTERP->Tbostr) -#define PL_chopset (PERL_GET_INTERP->Tchopset) -#define PL_colors (PERL_GET_INTERP->Tcolors) -#define PL_colorset (PERL_GET_INTERP->Tcolorset) -#define PL_curcop (PERL_GET_INTERP->Tcurcop) -#define PL_curpad (PERL_GET_INTERP->Tcurpad) -#define PL_curpm (PERL_GET_INTERP->Tcurpm) -#define PL_curstack (PERL_GET_INTERP->Tcurstack) -#define PL_curstackinfo (PERL_GET_INTERP->Tcurstackinfo) -#define PL_curstash (PERL_GET_INTERP->Tcurstash) -#define PL_defoutgv (PERL_GET_INTERP->Tdefoutgv) -#define PL_defstash (PERL_GET_INTERP->Tdefstash) -#define PL_delaymagic (PERL_GET_INTERP->Tdelaymagic) -#define PL_dirty (PERL_GET_INTERP->Tdirty) -#define PL_dumpindent (PERL_GET_INTERP->Tdumpindent) -#define PL_extralen (PERL_GET_INTERP->Textralen) -#define PL_firstgv (PERL_GET_INTERP->Tfirstgv) -#define PL_formtarget (PERL_GET_INTERP->Tformtarget) -#define PL_hv_fetch_ent_mh (PERL_GET_INTERP->Thv_fetch_ent_mh) -#define PL_hv_fetch_sv (PERL_GET_INTERP->Thv_fetch_sv) -#define PL_in_eval (PERL_GET_INTERP->Tin_eval) -#define PL_last_in_gv (PERL_GET_INTERP->Tlast_in_gv) -#define PL_lastgotoprobe (PERL_GET_INTERP->Tlastgotoprobe) -#define PL_lastscream (PERL_GET_INTERP->Tlastscream) -#define PL_localizing (PERL_GET_INTERP->Tlocalizing) -#define PL_mainstack (PERL_GET_INTERP->Tmainstack) -#define PL_markstack (PERL_GET_INTERP->Tmarkstack) -#define PL_markstack_max (PERL_GET_INTERP->Tmarkstack_max) -#define PL_markstack_ptr (PERL_GET_INTERP->Tmarkstack_ptr) -#define PL_maxscream (PERL_GET_INTERP->Tmaxscream) -#define PL_modcount (PERL_GET_INTERP->Tmodcount) -#define PL_na (PERL_GET_INTERP->Tna) -#define PL_nrs (PERL_GET_INTERP->Tnrs) -#define PL_ofs (PERL_GET_INTERP->Tofs) -#define PL_ofslen (PERL_GET_INTERP->Tofslen) -#define PL_op (PERL_GET_INTERP->Top) -#define PL_opsave (PERL_GET_INTERP->Topsave) -#define PL_protect (PERL_GET_INTERP->Tprotect) -#define PL_reg_call_cc (PERL_GET_INTERP->Treg_call_cc) -#define PL_reg_curpm (PERL_GET_INTERP->Treg_curpm) -#define PL_reg_eval_set (PERL_GET_INTERP->Treg_eval_set) -#define PL_reg_flags (PERL_GET_INTERP->Treg_flags) -#define PL_reg_ganch (PERL_GET_INTERP->Treg_ganch) -#define PL_reg_leftiter (PERL_GET_INTERP->Treg_leftiter) -#define PL_reg_magic (PERL_GET_INTERP->Treg_magic) -#define PL_reg_maxiter (PERL_GET_INTERP->Treg_maxiter) -#define PL_reg_oldcurpm (PERL_GET_INTERP->Treg_oldcurpm) -#define PL_reg_oldpos (PERL_GET_INTERP->Treg_oldpos) -#define PL_reg_oldsaved (PERL_GET_INTERP->Treg_oldsaved) -#define PL_reg_oldsavedlen (PERL_GET_INTERP->Treg_oldsavedlen) -#define PL_reg_poscache (PERL_GET_INTERP->Treg_poscache) -#define PL_reg_poscache_size (PERL_GET_INTERP->Treg_poscache_size) -#define PL_reg_re (PERL_GET_INTERP->Treg_re) -#define PL_reg_start_tmp (PERL_GET_INTERP->Treg_start_tmp) -#define PL_reg_start_tmpl (PERL_GET_INTERP->Treg_start_tmpl) -#define PL_reg_starttry (PERL_GET_INTERP->Treg_starttry) -#define PL_reg_sv (PERL_GET_INTERP->Treg_sv) -#define PL_reg_whilem_seen (PERL_GET_INTERP->Treg_whilem_seen) -#define PL_regbol (PERL_GET_INTERP->Tregbol) -#define PL_regcc (PERL_GET_INTERP->Tregcc) -#define PL_regcode (PERL_GET_INTERP->Tregcode) -#define PL_regcomp_parse (PERL_GET_INTERP->Tregcomp_parse) -#define PL_regcomp_rx (PERL_GET_INTERP->Tregcomp_rx) -#define PL_regcompp (PERL_GET_INTERP->Tregcompp) -#define PL_regdata (PERL_GET_INTERP->Tregdata) -#define PL_regdummy (PERL_GET_INTERP->Tregdummy) -#define PL_regendp (PERL_GET_INTERP->Tregendp) -#define PL_regeol (PERL_GET_INTERP->Tregeol) -#define PL_regexecp (PERL_GET_INTERP->Tregexecp) -#define PL_regflags (PERL_GET_INTERP->Tregflags) -#define PL_regfree (PERL_GET_INTERP->Tregfree) -#define PL_regindent (PERL_GET_INTERP->Tregindent) -#define PL_reginput (PERL_GET_INTERP->Treginput) -#define PL_regint_start (PERL_GET_INTERP->Tregint_start) -#define PL_regint_string (PERL_GET_INTERP->Tregint_string) -#define PL_reginterp_cnt (PERL_GET_INTERP->Treginterp_cnt) -#define PL_reglastparen (PERL_GET_INTERP->Treglastparen) -#define PL_regnarrate (PERL_GET_INTERP->Tregnarrate) -#define PL_regnaughty (PERL_GET_INTERP->Tregnaughty) -#define PL_regnpar (PERL_GET_INTERP->Tregnpar) -#define PL_regprecomp (PERL_GET_INTERP->Tregprecomp) -#define PL_regprev (PERL_GET_INTERP->Tregprev) -#define PL_regprogram (PERL_GET_INTERP->Tregprogram) -#define PL_regsawback (PERL_GET_INTERP->Tregsawback) -#define PL_regseen (PERL_GET_INTERP->Tregseen) -#define PL_regsize (PERL_GET_INTERP->Tregsize) -#define PL_regstartp (PERL_GET_INTERP->Tregstartp) -#define PL_regtill (PERL_GET_INTERP->Tregtill) -#define PL_regxend (PERL_GET_INTERP->Tregxend) -#define PL_restartop (PERL_GET_INTERP->Trestartop) -#define PL_retstack (PERL_GET_INTERP->Tretstack) -#define PL_retstack_ix (PERL_GET_INTERP->Tretstack_ix) -#define PL_retstack_max (PERL_GET_INTERP->Tretstack_max) -#define PL_rs (PERL_GET_INTERP->Trs) -#define PL_savestack (PERL_GET_INTERP->Tsavestack) -#define PL_savestack_ix (PERL_GET_INTERP->Tsavestack_ix) -#define PL_savestack_max (PERL_GET_INTERP->Tsavestack_max) -#define PL_scopestack (PERL_GET_INTERP->Tscopestack) -#define PL_scopestack_ix (PERL_GET_INTERP->Tscopestack_ix) -#define PL_scopestack_max (PERL_GET_INTERP->Tscopestack_max) -#define PL_screamfirst (PERL_GET_INTERP->Tscreamfirst) -#define PL_screamnext (PERL_GET_INTERP->Tscreamnext) -#define PL_secondgv (PERL_GET_INTERP->Tsecondgv) -#define PL_seen_evals (PERL_GET_INTERP->Tseen_evals) -#define PL_seen_zerolen (PERL_GET_INTERP->Tseen_zerolen) -#define PL_sortcop (PERL_GET_INTERP->Tsortcop) -#define PL_sortcxix (PERL_GET_INTERP->Tsortcxix) -#define PL_sortstash (PERL_GET_INTERP->Tsortstash) -#define PL_stack_base (PERL_GET_INTERP->Tstack_base) -#define PL_stack_max (PERL_GET_INTERP->Tstack_max) -#define PL_stack_sp (PERL_GET_INTERP->Tstack_sp) -#define PL_start_env (PERL_GET_INTERP->Tstart_env) -#define PL_statbuf (PERL_GET_INTERP->Tstatbuf) -#define PL_statcache (PERL_GET_INTERP->Tstatcache) -#define PL_statgv (PERL_GET_INTERP->Tstatgv) -#define PL_statname (PERL_GET_INTERP->Tstatname) -#define PL_tainted (PERL_GET_INTERP->Ttainted) -#define PL_timesbuf (PERL_GET_INTERP->Ttimesbuf) -#define PL_tmps_floor (PERL_GET_INTERP->Ttmps_floor) -#define PL_tmps_ix (PERL_GET_INTERP->Ttmps_ix) -#define PL_tmps_max (PERL_GET_INTERP->Ttmps_max) -#define PL_tmps_stack (PERL_GET_INTERP->Ttmps_stack) -#define PL_top_env (PERL_GET_INTERP->Ttop_env) -#define PL_toptarget (PERL_GET_INTERP->Ttoptarget) -#define PL_watchaddr (PERL_GET_INTERP->Twatchaddr) -#define PL_watchok (PERL_GET_INTERP->Twatchok) +#define PL_Sv (vTHX->TSv) +#define PL_Xpv (vTHX->TXpv) +#define PL_av_fetch_sv (vTHX->Tav_fetch_sv) +#define PL_bodytarget (vTHX->Tbodytarget) +#define PL_bostr (vTHX->Tbostr) +#define PL_chopset (vTHX->Tchopset) +#define PL_colors (vTHX->Tcolors) +#define PL_colorset (vTHX->Tcolorset) +#define PL_curcop (vTHX->Tcurcop) +#define PL_curpad (vTHX->Tcurpad) +#define PL_curpm (vTHX->Tcurpm) +#define PL_curstack (vTHX->Tcurstack) +#define PL_curstackinfo (vTHX->Tcurstackinfo) +#define PL_curstash (vTHX->Tcurstash) +#define PL_defoutgv (vTHX->Tdefoutgv) +#define PL_defstash (vTHX->Tdefstash) +#define PL_delaymagic (vTHX->Tdelaymagic) +#define PL_dirty (vTHX->Tdirty) +#define PL_dumpindent (vTHX->Tdumpindent) +#define PL_extralen (vTHX->Textralen) +#define PL_firstgv (vTHX->Tfirstgv) +#define PL_formtarget (vTHX->Tformtarget) +#define PL_hv_fetch_ent_mh (vTHX->Thv_fetch_ent_mh) +#define PL_hv_fetch_sv (vTHX->Thv_fetch_sv) +#define PL_in_eval (vTHX->Tin_eval) +#define PL_last_in_gv (vTHX->Tlast_in_gv) +#define PL_lastgotoprobe (vTHX->Tlastgotoprobe) +#define PL_lastscream (vTHX->Tlastscream) +#define PL_localizing (vTHX->Tlocalizing) +#define PL_mainstack (vTHX->Tmainstack) +#define PL_markstack (vTHX->Tmarkstack) +#define PL_markstack_max (vTHX->Tmarkstack_max) +#define PL_markstack_ptr (vTHX->Tmarkstack_ptr) +#define PL_maxscream (vTHX->Tmaxscream) +#define PL_modcount (vTHX->Tmodcount) +#define PL_na (vTHX->Tna) +#define PL_nrs (vTHX->Tnrs) +#define PL_ofs (vTHX->Tofs) +#define PL_ofslen (vTHX->Tofslen) +#define PL_op (vTHX->Top) +#define PL_opsave (vTHX->Topsave) +#define PL_protect (vTHX->Tprotect) +#define PL_reg_call_cc (vTHX->Treg_call_cc) +#define PL_reg_curpm (vTHX->Treg_curpm) +#define PL_reg_eval_set (vTHX->Treg_eval_set) +#define PL_reg_flags (vTHX->Treg_flags) +#define PL_reg_ganch (vTHX->Treg_ganch) +#define PL_reg_leftiter (vTHX->Treg_leftiter) +#define PL_reg_magic (vTHX->Treg_magic) +#define PL_reg_maxiter (vTHX->Treg_maxiter) +#define PL_reg_oldcurpm (vTHX->Treg_oldcurpm) +#define PL_reg_oldpos (vTHX->Treg_oldpos) +#define PL_reg_oldsaved (vTHX->Treg_oldsaved) +#define PL_reg_oldsavedlen (vTHX->Treg_oldsavedlen) +#define PL_reg_poscache (vTHX->Treg_poscache) +#define PL_reg_poscache_size (vTHX->Treg_poscache_size) +#define PL_reg_re (vTHX->Treg_re) +#define PL_reg_start_tmp (vTHX->Treg_start_tmp) +#define PL_reg_start_tmpl (vTHX->Treg_start_tmpl) +#define PL_reg_starttry (vTHX->Treg_starttry) +#define PL_reg_sv (vTHX->Treg_sv) +#define PL_reg_whilem_seen (vTHX->Treg_whilem_seen) +#define PL_regbol (vTHX->Tregbol) +#define PL_regcc (vTHX->Tregcc) +#define PL_regcode (vTHX->Tregcode) +#define PL_regcomp_parse (vTHX->Tregcomp_parse) +#define PL_regcomp_rx (vTHX->Tregcomp_rx) +#define PL_regcompp (vTHX->Tregcompp) +#define PL_regdata (vTHX->Tregdata) +#define PL_regdummy (vTHX->Tregdummy) +#define PL_regendp (vTHX->Tregendp) +#define PL_regeol (vTHX->Tregeol) +#define PL_regexecp (vTHX->Tregexecp) +#define PL_regflags (vTHX->Tregflags) +#define PL_regfree (vTHX->Tregfree) +#define PL_regindent (vTHX->Tregindent) +#define PL_reginput (vTHX->Treginput) +#define PL_regint_start (vTHX->Tregint_start) +#define PL_regint_string (vTHX->Tregint_string) +#define PL_reginterp_cnt (vTHX->Treginterp_cnt) +#define PL_reglastparen (vTHX->Treglastparen) +#define PL_regnarrate (vTHX->Tregnarrate) +#define PL_regnaughty (vTHX->Tregnaughty) +#define PL_regnpar (vTHX->Tregnpar) +#define PL_regprecomp (vTHX->Tregprecomp) +#define PL_regprev (vTHX->Tregprev) +#define PL_regprogram (vTHX->Tregprogram) +#define PL_regsawback (vTHX->Tregsawback) +#define PL_regseen (vTHX->Tregseen) +#define PL_regsize (vTHX->Tregsize) +#define PL_regstartp (vTHX->Tregstartp) +#define PL_regtill (vTHX->Tregtill) +#define PL_regxend (vTHX->Tregxend) +#define PL_restartop (vTHX->Trestartop) +#define PL_retstack (vTHX->Tretstack) +#define PL_retstack_ix (vTHX->Tretstack_ix) +#define PL_retstack_max (vTHX->Tretstack_max) +#define PL_rs (vTHX->Trs) +#define PL_savestack (vTHX->Tsavestack) +#define PL_savestack_ix (vTHX->Tsavestack_ix) +#define PL_savestack_max (vTHX->Tsavestack_max) +#define PL_scopestack (vTHX->Tscopestack) +#define PL_scopestack_ix (vTHX->Tscopestack_ix) +#define PL_scopestack_max (vTHX->Tscopestack_max) +#define PL_screamfirst (vTHX->Tscreamfirst) +#define PL_screamnext (vTHX->Tscreamnext) +#define PL_secondgv (vTHX->Tsecondgv) +#define PL_seen_evals (vTHX->Tseen_evals) +#define PL_seen_zerolen (vTHX->Tseen_zerolen) +#define PL_sortcop (vTHX->Tsortcop) +#define PL_sortcxix (vTHX->Tsortcxix) +#define PL_sortstash (vTHX->Tsortstash) +#define PL_stack_base (vTHX->Tstack_base) +#define PL_stack_max (vTHX->Tstack_max) +#define PL_stack_sp (vTHX->Tstack_sp) +#define PL_start_env (vTHX->Tstart_env) +#define PL_statbuf (vTHX->Tstatbuf) +#define PL_statcache (vTHX->Tstatcache) +#define PL_statgv (vTHX->Tstatgv) +#define PL_statname (vTHX->Tstatname) +#define PL_tainted (vTHX->Ttainted) +#define PL_timesbuf (vTHX->Ttimesbuf) +#define PL_tmps_floor (vTHX->Ttmps_floor) +#define PL_tmps_ix (vTHX->Ttmps_ix) +#define PL_tmps_max (vTHX->Ttmps_max) +#define PL_tmps_stack (vTHX->Ttmps_stack) +#define PL_top_env (vTHX->Ttop_env) +#define PL_toptarget (vTHX->Ttoptarget) +#define PL_watchaddr (vTHX->Twatchaddr) +#define PL_watchok (vTHX->Twatchok) -#endif /* !PERL_IMPLICIT_CONTEXT */ -#endif /* !USE_THREADS */ +# if defined(PERL_OBJECT) +# include "error: PERL_OBJECT + MULTIPLICITY don't go together" +# endif -/* These are always per-interpreter if there is more than one */ +# if defined(USE_THREADS) +/* case 5 above */ #define PL_Argv (PERL_GET_INTERP->IArgv) #define PL_Cmd (PERL_GET_INTERP->ICmd) @@ -555,7 +436,281 @@ #define PL_yynerrs (PERL_GET_INTERP->Iyynerrs) #define PL_yyval (PERL_GET_INTERP->Iyyval) +# else /* !USE_THREADS */ +/* cases 2 and 3 above */ + +#define PL_Argv (vTHX->IArgv) +#define PL_Cmd (vTHX->ICmd) +#define PL_DBcv (vTHX->IDBcv) +#define PL_DBgv (vTHX->IDBgv) +#define PL_DBline (vTHX->IDBline) +#define PL_DBsignal (vTHX->IDBsignal) +#define PL_DBsingle (vTHX->IDBsingle) +#define PL_DBsub (vTHX->IDBsub) +#define PL_DBtrace (vTHX->IDBtrace) +#define PL_Dir (vTHX->IDir) +#define PL_Env (vTHX->IEnv) +#define PL_LIO (vTHX->ILIO) +#define PL_Mem (vTHX->IMem) +#define PL_Proc (vTHX->IProc) +#define PL_Sock (vTHX->ISock) +#define PL_StdIO (vTHX->IStdIO) +#define PL_amagic_generation (vTHX->Iamagic_generation) +#define PL_ampergv (vTHX->Iampergv) +#define PL_an (vTHX->Ian) +#define PL_archpat_auto (vTHX->Iarchpat_auto) +#define PL_argvgv (vTHX->Iargvgv) +#define PL_argvoutgv (vTHX->Iargvoutgv) +#define PL_basetime (vTHX->Ibasetime) +#define PL_beginav (vTHX->Ibeginav) +#define PL_bitcount (vTHX->Ibitcount) +#define PL_bufend (vTHX->Ibufend) +#define PL_bufptr (vTHX->Ibufptr) +#define PL_cddir (vTHX->Icddir) +#define PL_collation_ix (vTHX->Icollation_ix) +#define PL_collation_name (vTHX->Icollation_name) +#define PL_collation_standard (vTHX->Icollation_standard) +#define PL_collxfrm_base (vTHX->Icollxfrm_base) +#define PL_collxfrm_mult (vTHX->Icollxfrm_mult) +#define PL_compcv (vTHX->Icompcv) +#define PL_compiling (vTHX->Icompiling) +#define PL_comppad (vTHX->Icomppad) +#define PL_comppad_name (vTHX->Icomppad_name) +#define PL_comppad_name_fill (vTHX->Icomppad_name_fill) +#define PL_comppad_name_floor (vTHX->Icomppad_name_floor) +#define PL_cop_seqmax (vTHX->Icop_seqmax) +#define PL_copline (vTHX->Icopline) +#define PL_cred_mutex (vTHX->Icred_mutex) +#define PL_cryptseen (vTHX->Icryptseen) +#define PL_cshlen (vTHX->Icshlen) +#define PL_cshname (vTHX->Icshname) +#define PL_curcopdb (vTHX->Icurcopdb) +#define PL_curstname (vTHX->Icurstname) +#define PL_curthr (vTHX->Icurthr) +#define PL_dbargs (vTHX->Idbargs) +#define PL_debdelim (vTHX->Idebdelim) +#define PL_debname (vTHX->Idebname) +#define PL_debstash (vTHX->Idebstash) +#define PL_debug (vTHX->Idebug) +#define PL_defgv (vTHX->Idefgv) +#define PL_diehook (vTHX->Idiehook) +#define PL_dlevel (vTHX->Idlevel) +#define PL_dlmax (vTHX->Idlmax) +#define PL_doextract (vTHX->Idoextract) +#define PL_doswitches (vTHX->Idoswitches) +#define PL_dowarn (vTHX->Idowarn) +#define PL_e_script (vTHX->Ie_script) +#define PL_efloatbuf (vTHX->Iefloatbuf) +#define PL_efloatsize (vTHX->Iefloatsize) +#define PL_egid (vTHX->Iegid) +#define PL_endav (vTHX->Iendav) +#define PL_envgv (vTHX->Ienvgv) +#define PL_errgv (vTHX->Ierrgv) +#define PL_error_count (vTHX->Ierror_count) +#define PL_euid (vTHX->Ieuid) +#define PL_eval_cond (vTHX->Ieval_cond) +#define PL_eval_mutex (vTHX->Ieval_mutex) +#define PL_eval_owner (vTHX->Ieval_owner) +#define PL_eval_root (vTHX->Ieval_root) +#define PL_eval_start (vTHX->Ieval_start) +#define PL_evalseq (vTHX->Ievalseq) +#define PL_exitlist (vTHX->Iexitlist) +#define PL_exitlistlen (vTHX->Iexitlistlen) +#define PL_expect (vTHX->Iexpect) +#define PL_fdpid (vTHX->Ifdpid) +#define PL_filemode (vTHX->Ifilemode) +#define PL_filter_debug (vTHX->Ifilter_debug) +#define PL_forkprocess (vTHX->Iforkprocess) +#define PL_formfeed (vTHX->Iformfeed) +#define PL_generation (vTHX->Igeneration) +#define PL_gensym (vTHX->Igensym) +#define PL_gid (vTHX->Igid) +#define PL_glob_index (vTHX->Iglob_index) +#define PL_globalstash (vTHX->Iglobalstash) +#define PL_he_root (vTHX->Ihe_root) +#define PL_hintgv (vTHX->Ihintgv) +#define PL_hints (vTHX->Ihints) +#define PL_in_clean_all (vTHX->Iin_clean_all) +#define PL_in_clean_objs (vTHX->Iin_clean_objs) +#define PL_in_my (vTHX->Iin_my) +#define PL_in_my_stash (vTHX->Iin_my_stash) +#define PL_incgv (vTHX->Iincgv) +#define PL_initav (vTHX->Iinitav) +#define PL_inplace (vTHX->Iinplace) +#define PL_last_lop (vTHX->Ilast_lop) +#define PL_last_lop_op (vTHX->Ilast_lop_op) +#define PL_last_swash_hv (vTHX->Ilast_swash_hv) +#define PL_last_swash_key (vTHX->Ilast_swash_key) +#define PL_last_swash_klen (vTHX->Ilast_swash_klen) +#define PL_last_swash_slen (vTHX->Ilast_swash_slen) +#define PL_last_swash_tmps (vTHX->Ilast_swash_tmps) +#define PL_last_uni (vTHX->Ilast_uni) +#define PL_lastfd (vTHX->Ilastfd) +#define PL_lastsize (vTHX->Ilastsize) +#define PL_lastspbase (vTHX->Ilastspbase) +#define PL_laststatval (vTHX->Ilaststatval) +#define PL_laststype (vTHX->Ilaststype) +#define PL_leftgv (vTHX->Ileftgv) +#define PL_lex_brackets (vTHX->Ilex_brackets) +#define PL_lex_brackstack (vTHX->Ilex_brackstack) +#define PL_lex_casemods (vTHX->Ilex_casemods) +#define PL_lex_casestack (vTHX->Ilex_casestack) +#define PL_lex_defer (vTHX->Ilex_defer) +#define PL_lex_dojoin (vTHX->Ilex_dojoin) +#define PL_lex_expect (vTHX->Ilex_expect) +#define PL_lex_fakebrack (vTHX->Ilex_fakebrack) +#define PL_lex_formbrack (vTHX->Ilex_formbrack) +#define PL_lex_inpat (vTHX->Ilex_inpat) +#define PL_lex_inwhat (vTHX->Ilex_inwhat) +#define PL_lex_op (vTHX->Ilex_op) +#define PL_lex_repl (vTHX->Ilex_repl) +#define PL_lex_starts (vTHX->Ilex_starts) +#define PL_lex_state (vTHX->Ilex_state) +#define PL_lex_stuff (vTHX->Ilex_stuff) +#define PL_lineary (vTHX->Ilineary) +#define PL_linestart (vTHX->Ilinestart) +#define PL_linestr (vTHX->Ilinestr) +#define PL_localpatches (vTHX->Ilocalpatches) +#define PL_main_cv (vTHX->Imain_cv) +#define PL_main_root (vTHX->Imain_root) +#define PL_main_start (vTHX->Imain_start) +#define PL_malloc_mutex (vTHX->Imalloc_mutex) +#define PL_max_intro_pending (vTHX->Imax_intro_pending) +#define PL_maxo (vTHX->Imaxo) +#define PL_maxsysfd (vTHX->Imaxsysfd) +#define PL_mess_sv (vTHX->Imess_sv) +#define PL_min_intro_pending (vTHX->Imin_intro_pending) +#define PL_minus_F (vTHX->Iminus_F) +#define PL_minus_a (vTHX->Iminus_a) +#define PL_minus_c (vTHX->Iminus_c) +#define PL_minus_l (vTHX->Iminus_l) +#define PL_minus_n (vTHX->Iminus_n) +#define PL_minus_p (vTHX->Iminus_p) +#define PL_modglobal (vTHX->Imodglobal) +#define PL_multi_close (vTHX->Imulti_close) +#define PL_multi_end (vTHX->Imulti_end) +#define PL_multi_open (vTHX->Imulti_open) +#define PL_multi_start (vTHX->Imulti_start) +#define PL_multiline (vTHX->Imultiline) +#define PL_mystrk (vTHX->Imystrk) +#define PL_nexttoke (vTHX->Inexttoke) +#define PL_nexttype (vTHX->Inexttype) +#define PL_nextval (vTHX->Inextval) +#define PL_nice_chunk (vTHX->Inice_chunk) +#define PL_nice_chunk_size (vTHX->Inice_chunk_size) +#define PL_nomemok (vTHX->Inomemok) +#define PL_nthreads (vTHX->Inthreads) +#define PL_nthreads_cond (vTHX->Inthreads_cond) +#define PL_numeric_local (vTHX->Inumeric_local) +#define PL_numeric_name (vTHX->Inumeric_name) +#define PL_numeric_radix (vTHX->Inumeric_radix) +#define PL_numeric_standard (vTHX->Inumeric_standard) +#define PL_ofmt (vTHX->Iofmt) +#define PL_oldbufptr (vTHX->Ioldbufptr) +#define PL_oldlastpm (vTHX->Ioldlastpm) +#define PL_oldname (vTHX->Ioldname) +#define PL_oldoldbufptr (vTHX->Ioldoldbufptr) +#define PL_op_mask (vTHX->Iop_mask) +#define PL_op_seqmax (vTHX->Iop_seqmax) +#define PL_origalen (vTHX->Iorigalen) +#define PL_origargc (vTHX->Iorigargc) +#define PL_origargv (vTHX->Iorigargv) +#define PL_origenviron (vTHX->Iorigenviron) +#define PL_origfilename (vTHX->Iorigfilename) +#define PL_ors (vTHX->Iors) +#define PL_orslen (vTHX->Iorslen) +#define PL_osname (vTHX->Iosname) +#define PL_pad_reset_pending (vTHX->Ipad_reset_pending) +#define PL_padix (vTHX->Ipadix) +#define PL_padix_floor (vTHX->Ipadix_floor) +#define PL_parsehook (vTHX->Iparsehook) +#define PL_patchlevel (vTHX->Ipatchlevel) +#define PL_pending_ident (vTHX->Ipending_ident) +#define PL_perl_destruct_level (vTHX->Iperl_destruct_level) +#define PL_perldb (vTHX->Iperldb) +#define PL_pidstatus (vTHX->Ipidstatus) +#define PL_preambleav (vTHX->Ipreambleav) +#define PL_preambled (vTHX->Ipreambled) +#define PL_preprocess (vTHX->Ipreprocess) +#define PL_profiledata (vTHX->Iprofiledata) +#define PL_replgv (vTHX->Ireplgv) +#define PL_rightgv (vTHX->Irightgv) +#define PL_rsfp (vTHX->Irsfp) +#define PL_rsfp_filters (vTHX->Irsfp_filters) +#define PL_runops (vTHX->Irunops) +#define PL_sawampersand (vTHX->Isawampersand) +#define PL_sawstudy (vTHX->Isawstudy) +#define PL_sawvec (vTHX->Isawvec) +#define PL_sh_path (vTHX->Ish_path) +#define PL_siggv (vTHX->Isiggv) +#define PL_sighandlerp (vTHX->Isighandlerp) +#define PL_splitstr (vTHX->Isplitstr) +#define PL_srand_called (vTHX->Isrand_called) +#define PL_statusvalue (vTHX->Istatusvalue) +#define PL_statusvalue_vms (vTHX->Istatusvalue_vms) +#define PL_stdingv (vTHX->Istdingv) +#define PL_strchop (vTHX->Istrchop) +#define PL_strtab (vTHX->Istrtab) +#define PL_strtab_mutex (vTHX->Istrtab_mutex) +#define PL_sub_generation (vTHX->Isub_generation) +#define PL_sublex_info (vTHX->Isublex_info) +#define PL_subline (vTHX->Isubline) +#define PL_subname (vTHX->Isubname) +#define PL_sv_arenaroot (vTHX->Isv_arenaroot) +#define PL_sv_count (vTHX->Isv_count) +#define PL_sv_mutex (vTHX->Isv_mutex) +#define PL_sv_no (vTHX->Isv_no) +#define PL_sv_objcount (vTHX->Isv_objcount) +#define PL_sv_root (vTHX->Isv_root) +#define PL_sv_undef (vTHX->Isv_undef) +#define PL_sv_yes (vTHX->Isv_yes) +#define PL_svref_mutex (vTHX->Isvref_mutex) +#define PL_sys_intern (vTHX->Isys_intern) +#define PL_tainting (vTHX->Itainting) +#define PL_thisexpr (vTHX->Ithisexpr) +#define PL_thr_key (vTHX->Ithr_key) +#define PL_threadnum (vTHX->Ithreadnum) +#define PL_threads_mutex (vTHX->Ithreads_mutex) +#define PL_threadsv_names (vTHX->Ithreadsv_names) +#define PL_thrsv (vTHX->Ithrsv) +#define PL_tokenbuf (vTHX->Itokenbuf) +#define PL_uid (vTHX->Iuid) +#define PL_unsafe (vTHX->Iunsafe) +#define PL_utf8_alnum (vTHX->Iutf8_alnum) +#define PL_utf8_alnumc (vTHX->Iutf8_alnumc) +#define PL_utf8_alpha (vTHX->Iutf8_alpha) +#define PL_utf8_ascii (vTHX->Iutf8_ascii) +#define PL_utf8_cntrl (vTHX->Iutf8_cntrl) +#define PL_utf8_digit (vTHX->Iutf8_digit) +#define PL_utf8_graph (vTHX->Iutf8_graph) +#define PL_utf8_lower (vTHX->Iutf8_lower) +#define PL_utf8_mark (vTHX->Iutf8_mark) +#define PL_utf8_print (vTHX->Iutf8_print) +#define PL_utf8_punct (vTHX->Iutf8_punct) +#define PL_utf8_space (vTHX->Iutf8_space) +#define PL_utf8_tolower (vTHX->Iutf8_tolower) +#define PL_utf8_totitle (vTHX->Iutf8_totitle) +#define PL_utf8_toupper (vTHX->Iutf8_toupper) +#define PL_utf8_upper (vTHX->Iutf8_upper) +#define PL_utf8_xdigit (vTHX->Iutf8_xdigit) +#define PL_uudmap (vTHX->Iuudmap) +#define PL_warnhook (vTHX->Iwarnhook) +#define PL_xiv_arenaroot (vTHX->Ixiv_arenaroot) +#define PL_xiv_root (vTHX->Ixiv_root) +#define PL_xnv_root (vTHX->Ixnv_root) +#define PL_xpv_root (vTHX->Ixpv_root) +#define PL_xrv_root (vTHX->Ixrv_root) +#define PL_yychar (vTHX->Iyychar) +#define PL_yydebug (vTHX->Iyydebug) +#define PL_yyerrflag (vTHX->Iyyerrflag) +#define PL_yylval (vTHX->Iyylval) +#define PL_yynerrs (vTHX->Iyynerrs) +#define PL_yyval (vTHX->Iyyval) + +# endif /* USE_THREADS */ + #else /* !MULTIPLICITY */ +/* cases 1, 4 and 6 above */ #define PL_IArgv PL_Argv #define PL_ICmd PL_Cmd @@ -825,7 +980,142 @@ #define PL_Iyynerrs PL_yynerrs #define PL_Iyyval PL_yyval -#ifndef USE_THREADS +# if defined(USE_THREADS) +/* case 4 above */ + +#define PL_Sv (aTHX->TSv) +#define PL_Xpv (aTHX->TXpv) +#define PL_av_fetch_sv (aTHX->Tav_fetch_sv) +#define PL_bodytarget (aTHX->Tbodytarget) +#define PL_bostr (aTHX->Tbostr) +#define PL_chopset (aTHX->Tchopset) +#define PL_colors (aTHX->Tcolors) +#define PL_colorset (aTHX->Tcolorset) +#define PL_curcop (aTHX->Tcurcop) +#define PL_curpad (aTHX->Tcurpad) +#define PL_curpm (aTHX->Tcurpm) +#define PL_curstack (aTHX->Tcurstack) +#define PL_curstackinfo (aTHX->Tcurstackinfo) +#define PL_curstash (aTHX->Tcurstash) +#define PL_defoutgv (aTHX->Tdefoutgv) +#define PL_defstash (aTHX->Tdefstash) +#define PL_delaymagic (aTHX->Tdelaymagic) +#define PL_dirty (aTHX->Tdirty) +#define PL_dumpindent (aTHX->Tdumpindent) +#define PL_extralen (aTHX->Textralen) +#define PL_firstgv (aTHX->Tfirstgv) +#define PL_formtarget (aTHX->Tformtarget) +#define PL_hv_fetch_ent_mh (aTHX->Thv_fetch_ent_mh) +#define PL_hv_fetch_sv (aTHX->Thv_fetch_sv) +#define PL_in_eval (aTHX->Tin_eval) +#define PL_last_in_gv (aTHX->Tlast_in_gv) +#define PL_lastgotoprobe (aTHX->Tlastgotoprobe) +#define PL_lastscream (aTHX->Tlastscream) +#define PL_localizing (aTHX->Tlocalizing) +#define PL_mainstack (aTHX->Tmainstack) +#define PL_markstack (aTHX->Tmarkstack) +#define PL_markstack_max (aTHX->Tmarkstack_max) +#define PL_markstack_ptr (aTHX->Tmarkstack_ptr) +#define PL_maxscream (aTHX->Tmaxscream) +#define PL_modcount (aTHX->Tmodcount) +#define PL_na (aTHX->Tna) +#define PL_nrs (aTHX->Tnrs) +#define PL_ofs (aTHX->Tofs) +#define PL_ofslen (aTHX->Tofslen) +#define PL_op (aTHX->Top) +#define PL_opsave (aTHX->Topsave) +#define PL_protect (aTHX->Tprotect) +#define PL_reg_call_cc (aTHX->Treg_call_cc) +#define PL_reg_curpm (aTHX->Treg_curpm) +#define PL_reg_eval_set (aTHX->Treg_eval_set) +#define PL_reg_flags (aTHX->Treg_flags) +#define PL_reg_ganch (aTHX->Treg_ganch) +#define PL_reg_leftiter (aTHX->Treg_leftiter) +#define PL_reg_magic (aTHX->Treg_magic) +#define PL_reg_maxiter (aTHX->Treg_maxiter) +#define PL_reg_oldcurpm (aTHX->Treg_oldcurpm) +#define PL_reg_oldpos (aTHX->Treg_oldpos) +#define PL_reg_oldsaved (aTHX->Treg_oldsaved) +#define PL_reg_oldsavedlen (aTHX->Treg_oldsavedlen) +#define PL_reg_poscache (aTHX->Treg_poscache) +#define PL_reg_poscache_size (aTHX->Treg_poscache_size) +#define PL_reg_re (aTHX->Treg_re) +#define PL_reg_start_tmp (aTHX->Treg_start_tmp) +#define PL_reg_start_tmpl (aTHX->Treg_start_tmpl) +#define PL_reg_starttry (aTHX->Treg_starttry) +#define PL_reg_sv (aTHX->Treg_sv) +#define PL_reg_whilem_seen (aTHX->Treg_whilem_seen) +#define PL_regbol (aTHX->Tregbol) +#define PL_regcc (aTHX->Tregcc) +#define PL_regcode (aTHX->Tregcode) +#define PL_regcomp_parse (aTHX->Tregcomp_parse) +#define PL_regcomp_rx (aTHX->Tregcomp_rx) +#define PL_regcompp (aTHX->Tregcompp) +#define PL_regdata (aTHX->Tregdata) +#define PL_regdummy (aTHX->Tregdummy) +#define PL_regendp (aTHX->Tregendp) +#define PL_regeol (aTHX->Tregeol) +#define PL_regexecp (aTHX->Tregexecp) +#define PL_regflags (aTHX->Tregflags) +#define PL_regfree (aTHX->Tregfree) +#define PL_regindent (aTHX->Tregindent) +#define PL_reginput (aTHX->Treginput) +#define PL_regint_start (aTHX->Tregint_start) +#define PL_regint_string (aTHX->Tregint_string) +#define PL_reginterp_cnt (aTHX->Treginterp_cnt) +#define PL_reglastparen (aTHX->Treglastparen) +#define PL_regnarrate (aTHX->Tregnarrate) +#define PL_regnaughty (aTHX->Tregnaughty) +#define PL_regnpar (aTHX->Tregnpar) +#define PL_regprecomp (aTHX->Tregprecomp) +#define PL_regprev (aTHX->Tregprev) +#define PL_regprogram (aTHX->Tregprogram) +#define PL_regsawback (aTHX->Tregsawback) +#define PL_regseen (aTHX->Tregseen) +#define PL_regsize (aTHX->Tregsize) +#define PL_regstartp (aTHX->Tregstartp) +#define PL_regtill (aTHX->Tregtill) +#define PL_regxend (aTHX->Tregxend) +#define PL_restartop (aTHX->Trestartop) +#define PL_retstack (aTHX->Tretstack) +#define PL_retstack_ix (aTHX->Tretstack_ix) +#define PL_retstack_max (aTHX->Tretstack_max) +#define PL_rs (aTHX->Trs) +#define PL_savestack (aTHX->Tsavestack) +#define PL_savestack_ix (aTHX->Tsavestack_ix) +#define PL_savestack_max (aTHX->Tsavestack_max) +#define PL_scopestack (aTHX->Tscopestack) +#define PL_scopestack_ix (aTHX->Tscopestack_ix) +#define PL_scopestack_max (aTHX->Tscopestack_max) +#define PL_screamfirst (aTHX->Tscreamfirst) +#define PL_screamnext (aTHX->Tscreamnext) +#define PL_secondgv (aTHX->Tsecondgv) +#define PL_seen_evals (aTHX->Tseen_evals) +#define PL_seen_zerolen (aTHX->Tseen_zerolen) +#define PL_sortcop (aTHX->Tsortcop) +#define PL_sortcxix (aTHX->Tsortcxix) +#define PL_sortstash (aTHX->Tsortstash) +#define PL_stack_base (aTHX->Tstack_base) +#define PL_stack_max (aTHX->Tstack_max) +#define PL_stack_sp (aTHX->Tstack_sp) +#define PL_start_env (aTHX->Tstart_env) +#define PL_statbuf (aTHX->Tstatbuf) +#define PL_statcache (aTHX->Tstatcache) +#define PL_statgv (aTHX->Tstatgv) +#define PL_statname (aTHX->Tstatname) +#define PL_tainted (aTHX->Ttainted) +#define PL_timesbuf (aTHX->Ttimesbuf) +#define PL_tmps_floor (aTHX->Ttmps_floor) +#define PL_tmps_ix (aTHX->Ttmps_ix) +#define PL_tmps_max (aTHX->Ttmps_max) +#define PL_tmps_stack (aTHX->Ttmps_stack) +#define PL_top_env (aTHX->Ttop_env) +#define PL_toptarget (aTHX->Ttoptarget) +#define PL_watchaddr (aTHX->Twatchaddr) +#define PL_watchok (aTHX->Twatchok) + +# else /* !USE_THREADS */ +/* cases 1 and 6 above */ #define PL_TSv PL_Sv #define PL_TXpv PL_Xpv @@ -958,155 +1248,10 @@ #define PL_Twatchaddr PL_watchaddr #define PL_Twatchok PL_watchok -#endif /* USE_THREADS */ - -/* Hide what would have been interpreter-specific symbols? */ +# endif /* USE_THREADS */ +#endif /* MULTIPLICITY */ - -#ifndef USE_THREADS - - -#endif /* USE_THREADS */ -#endif /* MULTIPLICITY */ - -/* Now same trickey for per-thread variables */ - -#ifdef USE_THREADS - -#define PL_Sv (thr->TSv) -#define PL_Xpv (thr->TXpv) -#define PL_av_fetch_sv (thr->Tav_fetch_sv) -#define PL_bodytarget (thr->Tbodytarget) -#define PL_bostr (thr->Tbostr) -#define PL_chopset (thr->Tchopset) -#define PL_colors (thr->Tcolors) -#define PL_colorset (thr->Tcolorset) -#define PL_curcop (thr->Tcurcop) -#define PL_curpad (thr->Tcurpad) -#define PL_curpm (thr->Tcurpm) -#define PL_curstack (thr->Tcurstack) -#define PL_curstackinfo (thr->Tcurstackinfo) -#define PL_curstash (thr->Tcurstash) -#define PL_defoutgv (thr->Tdefoutgv) -#define PL_defstash (thr->Tdefstash) -#define PL_delaymagic (thr->Tdelaymagic) -#define PL_dirty (thr->Tdirty) -#define PL_dumpindent (thr->Tdumpindent) -#define PL_extralen (thr->Textralen) -#define PL_firstgv (thr->Tfirstgv) -#define PL_formtarget (thr->Tformtarget) -#define PL_hv_fetch_ent_mh (thr->Thv_fetch_ent_mh) -#define PL_hv_fetch_sv (thr->Thv_fetch_sv) -#define PL_in_eval (thr->Tin_eval) -#define PL_last_in_gv (thr->Tlast_in_gv) -#define PL_lastgotoprobe (thr->Tlastgotoprobe) -#define PL_lastscream (thr->Tlastscream) -#define PL_localizing (thr->Tlocalizing) -#define PL_mainstack (thr->Tmainstack) -#define PL_markstack (thr->Tmarkstack) -#define PL_markstack_max (thr->Tmarkstack_max) -#define PL_markstack_ptr (thr->Tmarkstack_ptr) -#define PL_maxscream (thr->Tmaxscream) -#define PL_modcount (thr->Tmodcount) -#define PL_na (thr->Tna) -#define PL_nrs (thr->Tnrs) -#define PL_ofs (thr->Tofs) -#define PL_ofslen (thr->Tofslen) -#define PL_op (thr->Top) -#define PL_opsave (thr->Topsave) -#define PL_protect (thr->Tprotect) -#define PL_reg_call_cc (thr->Treg_call_cc) -#define PL_reg_curpm (thr->Treg_curpm) -#define PL_reg_eval_set (thr->Treg_eval_set) -#define PL_reg_flags (thr->Treg_flags) -#define PL_reg_ganch (thr->Treg_ganch) -#define PL_reg_leftiter (thr->Treg_leftiter) -#define PL_reg_magic (thr->Treg_magic) -#define PL_reg_maxiter (thr->Treg_maxiter) -#define PL_reg_oldcurpm (thr->Treg_oldcurpm) -#define PL_reg_oldpos (thr->Treg_oldpos) -#define PL_reg_oldsaved (thr->Treg_oldsaved) -#define PL_reg_oldsavedlen (thr->Treg_oldsavedlen) -#define PL_reg_poscache (thr->Treg_poscache) -#define PL_reg_poscache_size (thr->Treg_poscache_size) -#define PL_reg_re (thr->Treg_re) -#define PL_reg_start_tmp (thr->Treg_start_tmp) -#define PL_reg_start_tmpl (thr->Treg_start_tmpl) -#define PL_reg_starttry (thr->Treg_starttry) -#define PL_reg_sv (thr->Treg_sv) -#define PL_reg_whilem_seen (thr->Treg_whilem_seen) -#define PL_regbol (thr->Tregbol) -#define PL_regcc (thr->Tregcc) -#define PL_regcode (thr->Tregcode) -#define PL_regcomp_parse (thr->Tregcomp_parse) -#define PL_regcomp_rx (thr->Tregcomp_rx) -#define PL_regcompp (thr->Tregcompp) -#define PL_regdata (thr->Tregdata) -#define PL_regdummy (thr->Tregdummy) -#define PL_regendp (thr->Tregendp) -#define PL_regeol (thr->Tregeol) -#define PL_regexecp (thr->Tregexecp) -#define PL_regflags (thr->Tregflags) -#define PL_regfree (thr->Tregfree) -#define PL_regindent (thr->Tregindent) -#define PL_reginput (thr->Treginput) -#define PL_regint_start (thr->Tregint_start) -#define PL_regint_string (thr->Tregint_string) -#define PL_reginterp_cnt (thr->Treginterp_cnt) -#define PL_reglastparen (thr->Treglastparen) -#define PL_regnarrate (thr->Tregnarrate) -#define PL_regnaughty (thr->Tregnaughty) -#define PL_regnpar (thr->Tregnpar) -#define PL_regprecomp (thr->Tregprecomp) -#define PL_regprev (thr->Tregprev) -#define PL_regprogram (thr->Tregprogram) -#define PL_regsawback (thr->Tregsawback) -#define PL_regseen (thr->Tregseen) -#define PL_regsize (thr->Tregsize) -#define PL_regstartp (thr->Tregstartp) -#define PL_regtill (thr->Tregtill) -#define PL_regxend (thr->Tregxend) -#define PL_restartop (thr->Trestartop) -#define PL_retstack (thr->Tretstack) -#define PL_retstack_ix (thr->Tretstack_ix) -#define PL_retstack_max (thr->Tretstack_max) -#define PL_rs (thr->Trs) -#define PL_savestack (thr->Tsavestack) -#define PL_savestack_ix (thr->Tsavestack_ix) -#define PL_savestack_max (thr->Tsavestack_max) -#define PL_scopestack (thr->Tscopestack) -#define PL_scopestack_ix (thr->Tscopestack_ix) -#define PL_scopestack_max (thr->Tscopestack_max) -#define PL_screamfirst (thr->Tscreamfirst) -#define PL_screamnext (thr->Tscreamnext) -#define PL_secondgv (thr->Tsecondgv) -#define PL_seen_evals (thr->Tseen_evals) -#define PL_seen_zerolen (thr->Tseen_zerolen) -#define PL_sortcop (thr->Tsortcop) -#define PL_sortcxix (thr->Tsortcxix) -#define PL_sortstash (thr->Tsortstash) -#define PL_stack_base (thr->Tstack_base) -#define PL_stack_max (thr->Tstack_max) -#define PL_stack_sp (thr->Tstack_sp) -#define PL_start_env (thr->Tstart_env) -#define PL_statbuf (thr->Tstatbuf) -#define PL_statcache (thr->Tstatcache) -#define PL_statgv (thr->Tstatgv) -#define PL_statname (thr->Tstatname) -#define PL_tainted (thr->Ttainted) -#define PL_timesbuf (thr->Ttimesbuf) -#define PL_tmps_floor (thr->Ttmps_floor) -#define PL_tmps_ix (thr->Ttmps_ix) -#define PL_tmps_max (thr->Ttmps_max) -#define PL_tmps_stack (thr->Ttmps_stack) -#define PL_top_env (thr->Ttop_env) -#define PL_toptarget (thr->Ttoptarget) -#define PL_watchaddr (thr->Twatchaddr) -#define PL_watchok (thr->Twatchok) - -#endif /* USE_THREADS */ - -#ifdef PERL_GLOBAL_STRUCT +#if defined(PERL_GLOBAL_STRUCT) #define PL_No (PL_Vars.GNo) #define PL_Yes (PL_Vars.GYes) @@ -1124,10 +1269,8 @@ #define PL_Ghexdigit PL_hexdigit #define PL_Gpatleave PL_patleave - #endif /* PERL_GLOBAL_STRUCT */ - #ifdef PERL_POLLUTE /* disabled by default in 5.006 */ #define DBsingle PL_DBsingle |