pub struct CompiledModule { /* private fields */ }
Expand description

A compiled wasm module, ready to be instantiated.

Implementations§

source§

impl CompiledModule

source

pub fn from_artifacts( mmap: MmapVec, info: Option<CompiledModuleInfo>, profiler: &dyn ProfilingAgent, id_allocator: &CompiledModuleIdAllocator ) -> Result<Self>

Creates CompiledModule directly from a precompiled artifact.

The mmap argument is expecte to be the result of a previous call to finish_compile above. This is an ELF image, at this time, which contains all necessary information to create a CompiledModule from a compilation.

This method also takes info, an optionally-provided deserialization of the artifacts’ compilation metadata section. If this information is not provided (e.g. it’s set to None) then the information will be deserialized from the image of the compilation artifacts. Otherwise it will be assumed to be what would otherwise happen if the section were to be deserialized.

The profiler argument here is used to inform JIT profiling runtimes about new code that is loaded.

source

pub fn unique_id(&self) -> CompiledModuleId

Get this module’s unique ID. It is unique with respect to a single allocator (which is ordinarily held on a Wasm engine).

source

pub fn mmap(&self) -> &MmapVec

Returns the underlying memory which contains the compiled module’s image.

source

pub fn wasm_data(&self) -> &[u8]

Returns the concatenated list of all data associated with this wasm module.

This is used for initialization of memories and all data ranges stored in a Module are relative to the slice returned here.

source

pub fn address_map_data(&self) -> &[u8]

Returns the encoded address map section used to pass to wasmtime_environ::lookup_file_pos.

source

pub fn trap_data(&self) -> &[u8]

Returns the encoded trap information for this compiled image.

For more information see wasmtime_environ::trap_encoding.

source

pub fn code(&self) -> &[u8]

Returns the text section of the ELF image for this compiled module.

This memory should have the read/execute permissions.

source

pub fn module(&self) -> &Arc<Module>

Return a reference-counting pointer to a module.

source

pub fn func_name(&self, idx: FuncIndex) -> Option<&str>

Looks up the name section name for the function index idx, if one was specified in the original wasm module.

source

pub fn module_mut(&mut self) -> Option<&mut Module>

Return a reference to a mutable module (if possible).

source

pub fn finished_functions( &self ) -> impl ExactSizeIterator<Item = (DefinedFuncIndex, *const [VMFunctionBody])> + '_

Returns the map of all finished JIT functions compiled for this module

source

pub fn trampolines( &self ) -> impl Iterator<Item = (SignatureIndex, VMTrampoline, usize)> + '_

Returns the per-signature trampolines for this module.

source

pub fn stack_maps( &self ) -> impl Iterator<Item = (*const [VMFunctionBody], &[StackMapInformation])>

Returns the stack map information for all functions defined in this module.

The iterator returned iterates over the span of the compiled function in memory with the stack maps associated with those bytes.

source

pub fn func_by_text_offset( &self, text_offset: usize ) -> Option<(DefinedFuncIndex, u32)>

Lookups a defined function by a program counter value.

Returns the defined function index and the relative address of text_offset within the function itself.

source

pub fn func_info(&self, index: DefinedFuncIndex) -> &FunctionInfo

Gets the function information for a given function index.

source

pub fn symbolize_context(&self) -> Result<Option<SymbolizeContext<'_>>>

Creates a new symbolication context which can be used to further symbolicate stack traces.

Basically this makes a thing which parses debuginfo and can tell you what filename and line number a wasm pc comes from.

source

pub fn has_unparsed_debuginfo(&self) -> bool

Returns whether the original wasm module had unparsed debug information based on the tunables configuration.

source

pub fn has_address_map(&self) -> bool

Indicates whether this module came with n address map such that lookups via wasmtime_environ::lookup_file_pos will succeed.

If this function returns false then lookup_file_pos will always return None.

source

pub fn image_range(&self) -> Range<usize>

Returns the bounds, in host memory, of where this module’s compiled image resides.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V