This audit determines which legacy material belongs in the Language Guide. Migration does not mean copying: each destination is rewritten against current syntax, sema, prelude signatures, and runtime tests.
Core language documents
| Legacy document | Book destination |
|---|---|
docs/grammar.md |
Source and Literals, plus the future normative grammar |
docs/code-style.md |
Naming specification and current examples throughout |
docs/vars.md |
Bindings |
docs/const.md |
Constants |
docs/function.md, docs/closures.md |
Functions and Closures |
docs/operators.md |
Operators |
docs/control-flow.md |
Blocks and Conditionals |
docs/loops.md |
Loops |
docs/match.md |
Patterns and Match |
docs/type-system.md |
Inference and Generics |
docs/structs.md |
Structs and Records |
docs/enums.md, docs/anon_enum.md |
Enums and Unions |
docs/alias.md, docs/projections.md |
Aliases and Projections |
docs/tuple.md |
Tuples; current arrays, lists, and slices are consolidated in Sequences |
docs/traits.md |
Traits and Implementations |
docs/value-semantics.md, docs/references.md |
Values and References |
docs/errors.md, docs/builtin/option.md, docs/builtin/result.md |
Focused chapters under Errors |
docs/modules.md, docs/project/project.md, docs/project/atoll.toml.md, docs/project/host.md |
Modules, Imports, Visibility, and Projects |
docs/async.md, docs/design/select.md |
Focused chapters under Concurrency |
docs/model.md |
Current persisted-row subset in Models; inheritance/behavior proposal excluded |
Builtin documents
| Legacy document(s) | Disposition |
|---|---|
builtin/core.md, builtin/builtin.md |
Standard-library overview; compiler-author details later |
builtin/int.md, builtin/float.md |
Numbers |
builtin/string.md, builtin/bytes.md |
Strings and Bytes; nominal bytes/Buffer corrected to current sequence types |
builtin/list.md, builtin/map.md, builtin/set.md |
Lists, Maps, Sets, and Iteration |
builtin/option.md, builtin/result.md |
Option and Result, plus error control flow |
builtin/time.md |
Time |
builtin/files.md, builtin/http.md, builtin/tcp.md |
Files, HTTP, and TCP |
builtin/spawn.md, builtin/stream.md |
Concurrency |
builtin/traits.md |
Traits |
builtin/unsafe.md, builtin/intrinsics.md |
Unsafe and Intrinsics |
builtin/any.md, email.md, phone.md, queue.md, stack.md, url.md |
Empty/planned and absent from the installed prelude; recorded in feature status only |
builtin/money.md |
Proposed domain type; no current prelude Money |
Data language
| Legacy document | Disposition |
|---|---|
docs/sql/SQL.md |
Reanalyzed into focused SQL chapters; per-feature maturity retained |
docs/design/transactions.md |
User-visible semantics in Transactions; executor/Raft design remains runtime material |
docs/sql/roadmap.md, docs/sql/turso.md, docs/design/arrow-integration.md |
Compiler/runtime implementation and project planning, not Language Guide chapters |
docs/project/sql.md |
Project configuration/tooling, to be migrated under project tooling |
Historical application-system proposals
The following are useful design archives but do not correspond to current declaration kinds. They are summarized in feature status:
actor.md, actor-compare.md, context.md, guard.md, job.md,
logger.md, messages.md, messaging.md, services.md, topic.md,
workflows.md, and every file under docs/decorators/ (actors, ai,
auth, data, events, fields, http, jobs, mcp, ui, and its
index).
No example from those files is taught as current syntax merely because the
generic decorator parser accepts its @name.
Compiler, IR, memory, and runtime material
These areas do not belong in the Language Guide:
- Every
docs/compiler/*.mdfile is compiler architecture, planning, diagnostics, incremental compilation, debugging, reproducibility, or performance material. - Every
docs/design/*.mdfile is implementation design.async-system.md,select.md, andtransactions.mdwere used as evidence for reader-visible semantics; their ABI and lowering detail remains outside the guide. arena.md,boxing-cleanup.md,flat.md,memory.md,docs/memory/*.md, andwasm_intrinsics_expansion_plan.mdbelong in the Runtime, MIR, or WasmIR sections. Only their source-visible guarantees were extracted.raft.md,docs/runtime/*.md, anddocs/runtime/topics.mdbelong in runtime/distributed-system documentation.docs/host/host.mdsupplies host-binding and capability material; the decorator surface is in the guide, while ABI/adapter design belongs under Runtime.
Project tooling and repository notes
Every file under docs/project/ belongs under Start/Project Tooling rather
than the Language Guide: atoll.toml.md, atoll.yaml.md, host.md,
hot-deploy.md, project.md, serialization.md, sql.md, and tracing.md.
The meta and work-tracking files _assessment.md, _load.md,
_presentation.md, _summary.md, _next/next.md, _next/perf.md,
stashed_work_inventory.md, and compiler plan trackers remain contributor
inputs, not reader chapters.
Rewrite rules applied
All migrated language material follows these rules:
- Prefer current parser/sema tests and installed prelude stubs over prose.
- Use lowercase scalar names, PascalCase composite names, square-bracket
generics, snake_case members, and
SCREAMING_SNAKE_CASEconstants. - Replace
let/varwith immutable ormut:=bindings. - Separate implemented, provisional, and historical behavior explicitly.
- Keep ABI, continuation, reference-count, arena, and SQL executor details in technical-design sections unless they change the source-language contract.
- Give every page one primary concept and a one-word title; use two words only when the established concept genuinely needs them.
Second review
A second implementation-led pass corrected several points that the legacy prose or first migration left ambiguous:
string.length()counts Unicode code points, whilestring.len()counts UTF-8 bytes;byte_length()is only the deprecated compatibility alias.- a parsed
binding DATASOURCE := queryprefix is not yet consumed by semantic routing, so named route overrides are marked provisional instead of taught as operational; - Turso rejects
FOR UPDATErather than silently treating it as a no-op; raceis first completion, not first success, and the current empty form still receives conservative static effects;- DataFusion is a datasource query engine, while every
Df[T]manipulation plan executes through Polars; - frame, stream, task, file, socket, and transaction cleanup behavior was reconciled with current resource and cancellation tests.
These corrections illustrate why a destination is reanalyzed rather than copied from its source document.
Third review
A third source-and-test pass tightened contracts that were still broader than the implementation:
- struct construction currently type-checks supplied known fields but does not reliably reject missing, duplicate, or unknown fields, and parsed field defaults are not yet applied;
- binding type projections remove
Resultand then at most one supportedOptionor collection wrapper, with map projections selecting the value type; - unannotated functions can synthesize a closed error union from several propagated error types;
catchmay recover to the success type, convert to a newResulterror type, or leave directly througherror; those outcomes are now documented separately;- naming warnings are opt-in
ATOLL7002diagnostics, and their current AST coverage is narrower than the convention table indocs/code-style.md.
The Structs chapter is marked provisional until total construction checking and field-default lowering are implemented.