Scope-structured arena memory for C, O(1) cleanup, no GC/borrow checker
Details
- External ID
- 47779587
- Source
- HN
- Company
- —
- Product
- Scope-structured arena memory for C, O(1) cleanup, no GC/borrow checker
- Website domain
- github.com
- Launched
- April 15, 2026
- Cohort
- —
- Upvotes
- 5
- Upvotes percentile
- 0.11182519280205655
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:26 p.m.
- Updated at
- Sept. 7, 2026, 9:26 p.m.
Description
Ariandel is a memory model where every heap object lives in a scope-owned arena. Scope exit resets the arena in O(1) — one bump pointer write and one free — regardless of how many objects were allocated.The safety default: allocating functions return ARENA_PTR handles (packed arena_id + offset integers), not raw pointers. A dangling pointer at a function return boundary is unconstructable by default. Cross-scope lifetime extension is explicit — you enter the target arena via SCOPE(ptr) before allocating, which routes the object into the outer arena without transferring ownership.Benchmarks (no optimization flags): 1M-node tree cleanup drops from 31ms to 1ms (~30×). There's a real regression in tight inner loops (~0.76×) because DEREF can't hoist the base pointer the way a compiler would — the spec documents this honestly.This is a C macro-based proof-of-concept for a memory model I'm targeting in a compiled language. The interesting question isn't the C implementation — it's whether scope-structured arena routing is a sound replacement for GC and borrow checking across the class of programs that matter.Repo: https://github.com/hollow-arena/ariandel — SPEC.md has the full model including concurrency semantics and the comparison to Tofte & Talpin region-based memory.
Enrichment
- Theme
- lightweight and on-device AI runtimes
- Vertical
- Horizontal
- Function
- Dev tools
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- arena memory allocator for c
- Manually corrected
- False
Could you build this?
No Developing a novel memory model, custom arena allocator with packed pointer safety guarantees, and O(1) lifetime semantics in C requires deep low-level systems programming and memory architecture expertise.
What it would actually take: Implementing this requires building a low-level runtime or C compiler extension in C/C++ or LLVM with custom pointer tagging (packing arena IDs and offsets into 64-bit integer handles), custom memory alignment, virtual memory manipulation (e.g., mmap/mprotect tricks), and formal verification of safety invariants. It demands advanced systems programming expertise in cache-conscious allocators, ABI design, and memory model verification.
Discussion
1 comment analyzed.
Competitors mentioned: PHP async extension with C/libuv-based reactor
Concerns raised: Cross-arena references and lifecycle management complexity, O(1) cleanup claims with parent scope object captures
Competitors
Other products that read as similar to this one — 37 launches clear the similarity bar, closest 8 shown.
Attention rank: #33 of 38 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 166 days after the earliest competitor.
- Axe · hn · 2025-11-24 · 16 upvotes · similarity 0.52
- Threadprocs · hn · 2026-03-23 · 64 upvotes · similarity 0.46
- A systems language with runtime reflection and no GC · hn · 2025-12-15 · 6 upvotes · similarity 0.37
- Optimizing LiteLLM with Rust · hn · 2025-11-18 · 27 upvotes · similarity 0.37
- A fast, dependency-free traceroute implementation in pure C · hn · 2025-10-31 · 29 upvotes · similarity 0.37
- SafePool · hn · 2025-12-02 · 6 upvotes · similarity 0.36
- I wrote a minimal memory allocator in C · hn · 2025-11-23 · 137 upvotes · similarity 0.36
- Lockstep · hn · 2026-03-16 · 8 upvotes · similarity 0.35
Other launches for this product
- No other launches for this product.
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.