Rust 1.66 编程语言发布

Rust 1.66 通用编程语言的发布已经发布,该语言由 Mozilla 项目创建,但现在由独立的非营利组织 Rust 基金会赞助开发。 该语言专注于内存安全,并提供了实现高作业并行性的方法,同时避免使用垃圾收集器和运行时(运行时减少为标准库的基本初始化和维护)。

Rust 的内存处理方法使开发人员在操作指针时避免错误,并防止由于低级内存处理而出现的问题,例如在内存区域被释放后访问它、取消引用空指针、缓冲区溢出等。 为了分发库、提供构建和管理依赖项,该项目开发了 Cargo 包管理器。 crates.io 存储库支持托管库。

Rust 在编译时通过引用检查、跟踪对象所有权、跟踪对象生命周期(范围)以及评估代码执行期间内存访问的正确性来提供内存安全。 Rust 还提供防止整数溢出的保护,要求在使用前初始化变量,更好地处理标准库中的错误,默认应用不可变引用和变量的概念,并提供强静态类型以最小化逻辑错误。

主要创新:

  • 在具有整数表示(“#[repr(Int)]”属性)的枚举中,允许显式指示判别式(枚举中的变体编号),即使枚举包含字段。 #[repr(u8)] enum Foo { A(u8), # 判别式 0 B(i8), # 判别式 1 C(bool) = 42, # 判别式 42 }
  • 添加了函数 core::hint::black_box ,它只返回接收到的值。 由于编译器认为这个函数在做一些事情,所以在执行代码性能测试或检查生成的机器代码时,可以使用 black_box 函数来禁用编译器对循环的优化(这样编译器就不会认为代码未使用并将其删除)。 例如,在下面的示例中,black_box(v.as_ptr()) 可防止编译器认为向量 v 未被使用。 使用 std::hint::black_box; fn push_cap(v: &mut Vec) { for i in 0..4 { v.push(i); black_box(v.as_ptr()); } }
  • “cargo”包管理器提供了“remove”命令,它允许您从命令行从 Cargo.toml 清单中删除依赖项。
  • API 的新部分已移至稳定类别,包括特性的方法和实现已稳定:
    • proc_macro::Span::source_text
    • u*::{checked_add_signed、overflowing_add_signed、saturating_add_signed、wrapping_add_signed}
    • i*::{checked_add_unsigned、overflowing_add_unsigned、saturating_add_unsigned、wrapping_add_unsigned}
    • i*::{checked_sub_unsigned、overflowing_sub_unsigned、saturating_sub_unsigned、wrapping_sub_unsigned}
    • BTreeSet::{第一个、最后一个、pop_first、pop_last}
    • BTreeMap::{first_key_value、last_key_value、first_entry、last_entry、pop_first、pop_last}
    • 在使用 WASI 时为 stdio 锁类型添加 AsFd 实现。
    • impl TryFrom > 盒子<[T; N]>
    • 核心::提示::黑盒
    • 持续时间::try_from_secs_{f32,f64}
    • 选项::解压
    • std::os::fd
  • 模板中允许范围“..X”和“..=X”。
  • 在构建 rustc 编译器的前端和 LLVM 后端时,使用 LTO(链接时间优化)和 BOLT(二进制优化和布局工具)优化模式来提高生成代码的性能并减少内存消耗。
  • 实现了对 armv5te-none-eabi 和 thumbv5te-none-eabi 平台的 XNUMX 级支持。 第三层意味着基本支持,但没有自动化测试、发布官方构建和检查构建代码的能力。
  • 添加了对链接到 macOS 通用库的支持。

此外,我们可以注意到 Rust 语言前端编译器 (gccrs) 包含在 GCC 代码库中。 前端包含在 GCC 13 分支中,该分支将于 2023 年 13 月发布。 从 GCC 13 开始,标准 GCC 工具包将能够用于编译 Rust 程序,而无需安装使用 LLVM 开发构建的 rustc 编译器。 GCC XNUMX 中的 Rust 实现将处于测试状态,默认情况下不启用。

来源: opennet.ru

添加评论