enso/docs
Jaroslav Tulach dc30e44b60
Register instruments/language in their own compilation units to fix the sbt build issues (#3509)
New plan to [fix the `sbt` build](https://www.pivotaltracker.com/n/projects/2539304/stories/182209126) and its annoying:
```
log.error(
"Truffle Instrumentation is not up to date, " +
"which will lead to runtime errors\n" +
"Fixes have been applied to ensure consistent Instrumentation state, " +
"but compilation has to be triggered again.\n" +
"Please re-run the previous command.\n" +
"(If this for some reason fails, " +
s"please do a clean build of the $projectName project)"
)
```
When it is hard to fix `sbt` incremental compilation, let's restructure our project sources so that each `@TruffleInstrument` and `@TruffleLanguage` registration is in individual compilation unit. Each such unit is either going to be compiled or not going to be compiled as a batch - that will eliminate the `sbt` incremental compilation issues without addressing them in `sbt` itself.

fa2cf6a33ec4a5b2e3370e1b22c2b5f712286a75 is the first step - it introduces `IdExecutionService` and moves all the `IdExecutionInstrument` API up to that interface. The rest of the `runtime` project then depends only on `IdExecutionService`. Such refactoring allows us to move the `IdExecutionInstrument` out of `runtime` project into independent compilation unit.
2022-06-13 14:09:08 +00:00
..
debugger Debug Enso language in ChromeDev tools with --inspect option (#3432) 2022-05-10 08:55:08 +00:00
distribution Nightly proccess preparations: Setting Enso version through the environment (#3241) 2022-02-07 15:14:32 +01:00
flexer move flexer docs 2021-10-30 14:50:06 +02:00
infrastructure Register instruments/language in their own compilation units to fix the sbt build issues (#3509) 2022-06-13 14:09:08 +00:00
language-server Virtual Component Groups in the Hierarchical Action List (1/2) (#3488) 2022-06-03 17:18:20 +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
rfcs Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
runtime Register instruments/language in their own compilation units to fix the sbt build issues (#3509) 2022-06-13 14:09:08 +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 Implement masking of sensitive data in logs (#1732) 2021-05-12 16:31:53 +01:00
syntax Properly expose stacktraces and related data to user code (#3271) 2022-02-16 10:36:19 +03:00
types Remove references to dependent types (#3217) 2022-01-10 19:51:51 +03:00
CODE_OF_CONDUCT.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
CONTRIBUTING.md Bumped the build script (#3489) 2022-06-01 13:44:40 +02: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 various default branch switch - related updates 2021-11-01 01:37:30 +01: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.