Fix comment
[jscl.git] / README.org
index 5bcefd5..bfa6cc6 100644 (file)
@@ -1,28 +1,44 @@
-* 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.
 
-  You can try a demo [[http://davazp.net/ecmalisp/ecmalisp.html][here]].
+** Getting started
 
-  It is just an experiment, of course. But it supports partially most
-  common special operators, functions and macros. In particular:
+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
+
+=git clone git@github.com:davazp/jscl.git=
+
+/load/ jscl.lisp in your Lisp, and call the bootstrap function to
+compile the implementation itself:
+
+=(jscl: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 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]]).
+  - 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.
+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/