v0.82.0 — the three-platform release: Linux, macOS and Windows from one tree
Release v0.82.0 — 2026-08-17
The three-platform release. Linux, macOS and Windows ship together from one
tree, each validated on its own terms — and the macOS regression that blocked
that is fixed at its root rather than worked around. The Mac battery is back to
exact parity with v0.77.0, the last darwin release built, with every regressed
leg restored.
std::cout << "hi"works again on macOS. A class-nested enum tag was
stamped a forest type-id but never given a record, sostd::ios_base's
event_callback *__fn_could not be rebuilt when a forest was bound — and the
fill silently dropped the whole class, taking the entire iostream family with
it. Eleven aggregates died on one member, because members flatten from bases.
Withoutios_basethere was no vptr slot, so__vptrwas never emitted and
operator<<never resolved.- The fix is where the id is stamped. Enums reached through a class's
type_aliases— where the live parse writes them — are now recorded through
one shared writer that the existingdatatype_mapwalk also calls, so the two
surfaces cannot drift. The record carries its owner's provenance and a
DF_ENUM_CLASS_NESTEDflag, so the restore re-attaches the tag as its owner's
alias only. It still does not leak to file scope, which is what
[basic.scope.class]/1requires and what the parser guard was protecting. - madc's embedded
<stdarg.h>no longer declares thev*printffamily.
gcc and clang declare zero stdio functions there. Under darwin's
_FORTIFY_SOURCE=2those declarations expanded mid-header into fortify
builtins and failed to parse, killing everyhosted-*-macosforest pack. - Three silent losses became measurements. A bound forest now names every
aggregate the fill dropped and every derived type the materialisation fixpoint
could not build, with the blocking member, base or parameter. Each was
previously a barecontinue. - Every artifact lane builds the binary it validates.
headerless-winhad
been testing a PE built eight hours before the fix under test.packedand
headerlessshared the same trap. Freshness now comes from the Makefile. - Validated on all three platforms at the released tree. Linux
1054/0/0/9 JIT, 1021/0 exe, 1021/0 obj, 1054/0 packed, 1028/0/0/35 headerless,
zero warnings on every lane. Windows 1011/0/0/52 under Wine and 1011/0/0/52
headerless. macOS both arches packed at 835 units with the Mach-O release
verifier green, and 7/3 on real Apple-Silicon hardware. - New regression gate.
forest_bind_gatecase[nestedenumfn]reproduces
the darwin defect on Linux and is negative-controlled — it fails with the fix
reverted.
Known gaps unchanged from v0.77.0 on macOS: ostringstream::str, the
include-free madc::value intrinsic, and the exec:// channel. madc still
has no --version flag on any platform.
See CHANGELOG.md for full details.