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

Misc updates to TODO, guide and README.

- Also, add SKIP_IMPLS option to top-level Makefile to ignore a list
  of implementations. Particularly useful for excluding licensed
  matlab when running tests on system without it (e.g. within
  container).
This commit is contained in:
Joel Martin 2015-03-11 22:08:21 -05:00
parent 31ad43483a
commit 8569b2af48
4 changed files with 30 additions and 61 deletions

View File

@ -124,17 +124,18 @@ vb_TEST_OPTS = --mono
# Derived lists
STEPS = $(sort $(filter step%,$(.VARIABLES)))
IMPL_TESTS = $(foreach impl,$(IMPLS),test^$(impl))
DO_IMPLS = $(filter-out $(SKIP_IMPLS),$(IMPLS))
IMPL_TESTS = $(foreach impl,$(DO_IMPLS),test^$(impl))
STEP_TESTS = $(foreach step,$(STEPS),test^$(step))
ALL_TESTS = $(filter-out $(EXCLUDE_TESTS),\
$(strip $(sort \
$(foreach impl,$(IMPLS),\
$(foreach impl,$(DO_IMPLS),\
$(foreach step,$(STEPS),test^$(impl)^$(step))))))
IMPL_STATS = $(foreach impl,$(IMPLS),stats^$(impl))
IMPL_STATS_LISP = $(foreach impl,$(IMPLS),stats-lisp^$(impl))
IMPL_STATS = $(foreach impl,$(DO_IMPLS),stats^$(impl))
IMPL_STATS_LISP = $(foreach impl,$(DO_IMPLS),stats-lisp^$(impl))
IMPL_PERF = $(filter-out $(EXCLUDE_PERFS),$(foreach impl,$(IMPLS),perf^$(impl)))
IMPL_PERF = $(filter-out $(EXCLUDE_PERFS),$(foreach impl,$(DO_IMPLS),perf^$(impl)))
#
# Build rules

View File

@ -411,6 +411,12 @@ make MAL_IMPL=python test^mal^step2
### Performance tests
Warning: These performance tests are neither statistically valid nor
comprehensive; runtime performance is a not a primary goal of mal. If
you draw any serious conclusions from these performance tests, then
please contact me about some amazing oceanfront property in Kansas
that I'm willing to sell you for cheap.
* To run performance tests against a single implementation:
```
make perf^IMPL

View File

@ -1,23 +1,23 @@
All:
- Finish guide.md
- Split metadata, atoms, readline into stepA
- test to check args set properly
- test *ARGV* gets set properly
- test to make sure slurp captures final newline
- make sure errors propagate/print properly when self-hosted
* change perf test to run for 10 seconds and then calculate number
of iterations per second
- redefine (defmacro!) as (def! (macro*))
- runtest expect fixes:
* stop using expect, so we can drop --raw option
* fix C#, VB
- fix long line splitting in runtest
- Give runtest knowledge of optional and report differently
- regular expression matching in runtest
- add re (use in rep) everywhere and use that (to avoid printing)
- Implement/fix interop
- Print full exception when test gets EOF from expect
- per impl tests for step5_tco, or at least a better way of
enabling/disabling/tweaking per implementation
- metadata on symbols
Other ideas for All:
- propagate/print errors when self-hosted
- redefine (defmacro!) as (def! (macro*))
- Fix/implement interop in more implementations
- metadata on symbols (as per Clojure)
- metadata as a map only. ^ merges metadata in the reader itself.
Line numbers in metadata from reader.
- protocols!
@ -32,7 +32,6 @@ All:
a *namespaces* map is found with the namespace name being
looked up. Then the symbol would be looked up starting in
the namespace environment. Need protocols first probably.
- Break out impl eval into step0.5
- Fix quasiquoting of vectors
- Get self-host working at earlier step:
@ -43,7 +42,6 @@ All:
- loop/recur ?
- gensym reader inside quasiquote
- per impl tests for step5_tco
---------------------------------------------
@ -149,43 +147,3 @@ VB.Net
- convert readline.cs to readline.vb
---------------------------------------------
Future Implementations:
- Ada (gnat)
- http://rosettacode.org/wiki/Regular_expressions#Ada
- C++
- Groovy
- http://groovy-lang.org/learn.html
- http://groovy-lang.org/structure.html
- Erlang
- F#
- Haxe
- http://api.haxe.org/
- http://haxe.us/haxe_tutorial.html
- Julia
- Nim
- Objective-C:
- Pascal:
sudo aptitude install fp-compiler-2.6.2
- VimL
- https://github.com/tpope/timl
- Tcl
- TeX/LaTeX
- Basic interpreter in TeX: http://ctanhg.scharrer-online.de/pkg/basix.html
- Cheat Sheet: http://www.stdout.org/~winston/latex/latexsheet.pd
- latex '\nonstopmode\input' blah.tex

View File

@ -1179,9 +1179,12 @@ implementation. Let us continue!
![step9_try architecture](step9_try.png)
Compare the pseudocode for step 8 and step 9 to get a basic idea of
the changes that will be made during this step:
the changes that will be made during this step. This step is currently
divided into two sections because some of the functions in the second
step will be moving to step A in the future:
```
diff -urp ../process/step8_macros.txt ../process/step9_try.txt
diff -urp ../process/step9_try.txt ../process/step9_try2.txt
```
* Copy `step8_macros.qx` to `step9_try.qx`.
@ -1192,7 +1195,7 @@ diff -urp ../process/step8_macros.txt ../process/step9_try.txt
now.
<a name="step9"></a>
<a name="stepA"></a>
### Step A: Interop and Self-hosting
@ -1201,12 +1204,13 @@ diff -urp ../process/step8_macros.txt ../process/step9_try.txt
Compare the pseudocode for step 9 and step A to get a basic idea of
the changes that will be made during this step:
```
diff -urp ../process/step9_try.txt ../process/stepA_mal.txt
diff -urp ../process/step9_try2.txt ../process/stepA_mal.txt
```
* Copy `step9_try.qx` to `stepA_mal.qx`.
* TODO/TBD
* Self-hosted tests
## TODO: