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
-
Architecture — package and phase map
-
Status — checklist against the phase plan