Ecmalisp is a Lisp-to-Javascript compiler, which is bootstrapped
from Common Lisp and executed from the browser.
+
+** Getting started
- You can try a demo [[http://davazp.net/ecmalisp/ecmalisp.html][here]].
+You can try a demo [[http://davazp.net/ecmalisp/ecmalisp.html][here]]. But if you want to hack ecmalisp, you will
+have to download the repository
- It is just an experiment, of course. But it supports partially most
- common special operators, functions and macros. In particular:
+=git clone git@github.com:davazp/ecmalisp.git=
+
+/load/ ecmalisp.lisp in your Lisp, and call the bootstrap function to
+compile the implementation itself:
+
+=(bootstrap)=
+
+It will generate a ecmalisp.js file in the top of the source tree. Now
+you can open ecmalisp.html in your browser and use it.
+
+** Status
+It is just an experiment, of course. But it supports partially most
+common special operators, functions and macros. In particular:
- Multiple values
- Explicit control tranfers ([[http://www.lispworks.com/documentation/HyperSpec/Body/s_tagbod.htm][tagbody]] and [[http://www.lispworks.com/documentation/HyperSpec/Body/s_go.htm][go]])
- Optional and keyword arguments
- SETF places
- Packages
+
+The compiler is very verbose, some simple optimizations or
+/minification/ could help to deal with it.
- The compiler is very verbose, some simple optimizations or
- /minification/ could help to deal with it.
-
- Most of the above features are incomplete. It is not so bad because
- so the compiler is not too heavy, but it would be great if we were
- just enough compliant to include a [[http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/iter/loop/mit/0.html][loop implementation]], a format
- implementation, or even [[http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/oop/0.html][CLOS]] or non-CLOS OOP.
+Most of the above features are incomplete. It is not so bad because
+so the compiler is not too heavy, but it would be great if we were
+just enough compliant to include a [[http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/iter/loop/mit/0.html][loop implementation]], a format
+implementation, or even [[http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/oop/0.html][CLOS]] or non-CLOS OOP.
- /Feel free to hack it yourself/
+/Feel free to hack it yourself/