mirror of
https://github.com/kanaka/mal.git
synced 2024-09-11 13:55:55 +03:00
Explictly select python 3. The `python2` and `python` packages will be removed from Ubuntu. Until each call site is fixed, install a /usr/local/bin/python symbolic link as a non-intrusive work-around (.deb packages do not interfer with /usr/local). Add an explicit maintainer for bbc-basic. Undo some cosmetic changes in order to reduce the global diff, this merge request will probably be sqashed before acceptance. Move lib{readline,edit}-dev out of the generic part. Use existing .deb packages for GHDL and vim. |
||
---|---|---|
.. | ||
.gitignore | ||
core.sml | ||
Dockerfile | ||
env.sml | ||
LargeInt.sml | ||
main.sml | ||
Makefile | ||
printer.sml | ||
reader.sml | ||
README.md | ||
run | ||
step0_repl.mlb | ||
step0_repl.sml | ||
step1_read_print.mlb | ||
step1_read_print.sml | ||
step2_eval.mlb | ||
step2_eval.sml | ||
step3_env.mlb | ||
step3_env.sml | ||
step4_if_fn_do.mlb | ||
step4_if_fn_do.sml | ||
step6_file.mlb | ||
step6_file.sml | ||
step7_quote.mlb | ||
step7_quote.sml | ||
step8_macros.mlb | ||
step8_macros.sml | ||
step9_try.mlb | ||
step9_try.sml | ||
stepA_mal.mlb | ||
stepA_mal.sml | ||
types.sml | ||
util.sml |
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>