enso/engine
Hubert Plociniczak 3d23e22c6f
Ensure execution is scheduled after compilation (#10883)
Scheduling of jobs is asynchronous and nothing prevents it from scheduling execution before compilation leading to stale nodes in GUI. The scenario is easily reproducible by adding a `Thread.sleep` before `EnsureCompiledJob` requests compilation locks.

This change ensures that execution is only scheduled after compilation is finished, when an edit request is being processed.

# Important Notes
This fix was prompted by me getting random stale nodes after edits:
![Screenshot from 2024-08-23 16-53-26](https://github.com/user-attachments/assets/2b017539-c4bf-4d42-b597-216d887a4f4c)
(it would never recover unless another edit was made)
2024-08-23 18:18:59 +00: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 Ensure clients get write capability (#10872) 2024-08-22 18:45:14 +02: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 Lazy Diagnostic storage allocation (#10852) 2024-08-23 17:48:25 +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 Lazy Diagnostic storage allocation (#10852) 2024-08-23 17:48:25 +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 Ensure execution is scheduled after compilation (#10883) 2024-08-23 18:18:59 +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 Lazy Diagnostic storage allocation (#10852) 2024-08-23 17:48:25 +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 Lazy Diagnostic storage allocation (#10852) 2024-08-23 17:48:25 +00:00
runtime-suggestions/src/main/scala/org/enso/compiler/suggestions Lazy Diagnostic storage allocation (#10852) 2024-08-23 17:48:25 +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.