0

HotSpot JVM 团队正在开发非常酷的项目Graal/Truffle,它允许开发人员动态编译/注入 Java、Javascript(和其他)以在 JVM 速度下运行。问题: - OpenJ9 可以与 Graal/Truffle 互操作吗?- 如果 OMR 类似于 Graal/Truffle,你能对比一下吗?

4

2 回答 2

1

OMR 和 Graal 的比较写在这里:https ://github.com/eclipse/omr/issues/1118

引用该问题中的 John Duimovich 的话:

因此,简短的回答是 Truffle/Graal 是一项研究工作,正在研究使用 JVM 来实现编程语言。Truffle 用于通过实现 AST 解析器并通过 Graal 优化它来实现语言(跳过了很多细节)。Graal 专注于代码生成,依赖 Java 进行垃圾回收。你用 Java 实现你的语言。由于许多目标语言使用 C/C++ 作为它们的实现语言,这可能不是一个初学者,但也许使用 TruffleC 它可以用来直接重新编译,但我不认为这是开源的。他们有一些令人印象深刻的基准,所以那里有很酷的东西。

Eclipse OMR 是生产就绪代码,由 IBM Java 使用,并试图引导到其他语言,在 Java 中有很好的基准测试,但对于其他语言的证明点仍在进行中,因为 OMR 作为一个开源项目大约有 1 年的历史。现有的语言实现者不需要重写他们的 C/C++ 实现,因此他们可以逐步采用组件。如果您想要集成代码生成库或集成单独的 GC 实现,您会选择 OMR,因为它们是作为模块化组件提供的。

还有一些原型允许 Java 代码从 Java 驱动 OMR 的 JITBuilder 代码生成器。请参阅 Mark Stoodley 的 JVMLS 演示:https ://www.youtube.com/watch?v=w5rcBiOHrB0

于 2017-10-17T15:44:14.083 回答
1

有关支持 Truffle API 的一些信息在这里: https ://github.com/eclipse/openj9/issues/59

于 2017-10-17T06:44:47.760 回答