NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:361553
用户头像

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

关注

评论

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

元年SecDevOps的实践之路

元年技术洞察

数字化转型 趋势研究 方舟平台

DevEco Studio 3.1差异化构建打包,提升多版本应用开发效率

HarmonyOS开发者

HarmonyOS

LED电子显示屏加速在生活中的应用

Dylan

LED LED显示屏 led显示屏厂家

Nexus3常用功能备忘

程序员欣宸

Java maven nexus3 12月月更

HMS Core 6.8.0版本发布公告

HMS Core

HMS Core

企业想要提升数据分析能力,还需要选择瓴羊Quick BI

三十

面对庞大复杂的身份和权限管理,企业该怎么办?

华为云开发者联盟

后端 开发 数字化 华为云 12 月 PK 榜

实测|超融合数据库 MatrixDB 实现百万级 TPS!

YMatrix 超融合数据库

intel OLTP 超融合数据库 YMatrix tpcb

全面支持 PyTorch 2.0:BladeDISC 5月~11月新功能发布

阿里云大数据AI技术

深度学习 编译器 PyTorch 12 月 PK 榜

BI智慧仓储行业应用方案,让你的仓储物流不再复杂

葡萄城技术团队

前端 数据可视化 仓储 智慧仓储 大屏

云安全系列5:2023 年需要了解的 40个云安全术语

HummerCloud

云计算 云安全

NFT盲盒质押分红挖矿dapp系统开发源码搭建

开发微hkkf5566

react hook 源码完全解读

flyzz177

React

11月月更开奖啦!看看获奖名单有没有你?

InfoQ写作社区官方

热门活动

如何将传统 Web 框架迁移部署到 Serverless 架构?

Serverless Devs

Python 架构 前端

AngularJS进阶(三十五)浏览器兼容性解决之道

No Silver Bullet

AngularJS 12月月更 浏览器兼容

Span抽取和元学习能碰撞出怎样的新火花,小样本实体识别来告诉你!

阿里云大数据AI技术

机器学习 12 月 PK 榜 小样本学习

企业的可视化分析能力想要提升,还需要多多关注瓴羊Quick BI

巷子

如何利用A/B实验提升产品用户留存?看字节实战案例给你答案!

字节跳动数据平台

大数据 AB testing实战 12 月 PK 榜

构建高性能内存队列:Disruptor yyds~

小小怪下士

Java 高性能

一文带你读懂 Google GUAC 项目

SEAL安全

Google 软件供应链安全 12 月 PK 榜 GUAC

凡泰极客荣获了第二届产业互联高峰论坛「2022年度行业科技创新产品奖」

FinClip

跟我学Python图像处理丨带你入门OpenGL

华为云开发者联盟

Python 人工智能 华为云 12 月 PK 榜

React源码解读之任务调度

flyzz177

React

AngularJS进阶(三十七)IE浏览器兼容性后续

No Silver Bullet

AngularJS 12月月更 浏览器兼容 下拉加载

数据安全新战场,EasyMR为企业筑起“安全防线”

袋鼠云数栈

数据安全 大数据基础平台

城市云灾备,为业务连续性保驾护航

华为云开发者联盟

云计算 公有云 华为云 政务云 12 月 PK 榜

云数据库技术行业动态:ClickHouse Cloud正式GA或有融资;openGauss社区引入新成员

数据库小组

行业资讯 企业动态 产品功能 数据库技术

RISC-V SIG 推出基于openEuler 的下游发行版 Eulaceura

openEuler

Linux 开源 操作系统 openEuler risc-v

React源码解读之更新的创建

flyzz177

React

AngularJS进阶(三十六)AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记)

No Silver Bullet

项目开发 AngularJS 12月月更

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