Skip to content

the measured graph moves onto the wave - #450

Merged
Sunrisepeak merged 1 commit into
mainfrom
the-measured-graph-moves-onto-the-wave
Sep 20, 2026
Merged

Sunrisepeak merged 1 commit into
mainfrom
the-measured-graph-moves-onto-the-wave

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

What moves

tests/openkal/pins.toml → openkal-llvm-runtime 0.13.0, registered and published in the preceding PR (#449). It pins openkal-musl 0.18.0 → openkal-linux 0.15.0, openkal-windows 0.10.0, openkal-macos 0.12.0 — the first graph in which all three implementations declare which interfaces of the layer they provide.

Also: mcpp → 2026.9.20.1 in pins.toml and in openkal-compat.yml (that workflow fails the run when the two disagree), MCPP_VERSION → 2026.9.20.1 in validate.yml, and latest_mcpp → 2026.9.20.1.

Why the graph pin matters to a measurement

Below it, a members requires-interfaceswas answered on two implementations and **silently unanswered on the third** — openkal-macos carried no array, and mcpp treats a provider that states nothing as stating nothing, not as providing nothing. A measurement taken there recordsbuilds` for a member whose requirement nothing checked.

min_mcpp does not move

Both new manifest keys are top-level tables, which an older engine ignores (it refuses an unknown member of a table it knows — that asymmetry is why both are shaped this way). Measured against the published 2026.9.18.3 archive: the absence table was first written as [c-abi].absent and that binary refused openkal-musl`s whole manifest on every target; top-level, the same binary builds it. All 231 descriptors parse under 2026.9.18.3, so the descriptor grammar this floor governs is unchanged.

The baseline this run will be compared against

From the preceding run on the old graph — 60 member×target results: 50 pass (47 of them runs (posix)), 10 fail:

count cause members
4 windows.h, reached through the borrowed __CYGWIN__ archive, sqlite3, mimalloc, c-ares
2 __cxa_thread_atexit spdlog, doctest
2 linux/ uapi header curl, cmp-module
1 arc4random_buf expat
1 curl_off_t curl

The first two groups are known and recorded (design §5.3 and 2026-09-20-cxa-thread-atexit-finding.md). This move is what makes the next run comparable against them.

Verification

231 descriptors, 2026.9.18.3 parse
231 descriptors, 2026.9.20.1 parse
compat.py selftest 5 passed, 0 failed
pins.toml mcpp vs openkal-compat.yml agree
0.13.0 resolvable at the consumer mcpp search on the published index lists it

…shed

`tests/openkal/pins.toml` moves to openkal-llvm-runtime 0.13.0, which was
registered and published in the preceding change. That version pins
openkal-musl 0.18.0, which pins openkal-linux 0.15.0, openkal-windows 0.10.0
and openkal-macos 0.12.0 --- the first graph in which ALL THREE
implementations declare which interfaces of the layer they provide.

WHY THAT MATTERS TO A MEASUREMENT AND NOT ONLY TO A BUILD. Below this pin a
member's `[kernel-abi] requires-interfaces` was answered on two of the three
implementations and silently unanswered on the third: openkal-macos carried no
array, and mcpp treats a provider that states nothing as stating nothing
rather than as providing nothing. A measurement taken there records "builds"
for a member whose requirement nothing checked.

`mcpp` moves to 2026.9.20.1 because the set difference being measured is what
that release added, and openkal-compat.yml's pin moves with it --- that
workflow fails the run when the two disagree. validate.yml moves too: an index
that lints itself with an engine ten releases behind validates against
something no user runs.

`latest_mcpp` moves. `min_mcpp` DOES NOT, and the reason is recorded beside
it: both new manifest keys are top-level tables an older engine ignores, and
all 231 descriptors parse with 2026.9.18.3, so the descriptor grammar this
floor governs did not change. Raising it would take the whole index from every
client below it for a diagnostic note they merely would not receive.

THE BASELINE THIS REPLACES, from the preceding run on the old graph: 60
member-target results, 50 pass (47 of them `runs (posix)`), 10 fail --- four
on `windows.h` reached through the borrowed `__CYGWIN__`, two on
`__cxa_thread_atexit`, two on `linux/` uapi headers, one `arc4random_buf`, one
`curl_off_t`. The first two groups are known and recorded; this move is what
lets the next run be compared against them.
@Sunrisepeak
Sunrisepeak merged commit 3c62571 into main Sep 20, 2026
9 checks passed
@Sunrisepeak
Sunrisepeak deleted the the-measured-graph-moves-onto-the-wave branch September 20, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant