From f9799eaf15771cd794eb5bcd1560618c1198857a Mon Sep 17 00:00:00 2001 From: liach <7806504+liach@users.noreply.github.com> Date: Thu, 19 May 2022 12:38:07 -0500 Subject: [PATCH] Random renames (#3140) Signed-off-by: liach Co-authored-by: liach Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../util/math/random/AbstractRandom.mapping | 47 --------------- ...mpleRandom.mapping => AsyncRandom.mapping} | 3 +- ...impleRandom.mapping => BaseRandom.mapping} | 2 +- ...leRandom.mapping => CheckedRandom.mapping} | 5 +- .../math}/random/GaussianGenerator.mapping | 2 +- ...mpleRandom.mapping => LocalRandom.mapping} | 3 +- .../minecraft/util/math/random/Random.mapping | 59 +++++++++++++++++++ .../util/math/random/RandomDeriver.mapping | 13 ---- .../util/math/random/RandomSeed.mapping | 17 ++++++ .../util/math/random/RandomSplitter.mapping | 15 +++++ .../random/Xoroshiro128PlusPlusRandom.mapping | 4 +- mappings/net/minecraft/world/World.mapping | 2 +- .../world/gen/random/RandomSeed.mapping | 13 ---- 13 files changed, 103 insertions(+), 82 deletions(-) delete mode 100644 mappings/net/minecraft/util/math/random/AbstractRandom.mapping rename mappings/net/minecraft/util/math/random/{BlockingSimpleRandom.mapping => AsyncRandom.mapping} (67%) rename mappings/net/minecraft/util/math/random/{BaseSimpleRandom.mapping => BaseRandom.mapping} (92%) rename mappings/net/minecraft/util/math/random/{AtomicSimpleRandom.mapping => CheckedRandom.mapping} (66%) rename mappings/net/minecraft/{world/gen => util/math}/random/GaussianGenerator.mapping (81%) rename mappings/net/minecraft/util/math/random/{SimpleRandom.mapping => LocalRandom.mapping} (63%) create mode 100644 mappings/net/minecraft/util/math/random/Random.mapping delete mode 100644 mappings/net/minecraft/util/math/random/RandomDeriver.mapping create mode 100644 mappings/net/minecraft/util/math/random/RandomSeed.mapping create mode 100644 mappings/net/minecraft/util/math/random/RandomSplitter.mapping rename mappings/net/minecraft/{world/gen => util/math}/random/Xoroshiro128PlusPlusRandom.mapping (91%) delete mode 100644 mappings/net/minecraft/world/gen/random/RandomSeed.mapping diff --git a/mappings/net/minecraft/util/math/random/AbstractRandom.mapping b/mappings/net/minecraft/util/math/random/AbstractRandom.mapping deleted file mode 100644 index 146f95ddf2..0000000000 --- a/mappings/net/minecraft/util/math/random/AbstractRandom.mapping +++ /dev/null @@ -1,47 +0,0 @@ -CLASS net/minecraft/class_5819 net/minecraft/util/math/random/AbstractRandom - COMMENT A reimplementation of {@link java.util.Random}. - COMMENT - COMMENT

There are four built-in implementations, three based on the classic Java algorithm - COMMENT and one using Xoroshiro128++ algorithm. - COMMENT - COMMENT

- COMMENT - COMMENT @implNote Note that due to MC-239059, this is not an exact reimplementation of - COMMENT the Java random number generator algorithm. - METHOD method_33650 skip (I)V - ARG 1 count - METHOD method_38420 derive ()Lnet/minecraft/class_5819; - METHOD method_38421 createRandomDeriver ()Lnet/minecraft/class_6574; - METHOD method_39332 nextBetween (II)I - ARG 1 min - ARG 2 max - METHOD method_43047 createAtomic ()Lnet/minecraft/class_5819; - METHOD method_43048 nextInt (I)I - ARG 1 bound - METHOD method_43049 createAtomic (J)Lnet/minecraft/class_5819; - ARG 0 seed - METHOD method_43050 createBlocking ()Lnet/minecraft/class_5819; - METHOD method_43051 nextBetweenExclusive (II)I - ARG 1 min - ARG 2 max - METHOD method_43052 setSeed (J)V - ARG 1 seed - METHOD method_43053 create ()Lnet/minecraft/class_5819; - METHOD method_43054 nextInt ()I - METHOD method_43055 nextLong ()J - METHOD method_43056 nextBoolean ()Z - METHOD method_43057 nextFloat ()F - METHOD method_43058 nextDouble ()D - METHOD method_43059 nextGaussian ()D - METHOD method_43385 nextPredictable (DD)D - ARG 1 base - ARG 3 variance diff --git a/mappings/net/minecraft/util/math/random/BlockingSimpleRandom.mapping b/mappings/net/minecraft/util/math/random/AsyncRandom.mapping similarity index 67% rename from mappings/net/minecraft/util/math/random/BlockingSimpleRandom.mapping rename to mappings/net/minecraft/util/math/random/AsyncRandom.mapping index 2e814c475d..50ee0cacd6 100644 --- a/mappings/net/minecraft/util/math/random/BlockingSimpleRandom.mapping +++ b/mappings/net/minecraft/util/math/random/AsyncRandom.mapping @@ -1,4 +1,5 @@ -CLASS net/minecraft/class_7384 net/minecraft/util/math/random/BlockingSimpleRandom +CLASS net/minecraft/class_7384 net/minecraft/util/math/random/AsyncRandom + COMMENT A random that can be shared by multiple threads safely. FIELD field_38760 INT_BITS I FIELD field_38761 SEED_MASK J FIELD field_38762 MULTIPLIER J diff --git a/mappings/net/minecraft/util/math/random/BaseSimpleRandom.mapping b/mappings/net/minecraft/util/math/random/BaseRandom.mapping similarity index 92% rename from mappings/net/minecraft/util/math/random/BaseSimpleRandom.mapping rename to mappings/net/minecraft/util/math/random/BaseRandom.mapping index 26276054ce..8c375a5e87 100644 --- a/mappings/net/minecraft/util/math/random/BaseSimpleRandom.mapping +++ b/mappings/net/minecraft/util/math/random/BaseRandom.mapping @@ -1,4 +1,4 @@ -CLASS net/minecraft/class_6566 net/minecraft/util/math/random/BaseSimpleRandom +CLASS net/minecraft/class_6566 net/minecraft/util/math/random/BaseRandom FIELD field_34582 FLOAT_MULTIPLIER F FIELD field_34583 DOUBLE_MULTIPLIER D METHOD method_43156 next (I)I diff --git a/mappings/net/minecraft/util/math/random/AtomicSimpleRandom.mapping b/mappings/net/minecraft/util/math/random/CheckedRandom.mapping similarity index 66% rename from mappings/net/minecraft/util/math/random/AtomicSimpleRandom.mapping rename to mappings/net/minecraft/util/math/random/CheckedRandom.mapping index adbfee5762..16762df4d1 100644 --- a/mappings/net/minecraft/util/math/random/AtomicSimpleRandom.mapping +++ b/mappings/net/minecraft/util/math/random/CheckedRandom.mapping @@ -1,4 +1,5 @@ -CLASS net/minecraft/class_5820 net/minecraft/util/math/random/AtomicSimpleRandom +CLASS net/minecraft/class_5820 net/minecraft/util/math/random/CheckedRandom + COMMENT A checked random that fails fast when it detects concurrent usage. FIELD field_28766 seed Ljava/util/concurrent/atomic/AtomicLong; FIELD field_31471 INT_BITS I FIELD field_31472 SEED_MASK J @@ -7,7 +8,7 @@ CLASS net/minecraft/class_5820 net/minecraft/util/math/random/AtomicSimpleRandom FIELD field_35124 gaussianGenerator Lnet/minecraft/class_6672; METHOD (J)V ARG 1 seed - CLASS class_6671 RandomDeriver + CLASS class_6671 Splitter FIELD field_35125 seed J METHOD (J)V ARG 1 seed diff --git a/mappings/net/minecraft/world/gen/random/GaussianGenerator.mapping b/mappings/net/minecraft/util/math/random/GaussianGenerator.mapping similarity index 81% rename from mappings/net/minecraft/world/gen/random/GaussianGenerator.mapping rename to mappings/net/minecraft/util/math/random/GaussianGenerator.mapping index ea0ea339f5..f19623f00e 100644 --- a/mappings/net/minecraft/world/gen/random/GaussianGenerator.mapping +++ b/mappings/net/minecraft/util/math/random/GaussianGenerator.mapping @@ -1,4 +1,4 @@ -CLASS net/minecraft/class_6672 net/minecraft/world/gen/random/GaussianGenerator +CLASS net/minecraft/class_6672 net/minecraft/util/math/random/GaussianGenerator FIELD field_35126 baseRandom Lnet/minecraft/class_5819; FIELD field_35127 nextNextGaussian D FIELD field_35128 hasNextGaussian Z diff --git a/mappings/net/minecraft/util/math/random/SimpleRandom.mapping b/mappings/net/minecraft/util/math/random/LocalRandom.mapping similarity index 63% rename from mappings/net/minecraft/util/math/random/SimpleRandom.mapping rename to mappings/net/minecraft/util/math/random/LocalRandom.mapping index ccc65f2f03..e00334d74f 100644 --- a/mappings/net/minecraft/util/math/random/SimpleRandom.mapping +++ b/mappings/net/minecraft/util/math/random/LocalRandom.mapping @@ -1,4 +1,5 @@ -CLASS net/minecraft/class_6575 net/minecraft/util/math/random/SimpleRandom +CLASS net/minecraft/class_6575 net/minecraft/util/math/random/LocalRandom + COMMENT A local random, not intended to be shared across threads. FIELD field_34689 INT_BITS I FIELD field_34690 SEED_MASK J FIELD field_34691 MULTIPLIER J diff --git a/mappings/net/minecraft/util/math/random/Random.mapping b/mappings/net/minecraft/util/math/random/Random.mapping new file mode 100644 index 0000000000..4f8de94947 --- /dev/null +++ b/mappings/net/minecraft/util/math/random/Random.mapping @@ -0,0 +1,59 @@ +CLASS net/minecraft/class_5819 net/minecraft/util/math/random/Random + COMMENT A reimplementation of {@link java.util.Random}. + COMMENT + COMMENT

There are four built-in implementations, three based on the classic Java algorithm + COMMENT and one using Xoroshiro128++ algorithm. + COMMENT + COMMENT

    + COMMENT
  • {@link LocalRandom}: Silently breaks when used concurrently. Based on + COMMENT {@link java.util.Random}.
  • + COMMENT
  • {@link CheckedRandom}: Throws when used concurrently. Based on + COMMENT {@link java.util.Random}.
  • + COMMENT
  • {@link AsyncRandom}: Blocks the thread when used concurrently. Based on + COMMENT {@link java.util.Random}.
  • + COMMENT
  • {@link Xoroshiro128PlusPlusRandom}: Silently breaks when used concurrently. + COMMENT Implements the Xoroshiro128++ algorithm.
  • + COMMENT
+ COMMENT + COMMENT @implNote Note that due to MC-239059, this is not an exact reimplementation of + COMMENT the Java random number generator algorithm. + COMMENT + COMMENT @see java.util.random + METHOD method_33650 skip (I)V + ARG 1 count + METHOD method_38420 split ()Lnet/minecraft/class_5819; + METHOD method_38421 nextSplitter ()Lnet/minecraft/class_6574; + METHOD method_39332 nextBetween (II)I + ARG 1 min + ARG 2 max + METHOD method_43047 create ()Lnet/minecraft/class_5819; + COMMENT {@return a random} The returned random actively detects concurrent usage + COMMENT and fails on detection. + METHOD method_43048 nextInt (I)I + ARG 1 bound + METHOD method_43049 create (J)Lnet/minecraft/class_5819; + COMMENT {@return a random with the given {@code seed}} The returned random + COMMENT actively detects concurrent usage and fails on detection. + ARG 0 seed + METHOD method_43050 createAsync ()Lnet/minecraft/class_5819; + COMMENT {@return a random, suitable for multithreaded scenarios} + COMMENT + COMMENT @deprecated This one is hard to ensure deterministic behavior compared + COMMENT to the non-thread-safe one. + METHOD method_43051 nextBetweenExclusive (II)I + ARG 1 min + ARG 2 max + METHOD method_43052 setSeed (J)V + ARG 1 seed + METHOD method_43053 createLocal ()Lnet/minecraft/class_5819; + COMMENT {@return a random split from the thread local random} Users must ensure + COMMENT this random is not used concurrently. + METHOD method_43054 nextInt ()I + METHOD method_43055 nextLong ()J + METHOD method_43056 nextBoolean ()Z + METHOD method_43057 nextFloat ()F + METHOD method_43058 nextDouble ()D + METHOD method_43059 nextGaussian ()D + METHOD method_43385 nextPredictable (DD)D + ARG 1 base + ARG 3 variance diff --git a/mappings/net/minecraft/util/math/random/RandomDeriver.mapping b/mappings/net/minecraft/util/math/random/RandomDeriver.mapping deleted file mode 100644 index 1293df2c73..0000000000 --- a/mappings/net/minecraft/util/math/random/RandomDeriver.mapping +++ /dev/null @@ -1,13 +0,0 @@ -CLASS net/minecraft/class_6574 net/minecraft/util/math/random/RandomDeriver - METHOD method_38418 createRandom (III)Lnet/minecraft/class_5819; - ARG 1 x - ARG 2 y - ARG 3 z - METHOD method_38419 createRandom (Lnet/minecraft/class_2338;)Lnet/minecraft/class_5819; - ARG 1 pos - METHOD method_38995 createRandom (Ljava/lang/String;)Lnet/minecraft/class_5819; - ARG 1 string - METHOD method_39000 createRandom (Lnet/minecraft/class_2960;)Lnet/minecraft/class_5819; - ARG 1 id - METHOD method_39039 addDebugInfo (Ljava/lang/StringBuilder;)V - ARG 1 info diff --git a/mappings/net/minecraft/util/math/random/RandomSeed.mapping b/mappings/net/minecraft/util/math/random/RandomSeed.mapping new file mode 100644 index 0000000000..c9a0295b24 --- /dev/null +++ b/mappings/net/minecraft/util/math/random/RandomSeed.mapping @@ -0,0 +1,17 @@ +CLASS net/minecraft/class_6673 net/minecraft/util/math/random/RandomSeed + FIELD field_35133 GOLDEN_RATIO_64 J + COMMENT @see jdk.internal.util.random.RandomSupport#GOLDEN_RATIO_64 + FIELD field_35134 SILVER_RATIO_64 J + COMMENT @see jdk.internal.util.random.RandomSupport#SILVER_RATIO_64 + FIELD field_35135 SEED_UNIQUIFIER Ljava/util/concurrent/atomic/AtomicLong; + METHOD method_39001 getSeed ()J + COMMENT {@return the seed calculated using {@link SEED_UNIQUIFIER} and the system time} + METHOD method_39002 mixStafford13 (J)J + COMMENT @see jdk.internal.util.random.RandomSupport#mixStafford13(long) + ARG 0 seed + METHOD method_39003 createXoroshiroSeed (J)Lnet/minecraft/class_6673$class_6674; + COMMENT @see jdk.random.Xoroshiro128PlusPlus#Xoroshiro128PlusPlus(long) + ARG 0 seed + METHOD method_39004 (J)J + ARG 0 seedUniquifier + CLASS class_6674 XoroshiroSeed diff --git a/mappings/net/minecraft/util/math/random/RandomSplitter.mapping b/mappings/net/minecraft/util/math/random/RandomSplitter.mapping new file mode 100644 index 0000000000..7108a072c5 --- /dev/null +++ b/mappings/net/minecraft/util/math/random/RandomSplitter.mapping @@ -0,0 +1,15 @@ +CLASS net/minecraft/class_6574 net/minecraft/util/math/random/RandomSplitter + COMMENT A random splitter represents necessary bits from a random that can be + COMMENT combined with other seeds to split a new random from the old one. + METHOD method_38418 split (III)Lnet/minecraft/class_5819; + ARG 1 x + ARG 2 y + ARG 3 z + METHOD method_38419 split (Lnet/minecraft/class_2338;)Lnet/minecraft/class_5819; + ARG 1 pos + METHOD method_38995 split (Ljava/lang/String;)Lnet/minecraft/class_5819; + ARG 1 seed + METHOD method_39000 split (Lnet/minecraft/class_2960;)Lnet/minecraft/class_5819; + ARG 1 seed + METHOD method_39039 addDebugInfo (Ljava/lang/StringBuilder;)V + ARG 1 info diff --git a/mappings/net/minecraft/world/gen/random/Xoroshiro128PlusPlusRandom.mapping b/mappings/net/minecraft/util/math/random/Xoroshiro128PlusPlusRandom.mapping similarity index 91% rename from mappings/net/minecraft/world/gen/random/Xoroshiro128PlusPlusRandom.mapping rename to mappings/net/minecraft/util/math/random/Xoroshiro128PlusPlusRandom.mapping index 1c00716691..af3902f907 100644 --- a/mappings/net/minecraft/world/gen/random/Xoroshiro128PlusPlusRandom.mapping +++ b/mappings/net/minecraft/util/math/random/Xoroshiro128PlusPlusRandom.mapping @@ -1,4 +1,4 @@ -CLASS net/minecraft/class_6677 net/minecraft/world/gen/random/Xoroshiro128PlusPlusRandom +CLASS net/minecraft/class_6677 net/minecraft/util/math/random/Xoroshiro128PlusPlusRandom COMMENT Xoroshiro128++ based pseudo random number generator. COMMENT COMMENT @implNote The actual implementation can be found on {@link Xoroshiro128PlusPlusRandomImpl}. @@ -18,7 +18,7 @@ CLASS net/minecraft/class_6677 net/minecraft/world/gen/random/Xoroshiro128PlusPl COMMENT to ensure proper randomness. For example, to obtain a double, the upper 53 COMMENT bits, instead of the lower 53 bits. ARG 1 bits - CLASS class_6678 RandomDeriver + CLASS class_6678 Splitter FIELD field_35152 MD5_HASHER Lcom/google/common/hash/HashFunction; FIELD field_35153 seedLo J FIELD field_35154 seedHi J diff --git a/mappings/net/minecraft/world/World.mapping b/mappings/net/minecraft/world/World.mapping index 5b881f3086..739c8daa86 100644 --- a/mappings/net/minecraft/world/World.mapping +++ b/mappings/net/minecraft/world/World.mapping @@ -17,7 +17,7 @@ CLASS net/minecraft/class_1937 net/minecraft/world/World FIELD field_35455 tickOrder J FIELD field_36402 dimensionEntry Lnet/minecraft/class_6880; FIELD field_38226 neighborUpdater Lnet/minecraft/class_7165; - FIELD field_38861 blockingRandom Lnet/minecraft/class_5819; + FIELD field_38861 asyncRandom Lnet/minecraft/class_5819; FIELD field_9223 border Lnet/minecraft/class_2784; FIELD field_9226 ambientDarkness I FIELD field_9229 random Lnet/minecraft/class_5819; diff --git a/mappings/net/minecraft/world/gen/random/RandomSeed.mapping b/mappings/net/minecraft/world/gen/random/RandomSeed.mapping deleted file mode 100644 index 6f04f9dc81..0000000000 --- a/mappings/net/minecraft/world/gen/random/RandomSeed.mapping +++ /dev/null @@ -1,13 +0,0 @@ -CLASS net/minecraft/class_6673 net/minecraft/world/gen/random/RandomSeed - FIELD field_35133 XOROSHIRO64_SEED_LO_FALLBACK J - FIELD field_35134 XOROSHIRO64_SEED_HI_FALLBACK J - FIELD field_35135 SEED_UNIQUIFIER Ljava/util/concurrent/atomic/AtomicLong; - METHOD method_39001 getSeed ()J - COMMENT {@return the seed calculated using {@link SEED_UNIQUIFIER} and the system time} - METHOD method_39002 nextSplitMix64Int (J)J - ARG 0 seed - METHOD method_39003 createXoroshiroSeed (J)Lnet/minecraft/class_6673$class_6674; - ARG 0 seed - METHOD method_39004 (J)J - ARG 0 seedUniquifier - CLASS class_6674 XoroshiroSeed