Comments (13)
It's fine, Promise
will be ready for sure.
March 3 could be the last day for add new features, that way we'll have 2 full weeks for bug fixing and stabilize the APIs.
from concurrent-ruby.
I'm working with @lucasallan on some new features for Actor
but it is unlikely they will be ready for this release. They are fairly major and would be better for a later release even if we were to finish them.
We definitely want Promise
in this release, thank you for your work on this.
It looks like the new features @chrisseaton is working on should be ready with plenty of time to spare.
There are a few pending tests I've been meaning to work on. I will use this release as motivation to implement those tests.
Can anyone think of anything else that should be included in the next release?
from concurrent-ruby.
Sounds great. I'm finishing the new features in the middle of March.
from concurrent-ruby.
What is left to do prior to the 17th? We currently have zero pending specs and 100% code coverage. I am going to add a changelog to the wiki and document the (many) changes in this release. Are we done with all intended refactoring? I'm believe we've also addressed all the tests that were failing intermittently. Are there others anyone knows about? Any known bugs?
@chrisseaton Have you completed everything you planned fro MVar
and IVar
for this release?
Again, I can't thank everyone enough for the work you put into this gem. Thanks to all of you, especially @mighe and @chrisseaton (and @lucasallan in an upcoming release) this has grown from a fun side-project into something I believe can have real value to the Ruby community. I am insanely proud of what we have created together.
from concurrent-ruby.
It's the first time I really contribute to an open source project and I'm loving it: you, @chrisseaton and I have very different backgrounds and this is very exciting every time we share our ideas 😊
The only bug I knew of is about thread pool non-deterministic test, but it seems fixed now.
I'd like to refactor a bit Supervisor
and thread pools, just to clean up a bit the code: I didn't see any severe issue in them (just some minor locking inconsistencies in Supervisor
), so their APIs won't change.
from concurrent-ruby.
@mighe I know that Code Climate has given Supervisor
an F grade, but I'm a little protective of that class (sorry, I'm human!). I put a lot of effort into it to replicate Erlang's behavior and I want to make sure we don't stray from that vision. If there are locking bugs they definitely need fixed, but please don't do anything more than that right now. I'd like to discuss any further potential changes later as part of a future release.
from concurrent-ruby.
I've no more features to add for this release. TVar
and STM won't be ready by then.
I think perhaps we should look at some stress tests. By this I mean outside of RSpec, a set of programs that runs for a long time, doing random operations, checking for synchronisation problems. For example you could build a network of actors and have them pass messages around for half an hour, keep checking for consistency some way, and see if anything goes wrong. I'll do one for MVar
and IVar
to show what I mean. At the moment I think our specs are unlikely to catch the one in a million errors that are what make concurrency hard.
from concurrent-ruby.
I don't want to change anything substantially, just fix some small details about locking and remove some style warning, nothing more.
No Supervisors
will be harmed during this process 😊
Stress tests will be very very useful, maybe we could write them for 0.5.1 or 0.6.0, I think we're too late for 0.5.0
from concurrent-ruby.
+1 to stress tests. When I was struggling with thread pools last summer I created a set of stress tests which I recently removed from the master branch. They were out of date and initiated as rake tasks. I like the idea of creating something more robust and comprehensive. We use JMeter at work on run those tests from or CI server. I'd love to see us create something like that for this gem.
from concurrent-ruby.
I've pushed a pre-release update (v0.5.0.pre.1) to Rubygems.
from concurrent-ruby.
I have been out of the loop for a bit, so if there's anything I could help with please let me know.
from concurrent-ruby.
@headius Your continued support and promotion of the gem is plenty, and greatly appreciated. I'm working on the changelog tonight and I've very impressed with the work @mighe and @chrisseaton have done on this release. It's vastly more reliable on JRuby and Rubinius. We've even started to implement a few JRuby-specific optimizations. Next Monday's release looks very good.
We've started working on some new features and optimizations for subsequent releases and @lucasallan is helping me work on a number of Actor updates. If there is anything you'd like to see in the gem or anything you'd like to work on yourself we'd love to have your input.
from concurrent-ruby.
I've released v0.5.0 a day early. I found a couple of bugs last weekend but there hasn't been much activity since. And to be honest, I've been pretty obsessed with Titalfall the past week so I haven't had much time for anything else. :-)
I've created a changelog in the wiki. Since I wasn't keeping a changelog during development I had to work from memory and the commit history. Please update the changelog with any errors and omissions.
I will email the mailing list Monday and send out an announcement tweet. Again, I cannot say "thank you" enough times to everyone who has helped improve, promote, and support this gem. You are all awesome.
from concurrent-ruby.
Related Issues (20)
- why use wait_for_termination method will stuck the code HOT 2
- DaemonThreadFactory creating new Java thread factory each time it creates a new thread HOT 8
- `Concurrent::Promises::Future#value!` can return `nil` even when promise is not resolved yet HOT 6
- Version 1.2.2 crashes with Segmentation fault HOT 3
- Fiber.new causes SEGV when using Ruby 3.3.0 on Rails 7.1.2 in M1 Mac Docker environment HOT 5
- Segfault in lock_local_var.rb on aarch64 HOT 3
- [REDIRECT] Segfault on Ruby 3.3.0 on linux-aarch64? See https://bugs.ruby-lang.org/issues/20085
- Add new CI job with RUBY_MN_THREADS=1 HOT 4
- Add API to prestart threads in threadpools HOT 4
- Don't know how to build task 'parallel_spec' HOT 2
- Segmentation fault related to concurrent-ruby HOT 4
- Segmentation fault with Ruby 3.3.0 running with Docker HOT 1
- Add keyword arguments to async HOT 1
- ThreadPoolExecutor#shutdown? inconsistency in JRuby and C Ruby HOT 4
- test failure due to "uninitialized constant Concurrent::CAtomicReference" HOT 7
- CAtomicFixnum should probably be a private constant HOT 1
- support re-raising exceptions when shutting down a timertask HOT 4
- v1.2.0 release notes do not mention that RubyThreadLocalVar class was removed HOT 8
- NameError: uninitialized constant Concurrent::RubyThreadLocalVar HOT 1
- The Concurrent::Map default_proc is passed a Concurrent::Hash instead of the Concurrent::Map HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from concurrent-ruby.