LEGACY DOCS · 12.4Stable is 13.2. This page stays because it still owns historical or unchanged contracts.CURRENT 13.2 →
RELEASE LINE13.2 HISTORICAL13.1 PREDECESSOR13.0 PREVIOUS12.4 NATIVE MIRARCHIVE

LEGACY DOCS · 12.4

PAGE ROLE · MEASUREMENT AND GATES

BENCHMARKS HAVE TO SURVIVE CROSS-EXAMINATION

v12.4 measures native code against the frozen v12.3.0 baseline using repeated runs, affinity control, stability checks, exact output signatures and structural machine-code inspection. Aggregate speed is useful only when the slowest case is still visible.

00 measurement contract

BaselineExact v12.3.0 tag exports in two independent roots.
Candidatev12.4 native pipeline at the release commit.
Warmups3.
Measured runs9 per selected attempt.
Workload multiplier8 for the native release corpus.
Settling1000 ms where specified.
StabilityRelative MAD must stay within the release bound.
CorrectnessOutput, exit/error behavior and required semantic state must agree.

10 native result

PlatformWorkloadsGeometric meanMinimum caseMax relative MAD
Linux x86_64141.635904x0.987252x4.08%
Windows x86_64141.639412x1.019105x4.16%

The Linux minimum is recursion at roughly 0.987x in the retained measurement receipt. That is below parity by a small amount but above the 0.90 individual floor. The aggregate gate is therefore not hiding a catastrophic regression.

20 VM and NMOS 6502

The broader release closeout also carried the VM corpus at 15/15 with a 1.409877x geometric mean and 0.995889x minimum. The NMOS 6502 authority matrix remains 151 expected, 151 implemented, 151 tested. Its retained million-instruction measurement reports 4.481502x speedup and exact Array/Buffer output equivalence.

A benchmark without the slowest case is a brochure. Put the ugly number on the page too.

30 code quality is separate evidence

Wall time can improve for noisy reasons. v12.4 therefore inspects static machine output too.

I686
text bytes      3033 -> 2482   (-18.2%)
instructions    1201 -> 769    (-36.0%)
frame bytes      168 -> 112    (-33.3%)

X86_64-NONE
text bytes    175203 -> 118338 (-32.5%)
instructions   35590 -> 28764  (-19.2%)
frame bytes   308832 -> 7304   (-97.6%)

These aggregates come from the v12.4 code-quality receipt and make a different claim than elapsed time: the selected code is smaller, uses fewer instructions across the corpus, and stops wasting huge amounts of frame storage.

40 unavailable means unavailable

Hardware counters were not available on the release machine because the perf probe returned PERF_NOT_FOUND. The release did not replace missing counters with fabricated values. Wall-time, object identity, relocations, ABI checks and disassembly remained active gates.

EVIDENCE CLASS. The retained development measurement receipts have the same candidate commit and the numbers shown here, but they record candidate_dirty: true. They are measurement evidence, not final release-identity proof. The annotated tag, tagged source blob, package manifest and package bytes are verified independently; the mutable working checkout is not release authority.

50 C, C++, Rust and Zig are telemetry

The cross-language harness can compare DByte with GCC C/C++, Rust and Zig under controlled workloads. Those numbers are useful engineering telemetry. They are not allowed to become a release semantic oracle. Different languages, optimizers and runtime assumptions make “winner” headlines easy and mostly useless.

60 read the contract

NATIVE_MACHINE_CODE_PERFORMANCE.md defines the gates, corpus, optimization boundaries and exclusions. Read that before turning one ratio into a religion.