diff --git a/crates/plugin_runtime/build.rs b/crates/plugin_runtime/build.rs index 5bdc842ea1..3eac41e0e7 100644 --- a/crates/plugin_runtime/build.rs +++ b/crates/plugin_runtime/build.rs @@ -48,7 +48,11 @@ fn main() { } } -fn create_engine() -> Engine { +/// Creates a default engine for compiling Wasm. +/// N.B.: this must create the same `Engine` as +/// the `create_default_engine` function +/// in `plugin_runtime/src/plugin.rs`. +fn create_default_engine() -> Engine { let mut config = Config::default(); config.async_support(true); // config.epoch_interruption(true); diff --git a/crates/plugin_runtime/src/plugin.rs b/crates/plugin_runtime/src/plugin.rs index 7473577d84..d2570410f9 100644 --- a/crates/plugin_runtime/src/plugin.rs +++ b/crates/plugin_runtime/src/plugin.rs @@ -64,14 +64,22 @@ pub struct PluginBuilder { linker: Linker, } +/// Creates a default engine for compiling Wasm. +/// N.B.: this must create the same `Engine` as +/// the `create_default_engine` function +/// in `plugin_runtime/build.rs`. +pub fn create_default_engine() -> Result { + let mut config = Config::default(); + config.async_support(true); + // config.epoch_interruption(true); + Engine::new(&config) +} + impl PluginBuilder { /// Create a new [`PluginBuilder`] with the given WASI context. /// Using the default context is a safe bet, see [`new_with_default_context`]. pub fn new(wasi_ctx: WasiCtx) -> Result { - let mut config = Config::default(); - config.async_support(true); - // config.epoch_interruption(true); - let engine = Engine::new(&config)?; + let engine = create_default_engine()?; let linker = Linker::new(&engine); Ok(PluginBuilder {