This post covers Kit v2026.4.20. The detailed notes below come from the project changelog.
Kit 2026.4.20 is an infrastructure-heavy compiler release. The main story is incremental
compilation: backend artifact graphs are completed, dependency-aware backend reuse lands, query-backed
IL lowering and optimization are finished, and cache sharing now reaches more of the CLI and LSP stack.
Around that compiler work, the release also fixes correctness edges that show up in real multi-module projects and native integrations. Imported module/codegen paths are stabilized, active patterns and interpolation formatting are corrected, Zig FFI callback runtime errors now propagate cleanly, and Linux final-link reuse gets several targeted fixes.
Release Snapshot
- Release: v2026.4.20
- Date: April 20, 2026
- Changelog entries: 33
- Primary areas: Incremental compilation, backend reuse, codegen, imports, linking
What Changed
The incremental pipeline is the headline here. This release neutralizes shared query context, stabilizes incremental cache writes, finishes declaration-level invalidation through the current compiler boundaries, and refines backend artifact graph reuse through partition support, final-link fallback handling, and native archive reuse. In practical terms, Kit is getting better at reusing previous compiler work instead of rebuilding everything from scratch.
The rest of the changelog hardens the edges around that pipeline. Import-heavy type checking no longer
hits a TypeEnv clone panic, imported module tracking and imported codegen edge cases are more
stable, extern callback failures escape correctly through Zig FFI, and Linux relink verification and
tracked-entry final linking are fixed. There is also a small language-surface cleanup for active
patterns, interpolation formatting, and List.empty codegen.
Release Highlights
- Land major incremental compilation milestones across lowering, invalidation, backend reuse, and cache sharing.
- Speed up codegen and library discovery.
- Fix imported-module/codegen edge cases and an import-heavy
TypeEnvclone panic. - Harden native integration and linking with Zig FFI callback error propagation and Linux final-link reuse fixes.
Exact Changelog
The list below matches the 2026.4.20 changelog entry, with each short SHA linked to the
corresponding GitLab commit in kit-lang.
- Preserve packed Int values for c_int extern args (39d24bc)
- Stabilize imported module name tracking (28c67c8)
- Fix active patterns, interpolation formatting, and List.empty codegen (4633cb0)
- Speed up codegen and library discovery (55aa738)
- Propagate Zig FFI callback runtime errors (09bfa8d)
- Fix imported codegen edge cases (fdadf78)
- Neutralize shared incremental query context (2645abb)
- Finish dependency-aware backend reuse milestone (491d533)
- Finish incremental native linking and archive reuse (92e2a46)
- Fix interface fingerprint API mismatch for CI (4e4fd53)
- Finish backend artifact graph completion (b993f95)
- Fix TypeEnv clone panic during import-heavy type checking (e1adef8)
- Narrow prepared final-link driver test flow (54bb229)
- Fix prepared graph ownership in driver tests (a3c0def)
- Finish shared incremental substrate cleanup for CLI and LSP (929252e)
- Finish declaration-level invalidation through current compiler boundaries (ebbd2fb)
- Finish query-backed IL lowering and optimization (78ada33)
- Share source and import resolution caches across Kit tooling (e35d20d)
- Refine backend artifact graph reuse for partition support (57f1333)
- Stabilize incremental cache writes and query reuse checks (5d4754c)
- Move the incremental module test harness out of the repo root (94ecc4f)
- Move the incremental recompilation plan note out of kit-lang (0d72fc8)
- Bumped Kit version to 2026.4.20 (cab56f8)
- Fix Zig and Kit CI regressions (eb174b3)
- Update README implementation overview (42df435)
- Regererated CHANGELOG.md (63d926f)
- Fix final link entry fallback for backend graph reuse (6355fc4)
- Regenerated CHANGELOG.md (68c9c75)
- Fix Linux final link reuse for tracked entry archive (48f9c15)
- Regenerated CHANGELOG.md (365d63d)
- Use Zig-supported archive entry flag on Linux (6394493)
- Regenerated CHANGELOG.md (b9bbbe8)
- Fix Linux backend graph relink verification (599fb70)