diff --git a/Cargo.lock b/Cargo.lock index dbbb4e62dd..c5c4a4522a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2405,6 +2405,7 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash 0.8.11", "allocator-api2", + "serde", ] [[package]] @@ -3327,9 +3328,9 @@ dependencies = [ [[package]] name = "ic-wasm" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f3f1ec63f08807d176691225de0b993e832b1fff71c631ed897df5888c7be4" +checksum = "9742ed6640abfc3bd1c8ca82de222e907275d1e851249b13fca7588f13759fc7" dependencies = [ "anyhow", "candid", @@ -3476,6 +3477,7 @@ checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown 0.14.5", + "serde", ] [[package]] @@ -6552,9 +6554,9 @@ dependencies = [ [[package]] name = "walrus" -version = "0.20.3" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c03529cd0c4400a2449f640d2f27cd1b48c3065226d15e26d98e4429ab0adb7" +checksum = "467611cafbc8a84834b77d2b4bb191fd2f5769752def8340407e924390c6883b" dependencies = [ "anyhow", "gimli 0.26.2", @@ -6671,18 +6673,18 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-encoder" -version = "0.29.0" +version = "0.212.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c41dbd92eaebf3612a39be316540b8377c871cb9bde6b064af962984912881" +checksum = "501940df4418b8929eb6d52f1aade1fdd15a5b86c92453cb696e3c906bd3fc33" dependencies = [ "leb128", ] [[package]] name = "wasm-opt" -version = "0.113.0" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65a2799e08026234b07b44da6363703974e75be21430cef00756bbc438c8ff8a" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" dependencies = [ "anyhow", "libc", @@ -6696,9 +6698,9 @@ dependencies = [ [[package]] name = "wasm-opt-cxx-sys" -version = "0.113.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d26f86d1132245e8bcea8fac7f02b10fb885b6696799969c94d7d3c14db5e1" +checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" dependencies = [ "anyhow", "cxx", @@ -6708,9 +6710,9 @@ dependencies = [ [[package]] name = "wasm-opt-sys" -version = "0.113.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497d069cd3420cdd52154a320b901114a20946878e2de62c670f9d906e472370" +checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" dependencies = [ "anyhow", "cc", @@ -6733,9 +6735,17 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.80.2" +version = "0.212.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449167e2832691a1bff24cde28d2804e90e09586a448c8e76984792c44334a6b" +checksum = "8d28bc49ba1e5c5b61ffa7a2eace10820443c4b7d1c0b144109261d14570fdf8" +dependencies = [ + "ahash 0.8.11", + "bitflags 2.5.0", + "hashbrown 0.14.5", + "indexmap 2.2.6", + "semver", + "serde", +] [[package]] name = "web-sys" diff --git a/e2e/assets/memory64/dfx.json b/e2e/assets/memory64/dfx.json new file mode 100644 index 0000000000..6a658fd247 --- /dev/null +++ b/e2e/assets/memory64/dfx.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "canisters": { + "m64": { + "type": "custom", + "candid": "empty.did", + "wasm": "m64.wasm", + "build": "echo \"generated from (module (memory i64 0 0))\"", + "shrink": true, + "optimize": "Oz", + "gzip": true + } + } +} \ No newline at end of file diff --git a/e2e/assets/memory64/empty.did b/e2e/assets/memory64/empty.did new file mode 100644 index 0000000000..f424d81e86 --- /dev/null +++ b/e2e/assets/memory64/empty.did @@ -0,0 +1 @@ +service : {} diff --git a/e2e/assets/memory64/m64.wasm b/e2e/assets/memory64/m64.wasm new file mode 100644 index 0000000000..c4a07fdf15 Binary files /dev/null and b/e2e/assets/memory64/m64.wasm differ diff --git a/e2e/tests-dfx/build.bash b/e2e/tests-dfx/build.bash index cebbafae9c..a88dcfe4f7 100644 --- a/e2e/tests-dfx/build.bash +++ b/e2e/tests-dfx/build.bash @@ -335,3 +335,8 @@ teardown() { assert_command timeout 30s dfx build --check } + +@test "dfx build can post-process memory64 Wasm module" { + install_asset memory64 + assert_command dfx build --check +} diff --git a/rust-toolchain.toml b/rust-toolchain.toml index a0f945fbbb..4df24c986f 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.75.0" +channel = "1.76.0" components = ["rustfmt", "clippy"] targets = ["wasm32-unknown-unknown"] diff --git a/src/dfx/Cargo.toml b/src/dfx/Cargo.toml index 3750e32b20..5cb2459b4b 100644 --- a/src/dfx/Cargo.toml +++ b/src/dfx/Cargo.toml @@ -71,7 +71,7 @@ ic-asset.workspace = true ic-cdk.workspace = true ic-identity-hsm = { workspace = true } ic-utils = { workspace = true } -ic-wasm = "0.7.0" +ic-wasm = "0.8.0" icrc-ledger-types = "0.1.5" idl2json = "0.10.1" indicatif = "0.16.0" @@ -119,7 +119,7 @@ time = { workspace = true, features = [ tokio = { workspace = true, features = ["fs"] } url.workspace = true walkdir.workspace = true -walrus = "0.20.1" +walrus = "0.21.1" which = "4.2.5" ci_info = "0.14"