Skip to content

Commit 62d292d

Browse files
committed
[GR-31080] Move the docs sources in Graal/docs space by preserving website pages build.
PullRequest: graal/8899
2 parents b1b5d44 + 97f1472 commit 62d292d

235 files changed

Lines changed: 8995 additions & 46 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/Publications.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# Academic Publications
2+
13
This page describes various presentations and publications related to the GraalVM compiler and Truffle that were published by Oracle Labs and its academic collaborators.
24

35
## Truffle Tutorial
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
---
2+
layout: ohc
3+
permalink: /overview/architecture/
4+
---
5+
6+
# Oracle GraalVM Enterprise Edition Architecture Overview
7+
8+
Oracle GraalVM Enterprise Edition (GraalVM Enterprise) is a highly productive JDK distribution.
9+
It is designed to accelerate the execution of applications written in Java and other JVM languages while also providing a high-performance runtime for JavaScript, Ruby, Python, and a number of other popular languages.
10+
GraalVM Enterprise's polyglot capabilities make it possible to mix multiple programming languages in a single application while eliminating any foreign language call costs.
11+
12+
This page provides developers, solution architects, and infrastructure architects with an architectural overview of GraalVM Enterprise, as well as information about runtime modes, supported platforms, available distributions, core and additional functionalities, and support levels for various features.
13+
The conceptual overview and advantages of GraalVM Enterprise are described on the [Solutions Overview](/en/graalvm/enterprise/{{ site.version }}/docs/overview/) page.
14+
15+
* [GraalVM Enterprise Architecture](#graalvm-enterprise-architecture)
16+
* [Runtime Modes](#runtime-modes)
17+
* [Available Distributions](#available-distributions)
18+
* [Supported Platforms](#supported-platforms)
19+
* [Distribution Components List](#distribution-components-list)
20+
* [Licensing and Support](#licensing-and-support)
21+
* [Experimental and Early Adopter Features](#experimental-and-early-adopter-features)
22+
* [What to Read Next](#what-to-read-next)
23+
24+
## GraalVM Enterprise Architecture
25+
26+
![](/img/graalvm_architecture.png)
27+
28+
*Figure 1. GraalVM Enterprise Runtime*
29+
30+
The preceding diagram illustrates a complete high-level architecture of GraalVM Enterprise.
31+
32+
GraalVM adds an [advanced just-in-time (JIT) optimizing compiler](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/compiler/), which is written in Java, to the HotSpot Java Virtual Machine.
33+
34+
In addition to running Java and JVM-based languages, GraalVM's [Truffle language implementation framework](/en/graalvm/enterprise/{{ site.version }}/docs/graalvm-as-a-platform/language-implementation-framework/) makes it possible to run JavaScript, Ruby, Python, and a number of other popular languages on the JVM.
35+
With GraalVM Truffle, Java and other supported languages can directly interoperate with each other and pass data back and forth in the same memory space.
36+
37+
## Runtime Modes
38+
39+
GraalVM Enterprise is unique as a runtime environment offering several modes of operation: JVM runtime mode, Native Image, Java on Truffle (the same Java applications can be run on either).
40+
41+
#### JVM Runtime Mode
42+
When running programs on the HotSpot JVM, GraalVM defaults to the [GraalVM compiler](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/compiler/) as the top-tier JIT compiler.
43+
At runtime, an application is loaded and executed normally on the JVM.
44+
The JVM passes bytecodes for Java or any other JVM-native language to the compiler, which compiles that to the machine code and returns it to the JVM.
45+
Interpreters for supported languages, written on top of the [Truffle framework](/en/graalvm/enterprise/{{ site.version }}/docs/graalvm-as-a-platform/language-implementation-framework/), are themselves Java programs that run on the JVM.
46+
47+
#### Native Image
48+
[Native Image](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/enterprise-native-image/) is an innovative technology that compiles Java code into a standalone binary executable or a native shared library.
49+
The Java bytecode that is processed during the native image build includes all application classes, dependencies, third party dependent libraries, and any JDK classes that are required.
50+
A generated self-contained native executable is specific to each individual operating systems and machine architecture that does not require a JVM.
51+
52+
#### Java on Truffle
53+
[Java on Truffle](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/java-on-truffle/) is an implementation of the Java Virtual Machine Specification, built with the [Truffle language implementation framework](/en/graalvm/enterprise/{{ site.version }}/docs/graalvm-as-a-platform/language-implementation-framework/).
54+
It is a complete Java VM that includes all core components, implements the same API as the Java Runtime Environment library, and reuses all JARs and native libraries from GraalVM.
55+
Java on Trufle is an experimental technology in GraalVM, available as of version 21.0.0.
56+
57+
## Available Distributions
58+
59+
GraalVM Enterprise distributions are based on Oracle JDK 8, 11, and 16.
60+
GraalVM Enterprise releases include all Oracle Java critical patch updates (CPUs), which are released on a regular schedule to remedy defects and known vulnerabilities.
61+
62+
GraalVM Enterprise is available for Linux, macOS, and Windows platforms on x86 64-bit systems, and for Linux on ARM 64-bit system.
63+
The base GraalVM binary including all components is experimental on Linux/ARM and Windows.
64+
The GraalVM Enterprise distribution based on Oracle JDK 16 is experimental with [several known limitations](/en/graalvm/enterprise/{{ site.version }}/docs/release-notes/known-issues/).
65+
Depending on the platform, the distributions are shipped as *.tar.gz* or *.zip* archives.
66+
67+
## Supported Platforms
68+
69+
The following are the supported platforms for GraalVM Enterprise 21:
70+
71+
| Operating System | Version | Architecture | Installation Guide |
72+
|------------------------------------ |-------------- |-------------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
73+
| Oracle Linux on OCI | 6, 7, 8 | x86 64-bit | [GraalVM Enterprise Installation Guide on OCI](/en/graalvm/enterprise/{{ site.version }}/docs/getting-started/oci/compute-instances/) |
74+
| Oracle Linux | 6, 7, 8 | x86 64-bit, ARM 64-bit (experimental) | [GraalVM Enterprise Installation Guide for Linux](/en/graalvm/enterprise/{{ site.version }}/docs/getting-started/installation-linux/) |
75+
| Red Hat Enterprise Linux(RHEL) | 6, 7, 8 | x86 64-bit | [GraalVM Enterprise Installation Guide for Linux](/en/graalvm/enterprise/{{ site.version }}/docs/getting-started/installation-linux/) |
76+
| macOS | 10.13 (High Sierra), 10.14 (Mojave), 10.15 (Catalina), 11.2 (Big Sur) | x86 64-bit | [GraalVM Enterprise Installation Guide for macOS](/en/graalvm/enterprise/{{ site.version }}/docs/getting-started/installation-macos/) |
77+
| Windows | 10 | x86 64-bit | [GraalVM Enterprise Installation Guide for Windows](/en/graalvm/enterprise/{{ site.version }}/docs/getting-started/installation-windows/) |
78+
79+
80+
## Distribution Components List
81+
82+
GraalVM Enterprise consists of core and additional functionalities.
83+
84+
### Core Components
85+
**Runtimes**
86+
* Java HotSpot VM
87+
* JavaScript runtime
88+
* LLVM runtime
89+
90+
**Libraries (JAR files)**
91+
* GraalVM compiler - the top-tier JIT compiler
92+
* Polyglot API – the APIs for combining programming languages in a shared runtime
93+
94+
**Utilities**
95+
* JavaScript REPL with the JavaScript interpreter
96+
* `lli` tool to directly execute programs from LLVM bitcode
97+
* [GraalVM Updater](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/graalvm-updater/) to install additional functionalities
98+
99+
### Additional Functionalities
100+
GraalVM Enterprise core installation can be extended with more languages runtimes and utilities.
101+
102+
Tools/Utilities:
103+
104+
* [Native Image](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/enterprise-native-image/) -- a technology to compile an application ahead-of-time into a native platform executable.
105+
* [LLVM toolchain](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/llvm/) -- a set of tools and APIs for compiling native programs to bitcode that can be executed on GraalVM.
106+
* [Java on Truffle](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/java-on-truffle/) -- a JVM implementation built upon the [Truffle framework](/en/graalvm/enterprise/{{ site.version }}/docs/graalvm-as-a-platform/language-implementation-framework/) to run Java via a Java bytecode interpreter.
107+
108+
Runtimes:
109+
110+
* [Node.js](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/js/) -- the Node.js 14.16.1 runtime for JavaScript
111+
* [Python](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/python/) -- Python 3.8.5 compatible
112+
* [Ruby](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/ruby/) -- Ruby 2.7.2 compatible
113+
* [R](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/r/) -- GNU R 4.0.3 compatible
114+
* [GraalWasm](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/wasm/) -- WebAssembly (Wasm)
115+
116+
## Licensing and Support
117+
118+
Oracle GraalVM Enterprise Edition is licensed under the [Oracle Technology Network License Agreement for GraalVM Enterprise Edition](https://www.oracle.com/downloads/licenses/graalvm-otn-license.html) for developing, testing, prototyping, and demonstrating Your application.
119+
120+
For production use, GraalVM Enterprise is available as part of the [Oracle Java SE Subscription](https://www.oracle.com/uk/java/java-se-subscription/) which includes 24x7x365 [Oracle premier support](https://www.oracle.com/support/premier/) and the access to [My Oracle Support (MOS)](https://www.oracle.com/support/).
121+
122+
## Experimental and Early Adopter Features
123+
124+
Oracle GraalVM Enterprise Edition features are distributed as fully supported, early adopter, and experimental.
125+
126+
Experimental features are being considered for future versions of GraalVM Enterprise.
127+
They are not meant to be used in production and are not supported by Oracle.
128+
The development team welcomes feedback on experimental features, but users should be aware that experimental features might never be included in a final version, or might change significantly before being considered production-ready.
129+
130+
For more information, check the [Oracle Technology Network License Agreement for GraalVM Enterprise Edition](https://www.oracle.com/downloads/licenses/graalvm-otn-license.html).
131+
132+
The following table lists supported and experimental features in GraalVM Enterprise Edition 21 by platform.
133+
134+
| Feature | Linux AMD64 | Linux ARM64 | macOS | Windows |
135+
|--------------------|---------------|---------------|---------------|
136+
| Native Image | early adopter | experimental | early adopter | experimental |
137+
| LLVM runtime | supported | experimental | supported | not available |
138+
| LLVM toolchain | supported | experimental | supported | not available |
139+
| JavaScript | supported | experimental | supported | experimental |
140+
| Node.js | supported | experimental | supported | experimental |
141+
| Java on Truffle | experimental | not available | experimental | experimental |
142+
| Python | experimental | not available | experimental | not available |
143+
| Ruby | experimental | not available | experimental | not available |
144+
| R | experimental | not available | experimental | not available |
145+
| WebAssembly | experimental | experimental | experimental | experimental |
146+
147+
## What to Read Next
148+
149+
Users who are new to GraalVM Enterprise or have little experience using it, continue to [Getting Started with GraalVM Enterprise](/en/graalvm/enterprise/{{ site.version }}/docs/getting-started/).
150+
Download and install GraalVM Enterprise on your local machine, try running the examples provided in the guide, or test GraalVM Enterprise with your workload.
151+
We suggest you then look at more complex [Examples Applications](/en/graalvm/enterprise/{{ site.version }}/docs/examples/).
152+
153+
Developers, who have GraalVM Enterprise already installed or have experience using it in the past, can skip the getting started guide and proceed to the [Reference Manuals](/en/graalvm/enterprise/{{ site.version }}/docs/reference-manual/) for
154+
in-depth coverage of GraalVM Enterprise technologies.
281 KB
Loading
220 KB
Loading
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
layout: ohc
3+
permalink: /overview/
4+
---
5+
6+
# Oracle GraalVM Enterprise Edition
7+
8+
## Challenges Today’s Businesses Face
9+
10+
Today’s online global enterprises and microservices alike face the same needs:
11+
achieving better performance, and reducing ever-increasing infrastructure costs.
12+
The evolution from older, layered architectures to microservices requires new,
13+
innovative approaches to running a business either on premises or on the cloud.
14+
15+
Speed, dexterity, and leanness are key, then, to commanding the modern
16+
online marketplace.
17+
18+
## Faster, Leaner Applications
19+
20+
GraalVM Enterprise is a foundation for innovation and improvement for both large
21+
enterprise applications and microservices alike.
22+
23+
Built on trusted and secure Oracle Java SE, GraalVM Enterprise accelerates
24+
application performance while consuming fewer resources — improving application
25+
efficiency and reducing IT costs.
26+
27+
In data centers with ever-growing workloads, being able to service more
28+
requests with the same computing infrastructure reduces the need to purchase
29+
additional hardware. Thus GraalVM Enterprise’s reduction of required compute
30+
resources can lower capital cost expenditures on premise and lower operation
31+
costs on cloud.
32+
33+
GraalVM's key advantages:
34+
* Innovative compiler
35+
* Native Image technology
36+
* Language interoperability
37+
* Built on Oracle Java SE
38+
* Trusted Oracle support and updates
39+
40+
### Innovative Compiler
41+
GraalVM’s just-in-time (JIT) compiler accelerates the performance of any Java
42+
or JVM-based application - out of the box and without any code changes.
43+
44+
Across the board, applications running on GraalVM Enterprise exhibit lower
45+
latency. Request response times are reduced. Applications run faster, freeing up
46+
CPU and memory sooner, allowing them to handle other requests or other
47+
applications running on the same server.
48+
49+
### Native Image Technology
50+
GraalVM Enterprise also incorporates its optimizing compiler into an
51+
advanced ahead-of-time (AOT) compilation technology: Native Image. The industry-leading native
52+
image builder translates Java and JVM-based applications into native platform
53+
executables that enjoy incredibly fast startup times since the program initialization
54+
is done at build time so, when tasked, the application is already compiled.
55+
56+
Utilizing Native Image, Java applications consume a fraction of the resources
57+
they would if running on a JVM, making GraalVM Enterprise ideal for cloud
58+
deployments large and small.
59+
60+
### Language Interoperability
61+
GraalVM Enterprise breaks the barriers between programming languages.
62+
63+
Java is the most popular language for building enterprise applications but
64+
JavaScript, Python, Ruby, R, and other programming languages have carved out niches
65+
in specific areas, e.g., machine learning. Many have accompanying libraries that provide
66+
unique and valuable features. Hence, developers often use different languages
67+
for specialized applications.
68+
69+
GraalVM Enterprise provides high-performance runtime support for a number of
70+
languages beyond Java, allowing different languages and
71+
libraries to interoperate with no performance penalty. This improves developer
72+
productivity by letting them use the right language or library for a given task.
73+
74+
![](/img/polyglot_runtime.png)
75+
76+
*Figure 1. GraalVM Enterprise Polyglot Runtime*
77+
78+
Key to GraalVM Enterprise’s polyglot support is language compliance. For each of
79+
the supported languages, GraalVM Enterprise strictly adheres to the
80+
specification for each language and runs their compliance test suites to ensure
81+
compatibility.
82+
83+
GraalVM Enterprise also tracks changes through Oracle’s participation in a
84+
number of standards bodies like Ecma International. GraalVM innovations are in
85+
turn influencing specifications, like the recent announcement of the OpenJDK’s
86+
Project Leyden, which seeks to provide a standard specification for Java binary
87+
executables pioneered by the Native Image technology.
88+
89+
### Trusted Oracle Support and Updates
90+
GraalVM Enterprise customers take advantage of 24/7 access to the experienced GraalVM
91+
Enterprise support team who work closely with the Oracle Java support team.
92+
93+
GraalVM Enterprise releases include all Oracle Java critical patch updates
94+
(CPUs) which are released on a regular schedule to remedy defects and known
95+
vulnerabilities.
96+
97+
## Get Started with GraalVM Enterprise
98+
99+
[Get started with GraalVM Enterprise](/en/graalvm/enterprise/{{ site.version }}/docs/getting-started/) and:
100+
* reduce IT and storage costs
101+
* provide customers with quicker response time
102+
* employ fewer resources, freeing up CPU
103+
* enjoy seamless language interoperability
104+
* take advantage of full support
105+
* receive regularly scheduled updates
106+
* rest assured with the security and stability of Java
107+
108+
Test GraalVM Enterprise with your workload and see for yourself the advantages it brings.

docs/examples/examples.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
layout: docs
3+
toc_group: examples
4+
link_title: Examples
5+
permalink: /examples/
6+
---
7+
8+
# Example Applications
9+
10+
Here you will find example applications written in Java, JavaScript, R, Ruby, and other JVM languages to illustrate the diverse capabilities of GraalVM.
11+
12+
The GraalVM compiler, enabled by default in GraalVM, assures performance advantages for highly abstracted programs due to its versatile optimization techniques.
13+
Code using more abstraction and modern Java features like Streams or Lambdas will see even greater speedups.
14+
[Java Performance Examples](java-performance-examples.md) and [Java stream API Benchmark](java-simple-stream-benchmark.md) demonstrate this.
15+
16+
The [Polyglot JavaScript, Java, R Example Application](polyglot-javascript-java-r.md) displays GraalVM's abilities as a polyglot runtime, processing programs written in two or more languages.
17+
18+
The [Native Image Examples](native-image-examples.md) illustrate GraalVM's unique capabilities to create self-contained executable images that run remarkably fast.
19+
Here you can also find an even more sophisticated example of polyglot native executables.
20+
21+
The [Java/Kotlin Native Image Example](java-kotlin-aot.md) demonstrates how to compile a Java and Kotlin application ahead-of-time, and illustrates the performance gain.

0 commit comments

Comments
 (0)