summaryrefslogtreecommitdiff
path: root/docs/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/index.md')
-rw-r--r--docs/index.md37
1 files changed, 37 insertions, 0 deletions
diff --git a/docs/index.md b/docs/index.md
index e69de29..acab793 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -0,0 +1,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