diff --git a/Cargo.lock b/Cargo.lock index 285dff3398..9b729df3c0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -496,7 +496,7 @@ version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn", @@ -555,18 +555,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f823c6662ea77699089ec8b6b4b8a23c1e1a9c6526a6420ede7ac957274a7ab4" +checksum = "2ba4f80548f22dc9c43911907b5e322c5555544ee85f785115701e6a28c9abe1" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-bitset" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fcbb4187005097204458a8e4309bb9e737933477e47b4609f81b07a5b4cdd25" +checksum = "005884e3649c3e5ff2dc79e8a94b138f11569cc08a91244a292714d2a86e9156" dependencies = [ "serde", "serde_derive", @@ -574,9 +574,9 @@ dependencies = [ [[package]] name = "cranelift-codegen" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd1aaf8e88339f4f95afffd60d22033546ec7da4d79e805b85260a16668f78f" +checksum = "fe4036255ec33ce9a37495dfbcfc4e1118fd34e693eff9a1e106336b7cd16a9b" dependencies = [ "bumpalo", "cranelift-bforest", @@ -591,39 +591,40 @@ dependencies = [ "log", "regalloc2", "rustc-hash", + "serde", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e541b0418bbba3ce82040a445bd9a83bf3e0da604a95178d9e949dc8a7840af" +checksum = "f7ca74f4b68319da11d39e894437cb6e20ec7c2e11fbbda823c3bf207beedff7" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc96a709a30be39d53ecf89dbfe4edcc5adba528d4b65f7e58dc867ba70fab" +checksum = "897e54f433a0269c4187871aa06d452214d5515d228d5bdc22219585e9eef895" [[package]] name = "cranelift-control" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c3bfcb035e0a501323896bb7ea3d7a5dd1fac3e92dda458ccd23960fde12c88" +checksum = "29cb4018f5bf59fb53f515fa9d80e6f8c5ce19f198dc538984ebd23ecf8965ec" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2f00b4eba51d73a8c343c45cfdeeffa1f74f423bba0e6b8e290e646777c2b81" +checksum = "305399fd781a2953ac78c1396f02ff53144f39c33eb7fc7789cf4e8936d13a96" dependencies = [ "cranelift-bitset", "serde", @@ -632,9 +633,9 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52d5e18bf04660bb716dacf45809e2d4c85e7111701e27dbdb75b4634504ad8f" +checksum = "9230b460a128d53653456137751d27baf567947a3ab8c0c4d6e31fd08036d81e" dependencies = [ "cranelift-codegen", "log", @@ -644,37 +645,21 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f9901807b6d0fde1205f0e4db9d96dcf7ddfc1894c69eb2ff93c47ebf2439f" +checksum = "b961e24ae3ec9813a24a15ae64bbd2a42e4de4d79a7f3225a412e3b94e78d1c8" [[package]] name = "cranelift-native" -version = "0.111.2" +version = "0.114.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "967d65a4077726a9afc3f4694e037f34b992cbe2b6c48ce519b714a0b0558f97" +checksum = "4d5bd76df6c9151188dfa428c863b33da5b34561b67f43c0cf3f24a794f9fa1f" dependencies = [ "cranelift-codegen", "libc", "target-lexicon", ] -[[package]] -name = "cranelift-wasm" -version = "0.111.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4899fd1ef6b1fe1df30f26ef864bd6e45040b8cf9f3cb3905d3e973c25698579" -dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "itertools 0.12.1", - "log", - "smallvec", - "wasmparser 0.215.0", - "wasmtime-types", -] - [[package]] name = "crc32fast" version = "1.4.2" @@ -1191,9 +1176,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" dependencies = [ "fallible-iterator", "indexmap", @@ -1210,15 +1195,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] - [[package]] name = "hashbrown" version = "0.14.5" @@ -1251,12 +1227,6 @@ dependencies = [ "hashbrown 0.14.5", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -1940,6 +1910,17 @@ dependencies = [ "cc", ] +[[package]] +name = "pulley-interpreter" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3b8d81cf799e20564931e9867ca32de545188c6ee4c2e0f6e41d32f0c7dc6fb" +dependencies = [ + "cranelift-bitset", + "log", + "sptr", +] + [[package]] name = "quote" version = "1.0.37" @@ -2021,11 +2002,11 @@ dependencies = [ [[package]] name = "regalloc2" -version = "0.9.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +checksum = "12908dbeb234370af84d0579b9f68258a0f67e201412dd9a2814e6f45b2fc0f0" dependencies = [ - "hashbrown 0.13.2", + "hashbrown 0.14.5", "log", "rustc-hash", "slice-group-by", @@ -2077,9 +2058,9 @@ dependencies = [ [[package]] name = "rustc-hash" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustc_version" @@ -2784,11 +2765,12 @@ checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-encoder" -version = "0.215.0" +version = "0.219.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb56df3e06b8e6b77e37d2969a50ba51281029a9aeb3855e76b7f49b6418847" +checksum = "29cbbd772edcb8e7d524a82ee8cef8dd046fc14033796a754c3ad246d019fa54" dependencies = [ "leb128", + "wasmparser 0.219.1", ] [[package]] @@ -2851,9 +2833,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.215.0" +version = "0.219.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fbde0881f24199b81cf49b6ff8f9c145ac8eb1b7fc439adb5c099734f7d90e" +checksum = "5c771866898879073c53b565a6c7b49953795159836714ac56a5befb581227c5" dependencies = [ "ahash", "bitflags", @@ -2884,20 +2866,20 @@ dependencies = [ [[package]] name = "wasmprinter" -version = "0.215.0" +version = "0.219.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e9a325d85053408209b3d2ce5eaddd0dd6864d1cff7a007147ba073157defc" +checksum = "228cdc1f30c27816da225d239ce4231f28941147d34713dee8f1fff7cb330e54" dependencies = [ "anyhow", "termcolor", - "wasmparser 0.215.0", + "wasmparser 0.219.1", ] [[package]] name = "wasmtime" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e763074ccd6b251c78095fcd27707253b69cef961ea0a2ff76a8d246ddfadd1b" +checksum = "5b79302e3e084713249cc5622e8608e7410afdeeea8c8026d04f491d1fab0b4b" dependencies = [ "anyhow", "async-trait", @@ -2918,6 +2900,7 @@ dependencies = [ "paste", "postcard", "psm", + "pulley-interpreter", "rustix", "semver", "serde", @@ -2925,7 +2908,7 @@ dependencies = [ "smallvec", "sptr", "target-lexicon", - "wasmparser 0.215.0", + "wasmparser 0.219.1", "wasmtime-asm-macros", "wasmtime-component-macro", "wasmtime-component-util", @@ -2936,23 +2919,23 @@ dependencies = [ "wasmtime-slab", "wasmtime-versioned-export-macros", "wasmtime-winch", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "wasmtime-asm-macros" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f45004b6fa5d12dd95b427474e69bde05a6d31d33b39bd56054f9cd68e824283" +checksum = "fe53a24e7016a5222875d8ca3ad6024b464465985693c42098cd0bb710002c28" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-component-macro" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b72572d389586e429a9830ab68a5b3e2a567962b8a82f4249652ccc68ddab2" +checksum = "e118acbd2bc09b32ad8606bc7cef793bf5019c1b107772e64dc6c76b5055d40b" dependencies = [ "anyhow", "proc-macro2", @@ -2965,15 +2948,15 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3081af782040e8016373e603ee854496c82cdc0f32b13a6bc9700e15f582db" +checksum = "4a6db4f3ee18c699629eabb9c64e77efe5a93a5137f098db7cab295037ba41c2" [[package]] name = "wasmtime-cranelift" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42c18ca178eee0947cd53b27d3a101dd2f79afec86fc3ce657545519c6bf011a" +checksum = "8b87e6c78f562b50aff1afd87ff32a57e241424c846c1c8f3c5fd352d2d62906" dependencies = [ "anyhow", "cfg-if", @@ -2982,22 +2965,23 @@ dependencies = [ "cranelift-entity", "cranelift-frontend", "cranelift-native", - "cranelift-wasm", "gimli", + "itertools 0.12.1", "log", "object", + "smallvec", "target-lexicon", "thiserror", - "wasmparser 0.215.0", + "wasmparser 0.219.1", "wasmtime-environ", "wasmtime-versioned-export-macros", ] [[package]] name = "wasmtime-environ" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e80da0784d4dd0788479ce390cd4a54a893d24f2937d4046145704777aa7a131" +checksum = "c25bfeaa16432d59a0706e2463d315ef4c9ebcfaf5605670b99d46373bdf9f27" dependencies = [ "anyhow", "cranelift-bitset", @@ -3010,19 +2994,19 @@ dependencies = [ "semver", "serde", "serde_derive", + "smallvec", "target-lexicon", - "wasm-encoder 0.215.0", - "wasmparser 0.215.0", + "wasm-encoder 0.219.1", + "wasmparser 0.219.1", "wasmprinter", "wasmtime-component-util", - "wasmtime-types", ] [[package]] name = "wasmtime-fiber" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c3d366194ff87b8aeeb7348bb789d5dd9a9aca18b340b19dcf4ab96966e663" +checksum = "759ab0caa3821a6211743fe1eed448ab9df439e3af6c60dea15486c055611806" dependencies = [ "anyhow", "cc", @@ -3030,46 +3014,32 @@ dependencies = [ "rustix", "wasmtime-asm-macros", "wasmtime-versioned-export-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c543f7ee7b1ec8f2215f88197a40f9fa3452dc98c5902c5c700d8ec9e9ea7021" +checksum = "91b218a92866f74f35162f5d03a4e0f62cd0e1cc624285b1014275e5d4575fad" dependencies = [ "anyhow", "cfg-if", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "wasmtime-slab" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf7ded4156c76cc1cb348e5728096087e2c432714d1b285044c6da6a1e3d01a" - -[[package]] -name = "wasmtime-types" -version = "24.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92a6f3c2a8704a60ae0278ea2635c986539539ce1b80080b0fe8ea7bc83da81" -dependencies = [ - "anyhow", - "cranelift-entity", - "serde", - "serde_derive", - "smallvec", - "wasmparser 0.215.0", -] +checksum = "4d5f8acf677ee6b3b8ba400dd9753ea4769e56a95c4b30b045ac6d2d54b2f8ea" [[package]] name = "wasmtime-versioned-export-macros" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6e2f847c118d5b26f0cc01d12a6d72fa450e32c42a4a3ce5d33afb4729ed6a" +checksum = "df09be00c38f49172ca9936998938476e3f2df782673a39ae2ef9fb0838341b6" dependencies = [ "proc-macro2", "quote", @@ -3078,16 +3048,16 @@ dependencies = [ [[package]] name = "wasmtime-winch" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3640cd34c67f505e88cef0da11368806204a24c68c35d671a48a59bb37f908" +checksum = "89d6b5297bea14d8387c3974b2b011de628cc9b188f135cec752b74fd368964b" dependencies = [ "anyhow", "cranelift-codegen", "gimli", "object", "target-lexicon", - "wasmparser 0.215.0", + "wasmparser 0.219.1", "wasmtime-cranelift", "wasmtime-environ", "winch-codegen", @@ -3095,12 +3065,12 @@ dependencies = [ [[package]] name = "wasmtime-wit-bindgen" -version = "24.0.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58b085b2d330e5057dddd31f3ca527569b90fcdd35f6d373420c304927a5190" +checksum = "bf3963c9c29df91564d8bd181eb00d0dbaeafa1b2a01e15952bb7391166b704e" dependencies = [ "anyhow", - "heck 0.4.1", + "heck", "indexmap", "wit-parser", ] @@ -3148,9 +3118,9 @@ dependencies = [ [[package]] name = "winch-codegen" -version = "0.22.2" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46d7fecc199486f048bb2d649dce68bf28712ae1183dd54fd4a0534989517b24" +checksum = "8b42b678c8651ec4900d7600037d235429fc985c31cbc33515885ec0d2a9e158" dependencies = [ "anyhow", "cranelift-codegen", @@ -3158,7 +3128,7 @@ dependencies = [ "regalloc2", "smallvec", "target-lexicon", - "wasmparser 0.215.0", + "wasmparser 0.219.1", "wasmtime-cranelift", "wasmtime-environ", ] @@ -3313,9 +3283,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "wit-parser" -version = "0.215.0" +version = "0.219.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "935a97eaffd57c3b413aa510f8f0b550a4a9fe7d59e79cd8b89a83dcb860321f" +checksum = "4a86f669283257e8e424b9a4fc3518e3ade0b95deb9fbc0f93a1876be3eda598" dependencies = [ "anyhow", "id-arena", @@ -3326,7 +3296,7 @@ dependencies = [ "serde_derive", "serde_json", "unicode-xid", - "wasmparser 0.215.0", + "wasmparser 0.219.1", ] [[package]] diff --git a/lib/Cargo.toml b/lib/Cargo.toml index e321b3e8c2..34fa19b180 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -95,7 +95,7 @@ soketto = { version = "0.8.0", optional = true } [target.'cfg(any(all(target_arch = "x86_64", any(target_os = "windows", all(target_os = "linux", target_env = "gnu"), target_os = "macos")), all(target_arch = "aarch64", target_os = "linux", target_env = "gnu"), all(target_arch = "s390x", target_os = "linux", target_env = "gnu")))'.dependencies] # `wasmtime` feature # Note that we have to enable more features than needed just in order to disable them, as wasmtime does trickeries such as -wasmtime = { version = "24.0.0", default-features = false, features = ["async", "cranelift", "gc", "component-model", "threads"], optional = true } +wasmtime = { version = "27.0.0", default-features = false, features = ["async", "cranelift", "gc", "gc-null", "component-model", "threads"], optional = true } [dev-dependencies] criterion = "0.5.1" diff --git a/lib/src/executor/vm/jit.rs b/lib/src/executor/vm/jit.rs index cec70120e6..550e414e39 100644 --- a/lib/src/executor/vm/jit.rs +++ b/lib/src/executor/vm/jit.rs @@ -86,6 +86,8 @@ impl JitPrototype { config.wasm_memory64(false); config.wasm_tail_call(false); config.wasm_component_model(false); + config.wasm_wide_arithmetic(false); + config.wasm_extended_const(false); let engine = wasmtime::Engine::new(&config).map_err(|err| NewErr::InvalidWasm(err.to_string()))?;