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

feat(nargo): Multiple circuits info for binary programs #4719

Merged
merged 23 commits into from
Apr 8, 2024

Conversation

vezenovm
Copy link
Contributor

@vezenovm vezenovm commented Apr 4, 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:
Screenshot 2024-04-04 at 3 54 46 PM

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.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

@vezenovm
Copy link
Contributor Author

vezenovm commented Apr 4, 2024

@TomAFrench Only just realized we will also fail on the gates diff with these changes as well. I just made a temporary solution here (noir-lang/noir-gates-diff#1). I can fix this to handle multiple circuits in our gates as part of this PR or in a follow-up, but either way we should take some time tomorrow settle on how we want to display circuit info for cases where we have foldable calls.

Copy link
Contributor

@michaeljklein michaeljklein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@TomAFrench
Copy link
Member

I just made a temporary solution here (noir-lang/noir-gates-diff#1).

Just merged this

@vezenovm vezenovm mentioned this pull request Apr 5, 2024
5 tasks
@vezenovm
Copy link
Contributor Author

vezenovm commented Apr 5, 2024

Just merged this

Sounds good. Let's wait for #4730 to pass? Then we can merge noir-lang/noir-gates-diff#2 update to the main branch of noir-gates-diff and merge #4730 immediately following this PR?

@vezenovm
Copy link
Contributor Author

vezenovm commented Apr 5, 2024

@TomAFrench We wanted to merge this to master with the temp commit then merge #4730. The reference content in noir-gates-diff will expect the newly-formed info circuit, but master has the old version. We could either revert 5172dfd or eat the gates-diff failing for this PR and then all subsequent PRs will pass for the gates diff.

@vezenovm
Copy link
Contributor Author

vezenovm commented Apr 5, 2024

We could either revert 5172dfd or eat the gates-diff failing for this PR and then all subsequent PRs will pass for the gates diff.

I do think just merging this would be fine as we know subsequent PRs will pass due to #4730

@TomAFrench
Copy link
Member

Yeah, I'm not too concerned with this failing if we know it'll pass in future.

@vezenovm
Copy link
Contributor Author

vezenovm commented Apr 8, 2024

Yeah, I'm not too concerned with this failing if we know it'll pass in future.

Ok I'm going to merge then

@vezenovm vezenovm enabled auto-merge April 8, 2024 16:35
@vezenovm
Copy link
Contributor Author

vezenovm commented Apr 8, 2024

Ok I'm going to merge then

Actually will it let us merge with the failing gates diff? If not I can alter the commit to pass

@vezenovm vezenovm added this pull request to the merge queue Apr 8, 2024
@TomAFrench
Copy link
Member

It should work as it's not a required workflow.

Merged via the queue into master with commit 50d2735 Apr 8, 2024
42 of 43 checks passed
@vezenovm vezenovm deleted the mv/multiple-circuits-info branch April 8, 2024 16:51
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Apr 8, 2024
…oir-lang/noir#4719)

chore: update condition for clearing warning comment on release PRs (noir-lang/noir#4739)
chore(ci): fix cutting new versions of the docs (noir-lang/noir#4737)
chore(ci): replace `yarn build:js:only` script (noir-lang/noir#4735)
chore: update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734)
feat: add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224)
chore: update from vulnerable version of h2 (noir-lang/noir#4714)
chore(ci): stop updating version list before cutting new docs version (noir-lang/noir#4726)
chore: remove `FunctionInput::dummy` (noir-lang/noir#4723)
chore: remove docker CI flow (noir-lang/noir#4724)
fix: unknown slice lengths coming from as_slice (noir-lang/noir#4725)
chore: remove unused env vars from `Cross.toml` (noir-lang/noir#4717)
feat: improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575)
feat: Allow slices to brillig entry points (noir-lang/noir#4713)
chore: simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703)
fix(acvm): Mark outputs of Opcode::Call solvable (noir-lang/noir#4708)
fix: Field comparisons (noir-lang/noir#4704)
feat(acvm_js): Execute program  (noir-lang/noir#4694)
chore: simplify how blns is loaded into tests (noir-lang/noir#4705)
fix(ssa): Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700)
chore: remove conditional compilation around `acvm_js` package (noir-lang/noir#4702)
feat(docs): Documenting noir codegen (noir-lang/noir#4454)
chore: check for references to private functions during path resolution (noir-lang/noir#4622)
chore: fix clippy errors (noir-lang/noir#4684)
fix: Last use analysis & make it an SSA pass (noir-lang/noir#4686)
feat: improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691)
feat: improve optimisations on range constraints (noir-lang/noir#4690)
chore: remove last traces of nix (noir-lang/noir#4679)
chore: Use is_entry_point helper on RuntimeType (noir-lang/noir#4678)
TomAFrench added a commit to AztecProtocol/aztec-packages that referenced this pull request Apr 9, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
feat(nargo): Multiple circuits info for binary programs
(noir-lang/noir#4719)
chore: update condition for clearing warning comment on release PRs
(noir-lang/noir#4739)
chore(ci): fix cutting new versions of the docs
(noir-lang/noir#4737)
chore(ci): replace `yarn build:js:only` script
(noir-lang/noir#4735)
chore: update JS publish workflow to upload build artifacts correctly.
(noir-lang/noir#4734)
feat: add `remove_enable_side_effects` SSA pass
(noir-lang/noir#4224)
chore: update from vulnerable version of h2
(noir-lang/noir#4714)
chore(ci): stop updating version list before cutting new docs version
(noir-lang/noir#4726)
chore: remove `FunctionInput::dummy`
(noir-lang/noir#4723)
chore: remove docker CI flow
(noir-lang/noir#4724)
fix: unknown slice lengths coming from as_slice
(noir-lang/noir#4725)
chore: remove unused env vars from `Cross.toml`
(noir-lang/noir#4717)
feat: improve nargo check cli with --override flag and feedback for
existing files (noir-lang/noir#4575)
feat: Allow slices to brillig entry points
(noir-lang/noir#4713)
chore: simplify how `acvm_backend.wasm` is embedded
(noir-lang/noir#4703)
fix(acvm): Mark outputs of Opcode::Call solvable
(noir-lang/noir#4708)
fix: Field comparisons (noir-lang/noir#4704)
feat(acvm_js): Execute program
(noir-lang/noir#4694)
chore: simplify how blns is loaded into tests
(noir-lang/noir#4705)
fix(ssa): Do not use get_value_max_num_bits when we want pure type
information (noir-lang/noir#4700)
chore: remove conditional compilation around `acvm_js` package
(noir-lang/noir#4702)
feat(docs): Documenting noir codegen
(noir-lang/noir#4454)
chore: check for references to private functions during path resolution
(noir-lang/noir#4622)
chore: fix clippy errors (noir-lang/noir#4684)
fix: Last use analysis & make it an SSA pass
(noir-lang/noir#4686)
feat: improve SSA type-awareness in EQ and MUL instructions
(noir-lang/noir#4691)
feat: improve optimisations on range constraints
(noir-lang/noir#4690)
chore: remove last traces of nix
(noir-lang/noir#4679)
chore: Use is_entry_point helper on RuntimeType
(noir-lang/noir#4678)
END_COMMIT_OVERRIDE

---------

Co-authored-by: sirasistant <sirasistant@gmail.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: vezenovm <mvezenov@gmail.com>
AztecBot added a commit that referenced this pull request Apr 9, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
feat(nargo): Multiple circuits info for binary programs
(#4719)
chore: update condition for clearing warning comment on release PRs
(#4739)
chore(ci): fix cutting new versions of the docs
(#4737)
chore(ci): replace `yarn build:js:only` script
(#4735)
chore: update JS publish workflow to upload build artifacts correctly.
(#4734)
feat: add `remove_enable_side_effects` SSA pass
(#4224)
chore: update from vulnerable version of h2
(#4714)
chore(ci): stop updating version list before cutting new docs version
(#4726)
chore: remove `FunctionInput::dummy`
(#4723)
chore: remove docker CI flow
(#4724)
fix: unknown slice lengths coming from as_slice
(#4725)
chore: remove unused env vars from `Cross.toml`
(#4717)
feat: improve nargo check cli with --override flag and feedback for
existing files (#4575)
feat: Allow slices to brillig entry points
(#4713)
chore: simplify how `acvm_backend.wasm` is embedded
(#4703)
fix(acvm): Mark outputs of Opcode::Call solvable
(#4708)
fix: Field comparisons (#4704)
feat(acvm_js): Execute program
(#4694)
chore: simplify how blns is loaded into tests
(#4705)
fix(ssa): Do not use get_value_max_num_bits when we want pure type
information (#4700)
chore: remove conditional compilation around `acvm_js` package
(#4702)
feat(docs): Documenting noir codegen
(#4454)
chore: check for references to private functions during path resolution
(#4622)
chore: fix clippy errors (#4684)
fix: Last use analysis & make it an SSA pass
(#4686)
feat: improve SSA type-awareness in EQ and MUL instructions
(#4691)
feat: improve optimisations on range constraints
(#4690)
chore: remove last traces of nix
(#4679)
chore: Use is_entry_point helper on RuntimeType
(#4678)
END_COMMIT_OVERRIDE

---------

Co-authored-by: sirasistant <sirasistant@gmail.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: vezenovm <mvezenov@gmail.com>
rahul-kothari pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Apr 10, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.34.0</summary>

##
[0.34.0](aztec-package-v0.33.0...aztec-package-v0.34.0)
(2024-04-10)


### Miscellaneous

* Reduce log verbosity in local e2e tests
([#5622](#5622))
([c496a10](c496a10))
</details>

<details><summary>barretenberg.js: 0.34.0</summary>

##
[0.34.0](barretenberg.js-v0.33.0...barretenberg.js-v0.34.0)
(2024-04-10)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-cli: 0.34.0</summary>

##
[0.34.0](aztec-cli-v0.33.0...aztec-cli-v0.34.0)
(2024-04-10)


### Miscellaneous

* Reduce log verbosity in local e2e tests
([#5622](#5622))
([c496a10](c496a10))
</details>

<details><summary>aztec-packages: 0.34.0</summary>

##
[0.34.0](aztec-packages-v0.33.0...aztec-packages-v0.34.0)
(2024-04-10)


### ⚠ BREAKING CHANGES

* remove fixed-length keccak256
([#5617](#5617))

### Features

* **acvm_js:** Execute program
(noir-lang/noir#4694)
([ff28080](ff28080))
* Add `remove_enable_side_effects` SSA pass
(noir-lang/noir#4224)
([ff28080](ff28080))
* Allow slices to brillig entry points
(noir-lang/noir#4713)
([ff28080](ff28080))
* **avm:** Basic AVM-ACVM interoperability
([#5595](#5595))
([d872445](d872445))
* **avm:** Make authwit work with avm
([#5594](#5594))
([b02d1e1](b02d1e1))
* **docs:** Documenting noir codegen
(noir-lang/noir#4454)
([ff28080](ff28080))
* Generalize protogalaxy to multiple instances
([#5510](#5510))
([f038b70](f038b70))
* Improve nargo check cli with --override flag and feedback for existing
files (noir-lang/noir#4575)
([ff28080](ff28080))
* Improve optimisations on range constraints
(noir-lang/noir#4690)
([ff28080](ff28080))
* Improve SSA type-awareness in EQ and MUL instructions
(noir-lang/noir#4691)
([ff28080](ff28080))
* **nargo:** Multiple circuits info for binary programs
(noir-lang/noir#4719)
([ff28080](ff28080))
* Stdlib databus
([#5598](#5598))
([633a711](633a711))


### Bug Fixes

* **acvm:** Mark outputs of Opcode::Call solvable
(noir-lang/noir#4708)
([ff28080](ff28080))
* Do not retry RPC requests on 4xx errors
([#5634](#5634))
([5af2b95](5af2b95))
* Field comparisons (noir-lang/noir#4704)
([ff28080](ff28080))
* Last use analysis & make it an SSA pass
(noir-lang/noir#4686)
([ff28080](ff28080))
* **ssa:** Do not use get_value_max_num_bits when we want pure type
information (noir-lang/noir#4700)
([ff28080](ff28080))
* Unknown slice lengths coming from as_slice
(noir-lang/noir#4725)
([ff28080](ff28080))
* Use empty artifact in test
([#5640](#5640))
([1d18a5e](1d18a5e))


### Miscellaneous

* Check for references to private functions during path resolution
(noir-lang/noir#4622)
([ff28080](ff28080))
* **ci:** Fix cutting new versions of the docs
(noir-lang/noir#4737)
([ff28080](ff28080))
* **ci:** Replace `yarn build:js:only` script
(noir-lang/noir#4735)
([ff28080](ff28080))
* **ci:** Stop updating version list before cutting new docs version
(noir-lang/noir#4726)
([ff28080](ff28080))
* Disable earthly cloud
([#5639](#5639))
([47e9c25](47e9c25))
* Fix clippy errors (noir-lang/noir#4684)
([ff28080](ff28080))
* Reduce log verbosity in local e2e tests
([#5622](#5622))
([c496a10](c496a10))
* Remove `FunctionInput::dummy`
(noir-lang/noir#4723)
([ff28080](ff28080))
* Remove conditional compilation around `acvm_js` package
(noir-lang/noir#4702)
([ff28080](ff28080))
* Remove docker CI flow (noir-lang/noir#4724)
([ff28080](ff28080))
* Remove fixed-length keccak256
([#5617](#5617))
([40480b3](40480b3))
* Remove last traces of nix
(noir-lang/noir#4679)
([ff28080](ff28080))
* Remove unused env vars from `Cross.toml`
(noir-lang/noir#4717)
([ff28080](ff28080))
* Replace relative paths to noir-protocol-circuits
([bc214c5](bc214c5))
* Simplify how `acvm_backend.wasm` is embedded
(noir-lang/noir#4703)
([ff28080](ff28080))
* Simplify how blns is loaded into tests
(noir-lang/noir#4705)
([ff28080](ff28080))
* Update condition for clearing warning comment on release PRs
(noir-lang/noir#4739)
([ff28080](ff28080))
* Update from vulnerable version of h2
(noir-lang/noir#4714)
([ff28080](ff28080))
* Update JS publish workflow to upload build artifacts correctly.
(noir-lang/noir#4734)
([ff28080](ff28080))
* Use is_entry_point helper on RuntimeType
(noir-lang/noir#4678)
([ff28080](ff28080))
</details>

<details><summary>barretenberg: 0.34.0</summary>

##
[0.34.0](barretenberg-v0.33.0...barretenberg-v0.34.0)
(2024-04-10)


### ⚠ BREAKING CHANGES

* remove fixed-length keccak256
([#5617](#5617))

### Features

* Generalize protogalaxy to multiple instances
([#5510](#5510))
([f038b70](f038b70))
* Stdlib databus
([#5598](#5598))
([633a711](633a711))


### Miscellaneous

* Remove fixed-length keccak256
([#5617](#5617))
([40480b3](40480b3))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
TomAFrench added a commit that referenced this pull request Apr 10, 2024
* master: (144 commits)
  fix: correct ICE panic messages in brillig `convert_black_box_call` (#4761)
  chore(docs): Fix link in the Data Types page (#4527)
  chore(doc): Fix broken docs links (#4606)
  chore: Remove the old Value struct from the oracle docs (#4738)
  feat(nargo): Multiple circuits info for binary programs (#4719)
  chore: update condition for clearing warning comment on release PRs (#4739)
  chore(ci): fix cutting new versions of the docs (#4737)
  chore(ci): replace `yarn build:js:only` script (#4735)
  chore: update JS publish workflow to upload build artifacts correctly. (#4734)
  feat: add `remove_enable_side_effects` SSA pass (#4224)
  chore: update from vulnerable version of h2 (#4714)
  chore(ci): stop updating version list before cutting new docs version (#4726)
  chore: remove `FunctionInput::dummy` (#4723)
  chore: remove docker CI flow (#4724)
  fix: unknown slice lengths coming from as_slice (#4725)
  chore: remove unused env vars from `Cross.toml` (#4717)
  feat: improve nargo check cli with --override flag and feedback for existing files (#4575)
  feat: Allow slices to brillig entry points (#4713)
  chore: simplify how `acvm_backend.wasm` is embedded (#4703)
  fix(acvm): Mark outputs of Opcode::Call solvable (#4708)
  ...
github-merge-queue bot pushed a commit that referenced this pull request Apr 10, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>0.27.0</summary>

## [0.27.0](v0.26.0...v0.27.0)
(2024-04-10)


### ⚠ BREAKING CHANGES

* Brillig typed memory
(AztecProtocol/aztec-packages#5395)

### Features

* **acir_gen:** Fold attribute at compile-time and initial non inlined
ACIR (AztecProtocol/aztec-packages#5341)
([a0f7474](a0f7474))
* **acvm_js:** Execute program
([#4694](#4694))
([386f6d0](386f6d0))
* **acvm:** Execute multiple circuits
(AztecProtocol/aztec-packages#5380)
([a0f7474](a0f7474))
* Add `remove_enable_side_effects` SSA pass
([#4224](#4224))
([94952db](94952db))
* Allow slices to brillig entry points
([#4713](#4713))
([62423d5](62423d5))
* Brillig typed memory
(AztecProtocol/aztec-packages#5395)
([0bc18c4](0bc18c4))
* **docs:** Documenting noir codegen
([#4454](#4454))
([24f6d85](24f6d85))
* Improve nargo check cli with --override flag and feedback for existing
files ([#4575](#4575))
([5e7fbd4](5e7fbd4))
* Improve optimisations on range constraints
([#4690](#4690))
([96b8110](96b8110))
* Improve SSA type-awareness in EQ and MUL instructions
([#4691](#4691))
([669f1a0](669f1a0))
* **nargo:** Multiple circuits info for binary programs
([#4719](#4719))
([50d2735](50d2735))


### Bug Fixes

* "Types in a binary operation should match, but found T and T"
([#4648](#4648))
([30c9f31](30c9f31))
* **acvm:** Mark outputs of Opcode::Call solvable
([#4708](#4708))
([8fea405](8fea405))
* Correct ICE panic messages in brillig `convert_black_box_call`
([#4761](#4761))
([f3eee6c](f3eee6c))
* Error when a type variable is unbound during monomorphization instead
of defaulting to Field
([#4674](#4674))
([03cdba4](03cdba4))
* Field comparisons
([#4704](#4704))
([079cb2a](079cb2a))
* Impl search no longer selects an impl if multiple are applicable
([#4662](#4662))
([0150600](0150600))
* Last use analysis & make it an SSA pass
([#4686](#4686))
([0d3d5fd](0d3d5fd))
* Slice coercions
([#4640](#4640))
([c0bae17](c0bae17))
* **ssa:** Accurate constant type for slice dummy data in flattening
([#4661](#4661))
([b87654e](b87654e))
* **ssa:** Do not use get_value_max_num_bits when we want pure type
information ([#4700](#4700))
([b55a580](b55a580))
* **ssa:** Fix slice intrinsic handling in the capacity tracker
([#4643](#4643))
([1b50ce1](1b50ce1))
* Unknown slice lengths coming from as_slice
([#4725](#4725))
([f21129e](f21129e))
* Update commit for noir-gates-diff
([#4773](#4773))
([a9766c5](a9766c5))
</details>

<details><summary>0.43.0</summary>

## [0.43.0](v0.42.0...v0.43.0)
(2024-04-10)


### ⚠ BREAKING CHANGES

* Brillig typed memory
(AztecProtocol/aztec-packages#5395)
* **acir:** Program and witness stack structure
(AztecProtocol/aztec-packages#5149)
* automatic NoteInterface and NoteGetterOptions auto select
(AztecProtocol/aztec-packages#4508)
* Acir call opcode
(AztecProtocol/aztec-packages#4773)
* Support contracts with no constructor
(AztecProtocol/aztec-packages#5175)
* Internal as a macro
(AztecProtocol/aztec-packages#4898)
* move noir out of yarn-project
(AztecProtocol/aztec-packages#4479)
* note type ids
(AztecProtocol/aztec-packages#4500)
* rename bigint_neg into bigint_sub
(AztecProtocol/aztec-packages#4420)
* Add expression width into acir
(AztecProtocol/aztec-packages#4014)
* init storage macro
(AztecProtocol/aztec-packages#4200)
* **acir:** Move `is_recursive` flag to be part of the circuit
definition (AztecProtocol/aztec-packages#4221)
* Sync commits from `aztec-packages`
([#4144](#4144))
* Breaking changes from aztec-packages
([#3955](#3955))
* Rename Arithmetic opcode to AssertZero
([#3840](#3840))
* Remove unused methods on ACIR opcodes
([#3841](#3841))

### Features

* Acir call opcode
(AztecProtocol/aztec-packages#4773)
([c3c9e19](c3c9e19))
* **acir_gen:** Fold attribute at compile-time and initial non inlined
ACIR (AztecProtocol/aztec-packages#5341)
([a0f7474](a0f7474))
* **acir:** Program and witness stack structure
(AztecProtocol/aztec-packages#5149)
([13eb71b](13eb71b))
* **acvm_js:** Execute program
([#4694](#4694))
([386f6d0](386f6d0))
* **acvm:** Execute multiple circuits
(AztecProtocol/aztec-packages#5380)
([a0f7474](a0f7474))
* Add bit size to const opcode
(AztecProtocol/aztec-packages#4385)
([158c8ce](158c8ce))
* Add CMOV instruction to brillig and brillig gen
(AztecProtocol/aztec-packages#5308)
([13eb71b](13eb71b))
* Add expression width into acir
(AztecProtocol/aztec-packages#4014)
([158c8ce](158c8ce))
* Add instrumentation for tracking variables in debugging
([#4122](#4122))
([c58d691](c58d691))
* Add poseidon2 opcode implementation for acvm/brillig, and Noir
([#4398](#4398))
([10e8292](10e8292))
* Add support for overriding expression width
([#4117](#4117))
([c8026d5](c8026d5))
* Added cast opcode and cast calldata
(AztecProtocol/aztec-packages#4423)
([78ef013](78ef013))
* Allow brillig to read arrays directly from memory
(AztecProtocol/aztec-packages#4460)
([158c8ce](158c8ce))
* Allow nested arrays and vectors in Brillig foreign calls
(AztecProtocol/aztec-packages#4478)
([158c8ce](158c8ce))
* Allow variables and stack trace inspection in the debugger
([#4184](#4184))
([bf263fc](bf263fc))
* Automatic NoteInterface and NoteGetterOptions auto select
(AztecProtocol/aztec-packages#4508)
([13eb71b](13eb71b))
* **avm:** Back in avm context with macro - refactor context
(AztecProtocol/aztec-packages#4438)
([158c8ce](158c8ce))
* **avm:** Brillig CONST of size &gt; u128
(AztecProtocol/aztec-packages#5217)
([c3c9e19](c3c9e19))
* **aztec-nr:** Initial work for aztec public vm macro
(AztecProtocol/aztec-packages#4400)
([158c8ce](158c8ce))
* Backpropagate constants in ACIR during optimization
([#3926](#3926))
([aad0da0](aad0da0))
* Breaking changes from aztec-packages
([#3955](#3955))
([5be049e](5be049e))
* Brillig IR refactor
(AztecProtocol/aztec-packages#5233)
([c3c9e19](c3c9e19))
* Brillig typed memory
(AztecProtocol/aztec-packages#5395)
([0bc18c4](0bc18c4))
* Check initializer msg.sender matches deployer from address preimage
(AztecProtocol/aztec-packages#5222)
([c3c9e19](c3c9e19))
* Evaluation of dynamic assert messages
([#4101](#4101))
([c284e01](c284e01))
* Init storage macro
(AztecProtocol/aztec-packages#4200)
([158c8ce](158c8ce))
* Initial Earthly CI
(AztecProtocol/aztec-packages#5069)
([c3c9e19](c3c9e19))
* Internal as a macro
(AztecProtocol/aztec-packages#4898)
([5f57ebb](5f57ebb))
* New brillig field operations and refactor of binary operations
(AztecProtocol/aztec-packages#5208)
([c3c9e19](c3c9e19))
* Note type ids
(AztecProtocol/aztec-packages#4500)
([78ef013](78ef013))
* Remove range constraints from witnesses which are constrained to be
constants ([#3928](#3928))
([afe9c7a](afe9c7a))
* Remove replacement of boolean range opcodes with `AssertZero` opcodes
([#4107](#4107))
([dac0e87](dac0e87))
* Signed integer division and modulus in brillig gen
(AztecProtocol/aztec-packages#5279)
([c3c9e19](c3c9e19))
* Support contracts with no constructor
(AztecProtocol/aztec-packages#5175)
([c3c9e19](c3c9e19))
* Sync `aztec-packages`
([#4011](#4011))
([fee2452](fee2452))
* Sync commits from `aztec-packages`
([#4068](#4068))
([7a8f3a3](7a8f3a3))
* Sync commits from `aztec-packages`
([#4144](#4144))
([0205d3b](0205d3b))
* Sync from aztec-packages
([#4483](#4483))
([fe8f277](fe8f277))
* Sync from noir
(AztecProtocol/aztec-packages#5234)
([c3c9e19](c3c9e19))
* Sync from noir
(AztecProtocol/aztec-packages#5286)
([c3c9e19](c3c9e19))


### Bug Fixes

* **acvm:** Mark outputs of Opcode::Call solvable
([#4708](#4708))
([8fea405](8fea405))
* Noir test incorrect reporting
(AztecProtocol/aztec-packages#4925)
([5f57ebb](5f57ebb))
* Remove panic from `init_log_level` in `acvm_js`
([#4195](#4195))
([2e26530](2e26530))
* Return error rather instead of panicking on invalid circuit
([#3976](#3976))
([67201bf](67201bf))


### Miscellaneous Chores

* **acir:** Move `is_recursive` flag to be part of the circuit
definition (AztecProtocol/aztec-packages#4221)
([158c8ce](158c8ce))
* Move noir out of yarn-project
(AztecProtocol/aztec-packages#4479)
([78ef013](78ef013))
* Remove unused methods on ACIR opcodes
([#3841](#3841))
([9e5d0e8](9e5d0e8))
* Rename Arithmetic opcode to AssertZero
([#3840](#3840))
([836f171](836f171))
* Rename bigint_neg into bigint_sub
(AztecProtocol/aztec-packages#4420)
([158c8ce](158c8ce))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Apr 11, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.34.0</summary>

##
[0.34.0](AztecProtocol/aztec-packages@aztec-package-v0.33.0...aztec-package-v0.34.0)
(2024-04-10)


### Miscellaneous

* Reduce log verbosity in local e2e tests
([#5622](AztecProtocol/aztec-packages#5622))
([c496a10](AztecProtocol/aztec-packages@c496a10))
</details>

<details><summary>barretenberg.js: 0.34.0</summary>

##
[0.34.0](AztecProtocol/aztec-packages@barretenberg.js-v0.33.0...barretenberg.js-v0.34.0)
(2024-04-10)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-cli: 0.34.0</summary>

##
[0.34.0](AztecProtocol/aztec-packages@aztec-cli-v0.33.0...aztec-cli-v0.34.0)
(2024-04-10)


### Miscellaneous

* Reduce log verbosity in local e2e tests
([#5622](AztecProtocol/aztec-packages#5622))
([c496a10](AztecProtocol/aztec-packages@c496a10))
</details>

<details><summary>aztec-packages: 0.34.0</summary>

##
[0.34.0](AztecProtocol/aztec-packages@aztec-packages-v0.33.0...aztec-packages-v0.34.0)
(2024-04-10)


### ⚠ BREAKING CHANGES

* remove fixed-length keccak256
([#5617](AztecProtocol/aztec-packages#5617))

### Features

* **acvm_js:** Execute program
(noir-lang/noir#4694)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Add `remove_enable_side_effects` SSA pass
(noir-lang/noir#4224)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Allow slices to brillig entry points
(noir-lang/noir#4713)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* **avm:** Basic AVM-ACVM interoperability
([#5595](AztecProtocol/aztec-packages#5595))
([d872445](AztecProtocol/aztec-packages@d872445))
* **avm:** Make authwit work with avm
([#5594](AztecProtocol/aztec-packages#5594))
([b02d1e1](AztecProtocol/aztec-packages@b02d1e1))
* **docs:** Documenting noir codegen
(noir-lang/noir#4454)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Generalize protogalaxy to multiple instances
([#5510](AztecProtocol/aztec-packages#5510))
([f038b70](AztecProtocol/aztec-packages@f038b70))
* Improve nargo check cli with --override flag and feedback for existing
files (noir-lang/noir#4575)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Improve optimisations on range constraints
(noir-lang/noir#4690)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Improve SSA type-awareness in EQ and MUL instructions
(noir-lang/noir#4691)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* **nargo:** Multiple circuits info for binary programs
(noir-lang/noir#4719)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Stdlib databus
([#5598](AztecProtocol/aztec-packages#5598))
([633a711](AztecProtocol/aztec-packages@633a711))


### Bug Fixes

* **acvm:** Mark outputs of Opcode::Call solvable
(noir-lang/noir#4708)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Do not retry RPC requests on 4xx errors
([#5634](AztecProtocol/aztec-packages#5634))
([5af2b95](AztecProtocol/aztec-packages@5af2b95))
* Field comparisons (noir-lang/noir#4704)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Last use analysis & make it an SSA pass
(noir-lang/noir#4686)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* **ssa:** Do not use get_value_max_num_bits when we want pure type
information (noir-lang/noir#4700)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Unknown slice lengths coming from as_slice
(noir-lang/noir#4725)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Use empty artifact in test
([#5640](AztecProtocol/aztec-packages#5640))
([1d18a5e](AztecProtocol/aztec-packages@1d18a5e))


### Miscellaneous

* Check for references to private functions during path resolution
(noir-lang/noir#4622)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* **ci:** Fix cutting new versions of the docs
(noir-lang/noir#4737)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* **ci:** Replace `yarn build:js:only` script
(noir-lang/noir#4735)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* **ci:** Stop updating version list before cutting new docs version
(noir-lang/noir#4726)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Disable earthly cloud
([#5639](AztecProtocol/aztec-packages#5639))
([47e9c25](AztecProtocol/aztec-packages@47e9c25))
* Fix clippy errors (noir-lang/noir#4684)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Reduce log verbosity in local e2e tests
([#5622](AztecProtocol/aztec-packages#5622))
([c496a10](AztecProtocol/aztec-packages@c496a10))
* Remove `FunctionInput::dummy`
(noir-lang/noir#4723)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Remove conditional compilation around `acvm_js` package
(noir-lang/noir#4702)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Remove docker CI flow (noir-lang/noir#4724)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Remove fixed-length keccak256
([#5617](AztecProtocol/aztec-packages#5617))
([40480b3](AztecProtocol/aztec-packages@40480b3))
* Remove last traces of nix
(noir-lang/noir#4679)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Remove unused env vars from `Cross.toml`
(noir-lang/noir#4717)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Replace relative paths to noir-protocol-circuits
([bc214c5](AztecProtocol/aztec-packages@bc214c5))
* Simplify how `acvm_backend.wasm` is embedded
(noir-lang/noir#4703)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Simplify how blns is loaded into tests
(noir-lang/noir#4705)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Update condition for clearing warning comment on release PRs
(noir-lang/noir#4739)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Update from vulnerable version of h2
(noir-lang/noir#4714)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Update JS publish workflow to upload build artifacts correctly.
(noir-lang/noir#4734)
([ff28080](AztecProtocol/aztec-packages@ff28080))
* Use is_entry_point helper on RuntimeType
(noir-lang/noir#4678)
([ff28080](AztecProtocol/aztec-packages@ff28080))
</details>

<details><summary>barretenberg: 0.34.0</summary>

##
[0.34.0](AztecProtocol/aztec-packages@barretenberg-v0.33.0...barretenberg-v0.34.0)
(2024-04-10)


### ⚠ BREAKING CHANGES

* remove fixed-length keccak256
([#5617](AztecProtocol/aztec-packages#5617))

### Features

* Generalize protogalaxy to multiple instances
([#5510](AztecProtocol/aztec-packages#5510))
([f038b70](AztecProtocol/aztec-packages@f038b70))
* Stdlib databus
([#5598](AztecProtocol/aztec-packages#5598))
([633a711](AztecProtocol/aztec-packages@633a711))


### Miscellaneous

* Remove fixed-length keccak256
([#5617](AztecProtocol/aztec-packages#5617))
([40480b3](AztecProtocol/aztec-packages@40480b3))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Apr 11, 2024
chore: Release Noir(0.27.0) (noir-lang/noir#4632)
fix: Update commit for noir-gates-diff (noir-lang/noir#4773)
fix: correct ICE panic messages in brillig `convert_black_box_call` (noir-lang/noir#4761)
chore(docs): Fix link in the Data Types page (noir-lang/noir#4527)
chore(doc): Fix broken docs links (noir-lang/noir#4606)
chore: Remove the old Value struct from the oracle docs (noir-lang/noir#4738)
feat(nargo): Multiple circuits info for binary programs (noir-lang/noir#4719)
chore: update condition for clearing warning comment on release PRs (noir-lang/noir#4739)
chore(ci): fix cutting new versions of the docs (noir-lang/noir#4737)
chore(ci): replace `yarn build:js:only` script (noir-lang/noir#4735)
chore: update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734)
feat: add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224)
chore: update from vulnerable version of h2 (noir-lang/noir#4714)
chore(ci): stop updating version list before cutting new docs version (noir-lang/noir#4726)
chore: remove `FunctionInput::dummy` (noir-lang/noir#4723)
chore: remove docker CI flow (noir-lang/noir#4724)
fix: unknown slice lengths coming from as_slice (noir-lang/noir#4725)
chore: remove unused env vars from `Cross.toml` (noir-lang/noir#4717)
feat: improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575)
feat: Allow slices to brillig entry points (noir-lang/noir#4713)
chore: simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703)
fix(acvm): Mark outputs of Opcode::Call solvable (noir-lang/noir#4708)
fix: Field comparisons (noir-lang/noir#4704)
feat(acvm_js): Execute program  (noir-lang/noir#4694)
chore: simplify how blns is loaded into tests (noir-lang/noir#4705)
fix(ssa): Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700)
chore: remove conditional compilation around `acvm_js` package (noir-lang/noir#4702)
feat(docs): Documenting noir codegen (noir-lang/noir#4454)
chore: check for references to private functions during path resolution (noir-lang/noir#4622)
chore: fix clippy errors (noir-lang/noir#4684)
fix: Last use analysis & make it an SSA pass (noir-lang/noir#4686)
feat: improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691)
feat: improve optimisations on range constraints (noir-lang/noir#4690)
chore: remove last traces of nix (noir-lang/noir#4679)
chore: Use is_entry_point helper on RuntimeType (noir-lang/noir#4678)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Nargo: Expand info cmd to support multiple circuits
4 participants