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

140 lines
4.1 KiB
Plaintext
Raw Normal View History

---------------------------------------------
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
2015-02-28 19:35:04 +03:00
- Finish guide.md
- mention that identifier names are suggested. some have run
into collisions with READ,EVAL,PRINT in case insensitive
languages
- simplify: "X argument (list element Y)" -> ast[Y]
- more clarity about when to peek and poke in read_list and
read_form
- tokenizer: use first group rather than whole match (to
eliminate whitespace/commas)
2015-02-28 19:35:04 +03:00
All Implementations:
- regular expression matching in runtest
- add re (use in rep) everywhere and use that (to avoid printing)
- fix stepA soft failures: lua matlab miniMAL perl racket
2014-03-31 01:39:44 +04:00
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)
2014-04-24 06:59:50 +04:00
- GC
C:
- come up with better way to do 20 vararg code
C#:
- accumulates line breaks with mal/clojurewest2014.mal
- interop: http://www.ckode.dk/programming/eval-in-c-yes-its-possible/
CoffeeScript:
- make target to compile to JS
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 ("\/" exception)
2014-12-24 06:35:48 +03:00
Java:
- build step, don't use mvn in run script
2014-05-11 01:58:23 +04:00
- Use gradle instead of mvn
http://blog.paralleluniverse.co/2014/05/01/modern-java/
Javascript:
- interop: adopt techniques from miniMAL
Make:
- allow '_' in make variable names
2015-01-07 06:03:04 +03:00
- hash-map with space in key string
- errors should propagate up from within load-file
- GC: explore using "undefine" 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
ObjPascal:
- verify that GC/reference counting works
- fix comment by itself error at REPL
plpgsql:
- maybe combine wrap.sh and run
2014-04-20 00:12:13 +04:00
Perl:
2014-05-11 01:58:23 +04:00
- fix metadata on native functions
- fix extra line breaks at REPL
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)
Powershell:
- convert function with "abc_def" to "abc-def"
- remove extraneous return statements at end of functions
- remove unnecessary semi-colons
- use ArrayList instead of Array for performance
- new test to test Keys/keys as hash-map key
- test *? predicates with nil
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
VHDL:
- combine run_vhdl.sh and run
vimscript:
- combine run_vimscript.sh and run