diff options
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | Makefile.SH | 2 | ||||
-rw-r--r-- | Makefile.micro | 2 | ||||
-rw-r--r-- | NetWare/Makefile | 3 | ||||
-rw-r--r-- | embed.h | 2 | ||||
-rwxr-xr-x | embed.pl | 28 | ||||
-rw-r--r-- | embedvar.h | 317 | ||||
-rw-r--r-- | global.sym | 2 | ||||
-rw-r--r-- | intrpvar.h | 193 | ||||
-rw-r--r-- | lib/ExtUtils/MM_Unix.pm | 1 | ||||
-rw-r--r-- | lib/ExtUtils/MM_VMS.pm | 2 | ||||
-rw-r--r-- | makedef.pl | 13 | ||||
-rw-r--r-- | perl.c | 2 | ||||
-rw-r--r-- | perl.h | 2 | ||||
-rw-r--r-- | perlapi.c | 3 | ||||
-rw-r--r-- | perlapi.h | 316 | ||||
-rw-r--r-- | pod/perlapi.pod | 132 | ||||
-rw-r--r-- | pod/perlintern.pod | 172 | ||||
-rw-r--r-- | pod/perltodo.pod | 2 | ||||
-rw-r--r-- | proto.h | 2 | ||||
-rw-r--r-- | sv.c | 132 | ||||
-rw-r--r-- | thrdvar.h | 196 | ||||
-rw-r--r-- | vms/descrip_mms.template | 9 | ||||
-rw-r--r-- | win32/Makefile | 1 | ||||
-rw-r--r-- | win32/Makefile.ce | 1 | ||||
-rw-r--r-- | win32/makefile.mk | 1 |
26 files changed, 731 insertions, 806 deletions
@@ -3382,7 +3382,6 @@ t/comp/uproto.t See if the _ prototype works t/comp/use.t See if pragmata work t/comp/utf.t See if UTFs work t/harness Finer diagnostics from test suite -thrdvar.h Per-thread variables thread.h Threading header t/io/argv.t See if ARGV stuff works t/io/binmode.t See if binmode() works diff --git a/Makefile.SH b/Makefile.SH index 4ede36f106..dcdd27fb82 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -948,7 +948,7 @@ perly.h: perly.y # No interp.sym since 5.005_03. SYM = global.sym globvar.sym perlio.sym pp.sym -SYMH = perlvars.h intrpvar.h thrdvar.h +SYMH = perlvars.h intrpvar.h CHMOD_W = chmod +w diff --git a/Makefile.micro b/Makefile.micro index b851edb7d7..be89251e53 100644 --- a/Makefile.micro +++ b/Makefile.micro @@ -25,7 +25,7 @@ microperl: $(O) H = av.h uconfig.h cop.h cv.h embed.h embedvar.h form.h gv.h handy.h \ hv.h intrpvar.h iperlsys.h mg.h op.h opcode.h opnames.h pad.h \ patchlevel.h perl.h perlsdio.h perlvars.h perly.h pp.h \ - pp_proto.h proto.h reentr.h regexp.h scope.h sv.h thrdvar.h \ + pp_proto.h proto.h reentr.h regexp.h scope.h sv.h \ thread.h unixish.h utf8.h util.h warnings.h HE = $(H) EXTERN.h diff --git a/NetWare/Makefile b/NetWare/Makefile index 9e7515f136..eb792117fe 100644 --- a/NetWare/Makefile +++ b/NetWare/Makefile @@ -782,8 +782,7 @@ CORE_NOCFG_H = \ ..\XSUB.h \ ..\EXTERN.h \ ..\perlvars.h \ - ..\intrpvar.h \ - ..\thrdvar.h + ..\intrpvar.h CORE_H = $(CORE_NOCFG_H) .\config.h @@ -10,7 +10,7 @@ * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by embed.pl from data in embed.fnc, embed.pl, - * pp.sym, intrpvar.h, perlvars.h and thrdvar.h. + * pp.sym, intrpvar.h, and perlvars.h. * Any changes made here will be lost! * * Edit those files and run 'make regen_headers' to effect changes. @@ -39,7 +39,7 @@ sub do_not_edit ($) !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by embed.pl from data in embed.fnc, embed.pl, -pp.sym, intrpvar.h, perlvars.h and thrdvar.h. +pp.sym, intrpvar.h, and perlvars.h. Any changes made here will be lost! Edit those files and run 'make regen_headers' to effect changes. @@ -342,17 +342,12 @@ sub readvars(\%$$@) { } my %intrp; -my %thread; my %globvar; readvars %intrp, 'intrpvar.h','I'; -readvars %thread, 'thrdvar.h','T'; readvars %globvar, 'perlvars.h','G'; my $sym; -foreach $sym (sort keys %thread) { - warn "$sym in intrpvar.h as well as thrdvar.h\n" if exists $intrp{$sym}; -} sub undefine ($) { my ($sym) = @_; @@ -669,16 +664,6 @@ print EM do_not_edit ("embedvar.h"), <<'END'; END -for $sym (sort keys %thread) { - print EM multon($sym,'T','vTHX->'); -} - -print EM <<'END'; - -/* cases 2 and 3 above */ - -END - for $sym (sort keys %intrp) { print EM multon($sym,'I','vTHX->'); } @@ -699,10 +684,6 @@ print EM <<'END'; END -for $sym (sort keys %thread) { - print EM multoff($sym,'T'); -} - print EM <<'END'; #endif /* MULTIPLICITY */ @@ -777,7 +758,6 @@ START_EXTERN_C #define PERLVARISC(v,i) typedef const char PL_##v##_t[sizeof(i)]; \ EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX); -#include "thrdvar.h" #include "intrpvar.h" #include "perlvars.h" @@ -836,7 +816,6 @@ EXTCONST void * const PL_force_link_funcs[] = { #pragma message disable (nonstandcast) #endif -#include "thrdvar.h" #include "intrpvar.h" #include "perlvars.h" @@ -864,10 +843,6 @@ foreach $sym (sort keys %intrp) { print CAPIH bincompat_var('I',$sym); } -foreach $sym (sort keys %thread) { - print CAPIH bincompat_var('T',$sym); -} - foreach $sym (sort keys %globvar) { print CAPIH bincompat_var('G',$sym); } @@ -910,7 +885,6 @@ START_EXTERN_C #define PERLVARISC(v,i) PL_##v##_t* Perl_##v##_ptr(pTHX) \ { dVAR; PERL_UNUSED_CONTEXT; return &(aTHX->v); } -#include "thrdvar.h" #include "intrpvar.h" #undef PERLVAR diff --git a/embedvar.h b/embedvar.h index 99f0864527..adbfa1d7ab 100644 --- a/embedvar.h +++ b/embedvar.h @@ -10,7 +10,7 @@ * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by embed.pl from data in embed.fnc, embed.pl, - * pp.sym, intrpvar.h, perlvars.h and thrdvar.h. + * pp.sym, intrpvar.h, and perlvars.h. * Any changes made here will be lost! * * Edit those files and run 'make regen_headers' to effect changes. @@ -40,87 +40,6 @@ # define vTHX PERL_GET_INTERP # endif -#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_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_delayedisa (vTHX->Tdelayedisa) -#define PL_delaymagic (vTHX->Tdelaymagic) -#define PL_dirty (vTHX->Tdirty) -#define PL_dumpindent (vTHX->Tdumpindent) -#define PL_efloatbuf (vTHX->Tefloatbuf) -#define PL_efloatsize (vTHX->Tefloatsize) -#define PL_errors (vTHX->Terrors) -#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_ofs_sv (vTHX->Tofs_sv) -#define PL_op (vTHX->Top) -#define PL_opsave (vTHX->Topsave) -#define PL_peepp (vTHX->Tpeepp) -#define PL_reg_state (vTHX->Treg_state) -#define PL_regdummy (vTHX->Tregdummy) -#define PL_reginterp_cnt (vTHX->Treginterp_cnt) -#define PL_regmatch_slab (vTHX->Tregmatch_slab) -#define PL_regmatch_state (vTHX->Tregmatch_state) -#define PL_restartop (vTHX->Trestartop) -#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_sortcop (vTHX->Tsortcop) -#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) - -/* cases 2 and 3 above */ - #define PL_Argv (vTHX->IArgv) #define PL_Cmd (vTHX->ICmd) #define PL_DBassertion (vTHX->IDBassertion) @@ -143,25 +62,32 @@ #define PL_Proc (vTHX->IProc) #define PL_Sock (vTHX->ISock) #define PL_StdIO (vTHX->IStdIO) +#define PL_Sv (vTHX->ISv) +#define PL_Xpv (vTHX->IXpv) #define PL_amagic_generation (vTHX->Iamagic_generation) #define PL_an (vTHX->Ian) #define PL_argvgv (vTHX->Iargvgv) #define PL_argvout_stack (vTHX->Iargvout_stack) #define PL_argvoutgv (vTHX->Iargvoutgv) +#define PL_av_fetch_sv (vTHX->Iav_fetch_sv) #define PL_basetime (vTHX->Ibasetime) #define PL_beginav (vTHX->Ibeginav) #define PL_beginav_save (vTHX->Ibeginav_save) #define PL_bitcount (vTHX->Ibitcount) #define PL_body_arenas (vTHX->Ibody_arenas) #define PL_body_roots (vTHX->Ibody_roots) +#define PL_bodytarget (vTHX->Ibodytarget) #define PL_checkav (vTHX->Icheckav) #define PL_checkav_save (vTHX->Icheckav_save) +#define PL_chopset (vTHX->Ichopset) #define PL_clocktick (vTHX->Iclocktick) #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_colors (vTHX->Icolors) +#define PL_colorset (vTHX->Icolorset) #define PL_compcv (vTHX->Icompcv) #define PL_compiling (vTHX->Icompiling) #define PL_comppad (vTHX->Icomppad) @@ -172,7 +98,13 @@ #define PL_cryptseen (vTHX->Icryptseen) #define PL_cshlen (vTHX->Icshlen) #define PL_cshname (vTHX->Icshname) +#define PL_curcop (vTHX->Icurcop) #define PL_curcopdb (vTHX->Icurcopdb) +#define PL_curpad (vTHX->Icurpad) +#define PL_curpm (vTHX->Icurpm) +#define PL_curstack (vTHX->Icurstack) +#define PL_curstackinfo (vTHX->Icurstackinfo) +#define PL_curstash (vTHX->Icurstash) #define PL_curstname (vTHX->Icurstname) #define PL_custom_op_descs (vTHX->Icustom_op_descs) #define PL_custom_op_names (vTHX->Icustom_op_names) @@ -183,18 +115,27 @@ #define PL_debug_pad (vTHX->Idebug_pad) #define PL_def_layerlist (vTHX->Idef_layerlist) #define PL_defgv (vTHX->Idefgv) +#define PL_defoutgv (vTHX->Idefoutgv) +#define PL_defstash (vTHX->Idefstash) +#define PL_delayedisa (vTHX->Idelayedisa) +#define PL_delaymagic (vTHX->Idelaymagic) #define PL_diehook (vTHX->Idiehook) +#define PL_dirty (vTHX->Idirty) #define PL_doextract (vTHX->Idoextract) #define PL_doswitches (vTHX->Idoswitches) #define PL_dowarn (vTHX->Idowarn) #define PL_dumper_fd (vTHX->Idumper_fd) +#define PL_dumpindent (vTHX->Idumpindent) #define PL_e_script (vTHX->Ie_script) +#define PL_efloatbuf (vTHX->Iefloatbuf) +#define PL_efloatsize (vTHX->Iefloatsize) #define PL_egid (vTHX->Iegid) #define PL_encoding (vTHX->Iencoding) #define PL_endav (vTHX->Iendav) #define PL_envgv (vTHX->Ienvgv) #define PL_errgv (vTHX->Ierrgv) #define PL_error_count (vTHX->Ierror_count) +#define PL_errors (vTHX->Ierrors) #define PL_euid (vTHX->Ieuid) #define PL_eval_root (vTHX->Ieval_root) #define PL_eval_start (vTHX->Ieval_start) @@ -204,8 +145,10 @@ #define PL_exitlistlen (vTHX->Iexitlistlen) #define PL_fdpid (vTHX->Ifdpid) #define PL_filemode (vTHX->Ifilemode) +#define PL_firstgv (vTHX->Ifirstgv) #define PL_forkprocess (vTHX->Iforkprocess) #define PL_formfeed (vTHX->Iformfeed) +#define PL_formtarget (vTHX->Iformtarget) #define PL_generation (vTHX->Igeneration) #define PL_gensym (vTHX->Igensym) #define PL_gid (vTHX->Igid) @@ -215,31 +158,43 @@ #define PL_hash_seed_set (vTHX->Ihash_seed_set) #define PL_hintgv (vTHX->Ihintgv) #define PL_hints (vTHX->Ihints) +#define PL_hv_fetch_ent_mh (vTHX->Ihv_fetch_ent_mh) +#define PL_hv_fetch_sv (vTHX->Ihv_fetch_sv) #define PL_in_clean_all (vTHX->Iin_clean_all) #define PL_in_clean_objs (vTHX->Iin_clean_objs) +#define PL_in_eval (vTHX->Iin_eval) #define PL_in_load_module (vTHX->Iin_load_module) #define PL_incgv (vTHX->Iincgv) #define PL_initav (vTHX->Iinitav) #define PL_inplace (vTHX->Iinplace) #define PL_isarev (vTHX->Iisarev) #define PL_known_layers (vTHX->Iknown_layers) +#define PL_last_in_gv (vTHX->Ilast_in_gv) #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_lastfd (vTHX->Ilastfd) +#define PL_lastgotoprobe (vTHX->Ilastgotoprobe) +#define PL_lastscream (vTHX->Ilastscream) #define PL_laststatval (vTHX->Ilaststatval) #define PL_laststype (vTHX->Ilaststype) #define PL_lineary (vTHX->Ilineary) +#define PL_localizing (vTHX->Ilocalizing) #define PL_localpatches (vTHX->Ilocalpatches) #define PL_lockhook (vTHX->Ilockhook) #define PL_madskills (vTHX->Imadskills) #define PL_main_cv (vTHX->Imain_cv) #define PL_main_root (vTHX->Imain_root) #define PL_main_start (vTHX->Imain_start) +#define PL_mainstack (vTHX->Imainstack) +#define PL_markstack (vTHX->Imarkstack) +#define PL_markstack_max (vTHX->Imarkstack_max) +#define PL_markstack_ptr (vTHX->Imarkstack_ptr) #define PL_max_intro_pending (vTHX->Imax_intro_pending) #define PL_maxo (vTHX->Imaxo) +#define PL_maxscream (vTHX->Imaxscream) #define PL_maxsysfd (vTHX->Imaxsysfd) #define PL_memory_debug_header (vTHX->Imemory_debug_header) #define PL_mess_sv (vTHX->Imess_sv) @@ -251,11 +206,13 @@ #define PL_minus_l (vTHX->Iminus_l) #define PL_minus_n (vTHX->Iminus_n) #define PL_minus_p (vTHX->Iminus_p) +#define PL_modcount (vTHX->Imodcount) #define PL_modglobal (vTHX->Imodglobal) #define PL_multi_end (vTHX->Imulti_end) #define PL_my_cxt_keys (vTHX->Imy_cxt_keys) #define PL_my_cxt_list (vTHX->Imy_cxt_list) #define PL_my_cxt_size (vTHX->Imy_cxt_size) +#define PL_na (vTHX->Ina) #define PL_nice_chunk (vTHX->Inice_chunk) #define PL_nice_chunk_size (vTHX->Inice_chunk_size) #define PL_nomemok (vTHX->Inomemok) @@ -263,8 +220,11 @@ #define PL_numeric_name (vTHX->Inumeric_name) #define PL_numeric_radix_sv (vTHX->Inumeric_radix_sv) #define PL_numeric_standard (vTHX->Inumeric_standard) +#define PL_ofs_sv (vTHX->Iofs_sv) #define PL_oldname (vTHX->Ioldname) +#define PL_op (vTHX->Iop) #define PL_op_mask (vTHX->Iop_mask) +#define PL_opsave (vTHX->Iopsave) #define PL_origalen (vTHX->Iorigalen) #define PL_origargc (vTHX->Iorigargc) #define PL_origargv (vTHX->Iorigargv) @@ -277,6 +237,7 @@ #define PL_padix_floor (vTHX->Ipadix_floor) #define PL_parser (vTHX->Iparser) #define PL_patchlevel (vTHX->Ipatchlevel) +#define PL_peepp (vTHX->Ipeepp) #define PL_perl_destruct_level (vTHX->Iperl_destruct_level) #define PL_perldb (vTHX->Iperldb) #define PL_perlio (vTHX->Iperlio) @@ -291,16 +252,32 @@ #define PL_ptr_table (vTHX->Iptr_table) #define PL_reentrant_buffer (vTHX->Ireentrant_buffer) #define PL_reentrant_retint (vTHX->Ireentrant_retint) +#define PL_reg_state (vTHX->Ireg_state) +#define PL_regdummy (vTHX->Iregdummy) #define PL_regex_pad (vTHX->Iregex_pad) #define PL_regex_padav (vTHX->Iregex_padav) +#define PL_reginterp_cnt (vTHX->Ireginterp_cnt) +#define PL_regmatch_slab (vTHX->Iregmatch_slab) +#define PL_regmatch_state (vTHX->Iregmatch_state) #define PL_rehash_seed (vTHX->Irehash_seed) #define PL_rehash_seed_set (vTHX->Irehash_seed_set) #define PL_replgv (vTHX->Ireplgv) +#define PL_restartop (vTHX->Irestartop) +#define PL_rs (vTHX->Irs) #define PL_runops (vTHX->Irunops) #define PL_runops_dbg (vTHX->Irunops_dbg) #define PL_runops_std (vTHX->Irunops_std) #define PL_savebegin (vTHX->Isavebegin) +#define PL_savestack (vTHX->Isavestack) +#define PL_savestack_ix (vTHX->Isavestack_ix) +#define PL_savestack_max (vTHX->Isavestack_max) #define PL_sawampersand (vTHX->Isawampersand) +#define PL_scopestack (vTHX->Iscopestack) +#define PL_scopestack_ix (vTHX->Iscopestack_ix) +#define PL_scopestack_max (vTHX->Iscopestack_max) +#define PL_screamfirst (vTHX->Iscreamfirst) +#define PL_screamnext (vTHX->Iscreamnext) +#define PL_secondgv (vTHX->Isecondgv) #define PL_sharehook (vTHX->Isharehook) #define PL_sig_pending (vTHX->Isig_pending) #define PL_sighandlerp (vTHX->Isighandlerp) @@ -308,9 +285,19 @@ #define PL_slab_count (vTHX->Islab_count) #define PL_slabs (vTHX->Islabs) #define PL_sort_RealCmp (vTHX->Isort_RealCmp) +#define PL_sortcop (vTHX->Isortcop) +#define PL_sortstash (vTHX->Isortstash) #define PL_splitstr (vTHX->Isplitstr) #define PL_srand_called (vTHX->Isrand_called) +#define PL_stack_base (vTHX->Istack_base) +#define PL_stack_max (vTHX->Istack_max) +#define PL_stack_sp (vTHX->Istack_sp) +#define PL_start_env (vTHX->Istart_env) #define PL_stashcache (vTHX->Istashcache) +#define PL_statbuf (vTHX->Istatbuf) +#define PL_statcache (vTHX->Istatcache) +#define PL_statgv (vTHX->Istatgv) +#define PL_statname (vTHX->Istatname) #define PL_statusvalue (vTHX->Istatusvalue) #define PL_statusvalue_posix (vTHX->Istatusvalue_posix) #define PL_statusvalue_vms (vTHX->Istatusvalue_vms) @@ -329,9 +316,17 @@ #define PL_sv_yes (vTHX->Isv_yes) #define PL_sys_intern (vTHX->Isys_intern) #define PL_taint_warn (vTHX->Itaint_warn) +#define PL_tainted (vTHX->Itainted) #define PL_tainting (vTHX->Itainting) #define PL_threadhook (vTHX->Ithreadhook) +#define PL_timesbuf (vTHX->Itimesbuf) +#define PL_tmps_floor (vTHX->Itmps_floor) +#define PL_tmps_ix (vTHX->Itmps_ix) +#define PL_tmps_max (vTHX->Itmps_max) +#define PL_tmps_stack (vTHX->Itmps_stack) #define PL_tokenbuf (vTHX->Itokenbuf) +#define PL_top_env (vTHX->Itop_env) +#define PL_toptarget (vTHX->Itoptarget) #define PL_uid (vTHX->Iuid) #define PL_unicode (vTHX->Iunicode) #define PL_unitcheckav (vTHX->Iunitcheckav) @@ -361,6 +356,8 @@ #define PL_utf8cache (vTHX->Iutf8cache) #define PL_utf8locale (vTHX->Iutf8locale) #define PL_warnhook (vTHX->Iwarnhook) +#define PL_watchaddr (vTHX->Iwatchaddr) +#define PL_watchok (vTHX->Iwatchok) #define PL_xmlfp (vTHX->Ixmlfp) #else /* !MULTIPLICITY */ @@ -389,25 +386,32 @@ #define PL_IProc PL_Proc #define PL_ISock PL_Sock #define PL_IStdIO PL_StdIO +#define PL_ISv PL_Sv +#define PL_IXpv PL_Xpv #define PL_Iamagic_generation PL_amagic_generation #define PL_Ian PL_an #define PL_Iargvgv PL_argvgv #define PL_Iargvout_stack PL_argvout_stack #define PL_Iargvoutgv PL_argvoutgv +#define PL_Iav_fetch_sv PL_av_fetch_sv #define PL_Ibasetime PL_basetime #define PL_Ibeginav PL_beginav #define PL_Ibeginav_save PL_beginav_save #define PL_Ibitcount PL_bitcount #define PL_Ibody_arenas PL_body_arenas #define PL_Ibody_roots PL_body_roots +#define PL_Ibodytarget PL_bodytarget #define PL_Icheckav PL_checkav #define PL_Icheckav_save PL_checkav_save +#define PL_Ichopset PL_chopset #define PL_Iclocktick PL_clocktick #define PL_Icollation_ix PL_collation_ix #define PL_Icollation_name PL_collation_name #define PL_Icollation_standard PL_collation_standard #define PL_Icollxfrm_base PL_collxfrm_base #define PL_Icollxfrm_mult PL_collxfrm_mult +#define PL_Icolors PL_colors +#define PL_Icolorset PL_colorset #define PL_Icompcv PL_compcv #define PL_Icompiling PL_compiling #define PL_Icomppad PL_comppad @@ -418,7 +422,13 @@ #define PL_Icryptseen PL_cryptseen #define PL_Icshlen PL_cshlen #define PL_Icshname PL_cshname +#define PL_Icurcop PL_curcop #define PL_Icurcopdb PL_curcopdb +#define PL_Icurpad PL_curpad +#define PL_Icurpm PL_curpm +#define PL_Icurstack PL_curstack +#define PL_Icurstackinfo PL_curstackinfo +#define PL_Icurstash PL_curstash #define PL_Icurstname PL_curstname #define PL_Icustom_op_descs PL_custom_op_descs #define PL_Icustom_op_names PL_custom_op_names @@ -429,18 +439,27 @@ #define PL_Idebug_pad PL_debug_pad #define PL_Idef_layerlist PL_def_layerlist #define PL_Idefgv PL_defgv +#define PL_Idefoutgv PL_defoutgv +#define PL_Idefstash PL_defstash +#define PL_Idelayedisa PL_delayedisa +#define PL_Idelaymagic PL_delaymagic #define PL_Idiehook PL_diehook +#define PL_Idirty PL_dirty #define PL_Idoextract PL_doextract #define PL_Idoswitches PL_doswitches #define PL_Idowarn PL_dowarn #define PL_Idumper_fd PL_dumper_fd +#define PL_Idumpindent PL_dumpindent #define PL_Ie_script PL_e_script +#define PL_Iefloatbuf PL_efloatbuf +#define PL_Iefloatsize PL_efloatsize #define PL_Iegid PL_egid #define PL_Iencoding PL_encoding #define PL_Iendav PL_endav #define PL_Ienvgv PL_envgv #define PL_Ierrgv PL_errgv #define PL_Ierror_count PL_error_count +#define PL_Ierrors PL_errors #define PL_Ieuid PL_euid #define PL_Ieval_root PL_eval_root #define PL_Ieval_start PL_eval_start @@ -450,8 +469,10 @@ #define PL_Iexitlistlen PL_exitlistlen #define PL_Ifdpid PL_fdpid #define PL_Ifilemode PL_filemode +#define PL_Ifirstgv PL_firstgv #define PL_Iforkprocess PL_forkprocess #define PL_Iformfeed PL_formfeed +#define PL_Iformtarget PL_formtarget #define PL_Igeneration PL_generation #define PL_Igensym PL_gensym #define PL_Igid PL_gid @@ -461,31 +482,43 @@ #define PL_Ihash_seed_set PL_hash_seed_set #define PL_Ihintgv PL_hintgv #define PL_Ihints PL_hints +#define PL_Ihv_fetch_ent_mh PL_hv_fetch_ent_mh +#define PL_Ihv_fetch_sv PL_hv_fetch_sv #define PL_Iin_clean_all PL_in_clean_all #define PL_Iin_clean_objs PL_in_clean_objs +#define PL_Iin_eval PL_in_eval #define PL_Iin_load_module PL_in_load_module #define PL_Iincgv PL_incgv #define PL_Iinitav PL_initav #define PL_Iinplace PL_inplace #define PL_Iisarev PL_isarev #define PL_Iknown_layers PL_known_layers +#define PL_Ilast_in_gv PL_last_in_gv #define PL_Ilast_swash_hv PL_last_swash_hv #define PL_Ilast_swash_key PL_last_swash_key #define PL_Ilast_swash_klen PL_last_swash_klen #define PL_Ilast_swash_slen PL_last_swash_slen #define PL_Ilast_swash_tmps PL_last_swash_tmps #define PL_Ilastfd PL_lastfd +#define PL_Ilastgotoprobe PL_lastgotoprobe +#define PL_Ilastscream PL_lastscream #define PL_Ilaststatval PL_laststatval #define PL_Ilaststype PL_laststype #define PL_Ilineary PL_lineary +#define PL_Ilocalizing PL_localizing #define PL_Ilocalpatches PL_localpatches #define PL_Ilockhook PL_lockhook #define PL_Imadskills PL_madskills #define PL_Imain_cv PL_main_cv #define PL_Imain_root PL_main_root #define PL_Imain_start PL_main_start +#define PL_Imainstack PL_mainstack +#define PL_Imarkstack PL_markstack +#define PL_Imarkstack_max PL_markstack_max +#define PL_Imarkstack_ptr PL_markstack_ptr #define PL_Imax_intro_pending PL_max_intro_pending #define PL_Imaxo PL_maxo +#define PL_Imaxscream PL_maxscream #define PL_Imaxsysfd PL_maxsysfd #define PL_Imemory_debug_header PL_memory_debug_header #define PL_Imess_sv PL_mess_sv @@ -497,11 +530,13 @@ #define PL_Iminus_l PL_minus_l #define PL_Iminus_n PL_minus_n #define PL_Iminus_p PL_minus_p +#define PL_Imodcount PL_modcount #define PL_Imodglobal PL_modglobal #define PL_Imulti_end PL_multi_end #define PL_Imy_cxt_keys PL_my_cxt_keys #define PL_Imy_cxt_list PL_my_cxt_list #define PL_Imy_cxt_size PL_my_cxt_size +#define PL_Ina PL_na #define PL_Inice_chunk PL_nice_chunk #define PL_Inice_chunk_size PL_nice_chunk_size #define PL_Inomemok PL_nomemok @@ -509,8 +544,11 @@ #define PL_Inumeric_name PL_numeric_name #define PL_Inumeric_radix_sv PL_numeric_radix_sv #define PL_Inumeric_standard PL_numeric_standard +#define PL_Iofs_sv PL_ofs_sv #define PL_Ioldname PL_oldname +#define PL_Iop PL_op #define PL_Iop_mask PL_op_mask +#define PL_Iopsave PL_opsave #define PL_Iorigalen PL_origalen #define PL_Iorigargc PL_origargc #define PL_Iorigargv PL_origargv @@ -523,6 +561,7 @@ #define PL_Ipadix_floor PL_padix_floor #define PL_Iparser PL_parser #define PL_Ipatchlevel PL_patchlevel +#define PL_Ipeepp PL_peepp #define PL_Iperl_destruct_level PL_perl_destruct_level #define PL_Iperldb PL_perldb #define PL_Iperlio PL_perlio @@ -537,16 +576,32 @@ #define PL_Iptr_table PL_ptr_table #define PL_Ireentrant_buffer PL_reentrant_buffer #define PL_Ireentrant_retint PL_reentrant_retint +#define PL_Ireg_state PL_reg_state +#define PL_Iregdummy PL_regdummy #define PL_Iregex_pad PL_regex_pad #define PL_Iregex_padav PL_regex_padav +#define PL_Ireginterp_cnt PL_reginterp_cnt +#define PL_Iregmatch_slab PL_regmatch_slab +#define PL_Iregmatch_state PL_regmatch_state #define PL_Irehash_seed PL_rehash_seed #define PL_Irehash_seed_set PL_rehash_seed_set #define PL_Ireplgv PL_replgv +#define PL_Irestartop PL_restartop +#define PL_Irs PL_rs #define PL_Irunops PL_runops #define PL_Irunops_dbg PL_runops_dbg #define PL_Irunops_std PL_runops_std #define PL_Isavebegin PL_savebegin +#define PL_Isavestack PL_savestack +#define PL_Isavestack_ix PL_savestack_ix +#define PL_Isavestack_max PL_savestack_max #define PL_Isawampersand PL_sawampersand +#define PL_Iscopestack PL_scopestack +#define PL_Iscopestack_ix PL_scopestack_ix +#define PL_Iscopestack_max PL_scopestack_max +#define PL_Iscreamfirst PL_screamfirst +#define PL_Iscreamnext PL_screamnext +#define PL_Isecondgv PL_secondgv #define PL_Isharehook PL_sharehook #define PL_Isig_pending PL_sig_pending #define PL_Isighandlerp PL_sighandlerp @@ -554,9 +609,19 @@ #define PL_Islab_count PL_slab_count #define PL_Islabs PL_slabs #define PL_Isort_RealCmp PL_sort_RealCmp +#define PL_Isortcop PL_sortcop +#define PL_Isortstash PL_sortstash #define PL_Isplitstr PL_splitstr #define PL_Isrand_called PL_srand_called +#define PL_Istack_base PL_stack_base +#define PL_Istack_max PL_stack_max +#define PL_Istack_sp PL_stack_sp +#define PL_Istart_env PL_start_env #define PL_Istashcache PL_stashcache +#define PL_Istatbuf PL_statbuf +#define PL_Istatcache PL_statcache +#define PL_Istatgv PL_statgv +#define PL_Istatname PL_statname #define PL_Istatusvalue PL_statusvalue #define PL_Istatusvalue_posix PL_statusvalue_posix #define PL_Istatusvalue_vms PL_statusvalue_vms @@ -575,9 +640,17 @@ #define PL_Isv_yes PL_sv_yes #define PL_Isys_intern PL_sys_intern #define PL_Itaint_warn PL_taint_warn +#define PL_Itainted PL_tainted #define PL_Itainting PL_tainting #define PL_Ithreadhook PL_threadhook +#define PL_Itimesbuf PL_timesbuf +#define PL_Itmps_floor PL_tmps_floor +#define PL_Itmps_ix PL_tmps_ix +#define PL_Itmps_max PL_tmps_max +#define PL_Itmps_stack PL_tmps_stack #define PL_Itokenbuf PL_tokenbuf +#define PL_Itop_env PL_top_env +#define PL_Itoptarget PL_toptarget #define PL_Iuid PL_uid #define PL_Iunicode PL_unicode #define PL_Iunitcheckav PL_unitcheckav @@ -607,86 +680,10 @@ #define PL_Iutf8cache PL_utf8cache #define PL_Iutf8locale PL_utf8locale #define PL_Iwarnhook PL_warnhook +#define PL_Iwatchaddr PL_watchaddr +#define PL_Iwatchok PL_watchok #define PL_Ixmlfp PL_xmlfp -#define PL_TSv PL_Sv -#define PL_TXpv PL_Xpv -#define PL_Tav_fetch_sv PL_av_fetch_sv -#define PL_Tbodytarget PL_bodytarget -#define PL_Tchopset PL_chopset -#define PL_Tcolors PL_colors -#define PL_Tcolorset PL_colorset -#define PL_Tcurcop PL_curcop -#define PL_Tcurpad PL_curpad -#define PL_Tcurpm PL_curpm -#define PL_Tcurstack PL_curstack -#define PL_Tcurstackinfo PL_curstackinfo -#define PL_Tcurstash PL_curstash -#define PL_Tdefoutgv PL_defoutgv -#define PL_Tdefstash PL_defstash -#define PL_Tdelayedisa PL_delayedisa -#define PL_Tdelaymagic PL_delaymagic -#define PL_Tdirty PL_dirty -#define PL_Tdumpindent PL_dumpindent -#define PL_Tefloatbuf PL_efloatbuf -#define PL_Tefloatsize PL_efloatsize -#define PL_Terrors PL_errors -#define PL_Tfirstgv PL_firstgv -#define PL_Tformtarget PL_formtarget -#define PL_Thv_fetch_ent_mh PL_hv_fetch_ent_mh -#define PL_Thv_fetch_sv PL_hv_fetch_sv -#define PL_Tin_eval PL_in_eval -#define PL_Tlast_in_gv PL_last_in_gv -#define PL_Tlastgotoprobe PL_lastgotoprobe -#define PL_Tlastscream PL_lastscream -#define PL_Tlocalizing PL_localizing -#define PL_Tmainstack PL_mainstack -#define PL_Tmarkstack PL_markstack -#define PL_Tmarkstack_max PL_markstack_max -#define PL_Tmarkstack_ptr PL_markstack_ptr -#define PL_Tmaxscream PL_maxscream -#define PL_Tmodcount PL_modcount -#define PL_Tna PL_na -#define PL_Tofs_sv PL_ofs_sv -#define PL_Top PL_op -#define PL_Topsave PL_opsave -#define PL_Tpeepp PL_peepp -#define PL_Treg_state PL_reg_state -#define PL_Tregdummy PL_regdummy -#define PL_Treginterp_cnt PL_reginterp_cnt -#define PL_Tregmatch_slab PL_regmatch_slab -#define PL_Tregmatch_state PL_regmatch_state -#define PL_Trestartop PL_restartop -#define PL_Trs PL_rs -#define PL_Tsavestack PL_savestack -#define PL_Tsavestack_ix PL_savestack_ix -#define PL_Tsavestack_max PL_savestack_max -#define PL_Tscopestack PL_scopestack -#define PL_Tscopestack_ix PL_scopestack_ix -#define PL_Tscopestack_max PL_scopestack_max -#define PL_Tscreamfirst PL_screamfirst -#define PL_Tscreamnext PL_screamnext -#define PL_Tsecondgv PL_secondgv -#define PL_Tsortcop PL_sortcop -#define PL_Tsortstash PL_sortstash -#define PL_Tstack_base PL_stack_base -#define PL_Tstack_max PL_stack_max -#define PL_Tstack_sp PL_stack_sp -#define PL_Tstart_env PL_start_env -#define PL_Tstatbuf PL_statbuf -#define PL_Tstatcache PL_statcache -#define PL_Tstatgv PL_statgv -#define PL_Tstatname PL_statname -#define PL_Ttainted PL_tainted -#define PL_Ttimesbuf PL_timesbuf -#define PL_Ttmps_floor PL_tmps_floor -#define PL_Ttmps_ix PL_tmps_ix -#define PL_Ttmps_max PL_tmps_max -#define PL_Ttmps_stack PL_tmps_stack -#define PL_Ttop_env PL_top_env -#define PL_Ttoptarget PL_toptarget -#define PL_Twatchaddr PL_watchaddr -#define PL_Twatchok PL_watchok #endif /* MULTIPLICITY */ diff --git a/global.sym b/global.sym index c5181b47f0..53c6e67976 100644 --- a/global.sym +++ b/global.sym @@ -10,7 +10,7 @@ # # !!!!!!! DO NOT EDIT THIS FILE !!!!!!! # This file is built by embed.pl from data in embed.fnc, embed.pl, -# pp.sym, intrpvar.h, perlvars.h and thrdvar.h. +# pp.sym, intrpvar.h, and perlvars.h. # Any changes made here will be lost! # # Edit those files and run 'make regen_headers' to effect changes. diff --git a/intrpvar.h b/intrpvar.h index 7b5272dc7c..0eb9fe29cc 100644 --- a/intrpvar.h +++ b/intrpvar.h @@ -1,8 +1,22 @@ -/***********************************************/ -/* Global only to current interpreter instance */ -/***********************************************/ +/* intrpvar.h + * + * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, + * 2006, 2007 + * by Larry Wall and others + * + * You may distribute under the terms of either the GNU General Public + * License or the Artistic License, as specified in the README file. + * + */ + +/* +=head1 Per-Interpreter Variables +*/ + +/* These variables are per-interpreter in threaded/multiplicity builds, + * global otherwise. -/* Don't forget to re-run embed.pl to propagate changes! */ + * Don't forget to re-run embed.pl to propagate changes! */ /* New variables must be added to the very end for binary compatibility. * XSUB.h provides wrapper functions via perlapi.h that make this @@ -14,12 +28,172 @@ * generated when built with or without MULTIPLICITY. It is also used * to generate the appropriate export list for win32. * - * When building without MULTIPLICITY, these variables will be truly global. */ + * When building without MULTIPLICITY, these variables will be truly global. + * + * Important ones in the first cache line (if alignment is done right) */ + +PERLVAR(Istack_sp, SV **) /* top of the stack */ +#ifdef OP_IN_REGISTER +PERLVAR(Iopsave, OP *) +#else +PERLVAR(Iop, OP *) /* currently executing op */ +#endif +PERLVAR(Icurpad, SV **) /* active pad (lexicals+tmps) */ + +PERLVAR(Istack_base, SV **) +PERLVAR(Istack_max, SV **) + +PERLVAR(Iscopestack, I32 *) /* scopes we've ENTERed */ +PERLVAR(Iscopestack_ix, I32) +PERLVAR(Iscopestack_max,I32) + +PERLVAR(Isavestack, ANY *) /* items that need to be restored when + LEAVEing scopes we've ENTERed */ +PERLVAR(Isavestack_ix, I32) +PERLVAR(Isavestack_max, I32) + +PERLVAR(Itmps_stack, SV **) /* mortals we've made */ +PERLVARI(Itmps_ix, I32, -1) +PERLVARI(Itmps_floor, I32, -1) +PERLVAR(Itmps_max, I32) +PERLVAR(Imodcount, I32) /* how much mod()ification in + assignment? */ + +PERLVAR(Imarkstack, I32 *) /* stack_sp locations we're + remembering */ +PERLVAR(Imarkstack_ptr, I32 *) +PERLVAR(Imarkstack_max, I32 *) + +PERLVAR(ISv, SV *) /* used to hold temporary values */ +PERLVAR(IXpv, XPV *) /* used to hold temporary values */ + +/* +=for apidoc Amn|STRLEN|PL_na + +A convenience variable which is typically used with C<SvPV> when one +doesn't care about the length of the string. It is usually more efficient +to either declare a local variable and use that instead or to use the +C<SvPV_nolen> macro. + +=cut +*/ + +PERLVAR(Ina, STRLEN) /* for use in SvPV when length is + Not Applicable */ + +/* stat stuff */ +PERLVAR(Istatbuf, Stat_t) +PERLVAR(Istatcache, Stat_t) /* _ */ +PERLVAR(Istatgv, GV *) +PERLVARI(Istatname, SV *, NULL) + +#ifdef HAS_TIMES +PERLVAR(Itimesbuf, struct tms) +#endif + +/* Fields used by magic variables such as $@, $/ and so on */ +PERLVAR(Icurpm, PMOP *) /* what to do \ interps in REs from */ + +/* +=for apidoc mn|SV*|PL_rs + +The input record separator - C<$/> in Perl space. + +=for apidoc mn|GV*|PL_last_in_gv + +The GV which was last used for a filehandle input operation. (C<< <FH> >>) + +=for apidoc mn|SV*|PL_ofs_sv + +The output field separator - C<$,> in Perl space. + +=cut +*/ + +PERLVAR(Irs, SV *) /* input record separator $/ */ +PERLVAR(Ilast_in_gv, GV *) /* GV used in last <FH> */ +PERLVAR(Iofs_sv, SV *) /* output field separator $, */ +PERLVAR(Idefoutgv, GV *) /* default FH for output */ +PERLVARI(Ichopset, const char *, " \n-") /* $: */ +PERLVAR(Iformtarget, SV *) +PERLVAR(Ibodytarget, SV *) +PERLVAR(Itoptarget, SV *) + +/* Stashes */ +PERLVAR(Idefstash, HV *) /* main symbol table */ +PERLVAR(Icurstash, HV *) /* symbol table for current package */ + +PERLVAR(Irestartop, OP *) /* propagating an error from croak? */ +PERLVAR(Icurcop, COP * VOL) +PERLVAR(Icurstack, AV *) /* THE STACK */ +PERLVAR(Icurstackinfo, PERL_SI *) /* current stack + context */ +PERLVAR(Imainstack, AV *) /* the stack when nothing funny is + happening */ + +PERLVAR(Itop_env, JMPENV *) /* ptr to current sigjmp environment */ +PERLVAR(Istart_env, JMPENV) /* empty startup sigjmp environment */ +PERLVARI(Ierrors, SV *, NULL) /* outstanding queued errors */ + +/* statics "owned" by various functions */ +PERLVAR(Iav_fetch_sv, SV *) /* unused as of change #19268 */ +PERLVAR(Ihv_fetch_sv, SV *) /* unused as of change #19268 */ +PERLVAR(Ihv_fetch_ent_mh, HE*) /* owned by hv_fetch_ent() */ + + +PERLVAR(Ilastgotoprobe, OP*) /* from pp_ctl.c */ + +/* sort stuff */ +PERLVAR(Isortcop, OP *) /* user defined sort routine */ +PERLVAR(Isortstash, HV *) /* which is in some package or other */ +PERLVAR(Ifirstgv, GV *) /* $a */ +PERLVAR(Isecondgv, GV *) /* $b */ + +/* float buffer */ +PERLVAR(Iefloatbuf, char *) +PERLVAR(Iefloatsize, STRLEN) + +/* regex stuff */ + +PERLVAR(Iscreamfirst, I32 *) +PERLVAR(Iscreamnext, I32 *) +PERLVAR(Ilastscream, SV *) + +PERLVAR(Ireg_state, struct re_save_state) + +PERLVAR(Iregdummy, regnode) /* from regcomp.c */ + +PERLVARI(Idumpindent, U16, 4) /* number of blanks per dump + indentation level */ + +/* Space for U16 here without increasing the structure size */ + +PERLVARA(Icolors,6, char *) /* from regcomp.c */ + +PERLVARI(Ipeepp, peep_t, MEMBER_TO_FPTR(Perl_peep)) + /* Pointer to peephole optimizer */ + +PERLVARI(Imaxscream, I32, -1) +PERLVARI(Ireginterp_cnt,I32, 0) /* Whether "Regexp" was interpolated. */ +PERLVARI(Iwatchaddr, char **, 0) +PERLVAR(Iwatchok, char *) + +/* the currently active slab in a chain of slabs of regmatch states, + * and the currently active state within that slab */ + +PERLVARI(Iregmatch_slab, regmatch_slab *, NULL) +PERLVAR(Iregmatch_state, regmatch_state *) + +PERLVARI(Idelayedisa, HV*, NULL) /* stash for PL_delaymagic for magic_setisa */ +/* Put anything new that is pointer aligned here. */ -/* For historical reasons this file follows thrdvar.h into the interpeter - struct, and that file currently ends with 7 bytes of variables, so putting - one last byte here is good for alignment. */ +PERLVAR(Idelaymagic, U16) /* ($<,$>) = ... */ +PERLVAR(Ilocalizing, U8) /* are we processing a local() list? */ +PERLVAR(Icolorset, bool) /* from regcomp.c */ +PERLVARI(Idirty, bool, FALSE) /* in the middle of tearing things + down? */ +PERLVAR(Iin_eval, VOL U8) /* trap "fatal" errors? */ +PERLVAR(Itainted, bool) /* using variables controlled by $< */ /* This value may be set when embedding for full cleanup */ /* 0=none, 1=full, 2=full with checks */ @@ -54,7 +228,6 @@ PERLVAR(Idoswitches, bool) PERLVAR(Iminus_E, bool) /* -=head1 Global Variables =for apidoc mn|bool|PL_dowarn @@ -102,8 +275,6 @@ PERLVAR(Iargvoutgv, GV *) PERLVAR(Iargvout_stack, AV *) /* shortcuts to regexp stuff */ -/* this one needs to be moved to thrdvar.h and accessed via - * find_threadsv() when USE_5005THREADS */ PERLVAR(Ireplgv, GV *) /* shortcuts to misc objects */ diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm index 94049ecc27..9cd963eef4 100644 --- a/lib/ExtUtils/MM_Unix.pm +++ b/lib/ExtUtils/MM_Unix.pm @@ -2832,7 +2832,6 @@ PERL_HDRS = \ $(PERL_INC)/regnodes.h \ $(PERL_INC)/scope.h \ $(PERL_INC)/sv.h \ - $(PERL_INC)/thrdvar.h \ $(PERL_INC)/thread.h \ $(PERL_INC)/unixish.h \ $(PERL_INC)/util.h diff --git a/lib/ExtUtils/MM_VMS.pm b/lib/ExtUtils/MM_VMS.pm index f21621e0b2..f7e7a8f07f 100644 --- a/lib/ExtUtils/MM_VMS.pm +++ b/lib/ExtUtils/MM_VMS.pm @@ -1279,7 +1279,7 @@ $(OBJECT) : $(PERL_INC)perlsdio.h, $(PERL_INC)perlvars.h $(OBJECT) : $(PERL_INC)perly.h, $(PERL_INC)pp.h, $(PERL_INC)pp_proto.h $(OBJECT) : $(PERL_INC)proto.h, $(PERL_INC)regcomp.h, $(PERL_INC)regexp.h $(OBJECT) : $(PERL_INC)regnodes.h, $(PERL_INC)scope.h, $(PERL_INC)sv.h -$(OBJECT) : $(PERL_INC)thrdvar.h, $(PERL_INC)thread.h +$(OBJECT) : $(PERL_INC)thread.h $(OBJECT) : $(PERL_INC)util.h, $(PERL_INC)vmsish.h ' if $self->{OBJECT}; diff --git a/makedef.pl b/makedef.pl index b23cdacd48..73d04b2439 100644 --- a/makedef.pl +++ b/makedef.pl @@ -6,7 +6,7 @@ # and by AIX for creating libperl.a when -Dusershrplib is in effect, # and by MacOS Classic. # -# reads global.sym, pp.sym, perlvars.h, intrpvar.h, thrdvar.h, config.h +# reads global.sym, pp.sym, perlvars.h, intrpvar.h, config.h # On OS/2 reads miniperl.map and the previous version of perl5.def as well BEGIN { unshift @INC, "lib" } @@ -72,7 +72,6 @@ my $exportperlmalloc = $PLATFORM eq 'os2'; my $config_sh = "config.sh"; my $config_h = "config.h"; -my $thrdvar_h = "thrdvar.h"; my $intrpvar_h = "intrpvar.h"; my $perlvars_h = "perlvars.h"; my $global_sym = "global.sym"; @@ -86,13 +85,13 @@ if ($PLATFORM eq 'aix') { } elsif ($PLATFORM =~ /^win(?:32|ce)$/ || $PLATFORM eq 'netware') { $CCTYPE = "MSVC" unless defined $CCTYPE; - foreach ($thrdvar_h, $intrpvar_h, $perlvars_h, $global_sym, + foreach ($intrpvar_h, $perlvars_h, $global_sym, $pp_sym, $globvar_sym, $perlio_sym) { s!^!..\\!; } } elsif ($PLATFORM eq 'MacOS') { - foreach ($thrdvar_h, $intrpvar_h, $perlvars_h, $global_sym, + foreach ($intrpvar_h, $perlvars_h, $global_sym, $pp_sym, $globvar_sym, $perlio_sym) { s!^!::!; } @@ -1158,7 +1157,7 @@ for my $syms (@syms) { # variables if ($define{'MULTIPLICITY'}) { - for my $f ($perlvars_h, $intrpvar_h, $thrdvar_h) { + for my $f ($perlvars_h, $intrpvar_h) { my $glob = readvar($f, sub { "Perl_" . $_[1] . $_[2] . "_ptr" }); emit_symbols $glob; } @@ -1177,10 +1176,6 @@ else { my $glob = readvar($intrpvar_h); emit_symbols $glob; } - unless ($define{'MULTIPLICITY'}) { - my $glob = readvar($thrdvar_h); - emit_symbols $glob; - } } sub try_symbol { @@ -3509,7 +3509,6 @@ S_init_interp(pTHX) # define PERLVARIC(var,type,init) PERL_GET_INTERP->var = init; # endif # include "intrpvar.h" -# include "thrdvar.h" # undef PERLVAR # undef PERLVARA # undef PERLVARI @@ -3520,7 +3519,6 @@ S_init_interp(pTHX) # define PERLVARI(var,type,init) PL_##var = init; # define PERLVARIC(var,type,init) PL_##var = init; # include "intrpvar.h" -# include "thrdvar.h" # undef PERLVAR # undef PERLVARA # undef PERLVARI @@ -4502,7 +4502,6 @@ struct perl_vars *PL_VarsPtr; */ struct interpreter { -# include "thrdvar.h" # include "intrpvar.h" }; @@ -4567,7 +4566,6 @@ struct tempsym; /* defined in pp_pack.c */ #if !defined(MULTIPLICITY) START_EXTERN_C # include "intrpvar.h" -# include "thrdvar.h" END_EXTERN_C #endif @@ -10,7 +10,7 @@ * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by embed.pl from data in embed.fnc, embed.pl, - * pp.sym, intrpvar.h, perlvars.h and thrdvar.h. + * pp.sym, intrpvar.h, and perlvars.h. * Any changes made here will be lost! * * Edit those files and run 'make regen_headers' to effect changes. @@ -47,7 +47,6 @@ START_EXTERN_C #define PERLVARISC(v,i) PL_##v##_t* Perl_##v##_ptr(pTHX) \ { dVAR; PERL_UNUSED_CONTEXT; return &(aTHX->v); } -#include "thrdvar.h" #include "intrpvar.h" #undef PERLVAR @@ -10,7 +10,7 @@ * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by embed.pl from data in embed.fnc, embed.pl, - * pp.sym, intrpvar.h, perlvars.h and thrdvar.h. + * pp.sym, intrpvar.h, and perlvars.h. * Any changes made here will be lost! * * Edit those files and run 'make regen_headers' to effect changes. @@ -37,7 +37,6 @@ START_EXTERN_C #define PERLVARISC(v,i) typedef const char PL_##v##_t[sizeof(i)]; \ EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX); -#include "thrdvar.h" #include "intrpvar.h" #include "perlvars.h" @@ -96,7 +95,6 @@ EXTCONST void * const PL_force_link_funcs[] = { #pragma message disable (nonstandcast) #endif -#include "thrdvar.h" #include "intrpvar.h" #include "perlvars.h" @@ -162,6 +160,10 @@ END_EXTERN_C #define PL_Sock (*Perl_ISock_ptr(aTHX)) #undef PL_StdIO #define PL_StdIO (*Perl_IStdIO_ptr(aTHX)) +#undef PL_Sv +#define PL_Sv (*Perl_ISv_ptr(aTHX)) +#undef PL_Xpv +#define PL_Xpv (*Perl_IXpv_ptr(aTHX)) #undef PL_amagic_generation #define PL_amagic_generation (*Perl_Iamagic_generation_ptr(aTHX)) #undef PL_an @@ -172,6 +174,8 @@ END_EXTERN_C #define PL_argvout_stack (*Perl_Iargvout_stack_ptr(aTHX)) #undef PL_argvoutgv #define PL_argvoutgv (*Perl_Iargvoutgv_ptr(aTHX)) +#undef PL_av_fetch_sv +#define PL_av_fetch_sv (*Perl_Iav_fetch_sv_ptr(aTHX)) #undef PL_basetime #define PL_basetime (*Perl_Ibasetime_ptr(aTHX)) #undef PL_beginav @@ -184,10 +188,14 @@ END_EXTERN_C #define PL_body_arenas (*Perl_Ibody_arenas_ptr(aTHX)) #undef PL_body_roots #define PL_body_roots (*Perl_Ibody_roots_ptr(aTHX)) +#undef PL_bodytarget +#define PL_bodytarget (*Perl_Ibodytarget_ptr(aTHX)) #undef PL_checkav #define PL_checkav (*Perl_Icheckav_ptr(aTHX)) #undef PL_checkav_save #define PL_checkav_save (*Perl_Icheckav_save_ptr(aTHX)) +#undef PL_chopset +#define PL_chopset (*Perl_Ichopset_ptr(aTHX)) #undef PL_clocktick #define PL_clocktick (*Perl_Iclocktick_ptr(aTHX)) #undef PL_collation_ix @@ -200,6 +208,10 @@ END_EXTERN_C #define PL_collxfrm_base (*Perl_Icollxfrm_base_ptr(aTHX)) #undef PL_collxfrm_mult #define PL_collxfrm_mult (*Perl_Icollxfrm_mult_ptr(aTHX)) +#undef PL_colors +#define PL_colors (*Perl_Icolors_ptr(aTHX)) +#undef PL_colorset +#define PL_colorset (*Perl_Icolorset_ptr(aTHX)) #undef PL_compcv #define PL_compcv (*Perl_Icompcv_ptr(aTHX)) #undef PL_compiling @@ -220,8 +232,20 @@ END_EXTERN_C #define PL_cshlen (*Perl_Icshlen_ptr(aTHX)) #undef PL_cshname #define PL_cshname (*Perl_Icshname_ptr(aTHX)) +#undef PL_curcop +#define PL_curcop (*Perl_Icurcop_ptr(aTHX)) #undef PL_curcopdb #define PL_curcopdb (*Perl_Icurcopdb_ptr(aTHX)) +#undef PL_curpad +#define PL_curpad (*Perl_Icurpad_ptr(aTHX)) +#undef PL_curpm +#define PL_curpm (*Perl_Icurpm_ptr(aTHX)) +#undef PL_curstack +#define PL_curstack (*Perl_Icurstack_ptr(aTHX)) +#undef PL_curstackinfo +#define PL_curstackinfo (*Perl_Icurstackinfo_ptr(aTHX)) +#undef PL_curstash +#define PL_curstash (*Perl_Icurstash_ptr(aTHX)) #undef PL_curstname #define PL_curstname (*Perl_Icurstname_ptr(aTHX)) #undef PL_custom_op_descs @@ -242,8 +266,18 @@ END_EXTERN_C #define PL_def_layerlist (*Perl_Idef_layerlist_ptr(aTHX)) #undef PL_defgv #define PL_defgv (*Perl_Idefgv_ptr(aTHX)) +#undef PL_defoutgv +#define PL_defoutgv (*Perl_Idefoutgv_ptr(aTHX)) +#undef PL_defstash +#define PL_defstash (*Perl_Idefstash_ptr(aTHX)) +#undef PL_delayedisa +#define PL_delayedisa (*Perl_Idelayedisa_ptr(aTHX)) +#undef PL_delaymagic +#define PL_delaymagic (*Perl_Idelaymagic_ptr(aTHX)) #undef PL_diehook #define PL_diehook (*Perl_Idiehook_ptr(aTHX)) +#undef PL_dirty +#define PL_dirty (*Perl_Idirty_ptr(aTHX)) #undef PL_doextract #define PL_doextract (*Perl_Idoextract_ptr(aTHX)) #undef PL_doswitches @@ -252,8 +286,14 @@ END_EXTERN_C #define PL_dowarn (*Perl_Idowarn_ptr(aTHX)) #undef PL_dumper_fd #define PL_dumper_fd (*Perl_Idumper_fd_ptr(aTHX)) +#undef PL_dumpindent +#define PL_dumpindent (*Perl_Idumpindent_ptr(aTHX)) #undef PL_e_script #define PL_e_script (*Perl_Ie_script_ptr(aTHX)) +#undef PL_efloatbuf +#define PL_efloatbuf (*Perl_Iefloatbuf_ptr(aTHX)) +#undef PL_efloatsize +#define PL_efloatsize (*Perl_Iefloatsize_ptr(aTHX)) #undef PL_egid #define PL_egid (*Perl_Iegid_ptr(aTHX)) #undef PL_encoding @@ -266,6 +306,8 @@ END_EXTERN_C #define PL_errgv (*Perl_Ierrgv_ptr(aTHX)) #undef PL_error_count #define PL_error_count (*Perl_Ierror_count_ptr(aTHX)) +#undef PL_errors +#define PL_errors (*Perl_Ierrors_ptr(aTHX)) #undef PL_euid #define PL_euid (*Perl_Ieuid_ptr(aTHX)) #undef PL_eval_root @@ -284,10 +326,14 @@ END_EXTERN_C #define PL_fdpid (*Perl_Ifdpid_ptr(aTHX)) #undef PL_filemode #define PL_filemode (*Perl_Ifilemode_ptr(aTHX)) +#undef PL_firstgv +#define PL_firstgv (*Perl_Ifirstgv_ptr(aTHX)) #undef PL_forkprocess #define PL_forkprocess (*Perl_Iforkprocess_ptr(aTHX)) #undef PL_formfeed #define PL_formfeed (*Perl_Iformfeed_ptr(aTHX)) +#undef PL_formtarget +#define PL_formtarget (*Perl_Iformtarget_ptr(aTHX)) #undef PL_generation #define PL_generation (*Perl_Igeneration_ptr(aTHX)) #undef PL_gensym @@ -306,10 +352,16 @@ END_EXTERN_C #define PL_hintgv (*Perl_Ihintgv_ptr(aTHX)) #undef PL_hints #define PL_hints (*Perl_Ihints_ptr(aTHX)) +#undef PL_hv_fetch_ent_mh +#define PL_hv_fetch_ent_mh (*Perl_Ihv_fetch_ent_mh_ptr(aTHX)) +#undef PL_hv_fetch_sv +#define PL_hv_fetch_sv (*Perl_Ihv_fetch_sv_ptr(aTHX)) #undef PL_in_clean_all #define PL_in_clean_all (*Perl_Iin_clean_all_ptr(aTHX)) #undef PL_in_clean_objs #define PL_in_clean_objs (*Perl_Iin_clean_objs_ptr(aTHX)) +#undef PL_in_eval +#define PL_in_eval (*Perl_Iin_eval_ptr(aTHX)) #undef PL_in_load_module #define PL_in_load_module (*Perl_Iin_load_module_ptr(aTHX)) #undef PL_incgv @@ -322,6 +374,8 @@ END_EXTERN_C #define PL_isarev (*Perl_Iisarev_ptr(aTHX)) #undef PL_known_layers #define PL_known_layers (*Perl_Iknown_layers_ptr(aTHX)) +#undef PL_last_in_gv +#define PL_last_in_gv (*Perl_Ilast_in_gv_ptr(aTHX)) #undef PL_last_swash_hv #define PL_last_swash_hv (*Perl_Ilast_swash_hv_ptr(aTHX)) #undef PL_last_swash_key @@ -334,12 +388,18 @@ END_EXTERN_C #define PL_last_swash_tmps (*Perl_Ilast_swash_tmps_ptr(aTHX)) #undef PL_lastfd #define PL_lastfd (*Perl_Ilastfd_ptr(aTHX)) +#undef PL_lastgotoprobe +#define PL_lastgotoprobe (*Perl_Ilastgotoprobe_ptr(aTHX)) +#undef PL_lastscream +#define PL_lastscream (*Perl_Ilastscream_ptr(aTHX)) #undef PL_laststatval #define PL_laststatval (*Perl_Ilaststatval_ptr(aTHX)) #undef PL_laststype #define PL_laststype (*Perl_Ilaststype_ptr(aTHX)) #undef PL_lineary #define PL_lineary (*Perl_Ilineary_ptr(aTHX)) +#undef PL_localizing +#define PL_localizing (*Perl_Ilocalizing_ptr(aTHX)) #undef PL_localpatches #define PL_localpatches (*Perl_Ilocalpatches_ptr(aTHX)) #undef PL_lockhook @@ -352,10 +412,20 @@ END_EXTERN_C #define PL_main_root (*Perl_Imain_root_ptr(aTHX)) #undef PL_main_start #define PL_main_start (*Perl_Imain_start_ptr(aTHX)) +#undef PL_mainstack +#define PL_mainstack (*Perl_Imainstack_ptr(aTHX)) +#undef PL_markstack +#define PL_markstack (*Perl_Imarkstack_ptr(aTHX)) +#undef PL_markstack_max +#define PL_markstack_max (*Perl_Imarkstack_max_ptr(aTHX)) +#undef PL_markstack_ptr +#define PL_markstack_ptr (*Perl_Imarkstack_ptr_ptr(aTHX)) #undef PL_max_intro_pending #define PL_max_intro_pending (*Perl_Imax_intro_pending_ptr(aTHX)) #undef PL_maxo #define PL_maxo (*Perl_Imaxo_ptr(aTHX)) +#undef PL_maxscream +#define PL_maxscream (*Perl_Imaxscream_ptr(aTHX)) #undef PL_maxsysfd #define PL_maxsysfd (*Perl_Imaxsysfd_ptr(aTHX)) #undef PL_memory_debug_header @@ -378,6 +448,8 @@ END_EXTERN_C #define PL_minus_n (*Perl_Iminus_n_ptr(aTHX)) #undef PL_minus_p #define PL_minus_p (*Perl_Iminus_p_ptr(aTHX)) +#undef PL_modcount +#define PL_modcount (*Perl_Imodcount_ptr(aTHX)) #undef PL_modglobal #define PL_modglobal (*Perl_Imodglobal_ptr(aTHX)) #undef PL_multi_end @@ -388,6 +460,8 @@ END_EXTERN_C #define PL_my_cxt_list (*Perl_Imy_cxt_list_ptr(aTHX)) #undef PL_my_cxt_size #define PL_my_cxt_size (*Perl_Imy_cxt_size_ptr(aTHX)) +#undef PL_na +#define PL_na (*Perl_Ina_ptr(aTHX)) #undef PL_nice_chunk #define PL_nice_chunk (*Perl_Inice_chunk_ptr(aTHX)) #undef PL_nice_chunk_size @@ -402,10 +476,16 @@ END_EXTERN_C #define PL_numeric_radix_sv (*Perl_Inumeric_radix_sv_ptr(aTHX)) #undef PL_numeric_standard #define PL_numeric_standard (*Perl_Inumeric_standard_ptr(aTHX)) +#undef PL_ofs_sv +#define PL_ofs_sv (*Perl_Iofs_sv_ptr(aTHX)) #undef PL_oldname #define PL_oldname (*Perl_Ioldname_ptr(aTHX)) +#undef PL_op +#define PL_op (*Perl_Iop_ptr(aTHX)) #undef PL_op_mask #define PL_op_mask (*Perl_Iop_mask_ptr(aTHX)) +#undef PL_opsave +#define PL_opsave (*Perl_Iopsave_ptr(aTHX)) #undef PL_origalen #define PL_origalen (*Perl_Iorigalen_ptr(aTHX)) #undef PL_origargc @@ -430,6 +510,8 @@ END_EXTERN_C #define PL_parser (*Perl_Iparser_ptr(aTHX)) #undef PL_patchlevel #define PL_patchlevel (*Perl_Ipatchlevel_ptr(aTHX)) +#undef PL_peepp +#define PL_peepp (*Perl_Ipeepp_ptr(aTHX)) #undef PL_perl_destruct_level #define PL_perl_destruct_level (*Perl_Iperl_destruct_level_ptr(aTHX)) #undef PL_perldb @@ -458,16 +540,30 @@ END_EXTERN_C #define PL_reentrant_buffer (*Perl_Ireentrant_buffer_ptr(aTHX)) #undef PL_reentrant_retint #define PL_reentrant_retint (*Perl_Ireentrant_retint_ptr(aTHX)) +#undef PL_reg_state +#define PL_reg_state (*Perl_Ireg_state_ptr(aTHX)) +#undef PL_regdummy +#define PL_regdummy (*Perl_Iregdummy_ptr(aTHX)) #undef PL_regex_pad #define PL_regex_pad (*Perl_Iregex_pad_ptr(aTHX)) #undef PL_regex_padav #define PL_regex_padav (*Perl_Iregex_padav_ptr(aTHX)) +#undef PL_reginterp_cnt +#define PL_reginterp_cnt (*Perl_Ireginterp_cnt_ptr(aTHX)) +#undef PL_regmatch_slab +#define PL_regmatch_slab (*Perl_Iregmatch_slab_ptr(aTHX)) +#undef PL_regmatch_state +#define PL_regmatch_state (*Perl_Iregmatch_state_ptr(aTHX)) #undef PL_rehash_seed #define PL_rehash_seed (*Perl_Irehash_seed_ptr(aTHX)) #undef PL_rehash_seed_set #define PL_rehash_seed_set (*Perl_Irehash_seed_set_ptr(aTHX)) #undef PL_replgv #define PL_replgv (*Perl_Ireplgv_ptr(aTHX)) +#undef PL_restartop +#define PL_restartop (*Perl_Irestartop_ptr(aTHX)) +#undef PL_rs +#define PL_rs (*Perl_Irs_ptr(aTHX)) #undef PL_runops #define PL_runops (*Perl_Irunops_ptr(aTHX)) #undef PL_runops_dbg @@ -476,8 +572,26 @@ END_EXTERN_C #define PL_runops_std (*Perl_Irunops_std_ptr(aTHX)) #undef PL_savebegin #define PL_savebegin (*Perl_Isavebegin_ptr(aTHX)) +#undef PL_savestack +#define PL_savestack (*Perl_Isavestack_ptr(aTHX)) +#undef PL_savestack_ix +#define PL_savestack_ix (*Perl_Isavestack_ix_ptr(aTHX)) +#undef PL_savestack_max +#define PL_savestack_max (*Perl_Isavestack_max_ptr(aTHX)) #undef PL_sawampersand #define PL_sawampersand (*Perl_Isawampersand_ptr(aTHX)) +#undef PL_scopestack +#define PL_scopestack (*Perl_Iscopestack_ptr(aTHX)) +#undef PL_scopestack_ix +#define PL_scopestack_ix (*Perl_Iscopestack_ix_ptr(aTHX)) +#undef PL_scopestack_max +#define PL_scopestack_max (*Perl_Iscopestack_max_ptr(aTHX)) +#undef PL_screamfirst +#define PL_screamfirst (*Perl_Iscreamfirst_ptr(aTHX)) +#undef PL_screamnext +#define PL_screamnext (*Perl_Iscreamnext_ptr(aTHX)) +#undef PL_secondgv +#define PL_secondgv (*Perl_Isecondgv_ptr(aTHX)) #undef PL_sharehook #define PL_sharehook (*Perl_Isharehook_ptr(aTHX)) #undef PL_sig_pending @@ -492,12 +606,32 @@ END_EXTERN_C #define PL_slabs (*Perl_Islabs_ptr(aTHX)) #undef PL_sort_RealCmp #define PL_sort_RealCmp (*Perl_Isort_RealCmp_ptr(aTHX)) +#undef PL_sortcop +#define PL_sortcop (*Perl_Isortcop_ptr(aTHX)) +#undef PL_sortstash +#define PL_sortstash (*Perl_Isortstash_ptr(aTHX)) #undef PL_splitstr #define PL_splitstr (*Perl_Isplitstr_ptr(aTHX)) #undef PL_srand_called #define PL_srand_called (*Perl_Isrand_called_ptr(aTHX)) +#undef PL_stack_base +#define PL_stack_base (*Perl_Istack_base_ptr(aTHX)) +#undef PL_stack_max +#define PL_stack_max (*Perl_Istack_max_ptr(aTHX)) +#undef PL_stack_sp +#define PL_stack_sp (*Perl_Istack_sp_ptr(aTHX)) +#undef PL_start_env +#define PL_start_env (*Perl_Istart_env_ptr(aTHX)) #undef PL_stashcache #define PL_stashcache (*Perl_Istashcache_ptr(aTHX)) +#undef PL_statbuf +#define PL_statbuf (*Perl_Istatbuf_ptr(aTHX)) +#undef PL_statcache +#define PL_statcache (*Perl_Istatcache_ptr(aTHX)) +#undef PL_statgv +#define PL_statgv (*Perl_Istatgv_ptr(aTHX)) +#undef PL_statname +#define PL_statname (*Perl_Istatname_ptr(aTHX)) #undef PL_statusvalue #define PL_statusvalue (*Perl_Istatusvalue_ptr(aTHX)) #undef PL_statusvalue_posix @@ -534,12 +668,28 @@ END_EXTERN_C #define PL_sys_intern (*Perl_Isys_intern_ptr(aTHX)) #undef PL_taint_warn #define PL_taint_warn (*Perl_Itaint_warn_ptr(aTHX)) +#undef PL_tainted +#define PL_tainted (*Perl_Itainted_ptr(aTHX)) #undef PL_tainting #define PL_tainting (*Perl_Itainting_ptr(aTHX)) #undef PL_threadhook #define PL_threadhook (*Perl_Ithreadhook_ptr(aTHX)) +#undef PL_timesbuf +#define PL_timesbuf (*Perl_Itimesbuf_ptr(aTHX)) +#undef PL_tmps_floor +#define PL_tmps_floor (*Perl_Itmps_floor_ptr(aTHX)) +#undef PL_tmps_ix +#define PL_tmps_ix (*Perl_Itmps_ix_ptr(aTHX)) +#undef PL_tmps_max +#define PL_tmps_max (*Perl_Itmps_max_ptr(aTHX)) +#undef PL_tmps_stack +#define PL_tmps_stack (*Perl_Itmps_stack_ptr(aTHX)) #undef PL_tokenbuf #define PL_tokenbuf (*Perl_Itokenbuf_ptr(aTHX)) +#undef PL_top_env +#define PL_top_env (*Perl_Itop_env_ptr(aTHX)) +#undef PL_toptarget +#define PL_toptarget (*Perl_Itoptarget_ptr(aTHX)) #undef PL_uid #define PL_uid (*Perl_Iuid_ptr(aTHX)) #undef PL_unicode @@ -598,164 +748,12 @@ END_EXTERN_C #define PL_utf8locale (*Perl_Iutf8locale_ptr(aTHX)) #undef PL_warnhook #define PL_warnhook (*Perl_Iwarnhook_ptr(aTHX)) -#undef PL_xmlfp -#define PL_xmlfp (*Perl_Ixmlfp_ptr(aTHX)) -#undef PL_Sv -#define PL_Sv (*Perl_TSv_ptr(aTHX)) -#undef PL_Xpv -#define PL_Xpv (*Perl_TXpv_ptr(aTHX)) -#undef PL_av_fetch_sv -#define PL_av_fetch_sv (*Perl_Tav_fetch_sv_ptr(aTHX)) -#undef PL_bodytarget -#define PL_bodytarget (*Perl_Tbodytarget_ptr(aTHX)) -#undef PL_chopset -#define PL_chopset (*Perl_Tchopset_ptr(aTHX)) -#undef PL_colors -#define PL_colors (*Perl_Tcolors_ptr(aTHX)) -#undef PL_colorset -#define PL_colorset (*Perl_Tcolorset_ptr(aTHX)) -#undef PL_curcop -#define PL_curcop (*Perl_Tcurcop_ptr(aTHX)) -#undef PL_curpad -#define PL_curpad (*Perl_Tcurpad_ptr(aTHX)) -#undef PL_curpm -#define PL_curpm (*Perl_Tcurpm_ptr(aTHX)) -#undef PL_curstack -#define PL_curstack (*Perl_Tcurstack_ptr(aTHX)) -#undef PL_curstackinfo -#define PL_curstackinfo (*Perl_Tcurstackinfo_ptr(aTHX)) -#undef PL_curstash -#define PL_curstash (*Perl_Tcurstash_ptr(aTHX)) -#undef PL_defoutgv -#define PL_defoutgv (*Perl_Tdefoutgv_ptr(aTHX)) -#undef PL_defstash -#define PL_defstash (*Perl_Tdefstash_ptr(aTHX)) -#undef PL_delayedisa -#define PL_delayedisa (*Perl_Tdelayedisa_ptr(aTHX)) -#undef PL_delaymagic -#define PL_delaymagic (*Perl_Tdelaymagic_ptr(aTHX)) -#undef PL_dirty -#define PL_dirty (*Perl_Tdirty_ptr(aTHX)) -#undef PL_dumpindent -#define PL_dumpindent (*Perl_Tdumpindent_ptr(aTHX)) -#undef PL_efloatbuf -#define PL_efloatbuf (*Perl_Tefloatbuf_ptr(aTHX)) -#undef PL_efloatsize -#define PL_efloatsize (*Perl_Tefloatsize_ptr(aTHX)) -#undef PL_errors -#define PL_errors (*Perl_Terrors_ptr(aTHX)) -#undef PL_firstgv -#define PL_firstgv (*Perl_Tfirstgv_ptr(aTHX)) -#undef PL_formtarget -#define PL_formtarget (*Perl_Tformtarget_ptr(aTHX)) -#undef PL_hv_fetch_ent_mh -#define PL_hv_fetch_ent_mh (*Perl_Thv_fetch_ent_mh_ptr(aTHX)) -#undef PL_hv_fetch_sv -#define PL_hv_fetch_sv (*Perl_Thv_fetch_sv_ptr(aTHX)) -#undef PL_in_eval -#define PL_in_eval (*Perl_Tin_eval_ptr(aTHX)) -#undef PL_last_in_gv -#define PL_last_in_gv (*Perl_Tlast_in_gv_ptr(aTHX)) -#undef PL_lastgotoprobe -#define PL_lastgotoprobe (*Perl_Tlastgotoprobe_ptr(aTHX)) -#undef PL_lastscream -#define PL_lastscream (*Perl_Tlastscream_ptr(aTHX)) -#undef PL_localizing -#define PL_localizing (*Perl_Tlocalizing_ptr(aTHX)) -#undef PL_mainstack -#define PL_mainstack (*Perl_Tmainstack_ptr(aTHX)) -#undef PL_markstack -#define PL_markstack (*Perl_Tmarkstack_ptr(aTHX)) -#undef PL_markstack_max -#define PL_markstack_max (*Perl_Tmarkstack_max_ptr(aTHX)) -#undef PL_markstack_ptr -#define PL_markstack_ptr (*Perl_Tmarkstack_ptr_ptr(aTHX)) -#undef PL_maxscream -#define PL_maxscream (*Perl_Tmaxscream_ptr(aTHX)) -#undef PL_modcount -#define PL_modcount (*Perl_Tmodcount_ptr(aTHX)) -#undef PL_na -#define PL_na (*Perl_Tna_ptr(aTHX)) -#undef PL_ofs_sv -#define PL_ofs_sv (*Perl_Tofs_sv_ptr(aTHX)) -#undef PL_op -#define PL_op (*Perl_Top_ptr(aTHX)) -#undef PL_opsave -#define PL_opsave (*Perl_Topsave_ptr(aTHX)) -#undef PL_peepp -#define PL_peepp (*Perl_Tpeepp_ptr(aTHX)) -#undef PL_reg_state -#define PL_reg_state (*Perl_Treg_state_ptr(aTHX)) -#undef PL_regdummy -#define PL_regdummy (*Perl_Tregdummy_ptr(aTHX)) -#undef PL_reginterp_cnt -#define PL_reginterp_cnt (*Perl_Treginterp_cnt_ptr(aTHX)) -#undef PL_regmatch_slab -#define PL_regmatch_slab (*Perl_Tregmatch_slab_ptr(aTHX)) -#undef PL_regmatch_state -#define PL_regmatch_state (*Perl_Tregmatch_state_ptr(aTHX)) -#undef PL_restartop -#define PL_restartop (*Perl_Trestartop_ptr(aTHX)) -#undef PL_rs -#define PL_rs (*Perl_Trs_ptr(aTHX)) -#undef PL_savestack -#define PL_savestack (*Perl_Tsavestack_ptr(aTHX)) -#undef PL_savestack_ix -#define PL_savestack_ix (*Perl_Tsavestack_ix_ptr(aTHX)) -#undef PL_savestack_max -#define PL_savestack_max (*Perl_Tsavestack_max_ptr(aTHX)) -#undef PL_scopestack -#define PL_scopestack (*Perl_Tscopestack_ptr(aTHX)) -#undef PL_scopestack_ix -#define PL_scopestack_ix (*Perl_Tscopestack_ix_ptr(aTHX)) -#undef PL_scopestack_max -#define PL_scopestack_max (*Perl_Tscopestack_max_ptr(aTHX)) -#undef PL_screamfirst -#define PL_screamfirst (*Perl_Tscreamfirst_ptr(aTHX)) -#undef PL_screamnext -#define PL_screamnext (*Perl_Tscreamnext_ptr(aTHX)) -#undef PL_secondgv -#define PL_secondgv (*Perl_Tsecondgv_ptr(aTHX)) -#undef PL_sortcop -#define PL_sortcop (*Perl_Tsortcop_ptr(aTHX)) -#undef PL_sortstash -#define PL_sortstash (*Perl_Tsortstash_ptr(aTHX)) -#undef PL_stack_base -#define PL_stack_base (*Perl_Tstack_base_ptr(aTHX)) -#undef PL_stack_max -#define PL_stack_max (*Perl_Tstack_max_ptr(aTHX)) -#undef PL_stack_sp -#define PL_stack_sp (*Perl_Tstack_sp_ptr(aTHX)) -#undef PL_start_env -#define PL_start_env (*Perl_Tstart_env_ptr(aTHX)) -#undef PL_statbuf -#define PL_statbuf (*Perl_Tstatbuf_ptr(aTHX)) -#undef PL_statcache -#define PL_statcache (*Perl_Tstatcache_ptr(aTHX)) -#undef PL_statgv -#define PL_statgv (*Perl_Tstatgv_ptr(aTHX)) -#undef PL_statname -#define PL_statname (*Perl_Tstatname_ptr(aTHX)) -#undef PL_tainted -#define PL_tainted (*Perl_Ttainted_ptr(aTHX)) -#undef PL_timesbuf -#define PL_timesbuf (*Perl_Ttimesbuf_ptr(aTHX)) -#undef PL_tmps_floor -#define PL_tmps_floor (*Perl_Ttmps_floor_ptr(aTHX)) -#undef PL_tmps_ix -#define PL_tmps_ix (*Perl_Ttmps_ix_ptr(aTHX)) -#undef PL_tmps_max -#define PL_tmps_max (*Perl_Ttmps_max_ptr(aTHX)) -#undef PL_tmps_stack -#define PL_tmps_stack (*Perl_Ttmps_stack_ptr(aTHX)) -#undef PL_top_env -#define PL_top_env (*Perl_Ttop_env_ptr(aTHX)) -#undef PL_toptarget -#define PL_toptarget (*Perl_Ttoptarget_ptr(aTHX)) #undef PL_watchaddr -#define PL_watchaddr (*Perl_Twatchaddr_ptr(aTHX)) +#define PL_watchaddr (*Perl_Iwatchaddr_ptr(aTHX)) #undef PL_watchok -#define PL_watchok (*Perl_Twatchok_ptr(aTHX)) +#define PL_watchok (*Perl_Iwatchok_ptr(aTHX)) +#undef PL_xmlfp +#define PL_xmlfp (*Perl_Ixmlfp_ptr(aTHX)) #undef PL_No #define PL_No (*Perl_GNo_ptr(NULL)) #undef PL_Yes diff --git a/pod/perlapi.pod b/pod/perlapi.pod index 7c0aa88403..cd84734aef 100644 --- a/pod/perlapi.pod +++ b/pod/perlapi.pod @@ -1223,72 +1223,6 @@ Found in file pp_pack.c =back -=head1 Global Variables - -=over 8 - -=item PL_modglobal -X<PL_modglobal> - -C<PL_modglobal> is a general purpose, interpreter global HV for use by -extensions that need to keep information on a per-interpreter basis. -In a pinch, it can also be used as a symbol table for extensions -to share data among each other. It is a good idea to use keys -prefixed by the package name of the extension that owns the data. - - HV* PL_modglobal - -=for hackers -Found in file intrpvar.h - -=item PL_na -X<PL_na> - -A convenience variable which is typically used with C<SvPV> when one -doesn't care about the length of the string. It is usually more efficient -to either declare a local variable and use that instead or to use the -C<SvPV_nolen> macro. - - STRLEN PL_na - -=for hackers -Found in file thrdvar.h - -=item PL_sv_no -X<PL_sv_no> - -This is the C<false> SV. See C<PL_sv_yes>. Always refer to this as -C<&PL_sv_no>. - - SV PL_sv_no - -=for hackers -Found in file intrpvar.h - -=item PL_sv_undef -X<PL_sv_undef> - -This is the C<undef> SV. Always refer to this as C<&PL_sv_undef>. - - SV PL_sv_undef - -=for hackers -Found in file intrpvar.h - -=item PL_sv_yes -X<PL_sv_yes> - -This is the C<true> SV. See C<PL_sv_no>. Always refer to this as -C<&PL_sv_yes>. - - SV PL_sv_yes - -=for hackers -Found in file intrpvar.h - - -=back - =head1 GV Functions =over 8 @@ -3135,6 +3069,72 @@ Found in file pad.c =back +=head1 Per-Interpreter Variables + +=over 8 + +=item PL_modglobal +X<PL_modglobal> + +C<PL_modglobal> is a general purpose, interpreter global HV for use by +extensions that need to keep information on a per-interpreter basis. +In a pinch, it can also be used as a symbol table for extensions +to share data among each other. It is a good idea to use keys +prefixed by the package name of the extension that owns the data. + + HV* PL_modglobal + +=for hackers +Found in file intrpvar.h + +=item PL_na +X<PL_na> + +A convenience variable which is typically used with C<SvPV> when one +doesn't care about the length of the string. It is usually more efficient +to either declare a local variable and use that instead or to use the +C<SvPV_nolen> macro. + + STRLEN PL_na + +=for hackers +Found in file intrpvar.h + +=item PL_sv_no +X<PL_sv_no> + +This is the C<false> SV. See C<PL_sv_yes>. Always refer to this as +C<&PL_sv_no>. + + SV PL_sv_no + +=for hackers +Found in file intrpvar.h + +=item PL_sv_undef +X<PL_sv_undef> + +This is the C<undef> SV. Always refer to this as C<&PL_sv_undef>. + + SV PL_sv_undef + +=for hackers +Found in file intrpvar.h + +=item PL_sv_yes +X<PL_sv_yes> + +This is the C<true> SV. See C<PL_sv_no>. Always refer to this as +C<&PL_sv_yes>. + + SV PL_sv_yes + +=for hackers +Found in file intrpvar.h + + +=back + =head1 Simple Exception Handling Macros =over 8 diff --git a/pod/perlintern.pod b/pod/perlintern.pod index 2d0c3a7576..73c21c31e2 100644 --- a/pod/perlintern.pod +++ b/pod/perlintern.pod @@ -353,92 +353,6 @@ Found in file pp_ctl.c =back -=head1 Global Variables - -=over 8 - -=item PL_DBsingle -X<PL_DBsingle> - -When Perl is run in debugging mode, with the B<-d> switch, this SV is a -boolean which indicates whether subs are being single-stepped. -Single-stepping is automatically turned on after every step. This is the C -variable which corresponds to Perl's $DB::single variable. See -C<PL_DBsub>. - - SV * PL_DBsingle - -=for hackers -Found in file intrpvar.h - -=item PL_DBsub -X<PL_DBsub> - -When Perl is run in debugging mode, with the B<-d> switch, this GV contains -the SV which holds the name of the sub being debugged. This is the C -variable which corresponds to Perl's $DB::sub variable. See -C<PL_DBsingle>. - - GV * PL_DBsub - -=for hackers -Found in file intrpvar.h - -=item PL_DBtrace -X<PL_DBtrace> - -Trace variable used when Perl is run in debugging mode, with the B<-d> -switch. This is the C variable which corresponds to Perl's $DB::trace -variable. See C<PL_DBsingle>. - - SV * PL_DBtrace - -=for hackers -Found in file intrpvar.h - -=item PL_dowarn -X<PL_dowarn> - -The C variable which corresponds to Perl's $^W warning variable. - - bool PL_dowarn - -=for hackers -Found in file intrpvar.h - -=item PL_last_in_gv -X<PL_last_in_gv> - -The GV which was last used for a filehandle input operation. (C<< <FH> >>) - - GV* PL_last_in_gv - -=for hackers -Found in file thrdvar.h - -=item PL_ofs_sv -X<PL_ofs_sv> - -The output field separator - C<$,> in Perl space. - - SV* PL_ofs_sv - -=for hackers -Found in file thrdvar.h - -=item PL_rs -X<PL_rs> - -The input record separator - C<$/> in Perl space. - - SV* PL_rs - -=for hackers -Found in file thrdvar.h - - -=back - =head1 GV Functions =over 8 @@ -943,6 +857,92 @@ Found in file pad.c =back +=head1 Per-Interpreter Variables + +=over 8 + +=item PL_DBsingle +X<PL_DBsingle> + +When Perl is run in debugging mode, with the B<-d> switch, this SV is a +boolean which indicates whether subs are being single-stepped. +Single-stepping is automatically turned on after every step. This is the C +variable which corresponds to Perl's $DB::single variable. See +C<PL_DBsub>. + + SV * PL_DBsingle + +=for hackers +Found in file intrpvar.h + +=item PL_DBsub +X<PL_DBsub> + +When Perl is run in debugging mode, with the B<-d> switch, this GV contains +the SV which holds the name of the sub being debugged. This is the C +variable which corresponds to Perl's $DB::sub variable. See +C<PL_DBsingle>. + + GV * PL_DBsub + +=for hackers +Found in file intrpvar.h + +=item PL_DBtrace +X<PL_DBtrace> + +Trace variable used when Perl is run in debugging mode, with the B<-d> +switch. This is the C variable which corresponds to Perl's $DB::trace +variable. See C<PL_DBsingle>. + + SV * PL_DBtrace + +=for hackers +Found in file intrpvar.h + +=item PL_dowarn +X<PL_dowarn> + +The C variable which corresponds to Perl's $^W warning variable. + + bool PL_dowarn + +=for hackers +Found in file intrpvar.h + +=item PL_last_in_gv +X<PL_last_in_gv> + +The GV which was last used for a filehandle input operation. (C<< <FH> >>) + + GV* PL_last_in_gv + +=for hackers +Found in file intrpvar.h + +=item PL_ofs_sv +X<PL_ofs_sv> + +The output field separator - C<$,> in Perl space. + + SV* PL_ofs_sv + +=for hackers +Found in file intrpvar.h + +=item PL_rs +X<PL_rs> + +The input record separator - C<$/> in Perl space. + + SV* PL_rs + +=for hackers +Found in file intrpvar.h + + +=back + =head1 Stack Manipulation Macros =over 8 diff --git a/pod/perltodo.pod b/pod/perltodo.pod index 88b56b18d0..6b7a08916a 100644 --- a/pod/perltodo.pod +++ b/pod/perltodo.pod @@ -134,7 +134,7 @@ for example POSIX passes Exporter some very memory hungry data structures. There is a script F<embed.pl> that generates several header files to prefix all of Perl's symbols in a consistent way, to provide some semblance of namespace support in C<C>. Functions are declared in F<embed.fnc>, variables -in F<interpvar.h> and F<thrdvar.h>. Quite a few of the functions and variables +in F<interpvar.h>. Quite a few of the functions and variables are conditionally declared there, using C<#ifdef>. However, F<embed.pl> doesn't understand the C macros, so the rules about which symbols are present when is duplicated in F<makedef.pl>. Writing things twice is bad, m'kay. @@ -10,7 +10,7 @@ * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! * This file is built by embed.pl from data in embed.fnc, embed.pl, - * pp.sym, intrpvar.h, perlvars.h and thrdvar.h. + * pp.sym, intrpvar.h, and perlvars.h. * Any changes made here will be lost! * * Edit those files and run 'make regen_headers' to effect changes. @@ -10455,9 +10455,9 @@ ANY * Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS* param) { dVAR; - ANY * const ss = proto_perl->Tsavestack; - const I32 max = proto_perl->Tsavestack_max; - I32 ix = proto_perl->Tsavestack_ix; + ANY * const ss = proto_perl->Isavestack; + const I32 max = proto_perl->Isavestack_max; + I32 ix = proto_perl->Isavestack_ix; ANY *nss; SV *sv; GV *gv; @@ -11013,7 +11013,7 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, PL_compiling.cop_hints_hash->refcounted_he_refcnt++; HINTS_REFCNT_UNLOCK; } - PL_curcop = (COP*)any_dup(proto_perl->Tcurcop, proto_perl); + PL_curcop = (COP*)any_dup(proto_perl->Icurcop, proto_perl); #ifdef PERL_DEBUG_READONLY_OPS PL_slabs = NULL; PL_slab_count = 0; @@ -11137,8 +11137,8 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, PL_dbargs = av_dup(proto_perl->Idbargs, param); /* symbol tables */ - PL_defstash = hv_dup_inc(proto_perl->Tdefstash, param); - PL_curstash = hv_dup(proto_perl->Tcurstash, param); + PL_defstash = hv_dup_inc(proto_perl->Idefstash, param); + PL_curstash = hv_dup(proto_perl->Icurstash, param); PL_debstash = hv_dup(proto_perl->Idebstash, param); PL_globalstash = hv_dup(proto_perl->Iglobalstash, param); PL_curstname = sv_dup_inc(proto_perl->Icurstname, param); @@ -11154,7 +11154,7 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, PL_sub_generation = proto_perl->Isub_generation; PL_isarev = hv_dup_inc(proto_perl->Iisarev, param); - PL_delayedisa = hv_dup_inc(proto_perl->Tdelayedisa, param); + PL_delayedisa = hv_dup_inc(proto_perl->Idelayedisa, param); /* funky return mechanisms */ PL_forkprocess = proto_perl->Iforkprocess; @@ -11382,54 +11382,54 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, PL_psig_name = (SV**)NULL; } - /* thrdvar.h stuff */ + /* intrpvar.h stuff */ if (flags & CLONEf_COPY_STACKS) { /* next allocation will be PL_tmps_stack[PL_tmps_ix+1] */ - PL_tmps_ix = proto_perl->Ttmps_ix; - PL_tmps_max = proto_perl->Ttmps_max; - PL_tmps_floor = proto_perl->Ttmps_floor; + PL_tmps_ix = proto_perl->Itmps_ix; + PL_tmps_max = proto_perl->Itmps_max; + PL_tmps_floor = proto_perl->Itmps_floor; Newxz(PL_tmps_stack, PL_tmps_max, SV*); i = 0; while (i <= PL_tmps_ix) { - PL_tmps_stack[i] = sv_dup_inc(proto_perl->Ttmps_stack[i], param); + PL_tmps_stack[i] = sv_dup_inc(proto_perl->Itmps_stack[i], param); ++i; } /* next PUSHMARK() sets *(PL_markstack_ptr+1) */ - i = proto_perl->Tmarkstack_max - proto_perl->Tmarkstack; + i = proto_perl->Imarkstack_max - proto_perl->Imarkstack; Newxz(PL_markstack, i, I32); - PL_markstack_max = PL_markstack + (proto_perl->Tmarkstack_max - - proto_perl->Tmarkstack); - PL_markstack_ptr = PL_markstack + (proto_perl->Tmarkstack_ptr - - proto_perl->Tmarkstack); - Copy(proto_perl->Tmarkstack, PL_markstack, + PL_markstack_max = PL_markstack + (proto_perl->Imarkstack_max + - proto_perl->Imarkstack); + PL_markstack_ptr = PL_markstack + (proto_perl->Imarkstack_ptr + - proto_perl->Imarkstack); + Copy(proto_perl->Imarkstack, PL_markstack, PL_markstack_ptr - PL_markstack + 1, I32); /* next push_scope()/ENTER sets PL_scopestack[PL_scopestack_ix] * NOTE: unlike the others! */ - PL_scopestack_ix = proto_perl->Tscopestack_ix; - PL_scopestack_max = proto_perl->Tscopestack_max; + PL_scopestack_ix = proto_perl->Iscopestack_ix; + PL_scopestack_max = proto_perl->Iscopestack_max; Newxz(PL_scopestack, PL_scopestack_max, I32); - Copy(proto_perl->Tscopestack, PL_scopestack, PL_scopestack_ix, I32); + Copy(proto_perl->Iscopestack, PL_scopestack, PL_scopestack_ix, I32); /* NOTE: si_dup() looks at PL_markstack */ - PL_curstackinfo = si_dup(proto_perl->Tcurstackinfo, param); + PL_curstackinfo = si_dup(proto_perl->Icurstackinfo, param); /* PL_curstack = PL_curstackinfo->si_stack; */ - PL_curstack = av_dup(proto_perl->Tcurstack, param); - PL_mainstack = av_dup(proto_perl->Tmainstack, param); + PL_curstack = av_dup(proto_perl->Icurstack, param); + PL_mainstack = av_dup(proto_perl->Imainstack, param); /* next PUSHs() etc. set *(PL_stack_sp+1) */ PL_stack_base = AvARRAY(PL_curstack); - PL_stack_sp = PL_stack_base + (proto_perl->Tstack_sp - - proto_perl->Tstack_base); + PL_stack_sp = PL_stack_base + (proto_perl->Istack_sp + - proto_perl->Istack_base); PL_stack_max = PL_stack_base + AvMAX(PL_curstack); /* next SSPUSHFOO() sets PL_savestack[PL_savestack_ix] * NOTE: unlike the others! */ - PL_savestack_ix = proto_perl->Tsavestack_ix; - PL_savestack_max = proto_perl->Tsavestack_max; + PL_savestack_ix = proto_perl->Isavestack_ix; + PL_savestack_max = proto_perl->Isavestack_max; /*Newxz(PL_savestack, PL_savestack_max, ANY);*/ PL_savestack = ss_dup(proto_perl, param); } @@ -11442,9 +11442,9 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, * non-refcount means (eg a temp in @_); otherwise they will be * orphaned */ - for (i = 0; i<= proto_perl->Ttmps_ix; i++) { + for (i = 0; i<= proto_perl->Itmps_ix; i++) { SV * const nsv = (SV*)ptr_table_fetch(PL_ptr_table, - proto_perl->Ttmps_stack[i]); + proto_perl->Itmps_stack[i]); if (nsv && !SvREFCNT(nsv)) { EXTEND_MORTAL(1); PL_tmps_stack[++PL_tmps_ix] = SvREFCNT_inc_simple(nsv); @@ -11452,50 +11452,50 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, } } - PL_start_env = proto_perl->Tstart_env; /* XXXXXX */ + PL_start_env = proto_perl->Istart_env; /* XXXXXX */ PL_top_env = &PL_start_env; - PL_op = proto_perl->Top; + PL_op = proto_perl->Iop; PL_Sv = NULL; PL_Xpv = (XPV*)NULL; - PL_na = proto_perl->Tna; + PL_na = proto_perl->Ina; - PL_statbuf = proto_perl->Tstatbuf; - PL_statcache = proto_perl->Tstatcache; - PL_statgv = gv_dup(proto_perl->Tstatgv, param); - PL_statname = sv_dup_inc(proto_perl->Tstatname, param); + PL_statbuf = proto_perl->Istatbuf; + PL_statcache = proto_perl->Istatcache; + PL_statgv = gv_dup(proto_perl->Istatgv, param); + PL_statname = sv_dup_inc(proto_perl->Istatname, param); #ifdef HAS_TIMES - PL_timesbuf = proto_perl->Ttimesbuf; + PL_timesbuf = proto_perl->Itimesbuf; #endif - PL_tainted = proto_perl->Ttainted; - PL_curpm = proto_perl->Tcurpm; /* XXX No PMOP ref count */ - PL_rs = sv_dup_inc(proto_perl->Trs, param); - PL_last_in_gv = gv_dup(proto_perl->Tlast_in_gv, param); - PL_ofs_sv = sv_dup_inc(proto_perl->Tofs_sv, param); - PL_defoutgv = gv_dup_inc(proto_perl->Tdefoutgv, param); - PL_chopset = proto_perl->Tchopset; /* XXX never deallocated */ - PL_toptarget = sv_dup_inc(proto_perl->Ttoptarget, param); - PL_bodytarget = sv_dup_inc(proto_perl->Tbodytarget, param); - PL_formtarget = sv_dup(proto_perl->Tformtarget, param); - - PL_restartop = proto_perl->Trestartop; - PL_in_eval = proto_perl->Tin_eval; - PL_delaymagic = proto_perl->Tdelaymagic; - PL_dirty = proto_perl->Tdirty; - PL_localizing = proto_perl->Tlocalizing; - - PL_errors = sv_dup_inc(proto_perl->Terrors, param); + PL_tainted = proto_perl->Itainted; + PL_curpm = proto_perl->Icurpm; /* XXX No PMOP ref count */ + PL_rs = sv_dup_inc(proto_perl->Irs, param); + PL_last_in_gv = gv_dup(proto_perl->Ilast_in_gv, param); + PL_ofs_sv = sv_dup_inc(proto_perl->Iofs_sv, param); + PL_defoutgv = gv_dup_inc(proto_perl->Idefoutgv, param); + PL_chopset = proto_perl->Ichopset; /* XXX never deallocated */ + PL_toptarget = sv_dup_inc(proto_perl->Itoptarget, param); + PL_bodytarget = sv_dup_inc(proto_perl->Ibodytarget, param); + PL_formtarget = sv_dup(proto_perl->Iformtarget, param); + + PL_restartop = proto_perl->Irestartop; + PL_in_eval = proto_perl->Iin_eval; + PL_delaymagic = proto_perl->Idelaymagic; + PL_dirty = proto_perl->Idirty; + PL_localizing = proto_perl->Ilocalizing; + + PL_errors = sv_dup_inc(proto_perl->Ierrors, param); PL_hv_fetch_ent_mh = NULL; - PL_modcount = proto_perl->Tmodcount; + PL_modcount = proto_perl->Imodcount; PL_lastgotoprobe = NULL; - PL_dumpindent = proto_perl->Tdumpindent; + PL_dumpindent = proto_perl->Idumpindent; - PL_sortcop = (OP*)any_dup(proto_perl->Tsortcop, proto_perl); - PL_sortstash = hv_dup(proto_perl->Tsortstash, param); - PL_firstgv = gv_dup(proto_perl->Tfirstgv, param); - PL_secondgv = gv_dup(proto_perl->Tsecondgv, param); + PL_sortcop = (OP*)any_dup(proto_perl->Isortcop, proto_perl); + PL_sortstash = hv_dup(proto_perl->Isortstash, param); + PL_firstgv = gv_dup(proto_perl->Ifirstgv, param); + PL_secondgv = gv_dup(proto_perl->Isecondgv, param); PL_efloatbuf = NULL; /* reinits on demand */ PL_efloatsize = 0; /* reinits on demand */ @@ -11507,24 +11507,24 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, PL_lastscream = NULL; - PL_regdummy = proto_perl->Tregdummy; + PL_regdummy = proto_perl->Iregdummy; PL_colorset = 0; /* reinits PL_colors[] */ /*PL_colors[6] = {0,0,0,0,0,0};*/ /* Pluggable optimizer */ - PL_peepp = proto_perl->Tpeepp; + PL_peepp = proto_perl->Ipeepp; PL_stashcache = newHV(); PL_watchaddr = (char **) ptr_table_fetch(PL_ptr_table, - proto_perl->Twatchaddr); + proto_perl->Iwatchaddr); PL_watchok = PL_watchaddr ? * PL_watchaddr : NULL; if (PL_debug && PL_watchaddr) { PerlIO_printf(Perl_debug_log, "WATCHING: %"UVxf" cloned as %"UVxf" with value %"UVxf"\n", - PTR2UV(proto_perl->Twatchaddr), PTR2UV(PL_watchaddr), + PTR2UV(proto_perl->Iwatchaddr), PTR2UV(PL_watchaddr), PTR2UV(PL_watchok)); } diff --git a/thrdvar.h b/thrdvar.h deleted file mode 100644 index d2fb31d22d..0000000000 --- a/thrdvar.h +++ /dev/null @@ -1,196 +0,0 @@ -/* thdrvar.h - * - * Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 - * by Larry Wall and others - * - * You may distribute under the terms of either the GNU General Public - * License or the Artistic License, as specified in the README file. - * - */ - -/* -=head1 Global Variables -*/ - -/***********************************************/ -/* Global only to current thread */ -/***********************************************/ - -/* Don't forget to re-run embed.pl to propagate changes! */ - -/* The 'T' prefix is only needed for vars that need appropriate #defines - * generated when built with or without USE_5005THREADS. It is also used - * to generate the appropriate export list for win32. - * - * When building without USE_5005THREADS, these variables will be truly global. - * When building without USE_5005THREADS but with MULTIPLICITY, these variables - * will be global per-interpreter. */ - -/* Important ones in the first cache line (if alignment is done right) */ - -PERLVAR(Tstack_sp, SV **) /* top of the stack */ -#ifdef OP_IN_REGISTER -PERLVAR(Topsave, OP *) -#else -PERLVAR(Top, OP *) /* currently executing op */ -#endif -PERLVAR(Tcurpad, SV **) /* active pad (lexicals+tmps) */ - -PERLVAR(Tstack_base, SV **) -PERLVAR(Tstack_max, SV **) - -PERLVAR(Tscopestack, I32 *) /* scopes we've ENTERed */ -PERLVAR(Tscopestack_ix, I32) -PERLVAR(Tscopestack_max,I32) - -PERLVAR(Tsavestack, ANY *) /* items that need to be restored - when LEAVEing scopes we've ENTERed */ -PERLVAR(Tsavestack_ix, I32) -PERLVAR(Tsavestack_max, I32) - -PERLVAR(Ttmps_stack, SV **) /* mortals we've made */ -PERLVARI(Ttmps_ix, I32, -1) -PERLVARI(Ttmps_floor, I32, -1) -PERLVAR(Ttmps_max, I32) -PERLVAR(Tmodcount, I32) /* how much mod()ification in assignment? */ - -PERLVAR(Tmarkstack, I32 *) /* stack_sp locations we're remembering */ -PERLVAR(Tmarkstack_ptr, I32 *) -PERLVAR(Tmarkstack_max, I32 *) - -PERLVAR(TSv, SV *) /* used to hold temporary values */ -PERLVAR(TXpv, XPV *) /* used to hold temporary values */ - -/* -=for apidoc Amn|STRLEN|PL_na - -A convenience variable which is typically used with C<SvPV> when one -doesn't care about the length of the string. It is usually more efficient -to either declare a local variable and use that instead or to use the -C<SvPV_nolen> macro. - -=cut -*/ - -PERLVAR(Tna, STRLEN) /* for use in SvPV when length is - Not Applicable */ - -/* stat stuff */ -PERLVAR(Tstatbuf, Stat_t) -PERLVAR(Tstatcache, Stat_t) /* _ */ -PERLVAR(Tstatgv, GV *) -PERLVARI(Tstatname, SV *, NULL) - -#ifdef HAS_TIMES -PERLVAR(Ttimesbuf, struct tms) -#endif - -/* Fields used by magic variables such as $@, $/ and so on */ -PERLVAR(Tcurpm, PMOP *) /* what to do \ interps in REs from */ - -/* -=for apidoc mn|SV*|PL_rs - -The input record separator - C<$/> in Perl space. - -=for apidoc mn|GV*|PL_last_in_gv - -The GV which was last used for a filehandle input operation. (C<< <FH> >>) - -=for apidoc mn|SV*|PL_ofs_sv - -The output field separator - C<$,> in Perl space. - -=cut -*/ - -PERLVAR(Trs, SV *) /* input record separator $/ */ -PERLVAR(Tlast_in_gv, GV *) /* GV used in last <FH> */ -PERLVAR(Tofs_sv, SV *) /* output field separator $, */ -PERLVAR(Tdefoutgv, GV *) /* default FH for output */ -PERLVARI(Tchopset, const char *, " \n-") /* $: */ -PERLVAR(Tformtarget, SV *) -PERLVAR(Tbodytarget, SV *) -PERLVAR(Ttoptarget, SV *) - -/* Stashes */ -PERLVAR(Tdefstash, HV *) /* main symbol table */ -PERLVAR(Tcurstash, HV *) /* symbol table for current package */ - -PERLVAR(Trestartop, OP *) /* propagating an error from croak? */ -PERLVARI(Tcurcop, COP * VOL, &PL_compiling) -PERLVAR(Tcurstack, AV *) /* THE STACK */ -PERLVAR(Tcurstackinfo, PERL_SI *) /* current stack + context */ -PERLVAR(Tmainstack, AV *) /* the stack when nothing funny is happening */ - -PERLVAR(Ttop_env, JMPENV *) /* ptr. to current sigjmp() environment */ -PERLVAR(Tstart_env, JMPENV) /* empty startup sigjmp() environment */ -PERLVARI(Terrors, SV *, NULL) /* outstanding queued errors */ - -/* statics "owned" by various functions */ -PERLVAR(Tav_fetch_sv, SV *) /* unused as of change #19268 */ -PERLVAR(Thv_fetch_sv, SV *) /* unused as of change #19268 */ -PERLVAR(Thv_fetch_ent_mh, HE*) /* owned by hv_fetch_ent() */ - - -PERLVAR(Tlastgotoprobe, OP*) /* from pp_ctl.c */ - -/* sort stuff */ -PERLVAR(Tsortcop, OP *) /* user defined sort routine */ -PERLVAR(Tsortstash, HV *) /* which is in some package or other */ -PERLVAR(Tfirstgv, GV *) /* $a */ -PERLVAR(Tsecondgv, GV *) /* $b */ - -/* float buffer */ -PERLVAR(Tefloatbuf, char*) -PERLVAR(Tefloatsize, STRLEN) - -/* regex stuff */ - -PERLVAR(Tscreamfirst, I32 *) -PERLVAR(Tscreamnext, I32 *) -PERLVAR(Tlastscream, SV *) - -PERLVAR(Treg_state, struct re_save_state) - -PERLVAR(Tregdummy, regnode) /* from regcomp.c */ - -PERLVARI(Tdumpindent, U16, 4) /* # of blanks per dump indentation level */ -/* Space for U16 here without increasing the structure size */ - -PERLVARA(Tcolors,6, char *) /* from regcomp.c */ - -PERLVARI(Tpeepp, peep_t, MEMBER_TO_FPTR(Perl_peep)) - /* Pointer to peephole optimizer */ - -PERLVARI(Tmaxscream, I32, -1) -PERLVARI(Treginterp_cnt,I32, 0) /* Whether "Regexp" was interpolated. */ -PERLVARI(Twatchaddr, char **, 0) -PERLVAR(Twatchok, char *) - -/* Note that the variables below are all explicitly referenced in the code - * as thr->whatever and therefore don't need the 'T' prefix. */ - -/* the currently active slab in a chain of slabs of regmatch states, - * and the currently active state within that slab */ - -PERLVARI(Tregmatch_slab, regmatch_slab *, NULL) -PERLVAR(Tregmatch_state, regmatch_state *) - -PERLVARI(Tdelayedisa, HV*, NULL) /* stash for PL_delaymagic for magic_setisa */ - -/* Put anything new that is pointer aligned here. */ - -PERLVAR(Tdelaymagic, U16) /* ($<,$>) = ... */ -PERLVAR(Tlocalizing, U8) /* are we processing a local() list? */ -PERLVAR(Tcolorset, bool) /* from regcomp.c */ -PERLVARI(Tdirty, bool, FALSE) /* in the middle of tearing things down? */ -PERLVAR(Tin_eval, VOL U8) /* trap "fatal" errors? */ -PERLVAR(Ttainted, bool) /* using variables controlled by $< */ - -/* Put new things UP THERE ^^^ */ - -/* For historical reasons this file is followed by intrpvar.h in the - interpreter struct. As this file currently ends with 7 bytes of variables, - intrpvar.h starts with one single U8, to avoid structure padding space - wastage. */ diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 70f41020a4..8894c13954 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -297,7 +297,7 @@ h1 = EXTERN.h form.h gv.h handy.h hv.h INTERN.h intrpvar.h h2 = iperlsys.h keywords.h mg.h nostdio.h op.h opcode.h opnames.h overload.h pad.h h3 = parser.h patchlevel.h perl.h perlapi.h perlio.h perlsdio.h perlvars.h perly.h h4 = pp.h pp_proto.h proto.h regcomp.h regexp.h regnodes.h scope.h -h5 = sv.h thrdvar.h thread.h utf8.h util.h vmsish.h warnings.h +h5 = sv.h thread.h utf8.h util.h vmsish.h warnings.h h6 = xsub.h $(SOCKH) $(THREADH) h = $(h0) $(h1) $(h2) $(h3) $(h4) $(h5) $(h6) @@ -318,9 +318,9 @@ ac10 = $(ARCHCORE)pp_proto.h $(ARCHCORE)proto.h $(ARCHCORE)regcomp.h .endif ac11 = $(ARCHCORE)regexp.h $(ARCHCORE)regnodes.h $(ARCHCORE)scope.h .ifdef SOCKARCH -ac12 = $(ARCHCORE)sv.h $(ARCHCORE)thrdvar.h $(SOCKARCH) +ac12 = $(ARCHCORE)sv.h $(SOCKARCH) .else -ac12 = $(ARCHCORE)sv.h $(ARCHCORE)thrdvar.h +ac12 = $(ARCHCORE)sv.h .endif ac13 = $(ARCHCORE)thread.h $(ARCHCORE)utf8.h $(ARCHCORE)util.h ac14 = $(ARCHCORE)vmsish.h $(ARCHCORE)warnings.h $(ARCHCORE)xsub.h @@ -1574,9 +1574,6 @@ $(ARCHCORE)scope.h : scope.h $(ARCHCORE)sv.h : sv.h @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) Copy/NoConfirm/Log $(MMS$SOURCE) $(ARCHCORE) -$(ARCHCORE)thrdvar.h : thrdvar.h - @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) - Copy/NoConfirm/Log $(MMS$SOURCE) $(ARCHCORE) $(ARCHCORE)thread.h : thread.h @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) Copy/NoConfirm/Log $(MMS$SOURCE) $(ARCHCORE) diff --git a/win32/Makefile b/win32/Makefile index 8a5dc9384a..559fd318df 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -745,7 +745,6 @@ CORE_NOCFG_H = \ ..\EXTERN.h \ ..\perlvars.h \ ..\intrpvar.h \ - ..\thrdvar.h \ .\include\dirent.h \ .\include\netdb.h \ .\include\sys\socket.h \ diff --git a/win32/Makefile.ce b/win32/Makefile.ce index 17d333cc97..c7b5a50de3 100644 --- a/win32/Makefile.ce +++ b/win32/Makefile.ce @@ -651,7 +651,6 @@ CORE_NOCFG_H = \ ..\EXTERN.h \ ..\perlvars.h \ ..\intrpvar.h \ - ..\thrdvar.h \ .\include\dirent.h \ .\include\netdb.h \ .\include\sys\socket.h \ diff --git a/win32/makefile.mk b/win32/makefile.mk index 6b1f38b9ef..80c0ac607c 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -914,7 +914,6 @@ CORE_NOCFG_H = \ ..\EXTERN.h \ ..\perlvars.h \ ..\intrpvar.h \ - ..\thrdvar.h \ .\include\dirent.h \ .\include\netdb.h \ .\include\sys\socket.h \ |