Skip to content

[Sierra-Emu] Fix felt-dict's overflow, circuits libfuncs and implement missing EcPoint libfunc #1208

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 51 commits into from
May 13, 2025
Merged
Show file tree
Hide file tree
Changes from 49 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
64f9139
change initial gas due to overflows
FrancoGiachetta May 5, 2025
b604c09
fix some libfuncs in circuits
FrancoGiachetta May 5, 2025
eda5973
Merge branch 'main' into sierra-emu-felt-dict-circuits
FrancoGiachetta May 5, 2025
8cc9223
fix is() for circuits
FrancoGiachetta May 5, 2025
d8ec998
remove Value::Unit from return values in get_output
FrancoGiachetta May 5, 2025
715f1c9
match U96LimbsLessThanGuarantee correctly
FrancoGiachetta May 5, 2025
11dae8c
some corrections to circuits
FrancoGiachetta May 6, 2025
113327e
some corrections to circuits
FrancoGiachetta May 6, 2025
882cd61
fix failure_guarantee_verify to avoid panicking
FrancoGiachetta May 6, 2025
2710ca4
fix circuits
FrancoGiachetta May 7, 2025
f204ce8
merge main
FrancoGiachetta May 7, 2025
f470f23
more fixes to circuits + implement ec_zero libfunc
FrancoGiachetta May 7, 2025
553b0f3
clippy
FrancoGiachetta May 7, 2025
72ee4f9
remove unnecesary tests
FrancoGiachetta May 7, 2025
be4f4c5
remove unnecesary file
FrancoGiachetta May 7, 2025
2943dae
fix branch index
FrancoGiachetta May 7, 2025
2d36e5a
add comment
FrancoGiachetta May 7, 2025
0aa0fb5
Merge branch 'main' into sierra-emu-felt-dict-circuits
FrancoGiachetta May 7, 2025
7b87748
fix eval_u96_limbs_less_than_guarantee_verify
FrancoGiachetta May 7, 2025
8190c77
Merge branch 'sierra-emu-felt-dict-circuits' of github.com:lambdaclas…
FrancoGiachetta May 7, 2025
90d6170
remove circuit failure test
FrancoGiachetta May 7, 2025
ecf1458
update trace dump with new Value::CircitOutputs
FrancoGiachetta May 7, 2025
fbd7efe
fmt
FrancoGiachetta May 7, 2025
35bda85
reviews + fix modulus in trace dump
FrancoGiachetta May 8, 2025
c373218
remove unnecesary file
FrancoGiachetta May 8, 2025
8334712
fix clippy
FrancoGiachetta May 8, 2025
9b9cea8
implement circuit_single_limb_less_than_guarantee_verify
FrancoGiachetta May 8, 2025
8320eed
fix trace dump for circuit outputs
FrancoGiachetta May 8, 2025
3e5a259
Merge branch 'main' into sierra-emu-felt-dict-circuits
FrancoGiachetta May 8, 2025
cb20d47
Merge branch 'main' into sierra-emu-felt-dict-circuits
FrancoGiachetta May 9, 2025
adb2132
fix felt_dict_get
FrancoGiachetta May 9, 2025
e8d7c31
fix felt_dict_get
FrancoGiachetta May 9, 2025
e9cb7de
Merge branch 'sierra-emu-felt-dict-circuits' of github.com:lambdaclas…
FrancoGiachetta May 9, 2025
52f18cf
implement U96LimbsLessThanGuarantee for trace dump
FrancoGiachetta May 9, 2025
7109ded
remove unnecessary code
FrancoGiachetta May 9, 2025
3a3080b
merge main + reviews
FrancoGiachetta May 9, 2025
f8c5622
fmt
FrancoGiachetta May 9, 2025
6a03cbd
fix felt_dict_entry_get
FrancoGiachetta May 9, 2025
efcc99d
revert change in circuits.rs
FrancoGiachetta May 9, 2025
969fbd4
remove unwanted file
FrancoGiachetta May 9, 2025
a5b6a0c
revert unwanted change
FrancoGiachetta May 9, 2025
729faff
revert unwanted change
FrancoGiachetta May 9, 2025
acd1608
make trace dump for circuit outputs cleaner
FrancoGiachetta May 9, 2025
4d4c8a2
remove unwanted code
FrancoGiachetta May 9, 2025
6817c49
increase felt dict count always during get()
FrancoGiachetta May 9, 2025
d419bae
Merge branch 'main' into sierra-emu-felt-dict-circuits
FrancoGiachetta May 9, 2025
409cb03
doc function + merge main
FrancoGiachetta May 9, 2025
5a3c589
reviews
FrancoGiachetta May 12, 2025
9593e16
use elemts stride for offseting u384 structs
FrancoGiachetta May 12, 2025
64e439a
forgot to update one stride
FrancoGiachetta May 12, 2025
9b73c0c
Merge branch 'main' into sierra-emu-felt-dict-circuits
gabrielbosio May 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
232 changes: 100 additions & 132 deletions Cargo.lock

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions debug_utils/sierra-emu/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ cairo-lang-utils.workspace = true
clap = { version = "4.5.26", features = ["derive"] }
k256 = "0.13.4"
keccak = "0.1.5"
num-integer.workspace = true
num-bigint.workspace = true
num-traits.workspace = true
p256 = "0.13.2"
Expand Down
8 changes: 8 additions & 0 deletions debug_utils/sierra-emu/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,14 @@ pub fn get_value_from_integer(
CoreTypeConcrete::Uint32(_) => Value::U32(value.to_u32().unwrap()),
CoreTypeConcrete::Uint64(_) => Value::U64(value.to_u64().unwrap()),
CoreTypeConcrete::Uint128(_) => Value::U128(value.to_u128().unwrap()),
CoreTypeConcrete::BoundedInt(info) => {
let range = &info.range;
Value::BoundedInt {
range: range.lower.clone()..range.upper.clone(),
value,
}
}
CoreTypeConcrete::Felt252(_) => Value::Felt(value.into()),
_ => panic!("cannot get integer value for a non-integer type"),
}
}
Expand Down
35 changes: 22 additions & 13 deletions debug_utils/sierra-emu/src/value.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,11 @@ pub enum Value {
value: BigInt,
},
Circuit(Vec<BigUint>),
CircuitOutputs {
circuits: Vec<BigUint>,
modulus: BigUint,
},
CircuitModulus(BigUint),
CircuitOutputs(Vec<BigUint>),
Enum {
self_ty: ConcreteTypeId,
index: usize,
Expand Down Expand Up @@ -173,25 +176,31 @@ impl Value {

// Circuit related types
CoreTypeConcrete::Circuit(selector) => match selector {
CircuitTypeConcrete::Circuit(_) => matches!(self, Self::Circuit(_)),
CircuitTypeConcrete::CircuitData(_) => matches!(self, Self::Circuit(_)),
CircuitTypeConcrete::CircuitOutputs(_) => matches!(self, Self::CircuitOutputs(_)),
CircuitTypeConcrete::CircuitInput(_) => matches!(self, Self::Unit),
CircuitTypeConcrete::CircuitInputAccumulator(_) => matches!(self, Self::Circuit(_)),
CircuitTypeConcrete::Circuit(_)
| CircuitTypeConcrete::CircuitData(_)
| CircuitTypeConcrete::CircuitInputAccumulator(_) => {
matches!(self, Self::Circuit(_))
}
CircuitTypeConcrete::CircuitOutputs(_) => {
matches!(self, Self::CircuitOutputs { .. })
}
CircuitTypeConcrete::CircuitModulus(_) => matches!(self, Self::CircuitModulus(_)),
CircuitTypeConcrete::U96Guarantee(_) => matches!(self, Self::U128(_)),
CircuitTypeConcrete::CircuitDescriptor(_)
| CircuitTypeConcrete::CircuitFailureGuarantee(_)
| CircuitTypeConcrete::AddMod(_)
CircuitTypeConcrete::CircuitInput(_) => {
matches!(self, Self::Struct(_))
}
CircuitTypeConcrete::U96LimbsLessThanGuarantee(_) => {
matches!(self, Self::Struct(_))
}
CircuitTypeConcrete::AddMod(_)
| CircuitTypeConcrete::MulMod(_)
| CircuitTypeConcrete::CircuitDescriptor(_)
| CircuitTypeConcrete::CircuitFailureGuarantee(_)
| CircuitTypeConcrete::AddModGate(_)
| CircuitTypeConcrete::CircuitPartialOutputs(_)
| CircuitTypeConcrete::InverseGate(_)
| CircuitTypeConcrete::MulModGate(_)
| CircuitTypeConcrete::SubModGate(_)
| CircuitTypeConcrete::U96LimbsLessThanGuarantee(_) => {
matches!(self, Self::Unit)
}
| CircuitTypeConcrete::SubModGate(_) => matches!(self, Self::Unit),
},
CoreTypeConcrete::Const(info) => self.is(registry, &info.inner_ty),
CoreTypeConcrete::EcOp(_) => matches!(self, Self::Unit),
Expand Down
1 change: 1 addition & 0 deletions debug_utils/sierra-emu/src/vm/cast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ fn eval_downcast(
let [value] = get_numeric_args_as_bigints(&args[1..]).try_into().unwrap();

let int_ty = registry.get_type(&info.to_ty).unwrap();

let range = info.to_range.lower.clone()..info.to_range.upper.clone();
if range.contains(&value) {
EvalAction::NormalBranch(
Expand Down
Loading
Loading