From ef0ee41bce3379d084ce5d930383b5502eee6646 Mon Sep 17 00:00:00 2001 From: greged93 <82421016+greged93@users.noreply.github.com> Date: Fri, 12 Jan 2024 16:12:25 +0100 Subject: [PATCH] dev: bump cairo 1 compiler dep to 2.4 (#1530) * bump cairo 1 compiler dep to 2.4 * changelog * update compiler to 2.4.2 * bump compiler to 2.4.2 in Makefile * fix incorrect offset in program --- CHANGELOG.md | 2 + Cargo.lock | 118 ++++++++++-------- Cargo.toml | 14 +-- Makefile | 2 +- cairo1-run/Makefile | 3 +- cairo1-run/src/main.rs | 7 +- .../cairo_1_run_from_entrypoint_tests.rs | 2 +- 7 files changed, 82 insertions(+), 66 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1f9aa3816..ddc963ad6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ #### Upcoming Changes +* dev: bump cairo 1 compiler dep to 2.4 [#1530](https://github.com/lambdaclass/cairo-vm/pull/1530) + #### [1.0.0-rc0] - 2024-1-5 * feat: Use `ProjectivePoint` from types-rs in ec_op builtin impl [#1532](https://github.com/lambdaclass/cairo-vm/pull/1532) diff --git a/Cargo.lock b/Cargo.lock index e98ee2cd91..7b162d25f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -284,9 +284,9 @@ dependencies = [ [[package]] name = "cairo-lang-casm" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cca7891c0df31a87740acbcda3f3c04e6516e283b67842386873f3a181fd91" +checksum = "24abd6752c41f3d2276fba63fa0434875ccf6e7cbcdebfebc790db1201eb0892" dependencies = [ "cairo-lang-utils", "indoc", @@ -301,9 +301,9 @@ dependencies = [ [[package]] name = "cairo-lang-compiler" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c4bd031bf62046af88e75b86f419ad7e2317c3b7ee26cbad367f2ff2f2bfa4" +checksum = "5699f44b183ddc2982976efdd72bbdfafc13a64f9593b44eb86f8a335f3b90da" dependencies = [ "anyhow", "cairo-lang-defs", @@ -311,7 +311,6 @@ dependencies = [ "cairo-lang-filesystem", "cairo-lang-lowering", "cairo-lang-parser", - "cairo-lang-plugins", "cairo-lang-project", "cairo-lang-semantic", "cairo-lang-sierra", @@ -325,18 +324,18 @@ dependencies = [ [[package]] name = "cairo-lang-debug" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "954529b40c914ff089bd06b4cdfa3b51f39fb8769a6f9af92ba745e4a1300bd4" +checksum = "0a52b381fab22b723818692fa93aafc2e1490a79a4c8bd856e8996f1253f16a8" dependencies = [ "cairo-lang-utils", ] [[package]] name = "cairo-lang-defs" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2ab80b21943392da07b2ee54f1f7e15ac783ea1567ed27bd4682774713f7ee" +checksum = "9d436dcaa5a3ea69f60b990036d23dc3e54adc623c14cff824cb1230f974ce44" dependencies = [ "cairo-lang-debug", "cairo-lang-diagnostics", @@ -351,9 +350,9 @@ dependencies = [ [[package]] name = "cairo-lang-diagnostics" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07052c58dc014904bfecc6fb253a0461bbdcdd3ac41f1385ac9fba5ef9a0da61" +checksum = "07771c7268044b6a7be828a4f4938bb823944efe6668a974bf5e52a6801ef366" dependencies = [ "cairo-lang-debug", "cairo-lang-filesystem", @@ -363,9 +362,9 @@ dependencies = [ [[package]] name = "cairo-lang-eq-solver" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac351e6a4af689df90119d95d8fa9441b8ad1b2eef6f4868ed7a1c1808f786c" +checksum = "53fc8c224c0aaadc01c961fac234e8d8d3563a8fbb8544186a69969765a0c2a5" dependencies = [ "cairo-lang-utils", "good_lp", @@ -373,9 +372,9 @@ dependencies = [ [[package]] name = "cairo-lang-filesystem" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f253875f0503f13d2a15e303db4f77a932a84600787a496938d0daf687945d" +checksum = "d62a519bd68f158cd1b5ee2f1f1dc2aa916a8dcb14914444846d39ff8fb33789" dependencies = [ "cairo-lang-debug", "cairo-lang-utils", @@ -387,9 +386,9 @@ dependencies = [ [[package]] name = "cairo-lang-lowering" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa602a50c7d216beb4c261036b024b24f90ce6724d623f1b23f56076584473c" +checksum = "989744e09f351ff24a0bc076dba8e3420ab957b99edc46acde58a484ebb09ed9" dependencies = [ "cairo-lang-debug", "cairo-lang-defs", @@ -408,13 +407,14 @@ dependencies = [ "num-traits 0.2.17", "once_cell", "salsa", + "smol_str", ] [[package]] name = "cairo-lang-parser" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b25e847ef219635b837cbfd8eed797a7aa6a4b01e1775065cff67b1d5bfda1fe" +checksum = "7be5b262ae2d11b4d5783a8b66d8e31cbeab45bb4e14d6ddb13ba280e9c41824" dependencies = [ "cairo-lang-diagnostics", "cairo-lang-filesystem", @@ -432,9 +432,9 @@ dependencies = [ [[package]] name = "cairo-lang-plugins" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c109f0b788a95bb86cff0e3917e1ce7d75210020fc53904d2a5e3ba54728adb" +checksum = "ebcfe1e269ab2027bad187d9c61c7e1e324374c722b75f3a7d7fba77c977f8ca" dependencies = [ "cairo-lang-defs", "cairo-lang-diagnostics", @@ -451,9 +451,9 @@ dependencies = [ [[package]] name = "cairo-lang-proc-macros" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2bbbfe1934e11fe3cce4f23cdccd22341ed63af5d76e593234288dd4ba06f56" +checksum = "f9bc4f93f28bda29d879acb9b9e26b32108591225a507ffb5aff9bbf58524c4f" dependencies = [ "cairo-lang-debug", "quote", @@ -462,9 +462,9 @@ dependencies = [ [[package]] name = "cairo-lang-project" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2ba814a9dd17b1341204d8e7bb67775aadebc5138a475bdf176dff0f11999cb" +checksum = "b3d490a3d00dd45228c1691c390f177449b45a907a2cb4b3ad8f305faea82a0c" dependencies = [ "cairo-lang-filesystem", "cairo-lang-utils", @@ -476,19 +476,21 @@ dependencies = [ [[package]] name = "cairo-lang-semantic" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19678648e0efec3f837c0d75b6071bc2afe5c4bc611e177381478c023b72a74c" +checksum = "4bcc25adf813972129dcac6c7d87026d47644f3d4e975c042d27e1166a2a0489" 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", "id-arena", + "indoc", "itertools 0.11.0", "num-bigint", "num-traits 0.2.17", @@ -499,9 +501,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79b7d09f0b7461701a9ba5d7a2260551b5026cd8f6efc6ca9ca270f6c0a6fd23" +checksum = "8cc9571dbb143e33979fc02d38bbb4d7b608d6f53cde585b08551bbedfb0c217" dependencies = [ "anyhow", "cairo-lang-utils", @@ -516,6 +518,7 @@ dependencies = [ "regex", "salsa", "serde", + "serde_json", "sha3", "smol_str", "thiserror", @@ -523,9 +526,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-ap-change" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e66740bcfadb365d488ff9c334f68cb4cb6a6cb9666ae12109fc6eee7371116" +checksum = "16894bfe0072f82b549e4b2be42c7dc8f0611ac5049dfb069b95b10c51ec7cb5" dependencies = [ "cairo-lang-eq-solver", "cairo-lang-sierra", @@ -537,9 +540,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-gas" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac27c07af11fcdc9546a9c55c1463cb871fb5b7af1daa3cdf31cfb0872da3d88" +checksum = "71fbc8baef18b3c315d3fb7a0cf59f0ee14df5cefc7dd147598248cdb7b2252d" dependencies = [ "cairo-lang-eq-solver", "cairo-lang-sierra", @@ -551,9 +554,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-generator" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456cd75547a127b8f4088216a419d317c753c6b9188e944846bf3a5193c14797" +checksum = "75700bf5fd1c1cdd8ca29af338c65de8b03c905472f9bdce22b3034f3f3755d9" dependencies = [ "cairo-lang-debug", "cairo-lang-defs", @@ -565,6 +568,7 @@ dependencies = [ "cairo-lang-sierra", "cairo-lang-syntax", "cairo-lang-utils", + "indexmap 2.1.0", "itertools 0.11.0", "num-bigint", "once_cell", @@ -574,9 +578,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-to-casm" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da74c7c4a2df66b961a982396e0f5221d6594266aed48c76d8c22d5b0d96af5d" +checksum = "f0bc8edaf95bdb9577c6b801c36b24538ec08042e1d74b98fc08d50621427061" dependencies = [ "assert_matches", "cairo-felt", @@ -595,9 +599,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-type-size" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7fdf2dbda71f1ed4e4020914e7494ad32db84dbc75cc8dbf05c06caef678fc8" +checksum = "50b028f3e06e150005e82b07500d4ea509ee8350f841d5645fbcf00bb49c4537" dependencies = [ "cairo-lang-sierra", "cairo-lang-utils", @@ -605,9 +609,9 @@ dependencies = [ [[package]] name = "cairo-lang-starknet" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9217e979f11980609d13d3a5adea8438ec9345709ddfebca975cc9cd1f85201e" +checksum = "4f55ffe2cbd277b6f3040e23bde028ae0b68e8e4910a9dd1c2f78ed668974d2a" dependencies = [ "anyhow", "cairo-felt", @@ -636,14 +640,15 @@ dependencies = [ "serde_json", "sha3", "smol_str", + "starknet-crypto", "thiserror", ] [[package]] name = "cairo-lang-syntax" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d461d88e09ba7055822eb42d6b2c2ea38a4eaa5b9e4196d8f63db48c563fb56" +checksum = "c6d745c72ac1cef893239d36bc749742d2622136ffc1434a2c70b07096d02de0" dependencies = [ "cairo-lang-debug", "cairo-lang-filesystem", @@ -657,9 +662,9 @@ dependencies = [ [[package]] name = "cairo-lang-syntax-codegen" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9615745282c0c0d3a255c2ac2665a18ae1d163c54285014d85dacda2d5e53637" +checksum = "f7c9f119185b736b5318325e7a0fc1378b706116c1c558e1ced1bdf55367813b" dependencies = [ "genco", "xshell", @@ -667,9 +672,9 @@ dependencies = [ [[package]] name = "cairo-lang-utils" -version = "2.3.1" +version = "2.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15edcd2fba78af9b753614885464c9b5bf6041b7decba46587c2b0babc4197ac" +checksum = "343ac08a5b9d34c9f4bbac7249453a31edad4cf4ff54487197cc344f8293dc4f" dependencies = [ "indexmap 2.1.0", "itertools 0.11.0", @@ -1923,7 +1928,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", ] [[package]] @@ -2605,14 +2610,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.21.0", ] [[package]] @@ -2629,6 +2634,17 @@ name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ "indexmap 2.1.0", "serde", diff --git a/Cargo.toml b/Cargo.toml index c7e3269d38..426e992ca6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -63,14 +63,14 @@ thiserror-no-std = { version = "2.0.2", default-features = false } bitvec = { version = "1", default-features = false, features = ["alloc"] } # Dependencies for cairo-1-hints feature -cairo-lang-starknet = { version = "2.3.1", default-features = false } -cairo-lang-casm = { version = "2.3.1", default-features = false } +cairo-lang-starknet = { version = "2.4.2", default-features = false } +cairo-lang-casm = { version = "2.4.2", default-features = false } -cairo-lang-compiler = { version = "2.3.1", default-features = false } -cairo-lang-sierra-to-casm = { version = "2.3.1", default-features = false } -cairo-lang-sierra = { version = "2.3.1", default-features = false } -cairo-lang-runner = { version = "2.3.1", default-features = false } -cairo-lang-utils = { version = "2.3.1", default-features = false } +cairo-lang-compiler = { version = "2.4.2", default-features = false } +cairo-lang-sierra-to-casm = { version = "2.4.2", default-features = false } +cairo-lang-sierra = { version = "2.4.2", default-features = false } +cairo-lang-runner = { version = "2.4.2", default-features = false } +cairo-lang-utils = { version = "2.4.2", default-features = false } # TODO: check these dependencies for wasm compatibility ark-ff = { version = "0.4.2", default-features = false } diff --git a/Makefile b/Makefile index bf17e6743a..97944aae8e 100644 --- a/Makefile +++ b/Makefile @@ -164,7 +164,7 @@ $(CAIRO_2_CONTRACTS_TEST_DIR)/%.casm: $(CAIRO_2_CONTRACTS_TEST_DIR)/%.sierra # ====================== CAIRO_2_REPO_DIR = cairo2 -CAIRO_2_VERSION = 2.1.0-rc1 +CAIRO_2_VERSION = 2.4.2 build-cairo-2-compiler-macos: @if [ ! -d "$(CAIRO_2_REPO_DIR)" ]; then \ diff --git a/cairo1-run/Makefile b/cairo1-run/Makefile index 337cf3a53e..26b9b9341a 100644 --- a/cairo1-run/Makefile +++ b/cairo1-run/Makefile @@ -15,7 +15,7 @@ MEMORY:=$(patsubst $(CAIRO_1_FOLDER)/%.cairo, $(CAIRO_1_FOLDER)/%.memory, $(CAIR deps: git clone https://github.com/starkware-libs/cairo.git \ && cd cairo \ - && git checkout v2.3.1 \ + && git checkout v2.4.2 \ && cd .. \ && mv cairo/corelib/ . \ && rm -rf cairo/ @@ -30,4 +30,3 @@ clean: rm -rf cairo rm -rf ../cairo_programs/cairo-1-programs/*.memory rm -rf ../cairo_programs/cairo-1-programs/*.trace - diff --git a/cairo1-run/src/main.rs b/cairo1-run/src/main.rs index 2518d2af6e..0b4056ea7b 100644 --- a/cairo1-run/src/main.rs +++ b/cairo1-run/src/main.rs @@ -176,9 +176,8 @@ fn run(args: impl Iterator) -> Result, Erro replace_ids: true, ..CompilerConfig::default() }; - let sierra_program = (*compile_cairo_project_at_path(&args.filename, compiler_config) - .map_err(|err| Error::SierraCompilation(err.to_string()))?) - .clone(); + let sierra_program = compile_cairo_project_at_path(&args.filename, compiler_config) + .map_err(|err| Error::SierraCompilation(err.to_string()))?; let metadata_config = Some(Default::default()); @@ -577,7 +576,7 @@ fn create_metadata( metadata_config: Option, ) -> Result { if let Some(metadata_config) = metadata_config { - calc_metadata(sierra_program, metadata_config, false).map_err(|err| match err { + calc_metadata(sierra_program, metadata_config).map_err(|err| match err { MetadataError::ApChangeError(_) => VirtualMachineError::Unexpected, MetadataError::CostError(_) => VirtualMachineError::Unexpected, }) diff --git a/vm/src/tests/cairo_1_run_from_entrypoint_tests.rs b/vm/src/tests/cairo_1_run_from_entrypoint_tests.rs index c424dfec5e..4c5bf3fd50 100644 --- a/vm/src/tests/cairo_1_run_from_entrypoint_tests.rs +++ b/vm/src/tests/cairo_1_run_from_entrypoint_tests.rs @@ -39,7 +39,7 @@ fn test_uint256_div_mod_hint() { run_cairo_1_entrypoint( program_data.as_slice(), - 107, + 104, &[36_usize.into(), 2_usize.into()], &[Felt252::from(18_usize)], );