----- Mail original ----- > De: "Jim Laskey" <james.las...@oracle.com> > À: "Remi Forax" <fo...@univ-mlv.fr> > Cc: "Jim Laskey" <jlas...@openjdk.java.net>, "build-dev" > <build-...@openjdk.java.net>, "core-libs-dev" > <core-libs-dev@openjdk.java.net>, "security-dev" > <security-...@openjdk.java.net> > Envoyé: Lundi 23 Novembre 2020 14:27:31 > Objet: Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators > [v3]
> [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. I not an expert on PRNG, so i trust you on this. > > 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. Again, from my armchair, i see why a SplitableRandomGenerator may make sense (but i'm a big fan of spliterators to my students utter despair), less for the other subtypes of RandomGenerator and as i said to Jim, i don't see those generators to be taken as parameters of methods a lot so if this assumption is true, optional methods make more sense. > > —Guy Rémi > > >> On Nov 17, 2020, at 7:18 PM, Remi Forax <fo...@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" <jlas...@openjdk.java.net> >>> À: "build-dev" <build-...@openjdk.java.net>, "core-libs-dev" >>> <core-libs-dev@openjdk.java.net>, >>> security-...@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