Skip to content

Releases: mcpplibs/openkal-image

0.4.5

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 05 Nov 04:52
e2cc112

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

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 03 Nov 18:55
fda22dd

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.

Correction: #27
Versioned tree: #28

0.4.3: use the corrected Linux confinement backend

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 03 Nov 10:25
b8ac889

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

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 03 Nov 04:10
62bd6fd

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

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 03 Nov 00:43
87438f0

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

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 03 Nov 00:01
8c4438f

openkal-ld, openkal-run, openkal-tools and openkal-bind 0.4.0, for openkal 0.23.

  • An image at its base: okld place and 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=0 declines 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

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 02 Nov 18:15
54ecd01

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

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 02 Nov 11:47
b9cb44c

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_admit and 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_layout admits 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

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 02 Nov 04:05
8a5e0aa

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's kal_exec_map_part), where the environment declares KAL_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_FILE is not claimed).

The okld/okrun binaries are attached by release-binaries.yml over openkal-platform 0.21.0.

openkal-image 0.2.0

Choose a tag to compare

@Sunrisepeak Sunrisepeak released this 01 Nov 21:15
7d4db2c

openkal 0.20: a measurement of an image (okprof), the name of an address, and an okb's admission remembered.

  • The runner answers openkal.prof and openkal.debug (SPEC 12.3). OKRUN_PROF, or okrun --prof=<what>[:dir], measures an image: calls binds each imported name through a counting entry, counters keeps the counters and phases the program registers, perfmap writes /tmp/perf-<pid>.map on Linux. The report okprof-<id>.json is written where the program ends.
  • kal_debug_symbolize names 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_of knows openkal.map, region, prof and debug.
  • 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.