Commit | Line | Data |
---|---|---|
14ab099c NB |
1 | In process/stepA.gliffy, add inc and remove *gensym-counter*. |
2 | Then refresh the .png files. | |
3 | ||
861da5d6 JM |
4 | --------------------------------------------- |
5 | ||
eaa6ceb4 JM |
6 | General: |
7 | - add chat bot for #mal | |
3e9b89d4 | 8 | - move tokenizer.mal and reader.mal from malc to ./lib directory |
eaa6ceb4 | 9 | |
2ab1e584 | 10 | - Finish guide.md |
e17aef04 JM |
11 | - mention that identifier names are suggested. some have run |
12 | into collisions with READ,EVAL,PRINT in case insensitive | |
13 | languages | |
dd4020b9 JM |
14 | - simplify: "X argument (list element Y)" -> ast[Y] |
15 | - more clarity about when to peek and poke in read_list and | |
16 | read_form | |
17 | - tokenizer: use first group rather than whole match (to | |
18 | eliminate whitespace/commas) | |
2ab1e584 | 19 | |
eaa6ceb4 | 20 | All Implementations: |
9d42904e | 21 | - regular expression matching in runtest |
96f1845a | 22 | - add re (use in rep) everywhere and use that (to avoid printing) |
861da5d6 | 23 | - fix stepA soft failures: lua matlab miniMAL perl racket |
54c75382 | 24 | |
8569b2af JM |
25 | Other ideas for All: |
26 | - propagate/print errors when self-hosted | |
27 | - redefine (defmacro!) as (def! (macro*)) | |
28 | - Fix/implement interop in more implementations | |
29 | ||
30 | - metadata on symbols (as per Clojure) | |
ffd31966 JM |
31 | - metadata as a map only. ^ merges metadata in the reader itself. |
32 | Line numbers in metadata from reader. | |
96f1845a JM |
33 | - protocols! |
34 | - https://github.com/pixie-lang/pixie | |
9d42904e | 35 | - http://www.toccata.io/2015/01/Mapping/ |
ffd31966 JM |
36 | - namespaces |
37 | - environments first class: *ENV*, *outer* defined by env-new | |
38 | - namespaces is *namespaces* map in environment which maps namespace | |
39 | names to other environments. | |
40 | - def! become an alias for (env-set! *ENV* 'sym value) | |
41 | - Namespace lookup: go up the environment hierarchy until | |
42 | a *namespaces* map is found with the namespace name being | |
43 | looked up. Then the symbol would be looked up starting in | |
44 | the namespace environment. Need protocols first probably. | |
60154d24 | 45 | |
b8ee29b2 JM |
46 | - multi-line REPL read |
47 | - loop/recur ? | |
b8ee29b2 | 48 | - gensym reader inside quasiquote |
eaa6ceb4 | 49 | - standalone executable |
b8ee29b2 | 50 | |
01c97316 | 51 | |
31690700 JM |
52 | --------------------------------------------- |
53 | ||
f1b72c6a | 54 | Bash: |
718887c3 | 55 | - explore using ${!prefix*} syntax (more like make impl) |
6301e0b6 | 56 | - GC |
31690700 JM |
57 | |
58 | C: | |
59 | - come up with better way to do 20 vararg code | |
60 | ||
afde2df0 | 61 | C#: |
9d42904e | 62 | - accumulates line breaks with mal/clojurewest2014.mal |
eaa6ceb4 | 63 | - interop: http://www.ckode.dk/programming/eval-in-c-yes-its-possible/ |
afde2df0 | 64 | |
b8ee29b2 JM |
65 | CoffeeScript: |
66 | - make target to compile to JS | |
67 | ||
af8fdff4 | 68 | Go: |
af8fdff4 JM |
69 | - consider variable arguments in places where it makes sense |
70 | https://gobyexample.com/variadic-functions | |
71 | ||
b76aa73b | 72 | Haskell: |
96f1845a JM |
73 | - TCO using seq/bang patterns: |
74 | http://stackoverflow.com/questions/9149183/tail-optimization-guarantee-loop-encoding-in-haskell | |
eaa6ceb4 | 75 | - immediately exits mal/clojurewest2014.mal ("\/" exception) |
b76aa73b | 76 | |
f1b72c6a | 77 | Java: |
e17aef04 | 78 | - build step, don't use mvn in run script |
3b655472 JM |
79 | - Use gradle instead of mvn |
80 | http://blog.paralleluniverse.co/2014/05/01/modern-java/ | |
f1b72c6a JM |
81 | |
82 | Javascript: | |
612bfe4a | 83 | - interop: adopt techniques from miniMAL |
31690700 JM |
84 | |
85 | Make: | |
31690700 | 86 | - allow '_' in make variable names |
5e02d695 | 87 | - hash-map with space in key string |
31690700 | 88 | - errors should propagate up from within load-file |
130fdf5d | 89 | - GC: explore using "undefine" directive in Make 3.82 |
31690700 | 90 | |
31690700 JM |
91 | Mal: |
92 | - line numbers in errors | |
60154d24 | 93 | - step5_tco |
31690700 | 94 | |
5351b94a JM |
95 | miniMAL: |
96 | - figure out why {} literals are "static"/persistent | |
97 | ||
eaa6ceb4 JM |
98 | ObjPascal: |
99 | - verify that GC/reference counting works | |
100 | - fix comment by itself error at REPL | |
101 | ||
e17aef04 JM |
102 | plpgsql: |
103 | - maybe combine wrap.sh and run | |
104 | ||
b5dedee0 | 105 | Perl: |
3b655472 | 106 | - fix metadata on native functions |
eaa6ceb4 | 107 | - fix extra line breaks at REPL |
60154d24 JM |
108 | |
109 | Postscript: | |
3b655472 | 110 | - add negative numbers |
96f1845a | 111 | - fix blank line after comments |
9d42904e | 112 | - fix command line arg processing (doesn't run file specified) |
f1b72c6a | 113 | |
e17aef04 JM |
114 | Powershell: |
115 | - convert function with "abc_def" to "abc-def" | |
116 | - remove extraneous return statements at end of functions | |
117 | - remove unnecessary semi-colons | |
118 | - use ArrayList instead of Array for performance | |
119 | - new test to test Keys/keys as hash-map key | |
120 | - test *? predicates with nil | |
121 | ||
9b3362e8 | 122 | R: |
9b3362e8 | 123 | - tracebacks in errors |
96f1845a | 124 | - fix running from different directory |
9d42904e JM |
125 | |
126 | Racket | |
127 | - metadata on collections | |
9b3362e8 | 128 | |
b8ee29b2 | 129 | Rust: |
9d42904e | 130 | - fix 'make all' invocation of cargo build |
96f1845a JM |
131 | |
132 | Scala | |
96f1845a | 133 | - readline |
9d42904e | 134 | - fix exception when finished running something on command line |
e17aef04 JM |
135 | |
136 | VHDL: | |
137 | - combine run_vhdl.sh and run | |
138 | ||
139 | vimscript: | |
140 | - combine run_vimscript.sh and run |