enso/engine
Hubert Plociniczak d6d370925a
Removing dependencies to speed up startup (#10249)
Reducing the number of dependencies. Explicit `cats` are almost gone (present in `cli`). `enumeration` is completely gone.  `cats` is also still included implicitly via `io.circe` but that's a different kind of beast.
Also, really removed `jackson` from dependencies by fixing the dependency on `http-test-helper`.

# Important Notes
In a number of places importing all cats implicits could be simply replaced with a single or two method calls. Not to mention that this will reduce compilation times due to reduced implicit search space.

One example of how the changes affect performance (not only startup):

Before:
![Screenshot from 2024-06-11 12-05-24](https://github.com/enso-org/enso/assets/292128/a1a772a9-635d-4a16-a543-e2fd2124a22c)
Now:
![Screenshot from 2024-06-11 14-27-47](https://github.com/enso-org/enso/assets/292128/b17c7fcc-9a6d-48b9-8200-60708354ee03)
(frequently executed)

![Screenshot from 2024-06-12 12-46-34](https://github.com/enso-org/enso/assets/292128/31bc4dfd-4edc-45c9-9c5d-13e3472089b9)
Also appears to be gone.

This PR is by no means finished. The purge will continue in follow up PRs.
2024-06-12 18:15:36 +00:00
..
common/src/main/java/org/enso/common Towards simplifying runtime-compiler dependencies (#8894) 2024-04-25 10:03:42 +02:00
interpreter-dsl-test/src/test/java/org/enso/interpreter/dsl/test ydoc-server is a separate module (#10156) 2024-06-07 12:56:42 +02:00
language-server Removing dependencies to speed up startup (#10249) 2024-06-12 18:15:36 +00:00
launcher/src Open Java modules for Snowflake setup (#9664) 2024-04-16 21:01:32 +00:00
polyglot-api/src Replace Jackson serde (#10035) 2024-06-11 15:03:12 +00:00
polyglot-api-macros/src/main/scala/org/enso/polyglot/macros Replace Jackson serde (#10035) 2024-06-11 15:03:12 +00:00
runner Removing dependencies to speed up startup (#10249) 2024-06-12 18:15:36 +00:00
runtime shouldCreateClosureRootNode when valueHasSomeTypeCheck (#10262) 2024-06-12 14:04:50 +00:00
runtime-benchmarks/src/main Extract mutable builder from ModuleScope (#9914) 2024-06-05 16:57:08 +00:00
runtime-compiler/src Removing dependencies to speed up startup (#10249) 2024-06-12 18:15:36 +00:00
runtime-fat-jar/src/main/java ydoc-server is a separate module (#10156) 2024-06-07 12:56:42 +02:00
runtime-instrument-common/src Removing dependencies to speed up startup (#10249) 2024-06-12 18:15:36 +00:00
runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument Instrumentation, visualization and autoscoped constructors (#9452) 2024-04-03 12:14: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 Towards simplifying runtime-compiler dependencies (#8894) 2024-04-25 10:03:42 +02:00
runtime-integration-tests/src/test Presence of Any disables type checks (#10248) 2024-06-12 11:10:23 +00:00
runtime-language-arrow/src Implement and benchmark ArrowOperationPlus node (#10150) 2024-06-11 12:50:59 +00:00
runtime-language-epb/src Atom constructors can be private (#9692) 2024-04-29 14:43:18 +02:00
runtime-parser/src Fixes to Persistance (#10101) 2024-06-10 11:49:12 +00:00
runtime-suggestions/src/main/scala/org/enso/compiler/suggestions Implement private methods (#10060) 2024-05-31 08:00:20 +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.