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(perf): speed up TS AVM core simulator #11794

Merged
merged 1 commit into from
Feb 7, 2025
Merged

feat(perf): speed up TS AVM core simulator #11794

merged 1 commit into from
Feb 7, 2025

Conversation

dbanks12
Copy link
Collaborator

@dbanks12 dbanks12 commented Feb 6, 2025

Summary

This PR cleans up and optimizes the core AVM instruction execution. This does NOT include any optimizations to merkle/db-access opcodes, but instead the optimizations are meant to speed up apps that execute a huge number of small opcodes.

Testing

To test this PR, I ran sha256 of 2048 bytes, which executes 163,760 instructions (primarily MOV, ADD, LT, EQ). These instructions do very little other than charge gas, load/store memory, check memory tags, and logger.trace().

66% speed improvement

This is of course for a test of only the core simulator that runs a massive loop of 160k simple instructions.

Runtime on master (1402ms):
image

Runtime after optimizations (478ms):
image

Less improvements for token operations

Token operations don't have the sheer number of instructions of a sha256(2048), so they don't benefit as drastically from these speedups. Below are the improvements for combined token mint/transfer/burn/check-balance.

THIS MIGHT MEAN THAT THE IMPROVEMENTS WON'T BE NOTICEABLE FOR DEVNET/TESTNET

Runtime on master (736ms)
image

Runtime after optimizations (537ms)
image

Details

  1. Cache deserialized instructions by PC
  2. Comment out logger.trace()s happening for every memory get/set
  3. Simplify tracking of multiple gas dimensions to use hardcoded l2gas and dagas to stop doing string formatting and reflection on every gas operation
  4. Remove MeteredTaggedMemory which would only be needed if we want to charge gas per memory access
  5. Change checkTagsAreSame to operate on exactly 2 offsets instead of N since it is only ever used on 2
  6. Use a static Map to get a MemoryValue's tag from it's constructor name instead of a long if-else chain.
  7. Use a static Set to check whether a tag is valid or integral
  8. During address resolution, don't keep re-validating and re-getting base memory offset 0 for each loop iteration
  9. Misc optimizations like combining adjacent asserts

@dbanks12 dbanks12 requested a review from fcarreiro as a code owner February 6, 2025 19:46
Copy link
Collaborator Author

dbanks12 commented Feb 6, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

Copy link
Contributor

github-actions bot commented Feb 6, 2025

Changes to public function bytecode sizes

Generated at commit: 78e9cc3c76520f97109ee3e908f911c8a8b7c03e, compared to commit: f8448bfb9d2353116e270c22449d1d1960adf683

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
AvmTest::public_dispatch -11,098 ✅ -15.93%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
AvmTest::public_dispatch 58,583 (-11,098) -15.93%

Copy link
Contributor

@fcarreiro fcarreiro left a comment

Choose a reason for hiding this comment

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

Could you add to the description what the changes were and, most importantly, the speedup you got? :)

Will do a real review tomorrow

@fcarreiro fcarreiro self-requested a review February 6, 2025 22:49
Comment on lines -300 to -335
<<<<<<< HEAD
=======
* Hashing functions
************************************************************************/
#[public]
fn keccak_hash(data: [u8; 10]) -> [u8; 32] {
std::hash::keccak256(data, data.len() as u32)
}

#[public]
fn keccak_f1600(data: [u64; 25]) -> [u64; 25] {
std::hash::keccak::keccakf1600(data)
}

#[public]
fn poseidon2_hash(data: [Field; 10]) -> Field {
std::hash::poseidon2::Poseidon2::hash(data, data.len())
}

#[public]
fn sha256_hash(data: [u8; 10]) -> [u8; 32] {
sha256::digest(data)
}

#[public]
fn pedersen_hash(data: [Field; 10]) -> Field {
std::hash::pedersen_hash(data)
}

#[public]
fn pedersen_hash_with_index(data: [Field; 10]) -> Field {
std::hash::pedersen_hash_with_separator(data, /*index=*/ 20)
}

/************************************************************************
>>>>>>> master
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Cleanup from a previous PR

Copy link
Contributor

@fcarreiro fcarreiro left a comment

Choose a reason for hiding this comment

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

LGTM but please add the things I mentioned to the description

@dbanks12 dbanks12 changed the title chore: speed up AVM TS simulator feat(perf): speed up AVM TS simulator Feb 7, 2025
@dbanks12 dbanks12 changed the title feat(perf): speed up AVM TS simulator feat(perf): speed up TS AVM core simulator Feb 7, 2025
@dbanks12 dbanks12 merged commit bb58c87 into master Feb 7, 2025
58 checks passed
@dbanks12 dbanks12 deleted the db/avm-ts-opts branch February 7, 2025 09:53
sklppy88 pushed a commit that referenced this pull request Feb 10, 2025
🤖 I have created a release *beep* *boop*
---


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

##
[0.76.0](aztec-package-v0.75.0...aztec-package-v0.76.0)
(2025-02-10)


### Features

* **spartan:** Blob sink in spartan
([#11307](#11307))
([d8e5bcc](d8e5bcc))


### Miscellaneous

* Check versioning
([#11611](#11611))
([b33f1da](b33f1da))
* **p2p:** Remove min peers option
([#11789](#11789))
([cfb6797](cfb6797))
</details>

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

##
[0.76.0](barretenberg.js-v0.75.0...barretenberg.js-v0.76.0)
(2025-02-10)


### Bug Fixes

* **bb.js:** Make wasm imports bundleable
([#11812](#11812))
([1af69a9](1af69a9))
* Remove unnecessary console.log
([#11810](#11810))
([8a320bf](8a320bf))
</details>

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

##
[0.76.0](aztec-packages-v0.75.0...aztec-packages-v0.76.0)
(2025-02-10)


### ⚠ BREAKING CHANGES

* check abi integer input is within signed range
(noir-lang/noir#7316)
* using `WithHash<T>` in `SharedMutable` + fixing slot allocation
([#11716](#11716))

### Features

* `assert` and `assert_eq` are now expressions
(noir-lang/noir#7313)
([b883911](b883911))
* `assert` and `assert_eq` are now expressions
(noir-lang/noir#7313)
([3840e8e](3840e8e))
* **avm:** Add skippable condition for interactions
([#11800](#11800))
([67aec61](67aec61))
* **avm:** Range check opt via aliases
([#11846](#11846))
([ce6a5bf](ce6a5bf))
* **avm:** Restrict bytecode bytes
([#11798](#11798))
([be382bc](be382bc))
* **aztec-nr:** Do not compile functions with a private public macro and
unconstrained
([#11815](#11815))
([afb52e3](afb52e3))
* **blob-lib:** Make blob lib and fix encoding test flake
([#11782](#11782))
([753f505](753f505))
* Broker sends back job after accepting result
([#11754](#11754))
([62e5de7](62e5de7))
* **docs:** Notes page
([#11746](#11746))
([117200e](117200e))
* **docs:** Reindex typesense in CI
([#11791](#11791))
([6af8d54](6af8d54))
* Infer lambda parameter types from return type and let type
(noir-lang/noir#7267)
([b883911](b883911))
* Infer lambda parameter types from return type and let type
(noir-lang/noir#7267)
([3840e8e](3840e8e))
* Optimizing contract with config pattern
([#11756](#11756))
([7820cb7](7820cb7))
* **p2p:** Test bench scaffold
([#11758](#11758))
([48dc491](48dc491))
* Partial note handling in aztec-nr
([#11641](#11641))
([1c1a33b](1c1a33b))
* **perf:** Speed up TS AVM core simulator
([#11794](#11794))
([bb58c87](bb58c87))
* **reqresp:** Send status messages along with reqresp responses
([#11727](#11727))
([b212490](b212490))
* Simplify `Ord` implementation for arrays
(noir-lang/noir#7305)
([b883911](b883911))
* Simplify `Ord` implementation for arrays
(noir-lang/noir#7305)
([3840e8e](3840e8e))
* **spartan:** Blob sink in spartan
([#11307](#11307))
([d8e5bcc](d8e5bcc))
* Suport deploying contracts with public keys in txe
([#11882](#11882))
([94bdc85](94bdc85)),
closes
[#11881](#11881)
* Sync from aztec-packages (noir-lang/noir#7293)
([b883911](b883911))
* Sync from aztec-packages (noir-lang/noir#7293)
([3840e8e](3840e8e))
* Trust tree roots from the AVM in public base
([#11823](#11823))
([5d12f94](5d12f94))
* Using `WithHash&lt;T&gt;` in `SharedMutable` + fixing slot allocation
([#11716](#11716))
([952615b](952615b))


### Bug Fixes

* Add missing return in main
([#11786](#11786))
([8c1d477](8c1d477))
* Allows for infinite brillig loops
(noir-lang/noir#7296)
([b883911](b883911))
* Always normalize ssa when priting at least one pass
(noir-lang/noir#7299)
([b883911](b883911))
* Always normalize ssa when priting at least one pass
(noir-lang/noir#7299)
([3840e8e](3840e8e))
* Avoid recomputing contractclassid
([#11783](#11783))
([f8448bf](f8448bf))
* Avoid stack overflow on many comments in a row
(noir-lang/noir#7325)
([b883911](b883911))
* Aztec wallet partial address display on deployment
([#11866](#11866))
([eef5302](eef5302)),
closes
[#11864](#11864)
* **bb.js:** Make wasm imports bundleable
([#11812](#11812))
([1af69a9](1af69a9))
* Beacon chain doesn't eat mainframe
([#11854](#11854))
([ebbdbc7](ebbdbc7))
* Check abi integer input is within signed range
(noir-lang/noir#7316)
([b883911](b883911))
* **ci:** Enforce boxes-test on merge
([#11841](#11841))
([e26a288](e26a288))
* Downgrade to mainframe-compatible KIND
([#11883](#11883))
([9239b4f](9239b4f))
* Error on if without else when type mismatch
(noir-lang/noir#7302)
([b883911](b883911))
* Error on if without else when type mismatch
(noir-lang/noir#7302)
([3840e8e](3840e8e))
* Error on trailing doc comment
(noir-lang/noir#7300)
([b883911](b883911))
* Error on trailing doc comment
(noir-lang/noir#7300)
([3840e8e](3840e8e))
* Formatting in master
([#11879](#11879))
([fff0f04](fff0f04))
* Mark field division and modulo as requiring predicate for all
necessary types (noir-lang/noir#7290)
([b883911](b883911))
* Mark field division and modulo as requiring predicate for all
necessary types (noir-lang/noir#7290)
([3840e8e](3840e8e))
* Playground use new unbundled aztec.js
([#11780](#11780))
([fe2b666](fe2b666))
* Prover-client test
([#11853](#11853))
([e950c76](e950c76))
* Publish telemetry-client
([#11777](#11777))
([8634f6e](8634f6e))
* Pxe release
([#11877](#11877))
([4c0d2f2](4c0d2f2))
* Re exposing intent inner hash
([#11865](#11865))
([9638792](9638792)),
closes
[#11795](#11795)
* Remove unnecessary console.log
([#11810](#11810))
([8a320bf](8a320bf))
* Revert "feat: partial note handling in aztec-nr
([#11641](#11641))"
([#11797](#11797))
([c5c3f09](c5c3f09))
* Skip orchestrator_workflow test (see
[#11870](#11870))
([#11872](#11872))
([f8e7e4e](f8e7e4e))
* Skip vite browser test until
[#11874](#11874)
([#11876](#11876))
([e1adf23](e1adf23))
* **ssa:** Unused functions removals post folding constant Brillig calls
(noir-lang/noir#7265)
([b883911](b883911))
* **ssa:** Unused functions removals post folding constant Brillig calls
(noir-lang/noir#7265)
([3840e8e](3840e8e))
* Tracy run
([#11819](#11819))
([fde135d](fde135d))
* Txe block headers
([#11710](#11710))
([4f6b76f](4f6b76f))


### Miscellaneous

* Add sha256 library to test suite
(noir-lang/noir#7278)
([b883911](b883911))
* Add sha256 library to test suite
(noir-lang/noir#7278)
([3840e8e](3840e8e))
* Add timeouts to reports CI
(noir-lang/noir#7317)
([b883911](b883911))
* Aggregate with short scalars in UH Recursion
([#11478](#11478))
([a6fcdb0](a6fcdb0))
* **avm:** Remove some parentheses in codegen relations
([#11766](#11766))
([f2f2634](f2f2634))
* Bump noir_bigcurve timeout
(noir-lang/noir#7322)
([b883911](b883911))
* Check versioning
([#11611](#11611))
([b33f1da](b33f1da))
* Cleanup in AVM test fixture
([#11850](#11850))
([4526059](4526059))
* Create a CI action to download nargo and add to path
(noir-lang/noir#7281)
([b883911](b883911))
* Create a CI action to download nargo and add to path
(noir-lang/noir#7281)
([3840e8e](3840e8e))
* Disable exp-2 from nightly deployments
([#11880](#11880))
([bc42b60](bc42b60))
* Do not differentiate variable vs fixed length for Poseidon2
([#11740](#11740))
([ee5fc45](ee5fc45))
* Fix memory reports in CI (noir-lang/noir#7311)
([b883911](b883911))
* Fix memory reports in CI (noir-lang/noir#7311)
([3840e8e](3840e8e))
* **p2p:** Remove min peers option
([#11789](#11789))
([cfb6797](cfb6797))
* Push inlining info code into a submodule
(noir-lang/noir#7266)
([b883911](b883911))
* Push inlining info code into a submodule
(noir-lang/noir#7266)
([3840e8e](3840e8e))
* Reduce number of benchmarking scripts
(noir-lang/noir#7285)
([b883911](b883911))
* Reduce number of benchmarking scripts
(noir-lang/noir#7285)
([3840e8e](3840e8e))
* Remove dead code
([#11809](#11809))
([51ad298](51ad298))
* Remove Recoverable (noir-lang/noir#7307)
([b883911](b883911))
* Remove Recoverable (noir-lang/noir#7307)
([3840e8e](3840e8e))
* Replace benchmarks on fast test suites with a cut-off
(noir-lang/noir#7276)
([b883911](b883911))
* Replace benchmarks on fast test suites with a cut-off
(noir-lang/noir#7276)
([3840e8e](3840e8e))
* Replace relative paths to noir-protocol-circuits
([330f613](330f613))
* Replace relative paths to noir-protocol-circuits
([501ec66](501ec66))
* Replace relative paths to noir-protocol-circuits
([3fa986a](3fa986a))
* Sepolia mnemonic, e2e & ignition chain
([#11759](#11759))
([ff1536a](ff1536a))
* Simplify handling of pub inputs block
([#11747](#11747))
([4a8136c](4a8136c))
* **spartan:** Give services label names
([#11609](#11609))
([2da39df](2da39df))
* **spartan:** Update ethereum external host values
([#11590](#11590))
([f17a8f3](f17a8f3))
* Update migration_notes.md
([#11801](#11801))
([baa69a2](baa69a2))


### Documentation

* Some blob docs
([#11729](#11729))
([b1d65f1](b1d65f1))
</details>

<details><summary>barretenberg: 0.76.0</summary>

##
[0.76.0](barretenberg-v0.75.0...barretenberg-v0.76.0)
(2025-02-10)


### Features

* **avm:** Add skippable condition for interactions
([#11800](#11800))
([67aec61](67aec61))
* **avm:** Range check opt via aliases
([#11846](#11846))
([ce6a5bf](ce6a5bf))
* **avm:** Restrict bytecode bytes
([#11798](#11798))
([be382bc](be382bc))


### Bug Fixes

* Add missing return in main
([#11786](#11786))
([8c1d477](8c1d477))
* Tracy run
([#11819](#11819))
([fde135d](fde135d))


### Miscellaneous

* Aggregate with short scalars in UH Recursion
([#11478](#11478))
([a6fcdb0](a6fcdb0))
* **avm:** Remove some parentheses in codegen relations
([#11766](#11766))
([f2f2634](f2f2634))
* Do not differentiate variable vs fixed length for Poseidon2
([#11740](#11740))
([ee5fc45](ee5fc45))
* Simplify handling of pub inputs block
([#11747](#11747))
([4a8136c](4a8136c))
</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 Feb 11, 2025
🤖 I have created a release *beep* *boop*
---


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

##
[0.76.0](AztecProtocol/aztec-packages@aztec-package-v0.75.0...aztec-package-v0.76.0)
(2025-02-10)


### Features

* **spartan:** Blob sink in spartan
([#11307](AztecProtocol/aztec-packages#11307))
([d8e5bcc](AztecProtocol/aztec-packages@d8e5bcc))


### Miscellaneous

* Check versioning
([#11611](AztecProtocol/aztec-packages#11611))
([b33f1da](AztecProtocol/aztec-packages@b33f1da))
* **p2p:** Remove min peers option
([#11789](AztecProtocol/aztec-packages#11789))
([cfb6797](AztecProtocol/aztec-packages@cfb6797))
</details>

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

##
[0.76.0](AztecProtocol/aztec-packages@barretenberg.js-v0.75.0...barretenberg.js-v0.76.0)
(2025-02-10)


### Bug Fixes

* **bb.js:** Make wasm imports bundleable
([#11812](AztecProtocol/aztec-packages#11812))
([1af69a9](AztecProtocol/aztec-packages@1af69a9))
* Remove unnecessary console.log
([#11810](AztecProtocol/aztec-packages#11810))
([8a320bf](AztecProtocol/aztec-packages@8a320bf))
</details>

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

##
[0.76.0](AztecProtocol/aztec-packages@aztec-packages-v0.75.0...aztec-packages-v0.76.0)
(2025-02-10)


### ⚠ BREAKING CHANGES

* check abi integer input is within signed range
(noir-lang/noir#7316)
* using `WithHash<T>` in `SharedMutable` + fixing slot allocation
([#11716](AztecProtocol/aztec-packages#11716))

### Features

* `assert` and `assert_eq` are now expressions
(noir-lang/noir#7313)
([b883911](AztecProtocol/aztec-packages@b883911))
* `assert` and `assert_eq` are now expressions
(noir-lang/noir#7313)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* **avm:** Add skippable condition for interactions
([#11800](AztecProtocol/aztec-packages#11800))
([67aec61](AztecProtocol/aztec-packages@67aec61))
* **avm:** Range check opt via aliases
([#11846](AztecProtocol/aztec-packages#11846))
([ce6a5bf](AztecProtocol/aztec-packages@ce6a5bf))
* **avm:** Restrict bytecode bytes
([#11798](AztecProtocol/aztec-packages#11798))
([be382bc](AztecProtocol/aztec-packages@be382bc))
* **aztec-nr:** Do not compile functions with a private public macro and
unconstrained
([#11815](AztecProtocol/aztec-packages#11815))
([afb52e3](AztecProtocol/aztec-packages@afb52e3))
* **blob-lib:** Make blob lib and fix encoding test flake
([#11782](AztecProtocol/aztec-packages#11782))
([753f505](AztecProtocol/aztec-packages@753f505))
* Broker sends back job after accepting result
([#11754](AztecProtocol/aztec-packages#11754))
([62e5de7](AztecProtocol/aztec-packages@62e5de7))
* **docs:** Notes page
([#11746](AztecProtocol/aztec-packages#11746))
([117200e](AztecProtocol/aztec-packages@117200e))
* **docs:** Reindex typesense in CI
([#11791](AztecProtocol/aztec-packages#11791))
([6af8d54](AztecProtocol/aztec-packages@6af8d54))
* Infer lambda parameter types from return type and let type
(noir-lang/noir#7267)
([b883911](AztecProtocol/aztec-packages@b883911))
* Infer lambda parameter types from return type and let type
(noir-lang/noir#7267)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Optimizing contract with config pattern
([#11756](AztecProtocol/aztec-packages#11756))
([7820cb7](AztecProtocol/aztec-packages@7820cb7))
* **p2p:** Test bench scaffold
([#11758](AztecProtocol/aztec-packages#11758))
([48dc491](AztecProtocol/aztec-packages@48dc491))
* Partial note handling in aztec-nr
([#11641](AztecProtocol/aztec-packages#11641))
([1c1a33b](AztecProtocol/aztec-packages@1c1a33b))
* **perf:** Speed up TS AVM core simulator
([#11794](AztecProtocol/aztec-packages#11794))
([bb58c87](AztecProtocol/aztec-packages@bb58c87))
* **reqresp:** Send status messages along with reqresp responses
([#11727](AztecProtocol/aztec-packages#11727))
([b212490](AztecProtocol/aztec-packages@b212490))
* Simplify `Ord` implementation for arrays
(noir-lang/noir#7305)
([b883911](AztecProtocol/aztec-packages@b883911))
* Simplify `Ord` implementation for arrays
(noir-lang/noir#7305)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* **spartan:** Blob sink in spartan
([#11307](AztecProtocol/aztec-packages#11307))
([d8e5bcc](AztecProtocol/aztec-packages@d8e5bcc))
* Suport deploying contracts with public keys in txe
([#11882](AztecProtocol/aztec-packages#11882))
([94bdc85](AztecProtocol/aztec-packages@94bdc85)),
closes
[#11881](AztecProtocol/aztec-packages#11881)
* Sync from aztec-packages (noir-lang/noir#7293)
([b883911](AztecProtocol/aztec-packages@b883911))
* Sync from aztec-packages (noir-lang/noir#7293)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Trust tree roots from the AVM in public base
([#11823](AztecProtocol/aztec-packages#11823))
([5d12f94](AztecProtocol/aztec-packages@5d12f94))
* Using `WithHash&lt;T&gt;` in `SharedMutable` + fixing slot allocation
([#11716](AztecProtocol/aztec-packages#11716))
([952615b](AztecProtocol/aztec-packages@952615b))


### Bug Fixes

* Add missing return in main
([#11786](AztecProtocol/aztec-packages#11786))
([8c1d477](AztecProtocol/aztec-packages@8c1d477))
* Allows for infinite brillig loops
(noir-lang/noir#7296)
([b883911](AztecProtocol/aztec-packages@b883911))
* Always normalize ssa when priting at least one pass
(noir-lang/noir#7299)
([b883911](AztecProtocol/aztec-packages@b883911))
* Always normalize ssa when priting at least one pass
(noir-lang/noir#7299)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Avoid recomputing contractclassid
([#11783](AztecProtocol/aztec-packages#11783))
([f8448bf](AztecProtocol/aztec-packages@f8448bf))
* Avoid stack overflow on many comments in a row
(noir-lang/noir#7325)
([b883911](AztecProtocol/aztec-packages@b883911))
* Aztec wallet partial address display on deployment
([#11866](AztecProtocol/aztec-packages#11866))
([eef5302](AztecProtocol/aztec-packages@eef5302)),
closes
[#11864](AztecProtocol/aztec-packages#11864)
* **bb.js:** Make wasm imports bundleable
([#11812](AztecProtocol/aztec-packages#11812))
([1af69a9](AztecProtocol/aztec-packages@1af69a9))
* Beacon chain doesn't eat mainframe
([#11854](AztecProtocol/aztec-packages#11854))
([ebbdbc7](AztecProtocol/aztec-packages@ebbdbc7))
* Check abi integer input is within signed range
(noir-lang/noir#7316)
([b883911](AztecProtocol/aztec-packages@b883911))
* **ci:** Enforce boxes-test on merge
([#11841](AztecProtocol/aztec-packages#11841))
([e26a288](AztecProtocol/aztec-packages@e26a288))
* Downgrade to mainframe-compatible KIND
([#11883](AztecProtocol/aztec-packages#11883))
([9239b4f](AztecProtocol/aztec-packages@9239b4f))
* Error on if without else when type mismatch
(noir-lang/noir#7302)
([b883911](AztecProtocol/aztec-packages@b883911))
* Error on if without else when type mismatch
(noir-lang/noir#7302)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Error on trailing doc comment
(noir-lang/noir#7300)
([b883911](AztecProtocol/aztec-packages@b883911))
* Error on trailing doc comment
(noir-lang/noir#7300)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Formatting in master
([#11879](AztecProtocol/aztec-packages#11879))
([fff0f04](AztecProtocol/aztec-packages@fff0f04))
* Mark field division and modulo as requiring predicate for all
necessary types (noir-lang/noir#7290)
([b883911](AztecProtocol/aztec-packages@b883911))
* Mark field division and modulo as requiring predicate for all
necessary types (noir-lang/noir#7290)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Playground use new unbundled aztec.js
([#11780](AztecProtocol/aztec-packages#11780))
([fe2b666](AztecProtocol/aztec-packages@fe2b666))
* Prover-client test
([#11853](AztecProtocol/aztec-packages#11853))
([e950c76](AztecProtocol/aztec-packages@e950c76))
* Publish telemetry-client
([#11777](AztecProtocol/aztec-packages#11777))
([8634f6e](AztecProtocol/aztec-packages@8634f6e))
* Pxe release
([#11877](AztecProtocol/aztec-packages#11877))
([4c0d2f2](AztecProtocol/aztec-packages@4c0d2f2))
* Re exposing intent inner hash
([#11865](AztecProtocol/aztec-packages#11865))
([9638792](AztecProtocol/aztec-packages@9638792)),
closes
[#11795](AztecProtocol/aztec-packages#11795)
* Remove unnecessary console.log
([#11810](AztecProtocol/aztec-packages#11810))
([8a320bf](AztecProtocol/aztec-packages@8a320bf))
* Revert "feat: partial note handling in aztec-nr
([#11641](AztecProtocol/aztec-packages#11641))"
([#11797](AztecProtocol/aztec-packages#11797))
([c5c3f09](AztecProtocol/aztec-packages@c5c3f09))
* Skip orchestrator_workflow test (see
[#11870](AztecProtocol/aztec-packages#11870))
([#11872](AztecProtocol/aztec-packages#11872))
([f8e7e4e](AztecProtocol/aztec-packages@f8e7e4e))
* Skip vite browser test until
[#11874](AztecProtocol/aztec-packages#11874)
([#11876](AztecProtocol/aztec-packages#11876))
([e1adf23](AztecProtocol/aztec-packages@e1adf23))
* **ssa:** Unused functions removals post folding constant Brillig calls
(noir-lang/noir#7265)
([b883911](AztecProtocol/aztec-packages@b883911))
* **ssa:** Unused functions removals post folding constant Brillig calls
(noir-lang/noir#7265)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Tracy run
([#11819](AztecProtocol/aztec-packages#11819))
([fde135d](AztecProtocol/aztec-packages@fde135d))
* Txe block headers
([#11710](AztecProtocol/aztec-packages#11710))
([4f6b76f](AztecProtocol/aztec-packages@4f6b76f))


### Miscellaneous

* Add sha256 library to test suite
(noir-lang/noir#7278)
([b883911](AztecProtocol/aztec-packages@b883911))
* Add sha256 library to test suite
(noir-lang/noir#7278)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Add timeouts to reports CI
(noir-lang/noir#7317)
([b883911](AztecProtocol/aztec-packages@b883911))
* Aggregate with short scalars in UH Recursion
([#11478](AztecProtocol/aztec-packages#11478))
([a6fcdb0](AztecProtocol/aztec-packages@a6fcdb0))
* **avm:** Remove some parentheses in codegen relations
([#11766](AztecProtocol/aztec-packages#11766))
([f2f2634](AztecProtocol/aztec-packages@f2f2634))
* Bump noir_bigcurve timeout
(noir-lang/noir#7322)
([b883911](AztecProtocol/aztec-packages@b883911))
* Check versioning
([#11611](AztecProtocol/aztec-packages#11611))
([b33f1da](AztecProtocol/aztec-packages@b33f1da))
* Cleanup in AVM test fixture
([#11850](AztecProtocol/aztec-packages#11850))
([4526059](AztecProtocol/aztec-packages@4526059))
* Create a CI action to download nargo and add to path
(noir-lang/noir#7281)
([b883911](AztecProtocol/aztec-packages@b883911))
* Create a CI action to download nargo and add to path
(noir-lang/noir#7281)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Disable exp-2 from nightly deployments
([#11880](AztecProtocol/aztec-packages#11880))
([bc42b60](AztecProtocol/aztec-packages@bc42b60))
* Do not differentiate variable vs fixed length for Poseidon2
([#11740](AztecProtocol/aztec-packages#11740))
([ee5fc45](AztecProtocol/aztec-packages@ee5fc45))
* Fix memory reports in CI (noir-lang/noir#7311)
([b883911](AztecProtocol/aztec-packages@b883911))
* Fix memory reports in CI (noir-lang/noir#7311)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* **p2p:** Remove min peers option
([#11789](AztecProtocol/aztec-packages#11789))
([cfb6797](AztecProtocol/aztec-packages@cfb6797))
* Push inlining info code into a submodule
(noir-lang/noir#7266)
([b883911](AztecProtocol/aztec-packages@b883911))
* Push inlining info code into a submodule
(noir-lang/noir#7266)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Reduce number of benchmarking scripts
(noir-lang/noir#7285)
([b883911](AztecProtocol/aztec-packages@b883911))
* Reduce number of benchmarking scripts
(noir-lang/noir#7285)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Remove dead code
([#11809](AztecProtocol/aztec-packages#11809))
([51ad298](AztecProtocol/aztec-packages@51ad298))
* Remove Recoverable (noir-lang/noir#7307)
([b883911](AztecProtocol/aztec-packages@b883911))
* Remove Recoverable (noir-lang/noir#7307)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Replace benchmarks on fast test suites with a cut-off
(noir-lang/noir#7276)
([b883911](AztecProtocol/aztec-packages@b883911))
* Replace benchmarks on fast test suites with a cut-off
(noir-lang/noir#7276)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Replace relative paths to noir-protocol-circuits
([330f613](AztecProtocol/aztec-packages@330f613))
* Replace relative paths to noir-protocol-circuits
([501ec66](AztecProtocol/aztec-packages@501ec66))
* Replace relative paths to noir-protocol-circuits
([3fa986a](AztecProtocol/aztec-packages@3fa986a))
* Sepolia mnemonic, e2e & ignition chain
([#11759](AztecProtocol/aztec-packages#11759))
([ff1536a](AztecProtocol/aztec-packages@ff1536a))
* Simplify handling of pub inputs block
([#11747](AztecProtocol/aztec-packages#11747))
([4a8136c](AztecProtocol/aztec-packages@4a8136c))
* **spartan:** Give services label names
([#11609](AztecProtocol/aztec-packages#11609))
([2da39df](AztecProtocol/aztec-packages@2da39df))
* **spartan:** Update ethereum external host values
([#11590](AztecProtocol/aztec-packages#11590))
([f17a8f3](AztecProtocol/aztec-packages@f17a8f3))
* Update migration_notes.md
([#11801](AztecProtocol/aztec-packages#11801))
([baa69a2](AztecProtocol/aztec-packages@baa69a2))


### Documentation

* Some blob docs
([#11729](AztecProtocol/aztec-packages#11729))
([b1d65f1](AztecProtocol/aztec-packages@b1d65f1))
</details>

<details><summary>barretenberg: 0.76.0</summary>

##
[0.76.0](AztecProtocol/aztec-packages@barretenberg-v0.75.0...barretenberg-v0.76.0)
(2025-02-10)


### Features

* **avm:** Add skippable condition for interactions
([#11800](AztecProtocol/aztec-packages#11800))
([67aec61](AztecProtocol/aztec-packages@67aec61))
* **avm:** Range check opt via aliases
([#11846](AztecProtocol/aztec-packages#11846))
([ce6a5bf](AztecProtocol/aztec-packages@ce6a5bf))
* **avm:** Restrict bytecode bytes
([#11798](AztecProtocol/aztec-packages#11798))
([be382bc](AztecProtocol/aztec-packages@be382bc))


### Bug Fixes

* Add missing return in main
([#11786](AztecProtocol/aztec-packages#11786))
([8c1d477](AztecProtocol/aztec-packages@8c1d477))
* Tracy run
([#11819](AztecProtocol/aztec-packages#11819))
([fde135d](AztecProtocol/aztec-packages@fde135d))


### Miscellaneous

* Aggregate with short scalars in UH Recursion
([#11478](AztecProtocol/aztec-packages#11478))
([a6fcdb0](AztecProtocol/aztec-packages@a6fcdb0))
* **avm:** Remove some parentheses in codegen relations
([#11766](AztecProtocol/aztec-packages#11766))
([f2f2634](AztecProtocol/aztec-packages@f2f2634))
* Do not differentiate variable vs fixed length for Poseidon2
([#11740](AztecProtocol/aztec-packages#11740))
([ee5fc45](AztecProtocol/aztec-packages@ee5fc45))
* Simplify handling of pub inputs block
([#11747](AztecProtocol/aztec-packages#11747))
([4a8136c](AztecProtocol/aztec-packages@4a8136c))
</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.

3 participants