Repository navigation
0.26.0: a second name for a file, and the requests to end counted (openkal 0.25) - #52
Merged
Merged
Conversation
…enkal 0.25) - kal_fs_hard_link: linkat with no flags; KAL_FS_PROP_HARD_LINKS on the formats that store several names for one node; a directory is kal_err_is_directory and two volumes kal_err_not_supported, answered before the kernel is asked - the stop word counts each request and skips zero on wrap - openkal follows the specification's branch feat/0.25.0 until 0.25.0 is released
- the conformance suite runs through the pinned mtest engine (MTEST, set by .github/actions/mtest): one case per interface, its observations within it - mcpp 2026.11.9.1: `mcpp test` keeps this package's runs in the mtest store (target/mtest), one case per test program - each job's runs in its summary and as an artifact; one report over every job The test programs stay programs of their own (protocol level 0): the mtest library reaches mcpplibs.os, which depends on openkal and on this implementation, so a dev-dependency on it would close a cycle through the package under test.
Every test under tests/ declares its cases as mtest UTest objects, with the same assertions as before. A test that starts a copy of itself declares what the copy does as a child and starts it with child_command. The generated declarations test is a UTest too. mcpplibs.mtest 0.5.2 is a dev-dependency.
The copy begins in mtest's entry, which takes a seed from std::random_device before the copy's errand runs; libc++ reads it from /dev/urandom, and under Landlock with no grant for /dev the copy ended before its errand (llvm job). The assertions are unchanged: /tmp stays read-only and /etc ungranted.
…hange The README and the comment said two volumes were answered before the call; the kernel answers them with EXDEV, which is reported as kal_err_not_supported, and only a directory is refused before the call. The stop handler counts and skips zero in one compare-and-exchange. An add followed by a fix-up at the wrap could lose a count when a second handler ran between the two.
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.
Summary
kal_fs_hard_linkandKAL_FS_PROP_HARD_LINKS(openkal 0.25, clause 11 entry 59): see README, "What 0.26.0 adds".kal_process_stop_requestedcounts each request and skips zero on wrap (entry 60).openkal = "0.25.0", as released (0.25.0: a second name for a file, the requests to end counted, one interface set stated three times openkal#64, tag 0.25.0).Test plan
Old suite: CI run 42675266835 green at a5a9a86 (this package's tests and the specification branch's conformance suite, as they were).
New suite: CI run 42679067452 green at 4f3ae2e — the conformance suite through the pinned mtest engine (one case per interface, its observations within it),
mcpp test2026.11.9.1 keeping this package's runs in the mtest store, each job's report in its summary, one report over every job.Tests ported to the mtest library: CI run 42690329548 green at 3333b8f. Every file under
tests/declares its cases asUTestobjects with the assertions it had; a test that starts a copy of itself declares the copy as achildand starts it withchild_command(openkal_0_22,openkal_0_23,conformance_spawn,sigpipe_not_passed_on,stop_word_take_over); the generatedconformance_declarationstest is aUTest.mcpplibs.mtest0.5.2 is a dev-dependency; it reaches mcpplibs.os 0.4.3, whose ranges admit this package (0.26.0, standing for itself) and openkal 0.25.After the switch to
openkal = "0.25.0": CI run 42693750294 green at 586799e (each job substitutes the.speccheckout of the released specification foropenkal). Also in this run: R1 wording (a directory refused before the call; two volumes from the kernel's EXDEV) and the stop handler's compare-and-exchange.One grant added:
openkal_0_23grants/devread-only to its confined copy, because mtest's entry runs in the copy before its errand and libc++'sstd::random_devicereads/dev/urandom(llvm job)./tmpstays read-only and/etcungranted, so the assertions are unchanged.