目前 Rust 2021 Edition 正在讨论中,RFC 3085 目前已经取代了 RFC 2052 成为新的 RFC。

Edition 在RFC 2052中提出,Rust在2018年发布了第一个 Edition版本。这项工作在许多方面都是成功的,但也带来了一些困难的教训。 RFC 3085 为 2021 Edition 提出了不同的模型。 需要注意的是,目前该 RFC 还未合并。

「2021 Edition 模型」讨论的关键点包括:

  • Edition 用于将语言引入更改,否则可能会破坏现有代码,例如引入新关键字。
  • Edition 永远不允许分裂生态系统。 我们只允许不同版本的 crate 进行互操作的更改。
  • Edition 以其出现的年份命名(例如,Rust 2015,Rust 2018,Rust 2021)。
  • 发布新 Edition 时,我们还会发布工具以自动执行 crate 的迁移。 可能需要进行一些手动操作,但是这种情况很少见。
  • Nightly 工具链提供对即将发布的 Edition 的“预览”访问权限,以便我们可以随时进行针对将来 Edition 的工作。
  • 我们维护一个《Edition 迁移指南》,其中提供了有关如何迁移到下一 Edition 的指南。
  • 只要有可能,都应使新功能适用于所有 Edition

该RFC旨在确立 Edition 的高级用途,并描述RFC对最终用户的感觉。 它有意避免进行详细的策略讨论,这些讨论将由相应的子团队(编译器,lang,开发工具等)来解决。

目标与设计原则

顺序代表优先级

  1. Edition不能分裂生态系统。

最重要的一条规则是:一个Edition中的 crate 可以与其他Edition中编译的 crate 无缝地互操作。不管Edition如何,所有 Rust 代码最终都会在编译器中编译为相同的内部 IR。

  1. Edition 迁移应该很方便且尽最大可能自动化完成。

在发布新Edition的同时也会发布一些工具帮助自动升级Edition。并且维护《Edition迁移指南》以便手动迁移之需。

  1. 由用户来控制何时使用新的Edition
  2. Edition 注定是要被使用的。目标是看到所有Rust用户都采用新Edition
  3. Rust 应该感觉像是一种语言,而非被 Edition 分割为多种“方言”。

Edition向 Rust 引入了向后不兼容的更改,从而又增加了 Rust 开始感觉像具有多种方言的语言的风险。 我们想要避免人们进入 Rust 项目的经历,并对给定的代码含义或可以使用的功能种类感到不确定。 这就是为什么我们更喜欢基于年份的版本(例如Rust 2018,Rust 2021),这些版本将许多更改组合在一起,而不是细粒度的选择加入; 可以简洁地描述基于年份的版本,并确保当您进入代码库时,相对容易地确定可以使用哪些功能。

一些背景

Rust 2018版在 RFC 2052中被描述为一个“集结点”,不仅引入了一些迁移,而且还是许多其他更改(例如更新本书,实现连贯的新API集等)的目标。这在很多方面都很有帮助,但在其他方面却是有害的。 例如,在是否有必要升级到新Edition以使用其功能方面存在一定的困惑(尚不清楚该困惑是否具有除困惑之外的其他负面影响)。 这也是组织本身将所有内容整合在一起的压力。 它与「火车模型」相反,后者旨在确保我们具有“低压力”发布。

相反,2021版故意是“低调”事件,其重点仅在于介绍已进行了一段时间的一些迁移,惯用法lint和其他工作。 我们没有将其与其他无关的更改进行协调。 这并不是说我们永远不应该再发布“集结点”。 但是,目前,我们在工作中并没有一整套协调一致的变化,我们需要将这些变化汇总在一起。

但是,由于此更改,Rust 2018的一项好处可能会丢失。 有一定比例的潜在Rust用户可能对Rust感兴趣,但兴趣不足以跟进每个Edition并跟踪发生了什么变化。 对于这些用户,一篇博客文章列出了Rust 2018以来发生的所有令人振奋的事情,足以说服他们尝试一下Rust。 我们可以通过发布回顾过去几年的回顾来解决这个问题。 但是,我们不必将此回顾与Edition联系在一起,因此,此RFC中未对此进行描述。

小结

通过以上内容,我想你应该对目前官方的 Rust 2021 Edition 工作内容有所了解。目前该 RFC 还在持续且激烈的讨论中,更多内容可以移步该 RFC 的 PR中参看。

在官方的 Edition Guide 文档中,已经增加了 Next Edition 可能发布的功能集合,感兴趣可以自行关注。

解读 Rust 2021 Edition RFC相关推荐

  1. Gartner ABI报告技术解读:2021 BI 与数据分析魔力象限

    Gartner ABI报告技术解读:2021 BI 与数据分析魔力象限 导读 Gartner 是全球权威的 IT 研究与顾问咨询公司,20 年以来,Gartner 的研究与咨询服务一直被认为是客观技术 ...

  2. Academic+Phrasebank+2021+Edition+_中英文对照 一共314页 2021最新版PDF已经翻译好便于阅读对照

    **Academic+Phrasebank+2021+Edition+_中英文对照 一共314页 2021最新版 独家翻译 中英文对照+英文原件https://download.csdn.net/do ...

  3. 深入解读Gartner 2021年《分析与BI平台魔力象限》

    近日,Gartner发布了2021年度的分析与商业智能平台魔力象限报告.作为业内的权威报告,魔力象限在分析与BI平台(以下简称ABI平台)供应商和用户中受到了非常广泛的关注,可以说是行业风向标.帆软数 ...

  4. 解读RSAC 2021丨灵魂拷问:你的网络够“皮实”吗?

    美国时间5月20日,RSA大会落下帷幕.大会虽已结束,讨论还在继续.对于大会的主题"Resilience",每个厂商.每个人都有自己的解读.山石网科新技术研究院全程关注RSA大会, ...

  5. 植物基因编辑最新政策解读(2021年7月)

    我国基因编辑技术的研发领先全球,但由于尚未出台基因编辑产品管理政策,相关产业面临技术研究领先.管理滞后.应用空白的局面.与会专家学者.企业代表纷纷结合国外基因编辑监管措施建言献策,呼吁基因编辑政策早日 ...

  6. 解读ICLR 2021:DoodlerGAN创意草图开山之作

    前言:这篇论文是creative sketch的开山之作,提出了两个创意草图数据集:creative birds和creative creatures,并用GANs在草图生成上取得了良好的效果,为后面 ...

  7. RPA学习天地:艺赛旗RPA培训产品解读(2021年7月)

    学RPA,考RPA,用RPA尽在 RPA学习天地 本次我们介绍一下艺赛旗原厂的配置清单,主要分为:设计器.机器人和控制台,有基于绑定用户的清单和绑定电脑的清单. 产品配置清单介绍 此外,机器人还有针对 ...

  8. rust大油井频率怎么用_「Rust每日新闻」本周精选 • 第二十四期

    前言: 从2018年开始,我每天会花1个小时关注Rust社区动态,并且在Rust.CC论坛.tg channel.Steemit.GitHub.语雀订阅都开通了Rust每日新闻,分享我每天的见闻,偶尔 ...

  9. Rust for Linux 源码导读 | Ref 引用计数容器 原创

    引子 2022 年,我们很可能会看到 Linux 内核中的实验性 Rust 编程语言支持成为主流.2021.12.6 早上发出了更新的补丁,介绍了在内核中处理 Rust 的初始支持和基础设施. 这次更 ...

最新文章

  1. php性能测试下载,PHP性能测试工具xhprof安装与使用方法详解
  2. 社区电商平台小区乐获GGV领投超1亿美元融资
  3. npm——安装教程、安装vue脚手架(ASP.NET Core微服务(五)——【vue脚手架解析接口】过度章节)
  4. 携程高管解读Q3财报:海外市场Trip.com流量恢复到去年同期70%
  5. Kubernentes
  6. [转]malloc的内存用free释放后为何系统回收不了
  7. 如何循序渐进向DotNet架构师发展(转,写的不错)
  8. 水滴石穿之子页面的滚动条设置 表格的固定高度宽度问题 复制带格式的文本...
  9. 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
  10. 【如何在12306网站上购买上中下卧铺火车票呢?】
  11. 关于计算机用途的ppt,计算机组成与用途课件.ppt
  12. 【内网安全】445端口的入侵与扫描
  13. 谷歌浏览器提示您的连接不是私密连接的解决方法
  14. three.js加载和使用纹理-specularMap使用高光贴图创建色彩鲜明的地球(vue中使用three.js77)
  15. qt websocket android,QT使用websocket进行长连接
  16. 关于海神阁阁主真实身份的推测
  17. mysql也有dblink
  18. 微信小程序,自定义switch组件
  19. 买一台 iPhone X,还是创建一家未来的独角兽?
  20. 德国电信撕逼诺基亚:史上最烂5G供应商

热门文章

  1. (保姆级教材 适合自学 )搭建云计算OpenStack虚拟机-准备工作
  2. 绝对稳定雷电ld.exe 替换 adb shell 教程
  3. 乐视网络电视 v7.0.3.198 官方版
  4. 2021江西省icpc(A,B,D,F,G,H,J,K,L)
  5. USB驱动程序(基础)
  6. 查看windows是否激活
  7. 计算机表示图形的两种方法,图像参数
  8. BT宝塔80端口被占用,完美解决
  9. 观 王强(读书毁了我 北大演讲)note_201_12_22
  10. 享受软件测试带来的一切