Misc updates to TODO, guide and README.
authorJoel Martin <github@martintribe.org>
Thu, 12 Mar 2015 03:08:21 +0000 (22:08 -0500)
committerJoel Martin <github@martintribe.org>
Thu, 12 Mar 2015 03:08:21 +0000 (22:08 -0500)
- 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).

Makefile
README.md
docs/TODO
process/guide.md

index 5409c0e..af04086 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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
index 498c6ba..327fb9c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -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
index 68c5393..6bcfa87 100644 (file)
--- a/docs/TODO
+++ b/docs/TODO
@@ -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
index 972d638..12ebcc0 100644 (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: