在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

评论

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

什么是微服务?与SOA有什么区别?

雨果

微服务 SOA

IM跨平台技术学习(二):Electron初体验(快速开始、跨进程通信、打包、踩坑等)

JackJiang

即时通讯IM

上海UI设计培训哪家好

小谷哥

软件测试 | 测试开发 | 一文搞定 Docker 容器技术与常用命令

测吧(北京)科技有限公司

测试

华为云GaussDB(for Redis)支撑数位科技打造全新大数据引擎

科技怪咖

大企业为什么都在用钉钉?

ToB行业头条

小程序容器怎样让移动研发效率提升

Geek_99967b

小程序

居家办公第一天,摔了31次鼠标

科技怪咖

向量连接世界:2022 首届非结构化数据峰会即将开启!

Zilliz

2022最新的Java八股文合集来了,彻底解决各大大厂面试难题

Java-fenn

Java java面试 Java面试题

Docker 的快速入门

Docker 9月月更

直播预告 | 乘云而上,企业海量数据如何「丝滑」地迁移上云?

京东科技开发者

云服务 数据迁移 资讯 京东云 企业云

IDC中国未来企业大奖优秀奖颁布,华为云数据库助力德邦快递获奖

科技怪咖

真的香,被各大厂要求直接下架的面试题库也太全了,Github一夜爆火

Java-fenn

Java 程序员 java面试 Java面试题

对于epoll实现原理的理解

C++后台开发

后台开发 linux开发 epoll select C++开发

UI设计培训需要学习哪些技术?

小谷哥

2022互联网大厂高级工程师面试经验分享,含蚂蚁金服,京东(金融和商城),58,搜狗

小小怪下士

程序员 Java 面试 面经 java;

Kyligence 入选 Gartner 指标中台创新洞察报告

Kyligence

指标管理 指标中台 数据分析管理

从 OLAP 到指标中台 SaaS,关键指标赋能业务管理

Kyligence

OLAP Kyligence 数据管理 指标中台

在西安参加Java培训学费多少钱?

小谷哥

经典再升级 | 尚硅谷电商数仓5.0视频教程发布

小谷哥

EMQX Kubernetes Operator:快速体验EMQX 5.0云原生特性

EMQ映云科技

云原生 物联网 IoT emqx 9月月更

Wallys/Wireless System on Chip IPQ8074/IPQ4018 IPQ4028 2*MMCX 27dbm /Support MU-MIMO

wallys-wifi6

IPQ8074 IPQ4018 IPQ4028

软件测试 | 测试开发 | 仅需4步,即可用 Docker搭建测试用例平台 TestLink

测吧(北京)科技有限公司

测试

物联网平台功能介绍——产品功能类

阿里云AIoT

大数据 物联网平台 物联网 IoT 设备管理

多标签用户画像分析跑得快的关键在哪里?

跳楼梯企鹅

kubectl 插件推荐: kubectl-watch

云原生技术社区

k8s 插件 kubectl kubectl插件 kubectl-watch

软件测试 | 测试开发 | 原来升职加薪的测试工程师都擅长做接口测试

测吧(北京)科技有限公司

测试

web前端培训班哪家比较好

小谷哥

Java进阶(三十五)java int与Integer的区别

No Silver Bullet

Java int 9月月更 Integer

跳槽入职字节跳动,给到20k*16薪,只因比别人更懂多线程与高并发

Java-fenn

Java 程序员 面试 java面试 Java面试题

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