From 0e433d8641088ace22fcfca17b8ad8437343e2d2 Mon Sep 17 00:00:00 2001 From: speak-agent Date: Thu, 24 Sep 2026 06:25:31 +0800 Subject: [PATCH] bootstrap from 2026.9.24.1, and the verification that read the right file 2026.9.24.1 is released, mirrored to GitCode by the local top-up as each archive appeared (8/8 byte-identical with the GitHub release), and indexed (openxlings/xim-pkgindex#871, latest on all three platform tables, pointer at 4440c50). The sandbox verification script's section E searched target/ for compile_commands.json, which mcpp writes at the project root, so it failed on both releases and the old release's failure was read as the expected one. It now reads the file after each configure and checks the fingerprint by the number of build directories. With it, the SubOS sandbox with CN mirrors reads fails=0 on 2026.9.24.1 and fails=6 on 2026.9.21.3, the six CHANGE assertions, every GUARD passing on both. The plan and the analysis move to landed; the design stays active for the payload-contract clauses scheduled with the next LLVM batch. --- ...685-687-msvc-stl-and-toolchain-payloads.md | 2 +- ...toolchain-selection-implementation-plan.md | 19 ++++++++++++++++- .../2026-09-24-toolchain-selection-verify.sh | 21 +++++++++++++------ .agents/docs/README.md | 8 +++---- .xlings.json | 2 +- 5 files changed, 39 insertions(+), 13 deletions(-) diff --git a/.agents/docs/2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md b/.agents/docs/2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md index ce74e8d9..0d1cb4b7 100644 --- a/.agents/docs/2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md +++ b/.agents/docs/2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md @@ -1,6 +1,6 @@ --- subject: triage -status: active +status: landed --- # #685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化 diff --git a/.agents/docs/2026-09-24-toolchain-selection-implementation-plan.md b/.agents/docs/2026-09-24-toolchain-selection-implementation-plan.md index 98dd7b48..c0812b7d 100644 --- a/.agents/docs/2026-09-24-toolchain-selection-implementation-plan.md +++ b/.agents/docs/2026-09-24-toolchain-selection-implementation-plan.md @@ -1,6 +1,6 @@ --- subject: plan -status: active +status: landed --- # 工具链选择与载荷可信度:实施计划 @@ -65,3 +65,20 @@ status: active | T7 | Windows e2e 的五条 | — | | T9 | 安装后 `include-fixed` 里没有带横幅的文件 | 撤回修正后断言变红 | | T12 | 沙箱里所有检查通过,并把没有运行的检查单独列出 | — | + +## 4. 执行记录 + +| 编号 | 结果 | +|---|---| +| T1、T2 | 子代理在 `mcpp-685` 完成,合入主线分支;e2e `746` 与 `test_doctor_fixincludes` 在撤回修复后变红 | +| T3 到 T8 | 主线在 `mcpp-tcsel` 完成,mcpp#688 | +| T9 | openxlings/xim-pkgindex#870 已合入 | +| T10 | mcpp#688 以 b4824697 合入。Windows 上前三轮编译失败(`optional` 成员),第四轮编译通过后 `import std` 失败(`std.compat`),原因与修法见设计文档 §11;最终 40 项通过、1 项跳过,失败的两项是 macOS xcode-27,与 main 上同因(mcpp#669)。合入后 main 上同一提交的结果相同 | +| T11 | release run 35924420072 全绿。四个归档与 `.sha256` 在各自出现后由本地 gtc 传到 GitCode,GET 读回 200 且大小一致;与 GitHub release 逐字节比较 8/8 相同,四个归档与 sidecar 哈希一致。索引 bump openxlings/xim-pkgindex#871 的四个哈希与下载的归档逐个对应到平台槽位,CI 17 项通过后以 4440c503 合入;`latest` 恰为三行且都指向 2026.9.24.1;索引指针的 `index_version` 为 4440c50。AUR(`2026.9.24.1-1`)、Homebrew(`version "2026.9.24.1"`)、PyPI(`mcpp-bin 2026.9.24.1`)均已跟上 | +| T12 | SubOS `v924`,`--sandbox`,xlings 与 mcpp 都配 CN 镜像。沙箱里 `xlings update` 第一次即得到 `latest -> 2026.9.24.1`,`xlings install mcpp@2026.9.24.1` 从 CN 镜像安装。同一份脚本(`2026-09-24-toolchain-selection-verify.sh`)对 2026.9.24.1 为 fails=0(21 项通过);对 2026.9.21.3 为 fails=6,恰为六条 CHANGE 断言(D 一条、E 三条、F 两条),GUARD 在两个版本上都通过。旧版本上的读数:三元组为 `arm64-apple-macos14.0`,改值后构建目录数不变,`foo:gcc@16.1.0` 被接受,`xim:msvc@system` 报「only available on Windows hosts」。MSVC toolset 的选择只能在 Windows 上测,列为 NOT RUN,由 Windows CI 的 e2e 760(VS 2026,MSVC 14.51.36231)与 239 覆盖 | + +发布前补做的两次测量: + +- **旧引擎读新写法**(设计 §3.8)。用已发布的 2026.9.21.3 在 Windows runner 上构建四份清单:`msvc@system`、`msvc@` 让整份清单被拒;`xim:msvc@` 被接受而不生效,构建输出却把它列为 c-abi 层。写入 CHANGELOG 与 `docs/20`。 +- **沙箱判据的基线**。验证脚本先对 2026.9.21.3 运行:F 段原先断言 `xim:gcc@16.1.0` 能构建,在旧版本上同样通过,因为旧引擎会剥掉任何 `:` 前缀。F 段改为断言真正变化的两点(其他命名空间被拒;`xim:msvc@system` 作为写法被拒),CHANGELOG 与文档里「`xim:` 对所有族都接受」的表述也改为说明这一点早已成立、变化的是只接受 `xim:`。 +- **E 段的判据读错了文件**。它在 `target/` 下找 `compile_commands.json`,而 mcpp 把它写在工程根目录,于是在两个版本上都找不到文件而失败;旧版本上的这个失败曾被读成「CHANGE 段按预期失败」。新版本的运行暴露了它(构建输出自己写着 `→ arm64-apple-macos11.0`)。E 段改为每次 configure 之后立即读工程根目录的文件,并以构建目录数检查指纹;上表 T12 的两组读数都来自修正后的脚本。 diff --git a/.agents/docs/2026-09-24-toolchain-selection-verify.sh b/.agents/docs/2026-09-24-toolchain-selection-verify.sh index 13d7f590..9abbfd1e 100755 --- a/.agents/docs/2026-09-24-toolchain-selection-verify.sh +++ b/.agents/docs/2026-09-24-toolchain-selection-verify.sh @@ -111,17 +111,26 @@ macos_deployment_target = "11.0" [target.aarch64-macos] toolchain = "llvm@$LLVM" EOF +# `compile_commands.json` is written at the project root and rewritten by every +# configure, so each reading is taken right after its own configure. The build +# directory is named by the fingerprint, so a value that enters the fingerprint +# shows up as a second directory. if timeout 2400 "$STORE" build --target aarch64-macos --configure-only > cfg.log 2>&1; then - cdb=$(find target -name compile_commands.json | head -1) - if [ -n "$cdb" ] && grep -q 'arm64-apple-macos11.0' "$cdb"; then + if grep -q 'arm64-apple-macos11.0' compile_commands.json 2>/dev/null; then ok "the manifest value reaches the triple (arm64-apple-macos11.0)" else - fail "the triple does not carry 11.0"; grep -o -- '--target=[^ "]*' "$cdb" 2>/dev/null | sort -u + fail "the triple does not carry 11.0"; grep -o -- '--target=[^ "]*' compile_commands.json 2>/dev/null | sort -u fi + dirs1=$(ls -d target/aarch64-macos/*/ 2>/dev/null | wc -l) MACOSX_DEPLOYMENT_TARGET=12.0 timeout 900 "$STORE" build --target aarch64-macos --configure-only > cfg2.log 2>&1 - cdb=$(ls -t $(find target -name compile_commands.json) | head -1) - grep -q 'arm64-apple-macos12.0' "$cdb" && ok "MACOSX_DEPLOYMENT_TARGET overrides the manifest" \ - || fail "MACOSX_DEPLOYMENT_TARGET did not reach the triple" + if grep -q 'arm64-apple-macos12.0' compile_commands.json 2>/dev/null; then + ok "MACOSX_DEPLOYMENT_TARGET overrides the manifest" + else + fail "MACOSX_DEPLOYMENT_TARGET did not reach the triple"; grep -o -- '--target=[^ "]*' compile_commands.json 2>/dev/null | sort -u + fi + dirs2=$(ls -d target/aarch64-macos/*/ 2>/dev/null | wc -l) + [ "$dirs2" -gt "$dirs1" ] && ok "the value enters the fingerprint ($dirs1 -> $dirs2 build directories)" \ + || fail "the value did not change the fingerprint ($dirs1 -> $dirs2 build directories)" else fail "configure for aarch64-macos"; tail -8 cfg.log fi diff --git a/.agents/docs/README.md b/.agents/docs/README.md index d6fae69a..200fa112 100644 --- a/.agents/docs/README.md +++ b/.agents/docs/README.md @@ -53,7 +53,7 @@ Records that declare one. Everything else is listed by date below. ### plan -- [工具链选择与载荷可信度:实施计划](2026-09-24-toolchain-selection-implementation-plan.md) — active +- [工具链选择与载荷可信度:实施计划](2026-09-24-toolchain-selection-implementation-plan.md) — landed - [openkal 生态:完整性收尾与验收方案](2026-09-21-openkal-ecosystem-completion-and-acceptance.md) — active - [C 环境生态方案:执行计划](2026-09-20-ecosystem-execution-plan.md) — active @@ -77,7 +77,7 @@ Records that declare one. Everything else is listed by date below. ### triage -- [#685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化](2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md) — active +- [#685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化](2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md) — landed - [运行时绑定方案 v3:让 mcpp 真正安装它所声明的运行时](2026-09-17-runtime-binding-multi-repo-plan.md) — landed - [#662:目标侧由依赖图提供时,编译器的隐式头文件搜索仍指向宿主](2026-09-17-issue-662-graph-target-header-isolation-plan.md) — active - [Issue #660 分析:`glibc@2.44` 绑定在 2.44.3 发布后解析失败](2026-09-17-issue-660-glibc-line-binding-analysis.md) — landed @@ -97,9 +97,9 @@ Records that declare one. Everything else is listed by date below. ### 2026-09 -- [工具链选择与载荷可信度:实施计划](2026-09-24-toolchain-selection-implementation-plan.md) — active +- [工具链选择与载荷可信度:实施计划](2026-09-24-toolchain-selection-implementation-plan.md) — landed - [MSVC toolset 的选择、#685、#687 与工具链管理规范:总体设计](2026-09-24-toolchain-selection-and-payload-trust-design.md) — active -- [#685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化](2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md) — active +- [#685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化](2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md) — landed - [openkal 生态:完整性收尾与验收方案](2026-09-21-openkal-ecosystem-completion-and-acceptance.md) — active - [本轮生态级自审](2026-09-20-wave-self-review.md) — active - [openkal 生态:能力的时刻模型,以及 C 环境方案空间的划分](2026-09-20-openkal-c-environment-ecosystem-design.md) — active diff --git a/.xlings.json b/.xlings.json index e05750f1..a48c6307 100644 --- a/.xlings.json +++ b/.xlings.json @@ -1,5 +1,5 @@ { "workspace": { - "mcpp": "2026.9.21.1" + "mcpp": "2026.9.24.1" } }