写点什么

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

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

关注

评论

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

「面向信仰编程」Draven 专访:像写代码一样,用树形的结构写文章

Shopee技术团队

Go 语言 技术播客

自己动手写Docker系列 -- 6.3 手动配置容器网络(下)

Go Docker 4月月更

线程的定义是什么?

InfoQ IT百科

修改,编译,GDB调试openjdk8源码(docker环境下)

程序员欣宸

Java JVM 4月月更

云原生训练营毕业总结

hcyycb

什么是127.0.0.1,如何使用这个IP地址

郑州埃文科技

IP地址 localhost

一个完整的计算机系统是由什么组成的?

InfoQ IT百科

正确的文档排版方式

源字节1号

C语言总结_函数知识

DS小龙哥

4月月更

从IPv4到IPv6为什么这么久?IPv5哪里去了?

郑州埃文科技

ipv6 ipv4 ipv5

java培训Redis的库存扣减操作

@零度

redis JAVA开发

一文搞懂SPI通信协议

不脱发的程序猿

spi 嵌入式 通信协议

明道云+百度云,自动识别填写抗原二维码

明道云

10 个使用 SQL 的 AWS 服务

郑州埃文科技

AWS sql

IP 地理定位:通过地理围栏改善虚拟环境中的数据丢失防护

郑州埃文科技

数据安全 地理围栏 ip地理定位

大数据培训flink中核心设计、抽象和线程模型

@零度

flink Netty 大数据开发

线程和进程有什么区别?

InfoQ IT百科

搭建帮助中心,推动SaaS行业业务增长

小炮

SaaS 帮助中心

Robot OS添加开机启动服务

轻口味

android 4月月更 AOSP

Go 语言入门很简单:时间包

宇宙之一粟

时间 Go 语言 4月月更

ScheduleMaster分布式任务调度中心基本使用和原理

神农写代码

Authing 正式加入 W3C 组织,将参与相关国际标准制定

Authing

开发者 云原生 API Idaas W3C

瑞萨IDE:CS+ for CC进行BootLoader升级时开发环境配置

不脱发的程序猿

嵌入式 汽车电子 MCU 瑞萨 CS+ for CC

web前端培训react面试题分享

@零度

前端开发 React

FlyFishV2.1更新,更好用的数据可视化编排平台

云智慧AIOps社区

开源 前端 数据可视化 大屏可视化

为什么计算机启动最开始的时候执行的是BIOS代码而不是操作系统自身的 代码?

InfoQ IT百科

5种高大上的yml文件读取方式,你知道吗?

码农参上

springboot 配置文件 4月月更

如何为数据库选择最佳加密方法

郑州埃文科技

数据库 加密算法

WEB PC 管理端打包详细教程

CRMEB

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