concurrent-ruby-ext 1.3.5-x86-mingw32 → 1.3.7-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73ae3b69a7ec0627d8dfdbbef9c473e144ee1991b9d241210c2d9e39991ec1fe
4
- data.tar.gz: d8c7b076de8fa28a41629f37a359e909ee22cbb1ecfb9033a01f5a7f211bd05c
3
+ metadata.gz: ae2c1b55cd06a79a3554876af285237a00e056f1ac7c9f7ce83534d936cffc77
4
+ data.tar.gz: d74785e9341ee32d5816c6248e134e9362b91aa1879b0ce6a7585118669e16e7
5
5
  SHA512:
6
- metadata.gz: 5af57a2c111d645c6c836c2479dad9fcbf807470dafaa5bfc515f99f5c80d8af0ad52ef138a282e5827106deb6caa8b05f43619748b0da344df982367ab9a244
7
- data.tar.gz: 32d4fa3fd278eef2031ddd9332ae692559cf037d458353ea6f148b099582400aaf04e4cc708123c3defc5b0eb9707ca985cd2e9427b4c6420aed26647a26a5c9
6
+ metadata.gz: 10c34a34a6c141d27ea87ae805e93f4c46fc00f0e14d969a793ff55fa6952fc3d19e67ecc3cf2dc21595082e3f7cd7f54e1d9f484df2f34743bc5628665ea65f
7
+ data.tar.gz: a9c09cda9da7d64d01d7c459a24c5cb33b5ecff1ec085dbd6c47723a4aef3b44a42e95e110eb6f3b9ed281e2624e73476f0f990e5c69e43b62fc56b289285038
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  ## Current
2
2
 
3
+ ## Release v1.3.7 (16 June 2026)
4
+
5
+ concurrent-ruby:
6
+
7
+ * See the [release notes on GitHub](https://github.com/ruby-concurrency/concurrent-ruby/releases/tag/v1.3.7).
8
+
9
+ ## Release v1.3.6 (13 December 2025)
10
+
11
+ concurrent-ruby:
12
+
13
+ * See the [release notes on GitHub](https://github.com/ruby-concurrency/concurrent-ruby/releases/tag/v1.3.6).
14
+
3
15
  ## Release v1.3.5, edge v0.7.2 (15 January 2025)
4
16
 
5
17
  concurrent-ruby:
data/README.md CHANGED
@@ -207,7 +207,7 @@ Deprecated features are still available and bugs are being fixed, but new featur
207
207
  These are available in the `concurrent-ruby-edge` companion gem.
208
208
 
209
209
  These features are under active development and may change frequently. They are expected not to
210
- keep backward compatibility (there may also lack tests and documentation). Semantic versions will
210
+ keep backward compatibility (they may also lack tests and documentation). Semantic versions will
211
211
  be obeyed though. Features developed in `concurrent-ruby-edge` are expected to move to
212
212
  `concurrent-ruby` when final.
213
213
 
@@ -358,7 +358,8 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
358
358
  * Recent CRuby
359
359
  * JRuby, `rbenv install jruby-9.2.17.0`
360
360
  * Set env variable `CONCURRENT_JRUBY_HOME` to point to it, e.g. `/usr/local/opt/rbenv/versions/jruby-9.2.17.0`
361
- * Install Docker, required for Windows builds
361
+ * Install Docker or Podman, required for Windows builds
362
+ * If `bundle config get path` is set, use `bundle config set --local path.system true` otherwise the `gem name, path: '.'` gems won't be found (Bundler limitation).
362
363
 
363
364
  ### Publishing the Gem
364
365
 
@@ -378,6 +379,7 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
378
379
  * [Charles Oliver Nutter](https://github.com/headius)
379
380
  * [Ben Sheldon](https://github.com/bensheldon)
380
381
  * [Samuel Williams](https://github.com/ioquatix)
382
+ * [Joshua Young](https://github.com/joshuay03)
381
383
 
382
384
  ### Special Thanks to
383
385
 
@@ -7,8 +7,16 @@ void atomic_boolean_mark(void *value) {
7
7
  rb_gc_mark_maybe((VALUE) value);
8
8
  }
9
9
 
10
+ const rb_data_type_t atomic_boolean_type = {
11
+ "Concurrent::CAtomicBoolean",
12
+ {
13
+ atomic_boolean_mark,
14
+ RUBY_NEVER_FREE,
15
+ },
16
+ };
17
+
10
18
  VALUE atomic_boolean_allocate(VALUE klass) {
11
- return rb_data_object_wrap(klass, (void *) Qfalse, atomic_boolean_mark, NULL);
19
+ return rb_data_typed_object_wrap(klass, (void *) Qfalse, &atomic_boolean_type);
12
20
  }
13
21
 
14
22
  VALUE method_atomic_boolean_initialize(int argc, VALUE* argv, VALUE self) {
@@ -7,8 +7,16 @@ void atomic_fixnum_mark(void *value) {
7
7
  rb_gc_mark_maybe((VALUE) value);
8
8
  }
9
9
 
10
+ const rb_data_type_t atomic_fixnum_type = {
11
+ "Concurrent::CAtomicFixnum",
12
+ {
13
+ atomic_fixnum_mark,
14
+ RUBY_NEVER_FREE,
15
+ },
16
+ };
17
+
10
18
  VALUE atomic_fixnum_allocate(VALUE klass) {
11
- return rb_data_object_wrap(klass, (void *) Qnil, atomic_fixnum_mark, NULL);
19
+ return rb_data_typed_object_wrap(klass, (void *) Qnil, &atomic_fixnum_type);
12
20
  }
13
21
 
14
22
  VALUE method_atomic_fixnum_initialize(int argc, VALUE* argv, VALUE self) {
@@ -43,8 +43,16 @@ void ir_mark(void *value) {
43
43
  rb_gc_mark_maybe((VALUE) value);
44
44
  }
45
45
 
46
+ const rb_data_type_t ir_type = {
47
+ "Concurrent::CAtomicReference",
48
+ {
49
+ ir_mark,
50
+ RUBY_NEVER_FREE,
51
+ },
52
+ };
53
+
46
54
  VALUE ir_alloc(VALUE klass) {
47
- return rb_data_object_wrap(klass, (void *) Qnil, ir_mark, NULL);
55
+ return rb_data_typed_object_wrap(klass, (void *) Qnil, &ir_type);
48
56
  }
49
57
 
50
58
  VALUE ir_initialize(int argc, VALUE* argv, VALUE self) {
@@ -78,10 +86,20 @@ VALUE ir_get_and_set(VALUE self, VALUE new_value) {
78
86
  }
79
87
 
80
88
  VALUE ir_compare_and_set(volatile VALUE self, VALUE expect_value, VALUE new_value) {
81
- #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
89
+ #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101200
90
+ if (atomic_compare_exchange_strong_explicit((_Atomic uintptr_t *)&DATA_PTR(self), &expect_value, new_value, memory_order_seq_cst, memory_order_seq_cst)) {
91
+ return Qtrue;
92
+ }
93
+ #elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
94
+ #if defined(__i386__) || defined(__ppc__)
95
+ if (OSAtomicCompareAndSwap32((int32_t) expect_value, (int32_t) new_value, (int32_t*) &DATA_PTR(self))) {
96
+ return Qtrue;
97
+ }
98
+ #else
82
99
  if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) {
83
100
  return Qtrue;
84
101
  }
102
+ #endif
85
103
  #elif defined(__sun)
86
104
  /* Assuming VALUE is uintptr_t */
87
105
  /* Based on the definition of uintptr_t from /usr/include/sys/int_types.h */
@@ -5,6 +5,9 @@
5
5
  #include <atomic.h>
6
6
  #endif
7
7
 
8
+ #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101200
9
+ #include <stdatomic.h>
10
+ #endif
8
11
  #ifdef HAVE_LIBKERN_OSATOMIC_H
9
12
  #include <libkern/OSAtomic.h>
10
13
  #endif
@@ -27,7 +27,7 @@ void Init_concurrent_ruby_ext(void) {
27
27
  rb_define_method(rb_cAtomicReference, "get", ir_get, 0);
28
28
  rb_define_method(rb_cAtomicReference, "set", ir_set, 1);
29
29
  rb_define_method(rb_cAtomicReference, "get_and_set", ir_get_and_set, 1);
30
- rb_define_method(rb_cAtomicReference, "_compare_and_set", ir_compare_and_set, 2);
30
+ rb_define_private_method(rb_cAtomicReference, "_compare_and_set", ir_compare_and_set, 2);
31
31
  rb_define_alias(rb_cAtomicReference, "value", "get");
32
32
  rb_define_alias(rb_cAtomicReference, "value=", "set");
33
33
  rb_define_alias(rb_cAtomicReference, "swap", "get_and_set");
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concurrent-ruby-ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.5
4
+ version: 1.3.7
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Jerry D'Antonio
8
8
  - The Ruby Concurrency Team
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2025-01-15 00:00:00.000000000 Z
11
+ date: 2026-06-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: concurrent-ruby
@@ -17,14 +16,14 @@ dependencies:
17
16
  requirements:
18
17
  - - '='
19
18
  - !ruby/object:Gem::Version
20
- version: 1.3.5
19
+ version: 1.3.7
21
20
  type: :runtime
22
21
  prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
24
  - - '='
26
25
  - !ruby/object:Gem::Version
27
- version: 1.3.5
26
+ version: 1.3.7
28
27
  description: |2
29
28
  C extensions to optimize the concurrent-ruby gem when running under MRI.
30
29
  Please see http://concurrent-ruby.com for more information.
@@ -32,9 +31,9 @@ email: concurrent-ruby@googlegroups.com
32
31
  executables: []
33
32
  extensions: []
34
33
  extra_rdoc_files:
35
- - README.md
36
- - LICENSE.txt
37
34
  - CHANGELOG.md
35
+ - LICENSE.txt
36
+ - README.md
38
37
  files:
39
38
  - CHANGELOG.md
40
39
  - LICENSE.txt
@@ -47,19 +46,15 @@ files:
47
46
  - ext/concurrent-ruby-ext/atomic_reference.h
48
47
  - ext/concurrent-ruby-ext/extconf.rb
49
48
  - ext/concurrent-ruby-ext/rb_concurrent.c
50
- - lib/concurrent-ruby/concurrent/2.4/concurrent_ruby_ext.so
51
- - lib/concurrent-ruby/concurrent/2.5/concurrent_ruby_ext.so
52
- - lib/concurrent-ruby/concurrent/2.6/concurrent_ruby_ext.so
53
- - lib/concurrent-ruby/concurrent/2.7/concurrent_ruby_ext.so
54
49
  - lib/concurrent-ruby/concurrent/3.0/concurrent_ruby_ext.so
55
50
  - lib/concurrent-ruby/concurrent/3.1/concurrent_ruby_ext.so
56
51
  - lib/concurrent-ruby/concurrent/3.2/concurrent_ruby_ext.so
57
52
  - lib/concurrent-ruby/concurrent/3.3/concurrent_ruby_ext.so
53
+ - lib/concurrent-ruby/concurrent/3.4/concurrent_ruby_ext.so
58
54
  homepage: http://www.concurrent-ruby.com
59
55
  licenses:
60
56
  - MIT
61
57
  metadata: {}
62
- post_install_message:
63
58
  rdoc_options: []
64
59
  require_paths:
65
60
  - lib
@@ -67,18 +62,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
67
62
  requirements:
68
63
  - - ">="
69
64
  - !ruby/object:Gem::Version
70
- version: '2.4'
65
+ version: '3.0'
71
66
  - - "<"
72
67
  - !ruby/object:Gem::Version
73
- version: 3.4.dev
68
+ version: 3.5.dev
74
69
  required_rubygems_version: !ruby/object:Gem::Requirement
75
70
  requirements:
76
71
  - - ">="
77
72
  - !ruby/object:Gem::Version
78
73
  version: '0'
79
74
  requirements: []
80
- rubygems_version: 3.3.26
81
- signing_key:
75
+ rubygems_version: 4.0.6
82
76
  specification_version: 4
83
77
  summary: C extensions to optimize concurrent-ruby under MRI.
84
78
  test_files: []