Skip to content

Commit 3eaa9cf

Browse files
authored
Merge pull request #661 from apache/fix_readme_octal_1_typos
Fix readme octal 1 typos
2 parents 11de5f2 + 5a4ddb8 commit 3eaa9cf

2 files changed

Lines changed: 30 additions & 33 deletions

File tree

README.md

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -27,42 +27,49 @@ This is the core Java component of the DataSketches library. It contains all of
2727

2828
This component is also a dependency of other components of the library that create adaptors for target systems, such as the [Apache Pig adaptor](https://github.com/apache/datasketches-pig), the [Apache Hive adaptor](https://github.com/apache/datasketches-hive), and others.
2929

30-
Note that we have a parallel core component for C++ and Python implementations of the same sketch algorithms,
30+
Note that we have a parallel core component for C++ and Python implementations of many of the same sketch algorithms,
3131
[datasketches-cpp](https://github.com/apache/datasketches-cpp) and [datasketches-python](https://github.com/apache/datasketches-python)
3232

33-
Please visit the main [DataSketches website](https://datasketches.apache.org) for more information.
33+
Please visit the main [DataSketches website](https://datasketches.apache.org) for more information.
3434

3535
If you are interested in making contributions to this site please see our [Community](https://datasketches.apache.org/docs/Community/) page for how to contact us.
3636

3737
---
3838

39-
## Maven Build Instructions
40-
__NOTE:__ This component accesses resource files for testing. As a result, the directory elements of the full absolute path of the target installation directory must qualify as Java identifiers. In other words, the directory elements must not have any space characters (or non-Java identifier characters) in any of the path elements. This is required by the Oracle Java Specification in order to ensure location-independent access to resources: [See Oracle Location-Independent Access to Resources](https://docs.oracle.com/javase/8/docs/technotes/guides/lang/resources.html)
39+
## Build & Runtime Dependencies
4140

42-
### JDK17 is required to compile
43-
This component depends on the [datasketches-memory-4.1.X](https://github.com/apache/datasketches-memory/tree/4.1.X) component,
44-
and, as a result, must be compiled with JDK17 and this dependency:
41+
### Installation Directory Path
42+
**NOTE:** This component accesses resource files for testing. As a result, the directory elements of the full absolute path of the target installation directory must qualify as Java identifiers. In other words, the directory elements must not have any space characters (or non-Java identifier characters) in any of the path elements. This is required by the Oracle Java Specification in order to ensure location-independent access to resources: [See Oracle Location-Independent Access to Resources](https://docs.oracle.com/javase/8/docs/technotes/guides/lang/resources.html)
4543

46-
```
47-
<dependency>
48-
<groupId>org.apache.datasketches</groupId>
49-
<artifactId>datasketches-memory</artifactId>
50-
<version>4.1.0</version>
51-
</dependency>
52-
```
44+
### OpenJDK Version 21
45+
An OpenJDK-compatible build of Java 21, provided by one of the Open-Source providers, such as Azul Systems, Red Hat, SAP, Eclipse Temurin, etc, is required.
46+
All of the testing of this release has been performed with an Eclipse Temurin build.
5347

54-
If your application only relies on the APIs of datasketches-java no special JVM arguments are required.
55-
However, if your application also directly relies on the APIs of the *datasketches-memory* component,
56-
you may need the additional JVM argument **--add-modules=jdk.incubator.foreign**.
48+
This release uses the new Java Foreign Function & Memory (FFM) features that are in "preview" in Java 21.
49+
As a result, the JVM flag <nobr>**--enable-preview**</nobr> must be set at compile and at runtime.
5750

58-
### Recommended Build Tool
59-
This DataSketches component is structured as a Maven project and Maven is the recommended Build Tool.
51+
**NOTE:** OpenJDK versions greater than 21 do not support running Java 21 class files (Class ID 65) with preview code. The runtime JVM version must be 21.
6052

61-
To run normal unit tests:
53+
**NOTE:** The Eclipse Compiler for Java (ECJ) version 21, used by default in both the Eclipse JDT IDE and the VScode IDE, will not allow compilation of preview code for Java version 21. Both Eclipse and VScode can be configured to use an OpenJDK compiler instead, but you will loose the incremental build capability of the ECJ.
54+
55+
### DataSketches Memory 6.0.0
56+
57+
This component depends on the [datasketches-memory-6.0.0](https://github.com/apache/datasketches-memory/tree/6.0.0) component,
58+
59+
## Compilation and Test using Maven
60+
This DataSketches component is structured as a Maven project and Maven is the recommended tool for compile and test.
61+
62+
#### A Toolchain is required
63+
64+
* You must have a JDK type toolchain defined in location *~/.m2/toolchains.xml* that specifies where to find a locally installed OpenJDK-compatible version 21.
65+
* Your default \$JAVA\_HOME compiler must be OpenJDK compatible, specified in the toolchain, and may be a version greater than 21. Note that if your \$JAVA\_HOME is set to a Java version greater than 21, Maven will automatically use the Java 21 version specified in the toolchain instead. The included pom.xml specifies the necessary JVM flags, so no further action should be required.
66+
* Note that the paths specified in the toolchain must be fully qualified direct paths to the OpenJDK version locations. Using environment variables will not work.
67+
68+
#### To run normal unit tests:
6269

6370
$ mvn clean test
6471

65-
To install jars built from the downloaded source:
72+
#### To install jars built from the downloaded source:
6673

6774
$ mvn clean install -DskipTests=true
6875

@@ -74,19 +81,9 @@ This will create the following jars:
7481
* datasketches-java-X.Y.Z-test-sources.jar The test source files
7582
* datasketches-java-X.Y.Z-javadoc.jar The compressed Javadocs.
7683

77-
### Dependencies
78-
79-
#### Run-time
80-
There is one run-time dependency:
81-
82-
* [datasketches-memory-4.1.X](https://github.com/apache/datasketches-memory/tree/4.1.X)
83-
84-
#### Testing
85-
See the pom.xml file for test dependencies.
86-
8784
## Known Issues
8885

89-
#### SpotBugs
86+
### SpotBugs
9087

9188
* Make sure you configure SpotBugs with the /tools/FindBugsExcludeFilter.xml file. Otherwise, you may get a lot of false positive or low risk issues that we have examined and eliminated with this exclusion file.
9289

src/main/java/org/apache/datasketches/cpc/TestUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ static boolean specialEquals(final CpcSketch sk1, final CpcSketch sk2,
6868
rtAssertEquals(sk1.mergeFlag, sk2.mergeFlag);
6969
rtAssertEquals(ficolA, ficolB);
7070
rtAssertEquals(sk1.kxp, sk2.kxp, .01 * sk1.kxp); //1% tolerance
71-
rtAssertEquals(sk1.hipEstAccum, sk2.hipEstAccum, 01 * sk1.hipEstAccum); //1% tolerance
71+
rtAssertEquals(sk1.hipEstAccum, sk2.hipEstAccum, .01 * sk1.hipEstAccum); //1% tolerance
7272
}
7373
return true;
7474
}

0 commit comments

Comments
 (0)