James McCartney wrote:
> I hope this doesn't come across as adversarial since I am sincerely
> interested in this, but I am troubled by the sideways composition
> paper.
> It seems as if it is an existence proof that the id object model's
> intention of having "messaging semantics that are described entirely
> in terms of those same objects and messages" is not attained.
> Implementing sideways composition required changing send and bind
> which are not redefinable within the system. Only lookup can be
> redefined in the vtable. The sideways composition as implemented is
> still not able to handle multiple delegates. There isn't a way for an
> object A that wants to delegate first to B and then to C (if B does
> not already itself delegate to C). The single delegation mechanism is
> hard coded in bind which is not redefinable from within.
> 
> 

There is nothing that prevents bind() from being decomposed with
messages to other object: bind() is decomposed into lookup().

For example: libid_bindv() does infact use send() to do the lookup()
operation; it only uses the single delegation lookup() behavior if a
recursion is detected.  There maybe some additional MOP-like protocols
that can remove the need for the recursion detection.

There are other object systems allow send() to be composed by lookup()
and apply() which can be redefined without falling into infinite
regress: http://kurtstephens.com/pub/mos

Kurt


_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to