rubinius-compiler 2.3.1 → 3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rubinius/code/compiler.rb +10 -0
  3. data/lib/rubinius/{compiler → code/compiler}/compiled_file.rb +0 -0
  4. data/lib/rubinius/{compiler → code/compiler}/compiler.rb +0 -0
  5. data/lib/rubinius/{compiler → code/compiler}/evaluator.rb +0 -0
  6. data/lib/rubinius/{compiler → code/compiler}/generator.rb +0 -0
  7. data/lib/rubinius/{compiler → code/compiler}/generator_methods.rb +0 -0
  8. data/lib/rubinius/{compiler → code/compiler}/iseq.rb +0 -0
  9. data/lib/rubinius/{compiler → code/compiler}/locals.rb +0 -0
  10. data/lib/rubinius/{compiler → code/compiler}/opcodes.rb +0 -0
  11. data/lib/rubinius/{compiler → code/compiler}/printers.rb +0 -0
  12. data/lib/rubinius/{compiler → code/compiler}/stages.rb +0 -0
  13. data/lib/rubinius/{compiler → code/compiler}/version.rb +1 -1
  14. metadata +23 -271
  15. data/.gitignore +0 -17
  16. data/.travis.yml +0 -8
  17. data/Gemfile +0 -4
  18. data/LICENSE +0 -25
  19. data/README.md +0 -29
  20. data/Rakefile +0 -1
  21. data/lib/rubinius/compiler.rb +0 -10
  22. data/rubinius-compiler.gemspec +0 -28
  23. data/spec/alias_spec.rb +0 -39
  24. data/spec/and_spec.rb +0 -44
  25. data/spec/array_spec.rb +0 -110
  26. data/spec/attrasgn_spec.rb +0 -186
  27. data/spec/back_ref_spec.rb +0 -11
  28. data/spec/call_spec.rb +0 -580
  29. data/spec/case_spec.rb +0 -576
  30. data/spec/cdecl_spec.rb +0 -70
  31. data/spec/class_spec.rb +0 -120
  32. data/spec/colon2_spec.rb +0 -8
  33. data/spec/colon3_spec.rb +0 -8
  34. data/spec/const_spec.rb +0 -7
  35. data/spec/custom/guards/profiler.rb +0 -18
  36. data/spec/custom/helpers/generator.rb +0 -828
  37. data/spec/custom/matchers/compile_as.rb +0 -46
  38. data/spec/custom/mspec.rb +0 -15
  39. data/spec/custom/runner/actions/debug.rb +0 -10
  40. data/spec/custom/runner/actions/gcstats.rb +0 -17
  41. data/spec/custom/runner/actions/memory.rb +0 -11
  42. data/spec/custom/runner/actions/parser.rb +0 -14
  43. data/spec/custom/runner/actions/profiler.rb +0 -19
  44. data/spec/custom/runner/relates.rb +0 -86
  45. data/spec/custom/utils/options.rb +0 -40
  46. data/spec/custom/utils/script.rb +0 -50
  47. data/spec/cvar_spec.rb +0 -39
  48. data/spec/cvasgn_spec.rb +0 -33
  49. data/spec/cvdecl_spec.rb +0 -17
  50. data/spec/defined_spec.rb +0 -616
  51. data/spec/defn_spec.rb +0 -732
  52. data/spec/defs_spec.rb +0 -113
  53. data/spec/dot2_spec.rb +0 -16
  54. data/spec/dot3_spec.rb +0 -17
  55. data/spec/dregx_spec.rb +0 -160
  56. data/spec/dstr_spec.rb +0 -424
  57. data/spec/dsym_spec.rb +0 -18
  58. data/spec/dxstr_spec.rb +0 -24
  59. data/spec/ensure_spec.rb +0 -196
  60. data/spec/false_spec.rb +0 -7
  61. data/spec/flip2_spec.rb +0 -21
  62. data/spec/flip3_spec.rb +0 -12
  63. data/spec/for_spec.rb +0 -228
  64. data/spec/gasgn_spec.rb +0 -15
  65. data/spec/generator/encode_spec.rb +0 -34
  66. data/spec/gvar_spec.rb +0 -37
  67. data/spec/hash_spec.rb +0 -108
  68. data/spec/iasgn_spec.rb +0 -26
  69. data/spec/if_spec.rb +0 -415
  70. data/spec/iter_spec.rb +0 -1011
  71. data/spec/lasgn_spec.rb +0 -561
  72. data/spec/lit_spec.rb +0 -61
  73. data/spec/masgn_spec.rb +0 -1558
  74. data/spec/match2_spec.rb +0 -42
  75. data/spec/match3_spec.rb +0 -54
  76. data/spec/match_spec.rb +0 -29
  77. data/spec/module_spec.rb +0 -73
  78. data/spec/nil_spec.rb +0 -7
  79. data/spec/not_spec.rb +0 -47
  80. data/spec/nth_ref_spec.rb +0 -7
  81. data/spec/op_asgn_spec.rb +0 -563
  82. data/spec/or_spec.rb +0 -126
  83. data/spec/postexe_spec.rb +0 -11
  84. data/spec/preexe_spec.rb +0 -21
  85. data/spec/regex_spec.rb +0 -54
  86. data/spec/rescue_spec.rb +0 -763
  87. data/spec/return_spec.rb +0 -152
  88. data/spec/sclass_spec.rb +0 -138
  89. data/spec/spec_helper.rb +0 -12
  90. data/spec/str_spec.rb +0 -118
  91. data/spec/super_spec.rb +0 -170
  92. data/spec/transforms/assembly_spec.rb +0 -195
  93. data/spec/transforms/block_given_spec.rb +0 -75
  94. data/spec/transforms/fast_coerce_spec.rb +0 -112
  95. data/spec/transforms/fast_new_spec.rb +0 -255
  96. data/spec/transforms/invoke_primitive_spec.rb +0 -14
  97. data/spec/transforms/kernel_methods_spec.rb +0 -29
  98. data/spec/transforms/primitive_spec.rb +0 -33
  99. data/spec/transforms/privately_spec.rb +0 -24
  100. data/spec/true_spec.rb +0 -7
  101. data/spec/undef_spec.rb +0 -133
  102. data/spec/until_spec.rb +0 -254
  103. data/spec/valias_spec.rb +0 -11
  104. data/spec/while_spec.rb +0 -494
  105. data/spec/xstr_spec.rb +0 -10
  106. data/spec/yield_spec.rb +0 -92
  107. data/spec/zsuper_spec.rb +0 -63
data/spec/gasgn_spec.rb DELETED
@@ -1,15 +0,0 @@
1
- describe "A Gasgn node" do
2
- relates "$x = 42" do
3
- compile do |g|
4
- g.push_rubinius
5
- g.find_const :Globals
6
- g.push_literal :"$x" # REFACTOR g.get_global("$x")
7
- g.push 42
8
- g.send :[]=, 2
9
- end
10
- end
11
-
12
- relates "$a = *[1]" do
13
- # gasgn splat
14
- end
15
- end
@@ -1,34 +0,0 @@
1
- describe "Rubinius::Generator#encode" do
2
- before :each do
3
- @g = Rubinius::ToolSets::Spec::Generator.new
4
- @g.set_line 1
5
- end
6
-
7
- it "raises a CompileError if the method exits with an empty stack" do
8
- @g.ret
9
- @g.close
10
-
11
- lambda { @g.encode }.should raise_error(Rubinius::ToolSets::Spec::CompileError)
12
- end
13
-
14
- it "raises a CompileError if pop is called on an empty stack" do
15
- @g.pop
16
- @g.ret
17
- @g.close
18
-
19
- lambda { @g.encode }.should raise_error(Rubinius::ToolSets::Spec::CompileError)
20
- end
21
-
22
- it "raises a CompileError if a BasicBlock's minimum stack size is negative" do
23
- label = @g.new_label
24
- @g.push :nil
25
- @g.gif label
26
- label.set!
27
- @g.pop
28
- @g.push :true
29
- @g.ret
30
- @g.close
31
-
32
- lambda { @g.encode }.should raise_error(Rubinius::ToolSets::Spec::CompileError)
33
- end
34
- end
data/spec/gvar_spec.rb DELETED
@@ -1,37 +0,0 @@
1
- describe "A Gvar node" do
2
- relates "$x" do
3
- compile do |g|
4
- g.push_rubinius
5
- g.find_const :Globals
6
- g.push_literal :"$x" # REFACTOR g.get_global("$x")
7
- g.send :[], 1
8
- end
9
- end
10
-
11
- relates "$stderr" do
12
- compile do |g|
13
- g.push_rubinius
14
- g.find_const :Globals
15
- g.push_literal :"$stderr"
16
- g.send :[], 1
17
- end
18
- end
19
-
20
- relates "$__blah" do
21
- compile do |g|
22
- g.push_rubinius
23
- g.find_const :Globals
24
- g.push_literal :"$__blah"
25
- g.send :[], 1
26
- end
27
- end
28
-
29
- relates "$_" do
30
- compile do |g|
31
- g.push_rubinius
32
- g.find_const :Globals
33
- g.push_literal :"$_"
34
- g.send :[], 1
35
- end
36
- end
37
- end
data/spec/hash_spec.rb DELETED
@@ -1,108 +0,0 @@
1
- describe "A Hash node" do
2
- relates "{ 1 => 2, 3 => 4 }" do
3
- compile do |g|
4
- g.push_cpath_top
5
- g.find_const :Hash
6
- g.push 2
7
- g.send :new_from_literal, 1
8
-
9
- g.dup
10
- g.push 1
11
- g.push 2
12
- g.send :[]=, 2
13
- g.pop
14
-
15
- g.dup
16
- g.push 3
17
- g.push 4
18
- g.send :[]=, 2
19
- g.pop
20
- end
21
- end
22
-
23
- relates "{ 1 => (2 rescue 3) }" do
24
- compile do |g|
25
- g.push_cpath_top
26
- g.find_const :Hash
27
- g.push 1
28
- g.send :new_from_literal, 1
29
-
30
- g.dup
31
- g.push 1
32
-
33
- g.for_rescue do |rb|
34
- rb.body do
35
- g.push 2
36
- end
37
-
38
- rb.condition :StandardError, true do
39
- g.push 3
40
- end
41
- end
42
-
43
- g.send :[]=, 2
44
- g.pop
45
- end
46
- end
47
-
48
- relates "{ 1 => [*1] }" do
49
- compile do |g|
50
- g.push_cpath_top
51
- g.find_const :Hash
52
- g.push 1
53
- g.send :new_from_literal, 1
54
-
55
- g.dup
56
- g.push 1
57
- g.push 1
58
- g.cast_array
59
- g.send :[]=, 2
60
- g.pop
61
- end
62
- end
63
-
64
- relates <<-ruby do
65
- a = 1
66
- { :a => a }
67
- ruby
68
-
69
- compile do |g|
70
- g.push 1
71
- g.set_local 0
72
- g.pop
73
- g.push_cpath_top
74
- g.find_const :Hash
75
- g.push 1
76
- g.send :new_from_literal, 1
77
-
78
- g.dup
79
- g.push_literal :a
80
- g.push_local 0
81
- g.send :[]=, 2
82
- g.pop
83
- end
84
- end
85
-
86
- ruby_version_is "1.9" do
87
- relates "{ a: 1, b: 2 }" do
88
- compile do |g|
89
- g.push_cpath_top
90
- g.find_const :Hash
91
- g.push 2
92
- g.send :new_from_literal, 1
93
-
94
- g.dup
95
- g.push_literal :a
96
- g.push 1
97
- g.send :[]=, 2
98
- g.pop
99
-
100
- g.dup
101
- g.push_literal :b
102
- g.push 2
103
- g.send :[]=, 2
104
- g.pop
105
- end
106
- end
107
- end
108
- end
data/spec/iasgn_spec.rb DELETED
@@ -1,26 +0,0 @@
1
- describe "A Iasgn node" do
2
- relates "@a = 4" do
3
- compile do |g|
4
- g.push 4
5
- g.set_ivar :@a
6
- end
7
- end
8
-
9
- relates "@a = *[1]" do
10
- # iasgn splat
11
- end
12
-
13
- relates <<-ruby do
14
- a = 1
15
- @a = a
16
- ruby
17
-
18
- compile do |g|
19
- g.push 1
20
- g.set_local 0
21
- g.pop
22
- g.push_local 0
23
- g.set_ivar :@a
24
- end
25
- end
26
- end
data/spec/if_spec.rb DELETED
@@ -1,415 +0,0 @@
1
- describe "An If node" do
2
- nil_condition = lambda do |g|
3
- f = g.new_label
4
- done = g.new_label
5
-
6
- g.push :nil
7
- g.gif f
8
-
9
- g.push :self
10
- g.send :a, 0, true
11
- g.goto done
12
-
13
- f.set!
14
- g.push :nil
15
-
16
- done.set!
17
- end
18
-
19
- not_nil_condition = lambda do |g|
20
- f = g.new_label
21
- done = g.new_label
22
-
23
- g.push :nil
24
- g.send :"!", 0, false
25
- g.gif f
26
-
27
- g.push :nil
28
- g.goto done
29
-
30
- f.set!
31
- g.push :self
32
- g.send :a, 0, true
33
-
34
- done.set!
35
- end
36
-
37
- relates <<-ruby do
38
- if true then
39
- 10
40
- else
41
- 12
42
- end
43
- ruby
44
-
45
- compile do |g|
46
- g.push :true
47
- els = g.new_label
48
- fin = g.new_label
49
- g.gif els
50
- g.push 10
51
- g.goto fin
52
- els.set!
53
- g.push 12
54
- fin.set!
55
- end
56
- end
57
-
58
- relates "if b then a end" do
59
- compile do |g|
60
- nope = g.new_label
61
- done = g.new_label
62
-
63
- g.push :self
64
- g.send :b, 0, true
65
- g.gif nope
66
-
67
- g.push :self
68
- g.send :a, 0, true
69
- g.goto done
70
-
71
- nope.set!
72
- g.push :nil
73
-
74
- done.set!
75
- end
76
- end
77
-
78
- relates <<-ruby do
79
- if (x = 5
80
- (x + 1)) then
81
- nil
82
- end
83
- ruby
84
-
85
- compile do |g|
86
- f = g.new_label
87
- bottom = g.new_label
88
-
89
- g.push 5
90
- g.set_local 0
91
- g.pop
92
-
93
- g.push_local 0
94
- g.push 1
95
- g.send :+, 1, false
96
- g.gif f
97
-
98
- g.push :nil
99
- g.goto bottom
100
-
101
- f.set!
102
- g.push :nil
103
-
104
- bottom.set!
105
- end
106
- end
107
-
108
- relates <<-ruby do
109
- if x = obj.x then
110
- x.do_it
111
- end
112
- ruby
113
-
114
- compile do |g|
115
- f = g.new_label
116
- bottom = g.new_label
117
-
118
- g.push :self
119
- g.send :obj, 0, true
120
- g.send :x, 0, false
121
- g.set_local 0
122
-
123
- g.gif f
124
-
125
- g.push_local 0
126
- g.send :do_it, 0, false
127
- g.goto bottom
128
-
129
- f.set!
130
- g.push :nil
131
-
132
- bottom.set!
133
- end
134
- end
135
-
136
- relates "return if false unless true" do
137
- compile do |g|
138
- else1 = g.new_label
139
- else2 = g.new_label
140
- done1 = g.new_label
141
- done2 = g.new_label
142
-
143
- g.push :true
144
- g.gif else1
145
- g.push :nil
146
- g.goto done1
147
-
148
- else1.set!
149
- g.push :false
150
- g.gif else2
151
- g.push :nil
152
- g.ret
153
- g.goto done2
154
-
155
- else2.set!
156
- g.push :nil
157
-
158
- done2.set!
159
- done1.set!
160
- end
161
- end
162
-
163
- relates "a if b" do
164
- compile do |g|
165
- nope = g.new_label
166
- done = g.new_label
167
-
168
- g.push :self
169
- g.send :b, 0, true
170
- g.gif nope
171
-
172
- g.push :self
173
- g.send :a, 0, true
174
- g.goto done
175
-
176
- nope.set!
177
- g.push :nil
178
-
179
- done.set!
180
- end
181
- end
182
-
183
- relates "if b then a end" do
184
- compile do |g|
185
- nope = g.new_label
186
- done = g.new_label
187
-
188
- g.push :self
189
- g.send :b, 0, true
190
- g.gif nope
191
-
192
- g.push :self
193
- g.send :a, 0, true
194
- g.goto done
195
-
196
- nope.set!
197
- g.push :nil
198
-
199
- done.set!
200
- end
201
- end
202
-
203
- relates "a if ()" do
204
- compile(&nil_condition)
205
- end
206
-
207
- relates "if () then a end" do
208
- compile(&nil_condition)
209
- end
210
-
211
- relates "a unless b" do
212
- compile do |g|
213
- else_label = g.new_label
214
- done = g.new_label
215
-
216
- g.push :self
217
- g.send :b, 0, true
218
- g.gif else_label
219
- g.push :nil
220
- g.goto done
221
-
222
- else_label.set!
223
- g.push :self
224
- g.send :a, 0, true
225
-
226
- done.set!
227
- end
228
- end
229
-
230
- relates "unless b then a end" do
231
- compile do |g|
232
- else_label = g.new_label
233
- done = g.new_label
234
-
235
- g.push :self
236
- g.send :b, 0, true
237
- g.gif else_label
238
- g.push :nil
239
- g.goto done
240
-
241
- else_label.set!
242
- g.push :self
243
- g.send :a, 0, true
244
-
245
- done.set!
246
- end
247
- end
248
-
249
- ruby_version_is ""..."1.9" do
250
- relates "a if not b" do
251
- compile do |g|
252
- else_label = g.new_label
253
- done = g.new_label
254
-
255
- g.push :self
256
- g.send :b, 0, true
257
- g.gif else_label
258
- g.push :nil
259
- g.goto done
260
-
261
- else_label.set!
262
- g.push :self
263
- g.send :a, 0, true
264
-
265
- done.set!
266
- end
267
- end
268
-
269
- relates "if not b then a end" do
270
- compile do |g|
271
- else_label = g.new_label
272
- done = g.new_label
273
-
274
- g.push :self
275
- g.send :b, 0, true
276
- g.gif else_label
277
- g.push :nil
278
- g.goto done
279
-
280
- else_label.set!
281
- g.push :self
282
- g.send :a, 0, true
283
-
284
- done.set!
285
- end
286
- end
287
-
288
- relates "a unless ! ()" do
289
- compile(&nil_condition)
290
- end
291
-
292
- relates "unless ! () then a end" do
293
- compile(&nil_condition)
294
- end
295
-
296
- relates "a unless not b" do
297
- compile do |g|
298
- nope = g.new_label
299
- done = g.new_label
300
-
301
- g.push :self
302
- g.send :b, 0, true
303
- g.gif nope
304
-
305
- g.push :self
306
- g.send :a, 0, true
307
- g.goto done
308
-
309
- nope.set!
310
- g.push :nil
311
-
312
- done.set!
313
- end
314
- end
315
-
316
- relates "unless not b then a end" do
317
- compile do |g|
318
- nope = g.new_label
319
- done = g.new_label
320
-
321
- g.push :self
322
- g.send :b, 0, true
323
- g.gif nope
324
-
325
- g.push :self
326
- g.send :a, 0, true
327
- g.goto done
328
-
329
- nope.set!
330
- g.push :nil
331
-
332
- done.set!
333
- end
334
- end
335
- end
336
-
337
- ruby_version_is "1.9" do
338
- relates "a if not b" do
339
- compile do |g|
340
- f = g.new_label
341
- done = g.new_label
342
-
343
- g.push :self
344
- g.send :b, 0, true
345
- g.send :"!", 0, false
346
- g.gif f
347
-
348
- g.push :self
349
- g.send :a, 0, true
350
- g.goto done
351
-
352
- f.set!
353
- g.push :nil
354
-
355
- done.set!
356
- end
357
- end
358
-
359
- relates "if not b then a end" do
360
- compile do |g|
361
- f = g.new_label
362
- done = g.new_label
363
-
364
- g.push :self
365
- g.send :b, 0, true
366
- g.send :"!", 0, false
367
- g.gif f
368
-
369
- g.push :self
370
- g.send :a, 0, true
371
- g.goto done
372
-
373
- f.set!
374
- g.push :nil
375
-
376
- done.set!
377
- end
378
- end
379
-
380
- relates "a unless ! ()" do
381
- compile(&not_nil_condition)
382
- end
383
-
384
- relates "unless ! () then a end" do
385
- compile(&not_nil_condition)
386
- end
387
-
388
- unless_not_condition = lambda do |g|
389
- f = g.new_label
390
- done = g.new_label
391
-
392
- g.push :self
393
- g.send :b, 0, true
394
- g.send :"!", 0, false
395
- g.gif f
396
-
397
- g.push :nil
398
- g.goto done
399
-
400
- f.set!
401
- g.push :self
402
- g.send :a, 0, true
403
-
404
- done.set!
405
- end
406
-
407
- relates "a unless not b" do
408
- compile(&unless_not_condition)
409
- end
410
-
411
- relates "unless not b then a end" do
412
- compile(&unless_not_condition)
413
- end
414
- end
415
- end