From 6ecb497531bcf6095f7ff0c02f04834316bb4ed0 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Fri, 25 Nov 2022 10:07:53 -0500 Subject: [PATCH 1/4] Adding github actions. --- .github/workflows/basic.yml | 24 ++++++++++++++++++++++++ README.md | 15 +++++---------- example.java | 3 +-- pom.xml | 11 ++++++++--- 4 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/basic.yml diff --git a/.github/workflows/basic.yml b/.github/workflows/basic.yml new file mode 100644 index 0000000..c110525 --- /dev/null +++ b/.github/workflows/basic.yml @@ -0,0 +1,24 @@ +name: Java CI + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + java: [ 11, 16 ] + steps: + - uses: actions/checkout@v2 + - name: Set up JDK + uses: actions/setup-java@v2.5.0 + with: + java-version: ${{ matrix.java }} + distribution: 'adopt' + - name: Build and test with Maven + run: mvn package + - name: Build example + run: javac -cp target/classes/:. example.java + - name: Run example + run: java -cp target/classes/:. example \ No newline at end of file diff --git a/README.md b/README.md index 05800b6..833014b 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,8 @@ Most others do not. The Java Team at Intel (R) introduced the vector implementation for FastPFOR based on the Java Vector API that showed significant gains over the non-vectorized implementation. For an example usage, see -examples/vector/Example.java. The feature requires JDK 19+. +examples/vector/Example.java. The feature requires JDK 19+ and is currently for +advanced users. Maven central repository ------------------------ @@ -166,21 +167,15 @@ Speed is always reported in millions of integers per second. For Maven users --------------- -If you are running JDK 19+ -``` -mvn compile -``` - -If you are running earlier versions of JDK ``` -mvn compiler:compile@default-compile +mvn compile +mvn exec:java ``` -mvn exec:java -For ant users +For ant users (legacy, currently untested) ------------- If you use Apache ant, please try this: diff --git a/example.java b/example.java index 6569ebd..817e94f 100644 --- a/example.java +++ b/example.java @@ -88,8 +88,7 @@ public static void basicExample() { /** * Like the basicExample, but we store the input array size manually. */ - @Test - public void basicExampleHeadless() { + public static void basicExampleHeadless() { int[] data = new int[2342351]; System.out.println("Compressing " + data.length + " integers in one go using the headless approach"); // data should be sorted for best diff --git a/pom.xml b/pom.xml index 855aa92..c007aa8 100644 --- a/pom.xml +++ b/pom.xml @@ -64,6 +64,10 @@ org.apache.maven.plugins maven-compiler-plugin 3.8.0 + + 11 + 11 + default-compile @@ -84,9 +88,10 @@ compile - + + @@ -127,7 +132,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.0.0 + 3.4.1 com.kamikaze.pfordelta:me.lemire.integercompression.benchmarktools From 3a6c3e41ca37329bdc11a3e6d34e402c360bbf6d Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Fri, 25 Nov 2022 10:29:55 -0500 Subject: [PATCH 2/4] We are not going to rely on the vector module by default for now. --- pom.xml | 14 +++++++------- src/main/java/module-info.java | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index c007aa8..f37ef66 100644 --- a/pom.xml +++ b/pom.xml @@ -80,19 +80,19 @@ me/lemire/integercompression/vector/* module-info.java - - - + + + + - - + + --> diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 14e4c1c..d2a749c 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -2,7 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 module me.lemire.integercompression { - requires jdk.incubator.vector; + // This is currently only for advanced users: + // requires jdk.incubator.vector; exports me.lemire.integercompression; exports me.lemire.integercompression.vector; } From 2c28f54b1a1c62b9beb6aef39731db6158821514 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Fri, 25 Nov 2022 10:31:29 -0500 Subject: [PATCH 3/4] Adding more documentation. --- .github/workflows/basic.yml | 2 +- README.md | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/basic.yml b/.github/workflows/basic.yml index c110525..cb3e3e8 100644 --- a/.github/workflows/basic.yml +++ b/.github/workflows/basic.yml @@ -19,6 +19,6 @@ jobs: - name: Build and test with Maven run: mvn package - name: Build example - run: javac -cp target/classes/:. example.java + run: javac -cp target/classes/:. example.java - name: Run example run: java -cp target/classes/:. example \ No newline at end of file diff --git a/README.md b/README.md index 833014b..c65513a 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,13 @@ mvn compile mvn exec:java ``` +You may run our examples as follows: + +```` +mvn package +javac -cp target/classes/:. example.java +java -cp target/classes/:. example +``` For ant users (legacy, currently untested) ------------- From 25840b455b307073d1b890179494523f1ae9e37e Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Fri, 25 Nov 2022 10:44:47 -0500 Subject: [PATCH 4/4] Excluding vector from javadoc --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c65513a..c421a00 100644 --- a/README.md +++ b/README.md @@ -167,7 +167,7 @@ Speed is always reported in millions of integers per second. For Maven users --------------- - +The current development versions assume JDK 11 or better. ``` mvn compile diff --git a/pom.xml b/pom.xml index f37ef66..fc6912b 100644 --- a/pom.xml +++ b/pom.xml @@ -134,7 +134,7 @@ maven-javadoc-plugin 3.4.1 - com.kamikaze.pfordelta:me.lemire.integercompression.benchmarktools + me.lemire.integercompression.vector;com.kamikaze.pfordelta:me.lemire.integercompression.benchmarktools