enso/engine
Kaz Wesley 4d4a2990a0
Distinguish assignment/thunk by statement context (#11324)
Align `Assignment`/`Function` distinction in AST with compiler's implemented semantics:
- The ambiguous case `funcOrVar = expression` is now parsed as a `Function` when in a `Type` definition or in the top level of a module. I.e. it is an `Assignment` in contexts where the RHS is evaluated immediately when the binding is evaluated, and a `Function` in contexts where the RHS is evaluated each time the bound name is evaluated.
- `Assignment` statements now may only occur in function bodies.

Correcting this distinction lays the groundwork for #11302.

Other changes:
- Fixed incorrect source code locations for negative literals and negated expressions.

# Important Notes
New APIs:
- The parser now exposes a `parse_block` entry point, which allows parsing input lines as if in the body of a function. The previous entry point has been renamed to `parse_module`.
2024-10-18 17:54:55 +00:00
..
common/src Node added inside collapsed node is never executed (#11341) 2024-10-18 14:19:50 +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 Improve CI feedback when directory is missing (#10608) 2024-10-09 16:58:42 +02: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 Make sure unrecognized CLI command message is printed (#11357) 2024-10-18 17:13:02 +02:00
runner-common/src/main engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime Yield UnsupportedMessageException when context isn't accessible (#11334) 2024-10-16 14:14:27 +02:00
runtime-benchmarks/src/main WithWarnings uses EnsoHashMap to speed things up (#10555) 2024-08-07 15:29:57 +00:00
runtime-compiler/src Distinguish assignment/thunk by statement context (#11324) 2024-10-18 17:54:55 +00:00
runtime-instrument-common/src Node added inside collapsed node is never executed (#11341) 2024-10-18 14:19:50 +00: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 Distinguish assignment/thunk by statement context (#11324) 2024-10-18 17:54:55 +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 engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime-parser/src Distinguish assignment/thunk by statement context (#11324) 2024-10-18 17:54:55 +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.