1
1
mirror of https://github.com/kanaka/mal.git synced 2024-11-13 11:23:59 +03:00
mal/docs/TODO

192 lines
5.2 KiB
Plaintext
Raw Normal View History

All:
2015-02-28 19:35:04 +03:00
- Finish guide.md
- test to check args set properly
- test to make sure slurp captures final newline
- make sure errors propagate/print properly when self-hosted
* 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 C#, VB
- fix long line splitting in runtest
- regular expression matching in runtest
- add re (use in rep) everywhere and use that (to avoid printing)
- Implement/fix interop
- Print full exception when test gets EOF from expect
2014-03-31 01:39:44 +04:00
- metadata on symbols
- 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.
- Break out impl eval into step0.5
- Fix quasiquoting of vectors
2014-05-11 01:58:23 +04:00
- Get self-host working at earlier step:
- Move try* to step6
- Remove macros from mal
- multi-line REPL read
- loop/recur ?
- gensym reader inside quasiquote
- per impl tests for step5_tco
---------------------------------------------
Bash:
- explore using ${!prefix*} syntax (more like make impl)
2014-04-24 06:59:50 +04:00
- GC
C:
- come up with better way to do 20 vararg code
- GC: use http://www.hboehm.info/gc/
- fix mal/clojurewest2014.mal
C#:
- fix command line arg processing (doesn't run file specified)
- accumulates line breaks with mal/clojurewest2014.mal
2015-02-28 19:35:04 +03:00
- step9_interop:
http://www.ckode.dk/programming/eval-in-c-yes-its-possible/
Clojure:
- make indent consistent across steps (e.g. step5, step8)
- fix mal/clojurewest2014.mal
CoffeeScript:
- make target to compile to JS
- fix "user> " prompt with mal/clojurewest2014.mal
2014-10-07 05:36:23 +04:00
Go:
- consider variable arguments in places where it makes sense
https://gobyexample.com/variadic-functions
2014-12-24 06:35:48 +03:00
Haskell:
- TCO using seq/bang patterns:
http://stackoverflow.com/questions/9149183/tail-optimization-guarantee-loop-encoding-in-haskell
- immediately exits mal/clojurewest2014.mal
2014-12-24 06:35:48 +03:00
Java:
2014-05-11 01:58:23 +04:00
- 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
- fix "user> " prompt with mal/clojurewest2014.mal
Lua:
- time-ms should get actual milliseconds
Make:
- allow '_' in make variable names
2015-01-07 06:03:04 +03:00
- 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
2015-02-12 07:31:39 +03:00
miniMAL:
- figure out why {} literals are "static"/persistent
2014-04-20 00:12:13 +04:00
Perl:
2014-05-11 01:58:23 +04:00
- fix metadata on native functions
- implement conj
2014-04-20 00:12:13 +04:00
PHP:
- formatting messed up with mal/clojurewest2014.mal
Postscript:
2014-05-11 01:58:23 +04:00
- add negative numbers
- fix blank line after comments
- fix command line arg processing (doesn't run file specified)
- formatting messed up with mal/clojurewest2014.mal
Python:
- error: python ../python/stepA_mal.py ../mal/stepA_mal.mal ../mal/stepA_mal.mal
- interop tests
R:
- tracebacks in errors
- fix running from different directory
- formatting messed up with mal/clojurewest2014.mal
Racket
- metadata on collections
Ruby:
Rust:
- use built-in regex once fixed:
https://github.com/rust-lang/rust/issues/18034
https://github.com/rust-lang/rust/issues/18035
- fix 'make all' invocation of cargo build
- formatting messed up with mal/clojurewest2014.mal
Scala
- readline
- fix exception when finished running something on command line
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#
2014-12-19 08:21:39 +03:00
- Haxe
- http://api.haxe.org/
- http://haxe.us/haxe_tutorial.html
2015-02-28 19:35:04 +03:00
- Julia
- Nim
- 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