From 0bd6387f42fe786dc8287359e2fadabfa3a02c81 Mon Sep 17 00:00:00 2001 From: Shramee Srivastav Date: Tue, 31 Oct 2023 00:18:58 +0530 Subject: [PATCH] scarb :fire: --- Cargo.lock | 3700 +++++++++++++++-- Cargo.toml | 33 +- Scarb.toml | 10 - corelib/Scarb.lock | 6 + info.toml | 46 +- runner-crate/.gitignore | 1 + runner-crate/Scarb.lock | 6 + runner-crate/Scarb.toml | 8 + runner-crate/src/lib.cairo | 25 + src/exercise.rs | 24 +- src/main.rs | 3 +- src/run.rs | 21 +- src/scarb.rs | 115 + src/starklings_runner.rs | 115 - src/starklings_tester.rs | 566 --- src/verify.rs | 42 +- tests/fixture/cairo/info.toml | 4 +- tests/fixture/cairo/runner-crate/.gitignore | 1 + tests/fixture/cairo/runner-crate/Scarb.lock | 6 + tests/fixture/cairo/runner-crate/Scarb.toml | 8 + .../fixture/cairo/runner-crate/src/lib.cairo | 34 + 21 files changed, 3626 insertions(+), 1148 deletions(-) delete mode 100644 Scarb.toml create mode 100644 corelib/Scarb.lock create mode 100644 runner-crate/.gitignore create mode 100644 runner-crate/Scarb.lock create mode 100644 runner-crate/Scarb.toml create mode 100644 runner-crate/src/lib.cairo create mode 100644 src/scarb.rs delete mode 100644 src/starklings_runner.rs delete mode 100644 src/starklings_tester.rs create mode 100644 tests/fixture/cairo/runner-crate/.gitignore create mode 100644 tests/fixture/cairo/runner-crate/Scarb.lock create mode 100644 tests/fixture/cairo/runner-crate/Scarb.toml create mode 100644 tests/fixture/cairo/runner-crate/src/lib.cairo diff --git a/Cargo.lock b/Cargo.lock index d18b6386e..5427bdb2e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,11 +2,26 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ "getrandom", "once_cell", @@ -20,6 +35,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if 1.0.0", + "getrandom", "once_cell", "version_check", ] @@ -33,6 +49,21 @@ dependencies = [ "memchr", ] +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "allocator-api2" version = "0.2.16" @@ -93,6 +124,12 @@ version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + [[package]] name = "argh" version = "0.1.12" @@ -295,12 +332,58 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-compression" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f658e2baef915ba0f26f1f7c42bfb8e12f532a01f449a090ded75ae7a07e9ba2" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if 1.0.0", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + [[package]] name = "bincode" version = "2.0.0-rc.3" @@ -358,6 +441,47 @@ dependencies = [ "generic-array", ] +[[package]] +name = "brotli" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019" +dependencies = [ + "memchr", + "regex-automata 0.4.3", + "serde", +] + +[[package]] +name = "btoi" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad" +dependencies = [ + "num-traits 0.2.16", +] + [[package]] name = "bumpalo" version = "3.14.0" @@ -370,6 +494,30 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" + +[[package]] +name = "byteyarn" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7534301c0ea17abb4db06d75efc7b4b0fa360fce8e175a4330d721c71c942ff" + [[package]] name = "cairo-felt" version = "0.8.7" @@ -385,10 +533,26 @@ dependencies = [ [[package]] name = "cairo-lang-casm" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "indoc", + "num-bigint", + "num-traits 0.2.16", + "parity-scale-codec", + "parity-scale-codec-derive", + "schemars", + "serde", + "thiserror", +] + +[[package]] +name = "cairo-lang-casm" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" dependencies = [ - "cairo-lang-utils", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "indoc", "num-bigint", "num-traits 0.2.16", @@ -401,49 +565,93 @@ dependencies = [ [[package]] name = "cairo-lang-compiler" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ "anyhow", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-lowering", - "cairo-lang-parser", - "cairo-lang-plugins", - "cairo-lang-project", - "cairo-lang-semantic", - "cairo-lang-sierra", - "cairo-lang-sierra-generator", - "cairo-lang-syntax", - "cairo-lang-utils", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-lowering 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-plugins 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-project 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-generator 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "itertools 0.11.0", + "salsa", + "thiserror", +] + +[[package]] +name = "cairo-lang-compiler" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "anyhow", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-lowering 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-plugins 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-project 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-generator 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "itertools 0.11.0", - "log", "salsa", - "smol_str", "thiserror", ] [[package]] name = "cairo-lang-debug" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", +] + +[[package]] +name = "cairo-lang-debug" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" dependencies = [ - "cairo-lang-utils", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", ] [[package]] name = "cairo-lang-defs" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" -dependencies = [ - "cairo-lang-debug", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-parser", - "cairo-lang-syntax", - "cairo-lang-utils", - "indexmap 2.0.2", +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "itertools 0.11.0", + "salsa", + "smol_str", +] + +[[package]] +name = "cairo-lang-defs" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "itertools 0.11.0", "salsa", "smol_str", @@ -451,54 +659,127 @@ dependencies = [ [[package]] name = "cairo-lang-diagnostics" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ - "cairo-lang-debug", - "cairo-lang-filesystem", - "cairo-lang-utils", + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "itertools 0.11.0", +] + +[[package]] +name = "cairo-lang-diagnostics" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "itertools 0.11.0", - "salsa", ] [[package]] name = "cairo-lang-eq-solver" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ - "cairo-lang-utils", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "good_lp", +] + +[[package]] +name = "cairo-lang-eq-solver" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "good_lp", - "indexmap 2.0.2", - "itertools 0.11.0", ] [[package]] name = "cairo-lang-filesystem" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "path-clean", + "salsa", + "serde", + "smol_str", +] + +[[package]] +name = "cairo-lang-filesystem" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" dependencies = [ - "cairo-lang-debug", - "cairo-lang-utils", + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "path-clean", "salsa", "serde", "smol_str", ] +[[package]] +name = "cairo-lang-formatter" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "anyhow", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "diffy", + "ignore", + "itertools 0.11.0", + "salsa", + "serde", + "smol_str", +] + [[package]] name = "cairo-lang-lowering" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" -dependencies = [ - "cairo-lang-debug", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-parser", - "cairo-lang-proc-macros", - "cairo-lang-semantic", - "cairo-lang-syntax", - "cairo-lang-utils", +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-proc-macros 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "id-arena", + "indexmap 2.0.2", + "itertools 0.11.0", + "log", + "num-bigint", + "num-traits 0.2.16", + "once_cell", + "salsa", +] + +[[package]] +name = "cairo-lang-lowering" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-proc-macros 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "id-arena", "indexmap 2.0.2", "itertools 0.11.0", @@ -512,17 +793,35 @@ dependencies = [ [[package]] name = "cairo-lang-parser" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" -dependencies = [ - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-syntax", - "cairo-lang-syntax-codegen", - "cairo-lang-utils", +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax-codegen 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "colored", + "itertools 0.11.0", + "num-bigint", + "num-traits 0.2.16", + "salsa", + "smol_str", + "unescaper", +] + +[[package]] +name = "cairo-lang-parser" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax-codegen 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "colored", "itertools 0.11.0", - "log", "num-bigint", "num-traits 0.2.16", "salsa", @@ -532,40 +831,80 @@ dependencies = [ [[package]] name = "cairo-lang-plugins" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" -dependencies = [ - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-parser", - "cairo-lang-syntax", - "cairo-lang-utils", +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "indent", + "indoc", + "itertools 0.11.0", + "salsa", + "smol_str", +] + +[[package]] +name = "cairo-lang-plugins" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "indent", "indoc", "itertools 0.11.0", - "num-bigint", "salsa", "smol_str", ] [[package]] name = "cairo-lang-proc-macros" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "quote", + "syn 2.0.37", +] + +[[package]] +name = "cairo-lang-proc-macros" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" dependencies = [ - "cairo-lang-debug", + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "quote", "syn 2.0.37", ] [[package]] name = "cairo-lang-project" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "serde", + "smol_str", + "thiserror", + "toml 0.7.8", +] + +[[package]] +name = "cairo-lang-project" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" dependencies = [ - "cairo-lang-filesystem", - "cairo-lang-utils", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "serde", "smol_str", "thiserror", @@ -574,57 +913,68 @@ dependencies = [ [[package]] name = "cairo-lang-runner" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ - "anyhow", "ark-ff", "ark-secp256k1", "ark-secp256r1", "ark-std 0.4.0", "cairo-felt", - "cairo-lang-casm", - "cairo-lang-compiler", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-lowering", - "cairo-lang-semantic", - "cairo-lang-sierra", - "cairo-lang-sierra-ap-change", - "cairo-lang-sierra-gas", - "cairo-lang-sierra-generator", - "cairo-lang-sierra-to-casm", - "cairo-lang-sierra-type-size", - "cairo-lang-starknet", - "cairo-lang-utils", + "cairo-lang-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-ap-change 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-gas 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-to-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-type-size 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-starknet 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", "cairo-vm", "itertools 0.11.0", "keccak", "num-bigint", "num-integer", "num-traits 0.2.16", - "salsa", "thiserror", ] [[package]] name = "cairo-lang-semantic" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" -dependencies = [ - "cairo-lang-debug", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-parser", - "cairo-lang-plugins", - "cairo-lang-proc-macros", - "cairo-lang-syntax", - "cairo-lang-utils", +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-proc-macros 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "id-arena", + "itertools 0.11.0", + "num-bigint", + "num-traits 0.2.16", + "once_cell", + "salsa", + "smol_str", +] + +[[package]] +name = "cairo-lang-semantic" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-proc-macros 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "id-arena", "itertools 0.11.0", - "log", "num-bigint", "num-traits 0.2.16", "once_cell", @@ -634,10 +984,11 @@ dependencies = [ [[package]] name = "cairo-lang-sierra" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ - "cairo-lang-utils", + "anyhow", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", "const-fnv1a-hash", "convert_case", "derivative", @@ -655,49 +1006,118 @@ dependencies = [ ] [[package]] -name = "cairo-lang-sierra-ap-change" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +name = "cairo-lang-sierra" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" dependencies = [ - "cairo-lang-eq-solver", - "cairo-lang-sierra", - "cairo-lang-sierra-type-size", - "cairo-lang-utils", + "anyhow", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "const-fnv1a-hash", + "convert_case", + "derivative", + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "num-bigint", + "num-traits 0.2.16", + "regex", + "salsa", + "serde", + "serde_json", + "sha3", + "smol_str", + "thiserror", +] + +[[package]] +name = "cairo-lang-sierra-ap-change" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-eq-solver 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-type-size 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "itertools 0.11.0", + "thiserror", +] + +[[package]] +name = "cairo-lang-sierra-ap-change" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-eq-solver 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-type-size 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "itertools 0.11.0", "thiserror", ] [[package]] name = "cairo-lang-sierra-gas" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-eq-solver 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-type-size 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "itertools 0.11.0", + "thiserror", +] + +[[package]] +name = "cairo-lang-sierra-gas" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" dependencies = [ - "cairo-lang-eq-solver", - "cairo-lang-sierra", - "cairo-lang-sierra-type-size", - "cairo-lang-utils", + "cairo-lang-eq-solver 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-type-size 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "itertools 0.11.0", "thiserror", ] [[package]] name = "cairo-lang-sierra-generator" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" -dependencies = [ - "cairo-lang-debug", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-lowering", - "cairo-lang-parser", - "cairo-lang-plugins", - "cairo-lang-proc-macros", - "cairo-lang-semantic", - "cairo-lang-sierra", - "cairo-lang-syntax", - "cairo-lang-utils", - "id-arena", +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-lowering 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "itertools 0.11.0", + "num-bigint", + "once_cell", + "salsa", + "smol_str", +] + +[[package]] +name = "cairo-lang-sierra-generator" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-lowering 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-parser 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "indexmap 2.0.2", "itertools 0.11.0", "num-bigint", @@ -708,20 +1128,39 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-to-casm" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ "assert_matches", "cairo-felt", - "cairo-lang-casm", - "cairo-lang-sierra", - "cairo-lang-sierra-ap-change", - "cairo-lang-sierra-gas", - "cairo-lang-sierra-type-size", - "cairo-lang-utils", + "cairo-lang-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-ap-change 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-gas 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-type-size 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "indoc", + "itertools 0.11.0", + "num-bigint", + "num-traits 0.2.16", + "thiserror", +] + +[[package]] +name = "cairo-lang-sierra-to-casm" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "assert_matches", + "cairo-felt", + "cairo-lang-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-ap-change 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-gas 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-type-size 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "indoc", "itertools 0.11.0", - "log", "num-bigint", "num-traits 0.2.16", "thiserror", @@ -729,42 +1168,81 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-type-size" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ - "cairo-lang-sierra", - "cairo-lang-utils", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", +] + +[[package]] +name = "cairo-lang-sierra-type-size" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", ] [[package]] name = "cairo-lang-starknet" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ "anyhow", "cairo-felt", - "cairo-lang-casm", - "cairo-lang-compiler", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-lowering", - "cairo-lang-parser", - "cairo-lang-plugins", - "cairo-lang-semantic", - "cairo-lang-sierra", - "cairo-lang-sierra-ap-change", - "cairo-lang-sierra-gas", - "cairo-lang-sierra-generator", - "cairo-lang-sierra-to-casm", - "cairo-lang-syntax", - "cairo-lang-utils", + "cairo-lang-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-compiler 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-lowering 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-generator 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-to-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "const_format", + "convert_case", + "indent", + "indoc", + "itertools 0.11.0", + "num-bigint", + "num-integer", + "num-traits 0.2.16", + "once_cell", + "serde", + "serde_json", + "sha3", + "smol_str", + "thiserror", +] + +[[package]] +name = "cairo-lang-starknet" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "anyhow", + "cairo-felt", + "cairo-lang-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-compiler 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-lowering 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-generator 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-to-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "const_format", "convert_case", - "genco", "indent", "indoc", "itertools 0.11.0", - "log", "num-bigint", "num-integer", "num-traits 0.2.16", @@ -778,78 +1256,153 @@ dependencies = [ [[package]] name = "cairo-lang-syntax" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ - "cairo-lang-debug", - "cairo-lang-filesystem", - "cairo-lang-utils", + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "num-bigint", + "num-traits 0.2.16", + "salsa", + "smol_str", + "unescaper", +] + +[[package]] +name = "cairo-lang-syntax" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", "num-bigint", "num-traits 0.2.16", "salsa", "smol_str", - "thiserror", "unescaper", ] [[package]] name = "cairo-lang-syntax-codegen" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "genco", + "xshell", +] + +[[package]] +name = "cairo-lang-syntax-codegen" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" dependencies = [ "genco", "xshell", ] +[[package]] +name = "cairo-lang-test-plugin" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" +dependencies = [ + "anyhow", + "cairo-felt", + "cairo-lang-compiler 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-lowering 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-generator 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-starknet 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "itertools 0.11.0", + "num-traits 0.2.16", + "serde", +] + +[[package]] +name = "cairo-lang-test-plugin" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "anyhow", + "cairo-felt", + "cairo-lang-compiler 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-debug 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-diagnostics 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-lowering 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-generator 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-starknet 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-syntax 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "itertools 0.11.0", + "num-bigint", + "num-traits 0.2.16", + "serde", +] + [[package]] name = "cairo-lang-test-runner" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ "anyhow", "cairo-felt", - "cairo-lang-casm", - "cairo-lang-compiler", - "cairo-lang-debug", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-lowering", - "cairo-lang-plugins", - "cairo-lang-project", + "cairo-lang-compiler 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", "cairo-lang-runner", - "cairo-lang-semantic", - "cairo-lang-sierra", - "cairo-lang-sierra-generator", - "cairo-lang-sierra-to-casm", - "cairo-lang-starknet", - "cairo-lang-syntax", - "cairo-lang-utils", - "cairo-vm", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-sierra-to-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-starknet 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-test-plugin 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", "colored", "itertools 0.11.0", - "num-bigint", "num-traits 0.2.16", "rayon 1.8.0", - "salsa", - "thiserror", ] [[package]] name = "cairo-lang-utils" -version = "2.2.0" -source = "git+https://github.com/starkware-libs/cairo?tag=v2.2.0#ad5570f0f25dbbffd9daedf02df140ff9e7291e4" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?tag=v2.3.0#0c67a87fb24131f21fd4b8709b88e15eaeaf18de" dependencies = [ "indexmap 2.0.2", "itertools 0.11.0", "num-bigint", - "num-integer", "num-traits 0.2.16", "parity-scale-codec", "schemars", "serde", ] +[[package]] +name = "cairo-lang-utils" +version = "2.3.0" +source = "git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f#bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f" +dependencies = [ + "env_logger", + "indexmap 2.0.2", + "itertools 0.11.0", + "log", + "num-bigint", + "num-traits 0.2.16", + "parity-scale-codec", + "schemars", + "serde", + "time", +] + [[package]] name = "cairo-vm" version = "0.8.7" @@ -880,12 +1433,45 @@ dependencies = [ "thiserror-no-std", ] +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12024c4645c97566567129c204f65d5815a8c9aecf30fcbe682b2fe034996d36" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "cc" version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ + "jobserver", "libc", ] @@ -911,6 +1497,16 @@ dependencies = [ "clap_derive", ] +[[package]] +name = "clap-verbosity-flag" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5fdbb015d790cfb378aca82caf9cc52a38be96a7eecdb92f31b4366a8afc019" +dependencies = [ + "clap", + "log", +] + [[package]] name = "clap_builder" version = "4.4.6" @@ -941,6 +1537,12 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" +[[package]] +name = "clru" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807" + [[package]] name = "colorchoice" version = "1.0.0" @@ -977,6 +1579,26 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca" +[[package]] +name = "const_format" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "convert_case" version = "0.6.0" @@ -986,6 +1608,22 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + [[package]] name = "cpufeatures" version = "0.2.9" @@ -995,6 +1633,50 @@ dependencies = [ "libc", ] +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "create-output-dir" +version = "1.0.0" +source = "git+https://github.com/software-mansion/scarb#7eb2819a2a2ad5ce8d1c3f760e3274a2ea576e60" +dependencies = [ + "anyhow", + "core-foundation", + "tempfile", + "winapi 0.3.9", +] + +[[package]] +name = "crossbeam" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.3" @@ -1019,6 +1701,16 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.16" @@ -1056,37 +1748,152 @@ dependencies = [ ] [[package]] -name = "derivative" -version = "2.2.0" +name = "darling" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ + "fnv", + "ident_case", "proc-macro2", "quote", + "strsim", "syn 1.0.109", ] [[package]] -name = "diff" -version = "0.1.13" +name = "darling_macro" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core", + "quote", + "syn 1.0.109", +] [[package]] -name = "difference" -version = "2.0.0" +name = "data-encoding" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] -name = "digest" -version = "0.10.7" +name = "deno_task_shell" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +checksum = "4dbbad0a7ba06a961df3cd638ab117f5d67787607f627defa65629a4ef29d576" dependencies = [ - "block-buffer", - "crypto-common", - "subtle", + "anyhow", + "futures", + "glob", + "monch", + "os_pipe", + "path-dedot", + "tokio", + "tokio-util", +] + +[[package]] +name = "deranged" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "diffy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e616e59155c92257e84970156f506287853355f58cd4a6eb167385722c32b790" +dependencies = [ + "nu-ansi-term", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys", ] [[package]] @@ -1099,6 +1906,18 @@ dependencies = [ "dirs-sys-next", ] +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -1110,6 +1929,12 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "dyn-clone" version = "1.0.14" @@ -1137,12 +1962,43 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "equivalent" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "erased-serde" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" +dependencies = [ + "serde", +] + [[package]] name = "errno" version = "0.3.4" @@ -1176,6 +2032,21 @@ dependencies = [ "serde_json", ] +[[package]] +name = "faster-hex" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a" +dependencies = [ + "serde", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + [[package]] name = "filetime" version = "0.2.22" @@ -1194,6 +2065,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "float-cmp" version = "0.8.0" @@ -1209,6 +2090,42 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs4" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" +dependencies = [ + "async-trait", + "rustix", + "tokio", + "windows-sys 0.48.0", +] + [[package]] name = "fsevent" version = "0.4.0" @@ -1250,6 +2167,95 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +[[package]] +name = "futures" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-macro" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "genco" version = "0.17.6" @@ -1296,100 +2302,1025 @@ dependencies = [ ] [[package]] -name = "glob" -version = "0.3.1" +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "gix" +version = "0.54.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad6d32e74454459690d57d18ea4ebec1629936e6b130b51d12cb4a81630ac953" +dependencies = [ + "gix-actor", + "gix-archive", + "gix-attributes", + "gix-commitgraph", + "gix-config", + "gix-credentials", + "gix-date", + "gix-diff", + "gix-discover", + "gix-features", + "gix-filter", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-hashtable", + "gix-ignore", + "gix-index", + "gix-lock", + "gix-macros", + "gix-mailmap", + "gix-negotiate", + "gix-object", + "gix-odb", + "gix-pack", + "gix-path", + "gix-pathspec", + "gix-prompt", + "gix-ref", + "gix-refspec", + "gix-revision", + "gix-revwalk", + "gix-sec", + "gix-status", + "gix-submodule", + "gix-tempfile", + "gix-trace", + "gix-traverse", + "gix-url", + "gix-utils", + "gix-validate", + "gix-worktree", + "gix-worktree-state", + "gix-worktree-stream", + "once_cell", + "parking_lot 0.12.1", + "regex", + "signal-hook", + "smallvec", + "thiserror", + "unicode-normalization", +] + +[[package]] +name = "gix-actor" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "08c60e982c5290897122d4e2622447f014a2dadd5a18cb73d50bb91b31645e27" +dependencies = [ + "bstr", + "btoi", + "gix-date", + "itoa", + "thiserror", + "winnow", +] [[package]] -name = "good_lp" -version = "1.6.1" +name = "gix-archive" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "869f19637130a4e8e1c3f3f83df4a00a169c1d3a77a2b2ff41736b14497c4027" +checksum = "ab71635f7fb38ad4cc7da7e98af79e3010e35b05de5cb6eb79b2da68ab93eac7" dependencies = [ - "fnv", - "minilp", + "bstr", + "gix-date", + "gix-object", + "gix-worktree-stream", + "thiserror", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "gix-attributes" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "2451665e70709ba4753b623ef97511ee98c4a73816b2c5b5df25678d607ed820" dependencies = [ - "ahash 0.7.6", + "bstr", + "byteyarn", + "gix-glob", + "gix-path", + "gix-quote", + "gix-trace", + "smallvec", + "thiserror", + "unicode-bom", ] [[package]] -name = "hashbrown" -version = "0.13.2" +name = "gix-bitmap" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +checksum = "0ccab4bc576844ddb51b78d81b4a42d73e6229660fa614dfc3d3999c874d1959" dependencies = [ - "ahash 0.8.3", + "thiserror", ] [[package]] -name = "hashbrown" -version = "0.14.1" +name = "gix-chunk" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +checksum = "5b42ea64420f7994000130328f3c7a2038f639120518870436d31b8bde704493" dependencies = [ - "ahash 0.8.3", - "allocator-api2", - "serde", + "thiserror", ] [[package]] -name = "heck" -version = "0.3.3" +name = "gix-command" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "3c576cfbf577f72c097b5f88aedea502cd62952bdc1fb3adcab4531d5525a4c7" dependencies = [ - "unicode-segmentation", + "bstr", ] [[package]] -name = "heck" -version = "0.4.1" +name = "gix-commitgraph" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "e75a975ee22cf0a002bfe9b5d5cb3d2a88e263a8a178cd7509133cff10f4df8a" +dependencies = [ + "bstr", + "gix-chunk", + "gix-features", + "gix-hash", + "memmap2", + "thiserror", +] [[package]] -name = "hermit-abi" -version = "0.3.3" +name = "gix-config" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "c171514b40487d3f677ae37efc0f45ac980e3169f23c27eb30a70b47fdf88ab5" +dependencies = [ + "bstr", + "gix-config-value", + "gix-features", + "gix-glob", + "gix-path", + "gix-ref", + "gix-sec", + "memchr", + "once_cell", + "smallvec", + "thiserror", + "unicode-bom", + "winnow", +] [[package]] -name = "hex" -version = "0.4.3" +name = "gix-config-value" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "ea7505b97f4d8e7933e29735a568ba2f86d8de466669d9f0e8321384f9972f47" +dependencies = [ + "bitflags 2.4.0", + "bstr", + "gix-path", + "libc", + "thiserror", +] [[package]] -name = "hmac" +name = "gix-credentials" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46900b884cc5af6a6c141ee741607c0c651a4e1d33614b8d888a1ba81cc0bc8a" +dependencies = [ + "bstr", + "gix-command", + "gix-config-value", + "gix-path", + "gix-prompt", + "gix-sec", + "gix-url", + "thiserror", +] + +[[package]] +name = "gix-date" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7df669639582dc7c02737642f76890b03b5544e141caba68a7d6b4eb551e0d" +dependencies = [ + "bstr", + "itoa", + "thiserror", + "time", +] + +[[package]] +name = "gix-diff" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "788ddb152c388206e81f36bcbb574e7ed7827c27d8fa62227b34edc333d8928c" +dependencies = [ + "gix-hash", + "gix-object", + "imara-diff", + "thiserror", +] + +[[package]] +name = "gix-discover" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69507643d75a0ea9a402fcf73ced517d2b95cc95385904ac09d03e0b952fde33" +dependencies = [ + "bstr", + "dunce", + "gix-hash", + "gix-path", + "gix-ref", + "gix-sec", + "thiserror", +] + +[[package]] +name = "gix-features" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b9ff423ae4983f762659040d13dd7a5defbd54b6a04ac3cc7347741cec828cd" +dependencies = [ + "bytes", + "bytesize", + "crc32fast", + "crossbeam-channel", + "flate2", + "gix-hash", + "gix-trace", + "jwalk", + "libc", + "once_cell", + "parking_lot 0.12.1", + "prodash", + "sha1_smol", + "thiserror", + "walkdir", +] + +[[package]] +name = "gix-filter" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1be40d28cd41445bb6cd52c4d847d915900e5466f7433eaee6a9e0a3d1d88b08" +dependencies = [ + "bstr", + "encoding_rs", + "gix-attributes", + "gix-command", + "gix-hash", + "gix-object", + "gix-packetline-blocking", + "gix-path", + "gix-quote", + "gix-trace", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-fs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09815faba62fe9b32d918b75a554686c98e43f7d48c43a80df58eb718e5c6635" +dependencies = [ + "gix-features", +] + +[[package]] +name = "gix-glob" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d76e85f11251dcf751d2c5e918a14f562db5be6f727fd24775245653e9b19d" +dependencies = [ + "bitflags 2.4.0", + "bstr", + "gix-features", + "gix-path", +] + +[[package]] +name = "gix-hash" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1884c7b41ea0875217c1be9ce91322f90bde433e91d374d0e1276073a51ccc60" +dependencies = [ + "faster-hex", + "thiserror", +] + +[[package]] +name = "gix-hashtable" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "409268480841ad008e81c17ca5a293393fbf9f2b6c2f85b8ab9de1f0c5176a16" +dependencies = [ + "gix-hash", + "hashbrown 0.14.1", + "parking_lot 0.12.1", +] + +[[package]] +name = "gix-ignore" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048f443a1f6b02da4205c34d2e287e3fd45d75e8e2f06cfb216630ea9bff5e3" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "unicode-bom", +] + +[[package]] +name = "gix-index" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f54d63a9d13c13088f41f5a3accbec284e492ac8f4f707fcc307c139622e17b7" +dependencies = [ + "bitflags 2.4.0", + "bstr", + "btoi", + "filetime", + "gix-bitmap", + "gix-features", + "gix-fs", + "gix-hash", + "gix-lock", + "gix-object", + "gix-traverse", + "itoa", + "memmap2", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-lock" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47fc96fa8b6b6d33555021907c81eb3b27635daecf6e630630bdad44f8feaa95" +dependencies = [ + "gix-tempfile", + "gix-utils", + "thiserror", +] + +[[package]] +name = "gix-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d8acb5ee668d55f0f2d19a320a3f9ef67a6999ad483e11135abcc2464ed18b6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + +[[package]] +name = "gix-mailmap" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40f00fa96e29e066ef208f5d13e0f5f95fa70c3ae4bd4f0234272ed4d708a7db" +dependencies = [ + "bstr", + "gix-actor", + "gix-date", + "thiserror", +] + +[[package]] +name = "gix-negotiate" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f1697bf9911c6d1b8d709b9e6ef718cb5ea5821a1b7991520125a8134448004" +dependencies = [ + "bitflags 2.4.0", + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-object", + "gix-revwalk", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-object" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7e19616c67967374137bae83e950e9b518a9ea8a605069bd6716ada357fd6f" +dependencies = [ + "bstr", + "btoi", + "gix-actor", + "gix-date", + "gix-features", + "gix-hash", + "gix-validate", + "itoa", + "smallvec", + "thiserror", + "winnow", +] + +[[package]] +name = "gix-odb" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d6a392c6ba3a2f133cdc63120e9bc7aec81eef763db372c817de31febfe64bf" +dependencies = [ + "arc-swap", + "gix-date", + "gix-features", + "gix-hash", + "gix-object", + "gix-pack", + "gix-path", + "gix-quote", + "parking_lot 0.12.1", + "tempfile", + "thiserror", +] + +[[package]] +name = "gix-pack" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7536203a45b31e1bc5694bbf90ba8da1b736c77040dd6a520db369f371eb1ab3" +dependencies = [ + "clru", + "gix-chunk", + "gix-features", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-path", + "gix-tempfile", + "memmap2", + "parking_lot 0.12.1", + "smallvec", + "thiserror", + "uluru", +] + +[[package]] +name = "gix-packetline-blocking" +version = "0.16.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8395f7501c84d6a1fe902035fdfd8cd86d89e2dd6be0200ec1a72fd3c92d39" +dependencies = [ + "bstr", + "faster-hex", + "thiserror", +] + +[[package]] +name = "gix-path" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a1d370115171e3ae03c5c6d4f7d096f2981a40ddccb98dfd704c773530ba73b" +dependencies = [ + "bstr", + "gix-trace", + "home", + "once_cell", + "thiserror", +] + +[[package]] +name = "gix-pathspec" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e26c9b47c51be73f98d38c84494bd5fb99334c5d6fda14ef5d036d50a9e5fd" +dependencies = [ + "bitflags 2.4.0", + "bstr", + "gix-attributes", + "gix-config-value", + "gix-glob", + "gix-path", + "thiserror", +] + +[[package]] +name = "gix-prompt" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c9a913769516f5e9d937afac206fb76428e3d7238e538845842887fda584678" +dependencies = [ + "gix-command", + "gix-config-value", + "parking_lot 0.12.1", + "rustix", + "thiserror", +] + +[[package]] +name = "gix-quote" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "475c86a97dd0127ba4465fbb239abac9ea10e68301470c9791a6dd5351cdc905" +dependencies = [ + "bstr", + "btoi", + "thiserror", +] + +[[package]] +name = "gix-ref" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e6b749660b613641769edc1954132eb8071a13c32224891686091bef078de4" +dependencies = [ + "gix-actor", + "gix-date", + "gix-features", + "gix-fs", + "gix-hash", + "gix-lock", + "gix-object", + "gix-path", + "gix-tempfile", + "gix-validate", + "memmap2", + "thiserror", + "winnow", +] + +[[package]] +name = "gix-refspec" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0895cb7b1e70f3c3bd4550c329e9f5caf2975f97fcd4238e05754e72208ef61e" +dependencies = [ + "bstr", + "gix-hash", + "gix-revision", + "gix-validate", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-revision" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8c4b15cf2ab7a35f5bcb3ef146187c8d36df0177e171ca061913cbaaa890e89" +dependencies = [ + "bstr", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "gix-trace", + "thiserror", +] + +[[package]] +name = "gix-revwalk" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9870c6b1032f2084567710c3b2106ac603377f8d25766b8a6b7c33e6e3ca279" +dependencies = [ + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-sec" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92b9542ac025a8c02ed5d17b3fc031a111a384e859d0be3532ec4d58c40a0f28" +dependencies = [ + "bitflags 2.4.0", + "gix-path", + "libc", + "windows", +] + +[[package]] +name = "gix-status" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "082801c42ba707f2407b5cce3d99b89cfa84f3794962946dc94cfdc00ae522fa" +dependencies = [ + "bstr", + "filetime", + "gix-features", + "gix-fs", + "gix-hash", + "gix-index", + "gix-object", + "gix-path", + "gix-pathspec", + "thiserror", +] + +[[package]] +name = "gix-submodule" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0150e82e9282d3f2ab2dd57a22f9f6c3447b9d9856e5321ac92d38e3e0e2b7" +dependencies = [ + "bstr", + "gix-config", + "gix-path", + "gix-pathspec", + "gix-refspec", + "gix-url", + "thiserror", +] + +[[package]] +name = "gix-tempfile" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ae0978f3e11dc57290ee75ac2477c815bca1ce2fa7ed5dc5f16db067410ac4d" +dependencies = [ + "gix-fs", + "libc", + "once_cell", + "parking_lot 0.12.1", + "signal-hook", + "signal-hook-registry", + "tempfile", +] + +[[package]] +name = "gix-trace" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b6d623a1152c3facb79067d6e2ecdae48130030cf27d6eb21109f13bd7b836" + +[[package]] +name = "gix-traverse" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ef04ab3643acba289b5cedd25d6f53c0430770b1d689d1d654511e6fb81ba0" +dependencies = [ + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-url" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6125ecf46e8c68bf7202da6cad239831daebf0247ffbab30210d72f3856e420f" +dependencies = [ + "bstr", + "gix-features", + "gix-path", + "home", + "thiserror", + "url", +] + +[[package]] +name = "gix-utils" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85d89dc728613e26e0ed952a19583744e7f5240fcd4aa30d6c824ffd8b52f0f" +dependencies = [ + "fastrand", +] + +[[package]] +name = "gix-validate" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05cab2b03a45b866156e052aa38619f4ece4adcb2f79978bfc249bc3b21b8c5" +dependencies = [ + "bstr", + "thiserror", +] + +[[package]] +name = "gix-worktree" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f5e32972801bd82d56609e6fc84efc358fa1f11f25c5e83b7807ee2280f14fe" +dependencies = [ + "bstr", + "gix-attributes", + "gix-features", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", +] + +[[package]] +name = "gix-worktree-state" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3aeb06960f2c5ac9e4cdb6b38eb3c2b99d5e525e68285fef21ed17dfbd597ad" +dependencies = [ + "bstr", + "gix-features", + "gix-filter", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-index", + "gix-object", + "gix-path", + "gix-worktree", + "io-close", + "thiserror", +] + +[[package]] +name = "gix-worktree-stream" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89fe93a12e45cc3ad6ba429a7dd7506b03d7d406374a65ad9998b5cb2627569" +dependencies = [ + "gix-attributes", + "gix-features", + "gix-filter", + "gix-fs", + "gix-hash", + "gix-object", + "gix-path", + "gix-traverse", + "parking_lot 0.12.1", + "thiserror", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "good_lp" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "869f19637130a4e8e1c3f3f83df4a00a169c1d3a77a2b2ff41736b14497c4027" +dependencies = [ + "fnv", + "minilp", +] + +[[package]] +name = "h2" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 1.9.3", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.7", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", +] + +[[package]] +name = "hashbrown" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +dependencies = [ + "ahash 0.8.3", + "allocator-api2", + "serde", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "human_format" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86cce260d758a9aa3d7c4b99d55c815a540f8a37514ba6046ab6be402a157cb0" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.9", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ - "digest", + "unicode-bidi", + "unicode-normalization", ] [[package]] -name = "home" -version = "0.5.5" +name = "ignore" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" dependencies = [ - "windows-sys 0.48.0", + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", ] [[package]] -name = "id-arena" -version = "2.2.1" +name = "imara-diff" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" +checksum = "e98c1d0ad70fc91b8b9654b1f33db55e59579d3b3de2bffdced0fdb810570cb8" +dependencies = [ + "ahash 0.8.3", + "hashbrown 0.12.3", +] [[package]] name = "impl-trait-for-tuples" @@ -1402,6 +3333,25 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "include_dir" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "indent" version = "0.1.1" @@ -1442,6 +3392,19 @@ dependencies = [ "regex", ] +[[package]] +name = "indicatif" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + [[package]] name = "indoc" version = "2.0.4" @@ -1477,6 +3440,16 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "io-close" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadcf447f06744f8ce713d2d6239bb5bde2c357a452397a9ed90c625da390bc" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "iovec" version = "0.1.4" @@ -1486,6 +3459,12 @@ dependencies = [ "libc", ] +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + [[package]] name = "is-terminal" version = "0.4.9" @@ -1521,6 +3500,15 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.64" @@ -1530,6 +3518,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jwalk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56" +dependencies = [ + "crossbeam", + "rayon 1.8.0", +] + [[package]] name = "keccak" version = "0.1.4" @@ -1565,7 +3563,7 @@ dependencies = [ "petgraph", "pico-args", "regex", - "regex-syntax", + "regex-syntax 0.7.5", "string_cache", "term", "tiny-keccak", @@ -1643,6 +3641,15 @@ dependencies = [ "hashbrown 0.12.3", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "matrixmultiply" version = "0.2.4" @@ -1658,6 +3665,15 @@ version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +[[package]] +name = "memmap2" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.9.0" @@ -1676,6 +3692,12 @@ dependencies = [ "libmimalloc-sys", ] +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + [[package]] name = "minilp" version = "0.2.2" @@ -1692,6 +3714,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.6.23" @@ -1711,6 +3742,17 @@ dependencies = [ "winapi 0.2.8", ] +[[package]] +name = "mio" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + [[package]] name = "mio-extras" version = "2.0.6" @@ -1719,7 +3761,7 @@ checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" dependencies = [ "lazycell", "log", - "mio", + "mio 0.6.23", "slab", ] @@ -1735,6 +3777,30 @@ dependencies = [ "ws2_32-sys", ] +[[package]] +name = "monch" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4519a88847ba2d5ead3dc53f1060ec6a571de93f325d9c5c4968147382b1cbc3" + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "ndarray" version = "0.13.1" @@ -1793,12 +3859,22 @@ dependencies = [ "fsevent-sys", "inotify", "libc", - "mio", + "mio 0.6.23", "mio-extras", "walkdir", "winapi 0.3.9", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi 0.3.9", +] + [[package]] name = "num-bigint" version = "0.4.4" @@ -1877,12 +3953,40 @@ dependencies = [ "autocfg", ] +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + [[package]] name = "number_prefix" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.18.0" @@ -1895,6 +3999,81 @@ version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +[[package]] +name = "openssl" +version = "0.10.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" +dependencies = [ + "bitflags 2.4.0", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits 0.2.16", +] + +[[package]] +name = "os_pipe" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "parity-scale-codec" version = "3.6.5" @@ -1980,6 +4159,30 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" +[[package]] +name = "path-dedot" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397" +dependencies = [ + "once_cell", +] + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +dependencies = [ + "camino", +] + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + [[package]] name = "petgraph" version = "0.6.4" @@ -2005,6 +4208,36 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "portable-atomic" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -2053,7 +4286,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", ] [[package]] @@ -2065,6 +4298,16 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "prodash" +version = "26.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf" +dependencies = [ + "bytesize", + "human_format", +] + [[package]] name = "quote" version = "1.0.33" @@ -2164,6 +4407,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_users" version = "0.4.3" @@ -2183,8 +4435,17 @@ checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff" dependencies = [ "aho-corasick", "memchr", - "regex-automata", - "regex-syntax", + "regex-automata 0.3.9", + "regex-syntax 0.7.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", ] [[package]] @@ -2195,9 +4456,21 @@ checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.7.5", ] +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + [[package]] name = "regex-syntax" version = "0.7.5" @@ -2210,6 +4483,47 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca" +[[package]] +name = "reqwest" +version = "0.11.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +dependencies = [ + "async-compression", + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "winreg", +] + [[package]] name = "rfc6979" version = "0.4.0" @@ -2220,6 +4534,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + [[package]] name = "rustc-hash" version = "1.1.0" @@ -2237,9 +4557,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.15" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f9da0cbd88f9f09e7814e388301c8414c51c62aa6ce1e4b5c551d49d96e531" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ "bitflags 2.4.0", "errno", @@ -2298,6 +4618,119 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "scarb" +version = "2.3.0" +source = "git+https://github.com/software-mansion/scarb#7eb2819a2a2ad5ce8d1c3f760e3274a2ea576e60" +dependencies = [ + "anyhow", + "async-trait", + "cairo-lang-compiler 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-defs 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-filesystem 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-formatter", + "cairo-lang-semantic 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-sierra-to-casm 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-starknet 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-test-plugin 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "cairo-lang-utils 2.3.0 (git+https://github.com/starkware-libs/cairo?rev=bf91adecc5a1cb2ced041ba383d7b7c38dd2fa7f)", + "camino", + "clap", + "clap-verbosity-flag", + "create-output-dir", + "data-encoding", + "deno_task_shell", + "derive_builder", + "directories", + "dunce", + "fs4", + "futures", + "gix", + "glob", + "ignore", + "include_dir", + "indoc", + "itertools 0.11.0", + "once_cell", + "pathdiff", + "petgraph", + "reqwest", + "scarb-build-metadata", + "scarb-metadata", + "scarb-ui", + "semver", + "serde", + "serde-untagged", + "serde-value", + "serde_json", + "serde_repr", + "sha2", + "smallvec", + "smol_str", + "tar", + "thiserror", + "tokio", + "toml 0.8.2", + "toml_edit 0.20.2", + "tracing", + "tracing-log", + "tracing-subscriber", + "typed-builder", + "url", + "walkdir", + "which", + "windows-sys 0.48.0", + "xxhash-rust", + "zip", + "zstd", +] + +[[package]] +name = "scarb-build-metadata" +version = "2.3.0" +source = "git+https://github.com/software-mansion/scarb#7eb2819a2a2ad5ce8d1c3f760e3274a2ea576e60" +dependencies = [ + "cargo_metadata", +] + +[[package]] +name = "scarb-metadata" +version = "1.8.0" +source = "git+https://github.com/software-mansion/scarb#7eb2819a2a2ad5ce8d1c3f760e3274a2ea576e60" +dependencies = [ + "camino", + "derive_builder", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "scarb-ui" +version = "0.1.0" +source = "git+https://github.com/software-mansion/scarb#7eb2819a2a2ad5ce8d1c3f760e3274a2ea576e60" +dependencies = [ + "anyhow", + "camino", + "clap", + "console", + "indicatif 0.17.7", + "scarb-metadata", + "serde", + "serde_json", +] + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "schemars" version = "0.8.15" @@ -2329,11 +4762,37 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" +dependencies = [ + "serde", +] [[package]] name = "serde" @@ -2344,6 +4803,26 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-untagged" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ba3ac59c62f51b75a6bfad8840b2ede4a81ff5cc23c200221ef479ae75a4aa3" +dependencies = [ + "erased-serde", + "serde", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + [[package]] name = "serde_derive" version = "1.0.188" @@ -2377,6 +4856,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + [[package]] name = "serde_spanned" version = "0.6.3" @@ -2386,6 +4876,24 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + [[package]] name = "sha2" version = "0.10.8" @@ -2407,6 +4915,34 @@ dependencies = [ "keccak", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + [[package]] name = "siphasher" version = "0.3.11" @@ -2437,6 +4973,26 @@ dependencies = [ "serde", ] +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "socket2" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "spin" version = "0.5.2" @@ -2464,31 +5020,15 @@ dependencies = [ "ark-std 0.3.0", "assert_cmd", "cairo-felt", - "cairo-lang-casm", - "cairo-lang-compiler", - "cairo-lang-debug", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-lowering", - "cairo-lang-plugins", - "cairo-lang-runner", - "cairo-lang-semantic", - "cairo-lang-sierra", - "cairo-lang-sierra-ap-change", - "cairo-lang-sierra-gas", - "cairo-lang-sierra-generator", - "cairo-lang-sierra-to-casm", - "cairo-lang-starknet", - "cairo-lang-syntax", + "cairo-lang-test-plugin 2.3.0 (git+https://github.com/starkware-libs/cairo?tag=v2.3.0)", "cairo-lang-test-runner", - "cairo-lang-utils", + "camino", "clap", "colored", "console", "glob", "home", - "indicatif", + "indicatif 0.16.2", "itertools 0.10.5", "notify", "num-bigint", @@ -2497,6 +5037,8 @@ dependencies = [ "rayon 0.9.0", "regex", "salsa", + "scarb", + "scarb-ui", "serde", "serde_json", "thiserror", @@ -2506,9 +5048,9 @@ dependencies = [ [[package]] name = "starknet-crypto" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693e6362f150f9276e429a910481fb7f3bcb8d6aa643743f587cfece0b374874" +checksum = "d3f2175b0b3fc24ff2ec6dc07f5a720498994effca7e78b11a6e1c1bd02cad52" dependencies = [ "crypto-bigint", "hex", @@ -2605,83 +5147,246 @@ dependencies = [ name = "syn" version = "2.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" +checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "redox_syscall 0.4.1", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi 0.3.9", +] + +[[package]] +name = "termcolor" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "thiserror" +version = "1.0.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + +[[package]] +name = "thiserror-impl-no-std" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58e6318948b519ba6dc2b442a6d0b904ebfb8d411a3ad3e07843615a72249758" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "thiserror-no-std" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3ad459d94dd517257cc96add8a43190ee620011bb6e6cdc82dafd97dfafafea" +dependencies = [ + "thiserror-impl-no-std", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "deranged", + "itoa", + "libc", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", ] [[package]] -name = "tap" -version = "1.0.1" +name = "time-core" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] -name = "term" -version = "0.7.0" +name = "time-macros" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ - "dirs-next", - "rustversion", - "winapi 0.3.9", + "time-core", ] [[package]] -name = "termtree" -version = "0.4.1" +name = "tiny-keccak" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] [[package]] -name = "thiserror" -version = "1.0.49" +name = "tinyvec" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ - "thiserror-impl", + "tinyvec_macros", ] [[package]] -name = "thiserror-impl" -version = "1.0.49" +name = "tinyvec_macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", + "backtrace", + "bytes", + "libc", + "mio 0.8.8", + "num_cpus", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.4", + "tokio-macros", + "windows-sys 0.48.0", ] [[package]] -name = "thiserror-impl-no-std" -version = "2.0.2" +name = "tokio-macros" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e6318948b519ba6dc2b442a6d0b904ebfb8d411a3ad3e07843615a72249758" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.37", ] [[package]] -name = "thiserror-no-std" -version = "2.0.2" +name = "tokio-native-tls" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ad459d94dd517257cc96add8a43190ee620011bb6e6cdc82dafd97dfafafea" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ - "thiserror-impl-no-std", + "native-tls", + "tokio", ] [[package]] -name = "tiny-keccak" -version = "2.0.2" +name = "tokio-util" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ - "crunchy", + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", ] [[package]] @@ -2702,7 +5407,19 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.20.2", ] [[package]] @@ -2727,12 +5444,127 @@ dependencies = [ "winnow", ] +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.0.2", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "typed-builder" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34085c17941e36627a879208083e25d357243812c30e7d7387c3b954f30ade16" +dependencies = [ + "typed-builder-macro", +] + +[[package]] +name = "typed-builder-macro" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + [[package]] name = "typenum" version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +[[package]] +name = "uluru" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794a32261a1f5eb6a4462c81b59cec87b5c27d5deea7dd1ac8fc781c41d226db" +dependencies = [ + "arrayvec", +] + [[package]] name = "unescaper" version = "0.1.2" @@ -2742,12 +5574,33 @@ dependencies = [ "thiserror", ] +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-bom" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98e90c70c9f0d4d1ee6d0a7d04aa06cb9bbd53d8cfbdd62a0269a7c2eb640552" + [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + [[package]] name = "unicode-segmentation" version = "1.10.1" @@ -2766,12 +5619,36 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "url" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + [[package]] name = "utf8parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.4" @@ -2788,6 +5665,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2819,6 +5705,18 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.87" @@ -2848,6 +5746,41 @@ version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +[[package]] +name = "wasm-streams" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + [[package]] name = "winapi" version = "0.2.8" @@ -2891,6 +5824,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -3032,6 +5974,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.48.0", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -3051,6 +6003,15 @@ dependencies = [ "tap", ] +[[package]] +name = "xattr" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" +dependencies = [ + "libc", +] + [[package]] name = "xshell" version = "0.2.5" @@ -3066,6 +6027,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e2c411759b501fb9501aac2b1b2d287a6e93e5bdcf13c25306b23e1b716dd0e" +[[package]] +name = "xxhash-rust" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9828b178da53440fa9c766a3d2f73f7cf5d0ac1fe3980c1e5018d899fd19e07b" + [[package]] name = "zeroize" version = "1.6.0" @@ -3085,3 +6052,44 @@ dependencies = [ "quote", "syn 2.0.37", ] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "byteorder", + "crc32fast", + "crossbeam-utils", + "flate2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml index 3455d2585..b513faf91 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,26 +24,10 @@ glob = "0.3.0" cairo-felt = "0.8.2" # Cairo runner dependencies -cairo-lang-runner = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-test-runner = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-compiler = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-casm = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-diagnostics = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-debug = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-defs = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-sierra = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-sierra-ap-change = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-sierra-gas = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-sierra-generator = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-semantic = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-sierra-to-casm = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-utils = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-filesystem = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-starknet = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-syntax = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-plugins = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} -cairo-lang-lowering = {git = "https://github.com/starkware-libs/cairo", tag = "v2.2.0"} - +cairo-lang-test-runner = {git = "https://github.com/starkware-libs/cairo", tag = "v2.3.0"} +cairo-lang-test-plugin = {git = "https://github.com/starkware-libs/cairo", tag = "v2.3.0"} +scarb = { git = "https://github.com/software-mansion/scarb", version = "2.3.0" } +scarb-ui = { git = "https://github.com/software-mansion/scarb", version = "0.1.0" } anyhow = "1.0.66" ark-ff = "0.4.0-alpha.7" @@ -57,6 +41,7 @@ thiserror = "1.0.32" rayon = "0.9.0" colored = "2" unescaper = "0.1.1" +camino = "1.1.6" [dev-dependencies] assert_cmd = "0.11.0" @@ -66,11 +51,3 @@ glob = "0.3.0" [[bin]] name = "starklings" path = "src/main.rs" - -[[bin]] -name = "starklings-runner" -path = "src/starklings_runner.rs" - -[[bin]] -name = "starklings-tester" -path = "src/starklings_tester.rs" diff --git a/Scarb.toml b/Scarb.toml deleted file mode 100644 index 00e3a00f3..000000000 --- a/Scarb.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "starklings_cairo1" -version = "0.1.0" - -# See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest - -[dependencies] -starknet = ">=2.2.0" - -[[target.starknet-contract]] diff --git a/corelib/Scarb.lock b/corelib/Scarb.lock new file mode 100644 index 000000000..c95ba36ae --- /dev/null +++ b/corelib/Scarb.lock @@ -0,0 +1,6 @@ +# Code generated by scarb DO NOT EDIT. +version = 1 + +[[package]] +name = "core" +version = "2.2.0" diff --git a/info.toml b/info.toml index 4bcac8b3d..7fc89dd44 100644 --- a/info.toml +++ b/info.toml @@ -3,7 +3,7 @@ [[exercises]] name = "intro1" path = "exercises/intro/intro1.cairo" -mode = "compile" +mode = "build" hint = """ No hints this time ;) """ @@ -11,7 +11,7 @@ No hints this time ;) [[exercises]] name = "intro2" path = "exercises/intro/intro2.cairo" -mode = "compile" +mode = "build" hint = """ No hints this time ;) """ @@ -21,7 +21,7 @@ No hints this time ;) [[exercises]] name = "variables1" path = "exercises/variables/variables1.cairo" -mode = "compile" +mode = "build" hint = """ The declaration on line 8 is missing a keyword that is needed in Cairo to create a new variable binding.""" @@ -29,7 +29,7 @@ to create a new variable binding.""" [[exercises]] name = "variables2" path = "exercises/variables/variables2.cairo" -mode = "compile" +mode = "build" hint = """ What happens if you annotate line 7 with a type annotation? What if you give x a value? @@ -40,7 +40,7 @@ What if x is the same type as 10? What if it's a different type? (e.g. a u8)""" [[exercises]] name = "variables3" path = "exercises/variables/variables3.cairo" -mode = "compile" +mode = "build" hint = """ Oops! In this exercise, we have a variable binding that we've created on line 7, and we're trying to use it on line 8, but we haven't given it a @@ -51,7 +51,7 @@ programming language -- thankfully the Cairo compiler has caught this for us!""" [[exercises]] name = "variables4" path = "exercises/variables/variables4.cairo" -mode = "compile" +mode = "build" hint = """ In Cairo, variable bindings are immutable by default. But here we're trying to reassign a different value to x! There's a keyword we can use to make @@ -60,7 +60,7 @@ a variable binding mutable instead.""" [[exercises]] name = "variables5" path = "exercises/variables/variables5.cairo" -mode = "compile" +mode = "build" hint = """ In variables4 we already learned how to make an immutable variable mutable using a special keyword. Unfortunately this doesn't help us much in this exercise @@ -75,7 +75,7 @@ Try to solve this exercise afterwards using this technique.""" [[exercises]] name = "variables6" path = "exercises/variables/variables6.cairo" -mode = "compile" +mode = "build" hint = """ We know about variables and mutability, but there is another important type of variable available: constants. @@ -90,19 +90,19 @@ You can read about the constants here: https://cairo-book.github.io/ch02-01-vari [[exercises]] name = "primitive_types1" path = "exercises/primitive_types/primitive_types1.cairo" -mode = "compile" +mode = "build" hint = "No hints this time ;)" [[exercises]] name = "primitive_types2" path = "exercises/primitive_types/primitive_types2.cairo" -mode = "compile" +mode = "build" hint = "No hints this time ;)" [[exercises]] name = "primitive_types3" path = "exercises/primitive_types/primitive_types3.cairo" -mode = "compile" +mode = "build" hint = """ You'll need to make a pattern to bind `name` and `age` to the appropriate parts of the tuple. @@ -168,7 +168,7 @@ conditions checking different input values.""" [[exercises]] name = "functions1" path = "exercises/functions/functions1.cairo" -mode = "compile" +mode = "build" hint = """ This main function is calling a function that it expects to exist, but the function doesn't exist. It expects this function to have the name `call_me`. @@ -178,7 +178,7 @@ Sounds a lot like `main`, doesn't it?""" [[exercises]] name = "functions2" path = "exercises/functions/functions2.cairo" -mode = "compile" +mode = "build" hint = """ Cairo requires that all parts of a function's signature have type annotations, but `call_me` is missing the type annotation of `num`. What is the basic type in Cairo?""" @@ -186,7 +186,7 @@ but `call_me` is missing the type annotation of `num`. What is the basic type in [[exercises]] name = "functions3" path = "exercises/functions/functions3.cairo" -mode = "compile" +mode = "build" hint = """ This time, the function *declaration* is okay, but there's something wrong with the place where we're calling the function. @@ -197,7 +197,7 @@ Watch mode will only jump to the next exercise if you remove the I AM NOT DONE c [[exercises]] name = "functions4" path = "exercises/functions/functions4.cairo" -mode = "compile" +mode = "build" hint = """ The error message points to line 18 and says it expects a type after the `->`. This is where the function's return type should be -- take a look at @@ -235,13 +235,13 @@ You can return values from loops by adding the value you want returned after the [[exercises]] name = "enums1" path = "exercises/enums/enums1.cairo" -mode = "compile" +mode = "build" hint = "https://cairo-book.github.io/ch06-01-enums.html" [[exercises]] name = "enums2" path = "exercises/enums/enums2.cairo" -mode = "compile" +mode = "build" hint = """ You can create enumerations that have different variants with different types such as no data, structs, a single felt string, tuples, ...etc @@ -385,7 +385,7 @@ This section will help you understanding more about methods https://cairo-book.g [[exercises]] name = "move_semantics1" path = "exercises/move_semantics/move_semantics1.cairo" -mode = "compile" +mode = "build" hint = """ So you've got the "ref argument must be a mutable variable." error on line 17, right? The fix for this is going to be adding one keyword, and the addition is NOT on line 17 @@ -399,7 +399,7 @@ Read more about move semantics and ownership here: https://cairo-book.github.io/ [[exercises]] name = "move_semantics2" path = "exercises/move_semantics/move_semantics2.cairo" -mode = "compile" +mode = "build" hint = """ So, `arr0` is passed into the `fill_arr` function as an argument. In Cairo, when an argument is passed to a function and it's not explicitly returned, @@ -420,7 +420,7 @@ There's a few ways to fix this, try them all if you want: [[exercises]] name = "move_semantics3" path = "exercises/move_semantics/move_semantics3.cairo" -mode = "compile" +mode = "build" hint = """ The difference between this one and the previous ones is that the first line of `fn fill_arr` that had `let mut arr = arr;` is no longer there. You can, @@ -430,7 +430,7 @@ an existing binding to be a mutable binding instead of an immutable one :)""" [[exercises]] name = "move_semantics4" path = "exercises/move_semantics/move_semantics4.cairo" -mode = "compile" +mode = "build" hint = """ Stop reading whenever you feel like you have enough direction :) Or try doing one step and then fixing the compiler errors that result! @@ -445,7 +445,7 @@ So the end goal is to: [[exercises]] name = "move_semantics5" path = "exercises/move_semantics/move_semantics5.cairo" -mode = "compile" +mode = "build" hint = """ Carefully reason about how each function takes ownership of the variable passed. It depends on the keyword used to pass the variable. @@ -456,7 +456,7 @@ Can we still use it later on? [[exercises]] name = "move_semantics6" path = "exercises/move_semantics/move_semantics6.cairo" -mode = "compile" +mode = "build" hint = """ The first problem is that `get_value` is taking ownership of the Number struct. So `Number` is moved and can't be used for `set_value` diff --git a/runner-crate/.gitignore b/runner-crate/.gitignore new file mode 100644 index 000000000..eb5a316cb --- /dev/null +++ b/runner-crate/.gitignore @@ -0,0 +1 @@ +target diff --git a/runner-crate/Scarb.lock b/runner-crate/Scarb.lock new file mode 100644 index 000000000..846e0a4aa --- /dev/null +++ b/runner-crate/Scarb.lock @@ -0,0 +1,6 @@ +# Code generated by scarb DO NOT EDIT. +version = 1 + +[[package]] +name = "runner_crate" +version = "0.1.0" diff --git a/runner-crate/Scarb.toml b/runner-crate/Scarb.toml new file mode 100644 index 000000000..55c90162f --- /dev/null +++ b/runner-crate/Scarb.toml @@ -0,0 +1,8 @@ +[package] +name = "runner_crate" +version = "0.1.0" + +# See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html + +[dependencies] +# foo = { path = "vendor/foo" } diff --git a/runner-crate/src/lib.cairo b/runner-crate/src/lib.cairo new file mode 100644 index 000000000..b32da5199 --- /dev/null +++ b/runner-crate/src/lib.cairo @@ -0,0 +1,25 @@ +// move_semantics2.cairo +// Make me compile without changing line 16 or moving line 13! +// Execute `starklings hint move_semantics2` or use the `hint` watch subcommand for a hint. + +use array::ArrayTrait; +use debug::PrintTrait; + +fn main() { + let mut arr0 = ArrayTrait::new(); + + let mut arr1 = fill_arr(arr0); + + // Do not change the following line! + arr0.print(); +} + +fn fill_arr(arr: Array) -> Array { + let mut arr = arr; + + arr.append(22); + arr.append(44); + arr.append(66); + + arr +} diff --git a/src/exercise.rs b/src/exercise.rs index b4d7f819d..1de1bb50e 100755 --- a/src/exercise.rs +++ b/src/exercise.rs @@ -1,14 +1,14 @@ use regex::Regex; use serde::Deserialize; -use crate::starklings_runner::{run_cairo_program, Args as RunnerArgs}; -use crate::starklings_tester::run_exercise_tests; use std::fmt::{self, Display, Formatter}; use std::fs::{remove_file, File}; use std::io::Read; use std::path::PathBuf; use std::process::{self}; +use crate::scarb::{scarb_build, scarb_test}; + const I_AM_DONE_REGEX: &str = r"(?m)^\s*///?\s*I\s+AM\s+NOT\s+DONE"; const CONTEXT: usize = 2; @@ -28,7 +28,7 @@ fn temp_file() -> String { #[serde(rename_all = "lowercase")] pub enum Mode { // Indicates that the exercise should be compiled as a binary - Compile, + Build, // Indicates that the exercise should be tested Test, } @@ -46,7 +46,7 @@ pub struct Exercise { pub name: String, // The path to the file containing the exercise's source code pub path: PathBuf, - // The mode of the exercise (Test, Compile, or Clippy) + // The mode of the exercise (Test/Build) pub mode: Mode, // The hint text associated with the exercise pub hint: String, @@ -91,16 +91,12 @@ impl Drop for FileHandle { } impl Exercise { - pub fn run_cairo(&self) -> anyhow::Result { - run_cairo_program(&RunnerArgs { - path: self.path.to_str().unwrap().parse()?, - available_gas: Some(20000000000), - print_full_memory: false, - }) + pub fn build(&self) -> anyhow::Result { + scarb_build(&self.path) } - pub fn test_cairo(&self) -> anyhow::Result { - run_exercise_tests(self.path.to_str().unwrap()) + pub fn test(&self) -> anyhow::Result { + scarb_test(&self.path) } pub fn state(&self) -> State { @@ -177,7 +173,7 @@ mod test { let exercise = Exercise { name: "finished_exercise".into(), path: PathBuf::from("tests/fixture/cairo/compilePass.cairo"), - mode: Mode::Compile, + mode: Mode::Build, hint: String::new(), }; @@ -189,7 +185,7 @@ mod test { let exercise = Exercise { name: "testPass".into(), path: PathBuf::from("tests/fixture/cairo/testPass.cairo"), - mode: Mode::Compile, + mode: Mode::Build, hint: String::new(), }; diff --git a/src/main.rs b/src/main.rs index 189ecb069..1d8681894 100755 --- a/src/main.rs +++ b/src/main.rs @@ -23,8 +23,7 @@ mod ui; mod exercise; mod project; mod run; -pub mod starklings_runner; -pub mod starklings_tester; +mod scarb; mod verify; // In sync with crate version diff --git a/src/run.rs b/src/run.rs index b5aa82ea3..05cbbf424 100755 --- a/src/run.rs +++ b/src/run.rs @@ -1,7 +1,6 @@ use std::process::Command; use crate::exercise::{Exercise, Mode}; -use indicatif::ProgressBar; // Invoke the rust compiler on the path of the given exercise, // and run the ensuing binary. @@ -9,7 +8,7 @@ use indicatif::ProgressBar; // the output from the test harnesses (if the mode of the exercise is test) pub fn run(exercise: &Exercise) -> Result<(), ()> { match exercise.mode { - Mode::Compile => run_cairo(exercise)?, + Mode::Build => run_cairo(exercise)?, Mode::Test => test_cairo(exercise)?, } Ok(()) @@ -32,19 +31,16 @@ pub fn reset(exercise: &Exercise) -> Result<(), ()> { // and run the ensuing binary. // This is strictly for non-test binaries, so output is displayed fn run_cairo(exercise: &Exercise) -> Result<(), ()> { - let progress_bar = ProgressBar::new_spinner(); - progress_bar.set_message(format!("Running {exercise}...")); - progress_bar.enable_steady_tick(100); - let output = exercise.run_cairo(); + println!("\nRunning {exercise}...\n"); + let output = exercise.build(); if let Some(error) = output.as_ref().err() { - progress_bar.finish_and_clear(); println!("{error}"); Err(()) } else { let message = output.unwrap(); println!("{message}"); - success!("Successfully ran {}", exercise); + success!("Successfully built {}", exercise); Ok(()) } } @@ -53,19 +49,16 @@ fn run_cairo(exercise: &Exercise) -> Result<(), ()> { // and run the ensuing binary. // This is strictly for non-test binaries, so output is displayed fn test_cairo(exercise: &Exercise) -> Result<(), ()> { - let progress_bar = ProgressBar::new_spinner(); - progress_bar.set_message(format!("Testing {exercise}...")); - progress_bar.enable_steady_tick(100); - let output = exercise.test_cairo(); + println!("\nTesting {exercise}...\n"); + let output = exercise.test(); if let Some(error) = output.as_ref().err() { - progress_bar.finish_and_clear(); println!("{error}"); Err(()) } else { let message = output.unwrap(); println!("{message}"); - success!("Successfully ran {}", exercise); + success!("Successfully built {}", exercise); Ok(()) } } diff --git a/src/scarb.rs b/src/scarb.rs new file mode 100644 index 000000000..a4017eaa0 --- /dev/null +++ b/src/scarb.rs @@ -0,0 +1,115 @@ +use std::{env, fs, path::PathBuf}; + +use anyhow::Context; +use cairo_lang_test_plugin::TestCompilation; +use cairo_lang_test_runner::{CompiledTestRunner, TestRunConfig}; +use camino::Utf8PathBuf; + +use scarb::{ + core::{Config, TargetKind}, + ops::{self, collect_metadata, CompileOpts, MetadataOptions}, +}; + +pub fn prepare_crate_for_exercise(file_path: &PathBuf, crate_path: PathBuf) { + let lib_path = crate_path.join("src/lib.cairo"); + match fs::copy(file_path, lib_path) { + Ok(_) => {} + Err(err) => panic!("Error occurred while preparing the exercise:\n {err:?}"), + }; +} + +pub fn scarb_build(file_path: &PathBuf) -> anyhow::Result { + let path = env::current_dir().unwrap(); + let (config, crate_path) = scarb_config(path.join(PathBuf::from("runner-crate"))); + + prepare_crate_for_exercise(file_path, crate_path); + + match compile(&config, false) { + Ok(_) => Ok("".into()), + Err(_) => anyhow::bail!("Couldn't build the exercise..."), + } +} + +pub fn scarb_test(file_path: &PathBuf) -> anyhow::Result { + let path = env::current_dir().unwrap(); + let (config, crate_path) = scarb_config(path.join(PathBuf::from("runner-crate"))); + + prepare_crate_for_exercise(file_path, crate_path); + + let ws = ops::read_workspace(config.manifest_path(), &config)?; + + compile(&config, true)?; + + let metadata = collect_metadata( + &MetadataOptions { + version: 1, + no_deps: false, + }, + &ws, + ) + .unwrap(); + + let profile = env::var("SCARB_PROFILE").unwrap_or("dev".into()); + let default_target_dir = metadata.runtime_manifest.join("target"); + + let target_dir = metadata + .target_dir + .clone() + .unwrap_or(default_target_dir) + .join(profile); + + for package in metadata.packages.iter() { + if package.name != "runner_crate" { + continue; + } + for target in package.targets.iter() { + if target.kind == "test" { + continue; + } + // let file_path = target_dir.join(format!("{}.test.json", target.name.clone())); + let file_path = target_dir.join(format!("{}_unittest.test.json", target.name.clone())); + let test_compilation = serde_json::from_str::( + &fs::read_to_string(file_path.clone()) + .with_context(|| format!("failed to read file: {file_path}"))?, + ) + .with_context(|| format!("failed to deserialize compiled tests file: {file_path}"))?; + + let config = TestRunConfig { + filter: "".into(), + include_ignored: false, + ignored: false, + }; + let runner = CompiledTestRunner::new(test_compilation, config); + runner.run()?; + println!(); + } + } + + anyhow::Ok("".into()) +} + +pub fn scarb_config(crate_path: PathBuf) -> (Config, PathBuf) { + let path = Utf8PathBuf::from_path_buf(crate_path.join(PathBuf::from("Scarb.toml"))).unwrap(); + + let config = Config::builder(path).build().unwrap(); + + (config, crate_path) +} + +pub fn compile(config: &Config, test_targets: bool) -> anyhow::Result<()> { + let ws = ops::read_workspace(config.manifest_path(), &config)?; + let opts: CompileOpts = match test_targets { + false => CompileOpts { + include_targets: vec![], + exclude_targets: vec![TargetKind::TEST], + }, + true => CompileOpts { + include_targets: vec![TargetKind::TEST], + exclude_targets: vec![], + }, + }; + + let packages = ws.members().map(|p| p.id).collect(); + + ops::compile(packages, opts, &ws) +} diff --git a/src/starklings_runner.rs b/src/starklings_runner.rs deleted file mode 100644 index 04934c33b..000000000 --- a/src/starklings_runner.rs +++ /dev/null @@ -1,115 +0,0 @@ -//! Compiles and runs a Cairo program. - -use std::path::Path; - -use anyhow::{Context, Ok}; -use cairo_lang_compiler::db::RootDatabase; -use cairo_lang_compiler::diagnostics::DiagnosticsReporter; -use cairo_lang_compiler::project::setup_project; -use cairo_lang_diagnostics::ToOption; -use cairo_lang_filesystem::db::init_dev_corelib; - -use cairo_lang_runner::{SierraCasmRunner, StarknetState}; - -use cairo_lang_sierra::extensions::gas::{ - BuiltinCostWithdrawGasLibfunc, RedepositGasLibfunc, WithdrawGasLibfunc, -}; -use cairo_lang_sierra::extensions::NamedLibfunc; -use cairo_lang_sierra_generator::db::SierraGenGroup; -use cairo_lang_sierra_generator::replace_ids::{DebugReplacer, SierraIdReplacer}; -use cairo_lang_starknet::contract::get_contracts_info; - -use clap::Parser; - -const CORELIB_DIR_NAME: &str = "corelib/src"; - -/// Command line args parser. -/// Exits with 0/1 if the input is formatted correctly/incorrectly. -#[derive(Parser, Debug)] -#[clap(version, verbatim_doc_comment)] -pub struct Args { - /// The file to compile and run. - pub path: String, - /// In cases where gas is available, the amount of provided gas. - #[arg(long)] - pub available_gas: Option, - /// Whether to print the memory. - #[arg(long, default_value_t = false)] - pub print_full_memory: bool, -} - -pub fn main() -> anyhow::Result<()> { - let args = Args::parse(); - let res = run_cairo_program(&args); - if let Err(e) = res { - eprintln!("{e}"); - std::process::exit(1); - } - Ok(()) -} - -pub fn run_cairo_program(args: &Args) -> anyhow::Result { - let db = &mut RootDatabase::builder().detect_corelib().build()?; - let mut corelib_dir = std::env::current_exe() - .unwrap_or_else(|e| panic!("Problem getting the executable path: {e:?}")); - corelib_dir.pop(); - corelib_dir.pop(); - corelib_dir.pop(); - corelib_dir.push(CORELIB_DIR_NAME); - init_dev_corelib(db, corelib_dir); - - let main_crate_ids = setup_project(db, Path::new(&args.path))?; - - if DiagnosticsReporter::stderr().check(db) { - anyhow::bail!("failed to compile: {}", args.path); - } - - let mut ret_string = String::new(); - - let sierra_program = db - .get_sierra_program(main_crate_ids.clone()) - .to_option() - .with_context(|| "Compilation failed without any diagnostics.")?; - let replacer = DebugReplacer { db }; - if args.available_gas.is_none() - && sierra_program.type_declarations.iter().any(|decl| { - matches!( - decl.long_id.generic_id.0.as_str(), - WithdrawGasLibfunc::STR_ID - | BuiltinCostWithdrawGasLibfunc::STR_ID - | RedepositGasLibfunc::STR_ID - ) - }) - { - anyhow::bail!("Program requires gas counter, please provide `--available_gas` argument."); - } - - let contracts_info = get_contracts_info(db, main_crate_ids, &replacer)?; - - let runner = SierraCasmRunner::new( - replacer.apply(&sierra_program), - if args.available_gas.is_some() { - Some(Default::default()) - } else { - None - }, - contracts_info, - ) - .with_context(|| "Failed setting up runner.")?; - let result = runner - .run_function_with_starknet_context( - runner.find_function("::main")?, - &[], - args.available_gas, - StarknetState::default(), - ) - .with_context(|| "Failed to run the function.")?; - match result.value { - cairo_lang_runner::RunResultValue::Success(values) => ret_string - .push_str(format!("Run completed successfully, returning {values:?}").as_str()), - cairo_lang_runner::RunResultValue::Panic(values) => { - ret_string.push_str(format!("Run panicked with err values: {values:?}").as_str()); - } - } - Ok(ret_string) -} diff --git a/src/starklings_tester.rs b/src/starklings_tester.rs deleted file mode 100644 index 30b5619dc..000000000 --- a/src/starklings_tester.rs +++ /dev/null @@ -1,566 +0,0 @@ -//! Compiles and runs a Cairo program. - -use anyhow::{bail, Context, Result}; -use cairo_felt::Felt252; -use cairo_lang_compiler::db::RootDatabase; -use cairo_lang_compiler::diagnostics::DiagnosticsReporter; -use cairo_lang_compiler::project::setup_project; -use cairo_lang_debug::DebugWithDb; -use cairo_lang_defs::ids::{FreeFunctionId, FunctionWithBodyId, ModuleItemId}; -use cairo_lang_defs::plugin::PluginDiagnostic; -use cairo_lang_diagnostics::ToOption; -use cairo_lang_filesystem::cfg::{Cfg, CfgSet}; -use cairo_lang_starknet::inline_macros::selector::SelectorMacro; -use cairo_lang_test_runner::plugin::TestPlugin; - -use std::path::Path; -use std::sync::{Arc, Mutex}; - -use cairo_lang_filesystem::ids::CrateId; - -use cairo_lang_lowering::ids::ConcreteFunctionWithBodyId; -use cairo_lang_runner::short_string::as_cairo_short_string; -use cairo_lang_runner::{RunResultValue, SierraCasmRunner}; -use cairo_lang_semantic::db::SemanticGroup; -use cairo_lang_semantic::items::functions::GenericFunctionId; - -use cairo_lang_semantic::{ConcreteFunction, FunctionLongId}; -use cairo_lang_sierra::extensions::gas::CostTokenType; -use cairo_lang_sierra::ids::FunctionId; -use cairo_lang_sierra_generator::db::SierraGenGroup; -use cairo_lang_sierra_generator::replace_ids::{DebugReplacer, SierraIdReplacer}; -use cairo_lang_sierra_to_casm::metadata::MetadataComputationConfig; -use cairo_lang_starknet::casm_contract_class::ENTRY_POINT_COST; -use cairo_lang_starknet::contract::{ - find_contracts, get_contract_abi_functions, get_contracts_info, ContractInfo, -}; -use cairo_lang_starknet::plugin::consts::{CONSTRUCTOR_MODULE, EXTERNAL_MODULE, L1_HANDLER_MODULE}; -use cairo_lang_starknet::plugin::StarkNetPlugin; -use cairo_lang_syntax::attribute::structured::{Attribute, AttributeArg, AttributeArgVariant}; - -use cairo_lang_syntax::node::db::SyntaxGroup; -use cairo_lang_syntax::node::{ast, Token}; -use cairo_lang_utils::ordered_hash_map::OrderedHashMap; -use cairo_lang_utils::OptionHelper; -use clap::Parser; -use colored::Colorize; -use itertools::{chain, Itertools}; -use rayon::prelude::{IntoParallelIterator, ParallelIterator}; - -/// Command line args parser. -/// Exits with 0/1 if the input is formatted correctly/incorrectly. -#[derive(Parser, Debug)] -#[clap(version, verbatim_doc_comment)] -pub struct Args { - /// The path to compile and run its tests. - #[arg(short, long)] - pub path: String, - /// The filter for the tests, running only tests containing the filter string. - #[arg(short, long, default_value_t = String::default())] - pub filter: String, - /// Should we run ignored tests as well. - #[arg(long, default_value_t = false)] - pub include_ignored: bool, - /// Should we run only the ignored tests. - #[arg(long, default_value_t = false)] - pub ignored: bool, - /// Should we add the starknet plugin to run the tests. - #[arg(long, default_value_t = false)] - pub starknet: bool, -} - -/// The status of a ran test. -enum TestStatus { - Success, - Fail(RunResultValue), - Ignore, -} - -pub fn main() -> anyhow::Result<()> { - let args = Args::parse(); - let runner = TestRunner::new(&args.path, "", false, false, true)?; - if let Err(e) = runner.run() { - eprintln!("{e}"); - std::process::exit(1); - } - Ok(()) -} - -pub struct TestRunner { - pub db: RootDatabase, - pub main_crate_ids: Vec, - pub filter: String, - pub include_ignored: bool, - pub ignored: bool, - pub starknet: bool, -} - -impl TestRunner { - /// Configure a new test runner - /// - /// # Arguments - /// - /// * `path` - The path to compile and run its tests - /// * `filter` - Run only tests containing the filter string - /// * `include_ignored` - Include ignored tests as well - /// * `ignored` - Run ignored tests only - /// * `starknet` - Add the starknet plugin to run the tests - pub fn new( - path: &str, - filter: &str, - include_ignored: bool, - ignored: bool, - starknet: bool, - ) -> Result { - let db = &mut { - let mut b = RootDatabase::builder(); - b.detect_corelib(); - b.with_cfg(CfgSet::from_iter([Cfg::name("test")])); - b.with_macro_plugin(Arc::new(TestPlugin::default())); - - if starknet { - b.with_macro_plugin(Arc::new(StarkNetPlugin::default())) - .with_inline_macro_plugin(SelectorMacro::NAME, Arc::new(SelectorMacro)); - } - - b.build()? - }; - - let main_crate_ids = setup_project(db, Path::new(&path))?; - - if DiagnosticsReporter::stderr().check(db) { - bail!("failed to compile: {}", path); - } - - Ok(Self { - db: db.snapshot(), - main_crate_ids, - filter: filter.into(), - include_ignored, - ignored, - starknet, - }) - } - - /// Runs the tests and process the results for a summary. - pub fn run(&self) -> Result { - let db = &self.db; - - let all_entry_points = if self.starknet { - find_contracts(db, &self.main_crate_ids) - .iter() - .flat_map(|contract| { - chain!( - get_contract_abi_functions(db, contract, EXTERNAL_MODULE).unwrap(), - get_contract_abi_functions(db, contract, CONSTRUCTOR_MODULE).unwrap(), - get_contract_abi_functions(db, contract, L1_HANDLER_MODULE).unwrap() - ) - }) - .map(|func| ConcreteFunctionWithBodyId::from_semantic(db, func.value)) - .collect() - } else { - vec![] - }; - let function_set_costs: OrderedHashMap> = - all_entry_points - .iter() - .map(|func_id| { - ( - db.function_with_body_sierra(*func_id).unwrap().id.clone(), - [(CostTokenType::Const, ENTRY_POINT_COST)].into(), - ) - }) - .collect(); - let all_tests = find_all_tests(db, self.main_crate_ids.clone()); - let sierra_program = self - .db - .get_sierra_program_for_functions( - chain!( - all_entry_points.into_iter(), - all_tests.iter().flat_map(|(func_id, _cfg)| { - ConcreteFunctionWithBodyId::from_no_generics_free(db, *func_id) - }) - ) - .collect(), - ) - .to_option() - .with_context(|| "Compilation failed without any diagnostics.")?; - let replacer = DebugReplacer { db }; - let sierra_program = replacer.apply(&sierra_program); - let total_tests_count = all_tests.len(); - let named_tests = all_tests - .into_iter() - .map(|(func_id, mut test)| { - // Un-ignoring all the tests in `include-ignored` mode. - if self.include_ignored { - test.ignored = false; - } - ( - format!( - "{:?}", - FunctionLongId { - function: ConcreteFunction { - generic_function: GenericFunctionId::Free(func_id), - generic_args: vec![] - } - } - .debug(db) - ), - test, - ) - }) - .filter(|(name, _)| name.contains(&self.filter)) - // Filtering unignored tests in `ignored` mode. - .filter(|(_, test)| !self.ignored || test.ignored) - .collect_vec(); - let filtered_out = total_tests_count - named_tests.len(); - let contracts_info = get_contracts_info(db, self.main_crate_ids.clone(), &replacer)?; - let TestsSummary { - passed, - failed, - ignored, - failed_run_results, - } = run_tests( - named_tests, - sierra_program, - function_set_costs, - contracts_info, - )?; - - let mut result_string = String::new(); - if failed.is_empty() { - result_string.push_str( - format!( - "test result: {}. {} passed; {} failed; {} ignored; {filtered_out} filtered out;", - "ok".bright_green(), - passed.len(), - failed.len(), - ignored.len() - ) - .as_str(), - ); - Ok(result_string) - } else { - result_string.push_str("failures:".to_string().as_str()); - for (failure, run_result) in failed.iter().zip_eq(failed_run_results) { - result_string.push_str(format!(" {failure} - ").as_str()); - match run_result { - RunResultValue::Success(_) => { - result_string.push_str( - "expected panic but finished successfully." - .to_string() - .as_str(), - ); - } - RunResultValue::Panic(values) => { - result_string.push_str("panicked with [".to_string().as_str()); - for value in &values { - match as_cairo_short_string(value) { - Some(as_string) => result_string - .push_str(format!("{value} ('{as_string}'), ").as_str()), - None => result_string.push_str(format!("{value}, ").as_str()), - } - } - result_string.push_str("].".to_string().as_str()); - } - } - } - - bail!( - "{}\n\ - test result: {}. {} passed; {} failed; {} ignored", - result_string, - "FAILED".bright_red(), - passed.len(), - failed.len(), - ignored.len() - ) - } - } -} - -/// Summary data of the ran tests. -pub struct TestsSummary { - passed: Vec, - failed: Vec, - ignored: Vec, - failed_run_results: Vec, -} - -/// Runs the tests and process the results for a summary. -fn run_tests( - named_tests: Vec<(String, TestConfig)>, - sierra_program: cairo_lang_sierra::program::Program, - function_set_costs: OrderedHashMap>, - contracts_info: OrderedHashMap, -) -> anyhow::Result { - let runner = SierraCasmRunner::new( - sierra_program, - Some(MetadataComputationConfig { function_set_costs }), - contracts_info, - ) - .with_context(|| "Failed setting up runner.")?; - println!("running {} tests", named_tests.len()); - let wrapped_summary = Mutex::new(Ok(TestsSummary { - passed: vec![], - failed: vec![], - ignored: vec![], - failed_run_results: vec![], - })); - named_tests - .into_par_iter() - .map(|(name, test)| -> anyhow::Result<(String, TestStatus)> { - if test.ignored { - return Ok((name, TestStatus::Ignore)); - } - let result = runner - .run_function_with_starknet_context( - runner.find_function(name.as_str())?, - &[], - test.available_gas, - Default::default(), - ) - .with_context(|| format!("Failed to run the function `{}`.", name.as_str()))?; - Ok(( - name, - match &result.value { - RunResultValue::Success(_) => match test.expectation { - TestExpectation::Success => TestStatus::Success, - TestExpectation::Panics(_) => TestStatus::Fail(result.value), - }, - RunResultValue::Panic(value) => match test.expectation { - TestExpectation::Success => TestStatus::Fail(result.value), - TestExpectation::Panics(panic_expectation) => match panic_expectation { - PanicExpectation::Exact(expected) if value != &expected => { - TestStatus::Fail(result.value) - } - _ => TestStatus::Success, - }, - }, - }, - )) - }) - .for_each(|r| { - let mut wrapped_summary = wrapped_summary.lock().unwrap(); - if wrapped_summary.is_err() { - return; - } - let (name, status) = match r { - Ok((name, status)) => (name, status), - Err(err) => { - *wrapped_summary = Err(err); - return; - } - }; - let summary = wrapped_summary.as_mut().unwrap(); - let (res_type, status_str) = match status { - TestStatus::Success => (&mut summary.passed, "ok".bright_green()), - TestStatus::Fail(run_result) => { - summary.failed_run_results.push(run_result); - (&mut summary.failed, "fail".bright_red()) - } - TestStatus::Ignore => (&mut summary.ignored, "ignored".bright_yellow()), - }; - println!("test {name} ... {status_str}",); - res_type.push(name); - }); - wrapped_summary.into_inner().unwrap() -} -/// Expectation for a panic case. -pub enum PanicExpectation { - /// Accept any panic value. - Any, - /// Accept only this specific vector of panics. - Exact(Vec), -} - -/// Expectation for a result of a test. -pub enum TestExpectation { - /// Running the test should not panic. - Success, - /// Running the test should result in a panic. - Panics(PanicExpectation), -} -/// The configuration for running a single test. -pub struct TestConfig { - /// The amount of gas the test requested. - pub available_gas: Option, - /// The expected result of the run. - pub expectation: TestExpectation, - /// Should the test be ignored. - pub ignored: bool, -} -/// Finds the tests in the requested crates. -fn find_all_tests( - db: &dyn SemanticGroup, - main_crates: Vec, -) -> Vec<(FreeFunctionId, TestConfig)> { - let mut tests = vec![]; - for crate_id in main_crates { - let modules = db.crate_modules(crate_id); - for module_id in modules.iter() { - let Ok(module_items) = db.module_items(*module_id) else { - continue; - }; - tests.extend(module_items.iter().filter_map(|item| { - let ModuleItemId::FreeFunction(func_id) = item else { - return None; - }; - let Ok(attrs) = - db.function_with_body_attributes(FunctionWithBodyId::Free(*func_id)) - else { - return None; - }; - Some(( - *func_id, - try_extract_test_config(db.upcast(), attrs).unwrap()?, - )) - })); - } - } - tests -} - -/// Extracts the configuration of a tests from attributes, or returns the diagnostics if the -/// attributes are set illegally. -pub fn try_extract_test_config( - db: &dyn SyntaxGroup, - attrs: Vec, -) -> Result, Vec> { - let test_attr = attrs.iter().find(|attr| attr.id.as_str() == "test"); - let ignore_attr = attrs.iter().find(|attr| attr.id.as_str() == "ignore"); - let available_gas_attr = attrs - .iter() - .find(|attr| attr.id.as_str() == "available_gas"); - let should_panic_attr = attrs.iter().find(|attr| attr.id.as_str() == "should_panic"); - let mut diagnostics = vec![]; - if let Some(attr) = test_attr { - if !attr.args.is_empty() { - diagnostics.push(PluginDiagnostic { - stable_ptr: attr.id_stable_ptr.untyped(), - message: "Attribute should not have arguments.".into(), - }); - } - } else { - for attr in [ignore_attr, available_gas_attr, should_panic_attr] - .into_iter() - .flatten() - { - diagnostics.push(PluginDiagnostic { - stable_ptr: attr.id_stable_ptr.untyped(), - message: "Attribute should only appear on tests.".into(), - }); - } - } - let ignored = if let Some(attr) = ignore_attr { - if !attr.args.is_empty() { - diagnostics.push(PluginDiagnostic { - stable_ptr: attr.id_stable_ptr.untyped(), - message: "Attribute should not have arguments.".into(), - }); - } - true - } else { - false - }; - let available_gas = if let Some(attr) = available_gas_attr { - if let [AttributeArg { - variant: - AttributeArgVariant::Unnamed { - value: ast::Expr::Literal(literal), - .. - }, - .. - }] = &attr.args[..] - { - literal.token(db).text(db).parse::().ok() - } else { - diagnostics.push(PluginDiagnostic { - stable_ptr: attr.id_stable_ptr.untyped(), - message: "Attribute should have a single value argument.".into(), - }); - None - } - } else { - None - }; - let (should_panic, expected_panic_value) = if let Some(attr) = should_panic_attr { - if attr.args.is_empty() { - (true, None) - } else { - ( - true, - extract_panic_values(db, attr).on_none(|| { - diagnostics.push(PluginDiagnostic { - stable_ptr: attr.args_stable_ptr.untyped(), - message: "Expected panic must be of the form `expected = `." - .into(), - }); - }), - ) - } - } else { - (false, None) - }; - if !diagnostics.is_empty() { - return Err(diagnostics); - } - Ok(if test_attr.is_none() { - None - } else { - Some(TestConfig { - available_gas, - expectation: if should_panic { - TestExpectation::Panics(if let Some(values) = expected_panic_value { - PanicExpectation::Exact(values) - } else { - PanicExpectation::Any - }) - } else { - TestExpectation::Success - }, - ignored, - }) - }) -} -/// Tries to extract the relevant expected panic values. -fn extract_panic_values(db: &dyn SyntaxGroup, attr: &Attribute) -> Option> { - let [AttributeArg { - variant: - AttributeArgVariant::Named { - name, - value: panics, - .. - }, - .. - }] = &attr.args[..] - else { - return None; - }; - if name != "expected" { - return None; - } - let ast::Expr::Tuple(panics) = panics else { - return None; - }; - panics - .expressions(db) - .elements(db) - .into_iter() - .map(|value| match value { - ast::Expr::Literal(literal) => { - Some(literal.numeric_value(db).unwrap_or_default().into()) - } - ast::Expr::ShortString(literal) => { - Some(literal.numeric_value(db).unwrap_or_default().into()) - } - _ => None, - }) - .collect::>>() -} - -pub fn run_exercise_tests(path: &str) -> anyhow::Result { - let runner = TestRunner::new(path, "", false, false, true)?; - runner.run() -} diff --git a/src/verify.rs b/src/verify.rs index b9e1aba20..4455d26de 100755 --- a/src/verify.rs +++ b/src/verify.rs @@ -22,7 +22,7 @@ pub fn verify<'a>( bar.set_position(num_done as u64); for exercise in exercises { let compile_result = match exercise.mode { - Mode::Compile => compile_and_run_interactively(exercise), + Mode::Build => compile_and_run_interactively(exercise), Mode::Test => compile_and_test_interactively(exercise), }; if !compile_result.unwrap_or(false) { @@ -35,43 +35,30 @@ pub fn verify<'a>( Ok(()) } -// Compile the given Exercise and run the resulting binary in an interactive mode +// Build the given Exercise fn compile_and_run_interactively(exercise: &Exercise) -> Result { - let progress_bar = ProgressBar::new_spinner(); + println!("Building {exercise} exercise..."); - progress_bar.enable_steady_tick(100); - - progress_bar.set_message(format!("Running {exercise} exercise...")); - - let run_state = compile_and_run_cairo(exercise, &progress_bar)?; - - progress_bar.finish_and_clear(); + let run_state = compile_and_run_cairo(exercise)?; Ok(prompt_for_completion(exercise, Some(run_state))) } -// Tests the given Exercise and run the resulting binary in an interactive mode +// Tests the given Exercise fn compile_and_test_interactively(exercise: &Exercise) -> Result { - let progress_bar = ProgressBar::new_spinner(); - progress_bar.enable_steady_tick(100); + println!("Testing {exercise} exercise..."); - progress_bar.set_message(format!("Testing {exercise} exercise...")); - - let run_state = compile_and_test_cairo(exercise, &progress_bar)?; - - progress_bar.finish_and_clear(); + let run_state = compile_and_test_cairo(exercise)?; Ok(prompt_for_completion(exercise, Some(run_state))) } -// Compile the given Exercise and return an object with information +// Build the given Exercise and return an object with information // about the state of the compilation -fn compile_and_run_cairo(exercise: &Exercise, progress_bar: &ProgressBar) -> Result { - let compilation_result = exercise.run_cairo(); +fn compile_and_run_cairo(exercise: &Exercise) -> Result { + let compilation_result = exercise.build(); if let Err(error) = compilation_result { - progress_bar.finish_and_clear(); - eprintln!("{error}"); warn!("Compiling of {} failed! Please try again.", exercise); @@ -83,11 +70,10 @@ fn compile_and_run_cairo(exercise: &Exercise, progress_bar: &ProgressBar) -> Res // Tests the given Exercise and return an object with information // about the state of the tests -fn compile_and_test_cairo(exercise: &Exercise, progress_bar: &ProgressBar) -> Result { - let compilation_result = exercise.test_cairo(); +fn compile_and_test_cairo(exercise: &Exercise) -> Result { + let compilation_result = exercise.test(); if let Some(error) = compilation_result.as_ref().err() { - progress_bar.finish_and_clear(); warn!( "Testing of {} failed! Please try again. Here's the output:", exercise @@ -106,7 +92,7 @@ fn prompt_for_completion(exercise: &Exercise, prompt_output: Option) -> }; match exercise.mode { - Mode::Compile => success!("Successfully ran {}!", exercise), + Mode::Build => success!("Successfully built {}!", exercise), Mode::Test => success!("Successfully tested {}!", exercise), // Mode::Clippy => success!("Successfully compiled {}!", exercise), } @@ -116,7 +102,7 @@ fn prompt_for_completion(exercise: &Exercise, prompt_output: Option) -> let _clippy_success_msg = "The code is compiling, and Clippy is happy!"; let success_msg = match exercise.mode { - Mode::Compile => "The code is compiling!", + Mode::Build => "The code is compiling!", Mode::Test => "The code is compiling, and the tests pass!", // Mode::Clippy => clippy_success_msg, }; diff --git a/tests/fixture/cairo/info.toml b/tests/fixture/cairo/info.toml index 5f672d69f..240caec95 100644 --- a/tests/fixture/cairo/info.toml +++ b/tests/fixture/cairo/info.toml @@ -1,13 +1,13 @@ [[exercises]] name = "cairoPass" path = "compilePass.cairo" -mode = "compile" +mode = "build" hint = "" [[exercises]] name = "cairoFail" path = "compileFail.cairo" -mode = "compile" +mode = "build" hint = "" [[exercises]] diff --git a/tests/fixture/cairo/runner-crate/.gitignore b/tests/fixture/cairo/runner-crate/.gitignore new file mode 100644 index 000000000..eb5a316cb --- /dev/null +++ b/tests/fixture/cairo/runner-crate/.gitignore @@ -0,0 +1 @@ +target diff --git a/tests/fixture/cairo/runner-crate/Scarb.lock b/tests/fixture/cairo/runner-crate/Scarb.lock new file mode 100644 index 000000000..846e0a4aa --- /dev/null +++ b/tests/fixture/cairo/runner-crate/Scarb.lock @@ -0,0 +1,6 @@ +# Code generated by scarb DO NOT EDIT. +version = 1 + +[[package]] +name = "runner_crate" +version = "0.1.0" diff --git a/tests/fixture/cairo/runner-crate/Scarb.toml b/tests/fixture/cairo/runner-crate/Scarb.toml new file mode 100644 index 000000000..55c90162f --- /dev/null +++ b/tests/fixture/cairo/runner-crate/Scarb.toml @@ -0,0 +1,8 @@ +[package] +name = "runner_crate" +version = "0.1.0" + +# See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html + +[dependencies] +# foo = { path = "vendor/foo" } diff --git a/tests/fixture/cairo/runner-crate/src/lib.cairo b/tests/fixture/cairo/runner-crate/src/lib.cairo new file mode 100644 index 000000000..8af354097 --- /dev/null +++ b/tests/fixture/cairo/runner-crate/src/lib.cairo @@ -0,0 +1,34 @@ +// arrays2.cairo +// Your task is to make the test pass without modifying the `create_array` function. +// Make me compile and pass the test! +// Execute `starklings hint arrays2` or use the `hint` watch subcommand for a hint. + +use array::ArrayTrait; +use option::OptionTrait; + +// Don't modify this function +fn create_array() -> Array { + let mut a = ArrayTrait::new(); + a.append(42); + a +} + +fn remove_element_from_array( + ref a: Array +) { //TODO something to do here...Is there an array method I can use? + a.pop_front(); +} + +#[test] +fn test_arrays2() { + let mut a = create_array(); + assert(*a.at(0) == 42, 'First element is not 42'); +} + +#[test] +fn test_arrays2_empty() { + let mut a = create_array(); + remove_element_from_array(ref a); + assert(a.len() == 0, 'Array length is not 0'); +} +