diff options
| author | Joel Martin <github@martintribe.org> | 2014-03-29 15:17:00 -0500 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2014-03-29 15:17:00 -0500 |
| commit | 60154d24a87ed9f3fa315870a32590a371e309d3 (patch) | |
| tree | dabe6083e9bf753fa5be3cfb4e63209c75e40e9f | |
| parent | dc7938d8e69982b2574a8e2e9fd1ca97b33f6e28 (diff) | |
| download | mal-60154d24a87ed9f3fa315870a32590a371e309d3.tar.gz mal-60154d24a87ed9f3fa315870a32590a371e309d3.zip | |
Update README.md and TODO. Minor PS update.
| -rw-r--r-- | README | 3 | ||||
| -rw-r--r-- | README.md | 84 | ||||
| -rw-r--r-- | docs/TODO | 22 | ||||
| -rw-r--r-- | ps/notes | 2 | ||||
| -rw-r--r-- | ps/step0_repl.ps | 4 |
5 files changed, 98 insertions, 17 deletions
@@ -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 +``` @@ -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 |
