Skip to content

Merge train: #9654 #9635 (fs ordering, Bun TCP facades) - #9656

Merged
proggeramlug merged 4 commits into
mainfrom
land-train101
Sep 3, 2026
Merged

Merge train: #9654 #9635 (fs ordering, Bun TCP facades)#9656
proggeramlug merged 4 commits into
mainfrom
land-train101

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

Lands #9654 (async fs write-unlink ordering preserved, #9574) and #9635 (Bun listen/connect TCP + Unix socket facades over the existing external node:net transport).

#9635 was the one PR today that needed real hand-merging — ten conflicts, three of which no mechanical rule resolves:

  • adopt.rs — main had refactored to match &transport { Transport::Plain(stream) => … } while this PR still used a bare stream and needed a new remote binding. Either side alone was wrong; remote is now computed through the new transport match.
  • lib.rs — one conflict was purely positional: git aligned the mod socket_events; split (from the compat(claude): provide Bun.ant host hooks #9633 train) against this PR's inline copies of the functions that split had moved. Verified this PR does not modify those functions — its lib.rs changes are remote_addr plumbing plus mod bun_tcp; — before taking the split side, and confirmed mod bun_tcp; still lands.
  • dispatch_a_c.rs — both sides were complete match arms sharing a trailing }\n}, so concatenation produced an unclosed delimiter. Bridged so the serve arm closes before listen/connect opens.

Verified the merge lost nothing: bun_tcp.rs is byte-identical to the PR's own copy except the dead-code annotation below, and call-site counts for every helper match.

Gate fixes carried:

  • Root-holder verdicts for TOKENS (write-token to socket HANDLE id — the same handle-band ids ABORTS already carries) and NEXT_TOKEN (a counter).
  • build_error_object held two freshly allocated JsStrings across field writes. JsString is a bare pointer wrapper, and the function already had a TransientRootScope for its receiver, so the strings are now rooted through it.
  • Module-level allow(dead_code) on bun_tcp.rs: several helpers and two BunSocket fields are written but not yet read on this build. Flagging for the author — they are reachable only from paths a follow-up turns on, and deleting them would also remove the writes that feed them.

Validation: run_lint_gates.sh all 62 gates pass; release build green; RUST_TEST_THREADS=1 perry-runtime 3064/0; manifest_consistency 5/5.

Rebase-merge preserving authorship.

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