Replies: 10 comments 16 replies
-
We have huge list of portability examples. Java is designed to be portable. The core question here is that GraalVM compiler introduced a new better way to JNI. This is cool, however, HotSpot has other focus-pocus (see Java critical), TeaVM-C has its own annotations related to native interop. In order to get all things together svm annotations are essential. |
Beta Was this translation helpful? Give feedback.
-
Another point is that GraalVM is very slow, it is 12x times slower doing jni call with arrays then jvm, and use of SVM annotations makes this a little bit better |
Beta Was this translation helpful? Give feedback.
-
For 22.0 specifically, we can release the SVM jar as we did for 21.3: it's built with Java 8 and might not work very well on Java 11+. It remains a question of what to do moving forward. Note that the SVM and compiler JARs are definitely not stable APIs. They only contain internal classes that might change in arbitrary way between each release. |
Beta Was this translation helpful? Give feedback.
-
A solution is to move annotations to a separate module. |
Beta Was this translation helpful? Give feedback.
-
Exactly, we need only annotations, not the code. |
Beta Was this translation helpful? Give feedback.
-
About the following inports I agree with @gilles-duboscq point here One should not use class like com.oracle.svm.core.* |
Beta Was this translation helpful? Give feedback.
-
A few classes we're using for configuration inside custom |
Beta Was this translation helpful? Give feedback.
-
So I've done a comparison of a JDK 11 build
|
Beta Was this translation helpful? Give feedback.
-
It's unclear to me if the svm jar is still going to be released or not. If not, this should get some more attention as according to #4310 the feature freeze for the next release will be on March 11 already. |
Beta Was this translation helpful? Give feedback.
-
For reference, another usage of |
Beta Was this translation helpful? Give feedback.
-
In https://graalvm.slack.com/archives/CNBFR78F9/p1639154644225700 @gilles-duboscq referring to
org.graalvm.nativeimage:svm
mentioned that:As discussed in that slack thread there are projects relying on some of the APIs provided by it.
For instance, Quarkus is currently using the following imports from that jar and its removal would be a breaking change:
I am starting this discussion aiming to find a way to allow the usage of such APIs even after the removal of the
svm
artifact (possibly by moving them insdk
).Beta Was this translation helpful? Give feedback.
All reactions