compiler

Unnamed Compiled Systems Language Project
git clone http://frotz.net/git/compiler.git
Log | Files | Refs

commit d68155538e4462daa510082041aedc676dcf13e0
parent 27e85264ca06b5bd166768740af1b17451b1300a
Author: Brian Swetland <swetland@frotz.net>
Date:   Wed, 11 Mar 2020 02:51:26 -0700

docs: exciting todo list

Diffstat:
Adocs/todo.md | 44++++++++++++++++++++++++++++++++++++++++++++
Mreadme.md | 6++++++
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