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/README.md DELETED
@@ -1,29 +0,0 @@
1
- # Rubinius::Compiler
2
-
3
- TODO: Write a gem description
4
-
5
- ## Installation
6
-
7
- Add this line to your application's Gemfile:
8
-
9
- gem 'rubinius-compiler'
10
-
11
- And then execute:
12
-
13
- $ bundle
14
-
15
- Or install it yourself as:
16
-
17
- $ gem install rubinius-compiler
18
-
19
- ## Usage
20
-
21
- TODO: Write usage instructions here
22
-
23
- ## Contributing
24
-
25
- 1. Fork it
26
- 2. Create your feature branch (`git checkout -b my-new-feature`)
27
- 3. Commit your changes (`git commit -am 'Add some feature'`)
28
- 4. Push to the branch (`git push origin my-new-feature`)
29
- 5. Create new Pull Request
data/Rakefile DELETED
@@ -1 +0,0 @@
1
- require "bundler/gem_tasks"
@@ -1,10 +0,0 @@
1
- require "rubinius/compiler/compiler"
2
- require "rubinius/compiler/stages"
3
- require "rubinius/compiler/locals"
4
- require "rubinius/compiler/generator_methods"
5
- require "rubinius/compiler/generator"
6
- require "rubinius/compiler/iseq"
7
- require "rubinius/compiler/opcodes"
8
- require "rubinius/compiler/compiled_file"
9
- require "rubinius/compiler/evaluator"
10
- require "rubinius/compiler/printers"
@@ -1,28 +0,0 @@
1
- # coding: utf-8
2
- require './lib/rubinius/compiler/version'
3
-
4
- Gem::Specification.new do |spec|
5
- spec.name = "rubinius-compiler"
6
- spec.version = CodeTools::Compiler::VERSION
7
- spec.authors = ["Brian Shirai"]
8
- spec.email = ["brixen@gmail.com"]
9
- spec.description = %q{Rubinius bytecode compiler.}
10
- spec.summary = %q{Rubinius bytecode compiler.}
11
- spec.homepage = "https://github.com/rubinius/rubinius-compiler"
12
- spec.license = "BSD"
13
-
14
- spec.files = `git ls-files`.split($/)
15
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
- spec.require_paths = ["lib"]
18
-
19
- spec.required_ruby_version = ">= 1.9.2"
20
-
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "mspec", "~> 1.5"
24
- spec.add_development_dependency "rubinius-processor", "~> 2.0"
25
- spec.add_development_dependency "rubinius-ast", "~> 2.0"
26
- spec.add_development_dependency "rubinius-bridge", "~> 1.0"
27
- spec.add_development_dependency "redcard", "~> 1.0"
28
- end
data/spec/alias_spec.rb DELETED
@@ -1,39 +0,0 @@
1
- describe "An Alias node" do
2
- alias_both = lambda do |g|
3
- g.push_scope
4
- g.push_literal :y
5
- g.push_literal :x
6
- g.send :alias_method, 2, true
7
- end
8
-
9
- relates "alias :y :x" do
10
- compile(&alias_both)
11
- end
12
-
13
- relates "alias y x" do
14
- compile(&alias_both)
15
- end
16
-
17
- relates <<-ruby do
18
- alias :"y\#{1}" :"x\#{2}"
19
- ruby
20
-
21
- compile do |g|
22
- g.push_scope
23
-
24
- g.push_literal "y"
25
- g.push 1
26
- g.meta_to_s
27
- g.string_build 2
28
- g.send :to_sym, 0, true
29
-
30
- g.push_literal "x"
31
- g.push 2
32
- g.meta_to_s
33
- g.string_build 2
34
- g.send :to_sym, 0, true
35
-
36
- g.send :alias_method, 2, true
37
- end
38
- end
39
- end
data/spec/and_spec.rb DELETED
@@ -1,44 +0,0 @@
1
- describe "An And node" do
2
- relates "(a and b)" do
3
- compile do |g|
4
- g.push :self
5
- g.send :a, 0, true
6
- g.dup
7
-
8
- lhs_true = g.new_label
9
- g.gif lhs_true
10
-
11
- g.pop
12
- g.push :self
13
- g.send :b, 0, true
14
-
15
- lhs_true.set!
16
- end
17
- end
18
-
19
- relates "() and a" do
20
- compile do |g|
21
- f = g.new_label
22
- g.push :nil
23
- g.dup
24
- g.gif f
25
- g.pop
26
- g.push :self
27
- g.send :a, 0, true
28
- f.set!
29
- end
30
- end
31
-
32
- relates "a and ()" do
33
- compile do |g|
34
- f = g.new_label
35
- g.push :self
36
- g.send :a, 0, true
37
- g.dup
38
- g.gif f
39
- g.pop
40
- g.push :nil
41
- f.set!
42
- end
43
- end
44
- end
data/spec/array_spec.rb DELETED
@@ -1,110 +0,0 @@
1
- describe "An Array node" do
2
- relates '[1, :b, "c"]' do
3
- compile do |g|
4
- g.push 1
5
- g.push_literal :b
6
- g.push_literal "c"
7
- g.string_dup
8
- g.make_array 3
9
- end
10
- end
11
-
12
- relates "%w[a b c]" do
13
- compile do |g|
14
- g.push_literal "a"
15
- g.string_dup
16
- g.push_literal "b"
17
- g.string_dup
18
- g.push_literal "c"
19
- g.string_dup
20
- g.make_array 3
21
- end
22
- end
23
-
24
- relates '%w[a #{@b} c]' do
25
- compile do |g|
26
- g.push_literal "a"
27
- g.string_dup
28
-
29
- g.push_literal "\#{@b}"
30
- g.string_dup
31
-
32
- g.push_literal "c"
33
- g.string_dup
34
- g.make_array 3
35
- end
36
- end
37
-
38
- relates "%W[a b c]" do
39
- compile do |g|
40
- g.push_literal "a"
41
- g.string_dup
42
- g.push_literal "b"
43
- g.string_dup
44
- g.push_literal "c"
45
- g.string_dup
46
- g.make_array 3
47
- end
48
- end
49
-
50
- relates '%W[a #{@b} c]' do
51
- compile do |g|
52
- g.push_literal "a"
53
- g.string_dup
54
-
55
- g.push_ivar :@b
56
- g.meta_to_s
57
- g.string_build 1
58
-
59
- g.push_literal "c"
60
- g.string_dup
61
- g.make_array 3
62
- end
63
- end
64
-
65
- relates "[*[1]]" do
66
- compile do |g|
67
- g.push 1
68
- g.make_array 1
69
- end
70
- end
71
-
72
- relates "[*1]" do
73
- compile do |g|
74
- g.push 1
75
- g.cast_array
76
- end
77
- end
78
-
79
- relates "[[*1]]" do
80
- compile do |g|
81
- g.push 1
82
- g.cast_array
83
- g.make_array 1
84
- end
85
- end
86
-
87
- relates "[1, *2]" do
88
- compile do |g|
89
- g.push 1
90
- g.make_array 1
91
-
92
- g.push 2
93
- g.cast_array
94
-
95
- g.send :+, 1
96
- end
97
- end
98
-
99
- relates "[1, *c()]" do
100
- # TODO
101
- end
102
-
103
- relates <<-ruby do
104
- x = [2]
105
- [1, *x]
106
- ruby
107
-
108
- # TODO
109
- end
110
- end
@@ -1,186 +0,0 @@
1
- describe "An Attrasgn node" do
2
- relates <<-ruby do
3
- y = 0
4
- 42.method = y
5
- ruby
6
-
7
- compile do |g|
8
- g.push 0
9
- g.set_local 0
10
- g.pop
11
- g.push 42
12
- g.push_local 0
13
- g.dup
14
- g.move_down 2
15
- g.send :method=, 1, false
16
- g.pop
17
- end
18
- end
19
-
20
- relates "a.m = *[1]" do
21
- # attrasgn_splat
22
- end
23
-
24
- relates "a[*b] = c" do
25
- compile do |g|
26
- g.push :self
27
- g.send :a, 0, true
28
- g.push :self
29
- g.send :b, 0, true
30
- g.cast_array
31
- g.push :self
32
- g.send :c, 0, true
33
- g.dup
34
- g.move_down 3
35
- g.swap
36
- g.push :nil
37
- g.send_with_splat :[]=, 1, false, true
38
- g.pop
39
- end
40
- end
41
-
42
- relates "a[b, *c] = d" do
43
- compile do |g|
44
- g.push :self
45
- g.send :a, 0, true
46
- g.push :self
47
- g.send :b, 0, true
48
- g.make_array 1
49
- g.push :self
50
- g.send :c, 0, true
51
- g.cast_array
52
- g.send :+, 1
53
- g.push :self
54
- g.send :d, 0, true
55
- g.dup
56
- g.move_down 3
57
- g.swap
58
- g.push :nil
59
- g.send_with_splat :[]=, 1, false, true
60
- g.pop
61
- end
62
- end
63
-
64
- relates "a[b, *c] = *d" do
65
- compile do |g|
66
- g.push :self
67
- g.send :a, 0, true
68
- g.push :self
69
- g.send :b, 0, true
70
- g.make_array 1
71
- g.push :self
72
- g.send :c, 0, true
73
- g.cast_array
74
- g.send :+, 1
75
- g.push :self
76
- g.send :d, 0, true
77
- g.cast_array
78
- g.dup
79
- g.move_down 3
80
- g.swap
81
- g.push :nil
82
- g.send_with_splat :[]=, 1, false, true
83
- g.pop
84
- end
85
- end
86
-
87
- relates "a[b, *c] = d, e" do
88
- compile do |g|
89
- g.push :self
90
- g.send :a, 0, true
91
- g.push :self
92
- g.send :b, 0, true
93
- g.make_array 1
94
- g.push :self
95
- g.send :c, 0, true
96
- g.cast_array
97
- g.send :+, 1
98
- g.push :self
99
- g.send :d, 0, true
100
- g.push :self
101
- g.send :e, 0, true
102
- g.make_array 2
103
- g.dup
104
- g.move_down 3
105
- g.swap
106
- g.push :nil
107
- g.send_with_splat :[]=, 1, false, true
108
- g.pop
109
- end
110
- end
111
-
112
- relates "a[42] = 24" do
113
- compile do |g|
114
- g.push :self
115
- g.send :a, 0, true
116
- g.push 42
117
- g.push 24
118
- g.dup
119
- g.move_down 3
120
- g.send :[]=, 2, false
121
- g.pop
122
- end
123
- end
124
-
125
- relates "self[index, 0] = other_string" do
126
- compile do |g|
127
- g.push :self
128
- g.push :self
129
- g.send :index, 0, true
130
- g.push 0
131
- g.push :self
132
- g.send :other_string, 0, true
133
- g.dup
134
- g.move_down 4
135
- g.send :[]=, 3, true
136
- g.pop
137
- end
138
- end
139
-
140
- relates <<-ruby do
141
- a = []
142
- a [42] = 24
143
- ruby
144
-
145
- compile do |g|
146
- g.make_array 0
147
- g.set_local 0
148
- g.pop
149
- g.push_local 0
150
- g.push 42
151
- g.push 24
152
- g.dup
153
- g.move_down 3
154
- g.send :[]=, 2, false
155
- g.pop
156
- end
157
- end
158
-
159
- ruby_version_is ""..."1.9" do
160
- relates "m { |a.b| }" do
161
- compile do |g|
162
- g.push :self
163
-
164
- d = new_block_generator(g)
165
-
166
- d.cast_for_single_block_arg
167
-
168
- d.push :self
169
- d.send :a, 0, true
170
- d.swap
171
- d.send :b=, 1, false
172
- d.pop
173
-
174
- d.push_modifiers
175
- d.new_label.set!
176
- d.push :nil
177
- d.pop_modifiers
178
- d.ret
179
-
180
- g.create_block(d)
181
-
182
- g.send_with_block :m, 0, true
183
- end
184
- end
185
- end
186
- end