GCC Rust 获批将被纳入主线代码库,或将于 GCC 13 中与大家见面

Posted CSDN资讯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GCC Rust 获批将被纳入主线代码库,或将于 GCC 13 中与大家见面相关的知识,希望对你有一定的参考价值。

整理 | 彭慧中       责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

GCC(GNU Compiler Collection,简称为GCC)指导委员会已经批准了 GCC Rust 前端,该前端由 GNU 编译器套裝提供 Rust 编程语言支持。GCC 指导委员会宣布,Rust 前端“GCC Rust”适合被纳入 GCC 主线代码库,并且可能会在明年的 GCC 13 发布之前被合并到主线当中。

GCC Rust的茁壮成长

GCC Front-End For Rust(也称为 GCC Rust)是 Rust 语言在 GCC 之上的一个完整替代性实现,目标是成为 GNU 工具链的上游。官方的 Rust 编译器实现是基于 LLVM 的,而 GCC Rust 是一个前端项目,与 LLVM 不同的是该编译器将获得对所有 GCC 内部中端优化通道的完全访问权。与 GCC 的紧密结合的项目往往能够从 GCC 插件中受益。当然 GCC 也会带来对更多目标架构的支持,基于 GCC 的 Rust 编译器将使 GCC Rust 在新的平台上更加容易启动。

在这个项目创立时,Rust 还处于 0.9 版本,随着 Rust 语言已经足够稳定,创建替代性编译器的绝佳时机已然到来。从 2020 年 11 月开始,开发者 Philip Herron 就已全职从事 GCC Rust 的开发工作,在他和整个社区的共同努力下,GCC Rust 正逐渐进入主线。

该项目仍处于早期阶段,目标是率先实现编译官方的 Rust 测试套件,社区希望在 GCC 13 中对 Rust 编程语言至少有“测试”级别的支持,而 GCC 13 将在明年 4 月左右作为稳定版发布。

Rust 的设计准则为 “安全、并发、实用“,在确保性能和原生编译语言一样的同时,能够实现内存安全。这样的特性也促使如今有越来越多的公司开始使用 Rust 编程语言,支持 Rust 项目。Rust for Linux 也有望在 Linux 5.20 中实现。

开发者们的呼声

消息一经发出便引发了 400 多位开发者在 Haker News 上的热烈讨论,很多开发者都欢天喜地的庆祝这一喜讯的到来。

一名开发者表示:“这真是太好了!GCC 对 Rust 的支持使得 Rust 打开了更多的平台,实现更多的目标,以及更容易与围绕 CGG 构建的各种通用嵌入式工具链集成的机会。而且 GCC 是自由软件,这对于那些关心它的人来说很重要。”

图源Haker News

然而也有一些开发者对此抱有疑虑:“为编程语言配备多个编译器的好处是什么?有没有这样的情况:GCC 编译的 Rust 程序会做一些 LLVM 不能做的事情?这不会导致 Rust 生态系统的分裂吗?”

图源Haker News

这样疑虑也被一众开发者争相解答。一名开发者表示:“1. GCC比LLVM有更多的后端。2. 一般来说,竞争是好事。3. 预计这将引发GCC和rustc(Rust 编程语言的编译器)之间的不一致;因为Rust并没有一个真正的规范。这将迫使双方讨论并解决这些问题。”

图源Haker News

另一名开发者也回应道:”一个好处是,它迫使语言阐明标准,而不是由实现来定义功能集。标准往往会给语言带来稳定性和持久性,同时也使编写新的编译器成为可能,并使其更加可移植。“

图源Haker News

总的来说,GCC Rust 的成长承载了诸多的期待,到明年 4 月份左右,或许就能于 GCC 13 中与其相见,那么各位开发者们,你们如何看待 GCC Rust 呢?

参考链接:https://gcc.gnu.org/pipermail/gcc/2022-July/239057.html


 

— 推荐阅读 —

☞金山回应“WPS 会删除用户本地文件”;腾讯游戏:未成年人暑假只能周五六日打游戏;ios 16公测版发布|极客头条
☞2 小时写了篇论文,凭什么 GPT-3 不配拥有姓名?
☞“如果没有从事研发,学习自动化的我可能在装水表”

以上是关于GCC Rust 获批将被纳入主线代码库,或将于 GCC 13 中与大家见面的主要内容,如果未能解决你的问题,请参考以下文章

Velodyne Lidar将被纳入罗素2000指数

峰创时代-最新!深圳地铁中轴线22号线已经获批,这个区域的发展要腾飞!

深港通正式获批,提前布局受益股

传感器接口测试规范国家标准获批正式发布

友邦人寿可观测体系设计与落地

如何在编译为 WebAssembly 的 Rust 库中使用 C 库?