Re: [RFC] Under Discussion: Add Random class and RandomNumberGenerator interface

From: Date: Wed, 02 Jun 2021 08:51:22 +0000
Subject: Re: [RFC] Under Discussion: Add Random class and RandomNumberGenerator interface
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-114692@lists.php.net to get a copy of this message
On 01/06/2021 16:28, Go Kudo wrote:
Hello internals. Thanks for continuing to participate in the discussion. I've sorted out the proposal, and finished writing and implementing the RFC. (Funny, I know.) I think it's time to start a discussion. https://wiki.php.net/rfc/rng_extension https://github.com/php/php-src/pull/7079 The main changes since last time are as follows: - The ugly RANDOM_USER has been removed. - RandomNumberGenerator interface has been added for user-defined RNGs. - Random class is now final. - Random class now accepts a RandomNumberGenerator interface other than string as the first argument to the constructor. - INI directive has been removed. In 32-bit environments, the result is always truncated.
Overall this looks much better! From a PHP userland perspective I can't see any huge problem at first glance. Just a few notes: - "Random class can be serialized or cloned if the algorithm supports it." It isn't clear to me how that support is defined in a userland implementation? Simply by implementing __serialize/__unserialize? - The __unserialize docblock has two typos (Useri*i*alize and *in* instead of if) - If an object is passed to new Random($obj), probably it should throw an InvalidArgumentException if a seed is also passed in, as I assume in that case it would be otherwise be ignored. Best, Jordi -- Jordi Boggiano @seldaek - https://seld.be

Thread (11 messages)

« previous php.internals (#114692) next »