Skip to content

Commit bd12c21

Browse files
committed
fix: Add missing stdin to rust-shadow of MemPreserver
The only thing `MemPreserver` guarantees is that it does not modify memory. Everything else is allowed, including reading from standard-in. This must be reflected in the trait and its test function.
1 parent 498857b commit bd12c21

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

tasm-lib/src/mmr/verify_mmr_successor.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,7 @@ mod test {
538538
memory: &HashMap<BFieldElement, BFieldElement>,
539539
_nd_tokens: VecDeque<BFieldElement>,
540540
nd_digests: VecDeque<Digest>,
541+
_stdin: VecDeque<BFieldElement>,
541542
_sponge: &mut Option<Tip5>,
542543
) -> Vec<BFieldElement> {
543544
let new_mmr_pointer = stack.pop().unwrap();

tasm-lib/src/traits/mem_preserver.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ pub trait MemPreserver: BasicSnippet {
3636
memory: &HashMap<BFieldElement, BFieldElement>,
3737
nd_tokens: VecDeque<BFieldElement>,
3838
nd_digests: VecDeque<Digest>,
39+
stdin: VecDeque<BFieldElement>,
3940
sponge: &mut Option<Tip5>,
4041
) -> Vec<BFieldElement>;
4142

@@ -91,7 +92,7 @@ where
9192

9293
fn rust_shadow_wrapper(
9394
&self,
94-
_stdin: &[BFieldElement],
95+
stdin: &[BFieldElement],
9596
nondeterminism: &NonDeterminism,
9697
stack: &mut Vec<BFieldElement>,
9798
memory: &mut HashMap<BFieldElement, BFieldElement>,
@@ -102,6 +103,7 @@ where
102103
memory,
103104
nondeterminism.individual_tokens.to_owned().into(),
104105
nondeterminism.digests.to_owned().into(),
106+
stdin.to_vec().into(),
105107
sponge,
106108
)
107109
}

0 commit comments

Comments
 (0)