## Async Rust 代码膨胀与编译器优化 本文深入探讨了 Rust 中 “async 代码膨胀” 的问题——异步代码生成的二进制文件尺寸出乎意料地大,尤其对于资源受限的环境(如微控制器)而言,这尤其成问题。虽然 async Rust 提供了强大的并发性,但它并不总是能实现承诺的零成本抽象。 作者建议在编译器层面解决这个问题,并提交了一个项目目标以资助这项工作。 目前的代码膨胀源于即使对于简单的异步函数,也会生成不必要的复杂状态机。 具体来说,`Future::poll` 函数包含 `Returned` 和 `Panicked` 状态,这会引入开销。作者建议在发布模式下用 `Poll::Pending` 替换 panic,从而在嵌入式固件中实现 2-5% 的尺寸缩减。 进一步的优化包括消除没有 `await` 调用时的异步块的状态机(节省 0.2%)以及内联 future 以避免冗余的状态机创建。折叠状态机内的相同代码路径也为减小尺寸提供了显著的机会。 这些变化结合起来,显示出提高性能和减小二进制文件尺寸的潜力。作者正在寻求资助(预估 30,000 欧元)以在 Rust 编译器中直接实现这些优化,并欢迎感兴趣的组织联系。 ([https://rust-lang.github.io/rust-project-goals/2026/async-statemachine-optimisation.html](https://rust-lang.github.io/rust-project-goals/2026/async-statemachine-optimisation.html))
密苏里植物园(MOBOT)于1859年在圣路易斯建立,在彼得·拉文(1971-2010)的领导下,发展成为世界著名的植物研究和保护中心。拉文改造了这座历史悠久的植物园,扩建了标本馆,并增加了日本花园、儿童花园和肯珀家庭园艺中心等受欢迎的景点。
除了扩建植物园本身,拉文还与中国和马达加斯加等国家的植物学家建立了国际合作,启动了重要的保护项目。在MOBOT之前,他与斯坦福大学的保罗·埃尔利希合作研究,提出了“协同进化”一词。
拉文的愿景超越了科学进步;他认为MOBOT应该服务于科学界*和*圣路易斯市。他获得了麦克阿瑟奖和国家科学奖章等荣誉,他的遗产继续丰富着植物世界和当地社区。
## Biscuit:Xteink X4 电子阅读器的定制固件
Biscuit 是一款定制固件,可以将 70 美元的 Xteink X4 电子阅读器转变为多功能的智能设备,其基础是 CrossPoint Reader 的核心阅读功能。在保留完整的电子阅读器功能(EPUB、OPDS、阅读统计)的同时,Biscuit 通过无线工具、安全功能、通信选项、游戏和实用程序扩展了设备的功能。
X4 拥有 4.26 英寸 800x480 电子墨水显示屏、7 键导航、WiFi 和 BLE 5.0 连接,以及 MicroSD 存储,由 ESP32-C3 SoC 供电。Biscuit 具有基于磁贴的仪表盘,提供对八个类别的访问:侦察(被动/主动无线扫描)、防御(安全和隐身)、通信、工具、游戏、阅读器和设置。
主要功能包括一套强大的无线测试工具、用于保护隐私的“幽灵模式”、网状聊天、内置身份验证器,甚至游戏。开发是开源的,更新和翻译由社区贡献。固件刷新通过 Web 界面简单易行。
作者在明尼阿波利斯一家文具店购买了方格纸后,享受了一项创意挑战:手绘一个可用的二维码。标准的二维码需要21x21像素的网格,因此需要分割纸上的方格并利用边距。最初,作者的网站地址太长,无法放入最小的二维码版本,于是他巧妙地使用了“sethmlarson.dev”,希望扫描器能搜索完整的地址。
一位热心的读者指出,使用全部大写字母就能容纳完整的网址!该二维码是使用Python的`qrcode`包生成的。这个过程包括仔细绘制必要的“定位图案”和“时间线”,并在二维码成型时迭代测试可扫描性——即使是一个小的数据错误也不会阻止成功扫描。
由于纸张卷曲,扫描证明有些困难,但压平或悬挂后就能可靠地工作。作者鼓励其他人尝试这种基于网格的艺术形式,并推荐查阅Alexander Miller的“GRID WORLD”以获取更多灵感。