v2.4.0 — faster generated Dart and JavaScript
What you get
- Generated Dart is 1.6x faster. Chunked write merges, chunked read windows, grouped element loops, and a bulk path for byte content. Regenerate and it's yours — no API change, no wire change.
- Generated JavaScript is 1.5x faster (writes 1.9x). Wide values ride an allocation-free BigInt lane through scratch stores, small fields pack into single-word merges, and string/bytes bodies move four bytes at a time.
- The performance table (README) reflects both, from one committed sweep: Dart at 225% and JavaScript at 318% of generated C++, alongside Rust 153%, Java 156%, Go 209%, C# 224%.
- The batch planner counts honestly in C#: fixed-point, 128-bit, and mixed-arm union bodies no longer receive batch entries their delegation costs don't earn.
- An absolute performance ledger guards the reference: every committed sweep joins a per-language time series (
./bench/tools ledger), and CI fails if the C++ curve ever regresses beyond its noise gate — relative numbers can shuffle; the absolute curves cannot lie.
Wire bit-identical across all nine languages throughout, held by the golden corpus and differential review.