写点什么

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

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

关注

评论

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

如何分析排序算法

乌龟哥哥

6月月更

Flutter macOS 模板 – Flutter macOS Drawer Widget 示例

坚果

6月月更

降本增效的居家办公心得-提高效率的百宝箱 | 社区征文

迷彩

远程办公 工具分享 6月月更 初夏征文

转转统一权限系统的设计与实现(后端实现篇)

转转技术团队

后端 权限控制

搭建个人博客,Docsify+Github webhook+JGit解决方案

艾小仙

Java GitHub webhook jgit halo

【战码先锋】润和赛道正式开启,马上加入赢取双重大礼!

OpenHarmony开发者

Open Harmony

Android 自定义View之随机数验证码

yechaoa

android 自定义view 6月月更

spring4.1.8扩展实战之六:注册bean到spring容器(BeanDefinitionRegistryPostProcessor接口)

程序员欣宸

Java spring 6月月更

提升“架构思维”?这本书值得一读!

博文视点Broadview

BOM核心——window对象之窗口

大熊G

JavaScript 前端 6月月更

C#/VB.NET:从PDF中提取图片

在下毛毛雨

C# .net PDF 提取图像

疫情过后,远程办公还在吗,企业如何构建数字化转型

BeeWorks

字符串的常用方法

Jason199

js 字符串处理 6月月更

Linux开发_Shell脚本编程语言

DS小龙哥

6月月更

C#入门系列(十七) -- 类和对象

陈言必行

C# 6月月更

MySQL面试宝典-文件篇

CRMEB

归并排序

工程师日月

6月月更

正式上架!TDengine 插件入驻 Grafana 官网

TDengine

数据库 tdengine Grafana

Django CRUD(创建、检索、更新、删除)基于函数的视图

海拥(haiyong.site)

Python 6月月更

远程办公三部曲 - 如何合理安排时间| 社区征文

耳东@Erdong

远程办公 6月月更 初夏征文 时间安排

【PIMF】OpenHarmony啃论文俱乐部—盘点开源鸿蒙三方库【1】

离北况归

OpenHarmony

ABAP-创建WebService服务

桥下本有油菜花

abap

HDFS用了这个优化后,性能直接翻倍

hncscwc

大数据 hadoop hdfs 6月月更

测试开发【Mock平台】06开发:项目管理(二)Atnd页面搭建经验实战与学习线路梳理

MegaQi

测试平台开发教程 6月月更 测试技术干货

知识管理对企业意味着什么

小炮

软件成分分析(SCA)完全指南

SEAL安全

开源 应用安全 软件安全 软件成分分析 应用安全测试

如何串连三个「语言工具」描述简洁清晰的需求?

LigaAI

程序人生 产品经理 需求 产品需求 产品设计与思考

居家办公必备神器之视频会议|社区征文

liuzhen007

视频会议 初夏征文

用Python手动实现LRU算法

IT蜗壳-Tango

6月月更

【愚公系列】2022年06月 通用职责分配原则(四)-高内聚原则

愚公搬代码

6月月更

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