Skip to content

Commit

Permalink
Adds README\-Mandrel.md
Browse files Browse the repository at this point in the history
Co-authored-by: Andrew Dinn <[email protected]>
  • Loading branch information
zakkak and adinn committed Jun 17, 2020
1 parent 58a30e5 commit 95a434a
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
53 changes: 53 additions & 0 deletions README-Mandrel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Mandrel

Mandrel is a downstream distribution of the GraalVM community edition.
Mandrel's main goal is to provide a `native-image` release specifically to support [Quarkus](https://quarkus.io).
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.

## Communication Channels

* [Slack](https://graalvm.slack.com) - Join #mandrel channel
* [[email protected]](mailto:[email protected]?subject=[MANDREL]) mailing list - Subscribe [here](https://oss.oracle.com/mailman/listinfo/graalvm-dev)
* [GitHub issues](https://github.com/graalvm/mandrel/issues) for bug reports, questions, or requests for enhancements.

Please report security vulnerabilities according to the [Reporting Vulnerabilities guide](https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html).

## Getting Started

Mandrel distributions can be downloaded from [the repository's releases](https://github.com/graalvm/mandrel/releases)

### 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:
```bash
dnf install glibc-devel zlib-devel gcc libffi-devel
```

### Building Mandrel From Source

For building Mandrel from source please see [mandrel-packaging](https://github.com/graalvm/mandrel-packaging)

## Repository Structure

Mandrel shares the same repository structure with Graal, please see (README.md#repository-structure).

4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Mandrel

## Welcome to the Mandrel project, please see [README-Mandrel.md](README-Mandrel.md) to learn more.

# GraalVM

[![https://graalvm.slack.com](https://img.shields.io/badge/slack-join%20channel-active)](https://www.graalvm.org/slack-invitation/)
Expand Down

0 comments on commit 95a434a

Please sign in to comment.