gccrs 将被集成到 GCC 13 中

GCCRS

gccrs 是 Rust 语言在 GCC 之上的完整替代实现

最近宣布,旨在为 Rust 语言提供 GCC(GNU 编译器集合)接口的“gccrs”项目正按计划集成到 GCC 13中。在本月初的 FOSDEM 开发者大会上,工程师 Arthur Cohen 就 gccrs 做了演讲,概述了该项目目前的进展情况。

对于不熟悉 gccrs 项目的人来说,它是基于 GCC 的 Rust 语言的完整替代实现,目标是完全集成到 GNU 工具链中。

这个项目的起源是几年前的社区努力,当时 Rust 还处于 0.9 版本; Mozilla 创建的语言经历了如此多的变化,以至于社区很难赶上。

现在语言已经稳定了,是时候创建替代编译器了:

“从 2014 年开始(并于 2019 年重新启动),这项工作自 2020 年以来一直在进行,我们付出了很多努力并取得了很多进展。 我们已经在 GCC 中上传了 gccrs 的第一个版本。 所以下次你安装 GCC 13 时,它里面会有 gccrs。

你可以使用它,你可以开始破解它,当它不可避免地崩溃并可怕地死去时,你可以报告问题。 我们正在做的一件大事就是努力让 rustc 测试套件发挥作用,”Arthur Cohen 在本月早些时候的 FOSDEM 会议上的演讲中说道。

成功运行 rustc 编译器测试套件仍然是我们的目标之一。据 Cohen 称,Rust 的 GCC 接口也支持较旧的 Rust libcore 版本 1.49。

gccrs 项目的常见问题解答指出,Rust 使用的所有 LLVM 构建技术“都缺少一些与 GCC 兼容的后端,因此gccrs 实现可以填补集成开发中的空白”。

但是请注意,Rust-GCC 编译器 (gccrs) 仍处于非常早期的阶段,还不能用于编译实际的 Rust 程序。

去年七月,GCC 团队投票通过了将 gccrs 集成到构建套件中的决议。该项目的重要性在于它对 Linux 内核的意义。事实上,Linux 内核通常使用 GCC 构建,但出于内存安全考虑,允许 Rust 语言与 C 语言一同用于内核代码的计划正在稳步推进。

“Rust for Linux”项目于去年 6.1 月正式合并到主要的 Linux 31 Git 树中,使 Rust 成为第二个专用于 Linux 开发的语言,经过 XNUMX 年的完全基于 C 的开发。

“我们希望 gccrs 成为一个真正的 Rust 编译器,而不是一个玩具项目或编译一种看起来像 Rust 但不是 Rust 的语言的东西; 我们真的在努力让这个测试套件发挥作用,”他补充道。 在演示过程中,Cohen 还表示,虽然 GCC 13 的 Rust 接口有了一个良好的开端,但仍有很多工作要做。 目前明显没有借用验证码,对内置和固有模块的支持仍在进行中,尚未达到为 Linux 编译 Rust 代码的重要里程碑。

需要提醒的是,Rust for Linux 项目旨在将一种新的系统编程语言引入 Linux 内核。专家指出,Rust 的一个关键特性使其非常适合作为 Linux 内核的第二语言:它能确保不会出现未定义行为(前提是不安全的代码是合理的)。

这包括不存在诸如释放后使用、双重释放、数据竞争等错误。 相关的争论围绕着放弃 C 以支持 Rust 语言的可能性展开。 但 Linux 的创始人 Linus Torvalds 表示,这并不是 Rust for Linux 项目的既定目标。

最后值得一提的是,尽管 gccrs 接口已合并到即将发布的 GCC 13 版本中,但它目前的状态还不足以让大多数 Rust 开发人员将其作为 Rust 官方 LLVM 编译器的替代方案。

它不应该到明年,至少 GCC 14 是这样。

来源:https://fosdem.org/


在 Google 中将其添加为首选来源