Skip to content

Commit 9991dce

Browse files
feat: add support for alias identifiers destination in program serde (lambdaclass#2071)
* feat: add support for aliases destination in program serde * add changelog --------- Co-authored-by: Julián González Calderón <[email protected]>
1 parent 29a3eb5 commit 9991dce

File tree

5 files changed

+39
-0
lines changed

5 files changed

+39
-0
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77

88
* fix: Keep None values in memory segments for the prover input info [#2021](https://github.com/lambdaclass/cairo-vm/pull/2021)
99

10+
11+
* feat: add support for alias identifiers destination in program serde [#2071](https://github.com/lambdaclass/cairo-vm/pull/2071)
12+
1013
* feat(BREAKING): add support for accessible scopes in hint processor [#2042](https://github.com/lambdaclass/cairo-vm/pull/2042)
1114

1215
* dev: add Memory::get_maybe_relocatable [#2039](https://github.com/lambdaclass/cairo-vm/pull/2039)

vm/src/serde/deserialize_program.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ pub struct Identifier {
103103
pub members: Option<HashMap<String, Member>>,
104104
pub cairo_type: Option<String>,
105105
pub size: Option<usize>,
106+
// In case of an alias - resolves to the original identifier
107+
pub destination: Option<String>,
106108
}
107109

108110
#[cfg_attr(feature = "test_utils", derive(Arbitrary))]
@@ -1014,6 +1016,7 @@ mod tests {
10141016
members: None,
10151017
cairo_type: None,
10161018
size: None,
1019+
destination: None,
10171020
},
10181021
);
10191022
identifiers.insert(
@@ -1028,6 +1031,7 @@ mod tests {
10281031
members: None,
10291032
cairo_type: None,
10301033
size: None,
1034+
destination: None,
10311035
},
10321036
);
10331037
identifiers.insert(
@@ -1040,6 +1044,7 @@ mod tests {
10401044
members: None,
10411045
cairo_type: None,
10421046
size: None,
1047+
destination: Some(String::from("starkware.cairo.common.math.unsigned_div_rem")),
10431048
},
10441049
);
10451050
identifiers.insert(
@@ -1054,6 +1059,7 @@ mod tests {
10541059
members: None,
10551060
cairo_type: None,
10561061
size: None,
1062+
destination: None,
10571063
},
10581064
);
10591065
identifiers.insert(
@@ -1066,6 +1072,7 @@ mod tests {
10661072
members: None,
10671073
cairo_type: None,
10681074
size: None,
1075+
destination: None,
10691076
},
10701077
);
10711078
identifiers.insert(
@@ -1078,6 +1085,7 @@ mod tests {
10781085
members: None,
10791086
cairo_type: None,
10801087
size: None,
1088+
destination: None,
10811089
},
10821090
);
10831091
identifiers.insert(
@@ -1090,6 +1098,7 @@ mod tests {
10901098
members: None,
10911099
cairo_type: None,
10921100
size: None,
1101+
destination: None,
10931102
},
10941103
);
10951104

vm/src/serde/serialize_program.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ pub(crate) struct IdentifierSerializer {
128128
pub members: Option<HashMap<String, Member>>,
129129
pub cairo_type: Option<String>,
130130
pub size: Option<usize>,
131+
pub destination: Option<String>, // in case of alias
131132
}
132133

133134
impl From<IdentifierSerializer> for Identifier {
@@ -140,6 +141,7 @@ impl From<IdentifierSerializer> for Identifier {
140141
members: identifier_serialer.members,
141142
cairo_type: identifier_serialer.cairo_type,
142143
size: identifier_serialer.size,
144+
destination: identifier_serialer.destination,
143145
}
144146
}
145147
}
@@ -154,6 +156,7 @@ impl From<Identifier> for IdentifierSerializer {
154156
members: identifier_serialer.members,
155157
cairo_type: identifier_serialer.cairo_type,
156158
size: identifier_serialer.size,
159+
destination: identifier_serialer.destination,
157160
}
158161
}
159162
}

vm/src/types/program.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,7 @@ mod tests {
721721
members: None,
722722
cairo_type: None,
723723
size: None,
724+
destination: None,
724725
},
725726
);
726727

@@ -734,6 +735,7 @@ mod tests {
734735
members: None,
735736
cairo_type: None,
736737
size: None,
738+
destination: None,
737739
},
738740
);
739741

@@ -776,6 +778,7 @@ mod tests {
776778
members: None,
777779
cairo_type: None,
778780
size: None,
781+
destination: None,
779782
},
780783
);
781784

@@ -789,6 +792,7 @@ mod tests {
789792
members: None,
790793
cairo_type: None,
791794
size: None,
795+
destination: None,
792796
},
793797
);
794798

@@ -939,6 +943,7 @@ mod tests {
939943
members: None,
940944
cairo_type: None,
941945
size: None,
946+
destination: None,
942947
},
943948
);
944949

@@ -952,6 +957,7 @@ mod tests {
952957
members: None,
953958
cairo_type: None,
954959
size: None,
960+
destination: None,
955961
},
956962
);
957963

@@ -1066,6 +1072,7 @@ mod tests {
10661072
members: None,
10671073
cairo_type: None,
10681074
size: None,
1075+
destination: None,
10691076
},
10701077
);
10711078

@@ -1079,6 +1086,7 @@ mod tests {
10791086
members: None,
10801087
cairo_type: None,
10811088
size: None,
1089+
destination: None,
10821090
},
10831091
);
10841092

@@ -1132,6 +1140,7 @@ mod tests {
11321140
members: None,
11331141
cairo_type: None,
11341142
size: None,
1143+
destination: None,
11351144
},
11361145
);
11371146

@@ -1145,6 +1154,7 @@ mod tests {
11451154
members: None,
11461155
cairo_type: None,
11471156
size: None,
1157+
destination: None,
11481158
},
11491159
);
11501160

@@ -1193,6 +1203,7 @@ mod tests {
11931203
members: None,
11941204
cairo_type: None,
11951205
size: None,
1206+
destination: None,
11961207
},
11971208
);
11981209
identifiers.insert(
@@ -1205,6 +1216,7 @@ mod tests {
12051216
members: Some(HashMap::new()),
12061217
cairo_type: None,
12071218
size: Some(0),
1219+
destination: None,
12081220
},
12091221
);
12101222
identifiers.insert(
@@ -1217,6 +1229,7 @@ mod tests {
12171229
members: Some(HashMap::new()),
12181230
cairo_type: None,
12191231
size: Some(0),
1232+
destination: None,
12201233
},
12211234
);
12221235
identifiers.insert(
@@ -1229,6 +1242,7 @@ mod tests {
12291242
members: Some(HashMap::new()),
12301243
cairo_type: None,
12311244
size: Some(0),
1245+
destination: None,
12321246
},
12331247
);
12341248
identifiers.insert(
@@ -1241,6 +1255,7 @@ mod tests {
12411255
members: None,
12421256
cairo_type: None,
12431257
size: None,
1258+
destination: None,
12441259
},
12451260
);
12461261

@@ -1297,6 +1312,7 @@ mod tests {
12971312
members: None,
12981313
cairo_type: None,
12991314
size: None,
1315+
destination: None,
13001316
},
13011317
);
13021318
identifiers.insert(
@@ -1309,6 +1325,7 @@ mod tests {
13091325
members: Some(HashMap::new()),
13101326
cairo_type: None,
13111327
size: Some(0),
1328+
destination: None,
13121329
},
13131330
);
13141331
identifiers.insert(
@@ -1321,6 +1338,7 @@ mod tests {
13211338
members: Some(HashMap::new()),
13221339
cairo_type: None,
13231340
size: Some(0),
1341+
destination: None,
13241342
},
13251343
);
13261344
identifiers.insert(
@@ -1333,6 +1351,7 @@ mod tests {
13331351
members: Some(HashMap::new()),
13341352
cairo_type: None,
13351353
size: Some(0),
1354+
destination: None,
13361355
},
13371356
);
13381357
identifiers.insert(
@@ -1345,6 +1364,7 @@ mod tests {
13451364
members: None,
13461365
cairo_type: None,
13471366
size: None,
1367+
destination: None,
13481368
},
13491369
);
13501370

vm/src/vm/runners/cairo_runner.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4624,6 +4624,7 @@ mod tests {
46244624
members: None,
46254625
cairo_type: None,
46264626
size: None,
4627+
destination: None,
46274628
},
46284629
)]
46294630
.into_iter()
@@ -4653,6 +4654,7 @@ mod tests {
46534654
members: None,
46544655
cairo_type: None,
46554656
size: None,
4657+
destination: None,
46564658
},
46574659
),
46584660
(
@@ -4665,6 +4667,7 @@ mod tests {
46654667
members: None,
46664668
cairo_type: None,
46674669
size: None,
4670+
destination: None,
46684671
},
46694672
),
46704673
]
@@ -4695,6 +4698,7 @@ mod tests {
46954698
members: None,
46964699
cairo_type: None,
46974700
size: None,
4701+
destination: None,
46984702
},
46994703
)]
47004704
.into_iter()

0 commit comments

Comments
 (0)