写点什么

Rust 1.10,对引导、Panic 处理及更多特性的改进

  • 2016-07-14
  • 本文字数:986 字

    阅读完需:约 3 分钟

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

发布的Rust 1.10 引入了新的、旨在对开源版本更友好的引导方法。此外,该版本中添加的新特性还包括:用于panic 处理的构建选项,可提升编译器性能并降低生成二进制文件的大小;一种新的共享库格式;以及其它的一些性能改进。

Rust 引导方法,就是使用 Rust 编译器去编译其自身的方法。对于 Rust 1.10 版本,Rust 引导方法得到了更新,使得其不同于以往版本那样存在对一些不稳定 Rust 特性的依赖。使用不稳定特性的最大缺点在于,其中必定使用了某个特定的 Rust 编译器夜间版,这对于 Linux 发行版而言是不太理想的做法。事实上,许多 Linux 发行版在构建它们的软件包时,更愿意仅仅使用过往的打包版本,而非使用不可信的二进制版本文件。由此改进引发的一个结果是,现在 Rust 1.10 可从 Rust 1.9 版本编译而来。将来,Rust 的任何新版本将由当前的稳定版本所构建。例如,Rust 1.11 可构建自 Rust 1.10。

上文提及 Rust 1.10 引入了一个新的构建选项,该选项允许开发人员定义Rust 的panic!行为。默认情况下,panic!将触发堆栈解退,这对于编译器的性能和生成的二进制文件的大小引入了一些开销。虽然对于一些应用而言,异常终止也是处理异常问题的一个合理方法,但是为使Rust 程序退出而非堆栈解退,现在开发人员可以指定命令行选项-C panic=abort,或者在配置文件Cargo.toml 中添加panic=abort,这将为生成二进制文件的大小和编译时间带来10% 的改进。

此外,Rust 1.10 的新特性还包括 cdylib 打包类型,主要用可嵌入其它语言的库。dylib 作为现有的库格式,依然是 Rust 项目中首选的库格式。cdylib 与 dylib 主要不同之处在于:

  • cdylib 用于静态链接;
  • cdylib 中包含了元数据;
  • 类似于可执行文件,在 cdylib 库中可访问的外部函数是可见的标识;
  • cdylib 可使用 -C 编译选项,指定链接时优化

此外,Rust 1.10 还带来了若干性能改进,包括:

Rust 1.10 还包括了更多本文中所未提及的改进,可参阅其发行备注

查看英文原文: Rust 1.10 Improves Bootstrapping, Panic Handling, and More


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-07-14 19:001608
用户头像

发布了 227 篇内容, 共 72.4 次阅读, 收获喜欢 27 次。

关注

评论

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

HDFS SHELL详解(7)

罗小龙

hadoop 28天写作 hdfs shell

两种常见的减少信息不对称的办法

熊斌

学习 成长 28天写作

浅析Mysql数据库优化设计规范的“度”

三石

MySQL 28天写作

一个奇怪的 Elasticsearch 节点

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

OpenYurt v0.3.0 重磅发布:全面提升边缘场景下应用部署效率

阿里巴巴云原生

阿里巴巴 开源 容器 云原生 k8s

红牛交易所app系统开发

威掂l8929545452

区块链 系统开发 APP开发 红牛交易所

开发老人笔记:Git 常用命令清单

华为云开发者联盟

git 代码 bug

开发更便捷 阿里云推出一站式应用研发平台EMAS 2.0

移动研发平台EMAS

阿里云 Serverless AI 低代码 移动研发平台

百度智能小程序打造购票观影一站式体验,影视宣发新玩法助力行业复苏

DT极客

项目管理系列(2)-如何写好一份报告

Ian哥

项目管理 28天写作

微信视频号的排版,怎样才好看 | 视频号 28 天 (07)

赵新龙

28天写作

需求条目化:一个让用户故事有效落地的套路

华为云开发者联盟

敏捷 项目 需求条目化

BI项目失败?看看是不是缺少了这几项闭环!

博文视点Broadview

数据库表数据量大读写缓慢如何优化(2)「查询分离」

我爱娃哈哈😍

数据库 大数据 架构 后端 优化

自动驾驶汽车的发展史

anyRTC开发者

人工智能 自动驾驶 AI

流行的后台管理系统模板总结

老魚

程序员 建站 web全栈

碎碎念之「被误会的佛系,被遗忘的疯魔」

Justin

碎碎念 心灵鸡汤 28天写作 佛教

关于“面试造火箭,入职拧螺丝” Jan 14, 2021

王泰

28天写作

量化交易系统开发

威掂l8929545452

区块链 系统开发 量化交易系统 交易所

Java Optimizing 读书笔记(一)

绝影-大数据

避免短信接口被黑客刷取的方法

香芋味的猫丶

短信防刷 接口安全 短信验证码 短信防轰炸 短信防火墙

GaussDB(DWS)性能调优系列实现篇六:十八般武艺Plan hint运用

华为云开发者联盟

数据库 性能优化 sql GaussDB 算子

区块链轻节点:“身”轻,责任重

华为云开发者联盟

区块链 数据 数据隐私 轻节点

【HTML】已经废弃的align(图像对齐方式)

德育处主任

html html5 Web html/css 28天写作

Redis 学习笔记 03:字典

架构精进之路

redis 七日更 28天写作

Serverless 架构到底要不要服务器?

Serverless Devs

Java 云计算 Serverless 运维 云原生

解决Windows2012 R2下安装PostgreSQL报错的问题

PostgreSQLChina

数据库 postgresql 开源

区块链双仓合约交易所系统开发

量化对冲搬砖套利交易APP开发|量化对冲搬砖套利交易系统软件开发

系统开发

TypeScript 渐进迁移指南

LeanCloud

JavaScript typescript nodejs

Intel首次公布11代酷睿桌面处理器性能:8核i9斩落锐龙12核

科技新消息

Rust 1.10,对引导、Panic处理及更多特性的改进_语言 & 开发_Sergio De Simone_InfoQ精选文章