Longer README
authorDavid Vázquez <davazp@gmail.com>
Mon, 15 Apr 2013 17:17:12 +0000 (18:17 +0100)
committerDavid Vázquez <davazp@gmail.com>
Mon, 15 Apr 2013 17:17:12 +0000 (18:17 +0100)
README.org

index 558385a..5bcefd5 100644 (file)
@@ -1,4 +1,28 @@
 * Ecmalisp
 
-Ecmalisp is a in-progress Lisp-to-Javascript compiler, which is
-bootstrapped from Common Lisp and executed from the browser.
+  Ecmalisp is a Lisp-to-Javascript compiler, which is bootstrapped
+  from Common Lisp and executed from the browser.
+
+  You can try a demo [[http://davazp.net/ecmalisp/ecmalisp.html][here]].
+
+  It is just an experiment, of course. But it supports partially most
+  common special operators, functions and macros. In particular:
+
+  - Multiple values
+  - Explicit control flow ([[http://www.lispworks.com/documentation/HyperSpec/Body/s_tagbod.htm][tagbody]] and [[http://www.lispworks.com/documentation/HyperSpec/Body/s_go.htm][go]])
+  - Static and dynamic non local exist ([[http://www.lispworks.com/documentation/HyperSpec/Body/s_catch.htm][catch]], [[http://www.lispworks.com/documentation/HyperSpec/Body/s_throw.htm][throw]]; [[http://www.lispworks.com/documentation/HyperSpec/Body/s_block.htm][block]], [[http://www.lispworks.com/documentation/HyperSpec/Body/s_ret_fr.htm][return-from]]).
+  - Lexical and special variables. However, declare expressions are
+    missing, but you can /proclaim/ special variables.
+  - Optional and keyword arguments
+  - SETF places
+  - Packages
+
+  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.
+
+  /Feel free to hack it yourself/