Releases: ruby-concurrency/concurrent-ruby
v0.9.0
Our biggest release to date. Too many changes to list here. Please see the CHANGELOG for more details. The most important changes are:
- Deprecation of many APIs that will not be in the 1.0 release
- Creation of an Edge gem where all new and potentially unstable abstractions can be initially released
- Moving of several abstractions/classes into Edge
- Creation of many new abstractions/classes
- Many, many bug fixes and performance optimizations
- Improved tests
- Improved build process
v0.9.0.pre3
Finalizing API and Yardoc. We plan mostly bug/test fixes between now and the full release of 0.9.0.
v0.9.0.pre2
Finalizing API and Yardoc. We plan mostly bug/test fixes between now and the full release of 0.9.0.
v0.9.0.pre1
Nearing finalization of the API. Some internal restructuring is still necessary. The changelog and readme are out of date and do not accurately reflect all the changes since the last release.
0.8.0
This is the first release to use the new model for C and Java native extensions. Java native extensions are built into the core gem and published as a pre-compiled Java build (in addition to the pure-Ruby core gem). C native extensions for MRI are published as a separate extension gem. The main extension gem must be compiled on installation, but pre-compiled Windows binaries (x32 and x64) are published as well. Specific features in this build include:
- C extension for MRI have been extracted into the
concurrent-ruby-ext
companion gem.
Please see the README for more detail. - Better variable isolation in
Promise
andFuture
via an:args
option - Continued to update intermittently failing tests
Extension Gem Pre-release 3
A private release used to fix and test pre-compiled extensions for Windows. It was never pushed to Rubygems.
0.7.2
- New
Semaphore
class based on java.util.concurrent.Semaphore - New
Promise.all?
andPromise.any?
class methods - Renamed
:overflow_policy
on thread pools to:fallback_policy
- Thread pools still accept the
:overflow_policy
option but display a warning - Thread pools now implement
fallback_policy
behavior when not running (rather than universally rejecting tasks) - Fixed minor
set_deref_options
constructor bug inPromise
class - Fixed minor
require
bug inThreadLocalVar
class - Fixed race condition bug in
TimerSet
class - Fixed race condition bug in
TimerSet
class - Fixed signal bug in
TimerSet#post
method - Numerous non-functional updates to clear warning when running in debug mode
- Fixed more intermittently failing tests
- Tests now run on new Travis build environment
- Multiple documentation updates
Extension Gem Pre-release 2
This release builds two gems from this repo: concurrent-ruby
and concurrent-ruby-ext
, the latter of which contains the C-native extensions that were added to the core gem in the 0.7 release.
- Background describing why we're making this change: New Approach to C/Java Native Extensions #186
- The PR from which this pre-release was created: Builds two gems from one repo. #205
- A prior attempt to to create two gems from two separate repos (rejected): Moved C extensions into a companion gem. #197
Extension Gem Pre-release 1
This release builds two gems from this repo: concurrent-ruby
and concurrent-ruby-ext
, the latter of which contains the C-native extensions that were added to the core gem in the 0.7 release.
- Background describing why we're making this change: New Approach to C/Java Native Extensions #186
- The PR from which this pre-release was created: Builds two gems from one repo. #205
- A prior attempt to to create two gems from two separate repos (rejected): Moved C extensions into a companion gem. #197
0.7.1
- Added
flat_map
method toPromise
- Added
zip
method toPromise
- Fixed bug with logging in
Actor
- Improvements to
Promise
tests - Removed actor-experimental warning
- Added an
IndirectImmediateExecutor
class - Allow disabling auto termination of global executors
- Fix thread leaking in
ThreadLocalVar
(usesRef
gem on non-JRuby systems) - Fix thread leaking when pruning pure-Ruby thread pools
- Prevent
Actor
from using anImmediateExecutor
(causes deadlock) - Added missing synchronizations to
TimerSet
- Fixed bug with return value of
Concurrent::Actor::Utils::Pool#ask
- Fixed timing bug in
TimerTask
- Fixed bug when creating a
JavaThreadPoolExecutor
with minimum pool size of zero - Removed confusing warning when not using native extenstions
- Improved documentation