enso/engine
Pavel Marek 4076a64f33
NaN can be used as a key in Map (#6301)
`Number.nan` can be used as a key in `Map`. This PR basically implements the support for [JavaScript's Same Value Zero Equality](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#same-value-zero_equality) so that `Number.nan` can be used as a key in `Map`.

# Important Notes
- For NaN, it holds that `Meta.is_same_object Number.nan Number.nan`, and `Number.nan != Number.nan` - inspired by JS spec.
- `Meta.is_same_object x y` implies `Any.== x y`, except for `Number.nan`.
2023-04-20 09:25:36 +00:00
..
interpreter-dsl-test/src/test/java/org/enso/interpreter/dsl/test Avoid NullPointerException in --dumpGraphs & test & docs (#6304) 2023-04-18 06:58:06 +02:00
language-server Async Language Server resources initialization (#6336) 2023-04-18 15:55:44 +00:00
launcher/src Don't log installed engines and runtimes in prod (#5900) 2023-03-16 10:36:55 +00:00
polyglot-api/src sort handles incomparable values (#5998) 2023-04-16 16:40:12 +02:00
runner Replace IOContexts with execution env and contexts (#6171) 2023-04-06 15:47:40 +00:00
runtime NaN can be used as a key in Map (#6301) 2023-04-20 09:25:36 +00:00
runtime-instrument-id-execution/src/main/java/org/enso/interpreter/instrument Ensure new and wrapper nodes inherit UUID (#6067) 2023-03-27 17:49:20 +00:00
runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument Improve undefined method error message on builtin types (#3907) 2022-11-30 13:37:17 +01: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 Schedule initialization of JS context in a separate thread (#5680) 2023-02-17 15:54:36 +00:00
runtime-with-instruments/src/test Type of UnresolvedSymbol is Function (#6284) 2023-04-17 13:44:15 +00:00
runtime-with-polyglot/src/test Language Server support for execution environments (#6217) 2023-04-11 15:12:27 +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.