-
Notifications
You must be signed in to change notification settings - Fork 164
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into decode-with-str-radix
- Loading branch information
Showing
68 changed files
with
1,393 additions
and
546 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,45 @@ | ||
* Add traceback to VmException [#657](https://github.com/lambdaclass/cairo-rs/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` | ||
* `pub fn get_location(pc: &usize, runner: &CairoRunner) -> Option<Location>` is now `pub fn get_location(pc: usize, runner: &CairoRunner) -> Option<Location>` | ||
* `pub fn decode_instruction(encoded_instr: i64, mut imm: Option<BigInt>) -> Result<instruction::Instruction, VirtualMachineError>` is now `pub fn decode_instruction(encoded_instr: i64, mut imm: Option<&BigInt>) -> Result<instruction::Instruction, VirtualMachineError>` | ||
* `VmExcepion` field's string format now mirror their cairo-lang conterparts. | ||
## Cairo-VM Changelog | ||
|
||
#### Upcoming Changes | ||
|
||
#### [0.1.1] - 2023-01-11 | ||
|
||
* Add input file contents to traceback [#666](https://github.com/lambdaclass/cairo-rs/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-rs/pull/673/files) | ||
* Public Api changes: | ||
* `hints` field added to `InstructionLocation` | ||
* `Program.instruction_locations` type changed from `Option<HashMap<usize, Location>>` to `Option<HashMap<usize, InstructionLocation>>` | ||
* `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-rs/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-rs/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` | ||
* 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-rs/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-rs/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-rs/pull/697) [#698](https://github.com/lambdaclass/cairo-rs/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-rs/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` | ||
* `pub fn get_location(pc: &usize, runner: &CairoRunner) -> Option<Location>` is now `pub fn get_location(pc: usize, runner: &CairoRunner) -> Option<Location>` | ||
* `pub fn decode_instruction(encoded_instr: i64, mut imm: Option<BigInt>) -> Result<instruction::Instruction, VirtualMachineError>` is now `pub fn decode_instruction(encoded_instr: i64, mut imm: Option<&BigInt>) -> Result<instruction::Instruction, VirtualMachineError>` | ||
* `VmExcepion` field's string format now mirror their cairo-lang conterparts. |
Oops, something went wrong.
de00980
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold
1.30
.cairo_run(cairo_programs/benchmarks/secp_integration_benchmark.json
1890982823
ns/iter (± 35023647
)1409686395
ns/iter (± 5538410
)1.34
cairo_run(cairo_programs/benchmarks/blake2s_integration_benchmark.json
1494769085
ns/iter (± 19691473
)1115624223
ns/iter (± 7224468
)1.34
cairo_run(cairo_programs/benchmarks/operations_with_data_structures_benchmarks.json
2269517999
ns/iter (± 109089277
)1694858011
ns/iter (± 25946957
)1.34
cairo_run(cairo_programs/benchmarks/uint256_integration_benchmark.json
1573864233
ns/iter (± 65866885
)1141206098
ns/iter (± 6641417
)1.38
This comment was automatically generated by workflow using github-action-benchmark.
CC: @unbalancedparentheses