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: take blackbox function outputs into account when merging expressions #6532

Merged
merged 1 commit into from
Nov 18, 2024

Conversation

TomAFrench
Copy link
Member

Description

Problem*

Resolves #6527

Summary*

The merge_expressions optimization pass was not taking the outputs of blackbox functions into account so if the result was using in two AssertZero opcodes then we'd end up optimizing it out and orphaning the blackbox opcode.

Additional Context

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] 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.

@TomAFrench TomAFrench requested review from guipublic and a team November 15, 2024 17:38
Copy link
Contributor

Changes to circuit sizes

Generated at commit: 5d7df52c17eda52ef1c5081dcc44cde660790710, compared to commit: 8932dac4847c643341320c2893f7e4297c78c621

🧾 Summary (10% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
aes128_encrypt +16 ❌ +12.60% -20 ✅ -1.22%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
aes128_encrypt 143 (+16) +12.60% 1,623 (-20) -1.22%

@TomAFrench
Copy link
Member Author

@guipublic can you take a look at this?

@TomAFrench TomAFrench added this pull request to the merge queue Nov 18, 2024
Merged via the queue into master with commit 713df69 Nov 18, 2024
49 checks passed
@TomAFrench TomAFrench deleted the tf/fix-merge-expressions branch November 18, 2024 16:27
TomAFrench added a commit that referenced this pull request Nov 18, 2024
* master:
  fix: take blackbox function outputs into account when merging expressions (#6532)
  chore: Add `Instruction::MakeArray` to SSA (#6071)
  feat(profiler): Reduce memory in Brillig execution flamegraph (#6538)
  chore: convert some tests to use SSA parser (#6543)
TomAFrench added a commit that referenced this pull request Nov 18, 2024
* master:
  fix: take blackbox function outputs into account when merging expressions (#6532)
  chore: Add `Instruction::MakeArray` to SSA (#6071)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Nov 18, 2024
…r#6534)

fix: take blackbox function outputs into account when merging expressions (noir-lang/noir#6532)
chore: Add `Instruction::MakeArray` to SSA (noir-lang/noir#6071)
feat(profiler): Reduce memory in Brillig execution flamegraph (noir-lang/noir#6538)
chore: convert some tests to use SSA parser (noir-lang/noir#6543)
chore(ci): bump mac github runner image to `macos-14` (noir-lang/noir#6545)
chore(test): More descriptive labels in test matrix (noir-lang/noir#6542)
chore: Remove unused methods from implicit numeric generics (noir-lang/noir#6541)
fix: Fix poor handling of aliased references in flattening pass causing some values to be zeroed (noir-lang/noir#6434)
fix: allow range checks to be performed within the comptime intepreter (noir-lang/noir#6514)
fix: disallow `#[test]` on associated functions (noir-lang/noir#6449)
chore(ssa): Skip array_set pass for Brillig functions (noir-lang/noir#6513)
chore: Reverse ssa parser diff order (noir-lang/noir#6511)
chore: Parse negatives in SSA parser (noir-lang/noir#6510)
feat: avoid unnecessary ssa passes while loop unrolling (noir-lang/noir#6509)
fix(tests): Use a file lock as well as a mutex to isolate tests cases (noir-lang/noir#6508)
fix: set local_module before elaborating each trait (noir-lang/noir#6506)
fix: parse Slice type in SSa (noir-lang/noir#6507)
fix: perform arithmetic simplification through `CheckedCast` (noir-lang/noir#6502)
feat: SSA parser (noir-lang/noir#6489)
chore(test): Run test matrix on test_programs (noir-lang/noir#6429)
chore(ci): fix cargo deny (noir-lang/noir#6501)
feat: Deduplicate instructions across blocks (noir-lang/noir#6499)
chore: move tests for arithmetic generics closer to the code (noir-lang/noir#6497)
fix(docs): Fix broken links in oracles doc (noir-lang/noir#6488)
fix: Treat all parameters as possible aliases of each other (noir-lang/noir#6477)
chore: bump rust dependencies (noir-lang/noir#6482)
feat: use a full `BlackBoxFunctionSolver` implementation when execution brillig during acirgen (noir-lang/noir#6481)
chore(docs): Update How to Oracles (noir-lang/noir#5675)
chore: Release Noir(0.38.0) (noir-lang/noir#6422)
fix(ssa): Change array_set to not mutate slices coming from function inputs (noir-lang/noir#6463)
chore: update example to show how to split public inputs in bash (noir-lang/noir#6472)
fix: Discard optimisation that would change execution ordering or that is related to call outputs (noir-lang/noir#6461)
chore: proptest for `canonicalize` on infix type expressions (noir-lang/noir#6269)
fix: let formatter respect newlines between comments (noir-lang/noir#6458)
fix: check infix expression is valid in program input (noir-lang/noir#6450)
fix: don't crash on AsTraitPath with empty path (noir-lang/noir#6454)
fix(tests): Prevent EOF error while running test programs (noir-lang/noir#6455)
fix(sea): mem2reg to treat block input references as alias (noir-lang/noir#6452)
chore: revamp attributes (noir-lang/noir#6424)
feat!: Always Check Arithmetic Generics at Monomorphization (noir-lang/noir#6329)
chore: split path and import lookups (noir-lang/noir#6430)
fix(ssa): Resolve value IDs in terminator before comparing to array (noir-lang/noir#6448)
fix: right shift is not a regular division (noir-lang/noir#6400)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Nov 19, 2024
…ir#6523)

chore: restructure `noirc_evaluator` crate (noir-lang/noir#6534)
fix: take blackbox function outputs into account when merging expressions (noir-lang/noir#6532)
chore: Add `Instruction::MakeArray` to SSA (noir-lang/noir#6071)
feat(profiler): Reduce memory in Brillig execution flamegraph (noir-lang/noir#6538)
chore: convert some tests to use SSA parser (noir-lang/noir#6543)
chore(ci): bump mac github runner image to `macos-14` (noir-lang/noir#6545)
chore(test): More descriptive labels in test matrix (noir-lang/noir#6542)
chore: Remove unused methods from implicit numeric generics (noir-lang/noir#6541)
fix: Fix poor handling of aliased references in flattening pass causing some values to be zeroed (noir-lang/noir#6434)
fix: allow range checks to be performed within the comptime intepreter (noir-lang/noir#6514)
fix: disallow `#[test]` on associated functions (noir-lang/noir#6449)
chore(ssa): Skip array_set pass for Brillig functions (noir-lang/noir#6513)
chore: Reverse ssa parser diff order (noir-lang/noir#6511)
chore: Parse negatives in SSA parser (noir-lang/noir#6510)
feat: avoid unnecessary ssa passes while loop unrolling (noir-lang/noir#6509)
fix(tests): Use a file lock as well as a mutex to isolate tests cases (noir-lang/noir#6508)
fix: set local_module before elaborating each trait (noir-lang/noir#6506)
fix: parse Slice type in SSa (noir-lang/noir#6507)
fix: perform arithmetic simplification through `CheckedCast` (noir-lang/noir#6502)
feat: SSA parser (noir-lang/noir#6489)
chore(test): Run test matrix on test_programs (noir-lang/noir#6429)
chore(ci): fix cargo deny (noir-lang/noir#6501)
feat: Deduplicate instructions across blocks (noir-lang/noir#6499)
chore: move tests for arithmetic generics closer to the code (noir-lang/noir#6497)
fix(docs): Fix broken links in oracles doc (noir-lang/noir#6488)
fix: Treat all parameters as possible aliases of each other (noir-lang/noir#6477)
chore: bump rust dependencies (noir-lang/noir#6482)
feat: use a full `BlackBoxFunctionSolver` implementation when execution brillig during acirgen (noir-lang/noir#6481)
chore(docs): Update How to Oracles (noir-lang/noir#5675)
chore: Release Noir(0.38.0) (noir-lang/noir#6422)
fix(ssa): Change array_set to not mutate slices coming from function inputs (noir-lang/noir#6463)
chore: update example to show how to split public inputs in bash (noir-lang/noir#6472)
fix: Discard optimisation that would change execution ordering or that is related to call outputs (noir-lang/noir#6461)
chore: proptest for `canonicalize` on infix type expressions (noir-lang/noir#6269)
fix: let formatter respect newlines between comments (noir-lang/noir#6458)
fix: check infix expression is valid in program input (noir-lang/noir#6450)
fix: don't crash on AsTraitPath with empty path (noir-lang/noir#6454)
fix(tests): Prevent EOF error while running test programs (noir-lang/noir#6455)
fix(sea): mem2reg to treat block input references as alias (noir-lang/noir#6452)
chore: revamp attributes (noir-lang/noir#6424)
feat!: Always Check Arithmetic Generics at Monomorphization (noir-lang/noir#6329)
chore: split path and import lookups (noir-lang/noir#6430)
fix(ssa): Resolve value IDs in terminator before comparing to array (noir-lang/noir#6448)
fix: right shift is not a regular division (noir-lang/noir#6400)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Nov 19, 2024
chore: restructure `noirc_evaluator` crate (noir-lang/noir#6534)
fix: take blackbox function outputs into account when merging expressions (noir-lang/noir#6532)
chore: Add `Instruction::MakeArray` to SSA (noir-lang/noir#6071)
feat(profiler): Reduce memory in Brillig execution flamegraph (noir-lang/noir#6538)
chore: convert some tests to use SSA parser (noir-lang/noir#6543)
chore(ci): bump mac github runner image to `macos-14` (noir-lang/noir#6545)
chore(test): More descriptive labels in test matrix (noir-lang/noir#6542)
chore: Remove unused methods from implicit numeric generics (noir-lang/noir#6541)
fix: Fix poor handling of aliased references in flattening pass causing some values to be zeroed (noir-lang/noir#6434)
fix: allow range checks to be performed within the comptime intepreter (noir-lang/noir#6514)
fix: disallow `#[test]` on associated functions (noir-lang/noir#6449)
chore(ssa): Skip array_set pass for Brillig functions (noir-lang/noir#6513)
chore: Reverse ssa parser diff order (noir-lang/noir#6511)
chore: Parse negatives in SSA parser (noir-lang/noir#6510)
feat: avoid unnecessary ssa passes while loop unrolling (noir-lang/noir#6509)
fix(tests): Use a file lock as well as a mutex to isolate tests cases (noir-lang/noir#6508)
fix: set local_module before elaborating each trait (noir-lang/noir#6506)
fix: parse Slice type in SSa (noir-lang/noir#6507)
fix: perform arithmetic simplification through `CheckedCast` (noir-lang/noir#6502)
feat: SSA parser (noir-lang/noir#6489)
chore(test): Run test matrix on test_programs (noir-lang/noir#6429)
chore(ci): fix cargo deny (noir-lang/noir#6501)
feat: Deduplicate instructions across blocks (noir-lang/noir#6499)
chore: move tests for arithmetic generics closer to the code (noir-lang/noir#6497)
fix(docs): Fix broken links in oracles doc (noir-lang/noir#6488)
fix: Treat all parameters as possible aliases of each other (noir-lang/noir#6477)
chore: bump rust dependencies (noir-lang/noir#6482)
feat: use a full `BlackBoxFunctionSolver` implementation when execution brillig during acirgen (noir-lang/noir#6481)
chore(docs): Update How to Oracles (noir-lang/noir#5675)
chore: Release Noir(0.38.0) (noir-lang/noir#6422)
fix(ssa): Change array_set to not mutate slices coming from function inputs (noir-lang/noir#6463)
chore: update example to show how to split public inputs in bash (noir-lang/noir#6472)
fix: Discard optimisation that would change execution ordering or that is related to call outputs (noir-lang/noir#6461)
chore: proptest for `canonicalize` on infix type expressions (noir-lang/noir#6269)
fix: let formatter respect newlines between comments (noir-lang/noir#6458)
fix: check infix expression is valid in program input (noir-lang/noir#6450)
fix: don't crash on AsTraitPath with empty path (noir-lang/noir#6454)
fix(tests): Prevent EOF error while running test programs (noir-lang/noir#6455)
fix(sea): mem2reg to treat block input references as alias (noir-lang/noir#6452)
chore: revamp attributes (noir-lang/noir#6424)
feat!: Always Check Arithmetic Generics at Monomorphization (noir-lang/noir#6329)
chore: split path and import lookups (noir-lang/noir#6430)
fix(ssa): Resolve value IDs in terminator before comparing to array (noir-lang/noir#6448)
fix: right shift is not a regular division (noir-lang/noir#6400)
TomAFrench added a commit that referenced this pull request Nov 19, 2024
* master: (65 commits)
  chore: remove some `_else_condition` tech debt (#6522)
  chore: revert #6375 (#6552)
  feat: simplify constant MSM calls in SSA (#6547)
  chore(test): Remove duplicate brillig tests (#6523)
  chore: restructure `noirc_evaluator` crate (#6534)
  fix: take blackbox function outputs into account when merging expressions (#6532)
  chore: Add `Instruction::MakeArray` to SSA (#6071)
  feat(profiler): Reduce memory in Brillig execution flamegraph (#6538)
  chore: convert some tests to use SSA parser (#6543)
  chore(ci): bump mac github runner image to `macos-14` (#6545)
  chore(test): More descriptive labels in test matrix (#6542)
  chore: Remove unused methods from implicit numeric generics (#6541)
  fix: Fix poor handling of aliased references in flattening pass causing some values to be zeroed (#6434)
  fix: allow range checks to be performed within the comptime intepreter (#6514)
  fix: disallow `#[test]` on associated functions (#6449)
  chore(ssa): Skip array_set pass for Brillig functions (#6513)
  chore: Reverse ssa parser diff order (#6511)
  chore: Parse negatives in SSA parser (#6510)
  feat: avoid unnecessary ssa passes while loop unrolling (#6509)
  fix(tests): Use a file lock as well as a mutex to isolate tests cases (#6508)
  ...
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Nov 19, 2024
feat(ssa): Unroll small loops in brillig (noir-lang/noir#6505)
fix: Do a shallow follow_bindings before unification (noir-lang/noir#6558)
chore: remove some `_else_condition` tech debt (noir-lang/noir#6522)
chore: revert #6375 (noir-lang/noir#6552)
feat: simplify constant MSM calls in SSA (noir-lang/noir#6547)
chore(test): Remove duplicate brillig tests (noir-lang/noir#6523)
chore: restructure `noirc_evaluator` crate (noir-lang/noir#6534)
fix: take blackbox function outputs into account when merging expressions (noir-lang/noir#6532)
chore: Add `Instruction::MakeArray` to SSA (noir-lang/noir#6071)
feat(profiler): Reduce memory in Brillig execution flamegraph (noir-lang/noir#6538)
chore: convert some tests to use SSA parser (noir-lang/noir#6543)
chore(ci): bump mac github runner image to `macos-14` (noir-lang/noir#6545)
chore(test): More descriptive labels in test matrix (noir-lang/noir#6542)
chore: Remove unused methods from implicit numeric generics (noir-lang/noir#6541)
fix: Fix poor handling of aliased references in flattening pass causing some values to be zeroed (noir-lang/noir#6434)
fix: allow range checks to be performed within the comptime intepreter (noir-lang/noir#6514)
fix: disallow `#[test]` on associated functions (noir-lang/noir#6449)
chore(ssa): Skip array_set pass for Brillig functions (noir-lang/noir#6513)
chore: Reverse ssa parser diff order (noir-lang/noir#6511)
chore: Parse negatives in SSA parser (noir-lang/noir#6510)
feat: avoid unnecessary ssa passes while loop unrolling (noir-lang/noir#6509)
fix(tests): Use a file lock as well as a mutex to isolate tests cases (noir-lang/noir#6508)
fix: set local_module before elaborating each trait (noir-lang/noir#6506)
fix: parse Slice type in SSa (noir-lang/noir#6507)
fix: perform arithmetic simplification through `CheckedCast` (noir-lang/noir#6502)
feat: SSA parser (noir-lang/noir#6489)
chore(test): Run test matrix on test_programs (noir-lang/noir#6429)
chore(ci): fix cargo deny (noir-lang/noir#6501)
feat: Deduplicate instructions across blocks (noir-lang/noir#6499)
chore: move tests for arithmetic generics closer to the code (noir-lang/noir#6497)
fix(docs): Fix broken links in oracles doc (noir-lang/noir#6488)
fix: Treat all parameters as possible aliases of each other (noir-lang/noir#6477)
chore: bump rust dependencies (noir-lang/noir#6482)
feat: use a full `BlackBoxFunctionSolver` implementation when execution brillig during acirgen (noir-lang/noir#6481)
chore(docs): Update How to Oracles (noir-lang/noir#5675)
chore: Release Noir(0.38.0) (noir-lang/noir#6422)
fix(ssa): Change array_set to not mutate slices coming from function inputs (noir-lang/noir#6463)
chore: update example to show how to split public inputs in bash (noir-lang/noir#6472)
fix: Discard optimisation that would change execution ordering or that is related to call outputs (noir-lang/noir#6461)
chore: proptest for `canonicalize` on infix type expressions (noir-lang/noir#6269)
fix: let formatter respect newlines between comments (noir-lang/noir#6458)
fix: check infix expression is valid in program input (noir-lang/noir#6450)
fix: don't crash on AsTraitPath with empty path (noir-lang/noir#6454)
fix(tests): Prevent EOF error while running test programs (noir-lang/noir#6455)
fix(sea): mem2reg to treat block input references as alias (noir-lang/noir#6452)
chore: revamp attributes (noir-lang/noir#6424)
feat!: Always Check Arithmetic Generics at Monomorphization (noir-lang/noir#6329)
chore: split path and import lookups (noir-lang/noir#6430)
fix(ssa): Resolve value IDs in terminator before comparing to array (noir-lang/noir#6448)
fix: right shift is not a regular division (noir-lang/noir#6400)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Nov 20, 2024
chore: switch to 1.0.0-beta versioning (noir-lang/noir#6503)
chore: Release Noir(0.39.0) (noir-lang/noir#6484)
feat: Sync from aztec-packages (noir-lang/noir#6557)
feat(ssa): Unroll small loops in brillig (noir-lang/noir#6505)
fix: Do a shallow follow_bindings before unification (noir-lang/noir#6558)
chore: remove some `_else_condition` tech debt (noir-lang/noir#6522)
chore: revert #6375 (noir-lang/noir#6552)
feat: simplify constant MSM calls in SSA (noir-lang/noir#6547)
chore(test): Remove duplicate brillig tests (noir-lang/noir#6523)
chore: restructure `noirc_evaluator` crate (noir-lang/noir#6534)
fix: take blackbox function outputs into account when merging expressions (noir-lang/noir#6532)
chore: Add `Instruction::MakeArray` to SSA (noir-lang/noir#6071)
feat(profiler): Reduce memory in Brillig execution flamegraph (noir-lang/noir#6538)
chore: convert some tests to use SSA parser (noir-lang/noir#6543)
chore(ci): bump mac github runner image to `macos-14` (noir-lang/noir#6545)
chore(test): More descriptive labels in test matrix (noir-lang/noir#6542)
chore: Remove unused methods from implicit numeric generics (noir-lang/noir#6541)
fix: Fix poor handling of aliased references in flattening pass causing some values to be zeroed (noir-lang/noir#6434)
fix: allow range checks to be performed within the comptime intepreter (noir-lang/noir#6514)
fix: disallow `#[test]` on associated functions (noir-lang/noir#6449)
chore(ssa): Skip array_set pass for Brillig functions (noir-lang/noir#6513)
chore: Reverse ssa parser diff order (noir-lang/noir#6511)
chore: Parse negatives in SSA parser (noir-lang/noir#6510)
feat: avoid unnecessary ssa passes while loop unrolling (noir-lang/noir#6509)
fix(tests): Use a file lock as well as a mutex to isolate tests cases (noir-lang/noir#6508)
fix: set local_module before elaborating each trait (noir-lang/noir#6506)
fix: parse Slice type in SSa (noir-lang/noir#6507)
fix: perform arithmetic simplification through `CheckedCast` (noir-lang/noir#6502)
feat: SSA parser (noir-lang/noir#6489)
chore(test): Run test matrix on test_programs (noir-lang/noir#6429)
chore(ci): fix cargo deny (noir-lang/noir#6501)
feat: Deduplicate instructions across blocks (noir-lang/noir#6499)
chore: move tests for arithmetic generics closer to the code (noir-lang/noir#6497)
fix(docs): Fix broken links in oracles doc (noir-lang/noir#6488)
fix: Treat all parameters as possible aliases of each other (noir-lang/noir#6477)
chore: bump rust dependencies (noir-lang/noir#6482)
feat: use a full `BlackBoxFunctionSolver` implementation when execution brillig during acirgen (noir-lang/noir#6481)
chore(docs): Update How to Oracles (noir-lang/noir#5675)
chore: Release Noir(0.38.0) (noir-lang/noir#6422)
fix(ssa): Change array_set to not mutate slices coming from function inputs (noir-lang/noir#6463)
chore: update example to show how to split public inputs in bash (noir-lang/noir#6472)
fix: Discard optimisation that would change execution ordering or that is related to call outputs (noir-lang/noir#6461)
chore: proptest for `canonicalize` on infix type expressions (noir-lang/noir#6269)
fix: let formatter respect newlines between comments (noir-lang/noir#6458)
fix: check infix expression is valid in program input (noir-lang/noir#6450)
fix: don't crash on AsTraitPath with empty path (noir-lang/noir#6454)
fix(tests): Prevent EOF error while running test programs (noir-lang/noir#6455)
fix(sea): mem2reg to treat block input references as alias (noir-lang/noir#6452)
chore: revamp attributes (noir-lang/noir#6424)
feat!: Always Check Arithmetic Generics at Monomorphization (noir-lang/noir#6329)
chore: split path and import lookups (noir-lang/noir#6430)
fix(ssa): Resolve value IDs in terminator before comparing to array (noir-lang/noir#6448)
fix: right shift is not a regular division (noir-lang/noir#6400)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Nov 20, 2024
chore: switch to 1.0.0-beta versioning (noir-lang/noir#6503)
chore: Release Noir(0.39.0) (noir-lang/noir#6484)
feat: Sync from aztec-packages (noir-lang/noir#6557)
feat(ssa): Unroll small loops in brillig (noir-lang/noir#6505)
fix: Do a shallow follow_bindings before unification (noir-lang/noir#6558)
chore: remove some `_else_condition` tech debt (noir-lang/noir#6522)
chore: revert #6375 (noir-lang/noir#6552)
feat: simplify constant MSM calls in SSA (noir-lang/noir#6547)
chore(test): Remove duplicate brillig tests (noir-lang/noir#6523)
chore: restructure `noirc_evaluator` crate (noir-lang/noir#6534)
fix: take blackbox function outputs into account when merging expressions (noir-lang/noir#6532)
chore: Add `Instruction::MakeArray` to SSA (noir-lang/noir#6071)
feat(profiler): Reduce memory in Brillig execution flamegraph (noir-lang/noir#6538)
chore: convert some tests to use SSA parser (noir-lang/noir#6543)
chore(ci): bump mac github runner image to `macos-14` (noir-lang/noir#6545)
chore(test): More descriptive labels in test matrix (noir-lang/noir#6542)
chore: Remove unused methods from implicit numeric generics (noir-lang/noir#6541)
fix: Fix poor handling of aliased references in flattening pass causing some values to be zeroed (noir-lang/noir#6434)
fix: allow range checks to be performed within the comptime intepreter (noir-lang/noir#6514)
fix: disallow `#[test]` on associated functions (noir-lang/noir#6449)
chore(ssa): Skip array_set pass for Brillig functions (noir-lang/noir#6513)
chore: Reverse ssa parser diff order (noir-lang/noir#6511)
chore: Parse negatives in SSA parser (noir-lang/noir#6510)
feat: avoid unnecessary ssa passes while loop unrolling (noir-lang/noir#6509)
fix(tests): Use a file lock as well as a mutex to isolate tests cases (noir-lang/noir#6508)
fix: set local_module before elaborating each trait (noir-lang/noir#6506)
fix: parse Slice type in SSa (noir-lang/noir#6507)
fix: perform arithmetic simplification through `CheckedCast` (noir-lang/noir#6502)
feat: SSA parser (noir-lang/noir#6489)
chore(test): Run test matrix on test_programs (noir-lang/noir#6429)
chore(ci): fix cargo deny (noir-lang/noir#6501)
feat: Deduplicate instructions across blocks (noir-lang/noir#6499)
chore: move tests for arithmetic generics closer to the code (noir-lang/noir#6497)
fix(docs): Fix broken links in oracles doc (noir-lang/noir#6488)
fix: Treat all parameters as possible aliases of each other (noir-lang/noir#6477)
chore: bump rust dependencies (noir-lang/noir#6482)
feat: use a full `BlackBoxFunctionSolver` implementation when execution brillig during acirgen (noir-lang/noir#6481)
chore(docs): Update How to Oracles (noir-lang/noir#5675)
chore: Release Noir(0.38.0) (noir-lang/noir#6422)
fix(ssa): Change array_set to not mutate slices coming from function inputs (noir-lang/noir#6463)
chore: update example to show how to split public inputs in bash (noir-lang/noir#6472)
fix: Discard optimisation that would change execution ordering or that is related to call outputs (noir-lang/noir#6461)
chore: proptest for `canonicalize` on infix type expressions (noir-lang/noir#6269)
fix: let formatter respect newlines between comments (noir-lang/noir#6458)
fix: check infix expression is valid in program input (noir-lang/noir#6450)
fix: don't crash on AsTraitPath with empty path (noir-lang/noir#6454)
fix(tests): Prevent EOF error while running test programs (noir-lang/noir#6455)
fix(sea): mem2reg to treat block input references as alias (noir-lang/noir#6452)
chore: revamp attributes (noir-lang/noir#6424)
feat!: Always Check Arithmetic Generics at Monomorphization (noir-lang/noir#6329)
chore: split path and import lookups (noir-lang/noir#6430)
fix(ssa): Resolve value IDs in terminator before comparing to array (noir-lang/noir#6448)
fix: right shift is not a regular division (noir-lang/noir#6400)
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.

Wrong evaluation of assertion and weird observer effect
2 participants