-
Notifications
You must be signed in to change notification settings - Fork 98
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
GoLang bindings for v1.x #386
Conversation
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.
Great job @jeremyfelder!
) | ||
|
||
type MockField struct { | ||
limbs [BASE_LIMBS]uint32 |
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.
Not urgent or super important but gnark (not sure about other libraries) uses uint64 for limbs. In Rust the situation is similar and we moved to u64 there too. Was wondering if it would make sense here
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.
I originally with uint64 but it wasn't working, i think, due to the memory not aligning. Granted it was when I was also trying with slices and not arrays so maybe uint64 arrays would work as well.
… generation, add fast_twiddles option
false, // IsAsync | ||
} | ||
} | ||
|
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.
Will the user need to manually change the values in GetDefaultMSMConfig - or is all the relevant data included on HostOrDeviceSlice?
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.
Any attribute that is publicly accessible (Capitalized) can and should be updated by the user according to their needs. Anything that is private (camelCase) is set internally on MSMCheck and MSM functions
# Contents of this release Examples: multi-gpu example #381 Examples: updates example compares Radix2 and MixedRadix NTTs #383 Feat: add vector operations bindings to Rust #384 Examples: update examples with new vec ops #388 Feat: Grumpkin curve implementation #379 Feat: mixed-radix NTT fast twiddles mode #382 Docs: Update README.md #385 #387 README: Update Hall of Fame section #394 Examples: add rust poseidon example #392 Feat: GoLang bindings for v1.x #386
Describe the changes
This PR updates the GoLand bindings to be compatible with v1.x versions of ICICLE.
Structure of the bindings
The bindings can be broken down into four areas:
curves
package.Generating the curves
To generate the curves run the following from the
wrappers/golang/internal/generator
dir:Remaining Tasks
Linked Issues
Resolves #202
Resolves #203
Resolves #265
Resolves #304
Resolves #311