mirror of
https://github.com/enso-org/enso.git
synced 2024-12-23 10:42:05 +03:00
5a7ad6bfe4
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`. |
||
---|---|---|
.. | ||
debugger | ||
distribution | ||
infrastructure | ||
language-server | ||
libraries | ||
parser | ||
polyglot | ||
profiler | ||
rfcs | ||
runtime | ||
security | ||
semantics | ||
style-guide | ||
syntax | ||
types | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
enso-philosophy.md | ||
getting-enso.md | ||
graalvm-m1-mac.md | ||
README.md | ||
runtime-guide.md | ||
runtime-roadmap.md | ||
SECURITY.md |
layout | title | category | tags | order | ||
---|---|---|---|---|---|---|
docs-index | Enso Engine Developer Documentation | summary |
|
0 |
Enso Engine Developer Documentation
This folder contains the documentation for the implementation of the Enso programming language. The documentation is broken up by subject, within the below-listed categories, and each subject combines information about the design, specification, and implementation of the feature to which it pertains.
We provide a number of useful resources for getting a quick understanding of the Enso project:
- The Enso Philosophy: Information on the design philosophy behind Enso, and why we build things in the way we do.
- Contributing Guidelines: Information for people wanting to contribute to Enso (in many different ways).
- Community Code of Conduct: The code of conduct for members of our community, developers and users alike.
- Security Guidelines: Security guidelines for the Enso project, including supported versions and our vulnerability reporting process.
- Getting Enso: Instructions for how to get and run a copy of Enso.
- Runtime Roadmap: An analysis of the pressing changes that should be made to the runtime.
- Runtime Guide: A tour of the runtime, and some pointers as to useful resources.
It is broken up into categories as follows:
- Distribution: Information on how we distribute Enso to our users, and how Enso packages themselves work.
- Language Server: Information on the Enso language server, its protocol, and how it integrates with the runtime.
- Polyglot: Information on Enso's polyglot functionality, and how it is integrated into the surface Enso language.
- RFCs: RFCs for Enso's development and evolution.
- Runtime: Specification and documentation of the way that the Enso runtime is designed and implemented.
- Semantics: A specification of Enso's semantics.
- Style Guides: Style guides for the code written as part of the Enso project.
- Syntax: A specification of Enso's syntax.
- Types: A specification of Enso's type system and type theory.
- Debugger: A specification of Enso's debugger.
- Parser: Design and specification of the Enso parser.
- Infrastructure: Description of the infrastructure for building Enso.
- Libraries: Description of Enso's Library Ecosystem.