Makefile: fix recursive make of compiled impls.
[jackhill/mal.git] / README.md
index 4683422..4564bad 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,10 +1,12 @@
 # mal - Make a Lisp
 
+[![Build Status](https://travis-ci.org/kanaka/mal.svg?branch=master)](https://travis-ci.org/kanaka/mal)
+
 ## Description
 
 Mal is a Clojure inspired Lisp interpreter.
 
-Mal is implemented in 40 different languages:
+Mal is implemented in 43 different languages:
 
 * GNU awk
 * Bash shell
@@ -27,6 +29,7 @@ Mal is implemented in 40 different languages:
 * Java
 * JavaScript ([Online Demo](http://kanaka.github.io/mal))
 * Julia
+* Kotlin
 * Lua
 * GNU Make
 * mal itself
@@ -45,6 +48,8 @@ Mal is implemented in 40 different languages:
 * Rust
 * Scala
 * Swift
+* Tcl
+* Vimscript
 * Visual Basic.NET
 
 
@@ -84,7 +89,7 @@ FAQ](docs/FAQ.md) where I attempt to answer some common questions.
 
 ### GNU awk
 
-*The GNU awk implemenation was created by [Miutsuru kariya](https://github.com/kariya-mitsuru)*
+*The GNU awk implementation was created by [Miutsuru kariya](https://github.com/kariya-mitsuru)*
 
 The GNU awk implementation of mal has been tested with GNU awk 4.1.1.
 
@@ -160,7 +165,7 @@ coffee ./stepX_YYY
 
 *The Crystal implementation of mal was created by [Linda_pp](https://github.com/rhysd)*
 
-The Crystal implemenation of mal has been tested with Crystal 0.7.2.
+The Crystal implementation of mal has been tested with Crystal 0.8.0.
 
 ```
 cd crystal
@@ -178,6 +183,8 @@ The Elixir implementation of mal has been tested with Elixir 1.0.5.
 
 ```
 cd elixir
+mix stepX_YYY
+# Or with readline/line editing functionality:
 iex -S mix stepX_YYY
 ```
 
@@ -185,7 +192,8 @@ iex -S mix stepX_YYY
 
 *The Erlang implementation was created by [Nathan Fiedler (nlfiedler)](https://github.com/nlfiedler)*
 
-The Erlang implementation of mal requires [Erlang/OTP R17](http://www.erlang.org/download.html) and [rebar](https://github.com/rebar/rebar) to build.
+The Erlang implementation of mal requires [Erlang/OTP R17](http://www.erlang.org/download.html)
+and [rebar](https://github.com/rebar/rebar) to build.
 
 ```
 cd erlang
@@ -232,7 +240,7 @@ The Factor implementation of mal has been tested with Factor 0.97
 
 ```
 cd factor
-FACTOR_ROOTS=src factor -run=stepX_YYY
+FACTOR_ROOTS=. factor -run=stepX_YYY
 ```
 
 ### Forth
@@ -312,13 +320,25 @@ node stepX_YYY.js
 
 ### Julia
 
-The Julia implementation of mal has been tested with Julia 0.3.7.
+The Julia implementation of mal requires Julia 0.4.
 
 ```
 cd julia
 julia stepX_YYY.jl
 ```
 
+### Kotlin
+
+*The Kotlin implementation was created by [Javier Fernandez-Ivern](https://github.com/ivern)*
+
+The Kotlin implementation of mal has been tested with Kotlin 1.0.0-beta.
+
+```
+cd kotlin
+make
+java -jar stepX_YYY.jar
+```
+
 ### Lua
 
 Running the Lua implementation of mal requires lua 5.1 or later,
@@ -448,7 +468,7 @@ You must have [rpython](https://rpython.readthedocs.org/) on your path
 
 ```
 cd rpython
-make        # this takes a long time
+make        # this takes a very long time
 ./stepX_YYY
 ```
 
@@ -505,8 +525,9 @@ scala -classpath target/scala*/classes stepX_YYY
 
 *The Swift implementation was created by [Keith Rollin](https://github.com/keith-rollin)*
 
-The Swift implemenation of mal requires the Swift 1.2 compiler (XCode
-6.3) to build.
+The Swift implementation of mal requires the Swift 2.0 compiler (XCode
+7.0) to build. Older versions will not work due to changes in the
+language and standard library.
 
 ```
 cd swift
@@ -514,6 +535,30 @@ make
 ./stepX_YYY
 ```
 
+### Tcl 8.6
+
+*The Tcl implementation was created by [Dov Murik](https://github.com/dubek)*
+
+The Tcl implementation of mal requires Tcl 8.6 to run.  For readline line
+editing support, install tclreadline.
+
+```
+cd tcl
+tclsh ./stepX_YYY.tcl
+```
+
+### Vimscript
+
+*The Vimscript implementation was created by [Dov Murik](https://github.com/dubek)*
+
+The Vimscript implementation of mal requires Vim to run.  It has been tested
+with Vim 7.4.
+
+```
+cd vimscript
+./run_vimscript.sh ./stepX_YYY.vim
+```
+
 ### Visual Basic.NET ###
 
 The VB.NET implementation of mal has been tested on Linux using the Mono
@@ -568,7 +613,7 @@ make test^step2
 make test^step7
 ```
 
-* To run tests for a specifc step against a single implementation:
+* To run tests for a specific step against a single implementation:
 
 ```
 make test^IMPL^stepX
@@ -616,7 +661,7 @@ make perf
 
 ### Generating language statistics
 
-* To report line and byte stastics for a single implementation:
+* To report line and byte statistics for a single implementation:
 ```
 make stats^IMPL
 
@@ -624,7 +669,7 @@ make stats^IMPL
 make stats^js
 ```
 
-* To report line and bytes stastics for general Lisp code (env, core
+* To report line and bytes statistics for general Lisp code (env, core
   and stepA):
 ```
 make stats-lisp^IMPL
@@ -640,7 +685,7 @@ builds a docker image based on Ubuntu Utopic that contains everything
 needed to run tests against all the implementations (except for MATLAB
 which is proprietary/licensed).
 
-Build the the docker image using a provided script. WARNING: this will
+Build the docker image using a provided script. WARNING: this will
 likely take over an hour to build from scratch and use more 3 GB of disk:
 ```bash
 ./tests/docker-build.sh