Skip to content

Revert "feat(xim): persist declared xpkg exports (#351)"#352

Merged
Sunrisepeak merged 1 commit into
mainfrom
revert/xpkg-exports-persistence
Jul 7, 2026
Merged

Revert "feat(xim): persist declared xpkg exports (#351)"#352
Sunrisepeak merged 1 commit into
mainfrom
revert/xpkg-exports-persistence

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Reverts #351 per layering review: the persisted .xpkg-exports.json had a single external consumer (mcpp's toolchain link model), while mcpp's built-in fallback (per-arch triple map + glob) already covers every real-world case — the entire mcpp 0.0.83 verification matrix ran green on xlings 0.4.62, which never had this file. A general-purpose package manager shouldn't carry a mechanism whose only reader is one downstream tool. The lua-level exports.runtime declarations are untouched (xlings' own elfpatch predicate consumes those). mcpp removes its reader side in a companion PR.

…kg-exports.json (#351)"

The persisted file's only consumer was mcpp's toolchain link model, and the
entire mcpp 0.0.83 verification matrix (PR CI, hermetic container, fresh
installs across 3 platforms + 6 distro containers) ran green on xlings
0.4.62 — which never had this file — with mcpp's built-in fallback (per-arch
triple map + glob) covering every real-world case. A general-purpose package
manager should not carry a mechanism whose sole reader is one downstream
tool: reverted per layering review. The declared exports in package lua
(exports.runtime) are untouched — xlings' own elfpatch predicate still
consumes those. If an installed-state metadata DB is ever needed, it should
be designed with xlings itself as its first consumer.
@Sunrisepeak Sunrisepeak merged commit 88c0a07 into main Jul 7, 2026
7 checks passed
@Sunrisepeak Sunrisepeak deleted the revert/xpkg-exports-persistence branch July 7, 2026 16:45
Sunrisepeak added a commit to mcpp-community/mcpp that referenced this pull request Jul 7, 2026
…rts.json reader (#197)

New contributor-facing document describing the toolchain machinery end to
end — resolution, the link model, the unified post-install fixup pipeline
(trigger semantics, marker fingerprinting, the never-patch-in-place and
ownership invariants), the human-facing cfg, the hermetic link check — and
how to extend it: new toolchains, new CPU architectures, and the
embedded/bare-metal outlook (no-loader / self-contained-sysroot toolchains
map onto existing CLibMode semantics).

Also removes mcpp's reader for the persisted .xpkg-exports.json (the
xlings-side writer is reverted in openxlings/xlings#352): its only consumer
was this resolver, while the triple map + glob fallbacks already cover every
real payload — the entire 0.0.83 verification matrix ran green on xlings
0.4.62, which never had the file. The decision is recorded in the new doc
(§3). Loader resolution behavior is unchanged for every existing payload.

No release needed: doc + dead-code removal only.
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