Skip to content

Commit 04da409

Browse files
committed
Deprecate DynamicObjectLibrary.
1 parent f322ea2 commit 04da409

File tree

7 files changed

+36
-32
lines changed

7 files changed

+36
-32
lines changed

truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/CachedFallbackTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,20 @@
4444
import static org.junit.Assert.assertSame;
4545
import static org.junit.Assert.assertTrue;
4646

47-
import com.oracle.truffle.api.object.DynamicObject;
48-
import com.oracle.truffle.api.object.DynamicObjectLibrary;
49-
import com.oracle.truffle.api.object.Shape;
47+
import java.util.List;
48+
5049
import org.junit.Ignore;
5150
import org.junit.Test;
52-
53-
import com.oracle.truffle.api.test.AbstractLibraryTest;
5451
import org.junit.runner.RunWith;
5552
import org.junit.runners.Parameterized;
5653
import org.junit.runners.Parameterized.Parameter;
5754
import org.junit.runners.Parameterized.Parameters;
5855

59-
import java.util.List;
56+
import com.oracle.truffle.api.object.DynamicObject;
57+
import com.oracle.truffle.api.object.Shape;
58+
import com.oracle.truffle.api.test.AbstractLibraryTest;
6059

60+
@SuppressWarnings("deprecation")
6161
@RunWith(Parameterized.class)
6262
public class CachedFallbackTest extends AbstractLibraryTest {
6363

@@ -136,7 +136,7 @@ public void testTransition() {
136136
String key2 = "key2";
137137
String val2 = "value2";
138138

139-
DynamicObjectLibrary library = adopt(DynamicObjectLibrary.getFactory().create(o1));
139+
var library = adopt(com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory().create(o1));
140140
assertTrue(library.accepts(o1));
141141
assertTrue(library.accepts(o2));
142142
library.put(o1, key1, val1);
@@ -164,10 +164,10 @@ public void testMixedReceiverTypeSameShapeWithFallback() {
164164
String key2 = "key2";
165165
String val2 = "value2";
166166

167-
DynamicObjectLibrary library1 = adopt(DynamicObjectLibrary.getFactory().create(o1));
167+
var library1 = adopt(com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory().create(o1));
168168
library1.put(o1, key1, val1);
169169
library1.put(o2, key1, val1);
170-
DynamicObjectLibrary library2 = adopt(DynamicObjectLibrary.getFactory().create(o1));
170+
var library2 = adopt(com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory().create(o1));
171171
library2.put(o1, key2, val2);
172172
library2.put(o2, key2, val2);
173173

truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/CachedGetNode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@
4545
import com.oracle.truffle.api.library.CachedLibrary;
4646
import com.oracle.truffle.api.nodes.Node;
4747
import com.oracle.truffle.api.object.DynamicObject;
48-
import com.oracle.truffle.api.object.DynamicObjectLibrary;
4948

5049
@GenerateInline(false)
5150
abstract class CachedGetNode extends Node {
5251
public abstract Object execute(DynamicObject obj, Object key);
5352

53+
@SuppressWarnings("deprecation")
5454
@Specialization(limit = "3")
5555
static Object read(DynamicObject obj, Object key,
56-
@CachedLibrary("obj") DynamicObjectLibrary lib) {
56+
@CachedLibrary("obj") com.oracle.truffle.api.object.DynamicObjectLibrary lib) {
5757
return lib.getOrDefault(obj, key, null);
5858
}
5959
}

truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/CachedPutNode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@
4545
import com.oracle.truffle.api.library.CachedLibrary;
4646
import com.oracle.truffle.api.nodes.Node;
4747
import com.oracle.truffle.api.object.DynamicObject;
48-
import com.oracle.truffle.api.object.DynamicObjectLibrary;
4948

5049
@GenerateInline(false)
5150
abstract class CachedPutNode extends Node {
5251
public abstract void execute(DynamicObject obj, Object key, Object value);
5352

53+
@SuppressWarnings("deprecation")
5454
@Specialization(limit = "3")
5555
static void write(DynamicObject obj, Object key, Object value,
56-
@CachedLibrary("obj") DynamicObjectLibrary lib) {
56+
@CachedLibrary("obj") com.oracle.truffle.api.object.DynamicObjectLibrary lib) {
5757
lib.put(obj, key, value);
5858
}
5959
}

truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/MergedLibraryTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,6 @@
4343
import static org.junit.Assert.assertEquals;
4444
import static org.junit.Assert.assertTrue;
4545

46-
import com.oracle.truffle.api.object.DynamicObject;
47-
import com.oracle.truffle.api.object.DynamicObjectLibrary;
48-
import com.oracle.truffle.api.object.Shape;
4946
import org.junit.Test;
5047

5148
import com.oracle.truffle.api.interop.InteropLibrary;
@@ -56,8 +53,11 @@
5653
import com.oracle.truffle.api.library.CachedLibrary;
5754
import com.oracle.truffle.api.library.ExportLibrary;
5855
import com.oracle.truffle.api.library.ExportMessage;
56+
import com.oracle.truffle.api.object.DynamicObject;
57+
import com.oracle.truffle.api.object.Shape;
5958
import com.oracle.truffle.api.test.AbstractLibraryTest;
6059

60+
@SuppressWarnings("deprecation")
6161
public class MergedLibraryTest extends AbstractLibraryTest {
6262

6363
@ExportLibrary(InteropLibrary.class)
@@ -82,25 +82,25 @@ final Object getMembers(boolean includeInternal) throws UnsupportedMessageExcept
8282
@ExportMessage(name = "isMemberReadable")
8383
@ExportMessage(name = "isMemberModifiable")
8484
final boolean isMemberReadable(String member,
85-
@CachedLibrary("this") DynamicObjectLibrary lib) {
85+
@CachedLibrary("this") com.oracle.truffle.api.object.DynamicObjectLibrary lib) {
8686
return lib.containsKey(this, member);
8787
}
8888

8989
@ExportMessage
9090
final Object readMember(String member,
91-
@CachedLibrary("this") DynamicObjectLibrary lib) {
91+
@CachedLibrary("this") com.oracle.truffle.api.object.DynamicObjectLibrary lib) {
9292
return lib.getOrDefault(this, member, 42);
9393
}
9494

9595
@ExportMessage
9696
final boolean isMemberInsertable(String member,
97-
@CachedLibrary("this") DynamicObjectLibrary lib) {
97+
@CachedLibrary("this") com.oracle.truffle.api.object.DynamicObjectLibrary lib) {
9898
return !isMemberReadable(member, lib);
9999
}
100100

101101
@ExportMessage
102102
final void writeMember(String member, Object value,
103-
@CachedLibrary("this") DynamicObjectLibrary lib) {
103+
@CachedLibrary("this") com.oracle.truffle.api.object.DynamicObjectLibrary lib) {
104104
lib.put(this, member, value);
105105
}
106106
}

truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/ParametrizedDynamicObjectTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@
4646

4747
import com.oracle.truffle.api.nodes.UnexpectedResultException;
4848
import com.oracle.truffle.api.object.DynamicObject;
49-
import com.oracle.truffle.api.object.DynamicObjectLibrary;
5049
import com.oracle.truffle.api.object.Property;
5150
import com.oracle.truffle.api.object.Shape;
5251
import com.oracle.truffle.api.test.AbstractLibraryTest;
5352

53+
@SuppressWarnings("deprecation")
5454
@RunWith(Parameterized.class)
5555
public abstract class ParametrizedDynamicObjectTest extends AbstractLibraryTest {
5656

@@ -71,10 +71,10 @@ public enum TestRun {
7171

7272
protected final DynamicObjectLibraryWrapper createLibrary(Object receiver) {
7373
return switch (run) {
74-
case CACHED_LIBRARY -> wrap(adoptNode(DynamicObjectLibrary.getFactory().create(receiver)).get());
75-
case UNCACHED_LIBRARY -> wrap(DynamicObjectLibrary.getFactory().getUncached(receiver));
76-
case DISPATCHED_CACHED_LIBRARY -> wrap(adoptNode(DynamicObjectLibrary.getFactory().createDispatched(2)).get());
77-
case DISPATCHED_UNCACHED_LIBRARY -> wrap(DynamicObjectLibrary.getUncached());
74+
case CACHED_LIBRARY -> wrap(adoptNode(com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory().create(receiver)).get());
75+
case UNCACHED_LIBRARY -> wrap(com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory().getUncached(receiver));
76+
case DISPATCHED_CACHED_LIBRARY -> wrap(adoptNode(com.oracle.truffle.api.object.DynamicObjectLibrary.getFactory().createDispatched(2)).get());
77+
case DISPATCHED_UNCACHED_LIBRARY -> wrap(com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached());
7878
case CACHED_NODES -> new NodesFakeDynamicObjectLibrary();
7979
case UNCACHED_NODES -> UNCACHED_NODES_LIBRARY;
8080
};
@@ -90,7 +90,7 @@ protected final DynamicObjectLibraryWrapper createLibrary() {
9090
protected final DynamicObjectLibraryWrapper uncachedLibrary() {
9191
return switch (run) {
9292
case CACHED_LIBRARY, UNCACHED_LIBRARY, DISPATCHED_CACHED_LIBRARY, DISPATCHED_UNCACHED_LIBRARY ->
93-
wrap(DynamicObjectLibrary.getUncached());
93+
wrap(com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached());
9494
case CACHED_NODES, UNCACHED_NODES -> UNCACHED_NODES_LIBRARY;
9595
};
9696
}
@@ -163,7 +163,7 @@ public final int getPropertyFlagsOrDefault(DynamicObject object, Object key, int
163163
public abstract Property[] getPropertyArray(DynamicObject object);
164164
}
165165

166-
protected static DynamicObjectLibraryWrapper wrap(DynamicObjectLibrary library) {
166+
protected static DynamicObjectLibraryWrapper wrap(com.oracle.truffle.api.object.DynamicObjectLibrary library) {
167167
return new DynamicObjectLibraryWrapper() {
168168

169169
@Override

truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/TestNestedDispatchNode.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,8 @@
4545
import com.oracle.truffle.api.library.CachedLibrary;
4646
import com.oracle.truffle.api.nodes.Node;
4747
import com.oracle.truffle.api.object.DynamicObject;
48-
import com.oracle.truffle.api.object.DynamicObjectLibrary;
4948

50-
@SuppressWarnings("truffle")
49+
@SuppressWarnings({"deprecation", "truffle-sharing", "truffle-neverdefault"})
5150
public abstract class TestNestedDispatchNode extends Node {
5251

5352
final Object key = "testKey";
@@ -57,8 +56,7 @@ public abstract class TestNestedDispatchNode extends Node {
5756
@Specialization(guards = {"obj == cachedObj"}, limit = "1")
5857
Object cached(DynamicObject obj,
5958
@Cached("obj") @SuppressWarnings("unused") DynamicObject cachedObj,
60-
// @CachedLibrary({"obj", "key"}) DynamicObjectLibrary lib,
61-
@CachedLibrary("obj") DynamicObjectLibrary lib,
59+
@CachedLibrary("obj") com.oracle.truffle.api.object.DynamicObjectLibrary lib,
6260
@Cached(value = "cachedObj.getShape().getProperty(key) != null") boolean hasProperty,
6361
@Cached TestNestedDispatchNode nested) {
6462
Object value = lib.getOrDefault(obj, key, null);
@@ -73,7 +71,7 @@ Object cached(DynamicObject obj,
7371

7472
@Specialization(limit = "3")
7573
Object cached(DynamicObject obj,
76-
@CachedLibrary("obj") DynamicObjectLibrary lib,
74+
@CachedLibrary("obj") com.oracle.truffle.api.object.DynamicObjectLibrary lib,
7775
@Cached(value = "obj.getShape().getProperty(key) != null", uncached = "obj.getShape().getProperty(key) != null") boolean hasProperty,
7876
@Cached TestNestedDispatchNode nested) {
7977
Object value = lib.getOrDefault(obj, key, null);

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/DynamicObjectLibrary.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,13 @@
9595
* </pre>
9696
*
9797
* @since 20.2.0
98+
* @see DynamicObject
99+
* @deprecated DynamicObjectLibrary has been replaced by more lightweight DynamicObject nodes.
100+
* Consult the javadoc of the individual messages for the corresponding API replacement,
101+
* or see {@link DynamicObject} for a list of new node-based APIs.
102+
* {@link DynamicObjectLibrary} will be removed in a future release.
98103
*/
104+
@Deprecated(since = "25.1")
99105
@GenerateLibrary(defaultExportLookupEnabled = false, dynamicDispatchEnabled = false, pushEncapsulatingNode = false)
100106
@GenerateLibrary.DefaultExport(DynamicObjectLibraryImpl.class)
101107
public abstract class DynamicObjectLibrary extends Library {

0 commit comments

Comments
 (0)