Skip to content

Myna 0.13.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 22:41
· 33 commits to main since this release
v0.13.0
2a4223a

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.abi remains 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-identical seam.json, seam.abi, seam.h, seam.rs,
    Java, Truffle and Native Image outputs. All four supported targets (x86_64 and aarch64
    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, and myna apply still 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.