From 27ce883686e189a48798351ab46465ff37afa657 Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Mon, 6 Feb 2017 11:04:11 +0100
Subject: [PATCH] update Truffle version

---
 .../r/nodes/test/DefaultArgsExtractor.java    | 12 +++++-----
 .../r/runtime/context/ContextInfo.java        |  4 ++--
 .../com/oracle/truffle/r/test/TestBase.java   |  4 ++--
 .../truffle/r/test/generate/FastRSession.java | 15 ++----------
 .../r/test/rpackages/TestRPackages.java       | 23 ++++---------------
 mx.fastr/suite.py                             |  2 +-
 6 files changed, 18 insertions(+), 42 deletions(-)

diff --git a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/test/DefaultArgsExtractor.java b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/test/DefaultArgsExtractor.java
index cc63af538e..3b9c62f6dd 100644
--- a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/test/DefaultArgsExtractor.java
+++ b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/test/DefaultArgsExtractor.java
@@ -61,13 +61,12 @@ class DefaultArgsExtractor {
         HashMap<String, Samples<?>> samplesMap = new HashMap<>();
         try {
 
-            Source source = RSource.fromTextInternal("formals(" + functionName + ")",
-                            RSource.Internal.UNIT_TEST);
+            Source source = RSource.fromTextInternal("formals(" + functionName + ")", RSource.Internal.UNIT_TEST);
 
             Value defArgVal = vm.eval(source);
 
-            if (defArgVal.get() instanceof RPairList) {
-                RPairList formals = (RPairList) defArgVal.get();
+            try {
+                RPairList formals = defArgVal.as(RPairList.class);
                 RStringVector names = formals.getNames();
 
                 for (int i = 0; i < names.getLength(); i++) {
@@ -77,8 +76,7 @@ class DefaultArgsExtractor {
                     if (defVal instanceof RLanguage) {
                         String deparsedDefVal = RDeparse.deparse(defVal);
                         try {
-                            Value eval = vm.eval(RSource.fromTextInternal(deparsedDefVal,
-                                            RSource.Internal.UNIT_TEST));
+                            Value eval = vm.eval(RSource.fromTextInternal(deparsedDefVal, RSource.Internal.UNIT_TEST));
                             defVal = eval.get();
                         } catch (Throwable t) {
                             printer.accept("Warning: Unable to evaluate the default value of argument " + name + ". Expression: " + deparsedDefVal);
@@ -107,6 +105,8 @@ class DefaultArgsExtractor {
                         samplesMap.put(name, Samples.anything(defVal));
                     }
                 }
+            } catch (ClassCastException e) {
+                // no pairlist...
             }
         } catch (Throwable t) {
             printer.accept("Warning: Unable to evaluate formal arguments of function " + functionName);
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/ContextInfo.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/ContextInfo.java
index 781156ff27..779e8d50a4 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/ContextInfo.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/context/ContextInfo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -99,7 +99,7 @@ public final class ContextInfo implements TruffleObject {
     }
 
     public static ContextInfo getContextInfo(PolyglotEngine vm) {
-        return (ContextInfo) vm.findGlobalSymbol(ContextInfo.GLOBAL_SYMBOL).get();
+        return vm.findGlobalSymbol(ContextInfo.GLOBAL_SYMBOL).as(ContextInfo.class);
     }
 
     public RStartParams getStartParams() {
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/TestBase.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/TestBase.java
index a89de0a6a4..8d04aedae7 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/TestBase.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/TestBase.java
@@ -889,11 +889,11 @@ public class TestBase {
      * we go via the {@code system2} R function (which may call {@link ProcessBuilder} internally).
      *
      */
-    protected static Object evalInstallPackage(String system2Command) throws Throwable {
+    protected static String evalInstallPackage(String system2Command) throws Throwable {
         if (generatingExpected()) {
             return expectedOutputManager.getRSession().eval(null, system2Command, null, true);
         } else {
-            return fastROutputManager.fastRSession.evalAsObject(null, system2Command, null, true);
+            return fastROutputManager.fastRSession.eval(null, system2Command, null, true);
         }
     }
 
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java
index cbc3b17563..915b2eac40 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java
@@ -182,17 +182,6 @@ public final class FastRSession implements RSession {
 
     @Override
     public String eval(TestBase testClass, String expression, ContextInfo contextInfo, boolean longTimeout) throws Throwable {
-        evalAsObject(testClass, expression, contextInfo, longTimeout);
-        return consoleHandler.buffer.toString();
-    }
-
-    /**
-     * Returns the actual object from evaluating expression. Used (and result ignored) by
-     * {@link #eval} but also used for package installation via the {@code system2} command, where
-     * the result is used to check whether the installation succeeded.
-     */
-    public Object evalAsObject(TestBase testClass, String expression, ContextInfo contextInfo, boolean longTimeout) throws Throwable {
-        Object result = null;
         Timer timer = null;
         consoleHandler.reset();
         try {
@@ -211,7 +200,7 @@ public final class FastRSession implements RSession {
                     Source source = RSource.fromTextInternal(input, RSource.Internal.UNIT_TEST);
                     try {
                         try {
-                            result = vm.eval(source).get();
+                            vm.eval(source);
                             // checked exceptions are wrapped in RuntimeExceptions
                         } catch (RuntimeException e) {
                             if (e.getCause() instanceof com.oracle.truffle.api.vm.IncompleteSourceException) {
@@ -249,7 +238,7 @@ public final class FastRSession implements RSession {
                 timer.cancel();
             }
         }
-        return result;
+        return consoleHandler.buffer.toString();
     }
 
     private static Timer scheduleTimeBoxing(PolyglotEngine engine, long timeout) {
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/rpackages/TestRPackages.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/rpackages/TestRPackages.java
index c2d69dba11..fbac0b3aa6 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/rpackages/TestRPackages.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/rpackages/TestRPackages.java
@@ -31,7 +31,6 @@ import org.junit.Assert;
 
 import com.oracle.truffle.r.runtime.REnvVars;
 import com.oracle.truffle.r.runtime.RVersionNumber;
-import com.oracle.truffle.r.runtime.data.RStringVector;
 import com.oracle.truffle.r.test.TestBase;
 
 /**
@@ -140,26 +139,14 @@ public abstract class TestRPackages extends TestBase {
         }
         cmd = binBase.resolve("bin").resolve("R").toString();
         try {
-            Object result = evalInstallPackage(String.format(SYSTEM2_COMMAND, cmd, packagePath.path.toString(), installDir().toString()));
-            boolean success;
-            if (generatingExpected()) {
-                String stringResult = (String) result;
-                success = stringResult.contains("* DONE (");
-                if (!success) {
-                    System.out.println(stringResult);
-                }
-            } else {
-                RStringVector vecResult = (RStringVector) result;
-                success = vecResult.getAttr("status") == null;
-                if (!success) {
-                    String[] output = vecResult.getDataWithoutCopying();
-                    for (String line : output) {
-                        System.out.println(line);
-                    }
-                }
+            String result = evalInstallPackage(String.format(SYSTEM2_COMMAND, cmd, packagePath.path.toString(), installDir().toString()));
+            boolean success = result.contains("* DONE (");
+            if (!success) {
+                System.out.println(result);
             }
             return success;
         } catch (Throwable t) {
+            t.printStackTrace();
             return false;
         }
     }
diff --git a/mx.fastr/suite.py b/mx.fastr/suite.py
index 5ba8da1466..1d08d05feb 100644
--- a/mx.fastr/suite.py
+++ b/mx.fastr/suite.py
@@ -28,7 +28,7 @@ suite = {
     "suites" : [
             {
                "name" : "truffle",
-               "version" : "16e66aa3231ee95b9dfe2f0cc8a32cfb63d86025",
+               "version" : "54e4d48faa085ae1fb1bbcdb4733acfd523a5fd0",
                "urls" : [
                     {"url" : "https://github.com/graalvm/truffle", "kind" : "git"},
                     {"url" : "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind" : "binary"},
-- 
GitLab