[E-Lang] Announcing the internal E 0.8.9t Release: Syntax Reform & Better eBrowser

Mark S. Miller markm@caplet.com
Wed, 04 Apr 2001 21:09:07 -0700

At http://www.erights.org/download/stl-0-8-9-t/index.html you will find the 
latest internal development release of E, stl-E-0.8.9t.  This should be the 
last non-distributed release.  Now that this release is out, my main
development priority is reviving CapTP in order to create and release 
0.8.10.  It's been way too long since we had a production release of E, and 
we've got several customers that need it asap!

The highlights of this internal development release are 

* A substantial syntax reform, due to discussion on e-lang, and a "pocket" 
switch (check out eprops.txt or eprops-template.txt) so these changes can be 
enabled or disabled individually for now, to ease the transition of existing 
developers to the new syntax.  Many other useful configuration switches have 
also been added to eprops.txt to aid development work.

* A much much better eBrowser due to MarcS.  I'm now using eBrowser 
regularly for my E language development.  On syntax error, eBrowser selects 
the place in the source where the error appears, as any Smalltalk programmer 
would demand.  This was necessary to save our sanity when converting to the 
new syntax.  I'll leave further explanation to MarcS.

* The reluctant bundling of BYacc/Java.  The home page for BYacc/Java 
http://www.lincom-asg.com/%7Erjamison/byacc/ seems to have disappeared, and 
I can't find a new home page or working contact information for Bob Jamison 
(the author of BYacc/Java).  So this release's source distribution bundles 
in sources for BYacc/Java that I happened to grab in time, and the E build 
process now also builds BYacc/Java on the way to using it.  If you know the 
current whereabouts of BYacc/Java or Bob Jamison, please let me know.  (Even 
better: If someone would convert the E parser to be ANTLR based, we may be 
able to stop using BYacc/Java.)

* A Java type-based overload resolution mechanism.  When E calls an 
overloaded Java method by simple name, if the argument list is type 
compatible with exactly one of the Java methods, that one is invoked.  
Otherwise an exception is thrown.  Using Java (and especially Swing) from E 
is now much more pleasant.

* Many bugs fixed, some new ones identified.  A major ELib fix and 
identification both due to Dean:

Fixed: The old Runner.callNow mechanism, for allowing pseudo-synchronous 
entry into a vat, was executing the event in the wrong thread.  Dean 
contributed a fix which is now integrated in this release.

Identified: I started to suspect we had a deadlock bug that (horrors) occurs 
only once in a blue moon, so was almost impossible to observe in a debugger. 
 Dean, in looking at the code in Runner.java spotted it in only a few 
minutes, but unfortunately too late to make it into 0.8.9t.  His fix for 
this, and his suggestions for a much simpler Runner.java, will all be in 0.8.10

* Various bugs in the E build process fixed.  Thanks to Chris Hibbert and 
Sergey Ivanov.