mirror of
https://github.com/enso-org/enso.git
synced 2024-12-23 10:42:05 +03:00
941512e0ba
This change adds serialization and deserialization of library bindings. In order to be functional, one needs to first generate IR and serialize bindings using `--compiled <path-to-library>` command. The bindings will be stored under the library with `.bindings` suffix. Bindings are being generated during `buildEngineDistribution` task, thus not requiring any extra steps. When resolving import/exports the compiler will first try to load module's bindings from cache. If successful, it will not schedule its imports/exports for immediate compilation, as we always did, but use the bindings info to infer the dependent modules. The current change does not make any optimizations when it comes to compiling the modules, yet. It only delays the actual compilation/loading IR from cache so that it can be done in bulk. Further optimizations will come from this opportunity such as parallel loading of caches or lazily inferring only the necessary modules. Part of https://github.com/enso-org/enso/issues/5568 work. |
||
---|---|---|
.. | ||
debugger | ||
distribution | ||
flexer | ||
infrastructure | ||
language-server | ||
libraries | ||
parser | ||
polyglot | ||
profiler | ||
rfcs | ||
runtime | ||
security | ||
semantics | ||
style-guide | ||
syntax | ||
types | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
enso-philosophy.md | ||
getting-enso.md | ||
graalvm-m1-mac.md | ||
README.md | ||
runtime-guide.md | ||
runtime-roadmap.md | ||
SECURITY.md |
layout | title | category | tags | order | ||
---|---|---|---|---|---|---|
docs-index | Enso Engine Developer Documentation | summary |
|
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.