Skip to content

Instantly share code, notes, and snippets.

@timo
Last active May 13, 2019 20:55
Show Gist options
  • Save timo/5138f1782672083744e315e9a78d1e51 to your computer and use it in GitHub Desktop.
Save timo/5138f1782672083744e315e9a78d1e51 to your computer and use it in GitHub Desktop.
output with ddt, dd, and .gist.say
==========
[7] @0
├ 0 = .Label .Node @1
│ ├ $.name = profiler_static.Str
│ ├ $.type = entrypoint.Str
│ ├ $.position is rw = Nil
│ └ @.children = [0] @2
├ 1 = .Op .Node @3
│ ├ $.op = |=.Str
│ ├ $.type is rw = .CPType @4
│ │ ├ $.name = Int.Str
│ │ ├ %.attributes = {0} @5
│ │ ├ $.positional = Nil
│ │ ├ $.associative = Nil
│ │ ├ $.numeric = True
│ │ └ $.stringy = True
│ └ @.children = [2] @6
│ ├ 0 = .Var .Node @7
│ │ ├ $.name = profile.Str
│ │ ├ $.scope = builtin.Str
│ │ ├ $.type is rw = Nil
│ │ └ @.children = [0] @8
│ └ 1 = .Op .Node @9
│ ├ $.op = eq_s.Str
│ ├ $.type is rw = .CPType §4
│ └ @.children = [2] @11
│ ├ 0 = .Op .Node @12
│ │ ├ $.op = getattr.Str
│ │ ├ $.type is rw = .CPType @13
│ │ │ ├ $.name = String.Str
│ │ │ ├ %.attributes = {0} @14
│ │ │ ├ $.positional = Nil
│ │ │ ├ $.associative = Nil
│ │ │ ├ $.numeric = Nil
│ │ │ └ $.stringy = True
│ │ └ @.children = [2] @15
│ │ ├ 0 = .Var .Node @16
│ │ │ ├ $.name = sf.Str
│ │ │ ├ $.scope = builtin.Str
│ │ │ ├ $.type is rw = .CPType @17
│ │ │ │ ├ $.name = MVMStaticFrame.Str
│ │ │ │ ├ %.attributes = {8} @18
│ │ │ │ │ ├ cu => .CPType @19
│ │ │ │ │ │ ├ $.name = MVMCompUnit.Str
│ │ │ │ │ │ ├ %.attributes = {2} @20
│ │ │ │ │ │ │ ├ filename => .CPType §13
│ │ │ │ │ │ │ └ hll_name => .CPType §13
│ │ │ │ │ │ ├ $.positional = Nil
│ │ │ │ │ │ ├ $.associative = Nil
│ │ │ │ │ │ ├ $.numeric = Nil
│ │ │ │ │ │ └ $.stringy = Nil
│ │ │ │ │ ├ cuuid => .CPType §13
│ │ │ │ │ ├ env_size => .CPType §4
│ │ │ │ │ ├ file_location => .CPType @25
│ │ │ │ │ │ ├ $.name = CString.Str
│ │ │ │ │ │ ├ %.attributes = {0} @26
│ │ │ │ │ │ ├ $.positional = Nil
│ │ │ │ │ │ ├ $.associative = Nil
│ │ │ │ │ │ ├ $.numeric = Nil
│ │ │ │ │ │ └ $.stringy = True
│ │ │ │ │ ├ name => .CPType §13
│ │ │ │ │ ├ num_lexicals => .CPType §4
│ │ │ │ │ ├ outer => .CPType §17
│ │ │ │ │ └ work_size => .CPType §4
│ │ │ │ ├ $.positional = Nil
│ │ │ │ ├ $.associative = Nil
│ │ │ │ ├ $.numeric = Nil
│ │ │ │ └ $.stringy = Nil
│ │ │ └ @.children = [0] @31
│ │ └ 1 = name.Str
│ └ 1 = .SVal .Node @32
│ ├ $.value = florble.Str
│ └ @.children = [0] @33
├ 2 = .Op .Node @34
│ ├ $.op = |=.Str
│ ├ $.type is rw = .CPType §4
│ └ @.children = [2] @36
│ ├ 0 = .Var .Node @37
│ │ ├ $.name = profile.Str
│ │ ├ $.scope = builtin.Str
│ │ ├ $.type is rw = Nil
│ │ └ @.children = [0] @38
│ └ 1 = .Op .Node @39
│ ├ $.op = eq_s.Str
│ ├ $.type is rw = .CPType §4
│ └ @.children = [2] @41
│ ├ 0 = .Op .Node @42
│ │ ├ $.op = getattr.Str
│ │ ├ $.type is rw = .CPType §13
│ │ └ @.children = [2] @44
│ │ ├ 0 = .Var .Node @45
│ │ │ ├ $.name = sf.Str
│ │ │ ├ $.scope = builtin.Str
│ │ │ ├ $.type is rw = .CPType §17
│ │ │ └ @.children = [0] @47
│ │ └ 1 = name.Str
│ └ 1 = .SVal .Node @48
│ ├ $.value = blorb.Str
│ └ @.children = [0] @49
├ 3 = .Op .Node @50
│ ├ $.op = =.Str
│ ├ $.type is rw = Nil
│ └ @.children = [2] @51
│ ├ 0 = .Var .Node @52
│ │ ├ $.name = $callerframe.Str
│ │ ├ $.scope = my.Str
│ │ ├ $.type is rw = Nil
│ │ └ @.children = [0] @53
│ └ 1 = .Op .Node @54
│ ├ $.op = getattr.Str
│ ├ $.type is rw = .CPType §17
│ └ @.children = [2] @56
│ ├ 0 = .Op .Node @57
│ │ ├ $.op = getattr.Str
│ │ ├ $.type is rw = .CPType @58
│ │ │ ├ $.name = MVMFrame.Str
│ │ │ ├ %.attributes = {5} @59
│ │ │ │ ├ caller => .CPType §58
│ │ │ │ ├ outer => .CPType §58
│ │ │ │ ├ params => MVMArgProcContext.Str
│ │ │ │ ├ return_type => .CPType §4
│ │ │ │ └ static_info => .CPType §17
│ │ │ ├ $.positional = Nil
│ │ │ ├ $.associative = Nil
│ │ │ ├ $.numeric = Nil
│ │ │ └ $.stringy = Nil
│ │ └ @.children = [2] @64
│ │ ├ 0 = .Var .Node @65
│ │ │ ├ $.name = frame.Str
│ │ │ ├ $.scope = builtin.Str
│ │ │ ├ $.type is rw = .CPType §58
│ │ │ └ @.children = [0] @67
│ │ └ 1 = caller.Str
│ └ 1 = static_info.Str
├ 4 = .Op .Node @68
│ ├ $.op = =.Str
│ ├ $.type is rw = Nil
│ └ @.children = [2] @69
│ ├ 0 = .Var .Node @70
│ │ ├ $.name = $custom_var.Str
│ │ ├ $.scope = my.Str
│ │ ├ $.type is rw = Nil
│ │ └ @.children = [0] @71
│ └ 1 = .Op .Node @72
│ ├ $.op = and_i.Str
│ ├ $.type is rw = .CPType §4
│ └ @.children = [2] @74
│ ├ 0 = .Op .Node @75
│ │ ├ $.op = eq_s.Str
│ │ ├ $.type is rw = .CPType §4
│ │ └ @.children = [2] @77
│ │ ├ 0 = .Op .Node @78
│ │ │ ├ $.op = getattr.Str
│ │ │ ├ $.type is rw = .CPType §13
│ │ │ └ @.children = [2] @80
│ │ │ ├ 0 = .Var .Node @81
│ │ │ │ ├ $.name = sf.Str
│ │ │ │ ├ $.scope = builtin.Str
│ │ │ │ ├ $.type is rw = .CPType §17
│ │ │ │ └ @.children = [0] @83
│ │ │ └ 1 = name.Str
│ │ └ 1 = .SVal .Node @84
│ │ ├ $.value = blurb.Str
│ │ └ @.children = [0] @85
│ └ 1 = .Op .Node @86
│ ├ $.op = eq_s.Str
│ ├ $.type is rw = .CPType §4
│ └ @.children = [2] @88
│ ├ 0 = .Op .Node @89
│ │ ├ $.op = getattr.Str
│ │ ├ $.type is rw = .CPType §13
│ │ └ @.children = [2] @91
│ │ ├ 0 = .Var .Node @92
│ │ │ ├ $.name = $callerframe.Str
│ │ │ ├ $.scope = my.Str
│ │ │ ├ $.type is rw = .CPType §17
│ │ │ └ @.children = [0] @94
│ │ └ 1 = name.Str
│ └ 1 = .SVal .Node @95
│ ├ $.value = blop.Str
│ └ @.children = [0] @96
├ 5 = .Op .Node @97
│ ├ $.op = |=.Str
│ ├ $.type is rw = .CPType §4
│ └ @.children = [2] @99
│ ├ 0 = .Var .Node @100
│ │ ├ $.name = profile.Str
│ │ ├ $.scope = builtin.Str
│ │ ├ $.type is rw = Nil
│ │ └ @.children = [0] @101
│ └ 1 = .Var .Node @102
│ ├ $.name = $custom_var.Str
│ ├ $.scope = my.Str
│ ├ $.type is rw = .CPType §4
│ └ @.children = [0] @104
└ 6 = .Op .Node @105
├ $.op = =.Str
├ $.type is rw = Nil
└ @.children = [2] @106
├ 0 = .Var .Node @107
│ ├ $.name = log.Str
│ ├ $.scope = builtin.Str
│ ├ $.type is rw = .CPType §13
│ └ @.children = [0] @109
└ 1 = .SVal .Node @110
├ $.value = oh no!.Str
└ @.children = [0] @111
==========
==========
[7] @0
├ 0 = .Label .Node @1
│ ├ $.name = profiler_static.Str
│ ├ $.type = entrypoint.Str
│ ├ $.position is rw = Nil
│ └ @.children = [0] @2
├ 1 = .Op .Node @3
│ ├ $.op = |=.Str
│ ├ $.type is rw = CPType Int :numeric :stringy @4
│ └ @.children = [2] @5
│ ├ 0 = .Var .Node @6
│ │ └ $.name = profile.Str
│ └ 1 = .Op .Node @7
│ ├ $.op = eq_s.Str
│ ├ $.type is rw = CPType Int :numeric :stringy §4
│ └ @.children = [2] @9
│ ├ 0 = .Op .Node @10
│ │ ├ $.op = getattr.Str
│ │ ├ $.type is rw = CPType String :stringy @11
│ │ └ @.children = [2] @12
│ │ ├ 0 = .Var .Node @13
│ │ │ ├ $.name = sf.Str
│ │ │ └ $.type = CPType MVMStaticFrame @14
│ │ └ 1 = name.Str
│ └ 1 = String Value ("florble") @15
├ 2 = .Op .Node @16
│ ├ $.op = |=.Str
│ ├ $.type is rw = CPType Int :numeric :stringy §4
│ └ @.children = [2] @18
│ ├ 0 = .Var .Node @19
│ │ └ $.name = profile.Str
│ └ 1 = .Op .Node @20
│ ├ $.op = eq_s.Str
│ ├ $.type is rw = CPType Int :numeric :stringy §4
│ └ @.children = [2] @22
│ ├ 0 = .Op .Node @23
│ │ ├ $.op = getattr.Str
│ │ ├ $.type is rw = CPType String :stringy §11
│ │ └ @.children = [2] @25
│ │ ├ 0 = .Var .Node @26
│ │ │ ├ $.name = sf.Str
│ │ │ └ $.type = CPType MVMStaticFrame §14
│ │ └ 1 = name.Str
│ └ 1 = String Value ("blorb") @28
├ 3 = .Op .Node @29
│ ├ $.op = =.Str
│ ├ $.type is rw = Nil
│ └ @.children = [2] @30
│ ├ 0 = .Var .Node @31
│ │ └ $.name = $callerframe.Str
│ └ 1 = .Op .Node @32
│ ├ $.op = getattr.Str
│ ├ $.type is rw = CPType MVMStaticFrame §14
│ └ @.children = [2] @34
│ ├ 0 = .Op .Node @35
│ │ ├ $.op = getattr.Str
│ │ ├ $.type is rw = CPType MVMFrame @36
│ │ └ @.children = [2] @37
│ │ ├ 0 = .Var .Node @38
│ │ │ ├ $.name = frame.Str
│ │ │ └ $.type = CPType MVMFrame §36
│ │ └ 1 = caller.Str
│ └ 1 = static_info.Str
├ 4 = .Op .Node @40
│ ├ $.op = =.Str
│ ├ $.type is rw = Nil
│ └ @.children = [2] @41
│ ├ 0 = .Var .Node @42
│ │ └ $.name = $custom_var.Str
│ └ 1 = .Op .Node @43
│ ├ $.op = and_i.Str
│ ├ $.type is rw = CPType Int :numeric :stringy §4
│ └ @.children = [2] @45
│ ├ 0 = .Op .Node @46
│ │ ├ $.op = eq_s.Str
│ │ ├ $.type is rw = CPType Int :numeric :stringy §4
│ │ └ @.children = [2] @48
│ │ ├ 0 = .Op .Node @49
│ │ │ ├ $.op = getattr.Str
│ │ │ ├ $.type is rw = CPType String :stringy §11
│ │ │ └ @.children = [2] @51
│ │ │ ├ 0 = .Var .Node @52
│ │ │ │ ├ $.name = sf.Str
│ │ │ │ └ $.type = CPType MVMStaticFrame §14
│ │ │ └ 1 = name.Str
│ │ └ 1 = String Value ("blurb") @54
│ └ 1 = .Op .Node @55
│ ├ $.op = eq_s.Str
│ ├ $.type is rw = CPType Int :numeric :stringy §4
│ └ @.children = [2] @57
│ ├ 0 = .Op .Node @58
│ │ ├ $.op = getattr.Str
│ │ ├ $.type is rw = CPType String :stringy §11
│ │ └ @.children = [2] @60
│ │ ├ 0 = .Var .Node @61
│ │ │ ├ $.name = $callerframe.Str
│ │ │ └ $.type = CPType MVMStaticFrame §14
│ │ └ 1 = name.Str
│ └ 1 = String Value ("blop") @63
├ 5 = .Op .Node @64
│ ├ $.op = |=.Str
│ ├ $.type is rw = CPType Int :numeric :stringy §4
│ └ @.children = [2] @66
│ ├ 0 = .Var .Node @67
│ │ └ $.name = profile.Str
│ └ 1 = .Var .Node @68
│ ├ $.name = $custom_var.Str
│ └ $.type = CPType Int :numeric :stringy §4
└ 6 = .Op .Node @70
├ $.op = =.Str
├ $.type is rw = Nil
└ @.children = [2] @71
├ 0 = .Var .Node @72
│ ├ $.name = log.Str
│ └ $.type = CPType String :stringy §11
└ 1 = String Value ("oh no!") @74
==========
==========
Array element = [Label.new(name => "profiler_static", type => "entrypoint", position => Any, children => []), Op.new(op => "|=", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Var.new(name => "profile", scope => "builtin", type => Any, children => []), Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "sf", scope => "builtin", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "florble", children => [])])]), Op.new(op => "|=", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Var.new(name => "profile", scope => "builtin", type => Any, children => []), Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "sf", scope => "builtin", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "blorb", children => [])])]), Op.new(op => "=", type => Any, children => [Var.new(name => "\$callerframe", scope => "my", type => Any, children => []), Op.new(op => "getattr", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => [Op.new(op => "getattr", type => (my \CPType_90082768 = CPType.new(name => "MVMFrame", attributes => {:caller(CPType_90082768), :outer(CPType_90082768), :params("MVMArgProcContext"), :return_type(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :static_info((my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => [Var.new(name => "frame", scope => "builtin", type => (my \CPType_90082768 = CPType.new(name => "MVMFrame", attributes => {:caller(CPType_90082768), :outer(CPType_90082768), :params("MVMArgProcContext"), :return_type(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :static_info((my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "caller"]), "static_info"])]), Op.new(op => "=", type => Any, children => [Var.new(name => "\$custom_var", scope => "my", type => Any, children => []), Op.new(op => "and_i", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "sf", scope => "builtin", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "blurb", children => [])]), Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "\$callerframe", scope => "my", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "blop", children => [])])])]), Op.new(op => "|=", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Var.new(name => "profile", scope => "builtin", type => Any, children => []), Var.new(name => "\$custom_var", scope => "my", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [])]), Op.new(op => "=", type => Any, children => [Var.new(name => "log", scope => "builtin", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => []), SVal.new(value => "oh no!", children => [])])]
==========
==========
[Label.new(name => "profiler_static", type => "entrypoint", position => Any, children => []) Op.new(op => "|=", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Var.new(name => "profile", scope => "builtin", type => Any, children => []), Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "sf", scope => "builtin", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "florble", children => [])])]) Op.new(op => "|=", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Var.new(name => "profile", scope => "builtin", type => Any, children => []), Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "sf", scope => "builtin", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "blorb", children => [])])]) Op.new(op => "=", type => Any, children => [Var.new(name => "\$callerframe", scope => "my", type => Any, children => []), Op.new(op => "getattr", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => [Op.new(op => "getattr", type => (my \CPType_90082768 = CPType.new(name => "MVMFrame", attributes => {:caller(CPType_90082768), :outer(CPType_90082768), :params("MVMArgProcContext"), :return_type(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :static_info((my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => [Var.new(name => "frame", scope => "builtin", type => (my \CPType_90082768 = CPType.new(name => "MVMFrame", attributes => {:caller(CPType_90082768), :outer(CPType_90082768), :params("MVMArgProcContext"), :return_type(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :static_info((my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "caller"]), "static_info"])]) Op.new(op => "=", type => Any, children => [Var.new(name => "\$custom_var", scope => "my", type => Any, children => []), Op.new(op => "and_i", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "sf", scope => "builtin", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "blurb", children => [])]), Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "\$callerframe", scope => "my", type => (my \CPType_90082448 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_90082448), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "blop", children => [])])])]) Op.new(op => "|=", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Var.new(name => "profile", scope => "builtin", type => Any, children => []), Var.new(name => "\$custom_var", scope => "my", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [])]) Op.new(op => "=", type => Any, children => [Var.new(name => "log", scope => "builtin", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => []), SVal.new(value => "oh no!", children => [])])]
==========
eq
eq
eq
and
eq
==========
[7] @0
├ 0 = .Label .Node @1
│ ├ $.name = profiler_static.Str
│ ├ $.type = entrypoint.Str
│ ├ $.position is rw = Nil
│ └ @.children = [0] @2
├ 1 = .Op .Node @3
│ ├ $.op = |=.Str
│ ├ $.type is rw = .CPType @4
│ │ ├ $.name = Int.Str
│ │ ├ %.attributes = {0} @5
│ │ ├ $.positional = Nil
│ │ ├ $.associative = Nil
│ │ ├ $.numeric = True
│ │ └ $.stringy = True
│ └ @.children = [2] @6
│  ├ 0 = .Var .Node @7
│  │ ├ $.name = profile.Str
│  │ ├ $.scope = builtin.Str
│  │ ├ $.type is rw = Nil
│  │ └ @.children = [0] @8
│  └ 1 = .Op .Node @9
│   ├ $.op = eq_s.Str
│   ├ $.type is rw = .CPType §4
│   └ @.children = [2] @11
│    ├ 0 = .Op .Node @12
│    │ ├ $.op = getattr.Str
│    │ ├ $.type is rw = .CPType @13
│    │ │ ├ $.name = String.Str
│    │ │ ├ %.attributes = {0} @14
│    │ │ ├ $.positional = Nil
│    │ │ ├ $.associative = Nil
│    │ │ ├ $.numeric = Nil
│    │ │ └ $.stringy = True
│    │ └ @.children = [2] @15
│    │  ├ 0 = .Var .Node @16
│    │  │ ├ $.name = sf.Str
│    │  │ ├ $.scope = builtin.Str
│    │  │ ├ $.type is rw = .CPType @17
│    │  │ │ ├ $.name = MVMStaticFrame.Str
│    │  │ │ ├ %.attributes = {8} @18
│    │  │ │ │ ├ cu => .CPType @19
│    │  │ │ │ │ ├ $.name = MVMCompUnit.Str
│    │  │ │ │ │ ├ %.attributes = {2} @20
│    │  │ │ │ │ │ ├ filename => .CPType §13
│    │  │ │ │ │ │ └ hll_name => .CPType §13
│    │  │ │ │ │ ├ $.positional = Nil
│    │  │ │ │ │ ├ $.associative = Nil
│    │  │ │ │ │ ├ $.numeric = Nil
│    │  │ │ │ │ └ $.stringy = Nil
│    │  │ │ │ ├ cuuid => .CPType §13
│    │  │ │ │ ├ env_size => .CPType §4
│    │  │ │ │ ├ file_location => .CPType @25
│    │  │ │ │ │ ├ $.name = CString.Str
│    │  │ │ │ │ ├ %.attributes = {0} @26
│    │  │ │ │ │ ├ $.positional = Nil
│    │  │ │ │ │ ├ $.associative = Nil
│    │  │ │ │ │ ├ $.numeric = Nil
│    │  │ │ │ │ └ $.stringy = True
│    │  │ │ │ ├ name => .CPType §13
│    │  │ │ │ ├ num_lexicals => .CPType §4
│    │  │ │ │ ├ outer => .CPType §17
│    │  │ │ │ └ work_size => .CPType §4
│    │  │ │ ├ $.positional = Nil
│    │  │ │ ├ $.associative = Nil
│    │  │ │ ├ $.numeric = Nil
│    │  │ │ └ $.stringy = Nil
│    │  │ └ @.children = [0] @31
│    │  └ 1 = name.Str
│    └ 1 = .SVal .Node @32
│     ├ $.value = florble.Str
│     └ @.children = [0] @33
├ 2 = .Op .Node @34
│ ├ $.op = |=.Str
│ ├ $.type is rw = .CPType §4
│ └ @.children = [2] @36
│  ├ 0 = .Var .Node @37
│  │ ├ $.name = profile.Str
│  │ ├ $.scope = builtin.Str
│  │ ├ $.type is rw = Nil
│  │ └ @.children = [0] @38
│  └ 1 = .Op .Node @39
│   ├ $.op = eq_s.Str
│   ├ $.type is rw = .CPType §4
│   └ @.children = [2] @41
│    ├ 0 = .Op .Node @42
│    │ ├ $.op = getattr.Str
│    │ ├ $.type is rw = .CPType §13
│    │ └ @.children = [2] @44
│    │  ├ 0 = .Var .Node @45
│    │  │ ├ $.name = sf.Str
│    │  │ ├ $.scope = builtin.Str
│    │  │ ├ $.type is rw = .CPType §17
│    │  │ └ @.children = [0] @47
│    │  └ 1 = name.Str
│    └ 1 = .SVal .Node @48
│     ├ $.value = blorb.Str
│     └ @.children = [0] @49
├ 3 = .Op .Node @50
│ ├ $.op = =.Str
│ ├ $.type is rw = Nil
│ └ @.children = [2] @51
│  ├ 0 = .Var .Node @52
│  │ ├ $.name = $callerframe.Str
│  │ ├ $.scope = my.Str
│  │ ├ $.type is rw = Nil
│  │ └ @.children = [0] @53
│  └ 1 = .Op .Node @54
│   ├ $.op = getattr.Str
│   ├ $.type is rw = .CPType §17
│   └ @.children = [2] @56
│    ├ 0 = .Op .Node @57
│    │ ├ $.op = getattr.Str
│    │ ├ $.type is rw = .CPType @58
│    │ │ ├ $.name = MVMFrame.Str
│    │ │ ├ %.attributes = {5} @59
│    │ │ │ ├ caller => .CPType §58
│    │ │ │ ├ outer => .CPType §58
│    │ │ │ ├ params => MVMArgProcContext.Str
│    │ │ │ ├ return_type => .CPType §4
│    │ │ │ └ static_info => .CPType §17
│    │ │ ├ $.positional = Nil
│    │ │ ├ $.associative = Nil
│    │ │ ├ $.numeric = Nil
│    │ │ └ $.stringy = Nil
│    │ └ @.children = [2] @64
│    │  ├ 0 = .Var .Node @65
│    │  │ ├ $.name = frame.Str
│    │  │ ├ $.scope = builtin.Str
│    │  │ ├ $.type is rw = .CPType §58
│    │  │ └ @.children = [0] @67
│    │  └ 1 = caller.Str
│    └ 1 = static_info.Str
├ 4 = .Op .Node @68
│ ├ $.op = =.Str
│ ├ $.type is rw = Nil
│ └ @.children = [2] @69
│  ├ 0 = .Var .Node @70
│  │ ├ $.name = $custom_var.Str
│  │ ├ $.scope = my.Str
│  │ ├ $.type is rw = Nil
│  │ └ @.children = [0] @71
│  └ 1 = .Op .Node @72
│   ├ $.op = and_i.Str
│   ├ $.type is rw = .CPType §4
│   └ @.children = [2] @74
│    ├ 0 = .Op .Node @75
│    │ ├ $.op = eq_s.Str
│    │ ├ $.type is rw = .CPType §4
│    │ └ @.children = [2] @77
│    │  ├ 0 = .Op .Node @78
│    │  │ ├ $.op = getattr.Str
│    │  │ ├ $.type is rw = .CPType §13
│    │  │ └ @.children = [2] @80
│    │  │  ├ 0 = .Var .Node @81
│    │  │  │ ├ $.name = sf.Str
│    │  │  │ ├ $.scope = builtin.Str
│    │  │  │ ├ $.type is rw = .CPType §17
│    │  │  │ └ @.children = [0] @83
│    │  │  └ 1 = name.Str
│    │  └ 1 = .SVal .Node @84
│    │   ├ $.value = blurb.Str
│    │   └ @.children = [0] @85
│    └ 1 = .Op .Node @86
│     ├ $.op = eq_s.Str
│     ├ $.type is rw = .CPType §4
│     └ @.children = [2] @88
│      ├ 0 = .Op .Node @89
│      │ ├ $.op = getattr.Str
│      │ ├ $.type is rw = .CPType §13
│      │ └ @.children = [2] @91
│      │  ├ 0 = .Var .Node @92
│      │  │ ├ $.name = $callerframe.Str
│      │  │ ├ $.scope = my.Str
│      │  │ ├ $.type is rw = .CPType §17
│      │  │ └ @.children = [0] @94
│      │  └ 1 = name.Str
│      └ 1 = .SVal .Node @95
│       ├ $.value = blop.Str
│       └ @.children = [0] @96
├ 5 = .Op .Node @97
│ ├ $.op = |=.Str
│ ├ $.type is rw = .CPType §4
│ └ @.children = [2] @99
│  ├ 0 = .Var .Node @100
│  │ ├ $.name = profile.Str
│  │ ├ $.scope = builtin.Str
│  │ ├ $.type is rw = Nil
│  │ └ @.children = [0] @101
│  └ 1 = .Var .Node @102
│   ├ $.name = $custom_var.Str
│   ├ $.scope = my.Str
│   ├ $.type is rw = .CPType §4
│   └ @.children = [0] @104
└ 6 = .Op .Node @105
 ├ $.op = =.Str
 ├ $.type is rw = Nil
 └ @.children = [2] @106
  ├ 0 = .Var .Node @107
  │ ├ $.name = log.Str
  │ ├ $.scope = builtin.Str
  │ ├ $.type is rw = .CPType §13
  │ └ @.children = [0] @109
  └ 1 = .SVal .Node @110
   ├ $.value = oh no!.Str
   └ @.children = [0] @111
==========
==========
==========
==========
[Label.new(name => "profiler_static", type => "entrypoint", position => Any, children => []) Op.new(op => "|=", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Var.new(name => "profile", scope => "builtin", type => Any, children => []), Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "sf", scope => "builtin", type => (my \CPType_77767680 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_77767680), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "florble", children => [])])]) Op.new(op => "|=", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Var.new(name => "profile", scope => "builtin", type => Any, children => []), Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "sf", scope => "builtin", type => (my \CPType_77767680 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_77767680), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "blorb", children => [])])]) Op.new(op => "=", type => Any, children => [Var.new(name => "\$callerframe", scope => "my", type => Any, children => []), Op.new(op => "getattr", type => (my \CPType_77767680 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_77767680), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => [Op.new(op => "getattr", type => (my \CPType_77767920 = CPType.new(name => "MVMFrame", attributes => {:caller(CPType_77767920), :outer(CPType_77767920), :params("MVMArgProcContext"), :return_type(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :static_info((my \CPType_77767680 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_77767680), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => [Var.new(name => "frame", scope => "builtin", type => (my \CPType_77767920 = CPType.new(name => "MVMFrame", attributes => {:caller(CPType_77767920), :outer(CPType_77767920), :params("MVMArgProcContext"), :return_type(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :static_info((my \CPType_77767680 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_77767680), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "caller"]), "static_info"])]) Op.new(op => "=", type => Any, children => [Var.new(name => "\$custom_var", scope => "my", type => Any, children => []), Op.new(op => "and_i", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "sf", scope => "builtin", type => (my \CPType_77767680 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_77767680), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "blurb", children => [])]), Op.new(op => "eq_s", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Op.new(op => "getattr", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => [Var.new(name => "\$callerframe", scope => "my", type => (my \CPType_77767680 = CPType.new(name => "MVMStaticFrame", attributes => {:cu(CPType.new(name => "MVMCompUnit", attributes => {:filename(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :hll_name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), :cuuid(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :env_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :file_location(CPType.new(name => "CString", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :name(CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True)), :num_lexicals(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True)), :outer(CPType_77767680), :work_size(CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True))}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool)), children => []), "name"]), SVal.new(value => "blop", children => [])])])]) Op.new(op => "|=", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [Var.new(name => "profile", scope => "builtin", type => Any, children => []), Var.new(name => "\$custom_var", scope => "my", type => CPType.new(name => "Int", attributes => {}, positional => CPType, associative => CPType, numeric => Bool::True, stringy => Bool::True), children => [])]) Op.new(op => "=", type => Any, children => [Var.new(name => "log", scope => "builtin", type => CPType.new(name => "String", attributes => {}, positional => CPType, associative => CPType, numeric => Bool, stringy => Bool::True), children => []), SVal.new(value => "oh no!", children => [])])]
==========
lexpad
{2} @0
├ $callerframe => .Op .Node @1
│ ├ $.op = getattr.Str
│ ├ $.type is rw = .CPType @2
│ │ ├ $.name = MVMStaticFrame.Str
│ │ ├ %.attributes = {8} @3
│ │ │ ├ cu => .CPType @4
│ │ │ │ ├ $.name = MVMCompUnit.Str
│ │ │ │ ├ %.attributes = {2} @5
│ │ │ │ │ ├ filename => .CPType @6
│ │ │ │ │ │ ├ $.name = String.Str
│ │ │ │ │ │ ├ %.attributes = {0} @7
│ │ │ │ │ │ ├ $.positional = Nil
│ │ │ │ │ │ ├ $.associative = Nil
│ │ │ │ │ │ ├ $.numeric = Nil
│ │ │ │ │ │ └ $.stringy = True
│ │ │ │ │ └ hll_name => .CPType §6
│ │ │ │ ├ $.positional = Nil
│ │ │ │ ├ $.associative = Nil
│ │ │ │ ├ $.numeric = Nil
│ │ │ │ └ $.stringy = Nil
│ │ │ ├ cuuid => .CPType §6
│ │ │ ├ env_size => .CPType @10
│ │ │ │ ├ $.name = Int.Str
│ │ │ │ ├ %.attributes = {0} @11
│ │ │ │ ├ $.positional = Nil
│ │ │ │ ├ $.associative = Nil
│ │ │ │ ├ $.numeric = True
│ │ │ │ └ $.stringy = True
│ │ │ ├ file_location => .CPType @12
│ │ │ │ ├ $.name = CString.Str
│ │ │ │ ├ %.attributes = {0} @13
│ │ │ │ ├ $.positional = Nil
│ │ │ │ ├ $.associative = Nil
│ │ │ │ ├ $.numeric = Nil
│ │ │ │ └ $.stringy = True
│ │ │ ├ name => .CPType §6
│ │ │ ├ num_lexicals => .CPType §10
│ │ │ ├ outer => .CPType §2
│ │ │ └ work_size => .CPType §10
│ │ ├ $.positional = Nil
│ │ ├ $.associative = Nil
│ │ ├ $.numeric = Nil
│ │ └ $.stringy = Nil
│ └ @.children = [2] @18
│  ├ 0 = .Op .Node @19
│  │ ├ $.op = getattr.Str
│  │ ├ $.type is rw = .CPType @20
│  │ │ ├ $.name = MVMFrame.Str
│  │ │ ├ %.attributes = {5} @21
│  │ │ │ ├ caller => .CPType §20
│  │ │ │ ├ outer => .CPType §20
│  │ │ │ ├ params => MVMArgProcContext.Str
│  │ │ │ ├ return_type => .CPType §10
│  │ │ │ └ static_info => .CPType §2
│  │ │ ├ $.positional = Nil
│  │ │ ├ $.associative = Nil
│  │ │ ├ $.numeric = Nil
│  │ │ └ $.stringy = Nil
│  │ └ @.children = [2] @26
│  │  ├ 0 = .Var .Node @27
│  │  │ ├ $.name = frame.Str
│  │  │ ├ $.scope = builtin.Str
│  │  │ ├ $.type is rw = .CPType §20
│  │  │ └ @.children = [0] @29
│  │  └ 1 = caller.Str
│  └ 1 = static_info.Str
└ $custom_var => .Op .Node @30
 ├ $.op = and_i.Str
 ├ $.type is rw = .CPType §10
 └ @.children = [2] @32
  ├ 0 = .Op .Node @33
  │ ├ $.op = eq_s.Str
  │ ├ $.type is rw = .CPType §10
  │ └ @.children = [2] @35
  │  ├ 0 = .Op .Node @36
  │  │ ├ $.op = getattr.Str
  │  │ ├ $.type is rw = .CPType §6
  │  │ └ @.children = [2] @38
  │  │  ├ 0 = .Var .Node @39
  │  │  │ ├ $.name = sf.Str
  │  │  │ ├ $.scope = builtin.Str
  │  │  │ ├ $.type is rw = .CPType §2
  │  │  │ └ @.children = [0] @41
  │  │  └ 1 = name.Str
  │  └ 1 = .SVal .Node @42
  │   ├ $.value = blurb.Str
  │   └ @.children = [0] @43
  └ 1 = .Op .Node @44
   ├ $.op = eq_s.Str
   ├ $.type is rw = .CPType §10
   └ @.children = [2] @46
    ├ 0 = .Op .Node @47
    │ ├ $.op = getattr.Str
    │ ├ $.type is rw = .CPType §6
    │ └ @.children = [2] @49
    │  ├ 0 = .Var .Node @50
    │  │ ├ $.name = $callerframe.Str
    │  │ ├ $.scope = my.Str
    │  │ ├ $.type is rw = .CPType §2
    │  │ └ @.children = [0] @52
    │  └ 1 = name.Str
    └ 1 = .SVal .Node @53
     ├ $.value = blop.Str
     └ @.children = [0] @54
added entrypoint at position 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment