From 7da9d2b59b798b950b0270853b84b19431384577 Mon Sep 17 00:00:00 2001 From: Linwei Shang Date: Tue, 13 Jan 2026 14:21:47 -0500 Subject: [PATCH] feat: Wasm optimization failure issues a warning instead of error --- CHANGELOG.md | 5 +++++ e2e/assets/memory64/dfx.json | 2 +- e2e/assets/memory64/m64.wasm | Bin 14 -> 21 bytes e2e/tests-dfx/build.bash | 3 +++ src/dfx/src/lib/models/canister.rs | 17 ++++++++++++++--- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3670036052..5ff02af0f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ # UNRELEASED +### feat: Wasm optimization failure issues a warning instead of error + +The optimization functionality provided by `ic_wasm::optimize" cannot handle Wasm modules that contains 64-bit table. +Instead of blocking the build, such optimization failure will issue a warning. + ### Frontend canister Sets the `ic_env` cookie for all HTML files only if the canister environment changed in the `commit_batch` method. diff --git a/e2e/assets/memory64/dfx.json b/e2e/assets/memory64/dfx.json index 6a658fd247..02b44e2852 100644 --- a/e2e/assets/memory64/dfx.json +++ b/e2e/assets/memory64/dfx.json @@ -5,7 +5,7 @@ "type": "custom", "candid": "empty.did", "wasm": "m64.wasm", - "build": "echo \"generated from (module (memory i64 0 0))\"", + "build": "echo \"generated from (module (memory i64 0 0) (table i64 1 10 funcref))\"", "shrink": true, "optimize": "Oz", "gzip": true diff --git a/e2e/assets/memory64/m64.wasm b/e2e/assets/memory64/m64.wasm index c4a07fdf1585dca8987bb630913e2e877b0b581f..421146f1eb719ffe6bb257ccd40e707a2f521bf0 100644 GIT binary patch literal 21 ccmZQbEY4+QU|?WjWh`K2 { + modified = true; + } + Err(e) => { + warn!(logger, "Failed to optimize the Wasm module: {}", e); + } + } } else if info.get_shrink() == Some(true) || (info.get_shrink().is_none() && (info.is_rust() || info.is_motoko())) {