<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ruby_atomic.h, branch v4.0.3</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Store fiber serial as Ractor-local</title>
<updated>2025-11-25T21:48:35+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-11-25T05:07:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4263f1d718df65bdf465552029a71b1ea9747067'/>
<id>4263f1d718df65bdf465552029a71b1ea9747067</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix the fallback using mutex</title>
<updated>2025-11-25T04:47:45+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-11-25T03:13:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ec05bc39a3e8340aa3dcfc5f6f9ed791af232e78'/>
<id>ec05bc39a3e8340aa3dcfc5f6f9ed791af232e78</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply "Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`"</title>
<updated>2025-11-25T04:47:45+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-11-25T02:59:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bbf4bde75e4c8d2eacc40fc5e544ee73b20cf586'/>
<id>bbf4bde75e4c8d2eacc40fc5e544ee73b20cf586</id>
<content type='text'>
This reverts commit 8a68dc7bdd3d1c97677a6633a4f2b5e524c492ae.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 8a68dc7bdd3d1c97677a6633a4f2b5e524c492ae.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`" (#15311)</title>
<updated>2025-11-24T20:28:30+00:00</updated>
<author>
<name>Max Bernstein</name>
<email>rubybugs@bernsteinbear.com</email>
</author>
<published>2025-11-24T20:28:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8a68dc7bdd3d1c97677a6633a4f2b5e524c492ae'/>
<id>8a68dc7bdd3d1c97677a6633a4f2b5e524c492ae</id>
<content type='text'>
This reverts commit d3b6f835d565ec1590059773fc87589ddf8adc37.

This broke the Docker builds and presumably also 32-bit machines that
don't already have libatomic installed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit d3b6f835d565ec1590059773fc87589ddf8adc37.

This broke the Docker builds and presumably also 32-bit machines that
don't already have libatomic installed.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`</title>
<updated>2025-11-21T16:20:04+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-11-21T15:54:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d3b6f835d565ec1590059773fc87589ddf8adc37'/>
<id>d3b6f835d565ec1590059773fc87589ddf8adc37</id>
<content type='text'>
On some platoforms, 64bit atomic operations need the dedicated helper
library.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On some platoforms, 64bit atomic operations need the dedicated helper
library.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix stdatomic case in rbimpl_atomic_u64_fetch_add</title>
<updated>2025-11-21T08:43:48+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-11-21T05:50:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5f5da2c293766b98e543b3215b1af7ad6950977d'/>
<id>5f5da2c293766b98e543b3215b1af7ad6950977d</id>
<content type='text'>
This was failing on crossruby, likely because HAVE_GCC_ATOMIC_BUILTINS
was true, but HAVE_GCC_ATOMIC_BUILTINS_64 was false. We probably should
have feature detection of 64-bit stdatomics like we do for GCC, but for
now let's keep rbimpl_atomic_u64_fetch_add in sync with load/set.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was failing on crossruby, likely because HAVE_GCC_ATOMIC_BUILTINS
was true, but HAVE_GCC_ATOMIC_BUILTINS_64 was false. We probably should
have feature detection of 64-bit stdatomics like we do for GCC, but for
now let's keep rbimpl_atomic_u64_fetch_add in sync with load/set.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use a serial to keep track of Mutex-owning Fiber</title>
<updated>2025-11-20T22:06:33+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-11-05T20:27:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ff1d23eccba3ab37e77bf2d2222cad9d6f99a0ab'/>
<id>ff1d23eccba3ab37e77bf2d2222cad9d6f99a0ab</id>
<content type='text'>
Previously this held a pointer to the Fiber itself, which requires
marking it (which was only implemented recently, prior to that it was
buggy). Using a monotonically increasing integer instead allows us to
avoid having a free function and keeps everything simpler.

My main motivations in making this change are that the root fiber lazily
allocates self, which makes the writebarrier implementation challenging
to do correctly, and wanting to avoid sending Mutexes to the remembered
set when locked by a short-lived Fiber.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously this held a pointer to the Fiber itself, which requires
marking it (which was only implemented recently, prior to that it was
buggy). Using a monotonically increasing integer instead allows us to
avoid having a free function and keeps everything simpler.

My main motivations in making this change are that the root fiber lazily
allocates self, which makes the writebarrier implementation challenging
to do correctly, and wanting to avoid sending Mutexes to the remembered
set when locked by a short-lived Fiber.
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement rbimpl_atomic_value_load</title>
<updated>2025-08-12T17:38:00+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-07-29T06:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cb360b0b4b2e53f2335f77f477df54337fc4d87e'/>
<id>cb360b0b4b2e53f2335f77f477df54337fc4d87e</id>
<content type='text'>
This only adds the rbimpl_ version to include/ruby/atomic.h so that it
is not a new public interface.

We were already using RUBY_ATOMIC_VALUE_LOAD in a few locations. This
will allow us to use other memory orders internally when desired.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This only adds the rbimpl_ version to include/ruby/atomic.h so that it
is not a new public interface.

We were already using RUBY_ATOMIC_VALUE_LOAD in a few locations. This
will allow us to use other memory orders internally when desired.
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert ATOMIC_LOAD_RELAXED to use new rbimpl_*</title>
<updated>2025-08-12T17:38:00+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-07-29T06:22:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=77d29ef73cba81e7c18ab9bb95e0756b9f173f38'/>
<id>77d29ef73cba81e7c18ab9bb95e0756b9f173f38</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move RUBY_ATOMIC_VALUE_LOAD to ruby_atomic.h</title>
<updated>2025-06-25T17:04:25+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-06-25T13:25:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=aed7a95f9d8b5cfb0d590b59478d9dabc6b1eb22'/>
<id>aed7a95f9d8b5cfb0d590b59478d9dabc6b1eb22</id>
<content type='text'>
Deduplicates RUBY_ATOMIC_VALUE_LOAD by moving it to ruby_atomic.h.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Deduplicates RUBY_ATOMIC_VALUE_LOAD by moving it to ruby_atomic.h.
</pre>
</div>
</content>
</entry>
</feed>
