0.15.0 --- the interfaces this implementation provides are stated, and the statement is the artefact's own answer - #29
Merged
Conversation
…d the statement is the artefact's own answer 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 --- the first of the three times clause 6.2 tabulates, and the earliest at which "may this program be built against this implementation" can be answered. `[kernel-abi] provides-interfaces` lists the fifteen this implementation provides. It is GENERATED, by `check-surface.sh --toml`, and CI regenerates and diffs it against the objects. That is not a second derivation of the same fact: it is clause 9's surface comparison stopped one step earlier, so the list and the check can never answer differently. A declaration derived from the thing it describes cannot disagree with it, and an implementation that gains an interface cannot forget to say so. Backward compatible: an engine that predates the key reads `[kernel-abi]` as an unknown top-level table and ignores it, so this manifest loads unchanged everywhere it loaded before, and the absence of the resolution-time check is the behaviour that release already had. Co-authored-by: Claude Code <noreply@anthropic.com>
openkal-linux'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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
openkal 的规范不命名接口集合:clause 3.3 撤回了它命名过的唯一一个(
hosted),理由是"一个描述环境类别的名字会被没有人想到过的那个环境证伪",而它在自己的生态里一个发布周期内就被证伪了。替代做法是由包逐条列举;构建工具在依赖解析时把这份列举与消费方自己清单里的requires-interfaces比对——那是 clause 6.2 列出的三个时刻里的第一个,也是"这个程序可不可以在这个实现上构建"最早能被回答的时刻。改动
[kernel-abi] provides-interfaces列出本实现提供的十五个接口。它是生成的,由
check-surface.sh --toml产出,CI 重新生成并与产物 diff。这不是同一个事实的第二份推导——它就是 clause 9 的 surface 比对早一步停下,所以这份列表和那个检查不可能给出不同的答案。向后兼容
早于这个键的引擎把
[kernel-abi]读成未知顶层表并忽略它(本机实测 mcpp 2026.9.17.1 静默接受),所以这份清单在它此前能加载的每个地方照常加载;解析期检查的缺席,正是那个版本本来就有的行为。判据
CI 新增一步:重新生成并 diff。本机实测 diff 为空。