enso-org / enso

Hybrid visual and textual functional programming.
https://enso.org
Apache License 2.0
7.34k stars 322 forks source link

Provide engine-runner & language-server as a separate JPMS modules #10157

Closed Akirathan closed 1 week ago

Akirathan commented 4 months ago

Current suboptimal module architecture

runner.jar is currently a fat plain jar (no a JPMS module) located in built-distribution/component/runner/runner.jar. System module-path is set to built-distribution/component. runner.jar contains all the classes from language-server and their dependencies. It does not contain classes that are on module-path. The original motivation, implemented in https://github.com/enso-org/enso/pull/7991, was to make the transition to JPMS as quick and as simple as possible. The idea is roughly as follows:

This design, however, lead to many ugly hacks:

Better module architecture

JaroslavTulach commented 4 months ago

Related:

runner.jar should be a modular jar that is on the system's module-path.

Rather than that runner.jar (or rather just the language server JAR) should be a module JAR in Standard/Visualization/polyglot/java module, loaded by its own ModuleLayer which automatically delegates to (mostly empty ModuleLayer representing the JDK - e.g. java.base but no Truffle APIs or language implementations, etc.).

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-15):

Progress: - Starting to migrate engine-runner to JPMS module.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-16):

Progress: - Do not run enterprise engine and stdlib benchmarks #10829.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-19):

Progress: - Continue migration of our internal projects to JPMS modules.

JaroslavTulach commented 1 month ago
  • add requires scala.library to the module descriptor.

Adding a dependency on Scala core library sounds like the correct fix.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-20):

Progress: - Providing org.enso.scalalibs.wrapper - a meta project that includes all the problematic Scala libraries.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-21):

Progress: - Migrating more internal projects to JPMS modules.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-22):

Progress: - Still migrating more projects to JPMS modules and fixing compilation.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-23):

Progress: - Found a way how to compile module-info.java along with other Java sources and not as a standalone source.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-26):

Progress: - Wrappers for akka and zio libraries.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-27):

Progress: - Some tests already run in runtime-integration-test.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-28):

Progress: - enso --run test/Base_Tests and enso --run test/Table_Tests already works!

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-29):

Progress: - runtime-integration-tests/test seems to work locally!

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-08-30):

Progress: - Many language server tests already succeeds.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-09-02):

Progress: - Fixing problem with non-functional DirectoryWatcher

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-09-03):

Progress: - language-server/test fixed.

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-09-04):

Progress: - Merged and fixed with develop

enso-bot[bot] commented 1 month ago

Pavel Marek reports a new STANDUP for today (2024-09-05):

Progress: - Renaming PR almost green, failing on some network transients. Will merge tomorrow.

enso-bot[bot] commented 4 weeks ago

Pavel Marek reports a new STANDUP for today (2024-09-06):

Progress: - Our benchmark annotation processor generates sources.

enso-bot[bot] commented 3 weeks ago

Pavel Marek reports a new STANDUP for today (2024-09-09):

Progress: - Small interactive session with Jaroslav about annotation processor problems

enso-bot[bot] commented 3 weeks ago

Pavel Marek reports a new STANDUP for today (2024-09-11):

Progress: - Finally fixed annotation processing

enso-bot[bot] commented 2 weeks ago

Pavel Marek reports a new STANDUP for the provided date (2024-09-14):

Progress: - High level discussion about future of Engine/LS.

enso-bot[bot] commented 2 weeks ago

Pavel Marek reports a new STANDUP for today (2024-09-18):

Progress: - Marked the PR as ready for review

enso-bot[bot] commented 2 weeks ago

Pavel Marek reports a new STANDUP for today (2024-09-19):

Progress: - Fixing booting of language server, and project-manager tests

enso-bot[bot] commented 2 weeks ago

Pavel Marek reports a new STANDUP for today (2024-09-20):

Progress: - std libraries CI job is already green!

enso-bot[bot] commented 1 week ago

Pavel Marek reports a new STANDUP for today (2024-09-23):

Progress: - Fixing remaining tests, help from Hubert

enso-bot[bot] commented 1 week ago

Pavel Marek reports a new STANDUP for today (2024-09-24):

Progress: - With help of Hubert and Jaroslav, got all the other tests passing, along with some nice sbt refactorings

enso-bot[bot] commented 1 week ago

Pavel Marek reports a new STANDUP for today (2024-09-25):

Progress: - Last nits and reviews