Examine the optional interfaces, which nothing did - #16
Merged
Conversation
⚠️ ⚠️ THE STEP WAS NAMED "Every interface, every kind of examination" AND SELECTED THE HOSTED SET. `full' expands to `standard,abi,stability,cost' and `standard' is `core,env,time,fs,process,task'. The five interfaces openkal 0.8 added --- net, datagram, timeout, exec, space --- are in `optional', and this implementation provides all of them; without naming that set the suite compiled each of their sections with the body removed and reported them as not examined. Nothing failed. Nothing was checked either, and the sections had been written, merged and released in that state. Measured after the change, on this machine: 143 observations held, 0 did not hold, 1 not observed --- the one being openkal.terminal, which needs a standard stream that is interactive and has none in a pipeline. Also records why `kal_exec_publish' does NOT invalidate the instruction cache here while openkal-macos and openkal-windows do. The specification places that maintenance upon the program and the conformance suite performs it itself; on this implementation's three architectures `__builtin___clear_cache' becomes a CALL to `__riscv_flush_icache' on one of them, and acquiring a link-time dependency upon the compiler's support library --- in an implementation that sits beneath a C library, for an operation the specification does not require of it --- is a worse trade than the asymmetry. The comment is the change; the code is unaltered, so no version moves.
Sunrisepeak
force-pushed
the
feat/capability-completeness
branch
from
August 27, 2026 13:46
f222123 to
1b00446
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fullexpands tostandard,abi,stability,cost, andstandardiscore,env,time,fs,process,task. The five interfaces openkal 0.8 added —net,datagram,timeout,exec,space— are inoptional, and thisimplementation provides all of them. Without naming that set the suite
compiled each of their sections with the body removed and reported them as not
examined.
Nothing failed. Nothing was checked either, and the sections had been written,
merged and released in that state.
This implementation is the one that may name
optionalentire: it is the onlyone providing every interface, which is why it is the reference. A backend that
declines one names the others by hand.
Measured after the change, on a development machine: 143 observations held,
0 did not hold, 1 not observed — the one being
openkal.terminal, which needs astandard stream that is interactive and has none in a pipeline.
And a comment, with no code change
kal_exec_publishhere does not invalidate the instruction cache, whileopenkal-macosandopenkal-windowsdo. The specification places thatmaintenance upon the program — the conformance suite performs it itself and
says why — so an implementation that performs it is being helpful rather than
conforming.
__builtin___clear_cacheexpands to nothing on x86_64 and to a maintenancesequence on aarch64, and on riscv64 it becomes a call to
__riscv_flush_icache, which lives in the compiler's support library. Animplementation that sits beneath a C library, acquiring a link-time dependency
upon that library on one architecture, for an operation the specification does
not require of it, is a worse trade than the asymmetry.
The asymmetry is now stated in the source rather than being accidental. No
version moves.
This is one change across seven repositories, and every branch carries the
same name. Each repository's continuous integration substitutes its siblings'
working trees taken from the branch of the name under test, so the graph only
holds together when they agree.
openkal-muslopenkal-macosopenkal-windowsopenkal.spacedeclined in termsopenkal-linuxopenkal-llvm-runtime__config_site's claims asserted by a program, and the C library repinnedopenkalsbaseThe specification does not change. No interface was added, none was altered,
and
SURFACE.txtis untouched — every capability below is composed from atomsopenkal 0.8 already had.