* Ecmalisp 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 tranfers ([[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 exit ([[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/