diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 9a3dfc56f..b24a907ed 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -102,6 +102,11 @@ jobs:
with:
toolchain: 1.64
target: ${{ matrix.target }}
+ - name: Install Rust nightly (to build capi-headless)
+ uses: dtolnay/rust-toolchain@stable
+ with:
+ toolchain: nightly
+ target: ${{ matrix.metadata.target }}
- uses: Swatinem/rust-cache@v1
if: matrix.use_sccache != true
- name: Install LLVM (macOS Apple Silicon)
@@ -273,6 +278,11 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
with:
target: x86_64-pc-windows-gnu
+ - name: Install Rust nightly (to build capi-headless)
+ uses: dtolnay/rust-toolchain@stable
+ with:
+ toolchain: nightly
+ target: x86_64-pc-windows-gnu
- name: Install Windows-GNU target
shell: bash
run: |
@@ -301,9 +311,19 @@ jobs:
- name: Build Wasmer C-API without LLVM
shell: bash
run: |
- cargo build --release --target x86_64-pc-windows-gnu --manifest-path lib/c-api/Cargo.toml --no-default-features --features wat,compiler,wasi,middlewares,webc_runner --features cranelift,singlepass,wasmer-artifact-create,static-artifact-create,wasmer-artifact-load,static-artifact-load
+ make build-capi
env:
RUSTFLAGS: -Cpanic=abort
+ CARGO_TARGET: x86_64-pc-windows-gnu
+ ENABLE_LLVM: 0
+ - name: Build Wasmer C-API headless without LLVM
+ shell: bash
+ run: |
+ make build-capi-headless
+ env:
+ RUSTFLAGS: -Cpanic=abort
+ CARGO_TARGET: x86_64-pc-windows-gnu
+ ENABLE_LLVM: 0
- name: Dist
run: |
make distribution-gnu
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index b8e25e5f4..87a339e19 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -263,6 +263,11 @@ jobs:
with:
toolchain: 1.64
target: ${{ matrix.metadata.target }}
+ - name: Install Rust nightly (to build capi-headless)
+ uses: dtolnay/rust-toolchain@stable
+ with:
+ toolchain: nightly
+ target: ${{ matrix.metadata.target }}
- name: Install Windows-GNU linker
if: ${{ matrix.metadata.build == 'windows-gnu' }}
shell: bash
diff --git a/Cargo.lock b/Cargo.lock
index 1d6758b5f..67cbc7510 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4,11 +4,11 @@ version = 3
[[package]]
name = "addr2line"
-version = "0.17.0"
+version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"
+checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
dependencies = [
- "gimli",
+ "gimli 0.27.1",
]
[[package]]
@@ -63,15 +63,15 @@ checksum = "70033777eb8b5124a81a1889416543dddef2de240019b674c81285a2635a7e1e"
[[package]]
name = "anyhow"
-version = "1.0.66"
+version = "1.0.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
+checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"
[[package]]
name = "arbitrary"
-version = "1.2.0"
+version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29d47fbf90d5149a107494b15a7dc8d69b351be2db3bb9691740e88ec17fd880"
+checksum = "b0224938f92e7aef515fac2ff2d18bd1115c1394ddf4a092e0c87e8be9499ee5"
dependencies = [
"derive_arbitrary",
]
@@ -116,9 +116,9 @@ dependencies = [
[[package]]
name = "async-trait"
-version = "0.1.59"
+version = "0.1.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364"
+checksum = "eff18d764974428cf3a9328e23fc5c986f5fbed46e6cd4cdf42544df5d297ec1"
dependencies = [
"proc-macro2",
"quote",
@@ -131,7 +131,7 @@ version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.19",
"libc",
"winapi",
]
@@ -144,16 +144,16 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "backtrace"
-version = "0.3.66"
+version = "0.3.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7"
+checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
dependencies = [
"addr2line",
"cc",
"cfg-if 1.0.0",
"libc",
- "miniz_oxide 0.5.4",
- "object 0.29.0",
+ "miniz_oxide",
+ "object 0.30.3",
"rustc-demangle",
]
@@ -169,6 +169,12 @@ version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+[[package]]
+name = "base64"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+
[[package]]
name = "bincode"
version = "1.3.3"
@@ -236,9 +242,9 @@ checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7"
[[package]]
name = "bumpalo"
-version = "3.11.1"
+version = "3.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
[[package]]
name = "bytecheck"
@@ -281,9 +287,9 @@ checksum = "6c58ec36aac5066d5ca17df51b3e70279f5670a72102f5752cb7e7c856adfc70"
[[package]]
name = "camino"
-version = "1.1.1"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e"
+checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055"
dependencies = [
"serde",
]
@@ -305,7 +311,7 @@ checksum = "982a0cf6a99c350d7246035613882e376d58cebe571785abc5da4f648d53ac0a"
dependencies = [
"camino",
"cargo-platform",
- "semver 1.0.14",
+ "semver 1.0.16",
"serde",
"serde_json",
"thiserror",
@@ -338,9 +344,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.0.77"
+version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
+checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
dependencies = [
"jobserver",
]
@@ -520,16 +526,15 @@ dependencies = [
[[package]]
name = "console"
-version = "0.15.2"
+version = "0.15.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c"
+checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60"
dependencies = [
"encode_unicode 0.3.6",
"lazy_static",
"libc",
- "terminal_size",
"unicode-width",
- "winapi",
+ "windows-sys 0.42.0",
]
[[package]]
@@ -590,26 +595,29 @@ dependencies = [
[[package]]
name = "cranelift-bforest"
-version = "0.86.1"
+version = "0.91.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "529ffacce2249ac60edba2941672dfedf3d96558b415d0d8083cd007456e0f55"
+checksum = "fc952b310b24444fc14ab8b9cbe3fafd7e7329e3eec84c3a9b11d2b5cf6f3be1"
dependencies = [
"cranelift-entity",
]
[[package]]
name = "cranelift-codegen"
-version = "0.86.1"
+version = "0.91.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427d105f617efc8cb55f8d036a7fded2e227892d8780b4985e5551f8d27c4a92"
+checksum = "e73470419b33011e50dbf0f6439cbccbaabe9381de172da4e1b6efcda4bb8fa7"
dependencies = [
+ "arrayvec 0.7.2",
+ "bumpalo",
"cranelift-bforest",
"cranelift-codegen-meta",
"cranelift-codegen-shared",
+ "cranelift-egraph",
"cranelift-entity",
"cranelift-isle",
- "gimli",
- "hashbrown 0.11.2",
+ "gimli 0.26.2",
+ "hashbrown 0.12.3",
"log",
"regalloc2",
"smallvec",
@@ -618,33 +626,47 @@ dependencies = [
[[package]]
name = "cranelift-codegen-meta"
-version = "0.86.1"
+version = "0.91.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "551674bed85b838d45358e3eab4f0ffaa6790c70dc08184204b9a54b41cdb7d1"
+checksum = "911a1872464108a11ac9965c2b079e61bbdf1bc2e0b9001264264add2e12a38f"
dependencies = [
"cranelift-codegen-shared",
]
[[package]]
name = "cranelift-codegen-shared"
-version = "0.86.1"
+version = "0.91.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b3a63ae57498c3eb495360944a33571754241e15e47e3bcae6082f40fec5866"
+checksum = "e036f3f07adb24a86fb46e977e8fe03b18bb16b1eada949cf2c48283e5f8a862"
+
+[[package]]
+name = "cranelift-egraph"
+version = "0.91.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d6c623f4b5d2a6bad32c403f03765d4484a827eb93ee78f8cb6219ef118fd59"
+dependencies = [
+ "cranelift-entity",
+ "fxhash",
+ "hashbrown 0.12.3",
+ "indexmap",
+ "log",
+ "smallvec",
+]
[[package]]
name = "cranelift-entity"
-version = "0.86.1"
+version = "0.91.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11aa8aa624c72cc1c94ea3d0739fa61248260b5b14d3646f51593a88d67f3e6e"
+checksum = "74385eb5e405b3562f0caa7bcc4ab9a93c7958dd5bcd0e910bffb7765eacd6fc"
[[package]]
name = "cranelift-frontend"
-version = "0.86.1"
+version = "0.91.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "544ee8f4d1c9559c9aa6d46e7aaeac4a13856d620561094f35527356c7d21bd0"
+checksum = "8a4ac920422ee36bff2c66257fec861765e3d95a125cdf58d8c0f3bba7e40e61"
dependencies = [
"cranelift-codegen",
- "hashbrown 0.11.2",
+ "hashbrown 0.12.3",
"log",
"smallvec",
"target-lexicon 0.12.5",
@@ -652,9 +674,9 @@ dependencies = [
[[package]]
name = "cranelift-isle"
-version = "0.86.1"
+version = "0.91.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed16b14363d929b8c37e3c557d0a7396791b383ecc302141643c054343170aad"
+checksum = "c541263fb37ad2baa53ec8c37218ee5d02fa0984670d9419dedd8002ea68ff08"
[[package]]
name = "crc"
@@ -803,9 +825,9 @@ checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
[[package]]
name = "cxx"
-version = "1.0.83"
+version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf"
+checksum = "b61a7545f753a88bcbe0a70de1fcc0221e10bfc752f576754fa91e663db1622e"
dependencies = [
"cc",
"cxxbridge-flags",
@@ -815,9 +837,9 @@ dependencies = [
[[package]]
name = "cxx-build"
-version = "1.0.83"
+version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2eb5b96ecdc99f72657332953d4d9c50135af1bac34277801cc3937906ebd39"
+checksum = "f464457d494b5ed6905c63b0c4704842aba319084a0a3561cdc1359536b53200"
dependencies = [
"cc",
"codespan-reporting",
@@ -830,15 +852,15 @@ dependencies = [
[[package]]
name = "cxxbridge-flags"
-version = "1.0.83"
+version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12"
+checksum = "43c7119ce3a3701ed81aca8410b9acf6fc399d2629d057b87e2efa4e63a3aaea"
[[package]]
name = "cxxbridge-macro"
-version = "1.0.83"
+version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6"
+checksum = "65e07508b90551e610910fa648a1878991d367064997a596135b86df30daf07e"
dependencies = [
"proc-macro2",
"quote",
@@ -892,9 +914,9 @@ dependencies = [
[[package]]
name = "derive_arbitrary"
-version = "1.2.1"
+version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8a16495aeb28047bb1185fca837baf755e7d71ed3aeed7f8504654ffa927208"
+checksum = "cf460bbff5f571bfc762da5102729f59f338be7db17a21fade44c5c4f5005350"
dependencies = [
"proc-macro2",
"quote",
@@ -903,11 +925,12 @@ dependencies = [
[[package]]
name = "dialoguer"
-version = "0.10.2"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a92e7e37ecef6857fdc0c0c5d42fd5b0938e46590c2183cc92dd310a6d078eb1"
+checksum = "af3c796f3b0b408d9fd581611b47fa850821fcb84aa640b83a3c1a5be2d691f2"
dependencies = [
"console",
+ "shell-words",
"tempfile",
"zeroize",
]
@@ -1105,9 +1128,9 @@ dependencies = [
[[package]]
name = "erased-serde"
-version = "0.3.23"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54558e0ba96fbe24280072642eceb9d7d442e32c7ec0ea9e7ecd7b4ea2cf4e11"
+checksum = "e4ca605381c017ec7a5fef5e548f1cfaa419ed0f6df6367339300db74c92aa7d"
dependencies = [
"serde",
]
@@ -1172,7 +1195,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
dependencies = [
"crc32fast",
- "miniz_oxide 0.6.2",
+ "miniz_oxide",
]
[[package]]
@@ -1353,9 +1376,9 @@ dependencies = [
[[package]]
name = "ghost"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb19fe8de3ea0920d282f7b77dd4227aea6b8b999b42cdf0ca41b2472b14443a"
+checksum = "41973d4c45f7a35af8753ba3457cc99d406d863941fd7f52663cff54a5ab99b3"
dependencies = [
"proc-macro2",
"quote",
@@ -1374,10 +1397,16 @@ dependencies = [
]
[[package]]
-name = "glob"
-version = "0.3.0"
+name = "gimli"
+version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+checksum = "221996f774192f0f718773def8201c4ae31f02616a54ccfc2d358bb0e5cefdec"
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "graphql-introspection-query"
@@ -1533,6 +1562,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "hex"
version = "0.4.3"
@@ -1556,7 +1594,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
dependencies = [
"bytes",
"fnv",
- "itoa 1.0.4",
+ "itoa 1.0.5",
]
[[package]]
@@ -1609,7 +1647,7 @@ dependencies = [
"http-body",
"httparse",
"httpdate",
- "itoa 1.0.4",
+ "itoa 1.0.5",
"pin-project-lite",
"socket2",
"tokio",
@@ -1626,7 +1664,7 @@ checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c"
dependencies = [
"http",
"hyper",
- "rustls 0.20.7",
+ "rustls 0.20.8",
"tokio",
"tokio-rustls",
]
@@ -1701,9 +1739,9 @@ dependencies = [
[[package]]
name = "indicatif"
-version = "0.17.2"
+version = "0.17.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4295cbb7573c16d310e99e713cf9e75101eb190ab31fccd35f2d2691b4352b19"
+checksum = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729"
dependencies = [
"console",
"number_prefix",
@@ -1776,9 +1814,9 @@ dependencies = [
[[package]]
name = "insta"
-version = "1.24.1"
+version = "1.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb5686bd8e9239eabe90bb30a0c341bffd6fdc177fb556708f2cb792bf00352d"
+checksum = "f6f0f08b46e4379744de2ab67aa8f7de3ffd1da3e275adc41fcc82053ede46ff"
dependencies = [
"console",
"lazy_static",
@@ -1812,9 +1850,9 @@ dependencies = [
[[package]]
name = "ipnet"
-version = "2.7.0"
+version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e"
+checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
[[package]]
name = "isatty"
@@ -1845,9 +1883,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "itoa"
-version = "1.0.4"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
[[package]]
name = "jobserver"
@@ -1903,9 +1941,9 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.138"
+version = "0.2.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
[[package]]
name = "libfuzzer-sys"
@@ -1941,9 +1979,9 @@ dependencies = [
[[package]]
name = "link-cplusplus"
-version = "1.0.7"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
+checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
dependencies = [
"cc",
]
@@ -2050,9 +2088,9 @@ dependencies = [
[[package]]
name = "matches"
-version = "0.1.9"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
[[package]]
name = "md5"
@@ -2152,15 +2190,6 @@ dependencies = [
"scrypt",
]
-[[package]]
-name = "miniz_oxide"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
-dependencies = [
- "adler",
-]
-
[[package]]
name = "miniz_oxide"
version = "0.6.2"
@@ -2236,14 +2265,23 @@ dependencies = [
[[package]]
name = "nom"
-version = "7.1.1"
+version = "7.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
dependencies = [
"memchr",
"minimal-lexical",
]
+[[package]]
+name = "nom8"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "normalize-line-endings"
version = "0.3.0"
@@ -2287,28 +2325,28 @@ dependencies = [
[[package]]
name = "num_cpus"
-version = "1.14.0"
+version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
dependencies = [
- "hermit-abi",
+ "hermit-abi 0.2.6",
"libc",
]
[[package]]
name = "num_enum"
-version = "0.5.7"
+version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"
+checksum = "8d829733185c1ca374f17e52b762f24f535ec625d2cc1f070e34c8a9068f341b"
dependencies = [
"num_enum_derive",
]
[[package]]
name = "num_enum_derive"
-version = "0.5.7"
+version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
+checksum = "2be1598bf1c313dcdd12092e3f1920f463462525a21b7b4e11b4168353d0123e"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -2336,18 +2374,9 @@ dependencies = [
[[package]]
name = "object"
-version = "0.29.0"
+version = "0.30.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "object"
-version = "0.30.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239da7f290cfa979f43f85a8efeee9a8a76d0827c356d37f9d3d7254d6b537fb"
+checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
dependencies = [
"flate2",
"memchr",
@@ -2355,9 +2384,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.16.0"
+version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
[[package]]
name = "oorandom"
@@ -2415,9 +2444,9 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.8.5"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
+checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
dependencies = [
"cfg-if 1.0.0",
"instant",
@@ -2429,9 +2458,9 @@ dependencies = [
[[package]]
name = "paste"
-version = "1.0.9"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1"
+checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"
[[package]]
name = "path-clean"
@@ -2462,9 +2491,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
[[package]]
name = "pest"
-version = "2.5.1"
+version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0"
+checksum = "4257b4a04d91f7e9e6290be5d3da4804dd5784fafde3a497d73eb2b4a158c30a"
dependencies = [
"thiserror",
"ucd-trie",
@@ -2518,9 +2547,9 @@ dependencies = [
[[package]]
name = "portable-atomic"
-version = "0.3.16"
+version = "0.3.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac662b3a6490de378b0ee15cf2dfff7127aebfe0b19acc65e7fbca3d299c3788"
+checksum = "26f6a7b87c2e435a3241addceeeff740ff8b7e76b74c13bf9acb17fa454ea00b"
[[package]]
name = "ppv-lite86"
@@ -2530,9 +2559,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "predicates"
-version = "2.1.4"
+version = "2.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f54fc5dc63ed3bbf19494623db4f3af16842c0d975818e469022d09e53f0aa05"
+checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd"
dependencies = [
"difflib",
"float-cmp",
@@ -2586,13 +2615,12 @@ dependencies = [
[[package]]
name = "proc-macro-crate"
-version = "1.2.1"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9"
+checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34"
dependencies = [
"once_cell",
- "thiserror",
- "toml",
+ "toml_edit",
]
[[package]]
@@ -2621,15 +2649,15 @@ dependencies = [
[[package]]
name = "proc-macro-hack"
-version = "0.5.19"
+version = "0.5.20+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]]
name = "proc-macro2"
-version = "1.0.47"
+version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
dependencies = [
"unicode-ident",
]
@@ -2691,9 +2719,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.21"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
dependencies = [
"proc-macro2",
]
@@ -2787,9 +2815,9 @@ dependencies = [
[[package]]
name = "rayon-core"
-version = "1.10.1"
+version = "1.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3"
+checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b"
dependencies = [
"crossbeam-channel",
"crossbeam-deque",
@@ -2840,9 +2868,9 @@ checksum = "a0d51660a68078997855ba5602f73ab3a5031bd7ad480a9d4c90fbbf04e1fff0"
[[package]]
name = "regalloc2"
-version = "0.3.2"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d43a209257d978ef079f3d446331d0f1794f5e0fc19b306a199983857833a779"
+checksum = "300d4fbfb40c1c66a78ba3ddd41c1110247cf52f97b87d0f2fc9209bd49b030c"
dependencies = [
"fxhash",
"log",
@@ -2852,9 +2880,9 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.7.0"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
dependencies = [
"aho-corasick",
"memchr",
@@ -2908,11 +2936,11 @@ dependencies = [
[[package]]
name = "reqwest"
-version = "0.11.13"
+version = "0.11.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c"
+checksum = "21eed90ec8570952d53b772ecf8f206aa1ec9a3d76b2521c56c42973f2d91ee9"
dependencies = [
- "base64",
+ "base64 0.21.0",
"bytes",
"encoding_rs",
"futures-core",
@@ -2930,7 +2958,7 @@ dependencies = [
"once_cell",
"percent-encoding",
"pin-project-lite",
- "rustls 0.20.7",
+ "rustls 0.20.8",
"rustls-pemfile",
"serde",
"serde_json",
@@ -2942,6 +2970,7 @@ dependencies = [
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
+ "wasm-streams",
"web-sys",
"webpki-roots 0.22.6",
"winreg",
@@ -3053,7 +3082,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
- "semver 1.0.14",
+ "semver 1.0.16",
]
[[package]]
@@ -3074,7 +3103,7 @@ version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
dependencies = [
- "base64",
+ "base64 0.13.1",
"log",
"ring",
"sct 0.6.1",
@@ -3083,9 +3112,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.20.7"
+version = "0.20.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c"
+checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
dependencies = [
"log",
"ring",
@@ -3095,24 +3124,24 @@ dependencies = [
[[package]]
name = "rustls-pemfile"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55"
+checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
dependencies = [
- "base64",
+ "base64 0.21.0",
]
[[package]]
name = "rustversion"
-version = "1.0.9"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8"
+checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70"
[[package]]
name = "ryu"
-version = "1.0.11"
+version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
[[package]]
name = "salsa20"
@@ -3146,9 +3175,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "scratch"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
+checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
[[package]]
name = "scrypt"
@@ -3233,9 +3262,9 @@ dependencies = [
[[package]]
name = "semver"
-version = "1.0.14"
+version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
+checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
dependencies = [
"serde",
]
@@ -3257,9 +3286,9 @@ dependencies = [
[[package]]
name = "serde"
-version = "1.0.150"
+version = "1.0.152"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e326c9ec8042f1b5da33252c8a37e9ffbd2c9bef0155215b6e6c80c790e05f91"
+checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
dependencies = [
"serde_derive",
]
@@ -3277,9 +3306,9 @@ dependencies = [
[[package]]
name = "serde_bytes"
-version = "0.11.7"
+version = "0.11.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b"
+checksum = "718dc5fff5b36f99093fc49b280cfc96ce6fc824317783bff5a1fed0c7a64819"
dependencies = [
"serde",
]
@@ -3296,9 +3325,9 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.150"
+version = "1.0.152"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42a3df25b0713732468deadad63ab9da1f1fd75a48a15024b50363f128db627e"
+checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
dependencies = [
"proc-macro2",
"quote",
@@ -3307,11 +3336,11 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.89"
+version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"
+checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
dependencies = [
- "itoa 1.0.4",
+ "itoa 1.0.5",
"ryu",
"serde",
]
@@ -3323,7 +3352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
dependencies = [
"form_urlencoded",
- "itoa 1.0.4",
+ "itoa 1.0.5",
"ryu",
"serde",
]
@@ -3342,12 +3371,12 @@ dependencies = [
[[package]]
name = "serde_yaml"
-version = "0.9.14"
+version = "0.9.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d232d893b10de3eb7258ff01974d6ee20663d8e833263c99409d4b13a0209da"
+checksum = "8fb06d4b6cdaef0e0c51fa881acb721bed3c924cfaa71d9c94a3b771dfdf6567"
dependencies = [
"indexmap",
- "itoa 1.0.4",
+ "itoa 1.0.5",
"ryu",
"serde",
"unsafe-libyaml",
@@ -3410,6 +3439,12 @@ dependencies = [
"lazy_static",
]
+[[package]]
+name = "shell-words"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+
[[package]]
name = "shellexpand"
version = "2.1.2"
@@ -3589,9 +3624,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
-version = "1.0.105"
+version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
dependencies = [
"proc-macro2",
"quote",
@@ -3668,23 +3703,13 @@ dependencies = [
[[package]]
name = "termcolor"
-version = "1.1.3"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
dependencies = [
"winapi-util",
]
-[[package]]
-name = "terminal_size"
-version = "0.1.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
-dependencies = [
- "libc",
- "winapi",
-]
-
[[package]]
name = "termios"
version = "0.3.3"
@@ -3749,18 +3774,18 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
[[package]]
name = "thiserror"
-version = "1.0.37"
+version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.37"
+version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
dependencies = [
"proc-macro2",
"quote",
@@ -3797,7 +3822,7 @@ version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
dependencies = [
- "itoa 1.0.4",
+ "itoa 1.0.5",
"serde",
"time-core",
"time-macros 0.2.6",
@@ -3882,9 +3907,9 @@ dependencies = [
[[package]]
name = "tokio"
-version = "1.24.1"
+version = "1.24.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae"
+checksum = "597a12a59981d9e3c38d216785b0c37399f6e415e8d0712047620f189371b0bb"
dependencies = [
"autocfg",
"bytes",
@@ -3916,7 +3941,7 @@ version = "0.23.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
dependencies = [
- "rustls 0.20.7",
+ "rustls 0.20.8",
"tokio",
"webpki 0.22.0",
]
@@ -3937,13 +3962,30 @@ dependencies = [
[[package]]
name = "toml"
-version = "0.5.9"
+version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
"serde",
]
+[[package]]
+name = "toml_datetime"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5"
+
+[[package]]
+name = "toml_edit"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c59d8dd7d0dcbc6428bf7aa2f0e823e26e43b3c9aca15bbc9475d23e5fa12b"
+dependencies = [
+ "indexmap",
+ "nom8",
+ "toml_datetime",
+]
+
[[package]]
name = "tower-service"
version = "0.3.2"
@@ -4058,15 +4100,15 @@ dependencies = [
[[package]]
name = "try-lock"
-version = "0.2.3"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
[[package]]
name = "trybuild"
-version = "1.0.72"
+version = "1.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db29f438342820400f2d9acfec0d363e987a38b2950bdb50a7069ed17b2148ee"
+checksum = "6ed2c57956f91546d4d33614265a85d55c8e1ab91484853a10335894786d7db6"
dependencies = [
"glob",
"once_cell",
@@ -4124,15 +4166,15 @@ dependencies = [
[[package]]
name = "unicode-bidi"
-version = "0.3.8"
+version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58"
[[package]]
name = "unicode-ident"
-version = "1.0.5"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
[[package]]
name = "unicode-normalization"
@@ -4178,9 +4220,9 @@ dependencies = [
[[package]]
name = "unsafe-libyaml"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1e5fa573d8ac5f1a856f8d7be41d390ee973daf97c806b2c1a465e4e1406e68"
+checksum = "bc7ed8ba44ca06be78ea1ad2c3682a43349126c8818054231ee6f4748012aed2"
[[package]]
name = "untrusted"
@@ -4527,9 +4569,9 @@ dependencies = [
[[package]]
name = "wasm-encoder"
-version = "0.20.0"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05632e0a66a6ed8cca593c24223aabd6262f256c3693ad9822c315285f010614"
+checksum = "ef126be0e14bdf355ac1a8b41afc89195289e5c7179f80118e3abddb472f0810"
dependencies = [
"leb128",
]
@@ -4546,6 +4588,19 @@ dependencies = [
"wasm-encoder 0.4.1",
]
+[[package]]
+name = "wasm-streams"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
[[package]]
name = "wasmer"
version = "3.2.0-alpha.1"
@@ -4683,14 +4738,14 @@ dependencies = [
"log",
"minisign",
"nuke-dir",
- "object 0.30.0",
+ "object 0.30.3",
"pathdiff",
"prettytable-rs",
"regex",
"reqwest",
"rpassword",
"rusqlite",
- "semver 1.0.14",
+ "semver 1.0.16",
"serde",
"serde_json",
"sha2",
@@ -4782,7 +4837,7 @@ dependencies = [
"cranelift-codegen",
"cranelift-entity",
"cranelift-frontend",
- "gimli",
+ "gimli 0.26.2",
"hashbrown 0.11.2",
"lazy_static",
"more-asserts",
@@ -4808,7 +4863,7 @@ dependencies = [
"rayon",
"regex",
"rustc_version 0.4.0",
- "semver 1.0.14",
+ "semver 1.0.16",
"smallvec",
"target-lexicon 0.12.5",
"wasmer-compiler",
@@ -4824,7 +4879,7 @@ dependencies = [
"dynasm",
"dynasmrt",
"enumset",
- "gimli",
+ "gimli 0.26.2",
"hashbrown 0.11.2",
"lazy_static",
"more-asserts",
@@ -4898,7 +4953,7 @@ dependencies = [
"hex",
"insta",
"md5",
- "object 0.30.0",
+ "object 0.30.3",
"pretty_assertions",
"rand 0.8.5",
"serde",
@@ -4949,7 +5004,7 @@ dependencies = [
"rand 0.8.5",
"regex",
"reqwest",
- "semver 1.0.14",
+ "semver 1.0.16",
"serde",
"serde_json",
"tar",
@@ -4986,11 +5041,11 @@ checksum = "4232db0aff83ed6208d541ddcf1bf72730673528be8c4fe13c6369060f6e05a7"
dependencies = [
"anyhow",
"indexmap",
- "semver 1.0.14",
+ "semver 1.0.16",
"serde",
"serde_cbor",
"serde_json",
- "serde_yaml 0.9.14",
+ "serde_yaml 0.9.17",
"thiserror",
"toml",
]
@@ -5263,9 +5318,9 @@ checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a"
[[package]]
name = "wasmparser"
-version = "0.95.0"
+version = "0.98.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2ea896273ea99b15132414be1da01ab0d8836415083298ecaffbe308eaac87a"
+checksum = "8724c724dc595495979c055f4bd8b7ed9fab1069623178a28016ae43a9666f36"
dependencies = [
"indexmap",
"url",
@@ -5273,12 +5328,12 @@ dependencies = [
[[package]]
name = "wasmprinter"
-version = "0.2.44"
+version = "0.2.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae24500f9cc27a4b2b338e66693ff53c08b17cf920bdc81e402a09fe7a204eea"
+checksum = "322949f382cd5e4bad4330e144bf2124b3182846194ac01e2423c07a6a15ba85"
dependencies = [
"anyhow",
- "wasmparser 0.95.0",
+ "wasmparser 0.98.1",
]
[[package]]
@@ -5301,23 +5356,23 @@ dependencies = [
[[package]]
name = "wast"
-version = "50.0.0"
+version = "52.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2cbb59d4ac799842791fe7e806fa5dbbf6b5554d538e51cc8e176db6ff0ae34"
+checksum = "829fb867c8e82d21557a2c6c5b3ed8e8f7cdd534ea782b9ecf68bede5607fe4b"
dependencies = [
"leb128",
"memchr",
"unicode-width",
- "wasm-encoder 0.20.0",
+ "wasm-encoder 0.22.0",
]
[[package]]
name = "wat"
-version = "1.0.52"
+version = "1.0.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "584aaf7a1ecf4d383bbe1a25eeab0cbb8ff96acc6796707ff65cde48f4632f15"
+checksum = "3493e7c82d8e9a75e69ecbfe6f324ca1c4e2ae89f67ccbb22f92282e2e27bb23"
dependencies = [
- "wast 50.0.0",
+ "wast 52.0.1",
]
[[package]]
@@ -5410,7 +5465,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4af0f2f0b6bf2e4366375c3cd6635aef1a2eb66cd02454d79525aa7eecf0751"
dependencies = [
"anyhow",
- "base64",
+ "base64 0.13.1",
"byteorder",
"indexmap",
"leb128",
@@ -5473,11 +5528,10 @@ checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
[[package]]
name = "whoami"
-version = "1.2.3"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6631b6a2fd59b1841b622e8f1a7ad241ef0a46f2d580464ce8140ac94cbd571"
+checksum = "45dbc71f0cdca27dc261a9bd37ddec174e4a0af2b900b890f378460f745426e3"
dependencies = [
- "bumpalo",
"wasm-bindgen",
"web-sys",
]
@@ -5533,19 +5587,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
dependencies = [
"windows_aarch64_gnullvm",
- "windows_aarch64_msvc 0.42.0",
- "windows_i686_gnu 0.42.0",
- "windows_i686_msvc 0.42.0",
- "windows_x86_64_gnu 0.42.0",
+ "windows_aarch64_msvc 0.42.1",
+ "windows_i686_gnu 0.42.1",
+ "windows_i686_msvc 0.42.1",
+ "windows_x86_64_gnu 0.42.1",
"windows_x86_64_gnullvm",
- "windows_x86_64_msvc 0.42.0",
+ "windows_x86_64_msvc 0.42.1",
]
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
[[package]]
name = "windows_aarch64_msvc"
@@ -5555,9 +5609,9 @@ checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
[[package]]
name = "windows_i686_gnu"
@@ -5567,9 +5621,9 @@ checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e"
[[package]]
name = "windows_i686_gnu"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
[[package]]
name = "windows_i686_msvc"
@@ -5579,9 +5633,9 @@ checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0"
[[package]]
name = "windows_i686_msvc"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
[[package]]
name = "windows_x86_64_gnu"
@@ -5591,15 +5645,15 @@ checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
[[package]]
name = "windows_x86_64_msvc"
@@ -5609,9 +5663,9 @@ checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
+checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
[[package]]
name = "winreg"
@@ -5624,12 +5678,12 @@ dependencies = [
[[package]]
name = "x11-dl"
-version = "2.20.1"
+version = "2.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
dependencies = [
- "lazy_static",
"libc",
+ "once_cell",
"pkg-config",
]
@@ -5648,7 +5702,7 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7"
dependencies = [
- "nom 7.1.1",
+ "nom 7.1.3",
]
[[package]]
diff --git a/Makefile b/Makefile
index 5359df37a..03515a6e5 100644
--- a/Makefile
+++ b/Makefile
@@ -361,7 +361,7 @@ endif
# Not really "all", just the default target that builds enough so make
# install will go through.
-all: build-wasmer build-capi
+all: build-wasmer build-capi build-capi-headless
check: check-wasmer check-wasmer-wasm check-capi
@@ -565,10 +565,10 @@ test-wasi-unit:
test-wasi:
$(CARGO_BINARY) test $(CARGO_TARGET_FLAG) --release --tests $(compiler_features) -- wasi::wasitests
-test-integration-cli: build-wasmer build-capi package distribution
+test-integration-cli: build-wasmer build-capi package-capi-headless package distribution
cp ./dist/wasmer.tar.gz ./link.tar.gz
rustup target add wasm32-wasi
- $(CARGO_BINARY) test $(CARGO_TARGET_FLAG) --features webc_runner --no-fail-fast -p wasmer-integration-tests-cli -- --nocapture --test-threads=1
+ WASMER_DIR=`pwd`/package $(CARGO_BINARY) test $(CARGO_TARGET_FLAG) --features webc_runner --no-fail-fast -p wasmer-integration-tests-cli -- --nocapture --test-threads=1
# Before running this in the CI, we need to set up link.tar.gz and /cache/wasmer-[target].tar.gz
test-integration-cli-ci:
@@ -621,6 +621,8 @@ ifeq ($(IS_DARWIN), 1)
endif
endif
+package-capi-headless: build-capi-headless package-capi
+
package-capi:
mkdir -p "package/include"
mkdir -p "package/lib"
@@ -637,6 +639,10 @@ package-capi:
cp target/headless/$(CARGO_TARGET)/release/wasmer.dll package/lib/wasmer-headless.dll ;\
fi
+ if [ -f target/headless/$(HOST_TARGET)/release/wasmer.dll ]; then \
+ cp target/headless/$(HOST_TARGET)/release/wasmer.dll package/lib/wasmer-headless.dll ;\
+ fi
+
if [ -f $(TARGET_DIR)/wasmer.dll.lib ]; then \
cp $(TARGET_DIR)/wasmer.dll.lib package/lib/wasmer.dll.lib ;\
fi
@@ -645,6 +651,10 @@ package-capi:
cp target/headless/$(CARGO_TARGET)/release/wasmer.dll.lib package/lib/wasmer-headless.dll.lib ;\
fi
+ if [ -f target/headless/$(HOST_TARGET)/release/wasmer.dll.lib ]; then \
+ cp target/headless/$(HOST_TARGET)/release/wasmer.dll.lib package/lib/wasmer-headless.dll.lib ;\
+ fi
+
if [ -f $(TARGET_DIR)/wasmer.lib ]; then \
cp $(TARGET_DIR)/wasmer.lib package/lib/wasmer.lib ;\
fi
@@ -653,6 +663,10 @@ package-capi:
cp target/headless/$(CARGO_TARGET)/release/wasmer.lib package/lib/wasmer-headless.lib ;\
fi
+ if [ -f target/headless/$(HOST_TARGET)/release/wasmer.lib ]; then \
+ cp target/headless/$(HOST_TARGET)/release/wasmer.lib package/lib/wasmer-headless.lib ;\
+ fi
+
if [ -f $(TARGET_DIR)/libwasmer.dylib ]; then \
cp $(TARGET_DIR)/libwasmer.dylib package/lib/libwasmer.dylib ;\
fi
@@ -661,6 +675,10 @@ package-capi:
cp target/headless/$(CARGO_TARGET)/release/libwasmer.dylib package/lib/libwasmer-headless.dylib ;\
fi
+ if [ -f target/headless/$(HOST_TARGET)/release/libwasmer.dylib ]; then \
+ cp target/headless/$(HOST_TARGET)/release/libwasmer.dylib package/lib/libwasmer-headless.dylib ;\
+ fi
+
if [ -f $(TARGET_DIR)/libwasmer.so ]; then \
cp $(TARGET_DIR)/libwasmer.so package/lib/libwasmer.so ;\
fi
@@ -669,6 +687,10 @@ package-capi:
cp target/headless/$(CARGO_TARGET)/release/libwasmer.so package/lib/libwasmer-headless.so ;\
fi
+ if [ -f target/headless/$(HOST_TARGET)/release/libwasmer.so ]; then \
+ cp target/headless/$(HOST_TARGET)/release/libwasmer.so package/lib/libwasmer-headless.so ;\
+ fi
+
if [ -f $(TARGET_DIR)/libwasmer.a ]; then \
cp $(TARGET_DIR)/libwasmer.a package/lib/libwasmer.a ;\
fi
@@ -677,6 +699,10 @@ package-capi:
cp target/headless/$(CARGO_TARGET)/release/libwasmer.a package/lib/libwasmer-headless.a ;\
fi
+ if [ -f target/headless/$(HOST_TARGET)/release/libwasmer.a ]; then \
+ cp target/headless/$(HOST_TARGET)/release/libwasmer.a package/lib/libwasmer-headless.a ;\
+ fi
+
if [ -f target/$(HOST_TARGET)/release/wasmer.dll ]; then \
cp target/$(HOST_TARGET)/release/wasmer.dll package/lib/wasmer.dll ;\
fi
@@ -699,39 +725,13 @@ package-capi:
cp target/$(HOST_TARGET)/release/libwasmer.a package/lib/libwasmer.a ;\
fi
-package-capi-headless: build-capi-headless
- mkdir -p "package/include"
- mkdir -p "package/lib"
- cp lib/c-api/wasmer.h* package/include
- cp lib/c-api/wasmer_wasm.h* package/include
- cp lib/c-api/wasm.h* package/include
- cp lib/c-api/README.md package/include/README.md
-
- if [ -f $(TARGET_DIR)/wasmer.dll ]; then \
- cp $(TARGET_DIR)/wasmer.dll package/lib/wasmer-headless.dll ;\
- fi
- if [ -f $(TARGET_DIR)/wasmer.lib ]; then \
- cp $(TARGET_DIR)/wasmer.lib package/lib/wasmer-headless.lib ;\
- fi
-
- if [ -f $(TARGET_DIR)/libwasmer.dylib ]; then \
- cp $(TARGET_DIR)/libwasmer.dylib package/lib/libwasmer-headless.dylib ;\
- fi
-
- if [ -f $(TARGET_DIR)/libwasmer.so ]; then \
- cp $(TARGET_DIR)/libwasmer.so package/lib/libwasmer-headless.so ;\
- fi
- if [ -f $(TARGET_DIR)/libwasmer.a ]; then \
- cp $(TARGET_DIR)/libwasmer.a package/lib/libwasmer-headless.a ;\
- fi
-
package-docs: build-docs build-docs-capi
mkdir -p "package/docs/crates"
cp -R target/doc/ package/docs/crates
echo '' > package/docs/index.html
echo '' > package/docs/crates/index.html
-package: package-wasmer package-minimal-headless-wasmer package-capi package-capi-headless
+package: package-wasmer package-minimal-headless-wasmer package-capi
tar-capi:
ls -R package
diff --git a/lib/cli/src/commands/login.rs b/lib/cli/src/commands/login.rs
index e1d141db4..fbfea96ad 100644
--- a/lib/cli/src/commands/login.rs
+++ b/lib/cli/src/commands/login.rs
@@ -33,7 +33,7 @@ impl Login {
registry_tld.suffix.as_deref(),
) {
(Some(d), Some(s)) => {
- format!("Please paste the login token for https://{d}.{s}/me")
+ format!("Please paste the login token from https://{d}.{s}/settings/access-tokens")
}
_ => "Please paste the login token".to_string(),
};
diff --git a/lib/compiler-cranelift/Cargo.toml b/lib/compiler-cranelift/Cargo.toml
index 9e5a3a492..12122ea3c 100644
--- a/lib/compiler-cranelift/Cargo.toml
+++ b/lib/compiler-cranelift/Cargo.toml
@@ -14,9 +14,9 @@ edition = "2018"
[dependencies]
wasmer-compiler = { path = "../compiler", version = "=3.2.0-alpha.1", features = ["translator", "compiler"], default-features = false }
wasmer-types = { path = "../types", version = "=3.2.0-alpha.1", default-features = false, features = ["std"] }
-cranelift-entity = { version = "0.86.1", default-features = false }
-cranelift-codegen = { version = "0.86.1", default-features = false, features = ["x86", "arm64"] }
-cranelift-frontend = { version = "0.86.1", default-features = false }
+cranelift-entity = { version = "0.91.0", default-features = false }
+cranelift-codegen = { version = "0.91.0", default-features = false, features = ["x86", "arm64"] }
+cranelift-frontend = { version = "0.91.0", default-features = false }
tracing = "0.1"
hashbrown = { version = "0.11", optional = true }
rayon = { version = "1.5", optional = true }
@@ -26,7 +26,7 @@ smallvec = "1.6"
target-lexicon = { version = "0.12.2", default-features = false }
[dev-dependencies]
-cranelift-codegen = { version = "0.86.1", features = ["all-arch"] }
+cranelift-codegen = { version = "0.91.0", features = ["all-arch"] }
lazy_static = "1.4"
[badges]
diff --git a/lib/compiler-cranelift/src/address_map.rs b/lib/compiler-cranelift/src/address_map.rs
index 3f6e22c54..2fe92429f 100644
--- a/lib/compiler-cranelift/src/address_map.rs
+++ b/lib/compiler-cranelift/src/address_map.rs
@@ -15,7 +15,7 @@ pub fn get_function_address_map(
// New-style backend: we have a `MachCompileResult` that will give us `MachSrcLoc` mapping
// tuples.
- let mcr = context.mach_compile_result.as_ref().unwrap();
+ let mcr = context.compiled_code().unwrap();
for &MachSrcLoc { start, end, loc } in mcr.buffer.get_srclocs_sorted() {
instructions.push(InstructionAddressMap {
srcloc: SourceLoc::new(loc.bits()),
diff --git a/lib/compiler-cranelift/src/compiler.rs b/lib/compiler-cranelift/src/compiler.rs
index 9f2481bb0..b2a880f69 100644
--- a/lib/compiler-cranelift/src/compiler.rs
+++ b/lib/compiler-cranelift/src/compiler.rs
@@ -12,8 +12,7 @@ use crate::translator::{
compiled_function_unwind_info, irlibcall_to_libcall, irreloc_to_relocationkind,
signature_to_cranelift_ir, CraneliftUnwindInfo, FuncTranslator,
};
-use cranelift_codegen::ir::ExternalName;
-use cranelift_codegen::print_errors::pretty_error;
+use cranelift_codegen::ir::{ExternalName, UserFuncName};
use cranelift_codegen::{ir, MachReloc};
use cranelift_codegen::{Context, MachTrap};
#[cfg(feature = "unwind")]
@@ -127,7 +126,18 @@ impl Compiler for CraneliftCompiler {
&memory_styles,
&table_styles,
);
- context.func.name = get_function_name(func_index);
+ context.func.name = match get_function_name(func_index) {
+ ExternalName::User(nameref) => {
+ if context.func.params.user_named_funcs().is_valid(nameref) {
+ let name = &context.func.params.user_named_funcs()[nameref];
+ UserFuncName::User(name.clone())
+ } else {
+ UserFuncName::default()
+ }
+ }
+ ExternalName::TestCase(testcase) => UserFuncName::Testcase(testcase),
+ _ => UserFuncName::default(),
+ };
context.func.signature = signatures[module.functions[func_index]].clone();
// if generate_debug_info {
// context.func.collect_debug_info();
@@ -151,9 +161,9 @@ impl Compiler for CraneliftCompiler {
let mut code_buf: Vec = Vec::new();
context
.compile_and_emit(&*isa, &mut code_buf)
- .map_err(|error| CompileError::Codegen(pretty_error(&context.func, error)))?;
+ .map_err(|error| CompileError::Codegen(error.inner.to_string()))?;
- let result = context.mach_compile_result.as_ref().unwrap();
+ let result = context.compiled_code().unwrap();
let func_relocs = result
.buffer
.relocs()
@@ -228,7 +238,18 @@ impl Compiler for CraneliftCompiler {
memory_styles,
table_styles,
);
- context.func.name = get_function_name(func_index);
+ context.func.name = match get_function_name(func_index) {
+ ExternalName::User(nameref) => {
+ if context.func.params.user_named_funcs().is_valid(nameref) {
+ let name = &context.func.params.user_named_funcs()[nameref];
+ UserFuncName::User(name.clone())
+ } else {
+ UserFuncName::default()
+ }
+ }
+ ExternalName::TestCase(testcase) => UserFuncName::Testcase(testcase),
+ _ => UserFuncName::default(),
+ };
context.func.signature = signatures[module.functions[func_index]].clone();
// if generate_debug_info {
// context.func.collect_debug_info();
@@ -252,9 +273,9 @@ impl Compiler for CraneliftCompiler {
let mut code_buf: Vec = Vec::new();
context
.compile_and_emit(&*isa, &mut code_buf)
- .map_err(|error| CompileError::Codegen(pretty_error(&context.func, error)))?;
+ .map_err(|error| CompileError::Codegen(error.inner.to_string()))?;
- let result = context.mach_compile_result.as_ref().unwrap();
+ let result = context.compiled_code().unwrap();
let func_relocs = result
.buffer
.relocs()
@@ -401,11 +422,11 @@ fn mach_reloc_to_reloc(module: &ModuleInfo, reloc: &MachReloc) -> Relocation {
ref name,
addend,
} = reloc;
- let reloc_target = if let ExternalName::User { namespace, index } = *name {
- debug_assert_eq!(namespace, 0);
+ let reloc_target = if let ExternalName::User(extname_ref) = *name {
+ //debug_assert_eq!(namespace, 0);
RelocationTarget::LocalFunc(
module
- .local_func_index(FunctionIndex::from_u32(index))
+ .local_func_index(FunctionIndex::from_u32(extname_ref.as_u32()))
.expect("The provided function should be local"),
)
} else if let ExternalName::LibCall(libcall) = *name {
diff --git a/lib/compiler-cranelift/src/config.rs b/lib/compiler-cranelift/src/config.rs
index 5c757c9ef..dff2ba119 100644
--- a/lib/compiler-cranelift/src/config.rs
+++ b/lib/compiler-cranelift/src/config.rs
@@ -124,6 +124,11 @@ impl Cranelift {
pub fn flags(&self) -> settings::Flags {
let mut flags = settings::builder();
+ // Enable probestack
+ flags
+ .enable("enable_probestack")
+ .expect("should be valid flag");
+
// There are two possible traps for division, and this way
// we get the proper one if code traps.
flags
diff --git a/lib/compiler-cranelift/src/func_environ.rs b/lib/compiler-cranelift/src/func_environ.rs
index 0608b7add..d71153235 100644
--- a/lib/compiler-cranelift/src/func_environ.rs
+++ b/lib/compiler-cranelift/src/func_environ.rs
@@ -27,7 +27,7 @@ use wasmer_types::{WasmError, WasmResult};
/// Compute an `ir::ExternalName` for a given wasm function index.
pub fn get_function_name(func_index: FunctionIndex) -> ir::ExternalName {
- ir::ExternalName::user(0, func_index.as_u32())
+ ir::ExternalName::user(ir::UserExternalNameRef::from_u32(func_index.as_u32()))
}
/// The type of the `current_elements` field.
@@ -1028,7 +1028,7 @@ impl<'module_environment> BaseFuncEnvironment for FuncEnvironment<'module_enviro
_ => unreachable!(),
};
- Ok(pos.ins().bint(ir::types::I32, bool_is_null))
+ Ok(pos.ins().uextend(ir::types::I32, bool_is_null))
}
fn translate_ref_func(
diff --git a/lib/compiler-cranelift/src/trampoline/dynamic_function.rs b/lib/compiler-cranelift/src/trampoline/dynamic_function.rs
index 37ea9d46f..f7f84edc3 100644
--- a/lib/compiler-cranelift/src/trampoline/dynamic_function.rs
+++ b/lib/compiler-cranelift/src/trampoline/dynamic_function.rs
@@ -6,10 +6,9 @@
use crate::translator::{compiled_function_unwind_info, signature_to_cranelift_ir};
use cranelift_codegen::ir;
use cranelift_codegen::ir::{
- ExternalName, Function, InstBuilder, MemFlags, StackSlotData, StackSlotKind,
+ Function, InstBuilder, MemFlags, StackSlotData, StackSlotKind, UserFuncName,
};
use cranelift_codegen::isa::TargetIsa;
-use cranelift_codegen::print_errors::pretty_error;
use cranelift_codegen::Context;
use std::cmp;
use std::mem;
@@ -43,9 +42,9 @@ pub fn make_trampoline_dynamic_function(
(value_size * cmp::max(signature.params.len() - 1, signature.returns.len())) as u32;
let mut context = Context::new();
- context.func = Function::with_name_signature(ExternalName::user(0, 0), signature.clone());
+ context.func = Function::with_name_signature(UserFuncName::user(0, 0), signature.clone());
- let ss = context.func.create_stack_slot(StackSlotData::new(
+ let ss = context.func.create_sized_stack_slot(StackSlotData::new(
StackSlotKind::ExplicitSlot,
values_vec_len,
));
@@ -107,7 +106,7 @@ pub fn make_trampoline_dynamic_function(
let mut code_buf = Vec::new();
context
.compile_and_emit(isa, &mut code_buf)
- .map_err(|error| CompileError::Codegen(pretty_error(&context.func, error)))?;
+ .map_err(|error| CompileError::Codegen(error.inner.to_string()))?;
let unwind_info = compiled_function_unwind_info(isa, &context)?.maybe_into_to_windows_unwind();
diff --git a/lib/compiler-cranelift/src/trampoline/function_call.rs b/lib/compiler-cranelift/src/trampoline/function_call.rs
index 12d8d2eb7..8d6741d3d 100644
--- a/lib/compiler-cranelift/src/trampoline/function_call.rs
+++ b/lib/compiler-cranelift/src/trampoline/function_call.rs
@@ -12,7 +12,6 @@ use crate::translator::{compiled_function_unwind_info, signature_to_cranelift_ir
use cranelift_codegen::ir;
use cranelift_codegen::ir::InstBuilder;
use cranelift_codegen::isa::TargetIsa;
-use cranelift_codegen::print_errors::pretty_error;
use cranelift_codegen::Context;
use cranelift_frontend::{FunctionBuilder, FunctionBuilderContext};
use std::mem;
@@ -42,7 +41,7 @@ pub fn make_trampoline_function_call(
wrapper_sig.params.push(ir::AbiParam::new(pointer_type));
let mut context = Context::new();
- context.func = ir::Function::with_name_signature(ir::ExternalName::user(0, 0), wrapper_sig);
+ context.func = ir::Function::with_name_signature(ir::UserFuncName::user(0, 0), wrapper_sig);
let value_size = mem::size_of::();
{
@@ -105,7 +104,7 @@ pub fn make_trampoline_function_call(
context
.compile_and_emit(isa, &mut code_buf)
- .map_err(|error| CompileError::Codegen(pretty_error(&context.func, error)))?;
+ .map_err(|error| CompileError::Codegen(error.inner.to_string()))?;
let unwind_info = compiled_function_unwind_info(isa, &context)?.maybe_into_to_windows_unwind();
diff --git a/lib/compiler-cranelift/src/translator/code_translator.rs b/lib/compiler-cranelift/src/translator/code_translator.rs
index 6b42a8e6c..fb2de48eb 100644
--- a/lib/compiler-cranelift/src/translator/code_translator.rs
+++ b/lib/compiler-cranelift/src/translator/code_translator.rs
@@ -124,7 +124,7 @@ pub fn translate_operator(
* disappear in the Cranelift Code
***********************************************************************************/
Operator::LocalGet { local_index } => {
- let val = builder.use_var(Variable::with_u32(*local_index));
+ let val = builder.use_var(Variable::from_u32(*local_index));
state.push1(val);
let label = ValueLabel::from_u32(*local_index);
builder.set_val_label(val, label);
@@ -138,7 +138,7 @@ pub fn translate_operator(
val = optionally_bitcast_vector(val, I8X16, builder);
}
- builder.def_var(Variable::with_u32(*local_index), val);
+ builder.def_var(Variable::from_u32(*local_index), val);
let label = ValueLabel::from_u32(*local_index);
builder.set_val_label(val, label);
}
@@ -151,7 +151,7 @@ pub fn translate_operator(
val = optionally_bitcast_vector(val, I8X16, builder);
}
- builder.def_var(Variable::with_u32(*local_index), val);
+ builder.def_var(Variable::from_u32(*local_index), val);
let label = ValueLabel::from_u32(*local_index);
builder.set_val_label(val, label);
}
@@ -368,8 +368,7 @@ pub fn translate_operator(
Operator::End => {
let frame = state.control_stack.pop().unwrap();
let next_block = frame.following_code();
-
- if !builder.is_unreachable() || !builder.is_pristine() {
+ if !builder.is_unreachable() || builder.func.layout.first_inst(next_block).is_some() {
let return_count = frame.num_return_values();
let return_args = state.peekn(return_count);
canonicalise_then_jump(builder, frame.following_code(), return_args);
@@ -519,11 +518,8 @@ pub fn translate_operator(
state.reachable = false;
}
Operator::Return => {
- let (return_count, br_destination) = {
+ let (return_count, _br_destination) = {
let frame = &mut state.control_stack[0];
- if environ.return_mode() == ReturnMode::FallthroughReturn {
- frame.set_branched_to_exit();
- }
let return_count = frame.num_return_values();
(return_count, frame.br_destination())
};
@@ -536,9 +532,6 @@ pub fn translate_operator(
bitcast_arguments(return_args, &return_types, builder);
match environ.return_mode() {
ReturnMode::NormalReturns => builder.ins().return_(return_args),
- ReturnMode::FallthroughReturn => {
- canonicalise_then_jump(builder, br_destination, return_args)
- }
};
}
state.popn(return_count);
@@ -861,19 +854,19 @@ pub fn translate_operator(
}
Operator::F32ReinterpretI32 => {
let val = state.pop1();
- state.push1(builder.ins().bitcast(F32, val));
+ state.push1(builder.ins().bitcast(F32, MemFlags::new(), val));
}
Operator::F64ReinterpretI64 => {
let val = state.pop1();
- state.push1(builder.ins().bitcast(F64, val));
+ state.push1(builder.ins().bitcast(F64, MemFlags::new(), val));
}
Operator::I32ReinterpretF32 => {
let val = state.pop1();
- state.push1(builder.ins().bitcast(I32, val));
+ state.push1(builder.ins().bitcast(I32, MemFlags::new(), val));
}
Operator::I64ReinterpretF64 => {
let val = state.pop1();
- state.push1(builder.ins().bitcast(I64, val));
+ state.push1(builder.ins().bitcast(I64, MemFlags::new(), val));
}
Operator::I32Extend8S => {
let val = state.pop1();
@@ -1022,7 +1015,7 @@ pub fn translate_operator(
Operator::I32Eqz | Operator::I64Eqz => {
let arg = state.pop1();
let val = builder.ins().icmp_imm(IntCC::Equal, arg, 0);
- state.push1(builder.ins().bint(I32, val));
+ state.push1(builder.ins().uextend(I32, val));
}
Operator::I32Eq | Operator::I64Eq => translate_icmp(IntCC::Equal, builder, state),
Operator::F32Eq | Operator::F64Eq => translate_fcmp(FloatCC::Equal, builder, state),
@@ -1583,7 +1576,7 @@ pub fn translate_operator(
}
Operator::I8x16MinS | Operator::I16x8MinS | Operator::I32x4MinS => {
let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
- state.push1(builder.ins().imin(a, b))
+ state.push1(builder.ins().smin(a, b))
}
Operator::I8x16MinU | Operator::I16x8MinU | Operator::I32x4MinU => {
let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
@@ -1591,7 +1584,7 @@ pub fn translate_operator(
}
Operator::I8x16MaxS | Operator::I16x8MaxS | Operator::I32x4MaxS => {
let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
- state.push1(builder.ins().imax(a, b))
+ state.push1(builder.ins().smax(a, b))
}
Operator::I8x16MaxU | Operator::I16x8MaxU | Operator::I32x4MaxU => {
let (a, b) = pop2_with_bitcast(state, type_of(op), builder);
@@ -1672,7 +1665,7 @@ pub fn translate_operator(
Operator::V128AnyTrue => {
let a = pop1_with_bitcast(state, type_of(op), builder);
let bool_result = builder.ins().vany_true(a);
- state.push1(builder.ins().bint(I32, bool_result))
+ state.push1(builder.ins().uextend(I32, bool_result))
}
Operator::I8x16AllTrue
| Operator::I16x8AllTrue
@@ -1680,7 +1673,7 @@ pub fn translate_operator(
| Operator::I64x2AllTrue => {
let a = pop1_with_bitcast(state, type_of(op), builder);
let bool_result = builder.ins().vall_true(a);
- state.push1(builder.ins().bint(I32, bool_result))
+ state.push1(builder.ins().uextend(I32, bool_result))
}
Operator::I8x16Bitmask
| Operator::I16x8Bitmask
@@ -2253,7 +2246,9 @@ fn get_heap_addr(
};
debug_assert!(adjusted_offset > 0); // want to bounds check at least 1 byte
let check_size = u32::try_from(adjusted_offset).unwrap_or(u32::MAX);
- let base = builder.ins().heap_addr(addr_ty, heap, addr32, check_size);
+ let base = builder
+ .ins()
+ .heap_addr(addr_ty, heap, addr32, 0u32, check_size as u8);
// Native load/store instructions take a signed `Offset32` immediate, so adjust the base
// pointer if necessary.
@@ -2359,7 +2354,7 @@ fn mem_op_size(opcode: ir::Opcode, ty: Type) -> u32 {
fn translate_icmp(cc: IntCC, builder: &mut FunctionBuilder, state: &mut FuncTranslationState) {
let (arg0, arg1) = state.pop2();
let val = builder.ins().icmp(cc, arg0, arg1);
- state.push1(builder.ins().bint(I32, val));
+ state.push1(builder.ins().uextend(I32, val));
}
fn fold_atomic_mem_addr(
@@ -2375,12 +2370,10 @@ fn fold_atomic_mem_addr(
let a = builder
.ins()
.iadd_imm(linear_mem_addr, memarg.offset as i64);
- let cflags = builder.ins().ifcmp_imm(a, 0x1_0000_0000i64);
- builder.ins().trapif(
- IntCC::UnsignedGreaterThanOrEqual,
- cflags,
- ir::TrapCode::HeapOutOfBounds,
- );
+ let r = builder
+ .ins()
+ .icmp_imm(IntCC::UnsignedGreaterThanOrEqual, a, 0x1_0000_0000i64);
+ builder.ins().trapnz(r, ir::TrapCode::HeapOutOfBounds);
builder.ins().ireduce(I32, a)
} else {
linear_mem_addr
@@ -2391,10 +2384,8 @@ fn fold_atomic_mem_addr(
.band_imm(final_lma, i64::from(access_ty_bytes - 1));
let f = builder
.ins()
- .ifcmp_imm(final_lma_misalignment, i64::from(0));
- builder
- .ins()
- .trapif(IntCC::NotEqual, f, ir::TrapCode::HeapMisaligned);
+ .icmp_imm(IntCC::Equal, final_lma_misalignment, i64::from(0));
+ builder.ins().trapz(f, ir::TrapCode::HeapMisaligned);
final_lma
}
@@ -2415,12 +2406,10 @@ fn finalise_atomic_mem_addr(
let a = builder
.ins()
.iadd_imm(linear_mem_addr, memarg.offset as i64);
- let cflags = builder.ins().ifcmp_imm(a, 0x1_0000_0000i64);
- builder.ins().trapif(
- IntCC::UnsignedGreaterThanOrEqual,
- cflags,
- ir::TrapCode::HeapOutOfBounds,
- );
+ let r = builder
+ .ins()
+ .icmp_imm(IntCC::UnsignedGreaterThanOrEqual, a, 0x1_0000_0000i64);
+ builder.ins().trapnz(r, ir::TrapCode::HeapOutOfBounds);
builder.ins().ireduce(I32, a)
} else {
linear_mem_addr
@@ -2433,10 +2422,8 @@ fn finalise_atomic_mem_addr(
.band_imm(final_lma, i64::from(access_ty_bytes - 1));
let f = builder
.ins()
- .ifcmp_imm(final_lma_misalignment, i64::from(0));
- builder
- .ins()
- .trapif(IntCC::NotEqual, f, ir::TrapCode::HeapMisaligned);
+ .icmp_imm(IntCC::Equal, final_lma_misalignment, i64::from(0));
+ builder.ins().trapz(f, ir::TrapCode::HeapMisaligned);
}
// Compute the final effective address.
@@ -2647,7 +2634,7 @@ fn translate_vector_icmp(
fn translate_fcmp(cc: FloatCC, builder: &mut FunctionBuilder, state: &mut FuncTranslationState) {
let (arg0, arg1) = state.pop2();
let val = builder.ins().fcmp(cc, arg0, arg1);
- state.push1(builder.ins().bint(I32, val));
+ state.push1(builder.ins().uextend(I32, val));
}
fn translate_vector_fcmp(
@@ -2913,7 +2900,11 @@ fn optionally_bitcast_vector(
builder: &mut FunctionBuilder,
) -> Value {
if builder.func.dfg.value_type(value) != needed_type {
- builder.ins().raw_bitcast(needed_type, value)
+ builder.ins().bitcast(
+ needed_type,
+ MemFlags::new().with_endianness(ir::Endianness::Little),
+ value,
+ )
} else {
value
}
@@ -2921,10 +2912,7 @@ fn optionally_bitcast_vector(
#[inline(always)]
fn is_non_canonical_v128(ty: ir::Type) -> bool {
- matches!(
- ty,
- B8X16 | B16X8 | B32X4 | B64X2 | I64X2 | I32X4 | I16X8 | F32X4 | F64X2
- )
+ matches!(ty, I64X2 | I32X4 | I16X8 | F32X4 | F64X2)
}
/// Cast to I8X16, any vector values in `values` that are of "non-canonical" type (meaning, not
@@ -2948,7 +2936,11 @@ fn canonicalise_v128_values<'a>(
// Otherwise we'll have to cast, and push the resulting `Value`s into `canonicalised`.
for v in values {
tmp_canonicalised.push(if is_non_canonical_v128(builder.func.dfg.value_type(*v)) {
- builder.ins().raw_bitcast(I8X16, *v)
+ builder.ins().bitcast(
+ I8X16,
+ MemFlags::new().with_endianness(ir::Endianness::Little),
+ *v,
+ )
} else {
*v
});
diff --git a/lib/compiler-cranelift/src/translator/func_environ.rs b/lib/compiler-cranelift/src/translator/func_environ.rs
index 0ca674269..68b3a5c1d 100644
--- a/lib/compiler-cranelift/src/translator/func_environ.rs
+++ b/lib/compiler-cranelift/src/translator/func_environ.rs
@@ -46,8 +46,6 @@ pub enum GlobalVariable {
pub enum ReturnMode {
/// Use normal return instructions as needed.
NormalReturns,
- /// Use a single fallthrough return at the end of the function.
- FallthroughReturn,
}
/// Environment affecting the translation of a WebAssembly.
@@ -381,7 +379,7 @@ pub trait FuncEnvironment: TargetEnvironment {
value: ir::Value,
) -> WasmResult {
let is_null = pos.ins().is_null(value);
- Ok(pos.ins().bint(ir::types::I64, is_null))
+ Ok(pos.ins().uextend(ir::types::I64, is_null))
}
/// Translate a `ref.func` WebAssembly instruction.
diff --git a/lib/compiler-cranelift/src/translator/func_translator.rs b/lib/compiler-cranelift/src/translator/func_translator.rs
index d8a4db96a..47972a45a 100644
--- a/lib/compiler-cranelift/src/translator/func_translator.rs
+++ b/lib/compiler-cranelift/src/translator/func_translator.rs
@@ -243,7 +243,7 @@ fn parse_function_body(
// If the exit block is unreachable, it may not have the correct arguments, so we would
// generate a return instruction that doesn't match the signature.
if state.reachable {
- debug_assert!(builder.is_pristine());
+ //debug_assert!(builder.is_pristine());
if !builder.is_unreachable() {
match environ.return_mode() {
ReturnMode::NormalReturns => {
@@ -253,7 +253,6 @@ fn parse_function_body(
bitcast_arguments(&mut state.stack, &return_types, builder);
builder.ins().return_(&state.stack)
}
- ReturnMode::FallthroughReturn => builder.ins().fallthrough_return(&state.stack),
};
}
}
diff --git a/lib/compiler-cranelift/src/translator/unwind.rs b/lib/compiler-cranelift/src/translator/unwind.rs
index 1aff474dd..4de700b2d 100644
--- a/lib/compiler-cranelift/src/translator/unwind.rs
+++ b/lib/compiler-cranelift/src/translator/unwind.rs
@@ -43,6 +43,8 @@ pub(crate) fn compiled_function_unwind_info(
context: &Context,
) -> Result {
let unwind_info = context
+ .compiled_code()
+ .unwrap()
.create_unwind_info(isa)
.map_err(|error| CompileError::Codegen(pretty_error(&context.func, error)))?;