-
Notifications
You must be signed in to change notification settings - Fork 236
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
fix: Correct circuit size estimation for UltraHonk #6164
Conversation
…_are_non_zero inside of
Changes to circuit sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
…finalize' into mv/gates-for-non-zero-poly-with-finalize
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 in general
@@ -12,7 +12,10 @@ namespace bb { | |||
|
|||
template <typename FF> void GoblinUltraCircuitBuilder_<FF>::finalize_circuit() | |||
{ | |||
UltraCircuitBuilder_<UltraHonkArith<FF>>::finalize_circuit(); | |||
if (!this->circuit_finalized) { | |||
add_gates_to_ensure_all_polys_are_non_zero(); |
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.
maybe should change this to add_goblin_ultra_gates_.... to be clear that this only adds the goblin_ultra gates and not the ultra ones anymore
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.
done
@@ -25,9 +28,6 @@ template <typename FF> void GoblinUltraCircuitBuilder_<FF>::finalize_circuit() | |||
// polynomials is zero, which is required for them to be shiftable. | |||
template <typename FF> void GoblinUltraCircuitBuilder_<FF>::add_gates_to_ensure_all_polys_are_non_zero() |
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.
update name and comment here
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.
done
// account for the addition of "gates to ensure nonzero polynomials" (in Honk only). | ||
const size_t additional_gates_buffer = 15; // conservatively large to be safe | ||
size_t srs_size = builder.get_circuit_subgroup_size(builder.get_total_circuit_size() + additional_gates_buffer); | ||
size_t srs_size = builder.get_circuit_subgroup_size(builder.get_total_circuit_size()); |
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.
should this not just be builder.num_gates now? also add a comment explaining why we don't have to add any buffers/do any computations here anymore
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.
👍
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.37.1</summary> ## [0.37.1](aztec-package-v0.37.0...aztec-package-v0.37.1) (2024-05-07) ### Features * Proving benchmark ([#6051](#6051)) ([644bd85](644bd85)) </details> <details><summary>barretenberg.js: 0.37.1</summary> ## [0.37.1](barretenberg.js-v0.37.0...barretenberg.js-v0.37.1) (2024-05-07) ### Features * Honk flows exposed through wasm ([#6096](#6096)) ([c9b3206](c9b3206)) * Run noir-packages-test in Earthly ([#6174](#6174)) ([58e40c9](58e40c9)) ### Miscellaneous * Bump bb.js timeouts ([#6196](#6196)) ([acab3de](acab3de)) * Migrate acir tests to earthly ([#6142](#6142)) ([18c8ea8](18c8ea8)) </details> <details><summary>aztec-packages: 0.37.1</summary> ## [0.37.1](aztec-packages-v0.37.0...aztec-packages-v0.37.1) (2024-05-07) ### Features * Add ciphertext computation for log header ([#6175](#6175)) ([3e05534](3e05534)) * Add proving retries ([#6145](#6145)) ([39ab99c](39ab99c)) * Add public teardown to circuit structs ([#6191](#6191)) ([03e1b93](03e1b93)) * Always including debug data in a function artifact ([#6223](#6223)) ([5d6d22c](5d6d22c)) * **avm:** Add TransactionFee opcode to simulator ([#6210](#6210)) ([fcac844](fcac844)) * Complex outputs from acir call (noir-lang/noir#4952) ([3ed41a0](3ed41a0)) * Expose set_public_teardown_function in private context ([#6199](#6199)) ([4d8b51c](4d8b51c)) * Handle empty response foreign calls without an external resolver (noir-lang/noir#4959) ([3ed41a0](3ed41a0)) * Hash logs inside circuit ([#5934](#5934)) ([6b99527](6b99527)) * Honk flows exposed through wasm ([#6096](#6096)) ([c9b3206](c9b3206)) * Include transaction fee in txreceipt ([#6139](#6139)) ([6785512](6785512)) * Making keys getters complete ([#6171](#6171)) ([e85dde9](e85dde9)) * Move noir-tests to earthly ([#6185](#6185)) ([4daea40](4daea40)) * Note hash read requests fixes and refactoring ([#6125](#6125)) ([9d03f34](9d03f34)) * Optimize array sets in if conditions (alternate version) (noir-lang/noir#4716) ([3ed41a0](3ed41a0)) * Osxcross ([#6099](#6099)) ([6cc924d](6cc924d)) * Parsing non-string assertion payloads in noir js ([#6079](#6079)) ([fbd78fd](fbd78fd)) * Proving benchmark ([#6051](#6051)) ([644bd85](644bd85)) * Proving the private kernels and app circuits ([#6112](#6112)) ([4a43fab](4a43fab)) * Publish transaction_fee ([#6126](#6126)) ([6f3a036](6f3a036)) * Recursive folding verifier and decider as ultra circuits and circuit simulator ([#6150](#6150)) ([acc8641](acc8641)) * Run noir-packages-test in Earthly ([#6174](#6174)) ([58e40c9](58e40c9)) * Set aztec private functions to be recursive ([#6192](#6192)) ([22625f8](22625f8)) * Use actual tx fee in gas token when charging fee ([#6166](#6166)) ([8418eac](8418eac)) ### Bug Fixes * **abstract-phase-manager:** Get available gas from latest kernel output ([#6102](#6102)) ([0fa509b](0fa509b)) * Aztec-run not exposing port for builder ([#6241](#6241)) ([a80c091](a80c091)) * Boxes use base image ([#6120](#6120)) ([ef2589a](ef2589a)) * Correct circuit size estimation for UltraHonk ([#6164](#6164)) ([ed84fe3](ed84fe3)) * Docs release ci setup ([#6159](#6159)) ([6d5cfe6](6d5cfe6)) * **docs:** Fix broken link in tree implementations page ([#6143](#6143)) ([b39f1db](b39f1db)) * **docs:** Update sandbox reference ([#6094](#6094)) ([0641085](0641085)) * Increase default number of proving agents ([#6146](#6146)) ([5ade36e](5ade36e)) * Install aztec-builder ([#6149](#6149)) ([0497dcf](0497dcf)) * **public-kernel:** Only validate start-gas for execution requests ([#6100](#6100)) ([3ec9303](3ec9303)) * Scope netlify to yarn bin ([#6162](#6162)) ([be8e3c0](be8e3c0)) * Set up the ci runner for doc deployment ([#6160](#6160)) ([e295900](e295900)) * Sporadic failure of GoblinRecursionTests.Vanilla ([#6218](#6218)) ([f4ecea5](f4ecea5)) * Use annotated type when checking declaration (noir-lang/noir#4966) ([3ed41a0](3ed41a0)) * Use pushed build images. ([#6154](#6154)) ([426f7a7](426f7a7)) * Use random id for proving jobs ([#6084](#6084)) ([0e0fc58](0e0fc58)) * Various aztec-builder issues ([#6233](#6233)) ([9a644ba](9a644ba)) ### Miscellaneous * **avm-simulator:** Avm's nested calls now stay internal and properly track PublicExecutionResult ([#6165](#6165)) ([9fd4f39](9fd4f39)) * **avm-simulator:** Make shifts take u8 ([#5905](#5905)) ([4719ff1](4719ff1)) * **avm-simulator:** Track recursive public execution result in avm-simulator for integration with old kernel ([#6106](#6106)) ([df3bcc6](df3bcc6)) * Bump bb.js timeouts ([#6196](#6196)) ([acab3de](acab3de)) * Check root parity is only enqueued once its deps are ready ([#6015](#6015)) ([c1120d1](c1120d1)) * **ci:** Force earthly prune if corrupted cache ([#6152](#6152)) ([3910314](3910314)) * **ci:** Improve dependency structure ([#6200](#6200)) ([3abc862](3abc862)) * **ci:** Migrate `protocol-circuits-gate-diff` to earthly ([#6204](#6204)) ([4b43295](4b43295)) * **ci:** More stable spot request ([#6212](#6212)) ([00156b5](00156b5)) * **ci:** Optimize e2e build ([#6202](#6202)) ([4614059](4614059)) * **ci:** Rollback earthly prune ([#6208](#6208)) ([3ccc6ac](3ccc6ac)) * **ci:** Try to make base image more stable ([#6144](#6144)) ([979a22d](979a22d)) * E2e workaround ([#6158](#6158)) ([7794d78](7794d78)) * Migrate acir tests to earthly ([#6142](#6142)) ([18c8ea8](18c8ea8)) * Rename instruction checks for side effects (noir-lang/noir#4945) ([3ed41a0](3ed41a0)) * Replace relative paths to noir-protocol-circuits ([cf543a6](cf543a6)) * Replace relative paths to noir-protocol-circuits ([53cf7bb](53cf7bb)) * Replace relative paths to noir-protocol-circuits ([ca29cea](ca29cea)) * Replace relative paths to noir-protocol-circuits ([08e538b](08e538b)) * Speedup static_call test ([#6157](#6157)) ([abe8875](abe8875)) * Switch Noir JS to use execute program instead of circuit (noir-lang/noir#4965) ([3ed41a0](3ed41a0)) * Use correct call type ([#6064](#6064)) ([b3ae289](b3ae289)) ### Documentation * Add GlobalVariables to CombinedConstantData ([#6071](#6071)) ([cf026d2](cf026d2)) * Update fees kernel tracking docs ([#6151](#6151)) ([7d80428](7d80428)) </details> <details><summary>barretenberg: 0.37.1</summary> ## [0.37.1](barretenberg-v0.37.0...barretenberg-v0.37.1) (2024-05-07) ### Features * **avm:** Add TransactionFee opcode to simulator ([#6210](#6210)) ([fcac844](fcac844)) * Honk flows exposed through wasm ([#6096](#6096)) ([c9b3206](c9b3206)) * Osxcross ([#6099](#6099)) ([6cc924d](6cc924d)) * Recursive folding verifier and decider as ultra circuits and circuit simulator ([#6150](#6150)) ([acc8641](acc8641)) ### Bug Fixes * Correct circuit size estimation for UltraHonk ([#6164](#6164)) ([ed84fe3](ed84fe3)) * Sporadic failure of GoblinRecursionTests.Vanilla ([#6218](#6218)) ([f4ecea5](f4ecea5)) ### Miscellaneous * Migrate acir tests to earthly ([#6142](#6142)) ([18c8ea8](18c8ea8)) </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.37.1</summary> ## [0.37.1](AztecProtocol/aztec-packages@aztec-package-v0.37.0...aztec-package-v0.37.1) (2024-05-07) ### Features * Proving benchmark ([#6051](AztecProtocol/aztec-packages#6051)) ([644bd85](AztecProtocol/aztec-packages@644bd85)) </details> <details><summary>barretenberg.js: 0.37.1</summary> ## [0.37.1](AztecProtocol/aztec-packages@barretenberg.js-v0.37.0...barretenberg.js-v0.37.1) (2024-05-07) ### Features * Honk flows exposed through wasm ([#6096](AztecProtocol/aztec-packages#6096)) ([c9b3206](AztecProtocol/aztec-packages@c9b3206)) * Run noir-packages-test in Earthly ([#6174](AztecProtocol/aztec-packages#6174)) ([58e40c9](AztecProtocol/aztec-packages@58e40c9)) ### Miscellaneous * Bump bb.js timeouts ([#6196](AztecProtocol/aztec-packages#6196)) ([acab3de](AztecProtocol/aztec-packages@acab3de)) * Migrate acir tests to earthly ([#6142](AztecProtocol/aztec-packages#6142)) ([18c8ea8](AztecProtocol/aztec-packages@18c8ea8)) </details> <details><summary>aztec-packages: 0.37.1</summary> ## [0.37.1](AztecProtocol/aztec-packages@aztec-packages-v0.37.0...aztec-packages-v0.37.1) (2024-05-07) ### Features * Add ciphertext computation for log header ([#6175](AztecProtocol/aztec-packages#6175)) ([3e05534](AztecProtocol/aztec-packages@3e05534)) * Add proving retries ([#6145](AztecProtocol/aztec-packages#6145)) ([39ab99c](AztecProtocol/aztec-packages@39ab99c)) * Add public teardown to circuit structs ([#6191](AztecProtocol/aztec-packages#6191)) ([03e1b93](AztecProtocol/aztec-packages@03e1b93)) * Always including debug data in a function artifact ([#6223](AztecProtocol/aztec-packages#6223)) ([5d6d22c](AztecProtocol/aztec-packages@5d6d22c)) * **avm:** Add TransactionFee opcode to simulator ([#6210](AztecProtocol/aztec-packages#6210)) ([fcac844](AztecProtocol/aztec-packages@fcac844)) * Complex outputs from acir call (noir-lang/noir#4952) ([3ed41a0](AztecProtocol/aztec-packages@3ed41a0)) * Expose set_public_teardown_function in private context ([#6199](AztecProtocol/aztec-packages#6199)) ([4d8b51c](AztecProtocol/aztec-packages@4d8b51c)) * Handle empty response foreign calls without an external resolver (noir-lang/noir#4959) ([3ed41a0](AztecProtocol/aztec-packages@3ed41a0)) * Hash logs inside circuit ([#5934](AztecProtocol/aztec-packages#5934)) ([6b99527](AztecProtocol/aztec-packages@6b99527)) * Honk flows exposed through wasm ([#6096](AztecProtocol/aztec-packages#6096)) ([c9b3206](AztecProtocol/aztec-packages@c9b3206)) * Include transaction fee in txreceipt ([#6139](AztecProtocol/aztec-packages#6139)) ([6785512](AztecProtocol/aztec-packages@6785512)) * Making keys getters complete ([#6171](AztecProtocol/aztec-packages#6171)) ([e85dde9](AztecProtocol/aztec-packages@e85dde9)) * Move noir-tests to earthly ([#6185](AztecProtocol/aztec-packages#6185)) ([4daea40](AztecProtocol/aztec-packages@4daea40)) * Note hash read requests fixes and refactoring ([#6125](AztecProtocol/aztec-packages#6125)) ([9d03f34](AztecProtocol/aztec-packages@9d03f34)) * Optimize array sets in if conditions (alternate version) (noir-lang/noir#4716) ([3ed41a0](AztecProtocol/aztec-packages@3ed41a0)) * Osxcross ([#6099](AztecProtocol/aztec-packages#6099)) ([6cc924d](AztecProtocol/aztec-packages@6cc924d)) * Parsing non-string assertion payloads in noir js ([#6079](AztecProtocol/aztec-packages#6079)) ([fbd78fd](AztecProtocol/aztec-packages@fbd78fd)) * Proving benchmark ([#6051](AztecProtocol/aztec-packages#6051)) ([644bd85](AztecProtocol/aztec-packages@644bd85)) * Proving the private kernels and app circuits ([#6112](AztecProtocol/aztec-packages#6112)) ([4a43fab](AztecProtocol/aztec-packages@4a43fab)) * Publish transaction_fee ([#6126](AztecProtocol/aztec-packages#6126)) ([6f3a036](AztecProtocol/aztec-packages@6f3a036)) * Recursive folding verifier and decider as ultra circuits and circuit simulator ([#6150](AztecProtocol/aztec-packages#6150)) ([acc8641](AztecProtocol/aztec-packages@acc8641)) * Run noir-packages-test in Earthly ([#6174](AztecProtocol/aztec-packages#6174)) ([58e40c9](AztecProtocol/aztec-packages@58e40c9)) * Set aztec private functions to be recursive ([#6192](AztecProtocol/aztec-packages#6192)) ([22625f8](AztecProtocol/aztec-packages@22625f8)) * Use actual tx fee in gas token when charging fee ([#6166](AztecProtocol/aztec-packages#6166)) ([8418eac](AztecProtocol/aztec-packages@8418eac)) ### Bug Fixes * **abstract-phase-manager:** Get available gas from latest kernel output ([#6102](AztecProtocol/aztec-packages#6102)) ([0fa509b](AztecProtocol/aztec-packages@0fa509b)) * Aztec-run not exposing port for builder ([#6241](AztecProtocol/aztec-packages#6241)) ([a80c091](AztecProtocol/aztec-packages@a80c091)) * Boxes use base image ([#6120](AztecProtocol/aztec-packages#6120)) ([ef2589a](AztecProtocol/aztec-packages@ef2589a)) * Correct circuit size estimation for UltraHonk ([#6164](AztecProtocol/aztec-packages#6164)) ([ed84fe3](AztecProtocol/aztec-packages@ed84fe3)) * Docs release ci setup ([#6159](AztecProtocol/aztec-packages#6159)) ([6d5cfe6](AztecProtocol/aztec-packages@6d5cfe6)) * **docs:** Fix broken link in tree implementations page ([#6143](AztecProtocol/aztec-packages#6143)) ([b39f1db](AztecProtocol/aztec-packages@b39f1db)) * **docs:** Update sandbox reference ([#6094](AztecProtocol/aztec-packages#6094)) ([0641085](AztecProtocol/aztec-packages@0641085)) * Increase default number of proving agents ([#6146](AztecProtocol/aztec-packages#6146)) ([5ade36e](AztecProtocol/aztec-packages@5ade36e)) * Install aztec-builder ([#6149](AztecProtocol/aztec-packages#6149)) ([0497dcf](AztecProtocol/aztec-packages@0497dcf)) * **public-kernel:** Only validate start-gas for execution requests ([#6100](AztecProtocol/aztec-packages#6100)) ([3ec9303](AztecProtocol/aztec-packages@3ec9303)) * Scope netlify to yarn bin ([#6162](AztecProtocol/aztec-packages#6162)) ([be8e3c0](AztecProtocol/aztec-packages@be8e3c0)) * Set up the ci runner for doc deployment ([#6160](AztecProtocol/aztec-packages#6160)) ([e295900](AztecProtocol/aztec-packages@e295900)) * Sporadic failure of GoblinRecursionTests.Vanilla ([#6218](AztecProtocol/aztec-packages#6218)) ([f4ecea5](AztecProtocol/aztec-packages@f4ecea5)) * Use annotated type when checking declaration (noir-lang/noir#4966) ([3ed41a0](AztecProtocol/aztec-packages@3ed41a0)) * Use pushed build images. ([#6154](AztecProtocol/aztec-packages#6154)) ([426f7a7](AztecProtocol/aztec-packages@426f7a7)) * Use random id for proving jobs ([#6084](AztecProtocol/aztec-packages#6084)) ([0e0fc58](AztecProtocol/aztec-packages@0e0fc58)) * Various aztec-builder issues ([#6233](AztecProtocol/aztec-packages#6233)) ([9a644ba](AztecProtocol/aztec-packages@9a644ba)) ### Miscellaneous * **avm-simulator:** Avm's nested calls now stay internal and properly track PublicExecutionResult ([#6165](AztecProtocol/aztec-packages#6165)) ([9fd4f39](AztecProtocol/aztec-packages@9fd4f39)) * **avm-simulator:** Make shifts take u8 ([#5905](AztecProtocol/aztec-packages#5905)) ([4719ff1](AztecProtocol/aztec-packages@4719ff1)) * **avm-simulator:** Track recursive public execution result in avm-simulator for integration with old kernel ([#6106](AztecProtocol/aztec-packages#6106)) ([df3bcc6](AztecProtocol/aztec-packages@df3bcc6)) * Bump bb.js timeouts ([#6196](AztecProtocol/aztec-packages#6196)) ([acab3de](AztecProtocol/aztec-packages@acab3de)) * Check root parity is only enqueued once its deps are ready ([#6015](AztecProtocol/aztec-packages#6015)) ([c1120d1](AztecProtocol/aztec-packages@c1120d1)) * **ci:** Force earthly prune if corrupted cache ([#6152](AztecProtocol/aztec-packages#6152)) ([3910314](AztecProtocol/aztec-packages@3910314)) * **ci:** Improve dependency structure ([#6200](AztecProtocol/aztec-packages#6200)) ([3abc862](AztecProtocol/aztec-packages@3abc862)) * **ci:** Migrate `protocol-circuits-gate-diff` to earthly ([#6204](AztecProtocol/aztec-packages#6204)) ([4b43295](AztecProtocol/aztec-packages@4b43295)) * **ci:** More stable spot request ([#6212](AztecProtocol/aztec-packages#6212)) ([00156b5](AztecProtocol/aztec-packages@00156b5)) * **ci:** Optimize e2e build ([#6202](AztecProtocol/aztec-packages#6202)) ([4614059](AztecProtocol/aztec-packages@4614059)) * **ci:** Rollback earthly prune ([#6208](AztecProtocol/aztec-packages#6208)) ([3ccc6ac](AztecProtocol/aztec-packages@3ccc6ac)) * **ci:** Try to make base image more stable ([#6144](AztecProtocol/aztec-packages#6144)) ([979a22d](AztecProtocol/aztec-packages@979a22d)) * E2e workaround ([#6158](AztecProtocol/aztec-packages#6158)) ([7794d78](AztecProtocol/aztec-packages@7794d78)) * Migrate acir tests to earthly ([#6142](AztecProtocol/aztec-packages#6142)) ([18c8ea8](AztecProtocol/aztec-packages@18c8ea8)) * Rename instruction checks for side effects (noir-lang/noir#4945) ([3ed41a0](AztecProtocol/aztec-packages@3ed41a0)) * Replace relative paths to noir-protocol-circuits ([cf543a6](AztecProtocol/aztec-packages@cf543a6)) * Replace relative paths to noir-protocol-circuits ([53cf7bb](AztecProtocol/aztec-packages@53cf7bb)) * Replace relative paths to noir-protocol-circuits ([ca29cea](AztecProtocol/aztec-packages@ca29cea)) * Replace relative paths to noir-protocol-circuits ([08e538b](AztecProtocol/aztec-packages@08e538b)) * Speedup static_call test ([#6157](AztecProtocol/aztec-packages#6157)) ([abe8875](AztecProtocol/aztec-packages@abe8875)) * Switch Noir JS to use execute program instead of circuit (noir-lang/noir#4965) ([3ed41a0](AztecProtocol/aztec-packages@3ed41a0)) * Use correct call type ([#6064](AztecProtocol/aztec-packages#6064)) ([b3ae289](AztecProtocol/aztec-packages@b3ae289)) ### Documentation * Add GlobalVariables to CombinedConstantData ([#6071](AztecProtocol/aztec-packages#6071)) ([cf026d2](AztecProtocol/aztec-packages@cf026d2)) * Update fees kernel tracking docs ([#6151](AztecProtocol/aztec-packages#6151)) ([7d80428](AztecProtocol/aztec-packages@7d80428)) </details> <details><summary>barretenberg: 0.37.1</summary> ## [0.37.1](AztecProtocol/aztec-packages@barretenberg-v0.37.0...barretenberg-v0.37.1) (2024-05-07) ### Features * **avm:** Add TransactionFee opcode to simulator ([#6210](AztecProtocol/aztec-packages#6210)) ([fcac844](AztecProtocol/aztec-packages@fcac844)) * Honk flows exposed through wasm ([#6096](AztecProtocol/aztec-packages#6096)) ([c9b3206](AztecProtocol/aztec-packages@c9b3206)) * Osxcross ([#6099](AztecProtocol/aztec-packages#6099)) ([6cc924d](AztecProtocol/aztec-packages@6cc924d)) * Recursive folding verifier and decider as ultra circuits and circuit simulator ([#6150](AztecProtocol/aztec-packages#6150)) ([acc8641](AztecProtocol/aztec-packages@acc8641)) ### Bug Fixes * Correct circuit size estimation for UltraHonk ([#6164](AztecProtocol/aztec-packages#6164)) ([ed84fe3](AztecProtocol/aztec-packages@ed84fe3)) * Sporadic failure of GoblinRecursionTests.Vanilla ([#6218](AztecProtocol/aztec-packages#6218)) ([f4ecea5](AztecProtocol/aztec-packages@f4ecea5)) ### Miscellaneous * Migrate acir tests to earthly ([#6142](AztecProtocol/aztec-packages#6142)) ([18c8ea8](AztecProtocol/aztec-packages@18c8ea8)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Largely undoing the changes made in [this](#6164) PR that added a call to `finalize_circuit` in the create_circuit methods in acir_format. This change was originally made in order to facilitate accurate final gate counts (previously handled via a hack). The finalize model has been reverted and the hack has been replaced with a method that computes the number of gates added by the `add_gates_to_ensure..` methods in the builders. This change was necessary in order to allow gates to be added to a circuit generated from acir, which is needed in ClientIvc accumulation.
Largely undoing the changes made in [this](AztecProtocol/aztec-packages#6164) PR that added a call to `finalize_circuit` in the create_circuit methods in acir_format. This change was originally made in order to facilitate accurate final gate counts (previously handled via a hack). The finalize model has been reverted and the hack has been replaced with a method that computes the number of gates added by the `add_gates_to_ensure..` methods in the builders. This change was necessary in order to allow gates to be added to a circuit generated from acir, which is needed in ClientIvc accumulation.
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.37.1</summary> [0.37.1](AztecProtocol/aztec-packages@aztec-package-v0.37.0...aztec-package-v0.37.1) (2024-05-07) * Proving benchmark ([AztecProtocol#6051](AztecProtocol#6051)) ([644bd85](AztecProtocol@644bd85)) </details> <details><summary>barretenberg.js: 0.37.1</summary> [0.37.1](AztecProtocol/aztec-packages@barretenberg.js-v0.37.0...barretenberg.js-v0.37.1) (2024-05-07) * Honk flows exposed through wasm ([AztecProtocol#6096](AztecProtocol#6096)) ([c9b3206](AztecProtocol@c9b3206)) * Run noir-packages-test in Earthly ([AztecProtocol#6174](AztecProtocol#6174)) ([58e40c9](AztecProtocol@58e40c9)) * Bump bb.js timeouts ([AztecProtocol#6196](AztecProtocol#6196)) ([acab3de](AztecProtocol@acab3de)) * Migrate acir tests to earthly ([AztecProtocol#6142](AztecProtocol#6142)) ([18c8ea8](AztecProtocol@18c8ea8)) </details> <details><summary>aztec-packages: 0.37.1</summary> [0.37.1](AztecProtocol/aztec-packages@aztec-packages-v0.37.0...aztec-packages-v0.37.1) (2024-05-07) * Add ciphertext computation for log header ([AztecProtocol#6175](AztecProtocol#6175)) ([3e05534](AztecProtocol@3e05534)) * Add proving retries ([AztecProtocol#6145](AztecProtocol#6145)) ([39ab99c](AztecProtocol@39ab99c)) * Add public teardown to circuit structs ([AztecProtocol#6191](AztecProtocol#6191)) ([03e1b93](AztecProtocol@03e1b93)) * Always including debug data in a function artifact ([AztecProtocol#6223](AztecProtocol#6223)) ([5d6d22c](AztecProtocol@5d6d22c)) * **avm:** Add TransactionFee opcode to simulator ([AztecProtocol#6210](AztecProtocol#6210)) ([fcac844](AztecProtocol@fcac844)) * Complex outputs from acir call (noir-lang/noir#4952) ([3ed41a0](AztecProtocol@3ed41a0)) * Expose set_public_teardown_function in private context ([AztecProtocol#6199](AztecProtocol#6199)) ([4d8b51c](AztecProtocol@4d8b51c)) * Handle empty response foreign calls without an external resolver (noir-lang/noir#4959) ([3ed41a0](AztecProtocol@3ed41a0)) * Hash logs inside circuit ([AztecProtocol#5934](AztecProtocol#5934)) ([6b99527](AztecProtocol@6b99527)) * Honk flows exposed through wasm ([AztecProtocol#6096](AztecProtocol#6096)) ([c9b3206](AztecProtocol@c9b3206)) * Include transaction fee in txreceipt ([AztecProtocol#6139](AztecProtocol#6139)) ([6785512](AztecProtocol@6785512)) * Making keys getters complete ([AztecProtocol#6171](AztecProtocol#6171)) ([e85dde9](AztecProtocol@e85dde9)) * Move noir-tests to earthly ([AztecProtocol#6185](AztecProtocol#6185)) ([4daea40](AztecProtocol@4daea40)) * Note hash read requests fixes and refactoring ([AztecProtocol#6125](AztecProtocol#6125)) ([9d03f34](AztecProtocol@9d03f34)) * Optimize array sets in if conditions (alternate version) (noir-lang/noir#4716) ([3ed41a0](AztecProtocol@3ed41a0)) * Osxcross ([AztecProtocol#6099](AztecProtocol#6099)) ([6cc924d](AztecProtocol@6cc924d)) * Parsing non-string assertion payloads in noir js ([AztecProtocol#6079](AztecProtocol#6079)) ([fbd78fd](AztecProtocol@fbd78fd)) * Proving benchmark ([AztecProtocol#6051](AztecProtocol#6051)) ([644bd85](AztecProtocol@644bd85)) * Proving the private kernels and app circuits ([AztecProtocol#6112](AztecProtocol#6112)) ([4a43fab](AztecProtocol@4a43fab)) * Publish transaction_fee ([AztecProtocol#6126](AztecProtocol#6126)) ([6f3a036](AztecProtocol@6f3a036)) * Recursive folding verifier and decider as ultra circuits and circuit simulator ([AztecProtocol#6150](AztecProtocol#6150)) ([acc8641](AztecProtocol@acc8641)) * Run noir-packages-test in Earthly ([AztecProtocol#6174](AztecProtocol#6174)) ([58e40c9](AztecProtocol@58e40c9)) * Set aztec private functions to be recursive ([AztecProtocol#6192](AztecProtocol#6192)) ([22625f8](AztecProtocol@22625f8)) * Use actual tx fee in gas token when charging fee ([AztecProtocol#6166](AztecProtocol#6166)) ([8418eac](AztecProtocol@8418eac)) * **abstract-phase-manager:** Get available gas from latest kernel output ([AztecProtocol#6102](AztecProtocol#6102)) ([0fa509b](AztecProtocol@0fa509b)) * Aztec-run not exposing port for builder ([AztecProtocol#6241](AztecProtocol#6241)) ([a80c091](AztecProtocol@a80c091)) * Boxes use base image ([AztecProtocol#6120](AztecProtocol#6120)) ([ef2589a](AztecProtocol@ef2589a)) * Correct circuit size estimation for UltraHonk ([AztecProtocol#6164](AztecProtocol#6164)) ([ed84fe3](AztecProtocol@ed84fe3)) * Docs release ci setup ([AztecProtocol#6159](AztecProtocol#6159)) ([6d5cfe6](AztecProtocol@6d5cfe6)) * **docs:** Fix broken link in tree implementations page ([AztecProtocol#6143](AztecProtocol#6143)) ([b39f1db](AztecProtocol@b39f1db)) * **docs:** Update sandbox reference ([AztecProtocol#6094](AztecProtocol#6094)) ([0641085](AztecProtocol@0641085)) * Increase default number of proving agents ([AztecProtocol#6146](AztecProtocol#6146)) ([5ade36e](AztecProtocol@5ade36e)) * Install aztec-builder ([AztecProtocol#6149](AztecProtocol#6149)) ([0497dcf](AztecProtocol@0497dcf)) * **public-kernel:** Only validate start-gas for execution requests ([AztecProtocol#6100](AztecProtocol#6100)) ([3ec9303](AztecProtocol@3ec9303)) * Scope netlify to yarn bin ([AztecProtocol#6162](AztecProtocol#6162)) ([be8e3c0](AztecProtocol@be8e3c0)) * Set up the ci runner for doc deployment ([AztecProtocol#6160](AztecProtocol#6160)) ([e295900](AztecProtocol@e295900)) * Sporadic failure of GoblinRecursionTests.Vanilla ([AztecProtocol#6218](AztecProtocol#6218)) ([f4ecea5](AztecProtocol@f4ecea5)) * Use annotated type when checking declaration (noir-lang/noir#4966) ([3ed41a0](AztecProtocol@3ed41a0)) * Use pushed build images. ([AztecProtocol#6154](AztecProtocol#6154)) ([426f7a7](AztecProtocol@426f7a7)) * Use random id for proving jobs ([AztecProtocol#6084](AztecProtocol#6084)) ([0e0fc58](AztecProtocol@0e0fc58)) * Various aztec-builder issues ([AztecProtocol#6233](AztecProtocol#6233)) ([9a644ba](AztecProtocol@9a644ba)) * **avm-simulator:** Avm's nested calls now stay internal and properly track PublicExecutionResult ([AztecProtocol#6165](AztecProtocol#6165)) ([9fd4f39](AztecProtocol@9fd4f39)) * **avm-simulator:** Make shifts take u8 ([AztecProtocol#5905](AztecProtocol#5905)) ([4719ff1](AztecProtocol@4719ff1)) * **avm-simulator:** Track recursive public execution result in avm-simulator for integration with old kernel ([AztecProtocol#6106](AztecProtocol#6106)) ([df3bcc6](AztecProtocol@df3bcc6)) * Bump bb.js timeouts ([AztecProtocol#6196](AztecProtocol#6196)) ([acab3de](AztecProtocol@acab3de)) * Check root parity is only enqueued once its deps are ready ([AztecProtocol#6015](AztecProtocol#6015)) ([c1120d1](AztecProtocol@c1120d1)) * **ci:** Force earthly prune if corrupted cache ([AztecProtocol#6152](AztecProtocol#6152)) ([3910314](AztecProtocol@3910314)) * **ci:** Improve dependency structure ([AztecProtocol#6200](AztecProtocol#6200)) ([3abc862](AztecProtocol@3abc862)) * **ci:** Migrate `protocol-circuits-gate-diff` to earthly ([AztecProtocol#6204](AztecProtocol#6204)) ([4b43295](AztecProtocol@4b43295)) * **ci:** More stable spot request ([AztecProtocol#6212](AztecProtocol#6212)) ([00156b5](AztecProtocol@00156b5)) * **ci:** Optimize e2e build ([AztecProtocol#6202](AztecProtocol#6202)) ([4614059](AztecProtocol@4614059)) * **ci:** Rollback earthly prune ([AztecProtocol#6208](AztecProtocol#6208)) ([3ccc6ac](AztecProtocol@3ccc6ac)) * **ci:** Try to make base image more stable ([AztecProtocol#6144](AztecProtocol#6144)) ([979a22d](AztecProtocol@979a22d)) * E2e workaround ([AztecProtocol#6158](AztecProtocol#6158)) ([7794d78](AztecProtocol@7794d78)) * Migrate acir tests to earthly ([AztecProtocol#6142](AztecProtocol#6142)) ([18c8ea8](AztecProtocol@18c8ea8)) * Rename instruction checks for side effects (noir-lang/noir#4945) ([3ed41a0](AztecProtocol@3ed41a0)) * Replace relative paths to noir-protocol-circuits ([cf543a6](AztecProtocol@cf543a6)) * Replace relative paths to noir-protocol-circuits ([53cf7bb](AztecProtocol@53cf7bb)) * Replace relative paths to noir-protocol-circuits ([ca29cea](AztecProtocol@ca29cea)) * Replace relative paths to noir-protocol-circuits ([08e538b](AztecProtocol@08e538b)) * Speedup static_call test ([AztecProtocol#6157](AztecProtocol#6157)) ([abe8875](AztecProtocol@abe8875)) * Switch Noir JS to use execute program instead of circuit (noir-lang/noir#4965) ([3ed41a0](AztecProtocol@3ed41a0)) * Use correct call type ([AztecProtocol#6064](AztecProtocol#6064)) ([b3ae289](AztecProtocol@b3ae289)) * Add GlobalVariables to CombinedConstantData ([AztecProtocol#6071](AztecProtocol#6071)) ([cf026d2](AztecProtocol@cf026d2)) * Update fees kernel tracking docs ([AztecProtocol#6151](AztecProtocol#6151)) ([7d80428](AztecProtocol@7d80428)) </details> <details><summary>barretenberg: 0.37.1</summary> [0.37.1](AztecProtocol/aztec-packages@barretenberg-v0.37.0...barretenberg-v0.37.1) (2024-05-07) * **avm:** Add TransactionFee opcode to simulator ([AztecProtocol#6210](AztecProtocol#6210)) ([fcac844](AztecProtocol@fcac844)) * Honk flows exposed through wasm ([AztecProtocol#6096](AztecProtocol#6096)) ([c9b3206](AztecProtocol@c9b3206)) * Osxcross ([AztecProtocol#6099](AztecProtocol#6099)) ([6cc924d](AztecProtocol@6cc924d)) * Recursive folding verifier and decider as ultra circuits and circuit simulator ([AztecProtocol#6150](AztecProtocol#6150)) ([acc8641](AztecProtocol@acc8641)) * Correct circuit size estimation for UltraHonk ([AztecProtocol#6164](AztecProtocol#6164)) ([ed84fe3](AztecProtocol@ed84fe3)) * Sporadic failure of GoblinRecursionTests.Vanilla ([AztecProtocol#6218](AztecProtocol#6218)) ([f4ecea5](AztecProtocol@f4ecea5)) * Migrate acir tests to earthly ([AztecProtocol#6142](AztecProtocol#6142)) ([18c8ea8](AztecProtocol@18c8ea8)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Resolves #6161
Look into the issue for more context on the problem.
I moved
add_gates_to_ensure_all_polys_are_non_zero
to be part offinalize_circuit
for both the goblin and ultra builder. Then upon creating an AcirFormat circuit we now call finalize circuit. Previously we were having to attach an additional buffer as a hack as we were usingget_total_circuit_size
which correctly estimated a finalized circuit size for plonk, but not for Honk. We will now have these additional gates for UltraPlonk as well, but this is fine as they are not that many gates (~12 gates) and we are removing plonk anyway.