GraalVM, Oracle’s open source, polyglot virtual machine — supporting languages ranging from C and Java to JavaScript, Python, and Ruby — emphasizes continued experimental support for Windows builds with the just-released version 20 upgrade. JavaScript capabilities are highlighted, as well.
Considered a major release, GraalVM 20 improves on previously available builds for Windows platforms. Windows builds now include the gu
utility for installing components and improved GraalVM Native Image support. GraalVM’s Node.js support for Windows is scheduled for the 20.1 release.
[ Also on InfoWorld: The new features in Java 14 ]
Other improvements in GraalVM 20 include:
- For JavaScript, Node.js has been updated to version 12.15.0. Also, the
js.commonjs-require
option has been added to load npm-compatible CommonJS modules from plain JavaScript. - In another JavaScript-related improvement, a j
s-load-from-classpath
option was added to allow loading of files from the the classpath viaclasspath:
pseudo URLs. This usage is not recommended with untrusted code. - The GraalVM distribution for the AArch64 architecture now has a functional
node.js
runtime in--jvm
andnative
modes. - The
js.bind-member-functions
option has been added for implicit binding of unbound functions returned byValue.getMembercode
to the receiver. - Support for JavaScript public and private class fields has been added.
- An implementation of the ECMAScript
prototype.replaceAll
proposal. - For Java, GraalVM 20.0 has added mitigation for Jump Conditional Code Erratum (JCC) to avoid performance loss on Intel systems.A JDK Flight Recorder Data Viewer has been added for VisualVM, a tool for heap analysis.
- The LLVM compiler toolchain is now based on the LLVM 9.0.0 runtime.
- For Python, Jython compatibility has been improved.
- The Python Positional-Only Parameters proposal has been implemented.
- Support for the Ruby language has been updated to Ruby 2.6.5. There also has been performance improvements for Ruby pertaining to sockets and
RSTRING_PTR
.