> >> >> So questions:
> >> >> Is ProtoObject should implement #class?
> >> >> Can we move #class method from Object to ProtoObject?
> >> >>
> >> >
> >> > ups....good catch! indeed, we should move it to ProtoObject.
> >> >
> >> mm.. why?
> >
> >
> > Because ALL objects do have a class. Right? if you want to change the
> > semantics of #class then just subclass and change it.
>
> mmm.. no.
> IMO, in pure sense, all objects having behavior. but behavior is not a
> class (and we can even have
> two classes to discriminate between them).
> yes, it is _almost_ a class.. but much more obscure.. i doesn't needs to
> be compatible with Class protocol.. You should know pretty well, what
> requirements VM side puts
> for a valid behavior: - superclass, methoddict, format.
> which enables VM to do method lookup and creating an instances.
>
> now, if you make ProtoObject to answer message #class, one will assume that
> the object it answers should conform to a full-fledged Class protocol.
> But of course it should not.
>
> Maybe i nitpicking about terminology.. but i think at that level we
> should make it clear:
> - all objects having behavior!
> - some object's behaviors are Classes
> - some object's behaviors are Metaclasses
> - but there could be any other.
>
>
I agree with all that. But as you said, I think you are going too low level
in details.
For example, I would call class to all your previous list. All objects have
a class, which can be Class, Metaclass, whatever.
In addition, if we don't add #class in ProtoObject, then there are some of
broken messages like #cannotInterpret: and #pointsTo since they send #class
to self.


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to