-
Add input file contents to traceback #666
- Public Api changes:
VirtualMachineError
enum variants containingMaybeRelocatable
and/orRelocatable
values now use theDisplay
format instead ofDebug
in theirDisplay
implementationget_traceback
now adds the source code line to each traceback entry
- Public Api changes:
-
Use hint location instead of instruction location when building VmExceptions from hint failure #673
- Public Api changes:
hints
field added toInstructionLocation
Program.instruction_locations
type changed fromOption<HashMap<usize, Location>>
toOption<HashMap<usize, InstructionLocation>>
VirtualMachineError
s produced byHintProcessor::execute_hint()
will be wrapped in aVirtualMachineError::Hint
error containing their hint_indexget_location()
now receives an an optional usize valuehint_index
, used to obtain hint locations
- Public Api changes:
-
Default implementation of compile_hint #680
- Internal changes:
- Make the
compile_hint
implementation which was in theBuiltinHintProcessor
the default implementation in the trait.
- Make the
- Internal changes:
-
Add new error type
HintError
#676- Public Api changes:
HintProcessor::execute_hint()
now returns aHintError
instead of aVirtualMachineError
- Helper functions on
hint_processor_utils.rs
now return aHintError
- Public Api changes:
-
Change the Dictionary used in dict hints to store MaybeRelocatable instead of BigInt #687
- Public Api changes:
DictManager
, its dictionaries, and all dict module hints implemented in rust now useMaybeRelocatable
for keys and values instead ofBigInt
- 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 toMaybeRelocatable
- Public Api changes:
-
Implement
substitute_error_message_attribute_references
[#689] (lambdaclass#689)- Public Api changes:
- Remove
error_message_attributes
field fromVirtualMachine
, andVirtualMachine::new
- Add
flow_tracking_data
field toAttribute
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.
- Remove
- Public Api changes:
-
Fix multiplicative inverse bug #697 #698. The VM was using integer division rather than prime field inverse when deducing
op0
orop1
for the multiplication opcode
- Add traceback to VmException #657
- Public API changes:
traceback
field added toVmException
structpub fn from_vm_error(runner: &CairoRunner, error: VirtualMachineError, pc: usize) -> Self
is nowpub fn from_vm_error(runner: &CairoRunner, vm: &VirtualMachine, error: VirtualMachineError) -> Self
pub fn get_location(pc: &usize, runner: &CairoRunner) -> Option<Location>
is nowpub 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 nowpub 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.
- Public API changes: