The implementation is the documentation.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
C · C++ · NASM · VYOM · Python Linux · Git · QEMU · POSIX
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
source ──▶ lexer ──▶ tokens ──▶ parser ──▶ AST ──▶ evaluator ──▶ output
A dynamically-typed language built without external compiler infrastructure. The lexer is a hand-rolled state machine producing a flat token stream. The parser is handwritten recursive descent — no generators, no parser tables — constructing the AST directly during traversal.
The runtime is a tree-walking evaluator. Environments are chained hash maps: each scope holds a pointer to its enclosing scope, enabling lexical variable resolution up the chain. Memory is managed manually; execution remains fully deterministic — no GC pauses, no hidden allocation.
The goal was not to create a language ecosystem. It was to own every stage between source text and output.
Snapshot-based VCS. No staging area. Each commit stores a full snapshot of tracked files, content-addressed by hash. Branching is pointer manipulation over the commit graph. Diff uses LCS for line-level deltas; merge detects conflicts before applying.
The .ion/ directory is intentionally human-readable — objects, refs, and the commit log are inspectable without tooling. The complexity Git accumulates around the index is absent by design.
Boots directly into a VGA shell from 16-bit real mode into 0x7C00. Stage 1 sets up segments and loads stage 2 via INT 13h. Stage 2 clears VGA text memory through direct writes to 0xB8000, initializes a stack, and enters a command loop. Input is handled via INT 16h keyboard interrupts — scan codes mapped, characters rendered to the VGA buffer manually.
No OS. No libc. Nothing between the code and the hardware.
Single-pass recursive walk via opendir/readdir. Glob matching is implemented manually through recursive pattern traversal — no fnmatch. Output uses box-drawing characters; prefix state is tracked through a bitmask passed down the call stack. Zero dependencies. POSIX surface only.
Custom binary archive format: fixed-size header, file index with per-entry offsets and sizes, contiguous data blocks. The index lives at a known offset — random access without a full scan. Compaction rewrites the archive in-place to reclaim space from deleted entries. Format is hand-parseable; no dependency on existing archive standards.
Parses a repository to extract module dependencies, call graphs, and structural relationships. Produces a navigable view of how a codebase is organized — file boundaries, import graphs, dependency depth. Useful for understanding unfamiliar codebases without reading every file.
control over convenience
correctness over shortcuts
implementation over usageactive
vyom → stdlib design, structured error reporting
dsa → implementations from scratch
linux → system-level internalsBhubaneswar, IN



