Repository navigation
Myna 0.8.0
Myna 0.8.0
SDK and source archives are available below with checksums, attestations, and Linux/macOS symbol receipts. Container images are still publishing.
Myna 0.8.0 makes the inlineable native-call path the default for Native Image imports. Binding ABI 2 replaces the ordinary leaf adapter with generated typed function pointers and relocated linker symbols. Consumers no longer need handwritten pointer interfaces or resolver functions for fixed symbols.
Breaking migration
Regenerate bindings and rebuild consumers together. Imports now promise short, bounded, nonblocking execution with no Java reentry. Explicitly opt out for other calls with native_leaf=false@explicit_contract; exports retain normal isolate entry. Audit callbacks, locks, allocation, I/O, cleanup and potentially long-running operations. Canonical JSON schema 2 records the binding ABI and effective call policy. Module protocol versions remain independent, and value-tape ABI v3 is unchanged.
Compile generated bindings with the pinned Elide Graal SDK's compile-only jars and package their generated META-INF/native-image resources. The new compiler helper handles both. See the migration guide for commands and lifecycle requirements.
Performance
Five-process ARM64 identity-call measurements from the retained matched builds:
| Host | Myna default | Handwritten SVM leaf | Native C pointer, unrolled ×4 |
|---|---|---|---|
| Linux ARM64 | 0.526 ns | 1.510 ns | 0.442 ns |
| Apple M5 Max | 0.519 ns | 0.999 ns | 0.512 ns |
These include the callee and loop; no control is subtracted. Compare within each host. Mac default/native process ranges overlap. README graphics, raw results and rerun commands, and retained assembly identify the sources, toolchain and hardware. CI checks that generated leaf adapter stubs do not reappear.
Validation
The change passes 196 JVM tests with production line coverage 99.27% and branch coverage 93.17%, native CLI end-to-end tests, six Native Image integration tests, Rust tests, and LLVM/ThinLTO integration tests. New coverage includes static linking, unused undefined symbols, first use before pointer resolution, and calls during concurrent allocation/GC. ASAN/TSAN workloads and their expected-failure canaries pass locally, as does sanitized C++/simdjson conformance. Required Linux/macOS, JVM, and container smoke-test gates passed before tagging.
Myna remains dual-licensed under Apache-2.0 OR MIT. Symbol sidecars, artifact checksums and provenance follow the release process.