Turn all GraalVM Languages artifacts into standard Maven dependencies for Polyglot Embedders · Issue #6852 · oracle/graal (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Description
TL;DR
Currently, to use GraalVM languages as a polyglot embedder, you have to install languages using the GraalVM Updater tool (gu
).
In the future, we want to ship GraalPy, Graal.js, TruffleRuby, and other GraalVM languages entirely as Maven artifacts.
Polyglot embedders will need to depend on those artifacts using the application module path.
Goals
- The configuration of the application module path should be the same, whether you run on OpenJDK, Oracle JDK, or a GraalVM JDK.
- Languages can be picked up from the application module path and have priority over languages installed using GraalVM Updater.
- JVM built-in tools that support module dependencies like
jlink
work and are tested with GraalVM languages. - To prevent accidental use of internal APIs, Truffle and language implementations are isolated from the embedder using Java module-based isolation. This means that all GraalVM languages are migrated to Java modules.
- All Truffle artifacts, including non-open-source parts, are published as Maven artifacts.
- Backward and forward compatibility of all Truffle artifacts to the latest JDK LTS, starting with JDK 21.
- Truffle and its languages will continue to be versioned using a year-based versioning scheme. For example, GraalVM for JDK 21 will be compatible with version 23.1 of the GraalVM languages.
Non-Goals
- Implement extensions for standalone builds using Maven artifacts, e.g. to install new languages.
- Deprecate
gu
(see [GR-46219] Remove the GraalVM Updater #6855).