diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..732661a --- /dev/null +++ b/Makefile @@ -0,0 +1,13 @@ +default: build-release + +build-release: + cargo build --release + +test: + cargo test --release + +install: build-release + mkdir -p ${HOME}/.config/mal + cp -f core/core.mal ${HOME}/.config/mal/ + sudo cp target/release/rust-mal /usr/local/bin/mal + sudo chown ${USER} /usr/local/bin/mal diff --git a/tests/atoms.mal b/tests/atoms.mal index 63031de..e4cdd72 100644 --- a/tests/atoms.mal +++ b/tests/atoms.mal @@ -4,3 +4,16 @@ ; deref (assert-eq (deref (atom 1)) 1) + +; @ macro +(assert-eq @(atom 1) 1) + +(def! ATOM (atom 1)) + +; reset! +(reset! ATOM 2) +(assert-eq @ATOM 2) + +; swap! +(swap! ATOM (fn* [x] (* x 2))) +(assert-eq @ATOM 4)