Wasmex.EngineConfig (wasmex v0.9.2)
Configures a Wasmex.Engine
.
Options
:consume_fuel
- Whether or not to consume fuel when executing Wasm instructions. This defaults tofalse
.:cranelift_opt_level
- Optimization level for the Cranelift code generator. This defaults to:none
.:wasm_backtrace_details
- Whether or not backtraces in traps will parse debug info in the Wasm file to have filename/line number information. This defaults tofalse
.
Example
iex> _config = %Wasmex.EngineConfig{}
...> |> Wasmex.EngineConfig.consume_fuel(true)
...> |> Wasmex.EngineConfig.cranelift_opt_level(:speed)
...> |> Wasmex.EngineConfig.wasm_backtrace_details(false)
Summary
Functions
Configures whether execution of WebAssembly will "consume fuel" to either halt or yield execution as desired.
Configures the Cranelift code generator optimization level.
Configures whether the WebAssembly memory type is 64-bit.
Configures whether backtraces in traps will parse debug info in the Wasm file to have filename/line number information.
Types
Functions
consume_fuel(config, consume_fuel)
Configures whether execution of WebAssembly will "consume fuel" to either halt or yield execution as desired.
This can be used to deterministically prevent infinitely-executing WebAssembly code by instrumenting generated code to consume fuel as it executes. When fuel runs out a trap is raised.
Note that a Wasmex.Store
starts with no fuel, so if you enable this option
you'll have to be sure to pour some fuel into Wasmex.Store
before
executing some code. See Wasmex.StoreOrCaller.set_fuel/2
.
Example
iex> config = %Wasmex.EngineConfig{}
...> |> Wasmex.EngineConfig.consume_fuel(true)
iex> config.consume_fuel
true
cranelift_opt_level(config, cranelift_opt_level)
Configures the Cranelift code generator optimization level.
Allows one of the following values:
:none
- No optimizations performed, minimizes compilation time by disabling most optimizations.:speed
- Generates the fastest possible code, but may take longer.:speed_and_size
- Similar tospeed
, but also performs transformations aimed at reducing code size.
memory64(config, memory64)
Configures whether the WebAssembly memory type is 64-bit.
Example
iex> config = %Wasmex.EngineConfig{}
...> |> Wasmex.EngineConfig.memory64(true)
iex> config.memory64
true
wasm_backtrace_details(config, wasm_backtrace_details)
Configures whether backtraces in traps will parse debug info in the Wasm file to have filename/line number information.
When enabled this will causes modules to retain debugging information found in Wasm binaries. This debug information will be used when a trap happens to symbolicate each stack frame and attempt to print a filename/line number for each Wasm frame in the stack trace.
Example
iex> config = %Wasmex.EngineConfig{}
...> |> Wasmex.EngineConfig.wasm_backtrace_details(true)
iex> config.wasm_backtrace_details
true