[E-Lang] Announcing the internal E 0.8.9t Release: Syntax Reform &
Mark S. Miller
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