Conversation
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.
Edit: PR no longer shows the code thanks to our rebasing of Rand history, but the commit is still available here.
Implement seeding via hash function, as discussed in #18.
This is a very rough implementation.
To discuss, regarding the hash function:
from_hashablebehind a feature gate (hashorseahash) until we're more comfortable with the idea — that allows stabilisingrand-corewithout this feature, in theory. But hopefully we don't need to do this.AsBytesFixedimpls are needed, e.g. foru64AsBytesFixedis the best way of going about this. I'm considering moving the hashing into the trait implementation withtrait Hash<H> { fn hash(state: &mut H, val: Self); }or similar. This allows specialised implementations of SeaHash.from_hashableshould be more general, e.g. consume a SeaHash struct.)Regarding
SeedableRng:Seedan associated type is a compromise;SeedSizeassociated constant doesn't appear to work; we do however restrictSeedto types supported byFinalizeSeedau64array instead ofu8array is certainly more convenient for us; any reason we shouldn't do this?SeedableRng::from_seedimpls for Isaac aren't 100% backwards compatible (old version allowed much larger seeds).Lots to discuss, but I think this is moving forward. (@ticki if you get the time, I'd love your thoughts.)