-
Notifications
You must be signed in to change notification settings - Fork 237
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
refactor: plain struct flavor entities #3277
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.
LGTM. Glad the references are going away. I'm definitely conscious of how verbose these flavors are getting but I'm sure you're sick of thinking about it for the time being. Something worth addressing (by someone) in the near future I think.
@@ -425,7 +448,7 @@ class GoblinUltra { | |||
public: | |||
using Base = AllEntities<FF, FF>; | |||
using Base::Base; | |||
AllValues(std::array<FF, NUM_ALL_ENTITIES> _data_in) { this->_data = _data_in; } | |||
// AllValues(std::array<FF, NUM_ALL_ENTITIES> _data_in) { this->_data = _data_in; } |
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.
delete?
Yeah, we need to make progress from here, but the array-backing made it awkward to refactor these much. I chose to increase verbosity and help semantics. I still think the ultimate verbosity killer might be a small custom format that generates the code here. |
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.15.0</summary> ## [0.15.0](aztec-packages-v0.14.2...aztec-packages-v0.15.0) (2023-11-16) ### ⚠ BREAKING CHANGES * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](#3114)) ### Features * **bb:** Add msan preset ([#3284](#3284)) ([bcf025c](bcf025c)) * Enable merge and root rollup circuits in noir ([#3248](#3248)) ([68555fc](68555fc)) * Protogalaxy combiner quotient ([#3245](#3245)) ([db0f3ab](db0f3ab)) * Public kernel in noir ([#3186](#3186)) ([15a522b](15a522b)) * Ultra honk arith from ultra ([#3274](#3274)) ([ec2b805](ec2b805)) ### Bug Fixes * Debug build ([#3283](#3283)) ([aca2624](aca2624)) * Fix block constraint key divergence bug. ([#3256](#3256)) ([1c71a0c](1c71a0c)) * Main.md typo ([#3278](#3278)) ([cb87c4d](cb87c4d)) * Typo fix roundup ([#3302](#3302)) ([9dd778d](9dd778d)) ### Miscellaneous * **bb:** Remove -Wfatal-errors ([#3318](#3318)) ([4229173](4229173)) * Clarify that barretenberg mirror should not take PRs ([#3303](#3303)) ([13f1a1d](13f1a1d)) * Clean up Plonk widgets ([#3305](#3305)) ([4623d91](4623d91)) * **docs:** Aztec.nr logging page ([#3281](#3281)) ([11e6ca7](11e6ca7)) * **docs:** Update netlify.toml and fix build ([#3304](#3304)) ([df76636](df76636)) * Explicitly instantiate Goblin translator relations ([#3239](#3239)) ([e3b5fb0](e3b5fb0)) * Plain struct flavor entities ([#3277](#3277)) ([f109512](f109512)) * Remove bn254 instantiation of eccvm plus naming changes ([#3330](#3330)) ([23d1e2d](23d1e2d)) * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](#3114)) ([87eeb71](87eeb71)) * Revert build-debug folder for debug preset ([#3324](#3324)) ([43a2e6b](43a2e6b)) * Towards plain struct flavor entities ([#3216](#3216)) ([3ba89cf](3ba89cf)) * Typo fixes based on cspell ([#3319](#3319)) ([8ae44dd](8ae44dd)) </details> <details><summary>barretenberg.js: 0.15.0</summary> ## [0.15.0](barretenberg.js-v0.14.2...barretenberg.js-v0.15.0) (2023-11-16) ### ⚠ BREAKING CHANGES * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](#3114)) ### Bug Fixes * Fix block constraint key divergence bug. ([#3256](#3256)) ([1c71a0c](1c71a0c)) ### Miscellaneous * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](#3114)) ([87eeb71](87eeb71)) * Typo fixes based on cspell ([#3319](#3319)) ([8ae44dd](8ae44dd)) </details> <details><summary>barretenberg: 0.15.0</summary> ## [0.15.0](barretenberg-v0.14.2...barretenberg-v0.15.0) (2023-11-16) ### ⚠ BREAKING CHANGES * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](#3114)) ### Features * **bb:** Add msan preset ([#3284](#3284)) ([bcf025c](bcf025c)) * Protogalaxy combiner quotient ([#3245](#3245)) ([db0f3ab](db0f3ab)) * Ultra honk arith from ultra ([#3274](#3274)) ([ec2b805](ec2b805)) ### Bug Fixes * Debug build ([#3283](#3283)) ([aca2624](aca2624)) * Fix block constraint key divergence bug. ([#3256](#3256)) ([1c71a0c](1c71a0c)) ### Miscellaneous * **bb:** Remove -Wfatal-errors ([#3318](#3318)) ([4229173](4229173)) * Clarify that barretenberg mirror should not take PRs ([#3303](#3303)) ([13f1a1d](13f1a1d)) * Clean up Plonk widgets ([#3305](#3305)) ([4623d91](4623d91)) * Explicitly instantiate Goblin translator relations ([#3239](#3239)) ([e3b5fb0](e3b5fb0)) * Plain struct flavor entities ([#3277](#3277)) ([f109512](f109512)) * Remove bn254 instantiation of eccvm plus naming changes ([#3330](#3330)) ([23d1e2d](23d1e2d)) * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](#3114)) ([87eeb71](87eeb71)) * Revert build-debug folder for debug preset ([#3324](#3324)) ([43a2e6b](43a2e6b)) * Towards plain struct flavor entities ([#3216](#3216)) ([3ba89cf](3ba89cf)) * Typo fixes based on cspell ([#3319](#3319)) ([8ae44dd](8ae44dd)) </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-packages: 0.15.0</summary> ## [0.15.0](AztecProtocol/aztec-packages@aztec-packages-v0.14.2...aztec-packages-v0.15.0) (2023-11-16) ### ⚠ BREAKING CHANGES * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](AztecProtocol/aztec-packages#3114)) ### Features * **bb:** Add msan preset ([#3284](AztecProtocol/aztec-packages#3284)) ([bcf025c](AztecProtocol/aztec-packages@bcf025c)) * Enable merge and root rollup circuits in noir ([#3248](AztecProtocol/aztec-packages#3248)) ([68555fc](AztecProtocol/aztec-packages@68555fc)) * Protogalaxy combiner quotient ([#3245](AztecProtocol/aztec-packages#3245)) ([db0f3ab](AztecProtocol/aztec-packages@db0f3ab)) * Public kernel in noir ([#3186](AztecProtocol/aztec-packages#3186)) ([15a522b](AztecProtocol/aztec-packages@15a522b)) * Ultra honk arith from ultra ([#3274](AztecProtocol/aztec-packages#3274)) ([ec2b805](AztecProtocol/aztec-packages@ec2b805)) ### Bug Fixes * Debug build ([#3283](AztecProtocol/aztec-packages#3283)) ([aca2624](AztecProtocol/aztec-packages@aca2624)) * Fix block constraint key divergence bug. ([#3256](AztecProtocol/aztec-packages#3256)) ([1c71a0c](AztecProtocol/aztec-packages@1c71a0c)) * Main.md typo ([#3278](AztecProtocol/aztec-packages#3278)) ([cb87c4d](AztecProtocol/aztec-packages@cb87c4d)) * Typo fix roundup ([#3302](AztecProtocol/aztec-packages#3302)) ([9dd778d](AztecProtocol/aztec-packages@9dd778d)) ### Miscellaneous * **bb:** Remove -Wfatal-errors ([#3318](AztecProtocol/aztec-packages#3318)) ([4229173](AztecProtocol/aztec-packages@4229173)) * Clarify that barretenberg mirror should not take PRs ([#3303](AztecProtocol/aztec-packages#3303)) ([13f1a1d](AztecProtocol/aztec-packages@13f1a1d)) * Clean up Plonk widgets ([#3305](AztecProtocol/aztec-packages#3305)) ([4623d91](AztecProtocol/aztec-packages@4623d91)) * **docs:** Aztec.nr logging page ([#3281](AztecProtocol/aztec-packages#3281)) ([11e6ca7](AztecProtocol/aztec-packages@11e6ca7)) * **docs:** Update netlify.toml and fix build ([#3304](AztecProtocol/aztec-packages#3304)) ([df76636](AztecProtocol/aztec-packages@df76636)) * Explicitly instantiate Goblin translator relations ([#3239](AztecProtocol/aztec-packages#3239)) ([e3b5fb0](AztecProtocol/aztec-packages@e3b5fb0)) * Plain struct flavor entities ([#3277](AztecProtocol/aztec-packages#3277)) ([f109512](AztecProtocol/aztec-packages@f109512)) * Remove bn254 instantiation of eccvm plus naming changes ([#3330](AztecProtocol/aztec-packages#3330)) ([23d1e2d](AztecProtocol/aztec-packages@23d1e2d)) * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](AztecProtocol/aztec-packages#3114)) ([87eeb71](AztecProtocol/aztec-packages@87eeb71)) * Revert build-debug folder for debug preset ([#3324](AztecProtocol/aztec-packages#3324)) ([43a2e6b](AztecProtocol/aztec-packages@43a2e6b)) * Towards plain struct flavor entities ([#3216](AztecProtocol/aztec-packages#3216)) ([3ba89cf](AztecProtocol/aztec-packages@3ba89cf)) * Typo fixes based on cspell ([#3319](AztecProtocol/aztec-packages#3319)) ([8ae44dd](AztecProtocol/aztec-packages@8ae44dd)) </details> <details><summary>barretenberg.js: 0.15.0</summary> ## [0.15.0](AztecProtocol/aztec-packages@barretenberg.js-v0.14.2...barretenberg.js-v0.15.0) (2023-11-16) ### ⚠ BREAKING CHANGES * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](AztecProtocol/aztec-packages#3114)) ### Bug Fixes * Fix block constraint key divergence bug. ([#3256](AztecProtocol/aztec-packages#3256)) ([1c71a0c](AztecProtocol/aztec-packages@1c71a0c)) ### Miscellaneous * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](AztecProtocol/aztec-packages#3114)) ([87eeb71](AztecProtocol/aztec-packages@87eeb71)) * Typo fixes based on cspell ([#3319](AztecProtocol/aztec-packages#3319)) ([8ae44dd](AztecProtocol/aztec-packages@8ae44dd)) </details> <details><summary>barretenberg: 0.15.0</summary> ## [0.15.0](AztecProtocol/aztec-packages@barretenberg-v0.14.2...barretenberg-v0.15.0) (2023-11-16) ### ⚠ BREAKING CHANGES * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](AztecProtocol/aztec-packages#3114)) ### Features * **bb:** Add msan preset ([#3284](AztecProtocol/aztec-packages#3284)) ([bcf025c](AztecProtocol/aztec-packages@bcf025c)) * Protogalaxy combiner quotient ([#3245](AztecProtocol/aztec-packages#3245)) ([db0f3ab](AztecProtocol/aztec-packages@db0f3ab)) * Ultra honk arith from ultra ([#3274](AztecProtocol/aztec-packages#3274)) ([ec2b805](AztecProtocol/aztec-packages@ec2b805)) ### Bug Fixes * Debug build ([#3283](AztecProtocol/aztec-packages#3283)) ([aca2624](AztecProtocol/aztec-packages@aca2624)) * Fix block constraint key divergence bug. ([#3256](AztecProtocol/aztec-packages#3256)) ([1c71a0c](AztecProtocol/aztec-packages@1c71a0c)) ### Miscellaneous * **bb:** Remove -Wfatal-errors ([#3318](AztecProtocol/aztec-packages#3318)) ([4229173](AztecProtocol/aztec-packages@4229173)) * Clarify that barretenberg mirror should not take PRs ([#3303](AztecProtocol/aztec-packages#3303)) ([13f1a1d](AztecProtocol/aztec-packages@13f1a1d)) * Clean up Plonk widgets ([#3305](AztecProtocol/aztec-packages#3305)) ([4623d91](AztecProtocol/aztec-packages@4623d91)) * Explicitly instantiate Goblin translator relations ([#3239](AztecProtocol/aztec-packages#3239)) ([e3b5fb0](AztecProtocol/aztec-packages@e3b5fb0)) * Plain struct flavor entities ([#3277](AztecProtocol/aztec-packages#3277)) ([f109512](AztecProtocol/aztec-packages@f109512)) * Remove bn254 instantiation of eccvm plus naming changes ([#3330](AztecProtocol/aztec-packages#3330)) ([23d1e2d](AztecProtocol/aztec-packages@23d1e2d)) * Replace computing hashes in circuits wasm, with computing them in ts via bb.js pedersen call. ([#3114](AztecProtocol/aztec-packages#3114)) ([87eeb71](AztecProtocol/aztec-packages@87eeb71)) * Revert build-debug folder for debug preset ([#3324](AztecProtocol/aztec-packages#3324)) ([43a2e6b](AztecProtocol/aztec-packages@43a2e6b)) * Towards plain struct flavor entities ([#3216](AztecProtocol/aztec-packages#3216)) ([3ba89cf](AztecProtocol/aztec-packages@3ba89cf)) * Typo fixes based on cspell ([#3319](AztecProtocol/aztec-packages#3319)) ([8ae44dd](AztecProtocol/aztec-packages@8ae44dd)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Remove array backing, propagating necessary changes. While we do use structs as arrays, it's simpler conceptually to model this as just another getter view instead of coupling strongly to an array storage model. This gives more flexibility to how these are defined, and give less gotchas via reference copying.
This requires more definition of
pointer_view()
. Note that the main mechanism for ensuringpointer_view()
is correct is checking that the number of listed members is the one expected (e.g. equals NUM_ALL_ENTITIES).Review notes:
pointer_view
and then using it as a structure to index into