Guarana (was: slate comments)

Alexandre Oliva
20 Mar 2000 23:25:09 -0300

[I hope you don't mind I'm Cc:ing the Guaranį mailing list]

On Mar 20, 2000, "Jecel Assumpcao Jr." <> wrote:

> I have just taken a quick look at some Guaranį papers and it seems
> like a very interesting approach to this problem.

Thanks :-)

> It seems like a more disciplined version of Apertos.

We have certainly borrowed some ideas from Apertos, but I had never
seen Guaranį as that.  Interesting point of view ;-)

> On the other hand, the issues CodA addressed were mostly orthogonal
> to meta-configuration.

Indeed.  They actually had more to do with the interception mechanism.

> 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.  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

Alexandre Oliva    Enjoy Guaranį, see
Cygnus Solutions, a Red Hat company        aoliva@{redhat, cygnus}.com
Free Software Developer and Evangelist    CS PhD student at IC-Unicamp
oliva@{,}   Write to mailing lists, not to me