Conversation
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
gbotrel
approved these changes
Feb 13, 2026
Collaborator
gbotrel
left a comment
There was a problem hiding this comment.
lgtm, with caution on the need to recompile circuits for users -- that may introduce breaking changes in existing workflows
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.
GetBlueprintfunction has been added to solvers so that they can do so efficiently through a backdoor.CheckCircuitfunction, that in case of nondeterministic compilation tries to narrow down the unequal fields' path.Blueprint.Resetafter registration (i.e. before any calls toSolve).Results from
BenchmarkGkrMiMCon an hpc6a.48xlarge instance show a reduction in allocations but no significant change in runtime or total bytes allocated:Note
Medium Risk
Touches core constraint solving/serialization paths and replaces the GKR execution mechanism (hints -> blueprints), so regressions could surface in proving/solving order or backward compatibility of serialized systems despite explicit tag stabilization.
Overview
Refactors GKR integration to be driven by solver instruction blueprints instead of overriding solver hints, adding generated per-curve
BlueprintSolve/BlueprintProve/BlueprintGetAssignmentimplementations and updating GKR code to use serializable (bytecode-based) gate/circuit types.To support cross-blueprint data sharing, the
constraint.Solverinterface gainsGetBlueprint, implemented across all curve solvers; CBOR serialization is extended with explicit, stable tag registration viaRegisterGkrBlueprintTypes, and curvesystem.gofiles now blank-import their GKR packages to register these types. LegacyNewGkrplumbing and the generatedsolver_hints.goare removed, and the GKR gate registry/test helpers are updated to the new registered-gate/bytecode APIs.Written by Cursor Bugbot for commit 0dc1d7b. This will update automatically on new commits. Configure here.