Skip to content

Commit ac07314

Browse files
committed
C4 does not reproduce, and the belief that blocked measuring it was wrong
`aarch64-macos --profile release` over the openkal stack links, and the artefact references no `memset_pattern` symbol at all. Measured here, on this Linux host, with mcpp 2026.9.21.1 and llvm@22.1.8 through openkal-macos 0.12.0 / openkal-musl 0.18.0 / openkal-llvm-runtime 0.13.0: zstd 1.5.7 compiles, links; Mach-O 64-bit arm64, NOUNDEFS; 0 refs xz 5.8.3 compiles, links Both are on the chain the report named. The engine has emitted `-fno-builtin-memset_pattern16` for `builtins = "iso"` on macOS since before this branch, and that report was taken on an engine that did not. Nothing is implemented for C4, and nothing should be: adding the symbol to openkal-musl would have repaired a gap that does not exist. THE BELIEF THAT KEPT THIS UNMEASURED IS THE MORE USEFUL FINDING. Both this plan and the previous wave's self-review stated that macOS facts need a macOS runner, because a probe targeting `aarch64-macos` failed here. That probe declared no openkal dependency, so it took the PLATFORM path, which does need an Apple SDK. The openkal path does not --- universal cross-building is the premise of the whole system, and a Linux host reaches `arm64-apple-macos14.0` through it with every layer resolved from the graph. The cost of that belief compounded: it filed C4 as unmeasurable, and it filed openkal-macos's `provides-interfaces` as needing a runner when 0.12.0 derived it mechanically. Both corrected, with the rule beside them --- a claim that some platform cannot be measured locally has to be tested with a probe that goes THROUGH the stack under test, not one that bypasses it.
1 parent 1bd80e8 commit ac07314

2 files changed

Lines changed: 30 additions & 8 deletions

File tree

.agents/docs/2026-09-20-wave-self-review.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,5 +107,10 @@ status: active
107107
最大的偏差。
108108
2. **P3 撤 `__CYGWIN__`** 判据已由 mimalloc 与 sqlite3 给出,代价需一次重测。
109109
3. **`__cxa_thread_atexit`** 本轮测量新发现的 C++ 运行时缺口。
110-
4. **openkal-macos 的 `provides-interfaces`** 无法在 Linux 宿主派生,需 macOS runner。
110+
4. **openkal-macos 的 `provides-interfaces`** 已在 0.12.0 关闭。
111+
**「无法在 Linux 宿主派生,需 macOS runner」这句判断是错的**——openkal 的前提就是通用
112+
交叉构建,Linux 宿主经 openkal 栈可以构建 `aarch64-macos`(实测:`kernel-abi`
113+
openkal-macos、`c-abi` musl、`c++-abi` libc++ 全部解析,产出 Mach-O arm64)。需要
114+
Apple SDK 的是**平台路径**,不是 openkal 路径。这条错误认知一度把 C4 也挡在"本机不可测"
115+
之外。
111116
5. **P4 / P6。** 独立工作量。

.agents/docs/2026-09-21-openkal-ecosystem-completion-and-acceptance.md

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -243,11 +243,28 @@ macOS,缺 SDK):
243243
`-fno-builtin-` 家族是一个 idiom 一个 flag;但报告点名的确实是 `16`
244244
3. `-fno-builtin-memset_pattern16` 不足以关掉 LLVM 的 loop-idiom pass。
245245

246-
**下一步不是实现符号,是取一次当前栈上的读数。** `lsp-mcpp-private`
247-
`aarch64-macos --profile release` 会直接给出答案;若仍红,第 2、3 种可能各有明确的
248-
后续动作(补发另外两个 flag / 由 C 库提供该符号)。
246+
**读数已取到,C4 关闭:在当前栈上不复现。**
249247

250-
**归属**:待定。**在读数出来之前给 openkal-musl 加符号,是在修一个可能不存在的缺口。**
248+
而且**是在本机取到的**——这推翻了本文另一处判断。openkal 的前提就是通用交叉构建,Linux
249+
宿主经 openkal 栈可以构建 `aarch64-macos`:需要 Apple SDK 的是**平台路径**,不是 openkal
250+
路径。我先前那个失败的探针没有依赖 openkal,于是走了平台路径,我把它读成了"macOS 本机
251+
测不了"。
252+
253+
实测(mcpp 2026.9.21.1、llvm@22.1.8、`--profile release``--target aarch64-macos`
254+
经 openkal-macos 0.12.0 / openkal-musl 0.18.0 / openkal-llvm-runtime 0.13.0):
255+
256+
| 成员 | 读数 |
257+
| --- | --- |
258+
| zstd 1.5.7 | 编译、链接通过;产物 `Mach-O 64-bit arm64, NOUNDEFS``memset_pattern` 引用 **0** |
259+
| xz 5.8.3 | 编译、链接通过 |
260+
261+
两个都是报告点名的那条链上的。所以那份报告测的是**加入 `-fno-builtin-memset_pattern16`
262+
之前**的引擎——三种可能里的第一种。
263+
264+
**归属**:无。不需要给 openkal-musl 加任何符号。
265+
266+
**留下的方法论**:一条"某平台本机测不了"的判断,要用**走 openkal 栈**的探针去验,不能用
267+
走平台路径的。两者对 SDK 的要求完全不同。
251268

252269
### 2.3 实现侧(openkal-*
253270

@@ -365,8 +382,8 @@ E1 (P3, 撤 __CYGWIN__)
365382
├─ 解锁 30 成员测量的 4 个失败
366383
└─ 解锁 lsp-mcpp-private 的 Windows 目标(经 xz)
367384
368-
C4 (memset_pattern16) —— 前提待重测;引擎已发 -fno-builtin-memset_pattern16
369-
└─ 可能根本不是阻塞。读数由 A1 的 macOS 腿给出
385+
C4 (memset_pattern16) —— 已关闭,本机实测不复现
386+
└─ 不是阻塞
370387
371388
└──> A1/A2/A3 三目标验收 <── 本方案的终点
372389
@@ -468,7 +485,7 @@ openkal-musl 0.18.0,而 0.18.0 当时还没进索引,消费者自己的 CI
468485
| C1 | 五行最小复现 | 链接通过**且析构真的执行** | **第二层未定位** |
469486
| C2 | curl / cmp-module | 记为 `refused` 而非 `fails` ||
470487
| C3 | `arc4random_buf` | 「应当有的符号」CI 断言 ||
471-
| C4 | `aarch64-macos --profile release` | 链接通过 | **前提待重测**(引擎已发抑制 flag,且实测到达了 zstd 的 29 个单元) |
488+
| C4 | `aarch64-macos --profile release` | **已通过,本机实测** | 关闭;不复现 |
472489
| I1 | 写死的节点集合 | conformance 逐条断言 ||
473490
| I2 | `presents = "windows"` 的 C 库 | 引擎改动数为 0 ||
474491
| **A1** | 三目标 `mcpp build` | 全绿 | E1, C4 |

0 commit comments

Comments
 (0)