Repository navigation
Conversation
Contributor
📏 PR diffNote Actual code changed: 2,756 lines🟢 +1,486 added 🔴 −1,270 removed Tests, docs, fixtures, and helper scripts excluded.
Every changed line is classified once. |
Contributor
Benchmark comparison (crates)Same-runner A/B: 17 of 96 benchmarks differ by more than ±10%:
All 96 benchmarks
54 benchmark(s) present in only one run: |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes the equality-table builders in
jolt-polygeneric over the coordinate order of the point, so callers holding little-endian or big-endian points (Akita's sum-check stages, Jolt's own) can borrow them without copying or reversing. The builders also relax their bound fromJoltFieldtoField. This is item E-J1 of the eq/sum-check consolidation in LayerZero-Labs/akita#120. Existing slice, array andVeccallers keep their high-to-low meaning and their arithmetic; no caller changes.Draft: built on today's
main, before the field switch (#2379). It will be rebased once that lands.Changes
jolt-poly/src/point.rs:PointLike(with a borrowed range viewPointRef), implemented for owned points, slices, vectors, arrays and references. Views borrow the original storage.jolt-poly/src/eq/{mod,build,cached,scalar}.rs: the old module split by role. Builders and suffix queries takePointLike; newprefix_sumand a domain-checkedeq_index.eq_index_msbkeeps its existing low-bit aliasing contract. Coordinate selection happens once per layer, outside the inner loops, and the parallel kernel has no point-type generic.jolt-poly/src/split_eq/{tensor,gruen}.rs: split tensor and Gruen files, each withfrom_point. Gruen's remaining bound and recovery changes are E-J3.jolt-utils/src/alloc.rsandjolt-algebra: widening the builders to anyFieldwould otherwise zero-initialize field types for which all-zero bytes are not a valid value. AZeroBytesValidmarker now gates the zero-allocation fast path; Fr, the Solinas fields and the binary fields carry it with a justification, and unmarked fields initialize safely. Allocation overflow and failure are distinct errors; the existing function keeps its signature and its panic/abort behavior.NonZeroU8(all-zero bytes invalid).Validation
cargo clippy -p jolt-poly --all-targets -- -D warnings, also withbinary,allocative;cargo test -p jolt-poly(137 unit, 11 integration), also with--no-default-features;cargo test -p jolt-utilscargo clippy --all --all-targets --features host -- -D warningsand--features host,zkscripts/check_style_invariants.py;cargo treeshows no Rayon underjolt-algebra --no-default-features🤖 Generated with Claude Code