Repository navigation
Releases: mcpplibs/openkal-image
Release list
0.4.5
Source packages openkal-ld, openkal-run, openkal-tools and openkal-bind 0.4.5. The native Linux runner adopts openkal-linux 0.24.2 to avoid unrelated process RSS reads while preserving complete unit-memory supervision. okprof record now forwards environment values and empty values, replaces OKRUN_PROF by name and preserves child exit status. The Windows mapped-tail correction from 0.4.4 remains.
All five exact-head CI jobs pass: both architecture images and the same images on Linux x86_64/AArch64, macOS ARM64 and Windows x86_64, including native profiling environment controls. Ordinary public-index Linux 0.24.2 source consumption and the new runner execute successfully with released mcpp 2026.11.3.1.
This publishes the source family. Prebuilt hosted tools require their matching exact platform group and are delivered separately; the final clangd producer and server joint UX remain unqualified.
PR: #25
Tracks mcpp-community/mcpp#885.
openkal-image 0.4.4
A touched image segment may require several file-mapping requests. If an early request succeeds and a later request is refused, the loader now copies only the refused run. It preserves earlier read-only mappings and separately publishes copied executable runs. A publication failure rejects the load and releases the region.
This corrects a native Windows startup access violation in profiled images with a short final mapping run. A geometry-checked regression image and its universal bundle run on all four supported hosts. Independent native Windows diagnostics also verify that the original clangd raw image and bundle report 23.1.0-mcppls.9 and complete initialization, a document-symbol assertion and clean shutdown with the candidate correction.
openkal-ld, openkal-run, openkal-tools and openkal-bind share version 0.4.4. Native standalone binaries use the unchanged hosted arrangement of openkal-platform 0.23.3; source dependencies for a new image platform group are released separately. Existing release archives and tags are unchanged.
0.4.3: use the corrected Linux confinement backend
The native Linux runner is built over openkal-linux 0.24.1. It advertises confinement only with Landlock ABI 3 or later, whose policy can prevent raw file truncation in a read-only grant. Earlier ABIs refuse the confinement request before starting a program. The backend's ABI probe cache uses atomic accesses during concurrent first queries.
All four image packages share version 0.4.3. The loader, binding, format and runner implementation sources are unchanged. Full CI 41618178520 passes image production for both architectures and execution on Linux x86_64, Linux aarch64, Windows x86_64 and macOS arm64.
This source release is the prerequisite for the corrected platform group. Standalone binary archives are built separately against platform 0.23.3 after that group is available.
PR: #24
openkal-image 0.4.2
openkal-ld, openkal-run, openkal-tools and openkal-bind 0.4.2: the runner on macOS over openkal-macos 0.21.3, which answers an initialiser that runs before its own from the loader's record. No change of its own.
openkal-image 0.4.1
openkal-ld, openkal-run, openkal-tools and openkal-bind 0.4.1, for openkal 0.23.
The runner on macOS is built over openkal-macos 0.21.2: a sleep suspends the context (it was a spin of the processor for its whole length), and the monotonic granularity is the same at every start, so a snapshot of the initialisers is not declined for a measured difference. No change of its own otherwise.
openkal-image 0.4.0
openkal-ld, openkal-run, openkal-tools and openkal-bind 0.4.0, for openkal 0.23.
- An image at its base:
okld placeand the placement note; a loader that applies only the relocations naming a symbol and seals what is read-only after relocation. - A base for each boot: the slide chosen once a boot, the data for that base kept as a prepared copy in the user's cache;
OKRUN_PLACE=sealed|0. - The touch note:
okprof record --what touch,okld touch, the noted runs read in by the program's resource preference,okprof report --order. - A snapshot of an image's initialisers (docs/snapshot.md): made once a boot, mapped by every later start;
OKRUN_SNAPSHOT=0declines it. - What a start spends by its resource preference (performance, balanced, economy);
OKRUN_PREFETCH;okrun cache [list|gc [--all]]. - A compressed okb (okb 2):
okld bundle --compress, expanded once into the runner's cache. - Measurement and debugging: phases, samples, touches and the runner's choices in the report;
okprof report --flame / --format=trace / --order / --names;okgdb.py,oklldb.py,okld debug-split.
openkal-image 0.3.2
openkal-image 0.3.2 (openkal-ld, openkal-run, openkal-tools, openkal-bind): built over openkal 0.22.0 and its implementations (openkal-linux 0.23.0, openkal-macos 0.20.0, openkal-windows 0.18.0), so an image starts a program with the system's null device at a position (KAL_SPAWN_NULL_*). No change of its own.
openkal-image 0.3.1
A remembered okb admission reads no byte of the member.
- okrun admitted a member it had compared before, on the same file, with
okld_okb_admitand no manifest, which computes the CRC-32 the archive states: a pass over the whole member on every start (0.1 s of processor time for clangd's 71 MB image, on each of the 176 workers a cold build of 176 modules starts).okld_okb_admit_layoutadmits a member by its shape alone (stored, within the archive, aligned), and the remembered path uses it.okrun clangd.okb --version: 0.11 s and 2 200 page faults before, 0.00 s and 28 after. - ld, run, tools and bind 0.3.1. The okld/okrun binaries are attached by release-binaries.yml over openkal-platform 0.21.1.
openkal-image 0.3.0
openkal 0.21: an image's instructions and read-only data mapped from its file.
- okld maps each segment that is not writable, holds as many bytes of the file as of memory, is congruent with its file offset modulo 64 KiB and shares no granule with another segment from the image's file (
okld_host::map, openkal'skal_exec_map_part), where the environment declaresKAL_EXEC_PROP_FILE; the other segments are copied as before. A language server's 54 MB of instructions and 14 000 page faults before its first instruction become the pages it touches. - Each relocation writes a writable segment, or the image is refused (SPEC 12.2: no text relocation).
- okrun keeps the image's file open while the program runs.
- openkal 0.21.0; openkal-linux 0.22.0, openkal-macos 0.19.0, openkal-windows 0.17.0 (which copies:
KAL_EXEC_PROP_FILEis not claimed).
The okld/okrun binaries are attached by release-binaries.yml over openkal-platform 0.21.0.
openkal-image 0.2.0
openkal 0.20: a measurement of an image (okprof), the name of an address, and an okb's admission remembered.
- The runner answers
openkal.profandopenkal.debug(SPEC 12.3).OKRUN_PROF, orokrun --prof=<what>[:dir], measures an image:callsbinds each imported name through a counting entry,counterskeeps the counters and phases the program registers,perfmapwrites/tmp/perf-<pid>.mapon Linux. The reportokprof-<id>.jsonis written where the program ends. kal_debug_symbolizenames an address from the symbol table of the image that holds it (libokld:okld_symbols).okprof(openkal-tools):record,report,diff.- An okb's admission is remembered per user, keyed by the manifest's SHA-256 and the member, with the file's identity, length and modification time.
okld_interface_ofknowsopenkal.map,region,profanddebug.- openkal 0.20.0; openkal-linux 0.21.0, openkal-macos 0.18.0, openkal-windows 0.16.0.
The okld/okrun binaries are attached by release-binaries.yml over openkal-platform 0.21.0.