diff --git a/Cargo.lock b/Cargo.lock index c104b1571b6..d2903de4a28 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,10 +1,12 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "addr2line" -version = "0.15.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a" +checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" dependencies = [ "gimli", ] @@ -21,6 +23,17 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" +[[package]] +name = "ahash" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" version = "0.7.18" @@ -41,9 +54,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" +checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486" [[package]] name = "arbitrary" @@ -68,13 +81,13 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "assert_cmd" -version = "1.0.5" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88b6bd5df287567ffdf4ddf4d33060048e1068308e5f62d81c6f9824a045a48" +checksum = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe" dependencies = [ "bstr", "doc-comment", - "predicates", + "predicates 2.0.1", "predicates-core", "predicates-tree", "wait-timeout", @@ -99,9 +112,9 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7815ea54e4d821e791162e078acbebfd6d8c8939cd559c9335dceb1c8ca7282" +checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01" dependencies = [ "addr2line", "cc", @@ -200,17 +213,17 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytesize" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a18687293a1546b67c246452202bbbf143d239cb43494cc163da14979082da" +checksum = "6c58ec36aac5066d5ca17df51b3e70279f5670a72102f5752cb7e7c856adfc70" [[package]] name = "cast" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57cdfa5d50aad6cb4d44dcab6101a7f79925bd59d82ca42f38a9856a28865374" +checksum = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a" dependencies = [ - "rustc_version 0.3.3", + "rustc_version 0.4.0", ] [[package]] @@ -234,9 +247,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787" +checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" [[package]] name = "cexpr" @@ -367,36 +380,36 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "cranelift-bforest" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ca3560686e7c9c7ed7e0fe77469f2410ba5d7781b1acaa9adc8d8deea28e3e" +checksum = "7e6bea67967505247f54fa2c85cf4f6e0e31c4e5692c9b70e4ae58e339067333" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf9bf1ffffb6ce3d2e5ebc83549bd2436426c99b31cc550d521364cbe35d276" +checksum = "48194035d2752bdd5bdae429e3ab88676e95f52a2b1355a5d4e809f9e39b1d74" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", "gimli", - "hashbrown", + "hashbrown 0.9.1", "log", "regalloc", "smallvec", - "target-lexicon 0.12.0", + "target-lexicon 0.12.1", ] [[package]] name = "cranelift-codegen-meta" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cc21936a5a6d07e23849ffe83e5c1f6f50305c074f4b2970ca50c13bf55b821" +checksum = "976efb22fcab4f2cd6bd4e9913764616a54d895c1a23530128d04e03633c555f" dependencies = [ "cranelift-codegen-shared", "cranelift-entity", @@ -404,27 +417,27 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca5b6ffaa87560bebe69a5446449da18090b126037920b0c1c6d5945f72faf6b" +checksum = "9dabb5fe66e04d4652e434195b45ae65b5c8172d520247b8f66d8df42b2b45dc" [[package]] name = "cranelift-entity" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d6b4a8bef04f82e4296782646f733c641d09497df2fabf791323fefaa44c64c" +checksum = "3329733e4d4b8e91c809efcaa4faee80bf66f20164e3dd16d707346bd3494799" [[package]] name = "cranelift-frontend" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b783b351f966fce33e3c03498cb116d16d97a8f9978164a60920bd0d3a99c" +checksum = "279afcc0d3e651b773f94837c3d581177b348c8d69e928104b2e9fccb226f921" dependencies = [ "cranelift-codegen", - "hashbrown", + "hashbrown 0.9.1", "log", "smallvec", - "target-lexicon 0.12.0", + "target-lexicon 0.12.1", ] [[package]] @@ -438,16 +451,16 @@ dependencies = [ [[package]] name = "criterion" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab327ed7354547cc2ef43cbe20ef68b988e70b4b593cbd66a2a61733123a3d23" +checksum = "1604dafd25fba2fe2d5895a9da139f8dc9b319a5fe5354ca137cbbce4e178d10" dependencies = [ "atty", "cast", "clap", "criterion-plot", "csv", - "itertools 0.10.0", + "itertools", "lazy_static", "num-traits", "oorandom", @@ -464,12 +477,12 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d" +checksum = "d00996de9f2f7559f7f4dc286073197f83e92256a59ed395f9aac01fe717da57" dependencies = [ "cast", - "itertools 0.9.0", + "itertools", ] [[package]] @@ -484,9 +497,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -560,9 +573,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f2c43f534ea4b0b049015d00269734195e6d3f0f6635cb692251aca6f9f8b3c" +checksum = "757c0ded2af11d8e739c4daea1ac623dd1624b06c844cf3f5a39f1bdbd99bb12" dependencies = [ "darling_core", "darling_macro", @@ -570,9 +583,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e91455b86830a1c21799d94524df0845183fa55bafd9aa137b01c7d1065fa36" +checksum = "2c34d8efb62d0c2d7f60ece80f75e5c63c1588ba68032740494b0b9a996466e3" dependencies = [ "fnv", "ident_case", @@ -584,9 +597,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29b5acf0dea37a7f66f7b25d2c5e93fd46f8f6968b1a5d7a3e02e97768afc95a" +checksum = "ade7bff147130fe5e6d39f089c6bd49ec0250f35d70b2eebf72afdfc919f15cc" dependencies = [ "darling_core", "quote", @@ -616,6 +629,12 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + [[package]] name = "digest" version = "0.9.0" @@ -707,18 +726,18 @@ dependencies = [ [[package]] name = "enumset" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbd795df6708a599abf1ee10eacc72efd052b7a5f70fdf0715e4d5151a6db9c3" +checksum = "7e76129da36102af021b8e5000dab2c1c30dbef85c1e482beeff8da5dde0e0b0" dependencies = [ "enumset_derive", ] [[package]] name = "enumset_derive" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19c52f9ec503c8a68dc04daf71a04b07e690c32ab1a8b68e33897f255269d47" +checksum = "6451128aa6655d880755345d085494cf7561a6bee7c8dc821e5d77e6d267ecd4" dependencies = [ "darling", "proc-macro2", @@ -728,9 +747,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" dependencies = [ "atty", "humantime", @@ -741,9 +760,9 @@ dependencies = [ [[package]] name = "erased-serde" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5b36e6f2295f393f44894c6031f67df4d185b984cd54d08f768ce678007efcd" +checksum = "3de9ad4541d99dc22b59134e7ff8dc3d6c988c89ecd7324bf10a8362b07a2afa" dependencies = [ "serde", ] @@ -776,9 +795,9 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" +checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" dependencies = [ "cfg-if 1.0.0", "libc", @@ -866,9 +885,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189" +checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" dependencies = [ "fallible-iterator", "indexmap", @@ -893,7 +912,16 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" dependencies = [ - "ahash", + "ahash 0.4.7", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.4", ] [[package]] @@ -907,9 +935,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] @@ -934,12 +962,12 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "1.6.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.11.2", "serde", ] @@ -964,7 +992,7 @@ dependencies = [ "cc", "inline-c-macro", "lazy_static", - "predicates", + "predicates 1.0.8", "regex", "rustc_version 0.3.3", "target-lexicon 0.11.2", @@ -984,9 +1012,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" +checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" dependencies = [ "cfg-if 1.0.0", ] @@ -1015,18 +1043,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319" +checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf" dependencies = [ "either", ] @@ -1039,9 +1058,9 @@ checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] name = "js-sys" -version = "0.3.51" +version = "0.3.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" +checksum = "ce791b7ca6638aae45be056e068fc756d871eb3b3b10b8efa62d1c9cec616752" dependencies = [ "wasm-bindgen", ] @@ -1066,9 +1085,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36" +checksum = "a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765" [[package]] name = "libfuzzer-sys" @@ -1285,9 +1304,9 @@ dependencies = [ [[package]] name = "object" -version = "0.25.2" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8bc1d42047cf336f0f939c99e97183cf31551bf0f2865a2ec9c8d91fd4ffb5e" +checksum = "c55827317fb4c08822499848a14237d2874d6f139828893017237e7ab93eb386" dependencies = [ "crc32fast", "indexmap", @@ -1296,9 +1315,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.7.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" +checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" [[package]] name = "oorandom" @@ -1378,9 +1397,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" +checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" [[package]] name = "pkg-config" @@ -1403,15 +1422,15 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07fffcddc1cb3a1de753caa4e4df03b79922ba43cf882acc1bdd7e8df9f4590" +checksum = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c" [[package]] name = "plotters-svg" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b38a02e23bd9604b842a812063aec4ef702b57989c37b655254bb61c471ad211" +checksum = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9" dependencies = [ "plotters-backend", ] @@ -1435,6 +1454,17 @@ dependencies = [ "regex", ] +[[package]] +name = "predicates" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc3d91237f5de3bcd9d927e24d03b495adb6135097b001cea7403e2d573d00a9" +dependencies = [ + "difflib", + "itertools", + "predicates-core", +] + [[package]] name = "predicates-core" version = "1.0.2" @@ -1443,9 +1473,9 @@ checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451" [[package]] name = "predicates-tree" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f553275e5721409451eb85e15fd9a860a6e5ab4496eb215987502b5f5391f2" +checksum = "d7dd0fd014130206c9352efbdc92be592751b2b9274dff685348341082c6ea3d" dependencies = [ "predicates-core", "treeline", @@ -1489,27 +1519,27 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612" dependencies = [ "unicode-xid", ] [[package]] name = "ptr_meta" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7424255320182a46c403331afed6f95e0259a7c578f9da54a27e262ef3b60118" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" dependencies = [ "ptr_meta_derive", ] [[package]] name = "ptr_meta_derive" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53005b9863728f508d3f23ae37e03d60986a01b65f7ae8397dcebaa1d5e54e10" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" dependencies = [ "proc-macro2", "quote", @@ -1527,9 +1557,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" dependencies = [ "libc", "rand_chacha", @@ -1539,9 +1569,9 @@ dependencies = [ [[package]] name = "rand_chacha" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core", @@ -1549,18 +1579,18 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ "getrandom", ] [[package]] name = "rand_hc" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" dependencies = [ "rand_core", ] @@ -1601,9 +1631,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" dependencies = [ "bitflags", ] @@ -1681,9 +1711,9 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10244dc3cf3eddbf33245a69d154620746c60f629bec071e236d135b654556d" +checksum = "cb135b3e5e3311f0a254bfb00333f4bac9ef1d89888b84242a89eb8722b09a07" dependencies = [ "memoffset", "ptr_meta", @@ -1693,9 +1723,9 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.6.3" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3fccbf52ee0b76a29417794226e225798dd6bd32e40debd9e284cecc20dd76" +checksum = "ba8f489f6b6d8551bb15904293c1ad58a6abafa7d8390d15f7ed05a2afcd87d5" dependencies = [ "proc-macro2", "quote", @@ -1704,9 +1734,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410f7acf3cb3a44527c5d9546bad4bf4e6c460915d5f9f2fc524498bfe8f70ce" +checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49" [[package]] name = "rustc-hash" @@ -1716,20 +1746,20 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc_version" -version = "0.2.3" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" dependencies = [ - "semver 0.9.0", + "semver 0.11.0", ] [[package]] name = "rustc_version" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 0.11.0", + "semver 1.0.4", ] [[package]] @@ -1811,35 +1841,20 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser 0.7.0", -] - [[package]] name = "semver" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser 0.10.2", + "semver-parser", ] [[package]] name = "semver" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f3aac57ee7f3272d8395c6e4f502f434f0e289fcd62876f70daa008c20dcabe" - -[[package]] -name = "semver-parser" -version = "0.7.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" [[package]] name = "semver-parser" @@ -1852,9 +1867,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.126" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" +checksum = "f03b9878abf6d14e6779d3f24f07b2cfa90352cfec4acc5aab8f1ac7f146fae8" dependencies = [ "serde_derive", ] @@ -1880,9 +1895,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.126" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" +checksum = "a024926d3432516606328597e0f224a51355a493b49fdd67e9209187cbe55ecc" dependencies = [ "proc-macro2", "quote", @@ -1891,9 +1906,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.64" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +checksum = "336b10da19a12ad094b59d870ebde26a45402e5b470add4b5fd03c5048a32127" dependencies = [ "itoa", "ryu", @@ -1954,9 +1969,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "structopt" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" +checksum = "69b041cdcb67226aca307e6e7be44c8806423d83e018bd662360a93dabce4d71" dependencies = [ "clap", "lazy_static", @@ -1965,9 +1980,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" +checksum = "7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10" dependencies = [ "heck", "proc-macro-error", @@ -1978,15 +1993,15 @@ dependencies = [ [[package]] name = "subtle" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.72" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" +checksum = "1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c" dependencies = [ "proc-macro2", "quote", @@ -1995,9 +2010,9 @@ dependencies = [ [[package]] name = "tar" -version = "0.4.35" +version = "0.4.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d779dc6aeff029314570f666ec83f19df7280bb36ef338442cfa8c604021b80" +checksum = "8190d9cdacf6ee1b080605fd719b58d80a9fcbcea64db6744b26f743da02e447" dependencies = [ "filetime", "libc", @@ -2012,9 +2027,9 @@ checksum = "422045212ea98508ae3d28025bc5aaa2bd4a9cdaecd442a08da2ee620ee9ea95" [[package]] name = "target-lexicon" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ae3b39281e4b14b8123bdbaddd472b7dfe215e444181f2f9d2443c2444f834" +checksum = "b0652da4c4121005e9ed22b79f6c5f2d9e2752906b53a33e9490489ba421a6fb" [[package]] name = "tempfile" @@ -2055,7 +2070,7 @@ name = "test-generator" version = "0.1.0" dependencies = [ "anyhow", - "target-lexicon 0.12.0", + "target-lexicon 0.12.1", ] [[package]] @@ -2082,18 +2097,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6" +checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" +checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745" dependencies = [ "proc-macro2", "quote", @@ -2170,9 +2185,9 @@ checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" [[package]] name = "trybuild" -version = "1.0.42" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1768998d9a3b179411618e377dbb134c58a88cda284b0aa71c42c40660127d46" +checksum = "c02c413315329fc96167f922b46fd0caa3a43f4697b7a7896b183c7142635832" dependencies = [ "glob", "lazy_static", @@ -2220,9 +2235,9 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" [[package]] name = "unicode-segmentation" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" @@ -2293,9 +2308,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" +checksum = "b608ecc8f4198fe8680e2ed18eccab5f0cd4caaf3d83516fa5fb2e927fda2586" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -2303,9 +2318,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" +checksum = "580aa3a91a63d23aac5b6b267e2d13cb4f363e31dce6c352fca4752ae12e479f" dependencies = [ "bumpalo", "lazy_static", @@ -2318,9 +2333,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.24" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" +checksum = "16646b21c3add8e13fdb8f20172f8a28c3dbf62f45406bcff0233188226cfe0c" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2330,9 +2345,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" +checksum = "171ebf0ed9e1458810dfcb31f2e766ad6b3a89dbda42d8901f2b268277e5f09c" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2340,9 +2355,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" +checksum = "6c2657dd393f03aa2a659c25c6ae18a13a4048cebd220e147933ea837efc589f" dependencies = [ "proc-macro2", "quote", @@ -2353,15 +2368,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" +checksum = "2e0c4a743a309662d45f4ede961d7afa4ba4131a59a639f29b0069c3798bbcc2" [[package]] name = "wasm-bindgen-test" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cab416a9b970464c2882ed92d55b0c33046b08e0bdc9d59b3b718acd4e1bae8" +checksum = "ce783b6c3854292723f498b7bfcf65a782a320b6f1cb3012d08dfbc603fa62f5" dependencies = [ "console_error_panic_hook", "js-sys", @@ -2373,9 +2388,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4543fc6cf3541ef0d98bf720104cc6bd856d7eba449fd2aa365ef4fed0e782" +checksum = "3859815cf8435b92f3a34381bef950daffc1403bbb77ef99e35422a7b0abb194" dependencies = [ "proc-macro2", "quote", @@ -2408,12 +2423,12 @@ version = "2.0.0" dependencies = [ "anyhow", "cfg-if 1.0.0", - "hashbrown", + "hashbrown 0.11.2", "indexmap", "js-sys", "loupe", "more-asserts", - "target-lexicon 0.12.0", + "target-lexicon 0.12.1", "tempfile", "thiserror", "wasm-bindgen", @@ -2428,7 +2443,7 @@ dependencies = [ "wasmer-engine-universal", "wasmer-types", "wasmer-vm", - "wasmparser", + "wasmparser 0.78.2", "wat", "winapi", ] @@ -2532,17 +2547,17 @@ name = "wasmer-compiler" version = "2.0.0" dependencies = [ "enumset", - "hashbrown", + "hashbrown 0.11.2", "loupe", "rkyv", "serde", "serde_bytes", "smallvec", - "target-lexicon 0.12.0", + "target-lexicon 0.12.1", "thiserror", "wasmer-types", "wasmer-vm", - "wasmparser", + "wasmparser 0.78.2", ] [[package]] @@ -2553,13 +2568,13 @@ dependencies = [ "cranelift-entity", "cranelift-frontend", "gimli", - "hashbrown", + "hashbrown 0.11.2", "lazy_static", "loupe", "more-asserts", "rayon", "smallvec", - "target-lexicon 0.12.0", + "target-lexicon 0.12.1", "tracing", "wasmer-compiler", "wasmer-types", @@ -2572,17 +2587,17 @@ version = "2.0.0" dependencies = [ "byteorder", "cc", - "itertools 0.10.0", + "itertools", "lazy_static", "libc", "loupe", "object", "rayon", "regex", - "rustc_version 0.2.3", - "semver 1.0.3", + "rustc_version 0.4.0", + "semver 1.0.4", "smallvec", - "target-lexicon 0.12.0", + "target-lexicon 0.12.1", "wasmer-compiler", "wasmer-types", "wasmer-vm", @@ -2596,13 +2611,13 @@ dependencies = [ "byteorder", "dynasm", "dynasmrt", - "hashbrown", + "hashbrown 0.11.2", "lazy_static", "loupe", "more-asserts", "rayon", "smallvec", - "target-lexicon 0.12.0", + "target-lexicon 0.12.1", "wasmer-compiler", "wasmer-types", "wasmer-vm", @@ -2645,7 +2660,7 @@ dependencies = [ "rustc-demangle", "serde", "serde_bytes", - "target-lexicon 0.12.0", + "target-lexicon 0.12.1", "thiserror", "wasmer-compiler", "wasmer-types", @@ -2683,7 +2698,7 @@ dependencies = [ "wasmer-object", "wasmer-types", "wasmer-vm", - "which 4.1.0", + "which 4.2.2", ] [[package]] @@ -2846,7 +2861,7 @@ dependencies = [ "glob", "lazy_static", "loupe", - "rustc_version 0.3.3", + "rustc_version 0.4.0", "serial_test", "tempfile", "test-generator", @@ -2889,39 +2904,45 @@ version = "0.78.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52144d4c78e5cf8b055ceab8e5fa22814ce4315d6002ad32cfd914f37c12fd65" +[[package]] +name = "wasmparser" +version = "0.80.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5f71b80b8193e50910919e7d1bc956d2b4f42b1cb1fad84bacb59332c16f2cf" + [[package]] name = "wasmprinter" -version = "0.2.26" +version = "0.2.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ccec894c70710c2e4669320a532cb2b9cfb97adb0429745642f8ce76916ed85" +checksum = "b48e4f2999b9930e9b037e328357d7d2367e0d8ea6e534be90aeff60976c0452" dependencies = [ "anyhow", - "wasmparser", + "wasmparser 0.80.0", ] [[package]] name = "wast" -version = "35.0.2" +version = "37.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" +checksum = "9bc7b9a76845047ded00e031754ff410afee0d50fbdf62b55bdeecd245063d68" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.37" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec280a739b69173e0ffd12c1658507996836ba4e992ed9bc1e5385a0bd72a02" +checksum = "2ab2cc8d9a69d1ab28a41d9149bb06bb927aba8fc9d56625f8b597a564c83f50" dependencies = [ "wast", ] [[package]] name = "wayland-client" -version = "0.28.5" +version = "0.28.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ca44d86554b85cf449f1557edc6cc7da935cc748c8e4bf1c507cbd43bae02c" +checksum = "e3ab332350e502f159382201394a78e3cc12d0f04db863429260164ea40e0355" dependencies = [ "bitflags", "downcast-rs", @@ -2934,9 +2955,9 @@ dependencies = [ [[package]] name = "wayland-commons" -version = "0.28.5" +version = "0.28.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bd75ae380325dbcff2707f0cd9869827ea1d2d6d534cff076858d3f0460fd5a" +checksum = "a21817947c7011bbd0a27e11b17b337bfd022e8544b071a2641232047966fbda" dependencies = [ "nix", "once_cell", @@ -2946,9 +2967,9 @@ dependencies = [ [[package]] name = "wayland-cursor" -version = "0.28.5" +version = "0.28.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37e5455ec72f5de555ec39b5c3704036ac07c2ecd50d0bffe02d5fe2d4e65ab" +checksum = "be610084edd1586d45e7bdd275fe345c7c1873598caa464c4fb835dee70fa65a" dependencies = [ "nix", "wayland-client", @@ -2957,9 +2978,9 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.28.5" +version = "0.28.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95df3317872bcf9eec096c864b69aa4769a1d5d6291a5b513f8ba0af0efbd52c" +checksum = "286620ea4d803bacf61fa087a4242ee316693099ee5a140796aaba02b29f861f" dependencies = [ "bitflags", "wayland-client", @@ -2969,9 +2990,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.28.5" +version = "0.28.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389d680d7bd67512dc9c37f39560224327038deb0f0e8d33f870900441b68720" +checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1" dependencies = [ "proc-macro2", "quote", @@ -2980,18 +3001,18 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.28.5" +version = "0.28.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2907bd297eef464a95ba9349ea771611771aa285b932526c633dc94d5400a8e2" +checksum = "d841fca9aed7febf9bed2e9796c49bf58d4152ceda8ac949ebe00868d8f0feb8" dependencies = [ "pkg-config", ] [[package]] name = "web-sys" -version = "0.3.51" +version = "0.3.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582" +checksum = "01c70a82d842c9979078c772d4a1344685045f1a5628f677c2b2eab4dd7d2696" dependencies = [ "js-sys", "wasm-bindgen", @@ -3008,11 +3029,12 @@ dependencies = [ [[package]] name = "which" -version = "4.1.0" +version = "4.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe" +checksum = "ea187a8ef279bc014ec368c27a920da2024d2a711109bfbe3440585d5cf27ad9" dependencies = [ "either", + "lazy_static", "libc", ] @@ -3101,6 +3123,6 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" diff --git a/Cargo.toml b/Cargo.toml index 7dbac4d1496..c9caf5d3754 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -60,7 +60,7 @@ test-generator = { path = "tests/lib/test-generator" } build-deps = "0.1.4" anyhow = "1.0" glob = "0.3" -rustc_version = "0.3" +rustc_version = "0.4" [dev-dependencies] anyhow = "1.0" diff --git a/deny.toml b/deny.toml index f15cb8423b7..5d7562a7c75 100644 --- a/deny.toml +++ b/deny.toml @@ -169,6 +169,8 @@ deny = [ ] # Certain crates/versions that will be skipped when doing duplicate detection. skip = [ + { name = "ahash", version = "=0.4.7" }, + { name = "hashbrown", version = "=0.9.1" }, { name = "cfg-if", version = "0.1.10" }, { name = "strsim", version = "=0.8.0" }, { name = "semver", version = "=0.11.0" }, diff --git a/lib/api/Cargo.toml b/lib/api/Cargo.toml index ec2fe37c21e..e6eeb661898 100644 --- a/lib/api/Cargo.toml +++ b/lib/api/Cargo.toml @@ -63,7 +63,7 @@ js-sys = "0.3.51" wasmer-derive = { path = "../derive", version = "2.0.0" } # - Optional dependencies for `js`. wasmparser = { version = "0.78", default-features = false, optional = true } -hashbrown = { version = "0.9", optional = true } +hashbrown = { version = "0.11", optional = true } # - Development Dependencies for `js`. [target.'cfg(target_arch = "wasm32")'.dev-dependencies] wat = "1.0" diff --git a/lib/api/src/sys/externals/function.rs b/lib/api/src/sys/externals/function.rs index babb2311a37..773faacd4ef 100644 --- a/lib/api/src/sys/externals/function.rs +++ b/lib/api/src/sys/externals/function.rs @@ -522,13 +522,26 @@ impl Function { /// assert_eq!(sum.call(&[Value::I32(1), Value::I32(2)]).unwrap().to_vec(), vec![Value::I32(3)]); /// ``` pub fn call(&self, params: &[Val]) -> Result, RuntimeError> { + // If it's a function defined in the Wasm, it will always have a call_trampoline if let Some(trampoline) = self.exported.vm_function.call_trampoline { let mut results = vec![Val::null(); self.result_arity()]; self.call_wasm(trampoline, params, &mut results)?; return Ok(results.into_boxed_slice()); } - unimplemented!("The function definition isn't supported for the moment"); + // If it's a function defined in the host + match self.exported.vm_function.kind { + VMFunctionKind::Dynamic => unsafe { + type VMContextWithEnv = VMDynamicFunctionContext>; + let ctx = self.exported.vm_function.vmctx.host_env as *mut VMContextWithEnv; + Ok((*ctx).ctx.call(¶ms)?.into_boxed_slice()) + }, + VMFunctionKind::Static => { + unimplemented!( + "Native function definitions can't be directly called from the host yet" + ); + } + } } pub(crate) fn from_vm_export(store: &Store, wasmer_export: ExportFunction) -> Self { diff --git a/lib/api/tests/js_instance.rs b/lib/api/tests/js_instance.rs index 374f0094140..ba9a4b07fe5 100644 --- a/lib/api/tests/js_instance.rs +++ b/lib/api/tests/js_instance.rs @@ -420,6 +420,31 @@ mod js { assert_eq!(exported.call(&[Val::I32(4)]), Ok(expected)); } + #[wasm_bindgen_test] + fn test_unit_native_function_env() { + let store = Store::default(); + #[derive(WasmerEnv, Clone)] + struct Env { + multiplier: u32, + } + + fn imported_fn(env: &Env, args: &[Val]) -> Result, RuntimeError> { + let value = env.multiplier * args[0].unwrap_i32() as u32; + return Ok(vec![Val::I32(value as _)]); + } + + let imported_signature = FunctionType::new(vec![Type::I32], vec![Type::I32]); + let imported = Function::new_with_env( + &store, + imported_signature, + Env { multiplier: 3 }, + imported_fn, + ); + + let expected = vec![Val::I32(12)].into_boxed_slice(); + assert_eq!(imported.call(&[Val::I32(4)]), Ok(expected)); + } + #[wasm_bindgen_test] fn test_imported_function_with_wasmer_env() { let store = Store::default(); diff --git a/lib/api/tests/sys/export.rs b/lib/api/tests/sys_export.rs similarity index 100% rename from lib/api/tests/sys/export.rs rename to lib/api/tests/sys_export.rs diff --git a/lib/api/tests/sys/externals.rs b/lib/api/tests/sys_externals.rs similarity index 100% rename from lib/api/tests/sys/externals.rs rename to lib/api/tests/sys_externals.rs diff --git a/lib/api/tests/sys/instance.rs b/lib/api/tests/sys_instance.rs similarity index 58% rename from lib/api/tests/sys/instance.rs rename to lib/api/tests/sys_instance.rs index 4afbba187e2..b4d8f33fa74 100644 --- a/lib/api/tests/sys/instance.rs +++ b/lib/api/tests/sys_instance.rs @@ -39,4 +39,32 @@ mod sys { Ok(()) } + + #[test] + fn unit_native_function_env() -> Result<()> { + let store = Store::default(); + #[derive(WasmerEnv, Clone)] + struct Env { + multiplier: u32, + } + + fn imported_fn(env: &Env, args: &[Val]) -> Result, RuntimeError> { + let value = env.multiplier * args[0].unwrap_i32() as u32; + return Ok(vec![Val::I32(value as _)]); + } + + let imported_signature = FunctionType::new(vec![Type::I32], vec![Type::I32]); + let imported = Function::new_with_env( + &store, + imported_signature, + Env { multiplier: 3 }, + imported_fn, + ); + + let expected = vec![Val::I32(12)].into_boxed_slice(); + let result = imported.call(&[Val::I32(4)])?; + assert_eq!(result, expected); + + Ok(()) + } } diff --git a/lib/api/tests/sys/module.rs b/lib/api/tests/sys_module.rs similarity index 100% rename from lib/api/tests/sys/module.rs rename to lib/api/tests/sys_module.rs diff --git a/lib/api/tests/sys/reference_types.rs b/lib/api/tests/sys_reference_types.rs similarity index 100% rename from lib/api/tests/sys/reference_types.rs rename to lib/api/tests/sys_reference_types.rs diff --git a/lib/compiler-cranelift/Cargo.toml b/lib/compiler-cranelift/Cargo.toml index 0a069948487..f7b4ee8e9bb 100644 --- a/lib/compiler-cranelift/Cargo.toml +++ b/lib/compiler-cranelift/Cargo.toml @@ -15,20 +15,20 @@ edition = "2018" wasmer-compiler = { path = "../compiler", version = "2.0.0", features = ["translator"], default-features = false } wasmer-vm = { path = "../vm", version = "2.0.0" } wasmer-types = { path = "../types", version = "2.0.0", default-features = false, features = ["std"] } -cranelift-entity = { version = "0.74", default-features = false } -cranelift-codegen = { version = "0.74", default-features = false, features = ["x86", "arm64"] } -cranelift-frontend = { version = "0.74", default-features = false } +cranelift-entity = { version = "0.76", default-features = false } +cranelift-codegen = { version = "0.76", default-features = false, features = ["x86", "arm64"] } +cranelift-frontend = { version = "0.76", default-features = false } tracing = "0.1" -hashbrown = { version = "0.9", optional = true } +hashbrown = { version = "0.11", optional = true } rayon = "1.5" more-asserts = "0.2" -gimli = { version = "0.24", optional = true } +gimli = { version = "0.25", optional = true } smallvec = "1.6" loupe = "0.1" [dev-dependencies] target-lexicon = { version = "0.12", default-features = false } -cranelift-codegen = { version = "0.74", features = ["all-arch"] } +cranelift-codegen = { version = "0.76", 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 278390a0850..4d5c2258cb4 100644 --- a/lib/compiler-cranelift/src/address_map.rs +++ b/lib/compiler-cranelift/src/address_map.rs @@ -1,7 +1,7 @@ // This file contains code from external sources. // Attributions: https://github.com/wasmerio/wasmer/blob/master/ATTRIBUTIONS.md -use cranelift_codegen::machinst::buffer::MachSrcLoc; +use cranelift_codegen::MachSrcLoc; use cranelift_codegen::{isa, Context}; use wasmer_compiler::{wasmparser::Range, FunctionAddressMap, InstructionAddressMap, SourceLoc}; diff --git a/lib/compiler-cranelift/src/func_environ.rs b/lib/compiler-cranelift/src/func_environ.rs index 25b9bb68df1..2cdab38e1f9 100644 --- a/lib/compiler-cranelift/src/func_environ.rs +++ b/lib/compiler-cranelift/src/func_environ.rs @@ -30,11 +30,6 @@ pub fn get_function_name(func_index: FunctionIndex) -> ir::ExternalName { ir::ExternalName::user(0, func_index.as_u32()) } -/// The type of the `current_length` field. -pub fn type_of_vmmemory_definition_current_length(vmoffsets: &VMOffsets) -> ir::Type { - ir::Type::int(u16::from(vmoffsets.size_of_vmmemory_definition_current_length()) * 8).unwrap() -} - /// The type of the `current_elements` field. pub fn type_of_vmtable_definition_current_elements(vmoffsets: &VMOffsets) -> ir::Type { ir::Type::int(u16::from(vmoffsets.size_of_vmtable_definition_current_elements()) * 8).unwrap() @@ -1049,7 +1044,7 @@ impl<'module_environment> BaseFuncEnvironment for FuncEnvironment<'module_enviro let heap_bound = func.create_global_value(ir::GlobalValueData::Load { base: ptr, offset: Offset32::new(current_length_offset), - global_type: type_of_vmmemory_definition_current_length(&self.offsets), + global_type: pointer_type, readonly: false, }); ( diff --git a/lib/compiler-llvm/Cargo.toml b/lib/compiler-llvm/Cargo.toml index 5168ce2d0bb..095f6d61691 100644 --- a/lib/compiler-llvm/Cargo.toml +++ b/lib/compiler-llvm/Cargo.toml @@ -17,7 +17,7 @@ wasmer-vm = { path = "../vm", version = "2.0.0" } wasmer-types = { path = "../types", version = "2.0.0" } target-lexicon = { version = "0.12", default-features = false } smallvec = "1.6" -object = { version = "0.25", default-features = false, features = ["read"] } +object = { version = "0.26", default-features = false, features = ["read"] } libc = { version = "^0.2", default-features = false } byteorder = "1" itertools = "0.10" @@ -35,7 +35,7 @@ cc = "1.0" lazy_static = "1.4" regex = "1.3" semver = "1.0" -rustc_version = "0.2" +rustc_version = "0.4" [features] test = [] diff --git a/lib/compiler-singlepass/Cargo.toml b/lib/compiler-singlepass/Cargo.toml index d21bd93d805..31a9f51ace7 100644 --- a/lib/compiler-singlepass/Cargo.toml +++ b/lib/compiler-singlepass/Cargo.toml @@ -16,7 +16,7 @@ wasmer-compiler = { path = "../compiler", version = "2.0.0", features = ["transl wasmer-vm = { path = "../vm", version = "2.0.0" } wasmer-types = { path = "../types", version = "2.0.0", default-features = false, features = ["std"] } rayon = { version = "1.5", optional = true } -hashbrown = { version = "0.9", optional = true } +hashbrown = { version = "0.11", optional = true } more-asserts = "0.2" dynasm = "1.0" dynasmrt = "1.0" diff --git a/lib/compiler/Cargo.toml b/lib/compiler/Cargo.toml index 50ffde6798e..64e22f28e13 100644 --- a/lib/compiler/Cargo.toml +++ b/lib/compiler/Cargo.toml @@ -16,7 +16,7 @@ wasmer-types = { path = "../types", version = "2.0.0", default-features = false wasmparser = { version = "0.78", optional = true, default-features = false } target-lexicon = { version = "0.12", default-features = false } enumset = "1.0" -hashbrown = { version = "0.9", optional = true } +hashbrown = { version = "0.11", optional = true } serde = { version = "1.0", features = ["derive"], optional = true } thiserror = "1.0" serde_bytes = { version = "0.11", optional = true } diff --git a/lib/object/Cargo.toml b/lib/object/Cargo.toml index a6f38b04f78..810ce6d94bd 100644 --- a/lib/object/Cargo.toml +++ b/lib/object/Cargo.toml @@ -16,5 +16,5 @@ wasmer-compiler = { path = "../compiler", version = "2.0.0", default-features = "std", "translator" ] } -object = { version = "0.25", default-features = false, features = ["write"] } +object = { version = "0.26", default-features = false, features = ["write"] } thiserror = "1.0" diff --git a/rust-toolchain b/rust-toolchain index 08369aae5eb..74df8b16982 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -1.51 +1.53 diff --git a/tests/ignores.txt b/tests/ignores.txt index cde3fb4d640..0deb2277124 100644 --- a/tests/ignores.txt +++ b/tests/ignores.txt @@ -35,6 +35,8 @@ cranelift multi_value_imports::dylib singlepass multi_value_imports::dylib singlepass multi_value_imports::dynamic +# Memory load doesn't trap as expected when out out bounds in Windows +windows+cranelift spec::memory_grow # LLVM/Universal doesn't work in macOS M1. Skip all tests llvm+universal+macos+aarch64 * diff --git a/tests/lib/wast/Cargo.toml b/tests/lib/wast/Cargo.toml index f6c3306aff9..9f44668734f 100644 --- a/tests/lib/wast/Cargo.toml +++ b/tests/lib/wast/Cargo.toml @@ -14,7 +14,7 @@ edition = "2018" anyhow = "1.0" wasmer = { path = "../../../lib/api", version = "2.0.0", default-features = false, features = ["experimental-reference-types-extern-ref"] } wasmer-wasi = { path = "../../../lib/wasi", version = "2.0.0" } -wast = "35.0" +wast = "37.0" serde = "1" tempfile = "3" thiserror = "1.0" diff --git a/tests/lib/wast/src/wast.rs b/tests/lib/wast/src/wast.rs index c9d3db8fc0a..112cab7fd50 100644 --- a/tests/lib/wast/src/wast.rs +++ b/tests/lib/wast/src/wast.rs @@ -149,7 +149,7 @@ impl Wast { bail!("expected '{}', got '{}'", expected, actual) } - fn run_directive(&mut self, directive: wast::WastDirective) -> Result<()> { + fn run_directive(&mut self, test: &Path, directive: wast::WastDirective) -> Result<()> { use wast::WastDirective::*; match directive { @@ -197,11 +197,14 @@ impl Wast { } AssertInvalid { span: _, - mut module, + module, message, } => { - let bytes = module.encode()?; - let err = match self.module(None, &bytes) { + let wasm = match module { + wast::QuoteModule::Module(mut m) => m.encode()?, + wast::QuoteModule::Quote(list) => self.parse_quote_module(test, &list)?, + }; + let err = match self.module(None, &wasm) { Ok(()) => bail!("expected module to fail to build"), Err(e) => e, }; @@ -217,6 +220,9 @@ impl Wast { QuoteModule { .. } => { // Do nothing } + AssertUncaughtException { .. } => { + // Do nothing for now + } AssertMalformed { module, span: _, @@ -258,9 +264,9 @@ impl Wast { } /// Run a wast script from a byte buffer. - pub fn run_buffer(&mut self, filename: &str, wast: &[u8]) -> Result<()> { + pub fn run_buffer(&mut self, test: &Path, wast: &[u8]) -> Result<()> { let wast = str::from_utf8(wast)?; - + let filename = test.to_str().unwrap(); let adjust_wast = |mut err: wast::Error| { err.set_path(filename.as_ref()); err.set_text(wast); @@ -272,7 +278,7 @@ impl Wast { let mut errors = Vec::with_capacity(ast.directives.len()); for directive in ast.directives { let sp = directive.span(); - if let Err(e) = self.run_directive(directive) { + if let Err(e) = self.run_directive(&test, directive) { let message = format!("{}", e); // If depends on an instance that doesn't exist if message.contains("no previous instance found") { @@ -304,10 +310,33 @@ impl Wast { Ok(()) } + fn parse_quote_module(&self, test: &Path, source: &[&[u8]]) -> Result> { + let mut ret = String::new(); + for src in source { + match str::from_utf8(src) { + Ok(s) => ret.push_str(s), + Err(_) => bail!("malformed UTF-8 encoding"), + } + ret.push_str(" "); + } + let buf = wast::parser::ParseBuffer::new(&ret)?; + let mut wat = wast::parser::parse::(&buf)?; + + // TODO: when memory64 merges into the proper spec then this should be + // removed since it will presumably no longer be a text-format error but + // rather a validation error. Currently all non-memory64 proposals + // assert that this offset is a text-parser error, whereas with memory64 + // support that error is deferred until later. + if ret.contains("offset=4294967296") && !test.iter().any(|t| t == "memory64") { + bail!("i32 constant out of bounds"); + } + Ok(wat.module.encode()?) + } + /// Run a wast script from a file. pub fn run_file(&mut self, path: &Path) -> Result<()> { let bytes = std::fs::read(path)?; - self.run_buffer(path.to_str().unwrap(), &bytes) + self.run_buffer(path, &bytes) } }