Skip to content

0.25.1: a started program that runs to its end first; thirty-two bit targets - #66

Merged
Sunrisepeak merged 3 commits into
mainfrom
feat/spec-0.26-monotask-32bit
Nov 13, 2026
Merged

Sunrisepeak merged 3 commits into
mainfrom
feat/spec-0.26-monotask-32bit

Conversation

@Sunrisepeak

@Sunrisepeak Sunrisepeak commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

openkal 0.25.1, the first patch release under a rule this PR states in clause 8: a patch release adds only what an implementation may decline (an optional property, text that states what was already required), so an implementation written against 0.25.0 conforms to 0.25.1 and the hosted family stays on 0.25.0; the conformance job's version check compares the minor version accordingly. (An implementation's openkal = "0.25.0" is an exact statement in mcpp; my first description here called it a caret range, which was wrong, and the first CI run failed on that check.)

Clause Addition
7.19, entry 61 KAL_PROCESS_PROP_RUNS_TO_END (bit 16 of the openkal.process property word): the environment has one task, kal_process_spawn returns after the started program ended, and kal_process_wait answers its status at once. Claimed without TERMINATE and CHANNEL. Firmware boot services, a disk operating system and a boot chain are the environments; the property is the inverse of every existing implementation's behaviour, so none changes.
5.5, 12.2, entry 62 Thirty-two bit targets: counts in a word (a longer transfer is partial), layouts the target's C ABI (on i386 a kal_u64 field is 4-aligned), handles that fit the word, time through the environment's 64-bit forms (2038). Images: the i386 System V convention, its floating-point state, and "an image runs on a loader of its architecture". No declaration changes.

Conformance: sections/exec.cpp carries i386's instructions (mov $42, %eax; ret, the same bytes as x86_64's); sections/process.cpp checks, where the property is claimed, that TERMINATE and CHANNEL are not, and that a started copy's status (33) is answered at once (under 100 ms where openkal.time exists).

Also: README and the portable example name the current releases of the family (tools/check-readme-versions.sh; kit's own manifest is left to its release).

Local: tools/run-conformance.sh openkal-linux ../openkal-linux full,optional against these declarations: x86_64 407 held, 0 did not hold, 5 not observed; the same suite built for i686-linux-musl through the family's i386 branches (openkal-linux#55, openkal-musl, openkal-llvm-runtime): 407 held, 0 did not hold, the same 5 not observed. check-version.sh, check-declarations.sh hold.

…P_RUNS_TO_END, clause 7.19); thirty-two bit targets (clause 5.5, 12.2)
…e; the conformance job's version check compares the minor version
@Sunrisepeak
Sunrisepeak merged commit e5a4888 into main Nov 13, 2026
16 checks passed
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