Re: [RFC] Object-scope RNG implementation

From: Date: Sun, 17 Jan 2021 11:02:51 +0000
Subject: Re: [RFC] Object-scope RNG implementation
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-112912@lists.php.net to get a copy of this message
Updated the RFC and fixed the implementation. Also made some additions to the RFC about when this feature might be useful.. RFC: https://wiki.php.net/rfc/object_scope_prng Implementation PR: https://github.com/php/php-src/pull/6568 (All CI passed) The main points are as follows: - The implementation now meets all requirements. (maybe) - Implemented MT19937, which is compatible with PHP standard MT. The consistency of these is ensured by tests. - The implementation is now what we used to call TypeII. - All RNG implementations can now be inherited like regular classes. Use faster calls only if the class is an internal class. - The implementation has been heavily modified and the quality of the code has been improved. Currently, there are a few concerns: - MT19937 returns a signed 32bit number as a result of the next() method; the mt_rand() function returns a bit-shifted unsigned 31bit number, so the results are not identical. - You can get the equivalent result with `$rng->next() << 1 & PHP_INT_MAX, but maybe you should have a nextUnsigned31()` method. - Currently, the test uses $rng->next() << 1 & PHP_INT_MAX. - The implementation of MT19937 is redundant. This can be merged. Anyway, I think the code is finally ready for review. Once that is done, we will start voting on RFCs. Regards, Go Kudo 2021年1月9日(土) 19:00 Go Kudo <zeriyoshi@gmail..com>: > Hi internals. > > I think I'm ready to discuss this RFC. > https://wiki.php.net/rfc/object_scope_prng > > Previous internals thread: https://externals.io/message/112525 > > Now is the time to let me know what you think. > > Regards, > Go Kudo >

« previous php.internals (#112912) next »