ruby-llvm 3.1.0.beta.1 → 3.2.0.beta.1
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.
- data/LICENSE +30 -0
- data/README.md +49 -0
- data/ext/ruby-llvm-support/Rakefile +30 -7
- data/ext/ruby-llvm-support/support.cpp +48 -1
- data/lib/llvm.rb +26 -3
- data/lib/llvm/analysis.rb +8 -11
- data/lib/llvm/analysis_ffi.rb +1 -1
- data/lib/llvm/core.rb +36 -1
- data/lib/llvm/core/bitcode_ffi.rb +1 -1
- data/lib/llvm/core/builder.rb +20 -14
- data/lib/llvm/core/module.rb +87 -63
- data/lib/llvm/core/pass_manager.rb +30 -30
- data/lib/llvm/core/type.rb +34 -51
- data/lib/llvm/core/value.rb +13 -25
- data/lib/llvm/core_ffi.rb +62 -21
- data/lib/llvm/execution_engine.rb +13 -19
- data/lib/llvm/execution_engine_ffi.rb +1 -1
- data/lib/llvm/linker.rb +35 -0
- data/lib/llvm/linker_ffi.rb +45 -0
- data/lib/llvm/support.rb +32 -6
- data/lib/llvm/target.rb +318 -1
- data/lib/llvm/target_ffi.rb +302 -14
- data/lib/llvm/transforms/ipo_ffi.rb +1 -1
- data/lib/llvm/transforms/scalar_ffi.rb +1 -1
- data/lib/llvm/transforms/vectorize.rb +17 -0
- data/lib/llvm/transforms/vectorize_ffi.rb +31 -0
- data/lib/llvm/version.rb +21 -2
- data/test/array_test.rb +1 -1
- data/test/basic_block_test.rb +1 -1
- data/test/basic_test.rb +1 -1
- data/test/binary_operations_test.rb +1 -1
- data/test/bitcode_test.rb +2 -2
- data/test/branch_test.rb +1 -1
- data/test/call_test.rb +1 -1
- data/test/comparisons_test.rb +1 -1
- data/test/conversions_test.rb +1 -1
- data/test/double_test.rb +2 -2
- data/test/equality_test.rb +5 -5
- data/test/generic_value_test.rb +1 -1
- data/test/instruction_test.rb +1 -1
- data/test/ipo_test.rb +1 -1
- data/test/linker_test.rb +46 -0
- data/test/memory_access_test.rb +1 -1
- data/test/module_test.rb +50 -1
- data/test/phi_test.rb +1 -1
- data/test/select_test.rb +1 -1
- data/test/struct_test.rb +3 -3
- data/test/target_test.rb +124 -0
- data/test/test_helper.rb +10 -1
- data/test/type_test.rb +1 -1
- data/test/vector_test.rb +1 -1
- metadata +33 -22
- data/README.rdoc +0 -34
data/test/test_helper.rb
CHANGED
@@ -6,6 +6,16 @@ rescue LoadError
|
|
6
6
|
# Ignore ruby-debug is case it's not installed
|
7
7
|
end
|
8
8
|
|
9
|
+
begin
|
10
|
+
require 'simplecov'
|
11
|
+
|
12
|
+
SimpleCov.start do
|
13
|
+
add_filter "/test/"
|
14
|
+
end
|
15
|
+
rescue LoadError
|
16
|
+
warn "Proceeding without SimpleCov. gem install simplecov on supported platforms."
|
17
|
+
end
|
18
|
+
|
9
19
|
require "test/unit"
|
10
20
|
|
11
21
|
require "llvm/core"
|
@@ -47,4 +57,3 @@ def run_function(argument_types, argument_values, return_type, &block)
|
|
47
57
|
|
48
58
|
run_function_on_module(test_module, "test_function", *argument_values)
|
49
59
|
end
|
50
|
-
|
data/test/type_test.rb
CHANGED
data/test/vector_test.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-llvm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0.beta.1
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,33 +9,33 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ffi
|
16
|
-
requirement: &
|
16
|
+
requirement: &70341044253260 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.3.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70341044253260
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: ffi_gen
|
27
|
-
requirement: &
|
27
|
+
requirement: &70341044252560 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
|
-
- -
|
30
|
+
- - ~>
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: 1.1.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70341044252560
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70341044251800 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70341044251800
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
49
|
-
requirement: &
|
48
|
+
name: simplecov
|
49
|
+
requirement: &70341044251280 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,25 +54,27 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70341044251280
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: yard
|
60
|
-
requirement: &
|
60
|
+
requirement: &70341044250640 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
|
-
- -
|
63
|
+
- - ~>
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
65
|
+
version: 0.8.3
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
69
|
-
description: LLVM
|
68
|
+
version_requirements: *70341044250640
|
69
|
+
description: Ruby-LLVM is a Ruby language binding to the LLVM compiler infrastructure
|
70
|
+
library.
|
70
71
|
email: jvoorhis@gmail.com
|
71
72
|
executables: []
|
72
73
|
extensions:
|
73
74
|
- ext/ruby-llvm-support/Rakefile
|
74
75
|
extra_rdoc_files:
|
75
|
-
- README.
|
76
|
+
- README.md
|
77
|
+
- LICENSE
|
76
78
|
files:
|
77
79
|
- lib/llvm/analysis.rb
|
78
80
|
- lib/llvm/analysis_ffi.rb
|
@@ -88,6 +90,8 @@ files:
|
|
88
90
|
- lib/llvm/core_ffi.rb
|
89
91
|
- lib/llvm/execution_engine.rb
|
90
92
|
- lib/llvm/execution_engine_ffi.rb
|
93
|
+
- lib/llvm/linker.rb
|
94
|
+
- lib/llvm/linker_ffi.rb
|
91
95
|
- lib/llvm/support.rb
|
92
96
|
- lib/llvm/target.rb
|
93
97
|
- lib/llvm/target_ffi.rb
|
@@ -95,11 +99,14 @@ files:
|
|
95
99
|
- lib/llvm/transforms/ipo_ffi.rb
|
96
100
|
- lib/llvm/transforms/scalar.rb
|
97
101
|
- lib/llvm/transforms/scalar_ffi.rb
|
102
|
+
- lib/llvm/transforms/vectorize.rb
|
103
|
+
- lib/llvm/transforms/vectorize_ffi.rb
|
98
104
|
- lib/llvm/version.rb
|
99
105
|
- lib/llvm.rb
|
100
106
|
- ext/ruby-llvm-support/Rakefile
|
101
107
|
- ext/ruby-llvm-support/support.cpp
|
102
|
-
- README.
|
108
|
+
- README.md
|
109
|
+
- LICENSE
|
103
110
|
- test/array_test.rb
|
104
111
|
- test/basic_block_test.rb
|
105
112
|
- test/basic_test.rb
|
@@ -114,12 +121,14 @@ files:
|
|
114
121
|
- test/generic_value_test.rb
|
115
122
|
- test/instruction_test.rb
|
116
123
|
- test/ipo_test.rb
|
124
|
+
- test/linker_test.rb
|
117
125
|
- test/memory_access_test.rb
|
118
126
|
- test/module_test.rb
|
119
127
|
- test/parameter_collection_test.rb
|
120
128
|
- test/phi_test.rb
|
121
129
|
- test/select_test.rb
|
122
130
|
- test/struct_test.rb
|
131
|
+
- test/target_test.rb
|
123
132
|
- test/test_helper.rb
|
124
133
|
- test/type_test.rb
|
125
134
|
- test/vector_test.rb
|
@@ -162,12 +171,14 @@ test_files:
|
|
162
171
|
- test/generic_value_test.rb
|
163
172
|
- test/instruction_test.rb
|
164
173
|
- test/ipo_test.rb
|
174
|
+
- test/linker_test.rb
|
165
175
|
- test/memory_access_test.rb
|
166
176
|
- test/module_test.rb
|
167
177
|
- test/parameter_collection_test.rb
|
168
178
|
- test/phi_test.rb
|
169
179
|
- test/select_test.rb
|
170
180
|
- test/struct_test.rb
|
181
|
+
- test/target_test.rb
|
171
182
|
- test/test_helper.rb
|
172
183
|
- test/type_test.rb
|
173
184
|
- test/vector_test.rb
|
data/README.rdoc
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
= LLVM
|
2
|
-
|
3
|
-
Author:: Jeremy Voorhis
|
4
|
-
Contributors:: Evan Phoenix, David Holroyd, Takanori Ishikawa, Ronaldo M. Ferraz, Mac Malone, Chris Wailes, Ary Borenszweig, Richard Musiol, Juan Wajnerman
|
5
|
-
Copyright:: Copyright (c) 2010-2012 Jeremy Voorhis
|
6
|
-
License:: BSD 3-clause (see LICENSE)
|
7
|
-
|
8
|
-
This package contains Ruby bindings to the LLVM api, enabling users to
|
9
|
-
make use of LLVM's optimization passes and JIT compilation for
|
10
|
-
implementing compiled DSLs, callback functions, or fast Ruby method
|
11
|
-
implementations.
|
12
|
-
|
13
|
-
ruby-llvm has been tested on OS X 10.7 using the following Ruby interpreters:
|
14
|
-
|
15
|
-
* MRI 1.8.7-p174
|
16
|
-
* MRI 1.9.2-p290
|
17
|
-
* MRI 1.9.3-preview1
|
18
|
-
* JRuby 1.4.0
|
19
|
-
|
20
|
-
If using MRI, ffi >= 1.0.7 is recommended (only ffi >= 1.0.0 is required).
|
21
|
-
|
22
|
-
== Requirements
|
23
|
-
* LLVM 3.0, including libLLVM-3.0 (compile LLVM with --enable-shared).
|
24
|
-
* In order to ensure the usability of JIT features (i.e. create_jit_compiler), compile LLVM with --enable-jit as well.
|
25
|
-
|
26
|
-
== Homebrew
|
27
|
-
LLVM can be installed with Homebrew by executing `brew install llvm --shared`
|
28
|
-
|
29
|
-
== About version numbers
|
30
|
-
|
31
|
-
The first two digits of ruby-llvm's version number refer to the required
|
32
|
-
major and minor version of LLVM. The third digit refers to the ruby-llvm
|
33
|
-
release itself. Because LLVM's api changes often, this coupling between
|
34
|
-
LLVM and ruby-llvm versions is useful.
|