Skip to content

Commit 0f80aa1

Browse files
committed
docs: #693-#696 records landed, with the release and ecosystem readings
The plan's status moves to landed, and its implementation record (§12.4 to §12.6, Appendix A.15) states what was released and measured: - mcpp 2026.9.26.1 (#698), xlings 2026.9.26.2 (openxlings/xlings#613), openkal-musl 0.19.2 and openkal-llvm-runtime 0.15.2, each mirrored to GitCode and checked against its GitHub sha256, and registered or indexed; - the sandbox check of the published artefacts (12 ok) and the same script against 2026.9.25.1 (exactly the six criteria the release changes fail); - mcpp-index#469's sweep (green on every platform) and its openkal measurement over four targets, where the one cell #696 makes visible, mimalloc's `-latomic` on the linux-musl rows, is filed with its owner (mcpplibs/openkal-llvm-runtime#31); - the self-review, and what remains open with the reason for each.
1 parent f61b466 commit 0f80aa1

2 files changed

Lines changed: 95 additions & 7 deletions

File tree

‎.agents/docs/2026-09-25-issues-693-696-triage-and-repair-plan.md‎

Lines changed: 93 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
subject: design
3-
status: active
3+
status: landed
44
---
55

66
# Issues #693 to #696: triage against mcpp's contracts, and one repair plan
@@ -1047,13 +1047,13 @@ Three items are split out, each for a stated reason.
10471047

10481048
| # | Pull request | State |
10491049
|---|---|---|
1050-
| 1 | openxlings/xlings#613 | open, CI running; released as 2026.9.26.2, because 2026.9.26.1 had been released separately earlier the same day |
1050+
| 1 | openxlings/xlings#613 | merged as `2e3df6dd`; released as 2026.9.26.2 (2026.9.26.1 had been released separately earlier the same day); the four GitCode archives match the GitHub sha256 sidecars; xim-pkgindex#876 (the bot's +22/-3) merged with its hashes checked against the sidecars |
10511051
| 2 | mcpplibs/openkal-musl#43 | merged as `20b92683`; tag `0.19.2`; the GitHub archive (1157319 bytes, sha256 `e8043bcd...c82238`) and the GitCode copy compared byte for byte; the archive carries `port/lib/lib*.a`, eight files of eight bytes |
10521052
| 3 | mcpplibs/mcpp-index#467 | merged as `1529f5f3`; the index artifact `1529f5f` is served by both hosts with the pointer's digest |
10531053
| 4 | mcpplibs/openkal-llvm-runtime#30 | merged as `79671f6b`; tag `0.15.2`; archive 15631743 bytes, sha256 `c2219ad8...c0d0d9`, GitCode copy byte-identical; its mcpp.toml reads openkal-musl `0.19.2` |
1054-
| 5 | mcpplibs/mcpp-index#468 | registration of runtime 0.15.2, CI running |
1055-
| 6 | mcpp-community/mcpp#698 | CI run 1: every Windows row of the regression job passes (below); follow-up commit pending the xlings release |
1056-
| 7 | | after the mcpp release |
1054+
| 5 | mcpplibs/mcpp-index#468 | merged as `d7872cc3`; the index artifact `d7872cc` is served by both hosts with the pointer's digest |
1055+
| 6 | mcpp-community/mcpp#698 | merged as `f61b4663`, whose tree equals the tested head `15317aab`; released as 2026.9.26.1 (§12.5) |
1056+
| 7 | mcpplibs/mcpp-index#469 | merged as `2af34182`: validate.yml, openkal-compat.yml and `latest_mcpp` name 2026.9.26.1, the openkal measurement uses runtime 0.15.2 and gains the two linux-musl rows, and the three `gnu11` comments are corrected; the full sweep is green on every platform (§12.5) |
10571057

10581058
**Where the implementation departs from §12.2, and why.**
10591059

@@ -1122,6 +1122,76 @@ CI run 1 of #698 (windows-latest, code page 1252; `mcpp.exe` self-hosted by the
11221122
OK: every row builds in every directory
11231123
```
11241124

1125+
### 12.5 Release and ecosystem readings (2026-09-26)
1126+
1127+
- **CI.** Run 3 of #698 (`15317aab`): 40 checks pass; the two that fail are the xcode-27 legs,
1128+
which fail the same way on `main` (#669: `ld64.lld` 22.1.8 rejects `arm64e.x1` in that image's
1129+
SDK stubs). The push run on `main` (`f61b4663`) reads the same: every workflow passes except
1130+
those two legs.
1131+
- **The Windows artefact.** `mcpp-2026.9.26.1-windows-x86_64.zip` carries `RT_MANIFEST` ID 1
1132+
with `activeCodePage` UTF-8 in `bin/mcpp.exe`, and the bundled `registry/bin/xlings.exe`
1133+
(2026.9.26.2) carries the same; read with `llvm-readobj --coff-resources` from the CI artefact.
1134+
- **Release.** Run 36184397880, every job successful (four platform builds, the sealed manifest,
1135+
`publish-ecosystem`). The Linux x86_64 archive was uploaded to GitCode from a CN host the
1136+
moment it appeared; the other three by `publish-ecosystem`. All four GitCode archives match the
1137+
GitHub sha256 sidecars, their sidecars answer 200, and the GitHub `xlings-res/mcpp` copies
1138+
answer 200. xim-pkgindex#877 (+22/-3) was merged after its six hashes were compared with the
1139+
sidecars; AUR, Homebrew and PyPI publishing succeeded on the merge commit.
1140+
- **Sandbox, the published artefacts only.** `xlings subos use v693 --sandbox`, CN mirror for
1141+
both xlings and mcpp (read back from `~/.mcpp/registry/.xlings.json`); mcpp and xlings installed
1142+
by `xlings install` from the published index and addressed by store path:
1143+
1144+
```
1145+
ok mcpp 2026.9.26.1; xlings 2026.9.26.2; xlings runs in a directory named in CJK
1146+
ok mirror = CN in /home/speak/.mcpp/registry/.xlings.json
1147+
ok #695: app at c99, cdep at gnu11, plain at c11; the program runs
1148+
ok #693: a project directory with no UTF-8 spelling is refused by name
1149+
ok #693: a file with no UTF-8 spelling is skipped and reported; the rest builds and runs
1150+
ok #696: the link carries the empty graph sysroot
1151+
ok #696: -lm answered by openkal-musl 0.19.2; the program prints 2
1152+
ok #696: an unanswered -lm fails and the note names openkal-musl 0.19.2
1153+
ok #694: Finished release [optimized]; the compile carries -O2, not -Og
1154+
summary: 12 ok, 0 failed, 0 skipped
1155+
```
1156+
1157+
- **The index, with the release.** #469's sweep builds every member with 2026.9.26.1 on macOS,
1158+
Linux (default and four llvm shards) and Windows, all green. The openkal measurement, now over
1159+
four targets, reads:
1160+
1161+
| target | runs | fails | the fails |
1162+
|---|---|---|---|
1163+
| `x86_64-linux-gnu` | 30 | 2 | curl (`__memcpy_chk`), cmp-module (asio); as published before |
1164+
| `x86_64-windows-musl` | 30 (+1 builds) | 1 | curl; as published before |
1165+
| `x86_64-linux-musl` (new) | 29 | 3 | curl (`__memset_chk`), cmp-module, mimalloc (`-latomic`) |
1166+
| `aarch64-linux-musl` (new) | 29 | 3 | curl, cmp-module, mimalloc (`-latomic`) |
1167+
1168+
No published label went lower. mimalloc's `-latomic` is the one cell #696 makes visible:
1169+
`-lpthread` and `-lrt` are answered by openkal-musl's archives, and `-latomic`, the compiler
1170+
runtime's library, is answered by nothing where the host's used to answer it silently. Its
1171+
owner is the graph's compiler runtime (mcpplibs/openkal-llvm-runtime#31), and the right answer
1172+
depends on whether the runtime's builtins carry the `__atomic_*` fallbacks, which is measured
1173+
there rather than assumed here.
1174+
1175+
### 12.6 Self-review, engine and ecosystem
1176+
1177+
- **Each criterion was run against the previous release.** e2e 776, 777 and 778 (leg B) fail on
1178+
2026.9.25.1 at the criterion they name, and pass on 2026.9.26.1; the sandbox script was run
1179+
against both releases (§12.5 and Appendix A.15).
1180+
- **Found by the review, fixed before release.** A C entry `main` bypassed the per-unit C
1181+
standard; the cache-key rule and the test that stated the old one; the exact runtime pin that
1182+
makes openkal-musl and openkal-llvm-runtime move as a pair; a documentation claim that macOS
1183+
file names need not be UTF-8; the `allow_host_libs` wording (it lifts the refusal).
1184+
- **Every consumer of a changed contract.** The C standard: the three index descriptors that
1185+
worked around the defect keep their `-D` spellings, which work under every engine the index
1186+
admits (#469). The graph link: every openkal e2e (285 to 294, 738, 778) passes on the new
1187+
engine, and the index measurement gains the two linux-musl rows. The xlings pin: every
1188+
workflow moves together (`check_version_pins.sh`), and the release bundles the new xlings.
1189+
- **Still open, each for a stated reason.** `-latomic` in the openkal graph
1190+
(openkal-llvm-runtime#31, above); W3b (cl.exe's `/std:` for a declared C standard)
1191+
waits for a CI row that builds the index with cl.exe; W2b for PE links through the MinGW
1192+
driver waits for the C4 inventory; W4e (wide APIs, independent of the OS version) is all or
1193+
nothing; the xcode-27 legs wait for an LLVM whose `ld64.lld` reads `arm64e.x1` (#669).
1194+
11251195
---
11261196

11271197
## Appendix A. Measurement record
@@ -1306,3 +1376,21 @@ READING R2.windres.beside: exit=0
13061376
READING R2.windres.rooted: exit=0
13071377
llvm-rc 20.1.7 (Linux): beside exit=0; rooted through /I exit=0; rooted without /I exit=1
13081378
```
1379+
1380+
**A.15 The sandbox script against the previous release** (`xlings subos use v693c --sandbox`,
1381+
mcpp 2026.9.25.1 installed from the index, same script as §12.5). Every criterion the release
1382+
changes fails, and the ones the previous engine already met pass:
1383+
1384+
```
1385+
ok mcpp 2026.9.25.1; xlings 2026.9.26.2; mirror = CN
1386+
FAILED #695 per-package C standard
1387+
FAILED #693 project directory (the build reaches the JSON writer)
1388+
FAILED #693 a file inside a project
1389+
FAILED #696 no graph sysroot on the link line
1390+
ok #696 -lm answered by openkal-musl 0.19.2 (its own -L precedes the host's)
1391+
FAILED #696 unanswered -lm: the build succeeds, from the host's libm
1392+
ok #694 Finished release [optimized]
1393+
FAILED #694 -Og in compile_commands.json, under that label
1394+
summary: 6 ok, 6 failed, 0 skipped
1395+
```
1396+

‎.agents/docs/README.md‎

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

3131
### design
3232

33-
- [Issues #693 to #696: triage against mcpp's contracts, and one repair plan](2026-09-25-issues-693-696-triage-and-repair-plan.md) — active
33+
- [Issues #693 to #696: triage against mcpp's contracts, and one repair plan](2026-09-25-issues-693-696-triage-and-repair-plan.md) — landed
3434
- [Workspace inheritance, flag scoping and the published form: a unified repair plan (#690)](2026-09-25-issue-690-workspace-build-inheritance-consistency.md) — landed
3535
- [MSVC toolset 的选择、#685、#687 与工具链管理规范:总体设计](2026-09-24-toolchain-selection-and-payload-trust-design.md) — active
3636
- [openkal 生态:能力的时刻模型,以及 C 环境方案空间的划分](2026-09-20-openkal-c-environment-ecosystem-design.md) — active
@@ -101,7 +101,7 @@ Records that declare one. Everything else is listed by date below.
101101

102102
### 2026-09
103103

104-
- [Issues #693 to #696: triage against mcpp's contracts, and one repair plan](2026-09-25-issues-693-696-triage-and-repair-plan.md) — active
104+
- [Issues #693 to #696: triage against mcpp's contracts, and one repair plan](2026-09-25-issues-693-696-triage-and-repair-plan.md) — landed
105105
- [Workspace inheritance, flag scoping and the published form: a unified repair plan (#690)](2026-09-25-issue-690-workspace-build-inheritance-consistency.md) — landed
106106
- [#690: self-review before release, engine and ecosystem](2026-09-25-issue-690-self-review.md) — landed
107107
- [#690: implementation plan](2026-09-25-issue-690-implementation-plan.md) — landed

0 commit comments

Comments
 (0)