写点什么

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

评论

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

强大的JSON.stringify,你真的会使用吗?

战场小包

JavaScript 前端 3月月更

3月技术专题月火热开启!快来一睹为快!

用友BIP

用友 用友iuap

安全大讲堂 | 2022产业趋势洞察:网络安全的下一个十年

腾讯安全云鼎实验室

网络安全 未来发展

web前端培训:React 核心调度功能的实现

@零度

前端开发 React

Python二分查找,字符串模板,textwrap模块,每天写写Python自然就会了,每日Python第2天

梦想橡皮擦

3月月更

测性能,拿周边|OceanBase 3.1.2版本邀你来玩

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版

方舟开发框架容器类API的介绍与使用

HarmonyOS开发者

方舟 HarmonyOS 开发框架

构建 Go 应用 docker 镜像的十八种姿势

万俊峰Kevin

微服务 web开发 go-zero docker image Go 语言

为什么说程序猿也要有产品思维

慕枫技术笔记

技术思维 内容合集 3月月更

ScrollView 和 RelativeLayout两个布局技巧

逆锋起笔

android xml 3月月更 android布局

如何在windows下成功的编译和安装python组件hyperscan

华为云开发者联盟

正则表达式 windows hyperscan python组件 正则表达式引擎

功效护肤理念增强,透明质酸继续引领护肤热点

易观分析

护肤 医美 透明质酸

财富管理2.0时代,券商数字营销突围之路

Speedoooo

数字化转型 解决方案 营销数字化 数字化业务战略 数字营销

几种如何判断环境是否连上网方法!推荐最后一种

华为云开发者联盟

网络 nodejs ipv4 上网 网络接口

分布式数据库排序及优化

vivo互联网技术

分布式数据库

千万级学生管理系统的考试试卷存储方案

Geek_8d5fe5

「架构实战营」

一图了解龙蜥社区 2 月运营大事件

OpenAnolis小助手

Linux 开源 操作系统 运营

大数据培训:RDD、DataFrame的区别

@零度

大数据 spark

列存Delta表是个什么东东

华为云开发者联盟

存储 GaussDB(DWS) 列存表 delta表

uni-app技术分享| uni-app常见问题(二)

anyRTC开发者

uni-app 音视频 WebRTC 移动开发 视频通话

黄东旭: 关于基础软件产品价值的思考

PingCAP

前端实现word、excel、pdf、ppt、mp4、图片、文本等文件的预览

CRMEB

Java 中线程池的 7 种创建方式!

王磊

Java 面试

Java培训高并发之线程的6种状态

@零度

线程 JAVA开发 状态

基于小熊派开发板设计的云端绿化管理系统

DS小龙哥

IoT 3月月更

数据分析不能落地?快来围观,学会数据分析应用,一起升职加薪!

博文视点Broadview

MVCC 时光机:在 TiDB 的时空自由穿梭丨渡渡鸟复兴会赛队访谈

PingCAP

iuap 助力鹏鹞环保打造智慧水务大数据运营管理平台

用友BIP

用友 用友iuap

【BBC learningenglish】with Tango

IT蜗壳-Tango

3月月更

CNCF Serverless工作流社区携手华为云FunctionGraph,开拓Serverless编排新时代

华为云开发者联盟

json Serverless 华为云 FunctionGraph CNCF Serverless Workflow

3 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

架构师 培训

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