feat: Auto-allocate stack in runtime #260
Open
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.
McEliece keys, in particular, take up a large amount of stack space.
Not only do we currently have to configure this manually for builds for each individual platform,
but since the stack space is set in compile time, this RAM will be held on to indefinitely,
even while no keys are being generated.
This pull request solves both issues by running the KEM key generation in a separate thread.
This allows the stack to be created in runtime, which has two benefits:
Running as before is still supported through a feature flag.
EDIT:
The macos CI build couldn't find libcrypto. I'm not sure why this is but does not seem to be an issue related to this update. I have commented out
RUST_MIN_STACK
inci.yml
as it is no longer needed.I have also commented out
macos-latest
from the OS matrix as it was getting in the way of the windows/ubuntu builds runing their test. Once the build issue has been overcome on your side, this will have to be uncommented again.