Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1067 commits
Select commit Hold shift + click to select a range
511ca0f
feat(lfm): the genesis census, which the sparse cap is sized against
MauroToscano Sep 19, 2026
8a7ed77
test(lfm): the published bookend roots, and the global pad at every r…
MauroToscano Sep 19, 2026
3e95145
test(lfm): the sparse genesis leg, gated against the fold it replaces
MauroToscano Sep 19, 2026
5fa2672
test(lfm): the box arm for the cross-epoch program, and the census it…
MauroToscano Sep 19, 2026
508b0e6
refactor(lfm): the route decision moves off the driver onto the cross…
MauroToscano Sep 19, 2026
723e738
refactor(multilinear): the cross-epoch verifier takes its hash from t…
MauroToscano Sep 19, 2026
c242465
feat(lfm): the cross-epoch driver takes its hash, and publishes its s…
MauroToscano Sep 19, 2026
1f7a0cd
fix(tests): guard the identity test on the nonces its assertion can see
MauroToscano Sep 19, 2026
892c7d1
Merge main (#977 skip-empty-tables, #987 keccak-hash counts) into whi…
MauroToscano Sep 19, 2026
28cc920
fix(lfm): the refusal arm restates its input after the borrow it read…
MauroToscano Sep 19, 2026
d446b49
fix(lfm): the cross-epoch execution arms name the posture they need
MauroToscano Sep 19, 2026
69acab6
docs(lfm): the route table says which fixture gates which arm
MauroToscano Sep 19, 2026
72d5fa9
test(lfm): the published-set arm runs where a permutation is visible
MauroToscano Sep 19, 2026
dd3a77c
test(lfm): the census arm checks a relation that can be false
MauroToscano Sep 19, 2026
60d7903
merge: the cross-epoch driver's hash parameter and its public surface
MauroToscano Sep 19, 2026
e3f43c6
feat(lfm): the Newton pairs get a values form, and the pool closes
MauroToscano Sep 19, 2026
e9d9936
merge: V1j's cross-epoch builder at the W1g public surface
MauroToscano Sep 19, 2026
f4a2eed
test(lfm): the epoch program's Newton pool, measured for the first time
MauroToscano Sep 19, 2026
db5ad5e
feat(lfm): the WHIR global stage and the block-artifact root in the t…
MauroToscano Sep 19, 2026
5b4a3d3
feat(lfm): the coset fold's constants get a values form, and the pool…
MauroToscano Sep 19, 2026
70aade4
feat(stark): a prepared opening may span several tables and settle a …
MauroToscano Sep 19, 2026
9ea85f3
feat(prover): the genesis-stack routing rule, and the private-page fi…
MauroToscano Sep 19, 2026
62e03eb
refactor(prover): prove_global takes the hash from its caller, so the…
MauroToscano Sep 19, 2026
54d50e9
feat(prover): the cross-epoch proof carries a prepared opening of the…
MauroToscano Sep 19, 2026
fbb9780
test(prover): the interned genesis root's provenance, and the thresho…
MauroToscano Sep 19, 2026
d0f3950
test(prover): the block's dense pages, read off the ELF instead of co…
MauroToscano Sep 19, 2026
dfb25ae
refactor(stark): the prepared opening takes a table list, and the pre…
MauroToscano Sep 19, 2026
5a9846b
feat(prover): the genesis-stack split moves into continuation, and th…
MauroToscano Sep 19, 2026
a2032d4
fix(prover): a malformed cross-epoch split is an error, and the page …
MauroToscano Sep 19, 2026
6007520
test(lfm): the density threshold and the sparse-leg cap must overlap
MauroToscano Sep 19, 2026
cdd944d
merge: main's skip-empty-tables and keccak-hash counts into the WHIR …
MauroToscano Sep 19, 2026
fb836d9
test(lfm): an unnamed pool constant names its own emitter
MauroToscano Sep 19, 2026
6c78fcd
test(lfm): the pool diagnostic reaches the caller, not just the leg
MauroToscano Sep 19, 2026
27fbd3a
test(prover): rebuild the genesis stack's provenance by column, not b…
MauroToscano Sep 19, 2026
0687eb2
feat(lfm): the grind's constants get a values form, and the pool closes
MauroToscano Sep 19, 2026
8f1f7f4
docs(lfm): the page list is not canonicalised, and the emitter never …
MauroToscano Sep 19, 2026
cdd5d1b
docs(lfm): finish the sentence the last commit cut in half
MauroToscano Sep 19, 2026
17c3a39
feat(prover): route the genesis stack by a two-part rule, not a per-p…
MauroToscano Sep 19, 2026
31afd95
merge: V1j's constant-pool forms and the canonicality correction
MauroToscano Sep 19, 2026
9f9bfee
refactor(prover): the genesis marginal is a measured literal, not a f…
MauroToscano Sep 19, 2026
fb25f8a
fix(prover): the genesis marginal literal is 103, what the rule charg…
MauroToscano Sep 19, 2026
dd2da70
style(stark): name the prepared opening's claim pair
MauroToscano Sep 19, 2026
52c6cc1
fix(prover): the genesis marginal is a spread, and the literal is its…
MauroToscano Sep 19, 2026
8a3f549
fix(prover): five clippy errors, and two assertions that were about a…
MauroToscano Sep 19, 2026
644b7de
fix(prover): escape the braces in the band assertion's message
MauroToscano Sep 19, 2026
84a02b8
merge: W1j's genesis-stack routing and the prepared opening's plumbing
MauroToscano Sep 19, 2026
5a37157
feat(prover): the genesis marginal is a form read at the run's own br…
MauroToscano Sep 19, 2026
fc1c91f
fix(prover): the refused candidate's savings are derived, not restated
MauroToscano Sep 19, 2026
a8c412c
test(lfm): the block arm prints the routing, not just the program's size
MauroToscano Sep 19, 2026
6b252c7
fix(prover): the shared chain's savings are derived, not restated
MauroToscano Sep 19, 2026
d82bb74
feat(prover): the WHIR base's stage breakdown, under the knob that al…
MauroToscano Sep 19, 2026
830f9e2
test(lfm): the base split is read back in the FIXTURE arm too, not on…
MauroToscano Sep 19, 2026
7b0f260
feat(multilinear): the WHIR chain's round, in six slots that partitio…
MauroToscano Sep 19, 2026
5d0175c
test(bench): derive the dense-genesis stack's terms, and put the tabl…
MauroToscano Sep 19, 2026
d0748f0
test(bench): close the pin lane's own gate — then_some, and the tenth…
MauroToscano Sep 19, 2026
da50084
feat(multilinear): the round loop's own wall, and two named remainders
MauroToscano Sep 19, 2026
149b32c
fix(multilinear): arm E regains the bound that sees a missing slot
MauroToscano Sep 19, 2026
c00342c
Merge whir/lfm-v4-pins: the pins re-derived for the dense-genesis sta…
MauroToscano Sep 19, 2026
2ba8eed
feat(math-cuda): the grind's scan factor as a read-once knob, and wha…
MauroToscano Sep 19, 2026
45388b1
feat(math-cuda): the grind's launch geometry as knobs, and the fill r…
MauroToscano Sep 19, 2026
41a2457
test(bench): the order control, and the split that can falsify a mech…
MauroToscano Sep 19, 2026
5125a6f
feat(multilinear): the query openings in four slots, and a count that…
MauroToscano Sep 19, 2026
c766c23
test(bench): read the noise floor by name, and show the tail that mov…
MauroToscano Sep 19, 2026
65327b8
test(bench): sweep the grind's scan factor UPWARD, where the loop bou…
MauroToscano Sep 19, 2026
d8b7ca6
test(math-cuda): count the permutations a grind launch actually executes
MauroToscano Sep 19, 2026
2e6b887
perf(math-cuda): keep a commitment's leaf layer, not its tree
MauroToscano Sep 19, 2026
b713aed
fix(bench): the ideal-work model double-counted the blocks a search m…
MauroToscano Sep 19, 2026
ccf0551
test(math-cuda): the process-wide counters become an accounting identity
MauroToscano Sep 19, 2026
90a38ec
fix(test): the host KAT punned its result type, and LP64 made it matter
MauroToscano Sep 20, 2026
febb533
test(math-cuda): sample the group guard at one pool state, not two
MauroToscano Sep 20, 2026
354bc69
test(math-cuda): print the group guard's ledger on the honest path too
MauroToscano Sep 20, 2026
bc6ce9e
feat(math-cuda): count argue-surface device fallbacks (sumcheck/gkr/c…
MauroToscano Sep 20, 2026
d508faf
feat(prover): print commit + device fallbacks at the WHIR tree's whol…
MauroToscano Sep 20, 2026
9cd62d7
feat(math-cuda): live-retained-bytes footprint + be.reserved high-wat…
MauroToscano Sep 20, 2026
faf8123
feat(math-cuda): evictable leaf-layer retention — argue reclaims spar…
MauroToscano Sep 20, 2026
27be22c
test(math-cuda): grind poll k-sweep — a staggered poll_period on the …
MauroToscano Sep 20, 2026
8348542
test(math-cuda): round-3 occupancy discriminator — a -maxrregcount re…
MauroToscano Sep 20, 2026
d27fbce
test(math-cuda): round-3 argue discriminator — per-surface reserved-b…
MauroToscano Sep 20, 2026
bdd89b4
test(math-cuda): block-scale sumcheck ncu micro-bench for the round-3…
MauroToscano Sep 20, 2026
ef77f69
test(math-cuda): argue device-busy sizing timer (round-3 idle-fractio…
MauroToscano Sep 20, 2026
7f319cc
feat(whir): env-gated depth-1 fraction-tree prefetch (LFM_WHIR_PREFETCH)
MauroToscano Sep 21, 2026
34b180d
test(lfm): tree-phase device-occupancy probe (round-3 tree/wrap discr…
MauroToscano Sep 21, 2026
fbf2624
test(lfm): strip the tree probe to what the free read did not already…
MauroToscano Sep 21, 2026
8cedf2e
fix(lfm,tests): the pins the main-sync port left behind, each against…
MauroToscano Sep 21, 2026
788f36a
test(prover): the multilinear table-set gates name the tables they ar…
MauroToscano Sep 21, 2026
865c689
style(tests): rustfmt the accelerator-list chain
MauroToscano Sep 21, 2026
26d7e44
feat(lfm): the WHIR driver accepts LFM_TREE_TOP_OVERLAP (the global c…
MauroToscano Sep 21, 2026
413b3a3
test(prover): the table-set gates pin the SET, and one of them pins a…
MauroToscano Sep 21, 2026
d9611cd
fix(lint): needless_range_loop in rpx_grind_counted's cross-k identic…
MauroToscano Sep 21, 2026
3218346
fix(tests): three more the main-sync port left, and a precompile test…
MauroToscano Sep 21, 2026
c8c7c03
test(lfm): the tenant socket census measures before it asserts, and n…
MauroToscano Sep 21, 2026
05f0500
fix(lfm): the tenant socket assertion tied a counterfactual to the li…
MauroToscano Sep 21, 2026
b420ee9
fix(test): the host KAT punned its result type, and LP64 made it matter
MauroToscano Sep 20, 2026
4faa158
Merge whir/lfm-pins-rebless: the eleven pins the main-sync port left …
MauroToscano Sep 22, 2026
228db09
Merge whir/lfm-o5-retention: round 2, evictable leaf-layer retention …
MauroToscano Sep 22, 2026
755174f
Merge whir/lfm-o7-tree: round 3's TOP_OVERLAP lever and the round-3 i…
MauroToscano Sep 22, 2026
f80c590
perf(lfm): the WHIR tree's defaults are the measured configuration
MauroToscano Sep 22, 2026
5d0b0a4
Merge whir/recursion-rpx-defaults: the WHIR tree's defaults are the m…
MauroToscano Sep 22, 2026
ab7208f
feat(crypto): Merkle cap primitive and the cap-height policy
MauroToscano Sep 24, 2026
f82e42b
fix(stark): require exact authentication-path lengths in the verifier
MauroToscano Sep 24, 2026
77ea1ab
feat(prover): ZfFormat, the one proof-format config, and its option f…
MauroToscano Sep 24, 2026
72304a5
feat(stark/fri): the verifier-side FRI fold-schedule DP and a schedul…
MauroToscano Sep 24, 2026
db7c054
feat(multilinear): the WHIR first-fold schedule (W2), its Q rule and …
MauroToscano Sep 24, 2026
dc2d872
fix(crypto): the cap review fixes on the primitive (REVIEW-CAP S5, M1)
MauroToscano Sep 24, 2026
177ec2c
feat(prover): the statement binds the WHIR fold schedule; reused comm…
MauroToscano Sep 24, 2026
92ba48e
feat(prover): LAMBDA_VM_ZF_WHIR_FOLDS reaches the WHIR base config
MauroToscano Sep 24, 2026
50ec501
feat(stark/fri): cost-law schedule objective, options-driven FRI layo…
MauroToscano Sep 24, 2026
321e486
test(math-cuda): device commit and fold parity at k = 6
MauroToscano Sep 24, 2026
299f379
feat(multilinear): the Merkle cap on WHIR chains, host prover and ver…
MauroToscano Sep 24, 2026
93447d9
test(lfm): the in-guest WHIR verifier at first folds of 5 and 6
MauroToscano Sep 24, 2026
4d67789
feat(stark): Merkle caps on the host path (C3, design/CAP.md section 4)
MauroToscano Sep 24, 2026
f7dee29
test(math-cuda,multilinear): device parity for the WHIR Merkle cap (W…
MauroToscano Sep 24, 2026
2d1c562
feat(multilinear): WHIR_FOLDS_IMPLEMENTED = true
MauroToscano Sep 24, 2026
88db27b
test(stark,prover): default-format golden proofs (H0)
MauroToscano Sep 24, 2026
ac73346
test(prover): the fold lever's selectability as a const assertion (cl…
MauroToscano Sep 24, 2026
1293f5a
feat(stark,math-cuda): Merkle caps off device-resident trees (C4)
MauroToscano Sep 24, 2026
e6ea359
test(prover): a real VM proof under the process cap policy
MauroToscano Sep 24, 2026
713e18b
feat(lfm): the WHIR Merkle cap in the in-guest chain verifier and its…
MauroToscano Sep 24, 2026
d281c3b
feat(multilinear): W1 is implemented; LAMBDA_VM_ZF_WHIR_CAP is select…
MauroToscano Sep 24, 2026
5a61661
feat(stark/fri): S3 group-leaf FRI layers on the CPU prover and host …
MauroToscano Sep 24, 2026
1696bbb
test(stark,prover): the S3 test vectors, and a VM proof at fri = dp (H3)
MauroToscano Sep 24, 2026
b04e895
feat(stark): FRI_MODE_IMPLEMENTED = true (S3 on the host CPU path)
MauroToscano Sep 24, 2026
6092c77
test(prover): the production format sites prove at the process format
MauroToscano Sep 24, 2026
59cd50a
Merge zf/cap-stark wave A @ 77ea1ab89: the Merkle cap primitive, exac…
MauroToscano Sep 24, 2026
c08491e
Merge I-CAP-S wave B @ e6ea35953 into the candidate (R1, C3, C4, T)
MauroToscano Sep 24, 2026
49546d6
Merge I-CAP-W @ d281c3b86 into the candidate (C6, C7, C8, W1 flag)
MauroToscano Sep 24, 2026
6d0dade
Merge I-WHIR-F @ ac73346b4 into the candidate (W2: first5 / first6)
MauroToscano Sep 24, 2026
f985944
Merge I-FRI-H @ 6092c77dd into the candidate (H1, H1b, H0, H2, H3)
MauroToscano Sep 24, 2026
1a93632
feat(stark): Merkle caps on group-leaf FRI layers (cap x fri=dp)
MauroToscano Sep 24, 2026
3a9512c
test(stark,prover): S3 proof vectors with a Merkle cap at Q = 20 (F9)
MauroToscano Sep 24, 2026
dc64ae3
fix(stark): drop the group-path verifier's now-unused proof parameter
MauroToscano Sep 24, 2026
942201d
feat(math-cuda): S3 group-leaf FRI layers on the device
MauroToscano Sep 24, 2026
67890ae
feat(stark): the device FRI arms run the S3 group encoding
MauroToscano Sep 24, 2026
d9d6769
test(prover): S3 device parity under RPX and a VM dp proof on the device
MauroToscano Sep 24, 2026
f004a5a
feat(stark): S2 one-row openings with a committed FRI input on the CP…
MauroToscano Sep 24, 2026
c8ffb4b
refactor(prover): one in-guest Merkle cap gadget for the WHIR and STA…
MauroToscano Sep 24, 2026
87176ab
feat(prover): Merkle caps in the in-guest STARK verifier (C5)
MauroToscano Sep 24, 2026
4510844
feat(prover): S3 group-leaf FRI layers in the in-guest verifier (G1, G2)
MauroToscano Sep 24, 2026
59639d3
docs(stark): the Merkle cap and fri=dp are in the in-guest verifier
MauroToscano Sep 24, 2026
bbe1f3c
test(prover): a parseable census line from the knob-on assembled veri…
MauroToscano Sep 24, 2026
c63780e
test(stark): key the M3 query-bound mutation by the LDE size
MauroToscano Sep 24, 2026
1adbebe
feat(prover): the preprocessed roots of one-row tables (H5)
MauroToscano Sep 24, 2026
dfc498b
test(stark,prover): the S2 test vectors (H6)
MauroToscano Sep 24, 2026
525bf05
feat(stark): ONE_ROW_IMPLEMENTED = true (S2 on the host CPU paths)
MauroToscano Sep 24, 2026
9f5b8f7
style(stark): clippy manual_is_multiple_of in one_row_tests
MauroToscano Sep 24, 2026
f7a8c59
test(stark): M1 at the input tree — the input-slot check is load-bearing
MauroToscano Sep 24, 2026
25ec130
style(stark): clippy clone_on_copy in the input-slot M1 test
MauroToscano Sep 24, 2026
3992f28
Merge I-GUEST @ bbe1f3caf into the candidate (C5, G1, G2, host cap x …
MauroToscano Sep 24, 2026
45bbfd1
Merge I-FRI-D @ d9d676983 into the candidate (D1: S3 group-leaf FRI o…
MauroToscano Sep 24, 2026
3da7bee
Merge I-S2-H @ 25ec130e2 into the candidate (S2 on the host: H4, H5, H6)
MauroToscano Sep 24, 2026
730257a
style: rustfmt the candidate-c merge resolutions
MauroToscano Sep 24, 2026
23ee332
test(stark,prover): the device (d) vector tests count I-GUEST's cappe…
MauroToscano Sep 24, 2026
8d74043
fix(prover): key the AIR prototype cache on the proof format
MauroToscano Sep 24, 2026
f4d57bd
test(prover): merkle_cap_vm asserts the cap policy engaged
MauroToscano Sep 24, 2026
c9b6b1d
test(stark,prover): device-sized ZF tests prove an AirWithBuses table
MauroToscano Sep 24, 2026
eb6fe2b
test(math-cuda): evict before every cap height in the WHIR eviction test
MauroToscano Sep 24, 2026
737415e
style: rustfmt the I-FIX-B test edits
MauroToscano Sep 24, 2026
8aa8f47
Merge I-FIX-B @ 737415ee7 into candidate-d (candidate-c + the candida…
MauroToscano Sep 24, 2026
21b1b77
style: rustfmt the merged test module list (zf_air_cache_tests before…
MauroToscano Sep 24, 2026
130ddb1
feat(prover): one-row openings (S2) in the in-guest STARK verifier (G3)
MauroToscano Sep 24, 2026
a08a0bc
test(prover): S2 in the in-guest verifier against the host's (e) vect…
MauroToscano Sep 24, 2026
e72d3e6
test(prover): the leaf node prints how many of each wrap's sub-proofs…
MauroToscano Sep 25, 2026
7f4e3d9
feat(math-cuda): one-row (rows_per_leaf = 1) device leaves for S2 trees
MauroToscano Sep 25, 2026
1564fda
feat(stark): S2 on the device (D2) — one-row trees, openings and the …
MauroToscano Sep 25, 2026
381a8d3
test(stark,prover): S2 device parity (D2) — trees, openings, input tr…
MauroToscano Sep 25, 2026
699f087
feat(stark,prover): price every emitted FRI row and the S2 DEEP term …
MauroToscano Sep 25, 2026
3e867c4
test(prover): the one-row VM bytes test creates ZF_S2_PROOF_DIR
MauroToscano Sep 25, 2026
6991df5
Merge I-PRICE @ 699f0876b into candidate-e (RULINGS 22: every emitted…
MauroToscano Sep 25, 2026
963e1e7
Merge I-S2-G @ e72d3e64d into candidate-e (S2 in the in-guest STARK v…
MauroToscano Sep 25, 2026
7765d4d
Merge I-S2-D @ 3e867c463 into candidate-e (S2 on the device, D2)
MauroToscano Sep 25, 2026
5afc759
Merge zf/fix-b @ 737415ee7: wave B (STARK cap host+device, WHIR cap, …
MauroToscano Sep 25, 2026
ff78f04
feat(prover): the measured ZF configuration is the default format (RU…
MauroToscano Sep 25, 2026
cfbff6a
test(prover): the recursion-guest legacy test holds under any process…
MauroToscano Sep 25, 2026
0dd6341
feat(prover): one_row=auto joins the default format, provisionally (R…
MauroToscano Sep 25, 2026
5ed2f15
test(prover): the sh1 recount states the default's rounds without rea…
MauroToscano Sep 25, 2026
6a4a244
fix(prover): the Phase-A replay absorbs each preprocessed root at its…
MauroToscano Sep 25, 2026
91764db
test(prover): one-row Phase-A replay regressions (LFM wrap options at…
MauroToscano Sep 25, 2026
7c9b577
feat(stark): LogReadOnlyRAP carries a constraint program
MauroToscano Sep 25, 2026
c5b91a0
test(prover): a valid device-comparison oracle: LFM proof bytes, prov…
MauroToscano Sep 25, 2026
03fe727
style(stark): make fmt on the LogReadOnlyRAP program and its tests
MauroToscano Sep 25, 2026
39dea55
test(prover): the LFM bytes oracle asserts a device FRI commit in eve…
MauroToscano Sep 25, 2026
a4ce890
Merge I-FIX-S2 @ 91764db5d into candidate-f (the Phase-A replay absor…
MauroToscano Sep 25, 2026
d6cdfd3
Merge I-FIX-D2 @ 39dea5552 into candidate-f (device-parity fix: LogRe…
MauroToscano Sep 25, 2026
cdf0238
Revert "feat(prover): one_row=auto joins the default format, provisio…
MauroToscano Sep 25, 2026
65df270
test(prover): the LFM bytes oracle proves the default format and all …
MauroToscano Sep 25, 2026
d8ffc07
docs: make the proof-format comments self-contained
MauroToscano Sep 25, 2026
258ef0d
Merge zf/candidate-f-nob @ d8ffc0702: ZisK-style proof-format levers
MauroToscano Sep 25, 2026
169b668
Merge main (#996, jemalloc never-purge compiled in) into the WHIR pip…
MauroToscano Sep 25, 2026
4b18760
gap(hash): K3/K4/K5 RPX device fixes behind LAMBDA_VM_GAP_K3/K4/K5 (d…
MauroToscano Sep 27, 2026
dd98bca
feat(math-cuda): column-major LDE pass kernels with a host known-answ…
MauroToscano Sep 27, 2026
06fd010
feat(math-cuda): GAP K1 column-major LDE engine behind LAMBDA_VM_GAP_K1
MauroToscano Sep 27, 2026
7911c42
gap(hash): a tamper control in the K3 walk parity test
MauroToscano Sep 27, 2026
37c29df
gap(hash): allocate the K4 counters only for the counted twin
MauroToscano Sep 27, 2026
668a89a
feat(math-cuda): the column-major LDE engine is the default device LDE
MauroToscano Sep 27, 2026
4977a99
feat(math-cuda): GAP K1B, the WHIR encoding through the column engine
MauroToscano Sep 27, 2026
57498b5
test(math-cuda): K1B measurement arm for the WHIR encoding
MauroToscano Sep 27, 2026
1b43d48
test(rpx_grind_device): serialise the four tests that share the grind…
MauroToscano Sep 27, 2026
101beb8
fix(math-cuda): split the NTT and Möbius tile grids past CUDA's grid.…
MauroToscano Sep 27, 2026
6fc1fbd
fix(multilinear): log and count a device commit's error before fallin…
MauroToscano Sep 27, 2026
6a547b4
test(math-cuda): control for the grid split — the unsplit launch is r…
MauroToscano Sep 27, 2026
2c07074
test(math-cuda): the stack-27 WHIR commit against the host pipeline
MauroToscano Sep 27, 2026
8f0c2e6
fix(multilinear): log and count a device tree's error over a host cod…
MauroToscano Sep 27, 2026
6ca1841
test(math-cuda): read the K4 queue grid on a thread that did not crea…
MauroToscano Sep 27, 2026
ceebcde
fix(math-cuda): bind the context before the K4 occupancy query, cache…
MauroToscano Sep 27, 2026
a864395
feat(math-cuda): the WHIR commit's encoding takes the column engine b…
MauroToscano Sep 27, 2026
da2da9d
test(math-cuda): the WHIR encoding follows LAMBDA_VM_LDE_LEGACY
MauroToscano Sep 27, 2026
be03cb7
perf(whir): fold a round in one launch, open its first rounds over th…
MauroToscano Sep 27, 2026
a46fe93
test(math-cuda): measure the WHIR working sets in a binary of their own
MauroToscano Sep 27, 2026
43a32c7
whir: count an opening whose factors fall to the host over a device c…
MauroToscano Sep 27, 2026
798fd25
whir: give a group's room back across the argument, take it again to …
MauroToscano Sep 27, 2026
6098073
whir: size a group's room to the turn it covers, from the kernels tha…
MauroToscano Sep 27, 2026
3f1997b
whir: a dropped leaf layer gives its bytes back to the room it grew
MauroToscano Sep 27, 2026
cf5e673
whir: the device ledger's peak per phase of each prove, beside the split
MauroToscano Sep 27, 2026
7e3eac5
whir: say in the production log which kernels and rooms the run took
MauroToscano Sep 27, 2026
f81f0a8
test(lfm): print each census panel in one write, so concurrent panels…
MauroToscano Sep 27, 2026
875d08c
feat(lfm): LAMBDA_VM_GAP_R1 drops BITWISE from programs that send it …
MauroToscano Sep 27, 2026
fb846ae
feat(lfm): LAMBDA_VM_GAP_R2 splits LFM_HASH into two power-of-two ins…
MauroToscano Sep 27, 2026
44ca38a
test(lfm): assert the full chip mask keeps BITWISE at compile time
MauroToscano Sep 27, 2026
9325eee
Merge gap-fix/ntt (da2da9d93) into candidate C1: the WHIR encoding th…
MauroToscano Sep 27, 2026
fecb826
Merge gap-fix/wbatch-int (7e3eac501) into candidate C1: the WHIR memo…
MauroToscano Sep 27, 2026
6705994
Merge gap-fix/harness (f81f0a80f) into candidate C1: each census pane…
MauroToscano Sep 27, 2026
0110128
test(lfm): the census panel prints a split LFM_HASH as one line
MauroToscano Sep 27, 2026
c8b007b
docs(lfm): say where LfmAirs::for_artifacts is used
MauroToscano Sep 27, 2026
e0c0673
feat(lfm): LAMBDA_VM_GAP_R4 emits the WHIR coset fold in three rows a…
MauroToscano Sep 27, 2026
1500556
test(lfm): name the BITWISE-mask and LFM_HASH-split tests after their…
MauroToscano Sep 27, 2026
ebd622d
feat(lfm): recursion programs drop BITWISE where no chip sends it a l…
MauroToscano Sep 27, 2026
9dcfda1
feat(lfm): the WHIR coset fold is emitted lean by default
MauroToscano Sep 27, 2026
046e9b5
feat(lfm): the LFM_HASH split is a named per-pipeline policy, off here
MauroToscano Sep 27, 2026
2db726c
fix(lfm): write each shape setting's banner to stderr in one write
MauroToscano Sep 27, 2026
c679a77
test(lfm): the BITWISE opt-out reproduces the legacy registry digests
MauroToscano Sep 27, 2026
0b5e3f1
Merge gap-fix/rec-int (c679a771b) into candidate C1: recursion progra…
MauroToscano Sep 27, 2026
008f24d
feat(whir): the stack cap is a format lever, LAMBDA_VM_ZF_WHIR_STACK,…
MauroToscano Sep 27, 2026
1a4fe6b
test(whir): a prepared commitment refuses a reuse under another stack…
MauroToscano Sep 27, 2026
b9ef9b6
feat(whir): the WHIR stack cap is 27 by default; LAMBDA_VM_ZF_WHIR_ST…
MauroToscano Sep 27, 2026
8c2450f
test(whir): the legacy-format instruction names the stack knob too
MauroToscano Sep 27, 2026
ec17c82
Merge gap-fix/stack-int (8c2450ff6) into candidate C2: the WHIR stack…
MauroToscano Sep 27, 2026
c8d4656
feat(continuation): prepare each base epoch and the global proof ahea…
MauroToscano Sep 27, 2026
d3c76d2
feat(lfm): level 0 takes the base's DECODE derivations instead of der…
MauroToscano Sep 27, 2026
7d41668
Merge gap-fix/idle-a-int (d3c76d2ed) into candidate C2: base prep ahe…
MauroToscano Sep 27, 2026
78defa5
feat(math-cuda): stage each row-major commit transfer through a pinne…
MauroToscano Sep 27, 2026
6a0e34a
feat(lfm): build level 0's first wrap prologues in the base's tail
MauroToscano Sep 27, 2026
bdb2d37
test(math-cuda, lfm): read the staging and lead-in settings as the ga…
MauroToscano Sep 27, 2026
0cc75f0
Merge gap-fix/idle-b-int (bdb2d37b6) into candidate C3: per-transfer …
MauroToscano Sep 27, 2026
c52e0c4
Merge gap-fix/hash (ceebcde1a) into gap-fix/hash-int: the RPX device …
MauroToscano Sep 27, 2026
3569364
feat(math-cuda): the half-warp Merkle tops, the queue grind and the l…
MauroToscano Sep 27, 2026
1769272
fix(stark): the prove split counts RPX device grinds
MauroToscano Sep 27, 2026
e041e9f
test(math-cuda): label the RPX host KAT lines by the paths they compare
MauroToscano Sep 28, 2026
41549eb
Merge gap-fix/hash-int (e041e9fb0) into candidate C3: RPX Merkle tops…
MauroToscano Sep 28, 2026
d1dc455
math-cuda, stark: invert the DEEP/OOD denominators row-wise by default
MauroToscano Sep 28, 2026
0428c39
stark: prove the residency-mode tests without grinding
MauroToscano Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
44 changes: 43 additions & 1 deletion .github/workflows/pr_main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -198,10 +198,47 @@ jobs:

# "Test" is a required check — keep this name to avoid branch protection changes.
# This gate job passes only when CLI, executor, disk-spill, and prover tests succeed.
host-kat:
# The device kernels' known-answer gates. `make test-*-host-kat` compiles the
# REAL `.cu` sources as host C++ through
# `crypto/math-cuda/tests/host_kat/cuda_host_shim.h` and runs them against
# external vectors (the official BLAKE3 vectors, miden-crypto's RPO vectors)
# and the committed oracle tables — g++ only, no CUDA, no cargo, seconds. It
# is the only per-PR check on the kernel arithmetic: the GPU parity suites
# (gpu-tests.yml) run on merge_group alone, and until this job existed the
# host-KAT targets lived in no workflow at all. Arithmetic only — nvcc
# acceptance and everything about execution stay with the GPU tests.
name: Host KAT (kernel pins)
runs-on: ubuntu-latest
if: github.event_name != 'push' || github.actor != 'github-merge-queue[bot]'
steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: BLAKE3 host-KAT (7-round and 6-round arms)
run: make test-blake3-host-kat

- name: RPX host-KAT (permutation, leaf sponge, parent, leaf and tree kernels)
run: make test-rpx-host-kat

- name: Column-major LDE engine host-KAT (NTT passes, coset LDE)
run: make test-ntt-cm-host-kat

- name: WHIR host-KAT (fused round fold, lean first rounds)
run: make test-whir-host-kat

# Second source for the TABLES the BLAKE3 host-KAT trusts: upstream
# BLAKE3's portable C with its round loop parameterised, against the
# committed 6-round vectors and the Python oracle. A ~1 s C compile plus a
# few seconds of Python (cc + python3, both on the runner); it too had no
# workflow before this job.
- name: BLAKE3 second-source check of the 6-round tables
run: make test-blake3-second-source

test:
name: Test
if: always()
needs: [test-executor, test-cli, test-prover, test-disk-spill, test-stark-cuda-lib]
needs: [test-executor, test-cli, test-prover, test-disk-spill, test-stark-cuda-lib, host-kat]
runs-on: ubuntu-latest
steps:
- name: Check results
Expand All @@ -211,12 +248,14 @@ jobs:
prover="${{ needs.test-prover.result }}"
disk_spill="${{ needs.test-disk-spill.result }}"
stark_cuda_lib="${{ needs.test-stark-cuda-lib.result }}"
host_kat="${{ needs.host-kat.result }}"

echo "test-executor: $executor"
echo "test-cli: $cli"
echo "test-prover: $prover"
echo "test-disk-spill: $disk_spill"
echo "test-stark-cuda-lib: $stark_cuda_lib"
echo "host-kat: $host_kat"

# Allow "success" or "skipped" (skipped on merge queue pushes)
if [[ "$executor" != "success" && "$executor" != "skipped" ]]; then
Expand All @@ -234,6 +273,9 @@ jobs:
if [[ "$stark_cuda_lib" != "success" && "$stark_cuda_lib" != "skipped" ]]; then
exit 1
fi
if [[ "$host_kat" != "success" && "$host_kat" != "skipped" ]]; then
exit 1
fi

test-disk-spill:
name: Disk-spill tests
Expand Down
69 changes: 67 additions & 2 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ members = [
"crypto/ecsm",
"crypto/math",
"crypto/math-cuda",
"crypto/multilinear",
"bin/cli",
]
# Riscv-only bare-metal crate, path-dependent from crypto/crypto (target-gated),
Expand Down
Loading
Loading