mirror of
https://github.com/enso-org/enso.git
synced 2024-12-23 08:21:49 +03:00
35e5ed53d2
* Don't cancel aborted jobs immediately Rather than cancelling Futures that capture jobs' logic, this change introduces a two-level system: - interrupt all jobs softly via ThreadInterrupted at safepoints - if safepoint is not executed within some time period or it is but the job is still not cancelled, trigger a hard-interrupt by cancelling the job explicitly, if possible Closes #11084. * Only cancel Future when you mean it Soft-cancelling a future only to later call it with `mayInterrupt` set to `true` has no effect in the latter case. Changed the logic so that interrupting a Future will really enforce it. Ocassionally some commands should not attempt to run soft cancellations - we know they will re-execute the program. * Replace Thread.sleep with Future.get No while loops etc, it's much easier to reason about what is soft and hard interrupt supposed to do. * Better comments/logs * nit * PR review * Make test more robust |
||
---|---|---|
.. | ||
common/src | ||
interpreter-dsl-test/src/test/java/org/enso/interpreter/dsl/test | ||
language-server | ||
launcher/src | ||
polyglot-api/src | ||
polyglot-api-macros/src/main | ||
runner | ||
runner-common/src/main | ||
runtime | ||
runtime-benchmarks/src/main | ||
runtime-compiler/src | ||
runtime-instrument-common/src | ||
runtime-instrument-id-execution/src/main/java | ||
runtime-instrument-repl-debugger/src/main/java | ||
runtime-instrument-runtime-server/src/main/java | ||
runtime-integration-tests/src/test | ||
runtime-language-arrow/src | ||
runtime-language-epb/src | ||
runtime-parser/src | ||
runtime-suggestions/src/main | ||
runtime-test-instruments/src/main/java | ||
README.md |
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.