mirror of
https://github.com/enso-org/enso.git
synced 2024-12-23 14:52:01 +03:00
c1259cb4d2
After a discussion, I was really curious that our panics are supposed to be almost free - and while trusting that statement, it was really hard to believe - so I wanted to see for myself - knowing that an experiment is the most robust source of this kind of information - testing that in practice. So I wrote a benchmark comparing various ways of reporting errors, also testing them both at 'shallow' and 'deep' stack traces (adding 200 additional frames) - to see how stack depth affects them, if at all. The panics are indeed blazing fast! Kudos to the engine team. However, it seems that our dataflow errors are relatively slow (and we tend to use them _more_ than panics and want to be using them more and more). This uncovers a possible optimization opportunity. Can we make them as fast as panics?? Analysis of the benchmark results in comment below. |
||
---|---|---|
.. | ||
debugger | ||
distribution | ||
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.