mirror of
https://github.com/kanaka/mal.git
synced 2024-09-11 13:55:55 +03:00
Changes creating huge diffs, like file splits, have been delayed for readability . Also fix description of `and`.
141 lines
4.1 KiB
Plaintext
141 lines
4.1 KiB
Plaintext
In process/stepA.gliffy, add inc and remove *gensym-counter*.
|
|
Then refresh the .png files.
|
|
|
|
---------------------------------------------
|
|
|
|
General:
|
|
- add chat bot for #mal
|
|
- move tokenizer.mal and reader.mal from malc to ./lib directory
|
|
|
|
- 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)
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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:
|
|
- build step, don't use mvn in run script
|
|
- 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
|
|
- 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
|
|
|
|
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
|
|
|
|
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)
|
|
|
|
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
|