All: - change perf test to run for 10 seconds and then calculate number of iterations per second - redefine (defmacro!) as (def! (macro*)) - runtest expect fixes: - stop using expect, so we can drop --raw option - fix long lines in runtext/expect - add re (use in rep) everywhere and use that (to avoid printing) - move conj and sequential? to core.mal - Implement/fix interop - regular expression matching in runtest - Print full exception when test gets EOF from expect - protocols! - https://github.com/pixie-lang/pixie - 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 - 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#: - fix command line arg processing (doesn't run file specified) Clojure: - make indent consistent across steps (e.g. step5, step8) 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 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 - hash-map with space in key string - 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 - fix blank line after comments Python: - error: python ../python/stepA_interop.py ../mal/stepA_interop.mal ../mal/stepA_interop.mal - interop tests - python3 compatibility R: - tracebacks in errors - fix running from different directory Ruby: Rust: - use built-in regex once fixed: https://github.com/rust-lang/rust/issues/18034 https://github.com/rust-lang/rust/issues/18035 Racket - metadata on collections Scala - readline VB.Net - convert readline.cs to readline.vb --------------------------------------------- Future Implementations: - Ada (gnat) - http://rosettacode.org/wiki/Regular_expressions#Ada - C++ - Groovy - http://groovy-lang.org/learn.html - http://groovy-lang.org/structure.html - Erlang - F# - Haxe - http://api.haxe.org/ - http://haxe.us/haxe_tutorial.html - Lua - Objective-C: - Pascal: sudo aptitude install fp-compiler-2.6.2 - VimL - https://github.com/tpope/timl - Tcl - 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