fix: comptime code not mutating shared ref to struct field#9250
fix: comptime code not mutating shared ref to struct field#9250
Conversation
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Execution Time'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: cfe5fd6 | Previous: 80b04ec | Ratio |
|---|---|---|---|
private-kernel-inner |
0.017 s |
0.014 s |
1.21 |
sha512-100-bytes |
0.101 s |
0.056 s |
1.80 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Compilation Time'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: cfe5fd6 | Previous: 80b04ec | Ratio |
|---|---|---|---|
rollup-block-root-empty |
28.7 s |
20.7 s |
1.39 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Test Suite Duration'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: cfe5fd6 | Previous: 80b04ec | Ratio |
|---|---|---|---|
test_report_zkpassport_noir_rsa_ |
2 s |
1 s |
2 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix(SSA): validate MakeArray instruction (noir-lang/noir#9183) chore(docs): Add links to ACIR and source reference docs (noir-lang/noir#9260) fix: comptime code not mutating shared ref to struct field (noir-lang/noir#9250) fix(acir_gen): Bail out of `handle_constant_index` when it encounters `DynamicArray` (noir-lang/noir#9259) feat: allow paths in l-values (noir-lang/noir#9254) fix: parse AsTraitPath in type expressions (noir-lang/noir#9258) chore: add acir-gen unit tests per ssa instruction (2) (noir-lang/noir#9185) fix(licm): Ensure that all nested loops the current block is part of are guaranteed to execute (noir-lang/noir#9249) chore: bump external pinned commits (noir-lang/noir#9256) chore: enforce clippy in `ssa_fuzzer` (noir-lang/noir#9247) chore: clippy (noir-lang/noir#9246) chore: skip `ram_blowup_regression` on PRs (noir-lang/noir#9231) chore: mark bignum as expected to pass (noir-lang/noir#9244) fix: suggest traits via visible reexports if they are not directly visible (noir-lang/noir#9242) fix: bind self when type-checking AsTraitPath (noir-lang/noir#9236) chore(docs): Include list to hashing libraries at the top of the relevant docs page (noir-lang/noir#9239) fix(fuzz): Use scoping for variable dynamism (noir-lang/noir#9233) fix(ssa): Change constraint message to "multiply" (noir-lang/noir#9230) feat: Add `compiler_unstable_features` to `Nargo.toml` (noir-lang/noir#9219) chore(fuzz): Increase loop frequency in Brillig (noir-lang/noir#9228) chore: bump noir-edwards dep (noir-lang/noir#9229) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> Co-authored-by: Jan Beneš <janbenes1234@gmail.com>
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix(SSA): validate MakeArray instruction (noir-lang/noir#9183) chore(docs): Add links to ACIR and source reference docs (noir-lang/noir#9260) fix: comptime code not mutating shared ref to struct field (noir-lang/noir#9250) fix(acir_gen): Bail out of `handle_constant_index` when it encounters `DynamicArray` (noir-lang/noir#9259) feat: allow paths in l-values (noir-lang/noir#9254) fix: parse AsTraitPath in type expressions (noir-lang/noir#9258) chore: add acir-gen unit tests per ssa instruction (2) (noir-lang/noir#9185) fix(licm): Ensure that all nested loops the current block is part of are guaranteed to execute (noir-lang/noir#9249) chore: bump external pinned commits (noir-lang/noir#9256) chore: enforce clippy in `ssa_fuzzer` (noir-lang/noir#9247) chore: clippy (noir-lang/noir#9246) chore: skip `ram_blowup_regression` on PRs (noir-lang/noir#9231) chore: mark bignum as expected to pass (noir-lang/noir#9244) fix: suggest traits via visible reexports if they are not directly visible (noir-lang/noir#9242) fix: bind self when type-checking AsTraitPath (noir-lang/noir#9236) chore(docs): Include list to hashing libraries at the top of the relevant docs page (noir-lang/noir#9239) fix(fuzz): Use scoping for variable dynamism (noir-lang/noir#9233) fix(ssa): Change constraint message to "multiply" (noir-lang/noir#9230) feat: Add `compiler_unstable_features` to `Nargo.toml` (noir-lang/noir#9219) chore(fuzz): Increase loop frequency in Brillig (noir-lang/noir#9228) chore: bump noir-edwards dep (noir-lang/noir#9229) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> Co-authored-by: Jan Beneš <janbenes1234@gmail.com>
Description
Problem*
Resolves #9154
Summary*
Fixes the issue by assigning to each struct/tuple field recursively during comptime which somewhat mimics SSA's flattening of tuple values.
Additional Context
I found a new issue while working on this in that the same code but using
&mutinstead oflet mutreturnsfalsein acir.So before this PR we had:
And after it we have:
But we want them all to be
true.I've created a separate issue for the
&mutissue in ACIR here: #9251Documentation*
Check one:
PR Checklist*
cargo fmton default settings.