mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 18:07:58 +00:00
wasm-executor: Support growing the memory (#12520)
* As always, start with something :P * Add support for max_heap_pages * Add support for wasmtime * Make it compile * Fix compilation * Copy wrongly merged code * Fix compilation * Some fixes * Fix * Get stuff working * More work * More fixes * ... * More * FIXEs * Switch wasmi to use `RuntimeBlob` like wasmtime * Removed unused stuff * Cleanup * More cleanups * Introduce `CallContext` * Fixes * More fixes * Add builder for creating the `WasmExecutor` * Adds some docs * FMT * First round of feedback. * Review feedback round 2 * More fixes * Fix try-runtime * Update client/executor/wasmtime/src/instance_wrapper.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/executor/common/src/wasm_runtime.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/executor/common/src/runtime_blob/runtime_blob.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/executor/common/src/wasm_runtime.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/allocator/src/freeing_bump.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/allocator/src/freeing_bump.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Feedback round 3 * FMT * Review comments --------- Co-authored-by: Koute <koute@users.noreply.github.com>
This commit is contained in:
@@ -119,3 +119,29 @@ pub trait WasmInstance: Send {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
/// Defines the heap pages allocation strategy the wasm runtime should use.
|
||||
///
|
||||
/// A heap page is defined as 64KiB of memory.
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Hash, Eq)]
|
||||
pub enum HeapAllocStrategy {
|
||||
/// Allocate a static number of heap pages.
|
||||
///
|
||||
/// The total number of allocated heap pages is the initial number of heap pages requested by
|
||||
/// the wasm file plus the `extra_pages`.
|
||||
Static {
|
||||
/// The number of pages that will be added on top of the initial heap pages requested by
|
||||
/// the wasm file.
|
||||
extra_pages: u32,
|
||||
},
|
||||
/// Allocate the initial heap pages as requested by the wasm file and then allow it to grow
|
||||
/// dynamically.
|
||||
Dynamic {
|
||||
/// The absolute maximum size of the linear memory (in pages).
|
||||
///
|
||||
/// When `Some(_)` the linear memory will be allowed to grow up to this limit.
|
||||
/// When `None` the linear memory will be allowed to grow up to the maximum limit supported
|
||||
/// by WASM (4GB).
|
||||
maximum_pages: Option<u32>,
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user