AI时代已来,你准备好应对挑战了吗? 了解详情
写点什么

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

评论

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

趣步运动挖矿系统开发模式详情

开发微hkkf5566

软件定义汽车时代下的云原生转型实战方法论

York

容器 云原生 车联网 软件架构 6月月更

阿里超大规模 Flink 集群运维实践

阿里云大数据AI技术

大数据 flink 运维

5G、AI、云计算,什么是云渲染?

Finovy Cloud

人工智能 云服务器 GPU服务器

最全!即学即会 Serverless Devs 基础入门(上)

Serverless Devs

最全!即学即会 Serverless Devs 基础入门(下)

Serverless Devs

技术分享| 浅谈调度平台设计

anyRTC开发者

Web 音视频 指挥调度 调度 快对讲

直播回顾:隐私计算的关键技术以及行业应用技巧 | 龙蜥技术

OpenAnolis小助手

开源 直播 隐私计算 龙蜥社区 密码技术

看板管理系统使用测评:一个好的看板工具应该具备哪些能力

PingCode

淘金家园NFT链游系统开发逻辑分析

开发微hkkf5566

java培训 @Autowired 的实现原理

@零度

JAVA开发

敏捷开发工具使用测评:好的敏捷项目管理工具有哪些?

PingCode

5G发牌三周年 云网融合加速 如何解决企业网络之忧?

郑州埃文科技

IP地址 网络空间安全 5G 企业上云 云网融合

spring-cloud-k8s 跨 NS 的坑

Damon

微服务架构 云原生 6月月更

Apache Kyuubi 高可用的云原生实现

移动云大数据

高可用 云原生 Kyuubi

代码注释的艺术,优秀代码真的不需要注释吗?

阿里巴巴中间件

阿里云 代码 技术分享

淘金家园NFT链游系统开发模式详解

开发微hkkf5566

GIT 小白的指令合集

甜甜的白桃

git 版本管理 6月月更

性能优化手记下篇之【计费】

鲸品堂

性能优化 运维

如何正确的评测视频画质

百度Geek说

视屏质量

GraphX 图计算实践之模式匹配抽取特定子图

NebulaGraph

图数据库 知识图谱 Nebula Graph

重点亦难点?三个案例看数据分类分级如何有效有序进行

美创科技

数据分类 数据安全

中兴新支点加入龙蜥社区,共建操作系统开源新生态

OpenAnolis小助手

开源 龙蜥社区 合作 CLA 中兴新支点

知名巧克力全球召回,区块链帮你摆脱“甜蜜陷阱”

旺链科技

区块链 产业区块链 食品安全 食品溯源

微软成为规模化敏捷组织的16个关键因素

ShineScrum捷行

敏捷 谷歌 规模化敏捷

企业竞争利器——知识管理

小炮

Websocket 10分钟快速入门

领创集团Advance Intelligence Group

websocket

IET技能调研首次落地亚洲国家 为阿联酋工程技术发展提供洞察

E科讯

Hoo研究院|5月下半月区块链行业投资机构动向

区块链前沿News

Hoo

fomo3d区块链分红游戏系统开发(案例演示)

开发微hkkf5566

web前端培训 SCSS 使用技巧总结分享

@零度

前端开发 scss

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