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: support specifying generics on a struct when calling an associated function #6306

Merged
merged 18 commits into from
Oct 29, 2024

Conversation

asterite
Copy link
Collaborator

@asterite asterite commented Oct 21, 2024

Description

Problem

Resolves #5584
Resolves #6000

Summary

Also errors if you have something like this:

this_is_a_module::<i32>::foo();
                  ^^^^^
            turbofish not allowed on module `this_is_a_module`

Additional Context

Note: this only works for structs. I captured a couple of issues to make this work for traits and aliases, but I'd prefer to do those in separate PRs.

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.

@asterite asterite force-pushed the ab/turbofish-in-the-middle branch from b9acd8e to 38134b4 Compare October 22, 2024 15:16
@asterite asterite changed the title feat: support specifying generics on a type when calling an associated function feat: support specifying generics on a struct when calling an associated function Oct 22, 2024
@asterite asterite marked this pull request as ready for review October 22, 2024 15:43
@asterite asterite requested a review from a team October 22, 2024 15:44
Copy link
Contributor

@jfecher jfecher left a comment

Choose a reason for hiding this comment

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

Going to block this temporarily to give me some time to think about the approach some more.

Copy link
Contributor

@jfecher jfecher left a comment

Choose a reason for hiding this comment

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

The generic_type_in_path part seems odd to me - it doesn't really say where that type is and I think it may be possible to have multiple types in the path. E.g. foo::bar::Baz::<i32>::AssociatedType::<u32>::method::<i8>()

Maybe it'd be possible to resolve to a module + type bindings? E.g. resolve to the struct module of Baz then handle any paths from there separately? Currently this would only be to methods I think since I don't think we support referring to associated types using the syntax I gave above.

compiler/noirc_frontend/src/elaborator/patterns.rs Outdated Show resolved Hide resolved
@asterite
Copy link
Collaborator Author

asterite commented Oct 25, 2024

The generic_type_in_path part seems odd to me

Makes sense. I thought of different possibilities to do this and that one was the less disruptive to the existing code.

That said... there's something that I always felt wasn't quite right: path resolution/lookup. There are two things here:

  • imports (use statements)
  • paths in code

Imports can't have generics in their path, while paths do. But: the code to resolve them is the same one.

So we have two choices:

  1. Have two different code paths to solve imports and paths
  2. Have a single code path, but returning a better type as the output

I'm leaning towards option 2, mainly to avoid code duplication. When resolving an import we can assert/panic when we get a resolution that shouldn't happen.

The better type I'm thinking is, instead of returning ModuleDefId we could return some other enum like this:

enum PathResolutionKind {
    Module(ModuleId),
    Struct(StructId, Option<Vec<UnresolvedType>>), // The generics, if any (using Option to distinguish the `::<>` case)
    TypeAlias(TypeAliasId, Option<Vec<UnresolvedType>>),
    Trait(TraitId, Option<Vec<UnresolvedType>>),
    ModuleFunction(FuncId),
    StructFunction(StructId, Option<Vec<UnresolvedType>>, FuncId),
    TypeAliasFunction(TypeAliasId, Option<Vec<UnresolvedType>>, FuncId),
    TraitFunction(TraitId, Option<Vec<UnresolvedType>>, FuncId),
}

That way it's a bit more clear what a path resolved too... and if eventually we support that associated type line, we'll add a new member to the above enum.

What do you think?

@jfecher
Copy link
Contributor

jfecher commented Oct 25, 2024

That way it's a bit more clear what a path resolved too... and if eventually we support that associated type line, we'll add a new member to the above enum.
What do you think?

I like it - I agree path resolution leaves things to be desired currently. I was trying to avoid suggesting "let's rewrite path resolution entirely" but maybe it is needed 😅. I'm fine with the two different code paths for imports and paths in code in general as well though. I think there are enough differences there that using one for both could (unverified) end up being more complicated in the end. E.g. Passing booleans and such to determine which cases you need to support and which you should error for. That's why I was initially thinking of the approach to break a path up into two parts: the prefix path which can only contain modules, functions, structs without turbofish and other things that can be imported, and the suffix path which may contain structs with turbofish, methods on them, and possibly associated types on those structs. Your call on which is cleaner, it can be a bit hard to guess without trying it first.

@asterite
Copy link
Collaborator Author

I went down the route of having path and import resolution use the same code but return a better type.

It turns out, resolving a path gave two things:

  • a ModuleDefId
  • a namespace (PerNs)

The ModuleDefId part was used when looking up paths, the namespace part for imports. So, I changed that ModuleDefId to be PathResolutionItem in this case, with the enum I mentioned above. Then GenericTypeInPath is gone.

I think the code is much cleaner now. I still don't know if we should split the path/import lookup into two... maybe I can work on getting this working for traits and aliases, and then we can see if another refactor is worth it.

Let me know! 🙏 (this is ready for review again)

@asterite asterite requested a review from jfecher October 28, 2024 18:58
Copy link
Contributor

@jfecher jfecher left a comment

Choose a reason for hiding this comment

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

👍

@asterite asterite added this pull request to the merge queue Oct 29, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Oct 29, 2024
@asterite asterite added this pull request to the merge queue Oct 29, 2024
github-merge-queue bot pushed a commit that referenced this pull request Oct 29, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Oct 29, 2024
@asterite asterite force-pushed the ab/turbofish-in-the-middle branch from 437b3e6 to d2da46e Compare October 29, 2024 16:37
@asterite
Copy link
Collaborator Author

Sorry I had to force push, yesterday I continued working on this branch and forgot about it, then merged and got unrelated changes.

@asterite asterite added this pull request to the merge queue Oct 29, 2024
Merged via the queue into master with commit eba151e Oct 29, 2024
47 checks passed
@asterite asterite deleted the ab/turbofish-in-the-middle branch October 29, 2024 16:58
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 30, 2024
…oir#6395)

fix: make keccak256 work with input lengths greater than 136 bytes (noir-lang/noir#6393)
feat: support specifying generics on a struct when calling an associated function (noir-lang/noir#6306)
fix: Display every bit in integer tokens (noir-lang/noir#6360)
feat: better LSP hover for functions (noir-lang/noir#6376)
feat: Add capacities to brillig vectors and use them in slice ops (noir-lang/noir#6332)
feat: suggest removing `!` from macro call that doesn't return Quoted (noir-lang/noir#6384)
fix: (formatter) correctly format quote delimiters (noir-lang/noir#6377)
fix: allow globals in format strings (noir-lang/noir#6382)
TomAFrench added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 30, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: use array instead of Vec in keccak256
(noir-lang/noir#6395)
fix: make keccak256 work with input lengths greater than 136 bytes
(noir-lang/noir#6393)
feat: support specifying generics on a struct when calling an associated
function (noir-lang/noir#6306)
fix: Display every bit in integer tokens
(noir-lang/noir#6360)
feat: better LSP hover for functions
(noir-lang/noir#6376)
feat: Add capacities to brillig vectors and use them in slice ops
(noir-lang/noir#6332)
feat: suggest removing `!` from macro call that doesn't return Quoted
(noir-lang/noir#6384)
fix: (formatter) correctly format quote delimiters
(noir-lang/noir#6377)
fix: allow globals in format strings
(noir-lang/noir#6382)
END_COMMIT_OVERRIDE

---------

Co-authored-by: sirasistant <[email protected]>
Co-authored-by: Tom French <[email protected]>
TomAFrench pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 30, 2024
🤖 I have created a release *beep* *boop*
---


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

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


### Miscellaneous

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

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

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


### Miscellaneous

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

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

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


### ⚠ BREAKING CHANGES

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

### Features

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


### Bug Fixes

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


### Miscellaneous

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


### Documentation

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

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

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


### ⚠ BREAKING CHANGES

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

### Features

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


### Bug Fixes

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


### Miscellaneous

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

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
TomAFrench added a commit that referenced this pull request Oct 30, 2024
* master: (30 commits)
  chore: add regression tests for #4372 (#6401)
  chore: add regression tests for #6314 (#6381)
  chore: use array instead of Vec in keccak256 (#6395)
  fix: make keccak256 work with input lengths greater than 136 bytes (#6393)
  feat: support specifying generics on a struct when calling an associated function (#6306)
  fix: Display every bit in integer tokens (#6360)
  feat: better LSP hover for functions (#6376)
  feat: Add capacities to brillig vectors and use them in slice ops (#6332)
  feat: suggest removing `!` from macro call that doesn't return Quoted (#6384)
  fix: (formatter) correctly format quote delimiters (#6377)
  fix: allow globals in format strings (#6382)
  feat: do not increment reference counts on arrays through references (#6375)
  fix: (LSP) check visibility of module that re-exports item, if any (#6371)
  feat: let LSP suggest traits in trait bounds (#6370)
  fix: LSP auto-import would import public item inside private module (#6366)
  fix: remove assumed parent traits (#6365)
  fix: slightly better formatting of empty blocks with comments (#6367)
  fix: Fix panic in comptime code (#6361)
  feat: let the LSP import code action insert into existing use statements (#6358)
  chore: minor tweaks to comptime doc (#6357)
  ...
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Oct 31, 2024
🤖 I have created a release *beep* *boop*
---


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

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


### Miscellaneous

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

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

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


### Miscellaneous

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

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

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


### ⚠ BREAKING CHANGES

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

### Features

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


### Bug Fixes

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


### Miscellaneous

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


### Documentation

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

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

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


### ⚠ BREAKING CHANGES

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

### Features

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


### Bug Fixes

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


### Miscellaneous

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

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support specifying generics on a type when calling an associated function Enable turbofish for impls
2 participants