Thank you for hunting down the difference, in my case it's not a
deal breaking problem. I can just specify the compiler and
language version, then the results become reproducible. And I'm
sure I'll appreciate the performance boost!
On Sunday, 1 June 2014 at 12:11:22 UTC, Ivan Kazmenko wrote:
On Saturday, 31 May 2014 at 21:22:48 UTC, Joseph Rushton
Wakeling via Digitalmars-d-learn wrote:
On 31/05/14 22:37, Joseph Rushton Wakeling via
Digitalmars-d-learn wrote:
On 30/05/14 22:45, monarch_dodra via Digitalmars-d-learn
wrote:
Didn't you make changes to how and when the global PRNG is
popped and accessed
in randomShuffle? I figured it *could* be an explanation.
I think it's more likely that the culprit is either your set
of patches to the
Mersenne Twister, or the patches made to uniform() (which is
called by
partialShuffle). I'll look more deeply into this.
It's due to the the updated uniform() provided in this pull
request:
https://github.com/D-Programming-Language/phobos/commit/fc48d56284f19bf171780554b63b4ae83808b894
I second the thought that reproducibility across different
versions is an important feature of any random generation
library. Sadly, I didn't use a language yet which supported
such a flavor of reproducibility for a significant period of
time in its default random library, so I have to use my own
randomness routines when it matters. I've reported my concern
[1] at the moment of breakage, but apparently it didn't
convince people. Perhaps I should make a more significant
effort next time (like a pull request) for the things that
matter to me. Well, now I know it does matter for others, at
least.
In short, if uniform() has to be tweaked, the sooner it
happens, the better.
Alternatively, the library design could allow different
uniform() implementations to be plugged in, and provide legacy
implementations along with the current (default) one. In that
case, all one has to do to reproduce the old behavior is to
plug the appropriate one in.
[1]
http://forum.dlang.org/thread/vgmdoyyqhcqurpmob...@forum.dlang.org#post-gjuprkxzmcbdixtbucea:40forum.dlang.org