Skip to content

row 84: memory-ABI connection shapes move out of abi/hot into abi/shared.rs (hot 6224 -> 5965) - #898

Closed
MattJackson wants to merge 4 commits into
predevfrom
lane-abi-hot-cold
Closed

MattJackson wants to merge 4 commits into
predevfrom
lane-abi-hot-cold

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

Status row 84 ("old plugin interface gone"): the shapes the memory ABI's connection table carries move out of the condemned HOT lane.

What

  • DeclStr, WireConnFacts, WireField and the closed-vocabulary byte codes (code) are the shapes that abi/host/conn (the memory ABI's connection table) carries. They were defined in abi/hot/decl.rs and abi/hot/transport.rs.
  • They move whole and unchanged to one home under abi/, the new crates/busbar-contract/src/abi/shared.rs (the one-place rule).
  • The HOT lane names them through pub use re-exports until it is deleted. Every user resolves the same types at the same paths: the connection table, the HOT transport load path, layout_golden.rs and the kernel. No layout moves.
  • abi/shared.rs is not one of the C header generator's sources, so busbar_plugin.h is unchanged.

Why

  • THE DESIGN §11, owner-locked 2026-09-27: the plugin ABI is the memory ABI alone, and the HOT and COLD lanes are condemned.
  • The abi-location rule: every ABI shape lives in busbar-contract/src/abi/.

Measured, every line under each directory (the freeze measure)

  • abi/hot: 6224 → 5965. qa/abi-freeze.toml is lowered in this commit, as the exact freeze requires.
  • Non-test lines (the row's measure): abi/hot 5177 → 4918; abi/cold unchanged at 233.

Test

The move is a pure relocation. It is proved by the existing consumers compiling against the re-exports and by layout_golden (sizes and offsets unchanged). abi-freeze goes RED if the row is not lowered or the lane grows.

Files

None of these files are held by an open PR: abi/hot/{decl,transport}.rs, abi/mod.rs, the new abi/shared.rs and qa/abi-freeze.toml.

…ut of the condemned HOT lane into abi/shared.rs (row 84)

Status row 84 (old plugin interface gone; THE DESIGN §11: the plugin ABI is the memory ABI
alone). DeclStr, WireConnFacts, WireField and the closed-vocabulary byte codes (code) are the
shapes abi/host/conn (the memory ABI's connection table) carries; they were defined in
abi/hot/decl.rs and abi/hot/transport.rs. They move whole, unchanged, to their one home under
abi/ (abi/shared.rs); the HOT lane names them through re-exports until it is deleted, so every
user (the connection table, the HOT transport load path, the layout golden) resolves the same
types at the same paths and no layout moves.

abi/hot: 6224 -> 5965 lines (qa/abi-freeze.toml lowered in this commit, the freeze is exact);
non-test 5177 -> 4918. abi/shared.rs is outside the C header's sources, so the header is
unchanged.
…he stubs moved to (#898, row 84)

#898 moved DeclStr out of hot/decl.rs into abi/shared.rs, so every marker below it moved up 36
lines. The gate's own lists name the move: 8 unwaived (427, 439, 446, 450, 454, 472, 481, 497) and
8 stale (475, 482, 486, 499, 508, 517, 526, 533). The other two markers (admin_routes, admission)
landed on 463 and 490, lines that two older rows already named, so those rows matched by accident.
Each row moves by the same 36 lines and keeps its own reason: 463->427 (the STUB doc label),
475->439, 482->446, 486->450, 490->454, 499->463, 508->472, 517->481, 526->490, 533->497. Every new
line was read against the file: it holds the marker its row names.
@MattJackson

Copy link
Copy Markdown
Collaborator Author

Rule 20 note from #1030/#1031 (row 155): qa/abi-freeze.toml's abi/hot row moves too (6224 -> 6100 -> 6075). This is a count-line conflict: whoever lands second settles it by hand (rule 13).

…ber (#898, row 84)

feature_invariance::the_doc_comments_cite_the_design_in_words refused shared.rs:7, which
pointed at the plugin-ABI section of THE DESIGN by its number. It now names it in words: "THE
DESIGN, the plugin ABI", the spelling abi/mod.rs and mechanism/observe.rs use.
qa/abi-freeze.toml conflicted on the abi/hot row: base 6224, predev 6100 (-124, its own hot drains:
services.rs, host.rs and their tests), this branch 5965 (-259, the shapes moved to abi/shared.rs).
The two drains touch different files, so both deltas apply: 6100 + 5965 - 6224 = 5841. The merged
tree measures that exactly (every line of every file under abi/hot, counted by hand, since xtask is
not run on the laptop). The cold row is unchanged at 272: neither side touched it.

The decl.rs stub waivers stay as #898 re-keyed them: predev did not touch decl.rs, so those lines
did not move.
MattJackson added a commit that referenced this pull request Oct 14, 2026
MattJackson added a commit that referenced this pull request Oct 14, 2026
MattJackson added a commit that referenced this pull request Oct 14, 2026
…rides with it

This head carries #904's fixes for its own reds:
- the #898 no-deferral waiver re-key and its in-words design citation;
- kind-isolation busbar-contract x instance:secret lowered 133 -> 131 (the drain the gate measured);
- the contract-stateless strike of the four drained SDK statics.

qa/abi-freeze.toml conflicted on the abi/hot row. Base 6224; predev 6100 (its own hot drains in
services.rs and host.rs); this branch 5965 (#898's move to abi/shared.rs). The two drains touch
different files, so both apply: 6100 + 5965 - 6224 = 5841, the same settle #898 took. The merged
tree measures that exactly, every line of every file under abi/hot counted by hand (no xtask on the
laptop). The cold row stays at this branch's 43, also counted on the merged tree; predev did not
touch abi/cold.
MattJackson added a commit that referenced this pull request Oct 14, 2026
…ev) into lane-abi-hot-plane

qa/abi-freeze.toml: abi/hot takes the merged tree's 5841 (predev's and #898's drains, counted by
hand); the cold row stays struck, abi/cold is deleted here.
@MattJackson

Copy link
Copy Markdown
Collaborator Author

Closed: every commit of this PR is patch-identical to content that landed on predev in the wave-1 integration (predev 179abf2, lane-integration-w1b). Nothing remains to merge.

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