【Rust日报】2026-09-11 Microsoft 将 Rust 定为 Tier-1 语言
内容提要
微软将Rust列为内部Tier-1语言,推进rustc_codegen_utc后端,自Rust 1.90起可自托管,已有超100个仓库使用。Dioxus团队加入Cognition,继续维护Dioxus、Blitz等项目。Brown大学论文比较各语言async/await设计差异,归纳九个语义维度。gccrs月报显示其在编译core与Linux内核上取得进展,当月合并79个PR。
延伸解读
微软 Tier-1 背后的工程意义
微软将 Rust 定为内部 Tier-1 语言,意味着其获得了与 C++、C#、TypeScript 同等的全链路支持,包括安全工具链、开发者工具、质量流程和平台集成,并满足 Microsoft SDL 合规要求。这不仅是语言地位的提升,更代表微软在内部工程体系中为 Rust 铺平了从开发到上线的道路,降低了团队采用 Rust 的迁移与维护成本。
rustc_codegen_utc 的定位与价值
rustc_codegen_utc 是 rustc 的替代代码生成后端,将 Rust 编译器连接到微软的 MSVC 后端(UTC)。其目标包括与 Windows 工具链和 ABI 高度兼容、支持二进制加固与安全特性、链接后合规分析、热补丁、混合 Rust/C++ 项目互通等。通过复用现有 MSVC 技术栈,避免了为 Windows 能力重复造轮子,自 Rust 1.90 起可自托管,已有超 100 个微软仓库使用。
Dioxus 团队加入 Cognition 的影响
Dioxus 团队加入 Cognition 后,将继续维护 Dioxus、Blitz、Taffy、Subsecond 等开源项目,但无法将所有时间投入 Dioxus。Blitz 负责人 Nico Burns 将全职维护改进 Dioxus。团队此前累计融资约 350 万美元,加入 Cognition 后可在无商业化压力下继续开发。此举可能加速 Devin 的云端编程代理能力,同时 Dioxus 生态的长期维护得到保障。
async/await 设计差异的启示
Brown 大学论文比较了多种语言中 async/await 的设计差异,归纳出九个语义维度,如 Eagerness、Extent、取消行为等。同一段伪代码在七个现代异步运行时中产生四种不同输出,且没有两个运行时输出完全一致。这表明 async/await 并非统一标准,语言设计者在任务生命周期、取消传播等方面的选择会显著影响可观察行为,开发者在跨语言迁移时需注意这些语义分歧。
Q&A
微软将 Rust 定为 Tier-1 语言意味着什么?
Tier-1 意味着 Rust 在公司内部与 C++、C#、TypeScript 并列,内部团队有从本地开发到上线的完整铺路:安全工具链构建、开发者工具、质量流程、平台集成,以及满足 Microsoft SDL 合规要求。
rustc_codegen_utc 是什么?它的目标有哪些?
rustc_codegen_utc 是 rustc 的替代代码生成后端,把 rustc 接到 MSVC 后端(UTC)。目标包括与 Windows 工具链和 ABI 的高兼容、二进制加固与安全特性、链接后合规/分析/热补丁、混合 Rust/C++ 项目互通、跨语言内联与 SPGO、调试与 crash dump、剖析与覆盖率等。
Dioxus 团队加入 Cognition 后,Dioxus 和 Blitz 还会继续维护吗?
会。Dioxus 团队加入 Cognition 后,会继续开发 Dioxus、Blitz、Taffy、Subsecond,并维护相关开源项目。Blitz 负责人 Nico Burns 全职维护改进 Dioxus。
Brown 大学论文中归纳的 async/await 设计维度有哪些?
论文归纳出九个影响可观察语义的设计维度,按任务生命周期分为三类:生命起点(Eagerness、Suspension)、生命终点(Extent、Reference Strength、Destruction、Propagation)、取消(Awareness、Direction、Persistence)。
gccrs 在 2026 年 8 月取得了哪些进展?
8 月在编译 core 与 Linux 内核两条线上都有进展:完成 Late name resolution 里程碑后进入 Lowering,修完该阶段在编 core 时暴露的问题,并转入类型检查错误。内核侧重做 external crate 处理,补内核依赖的 nightly 特性。当月合并 79 个 PR。
gccrs 目前还有哪些待处理的特性?
仍待处理的特性包括 ExtractIf、泛型参数推断、无符号 is_multiple_of、arbitrary self types / Receiver、#[used](及带参数形式)、CFI 类型编码覆盖、CoercePointee 等。