ref: b0ee0e442a2b636cf7a5d936c1918e3e63eae79c
parent: 4b386c6b9eec27360dc4c92f859dd235372102ff
author: Lennart Augustsson <lennart@augustsson.net>
date: Thu Nov 23 16:12:17 EST 2023
Edit.
--- a/TODO
+++ b/TODO
@@ -1,9 +1,5 @@
-* Put on hackage
* Have compile return a Stats record of timing etc
* Implement deriving
-* Add the possibility to save a compiler cache in a file
- - Add SHA checksumming to the C code
- - Use filename as the cache lookup key and SHA for validation
* make the runtime system catch ^C and stop execution
* use pointer stack during GC instead of recursion.
* whith dictionaries we need two optimizations to get rid of them
@@ -27,6 +23,8 @@
* Try Oleg's abstraction algorithm
* Implement IORef
- The IORef will need GC support
+ - Implement IOArray
+ - Use IORef for STRef
* Redo type synonym expansion
- Only non-injective synonyms necessitate expansion(?)
- Do expansion during unification
@@ -53,7 +51,7 @@
- On startup, read the cache. Validate each module by checking a checksum.
- Keep a dependency graph with the cache for invalidation.
* Unicode, i.e., UTF-8 IO
-* Use pointer reversal instead of an evaluation stack.
- - This saves memory, but might be slower.
-
-Bugs
+* Use pointer reversal, might be slower
+ - In GC mark pass
+ - In evaluator
+* Make nullary type classes work.
--
⑨