Redian新闻
>
Rust 1.65.0稳定版发布,泛型关联类型(GATs)正式稳定

Rust 1.65.0稳定版发布,泛型关联类型(GATs)正式稳定

公众号新闻

出品 | OSC开源社区(ID:oschina2013)

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

语言特性

  • 为枚举类型使用#[non_exhaustive]变体进行 as转换添加错误处理

  • let else正式稳定

let PATTERN: TYPE = EXPRESSION else {    DIVERGING_CODE;};
  • 泛型关联类型 (Generic Associated Types, GATs) 正式稳定

Lifetime、type 和 const 泛型现在可以在关联类型上进行定义,如下所示:

trait Foo {    type Bar<'x>;}

下面是一些使用示例:

/// An `Iterator`-like trait that can borrow from `Self`trait LendingIterator {    type Item<'a> where Self: 'a;
fn next<'a>(&'a mut self) -> Option<Self::Item<'a>>;}
/// Can be implemented over smart pointers, like `Rc` or `Arc`,/// in order to allow being generic over the pointer typetrait PointerFamily { type Pointer<T>: Deref<Target = T>;
fn new<T>(value: T) -> Self::Pointer<T>;}
/// Allows borrowing an array of items. Useful for/// `NdArray`-like types that don't necessarily store/// data contiguously.trait BorrowArray<T> { type Array<'x, const N: usize> where Self: 'x;
fn borrow_array<'a, const N: usize>(&'a self) -> Self::Array<'a, N>;}
  • 从 Clippy 添加 lintslet_underscore_drop,let_underscore_lock 和 let_underscore_must_use

  • 未初始化的整数、浮点数和原始指针现在会被视作未定义行为 (immediate UB)

  • 适用于 Windows x86_64, aarch64 和 thumbv7a 架构的 raw-dylib 正式稳定

  • 不允许在外部 ADTs 中 Dropimpl

编译器

  • Linux 上的-Csplit-debuginfo正式稳定

  • 当存在多个变体拥有数据时,使用 niche-filling 进行优化

  • 关联类型 projections 现在在解析基础类型之前会被验证为格式正确

  • 调整大小时会对结构字段类型进行规范化

  • 将 LLVM 版本升级到 15

  • 修复 aarch64 call abi 以确保 zeroext 正确运行

  • debuginfo: 为枚举泛化类似 C++ 的编码

  • 添加 special_module_namelint

  • 使用 -C instrument-coverage时,增加对默认生成唯一的 profraw 文件的支持

  • 支持面向 iOS/tvOS targets 进行动态链接

标准库

  • 不再在派生 (PartialEq) 中生成 PartialEq::ne

  • Windows RNG:默认使用 BCRYPT_RNG_ALG_HANDLE

  • 禁止将 System 与 direct system allocator 调用混合使用

  • Document 不再支持写入非阻塞 stdio/stderr

详情查看 Release Note(https://github.com/rust-lang/rust/releases/tag/1.65.0) 和发布公告(https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html)。



【OSCHINA 2022 中国开源开发者问卷】来啦
你的反馈将有助于反映中国开源的全貌
问卷结尾还可抽取我们的周边好物哦~
期待来自你的反馈!

往期推荐



微软做了谷歌做不到的事

已超1000万行代码,Java再次输给了Kotlin...

刚标准化就被废弃,谷歌:不爱了



这里有最新开源资讯、软件更新、技术干货等内容
点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦~

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Zhihu Accused of Using Watermarks in Screenshots to Locate Users开发版、测试版、稳定版,Chrome又推出个早期稳定版《大尹行》二首其一是枝裕和执导新剧曝正式预告;《最后生还者》剧版发布预告Linus:Rust 将被合并到 Linux 6.1 主线全球帝国时代As Tianzifang Awaits for Tourists, Businesses Bear the Brunt2022 Luxury Listings · Hurun Outstanding American Real EstateLinux 内核 6.1 发布,包含初始 Rust 支持 | Linux 中国不普通的普通操作系统:Vanilla OS 稳定版发布了! | Linux 中国With More People Getting Sick, China’s Restaurants Are Strugglin一个加拿大残疾女人的传奇Linux 6.1正式发布,带有MGLRU、初始Rust支持又改名了!! USB 80 Gbps 接口正式发布, USB 3.0 / USB 4 消失openEuler 22.09 正式发布,1265 位贡献者参与开发 | 新闻Women’s Rights Law Suggests Gender Reporting Rules for Media劳动节的恢复跑超2亿元、超5万例,泛癌种早筛将如何被拿下?US NEWS、The 泰晤士排名发布,英美高校在线互撕,律所的TS名单又更新了!硬核观察 #848 Linux 6.1 发布,拉开 Rust 进入 Linux 内核的大幕A Top Archaeology Institute Struggles to Hire ArchaeologistsLinus Torvalds:Rust 将被合并到 Linux 6.1 主线梅宏院士:操作系统存在“20年周期律”,泛在操作系统时代已来Ruby 3.2.0正式发布,新增多项改进In 2022, Students Are Struggling to Cope. So Are Their Teachers.华为 MateBook D14 SE 12 代酷睿版发布,首发价 3999 元潮圈儿 | 周深推出中国动画百年纪念曲《美美》 Marshall发布曜黑限定版产品以调试 Rust 的方式来学习 Rust | Linux 中国暴雪正在物色接盘侠/ iOS16.2正式版发布/ 马斯克拍卖推特产品…今日更多新鲜事在此每位癌患家属都需要心理医生(三)Python 3.11 正式版发布,比 3.10 快 10-60%,官方:这或许是最好的版本China Sets New Rules to Safeguard Older Residents From ScamsThe Winners of China’s Housing Bust: Burnouts and Beach Bums原神联名款来了,一加Ace Pro原神限定版发布会即将举行解读Go语言的2022:泛型时代开启
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。