blob: 5f379e2bbf1bc3406febdac365eda284af13014c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
All:
* keyword type (with hash-map key support)
- 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 long lines in runtext/expect
- add license file
- add re (use in rep) everywhere and use that (to avoid printing)
- move conj and sequential? to core.mal
- Move *host-language* from step9 to stepA
- Implement/fix interop: C#, Java, Mal, PHP, Postscript, Ruby
- regular expression matching in runtest
- Print full exception when test gets EOF from expect
- protocols!
- https://github.com/pixie-lang/pixie
- Break out impl eval into step0.5
- Fix quasiquoting of vectors
- Get self-host working at earlier step:
- Move try* to step6
- Remove macros from mal
- multi-line REPL read
- loop/recur ?
- hash-maps with non-string keys
- hash-map with space in key string (make)
- gensym reader inside quasiquote
- per impl tests for step5_tco (if possible)
---------------------------------------------
Bash:
- explore using ${!prefix*} syntax (more like make impl)
- GC
C:
- come up with better way to do 20 vararg code
- GC
C#:
- fix command line arg processing (doesn't run file specified)
Clojure:
- make indent consistent across steps (e.g. step5, step8)
CoffeeScript:
- make target to compile to JS
Go:
- consider variable arguments in places where it makes sense
https://gobyexample.com/variadic-functions
Haskell:
- TCO using seq/bang patterns:
http://stackoverflow.com/questions/9149183/tail-optimization-guarantee-loop-encoding-in-haskell
Java:
- Use gradle instead of mvn
http://blog.paralleluniverse.co/2014/05/01/modern-java/
Javascript:
- interop: callbacks using Mal functions
Make:
- large number handling (move away from peano)
- then fix time-ms/perf.mal
- allow '_' in make variable names
- Fix: make -f stepA_interop.mk ../mal/step6_file.mal
(slurp "../tests/incA.mal")
(read-string "(+ 2 3)")
- errors should propagate up from within load-file
Mal:
- line numbers in errors
- step5_tco
Perl:
- fix metadata on native functions
- implement conj
PHP:
Postscript:
- add negative numbers
- fix blank line after comments
Python:
- error: python ../python/stepA_interop.py ../mal/stepA_interop.mal ../mal/stepA_interop.mal
- interop tests
R:
- Links:
- https://stat.ethz.ch/R-manual/R-devel/library/base/html/readline.html
- http://dssm.unipa.it/CRAN/web/packages/rdyncall/rdyncall.pdf
- http://www.dyncall.org/docs/FFI.pdf
- tracebacks in errors
- fix running from different directory
Ruby:
Rust:
- Links:
- http://doc.rust-lang.org/index.html
- http://doc.rust-lang.org/intro.html
- http://doc.rust-lang.org/guide.html
- http://rustbyexample.com/index.html
- http://www.rustforrubyists.com/book/index.html
- http://pzol.github.io/getting_rusty/
- http://featherweightmusings.blogspot.com/2014/05/rust-for-c-programmers-part-6-rc-gc-and.html
- http://pzol.github.io/getting_rusty/posts/20140417_destructuring_in_rust/ (destructuring)
- http://featherweightmusings.blogspot.com/2014/07/rust-for-c-programmers-part-8.html (destructuring)
- http://featherweightmusings.blogspot.co.nz/2014/07/rust-for-c-programmers-part-9.html (destructuruing and matching)
- http://blog.thiago.me/notes-about-rust-modules/
- http://doc.rust-lang.org/std/io/io
- https://github.com/shaleh/rust-readline/blob/master/src/lib.rs
- http://stackoverflow.com/questions/23942627/does-rust-0-10-have-a-rl-package
- http://blog.skylight.io/rust-means-never-having-to-close-a-socket/
- use built-in regex once fixed:
https://github.com/rust-lang/rust/issues/18034
https://github.com/rust-lang/rust/issues/18035
Racket
- metadata on collections
Scala
- aptitude install scala
- http://learnxinyminutes.com/docs/scala/
- readline
VB.Net
- aptitude install mono-vbnc
- http://www.codeproject.com/Articles/9978/Complete-Comparison-for-VB-NET-and-C
- http://msdn.microsoft.com/en-us/library/8hb2a397.aspx
- 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
- Lua
- 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
|