-
Notifications
You must be signed in to change notification settings - Fork 222
Feat/iop koalabear #695
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/iop koalabear #695
Conversation
gbotrel
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 minor changes, lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR generates the iop/ package for small fields (base field only) from a template-based generation system, replacing the previous generator that was specific to curve fields. The iop package provides an API for computations common to IOP backends like permutation and quotient operations, needed for the Linea prover.
- Refactored the IOP generation from curve-specific to field-specific template generation
- Added IOP generation support for small fields (koalabear and goldilocks)
- Updated the field generator system to include IOP functionality as an option
Reviewed Changes
Copilot reviewed 47 out of 47 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/generator/main.go | Removed old curve-specific IOP generation and integrated new field-based IOP generation |
| internal/generator/iop/* | Removed old curve-specific IOP generator templates and code |
| field//iop/ | Generated IOP packages for koalabear and goldilocks fields with polynomial operations, ratios, quotients, and expressions |
| field/generator/* | Added IOP generation option and templates for field-specific generation |
| field/internal/main.go | Added IOP generation to the field generator pipeline |
Comments suppressed due to low confidence (1)
field/generator/options.go:30
- Method name 'HashIOP' should be 'HasIOP' to match the naming pattern of other similar methods like 'HasSIS()' and 'HasFFT()'.
func (cfg *generatorConfig) HashIOP() bool {
Description
iop/ package is now generated from GenerateFF (finite field generation)
iop/ package is generated for small fields (base field only at the moment). It is needed to generate the plonk trace, which is needed in the linea prover.
Type of change
How has this been tested?
Same test suite that already existed in iop/
How has this been benchmarked?
Same test suite that already existed in iop/
Checklist:
golangci-lintdoes not output errors locally