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: replace arithmetic equalities with assert equal #8386

Merged
merged 8 commits into from
Sep 5, 2024

Conversation

guipublic
Copy link
Contributor

Replace arithmetic equalities with assert_equal if the 2 equal witnesses have been both added previously into an arithmetic gate.

@guipublic guipublic requested a review from TomAFrench September 5, 2024 10:14
@TomAFrench TomAFrench changed the title chore: replace arithmetic equalities with assert equal feat: replace arithmetic equalities with assert equal Sep 5, 2024
Copy link
Contributor

github-actions bot commented Sep 5, 2024

Changes to circuit sizes

Generated at commit: af81becc8bfebd7532f4f8930b31ec2bd28bf165, compared to commit: 2be14157abe3b277c58780ecc03bb1eff8dec20e

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_base 0 ➖ 0.00% -3 ✅ -0.00%
public_kernel_setup 0 ➖ 0.00% -3 ✅ -0.00%
public_kernel_teardown 0 ➖ 0.00% -3 ✅ -0.00%
public_kernel_app_logic 0 ➖ 0.00% -3 ✅ -0.00%
public_kernel_tail 0 ➖ 0.00% -355 ✅ -0.01%
private_kernel_reset 0 ➖ 0.00% -455 ✅ -0.10%
private_kernel_reset_full_inner 0 ➖ 0.00% -455 ✅ -0.10%
private_kernel_tail 0 ➖ 0.00% -17 ✅ -0.14%
private_kernel_reset_big 0 ➖ 0.00% -455 ✅ -0.17%
private_kernel_reset_medium 0 ➖ 0.00% -455 ✅ -0.29%
private_kernel_tail_to_public 0 ➖ 0.00% -248 ✅ -0.43%
private_kernel_reset_small 0 ➖ 0.00% -455 ✅ -0.44%
private_kernel_reset_tiny 0 ➖ 0.00% -455 ✅ -0.58%
private_kernel_init 0 ➖ 0.00% -672 ✅ -1.75%
private_kernel_inner 0 ➖ 0.00% -1,330 ✅ -1.99%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_base 347,688 (0) 0.00% 3,607,500 (-3) -0.00%
public_kernel_setup 232,007 (0) 0.00% 1,931,839 (-3) -0.00%
public_kernel_teardown 232,178 (0) 0.00% 1,929,422 (-3) -0.00%
public_kernel_app_logic 231,547 (0) 0.00% 1,928,637 (-3) -0.00%
public_kernel_tail 500,803 (0) 0.00% 3,257,524 (-355) -0.01%
private_kernel_reset 92,596 (0) 0.00% 474,250 (-455) -0.10%
private_kernel_reset_full_inner 85,690 (0) 0.00% 444,570 (-455) -0.10%
private_kernel_tail 4,910 (0) 0.00% 12,236 (-17) -0.14%
private_kernel_reset_big 62,353 (0) 0.00% 262,917 (-455) -0.17%
private_kernel_reset_medium 47,044 (0) 0.00% 156,732 (-455) -0.29%
private_kernel_tail_to_public 37,378 (0) 0.00% 57,308 (-248) -0.43%
private_kernel_reset_small 39,387 (0) 0.00% 103,741 (-455) -0.44%
private_kernel_reset_tiny 35,560 (0) 0.00% 77,335 (-455) -0.58%
private_kernel_init 27,819 (0) 0.00% 37,788 (-672) -1.75%
private_kernel_inner 48,931 (0) 0.00% 65,346 (-1,330) -1.99%

@TomAFrench
Copy link
Member

Very strange that the ACIR opcodes count has changed.

@guipublic
Copy link
Contributor Author

guipublic commented Sep 5, 2024

It could be that assert_equal constraints are counted twice; once as assert_zero and then as asser_equal?
I tested on a circuit with 90 assert equals and it does not change circuit size (nor the acir opcodes), which is expected. We have copy constraints instead of arithmetic constraints.

@TomAFrench
Copy link
Member

I'm seeing similar numbers of ACIR opcode changes in #8391 so I don't think that it's this PR that's responsible.

@TomAFrench TomAFrench merged commit 0d8e835 into master Sep 5, 2024
36 checks passed
@TomAFrench TomAFrench deleted the gd/assert_equal branch September 5, 2024 16:04
TomAFrench pushed a commit that referenced this pull request Sep 9, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.53.0](aztec-package-v0.52.0...aztec-package-v0.53.0)
(2024-09-09)


### Bug Fixes

* Do not reuse anvil admin key
([#8304](#8304))
([6863fe5](6863fe5))
* Split stores per component and split merkle tree operations
([#8299](#8299))
([4ee69ac](4ee69ac))


### Miscellaneous

* Change efs volumes to use bursting throughput
([#8370](#8370))
([d6ebe3e](d6ebe3e))
* Fix spartan test nightly runner
([#8433](#8433))
([a34f353](a34f353))
* Increase AZTEC_SLOT_DURATION
([#8331](#8331))
([5d48500](5d48500))
* Merge provernet to master
([#8373](#8373))
([e1dc987](e1dc987))
* Pw/devnet fixes
([#8385](#8385))
([4fb4e17](4fb4e17))
</details>

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

##
[0.53.0](barretenberg.js-v0.52.0...barretenberg.js-v0.53.0)
(2024-09-09)


### Bug Fixes

* HonkRecursion serde for cpp bindings
([#8387](#8387))
([6162179](6162179))
</details>

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

##
[0.53.0](aztec-packages-v0.52.0...aztec-packages-v0.53.0)
(2024-09-09)


### ⚠ BREAKING CHANGES

* **avm/brillig:** take addresses in calldatacopy
([#8388](#8388))
* remove coinbase and unimplemented block gas limit opcodes from AVM
([#8408](#8408))
* return arrays instead of slices from `to_be_radix` functions
(noir-lang/noir#5851)
* Do not encode assertion strings in the programs
([#8315](#8315))

### Features

* `Module::add_item` (noir-lang/noir#5947)
([075036e](075036e))
* Add `Expr::as_assert_eq` (noir-lang/noir#5880)
([f8f4709](f8f4709))
* Add `fmtstr::contents` (noir-lang/noir#5928)
([05cc59f](05cc59f))
* Add `FunctionDef::set_return_visibility`
(noir-lang/noir#5941)
([f3e4f97](f3e4f97))
* Add `FunctionDefinition::add_attribute`
(noir-lang/noir#5944)
([f3e4f97](f3e4f97))
* Add `FunctionDefinition::module` and `StructDefinition::module`
(noir-lang/noir#5956)
([075036e](075036e))
* Add `FunctionDefinition` methods `is_unconstrained` and
`set_unconstrained` (noir-lang/noir#5962)
([075036e](075036e))
* Add `Quoted::tokens` (noir-lang/noir#5942)
([f3e4f97](f3e4f97))
* Add `std::meta::typ::fresh_type_variable`
(noir-lang/noir#5948)
([f3e4f97](f3e4f97))
* Add `StructDefinition::add_attribute` and `has_named_attribute`
(noir-lang/noir#5945)
([f3e4f97](f3e4f97))
* Add `StructDefinition::add_generic`
(noir-lang/noir#5961)
([075036e](075036e))
* Add `StructDefinition::name`
(noir-lang/noir#5960)
([075036e](075036e))
* Add `StructDefinition::set_fields`
(noir-lang/noir#5931)
([05cc59f](05cc59f))
* Add bot config to toggle simulation
([#8297](#8297))
([1c7c447](1c7c447))
* Add poseidon relations to UltraKeccak flavor and Solidity verifier
([#8243](#8243))
([f7e4bfb](f7e4bfb))
* Addressing Nico's router comments
([#8384](#8384))
([d582c93](d582c93))
* Allow inserting new structs and into programs from attributes
(noir-lang/noir#5927)
([05cc59f](05cc59f))
* Arithmetic Generics (noir-lang/noir#5950)
([075036e](075036e))
* **avm/brillig:** Take addresses in calldatacopy
([#8388](#8388))
([eab944c](eab944c))
* Better println for Quoted
(noir-lang/noir#5896)
([176bce6](176bce6))
* Calculate `FunctionSelector`s and `EventSelector`s during comptime
([#8354](#8354))
([52258b1](52258b1))
* Check argument count and types on attribute function callback
(noir-lang/noir#5921)
([05cc59f](05cc59f))
* **ci:** Tracy gate counter preset
([#8382](#8382))
([882af1e](882af1e))
* Do not encode assertion strings in the programs
([#8315](#8315))
([f5bbb89](f5bbb89))
* Implement `str_as_bytes` in the `comptime` interpreter
(noir-lang/noir#5887)
([f8f4709](f8f4709))
* Liveness analysis for constants
([#8294](#8294))
([0330ced](0330ced))
* LSP autocompletion for attributes
(noir-lang/noir#5963)
([075036e](075036e))
* LSP code action "Fill struct fields"
(noir-lang/noir#5885)
([176bce6](176bce6))
* LSP code actions to import or qualify unresolved paths
(noir-lang/noir#5876)
([f8f4709](f8f4709))
* LSP diagnostics for all package files
(noir-lang/noir#5895)
([176bce6](176bce6))
* LSP diagnostics now have "unnecessary" and "deprecated" tags
(noir-lang/noir#5878)
([f8f4709](f8f4709))
* LSP now suggests self fields and methods
(noir-lang/noir#5955)
([075036e](075036e))
* LSP will now suggest private items if they are visible
(noir-lang/noir#5923)
([05cc59f](05cc59f))
* Module attributes (noir-lang/noir#5888)
([05cc59f](05cc59f))
* Only check array bounds in brillig if index is unsafe
(noir-lang/noir#5938)
([05cc59f](05cc59f))
* **perf:** Remove known store values that equal the store address in
mem2reg (noir-lang/noir#5935)
([05cc59f](05cc59f))
* **perf:** Remove last store in return block if last load is before
that store (noir-lang/noir#5910)
([176bce6](176bce6))
* Remove blocks which consist of only a jump to another block
(noir-lang/noir#5889)
([05cc59f](05cc59f))
* Replace arithmetic equalities with assert equal
([#8386](#8386))
([0d8e835](0d8e835))
* Return arrays instead of slices from `to_be_radix` functions
(noir-lang/noir#5851)
([f8f4709](f8f4709))
* Router contract
([#8352](#8352))
([138dc52](138dc52))
* Sequencer selection in k8s tests
([#8313](#8313))
([8d9947d](8d9947d))
* Sync from aztec-packages (noir-lang/noir#5877)
([27e4761](27e4761))
* Sync from aztec-packages (noir-lang/noir#5883)
([f8f4709](f8f4709))
* Sync from aztec-packages (noir-lang/noir#5917)
([176bce6](176bce6))
* Sync from aztec-packages (noir-lang/noir#5951)
([f3e4f97](f3e4f97))
* Track proving times in prover stats in CLI
([#8281](#8281))
([efad298](efad298))
* Tuple return value typescript decoding
([#8319](#8319))
([b09a1bb](b09a1bb))
* Ultra keccak honk verifier
([#8261](#8261))
([7f02900](7f02900))
* Unquote some value as tokens, not as unquote markers
(noir-lang/noir#5924)
([05cc59f](05cc59f))
* Update AztecIvc interface to facilitate acir-ivc
([#8230](#8230))
([665750a](665750a))
* Use visibility (noir-lang/noir#5856)
([f8f4709](f8f4709))
* Verify public validation requests
([#8150](#8150))
([2be1415](2be1415))
* Warn on unused functions (noir-lang/noir#5892)
([05cc59f](05cc59f))


### Bug Fixes

* Address issues when using wall-time
([#8329](#8329))
([639fb3b](639fb3b))
* Always place module attribute generated items inside module
(noir-lang/noir#5943)
([f3e4f97](f3e4f97))
* Bot config for skip public simulation
([#8320](#8320))
([133b642](133b642))
* Broken build
([#8395](#8395))
([d0ea6eb](d0ea6eb))
* Collect functions generated by attributes
(noir-lang/noir#5930)
([05cc59f](05cc59f))
* Do not reuse anvil admin key
([#8304](#8304))
([6863fe5](6863fe5))
* **frontend:** Ban type vars bound to a reference from passing the
unconstrained boundary (noir-lang/noir#5949)
([f3e4f97](f3e4f97))
* HonkRecursion serde for cpp bindings
([#8387](#8387))
([6162179](6162179))
* Increase timeout for Sepolia mining
([#8430](#8430))
([29369ed](29369ed))
* Let `derive(Eq)` work for empty structs
(noir-lang/noir#5965)
([075036e](075036e))
* **mem2reg:** Handle aliases better when setting a known value for a
load (noir-lang/noir#5959)
([075036e](075036e))
* **mem2reg:** Handle aliases in function last store cleanup and
additional alias unit test (noir-lang/noir#5967)
([075036e](075036e))
* Prevent comptime println from crashing LSP
(noir-lang/noir#5918)
([176bce6](176bce6))
* Revert "feat: ultra keccak honk verifier
([#8427](#8427))
([31df5ea](31df5ea))
* Revert "feat: ultra keccak honk verifier"
([#8391](#8391))
([3228e75](3228e75))
* Split stores per component and split merkle tree operations
([#8299](#8299))
([4ee69ac](4ee69ac))
* SubscriptionNote preimage attack
([#8390](#8390))
([94006a9](94006a9))
* Support debug comptime flag for attributes
(noir-lang/noir#5929)
([05cc59f](05cc59f))
* Temporary register leaks in brillig gen
([#8350](#8350))
([5f6d2e2](5f6d2e2))
* Transpiler after noir sync
([#8353](#8353))
([249e50e](249e50e))
* TXE logs in docker
([#8365](#8365))
([157dd11](157dd11))
* Use element_size() instead of computing it with division
(noir-lang/noir#5939)
([05cc59f](05cc59f))
* Wait for receipt
([#8358](#8358))
([8b7b2d2](8b7b2d2))


### Miscellaneous

* Add a span to track timing of brillig gen
(noir-lang/noir#5835)
([f8f4709](f8f4709))
* Add pass to normalize Ids in SSA
(noir-lang/noir#5909)
([176bce6](176bce6))
* Add uint (U128) note to aztec-nr and remove OwnedNote from ValueNote
([#8142](#8142))
([225b6d3](225b6d3))
* **avm:** Move proving key to avm files
([#8318](#8318))
([32d67bd](32d67bd))
* **avm:** Remove some unused deps
([#8366](#8366))
([e2150a7](e2150a7))
* **bb:** Reinstate "chore: uncomment asserts in oink rec verifier""
([#8356](#8356))
([4dbad01](4dbad01))
* **bb:** Use std::span for srs
([#8371](#8371))
([f174699](f174699))
* Bump some dependencies (noir-lang/noir#5893)
([176bce6](176bce6))
* Change efs volumes to use bursting throughput
([#8370](#8370))
([d6ebe3e](d6ebe3e))
* **ci:** Don't run on draft PRs
([#8426](#8426))
([8abe6c8](8abe6c8))
* **ci:** Skip vk generation on `protocol-circuits-gates-report` and
`noir-format`
([#8398](#8398))
([824aa8a](824aa8a))
* **ci:** Test lowering of non-persistent ebs provisions
([#8360](#8360))
([8ee8595](8ee8595))
* Cleanup str_as_bytes (noir-lang/noir#5900)
([176bce6](176bce6))
* Delete more unwanted stuff from noir code
([#8335](#8335))
([d2a8aa4](d2a8aa4))
* **docs:** Cli wallet
([#8182](#8182))
([7298c8f](7298c8f))
* **docs:** Fix migration notes
([#8447](#8447))
([1e91469](1e91469))
* Error on false constraint
(noir-lang/noir#5890)
([05cc59f](05cc59f))
* Fix some instances of missing unsafe blocks
([#8232](#8232))
([e8e0907](e8e0907))
* Fix spartan test nightly runner
([#8433](#8433))
([a34f353](a34f353))
* Improve ec addition
([#8291](#8291))
([e8a097c](e8a097c))
* Increase AZTEC_SLOT_DURATION
([#8331](#8331))
([5d48500](5d48500))
* Make nested slice error more clear for `[[T]; N]` case
(noir-lang/noir#5906)
([176bce6](176bce6))
* Merge provernet to master
([#8373](#8373))
([e1dc987](e1dc987))
* More efficient verification with shplonk and gemini
([#8351](#8351))
([e51d157](e51d157))
* Move spartan network tests to nightly
([#8369](#8369))
([8fe045c](8fe045c))
* No assert in `is_valid_impl(...)`
([#8397](#8397))
([1c1d35a](1c1d35a))
* Pw/devnet fixes
([#8385](#8385))
([4fb4e17](4fb4e17))
* Redo typo PR by FilipHarald
([#8418](#8418))
([2894b68](2894b68))
* Redo typo PR by operagxsasha
([#8429](#8429))
([a1060a3](a1060a3))
* Remove coinbase and unimplemented block gas limit opcodes from AVM
([#8408](#8408))
([dd09b76](dd09b76))
* Remove equality operation on boolean constraints against constants
(noir-lang/noir#5919)
([176bce6](176bce6))
* Remove override to use rust syntax highlighting
(noir-lang/noir#5881)
([f3e4f97](f3e4f97))
* Remove unimplemented headermember opcode from avm
([#8407](#8407))
([cfea06e](cfea06e))
* Renaming `Instance`'s
([#8362](#8362))
([4789440](4789440))
* Replace relative paths to noir-protocol-circuits
([3c9d85e](3c9d85e))
* Replace relative paths to noir-protocol-circuits
([69b1754](69b1754))
* Replace relative paths to noir-protocol-circuits
([feff126](feff126))
* Replace relative paths to noir-protocol-circuits
([3d58d36](3d58d36))
* Replace relative paths to noir-protocol-circuits
([7c15ac4](7c15ac4))
* **revert:** "chore(ci): Test lowering of non-persistent ebs
provisions"
([#8392](#8392))
([2ea6ec2](2ea6ec2))
* Send anvil logs to stdout
([#8311](#8311))
([6a2614a](6a2614a))
* Uncomment asserts in oink rec verifier
([#8316](#8316))
([a7f3144](a7f3144))
* Update git user for release PRs
(noir-lang/noir#5894)
([176bce6](176bce6))
* Use `new_let` more widely
(noir-lang/noir#5882)
([f8f4709](f8f4709))
</details>

<details><summary>barretenberg: 0.53.0</summary>

##
[0.53.0](barretenberg-v0.52.0...barretenberg-v0.53.0)
(2024-09-09)


### ⚠ BREAKING CHANGES

* **avm/brillig:** take addresses in calldatacopy
([#8388](#8388))
* remove coinbase and unimplemented block gas limit opcodes from AVM
([#8408](#8408))

### Features

* Add poseidon relations to UltraKeccak flavor and Solidity verifier
([#8243](#8243))
([f7e4bfb](f7e4bfb))
* **avm/brillig:** Take addresses in calldatacopy
([#8388](#8388))
([eab944c](eab944c))
* **ci:** Tracy gate counter preset
([#8382](#8382))
([882af1e](882af1e))
* Replace arithmetic equalities with assert equal
([#8386](#8386))
([0d8e835](0d8e835))
* Ultra keccak honk verifier
([#8261](#8261))
([7f02900](7f02900))
* Update AztecIvc interface to facilitate acir-ivc
([#8230](#8230))
([665750a](665750a))
* Verify public validation requests
([#8150](#8150))
([2be1415](2be1415))


### Bug Fixes

* Broken build
([#8395](#8395))
([d0ea6eb](d0ea6eb))
* Revert "feat: ultra keccak honk verifier
([#8427](#8427))
([31df5ea](31df5ea))
* Revert "feat: ultra keccak honk verifier"
([#8391](#8391))
([3228e75](3228e75))


### Miscellaneous

* **avm:** Move proving key to avm files
([#8318](#8318))
([32d67bd](32d67bd))
* **avm:** Remove some unused deps
([#8366](#8366))
([e2150a7](e2150a7))
* **bb:** Reinstate "chore: uncomment asserts in oink rec verifier""
([#8356](#8356))
([4dbad01](4dbad01))
* **bb:** Use std::span for srs
([#8371](#8371))
([f174699](f174699))
* Improve ec addition
([#8291](#8291))
([e8a097c](e8a097c))
* More efficient verification with shplonk and gemini
([#8351](#8351))
([e51d157](e51d157))
* Remove coinbase and unimplemented block gas limit opcodes from AVM
([#8408](#8408))
([dd09b76](dd09b76))
* Remove unimplemented headermember opcode from avm
([#8407](#8407))
([cfea06e](cfea06e))
* Renaming `Instance`'s
([#8362](#8362))
([4789440](4789440))
* Uncomment asserts in oink rec verifier
([#8316](#8316))
([a7f3144](a7f3144))
</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 Sep 10, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.53.0](AztecProtocol/aztec-packages@aztec-package-v0.52.0...aztec-package-v0.53.0)
(2024-09-09)


### Bug Fixes

* Do not reuse anvil admin key
([#8304](AztecProtocol/aztec-packages#8304))
([6863fe5](AztecProtocol/aztec-packages@6863fe5))
* Split stores per component and split merkle tree operations
([#8299](AztecProtocol/aztec-packages#8299))
([4ee69ac](AztecProtocol/aztec-packages@4ee69ac))


### Miscellaneous

* Change efs volumes to use bursting throughput
([#8370](AztecProtocol/aztec-packages#8370))
([d6ebe3e](AztecProtocol/aztec-packages@d6ebe3e))
* Fix spartan test nightly runner
([#8433](AztecProtocol/aztec-packages#8433))
([a34f353](AztecProtocol/aztec-packages@a34f353))
* Increase AZTEC_SLOT_DURATION
([#8331](AztecProtocol/aztec-packages#8331))
([5d48500](AztecProtocol/aztec-packages@5d48500))
* Merge provernet to master
([#8373](AztecProtocol/aztec-packages#8373))
([e1dc987](AztecProtocol/aztec-packages@e1dc987))
* Pw/devnet fixes
([#8385](AztecProtocol/aztec-packages#8385))
([4fb4e17](AztecProtocol/aztec-packages@4fb4e17))
</details>

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

##
[0.53.0](AztecProtocol/aztec-packages@barretenberg.js-v0.52.0...barretenberg.js-v0.53.0)
(2024-09-09)


### Bug Fixes

* HonkRecursion serde for cpp bindings
([#8387](AztecProtocol/aztec-packages#8387))
([6162179](AztecProtocol/aztec-packages@6162179))
</details>

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

##
[0.53.0](AztecProtocol/aztec-packages@aztec-packages-v0.52.0...aztec-packages-v0.53.0)
(2024-09-09)


### ⚠ BREAKING CHANGES

* **avm/brillig:** take addresses in calldatacopy
([#8388](AztecProtocol/aztec-packages#8388))
* remove coinbase and unimplemented block gas limit opcodes from AVM
([#8408](AztecProtocol/aztec-packages#8408))
* return arrays instead of slices from `to_be_radix` functions
(noir-lang/noir#5851)
* Do not encode assertion strings in the programs
([#8315](AztecProtocol/aztec-packages#8315))

### Features

* `Module::add_item` (noir-lang/noir#5947)
([075036e](AztecProtocol/aztec-packages@075036e))
* Add `Expr::as_assert_eq` (noir-lang/noir#5880)
([f8f4709](AztecProtocol/aztec-packages@f8f4709))
* Add `fmtstr::contents` (noir-lang/noir#5928)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Add `FunctionDef::set_return_visibility`
(noir-lang/noir#5941)
([f3e4f97](AztecProtocol/aztec-packages@f3e4f97))
* Add `FunctionDefinition::add_attribute`
(noir-lang/noir#5944)
([f3e4f97](AztecProtocol/aztec-packages@f3e4f97))
* Add `FunctionDefinition::module` and `StructDefinition::module`
(noir-lang/noir#5956)
([075036e](AztecProtocol/aztec-packages@075036e))
* Add `FunctionDefinition` methods `is_unconstrained` and
`set_unconstrained` (noir-lang/noir#5962)
([075036e](AztecProtocol/aztec-packages@075036e))
* Add `Quoted::tokens` (noir-lang/noir#5942)
([f3e4f97](AztecProtocol/aztec-packages@f3e4f97))
* Add `std::meta::typ::fresh_type_variable`
(noir-lang/noir#5948)
([f3e4f97](AztecProtocol/aztec-packages@f3e4f97))
* Add `StructDefinition::add_attribute` and `has_named_attribute`
(noir-lang/noir#5945)
([f3e4f97](AztecProtocol/aztec-packages@f3e4f97))
* Add `StructDefinition::add_generic`
(noir-lang/noir#5961)
([075036e](AztecProtocol/aztec-packages@075036e))
* Add `StructDefinition::name`
(noir-lang/noir#5960)
([075036e](AztecProtocol/aztec-packages@075036e))
* Add `StructDefinition::set_fields`
(noir-lang/noir#5931)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Add bot config to toggle simulation
([#8297](AztecProtocol/aztec-packages#8297))
([1c7c447](AztecProtocol/aztec-packages@1c7c447))
* Add poseidon relations to UltraKeccak flavor and Solidity verifier
([#8243](AztecProtocol/aztec-packages#8243))
([f7e4bfb](AztecProtocol/aztec-packages@f7e4bfb))
* Addressing Nico's router comments
([#8384](AztecProtocol/aztec-packages#8384))
([d582c93](AztecProtocol/aztec-packages@d582c93))
* Allow inserting new structs and into programs from attributes
(noir-lang/noir#5927)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Arithmetic Generics (noir-lang/noir#5950)
([075036e](AztecProtocol/aztec-packages@075036e))
* **avm/brillig:** Take addresses in calldatacopy
([#8388](AztecProtocol/aztec-packages#8388))
([eab944c](AztecProtocol/aztec-packages@eab944c))
* Better println for Quoted
(noir-lang/noir#5896)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Calculate `FunctionSelector`s and `EventSelector`s during comptime
([#8354](AztecProtocol/aztec-packages#8354))
([52258b1](AztecProtocol/aztec-packages@52258b1))
* Check argument count and types on attribute function callback
(noir-lang/noir#5921)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* **ci:** Tracy gate counter preset
([#8382](AztecProtocol/aztec-packages#8382))
([882af1e](AztecProtocol/aztec-packages@882af1e))
* Do not encode assertion strings in the programs
([#8315](AztecProtocol/aztec-packages#8315))
([f5bbb89](AztecProtocol/aztec-packages@f5bbb89))
* Implement `str_as_bytes` in the `comptime` interpreter
(noir-lang/noir#5887)
([f8f4709](AztecProtocol/aztec-packages@f8f4709))
* Liveness analysis for constants
([#8294](AztecProtocol/aztec-packages#8294))
([0330ced](AztecProtocol/aztec-packages@0330ced))
* LSP autocompletion for attributes
(noir-lang/noir#5963)
([075036e](AztecProtocol/aztec-packages@075036e))
* LSP code action "Fill struct fields"
(noir-lang/noir#5885)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* LSP code actions to import or qualify unresolved paths
(noir-lang/noir#5876)
([f8f4709](AztecProtocol/aztec-packages@f8f4709))
* LSP diagnostics for all package files
(noir-lang/noir#5895)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* LSP diagnostics now have "unnecessary" and "deprecated" tags
(noir-lang/noir#5878)
([f8f4709](AztecProtocol/aztec-packages@f8f4709))
* LSP now suggests self fields and methods
(noir-lang/noir#5955)
([075036e](AztecProtocol/aztec-packages@075036e))
* LSP will now suggest private items if they are visible
(noir-lang/noir#5923)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Module attributes (noir-lang/noir#5888)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Only check array bounds in brillig if index is unsafe
(noir-lang/noir#5938)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* **perf:** Remove known store values that equal the store address in
mem2reg (noir-lang/noir#5935)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* **perf:** Remove last store in return block if last load is before
that store (noir-lang/noir#5910)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Remove blocks which consist of only a jump to another block
(noir-lang/noir#5889)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Replace arithmetic equalities with assert equal
([#8386](AztecProtocol/aztec-packages#8386))
([0d8e835](AztecProtocol/aztec-packages@0d8e835))
* Return arrays instead of slices from `to_be_radix` functions
(noir-lang/noir#5851)
([f8f4709](AztecProtocol/aztec-packages@f8f4709))
* Router contract
([#8352](AztecProtocol/aztec-packages#8352))
([138dc52](AztecProtocol/aztec-packages@138dc52))
* Sequencer selection in k8s tests
([#8313](AztecProtocol/aztec-packages#8313))
([8d9947d](AztecProtocol/aztec-packages@8d9947d))
* Sync from aztec-packages (noir-lang/noir#5877)
([27e4761](AztecProtocol/aztec-packages@27e4761))
* Sync from aztec-packages (noir-lang/noir#5883)
([f8f4709](AztecProtocol/aztec-packages@f8f4709))
* Sync from aztec-packages (noir-lang/noir#5917)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Sync from aztec-packages (noir-lang/noir#5951)
([f3e4f97](AztecProtocol/aztec-packages@f3e4f97))
* Track proving times in prover stats in CLI
([#8281](AztecProtocol/aztec-packages#8281))
([efad298](AztecProtocol/aztec-packages@efad298))
* Tuple return value typescript decoding
([#8319](AztecProtocol/aztec-packages#8319))
([b09a1bb](AztecProtocol/aztec-packages@b09a1bb))
* Ultra keccak honk verifier
([#8261](AztecProtocol/aztec-packages#8261))
([7f02900](AztecProtocol/aztec-packages@7f02900))
* Unquote some value as tokens, not as unquote markers
(noir-lang/noir#5924)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Update AztecIvc interface to facilitate acir-ivc
([#8230](AztecProtocol/aztec-packages#8230))
([665750a](AztecProtocol/aztec-packages@665750a))
* Use visibility (noir-lang/noir#5856)
([f8f4709](AztecProtocol/aztec-packages@f8f4709))
* Verify public validation requests
([#8150](AztecProtocol/aztec-packages#8150))
([2be1415](AztecProtocol/aztec-packages@2be1415))
* Warn on unused functions (noir-lang/noir#5892)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))


### Bug Fixes

* Address issues when using wall-time
([#8329](AztecProtocol/aztec-packages#8329))
([639fb3b](AztecProtocol/aztec-packages@639fb3b))
* Always place module attribute generated items inside module
(noir-lang/noir#5943)
([f3e4f97](AztecProtocol/aztec-packages@f3e4f97))
* Bot config for skip public simulation
([#8320](AztecProtocol/aztec-packages#8320))
([133b642](AztecProtocol/aztec-packages@133b642))
* Broken build
([#8395](AztecProtocol/aztec-packages#8395))
([d0ea6eb](AztecProtocol/aztec-packages@d0ea6eb))
* Collect functions generated by attributes
(noir-lang/noir#5930)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Do not reuse anvil admin key
([#8304](AztecProtocol/aztec-packages#8304))
([6863fe5](AztecProtocol/aztec-packages@6863fe5))
* **frontend:** Ban type vars bound to a reference from passing the
unconstrained boundary (noir-lang/noir#5949)
([f3e4f97](AztecProtocol/aztec-packages@f3e4f97))
* HonkRecursion serde for cpp bindings
([#8387](AztecProtocol/aztec-packages#8387))
([6162179](AztecProtocol/aztec-packages@6162179))
* Increase timeout for Sepolia mining
([#8430](AztecProtocol/aztec-packages#8430))
([29369ed](AztecProtocol/aztec-packages@29369ed))
* Let `derive(Eq)` work for empty structs
(noir-lang/noir#5965)
([075036e](AztecProtocol/aztec-packages@075036e))
* **mem2reg:** Handle aliases better when setting a known value for a
load (noir-lang/noir#5959)
([075036e](AztecProtocol/aztec-packages@075036e))
* **mem2reg:** Handle aliases in function last store cleanup and
additional alias unit test (noir-lang/noir#5967)
([075036e](AztecProtocol/aztec-packages@075036e))
* Prevent comptime println from crashing LSP
(noir-lang/noir#5918)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Revert "feat: ultra keccak honk verifier
([#8427](AztecProtocol/aztec-packages#8427))
([31df5ea](AztecProtocol/aztec-packages@31df5ea))
* Revert "feat: ultra keccak honk verifier"
([#8391](AztecProtocol/aztec-packages#8391))
([3228e75](AztecProtocol/aztec-packages@3228e75))
* Split stores per component and split merkle tree operations
([#8299](AztecProtocol/aztec-packages#8299))
([4ee69ac](AztecProtocol/aztec-packages@4ee69ac))
* SubscriptionNote preimage attack
([#8390](AztecProtocol/aztec-packages#8390))
([94006a9](AztecProtocol/aztec-packages@94006a9))
* Support debug comptime flag for attributes
(noir-lang/noir#5929)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Temporary register leaks in brillig gen
([#8350](AztecProtocol/aztec-packages#8350))
([5f6d2e2](AztecProtocol/aztec-packages@5f6d2e2))
* Transpiler after noir sync
([#8353](AztecProtocol/aztec-packages#8353))
([249e50e](AztecProtocol/aztec-packages@249e50e))
* TXE logs in docker
([#8365](AztecProtocol/aztec-packages#8365))
([157dd11](AztecProtocol/aztec-packages@157dd11))
* Use element_size() instead of computing it with division
(noir-lang/noir#5939)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Wait for receipt
([#8358](AztecProtocol/aztec-packages#8358))
([8b7b2d2](AztecProtocol/aztec-packages@8b7b2d2))


### Miscellaneous

* Add a span to track timing of brillig gen
(noir-lang/noir#5835)
([f8f4709](AztecProtocol/aztec-packages@f8f4709))
* Add pass to normalize Ids in SSA
(noir-lang/noir#5909)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Add uint (U128) note to aztec-nr and remove OwnedNote from ValueNote
([#8142](AztecProtocol/aztec-packages#8142))
([225b6d3](AztecProtocol/aztec-packages@225b6d3))
* **avm:** Move proving key to avm files
([#8318](AztecProtocol/aztec-packages#8318))
([32d67bd](AztecProtocol/aztec-packages@32d67bd))
* **avm:** Remove some unused deps
([#8366](AztecProtocol/aztec-packages#8366))
([e2150a7](AztecProtocol/aztec-packages@e2150a7))
* **bb:** Reinstate "chore: uncomment asserts in oink rec verifier""
([#8356](AztecProtocol/aztec-packages#8356))
([4dbad01](AztecProtocol/aztec-packages@4dbad01))
* **bb:** Use std::span for srs
([#8371](AztecProtocol/aztec-packages#8371))
([f174699](AztecProtocol/aztec-packages@f174699))
* Bump some dependencies (noir-lang/noir#5893)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Change efs volumes to use bursting throughput
([#8370](AztecProtocol/aztec-packages#8370))
([d6ebe3e](AztecProtocol/aztec-packages@d6ebe3e))
* **ci:** Don't run on draft PRs
([#8426](AztecProtocol/aztec-packages#8426))
([8abe6c8](AztecProtocol/aztec-packages@8abe6c8))
* **ci:** Skip vk generation on `protocol-circuits-gates-report` and
`noir-format`
([#8398](AztecProtocol/aztec-packages#8398))
([824aa8a](AztecProtocol/aztec-packages@824aa8a))
* **ci:** Test lowering of non-persistent ebs provisions
([#8360](AztecProtocol/aztec-packages#8360))
([8ee8595](AztecProtocol/aztec-packages@8ee8595))
* Cleanup str_as_bytes (noir-lang/noir#5900)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Delete more unwanted stuff from noir code
([#8335](AztecProtocol/aztec-packages#8335))
([d2a8aa4](AztecProtocol/aztec-packages@d2a8aa4))
* **docs:** Cli wallet
([#8182](AztecProtocol/aztec-packages#8182))
([7298c8f](AztecProtocol/aztec-packages@7298c8f))
* **docs:** Fix migration notes
([#8447](AztecProtocol/aztec-packages#8447))
([1e91469](AztecProtocol/aztec-packages@1e91469))
* Error on false constraint
(noir-lang/noir#5890)
([05cc59f](AztecProtocol/aztec-packages@05cc59f))
* Fix some instances of missing unsafe blocks
([#8232](AztecProtocol/aztec-packages#8232))
([e8e0907](AztecProtocol/aztec-packages@e8e0907))
* Fix spartan test nightly runner
([#8433](AztecProtocol/aztec-packages#8433))
([a34f353](AztecProtocol/aztec-packages@a34f353))
* Improve ec addition
([#8291](AztecProtocol/aztec-packages#8291))
([e8a097c](AztecProtocol/aztec-packages@e8a097c))
* Increase AZTEC_SLOT_DURATION
([#8331](AztecProtocol/aztec-packages#8331))
([5d48500](AztecProtocol/aztec-packages@5d48500))
* Make nested slice error more clear for `[[T]; N]` case
(noir-lang/noir#5906)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Merge provernet to master
([#8373](AztecProtocol/aztec-packages#8373))
([e1dc987](AztecProtocol/aztec-packages@e1dc987))
* More efficient verification with shplonk and gemini
([#8351](AztecProtocol/aztec-packages#8351))
([e51d157](AztecProtocol/aztec-packages@e51d157))
* Move spartan network tests to nightly
([#8369](AztecProtocol/aztec-packages#8369))
([8fe045c](AztecProtocol/aztec-packages@8fe045c))
* No assert in `is_valid_impl(...)`
([#8397](AztecProtocol/aztec-packages#8397))
([1c1d35a](AztecProtocol/aztec-packages@1c1d35a))
* Pw/devnet fixes
([#8385](AztecProtocol/aztec-packages#8385))
([4fb4e17](AztecProtocol/aztec-packages@4fb4e17))
* Redo typo PR by FilipHarald
([#8418](AztecProtocol/aztec-packages#8418))
([2894b68](AztecProtocol/aztec-packages@2894b68))
* Redo typo PR by operagxsasha
([#8429](AztecProtocol/aztec-packages#8429))
([a1060a3](AztecProtocol/aztec-packages@a1060a3))
* Remove coinbase and unimplemented block gas limit opcodes from AVM
([#8408](AztecProtocol/aztec-packages#8408))
([dd09b76](AztecProtocol/aztec-packages@dd09b76))
* Remove equality operation on boolean constraints against constants
(noir-lang/noir#5919)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Remove override to use rust syntax highlighting
(noir-lang/noir#5881)
([f3e4f97](AztecProtocol/aztec-packages@f3e4f97))
* Remove unimplemented headermember opcode from avm
([#8407](AztecProtocol/aztec-packages#8407))
([cfea06e](AztecProtocol/aztec-packages@cfea06e))
* Renaming `Instance`'s
([#8362](AztecProtocol/aztec-packages#8362))
([4789440](AztecProtocol/aztec-packages@4789440))
* Replace relative paths to noir-protocol-circuits
([3c9d85e](AztecProtocol/aztec-packages@3c9d85e))
* Replace relative paths to noir-protocol-circuits
([69b1754](AztecProtocol/aztec-packages@69b1754))
* Replace relative paths to noir-protocol-circuits
([feff126](AztecProtocol/aztec-packages@feff126))
* Replace relative paths to noir-protocol-circuits
([3d58d36](AztecProtocol/aztec-packages@3d58d36))
* Replace relative paths to noir-protocol-circuits
([7c15ac4](AztecProtocol/aztec-packages@7c15ac4))
* **revert:** "chore(ci): Test lowering of non-persistent ebs
provisions"
([#8392](AztecProtocol/aztec-packages#8392))
([2ea6ec2](AztecProtocol/aztec-packages@2ea6ec2))
* Send anvil logs to stdout
([#8311](AztecProtocol/aztec-packages#8311))
([6a2614a](AztecProtocol/aztec-packages@6a2614a))
* Uncomment asserts in oink rec verifier
([#8316](AztecProtocol/aztec-packages#8316))
([a7f3144](AztecProtocol/aztec-packages@a7f3144))
* Update git user for release PRs
(noir-lang/noir#5894)
([176bce6](AztecProtocol/aztec-packages@176bce6))
* Use `new_let` more widely
(noir-lang/noir#5882)
([f8f4709](AztecProtocol/aztec-packages@f8f4709))
</details>

<details><summary>barretenberg: 0.53.0</summary>

##
[0.53.0](AztecProtocol/aztec-packages@barretenberg-v0.52.0...barretenberg-v0.53.0)
(2024-09-09)


### ⚠ BREAKING CHANGES

* **avm/brillig:** take addresses in calldatacopy
([#8388](AztecProtocol/aztec-packages#8388))
* remove coinbase and unimplemented block gas limit opcodes from AVM
([#8408](AztecProtocol/aztec-packages#8408))

### Features

* Add poseidon relations to UltraKeccak flavor and Solidity verifier
([#8243](AztecProtocol/aztec-packages#8243))
([f7e4bfb](AztecProtocol/aztec-packages@f7e4bfb))
* **avm/brillig:** Take addresses in calldatacopy
([#8388](AztecProtocol/aztec-packages#8388))
([eab944c](AztecProtocol/aztec-packages@eab944c))
* **ci:** Tracy gate counter preset
([#8382](AztecProtocol/aztec-packages#8382))
([882af1e](AztecProtocol/aztec-packages@882af1e))
* Replace arithmetic equalities with assert equal
([#8386](AztecProtocol/aztec-packages#8386))
([0d8e835](AztecProtocol/aztec-packages@0d8e835))
* Ultra keccak honk verifier
([#8261](AztecProtocol/aztec-packages#8261))
([7f02900](AztecProtocol/aztec-packages@7f02900))
* Update AztecIvc interface to facilitate acir-ivc
([#8230](AztecProtocol/aztec-packages#8230))
([665750a](AztecProtocol/aztec-packages@665750a))
* Verify public validation requests
([#8150](AztecProtocol/aztec-packages#8150))
([2be1415](AztecProtocol/aztec-packages@2be1415))


### Bug Fixes

* Broken build
([#8395](AztecProtocol/aztec-packages#8395))
([d0ea6eb](AztecProtocol/aztec-packages@d0ea6eb))
* Revert "feat: ultra keccak honk verifier
([#8427](AztecProtocol/aztec-packages#8427))
([31df5ea](AztecProtocol/aztec-packages@31df5ea))
* Revert "feat: ultra keccak honk verifier"
([#8391](AztecProtocol/aztec-packages#8391))
([3228e75](AztecProtocol/aztec-packages@3228e75))


### Miscellaneous

* **avm:** Move proving key to avm files
([#8318](AztecProtocol/aztec-packages#8318))
([32d67bd](AztecProtocol/aztec-packages@32d67bd))
* **avm:** Remove some unused deps
([#8366](AztecProtocol/aztec-packages#8366))
([e2150a7](AztecProtocol/aztec-packages@e2150a7))
* **bb:** Reinstate "chore: uncomment asserts in oink rec verifier""
([#8356](AztecProtocol/aztec-packages#8356))
([4dbad01](AztecProtocol/aztec-packages@4dbad01))
* **bb:** Use std::span for srs
([#8371](AztecProtocol/aztec-packages#8371))
([f174699](AztecProtocol/aztec-packages@f174699))
* Improve ec addition
([#8291](AztecProtocol/aztec-packages#8291))
([e8a097c](AztecProtocol/aztec-packages@e8a097c))
* More efficient verification with shplonk and gemini
([#8351](AztecProtocol/aztec-packages#8351))
([e51d157](AztecProtocol/aztec-packages@e51d157))
* Remove coinbase and unimplemented block gas limit opcodes from AVM
([#8408](AztecProtocol/aztec-packages#8408))
([dd09b76](AztecProtocol/aztec-packages@dd09b76))
* Remove unimplemented headermember opcode from avm
([#8407](AztecProtocol/aztec-packages#8407))
([cfea06e](AztecProtocol/aztec-packages@cfea06e))
* Renaming `Instance`'s
([#8362](AztecProtocol/aztec-packages#8362))
([4789440](AztecProtocol/aztec-packages@4789440))
* Uncomment asserts in oink rec verifier
([#8316](AztecProtocol/aztec-packages#8316))
([a7f3144](AztecProtocol/aztec-packages@a7f3144))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
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.

2 participants