Skip to content

Reference Overview

Reference pages are for readers who need compact contracts, tables and implementation-facing facts.

They are not tutorials. If you are learning the project for the first time, start with Getting Started and Internals before using this section.

How to use reference pages

Use reference pages when you need to answer questions such as:

  • which AIR opcodes exist;
  • what operands an instruction expects;
  • which backend modes exist;
  • what a backend must preserve;
  • which dialect/module names are intended as stable aliases;
  • which intrinsic symbols or capability families need documentation;
  • which project and documentation rules constrain changes.

Current reference map

PagePurpose
Dialect Referencedialect file syntax, directive families and shipped profiles
Module Referencemodule aliases, feature ownership and runtime exports
Module Contractstoken, parser priority, visitor ownership, bytecode tag, state and backend-capability contracts
Bytecode Referencebytecode concepts and lowering responsibilities
AIR ReferenceAIR opcode table and instruction contracts
Intrinsics Referenceintrinsic symbols, type arguments and capability expectations
Backend Contractsinterpreter/CIL/shared backend obligations
Runtime Profilesruntime profile defaults, builder API and profile applicator boundaries
Debug Trace Schemacurrent redacted structured trace artifact contract and remaining gaps
Project Rulescoding and contribution rules relevant to documentation and internals
Documentation Rulesdocumentation synchronization and executable example rules

Stability levels

Not every internal detail has the same stability.

Stability levelMeaning
Public usage contractsafe to show in user-facing docs
Developer contractexpected by module/backend authors and protected by tests
Current implementationtrue today, but should not be treated as public API without tests
Review noteuseful for architecture review, not normative

Reference pages should label current implementation details when they are not yet stable API.

What belongs here

Reference pages should include:

  • tables;
  • aliases;
  • opcode/operand shapes;
  • supported modes;
  • explicit constraints;
  • links to internals pages for deeper explanation.

What does not belong here

Reference pages should not become:

  • marketing copy;
  • long tutorials;
  • speculative roadmap;
  • undocumented guarantees;
  • replacements for tests.

Documentation rule

If a reference page lists a contract, it should be backed by one of:

  • current source code;
  • tests;
  • public project rules;
  • architecture docs.

If the source of truth is uncertain, document the item as current implementation rather than stable contract.

Next

Start with Dialect Reference, Module Contracts, AIR Reference or Backend Contracts.

Built for developers who want to use, extend, or understand UniversalToolchain.