AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

设计模式-策略模式

京东科技开发者

分布式 UI 自动化测试环境部署实践:使用 Docker 快速构建测试平台

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

测试

暴跌的「优必选」,持续融资、高估值的人形机器人创企

机器人头条

科技 人形机器人 优必选 具身智能

【YashanDB知识库】审计表UNIFIED_AUDIT_TRAIL出现YAS-00220 utf8 sequence is wrong

YashanDB

数据库 yashandb

CAD图层管理器是干什么的?怎么使用?

在路上

cad CAD看图软件 CAD看图王

Milvus×全诊通:从导诊到智能超声,如何将人效比翻倍

Zilliz

医疗行业 向量检索 多模态 Milvus rag

手把手教你为Docker Compose启动的Milvus部署监控

Zilliz

Grafana Milvus Promethues 监控部署

阿里巴巴1688 API接口深度解析:商品详情获取与按图搜索商品(拍立淘)实用指南

代码忍者

1688API接口

致全体用户:2024 年,TapData 的五周年,我们在海内外市场埋下了两颗新的种子

tapdata

实时数据 金融数字化 物化视图 TapView

OpenTiny2024年终总结~

OpenTiny社区

开源 前端 低代码 组件库 OpenTiny

【YashanDB知识库】YashanDB run.log中有slow log queue is full信息

YashanDB

数据库 yashandb

Docker Compose 实战:如何使用 Docker Compose 进行多容器应用编排

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

测试

数百名研发人员使用通义灵码,33% 新增代码由 AI 生成,信也科技研发模式焕新升级

阿里巴巴云原生

阿里云 云原生

Docker 网络模式实战:从 Bridge 到 Host 再到 Container 的配置与应用

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

测试

微店API接口深度探索:如何高效获取商品详情及代码实践

代码忍者

微店商品详情API接口

黄仁勋:通用机器人的ChatGPT时刻即将到来!马斯克:YES!!

机器人头条

英伟达 科技 ces 人形机器人 具身智能

【YashanDB知识库】kettle做增量同步,出现报错:Unrecognized VM option 'MaxPermSize-256m'

YashanDB

数据库 yashandb

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