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: remove 'single use' intermediate variables #6268

Merged
merged 9 commits into from
Oct 24, 2024
Merged

Conversation

guipublic
Copy link
Contributor

Description

Problem*

Resolves #6085

Summary*

This PR tries to benefit from Barretenberg's 'big-add gates' support, which was enabled by PR AztecProtocol/aztec-packages#8960
It's a simple optimisation which removes intermediate variables usually created by the CSatTransformer if they are not re-used elsewhere.
The PR assumes that the backend is able to handle infinite width, but still requires the CSatTransformer, which is not really consistent. I plan to make follow-up PRs to get rid of this (but I can't guarantee it will work).

Additional Context

I tested the optimisation on all 'execution_sucess' test cases. In most cases, there were no change at all, while in some cases we would win one or two (10 max) on the circuit size.
However, in a few cases, listed below in the form "test case: circuit size with 'intermediate var' optimisation vs no optimisation", it can be more significant:

7_function: 2955 vs 2992
bit_shifts_runtime: 5451 vs 5761
eddsa: 65805 vs 70406
hashmap: 135023 vs 150661
nested_array_dynamic: 12594 vs 12922
nested_array_in_slice: 5371 vs 5449
poseidon_bn254_hash: 1028 vs 1060
poseidon_bn254_hash_width_3: 1028 vs 1495
poseidonsponge_x5_254: 1244 vs 1307
regression_5252: 76491 vs 83862
sha256_var_size_regression: 74093 vs 74529
sha2_byte: 93998 vs 94006
slice_dynamic_index: 6308 vs 6419
slices: 3835 vs 3874
to_be_bytes: 135 vs 143
to_bytes_consistent: 6 vs 51
to_bytes_integration: 434 vs 484
u128: 4662 vs 4707
u16_support: 3023 vs 3057

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.

@guipublic guipublic requested a review from TomAFrench October 10, 2024 11:38
Copy link
Contributor

github-actions bot commented Oct 22, 2024

Changes to circuit sizes

Generated at commit: 174b8c80d9ed632f9249fd55d72cfcdfce45e6da, compared to commit: 07ab5150857ec6719b132ec91d5f90af0564a046

🧾 Summary (10% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
bench_eddsa_poseidon -1,483 ✅ -8.27% -1,176 ✅ -5.66%
to_be_bytes -14 ✅ -16.67% -8 ✅ -6.40%
eddsa -5,665 ✅ -8.06% -4,601 ✅ -6.53%
regression_5252 -20,361 ✅ -26.44% -7,371 ✅ -8.80%
to_bytes_integration -143 ✅ -33.33% -50 ✅ -10.06%
hashmap -32,358 ✅ -33.53% -16,237 ✅ -10.53%
simple_radix -3 ✅ -60.00% -3 ✅ -15.00%
poseidon_bn254_hash_width_3 -596 ✅ -40.05% -467 ✅ -31.05%
to_bytes_consistent -45 ✅ -95.74% -45 ✅ -72.58%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
aes128_encrypt 127 (-16) -11.19% 1,643 (+20) +1.23%
6 543 (-20) -3.55% 11,897 (0) 0.00%
array_dynamic_blackbox_input 1,680 (-52) -3.00% 22,680 (0) 0.00%
array_dynamic_nested_blackbox_input 356 (-11) -3.00% 7,966 (0) 0.00%
bench_sha256 259 (-10) -3.72% 7,672 (0) 0.00%
bench_sha256_100 25,009 (-1,000) -3.84% 418,546 (0) 0.00%
bench_sha256_30 7,509 (-300) -3.84% 128,030 (0) 0.00%
bench_sha256_long 1,225 (-57) -4.45% 20,860 (0) 0.00%
conditional_regression_short_circuit 571 (-20) -3.38% 11,923 (0) 0.00%
ecdsa_secp256k1 619 (-19) -2.98% 43,707 (0) 0.00%
fold_basic 4 (-1) -20.00% 17 (0) 0.00%
integer_array_indexing 2 (-1) -33.33% 2,762 (0) 0.00%
pedersen_check 23 (-1) -4.17% 3,176 (0) 0.00%
regression_4449 16,877 (-770) -4.36% 295,719 (0) 0.00%
sha256_var_padding_regression 14,228 (-60) -0.42% 208,517 (0) 0.00%
signed_div 495 (-15) -2.94% 538 (0) 0.00%
signed_division 203 (-4) -1.93% 3,678 (0) 0.00%
simple_shield 47 (-6) -11.32% 4,872 (0) 0.00%
slice_loop 1 (-1) -50.00% 18 (0) 0.00%
sha256_regression 38,623 (-610) -1.55% 202,511 (-2) -0.00%
sha256 2,375 (-61) -2.50% 22,397 (-1) -0.00%
sha256_var_witness_const_regression 2,087 (-51) -2.39% 18,204 (-1) -0.01%
sha2_byte 20,127 (-34) -0.17% 93,853 (-8) -0.01%
keccak256 125 (-12) -8.76% 20,147 (-4) -0.02%
regression_capacity_tracker 113 (-2) -1.74% 3,964 (-1) -0.03%
regression_mem_op_predicate 56 (-2) -3.45% 3,586 (-1) -0.03%
simple_comparison 23 (-1) -4.17% 3,495 (-1) -0.03%
5_over 20 (-1) -4.76% 3,488 (-1) -0.03%
regression_struct_array_conditional 71 (-1) -1.39% 3,203 (-1) -0.03%
conditional_regression_661 29 (-1) -3.33% 2,796 (-1) -0.04%
arithmetic_binary_operations 16 (-2) -11.11% 2,788 (-1) -0.04%
conditional_2 21 (-1) -4.55% 2,781 (-1) -0.04%
3_add 11 (-1) -8.33% 2,772 (-1) -0.04%
side_effects_constrain_array 8 (-1) -11.11% 2,767 (-1) -0.04%
field_attribute 4 (-1) -20.00% 2,763 (-1) -0.04%
array_dynamic 102 (-5) -4.67% 3,714 (-2) -0.05%
array_if_cond_simple 108 (-3) -2.70% 3,132 (-2) -0.06%
regression_4709 70 (-2) -2.78% 2,917 (-2) -0.07%
regression_3607 39 (-4) -9.30% 2,802 (-2) -0.07%
6_array 413 (-2) -0.48% 4,052 (-3) -0.07%
bigint 1,166 (-19) -1.60% 8,117 (-7) -0.09%
bit_shifts_comptime 10 (-3) -23.08% 2,841 (-3) -0.11%
signed_arithmetic 184 (-5) -2.65% 2,933 (-4) -0.14%
ram_blowup_regression 186,387 (-5,144) -2.69% 693,771 (-1,284) -0.18%
schnorr 1,519 (-120) -7.32% 23,932 (-49) -0.20%
bench_poseidon_hash 376 (-31) -7.62% 422 (-1) -0.24%
bench_poseidon_hash_30 11,280 (-930) -7.62% 12,196 (-30) -0.25%
bench_poseidon_hash_100 37,600 (-3,100) -7.62% 40,616 (-100) -0.25%
regression 141 (-17) -10.76% 3,683 (-11) -0.30%
hash_to_field 582 (-31) -5.06% 3,618 (-11) -0.30%
sha256_var_size_regression 16,668 (-1,014) -5.73% 72,103 (-404) -0.56%
signed_cmp 63 (-2) -3.08% 231 (-2) -0.86%
u128 680 (-102) -13.04% 4,689 (-45) -0.95%
conditional_1 4,247 (-249) -5.54% 12,563 (-135) -1.06%
u16_support 189 (-74) -28.14% 3,042 (-34) -1.11%
slices 835 (-84) -9.14% 3,947 (-47) -1.18%
array_len 14 (-3) -17.65% 81 (-1) -1.22%
7_function 156 (-78) -33.33% 2,970 (-37) -1.23%
nested_array_in_slice 883 (-158) -15.18% 5,503 (-84) -1.50%
binary_operator_overloading 402 (-161) -28.60% 4,615 (-77) -1.64%
slice_dynamic_index 982 (-217) -18.10% 6,453 (-111) -1.69%
nested_array_dynamic 3,166 (-656) -17.16% 12,930 (-328) -2.47%
to_le_bytes 73 (-10) -12.05% 118 (-3) -2.48%
poseidon_bn254_hash 892 (-161) -15.29% 1,037 (-32) -2.99%
poseidonsponge_x5_254 1,040 (-262) -20.12% 1,255 (-63) -4.78%
merkle_insert 1,517 (-286) -15.86% 5,149 (-271) -5.00%
bit_shifts_runtime 1,486 (-662) -30.82% 5,481 (-310) -5.35%
bench_eddsa_poseidon 16,439 (-1,483) -8.27% 19,586 (-1,176) -5.66%
to_be_bytes 70 (-14) -16.67% 117 (-8) -6.40%
eddsa 64,629 (-5,665) -8.06% 65,815 (-4,601) -6.53%
regression_5252 56,637 (-20,361) -26.44% 76,370 (-7,371) -8.80%
to_bytes_integration 286 (-143) -33.33% 447 (-50) -10.06%
hashmap 64,134 (-32,358) -33.53% 137,938 (-16,237) -10.53%
simple_radix 2 (-3) -60.00% 17 (-3) -15.00%
poseidon_bn254_hash_width_3 892 (-596) -40.05% 1,037 (-467) -31.05%
to_bytes_consistent 2 (-45) -95.74% 17 (-45) -72.58%

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.

👍

@TomAFrench TomAFrench added this pull request to the merge queue Oct 24, 2024
Merged via the queue into master with commit ec75e8e Oct 24, 2024
47 checks passed
@TomAFrench TomAFrench deleted the gd/issue_6085 branch October 24, 2024 21:27
github-merge-queue bot pushed a commit that referenced this pull request Oct 25, 2024
# Description

## Problem\*

The optimisation pass from PR #6268 iterates over hash maps and hash
sets, which does not guarantee deterministic ordering. This is an issue
as it could lead to different results for the same ACIR input.

## Summary\*
Uses BTreeMap/Set when iterating.


## Additional Context



## Documentation\*

Check one:
- [X] No documentation needed.
- [ ] Documentation included in this PR.
- [ ] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [X] I have tested the changes locally.
- [X] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 25, 2024
…r-lang/noir#6348)

feat(perf): Use [u32;16] for message block in sha256 (noir-lang/noir#6324)
chore: add some tests for type aliases
feat: remove 'single use' intermediate variables (noir-lang/noir#6268)
feat: Sync from aztec-packages (noir-lang/noir#6345)
feat(profiler)!: New flamegraph command that profiles the opcodes executed (noir-lang/noir#6327)
feat: check trait where clause (noir-lang/noir#6325)
fix: better formatting of leading/trailing line/block comments in expression lists (noir-lang/noir#6338)
feat: let the formatter remove lambda block braces for single-statement blocks (noir-lang/noir#6335)
chore: run tests in metaprogramming.rs (noir-lang/noir#6339)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 26, 2024
feat: let the LSP import code action insert into existing use statements (noir-lang/noir#6358)
chore: minor tweaks to comptime doc (noir-lang/noir#6357)
feat: LSP auto-import will try to add to existing use statements (noir-lang/noir#6354)
fix: allow type aliases in let patterns (noir-lang/noir#6356)
feat(test): Run test matrix on stdlib tests (noir-lang/noir#6352)
fix(ssa): Do not mark an array from a parameter mutable (noir-lang/noir#6355)
fix: always inline `derive_generators` (noir-lang/noir#6350)
chore: add test to check that duplicate definitions generated from macros throws error (noir-lang/noir#6351)
chore: switch to btreeset for deterministic ordering (noir-lang/noir#6348)
feat(perf): Use [u32;16] for message block in sha256 (noir-lang/noir#6324)
chore: add some tests for type aliases
feat: remove 'single use' intermediate variables (noir-lang/noir#6268)
feat: Sync from aztec-packages (noir-lang/noir#6345)
feat(profiler)!: New flamegraph command that profiles the opcodes executed (noir-lang/noir#6327)
feat: check trait where clause (noir-lang/noir#6325)
fix: better formatting of leading/trailing line/block comments in expression lists (noir-lang/noir#6338)
feat: let the formatter remove lambda block braces for single-statement blocks (noir-lang/noir#6335)
chore: run tests in metaprogramming.rs (noir-lang/noir#6339)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 26, 2024
feat: let the LSP import code action insert into existing use statements (noir-lang/noir#6358)
chore: minor tweaks to comptime doc (noir-lang/noir#6357)
feat: LSP auto-import will try to add to existing use statements (noir-lang/noir#6354)
fix: allow type aliases in let patterns (noir-lang/noir#6356)
feat(test): Run test matrix on stdlib tests (noir-lang/noir#6352)
fix(ssa): Do not mark an array from a parameter mutable (noir-lang/noir#6355)
fix: always inline `derive_generators` (noir-lang/noir#6350)
chore: add test to check that duplicate definitions generated from macros throws error (noir-lang/noir#6351)
chore: switch to btreeset for deterministic ordering (noir-lang/noir#6348)
feat(perf): Use [u32;16] for message block in sha256 (noir-lang/noir#6324)
chore: add some tests for type aliases
feat: remove 'single use' intermediate variables (noir-lang/noir#6268)
feat: Sync from aztec-packages (noir-lang/noir#6345)
feat(profiler)!: New flamegraph command that profiles the opcodes executed (noir-lang/noir#6327)
feat: check trait where clause (noir-lang/noir#6325)
fix: better formatting of leading/trailing line/block comments in expression lists (noir-lang/noir#6338)
feat: let the formatter remove lambda block braces for single-statement blocks (noir-lang/noir#6335)
chore: run tests in metaprogramming.rs (noir-lang/noir#6339)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 27, 2024
feat: let the LSP import code action insert into existing use statements (noir-lang/noir#6358)
chore: minor tweaks to comptime doc (noir-lang/noir#6357)
feat: LSP auto-import will try to add to existing use statements (noir-lang/noir#6354)
fix: allow type aliases in let patterns (noir-lang/noir#6356)
feat(test): Run test matrix on stdlib tests (noir-lang/noir#6352)
fix(ssa): Do not mark an array from a parameter mutable (noir-lang/noir#6355)
fix: always inline `derive_generators` (noir-lang/noir#6350)
chore: add test to check that duplicate definitions generated from macros throws error (noir-lang/noir#6351)
chore: switch to btreeset for deterministic ordering (noir-lang/noir#6348)
feat(perf): Use [u32;16] for message block in sha256 (noir-lang/noir#6324)
chore: add some tests for type aliases
feat: remove 'single use' intermediate variables (noir-lang/noir#6268)
feat: Sync from aztec-packages (noir-lang/noir#6345)
feat(profiler)!: New flamegraph command that profiles the opcodes executed (noir-lang/noir#6327)
feat: check trait where clause (noir-lang/noir#6325)
fix: better formatting of leading/trailing line/block comments in expression lists (noir-lang/noir#6338)
feat: let the formatter remove lambda block braces for single-statement blocks (noir-lang/noir#6335)
chore: run tests in metaprogramming.rs (noir-lang/noir#6339)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 27, 2024
feat: let the LSP import code action insert into existing use statements (noir-lang/noir#6358)
chore: minor tweaks to comptime doc (noir-lang/noir#6357)
feat: LSP auto-import will try to add to existing use statements (noir-lang/noir#6354)
fix: allow type aliases in let patterns (noir-lang/noir#6356)
feat(test): Run test matrix on stdlib tests (noir-lang/noir#6352)
fix(ssa): Do not mark an array from a parameter mutable (noir-lang/noir#6355)
fix: always inline `derive_generators` (noir-lang/noir#6350)
chore: add test to check that duplicate definitions generated from macros throws error (noir-lang/noir#6351)
chore: switch to btreeset for deterministic ordering (noir-lang/noir#6348)
feat(perf): Use [u32;16] for message block in sha256 (noir-lang/noir#6324)
chore: add some tests for type aliases
feat: remove 'single use' intermediate variables (noir-lang/noir#6268)
feat: Sync from aztec-packages (noir-lang/noir#6345)
feat(profiler)!: New flamegraph command that profiles the opcodes executed (noir-lang/noir#6327)
feat: check trait where clause (noir-lang/noir#6325)
fix: better formatting of leading/trailing line/block comments in expression lists (noir-lang/noir#6338)
feat: let the formatter remove lambda block braces for single-statement blocks (noir-lang/noir#6335)
chore: run tests in metaprogramming.rs (noir-lang/noir#6339)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 28, 2024
feat: let the LSP import code action insert into existing use statements (noir-lang/noir#6358)
chore: minor tweaks to comptime doc (noir-lang/noir#6357)
feat: LSP auto-import will try to add to existing use statements (noir-lang/noir#6354)
fix: allow type aliases in let patterns (noir-lang/noir#6356)
feat(test): Run test matrix on stdlib tests (noir-lang/noir#6352)
fix(ssa): Do not mark an array from a parameter mutable (noir-lang/noir#6355)
fix: always inline `derive_generators` (noir-lang/noir#6350)
chore: add test to check that duplicate definitions generated from macros throws error (noir-lang/noir#6351)
chore: switch to btreeset for deterministic ordering (noir-lang/noir#6348)
feat(perf): Use [u32;16] for message block in sha256 (noir-lang/noir#6324)
chore: add some tests for type aliases
feat: remove 'single use' intermediate variables (noir-lang/noir#6268)
feat: Sync from aztec-packages (noir-lang/noir#6345)
feat(profiler)!: New flamegraph command that profiles the opcodes executed (noir-lang/noir#6327)
feat: check trait where clause (noir-lang/noir#6325)
fix: better formatting of leading/trailing line/block comments in expression lists (noir-lang/noir#6338)
feat: let the formatter remove lambda block braces for single-statement blocks (noir-lang/noir#6335)
chore: run tests in metaprogramming.rs (noir-lang/noir#6339)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 28, 2024
feat: let the LSP import code action insert into existing use statements (noir-lang/noir#6358)
chore: minor tweaks to comptime doc (noir-lang/noir#6357)
feat: LSP auto-import will try to add to existing use statements (noir-lang/noir#6354)
fix: allow type aliases in let patterns (noir-lang/noir#6356)
feat(test): Run test matrix on stdlib tests (noir-lang/noir#6352)
fix(ssa): Do not mark an array from a parameter mutable (noir-lang/noir#6355)
fix: always inline `derive_generators` (noir-lang/noir#6350)
chore: add test to check that duplicate definitions generated from macros throws error (noir-lang/noir#6351)
chore: switch to btreeset for deterministic ordering (noir-lang/noir#6348)
feat(perf): Use [u32;16] for message block in sha256 (noir-lang/noir#6324)
chore: add some tests for type aliases
feat: remove 'single use' intermediate variables (noir-lang/noir#6268)
feat: Sync from aztec-packages (noir-lang/noir#6345)
feat(profiler)!: New flamegraph command that profiles the opcodes executed (noir-lang/noir#6327)
feat: check trait where clause (noir-lang/noir#6325)
fix: better formatting of leading/trailing line/block comments in expression lists (noir-lang/noir#6338)
feat: let the formatter remove lambda block braces for single-statement blocks (noir-lang/noir#6335)
chore: run tests in metaprogramming.rs (noir-lang/noir#6339)
TomAFrench added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 28, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
fix: Fix panic in comptime code
(noir-lang/noir#6361)
feat: let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
chore: minor tweaks to comptime doc
(noir-lang/noir#6357)
feat: LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
fix: allow type aliases in let patterns
(noir-lang/noir#6356)
feat(test): Run test matrix on stdlib tests
(noir-lang/noir#6352)
fix(ssa): Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
fix: always inline `derive_generators`
(noir-lang/noir#6350)
chore: add test to check that duplicate definitions generated from
macros throws error (noir-lang/noir#6351)
chore: switch to btreeset for deterministic ordering
(noir-lang/noir#6348)
feat(perf): Use [u32;16] for message block in sha256
(noir-lang/noir#6324)
chore: add some tests for type aliases
feat: remove 'single use' intermediate variables
(noir-lang/noir#6268)
feat: Sync from aztec-packages
(noir-lang/noir#6345)
feat(profiler)!: New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
feat: check trait where clause
(noir-lang/noir#6325)
fix: better formatting of leading/trailing line/block comments in
expression lists (noir-lang/noir#6338)
feat: let the formatter remove lambda block braces for single-statement
blocks (noir-lang/noir#6335)
chore: run tests in metaprogramming.rs
(noir-lang/noir#6339)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Tom French <tom@tomfren.ch>
AztecBot added a commit to AztecProtocol/aztec-nr that referenced this pull request Oct 29, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
fix: Fix panic in comptime code
(noir-lang/noir#6361)
feat: let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
chore: minor tweaks to comptime doc
(noir-lang/noir#6357)
feat: LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
fix: allow type aliases in let patterns
(noir-lang/noir#6356)
feat(test): Run test matrix on stdlib tests
(noir-lang/noir#6352)
fix(ssa): Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
fix: always inline `derive_generators`
(noir-lang/noir#6350)
chore: add test to check that duplicate definitions generated from
macros throws error (noir-lang/noir#6351)
chore: switch to btreeset for deterministic ordering
(noir-lang/noir#6348)
feat(perf): Use [u32;16] for message block in sha256
(noir-lang/noir#6324)
chore: add some tests for type aliases
feat: remove 'single use' intermediate variables
(noir-lang/noir#6268)
feat: Sync from aztec-packages
(noir-lang/noir#6345)
feat(profiler)!: New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
feat: check trait where clause
(noir-lang/noir#6325)
fix: better formatting of leading/trailing line/block comments in
expression lists (noir-lang/noir#6338)
feat: let the formatter remove lambda block braces for single-statement
blocks (noir-lang/noir#6335)
chore: run tests in metaprogramming.rs
(noir-lang/noir#6339)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Tom French <tom@tomfren.ch>
TomAFrench pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 30, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.61.0](aztec-package-v0.60.0...aztec-package-v0.61.0)
(2024-10-30)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

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

##
[0.61.0](barretenberg.js-v0.60.0...barretenberg.js-v0.61.0)
(2024-10-30)


### Miscellaneous

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

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

##
[0.61.0](aztec-packages-v0.60.0...aztec-packages-v0.61.0)
(2024-10-30)


### ⚠ BREAKING CHANGES

* **avm:** cleanup CALL
([#9551](#9551))
* **avm:** returndatasize + returndatacopy
([#9475](#9475))
* use Brillig opcode when possible for less-than operations on fields
([#9416](#9416))
* **profiler:** New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
* split base rollup and remove public kernel proving
([#9434](#9434))
* getcontractinstance instruction returns only a specified member
([#9300](#9300))
* **avm/brillig:** revert/rethrow oracle
([#9408](#9408))

### Features

* `bytes_to_fields` requiring only 1 generic param
([#9417](#9417))
([2217da6](2217da6))
* 20-30% cost reduction in recursive ipa algorithm
([#9420](#9420))
([a4bd3e1](a4bd3e1))
* Add capacities to brillig vectors and use them in slice ops
(noir-lang/noir#6332)
([b82f3d1](b82f3d1))
* Added indexes and a way to store/retrieve tagged secrets
([#9468](#9468))
([1c685b1](1c685b1))
* **avm/brillig:** Revert/rethrow oracle
([#9408](#9408))
([1bbd724](1bbd724))
* **avm:** Avm replace zeromorph pcs by shplemini
([#9389](#9389))
([07d6dc2](07d6dc2))
* **avm:** Cleanup CALL
([#9551](#9551))
([26adc55](26adc55))
* **avm:** Merkle tree gadget
([#9205](#9205))
([d52b616](d52b616))
* **avm:** Returndatasize + returndatacopy
([#9475](#9475))
([8f71006](8f71006))
* **avm:** Trace contract class and contract instance
([#8840](#8840))
([84205d8](84205d8))
* Better LSP hover for functions
(noir-lang/noir#6376)
([b82f3d1](b82f3d1))
* Bytecode hashing init
([#8535](#8535))
([2bb09e5](2bb09e5))
* Check trait where clause (noir-lang/noir#6325)
([d67381b](d67381b))
* Comptime deriving generators in macros
([#9195](#9195))
([c4b629c](c4b629c))
* Derive address and class id in avm
([#8897](#8897))
([2ebe361](2ebe361))
* Do not increment reference counts on arrays through references
(noir-lang/noir#6375)
([f386612](f386612))
* **docs:** Function transforms (hidden macros)
([#7784](#7784))
([831cc66](831cc66))
* Fee pricing to 0 for old instances
([#9296](#9296))
([7bc3a21](7bc3a21))
* Fixed number of pub inputs for databus commitment propagation
([#9336](#9336))
([8658abd](8658abd))
* Getcontractinstance instruction returns only a specified member
([#9300](#9300))
([29b692f](29b692f))
* Implement encryption to an address point and decryption from an
address secret
([#9272](#9272))
([6d77dd0](6d77dd0))
* Initial block reward + external libraries
([#9297](#9297))
([240e9b5](240e9b5))
* Let LSP suggest traits in trait bounds
(noir-lang/noir#6370)
([f386612](f386612))
* Let the formatter remove lambda block braces for single-statement
blocks (noir-lang/noir#6335)
([d67381b](d67381b))
* Let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
([f386612](f386612))
* Let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
([d67381b](d67381b))
* LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
([f386612](f386612))
* LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
([d67381b](d67381b))
* Merge and sort imports (noir-lang/noir#6322)
([b4db379](b4db379))
* Note tagging oracle
([#9429](#9429))
([cec6306](cec6306))
* Ownable sysstia
([#9398](#9398))
([30314ec](30314ec)),
closes
[#9351](#9351)
* **perf:** Use [u32;16] for message block in sha256
(noir-lang/noir#6324)
([d67381b](d67381b))
* Print finalized size and log dyadic size during Ultra proof
construction
([#9411](#9411))
([84fdc52](84fdc52))
* **profiler:** New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
([d67381b](d67381b))
* Prover coordination test with a reorg
([#9405](#9405))
([9efe288](9efe288))
* **prover:** Perform prover coordination via p2p layer
([#9325](#9325))
([2132bc2](2132bc2)),
closes
[#9264](#9264)
* Reject programs with unconditional recursion
(noir-lang/noir#6292)
([b4db379](b4db379))
* Remove 'single use' intermediate variables
(noir-lang/noir#6268)
([d67381b](d67381b))
* Reorder blocks for efficiency
([#9560](#9560))
([10874f4](10874f4))
* Simulate latency with network chaos
([#9469](#9469))
([10aefbb](10aefbb))
* Sol shplemini in acir tests + contract_gen
([#8874](#8874))
([1c0275d](1c0275d))
* Suggest removing `!` from macro call that doesn't return Quoted
(noir-lang/noir#6384)
([b82f3d1](b82f3d1))
* Support specifying generics on a struct when calling an associated
function (noir-lang/noir#6306)
([b82f3d1](b82f3d1))
* Sync from aztec-packages (noir-lang/noir#6345)
([d67381b](d67381b))
* Tally AVM opcodes executed in simulator
([#9473](#9473))
([9a06ada](9a06ada))
* **test:** Run test matrix on stdlib tests
(noir-lang/noir#6352)
([f386612](f386612))
* **test:** Run test matrix on stdlib tests
(noir-lang/noir#6352)
([d67381b](d67381b))


### Bug Fixes

* (formatter) correctly format quote delimiters
(noir-lang/noir#6377)
([b82f3d1](b82f3d1))
* (formatter) indent after infix lhs
(noir-lang/noir#6331)
([b4db379](b4db379))
* (LSP) check visibility of module that re-exports item, if any
(noir-lang/noir#6371)
([f386612](f386612))
* Add native verification test to honk keccak
([#9501](#9501))
([59810e0](59810e0))
* Allow globals in format strings
(noir-lang/noir#6382)
([b82f3d1](b82f3d1))
* Allow more resources for 4epochs tests
([#9418](#9418))
([74a8ad1](74a8ad1))
* Allow type aliases in let patterns
(noir-lang/noir#6356)
([f386612](f386612))
* Allow type aliases in let patterns
(noir-lang/noir#6356)
([d67381b](d67381b))
* Always inline `derive_generators`
(noir-lang/noir#6350)
([f386612](f386612))
* Always inline `derive_generators`
(noir-lang/noir#6350)
([d67381b](d67381b))
* **avm:** Address bytecode hashing comments
([#9436](#9436))
([a85f92a](a85f92a))
* **avm:** Disable sha256 in bulk test until we debug it
([#9482](#9482))
([078c318](078c318))
* **avm:** Re-enable sha256 in bulk test, fix bug in AVM SHL/SHR
([#9496](#9496))
([0fe64df](0fe64df))
* Bb-only-change fix e2e build instability
([#9441](#9441))
([ca3abaa](ca3abaa))
* Better formatting of leading/trailing line/block comments in
expression lists (noir-lang/noir#6338)
([d67381b](d67381b))
* Cleanup of janky encryption apis
([#9390](#9390))
([9e3e536](9e3e536))
* Deploy & version aztec-up scripts
([#9435](#9435))
([ad80169](ad80169))
* Display every bit in integer tokens
(noir-lang/noir#6360)
([b82f3d1](b82f3d1))
* Docker fast
([#9467](#9467))
([34e6dd0](34e6dd0))
* **docs:** Update getting started docs
([#9426](#9426))
([985190b](985190b))
* Fix panic in comptime code
(noir-lang/noir#6361)
([f386612](f386612))
* Fix panic in comptime code
(noir-lang/noir#6361)
([d67381b](d67381b))
* Formatter didn't format `&gt;>=` well
(noir-lang/noir#6337)
([b4db379](b4db379))
* Honk shplemini acir artifacts
([#9550](#9550))
([468c100](468c100))
* Issue in partial notes API
([#9555](#9555))
([9d66c1a](9d66c1a))
* LSP auto-import would import public item inside private module
(noir-lang/noir#6366)
([f386612](f386612))
* Make keccak256 work with input lengths greater than 136 bytes
(noir-lang/noir#6393)
([b82f3d1](b82f3d1))
* Make sure kind tests run every master commit
([#9478](#9478))
([78de316](78de316))
* Mutable global pattern didn't have a span
(noir-lang/noir#6328)
([b4db379](b4db379))
* Remove assumed parent traits
(noir-lang/noir#6365)
([f386612](f386612))
* Remove unnecessary ivpk's from aztec-nr
([#9460](#9460))
([c6437cc](c6437cc))
* Replace npk_m_hash with addresses
([#9461](#9461))
([f4ed55b](f4ed55b))
* Revert "feat: sol shplemini in acir tests + contract_gen"
([#9505](#9505))
([3351217](3351217))
* Slightly better formatting of empty blocks with comments
(noir-lang/noir#6367)
([f386612](f386612))
* Spot_strategy passing
([#9428](#9428))
([1e38d3e](1e38d3e))
* **ssa:** Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
([f386612](f386612))
* **ssa:** Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
([d67381b](d67381b))
* Yarn build:fast
([#9464](#9464))
([bbe6d06](bbe6d06))
* Yarn project bootstrap fast
([#9440](#9440))
([c1ebed5](c1ebed5))


### Miscellaneous

* Add serdes and eq for address note
([#9544](#9544))
([74bcfab](74bcfab))
* Add some tests for type aliases
([d67381b](d67381b))
* Add test to check that duplicate definitions generated from macros
throws error (noir-lang/noir#6351)
([f386612](f386612))
* Add test to check that duplicate definitions generated from macros
throws error (noir-lang/noir#6351)
([d67381b](d67381b))
* Align debug logging between AVM sim & witgen
([#9498](#9498))
([7c2d67a](7c2d67a))
* **avm::** Fix execution tests in proving mode
([#9466](#9466))
([8e07de8](8e07de8))
* **avm:** Allocate memory for unshifted polynomials according to their
trace col size
([#9345](#9345))
([a67d0e2](a67d0e2))
* Bumping L2 gas and public reads constants
([#9431](#9431))
([91c50dd](91c50dd))
* **CI:** Remove end-to-end/Earthfile
([#9364](#9364))
([2823cbb](2823cbb)),
closes
[#9221](#9221)
* Clean up note processor after changes due to address
([#9401](#9401))
([d33c988](d33c988))
* Disable e2e_fees_dapp_subscription
([#9489](#9489))
([26416b6](26416b6))
* Disable flakey e2e_synching.test.ts
([#9439](#9439))
([01147a5](01147a5))
* Dont show aws creds in docker fast
([#9465](#9465))
([a6d8f48](a6d8f48))
* Fix sync scripts
([#9423](#9423))
([7766c8e](7766c8e))
* Have 'aztec' honour the 'DEBUG' env var
([#9413](#9413))
([771a2ac](771a2ac))
* Minor tweaks to comptime doc
(noir-lang/noir#6357)
([f386612](f386612))
* Minor tweaks to comptime doc
(noir-lang/noir#6357)
([d67381b](d67381b))
* Minting only private or public balance in Token TXE tests
([#9491](#9491))
([b8c015b](b8c015b))
* Node follow prune and extend chain
([#9328](#9328))
([a653fd3](a653fd3))
* Noir bug workaround
([#9443](#9443))
([f619687](f619687))
* Passing partial note logs through transient storage
([#9356](#9356))
([8835b31](8835b31))
* Redo typo PR by defitricks
([#9571](#9571))
([9a5dce3](9a5dce3))
* Remove ovpk as param in boxes contracts
([#9495](#9495))
([2b24b98](2b24b98))
* Remove unnecessary trait
([#9437](#9437))
([1db2eec](1db2eec))
* Rename private function in L2 block stream
([#9481](#9481))
([a34d4aa](a34d4aa)),
closes
[#9314](#9314)
* Replace relative paths to noir-protocol-circuits
([4f2d67c](4f2d67c))
* Replace relative paths to noir-protocol-circuits
([33f2151](33f2151))
* Replace relative paths to noir-protocol-circuits
([5247be2](5247be2))
* Replace relative paths to noir-protocol-circuits
([49467ba](49467ba))
* Replace relative paths to noir-protocol-circuits
([f6d714f](f6d714f))
* Replace relative paths to noir-protocol-circuits
([b4841ad](b4841ad))
* Replace token note with uint note
([#8143](#8143))
([493a3f3](493a3f3))
* Run tests in metaprogramming.rs
(noir-lang/noir#6339)
([d67381b](d67381b))
* Split base rollup and remove public kernel proving
([#9434](#9434))
([4316242](4316242))
* Switch to btreeset for deterministic ordering
(noir-lang/noir#6348)
([d67381b](d67381b))
* Update title from feedback
(noir-lang/noir#6334)
([b4db379](b4db379))
* Use array instead of Vec in keccak256
(noir-lang/noir#6395)
([b82f3d1](b82f3d1))
* Use big endian in sha
([#9471](#9471))
([bc9828e](bc9828e))
* Use Brillig opcode when possible for less-than operations on fields
([#9416](#9416))
([e50303d](e50303d))


### Documentation

* Clean up docker messaging
([#9419](#9419))
([4c4974f](4c4974f))
</details>

<details><summary>barretenberg: 0.61.0</summary>

##
[0.61.0](barretenberg-v0.60.0...barretenberg-v0.61.0)
(2024-10-30)


### ⚠ BREAKING CHANGES

* **avm:** cleanup CALL
([#9551](#9551))
* **avm:** returndatasize + returndatacopy
([#9475](#9475))
* getcontractinstance instruction returns only a specified member
([#9300](#9300))
* **avm/brillig:** revert/rethrow oracle
([#9408](#9408))

### Features

* 20-30% cost reduction in recursive ipa algorithm
([#9420](#9420))
([a4bd3e1](a4bd3e1))
* **avm/brillig:** Revert/rethrow oracle
([#9408](#9408))
([1bbd724](1bbd724))
* **avm:** Avm replace zeromorph pcs by shplemini
([#9389](#9389))
([07d6dc2](07d6dc2))
* **avm:** Cleanup CALL
([#9551](#9551))
([26adc55](26adc55))
* **avm:** Merkle tree gadget
([#9205](#9205))
([d52b616](d52b616))
* **avm:** Returndatasize + returndatacopy
([#9475](#9475))
([8f71006](8f71006))
* **avm:** Trace contract class and contract instance
([#8840](#8840))
([84205d8](84205d8))
* Bytecode hashing init
([#8535](#8535))
([2bb09e5](2bb09e5))
* Derive address and class id in avm
([#8897](#8897))
([2ebe361](2ebe361))
* Fixed number of pub inputs for databus commitment propagation
([#9336](#9336))
([8658abd](8658abd))
* Getcontractinstance instruction returns only a specified member
([#9300](#9300))
([29b692f](29b692f))
* Print finalized size and log dyadic size during Ultra proof
construction
([#9411](#9411))
([84fdc52](84fdc52))
* Reorder blocks for efficiency
([#9560](#9560))
([10874f4](10874f4))
* Sol shplemini in acir tests + contract_gen
([#8874](#8874))
([1c0275d](1c0275d))


### Bug Fixes

* Add native verification test to honk keccak
([#9501](#9501))
([59810e0](59810e0))
* **avm:** Address bytecode hashing comments
([#9436](#9436))
([a85f92a](a85f92a))
* **avm:** Re-enable sha256 in bulk test, fix bug in AVM SHL/SHR
([#9496](#9496))
([0fe64df](0fe64df))
* Honk shplemini acir artifacts
([#9550](#9550))
([468c100](468c100))
* Revert "feat: sol shplemini in acir tests + contract_gen"
([#9505](#9505))
([3351217](3351217))


### Miscellaneous

* Align debug logging between AVM sim & witgen
([#9498](#9498))
([7c2d67a](7c2d67a))
* **avm::** Fix execution tests in proving mode
([#9466](#9466))
([8e07de8](8e07de8))
* **avm:** Allocate memory for unshifted polynomials according to their
trace col size
([#9345](#9345))
([a67d0e2](a67d0e2))
* Bumping L2 gas and public reads constants
([#9431](#9431))
([91c50dd](91c50dd))
* Use big endian in sha
([#9471](#9471))
([bc9828e](bc9828e))
</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 Oct 31, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.61.0](AztecProtocol/aztec-packages@aztec-package-v0.60.0...aztec-package-v0.61.0)
(2024-10-30)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

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

##
[0.61.0](AztecProtocol/aztec-packages@barretenberg.js-v0.60.0...barretenberg.js-v0.61.0)
(2024-10-30)


### Miscellaneous

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

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

##
[0.61.0](AztecProtocol/aztec-packages@aztec-packages-v0.60.0...aztec-packages-v0.61.0)
(2024-10-30)


### ⚠ BREAKING CHANGES

* **avm:** cleanup CALL
([#9551](AztecProtocol/aztec-packages#9551))
* **avm:** returndatasize + returndatacopy
([#9475](AztecProtocol/aztec-packages#9475))
* use Brillig opcode when possible for less-than operations on fields
([#9416](AztecProtocol/aztec-packages#9416))
* **profiler:** New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
* split base rollup and remove public kernel proving
([#9434](AztecProtocol/aztec-packages#9434))
* getcontractinstance instruction returns only a specified member
([#9300](AztecProtocol/aztec-packages#9300))
* **avm/brillig:** revert/rethrow oracle
([#9408](AztecProtocol/aztec-packages#9408))

### Features

* `bytes_to_fields` requiring only 1 generic param
([#9417](AztecProtocol/aztec-packages#9417))
([2217da6](AztecProtocol/aztec-packages@2217da6))
* 20-30% cost reduction in recursive ipa algorithm
([#9420](AztecProtocol/aztec-packages#9420))
([a4bd3e1](AztecProtocol/aztec-packages@a4bd3e1))
* Add capacities to brillig vectors and use them in slice ops
(noir-lang/noir#6332)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Added indexes and a way to store/retrieve tagged secrets
([#9468](AztecProtocol/aztec-packages#9468))
([1c685b1](AztecProtocol/aztec-packages@1c685b1))
* **avm/brillig:** Revert/rethrow oracle
([#9408](AztecProtocol/aztec-packages#9408))
([1bbd724](AztecProtocol/aztec-packages@1bbd724))
* **avm:** Avm replace zeromorph pcs by shplemini
([#9389](AztecProtocol/aztec-packages#9389))
([07d6dc2](AztecProtocol/aztec-packages@07d6dc2))
* **avm:** Cleanup CALL
([#9551](AztecProtocol/aztec-packages#9551))
([26adc55](AztecProtocol/aztec-packages@26adc55))
* **avm:** Merkle tree gadget
([#9205](AztecProtocol/aztec-packages#9205))
([d52b616](AztecProtocol/aztec-packages@d52b616))
* **avm:** Returndatasize + returndatacopy
([#9475](AztecProtocol/aztec-packages#9475))
([8f71006](AztecProtocol/aztec-packages@8f71006))
* **avm:** Trace contract class and contract instance
([#8840](AztecProtocol/aztec-packages#8840))
([84205d8](AztecProtocol/aztec-packages@84205d8))
* Better LSP hover for functions
(noir-lang/noir#6376)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Bytecode hashing init
([#8535](AztecProtocol/aztec-packages#8535))
([2bb09e5](AztecProtocol/aztec-packages@2bb09e5))
* Check trait where clause (noir-lang/noir#6325)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Comptime deriving generators in macros
([#9195](AztecProtocol/aztec-packages#9195))
([c4b629c](AztecProtocol/aztec-packages@c4b629c))
* Derive address and class id in avm
([#8897](AztecProtocol/aztec-packages#8897))
([2ebe361](AztecProtocol/aztec-packages@2ebe361))
* Do not increment reference counts on arrays through references
(noir-lang/noir#6375)
([f386612](AztecProtocol/aztec-packages@f386612))
* **docs:** Function transforms (hidden macros)
([#7784](AztecProtocol/aztec-packages#7784))
([831cc66](AztecProtocol/aztec-packages@831cc66))
* Fee pricing to 0 for old instances
([#9296](AztecProtocol/aztec-packages#9296))
([7bc3a21](AztecProtocol/aztec-packages@7bc3a21))
* Fixed number of pub inputs for databus commitment propagation
([#9336](AztecProtocol/aztec-packages#9336))
([8658abd](AztecProtocol/aztec-packages@8658abd))
* Getcontractinstance instruction returns only a specified member
([#9300](AztecProtocol/aztec-packages#9300))
([29b692f](AztecProtocol/aztec-packages@29b692f))
* Implement encryption to an address point and decryption from an
address secret
([#9272](AztecProtocol/aztec-packages#9272))
([6d77dd0](AztecProtocol/aztec-packages@6d77dd0))
* Initial block reward + external libraries
([#9297](AztecProtocol/aztec-packages#9297))
([240e9b5](AztecProtocol/aztec-packages@240e9b5))
* Let LSP suggest traits in trait bounds
(noir-lang/noir#6370)
([f386612](AztecProtocol/aztec-packages@f386612))
* Let the formatter remove lambda block braces for single-statement
blocks (noir-lang/noir#6335)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
([f386612](AztecProtocol/aztec-packages@f386612))
* Let the LSP import code action insert into existing use statements
(noir-lang/noir#6358)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
([f386612](AztecProtocol/aztec-packages@f386612))
* LSP auto-import will try to add to existing use statements
(noir-lang/noir#6354)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Merge and sort imports (noir-lang/noir#6322)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Note tagging oracle
([#9429](AztecProtocol/aztec-packages#9429))
([cec6306](AztecProtocol/aztec-packages@cec6306))
* Ownable sysstia
([#9398](AztecProtocol/aztec-packages#9398))
([30314ec](AztecProtocol/aztec-packages@30314ec)),
closes
[#9351](AztecProtocol/aztec-packages#9351)
* **perf:** Use [u32;16] for message block in sha256
(noir-lang/noir#6324)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Print finalized size and log dyadic size during Ultra proof
construction
([#9411](AztecProtocol/aztec-packages#9411))
([84fdc52](AztecProtocol/aztec-packages@84fdc52))
* **profiler:** New flamegraph command that profiles the opcodes
executed (noir-lang/noir#6327)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Prover coordination test with a reorg
([#9405](AztecProtocol/aztec-packages#9405))
([9efe288](AztecProtocol/aztec-packages@9efe288))
* **prover:** Perform prover coordination via p2p layer
([#9325](AztecProtocol/aztec-packages#9325))
([2132bc2](AztecProtocol/aztec-packages@2132bc2)),
closes
[#9264](AztecProtocol/aztec-packages#9264)
* Reject programs with unconditional recursion
(noir-lang/noir#6292)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Remove 'single use' intermediate variables
(noir-lang/noir#6268)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Reorder blocks for efficiency
([#9560](AztecProtocol/aztec-packages#9560))
([10874f4](AztecProtocol/aztec-packages@10874f4))
* Simulate latency with network chaos
([#9469](AztecProtocol/aztec-packages#9469))
([10aefbb](AztecProtocol/aztec-packages@10aefbb))
* Sol shplemini in acir tests + contract_gen
([#8874](AztecProtocol/aztec-packages#8874))
([1c0275d](AztecProtocol/aztec-packages@1c0275d))
* Suggest removing `!` from macro call that doesn't return Quoted
(noir-lang/noir#6384)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Support specifying generics on a struct when calling an associated
function (noir-lang/noir#6306)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Sync from aztec-packages (noir-lang/noir#6345)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Tally AVM opcodes executed in simulator
([#9473](AztecProtocol/aztec-packages#9473))
([9a06ada](AztecProtocol/aztec-packages@9a06ada))
* **test:** Run test matrix on stdlib tests
(noir-lang/noir#6352)
([f386612](AztecProtocol/aztec-packages@f386612))
* **test:** Run test matrix on stdlib tests
(noir-lang/noir#6352)
([d67381b](AztecProtocol/aztec-packages@d67381b))


### Bug Fixes

* (formatter) correctly format quote delimiters
(noir-lang/noir#6377)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* (formatter) indent after infix lhs
(noir-lang/noir#6331)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* (LSP) check visibility of module that re-exports item, if any
(noir-lang/noir#6371)
([f386612](AztecProtocol/aztec-packages@f386612))
* Add native verification test to honk keccak
([#9501](AztecProtocol/aztec-packages#9501))
([59810e0](AztecProtocol/aztec-packages@59810e0))
* Allow globals in format strings
(noir-lang/noir#6382)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Allow more resources for 4epochs tests
([#9418](AztecProtocol/aztec-packages#9418))
([74a8ad1](AztecProtocol/aztec-packages@74a8ad1))
* Allow type aliases in let patterns
(noir-lang/noir#6356)
([f386612](AztecProtocol/aztec-packages@f386612))
* Allow type aliases in let patterns
(noir-lang/noir#6356)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Always inline `derive_generators`
(noir-lang/noir#6350)
([f386612](AztecProtocol/aztec-packages@f386612))
* Always inline `derive_generators`
(noir-lang/noir#6350)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* **avm:** Address bytecode hashing comments
([#9436](AztecProtocol/aztec-packages#9436))
([a85f92a](AztecProtocol/aztec-packages@a85f92a))
* **avm:** Disable sha256 in bulk test until we debug it
([#9482](AztecProtocol/aztec-packages#9482))
([078c318](AztecProtocol/aztec-packages@078c318))
* **avm:** Re-enable sha256 in bulk test, fix bug in AVM SHL/SHR
([#9496](AztecProtocol/aztec-packages#9496))
([0fe64df](AztecProtocol/aztec-packages@0fe64df))
* Bb-only-change fix e2e build instability
([#9441](AztecProtocol/aztec-packages#9441))
([ca3abaa](AztecProtocol/aztec-packages@ca3abaa))
* Better formatting of leading/trailing line/block comments in
expression lists (noir-lang/noir#6338)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Cleanup of janky encryption apis
([#9390](AztecProtocol/aztec-packages#9390))
([9e3e536](AztecProtocol/aztec-packages@9e3e536))
* Deploy & version aztec-up scripts
([#9435](AztecProtocol/aztec-packages#9435))
([ad80169](AztecProtocol/aztec-packages@ad80169))
* Display every bit in integer tokens
(noir-lang/noir#6360)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Docker fast
([#9467](AztecProtocol/aztec-packages#9467))
([34e6dd0](AztecProtocol/aztec-packages@34e6dd0))
* **docs:** Update getting started docs
([#9426](AztecProtocol/aztec-packages#9426))
([985190b](AztecProtocol/aztec-packages@985190b))
* Fix panic in comptime code
(noir-lang/noir#6361)
([f386612](AztecProtocol/aztec-packages@f386612))
* Fix panic in comptime code
(noir-lang/noir#6361)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Formatter didn't format `&gt;>=` well
(noir-lang/noir#6337)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Honk shplemini acir artifacts
([#9550](AztecProtocol/aztec-packages#9550))
([468c100](AztecProtocol/aztec-packages@468c100))
* Issue in partial notes API
([#9555](AztecProtocol/aztec-packages#9555))
([9d66c1a](AztecProtocol/aztec-packages@9d66c1a))
* LSP auto-import would import public item inside private module
(noir-lang/noir#6366)
([f386612](AztecProtocol/aztec-packages@f386612))
* Make keccak256 work with input lengths greater than 136 bytes
(noir-lang/noir#6393)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Make sure kind tests run every master commit
([#9478](AztecProtocol/aztec-packages#9478))
([78de316](AztecProtocol/aztec-packages@78de316))
* Mutable global pattern didn't have a span
(noir-lang/noir#6328)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Remove assumed parent traits
(noir-lang/noir#6365)
([f386612](AztecProtocol/aztec-packages@f386612))
* Remove unnecessary ivpk's from aztec-nr
([#9460](AztecProtocol/aztec-packages#9460))
([c6437cc](AztecProtocol/aztec-packages@c6437cc))
* Replace npk_m_hash with addresses
([#9461](AztecProtocol/aztec-packages#9461))
([f4ed55b](AztecProtocol/aztec-packages@f4ed55b))
* Revert "feat: sol shplemini in acir tests + contract_gen"
([#9505](AztecProtocol/aztec-packages#9505))
([3351217](AztecProtocol/aztec-packages@3351217))
* Slightly better formatting of empty blocks with comments
(noir-lang/noir#6367)
([f386612](AztecProtocol/aztec-packages@f386612))
* Spot_strategy passing
([#9428](AztecProtocol/aztec-packages#9428))
([1e38d3e](AztecProtocol/aztec-packages@1e38d3e))
* **ssa:** Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
([f386612](AztecProtocol/aztec-packages@f386612))
* **ssa:** Do not mark an array from a parameter mutable
(noir-lang/noir#6355)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Yarn build:fast
([#9464](AztecProtocol/aztec-packages#9464))
([bbe6d06](AztecProtocol/aztec-packages@bbe6d06))
* Yarn project bootstrap fast
([#9440](AztecProtocol/aztec-packages#9440))
([c1ebed5](AztecProtocol/aztec-packages@c1ebed5))


### Miscellaneous

* Add serdes and eq for address note
([#9544](AztecProtocol/aztec-packages#9544))
([74bcfab](AztecProtocol/aztec-packages@74bcfab))
* Add some tests for type aliases
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Add test to check that duplicate definitions generated from macros
throws error (noir-lang/noir#6351)
([f386612](AztecProtocol/aztec-packages@f386612))
* Add test to check that duplicate definitions generated from macros
throws error (noir-lang/noir#6351)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Align debug logging between AVM sim & witgen
([#9498](AztecProtocol/aztec-packages#9498))
([7c2d67a](AztecProtocol/aztec-packages@7c2d67a))
* **avm::** Fix execution tests in proving mode
([#9466](AztecProtocol/aztec-packages#9466))
([8e07de8](AztecProtocol/aztec-packages@8e07de8))
* **avm:** Allocate memory for unshifted polynomials according to their
trace col size
([#9345](AztecProtocol/aztec-packages#9345))
([a67d0e2](AztecProtocol/aztec-packages@a67d0e2))
* Bumping L2 gas and public reads constants
([#9431](AztecProtocol/aztec-packages#9431))
([91c50dd](AztecProtocol/aztec-packages@91c50dd))
* **CI:** Remove end-to-end/Earthfile
([#9364](AztecProtocol/aztec-packages#9364))
([2823cbb](AztecProtocol/aztec-packages@2823cbb)),
closes
[#9221](AztecProtocol/aztec-packages#9221)
* Clean up note processor after changes due to address
([#9401](AztecProtocol/aztec-packages#9401))
([d33c988](AztecProtocol/aztec-packages@d33c988))
* Disable e2e_fees_dapp_subscription
([#9489](AztecProtocol/aztec-packages#9489))
([26416b6](AztecProtocol/aztec-packages@26416b6))
* Disable flakey e2e_synching.test.ts
([#9439](AztecProtocol/aztec-packages#9439))
([01147a5](AztecProtocol/aztec-packages@01147a5))
* Dont show aws creds in docker fast
([#9465](AztecProtocol/aztec-packages#9465))
([a6d8f48](AztecProtocol/aztec-packages@a6d8f48))
* Fix sync scripts
([#9423](AztecProtocol/aztec-packages#9423))
([7766c8e](AztecProtocol/aztec-packages@7766c8e))
* Have 'aztec' honour the 'DEBUG' env var
([#9413](AztecProtocol/aztec-packages#9413))
([771a2ac](AztecProtocol/aztec-packages@771a2ac))
* Minor tweaks to comptime doc
(noir-lang/noir#6357)
([f386612](AztecProtocol/aztec-packages@f386612))
* Minor tweaks to comptime doc
(noir-lang/noir#6357)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Minting only private or public balance in Token TXE tests
([#9491](AztecProtocol/aztec-packages#9491))
([b8c015b](AztecProtocol/aztec-packages@b8c015b))
* Node follow prune and extend chain
([#9328](AztecProtocol/aztec-packages#9328))
([a653fd3](AztecProtocol/aztec-packages@a653fd3))
* Noir bug workaround
([#9443](AztecProtocol/aztec-packages#9443))
([f619687](AztecProtocol/aztec-packages@f619687))
* Passing partial note logs through transient storage
([#9356](AztecProtocol/aztec-packages#9356))
([8835b31](AztecProtocol/aztec-packages@8835b31))
* Redo typo PR by defitricks
([#9571](AztecProtocol/aztec-packages#9571))
([9a5dce3](AztecProtocol/aztec-packages@9a5dce3))
* Remove ovpk as param in boxes contracts
([#9495](AztecProtocol/aztec-packages#9495))
([2b24b98](AztecProtocol/aztec-packages@2b24b98))
* Remove unnecessary trait
([#9437](AztecProtocol/aztec-packages#9437))
([1db2eec](AztecProtocol/aztec-packages@1db2eec))
* Rename private function in L2 block stream
([#9481](AztecProtocol/aztec-packages#9481))
([a34d4aa](AztecProtocol/aztec-packages@a34d4aa)),
closes
[#9314](AztecProtocol/aztec-packages#9314)
* Replace relative paths to noir-protocol-circuits
([4f2d67c](AztecProtocol/aztec-packages@4f2d67c))
* Replace relative paths to noir-protocol-circuits
([33f2151](AztecProtocol/aztec-packages@33f2151))
* Replace relative paths to noir-protocol-circuits
([5247be2](AztecProtocol/aztec-packages@5247be2))
* Replace relative paths to noir-protocol-circuits
([49467ba](AztecProtocol/aztec-packages@49467ba))
* Replace relative paths to noir-protocol-circuits
([f6d714f](AztecProtocol/aztec-packages@f6d714f))
* Replace relative paths to noir-protocol-circuits
([b4841ad](AztecProtocol/aztec-packages@b4841ad))
* Replace token note with uint note
([#8143](AztecProtocol/aztec-packages#8143))
([493a3f3](AztecProtocol/aztec-packages@493a3f3))
* Run tests in metaprogramming.rs
(noir-lang/noir#6339)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Split base rollup and remove public kernel proving
([#9434](AztecProtocol/aztec-packages#9434))
([4316242](AztecProtocol/aztec-packages@4316242))
* Switch to btreeset for deterministic ordering
(noir-lang/noir#6348)
([d67381b](AztecProtocol/aztec-packages@d67381b))
* Update title from feedback
(noir-lang/noir#6334)
([b4db379](AztecProtocol/aztec-packages@b4db379))
* Use array instead of Vec in keccak256
(noir-lang/noir#6395)
([b82f3d1](AztecProtocol/aztec-packages@b82f3d1))
* Use big endian in sha
([#9471](AztecProtocol/aztec-packages#9471))
([bc9828e](AztecProtocol/aztec-packages@bc9828e))
* Use Brillig opcode when possible for less-than operations on fields
([#9416](AztecProtocol/aztec-packages#9416))
([e50303d](AztecProtocol/aztec-packages@e50303d))


### Documentation

* Clean up docker messaging
([#9419](AztecProtocol/aztec-packages#9419))
([4c4974f](AztecProtocol/aztec-packages@4c4974f))
</details>

<details><summary>barretenberg: 0.61.0</summary>

##
[0.61.0](AztecProtocol/aztec-packages@barretenberg-v0.60.0...barretenberg-v0.61.0)
(2024-10-30)


### ⚠ BREAKING CHANGES

* **avm:** cleanup CALL
([#9551](AztecProtocol/aztec-packages#9551))
* **avm:** returndatasize + returndatacopy
([#9475](AztecProtocol/aztec-packages#9475))
* getcontractinstance instruction returns only a specified member
([#9300](AztecProtocol/aztec-packages#9300))
* **avm/brillig:** revert/rethrow oracle
([#9408](AztecProtocol/aztec-packages#9408))

### Features

* 20-30% cost reduction in recursive ipa algorithm
([#9420](AztecProtocol/aztec-packages#9420))
([a4bd3e1](AztecProtocol/aztec-packages@a4bd3e1))
* **avm/brillig:** Revert/rethrow oracle
([#9408](AztecProtocol/aztec-packages#9408))
([1bbd724](AztecProtocol/aztec-packages@1bbd724))
* **avm:** Avm replace zeromorph pcs by shplemini
([#9389](AztecProtocol/aztec-packages#9389))
([07d6dc2](AztecProtocol/aztec-packages@07d6dc2))
* **avm:** Cleanup CALL
([#9551](AztecProtocol/aztec-packages#9551))
([26adc55](AztecProtocol/aztec-packages@26adc55))
* **avm:** Merkle tree gadget
([#9205](AztecProtocol/aztec-packages#9205))
([d52b616](AztecProtocol/aztec-packages@d52b616))
* **avm:** Returndatasize + returndatacopy
([#9475](AztecProtocol/aztec-packages#9475))
([8f71006](AztecProtocol/aztec-packages@8f71006))
* **avm:** Trace contract class and contract instance
([#8840](AztecProtocol/aztec-packages#8840))
([84205d8](AztecProtocol/aztec-packages@84205d8))
* Bytecode hashing init
([#8535](AztecProtocol/aztec-packages#8535))
([2bb09e5](AztecProtocol/aztec-packages@2bb09e5))
* Derive address and class id in avm
([#8897](AztecProtocol/aztec-packages#8897))
([2ebe361](AztecProtocol/aztec-packages@2ebe361))
* Fixed number of pub inputs for databus commitment propagation
([#9336](AztecProtocol/aztec-packages#9336))
([8658abd](AztecProtocol/aztec-packages@8658abd))
* Getcontractinstance instruction returns only a specified member
([#9300](AztecProtocol/aztec-packages#9300))
([29b692f](AztecProtocol/aztec-packages@29b692f))
* Print finalized size and log dyadic size during Ultra proof
construction
([#9411](AztecProtocol/aztec-packages#9411))
([84fdc52](AztecProtocol/aztec-packages@84fdc52))
* Reorder blocks for efficiency
([#9560](AztecProtocol/aztec-packages#9560))
([10874f4](AztecProtocol/aztec-packages@10874f4))
* Sol shplemini in acir tests + contract_gen
([#8874](AztecProtocol/aztec-packages#8874))
([1c0275d](AztecProtocol/aztec-packages@1c0275d))


### Bug Fixes

* Add native verification test to honk keccak
([#9501](AztecProtocol/aztec-packages#9501))
([59810e0](AztecProtocol/aztec-packages@59810e0))
* **avm:** Address bytecode hashing comments
([#9436](AztecProtocol/aztec-packages#9436))
([a85f92a](AztecProtocol/aztec-packages@a85f92a))
* **avm:** Re-enable sha256 in bulk test, fix bug in AVM SHL/SHR
([#9496](AztecProtocol/aztec-packages#9496))
([0fe64df](AztecProtocol/aztec-packages@0fe64df))
* Honk shplemini acir artifacts
([#9550](AztecProtocol/aztec-packages#9550))
([468c100](AztecProtocol/aztec-packages@468c100))
* Revert "feat: sol shplemini in acir tests + contract_gen"
([#9505](AztecProtocol/aztec-packages#9505))
([3351217](AztecProtocol/aztec-packages@3351217))


### Miscellaneous

* Align debug logging between AVM sim & witgen
([#9498](AztecProtocol/aztec-packages#9498))
([7c2d67a](AztecProtocol/aztec-packages@7c2d67a))
* **avm::** Fix execution tests in proving mode
([#9466](AztecProtocol/aztec-packages#9466))
([8e07de8](AztecProtocol/aztec-packages@8e07de8))
* **avm:** Allocate memory for unshifted polynomials according to their
trace col size
([#9345](AztecProtocol/aztec-packages#9345))
([a67d0e2](AztecProtocol/aztec-packages@a67d0e2))
* Bumping L2 gas and public reads constants
([#9431](AztecProtocol/aztec-packages#9431))
([91c50dd](AztecProtocol/aztec-packages@91c50dd))
* Use big endian in sha
([#9471](AztecProtocol/aztec-packages#9471))
([bc9828e](AztecProtocol/aztec-packages@bc9828e))
</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.

Investigate usage of "big add" gates in the bb dsl folder
3 participants