首页
学习
活动
专区
工具
TVP
发布

Ruby 的新 YJIT 编译器已完成,使用 Rust 重新实现

出品|开源中国

文|局长

去年 12 月,Ruby JIT 团队的成员提出,希望将 YJIT 代码库从 C99 移植到 Rust。虽然有不少开发者对此持保留意见,但这个项目最终得到了 Ruby 核心开发者以及创始人 Matz 的批准。

昨日,负责此项目的开发者表示已完成了使用 Rust 实现的 Ruby YJIT 编译器,可有效取代现有的 C 版本,目前正在等待上游合并。

据介绍,Rust 版本的 YJIT 编译器与 C 版本具有相同的水平,因为它通过了所有的 CRuby 测试,也能够运行所有 YJIT 基准测试,并且性能与 C 版本基本一致(它以相同的方式运行,并且基本生成了相同的机器代码)。此外,开发团队还加入了一些设计改进,例如更细粒度的常量失效机制,预计这将在 Ruby on Rails 应用程序中发挥巨大作用。

默认情况下,YJIT 不会被编译,也不需要 cargo/rustc。如果 YJIT 在 dev 模式下构建,则cargo用于获取开发依赖项,但在 release 中构建时,cargo不是必需的,只需要有rustc。目前 YJIT 要求使用 Rust 1.60.0 或更新的版本。

按照计划,Rust YJIT 将被编译并包含在 Ruby 3.2 版本的系统包和编译二进制文件中。开发团队称,预计不会出现任何重大问题,因为 Rust 在 YJIT 支持的每个平台上都得到了很好的支持。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220421A03AZF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券