v0.4.0
Warning
No binaries. The release build failed to cross-compile (macOS timeval widths, Windows cap:fs). Binaries shipped in v0.4.1, which is content-identical apart from the build fixes. The notes below remain the 0.4 release notes.
The release where the type system stopped negotiating — and the engine learned to say its own name.
Breaking
- Strict nominal types. Named values no longer mix with bare base values in arithmetic or comparison:
Severity(4) >= 3is aTypeError. WriteSeverity(4) >= Severity(3)or unwrap withint(s). Subtypes still mix with their parent type. - Strict int/float ordering comparisons.
1.5 > 1is now aTypeError, matching arithmetic (1.5 + 1was already rejected). Convert one side explicitly —1.5 > float(1)— or write the literal as1.0. Equality (==) is unchanged and still evaluates tofalseacross types.
Improved
- Runtime errors explain themselves (#107). Type and range errors name the operand types and suggest a remedy (
cannot apply '>' to float and int; use matching numeric types such as 2.0 or float(2)), and the REPL prints the same--> repl:line:collocation and caret block as file mode. - Heap scaling (#104). Slab size classes scale with the configured heap (up to 2 MiB blocks), a new 16 MiB
serverpreset joinstiny/dev/stress, and allocations above the block ceiling fail gracefully withAllocationTooLargeinstead of OOM. - String safety (#101). The
.stringimmortality invariant is enforced with a debug tripwire; GC-safety fixes infs.list, the split family, and dynamic string concat. std.mathabs/min/max/signpreserveintinputs instead of widening to float.
Infrastructure
- Versioning discipline (#106).
gengo --version,gengo_engine_version()in the C API (returns bare"0.4.0", machine-parseable), version source of truth inbuild.zig, stability policy in the README, tagging workflow in CONTRIBUTING. - The docs build themselves. docs.gengoscript.org is generated by a Gengoscript script (tools/site-builder) — every docs deploy is an end-to-end test of the language. This release it was rewritten around structs, templates, multiline strings, and multi-value returns, and the dogfooding surfaced three engine issues (#109, #110, #111) now slated for v0.5.0.
- New native capability test lane; bench and heap tests join the CI gates.
Full changelog: CHANGELOG.md · v0.3.1...v0.4.0