Rust 1.54.0 发布,默认重新启用增量编译

栏目: 软件资讯 · 发布时间: 4年前

内容简介:Rust 1.54.0 现已发布,具体更新内容如下: 属性可以调用 function-like macros Rust 1.54 支持在属性中调用 function-like macros。Function-like macros 可以是基于 macro_rules! 的,也可以是像macro!(...) 那...

Rust 1.54.0 现已发布,具体更新内容如下:

属性可以调用 function-like macros

Rust 1.54 支持在属性中调用 function-like macros。Function-like macros 可以是基于 macro_rules! 的,也可以是像macro!(...) 那样被调用的 procedural macros。这方面一个值得注意的用例是将其他文件的文档纳入 Rust 文档的注释中。例如,如果你的项目的 README 是一个很好的文档注释,你可以使用 include_str! 来直接合并内容。

#![doc = include_str!("README.md")]

宏也可以嵌套在属性中,例如包含由构建脚本生成的内容:

#[path = concat!(env!("OUT_DIR"), "/generated.rs")]
mod generated;

阅读此处了解更多详情。

wasm32 intrinsics 稳定化

wasm32 平台的许多 intrinsics 已经稳定,可以访问 WebAssembly 中的 SIMD 指令。

值得注意的是,与之前稳定的 x86 和 x86_64 intrinsics 不同,这些没有安全要求,只有在适当的目标特性被启用时才能被调用。这是因为 WebAssembly 从一开始就是为了在执行代码之前安全地验证代码而编写的,因此可以保证指令被正确解码(或者根本不解码)。

这意味着我们可以将一些 intrinsics 公开为完全安全的函数,例如v128_bitselect。 但是,仍然有一些 intrinsics 是不安全的,因为它们使用了原始指针,例如v128_load

默认情况下重新启用增量编译

1.52.1 中默认禁用增量编译后,此版本中默认重新启用了增量编译。

在 Rust 1.52 中,当从磁盘缓存加载增量编译数据时,增加了额外的验证。这导致了许多预先存在的潜在问题被发现,因为验证将这些错误变成了内部编译器错误(ICE)。目前仍存在两个已知问题可能会导致 ICE。由于缺乏自动崩溃报告,开发团队无法确定未决问题的全部影响程度。但是,根据其从受 1.52 版本影响的用户那里收到的反馈,他们认为剩余的问题在实践中很少见。 因此,在此版本中重新启用了增量编译。

稳定的 API

其他变化

Rust 1.54.0 版本中还有其他更改:可查看 RustCargo 和 Clippy 中的更改。

rustfmt 也在 1.54.0 版本中得到修复,以正确格式化嵌套的外联模块。这可能会导致 1.53.0 rustfmt 忽略的文件格式发生变化。在此处查看详细信息。

有关更多信息,可参见详细的发行说明


以上所述就是小编给大家介绍的《Rust 1.54.0 发布,默认重新启用增量编译》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Haskell School of Expression

The Haskell School of Expression

Paul Hudak / Cambridge University Press / 2000-01 / USD 95.00

Functional programming is a style of programming that emphasizes the use of functions (in contrast to object-oriented programming, which emphasizes the use of objects). It has become popular in recen......一起来看看 《The Haskell School of Expression》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具