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
|