Skip to content

Instantly share code, notes, and snippets.

Created March 18, 2014 23:01
Show Gist options
  • Save anonymous/9631657 to your computer and use it in GitHub Desktop.
Save anonymous/9631657 to your computer and use it in GitHub Desktop.
== disasm: <RubyVM::InstructionSequence:<compiled>@<compiled>>==========
0000 trace 1 ( 1)
0002 putspecialobject 1
0004 putspecialobject 2
0006 putobject :fact
0008 putiseq fact
0010 send :"core#define_method", 3, nil, 0, <ic:0>
0016 pop
0017 trace 1 ( 9)
0019 putself
0020 putobject 10000
0022 send :fact, 1, nil, 8, <ic:1>
0028 leave
== disasm: <RubyVM::InstructionSequence:fact@<compiled>>================
local table (size: 3, argc: 1 [opts: 2, rest: -1, post: 0, block: -1] s0)
[ 3] n<Arg> [ 2] acc<Opt=0>
0000 putobject 1 ( 1)
0002 setlocal acc
0004 trace 8
0006 trace 1 ( 2)
0008 getlocal n
0010 send :zero?, 0, nil, 0, <ic:0>
0016 branchunless 24
0018 trace 1 ( 3)
0020 getlocal acc
0022 jump 45 ( 2)
0024 trace 1 ( 5)
0026 putself
0027 getlocal n
0029 putobject 1
0031 opt_minus <ic:4>
0033 getlocal acc
0035 getlocal n
0037 opt_mult <ic:5>
0039 send :fact, 2, nil, 8, <ic:3>
0045 trace 16 ( 7)
0047 leave ( 5)
stack level too deep
== disasm: <RubyVM::InstructionSequence:<compiled>@<compiled>>==========
0000 trace 1 ( 1)
0002 putspecialobject 1
0004 putspecialobject 2
0006 putobject :fact
0008 putiseq fact
0010 send :"core#define_method", 3, nil, 0, <ic:0>
0016 pop
0017 trace 1 ( 9)
0019 putself
0020 putobject 10000
0022 send :fact, 1, nil, 40, <ic:1>
0028 leave
== disasm: <RubyVM::InstructionSequence:fact@<compiled>>================
local table (size: 3, argc: 1 [opts: 2, rest: -1, post: 0, block: -1] s0)
[ 3] n<Arg> [ 2] acc<Opt=0>
0000 putobject 1 ( 1)
0002 setlocal acc
0004 trace 8
0006 trace 1 ( 2)
0008 getlocal n
0010 send :zero?, 0, nil, 0, <ic:0>
0016 branchunless 24
0018 trace 1 ( 3)
0020 getlocal acc
0022 jump 45 ( 2)
0024 trace 1 ( 5)
0026 putself
0027 getlocal n
0029 putobject 1
0031 opt_minus <ic:4>
0033 getlocal acc
0035 getlocal n
0037 opt_mult <ic:5>
0039 send :fact, 2, nil, 8, <ic:3>
0045 trace 16 ( 7)
0047 leave ( 5)
stack level too deep
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment