Releases: lambdaclass/cairo-vm
v0.6.3
v0.8.5
-
fix:
Program
comparison depending onhints_ranges
ordering #1351 -
feat: implement the
--air_public_input
flag to the runner for outputting public inputs into a file #1268 -
fix: CLI errors bad formatting and handling
-
fix: return error when a parsed hint's PC is invalid #1340
-
chore(deps): bump cairo-lang dependencies to v2.1.0-rc2 #1345
-
chore(examples): remove wee_alloc dependency from wasm-demo example and ensure-no_std dummy crate #1337
-
docs: improved crate documentation #1334
-
chore!: made
deserialize_utils
module private #1334
BREAKING:deserialize_utils
is no longer exported- functions
maybe_add_padding
,parse_value
, andtake_until_unbalanced
are no longer exported ReferenceParseError
is no more
-
perf: changed
ok_or
usage forok_or_else
in expensive cases #1332 -
feat: updated the old WASM example and moved it to
examples/wasm-demo
#1315 -
feat(fuzzing): add
arbitrary
feature to enable arbitrary derive inProgram
andCairoRunConfig
#1306 #1330 -
perf: remove pointless iterator from rc limits tracking #1316
-
feat(felt): add
from_bytes_le
andfrom_bytes_ne
methods toFelt252
#1326 -
perf: change
Program::shared_program_data::hints
fromHashMap<usize, Vec<Box<dyn Any>>>
toVec<Box<dyn Any>>
and refer to them as ranges stored in aVec<_>
indexed by PC with run time reductions of up to 12% #931
BREAKING:get_hint_dictionary(&self, &[HintReference], &mut dyn HintProcessor) -> Result<HashMap<usize, Vec<Box<dyn Any>>, VirtualMachineError>
->
get_hint_data(self, &[HintReference], &mut dyn HintProcessor) -> Result<Vec<Box<dyn Any>, VirtualMachineError>
- Hook methods receive
&[Box<dyn Any>]
rather than&HashMap<usize, Vec<Box<dyn Any>>>
v0.6.2
v0.8.2
-
chore: update dependencies, particularly lamdaworks 0.1.2 -> 0.1.3 #1323
-
fix: fix
UINT256_MUL_DIV_MOD
hint #1320 -
feat: add dependency installation script
install.sh
#1298 -
fix: specify resolver version 2 in the virtual workspace's manifest #1311
-
feat: add
lambdaworks-felt
feature tocairo-vm-cli
#1308 -
chore: update dependencies, particularly clap 3.2 -> 4.3 #1309
- this removes dependency on atty, that's no longer mantained
-
chore: remove unused dependencies #1307
- rand_core
- serde_bytes
- rusty-hook (dev-dependency)
-
chore: bump
cairo-lang-starknet
andcairo-lang-casm
dependencies to 2.0.0 #1313
v0.8.1
-
chore: change mentions of cairo-rs-py to cairo-vm-py #1296
-
rename github repo from https://github.com/lambdaclass/cairo-rs to https://github.com/lambdaclass/cairo-vm #1289
-
fix(security): avoid OOM crashes when programs jump to very high invalid addresses.
-
fix: add
to_bytes_be
to the felt whenlambdaworks-felt
feature is active #1290 -
chore: mark
modpow
andto_signed_bytes_le
as deprecated #1290 -
fix: bump lambdaworks-math to latest version, that fixes no-std support #1293
-
build: remove dependency to
thiserror
(usethiserror-no-std/std
instead) -
chore: use LambdaWorks' implementation of bit operations for
Felt252
#1291 -
update
cairo-lang-starknet
andcairo-lang-casm
dependencies to v2.0.0-rc6 #1299
v0.8.0
v0.7.0
-
BREAKING: Integrate
RunResources
logic intoHintProcessor
trait #1274- Rename trait
HintProcessor
toHintProcessorLogic
- Add trait
ResourceTracker
- Trait
HintProcessor
is nowHintProcessor: HintProcessorLogic + ResourceTracker
BuiltinHintProcessor::new
&Cairo1HintProcessor::new
now receive the argumetrun_resources: RunResources
HintProcessorLogic::execute_hint
no longer receivesrun_resources: &mut RunResources
- Remove argument
run_resources: &mut RunResources
fromCairoRunner::run_until_pc
&CairoRunner::run_from_entrypoint
- Rename trait
-
build: remove unused implicit features from cairo-vm #1266
v0.6.1
v0.6.0
-
fix:
dibit
hint no longer fails when called with anm
of zero #1247 -
fix(security): avoid denial of service on malicious input exploiting the scientific notation parser #1239
-
BREAKING: Change
RunResources
usage:-
Modify field type
RunResources.n_steps: Option<usize>,
-
Public Api Changes:
- CairoRunner::run_until_pc: Now receive a
&mut RunResources
instead of an&mut Option<RunResources>
- CairoRunner::run_from_entrypoint: Now receive a
&mut RunResources
instead of an&mut Option<RunResources>
- VirtualMachine::Step: Add
&mut RunResources
as input - Trait HintProcessor::execute_hint: Add
&mut RunResources
as an input
- CairoRunner::run_until_pc: Now receive a
-
-
perf: accumulate
min
andmax
instruction offsets during run to speed up range check #1080
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
Also keep them in aVec<_>
instead of aHashMap<_, _>
since it will be continuous anyway.
BREAKING:HintProcessor::compile_hint
now receies a&[HintReference]
rather than&HashMap<usize, HintReference>
- 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
-
Add an
ensure_no_std
crate that the CI will use to check that new changes don't revertno_std
support #1215 #1232 -
replace the use of
num-prime::is_prime
by a custom implementation, therefore restoringno_std
compatibility #1238
-
v0.5.2
What's Changed
-
BREAKING: Compute
ExecutionResources.n_steps
without requiring trace #1222CairoRunner::get_execution_resources
return'sn_steps
field value is now set tovm.current_step
instead of0
if bothoriginal_steps
andtrace
are set toNone
-
Add
RunResources::get_n_steps
method #1225 -
refactor: simplify
mem_eq
-
fix: pin Cairo compiler version #1220
-
perf: make
inner_rc_bound
a constant, improving performance of the range-check builtin -
fix: substraction of
MaybeRelocatable
always behaves as signed #1218