Collate TODOs; comment repl cruft
This commit is contained in:
parent
c6eeed4f4c
commit
776f975d54
41
TODO.xit
41
TODO.xit
|
@ -1,14 +1,39 @@
|
|||
[ ] Wire up interpreter for spawn and receive
|
||||
[ ] Write send function
|
||||
|
||||
[x] Fix recursive definition problems in grammar.clj
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
[ ] Fix recursive definition problems in grammar.clj
|
||||
[ ] Investigate `with-bindings` and virtual threads
|
||||
|
||||
Finish interpreter
|
||||
[ ] Wire up new interpreter to repl, script situation
|
||||
|
||||
[ ] Write compiler
|
||||
|
||||
[ ] Merge new interpreter
|
||||
|
||||
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
|
||||
|
||||
Write a compiler: optimization
|
||||
[ ] devise tail call optimization
|
||||
|
||||
Next steps
|
||||
[ ] Get drawing working?
|
||||
|
|
|
@ -273,15 +273,17 @@
|
|||
|
||||
;;; REPL
|
||||
|
||||
(comment
|
||||
|
||||
(def source
|
||||
"2"
|
||||
"if 1 then 2 else 3"
|
||||
)
|
||||
|
||||
(def rule (literal))
|
||||
|
||||
(def tokens (-> source scan/scan :tokens))
|
||||
|
||||
(def result (apply-parser literal tokens))
|
||||
(def result (apply-parser script tokens))
|
||||
|
||||
|
||||
(defn report [node]
|
||||
|
@ -306,4 +308,4 @@
|
|||
tap
|
||||
))
|
||||
|
||||
(println my-data)
|
||||
(println my-data))
|
|
@ -718,7 +718,7 @@
|
|||
(defn- interpret-literal [ast] (-> ast :data first))
|
||||
|
||||
(defn interpret-ast [ast ctx]
|
||||
(println "interpreting ast type" (:type ast))
|
||||
;(println "interpreting ast type" (:type ast))
|
||||
;(println "AST: " ast)
|
||||
(case (:type ast)
|
||||
|
||||
|
@ -865,9 +865,8 @@
|
|||
|
||||
|
||||
(do
|
||||
(process/start-vm)
|
||||
(def source "
|
||||
ref a = 1
|
||||
if 1 then 2 else 3
|
||||
")
|
||||
|
||||
(println "")
|
||||
|
@ -885,9 +884,6 @@
|
|||
(println result)
|
||||
result))
|
||||
|
||||
|
||||
(show/show false)
|
||||
|
||||
(comment "
|
||||
|
||||
Left to do:
|
||||
|
|
Loading…
Reference in New Issue
Block a user