enso/engine
Pavel Marek 96bfcb3e63
Add compiler benchmarks (#9158)
Add compiler benchmarks to `engine/runtime-benchmarks`. All the benchmarks generate source code on the fly into `engine/runtime-benchmarks/target/bench-data` directory. Random data generators are set with the same seed. For the convenience of reviewers, I am attaching the benchmark sources in [bench-data.zip](https://github.com/enso-org/enso/files/14423372/bench-data.zip).

I have created benchmarks that measure the performance of a whole module compilation, and benchmarks that measure the performance of inline compilation. They directly call `run` and `runInline` methods on `org.enso.compiler.Compiler`.

# Important Notes
- The results will be available in https://enso-org.github.io/engine-benchmark-results/engine-benchs.html in a few days after the merge of this PR.
- The benchmark parameters are tweaked so that an average iteration takes less than 400 ms and more than 30 ms.
- Ensured that the benchmarks measure performance of the compiler, for example:
![image](https://github.com/enso-org/enso/assets/14013887/c870f4ad-1418-4812-85f2-ca9664711163)
2024-03-01 13:37:18 +00:00
..
interpreter-dsl-test/src/test/java/org/enso/interpreter/dsl/test Update java formatter sbt plugin (#8543) 2023-12-15 14:45:23 +00:00
language-server Synchronize suggestions loading after the reconnect 2 (#9142) 2024-02-23 11:18:01 +00:00
launcher/src Drop inefficient SemVer implementation (#9089) 2024-02-22 09:59:09 +00:00
polyglot-api/src Add support for positionalArgumentsExpressions of text visualizations (#9052) 2024-02-13 23:08:30 +00:00
runner Drop inefficient SemVer implementation (#9089) 2024-02-22 09:59:09 +00:00
runtime Fix matching JS strings (#9203) 2024-02-29 15:07:29 +00:00
runtime-benchmarks/src/main Add compiler benchmarks (#9158) 2024-03-01 13:37:18 +00:00
runtime-compiler/src/main Introduce hash seed to invaldiate caches (#9082) 2024-02-16 23:43:30 +00:00
runtime-fat-jar/src/main/java Edits are processed in the order of submission (#8787) 2024-01-22 23:05:41 +00:00
runtime-instrument-common/src Synchronize suggestions loading after the reconnect 2 (#9142) 2024-02-23 11:18:01 +00:00
runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument Update java formatter sbt plugin (#8543) 2023-12-15 14:45:23 +00:00
runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument Introducing engine/runtime-compiler project (#8197) 2023-11-01 12:42:34 +01:00
runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument Edits are processed in the order of submission (#8787) 2024-01-22 23:05:41 +00:00
runtime-integration-tests/src/test Drop inefficient SemVer implementation (#9089) 2024-02-22 09:59:09 +00:00
runtime-language-arrow/src Arrow language (#8512) 2024-01-12 18:19:36 +00:00
runtime-language-epb/src Update java formatter sbt plugin (#8543) 2023-12-15 14:45:23 +00:00
runtime-parser/src Introduce hash seed to invaldiate caches (#9082) 2024-02-16 23:43:30 +00:00
runtime-test-instruments/src/main/java Binary operator resolution based on that value (#8779) 2024-01-27 08:38:47 +01: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.