summaryrefslogtreecommitdiff
path: root/docs/application
diff options
context:
space:
mode:
authornodist <kevin.comas.git@gmail.com>2026-06-09 14:01:57 -0400
committernodist <kevin.comas.git@gmail.com>2026-06-09 14:01:57 -0400
commit9d6a15b55bc948227401cb0be721e764e8053b50 (patch)
tree01dc5d7f3465436236247987e1882f5ce18d3bba /docs/application
parenta13b72d789c6e2ee3d94bd1b19aad3dda0aea3c3 (diff)
add name to application
Diffstat (limited to 'docs/application')
-rw-r--r--docs/application/index.md1
-rw-r--r--docs/application/name.md21
-rw-r--r--docs/application/namespace.md7
-rw-r--r--docs/application/pool.md12
4 files changed, 37 insertions, 4 deletions
diff --git a/docs/application/index.md b/docs/application/index.md
index 9f316bc..fcc1dad 100644
--- a/docs/application/index.md
+++ b/docs/application/index.md
@@ -13,6 +13,7 @@
* ##### [Interface](./interface.md)
* ##### [Type](./type.md)
* ##### [Pool](./pool.md)
+# ##### [Name](./name.md)
* ##### [Thread](./thread.md)
* ##### [Io](./io.md)
* ##### [Gc](./gc.md)
diff --git a/docs/application/name.md b/docs/application/name.md
new file mode 100644
index 0000000..0fcc669
--- /dev/null
+++ b/docs/application/name.md
@@ -0,0 +1,21 @@
+# Name
+
+---
+
+Each word representing a var, symbol or type gets an `NAME_IDENTIFIER` -> `kpl_name*` associated with it
+
+## Object Definitions
+
+```c
+typedef struct _kpl_name {
+ POOL_HEADER(_kpl_name);
+ uint32_t length;
+ char *c_str[];
+} kpl_name;
+
+static kpl_name *kpl_name_head;
+```
+
+## Lookup and Storage
+
+All `kpl_name*` objects are stored as a tree under `kpl_name_head`
diff --git a/docs/application/namespace.md b/docs/application/namespace.md
index 41d9ee5..63d1f1a 100644
--- a/docs/application/namespace.md
+++ b/docs/application/namespace.md
@@ -22,19 +22,18 @@ typedef struct _kpl_native_namespace {
typedef struct _kpl_file_namespace {
POOL_HEADER(_kpl_file_namespace);
- __Atomic int16_t children;
- uint16_t flags;
+ kpl_type_ptr ast;
kpl_queue *parents;
kpl_buffer *file_name, *file_string;
kpl_export *exports;
- // TODO AST
kpl_task *task;
+ _Atomic size_t children;
} kpl_file_namespace;
typedef struct _kpl_string_namespace {
_Atomic int16_t children;
+ kpl_type_ptr ast;
kpl_buffer *string;
- // TODO AST
kpl_task *task;
} kpl_string_namespace;
```
diff --git a/docs/application/pool.md b/docs/application/pool.md
index 46602bf..f9baac6 100644
--- a/docs/application/pool.md
+++ b/docs/application/pool.md
@@ -11,9 +11,21 @@ typedef struct _kpl_pool_obj {
POOL_HEADER(_kpl_pool_obj);
} kpl_pool_obj;
+typedef strut {
+ _Atomic size_t allocs;
+ kpl_pool_obj *root;
+ pthread_mutex_t mutex;
+} kpl_pool;
+
static kpl_pool_obj *kpl_pool_head;
```
+## Object Size
+
+The max size of an object in the pool is 2 \*\* 32
+
+This allows for 4 aligned bytes after the `POOL_HEADER` macro
+
## List Management
## Tree Management