javm_transpiler/lib.rs
1//! RISC-V ELF to JAVM `Image`.
2//!
3//! A thin adapter over [`nub_linker`]: that crate turns an RV64EMC ELF
4//! into a personality-free [`nub_program::ProgramBlob`], and this one
5//! wraps the blob in the JAVM capability shape — one `Cap::Data` per
6//! data region at its conventional cnode slot, declarative
7//! `MemoryMapping`s, SSZ encoding and content hashing.
8//!
9//! The split is deliberate: everything above is PVM2 ISA work that nub
10//! must be able to do without knowing JAVM exists.
11
12pub mod layout;
13pub mod linker;
14
15use thiserror::Error;
16
17#[derive(Error, Debug)]
18pub enum TranspileError {
19 #[error("link error: {0}")]
20 Link(#[from] nub_linker::LinkError),
21}