diff --git a/CHANGELOG.md b/CHANGELOG.md index f72857217c..a56686f452 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,11 +12,11 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. #### Upcoming Changes -* Add Stwo cairo runner API [#2351](https://github.com/lambdaclass/cairo-vm/pull/2351) +* Add Stwo cairo runner API [#2351](https://github.com/starkware-libs/cairo-vm/pull/2351) -* Add union merge strategy for CHANGELOG.md [#2345](https://github.com/lambdaclass/cairo-vm/pull/2345) +* Add union merge strategy for CHANGELOG.md [#2345](https://github.com/starkware-libs/cairo-vm/pull/2345) -* fix: Fix off-by-one comparisons in `split_int`, `assert_250_bit`, and `sqrt` hints [#2348](https://github.com/lambdaclass/cairo-vm/pull/2348) +* fix: Fix off-by-one comparisons in `split_int`, `assert_250_bit`, and `sqrt` hints [#2348](https://github.com/starkware-libs/cairo-vm/pull/2348) #### [3.2.0] - 2026-3-24 @@ -29,63 +29,63 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. #### [3.2.0] - 2026-3-3 -* fix: Change extended_resource_counter entry from u32 to usize [#2349](https://github.com/lambdaclass/cairo-vm/pull/2349) +* fix: Change extended_resource_counter entry from u32 to usize [#2349](https://github.com/starkware-libs/cairo-vm/pull/2349) -* chore: Update fuzz_json with missing hint constants and improve fuzzer docs [#2341](https://github.com/lambdaclass/cairo-vm/pull/2341) +* chore: Update fuzz_json with missing hint constants and improve fuzzer docs [#2341](https://github.com/starkware-libs/cairo-vm/pull/2341) -* chore: Remove `diff_fuzzer` and `py_export` [#2340](https://github.com/lambdaclass/cairo-vm/pull/2340) +* chore: Remove `diff_fuzzer` and `py_export` [#2340](https://github.com/starkware-libs/cairo-vm/pull/2340) -* fix: Validate `log_diluted_units_per_step` in dynamic layout params [#2342](https://github.com/lambdaclass/cairo-vm/pull/2342) +* fix: Validate `log_diluted_units_per_step` in dynamic layout params [#2342](https://github.com/starkware-libs/cairo-vm/pull/2342) -* Remove no_std support [#2326](https://github.com/lambdaclass/cairo-vm/pull/2326) +* Remove no_std support [#2326](https://github.com/starkware-libs/cairo-vm/pull/2326) -* Remove WASM support [#2328](https://github.com/lambdaclass/cairo-vm/pull/2328) +* Remove WASM support [#2328](https://github.com/starkware-libs/cairo-vm/pull/2328) -* docs: Add onboarding doc for new developers [#2325](https://github.com/lambdaclass/cairo-vm/pull/2325) +* docs: Add onboarding doc for new developers [#2325](https://github.com/starkware-libs/cairo-vm/pull/2325) -* chore: Remove `cairo_compiled_programs_fuzzer` [#2339](https://github.com/lambdaclass/cairo-vm/pull/2339) +* chore: Remove `cairo_compiled_programs_fuzzer` [#2339](https://github.com/starkware-libs/cairo-vm/pull/2339) -* refactor: deduplicate memory segment selection in Memory helpers [#2331](https://github.com/lambdaclass/cairo-vm/pull/2331) +* refactor: deduplicate memory segment selection in Memory helpers [#2331](https://github.com/starkware-libs/cairo-vm/pull/2331) -* feat: `Add_ecop_to_all_cairo_stwo_and_add_stwo_no_ecop_layout` [#2333](https://github.com/lambdaclass/cairo-vm/pull/2333) +* feat: `Add_ecop_to_all_cairo_stwo_and_add_stwo_no_ecop_layout` [#2333](https://github.com/starkware-libs/cairo-vm/pull/2333) * `all_cairo_stwo` now includes `ec_op`. * Added new `stwo_no_ecop` layout preserving the previous `all_cairo_stwo` behavior. -* fix: replace `streaming::tag` with `complete::tag` in deserialize_utils [#2332](https://github.com/lambdaclass/cairo-vm/pull/2332) +* fix: replace `streaming::tag` with `complete::tag` in deserialize_utils [#2332](https://github.com/starkware-libs/cairo-vm/pull/2332) -* Use starknet-types-core's QM31 instead of hand-rolled implementation [#2203](https://github.com/lambdaclass/cairo-vm/pull/2203) +* Use starknet-types-core's QM31 instead of hand-rolled implementation [#2203](https://github.com/starkware-libs/cairo-vm/pull/2203) -* fix: Handle n=0 in `mod_builtin_fill_memory` [#1935](https://github.com/lambdaclass/cairo-vm/pull/1935) +* fix: Handle n=0 in `mod_builtin_fill_memory` [#1935](https://github.com/starkware-libs/cairo-vm/pull/1935) -* fix: correct off-by-one error in Cairo PIE address validation [#2329](https://github.com/lambdaclass/cairo-vm/pull/2329) +* fix: correct off-by-one error in Cairo PIE address validation [#2329](https://github.com/starkware-libs/cairo-vm/pull/2329) -* feat: Make `write_encoded` API public again [#2306](https://github.com/lambdaclass/cairo-vm/pull/2306) +* feat: Make `write_encoded` API public again [#2306](https://github.com/starkware-libs/cairo-vm/pull/2306) -* refactor: deduplicate memcpy/memset scope initialization in builtin hint processor [#2313](https://github.com/lambdaclass/cairo-vm/pull/2313) +* refactor: deduplicate memcpy/memset scope initialization in builtin hint processor [#2313](https://github.com/starkware-libs/cairo-vm/pull/2313) -* fix: correct offsets_ptr values in mod builtin security check [#2318](https://github.com/lambdaclass/cairo-vm/pull/2318) +* fix: correct offsets_ptr values in mod builtin security check [#2318](https://github.com/starkware-libs/cairo-vm/pull/2318) -* fix: Allow WASM32 compilation with std feature enabled [#2315](https://github.com/lambdaclass/cairo-vm/pull/2315) +* fix: Allow WASM32 compilation with std feature enabled [#2315](https://github.com/starkware-libs/cairo-vm/pull/2315) -* chore(vm): unify Uint256 usage across u256 hints and split quotient via Uint512 [#2237](https://github.com/lambdaclass/cairo-vm/pull/2237) +* chore(vm): unify Uint256 usage across u256 hints and split quotient via Uint512 [#2237](https://github.com/starkware-libs/cairo-vm/pull/2237) -* feat: Add Blake counter in vm [#2322](https://github.com/lambdaclass/cairo-vm/pull/2322) +* feat: Add Blake counter in vm [#2322](https://github.com/starkware-libs/cairo-vm/pull/2322) -* fix: assign validation rules in place to preserve segment-index alignment [#2268](https://github.com/lambdaclass/cairo-vm/pull/2268) +* fix: assign validation rules in place to preserve segment-index alignment [#2268](https://github.com/starkware-libs/cairo-vm/pull/2268) -* chore: Remove old compare-benchmarks Makefile command [#2307](https://github.com/lambdaclass/cairo-vm/pull/2307) +* chore: Remove old compare-benchmarks Makefile command [#2307](https://github.com/starkware-libs/cairo-vm/pull/2307) -* chore: Update iai-callgrind from 0.3.1 to 0.14.0 [#2311](https://github.com/lambdaclass/cairo-vm/pull/2311) +* chore: Update iai-callgrind from 0.3.1 to 0.14.0 [#2311](https://github.com/starkware-libs/cairo-vm/pull/2311) -* refactor: simplify relocated instruction locations lookup [#2293](https://github.com/lambdaclass/cairo-vm/pull/2293) +* refactor: simplify relocated instruction locations lookup [#2293](https://github.com/starkware-libs/cairo-vm/pull/2293) -* feat: Add public `ORDERED_BUILTIN_LIST` constant [#2298](https://github.com/lambdaclass/cairo-vm/pull/2298) +* feat: Add public `ORDERED_BUILTIN_LIST` constant [#2298](https://github.com/starkware-libs/cairo-vm/pull/2298) -* chore(breaking): Remove bincode crate [#2294](https://github.com/lambdaclass/cairo-vm/pull/2294) +* chore(breaking): Remove bincode crate [#2294](https://github.com/starkware-libs/cairo-vm/pull/2294) -* refactor: Make HintReference dereference count explicit in `get_maybe_relocatable_from_reference` [#2296](https://github.com/lambdaclass/cairo-vm/pull/2296) +* refactor: Make HintReference dereference count explicit in `get_maybe_relocatable_from_reference` [#2296](https://github.com/starkware-libs/cairo-vm/pull/2296) -* chore: Add logs to `cairo_run_program_with_initial_scope` [#2319](https://github.com/lambdaclass/cairo-vm/pull/2319) +* chore: Add logs to `cairo_run_program_with_initial_scope` [#2319](https://github.com/starkware-libs/cairo-vm/pull/2319) #### [3.1.0] - 2026-01-19 @@ -93,29 +93,29 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. **Breaking Changes** -* feat(breaking): Introduce `StepHooks` trait which allows hooks to be stateful [#2295](https://github.com/lambdaclass/cairo-vm/pull/2295) +* feat(breaking): Introduce `StepHooks` trait which allows hooks to be stateful [#2295](https://github.com/starkware-libs/cairo-vm/pull/2295) * New `StepHooks` trait that `Hooks` implements * Allows hooks to be stateful (needed for cairo-debugger) * **Migration**: If implementing custom hooks, implement the `StepHooks` trait **Features** -* feat: Make Blake2s API public [#2286](https://github.com/lambdaclass/cairo-vm/pull/2286) +* feat: Make Blake2s API public [#2286](https://github.com/starkware-libs/cairo-vm/pull/2286) -* feat: implemented delete_unaccessed function [#2282](https://github.com/lambdaclass/cairo-vm/pull/2282) +* feat: implemented delete_unaccessed function [#2282](https://github.com/starkware-libs/cairo-vm/pull/2282) **Bug Fixes** -* fix: Make cairo1-run to conditionally relocate memory and trace [#2241](https://github.com/lambdaclass/cairo-vm/pull/2241) +* fix: Make cairo1-run to conditionally relocate memory and trace [#2241](https://github.com/starkware-libs/cairo-vm/pull/2241) * Honor `relocate_mem` and `trace_enabled` flags in cairo1-run -* fix: Fix compute_ids_high_low hint constant path [#2285](https://github.com/lambdaclass/cairo-vm/pull/2285) +* fix: Fix compute_ids_high_low hint constant path [#2285](https://github.com/starkware-libs/cairo-vm/pull/2285) -* fix: also mark PC as accessed in run_instruction [#2106](https://github.com/lambdaclass/cairo-vm/pull/2106) +* fix: also mark PC as accessed in run_instruction [#2106](https://github.com/starkware-libs/cairo-vm/pull/2106) -* fix: rename y_cube_int to y_square_int in get_point_from_x [#2271](https://github.com/lambdaclass/cairo-vm/pull/2271) +* fix: rename y_cube_int to y_square_int in get_point_from_x [#2271](https://github.com/starkware-libs/cairo-vm/pull/2271) -* fix: correct duplicate tuple index in InvalidTrackingGroup error message [#2276](https://github.com/lambdaclass/cairo-vm/pull/2276) +* fix: correct duplicate tuple index in InvalidTrackingGroup error message [#2276](https://github.com/starkware-libs/cairo-vm/pull/2276) #### [3.0.1] - 2025-12-22 @@ -127,201 +127,201 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. **Breaking Changes** -* feat(BREAKING): add support for accessible scopes in hint processor [#2042](https://github.com/lambdaclass/cairo-vm/pull/2042) +* feat(BREAKING): add support for accessible scopes in hint processor [#2042](https://github.com/starkware-libs/cairo-vm/pull/2042) * `accessible_scopes` field added to `HintProcessorData` -* breaking: Store constants in Hint Data [#2191](https://github.com/lambdaclass/cairo-vm/pull/2191) +* breaking: Store constants in Hint Data [#2191](https://github.com/starkware-libs/cairo-vm/pull/2191) * Constants now stored in hint data for correct resolution in nested programs -* dev(BREAKING): Make blake2s API internal [#2265](https://github.com/lambdaclass/cairo-vm/pull/2265) +* dev(BREAKING): Make blake2s API internal [#2265](https://github.com/starkware-libs/cairo-vm/pull/2265) -* feat: Make QM31 functions internal [#2181](https://github.com/lambdaclass/cairo-vm/pull/2181) +* feat: Make QM31 functions internal [#2181](https://github.com/starkware-libs/cairo-vm/pull/2181) -* feat: Use BTreeMap in PIE additional data [#2162](https://github.com/lambdaclass/cairo-vm/pull/2162) +* feat: Use BTreeMap in PIE additional data [#2162](https://github.com/starkware-libs/cairo-vm/pull/2162) * Ensures deterministic PIE ordering -* [BREAKING] Compute missing builtin cells only in proof mode [#2088](https://github.com/lambdaclass/cairo-vm/pull/2088) +* [BREAKING] Compute missing builtin cells only in proof mode [#2088](https://github.com/starkware-libs/cairo-vm/pull/2088) * Fill holes only in proof mode **Features** -* feat: Add support for WASM with Cairo 1 [#2216](https://github.com/lambdaclass/cairo-vm/pull/2216) +* feat: Add support for WASM with Cairo 1 [#2216](https://github.com/starkware-libs/cairo-vm/pull/2216) -* feat: Add `--fill-holes` CLI flag instead of relying on `--proof-mode` [#2165](https://github.com/lambdaclass/cairo-vm/pull/2165) +* feat: Add `--fill-holes` CLI flag instead of relying on `--proof-mode` [#2165](https://github.com/starkware-libs/cairo-vm/pull/2165) -* feat: Added support for large files in PIE [#2136](https://github.com/lambdaclass/cairo-vm/pull/2136) +* feat: Added support for large files in PIE [#2136](https://github.com/starkware-libs/cairo-vm/pull/2136) -* feat: Enable using secure run in proof mode [#2113](https://github.com/lambdaclass/cairo-vm/pull/2113) +* feat: Enable using secure run in proof mode [#2113](https://github.com/starkware-libs/cairo-vm/pull/2113) -* feat: Add perpetual and dex with bitwise layouts [#2067](https://github.com/lambdaclass/cairo-vm/pull/2067) +* feat: Add perpetual and dex with bitwise layouts [#2067](https://github.com/starkware-libs/cairo-vm/pull/2067) -* feat: Fill holes in builtins segments to save computation in the prover [#2036](https://github.com/lambdaclass/cairo-vm/pull/2036) +* feat: Fill holes in builtins segments to save computation in the prover [#2036](https://github.com/starkware-libs/cairo-vm/pull/2036) -* feat: add support for alias identifiers destination in program serde [#2071](https://github.com/lambdaclass/cairo-vm/pull/2071) +* feat: add support for alias identifiers destination in program serde [#2071](https://github.com/starkware-libs/cairo-vm/pull/2071) -* feat: add get_current_step getter [#2034](https://github.com/lambdaclass/cairo-vm/pull/2034) +* feat: add get_current_step getter [#2034](https://github.com/starkware-libs/cairo-vm/pull/2034) -* feat: implement VirtualMachine::is_accessed [#2033](https://github.com/lambdaclass/cairo-vm/pull/2033) +* feat: implement VirtualMachine::is_accessed [#2033](https://github.com/starkware-libs/cairo-vm/pull/2033) -* dev: make `VirtualMachine::get_traceback_entries` pub [#2126](https://github.com/lambdaclass/cairo-vm/pull/2126) +* dev: make `VirtualMachine::get_traceback_entries` pub [#2126](https://github.com/starkware-libs/cairo-vm/pull/2126) **Bug Fixes** -* bugfix: Fix temp segment chain bug [#2195](https://github.com/lambdaclass/cairo-vm/pull/2195) +* bugfix: Fix temp segment chain bug [#2195](https://github.com/starkware-libs/cairo-vm/pull/2195) -* fix: save x1 variable to execution scope in fast_ec_add_assign_new_x [#2266](https://github.com/lambdaclass/cairo-vm/pull/2266) +* fix: save x1 variable to execution scope in fast_ec_add_assign_new_x [#2266](https://github.com/starkware-libs/cairo-vm/pull/2266) -* fix: use div_mod_unsigned and remove unwrap_or_default in inv_mod_p_uint256 and uint384_div [#2262](https://github.com/lambdaclass/cairo-vm/pull/2262) +* fix: use div_mod_unsigned and remove unwrap_or_default in inv_mod_p_uint256 and uint384_div [#2262](https://github.com/starkware-libs/cairo-vm/pull/2262) -* fix: error mapping for fee_provision in excess_balance hint [#2236](https://github.com/lambdaclass/cairo-vm/pull/2236) +* fix: error mapping for fee_provision in excess_balance hint [#2236](https://github.com/starkware-libs/cairo-vm/pull/2236) -* fix: ArcTooBig parameter order in assert_le_felt [#2234](https://github.com/lambdaclass/cairo-vm/pull/2234) +* fix: ArcTooBig parameter order in assert_le_felt [#2234](https://github.com/starkware-libs/cairo-vm/pull/2234) -* Fix bug affecting cairo1 programs with input and System builtin [#2207](https://github.com/lambdaclass/cairo-vm/pull/2207) +* Fix bug affecting cairo1 programs with input and System builtin [#2207](https://github.com/starkware-libs/cairo-vm/pull/2207) -* fix: Use Cairo prime instead of SECP_P in WRITE_DIVMOD_SEGMENT hint [#2078](https://github.com/lambdaclass/cairo-vm/pull/2078) +* fix: Use Cairo prime instead of SECP_P in WRITE_DIVMOD_SEGMENT hint [#2078](https://github.com/starkware-libs/cairo-vm/pull/2078) -* fix: Fix zero offset output base assumption [#2068](https://github.com/lambdaclass/cairo-vm/pull/2068) +* fix: Fix zero offset output base assumption [#2068](https://github.com/starkware-libs/cairo-vm/pull/2068) -* fix: Always use a normal segment in first SegmentArena segment [#1845](https://github.com/lambdaclass/cairo-vm/pull/1845) +* fix: Always use a normal segment in first SegmentArena segment [#1845](https://github.com/starkware-libs/cairo-vm/pull/1845) **Internal/Chores** -* chore: Bump Rust toolchain to 1.89 [#2245](https://github.com/lambdaclass/cairo-vm/pull/2245) +* chore: Bump Rust toolchain to 1.89 [#2245](https://github.com/starkware-libs/cairo-vm/pull/2245) -* chore: update Rust required version to 1.87.0 [#2100](https://github.com/lambdaclass/cairo-vm/pull/2100) +* chore: update Rust required version to 1.87.0 [#2100](https://github.com/starkware-libs/cairo-vm/pull/2100) -* chore: Migrate from `pyenv` to `uv` [#1995](https://github.com/lambdaclass/cairo-vm/pull/1995) +* chore: Migrate from `pyenv` to `uv` [#1995](https://github.com/starkware-libs/cairo-vm/pull/1995) -* Refactor: Remove unused error variants [#1760](https://github.com/lambdaclass/cairo-vm/pull/1760/) +* Refactor: Remove unused error variants [#1760](https://github.com/starkware-libs/cairo-vm/pull/1760/) -* Refactor: Replaced HashMap with BTreeMap to guarantee deterministic ordering of the data [#2023](https://github.com/lambdaclass/cairo-vm/pull/2023) +* Refactor: Replaced HashMap with BTreeMap to guarantee deterministic ordering of the data [#2023](https://github.com/starkware-libs/cairo-vm/pull/2023) *See RC versions below for individual change details.* #### [3.0.0-rc.5] - 2025-11-14 -* fix: save x1 variable to execution scope in fast_ec_add_assign_new_x [#2266](https://github.com/lambdaclass/cairo-vm/pull/2266) +* fix: save x1 variable to execution scope in fast_ec_add_assign_new_x [#2266](https://github.com/starkware-libs/cairo-vm/pull/2266) -* fix: use div_mod_unsigned and remove unwrap_or_default in inv_mod_p_uint256 and uint384_div [#2262](https://github.com/lambdaclass/cairo-vm/pull/2262) +* fix: use div_mod_unsigned and remove unwrap_or_default in inv_mod_p_uint256 and uint384_div [#2262](https://github.com/starkware-libs/cairo-vm/pull/2262) -* Refactor: Remove unused error variants [#1760](https://github.com/lambdaclass/cairo-vm/pull/1760/) +* Refactor: Remove unused error variants [#1760](https://github.com/starkware-libs/cairo-vm/pull/1760/) -* opt(breaking): Avoid cloning constants when compiling hints [#2208](https://github.com/lambdaclass/cairo-vm/pull/2208) +* opt(breaking): Avoid cloning constants when compiling hints [#2208](https://github.com/starkware-libs/cairo-vm/pull/2208) -* dev(BREAKING): Make blake2s API internal [#2265](https://github.com/lambdaclass/cairo-vm/pull/2265) +* dev(BREAKING): Make blake2s API internal [#2265](https://github.com/starkware-libs/cairo-vm/pull/2265) -* bugfix: Fix temp segment chain bug [#2195](https://github.com/lambdaclass/cairo-vm/pull/2195) +* bugfix: Fix temp segment chain bug [#2195](https://github.com/starkware-libs/cairo-vm/pull/2195) #### [3.0.0-rc.4] - 2025-10-28 -* fix: error mapping for fee_provision in excess_balance hint [#2236](https://github.com/lambdaclass/cairo-vm/pull/2236) +* fix: error mapping for fee_provision in excess_balance hint [#2236](https://github.com/starkware-libs/cairo-vm/pull/2236) -* fix: ArcTooBig parameter order in assert_le_felt. [#2234](https://github.com/lambdaclass/cairo-vm/pull/2234) +* fix: ArcTooBig parameter order in assert_le_felt. [#2234](https://github.com/starkware-libs/cairo-vm/pull/2234) -* chore: Bump Rust toolchain to 1.89 [#2245](https://github.com/lambdaclass/cairo-vm/pull/2245) +* chore: Bump Rust toolchain to 1.89 [#2245](https://github.com/starkware-libs/cairo-vm/pull/2245) -* chore: Remove dead SegmentInfo struct from cairo_runner.rs [#2235](https://github.com/lambdaclass/cairo-vm/pull/2235) +* chore: Remove dead SegmentInfo struct from cairo_runner.rs [#2235](https://github.com/starkware-libs/cairo-vm/pull/2235) -* fix: Remove unused dependency getrandom for cairo1-run, and serde_json for wasm-demo-cairo1 [#2238](https://github.com/lambdaclass/cairo-vm/pull/2238) +* fix: Remove unused dependency getrandom for cairo1-run, and serde_json for wasm-demo-cairo1 [#2238](https://github.com/starkware-libs/cairo-vm/pull/2238) -* chore: Unify deps makefile target [#2211](https://github.com/lambdaclass/cairo-vm/pull/2211) +* chore: Unify deps makefile target [#2211](https://github.com/starkware-libs/cairo-vm/pull/2211) -* Fix bug affecting cairo1 programs with input and System builtin [#2207](https://github.com/lambdaclass/cairo-vm/pull/2207) +* Fix bug affecting cairo1 programs with input and System builtin [#2207](https://github.com/starkware-libs/cairo-vm/pull/2207) -* chore: Pin generic-array version to 0.14.7 or lower. [#2227](https://github.com/lambdaclass/cairo-vm/pull/2227) +* chore: Pin generic-array version to 0.14.7 or lower. [#2227](https://github.com/starkware-libs/cairo-vm/pull/2227) -* feat: Add support for WASM with Cairo 1 [#2216](https://github.com/lambdaclass/cairo-vm/pull/2216) +* feat: Add support for WASM with Cairo 1 [#2216](https://github.com/starkware-libs/cairo-vm/pull/2216) -* fix: Added `cairo_1_test_contracts` and `cairo_2_test_contracts` as dependencies for `test-extensive_hints` target [#2201](https://github.com/lambdaclass/cairo-vm/pull/2201) +* fix: Added `cairo_1_test_contracts` and `cairo_2_test_contracts` as dependencies for `test-extensive_hints` target [#2201](https://github.com/starkware-libs/cairo-vm/pull/2201) -* breaking: Store constants in Hint Data [#2191](https://github.com/lambdaclass/cairo-vm/pull/2191) +* breaking: Store constants in Hint Data [#2191](https://github.com/starkware-libs/cairo-vm/pull/2191) #### [3.0.0-rc.3] - 2025-08-26 -* chore: Bump types-rs to 0.2.0 [#2183](https://github.com/lambdaclass/cairo-vm/pull/2183) +* chore: Bump types-rs to 0.2.0 [#2183](https://github.com/starkware-libs/cairo-vm/pull/2183) #### [3.0.0-rc.2] - 2025-08-22 -* feat: Make QM31 functions internal [#2181](https://github.com/lambdaclass/cairo-vm/pull/2181) +* feat: Make QM31 functions internal [#2181](https://github.com/starkware-libs/cairo-vm/pull/2181) -* feat: Add `--fill-holes` CLI flag instead of relying on `--proof-mode` [#2165](https://github.com/lambdaclass/cairo-vm/pull/2165) +* feat: Add `--fill-holes` CLI flag instead of relying on `--proof-mode` [#2165](https://github.com/starkware-libs/cairo-vm/pull/2165) -* feat: Use BTreeMap in PIE additional data [#2162](https://github.com/lambdaclass/cairo-vm/pull/2162) +* feat: Use BTreeMap in PIE additional data [#2162](https://github.com/starkware-libs/cairo-vm/pull/2162) -* feat: Remove prover input info struct and add getters instead [#2149](https://github.com/lambdaclass/cairo-vm/pull/2149) +* feat: Remove prover input info struct and add getters instead [#2149](https://github.com/starkware-libs/cairo-vm/pull/2149) -* feat: Added support for large files in PIE [#2136](https://github.com/lambdaclass/cairo-vm/pull/2136) +* feat: Added support for large files in PIE [#2136](https://github.com/starkware-libs/cairo-vm/pull/2136) -* feat: Disable relocate trace with flag [#2133](https://github.com/lambdaclass/cairo-vm/pull/2133) +* feat: Disable relocate trace with flag [#2133](https://github.com/starkware-libs/cairo-vm/pull/2133) -* feat: Enable using secure run in proof mode [#2113](https://github.com/lambdaclass/cairo-vm/pull/2113) +* feat: Enable using secure run in proof mode [#2113](https://github.com/starkware-libs/cairo-vm/pull/2113) -* [BREAKING] Compute missing builtin cells only in proof mode [#2088](https://github.com/lambdaclass/cairo-vm/pull/2088) +* [BREAKING] Compute missing builtin cells only in proof mode [#2088](https://github.com/starkware-libs/cairo-vm/pull/2088) -* test: Add test for filling holes in builtin segments [#2087](https://github.com/lambdaclass/cairo-vm/pull/2087) +* test: Add test for filling holes in builtin segments [#2087](https://github.com/starkware-libs/cairo-vm/pull/2087) -* fix: Removed memory comparison test with Python VM in proof mode, since the new hole-filling logic causes divergence.[#2086](https://github.com/lambdaclass/cairo-vm/pull/2086) +* fix: Removed memory comparison test with Python VM in proof mode, since the new hole-filling logic causes divergence.[#2086](https://github.com/starkware-libs/cairo-vm/pull/2086) -* refactor: Use BTreeMap for deterministic order of PIE keys [#2085](https://github.com/lambdaclass/cairo-vm/pull/2085) +* refactor: Use BTreeMap for deterministic order of PIE keys [#2085](https://github.com/starkware-libs/cairo-vm/pull/2085) -* fix: Fix zero offset output base assumption [#2068](https://github.com/lambdaclass/cairo-vm/pull/2068) +* fix: Fix zero offset output base assumption [#2068](https://github.com/starkware-libs/cairo-vm/pull/2068) -* feat: Add perpetual and dex with bitwise layouts [#2067](https://github.com/lambdaclass/cairo-vm/pull/2067) +* feat: Add perpetual and dex with bitwise layouts [#2067](https://github.com/starkware-libs/cairo-vm/pull/2067) -* feat: Fill holes in builtins segments to save computation in the prover [#2036](https://github.com/lambdaclass/cairo-vm/pull/2036) +* feat: Fill holes in builtins segments to save computation in the prover [#2036](https://github.com/starkware-libs/cairo-vm/pull/2036) -* feat: Added hints felt unpacking for blake [#2032](https://github.com/lambdaclass/cairo-vm/pull/2032) +* feat: Added hints felt unpacking for blake [#2032](https://github.com/starkware-libs/cairo-vm/pull/2032) -* dev: make `VirtualMachine::get_traceback_entries` pub [#2126](https://github.com/lambdaclass/cairo-vm/pull/2126) +* dev: make `VirtualMachine::get_traceback_entries` pub [#2126](https://github.com/starkware-libs/cairo-vm/pull/2126) -* chore: Pin types-rs version to the one set in lockfile [#2140](https://github.com/lambdaclass/cairo-vm/pull/2140) +* chore: Pin types-rs version to the one set in lockfile [#2140](https://github.com/starkware-libs/cairo-vm/pull/2140) -* chore: Migrate from `pyenv` to `uv` [#1995](https://github.com/lambdaclass/cairo-vm/pull/1995) +* chore: Migrate from `pyenv` to `uv` [#1995](https://github.com/starkware-libs/cairo-vm/pull/1995) -* chore: remove unused dependencies [#2111](https://github.com/lambdaclass/cairo-vm/pull/2111) +* chore: remove unused dependencies [#2111](https://github.com/starkware-libs/cairo-vm/pull/2111) -* chore: update Rust required version to 1.87.0 [#2100](https://github.com/lambdaclass/cairo-vm/pull/2100) +* chore: update Rust required version to 1.87.0 [#2100](https://github.com/starkware-libs/cairo-vm/pull/2100) #### [3.0.0-rc.1] - 2025-05-08 -* chore: bump pip `cairo-lang` 0.13.5 [#1959](https://github.com/lambdaclass/cairo-vm/pull/1959) +* chore: bump pip `cairo-lang` 0.13.5 [#1959](https://github.com/starkware-libs/cairo-vm/pull/1959) -* fix: Use Cairo prime instead of SECP_P in WRITE_DIVMOD_SEGMENT hint [#2078](https://github.com/lambdaclass/cairo-vm/pull/2078) +* fix: Use Cairo prime instead of SECP_P in WRITE_DIVMOD_SEGMENT hint [#2078](https://github.com/starkware-libs/cairo-vm/pull/2078) -* feat: add support for alias identifiers destination in program serde [#2071](https://github.com/lambdaclass/cairo-vm/pull/2071) +* feat: add support for alias identifiers destination in program serde [#2071](https://github.com/starkware-libs/cairo-vm/pull/2071) -* feat(BREAKING): add support for accessible scopes in hint processor [#2042](https://github.com/lambdaclass/cairo-vm/pull/2042) +* feat(BREAKING): add support for accessible scopes in hint processor [#2042](https://github.com/starkware-libs/cairo-vm/pull/2042) -* dev: add Memory::get_maybe_relocatable [#2039](https://github.com/lambdaclass/cairo-vm/pull/2039) +* dev: add Memory::get_maybe_relocatable [#2039](https://github.com/starkware-libs/cairo-vm/pull/2039) -* refactor: remove duplicated get_val function [#2065](https://github.com/lambdaclass/cairo-vm/pull/2065) +* refactor: remove duplicated get_val function [#2065](https://github.com/starkware-libs/cairo-vm/pull/2065) -* fix: Always use a normal segment in first SegmentArena segment [#1845](https://github.com/lambdaclass/cairo-vm/pull/1845) +* fix: Always use a normal segment in first SegmentArena segment [#1845](https://github.com/starkware-libs/cairo-vm/pull/1845) -* chore: update cairo-lang dependencies to 2.12.0-dev.0 #[2040](https://github.com/lambdaclass/cairo-vm/pull/2040) +* chore: update cairo-lang dependencies to 2.12.0-dev.0 #[2040](https://github.com/starkware-libs/cairo-vm/pull/2040) -* feat: add get_current_step getter [#2034](https://github.com/lambdaclass/cairo-vm/pull/2034) +* feat: add get_current_step getter [#2034](https://github.com/starkware-libs/cairo-vm/pull/2034) -* feat: implement VirtualMachine::is_accessed [#2033](https://github.com/lambdaclass/cairo-vm/pull/2033) +* feat: implement VirtualMachine::is_accessed [#2033](https://github.com/starkware-libs/cairo-vm/pull/2033) -* Refactor: Replaced HashMap with BTreeMap to guarantee deterministic ordering of the data [#2023] (https://github.com/lambdaclass/cairo-vm/pull/2023) +* Refactor: Replaced HashMap with BTreeMap to guarantee deterministic ordering of the data [#2023] (https://github.com/starkware-libs/cairo-vm/pull/2023) -* fix: Updated the logic for collecting builtin segment data for prover input info, removing dependency on the existence of stop pointers. [#2022](https://github.com/lambdaclass/cairo-vm/pull/2022) +* fix: Updated the logic for collecting builtin segment data for prover input info, removing dependency on the existence of stop pointers. [#2022](https://github.com/starkware-libs/cairo-vm/pull/2022) -* fix: Keep None values in memory segments for the prover input info [#2021](https://github.com/lambdaclass/cairo-vm/pull/2021) +* fix: Keep None values in memory segments for the prover input info [#2021](https://github.com/starkware-libs/cairo-vm/pull/2021) -* refactor: Clap attribute macros from #[clap(...)] to #[arg(...)] and #[command(...)] in v4.x [#2003] (https://github.com/lambdaclass/cairo-vm/pull/2003) +* refactor: Clap attribute macros from #[clap(...)] to #[arg(...)] and #[command(...)] in v4.x [#2003] (https://github.com/starkware-libs/cairo-vm/pull/2003) -* fix: Fix `WriteReturnFp` error due to a bad loading of initial gas [#2015](https://github.com/lambdaclass/cairo-vm/pull/2015) +* fix: Fix `WriteReturnFp` error due to a bad loading of initial gas [#2015](https://github.com/starkware-libs/cairo-vm/pull/2015) -* refactor: Replaces security anyhow errors with enum variants [#1946](https://github.com/lambdaclass/cairo-vm/pull/1946) +* refactor: Replaces security anyhow errors with enum variants [#1946](https://github.com/starkware-libs/cairo-vm/pull/1946) -* fix: `mod_builtin_fill_memory` could be stuck in an infinite loop [#1975](https://github.com/lambdaclass/cairo-vm/issues/1975) +* fix: `mod_builtin_fill_memory` could be stuck in an infinite loop [#1975](https://github.com/starkware-libs/cairo-vm/issues/1975) -* feat: replace `thiserror-no-std` with `thiserror 2` [#1919](https://github.com/lambdaclass/cairo-vm/pull/1919) +* feat: replace `thiserror-no-std` with `thiserror 2` [#1919](https://github.com/starkware-libs/cairo-vm/pull/1919) -* feat: Add `ProverInfo` and extract the relevant information for it from the runner [#2001](https://github.com/lambdaclass/cairo-vm/pull/2001) +* feat: Add `ProverInfo` and extract the relevant information for it from the runner [#2001](https://github.com/starkware-libs/cairo-vm/pull/2001) #### [2.5.0] - 2025-09-11 @@ -329,7 +329,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. **Breaking Changes** -* breaking: Store constants in Hint Data [#2191](https://github.com/lambdaclass/cairo-vm/pull/2191) +* breaking: Store constants in Hint Data [#2191](https://github.com/starkware-libs/cairo-vm/pull/2191) * `HintProcessorLogic::execute_hint` - Removed `constants` parameter * `HintProcessorLogic::compile_hint` - Added `constants` parameter * `CairoRunner::step_hint` - No longer receives program constants @@ -337,62 +337,62 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. #### [2.0.1] - 2025-03-17 -* feat: Limited padding of builtin segments to >=16 [#1981](https://github.com/lambdaclass/cairo-vm/pull/1981) +* feat: Limited padding of builtin segments to >=16 [#1981](https://github.com/starkware-libs/cairo-vm/pull/1981) -* fix: Enforce `disable_trace_padding` used only in `proof_mode` [#1984](https://github.com/lambdaclass/cairo-vm/pull/1984) +* fix: Enforce `disable_trace_padding` used only in `proof_mode` [#1984](https://github.com/starkware-libs/cairo-vm/pull/1984) -* feat: adding option to simulate builtins [#1956](https://github.com/lambdaclass/cairo-vm/pull/1956) +* feat: adding option to simulate builtins [#1956](https://github.com/starkware-libs/cairo-vm/pull/1956) -* feat: adding `all_cairo_stwo` layout to vm [#1957](https://github.com/lambdaclass/cairo-vm/pull/1957) +* feat: adding `all_cairo_stwo` layout to vm [#1957](https://github.com/starkware-libs/cairo-vm/pull/1957) -* chore: update Rust required version to 1.85.0 [#1990](https://github.com/lambdaclass/cairo-vm/pull/1990) +* chore: update Rust required version to 1.85.0 [#1990](https://github.com/starkware-libs/cairo-vm/pull/1990) -* chore: Update fastecdsa python package [#1993](https://github.com/lambdaclass/cairo-vm/pull/1993) +* chore: Update fastecdsa python package [#1993](https://github.com/starkware-libs/cairo-vm/pull/1993) -* fix: Update wasm-bindgen to version 0.2.100 and unpin its version requirement [#1988](https://github.com/lambdaclass/cairo-vm/pull/1988) +* fix: Update wasm-bindgen to version 0.2.100 and unpin its version requirement [#1988](https://github.com/starkware-libs/cairo-vm/pull/1988) #### [2.0.0] - 2025-02-26 -* fix: Check overflow in cairo pie address calculation [#1945](https://github.com/lambdaclass/cairo-vm/pull/1945) +* fix: Check overflow in cairo pie address calculation [#1945](https://github.com/starkware-libs/cairo-vm/pull/1945) #### [2.0.0-rc5] - 2025-02-24 -* fix: Fix Cairo Pie limiting the number of segments to 2^16 [#1960](https://github.com/lambdaclass/cairo-vm/pull/1960) +* fix: Fix Cairo Pie limiting the number of segments to 2^16 [#1960](https://github.com/starkware-libs/cairo-vm/pull/1960) * Implement `merge_extra_segments` -* feat: implement an opcode that computes QM31 arithmetics (add, sub, mul, div) in the VM [#1938](https://github.com/lambdaclass/cairo-vm/pull/1938) +* feat: implement an opcode that computes QM31 arithmetics (add, sub, mul, div) in the VM [#1938](https://github.com/starkware-libs/cairo-vm/pull/1938) -* feat: add functions that compute packed reduced qm31 arithmetics to `math_utils` [#1944](https://github.com/lambdaclass/cairo-vm/pull/1944) +* feat: add functions that compute packed reduced qm31 arithmetics to `math_utils` [#1944](https://github.com/starkware-libs/cairo-vm/pull/1944) -* feat: implement `Blake2sLastBlock` opcode in VM [#1932](https://github.com/lambdaclass/cairo-vm/pull/1932) +* feat: implement `Blake2sLastBlock` opcode in VM [#1932](https://github.com/starkware-libs/cairo-vm/pull/1932) -* feat: implement `Blake2s` opcode in VM [#1927](https://github.com/lambdaclass/cairo-vm/pull/1927) +* feat: implement `Blake2s` opcode in VM [#1927](https://github.com/starkware-libs/cairo-vm/pull/1927) -* feat: remove `NonZeroReservedBits` from `VirtualMachineError` [#1948](https://github.com/lambdaclass/cairo-vm/pull/1948) +* feat: remove `NonZeroReservedBits` from `VirtualMachineError` [#1948](https://github.com/starkware-libs/cairo-vm/pull/1948) -* feat: set `encoded_instruction` to be u128 for opcode_extensions to come [#1940](https://github.com/lambdaclass/cairo-vm/pull/1940) +* feat: set `encoded_instruction` to be u128 for opcode_extensions to come [#1940](https://github.com/starkware-libs/cairo-vm/pull/1940) -* feat: add `get_u32_range` to `impl VirtualMachine` add `get_u32` and `get_u32_range` to `impl Memory` [#1936](https://github.com/lambdaclass/cairo-vm/pull/1936) +* feat: add `get_u32_range` to `impl VirtualMachine` add `get_u32` and `get_u32_range` to `impl Memory` [#1936](https://github.com/starkware-libs/cairo-vm/pull/1936) -* feat: add the field `opcode_extension` to the structure of `Instruction` [#1933](https://github.com/lambdaclass/cairo-vm/pull/1933) +* feat: add the field `opcode_extension` to the structure of `Instruction` [#1933](https://github.com/starkware-libs/cairo-vm/pull/1933) -* fix(BREAKING): Fix no trace padding flow in proof mode [#1909](https://github.com/lambdaclass/cairo-vm/pull/1909) +* fix(BREAKING): Fix no trace padding flow in proof mode [#1909](https://github.com/starkware-libs/cairo-vm/pull/1909) -* refactor: Limit ret opcode decodeing to Cairo0's standards. [#1925](https://github.com/lambdaclass/cairo-vm/pull/1925) +* refactor: Limit ret opcode decodeing to Cairo0's standards. [#1925](https://github.com/starkware-libs/cairo-vm/pull/1925) -* feat: define HashMap of hint groups along with hint strings [#1943](https://github.com/lambdaclass/cairo-vm/pull/1943) +* feat: define HashMap of hint groups along with hint strings [#1943](https://github.com/starkware-libs/cairo-vm/pull/1943) #### [2.0.0-rc4] - 2025-01-23 -* feat: implement `kzg` data availability hints [#1887](https://github.com/lambdaclass/cairo-vm/pull/1887) +* feat: implement `kzg` data availability hints [#1887](https://github.com/starkware-libs/cairo-vm/pull/1887) #### [2.0.0-rc3] - 2024-12-26 -* chore: update cairo-lang dependencies to 2.10.0-rc.0 #[1901](https://github.com/lambdaclass/cairo-vm/pull/1901) +* chore: update cairo-lang dependencies to 2.10.0-rc.0 #[1901](https://github.com/starkware-libs/cairo-vm/pull/1901) #### [2.0.0-rc2] - 2024-12-12 -* feat: Add support for subtractions containing references as right hand side operands [#1898](https://github.com/lambdaclass/cairo-vm/pull/1898) +* feat: Add support for subtractions containing references as right hand side operands [#1898](https://github.com/starkware-libs/cairo-vm/pull/1898) * fix: Change wildcard getrandom dependency. @@ -402,71 +402,71 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * chore: update cairo-lang dependencies to 2.9.2 -* fix: replace `div_rem` with `div_mod_floor` in `verify_zero` hints [#1881](https://github.com/lambdaclass/cairo-vm/pull/1881) +* fix: replace `div_rem` with `div_mod_floor` in `verify_zero` hints [#1881](https://github.com/starkware-libs/cairo-vm/pull/1881) -* feat: Implement `SECP related` hints [#1829](https://github.com/lambdaclass/cairo-vm/pull/1829) +* feat: Implement `SECP related` hints [#1829](https://github.com/starkware-libs/cairo-vm/pull/1829) -* chore: bump pip `cairo-lang` 0.13.3 [#1884](https://github.com/lambdaclass/cairo-vm/pull/1884) +* chore: bump pip `cairo-lang` 0.13.3 [#1884](https://github.com/starkware-libs/cairo-vm/pull/1884) -* fix: [#1862](https://github.com/lambdaclass/cairo-vm/pull/1862): +* fix: [#1862](https://github.com/starkware-libs/cairo-vm/pull/1862): * Use MaybeRelocatable for relocation table -* chore: bump pip `cairo-lang` 0.13.3 [#1884](https://github.com/lambdaclass/cairo-vm/pull/1884) +* chore: bump pip `cairo-lang` 0.13.3 [#1884](https://github.com/starkware-libs/cairo-vm/pull/1884) -* chore: [#1880](https://github.com/lambdaclass/cairo-vm/pull/1880): +* chore: [#1880](https://github.com/starkware-libs/cairo-vm/pull/1880): * Refactor vm crate to make it possible to use hint extension feature for nested programs with hints. #### [2.0.0-rc1] - 2024-11-20 -* feat: add `EvalCircuit` and `TestLessThanOrEqualAddress` hints [#1843](https://github.com/lambdaclass/cairo-vm/pull/1843) +* feat: add `EvalCircuit` and `TestLessThanOrEqualAddress` hints [#1843](https://github.com/starkware-libs/cairo-vm/pull/1843) -* fix: [#1873](https://github.com/lambdaclass/cairo-vm/pull/1873) +* fix: [#1873](https://github.com/starkware-libs/cairo-vm/pull/1873) * Fix broken num-prime `is_prime` call -* fix: [#1868](https://github.com/lambdaclass/cairo-vm/pull/1855): +* fix: [#1868](https://github.com/starkware-libs/cairo-vm/pull/1855): * Adds logic to include the 3 new builtins in `builtin_segments` when serializing the output cairo pie's metadata. -* fix: [#1855](https://github.com/lambdaclass/cairo-vm/pull/1855): +* fix: [#1855](https://github.com/starkware-libs/cairo-vm/pull/1855): * Adds logic to skip pedersen additional data comparison when checking pie compatibility. -* serde: add `size` field to `Identifier` [#1861]https://github.com/lambdaclass/cairo-vm/pull/1861 +* serde: add `size` field to `Identifier` [#1861]https://github.com/starkware-libs/cairo-vm/pull/1861 #### [2.0.0-rc0] - 2024-10-22 -* fix: [#1864](https://github.com/lambdaclass/cairo-vm/pull/1864): +* fix: [#1864](https://github.com/starkware-libs/cairo-vm/pull/1864): * Runner: include data from constants segment to the bytecode when assembling program -* chore: bump `cairo-lang-` dependencies to 2.9.0-dev.0 [#1858](https://github.com/lambdaclass/cairo-vm/pull/1858/files) +* chore: bump `cairo-lang-` dependencies to 2.9.0-dev.0 [#1858](https://github.com/starkware-libs/cairo-vm/pull/1858/files) -* chore: update Rust required version to 1.81.0 [#1857](https://github.com/lambdaclass/cairo-vm/pull/1857) +* chore: update Rust required version to 1.81.0 [#1857](https://github.com/starkware-libs/cairo-vm/pull/1857) -* fix: [#1851](https://github.com/lambdaclass/cairo-vm/pull/1851): +* fix: [#1851](https://github.com/starkware-libs/cairo-vm/pull/1851): * Fix unsorted signature and mod builtin outputs in air_private_input. -* feat(BREAKING): [#1824](https://github.com/lambdaclass/cairo-vm/pull/1824)[#1838](https://github.com/lambdaclass/cairo-vm/pull/1838): +* feat(BREAKING): [#1824](https://github.com/starkware-libs/cairo-vm/pull/1824)[#1838](https://github.com/starkware-libs/cairo-vm/pull/1838): * Add support for dynamic layout * CLI change(BREAKING): The flag `cairo_layout_params_file` must be specified when using dynamic layout. * Signature change(BREAKING): Both `CairoRunner::new` and `CairoRunner::new_v2` now receive an `Option`, used only with dynamic layout. -* fix: [#1841](https://github.com/lambdaclass/cairo-vm/pull/1841): +* fix: [#1841](https://github.com/starkware-libs/cairo-vm/pull/1841): * Fix modulo builtin to comply with prover constraints -* chore: bump pip `cairo-lang` 0.13.2 [#1827](https://github.com/lambdaclass/cairo-vm/pull/1827) +* chore: bump pip `cairo-lang` 0.13.2 [#1827](https://github.com/starkware-libs/cairo-vm/pull/1827) -* chore: bump `cairo-lang-` dependencies to 2.8.0 [#1833](https://github.com/lambdaclass/cairo-vm/pull/1833/files) +* chore: bump `cairo-lang-` dependencies to 2.8.0 [#1833](https://github.com/starkware-libs/cairo-vm/pull/1833/files) * chore: update Rust required version to 1.80.0 -* fix: Added the following VM fixes: [#1820](https://github.com/lambdaclass/cairo-vm/pull/1820) +* fix: Added the following VM fixes: [#1820](https://github.com/starkware-libs/cairo-vm/pull/1820) * Fix zero segment location. * Fix has_zero_segment naming. * Fix prover input. * Fix version reading when no version is supplied. -* chore: bump `cairo-lang-` dependencies to 2.7.1 [#1823](https://github.com/lambdaclass/cairo-vm/pull/1823) +* chore: bump `cairo-lang-` dependencies to 2.7.1 [#1823](https://github.com/starkware-libs/cairo-vm/pull/1823) #### [1.0.1] - 2024-08-12 -* fix(BREAKING): [#1818](https://github.com/lambdaclass/cairo-vm/pull/1818): +* fix(BREAKING): [#1818](https://github.com/starkware-libs/cairo-vm/pull/1818): * Fix `MemorySegmentManager::add_zero_segment` function when resizing a segment * Signature change(BREAKING): `MemorySegmentManager::get_memory_holes` now receives `builtin_segment_indexes: HashSet` @@ -474,70 +474,70 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. #### [1.0.0] - 2024-08-01 -* chore: bump `cairo-lang-` dependencies to 2.7.0 [#1813](https://github.com/lambdaclass/cairo-vm/pull/1813) +* chore: bump `cairo-lang-` dependencies to 2.7.0 [#1813](https://github.com/starkware-libs/cairo-vm/pull/1813) * fix(BREAKING): Don't assume output builtin is first when counting memory holes * Logic change: Memory hole counting no longer asumes that the output builtin ocuppies the first builtin segment if present - * Signature change: `MemorySegmentManager` method `get_memory_holes` now receives the index of the output builtin (as an `Option`) instead of the boolean argument `has_output_builtin`[#1811](https://github.com/lambdaclass/cairo-vm/pull/1811) + * Signature change: `MemorySegmentManager` method `get_memory_holes` now receives the index of the output builtin (as an `Option`) instead of the boolean argument `has_output_builtin`[#1811](https://github.com/starkware-libs/cairo-vm/pull/1811) -* fix: ambiguous keccak module name use on external contexts [#1809](https://github.com/lambdaclass/cairo-vm/pull/1809) +* fix: ambiguous keccak module name use on external contexts [#1809](https://github.com/starkware-libs/cairo-vm/pull/1809) #### [1.0.0-rc6] - 2024-07-22 -* chore: bump `cairo-lang-` dependencies to 2.7.0-rc.3 [#1807](https://github.com/lambdaclass/cairo-vm/pull/1807) +* chore: bump `cairo-lang-` dependencies to 2.7.0-rc.3 [#1807](https://github.com/starkware-libs/cairo-vm/pull/1807) * chore: update Rust required version to 1.76.0 #### [1.0.0-rc5] - 2024-07-13 -* fix: Fixed deserialization of negative numbers in scientific notation [#1804](https://github.com/lambdaclass/cairo-vm/pull/1804) +* fix: Fixed deserialization of negative numbers in scientific notation [#1804](https://github.com/starkware-libs/cairo-vm/pull/1804) #### [1.0.0-rc4] - 2024-07-05 -* chore: bump `cairo-lang-` dependencies to 2.6.4 [#1799](https://github.com/lambdaclass/cairo-vm/pull/1799) +* chore: bump `cairo-lang-` dependencies to 2.6.4 [#1799](https://github.com/starkware-libs/cairo-vm/pull/1799) * fix: revert breaking change on public input serialization -* fix: Remove validation of CairoPie memory values [#1783](https://github.com/lambdaclass/cairo-vm/pull/1783) +* fix: Remove validation of CairoPie memory values [#1783](https://github.com/starkware-libs/cairo-vm/pull/1783) -* fix: Handle `GasBuiltin` in cairo1-run crate [#1789](https://github.com/lambdaclass/cairo-vm/pull/1789) +* fix: Handle `GasBuiltin` in cairo1-run crate [#1789](https://github.com/starkware-libs/cairo-vm/pull/1789) * Load `initial_gas` into vm instead of creating it via instructions. * Fix bug affecting programs with input arguments and gas builtin. -* fix: Change (de)serialization of CairoPie's `OutputBuiltinAdditionalData`'s `PublicMemoryPage` to vectors of length 2. [#1781](https://github.com/lambdaclass/cairo-vm/pull/1781) +* fix: Change (de)serialization of CairoPie's `OutputBuiltinAdditionalData`'s `PublicMemoryPage` to vectors of length 2. [#1781](https://github.com/starkware-libs/cairo-vm/pull/1781) -* fix: Fixed deserialization issue when signature additional data is empty, and the name of the builtin range_check96 [#1785](https://github.com/lambdaclass/cairo-vm/pull/1785) +* fix: Fixed deserialization issue when signature additional data is empty, and the name of the builtin range_check96 [#1785](https://github.com/starkware-libs/cairo-vm/pull/1785) -* refactor + bugfix: Improve arg handling for cairo1-run [#1782](https://github.com/lambdaclass/cairo-vm/pull/1782) +* refactor + bugfix: Improve arg handling for cairo1-run [#1782](https://github.com/starkware-libs/cairo-vm/pull/1782) * Now uses ascii whitespace as separator, preventing errors when using newlines in args file * No longer gets stuck on improperly-formatted arrays * Returns an informative clap error upon invalid felt strings instead of unwrapping -* fix: Ignore memory order when comparing instances of `CairoPieMemory` [#1780](https://github.com/lambdaclass/cairo-vm/pull/1780) +* fix: Ignore memory order when comparing instances of `CairoPieMemory` [#1780](https://github.com/starkware-libs/cairo-vm/pull/1780) -* feat: Add `EXCESS_BALANCE` hint [#1777](https://github.com/lambdaclass/cairo-vm/pull/1777) +* feat: Add `EXCESS_BALANCE` hint [#1777](https://github.com/starkware-libs/cairo-vm/pull/1777) -* feat(BREAKING): Use a cheatcode to relocate all dicts + Make temporary segment usage configurable [#1776](https://github.com/lambdaclass/cairo-vm/pull/1776) +* feat(BREAKING): Use a cheatcode to relocate all dicts + Make temporary segment usage configurable [#1776](https://github.com/starkware-libs/cairo-vm/pull/1776) * Add the flags `segment_arena_validation` & `use_temporary_segments` to the `Cairo1HintProcessor` & `DictManagerExecScope` respectively. These flags will determine if real segments or temporary segments will be used when creating dictionaries. * `DictManagerExecScope::finalize_segment` no longer performs relocation and is ignored if `use_temporary_segments` is set to false. * Add method `DictManagerExecScope::relocate_all_dictionaries` that adds relocation rules for all tracked dictionaries, relocating them one next to the other in a new segment. * Add cheatcode `RelocateAllDictionaries` to the `Cairo1HintProcessor`, which calls the aforementioned method. * Add casm instruction to call the aforementioned cheatcode in `create_entry_code` if either `proof_mode` or `append_return_values` are set to true, and segment arena is present. -* Bump `starknet-types-core` version + Use the lib's pedersen hash [#1734](https://github.com/lambdaclass/cairo-vm/pull/1734) +* Bump `starknet-types-core` version + Use the lib's pedersen hash [#1734](https://github.com/starkware-libs/cairo-vm/pull/1734) -* refactor: Add boolean method Cairo1RunConfig::copy_to_output + Update Doc [#1778](https://github.com/lambdaclass/cairo-vm/pull/1778) +* refactor: Add boolean method Cairo1RunConfig::copy_to_output + Update Doc [#1778](https://github.com/starkware-libs/cairo-vm/pull/1778) -* feat: Filter implicit arguments from return value in cairo1-run crate [#1775](https://github.com/lambdaclass/cairo-vm/pull/1775) +* feat: Filter implicit arguments from return value in cairo1-run crate [#1775](https://github.com/starkware-libs/cairo-vm/pull/1775) * feat(BREAKING): Serialize inputs into output segment in cairo1-run crate: * Checks that only `Array` can be received by the program main function when running with with either `--proof_mode` or `--append_return_values`. * Copies the input value to the output segment right after the output in the format `[array_len, arr[0], arr[1],.., arr[n]]`. - * feat: specify initial value for `exec_scopes` in `cairo_run_program` [1772](https://github.com/lambdaclass/cairo-vm/pull/1772) + * feat: specify initial value for `exec_scopes` in `cairo_run_program` [1772](https://github.com/starkware-libs/cairo-vm/pull/1772) -* fix: make MemorySegmentManager.finalize() public [#1771](https://github.com/lambdaclass/cairo-vm/pull/1771) +* fix: make MemorySegmentManager.finalize() public [#1771](https://github.com/starkware-libs/cairo-vm/pull/1771) -* feat: load Cairo PIE from bytes [#1773](https://github.com/lambdaclass/cairo-vm/pull/1773) +* feat: load Cairo PIE from bytes [#1773](https://github.com/starkware-libs/cairo-vm/pull/1773) * feat(BREAKING): Serialize `Array` return value into output segment in cairo1-run crate: * Checks that only `PanicResult>` or `Array` can be returned by the program when running with either `--proof_mode` or `--append_return_values`. @@ -545,17 +545,17 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * `PanicResult>` -> `[panic_flag, array_len, arr[0], arr[1],.., arr[n]]` * `` -> `[array_len, arr[0], arr[1],.., arr[n]]` -* feat: Handle `BoundedInt` variant in `serialize_output`, `cairo1-run` crate [#1768](https://github.com/lambdaclass/cairo-vm/pull/1768) +* feat: Handle `BoundedInt` variant in `serialize_output`, `cairo1-run` crate [#1768](https://github.com/starkware-libs/cairo-vm/pull/1768) -* fix: make `OutputBuiltinState` public [#1769](https://github.com/lambdaclass/cairo-vm/pull/1769) +* fix: make `OutputBuiltinState` public [#1769](https://github.com/starkware-libs/cairo-vm/pull/1769) -* feat: Load arguments into VM instead of creating them via instructions in cairo1-run [#1759](https://github.com/lambdaclass/cairo-vm/pull/1759) +* feat: Load arguments into VM instead of creating them via instructions in cairo1-run [#1759](https://github.com/starkware-libs/cairo-vm/pull/1759) #### [1.0.0-rc3] - 2024-05-14 -* bugfix: Fix handling of return values wrapped in `PanicResult` in cairo1-run crate [#1763](https://github.com/lambdaclass/cairo-vm/pull/1763) +* bugfix: Fix handling of return values wrapped in `PanicResult` in cairo1-run crate [#1763](https://github.com/starkware-libs/cairo-vm/pull/1763) -* refactor(BREAKING): Move the VM back to the CairoRunner [#1743](https://github.com/lambdaclass/cairo-vm/pull/1743) +* refactor(BREAKING): Move the VM back to the CairoRunner [#1743](https://github.com/starkware-libs/cairo-vm/pull/1743) * `CairoRunner` has a new public field `vm: VirtualMachine` * `CairoRunner` no longer derives `Debug` * `CairoRunner` methods `new_v2` & `new` take an extra boolean argument `trace_enabled`. @@ -605,59 +605,59 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * `verify_secure_runner` * [hooks feature] `BeforeFirstStepHookFunc` dyn Fn no longer takes a mutable reference to `CairoRunner`, along with `VirtualMachine::execute_before_first_step`. -* fix: add support for arrays shorter than 2 as arguments for cairo1-run [#1737](https://github.com/lambdaclass/cairo-vm/pull/1737) +* fix: add support for arrays shorter than 2 as arguments for cairo1-run [#1737](https://github.com/starkware-libs/cairo-vm/pull/1737) -* bugfix: Fix BuiltinRunner::final_stack for SegmentArena[#1747](https://github.com/lambdaclass/cairo-vm/pull/1747) +* bugfix: Fix BuiltinRunner::final_stack for SegmentArena[#1747](https://github.com/starkware-libs/cairo-vm/pull/1747) -* feat: unify `arbitrary`, `hooks`, `print` and `skip_next_instruction_hint` features as a single `test_utils` feature [#1755](https://github.com/lambdaclass/cairo-vm/pull/1755) +* feat: unify `arbitrary`, `hooks`, `print` and `skip_next_instruction_hint` features as a single `test_utils` feature [#1755](https://github.com/starkware-libs/cairo-vm/pull/1755) * BREAKING: removed the above features -* bugfix: cairo1-run CLI: Set finalize_builtins to true when using --air_public_input flag [#1744](https://github.com/lambdaclass/cairo-vm/pull/1752) +* bugfix: cairo1-run CLI: Set finalize_builtins to true when using --air_public_input flag [#1744](https://github.com/starkware-libs/cairo-vm/pull/1752) -* feat: Add hint `U256InvModN` to `Cairo1HintProcessor` [#1744](https://github.com/lambdaclass/cairo-vm/pull/1744) +* feat: Add hint `U256InvModN` to `Cairo1HintProcessor` [#1744](https://github.com/starkware-libs/cairo-vm/pull/1744) -* perf: use a more compact representation for `MemoryCell` [#1672](https://github.com/lambdaclass/cairo-vm/pull/1672) +* perf: use a more compact representation for `MemoryCell` [#1672](https://github.com/starkware-libs/cairo-vm/pull/1672) * BREAKING: `Memory::get_value` will now always return `Cow::Owned` variants, code that relied on `Cow::Borrowed` may break #### [1.0.0-rc2] - 2024-05-02 -* `cairo1-run` CLI: Allow loading arguments from file[#1739](https://github.com/lambdaclass/cairo-vm/pull/1739) +* `cairo1-run` CLI: Allow loading arguments from file[#1739](https://github.com/starkware-libs/cairo-vm/pull/1739) -* BREAKING: Remove unused `CairoRunner` field `original_steps`[#1742](https://github.com/lambdaclass/cairo-vm/pull/1742) +* BREAKING: Remove unused `CairoRunner` field `original_steps`[#1742](https://github.com/starkware-libs/cairo-vm/pull/1742) -* feat: Add `--run_from_cairo_pie` to `cairo-vm-cli` + workflow [#1730](https://github.com/lambdaclass/cairo-vm/pull/1730) +* feat: Add `--run_from_cairo_pie` to `cairo-vm-cli` + workflow [#1730](https://github.com/starkware-libs/cairo-vm/pull/1730) -* Serialize directly into writer in `CairoPie::write_zip_file`[#1736](https://github.com/lambdaclass/cairo-vm/pull/1736) +* Serialize directly into writer in `CairoPie::write_zip_file`[#1736](https://github.com/starkware-libs/cairo-vm/pull/1736) * feat: Add support for cairo1 run with segements arena validation. * Refactored the runner CASM code generation to user a more high level builder. * Added segment merging of the dictionary segments. * Added validation of the generated segment arena in cairo1 run. -* refactor: Add `lib.rs` to cairo1-run[#1714](https://github.com/lambdaclass/cairo-vm/pull/1714) +* refactor: Add `lib.rs` to cairo1-run[#1714](https://github.com/starkware-libs/cairo-vm/pull/1714) -* feat: Implement `CairoPie::read_zip_file`[#1729](https://github.com/lambdaclass/cairo-vm/pull/1729) +* feat: Implement `CairoPie::read_zip_file`[#1729](https://github.com/starkware-libs/cairo-vm/pull/1729) -* feat: Bump to 2.6.3 + Remove gas checks[#1709](https://github.com/lambdaclass/cairo-vm/pull/1709) +* feat: Bump to 2.6.3 + Remove gas checks[#1709](https://github.com/starkware-libs/cairo-vm/pull/1709) * Bump cairo_lang crates & corelib to v2.6.3 * Disable gas checks when compiling to sierra & casm * Add `Known bugs & issues` segment to README, poining out issues derived from the removal of gas checks and cairo v2.6.3 -* feat: Implement running from `CairoPie`[#1720](https://github.com/lambdaclass/cairo-vm/pull/1720) +* feat: Implement running from `CairoPie`[#1720](https://github.com/starkware-libs/cairo-vm/pull/1720) * Add function `cairo_run_pie` * Add `CairoPie` methods `run_validity_checks` & `check_pie_compatibility` * Add `Program` method `from_stripped_program` -* bugfix: Don't assume outer deref when fetching integer values from references[#1732](https://github.com/lambdaclass/cairo-vm/pull/1732) +* bugfix: Don't assume outer deref when fetching integer values from references[#1732](https://github.com/starkware-libs/cairo-vm/pull/1732) -* feat: Implement `extend_additional_data` for `BuiltinRunner`[#1726](https://github.com/lambdaclass/cairo-vm/pull/1726) +* feat: Implement `extend_additional_data` for `BuiltinRunner`[#1726](https://github.com/starkware-libs/cairo-vm/pull/1726) -* BREAKING: Set dynamic params as null by default on air public input [#1716](https://github.com/lambdaclass/cairo-vm/pull/1716) +* BREAKING: Set dynamic params as null by default on air public input [#1716](https://github.com/starkware-libs/cairo-vm/pull/1716) * `PublicInput` field `layout_params` renamed to `dynamic_params` & type changed from`&'a CairoLayout` to `()`. -* feat: `cairo1-run` accepts Sierra programs [#1719](https://github.com/lambdaclass/cairo-vm/pull/1719) +* feat: `cairo1-run` accepts Sierra programs [#1719](https://github.com/starkware-libs/cairo-vm/pull/1719) -* refactor(BREAKING): Use `BuiltinName` enum instead of string representation [#1722](https://github.com/lambdaclass/cairo-vm/pull/1722) +* refactor(BREAKING): Use `BuiltinName` enum instead of string representation [#1722](https://github.com/starkware-libs/cairo-vm/pull/1722) * `BuiltinName` moved from `crate::serde::deserialize_program` module to `crate::types::builtin_name`. * Implement `BuiltinName` methods `to_str`, `to_str_with_suffix`, `from_str` & `from_str_with_suffix`. * Remove `BuiltinName` method `name`. @@ -676,27 +676,27 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. Notes: Serialization of vm outputs that now contain `BuiltinName` & `Display` implementation of `BuiltinName` have not been affected by this PR -* feat: Add `recursive_with_poseidon` layout[#1724](https://github.com/lambdaclass/cairo-vm/pull/1724) +* feat: Add `recursive_with_poseidon` layout[#1724](https://github.com/starkware-libs/cairo-vm/pull/1724) -* refactor(BREAKING): Use an enum to represent layout name[#1715](https://github.com/lambdaclass/cairo-vm/pull/1715) +* refactor(BREAKING): Use an enum to represent layout name[#1715](https://github.com/starkware-libs/cairo-vm/pull/1715) * Add enum `LayoutName` to represent cairo layout names. * `CairoRunConfig`, `Cairo1RunConfig` & `CairoRunner` field `layout` type changed from `String` to `LayoutName`. * `CairoLayout` field `name` type changed from `String` to `LayoutName`. -* fix(BREAKING): Remove unsafe impl of `Add for &'a Relocatable`[#1718](https://github.com/lambdaclass/cairo-vm/pull/1718) +* fix(BREAKING): Remove unsafe impl of `Add for &'a Relocatable`[#1718](https://github.com/starkware-libs/cairo-vm/pull/1718) -* fix(BREAKING): Handle triple dereference references[#1708](https://github.com/lambdaclass/cairo-vm/pull/1708) +* fix(BREAKING): Handle triple dereference references[#1708](https://github.com/starkware-libs/cairo-vm/pull/1708) * Replace `ValueAddress` boolean field `dereference` with boolean fields `outer_dereference` & `inner_dereference` * Replace `HintReference` boolean field `dereference` with boolean fields `outer_dereference` & `inner_dereference` * Reference parsing now handles the case of dereferences inside the cast. Aka references of type `cast([A + B], type)` such as `cast([[fp + 2] + 2], felt)`. -* Bump `starknet-types-core` version + Use the lib's pedersen hash [#1692](https://github.com/lambdaclass/cairo-vm/pull/1692) +* Bump `starknet-types-core` version + Use the lib's pedersen hash [#1692](https://github.com/starkware-libs/cairo-vm/pull/1692) -* refactor: Remove unused code & use constants whenever possible for builtin instance definitions[#1707](https://github.com/lambdaclass/cairo-vm/pull/1707) +* refactor: Remove unused code & use constants whenever possible for builtin instance definitions[#1707](https://github.com/starkware-libs/cairo-vm/pull/1707) -* feat: missing EC hints for Starknet OS 0.13.1 [#1706](https://github.com/lambdaclass/cairo-vm/pull/1706) +* feat: missing EC hints for Starknet OS 0.13.1 [#1706](https://github.com/starkware-libs/cairo-vm/pull/1706) -* fix(BREAKING): Use program builtins in `initialize_main_entrypoint` & `read_return_values`[#1703](https://github.com/lambdaclass/cairo-vm/pull/1703) +* fix(BREAKING): Use program builtins in `initialize_main_entrypoint` & `read_return_values`[#1703](https://github.com/starkware-libs/cairo-vm/pull/1703) * `initialize_main_entrypoint` now iterates over the program builtins when building the stack & inserts 0 for any missing builtin * `read_return_values` now only computes the final stack of the builtins in the program * BREAKING: `read_return_values` now takes a boolean argument `allow_missing_builtins` @@ -704,7 +704,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * BREAKING: `OutputBuiltinRunner::get_public_memory` now takes a reference to `MemorySegmentManager` * BREAKING: method `VirtualMachine::get_memory_segment_addresses` moved to `CairoRunner::get_memory_segment_addresses` -* feat(BREAKING): Add range_check96 builtin[#1698](https://github.com/lambdaclass/cairo-vm/pull/1698) +* feat(BREAKING): Add range_check96 builtin[#1698](https://github.com/starkware-libs/cairo-vm/pull/1698) * Add the new `range_check96` builtin to the `all_cairo` layout. * `RangeCheckBuiltinRunner` changes: * Remove field `n_parts`, replacing it with const generic `N_PARTS`. @@ -712,7 +712,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * Remove field `_bound`, replacing it with public method `bound`. * Add public methods `name` & `n_parts`. -* feat(BREAKING): Add mod builtin [#1673](https://github.com/lambdaclass/cairo-vm/pull/1673) +* feat(BREAKING): Add mod builtin [#1673](https://github.com/starkware-libs/cairo-vm/pull/1673) Main Changes: * Add the new `ModBuiltinRunner`, implementing the builtins `add_mod` & `mul_mod` @@ -731,71 +731,71 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * Remove empty implementations of `deduce_memory_cell` & `add_validation_rules` from all builtin runners * Remove duplicated implementation of `final_stack` from all builtin runners except output and move it to the enum implementation -* bugfix(BREAKING): Handle off2 immediate case in `get_integer_from_reference`[#1701](https://github.com/lambdaclass/cairo-vm/pull/1701) +* bugfix(BREAKING): Handle off2 immediate case in `get_integer_from_reference`[#1701](https://github.com/starkware-libs/cairo-vm/pull/1701) * `get_integer_from_reference` & `get_integer_from_var_name` output changed from `Result, HintError>` to `Result` * feat: Reorganized builtins to be in the top of stack at the end of a run (Cairo1). -* BREAKING: Remove `CairoRunner::add_additional_hash_builtin` & `VirtualMachine::disable_trace`[#1658](https://github.com/lambdaclass/cairo-vm/pull/1658) +* BREAKING: Remove `CairoRunner::add_additional_hash_builtin` & `VirtualMachine::disable_trace`[#1658](https://github.com/starkware-libs/cairo-vm/pull/1658) -* feat: output builtin add_attribute method [#1691](https://github.com/lambdaclass/cairo-vm/pull/1691) +* feat: output builtin add_attribute method [#1691](https://github.com/starkware-libs/cairo-vm/pull/1691) -* feat: add a method to retrieve the output builtin from the VM [#1690](https://github.com/lambdaclass/cairo-vm/pull/1690) +* feat: add a method to retrieve the output builtin from the VM [#1690](https://github.com/starkware-libs/cairo-vm/pull/1690) -* feat: Add zero segment [#1668](https://github.com/lambdaclass/cairo-vm/pull/1668) +* feat: Add zero segment [#1668](https://github.com/starkware-libs/cairo-vm/pull/1668) -* feat: Bump cairo_lang to 0.13.1 in testing env [#1687](https://github.com/lambdaclass/cairo-vm/pull/1687) +* feat: Bump cairo_lang to 0.13.1 in testing env [#1687](https://github.com/starkware-libs/cairo-vm/pull/1687) -* feat(BREAKING): Use return type info from sierra when serializing return values in cairo1-run crate [#1665](https://github.com/lambdaclass/cairo-vm/pull/1665) +* feat(BREAKING): Use return type info from sierra when serializing return values in cairo1-run crate [#1665](https://github.com/starkware-libs/cairo-vm/pull/1665) * Removed public function `serialize_output`. * Add field `serialize_output` to `Cairo1RunConfig`. * Function `cairo_run_program` now returns an extra `Option` value with the serialized output if `serialize_output` is enabled in the config. * Output serialization improved as it now uses the sierra program data to identify return value's types. -* feat: Create hyper_threading crate to benchmark the `cairo-vm` in a hyper-threaded environment [#1679](https://github.com/lambdaclass/cairo-vm/pull/1679) +* feat: Create hyper_threading crate to benchmark the `cairo-vm` in a hyper-threaded environment [#1679](https://github.com/starkware-libs/cairo-vm/pull/1679) -* feat: add a `--tracer` option which hosts a web server that shows the line by line execution of cairo code along with memory registers [#1265](https://github.com/lambdaclass/cairo-vm/pull/1265) +* feat: add a `--tracer` option which hosts a web server that shows the line by line execution of cairo code along with memory registers [#1265](https://github.com/starkware-libs/cairo-vm/pull/1265) -* feat: Fix error handling in `initialize_state`[#1657](https://github.com/lambdaclass/cairo-vm/pull/1657) +* feat: Fix error handling in `initialize_state`[#1657](https://github.com/starkware-libs/cairo-vm/pull/1657) -* feat: Make air public inputs deserializable [#1657](https://github.com/lambdaclass/cairo-vm/pull/1648) +* feat: Make air public inputs deserializable [#1657](https://github.com/starkware-libs/cairo-vm/pull/1648) -* feat: Show only layout builtins in air private input [#1651](https://github.com/lambdaclass/cairo-vm/pull/1651) +* feat: Show only layout builtins in air private input [#1651](https://github.com/starkware-libs/cairo-vm/pull/1651) -* feat: Sort builtin segment info upon serialization for Cairo PIE [#1654](https://github.com/lambdaclass/cairo-vm/pull/1654) +* feat: Sort builtin segment info upon serialization for Cairo PIE [#1654](https://github.com/starkware-libs/cairo-vm/pull/1654) -* feat: Fix output serialization for cairo 1 [#1645](https://github.com/lambdaclass/cairo-vm/pull/1645) +* feat: Fix output serialization for cairo 1 [#1645](https://github.com/starkware-libs/cairo-vm/pull/1645) * Reverts changes added by #1630 * Extends the serialization of Arrays added by the `print_output` flag to Spans and Dictionaries * Now dereferences references upon serialization -* feat: Add flag to append return values to output segment when not running in proof_mode [#1646](https://github.com/lambdaclass/cairo-vm/pull/1646) +* feat: Add flag to append return values to output segment when not running in proof_mode [#1646](https://github.com/starkware-libs/cairo-vm/pull/1646) * Adds the flag `append_return_values` to both the CLI and `Cairo1RunConfig` struct. * Enabling flag will add the output builtin and the necessary instructions to append the return values to the output builtin's memory segment. -* feat: Compute program hash chain [#1647](https://github.com/lambdaclass/cairo-vm/pull/1647) +* feat: Compute program hash chain [#1647](https://github.com/starkware-libs/cairo-vm/pull/1647) -* feat: Add cairo1-run output pretty-printing for felts, arrays/spans and dicts [#1630](https://github.com/lambdaclass/cairo-vm/pull/1630) +* feat: Add cairo1-run output pretty-printing for felts, arrays/spans and dicts [#1630](https://github.com/starkware-libs/cairo-vm/pull/1630) -* feat: output builtin features for bootloader support [#1580](https://github.com/lambdaclass/cairo-vm/pull/1580) +* feat: output builtin features for bootloader support [#1580](https://github.com/starkware-libs/cairo-vm/pull/1580) #### [1.0.0-rc1] - 2024-02-23 -* Bump `starknet-types-core` dependency version to 0.0.9 [#1628](https://github.com/lambdaclass/cairo-vm/pull/1628) +* Bump `starknet-types-core` dependency version to 0.0.9 [#1628](https://github.com/starkware-libs/cairo-vm/pull/1628) -* feat: Implement `Display` for `MemorySegmentManager`[#1606](https://github.com/lambdaclass/cairo-vm/pull/1606) +* feat: Implement `Display` for `MemorySegmentManager`[#1606](https://github.com/starkware-libs/cairo-vm/pull/1606) -* fix: make Felt252DictEntryUpdate work with MaybeRelocatable instead of only Felt [#1624](https://github.com/lambdaclass/cairo-vm/pull/1624). +* fix: make Felt252DictEntryUpdate work with MaybeRelocatable instead of only Felt [#1624](https://github.com/starkware-libs/cairo-vm/pull/1624). -* chore: bump `cairo-lang-` dependencies to 2.5.4 [#1629](https://github.com/lambdaclass/cairo-vm/pull/1629) +* chore: bump `cairo-lang-` dependencies to 2.5.4 [#1629](https://github.com/starkware-libs/cairo-vm/pull/1629) -* chore: bump `cairo-lang-` dependencies to 2.5.3 [#1596](https://github.com/lambdaclass/cairo-vm/pull/1596) +* chore: bump `cairo-lang-` dependencies to 2.5.3 [#1596](https://github.com/starkware-libs/cairo-vm/pull/1596) -* refactor: Refactor `cairo1-run` crate [#1601](https://github.com/lambdaclass/cairo-vm/pull/1601) +* refactor: Refactor `cairo1-run` crate [#1601](https://github.com/starkware-libs/cairo-vm/pull/1601) * Add function `cairo_run_program` & struct `Cairo1RunConfig` in `cairo1-run::cairo_run` module. * Function `serialize_output` & structs `FuncArg` and `Error` in crate `cairo1-run` are now public. -* feat(BREAKING): Add `allow_missing_builtins` flag [#1600](https://github.com/lambdaclass/cairo-vm/pull/1600) +* feat(BREAKING): Add `allow_missing_builtins` flag [#1600](https://github.com/starkware-libs/cairo-vm/pull/1600) This new flag will skip the check that all builtins used by the program need to be present in the selected layout if enabled. It will also be enabled by default when running in proof_mode. @@ -803,83 +803,83 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * Add `allow_missing_builtins` field to `CairoRunConfig` struct * Add `allow_missing_builtins` boolean argument to `CairoRunner` methods `initialize` & `initialize_builtins` -* feat: Append return values to the output segment when running cairo1-run in proof_mode [#1597](https://github.com/lambdaclass/cairo-vm/pull/1597) +* feat: Append return values to the output segment when running cairo1-run in proof_mode [#1597](https://github.com/starkware-libs/cairo-vm/pull/1597) * Add instructions to the proof_mode header to copy return values to the output segment before initiating the infinite loop * Output builtin is now always included when running cairo 1 programs in proof_mode -* feat: deserialize AIR private input [#1589](https://github.com/lambdaclass/cairo-vm/pull/1589) +* feat: deserialize AIR private input [#1589](https://github.com/starkware-libs/cairo-vm/pull/1589) -* feat(BREAKING): Remove unecessary conversion functions between `Felt` & `BigUint`/`BigInt` [#1562](https://github.com/lambdaclass/cairo-vm/pull/1562) +* feat(BREAKING): Remove unecessary conversion functions between `Felt` & `BigUint`/`BigInt` [#1562](https://github.com/starkware-libs/cairo-vm/pull/1562) * Remove the following functions: * felt_from_biguint * felt_from_bigint * felt_to_biguint * felt_to_bigint -* perf: optimize instruction cache allocations by using `VirtualMachine::load_data` [#1441](https://github.com/lambdaclass/cairo-vm/pull/1441) +* perf: optimize instruction cache allocations by using `VirtualMachine::load_data` [#1441](https://github.com/starkware-libs/cairo-vm/pull/1441) -* feat: Add `print_output` flag to `cairo-1` crate [#1575] (https://github.com/lambdaclass/cairo-vm/pull/1575) +* feat: Add `print_output` flag to `cairo-1` crate [#1575] (https://github.com/starkware-libs/cairo-vm/pull/1575) -* bugfixes(BREAKING): Fix memory hole count inconsistencies #[1585] (https://github.com/lambdaclass/cairo-vm/pull/1585) +* bugfixes(BREAKING): Fix memory hole count inconsistencies #[1585] (https://github.com/starkware-libs/cairo-vm/pull/1585) * Output builtin memory segment is no longer skipped when counting memory holes * Temporary memory cells now keep their accessed status when relocated * BREAKING: Signature change: `get_memory_holes(&self, builtin_count: usize) -> Result` -> `get_memory_holes(&self, builtin_count: usize, has_output_builtin: bool) -> Result` -* feat: Add `cairo_pie_output` flag to `cairo1-run` [#1581] (https://github.com/lambdaclass/cairo-vm/pull/1581) +* feat: Add `cairo_pie_output` flag to `cairo1-run` [#1581] (https://github.com/starkware-libs/cairo-vm/pull/1581) -* feat: Add `cairo_pie_output` flag to `cairo_vm_cli` [#1578] (https://github.com/lambdaclass/cairo-vm/pull/1578) +* feat: Add `cairo_pie_output` flag to `cairo_vm_cli` [#1578] (https://github.com/starkware-libs/cairo-vm/pull/1578) * Fix serialization of CairoPie to be fully compatible with the python version * Add `CairoPie::write_zip_file` * Move handling of required and exclusive arguments in `cairo-vm-cli` to struct definition using clap derives -* feat: Add doc + default impl for ResourceTracker trait [#1576] (https://github.com/lambdaclass/cairo-vm/pull/1576) +* feat: Add doc + default impl for ResourceTracker trait [#1576] (https://github.com/starkware-libs/cairo-vm/pull/1576) -* feat: Add `air_private_input` flag to `cairo1-run` [#1559] (https://github.com/lambdaclass/cairo-vm/pull/1559) +* feat: Add `air_private_input` flag to `cairo1-run` [#1559] (https://github.com/starkware-libs/cairo-vm/pull/1559) -* feat: Add `args` flag to `cairo1-run` [#1551] (https://github.com/lambdaclass/cairo-vm/pull/1551) +* feat: Add `args` flag to `cairo1-run` [#1551] (https://github.com/starkware-libs/cairo-vm/pull/1551) -* feat: Add `air_public_input` flag to `cairo1-run` [#1539] (https://github.com/lambdaclass/cairo-vm/pull/1539) +* feat: Add `air_public_input` flag to `cairo1-run` [#1539] (https://github.com/starkware-libs/cairo-vm/pull/1539) -* feat: Implement air_private_input [#1552](https://github.com/lambdaclass/cairo-vm/pull/1552) +* feat: Implement air_private_input [#1552](https://github.com/starkware-libs/cairo-vm/pull/1552) -* feat: Add `proof_mode` flag to `cairo1-run` [#1537] (https://github.com/lambdaclass/cairo-vm/pull/1537) +* feat: Add `proof_mode` flag to `cairo1-run` [#1537] (https://github.com/starkware-libs/cairo-vm/pull/1537) * The cairo1-run crate no longer compiles and executes in proof_mode by default * Add flag `proof_mode` to cairo1-run crate. Activating this flag will enable proof_mode compilation and execution -* dev: bump cairo 1 compiler dep to 2.4 [#1530](https://github.com/lambdaclass/cairo-vm/pull/1530) +* dev: bump cairo 1 compiler dep to 2.4 [#1530](https://github.com/starkware-libs/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) +* feat: Use `ProjectivePoint` from types-rs in ec_op builtin impl [#1532](https://github.com/starkware-libs/cairo-vm/pull/1532) -* feat(BREAKING): Replace `cairo-felt` crate with `starknet-types-core` (0.0.5) [#1408](https://github.com/lambdaclass/cairo-vm/pull/1408) +* feat(BREAKING): Replace `cairo-felt` crate with `starknet-types-core` (0.0.5) [#1408](https://github.com/starkware-libs/cairo-vm/pull/1408) -* feat(BREAKING): Add Cairo 1 proof mode compilation and execution [#1517] (https://github.com/lambdaclass/cairo-vm/pull/1517) +* feat(BREAKING): Add Cairo 1 proof mode compilation and execution [#1517] (https://github.com/starkware-libs/cairo-vm/pull/1517) * In the cairo1-run crate, now the Cairo 1 Programs are compiled and executed in proof-mode * BREAKING: Remove `CairoRunner.proof_mode: bool` field and replace it with `CairoRunner.runner_mode: RunnerMode` -* perf: Add `extensive_hints` feature to prevent performance regression for the common use-case [#1503] (https://github.com/lambdaclass/cairo-vm/pull/1503) +* perf: Add `extensive_hints` feature to prevent performance regression for the common use-case [#1503] (https://github.com/starkware-libs/cairo-vm/pull/1503) * Gates changes added by #1491 under the feature flag `extensive_hints` -* chore: remove cancel-duplicates workflow [#1497](https://github.com/lambdaclass/cairo-vm/pull/1497) +* chore: remove cancel-duplicates workflow [#1497](https://github.com/starkware-libs/cairo-vm/pull/1497) -* feat: Handle `pc`s outside of program segment in `VmException` [#1501] (https://github.com/lambdaclass/cairo-vm/pull/1501) +* feat: Handle `pc`s outside of program segment in `VmException` [#1501] (https://github.com/starkware-libs/cairo-vm/pull/1501) * `VmException` now shows the full pc value instead of just the offset (`VmException.pc` field type changed to `Relocatable`) * `VmException.traceback` now shows the full pc value for each entry instead of hardcoding its index to 0. * Disable debug information for errors produced when `pc` is outside of the program segment (segment_index != 0). `VmException` fields `inst_location` & `error_attr_value` will be `None` in such case. -* feat: Allow running instructions from pcs outside the program segement [#1493](https://github.com/lambdaclass/cairo-vm/pull/1493) +* feat: Allow running instructions from pcs outside the program segement [#1493](https://github.com/starkware-libs/cairo-vm/pull/1493) -* BREAKING: Partially Revert `Optimize trace relocation #906` [#1492](https://github.com/lambdaclass/cairo-vm/pull/1492) +* BREAKING: Partially Revert `Optimize trace relocation #906` [#1492](https://github.com/starkware-libs/cairo-vm/pull/1492) * Remove methods `VirtualMachine::get_relocated_trace`& `VirtualMachine::relocate_trace`. * Add `relocated_trace` field & `relocate_trace` method to `CairoRunner`. * Swap `TraceEntry` for `RelocatedTraceEntry` type in `write_encoded_trace` & `PublicInput::new` signatures. * Now takes into account the program counter's segment index when building the execution trace instead of assuming it to be 0. -* feat: Add HintProcessor::execute_hint_extensive + refactor hint_ranges [#1491](https://github.com/lambdaclass/cairo-vm/pull/1491) +* feat: Add HintProcessor::execute_hint_extensive + refactor hint_ranges [#1491](https://github.com/starkware-libs/cairo-vm/pull/1491) * Add trait method `HintProcessorLogic::execute_hint_extensive`: * This method has a similar behaviour to `HintProcessorLogic::execute_hint` but it also returns a `HintExtension` (type alias for `HashMap>>`) that can be used to extend the current map of hints used by the VM. This behaviour achieves what the `vm_load_data` primitive does for cairo-lang, and is needed to implement os hints. @@ -889,47 +889,47 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * `pub fn step_hint(&mut self, hint_executor: &mut dyn HintProcessor, exec_scopes: &mut ExecutionScopes, hint_datas: &mut Vec>, constants: &HashMap) -> Result<(), VirtualMachineError>` -> `pub fn step_hint(&mut self, hint_processor: &mut dyn HintProcessor, exec_scopes: &mut ExecutionScopes, hint_datas: &mut Vec>, hint_ranges: &mut HashMap, constants: &HashMap) -> Result<(), VirtualMachineError>` * `pub fn step(&mut self, hint_executor: &mut dyn HintProcessor, exec_scopes: &mut ExecutionScopes, hint_data: &[Box], constants: &HashMap) -> Result<(), VirtualMachineError>` -> `pub fn step(&mut self, hint_processor: &mut dyn HintProcessor, exec_scopes: &mut ExecutionScopes, hint_datas: &mut Vec>, hint_ranges: &mut HashMap, constants: &HashMap) -> Result<(), VirtualMachineError>` -* feat: add debugging capabilities behind `print` feature flag. [#1476](https://github.com/lambdaclass/cairo-vm/pull/1476) +* feat: add debugging capabilities behind `print` feature flag. [#1476](https://github.com/starkware-libs/cairo-vm/pull/1476) -* feat: add `cairo_run_program` function that takes a `Program` as an arg. [#1496](https://github.com/lambdaclass/cairo-vm/pull/1496) +* feat: add `cairo_run_program` function that takes a `Program` as an arg. [#1496](https://github.com/starkware-libs/cairo-vm/pull/1496) #### [0.9.1] - 2023-11-16 -* chore: bump `cairo-lang-` dependencies to 2.3.1 [#1482](https://github.com/lambdaclass/cairo-vm/pull/1482), [#1483](https://github.com/lambdaclass/cairo-vm/pull/1483) +* chore: bump `cairo-lang-` dependencies to 2.3.1 [#1482](https://github.com/starkware-libs/cairo-vm/pull/1482), [#1483](https://github.com/starkware-libs/cairo-vm/pull/1483) -* feat: Make PublicInput fields public [#1474](https://github.com/lambdaclass/cairo-vm/pull/1474) +* feat: Make PublicInput fields public [#1474](https://github.com/starkware-libs/cairo-vm/pull/1474) -* chore: bump starknet-crypto to v0.6.1 [#1469](https://github.com/lambdaclass/cairo-vm/pull/1469) +* chore: bump starknet-crypto to v0.6.1 [#1469](https://github.com/starkware-libs/cairo-vm/pull/1469) -* feat: Implement the Serialize and Deserialize methods for the Program struct [#1458](https://github.com/lambdaclass/cairo-vm/pull/1458) +* feat: Implement the Serialize and Deserialize methods for the Program struct [#1458](https://github.com/starkware-libs/cairo-vm/pull/1458) -* feat: Use only program builtins when running cairo 1 programs [#1457](https://github.com/lambdaclass/cairo-vm/pull/1457) +* feat: Use only program builtins when running cairo 1 programs [#1457](https://github.com/starkware-libs/cairo-vm/pull/1457) -* feat: Use latest cairo-vm version in cairo1-run crate [#1455](https://github.com/lambdaclass/cairo-vm/pull/1455) +* feat: Use latest cairo-vm version in cairo1-run crate [#1455](https://github.com/starkware-libs/cairo-vm/pull/1455) -* feat: Implement a CLI to run cairo 1 programs [#1370](https://github.com/lambdaclass/cairo-vm/pull/1370) +* feat: Implement a CLI to run cairo 1 programs [#1370](https://github.com/starkware-libs/cairo-vm/pull/1370) -* fix: Fix string code of `BLAKE2S_ADD_UINT256` hint [#1454](https://github.com/lambdaclass/cairo-vm/pull/1454) +* fix: Fix string code of `BLAKE2S_ADD_UINT256` hint [#1454](https://github.com/starkware-libs/cairo-vm/pull/1454) #### [0.9.0] - 2023-10-03 -* fix: Default to empty attributes vector when the field is missing from the program JSON [#1450](https://github.com/lambdaclass/cairo-vm/pull/1450) +* fix: Default to empty attributes vector when the field is missing from the program JSON [#1450](https://github.com/starkware-libs/cairo-vm/pull/1450) -* fix: Change serialization of CairoPieMemory to match Python's binary format [#1447](https://github.com/lambdaclass/cairo-vm/pull/1447) +* fix: Change serialization of CairoPieMemory to match Python's binary format [#1447](https://github.com/starkware-libs/cairo-vm/pull/1447) -* fix: Remove Deserialize derive from CairoPie and fix Serialize implementation to match Python's [#1444](https://github.com/lambdaclass/cairo-vm/pull/1444) +* fix: Remove Deserialize derive from CairoPie and fix Serialize implementation to match Python's [#1444](https://github.com/starkware-libs/cairo-vm/pull/1444) -* fix: ec_recover hints no longer panic when divisor is 0 [#1433](https://github.com/lambdaclass/cairo-vm/pull/1433) +* fix: ec_recover hints no longer panic when divisor is 0 [#1433](https://github.com/starkware-libs/cairo-vm/pull/1433) -* feat: Implement the Serialize and Deserialize traits for the CairoPie struct [#1438](https://github.com/lambdaclass/cairo-vm/pull/1438) +* feat: Implement the Serialize and Deserialize traits for the CairoPie struct [#1438](https://github.com/starkware-libs/cairo-vm/pull/1438) -* fix: Using UINT256_HINT no longer panics when b is greater than 2^256 [#1430](https://github.com/lambdaclass/cairo-vm/pull/1430) +* fix: Using UINT256_HINT no longer panics when b is greater than 2^256 [#1430](https://github.com/starkware-libs/cairo-vm/pull/1430) -* feat: Added a differential fuzzer for programs with whitelisted hints [#1358](https://github.com/lambdaclass/cairo-vm/pull/1358) +* feat: Added a differential fuzzer for programs with whitelisted hints [#1358](https://github.com/starkware-libs/cairo-vm/pull/1358) -* fix(breaking): Change return type of `get_execution_resources` to `RunnerError` [#1398](https://github.com/lambdaclass/cairo-vm/pull/1398) +* fix(breaking): Change return type of `get_execution_resources` to `RunnerError` [#1398](https://github.com/starkware-libs/cairo-vm/pull/1398) -* Don't build wasm-demo in `build` target + add ci job to run the wasm demo [#1393](https://github.com/lambdaclass/cairo-vm/pull/1393) +* Don't build wasm-demo in `build` target + add ci job to run the wasm demo [#1393](https://github.com/starkware-libs/cairo-vm/pull/1393) * Adds default-members to workspace * Crate `examples/wasm-demo` is no longer built during `make build` @@ -937,19 +937,19 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * Removes Makefile targets `examples/wasm-demo/src/array_sum.json` & `example_program` * `wasm-demo` now uses the compiled cairo file in `cairo_programs` directory instead of its own copy -* feat: Add `Program::new_for_proof` [#1396](https://github.com/lambdaclass/cairo-vm/pull/1396) +* feat: Add `Program::new_for_proof` [#1396](https://github.com/starkware-libs/cairo-vm/pull/1396) #### [0.8.7] - 2023-8-28 -* Add REDUCE_V2 hint [#1420](https://github.com/lambdaclass/cairo-vm/pull/1420): +* Add REDUCE_V2 hint [#1420](https://github.com/starkware-libs/cairo-vm/pull/1420): * Implement REDUCE_V2 hint * Rename hint REDUCE -> REDUCE_V1 * BREAKING: Add `disable_trace_padding` to `CairoRunConfig`[#1233](https://github.com/lambdaclass/cairo-rs/pull/1233) -* feat: Implement `CairoRunner.get_cairo_pie`[#1375](https://github.com/lambdaclass/cairo-vm/pull/1375) +* feat: Implement `CairoRunner.get_cairo_pie`[#1375](https://github.com/starkware-libs/cairo-vm/pull/1375) -* fix: Compare air_public_inputs against python vm + Fix how public memory is built [#391](https://github.com/lambdaclass/cairo-vm/pull/1391) +* fix: Compare air_public_inputs against python vm + Fix how public memory is built [#391](https://github.com/starkware-libs/cairo-vm/pull/1391) BugFixes: @@ -964,11 +964,11 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. Overall these changes make the the air public input file (obtained through the --air_public_input flag) equivalent to the ones outputted by the cairo-lang version -* fix: Fix `SPLIT_FELT` hint [#1387](https://github.com/lambdaclass/cairo-vm/pull/1387) +* fix: Fix `SPLIT_FELT` hint [#1387](https://github.com/starkware-libs/cairo-vm/pull/1387) -* refactor: combine `Program.hints` and `Program.hints_ranges` into custom collection [#1366](https://github.com/lambdaclass/cairo-vm/pull/1366) +* refactor: combine `Program.hints` and `Program.hints_ranges` into custom collection [#1366](https://github.com/starkware-libs/cairo-vm/pull/1366) -* fix: Fix div_mod [#1383](https://github.com/lambdaclass/cairo-vm/pull/1383) +* fix: Fix div_mod [#1383](https://github.com/starkware-libs/cairo-vm/pull/1383) * Fixes `div_mod` function so that it behaves like the cairo-lang version * Various functions in the `math_utils` crate can now return a `MathError` : `div_mod`, `ec_add`, `line_slope`, `ec_double`, `ec_double_slope`. @@ -976,13 +976,13 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. #### [0.8.6] - 2023-8-11 -* fix: Handle error in hint `UINT256_MUL_DIV_MOD` when divides by zero [#1367](https://github.com/lambdaclass/cairo-vm/pull/1367) +* fix: Handle error in hint `UINT256_MUL_DIV_MOD` when divides by zero [#1367](https://github.com/starkware-libs/cairo-vm/pull/1367) * Add HintError::SyscallError and VmErrors::HINT_ERROR_STR constant [#1357](https://github.com/lambdaclass/cairo-rs/pull/1357) -* feat: make *arbitrary* feature also enable a `proptest::arbitrary::Arbitrary` implementation for `Felt252` [#1355](https://github.com/lambdaclass/cairo-vm/pull/1355) +* feat: make *arbitrary* feature also enable a `proptest::arbitrary::Arbitrary` implementation for `Felt252` [#1355](https://github.com/starkware-libs/cairo-vm/pull/1355) -* fix: correctly display invalid signature error message [#1361](https://github.com/lambdaclass/cairo-vm/pull/1361) +* fix: correctly display invalid signature error message [#1361](https://github.com/starkware-libs/cairo-vm/pull/1361) #### [0.8.5] - 2023-7-31 @@ -992,33 +992,33 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * fix: CLI errors bad formatting and handling -* perf: replace insertion with bit-setting in validated addresses [#1208](https://github.com/lambdaclass/cairo-vm/pull/1208) +* perf: replace insertion with bit-setting in validated addresses [#1208](https://github.com/starkware-libs/cairo-vm/pull/1208) -* fix: return error when a parsed hint's PC is invalid [#1340](https://github.com/lambdaclass/cairo-vm/pull/1340) +* fix: return error when a parsed hint's PC is invalid [#1340](https://github.com/starkware-libs/cairo-vm/pull/1340) -* chore(deps): bump _cairo-lang_ dependencies to v2.1.0-rc2 [#1345](https://github.com/lambdaclass/cairo-vm/pull/1345) +* chore(deps): bump _cairo-lang_ dependencies to v2.1.0-rc2 [#1345](https://github.com/starkware-libs/cairo-vm/pull/1345) -* chore(examples): remove _wee_alloc_ dependency from _wasm-demo_ example and _ensure-no_std_ dummy crate [#1337](https://github.com/lambdaclass/cairo-vm/pull/1337) +* chore(examples): remove _wee_alloc_ dependency from _wasm-demo_ example and _ensure-no_std_ dummy crate [#1337](https://github.com/starkware-libs/cairo-vm/pull/1337) -* docs: improved crate documentation [#1334](https://github.com/lambdaclass/cairo-vm/pull/1334) +* docs: improved crate documentation [#1334](https://github.com/starkware-libs/cairo-vm/pull/1334) -* chore!: made `deserialize_utils` module private [#1334](https://github.com/lambdaclass/cairo-vm/pull/1334) +* chore!: made `deserialize_utils` module private [#1334](https://github.com/starkware-libs/cairo-vm/pull/1334) BREAKING: * `deserialize_utils` is no longer exported * functions `maybe_add_padding`, `parse_value`, and `take_until_unbalanced` are no longer exported * `ReferenceParseError` is no more -* perf: changed `ok_or` usage for `ok_or_else` in expensive cases [#1332](https://github.com/lambdaclass/cairo-vm/pull/1332) +* perf: changed `ok_or` usage for `ok_or_else` in expensive cases [#1332](https://github.com/starkware-libs/cairo-vm/pull/1332) -* feat: updated the old WASM example and moved it to [`examples/wasm-demo`](examples/wasm-demo/) [#1315](https://github.com/lambdaclass/cairo-vm/pull/1315) +* feat: updated the old WASM example and moved it to [`examples/wasm-demo`](examples/wasm-demo/) [#1315](https://github.com/starkware-libs/cairo-vm/pull/1315) -* feat(fuzzing): add `arbitrary` feature to enable arbitrary derive in `Program` and `CairoRunConfig` [#1306](https://github.com/lambdaclass/cairo-vm/pull/1306) [#1330](https://github.com/lambdaclass/cairo-vm/pull/1330) +* feat(fuzzing): add `arbitrary` feature to enable arbitrary derive in `Program` and `CairoRunConfig` [#1306](https://github.com/starkware-libs/cairo-vm/pull/1306) [#1330](https://github.com/starkware-libs/cairo-vm/pull/1330) -* perf: remove pointless iterator from rc limits tracking [#1316](https://github.com/lambdaclass/cairo-vm/pull/1316) +* perf: remove pointless iterator from rc limits tracking [#1316](https://github.com/starkware-libs/cairo-vm/pull/1316) -* feat(felt): add `from_bytes_le` and `from_bytes_ne` methods to `Felt252` [#1326](https://github.com/lambdaclass/cairo-vm/pull/1326) +* feat(felt): add `from_bytes_le` and `from_bytes_ne` methods to `Felt252` [#1326](https://github.com/starkware-libs/cairo-vm/pull/1326) -* perf: change `Program::shared_program_data::hints` from `HashMap>>` to `Vec>` and refer to them as ranges stored in a `Vec<_>` indexed by PC with run time reductions of up to 12% [#931](https://github.com/lambdaclass/cairo-vm/pull/931) +* perf: change `Program::shared_program_data::hints` from `HashMap>>` to `Vec>` and refer to them as ranges stored in a `Vec<_>` indexed by PC with run time reductions of up to 12% [#931](https://github.com/starkware-libs/cairo-vm/pull/931) BREAKING: * `get_hint_dictionary(&self, &[HintReference], &mut dyn HintProcessor) -> Result>, VirtualMachineError>` -> `get_hint_data(self, &[HintReference], &mut dyn HintProcessor) -> Result, VirtualMachineError>` @@ -1032,49 +1032,49 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. #### [0.8.2] - 2023-7-10 -* chore: update dependencies, particularly lamdaworks 0.1.2 -> 0.1.3 [#1323](https://github.com/lambdaclass/cairo-vm/pull/1323) +* chore: update dependencies, particularly lamdaworks 0.1.2 -> 0.1.3 [#1323](https://github.com/starkware-libs/cairo-vm/pull/1323) -* fix: fix `UINT256_MUL_DIV_MOD` hint [#1320](https://github.com/lambdaclass/cairo-vm/pull/1320) +* fix: fix `UINT256_MUL_DIV_MOD` hint [#1320](https://github.com/starkware-libs/cairo-vm/pull/1320) -* feat: add dependency installation script `install.sh` [#1298](https://github.com/lambdaclass/cairo-vm/pull/1298) +* feat: add dependency installation script `install.sh` [#1298](https://github.com/starkware-libs/cairo-vm/pull/1298) -* fix: specify resolver version 2 in the virtual workspace's manifest [#1311](https://github.com/lambdaclass/cairo-vm/pull/1311) +* fix: specify resolver version 2 in the virtual workspace's manifest [#1311](https://github.com/starkware-libs/cairo-vm/pull/1311) -* feat: add `lambdaworks-felt` feature to `cairo-vm-cli` [#1308](https://github.com/lambdaclass/cairo-vm/pull/1308) +* feat: add `lambdaworks-felt` feature to `cairo-vm-cli` [#1308](https://github.com/starkware-libs/cairo-vm/pull/1308) -* chore: update dependencies, particularly clap 3.2 -> 4.3 [#1309](https://github.com/lambdaclass/cairo-vm/pull/1309) +* chore: update dependencies, particularly clap 3.2 -> 4.3 [#1309](https://github.com/starkware-libs/cairo-vm/pull/1309) * this removes dependency on _atty_, that's no longer mantained -* chore: remove unused dependencies [#1307](https://github.com/lambdaclass/cairo-vm/pull/1307) +* chore: remove unused dependencies [#1307](https://github.com/starkware-libs/cairo-vm/pull/1307) * rand_core * serde_bytes * rusty-hook (_dev-dependency_) -* chore: bump `cairo-lang-starknet` and `cairo-lang-casm` dependencies to 2.0.0 [#1313](https://github.com/lambdaclass/cairo-vm/pull/1313) +* chore: bump `cairo-lang-starknet` and `cairo-lang-casm` dependencies to 2.0.0 [#1313](https://github.com/starkware-libs/cairo-vm/pull/1313) #### [0.8.1] - 2023-6-29 -* chore: change mentions of *cairo-rs-py* to *cairo-vm-py* [#1296](https://github.com/lambdaclass/cairo-vm/pull/1296) +* chore: change mentions of *cairo-rs-py* to *cairo-vm-py* [#1296](https://github.com/starkware-libs/cairo-vm/pull/1296) -* rename github repo from https://github.com/lambdaclass/cairo-rs to https://github.com/lambdaclass/cairo-vm [#1289](https://github.com/lambdaclass/cairo-vm/pull/1289) +* rename github repo from https://github.com/lambdaclass/cairo-rs to https://github.com/starkware-libs/cairo-vm [#1289](https://github.com/starkware-libs/cairo-vm/pull/1289) -* fix(security): avoid OOM crashes when programs jump to very high invalid addresses [#1285](https://github.com/lambdaclass/cairo-vm/pull/1285) +* fix(security): avoid OOM crashes when programs jump to very high invalid addresses [#1285](https://github.com/starkware-libs/cairo-vm/pull/1285) -* fix: add `to_bytes_be` to the felt when `lambdaworks-felt` feature is active [#1290](https://github.com/lambdaclass/cairo-vm/pull/1290) +* fix: add `to_bytes_be` to the felt when `lambdaworks-felt` feature is active [#1290](https://github.com/starkware-libs/cairo-vm/pull/1290) -* chore: mark `modpow` and `to_signed_bytes_le` as *deprecated* [#1290](https://github.com/lambdaclass/cairo-vm/pull/1290) +* chore: mark `modpow` and `to_signed_bytes_le` as *deprecated* [#1290](https://github.com/starkware-libs/cairo-vm/pull/1290) -* fix: bump *lambdaworks-math* to latest version, that fixes no-std support [#1293](https://github.com/lambdaclass/cairo-vm/pull/1293) +* fix: bump *lambdaworks-math* to latest version, that fixes no-std support [#1293](https://github.com/starkware-libs/cairo-vm/pull/1293) * build: remove dependency to `thiserror` (use `thiserror-no-std/std` instead) -* chore: use LambdaWorks' implementation of bit operations for `Felt252` [#1291](https://github.com/lambdaclass/cairo-vm/pull/1291) +* chore: use LambdaWorks' implementation of bit operations for `Felt252` [#1291](https://github.com/starkware-libs/cairo-vm/pull/1291) -* update `cairo-lang-starknet` and `cairo-lang-casm` dependencies to v2.0.0-rc6 [#1299](https://github.com/lambdaclass/cairo-vm/pull/1299) +* update `cairo-lang-starknet` and `cairo-lang-casm` dependencies to v2.0.0-rc6 [#1299](https://github.com/starkware-libs/cairo-vm/pull/1299) #### [0.8.0] - 2023-6-26 -* feat: Add feature `lambdaworks-felt` to `felt` & `cairo-vm` crates [#1281](https://github.com/lambdaclass/cairo-vm/pull/1281) +* feat: Add feature `lambdaworks-felt` to `felt` & `cairo-vm` crates [#1281](https://github.com/starkware-libs/cairo-vm/pull/1281) Changes under this feature: * `Felt252` now uses *LambdaWorks*' `FieldElement` internally @@ -1082,7 +1082,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. #### [0.7.0] - 2023-6-26 -* BREAKING: Integrate `RunResources` logic into `HintProcessor` trait [#1274](https://github.com/lambdaclass/cairo-vm/pull/1274) +* BREAKING: Integrate `RunResources` logic into `HintProcessor` trait [#1274](https://github.com/starkware-libs/cairo-vm/pull/1274) * Rename trait `HintProcessor` to `HintProcessorLogic` * Add trait `ResourceTracker` * Trait `HintProcessor` is now `HintProcessor: HintProcessorLogic + ResourceTracker` @@ -1090,24 +1090,24 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * `HintProcessorLogic::execute_hint` no longer receives `run_resources: &mut RunResources` * Remove argument `run_resources: &mut RunResources` from `CairoRunner::run_until_pc` & `CairoRunner::run_from_entrypoint` -* build: remove unused implicit features from cairo-vm [#1266](https://github.com/lambdaclass/cairo-vm/pull/1266) +* build: remove unused implicit features from cairo-vm [#1266](https://github.com/starkware-libs/cairo-vm/pull/1266) #### [0.6.1] - 2023-6-23 -* fix: updated the `custom_hint_example` and added it to the workspace [#1258](https://github.com/lambdaclass/cairo-vm/pull/1258) +* fix: updated the `custom_hint_example` and added it to the workspace [#1258](https://github.com/starkware-libs/cairo-vm/pull/1258) -* Add path to cairo-vm README.md [#1276](https://github.com/lambdaclass/cairo-vm/pull/1276) +* Add path to cairo-vm README.md [#1276](https://github.com/starkware-libs/cairo-vm/pull/1276) -* fix: change error returned when subtracting two `MaybeRelocatable`s to better reflect the cause [#1271](https://github.com/lambdaclass/cairo-vm/pull/1271) +* fix: change error returned when subtracting two `MaybeRelocatable`s to better reflect the cause [#1271](https://github.com/starkware-libs/cairo-vm/pull/1271) -* fix: CLI error message when using --help [#1270](https://github.com/lambdaclass/cairo-vm/pull/1270) +* fix: CLI error message when using --help [#1270](https://github.com/starkware-libs/cairo-vm/pull/1270) #### [0.6.0] - 2023-6-18 -* fix: `dibit` hint no longer fails when called with an `m` of zero [#1247](https://github.com/lambdaclass/cairo-vm/pull/1247) +* fix: `dibit` hint no longer fails when called with an `m` of zero [#1247](https://github.com/starkware-libs/cairo-vm/pull/1247) -* fix(security): avoid denial of service on malicious input exploiting the scientific notation parser [#1239](https://github.com/lambdaclass/cairo-vm/pull/1239) +* fix(security): avoid denial of service on malicious input exploiting the scientific notation parser [#1239](https://github.com/starkware-libs/cairo-vm/pull/1239) * BREAKING: Change `RunResources` usage: * Modify field type `RunResources.n_steps: Option,` @@ -1118,83 +1118,83 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * VirtualMachine::Step: Add `&mut RunResources` as input * Trait HintProcessor::execute_hint: Add `&mut RunResources` as an input -* perf: accumulate `min` and `max` instruction offsets during run to speed up range check [#1080](https://github.com/lambdaclass/cairo-vm/pull/) +* perf: accumulate `min` and `max` instruction offsets during run to speed up range check [#1080](https://github.com/starkware-libs/cairo-vm/pull/) BREAKING: `Cairo_runner::get_perm_range_check_limits` no longer returns an error when called without trace enabled, as it no longer depends on it -* perf: process reference list on `Program` creation only [#1214](https://github.com/lambdaclass/cairo-vm/pull/1214) +* perf: process reference list on `Program` creation only [#1214](https://github.com/starkware-libs/cairo-vm/pull/1214) Also keep them in a `Vec<_>` instead of a `HashMap<_, _>` since it will be continuous anyway. BREAKING: * `HintProcessor::compile_hint` now receies a `&[HintReference]` rather than `&HashMap` * Public `CairoRunner::get_reference_list` has been removed * BREAKING: Add no_std compatibility to cairo-vm (cairo-1-hints feature still not supported) - * Move the vm to its own directory and crate, different from the workspace [#1215](https://github.com/lambdaclass/cairo-vm/pull/1215) + * Move the vm to its own directory and crate, different from the workspace [#1215](https://github.com/starkware-libs/cairo-vm/pull/1215) - * Add an `ensure_no_std` crate that the CI will use to check that new changes don't revert `no_std` support [#1215](https://github.com/lambdaclass/cairo-vm/pull/1215) [#1232](https://github.com/lambdaclass/cairo-vm/pull/1232) + * Add an `ensure_no_std` crate that the CI will use to check that new changes don't revert `no_std` support [#1215](https://github.com/starkware-libs/cairo-vm/pull/1215) [#1232](https://github.com/starkware-libs/cairo-vm/pull/1232) - * replace the use of `num-prime::is_prime` by a custom implementation, therefore restoring `no_std` compatibility [#1238](https://github.com/lambdaclass/cairo-vm/pull/1238) + * replace the use of `num-prime::is_prime` by a custom implementation, therefore restoring `no_std` compatibility [#1238](https://github.com/starkware-libs/cairo-vm/pull/1238) #### [0.5.2] - 2023-6-12 -* BREAKING: Compute `ExecutionResources.n_steps` without requiring trace [#1222](https://github.com/lambdaclass/cairo-vm/pull/1222) +* BREAKING: Compute `ExecutionResources.n_steps` without requiring trace [#1222](https://github.com/starkware-libs/cairo-vm/pull/1222) * `CairoRunner::get_execution_resources` return's `n_steps` field value is now set to `vm.current_step` instead of `0` if both `original_steps` and `trace` are set to `None` -* Add `RunResources::get_n_steps` method [#1225](https://github.com/lambdaclass/cairo-vm/pull/1225) +* Add `RunResources::get_n_steps` method [#1225](https://github.com/starkware-libs/cairo-vm/pull/1225) * refactor: simplify `mem_eq` -* fix: pin Cairo compiler version [#1220](https://github.com/lambdaclass/cairo-vm/pull/1220) +* fix: pin Cairo compiler version [#1220](https://github.com/starkware-libs/cairo-vm/pull/1220) * perf: make `inner_rc_bound` a constant, improving performance of the range-check builtin -* fix: substraction of `MaybeRelocatable` always behaves as signed [#1218](https://github.com/lambdaclass/cairo-vm/pull/1218) +* fix: substraction of `MaybeRelocatable` always behaves as signed [#1218](https://github.com/starkware-libs/cairo-vm/pull/1218) #### [0.5.1] - 2023-6-7 -* fix: fix overflow for `QUAD_BIT` and `DI_BIT` hints [#1209](https://github.com/lambdaclass/cairo-vm/pull/1209) - Fixes [#1205](https://github.com/lambdaclass/cairo-vm/issue/1205) +* fix: fix overflow for `QUAD_BIT` and `DI_BIT` hints [#1209](https://github.com/starkware-libs/cairo-vm/pull/1209) + Fixes [#1205](https://github.com/starkware-libs/cairo-vm/issue/1205) -* fix: fix hints `UINT256_UNSIGNED_DIV_REM` && `UINT256_EXPANDED_UNSIGNED_DIV_REM` [#1203](https://github.com/lambdaclass/cairo-vm/pull/1203) +* fix: fix hints `UINT256_UNSIGNED_DIV_REM` && `UINT256_EXPANDED_UNSIGNED_DIV_REM` [#1203](https://github.com/starkware-libs/cairo-vm/pull/1203) -* bugfix: fix deserialization of scientific notation with fractional values [#1202](https://github.com/lambdaclass/cairo-vm/pull/1202) +* bugfix: fix deserialization of scientific notation with fractional values [#1202](https://github.com/starkware-libs/cairo-vm/pull/1202) -* feat: implement `mem_eq` function to test for equality of two ranges in memory [#1198](https://github.com/lambdaclass/cairo-vm/pull/1198) +* feat: implement `mem_eq` function to test for equality of two ranges in memory [#1198](https://github.com/starkware-libs/cairo-vm/pull/1198) -* perf: use `mem_eq` in `set_add` [#1198](https://github.com/lambdaclass/cairo-vm/pull/1198) +* perf: use `mem_eq` in `set_add` [#1198](https://github.com/starkware-libs/cairo-vm/pull/1198) -* feat: wrap big variants of `HintError`, `VirtualMachineError`, `RunnerError`, `MemoryError`, `MathError`, `InsufficientAllocatedCellsError` in `Box` [#1193](https://github.com/lambdaclass/cairo-vm/pull/1193) +* feat: wrap big variants of `HintError`, `VirtualMachineError`, `RunnerError`, `MemoryError`, `MathError`, `InsufficientAllocatedCellsError` in `Box` [#1193](https://github.com/starkware-libs/cairo-vm/pull/1193) * BREAKING: all tuple variants of `HintError` with a single `Felt252` or multiple elements now receive a single `Box` -* Add `Program::builtins_len method` [#1194](https://github.com/lambdaclass/cairo-vm/pull/1194) +* Add `Program::builtins_len method` [#1194](https://github.com/starkware-libs/cairo-vm/pull/1194) -* fix: Handle the deserialization of serde_json::Number with scientific notation (e.g.: Number(1e27)) in felt_from_number function [#1188](https://github.com/lambdaclass/cairo-vm/pull/1188) +* fix: Handle the deserialization of serde_json::Number with scientific notation (e.g.: Number(1e27)) in felt_from_number function [#1188](https://github.com/starkware-libs/cairo-vm/pull/1188) -* feat: Add RunResources Struct [#1175](https://github.com/lambdaclass/cairo-vm/pull/1175) +* feat: Add RunResources Struct [#1175](https://github.com/starkware-libs/cairo-vm/pull/1175) * BREAKING: Modify `CairoRunner::run_until_pc` arity. Add `run_resources: &mut Option` input * BREAKING: Modify `CairoRunner::run_from_entrypoint` arity. Add `run_resources: &mut Option` input -* fix: Fix 'as_int' conversion usage in hints `ASSERT_250_BIT` & `SIGNED_DIV_REM` [#1191](https://github.com/lambdaclass/cairo-vm/pull/1191) +* fix: Fix 'as_int' conversion usage in hints `ASSERT_250_BIT` & `SIGNED_DIV_REM` [#1191](https://github.com/starkware-libs/cairo-vm/pull/1191) -* bugfix: Use cairo constants in `ASSERT_250_BIT` hint [#1187](https://github.com/lambdaclass/cairo-vm/pull/1187) +* bugfix: Use cairo constants in `ASSERT_250_BIT` hint [#1187](https://github.com/starkware-libs/cairo-vm/pull/1187) -* bugfix: Fix `EC_DOUBLE_ASSIGN_NEW_X_V2` hint not taking `SECP_P` value from the current execution scope [#1186](https://github.com/lambdaclass/cairo-vm/pull/1186) +* bugfix: Fix `EC_DOUBLE_ASSIGN_NEW_X_V2` hint not taking `SECP_P` value from the current execution scope [#1186](https://github.com/starkware-libs/cairo-vm/pull/1186) -* fix: Fix hint `BIGINT_PACK_DIV_MOD` [#1189](https://github.com/lambdaclass/cairo-vm/pull/1189) +* fix: Fix hint `BIGINT_PACK_DIV_MOD` [#1189](https://github.com/starkware-libs/cairo-vm/pull/1189) -* fix: Fix possible subtraction overflow in `QUAD_BIT` & `DI_BIT` hints [#1185](https://github.com/lambdaclass/cairo-vm/pull/1185) +* fix: Fix possible subtraction overflow in `QUAD_BIT` & `DI_BIT` hints [#1185](https://github.com/starkware-libs/cairo-vm/pull/1185) * These hints now return an error when ids.m equals zero -* fix: felt_from_number not properly returning parse errors [#1012](https://github.com/lambdaclass/cairo-vm/pull/1012) +* fix: felt_from_number not properly returning parse errors [#1012](https://github.com/starkware-libs/cairo-vm/pull/1012) -* fix: Fix felt sqrt and Signed impl [#1150](https://github.com/lambdaclass/cairo-vm/pull/1150) +* fix: Fix felt sqrt and Signed impl [#1150](https://github.com/starkware-libs/cairo-vm/pull/1150) * BREAKING: Fix `Felt252` methods `abs`, `signum`, `is_positive`, `is_negative` and `sqrt` * BREAKING: Remove function `math_utils::sqrt`(Now moved to `Felt252::sqrt`) -* feat: Add method `CairoRunner::initialize_function_runner_cairo_1` [#1151](https://github.com/lambdaclass/cairo-vm/pull/1151) +* feat: Add method `CairoRunner::initialize_function_runner_cairo_1` [#1151](https://github.com/starkware-libs/cairo-vm/pull/1151) * Add method `pub fn initialize_function_runner_cairo_1( &mut self, @@ -1208,8 +1208,8 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * Fix implementation of `InitSquashData` and `ShouldSkipSquashLoop` -* Add more hints to `Cairo1HintProcessor` [#1171](https://github.com/lambdaclass/cairo-vm/pull/1171) - [#1143](https://github.com/lambdaclass/cairo-vm/pull/1143) +* Add more hints to `Cairo1HintProcessor` [#1171](https://github.com/starkware-libs/cairo-vm/pull/1171) + [#1143](https://github.com/starkware-libs/cairo-vm/pull/1143) * `Cairo1HintProcessor` can now run the following hints: * Felt252DictEntryInit @@ -1222,12 +1222,12 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * FieldSqrt * Uint512DivMod -* Add some small considerations regarding Cairo 1 programs [#1144](https://github.com/lambdaclass/cairo-vm/pull/1144): +* Add some small considerations regarding Cairo 1 programs [#1144](https://github.com/starkware-libs/cairo-vm/pull/1144): * Ignore Casm and Sierra files * Add special flag to compile Cairo 1 programs -* Make the VM able to run `CasmContractClass` files under `cairo-1-hints` feature [#1098](https://github.com/lambdaclass/cairo-vm/pull/1098) +* Make the VM able to run `CasmContractClass` files under `cairo-1-hints` feature [#1098](https://github.com/starkware-libs/cairo-vm/pull/1098) * Implement `TryFrom for Program` * Add `Cairo1HintProcessor` @@ -1237,13 +1237,13 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. #### [0.4.0] - 2023-05-12 -* perf: insert elements from the tail in `load_data` so reallocation happens only once [#1117](https://github.com/lambdaclass/cairo-vm/pull/1117) +* perf: insert elements from the tail in `load_data` so reallocation happens only once [#1117](https://github.com/starkware-libs/cairo-vm/pull/1117) -* Add `CairoRunner::get_program method` [#1123](https://github.com/lambdaclass/cairo-vm/pull/1123) +* Add `CairoRunner::get_program method` [#1123](https://github.com/starkware-libs/cairo-vm/pull/1123) -* Use to_signed_felt as function for felt252 as BigInt within [-P/2, P/2] range and use to_bigint as function for representation as BigInt. [#1100](https://github.com/lambdaclass/cairo-vm/pull/1100) +* Use to_signed_felt as function for felt252 as BigInt within [-P/2, P/2] range and use to_bigint as function for representation as BigInt. [#1100](https://github.com/starkware-libs/cairo-vm/pull/1100) -* Implement hint on field_arithmetic lib [#1090](https://github.com/lambdaclass/cairo-vm/pull/1090) +* Implement hint on field_arithmetic lib [#1090](https://github.com/starkware-libs/cairo-vm/pull/1090) `BuiltinHintProcessor` now supports the following hints: @@ -1275,7 +1275,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Add missing hint on cairo_secp lib [#1089](https://github.com/lambdaclass/cairo-vm/pull/1089): +* Add missing hint on cairo_secp lib [#1089](https://github.com/starkware-libs/cairo-vm/pull/1089): `BuiltinHintProcessor` now supports the following hint: ```python @@ -1290,7 +1290,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. value = new_x = (pow(slope, 2, SECP_P) - x0 - x1) % SECP_P ``` -* Add missing hint on vrf.json whitelist [#1055](https://github.com/lambdaclass/cairo-vm/pull/1055): +* Add missing hint on vrf.json whitelist [#1055](https://github.com/starkware-libs/cairo-vm/pull/1055): `BuiltinHintProcessor` now supports the following hint: @@ -1310,7 +1310,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hint variant for finalize_blake2s[#1072](https://github.com/lambdaclass/cairo-vm/pull/1072) +* Implement hint variant for finalize_blake2s[#1072](https://github.com/starkware-libs/cairo-vm/pull/1072) `BuiltinHintProcessor` now supports the following hint: @@ -1339,7 +1339,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement fast_ec_add hint variant [#1087](https://github.com/lambdaclass/cairo-vm/pull/1087) +* Implement fast_ec_add hint variant [#1087](https://github.com/starkware-libs/cairo-vm/pull/1087) `BuiltinHintProcessor` now supports the following hint: @@ -1356,7 +1356,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* feat(hints): Add alternative string for hint IS_ZERO_PACK_EXTERNAL_SECP [#1082](https://github.com/lambdaclass/cairo-vm/pull/1082) +* feat(hints): Add alternative string for hint IS_ZERO_PACK_EXTERNAL_SECP [#1082](https://github.com/starkware-libs/cairo-vm/pull/1082) `BuiltinHintProcessor` now supports the following hint: @@ -1367,7 +1367,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Add alternative hint code for ec_double hint [#1083](https://github.com/lambdaclass/cairo-vm/pull/1083) +* Add alternative hint code for ec_double hint [#1083](https://github.com/starkware-libs/cairo-vm/pull/1083) `BuiltinHintProcessor` now supports the following hint: @@ -1383,21 +1383,21 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* fix(security)!: avoid DoS on malicious insertion to memory [#1099](https://github.com/lambdaclass/cairo-vm/pull/1099) +* fix(security)!: avoid DoS on malicious insertion to memory [#1099](https://github.com/starkware-libs/cairo-vm/pull/1099) * A program could crash the library by attempting to insert a value at an address with a big offset; fixed by trying to reserve to check for allocation failure * A program could crash the program by exploiting an integer overflow when attempting to insert a value at an address with offset `usize::MAX` BREAKING: added a new error variant `MemoryError::VecCapacityExceeded` -* perf: specialize addition for `u64` and `Felt252` [#932](https://github.com/lambdaclass/cairo-vm/pull/932) +* perf: specialize addition for `u64` and `Felt252` [#932](https://github.com/starkware-libs/cairo-vm/pull/932) * Avoids the creation of a new `Felt252` instance for additions with a very restricted valid range * This impacts specially the addition of `Relocatable` with `Felt252` values in `update_pc`, which take a significant amount of time in some benchmarks -* fix(starknet-crypto): bump version to `0.5.0` [#1088](https://github.com/lambdaclass/cairo-vm/pull/1088) +* fix(starknet-crypto): bump version to `0.5.0` [#1088](https://github.com/starkware-libs/cairo-vm/pull/1088) * This includes the fix for a `panic!` in `ecdsa::verify`. See: [#365](https://github.com/xJonathanLEI/starknet-rs/issues/365) and [#366](https://github.com/xJonathanLEI/starknet-rs/pulls/366) -* feat(hints): Add alternative string for hint IS_ZERO_PACK [#1081](https://github.com/lambdaclass/cairo-vm/pull/1081) +* feat(hints): Add alternative string for hint IS_ZERO_PACK [#1081](https://github.com/starkware-libs/cairo-vm/pull/1081) `BuiltinHintProcessor` now supports the following hint: @@ -1407,7 +1407,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. x = pack(ids.x, PRIME) % SECP_P %} -* Add missing hints `NewHint#55`, `NewHint#56`, and `NewHint#57` [#1077](https://github.com/lambdaclass/cairo-vm/issues/1077) +* Add missing hints `NewHint#55`, `NewHint#56`, and `NewHint#57` [#1077](https://github.com/starkware-libs/cairo-vm/issues/1077) `BuiltinHintProcessor` now supports the following hints: @@ -1432,7 +1432,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. value = x_inv = div_mod(1, x, SECP_P) ``` -* Implement hint for `starkware.cairo.common.cairo_keccak.keccak._copy_inputs` as described by whitelist `starknet/security/whitelists/cairo_keccak.json` [#1058](https://github.com/lambdaclass/cairo-vm/pull/1058) +* Implement hint for `starkware.cairo.common.cairo_keccak.keccak._copy_inputs` as described by whitelist `starknet/security/whitelists/cairo_keccak.json` [#1058](https://github.com/starkware-libs/cairo-vm/pull/1058) `BuiltinHintProcessor` now supports the following hint: @@ -1440,10 +1440,10 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %{ ids.full_word = int(ids.n_bytes >= 8) %} ``` -* perf: cache decoded instructions [#944](https://github.com/lambdaclass/cairo-vm/pull/944) +* perf: cache decoded instructions [#944](https://github.com/starkware-libs/cairo-vm/pull/944) * Creates a new cache field in `VirtualMachine` that stores the `Instruction` instances as they get decoded from memory, significantly reducing decoding overhead, with gains up to 9% in runtime according to benchmarks in the performance server -* Add alternative hint code for nondet_bigint3 hint [#1071](https://github.com/lambdaclass/cairo-vm/pull/1071) +* Add alternative hint code for nondet_bigint3 hint [#1071](https://github.com/starkware-libs/cairo-vm/pull/1071) `BuiltinHintProcessor` now supports the following hint: @@ -1454,7 +1454,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Add missing hint on vrf.json lib [#1052](https://github.com/lambdaclass/cairo-vm/pull/1052): +* Add missing hint on vrf.json lib [#1052](https://github.com/starkware-libs/cairo-vm/pull/1052): `BuiltinHintProcessor` now supports the following hint: @@ -1472,7 +1472,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hint for cairo_sha256_arbitrary_input_length whitelist [#1091](https://github.com/lambdaclass/cairo-vm/pull/1091) +* Implement hint for cairo_sha256_arbitrary_input_length whitelist [#1091](https://github.com/starkware-libs/cairo-vm/pull/1091) `BuiltinHintProcessor` now supports the following hint: @@ -1492,7 +1492,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Add missing hint on vrf.json lib [#1053](https://github.com/lambdaclass/cairo-vm/pull/1053): +* Add missing hint on vrf.json lib [#1053](https://github.com/starkware-libs/cairo-vm/pull/1053): `BuiltinHintProcessor` now supports the following hint: @@ -1509,7 +1509,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hint on 0.6.0.json whitelist [#1044](https://github.com/lambdaclass/cairo-vm/pull/1044): +* Implement hint on 0.6.0.json whitelist [#1044](https://github.com/starkware-libs/cairo-vm/pull/1044): `BuiltinHintProcessor` now supports the following hints: @@ -1520,7 +1520,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hint for `starkware.cairo.common.cairo_keccak.keccak._block_permutation` as described by whitelist `starknet/security/whitelists/cairo_keccak.json` [#1046](https://github.com/lambdaclass/cairo-vm/pull/1046) +* Implement hint for `starkware.cairo.common.cairo_keccak.keccak._block_permutation` as described by whitelist `starknet/security/whitelists/cairo_keccak.json` [#1046](https://github.com/starkware-libs/cairo-vm/pull/1046) `BuiltinHintProcessor` now supports the following hint: @@ -1535,7 +1535,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hint on cairo_blake2s whitelist [#1040](https://github.com/lambdaclass/cairo-vm/pull/1040) +* Implement hint on cairo_blake2s whitelist [#1040](https://github.com/starkware-libs/cairo-vm/pull/1040) `BuiltinHintProcessor` now supports the following hint: @@ -1559,7 +1559,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hint on cairo_blake2s whitelist [#1039](https://github.com/lambdaclass/cairo-vm/pull/1039) +* Implement hint on cairo_blake2s whitelist [#1039](https://github.com/starkware-libs/cairo-vm/pull/1039) `BuiltinHintProcessor` now supports the following hint: @@ -1588,9 +1588,9 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. segments.write_arg(ids.blake2s_ptr_end, padding) %} -* Add `Program::iter_identifiers(&self) -> Iterator` to get an iterator over the program's identifiers [#1079](https://github.com/lambdaclass/cairo-vm/pull/1079) +* Add `Program::iter_identifiers(&self) -> Iterator` to get an iterator over the program's identifiers [#1079](https://github.com/starkware-libs/cairo-vm/pull/1079) -* Implement hint on `assert_le_felt` for versions 0.6.0 and 0.8.2 [#1047](https://github.com/lambdaclass/cairo-vm/pull/1047): +* Implement hint on `assert_le_felt` for versions 0.6.0 and 0.8.2 [#1047](https://github.com/starkware-libs/cairo-vm/pull/1047): `BuiltinHintProcessor` now supports the following hints: @@ -1622,7 +1622,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ``` -* Add missing hints on whitelist [#1073](https://github.com/lambdaclass/cairo-vm/pull/1073): +* Add missing hints on whitelist [#1073](https://github.com/starkware-libs/cairo-vm/pull/1073): `BuiltinHintProcessor` now supports the following hints: @@ -1639,7 +1639,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.is_small = 1 if ids.addr < ADDR_BOUND else 0 ``` -* Implement hint on ec_recover.json whitelist [#1038](https://github.com/lambdaclass/cairo-vm/pull/1038): +* Implement hint on ec_recover.json whitelist [#1038](https://github.com/starkware-libs/cairo-vm/pull/1038): `BuiltinHintProcessor` now supports the following hint: @@ -1649,7 +1649,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hint on ec_recover.json whitelist [#1037](https://github.com/lambdaclass/cairo-vm/pull/1037): +* Implement hint on ec_recover.json whitelist [#1037](https://github.com/starkware-libs/cairo-vm/pull/1037): `BuiltinHintProcessor` now supports the following hint: @@ -1668,7 +1668,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hint for `starkware.cairo.common.cairo_keccak.keccak.finalize_keccak` as described by whitelist `starknet/security/whitelists/cairo_keccak.json` [#1041](https://github.com/lambdaclass/cairo-vm/pull/1041) +* Implement hint for `starkware.cairo.common.cairo_keccak.keccak.finalize_keccak` as described by whitelist `starknet/security/whitelists/cairo_keccak.json` [#1041](https://github.com/starkware-libs/cairo-vm/pull/1041) `BuiltinHintProcessor` now supports the following hint: @@ -1685,7 +1685,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hint on ec_recover.json whitelist [#1036](https://github.com/lambdaclass/cairo-vm/pull/1036): +* Implement hint on ec_recover.json whitelist [#1036](https://github.com/starkware-libs/cairo-vm/pull/1036): `BuiltinHintProcessor` now supports the following hint: @@ -1703,7 +1703,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ``` -* Add missing hint on vrf.json lib [#1054](https://github.com/lambdaclass/cairo-vm/pull/1054): +* Add missing hint on vrf.json lib [#1054](https://github.com/starkware-libs/cairo-vm/pull/1054): `BuiltinHintProcessor` now supports the following hint: @@ -1716,7 +1716,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. value = (-y) % SECP_P ``` -* Implement hint on ec_recover.json whitelist [#1032](https://github.com/lambdaclass/cairo-vm/pull/1032): +* Implement hint on ec_recover.json whitelist [#1032](https://github.com/starkware-libs/cairo-vm/pull/1032): `BuiltinHintProcessor` now supports the following hint: @@ -1732,7 +1732,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Implement hints on field_arithmetic lib (Part 2) [#1004](https://github.com/lambdaclass/cairo-vm/pull/1004) +* Implement hints on field_arithmetic lib (Part 2) [#1004](https://github.com/starkware-libs/cairo-vm/pull/1004) `BuiltinHintProcessor` now supports the following hint: @@ -1768,10 +1768,10 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Optimizations for hash builtin [#1029](https://github.com/lambdaclass/cairo-vm/pull/1029): +* Optimizations for hash builtin [#1029](https://github.com/starkware-libs/cairo-vm/pull/1029): * Track the verified addresses by offset in a `Vec` rather than storing the address in a `Vec` -* Add missing hint on vrf.json whitelist [#1056](https://github.com/lambdaclass/cairo-vm/pull/1056): +* Add missing hint on vrf.json whitelist [#1056](https://github.com/starkware-libs/cairo-vm/pull/1056): `BuiltinHintProcessor` now supports the following hint: @@ -1788,7 +1788,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Add missing hint on vrf.json whitelist [#1035](https://github.com/lambdaclass/cairo-vm/pull/1035): +* Add missing hint on vrf.json whitelist [#1035](https://github.com/starkware-libs/cairo-vm/pull/1035): `BuiltinHintProcessor` now supports the following hint: @@ -1806,7 +1806,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Add missing hint on vrf.json whitelist [#1035](https://github.com/lambdaclass/cairo-vm/pull/1035): +* Add missing hint on vrf.json whitelist [#1035](https://github.com/starkware-libs/cairo-vm/pull/1035): `BuiltinHintProcessor` now supports the following hint: @@ -1821,7 +1821,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Add missing hint on vrf.json whitelist [#1000](https://github.com/lambdaclass/cairo-vm/pull/1000): +* Add missing hint on vrf.json whitelist [#1000](https://github.com/starkware-libs/cairo-vm/pull/1000): `BuiltinHintProcessor` now supports the following hint: @@ -1840,14 +1840,14 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.x_inverse_mod_p.high = x_inverse_mod_p_split[1] ``` -* BREAKING CHANGE: Fix `CairoRunner::get_memory_holes` [#1027](https://github.com/lambdaclass/cairo-vm/pull/1027): +* BREAKING CHANGE: Fix `CairoRunner::get_memory_holes` [#1027](https://github.com/starkware-libs/cairo-vm/pull/1027): * Skip builtin segements when counting memory holes * Check amount of memory holes for all tests in cairo_run_test * Remove duplicated tests in cairo_run_test * BREAKING CHANGE: `MemorySegmentManager.get_memory_holes` now also receives the amount of builtins in the vm. Signature is now `pub fn get_memory_holes(&self, builtin_count: usize) -> Result` -* Add missing hints on cairo_secp lib [#1026](https://github.com/lambdaclass/cairo-vm/pull/1026): +* Add missing hints on cairo_secp lib [#1026](https://github.com/starkware-libs/cairo-vm/pull/1026): `BuiltinHintProcessor` now supports the following hints: @@ -1860,7 +1860,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. from starkware.cairo.common.cairo_secp.secp256r1_utils import SECP256R1_N as N ``` -* Add missing hint on vrf.json lib [#1043](https://github.com/lambdaclass/cairo-vm/pull/1043): +* Add missing hint on vrf.json lib [#1043](https://github.com/starkware-libs/cairo-vm/pull/1043): `BuiltinHintProcessor` now supports the following hint: @@ -1888,7 +1888,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.b_inverse_mod_p.high = b_inverse_mod_p_split[1] ``` -* Add missing hints `NewHint#35` and `NewHint#36` [#975](https://github.com/lambdaclass/cairo-vm/issues/975) +* Add missing hints `NewHint#35` and `NewHint#36` [#975](https://github.com/starkware-libs/cairo-vm/issues/975) `BuiltinHintProcessor` now supports the following hint: @@ -1910,7 +1910,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.flag = 1 if k > 0 else 0 ``` -* Add missing hint on cairo_secp lib [#1057](https://github.com/lambdaclass/cairo-vm/pull/1057): +* Add missing hint on cairo_secp lib [#1057](https://github.com/starkware-libs/cairo-vm/pull/1057): `BuiltinHintProcessor` now supports the following hint: @@ -1924,7 +1924,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. value = slope = ec_double_slope(point=(x, y), alpha=ALPHA, p=SECP_P) ``` -* Add missing hint on uint256_improvements lib [#1025](https://github.com/lambdaclass/cairo-vm/pull/1025): +* Add missing hint on uint256_improvements lib [#1025](https://github.com/starkware-libs/cairo-vm/pull/1025): `BuiltinHintProcessor` now supports the following hint: @@ -1936,7 +1936,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.root = root ``` -* Add missing hint on vrf.json lib [#1045](https://github.com/lambdaclass/cairo-vm/pull/1045): +* Add missing hint on vrf.json lib [#1045](https://github.com/starkware-libs/cairo-vm/pull/1045): `BuiltinHintProcessor` now supports the following hint: @@ -1978,7 +1978,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.sqrt_gx.high = split_root_gx[1] ``` -* Add missing hint on uint256_improvements lib [#1024](https://github.com/lambdaclass/cairo-vm/pull/1024): +* Add missing hint on uint256_improvements lib [#1024](https://github.com/starkware-libs/cairo-vm/pull/1024): `BuiltinHintProcessor` now supports the following hint: @@ -1987,12 +1987,12 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.carry = 1 if res >= ids.SHIFT else 0 ``` -* BREAKING CHANGE: move `Program::identifiers` to `SharedProgramData::identifiers` [#1023](https://github.com/lambdaclass/cairo-vm/pull/1023) +* BREAKING CHANGE: move `Program::identifiers` to `SharedProgramData::identifiers` [#1023](https://github.com/starkware-libs/cairo-vm/pull/1023) * Optimizes `CairoRunner::new`, needed for sequencers and other workflows reusing the same `Program` instance across `CairoRunner`s * Breaking change: make all fields in `Program` and `SharedProgramData` `pub(crate)`, since we break by moving the field let's make it the last break for this struct * Add `Program::get_identifier(&self, id: &str) -> &Identifier` to get a single identifier by name -* Implement hints on field_arithmetic lib[#985](https://github.com/lambdaclass/cairo-vm/pull/983) +* Implement hints on field_arithmetic lib[#985](https://github.com/starkware-libs/cairo-vm/pull/983) `BuiltinHintProcessor` now supports the following hint: @@ -2044,7 +2044,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. %} ``` -* Add missing hint on vrf.json lib [#1050](https://github.com/lambdaclass/cairo-vm/pull/1050): +* Add missing hint on vrf.json lib [#1050](https://github.com/starkware-libs/cairo-vm/pull/1050): `BuiltinHintProcessor` now supports the following hint: @@ -2053,7 +2053,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.carry_low = 1 if sum_low >= ids.SHIFT else 0 ``` -* Add missing hint on uint256_improvements lib [#1016](https://github.com/lambdaclass/cairo-vm/pull/1016): +* Add missing hint on uint256_improvements lib [#1016](https://github.com/starkware-libs/cairo-vm/pull/1016): `BuiltinHintProcessor` now supports the following hint: @@ -2077,7 +2077,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.res.high = res_split[1] ``` -* Implement hint on vrf.json lib [#1049](https://github.com/lambdaclass/cairo-vm/pull/1049) +* Implement hint on vrf.json lib [#1049](https://github.com/starkware-libs/cairo-vm/pull/1049) `BuiltinHintProcessor` now supports the following hint: @@ -2119,7 +2119,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. _Note: this hint is similar to the one in #983, but with some trailing whitespace removed_ -* Add missing hint on vrf.json whitelist [#1030](https://github.com/lambdaclass/cairo-vm/pull/1030): +* Add missing hint on vrf.json whitelist [#1030](https://github.com/starkware-libs/cairo-vm/pull/1030): `BuiltinHintProcessor` now supports the following hint: @@ -2156,9 +2156,9 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.remainder.high = remainder_split[1] ``` -* Add method `Program::data_len(&self) -> usize` to get the number of data cells in a given program [#1022](https://github.com/lambdaclass/cairo-vm/pull/1022) +* Add method `Program::data_len(&self) -> usize` to get the number of data cells in a given program [#1022](https://github.com/starkware-libs/cairo-vm/pull/1022) -* Add missing hint on uint256_improvements lib [#1013](https://github.com/lambdaclass/cairo-vm/pull/1013): +* Add missing hint on uint256_improvements lib [#1013](https://github.com/starkware-libs/cairo-vm/pull/1013): `BuiltinHintProcessor` now supports the following hint: @@ -2173,7 +2173,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.remainder.high = remainder >> 128 ``` -* Add missing hint on cairo_secp lib [#1010](https://github.com/lambdaclass/cairo-vm/pull/1010): +* Add missing hint on cairo_secp lib [#1010](https://github.com/starkware-libs/cairo-vm/pull/1010): `BuiltinHintProcessor` now supports the following hint: @@ -2181,7 +2181,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. memory[ap] = int(x == 0) ``` -* Implement hint on `get_felt_bitlength` [#993](https://github.com/lambdaclass/cairo-vm/pull/993) +* Implement hint on `get_felt_bitlength` [#993](https://github.com/starkware-libs/cairo-vm/pull/993) `BuiltinHintProcessor` now supports the following hint: ```python @@ -2190,7 +2190,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ``` Used by the [`Garaga` library function `get_felt_bitlength`](https://github.com/keep-starknet-strange/garaga/blob/249f8a372126b3a839f9c1e1080ea8c6f9374c0c/src/utils.cairo#L54) -* Add missing hint on cairo_secp lib [#1009](https://github.com/lambdaclass/cairo-vm/pull/1009): +* Add missing hint on cairo_secp lib [#1009](https://github.com/starkware-libs/cairo-vm/pull/1009): `BuiltinHintProcessor` now supports the following hint: @@ -2198,12 +2198,12 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.dibit = ((ids.scalar_u >> ids.m) & 1) + 2 * ((ids.scalar_v >> ids.m) & 1) ``` -* Add getters to read properties of a `Program` [#1017](https://github.com/lambdaclass/cairo-vm/pull/1017): +* Add getters to read properties of a `Program` [#1017](https://github.com/starkware-libs/cairo-vm/pull/1017): * `prime(&self) -> &str`: get the prime associated to data in hex representation * `iter_data(&self) -> Iterator`: get an iterator over all elements in the program data * `iter_builtins(&self) -> Iterator`: get an iterator over the names of required builtins -* Add missing hint on cairo_secp lib [#1008](https://github.com/lambdaclass/cairo-vm/pull/1008): +* Add missing hint on cairo_secp lib [#1008](https://github.com/starkware-libs/cairo-vm/pull/1008): `BuiltinHintProcessor` now supports the following hint: @@ -2211,16 +2211,16 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.len_hi = max(ids.scalar_u.d2.bit_length(), ids.scalar_v.d2.bit_length())-1 ``` -* Update `starknet-crypto` to version `0.4.3` [#1011](https://github.com/lambdaclass/cairo-vm/pull/1011) +* Update `starknet-crypto` to version `0.4.3` [#1011](https://github.com/starkware-libs/cairo-vm/pull/1011) * The new version carries an 85% reduction in execution time for ECDSA signature verification -* BREAKING CHANGE: refactor `Program` to optimize `Program::clone` [#999](https://github.com/lambdaclass/cairo-vm/pull/999) +* BREAKING CHANGE: refactor `Program` to optimize `Program::clone` [#999](https://github.com/starkware-libs/cairo-vm/pull/999) * Breaking change: many fields that were (unnecessarily) public become hidden by the refactor. -* BREAKING CHANGE: Add _builtin suffix to builtin names e.g.: output -> output_builtin [#1005](https://github.com/lambdaclass/cairo-vm/pull/1005) +* BREAKING CHANGE: Add _builtin suffix to builtin names e.g.: output -> output_builtin [#1005](https://github.com/starkware-libs/cairo-vm/pull/1005) -* Implement hint on uint384_extension lib [#983](https://github.com/lambdaclass/cairo-vm/pull/983) +* Implement hint on uint384_extension lib [#983](https://github.com/starkware-libs/cairo-vm/pull/983) `BuiltinHintProcessor` now supports the following hint: @@ -2260,15 +2260,15 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.remainder.d2 = remainder_split[2] ``` -* BREAKING CHANGE: optimization for instruction decoding [#942](https://github.com/lambdaclass/cairo-vm/pull/942): +* BREAKING CHANGE: optimization for instruction decoding [#942](https://github.com/starkware-libs/cairo-vm/pull/942): * Avoids copying immediate arguments to the `Instruction` structure, as they get inferred from the offset anyway * Breaking: removal of the field `Instruction::imm` -* Add missing `\n` character in traceback string [#997](https://github.com/lambdaclass/cairo-vm/pull/997) +* Add missing `\n` character in traceback string [#997](https://github.com/starkware-libs/cairo-vm/pull/997) * BugFix: Add missing `\n` character after traceback lines when the filename is missing ("Unknown Location") * 0.11 Support - * Add missing hints [#1014](https://github.com/lambdaclass/cairo-vm/pull/1014): + * Add missing hints [#1014](https://github.com/starkware-libs/cairo-vm/pull/1014): `BuiltinHintProcessor` now supports the following hints: ```python from starkware.cairo.common.cairo_secp.secp256r1_utils import SECP256R1_P as SECP_P @@ -2285,7 +2285,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. y1 = pack(ids.point1.y, PRIME) value = slope = line_slope(point1=(x0, y0), point2=(x1, y1), p=SECP_P) ``` - * Add missing hints on cairo_secp lib [#991](https://github.com/lambdaclass/cairo-vm/pull/991): + * Add missing hints on cairo_secp lib [#991](https://github.com/starkware-libs/cairo-vm/pull/991): `BuiltinHintProcessor` now supports the following hints: ```python from starkware.cairo.common.cairo_secp.secp_utils import pack @@ -2300,17 +2300,17 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ```python value = k = safe_div(res * s - x, N) ``` - * Layouts update [#874](https://github.com/lambdaclass/cairo-vm/pull/874) - * Keccak builtin updated [#873](https://github.com/lambdaclass/cairo-vm/pull/873), [#883](https://github.com/lambdaclass/cairo-vm/pull/883) - * Changes to `ec_op` [#876](https://github.com/lambdaclass/cairo-vm/pull/876) - * Poseidon builtin [#875](https://github.com/lambdaclass/cairo-vm/pull/875) - * Renamed Felt to Felt252 [#899](https://github.com/lambdaclass/cairo-vm/pull/899) - * Added SegmentArenaBuiltinRunner [#913](https://github.com/lambdaclass/cairo-vm/pull/913) - * Added `program_segment_size` argument to `verify_secure_runner` & `run_from_entrypoint` [#928](https://github.com/lambdaclass/cairo-vm/pull/928) - * Added dynamic layout [#879](https://github.com/lambdaclass/cairo-vm/pull/879) - * `get_segment_size` was exposed [#934](https://github.com/lambdaclass/cairo-vm/pull/934) - -* Add missing hint on cairo_secp lib [#1006](https://github.com/lambdaclass/cairo-vm/pull/1006): + * Layouts update [#874](https://github.com/starkware-libs/cairo-vm/pull/874) + * Keccak builtin updated [#873](https://github.com/starkware-libs/cairo-vm/pull/873), [#883](https://github.com/starkware-libs/cairo-vm/pull/883) + * Changes to `ec_op` [#876](https://github.com/starkware-libs/cairo-vm/pull/876) + * Poseidon builtin [#875](https://github.com/starkware-libs/cairo-vm/pull/875) + * Renamed Felt to Felt252 [#899](https://github.com/starkware-libs/cairo-vm/pull/899) + * Added SegmentArenaBuiltinRunner [#913](https://github.com/starkware-libs/cairo-vm/pull/913) + * Added `program_segment_size` argument to `verify_secure_runner` & `run_from_entrypoint` [#928](https://github.com/starkware-libs/cairo-vm/pull/928) + * Added dynamic layout [#879](https://github.com/starkware-libs/cairo-vm/pull/879) + * `get_segment_size` was exposed [#934](https://github.com/starkware-libs/cairo-vm/pull/934) + +* Add missing hint on cairo_secp lib [#1006](https://github.com/starkware-libs/cairo-vm/pull/1006): `BuiltinHintProcessor` now supports the following hint: @@ -2323,7 +2323,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ) ``` -* Add missing hint on cairo_secp lib [#1003](https://github.com/lambdaclass/cairo-vm/pull/1003): +* Add missing hint on cairo_secp lib [#1003](https://github.com/starkware-libs/cairo-vm/pull/1003): `BuiltinHintProcessor` now supports the following hint: @@ -2333,7 +2333,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. x = pack(ids.x, PRIME) % SECP_P ``` -* Add missing hint on cairo_secp lib [#996](https://github.com/lambdaclass/cairo-vm/pull/996): +* Add missing hint on cairo_secp lib [#996](https://github.com/starkware-libs/cairo-vm/pull/996): `BuiltinHintProcessor` now supports the following hint: @@ -2342,7 +2342,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. value = x_inv = div_mod(1, x, SECP_P) ``` -* Add missing hints on cairo_secp lib [#994](https://github.com/lambdaclass/cairo-vm/pull/994): +* Add missing hints on cairo_secp lib [#994](https://github.com/starkware-libs/cairo-vm/pull/994): `BuiltinHintProcessor` now supports the following hints: @@ -2359,7 +2359,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. value = k_plus_one = safe_div(res * b - a, N) + 1 ``` -* Add missing hint on cairo_secp lib [#992](https://github.com/lambdaclass/cairo-vm/pull/992): +* Add missing hint on cairo_secp lib [#992](https://github.com/starkware-libs/cairo-vm/pull/992): `BuiltinHintProcessor` now supports the following hint: @@ -2371,7 +2371,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.q = q % PRIME ``` -* Add missing hint on cairo_secp lib [#990](https://github.com/lambdaclass/cairo-vm/pull/990): +* Add missing hint on cairo_secp lib [#990](https://github.com/starkware-libs/cairo-vm/pull/990): `BuiltinHintProcessor` now supports the following hint: @@ -2385,7 +2385,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. value = new_x = (pow(slope, 2, SECP_P) - 2 * x) % SECP_P ``` -* Add missing hint on cairo_secp lib [#989](https://github.com/lambdaclass/cairo-vm/pull/989): +* Add missing hint on cairo_secp lib [#989](https://github.com/starkware-libs/cairo-vm/pull/989): `BuiltinHintProcessor` now supports the following hint: @@ -2396,7 +2396,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.q = q % PRIME ``` -* Add missing hint on cairo_secp lib [#986](https://github.com/lambdaclass/cairo-vm/pull/986): +* Add missing hint on cairo_secp lib [#986](https://github.com/starkware-libs/cairo-vm/pull/986): `BuiltinHintProcessor` now supports the following hint: @@ -2410,7 +2410,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. value = slope = div_mod(3 * x ** 2, 2 * y, SECP_P) ``` -* Add missing hint on cairo_secp lib [#984](https://github.com/lambdaclass/cairo-vm/pull/984): +* Add missing hint on cairo_secp lib [#984](https://github.com/starkware-libs/cairo-vm/pull/984): `BuiltinHintProcessor` now supports the following hint: @@ -2426,7 +2426,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. value = slope = div_mod(y0 - y1, x0 - x1, SECP_P) ``` -* Implement hints on uint384 lib (Part 2) [#971](https://github.com/lambdaclass/cairo-vm/pull/971) +* Implement hints on uint384 lib (Part 2) [#971](https://github.com/starkware-libs/cairo-vm/pull/971) `BuiltinHintProcessor` now supports the following hint: @@ -2434,7 +2434,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. memory[ap] = 1 if 0 <= (ids.a.d2 % PRIME) < 2 ** 127 else 0 ``` - * Add alternative hint code for hint on _block_permutation used by 0.10.3 whitelist [#958](https://github.com/lambdaclass/cairo-vm/pull/958) + * Add alternative hint code for hint on _block_permutation used by 0.10.3 whitelist [#958](https://github.com/starkware-libs/cairo-vm/pull/958) `BuiltinHintProcessor` now supports the following hint: @@ -2448,9 +2448,9 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. segments.write_arg(ids.keccak_ptr, output_values) ``` -* Make hints code `src/hint_processor/builtin_hint_processor/hint_code.rs` public [#988](https://github.com/lambdaclass/cairo-vm/pull/988) +* Make hints code `src/hint_processor/builtin_hint_processor/hint_code.rs` public [#988](https://github.com/starkware-libs/cairo-vm/pull/988) -* Implement hints on uint384 lib (Part 1) [#960](https://github.com/lambdaclass/cairo-vm/pull/960) +* Implement hints on uint384 lib (Part 1) [#960](https://github.com/starkware-libs/cairo-vm/pull/960) `BuiltinHintProcessor` now supports the following hints: @@ -2520,11 +2520,11 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. ids.root.d2 = root_split[2] ``` -* Re-export the `cairo-felt` crate as `cairo_vm::felt` [#981](https://github.com/lambdaclass/cairo-vm/pull/981) +* Re-export the `cairo-felt` crate as `cairo_vm::felt` [#981](https://github.com/starkware-libs/cairo-vm/pull/981) * Removes the need of explicitly importing `cairo-felt` in downstream projects and helps ensure there is no version mismatch caused by that -* Implement hint on `uint256_mul_div_mod`[#957](https://github.com/lambdaclass/cairo-vm/pull/957) +* Implement hint on `uint256_mul_div_mod`[#957](https://github.com/starkware-libs/cairo-vm/pull/957) `BuiltinHintProcessor` now supports the following hint: @@ -2545,41 +2545,41 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. Used by the common library function `uint256_mul_div_mod` #### [0.3.0-rc1] - 2023-04-13 -* Derive Deserialize for ExecutionResources [#922](https://github.com/lambdaclass/cairo-vm/pull/922) -* Remove builtin names from VirtualMachine.builtin_runners [#921](https://github.com/lambdaclass/cairo-vm/pull/921) -* Implemented hints on common/ec.cairo [#888](https://github.com/lambdaclass/cairo-vm/pull/888) -* Changed `Memory.insert` argument types [#902](https://github.com/lambdaclass/cairo-vm/pull/902) -* feat: implemented `Deserialize` on Program by changing builtins field type to enum [#896](https://github.com/lambdaclass/cairo-vm/pull/896) -* Effective size computation from the VM exposed [#887](https://github.com/lambdaclass/cairo-vm/pull/887) -* Wasm32 Support! [#828](https://github.com/lambdaclass/cairo-vm/pull/828), [#893](https://github.com/lambdaclass/cairo-vm/pull/893) -* `MathError` added for math operation [#855](https://github.com/lambdaclass/cairo-vm/pull/855) -* Check for overflows in relocatable operations [#859](https://github.com/lambdaclass/cairo-vm/pull/859) -* Use `Relocatable` instead of `&MaybeRelocatable` in `load_data` and `get_range`[#860](https://github.com/lambdaclass/cairo-vm/pull/860) [#867](https://github.com/lambdaclass/cairo-vm/pull/867) -* Memory-related errors moved to `MemoryError` [#854](https://github.com/lambdaclass/cairo-vm/pull/854) +* Derive Deserialize for ExecutionResources [#922](https://github.com/starkware-libs/cairo-vm/pull/922) +* Remove builtin names from VirtualMachine.builtin_runners [#921](https://github.com/starkware-libs/cairo-vm/pull/921) +* Implemented hints on common/ec.cairo [#888](https://github.com/starkware-libs/cairo-vm/pull/888) +* Changed `Memory.insert` argument types [#902](https://github.com/starkware-libs/cairo-vm/pull/902) +* feat: implemented `Deserialize` on Program by changing builtins field type to enum [#896](https://github.com/starkware-libs/cairo-vm/pull/896) +* Effective size computation from the VM exposed [#887](https://github.com/starkware-libs/cairo-vm/pull/887) +* Wasm32 Support! [#828](https://github.com/starkware-libs/cairo-vm/pull/828), [#893](https://github.com/starkware-libs/cairo-vm/pull/893) +* `MathError` added for math operation [#855](https://github.com/starkware-libs/cairo-vm/pull/855) +* Check for overflows in relocatable operations [#859](https://github.com/starkware-libs/cairo-vm/pull/859) +* Use `Relocatable` instead of `&MaybeRelocatable` in `load_data` and `get_range`[#860](https://github.com/starkware-libs/cairo-vm/pull/860) [#867](https://github.com/starkware-libs/cairo-vm/pull/867) +* Memory-related errors moved to `MemoryError` [#854](https://github.com/starkware-libs/cairo-vm/pull/854) * Removed unused error variants * Moved memory-related error variants to `MemoryError` * Changed memory getters to return `MemoryError` instead of `VirtualMachineError` * Changed all memory-related errors in hint from `HintError::Internal(VmError::...` to `HintError::Memory(MemoryError::...` -* feat: Builder pattern for `VirtualMachine` [#820](https://github.com/lambdaclass/cairo-vm/pull/820) -* Simplified `Memory::get` return type to `Option` [#852](https://github.com/lambdaclass/cairo-vm/pull/852) -* Improved idenitifier variable error handling [#851](https://github.com/lambdaclass/cairo-vm/pull/851) -* `CairoRunner::write_output` now prints missing and relocatable values [#853](https://github.com/lambdaclass/cairo-vm/pull/853) -* `VirtualMachineError::FailedToComputeOperands` error message expanded [#848](https://github.com/lambdaclass/cairo-vm/pull/848) -* Builtin names made public [#849](https://github.com/lambdaclass/cairo-vm/pull/849) -* `secure_run` flag moved to `CairoRunConfig` struct [#832](https://github.com/lambdaclass/cairo-vm/pull/832) -* `vm_core` error types revised and iimplemented `AddAssign` for `Relocatable` [#837](https://github.com/lambdaclass/cairo-vm/pull/837) -* `to_bigint` and `to_biguint` deprecated [#757](https://github.com/lambdaclass/cairo-vm/pull/757) -* `Memory` moved into `MemorySegmentManager` [#830](https://github.com/lambdaclass/cairo-vm/pull/830) +* feat: Builder pattern for `VirtualMachine` [#820](https://github.com/starkware-libs/cairo-vm/pull/820) +* Simplified `Memory::get` return type to `Option` [#852](https://github.com/starkware-libs/cairo-vm/pull/852) +* Improved idenitifier variable error handling [#851](https://github.com/starkware-libs/cairo-vm/pull/851) +* `CairoRunner::write_output` now prints missing and relocatable values [#853](https://github.com/starkware-libs/cairo-vm/pull/853) +* `VirtualMachineError::FailedToComputeOperands` error message expanded [#848](https://github.com/starkware-libs/cairo-vm/pull/848) +* Builtin names made public [#849](https://github.com/starkware-libs/cairo-vm/pull/849) +* `secure_run` flag moved to `CairoRunConfig` struct [#832](https://github.com/starkware-libs/cairo-vm/pull/832) +* `vm_core` error types revised and iimplemented `AddAssign` for `Relocatable` [#837](https://github.com/starkware-libs/cairo-vm/pull/837) +* `to_bigint` and `to_biguint` deprecated [#757](https://github.com/starkware-libs/cairo-vm/pull/757) +* `Memory` moved into `MemorySegmentManager` [#830](https://github.com/starkware-libs/cairo-vm/pull/830) * To reduce the complexity of the VM's memory and enforce proper usage (as the memory and its segment manager are now a "unified" entity) * Removed `memory` field from `VirtualMachine` * Added `memory` field to `MemorySegmentManager` * Removed `Memory` argument from methods where `MemorySegmentManager` is also an argument * Added test macro `segments` (an extension of the `memory` macro) -* `Display` trait added to Memory struct [#812](https://github.com/lambdaclass/cairo-vm/pull/812) -* feat: Extensible VirtualMachineError and removed PartialEq trait [#783](https://github.com/lambdaclass/cairo-vm/pull/783) +* `Display` trait added to Memory struct [#812](https://github.com/starkware-libs/cairo-vm/pull/812) +* feat: Extensible VirtualMachineError and removed PartialEq trait [#783](https://github.com/starkware-libs/cairo-vm/pull/783) * `VirtualMachineError::Other(anyhow::Error)` was added to allow to returning custom errors when using `cairo-vm` * The `PartialEq` trait was removed from the `VirtualMachineError` enum -* VM hooks added as a conditional feature [#761](https://github.com/lambdaclass/cairo-vm/pull/761) +* VM hooks added as a conditional feature [#761](https://github.com/starkware-libs/cairo-vm/pull/761) * Cairo-vm based testing tools such as cairo-foundry or those built by FuzzingLabs need access to the state of the VM at specific points during the execution. * This PR adds the possibility for users of the cairo-vm lib to execute their custom additional code during the program execution. * The Rust "feature" mechanism was used in order to guarantee that this ability is only available when the lib user needs it, and is not compiled when it's not required. @@ -2587,9 +2587,9 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * before the first step * before each step * after each step -* ExecutionResource operations: add and substract [#774](https://github.com/lambdaclass/cairo-vm/pull/774), multiplication [#908](https://github.com/lambdaclass/cairo-vm/pull/908) , and `AddAssign` [#914](https://github.com/lambdaclass/cairo-vm/pull/914) +* ExecutionResource operations: add and substract [#774](https://github.com/starkware-libs/cairo-vm/pull/774), multiplication [#908](https://github.com/starkware-libs/cairo-vm/pull/908) , and `AddAssign` [#914](https://github.com/starkware-libs/cairo-vm/pull/914) -* Move `Memory` into `MemorySegmentManager` [#830](https://github.com/lambdaclass/cairo-vm/pull/830) +* Move `Memory` into `MemorySegmentManager` [#830](https://github.com/starkware-libs/cairo-vm/pull/830) * Structural changes: * Remove `memory: Memory` field from `VirtualMachine` * Add `memory: Memory` field to `MemorySegmentManager` @@ -2606,25 +2606,25 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * `gen_cairo_arg(&mut self, arg: &CairoArg, memory: &mut Memory) -> Result` -> `gen_cairo_arg(&mut self, arg: &CairoArg) -> Result` * `write_arg(&mut self, memory: &mut Memory, ptr: &Relocatable, arg: &dyn Any) -> Result` -> `write_arg(&mut self, ptr: &Relocatable, arg: &dyn Any) -> Result` -* Refactor `Memory::relocate memory` [#784](https://github.com/lambdaclass/cairo-vm/pull/784) +* Refactor `Memory::relocate memory` [#784](https://github.com/starkware-libs/cairo-vm/pull/784) * Bugfixes: * `Memory::relocate_memory` now moves data in the temporary memory relocated by a relocation rule to the real memory * Aditional Notes: * When relocating temporary memory produces clashes with pre-existing values in the real memory, an InconsistentMemory error is returned instead of keeping the last inserted value. This differs from the original implementation. -* Restrict addresses to Relocatable + fix some error variants used in signature.rs [#792](https://github.com/lambdaclass/cairo-vm/pull/792) +* Restrict addresses to Relocatable + fix some error variants used in signature.rs [#792](https://github.com/starkware-libs/cairo-vm/pull/792) * Public Api Changes: * Change `ValidationRule` inner type to `Box Result, MemoryError>>`. * Change `validated_addresses` field of `Memory` to `HashSet`. * Change `validate_memory_cell(&mut self, address: &MaybeRelocatable) -> Result<(), MemoryError>` to `validate_memory_cell(&mut self, addr: &Relocatable) -> Result<(), MemoryError>`. -* Add `VmException` to `CairoRunner::run_from_entrypoint`[#775](https://github.com/lambdaclass/cairo-vm/pull/775) +* Add `VmException` to `CairoRunner::run_from_entrypoint`[#775](https://github.com/starkware-libs/cairo-vm/pull/775) * Public Api Changes: * Change error return type of `CairoRunner::run_from_entrypoint` to `CairoRunError`. * Convert `VirtualMachineError`s outputed during the vm run to `VmException` in `CairoRunner::run_from_entrypoint`. * Make `VmException` fields public -* Fix `BuiltinRunner::final_stack` and remove quick fix [#778](https://github.com/lambdaclass/cairo-vm/pull/778) +* Fix `BuiltinRunner::final_stack` and remove quick fix [#778](https://github.com/starkware-libs/cairo-vm/pull/778) * Public Api changes: * Various changes to public `BuiltinRunner` method's signatures: * `final_stack(&self, vm: &VirtualMachine, pointer: Relocatable) -> Result<(Relocatable, usize), RunnerError>` to `final_stack(&mut self, segments: &MemorySegmentManager, memory: &Memory, pointer: Relocatable) -> Result`. @@ -2634,7 +2634,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * `BuiltinRunner::final_stack` now updates the builtin's stop_ptr instead of returning it. This replaces the bugfix on PR #768. #### [0.1.3] - 2023-01-26 -* Add secure_run flag + integrate verify_secure_runner into cairo-run [#771](https://github.com/lambdaclass/cairo-vm/pull/777) +* Add secure_run flag + integrate verify_secure_runner into cairo-run [#771](https://github.com/starkware-libs/cairo-vm/pull/777) * Public Api changes: * Add command_line argument `secure_run` * Add argument `secure_run: Option` to `cairo_run` @@ -2643,7 +2643,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * `EcOpBuiltinRunner::deduce_memory_cell` now checks that both points are on the curve instead of only the first one * `EcOpBuiltinRunner::deduce_memory_cell` now returns the values of the point coordinates instead of the indices when a `PointNotOnCurve` error is returned -* Refactor `Refactor verify_secure_runner` [#768](https://github.com/lambdaclass/cairo-vm/pull/768) +* Refactor `Refactor verify_secure_runner` [#768](https://github.com/starkware-libs/cairo-vm/pull/768) * Public Api changes: * Remove builtin name from the return value of `BuiltinRunner::get_memory_segment_addresses` * Simplify the return value of `CairoRunner::get_builtin_segments_info` to `Vec<(usize, usize)>` @@ -2651,7 +2651,7 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. * Bugfixes: * CairoRunner::read_return_values now updates the `stop_ptr` of each builtin after calling `BuiltinRunner::final_stack` -* Use CairoArg enum instead of Any in CairoRunner::run_from_entrypoint [#686](https://github.com/lambdaclass/cairo-vm/pull/686) +* Use CairoArg enum instead of Any in CairoRunner::run_from_entrypoint [#686](https://github.com/starkware-libs/cairo-vm/pull/686) * Public Api changes: * Remove `Result` from `MaybeRelocatable::mod_floor`, it now returns a `MaybeRelocatable` * Add struct `CairoArg` @@ -2662,39 +2662,39 @@ Both branches support Stwo prover opcodes (Blake2s, QM31) since v2.0.0. #### [0.1.1] - 2023-01-11 -* Add input file contents to traceback [#666](https://github.com/lambdaclass/cairo-vm/pull/666/files) +* Add input file contents to traceback [#666](https://github.com/starkware-libs/cairo-vm/pull/666/files) * Public Api changes: * `VirtualMachineError` enum variants containing `MaybeRelocatable` and/or `Relocatable` values now use the `Display` format instead of `Debug` in their `Display` implementation * `get_traceback` now adds the source code line to each traceback entry -* Use hint location instead of instruction location when building VmExceptions from hint failure [#673](https://github.com/lambdaclass/cairo-vm/pull/673/files) +* Use hint location instead of instruction location when building VmExceptions from hint failure [#673](https://github.com/starkware-libs/cairo-vm/pull/673/files) * Public Api changes: * `hints` field added to `InstructionLocation` * `Program.instruction_locations` type changed from `Option>` to `Option>` * `VirtualMachineError`s produced by `HintProcessor::execute_hint()` will be wrapped in a `VirtualMachineError::Hint` error containing their hint_index * `get_location()` now receives an an optional usize value `hint_index`, used to obtain hint locations -* Default implementation of compile_hint [#680](https://github.com/lambdaclass/cairo-vm/pull/680) +* Default implementation of compile_hint [#680](https://github.com/starkware-libs/cairo-vm/pull/680) * Internal changes: * Make the `compile_hint` implementation which was in the `BuiltinHintProcessor` the default implementation in the trait. -* Add new error type `HintError` [#676](https://github.com/lambdaclass/cairo-vm/pull/676) +* Add new error type `HintError` [#676](https://github.com/starkware-libs/cairo-vm/pull/676) * Public Api changes: * `HintProcessor::execute_hint()` now returns a `HintError` instead of a `VirtualMachineError` * Helper functions on `hint_processor_utils.rs` now return a `HintError` -* Change the Dictionary used in dict hints to store MaybeRelocatable instead of BigInt [#687](https://github.com/lambdaclass/cairo-vm/pull/687) +* Change the Dictionary used in dict hints to store MaybeRelocatable instead of BigInt [#687](https://github.com/starkware-libs/cairo-vm/pull/687) * Public Api changes: * `DictManager`, its dictionaries, and all dict module hints implemented in rust now use `MaybeRelocatable` for keys and values instead of `BigInt` * Add helper functions that allow extracting ids variables as `MaybeRelocatable`: `get_maybe_relocatable_from_var_name` & `get_maybe_relocatable_from_reference` * Change inner value type of dict-related `HintError` variants to `MaybeRelocatable` -* Implement `substitute_error_message_attribute_references` [#689] (https://github.com/lambdaclass/cairo-vm/pull/689) +* Implement `substitute_error_message_attribute_references` [#689] (https://github.com/starkware-libs/cairo-vm/pull/689) * Public Api changes: * Remove `error_message_attributes` field from `VirtualMachine`, and `VirtualMachine::new` * Add `flow_tracking_data` field to `Attribute` * `get_error_attr_value` now replaces the references in the error message with the corresponding cairo values. * Remove duplicated handling of error attribute messages leading to duplicated into in the final error display. -* Fix multiplicative inverse bug [#697](https://github.com/lambdaclass/cairo-vm/pull/697) [#698](https://github.com/lambdaclass/cairo-vm/pull/698). The VM was using integer division rather than prime field inverse when deducing `op0` or `op1` for the multiplication opcode +* Fix multiplicative inverse bug [#697](https://github.com/starkware-libs/cairo-vm/pull/697) [#698](https://github.com/starkware-libs/cairo-vm/pull/698). The VM was using integer division rather than prime field inverse when deducing `op0` or `op1` for the multiplication opcode #### [0.1.0] - 2022-12-30 -* Add traceback to VmException [#657](https://github.com/lambdaclass/cairo-vm/pull/657) +* Add traceback to VmException [#657](https://github.com/starkware-libs/cairo-vm/pull/657) * Public API changes: * `traceback` field added to `VmException` struct * `pub fn from_vm_error(runner: &CairoRunner, error: VirtualMachineError, pc: usize) -> Self` is now `pub fn from_vm_error(runner: &CairoRunner, vm: &VirtualMachine, error: VirtualMachineError) -> Self` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5995b70254..e3707c3ba6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,11 +29,11 @@ All types of contributions are encouraged and valued. See the [Table of Contents > If you want to ask a question, we assume that you have read the available [Documentation](docs/). -Before you ask a question, it is best to search for existing [Issues](https://github.com/lambdaclass/cairo-vm/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first. +Before you ask a question, it is best to search for existing [Issues](https://github.com/starkware-libs/cairo-vm/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first. If you then still feel the need to ask a question and need clarification, we recommend the following: -- Open an [Issue](https://github.com/lambdaclass/cairo-vm/issues/new). +- Open an [Issue](https://github.com/starkware-libs/cairo-vm/issues/new). - Provide as much context as you can about what you're running into. - Provide project and platform versions (cairo language, rust compiler, Python, etc), depending on what seems relevant. @@ -73,7 +73,7 @@ A good bug report shouldn't leave others needing to chase you up for more inform We use GitHub issues to track bugs and errors. If you run into an issue with the project: -- Open an [Issue](https://github.com/lambdaclass/cairo-vm/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.) +- Open an [Issue](https://github.com/starkware-libs/cairo-vm/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.) - Explain the behavior you would expect and the actual behavior. - Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case. - Provide the information you collected in the previous section. @@ -96,13 +96,13 @@ This section guides you through submitting an enhancement suggestion for CONTRIB - Make sure that you are using the latest version. - Read the [documentation](docs/) carefully and find out if the functionality is already covered, maybe by an individual configuration. -- Perform a [search](https://github.com/lambdaclass/cairo-vm/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. +- Perform a [search](https://github.com/starkware-libs/cairo-vm/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. - Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library. #### How Do I Submit a Good Enhancement Suggestion? -Enhancement suggestions are tracked as [GitHub issues](https://github.com/lambdaclass/cairo-vm/issues). +Enhancement suggestions are tracked as [GitHub issues](https://github.com/starkware-libs/cairo-vm/issues). - Use a **clear and descriptive title** for the issue to identify the suggestion. - Provide a **step-by-step description of the suggested enhancement** in as many details as possible. diff --git a/Cargo.toml b/Cargo.toml index a2255a6ebf..623b16ebdd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ resolver = "2" version = "3.2.0" edition = "2021" license = "Apache-2.0" -repository = "https://github.com/lambdaclass/cairo-vm/" +repository = "https://github.com/starkware-libs/cairo-vm/" readme = "README.md" keywords = ["starknet", "cairo", "vm"] diff --git a/README.md b/README.md index bda09bbedb..c46f394054 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,11 @@ A faster and safer implementation of the Cairo VM in Rust -[Report Bug](https://github.com/lambdaclass/cairo-vm/issues/new?assignees=&labels=bug&projects=&template=bug_report.md&title=bug%3A+) · [Request Feature](https://github.com/lambdaclass/cairo-vm/issues/new?labels=enhancement&title=feat%3A+) +[Report Bug](https://github.com/starkware-libs/cairo-vm/issues/new?assignees=&labels=bug&projects=&template=bug_report.md&title=bug%3A+) · [Request Feature](https://github.com/starkware-libs/cairo-vm/issues/new?labels=enhancement&title=feat%3A+) -[![rust](https://github.com/lambdaclass/cairo-vm/actions/workflows/rust.yml/badge.svg)](https://github.com/lambdaclass/cairo-vm/actions/workflows/rust.yml) -[![codecov](https://img.shields.io/codecov/c/github/lambdaclass/cairo-vm)](https://codecov.io/gh/lambdaclass/cairo-vm) -[![license](https://img.shields.io/github/license/lambdaclass/cairo-vm)](/LICENSE) +[![rust](https://github.com/starkware-libs/cairo-vm/actions/workflows/rust.yml/badge.svg)](https://github.com/starkware-libs/cairo-vm/actions/workflows/rust.yml) +[![codecov](https://img.shields.io/codecov/c/github/starkware-libs/cairo-vm)](https://codecov.io/gh/starkware-libs/cairo-vm) +[![license](https://img.shields.io/github/license/starkware-libs/cairo-vm)](/LICENSE) [![pr-welcome]](#-contributing) [![Telegram Chat][tg-badge]][tg-url] @@ -150,7 +150,7 @@ The flag `--layout` determines which builtins can be used. More info about layou To sum up, the following code will get you from zero to running a Cairo program: ```bash -git clone https://github.com/lambdaclass/cairo-vm.git +git clone https://github.com/starkware-libs/cairo-vm.git cd cairo-vm @@ -213,7 +213,7 @@ Currently, as this VM is under construction, it's missing some of the features o There are two ways to use non-standard hints in this VM: - Extend the cairo-vm code and build your own binary using the interface [HintProcessor](docs/hint_processor/README.md). -- Use [cairo-vm-py](https://github.com/lambdaclass/cairo-vm-py) which supports running any hint in a Python interpreter. + ### Running a function in a Cairo program with arguments @@ -286,7 +286,7 @@ Running a [Cairo program](./cairo_programs/benchmarks/big_fibonacci.cairo) that - [Flamegraph](./docs/benchmarks/flamegraph.svg) - Github action [results](https://lambdaclass.github.io/cairo-vm/) -Note before running the benchmark suite: the benchmark named [iai_benchmark](https://github.com/lambdaclass/cairo-vm/blob/8dba86dbec935fa04a255e2edf3d5d184950fa22/Cargo.toml#L59) depends on Valgrind. Please make sure it is installed prior to running the `iai_benchmark` benchmark. +Note before running the benchmark suite: the benchmark named [iai_benchmark](https://github.com/starkware-libs/cairo-vm/blob/8dba86dbec935fa04a255e2edf3d5d184950fa22/Cargo.toml#L59) depends on Valgrind. Please make sure it is installed prior to running the `iai_benchmark` benchmark. Run the complete benchmark suite with cargo: @@ -335,7 +335,7 @@ You can find more detailed instructions in the [CONTRIBUTING.md](CONTRIBUTING.md ## 🌞 Related Projects - [starknet_in_rust](https://github.com/lambdaclass/starknet_in_rust): implementation of Starknet in Rust, powered by the cairo-vm. -- [cairo-vm-py](https://github.com/lambdaclass/cairo-vm-py): Bindings for using cairo-vm from Python code. + ## 📚 Documentation diff --git a/RELEASE.md b/RELEASE.md index bf2e588407..ded69bcac0 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -14,7 +14,7 @@ - The versions must be the same. - You need to update the workspace dependency `cairo-vm`, which you can find in the root cargo manifest under the section `[workspace.dependencies]`. - - [Here](https://github.com/lambdaclass/cairo-vm/pull/1748/files) is an + - [Here](https://github.com/starkware-libs/cairo-vm/pull/1748/files) is an example pull request with these changes. - [ ] Run `cargo update` and `git add Cargo.lock` - [ ] Update `CHANGELOG.md`: diff --git a/docs/hint_processor/builtin_hint_processor/README.md b/docs/hint_processor/builtin_hint_processor/README.md index ed78e47db5..b815b401d0 100644 --- a/docs/hint_processor/builtin_hint_processor/README.md +++ b/docs/hint_processor/builtin_hint_processor/README.md @@ -16,7 +16,7 @@ cairo-vm = {path = "[path to cairo-vm directory"} Or by github link: ```rust [dependencies] -cairo-vm = {git = "https://github.com/lambdaclass/cairo-vm.git"} +cairo-vm = {git = "https://github.com/starkware-libs/cairo-vm.git"} ``` #### Step 2: Code the implementation of your custom hint (Using the helpers and structures described in the sections below) diff --git a/docs/vm/README.md b/docs/vm/README.md index f340a4b8c2..1cd164dddf 100644 --- a/docs/vm/README.md +++ b/docs/vm/README.md @@ -1,5 +1,3 @@ - - # How does the Cairo VM work? ## High Level Overview @@ -24,7 +22,7 @@ While this repo is only concerned with the second component, it's important to k Our virtual machine has a very simple flow: -- Take a compiled cairo program as input. You can check out an example program [here](https://github.com/lambdaclass/cairo-vm.go/blob/main/cairo_programs/fibonacci.cairo). +- Take a compiled cairo program as input. - Run the bytecode from the compiled program, doing the usual `fetch->decode->execute` loop, running until program termination. - On every step of the execution, record the values of each register. - Take the register values and memory at every step and write them to a file, called the `execution trace`. @@ -356,6 +354,3 @@ The input of the Virtual Machine is a compiled Cairo program in Json format. The - **prime:** The cairo prime in hexadecimal format. As explained above, all arithmetic operations are done over a base field, modulo this primer number. - **reference_manager:** Contains information about cairo variables. This information is useful to access to variables when executing cairo hints. -# Code Walkthrough - -If you want a step by step guide on how to implement your own VM you can read our [code walkthrough in Go](https://github.com/lambdaclass/cairo-vm_in_go?tab=readme-ov-file#code-walkthroughwrite-your-own-cairo-vm) diff --git a/install.sh b/install.sh index 1848ce2d86..1900c1e683 100755 --- a/install.sh +++ b/install.sh @@ -4,7 +4,7 @@ unsupported_os () { echo "Detected OS ($1) is unsupported." echo "Please open an issue (PRs welcome ❤️) on:" - echo " https://github.com/lambdaclass/cairo-vm/issues" + echo " https://github.com/starkware-libs/cairo-vm/issues" echo "" echo "NOTE: you can still try installing dependencies manually" echo "If your OS differs from the detected one, you can look \ diff --git a/vm/src/vm/errors/cairo_run_errors.rs b/vm/src/vm/errors/cairo_run_errors.rs index 0197d8c601..50d16b3514 100644 --- a/vm/src/vm/errors/cairo_run_errors.rs +++ b/vm/src/vm/errors/cairo_run_errors.rs @@ -9,7 +9,7 @@ use crate::vm::errors::{ }; // In case you need to add a CairoRunError enum variant // Add it with #[error(transparent)] -// If not it can cause some performance regressions, like in https://github.com/lambdaclass/cairo-vm/pull/1720 +// If not it can cause some performance regressions, like in https://github.com/starkware-libs/cairo-vm/pull/1720 #[derive(Debug, Error)] pub enum CairoRunError { #[error(transparent)]