gc.c: support RGENGC. [ruby-trunk - Feature #8339]
See this ticet about RGENGC.
gc.c: Add several flags:
RGENGC_DEBUG: if >0, then prints debug information.
RGENGC_CHECK_MODE: if >0, add assertions.
RGENGC_PROFILE: if >0, add profiling features.
check GC.stat and GC::Profiler.
include/ruby/ruby.h: disable RGENGC by default (USE_RGENGC == 0).
array.c: add write barriers for T_ARRAY and generate sunny objects.
include/ruby/ruby.h (RARRAY_PTR_USE): added. Use this macro if
you want to access raw pointers. If you modify the contents which
pointer pointed, then you need to care write barrier.
See this ticet about RGENGC.
check GC.stat and GC::Profiler.
you want to access raw pointers. If you modify the contents which
pointer pointed, then you need to care write barrier.
and generate sunny objects.
barriers for T_RATIONAL and generate sunny objects.
generate sunny T_OBJECT objects.
FL_WB_PROTECTED and FL_OLDGEN.
move flag bits.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e