ffi 1.17.0-x86-linux-gnu → 1.17.2-x86-linux-gnu
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/CHANGELOG.md +17 -0
- data/Gemfile +3 -1
- data/Rakefile +2 -2
- data/lib/2.5/ffi_c.so +0 -0
- data/lib/2.6/ffi_c.so +0 -0
- data/lib/2.7/ffi_c.so +0 -0
- data/lib/3.0/ffi_c.so +0 -0
- data/lib/3.1/ffi_c.so +0 -0
- data/lib/3.2/ffi_c.so +0 -0
- data/lib/3.3/ffi_c.so +0 -0
- data/lib/3.4/ffi_c.so +0 -0
- data/lib/ffi/ffi.rb +59 -0
- data/lib/ffi/version.rb +1 -1
- data/sig/ffi/auto_pointer.rbs +0 -1
- data/sig/ffi/library.rbs +1 -1
- metadata +5 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 141500bdb16137d93d2f8a1ac53ecc0781d544f1d1052996ae39e537e9e5ce89
|
4
|
+
data.tar.gz: d4309ab486208ce11afa8d7e752b0c4634b1e9e90413612a17df6cf339e0a0a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f82b8f18e0124d87d2912a7650f96ceef27366096bd6824b245684d69899723e1331a171fef9f77abd5c22a67076093504d58fe84ba207a9a46b598e7a052e9
|
7
|
+
data.tar.gz: 234ca09b8eb0a095104b92d428e6f102128b3946cf295674bfca9081046ce5757ef9bbfa82879711f57fc4ee71e83d54f253c39487def7ff31031c21b478fd2e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
1.17.2 / 2025-04-15
|
2
|
+
-------------------
|
3
|
+
|
4
|
+
Fixed:
|
5
|
+
* #1144, #1145 Update libffi to 3.4.8 to fix installation issues on latest Macos on ARM64
|
6
|
+
* Various adjustments to run the specs cleanly on Ruby-3.5 master branch.
|
7
|
+
|
8
|
+
|
9
|
+
1.17.1 / 2024-12-30
|
10
|
+
-------------------
|
11
|
+
|
12
|
+
Fixed:
|
13
|
+
* #1117 Restart async callback dispatcher thread after fork.
|
14
|
+
* #1133 Add ruby-3.4 native gem.
|
15
|
+
* #1134 Fix FFI::DataConverter non-generic usage in RBS files.
|
16
|
+
|
17
|
+
|
1
18
|
1.17.0 / 2024-06-02
|
2
19
|
-------------------
|
3
20
|
|
data/Gemfile
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
group :development do
|
4
|
+
gem 'benchmark' # necessary on ruby-3.5+
|
4
5
|
gem 'bigdecimal' # necessary on ruby-3.3+
|
5
6
|
gem 'bundler', '>= 1.16', '< 3'
|
7
|
+
gem 'fiddle', platforms: %i[mri windows] # necessary on ruby-3.5+
|
6
8
|
gem 'rake', '~> 13.0'
|
7
9
|
gem 'rake-compiler', '~> 1.1'
|
8
|
-
gem 'rake-compiler-dock', '~> 1.0
|
10
|
+
gem 'rake-compiler-dock', '~> 1.9.0'
|
9
11
|
gem 'rspec', '~> 3.0'
|
10
12
|
end
|
11
13
|
|
data/Rakefile
CHANGED
@@ -136,9 +136,9 @@ namespace "gem" do
|
|
136
136
|
desc "Build the native gem for #{plat}"
|
137
137
|
task plat => ['prepare', 'build'] do
|
138
138
|
RakeCompilerDock.sh <<-EOT, platform: plat
|
139
|
-
|
139
|
+
sudo apt-get update && sudo apt-get install -y libltdl-dev &&
|
140
140
|
bundle --local &&
|
141
|
-
rake native:#{plat} pkg/#{gem_spec.full_name}-#{plat}.gem MAKE='nice make -j`nproc`' RUBY_CC_VERSION
|
141
|
+
rake native:#{plat} pkg/#{gem_spec.full_name}-#{plat}.gem MAKE='nice make -j`nproc`' RUBY_CC_VERSION=#{RakeCompilerDock.ruby_cc_version("~>2.5", "~>3.0")}
|
142
142
|
EOT
|
143
143
|
end
|
144
144
|
end
|
data/lib/2.5/ffi_c.so
CHANGED
Binary file
|
data/lib/2.6/ffi_c.so
CHANGED
Binary file
|
data/lib/2.7/ffi_c.so
CHANGED
Binary file
|
data/lib/3.0/ffi_c.so
CHANGED
Binary file
|
data/lib/3.1/ffi_c.so
CHANGED
Binary file
|
data/lib/3.2/ffi_c.so
CHANGED
Binary file
|
data/lib/3.3/ffi_c.so
CHANGED
Binary file
|
data/lib/3.4/ffi_c.so
ADDED
Binary file
|
data/lib/ffi/ffi.rb
CHANGED
@@ -48,3 +48,62 @@ require 'ffi/variadic'
|
|
48
48
|
require 'ffi/enum'
|
49
49
|
require 'ffi/version'
|
50
50
|
require 'ffi/function'
|
51
|
+
|
52
|
+
module FFI
|
53
|
+
module ModernForkTracking
|
54
|
+
def _fork
|
55
|
+
pid = super
|
56
|
+
if pid == 0
|
57
|
+
FFI._async_cb_dispatcher_atfork_child
|
58
|
+
end
|
59
|
+
pid
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
module LegacyForkTracking
|
64
|
+
module KernelExt
|
65
|
+
def fork
|
66
|
+
if block_given?
|
67
|
+
super do
|
68
|
+
FFI._async_cb_dispatcher_atfork_child
|
69
|
+
yield
|
70
|
+
end
|
71
|
+
else
|
72
|
+
pid = super
|
73
|
+
FFI._async_cb_dispatcher_atfork_child if pid.nil?
|
74
|
+
pid
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
module KernelExtPrivate
|
80
|
+
include KernelExt
|
81
|
+
private :fork
|
82
|
+
end
|
83
|
+
|
84
|
+
module IOExt
|
85
|
+
def popen(*args)
|
86
|
+
return super unless args[0] == '-'
|
87
|
+
|
88
|
+
super(*args) do |pipe|
|
89
|
+
FFI._async_cb_dispatcher_atfork_child if pipe.nil?
|
90
|
+
yield pipe
|
91
|
+
end
|
92
|
+
end
|
93
|
+
ruby2_keywords :popen if respond_to?(:ruby2_keywords)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
if Process.respond_to?(:_fork)
|
98
|
+
# The nice Ruby 3.1+ way of doing things
|
99
|
+
::Process.singleton_class.prepend(ModernForkTracking)
|
100
|
+
elsif Process.respond_to?(:fork)
|
101
|
+
# Barf. Old CRuby.
|
102
|
+
# Most of the inspiration for how to do this was stolen from ActiveSupport.
|
103
|
+
::Object.prepend(LegacyForkTracking::KernelExtPrivate)
|
104
|
+
::Object.singleton_class.prepend(LegacyForkTracking::KernelExt)
|
105
|
+
::Kernel.prepend(LegacyForkTracking::KernelExtPrivate)
|
106
|
+
::Kernel.singleton_class.prepend(LegacyForkTracking::KernelExt)
|
107
|
+
::IO.singleton_class.prepend(LegacyForkTracking::IOExt)
|
108
|
+
end
|
109
|
+
end
|
data/lib/ffi/version.rb
CHANGED
data/sig/ffi/auto_pointer.rbs
CHANGED
@@ -13,7 +13,6 @@ module FFI
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def initialize: (Pointer pointer, Method | ^(self) -> void | Releaser::_Proc[self] callable) -> self
|
16
|
-
# | (Pointer pointer) { (self) -> void } -> self # https://github.com/ffi/ffi/issues/1071
|
17
16
|
| (Pointer pointer) -> self # where class < `def self.release: (instance pointer) -> void`
|
18
17
|
|
19
18
|
extend DataConverter[Pointer, instance, nil]
|
data/sig/ffi/library.rbs
CHANGED
@@ -33,7 +33,7 @@ module FFI
|
|
33
33
|
def find_type: (ffi_lib_type t) -> Type
|
34
34
|
def freeze: () -> void
|
35
35
|
def function_names: (_ToS name, Array[Type | singleton(Struct)] arg_types) -> Array[String]
|
36
|
-
def typedef: [T < Type] (T old, Symbol | DataConverter add, ?untyped) -> T
|
36
|
+
def typedef: [T < Type, N, R, C] (T old, Symbol | DataConverter[N, R, C] add, ?untyped) -> T
|
37
37
|
| (Symbol old, Symbol add, ?untyped) -> (Type | Enum)
|
38
38
|
| [X < DataConverter[N, R, C], N, R, C] (X old, Symbol add, ?untyped) -> Type::Mapped[X, N, R, C]
|
39
39
|
| (:enum old, Array[Symbol | Integer] add, ?untyped) -> Enum
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.17.
|
4
|
+
version: 1.17.2
|
5
5
|
platform: x86-linux-gnu
|
6
6
|
authors:
|
7
7
|
- Wayne Meissner
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-04-15 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: rake
|
@@ -87,6 +86,7 @@ files:
|
|
87
86
|
- lib/3.1/ffi_c.so
|
88
87
|
- lib/3.2/ffi_c.so
|
89
88
|
- lib/3.3/ffi_c.so
|
89
|
+
- lib/3.4/ffi_c.so
|
90
90
|
- lib/ffi.rb
|
91
91
|
- lib/ffi/abstract_memory.rb
|
92
92
|
- lib/ffi/autopointer.rb
|
@@ -214,7 +214,6 @@ metadata:
|
|
214
214
|
wiki_uri: https://github.com/ffi/ffi/wiki
|
215
215
|
source_code_uri: https://github.com/ffi/ffi/
|
216
216
|
mailing_list_uri: http://groups.google.com/group/ruby-ffi
|
217
|
-
post_install_message:
|
218
217
|
rdoc_options:
|
219
218
|
- "--exclude=ext/ffi_c/.*\\.o$"
|
220
219
|
- "--exclude=ffi_c\\.(bundle|so)$"
|
@@ -227,15 +226,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
227
226
|
version: '2.5'
|
228
227
|
- - "<"
|
229
228
|
- !ruby/object:Gem::Version
|
230
|
-
version: 3.
|
229
|
+
version: 3.5.dev
|
231
230
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
232
231
|
requirements:
|
233
232
|
- - ">="
|
234
233
|
- !ruby/object:Gem::Version
|
235
234
|
version: 3.3.22
|
236
235
|
requirements: []
|
237
|
-
rubygems_version: 3.
|
238
|
-
signing_key:
|
236
|
+
rubygems_version: 3.6.2
|
239
237
|
specification_version: 4
|
240
238
|
summary: Ruby FFI
|
241
239
|
test_files: []
|