Skip to content
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

Circuit output is not printed after successful execution #6516

Closed
LukiMueller opened this issue Nov 14, 2024 · 1 comment · Fixed by #6757
Closed

Circuit output is not printed after successful execution #6516

LukiMueller opened this issue Nov 14, 2024 · 1 comment · Fixed by #6757
Assignees
Labels
bug Something isn't working

Comments

@LukiMueller
Copy link

Aim

I want to check the result of my program executions but for some special cases the results are not shown although the witness is generated.
Here are some examples when this is the case.

Examples NOT showing the Circuit output:

pub fn main(in0 : Field) -> pub (Field, Field) {
    let out0 = (in0 * in0);
    let out1 = (in0 * in0);
    (out0, out1)
}

// OR

pub fn main(in0 : Field) -> pub (Field, Field) {
    let out0 = (in0 * in0);
    let out1 = out0;
    (out0, out1)
}

Example showing the Circuit output:

pub fn main(in0 : Field) -> pub (Field, Field) {
    let out0 = (in0 * in0);
    let out1 =  (in0 + in0);
    (out0, out1)
}

// OR

pub fn main(in0 : Field) -> pub (Field, Field) {
    let out0 = (in0 * in0);
    let out1 = 0;
    (out0, out1)
}

In all cases I get Circuit witness successfully solved. Older versions seem to give me the expected Circuit output: for all of the provided test cases.
Was there a change that removed this for some special cases, do I have to provide a flag now, or is this a bug?

Expected Behavior

I expected to receive the circuit output Circuit output: ... after the message Circuit witness successfully solved

Bug

For some programs I do no longer receive a Circuit output: ... although nargo execute prints Circuit witness successfully solved.

To Reproduce

  1. Create a new nargo project
  2. Create a file main.nr with the content from above and a Prover.toml (with e.g. in0="1")
  3. nargo execute

Workaround

None

Workaround Description

No response

Additional Context

No response

Project Impact

None

Blocker Context

No response

Nargo Version

nargo version = 0.38.0 noirc version = 0.38.0+35408ab303f1018c1e2c38e6ea55430a2c89dc4c (git version hash: 35408ab, is dirty: false)

NoirJS Version

No response

Proving Backend Tooling & Version

No response

Would you like to submit a PR for this Issue?

None

Support Needs

No response

@LukiMueller LukiMueller added the bug Something isn't working label Nov 14, 2024
@github-project-automation github-project-automation bot moved this to 📋 Backlog in Noir Nov 14, 2024
@TomAFrench
Copy link
Member

Hmm, this is odd. I've confirmed that this exists in master.

I think that this is likely caused by the MergeExpressionOptimizer doing something it shouldn't as the issue pops up when a single witness is returned twice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

3 participants