

2025 年 10 月 31 日,Rust 官方发布了 Rust 1.91.0 版本,这是一次功能与平台支持双重提升的重要更新。此版本不仅在语言层面引入了多项稳定特性,还对编译器、标准库、Cargo、Rustdoc、平台支持及兼容性规则做了系统性改进,并升级了内部 LLVM 到 v21。
extern 块中声明,但不可定义。dangling_pointers_from_locals:警告局部变量产生的悬垂指针。integer_to_ptr_transmutes:警告从整数到指针的跨类型转换(默认警告)。semicolon_in_expressions_from_macros 从警告升级为拒绝。target_env = "macabi" 和 target_env = "sim",替代原有 target_abi。never-to-any 类型的 as 转换不再警告,视为不可达代码。aarch64-pc-windows-gnullvmx86_64-pc-windows-gnullvm
注:暂缺 llvm-tools 与 MSI 安装包,后续版本补充。aarch64-pc-windows-msvccore::panic::Location::file 返回类型中过于严格的生命周期约束。std::cmp 中 _by() 变体的参数顺序稳定。Clone 和 Eq 的假设说明。std::thread 在设置线程栈大小失败时返回错误,而非直接 panic。Path::file_prefixPathBuf::add_extension / PathBuf::with_added_extensionimpl PartialEq<str> / impl PartialEq<String> for Path 和 PathBufIpv4Addr::from_octets、Ipv6Addr::from_octets、Ipv6Addr::from_segmentsAtomicPtr::fetch_ptr_add / fetch_ptr_subAtomicPtr::fetch_byte_add / fetch_byte_subAtomicPtr::fetch_or / fetch_and / fetch_xor{integer}::strict_add / strict_sub / strict_mul / strict_div 等系列BTreeMap::extract_if / BTreeSet::extract_ifcore::iter::chaincore::array::repeatDuration::from_mins / from_hoursCell::as_array_of_cellsu{N}::carrying_add / borrowing_sub / carrying_mul / carrying_mul_addPanicHookInfo::payload_as_strstr::ceil_char_boundary / floor_char_boundary<[T; N]>::each_ref / each_mutOsString::new / PathBuf::newTypeId::ofptr::with_exposed_provenance / ptr::with_exposed_provenance_mutbuild.build-dir
用于指定中间构建产物的存储目录,该目录内容布局可能会随版本变化。--target 与 build.target 支持使用 "host-tuple" 字符串自动替换为当前主机三元组。pin!、format_args!、write!、writeln! 在 2024 版 if let 检查中作用域收紧。static 关键字的闭包语法无效。--cfg 与 --check-cfg 中禁止 Shebang。cargo publish 在设置了 build.build-dir 时不再保留 .crate 压缩包作为最终产物,需使用 cargo package。build-dir 时需注意内部布局变化可能导致工具不兼容。总结:Rust 1.91.0 在语言稳定性、API 丰富性、平台扩展性上都向前迈出了重要一步,同时在兼容性规则上更严格,以确保生态的长期安全性与一致性。建议开发者及时升级并关注新 Lint 对现有代码的影响。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。