首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rust 2018临近:设法从Rust 2015过渡

据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数值类型,优化内存;改进错误信息和格式化。

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址http://www.infoq.com/cn/news/2018/08/handling-rust-2018-transition
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券