1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-11 13:55:55 +03:00

Update README.md and TODO. Minor PS update.

This commit is contained in:
Joel Martin 2014-03-29 15:17:00 -05:00
parent dc7938d8e6
commit 60154d24a8
5 changed files with 98 additions and 17 deletions

3
README
View File

@ -1,3 +0,0 @@
# mal - Make a Lisp
See mal/presentation.mal

84
README.md Normal file
View File

@ -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
```

View File

@ -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
-

View File

@ -1,2 +0,0 @@
Running:
gs -q -dNODISPLAY stepX_YYY.ps

View File

@ -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