Repository navigation
2026.10.23.1: the target base and the execution host; trimmed release paths (#833, #832) - #834
Open
Sunrisepeak wants to merge 14 commits into
Open
Sunrisepeak wants to merge 14 commits into
Sunrisepeak wants to merge 14 commits into
Conversation
…-sysroot only for a stated base
…tated base; one line for a SubOS beside a stated base
…e's contract; the pack floor is for a stated base; macOS arm of the SDKROOT unit test
… release avoids depending on it
…std; R3 holds the space and names the non-ASCII case
This branch has not been deployed
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.
Summary
Closes #833. Fixes the mcpp half of #832 (the index half is openxlings/xim-pkgindex#1032).
The target base. A sysroot is the prebuilt supplier of a target's lower layers, not a layer.
[target.<triple>].sysroottakes a package, a locator (glibc@system,musl@system,macosx|iphoneos|iphonesimulator@system|<version>,msvc@…),{ path = "<dir>", provides = [...] }or"", from four tiers (--sysroot/MCPP_TARGET_<TRIPLE>_SYSROOT/MCPP_SYSROOT→ the project →config.toml→ the target row). It is resolved once intotc.base(mcpp.toolchain.base::Resolution) — the five groups of base fieldsToolchaincarried move there — and every reader uses it.glibc@systembuilds with gcc and clang). A base older than the compiler's runtime requires is refused before compiling, naming both versions.mcpp packstates the glibc floor inHOST-REQUIREMENTS.--sysroot(gcc's clean link specs drop the driver's); no artifact loads the host's loader over a sysroot's libc; mcpp no longer writes into a vendor's sysroot; a toolchain phase'sspec+ path-only keys is refused,spec+sysrootis the program's statement of the base.SDKROOTnames an SDK on every host; an SDK without the row's slice is refused naming it;x86_64-ios-simisverified(built on Apple silicon, run on amacos-15-intelsimulator by the newios-intel-runjob). The clang*-windows-msvcrow takes{ path }for a VS tree or a/winsysrootlayout.Using sysroot glibc 2.31 ← … [custom · mcpp.toml:12],mcpp why sysroot,base/executioninresolution.json, refusal codetarget-base,--managed-only.The execution host.
[target.<triple>].run_under(also inconfig.toml, overridden byMCPP_TARGET_<TRIPLE>_RUN_UNDER) composes<run_under…> <runner…> <artifact> <args>. Runners receiveMCPP_RUN_TRIPLE/KIND/MODE/ID/CLOSUREandMCPP_SYSROOT; the exit status is the program's. An Apple artifact on a non-macOS host withoutrun_underis refused before anything is spawned.#832, mcpp side.
releaseanddistdefineNDEBUGand trim the paths an artifact carries (trim_paths: each package to<name>@<version>/…, store/home/build/toolchain/sysroot to/mcpp/…;source-map.gdbinit/.lldbinitfor a debugger); both are profile keys and say so once after the upgrade. A pasted command quotes its path. The release workflow checks mcpp's own binary for the build machine's paths (check_release_paths.sh).Specs: SPEC-006 v0.10 (§3.9–§3.11, appendix A), SPEC-002 v1.2 (§6), SPEC-004 v1.17. Docs 04, 09, 10, 20, 22, 25, 50 (en + zh). Design:
.agents/docs/2026-10-23-target-base-and-execution-host-design.md(rev 5 records where the implementation departs from it, and why).Compatibility
The ecosystem's default build is unchanged (same fingerprint and
build.ninjameasured on Linux).release/distrebuild once forndebug/trim_paths;devdoes not. Every existingsysrootspelling keeps its meaning.Test plan
test_target_base: grammar, rows, measurement tables, identity, Apple locator viaSDKROOT, link-model rendering)glibc@systemgcc+llvm, 927 runner contract, 928 Apple SDK on Linux, 929 trim_paths/ndebug, 930 toolchain phase base; regression set over sysroot/runner/pack/profile testsios-intel-run), Windows; 931/932 need a fresh sandbox (932 after xim-pkgindex#1032 is published)