-
Notifications
You must be signed in to change notification settings - Fork 198
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
feat: new formatter #6300
feat: new formatter #6300
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, we've got better coverage of the syntax and actual testing so this is a direct upgrade over the previous formatter.
feat: Sync from aztec-packages (noir-lang/noir#6301) fix: Allow array map on empty arrays (noir-lang/noir#6305) fix: Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) feat(interpreter): Comptime derive generators (noir-lang/noir#6303) fix: enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) feat: Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) chore(docs): refactoring guides and some other nits (noir-lang/noir#6175) fix: Do not warn on unused self in traits (noir-lang/noir#6298) fix: Reject invalid expression with in CLI parser (noir-lang/noir#6287)
feat: Sync from aztec-packages (noir-lang/noir#6301) fix: Allow array map on empty arrays (noir-lang/noir#6305) fix: Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) feat(interpreter): Comptime derive generators (noir-lang/noir#6303) fix: enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) feat: Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) chore(docs): refactoring guides and some other nits (noir-lang/noir#6175) fix: Do not warn on unused self in traits (noir-lang/noir#6298) fix: Reject invalid expression with in CLI parser (noir-lang/noir#6287)
/// Treating a `ChunkFormatter` as a `Formatter` in read-only mode is always fine, | ||
/// and reduces some boilerplate. | ||
impl<'a, 'b> Deref for ChunkFormatter<'a, 'b> { | ||
type Target = Formatter<'b>; |
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'm surprised this isn't 'a
, since ChunkFormatter<'a, 'b>
has a 'b
reference to a Formatter<'a>
🤔
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.
Oh, good point, it should be 'a
. I don't know why it works, maybe the lifetimes are the same? I'll change it in a follow-up PR after I finish what I'm doing (or feel free to send a PR).
* master: feat: new formatter (#6300)
* master: (202 commits) chore: remove usage of slices in pedersen hash (#6295) chore: remove dead function (#6308) feat: new formatter (#6300) feat: Sync from aztec-packages (#6301) fix: Allow array map on empty arrays (#6305) fix: Display function name and body when inlining recursion limit hit (#6291) feat(interpreter): Comptime derive generators (#6303) fix: enforce correctness of decompositions performed at compile time (#6278) feat: Warn about private types leaking in public functions and struct fields (#6296) chore(docs): refactoring guides and some other nits (#6175) fix: Do not warn on unused self in traits (#6298) fix: Reject invalid expression with in CLI parser (#6287) chore: regression test for #5462 (#6286) feat(improve): Remove scan through globals (#6282) feat: show LSP diagnostic related information (#6277) feat: trait inheritance (#6252) feat: optimize reading a workspace's files (#6281) fix: prevent compiler panic when popping from empty slices (#6274) feat(test): Include the PoseidonHasher in the fuzzing (#6280) feat: slightly improve "unexpected token" error message (#6279) ...
…/noir#6295) chore: remove dead function (noir-lang/noir#6308) feat: new formatter (noir-lang/noir#6300) feat: Sync from aztec-packages (noir-lang/noir#6301) fix: Allow array map on empty arrays (noir-lang/noir#6305) fix: Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) feat(interpreter): Comptime derive generators (noir-lang/noir#6303) fix: enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) feat: Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) chore(docs): refactoring guides and some other nits (noir-lang/noir#6175) fix: Do not warn on unused self in traits (noir-lang/noir#6298) fix: Reject invalid expression with in CLI parser (noir-lang/noir#6287)
chore: remove dead function (noir-lang/noir#6308) feat: new formatter (noir-lang/noir#6300) feat: Sync from aztec-packages (noir-lang/noir#6301) fix: Allow array map on empty arrays (noir-lang/noir#6305) fix: Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) feat(interpreter): Comptime derive generators (noir-lang/noir#6303) fix: enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) feat: Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) chore(docs): refactoring guides and some other nits (noir-lang/noir#6175) fix: Do not warn on unused self in traits (noir-lang/noir#6298) fix: Reject invalid expression with in CLI parser (noir-lang/noir#6287)
🤖 I have created a release *beep* *boop* --- <details><summary>0.36.0</summary> ## [0.36.0](v0.35.0...v0.36.0) (2024-10-22) ### ⚠ BREAKING CHANGES * remove pedersen commitment (AztecProtocol/aztec-packages#9107) * remove pedersen hash opcode (AztecProtocol/aztec-packages#9245) * Brillig and AVM default all uninitialized memory cells to Field 0 (AztecProtocol/aztec-packages#9057) * remove keccak256 opcode from ACIR/Brillig (AztecProtocol/aztec-packages#9104) * Brillig with a stack and conditional inlining (AztecProtocol/aztec-packages#8989) * **avm:** remove CMOV opcode (AztecProtocol/aztec-packages#9030) * Integer division is not the inverse of integer multiplication ([#6243](#6243)) * kind size checks ([#6137](#6137)) * Change tag attributes to require a ' prefix ([#6235](#6235)) ### Features * Add `checked_transmute` ([#6262](#6262)) ([2618061](2618061)) * Add more `Type` and `UnresolvedType` methods ([#5994](#5994)) ([8236cbd](8236cbd)) * Allow `unconstrained` after visibility ([#6246](#6246)) ([f6dfbcf](f6dfbcf)) * Brillig and AVM default all uninitialized memory cells to Field 0 (AztecProtocol/aztec-packages#9057) ([70dcf4a](70dcf4a)) * Brillig with a stack and conditional inlining (AztecProtocol/aztec-packages#8989) ([70dcf4a](70dcf4a)) * Don't crash LSP when there are errors resolving the workspace ([#6257](#6257)) ([7cc7197](7cc7197)) * Don't suggest private struct fields in LSP ([#6256](#6256)) ([2a727b3](2a727b3)) * Handwritten parser ([#6180](#6180)) ([c4273a0](c4273a0)) * **improve:** Remove scan through globals ([#6282](#6282)) ([fd91913](fd91913)) * Inclusive for loop ([#6200](#6200)) ([bd861f2](bd861f2)) * Integrate databus in the private kernels (AztecProtocol/aztec-packages#9028) ([70dcf4a](70dcf4a)) * **interpreter:** Comptime derive generators ([#6303](#6303)) ([d8767b3](d8767b3)) * Kind size checks ([#6137](#6137)) ([6e40f62](6e40f62)) * New formatter ([#6300](#6300)) ([62404d7](62404d7)) * Optimize `Quoted::as_expr` by parsing just once ([#6237](#6237)) ([a4fcd00](a4fcd00)) * Optimize reading a workspace's files ([#6281](#6281)) ([b54ed26](b54ed26)) * **perf:** Flamegraphs for test program execution benchmarks ([#6253](#6253)) ([c186791](c186791)) * **perf:** Follow array sets backwards in array set from get optimization ([#6208](#6208)) ([999071b](999071b)) * Recover from '=' instead of ':' in struct constructor/pattern ([#6236](#6236)) ([9a12f31](9a12f31)) * Remove byte decomposition in `compute_decomposition` ([#6159](#6159)) ([a8bcae2](a8bcae2)) * Show LSP diagnostic related information ([#6277](#6277)) ([c8a91a5](c8a91a5)) * Slightly improve "unexpected token" error message ([#6279](#6279)) ([8232bfa](8232bfa)) * Sync from noir (AztecProtocol/aztec-packages#8934) ([70dcf4a](70dcf4a)) * Sync from noir (AztecProtocol/aztec-packages#9034) ([70dcf4a](70dcf4a)) * Sync from noir (AztecProtocol/aztec-packages#9099) ([70dcf4a](70dcf4a)) * Sync from noir (AztecProtocol/aztec-packages#9275) ([70dcf4a](70dcf4a)) * **test:** Fuzz poseidon hases against an external library ([#6273](#6273)) ([8d8ea89](8d8ea89)) * **test:** Fuzz test poseidon2 hash equivalence ([#6265](#6265)) ([f61ba03](f61ba03)) * **test:** Fuzz test stdlib hash functions ([#6233](#6233)) ([1a2ca46](1a2ca46)) * **test:** Include the PoseidonHasher in the fuzzing ([#6280](#6280)) ([afb8a7c](afb8a7c)) * Trait inheritance ([#6252](#6252)) ([d3301a4](d3301a4)) * Visibility for impl functions ([#6179](#6179)) ([1b26440](1b26440)) * Visibility for struct fields ([#6221](#6221)) ([fc1c7ab](fc1c7ab)) * Warn about private types leaking in public functions and struct fields ([#6296](#6296)) ([67ac0d6](67ac0d6)) ### Bug Fixes * Add missing visibility for auto-import names ([#6205](#6205)) ([c3cb38a](c3cb38a)) * Address inactive public key check in `verify_signature_noir` ([#6270](#6270)) ([e4325aa](e4325aa)) * Allow array map on empty arrays ([#6305](#6305)) ([51ae1b3](51ae1b3)) * Change tag attributes to require a ' prefix ([#6235](#6235)) ([b43dcb2](b43dcb2)) * Check for Schnorr null signature ([#6226](#6226)) ([2430920](2430920)) * Display function name and body when inlining recursion limit hit ([#6291](#6291)) ([33a1e7d](33a1e7d)) * Do not warn on unused self in traits ([#6298](#6298)) ([4d524bf](4d524bf)) * Don't warn on unuse global if it has an abi annotation ([#6258](#6258)) ([e13f617](e13f617)) * Don't warn on unused struct that has an abi annotation ([#6254](#6254)) ([8a31632](8a31632)) * Don't warn twice when referring to private item ([#6216](#6216)) ([619c545](619c545)) * Enforce correctness of decompositions performed at compile time ([#6278](#6278)) ([53252fd](53252fd)) * **frontend:** Do not warn when a nested struct is provided as input to main ([#6239](#6239)) ([9dfe223](9dfe223)) * Handle dfg databus in SSA normalization ([#6249](#6249)) ([9d8bee5](9d8bee5)) * Handle nested arrays in calldata ([#6232](#6232)) ([0ab8f5e](0ab8f5e)) * Homogeneous input points for EC ADD ([#6241](#6241)) ([f6a7306](f6a7306)) * Integer division is not the inverse of integer multiplication ([#6243](#6243)) ([1cd2587](1cd2587)) * Panic on composite types within databus ([#6225](#6225)) ([29bd125](29bd125)) * Prevent compiler panic when popping from empty slices ([#6274](#6274)) ([87137d8](87137d8)) * Reject invalid expression with in CLI parser ([#6287](#6287)) ([052aee8](052aee8)) * Remove need for duplicate attributes on each function (AztecProtocol/aztec-packages#9244) ([70dcf4a](70dcf4a)) * Visibility for impl methods ([#6261](#6261)) ([70cbeb4](70cbeb4)) ### Miscellaneous Chores * Remove keccak256 opcode from ACIR/Brillig (AztecProtocol/aztec-packages#9104) ([70dcf4a](70dcf4a)) * Remove pedersen commitment (AztecProtocol/aztec-packages#9107) ([70dcf4a](70dcf4a)) * Remove pedersen hash opcode (AztecProtocol/aztec-packages#9245) ([70dcf4a](70dcf4a)) ### Code Refactoring * **avm:** Remove CMOV opcode (AztecProtocol/aztec-packages#9030) ([70dcf4a](70dcf4a)) </details> <details><summary>0.52.0</summary> ## [0.52.0](v0.51.0...v0.52.0) (2024-10-22) ### ⚠ BREAKING CHANGES * remove pedersen commitment (AztecProtocol/aztec-packages#9107) * remove pedersen hash opcode (AztecProtocol/aztec-packages#9245) * Brillig and AVM default all uninitialized memory cells to Field 0 (AztecProtocol/aztec-packages#9057) * remove keccak256 opcode from ACIR/Brillig (AztecProtocol/aztec-packages#9104) * Brillig with a stack and conditional inlining (AztecProtocol/aztec-packages#8989) * **avm:** remove CMOV opcode (AztecProtocol/aztec-packages#9030) * remove sha256 opcode (AztecProtocol/aztec-packages#4571) * add support for u1 in the avm, ToRadix's radix arg is a memory addr (AztecProtocol/aztec-packages#8570) * Add Not instruction in brillig (AztecProtocol/aztec-packages#8488) * **avm:** variants for SET opcode (AztecProtocol/aztec-packages#8441) * **avm/brillig:** take addresses in calldatacopy (AztecProtocol/aztec-packages#8388) * constant inputs for blackbox (AztecProtocol/aztec-packages#7222) ### Features * (bb) 128-bit challenges (AztecProtocol/aztec-packages#8406) ([3c3ed1e](3c3ed1e)) * **acir_gen:** Width aware ACIR gen addition ([#5493](#5493)) ([85fa592](85fa592)) * Add assertions for ACVM `FunctionInput` `bit_size` ([#5864](#5864)) ([8712f4c](8712f4c)) * Add Not instruction in brillig (AztecProtocol/aztec-packages#8488) ([95e19ab](95e19ab)) * Add recursive aggregation object to proving/verification keys (AztecProtocol/aztec-packages#6770) ([4ea25db](4ea25db)) * Add reusable procedures to brillig generation (AztecProtocol/aztec-packages#7981) ([5c4f19f](5c4f19f)) * Add support for u1 in the avm, ToRadix's radix arg is a memory addr (AztecProtocol/aztec-packages#8570) ([e8bbce7](e8bbce7)) * Added indirect const instruction (AztecProtocol/aztec-packages#8065) ([5c4f19f](5c4f19f)) * Adding aggregation to honk and rollup (AztecProtocol/aztec-packages#7466) ([4ea25db](4ea25db)) * Automate verify_honk_proof input generation (AztecProtocol/aztec-packages#8092) ([5c4f19f](5c4f19f)) * **avm/brillig:** Take addresses in calldatacopy (AztecProtocol/aztec-packages#8388) ([3c3ed1e](3c3ed1e)) * **avm:** Variants for SET opcode (AztecProtocol/aztec-packages#8441) ([3c3ed1e](3c3ed1e)) * Avoid heap allocs when going to/from field (AztecProtocol/aztec-packages#7547) ([daad75c](daad75c)) * Brillig and AVM default all uninitialized memory cells to Field 0 (AztecProtocol/aztec-packages#9057) ([70dcf4a](70dcf4a)) * Brillig with a stack and conditional inlining (AztecProtocol/aztec-packages#8989) ([70dcf4a](70dcf4a)) * Change the layout of arrays and vectors to be a single pointer (AztecProtocol/aztec-packages#8448) ([d4832ec](d4832ec)) * Constant inputs for blackbox (AztecProtocol/aztec-packages#7222) ([fb97bb9](fb97bb9)) * Hook up secondary calldata column in dsl (AztecProtocol/aztec-packages#7759) ([4ea25db](4ea25db)) * Integrate databus in the private kernels (AztecProtocol/aztec-packages#9028) ([70dcf4a](70dcf4a)) * Integrate new proving systems in e2e (AztecProtocol/aztec-packages#6971) ([daad75c](daad75c)) * Make Brillig do integer arithmetic operations using u128 instead of Bigint (AztecProtocol/aztec-packages#7518) ([daad75c](daad75c)) * Make token transfer be recursive (AztecProtocol/aztec-packages#7730) ([4ea25db](4ea25db)) * New test programs for wasm benchmarking (AztecProtocol/aztec-packages#8389) ([95e19ab](95e19ab)) * Note hashes as points (AztecProtocol/aztec-packages#7618) ([4ea25db](4ea25db)) * Optimize allocating immediate amounts of memory (AztecProtocol/aztec-packages#8579) ([e8bbce7](e8bbce7)) * Optimize constant array handling in brillig_gen (AztecProtocol/aztec-packages#7661) ([4ea25db](4ea25db)) * Optimize to_radix (AztecProtocol/aztec-packages#8073) ([5c4f19f](5c4f19f)) * Pass calldata ids to the backend (AztecProtocol/aztec-packages#7875) ([4ea25db](4ea25db)) * Poseidon2 gates for Ultra arithmetisation (AztecProtocol/aztec-packages#7494) ([5c4f19f](5c4f19f)) * **profiler:** Add support for brillig functions in opcodes-flamegraph (AztecProtocol/aztec-packages#7698) ([4ea25db](4ea25db)) * Remove sha256 opcode (AztecProtocol/aztec-packages#4571) ([e8bbce7](e8bbce7)) * Removing superfluous call to MSM (AztecProtocol/aztec-packages#7708) ([4ea25db](4ea25db)) * Report gates and VKs of private protocol circuits with megahonk (AztecProtocol/aztec-packages#7722) ([4ea25db](4ea25db)) * Simplify constant calls to `poseidon2_permutation`, `schnorr_verify` and `embedded_curve_add` ([#5140](#5140)) ([2823ba7](2823ba7)) * Small optimization in toradix (AztecProtocol/aztec-packages#8040) ([5c4f19f](5c4f19f)) * Sync from noir (AztecProtocol/aztec-packages#7392) ([fb97bb9](fb97bb9)) * Sync from noir (AztecProtocol/aztec-packages#7400) ([fb97bb9](fb97bb9)) * Sync from noir (AztecProtocol/aztec-packages#7432) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7444) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7454) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7512) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7577) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7583) ([daad75c](daad75c)) * Sync from noir (AztecProtocol/aztec-packages#7743) ([4ea25db](4ea25db)) * Sync from noir (AztecProtocol/aztec-packages#7862) ([4ea25db](4ea25db)) * Sync from noir (AztecProtocol/aztec-packages#7945) ([4ea25db](4ea25db)) * Sync from noir (AztecProtocol/aztec-packages#7958) ([5c4f19f](5c4f19f)) * Sync from noir (AztecProtocol/aztec-packages#8008) ([5c4f19f](5c4f19f)) * Sync from noir (AztecProtocol/aztec-packages#8093) ([5c4f19f](5c4f19f)) * Sync from noir (AztecProtocol/aztec-packages#8125) ([f0c2686](f0c2686)) * Sync from noir (AztecProtocol/aztec-packages#8237) ([f0c2686](f0c2686)) * Sync from noir (AztecProtocol/aztec-packages#8423) ([3c3ed1e](3c3ed1e)) * Sync from noir (AztecProtocol/aztec-packages#8435) ([3c3ed1e](3c3ed1e)) * Sync from noir (AztecProtocol/aztec-packages#8466) ([3c3ed1e](3c3ed1e)) * Sync from noir (AztecProtocol/aztec-packages#8482) ([d4832ec](d4832ec)) * Sync from noir (AztecProtocol/aztec-packages#8512) ([95e19ab](95e19ab)) * Sync from noir (AztecProtocol/aztec-packages#8526) ([95e19ab](95e19ab)) * Sync from noir (AztecProtocol/aztec-packages#8934) ([70dcf4a](70dcf4a)) * Sync from noir (AztecProtocol/aztec-packages#9034) ([70dcf4a](70dcf4a)) * Sync from noir (AztecProtocol/aztec-packages#9099) ([70dcf4a](70dcf4a)) * Sync from noir (AztecProtocol/aztec-packages#9275) ([70dcf4a](70dcf4a)) * **test:** Fuzz test poseidon2 hash equivalence ([#6265](#6265)) ([f61ba03](f61ba03)) * **test:** Fuzz test stdlib hash functions ([#6233](#6233)) ([1a2ca46](1a2ca46)) * TXE nr deployments, dependency cleanup for CLI (AztecProtocol/aztec-packages#7548) ([4ea25db](4ea25db)) * Typing return values of embedded_curve_ops (AztecProtocol/aztec-packages#7413) ([daad75c](daad75c)) * Unify all acir recursion constraints based on RecursionConstraint and proof_type (AztecProtocol/aztec-packages#7993) ([5c4f19f](5c4f19f)) ### Bug Fixes * Add trailing extra arguments for backend in gates_flamegraph (AztecProtocol/aztec-packages#7472) ([daad75c](daad75c)) * **debugger:** Update the debugger to handle the new Brillig debug metadata format ([#5706](#5706)) ([a31f82e](a31f82e)) * Deflatten databus visibilities (AztecProtocol/aztec-packages#7761) ([4ea25db](4ea25db)) * Do not duplicate redundant Brillig debug metadata ([#5696](#5696)) ([e4f7dbe](e4f7dbe)) * Export brillig names in contract functions (AztecProtocol/aztec-packages#8212) ([f0c2686](f0c2686)) * Handle multiple entry points for Brillig call stack resolution after metadata deduplication ([#5788](#5788)) ([38fe9dd](38fe9dd)) * Homogeneous input points for EC ADD ([#6241](#6241)) ([f6a7306](f6a7306)) * Move BigInt modulus checks to runtime in brillig ([#5374](#5374)) ([741d339](741d339)) * Reject invalid expression with in CLI parser ([#6287](#6287)) ([052aee8](052aee8)) * Remove need for duplicate attributes on each function (AztecProtocol/aztec-packages#9244) ([70dcf4a](70dcf4a)) * Restrict keccak256_injective test input to 8 bits ([#5977](#5977)) ([a1b1346](a1b1346)) * Revert "feat: Sync from noir (AztecProtocol/aztec-packages#7512)" (AztecProtocol/aztec-packages#7558) ([daad75c](daad75c)) ### Miscellaneous Chores * Remove keccak256 opcode from ACIR/Brillig (AztecProtocol/aztec-packages#9104) ([70dcf4a](70dcf4a)) * Remove pedersen commitment (AztecProtocol/aztec-packages#9107) ([70dcf4a](70dcf4a)) * Remove pedersen hash opcode (AztecProtocol/aztec-packages#9245) ([70dcf4a](70dcf4a)) ### Code Refactoring * **avm:** Remove CMOV opcode (AztecProtocol/aztec-packages#9030) ([70dcf4a](70dcf4a)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
…ompilation time (noir-lang/noir#6307) chore: update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) feat: Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) chore: Release Noir(0.36.0) (noir-lang/noir#6213) chore: remove usage of slices in pedersen hash (noir-lang/noir#6295) chore: remove dead function (noir-lang/noir#6308) feat: new formatter (noir-lang/noir#6300) feat: Sync from aztec-packages (noir-lang/noir#6301) fix: Allow array map on empty arrays (noir-lang/noir#6305) fix: Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) feat(interpreter): Comptime derive generators (noir-lang/noir#6303) fix: enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) feat: Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) chore(docs): refactoring guides and some other nits (noir-lang/noir#6175) fix: Do not warn on unused self in traits (noir-lang/noir#6298) fix: Reject invalid expression with in CLI parser (noir-lang/noir#6287)
…ime (noir-lang/noir#6307) chore: update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) feat: Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) chore: Release Noir(0.36.0) (noir-lang/noir#6213) chore: remove usage of slices in pedersen hash (noir-lang/noir#6295) chore: remove dead function (noir-lang/noir#6308) feat: new formatter (noir-lang/noir#6300) feat: Sync from aztec-packages (noir-lang/noir#6301) fix: Allow array map on empty arrays (noir-lang/noir#6305) fix: Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) feat(interpreter): Comptime derive generators (noir-lang/noir#6303) fix: enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) feat: Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) chore(docs): refactoring guides and some other nits (noir-lang/noir#6175) fix: Do not warn on unused self in traits (noir-lang/noir#6298) fix: Reject invalid expression with in CLI parser (noir-lang/noir#6287)
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE feat(ssa): Various mem2reg reverts to reduce memory and compilation time (noir-lang/noir#6307) chore: update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) feat: Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) chore: Release Noir(0.36.0) (noir-lang/noir#6213) chore: remove usage of slices in pedersen hash (noir-lang/noir#6295) chore: remove dead function (noir-lang/noir#6308) feat: new formatter (noir-lang/noir#6300) feat: Sync from aztec-packages (noir-lang/noir#6301) fix: Allow array map on empty arrays (noir-lang/noir#6305) fix: Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) feat(interpreter): Comptime derive generators (noir-lang/noir#6303) fix: enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) feat: Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) chore(docs): refactoring guides and some other nits (noir-lang/noir#6175) fix: Do not warn on unused self in traits (noir-lang/noir#6298) fix: Reject invalid expression with in CLI parser (noir-lang/noir#6287) END_COMMIT_OVERRIDE --------- Co-authored-by: Tom French <[email protected]>
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE feat(ssa): Various mem2reg reverts to reduce memory and compilation time (noir-lang/noir#6307) chore: update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) feat: Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) chore: Release Noir(0.36.0) (noir-lang/noir#6213) chore: remove usage of slices in pedersen hash (noir-lang/noir#6295) chore: remove dead function (noir-lang/noir#6308) feat: new formatter (noir-lang/noir#6300) feat: Sync from aztec-packages (noir-lang/noir#6301) fix: Allow array map on empty arrays (noir-lang/noir#6305) fix: Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) feat(interpreter): Comptime derive generators (noir-lang/noir#6303) fix: enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) feat: Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) chore(docs): refactoring guides and some other nits (noir-lang/noir#6175) fix: Do not warn on unused self in traits (noir-lang/noir#6298) fix: Reject invalid expression with in CLI parser (noir-lang/noir#6287) END_COMMIT_OVERRIDE --------- Co-authored-by: Tom French <[email protected]>
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.60.0</summary> ## [0.60.0](aztec-package-v0.59.0...aztec-package-v0.60.0) (2024-10-24) ### Features * Introduce default public keys and replace empty public keys ([#9277](#9277)) ([47718ea](47718ea)) * Sequencer cast votes ([#9247](#9247)) ([bd05d87](bd05d87)) </details> <details><summary>barretenberg.js: 0.60.0</summary> ## [0.60.0](barretenberg.js-v0.59.0...barretenberg.js-v0.60.0) (2024-10-24) ### Features * Eccvm translator zk sumcheck ([#9199](#9199)) ([c7d4572](c7d4572)) ### Miscellaneous * Remove noir_js_backend_barretenberg ([#9338](#9338)) ([cefe3d9](cefe3d9)) </details> <details><summary>aztec-packages: 0.60.0</summary> ## [0.60.0](aztec-packages-v0.59.0...aztec-packages-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](#9350)) * TXE single execution env ([#9183](#9183)) * remove hash opcodes from AVM ([#9209](#9209)) * remove delegate call and storage address ([#9330](#9330)) ### Features * Apella ([#9084](#9084)) ([205ce69](205ce69)) * **avm:** Full poseidon2 ([#9141](#9141)) ([eae7587](eae7587)) * Bytes to fields and back ([#8590](#8590)) ([65b8493](65b8493)) * Constrain protocol VK hashing ([#9304](#9304)) ([3d17e13](3d17e13)) * **docs:** Nits ([#8948](#8948)) ([008fdd1](008fdd1)) * Eccvm translator zk sumcheck ([#9199](#9199)) ([c7d4572](c7d4572)) * Gerousia ([#8942](#8942)) ([54b5ba2](54b5ba2)) * Get logs by tags ([#9353](#9353)) ([719c33e](719c33e)) * Handle reorgs on sequencer ([#9201](#9201)) ([d4dea16](d4dea16)) * **interpreter:** Comptime derive generators (noir-lang/noir#6303) ([a166203](a166203)) * Introduce default public keys and replace empty public keys ([#9277](#9277)) ([47718ea](47718ea)) * Modify private calldata to use public keys ([#9276](#9276)) ([e42e219](e42e219)) * New formatter (noir-lang/noir#6300) ([a166203](a166203)) * **nr:** Serde for signed ints ([#9211](#9211)) ([66f31c7](66f31c7)) * Publicly accessible bootstrap cache ([#9335](#9335)) ([28392d5](28392d5)) * Remove hash opcodes from AVM ([#9209](#9209)) ([e6db535](e6db535)), closes [#9208](#9208) * Sequencer cast votes ([#9247](#9247)) ([bd05d87](bd05d87)) * Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) ([a166203](a166203)) * **ssa:** Various mem2reg reverts to reduce memory and compilation time (noir-lang/noir#6307) ([a166203](a166203)) * Sync from aztec-packages (noir-lang/noir#6301) ([a166203](a166203)) * Translator on Shplemini ([#9329](#9329)) ([21fa3cf](21fa3cf)) * TXE single execution env ([#9183](#9183)) ([1d1d76d](1d1d76d)) * Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) ([a166203](a166203)) ### Bug Fixes * 4epochs kind test et al ([#9358](#9358)) ([e480e6b](e480e6b)) * Allow array map on empty arrays (noir-lang/noir#6305) ([a166203](a166203)) * **avm:** Public dispatch in proving tests ([#9331](#9331)) ([42e5221](42e5221)) * Barretenberg readme scare warning ([#9313](#9313)) ([f759d55](f759d55)) * Broken constants gen ([#9387](#9387)) ([eb7bc6b](eb7bc6b)) * Ci github clone edge case ([#9320](#9320)) ([15abe6f](15abe6f)) * **ci:** Report 4 epochs true ([#9346](#9346)) ([1ce0fa5](1ce0fa5)) * Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) ([a166203](a166203)) * Do not warn on unused self in traits (noir-lang/noir#6298) ([a166203](a166203)) * Enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) ([a166203](a166203)) * Reject invalid expression with in CLI parser (noir-lang/noir#6287) ([a166203](a166203)) * Remove reliance on invalid decompositions in selector calculation ([#9337](#9337)) ([c8e4260](c8e4260)) * Support empty epochs ([#9341](#9341)) ([9dda91e](9dda91e)) * Use github.actor on publish workflow dispatch ([#9324](#9324)) ([5fa660d](5fa660d)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](#9311)) ([523aa23](523aa23)) * Bump node types ([#9397](#9397)) ([763d5b1](763d5b1)) * Copying world state binary to yarn project is on generate ([#9194](#9194)) ([8d75dd4](8d75dd4)) * Disable bench-process-history ([#9360](#9360)) ([8e6734e](8e6734e)) * **docs:** Refactoring guides and some other nits (noir-lang/noir#6175) ([a166203](a166203)) * Fix and re-enable prover coordination e2e test ([#9344](#9344)) ([3a1a62c](3a1a62c)) * Implement Fq add ([#9354](#9354)) ([1711fac](1711fac)) * Minor test cleanup ([#9339](#9339)) ([a2ed567](a2ed567)) * Print out gas at start and end of each enqueued call ([#9377](#9377)) ([29c0b95](29c0b95)) * Quick account manager refactor ([#9357](#9357)) ([648d043](648d043)) * Quick keystore refactor ([#9355](#9355)) ([31b9999](31b9999)) * Redo typo PR by pucedoteth ([#9385](#9385)) ([fd1a0d1](fd1a0d1)) * Release Noir(0.36.0) (noir-lang/noir#6213) ([a166203](a166203)) * Remove dead function (noir-lang/noir#6308) ([a166203](a166203)) * Remove delegate call and storage address ([#9330](#9330)) ([465f88e](465f88e)) * Remove noir_js_backend_barretenberg ([#9338](#9338)) ([cefe3d9](cefe3d9)) * Remove unnecessary `is_integral_bit_size` function ([#9352](#9352)) ([ac8e6d7](ac8e6d7)) * Remove usage of slices in pedersen hash (noir-lang/noir#6295) ([a166203](a166203)) * Replace relative paths to noir-protocol-circuits ([32bd7b9](32bd7b9)) * Replace relative paths to noir-protocol-circuits ([add4605](add4605)) * Replace relative paths to noir-protocol-circuits ([8cb89af](8cb89af)) * Replace usage of vector in keccakf1600 input with array ([#9350](#9350)) ([cb58490](cb58490)) * Scenario for upgrading gerousia ([#9246](#9246)) ([66f59d6](66f59d6)) * Silence cache-download.sh ([#9317](#9317)) ([314d9d2](314d9d2)) * Test 4epochs in native-network ([#9309](#9309)) ([ddb312a](ddb312a)) * Unstake the bond when the proof lands ([#9363](#9363)) ([b25b913](b25b913)) * Update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) ([a166203](a166203)) * Updated NFT flows ([#9150](#9150)) ([407f8b4](407f8b4)) </details> <details><summary>barretenberg: 0.60.0</summary> ## [0.60.0](barretenberg-v0.59.0...barretenberg-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](#9350)) * remove hash opcodes from AVM ([#9209](#9209)) * remove delegate call and storage address ([#9330](#9330)) ### Features * **avm:** Full poseidon2 ([#9141](#9141)) ([eae7587](eae7587)) * Eccvm translator zk sumcheck ([#9199](#9199)) ([c7d4572](c7d4572)) * Remove hash opcodes from AVM ([#9209](#9209)) ([e6db535](e6db535)), closes [#9208](#9208) * Translator on Shplemini ([#9329](#9329)) ([21fa3cf](21fa3cf)) ### Bug Fixes * **avm:** Public dispatch in proving tests ([#9331](#9331)) ([42e5221](42e5221)) * Barretenberg readme scare warning ([#9313](#9313)) ([f759d55](f759d55)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](#9311)) ([523aa23](523aa23)) * Copying world state binary to yarn project is on generate ([#9194](#9194)) ([8d75dd4](8d75dd4)) * Remove delegate call and storage address ([#9330](#9330)) ([465f88e](465f88e)) * Remove noir_js_backend_barretenberg ([#9338](#9338)) ([cefe3d9](cefe3d9)) * Replace usage of vector in keccakf1600 input with array ([#9350](#9350)) ([cb58490](cb58490)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
* master: fix: better formatting of leading/trailing line/block comments in expression lists (#6338) feat: let the formatter remove lambda block braces for single-statement blocks (#6335) chore: run tests in metaprogramming.rs (#6339) fix: formatter didn't format `>>=` well (#6337) chore: Update title from feedback (#6334) feat: Reject programs with unconditional recursion (#6292) fix: (formatter) indent after infix lhs (#6331) feat: merge and sort imports (#6322) fix: mutable global pattern didn't have a span (#6328) feat(ssa): Various mem2reg reverts to reduce memory and compilation time (#6307) chore: update `noir-edwards` repo to point at `noir-lang` org (#6323) feat: Sha256 refactoring and benchmark with longer input (#6318) chore: Release Noir(0.36.0) (#6213) chore: remove usage of slices in pedersen hash (#6295) chore: remove dead function (#6308) feat: new formatter (#6300)
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@aztec-package-v0.59.0...aztec-package-v0.60.0) (2024-10-24) ### Features * Introduce default public keys and replace empty public keys ([#9277](AztecProtocol/aztec-packages#9277)) ([47718ea](AztecProtocol/aztec-packages@47718ea)) * Sequencer cast votes ([#9247](AztecProtocol/aztec-packages#9247)) ([bd05d87](AztecProtocol/aztec-packages@bd05d87)) </details> <details><summary>barretenberg.js: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@barretenberg.js-v0.59.0...barretenberg.js-v0.60.0) (2024-10-24) ### Features * Eccvm translator zk sumcheck ([#9199](AztecProtocol/aztec-packages#9199)) ([c7d4572](AztecProtocol/aztec-packages@c7d4572)) ### Miscellaneous * Remove noir_js_backend_barretenberg ([#9338](AztecProtocol/aztec-packages#9338)) ([cefe3d9](AztecProtocol/aztec-packages@cefe3d9)) </details> <details><summary>aztec-packages: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@aztec-packages-v0.59.0...aztec-packages-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) * TXE single execution env ([#9183](AztecProtocol/aztec-packages#9183)) * remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) * remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ### Features * Apella ([#9084](AztecProtocol/aztec-packages#9084)) ([205ce69](AztecProtocol/aztec-packages@205ce69)) * **avm:** Full poseidon2 ([#9141](AztecProtocol/aztec-packages#9141)) ([eae7587](AztecProtocol/aztec-packages@eae7587)) * Bytes to fields and back ([#8590](AztecProtocol/aztec-packages#8590)) ([65b8493](AztecProtocol/aztec-packages@65b8493)) * Constrain protocol VK hashing ([#9304](AztecProtocol/aztec-packages#9304)) ([3d17e13](AztecProtocol/aztec-packages@3d17e13)) * **docs:** Nits ([#8948](AztecProtocol/aztec-packages#8948)) ([008fdd1](AztecProtocol/aztec-packages@008fdd1)) * Eccvm translator zk sumcheck ([#9199](AztecProtocol/aztec-packages#9199)) ([c7d4572](AztecProtocol/aztec-packages@c7d4572)) * Gerousia ([#8942](AztecProtocol/aztec-packages#8942)) ([54b5ba2](AztecProtocol/aztec-packages@54b5ba2)) * Get logs by tags ([#9353](AztecProtocol/aztec-packages#9353)) ([719c33e](AztecProtocol/aztec-packages@719c33e)) * Handle reorgs on sequencer ([#9201](AztecProtocol/aztec-packages#9201)) ([d4dea16](AztecProtocol/aztec-packages@d4dea16)) * **interpreter:** Comptime derive generators (noir-lang/noir#6303) ([a166203](AztecProtocol/aztec-packages@a166203)) * Introduce default public keys and replace empty public keys ([#9277](AztecProtocol/aztec-packages#9277)) ([47718ea](AztecProtocol/aztec-packages@47718ea)) * Modify private calldata to use public keys ([#9276](AztecProtocol/aztec-packages#9276)) ([e42e219](AztecProtocol/aztec-packages@e42e219)) * New formatter (noir-lang/noir#6300) ([a166203](AztecProtocol/aztec-packages@a166203)) * **nr:** Serde for signed ints ([#9211](AztecProtocol/aztec-packages#9211)) ([66f31c7](AztecProtocol/aztec-packages@66f31c7)) * Publicly accessible bootstrap cache ([#9335](AztecProtocol/aztec-packages#9335)) ([28392d5](AztecProtocol/aztec-packages@28392d5)) * Remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) ([e6db535](AztecProtocol/aztec-packages@e6db535)), closes [#9208](AztecProtocol/aztec-packages#9208) * Sequencer cast votes ([#9247](AztecProtocol/aztec-packages#9247)) ([bd05d87](AztecProtocol/aztec-packages@bd05d87)) * Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) ([a166203](AztecProtocol/aztec-packages@a166203)) * **ssa:** Various mem2reg reverts to reduce memory and compilation time (noir-lang/noir#6307) ([a166203](AztecProtocol/aztec-packages@a166203)) * Sync from aztec-packages (noir-lang/noir#6301) ([a166203](AztecProtocol/aztec-packages@a166203)) * Translator on Shplemini ([#9329](AztecProtocol/aztec-packages#9329)) ([21fa3cf](AztecProtocol/aztec-packages@21fa3cf)) * TXE single execution env ([#9183](AztecProtocol/aztec-packages#9183)) ([1d1d76d](AztecProtocol/aztec-packages@1d1d76d)) * Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) ([a166203](AztecProtocol/aztec-packages@a166203)) ### Bug Fixes * 4epochs kind test et al ([#9358](AztecProtocol/aztec-packages#9358)) ([e480e6b](AztecProtocol/aztec-packages@e480e6b)) * Allow array map on empty arrays (noir-lang/noir#6305) ([a166203](AztecProtocol/aztec-packages@a166203)) * **avm:** Public dispatch in proving tests ([#9331](AztecProtocol/aztec-packages#9331)) ([42e5221](AztecProtocol/aztec-packages@42e5221)) * Barretenberg readme scare warning ([#9313](AztecProtocol/aztec-packages#9313)) ([f759d55](AztecProtocol/aztec-packages@f759d55)) * Broken constants gen ([#9387](AztecProtocol/aztec-packages#9387)) ([eb7bc6b](AztecProtocol/aztec-packages@eb7bc6b)) * Ci github clone edge case ([#9320](AztecProtocol/aztec-packages#9320)) ([15abe6f](AztecProtocol/aztec-packages@15abe6f)) * **ci:** Report 4 epochs true ([#9346](AztecProtocol/aztec-packages#9346)) ([1ce0fa5](AztecProtocol/aztec-packages@1ce0fa5)) * Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) ([a166203](AztecProtocol/aztec-packages@a166203)) * Do not warn on unused self in traits (noir-lang/noir#6298) ([a166203](AztecProtocol/aztec-packages@a166203)) * Enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) ([a166203](AztecProtocol/aztec-packages@a166203)) * Reject invalid expression with in CLI parser (noir-lang/noir#6287) ([a166203](AztecProtocol/aztec-packages@a166203)) * Remove reliance on invalid decompositions in selector calculation ([#9337](AztecProtocol/aztec-packages#9337)) ([c8e4260](AztecProtocol/aztec-packages@c8e4260)) * Support empty epochs ([#9341](AztecProtocol/aztec-packages#9341)) ([9dda91e](AztecProtocol/aztec-packages@9dda91e)) * Use github.actor on publish workflow dispatch ([#9324](AztecProtocol/aztec-packages#9324)) ([5fa660d](AztecProtocol/aztec-packages@5fa660d)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](AztecProtocol/aztec-packages#9311)) ([523aa23](AztecProtocol/aztec-packages@523aa23)) * Bump node types ([#9397](AztecProtocol/aztec-packages#9397)) ([763d5b1](AztecProtocol/aztec-packages@763d5b1)) * Copying world state binary to yarn project is on generate ([#9194](AztecProtocol/aztec-packages#9194)) ([8d75dd4](AztecProtocol/aztec-packages@8d75dd4)) * Disable bench-process-history ([#9360](AztecProtocol/aztec-packages#9360)) ([8e6734e](AztecProtocol/aztec-packages@8e6734e)) * **docs:** Refactoring guides and some other nits (noir-lang/noir#6175) ([a166203](AztecProtocol/aztec-packages@a166203)) * Fix and re-enable prover coordination e2e test ([#9344](AztecProtocol/aztec-packages#9344)) ([3a1a62c](AztecProtocol/aztec-packages@3a1a62c)) * Implement Fq add ([#9354](AztecProtocol/aztec-packages#9354)) ([1711fac](AztecProtocol/aztec-packages@1711fac)) * Minor test cleanup ([#9339](AztecProtocol/aztec-packages#9339)) ([a2ed567](AztecProtocol/aztec-packages@a2ed567)) * Print out gas at start and end of each enqueued call ([#9377](AztecProtocol/aztec-packages#9377)) ([29c0b95](AztecProtocol/aztec-packages@29c0b95)) * Quick account manager refactor ([#9357](AztecProtocol/aztec-packages#9357)) ([648d043](AztecProtocol/aztec-packages@648d043)) * Quick keystore refactor ([#9355](AztecProtocol/aztec-packages#9355)) ([31b9999](AztecProtocol/aztec-packages@31b9999)) * Redo typo PR by pucedoteth ([#9385](AztecProtocol/aztec-packages#9385)) ([fd1a0d1](AztecProtocol/aztec-packages@fd1a0d1)) * Release Noir(0.36.0) (noir-lang/noir#6213) ([a166203](AztecProtocol/aztec-packages@a166203)) * Remove dead function (noir-lang/noir#6308) ([a166203](AztecProtocol/aztec-packages@a166203)) * Remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ([465f88e](AztecProtocol/aztec-packages@465f88e)) * Remove noir_js_backend_barretenberg ([#9338](AztecProtocol/aztec-packages#9338)) ([cefe3d9](AztecProtocol/aztec-packages@cefe3d9)) * Remove unnecessary `is_integral_bit_size` function ([#9352](AztecProtocol/aztec-packages#9352)) ([ac8e6d7](AztecProtocol/aztec-packages@ac8e6d7)) * Remove usage of slices in pedersen hash (noir-lang/noir#6295) ([a166203](AztecProtocol/aztec-packages@a166203)) * Replace relative paths to noir-protocol-circuits ([32bd7b9](AztecProtocol/aztec-packages@32bd7b9)) * Replace relative paths to noir-protocol-circuits ([add4605](AztecProtocol/aztec-packages@add4605)) * Replace relative paths to noir-protocol-circuits ([8cb89af](AztecProtocol/aztec-packages@8cb89af)) * Replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) ([cb58490](AztecProtocol/aztec-packages@cb58490)) * Scenario for upgrading gerousia ([#9246](AztecProtocol/aztec-packages#9246)) ([66f59d6](AztecProtocol/aztec-packages@66f59d6)) * Silence cache-download.sh ([#9317](AztecProtocol/aztec-packages#9317)) ([314d9d2](AztecProtocol/aztec-packages@314d9d2)) * Test 4epochs in native-network ([#9309](AztecProtocol/aztec-packages#9309)) ([ddb312a](AztecProtocol/aztec-packages@ddb312a)) * Unstake the bond when the proof lands ([#9363](AztecProtocol/aztec-packages#9363)) ([b25b913](AztecProtocol/aztec-packages@b25b913)) * Update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) ([a166203](AztecProtocol/aztec-packages@a166203)) * Updated NFT flows ([#9150](AztecProtocol/aztec-packages#9150)) ([407f8b4](AztecProtocol/aztec-packages@407f8b4)) </details> <details><summary>barretenberg: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@barretenberg-v0.59.0...barretenberg-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) * remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) * remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ### Features * **avm:** Full poseidon2 ([#9141](AztecProtocol/aztec-packages#9141)) ([eae7587](AztecProtocol/aztec-packages@eae7587)) * Eccvm translator zk sumcheck ([#9199](AztecProtocol/aztec-packages#9199)) ([c7d4572](AztecProtocol/aztec-packages@c7d4572)) * Remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) ([e6db535](AztecProtocol/aztec-packages@e6db535)), closes [#9208](AztecProtocol/aztec-packages#9208) * Translator on Shplemini ([#9329](AztecProtocol/aztec-packages#9329)) ([21fa3cf](AztecProtocol/aztec-packages@21fa3cf)) ### Bug Fixes * **avm:** Public dispatch in proving tests ([#9331](AztecProtocol/aztec-packages#9331)) ([42e5221](AztecProtocol/aztec-packages@42e5221)) * Barretenberg readme scare warning ([#9313](AztecProtocol/aztec-packages#9313)) ([f759d55](AztecProtocol/aztec-packages@f759d55)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](AztecProtocol/aztec-packages#9311)) ([523aa23](AztecProtocol/aztec-packages@523aa23)) * Copying world state binary to yarn project is on generate ([#9194](AztecProtocol/aztec-packages#9194)) ([8d75dd4](AztecProtocol/aztec-packages@8d75dd4)) * Remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ([465f88e](AztecProtocol/aztec-packages@465f88e)) * Remove noir_js_backend_barretenberg ([#9338](AztecProtocol/aztec-packages#9338)) ([cefe3d9](AztecProtocol/aztec-packages@cefe3d9)) * Replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) ([cb58490](AztecProtocol/aztec-packages@cb58490)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Description
Problem
Resolves #5281
Resolves #4768
Resolves #4767
Resolves #4766
Resolves #4558
Resolves #4462
Resolves #3945
Resolves #3312
Summary
I thought about trying to extend the existing formatter to format more code, but I couldn't understand it very well: it partially implemented things, and it lacked comments and some explanation of how it works. I think some chunks might have been copied from the Rust formatter. I also took a look into it but though it might be too complex.
I wrote a formatter in the past for Crystal with a technique that I saw was used in the Java formatter written for Eclipse. The idea is to traverse the AST together with a Lexer, writing things along the way, bumping into comments and formatting those, etc. It works pretty well! But that's not enough for the Noir formatter because here we also want to automatically wrap long lines (Crystal's formatter doesn't do that). That part (wrapping) is partially based on this excellent blog post.
Benefits:
Here's Aztec-Packages formatted with the new formatter:
unsafe { ... }
andcomptime { ... }
expressions will be inlined if possible (shortening the code and making it more readable)Additional Context
Some things are subjective. For example Rust will put a function
where
clause in a separate line, with each trait bound on its own line. The new formatter does that too. But Rust will sometimes put animpl
where clause on the same line. It's not clear to me why. I chose to always putwhere
clauses on a separate line, but this could easily be changed if we wanted to.Documentation
Check one:
PR Checklist
cargo fmt
on default settings.