lambdaclass / cairo-vm

cairo-vm is a Rust implementation of the Cairo VM. Cairo (CPU Algebraic Intermediate Representation) is a programming language for writing provable programs, where one party can prove to another that a certain computation was executed correctly without the need for this party to re-execute the same program.
https://lambdaclass.github.io/cairo-vm
Apache License 2.0
509 stars 142 forks source link

Handle `pc`s outside of program segment in `VmException` #1501

Closed fmoletta closed 9 months ago

fmoletta commented 9 months ago

Fixes how pc values are handled in VmException to show the full pc value instead of assuming index = 0. Disables debug information for errors produced when the pc is not in the program segment to avoid incorrect information being displayed.

codecov[bot] commented 9 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (b657576) 96.82% compared to head (8fdbc6f) 96.82%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1501 +/- ## ======================================= Coverage 96.82% 96.82% ======================================= Files 96 96 Lines 39684 39684 ======================================= Hits 38423 38423 Misses 1261 1261 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 9 months ago

Benchmark Results for unmodified programs :rocket:

Command Mean [s] Min [s] Max [s] Relative
base big_factorial 2.805 ± 0.027 2.785 2.876 1.00
head big_factorial 2.806 ± 0.030 2.783 2.878 1.00 ± 0.01
Command Mean [s] Min [s] Max [s] Relative
base big_fibonacci 2.413 ± 0.036 2.377 2.471 1.00 ± 0.02
head big_fibonacci 2.407 ± 0.012 2.383 2.426 1.00
Command Mean [s] Min [s] Max [s] Relative
base blake2s_integration_benchmark 8.467 ± 0.037 8.433 8.529 1.00 ± 0.01
head blake2s_integration_benchmark 8.466 ± 0.050 8.423 8.568 1.00
Command Mean [s] Min [s] Max [s] Relative
base compare_arrays_200000 2.897 ± 0.033 2.875 2.959 1.01 ± 0.01
head compare_arrays_200000 2.874 ± 0.019 2.848 2.911 1.00
Command Mean [s] Min [s] Max [s] Relative
base dict_integration_benchmark 1.900 ± 0.012 1.888 1.929 1.02 ± 0.01
head dict_integration_benchmark 1.871 ± 0.008 1.857 1.886 1.00
Command Mean [s] Min [s] Max [s] Relative
base field_arithmetic_get_square_benchmark 1.382 ± 0.006 1.376 1.396 1.00
head field_arithmetic_get_square_benchmark 1.387 ± 0.023 1.371 1.447 1.00 ± 0.02
Command Mean [s] Min [s] Max [s] Relative
base integration_builtins 6.960 ± 0.111 6.904 7.273 1.00
head integration_builtins 6.991 ± 0.227 6.860 7.624 1.00 ± 0.04
Command Mean [s] Min [s] Max [s] Relative
base keccak_integration_benchmark 8.591 ± 0.044 8.540 8.658 1.01 ± 0.01
head keccak_integration_benchmark 8.545 ± 0.036 8.513 8.627 1.00
Command Mean [s] Min [s] Max [s] Relative
base linear_search 2.901 ± 0.007 2.890 2.914 1.00 ± 0.01
head linear_search 2.895 ± 0.018 2.876 2.924 1.00
Command Mean [s] Min [s] Max [s] Relative
base math_cmp_and_pow_integration_benchmark 1.874 ± 0.009 1.854 1.886 1.01 ± 0.01
head math_cmp_and_pow_integration_benchmark 1.857 ± 0.011 1.847 1.880 1.00
Command Mean [s] Min [s] Max [s] Relative
base math_integration_benchmark 1.785 ± 0.010 1.769 1.805 1.01 ± 0.01
head math_integration_benchmark 1.761 ± 0.005 1.753 1.768 1.00
Command Mean [s] Min [s] Max [s] Relative
base memory_integration_benchmark 1.606 ± 0.012 1.595 1.630 1.01 ± 0.01
head memory_integration_benchmark 1.582 ± 0.002 1.579 1.587 1.00
Command Mean [s] Min [s] Max [s] Relative
base operations_with_data_structures_benchmarks 1.743 ± 0.004 1.736 1.750 1.00 ± 0.01
head operations_with_data_structures_benchmarks 1.735 ± 0.012 1.727 1.767 1.00
Command Mean [ms] Min [ms] Max [ms] Relative
base pedersen 622.6 ± 11.6 616.3 655.1 1.02 ± 0.02
head pedersen 613.1 ± 2.0 610.5 615.8 1.00
Command Mean [s] Min [s] Max [s] Relative
base poseidon_integration_benchmark 1.245 ± 0.015 1.232 1.276 1.00 ± 0.01
head poseidon_integration_benchmark 1.243 ± 0.009 1.230 1.262 1.00
Command Mean [s] Min [s] Max [s] Relative
base secp_integration_benchmark 2.291 ± 0.010 2.278 2.309 1.00
head secp_integration_benchmark 2.298 ± 0.020 2.276 2.340 1.00 ± 0.01
Command Mean [s] Min [s] Max [s] Relative
base set_integration_benchmark 1.224 ± 0.005 1.218 1.235 1.01 ± 0.01
head set_integration_benchmark 1.211 ± 0.004 1.205 1.218 1.00
Command Mean [s] Min [s] Max [s] Relative
base uint256_integration_benchmark 5.084 ± 0.070 5.031 5.274 1.00 ± 0.01
head uint256_integration_benchmark 5.066 ± 0.024 5.034 5.106 1.00