返回

文章详情

2026年是Rust编译器(和我)令人兴奋的一年

Hacker News2026年10月20日 13:53

你可能已经注意到,2026年似乎是Rust编译器一个有些特别的年份。似乎有很多事情正在进行中。有些事情在我开始写这篇文章时就已经被宣布了,但还有许多事情并不那么明显。我将分享一些我个人觉得有趣的事情。为了稍微说明一下背景,今年发生的事情是,多个不同的倡议同时进入最后阶段。换句话说,2026年并没有那么特别,工作的量也不算太多,但这是一个我们看到几个长期投资开始带来回报的年份。 下一个求解器🔗 可能最大的事情是下一代特征求解器。这是类型系统一大部分的重新实现,并且经过了很长时间的努力 - 以各种形式将近十年。它修复了一些安全性漏洞,并解锁了许多特性和长期存在问题的修复。对于编译器来说,这个事情的重要性不容小觑。这项工作解决了许多编译器开发者梦寐以求的重大技术债务。它还让一些对类型系统有深刻理解的人能够投入到新事物的工作中。解锁的事情队列包括语言的许多常见痛点,甚至一些看似无害或无关的东西。其中包含了async Rust中的大问题的解决方案,或者impl Trait的各种限制。 Polonius 🔗 另一个重要的事情是Polonius,一个新的借用检查器实现,也经过了很长时间的开发。它使更多代码能够编译,并解锁几个相关的特性 - 包括(希望有一天可以实现的)内部引用。这对编译器的影响虽然不如新求解器那么大,但仍然是个大事。 性能 🔗 我主要关注的领域是编译器性能,在这里我们有很多事情正在进行。在经历了1-2年的停滞期(至少在结果方面)后,我们突然有很多事情同时发生。如此之多,以至于我很难记住所有事情,但我从头脑中回想起的一些要点: 并行前端接近稳定🔗 这是一个非常古老的项目,几年前由于许多不明确的阻碍而暂停。几年前,在新贡献者@SparrowLi的推动下,开发再次启动,并且随着时间的推移,还有其他许多人为这一努力贡献了力量。多年来,这个项目被证明是一个巨大的麻烦。我觉得几乎没有人对设计感到真正满意。然而,在可预见的未来,似乎没有更好的替代方案,而并行前端是高度期待的,因此解决方案最终是不断克服一系列恼人和棘手的问题,直到没有剩余的问题。目前的项目目标是由@petrochenkov推动,并且接近稳定。 LLVM变得更快🔗 LLVM 23是一个明确而出乎意料的大幅性能提升变化。很长一段时间,LLVM升级对rustc性能没有特别大的好处。这种情况在LLVM 10升级后发生了变化,该升级引入了一个巨大的10%的性能回退,而@nikic,当前LLVM的首席开发者,在他的博客文章《让LLVM再次飞快》中指出了这一点。在文章中,他还介绍了一个用于跟踪LLVM性能变化的系统,灵感来自我们用于rustc的系统。从那时起,LLVM开始更早发现性能回退,rustc的升级结果从“不那么糟糕”变为“有些混乱”,再到“主要是积极的,但有一些警告”。其中最后一个是LLVM 22,在icount基准测试中是绿色的,但在实际时间上几乎普遍是红色的。LLVM 23几乎完全是积极的。我对LLVM开发的关注不多,但我理解这是因为现在对于实际优化的工作增多了,而不是仅仅关注功能而不考虑性能回退。如今,改进来自新的优化(这些帮助优化编译器在引导期间的性能)以及LLVM自身变得更快。过去几个月中,性能改进持续稳定地出现(微观优化)🔗 编译器性能在过去几个月中保持了一系列稳定的改进。可能没有单一的解释,这仅仅是新的贡献者涌入,老的贡献者能够做更多性能工作,还有工具改进与架构清理相结合,解锁了新的机会。随着更多人参与这个领域,我注意到很多交叉推进的情况,某些想法会在几个人的思维中循环,大家彼此受到PR的启发,尝试相关的事情。我觉得我们在管理回归方面变得更加出色 - 评估和解决它们。这部分是对工具的投资,但同样也与过程和社会结构有关。这里的一个重大进展是树操作和性能评估之间的联系,特别是由@JonathanBrouwer代表的。这意味着管理合并的人往往会直接...

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡