enso/engine
Hubert Plociniczak ae0889e843
Make ArrayOverBuffer behave like an Array/Array.sort no longer mutates the Array (#4022)
Most of the problems with accessing `ArrayOverBuffer` have been resolved by using `CoerceArrayNode` (https://github.com/enso-org/enso/pull/3817). In `Array.sort` we still however specialized on Array which wasn't compatible with `ArrayOverBuffer`. Similarly sorting JS or Python arrays wouldn't work.

Added a specialization to `Array.sort` to deal with that case. A generic specialization (with `hasArrayElements`) not only handles `ArrayOverBuffer` but also polyglot arrays coming from JS or Python. We could have an additional specialization for `ArrayOverBuffer` only (removed in the last commit) that returns `ArrayOverBuffer` rather than `Array` although that adds additional complexity which so far is unnecessary.

Also fixed an example in `Array.enso` by providing a default argument.
2023-01-09 17:49:49 +00:00
..
language-server Sync file system and language server after restore (#4020) 2023-01-05 14:00:00 +00:00
launcher/src Update Scala to 2.13.8 (#3631) 2022-08-08 19:32:55 +00:00
polyglot-api/src Add Polyglot Support in Runtime Tests (#4016) 2023-01-03 14:36:26 +00:00
runner Fail runner when update manifest fails (#3990) 2022-12-15 16:12:09 +00:00
runtime Make ArrayOverBuffer behave like an Array/Array.sort no longer mutates the Array (#4022) 2023-01-09 17:49:49 +00:00
runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument Add Polyglot Support in Runtime Tests (#4016) 2023-01-03 14:36:26 +00:00
runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument Improve undefined method error message on builtin types (#3907) 2022-11-30 13:37:17 +01:00
runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument Register instruments/language in their own compilation units to fix the sbt build issues (#3509) 2022-06-13 14:09:08 +00:00
runtime-language-epb/src/main/java/org/enso/interpreter/epb Simplify exception handling for polyglot exceptions (#3981) 2022-12-19 19:16:43 +00:00
runtime-with-instruments/src/test Database Joins (#4007) 2023-01-05 10:36:22 +00:00
runtime-with-polyglot/src/test/scala/org/enso/interpreter/test/instrument Add Polyglot Support in Runtime Tests (#4016) 2023-01-03 14:36:26 +00: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.