GraalVM 19.3 release, support for JDK 11 and ARM64 architecture

GraalVM 19.3 released. GraalVM is a high-performance cross-language virtual machine for running JavaScript, Python 3, Ruby, R, JVM-based languages, such as Java, Scala, Kotlin and LLVM-based languages ​​such as C and C ++.

GraalVM eliminate the separation between programming languages ​​and supports interoperability shared runtime. It can be run independently or in OpenJDK, Node, running on Oracle or MySQL.

GraalVM 19.3 is the first program of long-term support (LTS) version from the project to build the main line, is also a major feature release, it is recommended that all users upgrade. LTS state can ensure the stability, security and performance fixes from the current branch backporting until the next LTS version appears.

This version is based on JDK 11, it is also the first version to support JDK GraalVM 11, taking into account the JDK 8 and JDK 11 between the relatively large difference, which actually represents an important milestone. In particular JDK 9 introduced Java Platform Module (JPMS, Java Platform Module System) module package now GraalVM means to isolate to isolate, such as the code Truffle API JVMCI, GraalVM compilers and application code. In addition, it also means GraalVM on JDK 11 since JDK 8 contains all the JDK changes.

About JDK 11, this release also provides support for ARM64 architecture GraalVM preview version of JDK 11 community-based, it includes support for all JVM languages, other language support will be provided in the near future.

This release includes ready-GraalVM local mirror can be built immediately start the application, these applications consume less memory in the ARM64 environment, but at the moment there are some restrictions, such as npm and node does not support runtime code installed.

JDK GraalVM 19.3 switch to using native code, rather than manually replaced. GraalVM local mirror switch to Java Native Interface (JNI) platform makes it possible to provide support and extended support for JDK 11 of the Windows OS. This has no effect on the start time or memory footprint, and eliminates the need to JDK libraries (eg libsunec.so) with the use of Java cryptographic service delivered with a local mirror. GraalVM now comes with a statically linked version of the JDK libraries.

At the same time, support the use of local mirror GraalVM Maven and Maven plug-in by a local mirror, which means that users can use the mvn package command directly using Maven to build the project and its local mirror. Starting GraalVM 19.3, local mirror for GraalVM related artifacts (including plug-in) of Maven <groupId> to change from com.oracle.substratevm org.graalvm.nativeimage:

<plugin>
    <groupId>org.graalvm.nativeimage</groupId>
    <artifactId>native-image-maven-plugin</artifactId>
    <version>19.3.0</version>
    <executions>
        <execution>
            <goals>
                <goal>native-image</goal>
            </goals>
            <phase>package</phase>
        </execution>
    </executions>
    <configuration>
        <skip>false</skip>
        <buildArgs>
            --no-fallback
        </buildArgs>
    </configuration>
</plugin>

Improved GraalVM compiler regard include:

  • Improved System.arraycopy, to eliminate copied to a memory check [] is the Object. This improvement to solve some of the Eclipse Collections benchmark rate of decline (relative to C2) problems.
  • Through more optimized inline fix the performance degradation when you create a list of values ​​in Scala.
  • Fixed possible to prevent JSR byte code contains the legacy version Javac generated methods are compiled problem.

Also with regard to the various language support and tools to support changes in details View update:

https://www.graalvm.org/docs/release-notes/19_3

Guess you like

Origin www.oschina.net/news/111603/graalvm-19-3-released