[E-Lang] New Page: Partially Ordered Message Delivery
Dean Tribble
tribble@e-dean.com
Fri, 02 Mar 2001 00:19:32 -0800
>At 02:53 AM Wednesday 2/28/01, Tyler Close wrote:
> >(Assuming we
> >keep Joule-style ordering of messages, as Dean and MarcS have
> >convinced me we should.)
>
> >5) All arguments in an eventual send message are copies of their
> > local representations. Copying a PassByProxy reference creates
> > a new PassByProxy reference that marks the beginning of a new
> > timeline for messages directed at the indicated target object.
> > This new timeline is in no way connected to the timeline of the
> > copied reference.
> >
> >This is basically Joule message ordering.
I'm not sure this is correct. See below.
>Since you now agree with two party full-order, could you restate your
>proposed non-fail-stop semantics of message delivery in this context? I
>think the two issues are crucially tied together.
Note that it is not quite two-party full-order: if I make a second
reference within the *same* party, are messages to each unordered with
respect to each other.
>As to the three-party controversy -- forking-order vs independent-order --
>before continuing I'd like to hear from Dean on what Joule's semantics
>actually are. Not as an argument (despite empirical evidence to the
>contrary, Joule's choices aren't necessarily right ;)) but for orientation
>and terminology as we continue the discussion.
:-) Forking the Acceptor (which is not Joule semantics, but is isomorphic
with it, I believe) can be thought of as an operation on an Acceptor. All
messages to the forked Acceptor are *after* all messages sent on the
original Acceptor before the fork, but are *unordered* with respect to all
messages sent on the original Acceptor after the fork. Thus, the fork is
the creation of a branch in the partial order.
Of course in Joule, many more things result in a fork than in E. E works
hard to ensure no forks within a single Vat.