-
-
Notifications
You must be signed in to change notification settings - Fork 480
Closed
Labels
Description
To follow up on the release strategy in #205, here is a rough plan for Rand 0.5:
- Merge PRNG code improvements Cherry-pick changes to PRNG algorithms #209
- Add
Hc128RngAdd HC-128 #210 - Add new error types New error handling + type #225
- Add
SeedableRng::from_rngto replaceRandimpls on PRNGs; updateseedtype Port new SeedableRng trait #233 - Rename
IndependentSample→Distributionand removeSampleReplace distribution::Sample with Distribution + polymorphism over Rng #256 - Replace
RandwithUniformdistribution Replace distribution::Sample with Distribution + polymorphism over Rng #256 - Split
RngtoRng: RngCoreRngCore and extension trait Rng #265 - Move
Rngetc. to newrand-corecrate [requiresSampleRng;MoveAdd rand-core sub-crate and update version numbers #288]Rngto rand-core crate? #264 -
AddHalfOpen01distribution
Related issues which need solving:
- Naming of
try_fill_bytes: Renametry_fillorfill_bytes? dhardy/rand#27 - Name of "default" distribution:
Uniform; Distributions: Uniform, Uniform01, Open01, etc. dhardy/rand#81 - Distribution names: Distributions: Uniform, Uniform01, Open01, etc. dhardy/rand#81
- Fate of
Rand: Fate of theRandtrait dhardy/rand#83 - Re-exporting: Re-export
rand-coremembers inrand? dhardy/rand#15 - Decide which
Distribution::sampleprototype to use Distribution sample prototype and sized-ness ofRng#287 - Remove default implementations for
RngCoremethods?
There are some extra changes which should be relatively easy to add after the above:
- Add new floating-point sampling code Port new Range implementation and only have one uniform float distribution #274 (partial)
- Add new
Rangecode Port new Range implementation and only have one uniform float distribution #274 - Add
CryptoRng: RngCoreextension trait Small changes from experimental branch #273 - Switch
thread_rng()toHC-128? Replace ISAAC with HC-128 dhardy/rand#53 - Optional logging support: Log support dhardy/rand#39, Log feature: optional logging dhardy/rand#43
-
New iterator codeRng::iter #275 rejected; Deprecate gen_iter and add iteration examples #286 merged
Desired additions:
- Merge Add binomial and Poisson distributions #96 (requires testing/review)
- Add
Bernoullidistribution andgen_boolthen deprecategen_weighted_bool(see ReviseRngmethods #293)
Finally, a list of other planned changes, which probably won't make 0.5:
- Replace
gen_ascii_charswithAlphanumericdistribution: Add Alphanumeric distribution #279 - Revise character distributions (more classes, possible renaming): likely not desired
- Add
SeedableRng::from_hashable: Seeding PRNGs (traits and bit size) dhardy/rand#18, SeedableRng::Seed and from_hashable dhardy/rand#62 - Change the RNG used by
StdRng: Replace ISAAC with HC-128 dhardy/rand#53 - Change the RNG used by
weak_rng: Requirements for a small fast RNG dhardy/rand#60, Shootout: small, fast PRNGs dhardy/rand#52 - Publish one or more PRNG algorithm crates and remove
XorShiftRng,IsaacRng,ChaChaRng, etc. fromrand(don't export): To provide (or not) specific PRNGs? dhardy/rand#58 - Revise
WeightedChoice& sequences code: Sequence sampling:seq,WeightedChoicedhardy/rand#82 - Fork protection: WIPEONFORK [Linux] dhardy/rand#59
- Revise other Rng methods: gen_iter, gen_weighted_bool, gen_ascii_chars, choose, shuffle: Revise
Rngmethods #293, Deprecate gen_iter and add iteration examples #286, Add Alphanumeric distribution #279
pitdicker, runiq and schneiderfelipebluss, quininer, Ralith and schneiderfelipe