Skip to content

Examine the optional interfaces, which nothing did - #16

Merged
Sunrisepeak merged 2 commits into
mainfrom
feat/capability-completeness
Aug 27, 2026
Merged

Examine the optional interfaces, which nothing did#16
Sunrisepeak merged 2 commits into
mainfrom
feat/capability-completeness

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

⚠️⚠️ 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.

This implementation is the one that may name optional entire: it is the only
one 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 a
standard stream that is interactive and has none in a pipeline.

And a comment, with no code change

kal_exec_publish here does not invalidate the instruction cache, while
openkal-macos and openkal-windows do. The specification places that
maintenance upon the program — the conformance suite performs it itself and
says why — so an implementation that performs it is being helpful rather than
conforming.

⚠️ Here it would cost something the other two do not pay.
__builtin___clear_cache expands to nothing on x86_64 and to a maintenance
sequence on aarch64, and on riscv64 it becomes a call to
__riscv_flush_icache
, which lives in the compiler's support library. An
implementation 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.

repository what it carries
openkal-musl the socket, datagram, readiness and image-copying routes, and four probes
openkal-macos the five interfaces 0.8 added
openkal-windows four of the five; openkal.space declined in terms
openkal-linux the conformance run selects the optional interfaces, which nothing did
openkal-llvm-runtime __config_site's claims asserted by a program, and the C library repinned
openkal the portable example's pins, and §9 of the plan
sbase ninety-seven utilities above the new C library

The specification does not change. No interface was added, none was altered,
and SURFACE.txt is untouched — every capability below is composed from atoms
openkal 0.8 already had.

⚠️⚠️ 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
Sunrisepeak force-pushed the feat/capability-completeness branch from f222123 to 1b00446 Compare August 27, 2026 13:46
@Sunrisepeak
Sunrisepeak merged commit baa5d93 into main Aug 27, 2026
2 checks passed
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.

2 participants