Design brief

This page is the maintained AsciiDoc summary of the original project brief. The full archived markdown lives in the repository at docs/ideas/non-frustrating-ui-shell-d-lang-actor-model.md.

Core goal

Build a Windows/Linux UI shell that eliminates stutter and hangs by implementing an Erlang-style actor system in native D. Every UI component is an isolated lightweight process (fiber) managed by a supervision tree.

Erlang’s BEAM runtime (ERTS) is a useful reference for scheduler and mailbox ideas; this project reimplements the needed pieces in D rather than embedding OTP for the UI path.

Toolchain stance

  • Primary tools: D (DMD or LDC2); Erlang/OTP remains a reference and optional IPC peer

  • Prefer native D + extern© over third-party SDK wrappers

  • Static-link unavoidable C/C++ libraries (for example Blend2D)

Memory architecture

  • Disable GC for the actor core; keep libbeam_d @nogc

  • Manual allocators for long-lived structures

  • Per-frame arena for transient UI geometry (Phase 3+)

  • Immutable cross-actor messages for zero-copy handoff

See also