写点什么

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

评论

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

关于PHP内存溢出的思考

L

php

作为程序员,有哪些写作平台值得推荐 ?B站也算吧

邓瑞恒Ryan

学习 创业 写作 知识管理 自我提升

Iceberg 在基于 Flink 的流式数据入库场景中的应用

Apache Flink

大数据 flink 流计算 实时计算

Flink SQL 的 9 个示例

Apache Flink

大数据 flink 流计算 实时计算

转任管理岗位后,还要不要从事编码工作?

MavenTalker

团队管理 程序员 个人成长 职业规划

Java 代码的组织机制

michaelliu

Java

初文,大浪淘沙

傅丞 Tony

什么是全光架构?光纤KVM和分布式IP KVM系统知多少?

DT极客

在InfoQ开启写作之旅

张先亮-Hank

人工智能 随笔

PyFlink 社区扶持计划正式上线!

Apache Flink

大数据 flink 流计算 实时计算

LeetCode 120. Triangle

隔壁小王

算法 LeetCode

18个PPT,29个提问解答,都在这儿啦!

Apache Flink

大数据 flink 流计算 实时计算

原创 | DDD与分层

编程道与术

docker搭建lamp

刘磐石(刘坤鹏)

你的文章中为什么会有加粗的文字

小天同学

思考 写作 感悟

我入驻InfoQ平台啦

BlueblueWings

祝贺!两位 Apache Flink PMC 喜提 Apache Member

Apache Flink

大数据 flink 流计算 实时计算

工厂模式

Wen Wei

设计模式

哈希,茫茫人海,我一眼看到了你

dongge

Java 类

michaelliu

Java

Java 类构造函数的调用顺序

michaelliu

Java

最佳实践 | Flink Forward 全球会议抢先看!

Apache Flink

大数据 flink AI 流计算 实时计算

Flink 的经典场景和业务故事有哪些?看看他们就知道了

Apache Flink

大数据 flink 流计算 实时计算

聊聊技术人如何与甲方客户打交道

MavenTalker

程序员 程序人生 职业规划

技术人员能力养成手记

MavenTalker

个人成长 程序人生 职业规划

屏幕适配插件:ScreenMatch基本使用和注意事项

Arch

原创 | OOAD范例:配置类设计

编程道与术

经验可能反而阻碍你的新认知

孙苏勇

思考 读书

vue项目中遇到的依赖及其他问题

靖仙

Vue 大前端 Web

Flink 消息聚合处理方案

Apache Flink

大数据 flink 流计算 实时计算

Flink State 最佳实践

Apache Flink

大数据 flink AI 流计算 实时计算

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