Skip to content

0.6.0: openkal-run binds the interfaces its implementation provides - #36

Merged
Sunrisepeak merged 2 commits into
mainfrom
feat/k1-interfaces
Nov 10, 2026
Merged

Sunrisepeak merged 2 commits into
mainfrom
feat/k1-interfaces

Conversation

@Sunrisepeak

@Sunrisepeak Sunrisepeak commented Nov 10, 2026 •

Copy link
Copy Markdown
Member

openkal-run 0.6.0 binds the interfaces its implementation provides (design K1, over mcpp 2026.11.10.1's E13).

  • run/build.mcpp reads the resolved implementation's provides-interfaces (MCPP_KERNEL_ABI_INTERFACES). A name of an interface the implementation does not provide is listed without an address, and nothing of that interface is referred to. An image that requires such an interface is refused at load.
  • An image is told kal_interfaces() intersected with the interfaces bound, plus the loader's own.
  • The interfaces the runner itself calls are stated as [kernel-abi] requires-interfaces.
  • no_space.cpp, bindings_space.cpp and the per-system source tables are removed: one binding table serves every implementation, openkal-posix included.
  • openkal ^0.25.0; the defaults stay openkal-linux ^0.26.0, openkal-macos ^0.23.0 and openkal-windows ^0.21.0. The mcpp floor is 2026.11.10.1.

The functional commit is verified on the existing suite first. The migration of libokld's vectors to the mtest library follows as its own commit.

Verification

  • CI on the existing suite with the functional commit: run 42814533537@5765557.
  • CI with the migration of the tests to the mtest library: run 42816109484@acb8d63.

build.mcpp reads the resolved implementation's provides-interfaces
(MCPP_KERNEL_ABI_INTERFACES, mcpp 2026.11.10.1): a name of an interface it
does not provide is listed without an address and nothing of that interface is
referred to; an image that requires it is refused at load. The word an image is
told is kal_interfaces() intersected with the interfaces bound, with the
loader's own. The interfaces the runner calls are stated as [kernel-abi]
requires-interfaces. no_space.cpp, bindings_space.cpp and the per-system
source tables are removed. openkal ^0.25.0; defaults openkal-linux ^0.26.0,
openkal-macos ^0.23.0, openkal-windows ^0.21.0.
ld/tests are UTest cases (each check an expectation); .github/versions.env pins
mtest; the composite actions mtest and test-report take each job's store into
its summary and an artifact; the report job renders one report over the
workflow run's group.
@Sunrisepeak
Sunrisepeak merged commit c248ba1 into main Nov 10, 2026
6 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.

1 participant