Galahad项目开始着手将GraalVM引入Java


在最近的JavaOne大会上,有消息称 Oracle正在发布针对Java的GraalVM CE版本,该项目将被转移到JDK的 wings (和许可)之下。
到目前为止,关于整个计划将如何实施的细节还缺乏。
重要的是要记住,即使是将Java源代码从以前的存储库移动到GitHub也是一个漫长而复杂的计划,它有自己的 Skara项目 。

在GraalVM的例子中,我们不仅仅谈论从一个服务到另一个服务的纯粹迁移(这本身也不是简单的迁移,特别是因为JDK存储库也从Mercurial转移到Git),而是将GraalVM的某个部分翻转到一个完全独立的实体中,这就是JDK。

重要的是要记住,GraalVM CE是一个更广泛的生态系统,只有Java部分将被迁移。这使得整个操作变得非常复杂,因为未来对GraalVM的所有更改都必须考虑到具有不同生命周期和许可证的Java变体。
因此,提名一项特别倡议:Galahad加拉哈德项目,专门来设计和执行这一进程就不足为奇了。

Galahad在实践中意味着什么?
第一步将是引入JDK的第二个(实际上是第三个)JIT编译器。
作为提醒:目前,JDK已经有两个不同的JIT--C1、C2。
它们在应用程序生命周期的不同阶段运行--这个过程被称为分层编译。
Scott Oaks的《Java性能》一书中的《与JIT编译器合作》一章对此有精彩描述。
GraalVM将对它们进行补充。
然而,Ron Pressler表示:GraalVM在未来可能会取代C2。
如果你对源自GraalVM的JIT编译器与现有的JIT编译器究竟有何不同感到好奇,我推荐出版物《深入了解新的Java JIT编译器 - Graal》。

GraalVM的Ahead-of-Time编译部分预计也将在晚些时候被移植。
在这里,整个事情有了有趣的转折,因为该倡议与Project Leyden有相当多的勾连。Leyden和Galahad将同时发生,后者的开发者已经宣布,他们将对其兄长发生的事情非常敏感。

Reddit用户指出,该项目背后有一大批经验丰富的工程师,GraalVM项目负责人本人也在其中。
Galahad已经选择了JDK 20作为起点。
也已经很清楚,就像其他项目一样,我们不太可能期待一次大的迁移,而是一系列较小的JEP,将GraalVM逐渐迁移到JDK。

现在就这样了。我们也许可以期待更多的公告、首次提议和行动。

参考: