diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d41be59b1..27842d983 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -37,7 +37,10 @@ jobs: run: cargo build -p xtask - name: Upgrade Cairo to latest main commit - run: cargo xtask set-cairo-version --rev $(git ls-remote --refs "https://github.com/starkware-libs/cairo" main | awk '{print $1}') + run: cargo xtask set-dep-version cairo --rev $(git ls-remote --refs "https://github.com/starkware-libs/cairo" main | awk '{print $1}') + + - name: Upgrade CairoLS to latest main commit + run: cargo xtask set-dep-version cairols --rev $(git ls-remote --refs "https://github.com/software-mansion/cairols" main | awk '{print $1}') - name: Rebuild xtasks after Cargo.toml changes run: cargo build -p xtask @@ -183,7 +186,7 @@ jobs: { "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" } - + notify_failed_check: runs-on: ubuntu-latest diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe247e0ce..b64700543 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -78,7 +78,7 @@ We have a script that edits the `Cargo.toml` file to use a local checkout of the To use this tool, run: ```shell -cargo xtask set-cairo-version --path ../path/to/cairo +cargo xtask set-dep-version cairo --path ../path/to/cairo ``` And then you can `cargo build` Scarb with your custom Cairo compiler changes. diff --git a/Cargo.lock b/Cargo.lock index 5b0b419ce..01c185e56 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -563,23 +563,9 @@ dependencies = [ [[package]] name = "cairo-lang-casm" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde2a7d6c835c4920ef8a45b30f6e3e3f8d02c36533338eed6faf42b0aca7581" -dependencies = [ - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "indoc", - "num-bigint", - "num-traits 0.2.19", - "parity-scale-codec", - "serde", -] - -[[package]] -name = "cairo-lang-casm" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-utils", "indoc", "num-bigint", "num-traits 0.2.19", @@ -590,21 +576,20 @@ dependencies = [ [[package]] name = "cairo-lang-compiler" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec519da181d4ea9a3184a8a4ec9ed597a6f080c4505717a5fca174e739aff2ec" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "anyhow", - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-lowering 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-project 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-semantic 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-generator 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-defs", + "cairo-lang-diagnostics", + "cairo-lang-filesystem", + "cairo-lang-lowering", + "cairo-lang-parser", + "cairo-lang-project", + "cairo-lang-semantic", + "cairo-lang-sierra", + "cairo-lang-sierra-generator", + "cairo-lang-syntax", + "cairo-lang-utils", "indoc", "rayon", "rust-analyzer-salsa", @@ -613,76 +598,25 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "cairo-lang-compiler" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "anyhow", - "cairo-lang-defs 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-lowering 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-parser 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-project 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-semantic 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra-generator 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "indoc", - "rayon", - "rust-analyzer-salsa", - "semver", - "smol_str", - "thiserror 1.0.69", -] - -[[package]] -name = "cairo-lang-debug" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6be5007f324a01655e3cb68f364ca2ec1b7572680466db87c9a3b79a21719787" -dependencies = [ - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "cairo-lang-debug" version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-utils", ] [[package]] name = "cairo-lang-defs" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad2380d307ea77b38d76f17a15f5a9ed06ea07418ea55fa0bfde0cef4262231" -dependencies = [ - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.12.1", - "rust-analyzer-salsa", - "smol_str", -] - -[[package]] -name = "cairo-lang-defs" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-parser 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" +dependencies = [ + "cairo-lang-debug", + "cairo-lang-diagnostics", + "cairo-lang-filesystem", + "cairo-lang-parser", + "cairo-lang-syntax", + "cairo-lang-utils", "itertools 0.12.1", "rust-analyzer-salsa", "smol_str", @@ -691,61 +625,28 @@ dependencies = [ [[package]] name = "cairo-lang-diagnostics" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9106d4a80140aa57452d89ffd876f7ee02a106e1a217d6cbb2dbd8c6c47e60d0" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.12.1", -] - -[[package]] -name = "cairo-lang-diagnostics" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-debug", + "cairo-lang-filesystem", + "cairo-lang-utils", "itertools 0.12.1", ] [[package]] name = "cairo-lang-doc" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d908aed4e0d8d4790b3a3435f238574bce5a1793a40de7039cb7e57dd37f020" -dependencies = [ - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-formatter 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-semantic 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.12.1", - "pulldown-cmark", - "rust-analyzer-salsa", - "smol_str", -] - -[[package]] -name = "cairo-lang-doc" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-defs 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-formatter 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-parser 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-semantic 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" +dependencies = [ + "cairo-lang-debug", + "cairo-lang-defs", + "cairo-lang-diagnostics", + "cairo-lang-filesystem", + "cairo-lang-formatter", + "cairo-lang-parser", + "cairo-lang-semantic", + "cairo-lang-syntax", + "cairo-lang-utils", "itertools 0.12.1", "pulldown-cmark", "rust-analyzer-salsa", @@ -755,45 +656,19 @@ dependencies = [ [[package]] name = "cairo-lang-eq-solver" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07f41cf86d0c9cd7e536fb01e557ead81cc87f5821ed8ea14b646a7426312ea6" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-utils", "good_lp", ] -[[package]] -name = "cairo-lang-eq-solver" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "good_lp", -] - -[[package]] -name = "cairo-lang-filesystem" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a197bb16c9a90f480abbe47046297e715c1db3a1c682f8b1d17d609675278c" -dependencies = [ - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "path-clean", - "rust-analyzer-salsa", - "semver", - "serde", - "smol_str", - "toml", -] - [[package]] name = "cairo-lang-filesystem" version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-debug", + "cairo-lang-utils", "path-clean", "rust-analyzer-salsa", "semver", @@ -805,34 +680,14 @@ dependencies = [ [[package]] name = "cairo-lang-formatter" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb25eab8ea9530c6e71defc72761e0e63429a847002c1b843365b420344a06c" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "anyhow", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "diffy", - "ignore", - "itertools 0.12.1", - "rust-analyzer-salsa", - "serde", - "thiserror 1.0.69", -] - -[[package]] -name = "cairo-lang-formatter" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "anyhow", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-parser 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-diagnostics", + "cairo-lang-filesystem", + "cairo-lang-parser", + "cairo-lang-syntax", + "cairo-lang-utils", "diffy", "ignore", "itertools 0.12.1", @@ -844,42 +699,17 @@ dependencies = [ [[package]] name = "cairo-lang-lowering" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f6e28e10bdea39560d624a7d8d4cf6979b8121df2e303c2ee6212a8d3df502" -dependencies = [ - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-proc-macros 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-semantic 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "id-arena", - "itertools 0.12.1", - "log", - "num-bigint", - "num-integer", - "num-traits 0.2.19", - "rust-analyzer-salsa", - "smol_str", -] - -[[package]] -name = "cairo-lang-lowering" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-defs 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-parser 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-proc-macros 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-semantic 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" +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", "id-arena", "itertools 0.12.1", "log", @@ -946,33 +776,13 @@ checksum = "c49906d6b1c215e5814be7c5c65ecf2328898b335bee8c2409ec07cfb5530daf" [[package]] name = "cairo-lang-parser" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1579124d1e0f0a3cf3d29de7ae690ba86abb3531d75763c9431d4597ed27b3e" -dependencies = [ - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax-codegen 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "colored", - "itertools 0.12.1", - "num-bigint", - "num-traits 0.2.19", - "rust-analyzer-salsa", - "smol_str", - "unescaper", -] - -[[package]] -name = "cairo-lang-parser" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax-codegen 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-diagnostics", + "cairo-lang-filesystem", + "cairo-lang-syntax", + "cairo-lang-syntax-codegen", + "cairo-lang-utils", "colored", "itertools 0.12.1", "num-bigint", @@ -985,15 +795,14 @@ dependencies = [ [[package]] name = "cairo-lang-plugins" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0690d5fc8ee3f89ffc25de189966e20693961dfca330ac42050ecf4c4a0469" -dependencies = [ - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" +dependencies = [ + "cairo-lang-defs", + "cairo-lang-diagnostics", + "cairo-lang-filesystem", + "cairo-lang-parser", + "cairo-lang-syntax", + "cairo-lang-utils", "indent", "indoc", "itertools 0.12.1", @@ -1001,52 +810,17 @@ dependencies = [ "smol_str", ] -[[package]] -name = "cairo-lang-plugins" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-defs 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-parser 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "indent", - "indoc", - "itertools 0.12.1", - "rust-analyzer-salsa", - "smol_str", -] - -[[package]] -name = "cairo-lang-primitive-token" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "123ac0ecadf31bacae77436d72b88fa9caef2b8e92c89ce63a125ae911a12fae" - [[package]] name = "cairo-lang-primitive-token" version = "1.0.0" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" - -[[package]] -name = "cairo-lang-proc-macros" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca16796ee01313a77ed176e1583969d76df50453970d1b9407bdaa5d388ea33e" -dependencies = [ - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "quote", - "syn 2.0.90", -] +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" [[package]] name = "cairo-lang-proc-macros" version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-debug", "quote", "syn 2.0.90", ] @@ -1054,23 +828,10 @@ dependencies = [ [[package]] name = "cairo-lang-project" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266ebace89b85b42869ee2967e876bd6cb18bb2a0fe3b4ea5c28d203949e55b4" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "thiserror 1.0.69", - "toml", -] - -[[package]] -name = "cairo-lang-project" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-filesystem", + "cairo-lang-utils", "serde", "thiserror 1.0.69", "toml", @@ -1079,16 +840,15 @@ dependencies = [ [[package]] name = "cairo-lang-runnable-utils" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea44f96ec7cc3bfd8909ff243a0c1d709157a4884af08cacd2566581193c859a" -dependencies = [ - "cairo-lang-casm 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-ap-change 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-gas 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-to-casm 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-type-size 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" +dependencies = [ + "cairo-lang-casm", + "cairo-lang-sierra", + "cairo-lang-sierra-ap-change", + "cairo-lang-sierra-gas", + "cairo-lang-sierra-to-casm", + "cairo-lang-sierra-type-size", + "cairo-lang-utils", "cairo-vm", "thiserror 1.0.69", ] @@ -1096,20 +856,19 @@ dependencies = [ [[package]] name = "cairo-lang-runner" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb0ed1f611b25c711bc34982599f4ef4a8c8296cb7a674b8cb65d8d635b32fd" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "ark-ff", "ark-secp256k1", "ark-secp256r1", - "cairo-lang-casm 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-lowering 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-casm", + "cairo-lang-lowering", "cairo-lang-runnable-utils", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-generator 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-to-casm 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-starknet 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-sierra", + "cairo-lang-sierra-generator", + "cairo-lang-sierra-to-casm", + "cairo-lang-starknet", + "cairo-lang-utils", "cairo-vm", "itertools 0.12.1", "keccak", @@ -1126,88 +885,36 @@ dependencies = [ [[package]] name = "cairo-lang-semantic" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac4c3311d4d7fc2f983c3a6790fed69e6852c69c9d9488c90c853e28b906f712" -dependencies = [ - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-plugins 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-proc-macros 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-test-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" +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-test-utils", + "cairo-lang-utils", "id-arena", "indoc", "itertools 0.12.1", "num-bigint", "num-traits 0.2.19", "rust-analyzer-salsa", - "smol_str", - "toml", -] - -[[package]] -name = "cairo-lang-semantic" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-defs 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-parser 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-plugins 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-proc-macros 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-test-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "id-arena", - "indoc", - "itertools 0.12.1", - "num-bigint", - "num-traits 0.2.19", - "rust-analyzer-salsa", - "smol_str", - "toml", -] - -[[package]] -name = "cairo-lang-sierra" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc454786dd73ffe8fbb598f7beb46b95c94fb112a9e84d4c6642920fd3ab131e" -dependencies = [ - "anyhow", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "const-fnv1a-hash", - "convert_case", - "derivative", - "itertools 0.12.1", - "lalrpop", - "lalrpop-util", - "num-bigint", - "num-integer", - "num-traits 0.2.19", - "regex", - "rust-analyzer-salsa", - "serde", - "serde_json", "sha3", "smol_str", - "starknet-types-core", - "thiserror 1.0.69", + "toml", ] [[package]] name = "cairo-lang-sierra" version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "anyhow", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-utils", "const-fnv1a-hash", "convert_case", "derivative", @@ -1230,28 +937,12 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-ap-change" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e18f2c76d88019801d192d2c5d4ede72988b238969ffd2909f3af8d4cc865199" -dependencies = [ - "cairo-lang-eq-solver 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-type-size 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.12.1", - "num-bigint", - "num-traits 0.2.19", - "thiserror 1.0.69", -] - -[[package]] -name = "cairo-lang-sierra-ap-change" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-eq-solver 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra-type-size 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-eq-solver", + "cairo-lang-sierra", + "cairo-lang-sierra-type-size", + "cairo-lang-utils", "itertools 0.12.1", "num-bigint", "num-traits 0.2.19", @@ -1261,73 +952,33 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-gas" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fa4bdd9d6dd37ddecacff755846b6902e85f2b2f28beb4a83184b948fc07995" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-eq-solver 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-type-size 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-eq-solver", + "cairo-lang-sierra", + "cairo-lang-sierra-type-size", + "cairo-lang-utils", "itertools 0.12.1", "num-bigint", "num-traits 0.2.19", "thiserror 1.0.69", ] -[[package]] -name = "cairo-lang-sierra-gas" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-eq-solver 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra-type-size 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "itertools 0.12.1", - "num-bigint", - "num-traits 0.2.19", - "thiserror 1.0.69", -] - -[[package]] -name = "cairo-lang-sierra-generator" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a7cdce1de0ed38d8576100d5091ea6c62a661a49525927fbef3037f768ea18" -dependencies = [ - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-lowering 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-semantic 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.12.1", - "num-traits 0.2.19", - "rust-analyzer-salsa", - "serde", - "serde_json", - "smol_str", -] - [[package]] name = "cairo-lang-sierra-generator" version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-defs 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-lowering 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-parser 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-semantic 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" +dependencies = [ + "cairo-lang-debug", + "cairo-lang-defs", + "cairo-lang-diagnostics", + "cairo-lang-filesystem", + "cairo-lang-lowering", + "cairo-lang-parser", + "cairo-lang-semantic", + "cairo-lang-sierra", + "cairo-lang-syntax", + "cairo-lang-utils", "itertools 0.12.1", "num-traits 0.2.19", "rust-analyzer-salsa", @@ -1339,16 +990,15 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-to-casm" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79f9eed2f7518d4c5c17a7e5ec9b0227368258887709c64b65898102045796c5" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "assert_matches", - "cairo-lang-casm 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-ap-change 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-gas 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-type-size 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-casm", + "cairo-lang-sierra", + "cairo-lang-sierra-ap-change", + "cairo-lang-sierra-gas", + "cairo-lang-sierra-type-size", + "cairo-lang-utils", "indoc", "itertools 0.12.1", "num-bigint", @@ -1357,64 +1007,33 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "cairo-lang-sierra-to-casm" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "assert_matches", - "cairo-lang-casm 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra-ap-change 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra-gas 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra-type-size 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "indoc", - "itertools 0.12.1", - "num-bigint", - "num-traits 0.2.19", - "starknet-types-core", - "thiserror 1.0.69", -] - -[[package]] -name = "cairo-lang-sierra-type-size" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "515f5d4f3feea3490da34401751daee2f40399503de4bd5f9cedebb01539e456" -dependencies = [ - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "cairo-lang-sierra-type-size" version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-sierra 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-sierra", + "cairo-lang-utils", ] [[package]] name = "cairo-lang-starknet" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dfb7780e555c41afb395f85137c02e01ac46dd6a9449600c502879028b77fd8" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "anyhow", - "cairo-lang-compiler 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-lowering 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-plugins 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-semantic 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-generator 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-starknet-classes 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-compiler", + "cairo-lang-defs", + "cairo-lang-diagnostics", + "cairo-lang-filesystem", + "cairo-lang-lowering", + "cairo-lang-plugins", + "cairo-lang-semantic", + "cairo-lang-sierra", + "cairo-lang-sierra-generator", + "cairo-lang-starknet-classes", + "cairo-lang-syntax", + "cairo-lang-utils", "const_format", "indent", "indoc", @@ -1426,67 +1045,15 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "cairo-lang-starknet" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "anyhow", - "cairo-lang-compiler 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-defs 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-lowering 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-plugins 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-semantic 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra-generator 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-starknet-classes 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "const_format", - "indent", - "indoc", - "itertools 0.12.1", - "serde", - "serde_json", - "smol_str", - "starknet-types-core", - "thiserror 1.0.69", -] - -[[package]] -name = "cairo-lang-starknet-classes" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c084abc17f16b8c975c23897ff88a5d5df7d9240c241aa92198e4954d5da999" -dependencies = [ - "cairo-lang-casm 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-to-casm 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "convert_case", - "itertools 0.12.1", - "num-bigint", - "num-integer", - "num-traits 0.2.19", - "serde", - "serde_json", - "sha3", - "smol_str", - "starknet-types-core", - "thiserror 1.0.69", -] - [[package]] name = "cairo-lang-starknet-classes" version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-casm 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra-to-casm 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-casm", + "cairo-lang-sierra", + "cairo-lang-sierra-to-casm", + "cairo-lang-utils", "convert_case", "itertools 0.12.1", "num-bigint", @@ -1503,29 +1070,12 @@ dependencies = [ [[package]] name = "cairo-lang-syntax" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc64c19279354975d45cf325e5618287c7fe01dbcbd0341db0f5429375e3a854" -dependencies = [ - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-primitive-token 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint", - "num-traits 0.2.19", - "rust-analyzer-salsa", - "smol_str", - "unescaper", -] - -[[package]] -name = "cairo-lang-syntax" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-primitive-token 1.0.0 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-debug", + "cairo-lang-filesystem", + "cairo-lang-primitive-token", + "cairo-lang-utils", "num-bigint", "num-traits 0.2.19", "rust-analyzer-salsa", @@ -1536,67 +1086,30 @@ dependencies = [ [[package]] name = "cairo-lang-syntax-codegen" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80bede54808f2e5d26a8702711009eefe4a12e5a8f3a427ba9b081073c8e9d36" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "genco", "xshell", ] -[[package]] -name = "cairo-lang-syntax-codegen" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "genco", - "xshell", -] - -[[package]] -name = "cairo-lang-test-plugin" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb5a0d6a87a6721e38f6d4a342cf6adf39b08281ea4b20c6e723c5d77df0e12" -dependencies = [ - "anyhow", - "cairo-lang-compiler 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-debug 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-lowering 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-semantic 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-generator 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-starknet 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-starknet-classes 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "indoc", - "itertools 0.12.1", - "num-bigint", - "num-traits 0.2.19", - "serde", - "starknet-types-core", -] - [[package]] name = "cairo-lang-test-plugin" version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "anyhow", - "cairo-lang-compiler 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-debug 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-defs 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-lowering 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-semantic 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-sierra-generator 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-starknet 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-starknet-classes 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-compiler", + "cairo-lang-debug", + "cairo-lang-defs", + "cairo-lang-filesystem", + "cairo-lang-lowering", + "cairo-lang-semantic", + "cairo-lang-sierra", + "cairo-lang-sierra-generator", + "cairo-lang-starknet", + "cairo-lang-starknet-classes", + "cairo-lang-syntax", + "cairo-lang-utils", "indoc", "itertools 0.12.1", "num-bigint", @@ -1608,19 +1121,18 @@ dependencies = [ [[package]] name = "cairo-lang-test-runner" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9c8088d7f808891f132e1c61d370d8c96b51cff7f1c6c00bfd76baf84e9e94" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "anyhow", - "cairo-lang-compiler 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-compiler", + "cairo-lang-filesystem", "cairo-lang-runner", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-generator 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-to-casm 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-starknet 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-test-plugin 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-sierra", + "cairo-lang-sierra-generator", + "cairo-lang-sierra-to-casm", + "cairo-lang-starknet", + "cairo-lang-test-plugin", + "cairo-lang-utils", "colored", "itertools 0.12.1", "num-traits 0.2.19", @@ -1631,23 +1143,10 @@ dependencies = [ [[package]] name = "cairo-lang-test-utils" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d80cf53b879c72dbb73e4a23de0727ed476e6afbd4a706f23eb3e7064d44ff2c" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ - "cairo-lang-formatter 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "colored", - "log", - "pretty_assertions", -] - -[[package]] -name = "cairo-lang-test-utils" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "cairo-lang-formatter 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-formatter", + "cairo-lang-utils", "colored", "log", "pretty_assertions", @@ -1656,12 +1155,11 @@ dependencies = [ [[package]] name = "cairo-lang-utils" version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e89f1a4669e07f30a56a20d4bcc4eb43d78675e5bcb9af3bdbcf7f245330114" +source = "git+https://github.com/starkware-libs/cairo?rev=67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2#67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" dependencies = [ "env_logger", "hashbrown 0.14.5", - "indexmap 2.2.6", + "indexmap 2.7.0", "itertools 0.12.1", "log", "num-bigint", @@ -1671,47 +1169,33 @@ dependencies = [ "time", ] -[[package]] -name = "cairo-lang-utils" -version = "2.9.1" -source = "git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174#0b86ece404b0922b76caca5d07a94ed41407f174" -dependencies = [ - "hashbrown 0.14.5", - "indexmap 2.2.6", - "itertools 0.12.1", - "num-bigint", - "num-traits 0.2.19", - "schemars", - "serde", -] - [[package]] name = "cairo-language-server" version = "2.9.1" -source = "git+https://github.com/software-mansion/cairols?rev=deaad4428c86c620782bcdfef14a079745b59f99#deaad4428c86c620782bcdfef14a079745b59f99" +source = "git+https://github.com/software-mansion/cairols?rev=94f1543b43caa6355bf492f80cdf46b2ae2bf854#94f1543b43caa6355bf492f80cdf46b2ae2bf854" dependencies = [ "anyhow", - "cairo-lang-compiler 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-defs 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-diagnostics 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-doc 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-filesystem 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-formatter 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-lowering 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-compiler", + "cairo-lang-defs", + "cairo-lang-diagnostics", + "cairo-lang-doc", + "cairo-lang-filesystem", + "cairo-lang-formatter", + "cairo-lang-lowering", "cairo-lang-macro 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-project 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-semantic 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-starknet 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-syntax 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-test-plugin 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", - "cairo-lang-utils 2.9.1 (git+https://github.com/starkware-libs/cairo?rev=0b86ece404b0922b76caca5d07a94ed41407f174)", + "cairo-lang-parser", + "cairo-lang-project", + "cairo-lang-semantic", + "cairo-lang-starknet", + "cairo-lang-syntax", + "cairo-lang-test-plugin", + "cairo-lang-utils", "convert_case", "crossbeam", "governor", "indent", "indoc", - "itertools 0.12.1", + "itertools 0.13.0", "jod-thread", "libc", "lsp-server", @@ -1724,6 +1208,7 @@ dependencies = [ "serde_json", "smol_str", "tempfile", + "toml", "tracing", "tracing-chrome", "tracing-subscriber", @@ -3557,7 +3042,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.6", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -3590,6 +3075,12 @@ dependencies = [ "serde", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + [[package]] name = "heck" version = "0.4.1" @@ -3961,12 +3452,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "serde", ] @@ -4053,6 +3544,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -4840,7 +4340,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "indexmap 2.7.0", ] [[package]] @@ -5281,7 +4781,7 @@ version = "0.17.0-pre.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719825638c59fd26a55412a24561c7c5bcf54364c88b9a7a04ba08a6eafaba8d" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", "lock_api", "oorandom", "parking_lot", @@ -5419,23 +4919,23 @@ dependencies = [ "anyhow", "assert_fs", "async-trait", - "cairo-lang-compiler 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-formatter 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-lowering 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-compiler", + "cairo-lang-defs", + "cairo-lang-diagnostics", + "cairo-lang-filesystem", + "cairo-lang-formatter", + "cairo-lang-lowering", "cairo-lang-macro 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "cairo-lang-macro-stable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-semantic 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-sierra-to-casm 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-starknet 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-starknet-classes 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-test-plugin 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-parser", + "cairo-lang-semantic", + "cairo-lang-sierra", + "cairo-lang-sierra-to-casm", + "cairo-lang-starknet", + "cairo-lang-starknet-classes", + "cairo-lang-syntax", + "cairo-lang-test-plugin", + "cairo-lang-utils", "camino", "cargo_metadata", "clap", @@ -5495,7 +4995,7 @@ dependencies = [ "thiserror 2.0.6", "tokio", "toml", - "toml_edit 0.22.16", + "toml_edit 0.22.22", "tracing", "tracing-subscriber", "typed-builder", @@ -5534,7 +5034,7 @@ dependencies = [ "anyhow", "assert_fs", "cairo-lang-runner", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-sierra", "camino", "clap", "indoc", @@ -5555,8 +5055,8 @@ version = "2.9.1" dependencies = [ "anyhow", "assert_fs", - "cairo-lang-sierra 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-test-plugin 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-sierra", + "cairo-lang-test-plugin", "cairo-lang-test-runner", "camino", "clap", @@ -5575,17 +5075,17 @@ version = "2.9.1" dependencies = [ "anyhow", "assert_fs", - "cairo-lang-compiler 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-defs 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-diagnostics 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-doc 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-lowering 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-parser 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-semantic 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-starknet 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-syntax 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cairo-lang-utils 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-compiler", + "cairo-lang-defs", + "cairo-lang-diagnostics", + "cairo-lang-doc", + "cairo-lang-filesystem", + "cairo-lang-lowering", + "cairo-lang-parser", + "cairo-lang-semantic", + "cairo-lang-starknet", + "cairo-lang-syntax", + "cairo-lang-utils", "camino", "clap", "expect-test", @@ -5607,7 +5107,7 @@ name = "scarb-metadata" version = "1.13.0" dependencies = [ "assert_fs", - "cairo-lang-filesystem 2.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cairo-lang-filesystem", "camino", "derive_builder", "semver", @@ -5692,7 +5192,7 @@ dependencies = [ "sha2", "snapbox", "tokio", - "toml_edit 0.22.16", + "toml_edit 0.22.22", "tower-http", "url", ] @@ -5882,9 +5382,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -6568,14 +6068,14 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.16", + "toml_edit 0.22.22", ] [[package]] name = "toml_datetime" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] @@ -6586,18 +6086,18 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.16" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", @@ -7318,7 +6818,7 @@ dependencies = [ "semver", "serde_json", "time", - "toml_edit 0.22.16", + "toml_edit 0.22.22", "walkdir", "xshell", ] diff --git a/Cargo.toml b/Cargo.toml index 2ce84dbca..9646735af 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,30 +30,45 @@ license = "MIT" readme = "README.md" repository = "https://github.com/software-mansion/scarb" +# Managing dependencies on crates from starkware-libs/cairo repository: +# +# The Cairo compiler is made of a bunch of crates that inter-depend on each other and have +# synchronised versioning. +# It is very important to use a single revision of these crates in the entire Cairo toolchain, +# which consists of Cairo compiler, Scarb, CairoLS and other tools. +# The toolchain is eventually built by Scarb, which depends on everything other as regular crates. +# To ensure that all crates in the toolchain use the same revision of Cairo crates, we use a patch +# mechanism that Cargo provides. +# Because Cargo requires patches to change the crate source, we have an unspoken contract that +# all tools *always* depend on some crates.io versions of Cairo crates and Scarb uses +# [patch.crates.io] table to set final git revision for everything. +# +# To keep our Cargo.toml following this contract, always use `cargo xtask set-dep-version` +# for manipulating these dependencies. [workspace.dependencies] anyhow = "1" assert_fs = "1" async-trait = "0.1" axum = { version = "0.6", features = ["http2"] } -cairo-lang-compiler = "2.9.1" -cairo-lang-defs = "2.9.1" -cairo-lang-diagnostics = "2.9.1" -cairo-lang-doc = "2.9.1" -cairo-lang-filesystem = "2.9.1" -cairo-lang-formatter = "2.9.1" -cairo-lang-lowering = "2.9.1" -cairo-lang-parser = "2.9.1" -cairo-lang-runner = "2.9.1" -cairo-lang-semantic = "2.9.1" -cairo-lang-sierra = "2.9.1" -cairo-lang-sierra-to-casm = "2.9.1" -cairo-lang-starknet = "2.9.1" -cairo-lang-starknet-classes = "2.9.1" -cairo-lang-syntax = "2.9.1" -cairo-lang-test-plugin = "2.9.1" -cairo-lang-test-runner = "2.9.1" -cairo-lang-utils = { version = "2.9.1", features = ["env_logger"] } -cairo-language-server = {git = "https://github.com/software-mansion/cairols", rev = "deaad4428c86c620782bcdfef14a079745b59f99" } +cairo-lang-compiler = "*" +cairo-lang-defs = "*" +cairo-lang-diagnostics = "*" +cairo-lang-doc = "*" +cairo-lang-filesystem = "*" +cairo-lang-formatter = "*" +cairo-lang-lowering = "*" +cairo-lang-parser = "*" +cairo-lang-runner = "*" +cairo-lang-semantic = "*" +cairo-lang-sierra = "*" +cairo-lang-sierra-to-casm = "*" +cairo-lang-starknet = "*" +cairo-lang-starknet-classes = "*" +cairo-lang-syntax = "*" +cairo-lang-test-plugin = "*" +cairo-lang-test-runner = "*" +cairo-lang-utils = { version = "*", features = ["env_logger"] } +cairo-language-server = "*" camino = { version = "1", features = ["serde1"] } cargo_metadata = ">=0.18" clap = { version = "4", features = ["derive", "env", "string"] } @@ -131,6 +146,45 @@ xxhash-rust = { version = "0.8", features = ["xxh3"] } zip = { version = "0.6", default-features = false, features = ["deflate"] } zstd = "0.13" +# Here we specify real dependency specifications for Cairo crates *if* currently we want to use +# a particular unreleased commit (which is frequent mid-development). +# We list all Cairo crates that go into Scarb's compilation unit even if Scarb itself does not depend +# on some of them directly. +# This ensures no duplicate instances of Cairo crates are pulled in by mistake. +[patch.crates-io] +cairo-lang-casm = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-compiler = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-debug = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-defs = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-diagnostics = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-doc = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-eq-solver = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-filesystem = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-formatter = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-lowering = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-parser = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-plugins = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-proc-macros = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-project = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-runnable-utils = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-runner = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-semantic = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-sierra = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-sierra-ap-change = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-sierra-gas = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-sierra-generator = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-sierra-to-casm = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-sierra-type-size = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-starknet = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-starknet-classes = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-syntax = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-syntax-codegen = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-test-plugin = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-test-runner = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-test-utils = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-lang-utils = { git = "https://github.com/starkware-libs/cairo", rev = "67c6eff9c276d11bd1cc903d7a3981d8d0eb2fa2" } +cairo-language-server = { git = "https://github.com/software-mansion/cairols", rev = "94f1543b43caa6355bf492f80cdf46b2ae2bf854" } + [profile.release] lto = true diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 07013d546..c0c827609 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -26,7 +26,7 @@ command!(Command( get_nightly_version, list_binaries, nightly_release_notes, - set_cairo_version, + set_dep_version, set_scarb_version, verify_archive, )); diff --git a/xtask/src/set_cairo_version.rs b/xtask/src/set_cairo_version.rs deleted file mode 100644 index f9ba13ab3..000000000 --- a/xtask/src/set_cairo_version.rs +++ /dev/null @@ -1,116 +0,0 @@ -use anyhow::Result; -use clap::Parser; -use semver::Version; -use std::path::PathBuf; -use toml_edit::{DocumentMut, InlineTable, Value}; -use xshell::{cmd, Shell}; - -use crate::set_scarb_version; - -#[derive(Parser)] -pub struct Args { - #[command(flatten)] - spec: Spec, - #[arg(long, default_value_t = false)] - dry_run: bool, -} - -#[derive(clap::Args, Clone)] -#[group(required = true, multiple = true)] -struct Spec { - version: Option, - #[arg(short, long, conflicts_with = "branch")] - rev: Option, - #[arg(short, long)] - branch: Option, - #[arg(short, long, conflicts_with_all = ["rev", "branch"])] - path: Option, -} - -pub fn main(args: Args) -> Result<()> { - let sh = Shell::new()?; - - let mut cargo_toml = sh.read_file("Cargo.toml")?.parse::()?; - let deps = &mut cargo_toml["workspace"]["dependencies"] - .as_table_mut() - .unwrap(); - - for (dep_name, dep) in deps - .iter_mut() - .filter(|(key, _)| key.get().starts_with("cairo-lang-")) - { - let dep_name = dep_name.get(); - let dep = dep.as_value_mut().unwrap(); - - // Start with expanded form: { version = "X" } - let mut new_dep = InlineTable::new(); - - if let Some(version) = &args.spec.version { - new_dep.insert("version", version.to_string().into()); - } - - // Add a Git branch or revision reference if requested. - if args.spec.rev.is_some() || args.spec.branch.is_some() { - new_dep.insert("git", "https://github.com/starkware-libs/cairo".into()); - } - - if let Some(branch) = &args.spec.branch { - new_dep.insert("branch", branch.as_str().into()); - } - - if let Some(rev) = &args.spec.rev { - new_dep.insert("rev", rev.as_str().into()); - } - - // Add local path reference if requested. - // For local path sources, Cargo is not looking for crates recursively therefore, - // we need to manually provide full paths to Cairo workspace member crates. - if let Some(path) = &args.spec.path { - new_dep.insert( - "path", - path.join("crates") - .join(dep_name) - .to_string_lossy() - .into_owned() - .into(), - ); - } - - // Sometimes we might specify extra features. Let's preserve these. - if let Some(dep) = dep.as_inline_table() { - if let Some(features) = dep.get("features") { - new_dep.insert("features", features.clone()); - } - } - - // Simplify { version = "X" } to "X" if possible. - let new_dep: Value = if new_dep.len() == 1 { - new_dep.remove("version").unwrap_or_else(|| new_dep.into()) - } else { - new_dep.into() - }; - - *dep = new_dep; - } - - deps.fmt(); - deps.sort_values(); - - for (key, dep) in deps - .iter() - .filter(|(key, _)| key.starts_with("cairo-lang-")) - { - eprintln!("{key} = {dep}"); - } - - if !args.dry_run { - sh.write_file("Cargo.toml", cargo_toml.to_string())?; - - cmd!(sh, "cargo fetch").run()?; - - eprintln!("$ cargo xtask set-scarb-version"); - set_scarb_version::main(Default::default())?; - } - - Ok(()) -} diff --git a/xtask/src/set_dep_version.rs b/xtask/src/set_dep_version.rs new file mode 100644 index 000000000..2065b7ba1 --- /dev/null +++ b/xtask/src/set_dep_version.rs @@ -0,0 +1,279 @@ +use crate::set_scarb_version; +use anyhow::Result; +use clap::{Parser, ValueEnum}; +use semver::Version; +use std::mem; +use std::path::PathBuf; +use toml_edit::{DocumentMut, InlineTable, Value}; +use xshell::{cmd, Shell}; + +/// Update toolchain crates properly. +#[derive(Parser)] +pub struct Args { + /// Name of toolchain dependency (group) to update. + dep: DepName, + + #[command(flatten)] + spec: Spec, + + /// Do not edit any files, just inform what would be done. + #[arg(long, default_value_t = false)] + dry_run: bool, +} + +#[derive(ValueEnum, Copy, Clone, Debug)] +enum DepName { + Cairo, + #[value(name = "cairols")] + CairoLS, +} + +#[derive(clap::Args, Clone)] +#[group(required = true, multiple = true)] +struct Spec { + /// Source the dependency from crates.io and use a specific version. + version: Option, + + /// Source the dependency from the GitHub repository and use a specific commit/ref. + #[arg(short, long, conflicts_with = "branch")] + rev: Option, + + /// Source the dependency from the GitHub repository and use a specific branch. + #[arg(short, long)] + branch: Option, + + /// Source the dependency from a local filesystem. + /// + /// This is useful for local development, but avoid commiting this to the repository. + #[arg(short, long, conflicts_with_all = ["rev", "branch"])] + path: Option, +} + +pub fn main(args: Args) -> Result<()> { + let sh = Shell::new()?; + + let mut cargo_toml = sh.read_file("Cargo.toml")?.parse::()?; + + edit_dependencies(&mut cargo_toml, &args); + edit_patch(&mut cargo_toml, &args); + + if !args.dry_run { + sh.write_file("Cargo.toml", cargo_toml.to_string())?; + + cmd!(sh, "cargo fetch").run()?; + + purge_unused_patches(&mut cargo_toml)?; + sh.write_file("Cargo.toml", cargo_toml.to_string())?; + + eprintln!("$ cargo xtask set-scarb-version"); + set_scarb_version::main(Default::default())?; + } + + Ok(()) +} + +fn edit_dependencies(cargo_toml: &mut DocumentMut, args: &Args) { + let deps = cargo_toml["workspace"]["dependencies"] + .as_table_mut() + .unwrap(); + + for (_, dep) in deps.iter_mut().filter(|(key, _)| args.dep.owns(key)) { + let dep = dep.as_value_mut().unwrap(); + + // Always use crates.io requirements so that we can reliably patch them with the + // `[patch.crates-io]` table. + let mut new_dep = InlineTable::from_iter([( + "version", + match &args.spec.version { + Some(version) => Value::from(version.to_string()), + None => Value::from("*"), + }, + )]); + + copy_dependency_features(&mut new_dep, dep); + + *dep = new_dep.into(); + simplify_dependency_table(dep) + } + + deps.fmt(); + deps.sort_values(); + + eprintln!("[workspace.dependencies]"); + for (key, dep) in deps.iter().filter(|(key, _)| args.dep.owns(key)) { + eprintln!("{key} = {dep}"); + } +} + +fn edit_patch(cargo_toml: &mut DocumentMut, args: &Args) { + let patch = cargo_toml["patch"].as_table_mut().unwrap()["crates-io"] + .as_table_mut() + .unwrap(); + + // Clear any existing entries for this dependency. + for crate_name in args.dep.crates() { + patch.remove(crate_name); + } + + // Leave this section as-if if we are requested to just use a specific version. + if args.spec.rev.is_some() || args.spec.branch.is_some() || args.spec.path.is_some() { + // Patch all Cairo crates that exist, even if this project does not directly depend on them, + // to avoid any duplicates in transient dependencies. + for &dep_name in args.dep.crates() { + let mut dep = InlineTable::new(); + + // Add a Git branch or revision reference if requested. + if args.spec.rev.is_some() || args.spec.branch.is_some() { + dep.insert("git", args.dep.repo().into()); + } + + if let Some(branch) = &args.spec.branch { + dep.insert("branch", branch.as_str().into()); + } + + if let Some(rev) = &args.spec.rev { + dep.insert("rev", rev.as_str().into()); + } + + // Add local path reference if requested. + // For local path sources, Cargo is not looking for crates recursively therefore, we + // need to manually provide full paths to Cairo workspace member crates. + if let Some(path) = &args.spec.path { + dep.insert( + "path", + path.join("crates") + .join(dep_name) + .to_string_lossy() + .into_owned() + .into(), + ); + } + + patch.insert(dep_name, dep.into()); + } + } + + patch.fmt(); + patch.sort_values(); + + eprintln!("[patch.crates-io]"); + for (key, dep) in patch.iter() { + eprintln!("{key} = {dep}"); + } +} + +impl DepName { + fn crates(&self) -> &'static [&'static str] { + match self { + DepName::Cairo => { + // List of library crates published from the starkware-libs/cairo repository. + // One can get this list from the `scripts/release_crates.sh` script in that repo. + // Keep this list sorted for better commit diffs. + &[ + "cairo-lang-casm", + "cairo-lang-compiler", + "cairo-lang-debug", + "cairo-lang-defs", + "cairo-lang-diagnostics", + "cairo-lang-doc", + "cairo-lang-eq-solver", + "cairo-lang-executable", + "cairo-lang-filesystem", + "cairo-lang-formatter", + "cairo-lang-lowering", + "cairo-lang-parser", + "cairo-lang-plugins", + "cairo-lang-proc-macros", + "cairo-lang-project", + "cairo-lang-runnable-utils", + "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-sierra-type-size", + "cairo-lang-starknet", + "cairo-lang-starknet-classes", + "cairo-lang-syntax", + "cairo-lang-syntax-codegen", + "cairo-lang-test-plugin", + "cairo-lang-test-runner", + "cairo-lang-test-utils", + "cairo-lang-utils", + ] + } + DepName::CairoLS => &["cairo-language-server"], + } + } + + fn owns(&self, crate_name: &str) -> bool { + self.crates().contains(&crate_name) + } + + fn repo(&self) -> &'static str { + match self { + DepName::Cairo => "https://github.com/starkware-libs/cairo", + DepName::CairoLS => "https://github.com/software-mansion/cairols", + } + } +} + +/// Copies features from source dependency spec to new dependency table, if exists. +fn copy_dependency_features(dest: &mut InlineTable, src: &Value) { + if let Some(dep) = src.as_inline_table() { + if let Some(features) = dep.get("features") { + dest.insert("features", features.clone()); + } + } +} + +/// Simplifies a `{ version = "V" }` dependency spec to shorthand `"V"` if possible. +fn simplify_dependency_table(dep: &mut Value) { + *dep = match mem::replace(dep, false.into()) { + Value::InlineTable(mut table) => { + if table.len() == 1 { + table.remove("version").unwrap_or_else(|| table.into()) + } else { + table.into() + } + } + + dep => dep, + } +} + +/// Remove any unused patches from the `[patch.crates-io]` table. +/// +/// We are adding patch entries for **all** Cairo crates existing, and some may end up being unused. +/// Cargo is emitting warnings about unused patches and keeps a record of them in the `Cargo.lock`. +/// The goal of this function is to resolve these warnings. +fn purge_unused_patches(cargo_toml: &mut DocumentMut) -> Result<()> { + let sh = Shell::new()?; + let cargo_lock = sh.read_file("Cargo.lock")?.parse::()?; + + if let Some(unused_patches) = find_unused_patches(&cargo_lock) { + let patch = cargo_toml["patch"].as_table_mut().unwrap()["crates-io"] + .as_table_mut() + .unwrap(); + + // Remove any patches that are not for Cairo crates. + patch.retain(|key, _| !unused_patches.contains(&key.to_owned())); + } + + Ok(()) +} + +/// Extracts names of unused patches from the `[[patch.unused]]` array from the `Cargo.lock` file. +fn find_unused_patches(cargo_lock: &DocumentMut) -> Option> { + Some( + cargo_lock + .get("patch")? + .get("unused")? + .as_array_of_tables()? + .iter() + .flat_map(|table| Some(table.get("name")?.as_str()?.to_owned())) + .collect(), + ) +}