concurrent-ruby-ext 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -12
- data/README.md +28 -38
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a3fcd667a249fe0c31cf68f31a244afb00d23cf
|
4
|
+
data.tar.gz: eab59071aec9ac8d786d244af901299bf6e05fb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 652553ef5f900a9cc55a9ab7a52b93e3372deb2f2f4935e73f41353df3c100ef94484dbf75321b612f208c45fb3fd98a70e2d12fad46a1ae752c6cbdc7f2475f
|
7
|
+
data.tar.gz: d39d0d407a1dc33320c3963f308f16473a949e3cec2d7b9879ae4378768655697a0ed596b05bab91a268ebbebdce7bd981078389fcd862433b01b32f3013e5eb
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## Current Release v1.0.4 (27 Dec 2016)
|
2
|
+
|
3
|
+
concurrent-ruby:
|
4
|
+
|
5
|
+
* Nothing
|
6
|
+
|
7
|
+
concurrent-ruby-edge:
|
8
|
+
|
9
|
+
* New promises' API renamed, lots of improvements, edge bumped to 0.3.0
|
10
|
+
* **Incompatible** with previous 0.2.3 version
|
11
|
+
* see https://github.com/ruby-concurrency/concurrent-ruby/pull/522
|
12
|
+
|
13
|
+
## Release v1.0.3 (17 Dec 2016)
|
14
|
+
|
1
15
|
* Trigger execution of flattened delayed futures
|
2
16
|
* Avoid forking for processor_count if possible
|
3
17
|
* Semaphore Mutex and JRuby parity
|
@@ -12,14 +26,14 @@
|
|
12
26
|
* Fixes format-security error when compiling ruby_193_compatible.h
|
13
27
|
* Concurrent::Atom#swap fixed: reraise the exceptions from block
|
14
28
|
|
15
|
-
##
|
29
|
+
## Release v1.0.2 (2 May 2016)
|
16
30
|
|
17
31
|
* Fix bug with `Concurrent::Map` MRI backend `#inspect` method
|
18
32
|
* Fix bug with `Concurrent::Map` MRI backend using `Hash#value?`
|
19
33
|
* Improved documentation and examples
|
20
34
|
* Minor updates to Edge
|
21
35
|
|
22
|
-
|
36
|
+
## Release v1.0.1 (27 February 2016)
|
23
37
|
|
24
38
|
* Fix "uninitialized constant Concurrent::ReentrantReadWriteLock" error.
|
25
39
|
* Better handling of `autoload` vs. `require`.
|
@@ -32,7 +46,7 @@
|
|
32
46
|
* Improved documentation.
|
33
47
|
* Updated README and CONTRIBUTING.
|
34
48
|
|
35
|
-
|
49
|
+
## Release v1.0.0 (13 November 2015)
|
36
50
|
|
37
51
|
* Rename `attr_volatile_with_cas` to `attr_atomic`
|
38
52
|
* Add `clear_each` to `LockFreeStack`
|
@@ -80,7 +94,7 @@
|
|
80
94
|
* Many improved tests
|
81
95
|
* Some internal reorganization
|
82
96
|
|
83
|
-
|
97
|
+
## Release v0.9.1 (09 August 2015)
|
84
98
|
|
85
99
|
* Fixed a Rubiniux bug in synchronization object
|
86
100
|
* Fixed all interpreter warnings (except circular references)
|
@@ -94,7 +108,7 @@
|
|
94
108
|
* `ThreadLocalVar#bind` method is now public
|
95
109
|
* Refactored many tests
|
96
110
|
|
97
|
-
|
111
|
+
## Release v0.9.0 (10 July 2015)
|
98
112
|
|
99
113
|
* Updated `AtomicReference`
|
100
114
|
- `AtomicReference#try_update` now simply returns instead of raising exception
|
@@ -193,14 +207,14 @@
|
|
193
207
|
* Removed brute-force killing of threads in tests
|
194
208
|
* Fixed a thread pool bug when the operating system cannot allocate more threads
|
195
209
|
|
196
|
-
|
210
|
+
## Release v0.8.0 (25 January 2015)
|
197
211
|
|
198
212
|
* C extension for MRI have been extracted into the `concurrent-ruby-ext` companion gem.
|
199
213
|
Please see the README for more detail.
|
200
214
|
* Better variable isolation in `Promise` and `Future` via an `:args` option
|
201
215
|
* Continued to update intermittently failing tests
|
202
216
|
|
203
|
-
|
217
|
+
## Release v0.7.2 (24 January 2015)
|
204
218
|
|
205
219
|
* New `Semaphore` class based on [java.util.concurrent.Semaphore](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore.html)
|
206
220
|
* New `Promise.all?` and `Promise.any?` class methods
|
@@ -217,7 +231,7 @@
|
|
217
231
|
* Tests now run on new Travis build environment
|
218
232
|
* Multiple documentation updates
|
219
233
|
|
220
|
-
|
234
|
+
## Release v0.7.1 (4 December 2014)
|
221
235
|
|
222
236
|
Please see the [roadmap](https://github.com/ruby-concurrency/concurrent-ruby/issues/142) for more information on the next planned release.
|
223
237
|
|
@@ -238,7 +252,7 @@ Please see the [roadmap](https://github.com/ruby-concurrency/concurrent-ruby/iss
|
|
238
252
|
* Removed confusing warning when not using native extenstions
|
239
253
|
* Improved documentation
|
240
254
|
|
241
|
-
|
255
|
+
## Release v0.7.0 (13 August 2014)
|
242
256
|
|
243
257
|
* Merge the [atomic](https://github.com/ruby-concurrency/atomic) gem
|
244
258
|
- Pure Ruby `MutexAtomic` atomic reference class
|
@@ -271,14 +285,14 @@ Please see the [roadmap](https://github.com/ruby-concurrency/concurrent-ruby/iss
|
|
271
285
|
* Removed deprecated `Actor` class
|
272
286
|
* Better support for Rubinius
|
273
287
|
|
274
|
-
|
288
|
+
## Release v0.6.1 (14 June 2014)
|
275
289
|
|
276
290
|
* Many improvements to `Concurrent::Actress`
|
277
291
|
* Bug fixes to `Concurrent::RubyThreadPoolExecutor`
|
278
292
|
* Fixed several brittle tests
|
279
293
|
* Moved documentation to http://ruby-concurrency.github.io/concurrent-ruby/frames.html
|
280
294
|
|
281
|
-
|
295
|
+
## Release v0.6.0 (25 May 2014)
|
282
296
|
|
283
297
|
* Added `Concurrent::Observable` to encapsulate our thread safe observer sets
|
284
298
|
* Improvements to new `Channel`
|
@@ -317,7 +331,7 @@ Please see the [roadmap](https://github.com/ruby-concurrency/concurrent-ruby/iss
|
|
317
331
|
* First implementation of [new, high-performance](https://github.com/ruby-concurrency/concurrent-ruby/pull/49) `Channel`
|
318
332
|
* `Actor` is deprecated in favor of new experimental actor implementation [#73](https://github.com/ruby-concurrency/concurrent-ruby/pull/73). To avoid namespace collision it is living in `Actress` namespace until `Actor` is removed in next release.
|
319
333
|
|
320
|
-
|
334
|
+
## Release v0.5.0
|
321
335
|
|
322
336
|
This is the most significant release of this gem since its inception. This release includes many improvements and optimizations. It also includes several bug fixes. The major areas of focus for this release were:
|
323
337
|
|
data/README.md
CHANGED
@@ -9,39 +9,28 @@
|
|
9
9
|
[![License](https://img.shields.io/badge/license-MIT-green.svg)](http://opensource.org/licenses/MIT)
|
10
10
|
[![Gitter chat](https://img.shields.io/badge/IRC%20(gitter)-devs%20%26%20users-brightgreen.svg)](https://gitter.im/ruby-concurrency/concurrent-ruby)
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
<li>Support features that make sense in Ruby</li>
|
35
|
-
<li>Exclude features that don't make sense in Ruby</li>
|
36
|
-
<li>Be small, lean, and loosely coupled</li>
|
37
|
-
</ul>
|
38
|
-
</p>
|
39
|
-
</td>
|
40
|
-
<td align="right" valign="top">
|
41
|
-
<img src="https://raw.githubusercontent.com/ruby-concurrency/concurrent-ruby/master/doc/logo/concurrent-ruby-logo-300x300.png"/>
|
42
|
-
</td>
|
43
|
-
</tr>
|
44
|
-
</table>
|
12
|
+
Modern concurrency tools for Ruby. Inspired by
|
13
|
+
[Erlang](http://www.erlang.org/doc/reference_manual/processes.html),
|
14
|
+
[Clojure](http://clojure.org/concurrent_programming),
|
15
|
+
[Scala](http://akka.io/),
|
16
|
+
[Haskell](http://www.haskell.org/haskellwiki/Applications_and_libraries/Concurrency_and_parallelism#Concurrent_Haskell),
|
17
|
+
[F#](http://blogs.msdn.com/b/dsyme/archive/2010/02/15/async-and-parallel-design-patterns-in-f-part-3-agents.aspx),
|
18
|
+
[C#](http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx),
|
19
|
+
[Java](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html),
|
20
|
+
and classic concurrency patterns.
|
21
|
+
|
22
|
+
<img src="https://raw.githubusercontent.com/ruby-concurrency/concurrent-ruby/master/doc/logo/concurrent-ruby-logo-300x300.png" align="right" style="margin-left: 20px;" />
|
23
|
+
|
24
|
+
The design goals of this gem are:
|
25
|
+
|
26
|
+
* Be an 'unopinionated' toolbox that provides useful utilities without debating which is better or why
|
27
|
+
* Remain free of external gem dependencies
|
28
|
+
* Stay true to the spirit of the languages providing inspiration
|
29
|
+
* But implement in a way that makes sense for Ruby
|
30
|
+
* Keep the semantics as idiomatic Ruby as possible
|
31
|
+
* Support features that make sense in Ruby
|
32
|
+
* Exclude features that don't make sense in Ruby
|
33
|
+
* Be small, lean, and loosely coupled
|
45
34
|
|
46
35
|
### Supported Ruby versions
|
47
36
|
|
@@ -127,13 +116,13 @@ These features are under active development and may change frequently. They are
|
|
127
116
|
keep backward compatibility (there may also lack tests and documentation). Semantic versions will
|
128
117
|
be obeyed though. Features developed in `concurrent-ruby-edge` are expected to move to `concurrent-ruby` when final.
|
129
118
|
|
130
|
-
* [
|
131
|
-
Implements the Actor Model, where concurrent actors exchange messages.
|
132
|
-
* [New Future Framework](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/FutureShortcuts.html):
|
119
|
+
* [Promises Framework](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promises.html):
|
133
120
|
Unified implementation of futures and promises which combines features of previous `Future`,
|
134
121
|
`Promise`, `IVar`, `Event`, `dataflow`, `Delay`, and `TimerTask` into a single framework. It extensively uses the
|
135
122
|
new synchronization layer to make all the features **non-blocking** and **lock-free**, with the exception of obviously blocking
|
136
123
|
operations like `#wait`, `#value`. It also offers better performance.
|
124
|
+
* [Actor](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Actor.html):
|
125
|
+
Implements the Actor Model, where concurrent actors exchange messages.
|
137
126
|
* [Channel](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/Channel.html):
|
138
127
|
Communicating Sequential Processes ([CSP](https://en.wikipedia.org/wiki/Communicating_sequential_processes)).
|
139
128
|
Functionally equivalent to Go [channels](https://tour.golang.org/concurrency/2) with additional
|
@@ -141,15 +130,16 @@ be obeyed though. Features developed in `concurrent-ruby-edge` are expected to m
|
|
141
130
|
* [LazyRegister](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/LazyRegister.html)
|
142
131
|
* [AtomicMarkableReference](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/AtomicMarkableReference.html)
|
143
132
|
* [LockFreeLinkedSet](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/LockFreeLinkedSet.html)
|
144
|
-
* [LockFreeStack](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/
|
133
|
+
* [LockFreeStack](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/LockFreeStack.html)
|
145
134
|
|
146
135
|
#### Statuses:
|
147
136
|
|
148
137
|
*Why are these not in core?*
|
149
138
|
|
139
|
+
- **Promises Framework** - They are being finalized to be able to be moved to core. They'll deprecate old
|
140
|
+
implementation.
|
150
141
|
- **Actor** - Partial documentation and tests; depends on new future/promise framework; stability is good.
|
151
142
|
- **Channel** - Brand new implementation; partial documentation and tests; stability is good.
|
152
|
-
- **Future/Promise Framework** - API changes; partial documentation and tests; stability is good.
|
153
143
|
- **LazyRegister** - Missing documentation and tests.
|
154
144
|
- **AtomicMarkableReference, LockFreeLinkedSet, LockFreeStack** - Need real world battle testing.
|
155
145
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: concurrent-ruby-ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jerry D'Antonio
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-12-
|
12
|
+
date: 2016-12-27 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.0.
|
20
|
+
version: 1.0.4
|
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.0.
|
27
|
+
version: 1.0.4
|
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.
|