Rust 1.63 编程语言发布

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

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

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

主要创新:

  • 新增了 `std::thread::scope` API,允许创建作用域线程。与之前的线程不同,新的 `std::thread::scope` API 允许借用非静态数据,而使用传统的 `std::thread::spawn` API 创建的线程必须拥有所有传递的参数,并且无法获取借用的变量。`std::thread::scope` API 保证所有生成的线程在返回数据之前都会终止,从而为借用机制提供了必要的安全性。
  • 本文提出了两种新的文件描述符绑定类型:BorrowedFd 和 OwnedFd,分别提供借用和所有权功能。这两种类型都带有“#[repr(transparent)]”标记,允许它们直接用于带有所有权的外部 C 绑定中。
  • 提供了在常量上下文中调用 Condvar::new、Mutex::new 和 RwLock::new 的功能,以便在不使用 lazy_static 包的情况下创建全局静态 Mutex、RwLock 和 Condvar 值。
  • 对于类型为 fn foo 的函数(value: T, f: impl Copy) 类似“foo::”这样的语法是允许的(3,3)”,明确指出通用类型。
  • 用于检测变量借用问题的 NLL(非词法生命周期)技术已完成过渡。NLL 在执行流程图中对一组指针进行计数,从而提高了借用检查器的质量,并允许执行某些以前会导致错误的正确代码。rustc 已完全移除对使用词法生命周期绑定的旧机制的支持,并已全面实现新的 NLL 技术。
  • API 的新部分已移至稳定类别,包括特性的方法和实现已稳定:
    • array::from_fn
    • Box::into_pin
    • BinaryHeap::try_reserve
    • BinaryHeap::try_reserve_exact
    • OsString::try_reserve
    • OsString::try_reserve_exact
    • PathBuf::try_reserve
    • PathBuf::try_reserve_exact
    • 路径::尝试存在
    • 参考::filter_map
    • RefMut::filter_map
    • NonNull::<[T]>::len
    • ToOwned::clone_into
    • IPv6地址::映射到IPv4地址
    • unix::io::AsFd
    • unix::io::BorrowedFd<'fd>
    • unix::io::OwnedFd
    • windows::io::AsHandle
    • windows::io::BorrowedHandle

      来源: opennet.ru
为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster