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

fix: Optimize array ref counts to copy arrays much less often #6685

Merged
merged 21 commits into from
Dec 5, 2024

Conversation

jfecher
Copy link
Contributor

@jfecher jfecher commented Dec 2, 2024

Description

Problem*

This is an alternate fix for #6577. Where that PR re-aligns ref counts by starting them at zero so that the initial inc_rc increments them up to 1, this PR removes the inc_rc in a few cases known to be correct.

Making this PR since #6577 is running into issues with DIE removing the initial inc_rc leading to an invalid starting RC of zero.

Summary*

Starts reference counts at 1 instead of 2 for array literals. Instead of changing brillig to start ref counts at zero, avoid issuing the initial inc_rc instruction if the rhs of a let binding is known to be an array literal (and should thus be moved, not shared)

Additional Context

Since this PR also lets us mutate arrays directly more often, it is also susceptible to #6680 like #6577 is. That's where the CI failures are currently coming from.

To fix the above, we no longer deduplicate arrats willy-nilly in brillig. We:

  1. Only deduplicate MakeArray instructions which have not been stored to or used in an ArraySet
  2. When we deduplicate we insert an inc_rc to that array to increase the reference count. Although there should be no mutations before that point, there may still be some after so it needs to see that now the ref count is higher.

Additionally, I've added a new optimization: we don't issue inc_rc instructions for the first mutable array parameter of each type (but we do for each subsequent one). This means if you have fn foo(a: &mut [Field; 3]), a is considered mutably borrowed and we don't need a inc_rc since you can only access it through a anyway. If you add another &mut [Field; 3] parameter (with any number of nested references to it), then we issue an inc_rc for the next instance so that the rc is 2+. In practice this leads to pretty good improvements with any function that mutates arrays. You can see this in our opcodes executed even though most arrays in our tests tend to be small, we still copy them considerably less now.

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 2, 2024

Changes to Brillig bytecode sizes

Generated at commit: 9455002c553d321aaee70557e123563ecc8e4145, compared to commit: 2b22592e00c71d2e2d3be523da7b8646a2b4725b

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
reference_counts +170 ❌ +47.22%
slices +541 ❌ +29.55%
keccak256 +368 ❌ +20.12%
fold_numeric_generic_poseidon -102 ✅ -11.87%
no_predicates_numeric_generic_poseidon -102 ✅ -11.87%
brillig_rc_regression_6123 -26 ✅ -12.68%
fold_2_to_17 -98 ✅ -14.43%
poseidon2 -59 ✅ -15.09%
bench_2_to_17 -62 ✅ -16.02%

Full diff report 👇
Program Brillig opcodes (+/-) %
reference_counts 530 (+170) +47.22%
slices 2,372 (+541) +29.55%
keccak256 2,197 (+368) +20.12%
bigint 2,267 (+163) +7.75%
7_function 582 (+36) +6.59%
sha256_var_padding_regression 5,210 (+283) +5.74%
sha256 2,480 (+132) +5.62%
sha256_regression 7,013 (+280) +4.16%
merkle_insert 808 (+32) +4.12%
sha256_var_size_regression 1,868 (+68) +3.78%
aes128_encrypt 555 (+20) +3.74%
schnorr 1,515 (+53) +3.63%
sha256_var_witness_const_regression 1,338 (+43) +3.32%
strings 941 (+27) +2.95%
array_to_slice 733 (+21) +2.95%
6 1,227 (+35) +2.94%
conditional_regression_short_circuit 1,300 (+32) +2.52%
brillig_oracle 370 (+9) +2.49%
simple_shield 914 (+22) +2.47%
slice_regex 2,629 (+63) +2.46%
poseidonsponge_x5_254 4,353 (+70) +1.63%
debug_logs 5,160 (+75) +1.47%
array_dynamic_main_output 92 (+1) +1.10%
struct_inputs 279 (+3) +1.09%
regression_mem_op_predicate 110 (+1) +0.92%
brillig_arrays 115 (+1) +0.88%
sha256_brillig_performance_regression 1,722 (+14) +0.82%
array_if_cond_simple 132 (+1) +0.76%
hashmap 21,865 (+156) +0.72%
higher_order_functions 695 (+3) +0.43%
poseidon_bn254_hash_width_3 5,505 (+22) +0.40%
poseidon_bn254_hash 5,505 (+22) +0.40%
regression_5252 4,726 (+18) +0.38%
u128 2,817 (+10) +0.36%
brillig_cow 387 (+1) +0.26%
nested_array_dynamic 2,778 (+7) +0.25%
nested_array_in_slice 1,421 (+3) +0.21%
pedersen_check 574 (+1) +0.17%
brillig_pedersen 574 (+1) +0.17%
brillig_cow_regression 2,206 (+2) +0.09%
sha2_byte 2,785 (-1) -0.04%
slice_dynamic_index 2,522 (-2) -0.08%
modulus 1,768 (-6) -0.34%
regression 954 (-5) -0.52%
regression_4709 133,740 (-771) -0.57%
array_dynamic 319 (-2) -0.62%
brillig_nested_arrays 380 (-3) -0.78%
ecdsa_secp256k1 926 (-8) -0.86%
conditional_1 1,206 (-11) -0.90%
to_be_bytes 212 (-2) -0.93%
databus_two_calldata 211 (-2) -0.94%
pedersen_commitment 209 (-2) -0.95%
array_dynamic_blackbox_input 1,044 (-11) -1.04%
slice_loop 278 (-3) -1.07%
nested_dyn_array_regression_5782 175 (-2) -1.13%
array_dynamic_nested_blackbox_input 928 (-11) -1.17%
pedersen_hash 370 (-5) -1.33%
uhashmap 14,152 (-200) -1.39%
brillig_cow_assign 138 (-2) -1.43%
fold_complex_outputs 628 (-11) -1.72%
fold_call_witness_condition 112 (-2) -1.75%
references 154 (-3) -1.91%
loop_invariant_regression 137 (-3) -2.14%
regression_struct_array_conditional 606 (-14) -2.26%
conditional_regression_661 127 (-3) -2.31%
regression_4202 122 (-3) -2.40%
conditional_2 116 (-3) -2.52%
brillig_constant_reference_regression 87 (-3) -3.33%
nested_array_dynamic_simple 134 (-6) -4.29%
array_sort 296 (-14) -4.52%
wildcard_type 328 (-26) -7.34%
fold_numeric_generic_poseidon 757 (-102) -11.87%
no_predicates_numeric_generic_poseidon 757 (-102) -11.87%
brillig_rc_regression_6123 179 (-26) -12.68%
fold_2_to_17 581 (-98) -14.43%
poseidon2 332 (-59) -15.09%
bench_2_to_17 325 (-62) -16.02%

@jfecher jfecher changed the title Instead of initializing rc to 0, just don't issue inc_rc in some cases fix: Optimize unconstrained array sets by fixing starting ref counts to be at 1 Dec 2, 2024
Copy link
Contributor

github-actions bot commented Dec 2, 2024

Peak Memory Sample

Program Peak Memory %
keccak256 81.46M -2%
workspace 122.25M 0%
regression_4709 333.68M 0%
ram_blowup_regression 2.55G 0%

@TomAFrench TomAFrench added the run-external-checks Trigger CI job to run tests on external repos label Dec 3, 2024
Copy link
Contributor

github-actions bot commented Dec 3, 2024

Changes to number of Brillig opcodes executed

Generated at commit: 9455002c553d321aaee70557e123563ecc8e4145, compared to commit: 2b22592e00c71d2e2d3be523da7b8646a2b4725b

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
reference_counts +133 ❌ +41.05%
bench_2_to_17 -104,559 ✅ -15.06%
fold_2_to_17 -198,851 ✅ -15.38%
merkle_insert -586 ✅ -15.50%
pedersen_commitment -46 ✅ -15.59%
simple_shield -453 ✅ -15.88%
brillig_pedersen -178 ✅ -18.20%
pedersen_check -178 ✅ -18.20%
pedersen_hash -141 ✅ -21.04%

Full diff report 👇
Program Brillig opcodes (+/-) %
reference_counts 457 (+133) +41.05%
slices 3,494 (+358) +11.42%
regression_4449 221,292 (+7,128) +3.33%
poseidon_bn254_hash 166,540 (+3,593) +2.21%
poseidon_bn254_hash_width_3 166,540 (+3,593) +2.21%
slice_regex 3,861 (+63) +1.66%
strings 1,794 (+27) +1.53%
debug_logs 5,172 (+75) +1.47%
array_to_slice 1,685 (+21) +1.26%
brillig_arrays 140 (+1) +0.72%
struct_inputs 587 (+3) +0.51%
nested_array_in_slice 1,741 (+6) +0.35%
array_dynamic_main_output 297 (+1) +0.34%
regression_5252 920,014 (+2,300) +0.25%
array_if_cond_simple 538 (+1) +0.19%
sha256_regression 117,180 (+207) +0.18%
brillig_cow 1,155 (+2) +0.17%
poseidonsponge_x5_254 184,146 (+61) +0.03%
sha256 14,532 (-2) -0.01%
modulus 19,178 (-6) -0.03%
slice_dynamic_index 4,682 (-2) -0.04%
hashmap 55,560 (-64) -0.12%
brillig_cow_assign 533 (-1) -0.19%
regression 2,825 (-6) -0.21%
loop_invariant_regression 1,164 (-3) -0.26%
sha256_var_size_regression 16,614 (-44) -0.26%
slice_loop 957 (-3) -0.31%
array_dynamic 498 (-2) -0.40%
u128 24,894 (-118) -0.47%
nested_array_dynamic 3,720 (-26) -0.69%
brillig_nested_arrays 353 (-3) -0.84%
fold_complex_outputs 912 (-10) -1.08%
nested_dyn_array_regression_5782 174 (-2) -1.14%
references 236 (-3) -1.26%
regression_4202 211 (-3) -1.40%
sha256_brillig_performance_regression 22,746 (-361) -1.56%
keccak256 32,585 (-579) -1.75%
conditional_regression_short_circuit 7,424 (-156) -2.06%
6 7,346 (-156) -2.08%
conditional_regression_661 120 (-3) -2.44%
conditional_2 119 (-3) -2.46%
higher_order_functions 1,236 (-33) -2.60%
sha256_var_witness_const_regression 6,834 (-183) -2.61%
uhashmap 147,296 (-4,424) -2.92%
sha2_byte 45,536 (-1,423) -3.03%
brillig_constant_reference_regression 84 (-3) -3.45%
ecdsa_secp256k1 6,737 (-245) -3.51%
array_dynamic_blackbox_input 17,912 (-675) -3.63%
aes128_encrypt 4,338 (-176) -3.90%
fold_call_witness_condition 67 (-3) -4.29%
nested_array_dynamic_simple 120 (-6) -4.76%
array_dynamic_nested_blackbox_input 4,507 (-246) -5.18%
7_function 2,345 (-131) -5.29%
schnorr 9,617 (-657) -6.39%
sha256_var_padding_regression 204,851 (-15,438) -7.01%
brillig_oracle 2,439 (-185) -7.05%
ram_blowup_regression 720,223 (-60,552) -7.76%
brillig_cow_regression 479,437 (-40,946) -7.87%
conditional_1 5,425 (-484) -8.19%
to_be_bytes 2,219 (-235) -9.58%
regression_struct_array_conditional 1,545 (-165) -9.65%
databus_two_calldata 399 (-46) -10.34%
brillig_rc_regression_6123 299 (-36) -10.75%
wildcard_type 522 (-70) -11.82%
array_sort 526 (-81) -13.34%
poseidon2 695 (-108) -13.45%
fold_numeric_generic_poseidon 5,007 (-855) -14.59%
no_predicates_numeric_generic_poseidon 5,007 (-855) -14.59%
bench_2_to_17 589,838 (-104,559) -15.06%
fold_2_to_17 1,093,922 (-198,851) -15.38%
merkle_insert 3,195 (-586) -15.50%
pedersen_commitment 249 (-46) -15.59%
simple_shield 2,400 (-453) -15.88%
brillig_pedersen 800 (-178) -18.20%
pedersen_check 800 (-178) -18.20%
pedersen_hash 529 (-141) -21.04%

Copy link
Contributor

github-actions bot commented Dec 4, 2024

Changes to circuit sizes

Generated at commit: 9455002c553d321aaee70557e123563ecc8e4145, compared to commit: 2b22592e00c71d2e2d3be523da7b8646a2b4725b

🧾 Summary (10% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
hashmap +18,650 ❌ +60.95% +43,024 ❌ +61.47%
reference_counts +4 ❌ +133.33% 0 ➖ 0.00%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
hashmap 49,249 (+18,650) +60.95% 113,013 (+43,024) +61.47%
reference_counts 7 (+4) +133.33% 16 (0) 0.00%

@jfecher jfecher marked this pull request as ready for review December 4, 2024 20:48
@jfecher jfecher requested a review from a team December 4, 2024 20:48
@jfecher
Copy link
Contributor Author

jfecher commented Dec 4, 2024

This PR should be ready to merge now. It has decent opcodes executed improvements with the optimization I mentioned (reference_counts is only larger because I expanded the test).

This PR may or may not require #6700 - but either way the expected rcs in the reference_counts test will need to be updated once that PR is merged.

@jfecher jfecher changed the title fix: Optimize unconstrained array sets by fixing starting ref counts to be at 1 fix: Optimize array ref counts to copy arrays much less often Dec 5, 2024
Copy link
Contributor

@michaeljklein michaeljklein left a comment

Choose a reason for hiding this comment

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

LGTM

Small comment r.e. possible follow-up issue

@jfecher jfecher added this pull request to the merge queue Dec 5, 2024
Merged via the queue into master with commit 24cc19e Dec 5, 2024
62 of 66 checks passed
@jfecher jfecher deleted the jf/alternate-rc branch December 5, 2024 16:33
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Dec 5, 2024
noir-lang/noir#6714)

fix: Optimize array ref counts to copy arrays much less often (noir-lang/noir#6685)
feat: show printable byte arrays as byte strings in SSA (noir-lang/noir#6709)
fix: Typo in u128 docs (noir-lang/noir#6711)
chore: Update pprof (noir-lang/noir#6710)
feat: replace quadratic removal of `rc` instructions (noir-lang/noir#6705)
chore: update release-please action (noir-lang/noir#6704)
fix(ssa): Remove RC tracker in DIE (noir-lang/noir#6700)
chore: consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696)
fix: LSP auto-import text indent (noir-lang/noir#6699)
feat: improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701)
feat: revert changes to `ValueMerger` and `Instruction::IfElse` (noir-lang/noir#6673)
chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693)
fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)
feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691)
chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686)
chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688)
feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689)
feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684)
feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606)
chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683)
chore: update noir-bench-report version (noir-lang/noir#6675)
fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672)
feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639)
feat: better error message when trying to invoke struct function field (noir-lang/noir#6661)
feat: add memory report into the CI (noir-lang/noir#6630)
feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660)
chore: refactor foreign call executors (noir-lang/noir#6659)
fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638)
fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657)
feat: allow filtering which SSA passes are printed (noir-lang/noir#6636)
fix: use correct type for attribute arguments (noir-lang/noir#6640)
fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663)
feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641)
feat: Sync from aztec-packages (noir-lang/noir#6656)
chore: refactor poseidon2 (noir-lang/noir#6655)
fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652)
feat: Sync from aztec-packages (noir-lang/noir#6634)
fix: used signed division for signed modulo (noir-lang/noir#6635)
fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627)
chore: pin foundry version in CI (noir-lang/noir#6642)
feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615)
chore: improve error message of `&T` (noir-lang/noir#6633)
fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616)
chore!: remove `ec` module from stdlib (noir-lang/noir#6612)
fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617)
fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626)
chore: redo typo PR by donatik27 (noir-lang/noir#6575)
chore: redo typo PR by Dimitrolito (noir-lang/noir#6614)
feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891)
fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625)
chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621)
feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088)
fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619)
feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551)
chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610)
chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611)
chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600)
chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562)
feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584)
chore!: Require types of globals to be specified (noir-lang/noir#6592)
fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498)
fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601)
fix: parse a bit more SSA stuff (noir-lang/noir#6599)
chore!: remove eddsa from stdlib (noir-lang/noir#6591)
chore: Typo in oracles how to (noir-lang/noir#6598)
feat(ssa): Loop invariant code motion (noir-lang/noir#6563)
fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590)
feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568)
chore: fix typo in test name (noir-lang/noir#6589)
fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580)
feat: try to inline brillig calls with all constant arguments  (noir-lang/noir#6548)
fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579)
feat: Sync from aztec-packages (noir-lang/noir#6576)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Dec 5, 2024
…/noir#6714)

fix: Optimize array ref counts to copy arrays much less often (noir-lang/noir#6685)
feat: show printable byte arrays as byte strings in SSA (noir-lang/noir#6709)
fix: Typo in u128 docs (noir-lang/noir#6711)
chore: Update pprof (noir-lang/noir#6710)
feat: replace quadratic removal of `rc` instructions (noir-lang/noir#6705)
chore: update release-please action (noir-lang/noir#6704)
fix(ssa): Remove RC tracker in DIE (noir-lang/noir#6700)
chore: consolidate some CI workflows to reduce sprawl (noir-lang/noir#6696)
fix: LSP auto-import text indent (noir-lang/noir#6699)
feat: improve parser recovery of constructor field with '::' instead of ':' (noir-lang/noir#6701)
feat: revert changes to `ValueMerger` and `Instruction::IfElse` (noir-lang/noir#6673)
chore: Revert "fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)" (noir-lang/noir#6693)
fix: Don't remove necessary RC instructions in DIE pass (noir-lang/noir#6585)
feat: Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked` (noir-lang/noir#6691)
chore: fix warning when compiling `noir_wasm` (noir-lang/noir#6686)
chore: fix tests in `noirc_abi_wasm` (noir-lang/noir#6688)
feat(tooling): Skip program transformation when loaded from cache (noir-lang/noir#6689)
feat(ssa): Simplify array get from set that writes to the same dynamic index (noir-lang/noir#6684)
feat: Reduce memory consumption by storing array length as `u32` during SSA (noir-lang/noir#6606)
chore: add `ram_blowup_regression` to memory report (noir-lang/noir#6683)
chore: update noir-bench-report version (noir-lang/noir#6675)
fix: Prevent hoisting binary instructions which can overflow (noir-lang/noir#6672)
feat(ssa): Hoisting of array get using known induction variable maximum (noir-lang/noir#6639)
feat: better error message when trying to invoke struct function field (noir-lang/noir#6661)
feat: add memory report into the CI (noir-lang/noir#6630)
feat: allow ignoring test failures from foreign calls (noir-lang/noir#6660)
chore: refactor foreign call executors (noir-lang/noir#6659)
fix: correct signed integer handling in `noirc_abi` (noir-lang/noir#6638)
fix: allow multiple `_` parameters, and disallow `_` as an expression you can read from (noir-lang/noir#6657)
feat: allow filtering which SSA passes are printed (noir-lang/noir#6636)
fix: use correct type for attribute arguments (noir-lang/noir#6640)
fix: always return an array of `u8`s when simplifying `Intrinsic::ToRadix` calls (noir-lang/noir#6663)
feat(ssa): Option to set the maximum acceptable Brillig bytecode increase in unrolling (noir-lang/noir#6641)
feat: Sync from aztec-packages (noir-lang/noir#6656)
chore: refactor poseidon2 (noir-lang/noir#6655)
fix: correct types returned by constant EC operations simplified within SSA (noir-lang/noir#6652)
feat: Sync from aztec-packages (noir-lang/noir#6634)
fix: used signed division for signed modulo (noir-lang/noir#6635)
fix(ssa): don't deduplicate constraints in blocks that are not dominated (noir-lang/noir#6627)
chore: pin foundry version in CI (noir-lang/noir#6642)
feat(ssa): Deduplicate intrinsics with predicates (noir-lang/noir#6615)
chore: improve error message of `&T` (noir-lang/noir#6633)
fix: LSP code action wasn't triggering on beginning or end of identifier (noir-lang/noir#6616)
chore!: remove `ec` module from stdlib (noir-lang/noir#6612)
fix(LSP): use generic self type to narrow down methods to complete (noir-lang/noir#6617)
fix!: Disallow `#[export]` on associated methods (noir-lang/noir#6626)
chore: redo typo PR by donatik27 (noir-lang/noir#6575)
chore: redo typo PR by Dimitrolito (noir-lang/noir#6614)
feat: simplify `jmpif`s by reversing branches if condition is negated (noir-lang/noir#5891)
fix: Do not warn on unused functions marked with #[export] (noir-lang/noir#6625)
chore: Add panic for compiler error described in #6620 (noir-lang/noir#6621)
feat(perf): Track last loads per block in mem2reg and remove them if possible (noir-lang/noir#6088)
fix(ssa): Track all local allocations during flattening (noir-lang/noir#6619)
feat(comptime): Implement blackbox functions in comptime interpreter (noir-lang/noir#6551)
chore: derive PartialEq and Hash for FieldElement (noir-lang/noir#6610)
chore: ignore almost-empty directories in nargo_cli tests (noir-lang/noir#6611)
chore: remove temporary allocations from `num_bits` (noir-lang/noir#6600)
chore: Release Noir(1.0.0-beta.0) (noir-lang/noir#6562)
feat: Add `array_refcount` and `slice_refcount` builtins for debugging (noir-lang/noir#6584)
chore!: Require types of globals to be specified (noir-lang/noir#6592)
fix: don't report visibility errors when elaborating comptime value (noir-lang/noir#6498)
fix: preserve newlines between comments when formatting statements (noir-lang/noir#6601)
fix: parse a bit more SSA stuff (noir-lang/noir#6599)
chore!: remove eddsa from stdlib (noir-lang/noir#6591)
chore: Typo in oracles how to (noir-lang/noir#6598)
feat(ssa): Loop invariant code motion (noir-lang/noir#6563)
fix: remove `compiler_version` from new `Nargo.toml` (noir-lang/noir#6590)
feat: Avoid incrementing reference counts in some cases (noir-lang/noir#6568)
chore: fix typo in test name (noir-lang/noir#6589)
fix: consider prereleases to be compatible with pre-1.0.0 releases (noir-lang/noir#6580)
feat: try to inline brillig calls with all constant arguments  (noir-lang/noir#6548)
fix: correct type when simplifying `derive_pedersen_generators` (noir-lang/noir#6579)
feat: Sync from aztec-packages (noir-lang/noir#6576)
vezenovm added a commit to AztecProtocol/aztec-packages that referenced this pull request Dec 5, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: Remove inliner override for `reference_counts` test
(noir-lang/noir#6714)
fix: Optimize array ref counts to copy arrays much less often
(noir-lang/noir#6685)
feat: show printable byte arrays as byte strings in SSA
(noir-lang/noir#6709)
fix: Typo in u128 docs (noir-lang/noir#6711)
chore: Update pprof (noir-lang/noir#6710)
feat: replace quadratic removal of `rc` instructions
(noir-lang/noir#6705)
chore: update release-please action
(noir-lang/noir#6704)
fix(ssa): Remove RC tracker in DIE
(noir-lang/noir#6700)
chore: consolidate some CI workflows to reduce sprawl
(noir-lang/noir#6696)
fix: LSP auto-import text indent
(noir-lang/noir#6699)
feat: improve parser recovery of constructor field with '::' instead of
':' (noir-lang/noir#6701)
feat: revert changes to `ValueMerger` and `Instruction::IfElse`
(noir-lang/noir#6673)
chore: Revert "fix: Don't remove necessary RC instructions in DIE pass
(noir-lang/noir#6585)"
(noir-lang/noir#6693)
fix: Don't remove necessary RC instructions in DIE pass
(noir-lang/noir#6585)
feat: Add `BoundedVec::from_parts` and
`BoundedVec::from_parts_unchecked`
(noir-lang/noir#6691)
chore: fix warning when compiling `noir_wasm`
(noir-lang/noir#6686)
chore: fix tests in `noirc_abi_wasm`
(noir-lang/noir#6688)
feat(tooling): Skip program transformation when loaded from cache
(noir-lang/noir#6689)
feat(ssa): Simplify array get from set that writes to the same dynamic
index (noir-lang/noir#6684)
feat: Reduce memory consumption by storing array length as `u32` during
SSA (noir-lang/noir#6606)
chore: add `ram_blowup_regression` to memory report
(noir-lang/noir#6683)
chore: update noir-bench-report version
(noir-lang/noir#6675)
fix: Prevent hoisting binary instructions which can overflow
(noir-lang/noir#6672)
feat(ssa): Hoisting of array get using known induction variable maximum
(noir-lang/noir#6639)
feat: better error message when trying to invoke struct function field
(noir-lang/noir#6661)
feat: add memory report into the CI
(noir-lang/noir#6630)
feat: allow ignoring test failures from foreign calls
(noir-lang/noir#6660)
chore: refactor foreign call executors
(noir-lang/noir#6659)
fix: correct signed integer handling in `noirc_abi`
(noir-lang/noir#6638)
fix: allow multiple `_` parameters, and disallow `_` as an expression
you can read from (noir-lang/noir#6657)
feat: allow filtering which SSA passes are printed
(noir-lang/noir#6636)
fix: use correct type for attribute arguments
(noir-lang/noir#6640)
fix: always return an array of `u8`s when simplifying
`Intrinsic::ToRadix` calls (noir-lang/noir#6663)
feat(ssa): Option to set the maximum acceptable Brillig bytecode
increase in unrolling (noir-lang/noir#6641)
feat: Sync from aztec-packages
(noir-lang/noir#6656)
chore: refactor poseidon2 (noir-lang/noir#6655)
fix: correct types returned by constant EC operations simplified within
SSA (noir-lang/noir#6652)
feat: Sync from aztec-packages
(noir-lang/noir#6634)
fix: used signed division for signed modulo
(noir-lang/noir#6635)
fix(ssa): don't deduplicate constraints in blocks that are not dominated
(noir-lang/noir#6627)
chore: pin foundry version in CI
(noir-lang/noir#6642)
feat(ssa): Deduplicate intrinsics with predicates
(noir-lang/noir#6615)
chore: improve error message of `&T`
(noir-lang/noir#6633)
fix: LSP code action wasn't triggering on beginning or end of identifier
(noir-lang/noir#6616)
chore!: remove `ec` module from stdlib
(noir-lang/noir#6612)
fix(LSP): use generic self type to narrow down methods to complete
(noir-lang/noir#6617)
fix!: Disallow `#[export]` on associated methods
(noir-lang/noir#6626)
chore: redo typo PR by donatik27
(noir-lang/noir#6575)
chore: redo typo PR by Dimitrolito
(noir-lang/noir#6614)
feat: simplify `jmpif`s by reversing branches if condition is negated
(noir-lang/noir#5891)
fix: Do not warn on unused functions marked with #[export]
(noir-lang/noir#6625)
chore: Add panic for compiler error described in #6620
(noir-lang/noir#6621)
feat(perf): Track last loads per block in mem2reg and remove them if
possible (noir-lang/noir#6088)
fix(ssa): Track all local allocations during flattening
(noir-lang/noir#6619)
feat(comptime): Implement blackbox functions in comptime interpreter
(noir-lang/noir#6551)
chore: derive PartialEq and Hash for FieldElement
(noir-lang/noir#6610)
chore: ignore almost-empty directories in nargo_cli tests
(noir-lang/noir#6611)
chore: remove temporary allocations from `num_bits`
(noir-lang/noir#6600)
chore: Release Noir(1.0.0-beta.0)
(noir-lang/noir#6562)
feat: Add `array_refcount` and `slice_refcount` builtins for debugging
(noir-lang/noir#6584)
chore!: Require types of globals to be specified
(noir-lang/noir#6592)
fix: don't report visibility errors when elaborating comptime value
(noir-lang/noir#6498)
fix: preserve newlines between comments when formatting statements
(noir-lang/noir#6601)
fix: parse a bit more SSA stuff
(noir-lang/noir#6599)
chore!: remove eddsa from stdlib
(noir-lang/noir#6591)
chore: Typo in oracles how to
(noir-lang/noir#6598)
feat(ssa): Loop invariant code motion
(noir-lang/noir#6563)
fix: remove `compiler_version` from new `Nargo.toml`
(noir-lang/noir#6590)
feat: Avoid incrementing reference counts in some cases
(noir-lang/noir#6568)
chore: fix typo in test name
(noir-lang/noir#6589)
fix: consider prereleases to be compatible with pre-1.0.0 releases
(noir-lang/noir#6580)
feat: try to inline brillig calls with all constant arguments
(noir-lang/noir#6548)
fix: correct type when simplifying `derive_pedersen_generators`
(noir-lang/noir#6579)
feat: Sync from aztec-packages
(noir-lang/noir#6576)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Tom French <[email protected]>
Co-authored-by: Maxim Vezenov <[email protected]>
just-mitch pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Dec 6, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.66.0](aztec-package-v0.65.2...aztec-package-v0.66.0)
(2024-12-06)


### ⚠ BREAKING CHANGES

* Remove debug and winston in favor of pino
([#10355](#10355))

### Features

* Agent and broker expose OTEL metrics
([#10264](#10264))
([c2c8cc6](c2c8cc6))
* Epoch cache, do not attest if not in committee or from current
proposer
([#10327](#10327))
([9ebaa65](9ebaa65))
* Staking integration
([#10403](#10403))
([ecd6c4f](ecd6c4f))


### Miscellaneous

* Remove debug and winston in favor of pino
([#10355](#10355))
([c246aba](c246aba))
</details>

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

##
[0.66.0](barretenberg.js-v0.65.2...barretenberg.js-v0.66.0)
(2024-12-06)


### Miscellaneous

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

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

##
[0.66.0](aztec-packages-v0.65.2...aztec-packages-v0.66.0)
(2024-12-06)


### ⚠ BREAKING CHANGES

* remove `ec` module from stdlib
(noir-lang/noir#6612)
* Disallow `#[export]` on associated methods
(noir-lang/noir#6626)
* Require types of globals to be specified
(noir-lang/noir#6592)
* remove eddsa from stdlib (noir-lang/noir#6591)
* Remove debug and winston in favor of pino
([#10355](#10355))
* remove SchnorrVerify opcode
([#9897](#9897))

### Features

* Add `array_refcount` and `slice_refcount` builtins for debugging
(noir-lang/noir#6584)
([3304046](3304046))
* Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked`
(noir-lang/noir#6691)
([3304046](3304046))
* Add memory report into the CI
(noir-lang/noir#6630)
([3304046](3304046))
* Add workflow_call trigger to network-deploy
([#10451](#10451))
([18254e6](18254e6))
* Adding configurable data dir and p2p pk for testnet nodes
([#10422](#10422))
([77b0039](77b0039))
* Agent and broker expose OTEL metrics
([#10264](#10264))
([c2c8cc6](c2c8cc6))
* Allow filtering which SSA passes are printed
(noir-lang/noir#6636)
([3304046](3304046))
* Allow ignoring test failures from foreign calls
(noir-lang/noir#6660)
([3304046](3304046))
* Allow querying block number for tree indices
([#10332](#10332))
([cf05a7a](cf05a7a))
* AMM
([#10153](#10153))
([90668c3](90668c3))
* Avoid incrementing reference counts in some cases
(noir-lang/noir#6568)
([3304046](3304046))
* Avoid inserting an empty leaf in indexed trees on update
([#10281](#10281))
([5a04ca8](5a04ca8))
* Avoid inserting an empty leaf in indexed trees on update
([#10334](#10334))
([80fad45](80fad45))
* **bb:** Define std::hash for field
([#10312](#10312))
([752bc59](752bc59))
* Better error message when trying to invoke struct function field
(noir-lang/noir#6661)
([3304046](3304046))
* Client IVC API
([#10217](#10217))
([cc54a1e](cc54a1e))
* **comptime:** Implement blackbox functions in comptime interpreter
(noir-lang/noir#6551)
([3304046](3304046))
* Delete attestations older than a slot
([#10326](#10326))
([24abcfe](24abcfe))
* Deploy devnet to k8s
([#10449](#10449))
([27506c1](27506c1))
* Deploy networks via github actions
([#10381](#10381))
([7e19b39](7e19b39))
* **docs:** Applied structure feedback
([#9288](#9288))
([5b0b721](5b0b721))
* Epoch cache, do not attest if not in committee or from current
proposer
([#10327](#10327))
([9ebaa65](9ebaa65))
* Gas Utils for L1 operations
([#9834](#9834))
([17fa214](17fa214))
* Improve parser recovery of constructor field with '::' instead of ':'
(noir-lang/noir#6701)
([3304046](3304046))
* Integrate verify_proof calls in mock protocol circuits
([#9253](#9253))
([7ed89aa](7ed89aa))
* Making testnet script write a docker compose file
([#10333](#10333))
([be54cc3](be54cc3))
* Manage enqueued calls & phases in AVM witgen
([#10310](#10310))
([e7ebef8](e7ebef8))
* Mock IVC state from arbitrary acir IVC recursion constraints
([#10314](#10314))
([ac7c0da](ac7c0da))
* Optionally emit public bytecode
([#10365](#10365))
([84ff623](84ff623))
* **p2p:** Persist node private p2p keys
([#10324](#10324))
([1c32eda](1c32eda))
* **p2p:** Snappy compress p2p messages
([#10417](#10417))
([c643a54](c643a54))
* **perf:** Track last loads per block in mem2reg and remove them if
possible (noir-lang/noir#6088)
([3304046](3304046))
* Process blocks in parallel during epoch proving
([#10263](#10263))
([a9d418c](a9d418c))
* Reduce memory consumption by storing array length as `u32` during SSA
(noir-lang/noir#6606)
([3304046](3304046))
* Release please for release branch
([#10467](#10467))
([38941bf](38941bf))
* Replace quadratic removal of `rc` instructions
(noir-lang/noir#6705)
([3304046](3304046))
* Replace quadratic removal of rc instructions
([#10416](#10416))
([9d833c5](9d833c5))
* Revert changes to `ValueMerger` and `Instruction::IfElse`
(noir-lang/noir#6673)
([3304046](3304046))
* Show printable byte arrays as byte strings in SSA
(noir-lang/noir#6709)
([3304046](3304046))
* Simplify `jmpif`s by reversing branches if condition is negated
(noir-lang/noir#5891)
([3304046](3304046))
* **ssa:** Deduplicate intrinsics with predicates
(noir-lang/noir#6615)
([3304046](3304046))
* **ssa:** Hoisting of array get using known induction variable maximum
(noir-lang/noir#6639)
([3304046](3304046))
* **ssa:** Loop invariant code motion
(noir-lang/noir#6563)
([3304046](3304046))
* **ssa:** Option to set the maximum acceptable Brillig bytecode
increase in unrolling (noir-lang/noir#6641)
([3304046](3304046))
* **ssa:** Simplify array get from set that writes to the same dynamic
index (noir-lang/noir#6684)
([3304046](3304046))
* Staking integration
([#10403](#10403))
([ecd6c4f](ecd6c4f))
* Standalone ssd
([#10317](#10317))
([c324781](c324781))
* Switch to using an external noir implementation of Schnorr
([#10330](#10330))
([6cbd375](6cbd375))
* Sync from aztec-packages (noir-lang/noir#6576)
([3304046](3304046))
* Sync from aztec-packages (noir-lang/noir#6634)
([3304046](3304046))
* Sync from aztec-packages (noir-lang/noir#6656)
([3304046](3304046))
* Terraform for alerting on metrics
([#10192](#10192))
([05c9e5d](05c9e5d)),
closes
[#9956](#9956)
* Test release network via ci workflow
([#10388](#10388))
([e6060ec](e6060ec)),
closes
[#10383](#10383)
* **tooling:** Skip program transformation when loaded from cache
(noir-lang/noir#6689)
([3304046](3304046))
* Try to inline brillig calls with all constant arguments
(noir-lang/noir#6548)
([3304046](3304046))
* Ultra rollup flows
([#10162](#10162))
([c53f4cf](c53f4cf))
* Zip and propagate private logs
([#10210](#10210))
([5c32747](5c32747))
* Zip and silo and propagate private logs
([#10308](#10308))
([90d4385](90d4385))


### Bug Fixes

* Add helm
([#10454](#10454))
([2eb9ade](2eb9ade))
* Add secret
([#10453](#10453))
([95601df](95601df))
* Add type
([#10452](#10452))
([cd9699f](cd9699f))
* Allow multiple `_` parameters, and disallow `_` as an expression you
can read from (noir-lang/noir#6657)
([3304046](3304046))
* Always return an array of `u8`s when simplifying `Intrinsic::ToRadix`
calls (noir-lang/noir#6663)
([3304046](3304046))
* Await block unwind when a reorg happens
([#10380](#10380))
([5a02480](5a02480))
* Bbup cleanup and fix
([#10067](#10067))
([0ff8177](0ff8177))
* Bootstrapping devnet
([#10396](#10396))
([f3c7294](f3c7294))
* Bot waits for pxe synch
([#10316](#10316))
([ebd4165](ebd4165))
* Consider prereleases to be compatible with pre-1.0.0 releases
(noir-lang/noir#6580)
([3304046](3304046))
* Correct signed integer handling in `noirc_abi`
(noir-lang/noir#6638)
([3304046](3304046))
* Correct type when simplifying `derive_pedersen_generators`
(noir-lang/noir#6579)
([3304046](3304046))
* Correct types returned by constant EC operations simplified within SSA
(noir-lang/noir#6652)
([3304046](3304046))
* Disallow `#[export]` on associated methods
(noir-lang/noir#6626)
([3304046](3304046))
* Do not warn on unused functions marked with #[export]
(noir-lang/noir#6625)
([3304046](3304046))
* Don't pass default value for --node-url
([#10427](#10427))
([5299481](5299481)),
closes
[#10419](#10419)
* Don't remove necessary RC instructions in DIE pass
(noir-lang/noir#6585)
([3304046](3304046))
* Don't report visibility errors when elaborating comptime value
(noir-lang/noir#6498)
([3304046](3304046))
* Get node info from a PXE
([#10420](#10420))
([ed972f3](ed972f3))
* Increase timeouts
([#10412](#10412))
([d3b8838](d3b8838))
* LSP auto-import text indent
(noir-lang/noir#6699)
([3304046](3304046))
* LSP code action wasn't triggering on beginning or end of identifier
(noir-lang/noir#6616)
([3304046](3304046))
* **LSP:** Use generic self type to narrow down methods to complete
(noir-lang/noir#6617)
([3304046](3304046))
* Move spartan-script tf to spartan, use file in bucket
([#10395](#10395))
([5cef628](5cef628))
* Nit
([#10392](#10392))
([d6985a8](d6985a8))
* Optimize array ref counts to copy arrays much less often
(noir-lang/noir#6685)
([3304046](3304046))
* **p2p:** Override msg Id
([#10415](#10415))
([990d11b](990d11b))
* Parse a bit more SSA stuff
(noir-lang/noir#6599)
([3304046](3304046))
* Preserve newlines between comments when formatting statements
(noir-lang/noir#6601)
([3304046](3304046))
* Prevent hoisting binary instructions which can overflow
(noir-lang/noir#6672)
([3304046](3304046))
* **prover:** Handle starting blocks out of order in prover
([#10350](#10350))
([9106102](9106102))
* Publicly register contract classes
([#10385](#10385))
([94e6e1a](94e6e1a))
* Remove `compiler_version` from new `Nargo.toml`
(noir-lang/noir#6590)
([3304046](3304046))
* Revert "feat: Avoid inserting an empty leaf in indexed trees on
update"
([#10319](#10319))
([887c011](887c011))
* Revert "feat: zip and propagate private logs"
([#10302](#10302))
([9d70728](9d70728))
* Safely insert sibling paths
([#10423](#10423))
([41f7645](41f7645))
* **ssa:** Don't deduplicate constraints in blocks that are not
dominated (noir-lang/noir#6627)
([3304046](3304046))
* **ssa:** Remove RC tracker in DIE
(noir-lang/noir#6700)
([3304046](3304046))
* **ssa:** Track all local allocations during flattening
(noir-lang/noir#6619)
([3304046](3304046))
* Tf vars
([#10457](#10457))
([00aaef6](00aaef6))
* Typo in u128 docs (noir-lang/noir#6711)
([3304046](3304046))
* Url in bbup install
([#10456](#10456))
([1b0dfb7](1b0dfb7))
* Use correct type for attribute arguments
(noir-lang/noir#6640)
([3304046](3304046))
* Used signed division for signed modulo
(noir-lang/noir#6635)
([3304046](3304046))
* Witness changes in file sponge.hpp
([#10345](#10345))
([4a38edf](4a38edf))


### Miscellaneous

* Add `ram_blowup_regression` to memory report
(noir-lang/noir#6683)
([3304046](3304046))
* Add panic for compiler error described in
[#6620](#6620)
(noir-lang/noir#6621)
([3304046](3304046))
* **avm:** Fake verification routine for avm recursion in public base
rollup
([#10382](#10382))
([a1e5966](a1e5966)),
closes
[#10243](#10243)
* **avm:** Remove function selector type of getenv opcode
([#10406](#10406))
([38c0c14](38c0c14)),
closes
[#9396](#9396)
* Batch archiver requests
([#10442](#10442))
([9443e8e](9443e8e))
* Boot node has fixed peer id private key
([#10352](#10352))
([cae1203](cae1203))
* Bump alert in gossip_network.test.ts
([#10430](#10430))
([2c2169b](2c2169b))
* Centralized helm flag for proving and clean release tf deploys
([#10221](#10221))
([c2c1744](c2c1744))
* **ci:** Move playwright install to `+deps`
([#10293](#10293))
([d7bd306](d7bd306))
* Clean up archiver logs
([#10429](#10429))
([4fcbc59](4fcbc59))
* Consolidate some CI workflows to reduce sprawl
(noir-lang/noir#6696)
([3304046](3304046))
* Contracts on a diet
([#10389](#10389))
([dddb008](dddb008))
* Deduplicate constants across blocks
([#9972](#9972))
([69bb64f](69bb64f))
* Derive PartialEq and Hash for FieldElement
(noir-lang/noir#6610)
([3304046](3304046))
* **docs:** Remove additional `DEBUG` references, add note on
`LOG_LEVEL`s
([#10434](#10434))
([e1e5906](e1e5906))
* Don't generate proofs of verifier circuits in test
([#10405](#10405))
([c00ebdd](c00ebdd))
* Fix sassy-salamander chores v1
([#10218](#10218))
([7227b48](7227b48)),
closes
[#10074](#10074)
[#10075](#10075)
[#10077](#10077)
* Fix tests in `noirc_abi_wasm`
(noir-lang/noir#6688)
([3304046](3304046))
* Fix traces endpoint url in native testnet script
([#10309](#10309))
([2367c62](2367c62))
* Fix typo in test name (noir-lang/noir#6589)
([3304046](3304046))
* Fix warning when compiling `noir_wasm`
(noir-lang/noir#6686)
([3304046](3304046))
* Ignore almost-empty directories in nargo_cli tests
(noir-lang/noir#6611)
([3304046](3304046))
* Improve error message of `&T`
(noir-lang/noir#6633)
([3304046](3304046))
* Log manual contract class registrations
([#10354](#10354))
([da1470d](da1470d))
* Making bbup a shell script
([#10426](#10426))
([1c29554](1c29554))
* **network_test.sh:** Work around 143 by disabling stern
([#10436](#10436))
([64f6dad](64f6dad))
* Parallelise construction of perturbator coefficients at each level
([#10304](#10304))
([ba335bd](ba335bd))
* Parallelise inverse polynomial construction for lookup relations
([#10413](#10413))
([427cf59](427cf59))
* Pin foundry version in CI
(noir-lang/noir#6642)
([3304046](3304046))
* Public inputs in unit tests with proving were incorrectly set
([#10300](#10300))
([0311bf3](0311bf3))
* Pull out cfg simplification changes
([#10279](#10279))
([c48ae90](c48ae90))
* Pull out constant brillig inliner
([#10291](#10291))
([0577c1a](0577c1a))
* Pull out loop invariant optimization
([#10277](#10277))
([94cba37](94cba37))
* Pull out sync changes
([#10292](#10292))
([49f80b3](49f80b3))
* Random typos
([#10393](#10393))
([ed47a42](ed47a42))
* Redo typo PR by Dimitrolito
([#10364](#10364))
([da809c5](da809c5))
* Redo typo PR by Dimitrolito
(noir-lang/noir#6614)
([3304046](3304046))
* Redo typo PR by donatik27
(noir-lang/noir#6575)
([3304046](3304046))
* Redo typo PR by leopardracer
([#10363](#10363))
([0d1b722](0d1b722))
* Redo typo PR by leopardracer
([#10444](#10444))
([3653c4c](3653c4c))
* Refactor foreign call executors
(noir-lang/noir#6659)
([3304046](3304046))
* Refactor indexed tree to use traits
([#10361](#10361))
([621cbaf](621cbaf))
* Refactor poseidon2 (noir-lang/noir#6655)
([3304046](3304046))
* Release Noir(1.0.0-beta.0)
(noir-lang/noir#6562)
([3304046](3304046))
* Remove `ec` module from stdlib
(noir-lang/noir#6612)
([3304046](3304046))
* Remove debug and winston in favor of pino
([#10355](#10355))
([c246aba](c246aba))
* Remove eddsa from stdlib (noir-lang/noir#6591)
([3304046](3304046))
* Remove inliner override for `reference_counts` test
(noir-lang/noir#6714)
([3304046](3304046))
* Remove SchnorrVerify opcode
([#9897](#9897))
([93cd323](93cd323))
* Remove temporary allocations from `num_bits`
(noir-lang/noir#6600)
([3304046](3304046))
* Remove unused dep
([#10295](#10295))
([2a07355](2a07355))
* Replace relative paths to noir-protocol-circuits
([8fd8236](8fd8236))
* Replace relative paths to noir-protocol-circuits
([5d11e24](5d11e24))
* Replace relative paths to noir-protocol-circuits
([e7a99f2](e7a99f2))
* Replace relative paths to noir-protocol-circuits
([2496118](2496118))
* Replace relative paths to noir-protocol-circuits
([d77dc96](d77dc96))
* Replace relative paths to noir-protocol-circuits
([46d12e3](46d12e3))
* Require types of globals to be specified
(noir-lang/noir#6592)
([3304046](3304046))
* Revert "fix: Don't remove necessary RC instructions in DIE pass
(noir-lang/noir#6585)"
(noir-lang/noir#6693)
([3304046](3304046))
* Sassy network
([#10468](#10468))
([92eb377](92eb377))
* Simplify otel config, 1val setup, fix pod dns, retries
([#10344](#10344))
([be91d80](be91d80))
* Skip A-&gt;B B->A e2e_2_pxes test
([#10297](#10297))
([b75bfd0](b75bfd0))
* Sync logging with jest
([#10459](#10459))
([6e33cb9](6e33cb9))
* Typo in oracles how to (noir-lang/noir#6598)
([3304046](3304046))
* Update noir-bench-report version
(noir-lang/noir#6675)
([3304046](3304046))
* Update pprof (noir-lang/noir#6710)
([3304046](3304046))
* Update release-please action
(noir-lang/noir#6704)
([3304046](3304046))
* Use non default mnemonic for releases
([#10400](#10400))
([bb5f364](bb5f364))
</details>

<details><summary>barretenberg: 0.66.0</summary>

##
[0.66.0](barretenberg-v0.65.2...barretenberg-v0.66.0)
(2024-12-06)


### ⚠ BREAKING CHANGES

* remove SchnorrVerify opcode
([#9897](#9897))

### Features

* Allow querying block number for tree indices
([#10332](#10332))
([cf05a7a](cf05a7a))
* Avoid inserting an empty leaf in indexed trees on update
([#10281](#10281))
([5a04ca8](5a04ca8))
* Avoid inserting an empty leaf in indexed trees on update
([#10334](#10334))
([80fad45](80fad45))
* **bb:** Define std::hash for field
([#10312](#10312))
([752bc59](752bc59))
* Client IVC API
([#10217](#10217))
([cc54a1e](cc54a1e))
* Integrate verify_proof calls in mock protocol circuits
([#9253](#9253))
([7ed89aa](7ed89aa))
* Manage enqueued calls & phases in AVM witgen
([#10310](#10310))
([e7ebef8](e7ebef8))
* Mock IVC state from arbitrary acir IVC recursion constraints
([#10314](#10314))
([ac7c0da](ac7c0da))
* Ultra rollup flows
([#10162](#10162))
([c53f4cf](c53f4cf))


### Bug Fixes

* Bbup cleanup and fix
([#10067](#10067))
([0ff8177](0ff8177))
* Revert "feat: Avoid inserting an empty leaf in indexed trees on
update"
([#10319](#10319))
([887c011](887c011))
* Url in bbup install
([#10456](#10456))
([1b0dfb7](1b0dfb7))
* Witness changes in file sponge.hpp
([#10345](#10345))
([4a38edf](4a38edf))


### Miscellaneous

* **avm:** Fake verification routine for avm recursion in public base
rollup
([#10382](#10382))
([a1e5966](a1e5966)),
closes
[#10243](#10243)
* **avm:** Remove function selector type of getenv opcode
([#10406](#10406))
([38c0c14](38c0c14)),
closes
[#9396](#9396)
* Don't generate proofs of verifier circuits in test
([#10405](#10405))
([c00ebdd](c00ebdd))
* Making bbup a shell script
([#10426](#10426))
([1c29554](1c29554))
* Parallelise construction of perturbator coefficients at each level
([#10304](#10304))
([ba335bd](ba335bd))
* Parallelise inverse polynomial construction for lookup relations
([#10413](#10413))
([427cf59](427cf59))
* Public inputs in unit tests with proving were incorrectly set
([#10300](#10300))
([0311bf3](0311bf3))
* Redo typo PR by Dimitrolito
([#10364](#10364))
([da809c5](da809c5))
* Redo typo PR by leopardracer
([#10363](#10363))
([0d1b722](0d1b722))
* Remove SchnorrVerify opcode
([#9897](#9897))
([93cd323](93cd323))
</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 7, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.66.0](AztecProtocol/aztec-packages@aztec-package-v0.65.2...aztec-package-v0.66.0)
(2024-12-06)


### ⚠ BREAKING CHANGES

* Remove debug and winston in favor of pino
([#10355](AztecProtocol/aztec-packages#10355))

### Features

* Agent and broker expose OTEL metrics
([#10264](AztecProtocol/aztec-packages#10264))
([c2c8cc6](AztecProtocol/aztec-packages@c2c8cc6))
* Epoch cache, do not attest if not in committee or from current
proposer
([#10327](AztecProtocol/aztec-packages#10327))
([9ebaa65](AztecProtocol/aztec-packages@9ebaa65))
* Staking integration
([#10403](AztecProtocol/aztec-packages#10403))
([ecd6c4f](AztecProtocol/aztec-packages@ecd6c4f))


### Miscellaneous

* Remove debug and winston in favor of pino
([#10355](AztecProtocol/aztec-packages#10355))
([c246aba](AztecProtocol/aztec-packages@c246aba))
</details>

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

##
[0.66.0](AztecProtocol/aztec-packages@barretenberg.js-v0.65.2...barretenberg.js-v0.66.0)
(2024-12-06)


### Miscellaneous

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

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

##
[0.66.0](AztecProtocol/aztec-packages@aztec-packages-v0.65.2...aztec-packages-v0.66.0)
(2024-12-06)


### ⚠ BREAKING CHANGES

* remove `ec` module from stdlib
(noir-lang/noir#6612)
* Disallow `#[export]` on associated methods
(noir-lang/noir#6626)
* Require types of globals to be specified
(noir-lang/noir#6592)
* remove eddsa from stdlib (noir-lang/noir#6591)
* Remove debug and winston in favor of pino
([#10355](AztecProtocol/aztec-packages#10355))
* remove SchnorrVerify opcode
([#9897](AztecProtocol/aztec-packages#9897))

### Features

* Add `array_refcount` and `slice_refcount` builtins for debugging
(noir-lang/noir#6584)
([3304046](AztecProtocol/aztec-packages@3304046))
* Add `BoundedVec::from_parts` and `BoundedVec::from_parts_unchecked`
(noir-lang/noir#6691)
([3304046](AztecProtocol/aztec-packages@3304046))
* Add memory report into the CI
(noir-lang/noir#6630)
([3304046](AztecProtocol/aztec-packages@3304046))
* Add workflow_call trigger to network-deploy
([#10451](AztecProtocol/aztec-packages#10451))
([18254e6](AztecProtocol/aztec-packages@18254e6))
* Adding configurable data dir and p2p pk for testnet nodes
([#10422](AztecProtocol/aztec-packages#10422))
([77b0039](AztecProtocol/aztec-packages@77b0039))
* Agent and broker expose OTEL metrics
([#10264](AztecProtocol/aztec-packages#10264))
([c2c8cc6](AztecProtocol/aztec-packages@c2c8cc6))
* Allow filtering which SSA passes are printed
(noir-lang/noir#6636)
([3304046](AztecProtocol/aztec-packages@3304046))
* Allow ignoring test failures from foreign calls
(noir-lang/noir#6660)
([3304046](AztecProtocol/aztec-packages@3304046))
* Allow querying block number for tree indices
([#10332](AztecProtocol/aztec-packages#10332))
([cf05a7a](AztecProtocol/aztec-packages@cf05a7a))
* AMM
([#10153](AztecProtocol/aztec-packages#10153))
([90668c3](AztecProtocol/aztec-packages@90668c3))
* Avoid incrementing reference counts in some cases
(noir-lang/noir#6568)
([3304046](AztecProtocol/aztec-packages@3304046))
* Avoid inserting an empty leaf in indexed trees on update
([#10281](AztecProtocol/aztec-packages#10281))
([5a04ca8](AztecProtocol/aztec-packages@5a04ca8))
* Avoid inserting an empty leaf in indexed trees on update
([#10334](AztecProtocol/aztec-packages#10334))
([80fad45](AztecProtocol/aztec-packages@80fad45))
* **bb:** Define std::hash for field
([#10312](AztecProtocol/aztec-packages#10312))
([752bc59](AztecProtocol/aztec-packages@752bc59))
* Better error message when trying to invoke struct function field
(noir-lang/noir#6661)
([3304046](AztecProtocol/aztec-packages@3304046))
* Client IVC API
([#10217](AztecProtocol/aztec-packages#10217))
([cc54a1e](AztecProtocol/aztec-packages@cc54a1e))
* **comptime:** Implement blackbox functions in comptime interpreter
(noir-lang/noir#6551)
([3304046](AztecProtocol/aztec-packages@3304046))
* Delete attestations older than a slot
([#10326](AztecProtocol/aztec-packages#10326))
([24abcfe](AztecProtocol/aztec-packages@24abcfe))
* Deploy devnet to k8s
([#10449](AztecProtocol/aztec-packages#10449))
([27506c1](AztecProtocol/aztec-packages@27506c1))
* Deploy networks via github actions
([#10381](AztecProtocol/aztec-packages#10381))
([7e19b39](AztecProtocol/aztec-packages@7e19b39))
* **docs:** Applied structure feedback
([#9288](AztecProtocol/aztec-packages#9288))
([5b0b721](AztecProtocol/aztec-packages@5b0b721))
* Epoch cache, do not attest if not in committee or from current
proposer
([#10327](AztecProtocol/aztec-packages#10327))
([9ebaa65](AztecProtocol/aztec-packages@9ebaa65))
* Gas Utils for L1 operations
([#9834](AztecProtocol/aztec-packages#9834))
([17fa214](AztecProtocol/aztec-packages@17fa214))
* Improve parser recovery of constructor field with '::' instead of ':'
(noir-lang/noir#6701)
([3304046](AztecProtocol/aztec-packages@3304046))
* Integrate verify_proof calls in mock protocol circuits
([#9253](AztecProtocol/aztec-packages#9253))
([7ed89aa](AztecProtocol/aztec-packages@7ed89aa))
* Making testnet script write a docker compose file
([#10333](AztecProtocol/aztec-packages#10333))
([be54cc3](AztecProtocol/aztec-packages@be54cc3))
* Manage enqueued calls & phases in AVM witgen
([#10310](AztecProtocol/aztec-packages#10310))
([e7ebef8](AztecProtocol/aztec-packages@e7ebef8))
* Mock IVC state from arbitrary acir IVC recursion constraints
([#10314](AztecProtocol/aztec-packages#10314))
([ac7c0da](AztecProtocol/aztec-packages@ac7c0da))
* Optionally emit public bytecode
([#10365](AztecProtocol/aztec-packages#10365))
([84ff623](AztecProtocol/aztec-packages@84ff623))
* **p2p:** Persist node private p2p keys
([#10324](AztecProtocol/aztec-packages#10324))
([1c32eda](AztecProtocol/aztec-packages@1c32eda))
* **p2p:** Snappy compress p2p messages
([#10417](AztecProtocol/aztec-packages#10417))
([c643a54](AztecProtocol/aztec-packages@c643a54))
* **perf:** Track last loads per block in mem2reg and remove them if
possible (noir-lang/noir#6088)
([3304046](AztecProtocol/aztec-packages@3304046))
* Process blocks in parallel during epoch proving
([#10263](AztecProtocol/aztec-packages#10263))
([a9d418c](AztecProtocol/aztec-packages@a9d418c))
* Reduce memory consumption by storing array length as `u32` during SSA
(noir-lang/noir#6606)
([3304046](AztecProtocol/aztec-packages@3304046))
* Release please for release branch
([#10467](AztecProtocol/aztec-packages#10467))
([38941bf](AztecProtocol/aztec-packages@38941bf))
* Replace quadratic removal of `rc` instructions
(noir-lang/noir#6705)
([3304046](AztecProtocol/aztec-packages@3304046))
* Replace quadratic removal of rc instructions
([#10416](AztecProtocol/aztec-packages#10416))
([9d833c5](AztecProtocol/aztec-packages@9d833c5))
* Revert changes to `ValueMerger` and `Instruction::IfElse`
(noir-lang/noir#6673)
([3304046](AztecProtocol/aztec-packages@3304046))
* Show printable byte arrays as byte strings in SSA
(noir-lang/noir#6709)
([3304046](AztecProtocol/aztec-packages@3304046))
* Simplify `jmpif`s by reversing branches if condition is negated
(noir-lang/noir#5891)
([3304046](AztecProtocol/aztec-packages@3304046))
* **ssa:** Deduplicate intrinsics with predicates
(noir-lang/noir#6615)
([3304046](AztecProtocol/aztec-packages@3304046))
* **ssa:** Hoisting of array get using known induction variable maximum
(noir-lang/noir#6639)
([3304046](AztecProtocol/aztec-packages@3304046))
* **ssa:** Loop invariant code motion
(noir-lang/noir#6563)
([3304046](AztecProtocol/aztec-packages@3304046))
* **ssa:** Option to set the maximum acceptable Brillig bytecode
increase in unrolling (noir-lang/noir#6641)
([3304046](AztecProtocol/aztec-packages@3304046))
* **ssa:** Simplify array get from set that writes to the same dynamic
index (noir-lang/noir#6684)
([3304046](AztecProtocol/aztec-packages@3304046))
* Staking integration
([#10403](AztecProtocol/aztec-packages#10403))
([ecd6c4f](AztecProtocol/aztec-packages@ecd6c4f))
* Standalone ssd
([#10317](AztecProtocol/aztec-packages#10317))
([c324781](AztecProtocol/aztec-packages@c324781))
* Switch to using an external noir implementation of Schnorr
([#10330](AztecProtocol/aztec-packages#10330))
([6cbd375](AztecProtocol/aztec-packages@6cbd375))
* Sync from aztec-packages (noir-lang/noir#6576)
([3304046](AztecProtocol/aztec-packages@3304046))
* Sync from aztec-packages (noir-lang/noir#6634)
([3304046](AztecProtocol/aztec-packages@3304046))
* Sync from aztec-packages (noir-lang/noir#6656)
([3304046](AztecProtocol/aztec-packages@3304046))
* Terraform for alerting on metrics
([#10192](AztecProtocol/aztec-packages#10192))
([05c9e5d](AztecProtocol/aztec-packages@05c9e5d)),
closes
[#9956](AztecProtocol/aztec-packages#9956)
* Test release network via ci workflow
([#10388](AztecProtocol/aztec-packages#10388))
([e6060ec](AztecProtocol/aztec-packages@e6060ec)),
closes
[#10383](AztecProtocol/aztec-packages#10383)
* **tooling:** Skip program transformation when loaded from cache
(noir-lang/noir#6689)
([3304046](AztecProtocol/aztec-packages@3304046))
* Try to inline brillig calls with all constant arguments
(noir-lang/noir#6548)
([3304046](AztecProtocol/aztec-packages@3304046))
* Ultra rollup flows
([#10162](AztecProtocol/aztec-packages#10162))
([c53f4cf](AztecProtocol/aztec-packages@c53f4cf))
* Zip and propagate private logs
([#10210](AztecProtocol/aztec-packages#10210))
([5c32747](AztecProtocol/aztec-packages@5c32747))
* Zip and silo and propagate private logs
([#10308](AztecProtocol/aztec-packages#10308))
([90d4385](AztecProtocol/aztec-packages@90d4385))


### Bug Fixes

* Add helm
([#10454](AztecProtocol/aztec-packages#10454))
([2eb9ade](AztecProtocol/aztec-packages@2eb9ade))
* Add secret
([#10453](AztecProtocol/aztec-packages#10453))
([95601df](AztecProtocol/aztec-packages@95601df))
* Add type
([#10452](AztecProtocol/aztec-packages#10452))
([cd9699f](AztecProtocol/aztec-packages@cd9699f))
* Allow multiple `_` parameters, and disallow `_` as an expression you
can read from (noir-lang/noir#6657)
([3304046](AztecProtocol/aztec-packages@3304046))
* Always return an array of `u8`s when simplifying `Intrinsic::ToRadix`
calls (noir-lang/noir#6663)
([3304046](AztecProtocol/aztec-packages@3304046))
* Await block unwind when a reorg happens
([#10380](AztecProtocol/aztec-packages#10380))
([5a02480](AztecProtocol/aztec-packages@5a02480))
* Bbup cleanup and fix
([#10067](AztecProtocol/aztec-packages#10067))
([0ff8177](AztecProtocol/aztec-packages@0ff8177))
* Bootstrapping devnet
([#10396](AztecProtocol/aztec-packages#10396))
([f3c7294](AztecProtocol/aztec-packages@f3c7294))
* Bot waits for pxe synch
([#10316](AztecProtocol/aztec-packages#10316))
([ebd4165](AztecProtocol/aztec-packages@ebd4165))
* Consider prereleases to be compatible with pre-1.0.0 releases
(noir-lang/noir#6580)
([3304046](AztecProtocol/aztec-packages@3304046))
* Correct signed integer handling in `noirc_abi`
(noir-lang/noir#6638)
([3304046](AztecProtocol/aztec-packages@3304046))
* Correct type when simplifying `derive_pedersen_generators`
(noir-lang/noir#6579)
([3304046](AztecProtocol/aztec-packages@3304046))
* Correct types returned by constant EC operations simplified within SSA
(noir-lang/noir#6652)
([3304046](AztecProtocol/aztec-packages@3304046))
* Disallow `#[export]` on associated methods
(noir-lang/noir#6626)
([3304046](AztecProtocol/aztec-packages@3304046))
* Do not warn on unused functions marked with #[export]
(noir-lang/noir#6625)
([3304046](AztecProtocol/aztec-packages@3304046))
* Don't pass default value for --node-url
([#10427](AztecProtocol/aztec-packages#10427))
([5299481](AztecProtocol/aztec-packages@5299481)),
closes
[#10419](AztecProtocol/aztec-packages#10419)
* Don't remove necessary RC instructions in DIE pass
(noir-lang/noir#6585)
([3304046](AztecProtocol/aztec-packages@3304046))
* Don't report visibility errors when elaborating comptime value
(noir-lang/noir#6498)
([3304046](AztecProtocol/aztec-packages@3304046))
* Get node info from a PXE
([#10420](AztecProtocol/aztec-packages#10420))
([ed972f3](AztecProtocol/aztec-packages@ed972f3))
* Increase timeouts
([#10412](AztecProtocol/aztec-packages#10412))
([d3b8838](AztecProtocol/aztec-packages@d3b8838))
* LSP auto-import text indent
(noir-lang/noir#6699)
([3304046](AztecProtocol/aztec-packages@3304046))
* LSP code action wasn't triggering on beginning or end of identifier
(noir-lang/noir#6616)
([3304046](AztecProtocol/aztec-packages@3304046))
* **LSP:** Use generic self type to narrow down methods to complete
(noir-lang/noir#6617)
([3304046](AztecProtocol/aztec-packages@3304046))
* Move spartan-script tf to spartan, use file in bucket
([#10395](AztecProtocol/aztec-packages#10395))
([5cef628](AztecProtocol/aztec-packages@5cef628))
* Nit
([#10392](AztecProtocol/aztec-packages#10392))
([d6985a8](AztecProtocol/aztec-packages@d6985a8))
* Optimize array ref counts to copy arrays much less often
(noir-lang/noir#6685)
([3304046](AztecProtocol/aztec-packages@3304046))
* **p2p:** Override msg Id
([#10415](AztecProtocol/aztec-packages#10415))
([990d11b](AztecProtocol/aztec-packages@990d11b))
* Parse a bit more SSA stuff
(noir-lang/noir#6599)
([3304046](AztecProtocol/aztec-packages@3304046))
* Preserve newlines between comments when formatting statements
(noir-lang/noir#6601)
([3304046](AztecProtocol/aztec-packages@3304046))
* Prevent hoisting binary instructions which can overflow
(noir-lang/noir#6672)
([3304046](AztecProtocol/aztec-packages@3304046))
* **prover:** Handle starting blocks out of order in prover
([#10350](AztecProtocol/aztec-packages#10350))
([9106102](AztecProtocol/aztec-packages@9106102))
* Publicly register contract classes
([#10385](AztecProtocol/aztec-packages#10385))
([94e6e1a](AztecProtocol/aztec-packages@94e6e1a))
* Remove `compiler_version` from new `Nargo.toml`
(noir-lang/noir#6590)
([3304046](AztecProtocol/aztec-packages@3304046))
* Revert "feat: Avoid inserting an empty leaf in indexed trees on
update"
([#10319](AztecProtocol/aztec-packages#10319))
([887c011](AztecProtocol/aztec-packages@887c011))
* Revert "feat: zip and propagate private logs"
([#10302](AztecProtocol/aztec-packages#10302))
([9d70728](AztecProtocol/aztec-packages@9d70728))
* Safely insert sibling paths
([#10423](AztecProtocol/aztec-packages#10423))
([41f7645](AztecProtocol/aztec-packages@41f7645))
* **ssa:** Don't deduplicate constraints in blocks that are not
dominated (noir-lang/noir#6627)
([3304046](AztecProtocol/aztec-packages@3304046))
* **ssa:** Remove RC tracker in DIE
(noir-lang/noir#6700)
([3304046](AztecProtocol/aztec-packages@3304046))
* **ssa:** Track all local allocations during flattening
(noir-lang/noir#6619)
([3304046](AztecProtocol/aztec-packages@3304046))
* Tf vars
([#10457](AztecProtocol/aztec-packages#10457))
([00aaef6](AztecProtocol/aztec-packages@00aaef6))
* Typo in u128 docs (noir-lang/noir#6711)
([3304046](AztecProtocol/aztec-packages@3304046))
* Url in bbup install
([#10456](AztecProtocol/aztec-packages#10456))
([1b0dfb7](AztecProtocol/aztec-packages@1b0dfb7))
* Use correct type for attribute arguments
(noir-lang/noir#6640)
([3304046](AztecProtocol/aztec-packages@3304046))
* Used signed division for signed modulo
(noir-lang/noir#6635)
([3304046](AztecProtocol/aztec-packages@3304046))
* Witness changes in file sponge.hpp
([#10345](AztecProtocol/aztec-packages#10345))
([4a38edf](AztecProtocol/aztec-packages@4a38edf))


### Miscellaneous

* Add `ram_blowup_regression` to memory report
(noir-lang/noir#6683)
([3304046](AztecProtocol/aztec-packages@3304046))
* Add panic for compiler error described in
[#6620](AztecProtocol/aztec-packages#6620)
(noir-lang/noir#6621)
([3304046](AztecProtocol/aztec-packages@3304046))
* **avm:** Fake verification routine for avm recursion in public base
rollup
([#10382](AztecProtocol/aztec-packages#10382))
([a1e5966](AztecProtocol/aztec-packages@a1e5966)),
closes
[#10243](AztecProtocol/aztec-packages#10243)
* **avm:** Remove function selector type of getenv opcode
([#10406](AztecProtocol/aztec-packages#10406))
([38c0c14](AztecProtocol/aztec-packages@38c0c14)),
closes
[#9396](AztecProtocol/aztec-packages#9396)
* Batch archiver requests
([#10442](AztecProtocol/aztec-packages#10442))
([9443e8e](AztecProtocol/aztec-packages@9443e8e))
* Boot node has fixed peer id private key
([#10352](AztecProtocol/aztec-packages#10352))
([cae1203](AztecProtocol/aztec-packages@cae1203))
* Bump alert in gossip_network.test.ts
([#10430](AztecProtocol/aztec-packages#10430))
([2c2169b](AztecProtocol/aztec-packages@2c2169b))
* Centralized helm flag for proving and clean release tf deploys
([#10221](AztecProtocol/aztec-packages#10221))
([c2c1744](AztecProtocol/aztec-packages@c2c1744))
* **ci:** Move playwright install to `+deps`
([#10293](AztecProtocol/aztec-packages#10293))
([d7bd306](AztecProtocol/aztec-packages@d7bd306))
* Clean up archiver logs
([#10429](AztecProtocol/aztec-packages#10429))
([4fcbc59](AztecProtocol/aztec-packages@4fcbc59))
* Consolidate some CI workflows to reduce sprawl
(noir-lang/noir#6696)
([3304046](AztecProtocol/aztec-packages@3304046))
* Contracts on a diet
([#10389](AztecProtocol/aztec-packages#10389))
([dddb008](AztecProtocol/aztec-packages@dddb008))
* Deduplicate constants across blocks
([#9972](AztecProtocol/aztec-packages#9972))
([69bb64f](AztecProtocol/aztec-packages@69bb64f))
* Derive PartialEq and Hash for FieldElement
(noir-lang/noir#6610)
([3304046](AztecProtocol/aztec-packages@3304046))
* **docs:** Remove additional `DEBUG` references, add note on
`LOG_LEVEL`s
([#10434](AztecProtocol/aztec-packages#10434))
([e1e5906](AztecProtocol/aztec-packages@e1e5906))
* Don't generate proofs of verifier circuits in test
([#10405](AztecProtocol/aztec-packages#10405))
([c00ebdd](AztecProtocol/aztec-packages@c00ebdd))
* Fix sassy-salamander chores v1
([#10218](AztecProtocol/aztec-packages#10218))
([7227b48](AztecProtocol/aztec-packages@7227b48)),
closes
[#10074](AztecProtocol/aztec-packages#10074)
[#10075](AztecProtocol/aztec-packages#10075)
[#10077](AztecProtocol/aztec-packages#10077)
* Fix tests in `noirc_abi_wasm`
(noir-lang/noir#6688)
([3304046](AztecProtocol/aztec-packages@3304046))
* Fix traces endpoint url in native testnet script
([#10309](AztecProtocol/aztec-packages#10309))
([2367c62](AztecProtocol/aztec-packages@2367c62))
* Fix typo in test name (noir-lang/noir#6589)
([3304046](AztecProtocol/aztec-packages@3304046))
* Fix warning when compiling `noir_wasm`
(noir-lang/noir#6686)
([3304046](AztecProtocol/aztec-packages@3304046))
* Ignore almost-empty directories in nargo_cli tests
(noir-lang/noir#6611)
([3304046](AztecProtocol/aztec-packages@3304046))
* Improve error message of `&T`
(noir-lang/noir#6633)
([3304046](AztecProtocol/aztec-packages@3304046))
* Log manual contract class registrations
([#10354](AztecProtocol/aztec-packages#10354))
([da1470d](AztecProtocol/aztec-packages@da1470d))
* Making bbup a shell script
([#10426](AztecProtocol/aztec-packages#10426))
([1c29554](AztecProtocol/aztec-packages@1c29554))
* **network_test.sh:** Work around 143 by disabling stern
([#10436](AztecProtocol/aztec-packages#10436))
([64f6dad](AztecProtocol/aztec-packages@64f6dad))
* Parallelise construction of perturbator coefficients at each level
([#10304](AztecProtocol/aztec-packages#10304))
([ba335bd](AztecProtocol/aztec-packages@ba335bd))
* Parallelise inverse polynomial construction for lookup relations
([#10413](AztecProtocol/aztec-packages#10413))
([427cf59](AztecProtocol/aztec-packages@427cf59))
* Pin foundry version in CI
(noir-lang/noir#6642)
([3304046](AztecProtocol/aztec-packages@3304046))
* Public inputs in unit tests with proving were incorrectly set
([#10300](AztecProtocol/aztec-packages#10300))
([0311bf3](AztecProtocol/aztec-packages@0311bf3))
* Pull out cfg simplification changes
([#10279](AztecProtocol/aztec-packages#10279))
([c48ae90](AztecProtocol/aztec-packages@c48ae90))
* Pull out constant brillig inliner
([#10291](AztecProtocol/aztec-packages#10291))
([0577c1a](AztecProtocol/aztec-packages@0577c1a))
* Pull out loop invariant optimization
([#10277](AztecProtocol/aztec-packages#10277))
([94cba37](AztecProtocol/aztec-packages@94cba37))
* Pull out sync changes
([#10292](AztecProtocol/aztec-packages#10292))
([49f80b3](AztecProtocol/aztec-packages@49f80b3))
* Random typos
([#10393](AztecProtocol/aztec-packages#10393))
([ed47a42](AztecProtocol/aztec-packages@ed47a42))
* Redo typo PR by Dimitrolito
([#10364](AztecProtocol/aztec-packages#10364))
([da809c5](AztecProtocol/aztec-packages@da809c5))
* Redo typo PR by Dimitrolito
(noir-lang/noir#6614)
([3304046](AztecProtocol/aztec-packages@3304046))
* Redo typo PR by donatik27
(noir-lang/noir#6575)
([3304046](AztecProtocol/aztec-packages@3304046))
* Redo typo PR by leopardracer
([#10363](AztecProtocol/aztec-packages#10363))
([0d1b722](AztecProtocol/aztec-packages@0d1b722))
* Redo typo PR by leopardracer
([#10444](AztecProtocol/aztec-packages#10444))
([3653c4c](AztecProtocol/aztec-packages@3653c4c))
* Refactor foreign call executors
(noir-lang/noir#6659)
([3304046](AztecProtocol/aztec-packages@3304046))
* Refactor indexed tree to use traits
([#10361](AztecProtocol/aztec-packages#10361))
([621cbaf](AztecProtocol/aztec-packages@621cbaf))
* Refactor poseidon2 (noir-lang/noir#6655)
([3304046](AztecProtocol/aztec-packages@3304046))
* Release Noir(1.0.0-beta.0)
(noir-lang/noir#6562)
([3304046](AztecProtocol/aztec-packages@3304046))
* Remove `ec` module from stdlib
(noir-lang/noir#6612)
([3304046](AztecProtocol/aztec-packages@3304046))
* Remove debug and winston in favor of pino
([#10355](AztecProtocol/aztec-packages#10355))
([c246aba](AztecProtocol/aztec-packages@c246aba))
* Remove eddsa from stdlib (noir-lang/noir#6591)
([3304046](AztecProtocol/aztec-packages@3304046))
* Remove inliner override for `reference_counts` test
(noir-lang/noir#6714)
([3304046](AztecProtocol/aztec-packages@3304046))
* Remove SchnorrVerify opcode
([#9897](AztecProtocol/aztec-packages#9897))
([93cd323](AztecProtocol/aztec-packages@93cd323))
* Remove temporary allocations from `num_bits`
(noir-lang/noir#6600)
([3304046](AztecProtocol/aztec-packages@3304046))
* Remove unused dep
([#10295](AztecProtocol/aztec-packages#10295))
([2a07355](AztecProtocol/aztec-packages@2a07355))
* Replace relative paths to noir-protocol-circuits
([8fd8236](AztecProtocol/aztec-packages@8fd8236))
* Replace relative paths to noir-protocol-circuits
([5d11e24](AztecProtocol/aztec-packages@5d11e24))
* Replace relative paths to noir-protocol-circuits
([e7a99f2](AztecProtocol/aztec-packages@e7a99f2))
* Replace relative paths to noir-protocol-circuits
([2496118](AztecProtocol/aztec-packages@2496118))
* Replace relative paths to noir-protocol-circuits
([d77dc96](AztecProtocol/aztec-packages@d77dc96))
* Replace relative paths to noir-protocol-circuits
([46d12e3](AztecProtocol/aztec-packages@46d12e3))
* Require types of globals to be specified
(noir-lang/noir#6592)
([3304046](AztecProtocol/aztec-packages@3304046))
* Revert "fix: Don't remove necessary RC instructions in DIE pass
(noir-lang/noir#6585)"
(noir-lang/noir#6693)
([3304046](AztecProtocol/aztec-packages@3304046))
* Sassy network
([#10468](AztecProtocol/aztec-packages#10468))
([92eb377](AztecProtocol/aztec-packages@92eb377))
* Simplify otel config, 1val setup, fix pod dns, retries
([#10344](AztecProtocol/aztec-packages#10344))
([be91d80](AztecProtocol/aztec-packages@be91d80))
* Skip A-&gt;B B->A e2e_2_pxes test
([#10297](AztecProtocol/aztec-packages#10297))
([b75bfd0](AztecProtocol/aztec-packages@b75bfd0))
* Sync logging with jest
([#10459](AztecProtocol/aztec-packages#10459))
([6e33cb9](AztecProtocol/aztec-packages@6e33cb9))
* Typo in oracles how to (noir-lang/noir#6598)
([3304046](AztecProtocol/aztec-packages@3304046))
* Update noir-bench-report version
(noir-lang/noir#6675)
([3304046](AztecProtocol/aztec-packages@3304046))
* Update pprof (noir-lang/noir#6710)
([3304046](AztecProtocol/aztec-packages@3304046))
* Update release-please action
(noir-lang/noir#6704)
([3304046](AztecProtocol/aztec-packages@3304046))
* Use non default mnemonic for releases
([#10400](AztecProtocol/aztec-packages#10400))
([bb5f364](AztecProtocol/aztec-packages@bb5f364))
</details>

<details><summary>barretenberg: 0.66.0</summary>

##
[0.66.0](AztecProtocol/aztec-packages@barretenberg-v0.65.2...barretenberg-v0.66.0)
(2024-12-06)


### ⚠ BREAKING CHANGES

* remove SchnorrVerify opcode
([#9897](AztecProtocol/aztec-packages#9897))

### Features

* Allow querying block number for tree indices
([#10332](AztecProtocol/aztec-packages#10332))
([cf05a7a](AztecProtocol/aztec-packages@cf05a7a))
* Avoid inserting an empty leaf in indexed trees on update
([#10281](AztecProtocol/aztec-packages#10281))
([5a04ca8](AztecProtocol/aztec-packages@5a04ca8))
* Avoid inserting an empty leaf in indexed trees on update
([#10334](AztecProtocol/aztec-packages#10334))
([80fad45](AztecProtocol/aztec-packages@80fad45))
* **bb:** Define std::hash for field
([#10312](AztecProtocol/aztec-packages#10312))
([752bc59](AztecProtocol/aztec-packages@752bc59))
* Client IVC API
([#10217](AztecProtocol/aztec-packages#10217))
([cc54a1e](AztecProtocol/aztec-packages@cc54a1e))
* Integrate verify_proof calls in mock protocol circuits
([#9253](AztecProtocol/aztec-packages#9253))
([7ed89aa](AztecProtocol/aztec-packages@7ed89aa))
* Manage enqueued calls & phases in AVM witgen
([#10310](AztecProtocol/aztec-packages#10310))
([e7ebef8](AztecProtocol/aztec-packages@e7ebef8))
* Mock IVC state from arbitrary acir IVC recursion constraints
([#10314](AztecProtocol/aztec-packages#10314))
([ac7c0da](AztecProtocol/aztec-packages@ac7c0da))
* Ultra rollup flows
([#10162](AztecProtocol/aztec-packages#10162))
([c53f4cf](AztecProtocol/aztec-packages@c53f4cf))


### Bug Fixes

* Bbup cleanup and fix
([#10067](AztecProtocol/aztec-packages#10067))
([0ff8177](AztecProtocol/aztec-packages@0ff8177))
* Revert "feat: Avoid inserting an empty leaf in indexed trees on
update"
([#10319](AztecProtocol/aztec-packages#10319))
([887c011](AztecProtocol/aztec-packages@887c011))
* Url in bbup install
([#10456](AztecProtocol/aztec-packages#10456))
([1b0dfb7](AztecProtocol/aztec-packages@1b0dfb7))
* Witness changes in file sponge.hpp
([#10345](AztecProtocol/aztec-packages#10345))
([4a38edf](AztecProtocol/aztec-packages@4a38edf))


### Miscellaneous

* **avm:** Fake verification routine for avm recursion in public base
rollup
([#10382](AztecProtocol/aztec-packages#10382))
([a1e5966](AztecProtocol/aztec-packages@a1e5966)),
closes
[#10243](AztecProtocol/aztec-packages#10243)
* **avm:** Remove function selector type of getenv opcode
([#10406](AztecProtocol/aztec-packages#10406))
([38c0c14](AztecProtocol/aztec-packages@38c0c14)),
closes
[#9396](AztecProtocol/aztec-packages#9396)
* Don't generate proofs of verifier circuits in test
([#10405](AztecProtocol/aztec-packages#10405))
([c00ebdd](AztecProtocol/aztec-packages@c00ebdd))
* Making bbup a shell script
([#10426](AztecProtocol/aztec-packages#10426))
([1c29554](AztecProtocol/aztec-packages@1c29554))
* Parallelise construction of perturbator coefficients at each level
([#10304](AztecProtocol/aztec-packages#10304))
([ba335bd](AztecProtocol/aztec-packages@ba335bd))
* Parallelise inverse polynomial construction for lookup relations
([#10413](AztecProtocol/aztec-packages#10413))
([427cf59](AztecProtocol/aztec-packages@427cf59))
* Public inputs in unit tests with proving were incorrectly set
([#10300](AztecProtocol/aztec-packages#10300))
([0311bf3](AztecProtocol/aztec-packages@0311bf3))
* Redo typo PR by Dimitrolito
([#10364](AztecProtocol/aztec-packages#10364))
([da809c5](AztecProtocol/aztec-packages@da809c5))
* Redo typo PR by leopardracer
([#10363](AztecProtocol/aztec-packages#10363))
([0d1b722](AztecProtocol/aztec-packages@0d1b722))
* Remove SchnorrVerify opcode
([#9897](AztecProtocol/aztec-packages#9897))
([93cd323](AztecProtocol/aztec-packages@93cd323))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
TomAFrench added a commit that referenced this pull request 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)
  ...
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.

4 participants