shyouhei / ruby-lang.org wrote:
> Bug #12416: struct rb_id_table lacks mark function
> https://bugs.ruby-lang.org/issues/12416

> The struct rb_id_table can hold arbitrary VALUE values.

Can, but currently does not (AFAIK).

> Now that this
> struct is reachable form Ruby's object space, it must understand what GC
> requests to it.

Do you have plans to hold arbitrary VALUE objects?

> +++ b/iseq.c
> @@ -128,6 +128,7 @@ rb_iseq_mark(const rb_iseq_t *iseq)
>  	RUBY_MARK_UNLESS_NULL(compile_data->mark_ary);
>  	RUBY_MARK_UNLESS_NULL(compile_data->err_info);
>  	RUBY_MARK_UNLESS_NULL(compile_data->catch_table_ary);
> +	rb_id_table_mark(compile_data->ivar_cache_table);

Right now, ivar_cache_table only holds Fixnum which does
not need marking.   Even with generational GC, I still prefer
we not waste CPU cycles walking through tables for noops.

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>