From a2d6e660302ed16a6690f5eda2607da7990082dd Mon Sep 17 00:00:00 2001 From: Fabian Date: Wed, 7 Apr 2021 15:15:08 +0200 Subject: [PATCH] add SML README --- impls/sml/README.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 impls/sml/README.md diff --git a/impls/sml/README.md b/impls/sml/README.md new file mode 100644 index 00000000..8f0ee651 --- /dev/null +++ b/impls/sml/README.md @@ -0,0 +1,34 @@ +# SML-MAL + +This is Make-A-Lisp in Standard ML. + +## Building + +Just run `make`. + +Building requires a Standard ML compiler with basis library. This MAL +implementation has been tested and works with Poly/ML, MLton, and Moscow ML. + +On Ubuntu, you can run `apt-get install polyml libpolyml-dev`. + +By setting `sml_MODE` to `polyml`, `mosml`, or `mlton` on invoking `make` you +can select which compiler to use. The Makefile has some hacks to figure out +how to make the different compilers build everything. + +## Running + +You can build a `mal` binary from the final step with `make dist`: + +``` +$ make dist +$ ./mal +Mal [sml] +user> (map (fn* (x) (println "Odelay!")) [1 2 3 4 5]) +Odelay! +Odelay! +Odelay! +Odelay! +Odelay! +(nil nil nil nil nil) +user> +```