ludus/TODO.xit

45 lines
1.4 KiB
Plaintext
Raw Normal View History

2023-05-26 19:21:55 +00:00
[x] Fix recursive definition problems in grammar.clj
2023-05-26 19:21:55 +00:00
TODOS from interpreter
[ ] implement tuple splat patterns
[ ] update match-list to use new AST representation
[ ] fix length comparison when pattern includes splats
[ ] update match-dict to use new AST representation
[ ] update match-struct to use new AST representation
[ ] update interpret-receive to use new AST representation
[ ] Check interpret-fn-inner ctx for cycles/bugs
2023-05-26 19:21:55 +00:00
Re-add processes to the language
[ ] Write send as function
[ ] update interpret-spawn to use new AST representation
[ ] ---- Investigate weird timing issue in current send implementation
[ ] Investigate `with-bindings` and virtual threads
2023-05-26 19:21:55 +00:00
Finish interpreter
[ ] Wire up new interpreter to repl, script situation
[ ] Merge new interpreter
2023-05-26 19:21:55 +00:00
Write a compiler: desugaring
[ ] `...` to `..._` in tuple & list patterns
[ ] placeholder partial application to anonymous lambda
[ ] word -> :[word] word in pairs (patterns & expressions)
Write a compiler: correctness
[ ] check for unbound names
[ ] check for re-binding names
[ ] check that recur is in tail position
[ ] check that recur is only called inside loop or fn forms
[ ] check ns accesses
[ ] splattern is last member in a pattern
[ ] -----List/Tuple
[ ] -----Dict/Struct/Set
[ ] prevent import cycles
2023-05-26 19:21:55 +00:00
Write a compiler: optimization
[ ] devise tail call optimization
Next steps
[ ] Get drawing working?
[ ] Add stack traces for panics