[e-lang] [ANN] E-on-Common-Lisp now available

Kevin Reid kpreid at attglobal.net
Sat Apr 16 21:43:15 EDT 2005

The complete source of E-on-Common-Lisp, or 'CL-E', is now public.

Currently, the only access method is via a Subversion repository.

Please post anything you can think to say about it -- from "It doesn't 
run on my system" to "Here's a patch to implement CapTP". Updoc test 
scripts for anything subtly broken would be particularly useful.


To get the source:

   $ svn checkout svn://slimy.com/cl-e/cl-e/trunk/ cl-e



   * Few IO capabilities. It can read files and argv, and write to 
stdout and stderr.

   * Large chunks of the E libraries are missing, such as CapTP, 
serialization, and term trees.

   * Requires Java E to do some of its work.


Runtime requirements:

   * A Common Lisp implementation, preferably a recent version of SBCL.

     CL-E is intended to run on many implementations but may not work 
completely - if you have access to an adequate but unsupported 
implementation I'd like to hear about it.

   * The Java implementation of E, and its source in the same location.

     It will be automatically located via `which rune`.

   * The Common Lisp libraries genhash, cl-ppcre, and cl-fad.

     If you are using SBCL, for example, they may be installed by:
       (require :asdf-install)
       (asdf-install:install :genhash :cl-ppcre :cl-fad)



'clrune' is a bash script analogous to 'rune' for Java E. Option help 
is available via 'clrune --help', but there are some important options 
which I will mention here:

'-l <path>' specifies the path to the Lisp executable to use. If not 
specified, $PATH will be searched using 'which'. The format of 
command-line arguments to properly invoke Lisp is currently guessed 
from the name of the executable.

'-q' attempts to hide all trace information given during startup.

'-p <parse-cache-file>' specifies a parse cache. CL-E does not contain 
a parser for E, and instead calls the Java implementation. This is 
noticeably slow, so a cache file may be specified; I highly recommend 
doing so. This option must come after -l and -q.

With no further options, it will run a script as Java E does (but fail 
if no filename is given). There are options which select other 
primitive actions:

       Invoke the Lisp-implemented Updoc, interpreting the arguments as
       Updoc file pathnames.
       Parse the sole argument as E source and print the Common Lisp form
       it is compiled into.
       Enter the Lisp-implemented E REPL.
       Start an IRC bot. The arguments are: <nick> <server> <channel>*


Running the tests:

   $ ./clrune -p parse-cache.sexp --updoc tests/

Kevin Reid                            <http://homepage.mac.com/kpreid/>

More information about the e-lang mailing list