Repository navigation
Myna 0.12.0
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|wrapand
truffle_transitions=direct|boundaryrefine a module;truffle_cell=falseand
truffle_raw_pointers=truefacts 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/cellsmeasures cells against direct calls and Truffle NFI from compiled
code, with a checked-in advisory baseline;tests/truffle_integration.pyproves 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