diff --git a/docs/re/structures/isl-builtins.md b/docs/re/structures/isl-builtins.md index cbede08..9ec1190 100644 --- a/docs/re/structures/isl-builtins.md +++ b/docs/re/structures/isl-builtins.md @@ -140,6 +140,39 @@ and spread checks but its maximum *exceeds* the table — flag indices run 0..31 against symbol tables as small as 40 — so it is excluded, and the disassembler now declines to resolve it rather than printing an invented name. +### ✅ Four built-ins are TUTORIAL-ONLY — 85 sites, every one in S18–S23 + +`96`, `97`, `98` and `104` were unnamed. Measured over all 28 stages, they form a +family that appears **nowhere outside the six tutorials**: + +| id | sites | stages | shape | +|---|---|---|---| +| **96** | 8 | S18–S23 only | one call per tutorial *section* | +| **97** | 38 | S18–S23 only | followed by `start_coroutine` (27/38) | +| **98** | **0** | — | never called anywhere | +| **104** | 39 | S18–S23 only | **followed by `wait_s` 39/39**, preceded by `end_coroutine` 37/39 | + +`104`'s adjacency is a textbook poll loop: a coroutine starts, tests the +predicate, waits, and goes round again — 39 sites, no exceptions. + +`96`'s operand is the giveaway. Its eight payloads are, in stage order: + +``` +Stage18 → 101, 102, 103 Stage19 → 201 Stage20 → 301 +Stage21 → 401 Stage22 → 501 Stage23 → 601 +``` + +That is `(stage − 17) * 100 + section`: tutorial 1 has three sections, the other +five have one each. The tutorial index is encoded in the argument. + +🟡 **Names are NOT applied.** `tutorial_begin` / `tutorial_end` / +`tutorial_message_pending` fit the shape, and `sub_82260710` reportedly suspends +while `[phase+340] == 2` with the payload latched at `[phase+344]` — but I have +not read that myself, and this file has already had to withdraw five names +guessed from shape. What is established here is the **distribution and the +argument encoding**, which is what a port actually needs; the labels can wait for +someone to read the handler. + ### ✅ Five built-ins are the mission banners — named from usage, not from a guess `77`, `78`, `81`, `82` and `135` were unnamed. The engine has five contiguous