enso/engine
Kaz Wesley 4cff789b69
Refactor precedence for whitespace changes (#10569)
Single-phase whitespace-aware precedence resolution.

#### Performance
![newplot(4)](https://github.com/user-attachments/assets/9822b0dc-17c3-4d2d-adf7-eb8b1c240522)
Since this is a major refactor of the core of the parser, I benchmarked it; it's about 3% faster.

# Important Notes
- Move operator-identifier recognition to lexer.
- Move compound-token assembly out of precedence resolver
2024-07-18 15:48:20 +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 Ignore ProcessBuilder logs (#10578) 2024-07-17 21:38:16 +00:00
launcher/src Renaming launcher executable to ensoup (#10535) 2024-07-16 14:30:23 +00:00
polyglot-api/src TextEdit with custom IdMap (#10283) 2024-06-15 18:03:18 +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 engine-runner shall not depend on language-server (#10536) 2024-07-12 17:17:07 +02:00
runner-common/src/main engine-runner shall not depend on language-server (#10536) 2024-07-12 17:17:07 +02:00
runtime Refactor: split IrToTruffle::processModule into smaller sub-methods (#10587) 2024-07-18 12:14:11 +00:00
runtime-benchmarks/src/main Add ExportImportResolutionBenchmark (#10043) 2024-07-15 10:38:05 +00:00
runtime-compiler/src Replace all from ... export all with explicit exports (#10369) 2024-07-11 19:34:25 +02: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 Reduce the number of log INFO events (#10500) 2024-07-17 14:29:48 +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 Refactor precedence for whitespace changes (#10569) 2024-07-18 15:48:20 +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 Replace all from ... export all with explicit exports (#10369) 2024-07-11 19:34:25 +02:00
runtime-suggestions/src/main/scala/org/enso/compiler/suggestions Extension methods can be exported by name (#10274) 2024-06-25 12:08:22 +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.