rubinius-compiler 2.3.1 → 3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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/defn_spec.rb DELETED
@@ -1,732 +0,0 @@
1
- describe "A Defn node" do
2
- relates <<-ruby do
3
- def m
4
- begin
5
- end
6
- end
7
- ruby
8
-
9
- compile do |g|
10
- in_method :m do |d|
11
- d.push :nil
12
- end
13
- end
14
- end
15
-
16
- relates <<-ruby do
17
- def m
18
- return :a
19
- ensure
20
- return :b
21
- end
22
- ruby
23
-
24
- compile do |g|
25
- in_method :m do |d|
26
- ensure_exc_lbl = d.new_label
27
- ensure_noexc_lbl = d.new_label
28
-
29
- d.setup_unwind ensure_exc_lbl
30
-
31
- d.new_label.set!
32
- exc = d.save_exception
33
-
34
- d.push_literal :a
35
- d.ensure_return
36
- d.pop_unwind
37
- d.goto ensure_noexc_lbl
38
-
39
- ensure_exc_lbl.set!
40
- d.push_exception_state
41
- d.push_literal :b
42
-
43
- d.restore_exception exc
44
-
45
- d.ret
46
- d.pop
47
- d.restore_exception_state
48
- d.reraise
49
-
50
- ensure_noexc_lbl.set!
51
- d.push_literal :b
52
- d.ret
53
- d.pop
54
- end
55
- end
56
- end
57
-
58
- relates <<-ruby do
59
- def blah(*args, &block)
60
- other(42, *args, &block)
61
- end
62
- ruby
63
-
64
- compile do |g|
65
- in_method :blah do |d|
66
- no_proc = d.new_label
67
- no_splat = d.new_label
68
-
69
- d.push_proc
70
- d.set_local 1
71
- d.pop
72
-
73
- d.push :self
74
- d.push 42 # only line different from block_pass_splat
75
- d.push_local 0
76
- d.cast_array
77
- d.push_local 1
78
- d.dup
79
- d.is_nil
80
- d.git no_splat
81
-
82
- d.push_cpath_top
83
- d.find_const :Proc
84
- d.swap
85
- d.send :__from_block__, 1
86
-
87
- no_splat.set!
88
-
89
- d.send_with_splat :other, 1, true, false # ok, and this one
90
- end
91
- end
92
- end
93
-
94
- relates <<-ruby do
95
- def blah(*args, &block)
96
- other(*args, &block)
97
- end
98
- ruby
99
-
100
- compile do |g|
101
- g.in_method :blah do |d|
102
- no_proc = d.new_label
103
- no_splat = d.new_label
104
-
105
- d.push_proc
106
- d.set_local 1
107
- d.pop
108
-
109
- d.push :self
110
- d.push_local 0
111
- d.cast_array
112
- d.push_local 1
113
- d.dup
114
- d.is_nil
115
- d.git no_splat
116
-
117
- d.push_cpath_top
118
- d.find_const :Proc # FIX: why push_cpath/find vs push_const ?
119
- d.swap
120
- d.send :__from_block__, 1
121
-
122
- no_splat.set!
123
-
124
- d.send_with_splat :other, 0, true, false
125
- end
126
- end
127
- end
128
-
129
- relates <<-ruby do
130
- def f
131
- begin
132
- b
133
- rescue
134
- c
135
- end
136
-
137
- d
138
- end
139
- ruby
140
-
141
- compile do |g|
142
- in_method :f do |d|
143
-
144
- d.for_rescue do |rb|
145
- rb.body do
146
- d.push :self
147
- d.send :b, 0, true
148
- end
149
-
150
- rb.condition :StandardError, true do
151
- d.push :self
152
- d.send :c, 0, true
153
- end
154
- end
155
-
156
- d.pop
157
-
158
- d.push :self
159
- d.send :d, 0, true
160
- end
161
- end
162
- end
163
-
164
- relates <<-ruby do
165
- def f
166
- a
167
- begin
168
- b
169
- rescue
170
- c
171
- end
172
- end
173
- ruby
174
-
175
- compile do |g|
176
- in_method :f do |d|
177
- d.push :self
178
- d.send :a, 0, true
179
- d.pop
180
-
181
- d.for_rescue do |rb|
182
- rb.body do
183
- d.push :self
184
- d.send :b, 0, true
185
- end
186
-
187
- rb.condition :StandardError, true do
188
- d.push :self
189
- d.send :c, 0, true
190
- end
191
- end
192
-
193
- end
194
- end
195
- end
196
-
197
- relates <<-ruby do
198
- def f
199
- a
200
- begin
201
- b
202
- rescue
203
- c
204
- end
205
- d
206
- end
207
- ruby
208
-
209
- compile do |g|
210
- in_method :f do |d|
211
- d.push :self
212
- d.send :a, 0, true
213
- d.pop
214
-
215
- d.for_rescue do |rb|
216
- rb.body do
217
- d.push :self
218
- d.send :b, 0, true
219
- end
220
-
221
- rb.condition :StandardError, true do
222
- d.push :self
223
- d.send :c, 0, true
224
- end
225
- end
226
-
227
- d.pop
228
-
229
- d.push :self
230
- d.send :d, 0, true
231
- end
232
- end
233
- end
234
-
235
- relates <<-ruby do
236
- def f(&block)
237
- end
238
- ruby
239
-
240
- compile do |g|
241
- in_method :f do |d|
242
- d.block_arg 0
243
- d.push :nil
244
- end
245
- end
246
- end
247
-
248
- relates <<-ruby do
249
- def f(mand, opt = 42, &block)
250
- end
251
- ruby
252
-
253
- compile do |g|
254
- in_method :f do |d|
255
- d.optional_arg 1
256
- d.block_arg 2
257
- d.push :nil
258
- end
259
- end
260
- end
261
-
262
- relates <<-ruby do
263
- def f(x, a=x.b)
264
- end
265
- ruby
266
-
267
- compile do |g|
268
- in_method :f do |d|
269
- if_set = d.new_label
270
- d.passed_arg 1
271
- d.git if_set
272
- d.push_local 0
273
- d.send :b, 0, false
274
- d.set_local 1
275
- d.pop
276
- if_set.set!
277
- d.push :nil
278
- end
279
- end
280
- end
281
-
282
- relates <<-ruby do
283
- def f(mand, &block)
284
- end
285
- ruby
286
-
287
- compile do |g|
288
- in_method :f do |d|
289
- d.block_arg 1
290
- d.push :nil
291
- end
292
- end
293
- end
294
-
295
- relates <<-ruby do
296
- def f(mand, opt = 42)
297
- end
298
- ruby
299
-
300
- compile do |g|
301
- in_method :f do |d|
302
- d.optional_arg 1
303
- d.push :nil
304
- end
305
- end
306
- end
307
-
308
- relates <<-ruby do
309
- def f(mand, opt = 42, *rest, &block)
310
- end
311
- ruby
312
-
313
- compile do |g|
314
- in_method :f do |d|
315
- d.optional_arg 1
316
- d.block_arg 3
317
- d.push :nil
318
- end
319
- end
320
- end
321
-
322
- relates <<-ruby do
323
- def x(a, b = 42, *)
324
- end
325
- ruby
326
-
327
- compile do |g|
328
- in_method :x do |d|
329
- d.optional_arg 1
330
- d.push :nil
331
- end
332
- end
333
- end
334
-
335
- relates <<-ruby do
336
- def f(mand, opt = 42, *rest)
337
- end
338
- ruby
339
-
340
- compile do |g|
341
- in_method :f do |d|
342
- d.optional_arg 1
343
- d.push :nil
344
- end
345
- end
346
- end
347
-
348
- relates <<-ruby do
349
- def empty
350
- end
351
- ruby
352
-
353
- compile do |g|
354
- in_method :empty do |d|
355
- d.push :nil
356
- end
357
- end
358
- end
359
-
360
- relates <<-ruby do
361
- def f(mand)
362
- end
363
- ruby
364
-
365
- compile do |g|
366
- in_method :f do |d|
367
- d.push :nil
368
- end
369
- end
370
- end
371
-
372
- relates <<-ruby do
373
- def f(mand, *rest, &block)
374
- end
375
- ruby
376
-
377
- compile do |g|
378
- in_method :f do |d|
379
- d.block_arg 2
380
- d.push :nil
381
- end
382
- end
383
- end
384
-
385
- relates <<-ruby do
386
- def x(a, *args)
387
- p(a, args)
388
- end
389
- ruby
390
-
391
- compile do |g|
392
- in_method :x do |d|
393
- d.push :self
394
- d.push_local 0
395
- d.push_local 1
396
- d.send :p, 2, true
397
- end
398
- end
399
- end
400
-
401
- relates <<-ruby do
402
- def f(mand, *rest)
403
- end
404
- ruby
405
-
406
- compile do |g|
407
- in_method :f do |d|
408
- d.push :nil
409
- end
410
- end
411
- end
412
-
413
- relates <<-ruby do
414
- def f(opt = 42, &block)
415
- end
416
- ruby
417
-
418
- compile do |g|
419
- in_method :f do |d|
420
- d.optional_arg 0
421
- d.block_arg 1
422
- d.push :nil
423
- end
424
- end
425
- end
426
-
427
- relates <<-ruby do
428
- def f(a = 42, b = '1', c=lambda {|n| n })
429
- end
430
- ruby
431
-
432
- # defn args opt lambda
433
- end
434
-
435
- relates <<-ruby do
436
- def f(opt = 42)
437
- end
438
- ruby
439
-
440
- compile do |g|
441
- in_method :f do |d|
442
- d.optional_arg 0
443
- d.push :nil
444
- end
445
- end
446
- end
447
-
448
- relates <<-ruby do
449
- def f(opt = 42, *rest, &block)
450
- end
451
- ruby
452
-
453
- compile do |g|
454
- in_method :f do |d|
455
- d.optional_arg 0
456
- d.block_arg 2
457
- d.push :nil
458
- end
459
- end
460
- end
461
-
462
- relates <<-ruby do
463
- def x(b = 42, *)
464
- end
465
- ruby
466
-
467
- compile do |g|
468
- in_method :x do |d|
469
- d.optional_arg 0
470
- d.push :nil
471
- end
472
- end
473
- end
474
-
475
- relates <<-ruby do
476
- def f(opt = 42, *rest)
477
- end
478
- ruby
479
-
480
- compile do |g|
481
- in_method :f do |d|
482
- d.optional_arg 0
483
- d.push :nil
484
- end
485
- end
486
- end
487
-
488
- relates <<-ruby do
489
- def |(o)
490
- end
491
- ruby
492
-
493
- compile do |g|
494
- in_method :"|" do |d|
495
- d.push :nil
496
- end
497
- end
498
- end
499
-
500
- relates <<-ruby do
501
- def eql?(resource)
502
- (self.uuid == resource.uuid)
503
- rescue
504
- false
505
- end
506
- ruby
507
-
508
- compile do |g|
509
- in_method :eql? do |d|
510
-
511
- d.for_rescue do |rb|
512
- rb.body do
513
- d.push :self
514
- d.send :uuid, 0, false
515
- d.push_local 0
516
- d.send :uuid, 0, false
517
- d.send :==, 1, false
518
- end
519
-
520
- rb.condition :StandardError, true do
521
- d.push :false
522
- end
523
- end
524
- end
525
- end
526
- end
527
-
528
- relates <<-ruby do
529
- def something?
530
- end
531
- ruby
532
-
533
- compile do |g|
534
- in_method :something? do |d|
535
- d.push :nil
536
- end
537
- end
538
- end
539
-
540
- relates <<-ruby do
541
- def x(*)
542
- end
543
- ruby
544
-
545
- compile do |g|
546
- in_method :x do |d|
547
- d.push :nil
548
- end
549
- end
550
- end
551
-
552
- relates <<-ruby do
553
- def f(*rest)
554
- end
555
- ruby
556
-
557
- compile do |g|
558
- in_method :f do |d|
559
- d.push :nil
560
- end
561
- end
562
- end
563
-
564
- relates <<-ruby do
565
- def x(a, *)
566
- p(a)
567
- end
568
- ruby
569
-
570
- compile do |g|
571
- in_method :x do |d|
572
- d.push :self
573
- d.push_local 0
574
- d.send :p, 1, true
575
- end
576
- end
577
- end
578
-
579
- relates <<-ruby do
580
- def zarray
581
- a = []
582
- return a
583
- end
584
- ruby
585
-
586
- compile do |g|
587
- in_method :zarray do |d|
588
- d.make_array 0
589
- d.set_local 0
590
- d.pop
591
- d.push_local 0
592
- # TODO we emit a ret instruction even though the last statement
593
- # is itself a return, so we get to return instructions, one
594
- # after another. We could instead detect that an only output
595
- # the one.
596
- d.ret
597
- end
598
- end
599
- end
600
-
601
- relates <<-ruby do
602
- b = 42
603
- def a
604
- c do
605
- begin
606
- do_stuff
607
- rescue RuntimeError => b
608
- puts(b)
609
- end
610
- end
611
- end
612
- ruby
613
-
614
- compile do |g|
615
- g.push 42
616
- g.set_local 0
617
- g.pop
618
-
619
- g.in_method :a do |d|
620
- d.push :self
621
-
622
- d.in_block_send :c, 0 do |d2|
623
-
624
- d2.for_rescue do |rb|
625
- rb.body do
626
- d2.push :self
627
- d2.send :do_stuff, 0, true
628
- end
629
-
630
- rb.condition :RuntimeError do
631
- d2.push_current_exception
632
- d2.set_local 0
633
- d2.pop
634
- d2.push :self
635
- d2.push_local 0
636
- d2.send :puts, 1, true
637
- end
638
- end
639
- end
640
- end
641
- end
642
- end
643
-
644
- relates <<-ruby do
645
- def x(a=0.0,b=0.0)
646
- a+b
647
- end
648
- ruby
649
-
650
- compile do |g|
651
- in_method :x do |d|
652
- opt_arg_1 = d.new_label
653
- opt_arg_2 = d.new_label
654
-
655
- d.passed_arg 0
656
- d.git opt_arg_1
657
- d.push_literal 0.0
658
- d.set_local 0
659
- d.pop
660
-
661
- opt_arg_1.set!
662
-
663
- d.passed_arg 1
664
- d.git opt_arg_2
665
- d.push_literal 0.0
666
- d.set_local 1
667
- d.pop
668
-
669
- opt_arg_2.set!
670
-
671
- d.push_local 0
672
- d.push_local 1
673
- d.send :+, 1, false
674
- end
675
- end
676
- end
677
-
678
- relates <<-ruby do
679
- def x(*b)
680
- a(*b)
681
- end
682
- ruby
683
-
684
- compile do |g|
685
- in_method :x do |d|
686
- d.push :self
687
- d.push_local 0
688
- d.cast_array
689
- d.push :nil
690
- d.send_with_splat :a, 0, true, false
691
- end
692
- end
693
- end
694
-
695
- relates <<-ruby do
696
- def meth(b)
697
- b
698
- end
699
- ruby
700
-
701
- compile do |g|
702
- in_method :meth do |d|
703
- d.push_local 0
704
- end
705
- end
706
- end
707
-
708
- ruby_version_is "1.9" do
709
- relates "(not true)" do
710
- compile do |g|
711
- g.push :true
712
- g.send :"!", 0, false
713
- end
714
- end
715
-
716
- relates <<-ruby do
717
- a = 1
718
- b = !a
719
- ruby
720
-
721
- compile do |g|
722
- g.push 1
723
- g.set_local 0
724
- g.pop
725
-
726
- g.push_local 0
727
- g.send :"!", 0, false
728
- g.set_local 1
729
- end
730
- end
731
- end
732
- end