2017-10-17 96 views
0

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

回答

1

比较已经写在这里:https://github.com/eclipse/omr/issues/1118

从这个问题引述约翰Duimovich:

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

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

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

+0

>由于许多目标语言都使用C/C++作为其实现语言,因此这可能不是启动器。 不是。您仍然可以通过例如调用C代码JNI,并且有GraalLLVM [1](代码名称sulong),让您在JVM内运行C/C++/Fortran(它被解释为任何其他松露语言)。请参阅FastR或TruffleRuby,它们使用它来运行R/Ruby本机扩展。 [1] https://github.com/graalvm/sulong – Steves

+0

...当然,如果你想移植现有的实现,可能是一个问题,但同时你不会得到任何好处,除非您将该实现应用于ORM/Truffle提供的功能。 – Steves