ruby-llvm 3.1.0.beta.1 → 3.2.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/LICENSE +30 -0
  2. data/README.md +49 -0
  3. data/ext/ruby-llvm-support/Rakefile +30 -7
  4. data/ext/ruby-llvm-support/support.cpp +48 -1
  5. data/lib/llvm.rb +26 -3
  6. data/lib/llvm/analysis.rb +8 -11
  7. data/lib/llvm/analysis_ffi.rb +1 -1
  8. data/lib/llvm/core.rb +36 -1
  9. data/lib/llvm/core/bitcode_ffi.rb +1 -1
  10. data/lib/llvm/core/builder.rb +20 -14
  11. data/lib/llvm/core/module.rb +87 -63
  12. data/lib/llvm/core/pass_manager.rb +30 -30
  13. data/lib/llvm/core/type.rb +34 -51
  14. data/lib/llvm/core/value.rb +13 -25
  15. data/lib/llvm/core_ffi.rb +62 -21
  16. data/lib/llvm/execution_engine.rb +13 -19
  17. data/lib/llvm/execution_engine_ffi.rb +1 -1
  18. data/lib/llvm/linker.rb +35 -0
  19. data/lib/llvm/linker_ffi.rb +45 -0
  20. data/lib/llvm/support.rb +32 -6
  21. data/lib/llvm/target.rb +318 -1
  22. data/lib/llvm/target_ffi.rb +302 -14
  23. data/lib/llvm/transforms/ipo_ffi.rb +1 -1
  24. data/lib/llvm/transforms/scalar_ffi.rb +1 -1
  25. data/lib/llvm/transforms/vectorize.rb +17 -0
  26. data/lib/llvm/transforms/vectorize_ffi.rb +31 -0
  27. data/lib/llvm/version.rb +21 -2
  28. data/test/array_test.rb +1 -1
  29. data/test/basic_block_test.rb +1 -1
  30. data/test/basic_test.rb +1 -1
  31. data/test/binary_operations_test.rb +1 -1
  32. data/test/bitcode_test.rb +2 -2
  33. data/test/branch_test.rb +1 -1
  34. data/test/call_test.rb +1 -1
  35. data/test/comparisons_test.rb +1 -1
  36. data/test/conversions_test.rb +1 -1
  37. data/test/double_test.rb +2 -2
  38. data/test/equality_test.rb +5 -5
  39. data/test/generic_value_test.rb +1 -1
  40. data/test/instruction_test.rb +1 -1
  41. data/test/ipo_test.rb +1 -1
  42. data/test/linker_test.rb +46 -0
  43. data/test/memory_access_test.rb +1 -1
  44. data/test/module_test.rb +50 -1
  45. data/test/phi_test.rb +1 -1
  46. data/test/select_test.rb +1 -1
  47. data/test/struct_test.rb +3 -3
  48. data/test/target_test.rb +124 -0
  49. data/test/test_helper.rb +10 -1
  50. data/test/type_test.rb +1 -1
  51. data/test/vector_test.rb +1 -1
  52. metadata +33 -22
  53. data/README.rdoc +0 -34
@@ -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
-
@@ -3,7 +3,7 @@ require "test_helper"
3
3
  class TypeTestCase < Test::Unit::TestCase
4
4
 
5
5
  def test_element_type
6
- pointer = LLVM.Pointer(LLVM::Int32.type)
6
+ pointer = LLVM.Pointer(LLVM::Int32.type)
7
7
  pointee = pointer.element_type
8
8
 
9
9
  assert_equal :pointer, pointer.kind
@@ -3,7 +3,7 @@ require "test_helper"
3
3
  class VectorTestCase < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
- LLVM.init_x86
6
+ LLVM.init_jit
7
7
  end
8
8
 
9
9
  def test_all_ones_vector
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.1.0.beta.1
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: 2012-09-21 00:00:00.000000000 Z
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: &70118972255960 !ruby/object:Gem::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.0.0
21
+ version: 1.3.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70118972255960
24
+ version_requirements: *70341044253260
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: ffi_gen
27
- requirement: &70118972255040 !ruby/object:Gem::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: '0'
32
+ version: 1.1.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70118972255040
35
+ version_requirements: *70341044252560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70118972254200 !ruby/object:Gem::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: *70118972254200
46
+ version_requirements: *70341044251800
47
47
  - !ruby/object:Gem::Dependency
48
- name: rcov
49
- requirement: &70118972251640 !ruby/object:Gem::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: *70118972251640
57
+ version_requirements: *70341044251280
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: yard
60
- requirement: &70118972250100 !ruby/object:Gem::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: '0'
65
+ version: 0.8.3
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70118972250100
69
- description: LLVM bindings for Ruby
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.rdoc
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.rdoc
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
@@ -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.