enso/engine
Hubert Plociniczak 2f2eeafceb
Fix Logger's name in stdlib (#11519)
* Fix Logger's name in stdlib

Somehow SLF4J is able to recognize correctly the provided Logger's name
and print it to the user. Java's Logger is
not.
In addition, we setup SLF4J's configuration, meaning that log-levels are
correctly respected.

For a simple project:
```
from Standard.Base import all
from Standard.Base.Logging import all

type Foo

main =
    IO.println "Hello World!"
    Foo.log_message level=..Warning "I should warn you about something..."
    Foo.log_message level=..Info "Should be seen? By default we only show up-to warnings level"
    Foo.log_message level=..Severe "Something went really bad!"
```

This change demonstrates the fix.

Before:
```
> enso --run simple-logging.enso
Hello World!
Nov 08, 2024 6:08:07 PM com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase invokeHandle
WARNING: I should warn you about something...
Nov 08, 2024 6:08:07 PM com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase invokeHandle
INFO: Should be seen? By default we only show up-to warnings level
Nov 08, 2024 6:08:07 PM com.oracle.truffle.host.HostMethodDesc$SingleMethod$MHBase invokeHandle
SEVERE: Something went really bad!
Foo
```

After:
```
> enso --run simple-logging.enso
Hello World!
[WARN] [2024-11-08T18:03:37+01:00] [simple-logging.Foo] I should warn you about something...
[ERROR] [2024-11-08T18:03:37+01:00] [simple-logging.Foo] Something went really bad!
Foo
```

* Update distribution/lib/Standard/Base/0.0.0-dev/src/Logging.enso

Co-authored-by: Radosław Waśko <radoslaw.wasko@enso.org>

* Test stdlib logs by using MemoryAppender

Added `getEvents` member to `MemoryAppender` so that it is possible to
retrieve individual log messages from tests and test their presence.
Required opening up to some modules to retrieve internals of loggers.

* nit

* small tweaks to eliminate module warnings

---------

Co-authored-by: Radosław Waśko <radoslaw.wasko@enso.org>
2024-11-13 10:20:41 +01:00
..
common/src Reload insight script on file change (#11415) 2024-10-28 09:17:53 +00:00
interpreter-dsl-test/src/test/java/org/enso/interpreter/dsl/test WithWarnings uses EnsoHashMap to speed things up (#10555) 2024-08-07 15:29:57 +00:00
language-server Drop git dependency on enso-bot repository (#11539) 2024-11-12 18:25:19 +00:00
launcher/src Improve CI feedback when directory is missing (#10608) 2024-10-09 16:58:42 +02:00
polyglot-api/src Run node in a different execution environment (#11173) 2024-10-09 12:09:45 +00:00
polyglot-api-macros/src/main engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runner Fix logging in CLI (#11472) 2024-11-07 16:03:19 +01:00
runner-common/src/main engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime Convert Array_Like_Helpers.map to a builtin to reduce stack size (#11363) 2024-11-06 11:14:48 +00:00
runtime-benchmarks/src/main Convert Array_Like_Helpers.map to a builtin to reduce stack size (#11363) 2024-11-06 11:14:48 +00:00
runtime-compiler/src Implement proper hash and equals for FrameVariableNames (#11512) 2024-11-08 16:25:28 +01:00
runtime-instrument-common/src Don't cancel aborted jobs immediately (#11375) 2024-11-05 10:33:02 +01:00
runtime-instrument-id-execution/src/main/java Run node in a different execution environment (#11173) 2024-10-09 12:09:45 +00:00
runtime-instrument-repl-debugger/src/main/java engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime-instrument-runtime-server/src/main/java engine-runner and language-server are separate JPMS modules (#10823) 2024-09-25 21:33:13 +02:00
runtime-integration-tests/src/test Fix Logger's name in stdlib (#11519) 2024-11-13 10:20:41 +01:00
runtime-language-arrow/src Avoid dependency on org.graalvm.collections (#11107) 2024-09-17 11:25:18 +00:00
runtime-language-epb/src Use enso.dev.insight property to turn Insight on (#11385) 2024-10-24 13:56:28 +02:00
runtime-parser/src MetadataStorage is mutable - structural equals in copy isn't enough (#11513) 2024-11-08 17:29:41 +00:00
runtime-suggestions/src/main Eliminate scala.Some allocations (#11259) 2024-10-09 08:54:37 +00:00
runtime-test-instruments/src/main/java Ensure wrapper projects are listed in aggregates (#11323) 2024-10-14 20:46:08 +02: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.