enso/engine
Hubert Plociniczak 6769ab0ee7
Downgrade hashing to SHA-1 and other optimizations (#5791)
This change downgrades hashing algorithm used in caching IR and library bindings to SHA-1. It is sufficient and significantly faster for the purpose of simple checksum we use it for.

Additionally, don't calculate the digest for serialized bytes - if we get the expected object type then we are confident about the integrity.

Don't initialize Jackson's ObjectMapper for every metadata serialization/de-serialization. Initialization is very costly.

Avoid unnecessary conversions between Scala and Java. Those back-and-forth `asScala` and `asJava` are pretty expensive.

Finally fix an SBT warning when generating library cache.

Closes https://github.com/enso-org/enso/issues/5763

# Important Notes
The change cuts roughly 0.8-1s from the overall startup.
This change will certainly lead to invalidation of existing caches. It is advised to simply start with a clean slate.
2023-03-09 07:36:59 +00:00
..
language-server Pre compute suggestion db during build time (#5698) 2023-03-08 12:37:48 +00:00
launcher/src Update Scala to 2.13.8 (#3631) 2022-08-08 19:32:55 +00:00
polyglot-api/src Pre compute suggestion db during build time (#5698) 2023-03-08 12:37:48 +00:00
runner Two findExceptionMessage methods to extract exception messages consistently (#5684) 2023-02-20 11:27:16 +00:00
runtime Downgrade hashing to SHA-1 and other optimizations (#5791) 2023-03-09 07:36:59 +00:00
runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument Report AbstractTruffleException as a Panic (#5794) 2023-03-06 19:05:25 +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 Schedule initialization of JS context in a separate thread (#5680) 2023-02-17 15:54:36 +00:00
runtime-with-instruments/src/test Pre compute suggestion db during build time (#5698) 2023-03-08 12:37:48 +00:00
runtime-with-polyglot/src/test Two findExceptionMessage methods to extract exception messages consistently (#5684) 2023-02-20 11:27:16 +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.