summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-11-05 22:13:51 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-11-05 22:13:51 +0000
commit8c6157e048db72e42f898e8c9e08ee9ceed8fe1c (patch)
treeac3f779b3d1aa908cdd05b533deb595e1bcd08fc /gc.c
parent400a9a7bc285b16a692cdd3d5253de88728990d7 (diff)
* gc.c (Init_GC): add GC::OPTS to show options.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 1356702fa1..9583ec1715 100644
--- a/gc.c
+++ b/gc.c
@@ -6827,4 +6827,23 @@ Init_GC(void)
rb_define_singleton_method(rb_mGC, "malloc_allocated_size", gc_malloc_allocated_size, 0);
rb_define_singleton_method(rb_mGC, "malloc_allocations", gc_malloc_allocations, 0);
#endif
+
+ /* ::GC::OPTS, which shows GC build options */
+ {
+ VALUE opts;
+ rb_define_const(rb_mGC, "OPTS", opts = rb_ary_new());
+#define OPT(o) if (o) rb_ary_push(opts, rb_str_new2(#o))
+ OPT(GC_DEBUG);
+ OPT(USE_RGENGC);
+ OPT(RGENGC_DEBUG);
+ OPT(RGENGC_CHECK_MODE);
+ OPT(RGENGC_PROFILE);
+ OPT(RGENGC_THREEGEN);
+ OPT(RGENGC_ESTIMATE_OLDSPACE);
+ OPT(GC_PROFILE_MORE_DETAIL);
+ OPT(GC_ENABLE_LAZY_SWEEP);
+ OPT(CALC_EXACT_MALLOC_SIZE);
+ OPT(CALC_EXACT_MALLOC_SIZE_CHECK_OLD_SIZE);
+#undef OPT
+ }
}