Created
October 16, 2025 21:58
-
-
Save rwstauner/927b63e114f7196da2f63997730a5eca to your computer and use it in GitHub Desktop.
Insn dump of ruby prelude
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| == disasm: #<ISeq:<internal:jit_hook>@<internal:jit_hook>:1 (1,0)-(13,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Module, <class:Module>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:Module>@<internal:jit_hook>:1 (1,0)-(13,3)> | |
| 0000 putself ( 4)[LiCl] | |
| 0001 definemethod :with_jit, with_jit | |
| 0004 putobject :with_jit | |
| 0006 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0008 leave ( 13)[En] | |
| == disasm: #<ISeq:with_jit@<internal:jit_hook>:4 (4,10)-(12,5)> | |
| == catch table | |
| | catch type: rescue st: 0001 ed: 0014 sp: 0000 cont: 0016 | |
| | == disasm: #<ISeq:defined guard in with_jit@<internal:jit_hook>:0 (0,0)-(-1,-1)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 putnil | |
| | 0001 leave | |
| | catch type: rescue st: 0024 ed: 0037 sp: 0000 cont: 0039 | |
| | == disasm: #<ISeq:defined guard in with_jit@<internal:jit_hook>:0 (0,0)-(-1,-1)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 putnil | |
| | 0001 leave | |
| |------------------------------------------------------------------------ | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: 0, kw: -1@-1, kwrest: -1]) | |
| [ 1] block@0<Block> | |
| 0000 putnil ( 6)[LiCa] | |
| 0001 putnil | |
| 0002 defined constant, :RubyVM, true | |
| 0006 branchunless 16 | |
| 0008 opt_getconstant_path <ic:0 RubyVM> | |
| 0010 defined constant-from, :ZJIT, true | |
| 0014 swap | |
| 0015 pop | |
| 0016 branchunless 23 | |
| 0018 opt_invokebuiltin_delegate <builtin!rb_zjit_option_enabled_p/0>, 0 | |
| 0021 branchunless 23 | |
| 0023 putnil ( 9)[Li] | |
| 0024 putnil | |
| 0025 defined constant, :RubyVM, true | |
| 0029 branchunless 39 | |
| 0031 opt_getconstant_path <ic:1 RubyVM> | |
| 0033 defined constant-from, :YJIT, true | |
| 0037 swap | |
| 0038 pop | |
| 0039 branchunless 51 | |
| 0041 opt_getconstant_path <ic:2 RubyVM::YJIT> ( 10)[Li] | |
| 0043 putobject :add_jit_hook | |
| 0045 getblockparam block@0, 0 | |
| 0048 opt_send_without_block <calldata!mid:send, argc:2, ARGS_SIMPLE> | |
| 0050 leave ( 12)[Re] | |
| 0051 putnil ( 10) | |
| 0052 leave ( 12)[Re] | |
| == disasm: #<ISeq:<internal:yjit>@<internal:yjit>:10 (10,0)-(550,3)> | |
| 0000 opt_getconstant_path <ic:0 RubyVM> ( 10)[Li] | |
| 0002 putnil | |
| 0003 defineclass :YJIT, <module:YJIT>, 10 | |
| 0007 leave | |
| == disasm: #<ISeq:<module:YJIT>@<internal:yjit>:10 (10,0)-(550,3)> | |
| 0000 putself ( 12)[LiCl] | |
| 0001 definesmethod :enabled?, enabled? | |
| 0004 putself ( 17)[Li] | |
| 0005 definesmethod :stats_enabled?, stats_enabled? | |
| 0008 putself ( 22)[Li] | |
| 0009 definesmethod :log_enabled?, log_enabled? | |
| 0012 putself ( 27)[Li] | |
| 0013 definesmethod :trace_exit_locations_enabled?, trace_exit_locations_enabled? | |
| 0016 putself ( 32)[Li] | |
| 0017 definesmethod :reset_stats!, reset_stats! | |
| 0020 putself ( 48)[Li] | |
| 0021 definesmethod :enable, enable | |
| 0024 putself ( 74)[Li] | |
| 0025 definesmethod :exit_locations, exit_locations | |
| 0028 putself ( 176)[Li] | |
| 0029 definesmethod :dump_exit_locations, dump_exit_locations | |
| 0032 putself ( 188)[Li] | |
| 0033 definesmethod :runtime_stats, runtime_stats | |
| 0036 putself ( 196)[Li] | |
| 0037 definesmethod :stats_string, stats_string | |
| 0040 putself ( 206)[Li] | |
| 0041 definesmethod :log, log | |
| 0044 putself ( 215)[Li] | |
| 0045 definesmethod :disasm, disasm | |
| 0048 putself ( 243)[Li] | |
| 0049 definesmethod :insns_compiled, insns_compiled | |
| 0052 putself ( 253)[Li] | |
| 0053 definesmethod :code_gc, code_gc | |
| 0056 putself ( 257)[Li] | |
| 0057 definesmethod :simulate_oom!, simulate_oom! | |
| 0060 opt_invokebuiltin_delegate <builtin!rb_yjit_stats_enabled_p/0>, 0( 262)[Li] | |
| 0063 branchunless 70 | |
| 0065 putself ( 263)[Li] | |
| 0066 send <calldata!mid:at_exit, argc:0, FCALL>, block in <module:YJIT> | |
| 0069 pop | |
| 0070 newarray 0 ( 267)[Li] | |
| 0072 setinstancevariable :@jit_hooks, <is:0> | |
| 0075 putself ( 269)[Li] | |
| 0076 putnil | |
| 0077 defineclass :singletonclass, singleton class, 1 | |
| 0081 leave ( 550)[En] | |
| == disasm: #<ISeq:enabled?@<internal:yjit>:12 (12,2)-(14,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi13/0>, 0 ( 13)[LiCa] | |
| 0003 leave ( 14)[Re] | |
| == disasm: #<ISeq:stats_enabled?@<internal:yjit>:17 (17,2)-(19,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_yjit_stats_enabled_p/0>, 0( 18)[LiCa] | |
| 0003 leave ( 19)[Re] | |
| == disasm: #<ISeq:log_enabled?@<internal:yjit>:22 (22,2)-(24,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_yjit_log_enabled_p/0>, 0( 23)[LiCa] | |
| 0003 leave ( 24)[Re] | |
| == disasm: #<ISeq:trace_exit_locations_enabled?@<internal:yjit>:27 (27,2)-(29,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_yjit_trace_exit_locations_enabled_p/0>, 0( 28)[LiCa] | |
| 0003 leave ( 29)[Re] | |
| == disasm: #<ISeq:reset_stats!@<internal:yjit>:32 (32,2)-(34,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_yjit_reset_stats_bang/0>, 0( 33)[LiCa] | |
| 0003 leave ( 34)[Re] | |
| == disasm: #<ISeq:enable@<internal:yjit>:48 (48,2)-(68,5)> | |
| local table (size: 5, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 4@0, kwrest: -1]) | |
| [ 5] stats@0 [ 4] log@1 [ 3] mem_size@2 [ 2] call_threshold@3[ 1] ?@4 | |
| 0000 putself ( 49)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchunless 8 | |
| 0005 putobject false | |
| 0007 leave [Re] | |
| 0008 opt_invokebuiltin_delegate <builtin!_bi51/0>, 0 ( 51)[Li] | |
| 0011 branchunless 22 | |
| 0013 putself ( 52)[Li] | |
| 0014 putchilledstring "Only one JIT can be enabled at the same time." | |
| 0016 opt_send_without_block <calldata!mid:warn, argc:1, FCALL|ARGS_SIMPLE> | |
| 0018 pop | |
| 0019 putobject false ( 53)[Li] | |
| 0021 leave [Re] | |
| 0022 getlocal_WC_0 mem_size@2 ( 56)[Li] | |
| 0024 branchunless 58 | |
| 0026 getlocal_WC_0 mem_size@2 ( 57)[Li] | |
| 0028 opt_getconstant_path <ic:0 Integer> | |
| 0030 opt_send_without_block <calldata!mid:is_a?, argc:1, ARGS_SIMPLE> | |
| 0032 branchif 42 | |
| 0034 putself | |
| 0035 opt_getconstant_path <ic:1 ArgumentError> | |
| 0037 putchilledstring "mem_size must be a Integer" | |
| 0039 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0041 pop | |
| 0042 putobject 1..2048 ( 58)[Li] | |
| 0044 getlocal_WC_0 mem_size@2 | |
| 0046 opt_send_without_block <calldata!mid:include?, argc:1, ARGS_SIMPLE> | |
| 0048 branchif 58 | |
| 0050 putself | |
| 0051 opt_getconstant_path <ic:2 ArgumentError> | |
| 0053 putchilledstring "mem_size must be between 1 and 2048 MB" | |
| 0055 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0057 pop | |
| 0058 getlocal_WC_0 call_threshold@3 ( 61)[Li] | |
| 0060 branchunless 92 | |
| 0062 getlocal_WC_0 call_threshold@3 ( 62)[Li] | |
| 0064 opt_getconstant_path <ic:3 Integer> | |
| 0066 opt_send_without_block <calldata!mid:is_a?, argc:1, ARGS_SIMPLE> | |
| 0068 branchif 78 | |
| 0070 putself | |
| 0071 opt_getconstant_path <ic:4 ArgumentError> | |
| 0073 putchilledstring "call_threshold must be a Integer" | |
| 0075 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0077 pop | |
| 0078 getlocal_WC_0 call_threshold@3 ( 63)[Li] | |
| 0080 opt_send_without_block <calldata!mid:positive?, argc:0, ARGS_SIMPLE> | |
| 0082 branchif 92 | |
| 0084 putself | |
| 0085 opt_getconstant_path <ic:5 ArgumentError> | |
| 0087 putchilledstring "call_threshold must be a positive integer" | |
| 0089 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0091 pop | |
| 0092 getlocal_WC_0 stats@0 ( 66)[Li] | |
| 0094 branchunless 101 | |
| 0096 putself | |
| 0097 send <calldata!mid:at_exit, argc:0, FCALL>, block in enable | |
| 0100 pop | |
| 0101 getlocal_WC_0 stats@0 ( 67)[Li] | |
| 0103 getlocal_WC_0 stats@0 | |
| 0105 putobject :quiet | |
| 0107 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0110 getlocal_WC_0 log@1 | |
| 0112 getlocal_WC_0 log@1 | |
| 0114 putobject :quiet | |
| 0116 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0119 getlocal_WC_0 mem_size@2 | |
| 0121 getlocal_WC_0 call_threshold@3 | |
| 0123 invokebuiltin <builtin!rb_yjit_enable/6> | |
| 0125 leave ( 68)[Re] | |
| == disasm: #<ISeq:block in enable@<internal:yjit>:66 (66,12)-(66,36)> | |
| 0000 putself ( 66)[LiBc] | |
| 0001 opt_send_without_block <calldata!mid:print_and_dump_stats, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 leave [Br] | |
| == disasm: #<ISeq:exit_locations@<internal:yjit>:74 (74,2)-(148,5)> | |
| local table (size: 11, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [11] results@0 [10] raw_samples@1[ 9] line_samples@2[ 8] frames@3 [ 7] samples_count@4[ 6] i@5 [ 5] stack_length@6[ 4] sample_count@7[ 3] prev_frame_id@8[ 2] top_frame_id@9[ 1] top_frame_line@10 | |
| 0000 putself ( 75)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:trace_exit_locations_enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 7 | |
| 0005 putnil | |
| 0006 leave [Re] | |
| 0007 opt_invokebuiltin_delegate <builtin!rb_yjit_get_exit_locations/0>, 0( 77)[Li] | |
| 0010 setlocal_WC_0 results@0 | |
| 0012 getlocal_WC_0 results@0 ( 78)[Li] | |
| 0014 putobject :raw | |
| 0016 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0018 opt_send_without_block <calldata!mid:dup, argc:0, ARGS_SIMPLE> | |
| 0020 setlocal_WC_0 raw_samples@1 | |
| 0022 getlocal_WC_0 results@0 ( 79)[Li] | |
| 0024 putobject :lines | |
| 0026 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0028 opt_send_without_block <calldata!mid:dup, argc:0, ARGS_SIMPLE> | |
| 0030 setlocal_WC_0 line_samples@2 | |
| 0032 getlocal_WC_0 results@0 ( 80)[Li] | |
| 0034 putobject :frames | |
| 0036 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0038 opt_send_without_block <calldata!mid:dup, argc:0, ARGS_SIMPLE> | |
| 0040 setlocal_WC_0 frames@3 | |
| 0042 putobject_INT2FIX_0_ ( 81)[Li] | |
| 0043 setlocal_WC_0 samples_count@4 | |
| 0045 opt_getconstant_path <ic:0 RubyVM::INSTRUCTION_NAMES>( 86)[Li] | |
| 0047 send <calldata!mid:each_with_index, argc:0>, block in exit_locations | |
| 0050 pop | |
| 0051 putobject_INT2FIX_0_ ( 101)[Li] | |
| 0052 setlocal_WC_0 i@5 | |
| 0054 jump 225 ( 102)[Li] | |
| 0056 putnil | |
| 0057 pop | |
| 0058 jump 225 | |
| 0060 getlocal_WC_0 raw_samples@1 ( 103)[Li] | |
| 0062 getlocal_WC_0 i@5 | |
| 0064 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0066 setlocal_WC_0 stack_length@6 | |
| 0068 getlocal_WC_0 i@5 ( 104)[Li] | |
| 0070 putobject_INT2FIX_1_ | |
| 0071 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0073 setlocal_WC_0 i@5 | |
| 0075 getlocal_WC_0 raw_samples@1 ( 106)[Li] | |
| 0077 getlocal_WC_0 i@5 | |
| 0079 getlocal_WC_0 stack_length@6 | |
| 0081 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0083 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0085 setlocal_WC_0 sample_count@7 | |
| 0087 putnil ( 108)[Li] | |
| 0088 setlocal_WC_0 prev_frame_id@8 | |
| 0090 getlocal_WC_0 stack_length@6 ( 109)[Li] | |
| 0092 send <calldata!mid:times, argc:0>, block in exit_locations | |
| 0095 pop | |
| 0096 getlocal_WC_0 i@5 ( 128)[Li] | |
| 0098 getlocal_WC_0 stack_length@6 | |
| 0100 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0102 setlocal_WC_0 i@5 | |
| 0104 getlocal_WC_0 prev_frame_id@8 ( 130)[Li] | |
| 0106 setlocal_WC_0 top_frame_id@9 | |
| 0108 putobject_INT2FIX_1_ ( 131)[Li] | |
| 0109 setlocal_WC_0 top_frame_line@10 | |
| 0111 getlocal_WC_0 frames@3 ( 133)[Li] | |
| 0113 getlocal_WC_0 top_frame_id@9 | |
| 0115 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0117 putobject :samples | |
| 0119 dupn 2 | |
| 0121 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0123 getlocal_WC_0 sample_count@7 | |
| 0125 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0127 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0129 pop | |
| 0130 getlocal_WC_0 frames@3 ( 134)[Li] | |
| 0132 getlocal_WC_0 top_frame_id@9 | |
| 0134 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0136 putobject :lines | |
| 0138 dupn 2 | |
| 0140 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0142 dup | |
| 0143 branchif 153 | |
| 0145 pop | |
| 0146 newhash 0 | |
| 0148 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0150 pop | |
| 0151 jump 155 | |
| 0153 adjuststack 3 | |
| 0155 getlocal_WC_0 frames@3 ( 135)[Li] | |
| 0157 getlocal_WC_0 top_frame_id@9 | |
| 0159 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0161 putobject :lines | |
| 0163 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0165 getlocal_WC_0 top_frame_line@10 | |
| 0167 dupn 2 | |
| 0169 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0171 dup | |
| 0172 branchif 182 | |
| 0174 pop | |
| 0175 duparray [0, 0] | |
| 0177 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0179 pop | |
| 0180 jump 184 | |
| 0182 adjuststack 3 | |
| 0184 getlocal_WC_0 frames@3 ( 136)[Li] | |
| 0186 getlocal_WC_0 top_frame_id@9 | |
| 0188 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0190 putobject :lines | |
| 0192 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0194 getlocal_WC_0 top_frame_line@10 | |
| 0196 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0198 putobject_INT2FIX_1_ | |
| 0199 dupn 2 | |
| 0201 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0203 getlocal_WC_0 sample_count@7 | |
| 0205 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0207 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0209 pop | |
| 0210 getlocal_WC_0 samples_count@4 ( 138)[Li] | |
| 0212 getlocal_WC_0 sample_count@7 | |
| 0214 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0216 setlocal_WC_0 samples_count@4 | |
| 0218 getlocal_WC_0 i@5 ( 139)[Li] | |
| 0220 putobject_INT2FIX_1_ | |
| 0221 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0223 setlocal_WC_0 i@5 | |
| 0225 getlocal_WC_0 i@5 ( 102) | |
| 0227 getlocal_WC_0 raw_samples@1 | |
| 0229 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0231 opt_lt <calldata!mid:<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0233 branchif 60 | |
| 0235 putnil | |
| 0236 pop | |
| 0237 getlocal_WC_0 results@0 ( 142)[Li] | |
| 0239 putobject :samples | |
| 0241 getlocal_WC_0 samples_count@4 | |
| 0243 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0245 pop | |
| 0246 getlocal_WC_0 results@0 ( 145)[Li] | |
| 0248 putobject :missed_samples | |
| 0250 putobject_INT2FIX_0_ | |
| 0251 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0253 pop | |
| 0254 getlocal_WC_0 results@0 ( 146)[Li] | |
| 0256 putobject :gc_samples | |
| 0258 putobject_INT2FIX_0_ | |
| 0259 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0261 pop | |
| 0262 getlocal_WC_0 results@0 ( 147)[Li] | |
| 0264 leave ( 148)[Re] | |
| == disasm: #<ISeq:block in exit_locations@<internal:yjit>:86 (86,46)-(90,7)> | |
| local table (size: 3, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] name@0<Arg>[ 2] frame_id@1<Arg>[ 1] frame_hash@2 | |
| 0000 duphash {samples: 0, total_samples: 0}( 87)[LiBc] | |
| 0002 putspecialobject 1 | |
| 0004 swap | |
| 0005 putobject :edges | |
| 0007 newhash 0 | |
| 0009 putobject :name | |
| 0011 getlocal_WC_0 name@0 | |
| 0013 putobject :file | |
| 0015 putchilledstring "nonexistent.def" | |
| 0017 putobject :line | |
| 0019 putnil | |
| 0020 putobject :lines | |
| 0022 newhash 0 | |
| 0024 opt_send_without_block <calldata!mid:core#hash_merge_ptr, argc:11, ARGS_SIMPLE> | |
| 0026 setlocal_WC_0 frame_hash@2 | |
| 0028 getlocal_WC_1 results@0 ( 88)[Li] | |
| 0030 putobject :frames | |
| 0032 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0034 getlocal_WC_0 frame_id@1 | |
| 0036 getlocal_WC_0 frame_hash@2 | |
| 0038 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0040 pop | |
| 0041 putnil ( 89)[Li] | |
| 0042 getlocal_WC_1 frames@3 | |
| 0044 getlocal_WC_0 frame_id@1 | |
| 0046 getlocal_WC_0 frame_hash@2 | |
| 0048 setn 3 | |
| 0050 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0052 pop | |
| 0053 leave ( 90)[Br] | |
| == disasm: #<ISeq:block in exit_locations@<internal:yjit>:109 (109,25)-(126,9)> | |
| local table (size: 4, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 4] idx@0<AmbiguousArg>[ 3] frame_id@1 [ 2] prev_frame@2[ 1] frame_info@3 | |
| 0000 getlocal_WC_0 idx@0 ( 110)[LiBc] | |
| 0002 getlocal_WC_1 i@5 | |
| 0004 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 setlocal_WC_0 idx@0 | |
| 0008 getlocal_WC_1 raw_samples@1 ( 111)[Li] | |
| 0010 getlocal_WC_0 idx@0 | |
| 0012 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0014 setlocal_WC_0 frame_id@1 | |
| 0016 getlocal_WC_1 prev_frame_id@8 ( 113)[Li] | |
| 0018 branchunless 71 | |
| 0020 getlocal_WC_1 frames@3 ( 114)[Li] | |
| 0022 getlocal_WC_1 prev_frame_id@8 | |
| 0024 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0026 setlocal_WC_0 prev_frame@2 | |
| 0028 getlocal_WC_0 prev_frame@2 ( 115)[Li] | |
| 0030 putobject :edges | |
| 0032 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0034 getlocal_WC_0 frame_id@1 | |
| 0036 dupn 2 | |
| 0038 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0040 dup | |
| 0041 branchif 50 | |
| 0043 pop | |
| 0044 putobject_INT2FIX_0_ | |
| 0045 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0047 pop | |
| 0048 jump 52 | |
| 0050 adjuststack 3 | |
| 0052 getlocal_WC_0 prev_frame@2 ( 116)[Li] | |
| 0054 putobject :edges | |
| 0056 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0058 getlocal_WC_0 frame_id@1 | |
| 0060 dupn 2 | |
| 0062 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0064 getlocal_WC_1 sample_count@7 | |
| 0066 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0068 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0070 pop | |
| 0071 getlocal_WC_1 frames@3 ( 119)[Li] | |
| 0073 getlocal_WC_0 frame_id@1 | |
| 0075 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0077 setlocal_WC_0 frame_info@3 | |
| 0079 getlocal_WC_0 frame_info@3 ( 120)[Li] | |
| 0081 putobject :total_samples | |
| 0083 dupn 2 | |
| 0085 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0087 getlocal_WC_1 sample_count@7 | |
| 0089 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0091 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0093 pop | |
| 0094 getlocal_WC_0 frame_info@3 ( 122)[Li] | |
| 0096 putobject :lines | |
| 0098 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0100 getlocal_WC_1 line_samples@2 | |
| 0102 getlocal_WC_0 idx@0 | |
| 0104 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0106 dupn 2 | |
| 0108 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0110 dup | |
| 0111 branchif 121 | |
| 0113 pop | |
| 0114 duparray [0, 0] | |
| 0116 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0118 pop | |
| 0119 jump 123 | |
| 0121 adjuststack 3 | |
| 0123 getlocal_WC_0 frame_info@3 ( 123)[Li] | |
| 0125 putobject :lines | |
| 0127 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0129 getlocal_WC_1 line_samples@2 | |
| 0131 getlocal_WC_0 idx@0 | |
| 0133 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0135 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0137 putobject_INT2FIX_0_ | |
| 0138 dupn 2 | |
| 0140 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0142 getlocal_WC_1 sample_count@7 | |
| 0144 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0146 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0148 pop | |
| 0149 getlocal_WC_0 frame_id@1 ( 125)[Li] | |
| 0151 dup | |
| 0152 setlocal_WC_1 prev_frame_id@8 | |
| 0154 leave ( 126)[Br] | |
| == disasm: #<ISeq:dump_exit_locations@<internal:yjit>:176 (176,2)-(182,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] filename@0<Arg> | |
| 0000 putself ( 177)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:trace_exit_locations_enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 13 | |
| 0005 putself ( 178)[Li] | |
| 0006 opt_getconstant_path <ic:0 ArgumentError> | |
| 0008 putchilledstring "--yjit-trace-exits must be enabled to use dump_exit_locations." | |
| 0010 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0012 pop | |
| 0013 opt_getconstant_path <ic:1 File> ( 181)[Li] | |
| 0015 getlocal_WC_0 filename@0 | |
| 0017 opt_getconstant_path <ic:2 Marshal> | |
| 0019 opt_getconstant_path <ic:3 RubyVM::YJIT> | |
| 0021 opt_send_without_block <calldata!mid:exit_locations, argc:0, ARGS_SIMPLE> | |
| 0023 opt_send_without_block <calldata!mid:dump, argc:1, ARGS_SIMPLE> | |
| 0025 opt_send_without_block <calldata!mid:binwrite, argc:2, ARGS_SIMPLE> | |
| 0027 leave ( 182)[Re] | |
| == disasm: #<ISeq:runtime_stats@<internal:yjit>:188 (188,2)-(192,5)> | |
| local table (size: 1, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] key@0<Opt=0> | |
| 0000 putnil ( 188) | |
| 0001 setlocal_WC_0 key@0 | |
| 0003 getlocal_WC_0 key@0 ( 189)[LiCa] | |
| 0005 opt_nil_p <calldata!mid:nil?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0007 branchif 25 | |
| 0009 opt_getconstant_path <ic:0 Symbol> | |
| 0011 getlocal_WC_0 key@0 | |
| 0013 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| 0015 branchif 25 | |
| 0017 putself | |
| 0018 opt_getconstant_path <ic:1 TypeError> | |
| 0020 putchilledstring "non-symbol given" | |
| 0022 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0024 pop | |
| 0025 opt_invokebuiltin_delegate_leave <builtin!rb_yjit_get_stats/1>, 0( 191)[Li] | |
| 0028 leave ( 192)[Re] | |
| == disasm: #<ISeq:stats_string@<internal:yjit>:196 (196,2)-(202,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] strio@0 | |
| 0000 putself ( 198)[LiCa] | |
| 0001 putchilledstring "stringio" | |
| 0003 opt_send_without_block <calldata!mid:require, argc:1, FCALL|ARGS_SIMPLE> | |
| 0005 pop | |
| 0006 opt_getconstant_path <ic:0 StringIO> ( 199)[Li] | |
| 0008 putnil | |
| 0009 swap | |
| 0010 opt_new <calldata!mid:new, argc:0, ARGS_SIMPLE>, 17 | |
| 0013 opt_send_without_block <calldata!mid:initialize, argc:0, FCALL|ARGS_SIMPLE> | |
| 0015 jump 20 | |
| 0017 opt_send_without_block <calldata!mid:new, argc:0, ARGS_SIMPLE> | |
| 0019 swap | |
| 0020 pop | |
| 0021 setlocal_WC_0 strio@0 | |
| 0023 putself ( 200)[Li] | |
| 0024 getlocal_WC_0 strio@0 | |
| 0026 opt_send_without_block <calldata!mid:_print_stats, argc:1, kw:[#<Symbol:0x00000000006a410c>], FCALL|KWARG> | |
| 0028 pop | |
| 0029 getlocal_WC_0 strio@0 ( 201)[Li] | |
| 0031 opt_send_without_block <calldata!mid:string, argc:0, ARGS_SIMPLE> | |
| 0033 leave ( 202)[Re] | |
| == disasm: #<ISeq:log@<internal:yjit>:206 (206,2)-(212,5)> | |
| 0000 putself ( 207)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:log_enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 7 | |
| 0005 putnil | |
| 0006 leave [Re] | |
| 0007 opt_invokebuiltin_delegate <builtin!rb_yjit_get_log/0>, 0( 209)[Li] | |
| 0010 send <calldata!mid:map, argc:0>, block in log | |
| 0013 leave ( 212)[Re] | |
| == disasm: #<ISeq:block in log@<internal:yjit>:209 (209,34)-(211,7)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] timestamp@0<Arg>[ 1] path@1<Arg> | |
| 0000 opt_getconstant_path <ic:0 Time> ( 210)[LiBc] | |
| 0002 getlocal_WC_0 timestamp@0 | |
| 0004 opt_send_without_block <calldata!mid:at, argc:1, ARGS_SIMPLE> | |
| 0006 getlocal_WC_0 path@1 | |
| 0008 newarray 2 | |
| 0010 leave ( 211)[Br] | |
| == disasm: #<ISeq:disasm@<internal:yjit>:215 (215,2)-(240,5)> | |
| local table (size: 2, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] iseq@0<Arg>[ 1] disasm_str@1 | |
| 0000 opt_getconstant_path <ic:0 RubyVM::InstructionSequence>( 217)[LiCa] | |
| 0002 getlocal_WC_0 iseq@0 | |
| 0004 opt_send_without_block <calldata!mid:of, argc:1, ARGS_SIMPLE> | |
| 0006 setlocal_WC_0 iseq@0 | |
| 0008 putself ( 219)[Li] | |
| 0009 opt_send_without_block <calldata!mid:enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0011 opt_not <calldata!mid:!, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0013 branchunless 27 | |
| 0015 putself ( 220)[Li] | |
| 0016 putchilledstring "YJIT needs to be enabled to produce disasm output, e.g.\n"( 221) | |
| 0018 putchilledstring "ruby --yjit-call-threshold=1 my_script.rb (see doc/yjit/yjit.md)"( 222) | |
| 0020 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>( 221)[CcCr] | |
| 0022 opt_send_without_block <calldata!mid:warn, argc:1, FCALL|ARGS_SIMPLE>( 220) | |
| 0024 pop | |
| 0025 putnil ( 224)[Li] | |
| 0026 leave [Re] | |
| 0027 opt_invokebuiltin_delegate <builtin!rb_yjit_disasm_iseq/1>, 0( 227)[Li] | |
| 0030 setlocal_WC_0 disasm_str@1 | |
| 0032 getlocal_WC_0 disasm_str@1 ( 229)[Li] | |
| 0034 opt_not <calldata!mid:!, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0036 branchunless 50 | |
| 0038 putself ( 230)[Li] | |
| 0039 putchilledstring "YJIT disasm is only available when YJIT is built in dev mode, i.e.\n"( 231) | |
| 0041 putchilledstring "./configure --enable-yjit=dev (see doc/yjit/yjit.md)\n"( 232) | |
| 0043 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>( 231)[CcCr] | |
| 0045 opt_send_without_block <calldata!mid:warn, argc:1, FCALL|ARGS_SIMPLE>( 230) | |
| 0047 pop | |
| 0048 putnil ( 234)[Li] | |
| 0049 leave [Re] | |
| 0050 getlocal_WC_0 iseq@0 ( 239)[Li] | |
| 0052 opt_send_without_block <calldata!mid:disasm, argc:0, ARGS_SIMPLE> | |
| 0054 putchilledstring "\n" | |
| 0056 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0058 getlocal_WC_0 disasm_str@1 | |
| 0060 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0062 leave ( 240)[Re] | |
| == disasm: #<ISeq:insns_compiled@<internal:yjit>:243 (243,2)-(249,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] iseq@0<Arg> | |
| 0000 putself ( 244)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 7 | |
| 0005 putnil | |
| 0006 leave [Re] | |
| 0007 opt_getconstant_path <ic:0 RubyVM::InstructionSequence>( 247)[Li] | |
| 0009 getlocal_WC_0 iseq@0 | |
| 0011 opt_send_without_block <calldata!mid:of, argc:1, ARGS_SIMPLE> | |
| 0013 setlocal_WC_0 iseq@0 | |
| 0015 opt_invokebuiltin_delegate_leave <builtin!rb_yjit_insns_compiled/1>, 0( 248)[Li] | |
| 0018 leave ( 249)[Re] | |
| == disasm: #<ISeq:code_gc@<internal:yjit>:253 (253,2)-(255,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_yjit_code_gc/0>, 0( 254)[LiCa] | |
| 0003 leave ( 255)[Re] | |
| == disasm: #<ISeq:simulate_oom!@<internal:yjit>:257 (257,2)-(259,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_yjit_simulate_oom_bang/0>, 0( 258)[LiCa] | |
| 0003 leave ( 259)[Re] | |
| == disasm: #<ISeq:block in <module:YJIT>@<internal:yjit>:263 (263,12)-(263,36)> | |
| 0000 putself ( 263)[LiBc] | |
| 0001 opt_send_without_block <calldata!mid:print_and_dump_stats, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 leave [Br] | |
| == disasm: #<ISeq:singleton class@<internal:yjit>:269 (269,2)-(549,5)> | |
| 0000 putself ( 271)[Li] | |
| 0001 opt_send_without_block <calldata!mid:private, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 pop | |
| 0004 definemethod :add_jit_hook, add_jit_hook( 274)[Li] | |
| 0007 definemethod :call_jit_hooks, call_jit_hooks( 279)[Li] | |
| 0010 definemethod :print_and_dump_stats, print_and_dump_stats( 287)[Li] | |
| 0013 definemethod :_dump_locations, _dump_locations( 294)[Li] | |
| 0016 definemethod :_print_stats_reasons, _print_stats_reasons( 304)[Li] | |
| 0019 definemethod :_print_stats, _print_stats( 345)[Li] | |
| 0022 definemethod :print_sorted_method_calls, print_sorted_method_calls( 452)[Li] | |
| 0025 definemethod :print_sorted_exit_counts, print_sorted_exit_counts( 472)[Li] | |
| 0028 definemethod :print_counters, print_counters( 500)[Li] | |
| 0031 definemethod :format_number, format_number( 528)[Li] | |
| 0034 definemethod :format_number_pct, format_number_pct( 536)[Li] | |
| 0037 putobject :format_number_pct | |
| 0039 leave | |
| == disasm: #<ISeq:add_jit_hook@<internal:yjit>:274 (274,4)-(276,7)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] hook@0<Arg> | |
| 0000 getinstancevariable :@jit_hooks, <is:0> ( 275)[LiCa] | |
| 0003 getlocal_WC_0 hook@0 | |
| 0005 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0007 leave ( 276)[Re] | |
| == disasm: #<ISeq:call_jit_hooks@<internal:yjit>:279 (279,4)-(284,7)> | |
| 0000 opt_invokebuiltin_delegate <builtin!yjit_c_builtin_p/0>, 0( 281)[LiCa] | |
| 0003 branchunless 7 | |
| 0005 putnil | |
| 0006 leave [Re] | |
| 0007 getinstancevariable :@jit_hooks, <is:0> ( 282)[Li] | |
| 0010 putobject :call | |
| 0012 send <calldata!mid:each, argc:0, ARGS_BLOCKARG>, nil | |
| 0015 pop | |
| 0016 getinstancevariable :@jit_hooks, <is:1> ( 283)[Li] | |
| 0019 opt_send_without_block <calldata!mid:clear, argc:0, ARGS_SIMPLE> | |
| 0021 leave ( 284)[Re] | |
| == disasm: #<ISeq:print_and_dump_stats@<internal:yjit>:287 (287,4)-(292,7)> | |
| 0000 opt_invokebuiltin_delegate <builtin!rb_yjit_print_stats_p/0>, 0( 288)[LiCa] | |
| 0003 branchunless 9 | |
| 0005 putself ( 289)[Li] | |
| 0006 opt_send_without_block <calldata!mid:_print_stats, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0008 pop | |
| 0009 putself ( 291)[Li] | |
| 0010 opt_send_without_block <calldata!mid:_dump_locations, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0012 leave ( 292)[Re] | |
| == disasm: #<ISeq:_dump_locations@<internal:yjit>:294 (294,4)-(301,7)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] filename@0 | |
| 0000 putself ( 295)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:trace_exit_locations_enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 7 | |
| 0005 putnil | |
| 0006 leave [Re] | |
| 0007 putchilledstring "yjit_exit_locations.dump"( 297)[Li] | |
| 0009 setlocal_WC_0 filename@0 | |
| 0011 putself ( 298)[Li] | |
| 0012 getlocal_WC_0 filename@0 | |
| 0014 opt_send_without_block <calldata!mid:dump_exit_locations, argc:1, FCALL|ARGS_SIMPLE> | |
| 0016 pop | |
| 0017 getglobal :$stderr ( 300)[Li] | |
| 0019 putobject "YJIT exit locations dumped to `" | |
| 0021 getlocal_WC_0 filename@0 | |
| 0023 dup | |
| 0024 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0026 anytostring | |
| 0027 putobject "`." | |
| 0029 concatstrings 3 | |
| 0031 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0033 leave ( 301)[Re] | |
| == disasm: #<ISeq:_print_stats_reasons@<internal:yjit>:304 (304,4)-(342,7)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] stats@0<Arg>[ 1] out@1<Arg> | |
| 0000 putself ( 305)[LiCa] | |
| 0001 getlocal_WC_0 stats@0 | |
| 0003 getlocal_WC_0 out@1 | |
| 0005 putchilledstring "send_" | |
| 0007 putchilledstring "method call fallback reasons: " | |
| 0009 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0011 pop | |
| 0012 putself ( 306)[Li] | |
| 0013 getlocal_WC_0 stats@0 | |
| 0015 getlocal_WC_0 out@1 | |
| 0017 putchilledstring "invokeblock_" | |
| 0019 putchilledstring "invokeblock fallback reasons: " | |
| 0021 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0023 pop | |
| 0024 putself ( 307)[Li] | |
| 0025 getlocal_WC_0 stats@0 | |
| 0027 getlocal_WC_0 out@1 | |
| 0029 putchilledstring "invokesuper_" | |
| 0031 putchilledstring "invokesuper fallback reasons: " | |
| 0033 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0035 pop | |
| 0036 putself ( 308)[Li] | |
| 0037 getlocal_WC_0 stats@0 | |
| 0039 getlocal_WC_0 out@1 | |
| 0041 putchilledstring "guard_send_" | |
| 0043 putchilledstring "method call exit reasons: " | |
| 0045 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0047 pop | |
| 0048 putself ( 309)[Li] | |
| 0049 getlocal_WC_0 stats@0 | |
| 0051 getlocal_WC_0 out@1 | |
| 0053 putchilledstring "guard_invokeblock_" | |
| 0055 putchilledstring "invokeblock exit reasons: " | |
| 0057 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0059 pop | |
| 0060 putself ( 310)[Li] | |
| 0061 getlocal_WC_0 stats@0 | |
| 0063 getlocal_WC_0 out@1 | |
| 0065 putchilledstring "guard_invokesuper_" | |
| 0067 putchilledstring "invokesuper exit reasons: " | |
| 0069 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0071 pop | |
| 0072 putself ( 311)[Li] | |
| 0073 getlocal_WC_0 stats@0 | |
| 0075 getlocal_WC_0 out@1 | |
| 0077 putchilledstring "gbpp_" | |
| 0079 putchilledstring "getblockparamproxy exit reasons: " | |
| 0081 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0083 pop | |
| 0084 putself ( 312)[Li] | |
| 0085 getlocal_WC_0 stats@0 | |
| 0087 getlocal_WC_0 out@1 | |
| 0089 putchilledstring "getivar_" | |
| 0091 putchilledstring "getinstancevariable exit reasons:" | |
| 0093 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0095 pop | |
| 0096 putself ( 313)[Li] | |
| 0097 getlocal_WC_0 stats@0 | |
| 0099 getlocal_WC_0 out@1 | |
| 0101 putchilledstring "setivar_" | |
| 0103 putchilledstring "setinstancevariable exit reasons:" | |
| 0105 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0107 pop | |
| 0108 putchilledstring "branchif" ( 315)[Li] | |
| 0110 putchilledstring "branchnil" ( 316) | |
| 0112 putchilledstring "branchunless" ( 317) | |
| 0114 putchilledstring "definedivar" ( 318) | |
| 0116 putchilledstring "expandarray" ( 319) | |
| 0118 putchilledstring "invokebuiltin" ( 320) | |
| 0120 putchilledstring "jump" ( 321) | |
| 0122 putchilledstring "leave" ( 322) | |
| 0124 putchilledstring "objtostring" ( 323) | |
| 0126 putchilledstring "opt_aref" ( 324) | |
| 0128 putchilledstring "opt_aset" ( 325) | |
| 0130 putchilledstring "opt_case_dispatch" ( 326) | |
| 0132 putchilledstring "opt_div" ( 327) | |
| 0134 putchilledstring "opt_getconstant_path" ( 328) | |
| 0136 putchilledstring "opt_minus" ( 329) | |
| 0138 putchilledstring "opt_mod" ( 330) | |
| 0140 putchilledstring "opt_mult" ( 331) | |
| 0142 putchilledstring "opt_plus" ( 332) | |
| 0144 putchilledstring "opt_succ" ( 333) | |
| 0146 putchilledstring "setlocal" ( 334) | |
| 0148 putchilledstring "splatkw" ( 335) | |
| 0150 newarray 21 ( 314) | |
| 0152 send <calldata!mid:each, argc:0>, block in _print_stats_reasons( 336) | |
| 0155 pop | |
| 0156 putself ( 339)[Li] | |
| 0157 getlocal_WC_0 stats@0 | |
| 0159 getlocal_WC_0 out@1 | |
| 0161 putchilledstring "lshift_" | |
| 0163 putchilledstring "left shift (opt_ltlt) exit reasons: " | |
| 0165 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0167 pop | |
| 0168 putself ( 340)[Li] | |
| 0169 getlocal_WC_0 stats@0 | |
| 0171 getlocal_WC_0 out@1 | |
| 0173 putchilledstring "rshift_" | |
| 0175 putchilledstring "right shift (>>) exit reasons: " | |
| 0177 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0179 pop | |
| 0180 putself ( 341)[Li] | |
| 0181 getlocal_WC_0 stats@0 | |
| 0183 getlocal_WC_0 out@1 | |
| 0185 putchilledstring "invalidate_" | |
| 0187 putchilledstring "invalidation reasons: " | |
| 0189 opt_send_without_block <calldata!mid:print_counters, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>], FCALL|KWARG> | |
| 0191 leave ( 342)[Re] | |
| == disasm: #<ISeq:block in _print_stats_reasons@<internal:yjit>:336 (336,13)-(338,9)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] insn@0<AmbiguousArg> | |
| 0000 putself ( 337)[LiBc] | |
| 0001 getlocal_WC_1 stats@0 | |
| 0003 getlocal_WC_1 out@1 | |
| 0005 getlocal_WC_0 insn@0 | |
| 0007 dup | |
| 0008 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0010 anytostring | |
| 0011 putobject "_" | |
| 0013 concatstrings 2 | |
| 0015 getlocal_WC_0 insn@0 | |
| 0017 dup | |
| 0018 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0020 anytostring | |
| 0021 putobject " exit reasons:" | |
| 0023 concatstrings 2 | |
| 0025 putobject true | |
| 0027 opt_send_without_block <calldata!mid:print_counters, argc:5, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x00000000008b210c>], FCALL|KWARG> | |
| 0029 leave ( 338)[Br] | |
| == disasm: #<ISeq:_print_stats@<internal:yjit>:345 (345,4)-(450,7)> | |
| local table (size: 6, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 6] out@0 [ 5] ?@1 [ 4] stats@2 [ 3] compilation_failure@3[ 2] code_region_overhead@4[ 1] bytes_per_context@5 | |
| 0000 checkkeyword 7, 0 ( 345) | |
| 0003 branchif 9 | |
| 0005 getglobal :$stderr | |
| 0007 setlocal_WC_0 out@0 | |
| 0009 putself ( 346)[LiCa] | |
| 0010 opt_send_without_block <calldata!mid:runtime_stats, argc:0, FCALL|ARGS_SIMPLE> | |
| 0012 setlocal_WC_0 stats@2 | |
| 0014 opt_invokebuiltin_delegate <builtin!rb_yjit_stats_enabled_p/0>, 0( 347)[Li] | |
| 0017 branchif 21 | |
| 0019 putnil | |
| 0020 leave [Re] | |
| 0021 getlocal_WC_0 out@0 ( 349)[Li] | |
| 0023 putchilledstring "***YJIT: Printing YJIT statistics on exit***" | |
| 0025 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0027 pop | |
| 0028 putself ( 351)[Li] | |
| 0029 getlocal_WC_0 stats@2 | |
| 0031 getlocal_WC_0 out@0 | |
| 0033 opt_send_without_block <calldata!mid:_print_stats_reasons, argc:2, FCALL|ARGS_SIMPLE> | |
| 0035 pop | |
| 0036 getlocal_WC_0 stats@2 ( 354)[Li] | |
| 0038 putobject :compilation_failure | |
| 0040 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0042 setlocal_WC_0 compilation_failure@3 | |
| 0044 getlocal_WC_0 stats@2 ( 356)[Li] | |
| 0046 putobject :code_region_size | |
| 0048 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0050 getlocal_WC_0 stats@2 | |
| 0052 putobject :inline_code_size | |
| 0054 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0056 getlocal_WC_0 stats@2 | |
| 0058 putobject :outlined_code_size | |
| 0060 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0062 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0064 opt_minus <calldata!mid:-, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0066 setlocal_WC_0 code_region_overhead@4 | |
| 0068 getlocal_WC_0 out@0 ( 358)[Li] | |
| 0070 putchilledstring "num_send: " | |
| 0072 putself | |
| 0073 putobject 13 | |
| 0075 getlocal_WC_0 stats@2 | |
| 0077 putobject :num_send | |
| 0079 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0081 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0083 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0085 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0087 pop | |
| 0088 getlocal_WC_0 out@0 ( 359)[Li] | |
| 0090 putchilledstring "num_send_known_class: " | |
| 0092 putself | |
| 0093 putobject 13 | |
| 0095 getlocal_WC_0 stats@2 | |
| 0097 putobject :num_send_known_class | |
| 0099 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0101 getlocal_WC_0 stats@2 | |
| 0103 putobject :num_send | |
| 0105 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0107 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0109 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0111 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0113 pop | |
| 0114 getlocal_WC_0 out@0 ( 360)[Li] | |
| 0116 putchilledstring "num_send_polymorphic: " | |
| 0118 putself | |
| 0119 putobject 13 | |
| 0121 getlocal_WC_0 stats@2 | |
| 0123 putobject :num_send_polymorphic | |
| 0125 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0127 getlocal_WC_0 stats@2 | |
| 0129 putobject :num_send | |
| 0131 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0133 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0135 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0137 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0139 pop | |
| 0140 getlocal_WC_0 out@0 ( 361)[Li] | |
| 0142 putchilledstring "num_send_megamorphic: " | |
| 0144 putself | |
| 0145 putobject 13 | |
| 0147 getlocal_WC_0 stats@2 | |
| 0149 putobject :send_megamorphic | |
| 0151 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0153 getlocal_WC_0 stats@2 | |
| 0155 putobject :num_send | |
| 0157 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0159 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0161 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0163 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0165 pop | |
| 0166 getlocal_WC_0 out@0 ( 362)[Li] | |
| 0168 putchilledstring "num_send_dynamic: " | |
| 0170 putself | |
| 0171 putobject 13 | |
| 0173 getlocal_WC_0 stats@2 | |
| 0175 putobject :num_send_dynamic | |
| 0177 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0179 getlocal_WC_0 stats@2 | |
| 0181 putobject :num_send | |
| 0183 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0185 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0187 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0189 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0191 pop | |
| 0192 getlocal_WC_0 out@0 ( 363)[Li] | |
| 0194 putchilledstring "num_send_cfunc: " | |
| 0196 putself | |
| 0197 putobject 13 | |
| 0199 getlocal_WC_0 stats@2 | |
| 0201 putobject :num_send_cfunc | |
| 0203 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0205 getlocal_WC_0 stats@2 | |
| 0207 putobject :num_send | |
| 0209 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0211 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0213 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0215 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0217 pop | |
| 0218 getlocal_WC_0 out@0 ( 364)[Li] | |
| 0220 putchilledstring "num_send_cfunc_inline: " | |
| 0222 putself | |
| 0223 putobject 13 | |
| 0225 getlocal_WC_0 stats@2 | |
| 0227 putobject :num_send_cfunc_inline | |
| 0229 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0231 getlocal_WC_0 stats@2 | |
| 0233 putobject :num_send_cfunc | |
| 0235 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0237 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0239 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0241 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0243 pop | |
| 0244 getlocal_WC_0 out@0 ( 365)[Li] | |
| 0246 putchilledstring "num_send_iseq: " | |
| 0248 putself | |
| 0249 putobject 13 | |
| 0251 getlocal_WC_0 stats@2 | |
| 0253 putobject :num_send_iseq | |
| 0255 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0257 getlocal_WC_0 stats@2 | |
| 0259 putobject :num_send | |
| 0261 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0263 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0265 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0267 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0269 pop | |
| 0270 getlocal_WC_0 out@0 ( 366)[Li] | |
| 0272 putchilledstring "num_send_iseq_leaf: " | |
| 0274 putself | |
| 0275 putobject 13 | |
| 0277 getlocal_WC_0 stats@2 | |
| 0279 putobject :num_send_iseq_leaf | |
| 0281 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0283 getlocal_WC_0 stats@2 | |
| 0285 putobject :num_send_iseq | |
| 0287 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0289 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0291 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0293 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0295 pop | |
| 0296 getlocal_WC_0 out@0 ( 367)[Li] | |
| 0298 putchilledstring "num_send_iseq_inline: " | |
| 0300 putself | |
| 0301 putobject 13 | |
| 0303 getlocal_WC_0 stats@2 | |
| 0305 putobject :num_send_iseq_inline | |
| 0307 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0309 getlocal_WC_0 stats@2 | |
| 0311 putobject :num_send_iseq | |
| 0313 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0315 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0317 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0319 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0321 pop | |
| 0322 getlocal_WC_0 stats@2 ( 368)[Li] | |
| 0324 putobject :num_send_x86_rel32 | |
| 0326 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0328 putobject_INT2FIX_0_ | |
| 0329 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0332 branchif 346 | |
| 0334 getlocal_WC_0 stats@2 | |
| 0336 putobject :num_send_x86_reg | |
| 0338 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0340 putobject_INT2FIX_0_ | |
| 0341 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0344 branchunless 386 | |
| 0346 getlocal_WC_0 out@0 ( 369)[Li] | |
| 0348 putchilledstring "num_send_x86_rel32: " | |
| 0350 putself | |
| 0351 putobject 13 | |
| 0353 getlocal_WC_0 stats@2 | |
| 0355 putobject :num_send_x86_rel32 | |
| 0357 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0359 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0361 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0363 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0365 pop | |
| 0366 getlocal_WC_0 out@0 ( 370)[Li] | |
| 0368 putchilledstring "num_send_x86_reg: " | |
| 0370 putself | |
| 0371 putobject 13 | |
| 0373 getlocal_WC_0 stats@2 | |
| 0375 putobject :num_send_x86_reg | |
| 0377 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0379 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0381 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0383 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0385 pop | |
| 0386 getlocal_WC_0 out@0 ( 372)[Li] | |
| 0388 putchilledstring "num_getivar_megamorphic: " | |
| 0390 putself | |
| 0391 putobject 11 | |
| 0393 getlocal_WC_0 stats@2 | |
| 0395 putobject :num_getivar_megamorphic | |
| 0397 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0399 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0401 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0403 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0405 pop | |
| 0406 getlocal_WC_0 out@0 ( 373)[Li] | |
| 0408 putchilledstring "num_setivar_megamorphic: " | |
| 0410 putself | |
| 0411 putobject 11 | |
| 0413 getlocal_WC_0 stats@2 | |
| 0415 putobject :num_setivar_megamorphic | |
| 0417 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0419 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0421 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0423 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0425 pop | |
| 0426 getlocal_WC_0 out@0 ( 374)[Li] | |
| 0428 putchilledstring "num_opt_case_megamorphic: " | |
| 0430 putself | |
| 0431 putobject 10 | |
| 0433 getlocal_WC_0 stats@2 | |
| 0435 putobject :num_opt_case_dispatch_megamorphic | |
| 0437 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0439 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0441 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0443 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0445 pop | |
| 0446 getlocal_WC_0 out@0 ( 375)[Li] | |
| 0448 putchilledstring "num_throw: " | |
| 0450 putself | |
| 0451 putobject 13 | |
| 0453 getlocal_WC_0 stats@2 | |
| 0455 putobject :num_throw | |
| 0457 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0459 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0461 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0463 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0465 pop | |
| 0466 getlocal_WC_0 out@0 ( 376)[Li] | |
| 0468 putchilledstring "num_throw_break: " | |
| 0470 putself | |
| 0471 putobject 13 | |
| 0473 getlocal_WC_0 stats@2 | |
| 0475 putobject :num_throw_break | |
| 0477 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0479 getlocal_WC_0 stats@2 | |
| 0481 putobject :num_throw | |
| 0483 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0485 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0487 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0489 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0491 pop | |
| 0492 getlocal_WC_0 out@0 ( 377)[Li] | |
| 0494 putchilledstring "num_throw_retry: " | |
| 0496 putself | |
| 0497 putobject 13 | |
| 0499 getlocal_WC_0 stats@2 | |
| 0501 putobject :num_throw_retry | |
| 0503 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0505 getlocal_WC_0 stats@2 | |
| 0507 putobject :num_throw | |
| 0509 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0511 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0513 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0515 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0517 pop | |
| 0518 getlocal_WC_0 out@0 ( 378)[Li] | |
| 0520 putchilledstring "num_throw_return: " | |
| 0522 putself | |
| 0523 putobject 13 | |
| 0525 getlocal_WC_0 stats@2 | |
| 0527 putobject :num_throw_return | |
| 0529 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0531 getlocal_WC_0 stats@2 | |
| 0533 putobject :num_throw | |
| 0535 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0537 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0539 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0541 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0543 pop | |
| 0544 getlocal_WC_0 out@0 ( 379)[Li] | |
| 0546 putchilledstring "num_lazy_frame_check: " | |
| 0548 putself | |
| 0549 putobject 13 | |
| 0551 getlocal_WC_0 stats@2 | |
| 0553 putobject :num_lazy_frame_check | |
| 0555 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0557 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0559 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0561 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0563 pop | |
| 0564 getlocal_WC_0 out@0 ( 380)[Li] | |
| 0566 putchilledstring "num_lazy_frame_push: " | |
| 0568 putself | |
| 0569 putobject 13 | |
| 0571 getlocal_WC_0 stats@2 | |
| 0573 putobject :num_lazy_frame_push | |
| 0575 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0577 getlocal_WC_0 stats@2 | |
| 0579 putobject :num_lazy_frame_check | |
| 0581 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0583 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0585 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0587 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0589 pop | |
| 0590 getlocal_WC_0 out@0 ( 381)[Li] | |
| 0592 putchilledstring "lazy_frame_count: " | |
| 0594 putself | |
| 0595 putobject 13 | |
| 0597 getlocal_WC_0 stats@2 | |
| 0599 putobject :lazy_frame_count | |
| 0601 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0603 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0605 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0607 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0609 pop | |
| 0610 getlocal_WC_0 out@0 ( 382)[Li] | |
| 0612 putchilledstring "lazy_frame_failure: " | |
| 0614 putself | |
| 0615 putobject 13 | |
| 0617 getlocal_WC_0 stats@2 | |
| 0619 putobject :lazy_frame_failure | |
| 0621 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0623 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0625 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0627 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0629 pop | |
| 0630 getlocal_WC_0 out@0 ( 384)[Li] | |
| 0632 putchilledstring "iseq_stack_too_large: " | |
| 0634 putself | |
| 0635 putobject 13 | |
| 0637 getlocal_WC_0 stats@2 | |
| 0639 putobject :iseq_stack_too_large | |
| 0641 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0643 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0645 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0647 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0649 pop | |
| 0650 getlocal_WC_0 out@0 ( 385)[Li] | |
| 0652 putchilledstring "iseq_too_long: " | |
| 0654 putself | |
| 0655 putobject 13 | |
| 0657 getlocal_WC_0 stats@2 | |
| 0659 putobject :iseq_too_long | |
| 0661 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0663 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0665 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0667 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0669 pop | |
| 0670 getlocal_WC_0 out@0 ( 386)[Li] | |
| 0672 putchilledstring "temp_reg_opnd: " | |
| 0674 putself | |
| 0675 putobject 13 | |
| 0677 getlocal_WC_0 stats@2 | |
| 0679 putobject :temp_reg_opnd | |
| 0681 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0683 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0685 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0687 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0689 pop | |
| 0690 getlocal_WC_0 out@0 ( 387)[Li] | |
| 0692 putchilledstring "temp_mem_opnd: " | |
| 0694 putself | |
| 0695 putobject 13 | |
| 0697 getlocal_WC_0 stats@2 | |
| 0699 putobject :temp_mem_opnd | |
| 0701 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0703 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0705 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0707 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0709 pop | |
| 0710 getlocal_WC_0 out@0 ( 388)[Li] | |
| 0712 putchilledstring "temp_spill: " | |
| 0714 putself | |
| 0715 putobject 13 | |
| 0717 getlocal_WC_0 stats@2 | |
| 0719 putobject :temp_spill | |
| 0721 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0723 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0725 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0727 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0729 pop | |
| 0730 getlocal_WC_0 out@0 ( 389)[Li] | |
| 0732 putchilledstring "bindings_allocations: " | |
| 0734 putself | |
| 0735 putobject 13 | |
| 0737 getlocal_WC_0 stats@2 | |
| 0739 putobject :binding_allocations | |
| 0741 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0743 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0745 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0747 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0749 pop | |
| 0750 getlocal_WC_0 out@0 ( 390)[Li] | |
| 0752 putchilledstring "bindings_set: " | |
| 0754 putself | |
| 0755 putobject 13 | |
| 0757 getlocal_WC_0 stats@2 | |
| 0759 putobject :binding_set | |
| 0761 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0763 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0765 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0767 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0769 pop | |
| 0770 getlocal_WC_0 compilation_failure@3 ( 391)[Li] | |
| 0772 putobject_INT2FIX_0_ | |
| 0773 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0776 branchunless 794 | |
| 0778 getlocal_WC_0 out@0 | |
| 0780 putchilledstring "compilation_failure: " | |
| 0782 putself | |
| 0783 putobject 13 | |
| 0785 getlocal_WC_0 compilation_failure@3 | |
| 0787 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0789 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0791 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0793 pop | |
| 0794 getlocal_WC_0 out@0 ( 392)[Li] | |
| 0796 putchilledstring "live_iseq_count: " | |
| 0798 putself | |
| 0799 putobject 13 | |
| 0801 getlocal_WC_0 stats@2 | |
| 0803 putobject :live_iseq_count | |
| 0805 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0807 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0809 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0811 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0813 pop | |
| 0814 getlocal_WC_0 out@0 ( 393)[Li] | |
| 0816 putchilledstring "iseq_alloc_count: " | |
| 0818 putself | |
| 0819 putobject 13 | |
| 0821 getlocal_WC_0 stats@2 | |
| 0823 putobject :iseq_alloc_count | |
| 0825 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0827 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0829 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0831 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0833 pop | |
| 0834 getlocal_WC_0 out@0 ( 394)[Li] | |
| 0836 putchilledstring "compiled_iseq_entry: " | |
| 0838 putself | |
| 0839 putobject 13 | |
| 0841 getlocal_WC_0 stats@2 | |
| 0843 putobject :compiled_iseq_entry | |
| 0845 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0847 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0849 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0851 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0853 pop | |
| 0854 getlocal_WC_0 out@0 ( 395)[Li] | |
| 0856 putchilledstring "cold_iseq_entry: " | |
| 0858 putself | |
| 0859 putobject 13 | |
| 0861 getlocal_WC_0 stats@2 | |
| 0863 putobject :cold_iseq_entry | |
| 0865 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0867 getlocal_WC_0 stats@2 | |
| 0869 putobject :compiled_iseq_entry | |
| 0871 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0873 getlocal_WC_0 stats@2 | |
| 0875 putobject :cold_iseq_entry | |
| 0877 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0879 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0881 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0883 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0885 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0887 pop | |
| 0888 getlocal_WC_0 out@0 ( 396)[Li] | |
| 0890 putchilledstring "compiled_iseq_count: " | |
| 0892 putself | |
| 0893 putobject 13 | |
| 0895 getlocal_WC_0 stats@2 | |
| 0897 putobject :compiled_iseq_count | |
| 0899 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0901 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0903 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0905 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0907 pop | |
| 0908 getlocal_WC_0 out@0 ( 397)[Li] | |
| 0910 putchilledstring "compiled_blockid_count:" | |
| 0912 putself | |
| 0913 putobject 13 | |
| 0915 getlocal_WC_0 stats@2 | |
| 0917 putobject :compiled_blockid_count | |
| 0919 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0921 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0923 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0925 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0927 pop | |
| 0928 getlocal_WC_0 out@0 ( 398)[Li] | |
| 0930 putchilledstring "compiled_block_count: " | |
| 0932 putself | |
| 0933 putobject 13 | |
| 0935 getlocal_WC_0 stats@2 | |
| 0937 putobject :compiled_block_count | |
| 0939 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0941 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0943 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0945 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0947 pop | |
| 0948 getlocal_WC_0 out@0 ( 399)[Li] | |
| 0950 putchilledstring "inline_block_count: " | |
| 0952 putself | |
| 0953 putobject 13 | |
| 0955 getlocal_WC_0 stats@2 | |
| 0957 putobject :inline_block_count | |
| 0959 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0961 getlocal_WC_0 stats@2 | |
| 0963 putobject :compiled_block_count | |
| 0965 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0967 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0969 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0971 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0973 pop | |
| 0974 getlocal_WC_0 out@0 ( 400)[Li] | |
| 0976 putchilledstring "deleted_defer_block_count:" | |
| 0978 putself | |
| 0979 putobject 10 | |
| 0981 getlocal_WC_0 stats@2 | |
| 0983 putobject :deleted_defer_block_count | |
| 0985 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0987 getlocal_WC_0 stats@2 | |
| 0989 putobject :compiled_block_count | |
| 0991 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0993 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0995 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0997 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0999 pop | |
| 1000 getlocal_WC_0 stats@2 ( 401)[Li] | |
| 1002 putobject :compiled_blockid_count | |
| 1004 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1006 putobject_INT2FIX_0_ | |
| 1007 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1010 branchunless 1044 | |
| 1012 getlocal_WC_0 out@0 ( 402)[Li] | |
| 1014 putchilledstring "versions_per_block: " | |
| 1016 putself | |
| 1017 putobject 13 | |
| 1019 putchilledstring "%4.3f" | |
| 1021 getlocal_WC_0 stats@2 | |
| 1023 putobject :compiled_block_count | |
| 1025 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1027 getlocal_WC_0 stats@2 | |
| 1029 putobject :compiled_blockid_count | |
| 1031 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1033 opt_send_without_block <calldata!mid:fdiv, argc:1, ARGS_SIMPLE> | |
| 1035 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1037 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1039 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1041 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1043 pop | |
| 1044 getlocal_WC_0 out@0 ( 404)[Li] | |
| 1046 putchilledstring "max_inline_versions: " | |
| 1048 putself | |
| 1049 putobject 13 | |
| 1051 getlocal_WC_0 stats@2 | |
| 1053 putobject :max_inline_versions | |
| 1055 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1057 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1059 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1061 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1063 pop | |
| 1064 getlocal_WC_0 out@0 ( 405)[Li] | |
| 1066 putchilledstring "compiled_branch_count: " | |
| 1068 putself | |
| 1069 putobject 13 | |
| 1071 getlocal_WC_0 stats@2 | |
| 1073 putobject :compiled_branch_count | |
| 1075 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1077 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1079 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1081 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1083 pop | |
| 1084 getlocal_WC_0 out@0 ( 407)[Li] | |
| 1086 putchilledstring "yjit_active_ms: " | |
| 1088 putself | |
| 1089 putobject 13 | |
| 1091 getlocal_WC_0 stats@2 | |
| 1093 putobject :yjit_active_ns | |
| 1095 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1097 putobject 10 | |
| 1099 putobject 6 | |
| 1101 opt_send_without_block <calldata!mid:**, argc:1, ARGS_SIMPLE> | |
| 1103 opt_div <calldata!mid:/, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1105 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1107 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1109 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1111 pop | |
| 1112 getlocal_WC_0 out@0 ( 408)[Li] | |
| 1114 putchilledstring "compile_time_ms: " | |
| 1116 putself | |
| 1117 putobject 13 | |
| 1119 getlocal_WC_0 stats@2 | |
| 1121 putobject :compile_time_ns | |
| 1123 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1125 putobject 10 | |
| 1127 putobject 6 | |
| 1129 opt_send_without_block <calldata!mid:**, argc:1, ARGS_SIMPLE> | |
| 1131 opt_div <calldata!mid:/, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1133 getlocal_WC_0 stats@2 | |
| 1135 putobject :yjit_active_ns | |
| 1137 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1139 putobject 10 | |
| 1141 putobject 6 | |
| 1143 opt_send_without_block <calldata!mid:**, argc:1, ARGS_SIMPLE> | |
| 1145 opt_div <calldata!mid:/, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1147 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 1149 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1151 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1153 pop | |
| 1154 getlocal_WC_0 out@0 ( 409)[Li] | |
| 1156 putchilledstring "block_next_count: " | |
| 1158 putself | |
| 1159 putobject 13 | |
| 1161 getlocal_WC_0 stats@2 | |
| 1163 putobject :block_next_count | |
| 1165 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1167 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1169 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1171 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1173 pop | |
| 1174 getlocal_WC_0 out@0 ( 410)[Li] | |
| 1176 putchilledstring "defer_count: " | |
| 1178 putself | |
| 1179 putobject 13 | |
| 1181 getlocal_WC_0 stats@2 | |
| 1183 putobject :defer_count | |
| 1185 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1187 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1189 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1191 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1193 pop | |
| 1194 getlocal_WC_0 out@0 ( 411)[Li] | |
| 1196 putchilledstring "defer_empty_count: " | |
| 1198 putself | |
| 1199 putobject 13 | |
| 1201 getlocal_WC_0 stats@2 | |
| 1203 putobject :defer_empty_count | |
| 1205 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1207 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1209 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1211 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1213 pop | |
| 1214 getlocal_WC_0 out@0 ( 413)[Li] | |
| 1216 putchilledstring "branch_insn_count: " | |
| 1218 putself | |
| 1219 putobject 13 | |
| 1221 getlocal_WC_0 stats@2 | |
| 1223 putobject :branch_insn_count | |
| 1225 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1227 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1229 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1231 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1233 pop | |
| 1234 getlocal_WC_0 out@0 ( 414)[Li] | |
| 1236 putchilledstring "branch_known_count: " | |
| 1238 putself | |
| 1239 putobject 13 | |
| 1241 getlocal_WC_0 stats@2 | |
| 1243 putobject :branch_known_count | |
| 1245 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1247 getlocal_WC_0 stats@2 | |
| 1249 putobject :branch_insn_count | |
| 1251 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1253 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 1255 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1257 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1259 pop | |
| 1260 getlocal_WC_0 out@0 ( 416)[Li] | |
| 1262 putchilledstring "freed_iseq_count: " | |
| 1264 putself | |
| 1265 putobject 13 | |
| 1267 getlocal_WC_0 stats@2 | |
| 1269 putobject :freed_iseq_count | |
| 1271 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1273 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1275 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1277 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1279 pop | |
| 1280 getlocal_WC_0 out@0 ( 417)[Li] | |
| 1282 putchilledstring "invalidation_count: " | |
| 1284 putself | |
| 1285 putobject 13 | |
| 1287 getlocal_WC_0 stats@2 | |
| 1289 putobject :invalidation_count | |
| 1291 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1293 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1295 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1297 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1299 pop | |
| 1300 getlocal_WC_0 out@0 ( 418)[Li] | |
| 1302 putchilledstring "inline_code_size: " | |
| 1304 putself | |
| 1305 putobject 13 | |
| 1307 getlocal_WC_0 stats@2 | |
| 1309 putobject :inline_code_size | |
| 1311 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1313 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1315 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1317 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1319 pop | |
| 1320 getlocal_WC_0 out@0 ( 419)[Li] | |
| 1322 putchilledstring "outlined_code_size: " | |
| 1324 putself | |
| 1325 putobject 13 | |
| 1327 getlocal_WC_0 stats@2 | |
| 1329 putobject :outlined_code_size | |
| 1331 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1333 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1335 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1337 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1339 pop | |
| 1340 getlocal_WC_0 out@0 ( 420)[Li] | |
| 1342 putchilledstring "code_region_size: " | |
| 1344 putself | |
| 1345 putobject 13 | |
| 1347 getlocal_WC_0 stats@2 | |
| 1349 putobject :code_region_size | |
| 1351 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1353 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1355 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1357 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1359 pop | |
| 1360 getlocal_WC_0 out@0 ( 421)[Li] | |
| 1362 putchilledstring "code_region_overhead: " | |
| 1364 putself | |
| 1365 putobject 13 | |
| 1367 getlocal_WC_0 code_region_overhead@4 | |
| 1369 getlocal_WC_0 stats@2 | |
| 1371 putobject :code_region_size | |
| 1373 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1375 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 1377 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1379 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1381 pop | |
| 1382 getlocal_WC_0 out@0 ( 423)[Li] | |
| 1384 putchilledstring "freed_code_size: " | |
| 1386 putself | |
| 1387 putobject 13 | |
| 1389 getlocal_WC_0 stats@2 | |
| 1391 putobject :freed_code_size | |
| 1393 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1395 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1397 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1399 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1401 pop | |
| 1402 getlocal_WC_0 stats@2 ( 424)[Li] | |
| 1404 putobject :yjit_alloc_size | |
| 1406 opt_send_without_block <calldata!mid:key?, argc:1, ARGS_SIMPLE> | |
| 1408 branchunless 1430 | |
| 1410 getlocal_WC_0 out@0 | |
| 1412 putchilledstring "yjit_alloc_size: " | |
| 1414 putself | |
| 1415 putobject 13 | |
| 1417 getlocal_WC_0 stats@2 | |
| 1419 putobject :yjit_alloc_size | |
| 1421 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1423 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1425 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1427 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1429 pop | |
| 1430 getlocal_WC_0 stats@2 ( 426)[Li] | |
| 1432 putobject :context_data_bytes | |
| 1434 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1436 getlocal_WC_0 stats@2 | |
| 1438 putobject :num_contexts_encoded | |
| 1440 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1442 opt_send_without_block <calldata!mid:fdiv, argc:1, ARGS_SIMPLE> | |
| 1444 setlocal_WC_0 bytes_per_context@5 | |
| 1446 getlocal_WC_0 out@0 ( 427)[Li] | |
| 1448 putchilledstring "context_data_bytes: " | |
| 1450 putself | |
| 1451 putobject 13 | |
| 1453 getlocal_WC_0 stats@2 | |
| 1455 putobject :context_data_bytes | |
| 1457 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1459 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1461 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1463 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1465 pop | |
| 1466 getlocal_WC_0 out@0 ( 428)[Li] | |
| 1468 putchilledstring "context_cache_bytes: " | |
| 1470 putself | |
| 1471 putobject 13 | |
| 1473 getlocal_WC_0 stats@2 | |
| 1475 putobject :context_cache_bytes | |
| 1477 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1479 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1481 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1483 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1485 pop | |
| 1486 getlocal_WC_0 out@0 ( 429)[Li] | |
| 1488 putchilledstring "num_contexts_encoded: " | |
| 1490 putself | |
| 1491 putobject 13 | |
| 1493 getlocal_WC_0 stats@2 | |
| 1495 putobject :num_contexts_encoded | |
| 1497 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1499 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1501 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1503 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1505 pop | |
| 1506 getlocal_WC_0 out@0 ( 430)[Li] | |
| 1508 putchilledstring "bytes_per_context: " | |
| 1510 putchilledstring "%13.2f" | |
| 1512 getlocal_WC_0 bytes_per_context@5 | |
| 1514 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1516 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1518 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1520 pop | |
| 1521 getlocal_WC_0 out@0 ( 431)[Li] | |
| 1523 putchilledstring "context_cache_hit_rate:" | |
| 1525 putself | |
| 1526 putobject 13 | |
| 1528 getlocal_WC_0 stats@2 | |
| 1530 putobject :context_cache_hits | |
| 1532 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1534 getlocal_WC_0 stats@2 | |
| 1536 putobject :num_contexts_encoded | |
| 1538 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1540 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 1542 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1544 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1546 pop | |
| 1547 getlocal_WC_0 out@0 ( 433)[Li] | |
| 1549 putchilledstring "live_page_count: " | |
| 1551 putself | |
| 1552 putobject 13 | |
| 1554 getlocal_WC_0 stats@2 | |
| 1556 putobject :live_page_count | |
| 1558 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1560 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1562 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1564 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1566 pop | |
| 1567 getlocal_WC_0 out@0 ( 434)[Li] | |
| 1569 putchilledstring "freed_page_count: " | |
| 1571 putself | |
| 1572 putobject 13 | |
| 1574 getlocal_WC_0 stats@2 | |
| 1576 putobject :freed_page_count | |
| 1578 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1580 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1582 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1584 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1586 pop | |
| 1587 getlocal_WC_0 out@0 ( 435)[Li] | |
| 1589 putchilledstring "code_gc_count: " | |
| 1591 putself | |
| 1592 putobject 13 | |
| 1594 getlocal_WC_0 stats@2 | |
| 1596 putobject :code_gc_count | |
| 1598 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1600 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1602 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1604 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1606 pop | |
| 1607 getlocal_WC_0 out@0 ( 436)[Li] | |
| 1609 putchilledstring "num_gc_obj_refs: " | |
| 1611 putself | |
| 1612 putobject 13 | |
| 1614 getlocal_WC_0 stats@2 | |
| 1616 putobject :num_gc_obj_refs | |
| 1618 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1620 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1622 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1624 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1626 pop | |
| 1627 getlocal_WC_0 out@0 ( 437)[Li] | |
| 1629 putchilledstring "object_shape_count: " | |
| 1631 putself | |
| 1632 putobject 13 | |
| 1634 getlocal_WC_0 stats@2 | |
| 1636 putobject :object_shape_count | |
| 1638 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1640 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1642 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1644 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1646 pop | |
| 1647 getlocal_WC_0 out@0 ( 438)[Li] | |
| 1649 putchilledstring "side_exit_count: " | |
| 1651 putself | |
| 1652 putobject 13 | |
| 1654 getlocal_WC_0 stats@2 | |
| 1656 putobject :side_exit_count | |
| 1658 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1660 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1662 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1664 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1666 pop | |
| 1667 getlocal_WC_0 out@0 ( 439)[Li] | |
| 1669 putchilledstring "total_exit_count: " | |
| 1671 putself | |
| 1672 putobject 13 | |
| 1674 getlocal_WC_0 stats@2 | |
| 1676 putobject :total_exit_count | |
| 1678 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1680 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1682 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1684 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1686 pop | |
| 1687 getlocal_WC_0 stats@2 ( 440)[Li] | |
| 1689 putobject :total_insns_count | |
| 1691 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1693 branchunless 1715 | |
| 1695 getlocal_WC_0 out@0 | |
| 1697 putchilledstring "total_insns_count: " | |
| 1699 putself | |
| 1700 putobject 13 | |
| 1702 getlocal_WC_0 stats@2 | |
| 1704 putobject :total_insns_count | |
| 1706 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1708 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1710 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1712 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1714 pop | |
| 1715 getlocal_WC_0 stats@2 ( 441)[Li] | |
| 1717 putobject :vm_insns_count | |
| 1719 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1721 branchunless 1743 | |
| 1723 getlocal_WC_0 out@0 | |
| 1725 putchilledstring "vm_insns_count: " | |
| 1727 putself | |
| 1728 putobject 13 | |
| 1730 getlocal_WC_0 stats@2 | |
| 1732 putobject :vm_insns_count | |
| 1734 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1736 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1738 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1740 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1742 pop | |
| 1743 getlocal_WC_0 out@0 ( 442)[Li] | |
| 1745 putchilledstring "yjit_insns_count: " | |
| 1747 putself | |
| 1748 putobject 13 | |
| 1750 getlocal_WC_0 stats@2 | |
| 1752 putobject :yjit_insns_count | |
| 1754 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1756 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 1758 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1760 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1762 pop | |
| 1763 getlocal_WC_0 stats@2 ( 443)[Li] | |
| 1765 putobject :ratio_in_yjit | |
| 1767 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1769 branchunless 1794 | |
| 1771 getlocal_WC_0 out@0 | |
| 1773 putchilledstring "ratio_in_yjit: " | |
| 1775 putchilledstring "%12.1f" | |
| 1777 getlocal_WC_0 stats@2 | |
| 1779 putobject :ratio_in_yjit | |
| 1781 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1783 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1785 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1787 putchilledstring "%" | |
| 1789 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1791 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1793 pop | |
| 1794 getlocal_WC_0 out@0 ( 444)[Li] | |
| 1796 putchilledstring "avg_len_in_yjit: " | |
| 1798 putchilledstring "%13.1f" | |
| 1800 getlocal_WC_0 stats@2 | |
| 1802 putobject :avg_len_in_yjit | |
| 1804 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1806 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1808 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 1810 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 1812 pop | |
| 1813 putself ( 446)[Li] | |
| 1814 getlocal_WC_0 stats@2 | |
| 1816 getlocal_WC_0 out@0 | |
| 1818 putchilledstring "exit_" | |
| 1820 opt_send_without_block <calldata!mid:print_sorted_exit_counts, argc:3, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000000008b010c>], FCALL|KWARG> | |
| 1822 pop | |
| 1823 putself ( 448)[Li] | |
| 1824 getlocal_WC_0 stats@2 | |
| 1826 putobject :cfunc_calls | |
| 1828 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1830 getlocal_WC_0 stats@2 | |
| 1832 putobject :num_send_cfunc | |
| 1834 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1836 getlocal_WC_0 out@0 | |
| 1838 putchilledstring "C" | |
| 1840 opt_send_without_block <calldata!mid:print_sorted_method_calls, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000001043273d0>], FCALL|KWARG> | |
| 1842 pop | |
| 1843 putself ( 449)[Li] | |
| 1844 getlocal_WC_0 stats@2 | |
| 1846 putobject :iseq_calls | |
| 1848 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1850 getlocal_WC_0 stats@2 | |
| 1852 putobject :num_send_iseq | |
| 1854 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 1856 getlocal_WC_0 out@0 | |
| 1858 putchilledstring "ISEQ" | |
| 1860 opt_send_without_block <calldata!mid:print_sorted_method_calls, argc:4, kw:[#<Symbol:0x00000000006a410c>,#<Symbol:0x00000001043273d0>], FCALL|KWARG> | |
| 1862 leave ( 450)[Re] | |
| == disasm: #<ISeq:print_sorted_method_calls@<internal:yjit>:452 (452,4)-(470,7)> | |
| local table (size: 11, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: 4@2, kwrest: -1]) | |
| [11] calls@0<Arg>[10] num_calls@1<Arg>[ 9] out@2 [ 8] type@3 [ 7] how_many@4 [ 6] left_pad@5 [ 5] ?@6 [ 4] pairs@7 [ 3] top_n_total@8[ 2] top_n_pct@9[ 1] count_width@10 | |
| 0000 getlocal_WC_0 calls@0 ( 453)[LiCa] | |
| 0002 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0004 branchunless 8 | |
| 0006 putnil | |
| 0007 leave [Re] | |
| 0008 getlocal_WC_0 calls@0 ( 456)[Li] | |
| 0010 send <calldata!mid:map, argc:0>, block in print_sorted_method_calls | |
| 0013 setlocal_WC_0 pairs@7 | |
| 0015 getlocal_WC_0 pairs@7 ( 457)[Li] | |
| 0017 send <calldata!mid:sort_by!, argc:0>, block in print_sorted_method_calls | |
| 0020 pop | |
| 0021 getlocal_WC_0 pairs@7 ( 458)[Li] | |
| 0023 putobject_INT2FIX_0_ | |
| 0024 getlocal_WC_0 how_many@4 | |
| 0026 newrange 1 | |
| 0028 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0030 setlocal_WC_0 pairs@7 | |
| 0032 getlocal_WC_0 pairs@7 ( 460)[Li] | |
| 0034 send <calldata!mid:sum, argc:0>, block in print_sorted_method_calls | |
| 0037 setlocal_WC_0 top_n_total@8 | |
| 0039 putobject 100.0 ( 461)[Li] | |
| 0041 getlocal_WC_0 top_n_total@8 | |
| 0043 opt_mult <calldata!mid:*, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0045 getlocal_WC_0 num_calls@1 | |
| 0047 opt_div <calldata!mid:/, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0049 setlocal_WC_0 top_n_pct@9 | |
| 0051 getlocal_WC_0 out@2 ( 463)[Li] | |
| 0053 putobject "Top-" | |
| 0055 getlocal_WC_0 pairs@7 | |
| 0057 opt_size <calldata!mid:size, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0059 dup | |
| 0060 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0062 anytostring | |
| 0063 putobject " most frequent " | |
| 0065 getlocal_WC_0 type@3 | |
| 0067 dup | |
| 0068 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0070 anytostring | |
| 0071 putobject " calls (" | |
| 0073 putchilledstring "%.1f" | |
| 0075 getlocal_WC_0 top_n_pct@9 | |
| 0077 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0079 dup | |
| 0080 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0082 anytostring | |
| 0083 putobject "% of " | |
| 0085 getlocal_WC_0 type@3 | |
| 0087 dup | |
| 0088 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0090 anytostring | |
| 0091 putobject " calls):" | |
| 0093 concatstrings 9 | |
| 0095 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0097 pop | |
| 0098 putself ( 465)[Li] | |
| 0099 putobject_INT2FIX_0_ | |
| 0100 getlocal_WC_0 pairs@7 | |
| 0102 putobject_INT2FIX_0_ | |
| 0103 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0105 putobject_INT2FIX_1_ | |
| 0106 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0108 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0110 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0112 setlocal_WC_0 count_width@10 | |
| 0114 getlocal_WC_0 pairs@7 ( 466)[Li] | |
| 0116 send <calldata!mid:each, argc:0>, block in print_sorted_method_calls | |
| 0119 leave ( 470)[Re] | |
| == disasm: #<ISeq:block in print_sorted_method_calls@<internal:yjit>:456 (456,24)-(456,40)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] k@0<Arg> [ 1] v@1<Arg> | |
| 0000 getlocal_WC_0 k@0 ( 456)[LiBc] | |
| 0002 getlocal_WC_0 v@1 | |
| 0004 newarray 2 | |
| 0006 leave [Br] | |
| == disasm: #<ISeq:block in print_sorted_method_calls@<internal:yjit>:457 (457,21)-(457,39)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] pair@0<AmbiguousArg> | |
| 0000 getlocal_WC_0 pair@0 ( 457)[LiBc] | |
| 0002 putobject_INT2FIX_1_ | |
| 0003 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0005 opt_send_without_block <calldata!mid:-@, argc:0, ARGS_SIMPLE> | |
| 0007 leave [Br] | |
| == disasm: #<ISeq:block in print_sorted_method_calls@<internal:yjit>:460 (460,30)-(460,53)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] name@0<Arg>[ 1] count@1<Arg> | |
| 0000 getlocal_WC_0 count@1 ( 460)[LiBc] | |
| 0002 leave [Br] | |
| == disasm: #<ISeq:block in print_sorted_method_calls@<internal:yjit>:466 (466,17)-(469,9)> | |
| local table (size: 3, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] name@0<Arg>[ 2] count@1<Arg>[ 1] padded_count@2 | |
| 0000 putself ( 467)[LiBc] | |
| 0001 getlocal_WC_1 count_width@10 | |
| 0003 getlocal_WC_0 count@1 | |
| 0005 getlocal_WC_1 num_calls@1 | |
| 0007 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0009 setlocal_WC_0 padded_count@2 | |
| 0011 getlocal_WC_1 out@2 ( 468)[Li] | |
| 0013 putobject " " | |
| 0015 getlocal_WC_0 padded_count@2 | |
| 0017 dup | |
| 0018 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0020 anytostring | |
| 0021 putobject ": " | |
| 0023 getlocal_WC_0 name@0 | |
| 0025 dup | |
| 0026 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0028 anytostring | |
| 0029 concatstrings 4 | |
| 0031 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0033 leave ( 469)[Br] | |
| == disasm: #<ISeq:print_sorted_exit_counts@<internal:yjit>:472 (472,4)-(498,7)> | |
| local table (size: 11, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 4@2, kwrest: -1]) | |
| [11] stats@0<Arg>[10] out@1 [ 9] prefix@2 [ 8] how_many@3 [ 7] left_pad@4 [ 6] ?@5 [ 5] total_exits@6[ 4] exits@7 [ 3] top_n_total@8[ 2] top_n_exit_pct@9[ 1] count_width@10 | |
| 0000 getlocal_WC_0 stats@0 ( 473)[LiCa] | |
| 0002 putobject :side_exit_count | |
| 0004 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 setlocal_WC_0 total_exits@6 | |
| 0008 getlocal_WC_0 total_exits@6 ( 475)[Li] | |
| 0010 putobject_INT2FIX_0_ | |
| 0011 opt_gt <calldata!mid:>, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0013 branchunless 109 | |
| 0015 newarray 0 ( 476)[Li] | |
| 0017 setlocal_WC_0 exits@7 | |
| 0019 getlocal_WC_0 stats@0 ( 477)[Li] | |
| 0021 send <calldata!mid:each, argc:0>, block in print_sorted_exit_counts | |
| 0024 pop | |
| 0025 getlocal_WC_0 exits@7 ( 483)[Li] | |
| 0027 send <calldata!mid:select, argc:0>, block in print_sorted_exit_counts | |
| 0030 getlocal_WC_0 how_many@3 | |
| 0032 send <calldata!mid:max_by, argc:1>, block in print_sorted_exit_counts | |
| 0035 setlocal_WC_0 exits@7 | |
| 0037 getlocal_WC_0 exits@7 ( 485)[Li] | |
| 0039 send <calldata!mid:sum, argc:0>, block in print_sorted_exit_counts | |
| 0042 setlocal_WC_0 top_n_total@8 | |
| 0044 putobject 100.0 ( 486)[Li] | |
| 0046 getlocal_WC_0 top_n_total@8 | |
| 0048 opt_mult <calldata!mid:*, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0050 getlocal_WC_0 total_exits@6 | |
| 0052 opt_div <calldata!mid:/, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0054 setlocal_WC_0 top_n_exit_pct@9 | |
| 0056 getlocal_WC_0 out@1 ( 488)[Li] | |
| 0058 putobject "Top-" | |
| 0060 getlocal_WC_0 exits@7 | |
| 0062 opt_size <calldata!mid:size, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0064 dup | |
| 0065 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0067 anytostring | |
| 0068 putobject " most frequent exit ops (" | |
| 0070 putchilledstring "%.1f" | |
| 0072 getlocal_WC_0 top_n_exit_pct@9 | |
| 0074 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0076 dup | |
| 0077 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0079 anytostring | |
| 0080 putobject "% of exits):" | |
| 0082 concatstrings 5 | |
| 0084 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0086 pop | |
| 0087 putself ( 490)[Li] | |
| 0088 putobject_INT2FIX_0_ | |
| 0089 getlocal_WC_0 exits@7 | |
| 0091 putobject_INT2FIX_0_ | |
| 0092 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0094 putobject_INT2FIX_1_ | |
| 0095 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0097 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0099 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0101 setlocal_WC_0 count_width@10 | |
| 0103 getlocal_WC_0 exits@7 ( 491)[Li] | |
| 0105 send <calldata!mid:each, argc:0>, block in print_sorted_exit_counts | |
| 0108 leave ( 498)[Re] | |
| 0109 getlocal_WC_0 out@1 ( 496)[Li] | |
| 0111 putchilledstring "total_exits: " | |
| 0113 putself | |
| 0114 putobject 13 | |
| 0116 getlocal_WC_0 total_exits@6 | |
| 0118 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0120 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0122 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0124 leave ( 498)[Re] | |
| == disasm: #<ISeq:block in print_sorted_exit_counts@<internal:yjit>:477 (477,19)-(481,11)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] k@0<Arg> [ 1] v@1<Arg> | |
| 0000 getlocal_WC_0 k@0 ( 478)[LiBc] | |
| 0002 getlocal_WC_1 prefix@2 | |
| 0004 opt_send_without_block <calldata!mid:start_with?, argc:1, ARGS_SIMPLE> | |
| 0006 branchunless 25 | |
| 0008 getlocal_WC_1 exits@7 ( 479)[Li] | |
| 0010 getlocal_WC_0 k@0 | |
| 0012 opt_send_without_block <calldata!mid:to_s, argc:0, ARGS_SIMPLE> | |
| 0014 getlocal_WC_1 prefix@2 | |
| 0016 opt_send_without_block <calldata!mid:delete_prefix, argc:1, ARGS_SIMPLE> | |
| 0018 getlocal_WC_0 v@1 | |
| 0020 newarray 2 | |
| 0022 opt_send_without_block <calldata!mid:push, argc:1, ARGS_SIMPLE> | |
| 0024 leave ( 481)[Br] | |
| 0025 putnil ( 479) | |
| 0026 leave ( 481)[Br] | |
| == disasm: #<ISeq:block in print_sorted_exit_counts@<internal:yjit>:483 (483,29)-(483,57)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] _name@0<Arg>[ 1] count@1<Arg> | |
| 0000 getlocal_WC_0 count@1 ( 483)[LiBc] | |
| 0002 putobject_INT2FIX_0_ | |
| 0003 opt_gt <calldata!mid:>, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0005 leave [Br] | |
| == disasm: #<ISeq:block in print_sorted_exit_counts@<internal:yjit>:483 (483,75)-(483,99)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] _name@0<Arg>[ 1] count@1<Arg> | |
| 0000 getlocal_WC_0 count@1 ( 483)[LiBc] | |
| 0002 leave [Br] | |
| == disasm: #<ISeq:block in print_sorted_exit_counts@<internal:yjit>:485 (485,32)-(485,55)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] name@0<Arg>[ 1] count@1<Arg> | |
| 0000 getlocal_WC_0 count@1 ( 485)[LiBc] | |
| 0002 leave [Br] | |
| == disasm: #<ISeq:block in print_sorted_exit_counts@<internal:yjit>:491 (491,19)-(494,11)> | |
| local table (size: 3, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] name@0<Arg>[ 2] count@1<Arg>[ 1] padded_count@2 | |
| 0000 putself ( 492)[LiBc] | |
| 0001 getlocal_WC_1 count_width@10 | |
| 0003 getlocal_WC_0 count@1 | |
| 0005 getlocal_WC_1 total_exits@6 | |
| 0007 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0009 setlocal_WC_0 padded_count@2 | |
| 0011 getlocal_WC_1 out@1 ( 493)[Li] | |
| 0013 putobject " " | |
| 0015 getlocal_WC_0 padded_count@2 | |
| 0017 dup | |
| 0018 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0020 anytostring | |
| 0021 putobject ": " | |
| 0023 getlocal_WC_0 name@0 | |
| 0025 dup | |
| 0026 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0028 anytostring | |
| 0029 concatstrings 4 | |
| 0031 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0033 leave ( 494)[Br] | |
| == disasm: #<ISeq:print_counters@<internal:yjit>:500 (500,4)-(525,7)> | |
| local table (size: 8, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 4@3, kwrest: -1]) | |
| [ 8] counters@0<Arg>[ 7] out@1 [ 6] prefix@2 [ 5] prompt@3 [ 4] optional@4 [ 3] ?@5 [ 2] longest_name_length@6[ 1] total@7 | |
| 0000 getlocal_WC_0 counters@0 ( 501)[LiCa] | |
| 0002 send <calldata!mid:filter, argc:0>, block in print_counters | |
| 0005 setlocal_WC_0 counters@0 | |
| 0007 getlocal_WC_0 counters@0 ( 502)[Li] | |
| 0009 send <calldata!mid:filter!, argc:0>, block in print_counters | |
| 0012 pop | |
| 0013 getlocal_WC_0 counters@0 ( 503)[Li] | |
| 0015 send <calldata!mid:transform_keys!, argc:0>, block in print_counters | |
| 0018 pop | |
| 0019 getlocal_WC_0 counters@0 ( 505)[Li] | |
| 0021 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0023 branchunless 47 | |
| 0025 getlocal_WC_0 optional@4 ( 506)[Li] | |
| 0027 branchif 43 | |
| 0029 getlocal_WC_0 out@1 ( 507)[Li] | |
| 0031 getlocal_WC_0 prompt@3 | |
| 0033 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0035 pop | |
| 0036 getlocal_WC_0 out@1 ( 508)[Li] | |
| 0038 putchilledstring " (all relevant counters are zero)" | |
| 0040 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0042 pop | |
| 0043 putnil ( 510)[Li] | |
| 0044 leave [Re] | |
| 0045 jump 54 ( 505) | |
| 0047 getlocal_WC_0 out@1 ( 512)[Li] | |
| 0049 getlocal_WC_0 prompt@3 | |
| 0051 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0053 pop | |
| 0054 getlocal_WC_0 counters@0 ( 515)[Li] | |
| 0056 opt_send_without_block <calldata!mid:to_a, argc:0, ARGS_SIMPLE> | |
| 0058 setlocal_WC_0 counters@0 | |
| 0060 getlocal_WC_0 counters@0 ( 516)[Li] | |
| 0062 send <calldata!mid:sort_by!, argc:0>, block in print_counters | |
| 0065 pop | |
| 0066 getlocal_WC_0 counters@0 ( 517)[Li] | |
| 0068 send <calldata!mid:max_by, argc:0>, block in print_counters | |
| 0071 opt_send_without_block <calldata!mid:first, argc:0, ARGS_SIMPLE> | |
| 0073 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0075 setlocal_WC_0 longest_name_length@6 | |
| 0077 getlocal_WC_0 counters@0 ( 518)[Li] | |
| 0079 send <calldata!mid:sum, argc:0>, block in print_counters | |
| 0082 setlocal_WC_0 total@7 | |
| 0084 getlocal_WC_0 counters@0 ( 520)[Li] | |
| 0086 send <calldata!mid:reverse_each, argc:0>, block in print_counters | |
| 0089 leave ( 525)[Re] | |
| == disasm: #<ISeq:block in print_counters@<internal:yjit>:501 (501,33)-(501,69)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] key@0<Arg> [ 1] _@1<Arg> | |
| 0000 getlocal_WC_0 key@0 ( 501)[LiBc] | |
| 0002 getlocal_WC_1 prefix@2 | |
| 0004 opt_send_without_block <calldata!mid:start_with?, argc:1, ARGS_SIMPLE> | |
| 0006 leave [Br] | |
| == disasm: #<ISeq:block in print_counters@<internal:yjit>:502 (502,23)-(502,48)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] _@0<Arg> [ 1] value@1<Arg> | |
| 0000 getlocal_WC_0 value@1 ( 502)[LiBc] | |
| 0002 putobject_INT2FIX_0_ | |
| 0003 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 leave [Br] | |
| == disasm: #<ISeq:block in print_counters@<internal:yjit>:503 (503,31)-(503,71)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] key@0<AmbiguousArg> | |
| 0000 getlocal_WC_0 key@0 ( 503)[LiBc] | |
| 0002 opt_send_without_block <calldata!mid:to_s, argc:0, ARGS_SIMPLE> | |
| 0004 getlocal_WC_1 prefix@2 | |
| 0006 opt_send_without_block <calldata!mid:delete_prefix, argc:1, ARGS_SIMPLE> | |
| 0008 leave [Br] | |
| == disasm: #<ISeq:block in print_counters@<internal:yjit>:516 (516,24)-(516,62)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] ?@0<AmbiguousArg>[ 2] _@1 [ 1] counter_value@2 | |
| 0000 getlocal_WC_0 ?@0 ( 516) | |
| 0002 expandarray 2, 0 | |
| 0005 setlocal_WC_0 _@1 | |
| 0007 setlocal_WC_0 counter_value@2 | |
| 0009 nop [Bc] | |
| 0010 getlocal_WC_0 counter_value@2[Li] | |
| 0012 leave [Br] | |
| == disasm: #<ISeq:block in print_counters@<internal:yjit>:517 (517,44)-(517,71)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] ?@0<AmbiguousArg>[ 2] name@1 [ 1] _@2 | |
| 0000 getlocal_WC_0 ?@0 ( 517) | |
| 0002 expandarray 2, 0 | |
| 0005 setlocal_WC_0 name@1 | |
| 0007 setlocal_WC_0 _@2 | |
| 0009 nop [Bc] | |
| 0010 getlocal_WC_0 name@1[Li] | |
| 0012 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0014 leave [Br] | |
| == disasm: #<ISeq:block in print_counters@<internal:yjit>:518 (518,27)-(518,65)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] ?@0<AmbiguousArg>[ 2] _@1 [ 1] counter_value@2 | |
| 0000 getlocal_WC_0 ?@0 ( 518) | |
| 0002 expandarray 2, 0 | |
| 0005 setlocal_WC_0 _@1 | |
| 0007 setlocal_WC_0 counter_value@2 | |
| 0009 nop [Bc] | |
| 0010 getlocal_WC_0 counter_value@2[Li] | |
| 0012 leave [Br] | |
| == disasm: #<ISeq:block in print_counters@<internal:yjit>:520 (520,28)-(524,9)> | |
| local table (size: 5, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 5] ?@0<AmbiguousArg>[ 4] name@1 [ 3] value@2 [ 2] padded_name@3[ 1] padded_count@4 | |
| 0000 getlocal_WC_0 ?@0 ( 520) | |
| 0002 expandarray 2, 0 | |
| 0005 setlocal_WC_0 name@1 | |
| 0007 setlocal_WC_0 value@2 | |
| 0009 nop [Bc] | |
| 0010 getlocal_WC_0 name@1 ( 521)[Li] | |
| 0012 getlocal_WC_1 longest_name_length@6 | |
| 0014 putchilledstring " " | |
| 0016 opt_send_without_block <calldata!mid:rjust, argc:2, ARGS_SIMPLE> | |
| 0018 setlocal_WC_0 padded_name@3 | |
| 0020 putself ( 522)[Li] | |
| 0021 putobject 10 | |
| 0023 getlocal_WC_0 value@2 | |
| 0025 getlocal_WC_1 total@7 | |
| 0027 opt_send_without_block <calldata!mid:format_number_pct, argc:3, FCALL|ARGS_SIMPLE> | |
| 0029 setlocal_WC_0 padded_count@4 | |
| 0031 getlocal_WC_1 out@1 ( 523)[Li] | |
| 0033 putobject " " | |
| 0035 getlocal_WC_0 padded_name@3 | |
| 0037 dup | |
| 0038 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0040 anytostring | |
| 0041 putobject ": " | |
| 0043 getlocal_WC_0 padded_count@4 | |
| 0045 dup | |
| 0046 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0048 anytostring | |
| 0049 concatstrings 4 | |
| 0051 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0053 leave ( 524)[Br] | |
| == disasm: #<ISeq:format_number@<internal:yjit>:528 (528,4)-(533,7)> | |
| local table (size: 4, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 4] pad@0<Arg> [ 3] number@1<Arg>[ 2] s@2 [ 1] i@3 | |
| 0000 getlocal_WC_0 number@1 ( 529)[LiCa] | |
| 0002 opt_send_without_block <calldata!mid:to_s, argc:0, ARGS_SIMPLE> | |
| 0004 setlocal_WC_0 s@2 | |
| 0006 getlocal_WC_0 s@2 ( 530)[Li] | |
| 0008 putchilledstring "." | |
| 0010 opt_send_without_block <calldata!mid:index, argc:1, ARGS_SIMPLE> | |
| 0012 dup | |
| 0013 branchif 20 | |
| 0015 pop | |
| 0016 getlocal_WC_0 s@2 | |
| 0018 opt_size <calldata!mid:size, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0020 setlocal_WC_0 i@3 | |
| 0022 jump 44 ( 531)[Li] | |
| 0024 putnil | |
| 0025 pop | |
| 0026 jump 44 | |
| 0028 getlocal_WC_0 s@2 | |
| 0030 getlocal_WC_0 i@3 | |
| 0032 putobject 3 | |
| 0034 opt_minus <calldata!mid:-, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0036 dup | |
| 0037 setlocal_WC_0 i@3 | |
| 0039 putchilledstring "," | |
| 0041 opt_send_without_block <calldata!mid:insert, argc:2, ARGS_SIMPLE> | |
| 0043 pop | |
| 0044 getlocal_WC_0 i@3 | |
| 0046 putobject 3 | |
| 0048 opt_gt <calldata!mid:>, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0050 branchif 28 | |
| 0052 putnil | |
| 0053 pop | |
| 0054 getlocal_WC_0 s@2 ( 532)[Li] | |
| 0056 getlocal_WC_0 pad@0 | |
| 0058 putchilledstring " " | |
| 0060 opt_send_without_block <calldata!mid:rjust, argc:2, ARGS_SIMPLE> | |
| 0062 leave ( 533)[Re] | |
| == disasm: #<ISeq:format_number_pct@<internal:yjit>:536 (536,4)-(546,7)> | |
| local table (size: 6, argc: 3 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 6] pad@0<Arg> [ 5] number@1<Arg>[ 4] total@2<Arg>[ 3] padded_count@3[ 2] percentage@4[ 1] formatted_pct@5 | |
| 0000 putself ( 537)[LiCa] | |
| 0001 getlocal_WC_0 pad@0 | |
| 0003 getlocal_WC_0 number@1 | |
| 0005 opt_send_without_block <calldata!mid:format_number, argc:2, FCALL|ARGS_SIMPLE> | |
| 0007 setlocal_WC_0 padded_count@3 | |
| 0009 getlocal_WC_0 total@2 ( 539)[Li] | |
| 0011 putobject_INT2FIX_0_ | |
| 0012 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0015 branchunless 56 | |
| 0017 getlocal_WC_0 number@1 ( 540)[Li] | |
| 0019 getlocal_WC_0 total@2 | |
| 0021 opt_send_without_block <calldata!mid:fdiv, argc:1, ARGS_SIMPLE> | |
| 0023 putobject 100 | |
| 0025 opt_mult <calldata!mid:*, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0027 setlocal_WC_0 percentage@4 | |
| 0029 putchilledstring "%4.1f%%" ( 541)[Li] | |
| 0031 getlocal_WC_0 percentage@4 | |
| 0033 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0035 setlocal_WC_0 formatted_pct@5 | |
| 0037 getlocal_WC_0 padded_count@3 ( 542)[Li] | |
| 0039 dup | |
| 0040 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0042 anytostring | |
| 0043 putobject " (" | |
| 0045 getlocal_WC_0 formatted_pct@5 | |
| 0047 dup | |
| 0048 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0050 anytostring | |
| 0051 putobject ")" | |
| 0053 concatstrings 4 | |
| 0055 leave ( 546)[Re] | |
| 0056 putobject "" ( 544)[Li] | |
| 0058 getlocal_WC_0 padded_count@3 | |
| 0060 dup | |
| 0061 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0063 anytostring | |
| 0064 concatstrings 2 | |
| 0066 leave ( 546)[Re] | |
| == disasm: #<ISeq:<internal:zjit>@<internal:zjit>:9 (9,0)-(289,3)> | |
| 0000 opt_getconstant_path <ic:0 RubyVM> ( 9)[Li] | |
| 0002 putnil | |
| 0003 defineclass :ZJIT, <module:ZJIT>, 10 | |
| 0007 pop | |
| 0008 opt_getconstant_path <ic:1 RubyVM::ZJIT> ( 19)[Li] | |
| 0010 putnil | |
| 0011 defineclass :singletonclass, singleton class, 1 | |
| 0015 leave | |
| == disasm: #<ISeq:<module:ZJIT>@<internal:zjit>:9 (9,0)-(17,3)> | |
| 0000 opt_invokebuiltin_delegate <builtin!rb_zjit_print_stats_p/0>, 0( 11)[LiCl] | |
| 0003 branchunless 10 | |
| 0005 putself ( 12)[Li] | |
| 0006 send <calldata!mid:at_exit, argc:0, FCALL>, block in <module:ZJIT> | |
| 0009 pop | |
| 0010 opt_invokebuiltin_delegate <builtin!rb_zjit_trace_exit_locations_enabled_p/0>, 0( 14)[Li] | |
| 0013 branchunless 20 | |
| 0015 putself ( 15)[Li] | |
| 0016 send <calldata!mid:at_exit, argc:0, FCALL>, block in <module:ZJIT> | |
| 0019 leave ( 17)[En] | |
| 0020 putnil ( 15) | |
| 0021 leave ( 17)[En] | |
| == disasm: #<ISeq:block in <module:ZJIT>@<internal:zjit>:12 (12,12)-(12,27)> | |
| 0000 putself ( 12)[LiBc] | |
| 0001 opt_send_without_block <calldata!mid:print_stats, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 leave [Br] | |
| == disasm: #<ISeq:block in <module:ZJIT>@<internal:zjit>:15 (15,12)-(15,30)> | |
| 0000 putself ( 15)[LiBc] | |
| 0001 opt_send_without_block <calldata!mid:dump_locations, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 leave [Br] | |
| == disasm: #<ISeq:singleton class@<internal:zjit>:19 (19,0)-(289,3)> | |
| 0000 definemethod :enabled?, enabled? ( 21)[Li] | |
| 0003 definemethod :trace_exit_locations_enabled?, trace_exit_locations_enabled?( 26)[Li] | |
| 0006 definemethod :exit_locations, exit_locations( 34)[Li] | |
| 0009 definemethod :dump_exit_locations, dump_exit_locations( 126)[Li] | |
| 0012 definemethod :stats_enabled?, stats_enabled?( 138)[Li] | |
| 0015 definemethod :stats, stats ( 143)[Li] | |
| 0018 definemethod :reset_stats!, reset_stats!( 148)[Li] | |
| 0021 definemethod :stats_string, stats_string( 153)[Li] | |
| 0024 definemethod :assert_compiles, assert_compiles( 213)[Li] | |
| 0027 putself ( 218)[Li] | |
| 0028 opt_send_without_block <calldata!mid:private, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0030 pop | |
| 0031 definemethod :print_counters, print_counters( 220)[Li] | |
| 0034 definemethod :print_counters_with_prefix, print_counters_with_prefix( 247)[Li] | |
| 0037 definemethod :number_with_delimiter, number_with_delimiter( 269)[Li] | |
| 0040 definemethod :print_stats, print_stats ( 277)[Li] | |
| 0043 definemethod :dump_locations, dump_locations( 281)[Li] | |
| 0046 putobject :dump_locations | |
| 0048 leave | |
| == disasm: #<ISeq:enabled?@<internal:zjit>:21 (21,2)-(23,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi22/0>, 0 ( 22)[LiCa] | |
| 0003 leave ( 23)[Re] | |
| == disasm: #<ISeq:trace_exit_locations_enabled?@<internal:zjit>:26 (26,2)-(28,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_zjit_trace_exit_locations_enabled_p/0>, 0( 27)[LiCa] | |
| 0003 leave ( 28)[Re] | |
| == disasm: #<ISeq:exit_locations@<internal:zjit>:34 (34,2)-(110,5)> | |
| local table (size: 12, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [12] results@0 [11] raw_samples@1[10] line_samples@2[ 9] frames@3 [ 8] samples_count@4[ 7] frame_template@5[ 6] i@6 [ 5] stack_length@7[ 4] sample_count@8[ 3] prev_frame_id@9[ 2] top_frame_id@10[ 1] top_frame_line@11 | |
| 0000 putself ( 35)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:trace_exit_locations_enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 7 | |
| 0005 putnil | |
| 0006 leave [Re] | |
| 0007 opt_invokebuiltin_delegate <builtin!rb_zjit_get_exit_locations/0>, 0( 37)[Li] | |
| 0010 setlocal_WC_0 results@0 | |
| 0012 getlocal_WC_0 results@0 ( 38)[Li] | |
| 0014 putobject :raw | |
| 0016 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0018 setlocal_WC_0 raw_samples@1 | |
| 0020 getlocal_WC_0 results@0 ( 39)[Li] | |
| 0022 putobject :lines | |
| 0024 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0026 setlocal_WC_0 line_samples@2 | |
| 0028 getlocal_WC_0 results@0 ( 40)[Li] | |
| 0030 putobject :frames | |
| 0032 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0034 setlocal_WC_0 frames@3 | |
| 0036 putobject_INT2FIX_0_ ( 41)[Li] | |
| 0037 setlocal_WC_0 samples_count@4 | |
| 0039 duphash {samples: 0, total_samples: 0}( 44)[Li] | |
| 0041 putspecialobject 1 | |
| 0043 swap | |
| 0044 putobject :edges | |
| 0046 newhash 0 | |
| 0048 putobject :name | |
| 0050 putself | |
| 0051 opt_send_without_block <calldata!mid:name, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0053 putobject :file | |
| 0055 putchilledstring "nonexistent.def" | |
| 0057 putobject :line | |
| 0059 putnil | |
| 0060 putobject :lines | |
| 0062 newhash 0 | |
| 0064 opt_send_without_block <calldata!mid:core#hash_merge_ptr, argc:11, ARGS_SIMPLE> | |
| 0066 setlocal_WC_0 frame_template@5 | |
| 0068 opt_getconstant_path <ic:0 RubyVM::INSTRUCTION_NAMES>( 47)[Li] | |
| 0070 send <calldata!mid:each_with_index, argc:0>, block in exit_locations | |
| 0073 pop | |
| 0074 putobject_INT2FIX_0_ ( 60)[Li] | |
| 0075 setlocal_WC_0 i@6 | |
| 0077 jump 248 ( 61)[Li] | |
| 0079 putnil | |
| 0080 pop | |
| 0081 jump 248 | |
| 0083 getlocal_WC_0 raw_samples@1 ( 62)[Li] | |
| 0085 getlocal_WC_0 i@6 | |
| 0087 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0089 setlocal_WC_0 stack_length@7 | |
| 0091 getlocal_WC_0 i@6 ( 63)[Li] | |
| 0093 putobject_INT2FIX_1_ | |
| 0094 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0096 setlocal_WC_0 i@6 | |
| 0098 getlocal_WC_0 raw_samples@1 ( 65)[Li] | |
| 0100 getlocal_WC_0 i@6 | |
| 0102 getlocal_WC_0 stack_length@7 | |
| 0104 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0106 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0108 setlocal_WC_0 sample_count@8 | |
| 0110 putnil ( 67)[Li] | |
| 0111 setlocal_WC_0 prev_frame_id@9 | |
| 0113 getlocal_WC_0 stack_length@7 ( 68)[Li] | |
| 0115 send <calldata!mid:times, argc:0>, block in exit_locations | |
| 0118 pop | |
| 0119 getlocal_WC_0 i@6 ( 87)[Li] | |
| 0121 getlocal_WC_0 stack_length@7 | |
| 0123 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0125 setlocal_WC_0 i@6 | |
| 0127 getlocal_WC_0 prev_frame_id@9 ( 89)[Li] | |
| 0129 setlocal_WC_0 top_frame_id@10 | |
| 0131 putobject_INT2FIX_1_ ( 90)[Li] | |
| 0132 setlocal_WC_0 top_frame_line@11 | |
| 0134 getlocal_WC_0 frames@3 ( 92)[Li] | |
| 0136 getlocal_WC_0 top_frame_id@10 | |
| 0138 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0140 putobject :samples | |
| 0142 dupn 2 | |
| 0144 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0146 getlocal_WC_0 sample_count@8 | |
| 0148 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0150 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0152 pop | |
| 0153 getlocal_WC_0 frames@3 ( 93)[Li] | |
| 0155 getlocal_WC_0 top_frame_id@10 | |
| 0157 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0159 putobject :lines | |
| 0161 dupn 2 | |
| 0163 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0165 dup | |
| 0166 branchif 176 | |
| 0168 pop | |
| 0169 newhash 0 | |
| 0171 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0173 pop | |
| 0174 jump 178 | |
| 0176 adjuststack 3 | |
| 0178 getlocal_WC_0 frames@3 ( 94)[Li] | |
| 0180 getlocal_WC_0 top_frame_id@10 | |
| 0182 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0184 putobject :lines | |
| 0186 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0188 getlocal_WC_0 top_frame_line@11 | |
| 0190 dupn 2 | |
| 0192 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0194 dup | |
| 0195 branchif 205 | |
| 0197 pop | |
| 0198 duparray [0, 0] | |
| 0200 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0202 pop | |
| 0203 jump 207 | |
| 0205 adjuststack 3 | |
| 0207 getlocal_WC_0 frames@3 ( 95)[Li] | |
| 0209 getlocal_WC_0 top_frame_id@10 | |
| 0211 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0213 putobject :lines | |
| 0215 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0217 getlocal_WC_0 top_frame_line@11 | |
| 0219 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0221 putobject_INT2FIX_1_ | |
| 0222 dupn 2 | |
| 0224 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0226 getlocal_WC_0 sample_count@8 | |
| 0228 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0230 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0232 pop | |
| 0233 getlocal_WC_0 samples_count@4 ( 97)[Li] | |
| 0235 getlocal_WC_0 sample_count@8 | |
| 0237 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0239 setlocal_WC_0 samples_count@4 | |
| 0241 getlocal_WC_0 i@6 ( 98)[Li] | |
| 0243 putobject_INT2FIX_1_ | |
| 0244 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0246 setlocal_WC_0 i@6 | |
| 0248 getlocal_WC_0 i@6 ( 61) | |
| 0250 getlocal_WC_0 raw_samples@1 | |
| 0252 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0254 opt_lt <calldata!mid:<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0256 branchif 83 | |
| 0258 putnil | |
| 0259 pop | |
| 0260 getlocal_WC_0 results@0 ( 101)[Li] | |
| 0262 putobject :samples | |
| 0264 getlocal_WC_0 samples_count@4 | |
| 0266 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0268 pop | |
| 0269 getlocal_WC_0 results@0 ( 104)[Li] | |
| 0271 putobject :missed_samples | |
| 0273 putobject_INT2FIX_0_ | |
| 0274 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0276 pop | |
| 0277 getlocal_WC_0 results@0 ( 105)[Li] | |
| 0279 putobject :gc_samples | |
| 0281 putobject_INT2FIX_0_ | |
| 0282 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0284 pop | |
| 0285 getlocal_WC_0 results@0 ( 107)[Li] | |
| 0287 putobject :frames | |
| 0289 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0291 send <calldata!mid:reject!, argc:0>, block in exit_locations | |
| 0294 pop | |
| 0295 getlocal_WC_0 results@0 ( 109)[Li] | |
| 0297 leave ( 110)[Re] | |
| == disasm: #<ISeq:block in exit_locations@<internal:zjit>:47 (47,46)-(49,7)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] name@0<Arg>[ 1] frame_id@1<Arg> | |
| 0000 putnil ( 48)[LiBc] | |
| 0001 getlocal_WC_1 frames@3 | |
| 0003 getlocal_WC_0 frame_id@1 | |
| 0005 getlocal_WC_1 frame_template@5 | |
| 0007 opt_send_without_block <calldata!mid:dup, argc:0, ARGS_SIMPLE> | |
| 0009 send <calldata!mid:tap, argc:0>, block (2 levels) in exit_locations | |
| 0012 setn 3 | |
| 0014 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0016 pop | |
| 0017 leave ( 49)[Br] | |
| == disasm: #<ISeq:block (2 levels) in exit_locations@<internal:zjit>:48 (48,48)-(48,71)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] h@0<AmbiguousArg> | |
| 0000 putnil ( 48)[LiBc] | |
| 0001 getlocal_WC_0 h@0 | |
| 0003 putobject :name | |
| 0005 getlocal_WC_1 name@0 | |
| 0007 setn 3 | |
| 0009 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0011 pop | |
| 0012 leave [Br] | |
| == disasm: #<ISeq:block in exit_locations@<internal:zjit>:68 (68,25)-(85,9)> | |
| local table (size: 4, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 4] idx@0<AmbiguousArg>[ 3] frame_id@1 [ 2] prev_frame@2[ 1] frame_info@3 | |
| 0000 getlocal_WC_0 idx@0 ( 69)[LiBc] | |
| 0002 getlocal_WC_1 i@6 | |
| 0004 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 setlocal_WC_0 idx@0 | |
| 0008 getlocal_WC_1 raw_samples@1 ( 70)[Li] | |
| 0010 getlocal_WC_0 idx@0 | |
| 0012 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0014 setlocal_WC_0 frame_id@1 | |
| 0016 getlocal_WC_1 prev_frame_id@9 ( 72)[Li] | |
| 0018 branchunless 71 | |
| 0020 getlocal_WC_1 frames@3 ( 73)[Li] | |
| 0022 getlocal_WC_1 prev_frame_id@9 | |
| 0024 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0026 setlocal_WC_0 prev_frame@2 | |
| 0028 getlocal_WC_0 prev_frame@2 ( 74)[Li] | |
| 0030 putobject :edges | |
| 0032 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0034 getlocal_WC_0 frame_id@1 | |
| 0036 dupn 2 | |
| 0038 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0040 dup | |
| 0041 branchif 50 | |
| 0043 pop | |
| 0044 putobject_INT2FIX_0_ | |
| 0045 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0047 pop | |
| 0048 jump 52 | |
| 0050 adjuststack 3 | |
| 0052 getlocal_WC_0 prev_frame@2 ( 75)[Li] | |
| 0054 putobject :edges | |
| 0056 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0058 getlocal_WC_0 frame_id@1 | |
| 0060 dupn 2 | |
| 0062 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0064 getlocal_WC_1 sample_count@8 | |
| 0066 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0068 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0070 pop | |
| 0071 getlocal_WC_1 frames@3 ( 78)[Li] | |
| 0073 getlocal_WC_0 frame_id@1 | |
| 0075 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0077 setlocal_WC_0 frame_info@3 | |
| 0079 getlocal_WC_0 frame_info@3 ( 79)[Li] | |
| 0081 putobject :total_samples | |
| 0083 dupn 2 | |
| 0085 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0087 getlocal_WC_1 sample_count@8 | |
| 0089 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0091 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0093 pop | |
| 0094 getlocal_WC_0 frame_info@3 ( 81)[Li] | |
| 0096 putobject :lines | |
| 0098 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0100 getlocal_WC_1 line_samples@2 | |
| 0102 getlocal_WC_0 idx@0 | |
| 0104 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0106 dupn 2 | |
| 0108 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0110 dup | |
| 0111 branchif 121 | |
| 0113 pop | |
| 0114 duparray [0, 0] | |
| 0116 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0118 pop | |
| 0119 jump 123 | |
| 0121 adjuststack 3 | |
| 0123 getlocal_WC_0 frame_info@3 ( 82)[Li] | |
| 0125 putobject :lines | |
| 0127 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0129 getlocal_WC_1 line_samples@2 | |
| 0131 getlocal_WC_0 idx@0 | |
| 0133 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0135 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0137 putobject_INT2FIX_0_ | |
| 0138 dupn 2 | |
| 0140 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0142 getlocal_WC_1 sample_count@8 | |
| 0144 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0146 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0148 pop | |
| 0149 getlocal_WC_0 frame_id@1 ( 84)[Li] | |
| 0151 dup | |
| 0152 setlocal_WC_1 prev_frame_id@9 | |
| 0154 leave ( 85)[Br] | |
| == disasm: #<ISeq:block in exit_locations@<internal:zjit>:107 (107,29)-(107,56)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] k@0<Arg> [ 1] v@1<Arg> | |
| 0000 getlocal_WC_0 v@1 ( 107)[LiBc] | |
| 0002 putobject :samples | |
| 0004 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 putobject_INT2FIX_0_ | |
| 0007 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0009 leave [Br] | |
| == disasm: #<ISeq:dump_exit_locations@<internal:zjit>:126 (126,2)-(135,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] filename@0<Arg> | |
| 0000 putself ( 127)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:trace_exit_locations_enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 13 | |
| 0005 putself ( 128)[Li] | |
| 0006 opt_getconstant_path <ic:0 ArgumentError> | |
| 0008 putchilledstring "--zjit-trace-exits must be enabled to use dump_exit_locations." | |
| 0010 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0012 pop | |
| 0013 opt_getconstant_path <ic:1 File> ( 131)[Li] | |
| 0015 getlocal_WC_0 filename@0 | |
| 0017 putchilledstring "wb" | |
| 0019 send <calldata!mid:open, argc:2>, block in dump_exit_locations | |
| 0022 leave ( 135)[Re] | |
| == disasm: #<ISeq:block in dump_exit_locations@<internal:zjit>:131 (131,30)-(134,7)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] file@0<AmbiguousArg> | |
| 0000 opt_getconstant_path <ic:0 Marshal> ( 132)[LiBc] | |
| 0002 opt_getconstant_path <ic:1 RubyVM::ZJIT> | |
| 0004 opt_send_without_block <calldata!mid:exit_locations, argc:0, ARGS_SIMPLE> | |
| 0006 getlocal_WC_0 file@0 | |
| 0008 opt_send_without_block <calldata!mid:dump, argc:2, ARGS_SIMPLE> | |
| 0010 pop | |
| 0011 getlocal_WC_0 file@0 ( 133)[Li] | |
| 0013 opt_size <calldata!mid:size, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0015 leave ( 134)[Br] | |
| == disasm: #<ISeq:stats_enabled?@<internal:zjit>:138 (138,2)-(140,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_zjit_stats_enabled_p/0>, 0( 139)[LiCa] | |
| 0003 leave ( 140)[Re] | |
| == disasm: #<ISeq:stats@<internal:zjit>:143 (143,2)-(145,5)> | |
| local table (size: 1, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] target_key@0<Opt=0> | |
| 0000 putnil ( 143) | |
| 0001 setlocal_WC_0 target_key@0 | |
| 0003 opt_invokebuiltin_delegate_leave <builtin!rb_zjit_stats/1>, 0( 144)[LiCa] | |
| 0006 leave ( 145)[Re] | |
| == disasm: #<ISeq:reset_stats!@<internal:zjit>:148 (148,2)-(150,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_zjit_reset_stats_bang/0>, 0( 149)[LiCa] | |
| 0003 leave ( 150)[Re] | |
| == disasm: #<ISeq:stats_string@<internal:zjit>:153 (153,2)-(210,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] buf@0 [ 1] stats@1 | |
| 0000 putchilledstring "***ZJIT: Printing ZJIT statistics on exit***\n"( 154)[LiCa] | |
| 0002 opt_send_without_block <calldata!mid:+@, argc:0, ARGS_SIMPLE> | |
| 0004 setlocal_WC_0 buf@0 | |
| 0006 putself ( 155)[Li] | |
| 0007 opt_send_without_block <calldata!mid:stats, argc:0, FCALL|ARGS_SIMPLE> | |
| 0009 setlocal_WC_0 stats@1 | |
| 0011 putself ( 158)[Li] | |
| 0012 putchilledstring "not_inlined_cfuncs_" | |
| 0014 putchilledstring "not inlined C methods" | |
| 0016 getlocal_WC_0 buf@0 | |
| 0018 getlocal_WC_0 stats@1 | |
| 0020 putobject 20 | |
| 0022 opt_send_without_block <calldata!mid:print_counters_with_prefix, argc:5, kw:[#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000063610c>], FCALL|KWARG> | |
| 0024 pop | |
| 0025 putself ( 159)[Li] | |
| 0026 putchilledstring "not_annotated_cfuncs_" | |
| 0028 putchilledstring "not annotated C methods" | |
| 0030 getlocal_WC_0 buf@0 | |
| 0032 getlocal_WC_0 stats@1 | |
| 0034 putobject 20 | |
| 0036 opt_send_without_block <calldata!mid:print_counters_with_prefix, argc:5, kw:[#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000063610c>], FCALL|KWARG> | |
| 0038 pop | |
| 0039 putself ( 162)[Li] | |
| 0040 putchilledstring "unspecialized_send_def_type_" | |
| 0042 putchilledstring "not optimized method types for send" | |
| 0044 getlocal_WC_0 buf@0 | |
| 0046 getlocal_WC_0 stats@1 | |
| 0048 putobject 20 | |
| 0050 opt_send_without_block <calldata!mid:print_counters_with_prefix, argc:5, kw:[#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000063610c>], FCALL|KWARG> | |
| 0052 pop | |
| 0053 putself ( 163)[Li] | |
| 0054 putchilledstring "unspecialized_send_without_block_def_type_" | |
| 0056 putchilledstring "not optimized method types for send_without_block" | |
| 0058 getlocal_WC_0 buf@0 | |
| 0060 getlocal_WC_0 stats@1 | |
| 0062 putobject 20 | |
| 0064 opt_send_without_block <calldata!mid:print_counters_with_prefix, argc:5, kw:[#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000063610c>], FCALL|KWARG> | |
| 0066 pop | |
| 0067 putself ( 164)[Li] | |
| 0068 putchilledstring "not_optimized_yarv_insn_" | |
| 0070 putchilledstring "not optimized instructions" | |
| 0072 getlocal_WC_0 buf@0 | |
| 0074 getlocal_WC_0 stats@1 | |
| 0076 putobject 20 | |
| 0078 opt_send_without_block <calldata!mid:print_counters_with_prefix, argc:5, kw:[#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000063610c>], FCALL|KWARG> | |
| 0080 pop | |
| 0081 putself ( 165)[Li] | |
| 0082 putchilledstring "send_fallback_" | |
| 0084 putchilledstring "send fallback reasons" | |
| 0086 getlocal_WC_0 buf@0 | |
| 0088 getlocal_WC_0 stats@1 | |
| 0090 putobject 20 | |
| 0092 opt_send_without_block <calldata!mid:print_counters_with_prefix, argc:5, kw:[#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000063610c>], FCALL|KWARG> | |
| 0094 pop | |
| 0095 putself ( 168)[Li] | |
| 0096 putchilledstring "unhandled_yarv_insn_" | |
| 0098 putchilledstring "unhandled YARV insns" | |
| 0100 getlocal_WC_0 buf@0 | |
| 0102 getlocal_WC_0 stats@1 | |
| 0104 putobject 20 | |
| 0106 opt_send_without_block <calldata!mid:print_counters_with_prefix, argc:5, kw:[#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000063610c>], FCALL|KWARG> | |
| 0108 pop | |
| 0109 putself ( 169)[Li] | |
| 0110 putchilledstring "compile_error_" | |
| 0112 putchilledstring "compile error reasons" | |
| 0114 getlocal_WC_0 buf@0 | |
| 0116 getlocal_WC_0 stats@1 | |
| 0118 putobject 20 | |
| 0120 opt_send_without_block <calldata!mid:print_counters_with_prefix, argc:5, kw:[#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000063610c>], FCALL|KWARG> | |
| 0122 pop | |
| 0123 putself ( 170)[Li] | |
| 0124 putchilledstring "exit_" | |
| 0126 putchilledstring "side exit reasons" | |
| 0128 getlocal_WC_0 buf@0 | |
| 0130 getlocal_WC_0 stats@1 | |
| 0132 putobject 20 | |
| 0134 opt_send_without_block <calldata!mid:print_counters_with_prefix, argc:5, kw:[#<Symbol:0x00000000008b010c>,#<Symbol:0x00000000008b110c>,#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000063610c>], FCALL|KWARG> | |
| 0136 pop | |
| 0137 putself ( 173)[Li] | |
| 0138 duparray [:send_count, :dynamic_send_count, :optimized_send_count, :iseq_optimized_send_count, :inline_cfunc_optimized_send_count, :non_variadic_cfunc_optimized_send_count, :variadic_cfunc_optimized_send_count] | |
| 0140 getlocal_WC_0 buf@0 ( 181) | |
| 0142 getlocal_WC_0 stats@1 | |
| 0144 putobject true | |
| 0146 putobject :send_count | |
| 0148 opt_send_without_block <calldata!mid:print_counters, argc:5, kw:[#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>,#<Symbol:0x000000000092610c>,#<Symbol:0x000000000092710c>], FCALL|KWARG>( 173) | |
| 0150 pop | |
| 0151 putself ( 182)[Li] | |
| 0152 duparray [:dynamic_getivar_count, :dynamic_setivar_count, :compiled_iseq_count, :failed_iseq_count, :compile_time_ns, :profile_time_ns, :gc_time_ns, :invalidation_time_ns, :vm_write_pc_count, :vm_write_sp_count, :vm_write_locals_count, :vm_write_stack_count, :vm_write_to_parent_iseq_local_count, :vm_read_from_parent_iseq_local_count, :code_region_bytes, :side_exit_count, :total_insn_count, :vm_insn_count, :zjit_insn_count, :ratio_in_zjit] | |
| 0154 getlocal_WC_0 buf@0 ( 207) | |
| 0156 getlocal_WC_0 stats@1 | |
| 0158 opt_send_without_block <calldata!mid:print_counters, argc:3, kw:[#<Symbol:0x000000000092510c>,#<Symbol:0x000000000088210c>], FCALL|KWARG>( 182) | |
| 0160 pop | |
| 0161 getlocal_WC_0 buf@0 ( 209)[Li] | |
| 0163 leave ( 210)[Re] | |
| == disasm: #<ISeq:assert_compiles@<internal:zjit>:213 (213,2)-(215,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_zjit_assert_compiles/0>, 0( 214)[LiCa] | |
| 0003 leave ( 215)[Re] | |
| == disasm: #<ISeq:print_counters@<internal:zjit>:220 (220,2)-(245,5)> | |
| local table (size: 9, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 4@2, kwrest: -1]) | |
| [ 9] keys@0<Arg>[ 8] buf@1 [ 7] stats@2 [ 6] right_align@3[ 5] base@4 [ 4] ?@5 [ 3] key_pad@6 [ 2] key_align@7[ 1] value_pad@8 | |
| 0000 getlocal_WC_0 keys@0 ( 221)[LiCa] | |
| 0002 send <calldata!mid:map, argc:0>, block in print_counters | |
| 0005 opt_send_without_block <calldata!mid:max, argc:0, ARGS_SIMPLE> | |
| 0007 putobject_INT2FIX_1_ | |
| 0008 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0010 setlocal_WC_0 key_pad@6 | |
| 0012 getlocal_WC_0 right_align@3 ( 222)[Li] | |
| 0014 branchif 20 | |
| 0016 putchilledstring "-" | |
| 0018 setlocal_WC_0 key_align@7 | |
| 0020 getlocal_WC_0 keys@0 ( 223)[Li] | |
| 0022 send <calldata!mid:filter_map, argc:0>, block in print_counters | |
| 0025 send <calldata!mid:map, argc:0>, block in print_counters | |
| 0028 opt_send_without_block <calldata!mid:max, argc:0, ARGS_SIMPLE> | |
| 0030 setlocal_WC_0 value_pad@8 | |
| 0032 getlocal_WC_0 keys@0 ( 225)[Li] | |
| 0034 send <calldata!mid:each, argc:0>, block in print_counters | |
| 0037 leave ( 245)[Re] | |
| == disasm: #<ISeq:block in print_counters@<internal:zjit>:221 (221,23)-(221,73)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] key@0<AmbiguousArg> | |
| 0000 getlocal_WC_0 key@0 ( 221)[LiBc] | |
| 0002 opt_send_without_block <calldata!mid:to_s, argc:0, ARGS_SIMPLE> | |
| 0004 putobject /_time_ns\z/ | |
| 0006 putchilledstring "_time" | |
| 0008 opt_send_without_block <calldata!mid:sub, argc:2, ARGS_SIMPLE> | |
| 0010 opt_size <calldata!mid:size, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0012 leave [Br] | |
| == disasm: #<ISeq:block in print_counters@<internal:zjit>:223 (223,32)-(223,52)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] key@0<AmbiguousArg> | |
| 0000 getlocal_WC_1 stats@2 ( 223)[LiBc] | |
| 0002 getlocal_WC_0 key@0 | |
| 0004 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 leave [Br] | |
| == disasm: #<ISeq:block in print_counters@<internal:zjit>:223 (223,57)-(223,102)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] value@0<AmbiguousArg> | |
| 0000 putself ( 223)[LiBc] | |
| 0001 getlocal_WC_0 value@0 | |
| 0003 opt_send_without_block <calldata!mid:number_with_delimiter, argc:1, FCALL|ARGS_SIMPLE> | |
| 0005 opt_size <calldata!mid:size, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0007 leave [Br] | |
| == disasm: #<ISeq:block in print_counters@<internal:zjit>:225 (225,14)-(244,7)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] key@0<AmbiguousArg>[ 2] value@1 [ 1] ratio@2 | |
| 0000 getlocal_WC_1 stats@2 ( 227)[LiBc] | |
| 0002 getlocal_WC_0 key@0 | |
| 0004 opt_send_without_block <calldata!mid:key?, argc:1, ARGS_SIMPLE> | |
| 0006 branchif 10 | |
| 0008 putnil | |
| 0009 leave ( 244)[Br] | |
| 0010 getlocal_WC_1 stats@2 ( 228)[Li] | |
| 0012 getlocal_WC_0 key@0 | |
| 0014 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0016 setlocal_WC_0 value@1 | |
| 0018 getlocal_WC_1 base@4 ( 229)[Li] | |
| 0020 branchunless 51 | |
| 0022 getlocal_WC_0 key@0 | |
| 0024 getlocal_WC_1 base@4 | |
| 0026 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0029 branchunless 51 | |
| 0031 putchilledstring " (%4.1f%%)" ( 230)[Li] | |
| 0033 putobject 100.0 | |
| 0035 getlocal_WC_0 value@1 | |
| 0037 opt_mult <calldata!mid:*, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0039 getlocal_WC_1 stats@2 | |
| 0041 getlocal_WC_1 base@4 | |
| 0043 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0045 opt_div <calldata!mid:/, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0047 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0049 setlocal_WC_0 ratio@2 | |
| 0051 getlocal_WC_0 key@0 ( 233)[Li] | |
| 0053 putobject :ratio_in_zjit ( 234) | |
| 0055 topn 1 | |
| 0057 opt_send_without_block <calldata!mid:===, argc:1, FCALL|ARGS_SIMPLE> | |
| 0059 branchif 79 | |
| 0061 putobject /_time_ns\z/ ( 236) | |
| 0063 topn 1 | |
| 0065 opt_send_without_block <calldata!mid:===, argc:1, FCALL|ARGS_SIMPLE> | |
| 0067 branchif 90 | |
| 0069 pop ( 240) | |
| 0070 putself [Li] | |
| 0071 getlocal_WC_0 value@1 | |
| 0073 opt_send_without_block <calldata!mid:number_with_delimiter, argc:1, FCALL|ARGS_SIMPLE> | |
| 0075 setlocal_WC_0 value@1 | |
| 0077 jump 126 | |
| 0079 pop ( 234) | |
| 0080 putchilledstring "%0.1f%%" ( 235)[Li] | |
| 0082 getlocal_WC_0 value@1 | |
| 0084 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0086 setlocal_WC_0 value@1 | |
| 0088 jump 126 ( 234) | |
| 0090 pop ( 236) | |
| 0091 getlocal_WC_0 key@0 ( 237)[Li] | |
| 0093 opt_send_without_block <calldata!mid:to_s, argc:0, ARGS_SIMPLE> | |
| 0095 putobject /_time_ns\z/ | |
| 0097 putchilledstring "_time" | |
| 0099 opt_send_without_block <calldata!mid:sub, argc:2, ARGS_SIMPLE> | |
| 0101 setlocal_WC_0 key@0 | |
| 0103 putself ( 238)[Li] | |
| 0104 getlocal_WC_0 value@1 | |
| 0106 putobject 10 | |
| 0108 putobject 6 | |
| 0110 opt_send_without_block <calldata!mid:**, argc:1, ARGS_SIMPLE> | |
| 0112 opt_div <calldata!mid:/, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0114 opt_send_without_block <calldata!mid:number_with_delimiter, argc:1, FCALL|ARGS_SIMPLE> | |
| 0116 dup | |
| 0117 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0119 anytostring | |
| 0120 putobject "ms" | |
| 0122 concatstrings 2 | |
| 0124 setlocal_WC_0 value@1 | |
| 0126 getlocal_WC_1 buf@1 ( 243)[Li] | |
| 0128 putobject "%" | |
| 0130 getlocal_WC_1 key_align@7 | |
| 0132 dup | |
| 0133 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0135 anytostring | |
| 0136 putobject "*s %*s%s\n" | |
| 0138 concatstrings 3 | |
| 0140 getlocal_WC_1 key_pad@6 | |
| 0142 getlocal_WC_0 key@0 | |
| 0144 dup | |
| 0145 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0147 anytostring | |
| 0148 putobject ":" | |
| 0150 concatstrings 2 | |
| 0152 getlocal_WC_1 value_pad@8 | |
| 0154 getlocal_WC_0 value@1 | |
| 0156 getlocal_WC_0 ratio@2 | |
| 0158 newarray 5 | |
| 0160 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0162 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0164 leave ( 244)[Br] | |
| == disasm: #<ISeq:print_counters_with_prefix@<internal:zjit>:247 (247,2)-(267,5)> | |
| local table (size: 10, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 5@4, kwrest: -1]) | |
| [10] buf@0 [ 9] stats@1 [ 8] prefix@2 [ 7] prompt@3 [ 6] limit@4 [ 5] ?@5 [ 4] counters@6 [ 3] key_pad@7 [ 2] value_pad@8[ 1] total@9 | |
| 0000 getlocal_WC_0 stats@1 ( 248)[LiCa] | |
| 0002 send <calldata!mid:select, argc:0>, block in print_counters_with_prefix | |
| 0005 setlocal_WC_0 counters@6 | |
| 0007 getlocal_WC_0 stats@1 ( 249)[Li] | |
| 0009 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0011 branchunless 15 | |
| 0013 putnil | |
| 0014 leave [Re] | |
| 0015 getlocal_WC_0 counters@6 ( 251)[Li] | |
| 0017 send <calldata!mid:transform_keys!, argc:0>, block in print_counters_with_prefix | |
| 0020 pop | |
| 0021 getlocal_WC_0 counters@6 ( 252)[Li] | |
| 0023 opt_send_without_block <calldata!mid:keys, argc:0, ARGS_SIMPLE> | |
| 0025 putobject :size | |
| 0027 send <calldata!mid:map, argc:0, ARGS_BLOCKARG>, nil | |
| 0030 opt_send_without_block <calldata!mid:max, argc:0, ARGS_SIMPLE> | |
| 0032 setlocal_WC_0 key_pad@7 | |
| 0034 getlocal_WC_0 counters@6 ( 253)[Li] | |
| 0036 opt_send_without_block <calldata!mid:values, argc:0, ARGS_SIMPLE> | |
| 0038 send <calldata!mid:map, argc:0>, block in print_counters_with_prefix | |
| 0041 opt_send_without_block <calldata!mid:max, argc:0, ARGS_SIMPLE> | |
| 0043 setlocal_WC_0 value_pad@8 | |
| 0045 getlocal_WC_0 counters@6 ( 254)[Li] | |
| 0047 opt_send_without_block <calldata!mid:values, argc:0, ARGS_SIMPLE> | |
| 0049 opt_send_without_block <calldata!mid:sum, argc:0, ARGS_SIMPLE> | |
| 0051 setlocal_WC_0 total@9 | |
| 0053 getlocal_WC_0 counters@6 ( 256)[Li] | |
| 0055 opt_send_without_block <calldata!mid:to_a, argc:0, ARGS_SIMPLE> | |
| 0057 setlocal_WC_0 counters@6 | |
| 0059 getlocal_WC_0 counters@6 ( 257)[Li] | |
| 0061 send <calldata!mid:sort_by!, argc:0>, block in print_counters_with_prefix | |
| 0064 pop | |
| 0065 getlocal_WC_0 limit@4 ( 258)[Li] | |
| 0067 branchunless 77 | |
| 0069 getlocal_WC_0 counters@6 | |
| 0071 getlocal_WC_0 limit@4 | |
| 0073 opt_send_without_block <calldata!mid:first, argc:1, ARGS_SIMPLE> | |
| 0075 setlocal_WC_0 counters@6 | |
| 0077 getlocal_WC_0 limit@4 ( 260)[Li] | |
| 0079 branchunless 100 | |
| 0081 getlocal_WC_0 buf@0 | |
| 0083 putobject "Top-" | |
| 0085 getlocal_WC_0 counters@6 | |
| 0087 opt_size <calldata!mid:size, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0089 dup | |
| 0090 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0092 anytostring | |
| 0093 putobject " " | |
| 0095 concatstrings 3 | |
| 0097 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0099 pop | |
| 0100 getlocal_WC_0 buf@0 ( 261)[Li] | |
| 0102 putobject "" | |
| 0104 getlocal_WC_0 prompt@3 | |
| 0106 dup | |
| 0107 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0109 anytostring | |
| 0110 concatstrings 2 | |
| 0112 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0114 pop | |
| 0115 getlocal_WC_0 limit@4 ( 262)[Li] | |
| 0117 branchunless 158 | |
| 0119 getlocal_WC_0 buf@0 | |
| 0121 putobject " (%.1f%% of total " | |
| 0123 putself | |
| 0124 getlocal_WC_0 total@9 | |
| 0126 opt_send_without_block <calldata!mid:number_with_delimiter, argc:1, FCALL|ARGS_SIMPLE> | |
| 0128 dup | |
| 0129 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0131 anytostring | |
| 0132 putobject ")" | |
| 0134 concatstrings 3 | |
| 0136 putobject 100.0 | |
| 0138 getlocal_WC_0 counters@6 | |
| 0140 putobject :last | |
| 0142 send <calldata!mid:map, argc:0, ARGS_BLOCKARG>, nil | |
| 0145 opt_send_without_block <calldata!mid:sum, argc:0, ARGS_SIMPLE> | |
| 0147 opt_mult <calldata!mid:*, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0149 getlocal_WC_0 total@9 | |
| 0151 opt_div <calldata!mid:/, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0153 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0155 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0157 pop | |
| 0158 getlocal_WC_0 buf@0 ( 263)[Li] | |
| 0160 putchilledstring ":\n" | |
| 0162 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0164 pop | |
| 0165 getlocal_WC_0 counters@6 ( 264)[Li] | |
| 0167 send <calldata!mid:each, argc:0>, block in print_counters_with_prefix | |
| 0170 leave ( 267)[Re] | |
| == disasm: #<ISeq:block in print_counters_with_prefix@<internal:zjit>:248 (248,28)-(248,81)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] key@0<Arg> [ 1] value@1<Arg> | |
| 0000 getlocal_WC_0 key@0 ( 248)[LiBc] | |
| 0002 getlocal_WC_1 prefix@2 | |
| 0004 opt_send_without_block <calldata!mid:start_with?, argc:1, ARGS_SIMPLE> | |
| 0006 dup | |
| 0007 branchunless 15 | |
| 0009 pop | |
| 0010 getlocal_WC_0 value@1 | |
| 0012 putobject_INT2FIX_0_ | |
| 0013 opt_gt <calldata!mid:>, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0015 leave [Br] | |
| == disasm: #<ISeq:block in print_counters_with_prefix@<internal:zjit>:251 (251,29)-(251,69)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] key@0<AmbiguousArg> | |
| 0000 getlocal_WC_0 key@0 ( 251)[LiBc] | |
| 0002 opt_send_without_block <calldata!mid:to_s, argc:0, ARGS_SIMPLE> | |
| 0004 getlocal_WC_1 prefix@2 | |
| 0006 opt_send_without_block <calldata!mid:delete_prefix, argc:1, ARGS_SIMPLE> | |
| 0008 leave [Br] | |
| == disasm: #<ISeq:block in print_counters_with_prefix@<internal:zjit>:253 (253,36)-(253,81)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] value@0<AmbiguousArg> | |
| 0000 putself ( 253)[LiBc] | |
| 0001 getlocal_WC_0 value@0 | |
| 0003 opt_send_without_block <calldata!mid:number_with_delimiter, argc:1, FCALL|ARGS_SIMPLE> | |
| 0005 opt_size <calldata!mid:size, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0007 leave [Br] | |
| == disasm: #<ISeq:block in print_counters_with_prefix@<internal:zjit>:257 (257,22)-(257,43)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] _@0<Arg> [ 1] value@1<Arg> | |
| 0000 getlocal_WC_0 value@1 ( 257)[LiBc] | |
| 0002 opt_send_without_block <calldata!mid:-@, argc:0, ARGS_SIMPLE> | |
| 0004 leave [Br] | |
| == disasm: #<ISeq:block in print_counters_with_prefix@<internal:zjit>:264 (264,18)-(266,7)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] key@0<Arg> [ 1] value@1<Arg> | |
| 0000 getlocal_WC_1 buf@0 ( 265)[LiBc] | |
| 0002 putchilledstring " %*s: %*s (%4.1f%%)\n" | |
| 0004 getlocal_WC_1 key_pad@7 | |
| 0006 getlocal_WC_0 key@0 | |
| 0008 getlocal_WC_1 value_pad@8 | |
| 0010 putself | |
| 0011 getlocal_WC_0 value@1 | |
| 0013 opt_send_without_block <calldata!mid:number_with_delimiter, argc:1, FCALL|ARGS_SIMPLE> | |
| 0015 putobject 100.0 | |
| 0017 getlocal_WC_0 value@1 | |
| 0019 opt_mult <calldata!mid:*, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0021 getlocal_WC_1 total@9 | |
| 0023 opt_div <calldata!mid:/, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0025 newarray 5 | |
| 0027 opt_mod <calldata!mid:%, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0029 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0031 leave ( 266)[Br] | |
| == disasm: #<ISeq:number_with_delimiter@<internal:zjit>:269 (269,2)-(274,5)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] number@0<Arg>[ 2] s@1 [ 1] i@2 | |
| 0000 getlocal_WC_0 number@0 ( 270)[LiCa] | |
| 0002 opt_send_without_block <calldata!mid:to_s, argc:0, ARGS_SIMPLE> | |
| 0004 setlocal_WC_0 s@1 | |
| 0006 getlocal_WC_0 s@1 ( 271)[Li] | |
| 0008 putchilledstring "." | |
| 0010 opt_send_without_block <calldata!mid:index, argc:1, ARGS_SIMPLE> | |
| 0012 dup | |
| 0013 branchif 20 | |
| 0015 pop | |
| 0016 getlocal_WC_0 s@1 | |
| 0018 opt_size <calldata!mid:size, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0020 setlocal_WC_0 i@2 | |
| 0022 jump 44 ( 272)[Li] | |
| 0024 putnil | |
| 0025 pop | |
| 0026 jump 44 | |
| 0028 getlocal_WC_0 s@1 | |
| 0030 getlocal_WC_0 i@2 | |
| 0032 putobject 3 | |
| 0034 opt_minus <calldata!mid:-, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0036 dup | |
| 0037 setlocal_WC_0 i@2 | |
| 0039 putchilledstring "," | |
| 0041 opt_send_without_block <calldata!mid:insert, argc:2, ARGS_SIMPLE> | |
| 0043 pop | |
| 0044 getlocal_WC_0 i@2 | |
| 0046 putobject 3 | |
| 0048 opt_gt <calldata!mid:>, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0050 branchif 28 | |
| 0052 putnil | |
| 0053 pop | |
| 0054 getlocal_WC_0 s@1 ( 273)[Li] | |
| 0056 leave ( 274)[Re] | |
| == disasm: #<ISeq:print_stats@<internal:zjit>:277 (277,2)-(279,5)> | |
| 0000 getglobal :$stderr ( 278)[LiCa] | |
| 0002 putself | |
| 0003 opt_send_without_block <calldata!mid:stats_string, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0005 opt_send_without_block <calldata!mid:write, argc:1, ARGS_SIMPLE> | |
| 0007 leave ( 279)[Re] | |
| == disasm: #<ISeq:dump_locations@<internal:zjit>:281 (281,2)-(288,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] filename@0 [ 1] n_bytes@1 | |
| 0000 putself ( 282)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:trace_exit_locations_enabled?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 7 | |
| 0005 putnil | |
| 0006 leave [Re] | |
| 0007 putobject "zjit_exits_" ( 284)[Li] | |
| 0009 opt_getconstant_path <ic:0 Process> | |
| 0011 opt_send_without_block <calldata!mid:pid, argc:0, ARGS_SIMPLE> | |
| 0013 dup | |
| 0014 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0016 anytostring | |
| 0017 putobject ".dump" | |
| 0019 concatstrings 3 | |
| 0021 setlocal_WC_0 filename@0 | |
| 0023 putself ( 285)[Li] | |
| 0024 getlocal_WC_0 filename@0 | |
| 0026 opt_send_without_block <calldata!mid:dump_exit_locations, argc:1, FCALL|ARGS_SIMPLE> | |
| 0028 setlocal_WC_0 n_bytes@1 | |
| 0030 getglobal :$stderr ( 287)[Li] | |
| 0032 getlocal_WC_0 n_bytes@1 | |
| 0034 dup | |
| 0035 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0037 anytostring | |
| 0038 putobject " bytes written to " | |
| 0040 getlocal_WC_0 filename@0 | |
| 0042 dup | |
| 0043 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0045 anytostring | |
| 0046 putobject "." | |
| 0048 concatstrings 4 | |
| 0050 opt_send_without_block <calldata!mid:puts, argc:1, ARGS_SIMPLE> | |
| 0052 leave ( 288)[Re] | |
| == disasm: #<ISeq:<internal:kernel>@<internal:kernel>:1 (1,0)-(293,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Kernel, <module:Kernel>, 2 | |
| 0007 leave | |
| == disasm: #<ISeq:<module:Kernel>@<internal:kernel>:1 (1,0)-(293,3)> | |
| 0000 definemethod :class, class ( 18)[LiCl] | |
| 0003 definemethod :clone, clone ( 47)[Li] | |
| 0006 definemethod :frozen?, frozen? ( 67)[Li] | |
| 0009 definemethod :tap, tap ( 89)[Li] | |
| 0012 definemethod :then, then ( 121)[Li] | |
| 0015 putspecialobject 1 ( 129)[Li] | |
| 0017 putspecialobject 2 | |
| 0019 putobject :yield_self | |
| 0021 putobject :then | |
| 0023 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0025 pop | |
| 0026 putself ( 131)[Li] | |
| 0027 opt_send_without_block <calldata!mid:module_function, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0029 pop | |
| 0030 definemethod :loop, loop ( 160)[Li] | |
| 0033 definemethod :Float, Float ( 193)[Li] | |
| 0036 definemethod :Integer, Integer ( 286)[Li] | |
| 0039 putobject :Integer | |
| 0041 leave ( 293)[En] | |
| == disasm: #<ISeq:class@<internal:kernel>:18 (18,2)-(21,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi20/0>, 0 ( 20)[LiCa] | |
| 0003 leave ( 21)[Re] | |
| == disasm: #<ISeq:clone@<internal:kernel>:47 (47,2)-(49,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 2] freeze@0 [ 1] ?@1 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_obj_clone2/1>, 0( 48)[LiCa] | |
| 0003 leave ( 49)[Re] | |
| == disasm: #<ISeq:frozen?@<internal:kernel>:67 (67,2)-(70,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi69/0>, 0 ( 69)[LiCa] | |
| 0003 leave ( 70)[Re] | |
| == disasm: #<ISeq:tap@<internal:kernel>:89 (89,2)-(93,5)> INLINE_BLOCK | |
| 0000 putself ( 91)[LiCa] | |
| 0001 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0003 pop | |
| 0004 putself ( 92)[Li] | |
| 0005 leave ( 93)[Re] | |
| == disasm: #<ISeq:then@<internal:kernel>:121 (121,2)-(127,5)> INLINE_BLOCK | |
| 0000 putnil ( 123)[LiCa] | |
| 0001 defined yield, false, true | |
| 0005 branchif 11 | |
| 0007 opt_invokebuiltin_delegate_leave <builtin!_bi124/0>, 0 ( 124)[Li] | |
| 0010 leave [Re] | |
| 0011 putself ( 126)[Li] | |
| 0012 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0014 leave ( 127)[Re] | |
| == disasm: #<ISeq:loop@<internal:kernel>:160 (160,2)-(173,5)> INLINE_BLOCK | |
| == catch table | |
| | catch type: break st: 0015 ed: 0021 sp: 0000 cont: 0021 | |
| | catch type: next st: 0015 ed: 0021 sp: 0000 cont: 0014 | |
| | catch type: redo st: 0015 ed: 0021 sp: 0000 cont: 0015 | |
| | catch type: rescue st: 0011 ed: 0021 sp: 0000 cont: 0022 | |
| | == disasm: #<ISeq:rescue in loop@<internal:kernel>:170 (170,4)-(171,14)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_0 "$!"@0 ( 170) | |
| | 0002 opt_getconstant_path <ic:0 StopIteration> | |
| | 0004 checkmatch 3 | |
| | 0006 branchunless 17 | |
| | 0008 getlocal_WC_0 "$!"@0[Rs] | |
| | 0010 setlocal_WC_1 e@0 | |
| | 0012 getlocal_WC_1 e@0 ( 171)[Li] | |
| | 0014 opt_send_without_block <calldata!mid:result, argc:0, ARGS_SIMPLE> | |
| | 0016 leave ( 170) | |
| | 0017 getlocal_WC_0 "$!"@0 | |
| | 0019 throw 0 | |
| | catch type: retry st: 0021 ed: 0022 sp: 0000 cont: 0011 | |
| |------------------------------------------------------------------------ | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] e@0 | |
| 0000 putnil ( 162)[LiCa] | |
| 0001 defined yield, false, true | |
| 0005 branchif 11 | |
| 0007 opt_invokebuiltin_delegate_leave <builtin!_bi163/0>, 0 ( 163)[Li] | |
| 0010 leave [Re] | |
| 0011 jump 15 ( 167)[Li] | |
| 0013 putnil | |
| 0014 pop | |
| 0015 invokeblock <calldata!argc:0, ARGS_SIMPLE>( 168)[Li] | |
| 0017 pop | |
| 0018 jump 15 ( 167) | |
| 0020 putnil | |
| 0021 nop ( 166) | |
| 0022 leave ( 173)[Re] | |
| == disasm: #<ISeq:Float@<internal:kernel>:193 (193,2)-(199,5)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] arg@0<Arg> [ 2] exception@1[ 1] ?@2 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!rb_f_float/2>, 0 ( 197)[LiCa] | |
| 0003 leave ( 199)[Re] | |
| == disasm: #<ISeq:Integer@<internal:kernel>:286 (286,2)-(292,5)> | |
| local table (size: 4, argc: 1 [opts: 1, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 4] arg@0<Arg> [ 3] base@1<Opt=0>[ 2] exception@2[ 1] ?@3 | |
| 0000 putobject_INT2FIX_0_ ( 286) | |
| 0001 setlocal_WC_0 base@1 | |
| 0003 opt_invokebuiltin_delegate_leave <builtin!rb_f_integer/3>, 0( 290)[LiCa] | |
| 0006 leave ( 292)[Re] | |
| == disasm: #<ISeq:<internal:gc>@<internal:gc>:8 (8,0)-(604,3)> | |
| 0000 putspecialobject 3 ( 8)[Li] | |
| 0002 putnil | |
| 0003 defineclass :GC, <module:GC>, 2 | |
| 0007 pop | |
| 0008 putspecialobject 3 ( 597)[Li] | |
| 0010 putnil | |
| 0011 defineclass :ObjectSpace, <module:ObjectSpace>, 2 | |
| 0015 leave | |
| == disasm: #<ISeq:<module:GC>@<internal:gc>:8 (8,0)-(595,3)> | |
| 0000 putself ( 43)[LiCl] | |
| 0001 definesmethod :start, start | |
| 0004 definemethod :garbage_collect, garbage_collect( 48)[Li] | |
| 0007 putself ( 62)[Li] | |
| 0008 definesmethod :enable, enable | |
| 0011 putself ( 76)[Li] | |
| 0012 definesmethod :disable, disable | |
| 0015 putself ( 87)[Li] | |
| 0016 definesmethod :stress, stress | |
| 0019 putself ( 111)[Li] | |
| 0020 definesmethod :stress=, stress= | |
| 0023 putself ( 124)[Li] | |
| 0024 definesmethod :count, count | |
| 0027 putself ( 250)[Li] | |
| 0028 definesmethod :stat, stat | |
| 0031 putself ( 394)[Li] | |
| 0032 definesmethod :stat_heap, stat_heap | |
| 0035 putself ( 449)[Li] | |
| 0036 definesmethod :config, config | |
| 0039 putself ( 505)[Li] | |
| 0040 definesmethod :latest_gc_info, latest_gc_info | |
| 0043 putself ( 541)[Li] | |
| 0044 definesmethod :measure_total_time=, measure_total_time= | |
| 0047 putself ( 554)[Li] | |
| 0048 definesmethod :measure_total_time, measure_total_time | |
| 0051 putself ( 590)[Li] | |
| 0052 definesmethod :total_time, total_time | |
| 0055 putobject :total_time | |
| 0057 leave ( 595)[En] | |
| == disasm: #<ISeq:start@<internal:gc>:43 (43,2)-(45,5)> | |
| local table (size: 4, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 3@0, kwrest: -1]) | |
| [ 4] full_mark@0[ 3] immediate_mark@1[ 2] immediate_sweep@2[ 1] ?@3 | |
| 0000 getlocal_WC_0 full_mark@0 ( 44)[LiCa] | |
| 0002 getlocal_WC_0 immediate_mark@1 | |
| 0004 getlocal_WC_0 immediate_sweep@2 | |
| 0006 putobject false | |
| 0008 invokebuiltin <builtin!gc_start_internal/4> | |
| 0010 leave ( 45)[Re] | |
| == disasm: #<ISeq:garbage_collect@<internal:gc>:48 (48,2)-(50,5)> | |
| local table (size: 4, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 3@0, kwrest: -1]) | |
| [ 4] full_mark@0[ 3] immediate_mark@1[ 2] immediate_sweep@2[ 1] ?@3 | |
| 0000 getlocal_WC_0 full_mark@0 ( 49)[LiCa] | |
| 0002 getlocal_WC_0 immediate_mark@1 | |
| 0004 getlocal_WC_0 immediate_sweep@2 | |
| 0006 putobject false | |
| 0008 invokebuiltin <builtin!gc_start_internal/4> | |
| 0010 leave ( 50)[Re] | |
| == disasm: #<ISeq:enable@<internal:gc>:62 (62,2)-(64,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!gc_enable/0>, 0 ( 63)[LiCa] | |
| 0003 leave ( 64)[Re] | |
| == disasm: #<ISeq:disable@<internal:gc>:76 (76,2)-(78,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!gc_disable/0>, 0 ( 77)[LiCa] | |
| 0003 leave ( 78)[Re] | |
| == disasm: #<ISeq:stress@<internal:gc>:87 (87,2)-(89,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!gc_stress_get/0>, 0( 88)[LiCa] | |
| 0003 leave ( 89)[Re] | |
| == disasm: #<ISeq:stress=@<internal:gc>:111 (111,2)-(113,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] flag@0<Arg> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!gc_stress_set_m/1>, 0( 112)[LiCa] | |
| 0003 leave ( 113)[Re] | |
| == disasm: #<ISeq:count@<internal:gc>:124 (124,2)-(126,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!gc_count/0>, 0 ( 125)[LiCa] | |
| 0003 leave ( 126)[Re] | |
| == disasm: #<ISeq:stat@<internal:gc>:250 (250,2)-(252,5)> | |
| local table (size: 1, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] hash_or_key@0<Opt=0> | |
| 0000 putnil ( 250) | |
| 0001 setlocal_WC_0 hash_or_key@0 | |
| 0003 opt_invokebuiltin_delegate_leave <builtin!gc_stat/1>, 0 ( 251)[LiCa] | |
| 0006 leave ( 252)[Re] | |
| == disasm: #<ISeq:stat_heap@<internal:gc>:394 (394,2)-(396,5)> | |
| local table (size: 2, argc: 0 [opts: 2, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] heap_name@0<Opt=0>[ 1] hash_or_key@1<Opt=3> | |
| 0000 putnil ( 394) | |
| 0001 setlocal_WC_0 heap_name@0 | |
| 0003 putnil | |
| 0004 setlocal_WC_0 hash_or_key@1 | |
| 0006 opt_invokebuiltin_delegate_leave <builtin!gc_stat_heap/2>, 0( 395)[LiCa] | |
| 0009 leave ( 396)[Re] | |
| == disasm: #<ISeq:config@<internal:gc>:449 (449,2)-(461,5)> | |
| local table (size: 1, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] hash@0<Opt=0> | |
| 0000 putnil ( 449) | |
| 0001 setlocal_WC_0 hash@0 | |
| 0003 opt_invokebuiltin_delegate <builtin!_bi450/0>, 0 ( 450)[LiCa] | |
| 0006 branchunless 30 | |
| 0008 getlocal_WC_0 hash@0 ( 451)[Li] | |
| 0010 putobject :implementation | |
| 0012 opt_send_without_block <calldata!mid:include?, argc:1, ARGS_SIMPLE> | |
| 0014 branchunless 24 | |
| 0016 putself ( 452)[Li] | |
| 0017 opt_getconstant_path <ic:0 ArgumentError> | |
| 0019 putchilledstring "Attempting to set read-only key \"Implementation\"" | |
| 0021 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0023 pop | |
| 0024 opt_invokebuiltin_delegate <builtin!gc_config_set/1>, 0( 455)[Li] | |
| 0027 pop | |
| 0028 jump 44 ( 450) | |
| 0030 getlocal_WC_0 hash@0 ( 456)[Li] | |
| 0032 putnil | |
| 0033 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0036 branchunless 44 | |
| 0038 putself ( 457)[Li] | |
| 0039 opt_getconstant_path <ic:1 ArgumentError> | |
| 0041 opt_send_without_block <calldata!mid:raise, argc:1, FCALL|ARGS_SIMPLE> | |
| 0043 pop | |
| 0044 opt_invokebuiltin_delegate_leave <builtin!gc_config_get/0>, 0( 460)[Li] | |
| 0047 leave ( 461)[Re] | |
| == disasm: #<ISeq:latest_gc_info@<internal:gc>:505 (505,2)-(515,5)> | |
| local table (size: 1, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] hash_or_key@0<Opt=0> | |
| 0000 putnil ( 505) | |
| 0001 setlocal_WC_0 hash_or_key@0 | |
| 0003 getlocal_WC_0 hash_or_key@0 ( 506)[LiCa] | |
| 0005 putnil | |
| 0006 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0008 branchunless 16 | |
| 0010 newhash 0 ( 507)[Li] | |
| 0012 setlocal_WC_0 hash_or_key@0 | |
| 0014 jump 29 ( 506) | |
| 0016 opt_invokebuiltin_delegate <builtin!_bi508/0>, 0 ( 508)[Li] | |
| 0019 branchunless 29 | |
| 0021 putself ( 509)[Li] | |
| 0022 opt_getconstant_path <ic:0 TypeError> | |
| 0024 putchilledstring "non-hash or symbol given" | |
| 0026 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0028 pop | |
| 0029 opt_invokebuiltin_delegate_leave <builtin!_bi512/0>, 0 ( 512)[Li] | |
| 0032 leave ( 515)[Re] | |
| == disasm: #<ISeq:measure_total_time=@<internal:gc>:541 (541,2)-(546,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] flag@0<Arg> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi542/0>, 0 ( 542)[LiCa] | |
| 0003 leave ( 546)[Re] | |
| == disasm: #<ISeq:measure_total_time@<internal:gc>:554 (554,2)-(558,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi555/0>, 0 ( 555)[LiCa] | |
| 0003 leave ( 558)[Re] | |
| == disasm: #<ISeq:total_time@<internal:gc>:590 (590,2)-(594,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi591/0>, 0 ( 591)[LiCa] | |
| 0003 leave ( 594)[Re] | |
| == disasm: #<ISeq:<module:ObjectSpace>@<internal:gc>:597 (597,0)-(604,3)> | |
| 0000 definemethod :garbage_collect, garbage_collect( 599)[LiCl] | |
| 0003 putself ( 603)[Li] | |
| 0004 putobject :garbage_collect | |
| 0006 opt_send_without_block <calldata!mid:module_function, argc:1, FCALL|ARGS_SIMPLE> | |
| 0008 leave ( 604)[En] | |
| == disasm: #<ISeq:garbage_collect@<internal:gc>:599 (599,2)-(601,5)> | |
| local table (size: 4, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 3@0, kwrest: -1]) | |
| [ 4] full_mark@0[ 3] immediate_mark@1[ 2] immediate_sweep@2[ 1] ?@3 | |
| 0000 getlocal_WC_0 full_mark@0 ( 600)[LiCa] | |
| 0002 getlocal_WC_0 immediate_mark@1 | |
| 0004 getlocal_WC_0 immediate_sweep@2 | |
| 0006 putobject false | |
| 0008 invokebuiltin <builtin!gc_start_internal/4> | |
| 0010 leave ( 601)[Re] | |
| == disasm: #<ISeq:<internal:ractor>@<internal:ractor>:195 (195,0)-(804,3)> | |
| 0000 putspecialobject 3 ( 195)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Ractor, <class:Ractor>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:Ractor>@<internal:ractor>:195 (195,0)-(804,3)> | |
| 0000 putself ( 229)[LiCl] | |
| 0001 definesmethod :new, new | |
| 0004 putself ( 244)[Li] | |
| 0005 definesmethod :current, current | |
| 0008 putself ( 258)[Li] | |
| 0009 definesmethod :count, count | |
| 0012 putself ( 269)[Li] | |
| 0013 definesmethod :select, select | |
| 0016 putself ( 310)[Li] | |
| 0017 definesmethod :receive, receive | |
| 0020 putself ( 314)[Li] | |
| 0021 putnil | |
| 0022 defineclass :singletonclass, singleton class, 1 | |
| 0026 pop | |
| 0027 putself ( 319)[Li] | |
| 0028 definemethod :receive, receive | |
| 0031 putobject :receive | |
| 0033 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0035 pop | |
| 0036 putspecialobject 1 ( 322)[Li] | |
| 0038 putspecialobject 2 | |
| 0040 putobject :recv | |
| 0042 putobject :receive | |
| 0044 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0046 pop | |
| 0047 definemethod :send, send ( 329)[Li] | |
| 0050 putspecialobject 1 ( 333)[Li] | |
| 0052 putspecialobject 2 | |
| 0054 putobject :<< | |
| 0056 putobject :send | |
| 0058 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0060 pop | |
| 0061 definemethod :inspect, inspect ( 335)[Li] | |
| 0064 putspecialobject 1 ( 345)[Li] | |
| 0066 putspecialobject 2 | |
| 0068 putobject :to_s | |
| 0070 putobject :inspect | |
| 0072 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0074 pop | |
| 0075 definemethod :name, name ( 348)[Li] | |
| 0078 putspecialobject 3 ( 352)[Li] | |
| 0080 putnil | |
| 0081 defineclass :RemoteError, <class:RemoteError>, 0 | |
| 0085 pop | |
| 0086 definemethod :close, close ( 364)[Li] | |
| 0089 putself ( 379)[Li] | |
| 0090 definesmethod :shareable?, shareable? | |
| 0093 putself ( 420)[Li] | |
| 0094 definesmethod :make_shareable, make_shareable | |
| 0097 definemethod :[], [] ( 434)[Li] | |
| 0100 definemethod :[]=, []= ( 443)[Li] | |
| 0103 putself ( 451)[Li] | |
| 0104 definesmethod :[], [] | |
| 0107 putself ( 456)[Li] | |
| 0108 definesmethod :[]=, []= | |
| 0111 putself ( 474)[Li] | |
| 0112 definesmethod :store_if_absent, store_if_absent | |
| 0115 putself ( 479)[Li] | |
| 0116 definesmethod :main, main | |
| 0119 putself ( 486)[Li] | |
| 0120 definesmethod :main?, main? | |
| 0123 putself ( 493)[Li] | |
| 0124 definesmethod :_require, _require | |
| 0127 putself ( 501)[Li] | |
| 0128 putnil | |
| 0129 defineclass :singletonclass, singleton class, 1 | |
| 0133 pop | |
| 0134 definemethod :default_port, default_port( 526)[Li] | |
| 0137 definemethod :join, join ( 545)[Li] | |
| 0140 definemethod :value, value ( 571)[Li] | |
| 0143 definemethod :monitor, monitor ( 593)[Li] | |
| 0146 definemethod :unmonitor, unmonitor ( 603)[Li] | |
| 0149 putself ( 626)[Li] | |
| 0150 definesmethod :shareable_proc, shareable_proc | |
| 0153 putself ( 640)[Li] | |
| 0154 definesmethod :shareable_lambda, shareable_lambda | |
| 0157 putspecialobject 3 ( 649)[Li] | |
| 0159 putnil | |
| 0160 defineclass :Port, <class:Port>, 0 | |
| 0164 leave ( 804)[En] | |
| == disasm: #<ISeq:new@<internal:ractor>:229 (229,2)-(239,5)> | |
| local table (size: 6, argc: 0 [opts: 0, rest: 0, post: 0, block: 3, kw: 1@0, kwrest: -1]) | |
| [ 6] args@0<Rest>[ 5] name@1 [ 4] ?@2 [ 3] block@3<Block>[ 2] b@4 [ 1] loc@5 | |
| 0000 getblockparam block@3, 0 ( 230)[LiCa] | |
| 0003 setlocal_WC_0 b@4 | |
| 0005 getblockparamproxy block@3, 0 ( 231)[Li] | |
| 0008 branchif 18 | |
| 0010 putself | |
| 0011 opt_getconstant_path <ic:0 ArgumentError> | |
| 0013 putchilledstring "must be called with a block" | |
| 0015 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0017 pop | |
| 0018 opt_invokebuiltin_delegate <builtin!_bi232/0>, 0 ( 232)[Li] | |
| 0021 branchunless 33 | |
| 0023 opt_getconstant_path <ic:1 Kernel> ( 233)[Li] | |
| 0025 putchilledstring "Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues." | |
| 0027 putobject_INT2FIX_0_ ( 234) | |
| 0028 putobject :experimental | |
| 0030 opt_send_without_block <calldata!mid:warn, argc:3, kw:[#<Symbol:0x000000000095c10c>,#<Symbol:0x000000000023810c>], KWARG>( 233) | |
| 0032 pop | |
| 0033 putself ( 236)[Li] | |
| 0034 putobject_INT2FIX_1_ | |
| 0035 putobject_INT2FIX_1_ | |
| 0036 opt_send_without_block <calldata!mid:caller_locations, argc:2, FCALL|ARGS_SIMPLE> | |
| 0038 opt_send_without_block <calldata!mid:first, argc:0, ARGS_SIMPLE> | |
| 0040 setlocal_WC_0 loc@5 | |
| 0042 getlocal_WC_0 loc@5 ( 237)[Li] | |
| 0044 opt_send_without_block <calldata!mid:path, argc:0, ARGS_SIMPLE> | |
| 0046 dup | |
| 0047 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0049 anytostring | |
| 0050 putobject ":" | |
| 0052 getlocal_WC_0 loc@5 | |
| 0054 opt_send_without_block <calldata!mid:lineno, argc:0, ARGS_SIMPLE> | |
| 0056 dup | |
| 0057 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0059 anytostring | |
| 0060 concatstrings 3 | |
| 0062 setlocal_WC_0 loc@5 | |
| 0064 getlocal_WC_0 loc@5 ( 238)[Li] | |
| 0066 getlocal_WC_0 name@1 | |
| 0068 getlocal_WC_0 args@0 | |
| 0070 getlocal_WC_0 b@4 | |
| 0072 invokebuiltin <builtin!ractor_create/4> | |
| 0074 leave ( 239)[Re] | |
| == disasm: #<ISeq:current@<internal:ractor>:244 (244,2)-(248,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi245/0>, 0 ( 245)[LiCa] | |
| 0003 leave ( 248)[Re] | |
| == disasm: #<ISeq:count@<internal:ractor>:258 (258,2)-(262,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi259/0>, 0 ( 259)[LiCa] | |
| 0003 leave ( 262)[Re] | |
| == disasm: #<ISeq:select@<internal:ractor>:269 (269,2)-(303,5)> | |
| == catch table | |
| | catch type: ensure st: 0025 ed: 0062 sp: 0001 cont: 0068 | |
| | == disasm: #<ISeq:ensure in select@<internal:ractor>:298 (298,6)-(301,9)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_1 monitors@1 ( 298)[Li] | |
| | 0002 send <calldata!mid:each, argc:0>, block in select | |
| | 0005 pop | |
| | 0006 getlocal_WC_0 "$!"@0 ( 296) | |
| | 0008 throw 0 | |
| | == disasm: #<ISeq:block in select@<internal:ractor>:298 (298,20)-(301,9)> | |
| | local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 2] port@0<Arg>| [ 1] r@1<Arg> | |
| | 0000 getlocal_WC_0 r@1 ( 299)[LiBc] | |
| | 0002 getlocal_WC_0 port@0 | |
| | 0004 opt_send_without_block <calldata!mid:unmonitor, argc:1, ARGS_SIMPLE> | |
| | 0006 pop | |
| | 0007 getlocal_WC_0 port@0 ( 300)[Li] | |
| | 0009 opt_send_without_block <calldata!mid:close, argc:0, ARGS_SIMPLE> | |
| | 0011 leave ( 301)[Br] | |
| |------------------------------------------------------------------------ | |
| local table (size: 5, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 5] ports@0<Rest>[ 4] monitors@1 [ 3] result_port@2[ 2] obj@3 [ 1] r@4 | |
| 0000 getlocal_WC_0 ports@0 ( 270)[LiCa] | |
| 0002 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0004 branchunless 14 | |
| 0006 putself | |
| 0007 opt_getconstant_path <ic:0 ArgumentError> | |
| 0009 putchilledstring "specify at least one ractor or `yield_value`" | |
| 0011 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0013 pop | |
| 0014 newhash 0 ( 272)[Li] | |
| 0016 setlocal_WC_0 monitors@1 | |
| 0018 getlocal_WC_0 ports@0 ( 274)[Li] | |
| 0020 send <calldata!mid:map, argc:0>, block in select | |
| 0023 setlocal_WC_0 ports@0 | |
| 0025 opt_invokebuiltin_delegate <builtin!ractor_select_internal/1>, 0( 289)[Li] | |
| 0028 expandarray 2, 0 | |
| 0031 setlocal_WC_0 result_port@2 | |
| 0033 setlocal_WC_0 obj@3 | |
| 0035 getlocal_WC_0 monitors@1 ( 291)[Li] | |
| 0037 getlocal_WC_0 result_port@2 | |
| 0039 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0041 dup | |
| 0042 setlocal_WC_0 r@4 | |
| 0044 branchunless 56 | |
| 0046 getlocal_WC_0 r@4 ( 292)[Li] | |
| 0048 getlocal_WC_0 r@4 | |
| 0050 opt_send_without_block <calldata!mid:value, argc:0, ARGS_SIMPLE> | |
| 0052 newarray 2 | |
| 0054 jump 62 ( 291) | |
| 0056 getlocal_WC_0 result_port@2 ( 294)[Li] | |
| 0058 getlocal_WC_0 obj@3 | |
| 0060 newarray 2 | |
| 0062 getlocal_WC_0 monitors@1 ( 298)[Li] | |
| 0064 send <calldata!mid:each, argc:0>, block in select | |
| 0067 pop | |
| 0068 leave ( 303)[Re] | |
| == disasm: #<ISeq:block in select@<internal:ractor>:274 (274,22)-(286,7)> | |
| local table (size: 2, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] arg@0<AmbiguousArg>[ 1] port@1 | |
| 0000 getlocal_WC_0 arg@0 ( 275)[LiBc] | |
| 0002 opt_getconstant_path <ic:0 Ractor> ( 276) | |
| 0004 topn 1 | |
| 0006 opt_send_without_block <calldata!mid:===, argc:1, FCALL|ARGS_SIMPLE> | |
| 0008 branchif 27 | |
| 0010 opt_getconstant_path <ic:1 Ractor::Port> ( 281) | |
| 0012 topn 1 | |
| 0014 opt_send_without_block <calldata!mid:===, argc:1, FCALL|ARGS_SIMPLE> | |
| 0016 branchif 64 | |
| 0018 pop ( 284) | |
| 0019 putself [Li] | |
| 0020 opt_getconstant_path <ic:2 ArgumentError> | |
| 0022 putchilledstring "should be Ractor::Port or Ractor" | |
| 0024 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0026 leave ( 286)[Br] | |
| 0027 pop ( 276) | |
| 0028 opt_getconstant_path <ic:3 Ractor::Port> ( 277)[Li] | |
| 0030 putnil | |
| 0031 swap | |
| 0032 opt_new <calldata!mid:new, argc:0, ARGS_SIMPLE>, 39 | |
| 0035 opt_send_without_block <calldata!mid:initialize, argc:0, FCALL|ARGS_SIMPLE> | |
| 0037 jump 42 | |
| 0039 opt_send_without_block <calldata!mid:new, argc:0, ARGS_SIMPLE> | |
| 0041 swap | |
| 0042 pop | |
| 0043 setlocal_WC_0 port@1 | |
| 0045 getlocal_WC_1 monitors@1 ( 278)[Li] | |
| 0047 getlocal_WC_0 port@1 | |
| 0049 getlocal_WC_0 arg@0 | |
| 0051 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0053 pop | |
| 0054 getlocal_WC_0 arg@0 ( 279)[Li] | |
| 0056 getlocal_WC_0 port@1 | |
| 0058 opt_send_without_block <calldata!mid:monitor, argc:1, ARGS_SIMPLE> | |
| 0060 pop | |
| 0061 getlocal_WC_0 port@1 ( 280)[Li] | |
| 0063 leave ( 286)[Br] | |
| 0064 pop ( 281) | |
| 0065 getlocal_WC_0 arg@0 ( 282)[Li] | |
| 0067 leave ( 286)[Br] | |
| == disasm: #<ISeq:block in select@<internal:ractor>:298 (298,20)-(301,9)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] port@0<Arg>[ 1] r@1<Arg> | |
| 0000 getlocal_WC_0 r@1 ( 299)[LiBc] | |
| 0002 getlocal_WC_0 port@0 | |
| 0004 opt_send_without_block <calldata!mid:unmonitor, argc:1, ARGS_SIMPLE> | |
| 0006 pop | |
| 0007 getlocal_WC_0 port@0 ( 300)[Li] | |
| 0009 opt_send_without_block <calldata!mid:close, argc:0, ARGS_SIMPLE> | |
| 0011 leave ( 301)[Br] | |
| == disasm: #<ISeq:receive@<internal:ractor>:310 (310,2)-(312,5)> | |
| 0000 opt_getconstant_path <ic:0 Ractor> ( 311)[LiCa] | |
| 0002 opt_send_without_block <calldata!mid:current, argc:0, ARGS_SIMPLE> | |
| 0004 opt_send_without_block <calldata!mid:default_port, argc:0, ARGS_SIMPLE> | |
| 0006 opt_send_without_block <calldata!mid:receive, argc:0, ARGS_SIMPLE> | |
| 0008 leave ( 312)[Re] | |
| == disasm: #<ISeq:singleton class@<internal:ractor>:314 (314,2)-(316,5)> | |
| 0000 putspecialobject 1 ( 315)[Li] | |
| 0002 putspecialobject 2 | |
| 0004 putobject :recv | |
| 0006 putobject :receive | |
| 0008 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0010 leave | |
| == disasm: #<ISeq:receive@<internal:ractor>:319 (319,10)-(321,5)> | |
| 0000 putself ( 320)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:default_port, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 opt_send_without_block <calldata!mid:receive, argc:0, ARGS_SIMPLE> | |
| 0005 leave ( 321)[Re] | |
| == disasm: #<ISeq:send@<internal:ractor>:329 (329,2)-(332,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 putself ( 330)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:default_port, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 getlocal_WC_0 "..."@0 | |
| 0005 sendforward <calldata!mid:send, argc:0, FORWARDING>, nil | |
| 0008 pop | |
| 0009 putself ( 331)[Li] | |
| 0010 leave ( 332)[Re] | |
| == disasm: #<ISeq:inspect@<internal:ractor>:335 (335,2)-(343,5)> | |
| local table (size: 4, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 4] loc@0 [ 3] name@1 [ 2] id@2 [ 1] status@3 | |
| 0000 opt_invokebuiltin_delegate <builtin!_bi336/0>, 0 ( 336)[LiCa] | |
| 0003 setlocal_WC_0 loc@0 | |
| 0005 opt_invokebuiltin_delegate <builtin!_bi337/0>, 0 ( 337)[Li] | |
| 0008 setlocal_WC_0 name@1 | |
| 0010 opt_invokebuiltin_delegate <builtin!_bi338/0>, 0 ( 338)[Li] | |
| 0013 setlocal_WC_0 id@2 | |
| 0015 opt_invokebuiltin_delegate <builtin!_bi339/0>, 0 ( 339)[Li] | |
| 0018 setlocal_WC_0 status@3 | |
| 0020 putobject "#<Ractor:#" ( 342)[Li] | |
| 0022 getlocal_WC_0 id@2 | |
| 0024 dup | |
| 0025 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0027 anytostring | |
| 0028 getlocal_WC_0 name@1 | |
| 0030 branchunless 40 | |
| 0032 putchilledstring " " | |
| 0034 getlocal_WC_0 name@1 | |
| 0036 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0038 jump 42 | |
| 0040 putchilledstring "" | |
| 0042 dup | |
| 0043 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0045 anytostring | |
| 0046 getlocal_WC_0 loc@0 | |
| 0048 branchunless 58 | |
| 0050 putchilledstring " " | |
| 0052 getlocal_WC_0 loc@0 | |
| 0054 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0056 jump 60 | |
| 0058 putchilledstring "" | |
| 0060 dup | |
| 0061 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0063 anytostring | |
| 0064 putobject " " | |
| 0066 getlocal_WC_0 status@3 | |
| 0068 dup | |
| 0069 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0071 anytostring | |
| 0072 putobject ">" | |
| 0074 concatstrings 7 | |
| 0076 leave ( 343)[Re] | |
| == disasm: #<ISeq:name@<internal:ractor>:348 (348,2)-(350,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi349/0>, 0 ( 349)[LiCa] | |
| 0003 leave ( 350)[Re] | |
| == disasm: #<ISeq:<class:RemoteError>@<internal:ractor>:352 (352,2)-(355,5)> | |
| 0000 putself ( 354)[LiCl] | |
| 0001 putobject :ractor | |
| 0003 opt_send_without_block <calldata!mid:attr_reader, argc:1, FCALL|ARGS_SIMPLE> | |
| 0005 leave ( 355)[En] | |
| == disasm: #<ISeq:close@<internal:ractor>:364 (364,2)-(366,5)> | |
| 0000 putself ( 365)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:default_port, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 opt_send_without_block <calldata!mid:close, argc:0, ARGS_SIMPLE> | |
| 0005 leave ( 366)[Re] | |
| == disasm: #<ISeq:shareable?@<internal:ractor>:379 (379,2)-(383,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] obj@0<Arg> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi380/0>, 0 ( 380)[LiCa] | |
| 0003 leave ( 383)[Re] | |
| == disasm: #<ISeq:make_shareable@<internal:ractor>:420 (420,2)-(430,5)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] obj@0<Arg> [ 2] copy@1 [ 1] ?@2 | |
| 0000 getlocal_WC_0 copy@1 ( 421)[LiCa] | |
| 0002 branchunless 8 | |
| 0004 opt_invokebuiltin_delegate <builtin!_bi422/0>, 0 ( 422)[Li] | |
| 0007 leave ( 430)[Re] | |
| 0008 opt_invokebuiltin_delegate_leave <builtin!_bi426/0>, 0 ( 426)[Li] | |
| 0011 leave ( 430)[Re] | |
| == disasm: #<ISeq:[]@<internal:ractor>:434 (434,2)-(439,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] sym@0<Arg> | |
| 0000 putself ( 435)[LiCa] | |
| 0001 opt_getconstant_path <ic:0 Ractor> | |
| 0003 opt_send_without_block <calldata!mid:current, argc:0, ARGS_SIMPLE> | |
| 0005 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, FCALL|ARGS_SIMPLE>[CcCr] | |
| 0008 branchunless 18 | |
| 0010 putself ( 436)[Li] | |
| 0011 opt_getconstant_path <ic:1 RuntimeError> | |
| 0013 putchilledstring "Cannot get ractor local storage for non-current ractor" | |
| 0015 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0017 pop | |
| 0018 opt_invokebuiltin_delegate_leave <builtin!ractor_local_value/1>, 0( 438)[Li] | |
| 0021 leave ( 439)[Re] | |
| == disasm: #<ISeq:[]=@<internal:ractor>:443 (443,2)-(448,5)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] sym@0<Arg> [ 1] val@1<Arg> | |
| 0000 putself ( 444)[LiCa] | |
| 0001 opt_getconstant_path <ic:0 Ractor> | |
| 0003 opt_send_without_block <calldata!mid:current, argc:0, ARGS_SIMPLE> | |
| 0005 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, FCALL|ARGS_SIMPLE>[CcCr] | |
| 0008 branchunless 18 | |
| 0010 putself ( 445)[Li] | |
| 0011 opt_getconstant_path <ic:1 RuntimeError> | |
| 0013 putchilledstring "Cannot set ractor local storage for non-current ractor" | |
| 0015 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0017 pop | |
| 0018 opt_invokebuiltin_delegate_leave <builtin!ractor_local_value_set/2>, 0( 447)[Li] | |
| 0021 leave ( 448)[Re] | |
| == disasm: #<ISeq:[]@<internal:ractor>:451 (451,2)-(453,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] sym@0<Arg> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ractor_local_value/1>, 0( 452)[LiCa] | |
| 0003 leave ( 453)[Re] | |
| == disasm: #<ISeq:[]=@<internal:ractor>:456 (456,2)-(458,5)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] sym@0<Arg> [ 1] val@1<Arg> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ractor_local_value_set/2>, 0( 457)[LiCa] | |
| 0003 leave ( 458)[Re] | |
| == disasm: #<ISeq:store_if_absent@<internal:ractor>:474 (474,2)-(476,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] sym@0<Arg> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ractor_local_value_store_if_absent/1>, 0( 475)[LiCa] | |
| 0003 leave ( 476)[Re] | |
| == disasm: #<ISeq:main@<internal:ractor>:479 (479,2)-(483,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi480/0>, 0 ( 480)[LiCa] | |
| 0003 leave ( 483)[Re] | |
| == disasm: #<ISeq:main?@<internal:ractor>:486 (486,2)-(490,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi487/0>, 0 ( 487)[LiCa] | |
| 0003 leave ( 490)[Re] | |
| == disasm: #<ISeq:_require@<internal:ractor>:493 (493,2)-(499,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] feature@0<Arg> | |
| 0000 putself ( 494)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:main?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchunless 12 | |
| 0005 putself ( 495)[Li] | |
| 0006 getlocal_WC_0 feature@0 | |
| 0008 invokesuper <calldata!argc:1, FCALL|ARGS_SIMPLE|SUPER>, nil | |
| 0011 leave ( 499)[Re] | |
| 0012 opt_invokebuiltin_delegate_leave <builtin!ractor_require/1>, 0( 497)[Li] | |
| 0015 leave ( 499)[Re] | |
| == disasm: #<ISeq:singleton class@<internal:ractor>:501 (501,2)-(518,5)> | |
| 0000 putself ( 502)[Li] | |
| 0001 opt_send_without_block <calldata!mid:private, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 pop | |
| 0004 definemethod :_activated, _activated ( 505)[Li] | |
| 0007 putobject :_activated | |
| 0009 leave | |
| == disasm: #<ISeq:_activated@<internal:ractor>:505 (505,4)-(517,7)> | |
| 0000 opt_getconstant_path <ic:0 Kernel> ( 506)[LiCa] | |
| 0002 opt_getconstant_path <ic:1 Module> | |
| 0004 send <calldata!mid:new, argc:0>, block in _activated | |
| 0007 opt_send_without_block <calldata!mid:prepend, argc:1, ARGS_SIMPLE> | |
| 0009 leave ( 517)[Re] | |
| == disasm: #<ISeq:block in _activated@<internal:ractor>:506 (506,31)-(516,7)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] m@0<AmbiguousArg> | |
| 0000 getlocal_WC_0 m@0 ( 507)[LiBc] | |
| 0002 putchilledstring "<RactorRequire>" | |
| 0004 opt_send_without_block <calldata!mid:set_temporary_name, argc:1, ARGS_SIMPLE> | |
| 0006 pop | |
| 0007 definemethod :require, require ( 509)[Li] | |
| 0010 putobject :require | |
| 0012 leave ( 516)[Br] | |
| == disasm: #<ISeq:require@<internal:ractor>:509 (509,8)-(515,11)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] feature@0<Arg> | |
| 0000 opt_getconstant_path <ic:0 Ractor> ( 510)[LiCa] | |
| 0002 opt_send_without_block <calldata!mid:main?, argc:0, ARGS_SIMPLE> | |
| 0004 branchunless 13 | |
| 0006 putself ( 511)[Li] | |
| 0007 getlocal_WC_0 feature@0 | |
| 0009 invokesuper <calldata!argc:1, FCALL|ARGS_SIMPLE|SUPER|ZSUPER>, nil | |
| 0012 leave ( 515)[Re] | |
| 0013 opt_getconstant_path <ic:1 Ractor> ( 513)[Li] | |
| 0015 getlocal_WC_0 feature@0 | |
| 0017 opt_send_without_block <calldata!mid:_require, argc:1, ARGS_SIMPLE> | |
| 0019 leave ( 515)[Re] | |
| == disasm: #<ISeq:default_port@<internal:ractor>:526 (526,2)-(530,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi527/0>, 0 ( 527)[LiCa] | |
| 0003 leave ( 530)[Re] | |
| == disasm: #<ISeq:join@<internal:ractor>:545 (545,2)-(556,5)> | |
| == catch table | |
| | catch type: ensure st: 0000 ed: 0038 sp: 0001 cont: 0043 | |
| | == disasm: #<ISeq:ensure in join@<internal:ractor>:555 (555,4)-(555,14)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_1 port@0 ( 555)[Li] | |
| | 0002 opt_send_without_block <calldata!mid:close, argc:0, ARGS_SIMPLE> | |
| | 0004 pop | |
| | 0005 getlocal_WC_0 "$!"@0 ( 554) | |
| | 0007 throw 0 | |
| |------------------------------------------------------------------------ | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] port@0 | |
| 0000 opt_getconstant_path <ic:0 Port> ( 546)[LiCa] | |
| 0002 putnil | |
| 0003 swap | |
| 0004 opt_new <calldata!mid:new, argc:0, ARGS_SIMPLE>, 11 | |
| 0007 opt_send_without_block <calldata!mid:initialize, argc:0, FCALL|ARGS_SIMPLE> | |
| 0009 jump 14 | |
| 0011 opt_send_without_block <calldata!mid:new, argc:0, ARGS_SIMPLE> | |
| 0013 swap | |
| 0014 pop | |
| 0015 setlocal_WC_0 port@0 | |
| 0017 putself ( 548)[Li] | |
| 0018 getlocal_WC_0 port@0 | |
| 0020 opt_send_without_block <calldata!mid:monitor, argc:1, FCALL|ARGS_SIMPLE> | |
| 0022 pop | |
| 0023 getlocal_WC_0 port@0 ( 549)[Li] | |
| 0025 opt_send_without_block <calldata!mid:receive, argc:0, ARGS_SIMPLE> | |
| 0027 putobject :aborted | |
| 0029 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0031 branchunless 37 | |
| 0033 opt_invokebuiltin_delegate <builtin!ractor_value/0>, 0( 550)[Li] | |
| 0036 pop | |
| 0037 putself ( 553)[Li] | |
| 0038 getlocal_WC_0 port@0 ( 555)[Li] | |
| 0040 opt_send_without_block <calldata!mid:close, argc:0, ARGS_SIMPLE> | |
| 0042 pop | |
| 0043 leave ( 556)[Re] | |
| == disasm: #<ISeq:value@<internal:ractor>:571 (571,2)-(574,5)> | |
| 0000 putself ( 572)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:join, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 pop | |
| 0004 opt_invokebuiltin_delegate_leave <builtin!ractor_value/0>, 0( 573)[Li] | |
| 0007 leave ( 574)[Re] | |
| == disasm: #<ISeq:monitor@<internal:ractor>:593 (593,2)-(595,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] port@0<Arg> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ractor_monitor/1>, 0( 594)[LiCa] | |
| 0003 leave ( 595)[Re] | |
| == disasm: #<ISeq:unmonitor@<internal:ractor>:603 (603,2)-(605,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] port@0<Arg> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ractor_unmonitor/1>, 0( 604)[LiCa] | |
| 0003 leave ( 605)[Re] | |
| == disasm: #<ISeq:shareable_proc@<internal:ractor>:626 (626,2)-(632,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 2] self@0 [ 1] ?@1 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi629/0>, 0 ( 629)[LiCa] | |
| 0003 leave ( 632)[Re] | |
| == disasm: #<ISeq:shareable_lambda@<internal:ractor>:640 (640,2)-(646,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 2] self@0 [ 1] ?@1 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi643/0>, 0 ( 643)[LiCa] | |
| 0003 leave ( 646)[Re] | |
| == disasm: #<ISeq:<class:Port>@<internal:ractor>:649 (649,2)-(803,5)> | |
| 0000 definemethod :receive, receive ( 699)[LiCl] | |
| 0003 definemethod :send, send ( 742)[Li] | |
| 0006 putspecialobject 1 ( 748)[Li] | |
| 0008 putspecialobject 2 | |
| 0010 putobject :<< | |
| 0012 putobject :send | |
| 0014 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0016 pop | |
| 0017 definemethod :close, close ( 776)[Li] | |
| 0020 definemethod :closed?, closed? ( 787)[Li] | |
| 0023 definemethod :inspect, inspect ( 796)[Li] | |
| 0026 putobject :inspect | |
| 0028 leave ( 803)[En] | |
| == disasm: #<ISeq:receive@<internal:ractor>:699 (699,4)-(703,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi700/0>, 0 ( 700)[LiCa] | |
| 0003 leave ( 703)[Re] | |
| == disasm: #<ISeq:send@<internal:ractor>:742 (742,4)-(746,7)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] obj@0<Arg> [ 2] move@1 [ 1] ?@2 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi743/0>, 0 ( 743)[LiCa] | |
| 0003 leave ( 746)[Re] | |
| == disasm: #<ISeq:close@<internal:ractor>:776 (776,4)-(780,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi777/0>, 0 ( 777)[LiCa] | |
| 0003 leave ( 780)[Re] | |
| == disasm: #<ISeq:closed?@<internal:ractor>:787 (787,4)-(791,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi788/0>, 0 ( 788)[LiCa] | |
| 0003 leave ( 791)[Re] | |
| == disasm: #<ISeq:inspect@<internal:ractor>:796 (796,4)-(802,7)> | |
| 0000 putobject "#<Ractor::Port to:#" ( 797)[LiCa] | |
| 0002 opt_invokebuiltin_delegate <builtin!_bi798/0>, 0 ( 798) | |
| 0005 dup ( 797) | |
| 0006 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0008 anytostring | |
| 0009 putobject " id:" ( 799) | |
| 0011 opt_invokebuiltin_delegate <builtin!_bi800/0>, 0 ( 800) | |
| 0014 dup ( 799) | |
| 0015 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0017 anytostring | |
| 0018 putobject ">" ( 801) | |
| 0020 concatstrings 5 ( 797) | |
| 0022 leave ( 802)[Re] | |
| == disasm: #<ISeq:<internal:numeric>@<internal:numeric>:1 (1,0)-(412,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Numeric, <class:Numeric>, 0 | |
| 0007 pop | |
| 0008 putspecialobject 3 ( 94)[Li] | |
| 0010 putnil | |
| 0011 defineclass :Integer, <class:Integer>, 0 | |
| 0015 pop | |
| 0016 putspecialobject 3 ( 349)[Li] | |
| 0018 putnil | |
| 0019 defineclass :Float, <class:Float>, 0 | |
| 0023 leave | |
| == disasm: #<ISeq:<class:Numeric>@<internal:numeric>:1 (1,0)-(92,3)> | |
| 0000 definemethod :dup, dup ( 9)[LiCl] | |
| 0003 definemethod :real?, real? ( 18)[Li] | |
| 0006 definemethod :real, real ( 27)[Li] | |
| 0009 definemethod :integer?, integer? ( 39)[Li] | |
| 0012 definemethod :finite?, finite? ( 48)[Li] | |
| 0015 definemethod :infinite?, infinite? ( 58)[Li] | |
| 0018 definemethod :imaginary, imaginary ( 67)[Li] | |
| 0021 putspecialobject 1 ( 71)[Li] | |
| 0023 putspecialobject 2 | |
| 0025 putobject :imag | |
| 0027 putobject :imaginary | |
| 0029 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0031 pop | |
| 0032 definemethod :conjugate, conjugate ( 78)[Li] | |
| 0035 putspecialobject 1 ( 82)[Li] | |
| 0037 putspecialobject 2 | |
| 0039 putobject :conj | |
| 0041 putobject :conjugate | |
| 0043 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0045 pop | |
| 0046 definemethod :+@, +@ ( 89)[Li] | |
| 0049 putobject :+@ | |
| 0051 leave ( 92)[En] | |
| == disasm: #<ISeq:dup@<internal:numeric>:9 (9,2)-(11,5)> | |
| 0000 putself ( 10)[LiCa] | |
| 0001 leave ( 11)[Re] | |
| == disasm: #<ISeq:real?@<internal:numeric>:18 (18,2)-(20,5)> | |
| 0000 putobject true ( 19)[LiCa] | |
| 0002 leave ( 20)[Re] | |
| == disasm: #<ISeq:real@<internal:numeric>:27 (27,2)-(29,5)> | |
| 0000 putself ( 28)[LiCa] | |
| 0001 leave ( 29)[Re] | |
| == disasm: #<ISeq:integer?@<internal:numeric>:39 (39,2)-(41,5)> | |
| 0000 putobject false ( 40)[LiCa] | |
| 0002 leave ( 41)[Re] | |
| == disasm: #<ISeq:finite?@<internal:numeric>:48 (48,2)-(50,5)> | |
| 0000 putobject true ( 49)[LiCa] | |
| 0002 leave ( 50)[Re] | |
| == disasm: #<ISeq:infinite?@<internal:numeric>:58 (58,2)-(60,5)> | |
| 0000 putnil ( 59)[LiCa] | |
| 0001 leave ( 60)[Re] | |
| == disasm: #<ISeq:imaginary@<internal:numeric>:67 (67,2)-(69,5)> | |
| 0000 putobject_INT2FIX_0_ ( 68)[LiCa] | |
| 0001 leave ( 69)[Re] | |
| == disasm: #<ISeq:conjugate@<internal:numeric>:78 (78,2)-(80,5)> | |
| 0000 putself ( 79)[LiCa] | |
| 0001 leave ( 80)[Re] | |
| == disasm: #<ISeq:+@@<internal:numeric>:89 (89,2)-(91,5)> | |
| 0000 putself ( 90)[LiCa] | |
| 0001 leave ( 91)[Re] | |
| == disasm: #<ISeq:<class:Integer>@<internal:numeric>:94 (94,0)-(347,3)> | |
| 0000 definemethod :-@, -@ ( 99)[LiCl] | |
| 0003 definemethod :~, ~ ( 118)[Li] | |
| 0006 definemethod :abs, abs ( 132)[Li] | |
| 0009 definemethod :bit_length, bit_length ( 179)[Li] | |
| 0012 definemethod :even?, even? ( 188)[Li] | |
| 0015 definemethod :integer?, integer? ( 197)[Li] | |
| 0018 putspecialobject 1 ( 201)[Li] | |
| 0020 putspecialobject 2 | |
| 0022 putobject :magnitude | |
| 0024 putobject :abs | |
| 0026 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0028 pop | |
| 0029 definemethod :odd?, odd? ( 207)[Li] | |
| 0032 definemethod :ord, ord ( 217)[Li] | |
| 0035 definemethod :size, size ( 234)[Li] | |
| 0038 definemethod :times, times ( 250)[Li] | |
| 0041 definemethod :to_i, to_i ( 267)[Li] | |
| 0044 definemethod :to_int, to_int ( 275)[Li] | |
| 0047 definemethod :zero?, zero? ( 283)[Li] | |
| 0050 definemethod :ceildiv, ceildiv ( 303)[Li] | |
| 0053 definemethod :numerator, numerator ( 313)[Li] | |
| 0056 definemethod :denominator, denominator ( 321)[Li] | |
| 0059 putself ( 325)[Li] | |
| 0060 send <calldata!mid:with_jit, argc:0, FCALL>, block in <class:Integer> | |
| 0063 leave ( 347)[En] | |
| == disasm: #<ISeq:-@@<internal:numeric>:99 (99,2)-(102,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi101/0>, 0 ( 101)[LiCa] | |
| 0003 leave ( 102)[Re] | |
| == disasm: #<ISeq:~@<internal:numeric>:118 (118,2)-(121,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi120/0>, 0 ( 120)[LiCa] | |
| 0003 leave ( 121)[Re] | |
| == disasm: #<ISeq:abs@<internal:numeric>:132 (132,2)-(135,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi134/0>, 0 ( 134)[LiCa] | |
| 0003 leave ( 135)[Re] | |
| == disasm: #<ISeq:bit_length@<internal:numeric>:179 (179,2)-(182,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi181/0>, 0 ( 181)[LiCa] | |
| 0003 leave ( 182)[Re] | |
| == disasm: #<ISeq:even?@<internal:numeric>:188 (188,2)-(191,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi190/0>, 0 ( 190)[LiCa] | |
| 0003 leave ( 191)[Re] | |
| == disasm: #<ISeq:integer?@<internal:numeric>:197 (197,2)-(199,5)> | |
| 0000 putobject true ( 198)[LiCa] | |
| 0002 leave ( 199)[Re] | |
| == disasm: #<ISeq:odd?@<internal:numeric>:207 (207,2)-(210,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi209/0>, 0 ( 209)[LiCa] | |
| 0003 leave ( 210)[Re] | |
| == disasm: #<ISeq:ord@<internal:numeric>:217 (217,2)-(219,5)> | |
| 0000 putself ( 218)[LiCa] | |
| 0001 leave ( 219)[Re] | |
| == disasm: #<ISeq:size@<internal:numeric>:234 (234,2)-(237,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi236/0>, 0 ( 236)[LiCa] | |
| 0003 leave ( 237)[Re] | |
| == disasm: #<ISeq:times@<internal:numeric>:250 (250,2)-(261,5)> INLINE_BLOCK | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] i@0 | |
| 0000 putnil ( 252)[LiCa] | |
| 0001 defined yield, false, true | |
| 0005 branchif 11 | |
| 0007 opt_invokebuiltin_delegate_leave <builtin!_bi253/0>, 0 ( 253)[Li] | |
| 0010 leave [Re] | |
| 0011 putobject_INT2FIX_0_ ( 255)[Li] | |
| 0012 setlocal_WC_0 i@0 | |
| 0014 jump 31 ( 256)[Li] | |
| 0016 putnil | |
| 0017 pop | |
| 0018 jump 31 | |
| 0020 getlocal_WC_0 i@0 ( 257)[Li] | |
| 0022 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0024 pop | |
| 0025 getlocal_WC_0 i@0 ( 258)[Li] | |
| 0027 opt_succ <calldata!mid:succ, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0029 setlocal_WC_0 i@0 | |
| 0031 getlocal_WC_0 i@0 ( 256) | |
| 0033 putself | |
| 0034 opt_lt <calldata!mid:<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0036 branchif 20 | |
| 0038 putnil | |
| 0039 pop | |
| 0040 putself ( 260)[Li] | |
| 0041 leave ( 261)[Re] | |
| == disasm: #<ISeq:to_i@<internal:numeric>:267 (267,2)-(269,5)> | |
| 0000 putself ( 268)[LiCa] | |
| 0001 leave ( 269)[Re] | |
| == disasm: #<ISeq:to_int@<internal:numeric>:275 (275,2)-(277,5)> | |
| 0000 putself ( 276)[LiCa] | |
| 0001 leave ( 277)[Re] | |
| == disasm: #<ISeq:zero?@<internal:numeric>:283 (283,2)-(286,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi285/0>, 0 ( 285)[LiCa] | |
| 0003 leave ( 286)[Re] | |
| == disasm: #<ISeq:ceildiv@<internal:numeric>:303 (303,2)-(305,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] other@0<Arg> | |
| 0000 putself ( 304)[LiCa] | |
| 0001 putobject_INT2FIX_0_ | |
| 0002 getlocal_WC_0 other@0 | |
| 0004 opt_minus <calldata!mid:-, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 opt_send_without_block <calldata!mid:div, argc:1, FCALL|ARGS_SIMPLE> | |
| 0008 opt_send_without_block <calldata!mid:-@, argc:0, ARGS_SIMPLE> | |
| 0010 leave ( 305)[Re] | |
| == disasm: #<ISeq:numerator@<internal:numeric>:313 (313,2)-(315,5)> | |
| 0000 putself ( 314)[LiCa] | |
| 0001 leave ( 315)[Re] | |
| == disasm: #<ISeq:denominator@<internal:numeric>:321 (321,2)-(323,5)> | |
| 0000 putobject_INT2FIX_1_ ( 322)[LiCa] | |
| 0001 leave ( 323)[Re] | |
| == disasm: #<ISeq:block in <class:Integer>@<internal:numeric>:325 (325,11)-(346,5)> | |
| 0000 putobject :downto ( 326)[LiBc] | |
| 0002 invokebuiltin <builtin!rb_builtin_basic_definition_p/1> | |
| 0004 branchunless 21 | |
| 0006 putspecialobject 1 ( 327)[Li] | |
| 0008 putspecialobject 2 | |
| 0010 putobject :downto | |
| 0012 opt_send_without_block <calldata!mid:core#undef_method, argc:2, ARGS_SIMPLE> | |
| 0014 pop | |
| 0015 definemethod :downto, downto ( 329)[Li] | |
| 0018 putobject :downto | |
| 0020 leave ( 346)[Br] | |
| 0021 putnil ( 329) | |
| 0022 leave ( 346)[Br] | |
| == disasm: #<ISeq:downto@<internal:numeric>:329 (329,6)-(344,9)> INLINE_BLOCK C_TRACE | |
| local table (size: 2, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] to@0<Arg> [ 1] from@1 | |
| 0000 putnil ( 334)[LiCa] | |
| 0001 defined yield, false, true | |
| 0005 branchif 11 | |
| 0007 opt_invokebuiltin_delegate_leave <builtin!_bi335/0>, 0 ( 335)[Li] | |
| 0010 leave [Re] | |
| 0011 putself ( 338)[Li] | |
| 0012 setlocal_WC_0 from@1 | |
| 0014 jump 31 ( 339)[Li] | |
| 0016 putnil | |
| 0017 pop | |
| 0018 jump 31 | |
| 0020 getlocal_WC_0 from@1 ( 340)[Li] | |
| 0022 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0024 pop | |
| 0025 getlocal_WC_0 from@1 ( 341)[Li] | |
| 0027 opt_send_without_block <calldata!mid:pred, argc:0, ARGS_SIMPLE> | |
| 0029 setlocal_WC_0 from@1 | |
| 0031 getlocal_WC_0 from@1 ( 339) | |
| 0033 getlocal_WC_0 to@0 | |
| 0035 opt_ge <calldata!mid:>=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0037 branchif 20 | |
| 0039 putnil | |
| 0040 pop | |
| 0041 putself ( 343)[Li] | |
| 0042 leave ( 344)[Re] | |
| == disasm: #<ISeq:<class:Float>@<internal:numeric>:349 (349,0)-(412,3)> | |
| 0000 definemethod :to_f, to_f ( 355)[LiCl] | |
| 0003 definemethod :abs, abs ( 368)[Li] | |
| 0006 putspecialobject 1 ( 373)[Li] | |
| 0008 putspecialobject 2 | |
| 0010 putobject :magnitude | |
| 0012 putobject :abs | |
| 0014 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0016 pop | |
| 0017 definemethod :-@, -@ ( 380)[Li] | |
| 0020 definemethod :zero?, zero? ( 389)[Li] | |
| 0023 definemethod :positive?, positive? ( 398)[Li] | |
| 0026 definemethod :negative?, negative? ( 407)[Li] | |
| 0029 putobject :negative? | |
| 0031 leave ( 412)[En] | |
| == disasm: #<ISeq:to_f@<internal:numeric>:355 (355,2)-(357,5)> | |
| 0000 putself ( 356)[LiCa] | |
| 0001 leave ( 357)[Re] | |
| == disasm: #<ISeq:abs@<internal:numeric>:368 (368,2)-(371,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi370/0>, 0 ( 370)[LiCa] | |
| 0003 leave ( 371)[Re] | |
| == disasm: #<ISeq:-@@<internal:numeric>:380 (380,2)-(383,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi382/0>, 0 ( 382)[LiCa] | |
| 0003 leave ( 383)[Re] | |
| == disasm: #<ISeq:zero?@<internal:numeric>:389 (389,2)-(392,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi391/0>, 0 ( 391)[LiCa] | |
| 0003 leave ( 392)[Re] | |
| == disasm: #<ISeq:positive?@<internal:numeric>:398 (398,2)-(401,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi400/0>, 0 ( 400)[LiCa] | |
| 0003 leave ( 401)[Re] | |
| == disasm: #<ISeq:negative?@<internal:numeric>:407 (407,2)-(410,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi409/0>, 0 ( 409)[LiCa] | |
| 0003 leave ( 410)[Re] | |
| == disasm: #<ISeq:with_jit@<internal:jit_hook>:4 (4,10)-(12,5)> | |
| == catch table | |
| | catch type: rescue st: 0001 ed: 0014 sp: 0000 cont: 0016 | |
| | == disasm: #<ISeq:defined guard in with_jit@<internal:jit_hook>:0 (0,0)-(-1,-1)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 putnil | |
| | 0001 leave | |
| | catch type: rescue st: 0024 ed: 0037 sp: 0000 cont: 0039 | |
| | == disasm: #<ISeq:defined guard in with_jit@<internal:jit_hook>:0 (0,0)-(-1,-1)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 putnil | |
| | 0001 leave | |
| |------------------------------------------------------------------------ | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: 0, kw: -1@-1, kwrest: -1]) | |
| [ 1] block@0<Block> | |
| 0000 putnil ( 6)[LiCa] | |
| 0001 putnil | |
| 0002 defined constant, :RubyVM, true | |
| 0006 branchunless 16 | |
| 0008 opt_getconstant_path <ic:0 RubyVM> | |
| 0010 defined constant-from, :ZJIT, true | |
| 0014 swap | |
| 0015 pop | |
| 0016 branchunless 23 | |
| 0018 opt_invokebuiltin_delegate <builtin!rb_zjit_option_enabled_p/0>, 0 | |
| 0021 branchunless 23 | |
| 0023 putnil ( 9)[Li] | |
| 0024 putnil | |
| 0025 defined constant, :RubyVM, true | |
| 0029 branchunless 39 | |
| 0031 opt_getconstant_path <ic:1 RubyVM> | |
| 0033 defined constant-from, :YJIT, true | |
| 0037 swap | |
| 0038 pop | |
| 0039 branchunless 51 | |
| 0041 opt_getconstant_path <ic:2 RubyVM::YJIT> ( 10)[Li] | |
| 0043 putobject :add_jit_hook | |
| 0045 getblockparam block@0, 0 | |
| 0048 opt_send_without_block <calldata!mid:send, argc:2, ARGS_SIMPLE> | |
| 0050 leave ( 12)[Re] | |
| 0051 putnil ( 10) | |
| 0052 leave ( 12)[Re] | |
| == disasm: #<ISeq:add_jit_hook@<internal:yjit>:274 (274,4)-(276,7)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] hook@0<Arg> | |
| 0000 getinstancevariable :@jit_hooks, <is:0> ( 275)[LiCa] | |
| 0003 getlocal_WC_0 hook@0 | |
| 0005 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0007 leave ( 276)[Re] | |
| == disasm: #<ISeq:<internal:io>@<internal:io>:1 (1,0)-(136,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :IO, <class:IO>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:IO>@<internal:io>:1 (1,0)-(136,3)> | |
| 0000 definemethod :read_nonblock, read_nonblock( 62)[LiCl] | |
| 0003 definemethod :write_nonblock, write_nonblock( 120)[Li] | |
| 0006 definemethod :readline, readline ( 133)[Li] | |
| 0009 putobject :readline | |
| 0011 leave ( 136)[En] | |
| == disasm: #<ISeq:read_nonblock@<internal:io>:62 (62,2)-(64,5)> | |
| local table (size: 4, argc: 1 [opts: 1, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 4] len@0<Arg> [ 3] buf@1<Opt=0>[ 2] exception@2[ 1] ?@3 | |
| 0000 putnil ( 62) | |
| 0001 setlocal_WC_0 buf@1 | |
| 0003 opt_invokebuiltin_delegate_leave <builtin!io_read_nonblock/3>, 0( 63)[LiCa] | |
| 0006 leave ( 64)[Re] | |
| == disasm: #<ISeq:write_nonblock@<internal:io>:120 (120,2)-(122,5)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] buf@0<Arg> [ 2] exception@1[ 1] ?@2 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!io_write_nonblock/2>, 0( 121)[LiCa] | |
| 0003 leave ( 122)[Re] | |
| == disasm: #<ISeq:readline@<internal:io>:133 (133,2)-(135,5)> | |
| local table (size: 4, argc: 0 [opts: 2, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 4] sep@0<Opt=0>[ 3] limit@1<Opt=4>[ 2] chomp@2 [ 1] ?@3 | |
| 0000 getglobal :$/ ( 133) | |
| 0002 setlocal_WC_0 sep@0 | |
| 0004 putnil | |
| 0005 setlocal_WC_0 limit@1 | |
| 0007 opt_invokebuiltin_delegate_leave <builtin!io_readline/3>, 0( 134)[LiCa] | |
| 0010 leave ( 135)[Re] | |
| == disasm: #<ISeq:<internal:dir>@<internal:dir>:158 (158,0)-(506,12)> | |
| 0000 putspecialobject 3 ( 158)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Dir, <class:Dir>, 0 | |
| 0007 pop | |
| 0008 putnil ( 416)[Li] | |
| 0009 leave | |
| == disasm: #<ISeq:<class:Dir>@<internal:dir>:158 (158,0)-(414,3)> | |
| 0000 putself ( 183)[LiCl] | |
| 0001 definesmethod :open, open | |
| 0004 definemethod :initialize, initialize ( 211)[Li] | |
| 0007 putself ( 222)[Li] | |
| 0008 definesmethod :[], [] | |
| 0011 putself ( 410)[Li] | |
| 0012 definesmethod :glob, glob | |
| 0015 putobject :glob | |
| 0017 leave ( 414)[En] | |
| == disasm: #<ISeq:open@<internal:dir>:183 (183,2)-(194,5)> | |
| == catch table | |
| | catch type: ensure st: 0010 ed: 0014 sp: 0001 cont: 0018 | |
| | == disasm: #<ISeq:ensure in open@<internal:dir>:189 (189,8)-(189,34)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_1 dir@4 ( 189)[Li] | |
| | 0002 invokebuiltin <builtin!dir_s_close/1> | |
| | 0004 pop | |
| | 0005 getlocal_WC_0 "$!"@0 ( 188) | |
| | 0007 throw 0 | |
| |------------------------------------------------------------------------ | |
| local table (size: 5, argc: 1 [opts: 0, rest: -1, post: 0, block: 3, kw: 1@0, kwrest: -1]) | |
| [ 5] name@0<Arg>[ 4] encoding@1 [ 3] ?@2 [ 2] block@3<Block>[ 1] dir@4 | |
| 0000 opt_invokebuiltin_delegate <builtin!dir_s_open/2>, 0 ( 184)[LiCa] | |
| 0003 setlocal_WC_0 dir@4 | |
| 0005 getblockparamproxy block@3, 0 ( 185)[Li] | |
| 0008 branchunless 19 | |
| 0010 getlocal_WC_0 dir@4 ( 187)[Li] | |
| 0012 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0014 opt_invokebuiltin_delegate <builtin!dir_s_close/1>, 4( 189)[Li] | |
| 0017 pop | |
| 0018 leave ( 194)[Re] | |
| 0019 getlocal_WC_0 dir@4 ( 192)[Li] | |
| 0021 leave ( 194)[Re] | |
| == disasm: #<ISeq:initialize@<internal:dir>:211 (211,2)-(213,5)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] name@0<Arg>[ 2] encoding@1 [ 1] ?@2 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!dir_initialize/2>, 0( 212)[LiCa] | |
| 0003 leave ( 213)[Re] | |
| == disasm: #<ISeq:[]@<internal:dir>:222 (222,2)-(224,5)> | |
| local table (size: 4, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: 2@0, kwrest: -1]) | |
| [ 4] args@0<Rest>[ 3] base@1 [ 2] sort@2 [ 1] ?@3 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!dir_s_aref/3>, 0 ( 223)[LiCa] | |
| 0003 leave ( 224)[Re] | |
| == disasm: #<ISeq:glob@<internal:dir>:410 (410,2)-(413,5)> | |
| local table (size: 6, argc: 1 [opts: 1, rest: -1, post: 0, block: -1, kw: 3@0, kwrest: -1]) | |
| [ 6] pattern@0<Arg>[ 5] _flags@1<Opt=0>[ 4] flags@2 [ 3] base@3 [ 2] sort@4 [ 1] ?@5 | |
| 0000 putobject_INT2FIX_0_ ( 410) | |
| 0001 setlocal_WC_0 _flags@1 | |
| 0003 checkkeyword 3, 0 | |
| 0006 branchif 12 | |
| 0008 getlocal_WC_0 _flags@1 | |
| 0010 setlocal_WC_0 flags@2 | |
| 0012 getlocal_WC_0 pattern@0 ( 412)[LiCa] | |
| 0014 getlocal_WC_0 flags@2 | |
| 0016 getlocal_WC_0 base@3 | |
| 0018 getlocal_WC_0 sort@4 | |
| 0020 invokebuiltin <builtin!dir_s_glob/4> | |
| 0022 leave ( 413)[Re] | |
| == disasm: #<ISeq:<internal:ast>@<internal:ast>:19 (19,0)-(332,3)> | |
| 0000 opt_getconstant_path <ic:0 RubyVM> ( 19)[Li] | |
| 0002 putnil | |
| 0003 defineclass :AbstractSyntaxTree, <module:AbstractSyntaxTree>, 10 | |
| 0007 leave | |
| == disasm: #<ISeq:<module:AbstractSyntaxTree>@<internal:ast>:19 (19,0)-(332,3)> | |
| 0000 putself ( 57)[LiCl] | |
| 0001 definesmethod :parse, parse | |
| 0004 putself ( 74)[Li] | |
| 0005 definesmethod :parse_file, parse_file | |
| 0008 putself ( 95)[Li] | |
| 0009 definesmethod :of, of | |
| 0012 putself ( 110)[Li] | |
| 0013 definesmethod :node_id_for_backtrace_location, node_id_for_backtrace_location | |
| 0016 putspecialobject 3 ( 119)[Li] | |
| 0018 putnil | |
| 0019 defineclass :Node, <class:Node>, 0 | |
| 0023 pop | |
| 0024 putspecialobject 3 ( 290)[Li] | |
| 0026 putnil | |
| 0027 defineclass :Location, <class:Location>, 0 | |
| 0031 leave ( 332)[En] | |
| == disasm: #<ISeq:parse@<internal:ast>:57 (57,2)-(59,5)> | |
| local table (size: 5, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 3@0, kwrest: -1]) | |
| [ 5] string@0<Arg>[ 4] keep_script_lines@1[ 3] error_tolerant@2[ 2] keep_tokens@3[ 1] ?@4 | |
| 0000 checkkeyword 3, 0 ( 57) | |
| 0003 branchif 11 | |
| 0005 opt_getconstant_path <ic:0 RubyVM> | |
| 0007 opt_send_without_block <calldata!mid:keep_script_lines, argc:0, ARGS_SIMPLE> | |
| 0009 setlocal_WC_0 keep_script_lines@1 | |
| 0011 opt_invokebuiltin_delegate_leave <builtin!ast_s_parse/4>, 0( 58)[LiCa] | |
| 0014 leave ( 59)[Re] | |
| == disasm: #<ISeq:parse_file@<internal:ast>:74 (74,2)-(76,5)> | |
| local table (size: 5, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 3@0, kwrest: -1]) | |
| [ 5] pathname@0<Arg>[ 4] keep_script_lines@1[ 3] error_tolerant@2[ 2] keep_tokens@3[ 1] ?@4 | |
| 0000 checkkeyword 3, 0 ( 74) | |
| 0003 branchif 11 | |
| 0005 opt_getconstant_path <ic:0 RubyVM> | |
| 0007 opt_send_without_block <calldata!mid:keep_script_lines, argc:0, ARGS_SIMPLE> | |
| 0009 setlocal_WC_0 keep_script_lines@1 | |
| 0011 opt_invokebuiltin_delegate_leave <builtin!ast_s_parse_file/4>, 0( 75)[LiCa] | |
| 0014 leave ( 76)[Re] | |
| == disasm: #<ISeq:of@<internal:ast>:95 (95,2)-(97,5)> | |
| local table (size: 5, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 3@0, kwrest: -1]) | |
| [ 5] body@0<Arg>[ 4] keep_script_lines@1[ 3] error_tolerant@2[ 2] keep_tokens@3[ 1] ?@4 | |
| 0000 checkkeyword 3, 0 ( 95) | |
| 0003 branchif 11 | |
| 0005 opt_getconstant_path <ic:0 RubyVM> | |
| 0007 opt_send_without_block <calldata!mid:keep_script_lines, argc:0, ARGS_SIMPLE> | |
| 0009 setlocal_WC_0 keep_script_lines@1 | |
| 0011 opt_invokebuiltin_delegate_leave <builtin!ast_s_of/4>, 0 ( 96)[LiCa] | |
| 0014 leave ( 97)[Re] | |
| == disasm: #<ISeq:node_id_for_backtrace_location@<internal:ast>:110 (110,2)-(112,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] backtrace_location@0<Arg> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!node_id_for_backtrace_location/1>, 0( 111)[LiCa] | |
| 0003 leave ( 112)[Re] | |
| == disasm: #<ISeq:<class:Node>@<internal:ast>:119 (119,2)-(283,5)> | |
| 0000 definemethod :type, type ( 132)[LiCl] | |
| 0003 definemethod :first_lineno, first_lineno( 140)[Li] | |
| 0006 definemethod :first_column, first_column( 148)[Li] | |
| 0009 definemethod :last_lineno, last_lineno ( 156)[Li] | |
| 0012 definemethod :last_column, last_column ( 164)[Li] | |
| 0015 definemethod :tokens, tokens ( 184)[Li] | |
| 0018 definemethod :all_tokens, all_tokens ( 205)[Li] | |
| 0021 definemethod :children, children ( 216)[Li] | |
| 0024 definemethod :inspect, inspect ( 224)[Li] | |
| 0027 definemethod :node_id, node_id ( 235)[Li] | |
| 0030 definemethod :script_lines, script_lines( 247)[Li] | |
| 0033 definemethod :source, source ( 263)[Li] | |
| 0036 definemethod :locations, locations ( 280)[Li] | |
| 0039 putobject :locations | |
| 0041 leave ( 283)[En] | |
| == disasm: #<ISeq:type@<internal:ast>:132 (132,4)-(134,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_type/0>, 0( 133)[LiCa] | |
| 0003 leave ( 134)[Re] | |
| == disasm: #<ISeq:first_lineno@<internal:ast>:140 (140,4)-(142,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_first_lineno/0>, 0( 141)[LiCa] | |
| 0003 leave ( 142)[Re] | |
| == disasm: #<ISeq:first_column@<internal:ast>:148 (148,4)-(150,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_first_column/0>, 0( 149)[LiCa] | |
| 0003 leave ( 150)[Re] | |
| == disasm: #<ISeq:last_lineno@<internal:ast>:156 (156,4)-(158,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_last_lineno/0>, 0( 157)[LiCa] | |
| 0003 leave ( 158)[Re] | |
| == disasm: #<ISeq:last_column@<internal:ast>:164 (164,4)-(166,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_last_column/0>, 0( 165)[LiCa] | |
| 0003 leave ( 166)[Re] | |
| == disasm: #<ISeq:tokens@<internal:ast>:184 (184,4)-(194,7)> | |
| 0000 putself ( 185)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:all_tokens, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 branchif 7 | |
| 0005 putnil | |
| 0006 leave [Re] | |
| 0007 putself ( 187)[Li] | |
| 0008 opt_send_without_block <calldata!mid:all_tokens, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0010 newarray 0 | |
| 0012 send <calldata!mid:each_with_object, argc:1>, block in tokens | |
| 0015 leave ( 194)[Re] | |
| == disasm: #<ISeq:block in tokens@<internal:ast>:187 (187,38)-(193,9)> | |
| local table (size: 3, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] token@0<Arg>[ 2] a@1<Arg> [ 1] loc@2 | |
| 0000 getlocal_WC_0 token@0 ( 188)[LiBc] | |
| 0002 opt_send_without_block <calldata!mid:last, argc:0, ARGS_SIMPLE> | |
| 0004 setlocal_WC_0 loc@2 | |
| 0006 putself ( 189)[Li] | |
| 0007 opt_send_without_block <calldata!mid:first_lineno, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0009 putself | |
| 0010 opt_send_without_block <calldata!mid:first_column, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0012 newarray 2 | |
| 0014 getlocal_WC_0 loc@2 | |
| 0016 putobject_INT2FIX_0_ | |
| 0017 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0019 getlocal_WC_0 loc@2 | |
| 0021 putobject_INT2FIX_1_ | |
| 0022 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0024 newarray 2 | |
| 0026 opt_send_without_block <calldata!mid:<=>, argc:1, ARGS_SIMPLE> | |
| 0028 putobject_INT2FIX_0_ | |
| 0029 opt_le <calldata!mid:<=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0031 branchunless 69 | |
| 0033 putself ( 190)[Li] | |
| 0034 opt_send_without_block <calldata!mid:last_lineno, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0036 putself | |
| 0037 opt_send_without_block <calldata!mid:last_column, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0039 newarray 2 | |
| 0041 getlocal_WC_0 loc@2 | |
| 0043 putobject 2 | |
| 0045 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0047 getlocal_WC_0 loc@2 | |
| 0049 putobject 3 | |
| 0051 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0053 newarray 2 | |
| 0055 opt_send_without_block <calldata!mid:<=>, argc:1, ARGS_SIMPLE> | |
| 0057 putobject_INT2FIX_0_ | |
| 0058 opt_ge <calldata!mid:>=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0060 branchunless 69 ( 189) | |
| 0062 getlocal_WC_0 a@1 ( 191)[Li] | |
| 0064 getlocal_WC_0 token@0 | |
| 0066 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0068 leave ( 193)[Br] | |
| 0069 putnil ( 191) | |
| 0070 leave ( 193)[Br] | |
| == disasm: #<ISeq:all_tokens@<internal:ast>:205 (205,4)-(207,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_all_tokens/0>, 0( 206)[LiCa] | |
| 0003 leave ( 207)[Re] | |
| == disasm: #<ISeq:children@<internal:ast>:216 (216,4)-(218,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_children/0>, 0( 217)[LiCa] | |
| 0003 leave ( 218)[Re] | |
| == disasm: #<ISeq:inspect@<internal:ast>:224 (224,4)-(226,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_inspect/0>, 0( 225)[LiCa] | |
| 0003 leave ( 226)[Re] | |
| == disasm: #<ISeq:node_id@<internal:ast>:235 (235,4)-(237,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_node_id/0>, 0( 236)[LiCa] | |
| 0003 leave ( 237)[Re] | |
| == disasm: #<ISeq:script_lines@<internal:ast>:247 (247,4)-(249,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_script_lines/0>, 0( 248)[LiCa] | |
| 0003 leave ( 249)[Re] | |
| == disasm: #<ISeq:source@<internal:ast>:263 (263,4)-(273,7)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] lines@0 | |
| 0000 putself ( 264)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:script_lines, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 setlocal_WC_0 lines@0 | |
| 0005 getlocal_WC_0 lines@0 ( 265)[Li] | |
| 0007 branchunless 75 | |
| 0009 getlocal_WC_0 lines@0 ( 266)[Li] | |
| 0011 putself | |
| 0012 opt_send_without_block <calldata!mid:first_lineno, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0014 putobject_INT2FIX_1_ | |
| 0015 opt_minus <calldata!mid:-, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0017 putself | |
| 0018 opt_send_without_block <calldata!mid:last_lineno, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0020 putobject_INT2FIX_1_ | |
| 0021 opt_minus <calldata!mid:-, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0023 newrange 0 | |
| 0025 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0027 setlocal_WC_0 lines@0 | |
| 0029 getlocal_WC_0 lines@0 ( 267)[Li] | |
| 0031 putobject -1 | |
| 0033 getlocal_WC_0 lines@0 | |
| 0035 putobject -1 | |
| 0037 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0039 putobject_INT2FIX_0_ | |
| 0040 putself | |
| 0041 opt_send_without_block <calldata!mid:last_column, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0043 newrange 1 | |
| 0045 opt_send_without_block <calldata!mid:byteslice, argc:1, ARGS_SIMPLE> | |
| 0047 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0049 pop | |
| 0050 getlocal_WC_0 lines@0 ( 268)[Li] | |
| 0052 putobject_INT2FIX_0_ | |
| 0053 getlocal_WC_0 lines@0 | |
| 0055 putobject_INT2FIX_0_ | |
| 0056 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0058 putself | |
| 0059 opt_send_without_block <calldata!mid:first_column, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0061 putobject -1 | |
| 0063 newrange 0 | |
| 0065 opt_send_without_block <calldata!mid:byteslice, argc:1, ARGS_SIMPLE> | |
| 0067 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| 0069 pop | |
| 0070 getlocal_WC_0 lines@0 ( 269)[Li] | |
| 0072 opt_send_without_block <calldata!mid:join, argc:0, ARGS_SIMPLE> | |
| 0074 leave ( 273)[Re] | |
| 0075 putnil ( 271)[Li] | |
| 0076 leave ( 273)[Re] | |
| == disasm: #<ISeq:locations@<internal:ast>:280 (280,4)-(282,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_node_locations/0>, 0( 281)[LiCa] | |
| 0003 leave ( 282)[Re] | |
| == disasm: #<ISeq:<class:Location>@<internal:ast>:290 (290,2)-(331,5)> | |
| 0000 definemethod :first_lineno, first_lineno( 296)[LiCl] | |
| 0003 definemethod :first_column, first_column( 304)[Li] | |
| 0006 definemethod :last_lineno, last_lineno ( 312)[Li] | |
| 0009 definemethod :last_column, last_column ( 320)[Li] | |
| 0012 definemethod :inspect, inspect ( 328)[Li] | |
| 0015 putobject :inspect | |
| 0017 leave ( 331)[En] | |
| == disasm: #<ISeq:first_lineno@<internal:ast>:296 (296,4)-(298,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_location_first_lineno/0>, 0( 297)[LiCa] | |
| 0003 leave ( 298)[Re] | |
| == disasm: #<ISeq:first_column@<internal:ast>:304 (304,4)-(306,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_location_first_column/0>, 0( 305)[LiCa] | |
| 0003 leave ( 306)[Re] | |
| == disasm: #<ISeq:last_lineno@<internal:ast>:312 (312,4)-(314,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_location_last_lineno/0>, 0( 313)[LiCa] | |
| 0003 leave ( 314)[Re] | |
| == disasm: #<ISeq:last_column@<internal:ast>:320 (320,4)-(322,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_location_last_column/0>, 0( 321)[LiCa] | |
| 0003 leave ( 322)[Re] | |
| == disasm: #<ISeq:inspect@<internal:ast>:328 (328,4)-(330,7)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!ast_location_inspect/0>, 0( 329)[LiCa] | |
| 0003 leave ( 330)[Re] | |
| == disasm: #<ISeq:<internal:trace_point>@<internal:trace_point>:49 (49,0)-(418,3)> | |
| 0000 putspecialobject 3 ( 49)[Li] | |
| 0002 putnil | |
| 0003 defineclass :TracePoint, <class:TracePoint>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:TracePoint>@<internal:trace_point>:49 (49,0)-(418,3)> | |
| 0000 putself ( 94)[LiCl] | |
| 0001 definesmethod :new, new | |
| 0004 definemethod :inspect, inspect ( 104)[Li] | |
| 0007 putself ( 117)[Li] | |
| 0008 definesmethod :stat, stat | |
| 0011 putself ( 132)[Li] | |
| 0012 definesmethod :trace, trace | |
| 0015 putself ( 198)[Li] | |
| 0016 definesmethod :allow_reentry, allow_reentry | |
| 0019 definemethod :enable, enable ( 259)[Li] | |
| 0022 definemethod :disable, disable ( 295)[Li] | |
| 0025 definemethod :enabled?, enabled? ( 304)[Li] | |
| 0028 definemethod :event, event ( 311)[Li] | |
| 0031 definemethod :lineno, lineno ( 316)[Li] | |
| 0034 definemethod :path, path ( 321)[Li] | |
| 0037 definemethod :parameters, parameters ( 327)[Li] | |
| 0040 definemethod :method_id, method_id ( 332)[Li] | |
| 0043 definemethod :callee_id, callee_id ( 337)[Li] | |
| 0046 definemethod :defined_class, defined_class( 373)[Li] | |
| 0049 definemethod :binding, binding ( 381)[Li] | |
| 0052 definemethod :self, self ( 391)[Li] | |
| 0055 definemethod :return_value, return_value( 396)[Li] | |
| 0058 definemethod :raised_exception, raised_exception( 401)[Li] | |
| 0061 definemethod :eval_script, eval_script ( 407)[Li] | |
| 0064 definemethod :instruction_sequence, instruction_sequence( 415)[Li] | |
| 0067 putobject :instruction_sequence | |
| 0069 leave ( 418)[En] | |
| == disasm: #<ISeq:new@<internal:trace_point>:94 (94,2)-(97,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] events@0<Rest> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_new_s/1>, 0( 96)[LiCa] | |
| 0003 leave ( 97)[Re] | |
| == disasm: #<ISeq:inspect@<internal:trace_point>:104 (104,2)-(106,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_inspect/0>, 0( 105)[LiCa] | |
| 0003 leave ( 106)[Re] | |
| == disasm: #<ISeq:stat@<internal:trace_point>:117 (117,2)-(119,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_stat_s/0>, 0( 118)[LiCa] | |
| 0003 leave ( 119)[Re] | |
| == disasm: #<ISeq:trace@<internal:trace_point>:132 (132,2)-(135,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] events@0<Rest> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_trace_s/1>, 0( 134)[LiCa] | |
| 0003 leave ( 135)[Re] | |
| == disasm: #<ISeq:allow_reentry@<internal:trace_point>:198 (198,2)-(201,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_allow_reentry/0>, 0( 200)[LiCa] | |
| 0003 leave ( 201)[Re] | |
| == disasm: #<ISeq:enable@<internal:trace_point>:259 (259,2)-(262,5)> | |
| local table (size: 4, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 3@0, kwrest: -1]) | |
| [ 4] target@0 [ 3] target_line@1[ 2] target_thread@2[ 1] ?@3 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_enable_m/3>, 0( 261)[LiCa] | |
| 0003 leave ( 262)[Re] | |
| == disasm: #<ISeq:disable@<internal:trace_point>:295 (295,2)-(298,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_disable_m/0>, 0( 297)[LiCa] | |
| 0003 leave ( 298)[Re] | |
| == disasm: #<ISeq:enabled?@<internal:trace_point>:304 (304,2)-(306,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_enabled_p/0>, 0( 305)[LiCa] | |
| 0003 leave ( 306)[Re] | |
| == disasm: #<ISeq:event@<internal:trace_point>:311 (311,2)-(313,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_event/0>, 0( 312)[LiCa] | |
| 0003 leave ( 313)[Re] | |
| == disasm: #<ISeq:lineno@<internal:trace_point>:316 (316,2)-(318,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_lineno/0>, 0( 317)[LiCa] | |
| 0003 leave ( 318)[Re] | |
| == disasm: #<ISeq:path@<internal:trace_point>:321 (321,2)-(323,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_path/0>, 0( 322)[LiCa] | |
| 0003 leave ( 323)[Re] | |
| == disasm: #<ISeq:parameters@<internal:trace_point>:327 (327,2)-(329,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_parameters/0>, 0( 328)[LiCa] | |
| 0003 leave ( 329)[Re] | |
| == disasm: #<ISeq:method_id@<internal:trace_point>:332 (332,2)-(334,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_method_id/0>, 0( 333)[LiCa] | |
| 0003 leave ( 334)[Re] | |
| == disasm: #<ISeq:callee_id@<internal:trace_point>:337 (337,2)-(339,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_callee_id/0>, 0( 338)[LiCa] | |
| 0003 leave ( 339)[Re] | |
| == disasm: #<ISeq:defined_class@<internal:trace_point>:373 (373,2)-(375,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_defined_class/0>, 0( 374)[LiCa] | |
| 0003 leave ( 375)[Re] | |
| == disasm: #<ISeq:binding@<internal:trace_point>:381 (381,2)-(383,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_binding/0>, 0( 382)[LiCa] | |
| 0003 leave ( 383)[Re] | |
| == disasm: #<ISeq:self@<internal:trace_point>:391 (391,2)-(393,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_self/0>, 0( 392)[LiCa] | |
| 0003 leave ( 393)[Re] | |
| == disasm: #<ISeq:return_value@<internal:trace_point>:396 (396,2)-(398,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_return_value/0>, 0( 397)[LiCa] | |
| 0003 leave ( 398)[Re] | |
| == disasm: #<ISeq:raised_exception@<internal:trace_point>:401 (401,2)-(403,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_raised_exception/0>, 0( 402)[LiCa] | |
| 0003 leave ( 403)[Re] | |
| == disasm: #<ISeq:eval_script@<internal:trace_point>:407 (407,2)-(409,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_eval_script/0>, 0( 408)[LiCa] | |
| 0003 leave ( 409)[Re] | |
| == disasm: #<ISeq:instruction_sequence@<internal:trace_point>:415 (415,2)-(417,5)> | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!tracepoint_attr_instruction_sequence/0>, 0( 416)[LiCa] | |
| 0003 leave ( 417)[Re] | |
| == disasm: #<ISeq:<internal:pack>@<internal:pack>:1 (1,0)-(36,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Array, <class:Array>, 0 | |
| 0007 pop | |
| 0008 putspecialobject 3 ( 12)[Li] | |
| 0010 putnil | |
| 0011 defineclass :String, <class:String>, 0 | |
| 0015 leave | |
| == disasm: #<ISeq:<class:Array>@<internal:pack>:1 (1,0)-(10,3)> | |
| 0000 definemethod :pack, pack ( 7)[LiCl] | |
| 0003 putobject :pack | |
| 0005 leave ( 10)[En] | |
| == disasm: #<ISeq:pack@<internal:pack>:7 (7,2)-(9,5)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] fmt@0<Arg> [ 2] buffer@1 [ 1] ?@2 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!pack_pack/2>, 0 ( 8)[LiCa] | |
| 0003 leave ( 9)[Re] | |
| == disasm: #<ISeq:<class:String>@<internal:pack>:12 (12,0)-(36,3)> | |
| 0000 definemethod :unpack, unpack ( 23)[LiCl] | |
| 0003 definemethod :unpack1, unpack1 ( 33)[Li] | |
| 0006 putobject :unpack1 | |
| 0008 leave ( 36)[En] | |
| == disasm: #<ISeq:unpack@<internal:pack>:23 (23,2)-(26,5)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] fmt@0<Arg> [ 2] offset@1 [ 1] ?@2 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!pack_unpack/2>, 0( 25)[LiCa] | |
| 0003 leave ( 26)[Re] | |
| == disasm: #<ISeq:unpack1@<internal:pack>:33 (33,2)-(35,5)> | |
| local table (size: 3, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] fmt@0<Arg> [ 2] offset@1 [ 1] ?@2 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!pack_unpack1/2>, 0( 34)[LiCa] | |
| 0003 leave ( 35)[Re] | |
| == disasm: #<ISeq:<internal:pathname_builtin>@<internal:pathname_builtin>:191 (191,0)-(1175,3)> | |
| 0000 putspecialobject 3 ( 191)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Pathname, <class:Pathname>, 0 | |
| 0007 pop | |
| 0008 putspecialobject 3 ( 867)[Li] | |
| 0010 putnil | |
| 0011 defineclass :Pathname, <class:Pathname>, 0 | |
| 0015 pop | |
| 0016 putspecialobject 3 (1010)[Li] | |
| 0018 putnil | |
| 0019 defineclass :Pathname, <class:Pathname>, 0 | |
| 0023 pop | |
| 0024 putspecialobject 3 (1097)[Li] | |
| 0026 putnil | |
| 0027 defineclass :Pathname, <class:Pathname>, 0 | |
| 0031 pop | |
| 0032 putspecialobject 3 (1153)[Li] | |
| 0034 putnil | |
| 0035 defineclass :Pathname, <class:Pathname>, 0 | |
| 0039 pop | |
| 0040 putspecialobject 3 (1164)[Li] | |
| 0042 putnil | |
| 0043 defineclass :Pathname, <class:Pathname>, 0 | |
| 0047 pop | |
| 0048 putspecialobject 3 (1168)[Li] | |
| 0050 putnil | |
| 0051 defineclass :Kernel, <module:Kernel>, 2 | |
| 0055 leave | |
| == disasm: #<ISeq:<class:Pathname>@<internal:pathname_builtin>:191 (191,0)-(865,3)> | |
| 0000 putchilledstring "0.4.0" ( 194)[LiCl] | |
| 0002 putspecialobject 3 | |
| 0004 setconstant :VERSION | |
| 0006 putobject :to_path ( 199)[Li] | |
| 0008 putspecialobject 3 | |
| 0010 setconstant :TO_PATH | |
| 0012 opt_getconstant_path <ic:0 File::FNM_SYSCASE> ( 201)[Li] | |
| 0014 opt_send_without_block <calldata!mid:nonzero?, argc:0, ARGS_SIMPLE> | |
| 0016 branchunless 24 | |
| 0018 putself ( 203)[Li] | |
| 0019 send <calldata!mid:proc, argc:0, FCALL>, block in <class:Pathname> | |
| 0022 jump 28 ( 201) | |
| 0024 putself ( 205)[Li] | |
| 0025 send <calldata!mid:proc, argc:0, FCALL>, block in <class:Pathname> | |
| 0028 putspecialobject 3 ( 201) | |
| 0030 setconstant :SAME_PATHS | |
| 0032 putself ( 208)[Li] | |
| 0033 putobject :path | |
| 0035 opt_send_without_block <calldata!mid:attr_reader, argc:1, FCALL|ARGS_SIMPLE> | |
| 0037 pop | |
| 0038 putself ( 209)[Li] | |
| 0039 putobject :path | |
| 0041 opt_send_without_block <calldata!mid:protected, argc:1, FCALL|ARGS_SIMPLE> | |
| 0043 pop | |
| 0044 definemethod :initialize, initialize ( 217)[Li] | |
| 0047 definemethod :freeze, freeze ( 230)[Li] | |
| 0050 definemethod :==, == ( 241)[Li] | |
| 0053 putspecialobject 1 ( 245)[Li] | |
| 0055 putspecialobject 2 | |
| 0057 putobject :=== | |
| 0059 putobject :== | |
| 0061 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0063 pop | |
| 0064 putspecialobject 1 ( 246)[Li] | |
| 0066 putspecialobject 2 | |
| 0068 putobject :eql? | |
| 0070 putobject :== | |
| 0072 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0074 pop | |
| 0075 putself ( 248)[Li] | |
| 0076 putobject :<=> | |
| 0078 putobject false | |
| 0080 opt_send_without_block <calldata!mid:method_defined?, argc:2, FCALL|ARGS_SIMPLE> | |
| 0082 branchif 87 | |
| 0084 definemethod :<=>, <=> ( 250)[Li] | |
| 0087 definemethod :hash, hash ( 256)[Li] | |
| 0090 definemethod :to_s, to_s ( 261)[Li] | |
| 0093 putself ( 266)[Li] | |
| 0094 opt_getconstant_path <ic:1 TO_PATH> | |
| 0096 putobject :to_s | |
| 0098 opt_send_without_block <calldata!mid:alias_method, argc:2, FCALL|ARGS_SIMPLE> | |
| 0100 pop | |
| 0101 definemethod :inspect, inspect ( 268)[Li] | |
| 0104 putself ( 272)[Li] | |
| 0105 putobject :sub | |
| 0107 putobject false | |
| 0109 opt_send_without_block <calldata!mid:method_defined?, argc:2, FCALL|ARGS_SIMPLE> | |
| 0111 branchif 116 | |
| 0113 definemethod :sub, sub ( 274)[Li] | |
| 0116 definemethod :sub_ext, sub_ext ( 299)[Li] | |
| 0119 opt_getconstant_path <ic:2 File::ALT_SEPARATOR>( 313)[Li] | |
| 0121 branchunless 164 | |
| 0123 opt_getconstant_path <ic:3 Regexp> ( 315)[Li] | |
| 0125 opt_getconstant_path <ic:4 File::ALT_SEPARATOR> | |
| 0127 dup | |
| 0128 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0130 anytostring | |
| 0131 opt_getconstant_path <ic:5 File::SEPARATOR> | |
| 0133 dup | |
| 0134 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0136 anytostring | |
| 0137 concatstrings 2 | |
| 0139 opt_send_without_block <calldata!mid:quote, argc:1, ARGS_SIMPLE> | |
| 0141 putspecialobject 3 | |
| 0143 setconstant :SEPARATOR_LIST | |
| 0145 putobject "[" ( 317)[Li] | |
| 0147 opt_getconstant_path <ic:6 SEPARATOR_LIST> | |
| 0149 dup | |
| 0150 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0152 anytostring | |
| 0153 putobject "]" | |
| 0155 toregexp 0, 3 | |
| 0158 putspecialobject 3 | |
| 0160 setconstant :SEPARATOR_PAT | |
| 0162 jump 189 ( 313) | |
| 0164 opt_getconstant_path <ic:7 Regexp> ( 319)[Li] | |
| 0166 opt_getconstant_path <ic:8 File::SEPARATOR> | |
| 0168 opt_send_without_block <calldata!mid:quote, argc:1, ARGS_SIMPLE> | |
| 0170 putspecialobject 3 | |
| 0172 setconstant :SEPARATOR_LIST | |
| 0174 putobject "" ( 320)[Li] | |
| 0176 opt_getconstant_path <ic:9 SEPARATOR_LIST> | |
| 0178 dup | |
| 0179 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0181 anytostring | |
| 0182 toregexp 0, 2 | |
| 0185 putspecialobject 3 | |
| 0187 setconstant :SEPARATOR_PAT | |
| 0189 opt_getconstant_path <ic:10 File> ( 323)[Li] | |
| 0191 putchilledstring "A:" | |
| 0193 opt_send_without_block <calldata!mid:dirname, argc:1, ARGS_SIMPLE> | |
| 0195 putchilledstring "A:." | |
| 0197 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0199 branchunless 220 | |
| 0201 putobject "\\A(?:[A-Za-z]:|" ( 325)[Li] | |
| 0203 opt_getconstant_path <ic:11 SEPARATOR_PAT> | |
| 0205 dup | |
| 0206 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0208 anytostring | |
| 0209 putobject ")" | |
| 0211 toregexp 0, 3 | |
| 0214 putspecialobject 3 | |
| 0216 setconstant :ABSOLUTE_PATH | |
| 0218 jump 235 ( 323) | |
| 0220 putobject "\\A" ( 327)[Li] | |
| 0222 opt_getconstant_path <ic:12 SEPARATOR_PAT> | |
| 0224 dup | |
| 0225 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0227 anytostring | |
| 0228 toregexp 0, 2 | |
| 0231 putspecialobject 3 | |
| 0233 setconstant :ABSOLUTE_PATH | |
| 0235 putself ( 329)[Li] | |
| 0236 putobject :ABSOLUTE_PATH | |
| 0238 opt_send_without_block <calldata!mid:private_constant, argc:1, FCALL|ARGS_SIMPLE> | |
| 0240 pop | |
| 0241 definemethod :mkpath, mkpath ( 337)[Li] | |
| 0244 definemethod :chop_basename, chop_basename( 362)[Li] | |
| 0247 putself ( 370)[Li] | |
| 0248 putobject :chop_basename | |
| 0250 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0252 pop | |
| 0253 definemethod :split_names, split_names ( 373)[Li] | |
| 0256 putself ( 381)[Li] | |
| 0257 putobject :split_names | |
| 0259 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0261 pop | |
| 0262 definemethod :prepend_prefix, prepend_prefix( 383)[Li] | |
| 0265 putself ( 394)[Li] | |
| 0266 putobject :prepend_prefix | |
| 0268 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0270 pop | |
| 0271 definemethod :cleanpath, cleanpath ( 406)[Li] | |
| 0274 definemethod :cleanpath_aggressive, cleanpath_aggressive( 418)[Li] | |
| 0277 putself ( 442)[Li] | |
| 0278 putobject :cleanpath_aggressive | |
| 0280 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0282 pop | |
| 0283 definemethod :has_trailing_separator?, has_trailing_separator?( 445)[Li] | |
| 0286 putself ( 453)[Li] | |
| 0287 putobject :has_trailing_separator? | |
| 0289 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0291 pop | |
| 0292 definemethod :add_trailing_separator, add_trailing_separator( 456)[Li] | |
| 0295 putself ( 463)[Li] | |
| 0296 putobject :add_trailing_separator | |
| 0298 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0300 pop | |
| 0301 definemethod :del_trailing_separator, del_trailing_separator( 465)[Li] | |
| 0304 putself ( 475)[Li] | |
| 0305 putobject :del_trailing_separator | |
| 0307 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0309 pop | |
| 0310 definemethod :cleanpath_conservative, cleanpath_conservative( 477)[Li] | |
| 0313 putself ( 503)[Li] | |
| 0314 putobject :cleanpath_conservative | |
| 0316 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0318 pop | |
| 0319 definemethod :parent, parent ( 508)[Li] | |
| 0322 definemethod :mountpoint?, mountpoint? ( 513)[Li] | |
| 0325 definemethod :root?, root? ( 530)[Li] | |
| 0328 definemethod :absolute?, absolute? ( 545)[Li] | |
| 0331 definemethod :relative?, relative? ( 560)[Li] | |
| 0334 definemethod :each_filename, each_filename( 577)[Li] | |
| 0337 definemethod :descend, descend ( 609)[Li] | |
| 0340 definemethod :ascend, ascend ( 642)[Li] | |
| 0343 definemethod :+, + ( 668)[Li] | |
| 0346 putspecialobject 1 ( 672)[Li] | |
| 0348 putspecialobject 2 | |
| 0350 putobject :/ | |
| 0352 putobject :+ | |
| 0354 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0356 pop | |
| 0357 definemethod :plus, plus ( 674)[Li] | |
| 0360 putself ( 714)[Li] | |
| 0361 putobject :plus | |
| 0363 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0365 pop | |
| 0366 definemethod :join, join ( 728)[Li] | |
| 0369 definemethod :children, children ( 761)[Li] | |
| 0372 definemethod :each_child, each_child ( 811)[Li] | |
| 0375 definemethod :relative_path_from, relative_path_from( 829)[Li] | |
| 0378 putobject :relative_path_from | |
| 0380 leave ( 865)[En] | |
| == disasm: #<ISeq:block in <class:Pathname>@<internal:pathname_builtin>:203 (203,9)-(203,35)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] a@0<Arg> [ 1] b@1<Arg> | |
| 0000 getlocal_WC_0 a@0 ( 203)[LiBc] | |
| 0002 getlocal_WC_0 b@1 | |
| 0004 opt_send_without_block <calldata!mid:casecmp, argc:1, ARGS_SIMPLE> | |
| 0006 putobject_INT2FIX_0_ | |
| 0007 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0009 leave [Br] | |
| == disasm: #<ISeq:block in <class:Pathname>@<internal:pathname_builtin>:205 (205,9)-(205,24)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] a@0<Arg> [ 1] b@1<Arg> | |
| 0000 getlocal_WC_0 a@0 ( 205)[LiBc] | |
| 0002 getlocal_WC_0 b@1 | |
| 0004 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 leave [Br] | |
| == disasm: #<ISeq:initialize@<internal:pathname_builtin>:217 (217,2)-(228,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] path@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 String> ( 218)[LiCa] | |
| 0002 getlocal_WC_0 path@0 | |
| 0004 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| 0006 branchif 36 | |
| 0008 getlocal_WC_0 path@0 ( 219)[Li] | |
| 0010 putobject :to_path | |
| 0012 opt_send_without_block <calldata!mid:respond_to?, argc:1, ARGS_SIMPLE> | |
| 0014 branchunless 22 | |
| 0016 getlocal_WC_0 path@0 | |
| 0018 opt_send_without_block <calldata!mid:to_path, argc:0, ARGS_SIMPLE> | |
| 0020 setlocal_WC_0 path@0 | |
| 0022 opt_getconstant_path <ic:2 String> ( 220)[Li] | |
| 0024 getlocal_WC_0 path@0 | |
| 0026 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| 0028 branchif 36 | |
| 0030 putself | |
| 0031 opt_getconstant_path <ic:3 TypeError> | |
| 0033 opt_send_without_block <calldata!mid:raise, argc:1, FCALL|ARGS_SIMPLE> | |
| 0035 pop | |
| 0036 getlocal_WC_0 path@0 ( 223)[Li] | |
| 0038 putchilledstring "\u0000" | |
| 0040 opt_send_without_block <calldata!mid:include?, argc:1, ARGS_SIMPLE> | |
| 0042 branchunless 62 | |
| 0044 putself ( 224)[Li] | |
| 0045 opt_getconstant_path <ic:4 ArgumentError> | |
| 0047 putobject "pathname contains \\0: " | |
| 0049 getlocal_WC_0 path@0 | |
| 0051 opt_send_without_block <calldata!mid:inspect, argc:0, ARGS_SIMPLE> | |
| 0053 dup | |
| 0054 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0056 anytostring | |
| 0057 concatstrings 2 | |
| 0059 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0061 pop | |
| 0062 getlocal_WC_0 path@0 ( 227)[Li] | |
| 0064 opt_send_without_block <calldata!mid:dup, argc:0, ARGS_SIMPLE> | |
| 0066 dup | |
| 0067 setinstancevariable :@path, <is:0> | |
| 0070 leave ( 228)[Re] | |
| == disasm: #<ISeq:freeze@<internal:pathname_builtin>:230 (230,2)-(234,5)> | |
| 0000 putself ( 231)[LiCa] | |
| 0001 invokesuper <calldata!argc:0, FCALL|ARGS_SIMPLE|SUPER|ZSUPER>, nil | |
| 0004 pop | |
| 0005 getinstancevariable :@path, <is:0> ( 232)[Li] | |
| 0008 opt_send_without_block <calldata!mid:freeze, argc:0, ARGS_SIMPLE> | |
| 0010 pop | |
| 0011 putself ( 233)[Li] | |
| 0012 leave ( 234)[Re] | |
| == disasm: #<ISeq:==@<internal:pathname_builtin>:241 (241,2)-(244,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] other@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 Pathname> ( 242)[LiCa] | |
| 0002 getlocal_WC_0 other@0 | |
| 0004 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| 0006 branchif 11 | |
| 0008 putobject false | |
| 0010 leave [Re] | |
| 0011 getlocal_WC_0 other@0 ( 243)[Li] | |
| 0013 opt_send_without_block <calldata!mid:path, argc:0, ARGS_SIMPLE> | |
| 0015 getinstancevariable :@path, <is:0> | |
| 0018 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0020 leave ( 244)[Re] | |
| == disasm: #<ISeq:<=>@<internal:pathname_builtin>:250 (250,4)-(253,7)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] other@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 Pathname> ( 251)[LiCa] | |
| 0002 getlocal_WC_0 other@0 | |
| 0004 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| 0006 branchif 10 | |
| 0008 putnil | |
| 0009 leave [Re] | |
| 0010 getinstancevariable :@path, <is:0> ( 252)[Li] | |
| 0013 putchilledstring "/" | |
| 0015 putchilledstring "\u0000" | |
| 0017 opt_send_without_block <calldata!mid:tr, argc:2, ARGS_SIMPLE> | |
| 0019 getlocal_WC_0 other@0 | |
| 0021 opt_send_without_block <calldata!mid:path, argc:0, ARGS_SIMPLE> | |
| 0023 putchilledstring "/" | |
| 0025 putchilledstring "\u0000" | |
| 0027 opt_send_without_block <calldata!mid:tr, argc:2, ARGS_SIMPLE> | |
| 0029 opt_send_without_block <calldata!mid:<=>, argc:1, ARGS_SIMPLE> | |
| 0031 leave ( 253)[Re] | |
| == disasm: #<ISeq:hash@<internal:pathname_builtin>:256 (256,2)-(258,5)> | |
| 0000 getinstancevariable :@path, <is:0> ( 257)[LiCa] | |
| 0003 opt_send_without_block <calldata!mid:hash, argc:0, ARGS_SIMPLE> | |
| 0005 leave ( 258)[Re] | |
| == disasm: #<ISeq:to_s@<internal:pathname_builtin>:261 (261,2)-(263,5)> | |
| 0000 getinstancevariable :@path, <is:0> ( 262)[LiCa] | |
| 0003 opt_send_without_block <calldata!mid:dup, argc:0, ARGS_SIMPLE> | |
| 0005 leave ( 263)[Re] | |
| == disasm: #<ISeq:inspect@<internal:pathname_builtin>:268 (268,2)-(270,5)> | |
| 0000 putobject "#<" ( 269)[LiCa] | |
| 0002 putself | |
| 0003 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0005 dup | |
| 0006 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0008 anytostring | |
| 0009 putobject ":" | |
| 0011 getinstancevariable :@path, <is:0> | |
| 0014 dup | |
| 0015 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0017 anytostring | |
| 0018 putobject ">" | |
| 0020 concatstrings 5 | |
| 0022 leave ( 270)[Re] | |
| == disasm: #<ISeq:sub@<internal:pathname_builtin>:274 (274,4)-(290,7)> | |
| == catch table | |
| | catch type: break st: 0005 ed: 0019 sp: 0000 cont: 0019 | |
| | == disasm: #<ISeq:block in sub@<internal:pathname_builtin>:276 (276,51)-(285,9)> | |
| | == catch table | |
| | | catch type: ensure st: 0000 ed: 0032 sp: 0000 cont: 0043 | |
| | | == disasm: #<ISeq:ensure in block in sub@<internal:pathname_builtin>:282 (282,12)-(282,57)> | |
| | | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | | [ 1] "$!"@0 | |
| | | 0000 opt_getconstant_path <ic:0 Thread> ( 282)[Li] | |
| | | 0002 opt_send_without_block <calldata!mid:current, argc:0, ARGS_SIMPLE> | |
| | | 0004 putobject :pathname_sub_matchdata | |
| | | 0006 getlocal_WC_1 old@1 | |
| | | 0008 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| | | 0010 pop | |
| | | 0011 getlocal_WC_0 "$!"@0 ( 281) | |
| | | 0013 throw 0 | |
| | | catch type: redo st: 0000 ed: 0049 sp: 0000 cont: 0000 | |
| | | catch type: next st: 0000 ed: 0049 sp: 0000 cont: 0049 | |
| | |------------------------------------------------------------------------ | |
| | local table (size: 2, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 2] sub_args@0<Rest>| [ 1] old@1 | |
| | 0000 opt_getconstant_path <ic:0 Thread> ( 278)[LiBc] | |
| | 0002 opt_send_without_block <calldata!mid:current, argc:0, ARGS_SIMPLE> | |
| | 0004 putobject :pathname_sub_matchdata | |
| | 0006 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| | 0008 setlocal_WC_0 old@1 | |
| | 0010 opt_getconstant_path <ic:1 Thread> ( 279)[Li] | |
| | 0012 opt_send_without_block <calldata!mid:current, argc:0, ARGS_SIMPLE> | |
| | 0014 putobject :pathname_sub_matchdata | |
| | 0016 getglobal :$~ | |
| | 0018 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| | 0020 pop | |
| | 0021 putself ( 280)[Li] | |
| | 0022 putchilledstring "$~ = Thread.current[:pathname_sub_matchdata]" | |
| | 0024 getblockparam block@3, 1 | |
| | 0027 opt_send_without_block <calldata!mid:binding, argc:0, ARGS_SIMPLE> | |
| | 0029 opt_send_without_block <calldata!mid:eval, argc:2, FCALL|ARGS_SIMPLE> | |
| | 0031 pop | |
| | 0032 opt_getconstant_path <ic:2 Thread> ( 282)[Li] | |
| | 0034 opt_send_without_block <calldata!mid:current, argc:0, ARGS_SIMPLE> | |
| | 0036 putobject :pathname_sub_matchdata | |
| | 0038 getlocal_WC_0 old@1 | |
| | 0040 opt_aset <calldata!mid:[]=, argc:2, ARGS_SIMPLE>[CcCr] | |
| | 0042 pop | |
| | 0043 getlocal_WC_0 sub_args@0 ( 284)[Li] | |
| | 0045 splatarray false | |
| | 0047 invokeblock <calldata!argc:1, ARGS_SPLAT> | |
| | 0049 leave ( 285)[Br] | |
| |------------------------------------------------------------------------ | |
| local table (size: 5, argc: 1 [opts: 0, rest: 1, post: 0, block: 3, kw: -1@-1, kwrest: 2]) | |
| [ 5] pattern@0<Arg>[ 4] args@1<Rest>[ 3] kwargs@2<Kwrest>[ 2] block@3<Block>[ 1] path@4 | |
| 0000 getblockparamproxy block@3, 0 ( 275)[LiCa] | |
| 0003 branchunless 23 | |
| 0005 getinstancevariable :@path, <is:0> ( 276)[Li] | |
| 0008 getlocal_WC_0 pattern@0 | |
| 0010 getlocal_WC_0 args@1 | |
| 0012 splatarray false | |
| 0014 getlocal_WC_0 kwargs@2 | |
| 0016 send <calldata!mid:sub, argc:3, ARGS_SPLAT|KW_SPLAT>, block in sub | |
| 0019 setlocal_WC_0 path@4 | |
| 0021 jump 38 ( 275) | |
| 0023 getinstancevariable :@path, <is:1> ( 287)[Li] | |
| 0026 getlocal_WC_0 pattern@0 | |
| 0028 getlocal_WC_0 args@1 | |
| 0030 splatarray false | |
| 0032 getlocal_WC_0 kwargs@2 | |
| 0034 opt_send_without_block <calldata!mid:sub, argc:3, ARGS_SPLAT|KW_SPLAT> | |
| 0036 setlocal_WC_0 path@4 | |
| 0038 putself ( 289)[Li] | |
| 0039 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0041 putnil | |
| 0042 swap | |
| 0043 getlocal_WC_0 path@4 | |
| 0045 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 52 | |
| 0048 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0050 jump 55 | |
| 0052 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0054 swap | |
| 0055 pop | |
| 0056 leave ( 290)[Re] | |
| == disasm: #<ISeq:sub_ext@<internal:pathname_builtin>:299 (299,2)-(311,5)> | |
| local table (size: 2, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] repl@0<Arg>[ 1] ext@1 | |
| 0000 opt_getconstant_path <ic:5 File> ( 300)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:extname, argc:1, ARGS_SIMPLE> | |
| 0007 setlocal_WC_0 ext@1 | |
| 0009 getinstancevariable :@path, <is:1> ( 306)[Li] | |
| 0012 getlocal_WC_0 ext@1 | |
| 0014 opt_send_without_block <calldata!mid:end_with?, argc:1, ARGS_SIMPLE> | |
| 0016 branchif 35 | |
| 0018 getinstancevariable :@path, <is:2> ( 307)[Li] | |
| 0021 getinstancevariable :@path, <is:3> | |
| 0024 getlocal_WC_0 ext@1 | |
| 0026 opt_send_without_block <calldata!mid:rindex, argc:1, ARGS_SIMPLE> | |
| 0028 putnil | |
| 0029 newrange 0 | |
| 0031 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0033 setlocal_WC_0 ext@1 | |
| 0035 putself ( 310)[Li] | |
| 0036 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0038 putnil | |
| 0039 swap | |
| 0040 getinstancevariable :@path, <is:4> | |
| 0043 getlocal_WC_0 ext@1 | |
| 0045 opt_send_without_block <calldata!mid:chomp, argc:1, ARGS_SIMPLE> | |
| 0047 getlocal_WC_0 repl@0 | |
| 0049 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0051 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 58 | |
| 0054 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0056 jump 61 | |
| 0058 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0060 swap | |
| 0061 pop | |
| 0062 leave ( 311)[Re] | |
| == disasm: #<ISeq:mkpath@<internal:pathname_builtin>:337 (337,2)-(359,5)> | |
| == catch table | |
| | catch type: break st: 0033 ed: 0069 sp: 0000 cont: 0069 | |
| | catch type: next st: 0033 ed: 0069 sp: 0000 cont: 0030 | |
| | catch type: redo st: 0033 ed: 0069 sp: 0000 cont: 0033 | |
| | catch type: break st: 0070 ed: 0075 sp: 0000 cont: 0075 | |
| | == disasm: #<ISeq:block in mkpath@<internal:pathname_builtin>:346 (346,23)-(356,7)> | |
| | == catch table | |
| | | catch type: rescue st: 0000 ed: 0049 sp: 0000 cont: 0050 | |
| | | == disasm: #<ISeq:rescue in block in mkpath@<internal:pathname_builtin>:354 (354,4)-(355,39)> | |
| | | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | | [ 1] "$!"@0 | |
| | | 0000 getlocal_WC_0 "$!"@0 ( 354) | |
| | | 0002 opt_getconstant_path <ic:0 SystemCallError> | |
| | | 0004 checkmatch 3 | |
| | | 0006 branchunless 22 | |
| | | 0008 opt_getconstant_path <ic:1 File> ( 355)[LiRs] | |
| | | 0010 getlocal_WC_1 dir@0 | |
| | | 0012 opt_send_without_block <calldata!mid:directory?, argc:1, ARGS_SIMPLE> | |
| | | 0014 branchunless 18 | |
| | | 0016 putnil | |
| | | 0017 leave ( 354) | |
| | | 0018 putself ( 355) | |
| | | 0019 opt_send_without_block <calldata!mid:raise, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| | | 0021 leave ( 354) | |
| | | 0022 getlocal_WC_0 "$!"@0 | |
| | | 0024 throw 0 | |
| | | catch type: retry st: 0049 ed: 0050 sp: 0000 cont: 0000 | |
| | | catch type: redo st: 0000 ed: 0050 sp: 0000 cont: 0000 | |
| | | catch type: next st: 0000 ed: 0050 sp: 0000 cont: 0050 | |
| | |------------------------------------------------------------------------ | |
| | local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] dir@0<AmbiguousArg> | |
| | 0000 getlocal_WC_0 dir@0 ( 347)[LiBc] | |
| | 0002 putchilledstring "/" | |
| | 0004 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| | 0006 branchunless 12 | |
| | 0008 getlocal_WC_0 dir@0 | |
| | 0010 jump 18 | |
| | 0012 getlocal_WC_0 dir@0 | |
| | 0014 putchilledstring "/" | |
| | 0016 opt_send_without_block <calldata!mid:chomp, argc:1, ARGS_SIMPLE> | |
| | 0018 setlocal_WC_0 dir@0 | |
| | 0020 getlocal_WC_1 mode@0 ( 348)[Li] | |
| | 0022 branchunless 43 | |
| | 0024 opt_getconstant_path <ic:0 Dir> ( 349)[Li] | |
| | 0026 getlocal_WC_0 dir@0 | |
| | 0028 getlocal_WC_1 mode@0 | |
| | 0030 opt_send_without_block <calldata!mid:mkdir, argc:2, ARGS_SIMPLE> | |
| | 0032 pop | |
| | 0033 opt_getconstant_path <ic:1 File> ( 350)[Li] | |
| | 0035 getlocal_WC_1 mode@0 | |
| | 0037 getlocal_WC_0 dir@0 | |
| | 0039 opt_send_without_block <calldata!mid:chmod, argc:2, ARGS_SIMPLE> | |
| | 0041 jump 49 ( 348) | |
| | 0043 opt_getconstant_path <ic:2 Dir> ( 352)[Li] | |
| | 0045 getlocal_WC_0 dir@0 | |
| | 0047 opt_send_without_block <calldata!mid:mkdir, argc:1, ARGS_SIMPLE> | |
| | 0049 nop ( 346) | |
| | 0050 leave ( 356)[Br] | |
| |------------------------------------------------------------------------ | |
| local table (size: 4, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 4] mode@0 [ 3] ?@1 [ 2] path@2 [ 1] stack@3 | |
| 0000 getinstancevariable :@path, <is:0> ( 338)[LiCa] | |
| 0003 putchilledstring "/" | |
| 0005 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0007 branchunless 14 | |
| 0009 getinstancevariable :@path, <is:1> | |
| 0012 jump 21 | |
| 0014 getinstancevariable :@path, <is:2> | |
| 0017 putchilledstring "/" | |
| 0019 opt_send_without_block <calldata!mid:chomp, argc:1, ARGS_SIMPLE> | |
| 0021 setlocal_WC_0 path@2 | |
| 0023 newarray 0 ( 340)[Li] | |
| 0025 setlocal_WC_0 stack@3 | |
| 0027 jump 48 ( 341)[Li] | |
| 0029 putnil | |
| 0030 pop | |
| 0031 jump 48 | |
| 0033 getlocal_WC_0 stack@3 ( 342)[Li] | |
| 0035 getlocal_WC_0 path@2 | |
| 0037 opt_send_without_block <calldata!mid:push, argc:1, ARGS_SIMPLE> | |
| 0039 pop | |
| 0040 opt_getconstant_path <ic:3 File> ( 343)[Li] | |
| 0042 getlocal_WC_0 path@2 | |
| 0044 opt_send_without_block <calldata!mid:dirname, argc:1, ARGS_SIMPLE> | |
| 0046 setlocal_WC_0 path@2 | |
| 0048 opt_getconstant_path <ic:4 File> ( 341) | |
| 0050 getlocal_WC_0 path@2 | |
| 0052 opt_send_without_block <calldata!mid:directory?, argc:1, ARGS_SIMPLE> | |
| 0054 branchif 68 | |
| 0056 opt_getconstant_path <ic:5 File> | |
| 0058 getlocal_WC_0 path@2 | |
| 0060 opt_send_without_block <calldata!mid:dirname, argc:1, ARGS_SIMPLE> | |
| 0062 getlocal_WC_0 path@2 | |
| 0064 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0066 branchunless 33 | |
| 0068 putnil | |
| 0069 pop | |
| 0070 getlocal_WC_0 stack@3 ( 346)[Li] | |
| 0072 send <calldata!mid:reverse_each, argc:0>, block in mkpath | |
| 0075 pop | |
| 0076 putself ( 358)[Li] | |
| 0077 leave ( 359)[Re] | |
| == disasm: #<ISeq:chop_basename@<internal:pathname_builtin>:362 (362,2)-(369,5)> | |
| local table (size: 2, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] path@0<Arg>[ 1] base@1 | |
| 0000 opt_getconstant_path <ic:1 File> ( 363)[LiCa] | |
| 0002 getlocal_WC_0 path@0 | |
| 0004 opt_send_without_block <calldata!mid:basename, argc:1, ARGS_SIMPLE> | |
| 0006 setlocal_WC_0 base@1 | |
| 0008 once block in chop_basename, <is:0>( 364)[Li] | |
| 0011 getlocal_WC_0 base@1 | |
| 0013 opt_send_without_block <calldata!mid:match?, argc:1, ARGS_SIMPLE> | |
| 0015 branchunless 21 | |
| 0017 putnil ( 365)[Li] | |
| 0018 leave [Re] | |
| 0019 putnil | |
| 0020 leave ( 369)[Re] | |
| 0021 getlocal_WC_0 path@0 ( 367)[Li] | |
| 0023 putobject_INT2FIX_0_ | |
| 0024 getlocal_WC_0 path@0 | |
| 0026 getlocal_WC_0 base@1 | |
| 0028 opt_send_without_block <calldata!mid:rindex, argc:1, ARGS_SIMPLE> | |
| 0030 opt_send_without_block <calldata!mid:[], argc:2, ARGS_SIMPLE> | |
| 0032 getlocal_WC_0 base@1 | |
| 0034 newarray 2 | |
| 0036 leave [Re] | |
| 0037 putnil | |
| 0038 leave ( 369)[Re] | |
| == disasm: #<ISeq:block in chop_basename@<internal:pathname_builtin>:364 (364,7)-(364,31)> | |
| 0000 putobject "\\A" ( 364) | |
| 0002 opt_getconstant_path <ic:0 SEPARATOR_PAT> | |
| 0004 dup | |
| 0005 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0007 anytostring | |
| 0008 putobject "?\\z" | |
| 0010 toregexp 0, 3 | |
| 0013 leave | |
| == disasm: #<ISeq:split_names@<internal:pathname_builtin>:373 (373,2)-(380,5)> | |
| local table (size: 4, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 4] path@0<Arg>[ 3] names@1 [ 2] r@2 [ 1] basename@3 | |
| 0000 newarray 0 ( 374)[LiCa] | |
| 0002 setlocal_WC_0 names@1 | |
| 0004 jump 26 ( 375)[Li] | |
| 0006 putnil | |
| 0007 pop | |
| 0008 jump 26 | |
| 0010 getlocal_WC_0 r@2 ( 376)[Li] | |
| 0012 expandarray 2, 0 | |
| 0015 setlocal_WC_0 path@0 | |
| 0017 setlocal_WC_0 basename@3 | |
| 0019 getlocal_WC_0 names@1 ( 377)[Li] | |
| 0021 getlocal_WC_0 basename@3 | |
| 0023 opt_send_without_block <calldata!mid:unshift, argc:1, ARGS_SIMPLE> | |
| 0025 pop | |
| 0026 putself ( 375) | |
| 0027 getlocal_WC_0 path@0 | |
| 0029 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0031 dup | |
| 0032 setlocal_WC_0 r@2 | |
| 0034 branchif 10 | |
| 0036 putnil | |
| 0037 pop | |
| 0038 getlocal_WC_0 path@0 ( 379)[Li] | |
| 0040 getlocal_WC_0 names@1 | |
| 0042 newarray 2 | |
| 0044 leave [Re] | |
| 0045 putnil | |
| 0046 leave ( 380)[Re] | |
| == disasm: #<ISeq:prepend_prefix@<internal:pathname_builtin>:383 (383,2)-(393,5)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] prefix@0<Arg>[ 1] relpath@1<Arg> | |
| 0000 getlocal_WC_0 relpath@1 ( 384)[LiCa] | |
| 0002 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0004 branchunless 13 | |
| 0006 opt_getconstant_path <ic:0 File> ( 385)[Li] | |
| 0008 getlocal_WC_0 prefix@0 | |
| 0010 opt_send_without_block <calldata!mid:dirname, argc:1, ARGS_SIMPLE> | |
| 0012 leave ( 393)[Re] | |
| 0013 opt_getconstant_path <ic:1 SEPARATOR_PAT> ( 386)[Li] | |
| 0015 getlocal_WC_0 prefix@0 | |
| 0017 opt_send_without_block <calldata!mid:match?, argc:1, ARGS_SIMPLE> | |
| 0019 branchunless 63 | |
| 0021 opt_getconstant_path <ic:2 File> ( 387)[Li] | |
| 0023 getlocal_WC_0 prefix@0 | |
| 0025 opt_send_without_block <calldata!mid:dirname, argc:1, ARGS_SIMPLE> | |
| 0027 setlocal_WC_0 prefix@0 | |
| 0029 opt_getconstant_path <ic:3 File> ( 388)[Li] | |
| 0031 getlocal_WC_0 prefix@0 | |
| 0033 putchilledstring "a" | |
| 0035 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0037 opt_send_without_block <calldata!mid:basename, argc:1, ARGS_SIMPLE> | |
| 0039 putchilledstring "a" | |
| 0041 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0044 branchunless 56 | |
| 0046 opt_getconstant_path <ic:4 File> | |
| 0048 getlocal_WC_0 prefix@0 | |
| 0050 putchilledstring "" | |
| 0052 opt_send_without_block <calldata!mid:join, argc:2, ARGS_SIMPLE> | |
| 0054 setlocal_WC_0 prefix@0 | |
| 0056 getlocal_WC_0 prefix@0 ( 389)[Li] | |
| 0058 getlocal_WC_0 relpath@1 | |
| 0060 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0062 leave ( 393)[Re] | |
| 0063 getlocal_WC_0 prefix@0 ( 391)[Li] | |
| 0065 getlocal_WC_0 relpath@1 | |
| 0067 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0069 leave ( 393)[Re] | |
| == disasm: #<ISeq:cleanpath@<internal:pathname_builtin>:406 (406,2)-(412,5)> | |
| local table (size: 1, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] consider_symlink@0<Opt=0> | |
| 0000 putobject false ( 406) | |
| 0002 setlocal_WC_0 consider_symlink@0 | |
| 0004 getlocal_WC_0 consider_symlink@0 ( 407)[LiCa] | |
| 0006 branchunless 12 | |
| 0008 putself ( 408)[Li] | |
| 0009 opt_send_without_block <calldata!mid:cleanpath_conservative, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0011 leave ( 412)[Re] | |
| 0012 putself ( 410)[Li] | |
| 0013 opt_send_without_block <calldata!mid:cleanpath_aggressive, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0015 leave ( 412)[Re] | |
| == disasm: #<ISeq:cleanpath_aggressive@<internal:pathname_builtin>:418 (418,2)-(441,5)> | |
| local table (size: 5, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 5] path@0 [ 4] names@1 [ 3] pre@2 [ 2] r@3 [ 1] base@4 | |
| 0000 getinstancevariable :@path, <is:0> ( 419)[LiCa] | |
| 0003 setlocal_WC_0 path@0 | |
| 0005 newarray 0 ( 420)[Li] | |
| 0007 setlocal_WC_0 names@1 | |
| 0009 getlocal_WC_0 path@0 ( 421)[Li] | |
| 0011 setlocal_WC_0 pre@2 | |
| 0013 jump 89 ( 422)[Li] | |
| 0015 putnil | |
| 0016 pop | |
| 0017 jump 89 | |
| 0019 getlocal_WC_0 r@3 ( 423)[Li] | |
| 0021 expandarray 2, 0 | |
| 0024 setlocal_WC_0 pre@2 | |
| 0026 setlocal_WC_0 base@4 | |
| 0028 getlocal_WC_0 base@4 ( 424)[Li] | |
| 0030 dup | |
| 0031 opt_case_dispatch <cdhash>, 50 | |
| 0034 putobject "." ( 425) | |
| 0036 topn 1 | |
| 0038 opt_send_without_block <calldata!mid:===, argc:1, FCALL|ARGS_SIMPLE> | |
| 0040 branchif 78 | |
| 0042 putobject ".." ( 426) | |
| 0044 topn 1 | |
| 0046 opt_send_without_block <calldata!mid:===, argc:1, FCALL|ARGS_SIMPLE> | |
| 0048 branchif 81 | |
| 0050 pop ( 429) | |
| 0051 getlocal_WC_0 names@1[Li] | |
| 0053 putobject_INT2FIX_0_ | |
| 0054 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0056 putchilledstring ".." | |
| 0058 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0060 branchunless 69 | |
| 0062 getlocal_WC_0 names@1 ( 430)[Li] | |
| 0064 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0066 pop | |
| 0067 jump 89 ( 429) | |
| 0069 getlocal_WC_0 names@1 ( 432)[Li] | |
| 0071 getlocal_WC_0 base@4 | |
| 0073 opt_send_without_block <calldata!mid:unshift, argc:1, ARGS_SIMPLE> | |
| 0075 pop | |
| 0076 jump 89 ( 429) | |
| 0078 pop ( 425) | |
| 0079 jump 89 | |
| 0081 pop ( 426) | |
| 0082 getlocal_WC_0 names@1 ( 427)[Li] | |
| 0084 getlocal_WC_0 base@4 | |
| 0086 opt_send_without_block <calldata!mid:unshift, argc:1, ARGS_SIMPLE> | |
| 0088 pop | |
| 0089 putself ( 422) | |
| 0090 getlocal_WC_0 pre@2 | |
| 0092 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0094 dup | |
| 0095 setlocal_WC_0 r@3 | |
| 0097 branchif 19 | |
| 0099 putnil | |
| 0100 pop | |
| 0101 opt_getconstant_path <ic:1 File::ALT_SEPARATOR>( 436)[Li] | |
| 0103 branchunless 114 | |
| 0105 getlocal_WC_0 pre@2 | |
| 0107 opt_getconstant_path <ic:2 File::ALT_SEPARATOR> | |
| 0109 opt_getconstant_path <ic:3 File::SEPARATOR> | |
| 0111 opt_send_without_block <calldata!mid:tr!, argc:2, ARGS_SIMPLE> | |
| 0113 pop | |
| 0114 opt_getconstant_path <ic:4 SEPARATOR_PAT> ( 437)[Li] | |
| 0116 opt_getconstant_path <ic:5 File> | |
| 0118 getlocal_WC_0 pre@2 | |
| 0120 opt_send_without_block <calldata!mid:basename, argc:1, ARGS_SIMPLE> | |
| 0122 opt_send_without_block <calldata!mid:match?, argc:1, ARGS_SIMPLE> | |
| 0124 branchunless 150 | |
| 0126 jump 137 ( 438)[Li] | |
| 0128 putnil | |
| 0129 pop | |
| 0130 jump 137 | |
| 0132 getlocal_WC_0 names@1 | |
| 0134 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0136 pop | |
| 0137 getlocal_WC_0 names@1 | |
| 0139 putobject_INT2FIX_0_ | |
| 0140 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0142 putchilledstring ".." | |
| 0144 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0146 branchif 132 | |
| 0148 putnil | |
| 0149 pop | |
| 0150 putself ( 440)[Li] | |
| 0151 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0153 putnil | |
| 0154 swap | |
| 0155 putself | |
| 0156 getlocal_WC_0 pre@2 | |
| 0158 opt_getconstant_path <ic:6 File> | |
| 0160 getlocal_WC_0 names@1 | |
| 0162 splatarray false | |
| 0164 opt_send_without_block <calldata!mid:join, argc:1, ARGS_SPLAT> | |
| 0166 opt_send_without_block <calldata!mid:prepend_prefix, argc:2, FCALL|ARGS_SIMPLE> | |
| 0168 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 175 | |
| 0171 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0173 jump 178 | |
| 0175 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0177 swap | |
| 0178 pop | |
| 0179 leave ( 441)[Re] | |
| == disasm: #<ISeq:has_trailing_separator?@<internal:pathname_builtin>:445 (445,2)-(452,5)> | |
| local table (size: 4, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 4] path@0<Arg>[ 3] r@1 [ 2] pre@2 [ 1] basename@3 | |
| 0000 putself ( 446)[LiCa] | |
| 0001 getlocal_WC_0 path@0 | |
| 0003 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0005 dup | |
| 0006 setlocal_WC_0 r@1 | |
| 0008 branchunless 36 | |
| 0010 getlocal_WC_0 r@1 ( 447)[Li] | |
| 0012 expandarray 2, 0 | |
| 0015 setlocal_WC_0 pre@2 | |
| 0017 setlocal_WC_0 basename@3 | |
| 0019 getlocal_WC_0 pre@2 ( 448)[Li] | |
| 0021 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0023 getlocal_WC_0 basename@3 | |
| 0025 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0027 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0029 getlocal_WC_0 path@0 | |
| 0031 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0033 opt_lt <calldata!mid:<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0035 leave ( 452)[Re] | |
| 0036 putobject false ( 450)[Li] | |
| 0038 leave ( 452)[Re] | |
| == disasm: #<ISeq:add_trailing_separator@<internal:pathname_builtin>:456 (456,2)-(462,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] path@0<Arg> | |
| 0000 opt_getconstant_path <ic:0 File> ( 457)[LiCa] | |
| 0002 getlocal_WC_0 path@0 | |
| 0004 putchilledstring "a" | |
| 0006 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0008 opt_send_without_block <calldata!mid:basename, argc:1, ARGS_SIMPLE> | |
| 0010 putchilledstring "a" | |
| 0012 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0014 branchunless 19 | |
| 0016 getlocal_WC_0 path@0 ( 458)[Li] | |
| 0018 leave ( 462)[Re] | |
| 0019 opt_getconstant_path <ic:1 File> ( 460)[Li] | |
| 0021 getlocal_WC_0 path@0 | |
| 0023 putchilledstring "" | |
| 0025 opt_send_without_block <calldata!mid:join, argc:2, ARGS_SIMPLE> | |
| 0027 leave ( 462)[Re] | |
| == disasm: #<ISeq:del_trailing_separator@<internal:pathname_builtin>:465 (465,2)-(474,5)> | |
| local table (size: 4, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 4] path@0<Arg>[ 3] r@1 [ 2] pre@2 [ 1] basename@3 | |
| 0000 putself ( 466)[LiCa] | |
| 0001 getlocal_WC_0 path@0 | |
| 0003 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0005 dup | |
| 0006 setlocal_WC_0 r@1 | |
| 0008 branchunless 26 | |
| 0010 getlocal_WC_0 r@1 ( 467)[Li] | |
| 0012 expandarray 2, 0 | |
| 0015 setlocal_WC_0 pre@2 | |
| 0017 setlocal_WC_0 basename@3 | |
| 0019 getlocal_WC_0 pre@2 ( 468)[Li] | |
| 0021 getlocal_WC_0 basename@3 | |
| 0023 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0025 leave ( 474)[Re] | |
| 0026 once block in del_trailing_separator, <is:0>( 469)[Li] | |
| 0029 getlocal_WC_0 path@0 | |
| 0031 opt_regexpmatch2 <calldata!mid:=~, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0033 branchunless 52 | |
| 0035 getspecial 1, 193 ( 470)[Li] | |
| 0038 opt_getconstant_path <ic:2 File> | |
| 0040 getlocal_WC_0 path@0 | |
| 0042 opt_send_without_block <calldata!mid:dirname, argc:1, ARGS_SIMPLE> | |
| 0044 once block in del_trailing_separator, <is:1> | |
| 0047 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0049 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0051 leave ( 474)[Re] | |
| 0052 getlocal_WC_0 path@0 ( 472)[Li] | |
| 0054 leave ( 474)[Re] | |
| == disasm: #<ISeq:block in del_trailing_separator@<internal:pathname_builtin>:469 (469,10)-(469,32)> | |
| 0000 opt_getconstant_path <ic:0 SEPARATOR_PAT> ( 469) | |
| 0002 dup | |
| 0003 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0005 anytostring | |
| 0006 putobject "+\\z" | |
| 0008 toregexp 0, 2 | |
| 0011 leave | |
| == disasm: #<ISeq:block in del_trailing_separator@<internal:pathname_builtin>:470 (470,30)-(470,52)> | |
| 0000 opt_getconstant_path <ic:0 SEPARATOR_PAT> ( 470) | |
| 0002 dup | |
| 0003 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0005 anytostring | |
| 0006 putobject "*\\z" | |
| 0008 toregexp 0, 2 | |
| 0011 leave | |
| == disasm: #<ISeq:cleanpath_conservative@<internal:pathname_builtin>:477 (477,2)-(502,5)> | |
| local table (size: 6, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 6] path@0 [ 5] names@1 [ 4] pre@2 [ 3] r@3 [ 2] base@4 [ 1] result@5 | |
| 0000 getinstancevariable :@path, <is:0> ( 478)[LiCa] | |
| 0003 setlocal_WC_0 path@0 | |
| 0005 newarray 0 ( 479)[Li] | |
| 0007 setlocal_WC_0 names@1 | |
| 0009 getlocal_WC_0 path@0 ( 480)[Li] | |
| 0011 setlocal_WC_0 pre@2 | |
| 0013 jump 44 ( 481)[Li] | |
| 0015 putnil | |
| 0016 pop | |
| 0017 jump 44 | |
| 0019 getlocal_WC_0 r@3 ( 482)[Li] | |
| 0021 expandarray 2, 0 | |
| 0024 setlocal_WC_0 pre@2 | |
| 0026 setlocal_WC_0 base@4 | |
| 0028 getlocal_WC_0 base@4 ( 483)[Li] | |
| 0030 putchilledstring "." | |
| 0032 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0035 branchunless 44 | |
| 0037 getlocal_WC_0 names@1 | |
| 0039 getlocal_WC_0 base@4 | |
| 0041 opt_send_without_block <calldata!mid:unshift, argc:1, ARGS_SIMPLE> | |
| 0043 pop | |
| 0044 putself ( 481) | |
| 0045 getlocal_WC_0 pre@2 | |
| 0047 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0049 dup | |
| 0050 setlocal_WC_0 r@3 | |
| 0052 branchif 19 | |
| 0054 putnil | |
| 0055 pop | |
| 0056 opt_getconstant_path <ic:1 File::ALT_SEPARATOR>( 485)[Li] | |
| 0058 branchunless 69 | |
| 0060 getlocal_WC_0 pre@2 | |
| 0062 opt_getconstant_path <ic:2 File::ALT_SEPARATOR> | |
| 0064 opt_getconstant_path <ic:3 File::SEPARATOR> | |
| 0066 opt_send_without_block <calldata!mid:tr!, argc:2, ARGS_SIMPLE> | |
| 0068 pop | |
| 0069 opt_getconstant_path <ic:4 SEPARATOR_PAT> ( 486)[Li] | |
| 0071 opt_getconstant_path <ic:5 File> | |
| 0073 getlocal_WC_0 pre@2 | |
| 0075 opt_send_without_block <calldata!mid:basename, argc:1, ARGS_SIMPLE> | |
| 0077 opt_send_without_block <calldata!mid:match?, argc:1, ARGS_SIMPLE> | |
| 0079 branchunless 105 | |
| 0081 jump 92 ( 487)[Li] | |
| 0083 putnil | |
| 0084 pop | |
| 0085 jump 92 | |
| 0087 getlocal_WC_0 names@1 | |
| 0089 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0091 pop | |
| 0092 getlocal_WC_0 names@1 | |
| 0094 putobject_INT2FIX_0_ | |
| 0095 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0097 putchilledstring ".." | |
| 0099 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0101 branchif 87 | |
| 0103 putnil | |
| 0104 pop | |
| 0105 getlocal_WC_0 names@1 ( 489)[Li] | |
| 0107 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0109 branchunless 134 | |
| 0111 putself ( 490)[Li] | |
| 0112 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0114 putnil | |
| 0115 swap | |
| 0116 opt_getconstant_path <ic:6 File> | |
| 0118 getlocal_WC_0 pre@2 | |
| 0120 opt_send_without_block <calldata!mid:dirname, argc:1, ARGS_SIMPLE> | |
| 0122 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 129 | |
| 0125 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0127 jump 132 | |
| 0129 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0131 swap | |
| 0132 pop | |
| 0133 leave ( 502)[Re] | |
| 0134 getlocal_WC_0 names@1 ( 492)[Li] | |
| 0136 opt_send_without_block <calldata!mid:last, argc:0, ARGS_SIMPLE> | |
| 0138 putchilledstring ".." | |
| 0140 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0143 branchunless 164 | |
| 0145 opt_getconstant_path <ic:7 File> | |
| 0147 getlocal_WC_0 path@0 | |
| 0149 opt_send_without_block <calldata!mid:basename, argc:1, ARGS_SIMPLE> | |
| 0151 putchilledstring "." | |
| 0153 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0155 branchunless 164 | |
| 0157 getlocal_WC_0 names@1 ( 493)[Li] | |
| 0159 putchilledstring "." | |
| 0161 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0163 pop | |
| 0164 putself ( 495)[Li] | |
| 0165 getlocal_WC_0 pre@2 | |
| 0167 opt_getconstant_path <ic:8 File> | |
| 0169 getlocal_WC_0 names@1 | |
| 0171 splatarray false | |
| 0173 opt_send_without_block <calldata!mid:join, argc:1, ARGS_SPLAT> | |
| 0175 opt_send_without_block <calldata!mid:prepend_prefix, argc:2, FCALL|ARGS_SIMPLE> | |
| 0177 setlocal_WC_0 result@5 | |
| 0179 putobject /\A(?:\.|\.\.)\z/ ( 496)[Li] | |
| 0181 getlocal_WC_0 names@1 | |
| 0183 opt_send_without_block <calldata!mid:last, argc:0, ARGS_SIMPLE> | |
| 0185 opt_send_without_block <calldata!mid:!~, argc:1, ARGS_SIMPLE> | |
| 0187 branchunless 218 | |
| 0189 putself | |
| 0190 getlocal_WC_0 path@0 | |
| 0192 opt_send_without_block <calldata!mid:has_trailing_separator?, argc:1, FCALL|ARGS_SIMPLE> | |
| 0194 branchunless 218 | |
| 0196 putself ( 497)[Li] | |
| 0197 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0199 putnil | |
| 0200 swap | |
| 0201 putself | |
| 0202 getlocal_WC_0 result@5 | |
| 0204 opt_send_without_block <calldata!mid:add_trailing_separator, argc:1, FCALL|ARGS_SIMPLE> | |
| 0206 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 213 | |
| 0209 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0211 jump 216 | |
| 0213 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0215 swap | |
| 0216 pop | |
| 0217 leave ( 502)[Re] | |
| 0218 putself ( 499)[Li] | |
| 0219 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0221 putnil | |
| 0222 swap | |
| 0223 getlocal_WC_0 result@5 | |
| 0225 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 232 | |
| 0228 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0230 jump 235 | |
| 0232 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0234 swap | |
| 0235 pop | |
| 0236 leave ( 502)[Re] | |
| == disasm: #<ISeq:parent@<internal:pathname_builtin>:508 (508,2)-(510,5)> | |
| 0000 putself ( 509)[LiCa] | |
| 0001 putchilledstring ".." | |
| 0003 opt_plus <calldata!mid:+, argc:1, FCALL|ARGS_SIMPLE>[CcCr] | |
| 0005 leave ( 510)[Re] | |
| == disasm: #<ISeq:mountpoint?@<internal:pathname_builtin>:513 (513,2)-(521,5)> | |
| == catch table | |
| | catch type: rescue st: 0000 ed: 0037 sp: 0000 cont: 0038 | |
| | == disasm: #<ISeq:rescue in mountpoint?@<internal:pathname_builtin>:518 (518,4)-(519,11)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_0 "$!"@0 ( 518) | |
| | 0002 opt_getconstant_path <ic:0 Errno::ENOENT> | |
| | 0004 checkmatch 3 | |
| | 0006 branchunless 11 | |
| | 0008 putobject false ( 519)[LiRs] | |
| | 0010 leave ( 518) | |
| | 0011 getlocal_WC_0 "$!"@0 | |
| | 0013 throw 0 | |
| | catch type: retry st: 0037 ed: 0038 sp: 0000 cont: 0000 | |
| |------------------------------------------------------------------------ | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] stat1@0 [ 1] stat2@1 | |
| 0000 putself ( 515)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:lstat, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 setlocal_WC_0 stat1@0 | |
| 0005 putself ( 516)[Li] | |
| 0006 opt_send_without_block <calldata!mid:parent, argc:0, FCALL|ARGS_SIMPLE> | |
| 0008 opt_send_without_block <calldata!mid:lstat, argc:0, ARGS_SIMPLE> | |
| 0010 setlocal_WC_0 stat2@1 | |
| 0012 getlocal_WC_0 stat1@0 ( 517)[Li] | |
| 0014 opt_send_without_block <calldata!mid:dev, argc:0, ARGS_SIMPLE> | |
| 0016 getlocal_WC_0 stat2@1 | |
| 0018 opt_send_without_block <calldata!mid:dev, argc:0, ARGS_SIMPLE> | |
| 0020 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0023 dup | |
| 0024 branchif 37 | |
| 0026 pop | |
| 0027 getlocal_WC_0 stat1@0 | |
| 0029 opt_send_without_block <calldata!mid:ino, argc:0, ARGS_SIMPLE> | |
| 0031 getlocal_WC_0 stat2@1 | |
| 0033 opt_send_without_block <calldata!mid:ino, argc:0, ARGS_SIMPLE> | |
| 0035 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0037 nop ( 514) | |
| 0038 leave ( 521)[Re] | |
| == disasm: #<ISeq:root?@<internal:pathname_builtin>:530 (530,2)-(532,5)> | |
| 0000 putself ( 531)[LiCa] | |
| 0001 getinstancevariable :@path, <is:0> | |
| 0004 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0006 putnil | |
| 0007 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0009 dup | |
| 0010 branchunless 20 | |
| 0012 pop | |
| 0013 opt_getconstant_path <ic:2 SEPARATOR_PAT> | |
| 0015 getinstancevariable :@path, <is:1> | |
| 0018 opt_send_without_block <calldata!mid:match?, argc:1, ARGS_SIMPLE> | |
| 0020 leave ( 532)[Re] | |
| == disasm: #<ISeq:absolute?@<internal:pathname_builtin>:545 (545,2)-(547,5)> | |
| 0000 opt_getconstant_path <ic:1 ABSOLUTE_PATH> ( 546)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:match?, argc:1, ARGS_SIMPLE> | |
| 0007 leave ( 547)[Re] | |
| == disasm: #<ISeq:relative?@<internal:pathname_builtin>:560 (560,2)-(562,5)> | |
| 0000 putself ( 561)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:absolute?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 opt_not <calldata!mid:!, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0005 leave ( 562)[Re] | |
| == disasm: #<ISeq:each_filename@<internal:pathname_builtin>:577 (577,2)-(582,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] _@0 [ 1] names@1 | |
| 0000 putself ( 578)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:block_given?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 12 | |
| 0005 putself | |
| 0006 putself | |
| 0007 opt_send_without_block <calldata!mid:__method__, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0009 opt_send_without_block <calldata!mid:to_enum, argc:1, FCALL|ARGS_SIMPLE> | |
| 0011 leave [Re] | |
| 0012 putself ( 579)[Li] | |
| 0013 getinstancevariable :@path, <is:0> | |
| 0016 opt_send_without_block <calldata!mid:split_names, argc:1, FCALL|ARGS_SIMPLE> | |
| 0018 expandarray 2, 0 | |
| 0021 setlocal_WC_0 _@0 | |
| 0023 setlocal_WC_0 names@1 | |
| 0025 getlocal_WC_0 names@1 ( 580)[Li] | |
| 0027 send <calldata!mid:each, argc:0>, block in each_filename | |
| 0030 pop | |
| 0031 putnil ( 581)[Li] | |
| 0032 leave ( 582)[Re] | |
| == disasm: #<ISeq:block in each_filename@<internal:pathname_builtin>:580 (580,15)-(580,43)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] filename@0<AmbiguousArg> | |
| 0000 getlocal_WC_0 filename@0 ( 580)[LiBc] | |
| 0002 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0004 leave [Br] | |
| == disasm: #<ISeq:descend@<internal:pathname_builtin>:609 (609,2)-(615,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] vs@0 | |
| 0000 putself ( 610)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:block_given?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 12 | |
| 0005 putself | |
| 0006 putself | |
| 0007 opt_send_without_block <calldata!mid:__method__, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0009 opt_send_without_block <calldata!mid:to_enum, argc:1, FCALL|ARGS_SIMPLE> | |
| 0011 leave [Re] | |
| 0012 newarray 0 ( 611)[Li] | |
| 0014 setlocal_WC_0 vs@0 | |
| 0016 putself ( 612)[Li] | |
| 0017 send <calldata!mid:ascend, argc:0, FCALL>, block in descend | |
| 0020 pop | |
| 0021 getlocal_WC_0 vs@0 ( 613)[Li] | |
| 0023 send <calldata!mid:reverse_each, argc:0>, block in descend | |
| 0026 pop | |
| 0027 putnil ( 614)[Li] | |
| 0028 leave ( 615)[Re] | |
| == disasm: #<ISeq:block in descend@<internal:pathname_builtin>:612 (612,11)-(612,25)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] v@0<AmbiguousArg> | |
| 0000 getlocal_WC_1 vs@0 ( 612)[LiBc] | |
| 0002 getlocal_WC_0 v@0 | |
| 0004 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 leave [Br] | |
| == disasm: #<ISeq:block in descend@<internal:pathname_builtin>:613 (613,20)-(613,34)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] v@0<AmbiguousArg> | |
| 0000 getlocal_WC_0 v@0 ( 613)[LiBc] | |
| 0002 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0004 leave [Br] | |
| == disasm: #<ISeq:ascend@<internal:pathname_builtin>:642 (642,2)-(651,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] path@0 [ 1] r@1 | |
| 0000 putself ( 643)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:block_given?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 12 | |
| 0005 putself | |
| 0006 putself | |
| 0007 opt_send_without_block <calldata!mid:__method__, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0009 opt_send_without_block <calldata!mid:to_enum, argc:1, FCALL|ARGS_SIMPLE> | |
| 0011 leave [Re] | |
| 0012 getinstancevariable :@path, <is:0> ( 644)[Li] | |
| 0015 setlocal_WC_0 path@0 | |
| 0017 putself ( 645)[Li] | |
| 0018 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0020 pop | |
| 0021 jump 66 ( 646)[Li] | |
| 0023 putnil | |
| 0024 pop | |
| 0025 jump 66 | |
| 0027 getlocal_WC_0 r@1 ( 647)[Li] | |
| 0029 expandarray 1, 0 | |
| 0032 setlocal_WC_0 path@0 | |
| 0034 getlocal_WC_0 path@0 ( 648)[Li] | |
| 0036 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0038 branchunless 42 | |
| 0040 putnil | |
| 0041 leave ( 651)[Re] | |
| 0042 putself ( 649)[Li] | |
| 0043 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0045 putnil | |
| 0046 swap | |
| 0047 putself | |
| 0048 getlocal_WC_0 path@0 | |
| 0050 opt_send_without_block <calldata!mid:del_trailing_separator, argc:1, FCALL|ARGS_SIMPLE> | |
| 0052 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 59 | |
| 0055 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0057 jump 62 | |
| 0059 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0061 swap | |
| 0062 pop | |
| 0063 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0065 pop | |
| 0066 putself ( 646) | |
| 0067 getlocal_WC_0 path@0 | |
| 0069 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0071 dup | |
| 0072 setlocal_WC_0 r@1 | |
| 0074 branchif 27 | |
| 0076 putnil | |
| 0077 leave ( 651)[Re] | |
| == disasm: #<ISeq:+@<internal:pathname_builtin>:668 (668,2)-(671,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] other@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 Pathname> ( 669)[LiCa] | |
| 0002 getlocal_WC_0 other@0 | |
| 0004 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| 0006 branchif 27 | |
| 0008 opt_getconstant_path <ic:2 Pathname> | |
| 0010 putnil | |
| 0011 swap | |
| 0012 getlocal_WC_0 other@0 | |
| 0014 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 21 | |
| 0017 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0019 jump 24 | |
| 0021 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0023 swap | |
| 0024 pop | |
| 0025 setlocal_WC_0 other@0 | |
| 0027 opt_getconstant_path <ic:3 Pathname> ( 670)[Li] | |
| 0029 putnil | |
| 0030 swap | |
| 0031 putself | |
| 0032 getinstancevariable :@path, <is:0> | |
| 0035 getlocal_WC_0 other@0 | |
| 0037 opt_send_without_block <calldata!mid:path, argc:0, ARGS_SIMPLE> | |
| 0039 opt_send_without_block <calldata!mid:plus, argc:2, FCALL|ARGS_SIMPLE> | |
| 0041 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 48 | |
| 0044 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0046 jump 51 | |
| 0048 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0050 swap | |
| 0051 pop | |
| 0052 leave ( 671)[Re] | |
| == disasm: #<ISeq:plus@<internal:pathname_builtin>:674 (674,2)-(713,5)> | |
| local table (size: 11, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [11] path1@0<Arg>[10] path2@1<Arg>[ 9] prefix2@2 [ 8] index_list2@3[ 7] basename_list2@4[ 6] r2@5 [ 5] basename2@6[ 4] prefix1@7 [ 3] r1@8 [ 2] basename1@9[ 1] suffix2@10 | |
| 0000 getlocal_WC_0 path2@1 ( 675)[LiCa] | |
| 0002 setlocal_WC_0 prefix2@2 | |
| 0004 newarray 0 ( 676)[Li] | |
| 0006 setlocal_WC_0 index_list2@3 | |
| 0008 newarray 0 ( 677)[Li] | |
| 0010 setlocal_WC_0 basename_list2@4 | |
| 0012 jump 43 ( 678)[Li] | |
| 0014 putnil | |
| 0015 pop | |
| 0016 jump 43 | |
| 0018 getlocal_WC_0 r2@5 ( 679)[Li] | |
| 0020 expandarray 2, 0 | |
| 0023 setlocal_WC_0 prefix2@2 | |
| 0025 setlocal_WC_0 basename2@6 | |
| 0027 getlocal_WC_0 index_list2@3 ( 680)[Li] | |
| 0029 getlocal_WC_0 prefix2@2 | |
| 0031 opt_length <calldata!mid:length, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0033 opt_send_without_block <calldata!mid:unshift, argc:1, ARGS_SIMPLE> | |
| 0035 pop | |
| 0036 getlocal_WC_0 basename_list2@4 ( 681)[Li] | |
| 0038 getlocal_WC_0 basename2@6 | |
| 0040 opt_send_without_block <calldata!mid:unshift, argc:1, ARGS_SIMPLE> | |
| 0042 pop | |
| 0043 putself ( 678) | |
| 0044 getlocal_WC_0 prefix2@2 | |
| 0046 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0048 dup | |
| 0049 setlocal_WC_0 r2@5 | |
| 0051 branchif 18 | |
| 0053 putnil | |
| 0054 pop | |
| 0055 getlocal_WC_0 prefix2@2 ( 683)[Li] | |
| 0057 putchilledstring "" | |
| 0059 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0062 branchunless 67 | |
| 0064 getlocal_WC_0 path2@1 | |
| 0066 leave [Re] | |
| 0067 getlocal_WC_0 path1@0 ( 684)[Li] | |
| 0069 setlocal_WC_0 prefix1@7 | |
| 0071 jump 75 ( 685)[Li] | |
| 0073 putnil | |
| 0074 pop | |
| 0075 jump 91 ( 686)[Li] | |
| 0077 putnil | |
| 0078 pop | |
| 0079 jump 91 | |
| 0081 getlocal_WC_0 index_list2@3 ( 687)[Li] | |
| 0083 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0085 pop | |
| 0086 getlocal_WC_0 basename_list2@4 ( 688)[Li] | |
| 0088 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0090 pop | |
| 0091 getlocal_WC_0 basename_list2@4 ( 686) | |
| 0093 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0095 opt_not <calldata!mid:!, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0097 branchunless 109 | |
| 0099 getlocal_WC_0 basename_list2@4 | |
| 0101 opt_send_without_block <calldata!mid:first, argc:0, ARGS_SIMPLE> | |
| 0103 putchilledstring "." | |
| 0105 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0107 branchif 81 | |
| 0109 putnil | |
| 0110 pop | |
| 0111 putself ( 690)[Li] | |
| 0112 getlocal_WC_0 prefix1@7 | |
| 0114 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0116 dup | |
| 0117 setlocal_WC_0 r1@8 | |
| 0119 branchif 124 | |
| 0121 putnil | |
| 0122 jump 194 | |
| 0124 getlocal_WC_0 r1@8 ( 691)[Li] | |
| 0126 expandarray 2, 0 | |
| 0129 setlocal_WC_0 prefix1@7 | |
| 0131 setlocal_WC_0 basename1@9 | |
| 0133 getlocal_WC_0 basename1@9 ( 692)[Li] | |
| 0135 putchilledstring "." | |
| 0137 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0139 branchunless 145 | |
| 0141 putnil | |
| 0142 pop | |
| 0143 jump 75 | |
| 0145 getlocal_WC_0 basename1@9 ( 693)[Li] | |
| 0147 putchilledstring ".." | |
| 0149 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0151 branchif 170 | |
| 0153 getlocal_WC_0 basename_list2@4 | |
| 0155 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0157 branchif 170 | |
| 0159 getlocal_WC_0 basename_list2@4 | |
| 0161 opt_send_without_block <calldata!mid:first, argc:0, ARGS_SIMPLE> | |
| 0163 putchilledstring ".." | |
| 0165 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0168 branchunless 181 | |
| 0170 getlocal_WC_0 prefix1@7 ( 694)[Li] | |
| 0172 getlocal_WC_0 basename1@9 | |
| 0174 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0176 setlocal_WC_0 prefix1@7 | |
| 0178 putnil ( 695)[Li] | |
| 0179 jump 194 | |
| 0181 getlocal_WC_0 index_list2@3 ( 697)[Li] | |
| 0183 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0185 pop | |
| 0186 getlocal_WC_0 basename_list2@4 ( 698)[Li] | |
| 0188 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0190 pop | |
| 0191 jump 75 ( 685) | |
| 0193 putnil | |
| 0194 pop | |
| 0195 putself ( 700)[Li] | |
| 0196 getlocal_WC_0 prefix1@7 | |
| 0198 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0200 setlocal_WC_0 r1@8 | |
| 0202 getlocal_WC_0 r1@8 ( 701)[Li] | |
| 0204 opt_not <calldata!mid:!, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0206 branchunless 259 | |
| 0208 opt_getconstant_path <ic:0 SEPARATOR_PAT> | |
| 0210 opt_getconstant_path <ic:1 File> | |
| 0212 getlocal_WC_0 prefix1@7 | |
| 0214 opt_send_without_block <calldata!mid:basename, argc:1, ARGS_SIMPLE> | |
| 0216 opt_send_without_block <calldata!mid:match?, argc:1, ARGS_SIMPLE> | |
| 0218 dup | |
| 0219 setlocal_WC_0 r1@8 | |
| 0221 branchunless 259 | |
| 0223 jump 239 ( 702)[Li] | |
| 0225 putnil | |
| 0226 pop | |
| 0227 jump 239 | |
| 0229 getlocal_WC_0 index_list2@3 ( 703)[Li] | |
| 0231 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0233 pop | |
| 0234 getlocal_WC_0 basename_list2@4 ( 704)[Li] | |
| 0236 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0238 pop | |
| 0239 getlocal_WC_0 basename_list2@4 ( 702) | |
| 0241 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0243 opt_not <calldata!mid:!, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0245 branchunless 257 | |
| 0247 getlocal_WC_0 basename_list2@4 | |
| 0249 opt_send_without_block <calldata!mid:first, argc:0, ARGS_SIMPLE> | |
| 0251 putchilledstring ".." | |
| 0253 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0255 branchif 229 | |
| 0257 putnil | |
| 0258 pop | |
| 0259 getlocal_WC_0 basename_list2@4 ( 707)[Li] | |
| 0261 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0263 opt_not <calldata!mid:!, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0265 branchunless 301 | |
| 0267 getlocal_WC_0 path2@1 ( 708)[Li] | |
| 0269 getlocal_WC_0 index_list2@3 | |
| 0271 opt_send_without_block <calldata!mid:first, argc:0, ARGS_SIMPLE> | |
| 0273 putobject -1 | |
| 0275 newrange 0 | |
| 0277 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0279 setlocal_WC_0 suffix2@10 | |
| 0281 getlocal_WC_0 r1@8 ( 709)[Li] | |
| 0283 branchunless 294 | |
| 0285 opt_getconstant_path <ic:2 File> | |
| 0287 getlocal_WC_0 prefix1@7 | |
| 0289 getlocal_WC_0 suffix2@10 | |
| 0291 opt_send_without_block <calldata!mid:join, argc:2, ARGS_SIMPLE> | |
| 0293 leave ( 713)[Re] | |
| 0294 getlocal_WC_0 prefix1@7 ( 709) | |
| 0296 getlocal_WC_0 suffix2@10 | |
| 0298 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0300 leave ( 713)[Re] | |
| 0301 getlocal_WC_0 r1@8 ( 711)[Li] | |
| 0303 branchunless 308 | |
| 0305 getlocal_WC_0 prefix1@7 | |
| 0307 leave ( 713)[Re] | |
| 0308 opt_getconstant_path <ic:3 File> ( 711) | |
| 0310 getlocal_WC_0 prefix1@7 | |
| 0312 opt_send_without_block <calldata!mid:dirname, argc:1, ARGS_SIMPLE> | |
| 0314 leave ( 713)[Re] | |
| == disasm: #<ISeq:join@<internal:pathname_builtin>:728 (728,2)-(739,5)> | |
| == catch table | |
| | catch type: break st: 0050 ed: 0055 sp: 0000 cont: 0055 | |
| | == disasm: #<ISeq:block in join@<internal:pathname_builtin>:733 (733,22)-(737,5)> | |
| | == catch table | |
| | | catch type: redo st: 0001 ed: 0048 sp: 0000 cont: 0001 | |
| | | catch type: next st: 0001 ed: 0048 sp: 0000 cont: 0048 | |
| | |------------------------------------------------------------------------ | |
| | local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] arg@0<AmbiguousArg> | |
| | 0000 nop ( 733)[Bc] | |
| | 0001 opt_getconstant_path <ic:0 Pathname> ( 734)[Li] | |
| | 0003 getlocal_WC_0 arg@0 | |
| | 0005 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| | 0007 branchif 28 | |
| | 0009 opt_getconstant_path <ic:1 Pathname> | |
| | 0011 putnil | |
| | 0012 swap | |
| | 0013 getlocal_WC_0 arg@0 | |
| | 0015 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 22 | |
| | 0018 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| | 0020 jump 25 | |
| | 0022 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| | 0024 swap | |
| | 0025 pop | |
| | 0026 setlocal_WC_0 arg@0 | |
| | 0028 getlocal_WC_0 arg@0 ( 735)[Li] | |
| | 0030 getlocal_WC_1 result@1 | |
| | 0032 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| | 0034 setlocal_WC_1 result@1 | |
| | 0036 getlocal_WC_1 result@1 ( 736)[Li] | |
| | 0038 opt_send_without_block <calldata!mid:absolute?, argc:0, ARGS_SIMPLE> | |
| | 0040 branchunless 47 | |
| | 0042 getlocal_WC_1 result@1 | |
| | 0044 throw 1 | |
| | 0046 leave ( 737)[Br] | |
| | 0047 putnil ( 736) | |
| | 0048 leave ( 737)[Br] | |
| |------------------------------------------------------------------------ | |
| local table (size: 2, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] args@0<Rest>[ 1] result@1 | |
| 0000 getlocal_WC_0 args@0 ( 729)[LiCa] | |
| 0002 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0004 branchunless 8 | |
| 0006 putself | |
| 0007 leave [Re] | |
| 0008 getlocal_WC_0 args@0 ( 730)[Li] | |
| 0010 opt_send_without_block <calldata!mid:pop, argc:0, ARGS_SIMPLE> | |
| 0012 setlocal_WC_0 result@1 | |
| 0014 opt_getconstant_path <ic:0 Pathname> ( 731)[Li] | |
| 0016 getlocal_WC_0 result@1 | |
| 0018 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| 0020 branchif 41 | |
| 0022 opt_getconstant_path <ic:1 Pathname> | |
| 0024 putnil | |
| 0025 swap | |
| 0026 getlocal_WC_0 result@1 | |
| 0028 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 35 | |
| 0031 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0033 jump 38 | |
| 0035 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0037 swap | |
| 0038 pop | |
| 0039 setlocal_WC_0 result@1 | |
| 0041 getlocal_WC_0 result@1 ( 732)[Li] | |
| 0043 opt_send_without_block <calldata!mid:absolute?, argc:0, ARGS_SIMPLE> | |
| 0045 branchunless 50 | |
| 0047 getlocal_WC_0 result@1 | |
| 0049 leave [Re] | |
| 0050 getlocal_WC_0 args@0 ( 733)[Li] | |
| 0052 send <calldata!mid:reverse_each, argc:0>, block in join | |
| 0055 pop | |
| 0056 putself ( 738)[Li] | |
| 0057 getlocal_WC_0 result@1 | |
| 0059 opt_plus <calldata!mid:+, argc:1, FCALL|ARGS_SIMPLE>[CcCr] | |
| 0061 leave ( 739)[Re] | |
| == disasm: #<ISeq:children@<internal:pathname_builtin>:761 (761,2)-(773,5)> | |
| local table (size: 2, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] with_directory@0<Opt=0>[ 1] result@1 | |
| 0000 putobject true ( 761) | |
| 0002 setlocal_WC_0 with_directory@0 | |
| 0004 getinstancevariable :@path, <is:0> ( 762)[LiCa] | |
| 0007 putchilledstring "." | |
| 0009 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0011 branchunless 17 | |
| 0013 putobject false | |
| 0015 setlocal_WC_0 with_directory@0 | |
| 0017 newarray 0 ( 763)[Li] | |
| 0019 setlocal_WC_0 result@1 | |
| 0021 opt_getconstant_path <ic:2 Dir> ( 764)[Li] | |
| 0023 getinstancevariable :@path, <is:1> | |
| 0026 send <calldata!mid:foreach, argc:1>, block in children | |
| 0029 pop | |
| 0030 getlocal_WC_0 result@1 ( 772)[Li] | |
| 0032 leave ( 773)[Re] | |
| == disasm: #<ISeq:block in children@<internal:pathname_builtin>:764 (764,23)-(771,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] e@0<AmbiguousArg> | |
| 0000 getlocal_WC_0 e@0 ( 765)[LiBc] | |
| 0002 putchilledstring "." | |
| 0004 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0006 branchif 16 | |
| 0008 getlocal_WC_0 e@0 | |
| 0010 putchilledstring ".." | |
| 0012 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0014 branchunless 18 | |
| 0016 putnil | |
| 0017 leave ( 771)[Br] | |
| 0018 getlocal_WC_1 with_directory@0 ( 766)[Li] | |
| 0020 branchunless 52 | |
| 0022 getlocal_WC_1 result@1 ( 767)[Li] | |
| 0024 putself | |
| 0025 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0027 putnil | |
| 0028 swap | |
| 0029 opt_getconstant_path <ic:1 File> | |
| 0031 getinstancevariable :@path, <is:0> | |
| 0034 getlocal_WC_0 e@0 | |
| 0036 opt_send_without_block <calldata!mid:join, argc:2, ARGS_SIMPLE> | |
| 0038 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 45 | |
| 0041 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0043 jump 48 | |
| 0045 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0047 swap | |
| 0048 pop | |
| 0049 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0051 leave ( 771)[Br] | |
| 0052 getlocal_WC_1 result@1 ( 769)[Li] | |
| 0054 putself | |
| 0055 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0057 putnil | |
| 0058 swap | |
| 0059 getlocal_WC_0 e@0 | |
| 0061 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 68 | |
| 0064 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0066 jump 71 | |
| 0068 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0070 swap | |
| 0071 pop | |
| 0072 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0074 leave ( 771)[Br] | |
| == disasm: #<ISeq:each_child@<internal:pathname_builtin>:811 (811,2)-(813,5)> | |
| local table (size: 2, argc: 0 [opts: 1, rest: -1, post: 0, block: 1, kw: -1@-1, kwrest: -1]) | |
| [ 2] with_directory@0<Opt=0>[ 1] b@1<Block> | |
| 0000 putobject true ( 811) | |
| 0002 setlocal_WC_0 with_directory@0 | |
| 0004 putself ( 812)[LiCa] | |
| 0005 getlocal_WC_0 with_directory@0 | |
| 0007 opt_send_without_block <calldata!mid:children, argc:1, FCALL|ARGS_SIMPLE> | |
| 0009 getblockparamproxy b@1, 0 | |
| 0012 send <calldata!mid:each, argc:0, ARGS_BLOCKARG>, nil | |
| 0015 leave ( 813)[Re] | |
| == disasm: #<ISeq:relative_path_from@<internal:pathname_builtin>:829 (829,2)-(864,5)> | |
| local table (size: 9, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 9] base_directory@0<Arg>[ 8] dest_directory@1[ 7] dest_prefix@2[ 6] dest_names@3[ 5] r@4 [ 4] basename@5 [ 3] base_prefix@6[ 2] base_names@7[ 1] relpath_names@8 | |
| 0000 getlocal_WC_0 base_directory@0 ( 830)[LiCa] | |
| 0002 opt_getconstant_path <ic:0 Pathname> | |
| 0004 opt_send_without_block <calldata!mid:is_a?, argc:1, ARGS_SIMPLE> | |
| 0006 branchif 27 | |
| 0008 opt_getconstant_path <ic:1 Pathname> | |
| 0010 putnil | |
| 0011 swap | |
| 0012 getlocal_WC_0 base_directory@0 | |
| 0014 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 21 | |
| 0017 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0019 jump 24 | |
| 0021 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0023 swap | |
| 0024 pop | |
| 0025 setlocal_WC_0 base_directory@0 | |
| 0027 putself ( 831)[Li] | |
| 0028 opt_send_without_block <calldata!mid:cleanpath, argc:0, FCALL|ARGS_SIMPLE> | |
| 0030 opt_send_without_block <calldata!mid:path, argc:0, ARGS_SIMPLE> | |
| 0032 setlocal_WC_0 dest_directory@1 | |
| 0034 getlocal_WC_0 base_directory@0 ( 832)[Li] | |
| 0036 opt_send_without_block <calldata!mid:cleanpath, argc:0, ARGS_SIMPLE> | |
| 0038 opt_send_without_block <calldata!mid:path, argc:0, ARGS_SIMPLE> | |
| 0040 setlocal_WC_0 base_directory@0 | |
| 0042 getlocal_WC_0 dest_directory@1 ( 833)[Li] | |
| 0044 setlocal_WC_0 dest_prefix@2 | |
| 0046 newarray 0 ( 834)[Li] | |
| 0048 setlocal_WC_0 dest_names@3 | |
| 0050 jump 81 ( 835)[Li] | |
| 0052 putnil | |
| 0053 pop | |
| 0054 jump 81 | |
| 0056 getlocal_WC_0 r@4 ( 836)[Li] | |
| 0058 expandarray 2, 0 | |
| 0061 setlocal_WC_0 dest_prefix@2 | |
| 0063 setlocal_WC_0 basename@5 | |
| 0065 getlocal_WC_0 basename@5 ( 837)[Li] | |
| 0067 putchilledstring "." | |
| 0069 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0072 branchunless 81 | |
| 0074 getlocal_WC_0 dest_names@3 | |
| 0076 getlocal_WC_0 basename@5 | |
| 0078 opt_send_without_block <calldata!mid:unshift, argc:1, ARGS_SIMPLE> | |
| 0080 pop | |
| 0081 putself ( 835) | |
| 0082 getlocal_WC_0 dest_prefix@2 | |
| 0084 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0086 dup | |
| 0087 setlocal_WC_0 r@4 | |
| 0089 branchif 56 | |
| 0091 putnil | |
| 0092 pop | |
| 0093 getlocal_WC_0 base_directory@0 ( 839)[Li] | |
| 0095 setlocal_WC_0 base_prefix@6 | |
| 0097 newarray 0 ( 840)[Li] | |
| 0099 setlocal_WC_0 base_names@7 | |
| 0101 jump 132 ( 841)[Li] | |
| 0103 putnil | |
| 0104 pop | |
| 0105 jump 132 | |
| 0107 getlocal_WC_0 r@4 ( 842)[Li] | |
| 0109 expandarray 2, 0 | |
| 0112 setlocal_WC_0 base_prefix@6 | |
| 0114 setlocal_WC_0 basename@5 | |
| 0116 getlocal_WC_0 basename@5 ( 843)[Li] | |
| 0118 putchilledstring "." | |
| 0120 opt_neq <calldata!mid:==, argc:1, ARGS_SIMPLE>, <calldata!mid:!=, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0123 branchunless 132 | |
| 0125 getlocal_WC_0 base_names@7 | |
| 0127 getlocal_WC_0 basename@5 | |
| 0129 opt_send_without_block <calldata!mid:unshift, argc:1, ARGS_SIMPLE> | |
| 0131 pop | |
| 0132 putself ( 841) | |
| 0133 getlocal_WC_0 base_prefix@6 | |
| 0135 opt_send_without_block <calldata!mid:chop_basename, argc:1, FCALL|ARGS_SIMPLE> | |
| 0137 dup | |
| 0138 setlocal_WC_0 r@4 | |
| 0140 branchif 107 | |
| 0142 putnil | |
| 0143 pop | |
| 0144 opt_getconstant_path <ic:2 SAME_PATHS> ( 845)[Li] | |
| 0146 getlocal_WC_0 dest_prefix@2 | |
| 0148 getlocal_WC_0 base_prefix@6 | |
| 0150 opt_send_without_block <calldata!mid:[], argc:2, ARGS_SIMPLE> | |
| 0152 branchif 182 | |
| 0154 putself ( 846)[Li] | |
| 0155 opt_getconstant_path <ic:3 ArgumentError> | |
| 0157 putobject "different prefix: " | |
| 0159 getlocal_WC_0 dest_prefix@2 | |
| 0161 opt_send_without_block <calldata!mid:inspect, argc:0, ARGS_SIMPLE> | |
| 0163 dup | |
| 0164 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0166 anytostring | |
| 0167 putobject " and " | |
| 0169 getlocal_WC_0 base_directory@0 | |
| 0171 opt_send_without_block <calldata!mid:inspect, argc:0, ARGS_SIMPLE> | |
| 0173 dup | |
| 0174 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0176 anytostring | |
| 0177 concatstrings 4 | |
| 0179 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0181 pop | |
| 0182 jump 198 ( 848)[Li] | |
| 0184 putnil | |
| 0185 pop | |
| 0186 jump 198 | |
| 0188 getlocal_WC_0 dest_names@3 ( 851)[Li] | |
| 0190 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0192 pop | |
| 0193 getlocal_WC_0 base_names@7 ( 852)[Li] | |
| 0195 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0197 pop | |
| 0198 getlocal_WC_0 dest_names@3 ( 848) | |
| 0200 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0202 opt_not <calldata!mid:!, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0204 branchunless 228 | |
| 0206 getlocal_WC_0 base_names@7 ( 849) | |
| 0208 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0210 opt_not <calldata!mid:!, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0212 branchunless 228 ( 848) | |
| 0214 opt_getconstant_path <ic:4 SAME_PATHS> ( 850) | |
| 0216 getlocal_WC_0 dest_names@3 | |
| 0218 opt_send_without_block <calldata!mid:first, argc:0, ARGS_SIMPLE> | |
| 0220 getlocal_WC_0 base_names@7 | |
| 0222 opt_send_without_block <calldata!mid:first, argc:0, ARGS_SIMPLE> | |
| 0224 opt_send_without_block <calldata!mid:[], argc:2, ARGS_SIMPLE> | |
| 0226 branchif 188 ( 848) | |
| 0228 putnil | |
| 0229 pop | |
| 0230 getlocal_WC_0 base_names@7 ( 854)[Li] | |
| 0232 putchilledstring ".." | |
| 0234 opt_send_without_block <calldata!mid:include?, argc:1, ARGS_SIMPLE> | |
| 0236 branchunless 256 | |
| 0238 putself ( 855)[Li] | |
| 0239 opt_getconstant_path <ic:5 ArgumentError> | |
| 0241 putobject "base_directory has ..: " | |
| 0243 getlocal_WC_0 base_directory@0 | |
| 0245 opt_send_without_block <calldata!mid:inspect, argc:0, ARGS_SIMPLE> | |
| 0247 dup | |
| 0248 objtostring <calldata!mid:to_s, argc:0, FCALL|ARGS_SIMPLE> | |
| 0250 anytostring | |
| 0251 concatstrings 2 | |
| 0253 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0255 pop | |
| 0256 getlocal_WC_0 base_names@7 ( 857)[Li] | |
| 0258 putchilledstring ".." | |
| 0260 opt_send_without_block <calldata!mid:fill, argc:1, ARGS_SIMPLE> | |
| 0262 pop | |
| 0263 getlocal_WC_0 base_names@7 ( 858)[Li] | |
| 0265 getlocal_WC_0 dest_names@3 | |
| 0267 opt_plus <calldata!mid:+, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0269 setlocal_WC_0 relpath_names@8 | |
| 0271 getlocal_WC_0 relpath_names@8 ( 859)[Li] | |
| 0273 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0275 branchunless 295 | |
| 0277 opt_getconstant_path <ic:6 Pathname> ( 860)[Li] | |
| 0279 putnil | |
| 0280 swap | |
| 0281 putchilledstring "." | |
| 0283 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 290 | |
| 0286 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0288 jump 293 | |
| 0290 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0292 swap | |
| 0293 pop | |
| 0294 leave ( 864)[Re] | |
| 0295 opt_getconstant_path <ic:7 Pathname> ( 862)[Li] | |
| 0297 putnil | |
| 0298 swap | |
| 0299 opt_getconstant_path <ic:8 File> | |
| 0301 getlocal_WC_0 relpath_names@8 | |
| 0303 splatarray false | |
| 0305 opt_send_without_block <calldata!mid:join, argc:1, ARGS_SPLAT> | |
| 0307 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 314 | |
| 0310 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0312 jump 317 | |
| 0314 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0316 swap | |
| 0317 pop | |
| 0318 leave ( 864)[Re] | |
| == disasm: #<ISeq:<class:Pathname>@<internal:pathname_builtin>:867 (867,0)-(1007,3)> | |
| 0000 definemethod :each_line, each_line ( 874)[LiCl] | |
| 0003 definemethod :read, read ( 880)[Li] | |
| 0006 definemethod :binread, binread ( 884)[Li] | |
| 0009 definemethod :readlines, readlines ( 887)[Li] | |
| 0012 definemethod :sysopen, sysopen ( 890)[Li] | |
| 0015 definemethod :write, write ( 893)[Li] | |
| 0018 definemethod :binwrite, binwrite ( 898)[Li] | |
| 0021 definemethod :atime, atime ( 901)[Li] | |
| 0024 definemethod :birthtime, birthtime ( 907)[Li] | |
| 0027 definemethod :ctime, ctime ( 910)[Li] | |
| 0030 definemethod :mtime, mtime ( 913)[Li] | |
| 0033 definemethod :chmod, chmod ( 916)[Li] | |
| 0036 definemethod :lchmod, lchmod ( 919)[Li] | |
| 0039 definemethod :chown, chown ( 922)[Li] | |
| 0042 definemethod :lchown, lchown ( 925)[Li] | |
| 0045 definemethod :fnmatch, fnmatch ( 929)[Li] | |
| 0048 definemethod :fnmatch?, fnmatch? ( 932)[Li] | |
| 0051 definemethod :ftype, ftype ( 936)[Li] | |
| 0054 definemethod :make_link, make_link ( 939)[Li] | |
| 0057 definemethod :open, open ( 942)[Li] | |
| 0060 definemethod :readlink, readlink ( 947)[Li] | |
| 0063 definemethod :rename, rename ( 950)[Li] | |
| 0066 definemethod :stat, stat ( 953)[Li] | |
| 0069 definemethod :lstat, lstat ( 956)[Li] | |
| 0072 definemethod :make_symlink, make_symlink( 959)[Li] | |
| 0075 definemethod :truncate, truncate ( 962)[Li] | |
| 0078 definemethod :utime, utime ( 965)[Li] | |
| 0081 definemethod :lutime, lutime ( 972)[Li] | |
| 0084 definemethod :basename, basename ( 975)[Li] | |
| 0087 definemethod :dirname, dirname ( 978)[Li] | |
| 0090 definemethod :extname, extname ( 981)[Li] | |
| 0093 definemethod :expand_path, expand_path ( 984)[Li] | |
| 0096 definemethod :split, split ( 988)[Li] | |
| 0099 definemethod :realpath, realpath ( 999)[Li] | |
| 0102 definemethod :realdirpath, realdirpath (1006)[Li] | |
| 0105 putobject :realdirpath | |
| 0107 leave (1007)[En] | |
| == disasm: #<ISeq:each_line@<internal:pathname_builtin>:874 (874,2)-(876,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 opt_getconstant_path <ic:1 File> ( 875)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 "..."@0 | |
| 0007 sendforward <calldata!mid:foreach, argc:1, FORWARDING>, nil | |
| 0010 leave ( 876)[Re] | |
| == disasm: #<ISeq:read@<internal:pathname_builtin>:880 (880,2)-(880,41)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 opt_getconstant_path <ic:1 File> ( 880)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 "..."@0 | |
| 0007 sendforward <calldata!mid:read, argc:1, FORWARDING>, nil | |
| 0010 leave [Re] | |
| == disasm: #<ISeq:binread@<internal:pathname_builtin>:884 (884,2)-(884,47)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 opt_getconstant_path <ic:1 File> ( 884)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 "..."@0 | |
| 0007 sendforward <calldata!mid:binread, argc:1, FORWARDING>, nil | |
| 0010 leave [Re] | |
| == disasm: #<ISeq:readlines@<internal:pathname_builtin>:887 (887,2)-(887,51)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 opt_getconstant_path <ic:1 File> ( 887)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 "..."@0 | |
| 0007 sendforward <calldata!mid:readlines, argc:1, FORWARDING>, nil | |
| 0010 leave [Re] | |
| == disasm: #<ISeq:sysopen@<internal:pathname_builtin>:890 (890,2)-(890,47)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 opt_getconstant_path <ic:1 File> ( 890)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 "..."@0 | |
| 0007 sendforward <calldata!mid:sysopen, argc:1, FORWARDING>, nil | |
| 0010 leave [Re] | |
| == disasm: #<ISeq:write@<internal:pathname_builtin>:893 (893,2)-(893,43)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 opt_getconstant_path <ic:1 File> ( 893)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 "..."@0 | |
| 0007 sendforward <calldata!mid:write, argc:1, FORWARDING>, nil | |
| 0010 leave [Re] | |
| == disasm: #<ISeq:binwrite@<internal:pathname_builtin>:898 (898,2)-(898,49)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 opt_getconstant_path <ic:1 File> ( 898)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 "..."@0 | |
| 0007 sendforward <calldata!mid:binwrite, argc:1, FORWARDING>, nil | |
| 0010 leave [Re] | |
| == disasm: #<ISeq:atime@<internal:pathname_builtin>:901 (901,2)-(901,35)> | |
| 0000 opt_getconstant_path <ic:1 File> ( 901)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:atime, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:birthtime@<internal:pathname_builtin>:907 (907,2)-(907,43)> | |
| 0000 opt_getconstant_path <ic:1 File> ( 907)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:birthtime, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:ctime@<internal:pathname_builtin>:910 (910,2)-(910,35)> | |
| 0000 opt_getconstant_path <ic:1 File> ( 910)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:ctime, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:mtime@<internal:pathname_builtin>:913 (913,2)-(913,35)> | |
| 0000 opt_getconstant_path <ic:1 File> ( 913)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:mtime, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:chmod@<internal:pathname_builtin>:916 (916,2)-(916,45)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] mode@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 916)[LiCa] | |
| 0002 getlocal_WC_0 mode@0 | |
| 0004 getinstancevariable :@path, <is:0> | |
| 0007 opt_send_without_block <calldata!mid:chmod, argc:2, ARGS_SIMPLE> | |
| 0009 leave [Re] | |
| == disasm: #<ISeq:lchmod@<internal:pathname_builtin>:919 (919,2)-(919,47)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] mode@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 919)[LiCa] | |
| 0002 getlocal_WC_0 mode@0 | |
| 0004 getinstancevariable :@path, <is:0> | |
| 0007 opt_send_without_block <calldata!mid:lchmod, argc:2, ARGS_SIMPLE> | |
| 0009 leave [Re] | |
| == disasm: #<ISeq:chown@<internal:pathname_builtin>:922 (922,2)-(922,61)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] owner@0<Arg>[ 1] group@1<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 922)[LiCa] | |
| 0002 getlocal_WC_0 owner@0 | |
| 0004 getlocal_WC_0 group@1 | |
| 0006 getinstancevariable :@path, <is:0> | |
| 0009 opt_send_without_block <calldata!mid:chown, argc:3, ARGS_SIMPLE> | |
| 0011 leave [Re] | |
| == disasm: #<ISeq:lchown@<internal:pathname_builtin>:925 (925,2)-(925,63)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] owner@0<Arg>[ 1] group@1<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 925)[LiCa] | |
| 0002 getlocal_WC_0 owner@0 | |
| 0004 getlocal_WC_0 group@1 | |
| 0006 getinstancevariable :@path, <is:0> | |
| 0009 opt_send_without_block <calldata!mid:lchown, argc:3, ARGS_SIMPLE> | |
| 0011 leave [Re] | |
| == disasm: #<ISeq:fnmatch@<internal:pathname_builtin>:929 (929,2)-(929,65)> | |
| local table (size: 5, argc: 1 [opts: 0, rest: 1, post: 0, block: 3, kw: -1@-1, kwrest: 2]) | |
| [ 5] pattern@0<Arg>[ 4] "*"@1<AnonRest>[ 3] "**"@2<AnonKwrest>[ 2] "&"@3<Block>[ 1] "..."@4 | |
| 0000 opt_getconstant_path <ic:1 File> ( 929)[LiCa] | |
| 0002 getlocal_WC_0 pattern@0 | |
| 0004 getinstancevariable :@path, <is:0> | |
| 0007 getlocal_WC_0 "*"@1 | |
| 0009 splatarray false | |
| 0011 getlocal_WC_0 "**"@2 | |
| 0013 getblockparamproxy "&"@3, 0 | |
| 0016 splatkw | |
| 0017 send <calldata!mid:fnmatch, argc:4, ARGS_SPLAT|ARGS_BLOCKARG|KW_SPLAT>, nil | |
| 0020 leave [Re] | |
| == disasm: #<ISeq:fnmatch?@<internal:pathname_builtin>:932 (932,2)-(932,67)> | |
| local table (size: 5, argc: 1 [opts: 0, rest: 1, post: 0, block: 3, kw: -1@-1, kwrest: 2]) | |
| [ 5] pattern@0<Arg>[ 4] "*"@1<AnonRest>[ 3] "**"@2<AnonKwrest>[ 2] "&"@3<Block>[ 1] "..."@4 | |
| 0000 opt_getconstant_path <ic:1 File> ( 932)[LiCa] | |
| 0002 getlocal_WC_0 pattern@0 | |
| 0004 getinstancevariable :@path, <is:0> | |
| 0007 getlocal_WC_0 "*"@1 | |
| 0009 splatarray false | |
| 0011 getlocal_WC_0 "**"@2 | |
| 0013 getblockparamproxy "&"@3, 0 | |
| 0016 splatkw | |
| 0017 send <calldata!mid:fnmatch?, argc:4, ARGS_SPLAT|ARGS_BLOCKARG|KW_SPLAT>, nil | |
| 0020 leave [Re] | |
| == disasm: #<ISeq:ftype@<internal:pathname_builtin>:936 (936,2)-(936,35)> | |
| 0000 opt_getconstant_path <ic:1 File> ( 936)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:ftype, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:make_link@<internal:pathname_builtin>:939 (939,2)-(939,46)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] old@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 939)[LiCa] | |
| 0002 getlocal_WC_0 old@0 | |
| 0004 getinstancevariable :@path, <is:0> | |
| 0007 opt_send_without_block <calldata!mid:link, argc:2, ARGS_SIMPLE> | |
| 0009 leave [Re] | |
| == disasm: #<ISeq:open@<internal:pathname_builtin>:942 (942,2)-(944,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 opt_getconstant_path <ic:1 File> ( 943)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 "..."@0 | |
| 0007 sendforward <calldata!mid:open, argc:1, FORWARDING>, nil | |
| 0010 leave ( 944)[Re] | |
| == disasm: #<ISeq:readlink@<internal:pathname_builtin>:947 (947,2)-(947,57)> | |
| 0000 putself ( 947)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 putnil | |
| 0004 swap | |
| 0005 opt_getconstant_path <ic:1 File> | |
| 0007 getinstancevariable :@path, <is:0> | |
| 0010 opt_send_without_block <calldata!mid:readlink, argc:1, ARGS_SIMPLE> | |
| 0012 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 19 | |
| 0015 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0017 jump 22 | |
| 0019 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0021 swap | |
| 0022 pop | |
| 0023 leave [Re] | |
| == disasm: #<ISeq:rename@<internal:pathname_builtin>:950 (950,2)-(950,43)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] to@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 950)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 to@0 | |
| 0007 opt_send_without_block <calldata!mid:rename, argc:2, ARGS_SIMPLE> | |
| 0009 leave [Re] | |
| == disasm: #<ISeq:stat@<internal:pathname_builtin>:953 (953,2)-(953,33)> | |
| 0000 opt_getconstant_path <ic:1 File> ( 953)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:stat, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:lstat@<internal:pathname_builtin>:956 (956,2)-(956,35)> | |
| 0000 opt_getconstant_path <ic:1 File> ( 956)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:lstat, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:make_symlink@<internal:pathname_builtin>:959 (959,2)-(959,52)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] old@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 959)[LiCa] | |
| 0002 getlocal_WC_0 old@0 | |
| 0004 getinstancevariable :@path, <is:0> | |
| 0007 opt_send_without_block <calldata!mid:symlink, argc:2, ARGS_SIMPLE> | |
| 0009 leave [Re] | |
| == disasm: #<ISeq:truncate@<internal:pathname_builtin>:962 (962,2)-(962,55)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] length@0<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 962)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 length@0 | |
| 0007 opt_send_without_block <calldata!mid:truncate, argc:2, ARGS_SIMPLE> | |
| 0009 leave [Re] | |
| == disasm: #<ISeq:utime@<internal:pathname_builtin>:965 (965,2)-(965,61)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] atime@0<Arg>[ 1] mtime@1<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 965)[LiCa] | |
| 0002 getlocal_WC_0 atime@0 | |
| 0004 getlocal_WC_0 mtime@1 | |
| 0006 getinstancevariable :@path, <is:0> | |
| 0009 opt_send_without_block <calldata!mid:utime, argc:3, ARGS_SIMPLE> | |
| 0011 leave [Re] | |
| == disasm: #<ISeq:lutime@<internal:pathname_builtin>:972 (972,2)-(972,63)> | |
| local table (size: 2, argc: 2 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] atime@0<Arg>[ 1] mtime@1<Arg> | |
| 0000 opt_getconstant_path <ic:1 File> ( 972)[LiCa] | |
| 0002 getlocal_WC_0 atime@0 | |
| 0004 getlocal_WC_0 mtime@1 | |
| 0006 getinstancevariable :@path, <is:0> | |
| 0009 opt_send_without_block <calldata!mid:lutime, argc:3, ARGS_SIMPLE> | |
| 0011 leave [Re] | |
| == disasm: #<ISeq:basename@<internal:pathname_builtin>:975 (975,2)-(975,65)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 putself ( 975)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 putnil | |
| 0004 swap | |
| 0005 opt_getconstant_path <ic:1 File> | |
| 0007 getinstancevariable :@path, <is:0> | |
| 0010 getlocal_WC_0 "..."@0 | |
| 0012 sendforward <calldata!mid:basename, argc:1, FORWARDING>, nil | |
| 0015 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 22 | |
| 0018 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0020 jump 25 | |
| 0022 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0024 swap | |
| 0025 pop | |
| 0026 leave [Re] | |
| == disasm: #<ISeq:dirname@<internal:pathname_builtin>:978 (978,2)-(978,55)> | |
| 0000 putself ( 978)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 putnil | |
| 0004 swap | |
| 0005 opt_getconstant_path <ic:1 File> | |
| 0007 getinstancevariable :@path, <is:0> | |
| 0010 opt_send_without_block <calldata!mid:dirname, argc:1, ARGS_SIMPLE> | |
| 0012 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 19 | |
| 0015 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0017 jump 22 | |
| 0019 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0021 swap | |
| 0022 pop | |
| 0023 leave [Re] | |
| == disasm: #<ISeq:extname@<internal:pathname_builtin>:981 (981,2)-(981,39)> | |
| 0000 opt_getconstant_path <ic:1 File> ( 981)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:extname, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:expand_path@<internal:pathname_builtin>:984 (984,2)-(984,71)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 putself ( 984)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 putnil | |
| 0004 swap | |
| 0005 opt_getconstant_path <ic:1 File> | |
| 0007 getinstancevariable :@path, <is:0> | |
| 0010 getlocal_WC_0 "..."@0 | |
| 0012 sendforward <calldata!mid:expand_path, argc:1, FORWARDING>, nil | |
| 0015 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 22 | |
| 0018 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0020 jump 25 | |
| 0022 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0024 swap | |
| 0025 pop | |
| 0026 leave [Re] | |
| == disasm: #<ISeq:split@<internal:pathname_builtin>:988 (988,2)-(992,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] array@0 | |
| 0000 opt_getconstant_path <ic:1 File> ( 989)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:split, argc:1, ARGS_SIMPLE> | |
| 0007 setlocal_WC_0 array@0 | |
| 0009 opt_getconstant_path <ic:2 Array> ( 990)[Li] | |
| 0011 getlocal_WC_0 array@0 | |
| 0013 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| 0015 branchif 25 | |
| 0017 putself | |
| 0018 opt_getconstant_path <ic:3 TypeError> | |
| 0020 putchilledstring "wrong argument type nil (expected Array)" | |
| 0022 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0024 pop | |
| 0025 getlocal_WC_0 array@0 ( 991)[Li] | |
| 0027 send <calldata!mid:map, argc:0>, block in split | |
| 0030 leave ( 992)[Re] | |
| == disasm: #<ISeq:block in split@<internal:pathname_builtin>:991 (991,14)-(991,38)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] f@0<AmbiguousArg> | |
| 0000 putself ( 991)[LiBc] | |
| 0001 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 putnil | |
| 0004 swap | |
| 0005 getlocal_WC_0 f@0 | |
| 0007 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 14 | |
| 0010 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0012 jump 17 | |
| 0014 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0016 swap | |
| 0017 pop | |
| 0018 leave [Br] | |
| == disasm: #<ISeq:realpath@<internal:pathname_builtin>:999 (999,2)-(999,65)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 putself ( 999)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 putnil | |
| 0004 swap | |
| 0005 opt_getconstant_path <ic:1 File> | |
| 0007 getinstancevariable :@path, <is:0> | |
| 0010 getlocal_WC_0 "..."@0 | |
| 0012 sendforward <calldata!mid:realpath, argc:1, FORWARDING>, nil | |
| 0015 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 22 | |
| 0018 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0020 jump 25 | |
| 0022 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0024 swap | |
| 0025 pop | |
| 0026 leave [Re] | |
| == disasm: #<ISeq:realdirpath@<internal:pathname_builtin>:1006 (1006,2)-(1006,71)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 putself (1006)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 putnil | |
| 0004 swap | |
| 0005 opt_getconstant_path <ic:1 File> | |
| 0007 getinstancevariable :@path, <is:0> | |
| 0010 getlocal_WC_0 "..."@0 | |
| 0012 sendforward <calldata!mid:realdirpath, argc:1, FORWARDING>, nil | |
| 0015 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 22 | |
| 0018 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0020 jump 25 | |
| 0022 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0024 swap | |
| 0025 pop | |
| 0026 leave [Re] | |
| == disasm: #<ISeq:<class:Pathname>@<internal:pathname_builtin>:1010 (1010,0)-(1094,3)> | |
| 0000 definemethod :blockdev?, blockdev? (1013)[LiCl] | |
| 0003 definemethod :chardev?, chardev? (1016)[Li] | |
| 0006 definemethod :empty?, empty? (1021)[Li] | |
| 0009 definemethod :executable?, executable? (1030)[Li] | |
| 0012 definemethod :executable_real?, executable_real?(1033)[Li] | |
| 0015 definemethod :exist?, exist? (1036)[Li] | |
| 0018 definemethod :grpowned?, grpowned? (1039)[Li] | |
| 0021 definemethod :directory?, directory? (1042)[Li] | |
| 0024 definemethod :file?, file? (1045)[Li] | |
| 0027 definemethod :pipe?, pipe? (1048)[Li] | |
| 0030 definemethod :socket?, socket? (1051)[Li] | |
| 0033 definemethod :owned?, owned? (1054)[Li] | |
| 0036 definemethod :readable?, readable? (1057)[Li] | |
| 0039 definemethod :world_readable?, world_readable?(1060)[Li] | |
| 0042 definemethod :readable_real?, readable_real?(1063)[Li] | |
| 0045 definemethod :setuid?, setuid? (1066)[Li] | |
| 0048 definemethod :setgid?, setgid? (1069)[Li] | |
| 0051 definemethod :size, size (1072)[Li] | |
| 0054 definemethod :size?, size? (1075)[Li] | |
| 0057 definemethod :sticky?, sticky? (1078)[Li] | |
| 0060 definemethod :symlink?, symlink? (1081)[Li] | |
| 0063 definemethod :writable?, writable? (1084)[Li] | |
| 0066 definemethod :world_writable?, world_writable?(1087)[Li] | |
| 0069 definemethod :writable_real?, writable_real?(1090)[Li] | |
| 0072 definemethod :zero?, zero? (1093)[Li] | |
| 0075 putobject :zero? | |
| 0077 leave (1094)[En] | |
| == disasm: #<ISeq:blockdev?@<internal:pathname_builtin>:1013 (1013,2)-(1013,47)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1013)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:blockdev?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:chardev?@<internal:pathname_builtin>:1016 (1016,2)-(1016,45)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1016)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:chardev?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:empty?@<internal:pathname_builtin>:1021 (1021,2)-(1027,5)> | |
| 0000 opt_getconstant_path <ic:3 FileTest> (1022)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:directory?, argc:1, ARGS_SIMPLE> | |
| 0007 branchunless 17 | |
| 0009 opt_getconstant_path <ic:4 Dir> (1023)[Li] | |
| 0011 getinstancevariable :@path, <is:1> | |
| 0014 opt_send_without_block <calldata!mid:empty?, argc:1, ARGS_SIMPLE> | |
| 0016 leave (1027)[Re] | |
| 0017 opt_getconstant_path <ic:5 File> (1025)[Li] | |
| 0019 getinstancevariable :@path, <is:2> | |
| 0022 opt_send_without_block <calldata!mid:empty?, argc:1, ARGS_SIMPLE> | |
| 0024 leave (1027)[Re] | |
| == disasm: #<ISeq:executable?@<internal:pathname_builtin>:1030 (1030,2)-(1030,51)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1030)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:executable?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:executable_real?@<internal:pathname_builtin>:1033 (1033,2)-(1033,61)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1033)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:executable_real?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:exist?@<internal:pathname_builtin>:1036 (1036,2)-(1036,41)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1036)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:exist?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:grpowned?@<internal:pathname_builtin>:1039 (1039,2)-(1039,47)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1039)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:grpowned?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:directory?@<internal:pathname_builtin>:1042 (1042,2)-(1042,49)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1042)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:directory?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:file?@<internal:pathname_builtin>:1045 (1045,2)-(1045,39)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1045)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:file?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:pipe?@<internal:pathname_builtin>:1048 (1048,2)-(1048,39)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1048)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:pipe?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:socket?@<internal:pathname_builtin>:1051 (1051,2)-(1051,43)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1051)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:socket?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:owned?@<internal:pathname_builtin>:1054 (1054,2)-(1054,41)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1054)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:owned?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:readable?@<internal:pathname_builtin>:1057 (1057,2)-(1057,47)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1057)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:readable?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:world_readable?@<internal:pathname_builtin>:1060 (1060,2)-(1060,55)> | |
| 0000 opt_getconstant_path <ic:1 File> (1060)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:world_readable?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:readable_real?@<internal:pathname_builtin>:1063 (1063,2)-(1063,57)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1063)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:readable_real?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:setuid?@<internal:pathname_builtin>:1066 (1066,2)-(1066,43)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1066)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:setuid?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:setgid?@<internal:pathname_builtin>:1069 (1069,2)-(1069,43)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1069)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:setgid?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:size@<internal:pathname_builtin>:1072 (1072,2)-(1072,37)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1072)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:size, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:size?@<internal:pathname_builtin>:1075 (1075,2)-(1075,39)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1075)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:size?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:sticky?@<internal:pathname_builtin>:1078 (1078,2)-(1078,43)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1078)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:sticky?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:symlink?@<internal:pathname_builtin>:1081 (1081,2)-(1081,45)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1081)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:symlink?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:writable?@<internal:pathname_builtin>:1084 (1084,2)-(1084,47)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1084)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:writable?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:world_writable?@<internal:pathname_builtin>:1087 (1087,2)-(1087,55)> | |
| 0000 opt_getconstant_path <ic:1 File> (1087)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:world_writable?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:writable_real?@<internal:pathname_builtin>:1090 (1090,2)-(1090,57)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1090)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:writable_real?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:zero?@<internal:pathname_builtin>:1093 (1093,2)-(1093,39)> | |
| 0000 opt_getconstant_path <ic:1 FileTest> (1093)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:zero?, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:<class:Pathname>@<internal:pathname_builtin>:1097 (1097,0)-(1151,3)> | |
| 0000 opt_getconstant_path <ic:0 Pathname> (1099)[LiCl] | |
| 0002 definesmethod :glob, glob | |
| 0005 definemethod :glob, glob (1114)[Li] | |
| 0008 opt_getconstant_path <ic:1 Pathname> (1123)[Li] | |
| 0010 definesmethod :getwd, getwd | |
| 0013 putself (1124)[Li] | |
| 0014 putnil | |
| 0015 defineclass :singletonclass, singleton class, 1 | |
| 0019 pop | |
| 0020 definemethod :entries, entries (1130)[Li] | |
| 0023 definemethod :each_entry, each_entry (1136)[Li] | |
| 0026 definemethod :mkdir, mkdir (1142)[Li] | |
| 0029 definemethod :rmdir, rmdir (1145)[Li] | |
| 0032 definemethod :opendir, opendir (1148)[Li] | |
| 0035 putobject :opendir | |
| 0037 leave (1151)[En] | |
| == disasm: #<ISeq:glob@<internal:pathname_builtin>:1099 (1099,2)-(1105,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: -1@-1, kwrest: 1]) | |
| [ 2] args@0<Rest>[ 1] kwargs@1<Kwrest> | |
| 0000 putself (1100)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:block_given?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchunless 17 | |
| 0005 opt_getconstant_path <ic:0 Dir> (1101)[Li] | |
| 0007 getlocal_WC_0 args@0 | |
| 0009 splatarray false | |
| 0011 getlocal_WC_0 kwargs@1 | |
| 0013 send <calldata!mid:glob, argc:2, ARGS_SPLAT|KW_SPLAT>, block in glob | |
| 0016 leave (1105)[Re] | |
| 0017 opt_getconstant_path <ic:1 Dir> (1103)[Li] | |
| 0019 getlocal_WC_0 args@0 | |
| 0021 splatarray false | |
| 0023 getlocal_WC_0 kwargs@1 | |
| 0025 opt_send_without_block <calldata!mid:glob, argc:2, ARGS_SPLAT|KW_SPLAT> | |
| 0027 send <calldata!mid:map, argc:0>, block in glob | |
| 0030 leave (1105)[Re] | |
| == disasm: #<ISeq:block in glob@<internal:pathname_builtin>:1101 (1101,32)-(1101,56)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] f@0<AmbiguousArg> | |
| 0000 putself (1101)[LiBc] | |
| 0001 putnil | |
| 0002 swap | |
| 0003 getlocal_WC_0 f@0 | |
| 0005 opt_new <calldata!mid:new, argc:1, FCALL|ARGS_SIMPLE>, 12 | |
| 0008 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0010 jump 15 | |
| 0012 opt_send_without_block <calldata!mid:new, argc:1, FCALL|ARGS_SIMPLE> | |
| 0014 swap | |
| 0015 pop | |
| 0016 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0018 leave [Br] | |
| == disasm: #<ISeq:block in glob@<internal:pathname_builtin>:1103 (1103,36)-(1103,54)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] f@0<AmbiguousArg> | |
| 0000 putself (1103)[LiBc] | |
| 0001 putnil | |
| 0002 swap | |
| 0003 getlocal_WC_0 f@0 | |
| 0005 opt_new <calldata!mid:new, argc:1, FCALL|ARGS_SIMPLE>, 12 | |
| 0008 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0010 jump 15 | |
| 0012 opt_send_without_block <calldata!mid:new, argc:1, FCALL|ARGS_SIMPLE> | |
| 0014 swap | |
| 0015 pop | |
| 0016 leave [Br] | |
| == disasm: #<ISeq:glob@<internal:pathname_builtin>:1114 (1114,2)-(1120,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: -1@-1, kwrest: 1]) | |
| [ 2] args@0<Rest>[ 1] kwargs@1<Kwrest> | |
| 0000 putself (1115)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:block_given?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchunless 33 | |
| 0005 opt_getconstant_path <ic:2 Dir> (1116)[Li] | |
| 0007 getlocal_WC_0 args@0 | |
| 0009 splatarray false | |
| 0011 putspecialobject 1 | |
| 0013 newhash 0 | |
| 0015 getlocal_WC_0 kwargs@1 | |
| 0017 opt_send_without_block <calldata!mid:core#hash_merge_kwd, argc:2, ARGS_SIMPLE> | |
| 0019 putspecialobject 1 | |
| 0021 swap | |
| 0022 putobject :base | |
| 0024 getinstancevariable :@path, <is:0> | |
| 0027 opt_send_without_block <calldata!mid:core#hash_merge_ptr, argc:3, ARGS_SIMPLE> | |
| 0029 send <calldata!mid:glob, argc:2, ARGS_SPLAT|KW_SPLAT|KW_SPLAT_MUT>, block in glob | |
| 0032 leave (1120)[Re] | |
| 0033 opt_getconstant_path <ic:3 Dir> (1118)[Li] | |
| 0035 getlocal_WC_0 args@0 | |
| 0037 splatarray false | |
| 0039 putspecialobject 1 | |
| 0041 newhash 0 | |
| 0043 getlocal_WC_0 kwargs@1 | |
| 0045 opt_send_without_block <calldata!mid:core#hash_merge_kwd, argc:2, ARGS_SIMPLE> | |
| 0047 putspecialobject 1 | |
| 0049 swap | |
| 0050 putobject :base | |
| 0052 getinstancevariable :@path, <is:1> | |
| 0055 opt_send_without_block <calldata!mid:core#hash_merge_ptr, argc:3, ARGS_SIMPLE> | |
| 0057 opt_send_without_block <calldata!mid:glob, argc:2, ARGS_SPLAT|KW_SPLAT|KW_SPLAT_MUT> | |
| 0059 send <calldata!mid:map, argc:0>, block in glob | |
| 0062 leave (1120)[Re] | |
| == disasm: #<ISeq:block in glob@<internal:pathname_builtin>:1116 (1116,45)-(1116,66)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] f@0<AmbiguousArg> | |
| 0000 putself (1116)[LiBc] | |
| 0001 getlocal_WC_0 f@0 | |
| 0003 opt_plus <calldata!mid:+, argc:1, FCALL|ARGS_SIMPLE>[CcCr] | |
| 0005 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0007 leave [Br] | |
| == disasm: #<ISeq:block in glob@<internal:pathname_builtin>:1118 (1118,49)-(1118,64)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] f@0<AmbiguousArg> | |
| 0000 putself (1118)[LiBc] | |
| 0001 getlocal_WC_0 f@0 | |
| 0003 opt_plus <calldata!mid:+, argc:1, FCALL|ARGS_SIMPLE>[CcCr] | |
| 0005 leave [Br] | |
| == disasm: #<ISeq:getwd@<internal:pathname_builtin>:1123 (1123,2)-(1123,46)> | |
| 0000 putself (1123)[LiCa] | |
| 0001 putnil | |
| 0002 swap | |
| 0003 opt_getconstant_path <ic:0 Dir> | |
| 0005 opt_send_without_block <calldata!mid:getwd, argc:0, ARGS_SIMPLE> | |
| 0007 opt_new <calldata!mid:new, argc:1, FCALL|ARGS_SIMPLE>, 14 | |
| 0010 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0012 jump 17 | |
| 0014 opt_send_without_block <calldata!mid:new, argc:1, FCALL|ARGS_SIMPLE> | |
| 0016 swap | |
| 0017 pop | |
| 0018 leave [Re] | |
| == disasm: #<ISeq:singleton class@<internal:pathname_builtin>:1124 (1124,2)-(1126,5)> | |
| 0000 putspecialobject 1 (1125)[Li] | |
| 0002 putspecialobject 2 | |
| 0004 putobject :pwd | |
| 0006 putobject :getwd | |
| 0008 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0010 leave | |
| == disasm: #<ISeq:entries@<internal:pathname_builtin>:1130 (1130,2)-(1130,67)> | |
| 0000 opt_getconstant_path <ic:1 Dir> (1130)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:entries, argc:1, ARGS_SIMPLE> | |
| 0007 send <calldata!mid:map, argc:0>, block in entries | |
| 0010 leave [Re] | |
| == disasm: #<ISeq:block in entries@<internal:pathname_builtin>:1130 (1130,39)-(1130,63)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] f@0<AmbiguousArg> | |
| 0000 putself (1130)[LiBc] | |
| 0001 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 putnil | |
| 0004 swap | |
| 0005 getlocal_WC_0 f@0 | |
| 0007 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 14 | |
| 0010 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0012 jump 17 | |
| 0014 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0016 swap | |
| 0017 pop | |
| 0018 leave [Br] | |
| == disasm: #<ISeq:each_entry@<internal:pathname_builtin>:1136 (1136,2)-(1139,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: 0, kw: -1@-1, kwrest: -1]) | |
| [ 1] block@0<Block> | |
| 0000 putself (1137)[LiCa] | |
| 0001 opt_send_without_block <calldata!mid:block_given?, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 branchif 12 | |
| 0005 putself | |
| 0006 putself | |
| 0007 opt_send_without_block <calldata!mid:__method__, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0009 opt_send_without_block <calldata!mid:to_enum, argc:1, FCALL|ARGS_SIMPLE> | |
| 0011 leave [Re] | |
| 0012 opt_getconstant_path <ic:1 Dir> (1138)[Li] | |
| 0014 getinstancevariable :@path, <is:0> | |
| 0017 send <calldata!mid:foreach, argc:1>, block in each_entry | |
| 0020 leave (1139)[Re] | |
| == disasm: #<ISeq:block in each_entry@<internal:pathname_builtin>:1138 (1138,23)-(1138,53)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] f@0<AmbiguousArg> | |
| 0000 putself (1138)[LiBc] | |
| 0001 opt_send_without_block <calldata!mid:class, argc:0, FCALL|ARGS_SIMPLE> | |
| 0003 putnil | |
| 0004 swap | |
| 0005 getlocal_WC_0 f@0 | |
| 0007 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 14 | |
| 0010 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0012 jump 17 | |
| 0014 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0016 swap | |
| 0017 pop | |
| 0018 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0020 leave [Br] | |
| == disasm: #<ISeq:mkdir@<internal:pathname_builtin>:1142 (1142,2)-(1142,42)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 opt_getconstant_path <ic:1 Dir> (1142)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getlocal_WC_0 "..."@0 | |
| 0007 sendforward <calldata!mid:mkdir, argc:1, FORWARDING>, nil | |
| 0010 leave [Re] | |
| == disasm: #<ISeq:rmdir@<internal:pathname_builtin>:1145 (1145,2)-(1145,34)> | |
| 0000 opt_getconstant_path <ic:1 Dir> (1145)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:rmdir, argc:1, ARGS_SIMPLE> | |
| 0007 leave [Re] | |
| == disasm: #<ISeq:opendir@<internal:pathname_builtin>:1148 (1148,2)-(1150,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: 0, kw: -1@-1, kwrest: -1]) | |
| [ 1] block@0<Block> | |
| 0000 opt_getconstant_path <ic:1 Dir> (1149)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 getblockparamproxy block@0, 0 | |
| 0008 send <calldata!mid:open, argc:1, ARGS_BLOCKARG>, nil | |
| 0011 leave (1150)[Re] | |
| == disasm: #<ISeq:<class:Pathname>@<internal:pathname_builtin>:1153 (1153,0)-(1162,3)> | |
| 0000 definemethod :unlink, unlink (1156)[LiCl] | |
| 0003 putspecialobject 1 (1161)[Li] | |
| 0005 putspecialobject 2 | |
| 0007 putobject :delete | |
| 0009 putobject :unlink | |
| 0011 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0013 leave (1162)[En] | |
| == disasm: #<ISeq:unlink@<internal:pathname_builtin>:1156 (1156,2)-(1160,5)> | |
| == catch table | |
| | catch type: rescue st: 0000 ed: 0007 sp: 0000 cont: 0008 | |
| | == disasm: #<ISeq:rescue in unlink@<internal:pathname_builtin>:1158 (1158,2)-(1159,21)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_0 "$!"@0 (1158) | |
| | 0002 opt_getconstant_path <ic:1 Errno::ENOTDIR> | |
| | 0004 checkmatch 3 | |
| | 0006 branchunless 16 | |
| | 0008 opt_getconstant_path <ic:2 File> (1159)[LiRs] | |
| | 0010 getinstancevariable :@path, <is:0> | |
| | 0013 opt_send_without_block <calldata!mid:unlink, argc:1, ARGS_SIMPLE> | |
| | 0015 leave (1158) | |
| | 0016 getlocal_WC_0 "$!"@0 | |
| | 0018 throw 0 | |
| | catch type: retry st: 0007 ed: 0008 sp: 0000 cont: 0000 | |
| |------------------------------------------------------------------------ | |
| 0000 opt_getconstant_path <ic:1 Dir> (1157)[LiCa] | |
| 0002 getinstancevariable :@path, <is:0> | |
| 0005 opt_send_without_block <calldata!mid:unlink, argc:1, ARGS_SIMPLE> | |
| 0007 nop (1156) | |
| 0008 leave (1160)[Re] | |
| == disasm: #<ISeq:<class:Pathname>@<internal:pathname_builtin>:1164 (1164,0)-(1166,3)> | |
| 0000 opt_getconstant_path <ic:0 Kernel> (1165)[LiCl] | |
| 0002 putobject :=~ | |
| 0004 opt_send_without_block <calldata!mid:method_defined?, argc:1, ARGS_SIMPLE> | |
| 0006 branchunless 17 | |
| 0008 putspecialobject 1 | |
| 0010 putspecialobject 2 | |
| 0012 putobject :=~ | |
| 0014 opt_send_without_block <calldata!mid:core#undef_method, argc:2, ARGS_SIMPLE> | |
| 0016 leave (1166)[En] | |
| 0017 putnil (1165) | |
| 0018 leave (1166)[En] | |
| == disasm: #<ISeq:<module:Kernel>@<internal:pathname_builtin>:1168 (1168,0)-(1175,3)> | |
| 0000 definemethod :Pathname, Pathname (1170)[LiCl] | |
| 0003 putself (1174)[Li] | |
| 0004 putobject :Pathname | |
| 0006 opt_send_without_block <calldata!mid:module_function, argc:1, FCALL|ARGS_SIMPLE> | |
| 0008 leave (1175)[En] | |
| == disasm: #<ISeq:Pathname@<internal:pathname_builtin>:1170 (1170,2)-(1173,5)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] path@0<Arg> | |
| 0000 opt_getconstant_path <ic:0 Pathname> (1171)[LiCa] | |
| 0002 getlocal_WC_0 path@0 | |
| 0004 opt_send_without_block <calldata!mid:===, argc:1, ARGS_SIMPLE> | |
| 0006 branchunless 11 | |
| 0008 getlocal_WC_0 path@0 | |
| 0010 leave [Re] | |
| 0011 opt_getconstant_path <ic:1 Pathname> (1172)[Li] | |
| 0013 putnil | |
| 0014 swap | |
| 0015 getlocal_WC_0 path@0 | |
| 0017 opt_new <calldata!mid:new, argc:1, ARGS_SIMPLE>, 24 | |
| 0020 opt_send_without_block <calldata!mid:initialize, argc:1, FCALL|ARGS_SIMPLE> | |
| 0022 jump 27 | |
| 0024 opt_send_without_block <calldata!mid:new, argc:1, ARGS_SIMPLE> | |
| 0026 swap | |
| 0027 pop | |
| 0028 leave (1173)[Re] | |
| == disasm: #<ISeq:zero?@<internal:numeric>:283 (283,2)-(286,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi285/0>, 0 ( 285)[LiCa] | |
| 0003 leave ( 286)[Re] | |
| == disasm: #<ISeq:<internal:warning>@<internal:warning>:4 (4,0)-(59,3)> | |
| 0000 putspecialobject 3 ( 4)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Kernel, <module:Kernel>, 2 | |
| 0007 leave | |
| == disasm: #<ISeq:<module:Kernel>@<internal:warning>:4 (4,0)-(59,3)> | |
| 0000 putself ( 5)[LiCl] | |
| 0001 opt_send_without_block <calldata!mid:module_function, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0003 pop | |
| 0004 definemethod :warn, warn ( 52)[Li] | |
| 0007 putobject :warn | |
| 0009 leave ( 59)[En] | |
| == disasm: #<ISeq:warn@<internal:warning>:52 (52,2)-(58,5)> | |
| local table (size: 4, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: 2@0, kwrest: -1]) | |
| [ 4] msgs@0<Rest>[ 3] uplevel@1 [ 2] category@2 [ 1] ?@3 | |
| 0000 opt_invokebuiltin_delegate <builtin!_bi53/0>, 0 ( 53)[LiCa] | |
| 0003 branchunless 13 | |
| 0005 getlocal_WC_0 msgs@0 ( 54)[Li] | |
| 0007 getlocal_WC_0 uplevel@1 | |
| 0009 putnil | |
| 0010 invokebuiltin <builtin!rb_warn_m/3> | |
| 0012 leave ( 58)[Re] | |
| 0013 opt_getconstant_path <ic:0 Warning> ( 55)[Li] | |
| 0015 opt_invokebuiltin_delegate <builtin!_bi55/0>, 0 | |
| 0018 dup | |
| 0019 setlocal_WC_0 category@2 | |
| 0021 opt_aref <calldata!mid:[], argc:1, ARGS_SIMPLE>[CcCr] | |
| 0023 branchunless 29 | |
| 0025 opt_invokebuiltin_delegate <builtin!rb_warn_m/3>, 0 ( 56)[Li] | |
| 0028 leave ( 58)[Re] | |
| 0029 putnil ( 56) | |
| 0030 leave ( 58)[Re] | |
| == disasm: #<ISeq:<internal:array>@<internal:array>:1 (1,0)-(284,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Array, <class:Array>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:Array>@<internal:array>:1 (1,0)-(284,3)> | |
| 0000 definemethod :shuffle!, shuffle! ( 22)[LiCl] | |
| 0003 definemethod :shuffle, shuffle ( 45)[Li] | |
| 0006 definemethod :sample, sample ( 95)[Li] | |
| 0009 definemethod :first, first ( 129)[Li] | |
| 0012 definemethod :last, last ( 166)[Li] | |
| 0015 definemethod :fetch_values, fetch_values( 210)[Li] | |
| 0018 putself ( 215)[Li] | |
| 0019 send <calldata!mid:with_jit, argc:0, FCALL>, block in <class:Array> | |
| 0022 leave ( 284)[En] | |
| == disasm: #<ISeq:shuffle!@<internal:array>:22 (22,2)-(24,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 2] random@0 [ 1] ?@1 | |
| 0000 checkkeyword 3, 0 ( 22) | |
| 0003 branchif 9 | |
| 0005 opt_getconstant_path <ic:0 Random> | |
| 0007 setlocal_WC_0 random@0 | |
| 0009 opt_invokebuiltin_delegate_leave <builtin!rb_ary_shuffle_bang/1>, 0( 23)[LiCa] | |
| 0012 leave ( 24)[Re] | |
| == disasm: #<ISeq:shuffle@<internal:array>:45 (45,2)-(47,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 2] random@0 [ 1] ?@1 | |
| 0000 checkkeyword 3, 0 ( 45) | |
| 0003 branchif 9 | |
| 0005 opt_getconstant_path <ic:0 Random> | |
| 0007 setlocal_WC_0 random@0 | |
| 0009 opt_invokebuiltin_delegate_leave <builtin!rb_ary_shuffle/1>, 0( 46)[LiCa] | |
| 0012 leave ( 47)[Re] | |
| == disasm: #<ISeq:sample@<internal:array>:95 (95,2)-(103,5)> | |
| local table (size: 4, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 4] n@0<Opt=0> [ 3] random@1 [ 2] ?@2 [ 1] ary@3 | |
| 0000 putobject false ( 95)[Li] | |
| 0002 dup | |
| 0003 setlocal_WC_0 ary@3 | |
| 0005 setlocal_WC_0 n@0 | |
| 0007 checkkeyword 4, 0 | |
| 0010 branchif 16 | |
| 0012 opt_getconstant_path <ic:0 Random> | |
| 0014 setlocal_WC_0 random@1 | |
| 0016 getlocal_WC_0 random@1 ( 101)[LiCa] | |
| 0018 getlocal_WC_0 n@0 | |
| 0020 getlocal_WC_0 ary@3 | |
| 0022 invokebuiltin <builtin!ary_sample/3> | |
| 0024 leave ( 103)[Re] | |
| == disasm: #<ISeq:first@<internal:array>:129 (129,2)-(140,5)> | |
| local table (size: 2, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] n@0<Opt=0> [ 1] unspecified@1 | |
| 0000 putobject true ( 129) | |
| 0002 dup | |
| 0003 setlocal_WC_0 unspecified@1 | |
| 0005 setlocal_WC_0 n@0 | |
| 0007 getlocal_WC_0 unspecified@1 ( 134)[LiCa] | |
| 0009 branchunless 15 | |
| 0011 opt_invokebuiltin_delegate <builtin!_bi135/0>, 0 ( 135)[Li] | |
| 0014 leave ( 140)[Re] | |
| 0015 opt_invokebuiltin_delegate_leave <builtin!_bi137/0>, 0 ( 137)[Li] | |
| 0018 leave ( 140)[Re] | |
| == disasm: #<ISeq:last@<internal:array>:166 (166,2)-(177,5)> | |
| local table (size: 2, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] n@0<Opt=0> [ 1] unspecified@1 | |
| 0000 putobject true ( 166) | |
| 0002 dup | |
| 0003 setlocal_WC_0 unspecified@1 | |
| 0005 setlocal_WC_0 n@0 | |
| 0007 getlocal_WC_0 unspecified@1 ( 171)[LiCa] | |
| 0009 branchunless 15 | |
| 0011 opt_invokebuiltin_delegate <builtin!_bi172/0>, 0 ( 172)[Li] | |
| 0014 leave ( 177)[Re] | |
| 0015 opt_invokebuiltin_delegate_leave <builtin!_bi174/0>, 0 ( 174)[Li] | |
| 0018 leave ( 177)[Re] | |
| == disasm: #<ISeq:fetch_values@<internal:array>:210 (210,2)-(213,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: 0, post: 0, block: 1, kw: -1@-1, kwrest: -1]) | |
| [ 2] indexes@0<Rest>[ 1] block@1<Block> | |
| 0000 getlocal_WC_0 indexes@0 ( 211)[LiCa] | |
| 0002 send <calldata!mid:map!, argc:0>, block in fetch_values | |
| 0005 pop | |
| 0006 getlocal_WC_0 indexes@0 ( 212)[Li] | |
| 0008 leave ( 213)[Re] | |
| == disasm: #<ISeq:block in fetch_values@<internal:array>:211 (211,17)-(211,41)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] i@0<AmbiguousArg> | |
| 0000 putself ( 211)[LiBc] | |
| 0001 getlocal_WC_0 i@0 | |
| 0003 getblockparamproxy block@1, 1 | |
| 0006 send <calldata!mid:fetch, argc:1, ARGS_BLOCKARG|FCALL>, nil | |
| 0009 leave [Br] | |
| == disasm: #<ISeq:block in <class:Array>@<internal:array>:215 (215,11)-(283,5)> | |
| 0000 putobject :each ( 216)[LiBc] | |
| 0002 invokebuiltin <builtin!rb_builtin_basic_definition_p/1> | |
| 0004 branchunless 18 | |
| 0006 putspecialobject 1 ( 217)[Li] | |
| 0008 putspecialobject 2 | |
| 0010 putobject :each | |
| 0012 opt_send_without_block <calldata!mid:core#undef_method, argc:2, ARGS_SIMPLE> | |
| 0014 pop | |
| 0015 definemethod :each, each ( 219)[Li] | |
| 0018 putobject :map ( 234)[Li] | |
| 0020 invokebuiltin <builtin!rb_builtin_basic_definition_p/1> | |
| 0022 branchunless 62 | |
| 0024 putspecialobject 1 ( 235)[Li] | |
| 0026 putspecialobject 2 | |
| 0028 putobject :map | |
| 0030 opt_send_without_block <calldata!mid:core#undef_method, argc:2, ARGS_SIMPLE> | |
| 0032 pop | |
| 0033 definemethod :map, map ( 237)[Li] | |
| 0036 putobject :collect ( 253)[Li] | |
| 0038 invokebuiltin <builtin!rb_builtin_basic_definition_p/1> | |
| 0040 branchunless 62 | |
| 0042 putspecialobject 1 ( 254)[Li] | |
| 0044 putspecialobject 2 | |
| 0046 putobject :collect | |
| 0048 opt_send_without_block <calldata!mid:core#undef_method, argc:2, ARGS_SIMPLE> | |
| 0050 pop | |
| 0051 putspecialobject 1 ( 255)[Li] | |
| 0053 putspecialobject 2 | |
| 0055 putobject :collect | |
| 0057 putobject :map | |
| 0059 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0061 pop | |
| 0062 putobject :select ( 259)[Li] | |
| 0064 invokebuiltin <builtin!rb_builtin_basic_definition_p/1> | |
| 0066 branchunless 108 | |
| 0068 putspecialobject 1 ( 260)[Li] | |
| 0070 putspecialobject 2 | |
| 0072 putobject :select | |
| 0074 opt_send_without_block <calldata!mid:core#undef_method, argc:2, ARGS_SIMPLE> | |
| 0076 pop | |
| 0077 definemethod :select, select ( 262)[Li] | |
| 0080 putobject :filter ( 278)[Li] | |
| 0082 invokebuiltin <builtin!rb_builtin_basic_definition_p/1> | |
| 0084 branchunless 106 | |
| 0086 putspecialobject 1 ( 279)[Li] | |
| 0088 putspecialobject 2 | |
| 0090 putobject :filter | |
| 0092 opt_send_without_block <calldata!mid:core#undef_method, argc:2, ARGS_SIMPLE> | |
| 0094 pop | |
| 0095 putspecialobject 1 ( 280)[Li] | |
| 0097 putspecialobject 2 | |
| 0099 putobject :filter | |
| 0101 putobject :select | |
| 0103 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0105 leave ( 283)[Br] | |
| 0106 putnil ( 280) | |
| 0107 leave ( 283)[Br] | |
| 0108 putnil ( 280) | |
| 0109 leave ( 283)[Br] | |
| == disasm: #<ISeq:each@<internal:array>:219 (219,6)-(231,9)> INLINE_BLOCK C_TRACE | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 2] _i@0 [ 1] value@1 | |
| 0000 putnil ( 222)[LiCa] | |
| 0001 defined yield, false, true | |
| 0005 branchif 11 | |
| 0007 opt_invokebuiltin_delegate_leave <builtin!_bi223/0>, 0 ( 223)[Li] | |
| 0010 leave [Re] | |
| 0011 putobject_INT2FIX_0_ ( 225)[Li] | |
| 0012 setlocal_WC_0 _i@0 | |
| 0014 putnil ( 226)[Li] | |
| 0015 setlocal_WC_0 value@1 | |
| 0017 jump 28 ( 227)[Li] | |
| 0019 putnil | |
| 0020 pop | |
| 0021 jump 28 | |
| 0023 getlocal_WC_0 value@1 ( 228)[Li] | |
| 0025 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0027 pop | |
| 0028 opt_invokebuiltin_delegate <builtin!_bi227/0>, 0 ( 227) | |
| 0031 branchif 23 | |
| 0033 putnil | |
| 0034 pop | |
| 0035 putself ( 230)[Li] | |
| 0036 leave ( 231)[Re] | |
| == disasm: #<ISeq:map@<internal:array>:237 (237,6)-(251,9)> INLINE_BLOCK C_TRACE | |
| local table (size: 3, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] _i@0 [ 2] value@1 [ 1] result@2 | |
| 0000 putnil ( 240)[LiCa] | |
| 0001 defined yield, false, true | |
| 0005 branchif 11 | |
| 0007 opt_invokebuiltin_delegate_leave <builtin!_bi241/0>, 0 ( 241)[Li] | |
| 0010 leave [Re] | |
| 0011 putobject_INT2FIX_0_ ( 244)[Li] | |
| 0012 setlocal_WC_0 _i@0 | |
| 0014 putnil ( 245)[Li] | |
| 0015 setlocal_WC_0 value@1 | |
| 0017 opt_invokebuiltin_delegate <builtin!ary_sized_alloc/0>, 0( 246)[Li] | |
| 0020 setlocal_WC_0 result@2 | |
| 0022 jump 37 ( 247)[Li] | |
| 0024 putnil | |
| 0025 pop | |
| 0026 jump 37 | |
| 0028 getlocal_WC_0 result@2 ( 248)[Li] | |
| 0030 getlocal_WC_0 value@1 | |
| 0032 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0034 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0036 pop | |
| 0037 opt_invokebuiltin_delegate <builtin!_bi247/0>, 0 ( 247) | |
| 0040 branchif 28 | |
| 0042 putnil | |
| 0043 pop | |
| 0044 getlocal_WC_0 result@2 ( 250)[Li] | |
| 0046 leave ( 251)[Re] | |
| == disasm: #<ISeq:select@<internal:array>:262 (262,6)-(276,9)> INLINE_BLOCK C_TRACE | |
| local table (size: 3, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 3] _i@0 [ 2] value@1 [ 1] result@2 | |
| 0000 putnil ( 265)[LiCa] | |
| 0001 defined yield, false, true | |
| 0005 branchif 11 | |
| 0007 opt_invokebuiltin_delegate_leave <builtin!_bi266/0>, 0 ( 266)[Li] | |
| 0010 leave [Re] | |
| 0011 putobject_INT2FIX_0_ ( 269)[Li] | |
| 0012 setlocal_WC_0 _i@0 | |
| 0014 putnil ( 270)[Li] | |
| 0015 setlocal_WC_0 value@1 | |
| 0017 opt_invokebuiltin_delegate <builtin!ary_sized_alloc/0>, 0( 271)[Li] | |
| 0020 setlocal_WC_0 result@2 | |
| 0022 jump 41 ( 272)[Li] | |
| 0024 putnil | |
| 0025 pop | |
| 0026 jump 41 | |
| 0028 getlocal_WC_0 value@1 ( 273)[Li] | |
| 0030 invokeblock <calldata!argc:1, ARGS_SIMPLE> | |
| 0032 branchunless 41 | |
| 0034 getlocal_WC_0 result@2 | |
| 0036 getlocal_WC_0 value@1 | |
| 0038 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0040 pop | |
| 0041 opt_invokebuiltin_delegate <builtin!_bi272/0>, 0 ( 272) | |
| 0044 branchif 28 | |
| 0046 putnil | |
| 0047 pop | |
| 0048 getlocal_WC_0 result@2 ( 275)[Li] | |
| 0050 leave ( 276)[Re] | |
| == disasm: #<ISeq:with_jit@<internal:jit_hook>:4 (4,10)-(12,5)> | |
| == catch table | |
| | catch type: rescue st: 0001 ed: 0014 sp: 0000 cont: 0016 | |
| | == disasm: #<ISeq:defined guard in with_jit@<internal:jit_hook>:0 (0,0)-(-1,-1)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 putnil | |
| | 0001 leave | |
| | catch type: rescue st: 0024 ed: 0037 sp: 0000 cont: 0039 | |
| | == disasm: #<ISeq:defined guard in with_jit@<internal:jit_hook>:0 (0,0)-(-1,-1)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 putnil | |
| | 0001 leave | |
| |------------------------------------------------------------------------ | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: 0, kw: -1@-1, kwrest: -1]) | |
| [ 1] block@0<Block> | |
| 0000 putnil ( 6)[LiCa] | |
| 0001 putnil | |
| 0002 defined constant, :RubyVM, true | |
| 0006 branchunless 16 | |
| 0008 opt_getconstant_path <ic:0 RubyVM> | |
| 0010 defined constant-from, :ZJIT, true | |
| 0014 swap | |
| 0015 pop | |
| 0016 branchunless 23 | |
| 0018 opt_invokebuiltin_delegate <builtin!rb_zjit_option_enabled_p/0>, 0 | |
| 0021 branchunless 23 | |
| 0023 putnil ( 9)[Li] | |
| 0024 putnil | |
| 0025 defined constant, :RubyVM, true | |
| 0029 branchunless 39 | |
| 0031 opt_getconstant_path <ic:1 RubyVM> | |
| 0033 defined constant-from, :YJIT, true | |
| 0037 swap | |
| 0038 pop | |
| 0039 branchunless 51 | |
| 0041 opt_getconstant_path <ic:2 RubyVM::YJIT> ( 10)[Li] | |
| 0043 putobject :add_jit_hook | |
| 0045 getblockparam block@0, 0 | |
| 0048 opt_send_without_block <calldata!mid:send, argc:2, ARGS_SIMPLE> | |
| 0050 leave ( 12)[Re] | |
| 0051 putnil ( 10) | |
| 0052 leave ( 12)[Re] | |
| == disasm: #<ISeq:add_jit_hook@<internal:yjit>:274 (274,4)-(276,7)> | |
| local table (size: 1, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] hook@0<Arg> | |
| 0000 getinstancevariable :@jit_hooks, <is:0> ( 275)[LiCa] | |
| 0003 getlocal_WC_0 hook@0 | |
| 0005 opt_ltlt <calldata!mid:<<, argc:1, ARGS_SIMPLE>[CcCr] | |
| 0007 leave ( 276)[Re] | |
| == disasm: #<ISeq:<internal:hash>@<internal:hash>:1 (1,0)-(40,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Hash, <class:Hash>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:Hash>@<internal:hash>:1 (1,0)-(40,3)> | |
| 0000 definemethod :initialize, initialize ( 37)[LiCl] | |
| 0003 putobject :initialize | |
| 0005 leave ( 40)[En] | |
| == disasm: #<ISeq:initialize@<internal:hash>:37 (37,2)-(39,5)> | |
| local table (size: 5, argc: 0 [opts: 1, rest: -1, post: 0, block: 3, kw: 1@0, kwrest: -1]) | |
| [ 5] ifnone@0<Opt=0>[ 4] capacity@1 [ 3] ?@2 [ 2] block@3<Block>[ 1] ifnone_unset@4 | |
| 0000 putobject true ( 37)[Li] | |
| 0002 dup | |
| 0003 setlocal_WC_0 ifnone_unset@4 | |
| 0005 setlocal_WC_0 ifnone@0 | |
| 0007 getlocal_WC_0 capacity@1 ( 38)[LiCa] | |
| 0009 getlocal_WC_0 ifnone_unset@4 | |
| 0011 getlocal_WC_0 ifnone@0 | |
| 0013 getblockparam block@3, 0 | |
| 0016 invokebuiltin <builtin!rb_hash_init/4> | |
| 0018 leave ( 39)[Re] | |
| == disasm: #<ISeq:<internal:symbol>@<internal:symbol>:1 (1,0)-(42,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Symbol, <class:Symbol>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:Symbol>@<internal:symbol>:1 (1,0)-(42,3)> | |
| 0000 definemethod :to_s, to_s ( 10)[LiCl] | |
| 0003 putspecialobject 1 ( 15)[Li] | |
| 0005 putspecialobject 2 | |
| 0007 putobject :id2name | |
| 0009 putobject :to_s | |
| 0011 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0013 pop | |
| 0014 definemethod :name, name ( 26)[Li] | |
| 0017 definemethod :to_sym, to_sym ( 37)[Li] | |
| 0020 putspecialobject 1 ( 41)[Li] | |
| 0022 putspecialobject 2 | |
| 0024 putobject :intern | |
| 0026 putobject :to_sym | |
| 0028 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0030 leave ( 42)[En] | |
| == disasm: #<ISeq:to_s@<internal:symbol>:10 (10,2)-(13,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi12/0>, 0 ( 12)[LiCa] | |
| 0003 leave ( 13)[Re] | |
| == disasm: #<ISeq:name@<internal:symbol>:26 (26,2)-(29,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi28/0>, 0 ( 28)[LiCa] | |
| 0003 leave ( 29)[Re] | |
| == disasm: #<ISeq:to_sym@<internal:symbol>:37 (37,2)-(39,5)> | |
| 0000 putself ( 38)[LiCa] | |
| 0001 leave ( 39)[Re] | |
| == disasm: #<ISeq:<internal:timev>@<internal:timev>:261 (261,0)-(460,3)> | |
| 0000 putspecialobject 3 ( 261)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Time, <class:Time>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:Time>@<internal:timev>:261 (261,0)-(460,3)> | |
| 0000 putself ( 270)[LiCl] | |
| 0001 definesmethod :now, now | |
| 0004 putself ( 329)[Li] | |
| 0005 definesmethod :at, at | |
| 0008 definemethod :initialize, initialize ( 440)[Li] | |
| 0011 putobject :initialize | |
| 0013 leave ( 460)[En] | |
| == disasm: #<ISeq:now@<internal:timev>:270 (270,2)-(272,5)> | |
| local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 2] in@0 [ 1] ?@1 | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!time_s_now/1>, 0 ( 271)[LiCa] | |
| 0003 leave ( 272)[Re] | |
| == disasm: #<ISeq:at@<internal:timev>:329 (329,2)-(335,5)> | |
| local table (size: 5, argc: 1 [opts: 2, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 5] time@0<Arg>[ 4] subsec@1<Opt=0>[ 3] unit@2<Opt=4>[ 2] in@3 [ 1] ?@4 | |
| 0000 putobject false ( 329) | |
| 0002 setlocal_WC_0 subsec@1 | |
| 0004 putobject :microsecond | |
| 0006 setlocal_WC_0 unit@2 | |
| 0008 opt_invokebuiltin_delegate_leave <builtin!time_s_at/4>, 0 ( 333)[LiCa] | |
| 0011 leave ( 335)[Re] | |
| == disasm: #<ISeq:initialize@<internal:timev>:440 (440,2)-(459,5)> | |
| local table (size: 12, argc: 0 [opts: 7, rest: -1, post: 0, block: -1, kw: 2@0, kwrest: -1]) | |
| [12] year@0<Opt=0>[11] mon@1<Opt=7>[10] mday@2<Opt=14>[ 9] hour@3<Opt=17>[ 8] min@4<Opt=20>[ 7] sec@5<Opt=23>[ 6] zone@6<Opt=26>[ 5] in@7 [ 4] precision@8[ 3] ?@9 [ 2] now@10 [ 1] str@11 | |
| 0000 putobject true ( 440)[Li] | |
| 0002 dup | |
| 0003 setlocal_WC_0 now@10 | |
| 0005 setlocal_WC_0 year@0 | |
| 0007 getlocal_WC_0 year@0 | |
| 0009 setlocal_WC_0 str@11 | |
| 0011 putnil | |
| 0012 setlocal_WC_0 mon@1 | |
| 0014 putnil | |
| 0015 setlocal_WC_0 mday@2 | |
| 0017 putnil | |
| 0018 setlocal_WC_0 hour@3 | |
| 0020 putnil | |
| 0021 setlocal_WC_0 min@4 | |
| 0023 putnil | |
| 0024 setlocal_WC_0 sec@5 | |
| 0026 putnil | |
| 0027 setlocal_WC_0 zone@6 | |
| 0029 getlocal_WC_0 zone@6 ( 442)[LiCa] | |
| 0031 branchunless 47 | |
| 0033 getlocal_WC_0 in@7 ( 443)[Li] | |
| 0035 branchunless 51 | |
| 0037 putself ( 444)[Li] | |
| 0038 opt_getconstant_path <ic:0 ArgumentError> | |
| 0040 putchilledstring "timezone argument given as positional and keyword arguments" | |
| 0042 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0044 pop | |
| 0045 jump 51 ( 442) | |
| 0047 getlocal_WC_0 in@7 ( 447)[Li] | |
| 0049 setlocal_WC_0 zone@6 | |
| 0051 getlocal_WC_0 now@10 ( 450)[Li] | |
| 0053 branchunless 59 | |
| 0055 opt_invokebuiltin_delegate_leave <builtin!time_init_now/1>, 6( 451)[Li] | |
| 0058 leave [Re] | |
| 0059 getlocal_WC_0 str@11 ( 454)[Li] | |
| 0061 branchunless 75 | |
| 0063 getlocal_WC_0 str@11 | |
| 0065 getlocal_WC_0 zone@6 | |
| 0067 getlocal_WC_0 precision@8 | |
| 0069 invokebuiltin <builtin!time_init_parse/3> | |
| 0071 branchunless 75 | |
| 0073 putself ( 455)[Li] | |
| 0074 leave [Re] | |
| 0075 opt_invokebuiltin_delegate_leave <builtin!time_init_args/7>, 0( 458)[Li] | |
| 0078 leave ( 459)[Re] | |
| == disasm: #<ISeq:<internal:thread_sync>@<internal:thread_sync>:1 (1,0)-(68,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Thread, <class:Thread>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:Thread>@<internal:thread_sync>:1 (1,0)-(68,3)> | |
| 0000 putspecialobject 3 ( 2)[LiCl] | |
| 0002 putnil | |
| 0003 defineclass :Queue, <class:Queue>, 0 | |
| 0007 pop | |
| 0008 putspecialobject 3 ( 24)[Li] | |
| 0010 putnil | |
| 0011 defineclass :SizedQueue, <class:SizedQueue>, 0 | |
| 0015 leave ( 68)[En] | |
| == disasm: #<ISeq:<class:Queue>@<internal:thread_sync>:2 (2,2)-(22,5)> | |
| 0000 definemethod :pop, pop ( 14)[LiCl] | |
| 0003 putself ( 20)[Li] | |
| 0004 putobject :deq | |
| 0006 putobject :pop | |
| 0008 opt_send_without_block <calldata!mid:alias_method, argc:2, FCALL|ARGS_SIMPLE> | |
| 0010 pop | |
| 0011 putself ( 21)[Li] | |
| 0012 putobject :shift | |
| 0014 putobject :pop | |
| 0016 opt_send_without_block <calldata!mid:alias_method, argc:2, FCALL|ARGS_SIMPLE> | |
| 0018 leave ( 22)[En] | |
| == disasm: #<ISeq:pop@<internal:thread_sync>:14 (14,4)-(19,7)> | |
| local table (size: 3, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] non_block@0<Opt=0>[ 2] timeout@1 [ 1] ?@2 | |
| 0000 putobject false ( 14) | |
| 0002 setlocal_WC_0 non_block@0 | |
| 0004 getlocal_WC_0 non_block@0 ( 15)[LiCa] | |
| 0006 branchunless 20 | |
| 0008 getlocal_WC_0 timeout@1 | |
| 0010 branchunless 20 | |
| 0012 putself ( 16)[Li] | |
| 0013 opt_getconstant_path <ic:0 ArgumentError> | |
| 0015 putchilledstring "can't set a timeout if non_block is enabled" | |
| 0017 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0019 pop | |
| 0020 opt_invokebuiltin_delegate_leave <builtin!rb_queue_pop/2>, 0( 18)[Li] | |
| 0023 leave ( 19)[Re] | |
| == disasm: #<ISeq:<class:SizedQueue>@<internal:thread_sync>:24 (24,2)-(67,5)> | |
| 0000 definemethod :pop, pop ( 36)[LiCl] | |
| 0003 putself ( 42)[Li] | |
| 0004 putobject :deq | |
| 0006 putobject :pop | |
| 0008 opt_send_without_block <calldata!mid:alias_method, argc:2, FCALL|ARGS_SIMPLE> | |
| 0010 pop | |
| 0011 putself ( 43)[Li] | |
| 0012 putobject :shift | |
| 0014 putobject :pop | |
| 0016 opt_send_without_block <calldata!mid:alias_method, argc:2, FCALL|ARGS_SIMPLE> | |
| 0018 pop | |
| 0019 definemethod :push, push ( 59)[Li] | |
| 0022 putself ( 65)[Li] | |
| 0023 putobject :enq | |
| 0025 putobject :push | |
| 0027 opt_send_without_block <calldata!mid:alias_method, argc:2, FCALL|ARGS_SIMPLE> | |
| 0029 pop | |
| 0030 putself ( 66)[Li] | |
| 0031 putobject :<< | |
| 0033 putobject :push | |
| 0035 opt_send_without_block <calldata!mid:alias_method, argc:2, FCALL|ARGS_SIMPLE> | |
| 0037 leave ( 67)[En] | |
| == disasm: #<ISeq:pop@<internal:thread_sync>:36 (36,4)-(41,7)> | |
| local table (size: 3, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 3] non_block@0<Opt=0>[ 2] timeout@1 [ 1] ?@2 | |
| 0000 putobject false ( 36) | |
| 0002 setlocal_WC_0 non_block@0 | |
| 0004 getlocal_WC_0 non_block@0 ( 37)[LiCa] | |
| 0006 branchunless 20 | |
| 0008 getlocal_WC_0 timeout@1 | |
| 0010 branchunless 20 | |
| 0012 putself ( 38)[Li] | |
| 0013 opt_getconstant_path <ic:0 ArgumentError> | |
| 0015 putchilledstring "can't set a timeout if non_block is enabled" | |
| 0017 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0019 pop | |
| 0020 opt_invokebuiltin_delegate_leave <builtin!rb_szqueue_pop/2>, 0( 40)[Li] | |
| 0023 leave ( 41)[Re] | |
| == disasm: #<ISeq:push@<internal:thread_sync>:59 (59,4)-(64,7)> | |
| local table (size: 4, argc: 1 [opts: 1, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 4] object@0<Arg>[ 3] non_block@1<Opt=0>[ 2] timeout@2 [ 1] ?@3 | |
| 0000 putobject false ( 59) | |
| 0002 setlocal_WC_0 non_block@1 | |
| 0004 getlocal_WC_0 non_block@1 ( 60)[LiCa] | |
| 0006 branchunless 20 | |
| 0008 getlocal_WC_0 timeout@2 | |
| 0010 branchunless 20 | |
| 0012 putself ( 61)[Li] | |
| 0013 opt_getconstant_path <ic:0 ArgumentError> | |
| 0015 putchilledstring "can't set a timeout if non_block is enabled" | |
| 0017 opt_send_without_block <calldata!mid:raise, argc:2, FCALL|ARGS_SIMPLE> | |
| 0019 pop | |
| 0020 opt_invokebuiltin_delegate_leave <builtin!rb_szqueue_push/3>, 0( 63)[Li] | |
| 0023 leave ( 64)[Re] | |
| == disasm: #<ISeq:<internal:nilclass>@<internal:nilclass>:1 (1,0)-(63,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :NilClass, <class:NilClass>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:NilClass>@<internal:nilclass>:1 (1,0)-(63,3)> | |
| 0000 definemethod :rationalize, rationalize ( 12)[LiCl] | |
| 0003 definemethod :to_c, to_c ( 24)[Li] | |
| 0006 definemethod :to_i, to_i ( 36)[Li] | |
| 0009 definemethod :to_f, to_f ( 48)[Li] | |
| 0012 definemethod :to_r, to_r ( 60)[Li] | |
| 0015 putobject :to_r | |
| 0017 leave ( 63)[En] | |
| == disasm: #<ISeq:rationalize@<internal:nilclass>:12 (12,2)-(14,5)> | |
| local table (size: 1, argc: 0 [opts: 1, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] eps@0<Opt=0> | |
| 0000 putnil ( 12) | |
| 0001 setlocal_WC_0 eps@0 | |
| 0003 putobject (0/1) ( 13)[LiCa] | |
| 0005 leave ( 14)[Re] | |
| == disasm: #<ISeq:to_c@<internal:nilclass>:24 (24,2)-(26,5)> | |
| 0000 putobject (0+0i) ( 25)[LiCa] | |
| 0002 leave ( 26)[Re] | |
| == disasm: #<ISeq:to_i@<internal:nilclass>:36 (36,2)-(38,5)> | |
| 0000 putobject_INT2FIX_0_ ( 37)[LiCa] | |
| 0001 leave [Re] | |
| 0002 putnil | |
| 0003 leave ( 38)[Re] | |
| == disasm: #<ISeq:to_f@<internal:nilclass>:48 (48,2)-(50,5)> | |
| 0000 putobject 0.0 ( 49)[LiCa] | |
| 0002 leave [Re] | |
| 0003 putnil | |
| 0004 leave ( 50)[Re] | |
| == disasm: #<ISeq:to_r@<internal:nilclass>:60 (60,2)-(62,5)> | |
| 0000 putobject (0/1) ( 61)[LiCa] | |
| 0002 leave ( 62)[Re] | |
| == disasm: #<ISeq:<internal:marshal>@<internal:marshal>:1 (1,0)-(40,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Marshal, <module:Marshal>, 2 | |
| 0007 leave | |
| == disasm: #<ISeq:<module:Marshal>@<internal:marshal>:1 (1,0)-(40,3)> | |
| 0000 putself ( 33)[LiCl] | |
| 0001 definesmethod :load, load | |
| 0004 putself ( 37)[Li] | |
| 0005 putnil | |
| 0006 defineclass :singletonclass, singleton class, 1 | |
| 0010 leave ( 40)[En] | |
| == disasm: #<ISeq:load@<internal:marshal>:33 (33,2)-(35,5)> | |
| local table (size: 4, argc: 1 [opts: 1, rest: -1, post: 0, block: -1, kw: 1@0, kwrest: -1]) | |
| [ 4] source@0<Arg>[ 3] proc@1<Opt=0>[ 2] freeze@2 [ 1] ?@3 | |
| 0000 putnil ( 33) | |
| 0001 setlocal_WC_0 proc@1 | |
| 0003 opt_invokebuiltin_delegate_leave <builtin!marshal_load/3>, 0( 34)[LiCa] | |
| 0006 leave ( 35)[Re] | |
| == disasm: #<ISeq:singleton class@<internal:marshal>:37 (37,2)-(39,5)> | |
| 0000 putspecialobject 1 ( 38)[Li] | |
| 0002 putspecialobject 2 | |
| 0004 putobject :restore | |
| 0006 putobject :load | |
| 0008 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0010 leave | |
| == disasm: #<ISeq:<internal:jit_undef>@<internal:jit_undef>:2 (2,0)-(4,3)> | |
| 0000 putspecialobject 3 ( 2)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Module, <class:Module>, 0 | |
| 0007 leave | |
| == disasm: #<ISeq:<class:Module>@<internal:jit_undef>:2 (2,0)-(4,3)> | |
| 0000 putspecialobject 1 ( 3)[LiCl] | |
| 0002 putspecialobject 2 | |
| 0004 putobject :with_jit | |
| 0006 opt_send_without_block <calldata!mid:core#undef_method, argc:2, ARGS_SIMPLE> | |
| 0008 leave ( 4)[En] | |
| == disasm: #<ISeq:to_s@<internal:symbol>:10 (10,2)-(13,5)> LEAF SINGLE_NOARG_LEAF | |
| 0000 opt_invokebuiltin_delegate_leave <builtin!_bi12/0>, 0 ( 12)[LiCa] | |
| 0003 leave ( 13)[Re] | |
| == disasm: #<ISeq:<internal:prelude>@<internal:prelude>:1 (1,0)-(43,3)> | |
| 0000 putspecialobject 3 ( 1)[Li] | |
| 0002 putnil | |
| 0003 defineclass :Binding, <class:Binding>, 0 | |
| 0007 pop | |
| 0008 putspecialobject 3 ( 17)[Li] | |
| 0010 putnil | |
| 0011 defineclass :Kernel, <module:Kernel>, 2 | |
| 0015 pop | |
| 0016 putspecialobject 3 ( 31)[Li] | |
| 0018 putnil | |
| 0019 defineclass :Enumerable, <module:Enumerable>, 2 | |
| 0023 leave | |
| == disasm: #<ISeq:<class:Binding>@<internal:prelude>:1 (1,0)-(15,3)> | |
| 0000 definemethod :irb, irb ( 3)[LiCl] | |
| 0003 putspecialobject 1 ( 14)[Li] | |
| 0005 putspecialobject 2 | |
| 0007 putobject :irb | |
| 0009 putobject :irb | |
| 0011 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0013 leave ( 15)[En] | |
| == disasm: #<ISeq:irb@<internal:prelude>:3 (3,2)-(11,5)> | |
| == catch table | |
| | catch type: rescue st: 0000 ed: 0005 sp: 0000 cont: 0006 | |
| | == disasm: #<ISeq:rescue in irb@<internal:prelude>:6 (6,4)-(8,19)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_0 "$!"@0 ( 6) | |
| | 0002 opt_getconstant_path <ic:0 LoadError> | |
| | 0004 checkmatch 3 | |
| | 0006 branchif 16 | |
| | 0008 getlocal_WC_0 "$!"@0 | |
| | 0010 opt_getconstant_path <ic:1 Gem::LoadError> | |
| | 0012 checkmatch 3 | |
| | 0014 branchunless 29 | |
| | 0016 opt_getconstant_path <ic:2 Gem::BUNDLED_GEMS> ( 7)[LiRs] | |
| | 0018 putchilledstring "irb" | |
| | 0020 opt_send_without_block <calldata!mid:force_activate, argc:1, ARGS_SIMPLE> | |
| | 0022 pop | |
| | 0023 putself ( 8)[Li] | |
| | 0024 putchilledstring "irb" | |
| | 0026 opt_send_without_block <calldata!mid:require, argc:1, FCALL|ARGS_SIMPLE> | |
| | 0028 leave ( 6) | |
| | 0029 getlocal_WC_0 "$!"@0 | |
| | 0031 throw 0 | |
| | catch type: retry st: 0005 ed: 0006 sp: 0000 cont: 0000 | |
| |------------------------------------------------------------------------ | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] "..."@0 | |
| 0000 putself ( 5)[LiCa] | |
| 0001 putchilledstring "irb" | |
| 0003 opt_send_without_block <calldata!mid:require, argc:1, FCALL|ARGS_SIMPLE> | |
| 0005 nop ( 4) | |
| 0006 pop | |
| 0007 putself ( 10)[Li] | |
| 0008 getlocal_WC_0 "..."@0 | |
| 0010 sendforward <calldata!mid:irb, argc:0, FCALL|FORWARDING>, nil | |
| 0013 leave ( 11)[Re] | |
| == disasm: #<ISeq:<module:Kernel>@<internal:prelude>:17 (17,0)-(29,3)> | |
| 0000 definemethod :pp, pp ( 19)[LiCl] | |
| 0003 putspecialobject 1 ( 25)[Li] | |
| 0005 putspecialobject 2 | |
| 0007 putobject :pp | |
| 0009 putobject :pp | |
| 0011 opt_send_without_block <calldata!mid:core#set_method_alias, argc:3, ARGS_SIMPLE> | |
| 0013 pop | |
| 0014 putself ( 27)[Li] | |
| 0015 putobject :pp | |
| 0017 opt_send_without_block <calldata!mid:private, argc:1, FCALL|ARGS_SIMPLE> | |
| 0019 leave ( 29)[En] | |
| == disasm: #<ISeq:pp@<internal:prelude>:19 (19,2)-(22,5)> | |
| local table (size: 1, argc: 0 [opts: 0, rest: 0, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] objs@0<Rest> | |
| 0000 putself ( 20)[LiCa] | |
| 0001 putchilledstring "pp" | |
| 0003 opt_send_without_block <calldata!mid:require, argc:1, FCALL|ARGS_SIMPLE> | |
| 0005 pop | |
| 0006 putself ( 21)[Li] | |
| 0007 getlocal_WC_0 objs@0 | |
| 0009 splatarray false | |
| 0011 opt_send_without_block <calldata!mid:pp, argc:1, ARGS_SPLAT|FCALL> | |
| 0013 leave ( 22)[Re] | |
| == disasm: #<ISeq:<module:Enumerable>@<internal:prelude>:31 (31,0)-(43,3)> | |
| 0000 definemethod :to_set, to_set ( 34)[LiCl] | |
| 0003 putobject :to_set | |
| 0005 leave ( 43)[En] | |
| == disasm: #<ISeq:to_set@<internal:prelude>:34 (34,2)-(42,5)> | |
| local table (size: 3, argc: 0 [opts: 0, rest: 0, post: 0, block: 1, kw: -1@-1, kwrest: -1]) | |
| [ 3] args@0<Rest>[ 2] block@1<Block>[ 1] klass@2 | |
| 0000 getlocal_WC_0 args@0 ( 35)[LiCa] | |
| 0002 opt_empty_p <calldata!mid:empty?, argc:0, ARGS_SIMPLE>[CcCr] | |
| 0004 branchunless 10 | |
| 0006 opt_getconstant_path <ic:0 Set> ( 36)[Li] | |
| 0008 jump 21 ( 35) | |
| 0010 putself ( 38)[Li] | |
| 0011 putchilledstring "passing arguments to Enumerable#to_set is deprecated" | |
| 0013 putobject_INT2FIX_1_ | |
| 0014 opt_send_without_block <calldata!mid:warn, argc:2, kw:[uplevel], FCALL|KWARG> | |
| 0016 pop | |
| 0017 getlocal_WC_0 args@0 ( 39)[Li] | |
| 0019 opt_send_without_block <calldata!mid:shift, argc:0, ARGS_SIMPLE> | |
| 0021 setlocal_WC_0 klass@2 ( 35) | |
| 0023 getlocal_WC_0 klass@2 ( 41)[Li] | |
| 0025 putself | |
| 0026 getlocal_WC_0 args@0 | |
| 0028 splatarray false | |
| 0030 getblockparamproxy block@1, 0 | |
| 0033 send <calldata!mid:new, argc:2, ARGS_SPLAT|ARGS_BLOCKARG>, nil | |
| 0036 leave ( 42)[Re] | |
| == disasm: #<ISeq:<internal:gem_prelude>@<internal:gem_prelude>:1 (1,0)-(27,30)> | |
| == catch table | |
| | catch type: rescue st: 0007 ed: 0012 sp: 0000 cont: 0019 | |
| | == disasm: #<ISeq:rescue in <internal:gem_prelude>@<internal:gem_prelude>:3 (3,0)-(6,36)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_0 "$!"@0 ( 3) | |
| | 0002 opt_getconstant_path <ic:0 LoadError> | |
| | 0004 checkmatch 3 | |
| | 0006 branchunless 32 | |
| | 0008 getlocal_WC_0 "$!"@0[Rs] | |
| | 0010 setlocal_WC_1 e@0 | |
| | 0012 getlocal_WC_1 e@0 ( 4)[Li] | |
| | 0014 opt_send_without_block <calldata!mid:path, argc:0, ARGS_SIMPLE> | |
| | 0016 putchilledstring "rubygems" | |
| | 0018 opt_eq <calldata!mid:==, argc:1, ARGS_SIMPLE>[CcCr] | |
| | 0020 branchif 26 | |
| | 0022 putself | |
| | 0023 opt_send_without_block <calldata!mid:raise, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| | 0025 pop | |
| | 0026 putself ( 6)[Li] | |
| | 0027 putchilledstring "`RubyGems' were not loaded." | |
| | 0029 opt_send_without_block <calldata!mid:warn, argc:1, FCALL|ARGS_SIMPLE> | |
| | 0031 leave ( 3) | |
| | 0032 getlocal_WC_0 "$!"@0 | |
| | 0034 throw 0 | |
| | catch type: retry st: 0012 ed: 0019 sp: 0000 cont: 0007 | |
| | catch type: rescue st: 0027 ed: 0032 sp: 0000 cont: 0033 | |
| | == disasm: #<ISeq:rescue in <internal:gem_prelude>@<internal:gem_prelude>:13 (13,0)-(14,42)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_0 "$!"@0 ( 13) | |
| | 0002 opt_getconstant_path <ic:0 LoadError> | |
| | 0004 checkmatch 3 | |
| | 0006 branchunless 14 | |
| | 0008 putself ( 14)[LiRs] | |
| | 0009 putchilledstring "`error_highlight' was not loaded." | |
| | 0011 opt_send_without_block <calldata!mid:warn, argc:1, FCALL|ARGS_SIMPLE> | |
| | 0013 leave ( 13) | |
| | 0014 getlocal_WC_0 "$!"@0 | |
| | 0016 throw 0 | |
| | catch type: retry st: 0032 ed: 0033 sp: 0000 cont: 0027 | |
| | catch type: rescue st: 0041 ed: 0046 sp: 0000 cont: 0047 | |
| | == disasm: #<ISeq:rescue in <internal:gem_prelude>@<internal:gem_prelude>:19 (19,0)-(20,39)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_0 "$!"@0 ( 19) | |
| | 0002 opt_getconstant_path <ic:0 LoadError> | |
| | 0004 checkmatch 3 | |
| | 0006 branchunless 14 | |
| | 0008 putself ( 20)[LiRs] | |
| | 0009 putchilledstring "`did_you_mean' was not loaded." | |
| | 0011 opt_send_without_block <calldata!mid:warn, argc:1, FCALL|ARGS_SIMPLE> | |
| | 0013 leave ( 19) | |
| | 0014 getlocal_WC_0 "$!"@0 | |
| | 0016 throw 0 | |
| | catch type: retry st: 0046 ed: 0047 sp: 0000 cont: 0041 | |
| | catch type: rescue st: 0055 ed: 0060 sp: 0000 cont: 0061 | |
| | == disasm: #<ISeq:rescue in <internal:gem_prelude>@<internal:gem_prelude>:25 (25,0)-(26,41)> | |
| | local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| | [ 1] "$!"@0 | |
| | 0000 getlocal_WC_0 "$!"@0 ( 25) | |
| | 0002 opt_getconstant_path <ic:0 LoadError> | |
| | 0004 checkmatch 3 | |
| | 0006 branchunless 14 | |
| | 0008 putself ( 26)[LiRs] | |
| | 0009 putchilledstring "`syntax_suggest' was not loaded." | |
| | 0011 opt_send_without_block <calldata!mid:warn, argc:1, FCALL|ARGS_SIMPLE> | |
| | 0013 leave ( 25) | |
| | 0014 getlocal_WC_0 "$!"@0 | |
| | 0016 throw 0 | |
| | catch type: retry st: 0060 ed: 0061 sp: 0000 cont: 0055 | |
| |------------------------------------------------------------------------ | |
| local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1]) | |
| [ 1] e@0 | |
| 0000 putnil ( 9)[Li] | |
| 0001 defined constant, :Gem, true | |
| 0005 branchunless 20 | |
| 0007 putself ( 2)[Li] | |
| 0008 putchilledstring "rubygems" | |
| 0010 opt_send_without_block <calldata!mid:require, argc:1, FCALL|ARGS_SIMPLE> | |
| 0012 putself ( 8)[Li] | |
| 0013 putchilledstring "bundled_gems" | |
| 0015 opt_send_without_block <calldata!mid:require, argc:1, FCALL|ARGS_SIMPLE> | |
| 0017 pop | |
| 0018 nop ( 1) | |
| 0019 pop | |
| 0020 putnil ( 15)[Li] | |
| 0021 defined constant, :ErrorHighlight, true | |
| 0025 branchunless 34 | |
| 0027 putself ( 12)[Li] | |
| 0028 putchilledstring "error_highlight" | |
| 0030 opt_send_without_block <calldata!mid:require, argc:1, FCALL|ARGS_SIMPLE> | |
| 0032 nop ( 11) | |
| 0033 pop | |
| 0034 putnil ( 21)[Li] | |
| 0035 defined constant, :DidYouMean, true | |
| 0039 branchunless 48 | |
| 0041 putself ( 18)[Li] | |
| 0042 putchilledstring "did_you_mean" | |
| 0044 opt_send_without_block <calldata!mid:require, argc:1, FCALL|ARGS_SIMPLE> | |
| 0046 nop ( 17) | |
| 0047 pop | |
| 0048 putnil ( 27)[Li] | |
| 0049 defined constant, :SyntaxSuggest, true | |
| 0053 branchunless 62 | |
| 0055 putself ( 24)[Li] | |
| 0056 putchilledstring "syntax_suggest/core_ext" | |
| 0058 opt_send_without_block <calldata!mid:require, argc:1, FCALL|ARGS_SIMPLE> | |
| 0060 nop ( 23) | |
| 0061 leave ( 24) | |
| 0062 putnil | |
| 0063 leave | |
| == disasm: #<ISeq:<main>@-e:1 (1,0)-(1,12)> | |
| 0000 definemethod :x, x ( 1)[Li] | |
| 0003 putself | |
| 0004 opt_send_without_block <calldata!mid:x, argc:0, FCALL|VCALL|ARGS_SIMPLE> | |
| 0006 leave | |
| == disasm: #<ISeq:x@-e:1 (1,0)-(1,9)> | |
| 0000 putobject_INT2FIX_1_ ( 1)[Ca] | |
| 0001 leave [Re] | |
| == disasm: #<ISeq:x@-e:1 (1,0)-(1,9)> | |
| 0000 putobject_INT2FIX_1_ ( 1)[Ca] | |
| 0001 leave [Re] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/vm.c b/vm.c | |
| index 3281fad018..5810c3a8db 100644 | |
| --- a/vm.c | |
| +++ b/vm.c | |
| @@ -495,6 +495,11 @@ jit_compile(rb_execution_context_t *ec) | |
| const rb_iseq_t *iseq = ec->cfp->iseq; | |
| struct rb_iseq_constant_body *body = ISEQ_BODY(iseq); | |
| + if(iseq && getenv("RUBY_DUMP_ALL")){ | |
| + rb_io_write(rb_stdout, rb_iseq_disasm((const rb_iseq_t *)iseq)); | |
| + rb_io_flush(rb_stdout); | |
| + } | |
| + | |
| #if USE_ZJIT | |
| if (body->jit_entry == NULL && rb_zjit_enabled_p) { | |
| body->jit_entry_calls++; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment