enso/engine
Pavel Marek 9a49a02e3f
--jvm tries to find Java executable system-wide. (#11500)
Fixes `--jvm` option, given to the native image. This was failing on my machine, because when given `--jvm` option, the runner was trying to find the `java` executable from the distribution manager's runtime (on my system located in `~/.local/share/enso/runtime`) and it used the first runtime found. But the first runtime on my system is JDK 17.

The `--jvm` option now tries to:
- Find a JDK from the distribution manager that has the same version as the JDK used for building the engine.
- If there is not an exact version match, it tries to find a runtime from distribution manager that is *newer*.
- If none, fallback to system-wide search
- System-wide search tries to find `java` from `$JAVA_HOME` and from `$PATH`. But this is just a fallback.

# Important Notes
- Added test to Engine CI jobs that pass `--jvm` argument to a native image of engine-runner
- ea3af5ffbc
- `runtime-version-manager` sbt project migrated to a JPMS module
- `engine-runner` now depends on `runtime-version-manager`.
- Removed unnecessary stuff in `runtime-version-manager` dealing with outdated `gu` Graal Updater utility.
- Extracted [GraalVersionManager](1455b025cb/lib/scala/runtime-version-manager/src/main/java/org/enso/runtimeversionmanager/components/GraalVersionManager.java) from [RuntimeVersionManager](d2e8994700/lib/scala/runtime-version-manager/src/main/scala/org/enso/runtimeversionmanager/components/RuntimeVersionManager.scala)
2024-11-18 22:44:54 +00:00
..
common/src Reload insight script on file change (#11415) 2024-10-28 09:17:53 +00:00
interpreter-dsl-test/src/test/java/org/enso/interpreter/dsl/test WithWarnings uses EnsoHashMap to speed things up (#10555) 2024-08-07 15:29:57 +00:00
language-server Revert disabling of polyglot Ydoc (#11544) 2024-11-13 16:04:13 +01:00
launcher/src --jvm tries to find Java executable system-wide. (#11500) 2024-11-18 22:44:54 +00:00
polyglot-api/src Run node in a different execution environment (#11173) 2024-10-09 12:09:45 +00:00
polyglot-api-macros/src/main engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runner --jvm tries to find Java executable system-wide. (#11500) 2024-11-18 22:44:54 +00:00
runner-common/src/main engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime Rename unqualified method calls (#11556) 2024-11-15 13:10:57 +00:00
runtime-benchmarks/src/main Convert Array_Like_Helpers.map to a builtin to reduce stack size (#11363) 2024-11-06 11:14:48 +00:00
runtime-compiler/src Rename unqualified method calls (#11556) 2024-11-15 13:10:57 +00:00
runtime-instrument-common/src Don't cancel aborted jobs immediately (#11375) 2024-11-05 10:33:02 +01:00
runtime-instrument-id-execution/src/main/java Run node in a different execution environment (#11173) 2024-10-09 12:09:45 +00:00
runtime-instrument-repl-debugger/src/main/java engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime-instrument-runtime-server/src/main/java engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime-integration-tests/src/test Rename unqualified method calls (#11556) 2024-11-15 13:10:57 +00:00
runtime-language-arrow/src Avoid dependency on org.graalvm.collections (#11107) 2024-09-17 11:25:18 +00:00
runtime-language-epb/src Use enso.dev.insight property to turn Insight on (#11385) 2024-10-24 13:56:28 +02:00
runtime-parser/src Rename unqualified method calls (#11556) 2024-11-15 13:10:57 +00:00
runtime-suggestions/src/main Eliminate scala.Some allocations (#11259) 2024-10-09 08:54:37 +00:00
runtime-test-instruments/src/main/java Ensure wrapper projects are listed in aggregates (#11323) 2024-10-14 20:46:08 +02:00
README.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00

The Enso Engine

The Enso engine is the codebase responsible for compiling and executing Enso code, as well as providing language server functionality to users of the language. It is subdivided into two major components:

  • Language Server: The Enso language service.
  • Polyglot API: The truffle-boundary safe API for communication between the language server and the runtime.
  • Runner: The command-line interface for Enso.
  • Runtime: The compiler and interpreter for Enso.