diff options
| author | nodist <kevin.comas.git@gmail.com> | 2026-07-27 17:17:56 -0400 |
|---|---|---|
| committer | nodist <kevin.comas.git@gmail.com> | 2026-07-27 17:17:56 -0400 |
| commit | bb912b081ed339e4a5419bd3d2ffd7465f2f72d3 (patch) | |
| tree | 7f34b3af1a72672de1d12c8e23dda419c398dce3 /docs/lifecycle | |
| parent | 003119b9f285e5610f56186bce845441409265ae (diff) | |
bottom up redesign
Diffstat (limited to 'docs/lifecycle')
| -rw-r--r-- | docs/lifecycle/check.md | 16 | ||||
| -rw-r--r-- | docs/lifecycle/eval.md | 11 | ||||
| -rw-r--r-- | docs/lifecycle/exec.md | 5 | ||||
| -rw-r--r-- | docs/lifecycle/import.md | 5 | ||||
| -rw-r--r-- | docs/lifecycle/ir.md | 25 | ||||
| -rw-r--r-- | docs/lifecycle/jit.md | 80 | ||||
| -rw-r--r-- | docs/lifecycle/notify.md | 5 | ||||
| -rw-r--r-- | docs/lifecycle/parse.md | 37 | ||||
| -rw-r--r-- | docs/lifecycle/register.md | 16 | ||||
| -rw-r--r-- | docs/lifecycle/scope.md | 25 |
10 files changed, 0 insertions, 225 deletions
diff --git a/docs/lifecycle/check.md b/docs/lifecycle/check.md deleted file mode 100644 index cdaea80..0000000 --- a/docs/lifecycle/check.md +++ /dev/null @@ -1,16 +0,0 @@ -# Check - ---- - -Type checking - -# Ops - -# Actions - -## Branches - -# Functions - -## Return Type - diff --git a/docs/lifecycle/eval.md b/docs/lifecycle/eval.md deleted file mode 100644 index b96482d..0000000 --- a/docs/lifecycle/eval.md +++ /dev/null @@ -1,11 +0,0 @@ -# Eval - ---- - -Reduce AST size by evaluating expressions - -## Constant Expressions - -## Known Variables - -## Type Operations diff --git a/docs/lifecycle/exec.md b/docs/lifecycle/exec.md deleted file mode 100644 index bd2012c..0000000 --- a/docs/lifecycle/exec.md +++ /dev/null @@ -1,5 +0,0 @@ -# Exec - ---- - -## Exports diff --git a/docs/lifecycle/import.md b/docs/lifecycle/import.md deleted file mode 100644 index 669e67b..0000000 --- a/docs/lifecycle/import.md +++ /dev/null @@ -1,5 +0,0 @@ -# Import - ---- - -Find each import node and wait for the import to complete life cycle, then get a copy of its `export_tree` diff --git a/docs/lifecycle/ir.md b/docs/lifecycle/ir.md deleted file mode 100644 index 376189c..0000000 --- a/docs/lifecycle/ir.md +++ /dev/null @@ -1,25 +0,0 @@ -# Ir - ---- - -Convert an AST into a list of 6 address instructions - -# Ops - -## Boolean - -# Actions - -## If - -## Loop - -## Match - -## Mutate - -# Process - -## Tasks - -# Native Functions diff --git a/docs/lifecycle/jit.md b/docs/lifecycle/jit.md deleted file mode 100644 index 3ef73e0..0000000 --- a/docs/lifecycle/jit.md +++ /dev/null @@ -1,80 +0,0 @@ -# Jit - ---- - -Convert Ir Into X64 (X86_64) - -## Limitations - -### No Segmentation Registers - -### No X87 Support - -### No access to the upper 8 bits of the lower 16 bits of registers AX, BX, CX, DX - -## Required Implicit Registers - -Instructions that implicitly modify a register now require the register as an argument - -# Operation - -Each instruction is written with varardic c functions with `TYPE`, `DATA` syntax - -## TYPE - -### General Registers Width - -### General Register Addresses Width - -### General Register Scale - -### General Register Id - -### General Register Memory Offset - -### XMM Registers - -### MM Registers - -### Immediate Value - -### Relative Address - -### Label - -## DATA - -## Object Definitions - -```c -kpl_x64_lable(label) - -kpl_x64_inst(INSTRUCTION, [TYPE, VALUE]..., END) - -kpl_x64_inst_pfx(PREFIX, INSTRUCTION, [TYPE, VALUE]..., END) -``` - -# Ir Matching - -Use tree with sub trees to match Ir operations to JIT functions - -1. Match Name -2. Match Args until None or End -3. Run JIT Fn - -## Object Definitions - -```c -typedef struct _kpl_ir_match { - int32_t tree_weight; - union { - kpl_ir_name ir_name; - kpl_type_header type_header; - } match; - union { - struct _kpl_ir_match *children; - void *jit_fn; // TODO - } next; - struct _kpl_ir_match *tree_left *tree_right; -} kpl_ir_match; -``` diff --git a/docs/lifecycle/notify.md b/docs/lifecycle/notify.md deleted file mode 100644 index 4c53254..0000000 --- a/docs/lifecycle/notify.md +++ /dev/null @@ -1,5 +0,0 @@ -# Notify - ---- - -## Release Export Mutex diff --git a/docs/lifecycle/parse.md b/docs/lifecycle/parse.md deleted file mode 100644 index 6d702a8..0000000 --- a/docs/lifecycle/parse.md +++ /dev/null @@ -1,37 +0,0 @@ -# Parse - ---- - -Build initial AST - -# Value - -## Integer `\d+` - -## Float `\d+\.\d+` - -## String `".*?"` - -## Char `'\\?.' - -# Name `[_a-z][a-zA-z0-9_]{0,49}` - -# Type `[A-Z][a-zA-z0-9_]{0,49}` - -On type completion look up if type is a builtin - -# Symbol `\.[a-zA-z0-9_]{0,50}` - -# Op - -## Op ``[a-z_]+|OPERATORS` - -## Action `[?@#^]` - -# List - -## List `()` - -## Define `[]` - -## Action `{}` diff --git a/docs/lifecycle/register.md b/docs/lifecycle/register.md deleted file mode 100644 index bffb3a8..0000000 --- a/docs/lifecycle/register.md +++ /dev/null @@ -1,16 +0,0 @@ -# Register - ---- - -## Module - -1. Add findsert task to `namespace_module_mutex` - * If found, stop -2. Create the namespace, lock its `export_mutex` and add to namespace tree -3. Create task on the new namespaces to read the file into a string -4. On completion of the read task start a parse task - -## String - -1. Add task to set new `kpl_buffer` to `namespace_string` `module_string` -2. The set task will start a parse task diff --git a/docs/lifecycle/scope.md b/docs/lifecycle/scope.md deleted file mode 100644 index 3310888..0000000 --- a/docs/lifecycle/scope.md +++ /dev/null @@ -1,25 +0,0 @@ -# Scope - ---- - -## Initialize Functions - -## Type Variables - -## Link Functions Parents - -## Link Function Scopes - -## Create Vars - -## Initialize Actions - -## Split Process Into Tasks by `await` - -## Register Imports - -On finding an import node add a register task for the imported string - -## Initialize Generics - -## Resolve Unique And Alias Types |
