diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index f0189ab..5b83e33 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -22,7 +22,7 @@ RUN ./emsdk activate 3.1.69 RUN curl -sSf https://mirrors.ustc.edu.cn/misc/rustup-install.sh | sh -s -- -y RUN bash -c ". /root/.cargo/env" -RUN bash -c ". ~/.cargo/env && rustup install 1.81.0 && rustup default 1.81.0" +RUN bash -c ". ~/.cargo/env && rustup install 1.83.0 && rustup default 1.83.0" WORKDIR /home/admin WORKDIR /opt diff --git a/.devcontainer/install_rust.sh b/.devcontainer/install_rust.sh index cd56cf3..79f2392 100644 --- a/.devcontainer/install_rust.sh +++ b/.devcontainer/install_rust.sh @@ -2,5 +2,5 @@ set -e curl -sSf https://mirrors.ustc.edu.cn/misc/rustup-install.sh | sh -s -- -y . "$HOME/.cargo/env" -rustup install 1.81.0 -rustup default 1.81.0 +rustup install 1.83.0 +rustup default 1.83.0 diff --git a/.github/workflows/dtvm_sol_dev_docker_release.yml b/.github/workflows/dtvm_sol_dev_docker_release.yml index d9252bf..08b6b3f 100644 --- a/.github/workflows/dtvm_sol_dev_docker_release.yml +++ b/.github/workflows/dtvm_sol_dev_docker_release.yml @@ -31,6 +31,7 @@ jobs: uses: docker/metadata-action@v4 with: images: dtvmdev1/dtvm-sol-dev-x64 + tags: 1.83.0 - name: Build and push Docker image uses: docker/build-push-action@v3 with: diff --git a/.github/workflows/dtvm_sol_test.yml b/.github/workflows/dtvm_sol_test.yml index df96eb9..f5ca83a 100644 --- a/.github/workflows/dtvm_sol_test.yml +++ b/.github/workflows/dtvm_sol_test.yml @@ -19,7 +19,7 @@ jobs: name: Build and test DTVM_SolSDK on x86 runs-on: ubuntu-latest container: - image: dtvmdev1/dtvm-sol-dev-x64:main + image: dtvmdev1/dtvm-sol-dev-x64:1.83.0 steps: - name: Check out code uses: actions/checkout@v3 diff --git a/.github/workflows/nightly_release.yml b/.github/workflows/nightly_release.yml index bfc72e5..2aee8f1 100644 --- a/.github/workflows/nightly_release.yml +++ b/.github/workflows/nightly_release.yml @@ -12,7 +12,7 @@ jobs: name: Build and Package DTVM_SolSDK Nightly # Updated name runs-on: ubuntu-latest container: - image: dtvmdev1/dtvm-sol-dev-x64:main + image: dtvmdev1/dtvm-sol-dev-x64:1.83.0 steps: - name: Check out code uses: actions/checkout@v4 # Use v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ce33e25..d32ac97 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,7 +13,7 @@ jobs: name: Build, Create Release, and Upload Artifact runs-on: ubuntu-latest container: - image: dtvmdev1/dtvm-sol-dev-x64:main + image: dtvmdev1/dtvm-sol-dev-x64:1.83.0 steps: - name: Check out code uses: actions/checkout@v4 diff --git a/Cargo.lock b/Cargo.lock index 4115194..ae588d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,18 +17,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy 0.7.35", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -455,20 +443,35 @@ dependencies = [ "libc", ] +[[package]] +name = "cranelift-assembler-x64" +version = "0.118.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e4b56ebe316895d3fa37775d0a87b0c889cc933f5c8b253dbcc7c7bcb7fe7e4" +dependencies = [ + "cranelift-assembler-x64-meta", +] + +[[package]] +name = "cranelift-assembler-x64-meta" +version = "0.118.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95cabbc01dfbd7dcd6c329ca44f0212910309c221797ac736a67a5bc8857fe1b" + [[package]] name = "cranelift-bforest" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15d04a0ce86cb36ead88ad68cf693ffd6cda47052b9e0ac114bc47fd9cd23c4" +checksum = "76ffe46df300a45f1dc6f609dc808ce963f0e3a2e971682c479a2d13e3b9b8ef" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-bitset" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c6e3969a7ce267259ce244b7867c5d3bc9e65b0a87e81039588dfdeaede9f34" +checksum = "b265bed7c51e1921fdae6419791d31af77d33662ee56d7b0fa0704dc8d231cab" dependencies = [ "serde", "serde_derive", @@ -476,11 +479,12 @@ dependencies = [ [[package]] name = "cranelift-codegen" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c22032c4cb42558371cf516bb47f26cdad1819d3475c133e93c49f50ebf304e" +checksum = "e606230a7e3a6897d603761baee0d19f88d077f17b996bb5089488a29ae96e41" dependencies = [ "bumpalo", + "cranelift-assembler-x64", "cranelift-bforest", "cranelift-bitset", "cranelift-codegen-meta", @@ -489,8 +493,9 @@ dependencies = [ "cranelift-entity", "cranelift-isle", "gimli", - "hashbrown 0.14.5", + "hashbrown", "log", + "pulley-interpreter", "regalloc2", "rustc-hash", "serde", @@ -500,33 +505,35 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c904bc71c61b27fc57827f4a1379f29de64fe95653b620a3db77d59655eee0b8" +checksum = "8a63bffafc23bc60969ad528e138788495999d935f0adcfd6543cb151ca8637d" dependencies = [ + "cranelift-assembler-x64", "cranelift-codegen-shared", + "pulley-interpreter", ] [[package]] name = "cranelift-codegen-shared" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40180f5497572f644ce88c255480981ae2ec1d7bb4d8e0c0136a13b87a2f2ceb" +checksum = "af50281b67324b58e843170a6a5943cf6d387c06f7eeacc9f5696e4ab7ae7d7e" [[package]] name = "cranelift-control" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d132c6d0bd8a489563472afc171759da0707804a65ece7ceb15a8c6d7dd5ef" +checksum = "8c20c1b38d1abfbcebb0032e497e71156c0e3b8dcb3f0a92b9863b7bcaec290c" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d0d9618275474fbf679dd018ac6e009acbd6ae6850f6a67be33fb3b00b323" +checksum = "0c2c67d95507c51b4a1ff3f3555fe4bfec36b9e13c1b684ccc602736f5d5f4a2" dependencies = [ "cranelift-bitset", "serde", @@ -535,9 +542,9 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fac41e16729107393174b0c9e3730fb072866100e1e64e80a1a963b2e484d57" +checksum = "4e002691cc69c38b54fc7ec93e5be5b744f627d027031d991cc845d1d512d0ce" dependencies = [ "cranelift-codegen", "log", @@ -547,15 +554,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca20d576e5070044d0a72a9effc2deacf4d6aa650403189d8ea50126483944d" +checksum = "e93588ed1796cbcb0e2ad160403509e2c5d330d80dd6e0014ac6774c7ebac496" [[package]] name = "cranelift-native" -version = "0.116.1" +version = "0.118.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dee82f3f1f2c4cba9177f1cc5e350fe98764379bcd29340caa7b01f85076c7" +checksum = "e5b09bdd6407bf5d89661b80cf926ce731c9e8cc184bf49102267a2369a8358e" dependencies = [ "cranelift-codegen", "libc", @@ -998,15 +1005,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", -] - [[package]] name = "hashbrown" version = "0.15.2" @@ -1273,7 +1271,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown", "serde", ] @@ -1680,7 +1678,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "crc32fast", - "hashbrown 0.15.2", + "hashbrown", "indexmap", "memchr", ] @@ -1827,7 +1825,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -1888,13 +1886,12 @@ dependencies = [ [[package]] name = "pulley-interpreter" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62d95f8575df49a2708398182f49a888cf9dc30210fb1fd2df87c889edcee75d" +checksum = "0c3325791708ad50580aeacfcce06cb5e462c9ba7a2368e109cb2012b944b70e" dependencies = [ "cranelift-bitset", "log", - "sptr", "wasmtime-math", ] @@ -2026,7 +2023,7 @@ checksum = "dc06e6b318142614e4a48bc725abbf08ff166694835c43c9dae5a9009704639a" dependencies = [ "allocator-api2", "bumpalo", - "hashbrown 0.15.2", + "hashbrown", "log", "rustc-hash", "smallvec", @@ -2711,21 +2708,22 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.202.0" +version = "0.226.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd106365a7f5f7aa3c1916a98cbb3ad477f5ff96ddb130285a91c6e7429e67a" +checksum = "f7d81b727619aec227dce83e7f7420d4e56c79acd044642a356ea045b98d4e13" dependencies = [ - "leb128", + "leb128fmt", + "wasmparser 0.226.0", ] [[package]] name = "wasm-encoder" -version = "0.221.3" +version = "0.228.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc8444fe4920de80a4fe5ab564fff2ae58b6b73166b89751f8c6c93509da32e5" +checksum = "05d30290541f2d4242a162bbda76b8f2d8b1ac59eab3568ed6f2327d52c9b2c4" dependencies = [ - "leb128", - "wasmparser 0.221.3", + "leb128fmt", + "wasmparser 0.228.0", ] [[package]] @@ -2740,23 +2738,25 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.202.0" +version = "0.226.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6998515d3cf3f8b980ef7c11b29a9b1017d4cf86b99ae93b546992df9931413" +checksum = "bc28600dcb2ba68d7e5f1c3ba4195c2bddc918c0243fd702d0b6dbd05689b681" dependencies = [ "bitflags", + "hashbrown", "indexmap", "semver", + "serde", ] [[package]] name = "wasmparser" -version = "0.221.3" +version = "0.228.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06bfa36ab3ac2be0dee563380147a5b81ba10dd8885d7fbbc9eb574be67d185" +checksum = "4abf1132c1fdf747d56bbc1bb52152400c70f336870f968b85e89ea422198ae3" dependencies = [ "bitflags", - "hashbrown 0.15.2", + "hashbrown", "indexmap", "semver", "serde", @@ -2775,20 +2775,20 @@ dependencies = [ [[package]] name = "wasmprinter" -version = "0.221.3" +version = "0.226.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7343c42a97f2926c7819ff81b64012092ae954c5d83ddd30c9fcdefd97d0b283" +checksum = "753a0516fa6c01756ee861f36878dfd9875f273aea9409d9ea390a333c5bcdc2" dependencies = [ "anyhow", "termcolor", - "wasmparser 0.221.3", + "wasmparser 0.226.0", ] [[package]] name = "wasmtime" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11976a250672556d1c4c04c6d5d7656ac9192ac9edc42a4587d6c21460010e69" +checksum = "b9fe78033c72da8741e724d763daf1375c93a38bfcea99c873ee4415f6098c3f" dependencies = [ "addr2line", "anyhow", @@ -2800,7 +2800,7 @@ dependencies = [ "encoding_rs", "fxprof-processed-profile", "gimli", - "hashbrown 0.14.5", + "hashbrown", "indexmap", "ittapi", "libc", @@ -2823,8 +2823,8 @@ dependencies = [ "sptr", "target-lexicon", "trait-variant", - "wasm-encoder 0.221.3", - "wasmparser 0.221.3", + "wasm-encoder 0.226.0", + "wasmparser 0.226.0", "wasmtime-asm-macros", "wasmtime-cache", "wasmtime-component-macro", @@ -2844,18 +2844,18 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f178b0d125201fbe9f75beaf849bd3e511891f9e45ba216a5b620802ccf64f2" +checksum = "47f3d44ae977d70ccf80938b371d5ec60b6adedf60800b9e8dd1223bb69f4cbc" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1161c8f62880deea07358bc40cceddc019f1c81d46007bc390710b2fe24ffc" +checksum = "e209505770c7f38725513dba37246265fa6f724c30969de1e9d2a9e6c8f55099" dependencies = [ "anyhow", "base64 0.21.7", @@ -2873,9 +2873,9 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d74de6592ed945d0a602f71243982a304d5d02f1e501b638addf57f42d57dfaf" +checksum = "397e68ee29eb072d8d8741c9d2c971a284cd1bc960ebf2c1f6a33ea6ba16d6e1" dependencies = [ "anyhow", "proc-macro2", @@ -2888,15 +2888,15 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707dc7b3c112ab5a366b30cfe2fb5b2f8e6a0f682f16df96a5ec582bfe6f056e" +checksum = "f292ef5eb2cf3d414c2bde59c7fa0feeba799c8db9a8c5a656ad1d1a1d05e10b" [[package]] name = "wasmtime-cranelift" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "366be722674d4bf153290fbcbc4d7d16895cc82fb3e869f8d550ff768f9e9e87" +checksum = "52fc12eb8ea695a30007a4849a5fd56209dd86a15579e92e0c27c27122818505" dependencies = [ "anyhow", "cfg-if", @@ -2909,19 +2909,20 @@ dependencies = [ "itertools 0.12.1", "log", "object", + "pulley-interpreter", "smallvec", "target-lexicon", "thiserror", - "wasmparser 0.221.3", + "wasmparser 0.226.0", "wasmtime-environ", "wasmtime-versioned-export-macros", ] [[package]] name = "wasmtime-environ" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdadc1af7097347aa276a4f008929810f726b5b46946971c660b6d421e9994ad" +checksum = "5b6b4bf08e371edf262cccb62de10e214bd4aaafaa069f1cd49c9c1c3a5ae8e4" dependencies = [ "anyhow", "cpp_demangle", @@ -2938,17 +2939,17 @@ dependencies = [ "serde_derive", "smallvec", "target-lexicon", - "wasm-encoder 0.221.3", - "wasmparser 0.221.3", + "wasm-encoder 0.226.0", + "wasmparser 0.226.0", "wasmprinter", "wasmtime-component-util", ] [[package]] name = "wasmtime-fiber" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccba90d4119f081bca91190485650730a617be1fff5228f8c4757ce133d21117" +checksum = "f4c8828d7d8fbe90d087a9edea9223315caf7eb434848896667e5d27889f1173" dependencies = [ "anyhow", "cc", @@ -2961,10 +2962,11 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e7b61488a5ee00c35c8c22de707c36c0aecacf419a3be803a6a2ba5e860f56a" +checksum = "ab9eff86dedd48b023199de2d266f5d3e37bc7c5bafdc1e3e3057214649ecf5a" dependencies = [ + "cc", "object", "rustix 0.38.44", "wasmtime-versioned-export-macros", @@ -2972,9 +2974,9 @@ dependencies = [ [[package]] name = "wasmtime-jit-icache-coherence" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec5e8552e01692e6c2e5293171704fed8abdec79d1a6995a0870ab190e5747d1" +checksum = "a54f6c6c7e9d7eeee32dfcc10db7f29d505ee7dd28d00593ea241d5f70698e64" dependencies = [ "anyhow", "cfg-if", @@ -2984,24 +2986,24 @@ dependencies = [ [[package]] name = "wasmtime-math" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29210ec2aa25e00f4d54605cedaf080f39ec01a872c5bd520ad04c67af1dde17" +checksum = "b1108aad2e6965698f9207ea79b80eda2b3dcc57dcb69f4258296d4664ae32cd" dependencies = [ "libm", ] [[package]] name = "wasmtime-slab" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb5821a96fa04ac14bc7b158bb3d5cd7729a053db5a74dad396cd513a5e5ccf" +checksum = "84d6a321317281b721c5530ef733e8596ecc6065035f286ccd155b3fa8e0ab2f" [[package]] name = "wasmtime-versioned-export-macros" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ff86db216dc0240462de40c8290887a613dddf9685508eb39479037ba97b5b" +checksum = "5732a5c86efce7bca121a61d8c07875f6b85c1607aa86753b40f7f8bd9d3a780" dependencies = [ "proc-macro2", "quote", @@ -3010,9 +3012,9 @@ dependencies = [ [[package]] name = "wasmtime-wasi" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d1be69bfcab1bdac74daa7a1f9695ab992b9c8e21b9b061e7d66434097e0ca4" +checksum = "9b425ede2633fade96bd624b6f35cea5f8be1995d149530882dbc35efbf1e31f" dependencies = [ "anyhow", "async-trait", @@ -3032,25 +3034,38 @@ dependencies = [ "thiserror", "tokio", "tracing", - "trait-variant", "url", "wasmtime", + "wasmtime-wasi-io", "wiggle", "windows-sys 0.59.0", ] +[[package]] +name = "wasmtime-wasi-io" +version = "31.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ec650d8891ec5ff823bdcefe3b370278becd1f33125bcfdcf628943dcde676" +dependencies = [ + "anyhow", + "async-trait", + "bytes", + "futures", + "wasmtime", +] + [[package]] name = "wasmtime-winch" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdbabfb8f20502d5e1d81092b9ead3682ae59988487aafcd7567387b7a43cf8f" +checksum = "3aa4741ee66a52e2f0ec5f79040017123ba47d2dff9d994b35879cc2b7f468d4" dependencies = [ "anyhow", "cranelift-codegen", "gimli", "object", "target-lexicon", - "wasmparser 0.221.3", + "wasmparser 0.226.0", "wasmtime-cranelift", "wasmtime-environ", "winch-codegen", @@ -3058,9 +3073,9 @@ dependencies = [ [[package]] name = "wasmtime-wit-bindgen" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8358319c2dd1e4db79e3c1c5d3a5af84956615343f9f89f4e4996a36816e06e6" +checksum = "505c13fa0cac6c43e805347acf1e916c8de54e3790f2c22873c5692964b09b62" dependencies = [ "anyhow", "heck", @@ -3101,9 +3116,9 @@ dependencies = [ [[package]] name = "wiggle" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9af35bc9629c52c261465320a9a07959164928b4241980ba1cf923b9e6751d" +checksum = "1dc9a83fe01faa51423fc84941cdbe0ec33ba1e9a75524a560a27a4ad1ff2c3b" dependencies = [ "anyhow", "async-trait", @@ -3116,9 +3131,9 @@ dependencies = [ [[package]] name = "wiggle-generate" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cf267dd05673912c8138f4b54acabe6bd53407d9d1536f0fadb6520dd16e101" +checksum = "d250c01cd52cfdb40aad167fad579af55acbeccb85a54827099d31dc1b90cbd7" dependencies = [ "anyhow", "heck", @@ -3131,9 +3146,9 @@ dependencies = [ [[package]] name = "wiggle-macro" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c5c473d4198e6c2d377f3809f713ff0c110cab88a0805ae099a82119ee250c" +checksum = "35be0aee84be808a5e17f6b732e110eb75703d9d6e66e22c7464d841aa2600c5" dependencies = [ "proc-macro2", "quote", @@ -3174,9 +3189,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winch-codegen" -version = "29.0.1" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f849ef2c5f46cb0a20af4b4487aaa239846e52e2c03f13fa3c784684552859c" +checksum = "e02f05457f74ec3c94d5c5caac06b84fd8d9d4d7fa21419189845ed245a53477" dependencies = [ "anyhow", "cranelift-codegen", @@ -3185,7 +3200,7 @@ dependencies = [ "smallvec", "target-lexicon", "thiserror", - "wasmparser 0.221.3", + "wasmparser 0.226.0", "wasmtime-cranelift", "wasmtime-environ", ] @@ -3361,9 +3376,9 @@ dependencies = [ [[package]] name = "wit-parser" -version = "0.221.3" +version = "0.226.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "896112579ed56b4a538b07a3d16e562d101ff6265c46b515ce0c701eef16b2ac" +checksum = "33f007722bfd43a2978c5b8b90f02c927dddf0f11c5f5b50929816b3358718cd" dependencies = [ "anyhow", "id-arena", @@ -3374,7 +3389,7 @@ dependencies = [ "serde_derive", "serde_json", "unicode-xid", - "wasmparser 0.221.3", + "wasmparser 0.226.0", ] [[package]] @@ -3391,16 +3406,16 @@ dependencies = [ [[package]] name = "wizer" -version = "8.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaecdae7465159e72b0cf6de6686fd0737f01e715f49a0adcbd89451ff8cb56a" +checksum = "1aee5402e9c06fb330c2edd1d7ae4bbdc9214b2cd19774199c9f6ec313d0237a" dependencies = [ "anyhow", "cap-std", "log", "rayon", - "wasm-encoder 0.202.0", - "wasmparser 0.202.0", + "wasm-encoder 0.228.0", + "wasmparser 0.228.0", "wasmtime", "wasmtime-wasi", ] @@ -3481,33 +3496,13 @@ dependencies = [ "wizer", ] -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", -] - [[package]] name = "zerocopy" version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ - "zerocopy-derive 0.8.25", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "zerocopy-derive", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 266eb3e..76e9d9a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ home = "0.5.11" ethabi = "18.0.0" ethereum-types = "0.14.1" tokio = "1.44.2" -wizer = "8.0.0" +wizer = "9.0.0" [features] default = ["inkwell/llvm16-0-force-static"] diff --git a/README.md b/README.md index 2a67418..1ff137c 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ DTVM_SolSDK works by accepting Solidity's Yul intermediate representation (IR) a * Solidity Compiler 0.8.29/(0.8.25+) * LLVM 16 -* Rust 1.81 or later +* Rust 1.83 or later * Binaryen (`brew install binaryen` on macOS, `apt install -y binaryen` on Ubuntu) ### Building the Project diff --git a/docker/Dockerfile b/docker/Dockerfile index dd92f90..67fd642 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -23,8 +23,8 @@ RUN ./emsdk activate 3.1.69 USER root RUN curl -sSf https://mirrors.ustc.edu.cn/misc/rustup-install.sh | sh -s -- -y RUN bash -c ". /root/.cargo/env" -COPY cargo_config /root/.cargo/config -RUN bash -c ". ~/.cargo/env && rustup install 1.81.0 && rustup default 1.81.0" +COPY cargo_config /root/.cargo/config.toml +RUN bash -c ". ~/.cargo/env && rustup install 1.83.0 && rustup default 1.83.0" WORKDIR /home/admin USER root WORKDIR /opt diff --git a/docker/docker_build.sh b/docker/docker_build.sh index f3a8b2a..fee1c41 100755 --- a/docker/docker_build.sh +++ b/docker/docker_build.sh @@ -6,6 +6,6 @@ if [ "$1" = "prepare" ]; then ls else cd docker - docker build . --platform linux/x86_64 -f Dockerfile -t dtvmdev1/dtvm-sol-dev-x64:latest + docker build . --platform linux/x86_64 -f Dockerfile -t dtvmdev1/dtvm-sol-dev-x64:1.83.0 cd .. fi diff --git a/docker/install_rust.sh b/docker/install_rust.sh index cd56cf3..79f2392 100644 --- a/docker/install_rust.sh +++ b/docker/install_rust.sh @@ -2,5 +2,5 @@ set -e curl -sSf https://mirrors.ustc.edu.cn/misc/rustup-install.sh | sh -s -- -y . "$HOME/.cargo/env" -rustup install 1.81.0 -rustup default 1.81.0 +rustup install 1.83.0 +rustup default 1.83.0 diff --git a/docs/compilation-guide.md b/docs/compilation-guide.md index 1d5ff3e..eefec98 100644 --- a/docs/compilation-guide.md +++ b/docs/compilation-guide.md @@ -15,7 +15,7 @@ Before compiling DTVM_SolSDK, you need to install the following dependencies: ### Required Dependencies -1. **Rust 1.81+** +1. **Rust 1.83+** - Rust language and its package manager Cargo 2. **LLVM 16** diff --git a/docs/developer-guide.md b/docs/developer-guide.md index 4b23c46..bd36f27 100644 --- a/docs/developer-guide.md +++ b/docs/developer-guide.md @@ -6,7 +6,7 @@ DTVM_SolSDK is a compiler that translates Solidity's Yul intermediate representa ## Development Environment Setup ### Prerequisites -- Rust 1.81 or newer +- Rust 1.83 or newer - LLVM 16 - Solidity Compiler 0.8.25 - Binaryen (for wasm tools like wasm2wat) diff --git a/docs/user-guide.md b/docs/user-guide.md index 0247d68..64df033 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -12,7 +12,7 @@ Before using DTVM_SolSDK, ensure you have the following prerequisites installed: - Solidity Compiler 0.8.29(0.8.25+) - LLVM 16 -- Rust 1.81 or later +- Rust 1.83 or later - Binaryen (for wasm tools) For detailed installation instructions, refer to the [Developer Guide](developer-guide.md). diff --git a/src/tests/solidity_strings.rs b/src/tests/solidity_strings.rs index 4288d5e..f0c792b 100644 --- a/src/tests/solidity_strings.rs +++ b/src/tests/solidity_strings.rs @@ -7,7 +7,6 @@ /// Url is https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Strings.sol. /// The library provides functions for string operations, such as converting a `uint256` to a string. /// The test cases in this file are used to test the correctness of the library functions. - #[allow(unused)] use super::test_helper::solidity_selector; #[allow(unused)] diff --git a/src/yul2ir/instruction.rs b/src/yul2ir/instruction.rs index f848a75..e7f6934 100644 --- a/src/yul2ir/instruction.rs +++ b/src/yul2ir/instruction.rs @@ -592,10 +592,10 @@ impl<'a> Yul2IRContext<'a> { .builder .borrow_mut() .build_int_add(lhs, rhs, "add_result")?; - return Ok(YulLowLevelValue { + Ok(YulLowLevelValue { value_type: YulLowLevelValueType::from_int_type(result.get_type()), value: result.into(), - }); + }) } else if (self.is_bytes32_value(lhs) || self.is_bytes32_pointer_value(lhs)) && (self.is_bytes32_value(rhs) || self.is_bytes32_pointer_value(rhs)) { @@ -623,7 +623,7 @@ impl<'a> Yul2IRContext<'a> { value_type: YulLowLevelValueType::from_int_type(result.get_type()), value: result.into(), }); - }; + } } YulInstructionName::Sub => { check_args_count(&instr, &args, 2)?; diff --git a/src/yul2ir/usage.rs b/src/yul2ir/usage.rs index 021500e..8e126ff 100644 --- a/src/yul2ir/usage.rs +++ b/src/yul2ir/usage.rs @@ -8,7 +8,7 @@ use super::{ context::{UsageInfo, Yul2IRContext}, }; -impl<'a> Yul2IRContext<'a> { +impl Yul2IRContext<'_> { /// Variable Usage Analysis Functions (Free Functions) #[allow(unused)] fn analyze_expression_usage(expr: &Expression, usage_info: &mut HashMap) { diff --git a/src/yul2ir/var_scope.rs b/src/yul2ir/var_scope.rs index 5da0c26..affca13 100644 --- a/src/yul2ir/var_scope.rs +++ b/src/yul2ir/var_scope.rs @@ -45,7 +45,7 @@ impl<'a, 'b> ScopeGuard<'a, 'b> { } } -impl<'a, 'b> Drop for ScopeGuard<'a, 'b> { +impl Drop for ScopeGuard<'_, '_> { fn drop(&mut self) { self.context.exit_scope(); }