|
|
Line 1: |
Line 1: |
- | This is an implementation of [[E|E programming language]] in Common Lisp.
| + | Placeholder/stub for now see [http://homepage.mac.com/kpreid/elang/e-on-cl/] |
| | | |
- | There are as yet no releases, but the source is available in a Git repository:
| + | ---- |
- | | + | [[stub]] |
- | : https://github.com/kpreid/e-on-cl
| + | |
- | | + | |
- | ==Status, Description==
| + | |
- | | + | |
- | The full E language is implemented, by compilation to Common Lisp and execution by the underlying CL implementation. The libraries are incomplete.
| + | |
- | | + | |
- | E-on-CL requires [[E-on-Java]] for:
| + | |
- | * Support for the E parser (which is written in [http://www.antlr.org/ ANTLR].
| + | |
- | * Parts of the library implementation (those <code>[[emaker]]</code>s which are not different)
| + | |
- | | + | |
- | There is Updoc and a REPL, written in CL.
| + | |
- | | + | |
- | IO is limited to:
| + | |
- | * Writing text to stdout and stderr.
| + | |
- | * Reading and writing files as text from absolute pathnames.
| + | |
- | * TCP sockets, as octets or a small selection of character encodings.
| + | |
- | * Unsafely accessing the underlying Lisp system.
| + | |
- | | + | |
- | ===Differences from E-on-Java===
| + | |
- | | + | |
- | Support for EIO and <code>DeepFrozen</code> auditing.
| + | |
- | | + | |
- | throw() and CatchExpr have been changed to reduce information leakage: see [[sealed throw]].
| + | |
- | | + | |
- | <code>makeEProxyResolver</code> is replaced with <code>[[makeProxy]]</code>, a safer interface.
| + | |
- | | + | |
- | Updoc does not ignore the return value of expressions when the updoc script omits them.
| + | |
- | | + | |
- | ==News==
| + | |
- | | + | |
- | For major announcements, watch [http://www.eros-os.org/mailman/listinfo/e-lang the e-lang mailing list]. For individual changes to the repository, [http://cia.navi.cx/stats/project/e-on-cl E-on-CL is monitored on cia.navi.cx] which offers status pages, RSS feeds, and IRC messages.
| + | |
- | | + | |
- | ==Requirements==
| + | |
- | | + | |
- | *A Common Lisp implementation.<p>E-on-CL is designed to be portable, but requires many nonstandard features for full operation. I use [http://www.sbcl.org/ SBCL], and therefore its support is the most complete. Other implementations E-on-CL includes some support for, roughly in order of completeness, are [http://ccl.clozure.com/ Clozure CL], [http://www.cons.org/cmucl/ CMUCL], [http://www.armedbear.org/abcl.html ABCL], [http://clisp.cons.org/ CLISP], [http://www.lispworks.com/downloads/index.html LispWorks], and [http://www.franz.com/downloads/trial.lhtml Allegro CL]. </p><p>Whether E-on-CL works on any given implementation (other than SBCL) will vary as I make changes. If it doesn’t run on an implementation you’d like to use, please let me know and I’ll see what can be done about it.</p>
| + | |
- | * The [http://www.cliki.net/asdf-install asdf-install]able libraries [http://www.cliki.net/bordeaux-threads bordeaux-threads], [http://www.cliki.net/cl-ppcre cl-ppcre], [http://www.cliki.net/cl-yacc cl-yacc], [http://www.cliki.net/cl-fad cl-fad], [http://www.cliki.net/genhash genhash], [http://www.cliki.net/rt rt], and [http://www.cliki.net/trivial-garbage trivial-garbage].
| + | |
- | * An existing [http://www.erights.org/download/ E-on-Java] installation.
| + | |
- | * One of either:
| + | |
- | ** the E-on-Java source distribution, placed at <code><var>$EHOME</var>/src</code> ({{XXX|This is an inappropriate location}}), or
| + | |
- | ** the [http://www.cliki.net/asdf-install asdf-install]able libraries [http://www.cliki.net/ZIP ZIP] and [http://www.cliki.net/Salza Salza], which will be used to extract <code>.emaker</code> files from <code><var>$EHOME</var>/e.jar</code>.
| + | |
- | * <code>bash</code> and <code>perl</code>, if you wish to use the standard startup script <code>clrune</code> (equivalent to <code>rune</code> in [[E-on-Java]].
| + | |
- | | + | |
- | ==Previous discussion / timeline==
| + | |
- | | + | |
- | Posts from me on the e-lang list containing information about E-on-CL:
| + | |
- | | + | |
- | # [http://www.eros-os.org/pipermail/e-lang/2004-December/010199.html 2004-12-11: Initial announcement]
| + | |
- | # [http://www.eros-os.org/pipermail/e-lang/2004-December/010210.html Early technical notes on the compilation method]
| + | |
- | # [http://www.eros-os.org/pipermail/e-lang/2004-December/010208.html Message dispatch and 'native' object definition]
| + | |
- | # [http://www.eros-os.org/pipermail/e-lang/2004-December/010241.html 2004-12-20: Status update]
| + | |
- | # [http://www.eros-os.org/pipermail/e-lang/2005-April/010563.html 2005-04-16: Repository available]
| + | |
- | # [http://www.eros-os.org/pipermail/e-lang/2005-April/010567.html Portability, naming, and usage info]
| + | |
- | # [http://www.eros-os.org/pipermail/e-lang/2005-April/010587.html More of the same]
| + | |
- | # [http://www.eros-os.org/pipermail/e-lang/2005-May/010605.html 2005-05-14: Reply to MarkM's comments on the source]
| + | |
- | # [http://www.eros-os.org/pipermail/e-lang/2005-June/010758.html 2005-06-25: Status update]
| + | |
- | # {{XXX|Fill in more recent info here.}}
| + | |
- | | + | |
- | [[Category:E implementations]] | + | |