diff --git a/crates/fuzzing/src/generators/config.rs b/crates/fuzzing/src/generators/config.rs index 791cce25279..cf2d9158c75 100644 --- a/crates/fuzzing/src/generators/config.rs +++ b/crates/fuzzing/src/generators/config.rs @@ -176,6 +176,7 @@ impl Config { .wasm_threads(self.module_config.config.threads_enabled) .wasm_function_references(self.module_config.config.gc_enabled) .wasm_gc(self.module_config.config.gc_enabled) + .wasm_custom_page_sizes(self.module_config.config.custom_page_sizes_enabled) .wasm_wide_arithmetic(self.module_config.config.wide_arithmetic_enabled) .native_unwind_info(cfg!(target_os = "windows") || self.wasmtime.native_unwind_info) .cranelift_nan_canonicalization(self.wasmtime.canonicalize_nans) diff --git a/crates/fuzzing/src/generators/module.rs b/crates/fuzzing/src/generators/module.rs index 8d49e275f5f..765ed2e11f9 100644 --- a/crates/fuzzing/src/generators/module.rs +++ b/crates/fuzzing/src/generators/module.rs @@ -36,14 +36,13 @@ impl<'a> Arbitrary<'a> for ModuleConfig { let _ = config.tail_call_enabled; config.exceptions_enabled = false; config.gc_enabled = false; + config.custom_page_sizes_enabled = u.arbitrary()?; config.wide_arithmetic_enabled = u.arbitrary()?; config.memory64_enabled = u.ratio(1, 20)?; // Allow the threads proposal if memory64 is not already enabled. FIXME: // to allow threads and memory64 to coexist, see // https://github.com/bytecodealliance/wasmtime/issues/4267. config.threads_enabled = !config.memory64_enabled && u.ratio(1, 20)?; - // FIXME: this may be safe to enable - config.custom_page_sizes_enabled = false; // Allow multi-memory but make it unlikely if u.ratio(1, 20)? { config.max_memories = config.max_memories.max(2); diff --git a/crates/fuzzing/src/oracles/diff_spec.rs b/crates/fuzzing/src/oracles/diff_spec.rs index 4a22c8cb90e..17521123709 100644 --- a/crates/fuzzing/src/oracles/diff_spec.rs +++ b/crates/fuzzing/src/oracles/diff_spec.rs @@ -25,6 +25,7 @@ impl SpecInterpreter { config.reference_types_enabled = false; config.tail_call_enabled = false; config.relaxed_simd_enabled = false; + config.custom_page_sizes_enabled = false; config.wide_arithmetic_enabled = false; Self diff --git a/crates/fuzzing/src/oracles/diff_v8.rs b/crates/fuzzing/src/oracles/diff_v8.rs index c2697b906f3..fee5fb555b6 100644 --- a/crates/fuzzing/src/oracles/diff_v8.rs +++ b/crates/fuzzing/src/oracles/diff_v8.rs @@ -32,6 +32,7 @@ impl V8Engine { config.min_memories = config.min_memories.min(1); config.max_memories = config.max_memories.min(1); config.memory64_enabled = false; + config.custom_page_sizes_enabled = false; config.wide_arithmetic_enabled = false; Self { diff --git a/crates/fuzzing/src/oracles/diff_wasmi.rs b/crates/fuzzing/src/oracles/diff_wasmi.rs index 0a523f5eb17..62c558ec9e0 100644 --- a/crates/fuzzing/src/oracles/diff_wasmi.rs +++ b/crates/fuzzing/src/oracles/diff_wasmi.rs @@ -20,6 +20,7 @@ impl WasmiEngine { config.threads_enabled = false; config.exceptions_enabled = false; config.gc_enabled = false; + config.custom_page_sizes_enabled = false; config.wide_arithmetic_enabled = false; let mut wasmi_config = wasmi::Config::default(); diff --git a/docs/stability-wasm-proposals.md b/docs/stability-wasm-proposals.md index 7b19aa52ce0..f82e1f2b2c0 100644 --- a/docs/stability-wasm-proposals.md +++ b/docs/stability-wasm-proposals.md @@ -46,7 +46,7 @@ column is below. | [`function-references`] | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | | [`gc`] [^6] | ✅ | ✅ | ❌[^7] | ❌ | ✅ | ❌ | | [`wide-arithmetic`] | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [`custom-page-sizes`] | ❌ | ✅ | ❌ | ⚠️[^8] | ✅ | ❌ | +| [`custom-page-sizes`] | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | [^6]: There is also a [tracking issue](https://github.com/bytecodealliance/wasmtime/issues/5032) for the @@ -54,8 +54,6 @@ column is below. [^7]: The implementation of GC has [known performance issues](https://github.com/bytecodealliance/wasmtime/issues/9351) which can affect non-GC code when the GC proposal is enabled. -[^8]: A custom fuzzer exists but this isn't enabled yet for general-purpose - fuzzing. ## Unsupported proposals