# HG changeset patch # User Jaroslav Tulach # Date 1442827263 -7200 # Node ID dcb70d90c11d2a8d2666601e2eca53f2b1a65cf3 # Parent b31dcacfc8ffd3c61381b2b95812585ee1bbd82c# Parent 7a6719b66a744b822d9761cf8f2cd34904e22b2d Merging in changes in default branch diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ArrayTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ArrayTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ArrayTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,22 @@ */ package com.oracle.truffle.api.dsl.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.dsl.ImplicitCast; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.TypeCast; +import com.oracle.truffle.api.dsl.TypeCheck; +import com.oracle.truffle.api.dsl.TypeSystem; +import com.oracle.truffle.api.dsl.TypeSystemReference; import com.oracle.truffle.api.dsl.test.ArrayTestFactory.TestNode1NodeGen; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import org.junit.Assert; +import org.junit.Test; public class ArrayTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/AssumptionsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/AssumptionsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/AssumptionsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,22 +22,28 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeField; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; import com.oracle.truffle.api.dsl.test.AssumptionsTestFactory.AssumptionArrayTestFactory; import com.oracle.truffle.api.dsl.test.AssumptionsTestFactory.CacheAssumptionTestFactory; import com.oracle.truffle.api.dsl.test.AssumptionsTestFactory.FieldTestFactory; import com.oracle.truffle.api.dsl.test.AssumptionsTestFactory.MethodTestFactory; import com.oracle.truffle.api.dsl.test.AssumptionsTestFactory.NodeFieldTest2Factory; import com.oracle.truffle.api.dsl.test.AssumptionsTestFactory.StaticFieldTestFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget; +import static com.oracle.truffle.api.dsl.test.TestHelper.getNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import java.util.HashMap; +import java.util.Map; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; +import org.junit.Test; public class AssumptionsTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/BadLongOverflowSpecializationTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/BadLongOverflowSpecializationTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/BadLongOverflowSpecializationTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,15 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.BadLongOverflowSpecializationTestFactory.ImplicitCastExclusionFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class BadLongOverflowSpecializationTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/BinaryNodeTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/BinaryNodeTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/BinaryNodeTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,17 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.BinaryNodeTestFactory.AddNodeFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class BinaryNodeTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CachedTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CachedTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CachedTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,13 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.NodeField; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; import com.oracle.truffle.api.dsl.test.CachedTestFactory.BoundCacheFactory; import com.oracle.truffle.api.dsl.test.CachedTestFactory.BoundCacheOverflowFactory; import com.oracle.truffle.api.dsl.test.CachedTestFactory.TestBoundCacheOverflowContainsFactory; @@ -39,7 +39,12 @@ import com.oracle.truffle.api.dsl.test.CachedTestFactory.TestGuardWithJustCachedParameterFactory; import com.oracle.truffle.api.dsl.test.CachedTestFactory.TestMultipleCachesFactory; import com.oracle.truffle.api.dsl.test.CachedTestFactory.UnboundCacheFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.assertionsEnabled; +import static com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; +import org.junit.Test; @SuppressWarnings("unused") public class CachedTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CodeFormatTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CodeFormatTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CodeFormatTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,11 @@ */ package com.oracle.truffle.api.dsl.test; -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.CodeFormatTestFactory.LineWrappingTestFactory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import org.junit.Assert; +import org.junit.Test; /** * Tests the generated code compiles without warnings for unusual large guard names. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CompilerErrorTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CompilerErrorTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CompilerErrorTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.api.dsl.test; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; public class CompilerErrorTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ContainsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ContainsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ContainsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,23 +22,28 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.internal.DSLNode; +import com.oracle.truffle.api.dsl.internal.SpecializedNode; import com.oracle.truffle.api.dsl.test.ContainsTestFactory.Contains1Factory; import com.oracle.truffle.api.dsl.test.ContainsTestFactory.Contains2Factory; import com.oracle.truffle.api.dsl.test.ContainsTestFactory.Contains3Factory; import com.oracle.truffle.api.dsl.test.ContainsTestFactory.Contains4Factory; import com.oracle.truffle.api.dsl.test.ContainsTestFactory.PolymorphicToMonomorphic0Factory; import com.oracle.truffle.api.dsl.test.TestHelper.ExecutionListener; +import static com.oracle.truffle.api.dsl.test.TestHelper.array; +import static com.oracle.truffle.api.dsl.test.TestHelper.assertRuns; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.NodeCost; +import static org.hamcrest.CoreMatchers.is; +import org.junit.Assert; +import static org.junit.Assert.assertThat; +import org.junit.Test; @SuppressWarnings("unused") public class ContainsTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CreateCastTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CreateCastTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/CreateCastTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,19 @@ */ package com.oracle.truffle.api.dsl.test; -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.CreateCast; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.CreateCastTestFactory.CreateCastNode1Factory; import com.oracle.truffle.api.dsl.test.CreateCastTestFactory.CreateCastNode2Factory; import com.oracle.truffle.api.dsl.test.CreateCastTestFactory.CreateCastNode3Factory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ChildrenNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import org.junit.Assert; +import org.junit.Test; @SuppressWarnings("unused") public class CreateCastTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteEvaluatedTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteEvaluatedTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteEvaluatedTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,11 @@ */ package com.oracle.truffle.api.dsl.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.ShortCircuit; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.ExecuteEvaluatedTestFactory.DoubleEvaluatedNodeFactory; import com.oracle.truffle.api.dsl.test.ExecuteEvaluatedTestFactory.EvaluatedNodeFactory; import com.oracle.truffle.api.dsl.test.ExecuteEvaluatedTestFactory.TestEvaluatedGenerationFactory; @@ -42,8 +43,11 @@ import com.oracle.truffle.api.dsl.test.TypeSystemTest.ChildrenNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import org.junit.Assert; +import org.junit.Test; public class ExecuteEvaluatedTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteGroupingTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteGroupingTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteGroupingTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,18 @@ */ package com.oracle.truffle.api.dsl.test; -import static org.junit.Assert.*; - -import org.junit.experimental.theories.*; -import org.junit.runner.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.ExecuteGroupingTestFactory.ExecuteGrouping1NodeGen; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import static org.junit.Assert.assertEquals; +import org.junit.experimental.theories.DataPoints; +import org.junit.experimental.theories.Theories; +import org.junit.experimental.theories.Theory; +import org.junit.runner.RunWith; /* * This test aims to test the reuse of execute methods with evaluated parameters as much as possible. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteMethodTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteMethodTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExecuteMethodTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,16 @@ */ package com.oracle.truffle.api.dsl.test; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.TypeSystem; +import com.oracle.truffle.api.dsl.TypeSystemReference; +import com.oracle.truffle.api.dsl.internal.DSLOptions; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.UnexpectedResultException; public class ExecuteMethodTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExpectError.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExpectError.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ExpectError.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,8 @@ */ package com.oracle.truffle.api.dsl.test; -import java.lang.annotation.*; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; /** * This annotation is internally known by the dsl processor and used to expect errors for testing diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/FallbackTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/FallbackTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/FallbackTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,19 +22,25 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; import com.oracle.truffle.api.dsl.test.FallbackTestFactory.Fallback1Factory; import com.oracle.truffle.api.dsl.test.FallbackTestFactory.Fallback2Factory; import com.oracle.truffle.api.dsl.test.FallbackTestFactory.Fallback3Factory; import com.oracle.truffle.api.dsl.test.FallbackTestFactory.Fallback4Factory; +import static com.oracle.truffle.api.dsl.test.TestHelper.array; +import static com.oracle.truffle.api.dsl.test.TestHelper.assertRuns; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeUtil; +import org.junit.Assert; +import org.junit.Test; public class FallbackTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ImplicitCastTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ImplicitCastTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ImplicitCastTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,20 @@ */ package com.oracle.truffle.api.dsl.test; -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.ImplicitCast; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.TypeSystem; +import com.oracle.truffle.api.dsl.TypeSystemReference; import com.oracle.truffle.api.dsl.test.ImplicitCastTestFactory.ImplicitCast0NodeFactory; import com.oracle.truffle.api.dsl.test.ImplicitCastTestFactory.ImplicitCast1NodeFactory; import com.oracle.truffle.api.dsl.test.ImplicitCastTestFactory.ImplicitCast2NodeFactory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import org.junit.Assert; +import org.junit.Test; public class ImplicitCastTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ImportGuardsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ImportGuardsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ImportGuardsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,14 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.ImportStatic; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.ImportGuardsTestFactory.ImportGuards6Factory; +import static com.oracle.truffle.api.dsl.test.TestHelper.array; +import static com.oracle.truffle.api.dsl.test.TestHelper.assertRuns; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import org.junit.Test; public class ImportGuardsTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/InsertBeforeTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/InsertBeforeTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/InsertBeforeTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,8 @@ */ package com.oracle.truffle.api.dsl.test; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; public class InsertBeforeTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/IntegerLiteralGuardsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/IntegerLiteralGuardsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/IntegerLiteralGuardsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,18 +22,17 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.IntegerLiteralGuardsTestFactory.BinaryLiteralTestFactory; import com.oracle.truffle.api.dsl.test.IntegerLiteralGuardsTestFactory.DecimalLiteralTestFactory; import com.oracle.truffle.api.dsl.test.IntegerLiteralGuardsTestFactory.HexLiteralTestFactory; import com.oracle.truffle.api.dsl.test.IntegerLiteralGuardsTestFactory.OctalLiteralTestFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; @SuppressWarnings("unused") public class IntegerLiteralGuardsTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/LazyClassLoadingTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/LazyClassLoadingTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/LazyClassLoadingTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,16 @@ */ package com.oracle.truffle.api.dsl.test; -import java.lang.reflect.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeFactory; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.LazyClassLoadingTestFactory.TestNodeFactory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import org.junit.Assert; +import org.junit.Test; public class LazyClassLoadingTest { @Test diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/LimitTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/LimitTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/LimitTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,18 +22,20 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; import com.oracle.truffle.api.dsl.test.LimitTestFactory.ConstantLimitTestFactory; import com.oracle.truffle.api.dsl.test.LimitTestFactory.DefaultLimit3TestFactory; import com.oracle.truffle.api.dsl.test.LimitTestFactory.LocalLimitTestFactory; import com.oracle.truffle.api.dsl.test.LimitTestFactory.MethodLimitTestFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; +import org.junit.Test; @SuppressWarnings("unused") public class LimitTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MergeSpecializationsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MergeSpecializationsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MergeSpecializationsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,21 +22,24 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import java.util.*; -import java.util.concurrent.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeFactory; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.internal.SpecializationNode; +import com.oracle.truffle.api.dsl.internal.SpecializedNode; import com.oracle.truffle.api.dsl.test.MergeSpecializationsTestFactory.TestCachedNodeFactory; import com.oracle.truffle.api.dsl.test.MergeSpecializationsTestFactory.TestNodeFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.util.Arrays; +import java.util.concurrent.CountDownLatch; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; +import org.junit.Test; public class MergeSpecializationsTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,9 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardCompareWithFieldTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardComplexTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualByteIntTestFactory; @@ -49,7 +45,12 @@ import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardStaticFieldTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardStaticFinalFieldCompareTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardUnboundMethodTestFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget; +import static com.oracle.truffle.api.dsl.test.TestHelper.getNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; +import org.junit.Test; @SuppressWarnings("unused") public class MethodGuardsTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsWithArgumentsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsWithArgumentsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsWithArgumentsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,9 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.MethodGuardsWithArgumentsTestFactory.MArguments0Factory; import com.oracle.truffle.api.dsl.test.MethodGuardsWithArgumentsTestFactory.MArguments1Factory; import com.oracle.truffle.api.dsl.test.MethodGuardsWithArgumentsTestFactory.MArgumentsDouble0Factory; @@ -34,8 +32,12 @@ import com.oracle.truffle.api.dsl.test.MethodGuardsWithArgumentsTestFactory.MArgumentsDouble2Factory; import com.oracle.truffle.api.dsl.test.MethodGuardsWithArgumentsTestFactory.MArgumentsDouble3Factory; import com.oracle.truffle.api.dsl.test.MethodGuardsWithArgumentsTestFactory.MArgumentsSingle2Factory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import org.junit.Assert; +import org.junit.Test; public class MethodGuardsWithArgumentsTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NameDuplicationTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NameDuplicationTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NameDuplicationTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,8 @@ */ package com.oracle.truffle.api.dsl.test; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; public class NameDuplicationTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NegatedGuardsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NegatedGuardsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NegatedGuardsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,14 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.NegatedGuardsTestFactory.NegatedGuardNodeFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import org.junit.Assert; +import org.junit.Test; public class NegatedGuardsTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NoTypeSystemTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NoTypeSystemTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NoTypeSystemTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,8 @@ */ package com.oracle.truffle.api.dsl.test; -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.NoTypeSystemTestFactory.JustFrameTestNodeGen; import com.oracle.truffle.api.dsl.test.NoTypeSystemTestFactory.NoParameterTestNodeGen; import com.oracle.truffle.api.dsl.test.NoTypeSystemTestFactory.ObjectInterfaceNodeGen; @@ -32,8 +31,11 @@ import com.oracle.truffle.api.dsl.test.NoTypeSystemTestFactory.ObjectStringTestNodeGen; import com.oracle.truffle.api.dsl.test.NoTypeSystemTestFactory.PrimitiveTestNodeGen; import com.oracle.truffle.api.dsl.test.NoTypeSystemTestFactory.TypesNotInTypeSystemTestNodeGen; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import org.junit.Assert; +import org.junit.Test; public class NoTypeSystemTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NodeChildNoNameTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NodeChildNoNameTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NodeChildNoNameTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,16 @@ */ package com.oracle.truffle.api.dsl.test; -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.NodeChildNoNameTestFactory.OneArgNoNameFactory; import com.oracle.truffle.api.dsl.test.NodeChildNoNameTestFactory.ThreeArgsNoNameFactory; import com.oracle.truffle.api.dsl.test.NodeChildNoNameTestFactory.TwoArgsNoNameFactory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import org.junit.Assert; +import org.junit.Test; public class NodeChildNoNameTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NodeChildTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NodeChildTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NodeChildTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,14 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.NodeFieldTestFactory.IntFieldTestNodeFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class NodeChildTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NodeFieldTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NodeFieldTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NodeFieldTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,9 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeField; +import com.oracle.truffle.api.dsl.NodeFields; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.NodeFieldTestFactory.IntFieldNoGetterTestNodeFactory; import com.oracle.truffle.api.dsl.test.NodeFieldTestFactory.IntFieldTestNodeFactory; import com.oracle.truffle.api.dsl.test.NodeFieldTestFactory.MultipleFieldsTestNodeFactory; @@ -35,7 +32,10 @@ import com.oracle.truffle.api.dsl.test.NodeFieldTestFactory.RewriteTestNodeFactory; import com.oracle.truffle.api.dsl.test.NodeFieldTestFactory.StringFieldTestNodeFactory; import com.oracle.truffle.api.dsl.test.NodeFieldTestFactory.TestContainerFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class NodeFieldTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NullLiteralGuardsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NullLiteralGuardsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NullLiteralGuardsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,17 +22,15 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.NullLiteralGuardsTestFactory.CompareNotNullNodeFactory; import com.oracle.truffle.api.dsl.test.NullLiteralGuardsTestFactory.CompareObjectsNullNodeFactory; import com.oracle.truffle.api.dsl.test.NullLiteralGuardsTestFactory.CompareStringNullNodeFactory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ChildrenNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; @SuppressWarnings("unused") public class NullLiteralGuardsTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NullTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NullTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/NullTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,16 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.NullTestFactory.NullTest1Factory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class NullTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/PolymorphicTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/PolymorphicTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/PolymorphicTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,21 +22,26 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.PolymorphicTestFactory.Polymorphic1Factory; import com.oracle.truffle.api.dsl.test.PolymorphicTestFactory.Polymorphic2Factory; import com.oracle.truffle.api.dsl.test.PolymorphicTestFactory.Polymorphic3Factory; import com.oracle.truffle.api.dsl.test.TestHelper.ExecutionListener; +import static com.oracle.truffle.api.dsl.test.TestHelper.array; +import static com.oracle.truffle.api.dsl.test.TestHelper.assertRuns; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeUtil; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import org.junit.Assert; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class PolymorphicTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/PolymorphicTest2.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/PolymorphicTest2.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/PolymorphicTest2.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,14 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.BinaryNodeTest.BinaryNode; import com.oracle.truffle.api.dsl.test.PolymorphicTest2Factory.Polymorphic1Factory; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.NodeCost; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class PolymorphicTest2 { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ReachabilityTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ReachabilityTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ReachabilityTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,13 @@ */ package com.oracle.truffle.api.dsl.test; -import java.math.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.TypeSystemTest.Abstract; import com.oracle.truffle.api.dsl.test.TypeSystemTest.BExtendsAbstract; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import java.math.BigInteger; public class ReachabilityTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ShortCircuitTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ShortCircuitTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/ShortCircuitTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,18 +22,22 @@ */ package com.oracle.truffle.api.dsl.test; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.ImplicitCast; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.ShortCircuit; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.TypeSystem; +import com.oracle.truffle.api.dsl.TypeSystemReference; import com.oracle.truffle.api.dsl.test.ShortCircuitTestFactory.DoubleChildNodeFactory; import com.oracle.truffle.api.dsl.test.ShortCircuitTestFactory.ShortCircuitWithImplicitCastNodeFactory; import com.oracle.truffle.api.dsl.test.ShortCircuitTestFactory.SingleChildNodeFactory; import com.oracle.truffle.api.dsl.test.ShortCircuitTestFactory.VarArgsNodeFactory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ArgumentNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class ShortCircuitTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SourceSectionTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SourceSectionTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SourceSectionTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,23 +22,30 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; - -import org.junit.*; -import org.junit.experimental.theories.*; -import org.junit.runner.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; +import com.oracle.truffle.api.dsl.CreateCast; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.internal.SpecializationNode; import com.oracle.truffle.api.dsl.test.SourceSectionTestFactory.SourceSection0Factory; import com.oracle.truffle.api.dsl.test.SourceSectionTestFactory.SourceSection1Factory; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRoot; +import static com.oracle.truffle.api.dsl.test.TestHelper.createRootPrefix; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ArgumentNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.SourceSection; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.sameInstance; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThat; +import org.junit.Test; +import org.junit.experimental.theories.DataPoints; +import org.junit.experimental.theories.Theories; +import org.junit.experimental.theories.Theory; +import org.junit.runner.RunWith; @RunWith(Theories.class) public class SourceSectionTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SpecializationFallthroughTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SpecializationFallthroughTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SpecializationFallthroughTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,10 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.SpecializationFallthroughTestFactory.FallthroughTest0Factory; import com.oracle.truffle.api.dsl.test.SpecializationFallthroughTestFactory.FallthroughTest1Factory; import com.oracle.truffle.api.dsl.test.SpecializationFallthroughTestFactory.FallthroughTest2Factory; @@ -34,8 +33,12 @@ import com.oracle.truffle.api.dsl.test.SpecializationFallthroughTestFactory.FallthroughTest4Factory; import com.oracle.truffle.api.dsl.test.SpecializationFallthroughTestFactory.FallthroughTest5Factory; import com.oracle.truffle.api.dsl.test.TestHelper.ExecutionListener; +import static com.oracle.truffle.api.dsl.test.TestHelper.array; +import static com.oracle.truffle.api.dsl.test.TestHelper.assertRuns; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import org.junit.Assert; +import org.junit.Test; public class SpecializationFallthroughTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SpecializationGroupingTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SpecializationGroupingTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/SpecializationGroupingTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,16 @@ */ package com.oracle.truffle.api.dsl.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.test.SpecializationGroupingTestFactory.TestElseConnectionBug1Factory; import com.oracle.truffle.api.dsl.test.SpecializationGroupingTestFactory.TestElseConnectionBug2Factory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.SlowPathException; +import org.junit.Assert; +import org.junit.Test; /** * Tests execution counts of guards. While we do not make guarantees for guard invocation except for diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TestHelper.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TestHelper.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TestHelper.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,18 +22,22 @@ */ package com.oracle.truffle.api.dsl.test; -import static org.junit.Assert.*; - -import java.util.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.dsl.NodeFactory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ArgumentNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ChildrenNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; /** * Utility class to provide some test helper functions. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TestSerialization.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TestSerialization.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TestSerialization.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,16 @@ */ package com.oracle.truffle.api.dsl.test; -import static com.oracle.truffle.api.dsl.test.TestHelper.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; +import static com.oracle.truffle.api.dsl.test.TestHelper.executeWith; import com.oracle.truffle.api.dsl.test.TestSerializationFactory.SerializedNodeFactory; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.NodeCost; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.junit.Test; public class TestSerialization { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TypeSystemErrorsTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TypeSystemErrorsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TypeSystemErrorsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,11 @@ */ package com.oracle.truffle.api.dsl.test; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.TypeCast; +import com.oracle.truffle.api.dsl.TypeCheck; +import com.oracle.truffle.api.dsl.TypeSystem; +import com.oracle.truffle.api.dsl.TypeSystemReference; import com.oracle.truffle.api.dsl.test.TypeSystemErrorsTest.Types1.Type1; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TypeSystemTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TypeSystemTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TypeSystemTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,21 @@ */ package com.oracle.truffle.api.dsl.test; -import java.math.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.GenerateNodeFactory; +import com.oracle.truffle.api.dsl.ImplicitCast; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.TypeCast; +import com.oracle.truffle.api.dsl.TypeCheck; +import com.oracle.truffle.api.dsl.TypeSystem; +import com.oracle.truffle.api.dsl.TypeSystemReference; +import com.oracle.truffle.api.dsl.internal.DSLOptions; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.api.source.SourceSection; +import java.math.BigInteger; public class TypeSystemTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/UnsupportedSpecializationTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/UnsupportedSpecializationTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/UnsupportedSpecializationTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,20 @@ */ package com.oracle.truffle.api.dsl.test; -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.ShortCircuit; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; import com.oracle.truffle.api.dsl.test.UnsupportedSpecializationTestFactory.Unsupported1Factory; import com.oracle.truffle.api.dsl.test.UnsupportedSpecializationTestFactory.Unsupported2Factory; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeUtil; +import java.util.List; +import org.junit.Assert; +import org.junit.Test; public class UnsupportedSpecializationTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/ExampleNode.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/ExampleNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/ExampleNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,16 @@ */ package com.oracle.truffle.api.dsl.test.examples; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.TypeSystemReference; +import com.oracle.truffle.api.dsl.internal.SpecializedNode; import com.oracle.truffle.api.dsl.test.TestingLanguage; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; @TypeSystemReference(ExampleTypes.class) @NodeChild(value = "args", type = ExampleNode[].class) diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/ExampleTypes.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/ExampleTypes.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/ExampleTypes.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,8 @@ */ package com.oracle.truffle.api.dsl.test.examples; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.ImplicitCast; +import com.oracle.truffle.api.dsl.TypeSystem; import com.oracle.truffle.api.dsl.test.examples.FunctionCall.Function; import com.oracle.truffle.api.dsl.test.examples.Interop.TruffleObject; import com.oracle.truffle.api.dsl.test.examples.RubyCall.InternalMethod; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/FunctionCall.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/FunctionCall.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/FunctionCall.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,19 @@ */ package com.oracle.truffle.api.dsl.test.examples; -import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.Specialization; +import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.createArguments; +import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.createDummyTarget; +import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.createTarget; import com.oracle.truffle.api.dsl.test.examples.FunctionCallFactory.FunctionCallNodeGen; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.DirectCallNode; +import com.oracle.truffle.api.nodes.IndirectCallNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; /** * This example illustrates how {@link Cached} can be used to implement function calls that use diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/Interop.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/Interop.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/Interop.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,17 +22,17 @@ */ package com.oracle.truffle.api.dsl.test.examples; -import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CallTarget; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.Specialization; +import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.createArguments; +import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.createTarget; import com.oracle.truffle.api.dsl.test.examples.InteropFactory.UseInteropNodeGen; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import static org.junit.Assert.assertEquals; +import org.junit.Test; /** * This example aims to illustrate how the {@link Cached} annotation can be used to implement a diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/MathPow.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/MathPow.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/MathPow.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,15 @@ */ package com.oracle.truffle.api.dsl.test.examples; -import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.Specialization; +import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.createArguments; +import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.createTarget; import com.oracle.truffle.api.dsl.test.examples.MathPowFactory.MathPowNodeGen; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import static org.junit.Assert.assertEquals; +import org.junit.Test; /** * This example shows possible specializations for a simplified math pow node. It demonstrates how diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/RubyCall.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/RubyCall.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/RubyCall.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,23 +22,28 @@ */ package com.oracle.truffle.api.dsl.test.examples; -import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.*; -import static org.junit.Assert.*; - -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CallTarget; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.ImportStatic; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.internal.SpecializedNode; +import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.createArguments; +import static com.oracle.truffle.api.dsl.test.examples.ExampleNode.createTarget; import com.oracle.truffle.api.dsl.test.examples.RubyCallFactory.RubyDispatchNodeGen; import com.oracle.truffle.api.dsl.test.examples.RubyCallFactory.RubyHeadNodeGen; import com.oracle.truffle.api.dsl.test.examples.RubyCallFactory.RubyLookupNodeGen; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.DirectCallNode; +import com.oracle.truffle.api.nodes.IndirectCallNode; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.Node.Child; +import com.oracle.truffle.api.utilities.CyclicAssumption; +import java.util.HashMap; +import java.util.Map; +import static org.junit.Assert.assertEquals; +import org.junit.Test; /** * This example illustrates a simplified version of a Ruby function call semantics (RubyHeadNode). diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/StableDispatch.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/StableDispatch.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/examples/StableDispatch.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,16 @@ */ package com.oracle.truffle.api.dsl.test.examples; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.DirectCallNode; +import com.oracle.truffle.api.nodes.IndirectCallNode; +import com.oracle.truffle.api.utilities.CyclicAssumption; /** * This example is based on the SLDispatchNode of SimpleLanguage. It shows how to implement a simple diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/processor/Compile.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/processor/Compile.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/processor/Compile.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,30 @@ */ package com.oracle.truffle.api.dsl.test.processor; -import static org.junit.Assert.*; - -import java.io.*; -import java.net.*; -import java.util.*; - -import javax.tools.*; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import javax.tools.Diagnostic; +import javax.tools.DiagnosticListener; +import javax.tools.FileObject; +import javax.tools.ForwardingJavaFileManager; +import javax.tools.JavaFileManager; +import javax.tools.JavaFileObject; import javax.tools.JavaFileObject.Kind; +import javax.tools.SimpleJavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.ToolProvider; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; final class Compile implements DiagnosticListener { private final List> errors = new ArrayList<>(); diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/processor/LanguageRegistrationTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/processor/LanguageRegistrationTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/processor/LanguageRegistrationTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,14 @@ */ package com.oracle.truffle.api.dsl.test.processor; -import java.io.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.debug.*; -import com.oracle.truffle.api.dsl.test.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.TruffleLanguage; +import com.oracle.truffle.api.debug.DebugSupportProvider; +import com.oracle.truffle.api.dsl.test.ExpectError; +import com.oracle.truffle.api.instrument.ToolSupportProvider; import com.oracle.truffle.api.nodes.Node; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.source.Source; +import java.io.IOException; public class LanguageRegistrationTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/processor/TruffleProcessorTest.java --- a/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/processor/TruffleProcessorTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/processor/TruffleProcessorTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,18 +22,17 @@ */ package com.oracle.truffle.api.dsl.test.processor; -import static org.junit.Assert.*; - -import java.util.*; - -import javax.annotation.processing.*; -import javax.tools.*; - -import org.junit.*; - -import com.oracle.truffle.api.dsl.test.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.dsl.processor.verify.*; +import com.oracle.truffle.api.dsl.test.ExpectError; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.dsl.processor.verify.VerifyTruffleProcessor; +import java.util.Locale; +import java.util.ServiceLoader; +import javax.annotation.processing.Processor; +import javax.tools.Diagnostic; +import javax.tools.JavaFileObject; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; +import org.junit.Test; /** * Verify errors emitted by the processor. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Cached.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Cached.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Cached.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,13 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.utilities.BranchProfile; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** *

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/CreateCast.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/CreateCast.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/CreateCast.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Specifies a factory method that creates a {@link Node} which is used to cast this child. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Fallback.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Fallback.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Fallback.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** *

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/GenerateNodeFactory.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/GenerateNodeFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/GenerateNodeFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Annotate nodes or base classes of nodes to generate factory handlers implementing the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/GeneratedBy.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/GeneratedBy.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/GeneratedBy.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Marks a type as being generated based on another class or method of a class. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ImplicitCast.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ImplicitCast.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ImplicitCast.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; @Retention(RetentionPolicy.CLASS) @Target({ElementType.METHOD}) diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Implies.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Implies.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Implies.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Experimental API. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ImportStatic.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ImportStatic.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ImportStatic.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Imports all public and static methods and fields of the provided diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeAssumptions.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeAssumptions.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeAssumptions.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * @deprecated use {@link NodeField} with type {@link Assumption} instead. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeChild.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeChild.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeChild.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * A {@link NodeChild} element defines an executable child for the enclosing {@link Node}. A diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeChildren.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeChildren.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeChildren.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; @Retention(RetentionPolicy.CLASS) @Target({ElementType.TYPE}) diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeFactory.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,8 @@ */ package com.oracle.truffle.api.dsl; -import java.util.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.util.List; /** * Enables the dynamic creation of generated nodes. It provides an convenient way to instantiate diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeField.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeField.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeField.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * A {@link NodeField} element defines a field for the generated {@link Node}. A {@link Node} diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeFields.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeFields.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/NodeFields.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * A {@link NodeFields} element defines a field for the generated {@link Node}. A {@link Node} diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ShortCircuit.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ShortCircuit.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ShortCircuit.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; @Retention(RetentionPolicy.CLASS) @Target({ElementType.METHOD}) diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Specialization.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Specialization.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Specialization.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,16 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.ExactMath; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** *

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeCast.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeCast.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeCast.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Overrides the standard way of casting a certain type in a {@link TypeSystem}. This is useful for diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeCheck.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeCheck.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeCheck.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Overrides the standard way of checking for a certain type in a {@link TypeSystem}. This is useful diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeSystem.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeSystem.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeSystem.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** *

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeSystemReference.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeSystemReference.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/TypeSystemReference.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.api.dsl; -import java.lang.annotation.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * References a {@link TypeSystem} on a node. Must be applied on a {@link Node} class. At least one diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/UnsupportedSpecializationException.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/UnsupportedSpecializationException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/UnsupportedSpecializationException.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,10 @@ */ package com.oracle.truffle.api.dsl; -import java.util.*; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.util.Arrays; +import java.util.Objects; /** * Thrown by the generated code of Truffle-DSL if no compatible Specialization could be found for diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/DSLNode.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/DSLNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/DSLNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.dsl.internal; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; /** * This is NOT public API. Do not use directly. This code may change without notice. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/DSLOptions.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/DSLOptions.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/DSLOptions.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.dsl.internal; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Internal DSL options to tune the generated code. These are expert options and not intended to be diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/DSLShare.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/DSLShare.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/DSLShare.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,11 @@ */ package com.oracle.truffle.api.dsl.internal; -import java.util.*; -import java.util.concurrent.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeCost; +import java.util.Arrays; +import java.util.concurrent.Callable; /** Contains utility classes shared across generated DSLNode implementations. */ public class DSLShare { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/NodeFactoryBase.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/NodeFactoryBase.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/NodeFactoryBase.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,11 @@ */ package com.oracle.truffle.api.dsl.internal; -import java.util.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.dsl.NodeFactory; +import com.oracle.truffle.api.nodes.Node; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * This is NOT public API. Do not use directly. This code may change without notice. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SlowPathEvent.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SlowPathEvent.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SlowPathEvent.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.dsl.internal; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.nodes.Node; /** * Lazy rewrite event that implements {@link CharSequence} to be provided as message in diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializationNode.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializationNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializationNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,12 +24,10 @@ */ package com.oracle.truffle.api.dsl.internal; -import java.lang.reflect.*; -import java.util.*; -import java.util.concurrent.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent0; import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent1; import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent2; @@ -37,8 +35,19 @@ import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent4; import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEvent5; import com.oracle.truffle.api.dsl.internal.SlowPathEvent.SlowPathEventN; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.nodes.ExplodeLoop; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeClass; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeFieldAccessor; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.NodeUtil; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.concurrent.Callable; /** * Internal implementation dependent base class for generated specialized nodes. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializedNode.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializedNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializedNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.dsl.internal; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.NodeInterface; /** * Implemented by DSL generated operation classes. This is internal implementation dependent API. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SuppressFBWarnings.java --- a/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SuppressFBWarnings.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SuppressFBWarnings.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,8 @@ */ package com.oracle.truffle.api.dsl.internal; -import java.lang.annotation.*; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; /** * Used to suppress FindBugs warnings. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/JavaInteropSpeedTest.java --- a/truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/JavaInteropSpeedTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/JavaInteropSpeedTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -28,10 +28,10 @@ import com.oracle.truffle.api.interop.java.JavaInterop; import java.util.Random; import org.junit.AfterClass; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; public class JavaInteropSpeedTest { private static final int REPEAT = 10000; @@ -92,7 +92,7 @@ if (javaTime < 1) { javaTime = 1; } - if (interopTime > 5 * javaTime) { + if (interopTime > 6 * javaTime) { fail("Interop took too long: " + interopTime + " ms, while java only " + javaTime + " ms"); } } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/MethodMessageTest.java --- a/truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/MethodMessageTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/MethodMessageTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -27,7 +27,9 @@ import com.oracle.truffle.api.interop.TruffleObject; import com.oracle.truffle.api.interop.java.JavaInterop; import com.oracle.truffle.api.interop.java.MethodMessage; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import org.junit.Test; public class MethodMessageTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/PrimitiveArrayInteropTest.java --- a/truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/PrimitiveArrayInteropTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/PrimitiveArrayInteropTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -27,9 +27,10 @@ import com.oracle.truffle.api.interop.TruffleObject; import com.oracle.truffle.api.interop.java.JavaInterop; import java.util.List; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; public class PrimitiveArrayInteropTest { public Object[] stringArr; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/PrimitiveRawArrayInteropTest.java --- a/truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/PrimitiveRawArrayInteropTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop.java.test/src/com/oracle/truffle/api/interop/java/test/PrimitiveRawArrayInteropTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -27,9 +27,10 @@ import com.oracle.truffle.api.interop.TruffleObject; import com.oracle.truffle.api.interop.java.JavaInterop; import java.util.List; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; public class PrimitiveRawArrayInteropTest { private Object[] objArr; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/InvokeMemberNode.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/InvokeMemberNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.truffle.api.interop.java; + +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.interop.ForeignAccess; +import com.oracle.truffle.api.nodes.RootNode; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.List; + +final class InvokeMemberNode extends RootNode { + InvokeMemberNode() { + super(JavaInteropLanguage.class, null, null); + } + + @Override + public Object execute(VirtualFrame frame) { + JavaInterop.JavaObject receiver = (JavaInterop.JavaObject) ForeignAccess.getReceiver(frame); + final List args = ForeignAccess.getArguments(frame); + final Object nameOrIndex = args.get(0); + final int argsLength = args.size() - 1; + if (nameOrIndex instanceof Integer) { + throw new IllegalStateException(); + } else { + String name = (String) nameOrIndex; + for (Method m : receiver.clazz.getMethods()) { + final boolean isStatic = (m.getModifiers() & Modifier.STATIC) != 0; + if (isStatic) { + continue; + } + if (m.getName().equals(name) && m.getParameterCount() == argsLength) { + Object[] arr = args.subList(1, args.size()).toArray(); + return JavaFunctionNode.execute(m, receiver.obj, arr); + } + } + throw new IllegalArgumentException(name); + } + } + +} diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaFunctionNode.java --- a/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaFunctionNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaFunctionNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -28,6 +28,7 @@ import com.oracle.truffle.api.interop.ForeignAccess; import com.oracle.truffle.api.nodes.RootNode; import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.List; final class JavaFunctionNode extends RootNode { @@ -42,15 +43,19 @@ return execute(receiver, args.toArray()); } + static Object execute(JavaInterop.JavaFunctionObject receiver, Object[] args) { + return execute(receiver.method, receiver.obj, args); + } + @SuppressWarnings("paramAssign") - static Object execute(JavaInterop.JavaFunctionObject receiver, Object[] args) { + static Object execute(Method method, Object obj, Object[] args) { for (int i = 0; i < args.length; i++) { if (args[i] instanceof JavaInterop.JavaObject) { args[i] = ((JavaInterop.JavaObject) args[i]).obj; } } try { - Object ret = receiver.method.invoke(receiver.obj, args); + Object ret = method.invoke(obj, args); if (JavaInterop.isPrimitive(ret)) { return ret; } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java --- a/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaInterop.java Mon Sep 21 11:21:03 2015 +0200 @@ -335,21 +335,29 @@ } if (message == null) { - val = message(Message.READ, obj, name); - if (isPrimitive(val)) { - return val; + Object ret; + try { + List callArgs = new ArrayList<>(args.length); + callArgs.add(name); + callArgs.addAll(Arrays.asList(args)); + ret = message(Message.createInvoke(callArgs.size()), obj, callArgs.toArray()); + } catch (IllegalArgumentException ex) { + val = message(Message.READ, obj, name); + if (isPrimitive(val)) { + return val; + } + TruffleObject attr = (TruffleObject) val; + if (Boolean.FALSE.equals(message(Message.IS_EXECUTABLE, attr))) { + if (args.length == 0) { + return toJava(attr, method); + } + throw new IllegalStateException(attr + " cannot be invoked with " + args.length + " parameters"); + } + List callArgs = new ArrayList<>(args.length + 1); + // callArgs.add(attr); + callArgs.addAll(Arrays.asList(args)); + ret = message(Message.createExecute(callArgs.size()), attr, callArgs.toArray()); } - TruffleObject attr = (TruffleObject) val; - if (Boolean.FALSE.equals(message(Message.IS_EXECUTABLE, attr))) { - if (args.length == 0) { - return toJava(attr, method); - } - throw new IllegalStateException(attr + " cannot be invoked with " + args.length + " parameters"); - } - List callArgs = new ArrayList<>(args.length + 1); - // callArgs.add(attr); - callArgs.addAll(Arrays.asList(args)); - Object ret = message(Message.createExecute(callArgs.size()), attr, callArgs.toArray()); return toJava(ret, method); } throw new IllegalStateException("Unknown message: " + message); diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaObjectForeignAccess.java --- a/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaObjectForeignAccess.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/JavaObjectForeignAccess.java Mon Sep 21 11:21:03 2015 +0200 @@ -78,7 +78,7 @@ @Override public CallTarget accessInvoke(int argumentsLength) { - return Truffle.getRuntime().createCallTarget(new JavaObjectMethodNode()); + return Truffle.getRuntime().createCallTarget(new InvokeMemberNode()); } @Override diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/MethodMessage.java --- a/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/MethodMessage.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop.java/src/com/oracle/truffle/api/interop/java/MethodMessage.java Mon Sep 21 11:21:03 2015 +0200 @@ -60,7 +60,7 @@ * Then one can change the value of field x in obj from Java by calling: * *
- * {@link JavaInterop#asJavaObject(java.lang.Class, com.oracle.truffle.api.interop.TruffleObject) JavaInterop.asJavaObject(ObjInterop.class, obj).x(10);
+ * {@link JavaInterop#asJavaObject(java.lang.Class, com.oracle.truffle.api.interop.TruffleObject) JavaInterop.asJavaObject}(ObjInterop.class, obj).x(10);
  * 
* * the value of the x field is going to be 10 then. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ForeignAccess.java --- a/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ForeignAccess.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ForeignAccess.java Mon Sep 21 11:21:03 2015 +0200 @@ -87,6 +87,8 @@ * @return return value, if any * @throws ClassCastException if the createNode has not been created by * {@link Message#createNode()} method. + * @throws IllegalAccessError if the receiver does not support the + * {@link Message#createNode() message represented} by foreignNode */ public static Object execute(Node foreignNode, VirtualFrame frame, TruffleObject receiver, Object... arguments) { ForeignObjectAccessHeadNode fn = (ForeignObjectAccessHeadNode) foreignNode; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ForeignObjectAccessHeadNode.java --- a/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ForeignObjectAccessHeadNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ForeignObjectAccessHeadNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,7 +25,7 @@ package com.oracle.truffle.api.interop; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.nodes.Node; final class ForeignObjectAccessHeadNode extends Node { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/Message.java --- a/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/Message.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/Message.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,10 @@ */ package com.oracle.truffle.api.interop; +import com.oracle.truffle.api.TruffleLanguage.Env; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.interop.ForeignAccess.Factory; import com.oracle.truffle.api.nodes.Node; -import com.oracle.truffle.api.interop.ForeignAccess.Factory; /** * Inter-operability is based on sending messages. Standard messages are defined as as constants @@ -34,35 +36,123 @@ */ public abstract class Message { /** + * One can define their own extended message by subclassing. The expectation is that the + * subclass will have public constructor and its {@link #equals(java.lang.Object)} and + * {@link #hashCode()} methods will operate on the class equivalence. Only then the subclass + * will work properly with {@link #valueOf(java.lang.String)} and + * {@link #toString(com.oracle.truffle.api.interop.Message)} methods. + */ + protected Message() { + } + + /** * Message to read an object field. The * {@link Factory#access(com.oracle.truffle.api.interop.Message) target} created for this - * message accepts single {@link ForeignAccess#getArguments(com.oracle.truffle.api.frame.Frame) - * argument} identifying a field to read - e.g. either {@link String} or an {@link Integer} - if - * access to an array at particular index is requested. + * message accepts (in addition to a + * {@link ForeignAccess#getReceiver(com.oracle.truffle.api.frame.Frame) receiver}) a single + * {@link ForeignAccess#getArguments(com.oracle.truffle.api.frame.Frame) argument} identifying a + * field to read - e.g. either {@link String} or an {@link Integer} - if access to an array at + * particular index is requested. The code that wants to send this message should use: + * + *
+     * {@link ForeignAccess}.{@link ForeignAccess#execute(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.interop.TruffleObject, java.lang.Object...) execute}(
+     *   {@link Message#READ}.{@link Message#createNode()}, {@link VirtualFrame currentFrame}, receiver, nameOfTheField
+     * );
+     * 
+ * + * Where receiver is the {@link TruffleObject foreign object} to access and + * nameOfTheField is the name (or index) of its field. + *

+ * To achieve good performance it is essential to cache/keep reference to the + * {@link Message#createNode() created node}. */ public static final Message READ = Read.INSTANCE; /** * Converts {@link TruffleObject truffle value} to Java primitive type. Primitive types are - * subclasses of {@link Number}, {@link Boolean}, {@link Character} and {@link String}. Related - * to {@link #IS_BOXED} message. + * subclasses of {@link Number}, {@link Boolean}, {@link Character} and {@link String}. Before + * sending the {@link #UNBOX} message, it is desirable to send the {@link #IS_BOXED} one and + * verify that the object can really be unboxed. To unbox an object, use: + * + *

+     * {@link ForeignAccess}.{@link ForeignAccess#execute(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.interop.TruffleObject, java.lang.Object...) execute}(
+     *   {@link Message#UNBOX}.{@link Message#createNode()}, {@link VirtualFrame currentFrame}, objectToUnbox
+     * );
+     * 
+ * + * The returned value should be subclass of {@link Number}, {@link Boolean}, {@link Character} + * or {@link String}. + *

+ * To achieve good performance it is essential to cache/keep reference to the + * {@link Message#createNode() created node}. */ public static final Message UNBOX = Unbox.INSTANCE; /** * Message to write a field. The {@link Factory#access(com.oracle.truffle.api.interop.Message) - * target} created for this message accepts two + * target} created for this message accepts the object to modify as a + * {@link ForeignAccess#getReceiver(com.oracle.truffle.api.frame.Frame) receiver} and two * {@link ForeignAccess#getArguments(com.oracle.truffle.api.frame.Frame) arguments}. The first * one identifies a field to read - e.g. either {@link String} or an {@link Integer} - if access * to an array at particular index is requested. The second one is the value to assign to such - * field. + * field. Use following style to construct field modification message: + * + *

+     * {@link ForeignAccess}.{@link ForeignAccess#execute(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.interop.TruffleObject, java.lang.Object...) execute}(
+     *   {@link Message#WRITE}.{@link Message#createNode()}, {@link VirtualFrame currentFrame}, receiver, nameOfTheField, newValue
+     * );
+     * 
+ * + * Where receiver is the {@link TruffleObject foreign object} to access, + * nameOfTheField is the name (or index) of its field and newValue is + * the value to assign to the receiver's field. + *

+ * To achieve good performance it is essential to cache/keep reference to the + * {@link Message#createNode() created node}. */ public static Message WRITE = Write.INSTANCE; /** - * Creates an execute message. All messages created by this method are - * {@link Object#equals(java.lang.Object) equal} to each other regardless of the value of - * argumentsLength. + * Creates a non-object oriented execution message. In contrast to {@link #createInvoke(int)} + * messages, which are more suitable for dealing with object oriented style of programming, + * messages created by this method are more suitable for execution where one can explicitly + * control all passed in arguments. + *

+ * To inter-operate with a non-OOP language like C - for example to execute its + * function: + * + *

+     * double add(double a, double b) {
+     *   return a + b;
+     * }
+     * 
+ * + * One can obtain reference to the add function (for example by + * {@link Env#importSymbol(java.lang.String) importing it as a global symbol}) and store it into + * variable addFunction. Then it's time to check the object is executable by + * sending it the {@link #IS_EXECUTABLE} message. If the answer is true one can: + * + *
+     * {@link ForeignAccess}.{@link ForeignAccess#execute(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.interop.TruffleObject, java.lang.Object...) execute}(
+     *   {@link Message#createExecute(int) Message.createExecute}(2).{@link Message#createNode()}, {@link VirtualFrame currentFrame}, addFunction, valueOfA, valueOfB
+     * );
+     * 
+ * + * The valueOfA and valueOfB should be double or + * {@link Double} or at least be {@link #UNBOX unboxable} to such type. + *

+ * One can use this method to talk to object oriented language as well, however one needs to pay + * attention to provide all necessary arguments manually - usually an OOP language requires the + * first argument to represent this or self and only then pass in the + * additional arguments. It may be easier to use {@link #createInvoke(int)} message which is + * more suitable for object oriented languages and handles (if supported) the arguments + * manipulation automatically. + *

+ * + * + *

+ * All messages created by this method are {@link Object#equals(java.lang.Object) equal} to each + * other regardless of the value of argumentsLength. * * @param argumentsLength number of parameters to pass to the target * @return execute message @@ -72,21 +162,91 @@ } /** - * Message to check for executability. + * Message to check executability of a + * {@link ForeignAccess#getReceiver(com.oracle.truffle.api.frame.Frame) foreign object}. *

* Calling {@link Factory#access(com.oracle.truffle.api.interop.Message) the target} created for - * this message should yield value of {@link Boolean}. + * this message accepts {@link ForeignAccess#getArguments(com.oracle.truffle.api.frame.Frame) no + * arguments} and a single non-null + * {@link ForeignAccess#getReceiver(com.oracle.truffle.api.frame.Frame) receiver}. The call + * should yield value of {@link Boolean}. Either {@link Boolean#TRUE} if the receiver can be + * executed (e.g. accepts {@link #createExecute(int)} message, or {@link Boolean#FALSE} + * otherwise. This is the way to send the IS_EXECUTABLE message: + * + *

+     * {@link Boolean} canBeExecuted = ({@link Boolean}) {@link ForeignAccess}.execute(
+     *   {@link Message#IS_EXECUTABLE}.{@link Message#createNode()}, {@link VirtualFrame currentFrame}, receiver
+     * );
+     * 
+ *

+ * To achieve good performance it is essential to cache/keep reference to the + * {@link Message#createNode() created node}. */ public static final Message IS_EXECUTABLE = IsExecutable.INSTANCE; /** - * Creates an execute message. All messages created by this method are - * {@link Object#equals(java.lang.Object) equal} to each other regardless of the value of - * argumentsLength. The expected behavior of this message is to perform - * {@link #READ} first and on the result invoke {@link #createExecute(int)}. + * Creates an object oriented execute message. Unlike {@link #createExecute(int)} the receiver + * of the message isn't the actual function to invoke, but an object. The object has the + * function as a field, or as a field of its class, or whatever is appropriate for an object + * oriented language. + *

+ * Languages that don't support object oriented semantics do not and should not implement this + * message. When the invoke message isn't supported, the caller is expected to fall back into + * following basic operations: + *

    + *
  • sending {@link #READ} message to access the field
  • + *
  • verify the result {@link #IS_EXECUTABLE}, if so continue by
  • + *
  • sending {@link #createExecute(int) execute message}
  • + *
+ *

+ * The last step is problematic, as it is not clear whether to pass just the execution + * arguments, or prefix them with the original receiver (aka this or + * self). Object oriented languages would in general welcome obtaining the + * receiving object as first argument, non-object languages like C would get confused + * by doing so. However it is not possible for the caller to find out what language one is + * sending message to - only the set of supported messages is known. As a result it is + * recommended for object oriented languages to support the {@link #createInvoke(int)} message + * and handle the semantics the way it is natural to them. Languages like C shouldn't + * implement {@link #createInvoke(int)} and just support primitive operations like + * {@link #createExecute(int)} and {@link #READ}. + *

+ * When accessing a method of an object in an object oriented manner, one is supposed to send + * the {@link #createInvoke(int)} message first. Only when that fails, fallback to non-object + * oriented workflow with {@link #createExecute(int)}. Imagine there is a Java class + * with add method and its instance: + * + *

+     * public class Arith {
+     *    public double add(double a, double b) {
+     *      return a + b;
+     *    }
+     * }
+     * Arith obj = new Arith();
+     * 
+ * + * To access obj's add method one should use: + * + *
+     * try {
+     *   {@link ForeignAccess}.{@link ForeignAccess#execute(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.interop.TruffleObject, java.lang.Object...) execute}(
+     *     {@link Message#createInvoke(int) Message.createInvoke}(2).{@link Message#createNode()}, {@link VirtualFrame currentFrame}, obj, "add", valueOfA, valueOfB
+     *   );
+     * } catch ({@link IllegalArgumentException} ex) {
+     *   // access the language via {@link #createExecute(int)}
+     * }
+     * 
+ * + * The valueOfA and valueOfB should be double or + * {@link Double} or at least be {@link #UNBOX unboxable} to such type. + *

+ * All messages created by this method are {@link Object#equals(java.lang.Object) equal} to each + * other regardless of the value of argumentsLength. The expected behavior of this + * message is to perform {@link #READ} first and on the result invoke + * {@link #createExecute(int)}. * * @param argumentsLength number of parameters to pass to the target - * @return read & execute message + * @return message combining read & execute messages tailored for use with object oriented + * languages */ public static Message createInvoke(int argumentsLength) { return Execute.create(Execute.INVOKE, argumentsLength); @@ -100,7 +260,7 @@ * receiver} and then perform its constructor with appropriate number of arguments. * * @param argumentsLength number of parameters to pass to the target - * @return read & execute message + * @return new instance message */ public static Message createNew(int argumentsLength) { return Execute.create(Execute.NEW, argumentsLength); @@ -110,10 +270,20 @@ * Check for null message. The Truffle languages are suggested to have their own * object representing null like values in their languages. For purposes of * inter-operability it is essential to canonicalize such values from time to time - sending - * this message is a way to recognize such null representing values. + * this message is a way to recognize such null representing values: + * + *

+     * {@link Boolean} isNull = ({@link Boolean}) {@link ForeignAccess}.execute(
+     *   {@link Message#IS_NULL}.{@link Message#createNode()}, {@link VirtualFrame currentFrame}, objectToCheckForNull
+     * );
+     * 
+ * *

* Calling {@link Factory#access(com.oracle.truffle.api.interop.Message) the target} created for * this message should yield value of {@link Boolean}. + *

+ * To achieve good performance it is essential to cache/keep reference to the + * {@link Message#createNode() created node}. */ public static final Message IS_NULL = IsNull.INSTANCE; @@ -135,13 +305,21 @@ public static final Message GET_SIZE = GetSize.INSTANCE; /** - * Check for value being boxed. Can you value be converted to one of the basic Java types? Many - * languages have a special representation for types like number, string, etc. To ensure - * inter-operability, these types should support unboxing - if they do, they should handle this - * message. - *

+ * Check for value being boxed. Can the {@link TruffleObject foreign object} be converted to one + * of the basic Java types? Many languages have a special representation for types like number, + * string, etc. To ensure inter-operability, these types should support unboxing - if they do, + * they should handle this message and return {@link Boolean#TRUE}. The way to check whether an + * object is boxed is: + * + *

+     * {@link Boolean} isBoxed = ({@link Boolean}) {@link ForeignAccess}.execute(
+     *   {@link Message#IS_BOXED}.{@link Message#createNode()}, {@link VirtualFrame currentFrame}, objectToCheck
+     * );
+     * 
+ * * Calling {@link Factory#accessMessage(com.oracle.truffle.api.interop.Message) the target} - * created for this message should yield value of {@link Boolean}. + * created for this message should yield value of {@link Boolean}. If the object responds with + * {@link Boolean#TRUE}, it is safe to continue by sending it {@link #UNBOX} message. */ public static final Message IS_BOXED = IsBoxed.INSTANCE; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ObjectAccessNode.java --- a/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ObjectAccessNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ObjectAccessNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.interop; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; abstract class ObjectAccessNode extends Node { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/DynamicObject.java --- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/DynamicObject.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/DynamicObject.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.object; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.interop.*; +import com.oracle.truffle.api.TypedObject; +import com.oracle.truffle.api.interop.TruffleObject; /** * Represents an object members of which can be dynamically added and removed at run time. @@ -103,24 +103,6 @@ public abstract void define(Object key, Object value, int flags, LocationFactory locationFactory); /** - * Change property flags. - * - * @param key property identifier - * @param newFlags flags to be set - * @return {@code true} if successful or {@code false} if property not found - */ - public abstract boolean changeFlags(Object key, int newFlags); - - /** - * Change property flags. - * - * @param key property identifier - * @param flagsUpdateFunction function updating old flags to new flags - * @return {@code true} if successful or {@code false} if property not found - */ - public abstract boolean changeFlags(Object key, FlagsFunction flagsUpdateFunction); - - /** * Delete property. * * @param key property identifier @@ -167,14 +149,4 @@ * @param currentShape the object's current shape (must equal {@link #getShape()}) */ public abstract DynamicObject copy(Shape currentShape); - - /** - * Represents an operation on a single {@code int}-valued operand that produces an {@code int} - * -valued result. - * - * For Java 7 compatibility (equivalent to IntUnaryOperator). - */ - public interface FlagsFunction { - int apply(int t); - } } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/FinalLocationException.java --- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/FinalLocationException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/FinalLocationException.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.object; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.SlowPathException; /** * This exception is thrown on an attempt to assign a value to a final location. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/IncompatibleLocationException.java --- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/IncompatibleLocationException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/IncompatibleLocationException.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.object; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.SlowPathException; /** * This exception is thrown on an attempt to assign an incompatible value to a location. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java --- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,10 @@ */ package com.oracle.truffle.api.object; -import java.util.*; - import com.oracle.truffle.api.nodes.NodeUtil.FieldOffsetProvider; import com.oracle.truffle.api.object.Shape.Allocator; +import java.util.EnumSet; +import java.util.ServiceLoader; /** * Describes layout and behavior of a {@link DynamicObject} subclass and is used to create shapes. @@ -51,16 +51,27 @@ IntToLong, } + /** + * Create a new {@link LayoutBuilder}. + */ + public static Builder newLayout() { + return new Builder(); + } + + /** + * Equivalent to {@code Layout.newLayout().build()}. + */ public static Layout createLayout() { return createLayout(NONE); } + /** + * Equivalent to + * {@code Layout.newLayout().setAllowedImplicitCasts(allowedImplicitCasts).build()}. + */ + @Deprecated public static Layout createLayout(EnumSet allowedImplicitCasts) { - return new LayoutBuilder().setAllowedImplicitCasts(allowedImplicitCasts).build(); - } - - public static Layout createLayout(EnumSet allowedImplicitCasts, FieldOffsetProvider fieldOffsetProvider) { - return new LayoutBuilder().setAllowedImplicitCasts(allowedImplicitCasts).setFieldOffsetProvider(fieldOffsetProvider).build(); + return newLayout().setAllowedImplicitCasts(allowedImplicitCasts).build(); } public abstract DynamicObject newInstance(Shape shape); @@ -115,4 +126,55 @@ } return bestLayoutFactory; } + + /** + * Layout builder. + * + * @see Layout + */ + public static final class Builder { + private EnumSet allowedImplicitCasts; + private FieldOffsetProvider fieldOffsetProvider; + + /** + * Create a new layout builder. + */ + private Builder() { + this.allowedImplicitCasts = Layout.NONE; + this.fieldOffsetProvider = null; + } + + /** + * Build {@link Layout} from the configuration in this builder. + */ + public Layout build() { + return Layout.getFactory().createLayout(this); + } + + /** + * Set the allowed implicit casts in this layout. + * + * @see Layout.ImplicitCast + */ + public Builder setAllowedImplicitCasts(EnumSet allowedImplicitCasts) { + this.allowedImplicitCasts = allowedImplicitCasts; + return this; + } + + /** + * Set a custom field offset provider for this layout. + */ + public Builder setFieldOffsetProvider(FieldOffsetProvider fieldOffsetProvider) { + this.fieldOffsetProvider = fieldOffsetProvider; + return this; + } + + public EnumSet getAllowedImplicitCasts() { + return allowedImplicitCasts; + } + + public FieldOffsetProvider getFieldOffsetProvider() { + return fieldOffsetProvider; + } + } } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutBuilder.java --- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutBuilder.java Mon Sep 21 10:55:36 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.oracle.truffle.api.object; - -import java.util.*; - -import com.oracle.truffle.api.nodes.NodeUtil.FieldOffsetProvider; -import com.oracle.truffle.api.object.Layout.ImplicitCast; - -/** - * Layout builder. - * - * @see Layout - */ -public class LayoutBuilder { - private EnumSet allowedImplicitCasts; - private FieldOffsetProvider fieldOffsetProvider; - - public LayoutBuilder() { - this.allowedImplicitCasts = Layout.NONE; - this.fieldOffsetProvider = null; - } - - public Layout build() { - return Layout.getFactory().createLayout(this); - } - - public LayoutBuilder setAllowedImplicitCasts(EnumSet allowedImplicitCasts) { - this.allowedImplicitCasts = allowedImplicitCasts; - return this; - } - - public LayoutBuilder setFieldOffsetProvider(FieldOffsetProvider fieldOffsetProvider) { - this.fieldOffsetProvider = fieldOffsetProvider; - return this; - } - - public EnumSet getAllowedImplicitCasts() { - return allowedImplicitCasts; - } - - public FieldOffsetProvider getFieldOffsetProvider() { - return fieldOffsetProvider; - } -} diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutFactory.java --- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,7 +25,7 @@ package com.oracle.truffle.api.object; public interface LayoutFactory { - Layout createLayout(LayoutBuilder layoutBuilder); + Layout createLayout(Layout.Builder layoutBuilder); Property createProperty(Object id, Location location); diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Location.java --- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Location.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Location.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.object; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; /** * Property location. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java --- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,11 @@ */ package com.oracle.truffle.api.object; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.interop.ForeignAccess; import com.oracle.truffle.api.interop.Message; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.interop.*; +import com.oracle.truffle.api.interop.TruffleObject; public class ObjectType { /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Shape.java --- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Shape.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Shape.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,9 @@ */ package com.oracle.truffle.api.object; -import java.util.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; +import java.util.EnumSet; +import java.util.List; /** * Shape objects create a mapping of Property objects to Locations. Shapes are immutable; adding or @@ -225,20 +225,6 @@ */ public abstract Object getMutex(); - public abstract int getObjectArraySize(); - - public abstract int getObjectFieldSize(); - - public abstract int getPrimitiveArraySize(); - - public abstract int getPrimitiveFieldSize(); - - public abstract int getObjectArrayCapacity(); - - public abstract int getPrimitiveArrayCapacity(); - - public abstract boolean hasPrimitiveArray(); - /** * Are these two shapes related, i.e. do they have the same root? * @@ -247,15 +233,35 @@ */ public abstract boolean isRelated(Shape other); + /** + * Try to merge two related shapes to a more general shape that has the same properties and can + * store at least the values of both shapes. + * + * @return this, other, or a new shape that is compatible with both shapes + */ public abstract Shape tryMerge(Shape other); + /** + * Utility class to allocate locations in an object layout. + */ public abstract static class Allocator { protected abstract Location locationForValue(Object value, boolean useFinal, boolean nonNull); + /** + * Create a new location compatible with the given initial value. + * + * @param value the initial value this location is going to be assigned + */ public final Location locationForValue(Object value) { return locationForValue(value, false, value != null); } + /** + * Create a new location compatible with the given initial value. + * + * @param value the initial value this location is going to be assigned + * @param modifiers additional restrictions and semantics + */ public final Location locationForValue(Object value, EnumSet modifiers) { assert value != null || !modifiers.contains(LocationModifier.NonNull); return locationForValue(value, modifiers.contains(LocationModifier.Final), modifiers.contains(LocationModifier.NonNull)); @@ -263,22 +269,45 @@ protected abstract Location locationForType(Class type, boolean useFinal, boolean nonNull); + /** + * Create a new location for a fixed type. It can only be assigned to values of this type. + * + * @param type the Java type this location must be compatible with (may be primitive) + */ public final Location locationForType(Class type) { return locationForType(type, false, false); } + /** + * Create a new location for a fixed type. + * + * @param type the Java type this location must be compatible with (may be primitive) + * @param modifiers additional restrictions and semantics + */ public final Location locationForType(Class type, EnumSet modifiers) { return locationForType(type, modifiers.contains(LocationModifier.Final), modifiers.contains(LocationModifier.NonNull)); } + /** + * Creates a new location from a constant value. The value is stored in the shape rather + * than in the object. + */ public abstract Location constantLocation(Object value); + /** + * Creates a new declared location with a default value. A declared location only assumes a + * type after the first set (initialization). + */ public abstract Location declaredLocation(Object value); + /** + * Reserves space for the given location, so that it will not be available to subsequently + * allocated locations. + */ public abstract Allocator addLocation(Location location); /** - * Creates an copy of this allocator. + * Creates an copy of this allocator state. */ public abstract Allocator copy(); } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ArgumentsTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ArgumentsTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ArgumentsTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,14 @@ */ package com.oracle.truffle.api.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import org.junit.Assert; +import org.junit.Test; /** *

Passing Arguments

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/CallTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/CallTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/CallTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,13 @@ */ package com.oracle.truffle.api.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.RootNode; +import org.junit.Assert; +import org.junit.Test; /** *

Calling Another Tree

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ChildNodeTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ChildNodeTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ChildNodeTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,16 @@ */ package com.oracle.truffle.api.test; -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.Node.Child; +import com.oracle.truffle.api.nodes.RootNode; +import java.util.Iterator; +import org.junit.Assert; +import org.junit.Test; /** *

Creating a Child Node

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ChildrenNodesTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ChildrenNodesTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ChildrenNodesTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,15 @@ */ package com.oracle.truffle.api.test; -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import java.util.Iterator; +import org.junit.Assert; +import org.junit.Test; /** *

Creating an Array of Children Nodes

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FinalFieldTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FinalFieldTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FinalFieldTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,14 @@ */ package com.oracle.truffle.api.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import org.junit.Assert; +import org.junit.Test; /** *

Using Final Fields in Node Classes

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FrameSlotTypeSpecializationTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FrameSlotTypeSpecializationTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FrameSlotTypeSpecializationTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,18 @@ */ package com.oracle.truffle.api.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.frame.FrameSlotKind; +import com.oracle.truffle.api.frame.FrameSlotTypeException; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import org.junit.Assert; +import org.junit.Test; /** *

Specializing Frame Slot Types

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FrameTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FrameTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/FrameTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,19 @@ */ package com.oracle.truffle.api.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.frame.FrameSlotKind; +import com.oracle.truffle.api.frame.FrameSlotTypeException; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import org.junit.Assert; +import org.junit.Test; /** *

Storing Values in Frame Slots

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/InterfaceChildFieldTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/InterfaceChildFieldTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/InterfaceChildFieldTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,17 @@ */ package com.oracle.truffle.api.test; -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeInterface; +import com.oracle.truffle.api.nodes.NodeUtil; +import com.oracle.truffle.api.nodes.RootNode; +import java.util.Iterator; +import org.junit.Assert; +import org.junit.Test; /** * Test child fields declared with interface types instead of {@link Node} subclasses. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ReplaceTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ReplaceTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ReplaceTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,16 @@ */ package com.oracle.truffle.api.test; -import static org.junit.Assert.*; - -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import java.util.Iterator; +import org.junit.Assert; +import static org.junit.Assert.assertEquals; +import org.junit.Test; /** *

Replacing Nodes at Run Time

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ReturnTypeSpecializationTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ReturnTypeSpecializationTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ReturnTypeSpecializationTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,19 @@ */ package com.oracle.truffle.api.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.frame.FrameSlotKind; +import com.oracle.truffle.api.frame.FrameSlotTypeException; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import org.junit.Assert; +import org.junit.Test; /** *

Specializing Return Types

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/RootNodeTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/RootNodeTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/RootNodeTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,13 @@ */ package com.oracle.truffle.api.test; -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.RootNode; +import org.junit.Assert; +import org.junit.Test; /** *

Creating a Root Node

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ThreadSafetyTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ThreadSafetyTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/ThreadSafetyTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,17 +22,23 @@ */ package com.oracle.truffle.api.test; -import static org.junit.Assert.*; - -import java.util.*; -import java.util.concurrent.*; -import java.util.concurrent.atomic.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.DirectCallNode; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeUtil; +import com.oracle.truffle.api.nodes.RootNode; +import java.util.Random; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.junit.Ignore; +import org.junit.Test; /** * Test node rewriting in a tree shared across multiple threads (run with -ea). diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/TruffleRuntimeTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/TruffleRuntimeTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/TruffleRuntimeTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,25 @@ */ package com.oracle.truffle.api.test; -import static org.junit.Assert.*; - -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeUtil; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import org.junit.Before; +import org.junit.Test; /** *

Accessing the Truffle Runtime

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/AdvancedInstrumentTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/AdvancedInstrumentTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/AdvancedInstrumentTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,17 +22,20 @@ */ package com.oracle.truffle.api.test.instrument; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.instrument.AdvancedInstrumentRoot; +import com.oracle.truffle.api.instrument.AdvancedInstrumentRootFactory; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.test.instrument.InstrumentationTestNodes.TestAdditionNode; import com.oracle.truffle.api.test.instrument.InstrumentationTestNodes.TestAdvancedInstrumentCounterRoot; import com.oracle.truffle.api.test.instrument.InstrumentationTestNodes.TestRootNode; import com.oracle.truffle.api.test.instrument.InstrumentationTestNodes.TestValueNode; +import static org.junit.Assert.assertEquals; +import org.junit.Test; /** * Tests the kind of instrumentation where a client can provide an AST fragment to be diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/InstrumentationTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/InstrumentationTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/InstrumentationTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,24 +22,37 @@ */ package com.oracle.truffle.api.test.instrument; -import static org.junit.Assert.*; - -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.ASTProber; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeException; import com.oracle.truffle.api.instrument.ProbeFailure.Reason; +import com.oracle.truffle.api.instrument.ProbeNode; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.instrument.impl.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.instrument.SimpleInstrumentListener; +import com.oracle.truffle.api.instrument.StandardInstrumentListener; +import com.oracle.truffle.api.instrument.SyntaxTag; +import com.oracle.truffle.api.instrument.impl.DefaultProbeListener; +import com.oracle.truffle.api.instrument.impl.DefaultSimpleInstrumentListener; +import com.oracle.truffle.api.instrument.impl.DefaultStandardInstrumentListener; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeVisitor; +import com.oracle.truffle.api.nodes.RootNode; import com.oracle.truffle.api.test.instrument.InstrumentationTestNodes.TestAdditionNode; import com.oracle.truffle.api.test.instrument.InstrumentationTestNodes.TestLanguageNode; import com.oracle.truffle.api.test.instrument.InstrumentationTestNodes.TestLanguageWrapperNode; import com.oracle.truffle.api.test.instrument.InstrumentationTestNodes.TestRootNode; import com.oracle.truffle.api.test.instrument.InstrumentationTestNodes.TestValueNode; +import java.util.Iterator; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import org.junit.Test; /** *

AST Instrumentation

diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/InstrumentationTestNodes.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/InstrumentationTestNodes.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/InstrumentationTestNodes.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,17 @@ */ package com.oracle.truffle.api.test.instrument; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.AdvancedInstrumentRoot; +import com.oracle.truffle.api.instrument.KillException; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeNode; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.RootNode; import com.oracle.truffle.api.test.TestingLanguage; /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/interop/ForeignAccessSingleThreadedTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/interop/ForeignAccessSingleThreadedTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/interop/ForeignAccessSingleThreadedTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -27,11 +27,11 @@ import com.oracle.truffle.api.interop.Message; import com.oracle.truffle.api.interop.TruffleObject; import com.oracle.truffle.api.nodes.Node; - -import org.junit.*; - +import org.junit.After; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; +import org.junit.Before; +import org.junit.Test; public class ForeignAccessSingleThreadedTest implements ForeignAccess.Factory, TruffleObject { ForeignAccess fa; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/interop/MessageStringTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/interop/MessageStringTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/interop/MessageStringTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -27,7 +27,9 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Locale; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; import org.junit.Test; public class MessageStringTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/NodeUtilTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/NodeUtilTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/NodeUtilTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,15 @@ */ package com.oracle.truffle.api.test.nodes; -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; - -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeUtil; +import com.oracle.truffle.api.nodes.RootNode; import com.oracle.truffle.api.test.TestingLanguage; +import java.util.Iterator; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import org.junit.Test; public class NodeUtilTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/SafeReplaceTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/SafeReplaceTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/SafeReplaceTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,14 @@ */ package com.oracle.truffle.api.test.nodes; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; import com.oracle.truffle.api.test.TestingLanguage; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import org.junit.Test; /** * Tests optional method for ensuring that a node replacement is type safe. Ordinary node diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/PostOrderDeserializerTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/PostOrderDeserializerTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/PostOrderDeserializerTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,9 @@ */ package com.oracle.truffle.api.test.nodes.serial; -import java.nio.*; -import java.util.*; - -import org.junit.*; - -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.nodes.serial.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.serial.PostOrderDeserializer; +import com.oracle.truffle.api.nodes.serial.VariableLengthIntBuffer; import com.oracle.truffle.api.test.nodes.serial.TestNodes.EmptyNode; import com.oracle.truffle.api.test.nodes.serial.TestNodes.NodeWithArray; import com.oracle.truffle.api.test.nodes.serial.TestNodes.NodeWithFields; @@ -37,6 +33,12 @@ import com.oracle.truffle.api.test.nodes.serial.TestNodes.NodeWithTwoArray; import com.oracle.truffle.api.test.nodes.serial.TestNodes.NodeWithTwoChilds; import com.oracle.truffle.api.test.nodes.serial.TestNodes.StringNode; +import java.nio.ByteBuffer; +import java.util.Iterator; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; public class PostOrderDeserializerTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/PostOrderSerializerTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/PostOrderSerializerTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/PostOrderSerializerTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,19 @@ */ package com.oracle.truffle.api.test.nodes.serial; -import org.junit.*; - -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.nodes.serial.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.serial.PostOrderSerializer; +import com.oracle.truffle.api.nodes.serial.VariableLengthIntBuffer; import com.oracle.truffle.api.test.nodes.serial.TestNodes.EmptyNode; import com.oracle.truffle.api.test.nodes.serial.TestNodes.NodeWithArray; import com.oracle.truffle.api.test.nodes.serial.TestNodes.NodeWithFields; import com.oracle.truffle.api.test.nodes.serial.TestNodes.NodeWithThreeChilds; import com.oracle.truffle.api.test.nodes.serial.TestNodes.NodeWithTwoArray; import com.oracle.truffle.api.test.nodes.serial.TestNodes.StringNode; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; public class PostOrderSerializerTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/TestNodes.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/TestNodes.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/TestNodes.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,8 @@ */ package com.oracle.truffle.api.test.nodes.serial; -import java.util.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.util.Objects; final class TestNodes { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/TestSerializerConstantPool.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/TestSerializerConstantPool.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/TestSerializerConstantPool.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,10 @@ */ package com.oracle.truffle.api.test.nodes.serial; -import java.util.*; - -import com.oracle.truffle.api.nodes.serial.*; +import com.oracle.truffle.api.nodes.serial.SerializerConstantPool; +import com.oracle.truffle.api.nodes.serial.UnsupportedConstantPoolTypeException; +import java.util.HashMap; +import java.util.Map; class TestSerializerConstantPool implements SerializerConstantPool { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/VariableLengthIntBufferTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/VariableLengthIntBufferTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/nodes/serial/VariableLengthIntBufferTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,12 @@ */ package com.oracle.truffle.api.test.nodes.serial; -import java.nio.*; - -import org.junit.*; - -import com.oracle.truffle.api.nodes.serial.*; +import com.oracle.truffle.api.nodes.serial.VariableLengthIntBuffer; +import java.nio.ByteBuffer; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; public class VariableLengthIntBufferTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/BytesSourceSectionTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/BytesSourceSectionTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/BytesSourceSectionTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,10 @@ */ package com.oracle.truffle.api.test.source; -import static org.junit.Assert.*; - -import java.nio.charset.*; - -import org.junit.*; - -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.source.Source; +import java.nio.charset.StandardCharsets; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class BytesSourceSectionTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/SourceSectionTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/SourceSectionTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/SourceSectionTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,12 @@ */ package com.oracle.truffle.api.test.source; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import org.junit.Ignore; +import org.junit.Test; public class SourceSectionTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/SourceTextTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/SourceTextTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/SourceTextTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,9 @@ */ package com.oracle.truffle.api.test.source; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.source.Source; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class SourceTextTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/AlwaysValidAssumptionTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/AlwaysValidAssumptionTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/AlwaysValidAssumptionTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,10 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.utilities.AlwaysValidAssumption; +import static org.junit.Assert.assertTrue; +import org.junit.Test; public class AlwaysValidAssumptionTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/AssumedValueTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/AssumedValueTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/AssumedValueTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,9 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.utilities.AssumedValue; +import static org.junit.Assert.assertEquals; +import org.junit.Test; public class AssumedValueTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/BinaryConditionProfileTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/BinaryConditionProfileTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/BinaryConditionProfileTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,16 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; - -import org.junit.*; -import org.junit.experimental.theories.*; -import org.junit.runner.*; - -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.utilities.BinaryConditionProfile; +import com.oracle.truffle.api.utilities.ConditionProfile; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.theories.DataPoints; +import org.junit.experimental.theories.Theories; +import org.junit.experimental.theories.Theory; +import org.junit.runner.RunWith; @RunWith(Theories.class) public class BinaryConditionProfileTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/BranchProfileTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/BranchProfileTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/BranchProfileTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,9 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.utilities.BranchProfile; +import static org.junit.Assert.assertTrue; +import org.junit.Test; public class BranchProfileTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/CountingConditionProfileTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/CountingConditionProfileTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/CountingConditionProfileTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,16 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; - -import org.junit.*; -import org.junit.experimental.theories.*; -import org.junit.runner.*; - -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.utilities.ConditionProfile; +import com.oracle.truffle.api.utilities.CountingConditionProfile; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.theories.DataPoints; +import org.junit.experimental.theories.Theories; +import org.junit.experimental.theories.Theory; +import org.junit.runner.RunWith; @RunWith(Theories.class) public class CountingConditionProfileTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/CyclicAssumptionTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/CyclicAssumptionTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/CyclicAssumptionTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,12 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.utilities.CyclicAssumption; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import org.junit.Test; public class CyclicAssumptionTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/ExactClassValueProfileTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/ExactClassValueProfileTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/ExactClassValueProfileTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,18 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; - -import org.junit.*; -import org.junit.experimental.theories.*; -import org.junit.runner.*; - -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.utilities.ValueProfile; import java.lang.reflect.Method; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThat; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.theories.DataPoint; +import org.junit.experimental.theories.Theories; +import org.junit.experimental.theories.Theory; +import org.junit.runner.RunWith; @RunWith(Theories.class) public class ExactClassValueProfileTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/IdentityValueProfileTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/IdentityValueProfileTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/IdentityValueProfileTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,17 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; - -import org.junit.*; -import org.junit.experimental.theories.*; -import org.junit.runner.*; - -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.utilities.ValueProfile; import java.lang.reflect.Method; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.theories.DataPoint; +import org.junit.experimental.theories.Theories; +import org.junit.experimental.theories.Theory; +import org.junit.runner.RunWith; @RunWith(Theories.class) public class IdentityValueProfileTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/NeverValidAssumptionTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/NeverValidAssumptionTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/NeverValidAssumptionTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,11 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.utilities.NeverValidAssumption; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.fail; +import org.junit.Test; public class NeverValidAssumptionTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/PrimitiveValueProfileTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/PrimitiveValueProfileTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/PrimitiveValueProfileTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,20 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; - -import org.junit.*; -import org.junit.experimental.theories.*; -import org.junit.runner.*; - -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.utilities.PrimitiveValueProfile; +import com.oracle.truffle.api.utilities.ValueProfile; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.theories.DataPoint; +import org.junit.experimental.theories.Theories; +import org.junit.experimental.theories.Theory; +import org.junit.runner.RunWith; @RunWith(Theories.class) public class PrimitiveValueProfileTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/UnionAssumptionTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/UnionAssumptionTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/utilities/UnionAssumptionTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,13 @@ */ package com.oracle.truffle.api.test.utilities; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.utilities.UnionAssumption; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import org.junit.Test; public class UnionAssumptionTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/AccessorTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/AccessorTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/AccessorTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -32,7 +32,9 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.concurrent.Executors; -import static org.junit.Assert.*; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; import org.junit.BeforeClass; import org.junit.Test; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/EngineSingleThreadedTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/EngineSingleThreadedTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/EngineSingleThreadedTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -23,12 +23,13 @@ package com.oracle.truffle.api.test.vm; import com.oracle.truffle.api.source.Source; -import java.io.*; -import java.net.*; - -import org.junit.*; - -import com.oracle.truffle.api.vm.*; +import com.oracle.truffle.api.vm.PolyglotEngine; +import java.io.IOException; +import java.io.StringReader; +import java.net.URI; +import java.net.URISyntaxException; +import org.junit.Before; +import org.junit.Test; public class EngineSingleThreadedTest { PolyglotEngine tvm; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/ExceptionDuringParsingTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/ExceptionDuringParsingTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/ExceptionDuringParsingTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -27,7 +27,9 @@ import static com.oracle.truffle.api.test.vm.ImplicitExplicitExportTest.L1; import com.oracle.truffle.api.vm.PolyglotEngine; import java.io.IOException; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; import org.junit.Test; public class ExceptionDuringParsingTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/GlobalSymbolTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/GlobalSymbolTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/GlobalSymbolTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,12 @@ import com.oracle.truffle.api.source.Source; import static com.oracle.truffle.api.test.vm.ImplicitExplicitExportTest.L3; -import com.oracle.truffle.api.vm.*; -import java.io.*; +import com.oracle.truffle.api.vm.PolyglotEngine; +import java.io.IOException; import java.util.concurrent.Executors; -import org.junit.*; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import org.junit.Test; public class GlobalSymbolTest { @Test diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/ImplicitExplicitExportTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/ImplicitExplicitExportTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/ImplicitExplicitExportTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,19 +22,29 @@ */ package com.oracle.truffle.api.test.vm; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.TruffleLanguage; import com.oracle.truffle.api.TruffleLanguage.Env; -import com.oracle.truffle.api.debug.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.debug.DebugSupportProvider; +import com.oracle.truffle.api.instrument.ToolSupportProvider; import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.RootNode; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.vm.*; -import java.io.*; -import java.util.*; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.vm.PolyglotEngine; +import java.io.IOException; +import java.io.Reader; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; import java.util.concurrent.Executors; -import org.junit.*; -import static org.junit.Assert.*; +import org.junit.After; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; +import org.junit.Before; +import org.junit.Test; public class ImplicitExplicitExportTest { private static Thread mainThread; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/InitializationTest.java --- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/InitializationTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/InitializationTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,25 +22,37 @@ */ package com.oracle.truffle.api.test.vm; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleLanguage; import com.oracle.truffle.api.TruffleLanguage.Env; import com.oracle.truffle.api.debug.Breakpoint; import com.oracle.truffle.api.debug.DebugSupportException; import com.oracle.truffle.api.debug.DebugSupportProvider; import com.oracle.truffle.api.debug.Debugger; import com.oracle.truffle.api.debug.ExecutionEvent; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.ASTProber; +import com.oracle.truffle.api.instrument.AdvancedInstrumentResultListener; +import com.oracle.truffle.api.instrument.AdvancedInstrumentRootFactory; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeNode; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; +import com.oracle.truffle.api.instrument.ToolSupportProvider; +import com.oracle.truffle.api.instrument.Visualizer; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; import com.oracle.truffle.api.source.Source; import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.api.vm.EventConsumer; import com.oracle.truffle.api.vm.PolyglotEngine; import java.io.IOException; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import org.junit.Test; /** * Bug report validating test. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/JavaWrapper.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/JavaWrapper.java Mon Sep 21 11:21:03 2015 +0200 @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.truffle.api.vm; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; + +final class JavaWrapper implements InvocationHandler { + private final PolyglotEngine.Value value; + private final Object wrapper; + private final InvocationHandler chain; + + public JavaWrapper(PolyglotEngine.Value value, Object wrapper, InvocationHandler chain) { + this.value = value; + this.chain = chain; + this.wrapper = wrapper; + } + + static T create(Class representation, Object wrapper, PolyglotEngine.Value value) { + InvocationHandler chain = Proxy.getInvocationHandler(wrapper); + Object instance = Proxy.newProxyInstance(representation.getClassLoader(), new Class[]{representation}, new JavaWrapper(value, wrapper, chain)); + return representation.cast(instance); + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + if (method.getDeclaringClass() == Object.class) { + return method.invoke(this, args); + } + PolyglotEngine.Value retValue = value.invokeProxy(chain, wrapper, method, args); + if (method.getReturnType() == void.class) { + return null; + } else { + Object realValue = retValue.get(); + if (realValue == null) { + return null; + } + if (Proxy.isProxyClass(realValue.getClass())) { + if (Proxy.getInvocationHandler(realValue) instanceof JavaWrapper) { + return realValue; + } + final Class type = method.getReturnType(); + return create(type, realValue, retValue); + } + return realValue; + } + } + +} diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/PolyglotEngine.java --- a/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/PolyglotEngine.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/PolyglotEngine.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,22 +24,46 @@ */ package com.oracle.truffle.api.vm; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.TruffleLanguage; import com.oracle.truffle.api.TruffleLanguage.Env; import com.oracle.truffle.api.TruffleLanguage.Registration; -import com.oracle.truffle.api.debug.*; -import com.oracle.truffle.api.impl.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.debug.DebugSupportProvider; +import com.oracle.truffle.api.debug.Debugger; +import com.oracle.truffle.api.debug.ExecutionEvent; +import com.oracle.truffle.api.debug.SuspendedEvent; +import com.oracle.truffle.api.impl.Accessor; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ToolSupportProvider; import com.oracle.truffle.api.interop.TruffleObject; import com.oracle.truffle.api.interop.java.JavaInterop; -import com.oracle.truffle.api.source.*; -import java.io.*; -import java.net.*; -import java.nio.file.*; -import java.util.*; +import com.oracle.truffle.api.source.Source; +import java.io.Closeable; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.InterruptedIOException; +import java.io.OutputStreamWriter; +import java.io.Reader; +import java.io.Writer; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.net.URI; +import java.net.URL; +import java.net.URLConnection; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; -import java.util.logging.*; +import java.util.logging.Level; +import java.util.logging.Logger; /** * Gate way into the world of {@link TruffleLanguage Truffle languages}. {@link #buildNew() @@ -605,7 +629,8 @@ if (representation.isInstance(obj)) { return representation.cast(obj); } - return JavaInterop.asJavaObject(representation, (TruffleObject) obj); + T wrapper = JavaInterop.asJavaObject(representation, (TruffleObject) obj); + return JavaWrapper.create(representation, wrapper, this); } /** @@ -637,6 +662,32 @@ } @SuppressWarnings("try") + final Value invokeProxy(final InvocationHandler chain, final Object wrapper, final Method method, final Object[] args) throws IOException { + final Debugger[] fillIn = {debugger}; + final CountDownLatch done = new CountDownLatch(1); + final Object[] res = {null, null}; + executor.execute(new Runnable() { + @Override + public void run() { + try (final Closeable c = SPI.executionStart(PolyglotEngine.this, fillIn, null)) { + if (debugger == null) { + debugger = fillIn[0]; + } + res[0] = chain.invoke(wrapper, method, args); + } catch (IOException ex) { + res[1] = ex; + } catch (Throwable ex) { + res[1] = ex; + } finally { + done.countDown(); + } + } + }); + exceptionCheck(res); + return new Value(language, res, done); + } + + @SuppressWarnings("try") private void invokeImpl(Debugger[] fillIn, Object thiz, Object[] args, Object[] res, CountDownLatch done) { try (final Closeable c = SPI.executionStart(PolyglotEngine.this, fillIn, null)) { if (debugger == null) { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/SymbolInvokerImpl.java --- a/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/SymbolInvokerImpl.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/SymbolInvokerImpl.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,15 @@ */ package com.oracle.truffle.api.vm; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.interop.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleLanguage; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.interop.ForeignAccess; +import com.oracle.truffle.api.interop.Message; +import com.oracle.truffle.api.interop.TruffleObject; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; final class SymbolInvokerImpl { @SuppressWarnings({"unchecked", "rawtypes"}) diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java --- a/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,14 @@ */ package com.oracle.truffle.api.vm; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.debug.*; -import com.oracle.truffle.api.source.*; -import java.io.*; -import java.util.*; +import com.oracle.truffle.api.TruffleLanguage; +import com.oracle.truffle.api.debug.ExecutionEvent; +import com.oracle.truffle.api.debug.SuspendedEvent; +import com.oracle.truffle.api.source.Source; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/.checkstyle_checks.xml --- a/truffle/com.oracle.truffle.api/.checkstyle_checks.xml Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/.checkstyle_checks.xml Mon Sep 21 11:21:03 2015 +0200 @@ -11,6 +11,10 @@ + + + + diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/META-INF/upgrade/conditionprofile.hint --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/truffle/com.oracle.truffle.api/src/META-INF/upgrade/conditionprofile.hint Mon Sep 21 11:21:03 2015 +0200 @@ -0,0 +1,6 @@ +'ConditionProfile fields have to be final to be useful': +$mods$ $type $name = $init$; :: $name instanceof com.oracle.truffle.api.utilities.ConditionProfile && !hasModifier($name, javax.lang.model.element.Modifier.FINAL) && elementKindMatches($name, javax.lang.model.element.ElementKind.FIELD) +=> +'Add final': +$mods$ final $type $name = $init$; +;; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Assumption.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Assumption.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Assumption.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,8 @@ */ package com.oracle.truffle.api; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.nodes.Node; /** * An assumption is a global boolean flag that starts with the value true (i.e., the assumption is diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerDirectives.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerDirectives.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerDirectives.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,12 @@ */ package com.oracle.truffle.api; -import java.lang.annotation.*; -import java.util.concurrent.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.ControlFlowException; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.util.concurrent.Callable; /** * Directives that influence the optimizations of the Truffle compiler. All of the operations have diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerOptions.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerOptions.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerOptions.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.RootNode; /** * Allows options to be set to control the compilation of a specific {@link RootNode}, without diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/ExecutionContext.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/ExecutionContext.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/ExecutionContext.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api; -import com.oracle.truffle.api.impl.*; +import com.oracle.truffle.api.impl.DefaultCompilerOptions; /** * Access to information and basic services in the runtime context for a Truffle-implemented guest diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/ReplaceObserver.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/ReplaceObserver.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/ReplaceObserver.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; /** * An observer that is notified whenever a child node is replaced. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/RootCallTarget.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/RootCallTarget.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/RootCallTarget.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.RootNode; /** * Represents the target of a call to a {@link RootNode}, i.e., to another tree of nodes. Instances diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,10 @@ */ package com.oracle.truffle.api; -import java.lang.reflect.*; -import java.security.*; - -import com.oracle.truffle.api.impl.*; +import com.oracle.truffle.api.impl.DefaultTruffleRuntime; +import java.lang.reflect.Method; +import java.security.AccessController; +import java.security.PrivilegedAction; /** * Class for obtaining the Truffle runtime singleton object of this virtual machine. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleLanguage.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleLanguage.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleLanguage.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,13 +24,19 @@ */ package com.oracle.truffle.api; -import com.oracle.truffle.api.debug.*; -import com.oracle.truffle.api.impl.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.debug.DebugSupportProvider; +import com.oracle.truffle.api.impl.Accessor; +import com.oracle.truffle.api.impl.FindContextNode; +import com.oracle.truffle.api.instrument.ToolSupportProvider; import com.oracle.truffle.api.nodes.Node; -import com.oracle.truffle.api.source.*; -import java.io.*; -import java.lang.annotation.*; +import com.oracle.truffle.api.source.Source; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Collections; import java.util.Map; import java.util.WeakHashMap; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleOptions.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleOptions.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleOptions.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,10 @@ */ package com.oracle.truffle.api; -import java.security.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeInfo; +import java.security.AccessController; +import java.security.PrivilegedAction; /** * Class containing general Truffle options. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleRuntime.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleRuntime.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/TruffleRuntime.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,18 @@ */ package com.oracle.truffle.api; -import java.util.*; - -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.FrameInstanceVisitor; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.DirectCallNode; +import com.oracle.truffle.api.nodes.IndirectCallNode; +import com.oracle.truffle.api.nodes.LoopNode; +import com.oracle.truffle.api.nodes.RepeatingNode; +import com.oracle.truffle.api.nodes.RootNode; +import java.util.Collection; /** * Interface representing a Truffle runtime object. The runtime is responsible for creating call diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Breakpoint.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Breakpoint.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Breakpoint.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,9 @@ */ package com.oracle.truffle.api.debug; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.source.Source; import java.io.IOException; /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/DebugSupportProvider.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/DebugSupportProvider.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/DebugSupportProvider.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,14 @@ */ package com.oracle.truffle.api.debug; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.instrument.AdvancedInstrumentResultListener; +import com.oracle.truffle.api.instrument.AdvancedInstrumentRoot; +import com.oracle.truffle.api.instrument.AdvancedInstrumentRootFactory; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.ToolSupportProvider; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.Source; /** * Access to language-specific information and execution services to enable debugging. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Debugger.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Debugger.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/Debugger.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,16 +24,31 @@ */ package com.oracle.truffle.api.debug; -import java.io.*; -import java.util.*; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleLanguage; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.FrameInstanceVisitor; +import com.oracle.truffle.api.frame.MaterializedFrame; import com.oracle.truffle.api.impl.Accessor; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.instrument.AdvancedInstrumentResultListener; +import com.oracle.truffle.api.instrument.AdvancedInstrumentRoot; +import com.oracle.truffle.api.instrument.AdvancedInstrumentRootFactory; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.KillException; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; +import com.oracle.truffle.api.instrument.SyntaxTag; +import com.oracle.truffle.api.instrument.SyntaxTagTrap; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.LineLocation; +import com.oracle.truffle.api.source.Source; +import java.io.Closeable; +import java.io.IOException; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; /** * Represents debugging related state of a {@link com.oracle.truffle.api.vm.PolyglotEngine}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineBreakpoint.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineBreakpoint.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineBreakpoint.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.debug; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.source.LineLocation; // TODO (mlvdv) generic? /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineBreakpointFactory.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineBreakpointFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineBreakpointFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,23 +24,39 @@ */ package com.oracle.truffle.api.debug; -import static com.oracle.truffle.api.debug.Breakpoint.State.*; - -import java.io.*; -import java.util.*; -import java.util.Map.Entry; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.Truffle; +import static com.oracle.truffle.api.debug.Breakpoint.State.DISABLED; +import static com.oracle.truffle.api.debug.Breakpoint.State.DISABLED_UNRESOLVED; +import static com.oracle.truffle.api.debug.Breakpoint.State.DISPOSED; +import static com.oracle.truffle.api.debug.Breakpoint.State.ENABLED; +import static com.oracle.truffle.api.debug.Breakpoint.State.ENABLED_UNRESOLVED; import com.oracle.truffle.api.debug.Debugger.BreakpointCallback; import com.oracle.truffle.api.debug.Debugger.WarningLog; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.instrument.impl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.AdvancedInstrumentResultListener; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; +import com.oracle.truffle.api.instrument.SyntaxTag; +import com.oracle.truffle.api.instrument.impl.DefaultProbeListener; +import com.oracle.truffle.api.instrument.impl.DefaultStandardInstrumentListener; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.LineLocation; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.utilities.CyclicAssumption; +import java.io.IOException; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; //TODO (mlvdv) some common functionality could be factored out of this and TagBreakpointSupport diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineToProbesMap.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineToProbesMap.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/LineToProbesMap.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,12 +24,19 @@ */ package com.oracle.truffle.api.debug; -import java.io.*; -import java.util.*; - -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.instrument.InstrumentationTool; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeListener; import com.oracle.truffle.api.instrument.impl.DefaultProbeListener; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.source.LineLocation; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; /** * An {@link InstrumentationTool} that builds a map of every {@link Probe} attached to some AST, diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/SuspendedEvent.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/SuspendedEvent.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/SuspendedEvent.java Mon Sep 21 11:21:03 2015 +0200 @@ -29,9 +29,8 @@ import com.oracle.truffle.api.frame.FrameInstance; import com.oracle.truffle.api.frame.FrameInstanceVisitor; import com.oracle.truffle.api.frame.MaterializedFrame; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; import com.oracle.truffle.api.nodes.Node; - import java.util.ArrayList; import java.util.Collections; import java.util.List; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/TagBreakpoint.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/TagBreakpoint.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/TagBreakpoint.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.debug; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.instrument.SyntaxTag; // TODO (mlvdv) generic? /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/TagBreakpointFactory.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/TagBreakpointFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/debug/TagBreakpointFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,22 +24,37 @@ */ package com.oracle.truffle.api.debug; -import static com.oracle.truffle.api.debug.Breakpoint.State.*; +import static com.oracle.truffle.api.debug.Breakpoint.State.DISABLED; +import static com.oracle.truffle.api.debug.Breakpoint.State.DISPOSED; +import static com.oracle.truffle.api.debug.Breakpoint.State.ENABLED; -import java.io.*; -import java.util.*; +import java.io.IOException; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.Truffle; import com.oracle.truffle.api.debug.Debugger.BreakpointCallback; import com.oracle.truffle.api.debug.Debugger.WarningLog; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.instrument.impl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.AdvancedInstrumentResultListener; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.SyntaxTag; +import com.oracle.truffle.api.instrument.SyntaxTagTrap; +import com.oracle.truffle.api.instrument.impl.DefaultProbeListener; +import com.oracle.truffle.api.instrument.impl.DefaultStandardInstrumentListener; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.utilities.CyclicAssumption; // TODO (mlvdv) some common functionality could be factored out of this and LineBreakpointSupport diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameDescriptor.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameDescriptor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameDescriptor.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,14 @@ */ package com.oracle.truffle.api.frame; -import java.util.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.Truffle; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Set; /** * Descriptor of the slots of frame objects. Multiple frame instances are associated with one such diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameInstance.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameInstance.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameInstance.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.frame; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.nodes.Node; public interface FrameInstance { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameInstanceVisitor.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameInstanceVisitor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameInstanceVisitor.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.frame; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.TruffleRuntime; /** * Callback interface for {@link TruffleRuntime#iterateFrames}. Implementations of diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.frame; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlotTypeException.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlotTypeException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlotTypeException.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.frame; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.SlowPathException; /** * Exception thrown if the frame slot type does not match the access type. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/AbstractAssumption.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/AbstractAssumption.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/AbstractAssumption.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.impl; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; public abstract class AbstractAssumption implements Assumption { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/Accessor.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/Accessor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/Accessor.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,14 +24,22 @@ */ package com.oracle.truffle.api.impl; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleLanguage; import com.oracle.truffle.api.TruffleLanguage.Env; -import com.oracle.truffle.api.debug.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.debug.DebugSupportProvider; +import com.oracle.truffle.api.debug.Debugger; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ToolSupportProvider; import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.RootNode; -import com.oracle.truffle.api.source.*; -import java.io.*; +import com.oracle.truffle.api.source.Source; +import java.io.Closeable; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; import java.lang.ref.Reference; import java.lang.ref.WeakReference; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultAssumption.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultAssumption.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultAssumption.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,9 @@ */ package com.oracle.truffle.api.impl; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; /** * This is an implementation-specific class. Do not use or instantiate it. Instead, use diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultCallTarget.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultCallTarget.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultCallTarget.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,15 @@ */ package com.oracle.truffle.api.impl; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; /** * This is an implementation-specific class. Do not use or instantiate it. Instead, use diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultCompilerOptions.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultCompilerOptions.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultCompilerOptions.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.impl; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerOptions; public class DefaultCompilerOptions implements CompilerOptions { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultDirectCallNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultDirectCallNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultDirectCallNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,13 @@ */ package com.oracle.truffle.api.impl; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.DirectCallNode; +import com.oracle.truffle.api.nodes.Node; /** * This is runtime specific API. Do not use in a guest language. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultIndirectCallNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultIndirectCallNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultIndirectCallNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,13 @@ */ package com.oracle.truffle.api.impl; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.IndirectCallNode; +import com.oracle.truffle.api.nodes.Node; /** * This is runtime specific API. Do not use in a guest language. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultLoopNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultLoopNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultLoopNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,9 @@ */ package com.oracle.truffle.api.impl; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.LoopNode; +import com.oracle.truffle.api.nodes.RepeatingNode; public final class DefaultLoopNode extends LoopNode { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultMaterializedFrame.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultMaterializedFrame.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultMaterializedFrame.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,12 @@ */ package com.oracle.truffle.api.impl; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.frame.FrameSlotTypeException; +import com.oracle.truffle.api.frame.MaterializedFrame; /** * This is an implementation-specific class. Do not use or instantiate it. Instead, use diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,28 @@ */ package com.oracle.truffle.api.impl; -import java.util.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.CompilerOptions; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.FrameInstanceVisitor; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.DirectCallNode; +import com.oracle.truffle.api.nodes.IndirectCallNode; +import com.oracle.truffle.api.nodes.LoopNode; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RepeatingNode; +import com.oracle.truffle.api.nodes.RootNode; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedList; +import java.util.Map; +import java.util.WeakHashMap; /** * Default implementation of the Truffle runtime if the virtual machine does not provide a better diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultVirtualFrame.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultVirtualFrame.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultVirtualFrame.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,14 @@ */ package com.oracle.truffle.api.impl; -import java.util.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.frame.FrameSlotKind; +import com.oracle.truffle.api.frame.FrameSlotTypeException; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.frame.VirtualFrame; +import java.util.Arrays; /** * This is an implementation-specific class. Do not use or instantiate it. Instead, use diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTPrinter.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTPrinter.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTPrinter.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,8 @@ */ package com.oracle.truffle.api.instrument; -import java.io.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import java.io.PrintWriter; /** * Access to AST-based debugging support, which is could be language implementation specific in the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTProber.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTProber.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTProber.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; /** * Enables instrumentation by attaching {@linkplain Probe Probes} to some nodes in a (newly created, diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentResultListener.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentResultListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentResultListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,8 +25,8 @@ package com.oracle.truffle.api.instrument; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; /** * Listener for receiving the result a client-provided {@linkplain AdvancedInstrumentRoot AST diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentRoot.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentRoot.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentRoot.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; /** * Root of a client-provided AST fragment that can be executed efficiently, subject to full Truffle diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentRootFactory.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentRootFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/AdvancedInstrumentRootFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; /** * Creator of {@linkplain AdvancedInstrumentRoot AST fragments} suitable for efficient execution, diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,12 +24,14 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.instrument.InstrumentationNode.TruffleEvents; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; // TODO (mlvdv) these statics should not be global. Move them to some kind of context. // TODO (mlvdv) migrate factory (together with Probe)? break out nested classes? diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/InstrumentationNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/InstrumentationNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/InstrumentationNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; /** * A marker interface for Truffle {@linkplain Node nodes} that internally implement the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/KillException.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/KillException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/KillException.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.ControlFlowException; /** * Controls breaking out of an execution context, such as a shell or eval. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Probe.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Probe.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Probe.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,17 +24,24 @@ */ package com.oracle.truffle.api.instrument; -import java.io.*; -import java.lang.ref.*; -import java.util.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; +import com.oracle.truffle.api.TruffleLanguage; import com.oracle.truffle.api.impl.Accessor; import com.oracle.truffle.api.instrument.InstrumentationNode.TruffleEvents; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeVisitor; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.utilities.CyclicAssumption; +import java.io.PrintStream; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; //TODO (mlvdv) these statics should not be global. Move them to some kind of context. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeException.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeException.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,7 +25,7 @@ package com.oracle.truffle.api.instrument; import com.oracle.truffle.api.instrument.ProbeFailure.Reason; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; /** * An exception thrown when {@link Node#probe()} fails because of an implementation failure. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeFailure.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeFailure.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeFailure.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,7 +25,9 @@ package com.oracle.truffle.api.instrument; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeFieldAccessor; +import com.oracle.truffle.api.nodes.NodeUtil; /** * Description of a failed attempt to instrument an AST node. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeListener.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.Source; /** * An observer of events related to {@link Probe}s: creating and tagging. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -27,11 +27,13 @@ import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.TruffleLanguage; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.instrument.Instrument.AbstractInstrumentNode; import com.oracle.truffle.api.instrument.InstrumentationNode.TruffleEvents; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; /** * Implementation class & interface for enabling the attachment of {@linkplain Probe Probes} to diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/QuitException.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/QuitException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/QuitException.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.ControlFlowException; /** * Controls breaking out of all executions and ending Truffle execution. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SimpleInstrumentListener.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SimpleInstrumentListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SimpleInstrumentListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.source.SourceSection; /** * A receiver of Truffle execution events that can act on behalf of an external client. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/StandardInstrumentListener.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/StandardInstrumentListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/StandardInstrumentListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,9 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.SourceSection; /** * A receiver of Truffle execution events that can act on behalf of an external client. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SyntaxTagTrap.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SyntaxTagTrap.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SyntaxTagTrap.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.nodes.Node; /** * A trap that can be set to interrupt execution at probed nodes carrying a specific tag. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Visualizer.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Visualizer.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Visualizer.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,9 @@ */ package com.oracle.truffle.api.instrument; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.nodes.Node; /** * Visualization services for the benefit of instrumentation-based tools, possibly specialized for diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultASTPrinter.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultASTPrinter.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultASTPrinter.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,14 +24,18 @@ */ package com.oracle.truffle.api.instrument.impl; -import java.io.*; -import java.util.*; - -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.instrument.ASTPrinter; +import com.oracle.truffle.api.instrument.InstrumentationNode; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeClass; +import com.oracle.truffle.api.nodes.NodeFieldAccessor; import com.oracle.truffle.api.nodes.NodeFieldAccessor.NodeFieldKind; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.nodes.NodeUtil; +import com.oracle.truffle.api.source.SourceSection; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.ArrayList; /** * A language-agnostic for printing out various pieces of a Truffle AST. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultProbeListener.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultProbeListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultProbeListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,10 @@ */ package com.oracle.truffle.api.instrument.impl; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeListener; +import com.oracle.truffle.api.instrument.SyntaxTag; +import com.oracle.truffle.api.source.Source; public abstract class DefaultProbeListener implements ProbeListener { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultSimpleInstrumentListener.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultSimpleInstrumentListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultSimpleInstrumentListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,8 @@ */ package com.oracle.truffle.api.instrument.impl; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.SimpleInstrumentListener; /** * A listener for Truffle execution events that provides a no-op implementation of every event. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultStandardInstrumentListener.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultStandardInstrumentListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultStandardInstrumentListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,10 @@ */ package com.oracle.truffle.api.instrument.impl; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.StandardInstrumentListener; +import com.oracle.truffle.api.nodes.Node; /** * A listener for AST {@linkplain StandardInstrumentListener execution events} that provides a no-op diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultVisualizer.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultVisualizer.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultVisualizer.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,13 @@ */ package com.oracle.truffle.api.instrument.impl; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.instrument.ASTPrinter; +import com.oracle.truffle.api.instrument.Visualizer; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.source.SourceSection; public class DefaultVisualizer implements Visualizer { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/DirectCallNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/DirectCallNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/DirectCallNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,11 @@ */ package com.oracle.truffle.api.nodes; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.VirtualFrame; /** * Represents a direct call to a {@link CallTarget}. Direct calls are calls for which the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/ExplodeLoop.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/ExplodeLoop.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/ExplodeLoop.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.nodes; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Specifies for a method that the loops with constant number of invocations should be fully diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/GraphPrintVisitor.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/GraphPrintVisitor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/GraphPrintVisitor.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,19 +24,35 @@ */ package com.oracle.truffle.api.nodes; -import java.io.*; -import java.lang.annotation.*; -import java.net.*; -import java.util.*; - -import javax.xml.parsers.*; -import javax.xml.transform.*; -import javax.xml.transform.dom.*; -import javax.xml.transform.stream.*; - -import org.w3c.dom.*; - import com.oracle.truffle.api.nodes.NodeFieldAccessor.NodeFieldKind; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.StringWriter; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.net.Socket; +import java.util.ArrayList; +import java.util.IdentityHashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; /** * Utility class for creating output for the ideal graph visualizer. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/IndirectCallNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/IndirectCallNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/IndirectCallNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,9 @@ */ package com.oracle.truffle.api.nodes; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.frame.VirtualFrame; /** * Represents an indirect call to a {@link CallTarget}. Indirect calls are calls for which the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.nodes; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.VirtualFrame; /** * Experimental API: may change significantly without notice. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,17 +24,30 @@ */ package com.oracle.truffle.api.nodes; -import java.lang.annotation.*; -import java.util.*; -import java.util.concurrent.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; +import com.oracle.truffle.api.ReplaceObserver; +import com.oracle.truffle.api.TruffleLanguage; +import com.oracle.truffle.api.TruffleOptions; import com.oracle.truffle.api.impl.Accessor; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeException; +import com.oracle.truffle.api.instrument.ProbeFailure; +import com.oracle.truffle.api.instrument.ProbeNode; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.utilities.JSONHelper; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.concurrent.Callable; /** * Abstract base class for all Truffle nodes. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeClass.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeClass.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeClass.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,13 +24,16 @@ */ package com.oracle.truffle.api.nodes; -import java.lang.reflect.*; -import java.security.*; -import java.util.*; - import com.oracle.truffle.api.nodes.Node.Child; import com.oracle.truffle.api.nodes.Node.Children; import com.oracle.truffle.api.nodes.NodeFieldAccessor.NodeFieldKind; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; /** * Information about a {@link Node} class. A single instance of this class is allocated for every diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeCost.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeCost.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeCost.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.nodes; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; /** * Represents a rough estimate for the cost of a {@link Node}. This estimate can be used by runtime diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeFieldAccessor.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeFieldAccessor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeFieldAccessor.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,13 +24,11 @@ */ package com.oracle.truffle.api.nodes; -import java.lang.reflect.*; - -import sun.misc.*; - import com.oracle.truffle.api.nodes.Node.Child; import com.oracle.truffle.api.nodes.Node.Children; import com.oracle.truffle.api.nodes.NodeUtil.FieldOffsetProvider; +import java.lang.reflect.Field; +import sun.misc.Unsafe; /** * Information about a field in a {@link Node} class. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeInfo.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeInfo.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeInfo.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,10 @@ */ package com.oracle.truffle.api.nodes; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Annotation for providing additional information on nodes. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,18 +24,29 @@ */ package com.oracle.truffle.api.nodes; -import java.io.*; -import java.lang.annotation.*; -import java.lang.reflect.*; -import java.util.*; - -import sun.misc.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.TruffleOptions; +import com.oracle.truffle.api.instrument.Probe; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; +import com.oracle.truffle.api.instrument.SyntaxTag; import com.oracle.truffle.api.nodes.NodeFieldAccessor.NodeFieldKind; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.source.SourceSection; +import java.io.OutputStream; +import java.io.PrintStream; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.annotation.Annotation; +import java.lang.reflect.Array; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Objects; +import sun.misc.Unsafe; /** * Utility class that manages the special access methods for node instances. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RepeatingNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RepeatingNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RepeatingNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.nodes; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.VirtualFrame; /** * Experimental API: may change significantly without notice. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RootNode.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RootNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/RootNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,11 +25,19 @@ package com.oracle.truffle.api.nodes; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.impl.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.CompilerOptions; +import com.oracle.truffle.api.ExecutionContext; +import com.oracle.truffle.api.LoopCountReceiver; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.TruffleLanguage; +import com.oracle.truffle.api.TruffleRuntime; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.impl.DefaultCompilerOptions; +import com.oracle.truffle.api.instrument.ASTProber; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.source.SourceSection; /** * A root node is a node with a method to execute it given only a frame as a parameter. Therefore, a @@ -197,8 +205,8 @@ /** * Helper method to create a root node that always returns the same value. Certain operations - * (expecially {@link com.oracle.api.truffle.api.interop inter-operability} API) require return - * of stable {@link RootNode root nodes}. To simplify creation of such nodes, here is a factory + * (expecially {@link com.oracle.truffle.api.interop inter-operability} API) require return of + * stable {@link RootNode root nodes}. To simplify creation of such nodes, here is a factory * method that can create {@link RootNode} that returns always the same value. * * @param constant the constant to return diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/SlowPathException.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/SlowPathException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/SlowPathException.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.nodes; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; /** * An exception thrown to enter a slow path. The Truffle optimizer has special knowledge of this diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/UnexpectedResultException.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/UnexpectedResultException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/UnexpectedResultException.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.nodes; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; /** * An exception that should be thrown if the return value cannot be represented as a value of the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/serial/PostOrderDeserializer.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/serial/PostOrderDeserializer.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/serial/PostOrderDeserializer.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,14 +24,16 @@ */ package com.oracle.truffle.api.nodes.serial; -import java.lang.reflect.*; -import java.util.*; - -import sun.misc.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeClass; +import com.oracle.truffle.api.nodes.NodeFieldAccessor; import com.oracle.truffle.api.nodes.NodeFieldAccessor.NodeFieldKind; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.source.SourceSection; +import java.lang.reflect.Array; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import sun.misc.Unsafe; /** * Experimental API. May change without notice. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/serial/PostOrderSerializer.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/serial/PostOrderSerializer.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/serial/PostOrderSerializer.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,16 +24,15 @@ */ package com.oracle.truffle.api.nodes.serial; -import static com.oracle.truffle.api.nodes.serial.PostOrderDeserializer.*; - -import java.lang.reflect.*; -import java.nio.*; - -import sun.misc.*; - -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeClass; +import com.oracle.truffle.api.nodes.NodeFieldAccessor; import com.oracle.truffle.api.nodes.NodeFieldAccessor.NodeFieldKind; -import com.oracle.truffle.api.source.*; +import static com.oracle.truffle.api.nodes.serial.PostOrderDeserializer.getFieldOffset; +import com.oracle.truffle.api.source.SourceSection; +import java.lang.reflect.Field; +import java.nio.ByteBuffer; +import sun.misc.Unsafe; /** * Experimental API. May change without notice. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/serial/VariableLengthIntBuffer.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/serial/VariableLengthIntBuffer.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/serial/VariableLengthIntBuffer.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.nodes.serial; -import java.nio.*; +import java.nio.ByteBuffer; /** * Experimental API. May change without notice. Simple variable length unsigned int buffer backed by diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/script/TruffleScriptEngineFactory.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/script/TruffleScriptEngineFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/script/TruffleScriptEngineFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,8 @@ */ package com.oracle.truffle.api.script; -import javax.script.*; +import javax.script.ScriptEngine; +import javax.script.ScriptEngineFactory; @Deprecated /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,17 +24,33 @@ */ package com.oracle.truffle.api.source; -import java.io.*; -import java.lang.ref.*; -import java.net.*; -import java.nio.*; -import java.nio.charset.*; -import java.util.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerAsserts; import com.oracle.truffle.api.TruffleLanguage.Registration; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringReader; +import java.io.UnsupportedEncodingException; +import java.lang.ref.WeakReference; +import java.net.URL; +import java.net.URLConnection; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.CharacterCodingException; +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; import java.nio.file.Files; import java.nio.file.spi.FileTypeDetector; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/AlwaysValidAssumption.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/AlwaysValidAssumption.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/AlwaysValidAssumption.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; /** * An assumption that is always valid. Used as a placeholder where an assumption is needed but never diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/AssumedValue.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/AssumedValue.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/AssumedValue.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; /** * A value that the compiler can assume is constant, but can be changed by invalidation. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/BinaryConditionProfile.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/BinaryConditionProfile.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/BinaryConditionProfile.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/BranchProfile.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/BranchProfile.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/BranchProfile.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,9 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.NodeCloneable; /** * Utility class to speculate on branches to be never visited. If the {@link #enter()} method is diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ConditionProfile.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ConditionProfile.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ConditionProfile.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.nodes.NodeCloneable; /** * Abstract utility class to speculate on conditions. Condition profiles are intended to be used as diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CountingConditionProfile.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CountingConditionProfile.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CountingConditionProfile.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CyclicAssumption.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CyclicAssumption.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CyclicAssumption.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,10 @@ */ package com.oracle.truffle.api.utilities; -import java.util.concurrent.atomic.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.Truffle; +import java.util.concurrent.atomic.AtomicReference; /** * Holds an {@link Assumption}, and knows how to recreate it with the same properties on diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ExactClassValueProfile.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ExactClassValueProfile.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ExactClassValueProfile.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/IdentityValueProfile.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/IdentityValueProfile.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/IdentityValueProfile.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,9 @@ */ package com.oracle.truffle.api.utilities; -import java.util.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; +import java.util.Objects; /** * Represents a {@link ValueProfile} that speculates on the object identity of a value. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/JSONHelper.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/JSONHelper.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/JSONHelper.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,12 @@ */ package com.oracle.truffle.api.utilities; -import java.util.*; - -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.SourceSection; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; /** * Helper function that allows to dump the AST during creation to a JSON format. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/NeverValidAssumption.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/NeverValidAssumption.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/NeverValidAssumption.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; /** * An assumption that is never valid. Used as a placeholder where an assumption is needed that diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/PrimitiveValueProfile.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/PrimitiveValueProfile.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/PrimitiveValueProfile.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,9 @@ */ package com.oracle.truffle.api.utilities; -import java.util.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; +import java.util.Objects; /** * Represents a {@link ValueProfile} that speculates on the primitive equality or object identity of diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/UnionAssumption.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/UnionAssumption.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/UnionAssumption.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,8 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; /** * An assumption that combines two other assumptions. A check on this assumption checks both of the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ValueProfile.java --- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ValueProfile.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ValueProfile.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.api.utilities; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.NodeCloneable; /** * Utility class to speculate on certain properties of values. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/.checkstyle_checks.xml --- a/truffle/com.oracle.truffle.dsl.processor/.checkstyle_checks.xml Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/.checkstyle_checks.xml Mon Sep 21 11:21:03 2015 +0200 @@ -11,6 +11,10 @@ + + + + diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/AnnotationProcessor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,17 +22,18 @@ */ package com.oracle.truffle.dsl.processor; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.generator.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; -import com.oracle.truffle.dsl.processor.java.transform.*; -import com.oracle.truffle.dsl.processor.model.*; -import com.oracle.truffle.dsl.processor.parser.*; +import com.oracle.truffle.dsl.processor.generator.CodeTypeElementFactory; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; +import com.oracle.truffle.dsl.processor.java.transform.FixWarningsVisitor; +import com.oracle.truffle.dsl.processor.java.transform.GenerateOverrideVisitor; +import com.oracle.truffle.dsl.processor.model.Template; +import com.oracle.truffle.dsl.processor.parser.AbstractParser; +import java.util.HashSet; +import java.util.Set; +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.DeclaredType; /** * THIS IS NOT PUBLIC API. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/CodeWriter.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/CodeWriter.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/CodeWriter.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,15 @@ */ package com.oracle.truffle.dsl.processor; -import java.io.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; -import javax.tools.*; - -import com.oracle.truffle.dsl.processor.java.compiler.*; -import com.oracle.truffle.dsl.processor.java.model.*; -import com.oracle.truffle.dsl.processor.java.transform.*; +import com.oracle.truffle.dsl.processor.java.compiler.CompilerFactory; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; +import com.oracle.truffle.dsl.processor.java.transform.AbstractCodeWriter; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.Writer; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.Element; +import javax.tools.JavaFileObject; public final class CodeWriter extends AbstractCodeWriter { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/ExpectError.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/ExpectError.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/ExpectError.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,15 @@ */ package com.oracle.truffle.dsl.processor; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; -import javax.tools.Diagnostic.*; +import java.util.List; +import java.util.Map; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.tools.Diagnostic.Kind; public class ExpectError { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/LanguageRegistrationProcessor.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/LanguageRegistrationProcessor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/LanguageRegistrationProcessor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,18 +22,26 @@ */ package com.oracle.truffle.dsl.processor; -import java.io.*; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.*; -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import com.oracle.truffle.api.TruffleLanguage; +import com.oracle.truffle.api.TruffleLanguage.Registration; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; +import java.util.Set; +import javax.annotation.processing.AbstractProcessor; +import javax.annotation.processing.RoundEnvironment; +import javax.annotation.processing.SupportedAnnotationTypes; +import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeMirror; import javax.tools.Diagnostic.Kind; -import javax.tools.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.TruffleLanguage.Registration; +import javax.tools.FileObject; +import javax.tools.StandardLocation; @SupportedAnnotationTypes("com.oracle.truffle.api.TruffleLanguage.Registration") public final class LanguageRegistrationProcessor extends AbstractProcessor { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/Log.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/Log.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/Log.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,13 @@ */ package com.oracle.truffle.dsl.processor; -import javax.annotation.processing.*; -import javax.lang.model.element.*; +import com.oracle.truffle.dsl.processor.java.model.GeneratedElement; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; import javax.tools.Diagnostic.Kind; -import com.oracle.truffle.dsl.processor.java.model.*; - /** * THIS IS NOT PUBLIC API. */ diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/ProcessorContext.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/ProcessorContext.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/ProcessorContext.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,17 +22,23 @@ */ package com.oracle.truffle.dsl.processor; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror; +import com.oracle.truffle.dsl.processor.model.Template; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.WildcardType; +import javax.lang.model.util.Types; /** * THIS IS NOT PUBLIC API. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/TruffleProcessor.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/TruffleProcessor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/TruffleProcessor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,19 +22,26 @@ */ package com.oracle.truffle.dsl.processor; -import java.lang.annotation.*; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.*; -import javax.lang.model.element.*; +import com.oracle.truffle.dsl.processor.ProcessorContext.ProcessCallback; +import com.oracle.truffle.dsl.processor.generator.NodeCodeGenerator; +import com.oracle.truffle.dsl.processor.generator.TypeSystemCodeGenerator; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.parser.AbstractParser; +import com.oracle.truffle.dsl.processor.parser.NodeParser; +import com.oracle.truffle.dsl.processor.parser.TypeSystemParser; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import javax.annotation.processing.AbstractProcessor; +import javax.annotation.processing.ProcessingEnvironment; +import javax.annotation.processing.RoundEnvironment; +import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; import javax.tools.Diagnostic.Kind; -import com.oracle.truffle.dsl.processor.ProcessorContext.ProcessCallback; -import com.oracle.truffle.dsl.processor.generator.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.parser.*; - /** * THIS IS NOT PUBLIC API. */ diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/TruffleTypes.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/TruffleTypes.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/TruffleTypes.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,22 +22,37 @@ */ package com.oracle.truffle.dsl.processor; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.tools.Diagnostic.Kind; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.TruffleOptions; +import com.oracle.truffle.api.dsl.GenerateNodeFactory; +import com.oracle.truffle.api.dsl.NodeFactory; +import com.oracle.truffle.api.dsl.internal.DSLMetadata; +import com.oracle.truffle.api.dsl.internal.DSLNode; +import com.oracle.truffle.api.dsl.internal.DSLShare; +import com.oracle.truffle.api.dsl.internal.NodeFactoryBase; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.Node.Child; import com.oracle.truffle.api.nodes.Node.Children; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.NodeUtil; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.api.source.SourceSection; +import java.util.ArrayList; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeMirror; +import javax.tools.Diagnostic.Kind; /** * THIS IS NOT PUBLIC API. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/DSLExpression.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/DSLExpression.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/DSLExpression.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,15 @@ */ package com.oracle.truffle.dsl.processor.expression; -import java.util.*; -import java.util.concurrent.atomic.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.atomic.AtomicBoolean; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; public abstract class DSLExpression { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/DSLExpressionResolver.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/DSLExpressionResolver.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/DSLExpressionResolver.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,21 +22,30 @@ */ package com.oracle.truffle.dsl.processor.expression; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.dsl.processor.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Binary; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Call; import com.oracle.truffle.dsl.processor.expression.DSLExpression.DSLExpressionVisitor; import com.oracle.truffle.dsl.processor.expression.DSLExpression.IntLiteral; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Negate; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Variable; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; public class DSLExpressionResolver implements DSLExpressionVisitor { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/Parser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/Parser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/Parser.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,15 +25,16 @@ package com.oracle.truffle.dsl.processor.expression; -import java.io.*; -import java.nio.charset.*; -import java.util.*; - import com.oracle.truffle.dsl.processor.expression.DSLExpression.Binary; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Call; import com.oracle.truffle.dsl.processor.expression.DSLExpression.IntLiteral; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Negate; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Variable; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; // Checkstyle: stop // @formatter:off diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/Scanner.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/Scanner.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/expression/Scanner.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,8 +25,11 @@ package com.oracle.truffle.dsl.processor.expression; -import java.io.*; -import java.util.*; +import java.io.IOException; +import java.io.InputStream; +import java.io.RandomAccessFile; +import java.util.HashMap; +import java.util.Map; // Checkstyle: stop // @formatter:off diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/CodeTypeElementFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,8 +22,8 @@ */ package com.oracle.truffle.dsl.processor.generator; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.model.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; public abstract class CodeTypeElementFactory { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/DSLExpressionGenerator.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/DSLExpressionGenerator.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/DSLExpressionGenerator.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,19 +22,24 @@ */ package com.oracle.truffle.dsl.processor.generator; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.expression.*; +import com.oracle.truffle.dsl.processor.expression.DSLExpression; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Binary; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Call; import com.oracle.truffle.dsl.processor.expression.DSLExpression.DSLExpressionVisitor; import com.oracle.truffle.dsl.processor.expression.DSLExpression.IntLiteral; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Negate; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Variable; -import com.oracle.truffle.dsl.processor.java.model.*; +import com.oracle.truffle.dsl.processor.java.model.CodeTree; +import com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder; +import java.util.ArrayDeque; +import java.util.Deque; +import java.util.Map; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeKind; public class DSLExpressionGenerator implements DSLExpressionVisitor { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/GeneratorUtils.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/GeneratorUtils.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/GeneratorUtils.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,22 +22,36 @@ */ package com.oracle.truffle.dsl.processor.generator; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; -import static javax.lang.model.element.Modifier.*; - -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.dsl.GeneratedBy; import com.oracle.truffle.api.dsl.internal.DSLOptions.TypeBoxingOptimization; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.fromTypeMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationValue; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import com.oracle.truffle.dsl.processor.java.model.CodeNames; +import com.oracle.truffle.dsl.processor.java.model.CodeTree; +import com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import com.oracle.truffle.dsl.processor.model.Template; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.STATIC; +import javax.lang.model.element.PackageElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; public class GeneratorUtils { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/ImplicitCastNodeFactory.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/ImplicitCastNodeFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/ImplicitCastNodeFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,23 +22,31 @@ */ package com.oracle.truffle.dsl.processor.generator; -import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.*; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; -import static javax.lang.model.element.Modifier.*; - -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; -import com.oracle.truffle.api.dsl.internal.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.internal.DSLOptions; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.isTypeBoxingOptimized; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.getTypeId; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers; +import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import com.oracle.truffle.dsl.processor.java.model.CodeTree; +import com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import com.oracle.truffle.dsl.processor.java.model.GeneratedTypeMirror; +import com.oracle.truffle.dsl.processor.model.ImplicitCastData; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import java.util.List; +import javax.lang.model.element.Element; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; +import javax.lang.model.type.TypeMirror; public class ImplicitCastNodeFactory { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,20 +22,25 @@ */ package com.oracle.truffle.dsl.processor.generator; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; -import static javax.lang.model.element.Modifier.*; - -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.NodeFactory; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; +import com.oracle.truffle.dsl.processor.model.NodeData; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Types; public class NodeCodeGenerator extends CodeTypeElementFactory { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeFactoryFactory.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeFactoryFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeFactoryFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,20 +22,27 @@ */ package com.oracle.truffle.dsl.processor.generator; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; -import static javax.lang.model.element.Modifier.*; - -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; +import com.oracle.truffle.api.dsl.NodeFactory; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import com.oracle.truffle.dsl.processor.java.model.CodeNames; +import com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.ArrayCodeTypeMirror; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import com.oracle.truffle.dsl.processor.model.NodeData; +import com.oracle.truffle.dsl.processor.model.NodeExecutionData; +import java.util.List; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.PUBLIC; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; class NodeFactoryFactory { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,36 +22,96 @@ */ package com.oracle.truffle.dsl.processor.generator; -import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.*; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; -import static javax.lang.model.element.Modifier.*; - -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; +import com.oracle.truffle.api.dsl.internal.DSLOptions; import com.oracle.truffle.api.dsl.internal.DSLOptions.ImplicitCastOptimization; import com.oracle.truffle.api.dsl.internal.DSLOptions.TypeBoxingOptimization; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.dsl.internal.SpecializationNode; +import com.oracle.truffle.api.dsl.internal.SpecializedNode; +import com.oracle.truffle.api.dsl.internal.SuppressFBWarnings; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.nodes.InvalidAssumptionException; +import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.Node.Child; import com.oracle.truffle.api.nodes.Node.Children; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.expression.*; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.expression.DSLExpression; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Variable; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; +import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass; +import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createTransferToInterpreterAndInvalidate; +import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.isTypeBoxingOptimized; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.compareType; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.fromTypeMirror; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.getTypeId; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.isObject; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.isSubtypeBoxed; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.isVoid; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.needsCastTo; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.setVisibility; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals; +import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationValue; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import com.oracle.truffle.dsl.processor.java.model.CodeNames; +import com.oracle.truffle.dsl.processor.java.model.CodeTree; +import com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.ArrayCodeTypeMirror; -import com.oracle.truffle.dsl.processor.model.*; -import com.oracle.truffle.dsl.processor.parser.*; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import com.oracle.truffle.dsl.processor.java.model.GeneratedTypeMirror; +import com.oracle.truffle.dsl.processor.model.AssumptionExpression; +import com.oracle.truffle.dsl.processor.model.CacheExpression; +import com.oracle.truffle.dsl.processor.model.CreateCastData; +import com.oracle.truffle.dsl.processor.model.ExecutableTypeData; +import com.oracle.truffle.dsl.processor.model.GuardExpression; +import com.oracle.truffle.dsl.processor.model.ImplicitCastData; +import com.oracle.truffle.dsl.processor.model.NodeChildData; +import com.oracle.truffle.dsl.processor.model.NodeData; +import com.oracle.truffle.dsl.processor.model.NodeExecutionData; +import com.oracle.truffle.dsl.processor.model.NodeFieldData; +import com.oracle.truffle.dsl.processor.model.Parameter; +import com.oracle.truffle.dsl.processor.model.ShortCircuitData; +import com.oracle.truffle.dsl.processor.model.SpecializationData; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import com.oracle.truffle.dsl.processor.parser.SpecializationGroup; import com.oracle.truffle.dsl.processor.parser.SpecializationGroup.TypeGuard; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import static javax.lang.model.element.Modifier.ABSTRACT; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.PROTECTED; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; public class NodeGenFactory { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/TypeSystemCodeGenerator.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/TypeSystemCodeGenerator.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/TypeSystemCodeGenerator.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,20 +22,33 @@ */ package com.oracle.truffle.dsl.processor.generator; -import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.*; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; -import static javax.lang.model.element.Modifier.*; - -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createTransferToInterpreterAndInvalidate; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.createConstantName; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.getSimpleName; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers; +import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import com.oracle.truffle.dsl.processor.java.model.CodeTree; +import com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import com.oracle.truffle.dsl.processor.java.model.GeneratedTypeMirror; +import com.oracle.truffle.dsl.processor.model.ImplicitCastData; +import com.oracle.truffle.dsl.processor.model.TypeCastData; +import com.oracle.truffle.dsl.processor.model.TypeCheckData; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import java.util.List; +import javax.lang.model.element.Modifier; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PROTECTED; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeMirror; public class TypeSystemCodeGenerator extends CodeTypeElementFactory { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,18 +22,44 @@ */ package com.oracle.truffle.dsl.processor.java; -import java.io.*; -import java.lang.annotation.*; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.model.*; +import com.oracle.truffle.dsl.processor.CompileErrorException; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror; import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.DeclaredCodeTypeMirror; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.PackageElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.ExecutableType; +import javax.lang.model.type.PrimitiveType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.WildcardType; +import javax.lang.model.util.AbstractAnnotationValueVisitor7; +import javax.lang.model.util.ElementFilter; /** * THIS IS NOT PUBLIC API. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/AbstractCompiler.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/AbstractCompiler.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/AbstractCompiler.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,8 @@ */ package com.oracle.truffle.dsl.processor.java.compiler; -import java.lang.reflect.*; +import java.lang.reflect.Field; +import java.lang.reflect.Method; public abstract class AbstractCompiler implements Compiler { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/Compiler.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/Compiler.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/Compiler.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,11 @@ */ package com.oracle.truffle.dsl.processor.java.compiler; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; +import java.util.List; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; public interface Compiler { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/CompilerFactory.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/CompilerFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/CompilerFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.dsl.processor.java.compiler; -import javax.lang.model.element.*; +import javax.lang.model.element.Element; public class CompilerFactory { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/JDTCompiler.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/JDTCompiler.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/JDTCompiler.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,19 @@ */ package com.oracle.truffle.dsl.processor.java.compiler; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; - -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; public class JDTCompiler extends AbstractCompiler { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/JavaCCompiler.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/JavaCCompiler.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/compiler/JavaCCompiler.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,14 @@ */ package com.oracle.truffle.dsl.processor.java.compiler; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; - -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.List; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; public class JavaCCompiler extends AbstractCompiler { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeAnnotationMirror.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeAnnotationMirror.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeAnnotationMirror.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,13 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.LinkedHashMap; +import java.util.Map; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.DeclaredType; public class CodeAnnotationMirror implements AnnotationMirror { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeAnnotationValue.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeAnnotationValue.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeAnnotationValue.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,13 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import java.util.List; +import java.util.Objects; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.AnnotationValueVisitor; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; public class CodeAnnotationValue implements AnnotationValue { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeCompilationUnit.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeCompilationUnit.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeCompilationUnit.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,14 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import java.util.Collections; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ElementVisitor; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.Name; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeMirror; public class CodeCompilationUnit extends CodeElement { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeElement.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeElement.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeElement.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,22 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.io.*; -import java.lang.annotation.*; -import java.util.*; - -import javax.lang.model.element.*; - -import com.oracle.truffle.dsl.processor.java.transform.*; +import com.oracle.truffle.dsl.processor.java.transform.AbstractCodeWriter; +import java.io.CharArrayWriter; +import java.io.IOException; +import java.io.Writer; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.ListIterator; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.Modifier; public abstract class CodeElement implements Element, GeneratedElement { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeElementScanner.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeElementScanner.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeElementScanner.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,14 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.util.*; +import java.util.List; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.PackageElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.TypeParameterElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.util.ElementScanner7; public abstract class CodeElementScanner extends ElementScanner7 { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeExecutableElement.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeExecutableElement.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeExecutableElement.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,23 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ElementVisitor; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.Name; +import javax.lang.model.element.TypeParameterElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; public class CodeExecutableElement extends CodeElement implements ExecutableElement { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeImport.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeImport.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeImport.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; +import java.util.Objects; public class CodeImport implements Comparable { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeNames.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeNames.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeNames.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,9 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; +import java.util.HashMap; +import java.util.Map; +import javax.lang.model.element.Name; public abstract class CodeNames { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTree.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTree.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTree.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,9 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.type.*; +import java.util.ArrayList; +import java.util.List; +import javax.lang.model.type.TypeMirror; public class CodeTree { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,20 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import static com.oracle.truffle.dsl.processor.java.model.CodeTreeKind.*; +import static com.oracle.truffle.dsl.processor.java.model.CodeTreeKind.GROUP; +import static com.oracle.truffle.dsl.processor.java.model.CodeTreeKind.NEW_LINE; +import static com.oracle.truffle.dsl.processor.java.model.CodeTreeKind.REMOVE_LAST; -import java.util.*; +import java.util.List; -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; public class CodeTreeBuilder { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTypeElement.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTypeElement.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTypeElement.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,24 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.DeclaredCodeTypeMirror; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ElementVisitor; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.Name; +import javax.lang.model.element.NestingKind; +import javax.lang.model.element.PackageElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.TypeParameterElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; public class CodeTypeElement extends CodeElement implements TypeElement { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTypeMirror.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTypeMirror.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeTypeMirror.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,18 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.lang.annotation.*; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import java.lang.annotation.Annotation; +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.TypeVisitor; +import javax.lang.model.type.WildcardType; public class CodeTypeMirror implements TypeMirror { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeVariableElement.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeVariableElement.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/CodeVariableElement.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,18 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ElementVisitor; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.Name; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; public final class CodeVariableElement extends CodeElement implements VariableElement { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedElement.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedElement.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedElement.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,8 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import javax.lang.model.element.*; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; public interface GeneratedElement { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedPackageElement.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedPackageElement.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedPackageElement.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,14 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import java.util.Collections; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ElementVisitor; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.Name; +import javax.lang.model.element.PackageElement; +import javax.lang.model.type.TypeMirror; public final class GeneratedPackageElement extends CodeElement implements PackageElement { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedTypeElement.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedTypeElement.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedTypeElement.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,10 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; +import java.util.Set; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.PackageElement; public final class GeneratedTypeElement extends CodeTypeElement { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedTypeMirror.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedTypeMirror.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/model/GeneratedTypeMirror.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,10 @@ */ package com.oracle.truffle.dsl.processor.java.model; -import java.util.*; - -import javax.lang.model.element.*; - import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.DeclaredCodeTypeMirror; +import java.util.Collections; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.Modifier; public final class GeneratedTypeMirror extends DeclaredCodeTypeMirror { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/AbstractCodeWriter.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,17 +22,39 @@ */ package com.oracle.truffle.dsl.processor.java.transform; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; - -import java.io.*; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.getQualifiedName; +import com.oracle.truffle.dsl.processor.java.model.CodeElementScanner; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import com.oracle.truffle.dsl.processor.java.model.CodeImport; +import com.oracle.truffle.dsl.processor.java.model.CodeTree; +import com.oracle.truffle.dsl.processor.java.model.CodeTreeKind; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import java.io.IOException; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.Name; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.AbstractAnnotationValueVisitor7; +import javax.lang.model.util.ElementFilter; public abstract class AbstractCodeWriter extends CodeElementScanner { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/FixWarningsVisitor.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/FixWarningsVisitor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/FixWarningsVisitor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,18 +22,30 @@ */ package com.oracle.truffle.dsl.processor.java.transform; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; -import static javax.lang.model.element.Modifier.*; - -import java.io.*; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers; +import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationValue; +import com.oracle.truffle.dsl.processor.java.model.CodeElementScanner; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import com.oracle.truffle.dsl.processor.java.model.CodeTree; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import java.io.Serializable; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.StringTokenizer; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.Modifier; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.STATIC; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; public class FixWarningsVisitor extends CodeElementScanner { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/GenerateOverrideVisitor.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/GenerateOverrideVisitor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/GenerateOverrideVisitor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,15 @@ */ package com.oracle.truffle.dsl.processor.java.transform; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.isDeclaredMethodInSuperType; +import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeElementScanner; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Modifier; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeMirror; public class GenerateOverrideVisitor extends CodeElementScanner { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/OrganizedImports.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/OrganizedImports.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/transform/OrganizedImports.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,37 @@ */ package com.oracle.truffle.dsl.processor.java.transform; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; - -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.findNearestEnclosingType; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.getDeclaredTypes; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.getPackageName; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.getQualifiedName; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.getSuperTypes; +import com.oracle.truffle.dsl.processor.java.model.CodeElementScanner; +import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; +import com.oracle.truffle.dsl.processor.java.model.CodeImport; +import com.oracle.truffle.dsl.processor.java.model.CodeTree; +import com.oracle.truffle.dsl.processor.java.model.CodeTreeKind; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.WildcardType; +import javax.lang.model.util.AbstractAnnotationValueVisitor7; +import javax.lang.model.util.ElementFilter; public final class OrganizedImports { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/AnnotatedParameterSpec.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/AnnotatedParameterSpec.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/AnnotatedParameterSpec.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,11 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.Collections; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeMirror; public final class AnnotatedParameterSpec extends ParameterSpec { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/AssumptionExpression.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/AssumptionExpression.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/AssumptionExpression.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,11 @@ */ package com.oracle.truffle.dsl.processor.model; -import javax.lang.model.element.*; - -import com.oracle.truffle.dsl.processor.expression.*; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.expression.DSLExpression; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; public final class AssumptionExpression extends MessageContainer { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/CacheExpression.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/CacheExpression.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/CacheExpression.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,11 @@ */ package com.oracle.truffle.dsl.processor.model; -import javax.lang.model.element.*; - -import com.oracle.truffle.dsl.processor.expression.*; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.expression.DSLExpression; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; public final class CacheExpression extends MessageContainer { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/CreateCastData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/CreateCastData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/CreateCastData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; +import java.util.List; public class CreateCastData extends TemplateMethod { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ExecutableTypeData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ExecutableTypeData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ExecutableTypeData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,20 @@ */ package com.oracle.truffle.dsl.processor.model; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; - -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.isSubtypeBoxed; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.isVoid; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals; +import java.util.ArrayList; +import java.util.List; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.TypeMirror; public class ExecutableTypeData extends MessageContainer implements Comparable { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/GuardExpression.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/GuardExpression.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/GuardExpression.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,13 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; - -import com.oracle.truffle.dsl.processor.expression.*; +import com.oracle.truffle.dsl.processor.expression.DSLExpression; import com.oracle.truffle.dsl.processor.expression.DSLExpression.Negate; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.Objects; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; public final class GuardExpression extends MessageContainer { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ImplicitCastData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ImplicitCastData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ImplicitCastData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.dsl.processor.model; -import javax.lang.model.type.*; +import javax.lang.model.type.TypeMirror; public class ImplicitCastData extends TemplateMethod { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/MessageContainer.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/MessageContainer.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/MessageContainer.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,21 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; +import com.oracle.truffle.dsl.processor.Log; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; import javax.tools.Diagnostic.Kind; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; - public abstract class MessageContainer implements Iterable { private final List messages = new ArrayList<>(); diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/MethodSpec.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/MethodSpec.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/MethodSpec.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,11 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import javax.lang.model.type.TypeMirror; public class MethodSpec { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeChildData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeChildData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeChildData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,12 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.type.TypeMirror; public class NodeChildData extends MessageContainer { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,18 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; import com.oracle.truffle.dsl.processor.model.NodeChildData.Cardinality; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeMirror; public class NodeData extends Template implements Comparable { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeExecutionData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeExecutionData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeExecutionData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,12 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.type.*; - import com.oracle.truffle.dsl.processor.model.NodeChildData.Cardinality; +import java.util.ArrayList; +import java.util.List; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; public class NodeExecutionData { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeFieldData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeFieldData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeFieldData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,8 +22,11 @@ */ package com.oracle.truffle.dsl.processor.model; -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; public class NodeFieldData extends MessageContainer { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Parameter.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Parameter.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Parameter.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,8 +22,8 @@ */ package com.oracle.truffle.dsl.processor.model; -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; public final class Parameter { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ParameterSpec.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ParameterSpec.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ParameterSpec.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,13 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; import com.oracle.truffle.dsl.processor.model.MethodSpec.TypeDef; +import java.util.Arrays; +import java.util.Collection; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; public class ParameterSpec { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ShortCircuitData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ShortCircuitData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/ShortCircuitData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.dsl.processor.model; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; public class ShortCircuitData extends TemplateMethod { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/SpecializationData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/SpecializationData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/SpecializationData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,17 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.expression.*; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.expression.DSLExpression; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; public final class SpecializationData extends TemplateMethod { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/SpecializationThrowsData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/SpecializationThrowsData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/SpecializationThrowsData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,8 +22,10 @@ */ package com.oracle.truffle.dsl.processor.model; -import javax.lang.model.element.*; -import javax.lang.model.type.*; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.type.TypeMirror; public class SpecializationThrowsData extends MessageContainer { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Template.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Template.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Template.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,13 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; - -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.TypeElement; public abstract class Template extends MessageContainer { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TemplateMethod.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TemplateMethod.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TemplateMethod.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,20 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.util.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.util.FilteredIterable; +import com.oracle.truffle.dsl.processor.util.Predicate; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeMirror; /** * Note: this class has a natural ordering that is inconsistent with equals. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeCastData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeCastData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeCastData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.dsl.processor.model; -import javax.lang.model.type.*; +import javax.lang.model.type.TypeMirror; public class TypeCastData extends TemplateMethod { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeCheckData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeCheckData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeCheckData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.dsl.processor.model; -import javax.lang.model.type.*; +import javax.lang.model.type.TypeMirror; public class TypeCheckData extends TemplateMethod { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeSystemData.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeSystemData.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TypeSystemData.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,17 @@ */ package com.oracle.truffle.dsl.processor.model; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.dsl.internal.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; +import com.oracle.truffle.api.dsl.internal.DSLOptions; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeMirror; public class TypeSystemData extends Template { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/AbstractParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/AbstractParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/AbstractParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,18 +22,25 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.element.*; +import com.oracle.truffle.dsl.processor.CompileErrorException; +import com.oracle.truffle.dsl.processor.Log; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.MessageContainer; +import com.oracle.truffle.dsl.processor.model.MessageContainer.Message; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import javax.annotation.processing.ProcessingEnvironment; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; import javax.tools.Diagnostic.Kind; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; -import com.oracle.truffle.dsl.processor.model.MessageContainer.Message; - /** * THIS IS NOT PUBLIC API. */ diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/CreateCastParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/CreateCastParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/CreateCastParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,21 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.CreateCast; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.CreateCastData; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.NodeChildData; +import com.oracle.truffle.dsl.processor.model.NodeData; +import com.oracle.truffle.dsl.processor.model.ParameterSpec; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import java.lang.annotation.Annotation; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeMirror; public class CreateCastParser extends NodeMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/FallbackParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/FallbackParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/FallbackParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,18 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; - -import javax.lang.model.element.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.NodeData; +import com.oracle.truffle.dsl.processor.model.NodeExecutionData; +import com.oracle.truffle.dsl.processor.model.ParameterSpec; +import com.oracle.truffle.dsl.processor.model.SpecializationData; import com.oracle.truffle.dsl.processor.model.SpecializationData.SpecializationKind; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import java.lang.annotation.Annotation; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; public class FallbackParser extends NodeMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/ImplicitCastParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/ImplicitCastParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/ImplicitCastParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,20 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.ImplicitCast; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.ImplicitCastData; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.Parameter; +import com.oracle.truffle.dsl.processor.model.ParameterSpec; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import java.lang.annotation.Annotation; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.type.TypeMirror; public class ImplicitCastParser extends TypeSystemMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/MethodSpecParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/MethodSpecParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/MethodSpecParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,23 @@ */ package com.oracle.truffle.dsl.processor.parser; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; - -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.model.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.hasError; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.Parameter; +import com.oracle.truffle.dsl.processor.model.ParameterSpec; +import com.oracle.truffle.dsl.processor.model.Template; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.ArrayType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; public final class MethodSpecParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeMethodParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeMethodParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeMethodParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,19 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.NodeData; +import com.oracle.truffle.dsl.processor.model.NodeExecutionData; +import com.oracle.truffle.dsl.processor.model.NodeFieldData; +import com.oracle.truffle.dsl.processor.model.ParameterSpec; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import java.util.Arrays; +import java.util.Collection; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeMirror; public abstract class NodeMethodParser extends TemplateMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/NodeParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,29 +22,77 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.CreateCast; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.api.dsl.GenerateNodeFactory; +import com.oracle.truffle.api.dsl.GeneratedBy; +import com.oracle.truffle.api.dsl.ImportStatic; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.dsl.NodeField; +import com.oracle.truffle.api.dsl.NodeFields; +import com.oracle.truffle.api.dsl.ShortCircuit; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.dsl.TypeSystemReference; +import com.oracle.truffle.api.dsl.internal.DSLOptions; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.dsl.processor.CompileErrorException; +import com.oracle.truffle.dsl.processor.Log; +import com.oracle.truffle.dsl.processor.expression.DSLExpression; +import com.oracle.truffle.dsl.processor.expression.DSLExpressionResolver; +import com.oracle.truffle.dsl.processor.expression.InvalidExpressionException; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.java.compiler.CompilerFactory; +import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.ArrayCodeTypeMirror; +import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; +import com.oracle.truffle.dsl.processor.model.AssumptionExpression; +import com.oracle.truffle.dsl.processor.model.CacheExpression; +import com.oracle.truffle.dsl.processor.model.ExecutableTypeData; +import com.oracle.truffle.dsl.processor.model.GuardExpression; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.NodeChildData; +import com.oracle.truffle.dsl.processor.model.NodeChildData.Cardinality; +import com.oracle.truffle.dsl.processor.model.NodeData; +import com.oracle.truffle.dsl.processor.model.NodeExecutionData; +import com.oracle.truffle.dsl.processor.model.NodeFieldData; +import com.oracle.truffle.dsl.processor.model.Parameter; +import com.oracle.truffle.dsl.processor.model.ParameterSpec; +import com.oracle.truffle.dsl.processor.model.ShortCircuitData; +import com.oracle.truffle.dsl.processor.model.SpecializationData; +import com.oracle.truffle.dsl.processor.model.SpecializationData.SpecializationKind; +import com.oracle.truffle.dsl.processor.model.SpecializationThrowsData; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; import javax.tools.Diagnostic.Kind; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.expression.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.java.compiler.*; -import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.ArrayCodeTypeMirror; -import com.oracle.truffle.dsl.processor.java.model.*; -import com.oracle.truffle.dsl.processor.model.*; -import com.oracle.truffle.dsl.processor.model.NodeChildData.Cardinality; -import com.oracle.truffle.dsl.processor.model.SpecializationData.SpecializationKind; - @DSLOptions public class NodeParser extends AbstractParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/ShortCircuitParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/ShortCircuitParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/ShortCircuitParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,20 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; -import java.util.*; - -import javax.lang.model.element.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.ShortCircuit; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.NodeData; +import com.oracle.truffle.dsl.processor.model.NodeExecutionData; +import com.oracle.truffle.dsl.processor.model.ParameterSpec; +import com.oracle.truffle.dsl.processor.model.ShortCircuitData; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import java.lang.annotation.Annotation; +import java.util.HashSet; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; public class ShortCircuitParser extends NodeMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/SpecializationGroup.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/SpecializationGroup.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/SpecializationGroup.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,15 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.util.*; - -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.dsl.processor.model.GuardExpression; +import com.oracle.truffle.dsl.processor.model.NodeData; +import com.oracle.truffle.dsl.processor.model.SpecializationData; import com.oracle.truffle.dsl.processor.model.TemplateMethod.TypeSignature; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import javax.lang.model.type.TypeMirror; /** * Class creates groups of specializations to optimize the layout of generated executeAndSpecialize diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/SpecializationMethodParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/SpecializationMethodParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/SpecializationMethodParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,17 +22,27 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.AnnotatedParameterSpec; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.NodeData; +import com.oracle.truffle.dsl.processor.model.SpecializationData; import com.oracle.truffle.dsl.processor.model.SpecializationData.SpecializationKind; +import com.oracle.truffle.dsl.processor.model.SpecializationThrowsData; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.AnnotationValue; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeMirror; public class SpecializationMethodParser extends NodeMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TemplateMethodParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TemplateMethodParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TemplateMethodParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,23 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.Template; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; public abstract class TemplateMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeCastParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeCastParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeCastParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,18 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.TypeCast; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.ParameterSpec; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import com.oracle.truffle.dsl.processor.model.TypeCastData; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import java.lang.annotation.Annotation; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeMirror; class TypeCastParser extends TypeSystemMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeCheckParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeCheckParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeCheckParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,14 +22,17 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.TypeCheck; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.model.MethodSpec; +import com.oracle.truffle.dsl.processor.model.ParameterSpec; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import com.oracle.truffle.dsl.processor.model.TypeCheckData; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import java.lang.annotation.Annotation; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.type.TypeMirror; class TypeCheckParser extends TypeSystemMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemMethodParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemMethodParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemMethodParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,13 @@ */ package com.oracle.truffle.dsl.processor.parser; -import javax.lang.model.element.*; -import javax.lang.model.type.*; - -import com.oracle.truffle.dsl.processor.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.dsl.processor.ProcessorContext; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.TemplateMethod; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.type.TypeMirror; abstract class TypeSystemMethodParser extends TemplateMethodParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,17 +22,33 @@ */ package com.oracle.truffle.dsl.processor.parser; -import java.lang.annotation.*; -import java.util.*; - -import javax.lang.model.element.*; -import javax.lang.model.type.*; -import javax.lang.model.util.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; -import com.oracle.truffle.dsl.processor.java.*; -import com.oracle.truffle.dsl.processor.model.*; +import com.oracle.truffle.api.dsl.TypeCast; +import com.oracle.truffle.api.dsl.TypeCheck; +import com.oracle.truffle.api.dsl.TypeSystem; +import com.oracle.truffle.api.dsl.internal.DSLOptions; +import com.oracle.truffle.dsl.processor.java.ElementUtils; +import com.oracle.truffle.dsl.processor.model.ImplicitCastData; +import com.oracle.truffle.dsl.processor.model.Template; +import com.oracle.truffle.dsl.processor.model.TypeCastData; +import com.oracle.truffle.dsl.processor.model.TypeCheckData; +import com.oracle.truffle.dsl.processor.model.TypeSystemData; +import java.lang.annotation.Annotation; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import javax.lang.model.element.AnnotationMirror; +import javax.lang.model.element.Element; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.ElementFilter; +import javax.lang.model.util.Types; @DSLOptions public class TypeSystemParser extends AbstractParser { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/util/Filterator.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/util/Filterator.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/util/Filterator.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,8 @@ */ package com.oracle.truffle.dsl.processor.util; -import java.util.*; +import java.util.Iterator; +import java.util.NoSuchElementException; public class Filterator implements Iterator { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/util/FilteredIterable.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/util/FilteredIterable.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/util/FilteredIterable.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.dsl.processor.util; -import java.util.*; +import java.util.Iterator; public class FilteredIterable implements Iterable { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/verify/VerifyTruffleProcessor.java --- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/verify/VerifyTruffleProcessor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/verify/VerifyTruffleProcessor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,20 +22,27 @@ */ package com.oracle.truffle.dsl.processor.verify; -import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; -import static java.util.Collections.*; - -import java.io.*; -import java.util.*; - -import javax.annotation.processing.*; -import javax.lang.model.*; -import javax.lang.model.element.*; -import javax.tools.Diagnostic.Kind; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.nodes.Node.Child; -import com.oracle.truffle.dsl.processor.*; +import com.oracle.truffle.dsl.processor.ExpectError; +import static com.oracle.truffle.dsl.processor.java.ElementUtils.getElementHierarchy; +import java.io.PrintWriter; +import java.io.StringWriter; +import static java.util.Collections.reverse; +import java.util.List; +import java.util.Set; +import javax.annotation.processing.AbstractProcessor; +import javax.annotation.processing.FilerException; +import javax.annotation.processing.RoundEnvironment; +import javax.annotation.processing.SupportedAnnotationTypes; +import javax.lang.model.SourceVersion; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; +import javax.lang.model.element.ExecutableElement; +import javax.lang.model.element.Modifier; +import javax.lang.model.element.TypeElement; +import javax.lang.model.element.VariableElement; +import javax.tools.Diagnostic.Kind; @SupportedAnnotationTypes({"com.oracle.truffle.api.CompilerDirectives.TruffleBoundary", "com.oracle.truffle.api.nodes.Node.Child"}) public class VerifyTruffleProcessor extends AbstractProcessor { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicAllocator.java --- a/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicAllocator.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicAllocator.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,20 +22,27 @@ */ package com.oracle.truffle.object.basic; -import static com.oracle.truffle.object.basic.BasicLocations.*; - -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.object.*; +import com.oracle.truffle.api.object.BooleanLocation; +import com.oracle.truffle.api.object.DoubleLocation; +import com.oracle.truffle.api.object.IntLocation; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.LongLocation; +import com.oracle.truffle.api.object.ObjectLocation; +import com.oracle.truffle.object.LayoutImpl; import com.oracle.truffle.object.LocationImpl.InternalLongLocation; import com.oracle.truffle.object.Locations.ConstantLocation; import com.oracle.truffle.object.Locations.DeclaredDualLocation; import com.oracle.truffle.object.Locations.DualLocation; import com.oracle.truffle.object.Locations.ValueLocation; +import com.oracle.truffle.object.ObjectStorageOptions; +import com.oracle.truffle.object.ShapeImpl; import com.oracle.truffle.object.basic.BasicLocations.BooleanLocationDecorator; import com.oracle.truffle.object.basic.BasicLocations.DoubleLocationDecorator; import com.oracle.truffle.object.basic.BasicLocations.IntLocationDecorator; +import static com.oracle.truffle.object.basic.BasicLocations.LONG_SIZE; import com.oracle.truffle.object.basic.BasicLocations.LongArrayLocation; import com.oracle.truffle.object.basic.BasicLocations.LongFieldLocation; +import static com.oracle.truffle.object.basic.BasicLocations.OBJECT_SIZE; import com.oracle.truffle.object.basic.BasicLocations.ObjectArrayLocation; public abstract class BasicAllocator extends ShapeImpl.BaseAllocator { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicLayout.java --- a/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicLayout.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicLayout.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,19 @@ */ package com.oracle.truffle.object.basic; -import java.util.*; - -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.ObjectLocation; +import com.oracle.truffle.api.object.ObjectType; +import com.oracle.truffle.api.object.Shape; import com.oracle.truffle.api.object.Shape.Allocator; -import com.oracle.truffle.object.*; +import com.oracle.truffle.object.LayoutImpl; +import com.oracle.truffle.object.LayoutStrategy; import com.oracle.truffle.object.LocationImpl.InternalLongLocation; import com.oracle.truffle.object.Locations.DualLocation; import com.oracle.truffle.object.basic.BasicLocations.ObjectFieldLocation; import com.oracle.truffle.object.basic.BasicLocations.SimpleObjectFieldLocation; +import java.util.EnumSet; public class BasicLayout extends LayoutImpl { private final ObjectLocation[] objectFields; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicLocations.java --- a/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicLocations.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/BasicLocations.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,21 @@ */ package com.oracle.truffle.object.basic; -import java.lang.invoke.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.object.*; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.object.BooleanLocation; +import com.oracle.truffle.api.object.DoubleLocation; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.FinalLocationException; +import com.oracle.truffle.api.object.IncompatibleLocationException; +import com.oracle.truffle.api.object.IntLocation; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.LongLocation; +import com.oracle.truffle.api.object.ObjectLocation; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.object.LocationImpl; import com.oracle.truffle.object.LocationImpl.InternalLongLocation; +import java.lang.invoke.MethodHandle; /** * Property location. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultLayoutFactory.java --- a/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultLayoutFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultLayoutFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,14 @@ */ package com.oracle.truffle.object.basic; -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.object.*; +import com.oracle.truffle.api.object.Layout; +import com.oracle.truffle.api.object.LayoutFactory; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.object.PropertyImpl; public class DefaultLayoutFactory implements LayoutFactory { - public Layout createLayout(LayoutBuilder layoutBuilder) { + public Layout createLayout(Layout.Builder layoutBuilder) { return BasicLayout.createLayoutImpl(layoutBuilder.getAllowedImplicitCasts(), new DefaultStrategy()); } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultStrategy.java --- a/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultStrategy.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultStrategy.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,17 @@ */ package com.oracle.truffle.object.basic; -import java.util.*; - -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.object.*; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.Layout; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.object.LayoutImpl; +import com.oracle.truffle.object.LayoutStrategy; +import com.oracle.truffle.object.LocationImpl; +import com.oracle.truffle.object.ShapeImpl; import com.oracle.truffle.object.ShapeImpl.BaseAllocator; +import java.util.Objects; class DefaultStrategy implements LayoutStrategy { public boolean updateShape(DynamicObject object) { @@ -41,8 +47,8 @@ private static boolean assertLocationInRange(Shape shape, Location location) { BasicLayout layout = (BasicLayout) shape.getLayout(); - assert (shape.getPrimitiveFieldSize() + ((LocationImpl) location).primitiveFieldCount() <= layout.getPrimitiveFieldCount()); - assert (shape.getObjectFieldSize() + ((LocationImpl) location).objectFieldCount() <= layout.getObjectFieldCount()); + assert (((ShapeImpl) shape).getPrimitiveFieldSize() + ((LocationImpl) location).primitiveFieldCount() <= layout.getPrimitiveFieldCount()); + assert (((ShapeImpl) shape).getObjectFieldSize() + ((LocationImpl) location).objectFieldCount() <= layout.getObjectFieldCount()); return true; } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DynamicObjectBasic.java --- a/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DynamicObjectBasic.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DynamicObjectBasic.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,12 +22,15 @@ */ package com.oracle.truffle.object.basic; -import java.lang.annotation.*; - -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.object.*; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.object.DynamicObjectImpl; +import com.oracle.truffle.object.ObjectStorageOptions; +import com.oracle.truffle.object.ShapeImpl; import com.oracle.truffle.object.basic.BasicLocations.SimpleLongFieldLocation; import com.oracle.truffle.object.basic.BasicLocations.SimpleObjectFieldLocation; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; public class DynamicObjectBasic extends DynamicObjectImpl { @Retention(RetentionPolicy.RUNTIME) @@ -91,8 +94,8 @@ @Override protected final void growPrimitiveStore(Shape oldShape, Shape newShape) { assert ((ShapeImpl) newShape).hasPrimitiveArray(); - int oldPrimitiveCapacity = oldShape.getPrimitiveArrayCapacity(); - int newPrimitiveCapacity = newShape.getPrimitiveArrayCapacity(); + int oldPrimitiveCapacity = ((ShapeImpl) oldShape).getPrimitiveArrayCapacity(); + int newPrimitiveCapacity = ((ShapeImpl) newShape).getPrimitiveArrayCapacity(); if (newPrimitiveCapacity == 0) { // due to obsolescence, we might have to reserve an empty primitive array slot this.setPrimitiveStore(null, newShape); @@ -116,10 +119,10 @@ @Override protected final void resizeObjectStore(Shape oldShape, Shape newShape) { Object[] newObjectStore = null; - int destinationCapacity = newShape.getObjectArrayCapacity(); + int destinationCapacity = ((ShapeImpl) newShape).getObjectArrayCapacity(); if (destinationCapacity != 0) { newObjectStore = new Object[destinationCapacity]; - int sourceCapacity = oldShape.getObjectArrayCapacity(); + int sourceCapacity = ((ShapeImpl) oldShape).getObjectArrayCapacity(); if (sourceCapacity != 0) { Object[] oldObjectStore = getObjectStore(newShape); for (int i = 0; i < Math.min(sourceCapacity, destinationCapacity); ++i) { @@ -148,12 +151,12 @@ @Override protected final void resizePrimitiveStore(Shape oldShape, Shape newShape) { - assert newShape.hasPrimitiveArray(); + assert ((ShapeImpl) newShape).hasPrimitiveArray(); long[] newPrimitiveArray = null; - int destinationCapacity = newShape.getPrimitiveArrayCapacity(); + int destinationCapacity = ((ShapeImpl) newShape).getPrimitiveArrayCapacity(); if (destinationCapacity != 0) { newPrimitiveArray = new long[destinationCapacity]; - int sourceCapacity = oldShape.getPrimitiveArrayCapacity(); + int sourceCapacity = ((ShapeImpl) oldShape).getPrimitiveArrayCapacity(); if (sourceCapacity != 0) { long[] oldPrimitiveArray = this.getPrimitiveStore(newShape); for (int i = 0; i < Math.min(sourceCapacity, destinationCapacity); ++i) { @@ -184,11 +187,11 @@ @Override protected final boolean checkExtensionArrayInvariants(Shape newShape) { assert getShape() == newShape; - assert (getObjectStore(newShape) == null && newShape.getObjectArrayCapacity() == 0) || - (getObjectStore(newShape) != null && getObjectStore(newShape).length == newShape.getObjectArrayCapacity()); - if (newShape.hasPrimitiveArray()) { - assert (getPrimitiveStore(newShape) == null && newShape.getPrimitiveArrayCapacity() == 0) || - (getPrimitiveStore(newShape) != null && getPrimitiveStore(newShape).length == newShape.getPrimitiveArrayCapacity()); + assert (getObjectStore(newShape) == null && ((ShapeImpl) newShape).getObjectArrayCapacity() == 0) || + (getObjectStore(newShape) != null && getObjectStore(newShape).length == ((ShapeImpl) newShape).getObjectArrayCapacity()); + if (((ShapeImpl) newShape).hasPrimitiveArray()) { + assert (getPrimitiveStore(newShape) == null && ((ShapeImpl) newShape).getPrimitiveArrayCapacity() == 0) || + (getPrimitiveStore(newShape) != null && getPrimitiveStore(newShape).length == ((ShapeImpl) newShape).getPrimitiveArrayCapacity()); } return true; } @@ -200,7 +203,7 @@ if (this.getObjectStore(currentShape) != null) { clone.setObjectStore(this.getObjectStore(currentShape).clone(), currentShape); } - if (currentShape.hasPrimitiveArray() && this.getPrimitiveStore(currentShape) != null) { + if (((ShapeImpl) currentShape).hasPrimitiveArray() && this.getPrimitiveStore(currentShape) != null) { clone.setPrimitiveStore(this.getPrimitiveStore(currentShape).clone(), currentShape); } return clone; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/ShapeBasic.java --- a/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/ShapeBasic.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/ShapeBasic.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,8 +22,12 @@ */ package com.oracle.truffle.object.basic; -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.object.*; +import com.oracle.truffle.api.object.Layout; +import com.oracle.truffle.api.object.ObjectType; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.object.PropertyMap; +import com.oracle.truffle.object.ShapeImpl; +import com.oracle.truffle.object.Transition; public final class ShapeBasic extends ShapeImpl { public ShapeBasic(Layout layout, Object sharedData, ObjectType operations, int id) { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ConsListPropertyMap.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ConsListPropertyMap.java Mon Sep 21 11:21:03 2015 +0200 @@ -0,0 +1,400 @@ +/* + * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.truffle.object; + +import com.oracle.truffle.api.object.Property; +import java.util.AbstractSet; +import java.util.ArrayDeque; +import java.util.Arrays; +import java.util.Collection; +import java.util.Deque; +import java.util.Iterator; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Objects; +import java.util.Set; + +/** + * Implementation of {@link PropertyMap} as a reverse-order cons (snoc) list. + */ +final class ConsListPropertyMap extends PropertyMap { + private final ConsListPropertyMap car; + private final Property cdr; + private final int size; + + private static final ConsListPropertyMap EMPTY = new ConsListPropertyMap(); + + private ConsListPropertyMap() { + this.car = null; + this.cdr = null; + this.size = 0; + } + + private ConsListPropertyMap(ConsListPropertyMap parent, Property added) { + this.car = Objects.requireNonNull(parent); + this.cdr = added; + this.size = parent.size + 1; + } + + public static ConsListPropertyMap empty() { + return EMPTY; + } + + public int size() { + return size; + } + + public boolean isEmpty() { + return size() == 0; + } + + public boolean containsKey(Object key) { + for (Map.Entry entry : reverseOrderEntrySet()) { + if (entry.getKey().equals(key)) { + return true; + } + } + return false; + } + + public boolean containsValue(Object value) { + for (Map.Entry entry : reverseOrderEntrySet()) { + if (entry.getValue().equals(value)) { + return true; + } + } + return false; + } + + public Property get(Object key) { + for (Map.Entry entry : reverseOrderEntrySet()) { + if (entry.getKey().equals(key)) { + return entry.getValue(); + } + } + return null; + } + + public Set keySet() { + return new AbstractSet() { + @Override + public Iterator iterator() { + return ConsListPropertyMap.this.orderedKeyIterator(); + } + + @Override + public int size() { + return ConsListPropertyMap.this.size(); + } + }; + } + + public Collection values() { + return new AbstractSet() { + @Override + public Iterator iterator() { + return ConsListPropertyMap.this.orderedValueIterator(); + } + + @Override + public int size() { + return ConsListPropertyMap.this.size(); + } + }; + } + + public Set> entrySet() { + return new AbstractSet>() { + @Override + public Iterator> iterator() { + @SuppressWarnings("unchecked") + Map.Entry[] entries = (Map.Entry[]) new Map.Entry[size()]; + Iterator> iterator = reverseOrderEntrySet().iterator(); + for (int pos = size() - 1; pos >= 0; pos--) { + entries[pos] = iterator.next(); + } + return Arrays.asList(entries).iterator(); + } + + @Override + public int size() { + return ConsListPropertyMap.this.size(); + } + }; + } + + public Set> reverseOrderEntrySet() { + return new AbstractSet>() { + @Override + public Iterator> iterator() { + return new Iterator>() { + ConsListPropertyMap current = ConsListPropertyMap.this; + + public Entry next() { + if (hasNext()) { + try { + return new MapEntryImpl(current.cdr); + } finally { + current = current.car; + } + } else { + throw new NoSuchElementException(); + } + } + + public boolean hasNext() { + return current != empty(); + } + + public void remove() { + throw new UnsupportedOperationException(); + } + }; + } + + @Override + public int size() { + return ConsListPropertyMap.this.size(); + } + }; + } + + @Override + public Iterator orderedKeyIterator() { + Object[] keys = new Object[size()]; + Iterator> iterator = reverseOrderEntrySet().iterator(); + for (int pos = size() - 1; pos >= 0; pos--) { + keys[pos] = iterator.next().getKey(); + } + return Arrays.asList(keys).iterator(); + } + + @Override + public Iterator reverseOrderedKeyIterator() { + return reverseOrderKeys().iterator(); + } + + public Set reverseOrderKeys() { + return new AbstractSet() { + @Override + public Iterator iterator() { + return new Iterator() { + ConsListPropertyMap current = ConsListPropertyMap.this; + + public Object next() { + if (hasNext()) { + try { + return current.cdr.getKey(); + } finally { + current = current.car; + } + } else { + throw new NoSuchElementException(); + } + } + + public boolean hasNext() { + return current != empty(); + } + + public void remove() { + throw new UnsupportedOperationException(); + } + }; + } + + @Override + public int size() { + return ConsListPropertyMap.this.size(); + } + }; + } + + @Override + public Iterator orderedValueIterator() { + Property[] values = new Property[size()]; + Iterator> iterator = reverseOrderEntrySet().iterator(); + for (int pos = size() - 1; pos >= 0; pos--) { + values[pos] = iterator.next().getValue(); + } + return Arrays.asList(values).iterator(); + } + + @Override + public Iterator reverseOrderedValueIterator() { + return reverseOrderValues().iterator(); + } + + public Set reverseOrderValues() { + return new AbstractSet() { + @Override + public Iterator iterator() { + return new Iterator() { + ConsListPropertyMap current = ConsListPropertyMap.this; + + public Property next() { + if (hasNext()) { + try { + return current.cdr; + } finally { + current = current.car; + } + } else { + throw new NoSuchElementException(); + } + } + + public boolean hasNext() { + return current != empty(); + } + + public void remove() { + throw new UnsupportedOperationException(); + } + }; + } + + @Override + public int size() { + return ConsListPropertyMap.this.size(); + } + }; + } + + private static final class MapEntryImpl implements Map.Entry { + private final Property backingProperty; + + public MapEntryImpl(Property backingProperty) { + this.backingProperty = backingProperty; + } + + public Object getKey() { + return backingProperty.getKey(); + } + + public Property getValue() { + return backingProperty; + } + + public Property setValue(Property value) { + throw unmodifiableException(); + } + } + + public PropertyMap copyAndPut(Object key, Property value) { + if (!value.getKey().equals(key)) { + throw new IllegalArgumentException("Key must equal extracted key of property."); + } + + return putCopy(value); + } + + public ImmutableMap copyAndRemove(Object key) { + Deque shelve = new ArrayDeque<>(); + ConsListPropertyMap current = this; + while (!current.isEmpty()) { + if (current.getLastProperty().getKey().equals(key)) { + ConsListPropertyMap newMap = current.getParentMap(); + for (Property property : shelve) { + newMap = newMap.putCopy(property); + } + return newMap; + } else { + shelve.push(current.getLastProperty()); + current = current.getParentMap(); + } + } + return this; + } + + @Override + public ConsListPropertyMap putCopy(Property value) { + return new ConsListPropertyMap(this, value); + } + + @Override + public ConsListPropertyMap removeCopy(Property value) { + Deque shelve = new ArrayDeque<>(); + ConsListPropertyMap current = this; + while (!current.isEmpty()) { + if (current.getLastProperty().equals(value)) { + ConsListPropertyMap newMap = current.getParentMap(); + for (Property property : shelve) { + newMap = newMap.putCopy(property); + } + return newMap; + } else { + shelve.push(current.getLastProperty()); + current = current.getParentMap(); + } + } + return this; + } + + @Override + public ConsListPropertyMap replaceCopy(Property oldValue, Property newValue) { + Deque shelve = new ArrayDeque<>(); + ConsListPropertyMap current = this; + while (!current.isEmpty()) { + if (current.getLastProperty().equals(oldValue)) { + ConsListPropertyMap newMap = current.getParentMap(); + newMap = newMap.putCopy(newValue); + for (Property property : shelve) { + newMap = newMap.putCopy(property); + } + return newMap; + } else { + shelve.push(current.getLastProperty()); + current = current.getParentMap(); + } + } + return this; + } + + public ConsListPropertyMap getOwningMap(Property value) { + ConsListPropertyMap current = this; + while (!current.isEmpty()) { + if (current.getLastProperty().equals(value)) { + return current; + } + current = current.getParentMap(); + } + return null; + } + + @Override + public ConsListPropertyMap getParentMap() { + return car; + } + + @Override + public Property getLastProperty() { + return cdr; + } + + @Override + public String toString() { + return values().toString(); + } + +} diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/Debug.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/Debug.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/Debug.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,12 @@ */ package com.oracle.truffle.object; -import java.io.*; -import java.util.*; -import java.util.concurrent.*; - -import com.oracle.truffle.object.debug.*; +import com.oracle.truffle.object.debug.JSONShapeVisitor; +import java.io.FileNotFoundException; +import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; +import java.util.Collection; +import java.util.concurrent.ConcurrentLinkedQueue; class Debug { private static Collection allShapes; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DebugCounter.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DebugCounter.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DebugCounter.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,9 @@ */ package com.oracle.truffle.object; -import java.io.*; -import java.util.*; -import java.util.concurrent.atomic.*; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.concurrent.atomic.AtomicLong; public final class DebugCounter { private static final ArrayList allCounters = new ArrayList<>(); diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DebugShapeVisitor.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DebugShapeVisitor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DebugShapeVisitor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,9 @@ */ package com.oracle.truffle.object; -import java.util.*; - -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.object.Shape; +import java.util.Collections; +import java.util.Map; public abstract class DebugShapeVisitor implements ShapeVisitor { public R visitShape(Shape shape) { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,15 @@ */ package com.oracle.truffle.object; -import java.util.*; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.interop.*; -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.interop.ForeignAccess; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.LocationFactory; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; import com.oracle.truffle.object.Locations.ValueLocation; -import com.oracle.truffle.object.debug.*; +import com.oracle.truffle.object.debug.ShapeProfiler; +import java.util.List; public abstract class DynamicObjectImpl extends DynamicObject implements Cloneable { private ShapeImpl shape; @@ -184,7 +186,6 @@ } } - @Override @TruffleBoundary public boolean changeFlags(Object id, int newFlags) { Shape oldShape = getShape(); @@ -201,24 +202,6 @@ } } - @Override - @TruffleBoundary - public boolean changeFlags(Object id, FlagsFunction updateFunction) { - Shape oldShape = getShape(); - Property existing = oldShape.getProperty(id); - if (existing != null) { - int newFlags = updateFunction.apply(existing.getFlags()); - if (existing.getFlags() != newFlags) { - Property newProperty = existing.copyWithFlags(newFlags); - Shape newShape = oldShape.replaceProperty(existing, newProperty); - this.setShape(newShape); - } - return true; - } else { - return false; - } - } - public String debugDump(int level) { return debugDump(0, level); } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ImmutableMap.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ImmutableMap.java Mon Sep 21 11:21:03 2015 +0200 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.truffle.object; + +import java.util.Map; + +/** + * An immutable {@link Map}. Does not permit null keys or values. + */ +public interface ImmutableMap extends Map { + + /** + * Creates an immutable copy of this map with the given entry put in the map. + */ + ImmutableMap copyAndPut(final K key, final V value); + + /** + * Creates an immutable copy of this map with the given entry removed from the map. + */ + ImmutableMap copyAndRemove(final K key); + +} diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LayoutImpl.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LayoutImpl.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LayoutImpl.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,18 @@ */ package com.oracle.truffle.object; -import java.util.*; - -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.object.BooleanLocation; +import com.oracle.truffle.api.object.DoubleLocation; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.IntLocation; +import com.oracle.truffle.api.object.Layout; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.LocationModifier; +import com.oracle.truffle.api.object.LongLocation; +import com.oracle.truffle.api.object.ObjectLocation; +import com.oracle.truffle.api.object.ObjectType; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; import com.oracle.truffle.api.object.Shape.Allocator; import com.oracle.truffle.object.LocationImpl.EffectivelyFinalLocation; import com.oracle.truffle.object.LocationImpl.TypedObjectLocation; @@ -33,6 +42,7 @@ import com.oracle.truffle.object.Locations.DualLocation; import com.oracle.truffle.object.Locations.ValueLocation; import com.oracle.truffle.object.ShapeImpl.BaseAllocator; +import java.util.EnumSet; public abstract class LayoutImpl extends Layout { private static final int INT_TO_DOUBLE_FLAG = 1; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LayoutStrategy.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LayoutStrategy.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LayoutStrategy.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,11 @@ */ package com.oracle.truffle.object; -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.Layout; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; import com.oracle.truffle.object.ShapeImpl.BaseAllocator; public interface LayoutStrategy { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LocationImpl.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LocationImpl.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LocationImpl.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,17 @@ */ package com.oracle.truffle.object; -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.object.BooleanLocation; +import com.oracle.truffle.api.object.DoubleLocation; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.FinalLocationException; +import com.oracle.truffle.api.object.IncompatibleLocationException; +import com.oracle.truffle.api.object.IntLocation; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.LongLocation; +import com.oracle.truffle.api.object.ObjectLocation; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.api.object.TypedLocation; public abstract class LocationImpl extends Location { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/Locations.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/Locations.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/Locations.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,16 @@ */ package com.oracle.truffle.object; -import java.util.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.FinalLocationException; +import com.oracle.truffle.api.object.IncompatibleLocationException; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.ObjectLocation; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.api.object.TypedLocation; +import java.util.Objects; /** * Property location. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ObjectStorageOptions.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ObjectStorageOptions.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ObjectStorageOptions.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.object; -import static com.oracle.truffle.api.object.Layout.*; +import static com.oracle.truffle.api.object.Layout.OPTION_PREFIX; public class ObjectStorageOptions { // Shape configuration diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyImpl.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyImpl.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyImpl.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,10 +22,17 @@ */ package com.oracle.truffle.object; -import java.util.*; - -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.FinalLocationException; +import com.oracle.truffle.api.object.HiddenKey; +import com.oracle.truffle.api.object.IncompatibleLocationException; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.LocationModifier; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; import com.oracle.truffle.object.Locations.DeclaredLocation; +import java.util.EnumSet; +import java.util.Objects; /** * Property objects represent the mapping between property identifiers (keys) and storage locations. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyMap.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyMap.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyMap.java Mon Sep 21 11:21:03 2015 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,336 +22,58 @@ */ package com.oracle.truffle.object; -import java.util.*; - -import com.oracle.truffle.api.object.*; - -public final class PropertyMap implements Map { - private final PropertyMap car; - private final Property cdr; - private final int size; - - private static final PropertyMap EMPTY = new PropertyMap(); +import com.oracle.truffle.api.object.Property; +import java.util.Iterator; +import java.util.Map; - private PropertyMap() { - this.car = null; - this.cdr = null; - this.size = 0; - } - - private PropertyMap(PropertyMap parent, Property added) { - this.car = Objects.requireNonNull(parent); - this.cdr = added; - this.size = parent.size + 1; - } +/** + * Immutable property map. + */ +public abstract class PropertyMap implements ImmutableMap { public static PropertyMap empty() { - return EMPTY; - } - - public int size() { - return size; + return ConsListPropertyMap.empty(); } - public boolean isEmpty() { - return size() == 0; - } + public abstract Iterator orderedKeyIterator(); + + public abstract Iterator reverseOrderedKeyIterator(); - public boolean containsKey(Object key) { - for (Map.Entry entry : reverseOrderEntrySet()) { - if (entry.getKey().equals(key)) { - return true; - } - } - return false; - } + public abstract Iterator orderedValueIterator(); + + public abstract Iterator reverseOrderedValueIterator(); + + public abstract Property getLastProperty(); - public boolean containsValue(Object value) { - for (Map.Entry entry : reverseOrderEntrySet()) { - if (entry.getValue().equals(value)) { - return true; - } - } - return false; - } + public abstract PropertyMap putCopy(final Property element); + + public abstract PropertyMap replaceCopy(final Property oldValue, final Property newValue); - public Property get(Object key) { - for (Map.Entry entry : reverseOrderEntrySet()) { - if (entry.getKey().equals(key)) { - return entry.getValue(); - } - } - return null; - } + public abstract PropertyMap removeCopy(final Property value); - public Property put(Object key, Property value) { + public abstract PropertyMap getParentMap(); + + @Override + public Property put(final Object key, final Property value) { throw unmodifiableException(); } - public Property remove(Object key) { + @Override + public void putAll(final Map m) { throw unmodifiableException(); } - public void putAll(Map m) { + @Override + public Property remove(final Object key) { throw unmodifiableException(); } + @Override public void clear() { throw unmodifiableException(); } - public Set keySet() { - return new AbstractSet() { - @Override - public Iterator iterator() { - Object[] keys = new Object[size()]; - Iterator> iterator = reverseOrderEntrySet().iterator(); - for (int pos = size() - 1; pos >= 0; pos--) { - keys[pos] = iterator.next().getKey(); - } - return Arrays.asList(keys).iterator(); - } - - @Override - public int size() { - return PropertyMap.this.size(); - } - }; - } - - public Collection values() { - return new AbstractSet() { - @Override - public Iterator iterator() { - Property[] values = new Property[size()]; - Iterator> iterator = reverseOrderEntrySet().iterator(); - for (int pos = size() - 1; pos >= 0; pos--) { - values[pos] = iterator.next().getValue(); - } - return Arrays.asList(values).iterator(); - } - - @Override - public int size() { - return PropertyMap.this.size(); - } - }; - } - - public Set> entrySet() { - return new AbstractSet>() { - @Override - public Iterator> iterator() { - @SuppressWarnings("unchecked") - Map.Entry[] entries = (Map.Entry[]) new Map.Entry[size()]; - Iterator> iterator = reverseOrderEntrySet().iterator(); - for (int pos = size() - 1; pos >= 0; pos--) { - entries[pos] = iterator.next(); - } - return Arrays.asList(entries).iterator(); - } - - @Override - public int size() { - return PropertyMap.this.size(); - } - }; - } - - public Set> reverseOrderEntrySet() { - return new AbstractSet>() { - @Override - public Iterator> iterator() { - return new Iterator>() { - PropertyMap current = PropertyMap.this; - - public Entry next() { - if (hasNext()) { - try { - return new MapEntryImpl(current.cdr); - } finally { - current = current.car; - } - } else { - throw new NoSuchElementException(); - } - } - - public boolean hasNext() { - return current != empty(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - }; - } - - @Override - public int size() { - return PropertyMap.this.size(); - } - }; - } - - public Set reverseOrderKeys() { - return new AbstractSet() { - @Override - public Iterator iterator() { - return new Iterator() { - PropertyMap current = PropertyMap.this; - - public Object next() { - if (hasNext()) { - try { - return current.cdr.getKey(); - } finally { - current = current.car; - } - } else { - throw new NoSuchElementException(); - } - } - - public boolean hasNext() { - return current != empty(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - }; - } - - @Override - public int size() { - return PropertyMap.this.size(); - } - }; - } - - public Set reverseOrderValues() { - return new AbstractSet() { - @Override - public Iterator iterator() { - return new Iterator() { - PropertyMap current = PropertyMap.this; - - public Property next() { - if (hasNext()) { - try { - return current.cdr; - } finally { - current = current.car; - } - } else { - throw new NoSuchElementException(); - } - } - - public boolean hasNext() { - return current != empty(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - }; - } - - @Override - public int size() { - return PropertyMap.this.size(); - } - }; - } - - private static final class MapEntryImpl implements Map.Entry { - private final Property backingProperty; - - public MapEntryImpl(Property backingProperty) { - this.backingProperty = backingProperty; - } - - public Object getKey() { - return backingProperty.getKey(); - } - - public Property getValue() { - return backingProperty; - } - - public Property setValue(Property value) { - throw unmodifiableException(); - } - } - - private static UnsupportedOperationException unmodifiableException() { - throw new UnsupportedOperationException("unmodifiable"); - } - - public PropertyMap putCopy(Property value) { - return new PropertyMap(this, value); - } - - public PropertyMap removeCopy(Property value) { - Deque shelve = new ArrayDeque<>(); - PropertyMap current = this; - while (!current.isEmpty()) { - if (current.getLastProperty().equals(value)) { - PropertyMap newMap = current.getParentMap(); - for (Property property : shelve) { - newMap = newMap.putCopy(property); - } - return newMap; - } else { - shelve.push(current.getLastProperty()); - current = current.getParentMap(); - } - } - return this; - } - - public PropertyMap replaceCopy(Property oldValue, Property newValue) { - Deque shelve = new ArrayDeque<>(); - PropertyMap current = this; - while (!current.isEmpty()) { - if (current.getLastProperty().equals(oldValue)) { - PropertyMap newMap = current.getParentMap(); - newMap = newMap.putCopy(newValue); - for (Property property : shelve) { - newMap = newMap.putCopy(property); - } - return newMap; - } else { - shelve.push(current.getLastProperty()); - current = current.getParentMap(); - } - } - return this; - } - - public PropertyMap getOwningMap(Property value) { - PropertyMap current = this; - while (!current.isEmpty()) { - if (current.getLastProperty().equals(value)) { - return current; - } - current = current.getParentMap(); - } - return null; - } - - PropertyMap getParentMap() { - return car; - } - - public Property getLastProperty() { - return cdr; - } - - @Override - public String toString() { - return values().toString(); + protected static RuntimeException unmodifiableException() { + throw new UnsupportedOperationException(); } } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,16 +22,24 @@ */ package com.oracle.truffle.object; -import java.util.*; -import java.util.concurrent.*; - -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.interop.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.interop.ForeignAccess; +import com.oracle.truffle.api.nodes.ExplodeLoop; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.DynamicObjectFactory; +import com.oracle.truffle.api.object.Layout; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.ObjectLocation; +import com.oracle.truffle.api.object.ObjectType; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.api.object.ShapeListener; +import com.oracle.truffle.api.utilities.NeverValidAssumption; import com.oracle.truffle.object.LocationImpl.InternalLongLocation; import com.oracle.truffle.object.LocationImpl.LocationVisitor; import com.oracle.truffle.object.Locations.ConstantLocation; @@ -45,6 +53,15 @@ import com.oracle.truffle.object.Transition.PropertyTransition; import com.oracle.truffle.object.Transition.RemovePropertyTransition; import com.oracle.truffle.object.Transition.ReservePrimitiveArrayTransition; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; /** * Shape objects create a mapping of Property objects to indexes. The mapping of those indexes to an @@ -99,6 +116,7 @@ * * @param parent predecessor shape * @param transitionFromParent direct transition from parent shape + * * @see #ShapeImpl(Layout, ShapeImpl, ObjectType, Object, PropertyMap, Transition, * BaseAllocator, int) */ @@ -109,7 +127,7 @@ this.propertyMap = Objects.requireNonNull(propertyMap); this.root = parent != null ? parent.getRoot() : this; this.parent = parent; - this.transitionFromParent = transitionFromParent; + this.objectArraySize = objectArraySize; this.objectArrayCapacity = capacityFromSize(objectArraySize); this.objectFieldSize = objectFieldSize; @@ -129,11 +147,11 @@ this.validAssumption = createValidAssumption(); this.id = id; - shapeCount.inc(); - + this.transitionFromParent = transitionFromParent; this.sharedData = sharedData; this.extraData = objectType.createShapeData(this); + shapeCount.inc(); debugRegisterShape(this); } @@ -150,7 +168,13 @@ } private static int makePropertyCount(ShapeImpl parent, PropertyMap propertyMap) { - return parent.propertyCount + ((propertyMap.size() > parent.propertyMap.size() && !propertyMap.getLastProperty().isHidden() && !propertyMap.getLastProperty().isShadow()) ? 1 : 0); + if (propertyMap.size() > parent.propertyMap.size()) { + Property lastProperty = propertyMap.getLastProperty(); + if (!lastProperty.isHidden() && !lastProperty.isShadow()) { + return parent.propertyCount + 1; + } + } + return parent.propertyCount; } @Override @@ -178,37 +202,30 @@ } } - @Override public final int getObjectArraySize() { return objectArraySize; } - @Override public final int getObjectFieldSize() { return objectFieldSize; } - @Override public final int getPrimitiveFieldSize() { return primitiveFieldSize; } - @Override public final int getObjectArrayCapacity() { return objectArrayCapacity; } - @Override public final int getPrimitiveArrayCapacity() { return primitiveArrayCapacity; } - @Override public final int getPrimitiveArraySize() { return primitiveArraySize; } - @Override public final boolean hasPrimitiveArray() { return hasPrimitiveArray; } @@ -439,7 +456,9 @@ @Override public final List getPropertyList(Pred filter) { LinkedList props = new LinkedList<>(); - next: for (Property currentProperty : this.propertyMap.reverseOrderValues()) { + next: for (Iterator it = this.propertyMap.reverseOrderedValueIterator(); it.hasNext();) { + Property currentProperty = it.next(); + if (!currentProperty.isHidden() && filter.test(currentProperty)) { if (currentProperty.getLocation() instanceof DeclaredLocation) { for (Iterator iter = props.iterator(); iter.hasNext();) { @@ -471,7 +490,8 @@ @Override public final List getPropertyListInternal(boolean ascending) { LinkedList props = new LinkedList<>(); - for (Property current : this.propertyMap.reverseOrderValues()) { + for (Iterator it = this.propertyMap.reverseOrderedValueIterator(); it.hasNext();) { + Property current = it.next(); if (ascending) { props.addFirst(current); } else { @@ -490,7 +510,8 @@ @Override public final List getKeyList(Pred filter) { LinkedList keys = new LinkedList<>(); - for (Property currentProperty : this.propertyMap.reverseOrderValues()) { + for (Iterator it = this.propertyMap.reverseOrderedValueIterator(); it.hasNext();) { + Property currentProperty = it.next(); if (!currentProperty.isHidden() && filter.test(currentProperty) && !currentProperty.isShadow()) { keys.addFirst(currentProperty.getKey()); } @@ -576,7 +597,7 @@ } sb.append("{"); - for (Iterator iterator = propertyMap.reverseOrderValues().iterator(); iterator.hasNext();) { + for (Iterator iterator = propertyMap.reverseOrderedValueIterator(); iterator.hasNext();) { Property p = iterator.next(); sb.append(p); if (iterator.hasNext()) { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeVisitor.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeVisitor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeVisitor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.object; -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.object.Shape; public interface ShapeVisitor { R visitShape(Shape shape); diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/Transition.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/Transition.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/Transition.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,9 +22,9 @@ */ package com.oracle.truffle.object; -import java.util.*; - -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.object.ObjectType; +import com.oracle.truffle.api.object.Property; +import java.util.Objects; public abstract class Transition { @Override diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/debug/GraphvizShapeVisitor.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/debug/GraphvizShapeVisitor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/debug/GraphvizShapeVisitor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,11 +22,14 @@ */ package com.oracle.truffle.object.debug; -import java.util.*; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.object.DebugShapeVisitor; +import com.oracle.truffle.object.ShapeImpl; +import com.oracle.truffle.object.Transition; +import java.util.HashSet; +import java.util.Map; import java.util.Map.Entry; - -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.object.*; +import java.util.Set; public class GraphvizShapeVisitor extends DebugShapeVisitor { private final Set drawn; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/debug/JSONShapeVisitor.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/debug/JSONShapeVisitor.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/debug/JSONShapeVisitor.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,15 +22,19 @@ */ package com.oracle.truffle.object.debug; -import java.util.*; -import java.util.Map.Entry; - -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.api.object.TypedLocation; +import com.oracle.truffle.api.utilities.JSONHelper; import com.oracle.truffle.api.utilities.JSONHelper.JSONArrayBuilder; import com.oracle.truffle.api.utilities.JSONHelper.JSONObjectBuilder; -import com.oracle.truffle.object.*; +import com.oracle.truffle.object.DebugShapeVisitor; +import com.oracle.truffle.object.Locations; +import com.oracle.truffle.object.Transition; import com.oracle.truffle.object.Transition.PropertyTransition; +import java.util.Map; +import java.util.Map.Entry; public class JSONShapeVisitor extends DebugShapeVisitor { @Override diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/debug/ShapeProfiler.java --- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/debug/ShapeProfiler.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/debug/ShapeProfiler.java Mon Sep 21 11:21:03 2015 +0200 @@ -22,13 +22,18 @@ */ package com.oracle.truffle.object.debug; -import java.io.*; -import java.text.*; -import java.util.*; -import java.util.concurrent.*; - -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.object.*; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.object.ObjectStorageOptions; +import com.oracle.truffle.object.ShapeImpl; +import java.io.PrintWriter; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.concurrent.ConcurrentLinkedQueue; public class ShapeProfiler { private static final String LINE_SEPARATOR = "***********************************************"; @@ -116,12 +121,12 @@ public void profile(Shape shape) { jsObjects++; - oac += shape.getObjectArrayCapacity(); - oas += shape.getObjectArraySize(); - ofs += shape.getObjectFieldSize(); - pac += shape.getPrimitiveArrayCapacity(); - pas += shape.getPrimitiveArraySize(); - pfs += shape.getPrimitiveFieldSize(); + oac += ((ShapeImpl) shape).getObjectArrayCapacity(); + oas += ((ShapeImpl) shape).getObjectArraySize(); + ofs += ((ShapeImpl) shape).getObjectFieldSize(); + pac += ((ShapeImpl) shape).getPrimitiveArrayCapacity(); + pas += ((ShapeImpl) shape).getPrimitiveArraySize(); + pfs += ((ShapeImpl) shape).getPrimitiveFieldSize(); } public void add(ShapeStats stats) { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLSimpleTestSuite.java --- a/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLSimpleTestSuite.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLSimpleTestSuite.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,8 +40,8 @@ */ package com.oracle.truffle.sl.test; -import org.junit.*; -import org.junit.runner.*; +import org.junit.Test; +import org.junit.runner.RunWith; @RunWith(SLTestRunner.class) @SLTestSuite({"truffle/com.oracle.truffle.sl.test/tests", "tests"}) diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLTckTest.java --- a/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLTckTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLTckTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -41,9 +41,9 @@ package com.oracle.truffle.sl.test; import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.vm.PolyglotEngine; import com.oracle.truffle.tck.TruffleTCK; -import com.oracle.truffle.api.vm.PolyglotEngine; -import static org.junit.Assert.*; +import static org.junit.Assert.assertTrue; import org.junit.Test; /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLTestRunner.java --- a/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLTestRunner.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLTestRunner.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,26 +40,39 @@ */ package com.oracle.truffle.sl.test; -import java.io.*; -import java.net.*; -import java.nio.charset.*; -import java.nio.file.*; -import java.nio.file.attribute.*; -import java.util.*; - -import org.junit.*; -import org.junit.internal.*; -import org.junit.runner.*; -import org.junit.runner.manipulation.*; -import org.junit.runner.notification.*; -import org.junit.runners.*; -import org.junit.runners.model.*; - -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.vm.*; -import com.oracle.truffle.sl.*; -import com.oracle.truffle.sl.builtins.*; +import com.oracle.truffle.api.dsl.NodeFactory; +import com.oracle.truffle.api.vm.PolyglotEngine; +import com.oracle.truffle.sl.SLLanguage; +import com.oracle.truffle.sl.builtins.SLBuiltinNode; import com.oracle.truffle.sl.test.SLTestRunner.TestCase; +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringReader; +import java.net.URL; +import java.nio.charset.Charset; +import java.nio.file.FileSystems; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.internal.TextListener; +import org.junit.runner.Description; +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; +import org.junit.runner.manipulation.Filter; +import org.junit.runner.manipulation.NoTestsRemainException; +import org.junit.runner.notification.Failure; +import org.junit.runner.notification.RunNotifier; +import org.junit.runners.ParentRunner; +import org.junit.runners.model.InitializationError; public final class SLTestRunner extends ParentRunner { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLTestSuite.java --- a/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLTestSuite.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/SLTestSuite.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,7 +40,10 @@ */ package com.oracle.truffle.sl.test; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLInstrumentTestRunner.java --- a/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLInstrumentTestRunner.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLInstrumentTestRunner.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,28 +40,43 @@ */ package com.oracle.truffle.sl.test.instrument; -import java.io.*; -import java.nio.charset.*; -import java.nio.file.*; -import java.nio.file.attribute.*; -import java.util.*; - -import org.junit.*; -import org.junit.internal.*; -import org.junit.runner.*; -import org.junit.runner.manipulation.*; -import org.junit.runner.notification.*; -import org.junit.runners.*; -import org.junit.runners.model.*; - -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.instrument.impl.*; +import com.oracle.truffle.api.instrument.ASTProber; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; +import com.oracle.truffle.api.instrument.impl.DefaultSimpleInstrumentListener; import com.oracle.truffle.api.source.Source; -import com.oracle.truffle.api.vm.*; -import com.oracle.truffle.sl.nodes.instrument.*; -import com.oracle.truffle.sl.nodes.local.*; -import com.oracle.truffle.sl.test.*; +import com.oracle.truffle.api.vm.PolyglotEngine; +import com.oracle.truffle.sl.nodes.instrument.SLStandardASTProber; +import com.oracle.truffle.sl.nodes.local.SLWriteLocalVariableNode; +import com.oracle.truffle.sl.test.SLTestRunner; import com.oracle.truffle.sl.test.instrument.SLInstrumentTestRunner.InstrumentTestCase; +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringReader; +import java.nio.charset.Charset; +import java.nio.file.FileSystems; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.internal.TextListener; +import org.junit.runner.Description; +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; +import org.junit.runner.manipulation.Filter; +import org.junit.runner.manipulation.NoTestsRemainException; +import org.junit.runner.notification.Failure; +import org.junit.runner.notification.RunNotifier; +import org.junit.runners.ParentRunner; +import org.junit.runners.model.InitializationError; /** * This class builds and executes the tests for instrumenting SL. Although much of this class is diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLInstrumentTestSuite.java --- a/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLInstrumentTestSuite.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLInstrumentTestSuite.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,7 +40,10 @@ */ package com.oracle.truffle.sl.test.instrument; -import java.lang.annotation.*; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLSimpleInstrumentTestSuite.java --- a/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLSimpleInstrumentTestSuite.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLSimpleInstrumentTestSuite.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,8 +40,8 @@ */ package com.oracle.truffle.sl.test.instrument; -import org.junit.*; -import org.junit.runner.*; +import org.junit.Test; +import org.junit.runner.RunWith; @RunWith(SLInstrumentTestRunner.class) @SLInstrumentTestSuite({"truffle/com.oracle.truffle.sl.test/tests_instrumentation", "tests_instrumentation"}) diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl.tools/src/com/oracle/truffle/sl/tools/debug/SLREPLHandler.java --- a/truffle/com.oracle.truffle.sl.tools/src/com/oracle/truffle/sl/tools/debug/SLREPLHandler.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl.tools/src/com/oracle/truffle/sl/tools/debug/SLREPLHandler.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,15 +40,16 @@ */ package com.oracle.truffle.sl.tools.debug; -import java.io.*; -import java.util.*; - -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.instrument.KillException; +import com.oracle.truffle.api.instrument.QuitException; import com.oracle.truffle.api.source.Source; -import com.oracle.truffle.api.vm.*; -import com.oracle.truffle.tools.debug.shell.*; -import com.oracle.truffle.tools.debug.shell.client.*; -import com.oracle.truffle.tools.debug.shell.server.*; +import com.oracle.truffle.api.vm.PolyglotEngine; +import com.oracle.truffle.tools.debug.shell.REPLMessage; +import com.oracle.truffle.tools.debug.shell.client.SimpleREPLClient; +import com.oracle.truffle.tools.debug.shell.server.REPLHandler; +import com.oracle.truffle.tools.debug.shell.server.REPLServerContext; +import java.io.File; +import java.util.ArrayList; /** * Instantiation of the "server handler" part of the "REPL*" debugger for the simple language. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl.tools/src/com/oracle/truffle/sl/tools/debug/SLREPLServer.java --- a/truffle/com.oracle.truffle.sl.tools/src/com/oracle/truffle/sl/tools/debug/SLREPLServer.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl.tools/src/com/oracle/truffle/sl/tools/debug/SLREPLServer.java Mon Sep 21 11:21:03 2015 +0200 @@ -44,18 +44,23 @@ import com.oracle.truffle.api.debug.Debugger; import com.oracle.truffle.api.debug.ExecutionEvent; import com.oracle.truffle.api.debug.SuspendedEvent; - -import java.util.*; - -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.vm.*; +import com.oracle.truffle.api.instrument.QuitException; +import com.oracle.truffle.api.instrument.Visualizer; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.vm.EventConsumer; +import com.oracle.truffle.api.vm.PolyglotEngine; import com.oracle.truffle.api.vm.PolyglotEngine.Language; -import com.oracle.truffle.sl.*; +import com.oracle.truffle.sl.SLLanguage; import com.oracle.truffle.sl.nodes.instrument.SLDefaultVisualizer; -import com.oracle.truffle.tools.debug.shell.*; -import com.oracle.truffle.tools.debug.shell.client.*; -import com.oracle.truffle.tools.debug.shell.server.*; +import com.oracle.truffle.tools.debug.shell.REPLMessage; +import com.oracle.truffle.tools.debug.shell.REPLServer; +import com.oracle.truffle.tools.debug.shell.client.SimpleREPLClient; +import com.oracle.truffle.tools.debug.shell.server.REPLHandler; +import com.oracle.truffle.tools.debug.shell.server.REPLServerContext; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Instantiation of the "server" side of the "REPL*" debugger for the Simple language. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/.checkstyle_checks.xml --- a/truffle/com.oracle.truffle.sl/.checkstyle_checks.xml Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/.checkstyle_checks.xml Mon Sep 21 11:21:03 2015 +0200 @@ -11,6 +11,10 @@ + + + + diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLException.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLException.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,16 @@ */ package com.oracle.truffle.sl; -import java.util.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.FrameInstanceVisitor; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLRootNode; +import java.util.ArrayList; +import java.util.List; /** * SL does not need a sophisticated error checking and reporting mechanism, so all unexpected diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,24 +40,69 @@ */ package com.oracle.truffle.sl; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.debug.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.vm.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleLanguage; +import com.oracle.truffle.api.TruffleLanguage.Env; +import com.oracle.truffle.api.debug.DebugSupportException; +import com.oracle.truffle.api.debug.DebugSupportProvider; +import com.oracle.truffle.api.dsl.NodeFactory; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; +import com.oracle.truffle.api.frame.MaterializedFrame; +import com.oracle.truffle.api.instrument.ASTProber; +import com.oracle.truffle.api.instrument.AdvancedInstrumentResultListener; +import com.oracle.truffle.api.instrument.AdvancedInstrumentRootFactory; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ToolSupportProvider; +import com.oracle.truffle.api.instrument.Visualizer; +import com.oracle.truffle.api.nodes.GraphPrintVisitor; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.NodeUtil; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.vm.PolyglotEngine; import com.oracle.truffle.api.vm.PolyglotEngine.Value; -import com.oracle.truffle.sl.builtins.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.nodes.call.*; -import com.oracle.truffle.sl.nodes.controlflow.*; -import com.oracle.truffle.sl.nodes.expression.*; -import com.oracle.truffle.sl.nodes.instrument.*; -import com.oracle.truffle.sl.nodes.local.*; -import com.oracle.truffle.sl.parser.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.sl.builtins.SLBuiltinNode; +import com.oracle.truffle.sl.builtins.SLDefineFunctionBuiltin; +import com.oracle.truffle.sl.builtins.SLNanoTimeBuiltin; +import com.oracle.truffle.sl.builtins.SLPrintlnBuiltin; +import com.oracle.truffle.sl.builtins.SLReadlnBuiltin; +import com.oracle.truffle.sl.nodes.SLRootNode; +import com.oracle.truffle.sl.nodes.SLTypes; +import com.oracle.truffle.sl.nodes.call.SLDispatchNode; +import com.oracle.truffle.sl.nodes.call.SLInvokeNode; +import com.oracle.truffle.sl.nodes.call.SLUndefinedFunctionException; +import com.oracle.truffle.sl.nodes.controlflow.SLBlockNode; +import com.oracle.truffle.sl.nodes.controlflow.SLBreakNode; +import com.oracle.truffle.sl.nodes.controlflow.SLContinueNode; +import com.oracle.truffle.sl.nodes.controlflow.SLIfNode; +import com.oracle.truffle.sl.nodes.controlflow.SLReturnNode; +import com.oracle.truffle.sl.nodes.controlflow.SLWhileNode; +import com.oracle.truffle.sl.nodes.expression.SLAddNode; +import com.oracle.truffle.sl.nodes.expression.SLBigIntegerLiteralNode; +import com.oracle.truffle.sl.nodes.expression.SLDivNode; +import com.oracle.truffle.sl.nodes.expression.SLEqualNode; +import com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode; +import com.oracle.truffle.sl.nodes.expression.SLLessOrEqualNode; +import com.oracle.truffle.sl.nodes.expression.SLLessThanNode; +import com.oracle.truffle.sl.nodes.expression.SLLogicalAndNode; +import com.oracle.truffle.sl.nodes.expression.SLLogicalOrNode; +import com.oracle.truffle.sl.nodes.expression.SLMulNode; +import com.oracle.truffle.sl.nodes.expression.SLStringLiteralNode; +import com.oracle.truffle.sl.nodes.expression.SLSubNode; +import com.oracle.truffle.sl.nodes.instrument.SLDefaultVisualizer; +import com.oracle.truffle.sl.nodes.instrument.SLStandardASTProber; +import com.oracle.truffle.sl.nodes.local.SLReadLocalVariableNode; +import com.oracle.truffle.sl.nodes.local.SLWriteLocalVariableNode; +import com.oracle.truffle.sl.parser.Parser; +import com.oracle.truffle.sl.parser.SLNodeFactory; +import com.oracle.truffle.sl.parser.Scanner; +import com.oracle.truffle.sl.runtime.SLContext; +import com.oracle.truffle.sl.runtime.SLFunction; +import com.oracle.truffle.sl.runtime.SLFunctionRegistry; +import com.oracle.truffle.sl.runtime.SLNull; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLAssertFalseBuiltin.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLAssertFalseBuiltin.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLAssertFalseBuiltin.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,12 +40,12 @@ */ package com.oracle.truffle.sl.builtins; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.SLAssertionError; +import com.oracle.truffle.sl.runtime.SLNull; /** * Asserts a given value to be false and throws an {@link AssertionError} if the value diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLAssertTrueBuiltin.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLAssertTrueBuiltin.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLAssertTrueBuiltin.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,12 +40,12 @@ */ package com.oracle.truffle.sl.builtins; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.SLAssertionError; +import com.oracle.truffle.sl.runtime.SLNull; /** * Asserts a given value to be true and throws an {@link AssertionError} if the value diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLBuiltinNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLBuiltinNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLBuiltinNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,10 +40,13 @@ */ package com.oracle.truffle.sl.builtins; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.dsl.GenerateNodeFactory; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeField; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.runtime.SLContext; +import com.oracle.truffle.sl.runtime.SLFunctionRegistry; /** * Base class for all builtin functions. It contains the Truffle DSL annotation {@link NodeChild} diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java Mon Sep 21 11:21:03 2015 +0200 @@ -41,11 +41,12 @@ package com.oracle.truffle.sl.builtins; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.parser.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.parser.Parser; +import com.oracle.truffle.sl.runtime.SLContext; /** * Builtin function to define (or redefine) functions. The provided source code is parsed the same diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLHelloEqualsWorldBuiltin.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLHelloEqualsWorldBuiltin.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLHelloEqualsWorldBuiltin.java Mon Sep 21 11:21:03 2015 +0200 @@ -41,12 +41,14 @@ package com.oracle.truffle.sl.builtins; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameInstance; import com.oracle.truffle.api.frame.FrameInstance.FrameAccess; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; /** * This builtin sets the variable named "hello" in the caller frame to the string "world". diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLNanoTimeBuiltin.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLNanoTimeBuiltin.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLNanoTimeBuiltin.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,9 +40,9 @@ */ package com.oracle.truffle.sl.builtins; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; /** * Builtin function that returns the value of a high-resolution time, in nanoseconds. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLNewObjectBuiltin.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLNewObjectBuiltin.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLNewObjectBuiltin.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,9 +40,9 @@ */ package com.oracle.truffle.sl.builtins; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; /** * Built-in function to create a new object. Objects in SL are simply made up of name/value pairs. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLPrintlnBuiltin.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLPrintlnBuiltin.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLPrintlnBuiltin.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,12 @@ */ package com.oracle.truffle.sl.builtins; -import java.io.*; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.runtime.SLContext; +import java.io.PrintWriter; /** * Builtin function to write a value to the {@link SLContext#getOutput() standard output}. The diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLReadlnBuiltin.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLReadlnBuiltin.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLReadlnBuiltin.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,14 @@ */ package com.oracle.truffle.sl.builtins; -import java.io.*; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.SLException; +import com.oracle.truffle.sl.runtime.SLContext; +import java.io.BufferedReader; +import java.io.IOException; /** * Builtin function that reads a String from the {@link SLContext#getInput() standard input}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLStackTraceBuiltin.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLStackTraceBuiltin.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLStackTraceBuiltin.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,20 @@ */ package com.oracle.truffle.sl.builtins; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CallTarget; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameInstance; import com.oracle.truffle.api.frame.FrameInstance.FrameAccess; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.frame.FrameInstanceVisitor; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.source.SourceSection; /** * Returns a string representation of the current stack. This includes the {@link CallTarget}s and diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLBinaryNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLBinaryNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLBinaryNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,8 +40,9 @@ */ package com.oracle.truffle.sl.nodes; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeChildren; +import com.oracle.truffle.api.source.SourceSection; /** * Utility base class for operations that take two arguments (per convention called "left" and diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLExpressionNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLExpressionNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLExpressionNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,14 @@ */ package com.oracle.truffle.sl.nodes; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.dsl.TypeSystemReference; +import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.instrument.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.instrument.SLExpressionWrapperNode; +import com.oracle.truffle.sl.runtime.SLFunction; /** * Base class for all SL nodes that produce a value and therefore benefit from type specialization. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLRootNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLRootNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLRootNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -41,13 +41,15 @@ package com.oracle.truffle.sl.nodes; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.RootNode; import com.oracle.truffle.sl.SLLanguage; -import com.oracle.truffle.sl.builtins.*; -import com.oracle.truffle.sl.nodes.controlflow.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.sl.builtins.SLBuiltinNode; +import com.oracle.truffle.sl.nodes.controlflow.SLFunctionBodyNode; +import com.oracle.truffle.sl.runtime.SLContext; /** * The root of all SL execution trees. It is a Truffle requirement that the tree root extends the @@ -75,6 +77,7 @@ @Override public Object execute(VirtualFrame frame) { + assert SLLanguage.INSTANCE.findContext0(SLLanguage.INSTANCE.createFindContextNode0()) != null; return bodyNode.executeGeneric(frame); } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLStatementNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLStatementNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLStatementNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,13 @@ */ package com.oracle.truffle.sl.nodes; -import java.io.*; - -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.instrument.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.instrument.SLStatementWrapperNode; +import java.io.File; /** * The base class of all Truffle nodes for SL. All nodes (even expressions) can be used as diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLTypes.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLTypes.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLTypes.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,16 @@ */ package com.oracle.truffle.sl.nodes; -import java.math.*; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.internal.*; -import com.oracle.truffle.sl.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.dsl.ImplicitCast; +import com.oracle.truffle.api.dsl.TypeCast; +import com.oracle.truffle.api.dsl.TypeCheck; +import com.oracle.truffle.api.dsl.TypeSystem; +import com.oracle.truffle.api.dsl.internal.DSLOptions; +import com.oracle.truffle.sl.SLLanguage; +import com.oracle.truffle.sl.runtime.SLFunction; +import com.oracle.truffle.sl.runtime.SLNull; +import java.math.BigInteger; /** * The type system of SL, as explained in {@link SLLanguage}. Based on the {@link TypeSystem} diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLReadPropertyCacheNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLReadPropertyCacheNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLReadPropertyCacheNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -41,10 +41,15 @@ package com.oracle.truffle.sl.nodes.access; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.LongLocation; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.sl.runtime.SLNull; public abstract class SLReadPropertyCacheNode extends Node { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLReadPropertyNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLReadPropertyNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLReadPropertyNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,14 @@ */ package com.oracle.truffle.sl.nodes.access; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.utilities.*; -import com.oracle.truffle.sl.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.utilities.ConditionProfile; +import com.oracle.truffle.sl.SLException; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.runtime.SLContext; /** * The node for accessing a property of an object. When executed, this node first evaluates the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLWritePropertyCacheNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLWritePropertyCacheNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLWritePropertyCacheNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,18 @@ */ package com.oracle.truffle.sl.nodes.access; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.Assumption; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.object.*; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.FinalLocationException; +import com.oracle.truffle.api.object.IncompatibleLocationException; +import com.oracle.truffle.api.object.Location; +import com.oracle.truffle.api.object.Property; +import com.oracle.truffle.api.object.Shape; public abstract class SLWritePropertyCacheNode extends Node { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLWritePropertyNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLWritePropertyNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLWritePropertyNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,14 @@ */ package com.oracle.truffle.sl.nodes.access; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.utilities.*; -import com.oracle.truffle.sl.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.utilities.ConditionProfile; +import com.oracle.truffle.sl.SLException; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.runtime.SLContext; /** * The node for setting a property of an object. When executed, this node first evaluates the value diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLDispatchNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLDispatchNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLDispatchNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,14 @@ */ package com.oracle.truffle.sl.nodes.call; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.dsl.Cached; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.DirectCallNode; +import com.oracle.truffle.api.nodes.IndirectCallNode; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.sl.runtime.SLFunction; public abstract class SLDispatchNode extends Node { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLInvokeNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLInvokeNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLInvokeNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,18 +40,21 @@ */ package com.oracle.truffle.sl.nodes.call; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CompilerAsserts; import com.oracle.truffle.api.dsl.NodeChild; import com.oracle.truffle.api.dsl.NodeChildren; import com.oracle.truffle.api.dsl.Specialization; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.interop.ForeignAccess; import com.oracle.truffle.api.interop.Message; import com.oracle.truffle.api.interop.TruffleObject; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.nodes.ExplodeLoop; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.runtime.SLContext; +import com.oracle.truffle.sl.runtime.SLFunction; /** * The node for function invocation in SL. Since SL has first class functions, the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLBlockNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLBlockNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLBlockNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,12 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.CompilerAsserts; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.ExplodeLoop; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLStatementNode; /** * A statement node that just executes a list of other statements. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLBreakException.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLBreakException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLBreakException.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,7 +40,7 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.ControlFlowException; /** * Exception thrown by the {@link SLBreakNode break statement} and caught by the {@link SLWhileNode diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLBreakNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLBreakNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLBreakNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,10 +40,10 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLStatementNode; /** * Implementation of the SL break statement. We need to unwind an unknown number of interpreter diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLContinueException.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLContinueException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLContinueException.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,7 +40,7 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.ControlFlowException; /** * Exception thrown by the {@link SLContinueNode continue statement} and caught by the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLContinueNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLContinueNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLContinueNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,10 +40,10 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLStatementNode; /** * Implementation of the SL continue statement. We need to unwind an unknown number of interpreter diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLFunctionBodyNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLFunctionBodyNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLFunctionBodyNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,12 +40,14 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.utilities.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.utilities.BranchProfile; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLRootNode; +import com.oracle.truffle.sl.nodes.SLStatementNode; +import com.oracle.truffle.sl.runtime.SLNull; /** * The body of a user-defined SL function. This is the node referenced by a {@link SLRootNode} for diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLIfNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLIfNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLIfNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,12 +40,17 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.utilities.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.utilities.BinaryConditionProfile; +import com.oracle.truffle.api.utilities.ConditionProfile; +import com.oracle.truffle.api.utilities.CountingConditionProfile; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLStatementNode; @NodeInfo(shortName = "if", description = "The node implementing a condional statement") public final class SLIfNode extends SLStatementNode { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLRepeatingNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLRepeatingNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLRepeatingNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,12 +40,15 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.utilities.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RepeatingNode; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.utilities.BranchProfile; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLStatementNode; public final class SLRepeatingNode extends Node implements RepeatingNode { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLReturnException.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLReturnException.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLReturnException.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,7 +40,7 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.nodes.ControlFlowException; /** * Exception thrown by the {@link SLReturnNode return statement} and caught by the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLReturnNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLReturnNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLReturnNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,12 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLStatementNode; +import com.oracle.truffle.sl.runtime.SLNull; /** * Implementation of the SL return statement. We need to unwind an unknown number of interpreter diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLWhileNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLWhileNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLWhileNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,13 @@ */ package com.oracle.truffle.sl.nodes.controlflow; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.LoopNode; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLStatementNode; @NodeInfo(shortName = "while", description = "The node implementing a while loop") public final class SLWhileNode extends SLStatementNode { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLAddNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLAddNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLAddNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,15 @@ */ package com.oracle.truffle.sl.nodes.expression; -import java.math.*; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.ExactMath; +import com.oracle.truffle.api.dsl.ImplicitCast; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLBinaryNode; +import com.oracle.truffle.sl.nodes.SLTypes; +import java.math.BigInteger; /** * SL node that performs the "+" operation, which performs addition on arbitrary precision numbers, diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLBigIntegerLiteralNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLBigIntegerLiteralNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLBigIntegerLiteralNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,12 +40,11 @@ */ package com.oracle.truffle.sl.nodes.expression; -import java.math.*; - -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import java.math.BigInteger; /** * Constant literal for a arbitrary-precision number that exceeds the range of diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLDivNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLDivNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLDivNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,12 @@ */ package com.oracle.truffle.sl.nodes.expression; -import java.math.*; - -import com.oracle.truffle.api.CompilerDirectives.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLBinaryNode; +import java.math.BigInteger; /** * This class is similar to the extensively documented {@link SLAddNode}. Divisions by 0 throw the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLEqualNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLEqualNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLEqualNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,15 +40,16 @@ */ package com.oracle.truffle.sl.nodes.expression; -import java.math.*; - -import com.oracle.truffle.api.CompilerDirectives.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLBinaryNode; +import com.oracle.truffle.sl.runtime.SLFunction; +import com.oracle.truffle.sl.runtime.SLNull; +import java.math.BigInteger; /** * The {@code ==} operator of SL is defined on all types. Therefore, we need a diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLFunctionLiteralNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLFunctionLiteralNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLFunctionLiteralNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,18 @@ */ package com.oracle.truffle.sl.nodes.expression; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.CompilerDirectives; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.sl.SLLanguage; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.runtime.SLContext; +import com.oracle.truffle.sl.runtime.SLFunction; +import com.oracle.truffle.sl.runtime.SLFunctionRegistry; /** * Constant literal for a {@link SLFunction function} value, created when a function name occurs as diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLessOrEqualNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLessOrEqualNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLessOrEqualNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,13 @@ */ package com.oracle.truffle.sl.nodes.expression; -import java.math.*; - -import com.oracle.truffle.api.CompilerDirectives.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLBinaryNode; +import java.math.BigInteger; /** * This class is similar to the {@link SLLessThanNode}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLessThanNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLessThanNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLessThanNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,13 @@ */ package com.oracle.truffle.sl.nodes.expression; -import java.math.*; - -import com.oracle.truffle.api.CompilerDirectives.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLBinaryNode; +import java.math.BigInteger; /** * This class is similar to the extensively documented {@link SLAddNode}. The only difference: the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLogicalAndNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLogicalAndNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLogicalAndNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,12 @@ */ package com.oracle.truffle.sl.nodes.expression; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.dsl.ShortCircuit; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLBinaryNode; /** * This class declares specializations similar to the extensively documented {@link SLAddNode}. It diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLogicalNotNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLogicalNotNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLogicalNotNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,12 @@ */ package com.oracle.truffle.sl.nodes.expression; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; /** * Example of a simple unary node that uses type specialization. See {@link SLAddNode} for diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLogicalOrNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLogicalOrNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLogicalOrNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,12 @@ */ package com.oracle.truffle.sl.nodes.expression; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.dsl.ShortCircuit; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLBinaryNode; /** * This class is similar to the {@link SLLogicalAndNode}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLongLiteralNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLongLiteralNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLLongLiteralNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,10 +40,11 @@ */ package com.oracle.truffle.sl.nodes.expression; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; /** * Constant literal for a primitive {@code long} value. The unboxed value can be returned when the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLMulNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLMulNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLMulNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,13 @@ */ package com.oracle.truffle.sl.nodes.expression; -import java.math.*; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.ExactMath; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLBinaryNode; +import java.math.BigInteger; /** * This class is similar to the extensively documented {@link SLAddNode}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLParenExpressionNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLParenExpressionNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLParenExpressionNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,10 +40,11 @@ */ package com.oracle.truffle.sl.nodes.expression; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; /** * A {@link SLExpressionNode} that represents a parenthesized expression; it simply returns the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLStringLiteralNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLStringLiteralNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLStringLiteralNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,10 +40,10 @@ */ package com.oracle.truffle.sl.nodes.expression; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; /** * Constant literal for a String value. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLSubNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLSubNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLSubNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,13 @@ */ package com.oracle.truffle.sl.nodes.expression; -import java.math.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.CompilerDirectives.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.ExactMath; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLBinaryNode; +import java.math.BigInteger; /** * This class is similar to the extensively documented {@link SLAddNode}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/demo/SLAddWithoutSpecializationNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/demo/SLAddWithoutSpecializationNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/demo/SLAddWithoutSpecializationNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,14 +40,13 @@ */ package com.oracle.truffle.sl.nodes.expression.demo; -import java.math.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.nodes.expression.*; +import com.oracle.truffle.api.ExactMath; +import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.expression.SLAddNode; +import java.math.BigInteger; /** * This is an example how the add operation would be implemented without specializations and without diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLASTPrinter.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLASTPrinter.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLASTPrinter.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,15 @@ */ package com.oracle.truffle.sl.nodes.instrument; -import java.io.*; -import java.util.*; - -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.instrument.impl.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.instrument.InstrumentationNode; +import com.oracle.truffle.api.instrument.impl.DefaultASTPrinter; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeClass; +import com.oracle.truffle.api.nodes.NodeFieldAccessor; import com.oracle.truffle.api.nodes.NodeFieldAccessor.NodeFieldKind; +import com.oracle.truffle.api.nodes.NodeUtil; +import java.io.PrintWriter; +import java.util.ArrayList; /** * SLASTPrinter is used to print for SL's internal Truffle AST. This is used by diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLDefaultVisualizer.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLDefaultVisualizer.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLDefaultVisualizer.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,15 @@ */ package com.oracle.truffle.sl.nodes.instrument; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.instrument.impl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.instrument.ASTPrinter; +import com.oracle.truffle.api.instrument.impl.DefaultVisualizer; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.sl.nodes.SLRootNode; +import com.oracle.truffle.sl.runtime.SLNull; /** * SLDefaultVisualizer provides methods to get the names of SL's internal Truffle AST nodes. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapperNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapperNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapperNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,12 +40,19 @@ */ package com.oracle.truffle.sl.nodes.instrument; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.KillException; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeNode; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.UnexpectedResultException; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLTypesGen; +import com.oracle.truffle.sl.runtime.SLFunction; /** * A Truffle node that can be inserted into a Simple AST (assumed not to have executed yet) to diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStandardASTProber.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStandardASTProber.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStandardASTProber.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,13 +40,18 @@ */ package com.oracle.truffle.sl.nodes.instrument; -import static com.oracle.truffle.api.instrument.StandardSyntaxTag.*; - -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.nodes.controlflow.*; -import com.oracle.truffle.sl.nodes.local.*; +import com.oracle.truffle.api.instrument.ASTProber; +import com.oracle.truffle.api.instrument.InstrumentationNode; +import com.oracle.truffle.api.instrument.Probe; +import static com.oracle.truffle.api.instrument.StandardSyntaxTag.ASSIGNMENT; +import static com.oracle.truffle.api.instrument.StandardSyntaxTag.START_LOOP; +import static com.oracle.truffle.api.instrument.StandardSyntaxTag.STATEMENT; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeVisitor; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLStatementNode; +import com.oracle.truffle.sl.nodes.controlflow.SLWhileNode; +import com.oracle.truffle.sl.nodes.local.SLWriteLocalVariableNode; /** * A visitor which traverses a completely parsed Simple AST (presumed not yet executed) and enables diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapperNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapperNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapperNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,16 @@ */ package com.oracle.truffle.sl.nodes.instrument; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.KillException; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeNode; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.sl.nodes.SLStatementNode; /** * A Truffle node that can be inserted into a Simple AST (assumed not to have executed yet) to diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/local/SLReadArgumentNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/local/SLReadArgumentNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/local/SLReadArgumentNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,12 +40,12 @@ */ package com.oracle.truffle.sl.nodes.local; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.api.utilities.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.parser.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.api.utilities.BranchProfile; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.parser.SLNodeFactory; +import com.oracle.truffle.sl.runtime.SLNull; /** * Reads a function argument. Arguments are passed in as an object array. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/local/SLReadLocalVariableNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/local/SLReadLocalVariableNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/local/SLReadLocalVariableNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,10 +40,13 @@ */ package com.oracle.truffle.sl.nodes.local; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.dsl.NodeField; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.frame.FrameSlotTypeException; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; /** * Node to read a local variable from a function's {@link VirtualFrame frame}. The Truffle frame API diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/local/SLWriteLocalVariableNode.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/local/SLWriteLocalVariableNode.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/local/SLWriteLocalVariableNode.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,11 +40,16 @@ */ package com.oracle.truffle.sl.nodes.local; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.dsl.Fallback; +import com.oracle.truffle.api.dsl.NodeChild; +import com.oracle.truffle.api.dsl.NodeField; +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.frame.FrameSlotKind; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; /** * Node to write a local variable to a function's {@link VirtualFrame frame}. The Truffle frame API diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Parser.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Parser.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Parser.java Mon Sep 21 11:21:03 2015 +0200 @@ -43,12 +43,13 @@ package com.oracle.truffle.sl.parser; -import java.util.*; - -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.sl.SLException; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLStatementNode; +import com.oracle.truffle.sl.runtime.SLContext; +import java.util.ArrayList; +import java.util.List; // Checkstyle: stop // @formatter:off diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SLNodeFactory.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SLNodeFactory.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SLNodeFactory.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,19 +40,51 @@ */ package com.oracle.truffle.sl.parser; -import java.math.*; -import java.util.*; - -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.nodes.access.*; -import com.oracle.truffle.sl.nodes.call.*; -import com.oracle.truffle.sl.nodes.controlflow.*; -import com.oracle.truffle.sl.nodes.expression.*; -import com.oracle.truffle.sl.nodes.local.*; -import com.oracle.truffle.sl.runtime.*; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLRootNode; +import com.oracle.truffle.sl.nodes.SLStatementNode; +import com.oracle.truffle.sl.nodes.access.SLReadPropertyNode; +import com.oracle.truffle.sl.nodes.access.SLWritePropertyNode; +import com.oracle.truffle.sl.nodes.call.SLInvokeNode; +import com.oracle.truffle.sl.nodes.call.SLInvokeNodeGen; +import com.oracle.truffle.sl.nodes.controlflow.SLBlockNode; +import com.oracle.truffle.sl.nodes.controlflow.SLBreakNode; +import com.oracle.truffle.sl.nodes.controlflow.SLContinueNode; +import com.oracle.truffle.sl.nodes.controlflow.SLFunctionBodyNode; +import com.oracle.truffle.sl.nodes.controlflow.SLIfNode; +import com.oracle.truffle.sl.nodes.controlflow.SLReturnNode; +import com.oracle.truffle.sl.nodes.controlflow.SLWhileNode; +import com.oracle.truffle.sl.nodes.expression.SLAddNodeGen; +import com.oracle.truffle.sl.nodes.expression.SLBigIntegerLiteralNode; +import com.oracle.truffle.sl.nodes.expression.SLDivNodeGen; +import com.oracle.truffle.sl.nodes.expression.SLEqualNodeGen; +import com.oracle.truffle.sl.nodes.expression.SLFunctionLiteralNode; +import com.oracle.truffle.sl.nodes.expression.SLLessOrEqualNodeGen; +import com.oracle.truffle.sl.nodes.expression.SLLessThanNodeGen; +import com.oracle.truffle.sl.nodes.expression.SLLogicalAndNodeGen; +import com.oracle.truffle.sl.nodes.expression.SLLogicalNotNodeGen; +import com.oracle.truffle.sl.nodes.expression.SLLogicalOrNodeGen; +import com.oracle.truffle.sl.nodes.expression.SLLongLiteralNode; +import com.oracle.truffle.sl.nodes.expression.SLMulNodeGen; +import com.oracle.truffle.sl.nodes.expression.SLParenExpressionNode; +import com.oracle.truffle.sl.nodes.expression.SLStringLiteralNode; +import com.oracle.truffle.sl.nodes.expression.SLSubNodeGen; +import com.oracle.truffle.sl.nodes.local.SLReadArgumentNode; +import com.oracle.truffle.sl.nodes.local.SLReadLocalVariableNode; +import com.oracle.truffle.sl.nodes.local.SLReadLocalVariableNodeGen; +import com.oracle.truffle.sl.nodes.local.SLWriteLocalVariableNode; +import com.oracle.truffle.sl.nodes.local.SLWriteLocalVariableNodeGen; +import com.oracle.truffle.sl.runtime.SLContext; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Helper class used by the SL {@link Parser} to create nodes. The code is factored out of the diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Scanner.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Scanner.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Scanner.java Mon Sep 21 11:21:03 2015 +0200 @@ -43,8 +43,11 @@ package com.oracle.truffle.sl.parser; -import java.io.*; -import java.util.*; +import java.io.IOException; +import java.io.InputStream; +import java.io.RandomAccessFile; +import java.util.HashMap; +import java.util.Map; // Checkstyle: stop // @formatter:off diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLContext.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLContext.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLContext.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,19 +40,34 @@ */ package com.oracle.truffle.sl.runtime; -import java.io.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.object.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.ExecutionContext; +import com.oracle.truffle.api.dsl.NodeFactory; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.object.DynamicObject; +import com.oracle.truffle.api.object.Layout; +import com.oracle.truffle.api.object.Shape; +import com.oracle.truffle.api.source.Source; import com.oracle.truffle.sl.SLLanguage; -import com.oracle.truffle.sl.builtins.*; -import com.oracle.truffle.sl.nodes.*; -import com.oracle.truffle.sl.nodes.local.*; -import com.oracle.truffle.sl.parser.*; +import com.oracle.truffle.sl.builtins.SLAssertFalseBuiltinFactory; +import com.oracle.truffle.sl.builtins.SLAssertTrueBuiltinFactory; +import com.oracle.truffle.sl.builtins.SLBuiltinNode; +import com.oracle.truffle.sl.builtins.SLDefineFunctionBuiltinFactory; +import com.oracle.truffle.sl.builtins.SLHelloEqualsWorldBuiltinFactory; +import com.oracle.truffle.sl.builtins.SLNanoTimeBuiltinFactory; +import com.oracle.truffle.sl.builtins.SLNewObjectBuiltinFactory; +import com.oracle.truffle.sl.builtins.SLPrintlnBuiltin; +import com.oracle.truffle.sl.builtins.SLPrintlnBuiltinFactory; +import com.oracle.truffle.sl.builtins.SLReadlnBuiltin; +import com.oracle.truffle.sl.builtins.SLReadlnBuiltinFactory; +import com.oracle.truffle.sl.builtins.SLStackTraceBuiltinFactory; +import com.oracle.truffle.sl.nodes.SLExpressionNode; +import com.oracle.truffle.sl.nodes.SLRootNode; +import com.oracle.truffle.sl.nodes.local.SLReadArgumentNode; +import com.oracle.truffle.sl.parser.Parser; +import com.oracle.truffle.sl.parser.SLNodeFactory; +import java.io.BufferedReader; +import java.io.PrintWriter; import java.math.BigInteger; /** diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunction.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunction.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunction.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,9 +40,11 @@ */ package com.oracle.truffle.sl.runtime; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.interop.*; -import com.oracle.truffle.api.utilities.*; +import com.oracle.truffle.api.Assumption; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.interop.ForeignAccess; +import com.oracle.truffle.api.interop.TruffleObject; +import com.oracle.truffle.api.utilities.CyclicAssumption; /** * Represents a SL function. On the Truffle level, a callable element is represented by a diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionForeignAccess.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionForeignAccess.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionForeignAccess.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,7 +40,8 @@ */ package com.oracle.truffle.sl.runtime; -import com.oracle.truffle.api.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.interop.ForeignAccess; import com.oracle.truffle.api.interop.Message; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionRegistry.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionRegistry.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLFunctionRegistry.java Mon Sep 21 11:21:03 2015 +0200 @@ -40,10 +40,15 @@ */ package com.oracle.truffle.sl.runtime; -import java.util.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.sl.nodes.*; +import com.oracle.truffle.api.RootCallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.sl.nodes.SLRootNode; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * Manages the mapping from function names to {@link SLFunction function objects}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLObjectType.java --- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLObjectType.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLObjectType.java Mon Sep 21 11:21:03 2015 +0200 @@ -111,7 +111,7 @@ @Override public CallTarget accessInvoke(int argumentsLength) { - throw new UnsupportedOperationException(); + return null; } @Override diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/EagerStackTraceDecorator.java --- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/EagerStackTraceDecorator.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/EagerStackTraceDecorator.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.tck; -import org.junit.runner.notification.*; +import org.junit.runner.notification.Failure; class EagerStackTraceDecorator extends TruffleJUnitRunListenerDecorator { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/GCAfterTestDecorator.java --- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/GCAfterTestDecorator.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/GCAfterTestDecorator.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.tck; -import org.junit.runner.*; +import org.junit.runner.Description; final class GCAfterTestDecorator extends TruffleJUnitRunListenerDecorator { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TimingDecorator.java --- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TimingDecorator.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TimingDecorator.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,7 +24,7 @@ */ package com.oracle.truffle.tck; -import org.junit.runner.*; +import org.junit.runner.Description; /** * Timing support for JUnit test runs. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleJUnitCore.java --- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleJUnitCore.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleJUnitCore.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,19 +24,26 @@ */ package com.oracle.truffle.tck; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; import java.lang.reflect.Modifier; import java.nio.charset.Charset; -import java.nio.file.*; -import java.util.*; - -import junit.runner.*; - -import org.junit.internal.*; -import org.junit.runner.*; -import org.junit.runner.notification.*; -import org.junit.runners.*; -import org.junit.runners.model.*; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; +import junit.runner.Version; +import org.junit.internal.JUnitSystem; +import org.junit.internal.RealSystem; +import org.junit.runner.Description; +import org.junit.runner.JUnitCore; +import org.junit.runner.Request; +import org.junit.runner.Result; +import org.junit.runner.Runner; +import org.junit.runner.notification.Failure; +import org.junit.runners.ParentRunner; +import org.junit.runners.model.RunnerScheduler; final class TruffleJUnitCore { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleJUnitRunListener.java --- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleJUnitRunListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleJUnitRunListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,11 @@ */ package com.oracle.truffle.tck; -import java.io.*; - -import org.junit.internal.*; -import org.junit.runner.*; -import org.junit.runner.notification.*; +import java.io.PrintStream; +import org.junit.internal.AssumptionViolatedException; +import org.junit.runner.Description; +import org.junit.runner.Result; +import org.junit.runner.notification.Failure; interface TruffleJUnitRunListener { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleJUnitRunListenerDecorator.java --- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleJUnitRunListenerDecorator.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleJUnitRunListenerDecorator.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,10 @@ */ package com.oracle.truffle.tck; -import java.io.*; - -import org.junit.runner.*; -import org.junit.runner.notification.*; +import java.io.PrintStream; +import org.junit.runner.Description; +import org.junit.runner.Result; +import org.junit.runner.notification.Failure; class TruffleJUnitRunListenerDecorator implements TruffleJUnitRunListener { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleTCK.java --- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleTCK.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleTCK.java Mon Sep 21 11:21:03 2015 +0200 @@ -30,9 +30,12 @@ import com.oracle.truffle.api.vm.PolyglotEngine; import java.io.IOException; import java.util.Random; -import java.util.logging.Level; -import java.util.logging.Logger; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.fail; import org.junit.Test; /** @@ -41,7 +44,6 @@ * include in your test suite. */ public abstract class TruffleTCK { - private static final Logger LOG = Logger.getLogger(TruffleTCK.class.getName()); private static final Random RANDOM = new Random(); private PolyglotEngine tckVM; @@ -135,18 +137,7 @@ * @return name of globally exported symbol */ protected String identity() { - final long introduced = 1441894042844L; - long wait = (System.currentTimeMillis() - introduced) / 3600; - if (wait < 100) { - wait = 100; - } - LOG.log(Level.SEVERE, "identity() method not overriden. Waiting for {0} ms", wait); - try { - Thread.sleep(wait); - } catch (InterruptedException ex) { - LOG.log(Level.SEVERE, null, ex); - } - return null; + throw new UnsupportedOperationException("identity() method not implemented"); } /** @@ -193,7 +184,7 @@ * @return name of a function that returns such compound object */ protected String compoundObject() { - return null; + throw new UnsupportedOperationException("compoundObject() method not implemented"); } private PolyglotEngine vm() throws Exception { @@ -222,7 +213,7 @@ @Test public void testFortyTwoWithCompoundObject() throws Exception { - CompoundObject obj = findCompoundSymbol("testFortyTwoWithCompoundObject"); + CompoundObject obj = findCompoundSymbol(); if (obj == null) { return; } @@ -241,7 +232,7 @@ @Test public void testNullInCompoundObject() throws Exception { - CompoundObject obj = findCompoundSymbol("testNullInCompoundObject"); + CompoundObject obj = findCompoundSymbol(); if (obj == null) { return; } @@ -320,7 +311,7 @@ int a = RANDOM.nextInt(100); int b = RANDOM.nextInt(100); - CompoundObject obj = findCompoundSymbol("testPlusWithIntsOnCompoundObject"); + CompoundObject obj = findCompoundSymbol(); if (obj == null) { return; } @@ -570,24 +561,17 @@ return s; } - private CompoundObject findCompoundSymbol(String name) throws Exception { + private CompoundObject findCompoundSymbol() throws Exception { final String compoundObjectName = compoundObject(); - if (compoundObjectName == null) { - final long introduced = 1441616302340L; - long wait = (System.currentTimeMillis() - introduced) / 36000; - if (wait < 100) { - wait = 100; - } - LOG.log(Level.SEVERE, "compoundObject() method not overriden! Skipping {1} test for now. But sleeping for {0} ms.", new Object[]{wait, name}); - Thread.sleep(wait); - return null; - } PolyglotEngine.Value s = vm().findGlobalSymbol(compoundObjectName); assert s != null : "Symbol " + compoundObjectName + " is not found!"; - CompoundObject obj = s.invoke(null).as(CompoundObject.class); + final PolyglotEngine.Value value = s.invoke(null); + CompoundObject obj = value.as(CompoundObject.class); + assertNotNull("Compound object for " + value + " found", obj); int traverse = RANDOM.nextInt(10); - while (traverse-- >= 0) { + for (int i = 1; i <= traverse; i++) { obj = obj.returnsThis(); + assertNotNull("Remains non-null even after " + i + " iteration", obj); } return obj; } diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleTextListener.java --- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleTextListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleTextListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,13 @@ */ package com.oracle.truffle.tck; -import java.io.*; - -import org.junit.internal.*; -import org.junit.runner.*; -import org.junit.runner.notification.*; +import java.io.PrintStream; +import org.junit.internal.JUnitSystem; +import org.junit.internal.TextListener; +import org.junit.runner.Description; +import org.junit.runner.Result; +import org.junit.runner.notification.Failure; +import org.junit.runner.notification.RunListener; class TruffleTextListener implements TruffleJUnitRunListener { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleVerboseTextListener.java --- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleVerboseTextListener.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleVerboseTextListener.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,10 @@ */ package com.oracle.truffle.tck; -import java.io.*; - -import org.junit.internal.*; -import org.junit.runner.*; -import org.junit.runner.notification.*; +import java.io.PrintStream; +import org.junit.internal.JUnitSystem; +import org.junit.runner.Description; +import org.junit.runner.notification.Failure; class TruffleVerboseTextListener extends TruffleTextListener { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/REPLMessage.java --- a/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/REPLMessage.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/REPLMessage.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,9 +24,11 @@ */ package com.oracle.truffle.tools.debug.shell; -import java.io.*; -import java.util.*; +import java.io.PrintStream; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeMap; /** * A message for communication between a Read-Eval-Print-Loop server associated with a language diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/REPLServer.java --- a/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/REPLServer.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/REPLServer.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,7 +25,8 @@ package com.oracle.truffle.tools.debug.shell; import com.oracle.truffle.api.debug.Breakpoint; -import java.util.*; +import java.util.Map; +import java.util.WeakHashMap; /** * The server side of a simple message-based protocol for a possibly remote language diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/REPLClientContext.java --- a/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/REPLClientContext.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/REPLClientContext.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,9 @@ */ package com.oracle.truffle.tools.debug.shell.client; -import java.util.*; - -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.tools.debug.shell.*; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.tools.debug.shell.REPLServer; +import java.util.List; /** * Client context for interaction with a program halted by the {@link REPLServer}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/REPLRemoteCommand.java --- a/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/REPLRemoteCommand.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/REPLRemoteCommand.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,11 @@ */ package com.oracle.truffle.tools.debug.shell.client; -import java.io.*; -import java.util.*; - -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.tools.debug.shell.*; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.tools.debug.shell.REPLMessage; +import java.io.IOException; +import java.util.Arrays; +import java.util.List; // TODO (mlvdv) write a real command line parser public abstract class REPLRemoteCommand extends REPLCommand { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/REPLineLocation.java --- a/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/REPLineLocation.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/REPLineLocation.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,10 +24,9 @@ */ package com.oracle.truffle.tools.debug.shell.client; -import java.io.*; - -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.tools.debug.shell.*; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.tools.debug.shell.REPLMessage; +import java.io.IOException; final class REPLineLocation { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/SimpleREPLClient.java --- a/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/SimpleREPLClient.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/client/SimpleREPLClient.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,13 +24,22 @@ */ package com.oracle.truffle.tools.debug.shell.client; -import java.io.*; -import java.util.*; - -import jline.console.*; - -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.tools.debug.shell.*; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.tools.debug.shell.REPLClient; +import com.oracle.truffle.tools.debug.shell.REPLMessage; +import com.oracle.truffle.tools.debug.shell.REPLServer; +import java.io.IOException; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeSet; +import jline.console.ConsoleReader; /** * A very simple line-oriented, language-agnostic debugging client shell: the first step toward a diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/FrameDebugDescription.java --- a/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/FrameDebugDescription.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/FrameDebugDescription.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,8 +24,9 @@ */ package com.oracle.truffle.tools.debug.shell.server; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.nodes.Node; public final class FrameDebugDescription { private final int index; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/REPLHandler.java --- a/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/REPLHandler.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/REPLHandler.java Mon Sep 21 11:21:03 2015 +0200 @@ -25,14 +25,22 @@ package com.oracle.truffle.tools.debug.shell.server; import com.oracle.truffle.api.debug.Breakpoint; -import java.io.*; -import java.util.*; - -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.tools.debug.shell.*; +import com.oracle.truffle.api.frame.Frame; +import com.oracle.truffle.api.frame.FrameDescriptor; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.FrameSlot; +import com.oracle.truffle.api.instrument.ASTPrinter; +import com.oracle.truffle.api.instrument.KillException; +import com.oracle.truffle.api.instrument.QuitException; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; +import com.oracle.truffle.api.instrument.Visualizer; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import com.oracle.truffle.tools.debug.shell.REPLMessage; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; /** * Server-side REPL implementation of an {@linkplain REPLMessage "op"}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/REPLServerContext.java --- a/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/REPLServerContext.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.debug.shell/src/com/oracle/truffle/tools/debug/shell/server/REPLServerContext.java Mon Sep 21 11:21:03 2015 +0200 @@ -27,13 +27,14 @@ import com.oracle.truffle.api.debug.Breakpoint; import com.oracle.truffle.api.debug.Debugger; import com.oracle.truffle.api.debug.SuspendedEvent; -import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.frame.FrameInstance; +import com.oracle.truffle.api.frame.MaterializedFrame; import com.oracle.truffle.api.instrument.Visualizer; import com.oracle.truffle.api.instrument.impl.DefaultVisualizer; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.vm.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.vm.PolyglotEngine; import com.oracle.truffle.api.vm.PolyglotEngine.Language; -import com.oracle.truffle.tools.debug.shell.*; +import com.oracle.truffle.tools.debug.shell.REPLMessage; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/CoverageTrackerTest.java --- a/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/CoverageTrackerTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/CoverageTrackerTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,14 +24,17 @@ */ package com.oracle.truffle.tools.test; -import static com.oracle.truffle.tools.test.TestNodes.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.tools.*; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.tools.CoverageTracker; +import static com.oracle.truffle.tools.test.TestNodes.createExpr13TestRootNode; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import org.junit.Test; public class CoverageTrackerTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/LineToProbesMapTest.java --- a/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/LineToProbesMapTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/LineToProbesMapTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,15 +24,17 @@ */ package com.oracle.truffle.tools.test; -import static com.oracle.truffle.tools.test.TestNodes.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; -import com.oracle.truffle.tools.*; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.source.LineLocation; +import com.oracle.truffle.tools.LineToProbesMap; +import static com.oracle.truffle.tools.test.TestNodes.createExpr13TestRootNode; +import static com.oracle.truffle.tools.test.TestNodes.expr13Line1; +import static com.oracle.truffle.tools.test.TestNodes.expr13Line2; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import org.junit.Test; public class LineToProbesMapTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/NodeExecCounterTest.java --- a/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/NodeExecCounterTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/NodeExecCounterTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,18 +24,21 @@ */ package com.oracle.truffle.tools.test; -import static com.oracle.truffle.tools.test.TestNodes.*; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.tools.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.tools.NodeExecCounter; import com.oracle.truffle.tools.NodeExecCounter.NodeExecutionCount; import com.oracle.truffle.tools.test.TestNodes.TestAddNode; import com.oracle.truffle.tools.test.TestNodes.TestValueNode; +import static com.oracle.truffle.tools.test.TestNodes.createExpr13TestCallTarget; +import static com.oracle.truffle.tools.test.TestNodes.createExpr13TestRootNode; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; +import org.junit.Test; public class NodeExecCounterTest { diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/TestNodes.java --- a/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/TestNodes.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/TestNodes.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,12 +24,21 @@ */ package com.oracle.truffle.tools.test; -import com.oracle.truffle.api.*; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.CallTarget; +import com.oracle.truffle.api.Truffle; +import com.oracle.truffle.api.TruffleLanguage; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.KillException; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeNode; import com.oracle.truffle.api.instrument.ProbeNode.WrapperNode; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.nodes.NodeCost; +import com.oracle.truffle.api.nodes.NodeInfo; +import com.oracle.truffle.api.nodes.RootNode; +import com.oracle.truffle.api.source.LineLocation; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; /** * Nodes and an {@linkplain CallTarget executable ASTs} for testing. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/TruffleToolTest.java --- a/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/TruffleToolTest.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools.test/src/com/oracle/truffle/tools/test/TruffleToolTest.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,11 +24,10 @@ */ package com.oracle.truffle.tools.test; -import static org.junit.Assert.*; - -import org.junit.*; - -import com.oracle.truffle.api.instrument.*; +import com.oracle.truffle.api.instrument.InstrumentationTool; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import org.junit.Test; /** * Test the basic life cycle properties shared by all instances of {@link InstrumentationTool}. diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/CoverageTracker.java --- a/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/CoverageTracker.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/CoverageTracker.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,14 +24,27 @@ */ package com.oracle.truffle.tools; -import java.io.*; -import java.util.*; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.InstrumentationTool; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeListener; +import com.oracle.truffle.api.instrument.SimpleInstrumentListener; +import com.oracle.truffle.api.instrument.StandardSyntaxTag; +import com.oracle.truffle.api.instrument.SyntaxTag; +import com.oracle.truffle.api.instrument.impl.DefaultProbeListener; +import com.oracle.truffle.api.instrument.impl.DefaultSimpleInstrumentListener; +import com.oracle.truffle.api.nodes.Node; +import com.oracle.truffle.api.source.LineLocation; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; - -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.instrument.impl.*; -import com.oracle.truffle.api.nodes.*; -import com.oracle.truffle.api.source.*; +import java.util.TreeSet; /** * An {@link InstrumentationTool} that counts interpreter execution calls to AST nodes that diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/LineToProbesMap.java --- a/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/LineToProbesMap.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/LineToProbesMap.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,12 +24,19 @@ */ package com.oracle.truffle.tools; -import java.io.*; -import java.util.*; - -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.instrument.impl.*; -import com.oracle.truffle.api.source.*; +import com.oracle.truffle.api.instrument.InstrumentationTool; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeListener; +import com.oracle.truffle.api.instrument.impl.DefaultProbeListener; +import com.oracle.truffle.api.source.LineLocation; +import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.api.source.SourceSection; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; /** * An {@link InstrumentationTool} that builds a map of every {@link Probe} attached to some AST, diff -r b31dcacfc8ff -r dcb70d90c11d truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/NodeExecCounter.java --- a/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/NodeExecCounter.java Mon Sep 21 10:55:36 2015 +0200 +++ b/truffle/com.oracle.truffle.tools/src/com/oracle/truffle/tools/NodeExecCounter.java Mon Sep 21 11:21:03 2015 +0200 @@ -24,16 +24,31 @@ */ package com.oracle.truffle.tools; -import java.io.*; -import java.util.*; -import java.util.concurrent.atomic.*; - import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; -import com.oracle.truffle.api.frame.*; -import com.oracle.truffle.api.instrument.*; -import com.oracle.truffle.api.instrument.impl.*; -import com.oracle.truffle.api.nodes.*; +import com.oracle.truffle.api.frame.VirtualFrame; +import com.oracle.truffle.api.instrument.ASTProber; +import com.oracle.truffle.api.instrument.Instrument; +import com.oracle.truffle.api.instrument.InstrumentationTool; +import com.oracle.truffle.api.instrument.Probe; +import com.oracle.truffle.api.instrument.ProbeException; +import com.oracle.truffle.api.instrument.ProbeFailure; +import com.oracle.truffle.api.instrument.ProbeListener; +import com.oracle.truffle.api.instrument.StandardInstrumentListener; +import com.oracle.truffle.api.instrument.SyntaxTag; +import com.oracle.truffle.api.instrument.impl.DefaultProbeListener; +import com.oracle.truffle.api.instrument.impl.DefaultStandardInstrumentListener; +import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.Node.Child; +import com.oracle.truffle.api.nodes.NodeVisitor; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicLong; /** * An {@link InstrumentationTool} that counts interpreter execution calls to AST nodes,