v2026.6.3
Objeck Language v2026.6.3
Generational minor garbage collection, closure ergonomics, and a new System.Concurrency library.
✨ What's New
- Generational minor garbage collection — minor (nursery) collection is now enabled: a nursery-full collection scans only the remembered set plus roots and recycles the young generation without sweeping the old generation, falling back to a full major GC under old-gen pressure. JIT and interpreter reference stores emit the write barrier on AMD64 and ARM64, and the nursery is zeroed at allocation time instead of inside the stop-the-world pause.
- Closure ergonomics — call a
FuncRefdirectly withv()(no explicit->Call()); write bare lambdas with an inferred return type (\(x) => x * 2) that auto-wrap intoFuncRef<R>when assigned, returned, passed as a method argument, or stored as a collection element; and give a lambda a block body (\(x) => { ... }). - New
System.Concurrencylibrary — structured concurrency withTaskScope,Task, andMonitor, plusruntime.*process/GC/CPU diagnostics (GC pause, promotion, allocation rate, lock contention, thread/STW/nursery counters) read throughRuntime->GetProperty. - Fixes — multi-capture closure heap corruption (captures now use closure-local ids), re-analyzed/repeated
FuncRefdirect calls, and a spurious "unreferenced variable" warning for closure-captured variables. - Performance — SDL2
Renderer2D draws pool the boxing buffer and cache proxy/method names.
🔀 Changes (pull requests)
- feat(gc): enable generational minor GC (+ JIT write barriers, 2026.6.3) (#574) @objeck
- feat(compiler): auto-wrap bare lambda passed as a FuncRef<R> argument (#573) @objeck
- feat(compiler): bare lambdas + FuncRef auto-wrap (closure ergonomics 2/3) (#572) @objeck
- feat(compiler): lambda block bodies (closure ergonomics 3/3) (#571) @objeck
- fix(compiler): closure captures use closure-local ids (multi-lambda heap corruption) (#570) @objeck
- feat(compiler): direct FuncRef callability
v()+ functional-chaining fix (closure ergonomics 1/3) (#569) @objeck - fix(compiler): don't warn 'unreferenced' for closure-captured variables (#568) @objeck
- docs(gc): CollectMinor stop-the-world note + JSON-stream & Boing Ball examples (#575) @objeck
📦 Installation
Windows
- x64:
objeck-windows-x64_2026.6.3.msi(signed installer) — or the.zipfor a portable install - ARM64:
objeck-windows-arm64_2026.6.3.msi(signed installer) — or the.zip
Linux
- x64:
tar -xzf objeck-linux-x64_2026.6.3.tgz - ARM64:
tar -xzf objeck-linux-arm64_2026.6.3.tgz
macOS (Apple Silicon)
- Installer:
objeck-macos-arm64_2026.6.3.pkg(signed + notarized) - Archive:
tar -xzf objeck-macos-arm64_2026.6.3.tgz
LSP (editor integration)
objeck-lsp_2026.6.3.zip— VS Code, Sublime, Kate, Neovim, and more
📚 Documentation
- API docs: https://objeck.org/api/latest/
- Getting started: https://github.com/objeck/objeck-lang#quick-start
- Playground: https://playground.objeck.org
🔐 Verification
Windows MSI installers are digitally signed; the macOS .pkg is signed and notarized by Apple.
Full Changelog: v2026.6.2...v2026.6.3