-
Notifications
You must be signed in to change notification settings - Fork 282
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
chore: apply where statement to impls instead of fns #7433
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks nice !
Benchmark resultsMetrics with a significant change:
Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. Proof generationEach column represents the number of threads used in proof generation.
L2 block published to L1Each column represents the number of txs on an L2 block published to L1.
L2 chain processingEach column represents the number of blocks on the L2 chain where each block has 8 txs.
Circuits statsStats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.
Stats on running time collected for app circuits
AVM SimulationTime to simulate various public functions in the AVM.
Public DB AccessTime to access various public DBs.
Tree insertion statsThe duration to insert a fixed batch of leaves into each tree type.
MiscellaneousTransaction sizes based on how many contract classes are registered in the tx.
Transaction size based on fee payment method | Metric | | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice
This stack of pull requests is managed by Graphite. Learn more about stacking. |
With that note getter using ROM instead of RAM PR had to now implement Eq for CardNote as well and add Eq to a few functions (see the latest fix commit). Disabled automerge as it might be a bit controversial. |
Thanks for adding the missing |
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.46.4</summary> ## [0.46.4](aztec-package-v0.46.3...aztec-package-v0.46.4) (2024-07-11) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.46.4</summary> ## [0.46.4](barretenberg.js-v0.46.3...barretenberg.js-v0.46.4) (2024-07-11) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.46.4</summary> ## [0.46.4](aztec-packages-v0.46.3...aztec-packages-v0.46.4) (2024-07-11) ### Features * Configure world-state to follow the proven chain only ([#7430](#7430)) ([2e41ac7](2e41ac7)) ### Bug Fixes * Missing secrets in docs publish ([#7445](#7445)) ([840a4b9](840a4b9)) ### Miscellaneous * Apply where statement to impls instead of fns ([#7433](#7433)) ([bb201f2](bb201f2)) * **avm:** Codegen cleanup ([#7439](#7439)) ([e31887e](e31887e)) * **proving:** Post honk branch fixes ([#7435](#7435)) ([86eafa0](86eafa0)) </details> <details><summary>barretenberg: 0.46.4</summary> ## [0.46.4](barretenberg-v0.46.3...barretenberg-v0.46.4) (2024-07-11) ### Miscellaneous * **avm:** Codegen cleanup ([#7439](#7439)) ([e31887e](e31887e)) * **proving:** Post honk branch fixes ([#7435](#7435)) ([86eafa0](86eafa0)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.46.4</summary> ## [0.46.4](AztecProtocol/aztec-packages@aztec-package-v0.46.3...aztec-package-v0.46.4) (2024-07-11) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.46.4</summary> ## [0.46.4](AztecProtocol/aztec-packages@barretenberg.js-v0.46.3...barretenberg.js-v0.46.4) (2024-07-11) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-packages: 0.46.4</summary> ## [0.46.4](AztecProtocol/aztec-packages@aztec-packages-v0.46.3...aztec-packages-v0.46.4) (2024-07-11) ### Features * Configure world-state to follow the proven chain only ([#7430](AztecProtocol/aztec-packages#7430)) ([2e41ac7](AztecProtocol/aztec-packages@2e41ac7)) ### Bug Fixes * Missing secrets in docs publish ([#7445](AztecProtocol/aztec-packages#7445)) ([840a4b9](AztecProtocol/aztec-packages@840a4b9)) ### Miscellaneous * Apply where statement to impls instead of fns ([#7433](AztecProtocol/aztec-packages#7433)) ([bb201f2](AztecProtocol/aztec-packages@bb201f2)) * **avm:** Codegen cleanup ([#7439](AztecProtocol/aztec-packages#7439)) ([e31887e](AztecProtocol/aztec-packages@e31887e)) * **proving:** Post honk branch fixes ([#7435](AztecProtocol/aztec-packages#7435)) ([86eafa0](AztecProtocol/aztec-packages@86eafa0)) </details> <details><summary>barretenberg: 0.46.4</summary> ## [0.46.4](AztecProtocol/aztec-packages@barretenberg-v0.46.3...barretenberg-v0.46.4) (2024-07-11) ### Miscellaneous * **avm:** Codegen cleanup ([#7439](AztecProtocol/aztec-packages#7439)) ([e31887e](AztecProtocol/aztec-packages@e31887e)) * **proving:** Post honk branch fixes ([#7435](AztecProtocol/aztec-packages#7435)) ([86eafa0](AztecProtocol/aztec-packages@86eafa0)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Now that we can have a
where
that affects an entireimpl
, I thought I'd give this a try in the state variables. Often I've felt tricked by these implementations, since when trying to work with them the requirements for a given genericT
seem fairly low, but then they add up as I start calling more and more functions, which each add their own trait bounds. The interface ends up feeling dishonest and not really showing all you need to do (all the traits that must be implemented) in order to be able to use the thing.With this change, the entire impl now requests up front all trait bounds, though it does mean we're a bit more restrictive than strictly needed. I don't think this is an issue - yes, you don't need to be able to serialize in order to read a public mutable, but you can only read if you write before, and that requires serialization. So all in all it seems like we always end up indirectly requiring all traits.