enso/docs/infrastructure
Jaroslav Tulach dc30e44b60
Register instruments/language in their own compilation units to fix the sbt build issues (#3509)
New plan to [fix the `sbt` build](https://www.pivotaltracker.com/n/projects/2539304/stories/182209126) and its annoying:
```
log.error(
"Truffle Instrumentation is not up to date, " +
"which will lead to runtime errors\n" +
"Fixes have been applied to ensure consistent Instrumentation state, " +
"but compilation has to be triggered again.\n" +
"Please re-run the previous command.\n" +
"(If this for some reason fails, " +
s"please do a clean build of the $projectName project)"
)
```
When it is hard to fix `sbt` incremental compilation, let's restructure our project sources so that each `@TruffleInstrument` and `@TruffleLanguage` registration is in individual compilation unit. Each such unit is either going to be compiled or not going to be compiled as a batch - that will eliminate the `sbt` incremental compilation issues without addressing them in `sbt` itself.

fa2cf6a33ec4a5b2e3370e1b22c2b5f712286a75 is the first step - it introduces `IdExecutionService` and moves all the `IdExecutionInstrument` API up to that interface. The rest of the `runtime` project then depends only on `IdExecutionService`. Such refactoring allows us to move the `IdExecutionInstrument` out of `runtime` project into independent compilation unit.
2022-06-13 14:09:08 +00:00
..
java-11.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
logging.md Add support for detailed logger configuration (#1745) 2021-05-19 09:02:32 +01:00
native-image.md Upgrade Truffle and Graal to Version 21.3.0 (#3258) 2022-02-11 19:05:13 +03:00
README.md Logging Service in the Launcher (#1169) 2020-10-02 18:17:21 +02:00
rust.md Bump GraalVM Version to 20.2.0 (#1094) 2020-08-28 13:03:09 +02:00
sbt.md Register instruments/language in their own compilation units to fix the sbt build issues (#3509) 2022-06-13 14:09:08 +00:00
upgrading-graalvm.md Enable the docker pipeline for releases (#1500) 2021-02-23 14:12:24 +00:00

layout title category tags order
section-summary Infrastructure infrastructure
infrastructure
readme
0

Infrastructure

The Enso runtime runs on the GraalVM which is a version of the JVM. This folder contains all documentation pertaining to Enso's infrastructure, which is broken up as follows:

  • sbt: The build tools that are used for building the project.
  • Java 11: Description of changes related to the Java 11 migration.
  • Native Image: Description of the Native Image build used for building the launcher native binary.
  • Rust: Description of integration of the Scala project with the Rust components.
  • Upgrading GraalVM: Description of steps that have to be performed by each developer when the project is upgraded to a new version of GraalVM.
  • Logging: Description of an unified and centralized logging infrastructure that should be used by all components.