Skip to content

0.10.0 --- the interfaces this implementation provides are stated, and there are fourteen - #26

Merged
Sunrisepeak merged 2 commits into
mainfrom
the-interfaces-this-implementation-provides
Sep 20, 2026
Merged

Sunrisepeak merged 2 commits into
mainfrom
the-interfaces-this-implementation-provides

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

mcpplibs/openkal-linux#29 同形,但这里的清单不是满的

十四个,不是十五个

openkal.space 缺席:这个环境没有可供给的地址空间操作,而 clause 3 规定一个接口整个提供或完全不提供。

需要它的消费者现在在这里被拒绝——在编译任何东西之前——并在 openkal-linux 上构建。这正是"陈述集合"而不是"给环境类别起个名字"的意义:一个名字会让这个实现和那个实现看起来一样。

生成,不是手写

数组由 check-surface.sh --toml 产出;CI 在已经在跑 surface 比对的同一步里重新生成并 diff——判断每个组是否整组导出的那次行走,就是回答"提供了哪些接口"的那次行走,两者不可能给出不同答案。

向后兼容

早于这个键的引擎把 [kernel-abi] 读成未知顶层表并忽略它。

判据

本机实测(Linux 宿主交叉构建 x86_64-windows-gnu):声明与产物 diff 为空。

Sunrisepeak and others added 2 commits September 20, 2026 19:06
…d there are fourteen

openkal's specification names no set of interfaces: clause 3.3 withdrew the
one it had named (`hosted`) because a name describing a class of environment
is falsified by an environment nobody had in mind, and that one was falsified
inside its own ecosystem within a release. Enumeration by the package replaced
it, and a build tool reads the array at dependency resolution against the
`requires-interfaces` a consumer states.

FOURTEEN AND NOT FIFTEEN. `openkal.space` is absent: this environment has no
operation upon an address space it can supply, and clause 3 says an
implementation provides an interface in whole or not at all. A consumer that
needs it is now refused here, before anything is compiled, and builds on
openkal-linux --- which is the whole point of stating the set rather than a
name for a class of environment. A name would have made this implementation
and that one look alike.

The array is GENERATED by `check-surface.sh --toml` and CI regenerates and
diffs it against the objects, in the same step that already runs the surface
comparison: the walk that decides whether each group is exported whole is the
same walk that answers which interfaces are provided, so the two can never
disagree.

Backward compatible: an engine that predates the key reads `[kernel-abi]` as
an unknown top-level table and ignores it.

Co-authored-by: Claude Code <noreply@anthropic.com>
openkal-windows's CI checks the specification out at a branch matching this
one where it exists, which is how a cross-repository change is measured before
either half merges. The specification's --toml mode lives on that branch.
@Sunrisepeak
Sunrisepeak merged commit 6372a39 into main Sep 20, 2026
4 checks passed
@Sunrisepeak
Sunrisepeak deleted the the-interfaces-this-implementation-provides branch September 20, 2026 11:27
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