Rust 1.61.0 稳定版发布,改进 const fn 函数指针


Rust 1.61.0 已正式发布。此版本包含多项重要的语法变更,以及编辑器和标准库方面的改动。

语言特性

  • const fn 签名已引入通用 trait 边界
  • const fn 签名现已支持在参数中使用impl Trait并返回位置
  • 支持在const fn创建、转换和传递函数指针 
  • 递归调用 (Recursive calls) 现在支持设置函数的不透明impl Trait返回类型

编译器

  • 支持在#[link]属性和命令行中链接修饰符语法,特别是whole-archive修饰符
  • char 类型在 debuginfo 中被描述为 UTF-32
  • #[target_feature]属性支持与 aarch64 功能一起使用
  • X86 #[target_feature = "adx"] 现已到达稳定状态

Libraries

  • ManuallyDrop<T>现在被记录为具有相同的布局T
  • #[ignore = "…"] 运行测试时会打印信息
  • Consistently始终将 Windows 上缺少的 stdio 句柄显示为 NULL 句柄
  • Vec::from_raw_parts现在对其输入的限制较少

详情查看 release note。


相关文章

2022-11-04

Rust 1.65.0 稳定版已发布。此版本包含多项重要的语法变更,以及编辑器和标准库方面的改动。值得关注的是,Rust 1.65 现在还启用了 MIR 内联来优化编译,为 crate 提供了 3-10% 的编译时间改进。 语言特性 为枚举类型使用#[non_exh

2022-02-28

Rust 1.59.0 稳定版已正式发布,新版本最值得关注的特性是支持在代码中内联汇编 (Inline assembly),其他变化包括:引入解构式赋值、默认关闭增量编译,以及 Const 泛型参数支持设置默认值等。 内联汇编 (Inline assembly) 此项特

2022-08-02

关键字声明的事物添加泛型。例如使用 const或async的函数。 不过“关键字泛型”不仅仅是为了异步而设计,其最终目的是让其适用于所有修饰符关键字——包括可能将来才定义的关键字。总的来说,他们希望通过此次对“关

2022-12-19

Rust 团队于近日发布了 Rust 1.66.0 新版本,1.66.0 稳定版中的主要更新内容如下: 对有字段的枚举进行显式判别 有整数表示的枚举现在可以使用显式判别,即使它们有字段。 #[repr(u8)] enum Foo { A(u8), B(i8), C(bool) = 42, } 以前,你

2022-11-29

程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最近发布的 0.25 版本引入了一项期待已久的新特性:use表达式(useexpressions)。 官方介绍称,use表达式是一种语法糖,它将所有后续表达式转换为一个匿名函数,该函数作为附加

2023-03-11

1.68.0 稳定版中有什么: Cargo 的稀疏协议 Cargo 的“稀疏”注册协议已经稳定,可以读取 crates 的索引,以及用于在 crates.io 注册中心发布的的基础设施。 之前的 git 协议(现在仍然是默认协议)是克隆一个存储库,该存储库会

2023-05-01

用于处理安全的固定初始化,并允许减少内核中围绕需要稳定地址的数据结构的“不安全”Rust 代码的数量。新的 pin-init API 也将被其他即将推出的 Rust for Linux 抽象使用。 Linux 6.4 的 Rust 代码还向 sync 模块添加了新的类型和特

2023-04-22

 Rust 1.69.0 稳定版已发布。 1.69.0 稳定版中有什么 Cargo 建议自动修复警告 Rust 1.29.0 添加了 cargo fix 子命令来自动修复一些简单的编译器警告。从那时起,可以自动修复的警告数量继续稳步增加。此外,还增加了对自动修复一

2022-09-21

程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最近发布的 0.23 版本增加了新特性,以及其他优化。 支持 Elixir Gleam 在 Erlang 虚拟机上与各种其他优秀编程语言一起运行,因此开发团队希望利用通过这些语言编写的所

2022-07-06

Salvo 是 Rust 语言编写的简单易用, 又不失功能强大的 Web 后端框架. 此版本主要改进了 Request 数据提取的功能: 可以轻松地从多个不同数据源获取数据, 并且组装为你想要的类型. 可以先定义一个自定义的类型, 比如: #[derive(Seriali

2023-03-07

程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最新发布的 0.27 包含以下变化: 支持在use 表达式 (useexpressions)中使用模式 Gleam v0.25 引入了use表达式,该功能有助于避免 Gleam 程序中的“回调地狱 (callback hel

2023-02-07

Masonry 是一个 Rust GUI 框架,其作者最近刚发布了 0.1 版本,并提出了对 Rust UI 的愿景,他称之为"Fearless GUI",具备以下特点: 可迭代 具备灵活性 可测试 可观测 可重用 最新发布的 Masonry 0.1 旨在实现上述目标,目前

2022-05-24

更新内容: 添加了 test 模块, 方便单元测试, 比起之前使用 http::Request::builder 构建 Request 请求简洁很多. 添加解析 Request 请求数据到强类型的功能, 并且支持多数据源组合. 详细介绍 Salvo 是极其简单且功能强大的框架 Handler

2022-08-27

Beta 和 RC 发布以来的变化 自 Beta 测试版发布以来,稳定版现已支持从自动导入中排除特定文件。测试版的公告没有提到围绕类型签名中未使用的解构别名 (destructuring aliases) 的破坏性变化。此外,Beta 和 RC 发布公告都没有介