[ https://issues.apache.org/jira/browse/RNG-127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17396626#comment-17396626 ]
Gilles Sadowski commented on RNG-127: ------------------------------------- bq. is creating by name the only mechanism to obtain a specific generator. No but that's the one likely to be used by most users (casual use would be through the [{{getDefault()}}|https://cr.openjdk.java.net/~iris/se/17/build/latest/api/java.base/java/util/random/RandomGeneratorFactory.html#getDefault()] method). The other way is to get [all|https://cr.openjdk.java.net/~iris/se/17/build/latest/api/java.base/java/util/random/RandomGeneratorFactory.html#all()] the available implementations and use the stream API to filter on various [properties|https://cr.openjdk.java.net/~iris/se/17/build/latest/api/java.base/java/util/random/RandomGeneratorFactory.html] (e.g. [state size|https://cr.openjdk.java.net/~iris/se/17/build/latest/api/java.base/java/util/random/RandomGeneratorFactory.html#stateBits()]). I'd think that the first step is to add the property methods to {{RandomSource}}. > Assess future compatibility with JEP 356: Enhanced Pseudo-Random Number > Generators > ----------------------------------------------------------------------------------- > > Key: RNG-127 > URL: https://issues.apache.org/jira/browse/RNG-127 > Project: Commons RNG > Issue Type: Task > Components: client-api > Affects Versions: 1.3 > Reporter: Alex Herbert > Priority: Minor > > JEP 356 specifies an enhancement to the random number generators. This is > targeted to JDK 17. > [JEP 356: Enhanced Pseudo-Random Number > Generators|https://openjdk.java.net/jeps/356] > The enhancement will add interfaces to the JDK for random number generation: > * SplittableRandomGenerator extends RandomGenerator and also provides > methods named split and splits. Splittability allows the user to spawn a new > RandomGenerator from an existing RandomGenerator that will generally produce > statistically independent results. > * JumpableRandomGenerator extends RandomGenerator and also provides > methods named jump and jumps. Jumpability allows a user to jump ahead a > moderate number of draws. > * LeapableRandomGenerator extends RandomGenerator and also provides > methods named leap and leaps. Leapability allows a user to jump ahead a > large number of draws. > * ArbitrarilyJumpableRandomGenerator extends LeapableRandomGenerator and > also provides additional variations of jump and jumps that allow an arbitrary > jump distance to be specified. > The specification describes the development of abstract classes that would > allow different algorithms to be easily implemented by developers and used > with a Java application through a common interface. This would replicate the > functionality of the Common RNG API and core modules within the JDK. > The JDK interfaces should be compared with the current client API in Commons > RNG with the aim to assess: > # Compatibility > # Potential to back-port functionality > JEP 356 also mentions the implementation of the LXM family of RNGs and a > change to the algorithm used by SplittableRandom to address two weaknesses > identified in 2016. These could be included in the current codebase pending > license compatibility checks. > -- This message was sent by Atlassian Jira (v8.3.4#803005)