enso/engine
Hubert Plociniczak a65383a47b
Avoid copying IR nodes when no change is performed in passes (#10839)
* Reduce amount of IR copying

This PR ensures that we only perform IR copying when actually needed,
i.e. when one of the fields has changed.
Most of the changes should not be controversial except for equality
change in MetadataStorage. Without it, an empty pass metadata would be
treated as equal, therefore preventing duplication from happening.

* fmt

* missed a few spots

* Optimizations to copying

Avoid expensive computations for static methods.

* Avoid unnecessary unapply calls
2024-08-21 18:20:03 +02:00
..
common/src/main/java/org/enso/common Print out warnings associated with local variables (#10842) 2024-08-21 07:00:54 +00:00
interpreter-dsl-test/src/test/java/org/enso/interpreter/dsl/test WithWarnings uses EnsoHashMap to speed things up (#10555) 2024-08-07 15:29:57 +00:00
language-server Propagate FS errors when creating a new project (#10708) 2024-08-05 10:58:03 +00:00
launcher/src Relative paths are relative to current project locally and in Cloud (#10660) 2024-07-31 09:43:17 +00:00
polyglot-api/src Print out warnings associated with local variables (#10842) 2024-08-21 07:00:54 +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 Print out warnings associated with local variables (#10842) 2024-08-21 07:00:54 +00:00
runner-common/src/main ContextFactory reused to initialize language-server context (#10670) 2024-07-29 09:49:14 +02:00
runtime Print out warnings associated with local variables (#10842) 2024-08-21 07:00:54 +00:00
runtime-benchmarks/src/main WithWarnings uses EnsoHashMap to speed things up (#10555) 2024-08-07 15:29:57 +00:00
runtime-compiler/src Avoid copying IR nodes when no change is performed in passes (#10839) 2024-08-21 18:20:03 +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 Various fixes to visualizations (#10745) 2024-08-13 15:20:55 +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 Print out warnings associated with local variables (#10842) 2024-08-21 07:00:54 +00: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 Avoid copying IR nodes when no change is performed in passes (#10839) 2024-08-21 18:20:03 +02: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 Avoid copying IR nodes when no change is performed in passes (#10839) 2024-08-21 18:20:03 +02:00
runtime-suggestions/src/main/scala/org/enso/compiler/suggestions Avoid copying IR nodes when no change is performed in passes (#10839) 2024-08-21 18:20:03 +02: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.