concurrent-ruby-ext 1.1.10 → 1.2.1

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: bb05e4c0aa2f0661f905d668c065334f4a6e156f7464a1ddb053734f5389b685
4
- data.tar.gz: 0c02839137f7b3e3872e6ac4da05c33baf37e5da0bf7289aa4ca38c3e3ae67f1
3
+ metadata.gz: 1b00da90be05089eaecd0661742bb6b5027997d93fa13a16d5639371c26f41aa
4
+ data.tar.gz: 6a99bd2a8d5402ac161f29a339b981b5bae160ba0dfac3708b420027122368aa
5
5
  SHA512:
6
- metadata.gz: 5797ac3a2bc72fd92cb5d9b5183a23030dafbc429e96aa6de08e0b579a3de364abca9d21dc2ed614918aff3b46ec8afd61b3ab30545ee97c87999653f4c3e7f1
7
- data.tar.gz: 138085806a2b5f1b92039dccc7d1580a6bfaed6f7976472787fd5706eef5ba3fb7f235e1f9c3d1c796ad96a11e603f122c4bc142b1364f1166428f868a20a135
6
+ metadata.gz: 972e5c724bbeb9e5614ec530ece1713558d813c8cbcf1d31a99c057bc1de7ab7f771f617fa7b7b4f9595fed0b908acb77c8d4dc2addd5556fe5e5ad33cd4ba50
7
+ data.tar.gz: dbccdc86b49da7e169506a0e863e1882049e0971db7b3e89ac167b87cbe4437d4f152016fe9ec4067984191c6b22298c8cf71ba03bd8db25ef2acf4e53351aff
data/CHANGELOG.md CHANGED
@@ -1,6 +1,19 @@
1
1
  ## Current
2
2
 
3
- ## Release v1.1.10
3
+ * (#990) Add missing `require 'fiber'` for `FiberLocalVar`.
4
+ * (#989) Optimize `Concurrent::Map#[]` on CRuby by letting the backing Hash handle the `default_proc`.
5
+
6
+ ## Release v1.2.0 (23 Jan 2023)
7
+
8
+ * (#962) Fix ReentrantReadWriteLock to use the same granularity for locals as for Mutex it uses.
9
+ * (#983) Add FiberLocalVar
10
+ * (#934) concurrent-ruby now supports requiring individual classes (public classes listed in the docs), e.g., `require 'concurrent/map'`
11
+ * (#976) Let `Promises.any_fulfilled_future` take an `Event`
12
+ * Improve documentation of various classes
13
+ * (#975) Set the Ruby compatibility version at 2.3
14
+ * (#972) Remove Rubinius-related code
15
+
16
+ ## Release v1.1.10 (22 Mar 2022)
4
17
 
5
18
  concurrent-ruby:
6
19
 
data/README.md CHANGED
@@ -42,8 +42,8 @@ You can also get started by triaging issues which may include reproducing bug re
42
42
  ## Thread Safety
43
43
 
44
44
  *Concurrent Ruby makes one of the strongest thread safety guarantees of any Ruby concurrency
45
- library, providing consistent behavior and guarantees on all four of the main Ruby interpreters
46
- (MRI/CRuby, JRuby, Rubinius, TruffleRuby).*
45
+ library, providing consistent behavior and guarantees on all three main Ruby interpreters
46
+ (MRI/CRuby, JRuby, TruffleRuby).*
47
47
 
48
48
  Every abstraction in this library is thread safe. Specific thread safety guarantees are documented
49
49
  with each abstraction.
@@ -58,9 +58,9 @@ other Ruby library, many of which support the mantra of
58
58
  Concurrent Ruby is also the only Ruby library which provides a full suite of thread safe and
59
59
  immutable variable types and data structures.
60
60
 
61
- We've also initiated discussion to document [memory model](docs-source/synchronization.md) of Ruby which
62
- would provide consistent behaviour and guarantees on all four of the main Ruby interpreters
63
- (MRI/CRuby, JRuby, Rubinius, TruffleRuby).
61
+ We've also initiated discussion to document the [memory model](docs-source/synchronization.md) of Ruby which
62
+ would provide consistent behaviour and guarantees on all three main Ruby interpreters
63
+ (MRI/CRuby, JRuby, TruffleRuby).
64
64
 
65
65
  ## Features & Documentation
66
66
 
@@ -259,13 +259,10 @@ be obeyed though. Features developed in `concurrent-ruby-edge` are expected to m
259
259
 
260
260
  ## Supported Ruby versions
261
261
 
262
- * MRI 2.2 and above
262
+ * MRI 2.3 and above
263
263
  * Latest JRuby 9000
264
264
  * Latest TruffleRuby
265
265
 
266
- The legacy support for Rubinius is kept for the moment but it is no longer maintained and is liable to be removed. If you would like to help
267
- please respond to [#739](https://github.com/ruby-concurrency/concurrent-ruby/issues/739).
268
-
269
266
  ## Usage
270
267
 
271
268
  Everything within this gem can be loaded simply by requiring it:
@@ -274,7 +271,12 @@ Everything within this gem can be loaded simply by requiring it:
274
271
  require 'concurrent'
275
272
  ```
276
273
 
277
- *Requiring only specific abstractions from Concurrent Ruby is not yet supported.*
274
+ You can also require a specific abstraction [part of the public documentation](https://ruby-concurrency.github.io/concurrent-ruby/master/index.html) since concurrent-ruby 1.2.0, for example:
275
+ ```ruby
276
+ require 'concurrent/map'
277
+ require 'concurrent/atomic/atomic_reference'
278
+ require 'concurrent/executor/fixed_thread_pool'
279
+ ```
278
280
 
279
281
  To use the tools in the Edge gem it must be required separately:
280
282
 
@@ -362,20 +364,18 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
362
364
 
363
365
  * Update `version.rb`
364
366
  * Update the CHANGELOG
365
- * Update the Yard documentation
366
- - Add the new version to `docs-source/signpost.md`. Needs to be done only if there are visible changes in the
367
- documentation.
368
- - Run `bundle exec rake yard` to update the master documentation and signpost.
369
- - Run `bundle exec rake yard:<new-version>` to add or update the documentation of the new version.
367
+ * Add the new version to `docs-source/signpost.md`. Needs to be done only if there are visible changes in the documentation.
370
368
  * Commit (and push) the changes.
371
- * Use `be rake release` to release the gem. It consists
372
- of `['release:checks', 'release:build', 'release:test', 'release:publish']` steps. It will ask at the end before
373
- publishing anything. Steps can also be executed individually.
369
+ * Use `bundle exec rake release` to release the gem.
370
+ It consists of `['release:checks', 'release:build', 'release:test', 'release:publish']` steps.
371
+ It will ask at the end before publishing anything. Steps can also be executed individually.
374
372
 
375
373
  ## Maintainers
376
374
 
377
- * [Chris Seaton](https://github.com/chrisseaton) — Lead maintainer, point-of-contact.
378
- * [Benoit Daloze](https://github.com/eregon) — If Chris is not available Benoit can help.
375
+ * [Benoit Daloze](https://github.com/eregon)
376
+ * [Matthew Draper](https://github.com/matthewd)
377
+ * [Rafael França](https://github.com/rafaelfranca)
378
+ * [Samuel Williams](https://github.com/ioquatix)
379
379
 
380
380
  ### Special Thanks to
381
381
 
@@ -386,6 +386,7 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
386
386
 
387
387
  to the past maintainers
388
388
 
389
+ * [Chris Seaton](https://github.com/chrisseaton)
389
390
  * [Petr Chalupa](https://github.com/pitr-ch)
390
391
  * [Michele Della Torre](https://github.com/mighe)
391
392
  * [Paweł Obrok](https://github.com/obrok)
@@ -8,7 +8,7 @@ void atomic_boolean_mark(void *value) {
8
8
  }
9
9
 
10
10
  VALUE atomic_boolean_allocate(VALUE klass) {
11
- return rb_data_object_alloc(klass, (void *) Qfalse, atomic_boolean_mark, NULL);
11
+ return rb_data_object_wrap(klass, (void *) Qfalse, atomic_boolean_mark, NULL);
12
12
  }
13
13
 
14
14
  VALUE method_atomic_boolean_initialize(int argc, VALUE* argv, VALUE self) {
@@ -8,7 +8,7 @@ void atomic_fixnum_mark(void *value) {
8
8
  }
9
9
 
10
10
  VALUE atomic_fixnum_allocate(VALUE klass) {
11
- return rb_data_object_alloc(klass, (void *) Qnil, atomic_fixnum_mark, NULL);
11
+ return rb_data_object_wrap(klass, (void *) Qnil, atomic_fixnum_mark, NULL);
12
12
  }
13
13
 
14
14
  VALUE method_atomic_fixnum_initialize(int argc, VALUE* argv, VALUE self) {
@@ -44,7 +44,7 @@ void ir_mark(void *value) {
44
44
  }
45
45
 
46
46
  VALUE ir_alloc(VALUE klass) {
47
- return rb_data_object_alloc(klass, (void *) Qnil, ir_mark, NULL);
47
+ return rb_data_object_wrap(klass, (void *) Qnil, ir_mark, NULL);
48
48
  }
49
49
 
50
50
  VALUE ir_initialize(int argc, VALUE* argv, VALUE self) {
@@ -78,7 +78,7 @@ VALUE ir_get_and_set(VALUE self, VALUE new_value) {
78
78
  }
79
79
 
80
80
  VALUE ir_compare_and_set(volatile VALUE self, VALUE expect_value, VALUE new_value) {
81
- #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
81
+ #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
82
82
  if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) {
83
83
  return Qtrue;
84
84
  }
@@ -1,8 +1,13 @@
1
1
  require 'fileutils'
2
+ require 'mkmf'
3
+
4
+ unless RUBY_ENGINE == "ruby"
5
+ File.write("Makefile", dummy_makefile($srcdir).join(""))
6
+ exit
7
+ end
2
8
 
3
9
  extension_name = 'concurrent_ruby_ext'
4
10
 
5
- require 'mkmf'
6
11
  dir_config(extension_name)
7
12
  have_header "libkern/OSAtomic.h"
8
13
 
@@ -13,7 +13,7 @@ static VALUE rb_cAtomicFixnum;
13
13
 
14
14
  // Init_extension
15
15
 
16
- void Init_concurrent_ruby_ext() {
16
+ void Init_concurrent_ruby_ext(void) {
17
17
 
18
18
  // define modules and classes
19
19
  rb_mConcurrent = rb_define_module("Concurrent");
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concurrent-ruby-ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.10
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry D'Antonio
8
8
  - The Ruby Concurrency Team
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-03-21 00:00:00.000000000 Z
12
+ date: 2023-02-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: concurrent-ruby
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: 1.1.10
20
+ version: 1.2.1
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: 1.1.10
27
+ version: 1.2.1
28
28
  description: |2
29
29
  C extensions to optimize the concurrent-ruby gem when running under MRI.
30
30
  Please see http://concurrent-ruby.com for more information.
@@ -52,7 +52,7 @@ homepage: http://www.concurrent-ruby.com
52
52
  licenses:
53
53
  - MIT
54
54
  metadata: {}
55
- post_install_message:
55
+ post_install_message:
56
56
  rdoc_options: []
57
57
  require_paths:
58
58
  - lib
@@ -60,15 +60,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: '2.2'
63
+ version: '2.3'
64
64
  required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  requirements: []
70
- rubygems_version: 3.3.4
71
- signing_key:
70
+ rubygems_version: 3.3.26
71
+ signing_key:
72
72
  specification_version: 4
73
73
  summary: C extensions to optimize concurrent-ruby under MRI.
74
74
  test_files: []