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...

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



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

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

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