<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/internal/imemo.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>use `SET_SHAREABLE`</title>
<updated>2025-10-23T04:08:26+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2025-09-24T20:50:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bc00c4468e0054ca896d2b83d3020180915f64cf'/>
<id>bc00c4468e0054ca896d2b83d3020180915f64cf</id>
<content type='text'>
to adopt strict shareable rule.

* (basically) shareable objects only refer shareable objects
* (exception) shareable objects can refere unshareable objects
  but should not leak reference to unshareable objects to Ruby world
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
to adopt strict shareable rule.

* (basically) shareable objects only refer shareable objects
* (exception) shareable objects can refere unshareable objects
  but should not leak reference to unshareable objects to Ruby world
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't export rb_imemo_new</title>
<updated>2025-09-16T12:35:45+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-09-15T15:24:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=809dfb861ef0599c2572f10236aaf25c2093f6af'/>
<id>809dfb861ef0599c2572f10236aaf25c2093f6af</id>
<content type='text'>
Nothing needs rb_imemo_new exported anymore.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Nothing needs rb_imemo_new exported anymore.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove next field and unused method from tmpbuf</title>
<updated>2025-09-15T23:08:13+00:00</updated>
<author>
<name>John Hawthorn</name>
<email>john@hawthorn.email</email>
</author>
<published>2025-09-15T21:30:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e4f09a8c94e6e6d21a6dfa43f71d52e4096234d6'/>
<id>e4f09a8c94e6e6d21a6dfa43f71d52e4096234d6</id>
<content type='text'>
These used to be used by the parser
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These used to be used by the parser
</pre>
</div>
</content>
</entry>
<entry>
<title>Move rb_imemo_tmpbuf_new to imemo.c</title>
<updated>2025-09-15T15:43:05+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-09-15T14:47:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1e3e04cd657c35fdd8d95096195d6b72b64e516c'/>
<id>1e3e04cd657c35fdd8d95096195d6b72b64e516c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Combine rb_imemo_tmpbuf_auto_free_pointer and rb_imemo_tmpbuf_new</title>
<updated>2025-09-15T13:25:20+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-09-13T18:10:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b0ce1fd549a3227ef4d9f65e4cdf0df93e4adeb0'/>
<id>b0ce1fd549a3227ef4d9f65e4cdf0df93e4adeb0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove useless field in rb_imemo_tmpbuf_t</title>
<updated>2025-09-12T18:13:59+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-09-12T13:32:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a9b35b3a0777e299b27d039b4b09fe8bdc9984c8'/>
<id>a9b35b3a0777e299b27d039b4b09fe8bdc9984c8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace ROBJECT_EMBED by ROBJECT_HEAP</title>
<updated>2025-08-27T10:41:07+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-08-26T15:43:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5257e1298c4dc4e854eaa0a9fe5e6dc5c1495c91'/>
<id>5257e1298c4dc4e854eaa0a9fe5e6dc5c1495c91</id>
<content type='text'>
The embed layout is way more common than the heap one,
especially since WVA.

I think it makes for more readable code to inverse the
flag.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The embed layout is way more common than the heap one,
especially since WVA.

I think it makes for more readable code to inverse the
flag.
</pre>
</div>
</content>
</entry>
<entry>
<title>Ensure T_OBJECT and T_IMEMO/fields have identical layout</title>
<updated>2025-08-26T11:44:59+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-08-26T07:19:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=14bdf4b57dcd3169a8717dc893fd1e1be897deeb'/>
<id>14bdf4b57dcd3169a8717dc893fd1e1be897deeb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>imemo_fields: store owner object in RBasic.klass</title>
<updated>2025-08-13T17:53:18+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-08-08T09:41:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=10aa4134d408cab7b5754f3dcac2e75a52962b7c'/>
<id>10aa4134d408cab7b5754f3dcac2e75a52962b7c</id>
<content type='text'>
It is much more convenient than storing the klass, especially
when dealing with `object_id` as it allows to update the id2ref
table without having to dereference the owner, which may be
garbage at that point.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is much more convenient than storing the klass, especially
when dealing with `object_id` as it allows to update the id2ref
table without having to dereference the owner, which may be
garbage at that point.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make `RClass.cc_table` a managed object</title>
<updated>2025-08-01T08:42:04+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-07-30T10:44:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f2a7e48deadb9101d49c9b613abf5a83c9e1dd49'/>
<id>f2a7e48deadb9101d49c9b613abf5a83c9e1dd49</id>
<content type='text'>
For now this doesn't change anything, but now that the table
is managed by GC, it opens the door to use RCU when in multi-ractor
mode, hence allow unsynchornized reads.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For now this doesn't change anything, but now that the table
is managed by GC, it opens the door to use RCU when in multi-ractor
mode, hence allow unsynchornized reads.
</pre>
</div>
</content>
</entry>
</feed>
