Skip to content

Commit 2687444

Browse files
bootstrap from 2026.9.24.1, and the verification that read the right file (#689)
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. Co-authored-by: speak-agent <x.d2learn.org@gmail.com>
1 parent b482469 commit 2687444

5 files changed

Lines changed: 39 additions & 13 deletions

‎.agents/docs/2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
subject: triage
3-
status: active
3+
status: landed
44
---
55

66
# #685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化

‎.agents/docs/2026-09-24-toolchain-selection-implementation-plan.md‎

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
subject: plan
3-
status: active
3+
status: landed
44
---
55

66
# 工具链选择与载荷可信度:实施计划
@@ -65,3 +65,20 @@ status: active
6565
| T7 | Windows e2e 的五条 | — |
6666
| T9 | 安装后 `include-fixed` 里没有带横幅的文件 | 撤回修正后断言变红 |
6767
| T12 | 沙箱里所有检查通过,并把没有运行的检查单独列出 | — |
68+
69+
## 4. 执行记录
70+
71+
| 编号 | 结果 |
72+
|---|---|
73+
| T1、T2 | 子代理在 `mcpp-685` 完成,合入主线分支;e2e `746` 与 `test_doctor_fixincludes` 在撤回修复后变红 |
74+
| T3 到 T8 | 主线在 `mcpp-tcsel` 完成,mcpp#688 |
75+
| T9 | openxlings/xim-pkgindex#870 已合入 |
76+
| T10 | mcpp#688 以 b4824697 合入。Windows 上前三轮编译失败(`optional<std::string>` 成员),第四轮编译通过后 `import std` 失败(`std.compat`),原因与修法见设计文档 §11;最终 40 项通过、1 项跳过,失败的两项是 macOS xcode-27,与 main 上同因(mcpp#669)。合入后 main 上同一提交的结果相同 |
77+
| 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`)均已跟上 |
78+
| 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 覆盖 |
79+
80+
发布前补做的两次测量:
81+
82+
- **旧引擎读新写法**(设计 §3.8)。用已发布的 2026.9.21.3 在 Windows runner 上构建四份清单:`msvc@system`、`msvc@<toolset>` 让整份清单被拒;`xim:msvc@<toolset>` 被接受而不生效,构建输出却把它列为 c-abi 层。写入 CHANGELOG 与 `docs/20`。
83+
- **沙箱判据的基线**。验证脚本先对 2026.9.21.3 运行:F 段原先断言 `xim:gcc@16.1.0` 能构建,在旧版本上同样通过,因为旧引擎会剥掉任何 `<ns>:` 前缀。F 段改为断言真正变化的两点(其他命名空间被拒;`xim:msvc@system` 作为写法被拒),CHANGELOG 与文档里「`xim:` 对所有族都接受」的表述也改为说明这一点早已成立、变化的是只接受 `xim:`。
84+
- **E 段的判据读错了文件**。它在 `target/` 下找 `compile_commands.json`,而 mcpp 把它写在工程根目录,于是在两个版本上都找不到文件而失败;旧版本上的这个失败曾被读成「CHANGE 段按预期失败」。新版本的运行暴露了它(构建输出自己写着 `→ arm64-apple-macos11.0`)。E 段改为每次 configure 之后立即读工程根目录的文件,并以构建目录数检查指纹;上表 T12 的两组读数都来自修正后的脚本。

‎.agents/docs/2026-09-24-toolchain-selection-verify.sh‎

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,17 +111,26 @@ macos_deployment_target = "11.0"
111111
[target.aarch64-macos]
112112
toolchain = "llvm@$LLVM"
113113
EOF
114+
# `compile_commands.json` is written at the project root and rewritten by every
115+
# configure, so each reading is taken right after its own configure. The build
116+
# directory is named by the fingerprint, so a value that enters the fingerprint
117+
# shows up as a second directory.
114118
if timeout 2400 "$STORE" build --target aarch64-macos --configure-only > cfg.log 2>&1; then
115-
cdb=$(find target -name compile_commands.json | head -1)
116-
if [ -n "$cdb" ] && grep -q 'arm64-apple-macos11.0' "$cdb"; then
119+
if grep -q 'arm64-apple-macos11.0' compile_commands.json 2>/dev/null; then
117120
ok "the manifest value reaches the triple (arm64-apple-macos11.0)"
118121
else
119-
fail "the triple does not carry 11.0"; grep -o -- '--target=[^ "]*' "$cdb" 2>/dev/null | sort -u
122+
fail "the triple does not carry 11.0"; grep -o -- '--target=[^ "]*' compile_commands.json 2>/dev/null | sort -u
120123
fi
124+
dirs1=$(ls -d target/aarch64-macos/*/ 2>/dev/null | wc -l)
121125
MACOSX_DEPLOYMENT_TARGET=12.0 timeout 900 "$STORE" build --target aarch64-macos --configure-only > cfg2.log 2>&1
122-
cdb=$(ls -t $(find target -name compile_commands.json) | head -1)
123-
grep -q 'arm64-apple-macos12.0' "$cdb" && ok "MACOSX_DEPLOYMENT_TARGET overrides the manifest" \
124-
|| fail "MACOSX_DEPLOYMENT_TARGET did not reach the triple"
126+
if grep -q 'arm64-apple-macos12.0' compile_commands.json 2>/dev/null; then
127+
ok "MACOSX_DEPLOYMENT_TARGET overrides the manifest"
128+
else
129+
fail "MACOSX_DEPLOYMENT_TARGET did not reach the triple"; grep -o -- '--target=[^ "]*' compile_commands.json 2>/dev/null | sort -u
130+
fi
131+
dirs2=$(ls -d target/aarch64-macos/*/ 2>/dev/null | wc -l)
132+
[ "$dirs2" -gt "$dirs1" ] && ok "the value enters the fingerprint ($dirs1 -> $dirs2 build directories)" \
133+
|| fail "the value did not change the fingerprint ($dirs1 -> $dirs2 build directories)"
125134
else
126135
fail "configure for aarch64-macos"; tail -8 cfg.log
127136
fi

‎.agents/docs/README.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ Records that declare one. Everything else is listed by date below.
5353

5454
### plan
5555

56-
- [工具链选择与载荷可信度:实施计划](2026-09-24-toolchain-selection-implementation-plan.md) — active
56+
- [工具链选择与载荷可信度:实施计划](2026-09-24-toolchain-selection-implementation-plan.md) — landed
5757
- [openkal 生态:完整性收尾与验收方案](2026-09-21-openkal-ecosystem-completion-and-acceptance.md) — active
5858
- [C 环境生态方案:执行计划](2026-09-20-ecosystem-execution-plan.md) — active
5959

@@ -77,7 +77,7 @@ Records that declare one. Everything else is listed by date below.
7777

7878
### triage
7979

80-
- [#685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化](2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md) — active
80+
- [#685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化](2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md) — landed
8181
- [运行时绑定方案 v3:让 mcpp 真正安装它所声明的运行时](2026-09-17-runtime-binding-multi-repo-plan.md) — landed
8282
- [#662:目标侧由依赖图提供时,编译器的隐式头文件搜索仍指向宿主](2026-09-17-issue-662-graph-target-header-isolation-plan.md) — active
8383
- [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.
9797

9898
### 2026-09
9999

100-
- [工具链选择与载荷可信度:实施计划](2026-09-24-toolchain-selection-implementation-plan.md) — active
100+
- [工具链选择与载荷可信度:实施计划](2026-09-24-toolchain-selection-implementation-plan.md) — landed
101101
- [MSVC toolset 的选择、#685、#687 与工具链管理规范:总体设计](2026-09-24-toolchain-selection-and-payload-trust-design.md) — active
102-
- [#685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化](2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md) — active
102+
- [#685、#687 与 Windows clang 的 MSVC STL:三个问题的归属,以及工具链载荷的规范化](2026-09-24-685-687-msvc-stl-and-toolchain-payloads.md) — landed
103103
- [openkal 生态:完整性收尾与验收方案](2026-09-21-openkal-ecosystem-completion-and-acceptance.md) — active
104104
- [本轮生态级自审](2026-09-20-wave-self-review.md) — active
105105
- [openkal 生态:能力的时刻模型,以及 C 环境方案空间的划分](2026-09-20-openkal-c-environment-ecosystem-design.md) — active

‎.xlings.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"workspace": {
3-
"mcpp": "2026.9.21.1"
3+
"mcpp": "2026.9.24.1"
44
}
55
}

0 commit comments

Comments
 (0)