写点什么

Rust 1.12 带来中级 IR

2016 年 10 月 19 日

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:001642
用户头像

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

关注

评论

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

关于招聘的一些思考

石云升

面试 考核 招聘 下放招聘权

游戏夜读 | 数据治理的悖论

game1night

TensorFlow 篇 | TensorFlow 2.x 分布式训练概览

Alex

tensorflow keras 分布式训练

一文快速入门分库分表

程序员内点事

Java 分库分表

工作五年,一年内我靠这系列java面试宝典从13K到大厂30K

Java成神之路

Java 程序员 面试 编程语言

因材施教,阿里腾讯大牛耗时7天,整理不同人群适合的面试题合集

小Q

Java 编程 程序员 架构 面试

进击的无源光网络:产业园区里的“追光者”

脑极体

行到瀚海阑干处,坐看华为云起时:中国互联网航海家的远大征程

脑极体

命题作业

黄立

设计模式

程序员陪娃漫画系列——修空调

孙苏勇

程序员人生 陪伴 漫画

架构师训练营第 1 期 - 第二周课后练习

Anyou Liu

极客大学架构师训练营

架构师训练营第 1 期第二周总结

Leo乐

极客大学架构师训练营

来不及解释了,快上车!快速开发平台,助力企业搭乘万物互联顺风车

Philips

敏捷开发 企业开发 互联网革命

〈Java开发手册(嵩山版)〉灵魂15问,深究Java规约背后的原理

Java成神之路

Java 编程 程序员 面试 阿里

AI小白必读:深度学习、迁移学习、强化学习别再傻傻分不清

华为云开发者社区

人工智能 学习 迁移

京东T8Java架构师分享Docker和Kubernetes开源书,PDF版免费下载

Java成神之路

Java Docker 程序员 面试 编程语言

一周信创舆情观察(9.14~9.20)

统小信uos

JAVA JDBC

Isuodut

云小课 | 不小心删除了数据库,除了跑路还能咋办?

华为云开发者社区

数据库 数据恢复 dba

【FastDFS】小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?

冰河

分布式存储 fastdfs

Week 2 Assignment

Yinan

架构师训练营 1 期 - 第二周作业(vaik)

行之

架构师训练营 1 期 - 第二周 - 设计原则

三板斧

极客大学架构师训练营

架构师训练营---第二周课后练习

Jacky.Chen

腾讯数据库专家多年运维经验凝聚成简,总结这份595页工作笔记

周老师

Java 编程 程序员 架构 面试

一个草根的日常杂碎(9月25日)

刘新吾

社会百态 生活随想 日常杂碎

Git 操作

老菜鸟

git

四年开发经验从美团、360、陌陌、百度、阿里、京东面试回来感想

Java架构师迁哥

Rust所有者被修改了会发生什么?

袁承兴

rust 内存管理 智能指针

SQL 如何做 Join

Rayjun

sql

【架构笔记之架构方法】架构师训练营第1期第1周

业哥

极客大学架构师训练营

4月17日 HarmonyOS 开发者日·上海站

4月17日 HarmonyOS 开发者日·上海站

Rust 1.12带来中级IR-InfoQ