Skip to content

kernel: the word interner (Registration) moves out of busbar-contract - #994

Merged
MattJackson merged 1 commit into
predevfrom
lane-cabi-interner-kernel
Oct 15, 2026
Merged

MattJackson merged 1 commit into
predevfrom
lane-cabi-interner-kernel

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

CONTRACT-ABI lane, item 3 (part 1 of the contract statics): the word interner moves into the kernel.

THE DESIGN A.8 "Statelessness" (docs/design/BUSBAR-1.6.0.md l.3701): busbar-contract has no static, OnceLock, LazyLock or thread_local outside tests (gate contract-stateless). C.2 (l.3893): Contract statics (codec.rs, records.rs:94, ids.rs:330): deleted, with host tables used instead. This PR covers the ids.rs:330 row.

RED: the interner's tests move with it to crates/busbar-kernel/tests/vocabulary_{cap,freeze,resolve}.rs (git renames). The boot_cells.rs interning test becomes vocabulary_intern.rs. Each names busbar_kernel::Registration, so none compiles on predev. Each stays its own test binary because the vocabulary is the process's.

Lane TODO note: item 5, "ed25519-dalek → ring", is struck (coordinator ruling 2026-10-14). The ARCHITECT 2026-10-02 refusal stands (deny.toml:90-97).

Shared files (rule 20): git merge-tree is clean against every non-draft open PR touching these files: #981, #944, #941, #935, #927, #913, #904, #897, #894, #888, #863, #862, #817, #805, #804 and #503.

No dependency change. No behaviour change: the same interner, ceiling and freeze, in the host.

…oves out of busbar-contract

THE DESIGN A.8 "Statelessness" (BUSBAR-1.6.0.md l.3701) and C.2 (l.3893: "Contract statics
(codec.rs, records.rs:94, ids.rs:330): deleted, with host tables used instead"). The image's one
vocabulary is process state, so it is the host's: busbar_kernel::vocabulary holds
Registration, MAX_VOCABULARY, VOCABULARY and FROZEN, moved verbatim but for the docs that
reasoned about a plugin reaching the interner (a plugin's closure is the contract, which now
holds none of it). Callers in the composition root and busbar-llm name busbar_kernel::Registration;
plane crates' docs name the host's interner in prose. qa/contract-stateless.toml strikes the
three ids.rs rows (LazyLock, FROZEN, VOCABULARY) this drains.

RED: the vocabulary tests move with it (busbar-kernel tests/vocabulary_{cap,freeze,resolve,intern}.rs),
naming busbar_kernel::Registration; the contract-stateless ledger no longer forgives ids.rs.
@MattJackson

Copy link
Copy Markdown
Collaborator Author

#1028 also edits qa/contract-stateless.toml: it strikes the two codec.rs contract-stateless:static rows (ENTROPY_SOURCE, WALL_CLOCK). Different rows; adjacent-row conflict settles by hand (rule 13).

@MattJackson

Copy link
Copy Markdown
Collaborator Author

Rule 20 note from #1030 (row 155): qa/contract-stateless.toml, disjoint rows struck (services.rs OnceLock/KEPT/FILLING, codec.rs USAGE_TAP_FAULT_LATCH/REPORTER). A test merge is clean.

MattJackson added a commit that referenced this pull request Oct 15, 2026
…its new home, busbar-kernel vocabulary.rs::key (#994 moved it out of busbar-contract ids.rs)
@MattJackson
MattJackson merged commit 5e85a5c into predev Oct 15, 2026
1 check was pending
@MattJackson
MattJackson deleted the lane-cabi-interner-kernel branch October 15, 2026 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant