evanphx (owner)

Revisions

gist: 140407 Download_button fork
public
Public Clone URL: git://gist.github.com/140407.git
Embed All Files: show embed
Text only #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
JIT: compiling <metaclass>#find_type
JIT: compiling Array#at
JIT: compiling Class#new
JIT: compiling Rubinius::AccessVariable#initialize
JIT: compiling Hash#key_index
JIT: compiling Object#__verify_metaclass__
JIT: compiling Hash#[]=
inlining: Hash#redistribute into []=
inlining: Hash#key_index into redistribute
inlining: Hash#key_index into []=
inlining: Hash::Entry#match? into []=
JIT: compiling Hash#new_entry
JIT: compiling Hash::Entry#initialize
JIT: compiling Symbol#to_sym
JIT: compiling Kernel#respond_to?
JIT: compiling Type#coerce_to
inlining: Type#obj_kind_of? into coerce_to
inlining: Type#obj_kind_of? into coerce_to
JIT: compiling Type#obj_kind_of?
JIT: compiling Type#obj_kind_of?
JIT: compiling Type#coerce_to_symbol
inlining: String#to_s into coerce_to_symbol
JIT: compiling Module#method_table
JIT: compiling Module#method_table
JIT: compiling Rubinius::AccessVariable#get_ivar
JIT: compiling Object#metaclass
JIT: compiling <metaclass>#__metaclass_init__
JIT: compiling Rubinius#add_method
JIT: compiling Array#each
JIT: compiling String#length
JIT: compiling Rubinius#add_defn_method
inlining: Rubinius::StaticScope#for_method_definition into add_defn_method
JIT: compiling Rubinius::StaticScope#for_method_definition
JIT: compiling Kernel#nil?
JIT: compiling Module#set_name_if_necessary
inlining: String#to_s into set_name_if_necessary
JIT: compiling Rubinius::AccessVariable#set_ivar
JIT: compiling Hash::Entry#match?
JIT: compiling Rubinius#add_reader
inlining: Rubinius::AccessVariable#get_ivar into add_reader
JIT: compiling Module#constants_table
JIT: compiling Rubinius#open_class
JIT: compiling Rubinius#open_class_under
JIT: compiling Module#===
JIT: compiling Array#<<
JIT: compiling String#to_s
JIT: compiling MatchData#begin
JIT: compiling Regexp#match_from
inlining: Kernel#nil? into match_from
inlining: String#length into match_from
JIT: compiling Rubinius::VariableScope#last_match=
inlining: Rubinius::VariableScope#last_match= into last_match=
JIT: compiling Kernel#StringValue
JIT: compiling String#substring
JIT: compiling NilClass#nil?
JIT: compiling Rubinius#add_writer
inlining: Rubinius::AccessVariable#set_ivar into add_writer
JIT: compiling Module#__block__
JIT: compiling String#=~
inlining: Module#=== into =~
inlining: Regexp#match_from into =~
inlining: Kernel#nil? into match_from
inlining: String#length into match_from
inlining: Rubinius::VariableScope#last_match= into =~
JIT: compiling Hash#find_entry
inlining: Hash#key_index into find_entry
inlining: Hash::Entry#match? into find_entry
JIT: compiling Hash#[]
JIT: compiling Hash#default
JIT: compiling String#[]
JIT: compiling Kernel#===
JIT: compiling Array#first
JIT: compiling Hash#setup
JIT: compiling Array#map!
JIT: compiling Array#last
Reading symbols for shared libraries ... done
JIT: compiling Rubinius::InstructionSet#[]
inlining: Hash#[] into []
inlining: Kernel#nil? into []
>> JIT: compiling Rubinius::InstructionSet::OpCode#stack_produced
JIT: compiling Rubinius::InstructionSet::OpCode#opcode
JIT: compiling Rubinius::InstructionSet::OpCode#stack_difference
inlining: Rubinius::InstructionSet::OpCode#stack_consumed into stack_difference
inlining: Hash#[] into stack_consumed
inlining: Rubinius::InstructionSet::OpCode#stack_produced into stack_difference
inlining: Hash#[] into stack_produced
JIT: compiling Rubinius::InstructionSet::OpCode#stack_consumed
JIT: compiling InstructionSequence#[]=
JIT: compiling Rubinius::InstructionSet::OpCode#variable_stack
JIT: compiling Rubinius::InstructionSet::OpCode#size
JIT: compiling Hash#allocate
JIT: compiling Hash#initialize
JIT: compiling Rubinius::SydneyRewriter#__block__
inlining: Array#<< into __block__
inlining: Array#<< into __block__
JIT: compiling Kernel#instance_variable_get
JIT: compiling Object#instance_variable_validate
inlining: Module#=== into instance_variable_validate
JIT: compiling Rubinius::SydneyRewriter#__block__
JIT: compiling Array#reallocate_shrink
JIT: compiling Compiler::Generator#add
inlining: Array#<< into add
inlining: Array#<< into add
JIT: compiling Compiler::Generator#__block__
inlining: Kernel#nil? into __block__
JIT: compiling Compiler::Generator#__block__
JIT: compiling Enumerable#__block__
JIT: compiling InstructionSequence::Encoder#__block__
JIT: compiling InstructionSequence::Encoder#__block__
JIT: compiling InstructionSequence::Encoder#encode
JIT: compiling Rubinius::InstructionSet::OpCode#bytecode
JIT: compiling Hash::Iterator#next
JIT: compiling Array#empty?
JIT: compiling Enumerable#__block__
inlining: Array#<< into __block__
JIT: compiling Sexp#__block__
JIT: compiling Kernel#initialize_copy
JIT: compiling Integer#to_i
JIT: compiling Rubinius::Tuple#dup
JIT: compiling Array#initialize
JIT: compiling Array#push
JIT: compiling Rubinius::SydneyRewriter#rewriters
JIT: compiling Hash#[]
JIT: compiling Sexp#line
JIT: compiling Sexp#file
JIT: compiling Enumerable#__block__
JIT: compiling Compiler::Node#__block__
JIT: compiling Sexp#set_file
JIT: compiling Sexp#set_line
JIT: compiling Kernel#Array
JIT: compiling Sexp#initialize
JIT: compiling Array#pop
JIT: compiling Array#__block__
JIT: compiling Compiler::Node#set_position
JIT: compiling Compiler::Node#__block__
inlining: Array#<< into __block__
inlining: Array#<< into __block__
JIT: compiling Array#shift
JIT: compiling Compiler#convert_sexp
inlining: Kernel#nil? into convert_sexp
inlining: Hash#[] into convert_sexp
JIT: compiling Compiler::Node#create
JIT: compiling Compiler::Node#initialize
JIT: compiling Compiler::Local#on_stack?
JIT: compiling Rubinius::InstructionSet::OpCode#arg_count
JIT: compiling Rubinius::SydneyRewriter#sexp_from_array
inlining: Sexp#set_file into sexp_from_array
inlining: Sexp#set_line into sexp_from_array
JIT: compiling Rubinius::SydneyRewriter#rewrite
inlining: Hash#[] into rewrite
inlining: Sexp#file into rewrite
inlining: Sexp#set_file into rewrite
inlining: Sexp#line into rewrite
inlining: Sexp#set_line into rewrite
inlining: Array#pop into rewrite
JIT: compiling Compiler::Node#get
inlining: Compiler#get into get
JIT: compiling Compiler#get
JIT: compiling Compiler::Generator#add_literal
inlining: Array#<< into add_literal
JIT: compiling Compiler::Generator#__block__
inlining: Compiler::MethodDescription#to_cmethod into __block__
JIT: compiling Compiler::Node#is?
JIT: compiling Compiler::Generator#__block__
JIT: compiling Hash#key?
JIT: compiling Compiler::Generator#method_missing
JIT: compiling Compiler::Node::Call#call?
JIT: compiling Compiler::Node#consume
JIT: compiling Proc#to_proc
JIT: compiling Compiler::Generator#set_line
inlining: Array#<< into set_line
inlining: Array#<< into set_line
JIT: compiling Compiler::Local#slot
inlining: Kernel#nil? into slot
JIT: compiling Compiler::Node#convert
JIT: compiling Compiler::Plugins::Plugin#call_match
JIT: compiling Rubinius::VariableScope#last_match
inlining: Rubinius::VariableScope#last_match into last_match
JIT: compiling Integer#chr
JIT: compiling Regexp#__block__
JIT: compiling Module#normalize_const_name
JIT: compiling Module#valid_const_name?
JIT: compiling Rubinius::LookupTable#initialize
JIT: compiling Module#const_set
JIT: compiling Compiler::LocalScope#[]
inlining: Hash#key? into []
inlining: Array#<< into []
inlining: Hash#[] into []
JIT: compiling Object#initialize
JIT: compiling Module#name
JIT: compiling Compiler::Generator#flush
inlining: Array#<< into flush
inlining: Array#<< into flush
JIT: compiling Array#include?
JIT: compiling Module#initialize
JIT: compiling Rubinius::MethodTable#initialize
JIT: compiling Compiler::LocalScope#__block__
JIT: compiling Compiler::Local#formalize!
JIT: compiling Compiler::Node#set
JIT: compiling Compiler#set
inlining: Hash#dup into set
inlining: Hash#[] into set
JIT: compiling Hash#to_iter
JIT: compiling Hash::Iterator#initialize
JIT: compiling Compiler#activate_default
inlining: Hash#[] into activate_default
JIT: compiling Compiler#activate
inlining: Compiler::Plugins#find_plugin into activate
inlining: Hash#[] into find_plugin
inlining: Compiler::Plugins::Plugin#kind into activate
inlining: Array#<< into activate
JIT: compiling Compiler::Plugins#find_plugin
JIT: compiling Compiler::Plugins::Plugin#kind
JIT: compiling Compiler::Plugins::Plugin#initialize
JIT: compiling Array#index
JIT: compiling Class#initialize
inlining: Object#metaclass into initialize
JIT: compiling Class#add_subclass
inlining: Array#<< into add_subclass
JIT: compiling Class#inherited
JIT: compiling Compiler::LocalScope#__block__
JIT: compiling Compiler::Local#initialize
JIT: compiling Compiler::Generator#find_literal
inlining: Compiler::Generator#add_literal into find_literal
JIT: compiling Compiler::LocalScope#__block__
inlining: Hash#[] into __block__
inlining: Compiler::Local#on_stack? into __block__
JIT: compiling Compiler::LocalScope#__block__
inlining: Hash#[] into __block__
inlining: Compiler::Local#on_stack? into __block__
JIT: compiling Compiler::Node#pos
JIT: compiling Compiler::LocalScope#size
JIT: compiling Compiler#__block__
JIT: compiling Hash#dup
JIT: compiling Hash#initialize_copy
JIT: compiling Hash#replace
inlining: Hash#clear into replace
inlining: Hash#to_iter into replace
inlining: Hash::Iterator#next into replace
inlining: Hash#default_proc into replace
JIT: compiling Hash#clear
JIT: compiling Hash#default_proc
JIT: compiling Hash#merge!
inlining: Hash#to_iter into merge!
inlining: Hash::Iterator#next into merge!
JIT: compiling Compiler::LocalScope#initialize
JIT: compiling Compiler::Generator#push_const
inlining: Compiler::Generator#add_literal into push_const
JIT: compiling Compiler::Node::ClosedScope#__block__
JIT: compiling Compiler::LocalScope#formalize!
JIT: compiling Compiler::Generator#send
inlining: Compiler::Generator#add_literal into send
inlining: Array#<< into add_literal
JIT: compiling Compiler::Generator#pop
JIT: compiling Compiler::Node::ClosedScope#consume
JIT: compiling Compiler::Node::ClosedScope#__block__
JIT: compiling Compiler::Node::ClosedScope#create_scope
JIT: compiling Compiler::Node::ClosedScope#initialize
inlining: Compiler::Node::ClosedScope#create_scope into initialize
JIT: compiling Compiler::StackDepthCalculator#run_from
JIT: compiling Compiler::Node::ConstFind#args
JIT: compiling Compiler::Node::ConstFind#bytecode
inlining: Compiler::Node#pos into bytecode
JIT: compiling Object#s
JIT: compiling Compiler::Generator#ip
JIT: compiling Compiler::Generator#push_literal
JIT: compiling Sexp#find_node
inlining: Kernel#=== into find_node
inlining: Kernel#=== into find_node
JIT: compiling Sexp#find_nodes
JIT: compiling Enumerable#find_all
JIT: compiling Rubinius::GlobalVariables#[]
JIT: compiling FFI::Struct#initialize
inlining: FFI::Struct#size into initialize
inlining: FFI::Struct#size into size
JIT: compiling FFI::Struct#layout
JIT: compiling FFI::Struct#size
inlining: FFI::Struct#size into size
JIT: compiling FFI::Struct#size
JIT: compiling MemoryPointer#new
JIT: compiling File::Stat#stat
inlining: File::Stat#create into stat
inlining: File::Stat#path into stat
inlining: File::Stat#pointer into stat
JIT: compiling File::Stat#create
inlining: Kernel#StringValue into create
inlining: File::Stat#setup into create
JIT: compiling File::Stat#setup
JIT: compiling File::Stat#path
JIT: compiling File::Stat#pointer
JIT: compiling MatchData#full
JIT: compiling String#get_pattern
JIT: compiling String#<<
JIT: compiling Compiler::Generator#push
inlining: Kernel#=== into push
inlining: Kernel#=== into push
inlining: Kernel#=== into push
inlining: Kernel#=== into push
inlining: Module#=== into push
JIT: compiling Module#direct_superclass
JIT: compiling Rubinius::SydneyRewriter#rewrite_call
inlining: Kernel#=== into rewrite_call
inlining: Array#pop into rewrite_call
inlining: Module#=== into rewrite_call
inlining: Kernel#=== into rewrite_call
inlining: Kernel#=== into rewrite_call
JIT: compiling Regexp#new
JIT: compiling Array#coerce_into_array
JIT: compiling String#empty?
JIT: compiling Buffer#exhausted?
inlining: Buffer#empty? into exhausted?
JIT: compiling Buffer#size
JIT: compiling Rubinius::Tuple#each
JIT: compiling MatchData#end
inlining: MatchData#full into end
JIT: compiling MatchData#collapsing?