aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2014-03-29 15:17:00 -0500
committerJoel Martin <github@martintribe.org>2014-03-29 15:17:00 -0500
commit60154d24a87ed9f3fa315870a32590a371e309d3 (patch)
treedabe6083e9bf753fa5be3cfb4e63209c75e40e9f
parentdc7938d8e69982b2574a8e2e9fd1ca97b33f6e28 (diff)
downloadmal-60154d24a87ed9f3fa315870a32590a371e309d3.tar.gz
mal-60154d24a87ed9f3fa315870a32590a371e309d3.zip
Update README.md and TODO. Minor PS update.
-rw-r--r--README3
-rw-r--r--README.md84
-rw-r--r--docs/TODO22
-rw-r--r--ps/notes2
-rw-r--r--ps/step0_repl.ps4
5 files changed, 98 insertions, 17 deletions
diff --git a/README b/README
deleted file mode 100644
index b8d0338..0000000
--- a/README
+++ /dev/null
@@ -1,3 +0,0 @@
-# mal - Make a Lisp
-
-See mal/presentation.mal
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..6de854a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,84 @@
+# mal - Make a Lisp
+
+See mal/presentation.mal
+
+## Building/running implementations
+
+* Bash 4
+
+```
+cd bash
+bash stepX_YYY.sh
+```
+
+* C
+
+```
+cd c
+make
+./stepX_YYY
+```
+
+* Clojure
+
+```
+cd clojure
+lein with-profile +stepX trampoline run
+```
+
+* Java 1.7
+
+```
+cd java
+mvn compile
+mvn -quiet exec:java -Dexec.mainClass=mal.stepX_YYY
+ # OR
+mvn -quiet exec:java -Dexec.mainClass=mal.stepX_YYY -Dexec.args="CMDLINE_ARGS"
+```
+
+* Javascript/Node
+
+```
+cd js
+node stepX_YYY.js
+```
+
+* Mal
+
+Running the mal implementation of mal involves running stepA of one of
+the other implementations and passing the mal step to run as a command
+line parameter.
+
+```
+cd IMPL
+IMPL_STEPA_CMD ../mal/stepX_YYY.mal
+
+```
+
+* GNU Make 3.81
+
+```
+cd make
+make -f stepX_YYY.mk
+```
+
+* PHP 5.3
+
+```
+cd php
+php stepX_YYY.php
+```
+
+* Postscript Level 2/3
+
+```
+cd ps
+gs -q -dNODISPLAY stepX_YYY.ps
+```
+
+* Python 2.X
+
+```
+cd python
+python stepX_YYY.py
+```
diff --git a/docs/TODO b/docs/TODO
index d8f17b7..32036fd 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -3,9 +3,6 @@ All:
- loop/recur ?
- hash-maps with non-string keys
- gensym reader inside quasiquote
- - "intern" symbols, strings and numbers. Simplify equality
- comparision.
- - Contact Peter Norvig about license
- synchronize function/definitions order/names in files
- move Env into separate file (maybe)?
@@ -17,6 +14,10 @@ All:
- unindent tco while loop for step5-A
+ - Print full exception when test gets EOF from expect
+ - Note that bash 4, Java 1.7, php 5.3 required
+ - Break out language eval into step0.5
+
---------------------------------------------
JS:
@@ -33,21 +34,21 @@ Bash:
PHP:
Make:
- - Norvig2: TCO/recur?
- allow '_' in make variable names
- errors should propagate up from within load-file
Mal:
- line numbers in errors
- - step6: command line arguments
- - step 5
- - step 9
+ - step6_file: command line arguments
+ - step5_tco
+ - step9_interop
Java:
- - vectors, hash-maps, metadata
- - step 9
- - mvn exec:java -Dexec.mainClass="mal.step6_file" -Dexec.args="incC.mal"
+ - step9_interop
+
+Postscript:
+ - step 1-A
Rust:
- http://www.rustforrubyists.com/book/index.html
@@ -92,4 +93,3 @@ Others (based on redmonk languages from Jan 2014): ?
- Tier 3
? Pascal
- Rust
- -
diff --git a/ps/notes b/ps/notes
deleted file mode 100644
index b834e15..0000000
--- a/ps/notes
+++ /dev/null
@@ -1,2 +0,0 @@
-Running:
- gs -q -dNODISPLAY stepX_YYY.ps
diff --git a/ps/step0_repl.ps b/ps/step0_repl.ps
index 3aade39..325392f 100644
--- a/ps/step0_repl.ps
+++ b/ps/step0_repl.ps
@@ -28,11 +28,13 @@
READ (stub env) EVAL PRINT
} def
+/stdin (%stdin) (r) file def
+
{ % loop
(user> ) print flush
%(%lineedit) (r) file 99 string readline
- (%stdin) (r) file 99 string readline
+ stdin 99 string readline
not { exit } if % exit if EOF