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>
2.6 KiB
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
- Add support for modules in the type checker
- 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