Lyric v3.7.0

Lyric

A statically typed application language with a bytecode VM — standalone, and embeddable in a host with a capability-based sandbox.

What changed in v3.7.0 — 2026-08-25

M35 — the reason. The gap std.io.file has carried since 2.14 — "a missing file and a permission denied look the same" — closes, and it closes as a LIBRARY DOCTRINE rather than a one-module patch (spec §9.0, lyric-spec#22): a value answers whether, a throw answers why. Everything is additive — no silent form changes, no format change (bytecode stays 3.6) — and every twin derives from the same implementation as its silent sibling, so the two can never drift.

Added

Deliberately unchanged

parseInt and parseFloat stay ?T alone — the reason of a five-character input is the input. std.os stays silent throughout: an unset variable, an unanswered hostName — null IS the whole truth there. Map.get, List and the option helpers keep absence as a value, and panics keep programming errors.

Fixed

Documentation

The full changelog →