diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/allocator.md | 65 | ||||
| -rw-r--r-- | docs/check.md | 3 | ||||
| -rw-r--r-- | docs/code.md | 3 | ||||
| -rw-r--r-- | docs/eval.md | 3 | ||||
| -rw-r--r-- | docs/import.md | 3 | ||||
| -rw-r--r-- | docs/index.md | 4 | ||||
| -rw-r--r-- | docs/ir.md | 3 | ||||
| -rw-r--r-- | docs/jit.md | 3 | ||||
| -rw-r--r-- | docs/load.md | 3 | ||||
| -rw-r--r-- | docs/memory.md | 3 | ||||
| -rw-r--r-- | docs/parse.md | 3 | ||||
| -rw-r--r-- | docs/run.md | 3 | ||||
| -rw-r--r-- | docs/thread.md | 9 | ||||
| -rw-r--r-- | docs/type.md | 3 |
14 files changed, 44 insertions, 67 deletions
diff --git a/docs/allocator.md b/docs/allocator.md deleted file mode 100644 index 5885d76..0000000 --- a/docs/allocator.md +++ /dev/null @@ -1,65 +0,0 @@ -# Allocator - ---- - -KPL uses `mmap` to allocate slabs of non-executable and executable memory - -Once memory is used it is not returned to the OS until KPL exits - -## Non-Executable - -### Mapping - -Two linked list of pages is kept, tracing the size of map and how much is used: - -#### Small Page Allocator - -For allocations less then a page size `< 2 ^ 12` - -#### Large Page Allocator - -For allocations a page size or larger `>= 2 ^ 12` - -### Object Sizes - -Every Object KPL allocates is sized to the next power of 2 - -Because each power of two requires its own ring buffer, minimum allocation size is `2 ^ 6` and max is `2 ^ 27` - -### Ring Buffer Sizes - -The total number of objects each ring buffer can store can by modified by MACRO'S at compile time - -The program will exit if more objects are allocated then it's corresponding ring buffer can hold - -### Ring Buffer Implementation - -Each ring buffer is implemented as an atomic multi-producer multi-consumer queue - -### Operation - -#### Constructor - -#### Requesting Objects - -#### Returning Objects - -#### Destructor - -## Executable - -### Mapping - -A linked list of pages is kept, tracing the size of each map and how much is used - -### Operation - -#### Constructor - -#### Requesting Memory - -#### Writing To Memory - -#### Making Memory Executable - -#### Destructor diff --git a/docs/check.md b/docs/check.md new file mode 100644 index 0000000..3e8177e --- /dev/null +++ b/docs/check.md @@ -0,0 +1,3 @@ +# Check + +--- diff --git a/docs/code.md b/docs/code.md new file mode 100644 index 0000000..b17f2d7 --- /dev/null +++ b/docs/code.md @@ -0,0 +1,3 @@ +# Code + +--- diff --git a/docs/eval.md b/docs/eval.md new file mode 100644 index 0000000..8572f21 --- /dev/null +++ b/docs/eval.md @@ -0,0 +1,3 @@ +# Eval + +--- diff --git a/docs/import.md b/docs/import.md new file mode 100644 index 0000000..bf7635d --- /dev/null +++ b/docs/import.md @@ -0,0 +1,3 @@ +# Import + +--- diff --git a/docs/index.md b/docs/index.md index 3f08671..66a668b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,6 +6,6 @@ Version 0.0.0 ## Overview -KPL is a high level, asynchronous, garbage collected, just in time, programming language. +KPL is a high level, multi-threaded, asynchronous, garbage collected, just in time compiled, programming language. -This document describes the design of the language and how it is implemented. +This document describes the design of the language, it's implementation and the life cycle of a KPL program. diff --git a/docs/ir.md b/docs/ir.md new file mode 100644 index 0000000..aa04f99 --- /dev/null +++ b/docs/ir.md @@ -0,0 +1,3 @@ +# IR + +--- diff --git a/docs/jit.md b/docs/jit.md new file mode 100644 index 0000000..0f887bd --- /dev/null +++ b/docs/jit.md @@ -0,0 +1,3 @@ +# JIT + +--- diff --git a/docs/load.md b/docs/load.md new file mode 100644 index 0000000..b5c49fe --- /dev/null +++ b/docs/load.md @@ -0,0 +1,3 @@ +# Load + +--- diff --git a/docs/memory.md b/docs/memory.md new file mode 100644 index 0000000..fcae678 --- /dev/null +++ b/docs/memory.md @@ -0,0 +1,3 @@ +# Memory + +--- diff --git a/docs/parse.md b/docs/parse.md new file mode 100644 index 0000000..458ba97 --- /dev/null +++ b/docs/parse.md @@ -0,0 +1,3 @@ +# Parse + +--- diff --git a/docs/run.md b/docs/run.md new file mode 100644 index 0000000..13a3e2d --- /dev/null +++ b/docs/run.md @@ -0,0 +1,3 @@ +# Run + +--- diff --git a/docs/thread.md b/docs/thread.md new file mode 100644 index 0000000..684479e --- /dev/null +++ b/docs/thread.md @@ -0,0 +1,9 @@ +# Thread + +--- + +## Initialization + +## Allocator + +## Task Queue diff --git a/docs/type.md b/docs/type.md new file mode 100644 index 0000000..c6561b8 --- /dev/null +++ b/docs/type.md @@ -0,0 +1,3 @@ +# Type + +--- |
