aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorEduardo Julian2015-10-01 12:59:32 -0400
committerEduardo Julian2015-10-01 12:59:32 -0400
commit171b856f378e09e8e5e6dd3528c404eb9cf9560e (patch)
tree103fccc8e02e4a76f6e37203e6541de819bbebfa /README.md
parent3e2ce4d30fd457205b0d0268d870d47a8d1ec738 (diff)
Updated README for v0.3
Diffstat (limited to 'README.md')
-rw-r--r--README.md30
1 files changed, 9 insertions, 21 deletions
diff --git a/README.md b/README.md
index 8cfb38288..db59aa6e1 100644
--- a/README.md
+++ b/README.md
@@ -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.