Files
damn_simple_architecture/docs/todo.md
T
zxq5 931af90789 - renamed assembler_runner to just assembler
- implemented type parsing including custom types and generics (useless
  for now as we do no semantic analysis)
- implemented struct literal parsing
- implemented struct definition parsing (no generics yet)
- implemented tuple parsing
- registers are now allocated starting from zero
- updated to-dos
2026-02-10 10:03:48 +00:00

1.4 KiB

General TODO's

Bugfixes

  • [EASY] Investigate logical and operator not compiling - either a lexer or parser issue.
    • note: this was a parser issue.

Missing features

  • [MEDIUM] Get shift operations working correctly.
  • [MEDIUM] proper prefix/postfix inc/dec implementation. slightly more complex as we need to check for a variable and modify it in place
  • [EASY] Add multiply and divide operations to code generation
    • note: very easy to do but our division algorithm is hopelessly slow so not worth doing for now.

Performance Improvements

  • [MEDIUM] implement a proper div/mod library that's not slow af.
  • [HARD] Immediate operations for values that support it (up to +/- u16::max for addi and subi respectively)
    • this requires significant complexity in code generation as we need to traverse down the tree when we come across these operations to prevent additional register allocations.

Compiler optimisations

Codegen improvements

  • [MEDIUM / time consuming] Add scoping to code generation
  • [MEDIUM / time consuming] Rewrite entire codegen to imrpove code quality and make the code more readable.
    • type-safe instruction builder
      • Instruction & Register enums
      • Instruction builder helper fns eg fn add(left: &Register, right: &Register, dest: &Register) -> Instruction
      • Instruction Block types.