Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v17]

2021-02-17 Thread Jim Laskey
On Sat, 13 Feb 2021 21:30:12 GMT, Andrey Turbanov 
 wrote:

>> Jim Laskey has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Added table of available algorithms.
>
> test/jdk/java/util/Random/RandomTestBsi1999.java line 227:
> 
>> 225: static int checkRunStats(int[] stats) {
>> 226:int runFailure = 0;
>> 227:runFailure |= ((2267 <= stats[1]) || (stats[1] <= 2733)) ? 0 
>> : 1;
> 
> 1. confusing formatting.
> 2. This condition is always `true`. Looks like `&&` should be used instead of 
> `||`

Correct. Changed.

-

PR: https://git.openjdk.java.net/jdk/pull/1292


Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v17]

2021-02-16 Thread Jim Laskey
On Tue, 16 Feb 2021 15:54:08 GMT, Rémi Forax 
 wrote:

>> The interface method is a default method, so not technically an override.
>
> It's not an override but @Override has a broader semantics than just 
> overriding an existing method.
> Given that it helps to understand that this method is part of a larger 
> algorithm, i think this method should be tagged with @Override

Okay

-

PR: https://git.openjdk.java.net/jdk/pull/1292


Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v17]

2021-02-16 Thread Rémi Forax
On Tue, 16 Feb 2021 14:03:56 GMT, Jim Laskey  wrote:

>> src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java line 
>> 1548:
>> 
>>> 1546:  * @return a stream of (pseudo)randomly chosen {@code int} 
>>> values
>>> 1547:  */
>>> 1548: 
>> 
>> Is `@Override` intentionally omitted?
>
> The interface method is a default method, so not technically an override.

It's not an override but @Override has a broader semantics than just overriding 
an existing method.
Given that it helps to understand that this method is part of a larger 
algorithm, i think this method should be tagged with @Override

-

PR: https://git.openjdk.java.net/jdk/pull/1292


Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v17]

2021-02-16 Thread Jim Laskey
On Sat, 13 Feb 2021 15:03:53 GMT, Andrey Turbanov 
 wrote:

>> Jim Laskey has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Added table of available algorithms.
>
> src/java.base/share/classes/java/util/Random.java line 29:
> 
>> 27: 
>> 28: import java.io.*;
>> 29: import java.math.BigInteger;
> 
> This import is not actually used

good

> src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java line 
> 115:
> 
>> 113: static final String BAD_BOUND = "bound must be positive";
>> 114: static final String BAD_FLOATING_BOUND = "bound must be finite and 
>> positive";
>> 115: static final String BAD_RANGE = "bound must be greater than origin";
> 
> Unused fields in Random class now can be cleaned up: 
> `java.util.Random#BadRange`, `java.util.Random#BadSize`

Good

> src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java line 
> 149:
> 
>> 147:  */
>> 148: public static void checkJumpDistance(double distance) {
>> 149: if (!(distance > 0.0 && distance < Float.POSITIVE_INFINITY
> 
> I wounder if this usage of `Float.POSITIVE_INFINITY` intentional here? Looks 
> a bit suspicious for comparison with `double` argument

Turns out the method is no longer used.

> src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java line 
> 1548:
> 
>> 1546:  * @return a stream of (pseudo)randomly chosen {@code int} 
>> values
>> 1547:  */
>> 1548: 
> 
> Is `@Override` intentionally omitted?

The interface method is a default method, so not technically an override.

> src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java line 
> 1943:
> 
>> 1941: 
>> 1942: // IllegalArgumentException messages
>> 1943: static final String BadLogDistance  = "logDistance must be 
>> non-negative";
> 
> seems unused

Good.

-

PR: https://git.openjdk.java.net/jdk/pull/1292


Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v17]

2021-02-13 Thread Andrey Turbanov
On Thu, 11 Feb 2021 16:02:03 GMT, Jim Laskey  wrote:

>> 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 .
>> 
>> javadoc can be found at 
>> http://cr.openjdk.java.net/~jlaskey/prng/doc/api/java.base/java/util/random/package-summary.html
>> 
>> old PR:  https://github.com/openjdk/jdk/pull/1273
>
> Jim Laskey has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Added table of available algorithms.

src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java line 
149:

> 147:  */
> 148: public static void checkJumpDistance(double distance) {
> 149: if (!(distance > 0.0 && distance < Float.POSITIVE_INFINITY

I wounder if this usage of `Float.POSITIVE_INFINITY` intentional here? Looks a 
bit suspicious for comparison with `double` argument

src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java line 
1548:

> 1546:  * @return a stream of (pseudo)randomly chosen {@code int} 
> values
> 1547:  */
> 1548: 

Is `@Override` intentionally omitted?

src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java line 
1943:

> 1941: 
> 1942: // IllegalArgumentException messages
> 1943: static final String BadLogDistance  = "logDistance must be 
> non-negative";

seems unused

test/jdk/java/util/Random/RandomTestBsi1999.java line 227:

> 225: static int checkRunStats(int[] stats) {
> 226:int runFailure = 0;
> 227:runFailure |= ((2267 <= stats[1]) || (stats[1] <= 2733)) ? 0 
> : 1;

1. confusing formatting.
2. This condition is always `true`. Looks like `&&` should be used instead of 
`||`

-

PR: https://git.openjdk.java.net/jdk/pull/1292


Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v17]

2021-02-13 Thread Andrey Turbanov
On Thu, 11 Feb 2021 16:02:03 GMT, Jim Laskey  wrote:

>> 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 .
>> 
>> javadoc can be found at 
>> http://cr.openjdk.java.net/~jlaskey/prng/doc/api/java.base/java/util/random/package-summary.html
>> 
>> old PR:  https://github.com/openjdk/jdk/pull/1273
>
> Jim Laskey has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Added table of available algorithms.

src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java line 
115:

> 113: static final String BAD_BOUND = "bound must be positive";
> 114: static final String BAD_FLOATING_BOUND = "bound must be finite and 
> positive";
> 115: static final String BAD_RANGE = "bound must be greater than origin";

Unused fields in Random class now can be cleaned up: 
`java.util.Random#BadRange`, `java.util.Random#BadSize`

-

PR: https://git.openjdk.java.net/jdk/pull/1292


Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v17]

2021-02-13 Thread Andrey Turbanov
On Thu, 11 Feb 2021 16:02:03 GMT, Jim Laskey  wrote:

>> 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 .
>> 
>> javadoc can be found at 
>> http://cr.openjdk.java.net/~jlaskey/prng/doc/api/java.base/java/util/random/package-summary.html
>> 
>> old PR:  https://github.com/openjdk/jdk/pull/1273
>
> Jim Laskey has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Added table of available algorithms.

src/java.base/share/classes/java/util/Random.java line 29:

> 27: 
> 28: import java.io.*;
> 29: import java.math.BigInteger;

This import is not actually used

-

PR: https://git.openjdk.java.net/jdk/pull/1292


Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators [v17]

2021-02-11 Thread Jim Laskey
> 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 .
> 
> javadoc can be found at 
> http://cr.openjdk.java.net/~jlaskey/prng/doc/api/java.base/java/util/random/package-summary.html
> 
> old PR:  https://github.com/openjdk/jdk/pull/1273

Jim Laskey has updated the pull request incrementally with one additional 
commit since the last revision:

  Added table of available algorithms.

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1292/files
  - new: https://git.openjdk.java.net/jdk/pull/1292/files/1c17ad35..f1e3699d

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=1292=16
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=1292=15-16

  Stats: 181 lines in 3 files changed: 140 ins; 0 del; 41 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1292.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1292/head:pull/1292

PR: https://git.openjdk.java.net/jdk/pull/1292