⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 optree_sort.t

📁 source of perl for linux application,
💻 T
字号:
#!perlBEGIN {    if ($ENV{PERL_CORE}){	chdir('t') if -d 't';	@INC = ('.', '../lib', '../ext/B/t');    } else {	unshift @INC, 't';	push @INC, "../../t";    }    require Config;    if (($Config::Config{'extensions'} !~ /\bB\b/) ){        print "1..0 # Skip -- Perl configured without B module\n";        exit 0;    }    # require 'test.pl'; # now done by OptreeCheck}use OptreeCheck;use Config;plan tests => 11;SKIP: {skip "no perlio in this build", 11 unless $Config::Config{useperlio};pass("SORT OPTIMIZATION");checkOptree ( name	=> 'sub {sort @a}',	      code	=> sub {sort @a},	      bcopts	=> '-exec',	      strip_open_hints => 1,	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');# 1  <;> nextstate(main 424 optree_sort.t:14) v:>,<,%# 2  <0> pushmark s# 3  <#> gv[*a] s# 4  <1> rv2av[t2] lK/1# 5  <@> sort K# 6  <1> leavesub[1 ref] K/REFC,1EOT_EOT# 1  <;> nextstate(main 424 optree_sort.t:14) v:>,<,%# 2  <0> pushmark s# 3  <$> gv(*a) s# 4  <1> rv2av[t1] lK/1# 5  <@> sort K# 6  <1> leavesub[1 ref] K/REFC,1EONT_EONTcheckOptree ( name => 'sort @a',	      prog => 'sort @a',	      errs => [ 'Useless use of sort in void context at -e line 1.',			'Name "main::a" used only once: possible typo at -e line 1.',			],	      bcopts => '-exec',	      strip_open_hints => 1,	      expect => <<'EOT_EOT', expect_nt => <<'EONT_EONT');1  <0> enter 2  <;> nextstate(main 1 -e:1) v:>,<,%,{3  <0> pushmark s4  <#> gv[*a] s5  <1> rv2av[t2] lK/16  <@> sort vK7  <@> leave[1 ref] vKP/REFCEOT_EOT# 1  <0> enter # 2  <;> nextstate(main 1 -e:1) v:>,<,%,{# 3  <0> pushmark s# 4  <$> gv(*a) s# 5  <1> rv2av[t1] lK/1# 6  <@> sort vK# 7  <@> leave[1 ref] vKP/REFCEONT_EONTcheckOptree ( name	=> 'sub {@a = sort @a}',	      code	=> sub {@a = sort @a},	      bcopts	=> '-exec',	      strip_open_hints => 1,	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');1  <;> nextstate(main -438 optree.t:244) v:>,<,%2  <0> pushmark s3  <0> pushmark s4  <#> gv[*a] s5  <1> rv2av[t4] lK/16  <@> sort lK7  <0> pushmark s8  <#> gv[*a] s9  <1> rv2av[t2] lKRM*/1a  <2> aassign[t5] KS/COMMONb  <1> leavesub[1 ref] K/REFC,1EOT_EOT# 1  <;> nextstate(main 65 optree.t:311) v:>,<,%# 2  <0> pushmark s# 3  <0> pushmark s# 4  <$> gv(*a) s# 5  <1> rv2av[t2] lK/1# 6  <@> sort lK# 7  <0> pushmark s# 8  <$> gv(*a) s# 9  <1> rv2av[t1] lKRM*/1# a  <2> aassign[t3] KS/COMMON# b  <1> leavesub[1 ref] K/REFC,1EONT_EONTcheckOptree ( name	=> '@a = sort @a',	      prog	=> '@a = sort @a',	      bcopts	=> '-exec',	      strip_open_hints => 1,	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');1  <0> enter 2  <;> nextstate(main 1 -e:1) v:>,<,%,{3  <0> pushmark s4  <0> pushmark s5  <#> gv[*a] s6  <1> rv2av[t4] lKRM*/17  <@> sort lK/INPLACE8  <@> leave[1 ref] vKP/REFCEOT_EOT# 1  <0> enter # 2  <;> nextstate(main 1 -e:1) v:>,<,%,{# 3  <0> pushmark s# 4  <0> pushmark s# 5  <$> gv(*a) s# 6  <1> rv2av[t2] lKRM*/1# 7  <@> sort lK/INPLACE# 8  <@> leave[1 ref] vKP/REFCEONT_EONTcheckOptree ( name	=> 'sub {@a = sort @a; reverse @a}',	      code	=> sub {@a = sort @a; reverse @a},	      bcopts	=> '-exec',	      strip_open_hints => 1,	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');1  <;> nextstate(main -438 optree.t:286) v:>,<,%2  <0> pushmark s3  <0> pushmark s4  <#> gv[*a] s5  <1> rv2av[t4] lKRM*/16  <@> sort lK/INPLACE7  <;> nextstate(main -438 optree.t:288) v:>,<,%8  <0> pushmark s9  <#> gv[*a] sa  <1> rv2av[t7] lK/1b  <@> reverse[t8] K/1c  <1> leavesub[1 ref] K/REFC,1EOT_EOT# 1  <;> nextstate(main 66 optree.t:345) v:>,<,%# 2  <0> pushmark s# 3  <0> pushmark s# 4  <$> gv(*a) s# 5  <1> rv2av[t2] lKRM*/1# 6  <@> sort lK/INPLACE# 7  <;> nextstate(main 66 optree.t:346) v:>,<,%# 8  <0> pushmark s# 9  <$> gv(*a) s# a  <1> rv2av[t4] lK/1# b  <@> reverse[t5] K/1# c  <1> leavesub[1 ref] K/REFC,1EONT_EONTcheckOptree ( name	=> '@a = sort @a; reverse @a',	      prog	=> '@a = sort @a; reverse @a',	      errs      => ['Useless use of reverse in void context at -e line 1.'],	      bcopts	=> '-exec',	      strip_open_hints => 1,	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');1  <0> enter 2  <;> nextstate(main 1 -e:1) v:>,<,%,{3  <0> pushmark s4  <0> pushmark s5  <#> gv[*a] s6  <1> rv2av[t4] lKRM*/17  <@> sort lK/INPLACE8  <;> nextstate(main 1 -e:1) v:>,<,%,{9  <0> pushmark sa  <#> gv[*a] sb  <1> rv2av[t7] lK/1c  <@> reverse[t8] vK/1d  <@> leave[1 ref] vKP/REFCEOT_EOT# 1  <0> enter # 2  <;> nextstate(main 1 -e:1) v:>,<,%,{# 3  <0> pushmark s# 4  <0> pushmark s# 5  <$> gv(*a) s# 6  <1> rv2av[t2] lKRM*/1# 7  <@> sort lK/INPLACE# 8  <;> nextstate(main 1 -e:1) v:>,<,%,{# 9  <0> pushmark s# a  <$> gv(*a) s# b  <1> rv2av[t4] lK/1# c  <@> reverse[t5] vK/1# d  <@> leave[1 ref] vKP/REFCEONT_EONTcheckOptree ( name	=> 'sub {my @a; @a = sort @a}',	      code	=> sub {my @a; @a = sort @a},	      bcopts	=> '-exec',	      strip_open_hints => 1,	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');1  <;> nextstate(main -437 optree.t:254) v:>,<,%2  <0> padav[@a:-437,-436] vM/LVINTRO3  <;> nextstate(main -436 optree.t:256) v:>,<,%4  <0> pushmark s5  <0> pushmark s6  <0> padav[@a:-437,-436] l7  <@> sort lK8  <0> pushmark s9  <0> padav[@a:-437,-436] lRM*a  <2> aassign[t2] KS/COMMONb  <1> leavesub[1 ref] K/REFC,1EOT_EOT# 1  <;> nextstate(main 427 optree_sort.t:172) v:>,<,%# 2  <0> padav[@a:427,428] vM/LVINTRO# 3  <;> nextstate(main 428 optree_sort.t:173) v:>,<,%# 4  <0> pushmark s# 5  <0> pushmark s# 6  <0> padav[@a:427,428] l# 7  <@> sort lK# 8  <0> pushmark s# 9  <0> padav[@a:427,428] lRM*# a  <2> aassign[t2] KS/COMMON# b  <1> leavesub[1 ref] K/REFC,1EONT_EONTcheckOptree ( name	=> 'my @a; @a = sort @a',	      prog	=> 'my @a; @a = sort @a',	      bcopts	=> '-exec',	      strip_open_hints => 1,	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');1  <0> enter 2  <;> nextstate(main 1 -e:1) v:>,<,%,{3  <0> padav[@a:1,2] vM/LVINTRO4  <;> nextstate(main 2 -e:1) v:>,<,%,{5  <0> pushmark s6  <0> pushmark s7  <0> padav[@a:1,2] lRM*8  <@> sort lK/INPLACE9  <@> leave[1 ref] vKP/REFCEOT_EOT# 1  <0> enter # 2  <;> nextstate(main 1 -e:1) v:>,<,%,{# 3  <0> padav[@a:1,2] vM/LVINTRO# 4  <;> nextstate(main 2 -e:1) v:>,<,%,{# 5  <0> pushmark s# 6  <0> pushmark s# 7  <0> padav[@a:1,2] lRM*# 8  <@> sort lK/INPLACE# 9  <@> leave[1 ref] vKP/REFCEONT_EONTcheckOptree ( name	=> 'sub {my @a; @a = sort @a; push @a, 1}',	      code	=> sub {my @a; @a = sort @a; push @a, 1},	      bcopts	=> '-exec',	      debug	=> 0,	      strip_open_hints => 1,	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');1  <;> nextstate(main -437 optree.t:325) v:>,<,%2  <0> padav[@a:-437,-436] vM/LVINTRO3  <;> nextstate(main -436 optree.t:325) v:>,<,%4  <0> pushmark s5  <0> pushmark s6  <0> padav[@a:-437,-436] lRM*7  <@> sort lK/INPLACE8  <;> nextstate(main -436 optree.t:325) v:>,<,%,{9  <0> pushmark sa  <0> padav[@a:-437,-436] lRMb  <$> const[IV 1] sc  <@> push[t3] sK/2d  <1> leavesub[1 ref] K/REFC,1EOT_EOT# 1  <;> nextstate(main 429 optree_sort.t:219) v:>,<,%# 2  <0> padav[@a:429,430] vM/LVINTRO# 3  <;> nextstate(main 430 optree_sort.t:220) v:>,<,%# 4  <0> pushmark s# 5  <0> pushmark s# 6  <0> padav[@a:429,430] lRM*# 7  <@> sort lK/INPLACE# 8  <;> nextstate(main 430 optree_sort.t:220) v:>,<,%,{# 9  <0> pushmark s# a  <0> padav[@a:429,430] lRM# b  <$> const(IV 1) s# c  <@> push[t3] sK/2# d  <1> leavesub[1 ref] K/REFC,1EONT_EONTcheckOptree ( name	=> 'sub {my @a; @a = sort @a; 1}',	      code	=> sub {my @a; @a = sort @a; 1},	      bcopts	=> '-exec',	      debug	=> 0,	      strip_open_hints => 1,	      expect	=> <<'EOT_EOT', expect_nt => <<'EONT_EONT');1  <;> nextstate(main -437 optree.t:325) v:>,<,%2  <0> padav[@a:-437,-436] vM/LVINTRO3  <;> nextstate(main -436 optree.t:325) v:>,<,%4  <0> pushmark s5  <0> pushmark s6  <0> padav[@a:-437,-436] lRM*7  <@> sort lK/INPLACE8  <;> nextstate(main -436 optree.t:346) v:>,<,%,{9  <$> const[IV 1] sa  <1> leavesub[1 ref] K/REFC,1EOT_EOT# 1  <;> nextstate(main 431 optree_sort.t:250) v:>,<,%# 2  <0> padav[@a:431,432] vM/LVINTRO# 3  <;> nextstate(main 432 optree_sort.t:251) v:>,<,%# 4  <0> pushmark s# 5  <0> pushmark s# 6  <0> padav[@a:431,432] lRM*# 7  <@> sort lK/INPLACE# 8  <;> nextstate(main 432 optree_sort.t:251) v:>,<,%,{# 9  <$> const(IV 1) s# a  <1> leavesub[1 ref] K/REFC,1EONT_EONT} #skip__END__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -