The Sublet primitives move to a shared home, because there is a second port - #11
Merged
Merged
Conversation
…d port sublet.h sat beside SQLite's patch while there was one port. The layout decision of 2026-09-10 said it would move when a second allocator was ported, and it has been: PostgreSQL's memory contexts call the same primitives. So it lives in capstone/sublet/ now, with a README that says what the file is and what it is not. The reason is not tidiness. The recipe being the same for every allocator is a claim the paper makes, and a recipe that exists twice is two recipes. What changes beyond the move: Both SQLite builds put capstone/sublet on the include path, and they still do it only inside the branch that applies a Sublet patch, so the unprotected build never sees a Sublet file. The patch's own directory stays on the path too, for anything a program's port keeps beside it. The patch's header comment and the reuse experiment's provenance line name the new path, so the recorded hash still identifies the primitives it ran against. repo-layout.md gains the row and the rule. The existing rule, that a protection port lives apart from the compatibility port, now names both directories the unprotected build must not read. Verified: the Capstone domain arm builds with the Sublet patch applied and sublet.h resolved from its new home, and the file exists nowhere else in the tree.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
sublet.hsat beside SQLite's patch while there was one port. The layout decision of 2026-09-10 said it would move when a second allocator was ported, and it has been: PostgreSQL's memory contexts call the same primitives. The PostgreSQL port itself follows inpostgres/1andpostgres/2, stacked on this.The reason is not tidiness. The recipe being the same for every allocator is a claim the paper makes, and a recipe that exists twice is two recipes.
What changes beyond the move
capstone/subleton the include path, still only inside the branch that applies a Sublet patch, so the unprotected build never sees a Sublet file. The patch's own directory stays on the path too, for anything a program's port keeps beside it.repo-layout.mdgains the row and the rule. The existing rule, that a protection port lives apart from the compatibility port, now names both directories the unprotected build must not read.Verified
The Capstone domain arm builds with the Sublet patch applied and
sublet.hresolved from its new home, and the file exists nowhere else in the tree.Noticed while verifying, not fixed here
fetch-sqlite-src.shcan no longer succeed. It pins a SHA3 ofhttps://sqlite.org/src/tarball/sqlite.tar.gz?r=version-3.53.3, which Fossil generates on demand and does not deliver byte-identically, so the checksum fails on every fresh fetch.test/speedtest1.cis also present in thesqlite-src-3530300tree thatfetch-sqlite.shproduces, which is a stable pinned archive, so taking it from there would remove the dependency. Reported rather than changed, since it is outside this branch's subject.