Rust 1.98 出现 P-critical 误编译:vtable 空槽导致 SIGSEGV
rust-lang/rust issue #161441 报告了 Rust 1.98.0 上的 stable-to-stable 回归:编译器为可调用的 boxed async service 生成的 vtable 中出现空方法槽,安全 Rust 通过该入口分发时会在地址 0 处 SIGSEGV。
问题在 aarch64-apple-darwin 与 CI runner 上可复现。同一份 rama 源码在 1.97.1 与 nightly-2026-07-16 上正常,在 1.98.0 上崩溃;1.97.1 期望把失败上游连接转成 HTTP 502 且代理存活,1.98.0 则在 CONNECT 时 abort。生成的 vtable 保留有效的 drop/size/alignment,但 offset 24 的第一个方法槽为 0。issue 已标为 P-critical,并有指向 stable 的 backport PR #161555。
原文链接:https://github.com/rust-lang/rust/issues/161441
Freya 0.4:脱离 Dioxus 的 Rust GUI 库大改版
Freya 0.4 是用 Rust 编写的 GUI 库新版本,也是距 0.3 约一年后的一次大改写与稳定性提升。
本版本不再依赖 Dioxus,改为自研响应式与组件模型;API 去掉 rsx!() 宏,改用带完整类型属性的 builder,属性拼写错误在编译期捕获,IDE 可补全与跳转。状态侧 use_signal 更名为 use_state,组件返回 impl IntoElement。原 Dioxus 生态中的若干 crate 已分叉为 freya-radio、freya-query、freya-i18n、freya-clipboard 等,并新增 freya-icons、freya-animation、freya-router、freya-webview 等包。布局库 Torin 支持子元素换行;文本编辑提供底层 use_editable API。完整变更见 GitHub v0.4 Release。
原文链接:https://freyaui.dev/posts/0.4
no_std 生态调查:分类标错与真实兼容性
《How no_std are no_std Rust crates really? A survey》是对 crates.io 上 no_std 分类与真实兼容性的量化调查,数据集基于 2026-06-06 快照,用 cargo-no-std 对 x86_64-unknown-none 目标做构建探测。
调查显示:被标成 no-std 却实际不兼容的比例约为 13.1%,但只占全部 no-std 下载量的约 0.891%;另一方面,本可标 no-std::no-alloc 却未归类的情况很常见,约 53.2% 的 no-std crate 具备 no-alloc 资格。常见失败原因包括遗漏 #![no_std],以及 prelude 隐式导入的 Vec/String 等在 no_std 下未手动引入。热门但长期未更新的错误分类 crate 也占一定比例。
原文链接:https://w-graj.net/posts/rust-no-std-survey/
Redox OS 接入 EEVDF 调度器
《RSoC 2026: EEVDF for Redox》介绍 Redox OS 在 RSoC 2026 中把调度器从 DWRR 迁到 EEVDF(Earliest Eligible Virtual Deadline First)的工作与结果。
EEVDF 用 lag、eligible time 与 virtual deadline 决定谁先获得 CPU:欠服务的进程有正 lag 并更早变为 eligible,权重更高则 deadline 更紧。作者给出相对原 DWRR 的测量结果,包括 fairness 约 782x 改善、上下文切换时间约降 82%、吞吐约 2.6x 等。文章还给出形式化定义、与 Linux 从 CFS 转向 EEVDF 的对照,以及实现过程中的设计取舍。
原文链接:https://www.redox-os.org/news/rsoc-eevdf/
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论