[E-Lang] Announcing 0.8.10alpha1: Language Improvements

Mark S. Miller markm@caplet.com
Sun, 16 Sep 2001 06:37:32 -0700


The third and last part of the Highlights section:


* The new, much improved, Seaborn-Karp when-catch-finally expression: 
   o  In "when (x) -> done(y) {...", the success case will only see a y 
       that's the same as x. Further, a remote promise only resolved once 
       per vat, and so we can't get an intra-vat divergent resolution 
       inconsistency. (We all agree that we can't prevent a malicious vat 
       from causing an inter-vat inconsistency.) (*** need to find email link)
   o  The syntax and semantics are now more parallel to try-catch-finally: 
       there can be a chain of catch clauses followed by an optional finally 
       clause. These catch not just a broken resolution, but any problems 
       thrown by the success clause. (*** need to find email link)
   o  The when-catch-finally expression evaluates to a promise for the value 
       its done function will return. (The done function is the result of 
       expanding everything to the left of the "->".)  (*** need to find 
       email link) 

* Swinging Vats. We figured out and solved (due to Dean, thanks!) a terrible 
  lurking concurrency conflict between E's vat-scheduling assumptions vs 
  AWT/Swing. We now have front-end ("fe") vats, that execute in the AWT-Event 
  thread and use the AWT Event queue for their turns, and back-end ("be") 
  vats, that have their own thread and queue. All synchronous interaction with 
  AWT and Swing widgets should happen only in fe vats.
  ( Track this issue... ) 

* optMeta(brand). CapTP is now correctly using optMeta(brand) for opaque 
  rights amplification so that a given instance of a CapTP system will 
  recognize and see into its own remote pointers, but the remote pointers of 
  another instance (or of a different CapTP-like system) will be as opaque to 
  it as a local promise. (*** need to find email link)



        Cheers,
        --MarkM