You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
a) it doesn't look like we can make Node or Document objects use WB, because they are T_DATA and so are always created with wb_protected=false; and (from the linked doc above) "WB-unprotected objects can not become WB-protected objects."
b) we've already (long ago) removed RB_ARRAY_PTR in favor of rb_ary_entry so I'm not sure we're unprotecting anything we don't need or intend to unprotect
Things I'd like to do before we start working on this, though:
So anyone who's interested in this topic, I'm open to learning, but I'm unlikely to merge anything until and unless all of the above are addressed first.
The text was updated successfully, but these errors were encountered:
We implemented TypedData_Wrap_Struct in #2579 which I think took care of all the compaction support. Given Lars's comment above about write barriers, I'm going to deprioritize this work and close this issue.
If there's GC-related work anybody thinks we should do, please comment and we can re-open or open a new sisue.
After reading Peter's Adventures in Ruby: Garbage Collection in Ruby - Peter Zhu:
Can we use
rb_gc_mark_movable
instead ofrb_gc_mark
?I think we can.
And after peeking at Gradual Write-Barrier Insertion into a Ruby Interpreter:
Can we take advantage of WB protection?
I need to learn more here, but:
a) it doesn't look like we can make Node or Document objects use WB, because they are T_DATA and so are always created with wb_protected=false; and (from the linked doc above) "WB-unprotected objects can not become WB-protected objects."
b) we've already (long ago) removed
RB_ARRAY_PTR
in favor ofrb_ary_entry
so I'm not sure we're unprotecting anything we don't need or intend to unprotectThings I'd like to do before we start working on this, though:
topic/memory
)So anyone who's interested in this topic, I'm open to learning, but I'm unlikely to merge anything until and unless all of the above are addressed first.
The text was updated successfully, but these errors were encountered: