- {env: IMPL=dart, services: [docker]}
- {env: IMPL=elisp, services: [docker]}
- {env: IMPL=elixir, services: [docker]}
+ - {env: IMPL=elm, services: [docker]}
- {env: IMPL=erlang NO_PERF=1, services: [docker]} # perf runs out of memory
- {env: IMPL=es6, services: [docker]}
- {env: IMPL=factor, services: [docker]}
vimscript_STEP_TO_PROG = vimscript/$($(1)).vim
guile_STEP_TO_PROG = guile/$($(1)).scm
livescript_STEP_TO_PROG = livescript/$($(1)).js
-elm_STEP_TO_PROG = elm/$($(1)).elm
+elm_STEP_TO_PROG = elm/$($(1)).js
# Needed some argument munging
* D
* Dart
* Elixir
+* Elm
* Emacs Lisp
* Erlang
* ES6 (ECMAScript 6 / ECMAScript 2015)
iex -S mix stepX_YYY
```
+### Elm
+
+*The Elm implementation was created by [Jos van Bakel](https://github.com/c0deaddict)*
+
+The Elm implementation of mal has been tested with Elm 0.18.0
+
+```
+cd elm
+make stepX_YYY.js
+STEP=stepX_YYY ./run
+```
+
### Erlang
*The Erlang implementation was created by [Nathan Fiedler (nlfiedler)](https://github.com/nlfiedler)*
SOURCES_LISP = Env.elm Core.elm Eval.elm stepA_mal.elm
-
BINS = $(SOURCES:%.elm=%.js)
ELM = node_modules/.bin/elm
-all: node_modules $(BINS)
+all: node_modules elm_packages $(BINS)
node_modules:
npm install
elm_packages:
- $(ELM) package install
+ $(ELM) package install -y
-%.js: %.elm node_modules
+%.js: %.elm node_modules elm_packages
$(ELM) make $(@:%.js=%.elm) --output $@
STEP0_SOURCES = IO.elm