1 ---------------------------------------------
4 - add chat bot for #mal
5 - move tokenizer.mal and reader.mal from malc along with
6 ./examples/{equality,memoize,pprint,protocols}.mal and
7 ./core.mal to ./lib directory
10 - mention that identifier names are suggested. some have run
11 into collisions with READ,EVAL,PRINT in case insensitive
15 - regular expression matching in runtest
16 - add re (use in rep) everywhere and use that (to avoid printing)
17 - fix stepA soft failures: lua matlab miniMAL perl racket
20 - propagate/print errors when self-hosted
21 - redefine (defmacro!) as (def! (macro*))
22 - Fix/implement interop in more implementations
24 - metadata on symbols (as per Clojure)
25 - metadata as a map only. ^ merges metadata in the reader itself.
26 Line numbers in metadata from reader.
28 - https://github.com/pixie-lang/pixie
29 - http://www.toccata.io/2015/01/Mapping/
31 - environments first class: *ENV*, *outer* defined by env-new
32 - namespaces is *namespaces* map in environment which maps namespace
33 names to other environments.
34 - def! become an alias for (env-set! *ENV* 'sym value)
35 - Namespace lookup: go up the environment hierarchy until
36 a *namespaces* map is found with the namespace name being
37 looked up. Then the symbol would be looked up starting in
38 the namespace environment. Need protocols first probably.
40 - multi-line REPL read
42 - gensym reader inside quasiquote
43 - standalone executable
46 ---------------------------------------------
49 - explore using ${!prefix*} syntax (more like make impl)
53 - come up with better way to do 20 vararg code
56 - accumulates line breaks with mal/clojurewest2014.mal
57 - interop: http://www.ckode.dk/programming/eval-in-c-yes-its-possible/
60 - make target to compile to JS
63 - consider variable arguments in places where it makes sense
64 https://gobyexample.com/variadic-functions
67 - TCO using seq/bang patterns:
68 http://stackoverflow.com/questions/9149183/tail-optimization-guarantee-loop-encoding-in-haskell
69 - immediately exits mal/clojurewest2014.mal ("\/" exception)
72 - build step, don't use mvn in run script
73 - Use gradle instead of mvn
74 http://blog.paralleluniverse.co/2014/05/01/modern-java/
77 - interop: adopt techniques from miniMAL
80 - allow '_' in make variable names
81 - hash-map with space in key string
82 - errors should propagate up from within load-file
83 - GC: expore using "undefined" directive in Make 3.82
86 - line numbers in errors
90 - figure out why {} literals are "static"/persistent
93 - verify that GC/reference counting works
94 - fix comment by itself error at REPL
97 - maybe combine wrap.sh and run
100 - fix metadata on native functions
101 - fix extra line breaks at REPL
104 - add negative numbers
105 - fix blank line after comments
106 - fix command line arg processing (doesn't run file specified)
109 - convert function with "abc_def" to "abc-def"
110 - remove extraneous return statements at end of functions
111 - remove unnecessary semi-colons
112 - use ArrayList instead of Array for performance
113 - new test to test Keys/keys as hash-map key
114 - test *? predicates with nil
117 - tracebacks in errors
118 - fix running from different directory
121 - metadata on collections
124 - fix 'make all' invocation of cargo build
128 - fix exception when finished running something on command line
131 - combine run_vhdl.sh and run
134 - combine run_vimscript.sh and run