ffi 1.17.0-x86_64-linux-musl → 1.17.1-x86_64-linux-musl

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e04f1b2de5b70e4856a34bde4abd5de5436dcd1c6a1691f79e4d6dd143c4e0c9
4
- data.tar.gz: f1ee67e73f205ade30189222b26372c8e96885346c7dee4b60e933a03c0a19ad
3
+ metadata.gz: 776a58836ea95eade74fc40df17a9e5f8b4c29d90dd3305f1b94be5155477da8
4
+ data.tar.gz: 965da82dc748672d4d11b2aed578aa089562b4627653e42333bc7ebe05782d93
5
5
  SHA512:
6
- metadata.gz: 19304480328311e0eeec29e387066cdfbe33b692e0207766b701e4b3a95a95b6d963f97b5ac2f8730567e2a7026f380f9e4d7bfc8f079551046bea3f96630000
7
- data.tar.gz: 57c1036784247c899a5f0f5286f6ca620cf9f019a46fb71f3898ef385edfc29b2e484e86e1e04061bdce001500d9339eb56b5c2c085f5501990266bbefd20ab5
6
+ metadata.gz: 22eeca1faf4d658c271c89c8b0f3b3b0bf0811a3acf5af26434510b7c99d7300121c6aade82b67aba8ba2806cb6e161df27b946319c959fbffb51b5038a4c3ea
7
+ data.tar.gz: c2a2b088f01303fa7ba2ce0bac2e486a20477c6e58b82f0c92250602a44522c875bb0d8d3832ea185fffd92e97fe34ab535b037ff4cefb5767a52ebcc1fa41c8
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
@@ -5,7 +5,7 @@ group :development do
5
5
  gem 'bundler', '>= 1.16', '< 3'
6
6
  gem 'rake', '~> 13.0'
7
7
  gem 'rake-compiler', '~> 1.1'
8
- gem 'rake-compiler-dock', '~> 1.0.pre'
8
+ gem 'rake-compiler-dock', '~> 1.7.0'
9
9
  gem 'rspec', '~> 3.0'
10
10
  end
11
11
 
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
- #{ "sudo apt-get update && sudo apt-get install -y libltdl-dev &&" if plat !~ /linux/ }
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
@@ -1,3 +1,3 @@
1
1
  module FFI
2
- VERSION = '1.17.0'
2
+ VERSION = '1.17.1'
3
3
  end
@@ -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.0
4
+ version: 1.17.1
5
5
  platform: x86_64-linux-musl
6
6
  authors:
7
7
  - Wayne Meissner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-02 00:00:00.000000000 Z
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.4.dev
231
+ version: 3.5.dev
231
232
  required_rubygems_version: !ruby/object:Gem::Requirement
232
233
  requirements:
233
234
  - - ">="