-
Notifications
You must be signed in to change notification settings - Fork 219
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!: several format string fixes and improvements #6703
Conversation
We should definitely error here eventually, it's quite an annoyance while writing format strings |
Awesome! I'll tackle that next, it should be relatively easy to do. I also noticed that if you write |
Peak Memory Sample
|
Oooh... a test is failing because it has this: let s1 = f"x is {x}, fake interpolation: \{y}, y is {y}"; I guess |
Let's stick with Rust in this case |
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 👍
Changes to Brillig bytecode sizes
🧾 Summary (10% most significant diffs)
Full diff report 👇
|
Changes to number of Brillig opcodes executed
🧾 Summary (10% most significant diffs)
Full diff report 👇
|
Asking for a re-review because this PR now does a lot more than what I originally planned. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
…#6650) fix: git dependency trailing slash (noir-lang/noir#6725) chore: optimise older opcodes in reverse order (noir-lang/noir#6476) chore: add script to check for critical libraries supporting a given Noir version (noir-lang/noir#6697) fix!: several format string fixes and improvements (noir-lang/noir#6703) fix: print ssa blocks without recursion (noir-lang/noir#6715) chore: redo typo PR by Madmaxs2 (noir-lang/noir#6721) chore: add a few regression tests for #6674 (noir-lang/noir#6687)
fix: git dependency trailing slash (noir-lang/noir#6725) chore: optimise older opcodes in reverse order (noir-lang/noir#6476) chore: add script to check for critical libraries supporting a given Noir version (noir-lang/noir#6697) fix!: several format string fixes and improvements (noir-lang/noir#6703) fix: print ssa blocks without recursion (noir-lang/noir#6715) chore: redo typo PR by Madmaxs2 (noir-lang/noir#6721) chore: add a few regression tests for #6674 (noir-lang/noir#6687)
🤖 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).
Format strings are documented in the fmtstr page instead of the Strings page. Lemme create a corresponding Issue. |
Description
Problem
Resolves #4642
Summary
This PR includes several fixes and improvements to format strings:
f"..."
), as tokens, are now represented as fragments which can either be strings or interpolated pieces. The interpolated pieces also have a Span to know where they are. The advantage of this is that we don't need to use a regex to find the interpolations and we can provide better error messages when, for example, the interpolated variable doesn't exist. That said, the print oracle gets the raw string and needs to do the interpolation, and that still uses regex (but at least compile-time code won't need to do regex matching each time it finds a fmtstr).\n
and\t
are now allowed inside format strings.{
and}
and we do that just like in Rust:{{
to mean{
,}}
to mean}
.}
but there was no single{
before it (we were not in an interpolation) you get an error that says you must use}}
to write}
.Because
{{
now means to write{
, I had to slightly change the print oracle to understand this.Additional Context
I'm marking this PR as a breaking change because it could break someone's code if they had incorrect interpolations, or if they had
\n
inside a format string and wanted to actually print "\" and "n" separately.I left LSP features as a follow-up PR, mainly because I realized autocompletion doesn't automatically kick in when you are typing inside a string literal, so implementing completion there doesn't seem very useful. What we could do is at least implement "hover" in these pieces (go-to-definition already works).
A question: do print oracles exist somewhere else? For example in a web context (what I'm saying might not make sense, sorry). I'm just wondering if the print oracle logic of handling interpolations must be updated somewhere else too.
Documentation
This PR might need to document format string escape sequences... but I couldn't find this explained for strings so maybe all of that could be done in one go in a separate PR (if really needed now).
Check one:
PR Checklist
cargo fmt
on default settings.