diff --git a/core/smallobject_policy_v7.c b/core/smallobject_policy_v7.c index 53b447f1..4617a9a2 100644 --- a/core/smallobject_policy_v7.c +++ b/core/smallobject_policy_v7.c @@ -20,9 +20,16 @@ static int g_learner_v7_enabled = -1; // -1: uninit, 0: disabled, 1: enabled static inline int learner_v7_enabled(void) { if (unlikely(g_learner_v7_enabled < 0)) { - // Enable Learner only when v7 is enabled - const char* e = getenv("HAKMEM_SMALL_HEAP_V7_ENABLED"); - g_learner_v7_enabled = (e && *e && *e != '0') ? 1 : 0; + // Phase v10: Learner default ON (when v7 is enabled) + // Can be disabled via ENV: HAKMEM_SMALL_LEARNER_V7_ENABLED=0 + const char* e = getenv("HAKMEM_SMALL_LEARNER_V7_ENABLED"); + if (e && *e && *e == '0') { + g_learner_v7_enabled = 0; // explicitly disabled + } else { + // Default: ON (when v7 is also enabled) + const char* v7_e = getenv("HAKMEM_SMALL_HEAP_V7_ENABLED"); + g_learner_v7_enabled = (v7_e && *v7_e && *v7_e != '0') ? 1 : 0; + } } return g_learner_v7_enabled; }