

Rust 2018临近:设法从Rust 2015过渡
source link: http://www.infoq.com/cn/news/2018/08/handling-rust-2018-transition?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

据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
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK