https://redmine.ruby-lang.org/https://redmine.ruby-lang.org/favicon.ico?17113305112013-12-08T11:28:22ZRuby Issue Tracking SystemRuby master - Bug #9225: [patch] add WB to NODE_CREFhttps://redmine.ruby-lang.org/issues/9225?journal_id=435072013-12-08T11:28:22Ztmm1 (Aman Karmani)ruby@tmm1.net
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>This issue was solved with changeset r44059.<br>
Aman, thank you for reporting this issue.<br>
Your contribution to Ruby is greatly appreciated.<br>
May Ruby be with you.</p>
<hr>
<p>gc.c: promote long-lived NODE_CREF objects to oldgen</p>
<ul>
<li>include/ruby/ruby.h: add RGENGC_WB_PROTECTED_NODE_CREF setting<br>
In a large app, this reduces the size of<br>
remembered_shady_object_count by 80%. [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: [patch] add WB to NODE_CREF (Closed)" href="https://redmine.ruby-lang.org/issues/9225">#9225</a>] <a href="/issues/9225">[ruby-core:58947]</a></li>
<li>gc.c (rb_node_newnode): add FL_WB_PROTECTED flag to NODE_CREF</li>
<li>class.c (rewrite_cref_stack): insert OBJ_WRITE for NODE_CREF</li>
<li>iseq.c (set_relation): ditto</li>
<li>iseq.c (rb_iseq_clone): ditto</li>
<li>vm_eval.c (rb_yield_refine_block): ditto</li>
<li>vm_insnhelper.c (vm_cref_push): ditto</li>
<li>vm_insnhelper.h (COPY_CREF): ditto</li>
</ul>