speedcat/todo_list.md
Slendi 9505d1c010 Add some more details in todo_list.md for self-hosted compiler
This patch makes it such that the type checker when re-implemented in
the self-hosted compiler for the kernel will check for some common
pitfalls and throw some errors out about them.

Signed-off-by: Slendi <slendi@socopon.com>
2024-05-03 23:49:19 +02:00

2.6 KiB

TODO list (epic)

  • Create a TODO list
  • Custom Functions (not external)
    • Add support for function definitions in the type checker
    • Add support for function definitions in the LLVM emitter
  • Structures
    • Add support for definitions in the type checker
    • Add support for definitions in the LLVM emitter
    • Add support for member accesses in the type checker
    • Add support for member accesses in the LLVM emitter
    • Add support for packed in the parser
    • Add support for packed in the LLVM emitter
    • Add support for nested member accesses
    • Add support for nested structure initializers (LLVM)
    • Add support for setting values in struct (uses second ret val)
  • Enums
    • Add support for enums in the parser
    • Add support for enums in the type checker
    • Add support for enums in the LLVM emitter
    • Add support for member accesses in the type checker
    • Add support for member accesses in the LLVM emitter
  • Unions
    • Add support for unions in the parser
    • Add support for unions in the type checker
    • Add support for unions in the LLVM emitter
    • Add support for member accesses in the type checker
    • Add support for member accesses in the LLVM emitter
  • Modules
    • Add support for modules in the type checker
      • Modify functions, structures, unions and enums to have names mangling
    • Add support for modules in the LLVM emitter
      • Modify functions, structures, unions and enums to have names mangling
  • Typed Unions
    • Add support for unions in the parser
    • Add support for unions in the type checker
    • Add support for unions in the LLVM emitter
    • Add support for member accesses in the type checker
    • Add support for member accesses in the LLVM emitter
  • Create a self-sustained compiler/kernel
    • Get a basic UEFI hello world working
    • Create a kernel that can read the root partition
    • Create a kernel that has some memory management and malloc
    • Re-write the compiler frontend for the kernel
      • Lexer
      • Parser
      • Type checker
        • Check if pointers have been checked for NULL before being used, to avoid null dereferencing.
        • Throw error if a variable is shadowing another one from another scope.
        • Throw error if a function's return value is not used or explicitly ignored
    • Re-write the backend
      • Create an assembler for x86_64
      • Create a custom backend