写点什么

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

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

关注

评论

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

【SpringBoot】为什么我的定时任务不执行?

遇见

Java Spring Boot 定时任务 debug

太慢是不行的

池建强

创业 产品

死磕Java并发编程(3):volatile关键字不了解的赶紧看看

Seven七哥

Java Java并发 volatile

个人知识管理精进指南

非著名程序员

学习 读书笔记 知识管理 认知提升

如何画一个闹钟

池建强

视觉笔记

终极 Shell

池建强

Linux Shell

回"疫"录(2):不知者无畏

小天同学

疫情 回忆录 现实纪录

揭秘|为何程序员们能一直保持高收入?

丁长老

学习 程序员 写作 高薪

Zoom的加密算法,到底有什么问题?

X.F

算法 编码习惯 产品设计 安全 编程语言

像经营咖啡店一样扩容 Web 系统

Rayjun

Web 扩容

常用手机软件清单

彭宏豪95

效率工具 App 手机 移动应用

【SpringBoot】给你的 CommandLineRunner 排个序

遇见

Java Spring Boot

关于HSTS - 强制浏览器使用HTTPS与服务器创建连接

遇见

https 安全 浏览器 TLS 证书

【SpringBoot】为什么我的 CommandLineRunner 不 run ?

遇见

Java Spring Boot

Facebook在用户增长到5亿时的扩容策略

Rayjun

团队管理 扩容

有关Kotlin Companion 我们需要了解到的几个知识点

王泰

Java 编程 kotlin 编程语言

Nginx代理Oracle数据库连接

遇见

MySQL nginx oracle 反向代理

软件工程的史前时代 -- Therac-25 事件

王泰

质量管理 软件工程 软件危机 软件测试

死磕Java并发编程(6):从源码分析清楚AQS

Seven七哥

Java Java并发 并发编程 AQS

最近的一些人生感悟

小智

人生 哲学

写作平台使用感受

小天同学

产品 体验 反馈

程序员陪娃看绘本之启示

孙苏勇

程序员 生活 读书 成长 陪伴

回"疫"录(1):口罩危机也许是一种进步

小天同学

疫情 回忆录 现实纪录

理性主义和实证主义

王泰

理性主义 实证主义 哲学 软件工程

Disruptor为何这么快

Rayjun

Java Disruptor

软件世界中的个人英雄与团队协作

王泰

团队管理 软件工程 团队协作

敏捷(组织)转型的6个准备条件

Bob Jiang

团队管理 敏捷 组织转型

dubbo-go 中如何实现路由策略功能

joe

Apache 开源 微服务 dubbo Go 语言

过滤数组中重复元素,你知道最优方案吗?

麦洛

数据结构 数组 数组去重

用python爬虫保存美国农业部网站上的水果图片

遇见

Python GitHub 爬虫

我敢说 80% 的程序员都掉进了「老鼠赛跑」的陷阱

非著名程序员

读书笔记 程序员 程序人生 提升认知

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