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(ssa): Hoist MakeArray instructions during loop invariant code motion #6782

Merged
merged 11 commits into from
Dec 12, 2024

Conversation

vezenovm
Copy link
Contributor

@vezenovm vezenovm commented Dec 12, 2024

Description

Problem*

Resolves #6775

Summary*

In #6685 we restricted that MakeArray can only be deduplicated in an ACIR runtime. This is due to that arrays can actually be mutated in unconstrained code.

Now when hoisting loop invariants, we check whether we are hoisting a MakeArray. If we have hoisted a MakeArray instruction, we also insert an IncrementRc instruction in the old location of MakeArray in the loop block.

This PR is trading off the cost of creating an array inside of a loop vs. the cost of creating an array once + incrementing its reference counter inside the loop. Other than for the smallest of arrays, this tradeoff should almost always be worth it.

Before merging we may want to determine some kind of heuristic for when this optimization should run. It could also be left for a follow-up PR.

Additional Context

A potential optimization to follow-up this PR would be to bring back the rc tracker that was fully removed in DIE #6700. This would more generally help with the cost from deduplicating MakeArray instructions more generally as right now we always insert an IncrementRc upon deduplicating or hoisting a MakeArray. If that array is never mutably borrowed in the block, DIE should be able to remove those instructions that were included to maintain correctness.

regression_4709 performance:
Master:
The test was previously excluded from our CI's Brillig tests due to that execution would hang. I even ran out of memory and crashed the mainframe when trying to profile it.
After this PR:
~52 million opcodes executed
After this PR w/ #6783:
~1.2 millions opcodes executed

blob performance:
Master:
~990 million opcodes executed
After this PR:
~775 million opcodes executed (23.7% improvement from master)
After this PR w/ #6783:
~449 million opcodes executed (54.6% improvement from master)

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.

Copy link
Contributor

github-actions bot commented Dec 12, 2024

Changes to Brillig bytecode sizes

Generated at commit: 426b9e32148487e3d4d2b1c358d7001370c60599, compared to commit: 919149d3413be5232b33611094687fdb5fd86086

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
array_dedup_regression +6 ❌ +2.29%
merkle_insert -16 ✅ -1.95%
sha256_var_size_regression -40 ✅ -2.10%

Full diff report 👇
Program Brillig opcodes (+/-) %
array_dedup_regression 268 (+6) +2.29%
regression_4449 796 (+15) +1.92%
array_dynamic_blackbox_input 1,077 (+18) +1.70%
simple_shield 938 (+9) +0.97%
fold_numeric_generic_poseidon 775 (+6) +0.78%
no_predicates_numeric_generic_poseidon 775 (+6) +0.78%
regression_4709 134,514 (+774) +0.58%
sha256_var_padding_regression 5,318 (+18) +0.34%
sha2_byte 2,833 (+9) +0.32%
ram_blowup_regression 1,002 (+3) +0.30%
hashmap 22,212 (+61) +0.28%
uhashmap 14,454 (+39) +0.27%
sha256_regression 7,112 (+15) +0.21%
sha256_brillig_performance_regression 1,740 (+3) +0.17%
brillig_cow_regression 2,236 (+3) +0.13%
poseidon_bn254_hash 5,533 (-2) -0.04%
poseidon_bn254_hash_width_3 5,533 (-2) -0.04%
regression_5252 4,741 (-15) -0.32%
poseidonsponge_x5_254 4,353 (-24) -0.55%
merkle_insert 804 (-16) -1.95%
sha256_var_size_regression 1,864 (-40) -2.10%

Copy link
Contributor

github-actions bot commented Dec 12, 2024

Changes to number of Brillig opcodes executed

Generated at commit: 426b9e32148487e3d4d2b1c358d7001370c60599, compared to commit: 919149d3413be5232b33611094687fdb5fd86086

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
merkle_insert -197 ✅ -4.86%
regression_4449 -23,445 ✅ -9.80%
array_dedup_regression -410 ✅ -37.00%

Full diff report 👇
Program Brillig opcodes (+/-) %
sha2_byte 47,575 (+601) +1.28%
fold_numeric_generic_poseidon 5,218 (+6) +0.12%
no_predicates_numeric_generic_poseidon 5,218 (+6) +0.12%
poseidonsponge_x5_254 184,584 (-426) -0.23%
regression_5252 919,211 (-5,169) -0.56%
uhashmap 146,320 (-1,684) -1.14%
sha256_brillig_performance_regression 23,341 (-309) -1.31%
brillig_cow_regression 520,937 (-8,525) -1.61%
ram_blowup_regression 781,398 (-13,205) -1.66%
sha256_var_padding_regression 223,017 (-4,142) -1.82%
simple_shield 2,925 (-59) -1.98%
sha256_regression 119,623 (-2,481) -2.03%
hashmap 54,647 (-1,235) -2.21%
poseidon_bn254_hash 163,416 (-3,822) -2.29%
poseidon_bn254_hash_width_3 163,416 (-3,822) -2.29%
sha256_var_size_regression 16,733 (-601) -3.47%
array_dynamic_blackbox_input 18,636 (-714) -3.69%
merkle_insert 3,856 (-197) -4.86%
regression_4449 215,700 (-23,445) -9.80%
array_dedup_regression 698 (-410) -37.00%

Copy link
Contributor

github-actions bot commented Dec 12, 2024

Peak Memory Sample

Program Peak Memory
keccak256 79.14M
workspace 122.03M
regression_4709 295.99M
ram_blowup_regression 2.44G
private-kernel-tail 210.43M
private-kernel-reset 862.22M
private-kernel-inner 307.94M
parity-root 175.78M

Copy link
Contributor

github-actions bot commented Dec 12, 2024

Compilation Sample

Program Compilation Time %
sha256_regression 0m1.594s 10%
regression_4709 0m0.823s 8%
ram_blowup_regression 0m17.405s 1%
private-kernel-tail 0m1.311s 6%
private-kernel-reset 0m8.432s -7%
private-kernel-inner 0m2.320s -15%
parity-root 0m0.918s -3%
noir-contracts 2m52.531s 5%

@vezenovm vezenovm mentioned this pull request Dec 12, 2024
5 tasks
@vezenovm vezenovm marked this pull request as ready for review December 12, 2024 04:00
@vezenovm vezenovm added the run-external-checks Trigger CI job to run tests on external repos label Dec 12, 2024
@jfecher
Copy link
Contributor

jfecher commented Dec 12, 2024

This PR is trading off the cost of creating an array inside of a loop vs. the cost of creating an array once + incrementing its reference counter inside the loop. Other than for the smallest of arrays, this tradeoff should almost always be worth it.

I'll note that if we're creating an array in the loop and mutating it each iteration then this approach would be slower since we'd have an extra inc_rc instruction each iteration and need to do a dynamic check to copy the array. Overall though it's probably a fine tradeoff since the good case of this opt is much better than the worst case applying it can have.

@vezenovm
Copy link
Contributor Author

I'll note that if we're creating an array in the loop and mutating it each iteration

Yeah good note. The trade-off noted in the description is more for creating immutable arrays outside the loop. However, an array declared mutable inside the loop should already be issuing an inc_rc instruction after being created and will be copied already every iteration.

@vezenovm vezenovm requested a review from a team December 12, 2024 15:31
Copy link
Contributor

@jfecher jfecher left a comment

Choose a reason for hiding this comment

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

I think hoisting without the mutable checks should be fine. Unlike deduplication, there should be no chance the array in question is used between the hoist point and original point since the instruction just wasn't present there before.

@jfecher jfecher added this pull request to the merge queue Dec 12, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Dec 12, 2024
@vezenovm vezenovm added this pull request to the merge queue Dec 12, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Dec 12, 2024
@vezenovm vezenovm enabled auto-merge December 12, 2024 20:46
@vezenovm vezenovm added this pull request to the merge queue Dec 12, 2024
@vezenovm vezenovm removed this pull request from the merge queue due to a manual request Dec 12, 2024
@vezenovm vezenovm added this pull request to the merge queue Dec 12, 2024
Merged via the queue into master with commit b88db67 Dec 12, 2024
79 of 81 checks passed
@vezenovm vezenovm deleted the mv/hoist-make-array-fromloops branch December 12, 2024 21:23
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Dec 13, 2024
…iant code motion (noir-lang/noir#6782)

feat: add `(x | 1)` optimization for booleans (noir-lang/noir#6795)
feat: `nargo test -q` (or `nargo test --format terse`) (noir-lang/noir#6776)
fix: disable failure persistance in nargo test fuzzing (noir-lang/noir#6777)
feat(cli): Verify `return` against ABI and `Prover.toml` (noir-lang/noir#6765)
chore(ssa): Activate loop invariant code motion on ACIR functions (noir-lang/noir#6785)
fix: use extension in docs link so it also works on GitHub (noir-lang/noir#6787)
fix: optimizer to keep track of changing opcode locations (noir-lang/noir#6781)
fix: Minimal change to avoid reverting entire PR #6685 (noir-lang/noir#6778)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Dec 13, 2024
…tion (noir-lang/noir#6782)

feat: add `(x | 1)` optimization for booleans (noir-lang/noir#6795)
feat: `nargo test -q` (or `nargo test --format terse`) (noir-lang/noir#6776)
fix: disable failure persistance in nargo test fuzzing (noir-lang/noir#6777)
feat(cli): Verify `return` against ABI and `Prover.toml` (noir-lang/noir#6765)
chore(ssa): Activate loop invariant code motion on ACIR functions (noir-lang/noir#6785)
fix: use extension in docs link so it also works on GitHub (noir-lang/noir#6787)
fix: optimizer to keep track of changing opcode locations (noir-lang/noir#6781)
fix: Minimal change to avoid reverting entire PR #6685 (noir-lang/noir#6778)
TomAFrench added a commit that referenced this pull request Dec 14, 2024
* master: (313 commits)
  chore: Do not print entire functions when running debug trace (#6814)
  chore(ci): Active rollup circuits in compilation report (#6813)
  feat(ssa): Bring back tracking of RC instructions during DIE (#6783)
  feat: add `nargo test --format json` (#6796)
  chore: Change Id to use a u32 (#6807)
  feat(ssa): Hoist MakeArray instructions during loop invariant code motion  (#6782)
  feat: add `(x | 1)` optimization for booleans (#6795)
  feat: `nargo test -q` (or `nargo test --format terse`) (#6776)
  fix: disable failure persistance in nargo test fuzzing (#6777)
  feat(cli): Verify `return` against ABI and `Prover.toml` (#6765)
  chore(ssa): Activate loop invariant code motion on ACIR functions (#6785)
  fix: use extension in docs link so it also works on GitHub (#6787)
  fix: optimizer to keep track of changing opcode locations (#6781)
  fix: Minimal change to avoid reverting entire PR #6685 (#6778)
  feat: several `nargo test` improvements (#6728)
  chore: Try replace callstack with a linked list (#6747)
  chore: Use `NumericType` not `Type` for casts and numeric constants (#6769)
  chore(ci): Extend compiler memory report to external repos (#6768)
  chore(ci): Handle external libraries in compilation timing report (#6750)
  feat(ssa): Implement missing brillig constraints SSA check (#6658)
  ...
ludamad pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Dec 17, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.67.1](aztec-package-v0.67.0...aztec-package-v0.67.1)
(2024-12-17)


### Miscellaneous

* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
</details>

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

##
[0.67.1](barretenberg.js-v0.67.0...barretenberg.js-v0.67.1)
(2024-12-17)


### Features

* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))


### Bug Fixes

* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
</details>

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

##
[0.67.1](aztec-packages-v0.67.0...aztec-packages-v0.67.1)
(2024-12-17)


### Features

* `nargo test -q` (or `nargo test --format terse`)
(noir-lang/noir#6776)
([8956e28](8956e28))
* Add `(x | 1)` optimization for booleans
(noir-lang/noir#6795)
([8956e28](8956e28))
* Add `nargo test --format json`
(noir-lang/noir#6796)
([d74d0fc](d74d0fc))
* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* **avm:** Migrate simulator memory to a map
([#10715](#10715))
([64d5f2b](64d5f2b)),
closes
[#10370](#10370)
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Blobs 2.
([#10188](#10188))
([d0a4b2f](d0a4b2f))
* **blobs:** Add consensus client url to config
([#10059](#10059))
([1e15bf5](1e15bf5))
* Check max fees per gas
([#10283](#10283))
([4e59b06](4e59b06))
* **cli:** Verify `return` against ABI and `Prover.toml`
(noir-lang/noir#6765)
([8956e28](8956e28))
* Json output for get_node_info
([#10771](#10771))
([b086c52](b086c52))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* **p2p:** Activate gossipsub tx validators
([#10695](#10695))
([9cce2c6](9cce2c6))
* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))
* **ssa:** Bring back tracking of RC instructions during DIE
(noir-lang/noir#6783)
([308c5ce](308c5ce))
* **ssa:** Hoist MakeArray instructions during loop invariant code
motion (noir-lang/noir#6782)
([8956e28](8956e28))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))
* TXE detects duplicate nullifiers
([#10764](#10764))
([7f70110](7f70110))


### Bug Fixes

* Always remove nullified notes
([#10722](#10722))
([5e4b46d](5e4b46d))
* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Cache
([#10692](#10692))
([1b1306c](1b1306c))
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
* **ci:** Network-test timing
([#10725](#10725))
([9c9a2dc](9c9a2dc))
* Disable failure persistance in nargo test fuzzing
(noir-lang/noir#6777)
([8956e28](8956e28))
* Get e2e jobs
([#10689](#10689))
([37e1999](37e1999))
* Give build:fast a try in build
([#10702](#10702))
([32095f6](32095f6))
* Minimal change to avoid reverting entire PR
[#6685](#6685)
(noir-lang/noir#6778)
([8956e28](8956e28))
* Optimizer to keep track of changing opcode locations
(noir-lang/noir#6781)
([8956e28](8956e28))
* Race condition in block stream
([#10779](#10779))
([64bccd0](64bccd0))
* Race condition when cleaning epoch proof quotes
([#10795](#10795))
([f540fbe](f540fbe))
* **testdata:** Relative path calculation
([#10791](#10791))
([5a530db](5a530db))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))
* Use extension in docs link so it also works on GitHub
(noir-lang/noir#6787)
([8956e28](8956e28))
* Use throw instead of reject in broker facade
([#10735](#10735))
([cc6a72b](cc6a72b))


### Miscellaneous

* `getLogsByTags` request batching in `syncTaggedLogs`
([#10716](#10716))
([bbbf38b](bbbf38b))
* Add `Instruction::map_values_mut`
(noir-lang/noir#6756)
([308c5ce](308c5ce))
* Add errors to abis
([#10697](#10697))
([5c8e017](5c8e017))
* Add retries for prover node p2p test
([#10699](#10699))
([4115bf9](4115bf9))
* Add spans to proving job
([#10794](#10794))
([df3c51b](df3c51b))
* **avm:** Disable fake avm recursive verifier from the public base
rollup
([#10690](#10690))
([b6c9c41](b6c9c41))
* Better reqresp logging + handle empty responses in snappy
([#10657](#10657))
([934107f](934107f))
* Bump metrics and node pool
([#10745](#10745))
([9bb88bf](9bb88bf))
* Change Id to use a u32 (noir-lang/noir#6807)
([d74d0fc](d74d0fc))
* **ci:** Active rollup circuits in compilation report
(noir-lang/noir#6813)
([308c5ce](308c5ce))
* **ci:** Add bloblib to external checks
(noir-lang/noir#6818)
([381b0b8](381b0b8))
* Cleanup after e2e tests
([#10748](#10748))
([284b0a4](284b0a4))
* Disable ARM CI
([#10682](#10682))
([b16945b](b16945b))
* Do not print entire functions when running debug trace
(noir-lang/noir#6814)
([308c5ce](308c5ce))
* **docs:** Workaround (noir-lang/noir#6819)
([381b0b8](381b0b8))
* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Hot fixes
([4e00dc4](4e00dc4))
* Log error in retry module
([#10719](#10719))
([84ea539](84ea539))
* Manage call stacks using a tree
(noir-lang/noir#6791)
([381b0b8](381b0b8))
* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
* **p2p:** Move services into folders
([#10694](#10694))
([e28d12a](e28d12a))
* **prover:** Prover node should not gossip attestations
([#10672](#10672))
([41fc0f0](41fc0f0))
* Remove default export for noir contracts js
([#10762](#10762))
([c8e7763](c8e7763))
* Remove sinon in favor of a date provider
([#10705](#10705))
([3d3fabb](3d3fabb))
* Remove spurious echo
([#10774](#10774))
([5538f8c](5538f8c))
* Replace relative paths to noir-protocol-circuits
([f85fa3f](f85fa3f))
* Replace relative paths to noir-protocol-circuits
([b19c561](b19c561))
* Set max txs in spam test
([#10717](#10717))
([a50ff6c](a50ff6c))
* Slack notifications for networks
([#10784](#10784))
([bab9f85](bab9f85))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* **ssa:** Activate loop invariant code motion on ACIR functions
(noir-lang/noir#6785)
([8956e28](8956e28))
* Sync grafana dashboard
([#10792](#10792))
([421fb65](421fb65))
* Tagging cleanup
([#10675](#10675))
([52b541a](52b541a))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
* Update external joiner script for new networks
([#10810](#10810))
([5f11cf4](5f11cf4))
</details>

<details><summary>barretenberg: 0.67.1</summary>

##
[0.67.1](barretenberg-v0.67.0...barretenberg-v0.67.1)
(2024-12-17)


### Features

* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))


### Bug Fixes

* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))


### Miscellaneous

* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
ludamad pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Dec 18, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.67.1](aztec-package-v0.67.0...aztec-package-v0.67.1)
(2024-12-17)


### Miscellaneous

* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
</details>

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

##
[0.67.1](barretenberg.js-v0.67.0...barretenberg.js-v0.67.1)
(2024-12-17)


### Features

* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))


### Bug Fixes

* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
</details>

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

##
[0.67.1](aztec-packages-v0.67.0...aztec-packages-v0.67.1)
(2024-12-17)


### Features

* `nargo test -q` (or `nargo test --format terse`)
(noir-lang/noir#6776)
([8956e28](8956e28))
* Add `(x | 1)` optimization for booleans
(noir-lang/noir#6795)
([8956e28](8956e28))
* Add `nargo test --format json`
(noir-lang/noir#6796)
([d74d0fc](d74d0fc))
* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* **avm:** Migrate simulator memory to a map
([#10715](#10715))
([64d5f2b](64d5f2b)),
closes
[#10370](#10370)
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Blobs 2.
([#10188](#10188))
([d0a4b2f](d0a4b2f))
* **blobs:** Add consensus client url to config
([#10059](#10059))
([1e15bf5](1e15bf5))
* Check max fees per gas
([#10283](#10283))
([4e59b06](4e59b06))
* **cli:** Verify `return` against ABI and `Prover.toml`
(noir-lang/noir#6765)
([8956e28](8956e28))
* Don't store every block number in block indices DB
([#10658](#10658))
([a3fba84](a3fba84))
* Json output for get_node_info
([#10771](#10771))
([b086c52](b086c52))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* **p2p:** Activate gossipsub tx validators
([#10695](#10695))
([9cce2c6](9cce2c6))
* **p2p:** Attestation pool persistence
([#10667](#10667))
([dacef9f](dacef9f))
* PXE browser proving
([#10704](#10704))
([46da3cc](46da3cc))
* **ssa:** Bring back tracking of RC instructions during DIE
(noir-lang/noir#6783)
([308c5ce](308c5ce))
* **ssa:** Hoist MakeArray instructions during loop invariant code
motion (noir-lang/noir#6782)
([8956e28](8956e28))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))
* TXE detects duplicate nullifiers
([#10764](#10764))
([7f70110](7f70110))


### Bug Fixes

* Always remove nullified notes
([#10722](#10722))
([5e4b46d](5e4b46d))
* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](#10731))
([b8bdb52](b8bdb52))
* **bb.js:** Use globalThis instead of self
([#10747](#10747))
([309b5f7](309b5f7)),
closes
[#10741](#10741)
* Block building test timeout
([#10812](#10812))
([2cad3e5](2cad3e5))
* Cache
([#10692](#10692))
([1b1306c](1b1306c))
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](#10769))
([6a5bcfd](6a5bcfd))
* **ci:** Network-test timing
([#10725](#10725))
([9c9a2dc](9c9a2dc))
* Disable failure persistance in nargo test fuzzing
(noir-lang/noir#6777)
([8956e28](8956e28))
* Get e2e jobs
([#10689](#10689))
([37e1999](37e1999))
* Give build:fast a try in build
([#10702](#10702))
([32095f6](32095f6))
* Minimal change to avoid reverting entire PR
[#6685](#6685)
(noir-lang/noir#6778)
([8956e28](8956e28))
* Optimizer to keep track of changing opcode locations
(noir-lang/noir#6781)
([8956e28](8956e28))
* Race condition in block stream
([#10779](#10779))
([64bccd0](64bccd0))
* Race condition when cleaning epoch proof quotes
([#10795](#10795))
([f540fbe](f540fbe))
* **testdata:** Relative path calculation
([#10791](#10791))
([5a530db](5a530db))
* Try fix e2e epochs in CI
([#10804](#10804))
([ba28788](ba28788))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))
* Use extension in docs link so it also works on GitHub
(noir-lang/noir#6787)
([8956e28](8956e28))
* Use throw instead of reject in broker facade
([#10735](#10735))
([cc6a72b](cc6a72b))


### Miscellaneous

* `getLogsByTags` request batching in `syncTaggedLogs`
([#10716](#10716))
([bbbf38b](bbbf38b))
* Add `Instruction::map_values_mut`
(noir-lang/noir#6756)
([308c5ce](308c5ce))
* Add errors to abis
([#10697](#10697))
([5c8e017](5c8e017))
* Add retries for prover node p2p test
([#10699](#10699))
([4115bf9](4115bf9))
* Add spans to proving job
([#10794](#10794))
([df3c51b](df3c51b))
* Average alerts across namespace for 1 hour
([#10827](#10827))
([962a7a2](962a7a2))
* **avm:** Disable fake avm recursive verifier from the public base
rollup
([#10690](#10690))
([b6c9c41](b6c9c41))
* **avm:** Radix opcode - remove immediates
([#10696](#10696))
([4ac13e6](4ac13e6)),
closes
[#10371](#10371)
* Better reqresp logging + handle empty responses in snappy
([#10657](#10657))
([934107f](934107f))
* Bump metrics and node pool
([#10745](#10745))
([9bb88bf](9bb88bf))
* Change Id to use a u32 (noir-lang/noir#6807)
([d74d0fc](d74d0fc))
* **ci:** Active rollup circuits in compilation report
(noir-lang/noir#6813)
([308c5ce](308c5ce))
* **ci:** Add bloblib to external checks
(noir-lang/noir#6818)
([381b0b8](381b0b8))
* Cleanup after e2e tests
([#10748](#10748))
([284b0a4](284b0a4))
* Disable ARM CI
([#10682](#10682))
([b16945b](b16945b))
* Do not print entire functions when running debug trace
(noir-lang/noir#6814)
([308c5ce](308c5ce))
* **docs:** Update migration notes
([#10829](#10829))
([be7cadf](be7cadf))
* **docs:** Workaround (noir-lang/noir#6819)
([381b0b8](381b0b8))
* Granular CLI imports to reduce start time
([#10778](#10778))
([e2fd046](e2fd046))
* Log error in retry module
([#10719](#10719))
([84ea539](84ea539))
* Manage call stacks using a tree
(noir-lang/noir#6791)
([381b0b8](381b0b8))
* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
* **p2p:** Move services into folders
([#10694](#10694))
([e28d12a](e28d12a))
* **prover:** Prover node should not gossip attestations
([#10672](#10672))
([41fc0f0](41fc0f0))
* Remove default export for noir contracts js
([#10762](#10762))
([c8e7763](c8e7763))
* Remove sinon in favor of a date provider
([#10705](#10705))
([3d3fabb](3d3fabb))
* Remove spurious echo
([#10774](#10774))
([5538f8c](5538f8c))
* Replace relative paths to noir-protocol-circuits
([f85fa3f](f85fa3f))
* Replace relative paths to noir-protocol-circuits
([b19c561](b19c561))
* Set max txs in spam test
([#10717](#10717))
([a50ff6c](a50ff6c))
* Slack notifications for networks
([#10784](#10784))
([bab9f85](bab9f85))
* Split up protocol contract artifacts
([#10765](#10765))
([5a9ca18](5a9ca18))
* **ssa:** Activate loop invariant code motion on ACIR functions
(noir-lang/noir#6785)
([8956e28](8956e28))
* Sync grafana dashboard
([#10792](#10792))
([421fb65](421fb65))
* Tagging cleanup
([#10675](#10675))
([52b541a](52b541a))
* Trace and handle errors in running promises
([#10645](#10645))
([4cc0a6d](4cc0a6d))
* Update external joiner script for new networks
([#10810](#10810))
([5f11cf4](5f11cf4))
</details>

<details><summary>barretenberg: 0.67.1</summary>

##
[0.67.1](barretenberg-v0.67.0...barretenberg-v0.67.1)
(2024-12-17)


### Features

* Add tree equality assertions
([#10756](#10756))
([923826a](923826a))
* Better initialization for permutation mapping components
([#10750](#10750))
([1516d7f](1516d7f))
* Don't store every block number in block indices DB
([#10658](#10658))
([a3fba84](a3fba84))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](#10649))
([a437e73](a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](#10777))
([9fbcff6](9fbcff6))
* Note hash management in the AVM
([#10666](#10666))
([e077980](e077980))
* Sumcheck with disabled rows
([#10068](#10068))
([abd2226](abd2226))


### Bug Fixes

* Avm gas and non-member
([#10709](#10709))
([dd8cc7b](dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](#10731))
([b8bdb52](b8bdb52))
* Use correct size for databus_id
([#10673](#10673))
([95eb658](95eb658))


### Miscellaneous

* **avm:** Radix opcode - remove immediates
([#10696](#10696))
([4ac13e6](4ac13e6)),
closes
[#10371](#10371)
* Move decider PK allocation to methods
([#10670](#10670))
([1ab9e30](1ab9e30))
</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 Dec 18, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.67.1](AztecProtocol/aztec-packages@aztec-package-v0.67.0...aztec-package-v0.67.1)
(2024-12-17)


### Miscellaneous

* Granular CLI imports to reduce start time
([#10778](AztecProtocol/aztec-packages#10778))
([e2fd046](AztecProtocol/aztec-packages@e2fd046))
* Split up protocol contract artifacts
([#10765](AztecProtocol/aztec-packages#10765))
([5a9ca18](AztecProtocol/aztec-packages@5a9ca18))
* Trace and handle errors in running promises
([#10645](AztecProtocol/aztec-packages#10645))
([4cc0a6d](AztecProtocol/aztec-packages@4cc0a6d))
</details>

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

##
[0.67.1](AztecProtocol/aztec-packages@barretenberg.js-v0.67.0...barretenberg.js-v0.67.1)
(2024-12-17)


### Features

* PXE browser proving
([#10704](AztecProtocol/aztec-packages#10704))
([46da3cc](AztecProtocol/aztec-packages@46da3cc))


### Bug Fixes

* **bb.js:** Use globalThis instead of self
([#10747](AztecProtocol/aztec-packages#10747))
([309b5f7](AztecProtocol/aztec-packages@309b5f7)),
closes
[#10741](AztecProtocol/aztec-packages#10741)
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](AztecProtocol/aztec-packages#10769))
([6a5bcfd](AztecProtocol/aztec-packages@6a5bcfd))
</details>

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

##
[0.67.1](AztecProtocol/aztec-packages@aztec-packages-v0.67.0...aztec-packages-v0.67.1)
(2024-12-17)


### Features

* `nargo test -q` (or `nargo test --format terse`)
(noir-lang/noir#6776)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Add `(x | 1)` optimization for booleans
(noir-lang/noir#6795)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Add `nargo test --format json`
(noir-lang/noir#6796)
([d74d0fc](AztecProtocol/aztec-packages@d74d0fc))
* Add tree equality assertions
([#10756](AztecProtocol/aztec-packages#10756))
([923826a](AztecProtocol/aztec-packages@923826a))
* **avm:** Migrate simulator memory to a map
([#10715](AztecProtocol/aztec-packages#10715))
([64d5f2b](AztecProtocol/aztec-packages@64d5f2b)),
closes
[#10370](AztecProtocol/aztec-packages#10370)
* Better initialization for permutation mapping components
([#10750](AztecProtocol/aztec-packages#10750))
([1516d7f](AztecProtocol/aztec-packages@1516d7f))
* Blobs 2.
([#10188](AztecProtocol/aztec-packages#10188))
([d0a4b2f](AztecProtocol/aztec-packages@d0a4b2f))
* **blobs:** Add consensus client url to config
([#10059](AztecProtocol/aztec-packages#10059))
([1e15bf5](AztecProtocol/aztec-packages@1e15bf5))
* Check max fees per gas
([#10283](AztecProtocol/aztec-packages#10283))
([4e59b06](AztecProtocol/aztec-packages@4e59b06))
* **cli:** Verify `return` against ABI and `Prover.toml`
(noir-lang/noir#6765)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Don't store every block number in block indices DB
([#10658](AztecProtocol/aztec-packages#10658))
([a3fba84](AztecProtocol/aztec-packages@a3fba84))
* Json output for get_node_info
([#10771](AztecProtocol/aztec-packages#10771))
([b086c52](AztecProtocol/aztec-packages@b086c52))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](AztecProtocol/aztec-packages#10649))
([a437e73](AztecProtocol/aztec-packages@a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](AztecProtocol/aztec-packages#10777))
([9fbcff6](AztecProtocol/aztec-packages@9fbcff6))
* Note hash management in the AVM
([#10666](AztecProtocol/aztec-packages#10666))
([e077980](AztecProtocol/aztec-packages@e077980))
* **p2p:** Activate gossipsub tx validators
([#10695](AztecProtocol/aztec-packages#10695))
([9cce2c6](AztecProtocol/aztec-packages@9cce2c6))
* **p2p:** Attestation pool persistence
([#10667](AztecProtocol/aztec-packages#10667))
([dacef9f](AztecProtocol/aztec-packages@dacef9f))
* PXE browser proving
([#10704](AztecProtocol/aztec-packages#10704))
([46da3cc](AztecProtocol/aztec-packages@46da3cc))
* **ssa:** Bring back tracking of RC instructions during DIE
(noir-lang/noir#6783)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* **ssa:** Hoist MakeArray instructions during loop invariant code
motion (noir-lang/noir#6782)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Sumcheck with disabled rows
([#10068](AztecProtocol/aztec-packages#10068))
([abd2226](AztecProtocol/aztec-packages@abd2226))
* TXE detects duplicate nullifiers
([#10764](AztecProtocol/aztec-packages#10764))
([7f70110](AztecProtocol/aztec-packages@7f70110))


### Bug Fixes

* Always remove nullified notes
([#10722](AztecProtocol/aztec-packages#10722))
([5e4b46d](AztecProtocol/aztec-packages@5e4b46d))
* Avm gas and non-member
([#10709](AztecProtocol/aztec-packages#10709))
([dd8cc7b](AztecProtocol/aztec-packages@dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](AztecProtocol/aztec-packages#10731))
([b8bdb52](AztecProtocol/aztec-packages@b8bdb52))
* **bb.js:** Use globalThis instead of self
([#10747](AztecProtocol/aztec-packages#10747))
([309b5f7](AztecProtocol/aztec-packages@309b5f7)),
closes
[#10741](AztecProtocol/aztec-packages#10741)
* Block building test timeout
([#10812](AztecProtocol/aztec-packages#10812))
([2cad3e5](AztecProtocol/aztec-packages@2cad3e5))
* Cache
([#10692](AztecProtocol/aztec-packages#10692))
([1b1306c](AztecProtocol/aztec-packages@1b1306c))
* Casting vk to rawbuffer before wasm so it reads from the correct
offset
([#10769](AztecProtocol/aztec-packages#10769))
([6a5bcfd](AztecProtocol/aztec-packages@6a5bcfd))
* **ci:** Network-test timing
([#10725](AztecProtocol/aztec-packages#10725))
([9c9a2dc](AztecProtocol/aztec-packages@9c9a2dc))
* Disable failure persistance in nargo test fuzzing
(noir-lang/noir#6777)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Get e2e jobs
([#10689](AztecProtocol/aztec-packages#10689))
([37e1999](AztecProtocol/aztec-packages@37e1999))
* Give build:fast a try in build
([#10702](AztecProtocol/aztec-packages#10702))
([32095f6](AztecProtocol/aztec-packages@32095f6))
* Minimal change to avoid reverting entire PR
[#6685](AztecProtocol/aztec-packages#6685)
(noir-lang/noir#6778)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Optimizer to keep track of changing opcode locations
(noir-lang/noir#6781)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Race condition in block stream
([#10779](AztecProtocol/aztec-packages#10779))
([64bccd0](AztecProtocol/aztec-packages@64bccd0))
* Race condition when cleaning epoch proof quotes
([#10795](AztecProtocol/aztec-packages#10795))
([f540fbe](AztecProtocol/aztec-packages@f540fbe))
* **testdata:** Relative path calculation
([#10791](AztecProtocol/aztec-packages#10791))
([5a530db](AztecProtocol/aztec-packages@5a530db))
* Try fix e2e epochs in CI
([#10804](AztecProtocol/aztec-packages#10804))
([ba28788](AztecProtocol/aztec-packages@ba28788))
* Use correct size for databus_id
([#10673](AztecProtocol/aztec-packages#10673))
([95eb658](AztecProtocol/aztec-packages@95eb658))
* Use extension in docs link so it also works on GitHub
(noir-lang/noir#6787)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Use throw instead of reject in broker facade
([#10735](AztecProtocol/aztec-packages#10735))
([cc6a72b](AztecProtocol/aztec-packages@cc6a72b))


### Miscellaneous

* `getLogsByTags` request batching in `syncTaggedLogs`
([#10716](AztecProtocol/aztec-packages#10716))
([bbbf38b](AztecProtocol/aztec-packages@bbbf38b))
* Add `Instruction::map_values_mut`
(noir-lang/noir#6756)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* Add errors to abis
([#10697](AztecProtocol/aztec-packages#10697))
([5c8e017](AztecProtocol/aztec-packages@5c8e017))
* Add retries for prover node p2p test
([#10699](AztecProtocol/aztec-packages#10699))
([4115bf9](AztecProtocol/aztec-packages@4115bf9))
* Add spans to proving job
([#10794](AztecProtocol/aztec-packages#10794))
([df3c51b](AztecProtocol/aztec-packages@df3c51b))
* Average alerts across namespace for 1 hour
([#10827](AztecProtocol/aztec-packages#10827))
([962a7a2](AztecProtocol/aztec-packages@962a7a2))
* **avm:** Disable fake avm recursive verifier from the public base
rollup
([#10690](AztecProtocol/aztec-packages#10690))
([b6c9c41](AztecProtocol/aztec-packages@b6c9c41))
* **avm:** Radix opcode - remove immediates
([#10696](AztecProtocol/aztec-packages#10696))
([4ac13e6](AztecProtocol/aztec-packages@4ac13e6)),
closes
[#10371](AztecProtocol/aztec-packages#10371)
* Better reqresp logging + handle empty responses in snappy
([#10657](AztecProtocol/aztec-packages#10657))
([934107f](AztecProtocol/aztec-packages@934107f))
* Bump metrics and node pool
([#10745](AztecProtocol/aztec-packages#10745))
([9bb88bf](AztecProtocol/aztec-packages@9bb88bf))
* Change Id to use a u32 (noir-lang/noir#6807)
([d74d0fc](AztecProtocol/aztec-packages@d74d0fc))
* **ci:** Active rollup circuits in compilation report
(noir-lang/noir#6813)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* **ci:** Add bloblib to external checks
(noir-lang/noir#6818)
([381b0b8](AztecProtocol/aztec-packages@381b0b8))
* Cleanup after e2e tests
([#10748](AztecProtocol/aztec-packages#10748))
([284b0a4](AztecProtocol/aztec-packages@284b0a4))
* Disable ARM CI
([#10682](AztecProtocol/aztec-packages#10682))
([b16945b](AztecProtocol/aztec-packages@b16945b))
* Do not print entire functions when running debug trace
(noir-lang/noir#6814)
([308c5ce](AztecProtocol/aztec-packages@308c5ce))
* **docs:** Update migration notes
([#10829](AztecProtocol/aztec-packages#10829))
([be7cadf](AztecProtocol/aztec-packages@be7cadf))
* **docs:** Workaround (noir-lang/noir#6819)
([381b0b8](AztecProtocol/aztec-packages@381b0b8))
* Granular CLI imports to reduce start time
([#10778](AztecProtocol/aztec-packages#10778))
([e2fd046](AztecProtocol/aztec-packages@e2fd046))
* Log error in retry module
([#10719](AztecProtocol/aztec-packages#10719))
([84ea539](AztecProtocol/aztec-packages@84ea539))
* Manage call stacks using a tree
(noir-lang/noir#6791)
([381b0b8](AztecProtocol/aztec-packages@381b0b8))
* Move decider PK allocation to methods
([#10670](AztecProtocol/aztec-packages#10670))
([1ab9e30](AztecProtocol/aztec-packages@1ab9e30))
* **p2p:** Move services into folders
([#10694](AztecProtocol/aztec-packages#10694))
([e28d12a](AztecProtocol/aztec-packages@e28d12a))
* **prover:** Prover node should not gossip attestations
([#10672](AztecProtocol/aztec-packages#10672))
([41fc0f0](AztecProtocol/aztec-packages@41fc0f0))
* Remove default export for noir contracts js
([#10762](AztecProtocol/aztec-packages#10762))
([c8e7763](AztecProtocol/aztec-packages@c8e7763))
* Remove sinon in favor of a date provider
([#10705](AztecProtocol/aztec-packages#10705))
([3d3fabb](AztecProtocol/aztec-packages@3d3fabb))
* Remove spurious echo
([#10774](AztecProtocol/aztec-packages#10774))
([5538f8c](AztecProtocol/aztec-packages@5538f8c))
* Replace relative paths to noir-protocol-circuits
([f85fa3f](AztecProtocol/aztec-packages@f85fa3f))
* Replace relative paths to noir-protocol-circuits
([b19c561](AztecProtocol/aztec-packages@b19c561))
* Set max txs in spam test
([#10717](AztecProtocol/aztec-packages#10717))
([a50ff6c](AztecProtocol/aztec-packages@a50ff6c))
* Slack notifications for networks
([#10784](AztecProtocol/aztec-packages#10784))
([bab9f85](AztecProtocol/aztec-packages@bab9f85))
* Split up protocol contract artifacts
([#10765](AztecProtocol/aztec-packages#10765))
([5a9ca18](AztecProtocol/aztec-packages@5a9ca18))
* **ssa:** Activate loop invariant code motion on ACIR functions
(noir-lang/noir#6785)
([8956e28](AztecProtocol/aztec-packages@8956e28))
* Sync grafana dashboard
([#10792](AztecProtocol/aztec-packages#10792))
([421fb65](AztecProtocol/aztec-packages@421fb65))
* Tagging cleanup
([#10675](AztecProtocol/aztec-packages#10675))
([52b541a](AztecProtocol/aztec-packages@52b541a))
* Trace and handle errors in running promises
([#10645](AztecProtocol/aztec-packages#10645))
([4cc0a6d](AztecProtocol/aztec-packages@4cc0a6d))
* Update external joiner script for new networks
([#10810](AztecProtocol/aztec-packages#10810))
([5f11cf4](AztecProtocol/aztec-packages@5f11cf4))
</details>

<details><summary>barretenberg: 0.67.1</summary>

##
[0.67.1](AztecProtocol/aztec-packages@barretenberg-v0.67.0...barretenberg-v0.67.1)
(2024-12-17)


### Features

* Add tree equality assertions
([#10756](AztecProtocol/aztec-packages#10756))
([923826a](AztecProtocol/aztec-packages@923826a))
* Better initialization for permutation mapping components
([#10750](AztecProtocol/aztec-packages#10750))
([1516d7f](AztecProtocol/aztec-packages@1516d7f))
* Don't store every block number in block indices DB
([#10658](AztecProtocol/aztec-packages#10658))
([a3fba84](AztecProtocol/aztec-packages@a3fba84))
* Leaf index requests to the native world state can now be performed as
a batch query
([#10649](AztecProtocol/aztec-packages#10649))
([a437e73](AztecProtocol/aztec-packages@a437e73))
* New 17 in 20 IVC bench added to actions
([#10777](AztecProtocol/aztec-packages#10777))
([9fbcff6](AztecProtocol/aztec-packages@9fbcff6))
* Note hash management in the AVM
([#10666](AztecProtocol/aztec-packages#10666))
([e077980](AztecProtocol/aztec-packages@e077980))
* Sumcheck with disabled rows
([#10068](AztecProtocol/aztec-packages#10068))
([abd2226](AztecProtocol/aztec-packages@abd2226))


### Bug Fixes

* Avm gas and non-member
([#10709](AztecProtocol/aztec-packages#10709))
([dd8cc7b](AztecProtocol/aztec-packages@dd8cc7b))
* AVM witgen track gas for nested calls and external halts
([#10731](AztecProtocol/aztec-packages#10731))
([b8bdb52](AztecProtocol/aztec-packages@b8bdb52))
* Use correct size for databus_id
([#10673](AztecProtocol/aztec-packages#10673))
([95eb658](AztecProtocol/aztec-packages@95eb658))


### Miscellaneous

* **avm:** Radix opcode - remove immediates
([#10696](AztecProtocol/aztec-packages#10696))
([4ac13e6](AztecProtocol/aztec-packages@4ac13e6)),
closes
[#10371](AztecProtocol/aztec-packages#10371)
* Move decider PK allocation to methods
([#10670](AztecProtocol/aztec-packages#10670))
([1ab9e30](AztecProtocol/aztec-packages@1ab9e30))
</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
run-external-checks Trigger CI job to run tests on external repos
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Instantiate global arrays only once
3 participants