[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.
<http://subversion.tigris.org/>
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
---
Limitations:
* 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.
<http://www.sbcl.org/>
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)
---
Running:
'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:
--updoc
Invoke the Lisp-implemented Updoc, interpreting the arguments as
Updoc file pathnames.
--translate
Parse the sole argument as E source and print the Common Lisp form
it is compiled into.
--lrepl
Enter the Lisp-implemented E REPL.
--irc
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