Expand description
The wasmer-compiler crate provides the necessary abstractions
to create a compiler.
It provides an universal way of parsing a module via wasmparser,
while giving the responsibility of compiling specific function
WebAssembly bodies to the Compiler implementation.
Re-exports§
pub use frame_info::FRAME_INFO;pub use frame_info::FRAME_INFO;pub use wasmparser;
Macros§
- wasm_
unsupported - Return an
Err(WasmError::Unsupported(msg))wheremsgthe string built by callingformat!on the arguments to this macro.
Structs§
- Artifact
- A compiled wasm module, ready to be instantiated.
- Artifact
Build - A compiled wasm module, ready to be instantiated.
- Artifact
Build From Archive - A compiled wasm module that was loaded from a serialized archive.
- Base
Tunables - Tunable parameters for WebAssembly compilation.
This is the reference implementation of the
Tunablestrait, used by default. - Code
Memory - Memory manager for executable code.
- Engine
- A WebAssembly
UniversalEngine. - Engine
Builder - The Builder contents of
Engine - Engine
Inner - The inner contents of
Engine - FRAME_
INFO - This is a global cache of backtrace frame information for all active
- Features
- Controls which experimental features will be enabled. Features usually have a corresponding WebAssembly proposal.
- Function
Body Data - Contains function data: bytecode and its offset in the module.
- Function
Extent - Represents a continuous region of executable memory starting with a function entry point.
- Global
Frame Info Registration - An RAII structure used to unregister a module’s frame information when the module is destroyed.
- Middleware
Binary Reader - A Middleware binary reader of the WebAssembly structures and types.
- Middleware
Reader State - The state of the binary reader. Exposed to middlewares to push their outputs.
- Module
Environment - The result of translating via
ModuleEnvironment. Function bodies are not yet translated, and data initializers have not yet been copied out of the original buffer. The function bodies will be translated by a specific compiler backend. - Module
From Archive - Module loaded from an archive. Since
CompileModuleInfois part of the public interface of this crate and has to be mutable, it has to be deserialized completely. - Module
Translation State - Contains information decoded from the Wasm module that must be referenced during each Wasm function’s translation.
Enums§
- Compiled
Function Frame Info Variant - The variant of the compiled function frame info which can be an owned type
- Frame
Infos Variant - The variant of the frame information which can be an owned type or the explicit framed map
- Instantiation
Error - An error while instantiating a module.
- Link
Error - The WebAssembly.LinkError object indicates an error during module instantiation (besides traps from the start function).
Constants§
- VERSION
- Version number of this crate.
Traits§
- Artifact
Create - An
Artifactis the product that theEngineimplementation produce and use. - Compiler
- An implementation of a Compiler from parsed WebAssembly module to Compiled native code.
- Compiler
Config - The compiler configuration options.
- Function
Binary Reader - Trait for iterating over the operators of a Wasm Function
- Function
Middleware - A function middleware specialized for a single function.
- Module
Middleware - A shared builder for function middlewares.
- Module
Middleware Chain - Trait for generating middleware chains from “prototype” (generator) chains.
- Tunables
- An engine delegates the creation of memories, tables, and globals to a foreign implementor of this trait.
- Upcastable
- Trait needed to get downcasting of
Engines to work.
Functions§
- from_
binaryreadererror_ wasmerror - get_
libcall_ trampoline - Returns the address of a trampoline in the libcall trampolines section.
- get_
trace_ and_ trapcode - Given a
Trap, this function returns the Wasm trace and the trap code. - libcall_
trampoline_ len - Returns the length of a libcall trampoline.
- link_
module - Links a module, patching the allocated functions with the required relocations and jump tables.
- make_
libcall_ trampolines - Creates a custom section containing the libcall trampolines.
- register_
frame_ info - Registers a new compiled module’s frame information.
- resolve_
imports - This function allows to match all imports of a
ModuleInfowith concrete definitions provided by aResolver. - translate_
module - Translate a sequence of bytes forming a valid Wasm binary into a
parsed ModuleInfo
ModuleTranslationState. - wpheaptype_
to_ type - Converts a wasmparser heap type to a Wasm Type.
- wptype_
to_ type - Helper function translating wasmparser types to Wasm Type.
Type Aliases§
- Addend
- Addend to add to the symbol value.
- Code
Offset - Offset in bytes from the beginning of the function.