ruby-llvm 20.1.7 → 21.1.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.
- checksums.yaml +4 -4
- data/lib/llvm/analysis.rb +9 -0
- data/lib/llvm/analysis_ffi.rb +2 -1
- data/lib/llvm/core/attribute.rb +41 -2
- data/lib/llvm/core/bitcode.rb +23 -5
- data/lib/llvm/core/bitcode_ffi.rb +2 -1
- data/lib/llvm/core/builder.rb +134 -16
- data/lib/llvm/core/context.rb +6 -1
- data/lib/llvm/core/module.rb +23 -4
- data/lib/llvm/core/pass_manager.rb +1 -0
- data/lib/llvm/core/type.rb +110 -49
- data/lib/llvm/core/value.rb +123 -30
- data/lib/llvm/core.rb +7 -4
- data/lib/llvm/core_ffi.rb +2 -28
- data/lib/llvm/execution_engine.rb +37 -10
- data/lib/llvm/execution_engine_ffi.rb +2 -1
- data/lib/llvm/linker.rb +2 -0
- data/lib/llvm/linker_ffi.rb +2 -1
- data/lib/llvm/lljit.rb +3 -1
- data/lib/llvm/pass_builder.rb +12 -1
- data/lib/llvm/support.rb +1 -0
- data/lib/llvm/target.rb +15 -6
- data/lib/llvm/target_ffi.rb +2 -1
- data/lib/llvm/transforms/ipo.rb +1 -0
- data/lib/llvm/transforms/pass_manager_builder.rb +1 -0
- data/lib/llvm/transforms/scalar.rb +1 -0
- data/lib/llvm/transforms/utils.rb +1 -0
- data/lib/llvm/transforms/vectorize.rb +1 -0
- data/lib/llvm/version.rb +4 -3
- data/lib/llvm.rb +10 -3
- metadata +33 -22
data/lib/llvm/core_ffi.rb
CHANGED
@@ -4,7 +4,8 @@ require 'ffi'
|
|
4
4
|
|
5
5
|
module LLVM::C
|
6
6
|
extend FFI::Library
|
7
|
-
|
7
|
+
|
8
|
+
ffi_lib ["LLVM-21", "libLLVM-21.so.1", "libLLVM.so.21", "libLLVM.so.21.1"]
|
8
9
|
|
9
10
|
# (Not documented)
|
10
11
|
#
|
@@ -2893,33 +2894,6 @@ module LLVM::C
|
|
2893
2894
|
# @scope class
|
2894
2895
|
attach_function :const_nuw_sub, :LLVMConstNUWSub, [:pointer, :pointer], :pointer
|
2895
2896
|
|
2896
|
-
# (Not documented)
|
2897
|
-
#
|
2898
|
-
# @method const_mul(lhs_constant, rhs_constant)
|
2899
|
-
# @param [FFI::Pointer(ValueRef)] lhs_constant
|
2900
|
-
# @param [FFI::Pointer(ValueRef)] rhs_constant
|
2901
|
-
# @return [FFI::Pointer(ValueRef)]
|
2902
|
-
# @scope class
|
2903
|
-
attach_function :const_mul, :LLVMConstMul, [:pointer, :pointer], :pointer
|
2904
|
-
|
2905
|
-
# (Not documented)
|
2906
|
-
#
|
2907
|
-
# @method const_nsw_mul(lhs_constant, rhs_constant)
|
2908
|
-
# @param [FFI::Pointer(ValueRef)] lhs_constant
|
2909
|
-
# @param [FFI::Pointer(ValueRef)] rhs_constant
|
2910
|
-
# @return [FFI::Pointer(ValueRef)]
|
2911
|
-
# @scope class
|
2912
|
-
attach_function :const_nsw_mul, :LLVMConstNSWMul, [:pointer, :pointer], :pointer
|
2913
|
-
|
2914
|
-
# (Not documented)
|
2915
|
-
#
|
2916
|
-
# @method const_nuw_mul(lhs_constant, rhs_constant)
|
2917
|
-
# @param [FFI::Pointer(ValueRef)] lhs_constant
|
2918
|
-
# @param [FFI::Pointer(ValueRef)] rhs_constant
|
2919
|
-
# @return [FFI::Pointer(ValueRef)]
|
2920
|
-
# @scope class
|
2921
|
-
attach_function :const_nuw_mul, :LLVMConstNUWMul, [:pointer, :pointer], :pointer
|
2922
|
-
|
2923
2897
|
# (Not documented)
|
2924
2898
|
#
|
2925
2899
|
# @method const_xor(lhs_constant, rhs_constant)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
# typed: true
|
2
3
|
|
3
4
|
require 'llvm'
|
4
5
|
require 'llvm/core'
|
@@ -62,7 +63,9 @@ module LLVM
|
|
62
63
|
# GenericValues).
|
63
64
|
# Important: Call #dispose on the returned GenericValue to
|
64
65
|
# free backend memory after use.
|
66
|
+
#: (LLVM::Function, *untyped) -> GenericValue?
|
65
67
|
def run_function(fun, *args)
|
68
|
+
result = nil #: GenericValue?
|
66
69
|
FFI::MemoryPointer.new(FFI.type_size(:pointer) * args.size) do |args_ptr|
|
67
70
|
new_values = []
|
68
71
|
args_ptr.write_array_of_pointer(fun.params.zip(args).map do |p, a|
|
@@ -74,11 +77,14 @@ module LLVM
|
|
74
77
|
value
|
75
78
|
end
|
76
79
|
end)
|
77
|
-
result =
|
78
|
-
C.run_function
|
80
|
+
result = begin
|
81
|
+
LLVM::GenericValue.from_ptr(C.send(:run_function, self, fun, args.size, args_ptr))
|
82
|
+
rescue ArgumentError
|
83
|
+
nil
|
84
|
+
end
|
79
85
|
new_values.each(&:dispose)
|
80
|
-
return result
|
81
86
|
end
|
87
|
+
result
|
82
88
|
end
|
83
89
|
|
84
90
|
# Obtain an FFI::Pointer to a global within the current module.
|
@@ -211,15 +217,20 @@ module LLVM
|
|
211
217
|
end
|
212
218
|
end
|
213
219
|
|
220
|
+
#: (Function, *untyped) -> GenericValue?
|
214
221
|
def run_function(fun, *args)
|
215
222
|
args2 = fun.params.map {|e| convert_type(e.type)}
|
216
223
|
ptr = FFI::Pointer.new(function_address(fun.name))
|
217
224
|
raise "Couldn't find function" if ptr.null?
|
218
225
|
|
219
226
|
return_type = convert_type(fun.function_type.return_type)
|
220
|
-
f = FFI::Function.new(return_type, args2, ptr)
|
227
|
+
f = FFI::Function.new(return_type, args2, ptr) #: as untyped
|
221
228
|
ret1 = f.call(*args)
|
222
|
-
|
229
|
+
begin
|
230
|
+
LLVM.make_generic_value(fun.function_type.return_type, ret1)
|
231
|
+
rescue ArgumentError
|
232
|
+
nil
|
233
|
+
end
|
223
234
|
end
|
224
235
|
|
225
236
|
protected
|
@@ -247,13 +258,15 @@ module LLVM
|
|
247
258
|
end
|
248
259
|
|
249
260
|
# Casts an FFI::Pointer pointing to a GenericValue to an instance.
|
261
|
+
#: (FFI::Pointer?) -> GenericValue?
|
250
262
|
def self.from_ptr(ptr)
|
251
|
-
return if ptr.null?
|
263
|
+
return if ptr.nil? || ptr.null?
|
252
264
|
val = allocate
|
253
265
|
val.instance_variable_set(:@ptr, ptr)
|
254
266
|
val
|
255
267
|
end
|
256
268
|
|
269
|
+
#: -> void
|
257
270
|
def dispose
|
258
271
|
return if @ptr.nil?
|
259
272
|
C.dispose_generic_value(@ptr)
|
@@ -262,22 +275,26 @@ module LLVM
|
|
262
275
|
|
263
276
|
# Creates a Generic Value from an integer. Type is the size of integer to
|
264
277
|
# create (ex. Int32, Int8, etc.)
|
278
|
+
#: (Numeric, ?Hash[untyped, untyped]) -> GenericValue
|
265
279
|
def self.from_i(i, options = {})
|
266
280
|
type = options.fetch(:type, LLVM::Int)
|
267
281
|
signed = options.fetch(:signed, true)
|
268
|
-
from_ptr(C.create_generic_value_of_int(type, i, signed ? 1 : 0))
|
282
|
+
from_ptr(C.create_generic_value_of_int(type, i.to_i, signed ? 1 : 0)) #: as !nil
|
269
283
|
end
|
270
284
|
|
271
285
|
# Creates a Generic Value from a Float.
|
286
|
+
#: (Numeric) -> GenericValue
|
272
287
|
def self.from_f(f)
|
273
|
-
from_ptr(C.create_generic_value_of_float(LLVM::Float, f))
|
288
|
+
from_ptr(C.create_generic_value_of_float(LLVM::Float, f.to_f)) #: as !nil
|
274
289
|
end
|
275
290
|
|
291
|
+
#: (Numeric) -> GenericValue
|
276
292
|
def self.from_d(val)
|
277
|
-
from_ptr(C.create_generic_value_of_float(LLVM::Double, val))
|
293
|
+
from_ptr(C.create_generic_value_of_float(LLVM::Double, val.to_f)) #: as !nil
|
278
294
|
end
|
279
295
|
|
280
296
|
# Creates a GenericValue from a Ruby boolean.
|
297
|
+
#: (bool) -> GenericValue
|
281
298
|
def self.from_b(b)
|
282
299
|
from_i(b ? 1 : 0, type: LLVM::Int1, signed: false)
|
283
300
|
end
|
@@ -288,6 +305,7 @@ module LLVM
|
|
288
305
|
end
|
289
306
|
|
290
307
|
# Converts a GenericValue to a Ruby Integer.
|
308
|
+
#: (?bool) -> Integer
|
291
309
|
def to_i(signed = true)
|
292
310
|
v = C.generic_value_to_int(self, signed ? 1 : 0)
|
293
311
|
v -= 2**64 if signed and v >= 2**63
|
@@ -295,11 +313,19 @@ module LLVM
|
|
295
313
|
end
|
296
314
|
|
297
315
|
# Converts a GenericValue to a Ruby Float.
|
316
|
+
#: (?LLVM::Type) -> ::Float
|
298
317
|
def to_f(type = LLVM::Float.type)
|
299
318
|
C.generic_value_to_float(type, self)
|
300
319
|
end
|
301
320
|
|
321
|
+
# Converts a GenericValue to a Ruby Float.
|
322
|
+
#: -> ::Float
|
323
|
+
def to_d
|
324
|
+
C.generic_value_to_float(LLVM.double, self)
|
325
|
+
end
|
326
|
+
|
302
327
|
# Converts a GenericValue to a Ruby boolean.
|
328
|
+
#: -> bool
|
303
329
|
def to_b
|
304
330
|
to_i(false) != 0
|
305
331
|
end
|
@@ -310,6 +336,7 @@ module LLVM
|
|
310
336
|
end
|
311
337
|
|
312
338
|
# @private
|
339
|
+
#: (LLVM::Type, untyped) -> GenericValue
|
313
340
|
def make_generic_value(ty, val)
|
314
341
|
case ty.kind
|
315
342
|
when :double then GenericValue.from_d(val)
|
@@ -317,7 +344,7 @@ module LLVM
|
|
317
344
|
when :pointer then GenericValue.from_value_ptr(val)
|
318
345
|
when :integer then GenericValue.from_i(val, :type => ty)
|
319
346
|
else
|
320
|
-
raise "Unsupported type #{ty.kind}."
|
347
|
+
raise ArgumentError, "Unsupported type #{ty.kind}."
|
321
348
|
end
|
322
349
|
end
|
323
350
|
module_function :make_generic_value
|
@@ -4,7 +4,8 @@ require 'ffi'
|
|
4
4
|
|
5
5
|
module LLVM::C
|
6
6
|
extend FFI::Library
|
7
|
-
|
7
|
+
|
8
|
+
ffi_lib ["LLVM-21", "libLLVM-21.so.1", "libLLVM.so.21", "libLLVM.so.21.1"]
|
8
9
|
# @defgroup LLVMCExecutionEngine Execution Engine
|
9
10
|
# @ingroup LLVMC
|
10
11
|
#
|
data/lib/llvm/linker.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
# typed: strict
|
2
3
|
|
3
4
|
require 'llvm'
|
4
5
|
require 'llvm/core'
|
@@ -9,6 +10,7 @@ module LLVM
|
|
9
10
|
# Link the current module into +other+.
|
10
11
|
#
|
11
12
|
# @return [nil, String] human-readable error if linking has failed
|
13
|
+
#: (LLVM::Module) -> String?
|
12
14
|
def link_into(other)
|
13
15
|
LLVM.with_message_output do |msg|
|
14
16
|
C.link_modules2(other, self)
|
data/lib/llvm/linker_ffi.rb
CHANGED
@@ -4,7 +4,8 @@ require 'ffi'
|
|
4
4
|
|
5
5
|
module LLVM::C
|
6
6
|
extend FFI::Library
|
7
|
-
|
7
|
+
|
8
|
+
ffi_lib ["LLVM-21", "libLLVM-21.so.1", "libLLVM.so.21", "libLLVM.so.21.1"]
|
8
9
|
# This enum is provided for backwards-compatibility only. It has no effect.
|
9
10
|
#
|
10
11
|
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:linker_mode).</em>
|
data/lib/llvm/lljit.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
# typed: true
|
2
3
|
|
3
4
|
require 'llvm/core'
|
4
5
|
|
@@ -45,8 +46,9 @@ module LLVM
|
|
45
46
|
|
46
47
|
module C
|
47
48
|
extend FFI::Library
|
49
|
+
|
48
50
|
ffi_lib_flags(:lazy, :global)
|
49
|
-
ffi_lib ["LLVM-
|
51
|
+
ffi_lib ["LLVM-21", "libLLVM-21.so.1", "libLLVM.so.21", "libLLVM.so.21.1"]
|
50
52
|
attach_function :create_lljit_builder, :LLVMOrcCreateLLJITBuilder, [], :pointer
|
51
53
|
attach_function :dispose_lljit_builder, :LLVMOrcDisposeLLJITBuilder, [:pointer], :void
|
52
54
|
|
data/lib/llvm/pass_builder.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
# typed: true
|
2
3
|
|
3
4
|
module LLVM
|
4
5
|
class PassBuilder # rubocop:disable Metrics/ClassLength
|
5
6
|
extend FFI::Library
|
6
|
-
|
7
|
+
|
8
|
+
ffi_lib ["LLVM-21", "libLLVM-21.so.1", "libLLVM.so.21", "libLLVM.so.21.1"]
|
7
9
|
attr_reader :passes
|
8
10
|
attr_accessor :inliner_threshold, :merge_functions
|
9
11
|
|
@@ -60,6 +62,7 @@ module LLVM
|
|
60
62
|
end
|
61
63
|
|
62
64
|
# @return self
|
65
|
+
#: (String) -> self
|
63
66
|
def add_pass(pass)
|
64
67
|
passes << pass
|
65
68
|
self
|
@@ -754,6 +757,14 @@ module LLVM
|
|
754
757
|
add_pass('tysan')
|
755
758
|
end
|
756
759
|
|
760
|
+
# This optimization is only applied to integer constants in instructions and
|
761
|
+
# simple (this means not nested) constant cast expressions
|
762
|
+
# https://llvm.org/doxygen/ConstantHoisting_8cpp_source.html
|
763
|
+
#: -> self
|
764
|
+
def consthoist!
|
765
|
+
add_pass('consthoist')
|
766
|
+
end
|
767
|
+
|
757
768
|
private
|
758
769
|
|
759
770
|
attr_writer :passes
|
data/lib/llvm/support.rb
CHANGED
data/lib/llvm/target.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
# typed: true
|
2
3
|
|
3
4
|
require 'llvm'
|
4
5
|
require 'llvm/core'
|
@@ -7,7 +8,9 @@ require 'llvm/target_ffi'
|
|
7
8
|
module LLVM
|
8
9
|
# A shorthand for {LLVM::Target.init_native}
|
9
10
|
def self.init_jit(*args)
|
10
|
-
LLVM::Target.init_native(
|
11
|
+
LLVM::Target.init_native(
|
12
|
+
*args #: as untyped
|
13
|
+
)
|
11
14
|
end
|
12
15
|
|
13
16
|
# @deprecated Use LLVM.init_jit or LLVM::Target.init('X86').
|
@@ -25,11 +28,15 @@ module LLVM
|
|
25
28
|
|
26
29
|
module TargetModule
|
27
30
|
extend FFI::Library
|
28
|
-
|
31
|
+
|
32
|
+
ffi_lib ["LLVM-21", "libLLVM-21.so.1", "libLLVM.so.21", "libLLVM.so.21.1"]
|
33
|
+
#: (*untyped) -> void
|
29
34
|
def self.safe_attach_function(*args)
|
30
|
-
attach_function(
|
35
|
+
attach_function(
|
36
|
+
*args #: as untyped
|
37
|
+
)
|
31
38
|
rescue FFI::NotFoundError => e
|
32
|
-
warn(e)
|
39
|
+
warn(e.message)
|
33
40
|
end
|
34
41
|
end
|
35
42
|
|
@@ -113,6 +120,7 @@ module LLVM
|
|
113
120
|
include PointerIdentity
|
114
121
|
|
115
122
|
# @private
|
123
|
+
#: (FFI::Pointer) -> Target
|
116
124
|
def self.from_ptr(ptr)
|
117
125
|
target = allocate
|
118
126
|
target.instance_variable_set :@ptr, ptr
|
@@ -275,8 +283,9 @@ module LLVM
|
|
275
283
|
# Returns the integer type that is the same size as a pointer on a target.
|
276
284
|
#
|
277
285
|
# @param [Integer] addr_space address space number
|
278
|
-
|
279
|
-
|
286
|
+
# (?address_space: Integer) -> Type
|
287
|
+
def int_ptr_type(address_space: 0)
|
288
|
+
Type.from_ptr(C.int_ptr_type_for_as(self, address_space), kind: :integer)
|
280
289
|
end
|
281
290
|
|
282
291
|
# Computes the size of a type in bits for a target.
|
data/lib/llvm/target_ffi.rb
CHANGED
@@ -4,7 +4,8 @@ require 'ffi'
|
|
4
4
|
|
5
5
|
module LLVM::C
|
6
6
|
extend FFI::Library
|
7
|
-
|
7
|
+
|
8
|
+
ffi_lib ["LLVM-21", "libLLVM-21.so.1", "libLLVM.so.21", "libLLVM.so.21.1"]
|
8
9
|
# (Not documented)
|
9
10
|
#
|
10
11
|
# <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:byte_ordering).</em>
|
data/lib/llvm/transforms/ipo.rb
CHANGED
data/lib/llvm/version.rb
CHANGED
data/lib/llvm.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
# typed: strict
|
2
3
|
|
3
4
|
require 'ffi'
|
4
5
|
|
@@ -9,23 +10,29 @@ module LLVM
|
|
9
10
|
class DeprecationError < StandardError; end
|
10
11
|
|
11
12
|
module PointerIdentity
|
13
|
+
attr_reader :ptr #: as FFI::Pointer
|
14
|
+
|
12
15
|
# @private
|
16
|
+
#: -> FFI::Pointer
|
13
17
|
def to_ptr
|
14
|
-
|
18
|
+
ptr #: FFI::Pointer
|
15
19
|
end
|
16
20
|
|
17
21
|
# Checks if the value is equal to other.
|
22
|
+
#: (untyped) -> bool
|
18
23
|
def ==(other)
|
19
24
|
other.respond_to?(:to_ptr) &&
|
20
|
-
|
25
|
+
ptr == other.to_ptr
|
21
26
|
end
|
22
27
|
|
23
28
|
# Computes hash.
|
29
|
+
#: -> Integer
|
24
30
|
def hash
|
25
|
-
|
31
|
+
ptr.address.hash
|
26
32
|
end
|
27
33
|
|
28
34
|
# Checks if the value is equivalent to other.
|
35
|
+
#: (untyped) -> bool
|
29
36
|
def eql?(other)
|
30
37
|
self == other
|
31
38
|
end
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-llvm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 21.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesse Johnson
|
8
8
|
- Jeremy Voorhis
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: ffi
|
@@ -59,20 +58,6 @@ dependencies:
|
|
59
58
|
- - ">="
|
60
59
|
- !ruby/object:Gem::Version
|
61
60
|
version: '0'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: ffi_gen
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '1.2'
|
69
|
-
type: :development
|
70
|
-
prerelease: false
|
71
|
-
version_requirements: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '1.2'
|
76
61
|
- !ruby/object:Gem::Dependency
|
77
62
|
name: minitest
|
78
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,6 +156,34 @@ dependencies:
|
|
171
156
|
- - ">="
|
172
157
|
- !ruby/object:Gem::Version
|
173
158
|
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: sorbet-static
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: tapioca
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: 0.16.11
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - "~>"
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: 0.16.11
|
174
187
|
- !ruby/object:Gem::Dependency
|
175
188
|
name: yard
|
176
189
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,8 +207,8 @@ executables: []
|
|
194
207
|
extensions:
|
195
208
|
- ext/ruby-llvm-support/Rakefile
|
196
209
|
extra_rdoc_files:
|
197
|
-
- README.md
|
198
210
|
- LICENSE
|
211
|
+
- README.md
|
199
212
|
files:
|
200
213
|
- LICENSE
|
201
214
|
- README.md
|
@@ -236,7 +249,6 @@ homepage: http://github.com/ruby-llvm/ruby-llvm
|
|
236
249
|
licenses: []
|
237
250
|
metadata:
|
238
251
|
rubygems_mfa_required: 'true'
|
239
|
-
post_install_message:
|
240
252
|
rdoc_options: []
|
241
253
|
require_paths:
|
242
254
|
- lib
|
@@ -244,15 +256,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
244
256
|
requirements:
|
245
257
|
- - ">="
|
246
258
|
- !ruby/object:Gem::Version
|
247
|
-
version: '
|
259
|
+
version: '3.1'
|
248
260
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
249
261
|
requirements:
|
250
262
|
- - ">="
|
251
263
|
- !ruby/object:Gem::Version
|
252
264
|
version: '0'
|
253
265
|
requirements: []
|
254
|
-
rubygems_version: 3.
|
255
|
-
signing_key:
|
266
|
+
rubygems_version: 3.6.7
|
256
267
|
specification_version: 4
|
257
268
|
summary: LLVM bindings for Ruby
|
258
269
|
test_files: []
|