Skip to content

Instantly share code, notes, and snippets.

@niner
Created February 11, 2017 13:59
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 niner/0e32037010b7d31bd7443f4fd803162c to your computer and use it in GitHub Desktop.
Save niner/0e32037010b7d31bd7443f4fd803162c to your computer and use it in GitHub Desktop.
MoarVM dump of binary compilation unit:
SC_0 : 648BAC5C71BE7BE7A5C6885C94ADE9C5DF665440
SC_1 : F2C4AFFFA43D84AE3246F1C7874339333BEBBCAA-1486585400.62074
SC_2 : AC32ABF7F7462E14EE588B2D0A6062A1B512D6D1
Callsite_0 :
num_pos: 0
arg_count: 0
Callsite_1 :
num_pos: 1
arg_count: 1
Arg 1 : positional obj
Callsite_2 :
num_pos: 2
arg_count: 2
Arg 1 : positional obj
Arg 2 : positional str
Callsite_3 :
num_pos: 2
arg_count: 2
Arg 1 : positional obj
Arg 2 : positional obj
Frame_0 :
cuuid : 3
name : <unit-outer>
Locals :
0: loc_0_obj
1: loc_1_obj
2: loc_2_obj
3: loc_3_obj
Instructions :
00000 getcode loc_3_obj, Frame_1
00001 capturelex loc_3_obj
00002 getcode loc_1_obj, Frame_1
00003 takeclosure loc_1_obj, loc_1_obj
00004 checkarity 0, -1
00005 param_sp loc_0_obj, 0
00006 paramnamesused
annotation: /home/nine/rakudo/lib/Foo.pm6 (Foo):1
00007 decont loc_2_obj, loc_1_obj
00008 prepargs Callsite_0
00009 invoke_o loc_2_obj, loc_2_obj
00010 return_o loc_2_obj
Frame_1 :
cuuid : 2
name : <unit>
outer : Frame_0
Locals :
0: loc_0_obj
1: loc_1_str
2: loc_2_obj
3: loc_3_int
4: loc_4_int
5: loc_5_obj
6: loc_6_obj
7: loc_7_obj
Lexicals :
0: lex_Frame_1__obj
1: lex_Frame_1__obj
2: lex_Frame_1__obj
3: lex_Frame_1__obj
4: lex_Frame_1__obj
5: lex_Frame_1__obj
6: lex_Frame_1__obj
7: lex_Frame_1__obj
8: lex_Frame_1__obj
9: lex_Frame_1__obj
10: lex_Frame_1__obj
11: lex_Frame_1__obj
Instructions :
00000 getcode loc_6_obj, Frame_2
00001 takeclosure loc_6_obj, loc_6_obj
00002 checkarity 0, 0
00003 paramnamesused
annotation: /home/nine/rakudo/lib/Foo.pm6 (Foo):1
00004 const_s loc_1_str, '$*CTXSAVE'
00005 getdynlex loc_2_obj, loc_1_str
00006 set loc_0_obj, loc_2_obj
00007 isnull loc_3_int, loc_0_obj
00008 if_i loc_3_int, label_1(00018)
00009 decont loc_2_obj, loc_0_obj
00010 const_s loc_1_str, 'ctxsave'
00011 can_s loc_4_int, loc_2_obj, loc_1_str
00012 unless_i loc_4_int, label_1(00018)
00013 decont loc_5_obj, loc_0_obj
00014 findmeth loc_2_obj, loc_5_obj, 'ctxsave'
00015 prepargs Callsite_1
00016 arg_o 0, loc_0_obj
00017 invoke_o loc_2_obj, loc_2_obj
annotation: /home/nine/rakudo/lib/Foo.pm6 (Foo):1
label_1:
00018 prepargs Callsite_0
00019 invoke_v loc_6_obj
00020 wval loc_5_obj, 1, 21
00021 return_o loc_5_obj
Frame_2 :
cuuid : 1
name :
outer : Frame_1
Locals :
0: loc_0_str
1: loc_1_obj
2: loc_2_obj
Lexicals :
0: lex_Frame_2__obj
1: lex_Frame_2__obj
2: lex_Frame_2__obj
3: lex_Frame_2__obj
4: lex_Frame_2__obj
Instructions :
00000 checkarity 0, 0
00001 paramnamesused
annotation: /home/nine/rakudo/lib/Foo.pm6 (Foo):1
00002 const_s loc_0_str, '$_'
00003 getlexouter loc_1_obj, loc_0_str
00004 bindlex lex_Frame_2__obj, loc_1_obj
00005 return
Frame_3 :
cuuid : 4
name : <dependencies+deserialize>
Locals :
0: loc_0_str
1: loc_1_str
2: loc_2_str
3: loc_3_obj
4: loc_4_obj
5: loc_5_obj
6: loc_6_obj
7: loc_7_obj
8: loc_8_obj
9: loc_9_obj
10: loc_10_obj
11: loc_11_int
12: loc_12_str
Instructions :
00000 getcode loc_10_obj, Frame_4
00001 takeclosure loc_10_obj, loc_10_obj
00002 checkarity 0, 0
00003 paramnamesused
00004 const_s loc_0_str, 'ModuleLoader.moarvm'
00005 loadbytecode loc_0_str, loc_0_str
00006 const_s loc_1_str, 'nqp'
00007 const_s loc_2_str, 'ModuleLoader'
00008 gethllsym loc_3_obj, loc_1_str, loc_2_str
00009 const_s loc_2_str, 'Perl6::ModuleLoader'
00010 decont loc_5_obj, loc_3_obj
00011 findmeth loc_4_obj, loc_5_obj, 'load_module'
00012 prepargs Callsite_2
00013 arg_o 0, loc_3_obj
00014 arg_s 1, loc_2_str
00015 invoke_o loc_3_obj, loc_4_obj
00016 getcode loc_4_obj, Frame_0
00017 const_s loc_2_str, 'ModuleLoader'
00018 getcurhllsym loc_5_obj, loc_2_str
00019 const_s loc_2_str, 'CORE'
00020 decont loc_7_obj, loc_5_obj
00021 findmeth loc_6_obj, loc_7_obj, 'load_setting'
00022 prepargs Callsite_2
00023 arg_o 0, loc_5_obj
00024 arg_s 1, loc_2_str
00025 invoke_o loc_5_obj, loc_6_obj
00026 forceouterctx loc_4_obj, loc_5_obj
00027 const_s loc_2_str, '648BAC5C71BE7BE7A5C6885C94ADE9C5DF665440'
00028 createsc loc_5_obj, loc_2_str
00029 set loc_8_obj, loc_5_obj
00030 const_s loc_2_str, '/home/nine/rakudo/lib/Foo.pm6 (Foo)'
00031 scsetdesc loc_8_obj, loc_2_str
00032 hlllist loc_5_obj
00033 create loc_5_obj, loc_5_obj
00034 set loc_9_obj, loc_5_obj
00035 null_s loc_1_str
00036 null loc_5_obj
00037 prepargs Callsite_0
00038 invoke_o loc_6_obj, loc_10_obj
00039 deserialize loc_1_str, loc_8_obj, loc_5_obj, loc_6_obj, loc_9_obj
00040 elems loc_11_int, loc_9_obj
00041 unless_i loc_11_int, label_1(00049)
00042 wval_wide loc_6_obj, 2, 38310
00043 decont loc_7_obj, loc_6_obj
00044 findmeth loc_5_obj, loc_7_obj, 'resolve_repossession_conflicts'
00045 prepargs Callsite_3
00046 arg_o 0, loc_6_obj
00047 arg_o 1, loc_9_obj
00048 invoke_o loc_6_obj, loc_5_obj
label_1:
00049 const_s loc_12_str, 'GLOBAL'
00050 wval loc_5_obj, 0, 0
00051 bindcurhllsym loc_5_obj, loc_12_str, loc_5_obj
00052 return_o loc_5_obj
Frame_4 :
cuuid : 5
name :
outer : Frame_3
Locals :
0: loc_0_obj
1: loc_1_int
2: loc_2_obj
Instructions :
00000 checkarity 0, 0
00001 paramnamesused
00002 bootarray loc_0_obj
00003 create loc_0_obj, loc_0_obj
00004 const_i64_16 loc_1_int, 2
00005 setelemspos loc_0_obj, loc_1_int
00006 const_i64_16 loc_1_int, 0
00007 setelemspos loc_0_obj, loc_1_int
00008 getcode loc_2_obj, Frame_2
00009 push_o loc_0_obj, loc_2_obj
00010 getcode loc_2_obj, Frame_1
00011 push_o loc_0_obj, loc_2_obj
00012 return_o loc_0_obj
Frame_5 :
cuuid : 6
name : <load>
Locals :
0: loc_0_obj
1: loc_1_obj
Instructions :
00000 checkarity 0, 0
00001 paramnamesused
00002 getcode loc_0_obj, Frame_0
00003 decont loc_1_obj, loc_0_obj
00004 prepargs Callsite_0
00005 invoke_o loc_1_obj, loc_1_obj
00006 return_o loc_1_obj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment