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
|