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

2023-12-30

Rust 1.75.0 稳定版已正式发布,主要带来以下变化: traits 中的async fn 和 return-position impl Trait Rust 1.75 支持在 Trait 中使用async fn和-> impl Trait。但是,此初始版本存在公告帖子中描述的一些限制。 预计这些限制将在未来

2022-02-28

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

2024-07-27

Rust 1.80.0 稳定版现已发布,主要带来以下变化: LazyCell和LazyLock 新的“lazy”类型将值的初始化延迟到首次访问,它们类似于1.70 中稳定的OnceCell和OnceLock类型,但单元格中包含了初始化函数。这完成了从流行的和板条箱中采用到

2023-11-18

Rust 1.74.0 稳定版已正式发布,主要带来以下变化: 通过 Cargo 进行 Lint 配置 正如 RFC 3389 所提议,Cargo.tomlmanifest 现在支持一个[lints]表来配置来自编译器和其他工具的 lints 的报告级别(禁止、拒绝、警告、允许)。因

2023-09-06

V语言 (Vlang) 0.4.1 已发布。主要变化集中在改进语言特性、解析器、标准库,以及编译器内部相关的变化等。 实现Enum.from_string(name string)将字符串转换为枚举值 禁止使用未初始化的函数指针 使用默认 expr 修复匿名结构 支

2024-08-18

并于 2025 年 1 月 3 日发布测试版 Rust v1.85,2 月 20 日发布稳定版 Rust v1.85。 使 Async Rust 体验更接近 sync Rust。计划提供几个异步构建块功能,其中最值得注意的是对 async closures 和Send bounds 的支持。这是将 async Rust

2022-08-02

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

2023-10-09

Rust 1.73.0 稳定版已正式发布,主要带来以下变化: Cleaner panic messages 默认紧急处理程序生成的输出已更改为将 panic 消息放在单独一行,而不是用引号括起来。这可以使 panic 消息更易于阅读,如本示例所示: fn main() { let file

2022-12-19

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

2023-06-03

于从 crates.io 读取索引。这个功能之前已经在 Rust 1.68.0 中稳定下来,但仍然需要配置才能在 crates.io 中使用。原计划就是在 1.70.0 中默认启用该功能的,现在如期实现。 当你从 crates.io 的索引中获取信息时,你应该看到性能的大

2024-03-27

Rust 1.77.0 稳定版已正式发布,主要带来以下变化: C-string literals Rust 现在支持  C-string literals ( c"abc"),它在&'static CStr类型的内存中扩展为以 nul 字节结束的字符串。这使得编写与需要以 nul 结尾的字符串的外语接

2023-07-15

Rust 1.71.0 稳定版已发布。 重要变化 C-unwindABI 正式稳定(同时包括其他-unwind后缀的 ABI 变体1):该特性对于跨 ABI 边界时,异常处理的行为更安全 调试器增加可视化属性#[debug_visualizer(natvis_file = "...")]和#[debug_visualizer(gdb_scrip

2022-11-29

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