Internals
How the compiler is laid out, how dispatch compiles to two instructions, and how the collector reaches microsecond pauses.
None of this is needed to write W#. All of it explains why the language is shaped the way it is, and most of the language’s constraints turn out to be one of these three decisions seen from the other side.
- Architecture: the five crates, the pipeline between them, and the decisions worth knowing about.
- Dispatch: why a runtime dispatch is one subtract and one unsigned compare.
- The collector: reference counting, a concurrent mark trace for cycles, and compaction that runs while the program does.
Contributor conventions and the invariants worth not breaking live in CLAUDE.md in the compiler’s repository.
- Architecture Five crates, one pipeline, and the decisions that shaped them.
- How dispatch compiles Preorder type ids, contiguous ranges, and a test that is one subtract and one unsigned compare.
- The collector Reference counting for the common case, a concurrent mark trace for cycles, and compaction that runs while the program does.