-
Notifications
You must be signed in to change notification settings - Fork 270
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(bb): constexpr simplifications #7906
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @fcarreiro and the rest of your teammates on Graphite |
{ | ||
static_assert(Max >= Min); | ||
static_assert(Inc >= 1); | ||
return []<size_t... Is>(std::index_sequence<Is...>) { |
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 I add tests for this? Is not super self-evident.
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 can also just leave the original one for this, since the recursion didn't seem to be hurting.
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 I add tests for this? Is not super self-evident.
I can also just leave the original one for this, since the recursion didn't seem to be hurting.
Your call
50cf392
to
56f7857
Compare
56f7857
to
fc844f1
Compare
Changes to circuit sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
Merge activity
|
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.49.0</summary> ## [0.49.0](aztec-package-v0.48.0...aztec-package-v0.49.0) (2024-08-15) ### ⚠ BREAKING CHANGES * Sequencer no longer proves ([#7860](#7860)) ### Miscellaneous * Enable execute command on aws ecs services ([#7975](#7975)) ([4331bc6](4331bc6)) * Sequencer no longer proves ([#7860](#7860)) ([7168290](7168290)) * Terraform template for prover-node ([#7846](#7846)) ([546f946](546f946)) </details> <details><summary>barretenberg.js: 0.49.0</summary> ## [0.49.0](barretenberg.js-v0.48.0...barretenberg.js-v0.49.0) (2024-08-15) ### Miscellaneous * Pin yarn versions in noir-projects and bb/ts ([#7988](#7988)) ([83f33a1](83f33a1)) </details> <details><summary>aztec-packages: 0.49.0</summary> ## [0.49.0](aztec-packages-v0.48.0...aztec-packages-v0.49.0) (2024-08-15) ### ⚠ BREAKING CHANGES * alternative key registry contract ([#7523](#7523)) * Sequencer no longer proves ([#7860](#7860)) ### Features * Add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) ([b1c7374](b1c7374)) * Add `Quoted::as_expr` and `Expr::as_function_call` (noir-lang/noir#5708) ([91042c7](91042c7)) * Add `Type::as_struct` (noir-lang/noir#5680) ([b1c7374](b1c7374)) * Add `Type::get_trait_impl` (noir-lang/noir#5716) ([ccbef55](ccbef55)) * Add `Type::implements` (noir-lang/noir#5701) ([91042c7](91042c7)) * Add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) ([b1c7374](b1c7374)) * Add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) ([b1c7374](b1c7374)) * Add a limited form of arithmetic on generics (noir-lang/noir#5625) ([b1c7374](b1c7374)) * Add array_to_str_lossy (noir-lang/noir#5613) ([b1c7374](b1c7374)) * Add generate-secret-and-hash to cli ([#7977](#7977)) ([cdf62a0](cdf62a0)) * Add mutating FunctionDefinition functions (noir-lang/noir#5685) ([b1c7374](b1c7374)) * Add proven flag to sent tx wait opts ([#7950](#7950)) ([e80e7d2](e80e7d2)) * Add some `Module` comptime functions (noir-lang/noir#5684) ([b1c7374](b1c7374)) * Alternative key registry contract ([#7523](#7523)) ([3e6a20f](3e6a20f)) * **avm:** More no fake rows + virtual dyn gas (part 1) ([#7942](#7942)) ([9e8ba96](9e8ba96)) * Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) ([b1c7374](b1c7374)) * Destroy_note_unsafe ([#7891](#7891)) ([5cda7ba](5cda7ba)) * **docs:** Nits ([#7838](#7838)) ([a76c999](a76c999)) * Enable UltraHonk verifier ([#7923](#7923)) ([5e8b4a8](5e8b4a8)), closes [#7373](#7373) * Implement closures in the comptime interpreter (noir-lang/noir#5682) ([b1c7374](b1c7374)) * IVC integration tests using new accumulate model ([#7946](#7946)) ([c527ae9](c527ae9)) * LSP autocompletion for use statement (noir-lang/noir#5704) ([91042c7](91042c7)) * LSP closing brace hints (noir-lang/noir#5686) ([b1c7374](b1c7374)) * LSP fields, functions and methods completion after "." and "::" (noir-lang/noir#5714) ([ccbef55](ccbef55)) * LSP hover now includes "Go to" links (noir-lang/noir#5677) ([b1c7374](b1c7374)) * LSP path completion (noir-lang/noir#5712) ([91042c7](91042c7)) * **noir_js:** Expose UltraHonk and integration tests (noir-lang/noir#5656) ([b1c7374](b1c7374)) * Optimizing PrivateFPC ([#7980](#7980)) ([d018335](d018335)) * Private refunds optimizations ([#7968](#7968)) ([cea8295](cea8295)) * Resolve arguments to attributes (noir-lang/noir#5649) ([b1c7374](b1c7374)) * **ssa:** Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) ([b1c7374](b1c7374)) * Sync from aztec-packages (noir-lang/noir#5718) ([ccbef55](ccbef55)) * Update honk ultra_recursive_verifier to do aggregation ([#7582](#7582)) ([a96a5ad](a96a5ad)) ### Bug Fixes * Add locations to most SSA instructions (noir-lang/noir#5697) ([b1c7374](b1c7374)) * Allow txs on block zero ([#7928](#7928)) ([5e25cd6](5e25cd6)) * Build error in e2e_block_building ([0d0646d](0d0646d)) * **debugger:** Update the debugger to handle the new Brillig debug metadata format (noir-lang/noir#5706) ([91042c7](91042c7)) * Delete forks after proving job has finished ([#7972](#7972)) ([2b4a842](2b4a842)) * Deploy verifier cmd ([#7983](#7983)) ([f4fa797](f4fa797)) * Derive generic types (noir-lang/noir#5674) ([b1c7374](b1c7374)) * Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) ([b1c7374](b1c7374)) * Do not mount ssh agent on OSX ([#7991](#7991)) ([950db8e](950db8e)) * **docs:** Add redirects for website links ([#7979](#7979)) ([e890814](e890814)) * Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) ([b1c7374](b1c7374)) * Fix where clause issue in items generated from attributes (noir-lang/noir#5673) ([b1c7374](b1c7374)) * Lay plumbing for having simulations throw an error if they cannot be added in a block ([#7839](#7839)) ([eedbc11](eedbc11)) * Let a trait impl that relies on another trait work (noir-lang/noir#5646) ([b1c7374](b1c7374)) * Only record bytecode if >0 ([#7932](#7932)) ([3f145b3](3f145b3)) * Remove missing file ([#7941](#7941)) ([4d9290f](4d9290f)) * Replace unused ArrayGet/Set with constrain if possibly out of bounds (noir-lang/noir#5691) ([ccbef55](ccbef55)) * Switch verify proof to arrays (noir-lang/noir#5664) ([b1c7374](b1c7374)) * Track L1 block for last L2 block body retrieved ([#7927](#7927)) ([cd36be4](cd36be4)), closes [#7918](#7918) * Unexpose get note nonces on pxe ([#7889](#7889)) ([163c3a6](163c3a6)) * Use data dir for lmdb forks ([#7973](#7973)) ([5b53d43](5b53d43)) * Workaround from_slice with nested slices (noir-lang/noir#5648) ([b1c7374](b1c7374)) ### Miscellaneous * Add docs tip about filenames between commands (noir-lang/noir#5695) ([b1c7374](b1c7374)) * Add env var to disable bb cleanup ([#7936](#7936)) ([806a370](806a370)) * Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) ([b1c7374](b1c7374)) * Add tests for noir<>ivc integration testing ([#7931](#7931)) ([7cc47a6](7cc47a6)) * Allow passing custom executors to fuzzer (noir-lang/noir#5710) ([91042c7](91042c7)) * **avm:** Fewer errors unless testing ([#7943](#7943)) ([33b65a9](33b65a9)) * **bb:** Constexpr simplifications ([#7906](#7906)) ([65d3b7f](65d3b7f)) * **bb:** Prereq work for polynomial mem optimization ([#7949](#7949)) ([5ca5138](5ca5138)) * **ci:** Print detailed target timings ([#7934](#7934)) ([fb574aa](fb574aa)) * Do not clean up bb files on err ([#7985](#7985)) ([75c6768](75c6768)) * Enable execute command on aws ecs services ([#7975](#7975)) ([4331bc6](4331bc6)) * Ensure bootstrapped networks have no pending blocks when proving starts ([#7986](#7986)) ([fb471b3](fb471b3)) * Fork logs and prover job catch ([#7982](#7982)) ([69bde53](69bde53)) * Move siloing to reset ([#7871](#7871)) ([014b5f0](014b5f0)) * Pin yarn versions in noir-projects and bb/ts ([#7988](#7988)) ([83f33a1](83f33a1)) * Release Noir(0.33.0) (noir-lang/noir#5550) ([b1c7374](b1c7374)) * Replace relative paths to noir-protocol-circuits ([cd5f138](cd5f138)) * Replace relative paths to noir-protocol-circuits ([6f3cef9](6f3cef9)) * Replace relative paths to noir-protocol-circuits ([54c4441](54c4441)) * Replace VERSION with IMAGE on provernet template ([d5e48aa](d5e48aa)) * Sequencer no longer proves ([#7860](#7860)) ([7168290](7168290)) * Simplify registry ([#7939](#7939)) ([8e0418f](8e0418f)) * Terraform template for prover-node ([#7846](#7846)) ([546f946](546f946)) * Update provernet docker compose template ([#7929](#7929)) ([33d47d2](33d47d2)) * Updating token with refunds ([#7969](#7969)) ([504deba](504deba)) </details> <details><summary>barretenberg: 0.49.0</summary> ## [0.49.0](barretenberg-v0.48.0...barretenberg-v0.49.0) (2024-08-15) ### Features * **avm:** More no fake rows + virtual dyn gas (part 1) ([#7942](#7942)) ([9e8ba96](9e8ba96)) * IVC integration tests using new accumulate model ([#7946](#7946)) ([c527ae9](c527ae9)) * Update honk ultra_recursive_verifier to do aggregation ([#7582](#7582)) ([a96a5ad](a96a5ad)) ### Miscellaneous * **avm:** Fewer errors unless testing ([#7943](#7943)) ([33b65a9](33b65a9)) * **bb:** Constexpr simplifications ([#7906](#7906)) ([65d3b7f](65d3b7f)) * **bb:** Prereq work for polynomial mem optimization ([#7949](#7949)) ([5ca5138](5ca5138)) </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.49.0</summary> ## [0.49.0](AztecProtocol/aztec-packages@aztec-package-v0.48.0...aztec-package-v0.49.0) (2024-08-15) ### ⚠ BREAKING CHANGES * Sequencer no longer proves ([#7860](AztecProtocol/aztec-packages#7860)) ### Miscellaneous * Enable execute command on aws ecs services ([#7975](AztecProtocol/aztec-packages#7975)) ([4331bc6](AztecProtocol/aztec-packages@4331bc6)) * Sequencer no longer proves ([#7860](AztecProtocol/aztec-packages#7860)) ([7168290](AztecProtocol/aztec-packages@7168290)) * Terraform template for prover-node ([#7846](AztecProtocol/aztec-packages#7846)) ([546f946](AztecProtocol/aztec-packages@546f946)) </details> <details><summary>barretenberg.js: 0.49.0</summary> ## [0.49.0](AztecProtocol/aztec-packages@barretenberg.js-v0.48.0...barretenberg.js-v0.49.0) (2024-08-15) ### Miscellaneous * Pin yarn versions in noir-projects and bb/ts ([#7988](AztecProtocol/aztec-packages#7988)) ([83f33a1](AztecProtocol/aztec-packages@83f33a1)) </details> <details><summary>aztec-packages: 0.49.0</summary> ## [0.49.0](AztecProtocol/aztec-packages@aztec-packages-v0.48.0...aztec-packages-v0.49.0) (2024-08-15) ### ⚠ BREAKING CHANGES * alternative key registry contract ([#7523](AztecProtocol/aztec-packages#7523)) * Sequencer no longer proves ([#7860](AztecProtocol/aztec-packages#7860)) ### Features * Add `FunctionDefinition::parameters`, `FunctionDefinition::return_type` and `impl Eq for Quoted` (noir-lang/noir#5681) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add `Quoted::as_expr` and `Expr::as_function_call` (noir-lang/noir#5708) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * Add `Type::as_struct` (noir-lang/noir#5680) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add `Type::get_trait_impl` (noir-lang/noir#5716) ([ccbef55](AztecProtocol/aztec-packages@ccbef55)) * Add `Type::implements` (noir-lang/noir#5701) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * Add `Type::is_field` and `Type::as_integer` (noir-lang/noir#5670) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add `Type` methods: `as_tuple`, `as_slice`, `as_array`, `as_constant`, `is_bool` (noir-lang/noir#5678) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add a limited form of arithmetic on generics (noir-lang/noir#5625) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add array_to_str_lossy (noir-lang/noir#5613) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add generate-secret-and-hash to cli ([#7977](AztecProtocol/aztec-packages#7977)) ([cdf62a0](AztecProtocol/aztec-packages@cdf62a0)) * Add mutating FunctionDefinition functions (noir-lang/noir#5685) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add proven flag to sent tx wait opts ([#7950](AztecProtocol/aztec-packages#7950)) ([e80e7d2](AztecProtocol/aztec-packages@e80e7d2)) * Add some `Module` comptime functions (noir-lang/noir#5684) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Alternative key registry contract ([#7523](AztecProtocol/aztec-packages#7523)) ([3e6a20f](AztecProtocol/aztec-packages@3e6a20f)) * **avm:** More no fake rows + virtual dyn gas (part 1) ([#7942](AztecProtocol/aztec-packages#7942)) ([9e8ba96](AztecProtocol/aztec-packages@9e8ba96)) * Derive `Ord` and `Hash` in the stdlib; add `std::meta::make_impl` helper (noir-lang/noir#5683) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Destroy_note_unsafe ([#7891](AztecProtocol/aztec-packages#7891)) ([5cda7ba](AztecProtocol/aztec-packages@5cda7ba)) * **docs:** Nits ([#7838](AztecProtocol/aztec-packages#7838)) ([a76c999](AztecProtocol/aztec-packages@a76c999)) * Enable UltraHonk verifier ([#7923](AztecProtocol/aztec-packages#7923)) ([5e8b4a8](AztecProtocol/aztec-packages@5e8b4a8)), closes [#7373](AztecProtocol/aztec-packages#7373) * Implement closures in the comptime interpreter (noir-lang/noir#5682) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * IVC integration tests using new accumulate model ([#7946](AztecProtocol/aztec-packages#7946)) ([c527ae9](AztecProtocol/aztec-packages@c527ae9)) * LSP autocompletion for use statement (noir-lang/noir#5704) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * LSP closing brace hints (noir-lang/noir#5686) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * LSP fields, functions and methods completion after "." and "::" (noir-lang/noir#5714) ([ccbef55](AztecProtocol/aztec-packages@ccbef55)) * LSP hover now includes "Go to" links (noir-lang/noir#5677) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * LSP path completion (noir-lang/noir#5712) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * **noir_js:** Expose UltraHonk and integration tests (noir-lang/noir#5656) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Optimizing PrivateFPC ([#7980](AztecProtocol/aztec-packages#7980)) ([d018335](AztecProtocol/aztec-packages@d018335)) * Private refunds optimizations ([#7968](AztecProtocol/aztec-packages#7968)) ([cea8295](AztecProtocol/aztec-packages@cea8295)) * Resolve arguments to attributes (noir-lang/noir#5649) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * **ssa:** Simple serialization of unoptimized SSA to file (noir-lang/noir#5679) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Sync from aztec-packages (noir-lang/noir#5718) ([ccbef55](AztecProtocol/aztec-packages@ccbef55)) * Update honk ultra_recursive_verifier to do aggregation ([#7582](AztecProtocol/aztec-packages#7582)) ([a96a5ad](AztecProtocol/aztec-packages@a96a5ad)) ### Bug Fixes * Add locations to most SSA instructions (noir-lang/noir#5697) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Allow txs on block zero ([#7928](AztecProtocol/aztec-packages#7928)) ([5e25cd6](AztecProtocol/aztec-packages@5e25cd6)) * Build error in e2e_block_building ([0d0646d](AztecProtocol/aztec-packages@0d0646d)) * **debugger:** Update the debugger to handle the new Brillig debug metadata format (noir-lang/noir#5706) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * Delete forks after proving job has finished ([#7972](AztecProtocol/aztec-packages#7972)) ([2b4a842](AztecProtocol/aztec-packages@2b4a842)) * Deploy verifier cmd ([#7983](AztecProtocol/aztec-packages#7983)) ([f4fa797](AztecProtocol/aztec-packages@f4fa797)) * Derive generic types (noir-lang/noir#5674) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Do not duplicate redundant Brillig debug metadata (noir-lang/noir#5696) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Do not mount ssh agent on OSX ([#7991](AztecProtocol/aztec-packages#7991)) ([950db8e](AztecProtocol/aztec-packages@950db8e)) * **docs:** Add redirects for website links ([#7979](AztecProtocol/aztec-packages#7979)) ([e890814](AztecProtocol/aztec-packages@e890814)) * Elaborate struct & trait annotations in the correct module (noir-lang/noir#5643) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Fix where clause issue in items generated from attributes (noir-lang/noir#5673) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Lay plumbing for having simulations throw an error if they cannot be added in a block ([#7839](AztecProtocol/aztec-packages#7839)) ([eedbc11](AztecProtocol/aztec-packages@eedbc11)) * Let a trait impl that relies on another trait work (noir-lang/noir#5646) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Only record bytecode if >0 ([#7932](AztecProtocol/aztec-packages#7932)) ([3f145b3](AztecProtocol/aztec-packages@3f145b3)) * Remove missing file ([#7941](AztecProtocol/aztec-packages#7941)) ([4d9290f](AztecProtocol/aztec-packages@4d9290f)) * Replace unused ArrayGet/Set with constrain if possibly out of bounds (noir-lang/noir#5691) ([ccbef55](AztecProtocol/aztec-packages@ccbef55)) * Switch verify proof to arrays (noir-lang/noir#5664) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Track L1 block for last L2 block body retrieved ([#7927](AztecProtocol/aztec-packages#7927)) ([cd36be4](AztecProtocol/aztec-packages@cd36be4)), closes [#7918](AztecProtocol/aztec-packages#7918) * Unexpose get note nonces on pxe ([#7889](AztecProtocol/aztec-packages#7889)) ([163c3a6](AztecProtocol/aztec-packages@163c3a6)) * Use data dir for lmdb forks ([#7973](AztecProtocol/aztec-packages#7973)) ([5b53d43](AztecProtocol/aztec-packages@5b53d43)) * Workaround from_slice with nested slices (noir-lang/noir#5648) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) ### Miscellaneous * Add docs tip about filenames between commands (noir-lang/noir#5695) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add env var to disable bb cleanup ([#7936](AztecProtocol/aztec-packages#7936)) ([806a370](AztecProtocol/aztec-packages@806a370)) * Add parser support for `<MyType as Trait>::ident` (noir-lang/noir#5688) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Add tests for noir<>ivc integration testing ([#7931](AztecProtocol/aztec-packages#7931)) ([7cc47a6](AztecProtocol/aztec-packages@7cc47a6)) * Allow passing custom executors to fuzzer (noir-lang/noir#5710) ([91042c7](AztecProtocol/aztec-packages@91042c7)) * **avm:** Fewer errors unless testing ([#7943](AztecProtocol/aztec-packages#7943)) ([33b65a9](AztecProtocol/aztec-packages@33b65a9)) * **bb:** Constexpr simplifications ([#7906](AztecProtocol/aztec-packages#7906)) ([65d3b7f](AztecProtocol/aztec-packages@65d3b7f)) * **bb:** Prereq work for polynomial mem optimization ([#7949](AztecProtocol/aztec-packages#7949)) ([5ca5138](AztecProtocol/aztec-packages@5ca5138)) * **ci:** Print detailed target timings ([#7934](AztecProtocol/aztec-packages#7934)) ([fb574aa](AztecProtocol/aztec-packages@fb574aa)) * Do not clean up bb files on err ([#7985](AztecProtocol/aztec-packages#7985)) ([75c6768](AztecProtocol/aztec-packages@75c6768)) * Enable execute command on aws ecs services ([#7975](AztecProtocol/aztec-packages#7975)) ([4331bc6](AztecProtocol/aztec-packages@4331bc6)) * Ensure bootstrapped networks have no pending blocks when proving starts ([#7986](AztecProtocol/aztec-packages#7986)) ([fb471b3](AztecProtocol/aztec-packages@fb471b3)) * Fork logs and prover job catch ([#7982](AztecProtocol/aztec-packages#7982)) ([69bde53](AztecProtocol/aztec-packages@69bde53)) * Move siloing to reset ([#7871](AztecProtocol/aztec-packages#7871)) ([014b5f0](AztecProtocol/aztec-packages@014b5f0)) * Pin yarn versions in noir-projects and bb/ts ([#7988](AztecProtocol/aztec-packages#7988)) ([83f33a1](AztecProtocol/aztec-packages@83f33a1)) * Release Noir(0.33.0) (noir-lang/noir#5550) ([b1c7374](AztecProtocol/aztec-packages@b1c7374)) * Replace relative paths to noir-protocol-circuits ([cd5f138](AztecProtocol/aztec-packages@cd5f138)) * Replace relative paths to noir-protocol-circuits ([6f3cef9](AztecProtocol/aztec-packages@6f3cef9)) * Replace relative paths to noir-protocol-circuits ([54c4441](AztecProtocol/aztec-packages@54c4441)) * Replace VERSION with IMAGE on provernet template ([d5e48aa](AztecProtocol/aztec-packages@d5e48aa)) * Sequencer no longer proves ([#7860](AztecProtocol/aztec-packages#7860)) ([7168290](AztecProtocol/aztec-packages@7168290)) * Simplify registry ([#7939](AztecProtocol/aztec-packages#7939)) ([8e0418f](AztecProtocol/aztec-packages@8e0418f)) * Terraform template for prover-node ([#7846](AztecProtocol/aztec-packages#7846)) ([546f946](AztecProtocol/aztec-packages@546f946)) * Update provernet docker compose template ([#7929](AztecProtocol/aztec-packages#7929)) ([33d47d2](AztecProtocol/aztec-packages@33d47d2)) * Updating token with refunds ([#7969](AztecProtocol/aztec-packages#7969)) ([504deba](AztecProtocol/aztec-packages@504deba)) </details> <details><summary>barretenberg: 0.49.0</summary> ## [0.49.0](AztecProtocol/aztec-packages@barretenberg-v0.48.0...barretenberg-v0.49.0) (2024-08-15) ### Features * **avm:** More no fake rows + virtual dyn gas (part 1) ([#7942](AztecProtocol/aztec-packages#7942)) ([9e8ba96](AztecProtocol/aztec-packages@9e8ba96)) * IVC integration tests using new accumulate model ([#7946](AztecProtocol/aztec-packages#7946)) ([c527ae9](AztecProtocol/aztec-packages@c527ae9)) * Update honk ultra_recursive_verifier to do aggregation ([#7582](AztecProtocol/aztec-packages#7582)) ([a96a5ad](AztecProtocol/aztec-packages@a96a5ad)) ### Miscellaneous * **avm:** Fewer errors unless testing ([#7943](AztecProtocol/aztec-packages#7943)) ([33b65a9](AztecProtocol/aztec-packages@33b65a9)) * **bb:** Constexpr simplifications ([#7906](AztecProtocol/aztec-packages#7906)) ([65d3b7f](AztecProtocol/aztec-packages@65d3b7f)) * **bb:** Prereq work for polynomial mem optimization ([#7949](AztecProtocol/aztec-packages#7949)) ([5ca5138](AztecProtocol/aztec-packages@5ca5138)) </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 recursion and simplify some template magic, with some new C++20 tricks I learned (also cleaned up unused ones).
Didn't notice any compilation or runtime changes.