Rust 1.38 已经发布了,Rust 1.38.0 稳定版内容如下: 管道编译(pipelined compilation) 如果想要编译 crate,编译器不需要完全构建依赖项,只需要它们的“元数据”(即类型、依赖项、导出的列表),元数据在编译过程早期生成。从 Rust 1.38.0 开始,Cargo 将基于这一优势,一旦元数据准备就绪,就自动开始构建依赖的 crate。 虽然这种变化对单个 crate 的编译没有任何影响,但经过测试,得到了一些报告,对于涉及多个 crate 的构建,可为干净的和优化的构建带来大约 10~20% 的编译速度 。而其他的改进并不多,速度的提高取决于运行构建的硬件。 mem::{uninitialized, zeroed} 从 1.38 开始,rustc 将为使用 mem::uninitialized 或 mem::zeroed 错误初始化的狭义类提供 lint。 #[deprecated] macros #[deprecated] 属性最初是在 Rust 1.9.0 版本中引入的。Rust 1.38.0 扩展了属性,允许将其应用于宏,使用 deprecated 属性将宏标记为 deprecated。 std::any::type_name 对于调试,获取类型的名称有时是有用的。例如,在通用代码中,你可能希望在运行时看到函数的类型参数被实例化的具体类型,此版本可以使用 std::any::type_name 达到这一需求:
另外,以下这些功能已经稳定:
获取 1.38 版本方式如下:
|