Updated documentation
This commit is contained in:
39
docs/readme.md
Normal file
39
docs/readme.md
Normal file
@ -0,0 +1,39 @@
|
||||
# q
|
||||
|
||||
A programming language that compiles down to machine code.
|
||||
|
||||
## Features
|
||||
|
||||
- Fast compilation
|
||||
- High performance
|
||||
- Small executables
|
||||
|
||||
## Installation
|
||||
|
||||
```shell
|
||||
git clone https://git.akyoto.dev/cli/q
|
||||
cd q
|
||||
go build
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```shell
|
||||
./q run examples/hello
|
||||
```
|
||||
|
||||
Builds an executable from `examples/hello` and runs it.
|
||||
|
||||
## Links
|
||||
|
||||
- [Chat](https://matrix.to/#/#community:akyoto.dev)
|
||||
- [Donate](https://buy.stripe.com/4gw7vf5Jxflf83m7st)
|
||||
- [Todo](/docs/todo.md)
|
||||
|
||||
## License
|
||||
|
||||
Please see the [license documentation](https://akyoto.dev/license).
|
||||
|
||||
## Copyright
|
||||
|
||||
© 2023 Eduard Urbach
|
80
docs/todo.md
Normal file
80
docs/todo.md
Normal file
@ -0,0 +1,80 @@
|
||||
## 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
|
||||
- [ ] Type system
|
||||
- [ ] Type operator `?`
|
||||
- [ ] Data structures
|
||||
- [ ] Slices
|
||||
- [ ] Floating-point arithmetic
|
||||
- [ ] Error handling
|
||||
- [ ] Threading library
|
||||
- [ ] Self-hosted compiler
|
||||
|
||||
### Keywords
|
||||
|
||||
- [x] `assert`
|
||||
- [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
|
||||
|
||||
- [ ] arm64
|
||||
- [ ] riscv
|
||||
- [x] x64
|
||||
|
||||
### Platform
|
||||
|
||||
- [x] Linux
|
||||
- [x] Mac
|
||||
- [ ] Windows
|
Reference in New Issue
Block a user