[e-lang] Re: Benefits of partial ordering
tyler.close at gmail.com
Tue Apr 19 22:00:20 EDT 2005
On 4/19/05, Allen Short <washort at divmod.com> wrote:
> On Tue, 2005-04-19 at 11:00 -0700, Tyler Close wrote:
> > This was a long time ago, but I think I can recall the gist of things.
> > The approach I was talking about in that email changed the ordering
> > property so that passing a far reference to another Vat created a new
> > far reference with an indepedent timeline. This means that it was OK
> > for the receiving Vat to deliver a message to the target object before
> > a message sent on the original reference.
> Ah, so you just don't provide ordering guarantees at all. That makes
> more sense. :)
It's a little more fine than that. I argue that it makes more sense to
design interfaces that do not depend on any ordering guarantee, but I
provide a protocol that enables you to implement an ordering
guarantee. Using the web-amp, you can implement a partial order
guarantee just as strong as what is currently provided in E.
Note that even the ordering guarantee specified in the quoted text
above provides a full ordering of messages between two Vats. Often
this lesser guarantee is all that is actually used by code that
depends on E's partial order guarantee. Sharing access to a finite
state automata is an odd thing to do.
> My primary interest in implementing 3-vat references is so that I can
> use IOU;
Ok, so I'm interested... What are you up to?
> upon reflection, it seems the only ordering constraint that's
> essential for its use is making sure that deposits and withdrawals occur
> in the right order, and that is probably feasible with explicit
I specifically designed the IOU protocol to not require partial
ordering, nor EQ semantics for references. You can use it without
tackling these tricky issues.
> Excellent. Communication between E and Python is something I've wondered
> how to implement reasonably. When I need it, this is where I'll
> start. :)
I also recommend the web-calculus for Python to Python communication.
The web-calculus is just a very good way to create interfaces.
The web-calculus is the union of REST and capability-based security:
More information about the e-lang