enso/engine
Jaroslav Tulach 67db825587
MetadataStorage is mutable - structural equals in copy isn't enough (#11513)
`MetadataStorage` is mutable. Using `Object.equals` in `IR.copy` methods to check whether a _copy is needed_ isn't enough. The fact that two storages are `Object.equal` may be just temporary. Replacing the checks in 69 `IR.copy` methods with identity check - e.g. `ne` in Scala which is `==` in Java.

Using proper structural check inside of `MetadataStorage` fixes #11171.

# Important Notes
I [used this regex](https://github.com/enso-org/enso/issues/11171#issuecomment-2463908932) to find out 69 instances of `IR.copy`:

![69 copy methods](https://github.com/user-attachments/assets/257580b9-54fc-4199-88ad-a22103b0041f)

and I modified all 69 of them.
2024-11-08 17:29:41 +00:00
..
common/src Reload insight script on file change (#11415) 2024-10-28 09:17:53 +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 Don't cancel aborted jobs immediately (#11375) 2024-11-05 10:33:02 +01:00
launcher/src Improve CI feedback when directory is missing (#10608) 2024-10-09 16:58:42 +02:00
polyglot-api/src Run node in a different execution environment (#11173) 2024-10-09 12:09:45 +00:00
polyglot-api-macros/src/main engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runner Fix logging in CLI (#11472) 2024-11-07 16:03:19 +01:00
runner-common/src/main engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime Convert Array_Like_Helpers.map to a builtin to reduce stack size (#11363) 2024-11-06 11:14:48 +00:00
runtime-benchmarks/src/main Convert Array_Like_Helpers.map to a builtin to reduce stack size (#11363) 2024-11-06 11:14:48 +00:00
runtime-compiler/src Implement proper hash and equals for FrameVariableNames (#11512) 2024-11-08 16:25:28 +01:00
runtime-instrument-common/src Don't cancel aborted jobs immediately (#11375) 2024-11-05 10:33:02 +01:00
runtime-instrument-id-execution/src/main/java Run node in a different execution environment (#11173) 2024-10-09 12:09:45 +00:00
runtime-instrument-repl-debugger/src/main/java engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime-instrument-runtime-server/src/main/java engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime-integration-tests/src/test MetadataStorage is mutable - structural equals in copy isn't enough (#11513) 2024-11-08 17:29:41 +00:00
runtime-language-arrow/src Avoid dependency on org.graalvm.collections (#11107) 2024-09-17 11:25:18 +00:00
runtime-language-epb/src Use enso.dev.insight property to turn Insight on (#11385) 2024-10-24 13:56:28 +02:00
runtime-parser/src MetadataStorage is mutable - structural equals in copy isn't enough (#11513) 2024-11-08 17:29:41 +00:00
runtime-suggestions/src/main Eliminate scala.Some allocations (#11259) 2024-10-09 08:54:37 +00:00
runtime-test-instruments/src/main/java Ensure wrapper projects are listed in aggregates (#11323) 2024-10-14 20:46:08 +02: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.