X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=README.org;h=d6b5ebd46b01ff716ca2d1f0ce50d3def1b42070;hb=8f745edf63df796ff7a1df4ba31c2570e50de559;hp=f0c8d9dead3f0dbeef1ab749b96681112fce6395;hpb=9199bf1b0881c58067411ff2f9e9584f4d42e13d;p=jscl.git diff --git a/README.org b/README.org index f0c8d9d..d6b5ebd 100644 --- a/README.org +++ b/README.org @@ -1,12 +1,28 @@ -* Ecmalisp +* JSCL - Ecmalisp is a Lisp-to-Javascript compiler, which is bootstrapped + JSCL is a Common 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/jscl/jscl.html][here]]. But if you want to hack JSCL, 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/jscl.git= + +/load/ jscl.lisp in your Lisp, and call the bootstrap function to +compile the implementation itself: + +=(bootstrap)= + +It will generate a jscl.js file in the top of the source tree. Now you +can open JSCL.html in your browser and use it. + +** Status + +JSCL is and will be a subset of Common Lisp. Of course it is far +from complete, 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]]) @@ -16,13 +32,13 @@ - 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/