# Runtime --- ## Requirements * Linux X64 with io_uring (6+) * GNU Make * GCC with -std=gnu99 -fhardened (14+) ## Sections * ##### [Interface](./interface.md) * ##### [Thread](./thread.md) * ##### [Mutex](./mutex.md) * ##### [Memory](./memory.md) * ##### [Io](./io.md) * ##### [Shared](./shared.md) * ##### [Identifier](./identifier.md) * ##### [Type](./type.md) * ##### [Group](./group.md) * ##### [Buffer](./buffer.md) * ##### [Map](./map.md) * ##### [Queue](./queue.md) * ##### [Union](./union.md) * ##### [Native](./native.md) * ##### [Namespace](./namespace.md) * ##### [Error](./error.md) * ##### [Testing](./testing.md) # Invocation ## Startup 1. Configuration * `thread_count` - defaults to number of available processors 2. Initialize allocators 3. Initialize tasks 4. Initialize types * Built In Alias 5. Initialize IO * Size of registered sparse buffers ## Main ### Module ### String/REPL ## Life cycle 1. ##### [Register](../lifecycle/register.md) 2. ##### [Parse](../lifecycle/parse.md) 3. ##### [Scope](../lifecycle/scope.md) 4. ##### [Import](../lifecycle/import.md) 5. ##### [Check](../lifecycle/check.md) 6. ##### [Eval](../lifecycle/eval.md) 7. ##### [Ir](../lifecycle/ir.md) 8. ##### [Jit](../lifecycle/jit.md) 9. ##### [Exec](../lifecycle/exec.md) 10. ##### [Notify](../lifecycle/notify.md) ## Shutdown 1. Clean up IO 2. Clean up types 3. Clean up tasks 4. Clean up allocators