Eel: The Explicit Event Library


“Event-driven programming divides a program’s logical control flow into a series of callback functions, making its behavior difficult to follow. However, current program analysis techniques can preserve the event model while making event-driven code easier to read, write, debug and maintain. We designed the Explicit Event Library (libeel) to be amenable to program analysis, and created tools to graphically expose control flow, verify resource safety properties, and simplify debugging. The result sustains the advantages of event-driven programming while adding the important advantage of programmability.”

Making Events Less Slippery with eel.
Ryan Cunningham and Eddie Kohler, Proc. 10th Hot Topics in Operating Systems Symposium (HotOS-X), Santa Fe, New Mexico, June 2005, pp 13-18.

The eel project formed Ryan Cunningham's Masters thesis at UCLA. In early 2005 Ryan graduated, went to San Francisco, cofounded Jumpcut, and got married. The code may be downloaded here, but for actual use you should check out Tame; eel is no longer supported.

Download eel-0.01.tar.gz — 1531594 bytes
Includes a version of CIL, which in turn requires a working SML installation. Several READMEs worth of documentation are in the tarball too.

Others have taken advantage of eel's convenience for analysis:

Eddie Kohler