2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Rust 1.12 带来中级 IR

  • 2016-10-19
  • 本文字数:862 字

    阅读完需:约 3 分钟

Rust 核心团队最近发布了稳定版的Rust 1.12,这是自从1.0 版发布后最重要的一次更新。此次发布的新版提供了用户翘首以待的中级IR(Mid-Level IR,MIR),为该编译器未来的进一步优化铺平了道路。

在博客文章 MIR 简介中,Mozilla 公司的 Niko Matsakis 称:

MIR 介于现有的 HIR(“高级 IR”,近似于一种抽象语法树)和 LLVM (“低级 IR”)之间。以前如果遇到某个相当大规模的操作步骤,编译器会在“翻译”过程中从业已成熟的 Rust 转换为类似于机器代码的 LLVM,但现在这一工作可以通过两个阶段完成,而经过大幅简化后的 Rust,即 MIR 恰好居于这两个阶段之间。

Rust 的开发者 Steve Klabnik简化后的翻译过程使得我们有机会直接对 MIR 执行各种新的优化。

尽管 Rust 团队认为 MIR 并未提供任何“用户可见”的内容,但 Matsakis 提到可以大幅改进编译速度,同时可支持增量编译,此外执行速度也更快,可支持更准确的类型检查。

最新的稳定版 Rust 也提供了大量用户可见的更新,包括全新格式的 Rustc 错误信息,如下所示:

该团队解释说:

[新的错误信息格式] 可以向开发者呈现有关为什么出错的大量内部知识,该版本会以用户代码为中心,并会高亮显示与错误有关的代码内容,同时可以通过注解描述具体的错误。

在新的错误信息格式中,我们会在显示错误信息的同时显示与该错误关系最紧密的代码内容。

最初这种形式的错误信息是为了帮助用户理解借用检查(Borrow-checking)错误,但我们发现这种格式也可以更广泛地用于各种类型的错误。如果想详细了解这种设计,请参考之前针对这一话题发布的博客文章

Mozilla 工程师 Jonathan Turner 在博客文章错误信息塑型时代即将到来中着重介绍了相关的改进,并称通过使用开发者编写的代码作为上下文,Rust 可以帮助用户更轻松地概括了解问题的所在。

1.12 版还有其他改进,例如 Cargo 的工作空间功能已经可以让一组 Rust 包共享同一个Cargo.lock文件,这样开发者便可以更容易地在一个版本中保持共享的依存性。

Rust 1.12 办完整的发布说明已公布至 GitHub ,新版可从这里下载。

查看**** 英文原文: Rust 1.12 Brings Mid-Level IR

2016-10-19 19:002536
用户头像

发布了 283 篇内容, 共 115.5 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

模块七课程作业

李晓笛

架构实战营

报名开启 | 2月25日,索信达监管合规产品线上发布会

索信达控股

元宇宙时代NFT的价值衡量

CECBC

java培训:JVM参数配置

@零度

JVM JAVA开发

架构实战模块7

Anlumina

「架构实战营」

幂等最佳实践

得物技术

数据 幂等 API 一致性 请求

数字货币或将消灭银行!未来3至5年,银行业可能将崩溃?

CECBC

Go学习笔记——同构复合类型

为自己带盐

Go 学习笔记 2月月更

吃到多样性红利的12种方法

永利app贵宾会网址

个人成长 思维模型 多样性

如何利用友盟平台定位安卓端的程序异常 | 社区征文

liuzhen007

移动开发 新春征文 2月月更

第七周

cqyanbo

MongoDB University 中文字幕视频上线!

MongoDB中文社区

mongodb

王者荣耀商城异地多活架构设计

supermenG

架构师训练营 4 期

模块七作业

novoer

「架构实战营」

什么字体更适合程序员?

lencx

程序员 字体设置 主题

“区块链”将彻底改变人类社会文明,颠覆世界最强大的企业

CECBC

MongoDB在vivo评论中台的应用案例

MongoDB中文社区

mongodb

【C语言】 初始函数 & 数组

謓泽

数组 C语言 函数 2月月更

「架构实战营」模块七《如何设计异地多活架构》作业

DaiChen

作业 模块七 「架构实战营」

架构实战营第 4 期第 7 课作业:王者荣耀商城异地多活架构设计

owl

「架构实战营」

面试突击23:说一下线程生命周期,以及转换过程?

王磊

Web Components 系列(十)—— 实现 MyCard 的基本布局

编程三昧

前端 组件化 2月月更 webComponents

数蛙DG-IoT开源平台

dgiot

物联网 2月月更 2月日更 dgiot dgiot物联网

8分钟了解TDengine的WAL机制

TDengine

数据库 tdengine 开源 物联网

模块七作业-王者荣耀商城异地多活架构设计

CH

架构实战 「架构实战营」

来喷一下所谓无影云电脑

乌龟哥哥

无影云电脑 2月月更

Linux系统编程-进程间通信(消息队列)

DS小龙哥

消息队列 2月月更

Kubernetes集群监控平台(kube-prometheus-stack/Metrics Server)搭建教程

山河已无恙

Kubernetes Kubernetes 集群 2月月更

王者荣耀商城异地多活架构设计

tony

「架构实战营」

模块七 - 王者荣耀商城异地多活架构设计

圈圈gor

架构实战营 「架构实战营」

架构训练营模块七作业

沈益飞

架构是训练营 架构师训练营 4 期

Rust 1.12带来中级IR_开源_James Chesters_InfoQ精选文章