enso/docs
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
..
debugger IGV can jump to JMH sources & more (#4008) 2022-12-30 05:30:32 +00:00
distribution Convert Any.== to a builtin (#3956) 2022-12-29 21:20:00 +00:00
flexer move flexer docs 2021-10-30 14:50:06 +02:00
infrastructure Update GraalVM to 22.3.1 (#5602) 2023-02-14 15:51:17 +00:00
language-server Lookup method pointers in IDE (#5578) 2023-02-08 00:57:32 +00:00
libraries Update Simple Library Server (#1952) 2021-08-18 10:01:28 +02:00
parser Preparation for more parser work (#1363) 2020-12-18 14:25:30 +00:00
polyglot Remove references to dependent types (#3217) 2022-01-10 19:51:51 +03:00
profiler Write the log in XML format suitable for VisualVM 'UI Actions' (#4110) 2023-02-05 06:36:16 +00:00
rfcs Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
runtime Downgrade hashing to SHA-1 and other optimizations (#5791) 2023-03-09 07:36:59 +00:00
security EnsoGL context abstraction (#3293) 2022-03-04 15:13:23 +01:00
semantics Refactor methods of Managed_Resource (#3460) 2022-05-18 17:27:42 +00:00
style-guide Change spacing rules to match the autoformatter (#3888) 2022-11-28 12:47:29 +01:00
syntax Update 'naming' docs (#3858) 2022-11-24 12:55:42 +00:00
types Add type system documentation (#3376) 2022-08-15 18:36:03 +03:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2023-02-13 23:10:51 +01:00
CONTRIBUTING.md Update system requirements of CONTRIBUTING documents (#5682) 2023-02-25 05:49:34 +00:00
enso-philosophy.md Remove references to dependent types (#3217) 2022-01-10 19:51:51 +03:00
getting-enso.md Bump the development version number (#1389) 2021-01-06 08:57:02 +00:00
graalvm-m1-mac.md Fix typos in graalmv-m1-mac.md (#3253) 2022-02-09 09:30:41 +01:00
README.md Update some documentation for clarity (#2005) 2021-10-01 14:13:20 +01:00
runtime-guide.md IGV can jump to JMH sources & more (#4008) 2022-12-30 05:30:32 +00:00
runtime-roadmap.md Move Builtin Types and Methods to stdlib (#3363) 2022-05-05 20:18:06 +02:00
SECURITY.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00

layout title category tags order
docs-index Enso Engine Developer Documentation summary
summary
readme
0

Enso Engine Developer Documentation

This folder contains the documentation for the implementation of the Enso programming language. The documentation is broken up by subject, within the below-listed categories, and each subject combines information about the design, specification, and implementation of the feature to which it pertains.

We provide a number of useful resources for getting a quick understanding of the Enso project:

  • The Enso Philosophy: Information on the design philosophy behind Enso, and why we build things in the way we do.
  • Contributing Guidelines: Information for people wanting to contribute to Enso (in many different ways).
  • Community Code of Conduct: The code of conduct for members of our community, developers and users alike.
  • Security Guidelines: Security guidelines for the Enso project, including supported versions and our vulnerability reporting process.
  • Getting Enso: Instructions for how to get and run a copy of Enso.
  • Runtime Roadmap: An analysis of the pressing changes that should be made to the runtime.
  • Runtime Guide: A tour of the runtime, and some pointers as to useful resources.

It is broken up into categories as follows:

  • Distribution: Information on how we distribute Enso to our users, and how Enso packages themselves work.
  • Language Server: Information on the Enso language server, its protocol, and how it integrates with the runtime.
  • Polyglot: Information on Enso's polyglot functionality, and how it is integrated into the surface Enso language.
  • RFCs: RFCs for Enso's development and evolution.
  • Runtime: Specification and documentation of the way that the Enso runtime is designed and implemented.
  • Semantics: A specification of Enso's semantics.
  • Style Guides: Style guides for the code written as part of the Enso project.
  • Syntax: A specification of Enso's syntax.
  • Types: A specification of Enso's type system and type theory.
  • Debugger: A specification of Enso's debugger.
  • Parser: Design and specification of the Enso parser.
  • Infrastructure: Description of the infrastructure for building Enso.
  • Libraries: Description of Enso's Library Ecosystem.