Rust 团队日前发布了 Rust 的新版本 —— 1.70.0,新版本中值得关注的变化包括:
Crates.io 默认启用稀疏索引
Cargo 的 "sparse" 协议现在默认启用,用于从 crates.io 读取索引。这个功能之前已经在 Rust 1.68.0 中稳定下来,但仍然需要配置才能在 crates.io 中使用。原计划是在 1.70.0 中默认启用该功能的,但直到现在才真正实现。
当你从 crates.io 的索引中获取信息时,你应该看到性能的大幅提高。如果因为某些原因,你需要保持以前的默认状态,即使用 GitHub 托管的 git 索引,可以使用registries.crates-io.protocol
配置设置来改变默认状态。
(资料图片)
需要注意的是,改变访问方式的一个副作用是,这也改变了 crate cache 的路径,所以依赖将被重新下载。
OnceCell 和 OnceLock
OnceCell
和它的线程安全对应类型 OnceLock
两个新的类型已经稳定下来,用于共享数据的一次性初始化。这两种类型可以用在任何不希望立即构建的地方。
use std::sync::OnceLock;static WINNER: OnceLock<&str> = OnceLock::new();fn main() { let winner = std::thread::scope(|s| { s.spawn(|| WINNER.set("thread")); std::thread::yield_now(); // give them a chance... WINNER.get_or_init(|| "main") }); println!("{winner} wins!");}
诸如lazy_static
和once_cell
等 crate 在过去填补了这一需求,但现在这些构建块是标准库的一部分,由once_cell
的unsync
和sync
模块移植过来。未来还有更多的方法可能会被稳定化,还有配套 LazyCell
和 LazyLock
存储其初始化函数的类型。
IsTerminal
这个新稳定的特性 is_terminal
,用来确定一个给定的文件 descriptor(描述符)或 handle(句柄)是否代表一个终端或 TTY。一个常见的用例是让程序区分运行在脚本模式还是交互模式下,比如在交互式模式下呈现颜色或者是完整的 TUI。
use std::io::{stdout, IsTerminal};fn main() { let use_color = stdout().is_terminal(); // if so, add color codes to program output...}
调试信息的命名级别
-Cdebuginfo
编译器选项以前只支持数字 0...=2 来增加调试信息量,Cargo 在开发和测试配置文件中默认为2,在发布和工作台配置文件中默认为 0。这些调试级别现在可以通过名称来设置:"none"(0)、"limited"(1)和 "full"(2),以及两个新的级别:"line-directives-only"和 "line-tables-only"。
注意,这些命名的选项还不能通过Cargo.toml
使用,在下一个 1.71 版本中会有这方面的支持。
test CLI 选项
当 #[test]
函数被编译时,可执行文件从 test
crate 获得一个命令行接口。这个 CLI 有很多选项,包括一些尚未稳定的选项,需要指定-Zunstable-options
,就像 Rust 工具链中的许多其他命令一样。然而,虽然这只是在 nightly 构建中被允许的,但这个限制在test
中并不适用。不过,从 1.70.0 开始,Rust 的稳定版和测试版将不再允许不稳定的test
选项。
在一些已知的情况下,不稳定的选项可能在用户不知情的情况下被使用,特别是 IntelliJ Rust 和其他 IDE 插件中使用的--format json
。
更多详情可查看:https://blog.rust-lang.org/2023/06/01/Rust-1.70.0.html
- Rust 1.70.0 正式发布
- 全球热议:今起RCEP对菲律宾正式生效,全球最大自贸区全面“起航”
- 天天热门:康佳Micro LED“混合式巨量转移技术”修复后的三色转移良率达99.999%
- 万兴科技:生态成员博思云创升级boardmix|环球快看点
- 苏博特:检测业务今年以来保持良好发展态势|全球速看料
- 白俄罗斯总统签署法令促进中医药生产和使用|天天报道
- 每日精选:交通运输部、农业农村部联合组织开展“商渔共治2023”专项行动
- 全球即时:【原】爱你,至纯至深
- 焦点消息!在数字经济新赛道上加速奔跑
- 酱酒赛道竞争日趋火热,珍酒李渡未来将在高端战略进行深入聚焦_全球最新
- 世界快看:高考考生怎么吃有利于稳定发挥?营养科专题提建议
- 【环球快播报】尘埃落定!美国参议院通过债务协议 违约风险已几近消弭
- 环球微动态丨探探怎么配对成功原理(探探怎么配对成功)
- 我市各单位开展六一活动
- 全球速看:突发!云南联通混改再生变,这家A股公司宣布:退出!
- 玲珑轮胎:与特斯拉已经进行商务对接和技术交流
- 京东:京东618带动首购新用户同比增长超30%_全球热消息
- 磁谷科技:目前市场需求有所增强 公司在手订单充足
- 跑步上瘾当然好!我们要让它为我所用,不可越陷越深!
- 香港特区政府发售近60亿美元绿色债券 增设10年期人民币债券-当前速看
- 基金分红:东方红稳添利纯债基金6月8日分红
- 当前滚动:“爆汁”推荐!闽清漫山杨梅红满枝
- 云南昭通两河镇强降雨引发内涝 疏散转移356名学生 每日热议
- 消费电子板块震荡走高 环球要闻
- 应急救护培训首次进军营
- 市公路建养中心举办路政执法人员业务培训-天天观点
- 高温来袭!今年空调业有望“翻盘”
- 中国与新加坡,有新动作!-环球动态
- 突发!黄仁勋将到访上海?人民币暴拉收复重要关口!超80亿外资杀入A股,超级赛道又火了!|环球即时
- 华电国际:积极探索虚拟电厂和新型储能等新业态 已在广东等多地进行相关项目研发合作_今日热讯