From ef88c3b72682b628ed5a795298eea2642bef6ffa Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sun, 5 Jan 2025 07:49:55 +0900 Subject: [PATCH] kernel.c: move `Kernel#p` to kernel.c from mruby-print It's easier to skip `p` in the debugger if it's implemented in C. --- mrbgems/mruby-print/mrblib/print.rb | 15 --------------- src/kernel.c | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/mrbgems/mruby-print/mrblib/print.rb b/mrbgems/mruby-print/mrblib/print.rb index 9047f5e8f..1a024c0bd 100644 --- a/mrbgems/mruby-print/mrblib/print.rb +++ b/mrbgems/mruby-print/mrblib/print.rb @@ -3,21 +3,6 @@ # # ISO 15.3.1 module Kernel - ## - # Print human readable object description - # - # ISO 15.3.1.2.9 Kernel.p - # ISO 15.3.1.3.34 Kernel#p - def p(*args) - i = 0 - len = args.size - while i < len - print args[i].inspect, "\n" - i += 1 - end - args.__svalue - end - # ISO 15.3.1.2.11 Kernel.puts # ISO 15.3.1.3.39 Kernel#puts def puts(*args) diff --git a/src/kernel.c b/src/kernel.c index 2fd990242..ab606dec4 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -547,6 +547,25 @@ mrb_obj_ceqq(mrb_state *mrb, mrb_value self) return mrb_false_value(); } +// ISO 15.3.1.2.9 Kernel.p +// ISO 15.3.1.3.34 Kernel#p +// +// Print human readable object description +// +static mrb_value +mrb_p_m(mrb_state *mrb, mrb_value self) +{ + mrb_int argc; + mrb_value *argv; + + mrb_get_args(mrb, "*", &argv, &argc); + for (mrb_int i=0; i