From: ts Date: 2001-10-01T20:15:24+09:00 Subject: [ruby-talk:21862] Re: Ruby internal (guide to the source) >>>>> "B" == Benoit Cerrina writes: B> which are the classes and the metaclasses (what is the significance of B> the parenthesis)? Object is a class (Object) is a metaclass B> What really confuses me is that I don't understand why there are two B> class instances for each B> of this core class: rb_cObject--> rb_singleton_class_new(rb_cClass) rb_cModule--> rb_singleton_class_new(rb_singleton_class_new(rb_cClass)) rb_cClass--> rb_singleton_class_new(rb_singleton_class_new(rb_singleton_class B> _new(rb_cClass))) This is not this. I replace () with Meta * +------------------+ * | | * Object---->Meta-Object | * ^ ^ ^ ^ | * | | | | | * | | +-----+ +---------+ | * | | | | | * | +-----------+ | | * | | | | | * +------+ | Module--->Meta-Module * | | ^ ^ | * OtherClass-->Meta-OC | | | * | | | * Class---->Meta-Class * ^ | * | | * +----------------+ horizontal arrow give the relation Class,Metaclass vertical arrow give the inheritance hierachy This mean that Object is the root of the system B> in any case I'll continue to read the source and I'll find out, its just B> that I'd like it to B> go faster. It's useless to go faster if you misunderstand something. Guy Decoux