From b416d29010e7feb7195327fef673ea1ffc3bf363 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 6 Oct 2025 23:40:11 +0900 Subject: [PATCH] mruby-sleep,mruby-task: define sleep methods as module functions change sleep, usleep, sleep_ms from private methods to module functions to match cruby behavior where sleep can be called as both bare sleep and kernel.sleep. Co-authored-by: Claude --- mrbgems/mruby-sleep/src/sleep.c | 4 ++-- mrbgems/mruby-task/src/task.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mrbgems/mruby-sleep/src/sleep.c b/mrbgems/mruby-sleep/src/sleep.c index 6e98d80a2..7e8556a1e 100644 --- a/mrbgems/mruby-sleep/src/sleep.c +++ b/mrbgems/mruby-sleep/src/sleep.c @@ -172,8 +172,8 @@ f_usleep(mrb_state *mrb, mrb_value self) void mrb_mruby_sleep_gem_init(mrb_state *mrb) { - mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(sleep), f_sleep, MRB_ARGS_REQ(1)); - mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(usleep), f_usleep, MRB_ARGS_REQ(1)); + mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(sleep), f_sleep, MRB_ARGS_REQ(1)); + mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(usleep), f_usleep, MRB_ARGS_REQ(1)); } /* diff --git a/mrbgems/mruby-task/src/task.c b/mrbgems/mruby-task/src/task.c index 5fbfc2cf0..be23274e0 100644 --- a/mrbgems/mruby-task/src/task.c +++ b/mrbgems/mruby-task/src/task.c @@ -1103,13 +1103,13 @@ mrb_mruby_task_gem_init(mrb_state *mrb) mrb_define_method_id(mrb, task_class, MRB_SYM(terminate), mrb_task_terminate, MRB_ARGS_NONE()); mrb_define_method_id(mrb, task_class, MRB_SYM(join), mrb_task_join, MRB_ARGS_NONE()); - /* Kernel methods + /* Kernel methods (module functions like CRuby) * Note: sleep and usleep override mruby-sleep's implementation to be task-aware * (cooperative sleep within tasks, blocking sleep otherwise) */ - mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(sleep), mrb_f_sleep, MRB_ARGS_OPT(1)); - mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(usleep), mrb_f_usleep, MRB_ARGS_REQ(1)); - mrb_define_private_method_id(mrb, mrb->kernel_module, MRB_SYM(sleep_ms), mrb_f_sleep_ms, MRB_ARGS_REQ(1)); + mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(sleep), mrb_f_sleep, MRB_ARGS_OPT(1)); + mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(usleep), mrb_f_usleep, MRB_ARGS_REQ(1)); + mrb_define_module_function_id(mrb, mrb->kernel_module, MRB_SYM(sleep_ms), mrb_f_sleep_ms, MRB_ARGS_REQ(1)); } void