Skip to content

Commit

Permalink
Towards simplifying runtime-compiler dependencies (#8894)
Browse files Browse the repository at this point in the history
  • Loading branch information
JaroslavTulach authored Apr 25, 2024
1 parent a786ad2 commit 931baa4
Show file tree
Hide file tree
Showing 115 changed files with 220 additions and 160 deletions.
16 changes: 16 additions & 0 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -1228,6 +1228,21 @@ val testLogProviderOptions = Seq(
"-Dconfig.resource=application-test.conf"
)

lazy val `engine-common` = project
.in(file("engine/common"))
.settings(
frgaalJavaCompilerSetting,
Test / fork := true,
commands += WithDebugCommand.withDebug,
Test / envVars ++= distributionEnvironmentOverrides,
Test / javaOptions ++= Seq(
),
libraryDependencies ++= Seq(
"org.graalvm.polyglot" % "polyglot" % graalMavenPackagesVersion % "provided"
)
)
.dependsOn(testkit % Test)

lazy val `polyglot-api` = project
.in(file("engine/polyglot-api"))
.settings(
Expand Down Expand Up @@ -1255,6 +1270,7 @@ lazy val `polyglot-api` = project
GenerateFlatbuffers.flatcVersion := flatbuffersVersion,
Compile / sourceGenerators += GenerateFlatbuffers.task
)
.dependsOn(`engine-common`)
.dependsOn(pkg)
.dependsOn(`text-buffer`)
.dependsOn(`logging-utils`)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.enso.polyglot;
package org.enso.common;

/** Defines a stage of compilation of the module. */
public enum CompilationStage {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.enso.polyglot;
package org.enso.common;

import org.graalvm.polyglot.HostAccess;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.enso.polyglot;
package org.enso.common;

import org.graalvm.polyglot.PolyglotException;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.enso.polyglot;
package org.enso.common;

/** Constainer for language-level constants */
public class LanguageInfo {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.enso.polyglot;
package org.enso.common;

/** Container for polyglot method names */
public class MethodNames {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
import java.util.List;
import java.util.function.Supplier;
import java.util.logging.Level;
import org.enso.common.LanguageInfo;
import org.enso.common.MethodNames.TopScope;
import org.enso.interpreter.EnsoLanguage;
import org.enso.interpreter.runtime.EnsoContext;
import org.enso.interpreter.runtime.callable.function.Function;
import org.enso.interpreter.runtime.data.text.Text;
import org.enso.interpreter.runtime.error.DataflowError;
import org.enso.interpreter.runtime.error.PanicException;
import org.enso.polyglot.LanguageInfo;
import org.enso.polyglot.MethodNames.TopScope;
import org.enso.polyglot.RuntimeOptions;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.io.IOAccess;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import akka.event.EventStream;
import java.util.concurrent.Executor;
import org.enso.common.LanguageInfo;
import org.enso.languageserver.event.InitializedEvent;
import org.enso.polyglot.LanguageInfo;
import org.graalvm.polyglot.Context;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ import org.enso.logger.Converter
import org.enso.logger.masking.Masking
import org.enso.logger.JulHandler
import org.enso.logger.akka.AkkaConverter
import org.enso.polyglot.{HostAccessFactory, RuntimeOptions, RuntimeServerInfo}
import org.enso.common.HostAccessFactory
import org.enso.polyglot.{RuntimeOptions, RuntimeServerInfo}
import org.enso.profiling.events.NoopEventsMonitor
import org.enso.searcher.memory.InMemorySuggestionsRepo
import org.enso.text.{ContentBasedVersioning, Sha3_224VersionCalculator}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import org.enso.logger.Converter
import org.enso.logger.JulHandler
import org.enso.pkg.Package
import org.enso.pkg.SourceFile
import org.enso.polyglot.{HostAccessFactory, PolyglotContext, RuntimeOptions}
import org.enso.common.HostAccessFactory
import org.enso.polyglot.{PolyglotContext, RuntimeOptions}
import org.graalvm.polyglot.Context
import org.slf4j.event.Level

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@

import com.oracle.truffle.api.Option;
import java.util.Arrays;
import org.graalvm.options.*;
import org.enso.common.LanguageInfo;
import org.graalvm.options.OptionCategory;
import org.graalvm.options.OptionDescriptor;
import org.graalvm.options.OptionDescriptors;
import org.graalvm.options.OptionKey;

/** Class representing runtime options supported by the Enso engine. */
public class RuntimeOptions {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.enso.polyglot

import org.graalvm.polyglot.Value
import org.enso.common.MethodNames

/** Represents an Enso function.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import org.graalvm.polyglot.Value
* @param value the polyglot value of this scope
*/
class Module(private val value: Value) {
import MethodNames.Module._
import org.enso.common.MethodNames.Module._

/** @return the name of the module
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.enso.polyglot
import java.io.File
import org.enso.common.LanguageInfo

import org.graalvm.polyglot.{Context, Source}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import org.graalvm.polyglot.Value
* @param value the polyglot value of this scope
*/
class TopScope(private val value: Value) {
import MethodNames.TopScope._
import org.enso.common.MethodNames.TopScope._

/** Gets a module by name.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import org.scalatest.matchers.should.Matchers
import java.nio.file.Paths

class ApiTest extends AnyFlatSpec with Matchers {
import LanguageInfo._
import org.enso.common.LanguageInfo._
val executionContext = new PolyglotContext(
Context
.newBuilder(ID)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class ModuleManagementTest
)
val executionContext = new PolyglotContext(
Context
.newBuilder(LanguageInfo.ID)
.newBuilder(org.enso.common.LanguageInfo.ID)
.allowExperimentalOptions(true)
.allowAllAccess(true)
.option(RuntimeOptions.PROJECT_ROOT, pkg.root.getAbsolutePath)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
import org.enso.common.HostAccessFactory;
import org.enso.common.LanguageInfo;
import org.enso.logger.Converter;
import org.enso.logger.JulHandler;
import org.enso.logger.LoggerSetup;
import org.enso.polyglot.HostAccessFactory;
import org.enso.polyglot.LanguageInfo;
import org.enso.polyglot.PolyglotContext;
import org.enso.polyglot.RuntimeOptions;
import org.enso.polyglot.debugger.DebugServerInfo;
Expand Down
3 changes: 2 additions & 1 deletion engine/runner/src/main/scala/org/enso/runner/Main.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ import org.enso.languageserver.boot.{
import org.enso.libraryupload.LibraryUploader.UploadFailedError
import org.slf4j.event.Level
import org.enso.pkg.{Contact, PackageManager, Template}
import org.enso.polyglot.{HostEnsoUtils, LanguageInfo, Module, PolyglotContext}
import org.enso.common.{HostEnsoUtils, LanguageInfo}
import org.enso.polyglot.{Module, PolyglotContext}
import org.enso.profiling.sampler.{NoopSampler, OutputStreamSampler}
import org.enso.version.VersionDescription
import org.graalvm.polyglot.PolyglotException
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.logging.Level;
import org.enso.common.LanguageInfo;
import org.enso.common.MethodNames;
import org.enso.interpreter.runtime.EnsoContext;
import org.enso.polyglot.LanguageInfo;
import org.enso.polyglot.MethodNames;
import org.enso.polyglot.RuntimeOptions;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import org.enso.common.LanguageInfo;
import org.enso.common.MethodNames;
import org.enso.compiler.benchmarks.CodeGenerator;
import org.enso.compiler.benchmarks.Utils;
import org.enso.interpreter.runtime.data.Type;
import org.enso.polyglot.LanguageInfo;
import org.enso.polyglot.MethodNames;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.enso.common.LanguageInfo;
import org.enso.common.MethodNames;
import org.enso.compiler.Compiler;
import org.enso.compiler.benchmarks.Utils;
import org.enso.interpreter.runtime.Module;
import org.enso.interpreter.runtime.data.Type;
import org.enso.polyglot.LanguageInfo;
import org.enso.polyglot.MethodNames;
import org.enso.polyglot.RuntimeOptions;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
import java.util.List;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import org.enso.common.LanguageInfo;
import org.enso.common.MethodNames;
import org.enso.compiler.Compiler;
import org.enso.compiler.benchmarks.CodeGenerator;
import org.enso.compiler.benchmarks.Utils;
import org.enso.interpreter.runtime.Module;
import org.enso.interpreter.runtime.data.Type;
import org.enso.polyglot.LanguageInfo;
import org.enso.polyglot.MethodNames;
import org.enso.polyglot.RuntimeOptions;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
import java.io.OutputStream;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import org.enso.common.LanguageInfo;
import org.enso.common.MethodNames;
import org.enso.compiler.Compiler;
import org.enso.compiler.benchmarks.CodeGenerator;
import org.enso.compiler.benchmarks.Utils;
import org.enso.interpreter.runtime.Module;
import org.enso.interpreter.runtime.data.Type;
import org.enso.polyglot.LanguageInfo;
import org.enso.polyglot.MethodNames;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.openjdk.jmh.annotations.Benchmark;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.enso.common.LanguageInfo;
import org.enso.common.MethodNames;
import org.enso.compiler.Compiler;
import org.enso.compiler.benchmarks.CodeGenerator;
import org.enso.compiler.benchmarks.Utils;
import org.enso.interpreter.runtime.Module;
import org.enso.interpreter.runtime.data.Type;
import org.enso.polyglot.LanguageInfo;
import org.enso.polyglot.MethodNames;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.openjdk.jmh.annotations.Benchmark;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.enso.common.LanguageInfo;
import org.enso.common.MethodNames;
import org.enso.compiler.Compiler;
import org.enso.compiler.benchmarks.CodeGenerator;
import org.enso.compiler.benchmarks.Utils;
import org.enso.interpreter.runtime.Module;
import org.enso.interpreter.runtime.data.Type;
import org.enso.polyglot.LanguageInfo;
import org.enso.polyglot.MethodNames;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.openjdk.jmh.annotations.Benchmark;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.enso.common.MethodNames.Module;
import org.enso.compiler.benchmarks.Utils;
import org.enso.polyglot.MethodNames.Module;
import org.graalvm.polyglot.Value;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import org.enso.common.MethodNames.Module;
import org.enso.compiler.benchmarks.Utils;
import org.enso.polyglot.MethodNames.Module;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Value;
import org.openjdk.jmh.annotations.Benchmark;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import java.io.FileWriter;
import java.io.IOException;
import java.util.Objects;
import org.enso.polyglot.MethodNames.Module;
import org.enso.common.MethodNames.Module;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Source;
import org.graalvm.polyglot.Value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import org.enso.common.MethodNames.Module;
import org.enso.compiler.benchmarks.Utils;
import org.enso.polyglot.MethodNames.Module;
import org.graalvm.polyglot.Value;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import java.util.Objects;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import org.enso.common.MethodNames;
import org.enso.compiler.benchmarks.Utils;
import org.enso.polyglot.MethodNames;
import org.graalvm.polyglot.Context;
import org.graalvm.polyglot.Value;
import org.openjdk.jmh.annotations.Benchmark;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import java.util.concurrent.Future;
import java.util.function.Consumer;
import java.util.logging.Level;
import org.enso.common.CompilationStage;
import org.enso.compiler.Compiler;
import org.enso.compiler.PackageRepository;
import org.enso.compiler.Passes;
Expand All @@ -18,8 +19,6 @@
import org.enso.editions.LibraryName;
import org.enso.pkg.Package;
import org.enso.pkg.QualifiedName;
import org.enso.polyglot.CompilationStage;
import org.enso.polyglot.data.TypeGraph;

/**
* Interface that encapsulate all services {@link Compiler} needs from Truffle or other environment.
Expand Down Expand Up @@ -98,19 +97,19 @@ void initializeBuiltinsIr(

CompilationStage getCompilationStage(Module module);

TypeGraph getTypeHierarchy();
org.enso.polyglot.data.TypeGraph getTypeHierarchy();

Future<Boolean> serializeLibrary(
Compiler compiler, LibraryName libraryName, boolean useGlobalCacheLocations);

scala.Option<List<org.enso.polyglot.Suggestion>> deserializeSuggestions(LibraryName libraryName)
throws InterruptedException;

Future<Boolean> serializeModule(
Compiler compiler, Module module, boolean useGlobalCacheLocations, boolean usePool);

boolean deserializeModule(Compiler compiler, Module module);

scala.Option<List<org.enso.polyglot.Suggestion>> deserializeSuggestions(LibraryName libraryName)
throws InterruptedException;

void shutdown(boolean waitForPendingJobCompletion);

public static interface Updater {
Expand Down
Loading

0 comments on commit 931baa4

Please sign in to comment.