commit d68155538e4462daa510082041aedc676dcf13e0
parent 27e85264ca06b5bd166768740af1b17451b1300a
Author: Brian Swetland <swetland@frotz.net>
Date: Wed, 11 Mar 2020 02:51:26 -0700
docs: exciting todo list
Diffstat:
2 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/docs/todo.md b/docs/todo.md
@@ -0,0 +1,44 @@
+# Task Lists, Reminders, Etc.
+
+### Compiler
+
+- [ ] support for structs
+- [ ] support for arrays
+- [ ] support for slices
+- [ ] support for pointers
+- [ ] support for globals, init'ing gp
+- [ ] support for enums, or convert enums to consts
+- [ ] continue
+- [ ] break/continue to label
+- [ ] const / readonly
+- [ ] type inference for var definitions
+- [x] type definition
+- [x] finish if/while flow control
+
+### Emulator / Runtime
+
+- [ ] support for open/close/read/write "syscalls"
+- [ ] mini std library (malloc-analogue, alloc-only heap, string utils)
+- [x] emulator support for commandline args passing
+
+### Self-Hosting Cleanup
+
+- [ ] rewrite lexer to use if/else instead of case
+- [ ] eliminate #defines
+
+### Syntax
+
+- [ ] `type Foo struct { ... }` vs `struct Foo { ... }`
+- [ ] semicolons - optional? mandatory? eliminate?
+- [ ] colon between param/field name and type (RustLike) or not (GoLike)?
+- [ ] naming scheme for PODs
+
+### Optimizations
+
+- [ ] use shifts for power-of-two integer mul/div
+- [ ] lazy spilling of parameters
+- [ ] lazy spilling of LR / add LR to tmpreg list
+
+### Portability / Modularity
+
+- [ ] RISCV RV32I backend
diff --git a/readme.md b/readme.md
@@ -14,10 +14,16 @@ source size, and binary size) borrowing syntax from some of my favorite
and suitable for small, embedded, self-hosted systems.
### [Why write a compiler?](docs/why-write-a-compiler.md)
+Do you have to have a reason?
### [Resources and Inspiration](docs/resources-and-inspiration.md)
+Documents and things that inspired this adventure.
### [Notebook](docs/notebook.md)
+A place for commentary, ideas, and random jottings.
+
+### [Todo List](docs/todo.md)
+Little boxes to be ticked when tasks are completed.
### Status