Re: Loose type checking in E Chip Morningstar (chip@communities.com)
Mon, 12 Oct 1998 11:02:10 -0700 (PDT)

Tyler Close <tyler@lfw.org> writes:
>>No. Between vats we only have asynchronous sends. Otherwise E wouldn't be
>>deadlock-free.
>
>You have much more experience than I do at writing concurrent software;
>however, it would seem to me that being deadlock-free is small consolation
>for not being able to make atomic operations and thus create serializable
>transactions.

Remember that the motivation for E was to create not merely concurrent systems but distributed systems. Distributed systems have a degree of inherent, uncontrollable asynchrony that means atomicity is achievable only at the most extreme cost in performance and complexity. So we gave that up as a losing cause. Giving it up, however, means that deadlock something is we can now live happily without.

And don't discount just how difficult a problem creating deadlock free software is in a threaded environment. Ancedotally, the majority of the really nasty debugging problems we had in developing EC Habitats -- in particular, in developing the underpinnings of what is now the E runtime library itself -- were deadlock problems in those few areas where we couldn't avoid threading. (We couldn't avoid threading when building on top of Java libraries for, e.g., I/O, that were blocking). One of our mantras became "Threads Are Evil".

Note that one of the problems with deadlock bugs is way you are vulnerable to them even (or especially) when they are in other people's software. For example, we had to concoct some truly horrific workarounds to deal with the fact that the Javasoft JVM garbage collector and storage allocator can deadlock against each other (!).

Creating reliable software is hard enough by itself.

Chip


  Chip Morningstar                                    Electric Communities
  chip@communities.com             10101 N.DeAnza Blvd, Cupertino CA 95014
  http://www.communities.com/people/chip                      408-342-9522

	      "It's now safe to turn off your computer."
----------------------------------------------------------------------------