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

Rust 2018 临近:设法从 Rust 2015 过渡

  • 2018-08-18
  • 本文字数:894 字

    阅读完需:约 3 分钟

据 Rust 核心团队报道, Rust 2018(对应 Rust 1.31)的第一个版本将于 2018 年 12 月 6 日准备就绪。从 Rust 2015 首次发布以来,大量新特性合并到一个新的标签下,大大丰富了这门语言。

据 InfoQ 报道,Rust 2018 侧重于提高语言的生产力,就是说,侧重于编译器性能,对许多语言特性进行优化,进一步改进工具、库和文档。新的 Rust 2018 语言特性有的已经出现在 Rust 近日的发布中,有的将会出现在 Rust 1.31 之前的版本中,包括 impl Trait、macros 2.0、SIMD 支持、“非词法作用域生命周期(non-lexical lifetimes)”、async/await 支持及模块改造。

最值得注意的是, Rust 2018 将稍微放宽稳定性保证,从而为可能破坏现有 Rust 2015 代码的语言变更提供支持。例如,Rust 2018 将包含 try 关键字,这可能会与一些代码中的函数或变量名冲突。

为了解决这个问题和其他类似的可能性,帮助开发人员设法从 Rust 2015 过渡到 Rust 2018,Rust 将遵循 C++ 和 Java 的步骤。这有几层含义:

  • Rust 2018 可以选择加入。如果你希望在现有的项目中使用 Rust 2018,那么你可以在项目的 cargo.toml 文件中加入 edition=‘2018’。为了防止版本激活码丢失,Rust 编译器将默认使用 Rust 2015。所有使用 cargo new 新建的项目将默认加入 edition = ‘2018’。
  • 由于 Rust 编译器既支持 Rust 2015,又支持 Rust 2018,所以你可以在同一个项目中组合使用依赖其中任意一个 Rust 版本的依赖项。这让你可以在 Rust 2018 程序中使用 Rust 2015 依赖项,也可以在 Rust 2015 项目中使用 Rust 2018 依赖项。
  • 语言核心将保持不变,就是说,Rust 2018 将只包含表层的破坏性更改,如上面提到的 try 关键词,或者是一些警告转换成了错误,等等。

此外,Rust 2018 将包含一个新工具 cargo fix,这个工具可以帮助开发人员转换现有的代码库,实现代码的逐步过渡,采用 Rust 2018 推荐的新特性和习惯用语。

另外,Rust 核心团队已于近日发布了 Rust 1.28 ,引入了全局分配器,让开发人员可以提供自己的内存分配器,以代替系统分配器; NonZero 数值类型,优化内存;改进错误信息和格式化。

查看英文原文: Rust 2018 is Approaching: Managing the Transition from Rust 2015

2018-08-18 03:362271
用户头像

发布了 1008 篇内容, 共 449.8 次阅读, 收获喜欢 346 次。

关注

评论

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

我是如何从0到1完成一个简单的中间件(1)

sinsy

Java 中间件

flutter之踩坑的日子(2)

霜蓝手环

小程序flutter, 跨平台 Flutter Android Apk

这是一个奇怪的因果关系

陈磊@Criss

摄影

数字资产会成为人类最大的资产

CECBC

数字资产 数字化时代 孙正义

关于数据存储引擎结构,没有比这篇更详细的

华为云开发者联盟

数据库 nosql 存储

别闹,我用1个BTC居然买不了一个爱马仕包

猫Buboo

区块链+

MySQL数据库技术与应用:数据查询

华为云开发者联盟

MySQL 数据库 存储

111

不在调上

再深入一点|binlog和relay-log到底长啥样?

艾小仙

Java MySQL 数据库 架构设计

“度拉拉”升职记:中国语音助手的成长史

脑极体

血的教训!千万别在生产使用这些 redis 指令

楼下小黑哥

Java redis 生产事故

java安全编码指南之:字符串和编码

程序那些事

安全编码指南 java安全编码 java安全编码指南

iPad Air把它大哥iPad Pro按在地上摩擦

徐说科技

互联网只改变了商业的一部分,区块链将从根本上重构商业

CECBC

区块链 去中心化 互联网金融

【获奖名单公布】程序员摇身一变摄影师,属于技术人的摄影展示大赛

InfoQ写作社区官方

写作平台 征稿 热门活动

随想之UI+API

云杉

查找数组中最大值的5种方法!(动图演示)

王磊

Java 面试

第六周作业

Vincent

极客时间 极客大学

对比 Redis 中 RDB 和 AOF 持久化

超超不会飞

Linux基金会唯一官方微服务培训课程免费学 | 快速构建稳定可靠的微服务应用

TARS基金会

开源 微服务 培训 Linux基金会 TARS

最新:央行副行长详解数字人民币,信息量巨大!

CECBC

人民币 数字人民币

裳雨

GongTeng95

写作 写作平台

USDT支付系统开发技术方案,数字货币承兑商支付

13530558032

Golang领域模型-资源库

奔奔奔跑

微服务 领域驱动设计 DDD Go 语言

Spring 5 中文解析数据存储篇-Spring框架的事物支持模型的优势

青年IT男

Spring5 数据存储

分库分表中间件的高可用实践

无毁的湖光

MySQL TCP 高可用 分库分表 高性能

切片真的是引用类型嘛

Gopher指北

Go 语言

第六周学习总结

Vincent

极客时间 极客大学

追光逐影:焦距与镜头语言

北风

创作 生活 摄影 光影 摄影征文

anyRTC语音开黑demo正式上线

anyRTC开发者

音视频 WebRTC 直播 RTC

数字货币交易所源码开发,区块链交易系统搭建服务商

13530558032

Rust 2018临近:设法从Rust 2015过渡_DevOps & 平台工程_Sergio De Simone_InfoQ精选文章