mirror of
https://github.com/enso-org/enso.git
synced 2024-12-23 21:12:44 +03:00
c1259cb4d2
After a discussion, I was really curious that our panics are supposed to be almost free - and while trusting that statement, it was really hard to believe - so I wanted to see for myself - knowing that an experiment is the most robust source of this kind of information - testing that in practice. So I wrote a benchmark comparing various ways of reporting errors, also testing them both at 'shallow' and 'deep' stack traces (adding 200 additional frames) - to see how stack depth affects them, if at all. The panics are indeed blazing fast! Kudos to the engine team. However, it seems that our dataflow errors are relatively slow (and we tend to use them _more_ than panics and want to be using them more and more). This uncovers a possible optimization opportunity. Can we make them as fast as panics?? Analysis of the benchmark results in comment below. |
||
---|---|---|
.. | ||
benchmarks.md | ||
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.
- Benchmarks: Description of the benchmarking infrastructure used for measuring performance of the runtime.
- Logging: Description of an unified and centralized logging infrastructure that should be used by all components.