This commit updates the various tooling used by wasmtime which has new updates to the module linking proposal. This is done primarily to sync with WebAssembly/module-linking#26. The main change implemented here is that wasmtime now supports creating instances from a set of values, nott just from instantiating a module. Additionally subtyping handling of modules with respect to imports is now properly handled by desugaring two-level imports to imports of instances. A number of small refactorings are included here as well, but most of them are in accordance with the changes to `wasmparser` and the updated binary format for module linking.
28 lines
1.0 KiB
Rust
28 lines
1.0 KiB
Rust
use crate::vmcontext::{VMFunctionImport, VMGlobalImport, VMMemoryImport, VMTableImport};
|
|
|
|
/// Resolved import pointers.
|
|
///
|
|
/// Note that some of these fields are slices, not `PrimaryMap`. They should be
|
|
/// stored in index-order as with the module that we're providing the imports
|
|
/// for, and indexing is all done the same way as the main module's index
|
|
/// spaces.
|
|
///
|
|
/// Also note that the way we compile modules means that for the module linking
|
|
/// proposal all `alias` directives should map to imported items. This means
|
|
/// that each of these items aren't necessarily directly imported, but may be
|
|
/// aliased.
|
|
#[derive(Default)]
|
|
pub struct Imports<'a> {
|
|
/// Resolved addresses for imported functions.
|
|
pub functions: &'a [VMFunctionImport],
|
|
|
|
/// Resolved addresses for imported tables.
|
|
pub tables: &'a [VMTableImport],
|
|
|
|
/// Resolved addresses for imported memories.
|
|
pub memories: &'a [VMMemoryImport],
|
|
|
|
/// Resolved addresses for imported globals.
|
|
pub globals: &'a [VMGlobalImport],
|
|
}
|