Skip to content

0.14.1 --- what a started program receives is stated, and the grant is observed - #43

Merged
Sunrisepeak merged 1 commit into
mainfrom
openkal-0.14.1
Oct 1, 2026
Merged

Sunrisepeak merged 1 commit into
mainfrom
openkal-0.14.1

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Clause 7.13 states as a requirement what clause 11, entry 18 recorded as a fact: a program started by kal_process_spawn receives the three streams and the directories its caller granted, and no other handle, including one the caller itself inherited. A program that needs an interpreter may keep one handle, naming itself.

A granted directory is received as a preopen, in order and under its name, and the first grant is the directory the started program regards as the one it was started in (kal::fs::working, and what openkal-musl treats as the current directory). process.h and fs.cppm say so.

The conformance suite observes the grant by its effect: it starts a copy of itself with two granted directories and has the copy report what kal_fs_preopen enumerates, and with a count of zero. An implementation that does not claim KAL_PROCESS_PROP_GRANT_DIR is observed to refuse a grant. Against openkal-linux 0.15.0 both observations fail; against the implementation in mcpplibs/openkal-linux#31 they hold (193 held, 0 did not hold, 3 not observed).

No declaration changes; the version is 0.14.1.

Arose from mcpplibs/openkal-linux#30. Design and self-review: .agents/docs/2026-10-01-what-a-started-program-receives-design.md.

Paired branches (openkal-0.14.1): mcpplibs/openkal-linux (mirror of #31), mcpplibs/openkal-macos, mcpplibs/openkal-windows.

…s observed

Clause 7.13 states as a requirement what clause 11, entry 18 recorded as a
fact: a started program receives the three streams and the directories its
caller granted, and no other handle, including one the caller itself inherited.
A program that needs an interpreter may keep one handle, naming itself.

A granted directory is received as a preopen, in order and under its name, and
the first grant is the directory the started program regards as the one it was
started in. The conformance suite observes both by starting a copy of itself
with grants; an implementation that does not claim the position is observed to
refuse a grant. Two implementations claimed it for three releases while the
program they started enumerated the directories it would have had anyway.

No declaration changes, so the version is a patch: 0.14.1.

The design and its self-review are in
.agents/docs/2026-10-01-what-a-started-program-receives-design.md.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
@Sunrisepeak
Sunrisepeak merged commit c478374 into main Oct 1, 2026
32 of 36 checks passed
Sunrisepeak added a commit to mcpplibs/openkal-windows that referenced this pull request Oct 1, 2026
* 0.10.2 --- written against openkal 0.14.1

The specification is openkal 0.14.1 (mcpplibs/openkal#43). The implementation's behaviour is unchanged: a started program already received only the three streams it was given, which clause 7.13 now requires; #28 added the test that observes it. Released so that a graph naming openkal 0.14.1 can contain this implementation, since every pin in the ecosystem is exact.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>

* README names the versions of this release

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>

---------

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Sunrisepeak added a commit to mcpplibs/openkal-opensbi that referenced this pull request Oct 1, 2026
* 0.8.1 --- written against openkal 0.14.1

The specification is openkal 0.14.1 (mcpplibs/openkal#43), which states what a started program receives (clause 7.13) and changes no declaration. This implementation provides no process start, so nothing in it changes; it is released so that a graph naming openkal 0.14.1 can contain it, since every pin in the ecosystem is exact.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>

* README names the versions of this release

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>

---------

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Sunrisepeak added a commit to mcpplibs/openkal-uefi that referenced this pull request Oct 1, 2026
* 0.8.1 --- written against openkal 0.14.1

The specification is openkal 0.14.1 (mcpplibs/openkal#43), which states what a started program receives (clause 7.13) and changes no declaration. This implementation provides no process start, so nothing in it changes; it is released so that a graph naming openkal 0.14.1 can contain it, since every pin in the ecosystem is exact.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>

* README names the versions of this release

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>

---------

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Sunrisepeak added a commit to mcpplibs/openkal-emscripten that referenced this pull request Oct 1, 2026
The specification is openkal 0.14.1 (mcpplibs/openkal#43), which states what a started program receives (clause 7.13) and changes no declaration. This implementation provides no process start, so nothing in it changes; it is released so that a graph naming openkal 0.14.1 can contain it, since every pin in the ecosystem is exact.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
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