ruby-llvm 3.3.0 → 10.0.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 (47) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +19 -4
  3. data/ext/ruby-llvm-support/Rakefile +20 -8
  4. data/ext/ruby-llvm-support/support.cpp +1 -30
  5. data/lib/llvm.rb +0 -6
  6. data/lib/llvm/analysis_ffi.rb +30 -28
  7. data/lib/llvm/config.rb +4 -4
  8. data/lib/llvm/core.rb +45 -2
  9. data/lib/llvm/core/bitcode.rb +10 -10
  10. data/lib/llvm/core/bitcode_ffi.rb +92 -70
  11. data/lib/llvm/core/builder.rb +2 -3
  12. data/lib/llvm/core/context.rb +1 -1
  13. data/lib/llvm/core/module.rb +7 -21
  14. data/lib/llvm/core/pass_manager.rb +4 -2
  15. data/lib/llvm/core/type.rb +3 -3
  16. data/lib/llvm/core/value.rb +155 -28
  17. data/lib/llvm/core_ffi.rb +4041 -3564
  18. data/lib/llvm/execution_engine.rb +176 -8
  19. data/lib/llvm/execution_engine_ffi.rb +271 -222
  20. data/lib/llvm/linker.rb +2 -19
  21. data/lib/llvm/linker_ffi.rb +24 -25
  22. data/lib/llvm/support.rb +6 -16
  23. data/lib/llvm/target.rb +12 -18
  24. data/lib/llvm/target_ffi.rb +386 -330
  25. data/lib/llvm/transforms/builder.rb +8 -3
  26. data/lib/llvm/transforms/builder_ffi.rb +57 -58
  27. data/lib/llvm/transforms/ipo.rb +1 -1
  28. data/lib/llvm/transforms/ipo_ffi.rb +60 -61
  29. data/lib/llvm/transforms/scalar_ffi.rb +216 -128
  30. data/lib/llvm/transforms/vectorize_ffi.rb +15 -16
  31. data/lib/llvm/version.rb +3 -2
  32. data/test/basic_block_test.rb +0 -1
  33. data/test/bitcode_test.rb +1 -2
  34. data/test/call_test.rb +1 -1
  35. data/test/double_test.rb +8 -7
  36. data/test/equality_test.rb +2 -4
  37. data/test/function_test.rb +27 -0
  38. data/test/generic_value_test.rb +1 -1
  39. data/test/instruction_test.rb +0 -2
  40. data/test/ipo_test.rb +1 -1
  41. data/test/linker_test.rb +0 -9
  42. data/test/mcjit_test.rb +94 -0
  43. data/test/module_test.rb +33 -10
  44. data/test/pass_manager_builder_test.rb +23 -3
  45. data/test/target_test.rb +7 -24
  46. data/test/test_helper.rb +4 -1
  47. metadata +113 -93
@@ -17,6 +17,9 @@ rescue LoadError
17
17
  end
18
18
 
19
19
  require "minitest/autorun"
20
+ require 'minitest/reporters'
21
+
22
+ Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
20
23
 
21
24
  require "llvm/core"
22
25
  require "llvm/execution_engine"
@@ -46,7 +49,7 @@ def define_function(host_module, function_name, argument_types, return_type)
46
49
  end
47
50
 
48
51
  def run_function_on_module(host_module, function_name, *argument_values)
49
- LLVM::JITCompiler.new(host_module).
52
+ LLVM::MCJITCompiler.new(host_module).
50
53
  run_function(host_module.functions[function_name], *argument_values)
51
54
  end
52
55
 
metadata CHANGED
@@ -1,99 +1,119 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-llvm
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 10.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Voorhis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-22 00:00:00.000000000 Z
11
+ date: 2020-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rake
14
+ name: ffi
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.9'
19
+ version: 1.13.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.9'
26
+ version: 1.13.1
27
27
  - !ruby/object:Gem::Dependency
28
- name: ffi
28
+ name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '12'
34
+ - - "<"
32
35
  - !ruby/object:Gem::Version
33
- version: '1.7'
36
+ version: '14'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - ~>
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '12'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '14'
47
+ - !ruby/object:Gem::Dependency
48
+ name: ffi_gen
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 1.2.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
39
59
  - !ruby/object:Gem::Version
40
- version: '1.7'
60
+ version: 1.2.0
41
61
  - !ruby/object:Gem::Dependency
42
62
  name: minitest
43
63
  requirement: !ruby/object:Gem::Requirement
44
64
  requirements:
45
- - - ~>
65
+ - - "~>"
46
66
  - !ruby/object:Gem::Version
47
- version: '5.0'
67
+ version: 5.14.1
48
68
  type: :development
49
69
  prerelease: false
50
70
  version_requirements: !ruby/object:Gem::Requirement
51
71
  requirements:
52
- - - ~>
72
+ - - "~>"
53
73
  - !ruby/object:Gem::Version
54
- version: '5.0'
74
+ version: 5.14.1
55
75
  - !ruby/object:Gem::Dependency
56
- name: ffi_gen
76
+ name: minitest-reporters
57
77
  requirement: !ruby/object:Gem::Requirement
58
78
  requirements:
59
- - - ~>
79
+ - - "~>"
60
80
  - !ruby/object:Gem::Version
61
- version: 1.1.0
81
+ version: 1.4.2
62
82
  type: :development
63
83
  prerelease: false
64
84
  version_requirements: !ruby/object:Gem::Requirement
65
85
  requirements:
66
- - - ~>
86
+ - - "~>"
67
87
  - !ruby/object:Gem::Version
68
- version: 1.1.0
88
+ version: 1.4.2
69
89
  - !ruby/object:Gem::Dependency
70
90
  name: simplecov
71
91
  requirement: !ruby/object:Gem::Requirement
72
92
  requirements:
73
- - - '>='
93
+ - - ">="
74
94
  - !ruby/object:Gem::Version
75
95
  version: '0'
76
96
  type: :development
77
97
  prerelease: false
78
98
  version_requirements: !ruby/object:Gem::Requirement
79
99
  requirements:
80
- - - '>='
100
+ - - ">="
81
101
  - !ruby/object:Gem::Version
82
102
  version: '0'
83
103
  - !ruby/object:Gem::Dependency
84
104
  name: yard
85
105
  requirement: !ruby/object:Gem::Requirement
86
106
  requirements:
87
- - - ~>
107
+ - - "~>"
88
108
  - !ruby/object:Gem::Version
89
- version: 0.8.3
109
+ version: 0.9.8
90
110
  type: :development
91
111
  prerelease: false
92
112
  version_requirements: !ruby/object:Gem::Requirement
93
113
  requirements:
94
- - - ~>
114
+ - - "~>"
95
115
  - !ruby/object:Gem::Version
96
- version: 0.8.3
116
+ version: 0.9.8
97
117
  description: Ruby-LLVM is a Ruby language binding to the LLVM compiler infrastructure
98
118
  library.
99
119
  email: jvoorhis@gmail.com
@@ -104,66 +124,67 @@ extra_rdoc_files:
104
124
  - README.md
105
125
  - LICENSE
106
126
  files:
127
+ - LICENSE
128
+ - README.md
129
+ - ext/ruby-llvm-support/Rakefile
130
+ - ext/ruby-llvm-support/support.cpp
131
+ - lib/llvm.rb
107
132
  - lib/llvm/analysis.rb
108
- - lib/llvm/core_ffi.rb
109
- - lib/llvm/transforms/ipo_ffi.rb
110
- - lib/llvm/transforms/vectorize_ffi.rb
111
- - lib/llvm/transforms/scalar_ffi.rb
112
- - lib/llvm/transforms/builder.rb
113
- - lib/llvm/transforms/ipo.rb
114
- - lib/llvm/transforms/vectorize.rb
115
- - lib/llvm/transforms/builder_ffi.rb
116
- - lib/llvm/transforms/scalar.rb
117
- - lib/llvm/support.rb
118
- - lib/llvm/target.rb
119
- - lib/llvm/core/pass_manager.rb
133
+ - lib/llvm/analysis_ffi.rb
134
+ - lib/llvm/config.rb
135
+ - lib/llvm/core.rb
136
+ - lib/llvm/core/bitcode.rb
137
+ - lib/llvm/core/bitcode_ffi.rb
120
138
  - lib/llvm/core/builder.rb
139
+ - lib/llvm/core/context.rb
121
140
  - lib/llvm/core/module.rb
122
- - lib/llvm/core/value.rb
123
- - lib/llvm/core/bitcode.rb
141
+ - lib/llvm/core/pass_manager.rb
124
142
  - lib/llvm/core/type.rb
125
- - lib/llvm/core/context.rb
126
- - lib/llvm/core/bitcode_ffi.rb
127
- - lib/llvm/linker.rb
128
- - lib/llvm/config.rb
129
- - lib/llvm/execution_engine_ffi.rb
143
+ - lib/llvm/core/value.rb
144
+ - lib/llvm/core_ffi.rb
130
145
  - lib/llvm/execution_engine.rb
146
+ - lib/llvm/execution_engine_ffi.rb
147
+ - lib/llvm/linker.rb
131
148
  - lib/llvm/linker_ffi.rb
132
- - lib/llvm/version.rb
133
- - lib/llvm/core.rb
149
+ - lib/llvm/support.rb
150
+ - lib/llvm/target.rb
134
151
  - lib/llvm/target_ffi.rb
135
- - lib/llvm/analysis_ffi.rb
136
- - lib/llvm.rb
137
- - ext/ruby-llvm-support/Rakefile
138
- - ext/ruby-llvm-support/support.cpp
139
- - README.md
140
- - LICENSE
141
- - test/type_test.rb
142
- - test/ipo_test.rb
143
- - test/binary_operations_test.rb
144
- - test/module_test.rb
152
+ - lib/llvm/transforms/builder.rb
153
+ - lib/llvm/transforms/builder_ffi.rb
154
+ - lib/llvm/transforms/ipo.rb
155
+ - lib/llvm/transforms/ipo_ffi.rb
156
+ - lib/llvm/transforms/scalar.rb
157
+ - lib/llvm/transforms/scalar_ffi.rb
158
+ - lib/llvm/transforms/vectorize.rb
159
+ - lib/llvm/transforms/vectorize_ffi.rb
160
+ - lib/llvm/version.rb
161
+ - test/array_test.rb
145
162
  - test/basic_block_test.rb
146
- - test/test_helper.rb
147
- - test/phi_test.rb
163
+ - test/binary_operations_test.rb
148
164
  - test/bitcode_test.rb
165
+ - test/branch_test.rb
166
+ - test/call_test.rb
167
+ - test/comparisons_test.rb
168
+ - test/conversions_test.rb
149
169
  - test/double_test.rb
150
- - test/instruction_test.rb
151
170
  - test/equality_test.rb
152
- - test/pass_manager_builder_test.rb
171
+ - test/function_test.rb
153
172
  - test/generic_value_test.rb
173
+ - test/instruction_test.rb
174
+ - test/ipo_test.rb
154
175
  - test/linker_test.rb
155
- - test/comparisons_test.rb
156
- - test/select_test.rb
157
- - test/function_test.rb
176
+ - test/mcjit_test.rb
158
177
  - test/memory_access_test.rb
159
- - test/struct_test.rb
178
+ - test/module_test.rb
160
179
  - test/parameter_collection_test.rb
161
- - test/call_test.rb
162
- - test/vector_test.rb
180
+ - test/pass_manager_builder_test.rb
181
+ - test/phi_test.rb
182
+ - test/select_test.rb
183
+ - test/struct_test.rb
163
184
  - test/target_test.rb
164
- - test/array_test.rb
165
- - test/branch_test.rb
166
- - test/conversions_test.rb
185
+ - test/test_helper.rb
186
+ - test/type_test.rb
187
+ - test/vector_test.rb
167
188
  homepage: http://github.com/ruby-llvm/ruby-llvm
168
189
  licenses: []
169
190
  metadata: {}
@@ -173,45 +194,44 @@ require_paths:
173
194
  - lib
174
195
  required_ruby_version: !ruby/object:Gem::Requirement
175
196
  requirements:
176
- - - '>='
197
+ - - ">="
177
198
  - !ruby/object:Gem::Version
178
199
  version: '0'
179
200
  required_rubygems_version: !ruby/object:Gem::Requirement
180
201
  requirements:
181
- - - '>='
202
+ - - ">="
182
203
  - !ruby/object:Gem::Version
183
204
  version: '0'
184
205
  requirements: []
185
- rubyforge_project:
186
- rubygems_version: 2.0.0
206
+ rubygems_version: 3.1.2
187
207
  signing_key:
188
208
  specification_version: 4
189
209
  summary: LLVM bindings for Ruby
190
210
  test_files:
211
+ - test/double_test.rb
191
212
  - test/type_test.rb
213
+ - test/basic_block_test.rb
214
+ - test/struct_test.rb
215
+ - test/array_test.rb
216
+ - test/vector_test.rb
217
+ - test/instruction_test.rb
192
218
  - test/ipo_test.rb
219
+ - test/branch_test.rb
193
220
  - test/binary_operations_test.rb
194
- - test/module_test.rb
195
- - test/basic_block_test.rb
196
- - test/test_helper.rb
197
- - test/phi_test.rb
198
221
  - test/bitcode_test.rb
199
- - test/double_test.rb
200
- - test/instruction_test.rb
201
- - test/equality_test.rb
202
222
  - test/pass_manager_builder_test.rb
203
- - test/generic_value_test.rb
204
- - test/linker_test.rb
205
- - test/comparisons_test.rb
206
- - test/select_test.rb
223
+ - test/equality_test.rb
207
224
  - test/function_test.rb
208
- - test/memory_access_test.rb
209
- - test/struct_test.rb
210
225
  - test/parameter_collection_test.rb
211
- - test/call_test.rb
212
- - test/vector_test.rb
226
+ - test/memory_access_test.rb
227
+ - test/select_test.rb
228
+ - test/module_test.rb
229
+ - test/test_helper.rb
230
+ - test/comparisons_test.rb
213
231
  - test/target_test.rb
214
- - test/array_test.rb
215
- - test/branch_test.rb
232
+ - test/call_test.rb
216
233
  - test/conversions_test.rb
217
- has_rdoc: yard
234
+ - test/linker_test.rb
235
+ - test/generic_value_test.rb
236
+ - test/phi_test.rb
237
+ - test/mcjit_test.rb