Rust 1.52 编程语言发布

系统编程语言 Rust 1.52 已发布,该语言由 Mozilla 项目创建,但现在由独立非营利组织 Rust 基金会赞助开发。 该语言专注于内存安全,提供自动内存管理,并提供了无需使用垃圾收集器或运行时即可实现高任务并行性的方法(运行时被简化为标准库的基本初始化和维护)。

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

主要创新:

  • 删除了对“cargo check”和“cargo Clippy”命令执行顺序的绑定。 以前,由于这些检查模式缺乏缓存分离,在“cargo check”之后调用“cargo Clippy”不会启动 Clippy 实用程序 (linter)。 现在这个问题已经解决了,“cargo Clippy”和“cargo check”的调用顺序不再重要。
  • 新的部分 API 已转移到稳定类别,包括以下方法已稳定:
    • 参数::as_str
    • 字符::最大
    • 字符::REPLACMENT_CHARACTER
    • 字符::UNICODE_VERSION
    • 字符::decode_utf16
    • 字符::来自_数字
    • char::from_u32_unchecked
    • 字符::from_u32
    • 切片::分区点
    • str::rsplit_once
    • str::split_once
  • “const”属性决定了在任何上下文中使用它而不是常量的可能性,在方法中使用:
    • 字符::len_utf8
    • 字符::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_大写
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • 添加了 lint 检查 unsafe_op_in_unsafe_fn 以确定不安全函数中使用的不安全代码是否由不安全块构成。
  • 允许将指向数组的可变指针转换为指向数组元素类型的指针的形式。 让 mut x: [使用; 2] = [0, 0]; 让 p = &mut x as *mut usize; 让 p = &mut x as *const usize;
  • Clippy (linter) 中添加了 9 个新检查。
  • 货物包管理器现在支持包的 JSON 中的“manifest_path”字段。 添加了对以 SPDX 3.11 格式指定许可证信息到 crates.io 存储库的支持。
  • 运行测试时允许指定多个过滤器,例如运行“cargo test - foo bar”将运行与掩码“foo”和“bar”匹配的所有测试。
  • 默认 LLVM 工具包已更新至 LLVM 12。
  • 第三级支持已针对 s390x-unknown-linux-musl、riscv32gc-unknown-linux-musl、riscv64gc-unknown-linux-musl 和 powerpc-unknown-openbsd 平台实现。 第三级涉及基本支持,但没有自动化测试、发布官方构建或检查代码是否可以构建。

来源: opennet.ru

添加评论