Better low-level support for writing concurrent libraries
Nowadays, almost every processor has more than one core. Therefore it becomes more and more important for languages to have good support of concurrent and/or parallel computation. Currently Ruby supports concurrency mainly through high-level classes:
This work is not colliding with plans for Ruby 3 (to provide an easy-to-use and safe concurrent abstraction to Ruby users). Following proposals suggest several key low-level Ruby extensions which will allow those interested in these topics to create fast concurrency abstractions (gems) for Ruby community, providing more choices and complementing the effort of Ruby 3. The proposed APIs are not expected to be used for every day programming but rather by concurrency enthusiast.
This issue is intended to serve as an aggregator for other various proposals described in following issues.
Updated by pitr.ch (Petr Chalupa) about 3 years ago
I'll be adding or linking existing proposals gradually:
- Documenting Ruby memory model
- Volatile instance variables
- Atomic instance variables
- Final instance variables
Module.attr.*methods return symbols of the defined methods
- Relaxing variable volatility/atomicity
I've tried to describe the intentions for Ruby 3 as best as I could, please correct the statement if it's inaccurate.