Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
168 commits
Select commit Hold shift + click to select a range
77bcc5e
feat(lfm): field-native recursion machine with the keccak family hosted
MauroToscano Jul 29, 2026
7d64b03
feat(lfm): big-endian field elements and the byte-level splice
MauroToscano Jul 29, 2026
dbac40c
feat(lfm): replay the continuation-epoch statement and Phase A
MauroToscano Jul 29, 2026
b36f15f
feat(stark): serialize AIR transition constraints as a build-time art…
MauroToscano Jul 29, 2026
50227c6
feat(lfm): mask the trailing half of a length-prefixed byte string
MauroToscano Jul 29, 2026
6dbc579
feat(lfm): chunk KECCAK_RND into program-pinned instances
MauroToscano Jul 29, 2026
5984afa
Merge branch 'feat/lfm-chunking' into feat/lfm
MauroToscano Jul 30, 2026
b4eca82
feat(lfm): real two-epoch continuation proof bytes as an R1f fixture
MauroToscano Jul 30, 2026
2a6f903
feat(prover): cover all 28 production AIRs, not the monolithic 25
MauroToscano Jul 30, 2026
2d4aa35
feat(lfm): read a real proof's committed roots into arena words
MauroToscano Jul 30, 2026
8231117
docs(lfm): record T=24 as measured, and verify the supplied roots are…
MauroToscano Jul 30, 2026
d2fb95c
docs(lfm): constraint-lowering design, backed by a standing op census
MauroToscano Jul 30, 2026
ef7587f
docs(lfm): revise lowering design against the machine's real cost model
MauroToscano Jul 30, 2026
058ba5e
measure(lfm): per-epoch constraint multiplier, and correct a wrong claim
MauroToscano Jul 30, 2026
3b621d0
measure(lfm): continuation-epoch constraint leg, pinned to the measur…
MauroToscano Jul 30, 2026
1414d72
measure(lfm): real continuation-epoch chunk counts, first-hand
MauroToscano Jul 30, 2026
69b3b34
docs(lfm): reorder the uniform promotion — epoch_label is the critica…
MauroToscano Jul 30, 2026
a4711c6
feat(lfm): authenticate a real Merkle opening under the production hash
MauroToscano Jul 30, 2026
7b966d0
docs(lfm): refine the uniform design, and hand off
MauroToscano Jul 30, 2026
af5ea7c
fix(lfm): the proof fixture is not reproducible — measure it, stop re…
MauroToscano Jul 30, 2026
b3042d6
docs(lfm): version the Phase R working docs as one consistent set
MauroToscano Jul 30, 2026
3dd4556
fix(lfm): correct the stale keccak column comments, and pin the widths
MauroToscano Jul 30, 2026
3b790ad
docs(lfm): status log for the R1f Merkle-opening slices
MauroToscano Jul 30, 2026
229f265
docs(lfm): correct an unverified claim about the fixture's sub-proofs
MauroToscano Jul 30, 2026
1cd76d3
feat(lfm): lower a ConstraintArtifact into LFM instructions
MauroToscano Jul 30, 2026
ea67783
feat(lfm): zerofier, quotient recombination and the composition check
MauroToscano Jul 30, 2026
ece6e43
docs(lfm): record what building the constraint leg corrected in its d…
MauroToscano Jul 30, 2026
9ac0ffc
Merge branch 'feat/lfm' into feat/lfm-constraint-emitter
MauroToscano Jul 30, 2026
31c5965
feat(lfm): emit the cross-epoch L2G commitment binding
MauroToscano Jul 30, 2026
370a584
docs(lfm): status log for R1g recon and the L2G binding slice
MauroToscano Jul 30, 2026
236c0f4
docs(lfm): the REGISTER derivation is the binding, and a gadget-sizin…
MauroToscano Jul 30, 2026
f6b3dd9
feat(lfm): reconstruct the deep-composition polynomial at a query point
MauroToscano Jul 30, 2026
2321e92
Merge branch 'feat/lfm' into feat/lfm-constraint-emitter
MauroToscano Jul 30, 2026
94acf24
docs(lfm): a degenerate parameter hides implementations from every re…
MauroToscano Jul 30, 2026
7492454
feat(lfm): emit the attestation's program id
MauroToscano Jul 30, 2026
39f8de8
docs(lfm): status log for the program-id slice
MauroToscano Jul 30, 2026
2541d1d
Merge branch 'feat/lfm-constraint-emitter' into feat/lfm
MauroToscano Jul 30, 2026
01796ea
docs(lfm): a resume point for Phase R
MauroToscano Jul 30, 2026
7bf0e15
docs(lfm): how to restart the work after a cold start
MauroToscano Jul 31, 2026
5f00361
feat(lfm): join DEEP to the Merkle authentication over one arena
MauroToscano Jul 31, 2026
ffa6633
docs(lfm): ruling — shared-commitment lever parked for e2e, recorded …
MauroToscano Jul 31, 2026
5215939
feat(lfm): derive the next epoch's REGISTER commitment from reg_fini
MauroToscano Jul 31, 2026
550b6d6
feat(lfm): a preprocessed fixture, because the group order is otherwi…
MauroToscano Jul 31, 2026
835d599
docs(lfm): the REGISTER derivation, measured — and a fourth degenerat…
MauroToscano Jul 31, 2026
69b4a91
Merge branch 'feat/lfm-register-derivation' into feat/lfm
MauroToscano Jul 31, 2026
f071742
Merge branch 'feat/lfm-deep-join' into feat/lfm
MauroToscano Jul 31, 2026
edfc5a8
docs(lfm): an assembly-obligations ledger, opened with the reg_fini w…
MauroToscano Jul 31, 2026
a6389e6
test(lfm): tamper both fixtures, and give one of them a walk worth wa…
MauroToscano Jul 31, 2026
4973f33
Merge branch 'feat/lfm' into feat/lfm-deep-join
MauroToscano Jul 31, 2026
b728043
measure(lfm): the shared-commitment collapse is 48%, not 70%
MauroToscano Jul 31, 2026
1b846ef
docs(lfm): the production FRI verify path, mapped and cited for the f…
MauroToscano Jul 31, 2026
703f742
Merge branch 'feat/lfm-deep-join' into feat/lfm
MauroToscano Jul 31, 2026
149980a
docs(lfm): the shared-commitment prediction corrected by measurement …
MauroToscano Jul 31, 2026
0f177ba
docs(lfm): resume point updated — both chaining legs done, FRI and Lo…
MauroToscano Jul 31, 2026
c6fc471
docs(lfm): the join obligation is about two-consumer values, not open…
MauroToscano Jul 31, 2026
8b8e55b
feat(lfm): hand a query's index bits to the next leg, additively
MauroToscano Jul 31, 2026
cff8cb4
Merge branch 'feat/lfm-register-derivation' into feat/lfm
MauroToscano Jul 31, 2026
620ec69
docs(lfm): method rule 7 — a relative test dies when its two sides unify
MauroToscano Jul 31, 2026
6712b81
feat(lfm): the LogUp closure, and the L it must not read twice
MauroToscano Jul 31, 2026
8ad9704
Merge branch 'feat/lfm' into feat/lfm-deep-join
MauroToscano Jul 31, 2026
94a55e1
Merge branch 'feat/lfm-deep-join' into feat/lfm
MauroToscano Jul 31, 2026
0218e32
docs(lfm): ledger — L-gap discharged, start_index binding opened, per…
MauroToscano Jul 31, 2026
5e93fe6
fix(lfm): derive the alpha powers, and guard the derivations absolutely
MauroToscano Jul 31, 2026
85f99c8
feat(lfm): the FRI fold layout, and the fixture cannot witness it
MauroToscano Jul 31, 2026
1418e0b
Merge branch 'feat/lfm-deep-join' into feat/lfm
MauroToscano Jul 31, 2026
ef50c95
docs(lfm): ledger — alpha-powers instance discharged, five two-consum…
MauroToscano Jul 31, 2026
ff3a3d6
Merge branch 'feat/lfm-register-derivation' into feat/lfm
MauroToscano Jul 31, 2026
19466bd
test(lfm): witness per-chunk accumulation, and hand the leg off
MauroToscano Jul 31, 2026
1145041
Merge branch 'feat/lfm-deep-join' into feat/lfm
MauroToscano Aug 3, 2026
2c152fc
docs(lfm): FRI leg state at agent retirement, and the resume point br…
MauroToscano Aug 3, 2026
8ccc8f0
docs(lfm): the restart section now points at wave 3, not at finished …
MauroToscano Aug 3, 2026
2c03c10
test(lfm): measure what a zero-row fixed table's bus contribution is
MauroToscano Aug 3, 2026
09f1966
docs(lfm): record the zero-row measurement in the handoff, RESUME and…
MauroToscano Aug 3, 2026
bc9f217
feat(lfm): the FRI emitter — per-layer walk, fold chain, terminal check
MauroToscano Aug 3, 2026
79cd8a3
test(lfm): the FRI structural guard was vacuous — replace it with a c…
MauroToscano Aug 3, 2026
04339f3
test(lfm): the FRI leg proves and verifies, not just executes
MauroToscano Aug 3, 2026
95861b5
docs(lfm): wave-3 status-log lines (fri-emitter slices 0-2, zerorow s…
MauroToscano Aug 3, 2026
5a246ba
Merge branch 'feat/lfm-fri-emitter' into feat/lfm
MauroToscano Aug 3, 2026
6d5f197
Merge branch 'feat/lfm-zerorow-experiment' into feat/lfm
MauroToscano Aug 3, 2026
35845e4
docs(lfm): wave 3 closed — FRI leg done, zerorow settled; wave 4 is a…
MauroToscano Aug 3, 2026
e105dea
docs(lfm): preserve the start_index research; wave-4 abort noted
MauroToscano Aug 3, 2026
61b4bfa
docs(lfm): the RESUME carries the wave-4 abort and the start_index po…
MauroToscano Aug 3, 2026
cde2e6a
feat(lfm): assemble the epoch verifier's Fiat-Shamir spine
MauroToscano Aug 3, 2026
7cf0c84
feat(lfm): hang the LogUp closure off the assembled spine
MauroToscano Aug 3, 2026
00d545e
docs(lfm): correct the wave-4 test count (195, not 196)
MauroToscano Aug 3, 2026
c161ae9
docs(lfm): wave-4 consolidation — research doc restored; wave-5 spawn…
MauroToscano Aug 7, 2026
cf800d9
docs(lfm): wave-5 respawn — keep the stashed seam API
MauroToscano Aug 4, 2026
ce1538b
feat(lfm): hang the verification legs off the assembled epoch spine
MauroToscano Aug 4, 2026
b9e8a88
test(lfm): count the composition and FRI terminal checks; falsify the…
MauroToscano Aug 4, 2026
13a7858
docs(lfm): wave-5 stopping point and the wave-6 order of work
MauroToscano Aug 4, 2026
724fa3a
docs(lfm): team-lead ruling on entry 7 (DECODE/PAGE stay arena cells,…
MauroToscano Aug 7, 2026
5a9226a
feat(lfm): source every preprocessed root, derive REGISTER, join DECO…
MauroToscano Aug 4, 2026
044382d
test(lfm): witness the OOD absorb order and the frame-step view
MauroToscano Aug 4, 2026
9ce241d
feat(lfm): width-check the register boundary; close out the assembly …
MauroToscano Aug 4, 2026
3918548
docs(lfm): amend the entry-7 ruling — PAGE condition reversed, migrat…
MauroToscano Aug 7, 2026
f49157c
test(lfm): the wrap harness and a per-chip cell census
MauroToscano Aug 4, 2026
9e0fcc7
test(lfm): the wrap run — prove the assembled epoch verifier, and pri…
MauroToscano Aug 4, 2026
fa1da70
test(lfm): reconcile the wrap against wave 6, and price the recursion
MauroToscano Aug 4, 2026
077e34d
docs(lfm): three box checks, all UTC, all busy — box left alone
MauroToscano Aug 7, 2026
afad011
docs(lfm): scope the hash matrix — two sockets, the aux collapse, the…
MauroToscano Aug 4, 2026
8ea2ec3
feat(lfm): measure the hash matrix's permutation axis without buildin…
MauroToscano Aug 4, 2026
b510191
docs(lfm): a Poseidon-original skeleton already exists in-tree, with …
MauroToscano Aug 4, 2026
9e4b79c
docs(lfm): revise the matrix on corpus data — every candidate fits th…
MauroToscano Aug 4, 2026
b050ccc
feat(lfm): Poseidon-original over Goldilocks, pinned to an external v…
MauroToscano Aug 4, 2026
9fad776
docs(lfm): specify the Poseidon chip executably, and stop short of bu…
MauroToscano Aug 4, 2026
35d407d
docs(lfm): close wave 8 — slice 1a done, slice 1b handed to wave 9
MauroToscano Aug 4, 2026
0f30868
feat(lfm): host Poseidon behind LFM_HASH via a construction-time hash…
MauroToscano Aug 6, 2026
8b85c41
test(lfm): prove the Poseidon chip, and measure the column it was bui…
MauroToscano Aug 6, 2026
fa065d6
docs(lfm): record the measured Poseidon column, and correct the RSS u…
MauroToscano Aug 6, 2026
4d0a031
docs(lfm): close wave 9 — slice 1b accepted, worktree handed back
MauroToscano Aug 6, 2026
a349a1e
feat(lfm): host PR #903's BLAKE3 chip and measure the blake column
MauroToscano Aug 6, 2026
5ebf062
docs(lfm): the blake column, the residue split, and the delegation price
MauroToscano Aug 6, 2026
d6514c1
docs(lfm): reconcile the residue split against the delegation evaluation
MauroToscano Aug 6, 2026
34709ce
docs(lfm): close wave 10 — hash matrix complete, worktree handed back
MauroToscano Aug 6, 2026
8aed545
docs(lfm): residue base discipline — the inter-base gap is BITWISE+KE…
MauroToscano Aug 7, 2026
3638b82
fix(lfm): bound multiplicity columns at admission (negative-mult Comp…
MauroToscano Aug 10, 2026
7b3da5b
docs(lfm): name the framework verifier premises the machine inherits
MauroToscano Aug 10, 2026
ef13e74
fix(lfm): make the step_size ceiling test pass under --release
MauroToscano Aug 10, 2026
2d23678
feat(lfm): bind the hasher into the program digest and registry
MauroToscano Aug 10, 2026
6502509
test(blake3): restore the round-parameterized reference and add a sec…
MauroToscano Aug 10, 2026
b693eec
feat(lfm): BLAKE3 as a first-class LFM_HASH hasher (compress socket, …
MauroToscano Aug 11, 2026
cece4a0
docs(lfm): record the O5 decision — future leaf hashing uses the LFML…
MauroToscano Aug 11, 2026
2957c3f
docs(lfm): O5 rests on fixed depth alone, not absence of leaf hashing
MauroToscano Aug 11, 2026
9bcc9ee
feat(lfm): compress-chain Fiat-Shamir transcript for every hasher (no…
MauroToscano Aug 11, 2026
1c2e98d
feat(lfm): LFML felt-input leaf mode — FriToyV0 proves under BLAKE3, …
MauroToscano Aug 11, 2026
e16110d
docs(lfm): commit the BLAKE3 real-hash verification apparatus
MauroToscano Aug 11, 2026
ed1b778
docs(lfm): fix LEAF.md §5 board row — FriToyV0 is 93/513,081, not 91/…
MauroToscano Aug 11, 2026
253504d
feat(lfm): merge origin/main — device-IR artifact reconciliation + ke…
MauroToscano Aug 12, 2026
fe7314b
docs(lfm): preserve the main-merge debate records + GPU-recursion exp…
MauroToscano Aug 12, 2026
77cc7df
docs: session handoff 2026-08-12 (merge complete, GPU-recursion next)
MauroToscano Aug 12, 2026
c495e9f
test(lfm): GPU-dispatch census harness for the wrap (EXPLORATION Stag…
MauroToscano Aug 12, 2026
2a8552f
docs(lfm): GPU box measurements — lever 1 confirmed at -57% (EXPLORAT…
MauroToscano Aug 12, 2026
eefd308
refactor(stark,lfm): guard the three silent hasher-mislabel paths (D0…
MauroToscano Aug 12, 2026
879bdc0
refactor(stark): parameterize the commitment hash via StarkHash (D0 s…
MauroToscano Aug 12, 2026
372f342
test(lfm): cross-version proof oracle for the D0 migration
MauroToscano Aug 12, 2026
c80138d
refactor(lfm): take any transcript in the statement bind and Phase A …
MauroToscano Aug 12, 2026
97124d1
perf(lfm): flat-append column groups and drop the address maps (P-c)
MauroToscano Aug 12, 2026
80a49b2
test(stark,lfm): catch duplicate constraint-index emission in release…
MauroToscano Aug 12, 2026
bad2d97
refactor(stark,crypto): delete the unused single-element Merkle aliases
MauroToscano Aug 12, 2026
39038da
feat(math-cuda): device BLAKE3 compression, round-parameterized, with…
MauroToscano Aug 13, 2026
761bc67
feat(math-cuda): BLAKE3 field-element serialization and 64-byte block…
MauroToscano Aug 13, 2026
10cb9f6
feat(math-cuda): BLAKE3 Merkle parent/level compressors and the on-de…
MauroToscano Aug 13, 2026
4463e31
test(math-cuda): host-compiled known-answer gate for the BLAKE3 devic…
MauroToscano Aug 13, 2026
c5ffadf
feat(lfm): make disk spill reachable from the wrap prove path
MauroToscano Aug 13, 2026
fbd5b63
feat(stark): ResidencyMode — drop the main LDE after Round 1, recompu…
MauroToscano Aug 13, 2026
712d89e
test(stark): RecomputeLde is byte-identical to Retain
MauroToscano Aug 13, 2026
fc9e19c
feat(prover): opt the LFM wrap into RecomputeLde via LAMBDA_VM_RESIDENCY
MauroToscano Aug 13, 2026
fb3917e
feat(prover): parameterize the epoch builder, and wrap a real block e…
MauroToscano Aug 13, 2026
681b749
test(prover): let the real-block wrap name its inner query count
MauroToscano Aug 13, 2026
378b008
docs(campaign): commit the block-compression corpus to the branch
MauroToscano Aug 13, 2026
6a9b083
chore: drop a stray pycache artifact from the docs commit
MauroToscano Aug 13, 2026
ed5d962
feat(lfm): absorb four felts per leaf compression (RATE 4, 12 lanes)
MauroToscano Aug 13, 2026
e9c150e
chore(lfm): re-bless the registry for the RATE-4 leaf
MauroToscano Aug 13, 2026
9bfac09
test(lfm): re-pin every KAT at the widened framing
MauroToscano Aug 13, 2026
38cbec7
fix(lfm): derive the socket-vs-standalone figures instead of copying …
MauroToscano Aug 13, 2026
38c89d8
docs(rate4): resume note for the RATE-4 leaf branch
MauroToscano Aug 13, 2026
1926842
test(lfm): control the H6 lane gate, and stop calling the tag m[8]
MauroToscano Aug 13, 2026
3a0b848
docs(rate4): final state — 310/19, lint clean, projection with its ca…
MauroToscano Aug 13, 2026
c5a5d5b
feat(crypto): sink the BLAKE3 compression core into `crypto`, and spe…
MauroToscano Aug 14, 2026
a5e562a
feat(stark): add `Blake3StarkHash` and `CommitmentHash::Blake3`
MauroToscano Aug 14, 2026
91769e1
refactor(math-cuda): check the kernels against the shared primitive, …
MauroToscano Aug 14, 2026
6d42d7c
docs(pa): the 6-round chain vectors are cross-checked, not just self-…
MauroToscano Aug 14, 2026
e92e6e8
docs(pa): the two-element leaf is 16 bytes, not 64
MauroToscano Aug 14, 2026
67e86de
docs(stark): the two-element leaf invariant is about 16 bytes, and th…
MauroToscano Aug 14, 2026
13aac0f
feat(fri): mixed-height MMCS + batched FRI primitives, on StarkHash
MauroToscano Aug 14, 2026
472e7ef
test(fri): soundness negatives for the batched commitment primitives
MauroToscano Aug 14, 2026
ff44ce4
docs(mmcs): resume note for the batched-primitives branch
MauroToscano Aug 14, 2026
5be316f
Merge branch 'mmcs-primitives' into blake3-real-hash
MauroToscano Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 46 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 40 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ compile-programs compile-recursion-elfs clean-asm clean-rust clean-bench clean-s
clean-recursion-elfs clean test test-asm \
test-rust test-ethrex test-ethrex-offline test-executor test-syscalls test-flamegraph flamegraph-prover test-profile-recursion test-profile-recursion-single test-profile-recursion-multi \
test-profile-recursion-block recursion-profile-block-input \
test-fast test-prover test-prover-all test-prover-debug test-disk-spill test-math-cuda test-cuda-integration test-cuda-fallback \
test-fast test-prover test-prover-all test-prover-debug test-disk-spill test-math-cuda test-blake3-host-kat test-cuda-integration test-cuda-fallback \
test-prover-cuda test-prover-comprehensive-cuda \
bench-math-cuda bench-prover bench-prover-cuda build check clippy fmt lint regen-ethrex-fixtures \
update-ethrex-fixture-checksums check-ethrex-fixture-checksums ethrex-real-block-fixture \
Expand Down Expand Up @@ -565,6 +565,29 @@ test-disk-spill:
test-math-cuda:
cargo test -p math-cuda --release

# Known-answer tests for the BLAKE3 device kernels, run on the HOST. No GPU, no
# nvcc, no cargo — a couple of seconds.
#
# This exists because `test-math-cuda` above, which is the authority on these
# kernels, runs only where a GPU does, and the per-PR CI runners have none (GPU
# jobs are merge_group-only). Without this the kernels have no per-PR gate: an
# edit to blake3.cu that broke the hash would reach the merge queue before
# anything caught it. `crypto/math-cuda/tests/host_kat/` compiles the real kernel
# source as host C++ through a shim and runs the official BLAKE3 vectors plus the
# canonical 6-round table through it.
#
# It checks arithmetic ONLY. Whether nvcc accepts the file, and everything about
# execution rather than arithmetic — grid indexing, the Merkle tail's barriers,
# device alignment, register pressure — stays with `test-math-cuda`. Necessary,
# never sufficient.
HOST_KAT_DIR := crypto/math-cuda/tests/host_kat
test-blake3-host-kat:
@mkdir -p target/host_kat
$(CXX) -std=c++17 -O2 -Wall -Wno-unknown-pragmas \
-I$(HOST_KAT_DIR) -Icrypto/math-cuda/kernels \
-o target/host_kat/blake3_host_kat $(HOST_KAT_DIR)/blake3_host_kat.cpp
./target/host_kat/blake3_host_kat

# End-to-end cuda dispatch coverage (requires NVIDIA GPU + nvcc).
# Asserts the R1-R4 GPU dispatch counters fired on a real prove.
# --test-threads=1: these tests reset and assert on process-global GPU call
Expand Down Expand Up @@ -625,6 +648,14 @@ clippy:
cargo clippy --workspace --all-targets -- -D warnings -A clippy::op_ref
cargo clippy --workspace --all-targets --no-default-features --features lambda-vm-prover/debug-checks -- -D warnings -A clippy::op_ref
cargo clippy --workspace --all-targets --features lambda-vm-prover/disk-spill -- -D warnings -A clippy::op_ref
# BLAKE3 at 6 rounds. ONE pass, with BOTH crates' features set, because they
# are separate features that must be set in lockstep: crypto's moves the host
# primitive (the LFM chip, the socket and the commitment backends all read its
# BLAKE3_ROUNDS) and math-cuda's recompiles the cubin. Setting one alone means
# a GPU tree committing under a different hash than the CPU one, so linting
# them apart would certify a combination nothing should ever build. The
# prover's feature forwards to crypto's, so naming it covers both host halves.
cargo clippy --workspace --all-targets --features lambda-vm-prover/blake3-6round,math-cuda/blake3-6round -- -D warnings -A clippy::op_ref

fmt:
cargo fmt --all
Expand All @@ -635,6 +666,14 @@ lint:
cargo clippy --workspace --all-targets -- -D warnings -A clippy::op_ref
cargo clippy --workspace --all-targets --no-default-features --features lambda-vm-prover/debug-checks -- -D warnings -A clippy::op_ref
cargo clippy --workspace --all-targets --features lambda-vm-prover/disk-spill -- -D warnings -A clippy::op_ref
# BLAKE3 at 6 rounds. ONE pass, with BOTH crates' features set, because they
# are separate features that must be set in lockstep: crypto's moves the host
# primitive (the LFM chip, the socket and the commitment backends all read its
# BLAKE3_ROUNDS) and math-cuda's recompiles the cubin. Setting one alone means
# a GPU tree committing under a different hash than the CPU one, so linting
# them apart would certify a combination nothing should ever build. The
# prover's feature forwards to crypto's, so naming it covers both host halves.
cargo clippy --workspace --all-targets --features lambda-vm-prover/blake3-6round,math-cuda/blake3-6round -- -D warnings -A clippy::op_ref
# The cuda feature gates whole modules + cuda-only integration tests. build.rs emits empty
# cubin stubs when nvcc is absent, so this checks on a GPU-less host (CI lint runner, dev laptop)
# too — no GPU required. Catches cuda-gated breakage that the non-cuda passes above miss.
Expand Down
Loading
Loading