【ArchSummit架构师峰会】基于大模型的基础框架、中台、应用层等专题全覆盖 >>> 了解详情
写点什么

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

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

关注

评论

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

LeetCode题解:22. 括号生成,递归先生成再过滤,JavaScript,详细注释

Lee Chen

大前端 LeetCode

[周末荐片]Undercover Billionaire

亚伦碎语

生活

有符号类型引发的奇怪现象

jiangling500

Java 中的反射是什么

Rayjun

Java 反射

ARTS Week13

丽子

第四周作业

icydolphin

极客大学架构师训练营

架构师训练营第三周课后练习

薛凯

架构师训练营第一周课后练习

薛凯

分布式系统中的CAP、ACID、BASE概念

编程 分布式

如何设计一个牛逼的API接口

Java旅途

Spring Boot API

第四周 系统架构作业

蓝黑

极客大学架构师训练营

COSCon'20 & Apache Roadshow 来了,数据技术专场欢迎您

代立冬

轻量级业务中台开发框架,以DDD思想为基础,融合中台核心要素,赋能中台建设

高鹏

中台 业务中台 DDD 框架 中台架构

SpringBoot整合Jpa项目(含Jpa 原生sql语句介绍)

小Q

Java 架构 微服务 springboot jpa

京东区块链之供应链应用篇:溯源应用结合区块链能碰撞出什么火花?

京东科技开发者

区块链 供应链

架构师训练营第四周总结

薛凯

spring-boot-route(十七)使用aop记录操作日志

Java旅途

Spring Boot aop

5张表的sql整懵阿里p7:你们能看明白自己写的啥吗?

小Q

MySQL 数据库 学习 调优 mycat

Flink处理函数-6-4

小知识点

scala 大数据 flink

架构师训练营第四周作业

Shunyi

极客大学架构师训练营

架构师训练营第四周课后练习

薛凯

架构师训练营第一周总结

薛凯

十三、深入Python字典和集合

刘润森

Python

第四周学习代码系统架构总结

三板斧

阿里云服务器搭建

时间是一个人最好的证明

阿里云 服务器 域名

从格力直播看品牌商的渠道变革

boshi

数字化转型 品牌 直播带货 优化业务

Go 语言内存管理三部曲(二)解密栈内存管理

网管

堆栈 内存管理 内存布局 Go 语言

2020.10.05-2020.10.11 学习总结

icydolphin

极客大学架构师训练营

来点不一样的: 精选200个Java技术面试真题,详解应聘Java程序员常见考点,在Github上标星89.6K

996小迁

编程 程序员 架构 面试

架构师训练营第三周总结

薛凯

学习笔记丨数据结构与算法之贪心算法

Liuchengz.

贪心算法

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