写点什么

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

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

关注

评论

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

周家恩:GaussDB(for MySQL)云原生数据库技术演进和挑战

NineData

MySQL 数据库 GaussDB GaussDB(for MySQL) 华为自研数据库

OpenHarmony Docker移植实践

OpenHarmony开发者

OpenHarmony

浅谈中小企业为何放弃自媒体营销:定位不准、期望值过高、缺乏专业团队

石头IT视角

什么是反射?它有什么用?

javacn.site

Java 面试

AIGC背后的技术分析 | K均值聚类算法Python实现

TiAmo

Python AIGC K值算法

Spring中@NotEmpty、@NotBlank、@NotNull 区别和使用

Java你猿哥

Java spring Spring Boot string ssm

骚操作:使用无头浏览器模拟用户操作进行截图~

王中阳Go

Go 高效工作 自动化 无头浏览器 自动截图

三本菜鸟美团二面被源码暴锤,46天狂学Spring,终入阿里

Java你猿哥

面试 Spring Boot sprnig spring aop spring ioc

2023-05-17:一个正整数如果能被 a 或 b 整除,那么它是神奇的。 给定三个整数 n , a , b ,返回第 n 个神奇的数字。 因为答案可能很大,所以返回答案 对 10^9 + 7 取模

福大大架构师每日一题

Go 算法 rust 福大大

Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!

Orillusion

开源 3D 渲染引擎 webgpu AIGC

实现园林梦想尽在GardenPlanner 激活~

真大的脸盆

Mac Mac 软件 园林设计

ChatGPT 科普(65/100)

hackstoic

ChatGPT

如何快速使用Redis可视化工具NineData?

数据库小组

数据库 Redis 可视化工具 Redis图形化工具 redis图形化界面 数据库可视化工具

eKuiper 源码解读:从一条 SQL 到流处理任务的旅程

Java你猿哥

Go golang sql ssm eKuiper

2023企业数智化财务创新峰会 · 成都站圆满举办!

用友BIP

智能会计 价值财务

用友BIP新零售产品发布,与零售企业共创新未来

用友BIP

新零售 数字营销

美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

Java你猿哥

MySQL redis Spring Boot 并发编程 JVm虚拟机

Django笔记三十之log日志记录详解

Hunter熊

Python django 日志 log

Java 把一个 List 转换为字符串

HoneyMoose

智聚北京!相约全球人力资源数智化峰会

用友BIP

人力资源

企业级体验:未来体验管理的价值与趋势

博文视点Broadview

C语言编程—变量的构成

芯动大师

IoTLink版本更新V1.25.0

山东云则信息科技

Java 物联网平台

《好好学习》:如何管理知识?

郭明

什么是Auto-GPT?如何使用、部署Auto-GPT?

炜娓道来程序人生

人工智能 AI ChatGPT

开源赋能 普惠未来|TencentOS Tiny诚邀您参与2023开放原子全球开源峰会

开放原子开源基金会

开源赋能 普惠未来|浪潮集团寄语2023开放原子全球开源峰会

开放原子开源基金会

开源赋能 普惠未来|360集团寄语2023开放原子全球开源峰会

开放原子开源基金会

如何使用Go语言实现迪米特法则

Jack

OpenFeign 如何做到 "隔空取物" ?

Java你猿哥

Java Spring Cloud ssm netflix openfeign

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