transcode.c, variable.c, vm.c, vm_insnhelper.c, vm_method.c:
replace calls to rb_error_frozen() with rb_check_frozen(). a
patch from Run Paint Run Run at [ruby-core:32014]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
method ids that belong to the class or the singleton class(es) of
the object. [ruby-dev:41613]
* class.c: on the other hand, Module#public_instance_methods, etc.
returns method ids that belong to the module itself (even if the
module is singleton, it does not return method ids of super
class(es); see [ruby-core:28837]).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
gain. See [ruby-dev:41067].
* object.c: FL_MARK of some objects by lazy sweep is copied when
RVALUE is cloned. These objects are not marked in the mark phase.
So delete FL_MARK.
* class.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to_ary. Just call. [ruby-core:23738]
* eval.c (rb_check_funcall): new function with method existence
check. returns Qundef when the method does not exist.
* enumerator.c (enumerator_rewind): just call method, using
rb_check_funcall(). [ruby-core:23738]
* error.c (exc_equal): ditto.
* object.c (convert_type): ditto.
* error.c (rb_name_err_mesg_new): export function.
* eval.c (make_exception): ditto.
* io.c (pop_last_hash): return early when the last argument is nil.
* io.c (rb_io_puts): treat T_STRING specially for small
optimization.
* vm_eval.c (raise_method_missing): skip method call if possible
using rb_method_basic_definition_p().
* vm_eval.c (method_missing): ditto.
* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_debug): test
suites changed to ignore exceptions caused by just-call policy.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Object#to_s is not overridden. [ruby-core:24425]
* class.c (rb_obj_basic_to_s_p): new function.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
argument. base will be ignored for non string values.
suggested by Sam Carr at RubyFoo Lounge at London.
* test/ruby/test_integer.rb (TestInteger#test_Integer): test
updated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Handles eigenclasses and plain classes transparently.
(make_metaclass): renamed from make_metametaclass.
(METACLASS_OF): new utility macro
(META_CLASS_OF_CLASS_CLASS): ditto.
(ENSURE_EIGENCLASS): ditto.
(make_singleton_class): extracted from rb_singleton_class.
(boot_defclass): moved from object.c
(Init_class_hierarchy): extracted from Init_Object.
(rb_make_metaclass): refactored.
(singleton_class_of): extracted from rb_singleton_class.
(rb_singleton_class): refactored.
(rb_define_singleton_method): it needs a metaclass only
but not its metametaclass.
* object.c: booting class hierarchy was moved to class.c
for keeping dependency between compilation units least.
(Init_Object): extracting the booting into
Init_class_hierarchy.
(boot_defclass): moved to class.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
values. [ruby-dev:37656]
* object.c (rb_to_float): new function to type check floats.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
BasicObject, Object, and Module.
The metameta-classes of them are now the metaclass of Class, as the
metameta-calss of Class is.
* object.c (boot_defmetametaclass): added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
a patch from Tadashi Saito <shiba at mail2.accsnet.ne.jp>
in [ruby-dev:36102].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(not TypeError any longer) would be raised. [ruby-dev:35982]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e