summaryrefslogtreecommitdiff
path: root/docs/index.md
blob: acab793a22fa59a27a1bce96a0f7cceb6345e893 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Kevin's Programming Language (KPL) Specification

---

## Language Goals

### Implicit Error Handling

* All operations return a `Result` that can be manually or automatically checked

### Asynchronous First

* No functions, only coroutines

### All Code Is Thread Safe

* Values are atomic and all containers have a `mutex` like mechanism that is implicitly locked before use

### Strongly Typed

* Dynamic types are represented by `Any`, these types have to be matched to a type before they can be used

### Single Invocation

* Just In Time Compilation

### Asymmetric C Interoperability

KPL code can call C code, C code can call certain KPL code

### Run On Linux/WSL With `io_uring` For `X86-64` And `Aarch64` Only with Minimal Dependencies

* GCC, Make and OpenSSL; should compile on most distributions without any extra steps

### Low Resource Usage

* Should work on servers with 1 Core and 1 Gigabyte of RAM