[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