mirror of
https://github.com/enso-org/enso.git
synced 2024-11-23 16:18:23 +03:00
dc30e44b60
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. |
||
---|---|---|
.. | ||
java-11.md | ||
logging.md | ||
native-image.md | ||
README.md | ||
rust.md | ||
sbt.md | ||
upgrading-graalvm.md |
layout | title | category | tags | order | ||
---|---|---|---|---|---|---|
section-summary | Infrastructure | infrastructure |
|
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.