Start Here
At its core a compiler is a mass of interdependent concepts that must all work together in synchrony to offer a usable, rich language to the user. This makes documenting individual pieces of the compiler in well-isolated sections difficult. I’ve organized the design document into three top-level sections, focused on the compiler, the runtime, and the language server. While the server is relatively standalone, the dependencies between compiler and runtime will likely mean this document is best read out-of-order.
The Hadron code repository has several old and out-of-date documents with notes on the design, so I’m systematically deleting those notes as I add updated documentation here. Consider this the authoritative source of Hadron design documentation. Like Hadron, it’s a work in progress. PRs welcome.