Redian新闻
>
GCC 13即将发布,将不会引入对Rust的支持

GCC 13即将发布,将不会引入对Rust的支持

公众号新闻
出品 | OSC开源社区(ID:oschina2013)
第一个官方 GCC 13 版本即将发布,但 GCC 的 Rust 前端项目 gccrs 却不会如期出现在此版本中。
去年 12 月,Gccrs 被批准合并到 GCC 主线,所有 gccrs 代码也都被合并到了 GCC 13 上游代码库中。但时至今日,编译器仍未就支持 Rust 做好准备。开发人员 Philip Herron 和 Arthur Cohen 发文解释称:

我们的期望是,通过明确表示编译器仍未为真正的 Rust 代码做好准备;可以从早期用户那里得到有价值的反馈,以及来自两个不同社区(Rust 社区和 GCC 社区)的更多参与。我们计划在最后的发布期限之前尽可能的完成更多工作,但现在 GCC 13.1 版本已经来临,我们在完整性方面仍然没有达到目标。


这意味着当使用 gccrs 时,你仍然无法实现如 “Hello World!” 之类的 “easy Rust things”,也不能使用常用的标准库。同样,对于 Rust 编程语言必不可少的更复杂的概念(如 borrow-checking)也尚未实现;如果没有这些功能, gccrs 将不会被认为是完整的。我们认为这会给不知情的用户带来很多困惑,他们可能会将 gccrs 视为官方 GCC 版本的一部分,并期望得到一个可用的编译器。

公告指出,gccrs 未在 GCC 13 中准备好,跟 Rust 本身 “nothing will work, unless everything works” 的严格设计脱不了干系。Rust 标准库可以被看作是几个相互依赖的 crates,其中两个主要组成部分是 core 和 alloc。就目前而言,gccrs 还不能编译其目标版本的 core crate;虽然 Philip 正在推进该方面的工作,但这一落后还是 “严重影响了我们的类型系统和编译器中的第二个中间表示”。
另一方面,尽管开发人员旨在以 Rust 1.49 版本的核心库为目标,但也需要实现那些在 Rust 的后期版本中才稳定下来 (或者说至今仍可能是不稳定的) 的功能。为此,开发人员需要进行大量的调查工作。其举例称,用户可能希望 gccrs 处理这样一个代码片段:
fnmain() {
println!("Hello, world!");
}
但 gccrs 目前根本不能实现。“如果你对 Rust 有一点了解,你就会知道 println! 是一个宏调用。宏是很复杂的,但也是非常强大的。我们已经对它们进行了一段时间的研究,一些更复杂的功能仍未正确实现...... 虽然所有这些看起来都很容易理解和使用,但 Rust 编译器必须做很多工作来处理这些宏调用!”
值得一提的是,开发团队最近也开始了 Rust 过程宏 (Procedural Macros) 的相关工作,由 Pierre-Emmanuel Patry 领导。
Philip 和 Arthur 在公告中表示,虽然没能赶上 GCC 13 的发布,但他们依然对 gccrs 未来的进展充满信心。该团队计划在未来几个月里专注于 core crate 以及 borrow-checker 的实现,并开发一些必要的工具来尝试通过 Rust 1.49 testsuite。
其目标是在下一个主要的 GCC 版本 (即 GCC 14) 中,将 Rust 1.49 版本的标准库与编译器一起发布,并希望向后移植足够多的更改到 GCC 13 分支,以便在 GCC 13.2 发布时使 core crate 能正常运行。这将使用户能够轻松地开始为 #![no_std] Rust 程序和一些嵌入式目标尝试编译器。

我们已经花费了大量时间完成与 GCC 上游的初步合并,这是一项不需要重复的工作。使得我们能够更加专注于 GCC 14 的编译器开发,并使我们能够轻松地将补丁推送到上游。这段时间将用于生产更高质量的编译器,并有望接近一个真正的 Rust 编译器。这也提高了项目的知名度,有许多文章都是关于我们对上游的各种推动。


我们将继续努力为 GCC 制作一个高质量的 Rust 编译器前端,并将坚持我们现有的原则:我们要尊重 Rust 编程语言,不以任何 way、shape 或 form 伤害它。gccrs 的目标不是要规避围绕 Rust 语言的各种程序,也不是为那些应该是无效的 Rust 代码提供一个 escape hatch。我们以 rustc 为指导,并将继续把这两个编译器之间的每一个差异视为 bug。

此外,他们还邀请更多有志之士加入其核心团队,或者提供一些赞助。
更多详情可查看完整公告:https://rust-gcc.github.io/2023/04/24/gccrs-and-gcc13-release.html


END



“游戏发行版” Manjaro Linux用户正在迅速流失


🌟 活动推荐


2023 年 5 月 27-28 日,GOTC 2023 全球开源技术峰会将在上海张江科学会堂隆重举行。

为期 2 天的开源行业盛会,将以行业展览、主题发言、特别论坛、分论坛、快闪演讲的形式来诠释此次大会主题 ——“Open Source, Into the Future”。与会者将一起探讨元宇宙、3D 与游戏、eBPF、Web3.0、区块链等热门技术主题,以及 OSPO、汽车软件、AIGC、开源教育培训、云原生、信创等热门话题,探讨开源未来,助力开源发展。

长按识别下方二维码立即查看 GOTC 2023 详情/报名。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
两性交往,男人这3个方面越厉害,越让女人念念不忘Slint 1.0 正式发布,基于 Rust 的 原生 GUI 工具包已成熟Rust 社区管理再起“内讧”:RustConf 粗暴撤换主讲人事态升级引发多人出走Next.js + Rust 革新全栈开发,Rust没那么难该如何支持国产软件发展?他说:使用是最大的支持!谷歌模型支持手机上跑Stable Diffusion;普华永道砸10亿美元投资AIGC;天翼云将推出大模型丨AIGC大事日报Rust 基础系列 #2: 在 Rust 程序中使用变量和常量 | Linux 中国从ST的多款新品发布,看MCU的发展趋势美团闪购&华润雪花:2023即时零售酒类白皮书将 sudo 和 su 移植到 Rust,Rust 要重写万物?亚裔选举特别报道: 金海伦宣布获得波士顿市长吴弭和支持亚太裔选民的团体的支持中国团队自动驾驶大模型斩获CVPR最佳论文;Stability AI推出新文生图模型;京东大模型即将发布丨AIGC大事日报Linux 6.3彻底移除英特尔ICC编译器的支持代码ACC前瞻丨ACC新版明智诊疗推荐清单发布,这5件事不能做!在初春的雨天Rust 基础系列 #4: Rust 中的数组和元组 | Linux 中国Rust 基础系列 #5: Rust 中的函数 | Linux 中国Vite 4.3正式发布,性能提升,为应对Rust写的Turbopack?易中天:“上海人和非上海人,几乎一眼就能区分开来”ACC 2023即将开幕,大会主席带您领略这些精彩内容,敬请期待!奥纬咨询:2023即时零售冰品冰饮趋势白皮书壹号本 OnexPlayer 3 in 1 PC 掌机新品即将发布,搭载英特尔酷睿 i7-1370P 处理器已进入对俄“战备状态”?北约冷战以来最详细秘密作战计划曝光! 拜登支持乌战后加入北约计划Rust 基础系列 #7: 在 Rust 中使用循环 | Linux 中国注册须知丨第二十六届全国介入心脏病学论坛暨第十二届中国胸痛中心大会(CCIF&CCPCC2023)医疗|One Medical 招人Rust 基础系列 #1: 创建并运行你的首个 Rust 程序 | Linux 中国不该走的人正被逼走,RustConf粗暴撤换主讲人事态升级引发多人出走,根源出在Rust领导小组不愿交权?CCIF&CCPCC2023开幕式丨二十六载薪火相传,万众一心接续奋斗Rust 基础系列 #8:编写里程碑 Rust 程序 | Linux 中国冰箱终于到货了基于Rust的高性能编辑器Zed,在玩一种很新的 “开源”探讨大前端新趋势,GOTC 2023即将召开Rust 基础系列 #3: Rust 中的数据类型 | Linux 中国荣耀新款 MagicBook 14 笔记本即将发布,代号“三叉戟”
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。