RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v3]
Jim Laskey
james.laskey at oracle.com
Mon Nov 23 13:27:31 UTC 2020
[Sorry it took so long. Have been on break.]
From Guy:
Thanks for the forward. Here are my thoughts:
Good question from Rémi.
If we consider PRNGs to have started at about the time of von Neumann, circa 1946, then I would say that we have been inventing a new category about once every 25 years or so: jumpable, multi-level jumpable, cryptographically secure, splittable. Twenty years ago we would just have one or more levels of jumping/leaping. I think SecureRandom appeared in 2002 (in J2SE 1.4), and the first version of SplittableRandom was in 2014.
So I could be wrong, but I really don’t expect to have to add any more interfaces in the next decade or two. I think we will get more benefit from the better type checking than we would get with optional methods.
—Guy
> On Nov 17, 2020, at 7:18 PM, Remi Forax <forax at univ-mlv.fr> wrote:
>
> An honest question,
> why do we need so many interfaces for the different categories of RandomGenerator ?
>
> My fear is that we are encoding the state of our knowledge of the different kinds of random generators now so it will not be pretty in the future when new categories of random generator are discovered/invented.
> If we can take example of the past to predict the future, 20 years ago, what should have been the hierarchy at that time.
> Is it not reasonable to think that we will need new kinds of random generator in the future ?
>
> I wonder if it's not better to have one interface and several optional methods like we have with the collections, it means that we are loosing the possibilities to precisely type a method that only works with a precise type of generator but it will be more future proof.
>
> Rémi
>
> ----- Mail original -----
>> De: "Jim Laskey" <jlaskey at openjdk.java.net>
>> À: "build-dev" <build-dev at openjdk.java.net>, "core-libs-dev" <core-libs-dev at openjdk.java.net>,
>> security-dev at openjdk.java.net
>> Envoyé: Mardi 17 Novembre 2020 23:21:18
>> Objet: Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v3]
>
>>> This PR is to introduce a new random number API for the JDK. The primary API is
>>> found in RandomGenerator and RandomGeneratorFactory. Further description can be
>>> found in the JEP https://openjdk.java.net/jeps/356 .
>>
>> Jim Laskey has updated the pull request with a new target base due to a merge or
>> a rebase. The pull request now contains 40 commits:
>>
>> - Merge branch 'master' into 8248862
>> - 8248862: Implement Enhanced Pseudo-Random Number Generators
>>
>> Update package-info.java
>> - 8248862: Implement Enhanced Pseudo-Random Number Generators
>>
>> Updated RandomGeneratorFactory javadoc.
>> - 8248862: Implement Enhanced Pseudo-Random Number Generators
>>
>> Updated documentation for RandomGeneratorFactory.
>> - Merge branch 'master' into 8248862
>> - Merge branch 'master' into 8248862
>> - 8248862: Implement Enhanced Pseudo-Random Number Generators
>>
>> Move RandomGeneratorProperty
>> - Merge branch 'master' into 8248862
>> - 8248862: Implement Enhanced Pseudo-Random Number Generators
>>
>> Clear up javadoc
>> - 8248862; Implement Enhanced Pseudo-Random Number Generators
>>
>> remove RandomGeneratorProperty from API
>> - ... and 30 more: https://git.openjdk.java.net/jdk/compare/f7517386...6fe94c68
>>
>> -------------
>>
>> Changes: https://git.openjdk.java.net/jdk/pull/1273/files
>> Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1273&range=02
>> Stats: 14891 lines in 31 files changed: 11110 ins; 3704 del; 77 mod
>> Patch: https://git.openjdk.java.net/jdk/pull/1273.diff
>> Fetch: git fetch https://git.openjdk.java.net/jdk pull/1273/head:pull/1273
>>
>> PR: https://git.openjdk.java.net/jdk/pull/1273
More information about the build-dev
mailing list