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: structured trace in client ivc #6132

Merged
merged 22 commits into from
May 8, 2024
Merged

Conversation

ledwards2225
Copy link
Contributor

@ledwards2225 ledwards2225 commented May 1, 2024

Adds a version of the Full ClientIvc benchmark that utilizes a structured trace, FullStructured. (The original is still there).

Other things this PR does:

  • Turns on relation skipping for PG in general, regardless of trace structure (combiner and perturbator). (These two are handled in two different places since combiner works on univariates and pertubator on FFs)
  • Adds a breakdown of Relation::accumulate contribution for each relation in the client ivc bench analyze script
  • Updates relations_bench with versions that operate on sumcheck univariates and PG-sized univariates (instead of just field values)
  • Simplifies/unifies relation skip methods for Univariate/FF via a is_zero() method on Univariate (Note: checking a whole univariate is zero vs just the num-instances-many elements did not have a noticeable effect on benchmarks).

Main benchmark:

Benchmark                               Time             CPU      Time Old      Time New       CPU Old       CPU New
--------------------------------------------------------------------------------------------------------------------
ClientIVCBench/Full/6                -0.1596         -0.1596         79468         66784   79467844000   66783937000
OVERALL_GEOMEAN                      -0.1596         -0.1596            79            67      79467844      66783937
Switched to branch 'lde/structured_client_ivc'

Also this because I was curiousL:

Benchmark                               Time             CPU      Time Old      Time New       CPU Old       CPU New
--------------------------------------------------------------------------------------------------------------------
ClientIVCBench/Full/2                -0.1208         -0.1208         23143         20346   23142707000   20346027000
OVERALL_GEOMEAN                      -0.1208         -0.1208            23            20      23142707      20346027
Switched to branch 'lde/structured_client_ivc'

@AztecBot
Copy link
Collaborator

AztecBot commented May 1, 2024

Benchmark results

Metrics with a significant change:

  • circuit_simulation_time_in_ms (merge-rollup): 6,511 (+22%)
  • tx_pxe_processing_time_ms (0): 1,418 (-20%)
  • batch_insert_into_append_only_tree_32_depth_ms (512): 266 (-24%)
  • tx_sequencer_processing_time_ms (2): 792 (-23%)
  • tx_sequencer_processing_time_ms (4): 934 (-24%)
  • tx_sequencer_processing_time_ms (5): 2,196 (-17%)
  • tx_sequencer_processing_time_ms (8): 1,115 (-28%)
  • node_history_sync_time_in_ms (10): 32,592 (+20%)
  • l2_block_public_tx_process_time_in_ms (8): 8,986 (-18%)
Detailed results

All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.

This benchmark source data is available in JSON format on S3 here.

L2 block published to L1

Each column represents the number of txs on an L2 block published to L1.

Metric 8 txs 32 txs 64 txs
l1_rollup_calldata_size_in_bytes 740 740 740
l1_rollup_calldata_gas 6,680 6,680 6,692
l1_rollup_execution_gas 586,812 586,812 586,824
l2_block_processing_time_in_ms 1,610 (-4%) 5,548 (+6%) 10,719 (+9%)
l2_block_building_time_in_ms 22,700 (-13%) 89,212 (-1%) 178,082 (+6%)
l2_block_rollup_simulation_time_in_ms 22,494 (-12%) 88,463 (-1%) 176,455 (+5%)
l2_block_public_tx_process_time_in_ms ⚠️ 8,986 (-18%) 35,076 (-7%) 69,931 (-1%)

L2 chain processing

Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric 5 blocks 10 blocks
node_history_sync_time_in_ms 16,332 (+10%) ⚠️ 32,592 (+20%)
node_database_size_in_bytes 20,750,416 37,429,328
pxe_database_size_in_bytes 29,868 59,425

Circuits stats

Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit circuit_simulation_time_in_ms circuit_input_size_in_bytes circuit_output_size_in_bytes
private-kernel-init 174 (-8%) 46,819 28,822
private-kernel-inner 205 (-10%) 76,734 28,822
private-kernel-ordering 228 (-9%) 53,040 42,751
base-parity 72.5 (-10%) 128 64.0
base-rollup 16,453 (+13%) 111,062 925
root-parity 1,683 27,064 64.0
root-rollup 64.9 (-15%) 11,454 789
public-kernel-app-logic 1,979 (-2%) 54,321 22,677
public-kernel-tail 4,855 (-2%) 159,770 3,898
merge-rollup ⚠️ 6,511 (+22%) 2,696 925
public-kernel-teardown 161 (-6%) 54,321 30,042
public-kernel-setup 220 (-4%) 54,321 30,042

Tree insertion stats

The duration to insert a fixed batch of leaves into each tree type.

Metric 1 leaves 16 leaves 64 leaves 128 leaves 512 leaves 1024 leaves 2048 leaves 4096 leaves 32 leaves
batch_insert_into_append_only_tree_16_depth_ms 11.1 (-4%) 17.9 (-9%) N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_count 16.7 31.8 N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_ms 0.646 (-4%) 0.552 (-9%) N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_32_depth_ms N/A N/A 51.5 (-5%) 80.5 (-2%) ⚠️ 266 (-24%) 504 (+3%) 991 1,973 (+2%) N/A
batch_insert_into_append_only_tree_32_depth_hash_count N/A N/A 95.9 159 543 1,055 2,079 4,127 N/A
batch_insert_into_append_only_tree_32_depth_hash_ms N/A N/A 0.526 (-5%) 0.497 (-2%) 0.481 (-24%) 0.470 (+3%) 0.470 0.472 (+3%) N/A
batch_insert_into_indexed_tree_20_depth_ms N/A N/A 61.1 (-4%) 120 (-6%) 386 (-12%) 742 (+4%) 1,467 (-4%) 2,949 (+2%) N/A
batch_insert_into_indexed_tree_20_depth_hash_count N/A N/A 105 208 692 1,363 2,707 5,395 N/A
batch_insert_into_indexed_tree_20_depth_hash_ms N/A N/A 0.538 (-3%) 0.541 (-5%) 0.524 (-12%) 0.510 (+4%) 0.507 (-4%) 0.512 (+1%) N/A
batch_insert_into_indexed_tree_40_depth_ms N/A N/A N/A N/A N/A N/A N/A N/A 67.1 (-1%)
batch_insert_into_indexed_tree_40_depth_hash_count N/A N/A N/A N/A N/A N/A N/A N/A 108
batch_insert_into_indexed_tree_40_depth_hash_ms N/A N/A N/A N/A N/A N/A N/A N/A 0.590 (-1%)

Miscellaneous

Transaction sizes based on how many contract classes are registered in the tx.

Metric 0 registered classes 1 registered classes
tx_size_in_bytes 44,613 535,433

Transaction size based on fee payment method

Metric native fee payment method fpc_public fee payment method fpc_private fee payment method
tx_with_fee_size_in_bytes 897 1,145 1,345

Transaction processing duration by data writes.

Metric 0 new note hashes 1 new note hashes 2 new note hashes
tx_pxe_processing_time_ms ⚠️ 1,418 (-20%) 1,008 (-8%) 3,679 (-12%)
Metric 1 public data writes 2 public data writes 3 public data writes 4 public data writes 5 public data writes 8 public data writes
tx_sequencer_processing_time_ms 882 (-3%) ⚠️ 792 (-23%) 1,425 (-10%) ⚠️ 934 (-24%) ⚠️ 2,196 (-17%) ⚠️ 1,115 (-28%)

@ledwards2225 ledwards2225 self-assigned this May 2, 2024
info("");
}

size_t get_total_structured_size()
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Note that there's a bit of duplication of these TraceBlocks methods for Ultra/GoblinUltra. I tried to introduce a base class to reduce this but it ends up needing to be a really complicated template mess, mostly because the return type of get() is complicated. Decided it wasn't worth it.

@@ -62,6 +62,17 @@ template <class Fr, size_t domain_end, size_t domain_start = 0> class Univariate
const Fr& value_at(size_t i) const { return evaluations[i - domain_start]; };
size_t size() { return evaluations.size(); };

// Check if the univariate is identically zero
Copy link
Contributor Author

@ledwards2225 ledwards2225 May 2, 2024

Choose a reason for hiding this comment

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

This allows a skip method of the form e.g. in.q_arith.is_zero() to work for both Univariate and FF (needed for perturbator). I was worried that checking ALL values in the Univariate would be expensive vs checking only the first 2 or 3 but it was not noticeable. Its also nice because for the combiner we need to check that the first num-instance-many values are zero, so this will just work out of the box if we update the number of instances being folded.

Relation::accumulate(
std::get<relation_idx>(univariate_accumulators), extended_univariates, relation_parameters, scaling_factor);

// Check if the relation is skippable to speed up accumulation
Copy link
Contributor Author

@ledwards2225 ledwards2225 May 2, 2024

Choose a reason for hiding this comment

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

This is turning on skipping for the combiner by default, regardless of trace structuring, so the benefit will show up in the normal Full bench

{
// The prover can skip execution of this relation altogether since an honest input will lead to a zero
// contribution at every row, even when the selector lagrange_ecc_op is on
return true;
Copy link
Contributor Author

@ledwards2225 ledwards2225 May 2, 2024

Choose a reason for hiding this comment

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

This seems kind of wild but I think its right. When the selector is 1, the contribution is of the form (w_i - op_w_i), which will be identically 0. Outside this range, we're just checking that the op wires are zero. So in either case the univariate contribution is zero. The verifier will compute a nontrivial contribution because the wires and op wires are not identical over the entire trace so the random multilinear evaluations produced by sumcheck will differ. (The verifier does not utilize skipping).

@ledwards2225 ledwards2225 marked this pull request as ready for review May 2, 2024 20:37
Copy link
Contributor

@codygunton codygunton left a comment

Choose a reason for hiding this comment

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

I'll resolve the issues I commented on in my next PR.

@@ -89,10 +89,13 @@ template <class Fr, size_t domain_end, size_t domain_start = 0, size_t skip_coun
// Check if the univariate is identically zero
bool is_zero() const
Copy link
Contributor

Choose a reason for hiding this comment

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

This is kinda sketchy. Someone is definitely going to assume this means the univariate is zero, not just that it is zero outside of some range.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@codygunton I'm not sure what you mean here. The intent was a genuine check on whether or no the univariate is identically zero - is this not doing that some for some reason?

Relation::accumulate(
std::get<relation_idx>(univariate_accumulators), extended_univariates, relation_parameters, scaling_factor);

// WORKTODO: disable skipping for the combiner for now..
Copy link
Contributor

Choose a reason for hiding this comment

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

Stale comment.

@codygunton codygunton merged commit 92c1478 into master May 8, 2024
89 checks passed
@codygunton codygunton deleted the lde/structured_client_ivc branch May 8, 2024 15:34
rahul-kothari pushed a commit that referenced this pull request May 14, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.39.0](aztec-package-v0.38.0...aztec-package-v0.39.0)
(2024-05-14)


### Features

* **p2p:** GossibSub
([#6170](#6170))
([98d32f1](98d32f1)),
closes
[#5055](#5055)
* PublicKeys struct
([#6333](#6333))
([2633cfc](2633cfc))


### Miscellaneous

* `CompleteAddress` cleanup
([#6300](#6300))
([9c30759](9c30759)),
closes
[#5834](#5834)
</details>

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

##
[0.39.0](barretenberg.js-v0.38.0...barretenberg.js-v0.39.0)
(2024-05-14)


### ⚠ BREAKING CHANGES

* switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))

### Features

* Switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
([78adcc0](78adcc0))
</details>

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

##
[0.39.0](aztec-packages-v0.38.0...aztec-packages-v0.39.0)
(2024-05-14)


### ⚠ BREAKING CHANGES

* switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
* shared mutable configurable delays
([#6104](#6104))
* specify databus arrays for BB
([#6239](#6239))

### Features

* Add `Not` trait to stdlib
(noir-lang/noir#4999)
([11cde44](11cde44))
* Add support for u16/i16 (noir-lang/noir#4985)
([11cde44](11cde44))
* Avm support for public input columns
([#5700](#5700))
([8cf9168](8cf9168))
* **avm-simulator:** Add to_radix_le instruction
([#6308](#6308))
([6374a32](6374a32))
* **avm-simulator:** Error stack tracking and enriching in AVM to match
ACVM/ACIR-SIM
([#6289](#6289))
([5c1f895](5c1f895))
* **aztec-nr:** Add 'with_gas()' function to avm call interface
([#6256](#6256))
([0aedd23](0aedd23))
* **aztec-nr:** Add enqueue functions to AvmCallInterface
([#6264](#6264))
([1c74387](1c74387))
* Build-images as earthly.
([#6194](#6194))
([67fedf1](67fedf1))
* Div opcode
([#6053](#6053))
([8e111f8](8e111f8))
* Encrypted log body
([#6251](#6251))
([ba618d5](ba618d5))
* Enforce note hash read requests to read within own contract
([#6310](#6310))
([bd10595](bd10595))
* Expose `set_as_fee_payer` and test it in e2e
([#6380](#6380))
([a8274f3](a8274f3))
* Implement `ops` traits on `u16`/`i16`
(noir-lang/noir#4996)
([11cde44](11cde44))
* Increase default expression width to 4
(noir-lang/noir#4995)
([11cde44](11cde44))
* Move abi demonomorphizer to noir_codegen and use noir_codegen in
protocol types
([#6302](#6302))
([690e500](690e500))
* Move to_radix to a blackbox
([#6294](#6294))
([ac27376](ac27376))
* **p2p:** GossibSub
([#6170](#6170))
([98d32f1](98d32f1)),
closes
[#5055](#5055)
* Plumb fee payer
([#6286](#6286))
([1f8fd1c](1f8fd1c))
* Private Kernel Recursion
([#6278](#6278))
([eae5822](eae5822))
* Proper padding in ts AES and constrained AES in body and header
computations
([#6269](#6269))
([ef9cdde](ef9cdde))
* PublicKeys struct
([#6333](#6333))
([2633cfc](2633cfc))
* Re-enabling authwit constraint
([#6323](#6323))
([aa06d55](aa06d55)),
closes
[#5830](#5830)
* Remove query to backend to get expression width
(noir-lang/noir#4975)
([11cde44](11cde44))
* Replacing mentions to aztec-starter with codespace methods
([#6177](#6177))
([63e8788](63e8788))
* Return gas usage per phase from node tx simulation
([#6255](#6255))
([fb58dfc](fb58dfc))
* Shared mutable configurable delays
([#6104](#6104))
([c191a40](c191a40))
* Small translator optimisations
([#6354](#6354))
([ba6c42e](ba6c42e))
* Specify databus arrays for BB
([#6239](#6239))
([01d9f24](01d9f24))
* Structured trace in client ivc
([#6132](#6132))
([92c1478](92c1478))
* Switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
([78adcc0](78adcc0))
* Sync from aztec-packages (noir-lang/noir#4993)
([11cde44](11cde44))
* ToRadix BB + avm transpiler support
([#6330](#6330))
([c3c602f](c3c602f))
* **vm:** Reading kernel state opcodes
([#5739](#5739))
([3250a8a](3250a8a))


### Bug Fixes

* `CombinedConstantData` not registered for serialization
([#6292](#6292))
([89ab8ee](89ab8ee))
* **avm-context:** Enqueueing of public from private
([#6299](#6299))
([bd2ccf0](bd2ccf0))
* **avm-simulator:** Always set revertReason when reverting
([#6297](#6297))
([cc59981](cc59981))
* **avm-simulator:** Correctly create call stack in shallow assertions
([#6274](#6274))
([f6045fd](f6045fd))
* **avm-simulator:** Fix env getters
([#6357](#6357))
([485fe40](485fe40))
* **avm-simulator:** Fix message sender
([#6331](#6331))
([f7e2d26](f7e2d26))
* **avm-simulator:** Fix test expectation
([#6293](#6293))
([f51acfa](f51acfa))
* **avm-simulator:** Rethrow nested assertions
([#6275](#6275))
([cd05b91](cd05b91))
* **avm-transpiler:** Patch debug infos with modified PCs
([#6371](#6371))
([c36f0fa](c36f0fa))
* Check for public args in aztec functions
([#6355](#6355))
([219efd6](219efd6))
* **ci:** Bench list
([#6282](#6282))
([2652576](2652576))
* **circuits.js:** Fix nullifier non existent hints
([#6346](#6346))
([297779a](297779a))
* **ci:** Stop mass serialization
([#6290](#6290))
([60104e9](60104e9))
* Defer overflow checks for unsigned integers to acir-gen
(noir-lang/noir#4832)
([11cde44](11cde44))
* Enable client proof tests
([#6249](#6249))
([6d3a800](6d3a800))
* Ignore no_predicates in brillig functions
(noir-lang/noir#5012)
([3cda21a](3cda21a))
* Noir_js import
([#6381](#6381))
([e9c7e5f](e9c7e5f))
* Pw/update merge check
([#6201](#6201))
([856657f](856657f))
* Run noir browser tests in series
([#6232](#6232))
([e092514](e092514))
* Temporarily revert to_radix blackbox
([#6304](#6304))
([044d0fe](044d0fe))


### Miscellaneous

* `CompleteAddress` cleanup
([#6300](#6300))
([9c30759](9c30759)),
closes
[#5834](#5834)
* Adding name shadowing tests template program
(noir-lang/noir#4799)
([11cde44](11cde44))
* **avm-context:** Implement Empty
([#6303](#6303))
([27534ac](27534ac))
* **avm-simulator:** Add U128 overflow tests to AVM simulator
([#6281](#6281))
([5514143](5514143))
* Bump public bytecode size to 40000 in prep for AVM migration
([#6266](#6266))
([2b61123](2b61123))
* Bump timeout for after-hook for data store test
([#6364](#6364))
([18eca39](18eca39))
* **ci:** Fix master, better spot copy times
([#6374](#6374))
([fee7649](fee7649))
* **ci:** Hotfix runner checks
([#6373](#6373))
([d5fd668](d5fd668))
* **ci:** Reuse ssh connections
([#6382](#6382))
([5f6c31e](5f6c31e))
* **ci:** Revert inline cache push for now
([#6318](#6318))
([4c9bfb0](4c9bfb0))
* **ci:** Run clippy on benchmarks
(noir-lang/noir#4988)
([11cde44](11cde44))
* **ci:** Run e2e on isolated spots
([#6287](#6287))
([e7d2dd6](e7d2dd6))
* **ci:** Spot health fix, earthly workarounds
([#6379](#6379))
([da7573c](da7573c))
* **ci:** Stability after spot changes
([#6367](#6367))
([7ad4179](7ad4179))
* **ci:** Use on-demand runners
([#6311](#6311))
([dba835d](dba835d))
* Deploying accounts after key registry
([#6322](#6322))
([84878d1](84878d1))
* Disable `gates_report.yml`
(noir-lang/noir#4997)
([11cde44](11cde44))
* **docs:** Update contract deployments page
([#6319](#6319))
([2e331b5](2e331b5))
* **dsl:** Update backend gateCount command to query a Program in a
single request
([#6228](#6228))
([8079f60](8079f60))
* Enforce formatting of noir code
([#6271](#6271))
([356f7bb](356f7bb))
* **experimental:** Add compiler option to enable the Elaborator
(noir-lang/noir#5003)
([3cda21a](3cda21a))
* **experimental:** Add Elaborator pass
(noir-lang/noir#4992)
([3cda21a](3cda21a))
* Make coinbase and fee_recipient inaccessible
([#6375](#6375))
([ded28b7](ded28b7))
* Make MSM builder more explicit
([#6110](#6110))
([40306b6](40306b6))
* Pw/refactor bb prover
([#6349](#6349))
([8eb0398](8eb0398))
* Remove `bb info` command
([#6276](#6276))
([f0a1c89](f0a1c89))
* Replace relative paths to noir-protocol-circuits
([fd40d99](fd40d99))
* Replace relative paths to noir-protocol-circuits
([53dbcb5](53dbcb5))
* Replace relative paths to noir-protocol-circuits
([48e07c3](48e07c3))
* Replace relative paths to noir-protocol-circuits
([6532725](6532725))
* Replace relative paths to noir-protocol-circuits
([8330f70](8330f70))
* Replace relative paths to noir-protocol-circuits
([484741a](484741a))
* Replacing old pub key oracle with get_ivpk_m
([#6219](#6219))
([9acc9ec](9acc9ec))
* Siloing in tails
([#6167](#6167))
([c20dd50](c20dd50))
* Simplify nargo CLI to read from artifacts
([#6279](#6279))
([b2c019b](b2c019b))
* Skip formatting informattable comments
([#6288](#6288))
([95b499b](95b499b))
* Split `ops` into `arith` and `bit` modules
(noir-lang/noir#4989)
([11cde44](11cde44))
* **test-contracts:** Prepare e2e_token_contract+ error msgs for AVM
migration
([#6307](#6307))
([0c20f44](0c20f44))
* Update cspell for abi demonomorphizer
([#6258](#6258))
([ce2d43c](ce2d43c))
* Update serialisation
([#6378](#6378))
([527129d](527129d))
* Validating private call data
([#6316](#6316))
([84b9fcd](84b9fcd))


### Documentation

* Call types
([#5472](#5472))
([1ca0d28](1ca0d28))
* Re-add and update accounts docs
([#6345](#6345))
([4926d15](4926d15))
* Updated protocol specs
([#6341](#6341))
([a0f82db](a0f82db))
</details>

<details><summary>barretenberg: 0.39.0</summary>

##
[0.39.0](barretenberg-v0.38.0...barretenberg-v0.39.0)
(2024-05-14)


### ⚠ BREAKING CHANGES

* switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
* specify databus arrays for BB
([#6239](#6239))

### Features

* Avm support for public input columns
([#5700](#5700))
([8cf9168](8cf9168))
* **avm-simulator:** Add to_radix_le instruction
([#6308](#6308))
([6374a32](6374a32))
* Div opcode
([#6053](#6053))
([8e111f8](8e111f8))
* Move to_radix to a blackbox
([#6294](#6294))
([ac27376](ac27376))
* Small translator optimisations
([#6354](#6354))
([ba6c42e](ba6c42e))
* Specify databus arrays for BB
([#6239](#6239))
([01d9f24](01d9f24))
* Structured trace in client ivc
([#6132](#6132))
([92c1478](92c1478))
* Switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
([78adcc0](78adcc0))
* ToRadix BB + avm transpiler support
([#6330](#6330))
([c3c602f](c3c602f))
* **vm:** Reading kernel state opcodes
([#5739](#5739))
([3250a8a](3250a8a))


### Bug Fixes

* Temporarily revert to_radix blackbox
([#6304](#6304))
([044d0fe](044d0fe))


### Miscellaneous

* **dsl:** Update backend gateCount command to query a Program in a
single request
([#6228](#6228))
([8079f60](8079f60))
* Make MSM builder more explicit
([#6110](#6110))
([40306b6](40306b6))
* Remove `bb info` command
([#6276](#6276))
([f0a1c89](f0a1c89))
* Update serialisation
([#6378](#6378))
([527129d](527129d))
</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 May 15, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.39.0](AztecProtocol/aztec-packages@aztec-package-v0.38.0...aztec-package-v0.39.0)
(2024-05-14)


### Features

* **p2p:** GossibSub
([#6170](AztecProtocol/aztec-packages#6170))
([98d32f1](AztecProtocol/aztec-packages@98d32f1)),
closes
[#5055](AztecProtocol/aztec-packages#5055)
* PublicKeys struct
([#6333](AztecProtocol/aztec-packages#6333))
([2633cfc](AztecProtocol/aztec-packages@2633cfc))


### Miscellaneous

* `CompleteAddress` cleanup
([#6300](AztecProtocol/aztec-packages#6300))
([9c30759](AztecProtocol/aztec-packages@9c30759)),
closes
[#5834](AztecProtocol/aztec-packages#5834)
</details>

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

##
[0.39.0](AztecProtocol/aztec-packages@barretenberg.js-v0.38.0...barretenberg.js-v0.39.0)
(2024-05-14)


### ⚠ BREAKING CHANGES

* switch `bb` over to read ACIR from nargo artifacts
([#6283](AztecProtocol/aztec-packages#6283))

### Features

* Switch `bb` over to read ACIR from nargo artifacts
([#6283](AztecProtocol/aztec-packages#6283))
([78adcc0](AztecProtocol/aztec-packages@78adcc0))
</details>

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

##
[0.39.0](AztecProtocol/aztec-packages@aztec-packages-v0.38.0...aztec-packages-v0.39.0)
(2024-05-14)


### ⚠ BREAKING CHANGES

* switch `bb` over to read ACIR from nargo artifacts
([#6283](AztecProtocol/aztec-packages#6283))
* shared mutable configurable delays
([#6104](AztecProtocol/aztec-packages#6104))
* specify databus arrays for BB
([#6239](AztecProtocol/aztec-packages#6239))

### Features

* Add `Not` trait to stdlib
(noir-lang/noir#4999)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* Add support for u16/i16 (noir-lang/noir#4985)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* Avm support for public input columns
([#5700](AztecProtocol/aztec-packages#5700))
([8cf9168](AztecProtocol/aztec-packages@8cf9168))
* **avm-simulator:** Add to_radix_le instruction
([#6308](AztecProtocol/aztec-packages#6308))
([6374a32](AztecProtocol/aztec-packages@6374a32))
* **avm-simulator:** Error stack tracking and enriching in AVM to match
ACVM/ACIR-SIM
([#6289](AztecProtocol/aztec-packages#6289))
([5c1f895](AztecProtocol/aztec-packages@5c1f895))
* **aztec-nr:** Add 'with_gas()' function to avm call interface
([#6256](AztecProtocol/aztec-packages#6256))
([0aedd23](AztecProtocol/aztec-packages@0aedd23))
* **aztec-nr:** Add enqueue functions to AvmCallInterface
([#6264](AztecProtocol/aztec-packages#6264))
([1c74387](AztecProtocol/aztec-packages@1c74387))
* Build-images as earthly.
([#6194](AztecProtocol/aztec-packages#6194))
([67fedf1](AztecProtocol/aztec-packages@67fedf1))
* Div opcode
([#6053](AztecProtocol/aztec-packages#6053))
([8e111f8](AztecProtocol/aztec-packages@8e111f8))
* Encrypted log body
([#6251](AztecProtocol/aztec-packages#6251))
([ba618d5](AztecProtocol/aztec-packages@ba618d5))
* Enforce note hash read requests to read within own contract
([#6310](AztecProtocol/aztec-packages#6310))
([bd10595](AztecProtocol/aztec-packages@bd10595))
* Expose `set_as_fee_payer` and test it in e2e
([#6380](AztecProtocol/aztec-packages#6380))
([a8274f3](AztecProtocol/aztec-packages@a8274f3))
* Implement `ops` traits on `u16`/`i16`
(noir-lang/noir#4996)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* Increase default expression width to 4
(noir-lang/noir#4995)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* Move abi demonomorphizer to noir_codegen and use noir_codegen in
protocol types
([#6302](AztecProtocol/aztec-packages#6302))
([690e500](AztecProtocol/aztec-packages@690e500))
* Move to_radix to a blackbox
([#6294](AztecProtocol/aztec-packages#6294))
([ac27376](AztecProtocol/aztec-packages@ac27376))
* **p2p:** GossibSub
([#6170](AztecProtocol/aztec-packages#6170))
([98d32f1](AztecProtocol/aztec-packages@98d32f1)),
closes
[#5055](AztecProtocol/aztec-packages#5055)
* Plumb fee payer
([#6286](AztecProtocol/aztec-packages#6286))
([1f8fd1c](AztecProtocol/aztec-packages@1f8fd1c))
* Private Kernel Recursion
([#6278](AztecProtocol/aztec-packages#6278))
([eae5822](AztecProtocol/aztec-packages@eae5822))
* Proper padding in ts AES and constrained AES in body and header
computations
([#6269](AztecProtocol/aztec-packages#6269))
([ef9cdde](AztecProtocol/aztec-packages@ef9cdde))
* PublicKeys struct
([#6333](AztecProtocol/aztec-packages#6333))
([2633cfc](AztecProtocol/aztec-packages@2633cfc))
* Re-enabling authwit constraint
([#6323](AztecProtocol/aztec-packages#6323))
([aa06d55](AztecProtocol/aztec-packages@aa06d55)),
closes
[#5830](AztecProtocol/aztec-packages#5830)
* Remove query to backend to get expression width
(noir-lang/noir#4975)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* Replacing mentions to aztec-starter with codespace methods
([#6177](AztecProtocol/aztec-packages#6177))
([63e8788](AztecProtocol/aztec-packages@63e8788))
* Return gas usage per phase from node tx simulation
([#6255](AztecProtocol/aztec-packages#6255))
([fb58dfc](AztecProtocol/aztec-packages@fb58dfc))
* Shared mutable configurable delays
([#6104](AztecProtocol/aztec-packages#6104))
([c191a40](AztecProtocol/aztec-packages@c191a40))
* Small translator optimisations
([#6354](AztecProtocol/aztec-packages#6354))
([ba6c42e](AztecProtocol/aztec-packages@ba6c42e))
* Specify databus arrays for BB
([#6239](AztecProtocol/aztec-packages#6239))
([01d9f24](AztecProtocol/aztec-packages@01d9f24))
* Structured trace in client ivc
([#6132](AztecProtocol/aztec-packages#6132))
([92c1478](AztecProtocol/aztec-packages@92c1478))
* Switch `bb` over to read ACIR from nargo artifacts
([#6283](AztecProtocol/aztec-packages#6283))
([78adcc0](AztecProtocol/aztec-packages@78adcc0))
* Sync from aztec-packages (noir-lang/noir#4993)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* ToRadix BB + avm transpiler support
([#6330](AztecProtocol/aztec-packages#6330))
([c3c602f](AztecProtocol/aztec-packages@c3c602f))
* **vm:** Reading kernel state opcodes
([#5739](AztecProtocol/aztec-packages#5739))
([3250a8a](AztecProtocol/aztec-packages@3250a8a))


### Bug Fixes

* `CombinedConstantData` not registered for serialization
([#6292](AztecProtocol/aztec-packages#6292))
([89ab8ee](AztecProtocol/aztec-packages@89ab8ee))
* **avm-context:** Enqueueing of public from private
([#6299](AztecProtocol/aztec-packages#6299))
([bd2ccf0](AztecProtocol/aztec-packages@bd2ccf0))
* **avm-simulator:** Always set revertReason when reverting
([#6297](AztecProtocol/aztec-packages#6297))
([cc59981](AztecProtocol/aztec-packages@cc59981))
* **avm-simulator:** Correctly create call stack in shallow assertions
([#6274](AztecProtocol/aztec-packages#6274))
([f6045fd](AztecProtocol/aztec-packages@f6045fd))
* **avm-simulator:** Fix env getters
([#6357](AztecProtocol/aztec-packages#6357))
([485fe40](AztecProtocol/aztec-packages@485fe40))
* **avm-simulator:** Fix message sender
([#6331](AztecProtocol/aztec-packages#6331))
([f7e2d26](AztecProtocol/aztec-packages@f7e2d26))
* **avm-simulator:** Fix test expectation
([#6293](AztecProtocol/aztec-packages#6293))
([f51acfa](AztecProtocol/aztec-packages@f51acfa))
* **avm-simulator:** Rethrow nested assertions
([#6275](AztecProtocol/aztec-packages#6275))
([cd05b91](AztecProtocol/aztec-packages@cd05b91))
* **avm-transpiler:** Patch debug infos with modified PCs
([#6371](AztecProtocol/aztec-packages#6371))
([c36f0fa](AztecProtocol/aztec-packages@c36f0fa))
* Check for public args in aztec functions
([#6355](AztecProtocol/aztec-packages#6355))
([219efd6](AztecProtocol/aztec-packages@219efd6))
* **ci:** Bench list
([#6282](AztecProtocol/aztec-packages#6282))
([2652576](AztecProtocol/aztec-packages@2652576))
* **circuits.js:** Fix nullifier non existent hints
([#6346](AztecProtocol/aztec-packages#6346))
([297779a](AztecProtocol/aztec-packages@297779a))
* **ci:** Stop mass serialization
([#6290](AztecProtocol/aztec-packages#6290))
([60104e9](AztecProtocol/aztec-packages@60104e9))
* Defer overflow checks for unsigned integers to acir-gen
(noir-lang/noir#4832)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* Enable client proof tests
([#6249](AztecProtocol/aztec-packages#6249))
([6d3a800](AztecProtocol/aztec-packages@6d3a800))
* Ignore no_predicates in brillig functions
(noir-lang/noir#5012)
([3cda21a](AztecProtocol/aztec-packages@3cda21a))
* Noir_js import
([#6381](AztecProtocol/aztec-packages#6381))
([e9c7e5f](AztecProtocol/aztec-packages@e9c7e5f))
* Pw/update merge check
([#6201](AztecProtocol/aztec-packages#6201))
([856657f](AztecProtocol/aztec-packages@856657f))
* Run noir browser tests in series
([#6232](AztecProtocol/aztec-packages#6232))
([e092514](AztecProtocol/aztec-packages@e092514))
* Temporarily revert to_radix blackbox
([#6304](AztecProtocol/aztec-packages#6304))
([044d0fe](AztecProtocol/aztec-packages@044d0fe))


### Miscellaneous

* `CompleteAddress` cleanup
([#6300](AztecProtocol/aztec-packages#6300))
([9c30759](AztecProtocol/aztec-packages@9c30759)),
closes
[#5834](AztecProtocol/aztec-packages#5834)
* Adding name shadowing tests template program
(noir-lang/noir#4799)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* **avm-context:** Implement Empty
([#6303](AztecProtocol/aztec-packages#6303))
([27534ac](AztecProtocol/aztec-packages@27534ac))
* **avm-simulator:** Add U128 overflow tests to AVM simulator
([#6281](AztecProtocol/aztec-packages#6281))
([5514143](AztecProtocol/aztec-packages@5514143))
* Bump public bytecode size to 40000 in prep for AVM migration
([#6266](AztecProtocol/aztec-packages#6266))
([2b61123](AztecProtocol/aztec-packages@2b61123))
* Bump timeout for after-hook for data store test
([#6364](AztecProtocol/aztec-packages#6364))
([18eca39](AztecProtocol/aztec-packages@18eca39))
* **ci:** Fix master, better spot copy times
([#6374](AztecProtocol/aztec-packages#6374))
([fee7649](AztecProtocol/aztec-packages@fee7649))
* **ci:** Hotfix runner checks
([#6373](AztecProtocol/aztec-packages#6373))
([d5fd668](AztecProtocol/aztec-packages@d5fd668))
* **ci:** Reuse ssh connections
([#6382](AztecProtocol/aztec-packages#6382))
([5f6c31e](AztecProtocol/aztec-packages@5f6c31e))
* **ci:** Revert inline cache push for now
([#6318](AztecProtocol/aztec-packages#6318))
([4c9bfb0](AztecProtocol/aztec-packages@4c9bfb0))
* **ci:** Run clippy on benchmarks
(noir-lang/noir#4988)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* **ci:** Run e2e on isolated spots
([#6287](AztecProtocol/aztec-packages#6287))
([e7d2dd6](AztecProtocol/aztec-packages@e7d2dd6))
* **ci:** Spot health fix, earthly workarounds
([#6379](AztecProtocol/aztec-packages#6379))
([da7573c](AztecProtocol/aztec-packages@da7573c))
* **ci:** Stability after spot changes
([#6367](AztecProtocol/aztec-packages#6367))
([7ad4179](AztecProtocol/aztec-packages@7ad4179))
* **ci:** Use on-demand runners
([#6311](AztecProtocol/aztec-packages#6311))
([dba835d](AztecProtocol/aztec-packages@dba835d))
* Deploying accounts after key registry
([#6322](AztecProtocol/aztec-packages#6322))
([84878d1](AztecProtocol/aztec-packages@84878d1))
* Disable `gates_report.yml`
(noir-lang/noir#4997)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* **docs:** Update contract deployments page
([#6319](AztecProtocol/aztec-packages#6319))
([2e331b5](AztecProtocol/aztec-packages@2e331b5))
* **dsl:** Update backend gateCount command to query a Program in a
single request
([#6228](AztecProtocol/aztec-packages#6228))
([8079f60](AztecProtocol/aztec-packages@8079f60))
* Enforce formatting of noir code
([#6271](AztecProtocol/aztec-packages#6271))
([356f7bb](AztecProtocol/aztec-packages@356f7bb))
* **experimental:** Add compiler option to enable the Elaborator
(noir-lang/noir#5003)
([3cda21a](AztecProtocol/aztec-packages@3cda21a))
* **experimental:** Add Elaborator pass
(noir-lang/noir#4992)
([3cda21a](AztecProtocol/aztec-packages@3cda21a))
* Make coinbase and fee_recipient inaccessible
([#6375](AztecProtocol/aztec-packages#6375))
([ded28b7](AztecProtocol/aztec-packages@ded28b7))
* Make MSM builder more explicit
([#6110](AztecProtocol/aztec-packages#6110))
([40306b6](AztecProtocol/aztec-packages@40306b6))
* Pw/refactor bb prover
([#6349](AztecProtocol/aztec-packages#6349))
([8eb0398](AztecProtocol/aztec-packages@8eb0398))
* Remove `bb info` command
([#6276](AztecProtocol/aztec-packages#6276))
([f0a1c89](AztecProtocol/aztec-packages@f0a1c89))
* Replace relative paths to noir-protocol-circuits
([fd40d99](AztecProtocol/aztec-packages@fd40d99))
* Replace relative paths to noir-protocol-circuits
([53dbcb5](AztecProtocol/aztec-packages@53dbcb5))
* Replace relative paths to noir-protocol-circuits
([48e07c3](AztecProtocol/aztec-packages@48e07c3))
* Replace relative paths to noir-protocol-circuits
([6532725](AztecProtocol/aztec-packages@6532725))
* Replace relative paths to noir-protocol-circuits
([8330f70](AztecProtocol/aztec-packages@8330f70))
* Replace relative paths to noir-protocol-circuits
([484741a](AztecProtocol/aztec-packages@484741a))
* Replacing old pub key oracle with get_ivpk_m
([#6219](AztecProtocol/aztec-packages#6219))
([9acc9ec](AztecProtocol/aztec-packages@9acc9ec))
* Siloing in tails
([#6167](AztecProtocol/aztec-packages#6167))
([c20dd50](AztecProtocol/aztec-packages@c20dd50))
* Simplify nargo CLI to read from artifacts
([#6279](AztecProtocol/aztec-packages#6279))
([b2c019b](AztecProtocol/aztec-packages@b2c019b))
* Skip formatting informattable comments
([#6288](AztecProtocol/aztec-packages#6288))
([95b499b](AztecProtocol/aztec-packages@95b499b))
* Split `ops` into `arith` and `bit` modules
(noir-lang/noir#4989)
([11cde44](AztecProtocol/aztec-packages@11cde44))
* **test-contracts:** Prepare e2e_token_contract+ error msgs for AVM
migration
([#6307](AztecProtocol/aztec-packages#6307))
([0c20f44](AztecProtocol/aztec-packages@0c20f44))
* Update cspell for abi demonomorphizer
([#6258](AztecProtocol/aztec-packages#6258))
([ce2d43c](AztecProtocol/aztec-packages@ce2d43c))
* Update serialisation
([#6378](AztecProtocol/aztec-packages#6378))
([527129d](AztecProtocol/aztec-packages@527129d))
* Validating private call data
([#6316](AztecProtocol/aztec-packages#6316))
([84b9fcd](AztecProtocol/aztec-packages@84b9fcd))


### Documentation

* Call types
([#5472](AztecProtocol/aztec-packages#5472))
([1ca0d28](AztecProtocol/aztec-packages@1ca0d28))
* Re-add and update accounts docs
([#6345](AztecProtocol/aztec-packages#6345))
([4926d15](AztecProtocol/aztec-packages@4926d15))
* Updated protocol specs
([#6341](AztecProtocol/aztec-packages#6341))
([a0f82db](AztecProtocol/aztec-packages@a0f82db))
</details>

<details><summary>barretenberg: 0.39.0</summary>

##
[0.39.0](AztecProtocol/aztec-packages@barretenberg-v0.38.0...barretenberg-v0.39.0)
(2024-05-14)


### ⚠ BREAKING CHANGES

* switch `bb` over to read ACIR from nargo artifacts
([#6283](AztecProtocol/aztec-packages#6283))
* specify databus arrays for BB
([#6239](AztecProtocol/aztec-packages#6239))

### Features

* Avm support for public input columns
([#5700](AztecProtocol/aztec-packages#5700))
([8cf9168](AztecProtocol/aztec-packages@8cf9168))
* **avm-simulator:** Add to_radix_le instruction
([#6308](AztecProtocol/aztec-packages#6308))
([6374a32](AztecProtocol/aztec-packages@6374a32))
* Div opcode
([#6053](AztecProtocol/aztec-packages#6053))
([8e111f8](AztecProtocol/aztec-packages@8e111f8))
* Move to_radix to a blackbox
([#6294](AztecProtocol/aztec-packages#6294))
([ac27376](AztecProtocol/aztec-packages@ac27376))
* Small translator optimisations
([#6354](AztecProtocol/aztec-packages#6354))
([ba6c42e](AztecProtocol/aztec-packages@ba6c42e))
* Specify databus arrays for BB
([#6239](AztecProtocol/aztec-packages#6239))
([01d9f24](AztecProtocol/aztec-packages@01d9f24))
* Structured trace in client ivc
([#6132](AztecProtocol/aztec-packages#6132))
([92c1478](AztecProtocol/aztec-packages@92c1478))
* Switch `bb` over to read ACIR from nargo artifacts
([#6283](AztecProtocol/aztec-packages#6283))
([78adcc0](AztecProtocol/aztec-packages@78adcc0))
* ToRadix BB + avm transpiler support
([#6330](AztecProtocol/aztec-packages#6330))
([c3c602f](AztecProtocol/aztec-packages@c3c602f))
* **vm:** Reading kernel state opcodes
([#5739](AztecProtocol/aztec-packages#5739))
([3250a8a](AztecProtocol/aztec-packages@3250a8a))


### Bug Fixes

* Temporarily revert to_radix blackbox
([#6304](AztecProtocol/aztec-packages#6304))
([044d0fe](AztecProtocol/aztec-packages@044d0fe))


### Miscellaneous

* **dsl:** Update backend gateCount command to query a Program in a
single request
([#6228](AztecProtocol/aztec-packages#6228))
([8079f60](AztecProtocol/aztec-packages@8079f60))
* Make MSM builder more explicit
([#6110](AztecProtocol/aztec-packages#6110))
([40306b6](AztecProtocol/aztec-packages@40306b6))
* Remove `bb info` command
([#6276](AztecProtocol/aztec-packages#6276))
([f0a1c89](AztecProtocol/aztec-packages@f0a1c89))
* Update serialisation
([#6378](AztecProtocol/aztec-packages#6378))
([527129d](AztecProtocol/aztec-packages@527129d))
</details>

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


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

##
[0.39.0](aztec-package-v0.38.0...aztec-package-v0.39.0)
(2024-05-14)


### Features

* **p2p:** GossibSub
([#6170](#6170))
([98d32f1](98d32f1)),
closes
[#5055](#5055)
* PublicKeys struct
([#6333](#6333))
([2633cfc](2633cfc))


### Miscellaneous

* `CompleteAddress` cleanup
([#6300](#6300))
([9c30759](9c30759)),
closes
[#5834](#5834)
</details>

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

##
[0.39.0](barretenberg.js-v0.38.0...barretenberg.js-v0.39.0)
(2024-05-14)


### ⚠ BREAKING CHANGES

* switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))

### Features

* Switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
([78adcc0](78adcc0))
</details>

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

##
[0.39.0](aztec-packages-v0.38.0...aztec-packages-v0.39.0)
(2024-05-14)


### ⚠ BREAKING CHANGES

* switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
* shared mutable configurable delays
([#6104](#6104))
* specify databus arrays for BB
([#6239](#6239))

### Features

* Add `Not` trait to stdlib
(noir-lang/noir#4999)
([11cde44](11cde44))
* Add support for u16/i16 (noir-lang/noir#4985)
([11cde44](11cde44))
* Avm support for public input columns
([#5700](#5700))
([8cf9168](8cf9168))
* **avm-simulator:** Add to_radix_le instruction
([#6308](#6308))
([6374a32](6374a32))
* **avm-simulator:** Error stack tracking and enriching in AVM to match
ACVM/ACIR-SIM
([#6289](#6289))
([5c1f895](5c1f895))
* **aztec-nr:** Add 'with_gas()' function to avm call interface
([#6256](#6256))
([0aedd23](0aedd23))
* **aztec-nr:** Add enqueue functions to AvmCallInterface
([#6264](#6264))
([1c74387](1c74387))
* Build-images as earthly.
([#6194](#6194))
([67fedf1](67fedf1))
* Div opcode
([#6053](#6053))
([8e111f8](8e111f8))
* Encrypted log body
([#6251](#6251))
([ba618d5](ba618d5))
* Enforce note hash read requests to read within own contract
([#6310](#6310))
([bd10595](bd10595))
* Expose `set_as_fee_payer` and test it in e2e
([#6380](#6380))
([a8274f3](a8274f3))
* Implement `ops` traits on `u16`/`i16`
(noir-lang/noir#4996)
([11cde44](11cde44))
* Increase default expression width to 4
(noir-lang/noir#4995)
([11cde44](11cde44))
* Move abi demonomorphizer to noir_codegen and use noir_codegen in
protocol types
([#6302](#6302))
([690e500](690e500))
* Move to_radix to a blackbox
([#6294](#6294))
([ac27376](ac27376))
* **p2p:** GossibSub
([#6170](#6170))
([98d32f1](98d32f1)),
closes
[#5055](#5055)
* Plumb fee payer
([#6286](#6286))
([1f8fd1c](1f8fd1c))
* Private Kernel Recursion
([#6278](#6278))
([eae5822](eae5822))
* Proper padding in ts AES and constrained AES in body and header
computations
([#6269](#6269))
([ef9cdde](ef9cdde))
* PublicKeys struct
([#6333](#6333))
([2633cfc](2633cfc))
* Re-enabling authwit constraint
([#6323](#6323))
([aa06d55](aa06d55)),
closes
[#5830](#5830)
* Remove query to backend to get expression width
(noir-lang/noir#4975)
([11cde44](11cde44))
* Replacing mentions to aztec-starter with codespace methods
([#6177](#6177))
([63e8788](63e8788))
* Return gas usage per phase from node tx simulation
([#6255](#6255))
([fb58dfc](fb58dfc))
* Shared mutable configurable delays
([#6104](#6104))
([c191a40](c191a40))
* Small translator optimisations
([#6354](#6354))
([ba6c42e](ba6c42e))
* Specify databus arrays for BB
([#6239](#6239))
([01d9f24](01d9f24))
* Structured trace in client ivc
([#6132](#6132))
([92c1478](92c1478))
* Switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
([78adcc0](78adcc0))
* Sync from aztec-packages (noir-lang/noir#4993)
([11cde44](11cde44))
* ToRadix BB + avm transpiler support
([#6330](#6330))
([c3c602f](c3c602f))
* **vm:** Reading kernel state opcodes
([#5739](#5739))
([3250a8a](3250a8a))


### Bug Fixes

* `CombinedConstantData` not registered for serialization
([#6292](#6292))
([89ab8ee](89ab8ee))
* **avm-context:** Enqueueing of public from private
([#6299](#6299))
([bd2ccf0](bd2ccf0))
* **avm-simulator:** Always set revertReason when reverting
([#6297](#6297))
([cc59981](cc59981))
* **avm-simulator:** Correctly create call stack in shallow assertions
([#6274](#6274))
([f6045fd](f6045fd))
* **avm-simulator:** Fix env getters
([#6357](#6357))
([485fe40](485fe40))
* **avm-simulator:** Fix message sender
([#6331](#6331))
([f7e2d26](f7e2d26))
* **avm-simulator:** Fix test expectation
([#6293](#6293))
([f51acfa](f51acfa))
* **avm-simulator:** Rethrow nested assertions
([#6275](#6275))
([cd05b91](cd05b91))
* **avm-transpiler:** Patch debug infos with modified PCs
([#6371](#6371))
([c36f0fa](c36f0fa))
* Check for public args in aztec functions
([#6355](#6355))
([219efd6](219efd6))
* **ci:** Bench list
([#6282](#6282))
([2652576](2652576))
* **circuits.js:** Fix nullifier non existent hints
([#6346](#6346))
([297779a](297779a))
* **ci:** Stop mass serialization
([#6290](#6290))
([60104e9](60104e9))
* Defer overflow checks for unsigned integers to acir-gen
(noir-lang/noir#4832)
([11cde44](11cde44))
* Enable client proof tests
([#6249](#6249))
([6d3a800](6d3a800))
* Ignore no_predicates in brillig functions
(noir-lang/noir#5012)
([3cda21a](3cda21a))
* Noir_js import
([#6381](#6381))
([e9c7e5f](e9c7e5f))
* Pw/update merge check
([#6201](#6201))
([856657f](856657f))
* Run noir browser tests in series
([#6232](#6232))
([e092514](e092514))
* Temporarily revert to_radix blackbox
([#6304](#6304))
([044d0fe](044d0fe))


### Miscellaneous

* `CompleteAddress` cleanup
([#6300](#6300))
([9c30759](9c30759)),
closes
[#5834](#5834)
* Adding name shadowing tests template program
(noir-lang/noir#4799)
([11cde44](11cde44))
* **avm-context:** Implement Empty
([#6303](#6303))
([27534ac](27534ac))
* **avm-simulator:** Add U128 overflow tests to AVM simulator
([#6281](#6281))
([5514143](5514143))
* Bump public bytecode size to 40000 in prep for AVM migration
([#6266](#6266))
([2b61123](2b61123))
* Bump timeout for after-hook for data store test
([#6364](#6364))
([18eca39](18eca39))
* **ci:** Fix master, better spot copy times
([#6374](#6374))
([fee7649](fee7649))
* **ci:** Hotfix runner checks
([#6373](#6373))
([d5fd668](d5fd668))
* **ci:** Reuse ssh connections
([#6382](#6382))
([5f6c31e](5f6c31e))
* **ci:** Revert inline cache push for now
([#6318](#6318))
([4c9bfb0](4c9bfb0))
* **ci:** Run clippy on benchmarks
(noir-lang/noir#4988)
([11cde44](11cde44))
* **ci:** Run e2e on isolated spots
([#6287](#6287))
([e7d2dd6](e7d2dd6))
* **ci:** Spot health fix, earthly workarounds
([#6379](#6379))
([da7573c](da7573c))
* **ci:** Stability after spot changes
([#6367](#6367))
([7ad4179](7ad4179))
* **ci:** Use on-demand runners
([#6311](#6311))
([dba835d](dba835d))
* Deploying accounts after key registry
([#6322](#6322))
([84878d1](84878d1))
* Disable `gates_report.yml`
(noir-lang/noir#4997)
([11cde44](11cde44))
* **docs:** Update contract deployments page
([#6319](#6319))
([2e331b5](2e331b5))
* **dsl:** Update backend gateCount command to query a Program in a
single request
([#6228](#6228))
([8079f60](8079f60))
* Enforce formatting of noir code
([#6271](#6271))
([356f7bb](356f7bb))
* **experimental:** Add compiler option to enable the Elaborator
(noir-lang/noir#5003)
([3cda21a](3cda21a))
* **experimental:** Add Elaborator pass
(noir-lang/noir#4992)
([3cda21a](3cda21a))
* Make coinbase and fee_recipient inaccessible
([#6375](#6375))
([ded28b7](ded28b7))
* Make MSM builder more explicit
([#6110](#6110))
([40306b6](40306b6))
* Pw/refactor bb prover
([#6349](#6349))
([8eb0398](8eb0398))
* Remove `bb info` command
([#6276](#6276))
([f0a1c89](f0a1c89))
* Replace relative paths to noir-protocol-circuits
([fd40d99](fd40d99))
* Replace relative paths to noir-protocol-circuits
([53dbcb5](53dbcb5))
* Replace relative paths to noir-protocol-circuits
([48e07c3](48e07c3))
* Replace relative paths to noir-protocol-circuits
([6532725](6532725))
* Replace relative paths to noir-protocol-circuits
([8330f70](8330f70))
* Replace relative paths to noir-protocol-circuits
([484741a](484741a))
* Replacing old pub key oracle with get_ivpk_m
([#6219](#6219))
([9acc9ec](9acc9ec))
* Siloing in tails
([#6167](#6167))
([c20dd50](c20dd50))
* Simplify nargo CLI to read from artifacts
([#6279](#6279))
([b2c019b](b2c019b))
* Skip formatting informattable comments
([#6288](#6288))
([95b499b](95b499b))
* Split `ops` into `arith` and `bit` modules
(noir-lang/noir#4989)
([11cde44](11cde44))
* **test-contracts:** Prepare e2e_token_contract+ error msgs for AVM
migration
([#6307](#6307))
([0c20f44](0c20f44))
* Update cspell for abi demonomorphizer
([#6258](#6258))
([ce2d43c](ce2d43c))
* Update serialisation
([#6378](#6378))
([527129d](527129d))
* Validating private call data
([#6316](#6316))
([84b9fcd](84b9fcd))


### Documentation

* Call types
([#5472](#5472))
([1ca0d28](1ca0d28))
* Re-add and update accounts docs
([#6345](#6345))
([4926d15](4926d15))
* Updated protocol specs
([#6341](#6341))
([a0f82db](a0f82db))
</details>

<details><summary>barretenberg: 0.39.0</summary>

##
[0.39.0](barretenberg-v0.38.0...barretenberg-v0.39.0)
(2024-05-14)


### ⚠ BREAKING CHANGES

* switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
* specify databus arrays for BB
([#6239](#6239))

### Features

* Avm support for public input columns
([#5700](#5700))
([8cf9168](8cf9168))
* **avm-simulator:** Add to_radix_le instruction
([#6308](#6308))
([6374a32](6374a32))
* Div opcode
([#6053](#6053))
([8e111f8](8e111f8))
* Move to_radix to a blackbox
([#6294](#6294))
([ac27376](ac27376))
* Small translator optimisations
([#6354](#6354))
([ba6c42e](ba6c42e))
* Specify databus arrays for BB
([#6239](#6239))
([01d9f24](01d9f24))
* Structured trace in client ivc
([#6132](#6132))
([92c1478](92c1478))
* Switch `bb` over to read ACIR from nargo artifacts
([#6283](#6283))
([78adcc0](78adcc0))
* ToRadix BB + avm transpiler support
([#6330](#6330))
([c3c602f](c3c602f))
* **vm:** Reading kernel state opcodes
([#5739](#5739))
([3250a8a](3250a8a))


### Bug Fixes

* Temporarily revert to_radix blackbox
([#6304](#6304))
([044d0fe](044d0fe))


### Miscellaneous

* **dsl:** Update backend gateCount command to query a Program in a
single request
([#6228](#6228))
([8079f60](8079f60))
* Make MSM builder more explicit
([#6110](#6110))
([40306b6](40306b6))
* Remove `bb info` command
([#6276](#6276))
([f0a1c89](f0a1c89))
* Update serialisation
([#6378](#6378))
([527129d](527129d))
</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.

4 participants