Skip to content
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: Fix brillig slowdown when assigning arrays in loops #4472

Merged
merged 5 commits into from
Mar 11, 2024

Conversation

jfecher
Copy link
Contributor

@jfecher jfecher commented Mar 4, 2024

Description

Problem*

Resolves #3795

Summary*

This is an older version of #4210 which undoes the change in d331ee2 due to a regression #4332.

This PR is not yet confirmed to work since I do not have a test case for it! @sirasistant, do you mind seeing if this fixes the regression issue?

Additional Context

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [Exceptional Case] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

@jfecher jfecher requested a review from sirasistant March 4, 2024 19:22
@jfecher jfecher changed the title Jf/brillig cow assign2 fix: Fix brillig slowdown when assigning arrays in loops Mar 4, 2024
@sirasistant
Copy link
Contributor

I think the regression should be tested by https://github.com/noir-lang/noir/blob/master/test_programs/execution_success/brillig_cow_regression/src/main.nr . Let me see if I can run this PR on aztec-packages to check wether this would be problematic in a different way but it should be fine

@sirasistant
Copy link
Contributor

Seems like it did break something AztecProtocol/aztec-packages#5105 I thing the breakage has to do with maximum bytecode size for contracts, maybe due to extra array copies due to increasing RCs more often

@sirasistant
Copy link
Contributor

Yeah size went up for the token contract from 7k fields to a bit more than 9k fields. But seems to run fine

@jfecher jfecher added this pull request to the merge queue Mar 11, 2024
@sirasistant
Copy link
Contributor

The inc_rc in SSA seems to be pretty conservative though and slows down quite a bit some simulated protocol circuits, maybe we should consider in the future introducing ownership semantics so user's can know when they are adding extra overhead to their programs via cloning... But I don't know how complex of a task it'd be @jfecher

Merged via the queue into master with commit 2a53545 Mar 11, 2024
44 of 45 checks passed
@jfecher jfecher deleted the jf/brillig-cow-assign2 branch March 11, 2024 14:20
@jfecher
Copy link
Contributor Author

jfecher commented Mar 11, 2024

@sirasistant I'm not sure. I think in the meantime we should focus on optimizing Rc more, removing unnecessary ref counts, etc. For example, if an array is read-only in a function it doesn't need its Rc increased.

@jfecher
Copy link
Contributor Author

jfecher commented Mar 11, 2024

I think this'd be a good thing to track in issues if there are cases in these circuits that are slowed down. We can introduce optimizations for them like an RC-removing pass for example.

AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Mar 11, 2024
…oir-lang/noir#4472)

chore: Move `check_method_signatures` to type checking phase (noir-lang/noir#4516)
chore(ci): fix JS publishing workflow checking out inconsistent commits (noir-lang/noir#4493)
fix(ssa): Handle mergers of slices returned from calls (noir-lang/noir#4496)
chore: Add HashMap docs (noir-lang/noir#4457)
chore: custom hash for eddsa (noir-lang/noir#4440)
chore: update various dependencies (noir-lang/noir#4513)
fix: Allow type aliases in main (noir-lang/noir#4505)
chore: add `ModuleDeclaration` struct (noir-lang/noir#4512)
fix: Force src impl for == on slices (noir-lang/noir#4507)
chore: pass `import_directive` by reference (noir-lang/noir#4511)
feat: Track stack frames and their variables in the debugger (noir-lang/noir#4188)
chore: add regression test for issue 4449 (noir-lang/noir#4503)
chore: pass macro processors by reference (noir-lang/noir#4501)
chore: bump bb to 0.26.3 (noir-lang/noir#4488)
fix: handling of gh deps in noir_wasm (noir-lang/noir#4499)
fix: iterative flattening pass (noir-lang/noir#4492)
chore: Move templated code for assert_message into the stdlib (noir-lang/noir#4475)
chore: pull out separate function for compiling and running a test
chore: update cargo deny config (noir-lang/noir#4486)
feat: run tests in parallel in `nargo test`  (noir-lang/noir#4484)
github-merge-queue bot pushed a commit that referenced this pull request Mar 11, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>0.25.0</summary>

## [0.25.0](v0.24.0...v0.25.0)
(2024-03-11)


### ⚠ BREAKING CHANGES

* Internal as a macro
(AztecProtocol/aztec-packages#4898)
* reserve `unchecked` keyword
([#4432](#4432))
* Remove empty value from bounded vec
([#4431](#4431))
* Ban Fields in for loop indices and bitwise ops
([#4376](#4376))
* bump msrv to 1.73.0
([#4406](#4406))
* **ci:** Bump MSRV to 1.72.1 and enforce that ACVM can be published
using updated lockfile
([#4385](#4385))
* Restrict bit sizes
([#4235](#4235))
* move noir out of yarn-project
(AztecProtocol/aztec-packages#4479)
* note type ids
(AztecProtocol/aztec-packages#4500)

### Features

* Add eddsa_poseidon_to_pub function to stdlib with test + docs
([#4473](#4473))
([00d2c32](00d2c32))
* Add HashMap to the stdlib
([#4242](#4242))
([650ffc5](650ffc5))
* Add option to set max memory for bb.js
([#4227](#4227))
([8a6b131](8a6b131))
* Add overflow and underflow checks for unsigned integers in brillig
([#4445](#4445))
([21fc4b8](21fc4b8))
* Add poseidon2 opcode implementation for acvm/brillig, and Noir
([#4398](#4398))
([10e8292](10e8292))
* Added cast opcode and cast calldata
(AztecProtocol/aztec-packages#4423)
([78ef013](78ef013))
* Allow type aliases to reference other aliases
([#4353](#4353))
([c44ef14](c44ef14))
* Backpropagate constants in ACIR during optimization
([#3926](#3926))
([aad0da0](aad0da0))
* **ci:** Use wasm-opt when compiling wasm packages
([#4334](#4334))
([e382921](e382921))
* DAP Preflight and debugger compilation options
([#4185](#4185))
([e0ad0b2](e0ad0b2))
* Expose separate functions to compile programs vs contracts in
`noir_wasm` ([#4413](#4413))
([7cd5fdb](7cd5fdb))
* Internal as a macro
(AztecProtocol/aztec-packages#4898)
([5f57ebb](5f57ebb))
* Note type ids
(AztecProtocol/aztec-packages#4500)
([78ef013](78ef013))
* Restrict bit sizes
([#4235](#4235))
([1048f81](1048f81))
* Run tests in parallel in `nargo test`
([#4484](#4484))
([761734e](761734e))
* Skip redundant range checks in brillig
([#4460](#4460))
([cb4c1c5](cb4c1c5))
* Sync from aztec-packages
([#4483](#4483))
([fe8f277](fe8f277))
* Track stack frames and their variables in the debugger
([#4188](#4188))
([ae1a9d9](ae1a9d9))
* TypeVariableKind for just Integers
([#4118](#4118))
([c956be8](c956be8))
* Update error message when trying to load workspace as dependency
([#4393](#4393))
([d2585e7](d2585e7))


### Bug Fixes

* **acir:** Array dynamic flatten
([#4351](#4351))
([b2aaeab](b2aaeab))
* **acir:** Use types on dynamic arrays
([#4364](#4364))
([ba2c541](ba2c541))
* Add `follow_bindings` to follow `Type::Alias` links
([#4521](#4521))
([b94adb9](b94adb9))
* Add handling to `noir_wasm` for projects without dependencies
([#4344](#4344))
([4982251](4982251))
* Allow type aliases in main
([#4505](#4505))
([8a5359c](8a5359c))
* Ban Fields in for loop indices and bitwise ops
([#4376](#4376))
([601fd9a](601fd9a))
* Brillig range check with consistent bit size
([#4357](#4357))
([ea47d4a](ea47d4a))
* Build noir_codegen when publishing
([#4448](#4448))
([cb1ceee](cb1ceee))
* Consistent bit size for truncate
([#4370](#4370))
([dcd7a1e](dcd7a1e))
* Correct formatting for databus visibility types
([#4423](#4423))
([cd796de](cd796de))
* Correct invalid brillig codegen for `EmbeddedCurvePoint.add`
([#4382](#4382))
([5051ec4](5051ec4))
* **docs:** Update install versions
([#4396](#4396))
([b283637](b283637))
* **docs:** Update noirjs_app for 0.23
([#4378](#4378))
([f77f702](f77f702))
* Enforce matching types of binary ops in SSA
([#4391](#4391))
([70866ae](70866ae))
* Fix brillig slowdown when assigning arrays in loops
([#4472](#4472))
([2a53545](2a53545))
* **flake:** Stop flake.nix removing ignored-tests.txt
([#4455](#4455))
([ebaf05a](ebaf05a))
* Force src impl for == on slices
([#4507](#4507))
([1691274](1691274))
* Handling of gh deps in noir_wasm
([#4499](#4499))
([1d65370](1d65370))
* Iterative flattening pass
([#4492](#4492))
([33c1ef7](33c1ef7))
* Noir test incorrect reporting
(AztecProtocol/aztec-packages#4925)
([5f57ebb](5f57ebb))
* Only add `.nr` files to file manager
([#4380](#4380))
([8536c7c](8536c7c))
* Remove panic when generic array length is not resolvable
([#4408](#4408))
([00ab3db](00ab3db))
* Remove print from monomorphization pass
([#4417](#4417))
([27c66b3](27c66b3))
* **ssa:** Handle mergers of slices returned from calls
([#4496](#4496))
([f988d02](f988d02))
* Use correct type for numeric generics
([#4386](#4386))
([0a1d109](0a1d109))
* Variables from trait constraints being permanently bound over when
used within a trait impl
([#4450](#4450))
([ac60ef5](ac60ef5))


### Miscellaneous Chores

* Bump msrv to 1.73.0
([#4406](#4406))
([b5e5c30](b5e5c30))
* **ci:** Bump MSRV to 1.72.1 and enforce that ACVM can be published
using updated lockfile
([#4385](#4385))
([2fc95d2](2fc95d2))
* Move noir out of yarn-project
(AztecProtocol/aztec-packages#4479)
([78ef013](78ef013))
* Remove empty value from bounded vec
([#4431](#4431))
([b9384fb](b9384fb))
* Reserve `unchecked` keyword
([#4432](#4432))
([9544813](9544813))
</details>

<details><summary>0.41.0</summary>

## [0.41.0](v0.40.0...v0.41.0)
(2024-03-11)


### ⚠ BREAKING CHANGES

* Internal as a macro
(AztecProtocol/aztec-packages#4898)
* move noir out of yarn-project
(AztecProtocol/aztec-packages#4479)
* note type ids
(AztecProtocol/aztec-packages#4500)
* rename bigint_neg into bigint_sub
(AztecProtocol/aztec-packages#4420)
* Add expression width into acir
(AztecProtocol/aztec-packages#4014)
* init storage macro
(AztecProtocol/aztec-packages#4200)
* **acir:** Move `is_recursive` flag to be part of the circuit
definition (AztecProtocol/aztec-packages#4221)
* Sync commits from `aztec-packages`
([#4144](#4144))
* Breaking changes from aztec-packages
([#3955](#3955))
* Rename Arithmetic opcode to AssertZero
([#3840](#3840))
* Remove unused methods on ACIR opcodes
([#3841](#3841))
* Remove partial backend feature
([#3805](#3805))

### Features

* Add bit size to const opcode
(AztecProtocol/aztec-packages#4385)
([158c8ce](158c8ce))
* Add expression width into acir
(AztecProtocol/aztec-packages#4014)
([158c8ce](158c8ce))
* Add instrumentation for tracking variables in debugging
([#4122](#4122))
([c58d691](c58d691))
* Add poseidon2 opcode implementation for acvm/brillig, and Noir
([#4398](#4398))
([10e8292](10e8292))
* Add support for overriding expression width
([#4117](#4117))
([c8026d5](c8026d5))
* Added cast opcode and cast calldata
(AztecProtocol/aztec-packages#4423)
([78ef013](78ef013))
* Allow brillig to read arrays directly from memory
(AztecProtocol/aztec-packages#4460)
([158c8ce](158c8ce))
* Allow nested arrays and vectors in Brillig foreign calls
(AztecProtocol/aztec-packages#4478)
([158c8ce](158c8ce))
* Allow variables and stack trace inspection in the debugger
([#4184](#4184))
([bf263fc](bf263fc))
* **avm:** Back in avm context with macro - refactor context
(AztecProtocol/aztec-packages#4438)
([158c8ce](158c8ce))
* **aztec-nr:** Initial work for aztec public vm macro
(AztecProtocol/aztec-packages#4400)
([158c8ce](158c8ce))
* Aztec-packages
([#3754](#3754))
([c043265](c043265))
* Backpropagate constants in ACIR during optimization
([#3926](#3926))
([aad0da0](aad0da0))
* Breaking changes from aztec-packages
([#3955](#3955))
([5be049e](5be049e))
* Evaluation of dynamic assert messages
([#4101](#4101))
([c284e01](c284e01))
* Init storage macro
(AztecProtocol/aztec-packages#4200)
([158c8ce](158c8ce))
* Internal as a macro
(AztecProtocol/aztec-packages#4898)
([5f57ebb](5f57ebb))
* Note type ids
(AztecProtocol/aztec-packages#4500)
([78ef013](78ef013))
* Remove range constraints from witnesses which are constrained to be
constants ([#3928](#3928))
([afe9c7a](afe9c7a))
* Remove replacement of boolean range opcodes with `AssertZero` opcodes
([#4107](#4107))
([dac0e87](dac0e87))
* Speed up transformation of debug messages
([#3815](#3815))
([2a8af1e](2a8af1e))
* Sync `aztec-packages`
([#4011](#4011))
([fee2452](fee2452))
* Sync commits from `aztec-packages`
([#4068](#4068))
([7a8f3a3](7a8f3a3))
* Sync commits from `aztec-packages`
([#4144](#4144))
([0205d3b](0205d3b))
* Sync from aztec-packages
([#4483](#4483))
([fe8f277](fe8f277))


### Bug Fixes

* Deserialize odd length hex literals
([#3747](#3747))
([4000fb2](4000fb2))
* Noir test incorrect reporting
(AztecProtocol/aztec-packages#4925)
([5f57ebb](5f57ebb))
* Remove panic from `init_log_level` in `acvm_js`
([#4195](#4195))
([2e26530](2e26530))
* Return error rather instead of panicking on invalid circuit
([#3976](#3976))
([67201bf](67201bf))


### Miscellaneous Chores

* **acir:** Move `is_recursive` flag to be part of the circuit
definition (AztecProtocol/aztec-packages#4221)
([158c8ce](158c8ce))
* Move noir out of yarn-project
(AztecProtocol/aztec-packages#4479)
([78ef013](78ef013))
* Remove partial backend feature
([#3805](#3805))
([0383100](0383100))
* Remove unused methods on ACIR opcodes
([#3841](#3841))
([9e5d0e8](9e5d0e8))
* Rename Arithmetic opcode to AssertZero
([#3840](#3840))
([836f171](836f171))
* Rename bigint_neg into bigint_sub
(AztecProtocol/aztec-packages#4420)
([158c8ce](158c8ce))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: Savio <72797635+Savio-Sou@users.noreply.github.com>
TomAFrench added a commit that referenced this pull request Mar 12, 2024
* master:
  chore: generalise `FunctionVisibility` to `ItemVisibility` (#4495)
  fix: Dynamic assert messages in brillig (#4531)
  chore: organize the `blackbox_solver` crate (#4519)
  fix(acir_gen): More granular element sizes array check (#4528)
  chore: Release Noir(0.25.0) (#4352)
  chore: document big integers (#4487)
  fix: Add `follow_bindings` to follow `Type::Alias` links (#4521)
  fix: Fix brillig slowdown when assigning arrays in loops (#4472)
  chore: Move `check_method_signatures` to type checking phase (#4516)
  chore(ci): fix JS publishing workflow checking out inconsistent commits (#4493)
  fix(ssa): Handle mergers of slices returned from calls (#4496)
  chore: Add HashMap docs (#4457)
  chore: custom hash for eddsa (#4440)
  chore: update various dependencies (#4513)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Mar 12, 2024
noir-lang/noir#4495)

fix: Dynamic assert messages in brillig (noir-lang/noir#4531)
chore: organize the `blackbox_solver` crate (noir-lang/noir#4519)
fix(acir_gen): More granular element sizes array check (noir-lang/noir#4528)
chore: Release Noir(0.25.0) (noir-lang/noir#4352)
chore: document big integers (noir-lang/noir#4487)
fix: Add `follow_bindings` to follow `Type::Alias` links (noir-lang/noir#4521)
fix: Fix brillig slowdown when assigning arrays in loops (noir-lang/noir#4472)
chore: Move `check_method_signatures` to type checking phase (noir-lang/noir#4516)
chore(ci): fix JS publishing workflow checking out inconsistent commits (noir-lang/noir#4493)
fix(ssa): Handle mergers of slices returned from calls (noir-lang/noir#4496)
chore: Add HashMap docs (noir-lang/noir#4457)
chore: custom hash for eddsa (noir-lang/noir#4440)
chore: update various dependencies (noir-lang/noir#4513)
fix: Allow type aliases in main (noir-lang/noir#4505)
chore: add `ModuleDeclaration` struct (noir-lang/noir#4512)
fix: Force src impl for == on slices (noir-lang/noir#4507)
chore: pass `import_directive` by reference (noir-lang/noir#4511)
feat: Track stack frames and their variables in the debugger (noir-lang/noir#4188)
chore: add regression test for issue 4449 (noir-lang/noir#4503)
chore: pass macro processors by reference (noir-lang/noir#4501)
chore: bump bb to 0.26.3 (noir-lang/noir#4488)
fix: handling of gh deps in noir_wasm (noir-lang/noir#4499)
fix: iterative flattening pass (noir-lang/noir#4492)
chore: Move templated code for assert_message into the stdlib (noir-lang/noir#4475)
chore: pull out separate function for compiling and running a test
chore: update cargo deny config (noir-lang/noir#4486)
feat: run tests in parallel in `nargo test`  (noir-lang/noir#4484)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Mar 12, 2024
…/noir#4495)

fix: Dynamic assert messages in brillig (noir-lang/noir#4531)
chore: organize the `blackbox_solver` crate (noir-lang/noir#4519)
fix(acir_gen): More granular element sizes array check (noir-lang/noir#4528)
chore: Release Noir(0.25.0) (noir-lang/noir#4352)
chore: document big integers (noir-lang/noir#4487)
fix: Add `follow_bindings` to follow `Type::Alias` links (noir-lang/noir#4521)
fix: Fix brillig slowdown when assigning arrays in loops (noir-lang/noir#4472)
chore: Move `check_method_signatures` to type checking phase (noir-lang/noir#4516)
chore(ci): fix JS publishing workflow checking out inconsistent commits (noir-lang/noir#4493)
fix(ssa): Handle mergers of slices returned from calls (noir-lang/noir#4496)
chore: Add HashMap docs (noir-lang/noir#4457)
chore: custom hash for eddsa (noir-lang/noir#4440)
chore: update various dependencies (noir-lang/noir#4513)
fix: Allow type aliases in main (noir-lang/noir#4505)
chore: add `ModuleDeclaration` struct (noir-lang/noir#4512)
fix: Force src impl for == on slices (noir-lang/noir#4507)
chore: pass `import_directive` by reference (noir-lang/noir#4511)
feat: Track stack frames and their variables in the debugger (noir-lang/noir#4188)
chore: add regression test for issue 4449 (noir-lang/noir#4503)
chore: pass macro processors by reference (noir-lang/noir#4501)
chore: bump bb to 0.26.3 (noir-lang/noir#4488)
fix: handling of gh deps in noir_wasm (noir-lang/noir#4499)
fix: iterative flattening pass (noir-lang/noir#4492)
chore: Move templated code for assert_message into the stdlib (noir-lang/noir#4475)
chore: pull out separate function for compiling and running a test
chore: update cargo deny config (noir-lang/noir#4486)
feat: run tests in parallel in `nargo test`  (noir-lang/noir#4484)
sirasistant pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Mar 12, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: generalise `FunctionVisibility` to `ItemVisibility`
(noir-lang/noir#4495)
fix: Dynamic assert messages in brillig
(noir-lang/noir#4531)
chore: organize the `blackbox_solver` crate
(noir-lang/noir#4519)
fix(acir_gen): More granular element sizes array check
(noir-lang/noir#4528)
chore: Release Noir(0.25.0)
(noir-lang/noir#4352)
chore: document big integers
(noir-lang/noir#4487)
fix: Add `follow_bindings` to follow `Type::Alias` links
(noir-lang/noir#4521)
fix: Fix brillig slowdown when assigning arrays in loops
(noir-lang/noir#4472)
chore: Move `check_method_signatures` to type checking phase
(noir-lang/noir#4516)
chore(ci): fix JS publishing workflow checking out inconsistent commits
(noir-lang/noir#4493)
fix(ssa): Handle mergers of slices returned from calls
(noir-lang/noir#4496)
chore: Add HashMap docs (noir-lang/noir#4457)
chore: custom hash for eddsa
(noir-lang/noir#4440)
chore: update various dependencies
(noir-lang/noir#4513)
fix: Allow type aliases in main
(noir-lang/noir#4505)
chore: add `ModuleDeclaration` struct
(noir-lang/noir#4512)
fix: Force src impl for == on slices
(noir-lang/noir#4507)
chore: pass `import_directive` by reference
(noir-lang/noir#4511)
feat: Track stack frames and their variables in the debugger
(noir-lang/noir#4188)
chore: add regression test for issue 4449
(noir-lang/noir#4503)
chore: pass macro processors by reference
(noir-lang/noir#4501)
chore: bump bb to 0.26.3 (noir-lang/noir#4488)
fix: handling of gh deps in noir_wasm
(noir-lang/noir#4499)
fix: iterative flattening pass
(noir-lang/noir#4492)
chore: Move templated code for assert_message into the stdlib
(noir-lang/noir#4475)
chore: pull out separate function for compiling and running a test
chore: update cargo deny config
(noir-lang/noir#4486)
feat: run tests in parallel in `nargo test`
(noir-lang/noir#4484)
END_COMMIT_OVERRIDE

---------

Co-authored-by: TomAFrench <tom@tomfren.ch>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
AztecBot added a commit that referenced this pull request Mar 12, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: generalise `FunctionVisibility` to `ItemVisibility`
(#4495)
fix: Dynamic assert messages in brillig
(#4531)
chore: organize the `blackbox_solver` crate
(#4519)
fix(acir_gen): More granular element sizes array check
(#4528)
chore: Release Noir(0.25.0)
(#4352)
chore: document big integers
(#4487)
fix: Add `follow_bindings` to follow `Type::Alias` links
(#4521)
fix: Fix brillig slowdown when assigning arrays in loops
(#4472)
chore: Move `check_method_signatures` to type checking phase
(#4516)
chore(ci): fix JS publishing workflow checking out inconsistent commits
(#4493)
fix(ssa): Handle mergers of slices returned from calls
(#4496)
chore: Add HashMap docs (#4457)
chore: custom hash for eddsa
(#4440)
chore: update various dependencies
(#4513)
fix: Allow type aliases in main
(#4505)
chore: add `ModuleDeclaration` struct
(#4512)
fix: Force src impl for == on slices
(#4507)
chore: pass `import_directive` by reference
(#4511)
feat: Track stack frames and their variables in the debugger
(#4188)
chore: add regression test for issue 4449
(#4503)
chore: pass macro processors by reference
(#4501)
chore: bump bb to 0.26.3 (#4488)
fix: handling of gh deps in noir_wasm
(#4499)
fix: iterative flattening pass
(#4492)
chore: Move templated code for assert_message into the stdlib
(#4475)
chore: pull out separate function for compiling and running a test
chore: update cargo deny config
(#4486)
feat: run tests in parallel in `nargo test`
(#4484)
END_COMMIT_OVERRIDE

---------

Co-authored-by: TomAFrench <tom@tomfren.ch>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
AztecBot added a commit that referenced this pull request Mar 12, 2024
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: generalise `FunctionVisibility` to `ItemVisibility`
(#4495)
fix: Dynamic assert messages in brillig
(#4531)
chore: organize the `blackbox_solver` crate
(#4519)
fix(acir_gen): More granular element sizes array check
(#4528)
chore: Release Noir(0.25.0)
(#4352)
chore: document big integers
(#4487)
fix: Add `follow_bindings` to follow `Type::Alias` links
(#4521)
fix: Fix brillig slowdown when assigning arrays in loops
(#4472)
chore: Move `check_method_signatures` to type checking phase
(#4516)
chore(ci): fix JS publishing workflow checking out inconsistent commits
(#4493)
fix(ssa): Handle mergers of slices returned from calls
(#4496)
chore: Add HashMap docs (#4457)
chore: custom hash for eddsa
(#4440)
chore: update various dependencies
(#4513)
fix: Allow type aliases in main
(#4505)
chore: add `ModuleDeclaration` struct
(#4512)
fix: Force src impl for == on slices
(#4507)
chore: pass `import_directive` by reference
(#4511)
feat: Track stack frames and their variables in the debugger
(#4188)
chore: add regression test for issue 4449
(#4503)
chore: pass macro processors by reference
(#4501)
chore: bump bb to 0.26.3 (#4488)
fix: handling of gh deps in noir_wasm
(#4499)
fix: iterative flattening pass
(#4492)
chore: Move templated code for assert_message into the stdlib
(#4475)
chore: pull out separate function for compiling and running a test
chore: update cargo deny config
(#4486)
feat: run tests in parallel in `nargo test`
(#4484)
END_COMMIT_OVERRIDE

---------

Co-authored-by: TomAFrench <tom@tomfren.ch>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
critesjosh pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Mar 13, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.27.2</summary>

##
[0.27.2](aztec-package-v0.27.1...aztec-package-v0.27.2)
(2024-03-13)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

<details><summary>barretenberg.js: 0.27.2</summary>

##
[0.27.2](barretenberg.js-v0.27.1...barretenberg.js-v0.27.2)
(2024-03-13)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-cli: 0.27.2</summary>

##
[0.27.2](aztec-cli-v0.27.1...aztec-cli-v0.27.2)
(2024-03-13)


### Miscellaneous

* **aztec-cli:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-packages: 0.27.2</summary>

##
[0.27.2](aztec-packages-v0.27.1...aztec-packages-v0.27.2)
(2024-03-13)


### Features

* Check initialization arguments in constructors
([#5144](#5144))
([d003bd6](d003bd6))
* Multithreaded prover folding
([#5147](#5147))
([94922fc](94922fc))
* Run tests in parallel in `nargo test`
(noir-lang/noir#4484)
([58e15ed](58e15ed))
* Track stack frames and their variables in the debugger
(noir-lang/noir#4188)
([58e15ed](58e15ed))


### Bug Fixes

* **acir_gen:** More granular element sizes array check
(noir-lang/noir#4528)
([58e15ed](58e15ed))
* Add `follow_bindings` to follow `Type::Alias` links
(noir-lang/noir#4521)
([58e15ed](58e15ed))
* Allow type aliases in main
(noir-lang/noir#4505)
([58e15ed](58e15ed))
* Constant gen
([#5172](#5172))
([394a0e0](394a0e0))
* **docs:** Update quickstart.md
([#5021](#5021))
([be9f8a1](be9f8a1))
* Dynamic assert messages in brillig
(noir-lang/noir#4531)
([58e15ed](58e15ed))
* Fix brillig slowdown when assigning arrays in loops
(noir-lang/noir#4472)
([58e15ed](58e15ed))
* Fix deployments
([#5183](#5183))
([596253b](596253b))
* Force src impl for == on slices
(noir-lang/noir#4507)
([58e15ed](58e15ed))
* Handling of gh deps in noir_wasm
(noir-lang/noir#4499)
([58e15ed](58e15ed))
* Intermittent invert 0 in Goblin
([#5174](#5174))
([3e68b49](3e68b49))
* Iterative flattening pass
(noir-lang/noir#4492)
([58e15ed](58e15ed))
* Noir mirror merge strat
([#5166](#5166))
([74fa8d6](74fa8d6))
* **ssa:** Handle mergers of slices returned from calls
(noir-lang/noir#4496)
([58e15ed](58e15ed))


### Miscellaneous

* Add `ModuleDeclaration` struct
(noir-lang/noir#4512)
([58e15ed](58e15ed))
* Add HashMap docs (noir-lang/noir#4457)
([58e15ed](58e15ed))
* Add regression test for issue 4449
(noir-lang/noir#4503)
([58e15ed](58e15ed))
* Better output in ci_deploy_contracts.sh
([#5171](#5171))
([8d73f8a](8d73f8a))
* Bump bb to 0.26.3 (noir-lang/noir#4488)
([58e15ed](58e15ed))
* **ci:** Fix JS publishing workflow checking out inconsistent commits
(noir-lang/noir#4493)
([58e15ed](58e15ed))
* Custom hash for eddsa (noir-lang/noir#4440)
([58e15ed](58e15ed))
* Deterministic mode
([#5155](#5155))
([e68b56a](e68b56a))
* Document big integers (noir-lang/noir#4487)
([58e15ed](58e15ed))
* Generalise `FunctionVisibility` to `ItemVisibility`
(noir-lang/noir#4495)
([58e15ed](58e15ed))
* Interaction for a mock first circuit handled inside the `EccOpQueue`
([#4854](#4854))
([d9cbdc8](d9cbdc8))
* Move `check_method_signatures` to type checking phase
(noir-lang/noir#4516)
([58e15ed](58e15ed))
* Move templated code for assert_message into the stdlib
(noir-lang/noir#4475)
([58e15ed](58e15ed))
* Organize the `blackbox_solver` crate
(noir-lang/noir#4519)
([58e15ed](58e15ed))
* Pass `import_directive` by reference
(noir-lang/noir#4511)
([58e15ed](58e15ed))
* Pass macro processors by reference
(noir-lang/noir#4501)
([58e15ed](58e15ed))
* Pull out separate function for compiling and running a test
([58e15ed](58e15ed))
* Release Noir(0.25.0) (noir-lang/noir#4352)
([58e15ed](58e15ed))
* Update cargo deny config (noir-lang/noir#4486)
([58e15ed](58e15ed))
* Update various dependencies
(noir-lang/noir#4513)
([58e15ed](58e15ed))
</details>

<details><summary>barretenberg: 0.27.2</summary>

##
[0.27.2](barretenberg-v0.27.1...barretenberg-v0.27.2)
(2024-03-13)


### Features

* Multithreaded prover folding
([#5147](#5147))
([94922fc](94922fc))


### Bug Fixes

* Intermittent invert 0 in Goblin
([#5174](#5174))
([3e68b49](3e68b49))


### Miscellaneous

* Interaction for a mock first circuit handled inside the `EccOpQueue`
([#4854](#4854))
([d9cbdc8](d9cbdc8))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
TomAFrench added a commit that referenced this pull request Mar 13, 2024
* master: (48 commits)
  feat: Visible aliases for nargo commands (#4453)
  feat: Sync from aztec-packages (#4494)
  feat: Add checks for bit size consistency on brillig gen (#4542)
  fix: Allow non-integer globals to reference struct methods (#4490)
  chore: generalise `FunctionVisibility` to `ItemVisibility` (#4495)
  fix: Dynamic assert messages in brillig (#4531)
  chore: organize the `blackbox_solver` crate (#4519)
  fix(acir_gen): More granular element sizes array check (#4528)
  chore: Release Noir(0.25.0) (#4352)
  chore: document big integers (#4487)
  fix: Add `follow_bindings` to follow `Type::Alias` links (#4521)
  fix: Fix brillig slowdown when assigning arrays in loops (#4472)
  chore: Move `check_method_signatures` to type checking phase (#4516)
  chore(ci): fix JS publishing workflow checking out inconsistent commits (#4493)
  fix(ssa): Handle mergers of slices returned from calls (#4496)
  chore: Add HashMap docs (#4457)
  chore: custom hash for eddsa (#4440)
  chore: update various dependencies (#4513)
  fix: Allow type aliases in main (#4505)
  chore: add `ModuleDeclaration` struct (#4512)
  ...
TomAFrench added a commit that referenced this pull request Mar 13, 2024
* master: (36 commits)
  fix: Substitute generics when checking the field count of a type (#4547)
  feat: optimize sha2 implementation (#4441)
  chore: allow setting namespace visibility on functions (#4510)
  feat: Visible aliases for nargo commands (#4453)
  feat: Sync from aztec-packages (#4494)
  feat: Add checks for bit size consistency on brillig gen (#4542)
  fix: Allow non-integer globals to reference struct methods (#4490)
  chore: generalise `FunctionVisibility` to `ItemVisibility` (#4495)
  fix: Dynamic assert messages in brillig (#4531)
  chore: organize the `blackbox_solver` crate (#4519)
  fix(acir_gen): More granular element sizes array check (#4528)
  chore: Release Noir(0.25.0) (#4352)
  chore: document big integers (#4487)
  fix: Add `follow_bindings` to follow `Type::Alias` links (#4521)
  fix: Fix brillig slowdown when assigning arrays in loops (#4472)
  chore: Move `check_method_signatures` to type checking phase (#4516)
  chore(ci): fix JS publishing workflow checking out inconsistent commits (#4493)
  fix(ssa): Handle mergers of slices returned from calls (#4496)
  chore: Add HashMap docs (#4457)
  chore: custom hash for eddsa (#4440)
  ...
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Mar 14, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.27.2</summary>

##
[0.27.2](AztecProtocol/aztec-packages@aztec-package-v0.27.1...aztec-package-v0.27.2)
(2024-03-13)


### Miscellaneous

* **aztec-package:** Synchronize aztec-packages versions
</details>

<details><summary>barretenberg.js: 0.27.2</summary>

##
[0.27.2](AztecProtocol/aztec-packages@barretenberg.js-v0.27.1...barretenberg.js-v0.27.2)
(2024-03-13)


### Miscellaneous

* **barretenberg.js:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-cli: 0.27.2</summary>

##
[0.27.2](AztecProtocol/aztec-packages@aztec-cli-v0.27.1...aztec-cli-v0.27.2)
(2024-03-13)


### Miscellaneous

* **aztec-cli:** Synchronize aztec-packages versions
</details>

<details><summary>aztec-packages: 0.27.2</summary>

##
[0.27.2](AztecProtocol/aztec-packages@aztec-packages-v0.27.1...aztec-packages-v0.27.2)
(2024-03-13)


### Features

* Check initialization arguments in constructors
([#5144](AztecProtocol/aztec-packages#5144))
([d003bd6](AztecProtocol/aztec-packages@d003bd6))
* Multithreaded prover folding
([#5147](AztecProtocol/aztec-packages#5147))
([94922fc](AztecProtocol/aztec-packages@94922fc))
* Run tests in parallel in `nargo test`
(noir-lang/noir#4484)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Track stack frames and their variables in the debugger
(noir-lang/noir#4188)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))


### Bug Fixes

* **acir_gen:** More granular element sizes array check
(noir-lang/noir#4528)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Add `follow_bindings` to follow `Type::Alias` links
(noir-lang/noir#4521)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Allow type aliases in main
(noir-lang/noir#4505)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Constant gen
([#5172](AztecProtocol/aztec-packages#5172))
([394a0e0](AztecProtocol/aztec-packages@394a0e0))
* **docs:** Update quickstart.md
([#5021](AztecProtocol/aztec-packages#5021))
([be9f8a1](AztecProtocol/aztec-packages@be9f8a1))
* Dynamic assert messages in brillig
(noir-lang/noir#4531)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Fix brillig slowdown when assigning arrays in loops
(noir-lang/noir#4472)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Fix deployments
([#5183](AztecProtocol/aztec-packages#5183))
([596253b](AztecProtocol/aztec-packages@596253b))
* Force src impl for == on slices
(noir-lang/noir#4507)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Handling of gh deps in noir_wasm
(noir-lang/noir#4499)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Intermittent invert 0 in Goblin
([#5174](AztecProtocol/aztec-packages#5174))
([3e68b49](AztecProtocol/aztec-packages@3e68b49))
* Iterative flattening pass
(noir-lang/noir#4492)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Noir mirror merge strat
([#5166](AztecProtocol/aztec-packages#5166))
([74fa8d6](AztecProtocol/aztec-packages@74fa8d6))
* **ssa:** Handle mergers of slices returned from calls
(noir-lang/noir#4496)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))


### Miscellaneous

* Add `ModuleDeclaration` struct
(noir-lang/noir#4512)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Add HashMap docs (noir-lang/noir#4457)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Add regression test for issue 4449
(noir-lang/noir#4503)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Better output in ci_deploy_contracts.sh
([#5171](AztecProtocol/aztec-packages#5171))
([8d73f8a](AztecProtocol/aztec-packages@8d73f8a))
* Bump bb to 0.26.3 (noir-lang/noir#4488)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* **ci:** Fix JS publishing workflow checking out inconsistent commits
(noir-lang/noir#4493)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Custom hash for eddsa (noir-lang/noir#4440)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Deterministic mode
([#5155](AztecProtocol/aztec-packages#5155))
([e68b56a](AztecProtocol/aztec-packages@e68b56a))
* Document big integers (noir-lang/noir#4487)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Generalise `FunctionVisibility` to `ItemVisibility`
(noir-lang/noir#4495)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Interaction for a mock first circuit handled inside the `EccOpQueue`
([#4854](AztecProtocol/aztec-packages#4854))
([d9cbdc8](AztecProtocol/aztec-packages@d9cbdc8))
* Move `check_method_signatures` to type checking phase
(noir-lang/noir#4516)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Move templated code for assert_message into the stdlib
(noir-lang/noir#4475)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Organize the `blackbox_solver` crate
(noir-lang/noir#4519)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Pass `import_directive` by reference
(noir-lang/noir#4511)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Pass macro processors by reference
(noir-lang/noir#4501)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Pull out separate function for compiling and running a test
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Release Noir(0.25.0) (noir-lang/noir#4352)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Update cargo deny config (noir-lang/noir#4486)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
* Update various dependencies
(noir-lang/noir#4513)
([58e15ed](AztecProtocol/aztec-packages@58e15ed))
</details>

<details><summary>barretenberg: 0.27.2</summary>

##
[0.27.2](AztecProtocol/aztec-packages@barretenberg-v0.27.1...barretenberg-v0.27.2)
(2024-03-13)


### Features

* Multithreaded prover folding
([#5147](AztecProtocol/aztec-packages#5147))
([94922fc](AztecProtocol/aztec-packages@94922fc))


### Bug Fixes

* Intermittent invert 0 in Goblin
([#5174](AztecProtocol/aztec-packages#5174))
([3e68b49](AztecProtocol/aztec-packages@3e68b49))


### Miscellaneous

* Interaction for a mock first circuit handled inside the `EccOpQueue`
([#4854](AztecProtocol/aztec-packages#4854))
([d9cbdc8](AztecProtocol/aztec-packages@d9cbdc8))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

IncRc not issued on array reassigns
2 participants