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

feat(optimization): Add purity analysis to SSA #7197

Merged
merged 19 commits into from
Jan 29, 2025
Merged

feat(optimization): Add purity analysis to SSA #7197

merged 19 commits into from
Jan 29, 2025

Conversation

jfecher
Copy link
Contributor

@jfecher jfecher commented Jan 27, 2025

Description

Problem*

Resolves #7196

Summary*

Adds a purity analysis pass to approximate the purity of each function (we only fail for mutually recursive functions) and use its results in other SSA passes.

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.

@jfecher jfecher requested a review from a team January 27, 2025 18:34
Copy link
Contributor

github-actions bot commented Jan 27, 2025

Changes to number of Brillig opcodes executed

Generated at commit: 51c80bdb74856a00c6368d9fa46902cb63949ce4, compared to commit: 2d2c73b462abdf1c1bcbe35cac6f48bd685dbbce

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
conditional_regression_short_circuit_inliner_min -3,793 ✅ -43.32%
6_inliner_min -3,793 ✅ -43.85%
binary_operator_overloading_inliner_zero -236 ✅ -50.64%
fold_basic_inliner_min -40 ✅ -51.28%

Full diff report 👇
Program Brillig opcodes (+/-) %
poseidon2_inliner_min 873 (+1) +0.11%
regression_5252_inliner_min 1,031,270 (+2) +0.00%
uhashmap_inliner_min 196,981 (-180) -0.09%
hashmap_inliner_min 90,362 (-179) -0.20%
global_var_regression_entry_points_inliner_min 135,432 (-288) -0.21%
global_var_regression_entry_points_inliner_zero 135,311 (-336) -0.25%
higher_order_functions_inliner_min 2,273 (-18) -0.79%
hashmap_inliner_zero 74,602 (-626) -0.83%
7_function_inliner_zero 2,439 (-35) -1.41%
slices_inliner_zero 3,594 (-70) -1.91%
u128_inliner_min 48,483 (-3,734) -7.15%
u128_inliner_zero 40,944 (-3,510) -7.90%
aes128_encrypt_inliner_zero 3,075 (-364) -10.58%
6_array_inliner_min 2,540 (-350) -12.11%
6_array_inliner_zero 2,470 (-350) -12.41%
sha256_var_padding_regression_inliner_min 231,918 (-35,338) -13.22%
sha256_var_padding_regression_inliner_zero 230,407 (-35,186) -13.25%
sha256_inliner_min 12,303 (-4,253) -25.69%
sha256_inliner_zero 11,358 (-3,938) -25.75%
brillig_nested_arrays_inliner_zero 301 (-145) -32.51%
brillig_cow_inliner_zero 803 (-399) -33.19%
binary_operator_overloading_inliner_min 402 (-236) -36.99%
u16_support_inliner_min 51 (-31) -37.80%
u16_support_inliner_zero 51 (-31) -37.80%
fold_basic_nested_call_inliner_min 54 (-36) -40.00%
conditional_regression_short_circuit_inliner_zero 4,520 (-3,392) -42.87%
6_inliner_zero 4,440 (-3,392) -43.31%
conditional_regression_short_circuit_inliner_min 4,962 (-3,793) -43.32%
6_inliner_min 4,856 (-3,793) -43.85%
binary_operator_overloading_inliner_zero 230 (-236) -50.64%
fold_basic_inliner_min 38 (-40) -51.28%

Copy link
Contributor

github-actions bot commented Jan 27, 2025

Changes to circuit sizes

Generated at commit: 51c80bdb74856a00c6368d9fa46902cb63949ce4, compared to commit: 2d2c73b462abdf1c1bcbe35cac6f48bd685dbbce

🧾 Summary (10% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
conditional_regression_short_circuit -127 ✅ -34.79% -4,031 ✅ -36.19%
6 -127 ✅ -36.71% -4,030 ✅ -36.25%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
pedersen_check 15 (-4) -21.05% 3,170 (-2) -0.06%
global_var_regression_simple 66 (-61) -48.03% 2,914 (-152) -4.96%
fold_call_witness_condition 4 (-1) -20.00% 18 (-1) -5.26%
fold_basic 1 (-4) -80.00% 16 (-1) -5.88%
fold_basic_nested_call 1 (-2) -66.67% 16 (-1) -5.88%
sha256_var_padding_regression 3,468 (-350) -9.17% 162,236 (-31,417) -16.22%
sha256 1,279 (-157) -10.93% 20,564 (-4,019) -16.35%
global_var_regression_entry_points 6 (-20) -76.92% 18 (-10) -35.71%
conditional_regression_short_circuit 238 (-127) -34.79% 7,106 (-4,031) -36.19%
6 219 (-127) -36.71% 7,088 (-4,030) -36.25%

@jfecher
Copy link
Contributor Author

jfecher commented Jan 27, 2025

Pending some tests but the pass itself is finished

@jfecher
Copy link
Contributor Author

jfecher commented Jan 27, 2025

Moved the purity pass, and added another closer to the end of SSA.
I've found the results can change as different calls get optimized out so I opted to move the call closer to:

  1. The loop invariant code motion pass
  2. The constant folding pass

@jfecher
Copy link
Contributor Author

jfecher commented Jan 27, 2025

This PR still doesn't seem to be deduplicating

fn main(x: Field) {
    unsafe {
        let x1 = foo(x);
        let x2 = foo(x);
        assert_eq(x1, 0);
        assert_eq(x2, 0);
    }
}

unconstrained fn foo(x: Field) -> Field {
    x
}

@jfecher jfecher marked this pull request as draft January 27, 2025 21:27
@TomAFrench
Copy link
Member

TomAFrench commented Jan 28, 2025

We don't currently do any deduplication of brillig calls so I think we should add a test to ensure that we don't end up deduplicating a brillig call such that an incorrect predicate is applied.

e.g. something like the below (I haven't check that DIE doesn't ruin this example)

fn main(x: Field, active: bool) {
    let mut x1 = false;
    unsafe {
        if active {
            x1 = foo(x);        
        }
    
        let x2 = foo(x);
        assert_eq(x2);
    }
}

unconstrained fn foo(x: Field) -> bool {
    true
}

@jfecher
Copy link
Contributor Author

jfecher commented Jan 28, 2025

@TomAFrench That should be prevented by the existing dominates check when deduplicating (edit: I'm wrong, it is at first but not after flattening of course). Code like that should be fine for hoisting though (right? Unless we return zeroed/bogus values in that case which would complicate things). We do complicate things... so brillig functions can never be pure then, they're pure with predicate at minimum... but only when called from acir 😮‍💨

There are three types of Purity in this PR:

  • Pure: Function is really pure & we can move it anywhere without noticeable change. This applies to foo in your example.
  • PureWithPredicate: function isn't really pure but if it has the same predicate as another identical call then we can deduplicate it to avoid repeating work. This applies to functions with constraints in them.
  • Impure: Can't move or deduplicate even with identical arguments & predicate

@jfecher
Copy link
Contributor Author

jfecher commented Jan 28, 2025

I've also found the reason we weren't deduplicating was that we've been introducing different ValueIds for the same function:

acir(inline) predicate_pure fn main f0 {
  b0(v0: Field):
    v2 = call (v1) f1(v0) -> Field
    v4 = call (v3) f1(v0) -> Field
    constrain v2 == Field 0
    constrain v4 == Field 0
    return
}

Edit: Oh my god, we were never storing to self.functions in dfg::import_function 🤦‍♂️. We were just always creating a new ValueId for who knows how long.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ 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: d204f44 Previous: dc06d8e Ratio
sha256_regression 3.09 s 1.16 s 2.66
regression_4709 7.41 s 0.828 s 8.95
ram_blowup_regression 31.3 s 18.8 s 1.66
rollup-root 6.01 s 3.504 s 1.72
rollup-merge 2.65 s 2.004 s 1.32
rollup-block-root-single-tx 269 s 85.6 s 3.14
rollup-block-root-empty 2.842 s 2.014 s 1.41
rollup-block-root 274 s 87 s 3.15
rollup-block-merge 5.942 s 3.47 s 1.71
rollup-base-public 91.64 s 34.06 s 2.69
rollup-base-private 35.5 s 12.74 s 2.79
private-kernel-inner 5.608 s 2.098 s 2.67

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

Copy link
Contributor

github-actions bot commented Jan 28, 2025

Changes to Brillig bytecode sizes

Generated at commit: 51c80bdb74856a00c6368d9fa46902cb63949ce4, compared to commit: 2d2c73b462abdf1c1bcbe35cac6f48bd685dbbce

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
fold_basic_nested_call_inliner_min -12 ✅ -19.35%
binary_operator_overloading_inliner_min -90 ✅ -20.09%
binary_operator_overloading_inliner_zero -90 ✅ -28.30%
fold_basic_inliner_min -24 ✅ -38.71%

Full diff report 👇
Program Brillig opcodes (+/-) %
poseidon2_inliner_min 378 (+1) +0.27%
regression_5252_inliner_min 3,571 (+1) +0.03%
global_var_regression_entry_points_inliner_min 133,784 (-80) -0.06%
global_var_regression_entry_points_inliner_zero 133,757 (-87) -0.07%
hashmap_inliner_min 9,791 (-13) -0.13%
uhashmap_inliner_min 8,330 (-26) -0.31%
slices_inliner_zero 2,084 (-9) -0.43%
sha256_var_padding_regression_inliner_zero 2,928 (-19) -0.64%
sha256_var_padding_regression_inliner_min 3,216 (-22) -0.68%
hashmap_inliner_zero 7,835 (-54) -0.68%
conditional_regression_short_circuit_inliner_min 1,117 (-8) -0.71%
6_inliner_min 1,016 (-8) -0.78%
conditional_regression_short_circuit_inliner_zero 917 (-8) -0.86%
higher_order_functions_inliner_min 1,337 (-12) -0.89%
6_inliner_zero 835 (-8) -0.95%
sha256_inliner_min 1,395 (-19) -1.34%
u128_inliner_min 2,263 (-32) -1.39%
sha256_inliner_zero 1,234 (-19) -1.52%
u128_inliner_zero 1,957 (-32) -1.61%
7_function_inliner_zero 518 (-14) -2.63%
aes128_encrypt_inliner_zero 388 (-11) -2.76%
6_array_inliner_min 446 (-16) -3.46%
6_array_inliner_zero 436 (-16) -3.54%
brillig_nested_arrays_inliner_zero 241 (-19) -7.31%
u16_support_inliner_min 59 (-6) -9.23%
u16_support_inliner_zero 59 (-6) -9.23%
brillig_cow_inliner_zero 239 (-33) -12.13%
fold_basic_nested_call_inliner_min 50 (-12) -19.35%
binary_operator_overloading_inliner_min 358 (-90) -20.09%
binary_operator_overloading_inliner_zero 228 (-90) -28.30%
fold_basic_inliner_min 38 (-24) -38.71%

@jfecher
Copy link
Contributor Author

jfecher commented Jan 29, 2025

I think the performance alert here may be bugged. I tested sha256_regression locally and found that this PR compiles it slightly faster, not several times slower. I also opened #7227 to run the CI on a fresh PR and it shows no performance regression comment there.

@TomAFrench
Copy link
Member

I think the performance alert here may be bugged. I tested sha256_regression locally and found that this PR compiles it slightly faster, not several times slower.

One thing to note is that the new action doesn't replace old alerts as you push new commits to a PR so the one in this branch is working off of d204f44 whereas #7227 is running off of 668a543.

Pulling out the rollup-base-public circuit we can see that it takes 2m6s to compile as of d204f44:
https://github.com/noir-lang/noir/actions/runs/13019154003/job/36315710426

whereas on 668a543 it takes just 1m15s
https://github.com/noir-lang/noir/actions/runs/13037349787/job/36371109161

@TomAFrench
Copy link
Member

I think it's basically correct but not the best at flagging that a regression has been resolved.

@jfecher
Copy link
Contributor Author

jfecher commented Jan 29, 2025

Since there are no perf regressions this is ready to review again at least

Copy link
Member

@TomAFrench TomAFrench left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Only followup improvement (which I expect won't catch much that this PR doesn't catch already)

@jfecher jfecher added this pull request to the merge queue Jan 29, 2025
Merged via the queue into master with commit 9f21824 Jan 29, 2025
197 checks passed
@jfecher jfecher deleted the jf/pure branch January 29, 2025 19:08
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Jan 31, 2025
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 1, 2025
…ir#7257)

feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 1, 2025
feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 2, 2025
…ir#7257)

feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 2, 2025
feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 3, 2025
…ir#7257)

feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 3, 2025
feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 4, 2025
…_make_arrays` (noir-lang/noir#7264)

chore: early check type equality in try_unify (noir-lang/noir#7263)
feat(LSP): suggest enum variants without parameters (noir-lang/noir#7261)
feat(experimental): Parse match expressions (noir-lang/noir#7243)
feat(experimental): Implement zeroed for enums (noir-lang/noir#7252)
fix(ssa): Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260)
fix: Add missing `is_empty` check for enums (noir-lang/noir#7257)
feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 4, 2025
noir-lang/noir#7264)

chore: early check type equality in try_unify (noir-lang/noir#7263)
feat(LSP): suggest enum variants without parameters (noir-lang/noir#7261)
feat(experimental): Parse match expressions (noir-lang/noir#7243)
feat(experimental): Implement zeroed for enums (noir-lang/noir#7252)
fix(ssa): Only attempt to inline constant Brillig calls for entry points (noir-lang/noir#7260)
fix: Add missing `is_empty` check for enums (noir-lang/noir#7257)
feat(experimental): Implement enum tag constants (noir-lang/noir#7183)
fix(unrolling): Fetch original bytecode size from the original function (noir-lang/noir#7253)
fix(ssa): Use number of SSA instructions for the Brillig unrolling bytecode size limit (noir-lang/noir#7242)
feat: Sync from aztec-packages (noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero (noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test (noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a function (noir-lang/noir#7239)
feat: Allow resolved types in constructors (noir-lang/noir#7223)
chore: clarify to_radix docs examples (noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA (noir-lang/noir#7197)
chore: start tracking time to run critical library tests (noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs (noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis  (noir-lang/noir#7188)
chore: update docs to use devcontainer feature (noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression (noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default (noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir (noir-lang/noir#7203)
chore: build docs in the merge queue (noir-lang/noir#7218)
fix: correct reversed callstacks (noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks (noir-lang/noir#7210)
feat(experimental): Support enums in comptime code (noir-lang/noir#7194)
TomAFrench added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 5, 2025
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
feat: Sync from aztec-packages
(noir-lang/noir#7241)
chore: bump gates diff (noir-lang/noir#7245)
feat: simplify subtraction from self to return zero
(noir-lang/noir#7189)
feat: allow specifying multiple patterns in nargo test
(noir-lang/noir#7186)
fix: Avoid type error when calling something with a type alias of a
function (noir-lang/noir#7239)
feat: Allow resolved types in constructors
(noir-lang/noir#7223)
chore: clarify to_radix docs examples
(noir-lang/noir#7230)
chore: fix struct example (noir-lang/noir#7198)
feat(optimization): Add purity analysis to SSA
(noir-lang/noir#7197)
chore: start tracking time to run critical library tests
(noir-lang/noir#7221)
chore: Rework defunctionalize pass to not rely on DFG bugs
(noir-lang/noir#7222)
fix(brillig): Globals entry point reachability analysis
(noir-lang/noir#7188)
chore: update docs to use devcontainer feature
(noir-lang/noir#7206)
chore(ci): Add test for global vars entry points regression
(noir-lang/noir#7209)
chore(ssa): Flip the SSA Brillig constraint check to off by default
(noir-lang/noir#7211)
chore(docs): moving references to noir-starter to awesome-noir
(noir-lang/noir#7203)
chore: build docs in the merge queue
(noir-lang/noir#7218)
fix: correct reversed callstacks
(noir-lang/noir#7212)
chore: exclude dependency fetching time from benchmarks
(noir-lang/noir#7210)
feat(experimental): Support enums in comptime code
(noir-lang/noir#7194)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Tom French <[email protected]>
sklppy88 pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 6, 2025
🤖 I have created a release *beep* *boop*
---


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

##
[0.75.0](aztec-package-v0.74.0...aztec-package-v0.75.0)
(2025-02-06)


### Miscellaneous

* Playground name change
([#11720](#11720))
([c5cbf65](c5cbf65))
</details>

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

##
[0.75.0](barretenberg.js-v0.74.0...barretenberg.js-v0.75.0)
(2025-02-06)


### Miscellaneous

* Better bundling for bb.js, remove aztec.js bundling
([#11761](#11761))
([8cc3f0a](8cc3f0a))
* Playground name change
([#11720](#11720))
([c5cbf65](c5cbf65))
</details>

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

##
[0.75.0](aztec-packages-v0.74.0...aztec-packages-v0.75.0)
(2025-02-06)


### ⚠ BREAKING CHANGES

* introduce `WithHash<T>` + use it in `PublicImmutable`
([#8022](#8022))
* leonidas library
([#11596](#11596))

### Features

* Allow resolved types in constructors
(noir-lang/noir#7223)
([b60a39d](b60a39d))
* Allow specifying multiple patterns in nargo test
(noir-lang/noir#7186)
([b60a39d](b60a39d))
* Contracts deployed in txe should emit deployment nullifier
automatically
([#11708](#11708))
([20f5653](20f5653))
* **docs:** Applying structure feedback + adding nodes docs
([#10976](#10976))
([2fd08ba](2fd08ba))
* **docs:** Inspiration / ideas page
([#11755](#11755))
([0b012f1](0b012f1))
* **experimental:** Implement enum tag constants
(noir-lang/noir#7183)
([b60a39d](b60a39d))
* **experimental:** Implement zeroed for enums
(noir-lang/noir#7252)
([b60a39d](b60a39d))
* **experimental:** Parse match expressions
(noir-lang/noir#7243)
([b60a39d](b60a39d))
* **experimental:** Support enums in comptime code
(noir-lang/noir#7194)
([b60a39d](b60a39d))
* Gen public base prover.toml
([#11757](#11757))
([1fa89da](1fa89da))
* Introduce `WithHash&lt;T&gt;` + use it in `PublicImmutable`
([#8022](#8022))
([6c15604](6c15604))
* K-shifts
([#11663](#11663))
([511abe5](511abe5))
* Leonidas library
([#11596](#11596))
([e8cfed7](e8cfed7))
* **LSP:** Suggest enum variants without parameters
(noir-lang/noir#7261)
([b60a39d](b60a39d))
* **optimization:** Add purity analysis to SSA
(noir-lang/noir#7197)
([b60a39d](b60a39d))
* Report wrong proof length in the verifier contract
([#11728](#11728))
([1a83cd2](1a83cd2))
* Simplify subtraction from self to return zero
(noir-lang/noir#7189)
([b60a39d](b60a39d))
* Sync from aztec-packages (noir-lang/noir#7241)
([b60a39d](b60a39d))


### Bug Fixes

* Add missing `is_empty` check for enums
(noir-lang/noir#7257)
([b60a39d](b60a39d))
* Avoid type error when calling something with a type alias of a
function (noir-lang/noir#7239)
([b60a39d](b60a39d))
* **brillig:** Globals entry point reachability analysis
(noir-lang/noir#7188)
([b60a39d](b60a39d))
* Contracts with no private / public functions should not fail to
generate a contract artifact
([#11744](#11744))
([672171c](672171c))
* Correct reversed callstacks
(noir-lang/noir#7212)
([b60a39d](b60a39d))
* Deflake prover node epoch proof quote test
([#11773](#11773))
([04e1061](04e1061))
* **docs:** Fix docs previews
([#11736](#11736))
([255b3d8](255b3d8))
* Handle sequencer building block mid-synch
([#11735](#11735))
([435a0af](435a0af))
* Prevent panic within `remove_possibly_mutated_cached_make_arrays`
(noir-lang/noir#7264)
([b60a39d](b60a39d))
* **ssa:** Only attempt to inline constant Brillig calls for entry
points (noir-lang/noir#7260)
([b60a39d](b60a39d))
* **ssa:** Use number of SSA instructions for the Brillig unrolling
bytecode size limit (noir-lang/noir#7242)
([b60a39d](b60a39d))
* **unrolling:** Fetch original bytecode size from the original function
(noir-lang/noir#7253)
([b60a39d](b60a39d))


### Miscellaneous

* **avm:** Add names to lookup settings
([#11768](#11768))
([fafe3ba](fafe3ba))
* **avm:** Full row cleanup
([#11767](#11767))
([6145cd0](6145cd0))
* **avm:** Use lookup by clk for sha params
([#11762](#11762))
([b003567](b003567))
* Better bundling for bb.js, remove aztec.js bundling
([#11761](#11761))
([8cc3f0a](8cc3f0a))
* Build docs in the merge queue
(noir-lang/noir#7218)
([b60a39d](b60a39d))
* Bump gates diff (noir-lang/noir#7245)
([b60a39d](b60a39d))
* Change log level for block proposal
([#11734](#11734))
([29ee9aa](29ee9aa))
* **ci:** Add test for global vars entry points regression
(noir-lang/noir#7209)
([b60a39d](b60a39d))
* Clarify to_radix docs examples
(noir-lang/noir#7230)
([b60a39d](b60a39d))
* **docs:** Moving references to noir-starter to awesome-noir
(noir-lang/noir#7203)
([b60a39d](b60a39d))
* Early check type equality in try_unify
(noir-lang/noir#7263)
([b60a39d](b60a39d))
* Exclude dependency fetching time from benchmarks
(noir-lang/noir#7210)
([b60a39d](b60a39d))
* Fix struct example (noir-lang/noir#7198)
([b60a39d](b60a39d))
* More scalability for our metrics
([#11732](#11732))
([52bbf14](52bbf14))
* Playground name change
([#11720](#11720))
([c5cbf65](c5cbf65))
* Re-enable p2p test
([#11706](#11706))
([652c251](652c251)),
closes
[#10737](#10737)
* Remove stale zk constants and methods
([#11715](#11715))
([7a2870f](7a2870f))
* Replace relative paths to noir-protocol-circuits
([aabab34](aabab34))
* Replace relative paths to noir-protocol-circuits
([0720d18](0720d18))
* Request txs in prover-node after each block finishes
([#11749](#11749))
([61e4eee](61e4eee))
* Rework defunctionalize pass to not rely on DFG bugs
(noir-lang/noir#7222)
([b60a39d](b60a39d))
* Sandbox lower sequencer log level
([#11742](#11742))
([7b30758](7b30758)),
closes
[#11677](#11677)
* **spartan:** Making the spartan script add the coinbase address
([#11235](#11235))
([b97ff0d](b97ff0d))
* **ssa:** Flip the SSA Brillig constraint check to off by default
(noir-lang/noir#7211)
([b60a39d](b60a39d))
* Start tracking time to run critical library tests
(noir-lang/noir#7221)
([b60a39d](b60a39d))
* Update docs to use devcontainer feature
(noir-lang/noir#7206)
([b60a39d](b60a39d))
* Use batch p2p reqresp for requesting txs in prover node
([#11741](#11741))
([df9e4ec](df9e4ec))
</details>

<details><summary>barretenberg: 0.75.0</summary>

##
[0.75.0](barretenberg-v0.74.0...barretenberg-v0.75.0)
(2025-02-06)


### Features

* K-shifts
([#11663](#11663))
([511abe5](511abe5))
* Report wrong proof length in the verifier contract
([#11728](#11728))
([1a83cd2](1a83cd2))


### Miscellaneous

* **avm:** Add names to lookup settings
([#11768](#11768))
([fafe3ba](fafe3ba))
* **avm:** Full row cleanup
([#11767](#11767))
([6145cd0](6145cd0))
* **avm:** Use lookup by clk for sha params
([#11762](#11762))
([b003567](b003567))
* Better bundling for bb.js, remove aztec.js bundling
([#11761](#11761))
([8cc3f0a](8cc3f0a))
* Remove stale zk constants and methods
([#11715](#11715))
([7a2870f](7a2870f))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Feb 7, 2025
🤖 I have created a release *beep* *boop*
---


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

##
[0.75.0](AztecProtocol/aztec-packages@aztec-package-v0.74.0...aztec-package-v0.75.0)
(2025-02-06)


### Miscellaneous

* Playground name change
([#11720](AztecProtocol/aztec-packages#11720))
([c5cbf65](AztecProtocol/aztec-packages@c5cbf65))
</details>

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

##
[0.75.0](AztecProtocol/aztec-packages@barretenberg.js-v0.74.0...barretenberg.js-v0.75.0)
(2025-02-06)


### Miscellaneous

* Better bundling for bb.js, remove aztec.js bundling
([#11761](AztecProtocol/aztec-packages#11761))
([8cc3f0a](AztecProtocol/aztec-packages@8cc3f0a))
* Playground name change
([#11720](AztecProtocol/aztec-packages#11720))
([c5cbf65](AztecProtocol/aztec-packages@c5cbf65))
</details>

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

##
[0.75.0](AztecProtocol/aztec-packages@aztec-packages-v0.74.0...aztec-packages-v0.75.0)
(2025-02-06)


### ⚠ BREAKING CHANGES

* introduce `WithHash<T>` + use it in `PublicImmutable`
([#8022](AztecProtocol/aztec-packages#8022))
* leonidas library
([#11596](AztecProtocol/aztec-packages#11596))

### Features

* Allow resolved types in constructors
(noir-lang/noir#7223)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Allow specifying multiple patterns in nargo test
(noir-lang/noir#7186)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Contracts deployed in txe should emit deployment nullifier
automatically
([#11708](AztecProtocol/aztec-packages#11708))
([20f5653](AztecProtocol/aztec-packages@20f5653))
* **docs:** Applying structure feedback + adding nodes docs
([#10976](AztecProtocol/aztec-packages#10976))
([2fd08ba](AztecProtocol/aztec-packages@2fd08ba))
* **docs:** Inspiration / ideas page
([#11755](AztecProtocol/aztec-packages#11755))
([0b012f1](AztecProtocol/aztec-packages@0b012f1))
* **experimental:** Implement enum tag constants
(noir-lang/noir#7183)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **experimental:** Implement zeroed for enums
(noir-lang/noir#7252)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **experimental:** Parse match expressions
(noir-lang/noir#7243)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **experimental:** Support enums in comptime code
(noir-lang/noir#7194)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Gen public base prover.toml
([#11757](AztecProtocol/aztec-packages#11757))
([1fa89da](AztecProtocol/aztec-packages@1fa89da))
* Introduce `WithHash&lt;T&gt;` + use it in `PublicImmutable`
([#8022](AztecProtocol/aztec-packages#8022))
([6c15604](AztecProtocol/aztec-packages@6c15604))
* K-shifts
([#11663](AztecProtocol/aztec-packages#11663))
([511abe5](AztecProtocol/aztec-packages@511abe5))
* Leonidas library
([#11596](AztecProtocol/aztec-packages#11596))
([e8cfed7](AztecProtocol/aztec-packages@e8cfed7))
* **LSP:** Suggest enum variants without parameters
(noir-lang/noir#7261)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **optimization:** Add purity analysis to SSA
(noir-lang/noir#7197)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Report wrong proof length in the verifier contract
([#11728](AztecProtocol/aztec-packages#11728))
([1a83cd2](AztecProtocol/aztec-packages@1a83cd2))
* Simplify subtraction from self to return zero
(noir-lang/noir#7189)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Sync from aztec-packages (noir-lang/noir#7241)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))


### Bug Fixes

* Add missing `is_empty` check for enums
(noir-lang/noir#7257)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Avoid type error when calling something with a type alias of a
function (noir-lang/noir#7239)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **brillig:** Globals entry point reachability analysis
(noir-lang/noir#7188)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Contracts with no private / public functions should not fail to
generate a contract artifact
([#11744](AztecProtocol/aztec-packages#11744))
([672171c](AztecProtocol/aztec-packages@672171c))
* Correct reversed callstacks
(noir-lang/noir#7212)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Deflake prover node epoch proof quote test
([#11773](AztecProtocol/aztec-packages#11773))
([04e1061](AztecProtocol/aztec-packages@04e1061))
* **docs:** Fix docs previews
([#11736](AztecProtocol/aztec-packages#11736))
([255b3d8](AztecProtocol/aztec-packages@255b3d8))
* Handle sequencer building block mid-synch
([#11735](AztecProtocol/aztec-packages#11735))
([435a0af](AztecProtocol/aztec-packages@435a0af))
* Prevent panic within `remove_possibly_mutated_cached_make_arrays`
(noir-lang/noir#7264)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **ssa:** Only attempt to inline constant Brillig calls for entry
points (noir-lang/noir#7260)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **ssa:** Use number of SSA instructions for the Brillig unrolling
bytecode size limit (noir-lang/noir#7242)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **unrolling:** Fetch original bytecode size from the original function
(noir-lang/noir#7253)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))


### Miscellaneous

* **avm:** Add names to lookup settings
([#11768](AztecProtocol/aztec-packages#11768))
([fafe3ba](AztecProtocol/aztec-packages@fafe3ba))
* **avm:** Full row cleanup
([#11767](AztecProtocol/aztec-packages#11767))
([6145cd0](AztecProtocol/aztec-packages@6145cd0))
* **avm:** Use lookup by clk for sha params
([#11762](AztecProtocol/aztec-packages#11762))
([b003567](AztecProtocol/aztec-packages@b003567))
* Better bundling for bb.js, remove aztec.js bundling
([#11761](AztecProtocol/aztec-packages#11761))
([8cc3f0a](AztecProtocol/aztec-packages@8cc3f0a))
* Build docs in the merge queue
(noir-lang/noir#7218)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Bump gates diff (noir-lang/noir#7245)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Change log level for block proposal
([#11734](AztecProtocol/aztec-packages#11734))
([29ee9aa](AztecProtocol/aztec-packages@29ee9aa))
* **ci:** Add test for global vars entry points regression
(noir-lang/noir#7209)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Clarify to_radix docs examples
(noir-lang/noir#7230)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* **docs:** Moving references to noir-starter to awesome-noir
(noir-lang/noir#7203)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Early check type equality in try_unify
(noir-lang/noir#7263)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Exclude dependency fetching time from benchmarks
(noir-lang/noir#7210)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Fix struct example (noir-lang/noir#7198)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* More scalability for our metrics
([#11732](AztecProtocol/aztec-packages#11732))
([52bbf14](AztecProtocol/aztec-packages@52bbf14))
* Playground name change
([#11720](AztecProtocol/aztec-packages#11720))
([c5cbf65](AztecProtocol/aztec-packages@c5cbf65))
* Re-enable p2p test
([#11706](AztecProtocol/aztec-packages#11706))
([652c251](AztecProtocol/aztec-packages@652c251)),
closes
[#10737](AztecProtocol/aztec-packages#10737)
* Remove stale zk constants and methods
([#11715](AztecProtocol/aztec-packages#11715))
([7a2870f](AztecProtocol/aztec-packages@7a2870f))
* Replace relative paths to noir-protocol-circuits
([aabab34](AztecProtocol/aztec-packages@aabab34))
* Replace relative paths to noir-protocol-circuits
([0720d18](AztecProtocol/aztec-packages@0720d18))
* Request txs in prover-node after each block finishes
([#11749](AztecProtocol/aztec-packages#11749))
([61e4eee](AztecProtocol/aztec-packages@61e4eee))
* Rework defunctionalize pass to not rely on DFG bugs
(noir-lang/noir#7222)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Sandbox lower sequencer log level
([#11742](AztecProtocol/aztec-packages#11742))
([7b30758](AztecProtocol/aztec-packages@7b30758)),
closes
[#11677](AztecProtocol/aztec-packages#11677)
* **spartan:** Making the spartan script add the coinbase address
([#11235](AztecProtocol/aztec-packages#11235))
([b97ff0d](AztecProtocol/aztec-packages@b97ff0d))
* **ssa:** Flip the SSA Brillig constraint check to off by default
(noir-lang/noir#7211)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Start tracking time to run critical library tests
(noir-lang/noir#7221)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Update docs to use devcontainer feature
(noir-lang/noir#7206)
([b60a39d](AztecProtocol/aztec-packages@b60a39d))
* Use batch p2p reqresp for requesting txs in prover node
([#11741](AztecProtocol/aztec-packages#11741))
([df9e4ec](AztecProtocol/aztec-packages@df9e4ec))
</details>

<details><summary>barretenberg: 0.75.0</summary>

##
[0.75.0](AztecProtocol/aztec-packages@barretenberg-v0.74.0...barretenberg-v0.75.0)
(2025-02-06)


### Features

* K-shifts
([#11663](AztecProtocol/aztec-packages#11663))
([511abe5](AztecProtocol/aztec-packages@511abe5))
* Report wrong proof length in the verifier contract
([#11728](AztecProtocol/aztec-packages#11728))
([1a83cd2](AztecProtocol/aztec-packages@1a83cd2))


### Miscellaneous

* **avm:** Add names to lookup settings
([#11768](AztecProtocol/aztec-packages#11768))
([fafe3ba](AztecProtocol/aztec-packages@fafe3ba))
* **avm:** Full row cleanup
([#11767](AztecProtocol/aztec-packages#11767))
([6145cd0](AztecProtocol/aztec-packages@6145cd0))
* **avm:** Use lookup by clk for sha params
([#11762](AztecProtocol/aztec-packages#11762))
([b003567](AztecProtocol/aztec-packages@b003567))
* Better bundling for bb.js, remove aztec.js bundling
([#11761](AztecProtocol/aztec-packages#11761))
([8cc3f0a](AztecProtocol/aztec-packages@8cc3f0a))
* Remove stale zk constants and methods
([#11715](AztecProtocol/aztec-packages#11715))
([7a2870f](AztecProtocol/aztec-packages@7a2870f))
</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.

Add purity analysis optimization to deduplicate pure functions
3 participants