ffi 1.17.0-x86_64-linux-musl → 1.17.2-x86_64-linux-musl

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e04f1b2de5b70e4856a34bde4abd5de5436dcd1c6a1691f79e4d6dd143c4e0c9
4
- data.tar.gz: f1ee67e73f205ade30189222b26372c8e96885346c7dee4b60e933a03c0a19ad
3
+ metadata.gz: ee3adac5e371f2647cce2837cd6494bdbebd8cf3e44d4d2de95adecbd200e6ee
4
+ data.tar.gz: 85b3200291cca0e0548e73ee61cabb1e986aff8ff36de372b81a1d5531760f2d
5
5
  SHA512:
6
- metadata.gz: 19304480328311e0eeec29e387066cdfbe33b692e0207766b701e4b3a95a95b6d963f97b5ac2f8730567e2a7026f380f9e4d7bfc8f079551046bea3f96630000
7
- data.tar.gz: 57c1036784247c899a5f0f5286f6ca620cf9f019a46fb71f3898ef385edfc29b2e484e86e1e04061bdce001500d9339eb56b5c2c085f5501990266bbefd20ab5
6
+ metadata.gz: 84c1c2f42915074dd262b28a189bc975cc1728a875c1c8ea83f72ddd78f34b01b38e362935b45e473d01c5455523ef4f9e37e28ce9fd73a2348d7f71df2c638d
7
+ data.tar.gz: e680acd6ee0aea752a2a1273dd166efe45e37ed82abb6f35f920f600aca3def9c9b9572ac4bfd62d1441d632a51026ad9f3763503048c3169faa23647299b7ac
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.pre'
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
- #{ "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
- rake native:#{plat} pkg/#{gem_spec.full_name}-#{plat}.gem MAKE='nice make -j`nproc`' RUBY_CC_VERSION=${RUBY_CC_VERSION/:2.4.0/}
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
@@ -1,3 +1,3 @@
1
1
  module FFI
2
- VERSION = '1.17.0'
2
+ VERSION = '1.17.2'
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,13 @@
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.2
5
5
  platform: x86_64-linux-musl
6
6
  authors:
7
7
  - Wayne Meissner
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-06-02 00:00:00.000000000 Z
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.4.dev
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.3.26
238
- signing_key:
236
+ rubygems_version: 3.6.2
239
237
  specification_version: 4
240
238
  summary: Ruby FFI
241
239
  test_files: []