diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06656b5..c773571 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ on: env: XLINGS_VERSION: v2026.10.26.1 XLINGS_NON_INTERACTIVE: '1' - MCPP_VERSION: 2026.11.5.1 + MCPP_VERSION: 2026.11.9.1 LLVM: llvm@23.1.3 jobs: diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml index d693742..61cd462 100644 --- a/.github/workflows/release-binaries.yml +++ b/.github/workflows/release-binaries.yml @@ -33,9 +33,9 @@ env: RELEASE_TAG: ${{ github.event.inputs.tag }} ASSET_REVISION: ${{ github.event.inputs.asset_revision || '' }} MCPP_SOURCE_REF: ${{ github.event.inputs.mcpp_ref || vars.MCPP_SOURCE_REF || '' }} - # 2026.11.3.1 compiles the std module with the selected platform's flags. + # 2026.11.9.1: openkal-run states its implementation as a capability with defaults. # mcpp_ref supplies the candidate until this release is installable. - MCPP_VERSION: 2026.11.3.1 + MCPP_VERSION: 2026.11.9.1 # The platform whose hosted arrangement the programs are built over, named by # the dispatch beside the tag: a tag's tools pin exact implementations, and the # platform is the one whose version group holds them (0.1.4: 0.18.0; 0.1.5: diff --git a/README.md b/README.md index 3c3a127..04afc03 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,14 @@ image starts; a binding makes each call from a program of the system in it and restores the caller's after it (`okrun_call_enter`, `okrun_call_leave`). The `fpstate` example and the `bind` example check it on every system. +Version 0.5.4 states the implementation of openkal the runner binds as a +capability with a default per system rather than a dependency per system: +`requires = ["mcpp:kernel-abi=openkal"]` with `[defaults."mcpp:kernel-abi=openkal"]` +naming openkal-linux, openkal-macos and openkal-windows (mcpp 2026.11.9.1). An +implementation the graph already has --- the consumer's own, or the one its +platform adds, such as openkal-posix on another system --- is the one bound, +without a patch of this package. + ## An image ```sh diff --git a/bind/mcpp.toml b/bind/mcpp.toml index 58ebbc1..a848695 100644 --- a/bind/mcpp.toml +++ b/bind/mcpp.toml @@ -1,7 +1,7 @@ [package] namespace = "mcpplibs" name = "openkal-bind" -version = "0.5.3" +version = "0.5.4" # `mcpp::xpkg_request', `mcpp::decision' (protocol 15). mcpp = ">=2026.10.1.3" description = "A build plugin: a library published as an ok image (.okso) and a C header is called from a program of any system, through a binding generated from the header and libokrun." diff --git a/ld/mcpp.toml b/ld/mcpp.toml index 4e564ab..5d17c60 100644 --- a/ld/mcpp.toml +++ b/ld/mcpp.toml @@ -1,7 +1,7 @@ [package] namespace = "mcpplibs" name = "openkal-ld" -version = "0.5.3" +version = "0.5.4" description = "libokld: the ok format (openkal image format) --- its definition, a reader of bytes, a checker, a signer, and a loader. Freestanding: no C library, no exceptions." license = "Apache-2.0" authors = ["mcpplibs"] diff --git a/run/mcpp.toml b/run/mcpp.toml index 6ffe153..64c604e 100644 --- a/run/mcpp.toml +++ b/run/mcpp.toml @@ -1,11 +1,17 @@ [package] namespace = "mcpplibs" name = "openkal-run" -version = "0.5.3" +version = "0.5.4" description = "libokrun: the runner's core --- an ok image's names bound to this process's one openkal implementation, in the image's calling convention, and its entry entered." license = "Apache-2.0" authors = ["mcpplibs"] repo = "https://github.com/mcpplibs/openkal-image" +# `[defaults]' (mcpp 2026.11.9.1, SPEC-002 ยง3.7). +mcpp = ">=2026.11.9.1" +# The runner binds an image's names to this process's one implementation of +# openkal: whichever the graph has --- the consumer's, or the one its +# platform adds --- else the default of the system below. +requires = ["mcpp:kernel-abi=openkal"] [targets.okrun] kind = "lib" @@ -14,14 +20,10 @@ kind = "lib" openkal = "^0.24.0" openkal-ld = { path = "../ld" } -[target.linux.dependencies] -openkal-linux = "^0.25.0" - -[target.macos.dependencies] -openkal-macos = "^0.22.1" - -[target.windows.dependencies] -openkal-windows = "^0.20.0" +[defaults."mcpp:kernel-abi=openkal"] +linux = "openkal-linux@^0.25.0" +macos = "openkal-macos@^0.22.1" +windows = "openkal-windows@^0.20.0" # The interfaces each system's implementation provides decide one unit: where # openkal.space is provided its names are bound, and elsewhere an image that diff --git a/tools/mcpp.toml b/tools/mcpp.toml index 63399e3..71b2689 100644 --- a/tools/mcpp.toml +++ b/tools/mcpp.toml @@ -1,7 +1,7 @@ [package] namespace = "mcpplibs" name = "openkal-tools" -version = "0.5.3" +version = "0.5.4" description = "okrun, which runs an ok image on this system, and okld, the format's tool on a build machine (check, note, sign, inspect)." license = "Apache-2.0" authors = ["mcpplibs"]