diff options
| author | Eduardo Julian | 2015-10-01 12:59:32 -0400 | 
|---|---|---|
| committer | Eduardo Julian | 2015-10-01 12:59:32 -0400 | 
| commit | 171b856f378e09e8e5e6dd3528c404eb9cf9560e (patch) | |
| tree | 103fccc8e02e4a76f6e37203e6541de819bbebfa /README.md | |
| parent | 3e2ce4d30fd457205b0d0268d870d47a8d1ec738 (diff) | |
Updated README for v0.3
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 30 | 
1 files changed, 9 insertions, 21 deletions
| @@ -7,29 +7,25 @@ It's meant to be a functional, statically-typed Lisp that will run on several pl  ### What's the current version? -v0.2 +v0.3  ### How far ahead is the project?  The Java-bytecode compiler is almost complete. -A few features are missing and the compiler is not as fast as I would like. +Type-inference is halfway done and the compiler is not as fast as I would like. -However, programs can be written to try out Lux and get a feeling for the language. +However, programs can be written that can interop with the JVM and you can even publish Lux libraries to Clojars or Maven.  ### How can I use it? -Download the 0.2 compiler from here: https://github.com/LuxLang/lux/releases/download/0.2.0/lux-jvm-0.2.0-standalone.jar +Download the 0.3 compiler from here: https://github.com/LuxLang/lux/releases/download/0.3.0/luxc.jar  Once you download the compiler, you'll want to create a directory named "source" in the same directory where the compiler is located.  You can run the compiler like this: -	java -jar -Xss4m lux-jvm-0.2.0-standalone.jar program - -The **program** module is already inside **source/** to make it easier to start. - -##### Note: You can download all the files inside the source/ directory in this repo to get started. +	java -jar -Xss4m luxc.jar compile <program-module-name>  This will generate a directory named "target" and put all the .class files there.  Then, you can run the program like this: @@ -119,15 +115,15 @@ Custom pattern-matching basically means that you can use macros to provide custo  For instance, the **list** and **list&** macros are used to build lists.  But you can also use them to destructure them inside pattern-matching: -	(case (: (List Int) (list 1 2 3)) -	  (#Cons [x (#Cons [y (#Cons [z #Nil])])]) +	(case (: (List Int) (@list 1 2 3)) +	  (#Cons x (#Cons y (#Cons z #Nil)))  	  (#Some ($ int:* x y z))  	  _  	  #None) -	(case (: (List Int) (list 1 2 3)) -	  (\ (list x y z)) +	(case (: (List Int) (@list 1 2 3)) +	  (\ (@list x y z))  	  (#Some ($ int:* x y z))  	  _ @@ -177,14 +173,6 @@ Just head to the wiki and check out the documentation for the currently availabl  ## Caveats -### Errors -The compiler is not fully stable so you might get an error if you do anything funny. - -Also, the error messages could really use an overhaul, so any error message you get will probably startle you. - -Don't worry about it, version 0.3 will improve error reporting a lot. -If you have any doubts, feel free to ask/complain in the Google Group. -  ### Tags  Tags that are unprefixed will just assume the prefix of the current module you're in. | 
