Skip to content

Myna 0.12.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 19:01
· 38 commits to main since this release
v0.12.0
bef4655

Myna 0.12.0

This release adds Truffle native cells: truffle_cells=true on a module emits a
<NativeClass>Truffle.java with one DSL-free Truffle cell per import, calling the
module's existing Native Image or FFM bindings with language-neutral coercions from
the new myna-truffle JAR. The pinned Elide GraalVM moves to 25.5.5-elide.26.

  • Cells never change a binding's leaf status or embed addresses. From runtime-compiled
    guest code a leaf cell costs the same as the direct Java call (1.5 ns, no allocation),
    a transitioning cell calls its AOT stub directly (4.9 ns, graal#196), and the generic
    interop wrapper adds nothing, so scalar calls need no language-specific glue.
  • truffle_backend=native|ffm, truffle_coercion=strict|wrap and
    truffle_transitions=direct|boundary refine a module; truffle_cell=false and
    truffle_raw_pointers=true facts refine an import. The configuration is serialized
    under "truffle"; descriptors without it keep their canonical shape.
  • Borrows become guest-visible buffers whose byte count is derived: native memory is
    lent in place, heap arrays are pinned in an image from 256 bytes (measured crossover)
    and copied below, interop buffers are copied and written back. Resources become
    exactly-once, optionally confined owners.
  • benchmarks/cells measures cells against direct calls and Truffle NFI from compiled
    code, with a checked-in advisory baseline; tests/truffle_integration.py proves cells
    run from runtime-compiled Native Image code.
  • The pinned Elide GraalVM is 25.5.5-elide.26 (graal#189, #190, #196, #197); the fixture
    uses direct transitions and compile isolates stay enabled.

Generator-versioned canonical descriptors have new fingerprints; regenerate matching
outputs together. The v0.12.0 tag is signed with the OpenPGP key
15FAB722A29D5AD20917A0C50A11B04C1623040F (ed25519, Sam Gammon), a signer change from
the X.509 signatures on earlier tags; verify it with git verify-tag v0.12.0. Builds use elide-dev/toolchain 2026.11.5. No existing published
artifacts or tags are replaced. See Truffle native cells and
calling Myna bindings from Truffle guest code.

See release verification instructions for checksums and provenance.

Full changelog: v0.11.0...v0.12.0