← garnet-lang.org  ·  Blog  ·  v0.5.0 release ↗
2026-05-20 · Release notes

Garnet v0.5: substance over surface

Status: post-release note, not a production-complete announcement.
Source of truth: F_Project_Management/GARNET_v0_5_SLICE_DOGFOOD.md

Garnet's v0.5.0 blocking slice work has crossed the important engineering line: S1, S2, S5, S8, S9, and S10 are merged on main with dogfood evidence. That is real progress. It is also not a reason to loosen the language around what Garnet is.

The standing description remains:

"research-grade prototype (v0.x.x) — not production-complete"

The tracked slice work is complete for the v0.5.0 blocking lane, and the v0.5.0 GitHub Release now exists with Mac-side release validation evidence. In the repo's own words:

"tracked-slice ledger is complete, but that is not full MIT/productization completion"

What the six blocking slices added

S1 added the Language Server Protocol MVP: parser/checker diagnostics, hover, and basic go-to-definition through garnet-lsp/ plus the VSCode extension launcher in editors/vscode/. The honest status is source-present with protocol smoke evidence, local standalone VS Code diagnostic proof, and release-backed GitHub VSIX diagnostic proof on this Mac. Marketplace/OpenVSX publication, the full manual hover/go-to-definition screenshot trio, safe-mode hover, workspace symbols, rename, and CST-grade incremental precision remain deferred.

S2 added the bytecode VM scaffold. garnet-vm/ now has a deterministic serializer, loader, execution surface for the MVP fixture path, 15 native opcode families, function-level fallback to the tree-walk interpreter, and a bounded Criterion benchmark harness. This is a scaffold, not a stable bytecode ABI or a production VM.

S5 added the parser fuzz harness. The garnet-parser-v0.3/fuzz/ sub-workspace ships a parse_input cargo-fuzz target seeded from canonical Garnet examples and bounded by a strict ParseBudget. Local 60-second smoke evidence and a scheduled nightly workflow exist. Accumulated long-running fuzz hours, interpreter/checker fuzzing, differential fuzzing, and OSS-Fuzz integration are not claimed.

S8 added the signed hot-reload BLAKE3 demo pair. The success example prints reloaded successfully; the mismatch example exits nonzero with BLAKE3 fingerprint mismatch. This closes the Paper VI Contribution 5 surface gap at the demonstration level. It does not expose managed-mode actor.reload_signed syntax and it does not claim full Ed25519 payload verification in managed mode.

S9 added cross-machine determinism CI. GitHub Actions now builds the deterministic manifest on ubuntu-latest and macos-latest with a shared short-lived signing key and fails if the per-OS SHA-256 manifests diverge. This closes the Paper VI Contribution 6 verification gap for the current manifest surface. Windows, Linux aarch64, key rotation, and byte-for-byte native backend determinism remain future work.

S10 added the compiler-as-agent advisory tier without adding an LLM. The current engine is deterministic and rules-based: garnet check --suggest emits compiler suggested: lines for known local patterns. That establishes the compiler-suggestion surface while keeping provider-backed suggestions pending-infra.

The number moved up, but the caveat stayed

After v0.5 plus the S4 and S6 follow-through, scripts/garnet_mit_readiness_status.py reports 71.3% across 19 productization lanes. That is higher and more granular than the v0.4.2 productization pulse, but it is still an active-partial status. The blocked and deferred lanes remain visible: Developer ID notarization, clean-machine Gatekeeper proof, Windows/Linux runtime proof, mobile distribution, broad converter frontends, LLM assist, proof/empirics, and human review gates.

Paper VI's scorecard also stays explicit:

Paper VI scorecard: "4 supported, 2 partial (downgraded honestly), 0 refuted, 1 pending-infra"

Two other anchors remain in force:

Those phrases are not hedges. They are part of the product's credibility.

What the release proved

The v0.5.0 tag exists, but the release proof still matters more than the tag label. The release gate in F_Project_Management/GARNET_v0_5_SLICE_DOGFOOD.md now records the Mac-side validation bundle at /Users/idc2.0/Desktop/dogfood/garnet-v0-5-release-validation-20260520T142443Z. That bundle proves:

The calibrated boundaries remain. This release is not Apple Developer ID notarization, not a signed/notarized macOS .pkg, not Marketplace/OpenVSX publication, and not Windows/Linux desktop runtime proof beyond the GitHub package smoke jobs. That is the right shape for Garnet: substance first, public claim second.

What v0.5.1 closes next

S3 (garnet add + manifest spec) and S7 (actor OS-thread bridge) remain on the v0.5.1 lane in the slice contracts. S4 has landed as an idempotent whitespace-normalizing formatter baseline, and S6 has landed as measured memory-eviction policy benchmarks. Neither should be overclaimed: the formatter is not yet a trivia-preserving pretty-printer, and S6 is not the production allocator path.

If you want to follow along between releases, the commit history is the raw pulse; this blog will carry the narrative ones at a monthly cadence; and Discussions is the room where the design conversations happen out loud.

Roll Tide.

— Jon Isaac, Island Development Crew

© 2026 Island Development Crew · Garnet is dual-licensed MIT OR Apache-2.0 · garnet-lang.org · More posts