Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upRactor: a proposal for new concurrent abstraction without thread-safety issues #3365
Conversation
d02410a
to
847d281
d04762d
to
602f56e
@benoittgt I'll squash most of commit, is it okay? (your commit doesn't appear in ruby repo). |
@ko1 No problem! ;) |
2d946c8
to
7194182
This commit introduces Ractor mechanism to run Ruby program in parallel. See doc/ractor.md for more details about Ractor. See ticket [Feature #17100] to see the implementation details and discussions. [Feature #17100] This commit does not complete the implementation. You can find many bugs on using Ractor. Also the specification will be changed so that this feature is experimental. You will see a warning when you make the first Ractor with `Ractor.new`. I hope this feature can help programmers from thread-safety issues.
This implementation has memory corruption errors so and it causes BUG on rare occasions. This commit skips suspect tests on Github actions Compiler tests.
Quoted from https://bugs.ruby-lang.org/issues/17100
This ticket proposes a new concurrent abstraction named "Ractor", Ruby's
Actor-like feature (not an exact Actor-model).
Ractor achieves the following goals:
I'm working on this proposal in a few years, and the project name was
"Guild". I renamed it from Guild to Ractor because of Matz's preference.
Resources:
Current implementation is not complete (many bugs are remaining) but it passes current CI.
I propose to merge it soon and try the APIs, continue to develop the implementation on a master branch.