2017-10-17 92 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