[E-Lang] Progress & Non-Progress Report

Mark S. Miller markm@caplet.com
Tue, 15 May 2001 11:39:18 -0700


At 01:50 AM Tuesday 5/15/01, Tyler Close wrote:
>>In the proposed protocol, the issue is dealt with by using the WormholeOp to
>>reconcile the timelines before the forked reference arrives in the receiving
>>vat (VAtB).  The WormholeOp page explains some other possible options.
>
>So it sounds like the intended E semantics is that receipt of a reference 
>results in a join operation between that reference and all other references 
>in the same Vat that refer to the same target object. You want the comm 
>system to automatically collapse all the incoming timelines into a single 
>timeline. Is the simplified "==" definition the only reason for this?

Actually, I hadn't noticed the need for collapsing back to a single timeline 
until I'd encountered the consequences of giving up on 
http://www.erights.org/elib/distrib/captp/WormholeOp.html#simple-servers . 
This new requirement was a rude surprise, and violated my previous 
understanding of E, as well as the position I was taking in our earlier 
correspondence on partial orders.  Nevertheless, I think we need this 
property.  Does Droplets provide this property or something like it?


>I've got a potential problem here in supporting this in Droplets. I have to 
>be able to limit the lifespan of different timelines. This means that two 
>references may refer to the same target object, but one of those references 
>may be on a timeline that will be terminated while the other remains valid. 
>A reference does not represent unlimited ability to send messages to the 
>target. A reference represents the ability to send messages within a time 
>window determined by the reference host. So, two references may have the 
>same target, but different time windows. 

Does pass<A,B>(x) have the same time window as x?  If so, then we're back to 
the original problem.  If not, then Droplets reference forking is more 
magical than I would have expected.


>This means automatically joining 
>all references to the same target is not a sensible thing to do, the 
>intended time windows would get mixed up.
>
>Even if I found a nifty way to support the simpler definition of "==" (These 
>two references refer to the same target object), I'm not sure it would be a 
>good thing to do. If the two references have different time windows, they 
>represent different authority to the target object.

Since E has no such concept, I haven't thought about time windows.  But your 
stance on this certainly seems correct.  I currently have no idea how to 
reconcile these various issues.

But I'm glad I got the discussion started before I disappear.  I'm eager to 
see what kind of progress happens while I'm away.


        Arrivederci, a presto!  (Bye, see you soon!  (According to Barron's Italian))
        --MarkM