feat(std_lib): Support extracting intermediate witnesses from a circuit using traces #872
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related issue(s)
Resolves #688
Description
CURRENTLY A DRAFT
This PR moves towards supporting the builtin
std::trace
. This specifies that we would like to log an intermediate witness, however, we would like to handle it in a way that differs from displaying it to standard output.Relevant acvm PR: noir-lang/acvm#105
aztec_backend: noir-lang/acvm-backend-barretenberg#57
Summary of changes
With the switch to returning logs from the PWG rather than handling them inside of the PWG we were able to move away from needing the
show_output
flag onbuiltin::Println
. With handling of logs happening inside of the PWG we were forced to pass down a flag during evaluation that cluttered up multiple functions and leads to other challenges.nargo
now handles whether we display output during tests. We now follow Rust where if a test passes there is no output unless specified with a flag, and if a test fails we display the output.Dependency additions / changes
Test additions / changes
Checklist
cargo fmt
with default settings.Additional context