v1.0.0-rc0
Pre-release-
feat: Use
ProjectivePoint
from types-rs in ec_op builtin impl #1532 -
feat(BREAKING): Replace
cairo-felt
crate withstarknet-types-core
(0.0.5) #1408 -
feat(BREAKING): Add Cairo 1 proof mode compilation and execution [#1517] (#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 withCairoRunner.runner_mode: RunnerMode
-
perf: Add
extensive_hints
feature to prevent performance regression for the common use-case [#1503] (#1503)- Gates changes added by #1491 under the feature flag
extensive_hints
- Gates changes added by #1491 under the feature flag
-
chore: remove cancel-duplicates workflow #1497
-
feat: Handle
pc
s outside of program segment inVmException
[#1501] (#1501)VmException
now shows the full pc value instead of just the offset (VmException.pc
field type changed toRelocatable
)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
fieldsinst_location
&error_attr_value
will beNone
in such case.
-
feat: Allow running instructions from pcs outside the program segement #1493
-
BREAKING: Partially Revert
Optimize trace relocation #906
#1492- Remove methods
VirtualMachine::get_relocated_trace
&VirtualMachine::relocate_trace
. - Add
relocated_trace
field &relocate_trace
method toCairoRunner
. - Swap
TraceEntry
forRelocatedTraceEntry
type inwrite_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.
- Remove methods
-
feat: Add HintProcessor::execute_hint_extensive + refactor hint_ranges #1491
-
Add trait method
HintProcessorLogic::execute_hint_extensive
:- This method has a similar behaviour to
HintProcessorLogic::execute_hint
but it also returns aHintExtension
(type alias forHashMap<Relocatable, Vec<Box<dyn Any>>>
) that can be used to extend the current map of hints used by the VM. This behaviour achieves what thevm_load_data
primitive does for cairo-lang, and is needed to implement os hints. - This method is now used by the VM to execute hints instead of
execute_hint
, but it's default implementation callsexecute_hint
, so current implementors of theHintProcessor
trait won't notice any change.
- This method has a similar behaviour to
-
Signature changes:
pub fn step_hint(&mut self, hint_executor: &mut dyn HintProcessor, exec_scopes: &mut ExecutionScopes, hint_datas: &mut Vec<Box<dyn Any>>, constants: &HashMap<String, Felt252>) -> Result<(), VirtualMachineError>
->pub fn step_hint(&mut self, hint_processor: &mut dyn HintProcessor, exec_scopes: &mut ExecutionScopes, hint_datas: &mut Vec<Box<dyn Any>>, hint_ranges: &mut HashMap<Relocatable, HintRange>, constants: &HashMap<String, Felt252>) -> Result<(), VirtualMachineError>
pub fn step(&mut self, hint_executor: &mut dyn HintProcessor, exec_scopes: &mut ExecutionScopes, hint_data: &[Box<dyn Any>], constants: &HashMap<String, Felt252>) -> Result<(), VirtualMachineError>
->pub fn step(&mut self, hint_processor: &mut dyn HintProcessor, exec_scopes: &mut ExecutionScopes, hint_datas: &mut Vec<Box<dyn Any>>, hint_ranges: &mut HashMap<Relocatable, HintRange>, constants: &HashMap<String, Felt252>) -> Result<(), VirtualMachineError>
-
-
feat: add debugging capabilities behind
print
feature flag. #1476 -
feat: add
cairo_run_program
function that takes aProgram
as an arg. #1496