Emily 0.41


Emily is a capability-based language written on top of OCaml, as described in the 2006 HP tech report, “How Emily Tamed the Caml” by Marc Stiegler and Mark Miller. It was written originally for Windows, and I ported it to OS X and Linux for my own use. I'm posting the port here in case anyone is interested.

Emily 0.41 is based on Marc Stiegler's release of Emily 0.4, available here. I made only operating-system-specific changes, as you can verify by reading CHANGES.txt or by comparing this distribution to Marc's earlier one. Installation instructions for OS X and Linux are in INSTALL.txt. The original Windows instructions in README.txt should still work, but I have no way to test them.

This version of Emily retains the MIT X License of version 0.4. And like its predecessor, Emily 0.41 contains modifications of files from the OCaml system which carry their LPGL copyright notices.

You will, of course, need an installation of OCaml. Any recent version is likely to work; I used 3.10.

The only incompatibility that I encountered was in Linux, where the OCaml input function reads no more than 4K. (It's not a bug; the behavior is consistent with the OCaml specifications.) As a result, safecp under Linux will copy only the first part of a long file. It's easy enough to adjust the code by adding a loop, as is done in the copyFile function of dircp. Compare safecp/capMain.ml and dircp/capMain.ml.


Rett Bull
Pomona College
October 4, 2007