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