ffi 1.17.0-x86-mingw32 → 1.17.1-x86-mingw32
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 +9 -0
- data/Gemfile +1 -1
- data/Rakefile +1 -1
- 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 +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34e19b0710dd81b5787c278beaffaaacd3d163b38fb5338e895435dcd7dcc299
|
4
|
+
data.tar.gz: 5f50429d12d036d3a5c9e6ebf99975be75c15af62b31d59c396741dd8c4a5fea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b2b52e76c951beb9aa4ed2fa6177253dc32ed6fa9ac05fe01bcc7ade4f14b944d3313888515de5f02e4158ae5ab736fd0a812a58149e984bbe4a1f9ce53ca61
|
7
|
+
data.tar.gz: b9784f564d4a9b86bbf9d34c556db096db808c9a82f1db8ea3df95ff75385a6c1c2b7d3b1aaafb616bd21d21f9ed4258e4be70a240019137c5047be5bd698514
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
1.17.1 / 2024-12-30
|
2
|
+
-------------------
|
3
|
+
|
4
|
+
Fixed:
|
5
|
+
* #1117 Restart async callback dispatcher thread after fork.
|
6
|
+
* #1133 Add ruby-3.4 native gem.
|
7
|
+
* #1134 Fix FFI::DataConverter non-generic usage in RBS files.
|
8
|
+
|
9
|
+
|
1
10
|
1.17.0 / 2024-06-02
|
2
11
|
-------------------
|
3
12
|
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -136,7 +136,7 @@ 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
141
|
rake native:#{plat} pkg/#{gem_spec.full_name}-#{plat}.gem MAKE='nice make -j`nproc`' RUBY_CC_VERSION=${RUBY_CC_VERSION/:2.4.0/}
|
142
142
|
EOT
|
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,14 @@
|
|
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.1
|
5
5
|
platform: x86-mingw32
|
6
6
|
authors:
|
7
7
|
- Wayne Meissner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -87,6 +87,7 @@ files:
|
|
87
87
|
- lib/3.1/ffi_c.so
|
88
88
|
- lib/3.2/ffi_c.so
|
89
89
|
- lib/3.3/ffi_c.so
|
90
|
+
- lib/3.4/ffi_c.so
|
90
91
|
- lib/ffi.rb
|
91
92
|
- lib/ffi/abstract_memory.rb
|
92
93
|
- lib/ffi/autopointer.rb
|
@@ -227,7 +228,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
227
228
|
version: '2.5'
|
228
229
|
- - "<"
|
229
230
|
- !ruby/object:Gem::Version
|
230
|
-
version: 3.
|
231
|
+
version: 3.5.dev
|
231
232
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
232
233
|
requirements:
|
233
234
|
- - ">="
|