aboutsummaryrefslogtreecommitdiff
path: root/docs/TODO
blob: 633a3c5ac455d8044a3cba86c15ba46e7b6ca9bd (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
All:
    - add license file
    - add re (with rep) and use that (to avoid printing)
    - keyword type (with hash-map key support)
    - remove conj and sequential? as necessary elements
    - redefine (defmacro!) as (def! (macro*))
    - Move *host-language* from step9 to stepA
    - Implement/fix interop: C#, Java, Mal, PHP, Postscript, Ruby
    - fix long lines in runtext/expect
    - regular expression matching in runtest
    - Print full exception when test gets EOF from expect

    - 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#:

Clojure:

CoffeeScript:
    - make target to compile to JS

Go:
    - consider variable arguments in places where it makes sense
        https://gobyexample.com/variadic-functions

Java:
    - Use gradle instead of mvn
        http://blog.paralleluniverse.co/2014/05/01/modern-java/

Javascript:
    - interop: callbacks using Mal functions

Make:
    - 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

Python:
    - error: python ../python/stepA_interop.py ../mal/stepA_interop.mal ../mal/stepA_interop.mal
    - interop tests

R:
    - tracebacks in errors

Ruby:

Rust:
    - use built-in regex once fixed:
        https://github.com/rust-lang/rust/issues/18034
        https://github.com/rust-lang/rust/issues/18035

VB.Net
    - convert readline.cs to readline.vb


---------------------------------------------


Future Implementations:

    * Rust:
        - 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/
    * R
        - 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

    - Groovy
        - http://groovy-lang.org/learn.html
        - http://groovy-lang.org/structure.html

    - Scala
        - aptitude install scala
        - http://learnxinyminutes.com/docs/scala/

    - Visual Basic
        aptitude install mono-vbnc

    - VimL
        - https://github.com/tpope/timl

    - 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

    - VB.Net
        http://www.codeproject.com/Articles/9978/Complete-Comparison-for-VB-NET-and-C
        http://msdn.microsoft.com/en-us/library/8hb2a397.aspx