写点什么

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:002499

评论

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

高手来啦!十八般武艺保护你的Web应用

云计算

Linux 入门篇 —— 重定向与管道符

若尘

Linux 管道符 linux开发

LeetCode题解:718. 最长重复子数组,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

基于matlab的控制系统与仿真4-判断系统稳定性

AXYZdong

matlab 2月春节不断更

教你如何在Python中读,写和解析CSV文

华为云开发者联盟

Python csv

技术干货 | 趣谈哈希表优化:从规避 Hash 冲突到利⽤ Hash 冲突

百度开发者中心

算法 数据结构和算法

Oracle sqlldr快速导入和sqluldr2快速导出

阳光下、慵懒的熊

数据库

产品0期 - 第五周作业

曾烧麦

产品训练营

处理XML数据应用实践

华为云开发者联盟

xml 数据库 数据 XML文档 GaussDB(DWS)

使用Kong作为微服务网关

行者AI

kong

【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦

华为云开发者联盟

sql 数据仓库 数据

第一篇文章

棉花糖

腾讯位置服务开发应用

我是哪吒

28天写作 2月春节不断更 腾讯地图 腾讯位置服务开发应用 腾讯位置

程序员成长第十二篇:做好项目计划

石云升

项目管理 程序员 28天写作 2月春节不断更

工作日志2-23

技术骨干

话题讨论 | 在中国程序员工作是青春饭吗?

happlyfox

话题讨论 2月春节不断更 话题王者

谁手握账本?趣讲 ZK 的内存模型

HelloGitHub

Java zookeeper ZooKeeper原理

揭开《钢铁侠》AI管家贾维斯神秘面纱的扛鼎之作!

博文视点Broadview

批量下载,我有妙解~

Viktor

JavaScript iframe 跨域

揭秘京东城市时空数据引擎—JUST如何助力交通流量预测

京东科技开发者

JUST 流量预测

Centos7配置librdkafka运行时

happlyfox

Centos 7 28天写作 2月春节不断更

华为云“网红”语言Python课程来啦!

华为云开发者联盟

Python

Kafka.07 - 性能优化介绍

insight

kafka 2月春节不断更

厘清 I/O 模型

sakila

网络编程 I/O

魔改出一个 Encoder | Rust 学习笔记(一)

李大狗

区块链 rust 入门

技术干货 | 中间件技术在百度云原生测试中的应用实践

百度开发者中心

底层技术 #技术干货#

云原生2.0时代:企业更应了解一下容器安全

华为云开发者联盟

容器 云原生 安全 漏洞

可能是Java Stream的最佳实践(二)

ES_her0

28天写作

开工来面试了几十个人,一言难尽

yes

面试

【LeetCode】转置矩阵Java题解

Albert

算法 LeetCode 28天写作 2月春节不断更

新思科技静态应用安全测试帮助Cryptsoft公司提高软件安全和质量水平

InfoQ_434670063458

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