You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following test fails with error OutputStackOverflow(1), presumably because there were 2 PUSH instructions, and one ADD (which shifts stack left), and so the overflow table contains a 0 entry at the end and is contained non-empty. This is probably a new behavior since #1456.
I'm not sure why this doesn't occur in more tests yet, but it seems like the behavior we want is: if a 0 is pushed onto the stack overflow table, and the table is empty, then don't populate the overflow table (since when we shift right on an empty overflow table, we populate s[15] with 0).
#[test]fntest(){usecrate::{prove,Assembler,DefaultHost,Program,ProvingOptions,StackInputs};// instantiate the assemblerletmut assembler = Assembler::default();// this is our program, we compile it from assembly codelet program = assembler.assemble_program("begin push.3 push.5 add end").unwrap();// let's execute it and generate a STARK prooflet(outputs, proof) = prove(&program,StackInputs::default(),// we won't provide any inputsDefaultHost::default(),// we'll be using a default hostProvingOptions::default(),// we'll be using default options).unwrap();// the output should be 8assert_eq!(8, outputs.first().unwrap().as_int());}
The text was updated successfully, but these errors were encountered:
In most tests, we ensure that stack overflow table is empty at the end of the program by manually dropping extra items.
if a 0 is pushed onto the stack overflow table, and the table is empty, then don't populate the overflow table (since when we shift right on an empty overflow table, we populate s[15] with 0).
This would be very cool - but we'll need to think through how complex the constraints would need to be to support this.
The following test fails with error
OutputStackOverflow(1)
, presumably because there were 2PUSH
instructions, and oneADD
(which shifts stack left), and so the overflow table contains a 0 entry at the end and is contained non-empty. This is probably a new behavior since #1456.I'm not sure why this doesn't occur in more tests yet, but it seems like the behavior we want is: if a 0 is pushed onto the stack overflow table, and the table is empty, then don't populate the overflow table (since when we shift right on an empty overflow table, we populate
s[15]
with 0).The text was updated successfully, but these errors were encountered: