enso/engine
Hubert Plociniczak 3755f90fef
Avoid ArrayIndexOutOfBoundsException with no args (#9393)
The `null` check creates a new Array but always assumed a non-empty one which may lead to
```
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at org.enso.runtime/org.enso.interpreter.service.ExecutionService$FunctionPointer.collectNotAppliedArguments(ExecutionService.java:778)
at org.enso.runtime/org.enso.interpreter.instrument.job.ProgramExecutionSupport$.sendExpressionUpdate(ProgramExecutionSupport.scala:430)
at org.enso.runtime/org.enso.interpreter.instrument.job.ProgramExecutionSupport$.$anonfun$executeProgram$3(ProgramExecutionSupport.scala:81)
at org.enso.runtime/org.enso.interpreter.service.ExecutionCallbacks.callOnComputedCallback(ExecutionCallbacks.java:146)
at
org.enso.runtime/org.enso.interpreter.service.ExecutionCallbacks.updateCachedResult(ExecutionCallbacks.java:117
...
```
Added a guard to prevent the exception. The flag will be useless anyway as we won't enter the for-loop in this case.

Appears to be introduced via #8743. Discovered while debugging #9389.
2024-03-15 10:44:30 +00:00
..
interpreter-dsl-test/src/test/java/org/enso/interpreter/dsl/test Update java formatter sbt plugin (#8543) 2023-12-15 14:45:23 +00:00
language-server Synchronize suggestions loading after the reconnect 2 (#9142) 2024-02-23 11:18:01 +00:00
launcher/src Drop inefficient SemVer implementation (#9089) 2024-02-22 09:59:09 +00:00
polyglot-api/src Reproduce Float-passing problem (#9201) 2024-03-14 19:35:18 +00:00
runner Drop inefficient SemVer implementation (#9089) 2024-02-22 09:59:09 +00:00
runtime Syntax Color and Debug JavaScript/Python in Enso Source (#9440) 2024-03-15 10:28:13 +01:00
runtime-benchmarks/src/main dry-run benchmarks exits when some benchmark fails (#9397) 2024-03-14 15:21:38 +00:00
runtime-compiler/src/main Add ascription type information to suggestions database (#9267) 2024-03-05 09:02:41 +00:00
runtime-fat-jar/src/main/java Edits are processed in the order of submission (#8787) 2024-01-22 23:05:41 +00:00
runtime-instrument-common/src Avoid ArrayIndexOutOfBoundsException with no args (#9393) 2024-03-15 10:44:30 +00:00
runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument Update java formatter sbt plugin (#8543) 2023-12-15 14:45:23 +00:00
runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument Introducing engine/runtime-compiler project (#8197) 2023-11-01 12:42:34 +01:00
runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument Edits are processed in the order of submission (#8787) 2024-01-22 23:05:41 +00:00
runtime-integration-tests/src/test Use to_display_text to preview warnings (#9325) 2024-03-08 12:32:15 +00:00
runtime-language-arrow/src Arrow builder is not an Array (#9358) 2024-03-13 14:37:41 +00:00
runtime-language-epb/src Syntax Color and Debug JavaScript/Python in Enso Source (#9440) 2024-03-15 10:28:13 +01:00
runtime-parser/src Autoscope syntax (#9372) 2024-03-12 19:31:16 +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.