Guarana (was: slate comments)

Jecel Assumpcao Jr. jecel@tunes.org
Tue, 21 Mar 2000 21:14:22 -0300


Alexandre Oliva wrote:
> > It seems to me, for example, that it would be easy to implement CodA
> > *in* Guaranį (you just have to intercept message sending and
> > method returns, right?).
> 
> It is indeed possible, but not without a lot of effort.  The main
> problem is that Guaranį doesn't supply outgoing interception, which
> you'd need to implement something like Send.

Ok, in the papers I have read you didn't list what operations could be
intercepted.

> We've been discussing
> how to emulate it in the Guaranį mailing list, and it's not
> impossible, but it takes a non-negligible amount of work (that I'll
> probably end up doing some day, unless someone else beats me to it :-)
> and it would benefit from a minor extension of the MOP to avoid having
> to rely upon user-supplied information.  In essence, the idea is to
> arrange that, before a method in object A is started, one of its
> meta-objects, say MA, registers a notifier meta-object MC in any
> object C that A might invoke.  Whenever MC intercepts an operation in
> C, it checks that the operation was started directly by A, and not by
> any B that A might have invoked, and notifies A's outgoing interceptor
> about it.  More details at http://www.egroups.com/group/guarana/81.html?

That seems like too much of an effort to do something the system wasn't created
to do in the first place.

As long as you intercept message reception and returned results, you can
implement most of CodA (6 out of 7 meta-objects; just the send meta-object
would be missing) in Guaranį as it is now. Only the interaction between the
meta-objects would have to be in a different style since a strict emulation of
CodA would result in a lot of broadcast messages (which I imagine isn't too
efficient).

-- Jecel