Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,14 @@ default per system: an implementation the graph already has is the one bound,
and a system a platform defines needs no patch of openkal-run. The platform
requires mcpp 2026.11.9.1, which reads `[defaults]`.

Platform 0.25.0 is the openkal 0.25 family: openkal 0.25.0 (a second name for a
file, `kal_fs_hard_link`; the requests to end counted), openkal-linux 0.26.0,
openkal-macos 0.23.0, openkal-windows 0.21.0, openkal-musl 0.29.0, which finds a
program by the search rules of the system `kal_env_system` names and implements
`link` over `kal_fs_hard_link`, openkal-llvm-runtime 0.20.0 above it, and
openkal-image 0.5.5, built against the same family. The platform requires mcpp
2026.11.9.1, as 0.24.5 does.

A project overrides any group under `[target.<selector>]`, for example
`[target.'cfg(platform = "openkal")'.layers] "c++-abi" = false`, and selects
another platform, or none, with `platform = "..."` or `--platform`.
Expand Down
50 changes: 27 additions & 23 deletions mcpp.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
[package]
namespace = "mcpplibs"
name = "openkal-platform"
version = "0.24.5"
version = "0.25.0"
description = "The platform of ok images (<arch>-openkal): their toolchain, C library and C++ run-time, tools, compile and link conventions, seal, runner and carrier, as one versioned statement mcpp reads."
license = "Apache-2.0"
authors = ["mcpplibs"]
repo = "https://github.com/mcpplibs/openkal-platform"
# 2026.11.9.1: openkal-run 0.5.4 states its openkal implementation as a
# 2026.11.9.1: openkal-run (from 0.5.4) states its openkal implementation as a
# capability with a default per system (`[defaults]`).
mcpp = ">=2026.11.9.1"

Expand All @@ -30,7 +30,7 @@ toolchain = "llvm@23.1.3"
runner = { cmd = ["okrun", "{}"], host = "same-arch", hosts = ["linux-x86_64", "linux-aarch64", "macos-aarch64", "windows-x86_64"] }
# `mcpp pack --mode self-contained`: a program of the packing machine that
# carries the image in a section and runs it through libokrun (M3).
carrier = { package = "openkal-run@0.5.4", section = ".oke", main = "carrier/main.cpp" }
carrier = { package = "openkal-run@0.5.5", section = ".oke", main = "carrier/main.cpp" }
# The `okb` package format (`mcpp pack --pkg-format okb`): the images of every
# architecture as one file okrun runs (openkal-image docs/okb.md).
plugin = "build.mcpp"
Expand All @@ -42,18 +42,18 @@ debuggee = ["okrun", "--debugger", "{}"]
# The C library and the C++ run-time inside an image. A package of the graph
# that provides a layer takes its place (`provides`), and `false` leaves it out.
[platform.layers]
compiler-runtime = "openkal-llvm-runtime@0.19.2"
"c++-abi" = "openkal-llvm-runtime@0.19.2"
c-abi = { name = "openkal-musl", version = "0.28.1", default-features = false, features = ["posix", "malloc-mimalloc"] }
compiler-runtime = "openkal-llvm-runtime@0.20.0"
"c++-abi" = "openkal-llvm-runtime@0.20.0"
c-abi = { name = "openkal-musl", version = "0.29.0", default-features = false, features = ["posix", "malloc-mimalloc"] }

# Built for the building machine: `okld` writes and checks the notes, `okrun`
# runs an image, `okprof` reads what a measured run recorded (0.23.0: the
# order of a start's first executions, which a producer lays its code out by
# and writes as the touch note).
[platform.tools]
okld = "openkal-tools@0.5.4"
okrun = "openkal-tools@0.5.4"
okprof = "openkal-tools@0.5.4"
okld = "openkal-tools@0.5.5"
okrun = "openkal-tools@0.5.5"
okprof = "openkal-tools@0.5.5"

# Every unit of an image (SPEC 12.2):
# -fPIC the image is ET_DYN and has no text relocation;
Expand Down Expand Up @@ -164,9 +164,9 @@ targets = ["x86_64-linux-gnu", "aarch64-linux-gnu", "x86_64-linux-musl", "aarc
toolchain = "llvm@23.1.3"

[platform.hosted.layers]
compiler-runtime = "openkal-llvm-runtime@0.19.2"
"c++-abi" = "openkal-llvm-runtime@0.19.2"
c-abi = { name = "openkal-musl", version = "0.28.1", default-features = false, features = ["posix", "malloc-mimalloc"] }
compiler-runtime = "openkal-llvm-runtime@0.20.0"
"c++-abi" = "openkal-llvm-runtime@0.20.0"
c-abi = { name = "openkal-musl", version = "0.29.0", default-features = false, features = ["posix", "malloc-mimalloc"] }

# The family released together for openkal 0.17 (the 0.17.2 round: okb, the
# runner's bundle and library interfaces, musl's renameat2; the 0.17.3 round:
Expand Down Expand Up @@ -202,27 +202,31 @@ c-abi = { name = "openkal-musl", version = "0.28.1", default-features
# thread's stack for an image's main thread on Windows; 0.24.4: openkal-image
# 0.5.3 enters an image in its convention's floating-point state; 0.24.5:
# openkal-image 0.5.4, whose runner's openkal implementation is a capability
# with a default per system, and which mcpp 2026.11.9.1 resolves):
# with a default per system, and which mcpp 2026.11.9.1 resolves; 0.25.0, openkal
# 0.25: a second name for a file and the requests to end counted, with
# openkal-linux 0.26.0, openkal-macos 0.23.0, openkal-windows 0.21.0,
# openkal-musl 0.29.0 (a program found by the system's own search rules, link
# over kal_fs_hard_link), openkal-llvm-runtime 0.20.0 and openkal-image 0.5.5):
# one version of each in a build. From 0.24.1 the members name one another by
# compatible ranges (`^0.28.0`) and this group chooses the versions: mcpp
# 2026.11.7.1 resolves within it, and a fix of one member is that member's
# release and a patch of this group, released together through one index change
# (tools/family_release.py, .github/workflows/family-release.yml).
[platform.versions]
openkal = "0.24.0"
openkal-linux = "0.25.0"
openkal-macos = "0.22.1"
openkal-windows = "0.20.0"
openkal-musl = "0.28.1"
openkal-llvm-runtime = "0.19.2"
openkal-ld = "0.5.4"
openkal-run = "0.5.4"
openkal-tools = "0.5.4"
openkal = "0.25.0"
openkal-linux = "0.26.0"
openkal-macos = "0.23.0"
openkal-windows = "0.21.0"
openkal-musl = "0.29.0"
openkal-llvm-runtime = "0.20.0"
openkal-ld = "0.5.5"
openkal-run = "0.5.5"
openkal-tools = "0.5.5"

# The plugin's tool, `okld bundle`, which writes the okb, and its library, the
# provider of a package format (mcpp.plugins.platform).
[build-dependencies]
openkal-tools = { version = "0.5.4", tools = ["okld"] }
openkal-tools = { version = "0.5.5", tools = ["okld"] }

[build-dependencies.mcpp]
plugins = { version = "0.20.0", features = ["plugins-platform"], host-module = true }
Loading