book: Reference, part 2 (errors, traits, generics, collections, modules, concurrency, encoding) #590

Open
opened 2026-10-29 14:25:44 +00:00 by orion · 3 comments
Collaborator

Slice of the epic #582. Starts after #585 (the concept, the vertical slice and the book gates) is merged.

Scope

Write these pages of book/reference/, each complete for its area:

New page Replaces in docs/
reference/errors.md language/errors/*
reference/traits.md language/traits/*
reference/generics.md language/generics/*
reference/collections.md language/collections-and-iteration/*
reference/modules-and-packages.md language/modules-and-packages/*
reference/concurrency.md language/concurrency-and-streams/*
reference/encoding-and-decoding.md language/reflection/*, language/extensibility/expression-trees.md

Acceptance criteria

  • Every page has the kind page and is written as book/CONCEPT.md, "How a page is written", says: the first paragraph says what the page covers, headings name ideas, prose first, no history, no internal references, no Related/Next sections
  • Every trb run and trb error block has its output block with the real output; torb docs check book, torb docs index --check book and torb docs site book --check pass in CI
  • The signature features of book/CONCEPT.md that the area touches are shown, not just named
  • The old pages of docs/ this slice replaces are deleted in the same PR, unless a skill is still built from them (then they stay, unpublished, and the PR says which)
  • Every form, rule and compiler error a reader can hit in the area is on the page, as prose with trb run/trb error examples

Pages

Filed as child issues, each its own PR, all carrying loop; none is ready yet, they are made ready one after the other. The pages are independent (links only to pages already on main), so the order is a suggestion. The first slice that touches a page set also decides the order: front matter of the Reference index.

  • reference/errors.md - #620
  • reference/propagating-errors.md - #621
  • reference/panics.md - #622
  • reference/traits.md - #623
  • reference/extending-and-delegating.md - #624
  • reference/operators.md - #625
  • reference/generics.md - #626
  • reference/collections.md - #627
  • reference/iteration.md - #628
  • reference/modules.md - #629
  • reference/packages.md - #630
  • reference/tasks.md - #631
  • reference/channels-and-streams.md - #632
  • reference/encoding-and-decoding.md - #633

Changes against the table above: errors is cut into errors, propagating-errors and panics; traits into traits, extending-and-delegating and operators; collections-and-iteration into collections and iteration; modules-and-packages into modules and packages; concurrency into tasks and channels-and-streams. generics and encoding-and-decoding stay one page each. The old pages of these areas are claimed by no child of #587, #588 or #589.

Slice of the epic #582. Starts after #585 (the concept, the vertical slice and the book gates) is merged. ## Scope Write these pages of `book/reference/`, each complete for its area: | New page | Replaces in `docs/` | |---|---| | `reference/errors.md` | `language/errors/*` | | `reference/traits.md` | `language/traits/*` | | `reference/generics.md` | `language/generics/*` | | `reference/collections.md` | `language/collections-and-iteration/*` | | `reference/modules-and-packages.md` | `language/modules-and-packages/*` | | `reference/concurrency.md` | `language/concurrency-and-streams/*` | | `reference/encoding-and-decoding.md` | `language/reflection/*`, `language/extensibility/expression-trees.md` | ## Acceptance criteria - [ ] Every page has the kind `page` and is written as `book/CONCEPT.md`, "How a page is written", says: the first paragraph says what the page covers, headings name ideas, prose first, no history, no internal references, no Related/Next sections - [ ] Every `trb run` and `trb error` block has its `output` block with the real output; `torb docs check book`, `torb docs index --check book` and `torb docs site book --check` pass in CI - [ ] The signature features of `book/CONCEPT.md` that the area touches are shown, not just named - [ ] The old pages of `docs/` this slice replaces are deleted in the same PR, unless a skill is still built from them (then they stay, unpublished, and the PR says which) - [ ] Every form, rule and compiler error a reader can hit in the area is on the page, as prose with `trb run`/`trb error` examples ## Pages Filed as child issues, each its own PR, all carrying `loop`; none is `ready` yet, they are made ready one after the other. The pages are independent (links only to pages already on main), so the order is a suggestion. The first slice that touches a page set also decides the `order:` front matter of the Reference index. - [ ] `reference/errors.md` - #620 - [ ] `reference/propagating-errors.md` - #621 - [ ] `reference/panics.md` - #622 - [ ] `reference/traits.md` - #623 - [ ] `reference/extending-and-delegating.md` - #624 - [ ] `reference/operators.md` - #625 - [ ] `reference/generics.md` - #626 - [ ] `reference/collections.md` - #627 - [ ] `reference/iteration.md` - #628 - [ ] `reference/modules.md` - #629 - [ ] `reference/packages.md` - #630 - [ ] `reference/tasks.md` - #631 - [ ] `reference/channels-and-streams.md` - #632 - [ ] `reference/encoding-and-decoding.md` - #633 Changes against the table above: `errors` is cut into `errors`, `propagating-errors` and `panics`; `traits` into `traits`, `extending-and-delegating` and `operators`; `collections-and-iteration` into `collections` and `iteration`; `modules-and-packages` into `modules` and `packages`; `concurrency` into `tasks` and `channels-and-streams`. `generics` and `encoding-and-decoding` stay one page each. The old pages of these areas are claimed by no child of #587, #588 or #589.
Author
Collaborator

[loop:torbscript] intake: in scope (book Reference part 2, slice of epic #582), no duplicate. Next: refine (split like #589).

[loop:torbscript] intake: in scope (book Reference part 2, slice of epic #582), no duplicate. Next: refine (split like #589).
Author
Collaborator

[loop:torbscript] claim refine by session:loop-torbscript-20261029-0858 until 2026-10-30T00:22Z

[loop:torbscript] claim refine by session:loop-torbscript-20261029-0858 until 2026-10-30T00:22Z
Author
Collaborator

[loop:torbscript] release refine: filed #620 (errors), #621 (propagating-errors), #622 (panics), #623 (traits), #624 (extending-and-delegating), #625 (operators), #626 (generics), #627 (collections), #628 (iteration), #629 (modules), #630 (packages), #631 (tasks), #632 (channels-and-streams), #633 (encoding-and-decoding). The old material of the seven areas is about 220 KB, too much for one PR, so each child is one page or a small group of 2-7 old pages, 30-40 minutes, with the criteria of this issue and its own Replaces in docs/ list; #590 now carries the checklist and no ready. All children carry loop and none is ready (they are made ready one after the other; the pages do not depend on each other, links only to pages already on main). No conflict with #587/#588/#589: none of them claims a page under docs/language/{errors,traits,generics,collections-and-iteration,modules-and-packages,concurrency-and-streams,reflection} or extensibility/expression-trees.md.

[loop:torbscript] next: waiting (children #620, #621, #622, #623, #624, #625, #626, #627, #628, #629, #630, #631, #632, #633)

[loop:torbscript] release refine: filed #620 (errors), #621 (propagating-errors), #622 (panics), #623 (traits), #624 (extending-and-delegating), #625 (operators), #626 (generics), #627 (collections), #628 (iteration), #629 (modules), #630 (packages), #631 (tasks), #632 (channels-and-streams), #633 (encoding-and-decoding). The old material of the seven areas is about 220 KB, too much for one PR, so each child is one page or a small group of 2-7 old pages, 30-40 minutes, with the criteria of this issue and its own `Replaces in docs/` list; #590 now carries the checklist and no `ready`. All children carry `loop` and none is `ready` (they are made ready one after the other; the pages do not depend on each other, links only to pages already on main). No conflict with #587/#588/#589: none of them claims a page under docs/language/{errors,traits,generics,collections-and-iteration,modules-and-packages,concurrency-and-streams,reflection} or extensibility/expression-trees.md. [loop:torbscript] next: waiting (children #620, #621, #622, #623, #624, #625, #626, #627, #628, #629, #630, #631, #632, #633)
Sign in to join this conversation.
No labels
loop
ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
torbscript/language#590
No description provided.