Repository navigation
0.25.0: a second name for a file, the requests to end counted, one interface set stated three times - #64
Merged
Conversation
…ree statements of one interface set compared - openkal.fs: kal_fs_hard_link and KAL_FS_PROP_HARD_LINKS (clause 11 entry 59) - openkal.process: kal_process_stop_requested counts the requests and skips zero (entry 60) - conformance 0.9.0: observations for both; kal_interfaces() against the manifest's provides-interfaces (OPENKAL_CONFORMANCE_PROVIDES, named by tools/run-conformance.sh); the exported names against the manifest (tools/run-conformance.sh) - kit 0.3.0, examples: openkal 0.25.0
This was referenced Nov 9, 2026
…spelling (tools/gen-macros.sh)
…ps and reports the runs
- conformance/src/protocol.{cppm,cpp}: protocol version 1 at level 2, without a library;
an interface is a case of kind cts naming itself as its clause, an observation a
case within it (P3.4), a measurement of cost a metric; list mode, selection of an
interface or of an observation (which runs its interface), missing selections, the
marker; every case holds serial:openkal-conformance
- tools/run-conformance.sh: through the engine named in MTEST, one job, the store in
conformance/.mtest; unchanged without it
- CI: the pinned mtest (.github/actions/mtest), each conformance job's report in its
summary and its store as an artifact, one report over every implementation
(conformance-report)
2 tasks done
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_link(openkal.fs) gives an existing file a second name, in the shape ofkal_fs_rename(two directory bases). It is answered per volume byKAL_FS_PROP_HARD_LINKS(bit 16), following the precedent of the operations upon links (clause 11 entry 7). The name being given another is not resolved. Refusals:kal_err_not_found,kal_err_is_directory,kal_err_exists,kal_err_not_supported(two volumes, or a volume that does not claim the position). Clause 11 entry 59.kal_process_stop_requestedcounts the requests to end and skips zero when the count wraps; "zero until a request, non-zero afterwards, never cleared" still holds, so a 0.24 reader is unaffected. Clause 11 entry 60.kal_interfaces()is compared with the implementation manifest'sprovides-interfaces(named to the suite bytools/run-conformance.shasOPENKAL_CONFORMANCE_PROVIDES), and the exported names with the same list (by the script, which can read the program's symbols). A manifest that states no list is reported and not compared.The implementations follow this branch on their own
feat/0.25.0branches (openkal-linux 0.26.0, openkal-macos 0.23.0, openkal-windows 0.21.0), which this workflow's conformance job checks out.Test plan
tools/run-conformance.sh openkal-linux ../openkal-linux full,optional: 407 held, 0 did not hold, 5 not observed; the new observations hold; the exported names state the manifest's interfaces.The mtest migration, and why the suite does not link mtest's library
The suite runs beneath a C library and on a machine with none (openkal-opensbi), so it cannot take a C++ standard library or mcpplibs.os. It speaks the protocol itself (
conformance/src/protocol.cpp, level 2): an interface is a case of kindctsthat names itself as its clause, each observation a case within it, each measurement of cost a metric. The same reason applies to the implementations' own tests: mtest's library reaches mcpplibs.os, which depends on openkal and on the implementations, so a dev-dependency on it from an implementation would close a cycle through the package under test. Those test programs therefore stay level-0 programs, recorded per program in the mtest store bymcpp test, beside the suite's cases.