From 95a110a9af0b5bfe393934fa177abea58c0fee46 Mon Sep 17 00:00:00 2001 From: Satoshi Tagomori Date: Thu, 6 Nov 2025 15:33:58 +0900 Subject: [PATCH] Define ::Ruby module earlier to define classes under it --- inits.c | 1 + version.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/inits.c b/inits.c index 4569362b95..4988fa09d0 100644 --- a/inits.c +++ b/inits.c @@ -52,6 +52,7 @@ rb_call_inits(void) CALL(Time); CALL(Random); CALL(load); + CALL(Ruby_module); CALL(Box); CALL(Proc); CALL(Binding); diff --git a/version.c b/version.c index d634755efd..0a3bc7bf9b 100644 --- a/version.c +++ b/version.c @@ -12,6 +12,7 @@ #include "internal/cmdlineopt.h" #include "internal/parse.h" #include "internal/gc.h" +#include "ruby/internal/globals.h" #include "ruby/ruby.h" #include "version.h" #include "vm_core.h" @@ -112,6 +113,12 @@ define_ruby_const(VALUE mod, const char *name, VALUE value, bool toplevel) #define rb_define_const(mod, name, value) \ define_ruby_const(mod, (mod == mRuby ? "RUBY_" name : name), value, (mod == mRuby)) +void +Init_Ruby_module(void) +{ + rb_define_module("Ruby"); +} + /*! Defines platform-depended Ruby-level constants */ void Init_version(void) @@ -123,7 +130,7 @@ Init_version(void) * The constants defined here are aliased in the toplevel with * +RUBY_+ prefix. */ - VALUE mRuby = rb_define_module("Ruby"); + VALUE mRuby = rb_path2class("Ruby"); enum {ruby_patchlevel = RUBY_PATCHLEVEL}; VALUE version = MKSTR(version);