concurrent-ruby-ext 1.0.0.pre1-x64-mingw32 → 1.0.0.pre2-x64-mingw32

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
  SHA1:
3
- metadata.gz: e3f98b24f2f54b303db8b0786c17bacdbf354128
4
- data.tar.gz: c382e502fff37f2f73131dc314d08693a64b7722
3
+ metadata.gz: f399a4578591c98f870c437d8cf0e72a366d40f2
4
+ data.tar.gz: 8dfa1fa0ac51092edce644fdce7bf17679fe436d
5
5
  SHA512:
6
- metadata.gz: 69de2c7f7e8b19be79d70885aaa79f28fb2d6ba66f83912c0e982efc1dec74462edefd1adb64634a0b94fd0cc63c3d5ffbbd8f321ea87c007901f672744a66b4
7
- data.tar.gz: bb18f390443ff3c78e87cbe2d7c6197d22256a953398107ee4c3893ae3bbbb7e7b0097be9dd129497bd284c325c2d8511f9af030109697420b10e6682dd872bd
6
+ metadata.gz: bf56b5828dc40a09d44402d5c127aafe839c82d3209fde07545b5daf9b258190ae75d778b7a9571f25e8eb63c0414fd09543e0b240f20fb520b554d2bed9cbdc
7
+ data.tar.gz: 70a702c9b5e36395a0c81290f7d94d2728e910a5366a2eaf661110ef1d4e4de30a97d2bef77c1f8e8f7701050e4a84e864610de74de7111c577b5ca1c239bf2e
data/CHANGELOG.md CHANGED
@@ -1,4 +1,17 @@
1
- ## Current Release v1.0.0.pre1 (19 Aug 2015)
1
+ ## Current Release v1.0.0.pre2 (19 September 2015)
2
+
3
+ * Simplification of `RubySingleThreadExecutor`
4
+ * `Async` improvements
5
+ - Each object uses its own `SingleThreadExecutor` instead of the global thread pool.
6
+ - No longers supports executor injection
7
+ - Much better documentation
8
+ * `Atom` updates
9
+ - No longer `Dereferenceable`
10
+ - Now `Observable`
11
+ - Added a `#reset` method
12
+ * Brand new `Agent` API and implementation. Now functionally equivalent to Clojure.
13
+
14
+ ### Current Release v1.0.0.pre1 (19 August 2015)
2
15
 
3
16
  * Merged in the `thread_safe` gem
4
17
  - `Concurrent::Array`
data/README.md CHANGED
@@ -61,7 +61,7 @@ This library contains a variety of concurrency abstractions at high and low leve
61
61
 
62
62
  #### General-purpose Concurrency Abstractions
63
63
 
64
- * [Async](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Async.html): A mixin module that provides simple asynchronous behavior to any standard class/object or object.
64
+ * [Async](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Async.html): A mixin module that provides simple asynchronous behavior to a class. Loosely based on Erlang's [gen_server](http://www.erlang.org/doc/man/gen_server.html).
65
65
  * [Future](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Future.html): An asynchronous operation that produces a value.
66
66
  * [Dataflow](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent.html#dataflow-class_method): Built on Futures, Dataflow allows you to create a task that will be scheduled when all of its data dependencies are available.
67
67
  * [Promise](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promise.html): Similar to Futures, with more features.
@@ -79,11 +79,9 @@ Collection classes that were originally part of the (deprecated) `thread_safe` g
79
79
 
80
80
  Value objects inspired by other languages:
81
81
 
82
- * [Atom](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Atom.html): A way to manage shared, synchronous, independent state.
83
82
  * [Maybe](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Maybe.html) A thread-safe, immutable object representing an optional value, based on
84
83
  [Haskell Data.Maybe](https://hackage.haskell.org/package/base-4.2.0.1/docs/Data-Maybe.html).
85
- * [Delay](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Delay.html) Lazy evaluation of a block yielding an immutable result. Based on Clojure's
86
- [delay](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Delay.html).
84
+ * [Delay](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Delay.html) Lazy evaluation of a block yielding an immutable result. Based on Clojure's [delay](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Delay.html).
87
85
 
88
86
  Structure classes derived from Ruby's [Struct](http://ruby-doc.org/core-2.2.0/Struct.html):
89
87
 
@@ -93,10 +91,15 @@ Structure classes derived from Ruby's [Struct](http://ruby-doc.org/core-2.2.0/St
93
91
 
94
92
  Thread-safe variables:
95
93
 
94
+ * [Agent](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Agent.html): A way to manage shared, mutable, *asynchronous*, independent, state. Based on Clojure's [Agent](http://clojure.org/agents).
95
+ * [Atom](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Atom.html): A way to manage shared, mutable, *synchronous*, independent state. Based on Clojure's [Atom](http://clojure.org/atoms).
96
96
  * [AtomicBoolean](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/AtomicBoolean.html) A boolean value that can be updated atomically.
97
97
  * [AtomicFixnum](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/AtomicFixnum.html) A numeric value that can be updated atomically.
98
98
  * [AtomicReference](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MutexAtomic.html) An object reference that may be updated atomically.
99
+ * [Exchanger](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Exchanger.html) A synchronization point at which threads can pair and swap elements within pairs. Based on Java's [Exchanger](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Exchanger.html).
100
+ * [MVar](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MVar.html) A synchronized single element container. Based on Haskell's [MVar](https://hackage.haskell.org/package/base-4.8.1.0/docs/Control-Concurrent-MVar.html) and Scala's [MVar](http://docs.typelevel.org/api/scalaz/nightly/index.html#scalaz.concurrent.MVar$).
99
101
  * [ThreadLocalVar](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ThreadLocalVar.html) A variable where the value is different for each thread.
102
+ * [TVar](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/TVar.html) A transactional variable implementing software transactional memory (STM). Based on Clojure's [Ref](http://clojure.org/refs).
100
103
 
101
104
  #### Java-inspired ThreadPools and Other Executors
102
105
 
@@ -104,16 +107,13 @@ Thread-safe variables:
104
107
 
105
108
  #### Thread Synchronization Classes and Algorithms
106
109
 
107
- * [CountdownLatch](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/CountDownLatch.html) A synchronization object that allows one thread to wait on multiple other threads.
110
+ * [CountDownLatch](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/CountDownLatch.html) A synchronization object that allows one thread to wait on multiple other threads.
108
111
  * [CyclicBarrier](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/CyclicBarrier.html) A synchronization aid that allows a set of threads to all wait for each other to reach a common barrier point.
109
112
  * [Event](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Event.html) Old school kernel-style event.
110
- * [Exchanger](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Exchanger.html)
111
- * [I-Structure](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/IVar.html) (IVar) Similar to a "future" but can be manually assigned once, after which it becomes immutable.
112
- * [M-Structure](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MVar.html) (MVar) A synchronized single element container.
113
+ * [IVar](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/IVar.html) Similar to a "future" but can be manually assigned once, after which it becomes immutable.
113
114
  * [ReadWriteLock](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ReadWriteLock.html) A lock that supports multiple readers but only one writer.
114
115
  * [ReentrantReadWriteLock](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ReentrantReadWriteLock.html) A read/write lock with reentrant and upgrade features.
115
116
  * [Semaphore](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Semaphore.html) A counting-based locking mechanism that uses permits.
116
- * [Software transactional memory](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/TVar.html) (TVar) A transactional variable - a single-element container that is used as part of a transaction.
117
117
 
118
118
  ### Edge Features
119
119
 
@@ -125,12 +125,11 @@ be obeyed though. Features developed in `concurrent-ruby-edge` are expected to m
125
125
 
126
126
  * [Actor](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Actor.html):
127
127
  Implements the Actor Model, where concurrent actors exchange messages.
128
- * [new Future Framework](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/FutureShortcuts.html) - new
129
- unified implementation of Futures and Promises which combines Features of previous `Future`,
130
- `Promise`, `IVar`, `Event`, `Probe`, `dataflow`, `Delay`, `TimerTask` into single framework. It uses extensively
131
- new synchronization layer to make all the features **non-blocking** and **lock-free** with exception of obviously blocking
128
+ * [New Future Framework](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/FutureShortcuts.html):
129
+ Unified implementation of futures and promises which combines features of previous `Future`,
130
+ `Promise`, `IVar`, `Event`, `dataflow`, `Delay`, and `TimerTask` into a single framework. It extensively uses the
131
+ new synchronization layer to make all the features **non-blocking** and **lock-free**, with the exception of obviously blocking
132
132
  operations like `#wait`, `#value`. It also offers better performance.
133
- * [Agent](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Agent.html): A single atomic value that represents an identity.
134
133
  * [Channel](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Channel.html):
135
134
  Communicating Sequential Processes (CSP).
136
135
  * [LazyRegister](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/LazyRegister.html)
@@ -142,12 +141,11 @@ be obeyed though. Features developed in `concurrent-ruby-edge` are expected to m
142
141
 
143
142
  *Why are these not in core?*
144
143
 
145
- - **Actor** - Partial documentation and tests; stability is good.
144
+ - **Actor** - Partial documentation and tests; depends on new future/promise framework; stability is good.
146
145
  - **Future/Promise Framework** - API changes; partial documentation and tests; stability good.
147
- - **Agent** - Incomplete behaviour compared to Clojure's models; stability good.
148
- - **Channel** - Missing documentation; limted features; stability good.
146
+ - **Channel** - Missing documentation; limited features; stability good.
149
147
  - **LazyRegister** - Missing documentation and tests.
150
- - **AtomicMarkableReference, LockFreeLinkedSet, LockFreeStack** - Needs real world battle testing
148
+ - **AtomicMarkableReference, LockFreeLinkedSet, LockFreeStack** - Need real world battle testing
151
149
 
152
150
  ## Usage
153
151
 
Binary file
Binary file
Binary file
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.0.pre1
4
+ version: 1.0.0.pre2
5
5
  platform: x64-mingw32
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: 2015-08-19 00:00:00.000000000 Z
12
+ date: 2015-09-19 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.0.pre1
20
+ version: 1.0.0.pre2
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.0.pre1
27
+ version: 1.0.0.pre2
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.