From be988860934d124edc05eba2dd12c4c79bdc51a1 Mon Sep 17 00:00:00 2001 From: Mick Jordan <mick.jordan@oracle.com> Date: Fri, 10 Feb 2017 14:56:25 -0800 Subject: [PATCH] rffi: update RFFIUpCallMethod --- .../interop/ffi/llvm/TruffleLLVM_UpCallsRFFIImpl.java | 3 ++- com.oracle.truffle.r.native/Makefile | 4 +--- .../com/oracle/truffle/r/nodes/ffi/RFFIUpCallMethod.java | 5 +++++ .../truffle/r/nodes/ffi/TracingUpCallsRFFIImpl.java | 6 ++++++ .../truffle/r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java | 8 +++++++- .../com/oracle/truffle/r/runtime/ffi/StdUpCallsRFFI.java | 2 ++ 6 files changed, 23 insertions(+), 5 deletions(-) diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ffi/llvm/TruffleLLVM_UpCallsRFFIImpl.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ffi/llvm/TruffleLLVM_UpCallsRFFIImpl.java index d5f87c5150..bf5eeed417 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ffi/llvm/TruffleLLVM_UpCallsRFFIImpl.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/ffi/llvm/TruffleLLVM_UpCallsRFFIImpl.java @@ -45,12 +45,13 @@ import com.oracle.truffle.r.runtime.data.RTypedValue; import com.oracle.truffle.r.runtime.data.RUnboundValue; import com.oracle.truffle.r.runtime.ffi.CharSXPWrapper; import com.oracle.truffle.r.runtime.ffi.RFFIVariables; +import com.oracle.truffle.r.runtime.ffi.jni.JNIUpCallsRFFIImpl; /** * (Incomplete) Variant of {@link JavaUpCallsRFFIImpl} for Truffle LLVM. * */ -public class TruffleLLVM_UpCallsRFFIImpl extends JavaUpCallsRFFIImpl implements VariableUpCallsRFFI { +public class TruffleLLVM_UpCallsRFFIImpl extends JNIUpCallsRFFIImpl implements VariableUpCallsRFFI { private static TruffleLLVM_UpCallsRFFIImpl singleton; private static TruffleObject singletonTruffleObject; diff --git a/com.oracle.truffle.r.native/Makefile b/com.oracle.truffle.r.native/Makefile index 1207d671c8..37ea9afada 100644 --- a/com.oracle.truffle.r.native/Makefile +++ b/com.oracle.truffle.r.native/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2014, 2017, 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 @@ -69,5 +69,3 @@ checkversion: ifeq ($(doclean),1) $(MAKE) clean endif - - \ No newline at end of file diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/RFFIUpCallMethod.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/RFFIUpCallMethod.java index fc354a931d..dd28c59af3 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/RFFIUpCallMethod.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/RFFIUpCallMethod.java @@ -44,7 +44,10 @@ public enum RFFIUpCallMethod { LOGICAL("(object) : object"), NAMED("(object) : sint32"), OBJECT("(object) : sint32"), + PRCODE("(object) : object"), + PRENV("(object) : object"), PRINTNAME("(object) : object"), + PRSEEN("(object) : sint32"), PRVALUE("(object) : object"), PutRNGstate("() : void"), RAW("(object) : object"), @@ -54,6 +57,7 @@ public enum RFFIUpCallMethod { R_BaseEnv("() : object"), R_BaseNamespace("() : object"), R_BindingIsLocked("(object, object) : sint32"), + R_CHAR("(object) : object"), R_CleanUp("(sint32, sint32, sint32) : void"), R_ExternalPtrAddr("(object) : object"), R_ExternalPtrProt("(object) : object"), @@ -67,6 +71,7 @@ public enum RFFIUpCallMethod { R_NamespaceRegistry("() : object"), R_NewHashedEnv("(object, sint32) : object"), R_ParseVector("(object, sint32, object) : object"), + R_PromiseExpr("(object) : object"), R_SetExternalPtrAddr("(object, object) : void"), R_SetExternalPtrProt("(object, object) : void"), R_SetExternalPtrTag("(object, object) : void"), diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/TracingUpCallsRFFIImpl.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/TracingUpCallsRFFIImpl.java index 1d5385bf2d..31a6a88c7c 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/TracingUpCallsRFFIImpl.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/TracingUpCallsRFFIImpl.java @@ -723,4 +723,10 @@ final class TracingUpCallsRFFIImpl implements UpCallsRFFI { return delegate.PRCODE(x); } + @Override + public Object R_CHAR(Object x) { + RFFIUtils.traceUpCall("R_CHAR", x); + return delegate.R_CHAR(x); + } + } diff --git a/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java b/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java index 94381998e7..233e055e8e 100644 --- a/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java +++ b/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java @@ -26,13 +26,14 @@ import static com.oracle.truffle.r.nodes.ffi.RFFIUtils.guaranteeInstanceOf; import com.oracle.truffle.r.nodes.ffi.JavaUpCallsRFFIImpl; import com.oracle.truffle.r.runtime.RErrorHandling; +import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.data.RVector; import com.oracle.truffle.r.runtime.ffi.CharSXPWrapper; /** * Some additional methods to support the native JNI side. */ -public final class JNIUpCallsRFFIImpl extends JavaUpCallsRFFIImpl { +public class JNIUpCallsRFFIImpl extends JavaUpCallsRFFIImpl { // Checkstyle: stop method name check /** @@ -63,4 +64,9 @@ public final class JNIUpCallsRFFIImpl extends JavaUpCallsRFFIImpl { System.out.println("class " + x.getClass()); } + @Override + public Object R_CHAR(Object x) { + throw RInternalError.shouldNotReachHere(); + } + } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/StdUpCallsRFFI.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/StdUpCallsRFFI.java index 60a8de076b..e8b7a62940 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/StdUpCallsRFFI.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/StdUpCallsRFFI.java @@ -248,4 +248,6 @@ public interface StdUpCallsRFFI { Object PRCODE(Object x); + Object R_CHAR(Object x); + } -- GitLab