写点什么

Rust 1.3 提升了 API 的稳定性

  • 2015-10-09
  • 本文字数:1135 字

    阅读完需:约 4 分钟

近日,Rust 核心团队发布了 Rust 1.3 稳定版,该版本提升了 Rust 语言的性能及 API 的稳定性。

在 Rust 官方博客文章" Rust 1.3 发布"中,团队介绍说, 该版本的发布使得 Rust 语言的稳定性有了大幅提升, 这其中"包含了新的 Duration API 函数以及对 Error 和 Hash/Hahser 的改进", 未来对 std::time 模块的改进有望在 1.5 版本中实现。

负责 Duration 稳定性方面工作 ( commit 26818 ) 的 Rust 语言开发人员 Steven Fackler 说,std::time 模块和 Duration 类型的稳定性都得到了加强。Fackler 强调说,Duration::span 仍然不稳定,Duration 的 Display 实现方法被删除了, 原因是"它还在反复修改中并且所有关于稳定类型的功能实现事实上还算是稳定的"。

Fackler 指出,这个提交会影响到任何使用 Duration 的 Display 实现的开发者。

继今年五月 Rust 1.0 的发布,Rust 迎来了一个快速编译时代以及对于DST( dynamically-sized types ) 的全面支持。1.3 版本的发行说明重点强调说"新对象的默认生命周期开始于在对新对象生命周期变化的一个警告周期之后"。这是一个有可能影响其他功能的变化,例如将 &'a Box<Trait>&'a Box<Trait+'a>解释为&'a Box<Trait+'static>

关于这个变化,开发者 Aaron Turon RFC1156 文档中说道:

“当我们开始着手建立默认的对象边界时,[RFC599](https://github.com/rust-lang/rfcs/blob/master/text/0599-default-object-bound.md) 文档规定&'x Box(和&'x mut Box)应该扩展为&'x Box<Trait+'x>(和&'x mut Box<Trait+'x>)。相对于那种出现在引用之外的 Box 类型,这种类型默认使用static (Box<Trait+'static>。做出这个决定的原因是,这么做意味着按照此类格式书写的函数可以接收更多的对象。”

Rust 1.3 稳定版同时还提供了一些性能方面的改进,包括使用双路算法 (two way) 提升子字符串的搜索速度并将此做成固定的 API,性能远超之前的实现方法。

其他值得关注的改进还包括“对于提升 Vec::resize 和 Read::read_to_end零字节填充速度的改进。”

提到 bug 25483 (使用 StrSearcher 完成原始字符串搜索), Rust 开发者 bluss 说"双路搜索算法的常量空间开销非常小,不需要动态分配空间。我们的实现方法速度很快,尤其是当算法需要使用额外的的字节空间时,通常这些空间用来为许多不匹配情况 (no-match cases) 提高搜索速度"

Rust 1.3 同时还提供了对Windows XP lint capping 的支持。更多详细内容请参考发行说明

查看英文原文: Rust 1.3 Brings Stabilisation for APIs


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-10-09 19:002202

评论

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

用上ConcurrentHashMap,就没有并发问题了?

海拉鲁

Java 并发

Java-技术专题-LocalDate和LocalTime和LocalDateTime

码界西柚

程序员什么时候就该辞职了?

Java架构师迁哥

架构师训练营 - 第 6、7、8、9、10 、11、12、13周学习总结(1 期)

阿甘

JVM 源码解读之 CMS GC 触发条件

AI乔治

Java 架构 JVM GC

架构师训练营 -week06-作业

大刘

极客大学架构师训练营

蚂蚁金服首发887页Java面试宝典!还原真实面试情景+面试题

Java架构追梦

Java 编程 架构 面试 蚂蚁金服

【得物技术】一文读懂Vue生命周期

得物技术

Vue 生命周期 得物技术部 得物 钩子函数

K近邻算法:机器学习萌新必学算法

华为云开发者联盟

学习 算法

数字货币交易所系统开发技术

薇電13242772558

区块链 数字货币

TronChain波场链合约系统开发技术

薇電13242772558

区块链 智能合约

LeetCode题解:78. 子集,递归+for循环+回溯,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Java-技术专题-volatile关键字

码界西柚

京东推荐系统中的兴趣拓展如何驱动业务持续增长?

京东科技开发者

算法 推荐系统 知识图谱

使用 Maven Archetype 基于 IDEA 快速创建项目

程序员小航

Java maven 开发 项目 Archetype

Week 6 命题作业

阿泰

从实际案例聊聊Java应用的GC优化

AI乔治

Java 编程 架构 JVM GC

Java-技术专题-Object克隆方法解析

码界西柚

叼!阿里Mysql三位封神专家总结800页性能优化的千金良方

996小迁

Java MySQL 编程 架构 面试

直播带货需要运营者实名验证:规范行业有利于健康发展

石头IT视角

英特尔第十一代处理器 (代号Rocket Lake-S) 架构详情

E科讯

Redis可以做哪些事?

Java旅途

redis

JavaScript 对象 — 重学 JavaScript

三钻

Java 大前端 对象

第二周作业

小兵

第二周总结

小兵

GitHub上最励志的计算机自学教程(重制版),前端小白到亚马逊工程师

沉默王二

GitHub 学习 程序员 面试

创新方案百花齐放,英特尔助力2020 EdgeX中国挑战赛推动智能边缘行业创新及人才发展

E科讯

Javassist实现JDK动态代理

AI乔治

Java 编程 架构 jdk

架构师训练营第六周作业

Shunyi

极客大学架构师训练营

对抗验证概述

计算机与AI

学习 数据验证

手撕面试题:多个线程顺序执行问题

大头星

Java 面试 多线程

Rust 1.3提升了API的稳定性_开源_James Chesters_InfoQ精选文章