From 47467236003f0b190bc0723a6770caab845ff89c Mon Sep 17 00:00:00 2001 From: Martin Traverso Date: Mon, 15 Jul 2024 11:24:13 -0700 Subject: [PATCH] Update to Java 22 --- .github/workflows/main.yml | 6 +++--- pom.xml | 3 ++- src/main/java/org/weakref/int128/Int128.java | 2 +- src/main/java/org/weakref/int128/Int128Math.java | 4 +++- src/main/java/org/weakref/int128/MoreMath.java | 7 ------- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c52b3be..0d24f8f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: ['17'] + java: ['22'] steps: - uses: actions/checkout@v1 - name: Setup test JDK ${{ matrix.java }} @@ -15,10 +15,10 @@ jobs: with: java-version: ${{ matrix.java }} - run: echo "test_java_home=$JAVA_HOME" >> $GITHUB_ENV - - name: Setup build JDK 17 + - name: Setup build JDK 22 uses: actions/setup-java@v1 with: - java-version: 17 + java-version: 22 - name: Maven Test run: mvn install -V -B -Dtest_java_home=${{ env.test_java_home }} diff --git a/pom.xml b/pom.xml index 3073d35..445220e 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,8 @@ maven-compiler-plugin 3.8.1 - 17 + 22 + 22 diff --git a/src/main/java/org/weakref/int128/Int128.java b/src/main/java/org/weakref/int128/Int128.java index 6c21c2c..67d8b90 100644 --- a/src/main/java/org/weakref/int128/Int128.java +++ b/src/main/java/org/weakref/int128/Int128.java @@ -19,10 +19,10 @@ import java.nio.ByteOrder; import java.util.concurrent.ThreadLocalRandom; +import static java.lang.Math.unsignedMultiplyHigh; import static org.weakref.int128.MoreMath.ifNegative; import static org.weakref.int128.MoreMath.unsignedBorrow; import static org.weakref.int128.MoreMath.unsignedCarry; -import static org.weakref.int128.MoreMath.unsignedMultiplyHigh; public record Int128(long high, long low) implements Comparable diff --git a/src/main/java/org/weakref/int128/Int128Math.java b/src/main/java/org/weakref/int128/Int128Math.java index ec18bc4..ffe9d54 100644 --- a/src/main/java/org/weakref/int128/Int128Math.java +++ b/src/main/java/org/weakref/int128/Int128Math.java @@ -13,6 +13,8 @@ */ package org.weakref.int128; +import static java.lang.Math.unsignedMultiplyHigh; + public final class Int128Math { private Int128Math() {} @@ -138,7 +140,7 @@ public static long subtractLowExact(long aHigh, long aLow, long bHigh, long bLow public static long multiplyHigh(long aHigh, long aLow, long bHigh, long bLow) { - return MoreMath.unsignedMultiplyHigh(aLow, bLow) + aLow * bHigh + aHigh * bLow; + return unsignedMultiplyHigh(aLow, bLow) + aLow * bHigh + aHigh * bLow; } public static long multiplyLow(long aHigh, long aLow, long bHigh, long bLow) diff --git a/src/main/java/org/weakref/int128/MoreMath.java b/src/main/java/org/weakref/int128/MoreMath.java index d7f39dc..fa1f026 100644 --- a/src/main/java/org/weakref/int128/MoreMath.java +++ b/src/main/java/org/weakref/int128/MoreMath.java @@ -53,11 +53,4 @@ public static long ifNegative(long test, long value) { return value & (test >> 63); } - - // TODO: replace with JDK 18's Math.unsignedMultiplyHigh - public static long unsignedMultiplyHigh(long x, long y) - { - // HD 8-3: High-Order Product Signed from/to Unsigned - return Math.multiplyHigh(x, y) + ifNegative(x, y) + ifNegative(y, x); - } }