diff --git a/build.sbt b/build.sbt index b63d9ebc9dc3..0b1f50af7cbe 100644 --- a/build.sbt +++ b/build.sbt @@ -2839,6 +2839,10 @@ lazy val `runtime-integration-tests` = "-Dtck.language=enso", "-Dtck.inlineVerifierInstrument=false", "-Dpolyglot.engine.AllowExperimentalOptions=true", + "-Dpolyglot.enso.languageHomeOverride=" + new File( + engineDistributionRoot.value, + "component" + ).getCanonicalPath, "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=" + (Compile / packageBin).value.getParentFile ), diff --git a/distribution/lib/Standard/Base/0.0.0-dev/docs/api/Data/Time/Duration.md b/distribution/lib/Standard/Base/0.0.0-dev/docs/api/Data/Time/Duration.md index 2085c90d0f72..1c5542dc6c86 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/docs/api/Data/Time/Duration.md +++ b/distribution/lib/Standard/Base/0.0.0-dev/docs/api/Data/Time/Duration.md @@ -1,8 +1,8 @@ ## Enso Signatures 1.0 ## module Standard.Base.Data.Time.Duration - type Duration - - + self that:Standard.Base.Any.Any -> Standard.Base.Any.Any - - - self that:Standard.Base.Any.Any -> Standard.Base.Any.Any + - + self that:Standard.Base.Data.Time.Duration.Duration -> Standard.Base.Data.Time.Duration.Duration!Standard.Base.Errors.Time_Error.Time_Error + - - self that:Standard.Base.Data.Time.Duration.Duration -> Standard.Base.Data.Time.Duration.Duration!Standard.Base.Errors.Time_Error.Time_Error - < self that:Standard.Base.Any.Any -> Standard.Base.Any.Any - <= self that:Standard.Base.Any.Any -> Standard.Base.Any.Any - > self that:Standard.Base.Any.Any -> Standard.Base.Any.Any diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Ordering.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Ordering.enso index 71f96955be82..72cc2a16d314 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Ordering.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Ordering.enso @@ -91,7 +91,6 @@ from project.Internal.Ordering_Helpers import all By defining the `Rational_Ordering` and making it available via `Comparable.from (that:Rational)` method, all parts of the Enso system will use the custom comparator whenever equality or hash code is needed. -@Builtin_Type type Comparable ## --- private: true @@ -256,7 +255,6 @@ type Comparable Comparable.from (that:Any) = Comparable.new that Default_Comparator ## Types representing the ordering of values. -@Builtin_Type type Ordering ## A representation that the first value orders as less than the second. Less diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Time/Duration.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Time/Duration.enso index 15515ec5a2c5..43573cb046ec 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Time/Duration.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Time/Duration.enso @@ -179,8 +179,7 @@ type Duration example_add = (Duration.new minutes=30) + (Duration.new hours=12) ``` - + : Duration -> Duration ! Time_Error - + self that = + + self that:Duration -> Duration ! Time_Error = ensure_duration that <| Panic.catch ArithmeticException (self.plus_builtin that) err-> Error.throw (Time_Error.Error err.payload.getMessage) @@ -203,8 +202,7 @@ type Duration example_subtract = (Duration.new hours=6) - (Duration.new minutes=30) ``` - - : Duration -> Duration ! Time_Error - - self that = + - self that:Duration -> Duration ! Time_Error = ensure_duration that <| Panic.catch ArithmeticException (self.minus_builtin that) err-> Error.throw (Time_Error.Error err.payload.getMessage) diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Internal/Ordering_Helpers.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Internal/Ordering_Helpers.enso index 57b8a533d154..541fe1fd417c 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Internal/Ordering_Helpers.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Internal/Ordering_Helpers.enso @@ -18,7 +18,6 @@ from project.Error import all private: true --- Default implementation of a _comparator_. -@Builtin_Type type Default_Comparator ## --- private: true diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Meta/Enso_Project.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Meta/Enso_Project.enso index 5882ef4cb939..f5268163d1c1 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Meta/Enso_Project.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Meta/Enso_Project.enso @@ -6,7 +6,6 @@ from project.Data.Json import JS_Object from project.Errors.Common import Module_Not_In_Package_Error ## Functionality for inspecting the current project. -@Builtin_Type type Project_Description ## --- private: true diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Polyglot.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Polyglot.enso index 5e197188ff33..120582e4178f 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Polyglot.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Polyglot.enso @@ -15,7 +15,6 @@ import project.Runtime.Source_Location.Source_Location private: true --- Utilities for working with Polyglot objects. -@Builtin_Type type Polyglot ## --- private: true diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Runtime.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Runtime.enso index 8ef1e27e01ba..4586be50d7ac 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Runtime.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Runtime.enso @@ -166,7 +166,6 @@ type Stack_Trace_Element advanced: true --- Type indicating allowed execution context. -@Builtin_Type type Context ## --- private: true diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/System.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/System.enso index be2114cd89af..b7367bade901 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/System.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/System.enso @@ -79,7 +79,6 @@ default_line_separator = Java_System.lineSeparator private: true --- The type representing the result of a process. -@Builtin_Type type System_Process_Result ## --- private: true diff --git a/docs/types/dynamic-dispatch.md b/docs/types/dynamic-dispatch.md index ba59e314e68b..d9fb8ab7987a 100644 --- a/docs/types/dynamic-dispatch.md +++ b/docs/types/dynamic-dispatch.md @@ -201,9 +201,9 @@ primarily as a _container for module (static) methods_. - **associated type** of a module `My_Module` is a type for the module - It is basically an eigen type for a module. - **builtin type** is a type annotated with `@Builtin_Type`. - - Builtin type cannot be defined outside standard libraries. + - Builtin type cannot be defined outside `Standard.Base` library. - Builtin types are usually implemented in the engine, and not with pure Enso - code. + Atom mechanism. - **parent type** of a type `My_Type` is a type that `My_Type` "extends", i.e. `My_Type` inherits all the methods defined on its parent type. - Every type has exactly one parent type, except for `Any` type. diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/interop/TypeMembersTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/interop/TypeMembersTest.java index 04a7744df189..1c92739bc142 100644 --- a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/interop/TypeMembersTest.java +++ b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/interop/TypeMembersTest.java @@ -86,6 +86,8 @@ public void ensureNonBuiltinMembersArePresent() throws Exception { Source.newBuilder( "enso", """ + from Standard.Base import all + type Compile_Error Error message @@ -101,7 +103,14 @@ public void ensureNonBuiltinMembersArePresent() throws Exception { var compileError = module.invokeMember("eval_expression", "v"); assertEquals( "all members", - Set.of(ConstantsNames.TO_DISPLAY_TEXT, "message", ConstantsNames.TO_TEXT, "==", "pretty"), + Set.of( + ConstantsNames.TO_DISPLAY_TEXT, + "message", + ConstantsNames.TO_TEXT, + "to", + "==", + "!=", + "pretty"), compileError.getMemberKeys()); } diff --git a/engine/runtime-integration-tests/src/test/scala/org/enso/interpreter/test/instrument/RuntimeVisualizationsTest.scala b/engine/runtime-integration-tests/src/test/scala/org/enso/interpreter/test/instrument/RuntimeVisualizationsTest.scala index c28eadc91af1..647afeecb788 100644 --- a/engine/runtime-integration-tests/src/test/scala/org/enso/interpreter/test/instrument/RuntimeVisualizationsTest.scala +++ b/engine/runtime-integration-tests/src/test/scala/org/enso/interpreter/test/instrument/RuntimeVisualizationsTest.scala @@ -1478,7 +1478,9 @@ class RuntimeVisualizationsTest extends AnyFlatSpec with Matchers { ) ) ) - context.receiveN(2) should contain theSameElementsAs Seq( + context.receiveNIgnoreExpressionUpdates( + 2 + ) should contain theSameElementsAs Seq( Api.Response(requestId, Api.VisualizationAttached()), Api.Response( Api.ExecutionFailed( diff --git a/engine/runtime-test-instruments/src/main/java/org/enso/interpreter/test/instruments/tck/EnsoTckLanguageProvider.java b/engine/runtime-test-instruments/src/main/java/org/enso/interpreter/test/instruments/tck/EnsoTckLanguageProvider.java index 85e98d714e41..1b0caddb4b44 100644 --- a/engine/runtime-test-instruments/src/main/java/org/enso/interpreter/test/instruments/tck/EnsoTckLanguageProvider.java +++ b/engine/runtime-test-instruments/src/main/java/org/enso/interpreter/test/instruments/tck/EnsoTckLanguageProvider.java @@ -42,16 +42,16 @@ public Collection createExpressions(Context context) { .eval( "enso", """ - plus a b = a + b + from Standard.Base import all + + plus a:Text|Number b:Text|Number = a + b """) .invokeMember("eval_expression", "plus"); return List.of( - /* disabled until + is defined on Numbers again Snippet.newBuilder("plus:Number", plus, TypeDescriptor.NUMBER) - .parameterTypes(TypeDescriptor.NUMBER, TypeDescriptor.NUMBER) - .build(), - */ + .parameterTypes(TypeDescriptor.NUMBER, TypeDescriptor.NUMBER) + .build(), Snippet.newBuilder("plus:Text", plus, TypeDescriptor.STRING) .parameterTypes(TypeDescriptor.STRING, TypeDescriptor.STRING) .build()); diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/Polyglot.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/Polyglot.java deleted file mode 100644 index ac41b610ad4e..000000000000 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/Polyglot.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.enso.interpreter.node.expression.builtin; - -import org.enso.interpreter.dsl.BuiltinType; - -@BuiltinType -public final class Polyglot extends Builtin { - public Polyglot() { - super(Object.class); - } -} diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/debug/Debug.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/debug/Debug.java deleted file mode 100644 index 0b2303c9e0c5..000000000000 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/debug/Debug.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.enso.interpreter.node.expression.builtin.debug; - -import org.enso.interpreter.dsl.BuiltinType; -import org.enso.interpreter.node.expression.builtin.Builtin; - -@BuiltinType -public class Debug extends Builtin { - public Debug() { - super(Object.class); - } -} diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/EnsoProjectNode.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/EnsoProjectNode.java index 325b4e7edc63..18f565c62d38 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/EnsoProjectNode.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/EnsoProjectNode.java @@ -95,12 +95,14 @@ private static Package getMainProjectFromCtx(EnsoContext ctx) { return null; } + @TruffleBoundary private static Atom createProjectDescriptionAtom(EnsoContext ctx, Package pkg) { var rootPath = pkg.root().normalize().getAbsoluteFile().getPath(); var namespace = pkg.getConfig().namespace(); var name = pkg.getConfig().name(); - var cons = ctx.getBuiltins().getProjectDescription().getUniqueConstructor(); - + var ensoProject = ctx.getTopScope().getModule("Standard.Base.Meta.Enso_Project").get(); + var projectDescription = ensoProject.getScope().getType("Project_Description", true); + var cons = projectDescription.getSingleConstructor(); return AtomNewInstanceNode.getUncached().newInstance(cons, rootPath, namespace, name); } diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/EqualsNode.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/EqualsNode.java index e54b15d27b0a..cc94bf89ce2f 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/EqualsNode.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/EqualsNode.java @@ -125,9 +125,10 @@ private static Object convertor(EnsoContext ctx, Function convFn, Object value) argSchema, DefaultsExecutionMode.EXECUTE, ArgumentsExecutionMode.EXECUTE); var state = ctx.currentState(); var by = - node.execute(convFn, null, state, new Object[] {ctx.getBuiltins().comparable(), value}); + node.execute( + convFn, null, state, new Object[] {ctx.getBuiltins().comparableType(), value}); if (by instanceof Atom atom - && atom.getConstructor() == ctx.getBuiltins().comparable().getBy()) { + && atom.getConstructor() == ctx.getBuiltins().comparableType().getSingleConstructor()) { var structs = StructsLibrary.getUncached(); return structs.getField(atom, 1); } else { @@ -158,7 +159,7 @@ Boolean findConversions(Type selfType, Type thatType, Object self, Object that) private static boolean findConversionImpl( EnsoContext ctx, Type selfType, Type thatType, Object self, Object that) { var selfScope = selfType.getDefinitionScope(); - var comparableType = ctx.getBuiltins().comparable().getType(); + var comparableType = ctx.getBuiltins().comparableType(); var fromSelfType = UnresolvedConversion.build(selfScope).resolveFor(ctx, comparableType, selfType); diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/ProjectDescription.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/ProjectDescription.java deleted file mode 100644 index 86dd1fa03bcd..000000000000 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/meta/ProjectDescription.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.enso.interpreter.node.expression.builtin.meta; - -import java.util.List; -import org.enso.interpreter.dsl.BuiltinType; -import org.enso.interpreter.node.expression.builtin.UniquelyConstructibleBuiltin; - -@BuiltinType -public class ProjectDescription extends UniquelyConstructibleBuiltin { - @Override - protected String getConstructorName() { - return "Value"; - } - - @Override - protected List getConstructorParamNames() { - return List.of("root_path", "ns", "n"); - } -} diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/Comparable.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/Comparable.java deleted file mode 100644 index 1b5fa797b13e..000000000000 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/Comparable.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.enso.interpreter.node.expression.builtin.ordering; - -import java.util.List; -import org.enso.interpreter.dsl.BuiltinType; -import org.enso.interpreter.node.expression.builtin.Builtin; -import org.enso.interpreter.runtime.data.atom.AtomConstructor; - -/** A hidden builtin. Only conversions with target type of Comparable are visible. */ -@BuiltinType -public final class Comparable extends Builtin { - - public Comparable() { - super(Object.class); - } - - @Override - protected List getDeclaredConstructors() { - return List.of(new Cons("By", List.of("value", "comparator"))); - } - - public AtomConstructor getBy() { - return getConstructors()[0]; - } -} diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/CustomComparatorNode.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/CustomComparatorNode.java index 71900afbd634..af051aaae081 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/CustomComparatorNode.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/CustomComparatorNode.java @@ -46,15 +46,15 @@ Type hasCustomComparatorCached( InvokeConversionNode convertNode, @Cached(value = "createConversion()", allowUncached = true) UnresolvedConversion conversion) { var ctx = EnsoContext.get(this); - var comparableType = ctx.getBuiltins().comparable().getType(); + var comparableType = ctx.getBuiltins().comparableType(); var state = ctx.currentState(); Object rawRes = convertNode.execute( null, state, conversion, comparableType, atom, new Object[] {comparableType, atom}); if (rawRes instanceof Atom res - && res.getConstructor() == ctx.getBuiltins().comparable().getBy()) { + && res.getConstructor() == ctx.getBuiltins().comparableType().getSingleConstructor()) { if (structs.getField(res, 1) instanceof Type result) { - if (result != ctx.getBuiltins().defaultComparator().getType()) { + if (result != ctx.getBuiltins().defaultComparatorType()) { return result; } } @@ -65,7 +65,7 @@ Type hasCustomComparatorCached( @NeverDefault UnresolvedConversion createConversion() { var ctx = EnsoContext.get(this); - var comparableType = ctx.getBuiltins().comparable().getType(); + var comparableType = ctx.getBuiltins().comparableType(); return UnresolvedConversion.build(comparableType.getDefinitionScope()); } diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/DefaultComparator.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/DefaultComparator.java deleted file mode 100644 index 63cc6980058f..000000000000 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/DefaultComparator.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.enso.interpreter.node.expression.builtin.ordering; - -import org.enso.interpreter.dsl.BuiltinType; -import org.enso.interpreter.node.expression.builtin.Builtin; - -@BuiltinType -public final class DefaultComparator extends Builtin { - public DefaultComparator() { - super(Object.class); - } -} diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/HashCallbackNode.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/HashCallbackNode.java index 04382a95bcc0..61c71b1686e2 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/HashCallbackNode.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/HashCallbackNode.java @@ -51,8 +51,8 @@ long hashCallbackCached( InvokeFunctionNode hashCallbackInvokeNode, @CachedLibrary(limit = "5") InteropLibrary interop) { var ctx = EnsoContext.get(this); - var comparableType = ctx.getBuiltins().comparable().getType(); - var defCompType = ctx.getBuiltins().defaultComparator().getType(); + var comparableType = ctx.getBuiltins().comparableType(); + var defCompType = ctx.getBuiltins().defaultComparatorType(); Object res = hashCallbackInvokeNode.execute( hashCallbackFunc, @@ -80,7 +80,7 @@ static InvokeFunctionNode buildInvokeNodeWithAtomArgument() { @NeverDefault @TruffleBoundary Function getHashCallbackFunction() { - var defCompType = EnsoContext.get(this).getBuiltins().defaultComparator().getType(); + var defCompType = EnsoContext.get(this).getBuiltins().defaultComparatorType(); var fn = defCompType.getDefinitionScope().getMethodForType(defCompType, "hash_callback"); assert fn != null : "Default_Comparator.hash_callback function must exist"; return fn; diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/SortVectorNode.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/SortVectorNode.java index b5c3847f56f5..37eddc24fb18 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/SortVectorNode.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/ordering/SortVectorNode.java @@ -381,8 +381,7 @@ private Object attachDifferentComparatorsWarning(Object vector, List grou private String getDefaultComparatorQualifiedName() { return EnsoContext.get(this) .getBuiltins() - .defaultComparator() - .getType() + .defaultComparatorType() .getQualifiedName() .toString(); } @@ -493,7 +492,7 @@ boolean areAllDefaultComparators( } boolean isDefaultComparator(Object object, EnsoContext ctx) { - return ctx.getBuiltins().defaultComparator().getType() == object; + return ctx.getBuiltins().defaultComparatorType() == object; } private boolean isNan(Object object) { diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/runtime/Context.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/runtime/Context.java deleted file mode 100644 index 88e73b9eaf16..000000000000 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/runtime/Context.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.enso.interpreter.node.expression.builtin.runtime; - -import java.util.List; -import org.enso.interpreter.dsl.BuiltinType; -import org.enso.interpreter.node.expression.builtin.Builtin; -import org.enso.interpreter.runtime.data.atom.AtomConstructor; - -@BuiltinType -public final class Context extends Builtin { - public Context() { - super(Object.class); - } - - @Override - protected List getDeclaredConstructors() { - return List.of( - new Cons(INPUT_NAME), new Cons(OUTPUT_NAME), new Cons(DATAFLOW_STACK_TRACE_NAME)); - } - - public static final String INPUT_NAME = "Input"; - - public static final String OUTPUT_NAME = "Output"; - - public static final String DATAFLOW_STACK_TRACE_NAME = "Dataflow_Stack_Trace"; - - public AtomConstructor getInput() { - return getConstructors()[0]; - } - - public AtomConstructor getOutput() { - return getConstructors()[1]; - } - - public AtomConstructor getDataflowStackTrace() { - return getConstructors()[2]; - } -} diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Builtins.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Builtins.java index 1b837cd70375..81619fa6a68a 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Builtins.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Builtins.java @@ -4,35 +4,32 @@ import com.oracle.truffle.api.nodes.Node; import java.io.IOException; import java.util.Optional; +import java.util.function.Supplier; import org.enso.common.MethodNames; import org.enso.compiler.Passes; import org.enso.compiler.context.CompilerContext; import org.enso.compiler.context.FreshNameSupply; import org.enso.compiler.phase.BuiltinsIrBuilder; +import org.enso.editions.LibraryName; import org.enso.interpreter.EnsoLanguage; import org.enso.interpreter.node.expression.builtin.Any; import org.enso.interpreter.node.expression.builtin.Boolean; import org.enso.interpreter.node.expression.builtin.Builtin; import org.enso.interpreter.node.expression.builtin.Nothing; -import org.enso.interpreter.node.expression.builtin.Polyglot; -import org.enso.interpreter.node.expression.builtin.debug.Debug; import org.enso.interpreter.node.expression.builtin.error.ProblemBehavior; import org.enso.interpreter.node.expression.builtin.error.Warning; import org.enso.interpreter.node.expression.builtin.immutable.Vector; -import org.enso.interpreter.node.expression.builtin.meta.ProjectDescription; import org.enso.interpreter.node.expression.builtin.mutable.Array; import org.enso.interpreter.node.expression.builtin.mutable.Ref; -import org.enso.interpreter.node.expression.builtin.ordering.Comparable; -import org.enso.interpreter.node.expression.builtin.ordering.DefaultComparator; -import org.enso.interpreter.node.expression.builtin.ordering.Ordering; import org.enso.interpreter.node.expression.builtin.resource.ManagedResource; -import org.enso.interpreter.node.expression.builtin.runtime.Context; import org.enso.interpreter.node.expression.builtin.text.Text; import org.enso.interpreter.runtime.EnsoContext; import org.enso.interpreter.runtime.Module; import org.enso.interpreter.runtime.ModuleScopeBuilder; import org.enso.interpreter.runtime.data.Type; import org.enso.interpreter.runtime.data.atom.AtomConstructor; +import org.enso.interpreter.runtime.scope.ModuleScope; +import org.enso.interpreter.runtime.util.CachingSupplier; import org.enso.pkg.QualifiedName; /** Container class for static predefined atoms, methods, and their containing scope. */ @@ -52,17 +49,10 @@ public final class Builtins { private final Number number; private final Boolean bool; - private final Context contexts; - private final Ordering ordering; - private final Comparable comparable; - private final DefaultComparator defaultComparator; - private final System system; - // Builtin types private final Builtin any; private final Builtin nothing; private final Builtin function; - private final Builtin polyglot; private final Builtin text; private final Builtin array; private final Builtin vector; @@ -70,8 +60,6 @@ public final class Builtins { private final Builtin dataflowError; private final Builtin ref; private final Builtin managedResource; - private final Builtin debug; - private final ProjectDescription projectDescription; private final Builtin date; private final Builtin dateTime; private final Builtin duration; @@ -80,6 +68,10 @@ public final class Builtins { private final Builtin warning; private final ProblemBehavior problemBehavior; private final Builtin instrumentor; + private final RuntimeContext runtimeContext; + private final Ordering ordering; + private final Supplier comparable; + private final Supplier defaultComparator; /** Factory method to create the builtins. */ private static Builtins create(EnsoContext context) { @@ -107,16 +99,11 @@ private Builtins(EnsoContext ctx, ModuleScopeBuilder sb) { context = ctx; builtins = new BuiltinsRegistry(ctx.getLanguage(), sb); - ordering = getBuiltinType(Ordering.class); - comparable = getBuiltinType(Comparable.class); - defaultComparator = getBuiltinType(DefaultComparator.class); bool = getBuiltinType(Boolean.class); - contexts = getBuiltinType(Context.class); any = getBuiltinType(Any.class); nothing = getBuiltinType(Nothing.class); function = getBuiltinType(org.enso.interpreter.node.expression.builtin.function.Function.class); - polyglot = getBuiltinType(Polyglot.class); text = getBuiltinType(Text.class); array = getBuiltinType(Array.class); vector = getBuiltinType(Vector.class); @@ -124,8 +111,6 @@ private Builtins(EnsoContext ctx, ModuleScopeBuilder sb) { dataflowError = getBuiltinType(org.enso.interpreter.node.expression.builtin.Error.class); ref = getBuiltinType(Ref.class); managedResource = getBuiltinType(ManagedResource.class); - debug = getBuiltinType(Debug.class); - projectDescription = getBuiltinType(ProjectDescription.class); date = getBuiltinType(org.enso.interpreter.node.expression.builtin.date.Date.class); dateTime = getBuiltinType(org.enso.interpreter.node.expression.builtin.date.DateTime.class); duration = getBuiltinType(org.enso.interpreter.node.expression.builtin.date.Duration.class); @@ -136,8 +121,12 @@ private Builtins(EnsoContext ctx, ModuleScopeBuilder sb) { instrumentor = getBuiltinType(org.enso.interpreter.node.expression.builtin.Instrumentor.class); error = new Error(this, ctx); - system = new System(this); number = new Number(this); + + runtimeContext = new RuntimeContext(supplyType("Runtime", "Context")); + ordering = new Ordering(supplyType("Data", "Ordering", "Ordering")); + comparable = supplyType("Data", "Ordering", "Comparable"); + defaultComparator = supplyType("Internal", "Ordering_Helpers", "Default_Comparator"); } /** @@ -265,8 +254,8 @@ public Number number() { /** * @return the builtin Context type */ - public Context context() { - return contexts; + public RuntimeContext context() { + return runtimeContext; } /** @@ -375,21 +364,8 @@ public Type timeZone() { * @return the {@code Debug} atom constructor */ public Type debug() { - return debug.getType(); - } - - /** - * @return the {@code Project_Description} atom constructor - */ - public ProjectDescription getProjectDescription() { - return projectDescription; - } - - /** - * @return the {@code System} atom constructor. - */ - public System system() { - return system; + var m = loadModule(context, toFqn(0, "Runtime", "Debug")); + return m.getAssociatedType(); } /** @@ -418,7 +394,7 @@ public Type ref() { * @return the container for polyglot-related builtins. */ public Type polyglot() { - return polyglot.getType(); + return loadType(context, "Polyglot", "Polyglot"); } /** @@ -435,12 +411,12 @@ public Ordering ordering() { return ordering; } - public Comparable comparable() { - return comparable; + public Type comparableType() { + return comparable.get(); } - public DefaultComparator defaultComparator() { - return defaultComparator; + public Type defaultComparatorType() { + return defaultComparator.get(); } /** @@ -464,4 +440,45 @@ public Module getModule() { public EnsoLanguage getLanguage() { return context.getLanguage(); } + + private static ModuleScope loadModule(EnsoContext context, String moduleName) { + var moduleOpt = context.getTopScope().getModule(moduleName); + if (moduleOpt.isEmpty()) { + var stdBase = LibraryName.apply("Standard", "Base"); + context.getPackageRepository().ensurePackageIsLoaded(stdBase); + moduleOpt = context.getTopScope().getModule(moduleName); + } + assert moduleOpt.isPresent() : moduleName; + var module = moduleOpt.get(); + var scope = module.compileScope(context); + return scope; + } + + private Supplier supplyType(String... shortFqn) { + return CachingSupplier.from( + () -> { + return loadType(context, shortFqn); + }); + } + + @CompilerDirectives.TruffleBoundary + static Type loadType(EnsoContext context, String... shortFqn) { + var last = shortFqn.length - 1; + var moduleName = toFqn(1, shortFqn); + var typeName = shortFqn[last]; + var scope = loadModule(context, moduleName); + var type = scope.getType(typeName, true); + assert type != null : typeName + " in " + moduleName; + return type; + } + + private static String toFqn(int skip, String... elems) { + var sb = new StringBuilder(); + sb.append("Standard.Base"); + for (var i = 0; i < elems.length - skip; i++) { + var segment = elems[i]; + sb.append(".").append(segment); + } + return sb.toString(); + } } diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Error.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Error.java index f8c573a93cca..361777db6565 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Error.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Error.java @@ -4,7 +4,6 @@ import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.exception.AbstractTruffleException; -import org.enso.editions.LibraryName; import org.enso.interpreter.runtime.EnsoContext; import org.enso.interpreter.runtime.callable.UnresolvedConversion; import org.enso.interpreter.runtime.callable.UnresolvedSymbol; @@ -417,27 +416,10 @@ final Type getType() { final AtomConstructor getUniqueConstructor() { if (uniqueAtomConstructor == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); - var sb = new StringBuilder(); - sb.append("Standard.Base"); - var last = shortFqn.length - 1; - for (var i = 0; i < last; i++) { - var segment = shortFqn[i]; - sb.append(".").append(segment); - } - var moduleOpt = context.getTopScope().getModule(sb.toString()); - if (moduleOpt.isEmpty()) { - var stdBase = LibraryName.apply("Standard", "Base"); - context.getPackageRepository().ensurePackageIsLoaded(stdBase); - moduleOpt = context.getTopScope().getModule(sb.toString()); - } - assert moduleOpt.isPresent() : sb.toString(); - var module = moduleOpt.get(); - var scope = module.compileScope(context); - var type = scope.getType(shortFqn[last], true); - assert type != null : shortFqn[last] + " in " + sb; + var type = Builtins.loadType(context, shortFqn); assert type.getConstructors().size() == 1 : "Only one constructor available: " + type.getConstructors(); - uniqueAtomConstructor = type.getConstructors().values().iterator().next(); + uniqueAtomConstructor = type.getSingleConstructor(); } return uniqueAtomConstructor; } diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Ordering.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Ordering.java new file mode 100644 index 000000000000..ec37c69db558 --- /dev/null +++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/Ordering.java @@ -0,0 +1,45 @@ +package org.enso.interpreter.runtime.builtin; + +import java.util.function.Supplier; +import org.enso.interpreter.runtime.data.Type; +import org.enso.interpreter.runtime.data.atom.Atom; +import org.enso.interpreter.runtime.data.atom.AtomNewInstanceNode; +import org.enso.interpreter.runtime.util.CachingSupplier; + +public final class Ordering { + private final Supplier type; + private final Supplier equal; + private final Supplier less; + private final Supplier greater; + + Ordering(Supplier type) { + this.type = type; + this.equal = toAtom("Equal"); + this.less = toAtom("Less"); + this.greater = toAtom("Greater"); + } + + public Type getType() { + return type.get(); + } + + public Atom newEqual() { + return equal.get(); + } + + public Atom newLess() { + return less.get(); + } + + public Atom newGreater() { + return greater.get(); + } + + private Supplier toAtom(String consName) { + return CachingSupplier.from( + () -> { + var cons = getType().getConstructors().get(consName); + return AtomNewInstanceNode.getUncached().newInstance(cons); + }); + } +} diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/RuntimeContext.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/RuntimeContext.java new file mode 100644 index 000000000000..681af85bfcc1 --- /dev/null +++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/RuntimeContext.java @@ -0,0 +1,38 @@ +package org.enso.interpreter.runtime.builtin; + +import java.util.function.Supplier; +import org.enso.interpreter.runtime.data.Type; +import org.enso.interpreter.runtime.data.atom.AtomConstructor; +import org.enso.interpreter.runtime.util.CachingSupplier; + +public final class RuntimeContext { + + private final Supplier type; + private final CachingSupplier output; + private final CachingSupplier input; + private final CachingSupplier dataflowStackTrace; + + RuntimeContext(Supplier type) { + this.type = type; + this.output = CachingSupplier.from(() -> getType().getConstructors().get("Output")); + this.input = CachingSupplier.from(() -> getType().getConstructors().get("Input")); + this.dataflowStackTrace = + CachingSupplier.from(() -> getType().getConstructors().get("Dataflow_Stack_Trace")); + } + + public Type getType() { + return type.get(); + } + + public AtomConstructor getOutput() { + return output.get(); + } + + public AtomConstructor getInput() { + return input.get(); + } + + public AtomConstructor getDataflowStackTrace() { + return dataflowStackTrace.get(); + } +} diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/System.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/System.java deleted file mode 100644 index 3ab9d0f93a5e..000000000000 --- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/builtin/System.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.enso.interpreter.runtime.builtin; - -import org.enso.interpreter.node.expression.builtin.system.*; -import org.enso.interpreter.runtime.data.atom.Atom; - -/** A container class for all System-related stdlib builtins. */ -public class System { - - private final SystemProcessResult systemProcessResult; - - /** Create builders for all {@code System} atom constructors. */ - public System(Builtins builtins) { - systemProcessResult = builtins.getBuiltinType(SystemProcessResult.class); - } - - /** - * @return the atom constructor for {@code Process_Result}. - */ - public Atom makeSystemResult(Object exitCode, Object stdout, Object stderr) { - return systemProcessResult.newInstance(exitCode, stdout, stderr); - } -} diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/Type.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/Type.java index fa3e4776c1e8..7e5d49523eff 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/Type.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/Type.java @@ -48,6 +48,7 @@ public final class Type extends EnsoObject { private final Type supertype; private final Type eigentype; private final Map constructors; + private @CompilerDirectives.CompilationFinal AtomConstructor singleConstructor; private final boolean hasAllConstructorsPrivate; private boolean gettersGenerated; @@ -506,7 +507,9 @@ public boolean isEigenType() { * @param constructor The constructor to register in this type. */ public void registerConstructor(AtomConstructor constructor) { - constructors.put(constructor.getName(), constructor); + var prev = constructors.put(constructor.getName(), constructor); + assert prev == null || prev != singleConstructor + : "Replacing singleConstructor should invalidate!"; gettersGenerated = false; } @@ -514,6 +517,25 @@ public Map getConstructors() { return constructors; } + /** + * Helper getter for the single constructor associated with this type. Verifies size of {@link + * #getConstructors()} is one. This can be optimized in the future to be usable on fast + * path. + * + * @return the single constructor associated with this type + * @throws AssertionError if there is none or more of constructors + */ + public AtomConstructor getSingleConstructor() { + if (singleConstructor == null) { + CompilerDirectives.transferToInterpreterAndInvalidate(); + var it = getConstructors().values().iterator(); + assert it.hasNext(); + singleConstructor = it.next(); + assert !it.hasNext(); + } + return singleConstructor; + } + private boolean isNothing(Node lib) { var b = EnsoContext.get(lib).getBuiltins(); return this == b.nothing(); diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/atom/AtomConstructor.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/atom/AtomConstructor.java index 079461cb6cee..3467a24414f8 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/atom/AtomConstructor.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/data/atom/AtomConstructor.java @@ -420,6 +420,9 @@ public Function getConstructorFunction() { * @return the accessor function of this constructor. */ public Function getAccessorFunction() { + if (accessor == null) { + throw new NullPointerException("No accessor for " + name + " in " + getType()); + } return accessor.get(); } diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/system/System.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/system/System.java index a3317c98ed53..900e4f88f9f2 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/system/System.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/system/System.java @@ -14,6 +14,7 @@ import org.enso.interpreter.node.expression.builtin.text.util.ExpectStringNode; import org.enso.interpreter.runtime.EnsoContext; import org.enso.interpreter.runtime.data.atom.Atom; +import org.enso.interpreter.runtime.data.atom.AtomNewInstanceNode; import org.enso.interpreter.runtime.data.text.Text; import org.enso.interpreter.runtime.data.vector.ArrayLikeCoerceToArrayNode; @@ -141,10 +142,15 @@ public static Atom createProcess( } p.waitFor(); - long exitCode = p.exitValue(); - Text returnOut = Text.create(out.toString()); - Text returnErr = Text.create(err.toString()); + var exitCode = p.exitValue(); + var returnOut = Text.create(out.toString()); + var returnErr = Text.create(err.toString()); - return ctx.getBuiltins().system().makeSystemResult(exitCode, returnOut, returnErr); + var system = ctx.getTopScope().getModule("Standard.Base.System").get().getScope(); + var type = system.getType("System_Process_Result", true); + var cons = type.getSingleConstructor(); + var result = + AtomNewInstanceNode.getUncached().newInstance(cons, exitCode, returnOut, returnErr); + return result; } } diff --git a/engine/runtime/src/main/scala/org/enso/interpreter/runtime/IrToTruffle.scala b/engine/runtime/src/main/scala/org/enso/interpreter/runtime/IrToTruffle.scala index f1781d16c357..480ad06c1ae1 100644 --- a/engine/runtime/src/main/scala/org/enso/interpreter/runtime/IrToTruffle.scala +++ b/engine/runtime/src/main/scala/org/enso/interpreter/runtime/IrToTruffle.scala @@ -1016,11 +1016,10 @@ private[runtime] class IrToTruffle( val runtimeCons = tpe.getConstructors .get(cons.name) - val fun = mkConsGetter(runtimeCons) scopeBuilder.registerMethod( scopeAssociatedType, name, - fun + () => mkConsGetter(runtimeCons) ) case BindingsMap.ResolvedModule(module) => val runtimeCons = diff --git a/lib/scala/distribution-manager/src/main/scala/org/enso/distribution/LanguageHome.scala b/lib/scala/distribution-manager/src/main/scala/org/enso/distribution/LanguageHome.scala index f2f810ca2a6e..0c986b014600 100644 --- a/lib/scala/distribution-manager/src/main/scala/org/enso/distribution/LanguageHome.scala +++ b/lib/scala/distribution-manager/src/main/scala/org/enso/distribution/LanguageHome.scala @@ -11,7 +11,7 @@ import java.nio.file.Path */ case class LanguageHome(languageHome: Path) { val rootPath = languageHome.getParent.toAbsolutePath.normalize - require(rootPath.toFile.exists()) + require(rootPath.toFile.exists(), "LanguageHome must exists " + rootPath) /** The path to editions bundled with the engine. */ def editions: Path = diff --git a/test/Base_Internal_Tests/src/Comparator_Spec.enso b/test/Base_Internal_Tests/src/Comparator_Spec.enso index a9f45028d488..302dbe9c1506 100644 --- a/test/Base_Internal_Tests/src/Comparator_Spec.enso +++ b/test/Base_Internal_Tests/src/Comparator_Spec.enso @@ -112,6 +112,11 @@ add_specs suite_builder = suite_builder.group "Object Comparator" group_builder- r = v1 == v2 r + group_builder.specify "comparator for NaN and 42" <| + comp_nan = Comparable.from Number.nan . comparator + comp_42 = Comparable.from 42.0 . comparator + Meta.is_same_object comp_nan comp_42 . should_be_true + main filter=Nothing = suite = Test.build suite_builder-> add_specs suite_builder diff --git a/test/Base_Tests/src/Data/Ordering_Spec.enso b/test/Base_Tests/src/Data/Ordering_Spec.enso index 0361a1759528..03b28ac3fc71 100644 --- a/test/Base_Tests/src/Data/Ordering_Spec.enso +++ b/test/Base_Tests/src/Data/Ordering_Spec.enso @@ -144,7 +144,6 @@ add_specs suite_builder = Ordering.compare Number.nan 42.0 . should_fail_with Incomparable_Values Ordering.compare 42.0 Number.nan . should_fail_with Incomparable_Values Ordering.compare 42.5 67.9 . should_equal Ordering.Less - Meta.is_same_object (Comparable.from Number.nan . comparator) (Comparable.from 42.0 . comparator) . should_be_true group_builder.specify "should fail with Incomparable_Values for wrong type of that" <| Ordering.compare Ordering.Less 1 . should_fail_with Incomparable_Values diff --git a/test/Base_Tests/src/Data/Time/Duration_Spec.enso b/test/Base_Tests/src/Data/Time/Duration_Spec.enso index 28e76c456365..e510efca945b 100644 --- a/test/Base_Tests/src/Data/Time/Duration_Spec.enso +++ b/test/Base_Tests/src/Data/Time/Duration_Spec.enso @@ -1,5 +1,6 @@ from Standard.Base import all import Standard.Base.Errors.Common.Incomparable_Values +import Standard.Base.Errors.Common.Type_Error import Standard.Base.Errors.Time_Error.Time_Error from Standard.Test import all @@ -66,8 +67,8 @@ add_specs suite_builder = periods = [(Period.new days=1), (Period.new 0), (Period.new years=30), (Period.new years=3 months=2)] durations.each duration-> periods.each period-> - (duration + period).should_fail_with Time_Error - (duration - period).should_fail_with Time_Error + Panic.recover Type_Error (duration + period) . should_fail_with Type_Error + Panic.recover Type_Error (duration - period) . should_fail_with Type_Error (period + duration).should_fail_with Time_Error (period - duration).should_fail_with Time_Error (duration > period).should_fail_with Incomparable_Values diff --git a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Any.enso b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Any.enso index 135a72bc6e9a..c3773e7da32d 100644 --- a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Any.enso +++ b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Any.enso @@ -15,7 +15,6 @@ type Any > self other = Default_Comparator.less_than_builtin other self >= self other = Default_Comparator.less_than_builtin other self || Any.== other self -@Builtin_Type type Default_Comparator ## --- private: true diff --git a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Meta.enso b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Meta.enso index e5ceb3c191e5..0fae09b0311c 100644 --- a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Meta.enso +++ b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Meta.enso @@ -31,7 +31,6 @@ get_unresolved_symbol_scope symbol = @Builtin_Method "Meta.get_unresolved_symbol get_atom_constructor atom = @Builtin_Method "Meta.get_atom_constructor" get_constructor_name atom_constructor = @Builtin_Method "Meta.get_constructor_name" -@Builtin_Type type Project_Description new module = Project_Description.enso_project_builtin module diff --git a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Polyglot.enso b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Polyglot.enso index fb8558391598..542224e43d56 100644 --- a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Polyglot.enso +++ b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Polyglot.enso @@ -1,4 +1,3 @@ -@Builtin_Type type Polyglot get_array_size array = @Builtin_Method "Polyglot.get_array_size" execute callable arguments = @Builtin_Method "Polyglot.execute" diff --git a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Runtime.enso b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Runtime.enso index 127ad39162b2..cb4ba5bebd1d 100644 --- a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Runtime.enso +++ b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/Runtime.enso @@ -10,7 +10,6 @@ import project.Data.Boolean.Boolean.True import project.Runtime.Context.Input import project.Runtime.Context.Output -@Builtin_Type type Context Input Output diff --git a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/System.enso b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/System.enso index 289e819b48b1..8ccf1205f14f 100644 --- a/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/System.enso +++ b/test/micro-distribution/lib/Standard/Base/0.0.0-dev/src/System.enso @@ -1,6 +1,5 @@ create_process command arguments input redirect_in redirect_out redirect_err = @Builtin_Method "System.create_process" -@Builtin_Type type System_Process_Result Result exit_code stdout stderr