ERights Home download 
Back to: E 0.9.0a Download and Install E 1st child: Highlights of 0.9.1b On to: E 0.9.2a Download and Install E

Download and Install
E 0.9.1b

Jump to

Download by Platforms & Versions
Highlights this Version
(now on a separate page)
SWT Support
Variants and Subsets of E
Environment Variables

Are you sure you want the 0.9.1b version?

Download by Platforms & Versions

Earlier versions of E have been tested and run on MSWindows (95, 98 FE, 98 SE, NT, 2K), Linux, Solaris, FreeBSD, and now Mac OS X (which is really a FreeBSD platform with its own GUI toolkit and JDK). It should run on other UNIX platforms as well, given an adequate version of Java and bash (see below). It should also run without problems on MSWindows ME, but as far as we are aware, no one has tried this. If you experience any problems, or have any other informative experiences, please let me, the, know, or report a bug.

The Installing links below describe how to install, and run various forms of the binary distribution. The Building links describe how to build E from the source release. The Download links will download each corresponding form of the release to your machine. (If a binary distribution isn't available for your platform, you can use the "purej" variant, which does not include SWT, or download and build the source distribution. If you have any problems building from the source distribution, please let us know.)


Source Distribution
All Unix-like platforms
(including Cygwin & MacOS X)


All Java1.3 platforms
SWT-ready but not bundled


MSWindows 9x/ME/NT/2k/XP
Includes SWT

Variants and Subsets of E

A complete E system is persistent, distributed, and capability-secure both within and between processes. Incomplete variants of E are tagged by which of these features are left out.

Feature Prefix if
feature is absent
What it stands for







capability security

capability security


Distributed Application Framework
Forsaking Encryption

A non-persistent E is called time-local since an object only exist as long as its hosting process does. A non-distributed E is called space-local if an object and all references to it only exist within its hosting process.

E by definition provides distributed capability-security -- the ability for objects in mutually suspicious processes to safely cooperate. If it looks like E and it quacks like E, it might be a duck; but if it doesn't provide distributed capability security, it's not E. A system that's otherwise equivalent to E, but doesn't provide distributed capability security, is called daffE. A distributed E can only be implemented by means of strong crypto, of course, for which we are using code derived from the Cryptix library (in accord with the terms of their open-source license). In a space-local system, no distributed insecurity can arise, so such a system would be an sl-E rather than an sl-daffE.

E is designed to provide local capabillity-security -- the ability for mutually suspicious objects hosted by the same process to safely cooperate, and the use of capability discipline to determine which of its hosting process's authorities it may exercise. Such objects could be executing untrusted code -- code that the hosting process (or its owner) doesn't need to fully trust.

This is not an "otc-" release of E. since the safeScope Mutability breaks confinement bug has now been fixed!


Versions & Types of Java

In refering to various versions of Java, we follow Sun's terminology and numbering. A Java Runtime, or jre, is adequate to run standard Java binary programs (class files & resources). A Java Development Kit, or jdk, is adequate both to build a program from sources and to run it. A jdk is a superset of the corresponding jre, and their version numbers are always in synch. Each successive version of the jdk/jre from Sun effectively defines a new version of the Java & JVM standards, except that Sun has introduced a numbering inconsistency: The Java/JVM 2.x standard corresponds to Sun's jdk/jre 1.2.x. We ignore this inconsistency and refer to both as 1.2.x.

This version of E requires a jre >= 1.3.1. E no longer supports Java < 1.3.1. To build E from sources, a corresponding jdk is required.

fixed bugNote: E does not install correctly when using JDK1.4beta on Windows2000 -- it fails to exec the "winfo.exe" executable, used during install time to gather info about your Windows system. It seems to be a more general problem in execing executables. If you experience this problem, we suggest you install using a JDK1.3.* or a JDK >= JDK1.4.0-rc. ("rc" means "release candidate" and is post-beta.) Once installed, E should work fine with any JDK >= 1.3.1, except for the inability to exec other programs if you're using the 1.4 beta.

Some places to get a jre or jdk:

bash & env
already included
already included
Mac OS X
already included
already included
already included

Obtaining Bash

To build E requires a bash available as "/bin/bash". If bash is unavailable for your platform, it seems to work better than it should to make a symbolic link from "/bin/bash" to "/bin/sh". If you try this and run into problems, please report these problems.

To run "rune", the E driver script, requires a bash >= 2.01 available on your PATH, and the env program available as /usr/bin/env. The E driver script is required (and must also be on your PATH) in order to be able to run E scripts (*.e files) directly as executables. To check your bash version, type


to your bash shell. On Windows, both bash and env are available as part of the Cygwin distribution, as explained here.

Unless stated otherwise, all text on this page which is either unattributed or by Mark S. Miller is hereby placed in the public domain.
ERights Home download 
Back to: E 0.9.0a Download and Install E 1st child: Highlights of 0.9.1b On to: E 0.9.2a Download and Install E
Download    FAQ    API    Mail Archive    Donate

report bug (including invalid html)

Golden Key Campaign Blue Ribbon Campaign