blob: 6f047c3699c898df9779209ae974a1558313d6c8 (
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
|
All:
- multi-line read
- loop/recur ?
- hash-maps with non-string keys
- hash-map with space in key string (make)
- keyword type
- gensym reader inside quasiquote
- per impl tests for step5_tco (if possible)
- 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
- Implement/fix interop: C#, Java, Mal, PHP, Postscript, Ruby
---------------------------------------------
Bash:
- explore using ${!prefix*} syntax (more like make impl)
- GC
C:
- come up with better way to do 20 vararg code
- GC
C#:
Clojure:
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
- errors should propagate up from within load-file
Mal:
- line numbers in errors
- step5_tco
Perl:
- fix metadata on native functions
PHP:
Postscript:
- add negative numbers
Python:
- error: python ../python/stepA_interop.py ../mal/stepA_interop.mal ../mal/stepA_interop.mal
- interop tests
Ruby:
---------------------------------------------
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/
- Redmonk languages from Jan 2014:
http://sogrady-media.redmonk.com/sogrady/files/2014/01/lang-rank-114-wm.png
- Tier 1
* JavaScript
* Java
* PHP
* C#
* Python
- C++
* Ruby
* C
- Objective-C
* Perl
* Shell (Bash 4)
- Tier 2
- R
- Scala
- Haskell
* Clojure
- CoffeeScript
- Visual Basic
- Groovy
- Go
- Lua
- Erlang
- Emacs Lisp
- Assembly
- Scheme
- FORTRAN
- Dart
- F#
- D
- Tier 3
- TypeScript
- Racket
- HaXe
- Pascal
- VimL
- https://github.com/tpope/timl
- Common Lisp
- Rust
- M (OpenM/MUMPS)
- Factor (Stack-based)
- Others:
- Forth (Stack-based)
- BF (Crazy)
- 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
|