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

Nargo: Handle non-inlined Acir circuit info for contract functions #4720

Closed
Tracked by #4426
vezenovm opened this issue Apr 4, 2024 · 1 comment
Closed
Tracked by #4426
Labels
enhancement New feature or request nargo Noir's CLI development tool

Comments

@vezenovm
Copy link
Contributor

vezenovm commented Apr 4, 2024

Problem

After this PR #4719 we added handling for displaying multiple circuits infos to represent an entire program. This is similar to what was already done for contracts. It isn't entirely obvious how we should display things for a contract.

For example this is the output of nargo info
Screenshot 2024-04-04 at 3 57 33 PM
on simple_contract under the compile_success_contract tests.

We already list multiple function's for each entry point in the contract. With foldable calls being used from potentially outside of a contract, we will need to display more information as to make this distinction.

Happy Case

We should settle on how we want display contract circuit size info when working with non-inlined / foldable calls.

Project Impact

Nice-to-have

Impact Context

No response

Workaround

None

Workaround Description

No response

Additional Context

No response

Would you like to submit a PR for this Issue?

None

Support Needs

No response

@vezenovm vezenovm added enhancement New feature or request nargo Noir's CLI development tool labels Apr 4, 2024
@vezenovm vezenovm changed the title Nargo: Handle non-inlined Acir circuit info when outside of a contract Nargo: Handle non-inlined Acir circuit info for contract functions Apr 4, 2024
github-merge-queue bot pushed a commit that referenced this issue Apr 8, 2024
# 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: #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.
@vezenovm
Copy link
Contributor Author

vezenovm commented May 3, 2024

As we move nargo info to bb this should be handled by aztec tooling rather than nargo. Closing in favor of AztecProtocol/aztec-packages#6190

@vezenovm vezenovm closed this as completed May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request nargo Noir's CLI development tool
Projects
Status: Done
Development

No branches or pull requests

1 participant