写点什么

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

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

关注

评论

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

前端报表如何实现无预览打印解决方案或静默打印

葡萄城技术团队

关于Zebec生态的改进提案,以及即将上线的 Nautilus 链

BlockChain先知

干货分享 | UE游戏鼠标双击判定

3DCAT实时渲染

游戏开发 虚幻引擎 ue 游戏开发引擎

干货分享 | 3个Zbrush实用减面工具分享

3DCAT实时渲染

3D渲染 3D模型

基于流量双发平台的高效回归方案

网易云信

反垃圾 业务集群

上海前端培训学习的就业前景

小谷哥

浅谈 2022 前端工作流中全流程多层次的四款测试工具

Liam

前端 测试 前端开发 测试工具 测试开发

化繁为简|中信建投基于StarRocks构建统一查询服务平台

StarRocks

数据库 大数据 开源

《流浪地球2》“数字生命”最后一秒拯救人类,现实中AI也正在“长出”灵魂

硬科技星球

可路由计算引擎实现前置数据库

石臻臻的杂货铺

数据库

Top 5 OSSInsight 年度最佳 MLOps 开源工具

Jina AI

深度学习 开源框架 Jina MLOps OSSInsight.io

新书上市 | 以过去预测未来,有趣的时间序列

图灵社区

机器学习 统计学 时间序列 时间序列预测

RocketMQ 监控告警:生产环境如何快速通过监控预警发现堆积、收发失败等问题?

阿里巴巴云原生

阿里云 RocketMQ 云原生

Apache RocketMQ 入选 SegmentFault 年度中国技术品牌影响力企业榜单!

阿里巴巴云原生

阿里云 Apache RocketMQ

设计模式-工厂方法模式和抽象工厂模式

C++后台开发

数据结构 设计模式 后端开发 Linux服务器开发 C++开发

BIGO 如何做到夜间同时运行 2.4K 个工作流实例?

白鲸开源

spark 工作流调度 Apache DolphinScheduler 离线计算

CNStack 2.0:云原生的技术中台

阿里巴巴云原生

阿里云 云原生 技术中台

启科量子解决方案实践:使用QuTrunk+AWS Deep Learning AMI(TensorFlow2)构建量子神经网络

启科量子开发者官方号

人工智能 量子计算

谷歌用Bard打响了Chat GPT的第一枪,百度版Chat GPT 何时出炉?

GPU算力

前端线下面授培训机构的选择

小谷哥

程序员必备的数据库知识 2:Join 算法

NineData

数据库 程序员 join SQL sever NineData

UE干货| UE虚幻引擎调试神器—控件反射器

3DCAT实时渲染

游戏开发 虚幻引擎 ue 游戏开发引擎

单体应用、SOA、微服务,优劣势都有哪些?

FinFish

微服务 微服务架构 前端开发 移动开发 小程序化

新书上市 | 以过去预测未来,有趣的时间序列

图灵教育

机器学习 统计学 时间序列 时间序列预测

真正的低代码平台

陈飞

PaaS SaaS 低代码平台

在这些工厂、农田、服务区,看到智能中国的草蛇灰线

脑极体

人工智能 华为 许昌

NFT铸造系统模式开发定制

开发微hkkf5566

大数据培训学习怎么入门

小谷哥

Go1.20新版本正式发布,新特性值得一看

王中阳Go

Go golang 高效工作 学习方法

速剖架构(一)-- 流量的自然走向

Dinfan

架构设计

点对点传输现状,镭速高速点对点传输解决方案

镭速

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