GraalVM: 1.0-rc2 is here

综合编程 2018-06-07 阅读原文

Wewrote about GraalVM a couple of months ago so we’re happy to see that things are moving fast; 1.0-rc1 was released a few weeks ago and now rc2
is here.

Both the Community Edition and the Enterprise Edition binaries are now publicly available for download

Thanks to great feedback from the community, we could now create the #GraalVM
1.0-rc2 binaries ! Read about notable fixes and improvements in our release notes:

— GraalVM (@graalvm) June 6, 2018

GraalVM 1.0-rc2 highlights

GraalVM for Java developers

According to the release notes, the underlying JDK version has been updated from “1.8.0_161” to “1.8.0_171” and the support for the Java Microbenchmark harness has been improved – GraalVM is now a recognized and supported JVM

What’s been fixed?

  • A StackOverflow exception
    an improved performance when recursively inlining of invokedynamic
  • A compiler error
    causing incorrect code generation while building the scalac compiler.

Native image generation

GraalVM 1.0-rc2 offers support for building statically linked native images, which means that you can now pass --static
, and if you have static libc
and zlib
installed, it generates a standalone executable that won’t require libc
for running.

Speaking of improvements, the team also added Classpath exception to the license of SubstrateVM
and the Graal compiler
components to make sure all GraalVM code ending up in a native image is subject to this clause.

What’s been fixed?

  • The handling of implicit exceptions ( NullPointerExeption
    , ArrayIndexOutOfBoundsException
    , ClassCastException
    , …): all exceptions now have correct stack traces and can be caught as expected. Previously, implicit exceptions were sometimes not caught by an exception handler within the same method.
  • A number of exceptions during the generation of native images that were reported by early adopters. Thank you for the reports on GitHub
    – keep them coming!


There’s not much to say except for the fact that it has been updated from Node.js 8.9.4 to Node.js to 8.11.1
. Although it’s not a breaking change, it brings a lot of improvements, including CVE-listed security fixes.

SEE ALSO: Meet GraalVM, Oracle’s polyglot virtual machine

LLVM interpreter for C/C++ & other native languages

Now that a new API has been added for accessing Java types and instantiating foreign objects from LLVM languages, you can easily call Java code from native programs compiled to the LLVM bitcode.

API changes for GraalVM integrators

Good news! Graal SDK and Truffle are offering API for developers trying to build things on top of GraalVM, language implementations, embedding GraalVM, and so on.

To see the list of changes to the APIs, have a look at the project changelogs:

That’s not all, of course. Check out the release notes here

Get started with GraalVM

GraalVM gives you enhanced performance for JVM-based applications
written in languages such as Java, Scala, Groovy or Kotlin thanks to Graal, a dynamic compiler which improves efficiency and speed of applications. The Graal compiler is also available as an experimental option
in JDK 10. However, you should be using it with GraalVM if you want to unlock the latest features and boost performance.

If you’re a JavaScript developer building Node.js apps
, you should use Graal JavaScript [Graal.js], an ECMAScript compliant JavaScript engine. It provides all the benefits from the Graal stack, including language interoperability and common tooling.

If you want to find out more about GraalVM, you should check out the reference manual
. All you have to do is choose your favorite language and go to its page. But before you do that, you should make sure the libraries and modules you use as dependencies work with GraalVM. To do it, please use the GraalVM Language Compatibility tool

JAXenter Magazine

责编内容by:JAXenter Magazine阅读原文】。感谢您的支持!


程序员花2小时总结:20个非常有用的Java程序片段... 下面是20个非常有用的Java程序片段,希望能对你有用。 字符串有整型的相互转换 1.String a = String.valueOf(2); //integer to numeric string i...
Android逆向系列之静态分析(二)–JAVA层 实例分析 2014 ASIS Cyber Security Contest Finals Numdroid 判断文件类型 首先利用 file 命令判断一下文件类型,发现是个压缩包,解压缩一下,得到对应的文件,然后继续看一下,发现...
JAVA中的栈和堆 JAVA在程序运行时,在内存中划分5片空间进行数据的存储。 分别是:1:寄存器2:本地方法区3:方法区4:栈5:堆 栈stack和堆heap概念 基本数据类型、局部变量都是存放在栈内存中的,用完...
Multi threading and multi process in Node.js Node.js is a single threaded language which in background uses multiple threads to execute asynchronous code. Node.js ...
Top 10 Java interview questions what I recently fa... I did some interviews nowadays to keep me fresh. Suddenly I had the idea that I would like to share my experiences with ...