[E-Lang] Ordering

Jonathan A Rees jar1@mumble.net
Fri, 20 Jul 2001 09:27:19 -0400


   Date: Thu, 19 Jul 2001 23:50:50 -0700
   From: "Mark S. Miller" <markm@caplet.com>

   ("Two Party" in the terminology of 
   http://www.erights.org/elib/concurrency/partial-order.html )

I don't know how I missed this page, but it is a good explanation, and
solves at least my delegation objection.  It also revises my
understanding of "what is a capability (in E)".  When I get some time
I'll look to see how you implement this.

   Trevor Morris (of EC at the time) pointed out how pointless this
   effort was.  The property we were rebuilding expensively with
   idioms was already provided by the implementation for free.  Rather
   than declaring all programs which were unknowingly relying on such
   ordering buggy, why don't we just declare this property an official
   part of the language, and turn this class of undiagnosed bugs into
   correct behavior, all without needing to change any code?

I would worry that there now might be a 1% residue of even
harder-to-diagnose bugs masked by bundling the ordering constraints
with object reference copying, as opposed to having an orthogonal
ordering mechanism.  But that's software for you.  Also, consider
communication patterns between E objects that really want to be
unordered.  How would one implement such patterns -- by going outside
of the inter-vat protocol by, say, sending sturdyrefs over UDP?  Or by
spawning a host of delegates whose only purpose is to receive
out-of-order messages on someone's behalf?

These are not central questions for E, so I don't expect answers.  I
will now calm down.

Thanks for all the references (so to speak).

Jonathan