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 · RELEASE IDENTITY

PROVE THE RELEASE IN LAYERS

A version string is not a release. v12.4.0 is identified by an annotated tag, a peeled commit, exact source blobs from that tagged commit, an exact package manifest and the bytes of the package itself. Each evidence class proves one thing. Do not make one file testify about facts it cannot know.

00 Git identity

TAG          v12.4.0
TAG OBJECT   28c074777f46bd9e8885f42c49f903ba34e19254
PEELED       a1a5c2458065f6f295d1c3e77df62a34846226e3
SOURCE TREE  TAGGED COMMIT
WORKTREE     NOT RELEASE AUTHORITY
PUSHED       NO

The annotated tag object and the commit are different hashes because they are different objects. That is normal. The tag peels to the release commit. Release-owned source mirrors are read from that immutable commit object, so later work in the mutable checkout cannot silently rewrite v12.4 evidence.

10 package identity

Namedbyte-v12.4.0-windows-x64.zip
Bytes3855311
Entries450
Runtime entries25
SHA-256433b18bbfd5c36304558a71fe169e631757dbd5285ad16c9097b36e64ee1e55f
Source commit in manifesta1a5c2458065f6f295d1c3e77df62a34846226e3

20 packaged executables

FileBytesSHA-256
dbyte.exe529049647d2bdf71fd9ae6bbc29006e7285e7d4540f32c799e60fb9f1553dbce41e0e77
dbytec.exe3490304a9c154da151b5baca4d6f58345c5e28b28aecec1808357faf2b78e0168d1936e

30 normative source

The v12.4 machine-code contract is mirrored byte-for-byte at NATIVE_MACHINE_CODE_PERFORMANCE.md.

SHA256 b8c9be6fa8482bb881632c479927b9d83d56106ff4b8005cb3baeee335ab5a5a

That document defines what Native MIR owns, which optimization passes exist, what semantics cannot move, how allocation works, what the benchmark corpus measures and what is explicitly outside the milestone.

A checksum proves bytes. It does not prove your interpretation of the bytes. Keep the layers straight.

40 development receipts versus final identity

The retained performance and code-quality receipts under the compiler workspace were generated during the v12.4 development run. They point at the final candidate commit and contain the measured values, but at least the performance receipt records candidate_dirty: true. That makes it useful measurement evidence and bad final-tag evidence.

The final release identity on this page therefore comes from the annotated tag object, its peeled commit, the contract blob read directly from that commit, and the exact package manifest and package bytes. A later dirty working checkout is a different state and cannot mutate this evidence.

THIS IS NOT PEDANTRY. If you collapse “same commit” and “same working tree” into one idea, you will eventually ship bytes you cannot reconstruct.

50 independent package construction

The release closeout built the Windows package from two independent exact-tag export roots and obtained byte-identical archives. The root archival ZIP was then replaced with the verified tagged-export artifact. This is stronger than checking only the source commit: packaging order, file membership and archive metadata must also converge.

60 stale text is not release identity

Long-lived repositories contain historical documents. A version banner inside an old language spec or install note can be stale without changing the current release. That is why this site uses the release tag, package receipt and current normative owner instead of scraping every old prose file for the largest number.

70 verify it yourself

git -C D:\TECHNICAL\ProgramingLangPJ rev-parse refs/tags/v12.4.0
git -C D:\TECHNICAL\ProgramingLangPJ rev-list -n 1 v12.4.0
git -C D:\TECHNICAL\ProgramingLangPJ show v12.4.0:docs/NATIVE_MACHINE_CODE_PERFORMANCE.md > .\v12.4-contract.tag.md
Get-FileHash .\v12.4-contract.tag.md -Algorithm SHA256
Get-FileHash .\dbyte-v12.4.0-windows-x64.zip -Algorithm SHA256

The expected package hash is 433B18BBFD5C36304558A71FE169E631757DBD5285AD16C9097B36E64EE1E55F. If your bytes disagree, stop. Do not explain the mismatch away.