You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@datasketches.apache.org by David Cromberge <da...@permutive.com> on 2021/03/15 12:26:42 UTC

[DISCUSS] - Datasketches Memory and Java 8+

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.