-
-
Notifications
You must be signed in to change notification settings - Fork 475
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
Hc128Rng
Add HC-128 #210 - Add new error types New error handling + type #225
- Add
SeedableRng::from_rng
to replaceRand
impls on PRNGs; updateseed
type Port new SeedableRng trait #233 - Rename
IndependentSample
→Distribution
and removeSample
Replace distribution::Sample with Distribution + polymorphism over Rng #256 - Replace
Rand
withUniform
distribution Replace distribution::Sample with Distribution + polymorphism over Rng #256 - Split
Rng
toRng: RngCore
RngCore and extension trait Rng #265 - Move
Rng
etc. to newrand-core
crate [requiresSampleRng
;MoveAdd rand-core sub-crate and update version numbers #288]Rng
to rand-core crate? #264 -
AddHalfOpen01
distribution
Related issues which need solving:
- Naming of
try_fill_bytes
: Renametry_fill
orfill_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 theRand
trait dhardy/rand#83 - Re-exporting: Re-export
rand-core
members inrand
? dhardy/rand#15 - Decide which
Distribution::sample
prototype to use Distribution sample prototype and sized-ness ofRng
#287 - Remove default implementations for
RngCore
methods?
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
Range
code Port new Range implementation and only have one uniform float distribution #274 - Add
CryptoRng: RngCore
extension 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
Bernoulli
distribution andgen_bool
then deprecategen_weighted_bool
(see ReviseRng
methods #293)
Finally, a list of other planned changes, which probably won't make 0.5:
- Replace
gen_ascii_chars
withAlphanumeric
distribution: 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
,WeightedChoice
dhardy/rand#82 - Fork protection: WIPEONFORK [Linux] dhardy/rand#59
- Revise other Rng methods: gen_iter, gen_weighted_bool, gen_ascii_chars, choose, shuffle: Revise
Rng
methods #293, Deprecate gen_iter and add iteration examples #286, Add Alphanumeric distribution #279
pitdicker, runiq and schneiderfelipebluss, quininer, Ralith and schneiderfelipe