Groovy 如何使用 Graalvm 的 Truffle 框架?
How to use Graalvm's Truffle framework with Groovy?
Graalvm jdk uses the Truffle framework 调用函数并从其他语言接收对象,例如 R、Python、Ruby 和 Javascript。如何从 Groovy 使用它?我可以使用 Groovy 代码调用它的 API 吗?还是我必须使用 Java 代码调用 Truffle API,然后从 Groovy 调用此 Java 代码?
您可能对 Truffle API 不感兴趣,它 API 用于开发新的基于 Truffle 的语言,但在 Graal SDK 中:API 用于将 Truffle 语言嵌入 Java 应用程序。我想你可以像使用任何其他 Java API.
一样使用 Groovy 中的 API
部分资源:
https://www.graalvm.org/docs/reference-manual/embed/
https://www.graalvm.org/sdk/javadoc/index.html?org/graalvm/polyglot/Context.html
TL;Java 中的 DR 示例:
import org.graalvm.polyglot.*;
import org.graalvm.polyglot.proxy.*;
public class HelloPolyglot {
public static void main(String[] args) {
System.out.println("Hello Java!");
try (Context context = Context.create()) {
context.eval("js", "print('Hello JavaScript!');");
}
}
}
Graalvm jdk uses the Truffle framework 调用函数并从其他语言接收对象,例如 R、Python、Ruby 和 Javascript。如何从 Groovy 使用它?我可以使用 Groovy 代码调用它的 API 吗?还是我必须使用 Java 代码调用 Truffle API,然后从 Groovy 调用此 Java 代码?
您可能对 Truffle API 不感兴趣,它 API 用于开发新的基于 Truffle 的语言,但在 Graal SDK 中:API 用于将 Truffle 语言嵌入 Java 应用程序。我想你可以像使用任何其他 Java API.
一样使用 Groovy 中的 API部分资源:
https://www.graalvm.org/docs/reference-manual/embed/
https://www.graalvm.org/sdk/javadoc/index.html?org/graalvm/polyglot/Context.html
TL;Java 中的 DR 示例:
import org.graalvm.polyglot.*;
import org.graalvm.polyglot.proxy.*;
public class HelloPolyglot {
public static void main(String[] args) {
System.out.println("Hello Java!");
try (Context context = Context.create()) {
context.eval("js", "print('Hello JavaScript!');");
}
}
}