nightly-2024-04-09: feat(nargo): Multiple circuits info for binary programs (#4719)
Pre-release
Pre-release
·
1386 commits
to master
since this release
# Description ## Problem\* Resolves #4697 ## Summary\* The `nargo info` command previously assumed that we only had a single circuit. In order to display accurate circuits sizes we should display the circuit size of each individual circuit entry part which is part of an entire `Program`. For improved debugging I also had to exposed names in the `GeneratedAcir`. This prompted also refactoring the context that we pass around in `ssa.rs` when creating a circuit and a program. Two new structs,`SsaProgramArtifact` and `SsaCircuitArtifact`, have been created to clean this up. Example output from `nargo info` on `fold_basic_nested_call`: <img width="847" alt="Screenshot 2024-04-04 at 3 54 46 PM" src="https://github.com/noir-lang/noir/assets/43554004/95a827c4-766c-4d7d-b03e-fb9428cfdb2a"> ## Additional Context It isn't necessarily obvious how we should display foldable circuits for contracts which already have multiple entry points. I have left this for follow-up work: https://github.com/noir-lang/noir/issues/4720 ## Documentation\* Check one: - [ ] No documentation needed. - [ ] Documentation included in this PR. - [X] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist\* - [X] I have tested the changes locally. - [X] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings.