On Jun 12, 2008, at 7:02 PM, 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.

The "Open, extensible object models" paper (henceforth "OEOM") does not claim to implement *all* possible messaging semantics, only *an* extensible object model and associated messaging semantics.


Implementing sideways composition required changing send and bind
which are not redefinable within the system.

Not within the object model described in OEOM, true. It's a simple, fixed object model implemented in C.

However, have you read the COLA paper (http://piumarta.com/papers/colas-whitepaper.pdf)? Section 6 describes a circular system where objects represent behavior, and the behavior is used to implement the object semantics. It also describes a multi-stage bootstrapping process by which the circular system can be realized.

The current implementation in SVN has reached the stage where Pepsi-in- Pepsi has been used to implement Jolt. The "final" step of implementing Pepsi-in-Jolt has not yet occurred.

The reason that I mention this is to highlight that sideways composition via Lieberman prototypes is orthogonal to this bootstrapping process. You can implement Jolt using Pepsi-without- prototypes; once you have it, you can use it to reimplement Pepsi. You can also (and I take this to be the main point of the COLA paper) extend the original Pepsi semantics to include prototypes, all within the running system (and certainly without compiling any more C files).

Cheers,
Josh


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.


--
--- james mccartney

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


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

Reply via email to