Browse Source

Update wasm-tools family of crates (#7267)

Some notable changes here are:

* The `wasm-tools` crates have enabled the `relaxed-simd`, `threads`,
  and `multi-memory` proposals by default. For now I've left these
  disabled-by-default in Wasmtime to get enabled in a future PR.

* The `wast` crate has support for parsing `thread` and `wait`
  constructs from the `threads` proposal for WebAssembly. They're left
  unimplemented for now and return errors. This will get filled in in a
  future update.
pull/7290/head
Alex Crichton 1 year ago
committed by GitHub
parent
commit
b5b49e0796
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 162
      Cargo.lock
  2. 18
      Cargo.toml
  3. 4
      crates/wasmtime/src/config.rs
  4. 4
      crates/wast/src/wast.rs
  5. 6
      supply-chain/audits.toml
  6. 70
      supply-chain/imports.lock

162
Cargo.lock

@ -650,7 +650,7 @@ dependencies = [
"target-lexicon",
"thiserror",
"toml",
"wasmparser",
"wasmparser 0.115.0",
"wat",
]
@ -829,7 +829,7 @@ dependencies = [
"serde_derive",
"smallvec",
"target-lexicon",
"wasmparser",
"wasmparser 0.115.0",
"wasmtime-types",
"wat",
]
@ -2680,7 +2680,7 @@ version = "0.0.0"
dependencies = [
"cargo_metadata",
"heck",
"wit-component",
"wit-component 0.15.0",
]
[[package]]
@ -2977,7 +2977,7 @@ name = "verify-component-adapter"
version = "15.0.0"
dependencies = [
"anyhow",
"wasmparser",
"wasmparser 0.115.0",
"wat",
]
@ -3075,7 +3075,7 @@ dependencies = [
"byte-array-literals",
"object",
"wasi",
"wasm-encoder",
"wasm-encoder 0.35.0",
"wit-bindgen",
]
@ -3159,47 +3159,57 @@ dependencies = [
"leb128",
]
[[package]]
name = "wasm-encoder"
version = "0.35.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ca90ba1b5b0a70d3d49473c5579951f3bddc78d47b59256d2f9d4922b150aca"
dependencies = [
"leb128",
]
[[package]]
name = "wasm-metadata"
version = "0.10.6"
version = "0.10.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "577508d8a45bc54ad97efe77c95ba57bb10e7e5c5bac9c31295ce88b8045cd7d"
checksum = "14abc161bfda5b519aa229758b68f2a52b45a12b993808665c857d1a9a00223c"
dependencies = [
"anyhow",
"indexmap 2.0.0",
"serde",
"serde_derive",
"serde_json",
"spdx",
"wasm-encoder",
"wasmparser",
"wasm-encoder 0.35.0",
"wasmparser 0.115.0",
]
[[package]]
name = "wasm-mutate"
version = "0.2.35"
version = "0.2.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f22ff62504d0e55a4e4c32cdf4e65f9c925ba0bc9904e141394eb2ad2b8f319d"
checksum = "7b1e04b0c049b0a0c42dd108a56c5c92500076747363d3bf1e83e7f0f8b4dfe4"
dependencies = [
"egg",
"log",
"rand",
"thiserror",
"wasm-encoder",
"wasmparser",
"wasm-encoder 0.35.0",
"wasmparser 0.115.0",
]
[[package]]
name = "wasm-smith"
version = "0.12.18"
version = "0.12.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7499466e905b4e8d0cc1720c1bfddf1e5040f6fa42efd4f43edd1b88dbe9ce9b"
checksum = "fef779c243bbf04d9f03333c2cb50b98047c6dcc2a1db0cc7d0691e4135064b4"
dependencies = [
"arbitrary",
"flagset",
"indexmap 2.0.0",
"leb128",
"wasm-encoder",
"wasmparser",
"wasm-encoder 0.35.0",
"wasmparser 0.115.0",
]
[[package]]
@ -3250,6 +3260,16 @@ dependencies = [
"semver",
]
[[package]]
name = "wasmparser"
version = "0.115.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e06c0641a4add879ba71ccb3a1e4278fd546f76f1eafb21d8f7b07733b547cd5"
dependencies = [
"indexmap 2.0.0",
"semver",
]
[[package]]
name = "wasmparser-nostd"
version = "0.91.0"
@ -3261,12 +3281,12 @@ dependencies = [
[[package]]
name = "wasmprinter"
version = "0.2.67"
version = "0.2.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6615a5587149e753bf4b93f90fa3c3f41c88597a7a2da72879afcabeda9648f"
checksum = "e74458a9bc5cc9c7108abfa0fe4dc88d5abf1f3baf194df3264985f17d559b5e"
dependencies = [
"anyhow",
"wasmparser",
"wasmparser 0.115.0",
]
[[package]]
@ -3294,8 +3314,8 @@ dependencies = [
"target-lexicon",
"tempfile",
"wasi-cap-std-sync",
"wasm-encoder",
"wasmparser",
"wasm-encoder 0.35.0",
"wasmparser 0.115.0",
"wasmtime-cache",
"wasmtime-component-macro",
"wasmtime-component-util",
@ -3413,8 +3433,8 @@ dependencies = [
"test-programs-artifacts",
"tokio",
"walkdir",
"wasm-encoder",
"wasmparser",
"wasm-encoder 0.35.0",
"wasmparser 0.115.0",
"wasmtime",
"wasmtime-cache",
"wasmtime-cli-flags",
@ -3428,7 +3448,7 @@ dependencies = [
"wasmtime-wasi-nn",
"wasmtime-wasi-threads",
"wasmtime-wast",
"wast 65.0.2",
"wast 66.0.2",
"wat",
"windows-sys",
]
@ -3459,7 +3479,7 @@ dependencies = [
"wasmtime",
"wasmtime-component-util",
"wasmtime-wit-bindgen",
"wit-parser",
"wit-parser 0.12.0",
]
[[package]]
@ -3483,7 +3503,7 @@ dependencies = [
"object",
"target-lexicon",
"thiserror",
"wasmparser",
"wasmparser 0.115.0",
"wasmtime-cranelift-shared",
"wasmtime-environ",
"wasmtime-versioned-export-macros",
@ -3519,8 +3539,8 @@ dependencies = [
"serde_derive",
"target-lexicon",
"thiserror",
"wasm-encoder",
"wasmparser",
"wasm-encoder 0.35.0",
"wasmparser 0.115.0",
"wasmprinter",
"wasmtime-component-util",
"wasmtime-types",
@ -3535,7 +3555,7 @@ dependencies = [
"component-fuzz-util",
"env_logger 0.10.0",
"libfuzzer-sys",
"wasmparser",
"wasmparser 0.115.0",
"wasmprinter",
"wasmtime-environ",
"wat",
@ -3592,7 +3612,7 @@ dependencies = [
"rand",
"smallvec",
"target-lexicon",
"wasmparser",
"wasmparser 0.115.0",
"wasmtime",
"wasmtime-fuzzing",
]
@ -3612,12 +3632,12 @@ dependencies = [
"target-lexicon",
"tempfile",
"v8",
"wasm-encoder",
"wasm-encoder 0.35.0",
"wasm-mutate",
"wasm-smith",
"wasm-spec-interpreter",
"wasmi",
"wasmparser",
"wasmparser 0.115.0",
"wasmprinter",
"wasmtime",
"wasmtime-wast",
@ -3688,7 +3708,7 @@ dependencies = [
"rand",
"rustix 0.38.8",
"sptr",
"wasm-encoder",
"wasm-encoder 0.35.0",
"wasmtime-asm-macros",
"wasmtime-environ",
"wasmtime-fiber",
@ -3706,7 +3726,7 @@ dependencies = [
"serde",
"serde_derive",
"thiserror",
"wasmparser",
"wasmparser 0.115.0",
]
[[package]]
@ -3812,7 +3832,7 @@ dependencies = [
"anyhow",
"log",
"wasmtime",
"wast 65.0.2",
"wast 66.0.2",
]
[[package]]
@ -3824,7 +3844,7 @@ dependencies = [
"gimli",
"object",
"target-lexicon",
"wasmparser",
"wasmparser 0.115.0",
"wasmtime-cranelift-shared",
"wasmtime-environ",
"winch-codegen",
@ -3837,7 +3857,7 @@ dependencies = [
"anyhow",
"heck",
"indexmap 2.0.0",
"wit-parser",
"wit-parser 0.12.0",
]
[[package]]
@ -3855,23 +3875,23 @@ dependencies = [
[[package]]
name = "wast"
version = "65.0.2"
version = "66.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a55a88724cf8c2c0ebbf32c8e8f4ac0d6aa7ba6d73a1cfd94b254aa8f894317e"
checksum = "93cb43b0ac6dd156f2c375735ccfd72b012a7c0a6e6d09503499b8d3cb6e6072"
dependencies = [
"leb128",
"memchr",
"unicode-width",
"wasm-encoder",
"wasm-encoder 0.35.0",
]
[[package]]
name = "wat"
version = "1.0.74"
version = "1.0.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d83e1a8d86d008adc7bafa5cf4332d448699a08fcf2a715a71fbb75e2c5ca188"
checksum = "e367582095d2903caeeea9acbb140e1db9c7677001efa4347c3687fd34fe7072"
dependencies = [
"wast 65.0.2",
"wast 66.0.2",
]
[[package]]
@ -3996,7 +4016,7 @@ dependencies = [
"regalloc2",
"smallvec",
"target-lexicon",
"wasmparser",
"wasmparser 0.115.0",
"wasmtime-environ",
]
@ -4041,7 +4061,7 @@ dependencies = [
"similar",
"target-lexicon",
"toml",
"wasmparser",
"wasmparser 0.115.0",
"wasmtime-environ",
"wat",
"winch-codegen",
@ -4142,8 +4162,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f0371c47784e7559efb422f74473e395b49f7101725584e2673657e0b4fc104"
dependencies = [
"anyhow",
"wit-component",
"wit-parser",
"wit-component 0.14.4",
"wit-parser 0.11.3",
]
[[package]]
@ -4157,7 +4177,7 @@ dependencies = [
"wasm-metadata",
"wit-bindgen-core",
"wit-bindgen-rust-lib",
"wit-component",
"wit-component 0.14.4",
]
[[package]]
@ -4182,7 +4202,7 @@ dependencies = [
"wit-bindgen-core",
"wit-bindgen-rust",
"wit-bindgen-rust-lib",
"wit-component",
"wit-component 0.14.4",
]
[[package]]
@ -4197,10 +4217,29 @@ dependencies = [
"log",
"serde",
"serde_json",
"wasm-encoder",
"wasm-encoder 0.33.2",
"wasm-metadata",
"wasmparser",
"wit-parser",
"wasmparser 0.113.2",
"wit-parser 0.11.3",
]
[[package]]
name = "wit-component"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1bc644bb4205a2ee74035e5d35958777575fa4c6dd38ce7226c7680be2861c1"
dependencies = [
"anyhow",
"bitflags 2.3.3",
"indexmap 2.0.0",
"log",
"serde",
"serde_derive",
"serde_json",
"wasm-encoder 0.35.0",
"wasm-metadata",
"wasmparser 0.115.0",
"wit-parser 0.12.0",
]
[[package]]
@ -4221,6 +4260,23 @@ dependencies = [
"url",
]
[[package]]
name = "wit-parser"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d08c9557c65c428ac18a3cce80bf2527dbec24ab06639642c7db73f2c7613f93"
dependencies = [
"anyhow",
"id-arena",
"indexmap 2.0.0",
"log",
"semver",
"serde",
"serde_derive",
"serde_json",
"unicode-xid",
]
[[package]]
name = "witx"
version = "0.9.1"

18
Cargo.toml

@ -210,15 +210,15 @@ is-terminal = "0.4.0"
wit-bindgen = { version = "0.12.0", default-features = false }
# wasm-tools family:
wasmparser = "0.113.2"
wat = "1.0.74"
wast = "65.0.2"
wasmprinter = "0.2.67"
wasm-encoder = "0.33.2"
wasm-smith = "0.12.18"
wasm-mutate = "0.2.35"
wit-parser = "0.11.3"
wit-component = "0.14.4"
wasmparser = "0.115.0"
wat = "1.0.77"
wast = "66.0.2"
wasmprinter = "0.2.70"
wasm-encoder = "0.35.0"
wasm-smith = "0.12.21"
wasm-mutate = "0.2.38"
wit-parser = "0.12.0"
wit-component = "0.15.0"
# Non-Bytecode Alliance maintained dependencies:
# --------------------------

4
crates/wasmtime/src/config.rs

@ -230,6 +230,10 @@ impl Config {
ret.wasm_simd(true);
ret.wasm_backtrace_details(WasmBacktraceDetails::Environment);
ret.wasm_relaxed_simd(false);
ret.wasm_threads(false);
ret.wasm_multi_memory(false);
// This is on-by-default in `wasmparser` since it's a stage 4+ proposal
// but it's not implemented in Wasmtime yet so disable it.
ret.features.tail_call = false;

4
crates/wast/src/wast.rs

@ -465,6 +465,10 @@ impl<T> WastContext<T> {
}
}
AssertException { .. } => bail!("unimplemented assert_exception"),
Thread(_) => bail!("unimplemented `thread`"),
Wait { .. } => bail!("unimplemented `wait`"),
}
Ok(())

6
supply-chain/audits.toml

@ -3386,3 +3386,9 @@ criteria = "safe-to-deploy"
user-id = 6825 # Dan Gohman (sunfishcode)
start = "2019-08-20"
end = "2024-07-14"
[[trusted.wit-parser]]
criteria = "safe-to-deploy"
user-id = 696 # Nick Fitzgerald (fitzgen)
start = "2023-10-12"
end = "2024-10-17"

70
supply-chain/imports.lock

@ -831,6 +831,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasm-encoder]]
version = "0.35.0"
when = "2023-10-14"
user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasm-metadata]]
version = "0.10.6"
when = "2023-09-26"
@ -838,6 +845,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasm-metadata]]
version = "0.10.9"
when = "2023-10-14"
user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasm-mutate]]
version = "0.2.35"
when = "2023-09-26"
@ -845,6 +859,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasm-mutate]]
version = "0.2.38"
when = "2023-10-14"
user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasm-smith]]
version = "0.12.18"
when = "2023-09-26"
@ -852,6 +873,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasm-smith]]
version = "0.12.21"
when = "2023-10-14"
user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasmparser]]
version = "0.113.2"
when = "2023-09-26"
@ -859,6 +887,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasmparser]]
version = "0.115.0"
when = "2023-10-14"
user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasmprinter]]
version = "0.2.67"
when = "2023-09-26"
@ -866,6 +901,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasmprinter]]
version = "0.2.70"
when = "2023-10-14"
user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wasmtime]]
version = "13.0.0"
when = "2023-09-20"
@ -1017,6 +1059,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wast]]
version = "66.0.2"
when = "2023-10-14"
user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wat]]
version = "1.0.74"
when = "2023-09-26"
@ -1024,6 +1073,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wat]]
version = "1.0.77"
when = "2023-10-14"
user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wiggle]]
version = "13.0.0"
when = "2023-09-20"
@ -1174,6 +1230,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wit-component]]
version = "0.15.0"
when = "2023-10-14"
user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wit-parser]]
version = "0.11.3"
when = "2023-09-27"
@ -1181,6 +1244,13 @@ user-id = 1
user-login = "alexcrichton"
user-name = "Alex Crichton"
[[publisher.wit-parser]]
version = "0.12.0"
when = "2023-10-12"
user-id = 696
user-login = "fitzgen"
user-name = "Nick Fitzgerald"
[[audits.embark-studios.wildcard-audits.spdx]]
who = "Jake Shadle <opensource@embark-studios.com>"
criteria = "safe-to-deploy"

Loading…
Cancel
Save