rust-random / rand

A Rust library for random number generation.
https://crates.io/crates/rand
Other
1.68k stars 431 forks source link

removing from_entropy from SmallRng breaks what i think is a common usage #1443

Closed tenturestept closed 4 months ago

tenturestept commented 6 months ago

Background

What is your motivation?

i want to use rand for regular random numbers in a simple game. i don't want to bloat the executable size with a chacha-based rng so i use only features = ["std", "small_rng", "getrandom"].

in 1db3aa416c, SmallRng stopped impling SeedableRng and lost the from_entropy factory method.

for me it was very convenient to have SmallRng seedable from getrandom using from_entropy. the from_thread_rng method is not useful since i don't enable the std_rng feature.

i think removing from_entropy breaks a common use-case. that is:

  1. i want basic random numbers.
  2. i don't care about reproducibility, i.e. they should be different every execution.
  3. i want minimal compile times and code size.

obviously i can easily seed it myself using the getrandom crate but the previous situation was easier.

What type of application is this? (E.g. cryptography, game, numerical simulation)

game

Feature request

bring back from_entropy?

dhardy commented 6 months ago

1368 notes this loss, without any justification:

Some tests failed because SmallRng::from_entropy is missing. But do we want this anyway?

You have provided justification with the above, so please go ahead and make a PR adding from_entropy (as an inherent method).

Lucretiel commented 6 months ago

Why was SeedableRng removed from SmallRng in the first place? Doesn't it have a state that can be initialized from a seed?

dhardy commented 6 months ago

To fix #1285, removing from_seed, which is misleading in that it advertises portability which the generator lacks.

dhardy commented 4 months ago

SeedableRng was re-implemented in #1455.