Rust 1.84.0 发布
Rust 1.84.0 稳定版已正式发布,主要带来以下变化:
Cargo 会考虑 Rust 版本来选择依赖版本
1.84.0 稳定了最低支持 Rust 版本(MSRV)感知解析器,该解析器会优先选择与项目声明的 MSRV 兼容的依赖版本。有了 MSRV 感知版本选择功能,维护者无需为每个依赖关系手动选择旧版本,从而减少了支持旧工具链的工作量。
可以通过.cargo/config.toml
启用 MSRV 感知解析器:
[resolver] incompatible-rust-versions = "fallback"
然后在添加依赖项时:
$ cargo add clap Updating crates.io index warning: ignoring clap@4.5.23 (which requires rustc 1.74) to maintain demo's rust-version of 1.60 Adding clap v4.0.32 to dependencies Updating crates.io index Locking 33 packages to latest Rust 1.60 compatible versions Adding clap v4.0.32 (available: v4.5.23, requires Rust 1.74)
在 CI 中验证最新依赖项时,可以覆盖此项:
$ CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=allow cargo update Updating crates.io index Locking 12 packages to latest compatible versions Updating clap v4.0.32 -> v4.5.23
也可以通过在 Cargo.toml 清单文件中设置package.resolver = "3"
来启用,但这要求将 MSRV 升级到 1.84。对于使用 2024 版(将在 1.85 版中稳定)的项目,新的解析器将默认启用。
可参阅文档以了解更多注意事项。
开始迁移到新的 trait solver
Rust 编译器正在向新的 trait solver 迁移。下一代 trait solver 是 Rust 类型系统核心组件的重新实现。在 1.84 中,新的求解器用于 trait impls 的一致性。从高层次上讲,连贯性负责确保在考虑其他 crate 中尚未编写或不可见代码的情况下,最多只有一个 trait 实现适用于给定类型。
此次 stabilization 修复了旧实现中的一些主要是理论正确性的问题,从而解决了以前未报告的潜在的“conflicting implementations of trait ...”错误。更多详细信息,可参阅之前的博客文章和 stabilization report。
Strict provenance APIs
在此版本中,Rust 添加了一组 API,在许多情况下可以替代整数指针转换的使用,从而避免此类转换固有的歧义。特别是,现在可以实现使用对齐指针的最低有效位来存储额外信息的模式,而无需将指针转换为整数或返回。这使得代码更易于推理,更易于编译器分析,并且还有利于 Miri 等工具和 CHERI 等旨在检测和诊断指针滥用的架构 。
稳定的 API
Ipv6Addr::is_unique_local
Ipv6Addr::is_unicast_link_local
core::ptr::with_exposed_provenance
core::ptr::with_exposed_provenance_mut
<ptr>::addr
<ptr>::expose_provenance
<ptr>::with_addr
<ptr>::map_addr
<int>::isqrt
<int>::checked_isqrt
<uint>::isqrt
NonZero::isqrt
core::ptr::without_provenance
core::ptr::without_provenance_mut
core::ptr::dangling
core::ptr::dangling_mut
Pin::as_deref_mut
这些 API 现在在 const 上下文中是稳定的
AtomicBool::from_ptr
AtomicPtr::from_ptr
AtomicU8::from_ptr
AtomicU16::from_ptr
AtomicU32::from_ptr
AtomicU64::from_ptr
AtomicUsize::from_ptr
AtomicI8::from_ptr
AtomicI16::from_ptr
AtomicI32::from_ptr
AtomicI64::from_ptr
AtomicIsize::from_ptr
<ptr>::is_null
<ptr>::as_ref
<ptr>::as_mut
Pin::new
Pin::new_unchecked
Pin::get_ref
Pin::into_ref
Pin::get_mut
Pin::get_unchecked_mut
Pin::static_ref
Pin::static_mut
更多详情可查看官方公告。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Rainbond v6.1 发布,24 年最后的版本,生产可用,体验全面升级!
在 2024 年的尾声,我们发布了 Rainbond v6.1,为这一年画上了圆满的句号。作为 Rainbond 在 2024 年发布的最后一个版本,v6.1 标志着 Rainbond v6 版本正式迈入生产可用阶段。这不仅意味着平台已经具备全面的生产可用性,还在稳定性、性能优化以及用户体验方面实现了质的飞跃。 v6.1 的核心亮点是围绕用户体验进行的全新团队空间视图设计。通过更清晰的界面、更流畅的操作流程,用户可以更加高效地进行团队管理、应用创建和资源配置,充分体现以用户为中心的设计理念。 团队 Dashboard 页面 我们重新设计了团队 Dashboard 页面,移除了非必要的侧边栏和相关引导内容,优化布局,以应用为核心进行展示,为用户提供更加简洁、高效的操作体验。 新的个人中心 我们将之前全局共享的镜像仓库和 Git 仓库调整为基于用户个体的独立配置,确保每位用户配置的资源仅限其个人使用,提升了资源管理的灵活性和私密性。 全新的镜像仓库 全新的镜像仓库对接功能,支持与 Docker Registry 和 Harbor 镜像仓库的无缝集成。对接完成后,用户可以直接在 Rainbo...
- 下一篇
🎉 降低 DDD 实践成本 | Wow 5.1.2 发布
领域驱动|事件驱动|测试驱动|声明式设计|响应式编程|命令查询职责分离|事件溯源 官方文档:https://wow.ahoo.me/ 更新内容 特性(core): 添加对虚空命令(VoidCommand)的支持 特性(openapi): 为各种类型添加转换器以处理附加属性 特性(command): 优化虚空命令(VoidCommand)处理 特性(command): 支持虚空命令并优化命令分发 特性(command): 为虚空命令等待策略添加验证 特性(messaging): 添加命令请求头传播的开关 特性(webflux): 为命令请求实现远程 IP 头附加器 重构(webflux): 引入CommandMessageParser并移除CommandParser 特性(command): 支持注入请求扩展头 特性(webflux): 使用可自定义的头附加器增强命令消息解析 特性(webflux): 将用户代理和远程 IP 添加到命令头 依赖(升级): 更新 Angular monorepo 至 v19.0.6 依赖(升级): 更新 angular-cli monorepo 至 v19...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库