Practice

The other tracks describe the system. This one describes working on it — the practices that keep the codebase the shape the principles describe, and the tools you reach for while doing it.

Nothing here is a separate body of text. Every page below lives in the track it belongs to and keeps its own address; this is a reading order, gathered because someone arriving to make a change should not have to find these pages one at a time.

Start here

  • Principles — what the system is, and the small number of commitments everything else follows from. Read this before the page below it.
  • Guide for Implementors — how to work on the runtime, the shop, and the compiler: pit over C, named refusals, docs-first, guard comments, lifetimes, and the C safety rules that are not optional.

Targets and builds

  • Recipes — the file that is a target. Inventing a target is writing one of these.
  • Building C — the runtime builder, the arms, and how to declare C without writing a cake.
  • Writing C Modules — the module ABI and the full GC-safety reference for C that touches ƿit values.

When it goes wrong, and when it ships

  • Debugging — debug information, what the runtime will tell you, and how to get it to tell you.
  • Nightly Distribution — what CI produces on every push to dev, and what a nightly package contains.

What is being worked on

Practice is durable; the work is not. What is in flight right now — live plans, carried defects, the working method, and the record of what has already been ruled — is in State.