Skip to content
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

Add alloc feature to the crate so that we can port it to no_std #345

Closed
CPerezz opened this issue Jan 12, 2021 · 1 comment
Closed

Add alloc feature to the crate so that we can port it to no_std #345

CPerezz opened this issue Jan 12, 2021 · 1 comment
Assignees
Labels
status:minor Low priority improvements team:Core Low Level Core Development Team (Rust)

Comments

@CPerezz
Copy link
Contributor

CPerezz commented Jan 12, 2021

Currently, migrating the crate to no_std without the usage of allocators is "possible" but completely useless.

We need to use Vec-like structures, and the only full no_std compatible libs that don't require alloc to work are arrayvec and const-arrayvec. Both of them will eat the entire stack of any regular machine if we try to compute big Proofs (2^16 or more constraints).

Therefore, our best bet is to use an alloc gate for the time being, and if we're in enviroments such as WASM where we want to generate proofs, there's some work already done in allocators there. For embedded I think it's quite impossible to do so if the proofs are bigger than a thousand constraints, maybe much less.

So the idea is to port the repo to no_std and move all of the Vec related work behind an alloc feature. On that way, at least the data structures such as Proof or others can be fully no_std compatible even an allocator will be needed for sure.

@CPerezz CPerezz added API-design status:minor Low priority improvements labels Jan 12, 2021
@CPerezz CPerezz added this to the No-std compatibility milestone Jan 12, 2021
@ZER0 ZER0 added the team:Core Low Level Core Development Team (Rust) label Jan 14, 2021
@ZER0 ZER0 removed this from the No-std compatibility milestone Jan 18, 2021
@CPerezz
Copy link
Contributor Author

CPerezz commented May 3, 2021

Closed via #495

@CPerezz CPerezz closed this as completed May 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status:minor Low priority improvements team:Core Low Level Core Development Team (Rust)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants