ID:               40724
 Updated by:       [EMAIL PROTECTED]
 Reported By:      dave at dmorg dot org
-Status:           Open
+Status:           Closed
 Bug Type:         Documentation problem
 Operating System: linux, windows
 PHP Version:      5.2.1
 New Comment:

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.




Previous Comments:
------------------------------------------------------------------------

[2007-03-26 16:48:30] [EMAIL PROTECTED]

Something should be added to the documentations changelog

------------------------------------------------------------------------

[2007-03-21 16:36:59] dave at dmorg dot org

When I reported this non-bug, I got the rather unhelpful (and, indeed,
inaccurate) reply that "Random numbers are random, so you can't expect
to get the same number out of a random number generator."

I did a bit of digging and got some generous feedback from Geoff
Kuenning (who has an implementation of the MT seed generation
algorithm).

Apparently, versions prior to 5.2.1 used an implementation written by
Shawn Cokus. But, in 2002, Matsumoto and Nishimura changed their
reference implementation of the random-seeding function (these are the
brains that came up with the Mersenne Twister). Version 5.2.1 uses a
newer implementation by Richard Wagner, which uses only the new method
and generates a different sequence of pseudo-random numbers. Keunning's
implementation, incidentally, "...kept both the old and new algorithms
precisely to avoid the sort of problem that you have encountered."
According to Keunning, we're unlikely to see another change in the
algorithm so results from 5.2.1 should remain constant in future
versions of php.

Dave

------------------------------------------------------------------------

[2007-03-21 16:18:30] [EMAIL PROTECTED]

>It's still a BC break.
Changing an error message from "Failed to get" to "Cannot get" is also
a "BC break", but you should not rely on it in the first place. 
And note that noone said that error messages would change.

"Known characteristics" have nothing to do with returning the same
value.
In 5.2.1 the mersenne twister implementation in PHP has been changed to
use faster and better licensed code.
Unfortunately, Dmitry did not add a NEWS entry about it, though I
really doubt it would help anybody.

Still no bug here, do not rely on these values.

------------------------------------------------------------------------

[2007-03-21 15:59:13] [EMAIL PROTECTED]

It's still a BC break. I know, from a maintainer's standpoint, how
infinitely annoying small changes like this are. But this change breaks
code, with no way to go back to the old behavior. The fact that no one
promised that the random number generator wouldn't change is a false
framing of the question - no one said that the random number generator
_would_ change either. In fact the docs for mt_rand specifically
encourage using it because, as compared to c library rand functions, it
has "known characteristics".

I think this should be reverted or somehow the old algorithm should be
made available, but at the very least this needs to have a changelog
entry, and http://php.net/mt-rand should be updated to note that you
can't rely on mt_srand() taking a seed consistently between PHP
versions. (I still think that defeats the "known characteristics"
statement also).

------------------------------------------------------------------------

[2007-03-21 14:47:12] [EMAIL PROTECTED]

>Mersenne Twister is still a psuedo-random system; 
>same seed should generate the same output.

And it does generate the same output.
Though nobody guranteed that in different PHP versions.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/40724

-- 
Edit this bug report at http://bugs.php.net/?id=40724&edit=1

Reply via email to