Mercurial > hg > truffle
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); + }