This post covers Kit v2026.5.30. The detailed notes below come from the project changelog.
Kit 2026.5.30 is a focused correctness and tooling release. It improves FFI linking for
prebuilt package wrappers, clears several code generation lowering issues, sharpens non-exhaustive
match diagnostics, makes global runtime context initialization thread-safe, and refines a couple of
formatter spacing rules.
On the codegen side, nullary functions and externs used in value position are now invoked correctly,
List.cons used as a first-class value gets a proper closure wrapper, and the partition
cache is keyed on the compiler build fingerprint so stale partitions are not reused across compiler
builds. The formatter preserves the space before linearity annotations and @ field
attributes, and CI now persists the Zig build cache across pipelines.
Release Snapshot
- Release: v2026.5.30
- Date: May 30, 2026
- Changelog entries: 12
- Primary areas: FFI auto-linking, codegen lowering, match diagnostics, thread-safe runtime init, formatter spacing, CI caching
What Changed
FFI linking improves: prebuilt package wrapper libraries are now auto-linked into consumers, so packages that ship precompiled wrappers link cleanly without extra manual flags.
Code generation receives several fixes. Nullary functions and externs used in value position are now
invoked correctly, List.cons used as a first-class value emits a proper closure wrapper,
and the partition cache is keyed on the compiler build fingerprint so stale partitions are no longer
reused across compiler builds.
Diagnostics are clearer: a non-exhaustive match failure is now reported at the scrutinee, pointing at the value being matched rather than a less helpful location.
The runtime is more robust under concurrency. Global runtime context initialization is now thread-safe, removing a startup race in concurrent programs.
The formatter gains two spacing fixes: it keeps the space before linearity annotations and puts a
space before @ field attributes (and the append operator).
On the tooling side, CI persists the Zig build cache across pipelines for test-stage jobs, and the changelog was regenerated and refreshed.
Release Highlights
- Auto-link prebuilt package wrapper libraries into consumers.
- Invoke nullary functions and externs used in value position.
- Emit a closure wrapper for
List.consused as a first-class value. - Key the partition cache on the compiler build fingerprint.
- Report non-exhaustive match failures at the scrutinee.
- Make global runtime context initialization thread-safe.
- Keep the space before linearity annotations and
@field attributes (and the append operator). - Persist the Zig build cache across pipelines for test-stage jobs.
Exact Changelog
The list below matches the 2026.5.30 changelog entry, with each short SHA linked to the
corresponding GitLab commit in kit-lang.
- fix(ffi): auto-link prebuilt package wrapper libraries into consumers (d91f161)
- fix(codegen): invoke nullary functions/externs used in value position (2b7ea3a)
- fix(diagnostics): report non-exhaustive match failure at the scrutinee (9a6c795)
- Make global runtime context init thread-safe (03a0213)
- Bumped version to 2026.5.30 (754dedc)
- fix(codegen): emit closure wrapper for List.cons used as a first-class value (4bd26c2)
- fix(codegen): key partition cache on compiler build fingerprint (c78b714)
- fix(formatter): keep the space before linearity annotations (b10c018)
- Generated CHANGELOG.md (67cabc9)
- fix(formatter): put a space before @ field attributes (and the append operator) (d25b88c)
- Refreshed CHANGELOG.md (7f5a523)
- ci: persist the Zig build cache across pipelines for test-stage jobs (3519743)