-
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(avm): pilcom compatibility changes #10544
Conversation
f9ecd3d
to
75b7025
Compare
Changes to public function bytecode sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
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! Might be good to have someone else take a look too since I have little experience with PIL and the pilcom-generated code. But it does look like a nice set of improvements.
RefVector<const FF> as_vector() const; | ||
FF ALL_ENTITIES; |
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.
Much cleaner!
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.
This is what GCC doesn't like!
// Risky but oh so efficient. | ||
FF& get_column(ColumnAndShifts col) | ||
{ | ||
static_assert(sizeof(*this) == sizeof(FF) * static_cast<size_t>(ColumnAndShifts::NUM_COLUMNS)); | ||
return reinterpret_cast<FF*>(this)[static_cast<size_t>(col)]; | ||
} |
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.
Why is this risky, and why is this efficient?
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.
"Risky" because I'm reinterpreting the struct as a bunch of consecutive FFs. This could or could not be true, depending on what the compiler decides to do, padding, etc. Given FFs are 32 bits, it's likely to be a packed struct (so, yes, consecutive FFs). I have the static assert to make sure of that.
Efficient because it lets us access the row both by member row.some_column
and by index row.get_colum(index)
. This allows many optimizations and we don't need to codegen as much.
However, fear not, in the new design the full row is only used for testing!
// Risky but oh so efficient. | ||
FF& get_column(ColumnAndShifts col) | ||
{ | ||
static_assert(sizeof(*this) == sizeof(FF) * static_cast<size_t>(ColumnAndShifts::NUM_COLUMNS)); | ||
return reinterpret_cast<FF*>(this)[static_cast<size_t>(col)]; | ||
} | ||
|
||
const FF& get_column(ColumnAndShifts col) const | ||
{ | ||
static_assert(sizeof(*this) == sizeof(FF) * static_cast<size_t>(ColumnAndShifts::NUM_COLUMNS)); | ||
return reinterpret_cast<FF*>(this)[static_cast<size_t>(col)]; | ||
} |
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.
What's the difference between these two? Just that one is const?
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.
Yep! Just the const. It's a common C++ thing, if I don't define both you wouldn't be able to read a column unless you have a mutable object.
|
||
static constexpr size_t SR_ALU_MULTIPLICATION_FF = 20; | ||
static constexpr size_t SR_ALU_PROD_MUL = 24; | ||
static constexpr size_t SR_DIVISION_RELATION = 31; | ||
static constexpr size_t SR_ALU_OP_NOT = 32; | ||
}; |
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.
What are these showing up in gadget files?
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.
Will address in your later comment :)
using namespace bb::Avm_vm; | ||
using namespace bb::avm; |
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.
yeah...
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.
Namespaces are a bit of a mess. Hopefully we can clean them up once we transition.
|
||
{{#each labels as |label|}} | ||
static constexpr size_t SR_{{label.1}} = {{label.0}}; | ||
{{/each}} |
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'd throw a comment above this generated block // Subrelation labels
or something similar. I didn't know what they were at first. I still don't really "know" what a subrelation label is tbh 😆
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.
Actually I had! hehe. But then even files without labels were getting the comment and I thought that would be confusing. I might add it in a followup PR.
Merge activity
|
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! Might be good to have someone else take a look too since I have little experience with PIL and the pilcom-generated code. But it does look like a nice set of improvements.
Actually it wasn't meant to be an improvement necessarily. My goal is just to make it work with both old and new witgen at the same time if possible. There will actually be duplication and unused stuff, I expect.
RefVector<const FF> as_vector() const; | ||
FF ALL_ENTITIES; |
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.
This is what GCC doesn't like!
|
||
static constexpr size_t SR_ALU_MULTIPLICATION_FF = 20; | ||
static constexpr size_t SR_ALU_PROD_MUL = 24; | ||
static constexpr size_t SR_DIVISION_RELATION = 31; | ||
static constexpr size_t SR_ALU_OP_NOT = 32; | ||
}; |
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.
Will address in your later comment :)
using namespace bb::Avm_vm; | ||
using namespace bb::avm; |
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.
Namespaces are a bit of a mess. Hopefully we can clean them up once we transition.
|
||
{{#each labels as |label|}} | ||
static constexpr size_t SR_{{label.1}} = {{label.0}}; | ||
{{/each}} |
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.
Actually I had! hehe. But then even files without labels were getting the comment and I thought that would be confusing. I might add it in a followup PR.
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.
Replying to some comments I forgot
// Risky but oh so efficient. | ||
FF& get_column(ColumnAndShifts col) | ||
{ | ||
static_assert(sizeof(*this) == sizeof(FF) * static_cast<size_t>(ColumnAndShifts::NUM_COLUMNS)); | ||
return reinterpret_cast<FF*>(this)[static_cast<size_t>(col)]; | ||
} |
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.
"Risky" because I'm reinterpreting the struct as a bunch of consecutive FFs. This could or could not be true, depending on what the compiler decides to do, padding, etc. Given FFs are 32 bits, it's likely to be a packed struct (so, yes, consecutive FFs). I have the static assert to make sure of that.
Efficient because it lets us access the row both by member row.some_column
and by index row.get_colum(index)
. This allows many optimizations and we don't need to codegen as much.
However, fear not, in the new design the full row is only used for testing!
// Risky but oh so efficient. | ||
FF& get_column(ColumnAndShifts col) | ||
{ | ||
static_assert(sizeof(*this) == sizeof(FF) * static_cast<size_t>(ColumnAndShifts::NUM_COLUMNS)); | ||
return reinterpret_cast<FF*>(this)[static_cast<size_t>(col)]; | ||
} | ||
|
||
const FF& get_column(ColumnAndShifts col) const | ||
{ | ||
static_assert(sizeof(*this) == sizeof(FF) * static_cast<size_t>(ColumnAndShifts::NUM_COLUMNS)); | ||
return reinterpret_cast<FF*>(this)[static_cast<size_t>(col)]; | ||
} |
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.
Yep! Just the const. It's a common C++ thing, if I don't define both you wouldn't be able to read a column unless you have a mutable object.
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.67.0</summary> ## [0.67.0](aztec-package-v0.66.0...aztec-package-v0.67.0) (2024-12-13) ### Features * Deploy faucet ([#10580](#10580)) ([09e95a1](09e95a1)) * Expose P2P service API and clean up logs ([#10552](#10552)) ([98cea58](98cea58)), closes [#10299](#10299) * PXE in the browser ([#10353](#10353)) ([676f673](676f673)) * PXE sync on demand ([#10613](#10613)) ([b2f1159](b2f1159)) ### Bug Fixes * Do not load pino-pretty in production bundles ([#10578](#10578)) ([e515e6e](e515e6e)) * Tweaking Fr and Fq fromString functionality to distinguish number-only strings ([#10529](#10529)) ([736fce1](736fce1)) ### Miscellaneous * Bump jest default test timeout to 30s ([#10550](#10550)) ([841bf48](841bf48)) * Rename logger modules ([#10404](#10404)) ([7441767](7441767)), closes [#10125](#10125) </details> <details><summary>barretenberg.js: 0.67.0</summary> ## [0.67.0](barretenberg.js-v0.66.0...barretenberg.js-v0.67.0) (2024-12-13) ### Features * CIVC browser proveThenVerify ([#10431](#10431)) ([8c064d4](8c064d4)) * Keccak honk proving in bb.js ([#10489](#10489)) ([e0d7431](e0d7431)) ### Bug Fixes * Bump hard coded SRS size for wasm from 2^19 to 2^10 ([#10596](#10596)) ([a37f82d](a37f82d)) </details> <details><summary>aztec-packages: 0.67.0</summary> ## [0.67.0](aztec-packages-v0.66.0...aztec-packages-v0.67.0) (2024-12-13) ### ⚠ BREAKING CHANGES * **stdlib:** Remove Schnorr (noir-lang/noir#6749) * lower public tx gas limit to 6M ([#10635](#10635)) * l2 gas maximum is per-TX-public-portion. AVM startup gas is now 20k. ([#10214](#10214)) * rm outgoing logs ([#10486](#10486)) * rename Header to BlockHeader ([#10372](#10372)) * several format string fixes and improvements (noir-lang/noir#6703) ### Features * `std::hint::black_box` function. (noir-lang/noir#6529) ([3166529](3166529)) * Add rollup circuit sample inputs ([#10608](#10608)) ([775b459](775b459)) * Add verify proof calls to private kernels ([#10533](#10533)) ([ce0eee0](ce0eee0)) * Adding fuzzer for ultra bigfield and relaxing ultra circuit checker ([#10433](#10433)) ([da4c47c](da4c47c)) * Allow making range queries to prometheus in tests ([f9810cc](f9810cc)) * Allow metrics to be instantly flushed ([f9810cc](f9810cc)) * AVM inserts fee write on txs with public calls ([#10394](#10394)) ([98ba747](98ba747)) * **ci:** Initial compilation report on test_programs (noir-lang/noir#6731) ([3166529](3166529)) * CIVC browser proveThenVerify ([#10431](#10431)) ([8c064d4](8c064d4)) * Cli wallet improvements ([#10425](#10425)) ([cc8bd80](cc8bd80)) * **cli:** Run command on the package closest to the current directory (noir-lang/noir#6752) ([3166529](3166529)) * DB Metrics now use labels for easier querying ([#10572](#10572)) ([adadfa5](adadfa5)) * Deploy a network using master each night night ([#10536](#10536)) ([015ec0e](015ec0e)), closes [#10474](#10474) [#10473](#10473) * Deploy faucet ([#10580](#10580)) ([09e95a1](09e95a1)) * Do not make unique revertible note hashes in the private kernels ([#10524](#10524)) ([d327da1](d327da1)) * Emulating blocks and correct (non-partial) note discovery in txe ([#10356](#10356)) ([6f209fb](6f209fb)) * Expose P2P service API and clean up logs ([#10552](#10552)) ([98cea58](98cea58)), closes [#10299](#10299) * GETCONTRACTINSTANCE and bytecode retrieval perform nullifier membership checks ([#10445](#10445)) ([9301253](9301253)), closes [#10377](#10377) [#10379](#10379) * Handle nested calls in witgen ([#10384](#10384)) ([1e21f31](1e21f31)) * Keccak honk proving in bb.js ([#10489](#10489)) ([e0d7431](e0d7431)) * Metrics via terraform ([#10594](#10594)) ([e21069d](e21069d)), closes [#10191](#10191) [#10439](#10439) * Modify HonkRecursionConstraint to handle IPA claims ([#10469](#10469)) ([a204d1b](a204d1b)) * Order attribute execution by their source ordering (noir-lang/noir#6326) ([3166529](3166529)) * Persistence in helm chart for validator and boot node ([#10543](#10543)) ([f9810cc](f9810cc)) * Prover-client exec timing analysis scripts. ([82434a2](82434a2)) * PXE in the browser ([#10353](#10353)) ([676f673](676f673)) * PXE sync on demand ([#10613](#10613)) ([b2f1159](b2f1159)) * Remove auto verify mode from ClientIVC ([#10599](#10599)) ([b1d8b97](b1d8b97)) * Rename Header to BlockHeader ([#10372](#10372)) ([0803964](0803964)) * Rm outgoing logs ([#10486](#10486)) ([c28beec](c28beec)) * Sayonara old hints ([#10547](#10547)) ([dede16e](dede16e)) * Several `nargo test` improvements (noir-lang/noir#6728) ([3166529](3166529)) * Several Updates in SMT verification module (part 1) ([#10437](#10437)) ([0c37672](0c37672)) * **ssa:** Implement missing brillig constraints SSA check (noir-lang/noir#6658) ([3166529](3166529)) * Sync from aztec-packages (noir-lang/noir#6730) ([3166529](3166529)) * **test:** Check that `nargo::ops::transform_program` is idempotent (noir-lang/noir#6694) ([3166529](3166529)) * Unified create circuit from acir ([#10440](#10440)) ([a4dfe13](a4dfe13)) * Update and generate test Prover.tomls for protocol circuits ([#10659](#10659)) ([eb5f18a](eb5f18a)) ### Bug Fixes * [#10473](#10473) ([015ec0e](015ec0e)) * [#10474](#10474) ([015ec0e](015ec0e)) * Allow empty loop headers (noir-lang/noir#6736) ([3166529](3166529)) * Always respect aztec image pull policy ([#10617](#10617)) ([e7686f1](e7686f1)) * Attempt to fix flake in e2e cross chain messaging test ([#10634](#10634)) ([a69502c](a69502c)) * Bad merge on boxes ([#10579](#10579)) ([9b26651](9b26651)) * Boxes webpack config ([#10548](#10548)) ([49f9418](49f9418)) * Bump hard coded SRS size for wasm from 2^19 to 2^10 ([#10596](#10596)) ([a37f82d](a37f82d)) * Bump timeout for failing data store tests ([#10639](#10639)) ([c75fee0](c75fee0)) * Correct size in bytes of a complete address ([#10574](#10574)) ([e72b988](e72b988)) * Destroy old masternet if we can ([#10584](#10584)) ([679684d](679684d)) * Do not attempt proof quote on empty epoch ([#10557](#10557)) ([39d3bc2](39d3bc2)) * Do not load pino-pretty in production bundles ([#10578](#10578)) ([e515e6e](e515e6e)) * Do not merge expressions that contain output witnesses (noir-lang/noir#6757) ([3166529](3166529)) * Ensure LMDB store metrics have hard coded descriptions ([#10642](#10642)) ([043e2c2](043e2c2)) * Formatting master ([#10583](#10583)) ([79e49c9](79e49c9)) * Git dependency trailing slash (noir-lang/noir#6725) ([f4ed66b](f4ed66b)) * Improve type error when indexing a variable of unknown type (noir-lang/noir#6744) ([3166529](3166529)) * Link in README.md ([#10471](#10471)) ([fca9600](fca9600)) * Log level not honored with multi transport ([#10643](#10643)) ([e1e5864](e1e5864)) * Map entry point indexes after all ssa passes (noir-lang/noir#6740) ([3166529](3166529)) * Memory leak in the broker ([#10567](#10567)) ([ecc037f](ecc037f)) * Mispelled aztec ([#10491](#10491)) ([866a5f7](866a5f7)) * Parser would hand on function type with colon in it (noir-lang/noir#6764) ([3166529](3166529)) * Pass salt to deploy-l1-contracts.sh ([#10586](#10586)) ([d6be2c8](d6be2c8)) * Pod anti affinity spans all namespaces ([#10475](#10475)) ([2d4dc3d](2d4dc3d)) * Print ssa blocks without recursion (noir-lang/noir#6715) ([f4ed66b](f4ed66b)) * Println("{{}}") was printing "{{}}" instead of "{}" (noir-lang/noir#6745) ([3166529](3166529)) * Properly trace storage reads to slots never written before in AVM ([#10560](#10560)) ([410c730](410c730)) * Remove auto verify in cbind ivc prove ([#10627](#10627)) ([d773423](d773423)) * Remove otel collector endpoint ([#10604](#10604)) ([276a82c](276a82c)) * Sequencer negative histogram recodings ([#10490](#10490)) ([623f3e2](623f3e2)) * Several format string fixes and improvements (noir-lang/noir#6703) ([f4ed66b](f4ed66b)) * Simulation error enriching ([#10595](#10595)) ([2c36088](2c36088)) * Temporary fix for private kernel tail proving ([#10593](#10593)) ([d194cdf](d194cdf)) * Track published bytecode ([#10636](#10636)) ([cadb4ce](cadb4ce)) * Tweaking Fr and Fq fromString functionality to distinguish number-only strings ([#10529](#10529)) ([736fce1](736fce1)) * Use e2e structure in cbind ([#10585](#10585)) ([985aef1](985aef1)) ### Miscellaneous * Add a few regression tests for [#6674](#6674) (noir-lang/noir#6687) ([f4ed66b](f4ed66b)) * Add script to check for critical libraries supporting a given Noir version (noir-lang/noir#6697) ([f4ed66b](f4ed66b)) * **avm:** Gas constants adjustment based on trace rows accounting ([#10614](#10614)) ([fc729ef](fc729ef)), closes [#10368](#10368) * **avm:** More pilcom compat changes ([#10569](#10569)) ([f18d701](f18d701)) * **avm:** Pilcom compatibility changes ([#10544](#10544)) ([fbc8c0e](fbc8c0e)) * **avm:** Reduce the number of gates for fake AVM recursive verifier ([#10619](#10619)) ([0be44b2](0be44b2)) * **avm:** Remove function selector from AvmExecutionEnvironment ([#10532](#10532)) ([fef5f93](fef5f93)) * Boxes tests cause resource issues ([#10676](#10676)) ([ccf1c78](ccf1c78)) * Bump avm tree test timeout ([323e2eb](323e2eb)) * Bump exp1 config to 48 validators ([#10577](#10577)) ([0379718](0379718)) * Bump jest default test timeout to 30s ([#10550](#10550)) ([841bf48](841bf48)) * Bump mocha timeout ([#10571](#10571)) ([35e525f](35e525f)) * Bump proven timeout ([#10680](#10680)) ([3f5cf6c](3f5cf6c)) * Bump prover agents ([#10626](#10626)) ([64eea72](64eea72)) * **ci:** Extend compiler memory report to external repos (noir-lang/noir#6768) ([3166529](3166529)) * **ci:** Handle external libraries in compilation timing report (noir-lang/noir#6750) ([3166529](3166529)) * **ci:** Prune launch templates job ([#10561](#10561)) ([d6e4f4c](d6e4f4c)) * **ci:** Reenable `rerun-check` job ([#10653](#10653)) ([b2c4f48](b2c4f48)) * Cleanup unrolling pass (noir-lang/noir#6743) ([3166529](3166529)) * Disable broken test ([#10663](#10663)) ([0771260](0771260)) * Disable ivc integration yarn tests ([#10625](#10625)) ([7c50107](7c50107)) * **docs:** Update branding (noir-lang/noir#6759) ([3166529](3166529)) * Documenting convenient redirect to the spartan creator ([#10565](#10565)) ([b94b8ee](b94b8ee)) * Enable nightly tests ([#10542](#10542)) ([4fa068c](4fa068c)) * Faucet LB if public, proving devnet ([#10665](#10665)) ([996d921](996d921)) * Fix build issue from bad merge ([85c0676](85c0676)) * Fix migration notes ([#10656](#10656)) ([333d6ce](333d6ce)) * Fix public keys deserialization ([#10647](#10647)) ([12473c8](12473c8)) * Flush archiver metrics on startup ([f9810cc](f9810cc)) * Free memory for silenced warnings early (noir-lang/noir#6748) ([3166529](3166529)) * Give validators/boot-nodes 100Gi in network configs ([f9810cc](f9810cc)) * Handle errors in e2e teardown to fix e2e token ([#10590](#10590)) ([5d4cdc1](5d4cdc1)) * Increase test timeout to reduce flakes ([#10641](#10641)) ([4ade2ad](4ade2ad)) * Inject k8s pod name and uid ([#10633](#10633)) ([eb472ff](eb472ff)) * L2 gas maximum is per-TX-public-portion. AVM startup gas is now 20k. ([#10214](#10214)) ([1365401](1365401)) * Load balancers for the boot node, longer epochs ([#10632](#10632)) ([001bbb1](001bbb1)) * Lock CI to use ubuntu 22.04 (noir-lang/noir#6755) ([3166529](3166529)) * Log when validator enters commitee ([#10615](#10615)) ([7746a39](7746a39)), closes [#10337](#10337) * Lower public tx gas limit to 6M ([#10635](#10635)) ([9836036](9836036)) * Merge queue CI ([#10629](#10629)) ([835e6fd](835e6fd)) * More bots for exp1 ([#10671](#10671)) ([0ba2425](0ba2425)) * More logs cleanup ([#10630](#10630)) ([00c629c](00c629c)) * Move some nr utils around ([#10553](#10553)) ([d132f83](d132f83)) * Moving stuff from the aztec sequencer node guide into this README ([#10570](#10570)) ([93b8b1b](93b8b1b)) * Optimise grand product computation round based on active ranges ([#10460](#10460)) ([7fa8f84](7fa8f84)) * Optimise older opcodes in reverse order (noir-lang/noir#6476) ([f4ed66b](f4ed66b)) * Redo typo PR by Madmaxs2 (noir-lang/noir#6721) ([f4ed66b](f4ed66b)) * Reduce bb_prover_full_rollup to a single block epoch test ([#10679](#10679)) ([0c2a4d9](0c2a4d9)) * Remove Proxy from json rpc client ([#10554](#10554)) ([93b1c45](93b1c45)) * Remove warnings from protocol circuits ([#10556](#10556)) ([e065e05](e065e05)) * Rename logger modules ([#10404](#10404)) ([7441767](7441767)), closes [#10125](#10125) * Rename pxe script generate-package-info to generate ([#10534](#10534)) ([ead9c0b](ead9c0b)) * Replace relative paths to noir-protocol-circuits ([acfd5df](acfd5df)) * Replace relative paths to noir-protocol-circuits ([6c0533f](6c0533f)) * Replace relative paths to noir-protocol-circuits ([a245b95](a245b95)) * Replace relative paths to noir-protocol-circuits ([153c720](153c720)) * Replace relative paths to noir-protocol-circuits ([a080436](a080436)) * Replace relative paths to noir-protocol-circuits ([8419f5a](8419f5a)) * Secret derivation funcs naming cleanup ([#10637](#10637)) ([5c50711](5c50711)) * Simplify MSM with constant folding (noir-lang/noir#6650) ([f4ed66b](f4ed66b)) * **stdlib:** Remove Schnorr (noir-lang/noir#6749) ([3166529](3166529)) * Try replace callstack with a linked list (noir-lang/noir#6747) ([3166529](3166529)) * Tweak validator logs ([#10597](#10597)) ([9eaa527](9eaa527)) * Unprove devnet ([#10683](#10683)) ([1c92f77](1c92f77)) * Update url to 2.5.4 (noir-lang/noir#6741) ([3166529](3166529)) * Use `NumericType` not `Type` for casts and numeric constants (noir-lang/noir#6769) ([3166529](3166529)) * **val:** Reject proposals not for the current or next slot ([#10450](#10450)) ([27620f5](27620f5)) </details> <details><summary>barretenberg: 0.67.0</summary> ## [0.67.0](barretenberg-v0.66.0...barretenberg-v0.67.0) (2024-12-13) ### ⚠ BREAKING CHANGES * lower public tx gas limit to 6M ([#10635](#10635)) * l2 gas maximum is per-TX-public-portion. AVM startup gas is now 20k. ([#10214](#10214)) * rename Header to BlockHeader ([#10372](#10372)) ### Features * Add verify proof calls to private kernels ([#10533](#10533)) ([ce0eee0](ce0eee0)) * Adding fuzzer for ultra bigfield and relaxing ultra circuit checker ([#10433](#10433)) ([da4c47c](da4c47c)) * AVM inserts fee write on txs with public calls ([#10394](#10394)) ([98ba747](98ba747)) * CIVC browser proveThenVerify ([#10431](#10431)) ([8c064d4](8c064d4)) * GETCONTRACTINSTANCE and bytecode retrieval perform nullifier membership checks ([#10445](#10445)) ([9301253](9301253)), closes [#10377](#10377) [#10379](#10379) * Handle nested calls in witgen ([#10384](#10384)) ([1e21f31](1e21f31)) * Keccak honk proving in bb.js ([#10489](#10489)) ([e0d7431](e0d7431)) * Modify HonkRecursionConstraint to handle IPA claims ([#10469](#10469)) ([a204d1b](a204d1b)) * Remove auto verify mode from ClientIVC ([#10599](#10599)) ([b1d8b97](b1d8b97)) * Rename Header to BlockHeader ([#10372](#10372)) ([0803964](0803964)) * Sayonara old hints ([#10547](#10547)) ([dede16e](dede16e)) * Several Updates in SMT verification module (part 1) ([#10437](#10437)) ([0c37672](0c37672)) * Unified create circuit from acir ([#10440](#10440)) ([a4dfe13](a4dfe13)) ### Bug Fixes * Remove auto verify in cbind ivc prove ([#10627](#10627)) ([d773423](d773423)) * Use e2e structure in cbind ([#10585](#10585)) ([985aef1](985aef1)) ### Miscellaneous * **avm:** Gas constants adjustment based on trace rows accounting ([#10614](#10614)) ([fc729ef](fc729ef)), closes [#10368](#10368) * **avm:** More pilcom compat changes ([#10569](#10569)) ([f18d701](f18d701)) * **avm:** Pilcom compatibility changes ([#10544](#10544)) ([fbc8c0e](fbc8c0e)) * L2 gas maximum is per-TX-public-portion. AVM startup gas is now 20k. ([#10214](#10214)) ([1365401](1365401)) * Lower public tx gas limit to 6M ([#10635](#10635)) ([9836036](9836036)) * Optimise grand product computation round based on active ranges ([#10460](#10460)) ([7fa8f84](7fa8f84)) </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.67.0</summary> ## [0.67.0](AztecProtocol/aztec-packages@aztec-package-v0.66.0...aztec-package-v0.67.0) (2024-12-13) ### Features * Deploy faucet ([#10580](AztecProtocol/aztec-packages#10580)) ([09e95a1](AztecProtocol/aztec-packages@09e95a1)) * Expose P2P service API and clean up logs ([#10552](AztecProtocol/aztec-packages#10552)) ([98cea58](AztecProtocol/aztec-packages@98cea58)), closes [#10299](AztecProtocol/aztec-packages#10299) * PXE in the browser ([#10353](AztecProtocol/aztec-packages#10353)) ([676f673](AztecProtocol/aztec-packages@676f673)) * PXE sync on demand ([#10613](AztecProtocol/aztec-packages#10613)) ([b2f1159](AztecProtocol/aztec-packages@b2f1159)) ### Bug Fixes * Do not load pino-pretty in production bundles ([#10578](AztecProtocol/aztec-packages#10578)) ([e515e6e](AztecProtocol/aztec-packages@e515e6e)) * Tweaking Fr and Fq fromString functionality to distinguish number-only strings ([#10529](AztecProtocol/aztec-packages#10529)) ([736fce1](AztecProtocol/aztec-packages@736fce1)) ### Miscellaneous * Bump jest default test timeout to 30s ([#10550](AztecProtocol/aztec-packages#10550)) ([841bf48](AztecProtocol/aztec-packages@841bf48)) * Rename logger modules ([#10404](AztecProtocol/aztec-packages#10404)) ([7441767](AztecProtocol/aztec-packages@7441767)), closes [#10125](AztecProtocol/aztec-packages#10125) </details> <details><summary>barretenberg.js: 0.67.0</summary> ## [0.67.0](AztecProtocol/aztec-packages@barretenberg.js-v0.66.0...barretenberg.js-v0.67.0) (2024-12-13) ### Features * CIVC browser proveThenVerify ([#10431](AztecProtocol/aztec-packages#10431)) ([8c064d4](AztecProtocol/aztec-packages@8c064d4)) * Keccak honk proving in bb.js ([#10489](AztecProtocol/aztec-packages#10489)) ([e0d7431](AztecProtocol/aztec-packages@e0d7431)) ### Bug Fixes * Bump hard coded SRS size for wasm from 2^19 to 2^10 ([#10596](AztecProtocol/aztec-packages#10596)) ([a37f82d](AztecProtocol/aztec-packages@a37f82d)) </details> <details><summary>aztec-packages: 0.67.0</summary> ## [0.67.0](AztecProtocol/aztec-packages@aztec-packages-v0.66.0...aztec-packages-v0.67.0) (2024-12-13) ### ⚠ BREAKING CHANGES * **stdlib:** Remove Schnorr (noir-lang/noir#6749) * lower public tx gas limit to 6M ([#10635](AztecProtocol/aztec-packages#10635)) * l2 gas maximum is per-TX-public-portion. AVM startup gas is now 20k. ([#10214](AztecProtocol/aztec-packages#10214)) * rm outgoing logs ([#10486](AztecProtocol/aztec-packages#10486)) * rename Header to BlockHeader ([#10372](AztecProtocol/aztec-packages#10372)) * several format string fixes and improvements (noir-lang/noir#6703) ### Features * `std::hint::black_box` function. (noir-lang/noir#6529) ([3166529](AztecProtocol/aztec-packages@3166529)) * Add rollup circuit sample inputs ([#10608](AztecProtocol/aztec-packages#10608)) ([775b459](AztecProtocol/aztec-packages@775b459)) * Add verify proof calls to private kernels ([#10533](AztecProtocol/aztec-packages#10533)) ([ce0eee0](AztecProtocol/aztec-packages@ce0eee0)) * Adding fuzzer for ultra bigfield and relaxing ultra circuit checker ([#10433](AztecProtocol/aztec-packages#10433)) ([da4c47c](AztecProtocol/aztec-packages@da4c47c)) * Allow making range queries to prometheus in tests ([f9810cc](AztecProtocol/aztec-packages@f9810cc)) * Allow metrics to be instantly flushed ([f9810cc](AztecProtocol/aztec-packages@f9810cc)) * AVM inserts fee write on txs with public calls ([#10394](AztecProtocol/aztec-packages#10394)) ([98ba747](AztecProtocol/aztec-packages@98ba747)) * **ci:** Initial compilation report on test_programs (noir-lang/noir#6731) ([3166529](AztecProtocol/aztec-packages@3166529)) * CIVC browser proveThenVerify ([#10431](AztecProtocol/aztec-packages#10431)) ([8c064d4](AztecProtocol/aztec-packages@8c064d4)) * Cli wallet improvements ([#10425](AztecProtocol/aztec-packages#10425)) ([cc8bd80](AztecProtocol/aztec-packages@cc8bd80)) * **cli:** Run command on the package closest to the current directory (noir-lang/noir#6752) ([3166529](AztecProtocol/aztec-packages@3166529)) * DB Metrics now use labels for easier querying ([#10572](AztecProtocol/aztec-packages#10572)) ([adadfa5](AztecProtocol/aztec-packages@adadfa5)) * Deploy a network using master each night night ([#10536](AztecProtocol/aztec-packages#10536)) ([015ec0e](AztecProtocol/aztec-packages@015ec0e)), closes [#10474](AztecProtocol/aztec-packages#10474) [#10473](AztecProtocol/aztec-packages#10473) * Deploy faucet ([#10580](AztecProtocol/aztec-packages#10580)) ([09e95a1](AztecProtocol/aztec-packages@09e95a1)) * Do not make unique revertible note hashes in the private kernels ([#10524](AztecProtocol/aztec-packages#10524)) ([d327da1](AztecProtocol/aztec-packages@d327da1)) * Emulating blocks and correct (non-partial) note discovery in txe ([#10356](AztecProtocol/aztec-packages#10356)) ([6f209fb](AztecProtocol/aztec-packages@6f209fb)) * Expose P2P service API and clean up logs ([#10552](AztecProtocol/aztec-packages#10552)) ([98cea58](AztecProtocol/aztec-packages@98cea58)), closes [#10299](AztecProtocol/aztec-packages#10299) * GETCONTRACTINSTANCE and bytecode retrieval perform nullifier membership checks ([#10445](AztecProtocol/aztec-packages#10445)) ([9301253](AztecProtocol/aztec-packages@9301253)), closes [#10377](AztecProtocol/aztec-packages#10377) [#10379](AztecProtocol/aztec-packages#10379) * Handle nested calls in witgen ([#10384](AztecProtocol/aztec-packages#10384)) ([1e21f31](AztecProtocol/aztec-packages@1e21f31)) * Keccak honk proving in bb.js ([#10489](AztecProtocol/aztec-packages#10489)) ([e0d7431](AztecProtocol/aztec-packages@e0d7431)) * Metrics via terraform ([#10594](AztecProtocol/aztec-packages#10594)) ([e21069d](AztecProtocol/aztec-packages@e21069d)), closes [#10191](AztecProtocol/aztec-packages#10191) [#10439](AztecProtocol/aztec-packages#10439) * Modify HonkRecursionConstraint to handle IPA claims ([#10469](AztecProtocol/aztec-packages#10469)) ([a204d1b](AztecProtocol/aztec-packages@a204d1b)) * Order attribute execution by their source ordering (noir-lang/noir#6326) ([3166529](AztecProtocol/aztec-packages@3166529)) * Persistence in helm chart for validator and boot node ([#10543](AztecProtocol/aztec-packages#10543)) ([f9810cc](AztecProtocol/aztec-packages@f9810cc)) * Prover-client exec timing analysis scripts. ([82434a2](AztecProtocol/aztec-packages@82434a2)) * PXE in the browser ([#10353](AztecProtocol/aztec-packages#10353)) ([676f673](AztecProtocol/aztec-packages@676f673)) * PXE sync on demand ([#10613](AztecProtocol/aztec-packages#10613)) ([b2f1159](AztecProtocol/aztec-packages@b2f1159)) * Remove auto verify mode from ClientIVC ([#10599](AztecProtocol/aztec-packages#10599)) ([b1d8b97](AztecProtocol/aztec-packages@b1d8b97)) * Rename Header to BlockHeader ([#10372](AztecProtocol/aztec-packages#10372)) ([0803964](AztecProtocol/aztec-packages@0803964)) * Rm outgoing logs ([#10486](AztecProtocol/aztec-packages#10486)) ([c28beec](AztecProtocol/aztec-packages@c28beec)) * Sayonara old hints ([#10547](AztecProtocol/aztec-packages#10547)) ([dede16e](AztecProtocol/aztec-packages@dede16e)) * Several `nargo test` improvements (noir-lang/noir#6728) ([3166529](AztecProtocol/aztec-packages@3166529)) * Several Updates in SMT verification module (part 1) ([#10437](AztecProtocol/aztec-packages#10437)) ([0c37672](AztecProtocol/aztec-packages@0c37672)) * **ssa:** Implement missing brillig constraints SSA check (noir-lang/noir#6658) ([3166529](AztecProtocol/aztec-packages@3166529)) * Sync from aztec-packages (noir-lang/noir#6730) ([3166529](AztecProtocol/aztec-packages@3166529)) * **test:** Check that `nargo::ops::transform_program` is idempotent (noir-lang/noir#6694) ([3166529](AztecProtocol/aztec-packages@3166529)) * Unified create circuit from acir ([#10440](AztecProtocol/aztec-packages#10440)) ([a4dfe13](AztecProtocol/aztec-packages@a4dfe13)) * Update and generate test Prover.tomls for protocol circuits ([#10659](AztecProtocol/aztec-packages#10659)) ([eb5f18a](AztecProtocol/aztec-packages@eb5f18a)) ### Bug Fixes * [#10473](AztecProtocol/aztec-packages#10473) ([015ec0e](AztecProtocol/aztec-packages@015ec0e)) * [#10474](AztecProtocol/aztec-packages#10474) ([015ec0e](AztecProtocol/aztec-packages@015ec0e)) * Allow empty loop headers (noir-lang/noir#6736) ([3166529](AztecProtocol/aztec-packages@3166529)) * Always respect aztec image pull policy ([#10617](AztecProtocol/aztec-packages#10617)) ([e7686f1](AztecProtocol/aztec-packages@e7686f1)) * Attempt to fix flake in e2e cross chain messaging test ([#10634](AztecProtocol/aztec-packages#10634)) ([a69502c](AztecProtocol/aztec-packages@a69502c)) * Bad merge on boxes ([#10579](AztecProtocol/aztec-packages#10579)) ([9b26651](AztecProtocol/aztec-packages@9b26651)) * Boxes webpack config ([#10548](AztecProtocol/aztec-packages#10548)) ([49f9418](AztecProtocol/aztec-packages@49f9418)) * Bump hard coded SRS size for wasm from 2^19 to 2^10 ([#10596](AztecProtocol/aztec-packages#10596)) ([a37f82d](AztecProtocol/aztec-packages@a37f82d)) * Bump timeout for failing data store tests ([#10639](AztecProtocol/aztec-packages#10639)) ([c75fee0](AztecProtocol/aztec-packages@c75fee0)) * Correct size in bytes of a complete address ([#10574](AztecProtocol/aztec-packages#10574)) ([e72b988](AztecProtocol/aztec-packages@e72b988)) * Destroy old masternet if we can ([#10584](AztecProtocol/aztec-packages#10584)) ([679684d](AztecProtocol/aztec-packages@679684d)) * Do not attempt proof quote on empty epoch ([#10557](AztecProtocol/aztec-packages#10557)) ([39d3bc2](AztecProtocol/aztec-packages@39d3bc2)) * Do not load pino-pretty in production bundles ([#10578](AztecProtocol/aztec-packages#10578)) ([e515e6e](AztecProtocol/aztec-packages@e515e6e)) * Do not merge expressions that contain output witnesses (noir-lang/noir#6757) ([3166529](AztecProtocol/aztec-packages@3166529)) * Ensure LMDB store metrics have hard coded descriptions ([#10642](AztecProtocol/aztec-packages#10642)) ([043e2c2](AztecProtocol/aztec-packages@043e2c2)) * Formatting master ([#10583](AztecProtocol/aztec-packages#10583)) ([79e49c9](AztecProtocol/aztec-packages@79e49c9)) * Git dependency trailing slash (noir-lang/noir#6725) ([f4ed66b](AztecProtocol/aztec-packages@f4ed66b)) * Improve type error when indexing a variable of unknown type (noir-lang/noir#6744) ([3166529](AztecProtocol/aztec-packages@3166529)) * Link in README.md ([#10471](AztecProtocol/aztec-packages#10471)) ([fca9600](AztecProtocol/aztec-packages@fca9600)) * Log level not honored with multi transport ([#10643](AztecProtocol/aztec-packages#10643)) ([e1e5864](AztecProtocol/aztec-packages@e1e5864)) * Map entry point indexes after all ssa passes (noir-lang/noir#6740) ([3166529](AztecProtocol/aztec-packages@3166529)) * Memory leak in the broker ([#10567](AztecProtocol/aztec-packages#10567)) ([ecc037f](AztecProtocol/aztec-packages@ecc037f)) * Mispelled aztec ([#10491](AztecProtocol/aztec-packages#10491)) ([866a5f7](AztecProtocol/aztec-packages@866a5f7)) * Parser would hand on function type with colon in it (noir-lang/noir#6764) ([3166529](AztecProtocol/aztec-packages@3166529)) * Pass salt to deploy-l1-contracts.sh ([#10586](AztecProtocol/aztec-packages#10586)) ([d6be2c8](AztecProtocol/aztec-packages@d6be2c8)) * Pod anti affinity spans all namespaces ([#10475](AztecProtocol/aztec-packages#10475)) ([2d4dc3d](AztecProtocol/aztec-packages@2d4dc3d)) * Print ssa blocks without recursion (noir-lang/noir#6715) ([f4ed66b](AztecProtocol/aztec-packages@f4ed66b)) * Println("{{}}") was printing "{{}}" instead of "{}" (noir-lang/noir#6745) ([3166529](AztecProtocol/aztec-packages@3166529)) * Properly trace storage reads to slots never written before in AVM ([#10560](AztecProtocol/aztec-packages#10560)) ([410c730](AztecProtocol/aztec-packages@410c730)) * Remove auto verify in cbind ivc prove ([#10627](AztecProtocol/aztec-packages#10627)) ([d773423](AztecProtocol/aztec-packages@d773423)) * Remove otel collector endpoint ([#10604](AztecProtocol/aztec-packages#10604)) ([276a82c](AztecProtocol/aztec-packages@276a82c)) * Sequencer negative histogram recodings ([#10490](AztecProtocol/aztec-packages#10490)) ([623f3e2](AztecProtocol/aztec-packages@623f3e2)) * Several format string fixes and improvements (noir-lang/noir#6703) ([f4ed66b](AztecProtocol/aztec-packages@f4ed66b)) * Simulation error enriching ([#10595](AztecProtocol/aztec-packages#10595)) ([2c36088](AztecProtocol/aztec-packages@2c36088)) * Temporary fix for private kernel tail proving ([#10593](AztecProtocol/aztec-packages#10593)) ([d194cdf](AztecProtocol/aztec-packages@d194cdf)) * Track published bytecode ([#10636](AztecProtocol/aztec-packages#10636)) ([cadb4ce](AztecProtocol/aztec-packages@cadb4ce)) * Tweaking Fr and Fq fromString functionality to distinguish number-only strings ([#10529](AztecProtocol/aztec-packages#10529)) ([736fce1](AztecProtocol/aztec-packages@736fce1)) * Use e2e structure in cbind ([#10585](AztecProtocol/aztec-packages#10585)) ([985aef1](AztecProtocol/aztec-packages@985aef1)) ### Miscellaneous * Add a few regression tests for [#6674](AztecProtocol/aztec-packages#6674) (noir-lang/noir#6687) ([f4ed66b](AztecProtocol/aztec-packages@f4ed66b)) * Add script to check for critical libraries supporting a given Noir version (noir-lang/noir#6697) ([f4ed66b](AztecProtocol/aztec-packages@f4ed66b)) * **avm:** Gas constants adjustment based on trace rows accounting ([#10614](AztecProtocol/aztec-packages#10614)) ([fc729ef](AztecProtocol/aztec-packages@fc729ef)), closes [#10368](AztecProtocol/aztec-packages#10368) * **avm:** More pilcom compat changes ([#10569](AztecProtocol/aztec-packages#10569)) ([f18d701](AztecProtocol/aztec-packages@f18d701)) * **avm:** Pilcom compatibility changes ([#10544](AztecProtocol/aztec-packages#10544)) ([fbc8c0e](AztecProtocol/aztec-packages@fbc8c0e)) * **avm:** Reduce the number of gates for fake AVM recursive verifier ([#10619](AztecProtocol/aztec-packages#10619)) ([0be44b2](AztecProtocol/aztec-packages@0be44b2)) * **avm:** Remove function selector from AvmExecutionEnvironment ([#10532](AztecProtocol/aztec-packages#10532)) ([fef5f93](AztecProtocol/aztec-packages@fef5f93)) * Boxes tests cause resource issues ([#10676](AztecProtocol/aztec-packages#10676)) ([ccf1c78](AztecProtocol/aztec-packages@ccf1c78)) * Bump avm tree test timeout ([323e2eb](AztecProtocol/aztec-packages@323e2eb)) * Bump exp1 config to 48 validators ([#10577](AztecProtocol/aztec-packages#10577)) ([0379718](AztecProtocol/aztec-packages@0379718)) * Bump jest default test timeout to 30s ([#10550](AztecProtocol/aztec-packages#10550)) ([841bf48](AztecProtocol/aztec-packages@841bf48)) * Bump mocha timeout ([#10571](AztecProtocol/aztec-packages#10571)) ([35e525f](AztecProtocol/aztec-packages@35e525f)) * Bump proven timeout ([#10680](AztecProtocol/aztec-packages#10680)) ([3f5cf6c](AztecProtocol/aztec-packages@3f5cf6c)) * Bump prover agents ([#10626](AztecProtocol/aztec-packages#10626)) ([64eea72](AztecProtocol/aztec-packages@64eea72)) * **ci:** Extend compiler memory report to external repos (noir-lang/noir#6768) ([3166529](AztecProtocol/aztec-packages@3166529)) * **ci:** Handle external libraries in compilation timing report (noir-lang/noir#6750) ([3166529](AztecProtocol/aztec-packages@3166529)) * **ci:** Prune launch templates job ([#10561](AztecProtocol/aztec-packages#10561)) ([d6e4f4c](AztecProtocol/aztec-packages@d6e4f4c)) * **ci:** Reenable `rerun-check` job ([#10653](AztecProtocol/aztec-packages#10653)) ([b2c4f48](AztecProtocol/aztec-packages@b2c4f48)) * Cleanup unrolling pass (noir-lang/noir#6743) ([3166529](AztecProtocol/aztec-packages@3166529)) * Disable broken test ([#10663](AztecProtocol/aztec-packages#10663)) ([0771260](AztecProtocol/aztec-packages@0771260)) * Disable ivc integration yarn tests ([#10625](AztecProtocol/aztec-packages#10625)) ([7c50107](AztecProtocol/aztec-packages@7c50107)) * **docs:** Update branding (noir-lang/noir#6759) ([3166529](AztecProtocol/aztec-packages@3166529)) * Documenting convenient redirect to the spartan creator ([#10565](AztecProtocol/aztec-packages#10565)) ([b94b8ee](AztecProtocol/aztec-packages@b94b8ee)) * Enable nightly tests ([#10542](AztecProtocol/aztec-packages#10542)) ([4fa068c](AztecProtocol/aztec-packages@4fa068c)) * Faucet LB if public, proving devnet ([#10665](AztecProtocol/aztec-packages#10665)) ([996d921](AztecProtocol/aztec-packages@996d921)) * Fix build issue from bad merge ([85c0676](AztecProtocol/aztec-packages@85c0676)) * Fix migration notes ([#10656](AztecProtocol/aztec-packages#10656)) ([333d6ce](AztecProtocol/aztec-packages@333d6ce)) * Fix public keys deserialization ([#10647](AztecProtocol/aztec-packages#10647)) ([12473c8](AztecProtocol/aztec-packages@12473c8)) * Flush archiver metrics on startup ([f9810cc](AztecProtocol/aztec-packages@f9810cc)) * Free memory for silenced warnings early (noir-lang/noir#6748) ([3166529](AztecProtocol/aztec-packages@3166529)) * Give validators/boot-nodes 100Gi in network configs ([f9810cc](AztecProtocol/aztec-packages@f9810cc)) * Handle errors in e2e teardown to fix e2e token ([#10590](AztecProtocol/aztec-packages#10590)) ([5d4cdc1](AztecProtocol/aztec-packages@5d4cdc1)) * Increase test timeout to reduce flakes ([#10641](AztecProtocol/aztec-packages#10641)) ([4ade2ad](AztecProtocol/aztec-packages@4ade2ad)) * Inject k8s pod name and uid ([#10633](AztecProtocol/aztec-packages#10633)) ([eb472ff](AztecProtocol/aztec-packages@eb472ff)) * L2 gas maximum is per-TX-public-portion. AVM startup gas is now 20k. ([#10214](AztecProtocol/aztec-packages#10214)) ([1365401](AztecProtocol/aztec-packages@1365401)) * Load balancers for the boot node, longer epochs ([#10632](AztecProtocol/aztec-packages#10632)) ([001bbb1](AztecProtocol/aztec-packages@001bbb1)) * Lock CI to use ubuntu 22.04 (noir-lang/noir#6755) ([3166529](AztecProtocol/aztec-packages@3166529)) * Log when validator enters commitee ([#10615](AztecProtocol/aztec-packages#10615)) ([7746a39](AztecProtocol/aztec-packages@7746a39)), closes [#10337](AztecProtocol/aztec-packages#10337) * Lower public tx gas limit to 6M ([#10635](AztecProtocol/aztec-packages#10635)) ([9836036](AztecProtocol/aztec-packages@9836036)) * Merge queue CI ([#10629](AztecProtocol/aztec-packages#10629)) ([835e6fd](AztecProtocol/aztec-packages@835e6fd)) * More bots for exp1 ([#10671](AztecProtocol/aztec-packages#10671)) ([0ba2425](AztecProtocol/aztec-packages@0ba2425)) * More logs cleanup ([#10630](AztecProtocol/aztec-packages#10630)) ([00c629c](AztecProtocol/aztec-packages@00c629c)) * Move some nr utils around ([#10553](AztecProtocol/aztec-packages#10553)) ([d132f83](AztecProtocol/aztec-packages@d132f83)) * Moving stuff from the aztec sequencer node guide into this README ([#10570](AztecProtocol/aztec-packages#10570)) ([93b8b1b](AztecProtocol/aztec-packages@93b8b1b)) * Optimise grand product computation round based on active ranges ([#10460](AztecProtocol/aztec-packages#10460)) ([7fa8f84](AztecProtocol/aztec-packages@7fa8f84)) * Optimise older opcodes in reverse order (noir-lang/noir#6476) ([f4ed66b](AztecProtocol/aztec-packages@f4ed66b)) * Redo typo PR by Madmaxs2 (noir-lang/noir#6721) ([f4ed66b](AztecProtocol/aztec-packages@f4ed66b)) * Reduce bb_prover_full_rollup to a single block epoch test ([#10679](AztecProtocol/aztec-packages#10679)) ([0c2a4d9](AztecProtocol/aztec-packages@0c2a4d9)) * Remove Proxy from json rpc client ([#10554](AztecProtocol/aztec-packages#10554)) ([93b1c45](AztecProtocol/aztec-packages@93b1c45)) * Remove warnings from protocol circuits ([#10556](AztecProtocol/aztec-packages#10556)) ([e065e05](AztecProtocol/aztec-packages@e065e05)) * Rename logger modules ([#10404](AztecProtocol/aztec-packages#10404)) ([7441767](AztecProtocol/aztec-packages@7441767)), closes [#10125](AztecProtocol/aztec-packages#10125) * Rename pxe script generate-package-info to generate ([#10534](AztecProtocol/aztec-packages#10534)) ([ead9c0b](AztecProtocol/aztec-packages@ead9c0b)) * Replace relative paths to noir-protocol-circuits ([acfd5df](AztecProtocol/aztec-packages@acfd5df)) * Replace relative paths to noir-protocol-circuits ([6c0533f](AztecProtocol/aztec-packages@6c0533f)) * Replace relative paths to noir-protocol-circuits ([a245b95](AztecProtocol/aztec-packages@a245b95)) * Replace relative paths to noir-protocol-circuits ([153c720](AztecProtocol/aztec-packages@153c720)) * Replace relative paths to noir-protocol-circuits ([a080436](AztecProtocol/aztec-packages@a080436)) * Replace relative paths to noir-protocol-circuits ([8419f5a](AztecProtocol/aztec-packages@8419f5a)) * Secret derivation funcs naming cleanup ([#10637](AztecProtocol/aztec-packages#10637)) ([5c50711](AztecProtocol/aztec-packages@5c50711)) * Simplify MSM with constant folding (noir-lang/noir#6650) ([f4ed66b](AztecProtocol/aztec-packages@f4ed66b)) * **stdlib:** Remove Schnorr (noir-lang/noir#6749) ([3166529](AztecProtocol/aztec-packages@3166529)) * Try replace callstack with a linked list (noir-lang/noir#6747) ([3166529](AztecProtocol/aztec-packages@3166529)) * Tweak validator logs ([#10597](AztecProtocol/aztec-packages#10597)) ([9eaa527](AztecProtocol/aztec-packages@9eaa527)) * Unprove devnet ([#10683](AztecProtocol/aztec-packages#10683)) ([1c92f77](AztecProtocol/aztec-packages@1c92f77)) * Update url to 2.5.4 (noir-lang/noir#6741) ([3166529](AztecProtocol/aztec-packages@3166529)) * Use `NumericType` not `Type` for casts and numeric constants (noir-lang/noir#6769) ([3166529](AztecProtocol/aztec-packages@3166529)) * **val:** Reject proposals not for the current or next slot ([#10450](AztecProtocol/aztec-packages#10450)) ([27620f5](AztecProtocol/aztec-packages@27620f5)) </details> <details><summary>barretenberg: 0.67.0</summary> ## [0.67.0](AztecProtocol/aztec-packages@barretenberg-v0.66.0...barretenberg-v0.67.0) (2024-12-13) ### ⚠ BREAKING CHANGES * lower public tx gas limit to 6M ([#10635](AztecProtocol/aztec-packages#10635)) * l2 gas maximum is per-TX-public-portion. AVM startup gas is now 20k. ([#10214](AztecProtocol/aztec-packages#10214)) * rename Header to BlockHeader ([#10372](AztecProtocol/aztec-packages#10372)) ### Features * Add verify proof calls to private kernels ([#10533](AztecProtocol/aztec-packages#10533)) ([ce0eee0](AztecProtocol/aztec-packages@ce0eee0)) * Adding fuzzer for ultra bigfield and relaxing ultra circuit checker ([#10433](AztecProtocol/aztec-packages#10433)) ([da4c47c](AztecProtocol/aztec-packages@da4c47c)) * AVM inserts fee write on txs with public calls ([#10394](AztecProtocol/aztec-packages#10394)) ([98ba747](AztecProtocol/aztec-packages@98ba747)) * CIVC browser proveThenVerify ([#10431](AztecProtocol/aztec-packages#10431)) ([8c064d4](AztecProtocol/aztec-packages@8c064d4)) * GETCONTRACTINSTANCE and bytecode retrieval perform nullifier membership checks ([#10445](AztecProtocol/aztec-packages#10445)) ([9301253](AztecProtocol/aztec-packages@9301253)), closes [#10377](AztecProtocol/aztec-packages#10377) [#10379](AztecProtocol/aztec-packages#10379) * Handle nested calls in witgen ([#10384](AztecProtocol/aztec-packages#10384)) ([1e21f31](AztecProtocol/aztec-packages@1e21f31)) * Keccak honk proving in bb.js ([#10489](AztecProtocol/aztec-packages#10489)) ([e0d7431](AztecProtocol/aztec-packages@e0d7431)) * Modify HonkRecursionConstraint to handle IPA claims ([#10469](AztecProtocol/aztec-packages#10469)) ([a204d1b](AztecProtocol/aztec-packages@a204d1b)) * Remove auto verify mode from ClientIVC ([#10599](AztecProtocol/aztec-packages#10599)) ([b1d8b97](AztecProtocol/aztec-packages@b1d8b97)) * Rename Header to BlockHeader ([#10372](AztecProtocol/aztec-packages#10372)) ([0803964](AztecProtocol/aztec-packages@0803964)) * Sayonara old hints ([#10547](AztecProtocol/aztec-packages#10547)) ([dede16e](AztecProtocol/aztec-packages@dede16e)) * Several Updates in SMT verification module (part 1) ([#10437](AztecProtocol/aztec-packages#10437)) ([0c37672](AztecProtocol/aztec-packages@0c37672)) * Unified create circuit from acir ([#10440](AztecProtocol/aztec-packages#10440)) ([a4dfe13](AztecProtocol/aztec-packages@a4dfe13)) ### Bug Fixes * Remove auto verify in cbind ivc prove ([#10627](AztecProtocol/aztec-packages#10627)) ([d773423](AztecProtocol/aztec-packages@d773423)) * Use e2e structure in cbind ([#10585](AztecProtocol/aztec-packages#10585)) ([985aef1](AztecProtocol/aztec-packages@985aef1)) ### Miscellaneous * **avm:** Gas constants adjustment based on trace rows accounting ([#10614](AztecProtocol/aztec-packages#10614)) ([fc729ef](AztecProtocol/aztec-packages@fc729ef)), closes [#10368](AztecProtocol/aztec-packages#10368) * **avm:** More pilcom compat changes ([#10569](AztecProtocol/aztec-packages#10569)) ([f18d701](AztecProtocol/aztec-packages@f18d701)) * **avm:** Pilcom compatibility changes ([#10544](AztecProtocol/aztec-packages#10544)) ([fbc8c0e](AztecProtocol/aztec-packages@fbc8c0e)) * L2 gas maximum is per-TX-public-portion. AVM startup gas is now 20k. ([#10214](AztecProtocol/aztec-packages#10214)) ([1365401](AztecProtocol/aztec-packages@1365401)) * Lower public tx gas limit to 6M ([#10635](AztecProtocol/aztec-packages#10635)) ([9836036](AztecProtocol/aztec-packages@9836036)) * Optimise grand product computation round based on active ranges ([#10460](AztecProtocol/aztec-packages#10460)) ([7fa8f84](AztecProtocol/aztec-packages@7fa8f84)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
For compatibility with upcoming design.
-o path
*warning: GCC didn't like this so I added
the reason is that I'm now defining the AvmFullRow as
FF ALL_ENTITIES;
but GCC prefers it if I doFF col1{}; FF col2{};...
with the explicit{}
. If I need to do that, then I need to codegen and repeat again all names.To be honest IDK why it complains so much, if you Google this, you'll find other people running into it. This should NOT be a problem since any field not specified in aggregate initialization WILL be value-initialized.
Now, FF's are special in that they don't initialize themselves by default, to accommodate array/other uses cases. (this is a BAD choice if you ask me, there are other ways to avoid explicit initialization if and only when you want to, especially for arrays etc).
Let's see what tests say. In our case the AvmFullRow is only used in a vector, which does somehow force full initialization of all the fields (or at least it did).