写点什么

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

评论

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

云开发是啥?看看它在编程导航项目的实践

程序员鱼皮

Java JavaScript 大前端 后端 云开发

RestTemplate打印日志的正确姿势

编号94530

spring 日志 log RestTemplate

数组与链表

wzh

Java 数组 链表 ArrayList 数据结构与算法

常见Java容器对比

wzh

Java collection hashmap set map

线性排序

wzh

Java 排序算法 计数排序 基数排序 桶排序

5分钟速读之Rust权威指南(二十七)Rc<T>

wzx

rust

基于jira的需求交付效率统计

好孩子

Jira

北京多部门联合整治违规应用:过度收集用户信息该重罚

石头IT视角

Redis入门四:数据持久化

打工人!

redis redis持久化 6月日更

十年一剑智能眼镜的中场战事

脑极体

微信小程序开发(七)—— 版本管理的使用

空城机

微信小程序 大前端 6月日更

领域驱动设计101 - 领域服务

luojiahu

领域驱动设计 DDD

HashMap源码总结

wzh

Java map 数据结构与算法 HashMap底层原理 散列表

机器数及特点

若尘

计算机组成原理 6月日更

推荐算法概述(十五)

Databri_AI

算法 倒排索引 推荐系统

Reactive Spring实战 -- 响应式Kafka交互

binecy

kafka spring

【21-15】PowerShell条件判断

耳东@Erdong

PowerShell 6月日更

58集团 x StarRocks:全面升级数据分析能力,满足多场景业务分析需求

StarRocks

数据库 数据分析 OLAP 58同城 StarRocks

网络攻防学习笔记 Day52

穿过生命散发芬芳

网络攻防 6月日更

批量把Excel数据自动录入系统

木头

自动录入 批量录入 自动填表

☕【JVM技术探索】深入分析各种锁(锁膨胀)运作流程

码界西柚

JVM 锁升级 6月日更 锁分析

什么是OneData?阿里数据中台实施方法论解读

云祁

数据中台 数据仓库 OneData 维度建模

小红书 x StarRocks:实现数据服务平台统一化,简化数据链路,提升高并发极速查询能力

StarRocks

数据库 数据分析 广告系统 小红书 StarRocks

JavaScript 数组操作必须熟练运用的 10 个方法

devpoint

JavaScript array reduce 6月日更

ARTS - 日常打卡 6

pjw

银行业运维指标体系建设实战

云智慧AIOps社区

智能运维

如何用视频云技术,搞一个爆红的 “反应视频” 项目?

阿里云CloudImagine

阿里云 RTC 英特尔 视频处理 视频制作

Kubernetes手记(19)- 容器资源限制

雪雷

k8s 6月日更

业务架构训练营第 0 期模块五作业

菠萝吹雪—Code

架构实战营

微服务架构下的静态数据通用缓存机制

xcbeyond

缓存 微服务 6月日更

LinkedHashMap

wzh

Java 集合 LRU 数据结构与算法 LinkedHashMap

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