diff --git a/ChangeLog b/ChangeLog index 192b5bca3f..38ed367bc0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Dec 11 15:20:39 2007 Yukihiro Matsumoto + + * object.c (Init_Object): singleton_method_{added,removed,undefined} + hooks should be defined for BasicObject. [ruby-dev:32531] + + * eval.c (Init_eval): method_missing should be defined for all + objects; moved to BasicObject. + Tue Dec 11 14:27:50 2007 Nobuyoshi Nakada * transcode.c (transcode_loop): get rid of SEGV at sequence can not be diff --git a/eval.c b/eval.c index 4057b09f61..4d0601c45d 100644 --- a/eval.c +++ b/eval.c @@ -2731,10 +2731,11 @@ Init_eval(void) rb_define_virtual_variable("$@", errat_getter, errat_setter); rb_define_virtual_variable("$!", errinfo_getter, 0); + rb_define_private_method(rb_cBasicObject, "method_missing", rb_method_missing, -1); + rb_define_global_function("eval", rb_f_eval, -1); rb_define_global_function("iterator?", rb_f_block_given_p, 0); rb_define_global_function("block_given?", rb_f_block_given_p, 0); - rb_define_global_function("method_missing", rb_method_missing, -1); rb_define_global_function("loop", rb_f_loop, 0); rb_define_method(rb_mKernel, "respond_to?", obj_respond_to, -1); diff --git a/object.c b/object.c index 1fe102f1ea..25a9c29752 100644 --- a/object.c +++ b/object.c @@ -2351,6 +2351,10 @@ Init_Object(void) rb_define_method(rb_cBasicObject, "!@", rb_obj_not, 0); rb_define_method(rb_cBasicObject, "!=", rb_obj_not_equal, 1); + rb_define_private_method(rb_cBasicObject, "singleton_method_added", rb_obj_dummy, 1); + rb_define_private_method(rb_cBasicObject, "singleton_method_removed", rb_obj_dummy, 1); + rb_define_private_method(rb_cBasicObject, "singleton_method_undefined", rb_obj_dummy, 1); + rb_mKernel = rb_define_module("Kernel"); rb_include_module(rb_cObject, rb_mKernel); rb_define_private_method(rb_cClass, "inherited", rb_obj_dummy, 1); @@ -2396,10 +2400,6 @@ Init_Object(void) rb_define_method(rb_mKernel, "is_a?", rb_obj_is_kind_of, 1); rb_define_method(rb_mKernel, "tap", rb_obj_tap, 0); - rb_define_private_method(rb_mKernel, "singleton_method_added", rb_obj_dummy, 1); - rb_define_private_method(rb_mKernel, "singleton_method_removed", rb_obj_dummy, 1); - rb_define_private_method(rb_mKernel, "singleton_method_undefined", rb_obj_dummy, 1); - rb_define_global_function("sprintf", rb_f_sprintf, -1); /* in sprintf.c */ rb_define_global_function("format", rb_f_sprintf, -1); /* in sprintf.c */