未来已来|人工智能与数据库融合发展分论坛议程初探 了解详情
写点什么

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

评论

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

在线文档软件哪个好?5个好用的协同文档app推荐!

彭宏豪95

团队协作 在线文档 在线白板 在线协同文档 效率软件

软件测试/测试开发/全日制/测试管理丨Allure测试报告特点与优势

测试人

软件测试

🛠 开源即时通讯(IM)项目OpenIM源码部署指南

Geek_1ef48b

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

股市老人

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

加密眼界

2024-01-10:用go语言,给你一个下标从 0 开始的二维整数数组 pairs 其中 pairs[i] = [starti, endi] 如果 pairs 的一个重新排列 满足对每一个下标 i

福大大架构师每日一题

福大大架构师每日一题

网易首款鸿蒙原生游戏《倩女幽魂》手游完成开发,商业化版本已就绪

新消费日报

Programming Abstractions in C阅读笔记:p242-p245

codists

PreparedStatement实践和批处理实践

FunTester

文心大模型融入荣耀MagicOS!打造大模型“端云协同”创新样板

爱编程的喵喵

软件测试/测试开发全日制|Pytest结合yaml实现数据驱动

霍格沃兹测试开发学社

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

西柚子

端侧AI的“春风化雨手”,翻开中国科技下一页

脑极体

AI

可编程线性霍尔传感器 IC

芯动大师

2023 IoTDB Summit:天谋科技高级开发工程师张金瑞《筑其形:如何轻松搞定 IoTDB 数据建模》

Apache IoTDB

软件测试/测试开发全日制|Pytest结合Excel实现数据驱动

霍格沃兹测试开发学社

数字化转型究竟是什么意思?

高端章鱼哥

数字化

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

大瞿科技

吃人血馒头 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

EOSdreamer111

C 语言文件读取全指南:打开、读取、逐行输出

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

Python陷阱-如何安全地删除列表元素?

这我可不懂

Python

Kubernetes Pod配置:从基础到高级实战技巧

互联网工科生

Kubernetes

从像素到洞见:图像分类技术的全方位解读

不在线第一只蜗牛

机器学习 深度学习 图像 项目开发

关于AI PC,英特尔CEO帕特·基辛格说了三个法则

E科讯

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

BlockChain先知

如何利用 NFTScan Portfolio 功能分析钱包 NFT 持仓

NFT Research

NFT NFT\ NFTScan

🛠 开源即时通讯(IM)项目OpenIM源码部署指南

Geek_1ef48b

坎昆升级在即,ZKFair 已开启 ZKF 质押

股市老人

传统 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

石头财经

软件测试/测试开发全日制培训|Pytest的异常处理

霍格沃兹测试开发学社

吃惯人血馒头的 VC 机构,是否还能在 Fair launch 的散户牛市中胜出?

长安区块链

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