Hi everyone,

I would like to start a new discussion thread concerning the 
datasketches-memory Java project and its current reliance on features of the 
Java Language that allow use of native memory, amongst other things.
Newer versions of the language have made some of these features internal, and 
not easily accessible to developers - which means that Java 8 is currently a 
requirement for this project.
Jon Malkin created an issue 
(https://github.com/apache/datasketches-memory/issues/121 
<https://github.com/apache/datasketches-memory/issues/121>) to this effect, 
noting that the project risks being left behind should this remain the case

Lee and I have been collaborating on how best to address this, and I would like 
to post an update on the current plan to facilitate feedback from a wider 
audience, as well as potential for more collaboration.

Briefly, we have succeeded in compiling and running the project on Java 11 in 
an experimental branch, with some minor changes.  However, we would like to 
support both Java 8 as well as newer versions of the language.  One advantage 
to doing so would be to support later versions of Java where native memory 
access is supported via the Memory API (Project Panama).

This would all be possible by creating a multi-release JAR 
(https://openjdk.java.net/jeps/238 <https://openjdk.java.net/jeps/238>).  One 
of the secondary requirements of such a change is to ensure that it is 
supported by developer IDEs - using a multi-module maven build appears to 
satisfy this requirement.

We are currently in the process of introducing a multi-module maven build, and 
finding a way to test this build across multiple versions of the language 
during continuous integration.  If anybody would like to contribute ideas, or 
has had similar experience building a multi-release JAR - your feedback in this 
thread would be welcome.

Thanks,

David.

Reply via email to