Repository navigation
Myna 0.13.0
Myna 0.13.0
This release makes the ABI fingerprint describe the ABI rather than the target triple
(#61), so one platform-neutral bindings JAR
accepts native libraries built for every target with the same layout.
- Canonical
seam.json(schema 3) records the target's resolved ABI class,
"targetAbi": {"dataModel":"LP64","byteOrder":"little"}, in place of"targetTriple".
seam.abiremains its SHA-256. Struct layouts, scalar widths and Java carriers follow from
the class alone. - Targets in one class now produce the same
ABI_FINGERPRINT, the same native
fingerprint()export, and byte-identicalseam.json,seam.abi,seam.h,seam.rs,
Java, Truffle and Native Image outputs. All four supported targets (x86_64andaarch64
Linux GNU and macOS) share the LP64 little-endian class. - Only the LLVM contracts (
seam.ll,seam-jni.ll) name the triple. Sub-word argument
extension and by-value lowering stay target-specific there, andmyna applystill rejects
contracts for a different target. myna validate INPUT.seam --targets TRIPLE,...validates every listed target and fails
unless they share one fingerprint, so a publishing project catches a layout divergence at
build time instead of as a load-time rejection.
Consumers reading targetTriple from seam.json should read the triple from seam.ll or
their own build configuration. The schema 3 descriptor and generator version change every
fingerprint; regenerate matching outputs together and rebuild native libraries against them.
Binding ABI 2 and native value ABI v3 are unchanged. No existing published artifacts or tags
are replaced.