88 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2024-08-26 12:46:47 +02:00
## Todo
### Compiler
- [x] Tokenizer
- [x] Scanner
- [x] Functions
- [x] Variables
- [x] Error messages
- [x] Expression parser
- [x] Function calls
- [x] Parallel compilation
- [x] Syscalls
- [x] Variable lifetimes
- [x] Branches
- [x] Loops
- [x] Hexadecimal, octal and binary literals
- [x] Escape sequences
- [x] Multiple return values
2025-02-09 16:31:16 +01:00
- [x] Data structures
- [x] Type system
2025-02-16 19:58:47 +01:00
- [ ] Dynamic libraries: Linux Mac ~~Windows~~
- [ ] Unsigned types
2024-08-26 12:46:47 +02:00
- [ ] Type operator `?`
- [ ] Slices
- [ ] Floating-point arithmetic
- [ ] Self-hosted compiler
2025-02-16 19:58:47 +01:00
### Library
- [ ] Efficient memory allocator
- [ ] Error handling
- [ ] Multithreading: ~~Linux~~ Mac ~~Windows~~
2024-08-26 12:46:47 +02:00
### Keywords
- [x] `assert`
2025-02-16 19:58:47 +01:00
- [x] `const`
- [x] `extern`
2024-08-26 12:46:47 +02:00
- [x] `else`
- [ ] `for`
- [x] `if`
- [x] `import`
- [x] `loop`
- [x] `return`
- [x] `switch`
### Optimizations
- [x] Exclude unused functions
- [x] Constant folding
- [ ] Constant propagation
- [ ] Function call inlining
- [ ] Loop unrolls
- [ ] Assembler optimization backend
### Linter
- [x] Unused variables
- [x] Unused parameters
- [x] Unused imports
- [ ] Unnecessary newlines
- [ ] Ineffective assignments
### Operators
- [x] `=`, `:=`
- [x] `+`, `-`, `*`, `/`, `%`
- [x] `+=`, `-=`, `*=`, `/=`, `%=`
- [x] `&`, `|`, `^`
- [x] `&=`, `|=`, `^=`
- [x] `<<`, `>>`
- [x] `<<=`, `>>=`
- [x] `==`, `!=`, `<`, `<=`, `>`, `>=`
- [x] `&&`, `||`
- [ ] `!`, `-`
### Architecture
2025-02-16 19:58:47 +01:00
- [ ] arm
2024-08-26 12:46:47 +02:00
- [ ] riscv
2025-02-05 23:16:18 +01:00
- [x] x86
2024-08-26 12:46:47 +02:00
### Platform
- [x] Linux
- [x] Mac
2025-02-09 16:31:16 +01:00
- [x] Windows