<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ractor.rb, branch v3_4_9</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Ractor.store_if_absent should not warn</title>
<updated>2025-12-04T16:56:13+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2025-12-04T05:29:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e4abacc53396865e20c226a7ac8ed8b86267874b'/>
<id>e4abacc53396865e20c226a7ac8ed8b86267874b</id>
<content type='text'>
```ruby
$VERBOSE = true

Ractor.store_if_absent :key do
end #=&gt; warning: the block passed to 'Ractor.store_if_absent' defined at &lt;internal:ractor&gt;:474 may be ignored
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
```ruby
$VERBOSE = true

Ractor.store_if_absent :key do
end #=&gt; warning: the block passed to 'Ractor.store_if_absent' defined at &lt;internal:ractor&gt;:474 may be ignored
```
</pre>
</div>
</content>
</entry>
<entry>
<title>[DOC] Ractor::RemoteError</title>
<updated>2024-12-25T04:16:28+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2024-12-25T04:16:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bf878b54945e15e5bd36b8459ff48faeb242358a'/>
<id>bf878b54945e15e5bd36b8459ff48faeb242358a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Properly document Ractor#require (#12389)</title>
<updated>2024-12-21T18:05:26+00:00</updated>
<author>
<name>Victor Shepelev</name>
<email>zverok.offline@gmail.com</email>
</author>
<published>2024-12-21T18:05:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=efe671f9d3de51c9c391a5de4ec3d32766b35079'/>
<id>efe671f9d3de51c9c391a5de4ec3d32766b35079</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>FIx Ractor.main? to return `true` not `0`</title>
<updated>2024-12-16T07:37:55+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2024-12-15T23:31:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5d97c14fec90b96f82d13299f578d16ee9996b3f'/>
<id>5d97c14fec90b96f82d13299f578d16ee9996b3f</id>
<content type='text'>
[Bug #20954]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #20954]
</pre>
</div>
</content>
</entry>
<entry>
<title>followup 0bdb38ba6be208064a514c12a9b80328645689f8</title>
<updated>2024-12-13T08:05:58+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2024-12-13T07:18:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e09c23433e2a7f4e2410b46c8dc79496f0453307'/>
<id>e09c23433e2a7f4e2410b46c8dc79496f0453307</id>
<content type='text'>
(forgot to amend...)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(forgot to amend...)
</pre>
</div>
</content>
</entry>
<entry>
<title>`Ractor.set_if_absent(key)`</title>
<updated>2024-12-12T21:22:13+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2024-12-12T19:52:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0bdb38ba6be208064a514c12a9b80328645689f8'/>
<id>0bdb38ba6be208064a514c12a9b80328645689f8</id>
<content type='text'>
to initialize ractor local storage in thread-safety.
[Feature #20875]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
to initialize ractor local storage in thread-safety.
[Feature #20875]
</pre>
</div>
</content>
</entry>
<entry>
<title>support `require` in non-main Ractors</title>
<updated>2024-11-08T09:02:46+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2024-11-04T19:54:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=aa63699d10e489bc6d9c13406fc47f581001568b'/>
<id>aa63699d10e489bc6d9c13406fc47f581001568b</id>
<content type='text'>
Many libraries should be loaded on the main ractor because of
setting constants with unshareable objects and so on.

This patch allows to call `requore` on non-main Ractors by
asking the main ractor to call `require` on it. The calling ractor
waits for the result of `require` from the main ractor.

If the `require` call failed with some reasons, an exception
objects will be deliverred from the main ractor to the calling ractor
if it is copy-able.

Same on `require_relative` and `require` by `autoload`.

Now `Ractor.new{pp obj}` works well (the first call of `pp` requires
`pp` library implicitly).

[Feature #20627]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Many libraries should be loaded on the main ractor because of
setting constants with unshareable objects and so on.

This patch allows to call `requore` on non-main Ractors by
asking the main ractor to call `require` on it. The calling ractor
waits for the result of `require` from the main ractor.

If the `require` call failed with some reasons, an exception
objects will be deliverred from the main ractor to the calling ractor
if it is copy-able.

Same on `require_relative` and `require` by `autoload`.

Now `Ractor.new{pp obj}` works well (the first call of `pp` requires
`pp` library implicitly).

[Feature #20627]
</pre>
</div>
</content>
</entry>
<entry>
<title>`Ractor.[]` and `Ractor.[]=`</title>
<updated>2024-11-08T09:02:46+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2024-11-04T19:43:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=075a102c937969c62a6798b32b3c3188df91a075'/>
<id>075a102c937969c62a6798b32b3c3188df91a075</id>
<content type='text'>
`Ractor#[]/[]=` is only for accessors to the current ractor, so that
`Ractor.[]/[]=` is simpler.
[Feature #20715]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`Ractor#[]/[]=` is only for accessors to the current ractor, so that
`Ractor.[]/[]=` is simpler.
[Feature #20715]
</pre>
</div>
</content>
</entry>
<entry>
<title>`Ractor.main?`</title>
<updated>2024-11-08T09:02:46+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2024-11-04T18:57:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f0d0c030c04c1c3949ac85a37b7d4bf8acebface'/>
<id>f0d0c030c04c1c3949ac85a37b7d4bf8acebface</id>
<content type='text'>
to return the current ractor is the main ractor.
(== `Ractor.current == Ractor.main`)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
to return the current ractor is the main ractor.
(== `Ractor.current == Ractor.main`)
</pre>
</div>
</content>
</entry>
<entry>
<title>remove `Ractor::Selector` from Ruby level</title>
<updated>2023-12-15T16:00:01+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2023-12-15T09:25:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c9a9b8036c71974ab938a8bb3d6f095d4a318a8e'/>
<id>c9a9b8036c71974ab938a8bb3d6f095d4a318a8e</id>
<content type='text'>
`Ractor::Selector` is not approved by Matz so remove it from
Ruby-level.

The implementation is used by `Ractor.select` so most of implementation
was remaind and calling `rb_init_ractor_selector()`, `Ractor::Selector`
will be defined. I will provide `ractor-selector` gem to try it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`Ractor::Selector` is not approved by Matz so remove it from
Ruby-level.

The implementation is used by `Ractor.select` so most of implementation
was remaind and calling `rb_init_ractor_selector()`, `Ractor::Selector`
will be defined. I will provide `ractor-selector` gem to try it.
</pre>
</div>
</content>
</entry>
</feed>
