mirror of
https://github.com/kanaka/mal.git
synced 2024-09-20 01:57:09 +03:00
132 lines
3.8 KiB
Plaintext
132 lines
3.8 KiB
Plaintext
---------------------------------------------
|
|
|
|
General:
|
|
- add chat bot for #mal
|
|
- move tokenizer.mal and reader.mal from malc along with
|
|
./examples/{equality,memoize,pprint,protocols}.mal and
|
|
./core.mal to ./lib directory
|
|
|
|
- Finish guide.md
|
|
|
|
All Implementations:
|
|
- test that *ARGV* gets set properly
|
|
- test to make sure slurp captures final newline
|
|
- regular expression matching in runtest
|
|
- add re (use in rep) everywhere and use that (to avoid printing)
|
|
- per impl tests for step5_tco, or at least a better way of
|
|
enabling/disabling/tweaking per implementation
|
|
- fix stepA soft failures: lua matlab miniMAL perl racket
|
|
|
|
Other ideas for All:
|
|
- propagate/print errors when self-hosted
|
|
- redefine (defmacro!) as (def! (macro*))
|
|
- Fix/implement interop in more implementations
|
|
|
|
- metadata on symbols (as per Clojure)
|
|
- metadata as a map only. ^ merges metadata in the reader itself.
|
|
Line numbers in metadata from reader.
|
|
- protocols!
|
|
- https://github.com/pixie-lang/pixie
|
|
- http://www.toccata.io/2015/01/Mapping/
|
|
- namespaces
|
|
- environments first class: *ENV*, *outer* defined by env-new
|
|
- namespaces is *namespaces* map in environment which maps namespace
|
|
names to other environments.
|
|
- def! become an alias for (env-set! *ENV* 'sym value)
|
|
- Namespace lookup: go up the environment hierarchy until
|
|
a *namespaces* map is found with the namespace name being
|
|
looked up. Then the symbol would be looked up starting in
|
|
the namespace environment. Need protocols first probably.
|
|
|
|
- multi-line REPL read
|
|
- loop/recur ?
|
|
- gensym reader inside quasiquote
|
|
- standalone executable
|
|
|
|
|
|
---------------------------------------------
|
|
|
|
Bash:
|
|
- explore using ${!prefix*} syntax (more like make impl)
|
|
- GC
|
|
|
|
C:
|
|
- come up with better way to do 20 vararg code
|
|
- GC: use http://www.hboehm.info/gc/
|
|
|
|
C#:
|
|
- accumulates line breaks with mal/clojurewest2014.mal
|
|
- interop: http://www.ckode.dk/programming/eval-in-c-yes-its-possible/
|
|
|
|
Clojure:
|
|
- fix "\/" exception in mal/clojurewest2014.mal
|
|
|
|
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
|
|
- immediately exits mal/clojurewest2014.mal ("\/" exception)
|
|
|
|
Java:
|
|
- Use gradle instead of mvn
|
|
http://blog.paralleluniverse.co/2014/05/01/modern-java/
|
|
- MAL formatting is a bit off with mal/clojurewest2014.mal
|
|
|
|
Javascript:
|
|
- interop: adopt techniques from miniMAL
|
|
|
|
Make:
|
|
- allow '_' in make variable names
|
|
- hash-map with space in key string
|
|
- Fix: make -f stepA_mal.mk ../mal/step6_file.mal
|
|
(slurp "../tests/incA.mal")
|
|
(read-string "(+ 2 3)")
|
|
- errors should propagate up from within load-file
|
|
- GC: expore using "undefined" directive in Make 3.82
|
|
|
|
Mal:
|
|
- line numbers in errors
|
|
- step5_tco
|
|
|
|
MATLAB:
|
|
- Port to support both GNU Octave and MATLAB
|
|
|
|
miniMAL:
|
|
- figure out why {} literals are "static"/persistent
|
|
|
|
ObjPascal:
|
|
- verify that GC/reference counting works
|
|
- fix comment by itself error at REPL
|
|
|
|
Perl:
|
|
- fix metadata on native functions
|
|
- fix extra line breaks at REPL
|
|
|
|
Postscript:
|
|
- add negative numbers
|
|
- fix blank line after comments
|
|
- fix command line arg processing (doesn't run file specified)
|
|
|
|
Python:
|
|
- interop tests
|
|
|
|
R:
|
|
- tracebacks in errors
|
|
- fix running from different directory
|
|
|
|
Racket
|
|
- metadata on collections
|
|
|
|
Rust:
|
|
- fix 'make all' invocation of cargo build
|
|
|
|
Scala
|
|
- readline
|
|
- fix exception when finished running something on command line
|