A recent update in mmtk-core put non-moving roots behind a cargo feature "non_moving_root". CRuby has been using non-moving roots for conservative stack scanning. We explicitly enable this feature in Cargo.toml. https://github.com/ruby...wks (Kunshan Wang)
There was a bug in mmtk-core that caused `is_live()` and `is_reachable()` to return wrong results for objects in the large object space. The function `object_survives_current_gc` was introduced to workaround the bug. The bug has been f...wks (Kunshan Wang)
Guard the `RUBY_NO_FREE` environment variable which disables `xfree` behind a compile-time flag `-DRUBY_NO_FREE`. It is a debugging feature, and should not exist in production environment.wks (Kunshan Wang)
`gc_prof_mark_timer_start` and `gc_prof_mark_timer_stop` include DTrace hooks for the `MARK_BEGIN` and `MARK_END` events, respectively. Previously, those probes are only triggered in `gc_marks`. However, `gc_marks_continue` and `gc_rest...wks (Kunshan Wang)
luke-gru (Luke Gruber) wrote in #note-5: > ... some others said they've seen problematic mark functions in some extensions (reading/mutating global state, etc.) ... jhawthorn (John Hawthorn) wrote in #note-6: > ... Yes. That's exac...wks (Kunshan Wang)
If I read correctly, this proposal is about improving the performance of sweeping by running `obj_free` of TypedData concurrently with mutators. But I think this does not change a fact that the TypedData is still subject to finalization...wks (Kunshan Wang)
When `rb_concurrent_set_foreach_with_replace` deletes entries from a concurrent set, it should increment the `deleted_entries` field, too.wks (Kunshan Wang)
This is the second part of making YJIT work with parallel GC. During GC, `rb_yjit_iseq_mark` and `rb_yjit_iseq_update_references` need to resolve offsets in `Block::gc_obj_offsets` into absolute addresses before reading or updating the ...wks (Kunshan Wang)