Skip to content

Comments

feat: merge-train/barretenberg#20641

Merged
AztecBot merged 10 commits intonextfrom
merge-train/barretenberg
Feb 18, 2026
Merged

feat: merge-train/barretenberg#20641
AztecBot merged 10 commits intonextfrom
merge-train/barretenberg

Conversation

@AztecBot
Copy link
Collaborator

@AztecBot AztecBot commented Feb 18, 2026

BEGIN_COMMIT_OVERRIDE
chore: chonk rec ver 0 (#20506)
fix: allocate non-gate selectors at trace-active size instead of dyadic size (#20600)
chore: numeric audit 0 (#20491)
chore: prepare barretenberg-rs for crates.io publishing (#20496)
chore: add build_bench to ci-barretenberg-full (#20650)
chore: add component graphs for app-proving benchmarks (#20649)
END_COMMIT_OVERRIDE

Test improvements for Chonk recursive verifier components:
- Extended existing targeted UltraHonk recursive verifier failure test
framework to Mega, Translator, and ECCVM. Designed to test each unique
failure point of the given verifier.
- Removed Goblin recursive verifier tests that were redundant with
standalone ECCVM/Translator tests; kept only the 2 cross-component
binding tests (Merge-Translator, ECCVM-Translator)
- Unified Ultra/Mega _recursion_ tests into a single parameterized suite
- Unified Ultra/Mega _transcript_ tests into a single parameterized
suite
johnathan79717 and others added 9 commits February 18, 2026 14:32
…ic size (#20600)

## Summary

- Allocate non-gate selectors (`q_m`, `q_c`, `q_l`, `q_r`, `q_o`, `q_4`)
at `trace_active_range_size()` instead of `dyadic_size()`, using virtual
zeroes for the rest
- Fix `get_polynomial_size()` to return `virtual_size()` instead of
`size()`, since the logical polynomial size is the dyadic circuit size
- Fix `batch_polynomials` in Hypernova to handle polynomials with
different backing sizes (non-gate selectors now have smaller backing
than other entities like table polynomials)

## Benchmark results

```bash
cd barretenberg/cpp/build
BB_VERBOSE=1 BB_BENCH=1 ./bin/ultra_honk_bench --benchmark_filter="construct_proof_ultrahonk_1M_gates_dyadic_2_20$" --benchmark_repetitions=1
BB_VERBOSE=1 BB_BENCH=1 ./bin/ultra_honk_bench --benchmark_filter="construct_proof_ultrahonk_1M_gates_dyadic_2_21$" --benchmark_repetitions=1
```

Circuits ~2000 gates apart straddling the 2^20 boundary:

| Metric | Before | After |
|---|---|---|
| Peak RSS (2^21 dyadic) | 2854 MiB | **2375 MiB** (-479 MiB, -17%) |
| Memory gap 2^20 vs 2^21 | 603 MiB | **126 MiB** (-79%) |
| Peak RSS (2^20 dyadic) | 2251 MiB | 2249 MiB (unchanged) |

## Test plan

- [x] `ultra_honk_tests` — 260 passed, 5 skipped
- [x] `chonk_tests` — 20 passed
- [x] `circuit_checker_tests` — 80 passed
- [x] `hypernova_tests` — 9 passed

Resolves AztecProtocol/barretenberg#1625.
Audit and cleanup up of `barretenberg/numeric` module. Largely adding
some protections, tests and docs clarifications. Also some minor bug
fixes:
- operator `bool()` in `uint128`, `uint256`, `uintx` only checked the
lowest limb/half; now checks all limbs
- incorrect mask in `uintx::slice()` (full width instead of half-width
when `range == base_uint::length()`)
## Summary
- Add `include` field to barretenberg-rs `Cargo.toml` so generated
`api.rs` and `generated_types.rs` are packaged by `cargo publish`, even
though they remain gitignored
- Add `release` function to `barretenberg/rust/bootstrap.sh` — sets
crate version from `REF_NAME`, verifies generated files exist, and runs
`cargo publish`
- Hook `barretenberg/rust` into the top-level release orchestrator
(after `barretenberg/ts` which generates the Rust bindings)
- Add `publish = false` to the tests crate

## How it works
1. Generated files stay **gitignored** — not committed to the repo
2. The `include` field in `Cargo.toml` overrides `.gitignore` for `cargo
publish`, so the files are packaged as long as they exist on disk
3. During a release, `barretenberg/ts` runs first (which calls `yarn
generate`), then `barretenberg/rust` publishes
4. No separate workflow — follows the same unified release flow as npm
packages

## Test plan
- [x] `cargo package --list --allow-dirty` confirms `src/api.rs` and
`src/generated_types.rs` are included
- [x] `cargo publish --dry-run --allow-dirty --no-verify` succeeds
- [ ] Set `CARGO_REGISTRY_TOKEN` env var in release environment before
first publish
## Summary
- Adds `barretenberg/cpp/bootstrap.sh build_bench` to the
`ci-barretenberg-full` CI target
- This ensures benchmark binary compilation failures are caught early in
the barretenberg merge train, rather than only surfacing later during
full CI bench runs
- Motivated by failures like http://ci.aztec-labs.com/e0b887a5e8eb4376
## Summary
- Extracts the inline Python component-extraction logic from
`ci_benchmark_ultrahonk_circuits.sh` into a shared
`extract_component_benchmarks.py` script
- Calls the shared script from `ci_benchmark_ivc_flows.sh` to produce
stacked component charts (sumcheck, pcs, oink, pippenger, etc.) on the
benchmark dashboard for app-proving flows
- Matches the existing ultrahonk-bench component graphs already visible
on the dashboard

## Test plan
- [ ] CI passes (no functional change to ultrahonk-bench, only refactor)
- [ ] After merge, verify component graphs appear under `app-proving/`
on the [benchmark
dashboard](https://aztecprotocol.github.io/benchmark-page-data/bench/?branch=next)
Copy link
Collaborator

@ludamad ludamad left a comment

Choose a reason for hiding this comment

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

🤖 Auto-approved

@AztecBot AztecBot added this pull request to the merge queue Feb 18, 2026
@AztecBot
Copy link
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

Merged via the queue into next with commit 4017643 Feb 18, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants