Skip to content

Instantly share code, notes, and snippets.

@masak
Created October 29, 2010 13:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save masak/653552 to your computer and use it in GitHub Desktop.
Save masak/653552 to your computer and use it in GitHub Desktop.
what happens when 'my $num = 1' is executed?
$ perl6 --target=PIR -e 'my $num = 1'
.loadlib 'perl6_ops'
.HLL "perl6"
.namespace []
.sub "_block74" :anon :subid("64_1288358784.81728")
.param pmc param_93 :slurpy
.annotate 'line', 0
.const 'Sub' $P79 = "65_1288358784.81728"
capture_lex $P79
.annotate 'line', 1
.local pmc true
true = get_hll_global 'True'
.lex "__CANDIDATE_LIST__", $P76
get_hll_global $P77, "!UNIT_START"
.const 'Sub' $P79 = "65_1288358784.81728"
capture_lex $P79
.lex "@_", param_93
$P94 = $P77($P79, param_93)
.return ($P94)
.const 'Sub' $P99 = "67_1288358784.81728"
.return ($P99)
.end
.HLL "perl6"
.namespace []
.sub "_block78" :anon :subid("65_1288358784.81728") :outer("64_1288358784.81728")
.param pmc param_88 :optional
.param int has_param_88 :opt_flag
.annotate 'line', 1
.local pmc true
true = get_hll_global 'True'
.lex "__CANDIDATE_LIST__", $P80
find_lex_skip_current $P81, "$_"
$P82 = new ['Perl6Scalar'], $P81
setprop $P82, "rw", true
.lex "$_", $P82
find_lex_skip_current $P83, "$/"
$P84 = new ['Perl6Scalar'], $P83
setprop $P84, "rw", true
.lex "$/", $P84
find_lex_skip_current $P85, "$!"
$P86 = new ['Perl6Scalar'], $P85
setprop $P86, "rw", true
.lex "$!", $P86
new $P87, "Perl6Scalar"
setprop $P87, "rw", true
setprop $P87, "scalar", true
.lex "$num", $P87
if has_param_88, optparam_69
new $P89, "Integer"
assign $P89, 0
set param_88, $P89
optparam_69:
.lex "$MAIN", param_88
$P0 = find_dynamic_lex "$*CTXSAVE"
if null $P0 goto ctxsave_done
$I0 = can $P0, "ctxsave"
unless $I0 goto ctxsave_done
$P0."ctxsave"()
ctxsave_done:
$P0 = get_hll_global "@!recapture"
recapture_loop:
unless $P0 goto recapture_loop_end
$P1 = shift $P0
fixup_outer_ctx $P1
goto recapture_loop
recapture_loop_end:
find_lex $P90, "$num"
new $P91, "Int"
assign $P91, 1
$P92 = "&infix:<=>"($P90, $P91)
.return ($P92)
.end
.HLL "perl6"
.namespace []
.sub "" :load :init :subid("post68") :outer("65_1288358784.81728")
.annotate 'line', 1
.const 'Sub' $P79 = "65_1288358784.81728"
.local pmc block
set block, $P79
$P0 = find_name "!UNIT_OUTER"
unless null $P0 goto have_perl6
load_language "perl6"
have_perl6:
"!UNIT_OUTER"(block)
.end
.HLL "perl6"
.namespace []
.sub "_block95" :load :init :anon :subid("66_1288358784.81728")
.annotate 'line', 1
$P97 = "!fire_phasers"("CHECK")
.return ($P97)
.end
.HLL "perl6"
.namespace []
.sub "_block98" :load :anon :subid("67_1288358784.81728")
.annotate 'line', 1
.const 'Sub' $P100 = "64_1288358784.81728"
$P101 = "!UNIT_START"($P100)
.return ($P101)
.end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment