Skip to content

Commit

Permalink
[GR-35621] Address 404 when running ruby check_links.rb in cpu/graal-…
Browse files Browse the repository at this point in the history
…vm/21.3.

PullRequest: graal/10551
  • Loading branch information
olyagpl committed Dec 20, 2021
2 parents bfbde8e + 15d324e commit 308e018
Show file tree
Hide file tree
Showing 80 changed files with 924 additions and 1,173 deletions.
55 changes: 27 additions & 28 deletions docs/enterprise-overview/architecture-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ It is designed to accelerate the execution of applications written in Java and o
GraalVM Enterprise's polyglot capabilities make it possible to mix multiple programming languages in a single application while eliminating any foreign language call costs.

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.
The conceptual overview and advantages of GraalVM Enterprise are described on the [Solutions Overview](https://docs.oracle.com/en/graalvm/enterprise/21/docs/overview/) page.
The conceptual overview and advantages of GraalVM Enterprise are described on the [Solutions Overview](solutions-overview.md) page.

* [GraalVM Enterprise Architecture](#graalvm-enterprise-architecture)
* [Runtime Modes](#runtime-modes)
* [Available Distributions](#available-distributions)
* [Supported Platforms](#supported-platforms)
* [Certified Platforms](#certified-platforms)
* [Distribution Components List](#distribution-components-list)
* [Licensing and Support](#licensing-and-support)
* [Experimental and Early Adopter Features](#experimental-and-early-adopter-features)
Expand All @@ -29,38 +29,38 @@ The conceptual overview and advantages of GraalVM Enterprise are described on th

The preceding diagram illustrates a complete high-level architecture of GraalVM Enterprise.

GraalVM adds an [advanced just-in-time (JIT) optimizing compiler](/reference-manual/compiler/), which is written in Java, to the HotSpot Java Virtual Machine.
GraalVM adds an [advanced just-in-time (JIT) optimizing compiler](../reference-manual/compiler.md), which is written in Java, to the HotSpot Java Virtual Machine.

In addition to running Java and JVM-based languages, GraalVM's [Truffle language implementation framework](/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.
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.
In addition to running Java and JVM-based languages, [GraalVM's language implementation framework (Truffle)](../../truffle/docs/README.md), makes it possible to run JavaScript, Ruby, Python, and a number of other popular languages on the JVM.
With Truffle, Java and other supported languages can directly interoperate with each other and pass data back and forth in the same memory space.

## Runtime Modes

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).

#### JVM Runtime Mode
When running programs on the HotSpot JVM, GraalVM defaults to the [GraalVM compiler](/reference-manual/compiler/) as the top-tier JIT compiler.
When running programs on the HotSpot JVM, GraalVM defaults to the [GraalVM compiler](../reference-manual/compiler.md) as the top-tier JIT compiler.
At runtime, an application is loaded and executed normally on the JVM.
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.
Interpreters for supported languages, written on top of the [Truffle framework](/graalvm-as-a-platform/language-implementation-framework/), are themselves Java programs that run on the JVM.
Interpreters for supported languages, written on top of the [Truffle framework](../../truffle/docs/README.md), are themselves Java programs that run on the JVM.

#### Native Image
[Native Image](/reference-manual/native-image/) is an innovative technology that compiles Java code into a standalone binary executable or a native shared library.
[Native Image](../reference-manual/native-image/README.md) is an innovative technology that compiles Java code into a standalone binary executable or a native shared library.
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.
A generated self-contained native executable is specific to each individual operating systems and machine architecture that does not require a JVM.

#### Java on Truffle
[Java on Truffle](/reference-manual/java-on-truffle/) is an implementation of the Java Virtual Machine Specification, built with the [Truffle language implementation framework](/graalvm-as-a-platform/language-implementation-framework/).
[Java on Truffle](../reference-manual/java-on-truffle/README.md) is an implementation of the Java Virtual Machine Specification, built with the [Truffle framework](../../truffle/docs/README.md).
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.
Java on Trufle is an experimental technology in GraalVM, available as of version 21.0.0.

## Available Distributions

GraalVM Enterprise distributions are based on Oracle JDK 8, 11, and 16.
GraalVM Enterprise distributions are based on Oracle JDK 8, 11, and 17.
GraalVM Enterprise releases include all Oracle Java critical patch updates (CPUs), which are released on a regular schedule to remedy defects and known vulnerabilities.

GraalVM Enterprise is available for Linux, macOS, and Windows platforms on x86 64-bit systems, and for Linux on ARM 64-bit system.
The GraalVM Enterprise distribution based on Oracle JDK 16 is experimental with [several known limitations](https://docs.oracle.com/en/graalvm/enterprise/21/docs/overview/known-issues/).
The GraalVM Enterprise distribution based on Oracle JDK 17 is experimental with [several known limitations](https://docs.oracle.com/en/graalvm/enterprise/21/docs/overview/known-issues/).
Depending on the platform, the distributions are shipped as *.tar.gz* or *.zip* archives.

## Certified Platforms
Expand All @@ -69,10 +69,10 @@ The following are the certified platforms for GraalVM Enterprise 21:

| Operating System | Version | Architecture | Installation Guide |
|------------------------------------ |-------------- |-------------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Oracle Linux | 7, 8 | x86 64-bit, ARM 64-bit | [Installation Guide for Linux](/getting-started/installation-linux/) |
| Red Hat Enterprise Linux(RHEL) | 7, 8 | x86 64-bit | [Installation Guide for Linux](/getting-started/installation-linux/) |
| macOS | 10.14 (Mojave), 10.15 (Catalina) | x86 64-bit | [Installation Guide for macOS](/getting-started/installation-macos/) |
| Microsoft Windows | Server 2016, 2019 | x86 64-bit | [Installation Guide for Windows](/getting-started/installation-windows/) |
| Oracle Linux | 7, 8 | x86 64-bit, ARM 64-bit | [Installation Guide for Linux](../getting-started/graalvm-enterprise/oci/compute-instances.md) |
| Red Hat Enterprise Linux(RHEL) | 7, 8 | x86 64-bit | [Installation Guide for Linux](../getting-started/graalvm-enterprise/installation-linux.md) |
| macOS | 10.14 (Mojave), 10.15 (Catalina) | x86 64-bit | [Installation Guide for macOS](../getting-started/graalvm-enterprise/installation-macos.md) |
| Microsoft Windows | Server 2016, 2019 | x86 64-bit | [Installation Guide for Windows](../getting-started/graalvm-enterprise/installation-windows.md) |

## Distribution Components List

Expand All @@ -91,24 +91,24 @@ GraalVM Enterprise consists of core and additional functionalities.
**Utilities**
* JavaScript REPL with the JavaScript interpreter
* `lli` tool to directly execute programs from LLVM bitcode
* [GraalVM Updater](/reference-manual/graalvm-updater/) to install additional functionalities
* [GraalVM Updater](../reference-manual/graalvm-updater.md) to install additional functionalities

### Additional Functionalities
GraalVM Enterprise core installation can be extended with more languages runtimes and utilities.

Tools/Utilities:

* [Native Image](/reference-manual/native-image/) -- a technology to compile an application ahead-of-time into a native platform executable.
* [LLVM toolchain](/reference-manual/llvm/) -- a set of tools and APIs for compiling native programs to bitcode that can be executed on GraalVM.
* [Java on Truffle](/reference-manual/java-on-truffle/) -- a JVM implementation built upon the [Truffle framework](/graalvm-as-a-platform/language-implementation-framework/) to run Java via a Java bytecode interpreter.
* [Native Image](../reference-manual/native-image/README.md) -- a technology to compile an application ahead-of-time into a native platform executable.
* [LLVM toolchain](../reference-manual/llvm/README.md) -- a set of tools and APIs for compiling native programs to bitcode that can be executed on GraalVM.

Runtimes:

* [Node.js](/reference-manual/js/) -- the Node.js 14.16.1 runtime for JavaScript
* [Python](/reference-manual/python/) -- Python 3.8.5 compatible
* [Ruby](/reference-manual/ruby/) -- Ruby 2.7.3 compatible
* [R](/reference-manual/r/) -- GNU R 4.0.3 compatible
* [GraalWasm](/reference-manual/wasm/) -- WebAssembly (Wasm)
* [Java on Truffle](../reference-manual/java-on-truffle/README.md) -- a JVM implementation built upon the [Truffle framework](../../truffle/docs/README.md) to run Java via a Java bytecode interpreter.
* [Node.js](../reference-manual/js/README.md) -- the Node.js 14.17.6 runtime for JavaScript
* [Python](../reference-manual/python/README.md) -- Python 3.8.5 compatible
* [Ruby](../reference-manual/ruby/README.md) -- Ruby 2.7.3 compatible
* [R](../reference-manual/r/README.md) -- GNU R 4.0.3 compatible
* [GraalWasm](../reference-manual/wasm/README.md) -- WebAssembly (Wasm)

## Licensing and Support

Expand Down Expand Up @@ -143,9 +143,8 @@ The following table lists supported and experimental features in GraalVM Enterpr

## What to Read Next

Users who are new to GraalVM Enterprise or have little experience using it, continue to [Getting Started with GraalVM Enterprise](/getting-started//#install-graalvm-enterprise).
Users who are new to GraalVM Enterprise or have little experience using it, continue to [Getting Started with GraalVM Enterprise](../getting-started/graalvm-enterprise/get-started-graalvm-enterprise.md).
Download and install GraalVM Enterprise on your local machine, try running the examples provided in the guide, or test GraalVM Enterprise with your workload.
We suggest you then look at more complex [Examples Applications](/docs/examples/).
We suggest you then look at more complex [Examples Applications](../examples/examples.md).

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](/reference-manual/) for
in-depth coverage of GraalVM Enterprise technologies.
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](../reference-manual/reference-manuals.md) for in-depth coverage of GraalVM Enterprise technologies.
2 changes: 1 addition & 1 deletion docs/enterprise-overview/solutions-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ vulnerabilities.

## Get Started with GraalVM Enterprise

[Get started with GraalVM Enterprise](/getting-started/) and:
[Get started with GraalVM Enterprise](../getting-started/graalvm-enterprise/get-started-graalvm-enterprise.md) and:
* reduce IT and storage costs
* provide customers with quicker response time
* employ fewer resources, freeing up CPU
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/java-kotlin-aot.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export GRAALVM_HOME=/Users/${current_user}/path/to/graalvm/Contents/Home
```
Note that your paths are likely to be different depending on the download location.

3. [Install Native Image](../reference-manual/native-image/README.md/#install-native-image) to make use of the `native-image` utility.
3. [Install Native Image](../reference-manual/native-image/README.md#install-native-image) to make use of the `native-image` utility.

4. Then execute:
```shell
Expand Down
6 changes: 4 additions & 2 deletions docs/examples/mle-oracle.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ END;
/
```

Please also note the EXCEPTION clause which makes sure that the context gets dropped either way. This is important to avoid resource leakage.
Note: There is the `EXCEPTION` clause which makes sure that the context gets dropped either way. This is important to avoid resource leakage.

2. Now here's an example that shows how values can be passed between PL/SQL and MLE. As expected, the output is `49`:
2. Now here is an example that shows how values can be passed between PL/SQL and MLE. As expected, the output is `49`:
```sql
SET SERVEROUTPUT ON;
DECLARE
Expand Down Expand Up @@ -139,6 +139,7 @@ END;
```

## Type Conversions

Let us now have a closer look at conversions from Oracle types (as retrieved by SQL queries) to JavaScript types.

By default, Oracle data types get automatically converted to regular, native JavaScript types, which can lead to a loss of precision.
Expand Down Expand Up @@ -249,6 +250,7 @@ END;
```

## Further Reading

Here is a set of resources that we recommend for further reading about MLE:
- [Multilingual Engine: Executing JavaScript in Oracle Database](https://medium.com/graalvm/mle-executing-javascript-in-oracle-database-c545feb1a010) provides further insight into the MLE architecture based on GraalVM.
- [MLE and the Future of Server-Side Programming in Oracle APEX](https://blogs.oracle.com/apex/mle-and-the-future-of-server-side-programming-in-oracle-apex) shows step-by-step how to set up a free Oracle Cloud account, provision a database instance and run some JavaScript code in Oracle APEX (powered by MLE).
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/native-image-examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export GRAALVM_HOME=/Users/${current_user}/path/to/graalvm/Contents/Home
```
Note that your paths are likely to be different depending on the download location.

3. [Install Native Image](../reference-manual/native-image/README.md/#install-native-image) to make use of the `native-image` utility.
3. [Install Native Image](../reference-manual/native-image/README.md#install-native-image) to make use of the `native-image` utility.

4. Then execute:
```shell
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/polyglot-javascript-java-r.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ git clone https://github.com/graalvm/graalvm-demos
cd graalvm-demos/polyglot-javascript-java-r
```

2. [Install GraalVM](/docs/getting-started/#install-graalvm) on your platform.
2. [Install GraalVM](../getting-started/graalvm-community/get-started-graalvm-community.md#install-graalvm) on your platform.

3. To run the demo, you need to enable Node.js support in GraalVM:
```shell
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,8 @@ bash-4.4#
```

Please note that the image contains only the components immediately available in the GraalVM Community core download.
However, the [GraalVM Updater](/reference-manual/graalvm-updater/) utility is on the `PATH` and you can install the support for additional languages and runtimes like Node.js, Ruby, R, Python or WebAssembly at will.
However, the [GraalVM Updater, `gu`](../../../reference-manual/graalvm-updater.md), utility is included in the container image and may be used to install additional languages and runtimes like Node.js, Ruby, R, Python or WebAssembly.

However, the [GraalVM Updater, `gu`](/reference-manual/graalvm-updater/), utility is included in the container image and may be used to install additional languages and runtimes like Node.js, Ruby, R, Python or WebAssembly.
For example, the following command installs the Ruby support (the output below is truncated for brevity):

```shell
Expand Down
Loading

0 comments on commit 308e018

Please sign in to comment.