enso/project
Pavel Marek 5a7ad6bfe4
Upgrade enso to GraalVM for jdk 21 (#7991)
Upgrade to GraalVM JDK 21.
```
> java -version
openjdk version "21" 2023-09-19
OpenJDK Runtime Environment GraalVM CE 21+35.1 (build 21+35-jvmci-23.1-b15)
OpenJDK 64-Bit Server VM GraalVM CE 21+35.1 (build 21+35-jvmci-23.1-b15, mixed mode, sharing)
```

With SDKMan, download with `sdk install java 21-graalce`.

# Important Notes
- After this PR, one can theoretically run enso with any JRE with version at least 21.
- Removed `sbt bootstrap` hack and all the other build time related hacks related to the handling of GraalVM distribution.
- `project-manager` remains backward compatible - it can open older engines with runtimes. New engines now do no longer require a separate runtime to be downloaded.
- sbt does not support compilation of `module-info.java` files in mixed projects - https://github.com/sbt/sbt/issues/3368
- Which means that we can have `module-info.java` files only for Java-only projects.
- Anyway, we need just a single `module-info.class` in the resulting `runtime.jar` fat jar.
- `runtime.jar` is assembled in `runtime-with-instruments` with a custom merge strategy (`sbt-assembly` plugin). Caching is disabled for custom merge strategies, which means that re-assembly of `runtime.jar` will be more frequent.
- Engine distribution contains multiple JAR archives (modules) in `component` directory, along with `runner/runner.jar` that is hidden inside a nested directory.
- The new entry point to the engine runner is [EngineRunnerBootLoader](https://github.com/enso-org/enso/pull/7991/files#diff-9ab172d0566c18456472aeb95c4345f47e2db3965e77e29c11694d3a9333a2aa) that contains a custom ClassLoader - to make sure that everything that does not have to be loaded from a module is loaded from `runner.jar`, which is not a module.
- The new command line for launching the engine runner is in [distribution/bin/enso](https://github.com/enso-org/enso/pull/7991/files#diff-0b66983403b2c329febc7381cd23d45871d4d555ce98dd040d4d1e879c8f3725)
- [Newest version of Frgaal](https://repo1.maven.org/maven2/org/frgaal/compiler/20.0.1/) (20.0.1) does not recognize `--source 21` option, only `--source 20`.
2023-11-17 18:02:36 +00:00
..
src/main/scala/licenses Make reading the license files case insensitive. (#7725) 2023-09-20 23:17:06 +02:00
BenchTasks.scala Bump SBT and Scalafmt (#1203) 2020-10-22 16:12:28 +02:00
build.properties Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
BuildInfo.scala Fix warnings in SBT build (#8026) 2023-10-12 08:19:45 +00:00
Cargo.scala Use SimpleFormatter.formatMessage to replace {0} with actual parameters (#5870) 2023-03-11 00:15:58 +00:00
CustomLogManager.scala Use SimpleFormatter.formatMessage to replace {0} with actual parameters (#5870) 2023-03-11 00:15:58 +00:00
Distribution.scala Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
DistributionPackage.scala Upgrade enso to GraalVM for jdk 21 (#7991) 2023-11-17 18:02:36 +00:00
Editions.scala Separating Redshift connector from Database library into a new AWS library (#6550) 2023-05-04 17:36:51 +00:00
FrgaalJavaCompiler.scala Upgrade enso to GraalVM for jdk 21 (#7991) 2023-11-17 18:02:36 +00:00
GatherLicenses.scala Register instruments/language in their own compilation units to fix the sbt build issues (#3509) 2022-06-13 14:09:08 +00:00
GenerateFlatbuffers.scala Use SimpleFormatter.formatMessage to replace {0} with actual parameters (#5870) 2023-03-11 00:15:58 +00:00
GraalVM.scala Upgrade enso to GraalVM for jdk 21 (#7991) 2023-11-17 18:02:36 +00:00
JPMSUtils.scala Upgrade enso to GraalVM for jdk 21 (#7991) 2023-11-17 18:02:36 +00:00
LauncherShimsForTest.scala Use SimpleFormatter.formatMessage to replace {0} with actual parameters (#5870) 2023-03-11 00:15:58 +00:00
LibraryManifestGenerator.scala Upgrade enso to GraalVM for jdk 21 (#7991) 2023-11-17 18:02:36 +00:00
NativeImage.scala Upgrade enso to GraalVM for jdk 21 (#7991) 2023-11-17 18:02:36 +00:00
Platform.scala Optimize import/export resolution (#5700) 2023-03-01 08:53:29 +00:00
plugins.sbt Upgrade enso to GraalVM for jdk 21 (#7991) 2023-11-17 18:02:36 +00:00
RecompileParser.scala New documentation parser (#5917) 2023-03-15 15:43:51 +00:00
SPIHelpers.scala Fix incremental compilation of SPI in Java helper libraries (#8129) 2023-10-23 09:14:35 +00:00
StdBits.scala Upgrade enso to GraalVM for jdk 21 (#7991) 2023-11-17 18:02:36 +00:00
VerifyReflectionSetup.scala Fix the project manager reflection configuration (#1394) 2021-01-14 10:46:01 +00:00
WithDebugCommand.scala sbt runEngineDistribution --debug to ease debuggging (#6745) 2023-05-18 15:00:52 +02:00