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>
57 lines
2.6 KiB
Markdown
57 lines
2.6 KiB
Markdown
# TODO list (epic)
|
|
|
|
- [x] Create a TODO list
|
|
- [x] Custom Functions (not external)
|
|
- [x] Add support for function definitions in the type checker
|
|
- [x] Add support for function definitions in the LLVM emitter
|
|
- [ ] Structures
|
|
- [x] Add support for definitions in the type checker
|
|
- [x] Add support for definitions in the LLVM emitter
|
|
- [x] Add support for member accesses in the type checker
|
|
- [x] Add support for member accesses in the LLVM emitter
|
|
- [x] Add support for packed in the parser
|
|
- [x] Add support for packed in the LLVM emitter
|
|
- [x] 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
|
|
- [x] 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
|