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.
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.