Rust 1.98.1 修复 vtable 误编译
Rust 1.98.1 是 1.98.0 的点版本,修复 vtable 生成中的误编译。在 1.98.0 的某些情况下,rustc 会在 trait object vtable 里写入空指针而非函数指针,导致未定义行为,可能表现为段错误或其他任意效果。
已用 rustup 安装的用户执行 rustup update stable 即可升级。相关跟踪 issue 为 rust-lang/rust#161441。
原文链接:https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/
static-generics:零成本泛型静态量
static-generics 是为零成本泛型静态量提供的 crate。Rust 没有 C++ 式 generic statics,常见 HashMap<TypeId, …> 每次访问都要加锁、分配与哈希。该 crate 用内联汇编与 monomorphization 发出 per-T 存储,支持平台上访问约 1–2 条指令(lea / adrp 等);不支持平台回退 HashMap + Mutex。
仅 Zeroable 类型可直接存放;无 Drop,跨 crate / 动态库不保证同一地址。支持 x86_64、aarch64、riscv、loongarch、powerpc、s390x 等;wasm32 需 nightly asm!()。思路参考 cynecx/generic-statics。
原文链接:https://crates.io/crates/static-generics
标准库验证竞赛:Autoharness 做到万级 harness
这是 Rust Foundation 与 AWS 关于标准库验证竞赛的进展说明。标准库约 3.4 万函数;人工约一年写出 725 个 Kani harness 后增长停滞。AWS Kani 团队的 Autoharness 在 MIR 层自动生成 16748 个 harness,其中 11970 个通过 Kani 支持的 UB 检查,989 个带完整契约。
另有 VeriFast 对 LinkedList 的分离逻辑证明。未发现未知内存安全漏洞,但修了 SIMD 移位结果、unsafe 标注、SAFETY 注释与 panic 文档等问题。约 9600 个泛型函数以及并发/原子仍是缺口。RustConf 2026 将有专场更新。
原文链接:https://rustfoundation.org/media/how-the-rust-standard-library-verification-contest-scaled-past-manual-proof-engineering/
tokio_rcu:面向 Tokio 的异步 RCU
tokio_rcu 是面向 Tokio 的 RCU 库,提供 lock-free / wait-free 的共享状态更新。核心原语 synchronize_rcu 等待 grace period 以便回收被换出的数据;高层抽象是 RcuPtr。读路径基本是一次原子指针 load,适合读多写少、延迟可预测的场景。
静止状态定义为 Tokio 的 on_after_task_poll;RCU 保护的指针不能跨 await。需启用 tokio_unstable。仓库:https://github.com/roeeshoshani/tokio_rcu
原文链接:https://github.com/roeeshoshani/tokio_rcu
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论