写点什么

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

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

    阅读完需:约 3 分钟

发布的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:002194
用户头像

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

关注

评论

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

并发编程Bug的源头-原子性

Java架构师迁哥

架构师系列之6: python实现一致性hash

桃花原记

给,你们想要的内存溢出MAT排查工具

田维常

内存溢出

React 灵魂 23 问

局外人

Java 大前端 React

架构师训练营第 1 期 - 第九周作业

Todd-Lee

极客大学架构师训练营

一张图片一份文档,我想redis就到这里吧,剩下的只有实践了

小Q

Java redis 学习 编程 面试

第五周 - 作业

leo

极客大学架构师训练营

网络冲浪信任危机频发,区块链能否破局?

CECBC

区块链 征信透明

2021年Java程序员请先把这几项硬技能熟悉掌握,再想着跳槽拿高薪

Java架构之路

Java 编程 程序员 架构 面试

并发编程Bug的源头-原子性

996小迁

Java 程序员 架构 面试 并发编程

《ZooKeeper分布式过程协同技术详解》.pdf

田维常

电子书

区块链的新信任模式将重塑传统金融业

CECBC

区块链 资产流动性

接口的幂等性的多重考虑,你会了吗?

moon聊技术

Java 接口

奉劝各位准备面试的Java程序员耗子尾汁,赶紧扔掉网上那些千篇一律的面试题

Java架构之路

Java 程序员 架构 面试 编程语言

MySQL 连接为什么挂死了?

Java架构师迁哥

4年Java开发经验,从传统公司裸辞之后足足准备了3个月,终于拿到美团、京东、字节跳动等大厂offer

Java架构之路

Java 程序员 架构 面试 编程语言

LeetCode 热题 - 递归

helbing

LeetCode

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

Todd-Lee

极客大学架构师训练营

阿里内部“新鲜出炉”手慢无!首发面试终极指南V3.0,符合一线大厂面试知识点+面试题

Java架构追梦

Java 阿里巴巴 架构 面试 分布式

Redis 分布式锁原理看这篇就够了, 循循渐进

马丁玩编程

redis 架构 分布式 分布式锁

算法讲解|贪心算法的理解与分析

Java架构师迁哥

Spring Cloud Config 实现分布式配置中心

AI乔治

Java 架构 微服务 Spring Cloud

架构师训练营第 1 期第 9 周作业

好吃不贵

极客大学架构师训练营

《使用C ++的数据结构和程序设计》限时免费下载

计算机与AI

c++

用 Python 实现定时自动化收取蚂蚁森林能量

Python小二

Python

第五周-笔记

leo

极客大学架构师训练营

接口测试之json中的key获取

测试人生路

接口测试

五、一致性哈希算法

Geek_28b526

Nacos实战及其源码分析

Fox爱分享

Spring Cloud nacos spring cloud alibaba

MyBatis 面试题(附答案解析)

比伯

Java 大数据 编程 架构 面试

看“区块链”如何为外贸企业融资

CECBC

区块链 银行

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