github graalvm/mandrel mandrel-20.1.0.3.Final
Mandrel 20.1.0.3.Final

Mandrel

Mandrel 20.1.0.3.Final is a downstream distribution of the GraalVM community edition 20.1.0.
Mandrel's main goal is to provide a native-image release specifically to support Quarkus.
The aim is to align the native-image capabilities from GraalVM with OpenJDK and Red Hat Enterprise Linux libraries to improve maintainability for native Quarkus applications.

How Does Mandrel Differ From Graal

Mandrel releases are built from a code base derived from the upstream GraalVM code base, with only minor changes but some significant exclusions.
They support the same native image capability as GraalVM with no significant changes to functionality.
They do not include support for Polyglot programming via the Truffle interpreter and compiler framework.
In consequence, it is not possible to extend Mandrel by downloading languages from the Truffle language catalogue.

Mandrel is also built slightly differently to GraalVM, using the standard OpenJDK project release of jdk11u.
This means it does not profit from a few small enhancements that Oracle have added to the version of OpenJDK used to build their own GraalVM downloads.
Most of these enhancements are to the JVMCI module that allows the Graal compiler to be run inside OpenJDK.
The others are small cosmetic changes to behaviour.
These enhancements may in some cases cause minor differences in the progress of native image generation.
They should not cause the resulting images themselves to execute in a noticeably different manner.

Prerequisites

Mandrel's native-image depends on the following packages:

  • glibc-devel
  • zlib-devel
  • gcc
  • libffi-devel

On Fedora/CentOS/RHEL they can be installed with:

dnf install glibc-devel zlib-devel gcc libffi-devel libstdc++-static

Note the package might be called glibc-static instead of libstdc++-static.

On Ubuntu-like systems with:

apt install gcc zlib1g-dev libffi-dev build-essential

Quick start

$ tar -xf mandrel-java11-linux-amd64-20.1.0.3.Final.tar.gz
$ export JAVA_HOME="$( pwd )/mandrel-java11-20.1.0.3.Final"
$ export GRAALVM_HOME="${JAVA_HOME}"
$ export PATH="${JAVA_HOME}/bin:${PATH}"
$ curl -O -J  https://code.quarkus.io/d\?e\=io.quarkus:quarkus-resteasy
$ unzip code-with-quarkus.zip
$ cd code-with-quarkus/
$ ./mvnw package -Pnative
$ ./target/code-with-quarkus-1.0.0-SNAPSHOT-runner

Quarkus builder image (pending upload)

The Quarkus builder image for this release is still being prepared, please try again later.

Changelog

  • Upgraded JDK from 11.0.8 to 11.0.9.

Backports

  • #136 - Refactor static library search paths
  • #126 - Unify source caches

For a complete list of changes please visit mandrel-20.1.0.2.Final...mandrel-20.1.0.3.Final


Mandrel 20.1.0.3.Final
OpenJDK used: 11.0.9 GA

Don't miss a new mandrel release

NewReleases is sending notifications on new releases.