From 6a0c47a6c96b68457fc5c7e028c42b5730c0ba9f Mon Sep 17 00:00:00 2001 From: stepan <stepan.sindelar@oracle.com> Date: Fri, 16 Mar 2018 11:41:47 +0100 Subject: [PATCH] Do not use deprecated KeyInfo.newBuilder() --- .../truffle/r/engine/TruffleRLanguageImpl.java | 6 ------ .../oracle/truffle/r/engine/interop/ListMR.java | 9 +++++---- .../interop/RAbstractVectorAccessFactory.java | 4 +--- .../r/engine/interop/RArgsValuesAndNamesMR.java | 5 ++--- .../truffle/r/engine/interop/REnvironmentMR.java | 12 ++++++------ .../truffle/r/engine/interop/RLanguageMR.java | 5 +---- .../truffle/r/engine/interop/RPromiseMR.java | 4 ++-- .../truffle/r/engine/interop/RS4ObjectMR.java | 8 +++----- .../com/oracle/truffle/r/runtime/env/RScope.java | 16 ++++++---------- 9 files changed, 26 insertions(+), 43 deletions(-) diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/TruffleRLanguageImpl.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/TruffleRLanguageImpl.java index e47345b704..e84096fba5 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/TruffleRLanguageImpl.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/TruffleRLanguageImpl.java @@ -217,12 +217,6 @@ public final class TruffleRLanguageImpl extends TruffleRLanguage { } } - @Override - protected Object getLanguageGlobal(RContext context) { - // TODO: what's the meaning of "language global" for R? - return null; - } - public static RContext getCurrentContext() { return TruffleLanguage.getCurrentContext(TruffleRLanguage.class); } diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ListMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ListMR.java index 8110560bfa..17611a0c03 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ListMR.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ListMR.java @@ -29,7 +29,6 @@ import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.interop.CanResolve; import com.oracle.truffle.api.interop.KeyInfo; -import com.oracle.truffle.api.interop.KeyInfo.Builder; import com.oracle.truffle.api.interop.MessageResolution; import com.oracle.truffle.api.interop.Resolve; import com.oracle.truffle.api.interop.TruffleObject; @@ -476,9 +475,11 @@ public class ListMR { } private static int buildKeys(Object value) { - Builder builder = KeyInfo.newBuilder(); - builder.setReadable(true).setWritable(true).setInvocable(value instanceof RFunction); - return builder.build(); + int result = KeyInfo.READABLE | KeyInfo.MODIFIABLE; + if (value instanceof RFunction) { + result |= KeyInfo.INVOCABLE; + } + return result; } private void initExtractNode() { diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java index 71f967bff0..fec7058df2 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java @@ -280,9 +280,7 @@ public final class RAbstractVectorAccessFactory implements StandardFactory { if (unknownIdentifier.profile(idx < 0 || idx >= lengthNode.executeInteger(receiver))) { return 0; } - KeyInfo.Builder builder = KeyInfo.newBuilder(); - builder.setReadable(true).setWritable(true); - return builder.build(); + return KeyInfo.READABLE | KeyInfo.MODIFIABLE; } @Fallback diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RArgsValuesAndNamesMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RArgsValuesAndNamesMR.java index 41d74de381..70ef6ffa40 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RArgsValuesAndNamesMR.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RArgsValuesAndNamesMR.java @@ -193,9 +193,8 @@ public class RArgsValuesAndNamesMR { } private static Object createKeyInfo(RArgsValuesAndNames receiver, int idx) { - KeyInfo.Builder builder = KeyInfo.newBuilder(); - builder.setReadable(true).setInvocable(receiver.getArgument(idx) instanceof RFunction); - return builder.build(); + int invocable = receiver.getArgument(idx) instanceof RFunction ? KeyInfo.INVOCABLE : 0; + return KeyInfo.READABLE | invocable; } @Fallback diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/REnvironmentMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/REnvironmentMR.java index 31246b547d..f53da4a554 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/REnvironmentMR.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/REnvironmentMR.java @@ -29,7 +29,6 @@ import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.frame.VirtualFrame; import com.oracle.truffle.api.interop.CanResolve; import com.oracle.truffle.api.interop.KeyInfo; -import com.oracle.truffle.api.interop.KeyInfo.Builder; import com.oracle.truffle.api.interop.Message; import com.oracle.truffle.api.interop.MessageResolution; import com.oracle.truffle.api.interop.Resolve; @@ -212,13 +211,14 @@ public class REnvironmentMR { if (val == null) { return 0; } - Builder builder = KeyInfo.newBuilder(); - builder.setReadable(true); + int result = KeyInfo.READABLE; if (!receiver.isLocked() && !receiver.bindingIsLocked(identifier)) { - builder.setWritable(true); + result |= KeyInfo.MODIFIABLE; } - builder.setInvocable(val instanceof RFunction); - return builder.build(); + if (val instanceof RFunction) { + result |= KeyInfo.INVOCABLE; + } + return result; } @Fallback diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RLanguageMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RLanguageMR.java index 5861a235f3..d6f5b6b3f8 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RLanguageMR.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RLanguageMR.java @@ -155,11 +155,8 @@ public class RLanguageMR { if (unknownIdentifier.profile(idx < 0 || idx >= receiver.getLength())) { return 0; } - - KeyInfo.Builder builder = KeyInfo.newBuilder(); - builder.setReadable(true); // TODO what about writeble/invocable/... - return builder.build(); + return KeyInfo.READABLE; } @Fallback diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RPromiseMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RPromiseMR.java index 07fa19481e..9d5d457829 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RPromiseMR.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RPromiseMR.java @@ -172,9 +172,9 @@ public class RPromiseMR { @Specialization protected Object access(@SuppressWarnings("unused") RPromise receiver, String identifier) { if (PROP_EXPR.equals(identifier) || PROP_VALUE.equals(identifier)) { - return KeyInfo.newBuilder().setReadable(true).build(); + return KeyInfo.READABLE; } else if (PROP_IS_EVALUATED.equals(identifier)) { - return KeyInfo.newBuilder().setReadable(true).setWritable(true).build(); + return KeyInfo.READABLE | KeyInfo.MODIFIABLE; } else { return 0; } diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RS4ObjectMR.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RS4ObjectMR.java index ff7122e0fa..db48f8916a 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RS4ObjectMR.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RS4ObjectMR.java @@ -28,7 +28,6 @@ import com.oracle.truffle.api.dsl.Fallback; import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.interop.CanResolve; import com.oracle.truffle.api.interop.KeyInfo; -import com.oracle.truffle.api.interop.KeyInfo.Builder; import com.oracle.truffle.api.interop.Message; import com.oracle.truffle.api.interop.MessageResolution; import com.oracle.truffle.api.interop.Resolve; @@ -233,10 +232,9 @@ public class RS4ObjectMR { CompilerDirectives.transferToInterpreterAndInvalidate(); getAttributeNode = insert(GetAttributeNode.create()); } - Builder builder = KeyInfo.newBuilder(); - builder.setReadable(true).setWritable(!identifier.equals("class")); - builder.setInvocable(getAttributeNode.execute(receiver, identifier) instanceof RFunction); - return builder.build(); + int writeable = !identifier.equals("class") ? KeyInfo.MODIFIABLE : 0; + int executable = getAttributeNode.execute(receiver, identifier) instanceof RFunction ? KeyInfo.INVOCABLE : 0; + return KeyInfo.READABLE | writeable | executable; } protected static ArrayAttributeNode createArrayAttributeNode() { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/RScope.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/RScope.java index cb2d3141e1..6f7f5c8e22 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/RScope.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/RScope.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2018, 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 @@ -32,7 +32,6 @@ import com.oracle.truffle.api.frame.Frame; import com.oracle.truffle.api.frame.MaterializedFrame; import com.oracle.truffle.api.interop.ForeignAccess; import com.oracle.truffle.api.interop.KeyInfo; -import com.oracle.truffle.api.interop.KeyInfo.Builder; import com.oracle.truffle.api.interop.Message; import com.oracle.truffle.api.interop.MessageResolution; import com.oracle.truffle.api.interop.Resolve; @@ -236,16 +235,14 @@ public final class RScope { public abstract static class VarMapsKeyInfoNode extends Node { protected Object access(VariablesObject receiver, String identifier) { - Builder builder = KeyInfo.newBuilder(); - builder.setReadable(true); - + int result = KeyInfo.READABLE; if (!receiver.frameAccess.bindingIsLocked(identifier)) { - builder.setWritable(true); + result |= KeyInfo.MODIFIABLE; } if (receiver.frameAccess.get(identifier) instanceof RFunction) { - builder.setInvocable(true); + result |= KeyInfo.INVOCABLE; } - return builder.build(); + return result; } } @@ -356,8 +353,7 @@ public final class RScope { @Resolve(message = "HAS_SIZE") abstract static class ArgNamesHasSizeNode extends Node { - @SuppressWarnings("unused") - public Object access(ArgumentNamesObject varNames) { + public Object access(@SuppressWarnings("unused") ArgumentNamesObject varNames) { return true; } } -- GitLab