<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/gc/mmtk/src/abi.rs, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[ruby/mmtk] Call rb_bug when Ruby mutator thread panics</title>
<updated>2025-12-20T13:40:00+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-12-19T22:16:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6bf921051ceba1742318e3c92dddd50ba4f05d17'/>
<id>6bf921051ceba1742318e3c92dddd50ba4f05d17</id>
<content type='text'>
This will allow the Ruby backtrace, memory mapping, etc. to be outputted
when a Ruby mutator thread panics.

https://github.com/ruby/mmtk/commit/d10fd325dd
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will allow the Ruby backtrace, memory mapping, etc. to be outputted
when a Ruby mutator thread panics.

https://github.com/ruby/mmtk/commit/d10fd325dd
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/mmtk] Skip weak references that are special consts</title>
<updated>2025-07-30T13:26:19+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-07-29T20:50:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=74887a2c121bef639b7aae8d81d1e758994b5062'/>
<id>74887a2c121bef639b7aae8d81d1e758994b5062</id>
<content type='text'>
If a reference marked weak becomes a special const, it will crash because
it is not a GC handled object. We should skip special consts here.

https://github.com/ruby/mmtk/commit/870a79426b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a reference marked weak becomes a special const, it will crash because
it is not a GC handled object. We should skip special consts here.

https://github.com/ruby/mmtk/commit/870a79426b
</pre>
</div>
</content>
</entry>
<entry>
<title>mmtk: Get rid of unused reference to FL_EXIVAR</title>
<updated>2025-06-13T15:13:08+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-06-13T12:29:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=545e99da66bddfcf8afa965747eb9bc9821aefa5'/>
<id>545e99da66bddfcf8afa965747eb9bc9821aefa5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/mmtk] Fix clippy warnings and formatting.</title>
<updated>2025-05-30T14:55:42+00:00</updated>
<author>
<name>Kunshan Wang</name>
<email>wks1986@gmail.com</email>
</author>
<published>2025-05-28T06:28:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=94688bdc7da3ac82f712d3cdc11859ace3bfa8ac'/>
<id>94688bdc7da3ac82f712d3cdc11859ace3bfa8ac</id>
<content type='text'>
We also enable `#![warn(unsafe_op_in_unsafe_fn)]` in the whole mmtk_ruby
crate.

https://github.com/ruby/mmtk/commit/8b8025f71a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We also enable `#![warn(unsafe_op_in_unsafe_fn)]` in the whole mmtk_ruby
crate.

https://github.com/ruby/mmtk/commit/8b8025f71a
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/mmtk] Remove unused constant</title>
<updated>2025-05-30T14:55:41+00:00</updated>
<author>
<name>Kunshan Wang</name>
<email>wks1986@gmail.com</email>
</author>
<published>2025-05-27T08:31:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=60de513d05c390095a265135c6d910722b637674'/>
<id>60de513d05c390095a265135c6d910722b637674</id>
<content type='text'>
Remove the unused constant HAS_MOVED_GFIELDSTBL and related methods.

In the mmtk/mmtk-ruby repo, we are now able to find the global field
(IV) table of a moved object during copying GC without using the
HAS_MOVED_GFIELDSTBL bit.  We synchronize some of the code, although we
haven't implemented moving GC in ruby/mmtk, yet.

See: https://github.com/mmtk/mmtk-ruby/commit/13080acdf553f20a88a7ea9ab9f6877611017136

https://github.com/ruby/mmtk/commit/400ba4e747
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the unused constant HAS_MOVED_GFIELDSTBL and related methods.

In the mmtk/mmtk-ruby repo, we are now able to find the global field
(IV) table of a moved object during copying GC without using the
HAS_MOVED_GFIELDSTBL bit.  We synchronize some of the code, although we
haven't implemented moving GC in ruby/mmtk, yet.

See: https://github.com/mmtk/mmtk-ruby/commit/13080acdf553f20a88a7ea9ab9f6877611017136

https://github.com/ruby/mmtk/commit/400ba4e747
</pre>
</div>
</content>
</entry>
<entry>
<title>Move `object_id` in object fields.</title>
<updated>2025-05-08T05:58:05+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-04-21T07:16:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f48e45d1e9c4412d5f3ee49241d0b9359651ce7c'/>
<id>f48e45d1e9c4412d5f3ee49241d0b9359651ce7c</id>
<content type='text'>
And get rid of the `obj_to_id_tbl`

It's no longer needed, the `object_id` is now stored inline
in the object alongside instance variables.

We still need the inverse table in case `_id2ref` is invoked, but
we lazily build it by walking the heap if that happens.

The `object_id` concern is also no longer a GC implementation
concern, but a generic implementation.

Co-Authored-By: Matt Valentine-House &lt;matt@eightbitraptor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
And get rid of the `obj_to_id_tbl`

It's no longer needed, the `object_id` is now stored inline
in the object alongside instance variables.

We still need the inverse table in case `_id2ref` is invoked, but
we lazily build it by walking the heap if that happens.

The `object_id` concern is also no longer a GC implementation
concern, but a generic implementation.

Co-Authored-By: Matt Valentine-House &lt;matt@eightbitraptor.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename `ivptr` -&gt; `fields`,  `next_iv_index` -&gt; `next_field_index`</title>
<updated>2025-05-08T05:58:05+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-04-30T07:42:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0ea210d1ea257162642969edce665935cc87c643'/>
<id>0ea210d1ea257162642969edce665935cc87c643</id>
<content type='text'>
Ivars will longer be the only thing stored inline
via shapes, so keeping the `iv_index` and `ivptr` names
would be confusing.

Instance variables won't be the only thing stored inline
via shapes, so keeping the `ivptr` name would be confusing.

`field` encompass anything that can be stored in a VALUE array.

Similarly, `gen_ivtbl` becomes `gen_fields_tbl`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ivars will longer be the only thing stored inline
via shapes, so keeping the `iv_index` and `ivptr` names
would be confusing.

Instance variables won't be the only thing stored inline
via shapes, so keeping the `ivptr` name would be confusing.

`field` encompass anything that can be stored in a VALUE array.

Similarly, `gen_ivtbl` becomes `gen_fields_tbl`.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/mmtk] Do root scanning in scan_vm_specific_roots</title>
<updated>2025-04-08T03:12:50+00:00</updated>
<author>
<name>Kunshan Wang</name>
<email>wks1986@gmail.com</email>
</author>
<published>2025-04-07T07:21:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d17ab5a430d0068a9016746402b296ab7f87abe1'/>
<id>d17ab5a430d0068a9016746402b296ab7f87abe1</id>
<content type='text'>
We rely on scan_vm_specific_roots to reach all stacks via the following
path:

    VM -&gt; ractors -&gt; threads -&gt; fibers -&gt; stacks

https://github.com/ruby/mmtk/commit/0a6a835aaa
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We rely on scan_vm_specific_roots to reach all stacks via the following
path:

    VM -&gt; ractors -&gt; threads -&gt; fibers -&gt; stacks

https://github.com/ruby/mmtk/commit/0a6a835aaa
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/mmtk] Fix compatibility for Rust 1.85</title>
<updated>2025-02-20T19:35:38+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2025-02-20T18:58:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=0f1cb9234574d3d39c85b5b98a306306e20f068b'/>
<id>0f1cb9234574d3d39c85b5b98a306306e20f068b</id>
<content type='text'>
https://github.com/ruby/mmtk/commit/9da566e26a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/mmtk/commit/9da566e26a
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/mmtk] [Feature #20860] Implement Mark-Sweep with MMTK</title>
<updated>2024-11-22T09:55:24+00:00</updated>
<author>
<name>Peter Zhu</name>
<email>peter@peterzhu.ca</email>
</author>
<published>2024-11-21T20:34:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=19840dfd718465e3bd7a6cf4cf981944443b2985'/>
<id>19840dfd718465e3bd7a6cf4cf981944443b2985</id>
<content type='text'>
This commit implements the mark-sweep algorithm using MMTk and allows
customizing the plan using MMTK_PLAN.

https://github.com/ruby/mmtk/commit/6fea5e5ffc

Co-Authored-By: Matt Valentine-House &lt;matt@eightbitraptor.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit implements the mark-sweep algorithm using MMTk and allows
customizing the plan using MMTK_PLAN.

https://github.com/ruby/mmtk/commit/6fea5e5ffc

Co-Authored-By: Matt Valentine-House &lt;matt@eightbitraptor.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
