Skip to content

Commit 322f6e7

Browse files
committed
Add README-Mandrel and fix version
1 parent 84541b1 commit 322f6e7

File tree

10 files changed

+75
-9
lines changed

10 files changed

+75
-9
lines changed

README-Mandrel.md

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Mandrel
2+
3+
Mandrel is [a downstream distribution of the GraalVM community edition](https://developers.redhat.com/blog/2020/06/05/mandrel-a-community-distribution-of-graalvm-for-the-red-hat-build-of-quarkus/).
4+
Mandrel's main goal is to provide a `native-image` release specifically to support [Quarkus](https://quarkus.io).
5+
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.
6+
Mandrel can best be described as a distribution of a regular OpenJDK with a specially packaged GraalVM Native Image builder (`native-image`).
7+
8+
## How Does Mandrel Differ From Graal
9+
10+
Mandrel releases are built from a code base derived from the upstream GraalVM code base, with only minor changes but some significant exclusions.
11+
A full distribution of GraalVM is much more than `native-image`: it has polyglot support, the Truffle framework which allows for efficient implementation of interpreters, an LLVM compiler back end for native image, the libgraal JIT compiler as a replacement for Hotspot’s C2 server compiler and much more.
12+
Mandrel is the small subset of that functionality we support for the `native-image` use-case.
13+
14+
Mandrel's `native-image` also doesn't include the following features:
15+
* The experimental image-build server, i.e., the `--experimental-build-server` option.
16+
* The LLVM backend, i.e., the `-H:CompilerBackend=llvm` option.
17+
* The musl libc implementation, i.e., the `--libc=musl` option.
18+
* Support for generating static native images, i.e., the `--static` option.
19+
* Support for non JVM-based languages and polyglot, i.e., the `--language:<languageId>` option.
20+
21+
Mandrel is also built slightly differently to GraalVM, using the standard OpenJDK project release of jdk11u.
22+
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.
23+
Most of these enhancements are to the JVMCI module that allows the Graal compiler to be run inside OpenJDK.
24+
The others are small cosmetic changes to behaviour.
25+
These enhancements may in some cases cause minor differences in the progress of native image generation.
26+
They should not cause the resulting images themselves to execute in a noticeably different manner.
27+
28+
## Communication Channels
29+
30+
* [Slack](https://www.graalvm.org/slack-invitation) - Join `#mandrel` channel at graalvm's slack workspace
31+
* [graalvm-dev@oss.oracle.com](mailto:graalvm-dev@oss.oracle.com?subject=[MANDREL]) mailing list - Subscribe [here](https://oss.oracle.com/mailman/listinfo/graalvm-dev)
32+
* [GitHub issues](https://github.com/graalvm/mandrel/issues) for bug reports, questions, or requests for enhancements.
33+
34+
Please report security vulnerabilities according to the [Reporting Vulnerabilities guide](https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html).
35+
36+
## Getting Started
37+
38+
Mandrel distributions can be downloaded from [the repository's releases](https://github.com/graalvm/mandrel/releases)
39+
and container images are available at [quay.io](https://quay.io/repository/quarkus/ubi-quarkus-mandrel?tag=latest&tab=tags).
40+
41+
### Prerequisites
42+
43+
Mandrel's `native-image` depends on the following packages:
44+
* freetype-devel
45+
* gcc
46+
* glibc-devel
47+
* libstdc++-static
48+
* zlib-devel
49+
50+
On Fedora/CentOS/RHEL they can be installed with:
51+
```bash
52+
dnf install glibc-devel zlib-devel gcc freetype-devel libstdc++-static
53+
```
54+
55+
**Note**: the package might be called `glibc-static` instead of `libstdc++-static`.
56+
57+
On Ubuntu-like systems with:
58+
```bash
59+
apt install g++ zlib1g-dev libfreetype6-dev
60+
```
61+
62+
## Building Mandrel From Source
63+
64+
For building Mandrel from source please see [mandrel-packaging](https://github.com/graalvm/mandrel-packaging)
65+
and consult [Repository Structure in CONTRIBUTING.md](CONTRIBUTING.md#repository-structure) regarding which branch of Mandrel to use.
66+

compiler/mx.compiler/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"sourceinprojectwhitelist" : [],
55

66
"groupId" : "org.graalvm.compiler",
7-
"version" : "21.3.0",
7+
"version" : "21.3.0.0",
88
"release" : True,
99
"url" : "http://www.graalvm.org/",
1010
"developer" : {

espresso/mx.espresso/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
suite = {
2424
"mxversion": "5.280.5",
2525
"name": "espresso",
26-
"version" : "21.3.0",
26+
"version" : "21.3.0.0",
2727
"release" : True,
2828
"groupId" : "org.graalvm.espresso",
2929
"url" : "https://www.graalvm.org/reference-manual/java-on-truffle/",

regex/mx.regex/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343

4444
"name" : "regex",
4545

46-
"version" : "21.3.0",
46+
"version" : "21.3.0.0",
4747
"release" : True,
4848
"groupId" : "org.graalvm.regex",
4949
"url" : "http://www.graalvm.org/",

sdk/mx.sdk/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
suite = {
4242
"mxversion" : "5.309.1",
4343
"name" : "sdk",
44-
"version" : "21.3.0",
44+
"version" : "21.3.0.0",
4545
"release" : True,
4646
"sourceinprojectwhitelist" : [],
4747
"url" : "https://github.com/oracle/graal",

substratevm/mx.substratevm/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
suite = {
33
"mxversion": "5.308.1",
44
"name": "substratevm",
5-
"version" : "21.3.0",
5+
"version" : "21.3.0.0",
66
"release" : True,
77
"url" : "https://github.com/oracle/graal/tree/master/substratevm",
88

tools/mx.tools/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"defaultLicense" : "GPLv2-CPE",
2727

2828
"groupId" : "org.graalvm.tools",
29-
"version" : "21.3.0",
29+
"version" : "21.3.0.0",
3030
"release" : True,
3131
"url" : "http://openjdk.java.net/projects/graal",
3232
"developer" : {

truffle/mx.truffle/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
suite = {
4242
"mxversion" : "5.300.4",
4343
"name" : "truffle",
44-
"version" : "21.3.0",
44+
"version" : "21.3.0.0",
4545
"release" : True,
4646
"groupId" : "org.graalvm.truffle",
4747
"sourceinprojectwhitelist" : [],

vm/mx.vm/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
suite = {
22
"name": "vm",
3-
"version" : "21.3.0",
3+
"version" : "21.3.0.0",
44
"mxversion" : "5.309.2",
55
"release" : True,
66
"groupId" : "org.graalvm",

wasm/mx.wasm/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"mxversion" : "5.301.0",
4343
"name" : "wasm",
4444
"groupId" : "org.graalvm.wasm",
45-
"version" : "21.3.0",
45+
"version" : "21.3.0.0",
4646
"versionConflictResolution" : "latest",
4747
"url" : "http://graalvm.org/",
4848
"developer" : {

0 commit comments

Comments
 (0)