Lua: all steps and self-hosting.
[jackhill/mal.git] / docs / TODO
1 All:
2 - test to check args set properly
3 - test to make sure slurp captures final newline
4 - make sure errors propagate/print properly when self-hosted
5
6 - change perf test to run for 10 seconds and then calculate number
7 of iterations per second
8 - redefine (defmacro!) as (def! (macro*))
9 - runtest expect fixes:
10 - stop using expect, so we can drop --raw option
11 - fix long lines in runtext/expect
12 - regular expression matching in runtest
13 - add re (use in rep) everywhere and use that (to avoid printing)
14 - Implement/fix interop
15 - Print full exception when test gets EOF from expect
16
17 - protocols!
18 - https://github.com/pixie-lang/pixie
19 - http://www.toccata.io/2015/01/Mapping/
20
21 - Break out impl eval into step0.5
22 - Fix quasiquoting of vectors
23
24 - Get self-host working at earlier step:
25 - Move try* to step6
26 - Remove macros from mal
27
28 - multi-line REPL read
29 - loop/recur ?
30 - gensym reader inside quasiquote
31
32 - per impl tests for step5_tco
33
34 ---------------------------------------------
35
36 Bash:
37 - explore using ${!prefix*} syntax (more like make impl)
38 - GC
39
40 C:
41 - come up with better way to do 20 vararg code
42 - GC
43 - fix mal/clojurewest2014.mal
44
45 C#:
46 - fix command line arg processing (doesn't run file specified)
47 - accumulates line breaks with mal/clojurewest2014.mal
48
49 Clojure:
50 - make indent consistent across steps (e.g. step5, step8)
51 - fix mal/clojurewest2014.mal
52
53 CoffeeScript:
54 - make target to compile to JS
55 - fix "user> " prompt with mal/clojurewest2014.mal
56
57 Go:
58 - consider variable arguments in places where it makes sense
59 https://gobyexample.com/variadic-functions
60
61 Haskell:
62 - TCO using seq/bang patterns:
63 http://stackoverflow.com/questions/9149183/tail-optimization-guarantee-loop-encoding-in-haskell
64 - immediately exits mal/clojurewest2014.mal
65
66 Java:
67 - Use gradle instead of mvn
68 http://blog.paralleluniverse.co/2014/05/01/modern-java/
69 - MAL formatting is a bit off with mal/clojurewest2014.mal
70
71 Javascript:
72 - interop: callbacks using Mal functions
73 - fix "user> " prompt with mal/clojurewest2014.mal
74
75 Lua:
76 - time-ms should get actual milliseconds
77
78 Make:
79 - allow '_' in make variable names
80 - hash-map with space in key string
81 - Fix: make -f stepA_interop.mk ../mal/step6_file.mal
82 (slurp "../tests/incA.mal")
83 (read-string "(+ 2 3)")
84 - errors should propagate up from within load-file
85 - GC: expore using "undefined" directive in Make 3.82
86
87 Mal:
88 - line numbers in errors
89 - step5_tco
90
91 Perl:
92 - fix metadata on native functions
93 - implement conj
94
95 PHP:
96 - formatting messed up with mal/clojurewest2014.mal
97
98 Postscript:
99 - add negative numbers
100 - fix blank line after comments
101 - fix command line arg processing (doesn't run file specified)
102 - formatting messed up with mal/clojurewest2014.mal
103
104 Python:
105 - error: python ../python/stepA_interop.py ../mal/stepA_interop.mal ../mal/stepA_interop.mal
106 - interop tests
107
108 R:
109 - tracebacks in errors
110 - fix running from different directory
111 - formatting messed up with mal/clojurewest2014.mal
112
113 Racket
114 - metadata on collections
115
116 Ruby:
117
118 Rust:
119 - use built-in regex once fixed:
120 https://github.com/rust-lang/rust/issues/18034
121 https://github.com/rust-lang/rust/issues/18035
122 - fix 'make all' invocation of cargo build
123 - formatting messed up with mal/clojurewest2014.mal
124
125 Scala
126 - readline
127 - fix exception when finished running something on command line
128
129 VB.Net
130 - convert readline.cs to readline.vb
131
132
133 ---------------------------------------------
134
135
136 Future Implementations:
137
138 - Ada (gnat)
139 - http://rosettacode.org/wiki/Regular_expressions#Ada
140
141 - C++
142
143 - Groovy
144 - http://groovy-lang.org/learn.html
145 - http://groovy-lang.org/structure.html
146
147 - Erlang
148
149 - F#
150
151 - Haxe
152 - http://api.haxe.org/
153 - http://haxe.us/haxe_tutorial.html
154
155 - Objective-C:
156
157 - Pascal:
158 sudo aptitude install fp-compiler-2.6.2
159
160 - VimL
161 - https://github.com/tpope/timl
162
163 - Tcl
164
165 - TeX/LaTeX
166 - Basic interpreter in TeX: http://ctanhg.scharrer-online.de/pkg/basix.html
167 - Cheat Sheet: http://www.stdout.org/~winston/latex/latexsheet.pd
168 - latex '\nonstopmode\input' blah.tex