写点什么

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

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

关注

评论

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

Serato DJ Pro for mac 专业音乐利器,奏响动感旋律

理理

强大的 SVN 管理工具Cornerstone for Mac

Mac相关知识分享

AE脚本-一键快速输出GIF动图格式插件 GifGun

Rose

大咖公开课 | 解锁Kafka等消息队列中间件的测试之道

测吧(北京)科技有限公司

测试

和鲸科技同南京大学地理与海洋科学学院签署和鲸“101 数智领航计划”合作协议,助力“地理海洋科学+AI”人才培养

ModelWhale

人工智能 人才培养 学科建设 南京大学

聊聊公众号联动扫码登录功能如何实现

威哥爱编程

Java 微信公众号开发

MonitorControl for mac(一键外接屏幕亮度音量调节)

理理

Rhinoceros 7:3D 建模新巅峰

理理

不为人知的网络编程(十八):UDP比TCP高效?还真不一定!

JackJiang

即时通讯;IM;网络编程

人工智能进行图像处理Topaz Photo AI for Mac

Mac相关知识分享

Joelfamularo Phantom Luts(索尼相机视频调色LUTS预设)

Rose

06.动态代理设计模式

杨充

解锁Kafka等消息队列中间件的测试之道

霍格沃兹测试开发学社

DR5插件加强版 for Mac(ps磨皮滤镜) 中文版

Rose

bodymovin(AE动画导出json工具) v5.9.6汉化版

Rose

HyperWorks中的Size and bias 子面板

智造软件

仿真 CAE Hypermesh

MAMP PRO 永久使用版 Web开发环境

理理

MES系统在制造业智能化中的作用是什么

万界星空科技

智能制造 mes 制造业数字化 万界星空科技mes

Sketch for mac(专业矢量绘图设计软件)

Mac相关知识分享

大咖公开课 | 解锁Kafka等消息队列中间件的测试之道

测试人

kafka 软件测试 消息队列

和鲸科技 CEO 范向伟受邀揭牌启动南京大学 2024 级大学生人工智能素养大赛

ModelWhale

数据竞赛 以赛促学 南京大学

制造业数字化、信息化、智能化跟MES系统有什么关联?

万界星空科技

mes 万界星空科技mes 智能制造业 制造业工厂 生产信息化

Fork for Mac(Git客户端)v2.47激活版

理理

直接导入编辑MKV/MOV/FLV格式素材视频解码器AE/PR插件Influx

Rose

「四好」旗舰 安全共鉴 MAZDA EZ-6安全挑战拆车大揭秘

Geek_2d6073

Java Z 垃圾收集器如何彻底改变内存管理

威哥爱编程

Java ZGC JVM 垃圾回收

淘宝商品评价API的获取与应用

科普小能手

API 接口 API 测试 淘宝API接口 淘宝API 淘宝商品评论

SwitchResX for Mac:自定义分辨率、旋转屏幕、调整显示器色彩配置等

理理

牛客网最全1000道Java中高级面试题附答案详解,最全面详细,看完稳了

采菊东篱下

Java 面试

Cockos Reaper:专业数字音频制作利器

理理

Navicat for MySQL Mac(数据库管理开发工具)v16.3.4汉化版

理理

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