Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created October 30, 2021 14:29
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 dogbert17/f81c6141e2669836f0970383ed2c1414 to your computer and use it in GitHub Desktop.
Save dogbert17/f81c6141e2669836f0970383ed2c1414 to your computer and use it in GitHub Desktop.
Bytecode
1..7
ok 1 - no lastcall, so we defer up the inheritance tree
ok 2 - sanity test for clearing
ok 3 - lastcall means nextsame causes Nil return of method
ok 4 - lastcall meant nextsame failed, no deferal happened
00000 checkarity 1, 1
00001 param_rp_o loc_0_obj, 0
00002 paramnamesused
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5248
00003 const_s loc_5_str, 'dispatcher-get-resume-state'
00004 dispatch_o loc_6_obj, 'boot-syscall', Callsite_58, loc_5_str
00005 set loc_1_obj, loc_6_obj
00006 const_s loc_5_str, 'dispatcher-track-resume-state'
00007 dispatch_o loc_6_obj, 'boot-syscall', Callsite_58, loc_5_str
00008 set loc_2_obj, loc_6_obj
00009 const_s loc_5_str, 'dispatcher-guard-literal'
00010 dispatch_v 'boot-syscall', Callsite_30, loc_5_str, loc_2_obj
00011 const_s loc_5_str, 'dispatcher-set-resume-state-literal'
00012 wval loc_6_obj, 0, 235
00013 dispatch_v 'boot-syscall', Callsite_100, loc_5_str, loc_6_obj
00014 const_s loc_5_str, 'dispatcher-track-arg'
00015 const_i64_16 loc_7_int, 0
00016 dispatch_o loc_6_obj, 'boot-syscall', Callsite_88, loc_5_str, loc_0_obj, loc_7_int
00017 -> set loc_3_obj, loc_6_obj
00018 const_s loc_5_str, 'dispatcher-guard-literal'
00019 dispatch_v 'boot-syscall', Callsite_30, loc_5_str, loc_3_obj
00020 const_i64_16 loc_7_int, 0
00021 captureposarg_i loc_7_int, loc_0_obj, loc_7_int
00022 set loc_4_int, loc_7_int
00023 isnull loc_7_int, loc_1_obj
00024 set loc_9_int, loc_7_int
00025 unless_i loc_7_int, label_1(00029)
00026 const_i64_16 loc_8_int, 3
00027 ne_i loc_8_int, loc_4_int, loc_8_int
00028 set loc_9_int, loc_8_int
label_1:
00029 unless_i loc_9_int, label_16(00178)
00030 hlllist loc_6_obj
00031 create loc_6_obj, loc_6_obj
00032 set loc_17_obj, loc_6_obj
00033 wval loc_6_obj, 1, 44
00034 set loc_19_obj, loc_6_obj
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5267
00035 const_s loc_5_str, 'dispatcher-get-resume-init-args'
00036 dispatch_o loc_6_obj, 'boot-syscall', Callsite_58, loc_5_str
00037 set loc_10_obj, loc_6_obj
00038 const_s loc_5_str, 'dispatcher-track-arg'
00039 const_i64_16 loc_8_int, 0
00040 dispatch_o loc_6_obj, 'boot-syscall', Callsite_88, loc_5_str, loc_10_obj, loc_8_int
00041 set loc_11_obj, loc_6_obj
00042 const_s loc_5_str, 'dispatcher-guard-type'
00043 dispatch_v 'boot-syscall', Callsite_30, loc_5_str, loc_11_obj
00044 const_s loc_5_str, 'dispatcher-track-arg'
00045 const_i64_16 loc_8_int, 1
00046 dispatch_o loc_6_obj, 'boot-syscall', Callsite_88, loc_5_str, loc_10_obj, loc_8_int
00047 set loc_12_obj, loc_6_obj
00048 const_s loc_5_str, 'dispatcher-guard-literal'
00049 dispatch_v 'boot-syscall', Callsite_30, loc_5_str, loc_12_obj
00050 const_i64_16 loc_8_int, 0
00051 captureposarg loc_6_obj, loc_10_obj, loc_8_int
00052 set loc_13_obj, loc_6_obj
00053 const_i64_16 loc_8_int, 1
00054 captureposarg_s loc_5_str, loc_10_obj, loc_8_int
00055 set loc_14_str, loc_5_str
00056 gethow loc_6_obj, loc_13_obj
00057 set loc_15_obj, loc_6_obj
00058 decont loc_6_obj, loc_15_obj
00059 const_s loc_5_str, 'mro_unhidden'
00060 const_i64_16 loc_8_int, 0
00061 dispatch_o loc_21_obj, 'lang-find-meth', Callsite_23, loc_6_obj, loc_5_str, loc_8_int
00062 isnull loc_8_int, loc_21_obj
00063 not_i loc_8_int, loc_8_int
00064 unless_i loc_8_int, label_2(00070)
00065 decont loc_21_obj, loc_15_obj
00066 const_s loc_5_str, 'mro_unhidden'
00067 dispatch_o loc_21_obj, 'lang-meth-call', Callsite_5, loc_21_obj, loc_5_str, loc_15_obj, loc_13_obj
00068 set loc_6_obj, loc_21_obj
00069 goto label_5(00086)
label_2:
00070 decont loc_6_obj, loc_15_obj
00071 const_s loc_5_str, 'mro'
00072 const_i64_16 loc_22_int, 0
00073 dispatch_o loc_23_obj, 'lang-find-meth', Callsite_23, loc_6_obj, loc_5_str, loc_22_int
00074 isnull loc_22_int, loc_23_obj
00075 not_i loc_22_int, loc_22_int
00076 unless_i loc_22_int, label_3(00082)
00077 decont loc_23_obj, loc_15_obj
00078 const_s loc_5_str, 'mro'
00079 dispatch_o loc_23_obj, 'lang-meth-call', Callsite_5, loc_23_obj, loc_5_str, loc_15_obj, loc_13_obj
00080 set loc_24_obj, loc_23_obj
00081 goto label_4(00085)
label_3:
00082 hlllist loc_6_obj
00083 create loc_6_obj, loc_6_obj
00084 set loc_24_obj, loc_6_obj
label_4:
00085 set loc_6_obj, loc_24_obj
label_5:
00086 set loc_16_obj, loc_6_obj
00087 iter loc_6_obj, loc_16_obj
00088 set loc_25_obj, loc_6_obj
label_6:
00089 decont loc_6_obj, loc_25_obj
00090 dispatch_i loc_8_int, 'boot-boolify', Callsite_4, loc_6_obj
00091 unless_i loc_8_int, label_10(00113)
00092 osrpoint
00093 shift_o loc_6_obj, loc_25_obj
00094 set loc_26_obj, loc_6_obj
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5286
00095 gethow loc_6_obj, loc_26_obj
00096 decont loc_24_obj, loc_6_obj
00097 const_s loc_5_str, 'method_table'
00098 dispatch_o loc_6_obj, 'lang-meth-call', Callsite_5, loc_24_obj, loc_5_str, loc_6_obj, loc_26_obj
00099 dispatch_o loc_24_obj, 'lang-hllize', Callsite_4, loc_6_obj
00100 set loc_27_obj, loc_24_obj
00101 existskey loc_8_int, loc_27_obj, loc_14_str
00102 unless_i loc_8_int, label_9(00112)
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5288
00103 decont loc_24_obj, loc_17_obj
00104 const_s loc_5_str, 'push'
00105 atkey_o loc_6_obj, loc_27_obj, loc_14_str
00106 ifnonnull loc_6_obj, label_7(00110)
00107 wval loc_23_obj, 1, 44
00108 set loc_21_obj, loc_23_obj
00109 goto label_8(00111)
label_7:
00110 set loc_21_obj, loc_6_obj
label_8:
00111 dispatch_v 'lang-meth-call', Callsite_5, loc_24_obj, loc_5_str, loc_17_obj, loc_21_obj
label_9:
00112 goto label_6(00089)
label_10:
00113 wval loc_21_obj, 0, 235
00114 set loc_18_obj, loc_21_obj
00115 elems loc_8_int, loc_17_obj
00116 const_i64_16 loc_22_int, 2
00117 ge_i loc_22_int, loc_8_int, loc_22_int
00118 unless_i loc_22_int, label_12(00135)
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5295
00119 decont loc_21_obj, loc_17_obj
00120 const_s loc_5_str, 'shift'
00121 dispatch_v 'lang-meth-call', Callsite_1, loc_21_obj, loc_5_str, loc_17_obj
label_11:
00122 decont loc_21_obj, loc_17_obj
00123 dispatch_i loc_8_int, 'boot-boolify', Callsite_4, loc_21_obj
00124 unless_i loc_8_int, label_12(00135)
00125 osrpoint
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5297
00126 wval loc_21_obj, 0, 231
00127 decont loc_24_obj, loc_21_obj
00128 const_s loc_5_str, 'new'
00129 decont loc_23_obj, loc_17_obj
00130 const_s loc_28_str, 'pop'
00131 dispatch_o loc_23_obj, 'lang-meth-call', Callsite_1, loc_23_obj, loc_28_str, loc_17_obj
00132 dispatch_o loc_23_obj, 'lang-meth-call', Callsite_26, loc_24_obj, loc_5_str, loc_21_obj, loc_23_obj, loc_18_obj
00133 set loc_18_obj, loc_23_obj
00134 goto label_11(00122)
label_12:
00135 const_i64_16 loc_22_int, 2
00136 eq_i loc_22_int, loc_4_int, loc_22_int
00137 unless_i loc_22_int, label_13(00155)
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5307
00138 const_s loc_5_str, 'dispatcher-drop-arg'
00139 const_i64_16 loc_8_int, 0
00140 dispatch_o loc_23_obj, 'boot-syscall', Callsite_88, loc_5_str, loc_0_obj, loc_8_int
00141 set loc_29_obj, loc_23_obj
00142 const_s loc_5_str, 'dispatcher-insert-arg'
00143 const_i64_16 loc_8_int, 0
00144 const_s loc_28_str, 'dispatcher-track-arg'
00145 const_i64_16 loc_31_int, 2
00146 dispatch_o loc_23_obj, 'boot-syscall', Callsite_88, loc_28_str, loc_10_obj, loc_31_int
00147 dispatch_o loc_21_obj, 'boot-syscall', Callsite_46, loc_5_str, loc_29_obj, loc_8_int, loc_23_obj
00148 set loc_30_obj, loc_21_obj
00149 const_s loc_5_str, 'dispatcher-insert-arg-literal-int'
00150 const_i64_16 loc_8_int, 0
00151 const_i64_16 loc_31_int, 1
00152 dispatch_o loc_21_obj, 'boot-syscall', Callsite_57, loc_5_str, loc_30_obj, loc_8_int, loc_31_int
00153 set loc_19_obj, loc_21_obj
00154 goto label_15(00169)
label_13:
00155 const_i64_16 loc_31_int, 9
00156 eq_i loc_31_int, loc_4_int, loc_31_int
00157 unless_i loc_31_int, label_14(00160)
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5318
00158 set loc_19_obj, loc_0_obj
00159 goto label_15(00169)
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5321
label_14:
00160 const_s loc_5_str, 'dispatcher-drop-n-args'
00161 const_i64_16 loc_8_int, 0
00162 const_i64_16 loc_33_int, 2
00163 dispatch_o loc_21_obj, 'boot-syscall', Callsite_42, loc_5_str, loc_10_obj, loc_8_int, loc_33_int
00164 set loc_32_obj, loc_21_obj
00165 const_s loc_5_str, 'dispatcher-insert-arg'
00166 const_i64_16 loc_33_int, 0
00167 dispatch_o loc_21_obj, 'boot-syscall', Callsite_46, loc_5_str, loc_32_obj, loc_33_int, loc_3_obj
00168 set loc_19_obj, loc_21_obj
label_15:
00169 const_s loc_5_str, 'dispatcher-insert-arg-literal-obj'
00170 const_i64_16 loc_22_int, 0
00171 dispatch_o loc_21_obj, 'boot-syscall', Callsite_46, loc_5_str, loc_19_obj, loc_22_int, loc_18_obj
00172 set loc_20_obj, loc_21_obj
00173 const_s loc_5_str, 'dispatcher-delegate'
00174 const_s loc_28_str, 'raku-meth-deferral'
00175 dispatch_o loc_21_obj, 'boot-syscall', Callsite_45, loc_5_str, loc_28_str, loc_20_obj
00176 set loc_24_obj, loc_21_obj
00177 goto label_17(00186)
annotation: gen/moar/BOOTSTRAP/v6c.nqp:5337
label_16:
00178 const_s loc_28_str, 'dispatcher-delegate'
00179 const_s loc_5_str, 'boot-constant'
00180 const_s loc_34_str, 'dispatcher-insert-arg-literal-obj'
00181 const_i64_16 loc_22_int, 0
00182 wval loc_23_obj, 0, 25
00183 dispatch_o loc_24_obj, 'boot-syscall', Callsite_44, loc_34_str, loc_0_obj, loc_22_int, loc_23_obj
00184 dispatch_o loc_23_obj, 'boot-syscall', Callsite_45, loc_28_str, loc_5_str, loc_24_obj
00185 set loc_24_obj, loc_23_obj
label_17:
00186 return_o loc_24_obj
Can only use manipulate a capture known in this dispatch
in method doit at t/spec/S12-methods/lastcall.t line 39
in block <unit> at t/spec/S12-methods/lastcall.t line 46
# You planned 7 tests, but ran 4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment