From 171b856f378e09e8e5e6dd3528c404eb9cf9560e Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Thu, 1 Oct 2015 12:59:32 -0400 Subject: Updated README for v0.3 --- README.md | 30 +++++++++--------------------- 1 file 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 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. -- cgit v1.2.3