In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/6be75e63260512c636a5bdc72bbf4981a37bad7d?hp=0397beb0d12565d70e168bfea7376e2612a6748a>
- Log ----------------------------------------------------------------- commit 6be75e63260512c636a5bdc72bbf4981a37bad7d Author: James E Keenan <[email protected]> Date: Tue Jul 25 07:25:51 2017 -0400 perldelta for ecfa068aa0dab432bfdef423766b665be127ef77 M pod/perldelta.pod commit ecfa068aa0dab432bfdef423766b665be127ef77 Author: James E Keenan <[email protected]> Date: Tue Jul 25 06:44:52 2017 -0400 Remove B::Debug from core distribution. It continues to exist as a CPAN distribution. Increment $B::Terse::VERSION due to change in POD. Remove internal links to B::Debug within two .pod files. For: RT #130410 M MANIFEST M Porting/Maintainers.pl D cpan/B-Debug/Debug.pm D cpan/B-Debug/t/debug.t M ext/B/B/Terse.pm M lib/.gitignore M pod/perlhacktips.pod M pod/perlinterp.pod M t/TEST ----------------------------------------------------------------------- Summary of changes: MANIFEST | 2 - Porting/Maintainers.pl | 6 - cpan/B-Debug/Debug.pm | 457 ------------------------------------------------- cpan/B-Debug/t/debug.t | 104 ----------- ext/B/B/Terse.pm | 4 +- lib/.gitignore | 1 - pod/perldelta.pod | 4 + pod/perlhacktips.pod | 2 +- pod/perlinterp.pod | 2 +- t/TEST | 3 +- 10 files changed, 9 insertions(+), 576 deletions(-) delete mode 100644 cpan/B-Debug/Debug.pm delete mode 100644 cpan/B-Debug/t/debug.t diff --git a/MANIFEST b/MANIFEST index 5bd62719f2..8085a4ed72 100644 --- a/MANIFEST +++ b/MANIFEST @@ -138,8 +138,6 @@ cpan/AutoLoader/lib/AutoLoader.pm Autoloader base class cpan/AutoLoader/lib/AutoSplit.pm Split up autoload functions cpan/AutoLoader/t/01AutoLoader.t See if AutoLoader works cpan/AutoLoader/t/02AutoSplit.t See if AutoSplit works -cpan/B-Debug/Debug.pm Compiler Debug backend -cpan/B-Debug/t/debug.t See if B::Debug works cpan/bignum/lib/bigint.pm bigint cpan/bignum/lib/bignum.pm bignum cpan/bignum/lib/bigrat.pm bigrat diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 961f23ca28..570fd6d36a 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -172,12 +172,6 @@ use File::Glob qw(:case); 'EXCLUDED' => [qr{^t/release-.*\.t}], }, - 'B::Debug' => { - 'DISTRIBUTION' => 'RURBAN/B-Debug-1.24.tar.gz', - 'FILES' => q[cpan/B-Debug], - 'EXCLUDED' => ['t/pod.t'], - }, - 'base' => { 'DISTRIBUTION' => 'RJBS/base-2.23.tar.gz', 'FILES' => q[dist/base], diff --git a/cpan/B-Debug/Debug.pm b/cpan/B-Debug/Debug.pm deleted file mode 100644 index e295635d35..0000000000 --- a/cpan/B-Debug/Debug.pm +++ /dev/null @@ -1,457 +0,0 @@ -package B::Debug; - -our $VERSION = '1.24'; - -use strict; -require 5.006; -use B qw(peekop class walkoptree walkoptree_exec - main_start main_root cstring sv_undef SVf_NOK SVf_IOK); -use Config; -my (@optype, @specialsv_name); -require B; -if ($] < 5.009) { - require B::Asmdata; - B::Asmdata->import (qw(@optype @specialsv_name)); -} else { - B->import (qw(@optype @specialsv_name)); -} - -if ($] < 5.006002) { - eval q|sub B::GV::SAFENAME { - my $name = (shift())->NAME; - # The regex below corresponds to the isCONTROLVAR macro from toke.c - $name =~ s/^([\cA-\cZ\c\\c[\c]\c?\c_\c^])/"^".chr(64 ^ ord($1))/e; - return $name; - }|; -} - -my ($have_B_Flags, $have_B_Flags_extra); -if (!$ENV{PERL_CORE}){ # avoid CORE test crashes - eval { require B::Flags and $have_B_Flags++ }; - $have_B_Flags_extra++ if $have_B_Flags and $B::Flags::VERSION gt '0.03'; -} -my %done_gv; - -sub _printop { - my $op = shift; - my $addr = ${$op} ? $op->ppaddr : ''; - $addr =~ s/^PL_ppaddr// if $addr; - if (${$op}) { - return sprintf "0x%08x %6s %s", ${$op}, class($op), $addr; - } else { - return sprintf "0x%x %6s %s", ${$op}, '', $addr; - } -} - -sub B::OP::debug { - my ($op) = @_; - printf <<'EOT', class($op), $$op, _printop($op), _printop($op->next), _printop($op->sibling), $op->targ, $op->type, $op->name; -%s (0x%lx) - op_ppaddr %s - op_next %s - op_sibling %s - op_targ %d - op_type %d %s -EOT - if ($] > 5.009) { - printf <<'EOT', $op->opt; - op_opt %d -EOT - } else { - printf <<'EOT', $op->seq; - op_seq %d -EOT - } - if ($have_B_Flags) { - printf <<'EOT', $op->flags, $op->flagspv, $op->private, $op->privatepv; - op_flags %d %s - op_private %d %s -EOT - } else { - printf <<'EOT', $op->flags, $op->private; - op_flags %d - op_private %d -EOT - } -} - -sub B::UNOP::debug { - my ($op) = @_; - $op->B::OP::debug(); - printf "\top_first\t%s\n", _printop($op->first); -} - -sub B::BINOP::debug { - my ($op) = @_; - $op->B::UNOP::debug(); - printf "\top_last \t%s\n", _printop($op->last); -} - -sub B::LOOP::debug { - my ($op) = @_; - $op->B::BINOP::debug(); - printf <<'EOT', _printop($op->redoop), _printop($op->nextop), _printop($op->lastop); - op_redoop %s - op_nextop %s - op_lastop %s -EOT -} - -sub B::LOGOP::debug { - my ($op) = @_; - $op->B::UNOP::debug(); - printf "\top_other\t%s\n", _printop($op->other); -} - -sub B::LISTOP::debug { - my ($op) = @_; - $op->B::BINOP::debug(); - printf "\top_children\t%d\n", $op->children; -} - -sub B::PMOP::debug { - my ($op) = @_; - $op->B::LISTOP::debug(); - printf "\top_pmreplroot\t0x%x\n", $] < 5.008 ? ${$op->pmreplroot} : $op->pmreplroot; - printf "\top_pmreplstart\t0x%x\n", ${$op->pmreplstart}; - printf "\top_pmnext\t0x%x\n", ${$op->pmnext} if $] < 5.009005; - if ($Config{'useithreads'}) { - printf "\top_pmstashpv\t%s\n", cstring($op->pmstashpv); - printf "\top_pmoffset\t%d\n", $op->pmoffset; - } else { - printf "\top_pmstash\t%s\n", cstring($op->pmstash); - } - printf "\top_precomp\t%s\n", cstring($op->precomp); - printf "\top_pmflags\t0x%x\n", $op->pmflags; - printf "\top_reflags\t0x%x\n", $op->reflags if $] >= 5.009; - printf "\top_pmpermflags\t0x%x\n", $op->pmpermflags if $] < 5.009; - printf "\top_pmdynflags\t0x%x\n", $op->pmdynflags if $] < 5.009; - $op->pmreplroot->debug if $] < 5.008; -} - -sub B::COP::debug { - my ($op) = @_; - $op->B::OP::debug(); - my $warnings = ref $op->warnings ? ${$op->warnings} : 0; - printf <<'EOT', $op->label, $op->stashpv, $op->file, $op->cop_seq, $op->arybase, $op->line, $warnings; - cop_label "%s" - cop_stashpv "%s" - cop_file "%s" - cop_seq %d - cop_arybase %d - cop_line %d - cop_warnings 0x%x -EOT - if ($] > 5.008 and $] < 5.011) { - my $cop_io = class($op->io) eq 'SPECIAL' ? '' : $op->io->as_string; - printf(" cop_io %s\n", cstring($cop_io)); - } -} - -sub B::SVOP::debug { - my ($op) = @_; - $op->B::OP::debug(); - printf "\top_sv\t\t0x%x\n", ${$op->sv}; - $op->sv->debug; -} - -sub B::METHOP::debug { - my ($op) = @_; - $op->B::OP::debug(); - if (${$op->first}) { - printf "\top_first\t0x%x\n", ${$op->first}; - $op->first->debug; - } else { - printf "\top_meth_sv\t0x%x\n", ${$op->meth_sv}; - $op->meth_sv->debug; - } -} - -sub B::PVOP::debug { - my ($op) = @_; - $op->B::OP::debug(); - printf "\top_pv\t\t%s\n", cstring($op->pv); -} - -sub B::PADOP::debug { - my ($op) = @_; - $op->B::OP::debug(); - printf "\top_padix\t%ld\n", $op->padix; -} - -sub B::NULL::debug { - my ($sv) = @_; - if ($$sv == ${sv_undef()}) { - print "&sv_undef\n"; - } else { - printf "NULL (0x%x)\n", $$sv; - } -} - -sub B::SV::debug { - my ($sv) = @_; - if (!$$sv) { - print class($sv), " = NULL\n"; - return; - } - printf <<'EOT', class($sv), $$sv, $sv->REFCNT; -%s (0x%x) - REFCNT %d -EOT - printf "\tFLAGS\t\t0x%x", $sv->FLAGS; - if ($have_B_Flags) { - printf "\t%s", $have_B_Flags_extra ? $sv->flagspv(0) : $sv->flagspv; - } - print "\n"; -} - -sub B::RV::debug { - my ($rv) = @_; - B::SV::debug($rv); - printf <<'EOT', ${$rv->RV}; - RV 0x%x -EOT - $rv->RV->debug; -} - -sub B::PV::debug { - my ($sv) = @_; - $sv->B::SV::debug(); - my $pv = $sv->PV(); - printf <<'EOT', cstring($pv), $sv->CUR, $sv->LEN; - xpv_pv %s - xpv_cur %d - xpv_len %d -EOT -} - -sub B::IV::debug { - my ($sv) = @_; - $sv->B::SV::debug(); - printf "\txiv_iv\t\t%d\n", $sv->IV if $sv->FLAGS & SVf_IOK; -} - -sub B::NV::debug { - my ($sv) = @_; - $sv->B::IV::debug(); - printf "\txnv_nv\t\t%s\n", $sv->NV if $sv->FLAGS & SVf_NOK; -} - -sub B::PVIV::debug { - my ($sv) = @_; - $sv->B::PV::debug(); - printf "\txiv_iv\t\t%d\n", $sv->IV if $sv->FLAGS & SVf_IOK; -} - -sub B::PVNV::debug { - my ($sv) = @_; - $sv->B::PVIV::debug(); - printf "\txnv_nv\t\t%s\n", $sv->NV if $sv->FLAGS & SVf_NOK; -} - -sub B::PVLV::debug { - my ($sv) = @_; - $sv->B::PVNV::debug(); - printf "\txlv_targoff\t%d\n", $sv->TARGOFF; - printf "\txlv_targlen\t%u\n", $sv->TARGLEN; - printf "\txlv_type\t%s\n", cstring(chr($sv->TYPE)); -} - -sub B::BM::debug { - my ($sv) = @_; - $sv->B::PVNV::debug(); - printf "\txbm_useful\t%d\n", $sv->USEFUL; - printf "\txbm_previous\t%u\n", $sv->PREVIOUS; - printf "\txbm_rare\t%s\n", cstring(chr($sv->RARE)); -} - -sub B::CV::debug { - my ($sv) = @_; - $sv->B::PVNV::debug(); - my ($stash) = $sv->STASH; - my ($start) = $sv->START; - my ($root) = $sv->ROOT; - my ($padlist) = $sv->PADLIST; - my ($file) = $sv->FILE; - my ($gv) = $sv->GV; - printf <<'EOT', $$stash, $$start, $$root; - STASH 0x%x - START 0x%x - ROOT 0x%x -EOT - if ( $]>5.017 && ($sv->FLAGS & 0x40000)) { #lexsub - printf("\tNAME\t%%s\n", $sv->NAME); - } else { - printf("\tGV\t%0x%x\t%s\n", $$gv, $gv->SAFENAME); - } - printf <<'EOT', $file, $sv->DEPTH, $padlist, ${$sv->OUTSIDE}; - FILE %s - DEPTH %d - PADLIST 0x%x - OUTSIDE 0x%x -EOT - printf("\tOUTSIDE_SEQ\t%d\n", $sv->OUTSIDE_SEQ) if $] > 5.007; - if ($have_B_Flags) { - my $SVt_PVCV = $] < 5.010 ? 12 : 13; - printf("\tCvFLAGS\t0x%x\t%s\n", $sv->CvFLAGS, - $have_B_Flags_extra ? $sv->flagspv($SVt_PVCV) : $sv->flagspv); - } else { - printf("\tCvFLAGS\t0x%x\n", $sv->CvFLAGS); - } - $start->debug if $start; - $root->debug if $root; - $gv->debug if $gv; - $padlist->debug if $padlist; -} - -sub B::AV::debug { - my ($av) = @_; - $av->B::SV::debug; - _array_debug($av); -} - -sub _array_debug { - my ($av) = @_; - # tied arrays may leave out FETCHSIZE - my (@array) = eval { $av->ARRAY; }; - print "\tARRAY\t\t(", join(", ", map("0x" . $$_, @array)), ")\n"; - my $fill = eval { scalar(@array) }; - if ($Config{'useithreads'} && class($av) ne 'PADLIST') { - printf <<'EOT', $fill, $av->MAX, $av->OFF; - FILL %d - MAX %d - OFF %d -EOT - } else { - printf <<'EOT', $fill, $av->MAX; - FILL %d - MAX %d -EOT - } - if ($] < 5.009) { - if ($have_B_Flags) { - printf("\tAvFLAGS\t0x%x\t%s\n", $av->AvFLAGS, - $have_B_Flags_extra ? $av->flagspv(10) : $av->flagspv); - } else { - printf("\tAvFLAGS\t0x%x\n", $av->AvFLAGS); - } - } -} - -sub B::GV::debug { - my ($gv) = @_; - if ($done_gv{$$gv}++) { - printf "GV %s::%s\n", $gv->STASH->NAME, $gv->SAFENAME; - return; - } - my $sv = $gv->SV; - my $av = $gv->AV; - my $cv = $gv->CV; - $gv->B::SV::debug; - printf <<'EOT', $gv->SAFENAME, $gv->STASH->NAME, $gv->STASH, $$sv, $gv->GvREFCNT, $gv->FORM, $$av, ${$gv->HV}, ${$gv->EGV}, $$cv, $gv->CVGEN, $gv->LINE, $gv->FILE, $gv->GvFLAGS; - NAME %s - STASH %s (0x%x) - SV 0x%x - GvREFCNT %d - FORM 0x%x - AV 0x%x - HV 0x%x - EGV 0x%x - CV 0x%x - CVGEN %d - LINE %d - FILE %s -EOT - if ($have_B_Flags) { - my $SVt_PVGV = $] < 5.010 ? 13 : 9; - printf("\tGvFLAGS\t0x%x\t%s\n", $gv->GvFLAGS, - $have_B_Flags_extra ? $gv->flagspv($SVt_PVGV) : $gv->flagspv); - } else { - printf("\tGvFLAGS\t0x%x\n", $gv->GvFLAGS); - } - $sv->debug if $sv; - $av->debug if $av; - $cv->debug if $cv; -} - -sub B::SPECIAL::debug { - my $sv = shift; - my $i = ref $sv ? $$sv : 0; - print defined $specialsv_name[$i] ? $specialsv_name[$i] : "", "\n"; -} - -sub B::PADLIST::debug { - my ($padlist) = @_; - printf <<'EOT', class($padlist), $$padlist, $padlist->REFCNT; -%s (0x%x) - REFCNT %d -EOT - _array_debug($padlist); -} - -sub compile { - my $order = shift; - B::clearsym(); - $DB::single = 1 if defined &DB::DB; - if ($order && $order eq "exec") { - return sub { walkoptree_exec(main_start, "debug") } - } else { - return sub { walkoptree(main_root, "debug") } - } -} - -1; - -__END__ - -=head1 NAME - -B::Debug - Walk Perl syntax tree, printing debug info about ops - -=head1 SYNOPSIS - - perl -MO=Debug foo.pl - perl -MO=Debug,-exec foo.pl - -=head1 DESCRIPTION - -See F<ext/B/README> and the newer L<B::Concise>, L<B::Terse>. - -=head1 OPTIONS - -With option -exec, walks tree in execute order, -otherwise in basic order. - -=head1 AUTHOR - -Malcolm Beattie, C<[email protected]> -Reini Urban C<[email protected]> - -=head1 LICENSE - -Copyright (c) 1996, 1997 Malcolm Beattie -Copyright (c) 2008, 2010, 2013, 2014 Reini Urban - - This program is free software; you can redistribute it and/or modify - it under the terms of either: - - a) the GNU General Public License as published by the Free - Software Foundation; either version 1, or (at your option) any - later version, or - - b) the "Artistic License" which comes with this kit. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either - the GNU General Public License or the Artistic License for more details. - - You should have received a copy of the Artistic License with this kit, - in the file named "Artistic". If not, you can get one from the Perl - distribution. You should also have received a copy of the GNU General - Public License, in the file named "Copying". If not, you can get one - from the Perl distribution or else write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - -=cut - diff --git a/cpan/B-Debug/t/debug.t b/cpan/B-Debug/t/debug.t deleted file mode 100644 index 0f60b95a5b..0000000000 --- a/cpan/B-Debug/t/debug.t +++ /dev/null @@ -1,104 +0,0 @@ -#!./perl - -BEGIN { - delete $ENV{PERL_DL_NONLAZY} if $] < 5.005_58; #Perl_byterun problem - if ($ENV{PERL_CORE}){ - chdir('t') if -d 't'; - if ($^O eq 'MacOS') { - @INC = qw(: ::lib ::macos:lib); - } else { - @INC = '.'; - push @INC, '../lib'; - } - } else { - unshift @INC, 't'; - } - require Config; - if (($Config::Config{'extensions'} !~ /\bB\b/) ){ - print "1..0 # Skip -- Perl configured without B module\n"; - exit 0; - } -} - -$| = 1; -use warnings; -use strict; -use Config; -use Test::More tests => 11; -use B; -use B::Debug; -use File::Spec; - -my $a; -my $X = $^X =~ m/\s/ ? qq{"$^X"} : $^X; - -my $path = join " ", map { qq["-I$_"] } (File::Spec->catfile("blib","lib"), @INC); -my $redir = $^O =~ /VMS|MSWin32|MacOS/ ? "" : "2>&1"; - -$a = `$X $path "-MO=Debug" -e 1 $redir`; -like($a, qr/\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s); - - -$a = `$X $path "-MO=Terse" -e 1 $redir`; -like($a, qr/\bLISTOP\b.*leave.*\n OP\b.*enter.*\n COP\b.*nextstate.*\n OP\b.*null/s); - -$a = `$X $path "-MO=Terse" -ane "s/foo/bar/" $redir`; -$a =~ s/\(0x[^)]+\)//g; -$a =~ s/\[[^\]]+\]//g; -$a =~ s/-e syntax OK//; -$a =~ s/[^a-z ]+//g; -$a =~ s/\s+/ /g; -$a =~ s/\b(s|foo|bar|ullsv)\b\s?//g; -$a =~ s/^\s+//; -$a =~ s/\s+$//; -$a =~ s/\s+nextstate$//; # if $] < 5.008001; # 5.8.0 adds it. 5.8.8 not anymore -my $is_thread = $Config{use5005threads} && $Config{use5005threads} eq 'define'; -if ($is_thread) { - $b=<<EOF; -leave enter nextstate label leaveloop enterloop null and defined null -threadsv readline gv lineseq nextstate aassign null pushmark split pushre -threadsv const null pushmark rvav gv nextstate subst const unstack -EOF -} elsif ($] >= 5.021005) { - $b=<<EOF; -leave enter nextstate label leaveloop enterloop null and defined null null -gvsv readline gv lineseq nextstate split pushre null -gvsv const nextstate subst const unstack -EOF -} else { - $b=<<EOF; -leave enter nextstate label leaveloop enterloop null and defined null null -gvsv readline gv lineseq nextstate aassign null pushmark split pushre null -gvsv const null pushmark rvav gv nextstate subst const unstack -EOF -} -$b=~s/\n/ /g; $b=~s/\s+/ /g; -$b =~ s/\s+$//; -$b =~ s/split pushre/split/ if $] >= 5.025006; - -is($a, $b); - -like(B::Debug::_printop(B::main_root), qr/LISTOP\s+\[OP_LEAVE\]/); -like(B::Debug::_printop(B::main_start), qr/OP\s+\[OP_ENTER\]/); - -$a = `$X $path "-MO=Debug" -e "B::main_root->debug" $redir`; -like($a, qr/op_next\s+0x0/m); -$a = `$X $path "-MO=Debug" -e "B::main_start->debug" $redir`; -like($a, qr/\[OP_ENTER\]/m); - -# pass missing FETCHSIZE, fixed with 1.06 -my $e = q(BEGIN{tie @a, __PACKAGE__;sub TIEARRAY {bless{}} sub FETCH{1}};print $a[1]); -$a = `$X $path "-MO=Debug" -e"$e" $redir`; -unlike($a, qr/locate object method "FETCHSIZE"/m); - -# NV assertion with CV, fixed with 1.13 -my $tmp = "tmp.pl"; -open TMP, ">", $tmp; -print TMP 'my $p=1;$g=2;sub p($){my $i=1;$i+1};print p(0)+$g;'; -close TMP; -$a = `$X $path "-MO=Debug" $tmp $redir`; -ok(! $?); -unlike($a, qr/assertion "SvTYPE(sv) != SVt_PVCV" failed.*function: S_sv_2iuv_common/m); -unlike($a, qr/Use of uninitialized value in print/m); - -END { unlink $tmp if $tmp; } diff --git a/ext/B/B/Terse.pm b/ext/B/B/Terse.pm index 681112e904..4401073f25 100644 --- a/ext/B/B/Terse.pm +++ b/ext/B/B/Terse.pm @@ -1,6 +1,6 @@ package B::Terse; -our $VERSION = '1.08'; +our $VERSION = '1.09'; use strict; use B qw(class @specialsv_name); @@ -73,7 +73,7 @@ B::Terse - Walk Perl syntax tree, printing terse info about ops =head1 DESCRIPTION This module prints the contents of the parse tree, but without as much -information as L<B::Debug>. For comparison, C<print "Hello, world."> +information as CPAN module B::Debug. For comparison, C<print "Hello, world."> produced 96 lines of output from B::Debug, but only 6 from B::Terse. This module is useful for people who are writing their own back end, diff --git a/lib/.gitignore b/lib/.gitignore index 7af784898d..626aa67011 100644 --- a/lib/.gitignore +++ b/lib/.gitignore @@ -16,7 +16,6 @@ /AutoSplit.pm /B.pm /B/Concise.pm -/B/Debug.pm /B/Showlex.pm /B/Terse.pm /B/Xref.pm diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 784d8b0af5..41d02b6d1b 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -135,6 +135,10 @@ L<XXX> has been upgraded from version A.xx to B.yy. =item * +B::Debug has been removed from the core distribution. + +=item * + XXX =back diff --git a/pod/perlhacktips.pod b/pod/perlhacktips.pod index d80c69e3ae..cbf84cbb07 100644 --- a/pod/perlhacktips.pod +++ b/pod/perlhacktips.pod @@ -965,7 +965,7 @@ subroutine: We can also dump out this op: the current op is always stored in C<PL_op>, and we can dump it with C<Perl_op_dump>. This'll give us -similar output to L<B::Debug|B::Debug>. +similar output to CPAN module B::Debug. (gdb) print Perl_op_dump(PL_op) { diff --git a/pod/perlinterp.pod b/pod/perlinterp.pod index e1af33370a..b90c789b1d 100644 --- a/pod/perlinterp.pod +++ b/pod/perlinterp.pod @@ -435,7 +435,7 @@ operations in. The easiest way to examine the op tree is to stop Perl after it has finished parsing, and get it to dump out the tree. This is exactly what the compiler backends L<B::Terse|B::Terse>, L<B::Concise|B::Concise> -and L<B::Debug|B::Debug> do. +and CPAN module B::Debug do. Let's have a look at how Perl sees C<$a = $b + $c>: diff --git a/t/TEST b/t/TEST index 8509b5659a..e4ab33b9e2 100755 --- a/t/TEST +++ b/t/TEST @@ -61,8 +61,7 @@ my %abs = ( '../dist/Tie-File' => 1, ); -my %temp_no_core = - ('../cpan/B-Debug' => 1, +my %temp_no_core = ( '../cpan/Compress-Raw-Bzip2' => 1, '../cpan/Compress-Raw-Zlib' => 1, '../cpan/Devel-PPPort' => 1, -- Perl5 Master Repository
