mirror of
https://github.com/enso-org/enso.git
synced 2024-12-02 11:34:35 +03:00
c22928ecc2
Adds the ability to declare a module as *private*. Modifies the parser to add the `private` keyword as a reserved keyword. All the checks for private modules are implemented as an independent *Compiler pass*. No checks are done at runtime. # Important Notes - Introduces new keyword - `private` - a reserved keyword. - Modules that have `private` keyword as the first statement are declared as *private* (Project private) - Public module cannot have private submodules and vice versa. - This would require runtime access checks - See #7088 for the specification.
1.3 KiB
1.3 KiB
layout | title | category | tags | order | ||
---|---|---|---|---|---|---|
section-summary | Enso's Semantics | semantics |
|
0 |
Enso's Semantics
Much like we have specifications for the syntax and the type system in Enso, we also need a specification of the language semantics. These documents specify the executable semantics of the Enso language.
The actionables for this section are:
- As we make more semantic determinations about the language these should be written down here.
This specification is broken down into the following sections:
- Bindings: The semantics of Enso's binding expressions.
- Diagnostics: The semantics of Enso's executable compiler diagnostics.
- Dispatch: The semantics of Enso's dispatch system.
- Errors: The semantics of Enso's various error systems.
- Evaluation: Enso's evaluation semantics, including those of suspended computations.
- Modules: The semantics of Enso's modules.
- Scoping: Enso's scoping and identifier resolution rules.
- Encapsulation: The semantics of Enso's encapsulation system - access restriction.