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" } }