feat(fuzz): Add comptime_vs_brillig_direct target#8924
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: 35d184f | Previous: 2cfc786 | Ratio |
|---|---|---|---|
rollup-merge |
0.004 s |
0.003 s |
1.33 |
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: 35d184f | Previous: 3838c69 | Ratio |
|---|---|---|---|
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob |
177 s |
141 s |
1.26 |
This comment was automatically generated by workflow using github-action-benchmark.
CC: @TomAFrench
aakoshh
left a comment
There was a problem hiding this comment.
This must have been a fun deep dive into the elaborator 😃
tooling/ast_fuzzer/fuzz/src/targets/comptime_vs_brillig_direct.rs
Outdated
Show resolved
Hide resolved
tooling/ast_fuzzer/fuzz/src/targets/comptime_vs_brillig_direct.rs
Outdated
Show resolved
Hide resolved
Co-authored-by: Akosh Farkash <aakoshh@gmail.com>
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: 8356502 | Previous: 71ab596 | Ratio |
|---|---|---|---|
rollup-root |
1.856 s |
1.294 s |
1.43 |
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: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE fix: increment reference counts when deduplicating calls which return arrays (noir-lang/noir#8757) fix: Add a aliased check for last stores (noir-lang/noir#8955) fix(LICM): Consider negative loop bounds before hoisting `div <const> <induction-var>` (noir-lang/noir#8986) fix: check "negate with overflow" in comptime code + allow u1 to be used in comptime code (noir-lang/noir#8969) fix: better package name validation and error messages for nargo new/init (noir-lang/noir#8978) feat(fuzz): Add comptime_vs_brillig_direct target (noir-lang/noir#8924) fix(expand): show references to ModuleDefId recursing on parents (noir-lang/noir#8977) feat(ssa_fuzzer): loops + signed (noir-lang/noir#8881) fix(fuzz): Do not take a mutable reference over immutable vars which contain a mutable ref (noir-lang/noir#8971) fix(fuzz): Avoid negating `i8::MIN` into `i8::MAX+1` which won't compile (noir-lang/noir#8972) END_COMMIT_OVERRIDE --------- Co-authored-by: AztecBot <tech@aztecprotocol.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Description
Reworks the AST fuzzer comptime runner to add the comptime_vs_brillig_direct target, bypassing Nargo to call the interpreter directly. This significantly reduces overhead speeding up the fuzzing process, but at the moment runs into a few problems arising from the elaborator, preventing from running certain code which Nargo is fine with.
Problem
Summary
Additional Context
Documentation
Check one:
PR Checklist*
cargo fmton default settings.