changeset 21167:ab451b6de9f8

Interop: introduce separate global language scope
author Matthias Grimmer <grimmer@ssw.jku.at>
date Thu, 30 Apr 2015 17:27:53 +0200
parents f383ff4c9af8
children 8407957b067b
files graal/com.oracle.truffle.interop/src/com/oracle/truffle/interop/ForeignAccessArguments.java graal/com.oracle.truffle.interop/src/com/oracle/truffle/interop/TruffleGlobalScope.java graal/com.oracle.truffle.interop/src/com/oracle/truffle/interop/TruffleLanguage.java
diffstat 3 files changed, 24 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.interop/src/com/oracle/truffle/interop/ForeignAccessArguments.java	Thu Apr 30 20:29:27 2015 +0200
+++ b/graal/com.oracle.truffle.interop/src/com/oracle/truffle/interop/ForeignAccessArguments.java	Thu Apr 30 17:27:53 2015 +0200
@@ -54,6 +54,10 @@
         return copyOfRange(arguments, RUNTIME_ARGUMENT_COUNT, arguments.length);
     }
 
+    public static Object[] extractUserArguments(int skip, Object[] arguments) {
+        return copyOfRange(arguments, RUNTIME_ARGUMENT_COUNT + skip, arguments.length);
+    }
+
     public static int getUserArgumentCount(Object[] arguments) {
         return arguments.length - RUNTIME_ARGUMENT_COUNT;
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graal/com.oracle.truffle.interop/src/com/oracle/truffle/interop/TruffleGlobalScope.java	Thu Apr 30 17:27:53 2015 +0200
@@ -0,0 +1,14 @@
+package com.oracle.truffle.interop;
+
+import com.oracle.truffle.api.frame.*;
+import com.oracle.truffle.api.interop.*;
+
+public interface TruffleGlobalScope {
+    void exportTruffleObject(Object identifier, TruffleObject object);
+
+    FrameSlot getFrameSlot(Object identifier);
+
+    TruffleObject getTruffleObject(FrameSlot slot);
+
+    boolean contains(Object identifier);
+}
--- a/graal/com.oracle.truffle.interop/src/com/oracle/truffle/interop/TruffleLanguage.java	Thu Apr 30 20:29:27 2015 +0200
+++ b/graal/com.oracle.truffle.interop/src/com/oracle/truffle/interop/TruffleLanguage.java	Thu Apr 30 17:27:53 2015 +0200
@@ -29,12 +29,12 @@
 public interface TruffleLanguage {
     String getLanguageName();
 
-    TruffleObject getLanguageContext();
-
-    void setGlobalContext(TruffleObject context);
-
-    boolean hasGlobalProperty(String name);
-
     Object run(String[] arguments);
 
+    void setTruffleGlobalScope(TruffleGlobalScope globalScope);
+
+    TruffleObject getLanguageGlobal();
+
+    boolean isObjectOfLanguage(TruffleObject object);
+
 }