enso/engine
Hubert Plociniczak 7b0759f8b3
Don't add module's builtins to the scope of a builtin type (#3791)
It appears that we were always adding builtin methods to the scope of the module and the builtin type that shared the same name.
This resulted in some methods being accidentally available even though they shouldn't.

This change treats differently builtins of types and modules and introduces auto-registration feature for builtins.
By default all builtin methods are registered with a type, unless explicitly defined in the annotation property.
Builtin methods that are auto-registered do not have to be explicitly defined and are registered with the underlying type.
Registration correctly infers the right type, depending whether we deal with static or instance methods.

Builtin methods that are not auto-registered have to be explicitly defined **always**. Modules' builtin methods are the prime example.

# Important Notes
Builtins now carry information whether they are static or not (inferred from the lack of `self` parameter).
They also carry a `autoRegister` property to determine if a builtin method should be automatically registered with the type.
2022-11-16 10:23:52 +00:00
..
language-server Project save backed by git (#3851) 2022-11-14 17:32:39 +00:00
launcher/src Update Scala to 2.13.8 (#3631) 2022-08-08 19:32:55 +00:00
polyglot-api/src Add parent type field to suggestion (#3846) 2022-11-07 13:21:04 +00:00
runner Fix repl (#3767) 2022-10-06 19:53:54 +00:00
runner-native/src Initialize Builtins at Native Image build time (#3821) 2022-10-25 18:28:10 +00:00
runtime Don't add module's builtins to the scope of a builtin type (#3791) 2022-11-16 10:23:52 +00:00
runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument State rework & IO Contexts (#3828) 2022-10-26 16:22:08 +00:00
runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument State rework & IO Contexts (#3828) 2022-10-26 16:22:08 +00:00
runtime-instrument-runtime-server/src/main/java/org/enso/interpreter/instrument Register instruments/language in their own compilation units to fix the sbt build issues (#3509) 2022-06-13 14:09:08 +00:00
runtime-language-epb/src/main/java/org/enso/interpreter/epb Missing foreign language generates proper Enso error. (#3798) 2022-10-17 09:59:31 +00:00
runtime-with-instruments/src/test Don't add module's builtins to the scope of a builtin type (#3791) 2022-11-16 10:23:52 +00:00
README.md Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00

The Enso Engine

The Enso engine is the codebase responsible for compiling and executing Enso code, as well as providing language server functionality to users of the language. It is subdivided into two major components:

  • Language Server: The Enso language service.
  • Polyglot API: The truffle-boundary safe API for communication between the language server and the runtime.
  • Runner: The command-line interface for Enso.
  • Runtime: The compiler and interpreter for Enso.