On Tuesday, 19 February 2013 at 21:54:54 UTC, Ivan Kazmenko wrote:
monarch_dodra wrote:
void main()
{
   uint[5] arr1;
   arr1[].fill(rndGen);
   uint[5] arr2;
   arr2[].fill(rndGen);
   writeln("arr1: ", arr1[]);
   writeln("arr1: ", arr2[]);
}
//----
arr1: [3622200385, 2579361262, 3208046123, 1753759120, 133131992] arr2: [3622200385, 2579361262, 3208046123, 1753759120, 133131992]
//----
Oops!

Oops indeed!

It should be noted that a common need is to have reproducible RNG routines. For example, I was angry at Python breaking the reproducibility of everything except the vanilla random.random() around version 3.2. Still, as the language is going to have random2 anyway, and reproducibility will already suffer much from RNG becoming a reference type, it will be a good time for some cleanup.

In theory, there should be no reproducibility breakage, as the generators themselves will not be changed (they are _strictly_ modeled after boosts' (the ones we have anyways)). The breakage will only occur if the PRNG was being duplicated and generating the same sequence twice.

In this case though, one would argue it's not reproducibility breakage, but straight up broken code being fixed...

Reply via email to