remove unused interpreter globals
Gurusamy Sarathy [Sun, 24 Oct 1999 22:20:42 +0000 (22:20 +0000)]
p4raw-id: //depot/perl@4448

15 files changed:
deb.c
dump.c
embed.h
embed.pl
embedvar.h
ext/POSIX/POSIX.xs
global.sym
gv.c
gv.h
intrpvar.h
objXSUB.h
perl.c
perlapi.c
proto.h
toke.c

diff --git a/deb.c b/deb.c
index b6456e6..7a213e4 100644 (file)
--- a/deb.c
+++ b/deb.c
@@ -59,22 +59,10 @@ Perl_vdeb(pTHX_ const char *pat, va_list *args)
        SvTYPE(gv) == SVt_PVGV ? SvPVX(GvSV(gv)) : "<free>",
        (long)PL_curcop->cop_line);
 #endif /* USE_THREADS */
-    for (i=0; i<PL_dlevel; i++)
-       PerlIO_printf(Perl_debug_log, "%c%c ",PL_debname[i],PL_debdelim[i]);
     (void) PerlIO_vprintf(Perl_debug_log, pat, *args);
 #endif /* DEBUGGING */
 }
 
-void
-Perl_deb_growlevel(pTHX)
-{
-#ifdef DEBUGGING
-    PL_dlmax += 128;
-    Renew(PL_debname, PL_dlmax, char);
-    Renew(PL_debdelim, PL_dlmax, char);
-#endif /* DEBUGGING */
-}
-
 I32
 Perl_debstackptrs(pTHX)
 {
diff --git a/dump.c b/dump.c
index 51c2f8d..e3be2f6 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -1115,7 +1115,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        Perl_dump_indent(aTHX_ level, file, "    HV = 0x%"UVxf"\n", PTR2UV(GvHV(sv)));
        Perl_dump_indent(aTHX_ level, file, "    CV = 0x%"UVxf"\n", PTR2UV(GvCV(sv)));
        Perl_dump_indent(aTHX_ level, file, "    CVGEN = 0x%"UVxf"\n", (UV)GvCVGEN(sv));
-       Perl_dump_indent(aTHX_ level, file, "    LASTEXPR = %"IVdf"\n", (IV)GvLASTEXPR(sv));
+       Perl_dump_indent(aTHX_ level, file, "    GPFLAGS = 0x%"UVxf"\n", (UV)GvGPFLAGS(sv));
        Perl_dump_indent(aTHX_ level, file, "    LINE = %"IVdf"\n", (IV)GvLINE(sv));
        Perl_dump_indent(aTHX_ level, file, "    FLAGS = 0x%"UVxf"\n", (UV)GvFLAGS(sv));
        do_gv_dump (level, file, "    FILEGV", GvFILEGV(sv));
diff --git a/embed.h b/embed.h
index bf2a0e8..1622da2 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define cxinc                  Perl_cxinc
 #define deb                    Perl_deb
 #define vdeb                   Perl_vdeb
-#define deb_growlevel          Perl_deb_growlevel
 #define debprofdump            Perl_debprofdump
 #define debop                  Perl_debop
 #define debstack               Perl_debstack
 #define get_ppaddr()           Perl_get_ppaddr(aTHX)
 #define cxinc()                        Perl_cxinc(aTHX)
 #define vdeb(a,b)              Perl_vdeb(aTHX_ a,b)
-#define deb_growlevel()                Perl_deb_growlevel(aTHX)
 #define debprofdump()          Perl_debprofdump(aTHX)
 #define debop(a)               Perl_debop(aTHX_ a)
 #define debstack()             Perl_debstack(aTHX)
 #define deb                    Perl_deb
 #define Perl_vdeb              CPerlObj::Perl_vdeb
 #define vdeb                   Perl_vdeb
-#define Perl_deb_growlevel     CPerlObj::Perl_deb_growlevel
-#define deb_growlevel          Perl_deb_growlevel
 #define Perl_debprofdump       CPerlObj::Perl_debprofdump
 #define debprofdump            Perl_debprofdump
 #define Perl_debop             CPerlObj::Perl_debop
index 7c05ab7..8f964a2 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -1078,7 +1078,6 @@ p |PPADDR_t*|get_ppaddr
 p      |I32    |cxinc
 p      |void   |deb            |const char* pat|...
 p      |void   |vdeb           |const char* pat|va_list* args
-p      |void   |deb_growlevel
 p      |void   |debprofdump
 p      |I32    |debop          |OP* o
 p      |I32    |debstack
index b018119..94f93b0 100644 (file)
 #define PL_Sock                        (PERL_GET_INTERP->ISock)
 #define PL_StdIO               (PERL_GET_INTERP->IStdIO)
 #define PL_amagic_generation   (PERL_GET_INTERP->Iamagic_generation)
-#define PL_ampergv             (PERL_GET_INTERP->Iampergv)
 #define PL_an                  (PERL_GET_INTERP->Ian)
 #define PL_archpat_auto                (PERL_GET_INTERP->Iarchpat_auto)
 #define PL_argvgv              (PERL_GET_INTERP->Iargvgv)
 #define PL_bitcount            (PERL_GET_INTERP->Ibitcount)
 #define PL_bufend              (PERL_GET_INTERP->Ibufend)
 #define PL_bufptr              (PERL_GET_INTERP->Ibufptr)
-#define PL_cddir               (PERL_GET_INTERP->Icddir)
 #define PL_collation_ix                (PERL_GET_INTERP->Icollation_ix)
 #define PL_collation_name      (PERL_GET_INTERP->Icollation_name)
 #define PL_collation_standard  (PERL_GET_INTERP->Icollation_standard)
 #define PL_curstname           (PERL_GET_INTERP->Icurstname)
 #define PL_curthr              (PERL_GET_INTERP->Icurthr)
 #define PL_dbargs              (PERL_GET_INTERP->Idbargs)
-#define PL_debdelim            (PERL_GET_INTERP->Idebdelim)
-#define PL_debname             (PERL_GET_INTERP->Idebname)
 #define PL_debstash            (PERL_GET_INTERP->Idebstash)
 #define PL_debug               (PERL_GET_INTERP->Idebug)
 #define PL_defgv               (PERL_GET_INTERP->Idefgv)
 #define PL_diehook             (PERL_GET_INTERP->Idiehook)
-#define PL_dlevel              (PERL_GET_INTERP->Idlevel)
-#define PL_dlmax               (PERL_GET_INTERP->Idlmax)
 #define PL_doextract           (PERL_GET_INTERP->Idoextract)
 #define PL_doswitches          (PERL_GET_INTERP->Idoswitches)
 #define PL_dowarn              (PERL_GET_INTERP->Idowarn)
 #define PL_expect              (PERL_GET_INTERP->Iexpect)
 #define PL_fdpid               (PERL_GET_INTERP->Ifdpid)
 #define PL_filemode            (PERL_GET_INTERP->Ifilemode)
-#define PL_filter_debug                (PERL_GET_INTERP->Ifilter_debug)
 #define PL_forkprocess         (PERL_GET_INTERP->Iforkprocess)
 #define PL_formfeed            (PERL_GET_INTERP->Iformfeed)
 #define PL_generation          (PERL_GET_INTERP->Igeneration)
 #define PL_last_swash_tmps     (PERL_GET_INTERP->Ilast_swash_tmps)
 #define PL_last_uni            (PERL_GET_INTERP->Ilast_uni)
 #define PL_lastfd              (PERL_GET_INTERP->Ilastfd)
-#define PL_lastsize            (PERL_GET_INTERP->Ilastsize)
-#define PL_lastspbase          (PERL_GET_INTERP->Ilastspbase)
 #define PL_laststatval         (PERL_GET_INTERP->Ilaststatval)
 #define PL_laststype           (PERL_GET_INTERP->Ilaststype)
-#define PL_leftgv              (PERL_GET_INTERP->Ileftgv)
 #define PL_lex_brackets                (PERL_GET_INTERP->Ilex_brackets)
 #define PL_lex_brackstack      (PERL_GET_INTERP->Ilex_brackstack)
 #define PL_lex_casemods                (PERL_GET_INTERP->Ilex_casemods)
 #define PL_multi_open          (PERL_GET_INTERP->Imulti_open)
 #define PL_multi_start         (PERL_GET_INTERP->Imulti_start)
 #define PL_multiline           (PERL_GET_INTERP->Imultiline)
-#define PL_mystrk              (PERL_GET_INTERP->Imystrk)
 #define PL_nexttoke            (PERL_GET_INTERP->Inexttoke)
 #define PL_nexttype            (PERL_GET_INTERP->Inexttype)
 #define PL_nextval             (PERL_GET_INTERP->Inextval)
 #define PL_numeric_standard    (PERL_GET_INTERP->Inumeric_standard)
 #define PL_ofmt                        (PERL_GET_INTERP->Iofmt)
 #define PL_oldbufptr           (PERL_GET_INTERP->Ioldbufptr)
-#define PL_oldlastpm           (PERL_GET_INTERP->Ioldlastpm)
 #define PL_oldname             (PERL_GET_INTERP->Ioldname)
 #define PL_oldoldbufptr                (PERL_GET_INTERP->Ioldoldbufptr)
 #define PL_op_mask             (PERL_GET_INTERP->Iop_mask)
 #define PL_preprocess          (PERL_GET_INTERP->Ipreprocess)
 #define PL_profiledata         (PERL_GET_INTERP->Iprofiledata)
 #define PL_replgv              (PERL_GET_INTERP->Ireplgv)
-#define PL_rightgv             (PERL_GET_INTERP->Irightgv)
 #define PL_rsfp                        (PERL_GET_INTERP->Irsfp)
 #define PL_rsfp_filters                (PERL_GET_INTERP->Irsfp_filters)
 #define PL_runops              (PERL_GET_INTERP->Irunops)
 #define PL_sawampersand                (PERL_GET_INTERP->Isawampersand)
-#define PL_sawstudy            (PERL_GET_INTERP->Isawstudy)
-#define PL_sawvec              (PERL_GET_INTERP->Isawvec)
 #define PL_sh_path             (PERL_GET_INTERP->Ish_path)
-#define PL_siggv               (PERL_GET_INTERP->Isiggv)
 #define PL_sighandlerp         (PERL_GET_INTERP->Isighandlerp)
 #define PL_splitstr            (PERL_GET_INTERP->Isplitstr)
 #define PL_srand_called                (PERL_GET_INTERP->Isrand_called)
 #define PL_statusvalue_vms     (PERL_GET_INTERP->Istatusvalue_vms)
 #define PL_stderrgv            (PERL_GET_INTERP->Istderrgv)
 #define PL_stdingv             (PERL_GET_INTERP->Istdingv)
-#define PL_strchop             (PERL_GET_INTERP->Istrchop)
 #define PL_strtab              (PERL_GET_INTERP->Istrtab)
 #define PL_strtab_mutex                (PERL_GET_INTERP->Istrtab_mutex)
 #define PL_sub_generation      (PERL_GET_INTERP->Isub_generation)
 #define PL_svref_mutex         (PERL_GET_INTERP->Isvref_mutex)
 #define PL_sys_intern          (PERL_GET_INTERP->Isys_intern)
 #define PL_tainting            (PERL_GET_INTERP->Itainting)
-#define PL_thisexpr            (PERL_GET_INTERP->Ithisexpr)
 #define PL_thr_key             (PERL_GET_INTERP->Ithr_key)
 #define PL_threadnum           (PERL_GET_INTERP->Ithreadnum)
 #define PL_threads_mutex       (PERL_GET_INTERP->Ithreads_mutex)
 #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_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_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_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_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_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_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_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_vms     (vTHX->Istatusvalue_vms)
 #define PL_stderrgv            (vTHX->Istderrgv)
 #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_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_ISock               PL_Sock
 #define PL_IStdIO              PL_StdIO
 #define PL_Iamagic_generation  PL_amagic_generation
-#define PL_Iampergv            PL_ampergv
 #define PL_Ian                 PL_an
 #define PL_Iarchpat_auto       PL_archpat_auto
 #define PL_Iargvgv             PL_argvgv
 #define PL_Ibitcount           PL_bitcount
 #define PL_Ibufend             PL_bufend
 #define PL_Ibufptr             PL_bufptr
-#define PL_Icddir              PL_cddir
 #define PL_Icollation_ix       PL_collation_ix
 #define PL_Icollation_name     PL_collation_name
 #define PL_Icollation_standard PL_collation_standard
 #define PL_Icurstname          PL_curstname
 #define PL_Icurthr             PL_curthr
 #define PL_Idbargs             PL_dbargs
-#define PL_Idebdelim           PL_debdelim
-#define PL_Idebname            PL_debname
 #define PL_Idebstash           PL_debstash
 #define PL_Idebug              PL_debug
 #define PL_Idefgv              PL_defgv
 #define PL_Idiehook            PL_diehook
-#define PL_Idlevel             PL_dlevel
-#define PL_Idlmax              PL_dlmax
 #define PL_Idoextract          PL_doextract
 #define PL_Idoswitches         PL_doswitches
 #define PL_Idowarn             PL_dowarn
 #define PL_Iexpect             PL_expect
 #define PL_Ifdpid              PL_fdpid
 #define PL_Ifilemode           PL_filemode
-#define PL_Ifilter_debug       PL_filter_debug
 #define PL_Iforkprocess                PL_forkprocess
 #define PL_Iformfeed           PL_formfeed
 #define PL_Igeneration         PL_generation
 #define PL_Ilast_swash_tmps    PL_last_swash_tmps
 #define PL_Ilast_uni           PL_last_uni
 #define PL_Ilastfd             PL_lastfd
-#define PL_Ilastsize           PL_lastsize
-#define PL_Ilastspbase         PL_lastspbase
 #define PL_Ilaststatval                PL_laststatval
 #define PL_Ilaststype          PL_laststype
-#define PL_Ileftgv             PL_leftgv
 #define PL_Ilex_brackets       PL_lex_brackets
 #define PL_Ilex_brackstack     PL_lex_brackstack
 #define PL_Ilex_casemods       PL_lex_casemods
 #define PL_Imulti_open         PL_multi_open
 #define PL_Imulti_start                PL_multi_start
 #define PL_Imultiline          PL_multiline
-#define PL_Imystrk             PL_mystrk
 #define PL_Inexttoke           PL_nexttoke
 #define PL_Inexttype           PL_nexttype
 #define PL_Inextval            PL_nextval
 #define PL_Inumeric_standard   PL_numeric_standard
 #define PL_Iofmt               PL_ofmt
 #define PL_Ioldbufptr          PL_oldbufptr
-#define PL_Ioldlastpm          PL_oldlastpm
 #define PL_Ioldname            PL_oldname
 #define PL_Ioldoldbufptr       PL_oldoldbufptr
 #define PL_Iop_mask            PL_op_mask
 #define PL_Ipreprocess         PL_preprocess
 #define PL_Iprofiledata                PL_profiledata
 #define PL_Ireplgv             PL_replgv
-#define PL_Irightgv            PL_rightgv
 #define PL_Irsfp               PL_rsfp
 #define PL_Irsfp_filters       PL_rsfp_filters
 #define PL_Irunops             PL_runops
 #define PL_Isawampersand       PL_sawampersand
-#define PL_Isawstudy           PL_sawstudy
-#define PL_Isawvec             PL_sawvec
 #define PL_Ish_path            PL_sh_path
-#define PL_Isiggv              PL_siggv
 #define PL_Isighandlerp                PL_sighandlerp
 #define PL_Isplitstr           PL_splitstr
 #define PL_Isrand_called       PL_srand_called
 #define PL_Istatusvalue_vms    PL_statusvalue_vms
 #define PL_Istderrgv           PL_stderrgv
 #define PL_Istdingv            PL_stdingv
-#define PL_Istrchop            PL_strchop
 #define PL_Istrtab             PL_strtab
 #define PL_Istrtab_mutex       PL_strtab_mutex
 #define PL_Isub_generation     PL_sub_generation
 #define PL_Isvref_mutex                PL_svref_mutex
 #define PL_Isys_intern         PL_sys_intern
 #define PL_Itainting           PL_tainting
-#define PL_Ithisexpr           PL_thisexpr
 #define PL_Ithr_key            PL_thr_key
 #define PL_Ithreadnum          PL_threadnum
 #define PL_Ithreads_mutex      PL_threads_mutex
index dbf2621..6fc32b1 100644 (file)
@@ -3369,15 +3369,13 @@ sigaction(sig, action, oldaction = 0)
 # This code is really grody because we're trying to make the signal
 # interface look beautiful, which is hard.
 
-       if (!PL_siggv)
-           gv_fetchpv("SIG", TRUE, SVt_PVHV);
-
        {
+           GV *siggv = gv_fetchpv("SIG", TRUE, SVt_PVHV);
            struct sigaction act;
            struct sigaction oact;
            POSIX__SigSet sigset;
            SV** svp;
-           SV** sigsvp = hv_fetch(GvHVn(PL_siggv),
+           SV** sigsvp = hv_fetch(GvHVn(siggv),
                                 PL_sig_name[sig],
                                 strlen(PL_sig_name[sig]),
                                 TRUE);
index ecde292..26561d3 100644 (file)
@@ -74,7 +74,6 @@ Perl_get_ppaddr
 Perl_cxinc
 Perl_deb
 Perl_vdeb
-Perl_deb_growlevel
 Perl_debprofdump
 Perl_debop
 Perl_debstack
diff --git a/gv.c b/gv.c
index d257114..0688fef 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -653,15 +653,14 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
        if (strEQ(name, "SIG")) {
            HV *hv;
            I32 i;
-           PL_siggv = gv;
-           GvMULTI_on(PL_siggv);
-           hv = GvHVn(PL_siggv);
-           hv_magic(hv, PL_siggv, 'S');
-           for(i=1;PL_sig_name[i];i++) {
+           GvMULTI_on(gv);
+           hv = GvHVn(gv);
+           hv_magic(hv, gv, 'S');
+           for(i = 1; PL_sig_name[i]; i++) {
                SV ** init;
-               init=hv_fetch(hv,PL_sig_name[i],strlen(PL_sig_name[i]),1);
-               if(init)
-                       sv_setsv(*init,&PL_sv_undef);
+               init = hv_fetch(hv, PL_sig_name[i], strlen(PL_sig_name[i]), 1);
+               if (init)
+                   sv_setsv(*init, &PL_sv_undef);
                PL_psig_ptr[i] = 0;
                PL_psig_name[i] = 0;
            }
@@ -675,21 +674,18 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
     case '&':
        if (len > 1)
            break;
-       PL_ampergv = gv;
        PL_sawampersand = TRUE;
        goto ro_magicalize;
 
     case '`':
        if (len > 1)
            break;
-       PL_leftgv = gv;
        PL_sawampersand = TRUE;
        goto ro_magicalize;
 
     case '\'':
        if (len > 1)
            break;
-       PL_rightgv = gv;
        PL_sawampersand = TRUE;
        goto ro_magicalize;
 
diff --git a/gv.h b/gv.h
index fc9985a..620cbc3 100644 (file)
--- a/gv.h
+++ b/gv.h
@@ -17,7 +17,7 @@ struct gp {
     GV *       gp_egv;         /* effective gv, if *glob */
     CV *       gp_cv;          /* subroutine value */
     U32                gp_cvgen;       /* generational validity of cached gv_cv */
-    I32                gp_lastexpr;    /* used by nothing_in_common() */
+    U32                gp_flags;       /* XXX unused */
     line_t     gp_line;        /* line first declared at (for -w) */
     GV *       gp_filegv;      /* file first declared in (for -w) */
 };
@@ -67,7 +67,7 @@ HV *GvHVn();
 #define GvCVGEN(gv)    (GvGP(gv)->gp_cvgen)
 #define GvCVu(gv)      (GvGP(gv)->gp_cvgen ? Nullcv : GvGP(gv)->gp_cv)
 
-#define GvLASTEXPR(gv) (GvGP(gv)->gp_lastexpr)
+#define GvGPFLAGS(gv)  (GvGP(gv)->gp_flags)
 
 #define GvLINE(gv)     (GvGP(gv)->gp_line)
 #define GvFILEGV(gv)   (GvGP(gv)->gp_filegv)
index a60620f..1d34a81 100644 (file)
 PERLVAR(Iorigargc,     int)
 PERLVAR(Iorigargv,     char **)
 PERLVAR(Ienvgv,                GV *)
-PERLVAR(Isiggv,                GV *)
 PERLVAR(Iincgv,                GV *)
 PERLVAR(Ihintgv,       GV *)
 PERLVAR(Iorigfilename, char *)
 PERLVAR(Idiehook,      SV *)
 PERLVAR(Iwarnhook,     SV *)
-PERLVAR(Icddir,                char *)         /* switches */
+
+/* switches */
 PERLVAR(Iminus_c,      bool)
 PERLVARA(Ipatchlevel,10,char)
 PERLVAR(Ilocalpatches, char **)
@@ -38,14 +38,12 @@ PERLVAR(Idoswitches,        bool)
 PERLVAR(Idowarn,       bool)
 PERLVAR(Idoextract,    bool)
 PERLVAR(Isawampersand, bool)           /* must save all match strings */
-PERLVAR(Isawstudy,     bool)           /* do fbm_instr on all strings */
-PERLVAR(Isawvec,       bool)
 PERLVAR(Iunsafe,       bool)
 PERLVAR(Iinplace,      char *)
 PERLVAR(Ie_script,     SV *)
 PERLVAR(Iperldb,       U32)
 
-/* This value may be raised by extensions for testing purposes */
+/* This value may be set when embedding for full cleanup  */
 /* 0=none, 1=full, 2=full with checks */
 PERLVARI(Iperl_destruct_level, int,    0)
 
@@ -70,11 +68,6 @@ PERLVAR(Iargvgv,     GV *)
 PERLVAR(Iargvoutgv,    GV *)
 
 /* shortcuts to regexp stuff */
-/* XXX these three aren't used anywhere */
-PERLVAR(Ileftgv,       GV *)
-PERLVAR(Iampergv,      GV *)
-PERLVAR(Irightgv,      GV *)
-
 /* this one needs to be moved to thrdvar.h and accessed via
  * find_threadsv() when USE_THREADS */
 PERLVAR(Ireplgv,       GV *)
@@ -109,8 +102,6 @@ PERLVAR(Isv_root,   SV*)            /* storage for SVs belonging to interp */
 PERLVAR(Isv_arenaroot, SV*)            /* list of areas for garbage collection */
 
 /* funky return mechanisms */
-PERLVAR(Ilastspbase,   I32)
-PERLVAR(Ilastsize,     I32)
 PERLVAR(Iforkprocess,  int)            /* so do_open |- can return proc# */
 
 /* subprocess state */
@@ -120,12 +111,6 @@ PERLVAR(Ifdpid,            AV *)           /* keep fd-to-pid mappings for my_popen */
 PERLVAR(Itainting,     bool)           /* doing taint checks */
 PERLVARI(Iop_mask,     char *, NULL)   /* masked operations for safe evals */
 
-/* trace state */
-PERLVAR(Idlevel,       I32)
-PERLVARI(Idlmax,       I32,    128)
-PERLVAR(Idebname,      char *)
-PERLVAR(Idebdelim,     char *)
-
 /* current interpreter roots */
 PERLVAR(Imain_cv,      CV *)
 PERLVAR(Imain_root,    OP *)
@@ -138,14 +123,11 @@ PERLVARI(Icurcopdb,       COP *,  NULL)
 PERLVARI(Icopline,     line_t, NOLINE)
 
 /* statics moved here for shared library purposes */
-PERLVAR(Istrchop,      SV)             /* return value from chop */
 PERLVAR(Ifilemode,     int)            /* so nextargv() can preserve mode */
 PERLVAR(Ilastfd,       int)            /* what to preserve mode on */
 PERLVAR(Ioldname,      char *)         /* what to preserve mode on */
 PERLVAR(IArgv,         char **)        /* stuff to free from do_aexec, vfork safe */
 PERLVAR(ICmd,          char *)         /* stuff to free from do_aexec, vfork safe */
-PERLVAR(Imystrk,       SV *)           /* temp key string for do_each() */
-PERLVAR(Ioldlastpm,    PMOP *)         /* for saving regexp context in debugger */
 PERLVAR(Igensym,       I32)            /* next symbol for getsym() to define */
 PERLVAR(Ipreambled,    bool)
 PERLVAR(Ipreambleav,   AV *)
@@ -291,17 +273,16 @@ PERLVAR(Ipadix,           I32)            /* max used index in current "register" pad */
 PERLVAR(Ipadix_floor,  I32)            /* how low may inner block reset padix */
 PERLVAR(Ipad_reset_pending,    I32)    /* reset pad on next attempted alloc */
 
-PERLVAR(Ithisexpr,     I32)            /* name id for nothing_in_common() */
 PERLVAR(Ilast_uni,     char *)         /* position of last named-unary op */
 PERLVAR(Ilast_lop,     char *)         /* position of last list operator */
 PERLVAR(Ilast_lop_op,  OPCODE)         /* last list operator */
 PERLVAR(Iin_my,                I32)            /* we're compiling a "my" (or "our") declaration */
 PERLVAR(Iin_my_stash,  HV *)           /* declared class of this "my" declaration */
 #ifdef FCRYPT
-PERLVAR(Icryptseen,    I32)            /* has fast crypt() been initialized? */
+PERLVAR(Icryptseen,    bool)           /* has fast crypt() been initialized? */
 #endif
 
-PERLVAR(Ihints,        U32)                    /* pragma-tic compile-time flags */
+PERLVAR(Ihints,                U32)            /* pragma-tic compile-time flags */
 
 PERLVAR(Idebug,                VOL U32)        /* flags given to -D switch */
 
@@ -364,7 +345,6 @@ PERLVAR(Iglob_index,        int)
 PERLVAR(Isrand_called, bool)
 PERLVARA(Iuudmap,256,  char)
 PERLVAR(Ibitcount,     char *)
-PERLVAR(Ifilter_debug, int)
 
 #ifdef USE_THREADS
 PERLVAR(Ithr_key,      perl_key)       /* For per-thread struct perl_thread* */
index fb8698b..735ca0a 100644 (file)
--- a/objXSUB.h
+++ b/objXSUB.h
@@ -42,8 +42,6 @@
 #define PL_StdIO               (*Perl_IStdIO_ptr(aTHXo))
 #undef  PL_amagic_generation
 #define PL_amagic_generation   (*Perl_Iamagic_generation_ptr(aTHXo))
-#undef  PL_ampergv
-#define PL_ampergv             (*Perl_Iampergv_ptr(aTHXo))
 #undef  PL_an
 #define PL_an                  (*Perl_Ian_ptr(aTHXo))
 #undef  PL_archpat_auto
@@ -62,8 +60,6 @@
 #define PL_bufend              (*Perl_Ibufend_ptr(aTHXo))
 #undef  PL_bufptr
 #define PL_bufptr              (*Perl_Ibufptr_ptr(aTHXo))
-#undef  PL_cddir
-#define PL_cddir               (*Perl_Icddir_ptr(aTHXo))
 #undef  PL_collation_ix
 #define PL_collation_ix                (*Perl_Icollation_ix_ptr(aTHXo))
 #undef  PL_collation_name
 #define PL_curthr              (*Perl_Icurthr_ptr(aTHXo))
 #undef  PL_dbargs
 #define PL_dbargs              (*Perl_Idbargs_ptr(aTHXo))
-#undef  PL_debdelim
-#define PL_debdelim            (*Perl_Idebdelim_ptr(aTHXo))
-#undef  PL_debname
-#define PL_debname             (*Perl_Idebname_ptr(aTHXo))
 #undef  PL_debstash
 #define PL_debstash            (*Perl_Idebstash_ptr(aTHXo))
 #undef  PL_debug
 #define PL_defgv               (*Perl_Idefgv_ptr(aTHXo))
 #undef  PL_diehook
 #define PL_diehook             (*Perl_Idiehook_ptr(aTHXo))
-#undef  PL_dlevel
-#define PL_dlevel              (*Perl_Idlevel_ptr(aTHXo))
-#undef  PL_dlmax
-#define PL_dlmax               (*Perl_Idlmax_ptr(aTHXo))
 #undef  PL_doextract
 #define PL_doextract           (*Perl_Idoextract_ptr(aTHXo))
 #undef  PL_doswitches
 #define PL_fdpid               (*Perl_Ifdpid_ptr(aTHXo))
 #undef  PL_filemode
 #define PL_filemode            (*Perl_Ifilemode_ptr(aTHXo))
-#undef  PL_filter_debug
-#define PL_filter_debug                (*Perl_Ifilter_debug_ptr(aTHXo))
 #undef  PL_forkprocess
 #define PL_forkprocess         (*Perl_Iforkprocess_ptr(aTHXo))
 #undef  PL_formfeed
 #define PL_last_uni            (*Perl_Ilast_uni_ptr(aTHXo))
 #undef  PL_lastfd
 #define PL_lastfd              (*Perl_Ilastfd_ptr(aTHXo))
-#undef  PL_lastsize
-#define PL_lastsize            (*Perl_Ilastsize_ptr(aTHXo))
-#undef  PL_lastspbase
-#define PL_lastspbase          (*Perl_Ilastspbase_ptr(aTHXo))
 #undef  PL_laststatval
 #define PL_laststatval         (*Perl_Ilaststatval_ptr(aTHXo))
 #undef  PL_laststype
 #define PL_laststype           (*Perl_Ilaststype_ptr(aTHXo))
-#undef  PL_leftgv
-#define PL_leftgv              (*Perl_Ileftgv_ptr(aTHXo))
 #undef  PL_lex_brackets
 #define PL_lex_brackets                (*Perl_Ilex_brackets_ptr(aTHXo))
 #undef  PL_lex_brackstack
 #define PL_multi_start         (*Perl_Imulti_start_ptr(aTHXo))
 #undef  PL_multiline
 #define PL_multiline           (*Perl_Imultiline_ptr(aTHXo))
-#undef  PL_mystrk
-#define PL_mystrk              (*Perl_Imystrk_ptr(aTHXo))
 #undef  PL_nexttoke
 #define PL_nexttoke            (*Perl_Inexttoke_ptr(aTHXo))
 #undef  PL_nexttype
 #define PL_ofmt                        (*Perl_Iofmt_ptr(aTHXo))
 #undef  PL_oldbufptr
 #define PL_oldbufptr           (*Perl_Ioldbufptr_ptr(aTHXo))
-#undef  PL_oldlastpm
-#define PL_oldlastpm           (*Perl_Ioldlastpm_ptr(aTHXo))
 #undef  PL_oldname
 #define PL_oldname             (*Perl_Ioldname_ptr(aTHXo))
 #undef  PL_oldoldbufptr
 #define PL_profiledata         (*Perl_Iprofiledata_ptr(aTHXo))
 #undef  PL_replgv
 #define PL_replgv              (*Perl_Ireplgv_ptr(aTHXo))
-#undef  PL_rightgv
-#define PL_rightgv             (*Perl_Irightgv_ptr(aTHXo))
 #undef  PL_rsfp
 #define PL_rsfp                        (*Perl_Irsfp_ptr(aTHXo))
 #undef  PL_rsfp_filters
 #define PL_runops              (*Perl_Irunops_ptr(aTHXo))
 #undef  PL_sawampersand
 #define PL_sawampersand                (*Perl_Isawampersand_ptr(aTHXo))
-#undef  PL_sawstudy
-#define PL_sawstudy            (*Perl_Isawstudy_ptr(aTHXo))
-#undef  PL_sawvec
-#define PL_sawvec              (*Perl_Isawvec_ptr(aTHXo))
 #undef  PL_sh_path
 #define PL_sh_path             (*Perl_Ish_path_ptr(aTHXo))
-#undef  PL_siggv
-#define PL_siggv               (*Perl_Isiggv_ptr(aTHXo))
 #undef  PL_sighandlerp
 #define PL_sighandlerp         (*Perl_Isighandlerp_ptr(aTHXo))
 #undef  PL_splitstr
 #define PL_stderrgv            (*Perl_Istderrgv_ptr(aTHXo))
 #undef  PL_stdingv
 #define PL_stdingv             (*Perl_Istdingv_ptr(aTHXo))
-#undef  PL_strchop
-#define PL_strchop             (*Perl_Istrchop_ptr(aTHXo))
 #undef  PL_strtab
 #define PL_strtab              (*Perl_Istrtab_ptr(aTHXo))
 #undef  PL_strtab_mutex
 #define PL_sys_intern          (*Perl_Isys_intern_ptr(aTHXo))
 #undef  PL_tainting
 #define PL_tainting            (*Perl_Itainting_ptr(aTHXo))
-#undef  PL_thisexpr
-#define PL_thisexpr            (*Perl_Ithisexpr_ptr(aTHXo))
 #undef  PL_thr_key
 #define PL_thr_key             (*Perl_Ithr_key_ptr(aTHXo))
 #undef  PL_threadnum
 #define Perl_vdeb              pPerl->Perl_vdeb
 #undef  vdeb
 #define vdeb                   Perl_vdeb
-#undef  Perl_deb_growlevel
-#define Perl_deb_growlevel     pPerl->Perl_deb_growlevel
-#undef  deb_growlevel
-#define deb_growlevel          Perl_deb_growlevel
 #undef  Perl_debprofdump
 #define Perl_debprofdump       pPerl->Perl_debprofdump
 #undef  debprofdump
diff --git a/perl.c b/perl.c
index 71b3b94..2ed116c 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -220,11 +220,6 @@ perl_construct(pTHXx)
     PL_fdpid = newAV();                        /* for remembering popen pids by fd */
     PL_modglobal = newHV();            /* pointers to per-interpreter module globals */
 
-    DEBUG( {
-       New(51,PL_debname,128,char);
-       New(52,PL_debdelim,128,char);
-    } )
-
     ENTER;
 }
 
@@ -390,8 +385,6 @@ perl_destruct(pTHXx)
     PL_dowarn       = G_WARN_OFF;
     PL_doextract    = FALSE;
     PL_sawampersand = FALSE;   /* must save all match strings */
-    PL_sawstudy     = FALSE;   /* do fbm_instr on all strings */
-    PL_sawvec       = FALSE;
     PL_unsafe       = FALSE;
 
     Safefree(PL_inplace);
@@ -447,7 +440,6 @@ perl_destruct(pTHXx)
 
     /* shortcuts just get cleared */
     PL_envgv = Nullgv;
-    PL_siggv = Nullgv;
     PL_incgv = Nullgv;
     PL_hintgv = Nullgv;
     PL_errgv = Nullgv;
@@ -702,6 +694,7 @@ S_parse_body(pTHX_ va_list args)
     AV* comppadlist;
     register SV *sv;
     register char *s;
+    char *cddir = Nullch;
 
     XSINIT_t xsinit = va_arg(args, XSINIT_t);
 
@@ -870,7 +863,7 @@ print \"  \\@INC:\\n    @INC\\n\";");
            PL_doextract = TRUE;
            s++;
            if (*s)
-               PL_cddir = savepv(s);
+               cddir = s;
            break;
        case 0:
            break;
@@ -958,8 +951,12 @@ print \"  \\@INC:\\n    @INC\\n\";");
     }
 #endif
 
-    if (PL_doextract)
+    if (PL_doextract) {
        find_beginning();
+       if (cddir && PerlDir_chdir(cddir) < 0)
+           Perl_croak(aTHX_ "Can't chdir to %s",cddir);
+
+    }
 
     PL_main_cv = PL_compcv = (CV*)NEWSV(1104,0);
     sv_upgrade((SV *)PL_compcv, SVt_PVCV);
@@ -1917,7 +1914,6 @@ S_init_interp(pTHX)
     PL_curcop          = &PL_compiling;\
     PL_curcopdb                = NULL;         \
     PL_dbargs          = 0;            \
-    PL_dlmax           = 128;          \
     PL_dumpindent      = 4;            \
     PL_laststatval     = -1;           \
     PL_laststype       = OP_STAT;      \
@@ -1927,7 +1923,6 @@ S_init_interp(pTHX)
     PL_tmps_floor      = -1;           \
     PL_tmps_ix         = -1;           \
     PL_op_mask         = NULL;         \
-    PL_dlmax           = 128;          \
     PL_laststatval     = -1;           \
     PL_laststype       = OP_STAT;      \
     PL_mess_sv         = Nullsv;       \
@@ -2524,8 +2519,6 @@ S_find_beginning(pTHX)
                    /*SUPPRESS 530*/
                    while (s = moreswitches(s)) ;
            }
-           if (PL_cddir && PerlDir_chdir(PL_cddir) < 0)
-               Perl_croak(aTHX_ "Can't chdir to %s",PL_cddir);
        }
     }
 }
@@ -2640,10 +2633,6 @@ S_nuke_stacks(pTHX)
     Safefree(PL_scopestack);
     Safefree(PL_savestack);
     Safefree(PL_retstack);
-    DEBUG( {
-       Safefree(PL_debname);
-       Safefree(PL_debdelim);
-    } )
 }
 
 #ifndef PERL_OBJECT
index 99a549b..adfb4af 100644 (file)
--- a/perlapi.c
+++ b/perlapi.c
@@ -599,13 +599,6 @@ Perl_vdeb(pTHXo_ const char* pat, va_list* args)
     ((CPerlObj*)pPerl)->Perl_vdeb(pat, args);
 }
 
-#undef  Perl_deb_growlevel
-void
-Perl_deb_growlevel(pTHXo)
-{
-    ((CPerlObj*)pPerl)->Perl_deb_growlevel();
-}
-
 #undef  Perl_debprofdump
 void
 Perl_debprofdump(pTHXo)
diff --git a/proto.h b/proto.h
index 787ec13..4cb4ba1 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -83,7 +83,6 @@ VIRTUAL PPADDR_t*     Perl_get_ppaddr(pTHX);
 VIRTUAL I32    Perl_cxinc(pTHX);
 VIRTUAL void   Perl_deb(pTHX_ const char* pat, ...);
 VIRTUAL void   Perl_vdeb(pTHX_ const char* pat, va_list* args);
-VIRTUAL void   Perl_deb_growlevel(pTHX);
 VIRTUAL void   Perl_debprofdump(pTHX);
 VIRTUAL I32    Perl_debop(pTHX_ OP* o);
 VIRTUAL I32    Perl_debstack(pTHX);
diff --git a/toke.c b/toke.c
index 49dc8b7..8597144 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -1772,10 +1772,9 @@ S_incl_perldb(pTHX)
 SV *
 Perl_filter_add(pTHX_ filter_t funcp, SV *datasv)
 {
-    if (!funcp){ /* temporary handy debugging hack to be deleted */
-       PL_filter_debug = atoi((char*)datasv);
-       return NULL;
-    }
+    if (!funcp)
+       return Nullsv;
+
     if (!PL_rsfp_filters)
        PL_rsfp_filters = newAV();
     if (!datasv)
@@ -1783,12 +1782,8 @@ Perl_filter_add(pTHX_ filter_t funcp, SV *datasv)
     if (!SvUPGRADE(datasv, SVt_PVIO))
         Perl_die(aTHX_ "Can't upgrade filter_add data to SVt_PVIO");
     IoDIRP(datasv) = (DIR*)funcp; /* stash funcp into spare field */
-#ifdef DEBUGGING
-    if (PL_filter_debug) {
-       STRLEN n_a;
-       Perl_warn(aTHX_ "filter_add func %p (%s)", funcp, SvPV(datasv, n_a));
-    }
-#endif /* DEBUGGING */
+    DEBUG_P(PerlIO_printf(Perl_debug_log, "filter_add func %p (%s)\n",
+                         funcp, SvPV_nolen(datasv)));
     av_unshift(PL_rsfp_filters, 1);
     av_store(PL_rsfp_filters, 0, datasv) ;
     return(datasv);
@@ -1799,10 +1794,7 @@ Perl_filter_add(pTHX_ filter_t funcp, SV *datasv)
 void
 Perl_filter_del(pTHX_ filter_t funcp)
 {
-#ifdef DEBUGGING
-    if (PL_filter_debug)
-       Perl_warn(aTHX_ "filter_del func %p", funcp);
-#endif /* DEBUGGING */
+    DEBUG_P(PerlIO_printf(Perl_debug_log, "filter_del func %p", funcp));
     if (!PL_rsfp_filters || AvFILLp(PL_rsfp_filters)<0)
        return;
     /* if filter is on top of stack (usual case) just pop it off */
@@ -1832,10 +1824,8 @@ Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
     if (idx > AvFILLp(PL_rsfp_filters)){       /* Any more filters?    */
        /* Provide a default input filter to make life easy.    */
        /* Note that we append to the line. This is handy.      */
-#ifdef DEBUGGING
-       if (PL_filter_debug)
-           Perl_warn(aTHX_ "filter_read %d: from rsfp\n", idx);
-#endif /* DEBUGGING */
+       DEBUG_P(PerlIO_printf(Perl_debug_log,
+                             "filter_read %d: from rsfp\n", idx));
        if (maxlen) { 
            /* Want a block */
            int len ;
@@ -1863,21 +1853,16 @@ Perl_filter_read(pTHX_ int idx, SV *buf_sv, int maxlen)
     }
     /* Skip this filter slot if filter has been deleted        */
     if ( (datasv = FILTER_DATA(idx)) == &PL_sv_undef){
-#ifdef DEBUGGING
-       if (PL_filter_debug)
-           Perl_warn(aTHX_ "filter_read %d: skipped (filter deleted)\n", idx);
-#endif /* DEBUGGING */
+       DEBUG_P(PerlIO_printf(Perl_debug_log,
+                             "filter_read %d: skipped (filter deleted)\n",
+                             idx));
        return FILTER_READ(idx+1, buf_sv, maxlen); /* recurse */
     }
     /* Get function pointer hidden within datasv       */
     funcp = (filter_t)IoDIRP(datasv);
-#ifdef DEBUGGING
-    if (PL_filter_debug) {
-       STRLEN n_a;
-       Perl_warn(aTHX_ "filter_read %d: via function %p (%s)\n",
-               idx, funcp, SvPV(datasv,n_a));
-    }
-#endif /* DEBUGGING */
+    DEBUG_P(PerlIO_printf(Perl_debug_log,
+                         "filter_read %d: via function %p (%s)\n",
+                         idx, funcp, SvPV_nolen(datasv)));
     /* Call function. The function is expected to      */
     /* call "FILTER_READ(idx+1, buf_sv)" first.                */
     /* Return: <0:error, =0:eof, >0:not eof            */
@@ -3858,8 +3843,10 @@ Perl_yylex(pTHX)
 
        case KEY_crypt:
 #ifdef FCRYPT
-           if (!PL_cryptseen++)
+           if (!PL_cryptseen) {
+               PL_cryptseen = TRUE;
                init_des();
+           }
 #endif
            LOP(OP_CRYPT,XTERM);
 
@@ -4543,7 +4530,6 @@ Perl_yylex(pTHX)
            UNI(OP_STAT);
 
        case KEY_study:
-           PL_sawstudy++;
            UNI(OP_STUDY);
 
        case KEY_substr:
@@ -4754,7 +4740,6 @@ Perl_yylex(pTHX)
            UNI(OP_VALUES);
 
        case KEY_vec:
-           PL_sawvec = TRUE;
            LOP(OP_VEC,XTERM);
 
        case KEY_while: