diff --git a/.github/actions/build_and_test/action.yml b/.github/actions/build_and_test/action.yml index 1910029..7a21381 100644 --- a/.github/actions/build_and_test/action.yml +++ b/.github/actions/build_and_test/action.yml @@ -20,6 +20,7 @@ runs: check_name: ${{ matrix.name }} Test Results files: ${{ env.UNIT_TESTS_RESULTS_XML }} action_fail_on_inconclusive: true + comment_mode: off - name: Upload test results (MacOS) if: runner.os == 'macos' @@ -28,6 +29,7 @@ runs: check_name: ${{ matrix.name }} Test Results files: ${{ env.UNIT_TESTS_RESULTS_XML }} action_fail_on_inconclusive: true + comment_mode: off - name: Upload test results (windows) if: runner.os == 'Windows' @@ -36,3 +38,4 @@ runs: check_name: ${{ matrix.name }} Test Results files: ${{ env.UNIT_TESTS_RESULTS_XML }} action_fail_on_inconclusive: true + comment_mode: off diff --git a/Cargo.lock b/Cargo.lock index fefb013..43ce854 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -28,15 +28,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anyhow" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" +checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" [[package]] name = "assert_cmd" @@ -70,9 +70,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" @@ -132,9 +132,9 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.95" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" +checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4" [[package]] name = "cfg-if" @@ -155,7 +155,7 @@ dependencies = [ [[package]] name = "compiler-llvm-builder" -version = "1.0.24" +version = "1.0.25" dependencies = [ "anyhow", "assert_cmd", @@ -267,9 +267,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -277,9 +277,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "filetime" @@ -404,7 +404,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.61", ] [[package]] @@ -445,9 +445,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -511,9 +511,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "heck" @@ -666,9 +666,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" [[package]] name = "linux-raw-sys" @@ -740,9 +740,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -795,7 +795,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.61", ] [[package]] @@ -908,9 +908,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] @@ -994,9 +994,9 @@ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "relative-path" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc" +checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "reqwest" @@ -1063,15 +1063,15 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.60", + "syn 2.0.61", "unicode-ident", ] [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc_version" @@ -1084,9 +1084,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.32" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ "bitflags 2.5.0", "errno", @@ -1106,9 +1106,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -1130,11 +1130,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", "core-foundation", "core-foundation-sys", "libc", @@ -1143,9 +1143,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -1153,35 +1153,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.198" +version = "1.0.201" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" +checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.198" +version = "1.0.201" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" +checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.61", ] [[package]] name = "serde_json" -version = "1.0.116" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", @@ -1265,9 +1265,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.60" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -1341,22 +1341,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.59" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" +checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.59" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" +checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.61", ] [[package]] @@ -1402,16 +1402,15 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -1508,9 +1507,9 @@ checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" [[package]] name = "url" @@ -1590,7 +1589,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.61", "wasm-bindgen-shared", ] @@ -1624,7 +1623,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.60", + "syn 2.0.61", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1645,37 +1644,15 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-sys" version = "0.48.0" diff --git a/Cargo.toml b/Cargo.toml index 13eddfb..2c11e36 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,17 +1,18 @@ [package] name = "compiler-llvm-builder" -version = "1.0.24" +version = "1.0.25" authors = [ "Oleksandr Zarudnyi ", + "Anton Baliasnikov ", ] license = "MIT OR Apache-2.0" edition = "2021" -description = "EraVM LLVM Framework Builder" +description = "ZKsync LLVM Framework Builder" repository = "https://github.com/matter-labs/era-compiler-llvm-builder" [[bin]] -name = "zkevm-llvm" -path = "src/zkevm_llvm/main.rs" +name = "zksync-llvm" +path = "src/zksync_llvm/main.rs" [lib] doctest = false diff --git a/README.md b/README.md index 8d7284f..a2a2912 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -# zkSync Era: LLVM Framework Builder +# ZKsync Era: LLVM Framework Builder -

zkSync Era zkEVM is Ethereum’s most user-centric ZK-rollup +

ZKsync Era is Ethereum’s most user-centric ZK-rollup

-zkSync Era is a layer 2 rollup that uses zero-knowledge proofs to scale Ethereum without compromising on security +ZKsync Era is a layer 2 rollup that uses zero-knowledge proofs to scale Ethereum without compromising on security or decentralization. As it's EVM-compatible (with Solidity/Vyper), 99% of Ethereum projects can redeploy without needing to refactor or re-audit any code. zkSync Era also uses an LLVM-based compiler that will eventually enable developers to write smart contracts in popular languages such as C++ and Rust. -This repository contains the builder of the EraVM fork of the LLVM framework. +This repository contains the builder of the ZKsync fork of the LLVM framework. ## License @@ -30,7 +30,7 @@ at your option. ## Disclaimer -zkSync Era has been through extensive testing and audits, and although it is live, it is still in alpha state and +ZKsync Era has been through extensive testing and audits, and although it is live, it is still in alpha state and will undergo further audits and bug bounty programs. We would love to hear our community's thoughts and suggestions about it! It's important to note that forking it now could potentially lead to missing important diff --git a/src/build_type.rs b/src/build_type.rs index e8eba12..27dd197 100644 --- a/src/build_type.rs +++ b/src/build_type.rs @@ -1,9 +1,9 @@ //! -//! The zkEVM LLVM build type. +//! The ZKsync LLVM build type. //! /// -/// The zkEVM LLVM build type. +/// The ZKsync LLVM build type. /// #[derive(Debug, PartialEq, Eq)] pub enum BuildType { diff --git a/src/lib.rs b/src/lib.rs index f333442..d4a4904 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM builder library. +//! The ZKsync LLVM builder library. //! pub mod build_type; diff --git a/src/llvm_path.rs b/src/llvm_path.rs index f182b98..01d69b5 100644 --- a/src/llvm_path.rs +++ b/src/llvm_path.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM builder constants. +//! The ZKsync LLVM builder constants. //! use std::path::PathBuf; diff --git a/src/lock.rs b/src/lock.rs index f930a9c..5c1dd80 100644 --- a/src/lock.rs +++ b/src/lock.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM builder lock file. +//! The ZKsync LLVM builder lock file. //! use anyhow::Context; diff --git a/src/platforms/aarch64_linux_gnu.rs b/src/platforms/aarch64_linux_gnu.rs index 5c95558..e89727d 100644 --- a/src/platforms/aarch64_linux_gnu.rs +++ b/src/platforms/aarch64_linux_gnu.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM arm64 `linux-gnu` builder. +//! The ZKsync LLVM arm64 `linux-gnu` builder. //! use std::collections::HashSet; diff --git a/src/platforms/aarch64_linux_musl.rs b/src/platforms/aarch64_linux_musl.rs index f33f4a8..fe41b53 100644 --- a/src/platforms/aarch64_linux_musl.rs +++ b/src/platforms/aarch64_linux_musl.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM arm64 `linux-musl` builder. +//! The ZKsync LLVM arm64 `linux-musl` builder. //! use std::collections::HashSet; diff --git a/src/platforms/aarch64_macos.rs b/src/platforms/aarch64_macos.rs index e8629fa..17ddf73 100644 --- a/src/platforms/aarch64_macos.rs +++ b/src/platforms/aarch64_macos.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM arm64 `macos-aarch64` builder. +//! The ZKsync LLVM arm64 `macos-aarch64` builder. //! use std::collections::HashSet; diff --git a/src/platforms/mod.rs b/src/platforms/mod.rs index ac77d16..e95a43a 100644 --- a/src/platforms/mod.rs +++ b/src/platforms/mod.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM builder platforms. +//! The ZKsync LLVM builder platforms. //! pub mod aarch64_linux_gnu; diff --git a/src/platforms/x86_64_linux_gnu.rs b/src/platforms/x86_64_linux_gnu.rs index ee06271..a95ab63 100644 --- a/src/platforms/x86_64_linux_gnu.rs +++ b/src/platforms/x86_64_linux_gnu.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM amd64 `linux-gnu` builder. +//! The ZKsync LLVM amd64 `linux-gnu` builder. //! use std::collections::HashSet; diff --git a/src/platforms/x86_64_linux_musl.rs b/src/platforms/x86_64_linux_musl.rs index 8086cc3..8b93b2f 100644 --- a/src/platforms/x86_64_linux_musl.rs +++ b/src/platforms/x86_64_linux_musl.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM amd64 `linux-musl` builder. +//! The ZKsync LLVM amd64 `linux-musl` builder. //! use std::collections::HashSet; diff --git a/src/platforms/x86_64_macos.rs b/src/platforms/x86_64_macos.rs index 7c5d77a..7a398d7 100644 --- a/src/platforms/x86_64_macos.rs +++ b/src/platforms/x86_64_macos.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM amd64 `macos` builder. +//! The ZKsync LLVM amd64 `macos` builder. //! use std::collections::HashSet; diff --git a/src/platforms/x86_64_windows_gnu.rs b/src/platforms/x86_64_windows_gnu.rs index 79b16b3..a7fa2ee 100644 --- a/src/platforms/x86_64_windows_gnu.rs +++ b/src/platforms/x86_64_windows_gnu.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM amd64 `windows-gnu` builder. +//! The ZKsync LLVM amd64 `windows-gnu` builder. //! use std::collections::HashSet; diff --git a/src/utils.rs b/src/utils.rs index 3d36f8c..a8766af 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -67,9 +67,8 @@ pub fn download(url: &str, path: &str) -> anyhow::Result<()> { .retries(DOWNLOAD_RETRIES) .timeout(Duration::from_secs(DOWNLOAD_TIMEOUT_SECONDS)) .build()?; - let downloads = vec![downloader::Download::new(url)]; - while let Err(error) = downloader.download(downloads.as_slice()) { - eprintln!("MUSL download from `{url}` failed: {:?}", error); + while let Err(error) = downloader.download(&[downloader::Download::new(url)]) { + eprintln!("MUSL download from `{url}` failed: {error}"); } Ok(()) } diff --git a/src/zkevm_llvm/arguments.rs b/src/zksync_llvm/arguments.rs similarity index 92% rename from src/zkevm_llvm/arguments.rs rename to src/zksync_llvm/arguments.rs index 5fbbfc3..5d1b50a 100644 --- a/src/zkevm_llvm/arguments.rs +++ b/src/zksync_llvm/arguments.rs @@ -1,14 +1,14 @@ //! -//! The zkEVM LLVM builder arguments. +//! The ZKsync LLVM builder arguments. //! use structopt::StructOpt; /// -/// The zkEVM LLVM builder arguments. +/// The ZKsync LLVM builder arguments. /// #[derive(Debug, StructOpt)] -#[structopt(name = "llvm-builder", about = "The zkEVM LLVM framework builder")] +#[structopt(name = "llvm-builder", about = "The ZKsync LLVM framework builder")] pub enum Arguments { /// Clone the branch specified in `LLVM.lock`. Clone { diff --git a/src/zkevm_llvm/main.rs b/src/zksync_llvm/main.rs similarity index 99% rename from src/zkevm_llvm/main.rs rename to src/zksync_llvm/main.rs index 62c9b6d..096c083 100644 --- a/src/zkevm_llvm/main.rs +++ b/src/zksync_llvm/main.rs @@ -1,5 +1,5 @@ //! -//! The zkEVM LLVM builder. +//! The ZKsync LLVM builder. //! pub(crate) mod arguments; diff --git a/tests/build.rs b/tests/build.rs index 024ae52..6e8f047 100644 --- a/tests/build.rs +++ b/tests/build.rs @@ -21,7 +21,7 @@ use rstest::rstest; /// Returns `Ok(())` if the test passes. #[rstest] fn build_without_clone() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; let file = assert_fs::NamedTempFile::new(common::LLVM_LOCK_FILE)?; let path = file.parent().expect("Lockfile parent dir does not exist"); cmd.current_dir(path); @@ -48,8 +48,8 @@ fn build_without_clone() -> anyhow::Result<()> { #[rstest] #[timeout(std::time::Duration::from_secs(5000))] fn clone_build_and_clean() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; - let lockfile = common::create_test_tmp_lockfile(common::ERA_LLVM_REPO_TEST_REF)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; + let lockfile = common::create_test_tmp_lockfile(None)?; let test_dir = lockfile .parent() .expect("Lockfile parent dir does not exist"); @@ -58,14 +58,14 @@ fn clone_build_and_clean() -> anyhow::Result<()> { cmd.assert() .success() .stderr(predicate::str::is_match(".*Updating files:.*100%.*done").unwrap()); - let mut build_cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut build_cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; build_cmd.current_dir(test_dir); build_cmd .arg("build") .assert() .success() .stdout(predicate::str::is_match("Installing:.*").unwrap()); - let mut clean_cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut clean_cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; clean_cmd.current_dir(test_dir); clean_cmd.arg("clean"); clean_cmd.assert().success(); @@ -88,8 +88,8 @@ fn clone_build_and_clean() -> anyhow::Result<()> { #[rstest] #[timeout(std::time::Duration::from_secs(5000))] fn clone_build_and_clean_musl() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; - let lockfile = common::create_test_tmp_lockfile(common::ERA_LLVM_REPO_TEST_REF)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; + let lockfile = common::create_test_tmp_lockfile(None)?; let test_dir = lockfile .parent() .expect("Lockfile parent dir does not exist"); @@ -98,7 +98,7 @@ fn clone_build_and_clean_musl() -> anyhow::Result<()> { cmd.assert() .success() .stderr(predicate::str::is_match(".*Updating files:.*100%.*done").unwrap()); - let mut build_cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut build_cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; build_cmd.current_dir(test_dir); build_cmd .arg("build") @@ -107,7 +107,7 @@ fn clone_build_and_clean_musl() -> anyhow::Result<()> { .assert() .success() .stdout(predicate::str::is_match("Installing:.*").unwrap()); - let mut clean_cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut clean_cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; clean_cmd.current_dir(test_dir); clean_cmd.arg("clean"); clean_cmd.assert().success(); @@ -130,8 +130,8 @@ fn clone_build_and_clean_musl() -> anyhow::Result<()> { #[rstest] #[timeout(std::time::Duration::from_secs(5000))] fn debug_build_with_tests_coverage() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; - let lockfile = common::create_test_tmp_lockfile(common::ERA_LLVM_REPO_TEST_REF)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; + let lockfile = common::create_test_tmp_lockfile(None)?; let test_dir = lockfile .parent() .expect("Lockfile parent dir does not exist"); @@ -140,7 +140,7 @@ fn debug_build_with_tests_coverage() -> anyhow::Result<()> { cmd.assert() .success() .stderr(predicate::str::is_match(".*Updating files:.*100%.*done").unwrap()); - let mut build_cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut build_cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; build_cmd.current_dir(test_dir); build_cmd .arg("build") diff --git a/tests/checkout.rs b/tests/checkout.rs index aa1607c..ec36e2b 100644 --- a/tests/checkout.rs +++ b/tests/checkout.rs @@ -21,8 +21,8 @@ use rstest::rstest; /// Returns `Ok(())` if the test passes. #[rstest] fn checkout_after_clone() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; - let lockfile = common::create_test_tmp_lockfile(common::ERA_LLVM_REPO_TEST_REF)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; + let lockfile = common::create_test_tmp_lockfile(None)?; let test_dir = lockfile .parent() .expect("Lockfile parent dir does not exist"); @@ -31,16 +31,10 @@ fn checkout_after_clone() -> anyhow::Result<()> { cmd.assert() .success() .stderr(predicate::str::is_match(".*Updating files:.*100%.*done").unwrap()); - let mut checkout_cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut checkout_cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; checkout_cmd.current_dir(test_dir); checkout_cmd.arg("checkout"); - checkout_cmd - .assert() - .success() - .stderr(predicate::str::contains(format!( - "HEAD is now at {}", - &common::ERA_LLVM_REPO_TEST_REF[..8] - ))); + checkout_cmd.assert().success(); Ok(()) } @@ -59,8 +53,8 @@ fn checkout_after_clone() -> anyhow::Result<()> { /// Returns `Ok(())` if the test passes. #[rstest] fn force_checkout() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; - let lockfile = common::create_test_tmp_lockfile(common::ERA_LLVM_REPO_TEST_REF)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; + let lockfile = common::create_test_tmp_lockfile(None)?; let test_dir = lockfile .parent() .expect("Lockfile parent dir does not exist"); @@ -69,16 +63,10 @@ fn force_checkout() -> anyhow::Result<()> { cmd.assert() .success() .stderr(predicate::str::is_match(".*Updating files:.*100%.*done").unwrap()); - let mut checkout_cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut checkout_cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; checkout_cmd.current_dir(test_dir); checkout_cmd.arg("checkout").arg("--force"); - checkout_cmd - .assert() - .success() - .stderr(predicate::str::contains(format!( - "HEAD is now at {}", - &common::ERA_LLVM_REPO_TEST_REF[..8] - ))); + checkout_cmd.assert().success(); Ok(()) } @@ -97,7 +85,7 @@ fn force_checkout() -> anyhow::Result<()> { /// Returns `Ok(())` if the test passes. #[rstest] fn checkout_without_lockfile() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; let file = assert_fs::NamedTempFile::new(common::LLVM_LOCK_FILE)?; let path = file.parent().expect("Lockfile parent dir does not exist"); cmd.current_dir(path); diff --git a/tests/clean.rs b/tests/clean.rs index d21426e..2218f2d 100644 --- a/tests/clean.rs +++ b/tests/clean.rs @@ -21,7 +21,7 @@ use rstest::rstest; /// Returns `Ok(())` if the test passes. #[rstest] fn clean_without_clone() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; let file = assert_fs::NamedTempFile::new(common::LLVM_LOCK_FILE)?; let path = file.parent().expect("Lockfile parent dir does not exist"); cmd.current_dir(path); diff --git a/tests/clone.rs b/tests/clone.rs index e8b3d89..03d600b 100644 --- a/tests/clone.rs +++ b/tests/clone.rs @@ -21,8 +21,8 @@ use rstest::rstest; /// Returns `Ok(())` if the test passes. #[rstest] fn clone() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; - let lockfile = common::create_test_tmp_lockfile(common::ERA_LLVM_REPO_TEST_REF)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; + let lockfile = common::create_test_tmp_lockfile(None)?; let test_dir = lockfile .parent() .expect("Lockfile parent dir does not exist"); @@ -30,10 +30,7 @@ fn clone() -> anyhow::Result<()> { cmd.arg("clone"); cmd.assert() .success() - .stderr(predicate::str::contains(format!( - "HEAD is now at {}", - &common::ERA_LLVM_REPO_TEST_REF[..8] - ))); + .stderr(predicate::str::is_match(".*Updating files:.*100%.*done").unwrap()); Ok(()) } @@ -52,8 +49,8 @@ fn clone() -> anyhow::Result<()> { /// Returns `Ok(())` if the test passes. #[rstest] fn clone_deep() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; - let lockfile = common::create_test_tmp_lockfile(common::ERA_LLVM_REPO_TEST_REF)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; + let lockfile = common::create_test_tmp_lockfile(None)?; let test_dir = lockfile .parent() .expect("Lockfile parent dir does not exist"); @@ -62,10 +59,7 @@ fn clone_deep() -> anyhow::Result<()> { cmd.arg("--deep"); cmd.assert() .success() - .stderr(predicate::str::contains(format!( - "HEAD is now at {}", - &common::ERA_LLVM_REPO_TEST_REF[..8] - ))); + .stderr(predicate::str::is_match(".*Updating files:.*100%.*done").unwrap()); Ok(()) } @@ -84,8 +78,9 @@ fn clone_deep() -> anyhow::Result<()> { /// Returns `Ok(())` if the test passes. #[rstest] fn clone_wrong_reference() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; - let lockfile = common::create_test_tmp_lockfile(common::ERA_LLVM_REPO_TEST_SHA_INVALID)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; + let lockfile = + common::create_test_tmp_lockfile(Some(common::ERA_LLVM_REPO_TEST_SHA_INVALID.to_string()))?; let test_dir = lockfile .parent() .expect("Lockfile parent dir does not exist"); @@ -112,7 +107,7 @@ fn clone_wrong_reference() -> anyhow::Result<()> { /// Returns `Ok(())` if the test passes. #[rstest] fn clone_without_lockfile() -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; let file = assert_fs::NamedTempFile::new(common::LLVM_LOCK_FILE)?; let path = file.parent().expect("Lockfile parent dir does not exist"); cmd.current_dir(path); diff --git a/tests/common/mod.rs b/tests/common/mod.rs index cec5793..4ed750b 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -1,20 +1,21 @@ use assert_fs::fixture::FileWriteStr; -pub const ZKEVM_LLVM: &str = "zkevm-llvm"; +pub const ZKSYNC_LLVM: &str = "zksync-llvm"; pub const PACKAGE_VERSION: &str = env!("CARGO_PKG_VERSION"); pub const ERA_LLVM_REPO_URL: &str = "https://github.com/matter-labs/era-compiler-llvm"; pub const ERA_LLVM_REPO_TEST_BRANCH: &str = "v1.4.2"; -pub const ERA_LLVM_REPO_TEST_REF: &str = "b5ccf6d5774e9bc3cee47ab4a334404718d3adfd"; pub const ERA_LLVM_REPO_TEST_SHA_INVALID: &str = "12345abcd"; pub const LLVM_LOCK_FILE: &str = "LLVM.lock"; /// Creates a temporary lock file for testing. -pub fn create_test_tmp_lockfile(reference: &str) -> anyhow::Result { +pub fn create_test_tmp_lockfile( + reference: Option, +) -> anyhow::Result { let file = assert_fs::NamedTempFile::new(LLVM_LOCK_FILE)?; let lock = compiler_llvm_builder::Lock { url: ERA_LLVM_REPO_URL.to_string(), branch: ERA_LLVM_REPO_TEST_BRANCH.to_string(), - r#ref: Some(reference.to_string()), + r#ref: reference, }; file.write_str(toml::to_string(&lock)?.as_str())?; Ok(file) diff --git a/tests/invalid_invocation.rs b/tests/invalid_invocation.rs index 21daaf7..8a86845 100644 --- a/tests/invalid_invocation.rs +++ b/tests/invalid_invocation.rs @@ -30,7 +30,7 @@ use rstest::rstest; #[case("clone", "--invalid-clone-option")] #[case("checkout", "--invalid-checkout-option")] fn invalid_option(#[case] subcommand: &str, #[case] option: &str) -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; if subcommand != "" { cmd.arg(subcommand); } @@ -65,7 +65,7 @@ fn invalid_option(#[case] subcommand: &str, #[case] option: &str) -> anyhow::Res #[case("123")] #[case("$$.@!;-a3")] fn invalid_subcommand(#[case] subcommand: &str) -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; cmd.arg(subcommand); cmd.assert() .failure() diff --git a/tests/version.rs b/tests/version.rs index 4fc645a..d0949a9 100644 --- a/tests/version.rs +++ b/tests/version.rs @@ -30,7 +30,7 @@ use rstest::rstest; #[case("clone")] #[case("checkout")] fn version(#[case] subcommand: String) -> anyhow::Result<()> { - let mut cmd = Command::cargo_bin(common::ZKEVM_LLVM)?; + let mut cmd = Command::cargo_bin(common::ZKSYNC_LLVM)?; if subcommand != "" { cmd.arg(subcommand); }